/* wf-justicia: likeness rebuild, original code. Halvorsen Bell (fictional). */
@font-face{font-family:"Playfair Display";src:url("../fonts/playfair-display-400.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Playfair Display";src:url("../fonts/playfair-display-700.woff2") format("woff2");font-weight:700;font-style:normal;font-display:swap}
@font-face{font-family:"Mulish";src:url("../fonts/mulish-200.woff2") format("woff2");font-weight:200;font-style:normal;font-display:swap}
@font-face{font-family:"Mulish";src:url("../fonts/mulish-300.woff2") format("woff2");font-weight:300;font-style:normal;font-display:swap}
@font-face{font-family:"Mulish";src:url("../fonts/mulish-400.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Mulish";src:url("../fonts/mulish-600.woff2") format("woff2");font-weight:600;font-style:normal;font-display:swap}
@font-face{font-family:"Mulish";src:url("../fonts/mulish-700.woff2") format("woff2");font-weight:700;font-style:normal;font-display:swap}

:root{
  --ink:#16181F;          /* dark role: hero scrim, team, footer panel */
  --charcoal:#2D3039;     /* buttons, CTA curtain */
  --muted:#6F727B;        /* body text on light */
  --muted-dark:#AAAEBD;   /* body text on dark */
  --muted-foot:#959BAD;   /* footer paragraph */
  --accent:#F3BB93;       /* peach: rules, hovers, text on dark */
  --accent-ink:#A35F2E;   /* peach deepened in-family for text on light (AA) */
  --paper:#FFFFFF;
  --paper-warm:#FEFAF7;   /* about band */
  --blush:#FAEBE7;        /* split backgrounds */
  --curtain-a:#E0D3C9; --curtain-b:#E5D4CF;
  --line:#BFC1C8; --line-soft:#E9E9E9; --line-dark:#262A36; --arrow-line:#AAAEBD;
  --rule-dark:rgba(255,255,255,.13);
  --serif:"Playfair Display",Georgia,serif;
  --sans:"Mulish",Arial,sans-serif;
  --ease:cubic-bezier(.215,.61,.355,1);
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--muted);font-family:var(--sans);font-size:18px;line-height:1.6;overflow-x:hidden}
img{max-width:100%;height:auto;display:block;border:0}
a{color:inherit;text-decoration:none}
h1,h2,h3,p{margin:0}
h1,h2{font-family:var(--serif);font-weight:400;color:var(--ink)}
h1{font-size:68px;line-height:1.2}
h2{font-size:64px;line-height:1.1}
p{font-size:18px;line-height:1.6}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;left:12px;top:-60px;z-index:3000;background:#fff;color:var(--ink);padding:10px 16px}
.skip:focus{top:12px}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.c1288{max-width:1288px;margin:0 auto;width:100%}
.gl{height:2px;width:44px;background:var(--accent)}

/* ---------- header ---------- */
.nb{position:absolute;top:0;left:0;right:0;z-index:1000;padding:0 20px}
.nb-in{position:relative;max-width:1288px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;padding:25px 0;height:108px}
.nb-rule{max-width:1288px;margin:0 auto;height:1px;background:var(--rule-dark)}
.brand{display:flex;align-items:center;gap:14px;height:42px;color:#fff}
.brand svg{width:50px;height:42px;flex:none}
.brand span{font-family:var(--sans);font-weight:300;font-size:27px;line-height:1;letter-spacing:.2px;white-space:nowrap}
.nav{display:flex}
.nav a{font-size:18px;line-height:18px;letter-spacing:1.5px;text-transform:uppercase;color:#fff;padding:20px;transition:color .3s ease-in-out}
.nav a:hover{color:var(--accent)}
.nav .mcta{display:none}
@media (min-width:1181px){.nav{position:absolute;left:calc(50% - 284px);top:25px}.nb.hr .nav{top:11px}}
.hcta{display:flex;align-items:center;gap:28px}
.hphone{display:none;color:#fff;font-size:17px;letter-spacing:.5px;white-space:nowrap;transition:color .3s ease-in-out}
.hphone:hover{color:var(--accent)}
.btn-std{display:inline-block;background:#fff;color:var(--ink);border:1px solid #fff;font-size:18px;line-height:18px;font-weight:700;letter-spacing:1px;text-transform:uppercase;padding:18px 34px;height:56px;transition:background-color .3s ease-in-out,color .3s ease-in-out,border-color .3s ease-in-out}
.btn-std:hover{background:var(--accent);border-color:var(--accent);color:#fff}
.mbtn{display:none;width:44px;height:44px;background:#fff;border:0;padding:0;cursor:pointer;position:relative}
.mbtn i{position:absolute;left:10px;width:24px;height:1px;background:var(--ink);transition:transform .3s ease,opacity .2s ease}
.mbtn i:nth-child(1){top:17px}.mbtn i:nth-child(2){top:22px}.mbtn i:nth-child(3){top:27px}
.menu-open .mbtn i:nth-child(1){transform:translateY(5px) rotate(45deg)}
.menu-open .mbtn i:nth-child(2){opacity:0}
.menu-open .mbtn i:nth-child(3){transform:translateY(-5px) rotate(-45deg)}
/* headroom state (house floor) */
.nb.hr{position:fixed;background:var(--ink);transform:translateY(-100%);transition:transform .35s var(--ease);box-shadow:0 1px 0 rgba(255,255,255,.06)}
.nb.hr.show{transform:none}
.nb.hr .nb-in{height:80px;padding:12px 0}
.nb.hr .nb-rule{display:none}
.nb.hr .hphone{display:inline}
.nb.hr .btn-std{height:50px;padding:15px 28px;font-size:16px}
.nb.hr .nav a{padding:20px 16px;font-size:16px}
/* header entrance (reference: brand, nav, CTA drop in from -100px) */
@keyframes dropIn{from{opacity:0;transform:translateY(-100px)}to{opacity:1;transform:none}}
@keyframes slideIn{from{opacity:0;transform:translateX(-100px)}to{opacity:1;transform:none}}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
.ent .nb .brand{animation:dropIn .8s var(--ease) .15s both}
.ent .nb .nav{animation:dropIn .8s var(--ease) .48s both}
.ent .nb .hcta{animation:dropIn .8s var(--ease) .65s both}

/* ---------- buttons ---------- */
.btn-pri{display:inline-flex;align-items:center;justify-content:center;background:#fff;color:var(--ink);border:1px solid #fff;font-size:16px;line-height:18px;font-weight:700;text-transform:uppercase;padding:25px 44px;height:68px;transition:background-color .3s ease-in-out,color .3s ease-in-out}
.btn-pri:hover{background:var(--accent);color:#fff}
.btn-out{display:inline-flex;align-items:center;justify-content:center;border:1px solid #fff;color:#fff;font-size:18px;line-height:18px;font-weight:300;letter-spacing:1px;text-transform:uppercase;padding:24px 43px;height:68px;transition:color .3s ease-in-out,border-color .3s ease-in-out}
.btn-out:hover{color:var(--accent);border-color:var(--accent)}
.btn-lg{display:inline-flex;align-items:center;justify-content:center;background:var(--charcoal);color:#fff;font-size:18px;line-height:18px;font-weight:700;padding:24px 50px;height:66px;border:0;cursor:pointer;font-family:var(--sans);transition:background-color .3s ease-in-out}
.btn-lg:hover{background:var(--accent)}

/* ---------- hero ---------- */
.hero{position:relative;padding:290px 20px 232px;background:var(--ink);overflow:hidden;isolation:isolate}
.hero-bg{position:absolute;inset:0;z-index:-2}
.hero-bg img{width:100%;height:100%;object-fit:cover;object-position:50% 50%}
.hero::before{content:"";position:absolute;inset:0;z-index:-1;background:rgba(22,24,31,.79)}
.hero-grid{display:grid;grid-template-columns:44px minmax(0,1fr);column-gap:16px;margin-bottom:100px}
.hero-grid .gl{margin-top:65px}
.hero-h1w{margin-right:352px;padding-top:20px}
.hero h1{color:#fff;margin-bottom:24px}
.hero-lead{max-width:550px;color:#fff}
.hero-btns{display:flex;margin-top:44px}
.hero-btns .btn-pri{width:230px;margin-right:32px}
.hero-btns .btn-out{width:253px}
.nextw{display:flex;justify-content:flex-end}
.next{display:block;width:81px;height:81px}
.next svg{width:81px;height:81px;display:block}
.ent .hero-grid .gl{animation:slideIn .8s var(--ease) .82s both}
.ent .hero h1{animation:slideIn .8s var(--ease) 1s both}
.ent .hero-lead{animation:slideIn .8s var(--ease) 1.25s both}
.ent .hero-btns{animation:fadeIn 1s ease-out 1.5s both}
.ent .nextw{animation:dropIn .8s var(--ease) 1.15s both}

/* ---------- reveals (JS-scoped start state; no-JS renders everything) ---------- */
.js [data-r]{opacity:0;transition:opacity .8s ease}
.js [data-r].in{opacity:1}
.js [data-r="up"]{transform:translateY(100px);transition:opacity .8s ease,transform .8s var(--ease)}
.js [data-r="up"].in{transform:none}
.cur{position:absolute;top:0;bottom:0;z-index:2;transform-origin:0 50%;pointer-events:none}
.js .cur{transform:scaleX(1);transition:transform .6s var(--ease) 1s}
.js .cur.in{transform:scaleX(0)}
.no-js .cur,html:not(.js) .cur{display:none}
.no-js .mask{overflow-x:auto}

/* ---------- awards ---------- */
.awards{position:relative}
.hero+.awards{margin-top:-118px;background:linear-gradient(180deg,transparent 50%,var(--paper-warm) 0)}
.awards-c{width:94%;background:#fff;padding:66px 24px}
.awards-w{max-width:1288px;margin:0 auto;display:flex;align-items:center;justify-content:space-between}
.awards-t{font-size:22px;line-height:18px;font-weight:600;letter-spacing:2px;text-transform:uppercase;color:var(--ink);margin-right:136px;white-space:nowrap}
.awards-l{display:flex;align-items:center;justify-content:space-between;width:803px;max-width:100%}
.aw{width:119px;height:99px}
.aw.seal{width:94px;height:94px}
.awards-l>div{line-height:0}
.aw{display:block}

/* ---------- content-with-line heading block ---------- */
.cwl{display:grid;grid-template-columns:44px minmax(0,1fr);column-gap:24px;row-gap:16px}
.cwl>.gl{margin-top:40px}
.cwl h2{margin-bottom:24px}
.cwl p{margin-bottom:24px}

/* ---------- about split ---------- */
.about{background:var(--paper-warm);padding:140px 20px}
.about-g{max-width:1288px;margin:0 auto;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:16px}
.about-l{margin-top:107px;max-width:494px}
.about-l p{margin-bottom:40px}
.about-r{position:relative;min-height:464px}
.about-iw{position:absolute;top:62px;left:0;width:calc(100% + 20px);height:676px;display:flex;justify-content:flex-end;align-items:center}
.about-iw .ph{position:relative;width:623px;height:676px;max-width:calc(100% - 13px)}
.about-iw .ph img{width:100%;height:100%;object-fit:cover}
.about-iw .ph .cur{left:0;width:100%;background:var(--curtain-a)}
.dots{position:absolute;display:block}
.about-iw .dots{left:-20px;top:-54px;width:365px;height:365px;z-index:-1}
.about .about-r{z-index:1}
.about,.why,.cases,.team{overflow-x:clip}
.contact{overflow:clip}

/* ---------- practice carousel ---------- */
.areas{padding:180px 20px 163px;position:relative;overflow:hidden}
.car-c{max-width:1288px;margin:0 auto;position:relative}
.areas-h{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:16px;margin-bottom:50px}
.areas-h .cwl{max-width:494px}
.car{position:relative}
.mask{position:relative;z-index:1;overflow:visible}
.track{display:flex;transition:transform .5s var(--ease);will-change:auto}
.slide{flex:none;width:380px;margin-right:40px}
.track>.slide{display:flex}
.slide>.fcard{flex:1}
.fcard{min-height:483px;background:#fff;border:1px solid var(--line);padding:65px 32px 74px}
.fcard .ico{width:98px;height:73px;display:block}
.fcard .gl{margin:32px 0}
.fcard h3{font-size:24px;line-height:28px;font-weight:700;color:var(--ink);margin-bottom:16px}
.fcard p{margin-bottom:24px;min-height:115px}
.alink{display:flex;width:max-content;align-items:center;font-size:18px;line-height:18px;color:var(--accent-ink)}
.alink svg{width:43px;height:18px;margin-left:14px;transition:transform .35s ease}
.alink:hover svg{transform:translateX(8px)}
.arr{position:absolute;top:-121px;z-index:3;width:80px;height:58px;display:flex;align-items:center;justify-content:center;border:1px solid var(--arrow-line);background:transparent;cursor:pointer;padding:0;transition:border-color .3s ease-in-out}
.arr:hover{border-color:var(--accent)}
.arr svg{width:43px;height:13px}
.arr.l{right:129px;background:#fff}
.arr.r{right:13px}
.areas .bgdots{position:absolute;top:calc(100% - 505px);left:max(45px,calc(50% - 675px));width:275px;height:365px;z-index:0;pointer-events:none}

/* ---------- consult CTA band ---------- */
.cta{padding-bottom:140px;background:linear-gradient(180deg,#fff 20%,var(--blush) 0)}
.cta-c{position:relative;margin-left:3%;padding:120px 20px;overflow:hidden}
.cta-c>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0;filter:saturate(.3) blur(3px);transform:scale(1.02)}
.cta-c::before{content:"";position:absolute;inset:0;z-index:1;background:rgba(26,26,36,.9)}
.cta-c .cur{left:0;width:100%;background:var(--charcoal);z-index:1}
.cta-in{position:relative;z-index:2;max-width:600px;margin:0 auto;text-align:center;padding-top:32px}
.cta-in .gl{width:150px;margin:0 auto 32px}
.cta-in h2{color:#fff;margin-bottom:24px}
.cta-in p{color:var(--muted-dark);margin-bottom:40px}
.btn2{display:flex;justify-content:center}
.btn2 .btn-pri{width:230px;margin-right:32px}
.btn2 .btn-out{min-width:244px;padding:24px 30px}

/* ---------- case results ---------- */
.cases{padding:140px 20px}
.cases-h{display:grid;grid-template-columns:minmax(0,545fr) minmax(0,727fr);column-gap:16px;margin-bottom:60px}
.cases-g{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px 32px;margin-bottom:48px}
.ccard img{width:100%;height:auto;aspect-ratio:408/526;object-fit:cover;position:relative;z-index:-1}
.ccard{position:relative;z-index:0}
.ccard-c{position:relative;z-index:2;margin:-150px 18px 0;background:#fff;border:1px solid var(--line);padding:40px 32px 48px;min-height:420px}
.ccard-c .gl{margin:32px 0}
.amt{font-size:32px;line-height:36px;font-weight:600;color:var(--ink);margin-bottom:8px}
.sub{font-size:18px;line-height:28px;letter-spacing:1.5px;text-transform:uppercase;color:var(--accent-ink);margin-bottom:24px}
.fc{display:flex;justify-content:center}

/* ---------- why us ---------- */
.why{padding:140px 20px;background:linear-gradient(90deg,var(--blush) 34%,var(--ink) 0)}
.why-g{max-width:1288px;margin:0 auto;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:61px;align-items:center}
.why-i{position:relative}
.why-i .ph{position:relative;z-index:1;width:95%}
.why-i .ph img{width:100%;height:auto;aspect-ratio:583/604;object-fit:cover}
.why-i .ph .cur{left:0;width:100%;background:var(--curtain-b)}
.why-i .dots{left:70.6%;top:-62px;width:233px;height:365px;z-index:0}
.why-r{display:grid;grid-template-columns:44px minmax(0,1fr);column-gap:16px;width:100%;max-width:573px;justify-self:end}
.why-r .gl{margin-top:40px}
.why-r h2{color:#fff;margin-bottom:24px}
.why-r p{color:var(--muted-dark);max-width:434px;margin-bottom:24px}
.why-div{height:1px;background:var(--rule-dark);margin:56px 0 56px -60px}
.sign{display:grid;grid-template-columns:127px minmax(0,1fr);column-gap:34px;align-items:start}
.sign svg{width:127px;height:91px}
.sign .nm{font-size:24px;line-height:24px;font-weight:600;color:#fff;margin:16px 0 16px}
.sign .jt{font-size:22px;line-height:20px;color:var(--muted-dark)}

/* ---------- testimonials ---------- */
.tst{padding:140px 20px;overflow:hidden}
.tst-h{display:grid;grid-template-columns:minmax(0,545fr) minmax(0,727fr);column-gap:16px;margin-bottom:111px}
.tst-h h2{margin-bottom:0}
.tst-h p{margin-top:18px}
.tst .slide{width:518px;margin-right:32px}
.tcard{min-height:356px;height:100%;background:#fff;border:1px solid var(--line);padding:0 40px 48px}
.tcard-w{margin-top:-57px}
.tcard-w img{width:116px;height:116px;border-radius:50%;object-fit:cover;margin-bottom:24px;background:#F6E3D3}
.tcard-w p{margin-bottom:24px;min-height:115px}
.tname{display:flex;align-items:flex-end;margin-bottom:10px;min-height:38px}
.tname b{font-size:18px;line-height:21.6px;font-weight:600;color:var(--ink);margin-right:8px}
.tname .gl{margin-bottom:4px}
.trole{font-size:18px;line-height:18px;color:var(--muted)}
.tst .arr{top:-189px}
.tst .arr.l{right:155px;background:transparent;border-color:var(--accent)}
.tst .arr.r{right:39px}
.tst .fc{margin-top:48px}

/* ---------- team ---------- */
.team{background:var(--ink);padding:140px 20px}
.team-h{max-width:600px;margin:0 auto;text-align:center}
.team-h .gl{width:150px;margin:0 auto 16px}
.team-h h2{color:#fff;margin-bottom:18px}
.team-h p{color:var(--muted-dark)}
.team-g{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px 32px;margin-top:130px}
.tm{border:1px solid var(--line-dark);padding:0 20px 45px}
.tm-c{margin-top:-71px;display:flex;flex-direction:column;align-items:center;text-align:center}
.tm-c img{width:174px;height:174px;border-radius:50%;object-fit:cover;background:#F9EBDF}
.tm-c .ln{width:48px;height:2px;background:var(--accent);margin:32px 0 23px}
.tm-c h3{font-size:24px;line-height:24px;font-weight:600;color:#fff;margin-bottom:8px}
.tm-c .sub{color:var(--accent);margin-bottom:0}
.tm-c .dv{align-self:stretch;height:1px;background:var(--rule-dark);margin:24px 0}
.tm-c .tl{font-size:16px;line-height:18px;color:#fff;margin-bottom:13px}
.tm-c .tl b{font-weight:600}
.tm-c .tl a:hover{color:var(--accent)}

/* ---------- contact / get in touch ---------- */
.contact{background:linear-gradient(180deg,var(--ink) 50%,#fff 0)}
.form-c{position:relative;z-index:1;padding:140px 20px;background:linear-gradient(90deg,#fff 97%,transparent 0)}
.contact-g{max-width:1288px;margin:0 auto;display:grid;grid-template-columns:minmax(0,487fr) minmax(0,731fr);column-gap:70px}
.info .cwl h2{font-size:44px;line-height:43.2px;margin-bottom:16px}
.info .cwl p{margin-bottom:26px}
.crow{display:flex;align-items:center;margin-bottom:14px}
.crow .ic{width:40px;height:40px;border-radius:50%;background:#383B45;display:flex;align-items:center;justify-content:center;margin-right:14px;flex:none}
.crow .ic svg{width:18px;height:18px}
.crow a{font-size:18px;line-height:24px;color:var(--ink);transition:color .3s ease-in-out}
.crow a:hover{color:var(--accent-ink)}
.fw{position:relative}
.fw .dots{left:-73px;top:429px;width:365px;height:365px;z-index:-1}
.fblock{position:relative;background:#fff;border:1px solid var(--line);padding:80px 48px}
.fgrid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:48px 24px;margin-bottom:48px}
.fgrid .full{grid-column:1/-1}
.fgrid label{display:block;font-size:16px;line-height:18px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--ink);margin-bottom:20px}
.fgrid input,.fgrid textarea{display:block;width:100%;height:62px;border:0;border-bottom:1px solid var(--line);padding:8px 12px;font:400 18px/1.4 var(--sans);color:var(--ink);background:#fff;border-radius:0}
.fgrid textarea{height:105px;resize:vertical}
.fgrid input::placeholder,.fgrid textarea::placeholder{color:#8E9098}
.fgrid input:focus,.fgrid textarea:focus{outline:none;border-bottom-color:var(--accent-ink)}
.fblock .btn-lg{width:271px;text-transform:uppercase}
.fdone{display:none;padding:20px;background:var(--blush);color:var(--ink);font-size:18px}
.sent form{display:none}.sent .fdone{display:block}

/* ---------- footer ---------- */
.foot{padding:0 20px 40px;background:linear-gradient(180deg,#fff 20%,var(--blush) 0)}
.foot-p{max-width:1288px;margin:0 auto;background:var(--ink);padding:87px 230px;text-align:center}
.foot-logo{display:inline-flex;margin-bottom:16px;padding-bottom:17px}
.foot-p .brand span{font-size:30px}
.foot-p>p{max-width:500px;margin:2px auto 32px;color:var(--muted-foot)}
.soc{display:flex;justify-content:center;align-items:center;margin-bottom:40px}
.soc a{display:block;color:#fff;transition:opacity .35s}
.soc a:hover{opacity:.7}
.soc a:nth-child(2){margin:0 36px}
.soc svg{display:block;height:25px}
.fmenu{border-top:1px solid var(--rule-dark);border-bottom:1px solid var(--rule-dark);display:flex;justify-content:center}
.fmenu a{font-size:18px;line-height:18px;letter-spacing:1px;text-transform:uppercase;color:#fff;margin:20px;transition:color .3s ease-in-out}
.fmenu a:hover{color:var(--accent)}
.copy{margin-top:40px;text-align:center;font-size:18px;line-height:26px;color:var(--ink)}
.copy div+div{margin-top:20px}
.copy a{text-decoration:underline;text-underline-offset:3px}

/* ---------- practice-area detail / inner page head ---------- */
.pahero{background:var(--ink);padding:160px 24px 200px;height:360px}
.pasec{padding:0 24px 120px}
.pacard{max-width:820px;margin:-130px auto 0;position:relative;background:#fff;border:1px solid var(--line-soft);padding:72px 72px 54px}
.pahead{display:flex;align-items:flex-start;padding-bottom:56px;margin-bottom:32px;border-bottom:1px solid var(--line)}
.pahead .ico{width:114px;height:85px;flex:none;margin-right:32px}
.pahead h1{font-size:32px;line-height:38.4px;margin-bottom:16px}
.pacard.headonly{padding-bottom:72px}
.pacard.headonly .pahead{border-bottom:0;padding-bottom:0;margin-bottom:0}
.rt h2{font-size:44px;line-height:52.8px;margin:32px 0 24px}
.rt h3{font-family:var(--serif);font-size:24px;line-height:28px;font-weight:700;color:var(--ink);margin:24px 0 10px}
.rt p{margin-bottom:24px}
.rt a{color:var(--accent-ink);text-decoration:underline;text-underline-offset:2px}
.rt strong{color:var(--ink);font-weight:700}
.rt blockquote{margin:26px 0;padding:32px 20px;border-left:5px solid var(--accent);font-size:20px;line-height:30px;color:var(--muted)}
.rt figure{margin:56px 0}
.rt figure img{width:100%;height:auto;aspect-ratio:674/379;object-fit:cover}
.rt figcaption{margin-top:22px;font-size:16px;line-height:20.8px;color:var(--muted)}
.rt .tail{height:270px}

/* ---------- 404 ---------- */
.u404{min-height:100vh;background:var(--paper-warm);display:flex;align-items:center;justify-content:center;padding:40px 20px}
.u404-c{display:flex;flex-direction:column;align-items:center;text-align:center;max-width:560px}
.u404 .big{font-family:var(--sans);font-weight:200;font-size:296px;line-height:1.1;color:var(--accent)}
.u404 h1{font-size:64px;line-height:70.4px;color:var(--charcoal);margin-bottom:20px}
.u404 p{font-size:18px;line-height:18px;margin-bottom:40px}

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

/* ================= breakpoints (mirror the reference: 991 / 767 / 479) ================= */
@media (max-width:1180px){
  .awards-t{margin-right:40px}
}
@media (max-width:991px){
  .hero-h1w{margin-right:0}
  .nb-in{height:94px;padding:25px 0}
  .nav{display:none}
  .hcta .btn-std{display:none}
  .mbtn{display:block}
  .nb.hr .nb-in{height:72px;padding:14px 0}
  .menu-open .nb{background:var(--ink)}
  .menu-open .nav{display:block;position:absolute;left:-20px;right:-20px;top:100%;background:#fff;text-align:left;animation:menuDown .35s var(--ease) both}
  body.menu-open .nb .nav{animation:menuDown .35s var(--ease) both}
  @keyframes menuDown{from{opacity:0;transform:translateY(-12px)}to{opacity:1;transform:none}}
  .menu-open .nav a{display:block;color:var(--ink);font-size:15px;line-height:16px;padding:20px;border-bottom:1px solid rgba(191,193,200,.17)}
  .menu-open .nav a:hover{color:var(--accent-ink)}
  .menu-open .nav .mcta{display:block;padding:20px;border:0}
  .menu-open .nav .mcta span{display:inline-block;background:var(--ink);color:#fff;font-size:15px;font-weight:700;padding:18px 34px}
  .hero{padding:225px 20px 240px}
  .hero-grid{margin-bottom:60px}
  .nextw{justify-content:flex-start;padding-left:60px}
  .next,.next svg{width:57px;height:57px}
  .hero+.awards{margin-top:-122px}
  .awards-c{padding:40px 24px}
  .awards-w{flex-direction:column;align-items:flex-start;gap:16px}
  .awards-l{justify-content:flex-start;flex-wrap:wrap;gap:0;width:auto}
  .awards-l>div{margin:20px}
  .aw{width:92px;height:77px}.aw.seal{width:92px;height:92px}
  .about{padding:100px 20px}
  .about-g{grid-template-columns:minmax(0,1fr);row-gap:85px}
  .about-l{margin-top:0}
  .about-r{min-height:0}
  .about-iw{position:relative;top:0;width:auto;height:auto;justify-content:flex-start;margin-left:60px}
  .about-iw .ph{width:100%;max-width:none;height:auto;aspect-ratio:623/676}
  .about-iw .dots{left:-24px;top:-34px}
  .areas{padding:100px 20px}
  .areas-h{grid-template-columns:minmax(0,1fr);margin-bottom:176px}
  .arr{top:-116px}
  .arr.l{left:0;right:auto}.arr.r{left:116px;right:auto}
  .cta{padding-bottom:0}
  .cta-c{margin-left:0;padding:100px 20px}
  .cases{padding:100px 20px}
  .cases-h{grid-template-columns:minmax(0,1fr)}
  .cases-g{grid-template-columns:repeat(2,minmax(0,1fr));gap:48px 32px}
  .why{padding:100px 20px;background:linear-gradient(0deg,var(--blush) 32%,var(--ink) 0)}
  .why-g{display:flex;flex-direction:column-reverse;gap:72px;align-items:stretch}
  .why-i .ph{width:100%}
  .why-i .dots{left:auto;right:-26px;top:auto;bottom:-54px}
  .why-r{max-width:none;justify-self:auto}
  .why-r p{max-width:none}
  .tst{padding:100px 20px}
  .tst-h{grid-template-columns:minmax(0,1fr);margin-bottom:233px}
  .tst .car{margin-left:60px}
  .tst .arr{top:-140px}
  .tst .arr.l{left:0;right:auto}.tst .arr.r{left:116px;right:auto}
  .team{padding:100px 20px}
  .team-g{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:110px;margin-top:110px}
  .contact-g{grid-template-columns:minmax(0,1fr);row-gap:16px;max-width:710px}
  .pahero{height:345px;padding:145px 24px 200px}
  .form-c{padding:100px 20px}
  .foot-p{padding:100px 80px}
  .mbar{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:1500;background:var(--ink);padding:8px 10px calc(8px + env(safe-area-inset-bottom));gap:8px;box-shadow:0 -1px 0 rgba(255,255,255,.08)}
  .mbar a{flex:1;display:flex;align-items:center;justify-content:center;gap:8px;min-height:48px;font-size:15px;font-weight:700;text-transform:uppercase;letter-spacing:.5px}
  .mbar .call{border:1px solid rgba(255,255,255,.5);color:#fff}
  .mbar .go{background:var(--accent);color:var(--ink)}
  .mbar svg{width:16px;height:16px}
  body{padding-bottom:calc(64px + env(safe-area-inset-bottom))}
  .menu-open .mbar{display:none}
}
@media (max-width:767px){
  h1{font-size:52px;line-height:62.4px}
  h2{font-size:45px;line-height:49.5px}
  p,.hero-lead{font-size:16px;line-height:25.6px}
  .aw{width:100px;height:83px}.aw.seal{width:94px;height:94px}
  .about-iw{margin-left:0}
  .about-l{max-width:none}
  .about-g{row-gap:74px}
  .fcard{min-height:448px}
  .areas .bgdots{left:8px;top:calc(100% - 494px)}
  .fcard p,.tcard-w p{min-height:0}
  .arr{top:-112px}
  .tst .slide{width:400px}
  .tst .car{margin-left:0}
  .tst-h{margin-bottom:228px}
  .tst .arr{top:-176px}
  .team{--av:calc((100vw - 40px) * .28)}
  .team-g{margin-top:calc(var(--av) * .366 + 50px)!important;row-gap:calc(var(--av) * .366 + 31px)!important}
  .tm-c{margin-top:calc(var(--av) * -.366)}
  .tm-c img{width:var(--av);height:var(--av)}
  .copy{margin-top:40px!important}
  .btn2 .btn-pri,.btn2 .btn-out{height:60px;padding:20px 30px}
  .ccard-c{min-height:0}
  .contact-g{max-width:571px}
  .fblock{padding:60px 30px}
  .fgrid{grid-template-columns:minmax(0,1fr)}
  .hero{padding:185px 20px 100px}
  .hero-grid{grid-template-columns:minmax(0,1fr);row-gap:10px;margin-bottom:0}
  .hero-grid .gl{margin-top:0;margin-bottom:10px}
  .hero-h1w{padding-top:20px}
  .nextw{display:none}
  .nb.hr .hphone{display:none}
  .hero+.awards{margin-top:0;background:#fff}
  .awards-c{width:100%;padding:80px 24px}
  .awards-w{align-items:center}
  .awards-l{justify-content:center}
  .about,.areas,.cases,.tst{padding:40px 20px 80px}
  .cwl{grid-template-columns:minmax(0,1fr);row-gap:19px}
  .cwl>.gl{margin-top:40px;margin-bottom:10px}
  .areas-h{margin-bottom:160px}
  .cta{padding-bottom:0;background:none}
  .cta-c{padding:80px 20px}
  .btn2{display:grid;grid-template-columns:1fr 1fr;gap:16px}
  .btn2 .btn-pri,.btn2 .btn-out{width:100%;margin:0;min-width:0}
  .cases-g{grid-template-columns:minmax(0,1fr);gap:40px}
  .why{padding:80px 20px}
  .why-r{grid-template-columns:minmax(0,1fr);row-gap:10px}
  .why-r .gl{margin-top:0}
  .why-r h2{white-space:normal}
  .team{padding:80px 20px}
  .team-g{grid-template-columns:minmax(0,1fr);row-gap:68px;margin-top:80px}
  .contact{background:#fff}
  .form-c{padding:40px 20px 80px;background:#fff}
  .foot{padding:0 0 40px}
  .copy{margin-top:20px}
  .foot-p{padding:80px 40px}
  .fmenu{flex-direction:column;align-items:center;padding:32px 0}
  .fmenu a{margin:12px 20px}
  .pasec{padding:0 16px 60px}
  .pacard{padding:48px 20px}
  .pacard.headonly{padding-bottom:48px}
  .pahead{flex-direction:column}
  .pahead .ico{margin:0 0 32px}
  .rt h2{font-size:32px;line-height:38.4px}
  .rt h3{font-size:22px}
  .rt .tail{height:200px}
}
@media (max-width:479px){
  .awards-l>div{margin:0}
  .about-g{row-gap:84px}
  .areas-h{margin-bottom:178px}
  .tst-h{margin-bottom:192px}
  .team-g{margin-top:80px!important;row-gap:68px!important}
  .tm-c{margin-top:-41px}
  .copy{margin-top:20px!important}
  .foot{padding:0 0 20px}
  .foot-p{padding:40px 20px}
  .contact-g{max-width:none}
  h1{font-size:35px;line-height:42px}
  h2{font-size:35px;line-height:38.5px}
  p,.hero-lead{font-size:15px;line-height:24px}
  .nb-in{height:94px}
  .brand span{font-size:23px}
  .brand svg{width:44px;height:37px}
  .hero-btns{display:grid;grid-template-columns:minmax(0,1fr);gap:32px}
  .hero-btns .btn-pri,.hero-btns .btn-out{width:100%;margin:0;height:58px;padding:20px 30px;font-size:15px}
  .hero-btns .btn-out{height:60px}
  .btn-lg{width:100%;height:58px;padding:20px 40px;font-size:15px}
  .awards-t{font-size:18px;line-height:16px;margin:0}
  .awards-l{display:grid;grid-template-columns:repeat(auto-fit,110px);gap:24px;justify-items:center;justify-content:center}
  .aw{width:100px;height:83px}
  .about-l{max-width:none}
  .about-l p{margin-bottom:40px}
  .about-iw .ph{aspect-ratio:350/379}
  .about-iw .dots{left:auto;right:-11px;top:189px;width:210px;height:210px}
  .slide{width:calc(100vw - 40px);margin-right:12px}
  .fcard{min-height:381px;padding:40px 20px}
  .fcard .gl{margin:32px 0 10px}
  .alink svg{height:16px}
  .areas .bgdots{left:8px;top:calc(100% - 427px)}
  .fcard h3{font-size:25px}
  .fcard p{min-height:96px}
  .alink{font-size:16px;line-height:16px}
  .arr{top:-107px}
  .cta-c{padding:112px 20px 80px}
  .cta-in{padding-top:0}
  .cta-in .gl{margin-bottom:10px}
  .btn2{grid-template-columns:minmax(0,1fr);gap:32px 16px}
  .btn2 .btn-pri,.btn2 .btn-out{height:58px;padding:20px 30px;font-size:15px}
  .btn2 .btn-out{height:60px}
  .ccard-c{min-height:374px;padding:40px 24px 48px}
  .ccard-c .gl{margin-bottom:10px}
  .amt{font-size:24px;line-height:36px}
  .sub{font-size:16px;line-height:24px}
  .why-i .ph{max-width:100%}
  .why-i .ph img{height:auto;aspect-ratio:350/363}
  .why-i .dots{left:auto;right:-22px;top:auto;bottom:-18px;width:186px;height:291px}
  .why-div{margin:56px 0}
  .why-g{gap:71px}
  .ccard-c{margin:-125px 12px 0}
  .sign{grid-template-columns:127px minmax(0,1fr);column-gap:34px}
  .sign .nm{font-size:20px}.sign .jt{font-size:18px}
  .tst .slide{width:calc(100vw - 40px);margin-right:12px}
  .tcard{min-height:359px;padding:0 20px 40px}
  .tcard-w p{min-height:0}
  .tst-h{margin-bottom:192px}
  .tst .arr{top:-136px}
  .tst .arr.r{left:98px}.arr.r{left:98px}
  .tm-c{margin-top:-41px}
  .tm-c img{width:123px;height:123px}
  .tm-c h3{font-size:22px}
  .info .cwl h2{font-size:44px}
  .fblock{padding:48px 20px}
  .fgrid{grid-template-columns:minmax(0,1fr)}
  .fblock .btn-lg{width:100%;height:66px}
  .fw .dots{left:-14px;top:auto;bottom:-120px;width:350px;height:350px}
  .foot-p>p{font-size:15px;line-height:24px}
  .fmenu a{font-size:15px;line-height:16px}
  .copy{font-size:16px;line-height:26px;padding:0 20px}
  .u404 .big{font-size:150px}
  .u404 h1{font-size:35px;line-height:42px}
  .u404 p{line-height:24px}
  .rt blockquote{font-size:20px}
}
@media (min-width:1920px){
  p{font-size:20px;line-height:1.6}
  .hero-lead{max-width:620px}
  .sub,.trole,.tm-c .tl{font-size:20px}
  .cta-in p{max-width:620px;margin-left:auto;margin-right:auto}
  .tm-c .tl{margin-bottom:18px}
  .about-l{max-width:600px}
  .tcard{min-height:405px}
  .ccard-c{min-height:468px}
  .c1288,.nb-in,.nb-rule,.awards-w,.about-g,.car-c,.why-g,.contact-g,.foot-p{max-width:1440px}
  .hero-h1w{max-width:1028px}
  .about-iw{height:754px}.about-iw .ph{width:695px;height:754px}
  .fcard{height:528px}
  .cta-in,.team-h{max-width:720px}
  .ccard img{width:408px}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
  .js [data-r]{opacity:1;transform:none}
  .js .cur{transform:scaleX(0)}
  .nb.hr{transform:none}
}
