
:root {
  --ink:#17201e; --ink-soft:#26322f; --sage:#a8b4a8; --sage-deep:#66776d;
  --paper:#fffdf8; --cream:#f2eee5; --stone:#d9d2c5; --bronze:#aa8c63;
  --line:rgba(23,32,30,.14); --white-line:rgba(255,255,255,.15);
  --serif:"Source Serif 4",Georgia,"Times New Roman",serif;
  --sans:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;
  --container:min(1180px,calc(100% - 48px)); --shadow:0 28px 80px rgba(18,25,23,.14);
}
*{box-sizing:border-box} html{scroll-behavior:smooth} body{margin:0;color:var(--ink);background:var(--paper);font-family:var(--sans);line-height:1.65;-webkit-font-smoothing:antialiased} body.menu-open{overflow:hidden} img{display:block;width:100%;height:100%;object-fit:cover} a{color:inherit;text-decoration:none} button,input{font:inherit}.container{width:var(--container);margin-inline:auto}.narrow{max-width:850px}.skip-link{position:fixed;top:12px;left:12px;z-index:1000;padding:10px 14px;background:var(--paper);transform:translateY(-160%)}.skip-link:focus{transform:none}
.site-header{position:fixed;inset:0 0 auto;z-index:100;color:#fff;transition:.25s;background:linear-gradient(to bottom,rgba(12,18,16,.48),transparent)}.site-header.is-scrolled,.site-header.menu-open{color:var(--ink);background:rgba(255,253,248,.96);box-shadow:0 1px 0 var(--line);backdrop-filter:blur(14px)}.nav-wrap{min-height:88px;display:flex;align-items:center;justify-content:space-between;gap:28px}.brand{display:flex;align-items:center;gap:13px}.brand-mark{width:34px;height:34px;position:relative;display:block}.brand-mark i{position:absolute;display:block;border:1px solid currentColor;transform:rotate(45deg)}.brand-mark i:first-child{width:25px;height:25px;left:0;bottom:0}.brand-mark i:last-child{width:16px;height:16px;right:0;top:0;background:rgba(168,180,168,.24)}.brand-copy{display:grid;line-height:1}.brand-copy strong{font-family:var(--serif);font-size:1.24rem;font-weight:500;letter-spacing:-.025em}.brand-copy small{margin-top:5px;font-size:.62rem;font-weight:700;letter-spacing:.22em;text-transform:uppercase;opacity:.72}.primary-nav{display:flex;align-items:center;gap:clamp(14px,1.6vw,24px)}.primary-nav a{font-size:.73rem;font-weight:700;letter-spacing:.095em;text-transform:uppercase}.primary-nav a:not(.nav-cta){position:relative}.primary-nav a:not(.nav-cta)::after{content:"";position:absolute;left:0;right:0;bottom:-7px;height:1px;background:currentColor;transform:scaleX(0);transform-origin:right;transition:.2s}.primary-nav a:hover::after,.primary-nav a:focus-visible::after{transform:scaleX(1);transform-origin:left}.nav-cta{border:1px solid currentColor;padding:11px 16px}.menu-toggle{display:none;width:44px;height:44px;border:0;background:transparent;color:inherit;padding:9px}.menu-toggle span{display:block;height:1px;margin:6px;background:currentColor;transition:.2s}
.hero,.landing-hero,.about-hero,.fit-page-hero{color:#fff;background:radial-gradient(circle at 12% 18%,rgba(168,180,168,.18),transparent 34%),linear-gradient(135deg,#111816 0%,#2a3733 60%,#101613 100%)}.hero{min-height:780px;overflow:hidden}.hero-grid{min-height:780px;padding-top:138px;display:grid;grid-template-columns:minmax(0,1.06fr) minmax(360px,.94fr);gap:clamp(58px,8vw,112px);align-items:center}.hero-copy{padding:42px 0 76px}.eyebrow{margin:0 0 22px;font-size:.7rem;font-weight:750;letter-spacing:.19em;text-transform:uppercase}.ink-eyebrow{color:var(--sage-deep)}.sage-eyebrow{color:#bcc8bd}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-family:var(--serif);font-weight:400;letter-spacing:-.038em;line-height:1.03}h1{font-size:clamp(3.35rem,6.35vw,6.35rem);max-width:820px;margin-bottom:28px}h2{font-size:clamp(2.65rem,4.8vw,4.8rem)}h3{font-size:clamp(1.55rem,2.25vw,2.2rem)}.hero-lede{max-width:680px;margin-bottom:36px;color:rgba(255,255,255,.76);font-size:clamp(1.05rem,1.65vw,1.25rem)}.hero-lede strong{color:#fff;font-weight:600}.cta-row{display:flex;align-items:center;gap:24px;flex-wrap:wrap}.button{display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:13px 23px;border:1px solid transparent;font-size:.75rem;font-weight:780;letter-spacing:.115em;text-transform:uppercase;cursor:pointer;transition:transform .2s,background .2s}.button:hover,.button:focus-visible{transform:translateY(-2px)}.button-primary{color:var(--ink);background:#bdc8bd}.button-primary:hover{background:#d0d8d0}.button-dark{color:#fff;background:var(--ink)}.button-dark:hover{background:var(--ink-soft)}.text-link{display:inline-flex;gap:9px;align-items:center;color:var(--sage-deep);font-size:.75rem;font-weight:760;letter-spacing:.09em;text-transform:uppercase}.text-link span{transition:transform .2s}.text-link:hover span{transform:translateX(4px)}.light-link{color:rgba(255,255,255,.79)}.hero-details{display:flex;flex-wrap:wrap;gap:10px 25px;margin-top:48px;color:rgba(255,255,255,.58);font-size:.76rem}.hero-details span+span{position:relative}.hero-details span+span:before{content:"";position:absolute;left:-14px;top:.55em;width:3px;height:3px;border-radius:50%;background:#b8c4b9}.hero-media{height:min(650px,72vh);min-height:530px;margin:32px 0 0;box-shadow:40px 40px 0 rgba(168,180,168,.14);position:relative}
.fit-ribbon{color:#fff;background:#222e2a}.ribbon-grid{display:grid;grid-template-columns:repeat(3,1fr)}.ribbon-grid>div{min-height:210px;padding:38px 34px;border-left:1px solid var(--white-line)}.ribbon-grid>div:first-child{border-left:0}.ribbon-grid span{display:block;margin-bottom:28px;color:#aebcaf;font-size:.7rem;letter-spacing:.14em}.ribbon-grid strong{display:block;margin-bottom:12px;font-family:var(--serif);font-size:1.55rem;font-weight:400}.ribbon-grid p{margin:0;color:rgba(255,255,255,.64);font-size:.89rem}
.section{padding:clamp(88px,10.5vw,148px) 0}.section-paper{background:var(--paper)}.section-sage{background:#edf0e9}.section-dark{color:#fff;background:var(--ink)}.section-heading{max-width:850px;margin-bottom:62px}.section-heading h2{margin-bottom:26px}.section-intro{max-width:780px;color:rgba(23,32,30,.68);font-size:1.05rem}.specialty-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:26px}.specialty-card{border:1px solid var(--line);background:#fff}.card-image{height:330px;overflow:hidden}.brand-image{filter:none;transition:transform .6s}.specialty-card:hover .brand-image,.editorial-image:hover .brand-image{transform:scale(1.018)}.card-copy{padding:34px 32px 38px}.card-label{margin-bottom:20px;color:var(--sage-deep);font-size:.67rem;font-weight:760;letter-spacing:.14em;text-transform:uppercase}.card-copy h3{margin-bottom:18px}.card-copy p:not(.card-label){color:rgba(23,32,30,.66);font-size:.94rem}.gate-grid{display:grid;grid-template-columns:.78fr 1.22fr;gap:clamp(50px,7vw,100px);align-items:start}.gate-grid h2{margin-bottom:26px}.large-copy{color:rgba(255,255,255,.72);font-family:var(--serif);font-size:clamp(1.3rem,2vw,1.85rem);line-height:1.35}.gate-columns{display:grid;grid-template-columns:1fr 1fr;gap:22px}.gate-card{padding:34px 30px;border:1px solid var(--white-line);background:rgba(255,255,255,.035)}.gate-card .card-label{color:#b7c4b8}.gate-card ul{margin:0;padding:0;list-style:none}.gate-card li{position:relative;padding:13px 0 13px 26px;border-bottom:1px solid rgba(255,255,255,.1);color:rgba(255,255,255,.72);font-size:.9rem}.gate-card li:last-child{border-bottom:0}.check-list li:before,.x-list li:before{position:absolute;left:0;top:14px}.check-list li:before{content:"✓";color:#c1d0c2}.x-list li:before{content:"—";color:#c9b79e}.split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(52px,8vw,110px);align-items:center}.split-reverse .prose{order:1}.split-reverse figure{order:2}.editorial-image{height:650px;margin:0;overflow:hidden;box-shadow:var(--shadow);background:var(--cream)}.editorial-image.portrait{height:610px}.prose{max-width:650px}.prose h2{margin-bottom:30px}.prose p{color:rgba(23,32,30,.7);font-size:1.04rem}.prose-inverse p{color:rgba(255,255,255,.7)}.practical-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(50px,8vw,110px);align-items:start}.detail-list{border-top:1px solid var(--line)}.detail-list>div{display:flex;justify-content:space-between;gap:25px;padding:22px 0;border-bottom:1px solid var(--line)}.detail-list span{color:rgba(23,32,30,.57);font-size:.75rem;font-weight:700;letter-spacing:.09em;text-transform:uppercase}.detail-list strong{font-family:var(--serif);font-size:1.25rem;font-weight:400;text-align:right}.final-cta{padding:clamp(76px,9vw,120px) 0;color:#fff;background:linear-gradient(135deg,#24312d,#101714)}.final-cta-grid{display:grid;grid-template-columns:1.08fr .92fr;gap:clamp(50px,8vw,110px);align-items:center}.final-cta h2{margin:0}.final-cta p{color:rgba(255,255,255,.69)}
.landing-hero{min-height:720px;padding:148px 0 88px}.landing-hero-grid{display:grid;grid-template-columns:1.04fr .96fr;gap:clamp(54px,8vw,110px);align-items:center}.landing-copy>p:not(.eyebrow){max-width:680px;color:rgba(255,255,255,.74);font-size:1.18rem}.landing-image{height:560px;margin:0;box-shadow:36px 36px 0 rgba(168,180,168,.13);overflow:hidden}.landing-intro{max-width:1030px}.landing-intro h2{max-width:900px;margin-bottom:42px}.two-column-copy{display:grid;grid-template-columns:1fr 1fr;gap:50px}.two-column-copy p{color:rgba(23,32,30,.7);font-size:1.05rem}.numbered-grid{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line)}.numbered-grid article{min-height:310px;padding:42px 30px;border-bottom:1px solid var(--line);border-left:1px solid var(--line)}.numbered-grid article:first-child{border-left:0}.numbered-grid span,.values-grid span{color:var(--sage-deep);font-size:.7rem;letter-spacing:.14em}.numbered-grid h3{margin:38px 0 18px;font-size:1.8rem}.numbered-grid p{color:rgba(23,32,30,.65);font-size:.91rem}.steps{border-top:1px solid var(--white-line)}.steps>div{display:grid;grid-template-columns:52px 1fr;column-gap:18px;padding:26px 0;border-bottom:1px solid var(--white-line)}.steps span{grid-row:1/3;color:#b8c5ba;font-size:.72rem;letter-spacing:.12em}.steps strong{font-family:var(--serif);font-size:1.45rem;font-weight:400}.steps p{margin:6px 0 0;color:rgba(255,255,255,.63);font-size:.9rem}.gate-mini{display:grid;grid-template-columns:1fr 1fr;gap:clamp(50px,8vw,110px);align-items:center}.gate-mini h2{margin:0}.gate-mini>div:last-child p{color:rgba(23,32,30,.68);margin-bottom:28px}
.about-hero{min-height:720px;padding:146px 0 76px}.about-grid{display:grid;grid-template-columns:1.08fr .92fr;gap:clamp(56px,8vw,110px);align-items:center}.about-copy p:not(.eyebrow){max-width:680px;color:rgba(255,255,255,.73);font-size:1.17rem}.about-image{height:565px;margin:0;box-shadow:36px 36px 0 rgba(168,180,168,.13)}.values-grid{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line)}.values-grid article{padding:40px 30px;min-height:290px;border-left:1px solid var(--line);border-bottom:1px solid var(--line)}.values-grid article:first-child{border-left:0}.values-grid h3{margin:40px 0 17px}.values-grid p{color:rgba(23,32,30,.66);font-size:.91rem}.quote-card{padding:50px;border:1px solid var(--white-line);background:rgba(255,255,255,.035)}.quote-card blockquote{margin:0 0 30px;font-family:var(--serif);font-size:clamp(1.55rem,2.7vw,2.35rem);line-height:1.28}.quote-card cite{color:#b9c5ba;font-size:.72rem;font-style:normal;font-weight:700;letter-spacing:.12em;text-transform:uppercase}
.fit-page-hero{padding:170px 0 105px}.fit-page-hero h1{font-size:clamp(3.3rem,6vw,5.8rem)}.fit-page-hero p:not(.eyebrow){max-width:760px;color:rgba(255,255,255,.72);font-size:1.15rem}.fit-layout{display:grid;grid-template-columns:1.18fr .82fr;gap:clamp(50px,7vw,90px);align-items:start}.fit-form fieldset{margin:0 0 48px;padding:0;border:0}.fit-form legend{width:100%;margin-bottom:22px;font-family:var(--serif);font-size:1.55rem;line-height:1.25}.fit-form legend span{display:inline-block;margin-right:13px;color:var(--sage-deep);font-family:var(--sans);font-size:.66rem;letter-spacing:.12em;vertical-align:middle}.choice{display:flex;gap:15px;margin-bottom:11px;padding:18px 19px;border:1px solid var(--line);background:#fff;cursor:pointer;transition:.2s}.choice:hover{border-color:rgba(102,119,109,.55);transform:translateY(-1px)}.choice:has(input:checked){border-color:var(--sage-deep);box-shadow:inset 4px 0 0 var(--sage-deep);background:#f8faf6}.choice.mismatch:has(input:checked){border-color:#9a7661;box-shadow:inset 4px 0 0 #9a7661;background:#fbf7f3}.choice input{width:18px;height:18px;margin-top:3px;accent-color:var(--sage-deep)}.choice span{display:grid}.choice strong{font-family:var(--serif);font-size:1.15rem;font-weight:500}.choice small{margin-top:3px;color:rgba(23,32,30,.62);font-size:.83rem}.fit-aside{position:sticky;top:122px;padding:38px;border:1px solid var(--line);background:#edf0e9}.fit-aside h2{font-size:2.45rem}.fit-aside>p:not(.eyebrow){color:rgba(23,32,30,.68)}.privacy-note{display:grid;gap:5px;margin-top:28px;padding-top:24px;border-top:1px solid var(--line)}.privacy-note strong{font-family:var(--serif);font-size:1.12rem;font-weight:500}.privacy-note span{color:rgba(23,32,30,.6);font-size:.82rem}.form-error{min-height:24px;margin:15px 0 0;color:#8f4f45;font-size:.86rem}.result-wrap{margin-top:50px}.fit-result{padding:48px;border:1px solid var(--line);background:#edf0e9}.fit-result h2{max-width:850px;margin-bottom:20px}.fit-result p:not(.eyebrow){max-width:790px;color:rgba(23,32,30,.68)}.fit-result-no,.fit-result-urgent{background:#f3ece7}.fit-result[hidden]{display:none}
.site-footer{padding:72px 0 32px;color:#fff;background:#0e1513}.footer-grid{display:grid;grid-template-columns:1.1fr .9fr .9fr;gap:55px;padding-bottom:48px}.footer-brand{font-family:var(--serif);font-size:1.55rem}.footer-grid p{max-width:400px;color:rgba(255,255,255,.56);font-size:.87rem}.footer-links,.footer-contact{display:grid;align-content:start;gap:10px}.footer-links a{color:rgba(255,255,255,.72);font-size:.82rem}.footer-contact{color:rgba(255,255,255,.65);font-size:.82rem}.footer-contact strong{color:#fff;font-family:var(--serif);font-size:1.12rem;font-weight:400}.footer-legal{display:grid;grid-template-columns:1.5fr 1fr;gap:40px;padding-top:27px;border-top:1px solid rgba(255,255,255,.12)}.footer-legal p{margin:0;color:rgba(255,255,255,.45);font-size:.72rem}.footer-legal a{text-decoration:underline}
.reveal{opacity:1;transform:none}.js .reveal{opacity:0;transform:translateY(24px);transition:opacity .75s ease,transform .75s cubic-bezier(.22,.61,.36,1)}.js .reveal.is-visible{opacity:1;transform:none}
@media(max-width:1000px){.primary-nav{gap:16px}.primary-nav a{font-size:.68rem}.hero-grid,.landing-hero-grid,.about-grid{gap:45px}.specialty-grid{grid-template-columns:1fr 1fr}.specialty-card:last-child{grid-column:auto}.numbered-grid,.values-grid{grid-template-columns:1fr 1fr}.numbered-grid article:nth-child(3),.values-grid article:nth-child(3){border-left:0}.gate-grid,.practical-grid{grid-template-columns:1fr}.gate-grid>div:first-child{max-width:760px}}
@media(max-width:820px){:root{--container:min(100% - 32px,720px)}.site-header{background:rgba(16,23,20,.35)}.menu-toggle{display:block}.primary-nav{position:fixed;inset:88px 0 auto;display:grid;gap:0;padding:12px 24px 28px;color:var(--ink);background:var(--paper);border-top:1px solid var(--line);box-shadow:0 18px 45px rgba(0,0,0,.12);transform:translateY(-130%);opacity:0;pointer-events:none;transition:.22s}.primary-nav.is-open{transform:none;opacity:1;pointer-events:auto}.primary-nav a{padding:15px 0;border-bottom:1px solid var(--line);font-size:.75rem}.primary-nav .nav-cta{margin-top:14px;padding:14px;text-align:center;border:1px solid var(--ink)}.menu-open .menu-toggle span:nth-child(1){transform:translateY(7px) rotate(45deg)}.menu-open .menu-toggle span:nth-child(2){opacity:0}.menu-open .menu-toggle span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}.hero{min-height:0}.hero-grid,.landing-hero-grid,.about-grid,.split,.final-cta-grid,.fit-layout,.gate-mini{grid-template-columns:1fr}.hero-grid{padding-top:120px}.hero-copy{padding-bottom:30px}.hero-media{height:520px;min-height:0;margin:0 0 80px;box-shadow:22px 22px 0 rgba(168,180,168,.13)}.ribbon-grid{grid-template-columns:1fr}.ribbon-grid>div{min-height:0;border-left:0;border-top:1px solid var(--white-line)}.ribbon-grid>div:first-child{border-top:0}.gate-columns{grid-template-columns:1fr}.split-reverse .prose,.split-reverse figure{order:initial}.editorial-image,.editorial-image.portrait{height:520px}.two-column-copy{grid-template-columns:1fr;gap:10px}.landing-image,.about-image{height:490px}.fit-aside{position:static}.footer-grid,.footer-legal{grid-template-columns:1fr}.footer-grid{gap:32px}.footer-legal{gap:16px}}
@media(max-width:600px){:root{--container:calc(100% - 28px)}.nav-wrap{min-height:78px}.primary-nav{inset:78px 0 auto}.brand-copy strong{font-size:1.08rem}.brand-mark{width:29px;height:29px}.brand-mark i:first-child{width:22px;height:22px}.hero-grid{padding-top:100px}.hero-copy{padding-top:25px}h1{font-size:clamp(3.05rem,15vw,4.65rem)}h2{font-size:clamp(2.35rem,11vw,3.5rem)}.hero-lede{font-size:1rem}.hero-details{display:grid;gap:5px;margin-top:35px}.hero-details span+span:before{display:none}.hero-media{height:410px;margin-bottom:54px}.section{padding:76px 0}.specialty-grid{grid-template-columns:1fr}.specialty-card:last-child{grid-column:auto}.card-image{height:290px}.gate-card{padding:28px 22px}.editorial-image,.editorial-image.portrait{height:410px}.detail-list>div{display:grid;gap:5px}.detail-list strong{text-align:left}.landing-hero,.about-hero{min-height:0;padding:108px 0 70px}.landing-image,.about-image{height:410px;box-shadow:18px 18px 0 rgba(168,180,168,.13)}.numbered-grid,.values-grid{grid-template-columns:1fr}.numbered-grid article,.values-grid article{min-height:0;border-left:0}.fit-page-hero{padding:125px 0 76px}.fit-form-section{padding-top:65px}.choice{padding:16px 14px}.fit-result{padding:32px 24px}.quote-card{padding:34px 26px}.footer-grid{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.js .reveal{opacity:1;transform:none;transition:none}.button,.brand-image{transition:none}}

/* V2: privacy + faith sections */
.privacy-section{position:relative;color:#fff;background:#101714;overflow:hidden}
.privacy-section:before{content:none;display:none}
.privacy-grid{position:relative;display:grid;grid-template-columns:.88fr 1.12fr;gap:clamp(50px,8vw,110px);align-items:start}
.privacy-grid h2{margin:0;max-width:680px}
.privacy-copy>p{color:rgba(255,255,255,.75);font-size:1.05rem}
.privacy-points{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;margin:34px 0;background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.16)}
.privacy-points span{padding:22px 18px;background:rgba(13,20,18,.68);font-size:.72rem;font-weight:700;letter-spacing:.09em;text-transform:uppercase}
.micro-note{font-size:.78rem!important;color:rgba(255,255,255,.52)!important}
@media(max-width:820px){.privacy-grid{grid-template-columns:1fr}.privacy-points{grid-template-columns:1fr}}




/* PORTRAIT CROPPING: anchor portrait images to the top of their frames */
.hero-media img,
.editorial-image.portrait img,
.about-image img { object-position: center top; }

/* HERO PHOTO ACCENT LINE: decorative accent sits just outside the photo instead of crossing the portrait */



/* V6: NEW PATHWAYS DUAL LOGO */
.brand-logo-wrap{position:relative;display:block;width:48px;height:50px;flex:0 0 48px}
.brand-logo{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;transition:opacity .28s ease}
.brand-logo-dark{opacity:0}
.brand-logo-light{opacity:1}
.site-header.is-scrolled .brand-logo-dark,.site-header.menu-open .brand-logo-dark{opacity:1}
.site-header.is-scrolled .brand-logo-light,.site-header.menu-open .brand-logo-light{opacity:0}
@media(max-width:600px){.brand-logo-wrap{width:42px;height:44px;flex-basis:42px}}

/* V6: CONSULTATION ACCESS */
.specialty-consult{display:flex;align-items:center;justify-content:space-between;gap:28px;margin-top:38px;padding-top:32px;border-top:1px solid var(--line)}
.specialty-consult p{margin:0;font-family:var(--serif);font-size:clamp(1.35rem,2vw,1.8rem)}
.mobile-consult{display:none}

/* V6: PREMIUM MOTION — restrained scroll reveal, image settle, hover lift */
.js .reveal{
  transition-delay:var(--reveal-delay,0ms);
  transform:translate3d(0,18px,0);
  transition-property:opacity,transform;
  transition-duration:.68s,.82s;
  transition-timing-function:ease,cubic-bezier(.22,.61,.36,1)
}
.js .reveal.is-visible{transform:translate3d(0,0,0)}

.js .hero-copy.reveal > *{
  opacity:0;
  transform:translate3d(0,12px,0);
  transition:opacity .58s ease,transform .7s cubic-bezier(.22,.61,.36,1)
}
.js .hero-copy.reveal.is-visible > *{opacity:1;transform:none}
.js .hero-copy.reveal.is-visible > *:nth-child(1){transition-delay:.06s}
.js .hero-copy.reveal.is-visible > *:nth-child(2){transition-delay:.12s}
.js .hero-copy.reveal.is-visible > *:nth-child(3){transition-delay:.19s}
.js .hero-copy.reveal.is-visible > *:nth-child(4){transition-delay:.26s}
.js .hero-copy.reveal.is-visible > *:nth-child(5){transition-delay:.33s}

.motion-image{--parallax-y:0px}
.motion-image>img{
  transform:translate3d(0,var(--parallax-y),0) scale(1.025);
  will-change:transform;
  transition:transform 1.05s cubic-bezier(.22,.61,.36,1),filter .35s ease
}
.motion-image.is-visible>img{transform:translate3d(0,var(--parallax-y),0) scale(1.01)}

.specialty-card{
  transition:transform .34s cubic-bezier(.22,.61,.36,1),box-shadow .34s ease,border-color .34s ease
}
.specialty-card:hover{
  transform:translateY(-4px);
  box-shadow:0 24px 60px rgba(18,25,23,.09);
  border-color:rgba(102,119,109,.28)
}
.button{position:relative;overflow:hidden}
.button:after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(105deg,transparent 35%,rgba(255,255,255,.18) 50%,transparent 65%);
  transform:translateX(-130%);
  transition:transform .55s ease;
  pointer-events:none
}
.button:hover:after{transform:translateX(130%)}

@media(max-width:820px){
  .specialty-consult{align-items:flex-start;flex-direction:column}
  body{padding-bottom:68px}
  .mobile-consult{
    display:flex;
    position:fixed;
    z-index:120;
    left:14px;
    right:14px;
    bottom:max(12px,env(safe-area-inset-bottom));
    min-height:50px;
    align-items:center;
    justify-content:center;
    color:#fff;
    background:rgba(23,32,30,.96);
    border:1px solid rgba(255,255,255,.16);
    box-shadow:0 14px 38px rgba(0,0,0,.22);
    backdrop-filter:blur(12px);
    font-size:.72rem;
    font-weight:780;
    letter-spacing:.115em;
    text-transform:uppercase
  }
}
@media(prefers-reduced-motion:reduce){
  .js .hero-copy.reveal > *{opacity:1;transform:none;transition:none}
  
  .specialty-card,.button:after{transition:none}
}


/* V7: SCROLL-TRIGGERED PREMIUM ENTRANCE
   Elements stay hidden until they approach the viewport.
   Slight lift + scale + blur creates the subtle modern "pop" effect. */
.js .reveal{
  opacity:0;
  transform:translate3d(0,30px,0) scale(.988);
  filter:blur(3px);
  transition:
    opacity .62s ease var(--reveal-delay,0ms),
    transform .78s cubic-bezier(.22,.61,.36,1) var(--reveal-delay,0ms),
    filter .62s ease var(--reveal-delay,0ms);
  will-change:opacity,transform,filter;
}
.js .reveal.is-visible{
  opacity:1;
  transform:translate3d(0,0,0) scale(1);
  filter:blur(0);
}
.js .hero-copy.reveal > *{
  opacity:0;
  transform:translate3d(0,14px,0);
  filter:blur(2px);
  transition:
    opacity .55s ease,
    transform .72s cubic-bezier(.22,.61,.36,1),
    filter .55s ease;
}
.js .hero-copy.reveal.is-visible > *{
  opacity:1;
  transform:none;
  filter:blur(0);
}
.js .hero-copy.reveal.is-visible > *:nth-child(1){transition-delay:.05s}
.js .hero-copy.reveal.is-visible > *:nth-child(2){transition-delay:.11s}
.js .hero-copy.reveal.is-visible > *:nth-child(3){transition-delay:.18s}
.js .hero-copy.reveal.is-visible > *:nth-child(4){transition-delay:.25s}
.js .hero-copy.reveal.is-visible > *:nth-child(5){transition-delay:.32s}

/* Image arrival gets a separate, slower settle. */
.motion-image{overflow:hidden;--parallax-y:0px}
.motion-image>img{
  transform:translate3d(0,var(--parallax-y),0) scale(1.045);
  transition:transform 1.05s cubic-bezier(.22,.61,.36,1),filter .55s ease;
  will-change:transform;
}
.motion-image.is-visible>img{
  transform:translate3d(0,var(--parallax-y),0) scale(1.012);
}

/* Remove the old portrait flourish entirely. */
.hero-media:before{content:none!important;display:none!important}

@media(prefers-reduced-motion:reduce){
  .js .reveal,
  .js .hero-copy.reveal > *{
    opacity:1;
    transform:none;
    filter:none;
    transition:none;
  }
  
}


/* V9: THREE PRIMARY SPECIALTIES */
@media(min-width:1001px){
  .specialty-grid-three{grid-template-columns:repeat(3,1fr)}
  .specialty-grid-three .card-image{height:300px}
}

/* V9: EASY IMAGE CROP CONTROL
   Add class="crop-control" to the FIGURE/DIV around an image, then edit:
   --crop-x: 50%;   0%=show farther left, 100%=show farther right
   --crop-y: 0%;    0%=top, 50%=center, 100%=bottom
   --image-zoom: 1; 1=no extra zoom, 1.08=8% extra zoom
   Example: style="--crop-x:62%; --crop-y:8%; --image-zoom:1.06;"
*/
.crop-control>img{object-position:var(--crop-x,50%) var(--crop-y,50%)}
.motion-image.crop-control>img{
  transform:translate3d(0,var(--parallax-y),0) scale(calc(var(--image-zoom,1) + .033));
}
.motion-image.crop-control.is-visible>img{
  transform:translate3d(0,var(--parallax-y),0) scale(var(--image-zoom,1));
}
@media(prefers-reduced-motion:reduce){
  .motion-image.crop-control>img,.motion-image.crop-control.is-visible>img{
    transform:scale(var(--image-zoom,1))!important;
  }
}


/* V10: IMAGE FILES ARE ALREADY COLOR GRADED — no browser color grading */
.brand-image{filter:none!important}
.specialty-card:hover .brand-image,.editorial-image:hover .brand-image{filter:none!important}


/* V11: CONFIDENTIALITY CALLOUTS — text only, no table/boxes */
.privacy-points{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  border:0!important;
  background:transparent!important;
  gap:0;
}
.privacy-points .privacy-point,
.privacy-points > span{
  display:flex;
  flex-direction:column;
  justify-content:flex-start;
  gap:9px;
  min-height:96px;
  padding:8px 28px;
  border:0!important;
  background:transparent!important;
}
.privacy-points .privacy-point:first-child,
.privacy-points > span:first-child{padding-left:0}
.privacy-points .privacy-point + .privacy-point,
.privacy-points > span + span{
  border-left:1px solid rgba(255,255,255,.22)!important;
}
.privacy-point strong{
  color:#fff;
  font-size:.76rem;
  line-height:1.35;
  letter-spacing:.11em;
  text-transform:uppercase;
}
.privacy-point span{
  color:rgba(255,255,255,.66);
  font-size:.91rem;
  line-height:1.55;
  max-width:24ch;
}
@media(max-width:820px){
  .privacy-points{grid-template-columns:1fr}
  .privacy-points .privacy-point,
  .privacy-points > span{
    min-height:0;
    padding:20px 0;
  }
  .privacy-points .privacy-point + .privacy-point,
  .privacy-points > span + span{
    border-left:0!important;
    border-top:1px solid rgba(255,255,255,.20)!important;
  }
}


/* V12: SPECIALTY OFFER NAMES ORIENT THE VISITOR FIRST */
.specialty-card .offer-title{
  margin:0 0 16px;
  color:var(--ink);
  font-family:var(--serif);
  font-size:clamp(2rem,2.7vw,2.8rem);
  font-weight:400;
  letter-spacing:-.038em;
  line-height:.98;
}
.specialty-card .offer-tagline{
  margin:0 0 18px;
  color:rgba(23,32,30,.82);
  font-family:var(--serif);
  font-size:clamp(1.22rem,1.55vw,1.55rem);
  line-height:1.18;
  letter-spacing:-.02em;
}
.specialty-card .offer-tagline + p{
  margin-top:0;
}

/* V12: CONTENT IMAGES DISPLAY WITHOUT CSS COLOR/ZOOM/PARALLAX ALTERATION.
   The container may still fade/slide into view, but the image pixels are not
   filtered, color-graded, zoomed, or shifted by the motion system. */
.brand-image{
  filter:none!important;
}


/* Keep user-controlled portrait framing only. --image-zoom defaults to 1. */
.motion-image.crop-control>img,
.motion-image.crop-control.is-visible>img{
  transform:scale(var(--image-zoom,1))!important;
}
/* Don't blur the photo itself during scroll reveal. */


/* V13: NO PERMANENT COLOR GRADING
   Motion/blur/zoom effects remain active; no saturation/contrast/sepia/brightness grade is applied. */
.brand-image{filter:none}

/* V13: SPECIALTY CARD HIERARCHY — conceptual tag first, service name second */
.specialty-card .offer-tagline{
  margin:0 0 17px;
  color:var(--sage-deep);
  font-family:var(--sans);
  font-size:.72rem;
  font-weight:720;
  line-height:1.45;
  letter-spacing:.075em;
}
.specialty-card .offer-title{
  margin:0 0 20px;
  color:var(--ink);
  font-family:var(--serif);
  font-size:clamp(2.15rem,3vw,3.1rem);
  font-weight:400;
  letter-spacing:-.04em;
  line-height:.98;
}
.specialty-card .offer-title + p{
  margin-top:0;
}




/* V16: HEADER CONSULT — invert only the navigation Request Consult box */
.nav-cta{
  transition:background-color .24s ease,color .24s ease,border-color .24s ease;
}
.site-header:not(.is-scrolled):not(.menu-open) .nav-cta:hover,
.site-header:not(.is-scrolled):not(.menu-open) .nav-cta:focus-visible{
  background:#fff;
  color:var(--ink);
  border-color:#fff;
}
.site-header.is-scrolled .nav-cta:hover,
.site-header.is-scrolled .nav-cta:focus-visible,
.site-header.menu-open .nav-cta:hover,
.site-header.menu-open .nav-cta:focus-visible{
  background:var(--ink);
  color:#fff;
  border-color:var(--ink);
}

/* V16: PALE-SAGE REQUEST CONSULT — dark moving sheen only on these buttons */
.button.button-primary[href="request-consult.html"]::after{
  background:linear-gradient(
    105deg,
    transparent 34%,
    rgba(23,32,30,.10) 44%,
    rgba(23,32,30,.34) 50%,
    rgba(23,32,30,.10) 56%,
    transparent 66%
  );
}


/* V17: Counselor CTA spacing */
.counselor-consult{
  margin-top:10px;
}


/* V18: SPECIALTY CARDS — equal-height internal layout without overflow.
   The ARTICLE is the flex column; card-copy fills only the space below its image. */
.specialty-grid-three{
  align-items:stretch;
}
.specialty-card{
  display:flex;
  flex-direction:column;
  height:100%;
}
.specialty-card .card-image{
  flex:0 0 330px;
}
.specialty-card .card-copy{
  display:flex;
  flex:1 1 auto;
  flex-direction:column;
  height:auto;
  min-height:0;
}
.specialty-card .offer-eyebrow{
  min-height:3.35em;
  margin:0 0 15px;
  color:var(--sage-deep);
  font-family:var(--sans);
  font-size:.72rem;
  font-weight:760;
  line-height:1.55;
  letter-spacing:.12em;
  text-transform:uppercase;
}
.specialty-card .offer-title{
  min-height:2.05em;
  margin:0 0 22px;
  color:var(--ink);
  font-family:var(--serif);
  font-size:clamp(2.2rem,3vw,3.15rem);
  font-weight:400;
  letter-spacing:-.04em;
  line-height:.96;
}
.specialty-card .offer-title + p{
  margin-top:0;
}
.specialty-card .card-copy > .text-link{
  margin-top:auto;
  padding-top:18px;
}

/* V18: PRACTICE DETAILS — subtle warm transition between paper and dark CTA */
.practical-section{
  background:var(--cream);
}

@media(max-width:600px){
  .specialty-card .card-image{
    flex-basis:290px;
  }
}


/* V19: SERVICE HERO — literal search term is the large faded H1;
   conceptual headline stays smaller, elegant, and easy to read. */
.service-seo-title{
  margin:0 0 10px;
  max-width:980px;
  color:rgba(255,255,255,.17);
  font-family:var(--sans);
  font-size:clamp(3.1rem,6vw,6.4rem);
  font-weight:780;
  line-height:.88;
  letter-spacing:-.045em;
  text-transform:uppercase;
}
.service-display-title{
  margin:0 0 28px;
  max-width:780px;
  color:#fff;
  font-family:var(--serif);
  font-size:clamp(2.7rem,4.4vw,4.65rem);
  font-weight:400;
  line-height:.98;
  letter-spacing:-.04em;
}


/* V19: HOMEPAGE MOBILE CTA FLOW */
.hero-mobile-cta,
.counselor-mobile-cta{
  display:none;
}
@media(max-width:820px){
  /* In the opening hero, retain the page copy and portrait, but remove secondary
     actions/metadata. The single consult action follows the portrait. */
  .hero-copy .cta-row,
  .hero-details{
    display:none!important;
  }
  .hero-mobile-cta{
    display:flex;
    justify-content:flex-start;
    margin:-48px 0 70px;
  }

  /* Desktop counselor CTA stays with the prose; mobile CTA moves beneath portrait. */
  .counselor-section .counselor-consult{
    display:none!important;
  }
  .counselor-mobile-cta{
    display:flex;
    justify-content:flex-start;
    margin:24px 0 0;
  }
}


/* V19: leave room for the fixed header when mobile auto-advance scrolls questions. */
.fit-form fieldset{
  scroll-margin-top:110px;
}


/* V20: MOBILE CTA / HERO REFINEMENT */

/* Fixed mobile Request Consult banner intentionally removed. */
.mobile-consult{display:none!important}

/* Mobile service photography doubles as the CTA surface. */
.mobile-image-actions{display:none}

@media(max-width:820px){
  /* Homepage: keep the copy together, then move directly into the portrait.
     Reduces the previous combined grid-gap + copy-padding dead space. */
  .hero-grid{
    row-gap:18px;
  }
  .hero-copy{
    padding-bottom:0;
  }

  /* Both portrait CTAs are centered on mobile only. */
  .hero-mobile-cta,
  .counselor-mobile-cta{
    justify-content:center!important;
    text-align:center;
  }
  .hero-mobile-cta{
    margin:22px 0 58px;
  }
  .counselor-mobile-cta{
    margin:24px 0 0;
  }

  /* Service pages: desktop buttons disappear from the text column on mobile.
     Their actions are presented over the lower part of the photograph instead. */
  .landing-copy > .cta-row{
    display:none!important;
  }
  .landing-image{
    position:relative;
  }
  .landing-image:after{
    content:"";
    position:absolute;
    z-index:1;
    inset:auto 0 0;
    height:42%;
    pointer-events:none;
    background:linear-gradient(to top,rgba(9,14,12,.82),rgba(9,14,12,.42) 52%,transparent);
  }
  .mobile-image-actions{
    position:absolute;
    z-index:2;
    left:18px;
    right:18px;
    bottom:18px;
    display:flex;
    align-items:center;
    justify-content:center;
    gap:14px;
  }
  .mobile-image-consult{
    min-height:48px;
    padding:12px 18px;
    color:var(--ink);
    background:rgba(244,241,233,.94);
    border:1px solid rgba(255,255,255,.72);
    backdrop-filter:blur(8px);
  }
  .mobile-image-details{
    display:inline-flex;
    min-height:48px;
    align-items:center;
    gap:7px;
    padding:12px 4px;
    color:#fff;
    font-size:.7rem;
    font-weight:760;
    letter-spacing:.09em;
    text-transform:uppercase;
  }
  .mobile-image-details span{
    transition:transform .2s ease;
  }
  .mobile-image-details:hover span,
  .mobile-image-details:focus-visible span{
    transform:translateY(3px);
  }
}

@media(max-width:430px){
  .mobile-image-actions{
    gap:10px;
  }
  .mobile-image-consult{
    padding-inline:14px;
    font-size:.68rem;
  }
  .mobile-image-details{
    font-size:.66rem;
  }
}
