:root{
  --night:#0C1226; --navy:#1A2547; --navy-2:#26325C; --steel:#6C7FA8; --steel-d:#42537B;
  --paper:#F4F2EC; --paper-2:#E9E5DA; --ink:#14171F; --body:#4A4F5C; --rule:#D6D0C2;
  --red:#C1392B; --red-d:#9E2C20; --steel-l:#93A6CC;
  --disp:"Bodoni Moda",Didot,"Bodoni MT",Georgia,serif;
  --txt:"Libre Franklin",-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif;
  --gut:clamp(20px,5vw,84px); --maxw:1320px;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--txt);
  font-size:17px;line-height:1.68;-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
a{color:inherit}
p{margin:0}
h1,h2,h3{font-family:var(--disp);font-weight:400;margin:0;line-height:1.08;text-wrap:balance}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 var(--gut)}
.skip{position:absolute;left:-9999px;background:var(--red);color:#fff;padding:14px 22px;z-index:300}
.skip:focus{left:14px;top:14px}
a:focus-visible,button:focus-visible{outline:2.5px solid var(--red);outline-offset:3px}
.sc{font-size:12px;letter-spacing:.2em;text-transform:uppercase;font-weight:600}

/* ── header over the photograph ───────────────────────────── */
.top{position:absolute;inset:0 0 auto;z-index:20;color:#fff}
.util{border-bottom:1px solid rgba(255,255,255,.16)}
.util .wrap{display:flex;justify-content:space-between;align-items:center;gap:20px;
  min-height:46px;flex-wrap:wrap}
.util a{text-decoration:none;opacity:.86}.util a:hover{opacity:1}
.hd{display:flex;align-items:center;justify-content:space-between;gap:36px;padding:22px 0}
.hd img{height:64px;width:auto}
nav ul{display:flex;gap:30px;list-style:none;margin:0;padding:0}
nav a{text-decoration:none;font-size:15.5px;font-weight:400;letter-spacing:.01em;
  padding:8px 0;display:block;border-bottom:1px solid transparent}
nav a:hover{border-bottom-color:var(--red)}
.hd .tel{text-decoration:none;font-family:var(--disp);font-size:21px;white-space:nowrap}
.burger{display:none;width:50px;height:50px;background:none;border:1px solid rgba(255,255,255,.4);color:#fff;font-size:19px}

/* ── hero: the photograph at full strength ────────────────── */
.hero{position:relative;min-height:min(94vh,880px);display:flex;align-items:flex-end;
  background:var(--night);overflow:hidden;isolation:isolate}
.hero picture,.hero>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 62%;z-index:0}
.hero::after{content:"";position:absolute;inset:0;z-index:1;
  background:
    linear-gradient(90deg,rgba(6,10,22,.90) 0%,rgba(6,10,22,.78) 26%,rgba(6,10,22,.42) 50%,rgba(6,10,22,.06) 74%,rgba(6,10,22,0) 88%),
    linear-gradient(180deg,rgba(6,10,22,.66) 0%,rgba(6,10,22,.10) 30%,rgba(6,10,22,.10) 62%,rgba(6,10,22,.52) 100%)}
.ghost{position:absolute;z-index:2;right:calc(var(--gut) - .06em);bottom:-.16em;margin:0;
  font-family:var(--disp);font-size:clamp(140px,26vw,400px);line-height:.78;
  color:rgba(255,255,255,.085);letter-spacing:-.03em;pointer-events:none;user-select:none}
.hero .wrap{position:relative;z-index:3;padding-bottom:clamp(50px,7vw,96px);
  padding-top:clamp(160px,20vw,240px);width:100%}
.hero h1{color:#fff;font-size:clamp(40px,6.1vw,80px);max-width:13ch;margin-bottom:26px}
.hero h1 em{font-style:italic}
.hero .lede{color:rgba(255,255,255,.92);font-size:clamp(17px,1.6vw,19.5px);max-width:46ch;
  font-weight:300;margin-bottom:34px}
.acts{display:flex;gap:14px;flex-wrap:wrap}
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:56px;padding:0 32px;
  text-decoration:none;font-size:14px;font-weight:600;letter-spacing:.11em;text-transform:uppercase;
  border:1px solid transparent;transition:background .18s,color .18s,border-color .18s;cursor:pointer}
.btn-red{background:var(--red);color:#fff}.btn-red:hover{background:var(--red-d)}
.btn-line{border-color:rgba(255,255,255,.55);color:#fff}.btn-line:hover{background:#fff;color:var(--night)}
.btn-ink{background:var(--night);color:#fff}.btn-ink:hover{background:var(--navy)}
.btn-dark-line{border-color:var(--navy);color:var(--navy)}.btn-dark-line:hover{background:var(--navy);color:#fff}
.credit{position:absolute;z-index:3;right:var(--gut);top:calc(100% - 30px);font-size:12px;color:var(--body)}

/* ── statement ────────────────────────────────────────────── */
.statement{padding:clamp(64px,8vw,120px) 0 clamp(48px,6vw,80px)}
.statement .wrap{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:clamp(28px,5vw,80px);align-items:start}
.statement h2{font-size:clamp(28px,3.5vw,46px);line-height:1.12}
.statement h2 em{font-style:italic;color:var(--steel-d)}
.statement .cols{columns:2;column-gap:38px;color:var(--body);font-weight:300;font-size:16.5px}
.statement .cols p+p{margin-top:14px}
.statement .cols p{break-inside:avoid}

/* ── practice index ───────────────────────────────────────── */
.practice{padding:clamp(40px,5vw,64px) 0 clamp(64px,8vw,110px)}
.pgrid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(30px,5vw,84px)}
.pcol h3{font-size:clamp(25px,2.9vw,36px);margin-bottom:8px}
.pcol .say{color:var(--body);font-weight:300;margin-bottom:24px;max-width:38ch}
.pcol ol{list-style:none;margin:0;padding:0;border-top:1px solid var(--rule)}
.pcol li{border-bottom:1px solid var(--rule)}
.pcol li a{display:grid;grid-template-columns:1fr auto;align-items:center;gap:18px;
  padding:17px 0;min-height:58px;text-decoration:none}
.pcol li a:hover .nm{color:var(--red)}
.pcol .nm{font-size:17.5px;font-weight:500;transition:color .16s}
.pcol .go{color:var(--red);font-size:16px;opacity:0;transform:translateX(-6px);transition:opacity .18s,transform .18s}
.pcol li a:hover .go,.pcol li a:focus-visible .go{opacity:1;transform:none}
.pcol .more{display:inline-block;margin-top:26px;font-size:13px;letter-spacing:.11em;
  text-transform:uppercase;font-weight:600;text-decoration:none;border-bottom:1px solid var(--red);padding-bottom:4px}

/* ── portrait plate ───────────────────────────────────────── */
.bio{background:var(--paper-2);padding:clamp(60px,8vw,110px) 0;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}
.bio .wrap{display:grid;grid-template-columns:minmax(0,.72fr) minmax(0,1.28fr);gap:clamp(30px,5vw,76px);align-items:start}
.plate{margin:0;background:var(--paper);padding:16px 16px 0;border:1px solid var(--rule)}
.plate img{width:100%}
.plate figcaption{padding:14px 2px 16px;border-top:1px solid var(--rule);margin-top:16px;
  font-size:12.5px;color:var(--body);display:flex;justify-content:space-between;gap:12px}
.bio h2{font-size:clamp(28px,3.4vw,44px);margin:10px 0 20px}
.bio p{color:var(--body);font-weight:300;max-width:62ch}
.bio p+p{margin-top:15px}
.facts{margin:32px 0 30px;border-top:1px solid var(--rule)}
.facts div{display:grid;grid-template-columns:minmax(120px,190px) 1fr;gap:20px;
  padding:13px 0;border-bottom:1px solid var(--rule)}
.facts dt{color:var(--steel-d);font-size:12px;letter-spacing:.14em;text-transform:uppercase;font-weight:600;padding-top:4px}
.facts dd{margin:0;color:var(--body);font-weight:300;font-size:16px}

/* ── quotes on navy ───────────────────────────────────────── */
.proof{background:var(--navy);color:#EDEFF5;padding:clamp(60px,8vw,110px) 0}
.proof .head{display:flex;justify-content:space-between;align-items:baseline;gap:24px;
  flex-wrap:wrap;padding-bottom:22px;border-bottom:1px solid rgba(255,255,255,.2);margin-bottom:clamp(30px,4vw,54px)}
.proof .head h2{color:#fff;font-size:clamp(26px,3.2vw,42px)}
.proof .head .sc{color:var(--steel-l)}
.qs{display:grid;grid-template-columns:1fr 1fr;gap:clamp(26px,4vw,60px)}
.q{display:flex;flex-direction:column}
.q blockquote{margin:0 0 20px;font-family:var(--disp);font-size:clamp(19px,2.05vw,25px);
  line-height:1.42;color:#fff}
.q .att{font-size:13.5px;color:var(--steel-l);letter-spacing:.03em}
.q .att b{display:block;color:#fff;font-size:15.5px;font-weight:500;letter-spacing:0;margin-bottom:2px}
.proof .foot{margin-top:clamp(32px,4vw,52px);padding-top:24px;border-top:1px solid rgba(255,255,255,.2);
  display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;align-items:center;
  color:var(--steel-l);font-size:15px;font-weight:300}
.proof .foot a{color:#fff}

/* ── consultation ─────────────────────────────────────────── */
.consult{padding:clamp(60px,8vw,110px) 0}
.consult .wrap{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(28px,5vw,76px);align-items:start}
.consult h2{font-size:clamp(28px,3.5vw,46px);margin-bottom:18px}
.consult .say{color:var(--body);font-weight:300;max-width:44ch}
.opts{border-top:1px solid var(--rule)}
.opt{border-bottom:1px solid var(--rule);padding:26px 0;display:grid;
  grid-template-columns:1fr auto;gap:22px;align-items:center}
.opt h3{font-family:var(--txt);font-size:19px;font-weight:600;margin-bottom:5px}
.opt p{color:var(--body);font-weight:300;font-size:15.5px;max-width:46ch}
.opt .btn{min-height:52px;padding:0 24px;white-space:nowrap}

/* ── offices ──────────────────────────────────────────────── */
.offices{background:var(--night);color:#DDE2EE}
.offices .wrap{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:0;padding:0}
.off-img{position:relative;min-height:340px}
.off-img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.off-txt{padding:clamp(46px,6vw,84px) var(--gut)}
.off-txt h2{color:#fff;font-size:clamp(26px,3.2vw,42px);margin-bottom:26px}
.two{display:grid;grid-template-columns:1fr 1fr;gap:32px;border-top:1px solid rgba(255,255,255,.2);padding-top:26px}
.two h3{font-family:var(--txt);font-size:13px;letter-spacing:.14em;text-transform:uppercase;
  font-weight:600;color:var(--steel-l);margin-bottom:12px}
.two address{font-style:normal;font-weight:300;line-height:1.85;font-size:16px}
.two address a{color:#fff}
.off-txt .line{margin-top:28px;padding-top:22px;border-top:1px solid rgba(255,255,255,.2);
  font-size:15px;font-weight:300;color:#B9C1D6}
.off-txt .line a{color:#fff}

/* ── insights ─────────────────────────────────────────────── */
.insights{padding:clamp(60px,8vw,110px) 0}
.insights .head{display:flex;justify-content:space-between;align-items:baseline;gap:24px;flex-wrap:wrap;
  padding-bottom:22px;border-bottom:1px solid var(--rule);margin-bottom:8px}
.insights .head h2{font-size:clamp(26px,3.2vw,42px)}
.ilist{display:grid}
.ipost{display:grid;grid-template-columns:minmax(110px,180px) minmax(0,1fr) auto;gap:clamp(16px,3vw,44px);
  align-items:baseline;padding:26px 0;border-bottom:1px solid var(--rule);text-decoration:none}
.ipost:hover .it{color:var(--red)}
.ipost .ic{color:var(--steel-d);font-size:12px;letter-spacing:.14em;text-transform:uppercase;font-weight:600}
.ipost .it{font-family:var(--disp);font-size:clamp(19px,2.1vw,26px);line-height:1.25;transition:color .16s}
.ipost .id{color:var(--body);font-size:14px;font-weight:300;white-space:nowrap}

/* ── closing ──────────────────────────────────────────────── */
.close{background:var(--red);color:#fff;padding:clamp(56px,7vw,96px) 0}
.close .wrap{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,.7fr);gap:clamp(26px,4vw,60px);align-items:center}
.close h2{color:#fff;font-size:clamp(28px,3.8vw,50px)}
.close p{color:rgba(255,255,255,.9);font-weight:300;margin-top:14px;max-width:52ch}
.close .acts{justify-content:flex-end}
.close .btn-white{background:#fff;color:var(--red-d)}
.close .btn-white:hover{background:var(--night);color:#fff}

/* ── footer ───────────────────────────────────────────────── */
footer{background:var(--night);color:#98A2BC;padding:clamp(52px,6vw,80px) 0 30px;font-size:15px;font-weight:300}
.fg{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:clamp(24px,3vw,44px);
  padding-bottom:38px;border-bottom:1px solid rgba(255,255,255,.16)}
footer h4{font-family:var(--txt);font-size:12px;letter-spacing:.16em;text-transform:uppercase;
  color:#fff;font-weight:600;margin:0 0 16px}
footer ul{list-style:none;margin:0;padding:0}
footer li{margin-bottom:10px}
footer a{text-decoration:none}
footer a:hover{color:#fff}
.fl img{height:50px;margin-bottom:18px}
.bbb{display:inline-flex;align-items:center;gap:11px;border:1px solid rgba(255,255,255,.24);
  padding:10px 16px;margin-top:18px;text-decoration:none;color:#fff;font-size:13px}
.bbb b{font-family:var(--disp);font-size:21px}
.fb{display:flex;justify-content:space-between;gap:22px;flex-wrap:wrap;padding-top:24px;font-size:13.5px}
.soc{display:flex;gap:9px}
.soc a{width:40px;height:40px;border:1px solid rgba(255,255,255,.24);display:grid;place-items:center;color:#fff}
.soc a:hover{background:var(--red);border-color:var(--red)}
.soc svg{width:16px;height:16px;fill:currentColor}
.disc{margin-top:24px;font-size:12.5px;color:#8592AF;line-height:1.75;max-width:110ch}

@media(max-width:1080px){
  nav,.hd .tel{display:none}.burger{display:block}
  .statement .wrap,.bio .wrap,.consult .wrap,.close .wrap{grid-template-columns:1fr}
  .statement .cols{columns:1}
  .plate{max-width:360px}
  .offices .wrap{grid-template-columns:1fr}
  .off-img{min-height:260px}
  .close .acts{justify-content:flex-start}
  .fg{grid-template-columns:1fr 1fr}
}
@media(max-width:780px){
  body{font-size:16.5px}
  /* touch targets: standalone links need 44px, and micro-labels need 12px */
  .sc{font-size:12px}
  .util .wrap{min-height:0;padding:4px 0}
  .util a,.pcol .more,.proof .foot a,.insights .head a{min-height:44px;display:inline-flex;align-items:center}
  footer li{margin-bottom:0}
  footer li a{display:inline-flex;align-items:center;min-height:44px}
  .facts dt,.two h3,.ipost .ic,footer h4{font-size:12px}
  .soc a{width:44px;height:44px}
  .two address a,.line a{display:inline-block;padding:6px 0}
  /* portrait crop: the horizontal scrim no longer sits under the type column */
  .hero::after{background:linear-gradient(180deg,rgba(6,10,22,.80) 0%,rgba(6,10,22,.34) 26%,rgba(6,10,22,.52) 52%,rgba(6,10,22,.90) 78%,rgba(6,10,22,.94) 100%)}
  .hero h1,.hero .lede{max-width:100%}
  .ghost{font-size:clamp(120px,34vw,220px);opacity:.85}
  .pgrid,.qs,.two,.fg{grid-template-columns:1fr}
  .opt{grid-template-columns:1fr}
  .opt .btn{justify-self:start}
  .ipost{grid-template-columns:1fr;gap:8px}
  .ipost .id{display:none}
  .acts .btn{width:100%}
  .hero .wrap{padding-top:clamp(130px,32vw,180px)}
}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}
/* ══ INTERIOR PAGES ═══════════════════════════════════════════════════
   Added for the 19 pages beyond the homepage. Same tokens, same rhythm. */

/* page masthead — the interior counterpart to the homepage hero */
.pagehead{position:relative;background:var(--night);color:#fff;overflow:hidden;isolation:isolate}
.pagehead > img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 55%;z-index:0;opacity:.42}
.pagehead::after{content:"";position:absolute;inset:0;z-index:1;
  background:linear-gradient(90deg,rgba(6,10,22,.94) 0%,rgba(6,10,22,.86) 40%,rgba(6,10,22,.60) 72%,rgba(6,10,22,.44) 100%)}
.pagehead .wrap{position:relative;z-index:2;padding-top:clamp(150px,19vw,220px);padding-bottom:clamp(44px,6vw,80px)}
.crumb{font-size:12.5px;letter-spacing:.16em;text-transform:uppercase;font-weight:600;color:var(--steel-l);margin-bottom:20px}
.crumb a{text-decoration:none}
.crumb a:hover{color:#fff}
.crumb span{opacity:.55;padding:0 8px}
.pagehead h1{color:#fff;font-size:clamp(36px,5.4vw,68px);max-width:17ch;margin-bottom:20px}
.pagehead .stand{color:rgba(255,255,255,.88);font-size:clamp(17px,1.6vw,20px);max-width:60ch;font-weight:300}

/* article body */
.article{padding:clamp(56px,7vw,100px) 0}
.article .wrap{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,320px);gap:clamp(32px,5vw,72px);align-items:start}
.prose{max-width:68ch}
.prose > p{font-size:17.5px;color:var(--body);font-weight:300;margin-bottom:20px}
.prose > p:first-of-type{font-size:clamp(19px,2vw,22px);color:var(--ink);font-weight:300;line-height:1.5}
.prose h2{font-size:clamp(25px,2.9vw,36px);margin:44px 0 16px}
.prose h3{font-size:clamp(20px,2.1vw,25px);margin:34px 0 12px}
.prose ul{margin:0 0 22px;padding:0;list-style:none}
.prose ul li{position:relative;padding-left:26px;margin-bottom:11px;color:var(--body);font-weight:300}
.prose ul li::before{content:"";position:absolute;left:0;top:11px;width:11px;height:1px;background:var(--red)}
.prose .pull{border-left:2px solid var(--red);padding:4px 0 4px 22px;margin:30px 0;
  font-family:var(--disp);font-size:clamp(20px,2.2vw,26px);line-height:1.4;color:var(--ink)}

/* sticky sidebar */
.rail{position:sticky;top:104px;display:grid;gap:20px}
.railcard{border:1px solid var(--rule);background:var(--paper-2);padding:26px}
.railcard h3{font-family:var(--txt);font-size:12px;letter-spacing:.16em;text-transform:uppercase;
  font-weight:600;color:var(--steel-d);margin-bottom:14px}
.railcard p{font-size:15.5px;color:var(--body);font-weight:300;margin-bottom:18px}
.railcard .btn{width:100%;min-height:52px;font-size:13px}
.railcard .tel{display:block;font-family:var(--disp);font-size:27px;color:var(--navy);text-decoration:none;margin-bottom:4px}
.railcard .tel:hover{color:var(--red)}
.raillist{list-style:none;margin:0;padding:0;border-top:1px solid var(--rule)}
.raillist li{border-bottom:1px solid var(--rule)}
.raillist a{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:13px 0;
  min-height:50px;text-decoration:none;font-size:15.5px;font-weight:500}
.raillist a:hover{color:var(--red)}
.raillist a[aria-current="page"]{color:var(--red);font-weight:600}

/* service cards on hub pages */
.svc{display:grid;grid-template-columns:repeat(2,1fr);gap:2px;background:var(--rule);border-top:1px solid var(--rule)}
.svc a{background:var(--paper);padding:clamp(24px,3vw,36px);text-decoration:none;display:flex;flex-direction:column;gap:10px;min-height:170px}
.svc a:hover{background:var(--paper-2)}
.svc h3{font-size:clamp(21px,2.2vw,26px)}
.svc p{color:var(--body);font-size:16px;font-weight:300;margin:0}
.svc .go{margin-top:auto;font-size:12px;letter-spacing:.14em;text-transform:uppercase;font-weight:600;color:var(--red)}

/* faq */
.faq{border-top:1px solid var(--rule);max-width:88ch}
.faq details{border-bottom:1px solid var(--rule)}
.faq summary{cursor:pointer;list-style:none;padding:22px 0;min-height:62px;display:flex;
  justify-content:space-between;align-items:center;gap:20px;font-size:clamp(17px,1.8vw,20px);font-weight:500}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";color:var(--red);font-size:24px;font-weight:300;flex:none;line-height:1}
.faq details[open] summary::after{content:"–"}
.faq details p{padding:0 0 24px;color:var(--body);font-weight:300;max-width:70ch}

/* simple two-column info sections */
.split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:2px;background:var(--rule);border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}
.split > div{background:var(--paper);padding:clamp(28px,3.6vw,48px)}

/* contact form */
.form{display:grid;gap:16px;max-width:560px}
.field{display:grid;gap:7px}
.field label{font-size:12px;letter-spacing:.14em;text-transform:uppercase;font-weight:600;color:var(--steel-d)}
.field input,.field select,.field textarea{font-family:var(--txt);font-size:16.5px;padding:14px 15px;
  border:1px solid var(--rule);background:var(--paper);color:var(--ink);min-height:52px;border-radius:0}
.field textarea{min-height:140px;resize:vertical}
.field input:focus,.field select:focus,.field textarea:focus{outline:2px solid var(--red);outline-offset:1px;border-color:var(--red)}
.two-up{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.formnote{font-size:13.5px;color:var(--body);font-weight:300;max-width:60ch}

/* testimonial + video grids */
.quotes-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:2px;background:var(--rule);border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}
.qcard{background:var(--paper);padding:clamp(26px,3.2vw,40px);display:flex;flex-direction:column}
.qcard blockquote{margin:0 0 22px;font-family:var(--disp);font-size:clamp(18px,1.95vw,23px);line-height:1.45;color:var(--ink)}
.qcard .src{margin-top:auto;padding-top:18px;border-top:1px solid var(--rule);font-size:13.5px;color:var(--body)}
.qcard .src b{display:block;font-size:16px;color:var(--ink);font-weight:600;margin-bottom:2px}
.qcard .badge{display:inline-block;margin-top:9px;font-size:12px;letter-spacing:.14em;text-transform:uppercase;
  border:1px solid var(--rule);padding:4px 9px;color:var(--steel-d);font-weight:600}

/* blog listing */
.posts-list{border-top:1px solid var(--rule)}
.post-row{display:grid;grid-template-columns:minmax(96px,150px) minmax(0,1fr) auto;gap:clamp(16px,3vw,44px);
  align-items:baseline;padding:26px 0;border-bottom:1px solid var(--rule);text-decoration:none}
.post-row:hover .pt{color:var(--red)}
.post-row .pc{font-size:12px;letter-spacing:.14em;text-transform:uppercase;font-weight:600;color:var(--steel-d)}
.post-row .pt{font-family:var(--disp);font-size:clamp(19px,2.05vw,25px);line-height:1.26;transition:color .16s}
.post-row .pd{font-size:13.5px;color:var(--body);font-weight:300;white-space:nowrap}
.post-row .px{grid-column:2;font-size:15.5px;color:var(--body);font-weight:300;margin-top:7px;max-width:74ch}
.filters{display:flex;gap:10px;flex-wrap:wrap;padding-bottom:26px}
.filters a{font-size:12px;letter-spacing:.13em;text-transform:uppercase;font-weight:600;text-decoration:none;
  border:1px solid var(--rule);padding:11px 18px;min-height:44px;display:inline-flex;align-items:center}
.filters a:hover,.filters a[aria-current]{background:var(--navy);color:#fff;border-color:var(--navy)}

@media(max-width:1080px){
  .article .wrap{grid-template-columns:1fr}
  .rail{position:static;grid-template-columns:1fr 1fr;display:grid}
}
@media(max-width:780px){
  .svc,.split,.quotes-grid,.two-up,.rail{grid-template-columns:1fr}
  .post-row{grid-template-columns:1fr;gap:7px}
  .post-row .pd{display:none}
  .post-row .px{grid-column:1}
  /* the sticky header is absolutely positioned over the pagehead, so the
     pagehead must reserve at least its measured height. On narrow screens the
     utility bar wrapped to two lines (201px tall) while padding reserved 120px. */
  .pagehead .wrap{padding-top:186px}
  .pagehead::after{background:linear-gradient(180deg,rgba(6,10,22,.86) 0%,rgba(6,10,22,.72) 50%,rgba(6,10,22,.90) 100%)}
}


/* ── touch sizing ─────────────────────────────────────────────────────
   Applies wherever the primary nav has collapsed (<=1080px), which
   includes tablets in portrait — they are touch devices too. */
@media(max-width:1080px){
  .util .wrap{min-height:0;padding:4px 0}
  /* Stop the utility bar wrapping to a second line on phones by dropping the
     location text only. NB: `.util .sc:first-child` also matches the Español
     link (first child of its own span) and hid it — must be a direct child. */
  .util .wrap > .sc:first-child{display:none}
  .util a,.pcol .more,.proof .foot a,.insights .head a,.lnk{min-height:44px;display:inline-flex;align-items:center}
  footer li{margin-bottom:0}
  footer li a{display:inline-flex;align-items:center;min-height:44px}
  .soc a{width:44px;height:44px}
  .crumb a{display:inline-block;padding:11px 0;min-height:44px}
  .crumb{display:flex;align-items:center;flex-wrap:wrap;gap:0 2px}
  .raillist a{min-height:52px}
  .two address a,.line a,.of address a,.off address a{display:inline-block;padding:6px 0}
}


/* section heading pattern used by the interior templates */
.sec-head{max-width:70ch;margin-bottom:clamp(28px,4vw,46px)}
.sec-head .eyebrow{margin:0 0 16px}
.sec-head h2{font-size:clamp(27px,3.4vw,42px);margin-bottom:14px}
.sec-head p{color:var(--body);font-weight:300;font-size:17.5px;margin:0}
.eyebrow{font-size:12px;letter-spacing:.2em;text-transform:uppercase;font-weight:600;
  color:var(--steel-d);margin:0 0 18px}

/* an odd item count in a 2-col grid must not leave a dead cell */
.svc a:last-child:nth-child(odd),
.quotes-grid .qcard:last-child:nth-child(odd),
.split > div:last-child:nth-child(odd){grid-column:1 / -1}
