:root { --navy:#0b172b; --navy-2:#12233f; --gold:#c7a455; --gold-pale:#ead9aa; --ink:#172033; --muted:#667085; --paper:#f6f3ed; --white:#fff; --line:#d9dee6; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; color:var(--ink); background:var(--white); font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; line-height:1.65; }
body.disclaimer-open { overflow:hidden; }
a { color:inherit; }
button { font:inherit; }
.container { width:min(1120px,calc(100% - 40px)); margin-inline:auto; }
.skip-link { position:fixed; left:20px; top:-70px; z-index:120; padding:10px 14px; background:var(--gold); color:var(--navy); font-weight:800; }
.skip-link:focus { top:20px; }
.disclaimer-gate { position:fixed; inset:0; z-index:100; display:grid; place-items:center; padding:24px; background:rgba(5,13,25,.96); overflow-y:auto; }
.disclaimer-gate.hidden { display:none; }
.disclaimer-panel { width:min(780px,100%); padding:clamp(28px,5vw,54px); color:var(--ink); background:white; border-top:5px solid var(--gold); box-shadow:0 28px 90px rgba(0,0,0,.4); }
.gate-label,.eyebrow,.card-label { margin:0 0 12px; color:#8a671e; font-size:.74rem; font-weight:850; letter-spacing:.15em; text-transform:uppercase; }
.disclaimer-panel h1 { margin:0 0 25px; font:500 clamp(2rem,5vw,3.4rem)/1.1 Georgia,serif; letter-spacing:-.03em; }
.gate-copy { color:#424c5e; font-size:.96rem; }
.gate-actions { display:flex; flex-wrap:wrap; gap:12px; margin-top:30px; }
.button { min-height:48px; padding:0 20px; border:1px solid transparent; border-radius:3px; font-weight:800; cursor:pointer; }
.button-primary { background:var(--navy); color:white; }
.button-primary:hover { background:var(--navy-2); }
.button-secondary { border-color:#aab2c0; background:white; color:#354052; }
.site-header { position:sticky; top:0; z-index:50; color:white; background:rgba(11,23,43,.97); border-bottom:1px solid rgba(255,255,255,.1); backdrop-filter:blur(12px); }
.nav-wrap { min-height:78px; display:flex; align-items:center; justify-content:space-between; gap:24px; }
.brand { display:flex; align-items:center; gap:12px; text-decoration:none; }
.brand-mark { display:grid; place-items:center; width:42px; aspect-ratio:1; color:var(--gold-pale); border:1px solid var(--gold); font:700 1rem Georgia,serif; }
.brand strong,.brand small { display:block; }
.brand strong { font-family:Georgia,serif; letter-spacing:.01em; }
.brand small { color:#b9c4d4; font-size:.72rem; }
.site-nav { display:flex; gap:26px; align-items:center; }
.site-nav a { color:#d9e1ec; text-decoration:none; font-size:.91rem; font-weight:700; }
.site-nav a:hover { color:var(--gold-pale); }
.menu-toggle { display:none; padding:10px; border:0; background:transparent; }
.menu-toggle span { display:block; width:25px; height:2px; margin:5px 0; background:white; }
.hero { color:white; background:radial-gradient(circle at 86% 15%,rgba(199,164,85,.16),transparent 25%),linear-gradient(135deg,#0b172b,#14294a 75%,#0b172b); }
.hero-grid { min-height:650px; display:grid; grid-template-columns:1.2fr .8fr; gap:clamp(50px,9vw,120px); align-items:center; padding-block:90px; }
.hero .eyebrow { color:var(--gold-pale); }
.hero h1 { margin:0 0 22px; font:500 clamp(3rem,7vw,5.9rem)/.98 Georgia,serif; letter-spacing:-.05em; }
.firm-name { margin:0; color:#c7d1de; font-size:1.15rem; }
.profile-facts { display:grid; gap:0; margin:38px 0 0; }
.profile-facts div { display:grid; grid-template-columns:130px 1fr; padding:12px 0; border-top:1px solid rgba(255,255,255,.15); }
.profile-facts dt { color:#aeb9c9; }
.profile-facts dd { margin:0; font-weight:700; }
.identity-card { padding:36px; background:rgba(255,255,255,.07); border:1px solid rgba(234,217,170,.35); backdrop-filter:blur(15px); }
.identity-card h2 { margin:0 0 18px; font:500 2rem/1.15 Georgia,serif; }
.identity-card address { color:#cbd4e1; font-style:normal; }
.identity-card .card-label { color:var(--gold-pale); }
.contact-list { margin:26px 0 0; padding:0; list-style:none; border-top:1px solid rgba(255,255,255,.16); }
.contact-list li { display:grid; grid-template-columns:90px 1fr; gap:15px; padding:13px 0; border-bottom:1px solid rgba(255,255,255,.12); }
.contact-list span { color:#aeb9c9; font-size:.88rem; }
.contact-list a { overflow-wrap:anywhere; color:white; }
.section { padding-block:clamp(80px,10vw,125px); }
.section-muted { background:var(--paper); }
.section-grid { display:grid; grid-template-columns:.8fr 1.2fr; gap:clamp(50px,10vw,130px); }
.section-title h2,.site-footer h2 { margin:0; font:500 clamp(2.2rem,4vw,3.5rem)/1.1 Georgia,serif; letter-spacing:-.03em; }
.section-title.narrow { max-width:650px; margin-bottom:50px; }
.fact-list { margin:0; }
.fact-list div { display:grid; grid-template-columns:200px 1fr; gap:20px; padding:21px 0; border-top:1px solid var(--line); }
.fact-list div:last-child { border-bottom:1px solid var(--line); }
.fact-list dt { font-family:Georgia,serif; font-size:1.16rem; font-weight:700; }
.fact-list dd { margin:0; color:var(--muted); }
.practice-list { display:grid; grid-template-columns:repeat(3,1fr); margin:0; padding:0; list-style:none; border-top:1px solid #cfd4dc; border-left:1px solid #cfd4dc; }
.practice-list li { min-height:125px; display:flex; align-items:flex-end; padding:24px; border-right:1px solid #cfd4dc; border-bottom:1px solid #cfd4dc; color:var(--navy); background:rgba(255,255,255,.45); font:700 1.08rem/1.35 Georgia,serif; }
.practice-list a { display:block; width:100%; text-decoration-thickness:1px; text-decoration-color:rgba(11,23,43,.3); text-underline-offset:5px; }
.practice-list a:hover { color:#8a671e; text-decoration-color:#8a671e; }
.page-masthead { padding-block:clamp(62px,8vw,100px); color:white; background:radial-gradient(circle at 86% 15%,rgba(199,164,85,.16),transparent 25%),linear-gradient(135deg,#0b172b,#14294a 75%,#0b172b); }
.breadcrumbs { display:flex; flex-wrap:wrap; gap:8px; margin:0 0 24px; padding:0; color:#bac5d4; list-style:none; font-size:.86rem; }
.breadcrumbs li:not(:last-child)::after { content:"/"; margin-left:8px; color:#78879a; }
.breadcrumbs a { text-underline-offset:3px; }
.page-masthead .eyebrow { color:var(--gold-pale); }
.page-masthead h1 { max-width:900px; margin:0 0 24px; font:500 clamp(2.7rem,6vw,5.2rem)/1.02 Georgia,serif; letter-spacing:-.045em; }
.page-masthead .lede { max-width:780px; margin:0; color:#cbd5e2; font-size:1.08rem; }
.area-section { padding-block:clamp(70px,9vw,115px); }
.area-layout { display:grid; grid-template-columns:minmax(0,1.35fr) minmax(270px,.65fr); gap:clamp(50px,8vw,100px); align-items:start; }
.area-copy h2 { margin:0 0 18px; color:var(--navy); font:500 clamp(2rem,4vw,3rem)/1.12 Georgia,serif; letter-spacing:-.025em; }
.area-copy h2:not(:first-child) { margin-top:55px; }
.area-copy p { max-width:760px; color:#465165; }
.scope-list { display:grid; gap:0; margin:25px 0 0; padding:0; list-style:none; border-top:1px solid var(--line); }
.scope-list li { position:relative; padding:15px 15px 15px 28px; border-bottom:1px solid var(--line); color:#263247; }
.scope-list li::before { content:""; position:absolute; left:4px; top:26px; width:8px; height:8px; background:var(--gold); }
.area-aside { position:sticky; top:106px; display:grid; gap:18px; }
.info-panel { padding:27px; background:var(--paper); border-top:4px solid var(--gold); }
.info-panel h2 { margin:0 0 15px; color:var(--navy); font:700 1.25rem/1.3 Georgia,serif; }
.info-panel p,.info-panel address { margin:0; color:#596477; font-size:.94rem; font-style:normal; }
.info-panel p+p { margin-top:10px; }
.info-panel a { overflow-wrap:anywhere; text-underline-offset:3px; }
.related-list { display:grid; gap:0; margin:0; padding:0; list-style:none; }
.related-list li { border-top:1px solid #d2d7de; }
.related-list li:last-child { border-bottom:1px solid #d2d7de; }
.related-list a { display:block; padding:12px 0; color:var(--navy); font-weight:750; text-decoration:none; }
.related-list a:hover { color:#8a671e; }
.legal-note { margin-top:50px; padding:24px 26px; color:#4d586b; background:#f1f4f7; border-left:4px solid #9aa6b5; font-size:.93rem; }
.legal-note strong { color:var(--navy); }
.contact-section { color:white; background:var(--navy); }
.contact-section .eyebrow { color:var(--gold-pale); }
.contact-details>div { padding:20px 0; border-top:1px solid rgba(255,255,255,.16); }
.contact-details>div:last-child { border-bottom:1px solid rgba(255,255,255,.16); }
.contact-details span { display:block; margin-bottom:6px; color:#acb8c9; font-size:.85rem; }
.contact-details address,.contact-details p { margin:0; color:white; font-style:normal; font-size:1.08rem; }
.contact-details a { text-underline-offset:3px; }
.site-footer { padding-block:65px 35px; color:#4d5768; background:#f2efe8; }
.site-footer h2 { margin-bottom:22px; color:var(--navy); font-size:2rem; }
.site-footer p { max-width:900px; }
.copyright { margin-top:30px; padding-top:24px; border-top:1px solid #d2d6dd; color:#70798a; font-size:.83rem; }
@media (max-width:900px) {
  .menu-toggle { display:block; }
  .site-nav { position:absolute; top:78px; left:0; right:0; display:none; flex-direction:column; align-items:stretch; gap:0; padding:14px 20px 22px; background:var(--navy); border-top:1px solid rgba(255,255,255,.1); }
  .site-nav.open { display:flex; }
  .site-nav a { padding:12px; }
  .hero-grid,.section-grid { grid-template-columns:1fr; }
  .identity-card { max-width:590px; }
  .practice-list { grid-template-columns:repeat(2,1fr); }
  .area-layout { grid-template-columns:1fr; }
  .area-aside { position:static; grid-template-columns:repeat(2,1fr); }
}
@media (max-width:600px) {
  .container { width:min(100% - 28px,1120px); }
  .brand strong { font-size:.9rem; }
  .brand small { display:none; }
  .hero-grid { min-height:auto; padding-block:70px; }
  .hero h1 { font-size:clamp(3rem,15vw,4.5rem); }
  .profile-facts div,.fact-list div { grid-template-columns:1fr; gap:4px; }
  .practice-list { grid-template-columns:1fr; }
  .practice-list li { min-height:100px; }
  .area-aside { grid-template-columns:1fr; }
  .identity-card { padding:26px; }
  .disclaimer-gate { padding:12px; }
  .disclaimer-panel { padding:25px 22px; }
  .gate-actions .button { width:100%; }
}
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } }
