:root {
  --ink:#0b1f3a;
  --ink-soft:#12345a;
  --paper:#ffffff;
  --paper-2:#f2f6fb;
  --white:#fff;
  --gold:#1769aa;
  --muted:#64748b;
  --line:rgba(11,31,58,.13);
}
html { scroll-behavior:smooth; }
body { margin:0; font-family:'DM Sans',sans-serif; color:var(--ink); background:var(--paper); }
a { color:inherit; text-decoration:none; }
.serif { font-family:'Playfair Display',serif; }
.eyebrow { font-size:.72rem; letter-spacing:.18em; text-transform:uppercase; font-weight:700; color:var(--gold); }

.btn-luxe { background:var(--gold); color:#fff; border:1px solid var(--gold); padding:14px 24px; font-size:.78rem; font-weight:700; letter-spacing:.09em; text-transform:uppercase; transition:.25s; display:inline-flex; align-items:center; }
.btn-luxe:hover { background:#0f5790; border-color:#0f5790; color:#fff; transform:translateY(-1px); }
.btn-outline-luxe { border:1px solid rgba(255,255,255,.45); color:#fff; padding:13px 24px; font-size:.78rem; font-weight:700; letter-spacing:.09em; text-transform:uppercase; }
.btn-outline-luxe:hover { background:#fff; color:var(--ink); }

/* Outline button variant for use on light/paper backgrounds (e.g. download CTA) */
.btn-luxe-ghost { border:1px solid var(--line); color:var(--ink); padding:13px 24px; font-size:.78rem; font-weight:700; letter-spacing:.09em; text-transform:uppercase; display:inline-flex; align-items:center; transition:.25s; background:transparent; }
.btn-luxe-ghost:hover { border-color:var(--ink); background:var(--ink); color:#fff; }

.navbar { position:absolute; top:0; left:0; right:0; z-index:20; padding:28px 0; transition:.3s; }
.navbar.scrolled, .navbar.is-interior { position:fixed; background:rgba(255,255,255,.97); backdrop-filter:blur(12px); padding:16px 0; box-shadow:0 8px 30px rgba(11,31,58,.12); }
.brand { color:#fff; font-family:'Playfair Display',serif; font-size:2.55rem; font-weight:600; letter-spacing:.02em; }
.brand span { display:block; font-family:'DM Sans',sans-serif; font-size:.52rem; letter-spacing:.34em; text-transform:uppercase; font-weight:600; margin-top:-2px; color:#6b8db3; }
.nav-link { color:rgba(255,255,255,.8)!important; font-size:.73rem; font-weight:600; letter-spacing:.12em; text-transform:uppercase; margin:0 8px; }
.nav-link:hover, .nav-link.active { color:#fff!important; }
.navbar.scrolled .brand, .navbar.is-interior .brand { color:var(--ink); }
.navbar.scrolled .nav-link, .navbar.is-interior .nav-link { color:rgba(11,31,58,.78)!important; }
.navbar.scrolled .nav-link:hover, .navbar.is-interior .nav-link:hover,
.navbar.scrolled .nav-link.active, .navbar.is-interior .nav-link.active { color:var(--ink)!important; }
.navbar.scrolled .navbar-toggler, .navbar.is-interior .navbar-toggler { filter:none; }
.accent-rule { background:var(--gold)!important; }

.hero { min-height:100vh; display:flex; align-items:center; position:relative; color:#fff; overflow:hidden; background:#0b1f3a; }
.hero::before { content:""; position:absolute; inset:0; background:linear-gradient(90deg,rgba(7,28,53,.94) 0%,rgba(7,28,53,.74) 43%,rgba(7,28,53,.34) 100%), var(--hero-img, url('/images/home-bg.jpg')) center/cover; transform:scale(1.01); }
.hero::after { content:""; position:absolute; width:460px; height:460px; right:-180px; bottom:-190px; border:1px solid rgba(181,154,106,.45); border-radius:50%; box-shadow:0 0 0 80px rgba(181,154,106,.05),0 0 0 160px rgba(181,154,106,.025); }
.hero-content { position:relative; z-index:2; padding:150px 0 110px; max-width:820px; }
.hero h1 { font-size:clamp(3.3rem,7vw,6.9rem); line-height:.98; letter-spacing:-.04em; margin:20px 0 28px; }
.hero h1 em { color:#8fc7f2; font-style:normal; }
.hero p { max-width:670px; color:rgba(255,255,255,.78); font-size:1.05rem; line-height:1.8; }
.hero-meta { margin-top:60px; padding-top:24px; border-top:1px solid rgba(255,255,255,.2); display:flex; gap:45px; flex-wrap:wrap; }
.hero-meta strong { display:block; font-size:.74rem; letter-spacing:.13em; text-transform:uppercase; }
.hero-meta span { color:rgba(255,255,255,.6); font-size:.85rem; }

/* Smaller interior-page header, same visual language as the hero */
.page-header { min-height:56vh; display:flex; align-items:flex-end; position:relative; color:#fff; overflow:hidden; background:#0b1f3a; }
.page-header::before { content:""; position:absolute; inset:0; background:linear-gradient(90deg,rgba(7,28,53,.94) 0%,rgba(7,28,53,.78) 60%,rgba(7,28,53,.5) 100%), var(--hero-img, url('https://images.unsplash.com/photo-1450101499163-c8848c66ca85?auto=format&fit=crop&w=2200&q=80')) center/cover; }
.page-header-content { position:relative; z-index:2; padding:170px 0 60px; max-width:760px; }
.page-header h1 { font-size:clamp(2.6rem,5vw,4.6rem); line-height:1.03; letter-spacing:-.03em; margin:18px 0 0; }
.page-header p { max-width:600px; color:rgba(255,255,255,.75); font-size:1rem; line-height:1.8; margin-top:18px; }

section { padding:110px 0; }
.section-dark { background:var(--ink); color:#fff; }
.section-paper { background:var(--paper); }
.section-tint { background:var(--paper-2); }
.intro-copy { font-size:clamp(1.45rem,2.7vw,2.35rem); line-height:1.4; letter-spacing:-.025em; }
.intro-copy strong { font-weight:600; }
.small-copy { color:var(--muted); line-height:1.85; }
.number { color:var(--gold); font-size:.78rem; letter-spacing:.12em; font-weight:700; }

.service-card { border-top:1px solid var(--line); padding:32px 0 34px; height:100%; transition:.25s; }
.service-card:hover { padding-left:10px; }
.service-card h3 { font-family:'Playfair Display',serif; font-size:1.8rem; margin:12px 0 14px; }
.service-card p { color:#6e6b66; line-height:1.75; font-size:.92rem; margin:0; }
.service-arrow { display:inline-flex; width:38px; height:38px; border:1px solid var(--line); border-radius:50%; align-items:center; justify-content:center; margin-top:22px; color:var(--gold); }

.statement { position:relative; overflow:hidden; }
.statement::before { content:""; position:absolute; inset:0; background:linear-gradient(90deg,rgba(7,28,53,.97),rgba(7,28,53,.72)),url('https://images.unsplash.com/photo-1450101499163-c8848c66ca85?auto=format&fit=crop&w=2200&q=80') center/cover; }
.statement > .container { position:relative; z-index:2; }
.statement h2 { font-size:clamp(2.6rem,5vw,5.4rem); line-height:1.04; letter-spacing:-.04em; }
.statement p { color:rgba(255,255,255,.68); line-height:1.9; max-width:650px; }

.principle { border-left:1px solid rgba(181,154,106,.6); padding-left:25px; height:100%; }
.principle h4 { font-family:'Playfair Display',serif; font-size:1.55rem; margin-bottom:12px; }
.principle p { color:rgba(255,255,255,.62); line-height:1.75; margin:0; font-size:.9rem; }

.contact-panel { background:var(--ink); color:#fff; padding:70px; position:relative; overflow:hidden; }
.contact-panel::after { content:""; position:absolute; width:350px; height:350px; right:-150px; top:-170px; border:1px solid rgba(181,154,106,.35); border-radius:50%; }
.contact-detail { border-top:1px solid rgba(255,255,255,.14); padding-top:20px; margin-top:24px; }
.contact-detail small { color:#a8a39a; display:block; font-size:.68rem; text-transform:uppercase; letter-spacing:.14em; margin-bottom:7px; }
.contact-detail a, .contact-detail span { font-size:1rem; }

/* Download CTA band — sits right below the hero on the home page */
.download-cta { padding:50px 0; background:var(--paper-2); border-bottom:1px solid var(--line); }
.download-cta-inner { display:flex; align-items:center; justify-content:space-between; gap:30px; flex-wrap:wrap; }
.download-cta-text .eyebrow { display:block; margin-bottom:6px; }
.download-cta-text p { margin:0; color:var(--muted); font-size:.95rem; max-width:420px; }
.download-cta-buttons { display:flex; gap:16px; flex-wrap:wrap; }

/* Nav dropdown (Downloads) */
.navbar .dropdown-menu { border:1px solid var(--line); border-radius:0; box-shadow:0 12px 30px rgba(11,31,58,.14); padding:6px 0; margin-top:10px; }
.navbar .dropdown-item { font-size:.78rem; font-weight:600; letter-spacing:.04em; padding:11px 22px; color:var(--ink); }
.navbar .dropdown-item:hover, .navbar .dropdown-item:focus { background:var(--paper-2); color:var(--ink); }
.navbar .nav-link.dropdown-toggle::after { vertical-align:1px; margin-left:6px; }

/* Team */
.team-card { background:var(--paper); border:1px solid var(--line); padding:0 0 30px; height:100%; }
.team-card-link { display:block; }
.team-card-link:hover .team-photo { opacity:.9; }
.team-photo { aspect-ratio:4/5; width:100%; object-fit:cover; background:var(--paper-2); display:block; transition:.25s; }
.team-body { padding:26px 30px 0; }
.team-body h3 { font-family:'Playfair Display',serif; font-size:1.5rem; margin:0 0 4px; }
.team-role { color:var(--gold); font-size:.78rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; display:block; margin-bottom:14px; }
.team-body p { color:var(--muted); line-height:1.75; font-size:.92rem; margin:0; }
.team-link-label { display:inline-flex; align-items:center; margin-top:16px; font-size:.74rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--gold); }

/* Lawyer profile page */
.profile-photo { width:100%; aspect-ratio:4/5; object-fit:cover; border:1px solid var(--line); display:block; }
.profile-detail.contact-detail { border-color:var(--line); }
.profile-detail small { color:var(--muted); }
.profile-detail a, .profile-detail span { color:var(--ink); }
.profile-detail a { color:var(--gold); }
.profile-fact-block { border-top:1px solid var(--line); padding-top:18px; margin-top:22px; }
.profile-fact-list { margin:10px 0 0; }
.profile-fact-list li { color:var(--muted); font-size:.88rem; line-height:1.6; padding-left:16px; position:relative; margin-bottom:6px; }
.profile-fact-list li::before { content:""; position:absolute; left:0; top:.6em; width:5px; height:5px; background:var(--gold); border-radius:50%; }
.profile-quote { border-left:2px solid var(--gold); padding:6px 0 6px 26px; margin:36px 0; }
.profile-quote p { font-family:'Playfair Display',serif; font-size:1.5rem; font-style:italic; line-height:1.5; color:var(--ink); margin:0 0 10px; }
.profile-quote cite { font-style:normal; font-size:.8rem; letter-spacing:.08em; text-transform:uppercase; color:var(--gold); font-weight:700; }

/* Contact page */
.contact-wrap { border:1px solid var(--line); }
.contact-info { background:var(--ink); color:#fff; padding:60px 50px; height:100%; position:relative; overflow:hidden; }
.contact-info::after { content:""; position:absolute; width:300px; height:300px; right:-140px; bottom:-150px; border:1px solid rgba(181,154,106,.35); border-radius:50%; }
.contact-info h2 { font-family:'Playfair Display',serif; font-size:clamp(1.9rem,3vw,2.6rem); position:relative; z-index:2; }
.contact-info-body { position:relative; z-index:2; }
.contact-form-wrap { background:var(--paper); padding:60px 50px; }
.form-label { font-size:.72rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:var(--ink); margin-bottom:8px; }
.form-control, .form-select { border:1px solid var(--line); border-radius:0; padding:13px 16px; font-size:.94rem; background:var(--paper); }
.form-control:focus, .form-select:focus { border-color:var(--gold); box-shadow:0 0 0 3px rgba(23,105,170,.12); }
textarea.form-control { min-height:140px; resize:vertical; }
.btn-submit { background:var(--gold); color:#fff; border:1px solid var(--gold); padding:15px 30px; font-size:.78rem; font-weight:700; letter-spacing:.09em; text-transform:uppercase; transition:.25s; }
.btn-submit:hover:not(:disabled) { background:#0f5790; border-color:#0f5790; }
.btn-submit:disabled { opacity:.6; cursor:not-allowed; }
.form-status { padding:14px 18px; font-size:.88rem; margin-top:18px; display:none; }
.form-status.is-success { display:block; background:#e7f5ea; color:#1c6b32; border:1px solid #bfe3c8; }
.form-status.is-error { display:block; background:#fbe9e9; color:#a3282a; border:1px solid #f3c3c4; }
/* Honeypot field — hidden from real visitors, catches simple bots */
.hp-field { position:absolute; left:-9999px; top:-9999px; opacity:0; height:0; width:0; overflow:hidden; }

footer { background:#071a31; color:rgba(255,255,255,.6); padding:30px 0; font-size:.78rem; }
footer .brand { font-size:1.15rem; }
.back-top { width:38px;height:38px;border:1px solid rgba(255,255,255,.25);display:flex;align-items:center;justify-content:center;color:#fff; }

@media (max-width:991.98px) {
  .navbar { padding:18px 0; }
  .navbar-collapse { background:rgba(11,31,58,.98); padding:20px; margin-top:15px; }
  .hero-content { padding-top:150px; }
  .page-header-content { padding-top:150px; }
  section { padding:80px 0; }
  .contact-panel { padding:45px 30px; }
  .contact-info, .contact-form-wrap { padding:40px 28px; }
}
@media (max-width:575.98px) {
  .hero h1 { font-size:3.25rem; }
  .hero-meta { gap:25px; }
  .hero-content { padding-bottom:70px; }
  .contact-panel { padding:38px 24px; }
  .download-cta-inner { justify-content:flex-start; }
}
