:root {
  --royal: #003579;
  --navy: #002860;
  --deep: #001d47;
  --gold: #b8973a;
  --gold-light: #d4af5a;
  --white: #ffffff;
  --off-white: #f4f1eb;
  --gray: #4a4a5e;
  --muted: rgba(255,255,255,0.48);
}
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
body { font-family: 'Lato', sans-serif; background: var(--deep); color: var(--white); overflow-x: hidden; }
::-webkit-scrollbar { width: 5px; }
::-webkit-scrollbar-track { background: var(--deep); }
::-webkit-scrollbar-thumb { background: var(--gold); }

/* PAGE SYSTEM */
.page { display: none; }
.page.active { display: block; animation: fadeIn 0.5s ease forwards; }
@keyframes fadeIn { from { opacity:0; transform:translateY(12px); } to { opacity:1; transform:translateY(0); } }

/* ── NAVBAR ── */
nav {
  position: fixed; top:0; left:0; right:0; z-index:1000;
  display:flex; align-items:center; justify-content:space-between;
  padding: 0 60px; height: 82px;
  background: var(--royal);
  border-bottom: 1px solid rgba(184,151,58,0.3);
  transition: all 0.35s;
}
nav.scrolled { height:68px; background: var(--navy); border-bottom-color:rgba(184,151,58,0.45); }
.nav-logo { display:flex; align-items:center; gap:12px; cursor:pointer; text-decoration:none; }
.nav-logo-img { height:46px; width:46px; object-fit:contain; }
.nav-wordmark { display:flex; flex-direction:column; line-height:1; }
.nav-name { font-family:'Cormorant Garamond',serif; font-size:18px; font-weight:500; letter-spacing:0.12em; color:var(--white); }
.nav-sub { font-family:'Lato'; font-size:8.5px; font-weight:700; letter-spacing:0.3em; color:var(--gold); text-transform:uppercase; margin-top:4px; }
.nav-links { display:flex; align-items:center; gap:40px; list-style:none; }
.nav-links a { font-family:'Lato'; font-size:10.5px; font-weight:700; letter-spacing:0.2em; text-transform:uppercase; color:rgba(255,255,255,0.8); text-decoration:none; cursor:pointer; position:relative; transition:color 0.3s; }
.nav-links a::after { content:''; position:absolute; bottom:-5px; left:0; width:0; height:1px; background:var(--gold); transition:width 0.3s; }
.nav-links a:hover, .nav-links a.active { color:var(--gold); }
.nav-links a:hover::after, .nav-links a.active::after { width:100%; }
.nav-cta { color:var(--deep)!important; background:var(--gold); padding:10px 24px!important; transition:background 0.3s!important; }
.nav-cta:hover { background:var(--gold-light)!important; }
.nav-cta::after { display:none!important; }
.nav-toggle { display:none; flex-direction:column; gap:5px; cursor:pointer; }
.nav-toggle span { width:26px; height:1.5px; background:var(--white); transition:all 0.3s; }

/* ── SHARED ── */
.eyebrow { font-family:'Lato'; font-size:9.5px; font-weight:700; letter-spacing:0.35em; text-transform:uppercase; color:var(--gold); display:block; margin-bottom:16px; }
.gold-rule { width:55px; height:2px; background:linear-gradient(90deg,var(--gold),var(--gold-light),var(--gold)); margin-bottom:22px; }
.btn-gold { display:inline-flex; align-items:center; gap:10px; font-family:'Lato'; font-size:10px; font-weight:700; letter-spacing:0.24em; text-transform:uppercase; color:var(--deep); background:var(--gold); padding:15px 32px; border:none; cursor:pointer; text-decoration:none; transition:all 0.3s; }
.btn-gold:hover { background:var(--gold-light); transform:translateY(-1px); box-shadow:0 8px 28px rgba(184,151,58,0.32); }
.btn-outline { display:inline-flex; align-items:center; gap:10px; font-family:'Lato'; font-size:10px; font-weight:700; letter-spacing:0.24em; text-transform:uppercase; color:var(--navy); background:transparent; padding:14px 32px; border:1px solid rgba(0,40,100,0.35); cursor:pointer; text-decoration:none; transition:all 0.3s; }
.btn-outline:hover { border-color:var(--gold); color:var(--gold); }

/* ── HERO (WHITE) ── */
.hero {
  min-height:100vh;
  background: #ffffff;
  border-bottom: 1px solid rgba(184,151,58,0.2);
  display:flex; align-items:center; justify-content:center;
  position:relative; overflow:hidden;
  padding:130px 60px 170px;
}
.hero-vert-lines {
  position:absolute; inset:0; pointer-events:none;
}
.hero-vert-lines::before { content:''; position:absolute; top:0; left:8%; width:1px; height:100%; background:linear-gradient(180deg,transparent,rgba(184,151,58,0.18) 30%,rgba(184,151,58,0.18) 70%,transparent); }
.hero-vert-lines::after  { content:''; position:absolute; top:0; right:8%; width:1px; height:100%; background:linear-gradient(180deg,transparent,rgba(184,151,58,0.18) 30%,rgba(184,151,58,0.18) 70%,transparent); }
.hero-corner { position:absolute; font-family:'Lato'; font-size:9px; font-weight:700; letter-spacing:0.26em; text-transform:uppercase; color:rgba(184,151,58,0.6); }
.hero-corner.tl { top:100px; left:60px; }
.hero-corner.tr { top:100px; right:60px; }
.hero-watermark { position:absolute; inset:0; display:flex; align-items:center; justify-content:center; font-family:'Cormorant Garamond',serif; font-size:min(48vw,520px); font-weight:700; color:rgba(0,40,100,0.04); pointer-events:none; user-select:none; line-height:1; }
.hero-content { text-align:center; max-width:840px; position:relative; z-index:2; }

@keyframes hIn { from{opacity:0;transform:translateY(22px);}to{opacity:1;transform:translateY(0);} }
.a2{animation:hIn 1s ease 0.2s both;}
.a3{animation:hIn 1s ease 0.38s both;}
.a4{animation:hIn 1s ease 0.52s both;}
.a5{animation:hIn 1s ease 0.66s both;}
.a6{animation:hIn 1s ease 0.82s both;}
.a7{animation:hIn 1s ease 1s both;}

.hero-divider { display:flex; align-items:center; justify-content:center; gap:14px; margin-bottom:26px; }
.hdl { width:75px; height:1px; background:var(--gold); }
.hdd { width:7px; height:7px; background:var(--gold); transform:rotate(45deg); }
.hero-sub { font-family:'Cormorant Garamond',serif; font-size:clamp(14px,1.9vw,19px); font-style:italic; font-weight:300; color:var(--gold); letter-spacing:0.07em; margin-bottom:36px; }
.hero-h1 { font-family:'Cormorant Garamond',serif; font-size:clamp(48px,7vw,90px); font-weight:700; line-height:1.06; color:var(--navy); letter-spacing:-0.01em; margin-bottom:30px; }
.hero-h1 em { font-style:italic; color:var(--gold); }
.hero-body { font-size:15px; font-weight:300; line-height:1.85; color:var(--gray); max-width:570px; margin:0 auto 46px; }
.hero-btns { display:flex; align-items:center; justify-content:center; gap:18px; flex-wrap:wrap; }
.hero-scroll { position:absolute; bottom:175px; right:60px; display:flex; flex-direction:column; align-items:center; gap:10px; font-family:'Lato'; font-size:8px; font-weight:700; letter-spacing:0.3em; text-transform:uppercase; color:rgba(184,151,58,0.6); writing-mode:vertical-rl; animation:hIn 1s ease 1.3s both; }
.hero-scroll-line { width:1px; height:58px; background:linear-gradient(180deg,transparent,var(--gold)); animation:scrollP 2.2s ease-in-out infinite; }
@keyframes scrollP { 0%,100%{opacity:0.4;} 50%{opacity:1;} }

/* ── STATS ── */
.stats-bar { background:var(--navy); border-top:1px solid rgba(184,151,58,0.28); border-bottom:1px solid rgba(184,151,58,0.28); padding:34px 60px; display:grid; grid-template-columns:repeat(4,1fr); text-align:center; }
.stat-item { padding:0 20px; position:relative; }
.stat-item:not(:last-child)::after { content:''; position:absolute; right:0; top:50%; transform:translateY(-50%); width:1px; height:48px; background:rgba(184,151,58,0.25); }
.stat-num { font-family:'Cormorant Garamond',serif; font-size:48px; font-weight:300; color:var(--gold); line-height:1; margin-bottom:8px; }
.stat-lbl { font-family:'Lato'; font-size:9px; font-weight:700; letter-spacing:0.26em; text-transform:uppercase; color:rgba(255,255,255,0.5); }

/* ── TICKER ── */
.ticker-wrap { background:var(--gold); overflow:hidden; padding:13px 0; }
.ticker-track { display:flex; white-space:nowrap; animation:tick 32s linear infinite; }
.ticker-item { display:inline-flex; align-items:center; gap:18px; font-family:'Lato'; font-size:9.5px; font-weight:700; letter-spacing:0.24em; text-transform:uppercase; color:var(--deep); padding:0 28px; }
.ticker-dot { width:4px; height:4px; background:var(--deep); border-radius:50%; flex-shrink:0; }
@keyframes tick { 0%{transform:translateX(0);} 100%{transform:translateX(-50%);} }

/* ── ABOUT STRIP ── */
.about-strip { background:var(--off-white); padding:100px 60px; display:grid; grid-template-columns:1fr 1fr; gap:80px; align-items:start; }
.about-strip-left h2 { font-family:'Cormorant Garamond',serif; font-size:clamp(34px,4vw,52px); font-weight:400; line-height:1.15; color:var(--navy); margin-bottom:26px; }
.about-strip-left h2 em { font-style:italic; color:var(--gold); }
.about-strip-left p { font-size:14.5px; line-height:1.85; color:var(--gray); margin-bottom:18px; }
.value-card { display:flex; gap:18px; align-items:flex-start; margin-bottom:28px; }
.value-icon { width:46px; height:46px; border:1px solid var(--gold); display:flex; align-items:center; justify-content:center; flex-shrink:0; position:relative; }
.value-icon::before { content:''; width:10px; height:10px; background:var(--gold); transform:rotate(45deg); display:block; }
.value-card h4 { font-family:'Cormorant Garamond',serif; font-size:20px; font-weight:600; color:var(--navy); margin-bottom:5px; }
.value-card p { font-size:13px; line-height:1.7; color:var(--gray); }

/* ── SERVICES PREVIEW ── */
.services-preview { background:var(--navy); padding:100px 60px; }
.section-header { display:flex; align-items:flex-end; justify-content:space-between; margin-bottom:58px; flex-wrap:wrap; gap:18px; }
.section-header h2 { font-family:'Cormorant Garamond',serif; font-size:clamp(34px,4vw,52px); font-weight:400; color:var(--white); line-height:1.1; }
.section-header h2 span { color:var(--gold-light); font-style:italic; }
.view-all { font-family:'Lato'; font-size:9.5px; font-weight:700; letter-spacing:0.22em; text-transform:uppercase; color:var(--gold); text-decoration:none; cursor:pointer; display:flex; align-items:center; gap:8px; transition:gap 0.3s; }
.view-all:hover { gap:14px; }
.services-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:rgba(184,151,58,0.14); }
.service-card { background:var(--deep); padding:44px 34px; position:relative; overflow:hidden; transition:background 0.35s; cursor:pointer; }
.service-card::before { content:''; position:absolute; bottom:0; left:0; width:0; height:2px; background:var(--gold); transition:width 0.4s; }
.service-card:hover { background:rgba(0,40,100,0.95); }
.service-card:hover::before { width:100%; }
.svc-num { font-family:'Cormorant Garamond',serif; font-size:12px; color:var(--gold); letter-spacing:0.1em; margin-bottom:18px; display:block; }
.svc-title { font-family:'Cormorant Garamond',serif; font-size:22px; font-weight:500; color:var(--white); line-height:1.2; margin-bottom:12px; }
.svc-desc { font-size:13px; line-height:1.75; color:var(--muted); }
.svc-arrow { position:absolute; bottom:28px; right:28px; color:var(--gold); font-size:18px; opacity:0; transform:translateX(-8px); transition:all 0.3s; }
.service-card:hover .svc-arrow { opacity:1; transform:translateX(0); }

/* ── CTA BANNER ── */
.cta-banner { background:var(--royal); padding:100px 60px; text-align:center; position:relative; overflow:hidden; }
.cta-bg { position:absolute; inset:0; display:flex; align-items:center; justify-content:center; font-family:'Cormorant Garamond',serif; font-size:min(50vw,420px); font-weight:700; color:rgba(255,255,255,0.025); pointer-events:none; user-select:none; line-height:1; }
.cta-banner .eyebrow { position:relative; z-index:2; }
.cta-banner h2 { font-family:'Cormorant Garamond',serif; font-size:clamp(34px,5vw,62px); font-weight:300; color:var(--white); line-height:1.15; margin-bottom:18px; position:relative; z-index:2; }
.cta-banner p { font-size:15px; color:var(--muted); margin-bottom:46px; position:relative; z-index:2; }
.cta-btns { display:flex; align-items:center; justify-content:center; gap:18px; flex-wrap:wrap; position:relative; z-index:2; }
.cta-banner .btn-outline { color:var(--white); border-color:rgba(255,255,255,0.45); }
.cta-banner .btn-outline:hover { border-color:var(--gold); color:var(--gold); }

/* ── FOOTER ── */
footer { background:var(--deep); border-top:1px solid rgba(184,151,58,0.18); padding:70px 60px 28px; }
.footer-grid { display:grid; grid-template-columns:2fr 1fr 1.5fr; gap:60px; margin-bottom:56px; }
.footer-brand .fn { font-family:'Cormorant Garamond',serif; font-size:22px; font-weight:500; letter-spacing:0.1em; display:block; color:var(--white); margin-bottom:5px; }
.footer-brand .fs { font-family:'Lato'; font-size:8.5px; font-weight:700; letter-spacing:0.28em; text-transform:uppercase; color:var(--gold); display:block; margin-bottom:18px; }
.footer-brand p { font-size:13px; line-height:1.8; color:var(--muted); }
.footer-col h4 { font-family:'Lato'; font-size:8.5px; font-weight:700; letter-spacing:0.28em; text-transform:uppercase; color:var(--gold); margin-bottom:20px; }
.footer-col ul { list-style:none; }
.footer-col ul li { margin-bottom:11px; }
.footer-col ul li a { font-size:13px; color:var(--muted); text-decoration:none; cursor:pointer; transition:color 0.3s; }
.footer-col ul li a:hover { color:var(--gold); }
.footer-ci { display:flex; gap:14px; align-items:flex-start; margin-bottom:14px; }
.footer-ci .ico { color:var(--gold); margin-top:2px; flex-shrink:0; display:inline-flex; align-items:center; justify-content:center; width:16px; }
.footer-ci .ico::before { content:''; width:7px; height:7px; background:var(--gold); transform:rotate(45deg); display:block; flex-shrink:0; }
.footer-ci p, .footer-ci a { font-size:13px; color:var(--muted); line-height:1.6; text-decoration:none; }
.footer-ci a:hover { color:var(--gold); }
.footer-bottom { border-top:1px solid rgba(255,255,255,0.07); padding-top:26px; display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:12px; }
.footer-bottom p { font-size:11px; color:rgba(255,255,255,0.28); letter-spacing:0.05em; }
.footer-socials { display:flex; gap:10px; }
.fsoc { width:32px; height:32px; border:1px solid rgba(184,151,58,0.3); display:flex; align-items:center; justify-content:center; color:var(--gold); font-size:11px; text-decoration:none; cursor:pointer; transition:all 0.3s; font-family:'Lato'; font-weight:700; }
.fsoc:hover { background:var(--gold); color:var(--deep); border-color:var(--gold); }

/* ── PAGE HERO ── */
.page-hero { background:var(--royal); padding:185px 60px 100px; position:relative; overflow:hidden; }
.page-hero::after { content:''; position:absolute; bottom:0; left:60px; right:60px; height:1px; background:rgba(184,151,58,0.28); }
.page-hero .eyebrow { color:var(--gold-light); }
.page-hero h1 { font-family:'Cormorant Garamond',serif; font-size:clamp(54px,7.5vw,95px); font-weight:300; line-height:1.04; color:var(--white); }
.page-hero-bg { position:absolute; right:60px; bottom:-25px; font-family:'Cormorant Garamond',serif; font-size:clamp(80px,15vw,190px); font-weight:700; color:rgba(255,255,255,0.035); pointer-events:none; user-select:none; line-height:1; }

/* ── FIRM STORY ── */
.firm-story { background:var(--off-white); padding:100px 60px; display:grid; grid-template-columns:1.1fr 0.9fr; gap:58px; align-items:start; }
.firm-story-left h2 { font-family:'Cormorant Garamond',serif; font-size:clamp(30px,4vw,48px); font-weight:400; line-height:1.2; color:var(--navy); margin-bottom:26px; }
.firm-story-left h2 em { font-style:italic; color:var(--gold); }
.firm-story-left p { font-size:14.5px; line-height:1.88; color:var(--gray); margin-bottom:16px; }
.values-panel { background:var(--navy); padding:46px 38px; }
.values-panel h3 { font-family:'Cormorant Garamond',serif; font-size:25px; font-weight:500; color:var(--white); margin-bottom:32px; padding-bottom:18px; border-bottom:1px solid rgba(184,151,58,0.22); }
.value-row { display:flex; gap:16px; align-items:flex-start; margin-bottom:26px; padding-bottom:26px; border-bottom:1px solid rgba(255,255,255,0.07); }
.value-row:last-child { border-bottom:none; margin-bottom:0; padding-bottom:0; }
.value-row .ico { flex-shrink:0; margin-top:6px; width:22px; height:22px; display:flex; align-items:center; justify-content:center; }
.value-row .ico::before { content:''; width:9px; height:9px; background:var(--gold); transform:rotate(45deg); display:block; }
.value-row h4 { font-family:'Cormorant Garamond',serif; font-size:19px; font-weight:600; color:var(--gold); margin-bottom:5px; }
.value-row p { font-size:13px; line-height:1.7; color:var(--muted); }

/* ── TEAM ── */
.team-section { background:var(--navy); padding:100px 60px; }
.section-title { text-align:center; margin-bottom:66px; }
.section-title h2 { font-family:'Cormorant Garamond',serif; font-size:clamp(34px,4vw,52px); font-weight:400; color:var(--white); }
.team-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:2px; max-width:900px; margin:0 auto; background:rgba(184,151,58,0.1); }
.team-card { background:var(--deep); padding:50px 42px; position:relative; }
.team-card::before { content:''; position:absolute; top:0; left:42px; width:55px; height:2px; background:var(--gold); }
.team-avatar { width:68px; height:68px; background:linear-gradient(135deg,var(--gold),var(--gold-light)); display:flex; align-items:center; justify-content:center; font-family:'Cormorant Garamond',serif; font-size:26px; font-weight:600; color:var(--deep); margin-bottom:22px; }
.team-card h3 { font-family:'Cormorant Garamond',serif; font-size:25px; font-weight:500; color:var(--white); margin-bottom:5px; }
.team-role { font-family:'Lato'; font-size:8.5px; font-weight:700; letter-spacing:0.26em; text-transform:uppercase; color:var(--gold); margin-bottom:18px; display:block; }
.team-card p { font-size:13.5px; line-height:1.8; color:var(--muted); }

/* ── FULL SERVICES ── */
.services-intro { background:var(--off-white); padding:78px 60px; text-align:center; }
.services-intro p { font-size:15.5px; line-height:1.85; color:var(--gray); max-width:700px; margin:0 auto; }
.full-services-grid { background:var(--off-white); padding:0 60px 100px; display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }
.fsc { background:var(--white); padding:42px 34px; border:1px solid rgba(0,53,121,0.09); position:relative; overflow:hidden; transition:all 0.35s; cursor:pointer; }
.fsc::after { content:''; position:absolute; bottom:0; left:0; width:0; height:3px; background:linear-gradient(90deg,var(--gold),var(--gold-light)); transition:width 0.4s; }
.fsc:hover { transform:translateY(-4px); box-shadow:0 20px 48px rgba(0,40,100,0.11); }
.fsc:hover::after { width:100%; }
.fsc.cta-card { background:var(--navy); border-color:transparent; display:flex; flex-direction:column; justify-content:center; }
.fsc.cta-card::after { background:var(--gold); }
.ghost-num { position:absolute; top:-12px; right:18px; font-family:'Cormorant Garamond',serif; font-size:88px; font-weight:700; color:rgba(0,53,121,0.055); line-height:1; pointer-events:none; }
.fsc.cta-card .ghost-num { color:rgba(255,255,255,0.055); }
.fsc h3 { font-family:'Cormorant Garamond',serif; font-size:22px; font-weight:500; color:var(--navy); margin-bottom:12px; }
.fsc.cta-card h3 { color:var(--white); }
.fsc p { font-size:13px; line-height:1.75; color:var(--gray); }
.fsc.cta-card p { color:var(--muted); }
.learn-more { display:inline-flex; align-items:center; gap:8px; font-family:'Lato'; font-size:9px; font-weight:700; letter-spacing:0.22em; text-transform:uppercase; color:var(--gold); margin-top:18px; cursor:pointer; transition:gap 0.3s; text-decoration:none; }
.learn-more:hover { gap:13px; }

/* ── PRACTICE AREAS ── */
.practice-areas { background:var(--navy); padding:100px 60px; }
.practice-areas .section-title { margin-bottom:56px; text-align:left; }
.areas-grid { display:grid; grid-template-columns:1fr 1fr; border:1px solid rgba(184,151,58,0.13); max-width:920px; }
.area-item { display:flex; gap:14px; align-items:center; padding:20px 28px; border-bottom:1px solid rgba(184,151,58,0.09); border-right:1px solid rgba(184,151,58,0.09); transition:background 0.3s; }
.area-item:nth-child(2n) { border-right:none; }
.area-item:hover { background:rgba(184,151,58,0.05); }
.area-diamond { width:7px; height:7px; background:var(--gold); transform:rotate(45deg); flex-shrink:0; }
.area-item p { font-size:14px; color:rgba(255,255,255,0.78); line-height:1.4; }

/* ── CONTACT ── */
.contact-body { background:var(--deep); padding:100px 60px; display:grid; grid-template-columns:1fr 1fr; gap:78px; align-items:start; }
.contact-left h2 { font-family:'Cormorant Garamond',serif; font-size:clamp(28px,3.5vw,44px); font-weight:400; line-height:1.2; color:var(--white); margin-bottom:18px; }
.contact-left > p { font-size:14.5px; line-height:1.85; color:var(--muted); margin-bottom:44px; }
.contact-detail { display:flex; gap:16px; align-items:flex-start; margin-bottom:24px; padding-bottom:24px; border-bottom:1px solid rgba(255,255,255,0.06); }
.contact-detail:last-child { border-bottom:none; }
.contact-ico { width:42px; height:42px; border:1px solid rgba(184,151,58,0.38); display:flex; align-items:center; justify-content:center; color:var(--gold); flex-shrink:0; position:relative; }
.contact-ico::before { content:''; width:2px; height:18px; background:var(--gold); display:block; }
.contact-detail h5 { font-family:'Lato'; font-size:8.5px; font-weight:700; letter-spacing:0.26em; text-transform:uppercase; color:var(--gold); margin-bottom:5px; }
.contact-detail p, .contact-detail a { font-size:13.5px; color:var(--muted); line-height:1.6; text-decoration:none; }
.contact-detail a:hover { color:var(--gold); }
.contact-socials { display:flex; gap:12px; margin-top:3px; }
.csl { font-family:'Lato'; font-size:9px; font-weight:700; letter-spacing:0.18em; text-transform:uppercase; color:var(--gold); text-decoration:none; border-bottom:1px solid rgba(184,151,58,0.38); padding-bottom:2px; }
.contact-form-panel { background:var(--navy); padding:48px 42px; }
.contact-form-panel h3 { font-family:'Cormorant Garamond',serif; font-size:27px; font-weight:500; color:var(--white); margin-bottom:32px; padding-bottom:18px; border-bottom:1px solid rgba(184,151,58,0.2); }
.form-row { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.form-group { margin-bottom:18px; }
.form-group label { display:block; font-family:'Lato'; font-size:8.5px; font-weight:700; letter-spacing:0.22em; text-transform:uppercase; color:var(--gold); margin-bottom:7px; }
.form-group input, .form-group select, .form-group textarea { width:100%; background:rgba(0,29,71,0.55); border:1px solid rgba(184,151,58,0.22); color:var(--white); font-family:'Lato'; font-size:13.5px; padding:13px 16px; outline:none; transition:border-color 0.3s; resize:none; }
.form-group select option { background:var(--navy); }
.form-group input:focus, .form-group select:focus, .form-group textarea:focus { border-color:var(--gold); }
.form-group input::placeholder, .form-group textarea::placeholder { color:rgba(255,255,255,0.28); }
.form-success { display:none; background:rgba(184,151,58,0.1); border:1px solid rgba(184,151,58,0.35); padding:22px; text-align:center; margin-top:18px; }
.form-success.show { display:block; }
.form-success p { color:var(--gold-light); font-size:14px; line-height:1.7; }

/* ── MAP ── */
.map-section { background:var(--deep); padding:0 60px 100px; }
.map-header { display:flex; align-items:center; justify-content:space-between; padding:22px 0; border-bottom:1px solid rgba(184,151,58,0.2); margin-bottom:0; flex-wrap:wrap; gap:16px; }
.map-header-left { display:flex; flex-direction:column; gap:6px; }
.map-header-left .eyebrow { margin:0; }
.map-header-left p { font-size:13px; color:var(--muted); }
.map-visual { width:100%; height:400px; background:linear-gradient(135deg,#001533 0%,#002255 50%,#001533 100%); position:relative; overflow:hidden; }
.map-grid { position:absolute; inset:0; background-image:linear-gradient(rgba(184,151,58,0.07) 1px,transparent 1px),linear-gradient(90deg,rgba(184,151,58,0.07) 1px,transparent 1px); background-size:60px 60px; }
.map-pin-dot { width:14px; height:14px; background:var(--gold); border-radius:50% 50% 50% 0; transform:rotate(-45deg); animation:ppulse 2s ease-in-out infinite; position:relative; z-index:3; }
@keyframes ppulse { 0%,100%{box-shadow:0 0 0 4px rgba(184,151,58,0.28);} 50%{box-shadow:0 0 0 12px rgba(184,151,58,0.1);} }
.map-ripple { position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); width:50px; height:50px; border-radius:50%; border:1px solid rgba(184,151,58,0.35); animation:rip 2.2s ease-out infinite; }
.map-ripple:nth-child(2){animation-delay:0.7s;}
.map-ripple:nth-child(3){animation-delay:1.4s;}
@keyframes rip { 0%{transform:translate(-50%,-50%) scale(0.6);opacity:0.8;} 100%{transform:translate(-50%,-50%) scale(3.5);opacity:0;} }
.map-lbl { position:absolute; top:calc(50% - 55px); left:50%; transform:translateX(-50%); background:rgba(0,24,60,0.92); border:1px solid rgba(184,151,58,0.45); padding:9px 18px; white-space:nowrap; font-family:'Lato'; font-size:10.5px; color:var(--gold); letter-spacing:0.15em; }
.map-pin-wrap { position:absolute; top:50%; left:50%; transform:translate(-50%,-40%); }
.map-directions { background:rgba(184,151,58,0.1); border:1px solid rgba(184,151,58,0.22); display:flex; align-items:center; justify-content:center; padding:15px; cursor:pointer; transition:all 0.3s; text-decoration:none; }
.map-directions:hover { background:rgba(184,151,58,0.17); }
.map-directions span { font-family:'Lato'; font-size:10px; font-weight:700; letter-spacing:0.2em; text-transform:uppercase; color:var(--gold); }

/* ── REVEAL ── */
.reveal { opacity:0; transform:translateY(22px); transition:opacity 0.65s ease, transform 0.65s ease; }
.reveal.visible { opacity:1; transform:translateY(0); }
.rd1{transition-delay:0.1s;} .rd2{transition-delay:0.2s;} .rd3{transition-delay:0.3s;}

/* ── RESPONSIVE ── */
@media(max-width:1060px){
  .services-grid{grid-template-columns:repeat(2,1fr);}
  .full-services-grid{grid-template-columns:repeat(2,1fr);}
  .footer-grid{grid-template-columns:1fr 1fr;}
  .footer-brand{grid-column:1/-1;}
}
@media(max-width:860px){
  nav{padding:0 22px;}
  .nav-links{display:none;}
  .nav-toggle{display:flex;}
  .nav-links.open{display:flex;flex-direction:column;position:fixed;top:82px;left:0;right:0;background:var(--royal);padding:28px 22px;gap:22px;z-index:999;}
  .hero,.cta-banner,.services-preview,.practice-areas,.team-section{padding-left:22px;padding-right:22px;}
  .hero-corner{display:none;}
  .stats-bar{grid-template-columns:repeat(2,1fr);padding:28px 22px;}
  .stat-item:nth-child(2)::after{display:none;}
  .about-strip,.firm-story,.contact-body{grid-template-columns:1fr;gap:38px;padding:60px 22px;}
  .services-grid{grid-template-columns:1fr;}
  .full-services-grid{grid-template-columns:1fr;padding:0 22px 60px;}
  footer,.map-section{padding-left:22px;padding-right:22px;}
  .footer-grid{grid-template-columns:1fr;gap:36px;}
  .areas-grid{grid-template-columns:1fr;}
  .area-item{border-right:none;}
  .team-grid{grid-template-columns:1fr;}
  .page-hero{padding:145px 22px 75px;}
  .services-intro{padding:55px 22px;}
  .form-row{grid-template-columns:1fr;}
  .contact-form-panel{padding:32px 22px;}
}

/* ── SERVICE MODAL ── */
.modal-overlay {
  display:none;
  position:fixed;
  inset:0;
  background:rgba(0,15,45,0.88);
  backdrop-filter:blur(8px);
  z-index:2000;
  align-items:center;
  justify-content:center;
  padding:30px 20px;
}
.modal-overlay.open { display:flex; animation:mFadeIn 0.35s ease; }
@keyframes mFadeIn { from{opacity:0;} to{opacity:1;} }

.modal-box {
  background:var(--deep);
  border:1px solid rgba(184,151,58,0.3);
  max-width:780px;
  width:100%;
  max-height:88vh;
  overflow-y:auto;
  position:relative;
  animation:mSlideUp 0.35s ease;
}
@keyframes mSlideUp { from{transform:translateY(30px);opacity:0;} to{transform:translateY(0);opacity:1;} }

.modal-header {
  background:var(--royal);
  padding:40px 50px 36px;
  position:relative;
  border-bottom:1px solid rgba(184,151,58,0.3);
}
.modal-num {
  font-family:'Cormorant Garamond',serif;
  font-size:11px; font-weight:400;
  color:var(--gold); letter-spacing:0.18em;
  display:block; margin-bottom:10px;
}
.modal-title {
  font-family:'Cormorant Garamond',serif;
  font-size:clamp(28px,4vw,42px);
  font-weight:300; color:var(--white);
  line-height:1.1; margin-bottom:0;
}
.modal-close {
  position:absolute;
  top:22px; right:22px;
  width:38px; height:38px;
  border:1px solid rgba(255,255,255,0.25);
  background:transparent;
  color:var(--white);
  font-size:18px;
  cursor:pointer;
  display:flex; align-items:center; justify-content:center;
  transition:all 0.3s;
  font-family:'Lato'; line-height:1;
}
.modal-close:hover { background:var(--gold); border-color:var(--gold); color:var(--deep); }

.modal-body { padding:44px 50px 50px; }
.modal-lead {
  font-family:'Cormorant Garamond',serif;
  font-size:19px; font-weight:400;
  font-style:italic; color:var(--gold-light);
  line-height:1.6; margin-bottom:28px;
}
.modal-body p {
  font-size:14.5px; line-height:1.88;
  color:rgba(255,255,255,0.72);
  margin-bottom:18px;
}
.modal-subtitle {
  font-family:'Lato';
  font-size:9px; font-weight:700;
  letter-spacing:0.28em; text-transform:uppercase;
  color:var(--gold); margin:30px 0 16px;
  display:block;
}
.modal-tags {
  display:flex; flex-wrap:wrap; gap:10px;
  margin-bottom:28px;
}
.modal-tag {
  font-family:'Lato'; font-size:10px; font-weight:700;
  letter-spacing:0.12em; text-transform:uppercase;
  color:rgba(255,255,255,0.7);
  border:1px solid rgba(184,151,58,0.35);
  padding:7px 16px;
}
.modal-cta {
  margin-top:36px;
  padding-top:32px;
  border-top:1px solid rgba(184,151,58,0.18);
  display:flex; align-items:center; gap:18px; flex-wrap:wrap;
}
@media(max-width:600px){
  .modal-header{ padding:32px 26px 28px; }
  .modal-body{ padding:32px 26px 40px; }
}
