:root{
  --bg:#f5f3ef;
  --text:#222;
  --muted:#6c6c6c;
  --line:#ddd5cb;
}

*{box-sizing:border-box}
html{height:100%;-webkit-text-size-adjust:100%;text-size-adjust:100%;}
html,body{margin:0;padding:0;background:var(--bg);color:var(--text);}
body{font-family:"Inter", system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, "Apple Color Emoji","Segoe UI Emoji"; line-height:1.55;}

.wrapper{max-width:820px;margin:0 auto;padding:0 clamp(16px, 4vw, 24px);}

.hero{
  height:100svh; /* better mobile viewport units */
  position:relative;display:flex;align-items:center;justify-content:center;
  overflow:hidden;background:#0f0f0f;
  padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom);
}
.hero picture,.hero img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 60%;}
.hero::after{content:"";position:absolute;inset:0;background:linear-gradient(rgba(0,0,0,.42), rgba(0,0,0,.34));}
.hero-inner{position:relative;z-index:2;text-align:center;color:#f7f7f5;padding:clamp(8px,2vw,20px);max-width:min(92vw, 900px);}

.brand{
  font-family:"Cormorant Garamond", Georgia, "Times New Roman", serif;
  letter-spacing:.16em;text-transform:uppercase;margin:0;
  font-size:clamp(28px, 6.5vw, 56px);
}
.tagline{
  margin:.6rem 0 0;
  font-size:clamp(14px, 3.8vw, 20px);
  opacity:.96
}

.section{
  padding:clamp(56px, 12vw, 96px) 0 clamp(40px, 8vw, 72px);
  border-top:1px solid var(--line);
  text-align:center;background:var(--bg);
}
.section h2{
  font-family:"Cormorant Garamond", Georgia, serif;
  font-weight:600;letter-spacing:.06em;
  font-size:clamp(20px, 5vw, 28px);margin:0 0 12px;
}
.section p{margin:0 auto 20px; max-width:min(88vw, 680px); color:var(--muted);}

.cta{margin-top:22px;}
.cta a{
  display:inline-block;padding:.7em 1.1em;border:1px solid var(--text);
  text-decoration:none;color:var(--text);border-radius:4px;transition:all .2s ease;
}
.cta a:hover{background:var(--text);color:#f5f3ef;}

.footer{padding:36px 0;border-top:1px solid var(--line);text-align:center;color:var(--muted);font-size:14px;}

/* Small-screen readability tweaks */
@media (max-width: 480px){
  .hero::after{background:linear-gradient(rgba(0,0,0,.54), rgba(0,0,0,.42));}
  .brand{letter-spacing:.12em;}
}

/* Larger viewports */
@media (min-width: 992px){
  .wrapper{max-width:920px;}
}