:root{
  --white:#FFFFFF; --stone:#EDEAE3;
  --olive:#394E1F; --olive-deep:#2C3D18; --terra:#C65B35; --terra-deep:#AC4A28;
  --ink:#333333; --muted:#70706A; --hair:rgba(57,78,31,.14);
  --serif:"Cormorant Garamond",Georgia,serif;
  --ease:cubic-bezier(.22,1,.36,1); --dur-1:.28s; --dur-2:.45s; --dur-reveal:.8s;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
html,body{overflow-x:hidden;max-width:100%}
body{margin:0;background:var(--white);color:var(--ink);font-family:"Montserrat",system-ui,sans-serif;
  font-size:15.5px;line-height:1.95;-webkit-font-smoothing:antialiased;letter-spacing:.01em}
h1,h2,h3{font-family:var(--serif);font-weight:500;color:var(--olive);margin:0;line-height:1.08;letter-spacing:-.011em}
h2{font-size:clamp(2.2rem,4vw,3.3rem);line-height:1.1}
p{margin:0 0 1.2rem}
a{color:inherit}
img{max-width:100%;display:block}
.wrap{width:min(1240px,84vw);margin-inline:auto}
.narrow{max-width:720px;margin-inline:auto}
.center{text-align:center}

.btn{display:inline-block;font-weight:500;font-size:.7rem;letter-spacing:.22em;text-transform:uppercase;
  padding:1.1rem 2.6rem;background:var(--olive);color:#fff;text-decoration:none;border:1px solid var(--olive);cursor:pointer;transition:.25s}
.btn:hover{background:var(--olive-deep)}
.btn-out{background:transparent;color:var(--olive)}
.btn-out:hover{background:var(--olive);color:#fff}
.eyebrow{font-size:.82rem;font-weight:600;letter-spacing:.26em;text-transform:uppercase;color:var(--terra);display:block}
.framed{padding:12px;border:1px solid rgba(57,78,31,.28);background:var(--white)}
.framed img{display:block;width:100%;height:100%;object-fit:cover}
:focus-visible{outline:2px solid var(--terra);outline-offset:4px}

/* header / footer */
header{background:var(--white);position:relative;z-index:20}
.nav{display:flex;align-items:center;gap:2rem;padding:2.1rem 0}
.brand{margin-right:auto;display:block}.brand img{height:102px}
.menu{display:flex;gap:2.6rem}
.menu a{text-decoration:none;font-size:.68rem;font-weight:500;letter-spacing:.24em;text-transform:uppercase;color:var(--ink);opacity:.72;transition:.2s}
.menu a:hover,.menu a.active{opacity:1;color:var(--terra)}
.burger{display:none;background:none;border:0;cursor:pointer;padding:.4rem}
.burger span{display:block;width:22px;height:1.5px;background:var(--olive);margin:5px 0}

section{padding:clamp(7rem,12.5vw,11.5rem) 0}
.sec-h{font-size:clamp(2.2rem,4vw,3.3rem);margin-bottom:.9rem;line-height:1.06}
.sec-lead{color:var(--muted);max-width:58ch;margin:0 auto}
.eyebrow+.sec-h{margin-top:.9rem}

/* hero (home + approach) */
.hero{border-top:1px solid var(--hair)}
.hero .grid{display:grid;grid-template-columns:1fr 1.2fr;min-height:90vh;align-items:center;gap:clamp(2.5rem,6vw,7rem)}
.hero.short .grid{min-height:82vh;grid-template-columns:1fr 1.1fr}
.hero .copy{padding:clamp(3rem,6vw,5rem) 0}
.hero h1{font-size:clamp(2.6rem,4.8vw,4.2rem);margin:1.6rem 0 1.7rem;line-height:1.1}
.hero.short h1{margin-bottom:0}
.hero .sub{color:var(--muted);max-width:44ch;margin-bottom:2.6rem;font-size:1.04rem}
.hero .cta{display:flex;gap:1rem;flex-wrap:wrap;margin-bottom:3rem}
.hero .marks{display:flex;flex-wrap:wrap;gap:.4rem 0;font-size:.63rem;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);border-top:1px solid var(--hair);padding-top:1.8rem}
.hero .marks span+span::before{content:"·";margin:0 .9rem;color:var(--terra)}
.hero .photo{align-self:stretch;display:flex}
.hero .photo img{width:100%;height:100%;min-height:76vh;object-fit:cover;object-position:center 18%}

/* inner page header */
.phead{border-top:1px solid var(--hair);text-align:center;padding:clamp(4rem,8vw,7rem) 0 clamp(2rem,4vw,3rem)}
.phead h1{font-size:clamp(2.6rem,4.8vw,4.2rem);line-height:1.05}
.phead p{color:var(--muted);max-width:60ch;margin:1.2rem auto 0}

/* how I can help — experience */
.help{display:grid;grid-template-columns:1fr 1fr;gap:0 clamp(3rem,8vw,7rem);margin-top:4.5rem;border-top:1px solid var(--hair)}
.help .h{padding:2.8rem 0;border-bottom:1px solid var(--hair)}
.help .h h3{font-size:1.7rem;font-weight:500;margin-bottom:.5rem}
.help .h p{font-size:.92rem;color:var(--muted);margin:0}
.help-note{text-align:center;margin-top:2.6rem;font-size:.82rem;color:var(--muted)}

/* trio */
.trio{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border-top:1px solid var(--hair);border-bottom:1px solid var(--hair);margin-top:4.5rem}
.trio .t{padding:3.6rem 3rem;border-right:1px solid var(--hair)}
.trio .t:last-child{border-right:0}
.trio .num{font-family:var(--serif);font-style:italic;font-size:1.05rem;color:var(--terra)}
.trio h3{font-size:1.85rem;margin:.7rem 0 .9rem;font-weight:500}
.trio p{font-size:.9rem;color:var(--muted);margin:0}

/* areas grid */
.areas{display:grid;grid-template-columns:repeat(4,1fr);gap:0;margin-top:3.6rem;border-left:1px solid var(--hair);border-top:1px solid var(--hair)}
.areas div{padding:1.7rem 1.2rem;border-right:1px solid var(--hair);border-bottom:1px solid var(--hair);
  font-family:var(--serif);font-size:1.28rem;color:var(--olive);text-align:center}

/* feature (men / young / practice) */
.feature .grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(3rem,7vw,6.5rem);align-items:center}
.feature.flip .photo{order:2}
.feature h2{font-size:clamp(2.2rem,4vw,3.3rem);margin:.9rem 0 1.3rem}
.feature p{color:var(--muted)}
.feature .photo img{width:100%;aspect-ratio:4/5;object-fit:cover;object-position:center 20%}

/* what you can expect / feels */
.expect{max-width:820px;margin:4.5rem auto 0}
.expect .x{display:flex;gap:1.6rem;align-items:baseline;padding:1.6rem 0;border-bottom:1px solid var(--hair)}
.expect .x:first-child{border-top:1px solid var(--hair)}
.expect .x .n{font-family:var(--serif);font-style:italic;color:var(--terra);font-size:1.1rem;min-width:2ch}
.expect .x p{margin:0;font-family:var(--serif);font-size:1.4rem;color:var(--olive)}

/* approach teaser */
.approach .grid{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(3rem,7vw,7rem);align-items:center}
.approach h2{font-size:clamp(2.2rem,4vw,3.3rem);margin:.9rem 0 1.6rem}
.approach .phil{font-family:var(--serif);font-size:1.55rem;line-height:1.5;color:var(--olive);margin-bottom:1.6rem}
.approach p{color:var(--muted)}
.approach .btn-out{margin-top:.8rem}

/* journey */
.journey{border-top:1px solid var(--hair);border-bottom:1px solid var(--hair)}
.steps{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin:3.5rem 0 3rem;flex-wrap:wrap}
.steps .s{font-family:var(--serif);font-size:1.35rem;color:var(--olive);text-align:center;flex:1;min-width:120px}
.steps .arrow{color:var(--terra);font-size:1rem}
.journey .body{max-width:760px;margin:0 auto;color:var(--muted)}

/* the way I work */
.work .narrow p:first-of-type{font-family:var(--serif);font-size:1.5rem;color:var(--olive);line-height:1.5;margin-bottom:1.4rem}
.work p{color:var(--muted)}

/* feels grid */
.feels .list{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border-top:1px solid var(--hair);border-left:1px solid var(--hair);margin-top:3.5rem}
.feels .list div{padding:2.4rem 2rem;border-right:1px solid var(--hair);border-bottom:1px solid var(--hair);
  font-family:var(--serif);font-size:1.5rem;color:var(--olive)}

/* professional background */
.bg .lead-row{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2.5rem,6vw,6rem);align-items:end;margin-bottom:3.6rem}
.bg .lead-row p{color:var(--muted);margin:0}
.creds{display:grid;grid-template-columns:repeat(3,1fr);gap:1.4rem}
.creds .c{border:1px solid var(--hair);padding:2.3rem 2rem}
.creds .c .k{font-size:.6rem;font-weight:600;letter-spacing:.24em;text-transform:uppercase;color:var(--terra)}
.creds .c h3{font-size:1.35rem;margin:.6rem 0 0;font-weight:500}
.facts{display:flex;justify-content:center;flex-wrap:wrap;gap:1.4rem 4rem;margin-top:3.4rem;padding-top:2.6rem;border-top:1px solid var(--hair)}
.facts .f{text-align:center}
.facts .f b{display:block;font-family:var(--serif);font-size:2.2rem;color:var(--olive);font-weight:500;line-height:1}
.facts .f span{font-size:.62rem;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);font-weight:600}
.bg .block{display:grid;grid-template-columns:.7fr 1.3fr;gap:clamp(2rem,5vw,5rem);padding:3rem 0;border-bottom:1px solid var(--hair)}
.bg .block:first-of-type{border-top:1px solid var(--hair)}
.bg .block h3{font-size:1.7rem;font-weight:500}
.bg .block p{color:var(--muted);margin:0}
.bg .block ul{list-style:none;margin:0;padding:0}
.bg .block li{padding:.55rem 0;border-bottom:1px solid var(--hair);font-size:.95rem}
.bg .block li:last-child{border-bottom:0}
.bg .block li b{color:var(--olive);font-weight:600}

/* image break */
.break img{width:100%;height:clamp(320px,48vw,560px);object-fit:cover;object-position:center 40%}

/* testimonial */
.testi{text-align:center}
.testi .q{font-family:var(--serif);font-style:italic;font-size:clamp(1.9rem,4vw,3rem);line-height:1.36;color:var(--olive);max-width:30ch;margin:0 auto}
.testi .rule{width:48px;height:1px;background:var(--terra);margin:2.6rem auto 1.4rem}
.testi .who{font-size:.66rem;letter-spacing:.28em;text-transform:uppercase;color:var(--muted);font-weight:600}

/* fees */
.fees{max-width:680px;margin:3.6rem auto 0}
.fees .f{display:flex;justify-content:space-between;align-items:baseline;gap:2rem;padding:2rem 0;border-bottom:1px solid var(--hair)}
.fees .f:first-child{border-top:1px solid var(--hair)}
.fees .f .n{font-family:var(--serif);font-size:1.55rem;color:var(--olive)}
.fees .f .a{font-family:var(--serif);font-size:2rem;color:var(--olive)}
.formats{text-align:center;margin-top:2.4rem;font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);font-weight:600}

/* faq */
.faq{max-width:820px;margin:3.6rem auto 0;border-top:1px solid var(--hair)}
.faq details{border-bottom:1px solid var(--hair)}
.faq summary{list-style:none;cursor:pointer;padding:1.6rem 0;font-family:var(--serif);font-size:1.4rem;color:var(--olive);display:flex;justify-content:space-between;gap:1rem;align-items:center}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";color:var(--terra);font-family:"Montserrat",sans-serif;font-size:1.3rem}
.faq details[open] summary::after{content:"–"}
.faq .a{padding:0 0 1.6rem;color:var(--muted);max-width:64ch}

/* contact */
.contact-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:clamp(2.5rem,6vw,5rem);align-items:start}
.form .row{display:grid;grid-template-columns:1fr 1fr;gap:1.4rem}
.field{margin-bottom:1.4rem}
.field label{display:block;font-size:.62rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--olive);margin-bottom:.5rem}
.field input,.field textarea{width:100%;font-family:inherit;font-size:.95rem;padding:.85rem 0;border:0;border-bottom:1px solid var(--hair);background:transparent;color:var(--ink)}
.field input:focus,.field textarea:focus{outline:0;border-color:var(--olive)}
.field textarea{min-height:120px;resize:vertical}
.form .btn{width:100%;text-align:center;margin-top:.6rem}
.form .note{font-size:.72rem;color:var(--muted);text-align:center;margin-top:1rem}
.cdetails .d{padding:1.4rem 0;border-bottom:1px solid var(--hair)}
.cdetails .d:first-child{border-top:1px solid var(--hair)}
.cdetails .k{font-size:.6rem;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--terra);margin-bottom:.3rem}
.cdetails .v{font-family:var(--serif);font-size:1.3rem;color:var(--olive)}
.cdetails .v a{text-decoration:none}

/* final */
.final{padding:clamp(7.5rem,15vw,12rem) 0;text-align:center}
.final .sig{font-family:var(--serif);font-style:italic;color:var(--terra);font-size:clamp(1.35rem,2.2vw,1.6rem);margin-bottom:1rem}
.final h2{font-size:clamp(2.2rem,4vw,3.3rem);margin-bottom:2.6rem;line-height:1.1}
.closing{text-align:center}
.closing .sig{font-family:var(--serif);font-style:italic;color:var(--terra);font-size:1.2rem;margin-bottom:1rem}
.closing h2{font-size:clamp(2.2rem,4vw,3.3rem);margin-bottom:1.4rem;line-height:1.1}
.closing p{color:var(--muted);max-width:52ch;margin:0 auto 2.4rem}

footer{border-top:1px solid var(--hair);padding:4rem 0 2.4rem;text-align:center;font-size:.8rem;color:var(--muted)}
footer .logo{width:330px;max-width:82%;margin:0 auto 1.7rem}
footer .fnav{display:flex;justify-content:center;flex-wrap:wrap;gap:.4rem 2rem;margin-bottom:1.3rem}
footer .fnav a{text-decoration:none;font-size:.64rem;font-weight:600;letter-spacing:.24em;text-transform:uppercase;color:var(--ink);opacity:.72}
footer .fnav a:hover{opacity:1;color:var(--terra)}
footer .contact{line-height:2}
footer .crisis{font-size:.72rem;max-width:52ch;margin:1.3rem auto 0;line-height:1.6;color:#8A8A80}
footer .base{margin-top:2rem;padding-top:1.5rem;border-top:1px solid var(--hair);font-size:.7rem;color:#9A9A90}

@media(max-width:920px){
  .burger{display:block}
  .menu{display:flex;flex-direction:column;gap:0;position:absolute;top:100%;left:0;right:0;
    background:var(--white);border-top:1px solid var(--hair);box-shadow:0 24px 44px rgba(57,78,31,.08);
    padding:.4rem 0;opacity:0;visibility:hidden;transform:translateY(-10px);
    transition:opacity .25s var(--ease),transform .25s var(--ease),visibility .25s}
  .menu.open{opacity:1;visibility:visible;transform:none}
  .menu a{padding:1rem 7vw;opacity:.82}
  .menu a::after{display:none}
  .hero .grid,.hero.short .grid{grid-template-columns:1fr;min-height:0}
  .hero .photo{order:-1}.hero .photo img{min-height:0;aspect-ratio:4/5;max-height:78vh}
  .help,.bg .lead-row,.approach .grid,.feature .grid,.contact-grid{grid-template-columns:1fr}
  .feature.flip .photo{order:0}
  .help .h{border-bottom:1px solid var(--hair)}
  .trio{grid-template-columns:1fr}.trio .t{border-right:0;border-bottom:1px solid var(--hair)}.trio .t:last-child{border-bottom:0}
  .areas{grid-template-columns:1fr 1fr}
  .creds,.feels .list{grid-template-columns:1fr 1fr}
  .bg .block{grid-template-columns:1fr;gap:1rem;padding:2.4rem 0}
  .steps{gap:1rem}.steps .arrow{display:none}.steps .s{min-width:45%}
  .form .row{grid-template-columns:1fr}
}
@media(max-width:560px){.areas,.creds,.feels .list{grid-template-columns:1fr}.facts{gap:1.8rem}}

/* subtle booking invitations */
.invite{text-align:center;max-width:640px;margin-inline:auto;padding-top:clamp(2.8rem,5vw,4.2rem)}
.invite p{font-family:var(--serif);font-style:italic;font-size:clamp(1.3rem,2.4vw,1.6rem);color:var(--olive);margin:0 0 1.1rem;line-height:1.4}
.invite a{font-size:.64rem;font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:var(--terra);text-decoration:none;border-bottom:1px solid var(--terra);padding-bottom:4px}
.invite a:hover{color:var(--olive);border-color:var(--olive)}

/* grouped qualifications */
.quals{display:grid;grid-template-columns:repeat(2,1fr);gap:0;max-width:860px;margin:3.4rem auto 0;border-top:1px solid var(--hair);border-left:1px solid var(--hair)}
.quals .q{padding:2.6rem 2rem;border-right:1px solid var(--hair);border-bottom:1px solid var(--hair);text-align:center}
.quals .q .k{font-size:.6rem;font-weight:600;letter-spacing:.24em;text-transform:uppercase;color:var(--terra)}
.quals .q h3{font-size:1.5rem;margin:.55rem 0 0;font-weight:500}
.training-h{text-align:center;font-size:.66rem;font-weight:600;letter-spacing:.24em;text-transform:uppercase;color:var(--muted);margin:clamp(3rem,6vw,4.5rem) 0 0}
.training{text-align:center;max-width:780px;margin:1.4rem auto 0;font-family:var(--serif);font-size:1.25rem;color:var(--olive);line-height:2.3}
.training span:not(:last-child)::after{content:"·";color:var(--terra);margin:0 .85rem}
.research{max-width:720px;margin:clamp(3.5rem,7vw,5.5rem) auto 0;text-align:center;border-top:1px solid var(--hair);padding-top:clamp(3rem,6vw,4.5rem)}
.research .k{font-size:.66rem;font-weight:600;letter-spacing:.26em;text-transform:uppercase;color:var(--terra)}
.research h3{font-size:clamp(1.6rem,3vw,2.2rem);margin:1rem 0 1.2rem;font-weight:500}
.research p{color:var(--muted);margin:0}
@media(max-width:560px){.quals{grid-template-columns:1fr}}

/* professional standards — refined grid, not a certificate list */
.standards{display:grid;grid-template-columns:repeat(3,1fr);gap:0;max-width:900px;margin:1.6rem auto 0;border-top:1px solid var(--hair);border-left:1px solid var(--hair)}
.standards span{padding:1.15rem 1.4rem;border-right:1px solid var(--hair);border-bottom:1px solid var(--hair);font-size:.82rem;letter-spacing:.03em;color:var(--ink);display:flex;align-items:center;gap:.7rem}
.standards span::before{content:"";width:5px;height:5px;border-radius:50%;background:var(--terra);flex:none}
@media(max-width:760px){.standards{grid-template-columns:1fr 1fr}}
@media(max-width:460px){.standards{grid-template-columns:1fr}}


/* ============ Motion system — one easing, one language; reduced-motion + no-JS safe ============ */
html{scroll-padding-top:2rem}

/* Buttons — 2px lift, ~220ms colour (desktop hover) */
.btn{transition:background .22s var(--ease),color .22s var(--ease),transform .22s var(--ease),box-shadow .22s var(--ease)}
.btn:hover{transform:translateY(-2px);box-shadow:0 12px 26px rgba(57,78,31,.16)}
.btn:active{transform:translateY(0);box-shadow:0 4px 10px rgba(57,78,31,.12)}
.btn-out:hover{box-shadow:0 12px 26px rgba(57,78,31,.14)}

/* Navigation — smooth colour + drawn underline */
.menu a{position:relative;transition:color .22s var(--ease),opacity .22s var(--ease)}
.menu a::after{content:"";position:absolute;left:0;right:0;bottom:-5px;height:1px;background:var(--terra);transform:scaleX(0);transform-origin:left;transition:transform .3s var(--ease)}
.menu a:hover::after,.menu a.active::after{transform:scaleX(1)}
.fnav a{transition:color .22s var(--ease),opacity .22s var(--ease)}
.fnav a:hover{color:var(--terra)}

/* Form fields — smooth focus feedback */
.field input,.field textarea{transition:border-color .22s var(--ease)}
.field label{transition:color .22s var(--ease)}

/* Burger → X */
.burger span{transition:transform .3s var(--ease),opacity .3s var(--ease)}
.burger.active span:nth-child(1){transform:translateY(6.5px) rotate(45deg)}
.burger.active span:nth-child(2){opacity:0}
.burger.active span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg)}

@media(prefers-reduced-motion:no-preference){
  /* ---- Homepage hero: staggered load, once, no repeat ---- */
  html.js .hero .copy .eyebrow{animation:riseIn .65s var(--ease) both}
  html.js .hero .copy h1{animation:riseIn .65s var(--ease) .15s both}
  html.js .hero .copy .sub{animation:riseIn .65s var(--ease) .30s both}
  html.js .hero .copy .cta{animation:riseIn .65s var(--ease) .45s both}
  html.js .hero .copy .marks{animation:riseIn .65s var(--ease) .55s both}
  html.js .hero .photo{animation:photoIn .75s var(--ease) .20s both}

  /* ---- Content sections: fallback reveal (browsers without scroll-timeline) ---- */
  html.js main>section:not(.hero){opacity:0;transform:translateY(72px) scale(.985);filter:blur(12px);transition:opacity 1.4s var(--ease),transform 1.4s var(--ease),filter 1.4s var(--ease)}
  html.js main>section:not(.hero).in{opacity:1;transform:none;filter:blur(0)}

  /* ---- Photographs: settle separately with a soft focus-in and scale ---- */
  .break div{overflow:hidden}
  html.js main>section:not(.hero) .photo img,
  html.js main>section:not(.hero) .break img{opacity:0;transform:scale(.9);filter:blur(12px);transition:opacity 1.15s var(--ease) .1s,transform 1.15s var(--ease) .1s,filter 1.15s var(--ease) .1s}
  html.js main>section:not(.hero).in .photo img,
  html.js main>section:not(.hero).in .break img{opacity:1;transform:none;filter:blur(0)}

  /* ---- Cards & grids: grid first, then stagger 70ms left→right (top→bottom on mobile via --i) ---- */
  html.js main>section:not(.hero) .trio>*,
  html.js main>section:not(.hero) .areas>*,
  html.js main>section:not(.hero) .creds>*,
  html.js main>section:not(.hero) .list>*{opacity:0;transform:translateY(28px);transition:opacity .8s var(--ease),transform .8s var(--ease)}
  html.js main>section:not(.hero).in .trio>*,
  html.js main>section:not(.hero).in .areas>*,
  html.js main>section:not(.hero).in .creds>*,
  html.js main>section:not(.hero).in .list>*{opacity:1;transform:none;transition-delay:calc(.1s + var(--i,0) * .09s)}

  /* ---- Lazy imagery fades in gracefully as it arrives ---- */
  html.js img[loading="lazy"]{opacity:0;transition:opacity .75s var(--ease)}
  html.js img[loading="lazy"].loaded{opacity:1}

  /* ---- FAQ answer: short fade on open ---- */
  details[open] .a{animation:faqIn .25s var(--ease)}

  /* ---- Enquiry confirmation: gentle fade ---- */
  #enquiry-thanks{animation:faqIn .5s var(--ease)}
}

@keyframes riseIn{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
@keyframes photoIn{from{opacity:0;transform:scale(.985)}to{opacity:1;transform:none}}
@keyframes faqIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}

/* Respect Reduce Motion — switch everything off cleanly */
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms!important;animation-delay:0ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}
  html.js img[loading="lazy"]{opacity:1!important}
}

/* Hero name + title */
.hero-name{font-family:var(--serif);font-size:clamp(1.6rem,2.6vw,2.15rem);color:var(--olive);line-height:1.1;margin:0 0 .5rem;letter-spacing:-.01em}
/* Homepage final call-to-action email */
.final-contact{margin-top:1.4rem;font-size:.9rem;color:var(--muted)}
.final-contact a{color:var(--olive);text-decoration:underline;text-underline-offset:3px}
.final-contact a:hover{color:var(--terra)}

/* ---- Scroll-linked reveal: fades in as the section travels toward mid-screen (modern browsers) ---- */
@media(prefers-reduced-motion:no-preference){
  @supports (animation-timeline: view()){
    html.js main>section:not(.hero){
      opacity:1;transform:none;filter:none;transition:none;
      animation:revealScroll linear both;
      animation-timeline:view();
      animation-range:cover 6% cover 50%;
    }
  }
}
@keyframes revealScroll{
  from{opacity:0;transform:translateY(72px) scale(.985);filter:blur(12px)}
  to{opacity:1;transform:none;filter:blur(0)}
}
