/* One-screen editorial chapters */
html{scroll-snap-type:y proximity}
main>section{position:relative;min-height:100svh;scroll-snap-align:start;scroll-snap-stop:normal}
main>section.section-pad{display:flex;align-items:center;padding-block:clamp(92px,8svh,118px)}
main>section.section-pad>.container{position:relative;z-index:1}
.hero{height:100svh;min-height:100svh}
.marquee{height:46px;margin-top:-46px;position:relative;z-index:2;background:rgba(18,16,14,.85);backdrop-filter:blur(12px)}
.marquee-track{font-size:1.45rem;gap:42px}

/* Every chapter has a quiet frame and an obvious visual focus. */
.intro,.services,.journey,.faq,.contact{overflow:visible}
.intro:before,.services:before,.journey:before,.faq:before{content:'';position:absolute;inset:24px;border:1px solid rgba(198,163,107,.09);pointer-events:none}
.intro-grid{gap:clamp(56px,7vw,110px)}
.intro-image-wrap{height:min(69svh,660px);max-height:none;aspect-ratio:auto}
.intro-copy .section-title{font-size:clamp(3.6rem,5.1vw,6.1rem);margin-bottom:24px}
.intro-copy p{line-height:1.72;max-width:520px}
.intro-copy .text-link{margin-top:14px}
.section-kicker{margin-bottom:18px}

/* Services become a horizontal gallery: three at once on desktop. */
.services .container{display:flex;flex-direction:column;justify-content:center;height:min(100%,760px)}
.services .section-head{align-items:end;margin-bottom:26px}
.services .section-title{font-size:clamp(3.7rem,5.3vw,6rem)}
.services .section-head-note{max-width:290px;font-size:.9rem;line-height:1.55;margin-bottom:5px}
.service-grid{display:flex;gap:14px;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;scrollbar-width:none;background:transparent;border:0;height:clamp(345px,48svh,495px);overscroll-behavior-inline:contain}
.service-grid::-webkit-scrollbar{display:none}
.service-card{flex:0 0 calc((100% - 28px)/3);min-height:0;height:100%;scroll-snap-align:start;background:linear-gradient(145deg,#211b15,#100f0d 72%);border:1px solid var(--hair);padding:clamp(23px,2.4vw,36px)}
.service-card:hover{transform:none;box-shadow:inset 0 0 0 1px rgba(198,163,107,.24),0 18px 45px rgba(0,0,0,.3)}
.service-card.reveal.in-view:hover{transform:none}
.service-top{margin-bottom:clamp(20px,3svh,40px)}
.service-card h3{font-size:clamp(2rem,2.45vw,2.75rem);margin-bottom:15px}
.service-card p{font-size:.91rem;line-height:1.58;margin-bottom:14px}
.service-card a{padding-top:12px}
.service-controls{display:flex;align-items:center;justify-content:space-between;margin-top:22px;color:var(--gold);font-size:.72rem;letter-spacing:.2em}
.service-status{font-family:'Italiana',Georgia,serif;font-size:1.2rem;letter-spacing:.12em}
.service-controls-actions{display:flex;gap:10px}
.service-controls button{width:42px;height:42px;display:grid;place-items:center;border:1px solid var(--hair);background:transparent;color:var(--gold);font-size:1.4rem;cursor:pointer;transition:background .25s,color .25s,border-color .25s}
.service-controls button:hover,.service-controls button:focus-visible{background:var(--gold);color:var(--ink);border-color:var(--gold)}
.service-controls button:disabled{opacity:.35;cursor:default;background:transparent;color:var(--gold);border-color:var(--hair)}

.manifesto{height:100svh;min-height:100svh}
.manifesto p{font-size:clamp(3.8rem,6vw,6.8rem)}
.journey .section-title{font-size:clamp(3.8rem,5.2vw,6rem);margin-bottom:0}
.journey{background:radial-gradient(circle at 76% 30%,rgba(112,76,38,.18),transparent 34%),#14110e}
.journey:after{content:'03';position:absolute;right:4%;bottom:-.16em;font-family:'Italiana',Georgia,serif;font-size:clamp(17rem,31vw,32rem);line-height:1;color:rgba(198,163,107,.035);pointer-events:none}
.journey-grid{margin-top:clamp(52px,8svh,92px)}
.step-number{font-size:clamp(4rem,5.4vw,5.5rem)}
.journey-step h3{font-size:clamp(1.9rem,2.8vw,2.6rem)}
.faq-grid{align-items:center}
.faq{background:radial-gradient(circle at 15% 76%,rgba(112,76,38,.14),transparent 32%),#0d0d0c}
.faq:after{content:'04';position:absolute;left:-.08em;bottom:-.35em;font-family:'Italiana',Georgia,serif;font-size:clamp(17rem,31vw,32rem);line-height:1;color:rgba(198,163,107,.03);pointer-events:none}
.faq .section-title{font-size:clamp(3.7rem,5.2vw,6rem)}
.faq-list summary{padding:21px 0}
.contact h2{font-size:clamp(4rem,6.8vw,7.4rem)}
.contact-actions{margin-top:30px}

@media(max-width:1100px){
  .service-card{flex-basis:calc((100% - 14px)/2)}
  .services .section-title{font-size:clamp(3.5rem,6vw,5rem)}
}

@media(min-width:851px) and (max-height:760px){
  main>section.section-pad{padding-block:72px 34px}
  .services .section-kicker{margin-bottom:8px}
  .services .section-title{font-size:3.4rem}
  .services .section-head{margin-bottom:16px}
  .service-grid{height:clamp(290px,calc(100svh - 290px),470px)}
  .service-card{padding:18px}
  .service-top{margin-bottom:12px}
  .service-card h3{font-size:1.85rem;margin-bottom:9px}
  .service-card p{font-size:.81rem;line-height:1.42;margin-bottom:9px}
  .service-card a{padding-top:8px}
  .service-controls{margin-top:10px}
}

@media(max-width:850px){
  html{scroll-snap-type:y proximity}
  main>section.section-pad{padding-block:86px 38px}
  .intro:before,.services:before,.journey:before,.faq:before{inset:12px}
  .hero{min-height:100svh;height:100svh}
  .hero-content{padding-bottom:100px}
  .hero-bottom{bottom:16px}
  .marquee{height:38px;margin-top:-38px}
  .marquee-track{font-size:1.25rem}
  .intro{isolation:isolate}
  .intro-grid{display:flex;align-items:end;min-height:calc(100svh - 124px)}
  .intro-image-wrap{position:absolute;inset:0;height:auto;max-height:none;width:100%;opacity:.45!important;transform:none!important;z-index:-1}
  .intro-image-wrap:after{background:linear-gradient(0deg,#100f0d 10%,rgba(16,15,13,.65) 62%,rgba(16,15,13,.34))}
  .intro-image-label,.image-corner{display:none}
  .intro-copy{padding:0 0 26px}
  .intro-copy .section-title{font-size:clamp(3.6rem,10vw,5.5rem);margin-bottom:22px}
  .intro-copy p{font-size:1rem;line-height:1.68;max-width:600px;color:#e4d9cb}
  .intro-copy .text-link{margin-top:12px}
  .services .container{height:auto;min-height:calc(100svh - 124px);justify-content:flex-start}
  .services .section-head{margin-bottom:22px}
  .services .section-title{font-size:clamp(3.4rem,9.5vw,5rem);line-height:1}
  .services .section-head-note{max-width:420px;margin-top:12px;font-size:.84rem;line-height:1.5}
  .service-grid{height:auto;flex:1 1 auto;min-height:0;max-height:clamp(350px,52svh,520px);gap:10px}
  .service-card{flex-basis:100%;padding:clamp(24px,5vw,38px)}
  .service-card h3{font-size:clamp(2.15rem,7vw,3.5rem)}
  .service-card p{font-size:.95rem;line-height:1.58}
  .service-controls{margin-top:14px}
  .manifesto{min-height:100svh;height:100svh}
  .manifesto p{font-size:clamp(3.1rem,9.5vw,5.2rem)}
  .journey .section-title{font-size:clamp(3.2rem,9.2vw,5rem)}
  .journey-grid{margin-top:32px;gap:20px}
  .journey-step{grid-template-columns:58px 1fr;gap:0 16px}
  .step-number{font-size:3.5rem}
  .journey-step h3{font-size:1.9rem}
  .journey-step p{font-size:.9rem;line-height:1.5;margin:0}
  .faq-grid{gap:20px}
  .faq .section-title{font-size:clamp(3.2rem,9vw,5rem);margin-bottom:10px}
  .faq-intro{font-size:.9rem;line-height:1.5;margin-bottom:0}
  .faq-list summary{padding:15px 0;font-size:.95rem}
  .faq-list p{font-size:.85rem;line-height:1.55;padding-bottom:14px}
  .contact h2{font-size:clamp(3.8rem,10vw,6rem)}
  .contact p{font-size:.98rem}
}

@media(max-width:850px) and (max-height:740px){
  main>section.section-pad{padding-block:76px 20px}
  .intro-grid,.services .container{min-height:calc(100svh - 96px)}
  .intro-copy .section-title,.services .section-title,.journey .section-title,.faq .section-title{font-size:clamp(3rem,8vw,4rem)}
  .intro-copy p{font-size:.91rem;line-height:1.5}
  .services .section-head-note{display:none}
  .services .section-head{margin-bottom:16px}
  .service-grid{max-height:clamp(310px,50svh,420px)}
  .service-card{padding:22px}
  .service-top{margin-bottom:18px}
  .service-card h3{font-size:2.1rem;margin-bottom:12px}
  .service-card p{font-size:.87rem;line-height:1.45}
  .journey-grid{margin-top:23px;gap:14px}
  .journey-step h3{font-size:1.65rem}
  .journey-step p{font-size:.83rem}
  .faq .section-kicker{margin-bottom:10px}
  .faq-list summary{padding:11px 0}
}

@media(prefers-reduced-motion:reduce){html{scroll-snap-type:none}}
.hero,.manifesto{height:auto;min-height:100svh}
