/* ==========================================================================
   VGNC Advocate v4 — compact premium law-firm design
   Brand red logo, deep navy bands, white. Source Serif 4 + Manrope.
   ========================================================================== */
:root{
  --red:#CC281D;
  --red-dk:#A51F16;
  --navy:#111A27;
  --navy-2:#1B2636;
  --ink:#18202B;
  --slate:#5B6472;
  --paper:#FFFFFF;
  --mist:#F3F4F6;
  --card:#FFFFFF;
  --line:rgba(24,32,43,.12);
  --line-dk:rgba(255,255,255,.12);
  --on-dark:#E6E9EE;
  --on-dark-muted:#9AA3B0;
  --serif:'Source Serif 4', Georgia, 'Times New Roman', serif;
  --sans:'Manrope', -apple-system, 'Segoe UI', Roboto, Arial, sans-serif;
  --wrap:1200px;
  --header-h:72px;
  --navbar-h:48px;
}
*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth; scroll-padding-top:calc(var(--navbar-h) + 12px); -webkit-text-size-adjust:100%;}
body{margin:0; font-family:var(--sans); font-size:16px; line-height:1.65; color:var(--ink); background:var(--paper); -webkit-font-smoothing:antialiased;}
body.disclaimer-locked{overflow:hidden;}
img{max-width:100%; height:auto; display:block;}
a{color:inherit;}
h1,h2,h3,h4{font-family:var(--serif); font-weight:700; line-height:1.15; margin:0; letter-spacing:-.01em;}
p{margin:0 0 .9em;}
figure{margin:0;}
address{font-style:normal;}
ul,ol{margin:0; padding:0;}
:focus-visible{outline:2px solid var(--red); outline-offset:3px;}
.screen-reader-text{position:absolute!important; width:1px; height:1px; overflow:hidden; clip:rect(1px,1px,1px,1px); white-space:nowrap;}
.skip-link{position:absolute; left:-9999px; top:8px; z-index:1000; background:var(--navy); color:#fff; padding:10px 16px;}
.skip-link:focus{left:8px;}
.wrap{max-width:var(--wrap); margin:0 auto; padding:0 18px;}
.wrap.narrow{max-width:800px;}
@media (min-width:700px){.wrap{padding:0 32px;}}

/* Buttons */
.btn{display:inline-flex; align-items:center; justify-content:center; gap:8px; min-height:46px; padding:11px 22px; font:700 14px/1.2 var(--sans); letter-spacing:.02em; text-decoration:none; color:#fff; background:var(--red); border:1px solid var(--red); border-radius:3px; cursor:pointer; transition:background .15s ease, border-color .15s ease, color .15s ease;}
.btn:hover{background:var(--red-dk); border-color:var(--red-dk);}
.btn-outline{background:transparent; color:var(--ink); border-color:var(--ink);}
.btn-outline:hover{background:var(--ink); color:#fff; border-color:var(--ink);}
.btn-ghost{background:transparent; color:#fff; border-color:rgba(255,255,255,.5);}
.btn-ghost:hover{background:#fff; color:var(--navy); border-color:#fff;}
.btn-outline-light{background:transparent; color:#fff; border-color:rgba(255,255,255,.5);}

/* Section heads */
.sec-head{display:flex; flex-wrap:wrap; align-items:flex-end; justify-content:space-between; gap:10px 28px; margin-bottom:24px;}
.sec-kicker{margin:0 0 4px; font-size:12.5px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:var(--red);}
.sec-head h2{font-size:clamp(28px,4.6vw,40px);}
.sec-lead{margin:8px 0 0; max-width:64ch; font-size:16px; color:var(--slate);}
.sec-lead strong{color:var(--ink);}
.sec-link{display:inline-flex; align-items:center; gap:8px; min-height:40px; font-size:14px; font-weight:700; color:var(--red); text-decoration:none; white-space:nowrap;}
.sec-link::after{content:""; width:7px; height:7px; border-top:2px solid currentColor; border-right:2px solid currentColor; transform:rotate(45deg); transition:transform .2s ease;}
.sec-link:hover::after{transform:translateX(3px) rotate(45deg);}
.block-title{font-size:clamp(24px,4vw,30px); margin-bottom:18px; padding-left:14px; border-left:4px solid var(--red); line-height:1.2;}

/* ---------- Disclaimer ---------- */
.disclaimer-overlay{position:fixed; inset:0; z-index:9999; background:rgba(10,15,23,.8); display:flex; align-items:center; justify-content:center; padding:14px;}
.disclaimer-overlay[hidden]{display:none;}
.disclaimer-card{background:#fff; color:var(--ink); max-width:640px; max-height:88vh; overflow-y:auto; padding:26px 22px 22px; border-top:5px solid var(--red); border-radius:4px; box-shadow:0 30px 70px rgba(0,0,0,.4);}
.disclaimer-card .eyebrow{font-size:12px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:var(--red); margin:0 0 4px;}
.disclaimer-card h2{font-size:26px; margin-bottom:12px;}
.disclaimer-card p,.disclaimer-card li{font-size:14.5px; color:var(--slate);}
.disclaimer-card ul{margin:0 0 20px; padding-left:20px; line-height:1.6;}
.disclaimer-card li{margin-bottom:8px;}
@media (min-width:600px){.disclaimer-card{padding:36px 38px 32px;}}

/* ---------- Header ---------- */
.site-header{position:sticky; top:0; z-index:110; background:#fff; border-bottom:1px solid var(--line);}
.admin-bar .site-header{top:46px;}
.header-main{display:flex; align-items:center; justify-content:space-between; gap:20px; min-height:var(--header-h);}
.brand{display:inline-flex; flex-direction:column; text-decoration:none; line-height:1;}
.brand-name{font-family:var(--serif); font-weight:700; font-size:30px; letter-spacing:.01em; color:var(--red);}
.brand-tag{font-family:var(--serif); font-style:italic; font-weight:400; font-size:13.5px; color:var(--slate); margin:3px 0 0 1.6em; white-space:nowrap;}
.brand-logo img{max-height:56px; width:auto;}
.header-info{display:none;}
.nav-actions{display:flex; align-items:center; gap:8px;}
.nav-call{display:inline-flex; align-items:center; gap:6px; min-height:42px; padding:0 13px; background:var(--red); color:#fff; border-radius:3px; text-decoration:none; font-size:14px; font-weight:700;}
.navmenu-btn{display:inline-flex; align-items:center; gap:9px; min-height:42px; padding:0 13px; background:var(--navy); color:#fff; border:0; border-radius:3px; font:700 14px var(--sans); cursor:pointer;}
.navmenu-btn .bars{position:relative; width:16px; height:2px; background:currentColor;}
.navmenu-btn .bars::before,.navmenu-btn .bars::after{content:""; position:absolute; left:0; width:16px; height:2px; background:currentColor; transition:transform .2s ease, top .2s ease;}
.navmenu-btn .bars::before{top:-5px;} .navmenu-btn .bars::after{top:5px;}
.navmenu-btn[aria-expanded="true"] .bars{background:transparent;}
.navmenu-btn[aria-expanded="true"] .bars::before{top:0; transform:rotate(45deg);}
.navmenu-btn[aria-expanded="true"] .bars::after{top:0; transform:rotate(-45deg);}

/* Nav: mobile drawer / desktop bar */
.nav-bar{display:none; position:fixed; left:0; right:0; top:var(--header-h); bottom:0; z-index:105; background:var(--navy); overflow-y:auto;}
.admin-bar .nav-bar{top:calc(var(--header-h) + 46px);}
.nav-bar.open{display:block;}
.nav-bar ul{list-style:none; padding:8px 0;}
.nav-bar a{display:flex; align-items:center; min-height:52px; text-decoration:none; color:#fff; font-size:17px; font-weight:600; border-bottom:1px solid var(--line-dk);}
.nav-bar .current-menu-item > a,.nav-bar a[aria-current="page"]{color:#fff; box-shadow:inset 4px 0 0 var(--red); padding-left:14px;}
.nav-bar .sub-menu a{padding-left:18px; font-size:15px; font-weight:500;}
.drawer-contact{display:flex; flex-direction:column; gap:4px; padding:18px 0 28px;}
.drawer-contact a{min-height:40px; border:0; color:var(--on-dark-muted); font-size:15px; font-weight:500;}
@media (min-width:1080px){
  :root{--header-h:88px;}
  .site-header{position:relative;}
  .nav-actions{display:none;}
  .brand-name{font-size:36px;}
  .brand-tag{font-size:15px;}
  .header-info{display:flex; align-items:center; gap:28px;}
  .hi-item{display:flex; flex-direction:column; text-decoration:none; padding-left:16px; border-left:1px solid var(--line);}
  .hi-label{font-size:11.5px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:var(--slate);}
  .hi-value{font-size:14.5px; font-weight:600; color:var(--ink);}
  .hi-phone{font-family:var(--serif); font-size:20px; font-weight:700; color:var(--red);}
  a.hi-item:hover .hi-phone{color:var(--red-dk);}
  .nav-bar{display:block; position:sticky; top:0; bottom:auto; z-index:100; overflow:visible; height:var(--navbar-h); border-bottom:3px solid var(--red);}
  .admin-bar .nav-bar{top:32px;}
  .nav-bar .wrap{display:flex; align-items:stretch; height:100%;}
  .nav-bar ul{display:flex; padding:0; height:100%;}
  .nav-bar li{position:relative;}
  .nav-bar a{height:100%; min-height:0; padding:0 18px; border:0; font-size:14px; font-weight:600; color:var(--on-dark); transition:background .15s ease, color .15s ease;}
  .nav-bar li:first-child > a{padding-left:0;}
  .nav-bar a:hover{color:#fff; background:var(--navy-2);}
  .nav-bar li:first-child > a:hover{background:none;}
  .nav-bar .current-menu-item > a,.nav-bar a[aria-current="page"]{box-shadow:none; padding-left:18px; background:var(--red); color:#fff;}
  .nav-bar li:first-child.current-menu-item > a,.nav-bar li:first-child > a[aria-current="page"]{padding-left:18px;}
  .nav-bar .sub-menu{display:none; position:absolute; top:100%; left:0; min-width:230px; height:auto; background:var(--navy); padding:6px 0; flex-direction:column;}
  .nav-bar li:hover > .sub-menu,.nav-bar li:focus-within > .sub-menu{display:flex;}
  .nav-bar .sub-menu a{min-height:40px; padding:0 18px;}
  .drawer-contact{display:none;}
}
@media (min-width:783px){.admin-bar .site-header{top:32px;}}

/* ---------- Masthead (inner pages) ---------- */
.masthead{position:relative; color:#fff; padding:38px 0 34px; background:var(--navy) url("../images/office-competent-house.jpg") center 65%/cover no-repeat; overflow:hidden;}
.masthead::before{content:""; position:absolute; inset:0; background:linear-gradient(90deg, rgba(17,26,39,.96) 0%, rgba(17,26,39,.88) 55%, rgba(17,26,39,.7) 100%);}
.masthead .wrap{position:relative;}
.breadcrumb{display:flex; flex-wrap:wrap; gap:8px; font-size:13px; color:var(--on-dark-muted); margin-bottom:12px;}
.breadcrumb a{color:#fff; text-decoration:none;}
.breadcrumb a:hover{text-decoration:underline;}
.masthead-kicker{margin:0 0 4px; font-size:12.5px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:#FF8A80;}
.masthead h1{font-size:clamp(34px,6.4vw,54px); color:#fff;}
.masthead h1::after{content:""; display:block; width:56px; height:4px; background:var(--red); margin-top:14px;}
.masthead-lead{max-width:64ch; margin:14px 0 0; font-size:16.5px; color:var(--on-dark);}
.masthead-lead strong{color:#fff;}
@media (min-width:900px){.masthead{padding:52px 0 48px;}}

.page-body{padding:40px 0 48px;}
@media (min-width:900px){.page-body{padding:56px 0 64px;}}
.page-extra{padding:0 0 40px;}

/* ---------- Home hero: Who We Are ---------- */
.home-hero{position:relative; background:radial-gradient(120% 90% at 85% 100%, #243247 0%, var(--navy) 60%); color:#fff; overflow:hidden;}
.home-hero::after{content:""; position:absolute; right:-120px; top:-120px; width:420px; height:420px; border:1px solid rgba(255,255,255,.06); border-radius:50%; box-shadow:0 0 0 60px rgba(255,255,255,.02), 0 0 0 120px rgba(255,255,255,.015);}
.hero-grid{position:relative; z-index:1; display:grid; align-items:end;}
.hero-copy{padding:34px 0 24px;}
.kicker{font-family:var(--serif); font-style:italic; font-size:19px; color:#FF8A80; margin:0 0 6px;}
.home-hero h1{font-size:clamp(44px,10vw,78px); line-height:1; color:#fff; letter-spacing:-.02em;}
.home-hero h1::after{content:""; display:block; width:64px; height:4px; background:var(--red); margin-top:18px;}
.intro-lead{margin:18px 0 0; font-size:17px; line-height:1.7; max-width:52ch; color:var(--on-dark);}
.intro-actions{display:flex; flex-wrap:wrap; gap:10px; margin-top:24px;}
.hero-photo{position:relative; margin:0 -18px; align-self:end;}
.hero-photo img{width:100%; height:auto; filter:drop-shadow(0 20px 40px rgba(0,0,0,.35));}
.hero-photo figcaption{position:absolute; left:18px; bottom:16px; display:flex; flex-direction:column; padding:9px 14px; background:#fff; color:var(--ink); border-left:4px solid var(--red); border-radius:2px; box-shadow:0 10px 26px rgba(0,0,0,.25);}
.hero-photo figcaption strong{font-family:var(--serif); font-size:17px;}
.hero-photo figcaption span{font-size:12px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--red);}
.hero-facts{position:relative; z-index:2; background:var(--red);}
.facts{display:grid; grid-template-columns:1fr 1fr; margin:0 auto;}
.facts > div{padding:14px 12px 14px 0;}
.facts > div:nth-child(even){padding-left:14px; border-left:1px solid rgba(255,255,255,.25);}
.facts > div:nth-child(n+3){border-top:1px solid rgba(255,255,255,.25);}
.facts dt{font-family:var(--serif); font-weight:700; font-size:24px; line-height:1.1; color:#fff;}
.facts dd{margin:3px 0 0; font-size:12.5px; line-height:1.4; color:rgba(255,255,255,.88);}
@media (min-width:700px){.hero-photo{margin:0; max-width:560px; justify-self:end;}}
@media (min-width:1000px){
  .hero-grid{grid-template-columns:1.05fr .95fr; gap:24px; min-height:480px;}
  .hero-copy{padding:56px 0 64px; align-self:center;}
  .hero-photo{margin-right:-20px; max-width:none;}
  .hero-photo figcaption{left:auto; right:24px; bottom:24px;}
  .facts{grid-template-columns:repeat(4,1fr);}
  .facts > div{padding:18px 20px; border-left:1px solid rgba(255,255,255,.25);}
  .facts > div:first-child{padding-left:0; border-left:0;}
  .facts > div:nth-child(n+3){border-top:0;}
  .facts dt{font-size:28px;}
}

/* Leader */
.home-leader{padding:32px 0; border-bottom:1px solid var(--line);}
.leader-grid{display:grid; gap:20px; align-items:center;}
.leader-text{margin:0; font-size:16.5px; color:var(--slate);}
.motto{margin:0; padding:18px 20px; background:var(--mist); border-left:4px solid var(--red); font-family:var(--serif); font-style:italic; font-size:clamp(19px,3.4vw,23px); line-height:1.45; color:var(--ink);}
@media (min-width:900px){.home-leader{padding:44px 0;} .leader-grid{grid-template-columns:1.35fr 1fr; gap:40px;} .leader-text{text-align:justify; hyphens:auto;}}

/* Core areas */
.home-core{padding:40px 0 44px; background:var(--mist);}
.core-grid{display:grid; gap:14px;}
.core{position:relative; background:#fff; padding:24px 22px 18px; border-radius:4px; border:1px solid var(--line); border-top:4px solid var(--red); transition:box-shadow .2s ease, transform .2s ease;}
.core:hover{box-shadow:0 16px 34px rgba(17,26,39,.1); transform:translateY(-2px);}
.core-icon{display:inline-flex; width:48px; height:48px; color:var(--red); margin-bottom:10px;}
.core-icon svg{width:100%; height:100%;}
.core h3{font-size:22px; margin-bottom:10px;}
.core p,.core li{font-size:14.5px; color:var(--slate);}
.core ul{margin:0 0 .9em; padding-left:18px;}
.core li::marker{color:var(--red);}
@media (min-width:900px){.home-core{padding:56px 0 60px;} .core-grid{grid-template-columns:repeat(3,1fr); gap:20px;} .core{padding:28px 26px 20px;}}

/* ---------- Home section sequence ---------- */
.home-sec{padding:40px 0 44px;}
.home-sec-practice,.home-sec-team{background:var(--mist);}
.home-sec-forums{background:var(--navy); color:#fff;}
.home-sec-forums .sec-head h2{color:#fff;}
.home-sec-forums .sec-kicker{color:#FF8A80;}
.home-sec-forums .sec-link{color:#fff;}
@media (min-width:900px){.home-sec{padding:56px 0 60px;}}

/* ---------- Who We Served ---------- */
.logo-wall{list-style:none; display:grid; grid-template-columns:repeat(4,1fr); gap:8px;}
.logo-wall li{aspect-ratio:1/1; display:flex; align-items:center; justify-content:center; padding:4px; background:#fff; border:1px solid var(--line); border-radius:4px; transition:border-color .2s ease, box-shadow .2s ease;}
.logo-wall li:hover{border-color:var(--red); box-shadow:0 8px 18px rgba(17,26,39,.08);}
.logo-wall img{width:100%; height:100%; object-fit:contain;}
@media (min-width:600px){.logo-wall{grid-template-columns:repeat(6,1fr); gap:10px;}}
@media (min-width:1000px){.logo-wall{grid-template-columns:repeat(9,1fr); gap:10px;}}

/* ---------- Practice tiles (home) ---------- */
.p-tiles{list-style:none; display:grid; gap:10px;}
.p-tile{position:relative; display:flex; flex-direction:column; height:100%; padding:18px 18px 16px; background:#fff; border:1px solid var(--line); border-radius:4px; text-decoration:none; overflow:hidden; transition:background .2s ease, border-color .2s ease;}
.p-tile::before{content:""; position:absolute; left:0; top:0; bottom:0; width:4px; background:var(--red); transform:scaleY(0); transform-origin:top; transition:transform .25s ease;}
.p-no{font-family:var(--serif); font-weight:700; font-size:22px; color:var(--red); line-height:1; margin-bottom:8px;}
.p-title{font-weight:600; font-size:15.5px; line-height:1.45; color:var(--ink); flex:1;}
.p-more{margin-top:12px; font-size:13px; font-weight:700; color:var(--red);}
.p-tile:hover{background:var(--navy); border-color:var(--navy);}
.p-tile:hover::before{transform:scaleY(1);}
.p-tile:hover .p-title{color:#fff;}
.p-tile:hover .p-more,.p-tile:hover .p-no{color:#FF8A80;}
@media (min-width:640px){.p-tiles{grid-template-columns:1fr 1fr;}}
@media (min-width:1000px){.p-tiles{grid-template-columns:repeat(3,1fr); gap:14px;}}

/* ---------- What We Practice (page) ---------- */
.glance{list-style:none; display:grid; gap:0 36px; margin-bottom:32px; padding:18px 20px; background:var(--mist); border-radius:4px;}
.glance li{position:relative; padding:8px 0 8px 20px; font-size:15px; border-bottom:1px solid var(--line);}
.glance li:last-child{border-bottom:0;}
.glance li::before{content:""; position:absolute; left:0; top:17px; width:8px; height:8px; background:var(--red); border-radius:1px;}
@media (min-width:800px){.glance{grid-template-columns:1fr 1fr; padding:22px 28px;} .glance li:nth-last-child(2){border-bottom:0;}}
.practice-layout{display:grid; gap:16px;}
.practice-layout > *{min-width:0;}
.practice-nav{position:sticky; top:var(--header-h); z-index:5; background:#fff; margin:0 -18px; padding:8px 18px; border-bottom:1px solid var(--line);}
.practice-nav-title{display:none;}
.practice-nav ul{list-style:none; display:flex; gap:6px; overflow-x:auto; scrollbar-width:none; -webkit-overflow-scrolling:touch;}
.practice-nav ul::-webkit-scrollbar{display:none;}
.practice-nav a{display:inline-flex; align-items:center; gap:7px; min-height:38px; padding:0 12px; white-space:nowrap; border:1px solid var(--line); border-radius:40px; font-size:13px; font-weight:600; text-decoration:none; background:#fff;}
.practice-nav .pn{font-family:var(--serif); font-weight:700; color:var(--red);}
.practice-nav a.is-active{background:var(--red); border-color:var(--red); color:#fff;}
.practice-nav a.is-active .pn{color:#fff;}
.area{padding:26px 0; border-bottom:1px solid var(--line); scroll-margin-top:calc(var(--header-h) + 64px);}
.area:first-child{padding-top:4px;}
.area-no{margin:0 0 4px; font-family:var(--serif); font-weight:700; font-size:15px; color:var(--red);}
.area h2{font-size:clamp(24px,4.4vw,32px); margin-bottom:14px;}
.area-body p{font-size:15.5px; color:var(--slate);}
.area-body p:last-child{margin:0;}
@media (min-width:1000px){
  .practice-layout{grid-template-columns:280px 1fr; gap:44px; align-items:start;}
  .practice-nav{top:calc(var(--navbar-h) + 16px); margin:0; padding:0; border:0; background:var(--navy); border-radius:4px; overflow:hidden;}
  .practice-nav-title{display:block; margin:0; padding:14px 18px; font-size:12.5px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:#fff; background:var(--red);}
  .practice-nav ul{display:block; padding:6px 0;}
  .practice-nav a{display:flex; align-items:baseline; min-height:0; padding:10px 18px; white-space:normal; border:0; border-radius:0; background:none; color:var(--on-dark); font-size:14px; line-height:1.4;}
  .practice-nav .pn{color:#FF8A80;}
  .practice-nav a:hover{background:var(--navy-2); color:#fff;}
  .practice-nav a.is-active{background:var(--navy-2); color:#fff; box-shadow:inset 4px 0 0 var(--red);}
  .practice-nav a.is-active .pn{color:#FF8A80;}
  .area{scroll-margin-top:calc(var(--navbar-h) + 16px);}
  .area-body p{text-align:justify; hyphens:auto;}
}

/* ---------- Where We Represent ---------- */
.forum-grid{list-style:none; display:grid; grid-template-columns:1fr 1fr; gap:10px;}
.forum{display:flex; flex-direction:column; gap:4px; padding:16px 16px 14px; background:#fff; border-radius:4px; border-top:4px solid var(--red); color:var(--ink);}
.forum-abbr{font-family:var(--serif); font-weight:700; font-size:28px; line-height:1; color:var(--red);}
.forum-name{font-weight:700; font-size:14px; line-height:1.4;}
.forum-scope{font-size:13px; color:var(--slate); line-height:1.45;}
.forum-text{justify-content:center;}
.forum-text .forum-name{font-family:var(--serif); font-size:19px; line-height:1.25;}
.home-sec-forums .forum{background:var(--navy-2); color:#fff; border-top-color:var(--red);}
.home-sec-forums .forum-abbr{color:#fff;}
.home-sec-forums .forum-scope{color:var(--on-dark-muted);}
@media (min-width:1000px){.forum-grid{grid-template-columns:repeat(4,1fr); gap:14px;} .forum{padding:20px 20px 18px;} .forum-abbr{font-size:32px;}}

/* ---------- How We Do ---------- */
.how-layout{display:grid; gap:24px; align-items:start;}
.stages{list-style:none; display:grid; gap:10px; counter-reset:none;}
.stage{position:relative; display:grid; grid-template-columns:52px 1fr; column-gap:14px; padding:18px 18px 16px; background:#fff; border:1px solid var(--line); border-radius:4px;}
.stage-no{grid-row:span 2; display:flex; align-items:center; justify-content:center; width:48px; height:48px; border-radius:50%; background:var(--red); color:#fff; font-family:var(--serif); font-weight:700; font-size:18px;}
.stage-title{font-size:22px; color:var(--ink); display:flex; flex-wrap:wrap; align-items:baseline; gap:2px 10px;}
.stage-title span{font-family:var(--sans); font-size:12px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:var(--red);}
.stage p{margin:6px 0 0; font-size:15px; color:var(--slate);}
.how-photo{max-width:360px;}
.how-photo img{width:100%; border-radius:4px;}
.how-photo figcaption{margin-top:10px; font-size:13.5px; color:var(--slate);}
@media (min-width:800px){.stages{grid-template-columns:1fr 1fr; gap:14px;}}
@media (min-width:1000px){.how-layout{grid-template-columns:1fr 300px; gap:32px;} .how-photo{position:sticky; top:calc(var(--navbar-h) + 16px);}}

/* ---------- Our Team ---------- */
.team-block + .team-block{margin-top:36px;}
.mentors{background:var(--navy); color:#fff; padding:24px 20px; border-radius:4px;}
.mentors .block-title{color:#fff;}
.mentor-list{list-style:none; display:grid; gap:18px;}
.mentor{display:grid; grid-template-columns:88px 1fr; gap:16px; align-items:start;}
.mentor-photo{aspect-ratio:1/1; border-radius:50%; overflow:hidden; border:3px solid var(--red);}
.mentor-photo img,.person-photo img,.assoc-photo img{width:100%; height:100%; object-fit:cover;}
.mentor h3{font-size:21px; margin-bottom:6px; color:#fff;}
.mentor p{font-size:14.5px; color:var(--on-dark); margin:0;}
.mentor strong{color:#fff;}
.people{list-style:none; display:grid; grid-template-columns:repeat(2,1fr); gap:14px;}
.people + .people{margin-top:14px;}
.person{background:#fff; border:1px solid var(--line); border-radius:4px; overflow:hidden; transition:box-shadow .2s ease;}
.person:hover{box-shadow:0 14px 30px rgba(17,26,39,.1);}
.person-photo{aspect-ratio:4/4.4; overflow:hidden; background:var(--mist);}
.person-photo img{object-position:50% 18%; transition:transform .4s ease;}
.person:hover .person-photo img{transform:scale(1.04);}
.person h4{font-size:17px; line-height:1.25; padding:12px 14px 0;}
.person-role{margin:4px 0 0; padding:0 14px 14px; font-size:11.5px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--red);}
.assoc-list{list-style:none; display:grid; gap:10px;}
.assoc{display:grid; grid-template-columns:64px 1fr; gap:14px; align-items:center; padding:12px 14px; background:#fff; border:1px solid var(--line); border-radius:4px;}
.assoc-photo{aspect-ratio:1/1; border-radius:50%; overflow:hidden;}
.assoc h4{font-size:17px;}
.assoc .person-role{padding:0; margin-top:2px;}
.assoc-office{margin:3px 0 0; font-size:13px; color:var(--slate); line-height:1.45;}
.why{background:#fff; border:1px solid var(--line); border-radius:4px; padding:24px 20px;}
.why-list{list-style:none; display:grid; gap:12px;}
.why-list li{position:relative; padding-left:30px; font-size:15px; color:var(--slate);}
.why-list li::before{content:""; position:absolute; left:0; top:3px; width:20px; height:20px; border-radius:50%; background:var(--red) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M5.5 10.5l3 3 6-7' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/14px no-repeat;}
@media (min-width:700px){
  .people-partners{grid-template-columns:repeat(3,1fr);}
  .people-associates{grid-template-columns:repeat(4,1fr);}
  .assoc-list{grid-template-columns:1fr 1fr;}
  .mentor-list{grid-template-columns:1fr 1fr; gap:24px;}
  .mentors,.why{padding:28px 30px;}
}
@media (min-width:1000px){
  .team-body .wrap,.home-sec-team > .wrap:last-child{display:grid; grid-template-columns:1fr; }
  .people-partners{grid-template-columns:repeat(3,1fr); gap:16px;}
  .people-partners .person-photo{aspect-ratio:4/3.6;}
  .assoc-list{grid-template-columns:repeat(4,1fr); gap:12px;}
  .assoc{grid-template-columns:1fr; justify-items:center; text-align:center; padding:18px 14px;}
  .assoc-photo{width:84px;}
  .why-list{grid-template-columns:1fr 1fr; gap:14px 36px;}
}

/* ---------- Contact ---------- */
.contact-layout{display:grid; gap:24px; align-items:start;}
.contact-list{margin:0 0 16px; display:grid; gap:0; background:var(--navy); color:#fff; border-radius:4px; padding:6px 20px;}
.contact-list > div{display:grid; grid-template-columns:70px 1fr; gap:12px; padding:14px 0; border-bottom:1px solid var(--line-dk);}
.contact-list > div:last-child{border-bottom:0;}
.contact-list dt{font-size:12px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:#FF8A80; padding-top:3px;}
.contact-list dd{margin:0; font-size:16px; line-height:1.55; color:#fff;}
.contact-list a{color:#fff; text-decoration:none; display:inline-block; padding:2px 0;}
.contact-list a:hover{text-decoration:underline;}
.map-card{display:flex; flex-direction:column; border:1px solid var(--line); border-radius:4px; overflow:hidden; text-decoration:none; color:inherit; background:#fff; transition:box-shadow .2s ease;}
.map-card:hover{box-shadow:0 14px 30px rgba(17,26,39,.1);}
.map-art{position:relative; display:block; height:190px; background:var(--mist); overflow:hidden;}
.map-art img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:30% 25%;}
.map-credit{position:absolute; right:8px; bottom:8px; font-size:10px; color:#5f6368; background:rgba(255,255,255,.85); padding:3px 6px;}
.map-info{display:flex; justify-content:space-between; align-items:center; gap:14px; padding:12px 16px; border-top:1px solid var(--line);}
.map-title{display:block; font-family:var(--serif); font-weight:700; font-size:17px;}
.map-addr{display:block; font-size:12.5px; color:var(--slate);}
.map-cta{font-size:13px; font-weight:700; color:var(--red); white-space:nowrap;}
.office-strip{display:grid; grid-template-columns:1fr 1fr 1fr; gap:8px; margin-top:24px;}
.office-strip img{width:100%; aspect-ratio:1/1; object-fit:cover; border-radius:4px;}
.office-strip figure:first-child img{object-position:50% 70%;}
.office-strip figcaption{grid-column:1 / -1; font-size:13px; color:var(--slate);}
@media (min-width:1000px){
  .contact-layout{grid-template-columns:.85fr 1.15fr; gap:32px;}
  .office-strip{grid-template-columns:2fr 1fr 1fr; gap:12px;}
  .office-strip img{aspect-ratio:auto; height:240px;}
}

/* Contact form */
.vgnc-form-card{background:#fff; border:1px solid var(--line); border-top:5px solid var(--red); border-radius:4px; padding:22px 18px; box-shadow:0 18px 40px rgba(17,26,39,.08);}
.vgnc-form-title{font-size:24px; margin-bottom:14px;}
.vgnc-form .vgnc-row{display:grid; gap:0 14px;}
.vgnc-field{margin-bottom:12px;}
.vgnc-field label{display:block; font-size:13px; font-weight:700; margin-bottom:5px;}
.vgnc-field label span{color:var(--red);}
.vgnc-field input,.vgnc-field select,.vgnc-field textarea{width:100%; min-height:46px; padding:10px 12px; font:inherit; font-size:16px; color:var(--ink); background:var(--mist); border:1px solid transparent; border-radius:3px; transition:border-color .15s ease, background .15s ease, box-shadow .15s ease;}
.vgnc-field textarea{resize:vertical; min-height:110px;}
.vgnc-field input:focus,.vgnc-field select:focus,.vgnc-field textarea:focus{outline:none; background:#fff; border-color:var(--red); box-shadow:0 0 0 3px rgba(204,40,29,.12);}
.vgnc-field .is-invalid{border-color:var(--red); background:#fff;}
.vgnc-check{display:flex; gap:10px; align-items:flex-start; margin:4px 0 16px; font-size:13px; color:var(--slate);}
.vgnc-check input{width:19px; height:19px; margin-top:2px; flex:0 0 auto; accent-color:var(--red);}
.vgnc-submit{width:100%;}
.vgnc-submit[disabled]{opacity:.6; cursor:wait;}
.vgnc-hp{position:absolute!important; left:-9999px; width:1px; height:1px; overflow:hidden;}
.vgnc-form-msg{padding:10px 14px; margin-bottom:14px; font-size:14px; border-left:3px solid var(--red); background:rgba(204,40,29,.06); border-radius:2px;}
.vgnc-form-msg[data-state="sent"]{border-color:#2E7D4F; background:rgba(46,125,79,.1);}
@media (min-width:600px){.vgnc-form .vgnc-row{grid-template-columns:1fr 1fr;} .vgnc-form-card{padding:28px 28px;} .vgnc-submit{width:auto;}}

/* ---------- CTA band ---------- */
.cta-band{background:var(--red); color:#fff; padding:26px 0;}
.cta-inner{display:grid; gap:14px; align-items:center;}
.cta-text{margin:0; font-family:var(--serif); font-weight:700; font-size:clamp(22px,4vw,30px); line-height:1.2;}
.cta-actions{display:flex; flex-wrap:wrap; gap:10px;}
.cta-band .btn{background:#fff; color:var(--red); border-color:#fff;}
.cta-band .btn:hover{background:var(--navy); color:#fff; border-color:var(--navy);}
.cta-band .btn-outline{background:transparent; color:#fff; border-color:rgba(255,255,255,.7);}
.cta-band .btn-outline:hover{background:#fff; color:var(--red);}
@media (min-width:900px){.cta-band{padding:30px 0;} .cta-inner{grid-template-columns:1fr auto;}}

/* ---------- Plain pages / blog ---------- */
.page-plain{padding:40px 0 56px;}
.page-title{font-size:clamp(30px,6vw,44px); margin-bottom:18px;}
.entry-content{font-size:16.5px;}
.entry-content a{color:var(--red);}
.entry-content h2{font-size:28px; margin:1.3em 0 .5em;}
.entry-content h3{font-size:22px; margin:1.2em 0 .4em;}
.post-meta{font-size:13px; color:var(--slate);}
.post-item{padding:20px 0; border-bottom:1px solid var(--line);}
.post-item h2{font-size:24px;}
.post-item h2 a{text-decoration:none;}
.vgnc-elementor-page .site-main > .elementor{margin:0;}

/* ---------- Footer ---------- */
.site-footer{background:var(--navy); color:var(--on-dark-muted); padding:36px 0 0; font-size:14.5px; border-top:4px solid var(--red);}
.site-footer a{color:var(--on-dark); text-decoration:none;}
.site-footer a:hover{color:#fff; text-decoration:underline;}
.site-footer .brand{display:inline-flex; background:#fff; padding:10px 16px 11px; border-radius:3px;}
.footer-inner{display:grid; gap:26px;}
.footer-brand address{margin-top:14px; line-height:1.65;}
.footer-title{font-family:var(--sans); font-size:12px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:#fff; margin:0 0 10px;}
.footer-links ul{list-style:none; display:grid; grid-template-columns:1fr 1fr; gap:2px 20px;}
.footer-links a{display:inline-block; padding:4px 0;}
.footer-contact{display:flex; flex-direction:column; gap:6px;}
.footer-base{display:flex; flex-wrap:wrap; justify-content:space-between; gap:6px 24px; margin-top:28px; padding-top:14px; padding-bottom:18px; border-top:1px solid var(--line-dk); font-size:12.5px;}
@media (min-width:900px){.footer-inner{grid-template-columns:1fr 1.3fr .9fr; gap:48px;}}

@media (max-width:480px){.brand-name{font-size:26px;} .brand-tag{font-size:12.5px; margin-left:1em;}}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto;} *{transition:none!important;}}
