/* =========================================================
   SHANAHAN PARTNERS — approved design system (shared)
   Serif: Cormorant Garamond (headings) · Untitled Sans (body)
   ========================================================= */
@font-face{font-family:"Untitled Sans";src:url("../fonts/untitled-sans/untitled-sans-web-light.woff2") format("woff2");font-weight:300;font-display:swap}
@font-face{font-family:"Untitled Sans";src:url("../fonts/untitled-sans/untitled-sans-web-regular.woff2") format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:"Untitled Sans";src:url("../fonts/untitled-sans/untitled-sans-web-medium.woff2") format("woff2");font-weight:500;font-display:swap}
@font-face{font-family:"Untitled Sans";src:url("../fonts/untitled-sans/untitled-sans-web-bold.woff2") format("woff2");font-weight:700;font-display:swap}

:root{
  --c-bg:#ffffff; --c-bg-2:#f4f5f3; --c-ink:#0d3041;
  --c-100m:#0d3041; --c-50m:#314a57; --c-navy:#0d2a38; --c-deep:#06090c;
  --c-muted:#5a6b73; --c-faint:#94a4ab; --c-line:#e2eaea;
  --c-accent:#3f7f9e; --c-accent-deep:#356d88; --c-warm:#ffd7ab; --c-warm-deep:#f0b878;
  --c-title:#80b3cd;
  --font:"Untitled Sans","Inter",system-ui,sans-serif;
  --serif:"Cormorant Garamond",Georgia,serif;
  --s-2:16px;--s-3:24px;--s-4:40px;--s-5:64px;--s-6:96px;--s-7:130px;--maxw:1500px;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{background:var(--c-bg);color:var(--c-ink);font-family:var(--font);font-size:17px;line-height:1.62;-webkit-font-smoothing:antialiased}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 var(--s-4)}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
.label{font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--c-faint);font-weight:700;display:block;margin-bottom:18px}
section{padding:var(--s-7) 0}
.serif{font-family:var(--serif)}
/* buttons */
.ghost{display:inline-block;border:1px solid var(--c-ink);color:var(--c-ink);padding:12px 28px;border-radius:999px;font-weight:600;font-size:14px;letter-spacing:.02em;transition:.2s;white-space:nowrap}
.ghost:hover{background:var(--c-ink);color:#fff}
.ghost-light{display:inline-block;border:1px solid rgba(255,255,255,.5);color:#fff;padding:12px 28px;border-radius:999px;font-weight:600;font-size:14px;transition:.2s;white-space:nowrap}
.ghost-light:hover{background:#fff;color:var(--c-100m)}
.btn-gold{display:inline-block;background:var(--c-warm);color:var(--c-100m);padding:14px 34px;border-radius:999px;font-weight:600;font-size:14px;letter-spacing:.02em;transition:.2s}
.btn-gold:hover{background:var(--c-warm-deep)}
@keyframes fadeUp{0%{opacity:0;transform:translateY(22px)}100%{opacity:1;transform:none}}
@keyframes kb{0%{transform:scale(1.05)}100%{transform:scale(1.16)}}
@keyframes grain{0%{transform:translate(0,0)}25%{transform:translate(-4%,2%)}50%{transform:translate(3%,-3%)}75%{transform:translate(-2%,3%)}100%{transform:translate(0,0)}}
.fu{animation:fadeUp 1s both}
/* ===== HEADER / NAV ===== */
header{position:fixed;top:0;left:0;right:0;z-index:50;transition:.3s}
header::before{content:"";position:absolute;left:0;right:0;top:0;height:150px;background:linear-gradient(180deg,rgba(0,0,0,.5),transparent);pointer-events:none;z-index:-1;transition:opacity .3s}
header.solid::before,header.static::before{opacity:0}
header.solid,header.static{background:rgba(255,255,255,.94);backdrop-filter:blur(10px);border-bottom:1px solid var(--c-line)}
header.static{position:sticky}
nav{display:flex;align-items:center;justify-content:space-between;height:104px}
.logo{display:flex;align-items:center;line-height:0}
.logo img{height:42px;width:auto}
.logo .logo-navy{display:none}
header.solid .logo .logo-white,header.static .logo .logo-white{display:none}
header.solid .logo .logo-navy,header.static .logo .logo-navy{display:block}
.navlinks{display:flex;gap:var(--s-4);align-items:center;font-size:17px;font-weight:700;color:#fff}
header.solid .navlinks,header.static .navlinks{color:var(--c-muted)}
.navlinks a.active,.navlinks a:hover{color:var(--c-warm)}
header.solid .navlinks a:hover,header.static .navlinks a:hover,header.solid .navlinks a.active,header.static .navlinks a.active{color:var(--c-ink)}
.nav-cta{background:transparent;color:#fff;border:1.5px solid rgba(255,255,255,.75);padding:9px 24px;font-size:15px;font-weight:700;border-radius:999px;transition:.2s}
.nav-cta:hover{background:#fff;color:var(--c-100m);border-color:#fff}
header.solid .nav-cta,header.static .nav-cta{color:var(--c-100m);border-color:rgba(13,48,65,.4)}
header.solid .nav-cta:hover,header.static .nav-cta:hover{background:var(--c-accent);border-color:var(--c-accent);color:#fff}
/* ===== HERO (home) ===== */
.hero{position:relative;height:min(92vh,1800px);min-height:620px;overflow:hidden;display:flex;align-items:flex-end;color:#fff;background:#08090b}
.hero .media{position:absolute;inset:0}
.hero .media video,.hero .media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero .media.kbimg img{animation:kb 24s ease-in-out infinite alternate}
.hero .media::after{content:"";position:absolute;inset:0;background:
   radial-gradient(60% 90% at 50% 30%,transparent 38%,rgba(6,12,16,.5) 80%,rgba(6,12,16,.82)),
   linear-gradient(0deg,rgba(6,12,16,.75) 2%,transparent 55%)}
.hero .grain{position:absolute;inset:-50%;pointer-events:none;opacity:.12;mix-blend-mode:overlay;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='180' height='180' filter='url(%23n)'/%3E%3C/svg%3E");animation:grain .5s steps(3) infinite}
.hero .inner{position:relative;width:100%;max-width:var(--maxw);margin:0 auto;padding:0 var(--s-4) var(--s-6)}
.hero h1{font-family:var(--serif);font-weight:500;font-size:clamp(44px,6.6vw,92px);line-height:1.0;letter-spacing:-.005em;max-width:18ch;margin-bottom:var(--s-3)}
.hero h1 em{font-style:italic;color:var(--c-warm)}
.hero .rot{font-style:italic;color:var(--c-warm);transition:opacity .25s ease}
.hero .rot.out{opacity:0}
.hero p{font-size:19px;max-width:52ch;color:#dbe2e6;font-weight:400}
/* ===== PAGE HERO (inner pages, 2-col) ===== */
.phero{border-bottom:1px solid var(--c-line)}
.phero .g{display:grid;grid-template-columns:1.15fr 1fr;gap:var(--s-6);align-items:start}
.phero .title{font-family:var(--serif);font-weight:500;font-size:clamp(40px,5.4vw,76px);line-height:1.02;letter-spacing:-.005em;margin-top:0}
.phero .isub{font-family:var(--serif);font-style:italic;color:var(--c-muted);font-size:22px;margin-top:var(--s-3);max-width:30ch}
.phero .body{color:var(--c-muted);font-size:18px;line-height:1.75;margin-top:35px}
.phero .body p+p{margin-top:var(--s-3)}
/* ===== ABOUT (home 2-col) ===== */
.about .g{display:grid;grid-template-columns:1.15fr 1fr;gap:var(--s-6);align-items:start}
/* About = SANS block */
.about .lead{font-family:var(--font);font-weight:800;font-size:clamp(32px,4vw,52px);line-height:1.06;letter-spacing:-.02em;margin-top:0}
.about .isub{font-family:var(--font);font-style:italic;color:var(--c-muted);font-size:19px;margin-top:var(--s-3);max-width:32ch}
.about .body p{font-size:18px;color:var(--c-muted);line-height:1.75;margin-bottom:var(--s-3)}
.about .body .ghost{margin-top:var(--s-2)}
/* ===== STATEMENT (centred) ===== */
.statement{text-align:center}
.statement .in{max-width:70ch;margin:0 auto}
.statement p{font-size:20px;color:var(--c-muted);line-height:1.7;margin-bottom:var(--s-3)}
.statement p.em{color:var(--c-ink);font-weight:600}
/* ===== WHY US (six differentiators) ===== */
.whyus .head{max-width:60ch;margin-bottom:var(--s-5)}
.whyus h2{font-family:var(--serif);font-weight:500;font-size:clamp(30px,3.6vw,50px);line-height:1.08;margin-top:0}
.whyus .intro{color:var(--c-muted);font-size:18px;margin-top:var(--s-3);max-width:60ch}
.grid6{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--c-line);border-left:1px solid var(--c-line)}
.grid6 .cell{border-right:1px solid var(--c-line);border-bottom:1px solid var(--c-line);padding:var(--s-4)}
.grid6 .cell .n{font-size:12px;color:var(--c-accent);letter-spacing:.12em;font-weight:700}
.grid6 .cell h3{font-family:var(--serif);font-weight:500;font-size:30px;margin:12px 0 10px;line-height:1.1}
.grid6 .cell p{color:var(--c-muted);font-size:15px;line-height:1.6}
/* ===== EXPERTISE — image blocks (home) ===== */
.exphead{max-width:60ch;margin-bottom:var(--s-5)}
.exphead h2{font-family:var(--serif);font-weight:500;letter-spacing:-.005em;font-size:clamp(32px,3.9vw,52px);line-height:1.08;margin-top:0}
.expgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s-3)}
.expgrid .tile{position:relative;overflow:hidden;border-radius:6px;min-height:340px;display:flex;flex-direction:column;justify-content:flex-end;padding:var(--s-4);color:#fff;background:#0d3041}
.expgrid .tile .img{position:absolute;inset:0;background:#0d3041 center/cover no-repeat;transition:transform .6s;filter:grayscale(0.75)}
.expgrid .tile:hover .img{transform:scale(1.06)}
.expgrid .tile .img::after{content:"";position:absolute;inset:0;background:linear-gradient(transparent 35%,rgba(8,20,28,.82))}
.expgrid .tile .c{position:relative}
.expgrid .tile h3{font-family:var(--font);font-weight:700;letter-spacing:-.01em;font-size:24px;line-height:1.12}
.expgrid .tile .tag{font-family:var(--font);color:#dce7e9;font-size:14px;margin-top:5px}
.expgrid .tile.wide{grid-column:span 2}
.expgrid + .foot{margin-top:40px}
/* ===== EXPERTISE — row list (landing / teaser) ===== */
.xtop{display:flex;justify-content:space-between;align-items:flex-end;gap:var(--s-4);margin:0 0 var(--s-5)}
.xtop h2{font-family:var(--font);font-weight:800;letter-spacing:-.02em;font-size:clamp(26px,3.2vw,42px);line-height:1.12;max-width:26ch}
.xlist{border-top:1px solid var(--c-line)}
.xrow{display:grid;grid-template-columns:64px 1.05fr 1.5fr auto;gap:var(--s-4);align-items:start;padding:var(--s-4) 0;border-bottom:1px solid var(--c-line);transition:.2s}
.xrow:hover{background:linear-gradient(90deg,rgba(63,127,158,.05),transparent)}
.xrow .num{font-size:14px;color:var(--c-faint);padding-top:8px}
.xrow h3{font-family:var(--font);font-weight:700;letter-spacing:-.01em;font-size:clamp(21px,2.1vw,27px);line-height:1.15}
.xrow .tag{font-family:var(--font);color:var(--c-muted);font-size:14px;margin-top:6px}
.xrow .desc{color:var(--c-muted);font-size:15px;line-height:1.65}
.xrow .more{color:var(--c-accent);font-weight:600;font-size:14px;white-space:nowrap;padding-top:4px}
.xrow:hover h3{color:var(--c-accent)}
/* ===== SHARED SECTION HEAD ===== */
.shead{display:flex;justify-content:space-between;align-items:flex-end;gap:var(--s-4);margin-bottom:var(--s-5)}
.shead h2{font-family:var(--serif);font-weight:500;font-size:clamp(30px,3.6vw,50px);line-height:1.08;max-width:18ch}
/* ===== TEAM (dark) ===== */
.team-dark{background:#0b1b24;color:#fff}
.team-dark .label{color:var(--c-warm)}
.team-dark .shead h2{color:#fff}
.team{display:grid;grid-template-columns:repeat(5,1fr);gap:var(--s-3)}
.member .photo{aspect-ratio:1/1;overflow:hidden;position:relative;margin-bottom:14px;background:#10262f}
.member .photo .ph{position:absolute;inset:0;background:#10262f center 22%/cover no-repeat;transition:transform .5s}
.member:hover .photo .ph{transform:scale(1.05)}
.member h4{font-family:var(--serif);font-weight:500;font-size:22px}
.member .role{color:#9fb2bb;font-size:11px;letter-spacing:.08em;text-transform:uppercase;margin-top:5px}
/* ===== UPDATES (white featured + list) ===== */
.uw .feat{display:grid;grid-template-columns:1.25fr 1fr;gap:var(--s-6);align-items:start;margin-bottom:var(--s-6)}
.uw .feat .thumb{aspect-ratio:16/10;overflow:hidden;position:relative;border-radius:6px;background:#0d3041}
.uw .feat .thumb .img{position:absolute;inset:0;background:#0d3041 center/cover no-repeat;transition:transform .6s}
.uw .feat:hover .thumb .img{transform:scale(1.04)}
.uw .feat .meta{font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--c-faint);margin:var(--s-3) 0 8px}
.uw .feat h3{font-family:var(--serif);font-weight:500;font-size:clamp(28px,2.8vw,40px);line-height:1.06}
.uw .feat p{color:var(--c-muted);margin-top:12px;max-width:46ch;font-size:16px}
.uw .feat .read{display:inline-block;margin-top:16px;font-size:12px;letter-spacing:.08em;text-transform:uppercase;font-weight:700;color:var(--c-ink);border-bottom:1px solid var(--c-ink);padding-bottom:2px}
.uw .feat:hover .read{color:var(--c-accent);border-color:var(--c-accent)}
.ulist{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s-5);border-top:1px solid var(--c-line);padding-top:var(--s-5)}
.ulist .item .m{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--c-faint)}
.ulist .item h4{font-family:var(--serif);font-weight:500;font-size:22px;margin:8px 0 8px;line-height:1.14}
.ulist .item p{color:var(--c-muted);font-size:14px;line-height:1.6}
.ulist .item .read{display:inline-block;margin-top:12px;font-size:12px;letter-spacing:.08em;text-transform:uppercase;font-weight:700;color:var(--c-ink);border-bottom:1px solid var(--c-ink)}
.ulist .item:hover h4{color:var(--c-accent)}
/* Updates = SANS block */
.uw .shead h2{font-family:var(--font);font-weight:800;letter-spacing:-.02em}
.uw .feat h3{font-family:var(--font);font-weight:800;letter-spacing:-.02em}
.ulist .item h4{font-family:var(--font);font-weight:700;letter-spacing:-.01em}
/* ===== CONTACT BANNER ===== */
.cta{position:relative;overflow:hidden;background:var(--c-deep);color:#fff}
.cta .media{position:absolute;inset:0}
.cta .media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.62}
.cta .media::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(6,12,16,.72),rgba(6,12,16,.4) 60%,rgba(6,12,16,.16))}
.cta .wrap{position:relative}
.cta .label{color:#c7d3d9}
.cta h2{font-family:var(--serif);font-weight:500;font-size:clamp(38px,4.8vw,68px);letter-spacing:-.005em;max-width:16ch;margin:0 0 var(--s-3);line-height:1.04}
.cta .csub{color:#cfd6da;font-size:18px;max-width:44ch;margin-bottom:var(--s-4)}
/* ===== FOOTER (dark) ===== */
.site-footer{background:var(--c-deep);color:#fff;padding:var(--s-6) 0 var(--s-4);font-size:15px}
.site-footer .f-top{display:grid;grid-template-columns:1.6fr 1fr 1.4fr 1.2fr;gap:var(--s-5)}
.site-footer .f-brand img{height:30px;width:auto;margin-bottom:var(--s-3)}
.site-footer .f-desc{color:rgba(255,255,255,.55);font-size:15px;line-height:1.6;max-width:34ch}
.site-footer .f-col h4{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--c-warm);font-weight:700;margin-bottom:16px}
.site-footer .f-col a{display:block;color:rgba(255,255,255,.78);padding:6px 0}
.site-footer .f-col a:hover{color:#fff}
.site-footer .f-divider{border:0;border-top:1px solid rgba(255,255,255,.14);margin:var(--s-5) 0 var(--s-3)}
.site-footer .f-bottom{display:flex;justify-content:space-between;flex-wrap:wrap;gap:var(--s-2);font-size:13px;color:rgba(255,255,255,.45)}
.site-footer .f-legal a{color:rgba(255,255,255,.5);margin-left:var(--s-3)}
.site-footer .f-legal a:hover{color:#fff}
/* ===== UPDATES LANDING (card grid) ===== */
.ugrid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s-6) var(--s-4)}
.ucard .thumb{aspect-ratio:16/10;overflow:hidden;border-radius:6px;background:#0d3041;margin-bottom:var(--s-3);position:relative}
.ucard .thumb .img{position:absolute;inset:0;background:#0d3041 center/cover no-repeat;transition:transform .6s}
.ucard:hover .thumb .img{transform:scale(1.04)}
.ucard .meta{font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--c-faint)}
.ucard h3{font-family:var(--font);font-weight:800;letter-spacing:-.01em;font-size:22px;margin:8px 0 8px;line-height:1.18}
.ucard p{color:var(--c-muted);font-size:15px;line-height:1.6}
.ucard .read{display:inline-block;margin-top:12px;font-size:12px;letter-spacing:.08em;text-transform:uppercase;font-weight:700;color:var(--c-ink);border-bottom:1px solid var(--c-ink)}
.ucard:hover h3{color:var(--c-accent)}
/* ===== ARTICLE ===== */
.article{max-width:820px;margin:0 auto;padding:0 var(--s-4)}
.back{display:inline-block;color:var(--c-muted);font-size:13px;letter-spacing:.04em;margin-bottom:var(--s-4)}
.back:hover{color:var(--c-ink)}
.article .ameta{font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--c-faint)}
.article h1{font-family:var(--font);font-weight:800;letter-spacing:-.02em;font-size:clamp(32px,4.4vw,54px);line-height:1.08;margin:12px 0 12px}
.article .byline{color:var(--c-muted);font-size:15px}
.article-hero{aspect-ratio:16/9;overflow:hidden;border-radius:8px;margin:var(--s-5) auto var(--s-5);max-width:1180px;background:#0d3041}
.article-hero .img{width:100%;height:100%;background:#0d3041 center/cover no-repeat}
.article-body{font-size:18px;line-height:1.8;color:#33424a}
.article-body p{margin-bottom:var(--s-3)}
.article-body h2{font-family:var(--serif);font-weight:600;font-size:28px;line-height:1.2;margin:var(--s-4) 0 12px;color:var(--c-ink)}
.article-body .lede{font-size:22px;line-height:1.6;color:var(--c-ink)}
.share{border-top:1px solid var(--c-line);margin-top:var(--s-5);padding-top:var(--s-3);font-size:13px;color:var(--c-muted);display:flex;gap:18px}
.share a{border-bottom:1px solid var(--c-line)}
.share a:hover{color:var(--c-ink)}
/* ===== CONTACT PAGE ===== */
.contact-hero .big{font-family:var(--serif);font-weight:500;font-size:clamp(48px,7vw,96px);line-height:1;letter-spacing:-.01em}
.contact-lines{display:flex;gap:var(--s-5);flex-wrap:wrap;margin-top:var(--s-4);font-size:20px}
.contact-lines a{border-bottom:1px solid var(--c-line);padding-bottom:4px}
.contact-lines a:hover{border-color:var(--c-accent);color:var(--c-accent)}
.offices{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s-4)}
.office h3{font-family:var(--font);font-weight:700;letter-spacing:-.01em;font-size:22px;margin-bottom:10px}
.office p{color:var(--c-muted);font-size:16px;line-height:1.6}
.form-two{display:grid;grid-template-columns:1fr 1.3fr;gap:var(--s-6);align-items:start}
.form-left h2{font-family:var(--serif);font-weight:500;font-size:clamp(36px,4vw,50px);line-height:1.08}
.form-left p{color:var(--c-muted);margin-top:var(--s-3);font-size:17px}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--s-4)}
.form-grid .full{grid-column:1 / -1}
.field label{display:block;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--c-faint);font-weight:700;margin-bottom:8px}
.field input,.field textarea{width:100%;border:1px solid var(--c-line);border-radius:4px;padding:14px;font-family:var(--font);font-size:16px;color:var(--c-ink);background:#fff}
.field textarea{min-height:160px;resize:vertical}
/* ===== TEAM BIOS PAGE ===== */
.bios .bio{display:grid;grid-template-columns:340px 1fr;gap:var(--s-6);padding:var(--s-6) 0;border-top:1px solid var(--c-line);align-items:start}
.bio .photo{aspect-ratio:4/5;overflow:hidden;background:#eef2f1;border-radius:4px}
.bio .photo .ph{width:100%;height:100%;background:#eef2f1 center 20%/cover no-repeat}
.bio h3{font-family:var(--font);font-weight:800;letter-spacing:-.02em;font-size:clamp(28px,3.2vw,40px);line-height:1.08}
.bio .role{font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--c-accent);font-weight:700;margin-top:10px}
.bio .bio-body{margin-top:var(--s-3);color:var(--c-muted);font-size:16px;line-height:1.75}
.bio .bio-body p{margin-bottom:var(--s-3)}
.bio .ln{display:inline-block;margin-top:6px;font-size:12px;letter-spacing:.08em;text-transform:uppercase;font-weight:700;color:var(--c-ink);border-bottom:1px solid var(--c-ink);padding-bottom:2px}
/* ===== EXPLORATION VARIANTS (for review) ===== */
.rvw{display:none}
/* dark image hero (About) */
.phero-dark{position:relative;background:#08090b;color:#fff;overflow:hidden;border-bottom:0}
.phero-dark .media{position:absolute;inset:0}
.phero-dark .media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:grayscale(0.75)}
.phero-dark .media::after{content:"";position:absolute;inset:0;background:radial-gradient(70% 95% at 50% 30%,transparent 32%,rgba(6,12,16,.5) 78%,rgba(6,12,16,.85)),linear-gradient(0deg,rgba(6,12,16,.72) 2%,transparent 55%)}
.phero-dark .wrap{position:relative}
.phero-dark .label{color:var(--c-warm)}
.phero-dark .title{color:#fff}
.phero-dark .isub{color:#c7d3d9}
.phero-dark .body{color:#cfd6da}
/* statement — image left / copy right */
.stmt-img{display:grid;grid-template-columns:1fr 1fr;gap:var(--s-6);align-items:center}
.stmt-img .mbox{aspect-ratio:4/5;overflow:hidden;border-radius:6px;background:#0d3041}
.stmt-img .mbox .img{width:100%;height:100%;background:#0d3041 center/cover no-repeat}
.stmt-img .copy p{font-size:18px;color:var(--c-muted);line-height:1.75;margin-bottom:var(--s-3)}
.stmt-img .copy p.em{color:var(--c-ink);font-weight:600}
/* statement — first line as title left / copy right */
.stmt-split{display:grid;grid-template-columns:1.05fr 1fr;gap:var(--s-6);align-items:start}
.stmt-split .big{font-family:var(--serif);font-weight:500;font-size:clamp(30px,3.8vw,50px);line-height:1.1;letter-spacing:-.005em;color:var(--c-ink)}
.stmt-split .col p{font-size:18px;color:var(--c-muted);line-height:1.75;margin-bottom:var(--s-3)}
.stmt-split .col p.em{color:var(--c-ink);font-weight:600}
/* statement — dark ocean image variant */
.stmt-dark{position:relative;overflow:hidden;background:#08090b;color:#fff}
.stmt-dark .media{position:absolute;inset:0}
.stmt-dark .media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.stmt-dark .media::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(6,12,16,.82),rgba(6,12,16,.38) 28%,rgba(6,12,16,.34) 68%,rgba(6,12,16,.58)),linear-gradient(90deg,rgba(6,12,16,.88),rgba(6,12,16,.6) 58%,rgba(6,12,16,.44)),radial-gradient(95% 120% at 50% 35%,transparent 26%,rgba(6,12,16,.55))}
.stmt-dark .wrap{position:relative}
.stmt-dark .big{color:#fff;font-family:var(--font);font-weight:300;font-size:clamp(30px,3.4vw,40px);line-height:1.28;letter-spacing:0}
.stmt-dark .col p{color:#dbe2e6}
.stmt-dark .col p.em{color:#fff}
/* Why Us — dark ink variant */
.whyus-dark{background:#0b1b24;color:#fff}
.whyus-dark .label{color:var(--c-warm)}
.whyus-dark h2{color:#fff}
.whyus-dark .intro{color:#c7d3d9}
.whyus-dark .grid6{border-top-color:rgba(255,255,255,.16);border-left-color:rgba(255,255,255,.16)}
.whyus-dark .grid6 .cell{border-right-color:rgba(255,255,255,.16);border-bottom-color:rgba(255,255,255,.16)}
.whyus-dark .grid6 .cell .n{color:var(--c-warm)}
.whyus-dark .grid6 .cell h3{color:#fff}
.whyus-dark .grid6 .cell p{color:#c7d3d9}
/* Team — white variant */
.team-light .member h4{color:var(--c-ink)}
.team-light .member .role{color:var(--c-muted)}
.team-light .member .photo{background:#eef2f1}
/* Expertise row-list — dark ink variant */
.exp-dark{background:#0b1b24;color:#fff}
.exp-dark .label{color:var(--c-warm)}
.exp-dark .xtop h2{color:#fff}
.exp-dark .xlist{border-top-color:rgba(255,255,255,.18)}
.exp-dark .xrow{border-bottom-color:rgba(255,255,255,.18)}
.exp-dark .xrow:hover{background:linear-gradient(90deg,rgba(255,255,255,.05),transparent)}
.exp-dark .xrow .num{color:rgba(255,255,255,.5)}
.exp-dark .xrow h3{color:#fff}
.exp-dark .xrow .tag{color:#c7d3d9}
.exp-dark .xrow .desc{color:#c7d3d9}
.exp-dark .xrow:hover h3{color:var(--c-title)}
.exp-dark .xrow .more{color:var(--c-title)}
/* Expertise / image-banner hero */
.xhero{min-height:min(max(80vh,600px),1800px);display:flex;align-items:flex-end;padding:calc(104px + var(--s-4)) 0 var(--s-6)}
.xhero .wrap{width:100%}
.xhero .title{font-family:var(--serif);font-weight:500;font-size:clamp(40px,5.4vw,76px);line-height:1.02;letter-spacing:-.005em}
.xhero .isub{font-size:24px;max-width:none;white-space:nowrap}
.xhero .body{color:#fff}
/* Intro row below image banner — body sits in the secondary column */
.xintro{background:var(--c-bg-2)}
.xintro .g{display:grid;grid-template-columns:1.15fr 1fr;gap:var(--s-6);align-items:start}
.xintro .lead p{font-size:20px;line-height:1.7;color:var(--c-ink)}
.xintro .lead p+p{margin-top:var(--s-3)}
/* Statement — title + dark centred variant */
.statement h2{font-family:var(--serif);font-weight:500;font-size:clamp(32px,4vw,54px);line-height:1.05;letter-spacing:-.005em;margin:0 auto var(--s-3);max-width:20ch}
.statement .label{display:block;margin-bottom:18px}
.statement .ghost,.statement .ghost-light,.statement .btn-gold{margin-top:var(--s-4)}
.statement.dark{background:#0b1b24}
.statement.dark .label{color:var(--c-warm)}
.statement.dark h2{color:#fff}
.statement.dark p{color:#c7d3d9}
.statement.dark p.em{color:#fff}
/* Statement — video background variant (navy mask, like the contact banner) */
.statement.vid{position:relative;overflow:hidden;padding:160px 0}
.statement.vid p{color:#d0dce2}
.statement.vid .media{position:absolute;inset:0}
.statement.vid .media img,.statement.vid .media video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:grayscale(0.4)}
.statement.vid .media::after{content:"";position:absolute;inset:0;background:radial-gradient(ellipse 58% 52% at 50% 50%,rgba(0,0,0,.5) 0%,rgba(0,0,0,.32) 40%,rgba(0,0,0,0) 72%)}
.statement.vid .wrap{position:relative}
.statement.vid h2{font-family:var(--font);font-weight:800;letter-spacing:-.02em}
/* Expertise detail — "Our experience includes" */
.exp-exp .label{display:block;margin-bottom:14px}
.exp-exp h2{font-family:var(--font);font-weight:800;letter-spacing:-.02em;font-size:clamp(26px,3vw,38px);margin:0 0 var(--s-4);padding-bottom:var(--s-4);border-bottom:1px solid var(--c-line)}
.exp-cols{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s-4) var(--s-5)}
.exp-cols ul{list-style:none}
.exp-cols li{position:relative;padding-left:26px;color:var(--c-ink);font-size:16px;line-height:1.5;margin-bottom:16px}
.exp-cols li:last-child{margin-bottom:0}
.exp-cols li::before{content:"\2014";position:absolute;left:0;color:var(--c-accent)}
/* Related expertise cards */
.relwrap .label{display:block;margin-bottom:14px}
.relwrap h2{font-family:var(--font);font-weight:800;letter-spacing:-.02em;font-size:clamp(24px,2.6vw,34px);margin:0 0 var(--s-4)}
.relgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--s-3)}
.relcard{display:block;border:1px solid var(--c-line);border-radius:6px;padding:var(--s-4);background:#fff;transition:.2s}
.relcard:hover{border-color:var(--c-accent);transform:translateY(-2px)}
.relcard h3{font-family:var(--font);font-weight:700;letter-spacing:-.01em;font-size:19px;line-height:1.2;margin:0 0 8px}
.relcard .tag{font-family:var(--font);font-style:italic;color:var(--c-muted);font-size:14px;line-height:1.45;margin-bottom:16px}
.relcard .more{color:var(--c-accent);font-weight:600;font-size:14px}
/* Related expertise — image tiles (home-style) */
.reltiles{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--s-3)}
.reltiles .rtile{position:relative;overflow:hidden;border-radius:6px;min-height:280px;display:flex;flex-direction:column;justify-content:flex-end;padding:var(--s-4);color:#fff;background:#0d3041}
.reltiles .rtile .img{position:absolute;inset:0;background:#0d3041 center/cover no-repeat;transition:transform .6s}
.reltiles .rtile:hover .img{transform:scale(1.06)}
.reltiles .rtile .img::after{content:"";position:absolute;inset:0;background:linear-gradient(transparent 28%,rgba(8,20,28,.86))}
.reltiles .rtile .c{position:relative}
.reltiles .rtile h3{font-family:var(--font);font-weight:700;letter-spacing:-.01em;font-size:20px;line-height:1.14}
.reltiles .rtile .tag{font-family:var(--font);color:#dce7e9;font-size:13px;margin-top:6px;line-height:1.4}
.reltiles .rtile .more{display:inline-block;margin-top:16px;color:var(--c-warm);font-weight:600;font-size:13px}
/* Related expertise — teaser cards (text below image) */
.relcards{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--s-4)}
.relcards .ucard .thumb .img{filter:grayscale(0.75)}
/* ===== RESPONSIVE ===== */
@media(max-width:980px){
  .phero .g,.about .g,.xintro .g{grid-template-columns:1fr}
  .grid6{grid-template-columns:1fr 1fr}
  .expgrid{grid-template-columns:1fr 1fr}.expgrid .tile.wide{grid-column:auto}
  .team{grid-template-columns:repeat(2,1fr)}
  .uw .feat,.ulist{grid-template-columns:1fr}
  .xrow{grid-template-columns:40px 1fr}.xrow .desc,.xrow .more{grid-column:2}
  .site-footer .f-top{grid-template-columns:1fr 1fr}
  .ugrid{grid-template-columns:1fr 1fr}
  .offices{grid-template-columns:1fr}
  .form-two{grid-template-columns:1fr}
  .bios .bio{grid-template-columns:1fr}.bio .photo{max-width:320px}
  .stmt-img,.stmt-split{grid-template-columns:1fr}
  .phero .body{margin-top:0}
  .exp-cols{grid-template-columns:1fr 1fr}
  .relgrid{grid-template-columns:1fr 1fr}
  .reltiles{grid-template-columns:1fr 1fr}
  .relcards{grid-template-columns:1fr 1fr}
}
@media(max-width:640px){
  .exp-cols,.relgrid,.reltiles,.relcards{grid-template-columns:1fr}
}
@media(max-width:640px){
  .grid6,.expgrid,.team{grid-template-columns:1fr}
  .navlinks{display:none}
}
/* ===== PRINT / PDF export ===== */
/* vh-based heroes balloon when the page box is tall (PDF), so pin them to a fixed height for print/PDF capture */
@media print{
  .hero{height:860px !important;min-height:0 !important;max-height:none !important}
  .xhero{height:760px !important;min-height:0 !important;max-height:none !important}
}

/* =========================================================
   WP BLOCK-THEME ADAPTATION LAYER (theme-only additions)
   Everything above is verbatim from the approved comp.
   ========================================================= */
/* Self-hosted Cormorant Garamond (replaces Google Fonts link) */
@font-face{font-family:"Cormorant Garamond";src:url("../fonts/cormorant-garamond/cormorant-garamond-v21-latin-regular.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Cormorant Garamond";src:url("../fonts/cormorant-garamond/cormorant-garamond-v21-latin-italic.woff2") format("woff2");font-weight:400;font-style:italic;font-display:swap}
@font-face{font-family:"Cormorant Garamond";src:url("../fonts/cormorant-garamond/cormorant-garamond-v21-latin-500.woff2") format("woff2");font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:"Cormorant Garamond";src:url("../fonts/cormorant-garamond/cormorant-garamond-v21-latin-500italic.woff2") format("woff2");font-weight:500;font-style:italic;font-display:swap}
@font-face{font-family:"Cormorant Garamond";src:url("../fonts/cormorant-garamond/cormorant-garamond-v21-latin-600.woff2") format("woff2");font-weight:600;font-style:normal;font-display:swap}
/* Nav bar row (prototype used a bare <nav>; blocks render a group div) */
.nav-bar{display:flex;align-items:center;justify-content:space-between;height:104px}
/* Core navigation block carrying the .navlinks class */
.navlinks .wp-block-navigation__container{display:flex;gap:var(--s-4);align-items:center}
.navlinks .wp-block-navigation-item__content{font-size:17px;font-weight:700}
/* WP admin bar offset for the fixed header */
body.admin-bar header{top:32px}
body.admin-bar header.static{top:0}

/* ---- Native button block styles (core/button mapped to the comp pills) ---- */
.wp-block-buttons{margin:0}
.wp-block-button{margin:0}
.wp-block-button.is-style-sh-outline>.wp-block-button__link,
.wp-block-button.is-style-sh-outline-light>.wp-block-button__link,
.wp-block-button.is-style-sh-gold>.wp-block-button__link,
.wp-block-button.is-style-sh-nav>.wp-block-button__link{display:inline-block;border-radius:999px;font-weight:600;font-size:14px;letter-spacing:.02em;line-height:1.2;transition:.2s;text-decoration:none;white-space:nowrap}
.wp-block-button.is-style-sh-outline>.wp-block-button__link{background:transparent;border:1px solid var(--c-ink);color:var(--c-ink);padding:12px 28px}
.wp-block-button.is-style-sh-outline>.wp-block-button__link:hover{background:var(--c-ink);color:#fff}
.wp-block-button.is-style-sh-outline-light>.wp-block-button__link{background:transparent;border:1px solid rgba(255,255,255,.5);color:#fff;padding:12px 28px}
.wp-block-button.is-style-sh-outline-light>.wp-block-button__link:hover{background:#fff;color:var(--c-100m)}
.wp-block-button.is-style-sh-gold>.wp-block-button__link{background:var(--c-warm);color:var(--c-100m);padding:14px 34px}
.wp-block-button.is-style-sh-gold>.wp-block-button__link:hover{background:var(--c-warm-deep)}
.wp-block-button.is-style-sh-nav>.wp-block-button__link{background:transparent;border:1.5px solid rgba(255,255,255,.75);color:#fff;padding:9px 24px;font-size:15px;font-weight:700}
.wp-block-button.is-style-sh-nav>.wp-block-button__link:hover{background:#fff;color:var(--c-100m);border-color:#fff}
header.solid .wp-block-button.is-style-sh-nav>.wp-block-button__link,
header.static .wp-block-button.is-style-sh-nav>.wp-block-button__link{color:var(--c-100m);border-color:rgba(13,48,65,.4)}
header.solid .wp-block-button.is-style-sh-nav>.wp-block-button__link:hover,
header.static .wp-block-button.is-style-sh-nav>.wp-block-button__link:hover{background:var(--c-accent);border-color:var(--c-accent);color:#fff}

/* ---- Logo: one navy image, inverted to white when transparent over a banner ---- */
.nav-bar .wp-block-image,.nav-bar .wp-block-buttons{margin:0}
.wp-block-image.logo{margin:0;line-height:0}
.wp-block-image.logo img{height:42px;width:auto}
header.hdr .wp-block-image.logo img{filter:brightness(0) invert(1)}
header.solid .wp-block-image.logo img,header.static .wp-block-image.logo img{filter:none}

/* ---- Transparent header: stronger backdrop so it reads as a floating bar ---- */
header.hdr::before{height:190px;background:linear-gradient(180deg,rgba(6,12,16,.80) 0%,rgba(6,12,16,.38) 45%,transparent 100%)}

/* ---- CTA as a Cover block (keeps the comp typography via .cta) ---- */
.wp-block-cover.cta{padding:var(--s-5) 0;align-items:center;justify-content:flex-start}
.wp-block-cover.cta .wp-block-cover__inner-container{width:100%}
.wp-block-cover.cta .wrap{position:relative}

/* ---- Footer as native/editable blocks (reconcile core markup to the comp) ---- */
.site-footer .f-top>*{margin-top:0;margin-bottom:0}
.site-footer .f-brand .wp-block-image{margin:0}
.site-footer .f-brand .wp-block-image img{height:30px;width:auto;margin-bottom:var(--s-3)}
.site-footer .f-col h4{margin-top:0}
.site-footer .f-col ul.wp-block-list{list-style:none;margin:0;padding:0}
.site-footer .f-col ul.wp-block-list li{margin:0}
.site-footer hr.f-divider{width:auto;max-width:none;height:0;opacity:1}
.site-footer .f-bottom p{margin:0}

/* ---- Expertise detail banner (core Cover + Post Title/Excerpt as .phero-dark.xhero) ---- */
.xhero.wp-block-cover{min-height:min(max(80vh,600px),1800px);align-items:flex-end;padding:calc(104px + var(--s-4)) 0 var(--s-6);color:#fff}
.xhero .wp-block-cover__image-background{filter:grayscale(0.75)}
.xhero>.wp-block-cover__background{opacity:1;background:
	radial-gradient(70% 95% at 50% 30%,transparent 32%,rgba(6,12,16,.5) 78%,rgba(6,12,16,.85)),
	linear-gradient(0deg,rgba(6,12,16,.72) 2%,transparent 55%)}
/* The cover is a flex row; its inner container was shrinking to content and
   pinning left, so the banner title didn't line up with the centred content
   column / logo on screens wider than 1500px. Force it to fill the row so the
   inner .wrap centres to the site width like everything else. */
.xhero .wp-block-cover__inner-container{width:100%;flex:1 0 100%;max-width:none}
.xhero .label{color:var(--c-warm)}
.xhero .wp-block-post-title{font-family:var(--serif);font-weight:500;font-size:clamp(40px,5.4vw,76px);line-height:1.02;letter-spacing:-.005em;color:#fff;margin:0}
.xhero .wp-block-post-excerpt{margin:var(--s-3) 0 0}
.xhero .wp-block-post-excerpt p{font-family:var(--serif);font-style:italic;color:#c7d3d9;font-size:24px;margin:0}
.xhero .wp-block-post-excerpt__more-text{display:none}

/* ---- Expertise intro: Corporate uses the sans lead (overrides serif default) ---- */
.xintro .stmt-split>*{margin-block:0}
.xintro .stmt-split .big{font-family:var(--font);font-weight:800;font-size:clamp(26px,3vw,34px);line-height:1.28;letter-spacing:0}
.xintro .stmt-split .col p{margin-bottom:var(--s-3)}

/* ---- "Our experience includes": reconcile core List blocks with .exp-cols ---- */
.exp-cols>*{margin-block:0}
.exp-cols ul.wp-block-list{margin:0}
.exp-exp h2{margin-top:0}

/* ---- Single article: core Featured Image fills the .article-hero container ---- */
.article-hero .wp-block-post-featured-image{margin:0;height:100%}
.article-hero .wp-block-post-featured-image img{width:100%;height:100%;object-fit:cover;display:block}
.article-body .wp-block-post-content>p:first-child{margin-top:0}
.article .wp-block-post-title{font-family:var(--font);font-weight:800;letter-spacing:-.02em;font-size:clamp(32px,4.4vw,54px);line-height:1.08;margin:12px 0 12px}

/* ---- Updates landing: two-column phero intro (reconcile core group with .g) ---- */
.phero .g>*{margin-block:0}

/* ---- About hero: core Heading/Paragraph inside the .xhero cover ---- */
.xhero .wp-block-heading.title{font-family:var(--serif);font-weight:500;font-size:clamp(40px,5.4vw,76px);line-height:1.02;letter-spacing:-.005em;color:#fff;margin:0}
.xhero p.isub{font-family:var(--serif);font-style:italic;color:#c7d3d9;font-size:24px;line-height:1.3;margin:var(--s-3) 0 0;max-width:none}
.xhero-soft .wp-block-cover__image-background{filter:grayscale(0.25)}

/* ---- Reconcile core group children with the comp grid/stack sections ---- */
.stmt-split>*{margin-block:0}
.grid6>*{margin:0}
.xlist>*{margin-block:0}
.offices>*{margin-block:0}
.phero .g>.wp-block-group{margin-block:0}
.flush-top{padding-top:0}

/* ---- Mobile navigation (core Navigation overlay, brand-styled) ---- */
/* Hamburger colour follows the header state */
.navlinks .wp-block-navigation__responsive-container-open{color:#fff}
header.solid .navlinks .wp-block-navigation__responsive-container-open,
header.static .navlinks .wp-block-navigation__responsive-container-open{color:var(--c-100m)}
/* The full-screen overlay (core sets a white bg inline — override it) */
.navlinks .wp-block-navigation__responsive-container.is-menu-open{background-color:var(--c-deep) !important;color:#fff}
.navlinks .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content{padding:var(--s-6) var(--s-4)}
.navlinks .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container{gap:var(--s-3)}
.navlinks .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content{color:#fff;font-family:var(--serif);font-weight:500;font-size:38px;line-height:1.1}
.navlinks .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content:hover{color:var(--c-warm)}
.navlinks .wp-block-navigation__responsive-container-close{color:#fff}
.navlinks .wp-block-navigation__responsive-container-close:hover{color:var(--c-warm)}

/* Collapse the nav to the hamburger up to 900px (core only collapses <600px,
   but the five inline links + logo + button don't fit on tablet). */
@media (max-width:900px){
  .navlinks .wp-block-navigation__responsive-container-open{display:flex !important}
  .navlinks .wp-block-navigation__responsive-container:not(.is-menu-open){display:none !important}
}

/* Hide the header "Get in touch" button when the nav collapses (it's redundant —
   Contact lives in the overlay menu). Leaves a clean logo + hamburger header. */
@media (max-width:900px){
  .nav-bar .wp-block-buttons{display:none}
}

/* ---- Expertise landing: dark image "statement" section (Cover-based) ---- */
.statement-cover{padding:150px 0;text-align:center}
.statement-cover img.wp-block-cover__image-background{filter:grayscale(0.4)}
.statement-cover .wp-block-cover__inner-container{width:100%}
.statement-cover .label{color:var(--c-warm)}
.statement-cover h2{font-family:var(--font);font-weight:800;letter-spacing:-.02em;font-size:clamp(32px,4vw,54px);line-height:1.05;color:#fff;max-width:20ch;margin:0 auto var(--s-3)}
.statement-cover p{color:#d0dce2;font-size:20px;line-height:1.7;max-width:66ch;margin:0 auto}
.statement-cover .wp-block-buttons{justify-content:center;margin-top:var(--s-4)}
/* Expertise landing xlist has no top border (title omitted) */
.xlist.no-top{border-top:0}

/* Hero headline: widen the cap so every rotating phrase holds the same line
   layout — "Crisis & Risk Management" (longest) was wrapping to 3 lines and
   shifting the block. 25ch fits the longest phrase + "Strategic advisory for". */
.hero h1{max-width:25ch}

/* Hero headline cross-dissolve — the rotating phrase fades out/in like the video
   scene crossfades (two stacked layers) instead of a hard swap, so the title
   changes read as connected to the footage. Layers inherit italic/gold + size
   from .rot; the ghost is an absolute overlay anchored at the same left edge. */
.hero .rot{position:relative;display:inline-block}
.hero .rot-t{display:inline-block;transition:opacity .45s ease}
.hero .rot-ghost{position:absolute;left:0;top:0;white-space:nowrap;pointer-events:none;opacity:1;transition:opacity .45s ease}

/* ============================================================
   Layout polish (mobile menu, banners, section seams)
   ============================================================ */

/* Section seams: top-level sections manage their own padding, so drop the
   24px flow block-gap between them — it showed as a white strip under
   full-bleed image banners. (3 classes beats the core layout style.) */
.entry-content.wp-block-post-content > * + *{margin-block-start:0}

/* The nav-bar group is a flow layout styled as flex, so WP injects a 24px
   block-gap margin on the <nav> (the older reset only covered image/buttons).
   Zero it or the hamburger sits 24px below the logo. */
.nav-bar > *{margin-block-start:0}

/* Mobile header: align the hamburger with the TOP of the logo (both were
   vertically centred, leaving the icon ~21px below the logo top). */
@media (max-width:900px){
  .nav-bar{align-items:flex-start;padding-top:31px}
  /* the <nav> carries height:104px from the prototype; collapse it so the
     hamburger sits at the top (not centred in a 104px box). */
  .navlinks{display:flex;height:auto;align-items:flex-start}
}

/* Core translates the open overlay down ~8.5px, which also makes it the
   containing block for the fixed close button (throwing off its top). Remove
   it so the overlay and close button sit true to the viewport. */
.navlinks .wp-block-navigation__responsive-container.is-menu-open{transform:none !important}

/* Close (X) sits exactly where the hamburger was — same top/right — so it
   doesn't jump when the overlay opens. */
.navlinks .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-close{
  position:fixed;top:31px;right:var(--s-4);width:24px;height:24px;margin:0;padding:0;z-index:100001;
}

/* Hero title: full width on mobile so the rotating phrase never runs off the
   screen (the 25ch desktop cap is wider than a phone viewport). */
@media (max-width:640px){
  .hero h1{max-width:100%}
  .hero p{max-width:100%}
  /* Reserve two lines for the rotating phrase so short (1-line) and long
     (2-line) phrases occupy the same box — the bottom-anchored headline no
     longer jumps up as the title cycles. Phrase stays top-aligned. */
  .hero .rot{min-height:2em;vertical-align:top}
}

/* Full-image banner titles constrained to a half-width column (aligned to the
   content width); full width on mobile. NOT applied to .phero intros — those
   titles already sit in their own grid column, so a 50% cap would over-squeeze
   them (Team/Updates titles wrapped to 6 lines). Subtitle may wrap on mobile. */
.xhero .title,
.xhero .wp-block-post-title,
.xhero .wp-block-heading.title{max-width:50%}
@media (max-width:900px){
  .xhero .title,
  .xhero .wp-block-post-title,
  .xhero .wp-block-heading.title{max-width:100%}
  .xhero .isub{white-space:normal}
}

/* ============================================================
   Forminator contact form — styled to the comp's .form-grid look
   (Basic Styles otherwise falls back to browser-default inputs).
   ============================================================ */
.forminator-ui.forminator-custom-form{margin:0}
/* Rows → the comp's two-column grid; col-12 spans full, last (submit) row single */
.forminator-ui .forminator-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--s-4);margin:0 0 var(--s-4)}
.forminator-ui .forminator-row .forminator-col-12{grid-column:1 / -1}
.forminator-ui .forminator-row-last{grid-template-columns:1fr;margin-bottom:0}
.forminator-ui .forminator-col{min-width:0;padding:0;margin:0}
.forminator-ui .forminator-field{margin:0}
/* Labels → comp micro-label (uppercase, tracked, faint) */
.forminator-ui .forminator-label{display:block;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--c-faint);font-weight:700;margin:0 0 8px;font-family:var(--font);line-height:1.3}
.forminator-ui .forminator-required{color:var(--c-accent);margin-left:2px}
/* Inputs + textarea → comp field */
.forminator-ui .forminator-input,
.forminator-ui .forminator-textarea,
.forminator-ui select.forminator-select,
.forminator-ui .forminator-selectfield{width:100%;border:1px solid var(--c-line);border-radius:4px;padding:14px;font-family:var(--font);font-size:16px;line-height:1.4;color:var(--c-ink);background:#fff;box-shadow:none;-webkit-appearance:none;appearance:none;transition:border-color .15s,box-shadow .15s}
.forminator-ui .forminator-textarea{min-height:160px;resize:vertical}
.forminator-ui .forminator-input:focus,
.forminator-ui .forminator-textarea:focus{outline:none;border-color:var(--c-accent);box-shadow:0 0 0 1px var(--c-accent)}
.forminator-ui .forminator-input::placeholder,
.forminator-ui .forminator-textarea::placeholder{color:var(--c-faint)}
.forminator-ui .forminator-description{display:block;margin-top:6px;font-size:13px;color:var(--c-faint)}
/* Submit → comp ghost pill */
.forminator-ui .forminator-button-submit{display:inline-block;width:auto;background:transparent;border:1px solid var(--c-ink);color:var(--c-ink);padding:14px 34px;border-radius:999px;font-family:var(--font);font-weight:600;font-size:14px;letter-spacing:.02em;line-height:1.2;cursor:pointer;transition:.2s;box-shadow:none;margin-top:var(--s-2)}
.forminator-ui .forminator-button-submit:hover{background:var(--c-ink);color:#fff}
/* Validation + response messages */
.forminator-ui .forminator-response-message{margin:0 0 var(--s-3);padding:13px 16px;border-radius:4px;font-size:15px;line-height:1.5}
.forminator-ui .forminator-response-message.forminator-error{background:#fbeceb;color:#8a2020}
.forminator-ui .forminator-response-message.forminator-success{background:#edf5ef;color:#1f6b3a}
.forminator-ui .forminator-error-message{color:#b3261e;font-size:13px;margin-top:6px;display:block}
.forminator-ui .forminator-is_invalid .forminator-input,
.forminator-ui .forminator-is_invalid .forminator-textarea{border-color:#b3261e}
/* Mobile: stack the two-column rows */
@media (max-width:640px){
  .forminator-ui .forminator-row{grid-template-columns:1fr}
}

/* Article share: brief "Link copied" confirmation state */
.share a.share-copy{cursor:pointer}
.share a.is-copied{color:var(--c-accent)}

/* Contact page: per-office email under each office address */
.office .office-email{margin-top:14px;font-size:15px}
.office .office-email a{color:var(--c-accent)}
.office .office-email a:hover{text-decoration:underline}

/* Contact hero "Get in Touch": bring down to the other page-title scale (Team) */
.contact-hero .big{font-size:clamp(40px,5.4vw,76px)}

/* Team / Updates phero: eyebrow gets its own grid row, so the title (left) and
   body (right) always share a row and align at the top — with OR without an
   eyebrow present. `display:contents` unwraps the left column group so the
   label/title/isub become grid items placeable by area. */
.phero .g{
  grid-template-areas:
    "eyebrow eyebrow"
    "title   body"
    "sub     .";
  column-gap:var(--s-6);
  row-gap:0;
}
.phero .g > .wp-block-group:not(.body){display:contents}
.phero .g .label{grid-area:eyebrow}
.phero .g .title{grid-area:title}
.phero .g .isub{grid-area:sub}
.phero .g > .body{grid-area:body;margin-top:0}
@media (max-width:980px){
  .phero .g{grid-template-columns:1fr;grid-template-areas:"eyebrow" "title" "sub" "body"}
  .phero .g > .body{margin-top:var(--s-4)}
}
