/* Hlela Advisory Services, v3 */
@font-face{font-family:"Cormorant Garamond";src:url(/assets/fonts/cormorant-300.woff2) format("woff2");font-weight:300;font-style:normal;font-display:swap}
@font-face{font-family:"Cormorant Garamond";src:url(/assets/fonts/cormorant-400.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Cormorant Garamond";src:url(/assets/fonts/cormorant-500.woff2) format("woff2");font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:"Cormorant Garamond";src:url(/assets/fonts/cormorant-500-italic.woff2) format("woff2");font-weight:500;font-style:italic;font-display:swap}
@font-face{font-family:"Cormorant Garamond";src:url(/assets/fonts/cormorant-300-italic.woff2) format("woff2");font-weight:300;font-style:italic;font-display:swap}
@font-face{font-family:"Cormorant Garamond";src:url(/assets/fonts/cormorant-400-italic.woff2) format("woff2");font-weight:400;font-style:italic;font-display:swap}
@font-face{font-family:"Inter";src:url(/assets/fonts/inter-400.woff2) format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:"Inter";src:url(/assets/fonts/inter-500.woff2) format("woff2");font-weight:500;font-display:swap}

:root{
  --ink:#041719;        /* near-black teal */
  --deep:#072A2C;
  --teal:#0B3B3D;       /* logo teal */
  --teal-2:#124547;
  --green:#42834E;      /* logo green */
  --gold:#C9A84C;
  --gold-2:#E2C276;
  --paper:#F6F4EF;
  --white:#FFFFFF;
  --text:#132222;
  --muted:#556462;
  --rule:#DDD8CD;
  --rule-dark:rgba(255,255,255,.14);
  --serif:"Cormorant Garamond",Garamond,"Times New Roman",serif;
  --sans:"Inter",system-ui,-apple-system,"Segoe UI",Helvetica,Arial,sans-serif;
  --max:1200px;
  --gutter:clamp(20px,5vw,48px);
  --space-1:clamp(72px,8.4vw,120px);
  --space-2:clamp(96px,12vw,176px);
  --ease:cubic-bezier(.2,.7,.2,1);
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:24px}
body{margin:0;background:var(--paper);color:var(--text);font:400 17px/1.7 var(--sans);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;font-variant-numeric:lining-nums}
img,picture{display:block;max-width:100%}
a{color:inherit}
h1,h2,h3,h4{font-family:var(--serif);font-weight:300;margin:0;line-height:1.05;letter-spacing:-.012em;font-variant-numeric:lining-nums}
h1 em,h2 em,h3 em{font-style:italic;color:var(--gold-2)}
p{margin:0}
.container{width:100%;max-width:calc(var(--max) + 2 * var(--gutter));margin:0 auto;padding:0 var(--gutter)}
.grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:clamp(16px,2.2vw,32px)}

/* Accessibility */
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;clip-path:inset(50%)!important;white-space:nowrap!important;border:0!important}
.skip-link{position:absolute;top:12px;left:12px;z-index:200;padding:12px 18px;background:var(--gold);color:var(--ink);font:500 14px/1 var(--sans);text-decoration:none}
.skip-link:not(:focus-visible){position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;clip-path:inset(50%)!important;white-space:nowrap!important}
:focus-visible{outline:2px solid var(--gold);outline-offset:3px}

/* Labels & buttons */
.eyebrow{display:flex;align-items:center;gap:16px;font:500 12px/1 var(--sans);letter-spacing:.28em;text-transform:uppercase;color:var(--gold);margin-bottom:28px}
.eyebrow::before{content:"";width:40px;height:1px;background:currentColor;flex:none}
.eyebrow.on-light{color:var(--green)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:12px;min-height:54px;padding:0 30px;font:500 12.5px/1 var(--sans);letter-spacing:.2em;text-transform:uppercase;text-decoration:none;border:1px solid var(--gold);transition:background .25s var(--ease),color .25s var(--ease),border-color .25s var(--ease)}
.btn-gold{background:var(--gold);color:var(--ink)}
.btn-gold:hover{background:var(--gold-2);border-color:var(--gold-2)}
.btn-line{color:var(--white);background:transparent}
.btn-line:hover{background:var(--gold);color:var(--ink)}
.btn-dark{color:var(--teal);border-color:var(--teal)}
.btn-dark:hover{background:var(--teal);color:var(--white)}
.btn .arrow{width:18px;height:1px;background:currentColor;position:relative}
.btn .arrow::after{content:"";position:absolute;right:0;top:-3px;width:7px;height:7px;border-top:1px solid currentColor;border-right:1px solid currentColor;transform:rotate(45deg)}
.text-link{font:500 12.5px/1 var(--sans);letter-spacing:.2em;text-transform:uppercase;text-decoration:none;color:var(--white);padding:8px 0;border-bottom:1px solid rgba(255,255,255,.35);transition:border-color .25s}
.text-link:hover{border-color:var(--gold)}

/* Header */
.site-header{position:absolute;inset:0 0 auto;z-index:60;color:var(--white)}
.site-header::before{content:"";position:absolute;inset:0 0 auto;height:3px;background:var(--gold)}
.header-row{display:flex;align-items:center;justify-content:space-between;height:104px}
.brand{display:block;flex:none}
.brand img{width:188px;height:auto}
.nav-desktop{display:flex;align-items:center;gap:clamp(28px,3vw,44px)}
.nav-desktop ul{display:flex;gap:clamp(24px,2.6vw,40px);list-style:none;margin:0;padding:0}
.nav-desktop a.nav-link{display:block;padding:10px 0;font:500 12px/1 var(--sans);letter-spacing:.2em;text-transform:uppercase;text-decoration:none;color:rgba(255,255,255,.82);position:relative;margin-right:-.2em}
.nav-desktop a.nav-link::after{content:"";position:absolute;left:0;right:.2em;bottom:2px;height:1px;background:var(--gold);transform:scaleX(0);transform-origin:left;transition:transform .35s var(--ease)}
.nav-desktop a.nav-link:hover,.nav-desktop a.nav-link[aria-current="page"]{color:var(--white)}
.nav-desktop a.nav-link:hover::after,.nav-desktop a.nav-link[aria-current="page"]::after{transform:scaleX(1)}
.nav-desktop .btn{min-height:44px;padding:0 22px;font-size:11.5px}
.menu-toggle{display:none;align-items:center;gap:12px;background:none;border:0;color:var(--white);font:500 12px/1 var(--sans);letter-spacing:.2em;text-transform:uppercase;padding:12px 0;cursor:pointer}
.menu-toggle .bars{width:26px;height:10px;position:relative}
.menu-toggle .bars::before,.menu-toggle .bars::after{content:"";position:absolute;left:0;right:0;height:1.5px;background:currentColor;transition:transform .3s var(--ease),top .3s var(--ease)}
.menu-toggle .bars::before{top:0}.menu-toggle .bars::after{top:8.5px}
.menu-toggle[aria-expanded="true"] .bars::before{top:4px;transform:rotate(45deg)}
.menu-toggle[aria-expanded="true"] .bars::after{top:4px;transform:rotate(-45deg)}
.mobile-menu{position:fixed;inset:0;z-index:55;background:var(--ink);color:var(--white);padding:128px var(--gutter) 40px;display:flex;flex-direction:column;justify-content:space-between;opacity:0;visibility:hidden;transition:opacity .35s var(--ease),visibility .35s}
.mobile-menu.open{opacity:1;visibility:visible}
.mobile-menu ul{list-style:none;margin:0;padding:0;border-top:1px solid var(--rule-dark)}
.mobile-menu li{border-bottom:1px solid var(--rule-dark)}
.mobile-menu a.m-link{display:flex;justify-content:space-between;align-items:baseline;padding:18px 0;font:300 40px/1.1 var(--serif);text-decoration:none}
.mobile-menu a.m-link span{font:500 11px/1 var(--sans);letter-spacing:.24em;color:var(--gold)}
.mobile-menu .m-foot{display:grid;gap:16px;font-size:15px;color:rgba(255,255,255,.75)}
.mobile-menu .m-foot a{text-decoration:none}
body.menu-open{overflow:hidden}

/* Hero (home) */
.hero{position:relative;min-height:100vh;min-height:100svh;display:flex;flex-direction:column;justify-content:flex-end;color:var(--white);background:var(--ink);overflow:hidden;isolation:isolate}
.hero-media,.hero-media img{position:absolute;inset:0;width:100%;height:100%}
.hero-media img{object-fit:cover;object-position:62% 45%}
.hero-shade{position:absolute;inset:0;z-index:1;background:
  linear-gradient(180deg,rgba(4,23,25,.70) 0%,rgba(4,23,25,0) 22%),
  linear-gradient(90deg,rgba(4,23,25,.95) 0%,rgba(4,23,25,.88) 34%,rgba(4,23,25,.62) 60%,rgba(4,23,25,.22) 84%,rgba(4,23,25,.12) 100%),
  linear-gradient(0deg,rgba(4,23,25,.85) 0%,rgba(4,23,25,0) 32%)}
.hero-inner{position:relative;z-index:2;padding-top:180px;padding-bottom:clamp(40px,6vh,72px)}
.hero h1{font-size:clamp(46px,6.3vw,104px);line-height:1;max-width:11.6em;letter-spacing:-.02em}
.hero-sub{margin-top:36px;max-width:31em;font-size:clamp(17px,1.35vw,20px);line-height:1.6;color:rgba(255,255,255,.84)}
.hero-actions{display:flex;flex-wrap:wrap;align-items:center;gap:20px 36px;margin-top:48px}
.hero-rail{position:relative;z-index:2;border-top:1px solid var(--rule-dark)}
.hero-rail .container{display:flex;justify-content:flex-start;gap:clamp(40px,8vw,140px);align-items:center;height:72px;font:500 11.5px/1 var(--sans);letter-spacing:.24em;text-transform:uppercase;color:rgba(255,255,255,.62)}
.scroll-cue{display:flex;align-items:center;gap:14px;text-decoration:none}
.scroll-cue i{display:block;width:1px;height:28px;background:linear-gradient(var(--gold),transparent)}

/* Sections */
.section{padding:var(--space-1) 0}
.dark{background:var(--ink);color:var(--white)}
.deep{background:var(--deep);color:var(--white)}
.paper{background:var(--paper)}
.white{background:var(--white)}
.h2{font-size:clamp(40px,4.6vw,72px);line-height:1.02}
.lead{font:300 clamp(24px,2.1vw,32px)/1.4 var(--serif);letter-spacing:-.005em}
.body-lg{font-size:18px;line-height:1.75}
.muted{color:var(--muted)}

/* Who we serve */
.serve .grid{align-items:end;row-gap:56px}
.serve .serve-copy{grid-column:1/8}
.serve .serve-copy .lead{color:rgba(255,255,255,.9)}
.serve .proof{grid-column:9/13;border-left:1px solid var(--rule-dark);padding-left:clamp(24px,3vw,44px)}
.proof .fig{display:block;font:300 clamp(64px,7vw,112px)/.9 var(--serif);color:var(--gold-2);letter-spacing:-.02em}
.proof .fig-label{display:block;margin:10px 0 28px;font:500 11.5px/1.5 var(--sans);letter-spacing:.24em;text-transform:uppercase;color:rgba(255,255,255,.65)}
.proof p{font-size:15px;color:rgba(255,255,255,.6)}

/* Practice */
.practice-head{row-gap:32px;align-items:end;margin-bottom:clamp(56px,7vw,96px)}
.practice-head .ph-title{grid-column:1/7}
.practice-head .ph-title h2{color:var(--teal)}
.practice-head .ph-title h2 em{color:var(--green)}
.practice-head .ph-intro{grid-column:8/13;color:var(--muted);font-size:18px}
.area-index{list-style:none;margin:0 0 8px;padding:0;display:grid;grid-template-columns:repeat(5,1fr);border-top:1px solid var(--teal)}
.area-index a{display:block;padding:20px 16px 20px 0;text-decoration:none;font:400 21px/1.2 var(--serif);color:var(--teal);transition:color .2s}
.area-index a span{display:block;font:500 11px/1 var(--sans);letter-spacing:.24em;color:var(--gold);margin-bottom:10px}
.area-index a:hover{color:var(--green)}
.area{border-top:1px solid var(--rule);padding:clamp(48px,6vw,84px) 0;row-gap:36px}
.area:first-of-type{border-top-color:var(--teal)}
.area-head{grid-column:1/6}
.area-num{display:block;font:italic 300 44px/1 var(--serif);color:var(--gold);margin-bottom:20px}
.area h3{font-size:clamp(34px,3.2vw,50px);color:var(--teal);line-height:1.04}
.area-tag{display:inline-block;margin-top:18px;font:500 11px/1 var(--sans);letter-spacing:.22em;text-transform:uppercase;color:var(--green);border:1px solid rgba(66,131,78,.4);padding:8px 12px}
.area-intro{margin-top:24px;color:var(--muted);max-width:30em}
.area-body{grid-column:7/13}
.area-body .handle-label{font:500 11.5px/1 var(--sans);letter-spacing:.24em;text-transform:uppercase;color:var(--teal);margin-bottom:8px}
.handles{list-style:none;margin:0;padding:0}
.handles li{display:grid;grid-template-columns:minmax(150px,13em) 1fr;gap:8px 28px;padding:20px 0;border-bottom:1px solid var(--rule)}
.handles li:last-child{border-bottom:0}
.handles strong{font:400 22px/1.25 var(--serif);color:var(--teal)}
.handles span{color:var(--muted);font-size:16px;line-height:1.65}

/* Why */
.why-head{display:flex;justify-content:space-between;align-items:end;gap:32px;margin-bottom:clamp(56px,7vw,88px)}
.why-cols{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(32px,4vw,64px)}
.why-col{border-top:1px solid rgba(201,168,76,.55);padding-top:32px}
.why-col .n{display:block;font:italic 300 34px/1 var(--serif);color:var(--gold);margin-bottom:26px}
.why-col h3{font-size:clamp(30px,2.5vw,38px);margin-bottom:18px;line-height:1.1}
.why-col p{color:rgba(255,255,255,.74)}

/* CTA band */
.cta{position:relative;color:var(--white);background:var(--ink);overflow:hidden;isolation:isolate;padding:var(--space-2) 0}
.cta picture,.cta picture img{position:absolute;inset:0;width:100%;height:100%}
.cta picture img{object-fit:cover;object-position:50% 40%}
.cta::after{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,rgba(4,23,25,.93) 0%,rgba(4,23,25,.80) 50%,rgba(4,23,25,.62) 100%)}
.cta .container{position:relative;z-index:2}
.cta h2{font-size:clamp(48px,6.4vw,104px);line-height:1;max-width:10em;letter-spacing:-.02em}
.cta-line{margin-top:32px;font-size:16px;color:rgba(255,255,255,.8);letter-spacing:.02em}
.cta-line a{text-decoration:none;border-bottom:1px solid rgba(201,168,76,.55)}
.cta .btn{margin-top:44px}

/* Page head (about/contact) */
.page-head{position:relative;background:var(--ink);color:var(--white);padding:200px 0 var(--space-1);overflow:hidden;isolation:isolate}
.page-head::before{content:"";position:absolute;z-index:-1;right:-4%;top:-12%;bottom:-12%;aspect-ratio:700/763;background:url(/assets/img/monogram-outline-700.png) center/contain no-repeat;opacity:.07;pointer-events:none}
.page-head h1{font-size:clamp(44px,5.6vw,92px);line-height:1.02;max-width:13em;letter-spacing:-.02em}
.page-head .lede{margin-top:36px;max-width:36em;font-size:clamp(17px,1.35vw,20px);color:rgba(255,255,255,.82)}

/* About */
.who .grid{row-gap:64px;align-items:start}
.portrait-fig{grid-column:1/6;margin:0;position:relative}
.portrait-frame{position:relative;padding:0 0 18px 18px}
.portrait-frame::before{content:"";position:absolute;left:0;bottom:0;width:calc(100% - 18px);height:calc(100% - 18px);border:1px solid var(--gold)}
.portrait-frame img{position:relative;width:100%;height:auto;aspect-ratio:4/5;object-fit:cover}
.portrait-fig figcaption{margin-top:28px;padding-left:18px;display:grid;gap:10px}
.portrait-fig .pname{font:400 30px/1.1 var(--serif);color:var(--teal)}
.portrait-fig .ptitle{font:500 11.5px/1 var(--sans);letter-spacing:.24em;text-transform:uppercase;color:var(--green)}
.who-text{grid-column:7/13}
.who-text h2{font-size:clamp(34px,3.3vw,50px);color:var(--teal);margin-bottom:22px}
.who-text h2:not(:first-child){margin-top:64px}
.who-text p{font-size:18px;color:var(--text)}
.offer .grid{row-gap:40px}
.offer h2{grid-column:1/6;font-size:clamp(38px,4vw,60px)}
.offer .offer-body{grid-column:7/13}
.offer .offer-body>p{color:rgba(255,255,255,.82);font-size:18px}
.offer ul{list-style:none;margin:36px 0 0;padding:0;border-top:1px solid var(--rule-dark)}
.offer li{display:grid;grid-template-columns:28px 1fr;gap:16px;padding:20px 0;border-bottom:1px solid var(--rule-dark);color:rgba(255,255,255,.86)}
.offer li::before{content:"";width:18px;height:1px;background:var(--gold);margin-top:14px}
.pair .grid{row-gap:64px}
.pair .col-a{grid-column:1/6}.pair .col-b{grid-column:7/13}
.pair h2{font-size:clamp(34px,3.3vw,50px);color:var(--teal);margin-bottom:22px}
.pair p{font-size:18px}
.pair .btn{margin-top:40px}

/* Contact */
.contact-head .grid{align-items:end;row-gap:56px}
.contact-head .ch-main{grid-column:1/8}
.contact-head .ch-qr{grid-column:8/13;justify-self:end;max-width:420px}
.contact-head .btn{margin-top:48px;min-height:64px;padding:0 38px;font-size:13px}
.qr-card{display:flex;gap:24px;align-items:center;padding:24px;border:1px solid var(--rule-dark)}
.qr-card img{width:132px;height:132px;background:var(--white);padding:8px;flex:none}
.qr-card .qr-label{font:500 11.5px/1 var(--sans);white-space:nowrap;letter-spacing:.24em;text-transform:uppercase;color:var(--gold);margin-bottom:12px}
.qr-card p{font-size:15px;color:rgba(255,255,255,.78);line-height:1.6}
.steps-sec .grid{row-gap:40px}
.steps-sec h2{grid-column:1/6;color:var(--teal)}
.steps{grid-column:7/13;list-style:none;margin:0;padding:0;border-top:1px solid var(--teal)}
.steps li{display:grid;grid-template-columns:64px 1fr;gap:16px;padding:28px 0;border-bottom:1px solid var(--rule)}
.steps .n{font:italic 300 30px/1 var(--serif);color:var(--gold)}
.steps p{font:400 clamp(22px,1.9vw,27px)/1.35 var(--serif);color:var(--teal)}
.reach .grid{row-gap:40px}
.reach h2{grid-column:1/6;font-size:clamp(30px,2.8vw,40px);color:var(--teal)}
.reach .reach-body{grid-column:7/13}
.reach dl{margin:0;border-top:1px solid var(--rule)}
.reach dl div{display:grid;grid-template-columns:120px 1fr;gap:16px;padding:20px 0;border-bottom:1px solid var(--rule);align-items:baseline}
.reach dt{font:500 11.5px/1 var(--sans);letter-spacing:.24em;text-transform:uppercase;color:var(--green)}
.reach dd{margin:0;font:400 23px/1.3 var(--serif);color:var(--teal)}
.reach dd a{text-decoration:none;border-bottom:1px solid transparent}
.reach dd a:hover{border-color:var(--gold)}
.confidential{margin-top:32px;font:italic 400 21px/1.4 var(--serif);color:var(--muted)}

/* Footer */
.site-footer{background:var(--ink);color:rgba(255,255,255,.7);padding:clamp(72px,8vw,112px) 0 36px;font-size:15px}
.footer-grid{row-gap:48px;padding-bottom:64px;border-bottom:1px solid var(--rule-dark)}
.f-brand{grid-column:1/4}
.f-brand img{width:180px;height:auto}
.f-brand p{margin-top:28px;font:300 24px/1.35 var(--serif);color:rgba(255,255,255,.88);max-width:15em}
.f-col h2{font:500 11.5px/1 var(--sans);letter-spacing:.24em;text-transform:uppercase;color:var(--gold);margin-bottom:22px}
.f-col ul{list-style:none;margin:0;padding:0;display:grid;gap:12px}
.f-col a{text-decoration:none;color:rgba(255,255,255,.78);transition:color .2s}
.f-col a:hover{color:var(--white)}
.f-nav{grid-column:5/7}.f-practice{grid-column:7/10}.f-contact{grid-column:10/13}
.footer-bottom{display:flex;justify-content:space-between;gap:24px;padding-top:28px;font-size:13px;color:rgba(255,255,255,.5)}

/* WhatsApp dock */
.wa-dock{position:fixed;right:24px;bottom:24px;z-index:50;display:flex;flex-direction:column;align-items:center;gap:12px}
.wa-btn{width:60px;height:60px;border-radius:50%;background:var(--teal);color:var(--white);display:flex;align-items:center;justify-content:center;border:1px solid rgba(201,168,76,.7);box-shadow:0 10px 30px rgba(4,23,25,.35);transition:transform .25s var(--ease),background .25s}
.wa-btn:hover{transform:translateY(-2px);background:var(--teal-2)}
.wa-qr{margin:0;width:104px;padding:8px 8px 6px;background:var(--white);box-shadow:0 10px 30px rgba(4,23,25,.2);text-align:center}
.wa-qr img{width:88px;height:88px;margin:0 auto}
.wa-qr figcaption{font:500 8.5px/1.3 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-top:4px}
.page-contact .wa-qr{display:none}

/* Motion */
.js .reveal{opacity:0;transform:translateY(16px);transition:opacity .4s var(--ease),transform .4s var(--ease)}
.js .reveal.in{opacity:1;transform:none}
.js .reveal.d1{transition-delay:.06s}.js .reveal.d2{transition-delay:.12s}.js .reveal.d3{transition-delay:.18s}
.js .hero .reveal{transition-duration:.6s}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.js .reveal{opacity:1!important;transform:none!important;transition:none!important}*{transition-duration:0s!important}}

/* Responsive */
/* QR shows only when it fits wholly in the right margin: content 1200 + 2 x (24 offset + 104 QR + 24 gap) = 1504, + 16 for a desktop scrollbar = 1520 */
@media (max-width:1519px){.wa-qr{display:none}}
@media (max-width:1100px){
  .nav-desktop ul{gap:24px}
  .area-index{grid-template-columns:repeat(3,1fr)}
  .handles li{grid-template-columns:1fr;gap:6px}
}
@media (max-width:960px){
  .nav-desktop{display:none}
  .menu-toggle{display:inline-flex}
  .serve .serve-copy,.serve .proof,.practice-head .ph-title,.practice-head .ph-intro,.area-head,.area-body,.portrait-fig,.who-text,.offer h2,.offer .offer-body,.pair .col-a,.pair .col-b,.contact-head .ch-main,.contact-head .ch-qr,.steps-sec h2,.steps,.reach h2,.reach .reach-body{grid-column:1/-1}
  .serve .proof{border-left:0;padding-left:0;border-top:1px solid var(--rule-dark);padding-top:36px}
  .why-cols{grid-template-columns:1fr}
  .why-head{flex-direction:column;align-items:flex-start}
  .f-brand{grid-column:1/-1}.f-nav{grid-column:1/5}.f-practice{grid-column:5/9}.f-contact{grid-column:9/13}
  .portrait-fig{max-width:520px}
}
@media (max-width:700px){
  body{font-size:16px}
  .header-row{height:84px}
  .brand img{width:150px}
  .hero{min-height:calc(100svh - 0px)}
  .hero-media img{object-position:50% 40%}
  .hero-shade{background:linear-gradient(180deg,rgba(4,23,25,.72) 0%,rgba(4,23,25,.2) 18%,rgba(4,23,25,.62) 36%,rgba(4,23,25,.9) 58%,rgba(4,23,25,.98) 100%)}
  .serve .proof>div{display:grid;grid-template-columns:1fr 1fr;gap:24px}
  .hero-inner{padding-top:140px}
  .hero h1{font-size:clamp(40px,11.4vw,52px);line-height:1.04}
  .hero-sub{margin-top:24px}
  .hero-actions{margin-top:36px;gap:20px 28px}
  .hero-rail .container{height:60px;font-size:10.5px}
  .hero-rail .rail-practice{display:none}
  .area-index{grid-template-columns:1fr 1fr}
  .area-index li:last-child{grid-column:1/-1}
  .area-index a{font-size:19px;padding:16px 12px 16px 0}
  .handles li{padding:16px 0}
  .handles strong{font-size:21px}
  .f-nav,.f-practice,.f-contact{grid-column:1/-1}
  .footer-bottom{flex-direction:column}
  .page-head{padding-top:150px}
  .qr-card{display:none}
  .contact-head .btn{width:100%}
  .reach dl div{grid-template-columns:1fr;gap:6px}
  .steps li{grid-template-columns:44px 1fr}
  .wa-dock{right:16px;bottom:16px}.wa-btn{width:54px;height:54px}
}

/* ===== v3.1: research-led refinements (strict 1200 grid, word-led hero, proof band, card practice) ===== */
.eyebrow{font-size:12px;letter-spacing:.14em;margin-bottom:24px}
.eyebrow::before{width:32px}
h1,h2,h3{font-weight:500}
.h2{font-size:clamp(36px,3.4vw,48px);line-height:1.1}
h3{font-size:28px;line-height:1.15}
body{font-size:17px;line-height:28px}
/* header: 80px bar, Inter 14/500, even 36px gaps */
.header-row{height:80px}
.site-header::before{height:2px}
.nav-desktop{gap:36px}
.nav-desktop ul{gap:36px}
.nav-desktop a.nav-link{font:500 14px/1 var(--sans);letter-spacing:.01em;text-transform:none;margin-right:0}
.nav-desktop a.nav-link::after{right:0;bottom:0}
.nav-desktop .btn{min-height:42px;padding:0 20px;font:500 14px/1 var(--sans);letter-spacing:.01em;text-transform:none}
.btn-wa svg{width:18px;height:18px;flex:none}
.btn{letter-spacing:.06em;font-size:14px;text-transform:none;min-height:56px;padding:0 28px;font-weight:500}
.btn-ghost{color:var(--white);border-color:rgba(255,255,255,.45);background:transparent}
.btn-ghost:hover{border-color:var(--white);background:rgba(255,255,255,.06)}
.btn-ghost .down{font-size:16px;line-height:1}
.btn-dark{color:var(--teal);border-color:var(--teal);background:transparent}
.text-link-dark{color:var(--teal);border-color:rgba(11,59,61,.35);display:inline-block;margin-top:32px}
.text-link-dark:hover{border-color:var(--gold)}
/* hero: B&W image under teal, word-led */
.hero{min-height:calc(100svh - 120px);min-height:max(640px,calc(100svh - 120px));justify-content:center}
.hero-media img{filter:none;object-position:60% 45%}
.hero-shade{background:
  linear-gradient(180deg,rgba(7,42,44,.55) 0%,rgba(7,42,44,0) 20%),
  linear-gradient(90deg,rgba(7,42,44,.94) 0%,rgba(9,50,52,.86) 40%,rgba(11,59,61,.62) 70%,rgba(11,59,61,.50) 100%)}
.hero-inner{padding-top:140px;padding-bottom:96px}
.hero h1{font-weight:500;font-size:clamp(44px,5.6vw,80px);line-height:1.04;letter-spacing:-.015em;max-width:12.5em;color:#F4F1EA}
.hero h1 em{font-style:normal;color:var(--gold)}
.hero-sub{margin-top:28px;font-size:19px;line-height:30px;max-width:30em}
.hero-actions{margin-top:44px;gap:16px}
/* gold proof band */
.proof-band{background:var(--gold);color:var(--ink)}
.proof-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:32px;align-items:center;min-height:120px;padding-top:24px;padding-bottom:24px}
.proof-band .stat{grid-column:span 3;display:flex;align-items:baseline;gap:16px}
.proof-band .fig{font:500 64px/1 var(--serif);letter-spacing:-.02em}
.proof-band .lab{font:500 13px/1 var(--sans);letter-spacing:.12em;text-transform:uppercase}
.proof-band .proof-note{grid-column:8/13;justify-self:end;font:italic 500 26px/1.2 var(--serif);border-left:1px solid rgba(4,23,25,.3);padding-left:32px}
/* who we serve */
.serve .grid{align-items:start;row-gap:0}
.serve-label{grid-column:1/4;margin-top:14px}
.serve-lead{grid-column:4/13;color:var(--teal);font:400 clamp(26px,2.4vw,34px)/1.4 var(--serif)}
/* practice: layer 1 cards, layer 2 accordion */
.practice-head .ph-title h2{color:var(--teal)}
.practice-head{margin-bottom:56px}
.cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:32px;align-items:start}
.card{background:var(--white);border-top:2px solid var(--gold);padding:40px 40px 8px;display:flex;flex-direction:column}
.card-top{display:flex;justify-content:space-between;align-items:baseline;gap:16px;margin-bottom:20px;min-height:18px}
.card-num{font:italic 500 18px/1 var(--serif);color:var(--gold)}
.card h3{color:var(--teal);font-size:28px}
.card-tag{font:500 11.5px/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--green)}
.card-intro{margin-top:16px;margin-bottom:28px;min-height:78px;color:var(--muted);font-size:16px;line-height:26px}
.card details{margin-top:0;border-top:1px solid var(--rule)}
.card summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;padding:20px 0;font:500 13px/1 var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--teal)}
.card summary::-webkit-details-marker{display:none}
.card summary::after{content:"";width:12px;height:12px;background:linear-gradient(var(--gold),var(--gold)) center/12px 1.5px no-repeat,linear-gradient(var(--gold),var(--gold)) center/1.5px 12px no-repeat;transition:transform .3s var(--ease)}
.card details[open] summary::after{transform:rotate(45deg)}
.card .handles{padding-bottom:24px}
.card .handles li{grid-template-columns:1fr;gap:4px;padding:14px 0}
.card .handles strong{font-size:20px}
.card .handles span{font-size:15px;line-height:24px}
/* where we're growing */
.growing .grid{row-gap:48px}
.growing-head{grid-column:1/5}
.growing-head h2{font-size:clamp(40px,4vw,56px)}
.growing-intro{margin-top:24px;color:rgba(255,255,255,.78)}
.growing-list{grid-column:6/13;list-style:none;margin:0;padding:0;border-top:1px solid rgba(201,168,76,.5)}
.growing-list li{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:32px;padding:28px 0;border-bottom:1px solid var(--rule-dark)}
.growing-list h3{font-size:26px}
.growing-list p{color:rgba(255,255,255,.74)}
/* leader card */
.leader .grid{align-items:center;row-gap:48px}
.leader-card{grid-column:1/6;margin:0}
.leader-text{grid-column:7/13}
.leader-text h2{color:var(--teal);margin-bottom:24px}
.portrait-frame img{filter:grayscale(1) contrast(1.04)}
.portrait-fig figcaption,.leader-card figcaption{margin-top:28px;padding-left:18px;display:flex;flex-direction:column;gap:12px}
.pname{font:500 32px/1 var(--serif);color:var(--teal)}
.ptitle{font:500 12px/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--green)}
/* why */
.why .eyebrow{margin-bottom:56px}
.why-col h3{font-size:28px}
/* CTA */
.cta::after{background:linear-gradient(90deg,rgba(7,42,44,.94) 0%,rgba(11,59,61,.82) 55%,rgba(11,59,61,.66) 100%)}
.cta h2{font-weight:500;font-size:clamp(44px,5.6vw,80px);line-height:1.04}
.cta h2 em{font-style:normal;color:var(--gold)}
/* page heads + footer */
.page-head h1{font-weight:500;font-size:clamp(40px,5vw,72px);line-height:1.06}
.page-head h1 em{font-style:normal;color:var(--gold)}
.site-footer{background:var(--deep)}
.f-brand{grid-column:1/4}.f-nav{grid-column:4/7;padding-left:32px}.f-practice{grid-column:7/10}.f-contact{grid-column:10/13}
.f-col h2{font-size:12px;letter-spacing:.14em}
@media (max-width:1100px){.proof-band .proof-note{display:none}.proof-band .stat{grid-column:span 5}}
@media (max-width:960px){
  .cards{grid-template-columns:1fr}
  .serve-label,.serve-lead,.growing-head,.growing-list,.leader-card,.leader-text{grid-column:1/-1}
  .leader-card{max-width:420px}
  .f-brand{grid-column:1/-1}.f-nav{grid-column:1/5;padding-left:0}.f-practice{grid-column:5/9}.f-contact{grid-column:9/13}
  .card-intro{min-height:0}
}
@media (max-width:700px){
  .hero{min-height:calc(100svh - 96px)}
  .hero-shade{background:linear-gradient(180deg,rgba(7,42,44,.7) 0%,rgba(7,42,44,.45) 22%,rgba(7,42,44,.80) 50%,rgba(7,42,44,.96) 100%)}
  .hero-inner{padding-top:120px;padding-bottom:56px}
  .hero h1{font-size:clamp(38px,10.4vw,46px);line-height:1.08}
  .hero-sub{font-size:17px;line-height:27px}
  .hero-actions .btn{width:100%}
  .proof-grid{min-height:96px;column-gap:16px}
  .proof-band .stat{grid-column:span 6;flex-direction:column;gap:8px}
  .proof-band .fig{font-size:48px}
  .proof-band .lab{font-size:11.5px}
  .card{padding:32px 24px 4px}
  .growing-list li{grid-template-columns:1fr;gap:8px}
  .f-nav,.f-practice,.f-contact{grid-column:1/-1}
}
/* the font shorthand resets font-variant-numeric, so restore lining figures where shorthand is used */
.proof-band .fig,.proof-band .lab,.card-num,.why-col .n,.steps .n,.steps p,.reach dd,.mobile-menu a.m-link span,.handles strong,.lead,.serve-lead,.pname,.cta-line,.f-col a,.f-col li,.growing-list h3{font-variant-numeric:lining-nums}

/* WhatsApp bubble clearance: never over content.
   >=1440: 60px bubble at 24px from the edge needs 24+60+16 = 100px of margin; (1440-15 scrollbar-1200)/2 = 112. OK.
   701-1439: shrink to 48px at 16px from the edge and widen the side gutter to 80px (16+48+16), so it sits in the margin.
   <=700: the bubble is hidden while the first screen (which has its own WhatsApp button) or the footer is in view,
   and the footer gets bottom padding so nothing at the end of the page sits under it. */
@media (min-width:701px) and (max-width:1439px){
  :root{--gutter:80px}
  .wa-dock{right:16px;bottom:16px}
  .wa-btn{width:48px;height:48px}
  .wa-btn svg{width:22px;height:22px}
}
.wa-dock{transition:opacity .25s var(--ease),visibility .25s}
.wa-dock.wa-off{opacity:0;visibility:hidden}
@media (max-width:700px){
  .site-footer{padding-bottom:96px}
}
