/* Nuvira Global - design system v3 (deck palette: Montserrat / Open Sans) */
:root{
  --navy:#0A192F;
  --navy-mid:#13284A;
  --ink:#2A3648;
  --gold:#C5A059;
  --gold-soft:#D4B478;
  --bronze:#8C5425;
  --sand:#E2D3AE;
  --cream:#F1EBDD;
  --paper:#F6F7F9;
  --white:#FFFFFF;
  --slate:#52627A;
  --slate-lt:#8A97A8;
  --mist:#C7D1DF;
  --head:'Montserrat', -apple-system, sans-serif;
  --body:'Open Sans', -apple-system, sans-serif;
  --max:1180px;
  --r-card:16px;
  --r-img:24px;
  --shadow:0 14px 40px rgba(10,25,47,.10);
  --shadow-sm:0 6px 18px rgba(10,25,47,.08);
}
*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  *,*::before,*::after{animation:none!important;transition:none!important;}
}
body{
  font-family:var(--body);
  color:var(--ink);
  background:var(--white);
  line-height:1.7;
  font-size:16.5px;
  -webkit-font-smoothing:antialiased;
}
a{color:inherit;}
img{max-width:100%;}
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible, summary:focus-visible{
  outline:2px solid var(--gold); outline-offset:3px;
}
.wrap{max-width:var(--max); margin:0 auto; padding-left:32px; padding-right:32px;}
@media(max-width:640px){ .wrap{padding-left:20px; padding-right:20px;} body{font-size:15.5px;} }

.skip-link{
  position:absolute; left:-9999px; top:0; z-index:300;
  background:var(--gold); color:var(--navy);
  font-family:var(--head); font-weight:600; font-size:13px; padding:10px 18px;
}
.skip-link:focus{left:0;}

/* ---- type ---- */
h1,h2,h3,h4{font-family:var(--head); color:var(--navy);}
h2{font-weight:700; font-size:clamp(26px, 3vw, 38px); line-height:1.25; letter-spacing:-.01em; max-width:28ch; text-wrap:balance;}
.on-dark h2{color:var(--white);}
.eyebrow{
  font-family:var(--head); font-weight:600;
  font-size:12.5px; letter-spacing:.24em; text-transform:uppercase;
  color:var(--bronze);
  display:flex; align-items:center; gap:14px;
  margin-bottom:20px;
}
.eyebrow::before{content:""; height:2px; width:34px; background:var(--gold); border-radius:2px;}
.on-dark .eyebrow{color:var(--gold);}
.sub{color:var(--slate); margin-top:16px; max-width:60ch; font-size:17px;}
.on-dark .sub{color:var(--mist);}
.sec-head{margin-bottom:20px;}

/* ---- header ---- */
header.site{
  background:var(--white);
  position:sticky; top:0; z-index:100;
  border-bottom:1px solid rgba(82,98,122,.16);
  box-shadow:0 2px 14px rgba(10,25,47,.05);
}
.nav{display:flex; align-items:center; justify-content:space-between; padding:14px 0; gap:24px;}
.lockup{display:flex; align-items:center; gap:12px; text-decoration:none; flex:0 0 auto;}
.lockup svg{height:38px; width:auto; display:block;}
.lockup-text b{
  display:block; font-family:var(--head); font-weight:700; color:var(--navy);
  letter-spacing:.3em; font-size:15px; line-height:1;
}
.lockup-text span{
  display:block; font-family:var(--head); font-weight:500; color:var(--slate);
  letter-spacing:.4em; font-size:9px; margin-top:4px; line-height:1;
}
footer.site .lockup-text b{color:var(--cream);}
footer.site .lockup-text span{color:var(--slate-lt);}
nav.links{display:flex; gap:26px; align-items:center;}
nav.links > a, .dd > a{
  color:var(--ink); text-decoration:none;
  font-family:var(--head); font-weight:500; font-size:14px;
  padding-bottom:4px;
  background-image:linear-gradient(var(--gold),var(--gold));
  background-repeat:no-repeat; background-position:0 100%; background-size:0% 2px;
  transition:color .2s, background-size .3s ease;
}
nav.links > a:hover, nav.links > a[aria-current="page"], .dd > a:hover{color:var(--navy); background-size:100% 2px;}
.nav-cta{
  font-family:var(--head); font-weight:600; font-size:13.5px;
  color:var(--navy)!important; background:var(--gold);
  padding:11px 22px; text-decoration:none; border-radius:999px;
  background-image:none!important;
  transition:background-color .2s, transform .15s;
}
.nav-cta:hover{background-color:var(--gold-soft); transform:translateY(-1px);}

.dd{position:relative;}
.dd-menu{position:absolute; top:100%; left:-20px; padding-top:16px; display:none; min-width:320px;}
.dd:hover .dd-menu, .dd:focus-within .dd-menu{display:block;}
.dd-inner{
  background:var(--white);
  border:1px solid rgba(82,98,122,.18);
  border-radius:14px; box-shadow:var(--shadow);
  padding:10px 0; overflow:hidden;
}
.dd-inner a{
  display:block; padding:11px 22px;
  color:var(--ink); text-decoration:none; font-size:14px;
  transition:color .15s, background .15s;
}
.dd-inner a:hover{color:var(--navy); background:var(--paper);}
.dd-inner a span{
  font-family:var(--head); font-weight:600; font-size:10.5px; color:var(--bronze);
  margin-right:10px;
}

.nav-toggle{display:none;}
.nav-toggle-label{display:none; cursor:pointer; padding:8px;}
.nav-toggle-label span{display:block; width:24px; height:2px; background:var(--navy); margin:5px 0;}
@media(max-width:960px){
  nav.links{
    display:none;
    position:absolute; top:100%; left:0; right:0;
    background:var(--white);
    flex-direction:column; align-items:flex-start;
    padding:18px 32px 26px; gap:16px;
    border-bottom:1px solid rgba(82,98,122,.18);
    box-shadow:var(--shadow);
  }
  .nav-toggle:checked ~ nav.links{display:flex;}
  .nav-toggle-label{display:block;}
  .dd-menu{position:static; display:block; padding:8px 0 0 6px; min-width:0;}
  .dd-inner{background:none; border:none; box-shadow:none; padding:0;}
  .dd-inner a{padding:7px 0;}
}

/* ---- hero ---- */
.hero{
  background:linear-gradient(165deg, var(--navy-mid) 0%, var(--navy) 62%);
  color:var(--cream);
  position:relative; overflow:hidden;
  padding-top:84px; padding-bottom:0;
}
.hero::before{
  content:""; position:absolute; inset:0;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='72' height='52'%3E%3Cpath d='M0 36 L18 8 L36 36' fill='none' stroke='%23F1EBDD' stroke-width='1'/%3E%3Cpath d='M36 52 L54 24 L72 52' fill='none' stroke='%23C5A059' stroke-width='1'/%3E%3C/svg%3E");
  background-size:72px 52px; opacity:.05; pointer-events:none;
}
.hero-grid{
  position:relative; z-index:1;
  display:grid; grid-template-columns:minmax(0,6fr) minmax(0,5fr);
  gap:56px; align-items:center; padding-bottom:64px;
}
.hero-eyebrow{
  font-family:var(--head); font-weight:600; font-size:12px; letter-spacing:.28em;
  color:var(--gold); margin-bottom:28px;
  display:flex; flex-wrap:wrap; gap:6px 12px; text-transform:uppercase;
}
.hero-eyebrow .sep{color:var(--slate-lt);}
.hero h1, .page-hero h1{
  font-family:var(--head); font-weight:700; color:var(--white);
  font-size:clamp(34px, 4.6vw, 56px);
  line-height:1.16; letter-spacing:-.015em; max-width:18ch; text-wrap:balance;
}
.hero h1 em{font-style:normal; color:var(--gold);}
.hero p.lede{max-width:56ch; margin-top:24px; color:var(--mist); font-size:18px; line-height:1.75;}
.hero-actions{margin-top:38px; display:flex; gap:16px; flex-wrap:wrap; align-items:center;}
.btn-gold{
  font-family:var(--head); font-weight:600; font-size:14px;
  background:var(--gold); color:var(--navy); text-decoration:none;
  padding:15px 32px; display:inline-block; border:none; cursor:pointer; border-radius:999px;
  transition:background-color .2s, transform .15s, box-shadow .2s;
}
.btn-gold:hover{background-color:var(--gold-soft); transform:translateY(-2px); box-shadow:0 10px 26px rgba(197,160,89,.35);}
.btn-ghost{
  font-family:var(--head); font-weight:600; font-size:14px;
  color:var(--cream); text-decoration:none;
  padding:15px 32px; border:1.5px solid rgba(241,235,221,.4); border-radius:999px;
  display:inline-block;
  transition:border-color .2s, color .2s, transform .15s;
}
.btn-ghost:hover{border-color:var(--gold); color:var(--gold); transform:translateY(-2px);}
.btn-navy{
  font-family:var(--head); font-weight:600; font-size:14px;
  background:var(--navy); color:var(--cream); text-decoration:none;
  padding:15px 32px; display:inline-block; border-radius:999px;
  transition:background-color .2s, transform .15s;
}
.btn-navy:hover{background-color:var(--navy-mid); transform:translateY(-2px);}

.hero-media{position:relative;}
.hero-media img{
  display:block; width:100%; height:auto;
  border-radius:var(--r-img);
  border:1px solid rgba(197,160,89,.35);
  box-shadow:0 24px 60px rgba(0,0,0,.35);
}
.hero-badge{
  position:absolute; left:-18px; bottom:-18px;
  background:var(--white); border-radius:14px; box-shadow:var(--shadow);
  display:flex; align-items:center; gap:12px;
  padding:14px 20px 14px 14px;
}
.hero-badge svg{height:34px; width:auto;}
.hero-badge b{display:block; font-family:var(--head); font-weight:700; font-size:14px; color:var(--navy); line-height:1.2;}
.hero-badge span{font-size:12px; color:var(--slate);}

.practice-strip{
  position:relative; z-index:1;
  display:flex; flex-wrap:wrap; gap:8px;
  padding:18px 0 26px;
  border-top:1px solid rgba(197,160,89,.3);
}
.practice-strip a{
  font-family:var(--head); font-weight:500; font-size:12.5px;
  color:var(--mist); text-decoration:none;
  padding:8px 16px; border:1px solid rgba(138,151,168,.35); border-radius:999px;
  transition:color .2s, border-color .2s, background .2s;
}
.practice-strip a:hover{color:var(--navy); background:var(--gold); border-color:var(--gold);}
@media(max-width:900px){
  .hero{padding-top:56px;}
  .hero-grid{grid-template-columns:1fr; gap:40px; padding-bottom:48px;}
  .hero-badge{left:12px; bottom:-16px;}
}

/* page hero (inner) */
.page-hero{
  background:linear-gradient(165deg, var(--navy-mid) 0%, var(--navy) 62%);
  color:var(--cream); position:relative; overflow:hidden;
}
.page-hero::before{
  content:""; position:absolute; inset:0;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='72' height='52'%3E%3Cpath d='M0 36 L18 8 L36 36' fill='none' stroke='%23F1EBDD' stroke-width='1'/%3E%3Cpath d='M36 52 L54 24 L72 52' fill='none' stroke='%23C5A059' stroke-width='1'/%3E%3C/svg%3E");
  background-size:72px 52px; opacity:.05; pointer-events:none;
}
.page-hero .wrap{position:relative; z-index:1; padding-top:68px; padding-bottom:60px;}
.page-hero p{max-width:58ch; margin-top:20px; color:var(--mist); font-size:17.5px;}
.phero-grid{display:grid; grid-template-columns:minmax(0,8fr) minmax(0,3fr); gap:40px; align-items:center;}
.phero-art{display:flex; justify-content:center;}
.p-icon{display:block; width:40px; height:40px;}
.p-icon path{fill:none; stroke:var(--gold); stroke-width:2; stroke-linecap:square; stroke-linejoin:miter;}
.p-icon.xl{width:150px; height:150px; opacity:.9;}
.p-icon.xl path{stroke-width:1.4;}
.p-icon.sm{width:30px; height:30px; flex:0 0 auto;}
.pain-lede{
  font-size:19px; color:var(--sand); font-weight:400;
  border-left:3px solid var(--gold); padding-left:18px; margin-top:22px; max-width:52ch; line-height:1.65;
}
@media(max-width:800px){ .phero-grid{grid-template-columns:1fr;} .phero-art{display:none;} }

/* ---- sections / bands ---- */
section{padding-top:88px; padding-bottom:88px;}
@media(max-width:640px){section{padding-top:60px; padding-bottom:60px;}}
.band-paper{background:var(--paper);}
.band-navy{background:linear-gradient(165deg, var(--navy-mid) 0%, var(--navy) 62%); color:var(--cream);}
.stats-light{background:var(--cream); padding-top:44px; padding-bottom:44px;}

/* ---- cards ---- */
.card-grid{display:grid; gap:26px; margin-top:48px;}
.g3{grid-template-columns:repeat(3,1fr);}
.g2{grid-template-columns:repeat(2,1fr);}
@media(max-width:980px){ .g3{grid-template-columns:1fr;} .g2{grid-template-columns:1fr;} }
.card{
  background:var(--white);
  border:1px solid rgba(82,98,122,.16);
  border-radius:var(--r-card);
  padding:32px 28px;
  box-shadow:var(--shadow-sm);
  transition:transform .22s ease, box-shadow .22s ease;
}
.card:hover{transform:translateY(-5px); box-shadow:var(--shadow);}
.card h3{font-weight:600; font-size:19px; margin-bottom:10px;}
.card p{font-size:15px; color:var(--slate); line-height:1.7;}
.card .tag{
  font-family:var(--head); font-weight:600; font-size:11px; letter-spacing:.2em;
  text-transform:uppercase; color:var(--bronze); display:block; margin-bottom:12px;
}
.on-dark .card{background:rgba(246,247,249,.05); border-color:rgba(138,151,168,.3); box-shadow:none;}
.on-dark .card h3{color:var(--white);}
.on-dark .card p{color:var(--mist);}
.on-dark .card .tag{color:var(--gold);}
.card.client{border-top:3px solid var(--gold);}

/* practice cards */
a.pcard{
  display:flex; flex-direction:column; text-decoration:none;
  background:var(--white);
  border:1px solid rgba(82,98,122,.16);
  border-radius:var(--r-card); overflow:hidden;
  box-shadow:var(--shadow-sm);
  transition:transform .22s ease, box-shadow .22s ease, border-color .22s;
}
a.pcard:hover{transform:translateY(-6px); box-shadow:var(--shadow); border-color:rgba(197,160,89,.6);}
.pcard-art{
  background:linear-gradient(150deg, var(--navy-mid) 0%, var(--navy) 70%);
  min-height:110px; display:flex; align-items:center; justify-content:center;
  position:relative;
}
.pcard-art::after{
  content:""; position:absolute; inset:0;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='48' height='36'%3E%3Cpath d='M0 26 L12 6 L24 26' fill='none' stroke='%23C5A059' stroke-width='.8'/%3E%3C/svg%3E");
  background-size:48px 36px; opacity:.08;
}
.pcard-art .p-icon{width:46px; height:46px; position:relative; z-index:1;}
.pcard-body{padding:26px 26px 28px; display:flex; flex-direction:column; flex:1;}
.pnum-sm{
  font-family:var(--head); font-weight:600; font-size:11px; letter-spacing:.2em;
  color:var(--bronze); margin-bottom:8px; display:block;
}
a.pcard h3{font-weight:600; font-size:18.5px; margin-bottom:8px;}
a.pcard p{font-size:14.5px; color:var(--slate); line-height:1.65; flex:1;}
a.pcard .more{
  font-family:var(--head); font-weight:600; font-size:12.5px;
  color:var(--bronze); margin-top:18px;
}
a.pcard .more::after{content:" \2192"; display:inline-block; transition:transform .2s;}
a.pcard:hover .more::after{transform:translateX(4px);}
a.pcard.person img{display:block; width:100%; height:230px; object-fit:cover; object-position:top;}
a.pcard.person .person-mark{
  height:230px; background:linear-gradient(150deg, var(--navy-mid), var(--navy));
  display:flex; align-items:center; justify-content:center;
}
a.pcard.person .person-mark svg{width:72px; height:85px; opacity:.9;}
a.pcard.mini{flex-direction:row; align-items:center; gap:18px; padding:22px 24px;}
a.pcard.mini h3{font-size:16px; margin:0;}
a.pcard.mini .pnum-sm{margin-bottom:4px;}

/* ---- stats ---- */
.stats-band{display:grid; grid-template-columns:repeat(4,1fr); gap:28px;}
@media(max-width:820px){ .stats-band{grid-template-columns:repeat(2,1fr); gap:30px 20px;} }
.stat b{
  display:block; font-family:var(--head); font-weight:700;
  font-size:clamp(30px, 3.4vw, 44px); color:var(--navy); line-height:1.05; letter-spacing:-.01em;
}
.on-dark .stat b{color:var(--white);}
.stat span{
  font-size:13px; color:var(--slate); display:block; margin-top:10px; line-height:1.6; max-width:26ch;
}
.on-dark .stat span{color:var(--mist);}
.band-navy .stats-band{margin-top:48px;}
.stat{position:relative; padding-top:14px;}
.stat::before{content:""; position:absolute; top:0; left:0; width:28px; height:3px; background:var(--gold); border-radius:2px;}

.investor-strip{margin-top:52px; padding-top:28px; border-top:1px solid rgba(197,160,89,.35);}
.list-label{
  font-family:var(--head); font-weight:600; font-size:12px; letter-spacing:.22em;
  text-transform:uppercase; color:var(--navy);
  padding-bottom:10px; margin-bottom:8px; border-bottom:2px solid var(--gold); display:inline-block;
}
.list-label.gold{color:var(--gold); border:none; padding:0; margin-bottom:12px; display:block;}
.list-label.second{margin-top:26px;}
.investor-strip p{font-size:15px; letter-spacing:.04em; color:var(--mist); line-height:2.1;}
.investor-strip p b{color:var(--white); font-weight:600;}

/* ---- principles / timeline ---- */
.principles{display:grid; grid-template-columns:repeat(4,1fr); gap:38px 30px; margin-top:52px;}
@media(max-width:980px){ .principles{grid-template-columns:repeat(2,1fr);} }
@media(max-width:600px){ .principles{grid-template-columns:1fr;} }
.principle .num{
  font-family:var(--head); font-weight:600; font-size:12.5px; color:var(--gold);
  letter-spacing:.12em; display:block; margin-bottom:12px;
  padding-bottom:10px; border-bottom:1px solid rgba(197,160,89,.4);
}
.principle h3{font-weight:600; font-size:18px; margin-bottom:8px; color:var(--white);}
.principle p{font-size:14.5px; color:var(--mist); line-height:1.7;}

.timeline{display:grid; grid-template-columns:repeat(4,1fr); gap:0; margin-top:56px; position:relative;}
.timeline::before{
  content:""; position:absolute; top:7px; left:0; right:0; height:2px;
  background:linear-gradient(90deg, var(--gold) 0%, rgba(197,160,89,.2) 100%);
}
.tstage{padding-right:28px; position:relative;}
.tstage::before{
  content:""; position:absolute; top:0; left:0; width:16px; height:16px;
  background:var(--paper); border:2.5px solid var(--gold); border-radius:50%;
}
.timeline.dark .tstage::before{background:var(--navy);}
.tstage .num{
  font-family:var(--head); font-weight:600; font-size:11.5px; color:var(--bronze);
  letter-spacing:.18em; text-transform:uppercase; display:block; margin:32px 0 8px;
}
.timeline.dark .tstage .num{color:var(--gold);}
.tstage h3{font-weight:600; font-size:18.5px; margin-bottom:8px;}
.timeline.dark .tstage h3{color:var(--white);}
.tstage p{font-size:14.5px; color:var(--slate); line-height:1.65;}
.timeline.dark .tstage p{color:var(--mist);}
@media(max-width:820px){
  .timeline{grid-template-columns:1fr; gap:34px;}
  .timeline::before{display:none;}
  .tstage{padding:0 0 0 30px;}
  .tstage::before{top:2px;}
  .tstage .num{margin-top:0;}
}

/* ---- where ---- */
.where-grid{display:grid; grid-template-columns:minmax(0,6fr) minmax(0,5fr); gap:56px; align-items:center;}
@media(max-width:900px){ .where-grid{grid-template-columns:1fr;} }
.where-cols{display:grid; grid-template-columns:1fr 1fr; gap:32px; margin-top:34px;}
@media(max-width:560px){ .where-cols{grid-template-columns:1fr;} }
.on-dark .list-label{color:var(--white); border-color:var(--gold);}
.ledger-list{list-style:none; margin-top:8px;}
.ledger-list li{
  padding:10px 2px; border-bottom:1px solid rgba(138,151,168,.28);
  display:flex; gap:12px; align-items:baseline; font-size:15px;
}
.on-dark .ledger-list li{color:var(--mist);}
.ledger-list li::before{content:"\25C6"; color:var(--gold); font-size:7px; flex:0 0 auto; transform:translateY(-2px);}
.where-media img{
  display:block; width:100%; height:100%; min-height:380px; object-fit:cover; object-position:center 30%;
  border-radius:var(--r-img); border:1px solid rgba(197,160,89,.35);
  box-shadow:0 24px 60px rgba(0,0,0,.35);
}

/* ---- team ---- */
.team-grid{display:grid; grid-template-columns:minmax(0,5fr) minmax(0,7fr); gap:56px; align-items:start;}
@media(max-width:900px){ .team-grid{grid-template-columns:1fr;} }
.team-cards{margin-top:0;}
.founder-grid{display:grid; grid-template-columns:minmax(0,5fr) minmax(0,7fr); gap:64px; align-items:start;}
@media(max-width:860px){ .founder-grid{grid-template-columns:1fr; gap:40px;} }
h2.tight{margin-top:0;}
.cred{
  font-family:var(--head); font-weight:600; font-size:12.5px; letter-spacing:.18em;
  text-transform:uppercase; color:var(--bronze); margin-top:10px;
}
.founder-portrait{display:block; max-width:300px; text-decoration:none; margin-top:32px;}
.fp-frame{
  position:relative; display:block; border-radius:var(--r-img); overflow:hidden;
  border:2px solid var(--gold); background:var(--navy);
  box-shadow:var(--shadow);
  transition:transform .25s ease, box-shadow .25s ease;
}
.fp-frame img{display:block; width:100%; height:auto;}
.founder-portrait:hover .fp-frame{transform:translateY(-4px); box-shadow:0 22px 50px rgba(10,25,47,.22);}
.fp-caption{
  display:flex; align-items:center; gap:10px; margin-top:14px;
  font-family:var(--head); font-weight:600; font-size:12px; letter-spacing:.16em;
  text-transform:uppercase; color:var(--bronze);
}
.fp-caption::after{content:"\2197"; font-size:14px; transition:transform .2s;}
.founder-portrait:hover .fp-caption::after{transform:translate(2px,-2px);}
.prose p + p{margin-top:18px;}
.prose strong{color:var(--navy); font-weight:600;}
.pull{font-family:var(--head); font-weight:600; font-size:21px; line-height:1.5; color:var(--navy);}
.chips{display:flex; flex-wrap:wrap; gap:10px; margin-top:24px;}
.chip{
  font-size:13px; color:var(--slate);
  border:1px solid rgba(82,98,122,.35); border-radius:999px; padding:7px 16px;
}
.exp-list{list-style:none; margin-top:26px;}
.exp-list li{
  display:grid; grid-template-columns:170px 1fr; gap:18px;
  padding:13px 0; border-bottom:1px solid rgba(82,98,122,.2); font-size:15px;
}
.exp-list li b{
  font-family:var(--head); font-weight:600; font-size:12.5px; letter-spacing:.06em;
  text-transform:uppercase; color:var(--navy); padding-top:2px;
}
@media(max-width:560px){ .exp-list li{grid-template-columns:1fr; gap:4px;} }

/* ---- practice pages ---- */
.practice-intro{padding-top:64px; padding-bottom:64px;}
.wrap.narrow{max-width:820px;}
.intro-text{font-size:19px; line-height:1.8; color:var(--ink);}
.scope-note{
  margin-top:22px; font-size:14px; color:var(--slate);
  background:var(--paper); border-left:3px solid var(--gold); border-radius:0 10px 10px 0;
  padding:14px 18px;
}
.offer-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:22px; margin-top:44px;}
@media(max-width:820px){ .offer-grid{grid-template-columns:1fr;} }
.offer{
  background:var(--white); border:1px solid rgba(82,98,122,.16); border-radius:var(--r-card);
  padding:26px 26px; box-shadow:var(--shadow-sm);
  border-left:3px solid var(--gold);
  transition:transform .2s ease, box-shadow .2s ease;
}
.offer:hover{transform:translateY(-4px); box-shadow:var(--shadow);}
.offer h3{font-weight:600; font-size:17px; margin-bottom:8px;}
.offer p{font-size:14.5px; color:var(--slate); line-height:1.7;}
.outcome-band{
  margin-top:40px; font-family:var(--head); font-weight:600; font-size:16px;
  color:var(--navy); background:var(--cream); border-radius:999px;
  padding:16px 28px; display:inline-block;
}
.outcome-band::before{content:"\2192  "; color:var(--bronze);}
.rel-grid{margin-top:40px;}

/* ---- FAQ ---- */
.faq-wrap{max-width:860px;}
.faq{
  background:var(--white); border:1px solid rgba(82,98,122,.16); border-radius:var(--r-card);
  box-shadow:var(--shadow-sm); margin-top:14px; overflow:hidden;
}
.faq summary{
  list-style:none; cursor:pointer;
  display:flex; align-items:center; gap:16px;
  font-family:var(--head); font-weight:600; font-size:16px; color:var(--navy);
  padding:20px 24px;
}
.faq summary::-webkit-details-marker{display:none;}
.fnum{
  font-family:var(--head); font-weight:600; font-size:12px; color:var(--bronze);
  letter-spacing:.1em; flex:0 0 auto;
}
.chev{margin-left:auto; width:10px; height:10px; border-right:2px solid var(--bronze); border-bottom:2px solid var(--bronze); transform:rotate(45deg); transition:transform .2s; flex:0 0 auto;}
.faq[open] .chev{transform:rotate(-135deg);}
.faq p{padding:0 24px 22px 24px; color:var(--slate); font-size:15px; line-height:1.75; max-width:70ch;}
.faq[open] summary{border-bottom:1px solid rgba(82,98,122,.12); margin-bottom:16px;}

/* ---- contact ---- */
.contact-grid{display:grid; grid-template-columns:minmax(0,7fr) minmax(0,5fr); gap:64px;}
@media(max-width:860px){ .contact-grid{grid-template-columns:1fr;} }
.form-panel{
  background:var(--white); border:1px solid rgba(82,98,122,.16); border-radius:var(--r-card);
  box-shadow:var(--shadow-sm); padding:38px 34px;
}
.form-grid{display:grid; grid-template-columns:1fr 1fr; gap:34px 26px;}
@media(max-width:640px){ .form-grid{grid-template-columns:1fr;} }
.field{position:relative;}
.field.full{grid-column:1 / -1;}
.field input, .field select, .field textarea{
  width:100%; border:none; background:transparent;
  border-bottom:1.5px solid rgba(82,98,122,.4);
  padding:12px 2px 10px;
  font-family:var(--body); font-size:16px; color:var(--ink);
  border-radius:0; transition:border-color .25s;
}
.field textarea{min-height:120px; resize:vertical;}
.field input:focus, .field select:focus, .field textarea:focus{outline:none; border-bottom-color:var(--gold);}
.field label{
  position:absolute; left:2px; top:12px; font-size:15px; color:var(--slate);
  pointer-events:none; transition:all .2s ease;
}
.field input:focus + label, .field input:not(:placeholder-shown) + label,
.field textarea:focus + label, .field textarea:not(:placeholder-shown) + label,
.field.select label{
  top:-12px; font-size:11px; font-family:var(--head); font-weight:600;
  letter-spacing:.14em; text-transform:uppercase; color:var(--bronze);
}
.field input::placeholder, .field textarea::placeholder{color:transparent;}
.field select{appearance:none; cursor:pointer;}
.field.select::after{content:"\25BE"; position:absolute; right:6px; top:12px; color:var(--slate); pointer-events:none;}
.form-panel .btn-gold{margin-top:36px;}
.contact-line{display:block; text-decoration:none; padding:20px 0; border-bottom:1px solid rgba(82,98,122,.22);}
.contact-line.last{border-bottom:none;}
.contact-line span{
  display:block; font-family:var(--head); font-weight:600; font-size:11px;
  letter-spacing:.2em; text-transform:uppercase; color:var(--bronze); margin-bottom:6px;
}
.contact-line b{font-family:var(--head); font-weight:600; font-size:17px; color:var(--navy); transition:color .2s;}
a.contact-line:hover b{color:var(--bronze);}
.addr{font-size:15px; color:var(--slate); line-height:1.8; margin-top:4px;}
.maplink{
  display:inline-block; margin-top:12px;
  font-family:var(--head); font-weight:600; font-size:12.5px; color:var(--bronze);
}

/* ---- CTA band ---- */
.cta-band{padding-top:72px; padding-bottom:72px;}
.cta-flex{display:flex; align-items:center; justify-content:space-between; gap:36px; flex-wrap:wrap;}
.cta-flex h2{max-width:24ch;}

/* ---- floating rail ---- */
.rail{
  position:fixed; right:18px; top:50%; transform:translateY(-50%); z-index:90;
  display:flex; flex-direction:column; gap:10px;
}
.rail a{
  width:44px; height:44px; border-radius:50%;
  background:var(--navy); border:1px solid rgba(197,160,89,.5);
  display:flex; align-items:center; justify-content:center;
  box-shadow:var(--shadow-sm);
  transition:background .2s, transform .15s;
}
.rail a:hover{background:var(--gold); transform:translateX(-3px);}
.rail svg{width:19px; height:19px; fill:var(--cream);}
.rail a:hover svg{fill:var(--navy);}
@media(max-width:900px){ .rail{display:none;} }

/* ---- footer ---- */
footer.site{
  background:var(--navy); color:var(--slate-lt);
  border-top:3px solid var(--gold);
  padding:60px 0 34px; font-size:14px;
}
.foot-grid{
  display:grid; grid-template-columns:2fr 1.2fr 1fr 1.4fr; gap:44px;
  padding-bottom:40px; margin-bottom:28px;
  border-bottom:1px solid rgba(138,151,168,.28);
}
@media(max-width:900px){ .foot-grid{grid-template-columns:1fr 1fr;} }
@media(max-width:560px){ .foot-grid{grid-template-columns:1fr;} }
.foot-grid h4{
  font-family:var(--head); font-weight:600; font-size:11.5px;
  letter-spacing:.22em; text-transform:uppercase; color:var(--gold); margin-bottom:16px;
}
.foot-grid a{color:var(--mist); text-decoration:none; transition:color .2s;}
.foot-grid a:hover{color:var(--white);}
.foot-grid ul{list-style:none;}
.foot-grid li{margin-bottom:9px;}
.foot-tag{margin-top:16px; max-width:30ch; line-height:1.7; color:var(--slate-lt);}
.foot-addr{margin-top:12px; color:var(--slate-lt); line-height:1.8;}
.legal{display:flex; justify-content:space-between; gap:14px; flex-wrap:wrap; font-size:12.5px; color:var(--slate-lt);}
.legal a{color:var(--slate-lt); text-decoration:none;}
.legal a:hover{color:var(--mist);}

/* ---- reveal ---- */
.js .reveal{opacity:0; transform:translateY(26px); transition:opacity .8s cubic-bezier(.16,1,.3,1), transform .8s cubic-bezier(.16,1,.3,1);}
.js .reveal.in{opacity:1; transform:none;}
@media (prefers-reduced-motion: reduce){ .js .reveal{opacity:1; transform:none;} }

/* ---- AI spotlight ---- */
.ai-band{
  background:linear-gradient(150deg, #0E2140 0%, var(--navy) 70%);
  border-top:3px solid var(--gold);
  padding-top:76px; padding-bottom:76px;
}
.ai-grid{display:grid; grid-template-columns:minmax(0,6fr) minmax(0,5fr); gap:56px; align-items:center;}
@media(max-width:900px){ .ai-grid{grid-template-columns:1fr;} }
.ai-points{display:flex; flex-direction:column; gap:18px;}
.ai-points > div{
  background:rgba(246,247,249,.05); border:1px solid rgba(138,151,168,.3);
  border-left:3px solid var(--gold);
  border-radius:12px; padding:18px 22px;
}
.ai-points b{display:block; font-family:var(--head); font-weight:600; font-size:15px; color:var(--white); margin-bottom:4px;}
.ai-points span{font-size:14px; color:var(--mist); line-height:1.65;}
.dd-inner a.dd-spot{border-top:1px solid rgba(82,98,122,.18); margin-top:6px; padding-top:12px;}
.scope-note b{color:var(--navy);}

/* ---- practice scenes ---- */
.scene{display:block; width:100%; height:auto;}
.pcard-art{min-height:0; padding:18px 22px 10px;}
.pcard-art .scene{max-width:240px; margin:0 auto;}
.phero-art .scene{max-width:340px; filter:drop-shadow(0 14px 30px rgba(0,0,0,.3));}
@media(max-width:800px){ .phero-grid{grid-template-columns:1fr;} }

/* ---- practice photos ---- */
.pcard-art.photo{position:relative; padding:0; min-height:0; overflow:hidden;}
.pcard-art.photo img{display:block; width:100%; height:170px; object-fit:cover;}
.pcard-art.photo::after{
  content:""; position:absolute; inset:0; background:none;
  background-image:linear-gradient(180deg, rgba(10,25,47,.06) 40%, rgba(10,25,47,.62) 100%);
  opacity:1;
}
.art-glyph{
  position:absolute; right:12px; bottom:10px; z-index:2;
  width:38px; height:38px; border-radius:10px;
  background:rgba(10,25,47,.72); border:1px solid rgba(197,160,89,.55);
  display:flex; align-items:center; justify-content:center;
}
.p-icon.badge{width:22px; height:22px;}
.phero-photo img{
  display:block; width:100%; height:auto;
  border-radius:var(--r-img);
  border:1px solid rgba(197,160,89,.4);
  box-shadow:0 22px 55px rgba(0,0,0,.38);
}
@media(max-width:800px){ .phero-photo{margin-top:8px;} }

/* ---- where: independent market/sector groups ---- */
.where-group{margin-top:34px;}
.where-group .list-label{margin-bottom:16px; display:inline-block;}
.tagset{display:flex; flex-wrap:wrap; gap:10px;}
.tagset span{
  font-size:14px; color:var(--cream);
  border:1px solid rgba(138,151,168,.45); border-radius:999px;
  padding:8px 18px; background:rgba(246,247,249,.05);
}
.where-group + .where-group .tagset span{border-color:rgba(197,160,89,.5);}
.where-note{margin-top:18px; font-size:14px; color:var(--slate-lt); max-width:52ch; line-height:1.7;}

/* ---- team preview: avatar rows (no face cropping) ---- */
a.pcard.person-row{flex-direction:row; align-items:flex-start; gap:20px; padding:24px;}
.person-row .avatar{
  width:104px; height:104px; flex:0 0 auto;
  border-radius:18px; object-fit:cover;
  border:2px solid var(--gold);
}
.person-body{display:flex; flex-direction:column;}
.person-body .tag{
  font-family:var(--head); font-weight:600; font-size:10.5px; letter-spacing:.16em;
  text-transform:uppercase; color:var(--bronze); display:block; margin-bottom:6px;
}
.person-body h3{font-weight:600; font-size:18px; margin-bottom:6px;}
.person-body p{font-size:14px; color:var(--slate); line-height:1.65; flex:1;}
.person-body .more{margin-top:12px;}
@media(max-width:480px){
  a.pcard.person-row{flex-direction:column;}
  .person-row .avatar{width:96px; height:96px;}
}
.team-cards{grid-template-columns:1fr; gap:20px;}

/* ---- form status + header scale ---- */
.form-status{margin-top:18px; font-size:14.5px; color:var(--bronze); line-height:1.6;}
.form-status a{font-weight:600; color:var(--bronze);}
header.site .lockup svg{height:48px;}
header.site .lockup-text b{font-size:18px; letter-spacing:.3em;}
header.site .lockup-text span{font-size:11px; margin-top:5px;}
header.site .nav{padding:16px 0;}
nav.links{gap:32px;}
nav.links > a, .dd > a{font-size:14.5px; line-height:1;}
.nav-cta{font-size:14px; padding:12px 24px;}
@media(max-width:960px){ header.site .lockup svg{height:42px;} header.site .lockup-text b{font-size:16px;} }

/* anchored sections clear the sticky header */
section[id], [id="main"]{scroll-margin-top:86px;}
