:root{
  --navy:#0B1E3C; --navy-deep:#071427; --navy-soft:#132B52;
  --gold:#B8912F; --gold-light:#D9B872; --gold-pale:#F1E4C4;
  --silver:#A9B0BC; --silver-line:#D8DCE2; --ivory:#F8F6F1;
  --ink:#181A1F; --ink-soft:#4A4F58; --white:#FFFFFF; --maxw:1180px;
}
*{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;}
body{font-family:'Inter',sans-serif;background:var(--ivory);color:var(--ink);line-height:1.6;-webkit-font-smoothing:antialiased;}
h1,h2,h3,h4{font-family:'Fraunces',serif;font-weight:600;color:var(--navy);letter-spacing:-0.01em;}
a{color:inherit;text-decoration:none;}
img{max-width:100%;display:block;}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 32px;}
.eyebrow{font-size:12px;letter-spacing:0.16em;text-transform:uppercase;color:var(--gold);font-weight:600;margin-bottom:14px;display:block;}
button{font-family:'Inter',sans-serif;cursor:pointer;}
:focus-visible{outline:2px solid var(--gold);outline-offset:2px;}

header.site-nav{position:sticky;top:0;z-index:100;background:var(--navy);border-bottom:1px solid rgba(184,145,47,0.25);}
.nav-inner{max-width:var(--maxw);margin:0 auto;padding:0 32px;display:flex;align-items:center;justify-content:space-between;height:74px;}
.brand{display:flex;align-items:center;gap:12px;color:var(--white);}
.brand-name{font-family:'Fraunces',serif;font-size:19px;font-weight:600;color:var(--white);letter-spacing:0.01em;}
.brand-sub{font-size:10px;letter-spacing:0.14em;text-transform:uppercase;color:var(--silver);display:block;margin-top:2px;}
nav.main-links{display:flex;align-items:center;gap:2px;}
nav.main-links > .nav-item{position:relative;}
nav.main-links a.top-link{display:block;padding:14px 16px;color:var(--silver);font-size:14px;font-weight:500;letter-spacing:0.01em;transition:color .15s;border-bottom:2px solid transparent;}
nav.main-links a.top-link:hover,nav.main-links a.top-link.active{color:var(--white);}
nav.main-links a.top-link.active{border-bottom-color:var(--gold);}
.dropdown{position:absolute;top:100%;left:0;background:var(--white);min-width:230px;box-shadow:0 12px 28px rgba(7,20,39,0.18);border-top:2px solid var(--gold);opacity:0;visibility:hidden;transform:translateY(4px);transition:.15s;}
.nav-item:hover .dropdown{opacity:1;visibility:visible;transform:translateY(0);}
.dropdown a{display:block;padding:12px 18px;font-size:13.5px;color:var(--ink);border-bottom:1px solid var(--silver-line);}
.dropdown a:last-child{border-bottom:none;}
.dropdown a:hover{background:var(--ivory);color:var(--navy);}
.nav-cta{background:var(--gold);color:var(--navy-deep);padding:10px 20px;font-size:13.5px;font-weight:600;letter-spacing:0.02em;border:none;white-space:nowrap;}
.nav-cta:hover{background:var(--gold-light);}
.mobile-toggle{display:none;background:none;border:none;color:var(--white);font-size:26px;}
.logo-mark{width:42px;height:42px;flex-shrink:0;}

.hero{background:linear-gradient(160deg,var(--navy-deep) 0%,var(--navy) 55%,var(--navy-soft) 100%);color:var(--white);position:relative;overflow:hidden;padding:96px 0 84px;}
.hero::before{content:'';position:absolute;right:-120px;top:-120px;width:520px;height:520px;border:1px solid rgba(184,145,47,0.18);border-radius:50%;}
.hero::after{content:'';position:absolute;right:-40px;top:60px;width:340px;height:340px;border:1px solid rgba(169,176,188,0.14);border-radius:50%;}
.hero-inner{max-width:var(--maxw);margin:0 auto;padding:0 32px;position:relative;z-index:3;}
.hero h1{color:var(--white);font-size:clamp(34px,5vw,58px);line-height:1.08;max-width:820px;font-weight:600;}
.hero h1 em{font-style:normal;color:var(--gold-light);}
.hero p.lede{color:var(--silver);font-size:18px;max-width:600px;margin-top:22px;line-height:1.7;}
.hero-ctas{display:flex;gap:14px;margin-top:36px;flex-wrap:wrap;}
.btn-primary{background:var(--gold);color:var(--navy-deep);padding:14px 28px;font-weight:600;font-size:14px;letter-spacing:0.02em;border:1px solid var(--gold);}
.btn-primary:hover{background:var(--gold-light);border-color:var(--gold-light);}
.btn-ghost{background:transparent;color:var(--white);padding:14px 28px;font-weight:600;font-size:14px;border:1px solid rgba(255,255,255,0.35);}
.btn-ghost:hover{border-color:var(--white);}

.page-hero{background:linear-gradient(160deg,var(--navy-deep),var(--navy));color:var(--white);padding:64px 0 56px;position:relative;overflow:hidden;}
.page-hero .wrap{position:relative;z-index:3;}
.page-hero h1{color:var(--white);font-size:clamp(28px,4vw,42px);}
.page-hero p{color:var(--silver);margin-top:14px;max-width:620px;font-size:15.5px;}
.breadcrumb{font-size:12px;color:var(--gold-light);letter-spacing:0.06em;text-transform:uppercase;margin-bottom:16px;}
.breadcrumb a{color:var(--gold-light);}
.breadcrumb a:hover{text-decoration:underline;}

.pillars{padding:88px 0;background:var(--ivory);}
.section-head{max-width:640px;margin-bottom:52px;}
.section-head h2{font-size:clamp(26px,3.4vw,38px);}
.section-head p{color:var(--ink-soft);margin-top:14px;font-size:15.5px;}
.pillar-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:2px;background:var(--silver-line);}
.pillar-card{background:var(--white);padding:40px 32px;transition:.2s;}
.pillar-card:hover{background:var(--navy);}
.pillar-card:hover h3,.pillar-card:hover p,.pillar-card:hover .pillar-num{color:var(--white)!important;}
.pillar-card:hover .pillar-link{color:var(--gold-light)!important;}
.pillar-num{font-family:'Fraunces',serif;font-size:13px;color:var(--gold);letter-spacing:0.1em;}
.pillar-card h3{margin-top:16px;font-size:21px;}
.pillar-card p{color:var(--ink-soft);margin-top:12px;font-size:14.5px;}
.pillar-link{display:inline-block;margin-top:20px;font-size:13px;font-weight:600;color:var(--navy);letter-spacing:0.02em;}

.pillar-card.pillar-wide{
  grid-column:1 / -1;
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:10px 36px;
  padding:32px 40px;
}
.pillar-card.pillar-wide .pillar-num{flex:0 0 auto;}
.pillar-card.pillar-wide h3{margin-top:0;flex:0 0 auto;white-space:nowrap;}
.pillar-card.pillar-wide p{margin-top:0;flex:1 1 320px;}
.pillar-card.pillar-wide .pillar-link{margin-top:0;flex:0 0 auto;white-space:nowrap;}
@media(max-width:700px){
  .pillar-card.pillar-wide{flex-direction:column;align-items:flex-start;}
  .pillar-card.pillar-wide h3{white-space:normal;}
}

.stats-strip{background:var(--navy);color:var(--white);padding:56px 0;}
.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:32px;text-align:center;}
.stat-num{font-family:'Fraunces',serif;font-size:34px;color:var(--gold-light);}
.stat-label{font-size:12px;letter-spacing:0.1em;text-transform:uppercase;color:var(--silver);margin-top:8px;}

.geo{padding:80px 0;background:var(--white);border-top:1px solid var(--silver-line);}
.geo-grid{display:flex;gap:14px;flex-wrap:wrap;margin-top:36px;}
.geo-chip{border:1px solid var(--silver-line);padding:14px 24px;font-size:14px;font-weight:500;display:flex;align-items:center;gap:10px;color:var(--navy);}
.geo-chip .dot{width:8px;height:8px;border-radius:50%;background:var(--gold);}

.leadership{padding:88px 0;background:var(--ivory);}
.team-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:2px;background:var(--silver-line);margin-top:8px;}
.team-card{background:var(--white);padding:36px;display:flex;gap:20px;}
.team-avatar{width:64px;height:64px;border-radius:50%;background:var(--navy);color:var(--gold-light);display:flex;align-items:center;justify-content:center;font-family:'Fraunces',serif;font-size:20px;flex-shrink:0;}
.team-name{font-size:18px;color:var(--navy);}
.team-role{font-size:12.5px;color:var(--gold);letter-spacing:0.04em;text-transform:uppercase;margin-top:4px;font-weight:600;}
.team-bio{font-size:14px;color:var(--ink-soft);margin-top:10px;}

.cta-strip{background:var(--navy-deep);color:var(--white);padding:64px 0;text-align:center;}
.cta-strip h2{color:var(--white);font-size:clamp(24px,3vw,32px);}
.cta-strip p{color:var(--silver);margin-top:12px;}
.cta-strip .hero-ctas{justify-content:center;margin-top:28px;}

.section{padding:72px 0;}
.section.alt{background:var(--white);border-top:1px solid var(--silver-line);border-bottom:1px solid var(--silver-line);}
.service-row{display:grid;grid-template-columns:60px 1fr;gap:24px;padding:28px 0;border-bottom:1px solid var(--silver-line);}
.service-row:first-child{border-top:1px solid var(--silver-line);}
.service-idx{font-family:'Fraunces',serif;color:var(--gold);font-size:16px;}
.service-row h4{font-size:18px;margin-bottom:6px;}
.service-row p{color:var(--ink-soft);font-size:14.5px;}

.two-col{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:start;}
.quiet-card{background:var(--white);border:1px solid var(--silver-line);padding:32px;}
.quiet-card h4{font-size:17px;margin-bottom:10px;}
.quiet-card p{color:var(--ink-soft);font-size:14.5px;}
.num-badge{width:36px;height:36px;border:1px solid var(--gold);color:var(--gold);display:flex;align-items:center;justify-content:center;font-family:'Fraunces',serif;font-size:14px;margin-bottom:16px;}
.process-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;margin-top:16px;}

.form-card{background:var(--white);border:1px solid var(--silver-line);padding:40px;max-width:640px;}
.form-row{margin-bottom:20px;}
.form-row label{display:block;font-size:12.5px;font-weight:600;color:var(--navy);letter-spacing:0.03em;margin-bottom:7px;text-transform:uppercase;}
.form-row input,.form-row select,.form-row textarea{width:100%;padding:12px 14px;border:1px solid var(--silver-line);font-family:'Inter',sans-serif;font-size:14.5px;background:var(--ivory);color:var(--ink);}
.form-row input:focus,.form-row select:focus,.form-row textarea:focus{outline:none;border-color:var(--gold);background:var(--white);}
.form-row-2{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
.form-submit{background:var(--navy);color:var(--white);padding:14px 30px;font-weight:600;font-size:14px;border:none;letter-spacing:0.02em;}
.form-submit:hover{background:var(--navy-soft);}
.form-note{font-size:12.5px;color:var(--ink-soft);margin-top:14px;}
.form-status{margin-top:16px;font-size:14px;padding:12px 14px;display:none;}
.form-status.show{display:block;}
.form-status.ok{background:#EAF3EA;color:#2A6B2F;}
.form-status.err{background:#F7E6E6;color:#8B2C2C;}

.tab-bar{display:flex;gap:0;border-bottom:1px solid var(--silver-line);background:var(--white);}
.tab-bar .wrap{display:flex;gap:2px;flex-wrap:nowrap;overflow-x:auto;-ms-overflow-style:none;scrollbar-width:none;}
.tab-bar .wrap::-webkit-scrollbar{display:none;}
.tab-btn{padding:16px 14px;font-size:12.5px;font-weight:600;color:var(--ink-soft);border-bottom:3px solid transparent;background:none;border-top:none;border-left:none;border-right:none;white-space:nowrap;flex:0 0 auto;}
.tab-btn.active{color:var(--navy);border-bottom-color:var(--gold);}
.tab-btn:hover{color:var(--navy);}
[data-tab-panel]{display:none;}
[data-tab-panel].active{display:block;}

.insight-toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:32px;flex-wrap:wrap;gap:12px;}
.admin-btn{background:none;border:1px solid var(--navy);color:var(--navy);padding:9px 18px;font-size:13px;font-weight:600;}
.admin-btn:hover{background:var(--navy);color:var(--white);}
.insight-card{background:var(--white);border:1px solid var(--silver-line);padding:26px 30px;margin-bottom:14px;transition:.15s;}
.insight-card-link{display:block;text-decoration:none;}
.insight-card-link:hover .insight-card{border-color:var(--gold);transform:translateX(2px);}
.insight-meta{display:flex;gap:12px;align-items:center;font-size:12px;color:var(--gold);letter-spacing:0.03em;text-transform:uppercase;font-weight:600;}
.insight-card h4{font-size:18px;margin-top:10px;color:var(--navy);}
.insight-card p.excerpt{color:var(--ink-soft);font-size:14px;margin-top:10px;line-height:1.6;}
.insight-card .body-text{color:var(--ink-soft);font-size:14.5px;margin-top:10px;white-space:pre-wrap;}
.insight-empty{color:var(--ink-soft);font-size:14.5px;padding:40px 0;text-align:center;border:1px dashed var(--silver-line);}
.admin-panel{background:var(--navy-deep);color:var(--white);padding:28px;margin-bottom:28px;display:none;}
.admin-panel.show{display:block;}
.admin-panel label{color:var(--silver);}
.admin-panel input,.admin-panel select,.admin-panel textarea{background:var(--navy-soft);border:1px solid rgba(255,255,255,0.15);color:var(--white);}
.admin-panel .form-submit{background:var(--gold);color:var(--navy-deep);}
.admin-close{background:none;border:none;color:var(--silver);font-size:13px;text-decoration:underline;margin-top:10px;}

.post-article{max-width:760px;}
.post-meta{display:flex;gap:12px;align-items:center;font-size:12.5px;color:var(--gold-light);letter-spacing:0.04em;text-transform:uppercase;font-weight:600;margin-bottom:16px;}
.post-body p{color:var(--ink-soft);font-size:15.5px;margin-bottom:18px;line-height:1.75;}

footer{background:var(--navy-deep);color:var(--silver);padding:64px 0 28px;}
.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:40px;}
.footer-brand{display:flex;align-items:center;gap:12px;margin-bottom:16px;}
.footer-brand .brand-name{color:var(--white);}
footer p{font-size:13.5px;line-height:1.7;}
footer h5{color:var(--white);font-size:12.5px;letter-spacing:0.08em;text-transform:uppercase;margin-bottom:16px;}
footer ul{list-style:none;}
footer li{margin-bottom:10px;}
footer a{font-size:13.5px;color:var(--silver);}
footer a:hover{color:var(--gold-light);}
.footer-bottom{border-top:1px solid rgba(169,176,188,0.15);margin-top:48px;padding-top:24px;display:flex;justify-content:space-between;font-size:12.5px;color:var(--silver);flex-wrap:wrap;gap:12px;}

.policy-body h3{margin-top:34px;margin-bottom:10px;font-size:19px;}
.policy-body p,.policy-body li{color:var(--ink-soft);font-size:14.5px;margin-bottom:8px;}
.policy-body{max-width:760px;}

/* ---------- SCROLL-REVEAL ANIMATIONS ---------- */
.reveal{opacity:0;transform:translateY(28px);transition:opacity .7s ease, transform .7s ease;}
.reveal.in-view{opacity:1;transform:translateY(0);}
.reveal-stagger > *{opacity:0;transform:translateY(28px);transition:opacity .6s ease, transform .6s ease;}
.reveal-stagger.in-view > *{opacity:1;transform:translateY(0);}
.reveal-stagger.in-view > *:nth-child(1){transition-delay:.05s;}
.reveal-stagger.in-view > *:nth-child(2){transition-delay:.15s;}
.reveal-stagger.in-view > *:nth-child(3){transition-delay:.25s;}
.reveal-stagger.in-view > *:nth-child(4){transition-delay:.35s;}
.reveal-stagger.in-view > *:nth-child(5){transition-delay:.45s;}
.reveal-stagger.in-view > *:nth-child(6){transition-delay:.55s;}
@media(prefers-reduced-motion:reduce){
  .reveal,.reveal-stagger > *{opacity:1!important;transform:none!important;transition:none!important;}
}

/* ---------- SKYLINE ILLUSTRATION ---------- */
.skyline-wrap{position:absolute;left:0;right:0;bottom:0;height:180px;overflow:hidden;pointer-events:none;z-index:1;}
.skyline-wrap svg{width:100%;height:100%;display:block;}
.skyline-fade{position:absolute;left:0;right:0;bottom:0;height:180px;background:linear-gradient(to top, var(--navy-deep) 0%, rgba(7,20,39,0) 100%);z-index:2;pointer-events:none;}
.window-light{animation:twinkle 4.5s ease-in-out infinite;}
.window-light:nth-child(3n){animation-delay:.8s;}
.window-light:nth-child(4n){animation-delay:1.6s;}
.window-light:nth-child(5n){animation-delay:2.4s;}
@keyframes twinkle{
  0%,100%{opacity:.35;}
  50%{opacity:.95;}
}
@media(prefers-reduced-motion:reduce){
  .window-light{animation:none;opacity:.7;}
}

/* ---------- STAT COUNT-UP TARGET ---------- */
.stat-num[data-count]{font-variant-numeric:tabular-nums;}

/* ---------- PHOTO BANNER (now: original illustrated banner) ---------- */
.photo-banner{position:relative;height:460px;overflow:hidden;background:var(--navy-deep);}
.banner-illustration{position:absolute;inset:0;}
.banner-illustration svg{width:100%;height:100%;display:block;}
.photo-banner::before{content:'';position:absolute;inset:0;background:linear-gradient(160deg, rgba(7,20,39,0.90) 0%, rgba(11,30,60,0.62) 50%, rgba(11,30,60,0.38) 100%);z-index:1;}
.photo-banner .wrap{position:relative;z-index:2;height:100%;display:flex;flex-direction:column;justify-content:center;}
.photo-banner h2{color:var(--white);font-size:clamp(24px,3.2vw,36px);max-width:640px;}
.photo-banner p{color:var(--silver);margin-top:14px;max-width:520px;font-size:15.5px;}
@media(max-width:900px){
  .photo-banner{height:340px;}
}

@media(max-width:900px){
  nav.main-links{display:none;}
  .mobile-toggle{display:block;}
  .pillar-grid,.team-grid,.stats-grid,.two-col,.process-grid,.form-row-2,.footer-grid,.practice-area-grid{grid-template-columns:1fr!important;}
  .hero{padding:64px 0;}
}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important;}}
