/* fm-migrate: Brightwater Immigration Law (likeness build, theme-forge)
   Tokens measured from the reference at 1440 / 1199-810 tablet / 390 phone.
   Fonts: Gambarino 400 (display, Fontshare ITF FFL) + Inter 400/500/600/700 (OFL). */

@font-face{font-family:"Gambarino";src:url("../fonts/gambarino-400.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Inter";src:url("../fonts/inter-400.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Inter";src:url("../fonts/inter-500.woff2") format("woff2");font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:"Inter";src:url("../fonts/inter-600.woff2") format("woff2");font-weight:600;font-style:normal;font-display:swap}
@font-face{font-family:"Inter";src:url("../fonts/inter-700.woff2") format("woff2");font-weight:700;font-style:normal;font-display:swap}

:root{
  /* palette (reference hexes, same roles) */
  --paper:#FAF7F2;      /* base */
  --white:#FFFFFF;      /* cards */
  --ink:#14202B;        /* ink + dark bands */
  --slate:#4A5560;      /* card body */
  --muted:#535956;      /* leads, eyebrows */
  --sand:#E8DFD3;       /* accent fill (beige button, stories band) */
  --rule:#E9E7E2;       /* stat dividers, list rules */
  --track:rgba(75,86,97,.36);
  /* type */
  --serif:"Gambarino","Iowan Old Style","Palatino Linotype",Georgia,serif;
  --sans:"Inter",ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  --h1:76px; --h1-lh:91.2px;
  --h2:48px; --h2-lh:57.6px;
  --h3:24px; --h3-lh:36px; --h3-ls:-.24px;
  --hq:36px; --hq-lh:43.2px;
  --stat:76px; --stat-ls:-2.28px;
  --lead:18px; --lead-lh:30px;
  /* layout */
  --maxw:1600px; --gut:48px; --secpad:180px;
  --r:16px; --r-btn:8px;
  /* motion */
  --ease:cubic-bezier(.22,1,.36,1);
  --rv-d:.9s; --rv-y:40px;
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:27px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}
img,video,svg{display:block;max-width:100%}
img{height:auto}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit;color:inherit}
h1,h2,h3,h4,p,figure,blockquote,ul,ol{margin:0}
ul,ol{padding:0}
:focus-visible{outline:2px solid var(--ink);outline-offset:3px}
.skip{position:absolute;left:12px;top:-60px;z-index:200;background:var(--ink);color:#fff;padding:10px 14px;border-radius:8px}
.skip:focus{top:12px}
.sr{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* ---------- layout ---------- */
.site{position:relative;z-index:2}
main{position:relative;background:var(--paper)}
.wrap{width:100%;max-width:calc(var(--maxw) + 2 * var(--gut));margin:0 auto;padding:0 var(--gut)}
.sec{position:relative;padding:var(--secpad) 0}
.sec--pt0{padding-top:0}
.bg-white{background:var(--white)}
.bg-sand{background:var(--sand)}
.bg-ink{background:var(--ink)}

/* ---------- type ---------- */
.eb{display:flex;align-items:center;gap:10px;font:500 12px/16px var(--sans);letter-spacing:.96px;text-transform:uppercase;color:var(--muted)}
.eb::before{content:"";width:10px;height:10px;border-radius:40px;background:var(--ink);flex:none}
.eb--light{color:#fff}
.eb--light::before{background:#fff}
.eb--center{justify-content:center}
.h1{font:400 var(--h1)/var(--h1-lh) var(--serif);color:var(--ink)}
.h2{font:400 var(--h2)/var(--h2-lh) var(--serif);color:var(--ink)}
.h3{font:400 var(--h3)/var(--h3-lh) var(--serif);letter-spacing:var(--h3-ls);color:var(--ink)}
.lead{font:400 var(--lead)/var(--lead-lh) var(--sans);color:var(--muted)}
.on-dark .h1,.on-dark .h2{color:var(--paper)}
.on-dark .lead{color:#fff}
.head .h2{margin-top:24px}
.head .lead{margin-top:24px;max-width:900px}
.head + .sec-body{margin-top:80px}

/* ---------- buttons (text-roll hover, measured 300ms) ---------- */
.btn{position:relative;display:inline-flex;align-items:center;justify-content:center;height:51px;padding:12px;border-radius:var(--r-btn);font:400 16px/27px var(--sans);white-space:nowrap;cursor:pointer;border:0;background:none;overflow:hidden;flex:none}
.btn--beige{background:var(--sand);color:var(--muted)}
.btn--wline{box-shadow:inset 0 0 0 1px #fff;color:#fff}
.btn--dline{box-shadow:inset 0 0 0 1px var(--ink);color:var(--ink)}
.btn--dark{background:var(--ink);color:#fff}
.btn--block{width:100%}
.roll{position:relative;display:block;overflow:hidden;height:27px}
.roll>span{display:block;transition:transform .3s var(--ease)}
.roll>span+span{position:absolute;left:0;right:0;top:0;transform:translateY(-100%)}
a:hover>.roll>span:first-child,button:hover>.roll>span:first-child,.btn:hover .roll>span:first-child{transform:translateY(100%)}
a:hover>.roll>span+span,button:hover>.roll>span+span,.btn:hover .roll>span+span{transform:none}
.nlink .roll{height:22px}

/* ---------- header (fixed; transparent over dark heroes, paper bar after) ---------- */
.nav{position:fixed;left:0;right:0;top:0;z-index:60;height:91px;color:var(--ink);transition:background-color .3s ease,color .3s ease}
.nav.is-solid{background:var(--paper)}
.nav.is-over{color:#fff}
.nav__in{position:relative;display:flex;align-items:center;justify-content:space-between;height:91px;max-width:calc(var(--maxw) + 2 * var(--gut));margin:0 auto;padding:20px var(--gut)}
.logo{display:inline-flex;align-items:center;gap:7px;height:30px;color:inherit}
.logo svg{width:24px;height:24px;flex:none}
.logo__t{font:500 20px/30px var(--sans);letter-spacing:-.4px}
.nav__links{position:absolute;left:50%;top:33px;transform:translateX(-50%);display:flex;gap:31px}
.nlink{display:block;padding:2px;font:500 14px/22px var(--sans)}
.nav__right{display:flex;align-items:center;gap:20px}
.nav__tel{display:inline-flex;align-items:center;gap:8px;font:500 14px/22px var(--sans)}
.nav__tel svg{width:18px;height:18px}
.nav .btn{color:inherit;box-shadow:inset 0 0 0 1px currentColor}
.burger{display:none;width:32px;height:32px;border:0;background:none;padding:0;color:inherit;cursor:pointer}
.burger svg{width:32px;height:32px}
.mnav{display:none}

/* ---------- home hero (sticky cover + numbers scrolling over it) ---------- */
.hwrap{position:relative;background:var(--paper)}
.hcover{position:sticky;top:0;height:100vh;min-height:600px;overflow:hidden;background:var(--ink);z-index:0}
.hcover__media{position:absolute;left:-3.75%;top:-2.67%;width:107.57%;height:107.56%;transform-origin:50% 50%}
.hcover__in{position:absolute;inset:0}
.hcover__in img{width:100%;height:100%;object-fit:cover;object-position:0% 46%}
.hcover__ov{position:absolute;inset:0;background:radial-gradient(57% 75% at 62% 30%,rgba(20,32,43,.3) 0%,rgb(20,32,43) 100%)}
.hcover__wrap{position:relative;height:100%;max-width:var(--maxw);margin:0 auto}
.hcover__content{position:absolute;left:var(--gut);top:50%;width:calc(.65 * (min(100vw,var(--maxw)) - 2 * var(--gut)));max-width:calc(100% - 2*var(--gut));transform:translateY(calc(-50% + var(--py,0px)))}
.hcover__content .h1{color:var(--paper)}
.hcover__lead{margin-top:24px;width:400px;max-width:100%;font:400 18px/30px var(--sans);color:#fff}
.hbtns{display:flex;gap:12px;margin-top:32px}
.hcard{position:absolute;right:40px;bottom:40px;display:flex;gap:24px;width:511px;padding:20px;background:#fff;border-radius:var(--r);transform:translateY(var(--cy,0px))}
.hcard__img{width:152px;height:142px;border-radius:12px;overflow:hidden;flex:none}
.hcard__img img{width:100%;height:100%;object-fit:cover}
.hcard__tx{display:flex;flex-direction:column;justify-content:space-between;min-width:0}
.hcard__k{font:400 16px/27px var(--sans);color:var(--slate);white-space:nowrap}
.hcard__h{font:500 20px/28px var(--sans);letter-spacing:-.1px;color:var(--ink);margin-top:24px}
.hcard .btn{margin-top:12px;align-self:flex-start}
.nums{position:relative;z-index:1;height:100vh;min-height:600px;display:flex;align-items:center;background:var(--paper);overflow:hidden}
.nums__swash{max-width:none;overflow:visible;position:absolute;left:-483px;bottom:40px;width:calc(100% + 827px);height:auto;aspect-ratio:2267/1052;color:var(--ink);opacity:.04;pointer-events:none}
.nums .wrap{position:relative}
.nums .eb{justify-content:center}
.nums .eb::before{display:none}
.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin-top:80px}
.stats--flush{margin-top:0}
.stat{padding:12px 20px;border-left:1px solid var(--rule)}
.stat:first-child{border-left-color:transparent}
.stat__n{display:block;font:400 var(--stat)/var(--stat) var(--serif);letter-spacing:var(--stat-ls);color:var(--ink);white-space:nowrap}
.stat__l{display:block;margin-top:12px;font:500 12px/16px var(--sans);letter-spacing:.96px;text-transform:uppercase;color:var(--muted)}

/* ---------- practice cards ---------- */
.pcards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:32px}
.pcard{display:flex;align-items:center;gap:24px;padding:24px;background:#fff;border-radius:var(--r);min-height:189px}
.pcard__img{width:147px;height:141px;border-radius:var(--r);overflow:hidden;flex:none}
.pcard__img img{width:100%;height:100%;object-fit:cover}
.pcard__tx{flex:1;min-width:0}
.pcard__t{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}
.pcard__ic{width:26px;height:26px;border-radius:50px;background:var(--ink);color:#fff;display:grid;place-items:center;flex:none;margin-top:5px}
.pcard__ic svg{width:14px;height:14px}
.pcard__d{margin-top:24px;font:400 16px/27px var(--sans);color:var(--slate)}

/* ---------- quiz ---------- */
.quiz{position:relative;overflow:hidden;background:var(--ink)}
.quiz__bg{position:absolute;inset:0;opacity:.32;overflow:hidden}
.quiz__bg img{width:100%;height:100%;object-fit:cover;filter:grayscale(.85) brightness(.75) contrast(1.05)}
.quiz__grid{position:relative;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:32px;align-items:center}
.quiz__left .h2{margin-top:24px}
.quiz__left .lead{margin-top:24px}
.qbox{background:var(--paper);border-radius:var(--r);padding:24px;min-height:583px;display:flex;flex-direction:column}
.qbox__top{display:flex;justify-content:space-between;align-items:center}
.qbox__n{font:400 16px/27px var(--sans);color:var(--slate)}
.qbar{display:flex;gap:6px}
.qbar i{width:22px;height:4px;border-radius:40px;background:var(--ink);opacity:.2;transition:opacity .3s ease}
.qbar i.on{opacity:1}
.qstep{display:none;margin-top:24px}
.qstep.on{display:block}
.no-js .qstep{display:block}
.no-js .qstep+.qstep{margin-top:40px}
.qstep__h{font:400 var(--hq)/var(--hq-lh) var(--serif);color:var(--ink)}
.qopts{display:grid;gap:10px;margin-top:24px}
.qopt{position:relative;display:block;height:60px;border-radius:var(--r);background:#fff;cursor:pointer}
.qopt input{position:absolute;inset:0;margin:0;opacity:0;cursor:pointer}
.qopt span{display:block;padding:12px;font:400 24px/36px var(--serif);letter-spacing:-.24px;color:var(--slate);border-radius:var(--r);box-shadow:inset 0 0 0 1px transparent;transition:box-shadow .2s ease,color .2s ease;height:60px}
.qopt input:checked+span{box-shadow:inset 0 0 0 1px var(--slate);color:var(--ink)}
.qopt input:focus-visible+span{outline:2px solid var(--ink);outline-offset:2px}
.qfield{display:block;margin-top:24px}
.qfield__l{display:block;font:500 12px/16px var(--sans);letter-spacing:.96px;text-transform:uppercase;color:var(--muted)}
.qfield input{display:block;width:100%;margin-top:10px;height:46px;padding:12px;border:0;border-radius:8px;background:#fff;font:400 16px/22px var(--sans);color:var(--ink)}
.qfield input::placeholder{color:#6B7079}
.qnav{margin-top:24px}
.qdone{display:none;margin-top:24px}
.qdone.on{display:block}
.qdone p{margin-top:16px;color:var(--slate)}
.quiz__note{margin-top:12px;text-align:center;font:500 12px/16px var(--sans);letter-spacing:.96px;text-transform:uppercase;color:#fff}

/* ---------- process ---------- */
.proc{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:32px}
.proc__img{position:relative;border-radius:var(--r);overflow:hidden}
.proc__img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
@media (min-width:1200px) and (max-width:1439px){.proc__img{min-height:calc(708px - (100vw - 1200px) * .225)}}
@media (min-width:1440px) and (max-width:1599px){.proc__img{min-height:calc(654px - (100vw - 1440px) * .3375)}}
@media (min-width:1600px){.proc__img{min-height:600px}}
.proc__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:32px 32px;align-items:start;align-content:start}
.pstep{position:relative;background:#fff;border-radius:var(--r);padding:24px}
.pstep__ic{width:52px;height:52px;border-radius:8px;background:#fff;box-shadow:inset 0 0 0 1px var(--sand);display:grid;place-items:center;color:var(--ink)}
.pstep__ic svg{width:32px;height:32px}
.pstep__n{position:absolute;right:20px;top:20px;font:400 48px/57.6px var(--serif);color:var(--sand)}
.pstep .h3{margin-top:24px}
.pstep p{margin-top:24px;color:var(--slate)}

/* ---------- attorneys (home block + cards) ---------- */
.acard__img{border-radius:var(--r);overflow:hidden;height:438px}
.acard__img img{width:100%;height:100%;object-fit:cover;object-position:50% 30%}
.acard .h3{margin-top:24px}
.acard__meta{margin-top:12px}
.acard__role{display:block;font:400 16px/27px var(--sans);color:var(--slate)}
.acard__yrs{display:block;margin-top:12px;font:500 14px/22px var(--sans);color:var(--ink)}
.agrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px 32px}
.ahome__lead{grid-column:1}
.ahome__lead .h2{margin-top:24px}
.ahome__lead .lead{margin-top:24px}
.agrid+.agrid{margin-top:32px}
.center-btn{display:flex;justify-content:center;margin-top:32px}

/* ---------- stories ---------- */
.scar{position:relative}
.scard{display:none;grid-template-columns:416px minmax(0,1fr);gap:24px;padding:24px;background:var(--paper);border-radius:var(--r);min-height:452px}
.scard.on{display:grid;animation:sfade .6s var(--ease)}
.no-js .scard{display:grid}
.no-js .scard+.scard{margin-top:24px}
@keyframes sfade{from{opacity:0}to{opacity:1}}
.scard__img{position:relative;border-radius:var(--r);overflow:hidden}
.scard__img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.scard__body{position:relative;padding:24px 24px 24px 0;display:flex;flex-direction:column}
.scard__q{position:relative;z-index:1;max-width:480px;font:400 24px/36px var(--serif);letter-spacing:-.24px;color:var(--ink)}
.scard__k{position:relative;z-index:1;margin-top:24px;font:500 12px/16px var(--sans);letter-spacing:.96px;text-transform:uppercase;color:var(--slate)}
.scard__nm{position:relative;z-index:1;margin-top:12px;font:500 14px/22px var(--sans);color:var(--ink)}
.scard__qm{position:absolute;right:0;top:0;width:264px;height:200px;color:#fff;opacity:.64;pointer-events:none}
.sprog{display:flex;gap:6px;margin-top:auto}
.sprog i{position:relative;width:22px;height:4px;border-radius:40px;background:var(--track);overflow:hidden}
.sprog i.done{background:var(--ink)}
.sprog i b{position:absolute;inset:0;background:var(--ink);transform-origin:0 50%;transform:scaleX(0)}
.sprog i.cur b{animation:sprog var(--sdur,5s) linear forwards}
.scar.paused .sprog i.cur b{animation-play-state:paused}
@keyframes sprog{to{transform:scaleX(1)}}
.snext{position:absolute;right:0;bottom:0;display:flex;flex-direction:column;align-items:center;gap:24px;width:152px;padding:24px;background:var(--sand);border-radius:var(--r);z-index:2}
.snext__img{width:104px;height:112px;border-radius:var(--r);overflow:hidden}
.snext__img img{width:100%;height:100%;object-fit:cover}
.snote{margin-top:24px;font:400 14px/22px var(--sans);color:var(--slate)}

/* ---------- awards ---------- */
.awards .eb{justify-content:center}
.awards--tight{padding:90px 0}
.alogos{display:flex;flex-wrap:wrap;justify-content:center;gap:32px;margin-top:80px}
.award{position:relative;width:240px;height:120px;display:grid;place-items:center;color:var(--ink)}
.award__laurel{position:absolute;inset:0;width:100%;height:100%;color:#EDE4D7}
.award__mark{position:relative;display:flex;align-items:center;gap:6px;font:600 17px/22px var(--sans);letter-spacing:-.3px}
.award__mark svg{width:24px;height:24px}

/* ---------- blog cards ---------- */
.bgrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px}
.bcard{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"img img" "d d" "h h" "b b";align-content:start}
.bcard__img{grid-area:img}.bcard__date{grid-area:d}.bcard .h3{grid-area:h}.bcard .byline{grid-area:b}
.bcard__img{border-radius:var(--r);overflow:hidden;height:322px}
.bcard__img img{width:100%;height:100%;object-fit:cover;transition:transform .5s var(--ease)}
.bcard:hover .bcard__img img{transform:scale(1.05)}
.bcard__date{margin-top:24px;font:500 12px/16px var(--sans);letter-spacing:.96px;text-transform:uppercase;color:var(--slate)}
.bcard .h3{margin-top:12px}
.byline{display:flex;align-items:center;gap:6px;margin-top:12px;font:400 16px/27px var(--sans);color:var(--ink)}
.byline img{width:32px;height:32px;border-radius:8px;object-fit:cover;margin-right:0}
.byline span{color:var(--slate)}

/* ---------- CTA close ---------- */
.cta__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:32px;align-items:center}
.cta__img{border-radius:var(--r);overflow:hidden;height:468px}
.cta__img img{width:100%;height:100%;object-fit:cover}
.cta .lead{margin-top:24px;max-width:470px}
.cta .btn{margin-top:32px}

/* ---------- footer (fixed curtain revealed by a spacer) ---------- */
.foot{position:fixed;left:0;right:0;bottom:0;z-index:1;height:520px;background:var(--ink);color:#fff;overflow:hidden}
.foot__swash{max-width:none;overflow:visible;position:absolute;left:18%;top:-8%;width:60%;color:#fff;opacity:.04;pointer-events:none}
.foot__in{position:relative;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);height:100%;padding-top:98px}
.foot .logo{height:34px}
.foot .logo svg{width:30px;height:30px}
.foot .logo__t{font-size:24px;line-height:34px}
.foot__tag{margin-top:24px;max-width:460px;font:400 18px/30px var(--sans)}
.foot__c{display:flex;align-items:center;gap:12px;margin-top:24px;font:500 14px/22px var(--sans)}
.foot__c+.foot__c{margin-top:24px}
.foot__c svg{width:24px;height:24px}
.foot__cols{display:flex;justify-content:flex-end;gap:80px}
.foot__h{font:500 12px/16px var(--sans);letter-spacing:.96px;text-transform:uppercase;color:var(--sand)}
.foot__list{list-style:none;margin-top:32px;display:grid;gap:24px}
.foot__list a{display:block;padding:2px;font:500 14px/22px var(--sans)}
.foot__legal{position:absolute;left:var(--gut);right:var(--gut);bottom:24px;display:flex;justify-content:space-between;gap:24px;font:400 12px/18px var(--sans);color:#C9CED3}
.foot__legal a{text-decoration:underline;text-underline-offset:2px}
.foot-space{height:496px;pointer-events:none}

/* ---------- inner dark hero (about, practice, attorneys) ---------- */
.ihero{background:var(--ink);padding-top:180px}
.ihero__top{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.ihero__top .h1{color:var(--paper)}
.ihero__lead{margin-top:24px;font:400 18px/30px var(--sans);color:#fff}
.ihero__media{margin-top:80px}
.ihero__team{position:relative;height:728px;border-radius:var(--r) var(--r) 0 0;background:var(--sand);overflow:hidden}
.ihero__team img{position:absolute;left:-9.08%;top:16px;width:118.5%;max-width:none;height:auto}
.ihero__tri{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px;padding-bottom:180px}
.ihero__tri div{border-radius:var(--r);overflow:hidden;height:575px}
.ihero__tri img{width:100%;height:100%;object-fit:cover}
.ihero__wide{border-radius:var(--r) var(--r) 0 0;overflow:hidden;height:607px}
.ihero__wide img{width:100%;height:100%;object-fit:cover}
.drift{animation:drift 16s ease-in-out infinite alternate}
@keyframes drift{from{transform:scale(1)}to{transform:scale(1.06)}}

/* about story */
.astory__p{max-width:74%;margin-top:24px}
.astory__p p{font:400 24px/36px var(--serif);letter-spacing:-.24px;color:var(--ink)}
.astory__p p+p{margin-top:36px}
.astory .stats{margin-top:80px}
/* mission */
.mission__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:32px;align-items:center}
.mission .h2{margin-top:24px}
.mission .lead{margin-top:24px}
.mission__img{border-radius:var(--r);overflow:hidden;height:600px}
.mission__img img{width:100%;height:100%;object-fit:cover}
/* commitments */
.belief__list{margin-top:80px;list-style:none}
.brow{position:relative;display:flex;justify-content:space-between;gap:32px;padding-bottom:32px}
.brow:last-child{padding-bottom:0}
.brow+.brow{border-top:1px solid var(--rule);padding-top:32px}
.brow__tx{width:60%}
.brow__tx p{margin-top:24px;color:var(--slate)}
.brow__n{font:400 76px/91.2px var(--serif);color:var(--muted);opacity:.16;flex:none}
.brow__img{display:none}

/* ---------- practice detail ---------- */
.phero{background:var(--ink);padding-top:180px}
.phero__tx{max-width:65%}
.phero .h1{color:var(--paper);margin-top:24px}
.phero .ihero__lead{margin-top:24px}
.phero .hbtns{margin-top:32px}
.phero__img{margin-top:80px;aspect-ratio:1344/684;border-radius:var(--r) var(--r) 0 0;overflow:hidden}
.phero__img img{width:100%;height:100%;object-fit:cover}
.pbody{background:#fff;padding:180px 0}
.pbody__grid{display:grid;grid-template-columns:minmax(0,843fr) minmax(0,469fr);gap:32px;align-items:start}
.rt{font:400 18px/30px var(--sans);color:#14202B}
.rt>*+*{margin-top:20px}
.rt h2{font:700 18px/30px var(--sans);color:#000;margin-top:24px}
.rt h2:first-child{margin-top:0}
.rt ul{padding-left:23px}
.rt li+li{margin-top:0}
.rt strong{font-weight:700}
.rt a{text-decoration:underline;text-underline-offset:3px}
.side{position:sticky;top:112px;background:var(--paper);border-radius:var(--r);padding:24px}
.side__img{border-radius:var(--r);overflow:hidden;height:323px}
.side__img img{width:100%;height:100%;object-fit:cover;object-position:50% 25%}
.side .h3{margin-top:24px}
.side__role{margin-top:12px;color:var(--slate)}
.side .btn{margin-top:24px}

/* ---------- news index + post ---------- */
.feat{display:grid;grid-template-columns:437px minmax(0,1fr);gap:32px;padding-top:180px}
.feat__tx{display:flex;flex-direction:column;justify-content:space-between;min-height:558px}
.feat .h1{font-size:48px;line-height:57.6px;margin-top:24px}
.feat__lead{margin-top:24px;max-width:400px;font:400 16px/27px var(--sans);color:var(--muted)}
.feat .byline img{width:42px;height:42px}
.feat__img{border-radius:var(--r);overflow:hidden;height:558px}
.feat__img img{width:100%;height:100%;object-fit:cover;object-position:50% 20%}
.bgrid--all{row-gap:32px}
.post{display:grid;grid-template-columns:minmax(0,1053fr) minmax(0,259fr);gap:32px;padding-top:180px;align-items:start}
.post__lead{margin-top:24px;font:400 18px/30px var(--sans);color:var(--muted)}
.post .eb{margin-top:24px}
.post__fig{margin-top:32px;border-radius:var(--r);overflow:hidden;height:354px}
.post__fig img{width:100%;height:100%;object-fit:cover}
.post__body{margin-top:24px;max-width:969px;font:400 16px/27px var(--sans);color:var(--muted)}
.post__body>*+*{margin-top:20px}
.post__body h2{font:700 20px/28px var(--sans);letter-spacing:-.1px;color:var(--ink);margin-top:40px}
.post__body ul,.post__body ol{padding-left:20px}
.post__body strong{color:var(--ink)}
.pauth{position:sticky;top:112px;display:flex;align-items:center;gap:6px;padding:24px;background:var(--sand);border-radius:var(--r);font:400 16px/27px var(--sans);color:var(--ink)}
.pauth img{width:42px;height:42px;border-radius:8px;object-fit:cover;margin-right:4px}
.pauth span{color:var(--slate)}
/* post body modules (house blog format) */
.pb-answer{padding:24px;border-radius:var(--r);background:#fff;color:var(--ink);font:400 18px/30px var(--sans)}
.pb-answer b{display:block;font:500 12px/16px var(--sans);letter-spacing:.96px;text-transform:uppercase;color:var(--muted);margin-bottom:10px}
.pb-quote{padding:8px 0 8px 24px;border-left:2px solid var(--sand);font:400 24px/36px var(--serif);letter-spacing:-.24px;color:var(--ink)}
.pb-keys{padding:24px;border-radius:var(--r);background:var(--sand);color:var(--ink)}
.pb-keys h3{font:400 24px/36px var(--serif);letter-spacing:-.24px}
.pb-keys ul{margin-top:12px;padding-left:20px}
.pb-steps{list-style:none;padding:0!important;display:grid;gap:12px;counter-reset:st}
.pb-steps li{counter-increment:st;position:relative;padding:16px 16px 16px 64px;background:#fff;border-radius:12px;color:var(--slate)}
.pb-steps li::before{content:counter(st);position:absolute;left:16px;top:12px;width:32px;height:32px;border-radius:8px;box-shadow:inset 0 0 0 1px var(--sand);display:grid;place-items:center;font:400 20px/32px var(--serif);color:var(--ink)}
.pb-steps strong{display:block;color:var(--ink)}
.pb-table{width:100%;border-collapse:collapse;font:400 15px/24px var(--sans);background:#fff;border-radius:12px;overflow:hidden}
.pb-table th,.pb-table td{text-align:left;padding:12px 16px;border-bottom:1px solid var(--rule);vertical-align:top}
.pb-table th{font-weight:600;color:var(--ink);background:#F3EEE6}
.pb-table tr:last-child td{border-bottom:0}
.pb-stat{display:flex;gap:24px;align-items:center;padding:24px;border-radius:var(--r);background:#fff}
.pb-stat b{font:400 54px/54px var(--serif);letter-spacing:-1.6px;color:var(--ink);flex:none}
.pb-faq{border-top:1px solid var(--rule)}
.pb-faq details{border-bottom:1px solid var(--rule)}
.pb-faq summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;gap:16px;padding:16px 0;font:500 17px/26px var(--sans);color:var(--ink)}
.pb-faq summary::-webkit-details-marker{display:none}
.pb-faq summary::after{content:"+";font:400 22px/26px var(--sans);color:var(--slate);transition:transform .2s ease}
.pb-faq details[open] summary::after{transform:rotate(45deg)}
.pb-faq details p{padding:0 0 16px}
.pb-note{font:400 14px/22px var(--sans);color:var(--slate)}

/* ---------- contact ---------- */
.contact{padding:180px 0}
.contact__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:32px;align-items:start}
.contact__left{position:sticky;top:120px}
.contact__img{margin-top:24px;border-radius:var(--r);overflow:hidden;height:488px}
.contact__img img{width:100%;height:100%;object-fit:cover}
.contact .h1{color:var(--ink)}
.contact__lead{margin-top:24px;font:400 18px/30px var(--sans);color:var(--muted)}
.cform{margin-top:32px;max-width:600px}
.cf{display:block}
.cf+.cf{margin-top:24px}
.cf__l{display:block;font:400 16px/27px var(--sans);color:var(--muted)}
.cf input,.cf select,.cf textarea{display:block;width:100%;margin-top:10px;border:0;border-radius:8px;background:#fff;font:400 16px/26px var(--sans);color:var(--ink);box-shadow:inset 0 0 0 1px #ECE7E0}
.cf input{height:50px;padding:12px}
.cf select{height:50px;padding:12px;appearance:none;-webkit-appearance:none;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%234A5560' stroke-width='2'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") no-repeat right 14px center}
.cf textarea{height:100px;padding:12px;resize:vertical}
.cf input::placeholder,.cf textarea::placeholder{color:#6B7079}
.cform .btn{margin-top:24px;height:52px;font:600 16px/24px var(--sans);transition:opacity .2s ease}
.cform:invalid .btn{opacity:.5}
.cform__ok{display:none;margin-top:24px;padding:20px;border-radius:var(--r);background:#fff;color:var(--ink)}
.cform.done .cform__ok{display:block}
.cform.done .cf,.cform.done .btn{display:none}

/* ---------- mobile CTA bar (house floor) ---------- */
.mbar{display:none}

/* ---------- reveal system (JS only; no-js and reduced-motion render complete) ---------- */
.js [data-rv]{opacity:0;transform:translateY(var(--rv-y));transition:opacity var(--rv-d) var(--ease),transform var(--rv-d) var(--ease);transition-delay:calc(var(--i,0) * 100ms)}
.js [data-rv].in{opacity:1;transform:none}
.js [data-rv] .zoom img{transform:scale(1.3);transition:transform 1.2s var(--ease);transition-delay:calc(var(--i,0) * 100ms)}
.js [data-rv].in .zoom img{transform:none}
.js [data-rv] .pcard__ic svg{transform:rotate(180deg);transition:transform 1s var(--ease)}
.js [data-rv].in .pcard__ic svg{transform:none}
.js .w{display:inline-block;opacity:0;filter:blur(10px);transform:translateY(10px);transition:opacity .7s var(--ease),filter .7s var(--ease),transform .7s var(--ease);transition-delay:calc(var(--d,0ms) + var(--wi,0) * 90ms)}
.js .words-in .w{opacity:1;filter:blur(0);transform:none}
.js .hcover__in.load{animation:heroin 1.4s cubic-bezier(.16,1,.3,1) .25s both}
.js .hcover__in.load img{animation:breathe 7s linear 1.65s infinite alternate}
@keyframes heroin{from{opacity:0;transform:translateY(130px) scale(1.4)}to{opacity:1;transform:none}}
@keyframes breathe{from{transform:scale(1)}to{transform:scale(1.1)}}
.js .hfade{opacity:0;transform:translateY(40px);animation:hfade .8s var(--ease) .85s forwards}
.js .hfade--2{animation-delay:1s}
@keyframes hfade{to{opacity:1;transform:none}}

/* =================== tablet 810-1199 =================== */
@media (max-width:1199px){
  :root{--h1:66px;--h1-lh:79.2px;--h2:42px;--h2-lh:50.4px;--h3-lh:30px;--stat:66px;--secpad:140px;--lead:16px;--lead-lh:26px}
  .nav__links,.nav .btn--nav{display:none}
  .burger{display:block}
  .nav.menu-open{background:var(--ink);color:#fff}
  .mnav{display:none;position:absolute;left:0;right:0;top:100%;padding:0 0 40px;background:var(--ink);text-align:center}
  .nav.menu-open .mnav{display:block}
  .mnav a.nlink{display:block;width:max-content;margin:14px auto 0;padding:2px}
  .mnav .nlink+.nlink{margin-top:28px}
  .mnav .btn{display:flex;width:320px;max-width:calc(100% - 70px);margin:26px auto 0;color:#fff;box-shadow:inset 0 0 0 1px #fff}
  .hcover__content{width:928px}
  .hcard{width:368px;padding:16px;gap:16px}
  .hcard__img{width:110px;height:97px}
  .hcard__k{font-size:14px;line-height:22px;white-space:normal}
  .hcard__h{margin-top:8px;font-size:17px}
  .hcard .btn{display:none}
  .stats{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:40px}
  .stat:nth-child(3){border-left-color:transparent}
  .head .lead{font-size:16px;line-height:26px}
  .head + .sec-body{margin-top:60px}
  .pcards{grid-template-columns:1fr;gap:32px}
  .quiz__grid{grid-template-columns:1fr;gap:61px}
  .proc{grid-template-columns:1fr}
  .proc__img{min-height:0;height:784px}
  .agrid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ahome .agrid:first-child .ahome__lead{grid-column:1/-1}
  .scard{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .scard__qm{display:none}
  .bgrid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .foot__cols{gap:40px}
  .ihero{padding-top:140px}
  .ihero__top{grid-template-columns:1fr;gap:24px}
  .nums__swash{bottom:0}
  .alogos{margin-top:60px}
  .astory__p{max-width:86%}
  .astory__p p{line-height:30px}
  .astory__p p+p{margin-top:27px}
  .ihero__top .h1{max-width:85%}
  .ihero__lead{max-width:85%;font-size:16px;line-height:26px}
  .ihero__media{margin-top:60px}
  .ihero__team{height:414px}
  .ihero__team img{top:0}
  .ihero__tri{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ihero__tri div:nth-child(3){display:none}
  .mission__grid,.cta__grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .pbody__grid{grid-template-columns:1fr}
  .side{position:relative;top:0;max-width:469px}
  .feat{grid-template-columns:repeat(2,minmax(0,1fr));padding-top:140px}
  .feat .h1{font-size:42px;line-height:50.4px}
  .post{grid-template-columns:1fr}
  .pauth{position:relative;top:0;justify-self:start}
  .brow__n{font-size:54px;line-height:64px}
}
@media (min-width:1100px) and (max-width:1199px){
  .ahome .agrid+.agrid,.bgrid:not(.bgrid--all){grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media (max-width:1100px){
}
@media (max-width:960px){
}

/* =================== phone < 810 =================== */
@media (max-width:809px){
  :root{--h1:42px;--h1-lh:50.4px;--h2:40px;--h2-lh:48px;--h3:22px;--h3-lh:30px;--h3-ls:-.22px;--hq:30px;--hq-lh:36px;--stat:54px;--stat-ls:-1.62px;--lead:16px;--lead-lh:26px;--gut:16px;--secpad:80px}
  body{padding-bottom:0}
  .nav,.nav__in{height:72px}
  .nav__in{padding:20px 16px}
  .nav__tel{display:none}
  .hcover{min-height:560px}
  .hcover__ov{background:radial-gradient(56% 75% at 27.9% 1.4%,rgba(20,32,43,.3) 0%,rgb(20,32,43) 100%)}
  .hcover__in img{height:84%;margin-top:20px;object-position:55.5% 0%}
  .hcover__content{left:16px;top:auto;bottom:80px;width:auto;right:16px;max-width:none;transform:translateY(var(--py,0px))}
  .hcover__lead{font-size:16px;line-height:26px;width:auto}
  .hbtns{flex-direction:column;align-items:flex-start}
  .hcard{display:none}
  .nums .eb{justify-content:flex-start}
  .nums__swash{left:-103%;top:-26%;bottom:auto;width:444%}
  .sec--pt120m{padding-top:120px}
  .belief__list{margin-top:32px}
  .stats{grid-template-columns:1fr;row-gap:32px;margin-top:32px}
  .stat{padding:0;border-left:0}
  .head + .sec-body{margin-top:32px}
  .pcard{flex-direction:column;gap:24px;padding:12px;min-height:0}
  .pcard__img{width:168px;height:103px}
  .pcard__tx{padding-top:0}
  .pcard__t .h3{max-width:308px}
  .pcard__ic{margin-top:2px}
  .pcard__d{margin-top:12px}
  .pcards{gap:24px}
  .quiz__grid{gap:32px}
  .qbox{padding:12px;min-height:583px}
  .qstep{margin-top:24px}
  .qopt span{font-size:22px;line-height:30px;padding:15px 12px}
  .quiz__note{margin-top:12px}
  .proc{gap:24px}
  .proc__img{height:438px}
  .proc__grid{grid-template-columns:1fr;gap:24px}
  .pstep{padding:12px;min-height:223px}
  .pstep__n{font-size:40px;line-height:48px;right:20px;top:20px}
  .pstep .h3{margin-top:24px}
  .pstep p{margin-top:12px}
  .agrid{grid-template-columns:1fr;gap:24px}
  .agrid+.agrid{margin-top:32px}
  .acard__img{height:361px}
  .acard .h3{margin-top:24px}
  .acard__meta{display:flex;justify-content:space-between;align-items:baseline;margin-top:12px}
  .acard__yrs{margin-top:0;text-align:right}
  .scard{grid-template-columns:1fr;padding:12px;gap:24px}
  .scard__img{height:456px}
  .scard__body{padding:0}
  .scard__q{font-size:22px;line-height:30px}
  .scard__qm{display:block;width:100px;height:200px;right:0;top:0}
  .snext{position:relative;right:auto;bottom:auto;flex-direction:row;width:232px;padding:16px 16px;margin:24px 0 0 auto;gap:12px}
  .snext__img{width:84px;height:79px}
  .awards--tight{padding:90px 0}
.alogos{flex-direction:column;align-items:center;gap:24px;margin-top:32px}
  .bgrid{grid-template-columns:1fr;gap:24px}
  .bcard__img{height:212px}
  .bcard{grid-template-areas:"img img" "h h" "d b";align-items:center}
  .bcard .h3{margin-top:24px}
  .bcard__date{margin-top:12px}
  .bcard .byline{margin-top:12px;font-size:16px}
  .bcard .byline img{width:24px;height:24px}
  .cta__grid,.mission__grid{grid-template-columns:1fr;gap:32px}
  .cta__img{height:468px}
  .sec--pt0{padding-top:var(--secpad)}
  .sprog{display:none}
  .mission__img{height:428px}
  .awards--tight{padding:80px 0}
  .foot{height:580px}
  .foot__in{grid-template-columns:1fr;padding-top:45px;align-content:start}
  .foot__tag{font-size:16px;line-height:26px;margin-top:12px}
  .foot__c{margin-top:12px}
  .foot__c+.foot__c{margin-top:12px}
  .foot__cols{justify-content:flex-start;margin-top:48px;gap:48px}
  .foot__cols>div:last-child{display:none}
  .foot__list{margin-top:24px;gap:12px}
  .foot{position:relative;height:auto;padding-bottom:calc(84px + env(safe-area-inset-bottom))}
  .foot__in{height:auto}
  .foot__legal{position:static;margin:32px 16px 0;flex-direction:column;gap:4px;font-size:11px;line-height:16px}
  .foot-space{display:none}
  .ihero{padding-top:120px}
  .ihero__top{gap:24px}
  .ihero__top .h1,.ihero__lead{max-width:none}
  .astory__p{max-width:none}
  .brow__tx{width:auto}
  .phero__tx{max-width:none}
  .feat{grid-template-columns:1fr}
  .feat__tx{min-height:0}
  .feat .h1{font-size:40px;line-height:48px}
  .ihero__lead{font-size:16px;line-height:26px}
  .ihero__media{margin-top:32px}
  .ihero__team{height:214px;aspect-ratio:auto}
  .ihero__team img{left:-1px;top:22px;width:109.5%}
  .ihero__tri{grid-template-columns:1fr;gap:24px;padding-bottom:80px}
  .ihero__tri div{height:220px}
  .ihero__tri div:nth-child(3){display:none}
  .ihero__wide{height:607px;border-radius:var(--r)}
  .ihero--narrow .ihero__lead{max-width:304px}
  .brow{display:block;padding-bottom:24px}
  .brow+.brow{padding-top:24px}
  .brow__img{display:block;width:203px;height:189px;border-radius:var(--r);overflow:hidden;margin-bottom:24px}
  .brow__img img{width:100%;height:100%;object-fit:cover}
  .brow__n{position:absolute;right:0;top:0}
  .brow+.brow .brow__n{top:24px}
  .brow__tx p{margin-top:12px}
  .astory__p p{font-size:22px;line-height:30px}
  .brow__n{font-size:42px;line-height:50.4px}
  .phero{padding-top:120px}
  .phero__img{aspect-ratio:auto;height:240px;margin-top:48px}
  .pbody{padding:80px 0}
  .rt{font-size:16px;line-height:26px}
  .rt h2{font-size:16px;line-height:26px}
  .side{max-width:none}
  .feat{padding-top:120px;gap:24px}
  .feat .h1{font-size:40px;line-height:48px;margin-top:12px}
  .feat__lead{margin-top:12px}
  .feat__tx{gap:16px}
  .feat .byline{margin-top:0}
  .feat__img{height:224px}
  .feat + *{}
  .post{padding-top:120px}
  .post__lead{font-size:16px;line-height:26px}
  .post__fig{height:200px}
  .post__body h2{font-size:18px;line-height:28px}
  .pb-stat{flex-direction:column;align-items:flex-start;gap:8px}
  .pb-table{font-size:14px}
  .pb-table th,.pb-table td{padding:10px}
  .contact{padding:120px 0 80px}
  .contact__grid{display:flex;flex-direction:column;align-items:stretch;gap:0}
  .cform{max-width:none}
  .contact__left,.contact__right{display:contents}
  .contact__left .eb{order:1}
  .contact__head{order:2;margin-top:24px}
  .contact__img{order:3;height:258px}
  .cform{order:4;margin-top:32px}
  .contact__lead{margin-top:24px;font-size:16px;line-height:26px}
  /* always-on mobile CTA bar */
  .mbar{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:70;gap:10px;align-items:center;padding:10px 14px calc(10px + env(safe-area-inset-bottom));background:var(--paper);border-top:1px solid var(--rule);box-shadow:0 -8px 24px -12px rgba(20,32,43,.25)}
  .mbar__tel{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:51px;min-width:96px;padding:0 16px;border-radius:8px;box-shadow:inset 0 0 0 1px var(--ink);color:var(--ink);font:500 15px/22px var(--sans)}
  .mbar__tel svg{width:18px;height:18px}
  .mbar .btn{flex:1}
  body.menu-lock .mbar{display:none}
  .site{padding-bottom:0}
}
@media (max-width:380px){.mbar__tel span{display:none}.mbar__tel{min-width:51px}}

/* =================== reduced motion: complete static render =================== */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}
  .js [data-rv],.js .w,.js .hfade{opacity:1!important;transform:none!important;filter:none!important}
  .js [data-rv] .zoom img,.js [data-rv] .pcard__ic svg{transform:none!important}
  .js .hcover__in.load,.js .hcover__in.load img,.drift{animation:none!important;opacity:1;transform:none}
  .hcover__media{transform:none!important;opacity:1!important}
  .hcover__content{--py:0px!important}
  .hcard{--cy:0px!important}
}
