:root{
  --oxblood:#6E1D27;
  --oxblood-deep:#4A1119;
  --ink:#241418;
  --rose:#C98F8F;
  --rose-soft:#E8D3D1;
  --paper:#FAF6F2;
  --paper-warm:#F3EAE4;
  --white:#FFFFFF;
  --grey:#7A6E6A;
  --display:'Marcellus',serif;
  --body:'Lora',serif;
  --ui:'Hanken Grotesk',sans-serif;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:var(--body);color:var(--ink);background:var(--paper);line-height:1.7;font-size:17px}
img{max-width:100%}
a{color:inherit;text-decoration:none}
::selection{background:var(--oxblood);color:var(--paper)}

/* ---------- BCI Disclaimer Gate ---------- */
.gate{position:fixed;inset:0;background:rgba(36,20,24,.55);backdrop-filter:blur(6px);z-index:1000;display:flex;align-items:center;justify-content:center;padding:24px;opacity:1;transition:opacity .5s}
.gate.hidden{opacity:0;pointer-events:none}
.gate-card{background:var(--paper);max-width:680px;width:100%;padding:48px 52px;border-top:5px solid var(--oxblood);max-height:88vh;overflow-y:auto}
.gate-card .wordmark{margin-bottom:22px}
.gate-card h2{font-family:var(--display);font-size:22px;letter-spacing:.08em;text-transform:uppercase;color:var(--oxblood);margin-bottom:16px}
.gate-card p{font-size:14.5px;color:#4d4244;margin-bottom:14px}
.gate-card button{font-family:var(--ui);font-weight:600;letter-spacing:.14em;text-transform:uppercase;font-size:12.5px;background:var(--oxblood);color:var(--white);border:none;padding:15px 38px;cursor:pointer;margin-top:8px;transition:background .25s}
.gate-card button:hover,.gate-card button:focus-visible{background:var(--oxblood-deep)}
.gate-card button:focus-visible{outline:2px solid var(--ink);outline-offset:3px}

/* ---------- Wordmark ---------- */
.wordmark{font-family:var(--display);line-height:1;display:inline-block;text-align:center}
.wordmark .top{font-size:26px;letter-spacing:.10em;color:var(--ink)}
.wordmark .top em{font-style:normal;color:var(--oxblood)}
.wordmark .sub{display:block;font-size:11px;letter-spacing:.62em;color:var(--oxblood);margin-top:6px;text-indent:.62em}

/* ---------- Nav ---------- */
header{position:fixed;top:0;left:0;right:0;z-index:500;transition:background .35s,box-shadow .35s;padding:18px 0}
header.scrolled,header.solid{background:rgba(250,246,242,.96);box-shadow:0 1px 0 rgba(110,29,39,.14);backdrop-filter:blur(8px)}
.nav-inner{max-width:1240px;margin:0 auto;padding:0 32px;display:flex;align-items:center;justify-content:space-between}
.nav-inner .wordmark .top{font-size:20px}
.nav-inner .wordmark .sub{font-size:8.5px;margin-top:4px}
nav ul{display:flex;gap:38px;list-style:none}
nav a{font-family:var(--ui);font-size:12.5px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--ink);position:relative;padding:6px 0}
nav a::after{content:"";position:absolute;left:0;bottom:0;width:0;height:2px;background:var(--oxblood);transition:width .3s}
nav a:hover::after,nav a:focus-visible::after,nav a.active::after{width:100%}
nav a.active{color:var(--oxblood)}
.menu-btn{display:none;background:none;border:none;cursor:pointer;font-family:var(--ui);font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--ink);font-weight:700}

/* ---------- Page hero (inner pages) ---------- */
.page-hero{padding:190px 0 80px;background:linear-gradient(160deg,var(--paper) 55%,var(--paper-warm) 100%);position:relative;overflow:hidden}
.page-hero::before{content:"";position:absolute;right:-12vw;top:-30vh;width:55vw;height:120vh;background:radial-gradient(closest-side,rgba(201,143,143,.25),transparent 70%);pointer-events:none}
.page-hero .section-inner{padding-top:0;padding-bottom:0;position:relative}
.page-hero h1{font-family:var(--display);font-size:clamp(40px,5.4vw,68px);font-weight:400;line-height:1.1;max-width:18ch}
.page-hero p.lede{margin-top:24px;max-width:58ch;font-size:19px;color:#4d4244}
.breadcrumb{font-family:var(--ui);font-size:12px;font-weight:600;letter-spacing:.24em;text-transform:uppercase;color:var(--grey);margin-bottom:26px}
.breadcrumb a{color:var(--oxblood)}
.breadcrumb a:hover{text-decoration:underline}

/* ---------- Home hero ---------- */
.hero{min-height:100vh;display:flex;flex-direction:column;justify-content:center;position:relative;overflow:hidden;background:linear-gradient(160deg,var(--paper) 55%,var(--paper-warm) 100%)}
.hero::before{content:"";position:absolute;right:-12vw;top:-20vh;width:62vw;height:140vh;background:radial-gradient(closest-side,rgba(201,143,143,.28),transparent 70%);pointer-events:none}
.hero-pediment{position:absolute;right:6%;bottom:0;width:min(46vw,620px);opacity:.10;pointer-events:none}
.hero-inner{max-width:1240px;margin:0 auto;padding:140px 32px 80px;position:relative;width:100%}
.hero-eyebrow{font-family:var(--ui);font-size:13px;font-weight:600;letter-spacing:.3em;text-transform:uppercase;color:var(--oxblood);margin-bottom:28px}
.hero h1{font-family:var(--display);font-size:clamp(44px,6.4vw,86px);line-height:1.06;letter-spacing:.015em;max-width:14ch;font-weight:400}
.hero h1 .accent{color:var(--oxblood)}
.hero p.lede{margin-top:30px;max-width:54ch;font-size:19px;color:#4d4244}
.hero-cta{margin-top:44px;display:flex;gap:18px;flex-wrap:wrap}
.btn{font-family:var(--ui);font-weight:600;letter-spacing:.16em;text-transform:uppercase;font-size:12.5px;padding:16px 36px;display:inline-block;transition:all .25s;border:1.5px solid var(--oxblood)}
.btn-solid{background:var(--oxblood);color:var(--white)}
.btn-solid:hover{background:var(--oxblood-deep);border-color:var(--oxblood-deep)}
.btn-ghost{color:var(--oxblood)}
.btn-ghost:hover{background:var(--oxblood);color:var(--white)}
.btn-light{border-color:var(--rose);color:var(--paper)}
.btn-light:hover{background:var(--rose);color:var(--oxblood-deep)}
.hero-forums{margin-top:70px;border-top:1px solid rgba(110,29,39,.18);padding-top:24px;display:flex;gap:40px;flex-wrap:wrap;font-family:var(--ui);font-size:12px;letter-spacing:.22em;text-transform:uppercase;color:var(--grey)}

/* ---------- Statements (signature) ---------- */
.statements{background:var(--oxblood-deep);color:var(--paper);padding:130px 0 110px;position:relative;overflow:hidden}
.statements::after{content:"S";position:absolute;font-family:var(--display);font-size:60vh;line-height:1;color:rgba(250,246,242,.04);right:-2vw;top:-8vh;pointer-events:none}
.statement{max-width:1240px;margin:0 auto;padding:54px 32px;display:grid;grid-template-columns:minmax(180px,300px) 1fr;gap:28px;align-items:baseline;border-bottom:1px solid rgba(250,246,242,.12)}
.statement:last-child{border-bottom:none}
.statement h2{font-family:var(--display);font-size:clamp(40px,5vw,68px);font-weight:400;color:var(--rose)}
.statement p{font-size:19px;max-width:48ch;color:rgba(250,246,242,.85)}

/* ---------- Sections shared ---------- */
section{scroll-margin-top:90px}
.section-inner{max-width:1240px;margin:0 auto;padding:110px 32px}
.eyebrow{font-family:var(--ui);font-size:12.5px;font-weight:700;letter-spacing:.3em;text-transform:uppercase;color:var(--oxblood);margin-bottom:18px}
.section-title{font-family:var(--display);font-size:clamp(34px,4vw,52px);font-weight:400;line-height:1.15;margin-bottom:26px}
.section-link{font-family:var(--ui);font-size:13px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--oxblood);display:inline-flex;align-items:center;gap:10px;margin-top:34px}
.section-link::after{content:"\2192";transition:transform .25s}
.section-link:hover::after{transform:translateX(6px)}

/* ---------- About ---------- */
.about-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:70px;align-items:start}
.about-grid p{margin-bottom:20px;font-size:18px;color:#3d3134}
.about-aside{border-left:3px solid var(--oxblood);padding-left:32px}
.about-aside .stat{margin-bottom:34px}
.about-aside .stat strong{display:block;font-family:var(--display);font-size:30px;color:var(--oxblood);line-height:1.25}
.about-aside .stat span{font-family:var(--ui);font-size:13.5px;letter-spacing:.06em;color:var(--grey)}
.values-band{background:var(--paper-warm)}
.values-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:40px;margin-top:30px}
.value-card{border-top:3px solid var(--oxblood);padding-top:26px}
.value-card h3{font-family:var(--display);font-size:28px;font-weight:400;color:var(--oxblood);margin-bottom:12px}
.value-card p{font-size:16px;color:#4d4244}

/* ---------- Practice ---------- */
.practice{background:var(--paper-warm)}
.practice-intro{max-width:62ch;font-size:18px;color:#3d3134;margin-bottom:64px}
.practice-list{display:grid;gap:0;border-top:1px solid rgba(110,29,39,.22)}
.practice-item{border-bottom:1px solid rgba(110,29,39,.22)}
.practice-item button.p-head{width:100%;background:none;border:none;cursor:pointer;display:grid;grid-template-columns:64px 1fr auto;align-items:center;gap:24px;padding:34px 8px;text-align:left;font-family:var(--display)}
.p-head .p-roman{font-family:var(--display);font-size:15px;letter-spacing:.2em;color:var(--rose);transition:color .3s}
.p-head h3,.p-head h2{font-size:clamp(22px,2.6vw,32px);font-weight:400;color:var(--ink);transition:color .3s;font-family:var(--display)}
.p-head .p-toggle{font-family:var(--ui);font-size:22px;color:var(--oxblood);font-weight:400;transition:transform .35s;line-height:1}
.practice-item:hover .p-head h3,.practice-item:hover .p-head h2,.p-head:focus-visible h3,.p-head:focus-visible h2{color:var(--oxblood)}
.p-head:focus-visible{outline:2px solid var(--oxblood);outline-offset:-2px}
.practice-item.open .p-toggle{transform:rotate(45deg)}
.p-body{max-height:0;overflow:hidden;transition:max-height .5s ease}
.p-body-inner{display:grid;grid-template-columns:1fr 1fr;gap:48px;padding:6px 8px 48px 88px}
.p-body p{font-size:16.5px;color:#4d4244}
.p-body ul{list-style:none}
.p-body li{padding:13px 0 13px 26px;position:relative;font-size:15.5px;color:#3d3134;border-bottom:1px solid rgba(110,29,39,.12)}
.p-body li::before{content:"";position:absolute;left:0;top:22px;width:10px;height:1.5px;background:var(--oxblood)}
/* practice teaser cards (home) */
.practice-cards{display:grid;grid-template-columns:repeat(2,1fr);gap:32px;margin-top:20px}
.practice-card{background:var(--paper);border:1px solid rgba(110,29,39,.16);border-top:3px solid var(--oxblood);padding:40px 36px;transition:transform .3s,box-shadow .3s;display:block}
.practice-card:hover{transform:translateY(-4px);box-shadow:0 18px 40px rgba(74,17,25,.10)}
.practice-card .p-roman{font-family:var(--display);font-size:14px;letter-spacing:.22em;color:var(--rose);display:block;margin-bottom:14px}
.practice-card h3{font-family:var(--display);font-size:24px;font-weight:400;margin-bottom:12px;line-height:1.25}
.practice-card p{font-size:15.5px;color:#4d4244}
.practice-card .card-link{font-family:var(--ui);font-size:12px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--oxblood);display:inline-block;margin-top:20px}

/* ---------- Team ---------- */
.team-lead{display:grid;grid-template-columns:340px 1fr;gap:64px;margin-bottom:90px;align-items:start}
.portrait{aspect-ratio:4/5;background:linear-gradient(170deg,var(--rose-soft),var(--paper-warm));position:relative;display:flex;align-items:flex-end;justify-content:center;overflow:hidden;border-bottom:4px solid var(--oxblood)}
.portrait svg{width:78%;opacity:.9}
.portrait img{width:100%;height:100%;object-fit:cover;object-position:top}
.member-name{font-family:var(--display);font-size:30px;font-weight:400;line-height:1.2}
.member-role{font-family:var(--ui);font-size:12.5px;font-weight:700;letter-spacing:.26em;text-transform:uppercase;color:var(--oxblood);margin:8px 0 22px}
.member-bio p{margin-bottom:16px;font-size:16.5px;color:#3d3134}
.member-mail{font-family:var(--ui);font-size:13.5px;letter-spacing:.05em;color:var(--oxblood);border-bottom:1px solid var(--rose);padding-bottom:2px;transition:border-color .25s}
.member-mail:hover{border-color:var(--oxblood)}
.team-divider{border:none;border-top:1px solid rgba(110,29,39,.18);margin:0 0 90px}
.team-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:40px 32px}
.team-card .portrait{aspect-ratio:1/1.05;border-bottom-width:3px;margin-bottom:18px}
.team-card .member-name{font-size:21px}
.team-card .member-role{margin:6px 0 12px;font-size:11px}
.team-card .member-mail{font-size:12.5px}
/* team teaser (home) */
.team-strip{display:grid;grid-template-columns:repeat(3,1fr);gap:32px;margin-top:20px}
.team-strip .team-card{text-align:left}

/* ---------- Recognitions ---------- */
.recognitions{border-top:1px solid rgba(110,29,39,.18);margin-top:70px;padding-top:44px}
.recognitions h4{font-family:var(--ui);font-size:12px;font-weight:700;letter-spacing:.3em;text-transform:uppercase;color:var(--grey);margin-bottom:24px}
.recog-list{display:flex;flex-wrap:wrap;gap:14px}
.recog-list span{font-family:var(--ui);font-size:13px;font-weight:600;color:var(--oxblood);background:var(--rose-soft);padding:10px 20px;letter-spacing:.04em}

/* ---------- CTA band ---------- */
.cta-band{background:var(--oxblood-deep);color:var(--paper);text-align:center}
.cta-band .section-inner{padding:90px 32px}
.cta-band h2{font-family:var(--display);font-size:clamp(30px,3.6vw,46px);font-weight:400;max-width:24ch;margin:0 auto 18px}
.cta-band p{color:rgba(250,246,242,.8);max-width:52ch;margin:0 auto 38px;font-size:17.5px}

/* ---------- Contact ---------- */
.contact-dark{background:var(--oxblood-deep);color:var(--paper)}
.contact-dark .section-inner{display:grid;grid-template-columns:1.1fr .9fr;gap:70px;align-items:center}
.contact-dark .eyebrow{color:var(--rose)}
.contact-dark .section-title{color:var(--paper)}
.contact-dark p.c-lede{font-size:18px;color:rgba(250,246,242,.82);max-width:48ch}
.contact-card{border:1px solid rgba(250,246,242,.22);padding:48px}
.contact-card dl div{display:grid;grid-template-columns:110px 1fr;gap:16px;padding:18px 0;border-bottom:1px solid rgba(250,246,242,.14);align-items:baseline}
.contact-card dl div:last-child{border-bottom:none}
.contact-card dt{font-family:var(--ui);font-size:11.5px;font-weight:700;letter-spacing:.24em;text-transform:uppercase;color:var(--rose)}
.contact-card dd{font-size:16.5px}
.contact-card a{border-bottom:1px solid rgba(201,143,143,.5);transition:border-color .25s}
.contact-card a:hover{border-color:var(--rose)}
/* contact page light card */
.contact-light .contact-card{border-color:rgba(110,29,39,.2)}
.contact-light .contact-card dt{color:var(--oxblood)}
.contact-light .contact-card dl div{border-color:rgba(110,29,39,.12)}
.contact-light .contact-card a{border-color:rgba(110,29,39,.35)}
.contact-light .contact-card a:hover{border-color:var(--oxblood)}
.contact-note{background:var(--paper-warm);padding:36px 40px;margin-top:40px;border-left:3px solid var(--oxblood)}
.contact-note p{font-size:15px;color:#4d4244}

/* ---------- Footer ---------- */
footer{background:var(--ink);color:rgba(250,246,242,.75);padding:70px 0 40px}
.footer-inner{max-width:1240px;margin:0 auto;padding:0 32px}
.footer-top{display:flex;justify-content:space-between;align-items:flex-start;gap:40px;flex-wrap:wrap;margin-bottom:48px}
.footer-top .wordmark .top{color:var(--paper);font-size:22px}
.footer-top nav ul{flex-wrap:wrap}
.footer-top nav a{color:rgba(250,246,242,.75)}
.footer-disclaimer{font-size:13px;line-height:1.8;color:rgba(250,246,242,.55);border-top:1px solid rgba(250,246,242,.14);padding-top:32px;max-width:980px}
.footer-disclaimer strong{color:rgba(250,246,242,.8)}
.footer-bottom{margin-top:36px;font-family:var(--ui);font-size:12px;letter-spacing:.1em;color:rgba(250,246,242,.45);display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px}

/* ---------- Reveal on scroll ---------- */
.reveal{opacity:0;transform:translateY(26px);transition:opacity .8s ease,transform .8s ease}
.reveal.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .reveal{opacity:1;transform:none;transition:none}
  .p-body{transition:none}
}

/* ---------- Responsive ---------- */
@media (max-width:960px){
  .about-grid,.contact-dark .section-inner{grid-template-columns:1fr;gap:48px}
  .team-lead{grid-template-columns:1fr;gap:36px}
  .team-lead .portrait{max-width:340px}
  .p-body-inner{grid-template-columns:1fr;padding-left:8px;gap:24px}
  .statement{grid-template-columns:1fr;gap:10px;padding:40px 32px}
  .practice-cards{grid-template-columns:1fr}
  .values-grid{grid-template-columns:1fr;gap:32px}
  .team-strip{grid-template-columns:1fr 1fr}
}
@media (max-width:760px){
  nav ul{display:none;position:absolute;top:100%;left:0;right:0;background:var(--paper);flex-direction:column;gap:0;padding:12px 32px 24px;box-shadow:0 12px 24px rgba(36,20,24,.12)}
  nav ul.openmenu{display:flex}
  nav li{border-bottom:1px solid rgba(110,29,39,.12)}
  nav a{display:block;padding:16px 0}
  .menu-btn{display:block}
  .section-inner{padding:80px 24px}
  .page-hero{padding-top:150px}
  .nav-inner,.hero-inner,.footer-inner{padding-left:24px;padding-right:24px}
  .gate-card{padding:36px 28px}
  .contact-card{padding:32px 24px}
  .contact-card dl div{grid-template-columns:1fr;gap:4px}
  .team-strip{grid-template-columns:1fr}
}

/* ================= V2 ADDITIONS ================= */

/* ---------- Texture on dark bands ---------- */
.statements,.cta-band,.contact-dark{position:relative}
.texture::before{content:"";position:absolute;inset:0;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2'/%3E%3C/filter%3E%3Crect width='240' height='240' filter='url(%23n)' opacity='.05'/%3E%3C/svg%3E");pointer-events:none}

/* ---------- Courts ticker ---------- */
.ticker{background:var(--ink);overflow:hidden;padding:18px 0;border-top:1px solid rgba(201,143,143,.25)}
.ticker-track{display:flex;gap:0;width:max-content;animation:ticker 38s linear infinite}
.ticker span{font-family:var(--ui);font-size:12px;font-weight:600;letter-spacing:.28em;text-transform:uppercase;color:rgba(250,246,242,.6);padding:0 34px;white-space:nowrap;display:flex;align-items:center;gap:34px}
.ticker span::after{content:"\25C6";font-size:7px;color:var(--rose)}
@keyframes ticker{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@media (prefers-reduced-motion:reduce){.ticker-track{animation:none;flex-wrap:wrap;width:auto}}

/* ---------- Engraved Justitia hero art ---------- */
.hero-art{position:absolute;right:4%;top:50%;transform:translateY(-46%);width:min(38vw,480px);pointer-events:none}
.hero-art svg{width:100%;height:auto}
.hero-art .etch{stroke:#6E1D27;fill:none;stroke-width:1.6;opacity:.34}
.hero-art .etch-soft{stroke:#C98F8F;fill:none;stroke-width:1.2;opacity:.45}
.hero-art .etch-fill{fill:#6E1D27;opacity:.07}
@media (max-width:1100px){.hero-art{opacity:.4}}
@media (max-width:760px){.hero-art{display:none}}

/* ---------- Ornament divider ---------- */
.ornament{display:flex;align-items:center;gap:18px;margin:0 0 26px}
.ornament::before,.ornament::after{content:"";height:1px;width:54px;background:rgba(110,29,39,.4)}
.ornament svg{width:22px;height:22px}
.ornament.center{justify-content:center}

/* ---------- Drop cap & pull quote ---------- */
.dropcap::first-letter{font-family:var(--display);font-size:4.4em;line-height:.78;float:left;padding:8px 14px 0 0;color:var(--oxblood)}
.pullquote{border-left:none;margin:60px auto;max-width:760px;text-align:center;position:relative;padding:0 24px}
.pullquote p{font-family:var(--display);font-size:clamp(22px,2.8vw,32px);line-height:1.45;color:var(--oxblood-deep)}
.pullquote cite{display:block;margin-top:18px;font-family:var(--ui);font-style:normal;font-size:12px;font-weight:700;letter-spacing:.26em;text-transform:uppercase;color:var(--grey)}
.pullquote::before{content:"\201C";font-family:var(--display);font-size:90px;line-height:0;display:block;color:var(--rose);margin-bottom:34px}

/* ---------- How we work ---------- */
.how-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border-top:1px solid rgba(110,29,39,.2);border-bottom:1px solid rgba(110,29,39,.2)}
.how-cell{padding:48px 40px;border-right:1px solid rgba(110,29,39,.2)}
.how-cell:last-child{border-right:none}
.how-cell .glyph{margin-bottom:22px}
.how-cell .glyph svg{width:44px;height:44px}
.how-cell h3{font-family:var(--display);font-size:23px;font-weight:400;margin-bottom:12px}
.how-cell p{font-size:15.5px;color:#4d4244}
@media (max-width:900px){.how-grid{grid-template-columns:1fr}.how-cell{border-right:none;border-bottom:1px solid rgba(110,29,39,.2)}.how-cell:last-child{border-bottom:none}}

/* ---------- Insights ---------- */
.insight-featured{display:grid;grid-template-columns:1.1fr .9fr;gap:0;border:1px solid rgba(110,29,39,.2);background:var(--paper);margin-bottom:64px}
.insight-featured .cover{min-height:340px;position:relative;overflow:hidden;background:var(--oxblood-deep)}
.insight-featured .cover svg{position:absolute;inset:0;width:100%;height:100%}
.insight-featured .feat-body{padding:54px 50px;display:flex;flex-direction:column;justify-content:center}
.kicker{font-family:var(--ui);font-size:11.5px;font-weight:700;letter-spacing:.28em;text-transform:uppercase;color:var(--oxblood);margin-bottom:16px}
.insight-featured h3{font-family:var(--display);font-size:clamp(24px,2.6vw,34px);font-weight:400;line-height:1.25;margin-bottom:16px}
.insight-featured p.excerpt{font-size:16.5px;color:#4d4244;margin-bottom:24px}
.byline{font-family:var(--ui);font-size:13px;color:var(--grey)}
.byline b{color:var(--ink);font-weight:600}
.insight-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:36px}
.insight-card{background:var(--paper);border:1px solid rgba(110,29,39,.16);display:flex;flex-direction:column;transition:transform .3s,box-shadow .3s}
.insight-card:hover{transform:translateY(-5px);box-shadow:0 20px 44px rgba(74,17,25,.12)}
.insight-card .cover{aspect-ratio:16/9.5;position:relative;overflow:hidden;background:var(--paper-warm)}
.insight-card .cover svg{position:absolute;inset:0;width:100%;height:100%}
.insight-card .card-body{padding:28px 28px 32px;display:flex;flex-direction:column;flex:1}
.insight-card h3{font-family:var(--display);font-size:20px;font-weight:400;line-height:1.35;margin-bottom:12px}
.insight-card p.excerpt{font-size:14.5px;color:#4d4244;flex:1}
.insight-card .byline{margin-top:18px;padding-top:16px;border-top:1px solid rgba(110,29,39,.12)}
@media (max-width:980px){.insight-grid{grid-template-columns:1fr 1fr}.insight-featured{grid-template-columns:1fr}.insight-featured .cover{min-height:240px}}
@media (max-width:680px){.insight-grid{grid-template-columns:1fr}.insight-featured .feat-body{padding:36px 28px}}

/* ---------- Article page ---------- */
.article-hero{padding:190px 0 60px;background:linear-gradient(160deg,var(--paper) 55%,var(--paper-warm) 100%)}
.article-hero .section-inner{padding-top:0;padding-bottom:0;max-width:880px}
.article-hero h1{font-family:var(--display);font-size:clamp(32px,4.4vw,52px);font-weight:400;line-height:1.18;margin-bottom:26px}
.article-meta{display:flex;gap:28px;flex-wrap:wrap;font-family:var(--ui);font-size:13px;color:var(--grey);border-top:1px solid rgba(110,29,39,.2);padding-top:20px}
.article-meta b{color:var(--ink);font-weight:600}
.article-body{max-width:760px;margin:0 auto;padding:70px 32px 100px}
.article-body p{margin-bottom:24px;font-size:17.5px;color:#352a2d}
.article-body h2{font-family:var(--display);font-size:27px;font-weight:400;margin:48px 0 18px;color:var(--oxblood-deep)}
.article-body .article-pull{border-left:3px solid var(--oxblood);padding:6px 0 6px 28px;margin:40px 0;font-family:var(--display);font-size:22px;line-height:1.5;color:var(--oxblood-deep)}
.article-note{background:var(--paper-warm);border-left:3px solid var(--oxblood);padding:26px 30px;margin-top:56px;font-size:14px;color:#4d4244}
.back-link{font-family:var(--ui);font-size:12.5px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--oxblood)}
.back-link::before{content:"\2190";margin-right:10px}

/* ---------- Photo frame treatment ---------- */
.portrait{box-shadow:inset 0 0 0 1px rgba(110,29,39,.12)}
.portrait::after{content:"";position:absolute;inset:10px;border:1px solid rgba(110,29,39,.18);pointer-events:none}

/* ---------- Insights teaser on home ---------- */
.insights-teaser{background:var(--paper)}

/* ============ v2 additions ============ */

/* ---------- Imagery ---------- */
.img-frame{position:relative;overflow:hidden;background:var(--rose-soft)}
.img-frame img{width:100%;height:100%;object-fit:cover;display:block;filter:saturate(.62) contrast(1.03) brightness(.98)}
.img-frame::after{content:"";position:absolute;inset:0;background:linear-gradient(25deg,rgba(110,29,39,.38),rgba(110,29,39,.04) 55%);pointer-events:none}
.img-caption{font-family:var(--ui);font-size:11.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--grey);margin-top:14px}

.split{display:grid;grid-template-columns:1fr 1fr;gap:74px;align-items:center}
.split .img-frame{aspect-ratio:4/3;box-shadow:22px 22px 0 var(--rose-soft)}
.split.flip .img-frame{order:2;box-shadow:-22px 22px 0 var(--rose-soft)}

/* ---------- Quote band ---------- */
.quote-band{position:relative;overflow:hidden;background:var(--ink);color:var(--paper)}
.quote-band .band-img{position:absolute;inset:0}
.quote-band .band-img img{width:100%;height:100%;object-fit:cover;opacity:.22;filter:saturate(.4)}
.quote-band .band-img::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(36,20,24,.92),rgba(74,17,25,.78))}
.quote-band .section-inner{position:relative;padding:100px 32px}
.quote-band blockquote{font-family:var(--display);font-size:clamp(26px,3.4vw,42px);line-height:1.35;max-width:26ch;font-weight:400}
.quote-band blockquote::before{content:"\201C";color:var(--rose);font-size:1.4em;line-height:0;vertical-align:-0.32em;margin-right:6px}
.quote-band cite{display:block;margin-top:26px;font-family:var(--ui);font-size:12px;font-weight:700;letter-spacing:.28em;text-transform:uppercase;font-style:normal;color:var(--rose)}

/* ---------- Insights ---------- */
.insights-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:34px;margin-top:24px}
.insight-card{background:var(--paper);border:1px solid rgba(110,29,39,.16);display:flex;flex-direction:column;transition:transform .3s,box-shadow .3s}
.insight-card:hover{transform:translateY(-4px);box-shadow:0 18px 40px rgba(74,17,25,.10)}
.insight-card .img-frame{aspect-ratio:16/9}
.insight-body{padding:30px 30px 34px;display:flex;flex-direction:column;flex:1}
.insight-meta{font-family:var(--ui);font-size:11px;font-weight:700;letter-spacing:.22em;text-transform:uppercase;color:var(--oxblood);margin-bottom:14px;display:flex;gap:14px;flex-wrap:wrap}
.insight-meta .date{color:var(--grey)}
.insight-card h3{font-family:var(--display);font-size:21.5px;font-weight:400;line-height:1.35;margin-bottom:12px}
.insight-card p{font-size:15px;color:#4d4244;flex:1}
.insight-card .card-link{font-family:var(--ui);font-size:12px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--oxblood);margin-top:22px;display:inline-block}
.insights-list .insight-card{flex-direction:row;align-items:stretch}
.insights-list{display:grid;gap:34px;grid-template-columns:repeat(2,1fr)}

/* ---------- Article ---------- */
.article-wrap{max-width:760px;margin:0 auto;padding:80px 32px 110px}
.article-wrap .insight-meta{margin-bottom:22px}
.article-wrap h1{font-family:var(--display);font-size:clamp(32px,4.4vw,50px);font-weight:400;line-height:1.18;margin-bottom:22px}
.article-wrap .standfirst{font-size:20px;line-height:1.65;color:#4d4244;font-style:italic;border-left:3px solid var(--oxblood);padding-left:24px;margin:30px 0 44px}
.article-body p{margin-bottom:22px;font-size:17.5px;color:#33282b}
.article-body h2{font-family:var(--display);font-size:27px;font-weight:400;margin:46px 0 18px;color:var(--oxblood-deep)}
.article-body p:first-of-type::first-letter{font-family:var(--display);font-size:64px;line-height:.8;float:left;padding:8px 12px 0 0;color:var(--oxblood)}
.article-foot{margin-top:54px;border-top:1px solid rgba(110,29,39,.2);padding-top:28px;font-family:var(--ui);font-size:13px;color:var(--grey)}
.article-hero{aspect-ratio:21/9;max-width:1240px;margin:0 auto;padding:0 32px}
.article-hero .img-frame{height:100%}

/* ---------- Map ---------- */
.map-embed{border:1px solid rgba(110,29,39,.2);height:100%;min-height:380px}
.map-embed iframe{width:100%;height:100%;min-height:380px;border:0;display:block;filter:grayscale(.55) sepia(.12)}

/* ---------- v2 responsive ---------- */
@media (max-width:960px){
  .split,.split.flip{grid-template-columns:1fr;gap:40px}
  .split.flip .img-frame{order:0}
  .insights-grid{grid-template-columns:1fr 1fr}
  .insights-list{grid-template-columns:1fr}
}
@media (max-width:680px){
  .insights-grid{grid-template-columns:1fr}
}
