:root { --navy:#0c2945; --blue:#164d79; --gold:#b68b49; --paper:#f7f5f1; --ink:#17212b; --muted:#5f6970; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; color:var(--ink); background:var(--paper); font:16px/1.65 Arial,Helvetica,sans-serif; }
.site-header { min-height:160px; padding:10px max(5vw,24px); display:flex; gap:34px; align-items:center; background:#fff; border-bottom:1px solid #e6e2db; position:sticky; top:0; z-index:10; overflow:hidden; }
.site-header::before { content:""; position:absolute; inset:0; background:url("assets/logo-3d-v1.png") center 53% / min(790px,68vw) auto no-repeat; opacity:.075; filter:grayscale(1) saturate(.7); pointer-events:none; }
.site-header > * { position:relative; z-index:1; }
.brand { display:flex; margin-right:auto; }.brand img { width:190px; height:100px; object-fit:contain; object-position:center; }
nav { display:flex; align-items:center; gap:25px; } a { color:inherit; } nav a { text-decoration:none; font-weight:600; font-size:14px; }.nav-group { position:relative; display:flex; align-items:center; }.nav-subitem { display:none; }.header-call { font-weight:700; color:var(--blue); text-decoration:none; white-space:nowrap; }.menu-button { display:none; }
@media (min-width:901px) { .nav-group:hover .nav-subitem,.nav-group:focus-within .nav-subitem { display:block; position:absolute; top:100%; left:-16px; min-width:140px; padding:10px 16px; background:#fff; border:1px solid #e6e2db; box-shadow:0 9px 20px rgba(12,41,69,.12); color:var(--blue); } }
.hero { min-height:600px; padding:100px max(9vw,30px); color:#fff; display:grid; grid-template-columns:1.2fr .65fr; align-items:end; gap:70px; background:linear-gradient(115deg, rgba(6,31,55,.98), rgba(11,50,82,.91)), radial-gradient(circle at 85% 20%, #49749a 0, transparent 36%), var(--navy); }
.hero-copy { max-width:765px; }.eyebrow { color:var(--gold); margin:0 0 15px; font-size:12px; letter-spacing:.15em; font-weight:700; text-transform:uppercase; }.hero h1,.section h2,.contact h2 { font-family:Georgia,"Times New Roman",serif; letter-spacing:-.035em; line-height:1.08; margin:0; }.hero h1 { font-size:clamp(42px,5.4vw,76px); }.lead { max-width:650px; font-size:20px; line-height:1.55; color:#e1e7ec; margin:28px 0 34px; }.actions { display:flex; flex-wrap:wrap; gap:13px; }.button { padding:13px 22px; text-decoration:none; font-weight:700; border-radius:2px; }.button-primary { background:var(--gold); color:#182839; }.button-secondary { border:1px solid #b8c7d5; color:#fff; }.hero-panel { padding:31px; background:rgba(255,255,255,.1); border:1px solid rgba(255,255,255,.25); backdrop-filter:blur(4px); }.hero-panel p { margin:0 0 12px; color:#d6b77d; text-transform:uppercase; letter-spacing:.13em; font-size:12px; font-weight:bold; }.hero-panel ul { padding:0; margin:0 0 18px; list-style:none; font-family:Georgia,"Times New Roman",serif; font-size:22px; line-height:1.6; }.hero-panel span { font-size:14px; color:#d8e2e9; }
.section { padding:100px max(9vw,30px); }.intro { max-width:1030px; }.section h2,.contact h2 { font-size:clamp(33px,4vw,54px); max-width:810px; }.intro > p:last-child { max-width:730px; font-size:19px; color:var(--muted); margin-top:25px; }.practice-section { background:#fff; }.section-heading { margin-bottom:43px; }.cards { display:grid; grid-template-columns:repeat(2,1fr); border-top:1px solid #dcd9d1; }.card { padding:30px 30px 33px 0; border-bottom:1px solid #dcd9d1; min-height:225px; }.card:nth-child(odd) { padding-right:55px; }.card:nth-child(even) { padding-left:55px; border-left:1px solid #dcd9d1; }.card span { color:var(--gold); font-weight:bold; }.card h3 { font-family:Georgia,"Times New Roman",serif; font-size:27px; margin:10px 0; line-height:1.2; }.card p { color:var(--muted); margin:0; }.claims { display:grid; grid-template-columns:1fr 1fr; gap:90px; background:#eaf0f4; }.claims ul { padding:0; margin:4px 0 0; list-style:none; columns:2; }.claims li { padding:10px 0; border-bottom:1px solid #cbd6df; break-inside:avoid; }.claims li::before { content:"— "; color:var(--gold); }.profile { display:grid; grid-template-columns:220px 1fr; gap:70px; align-items:center; background:#fff; }.profile-mark { width:180px; height:220px; display:grid; place-items:center; background:var(--navy); color:var(--gold); font:90px/1 Georgia,"Times New Roman",serif; }.profile p:not(.eyebrow) { max-width:680px; color:var(--muted); font-size:18px; }.profile-note { font-weight:700; color:var(--blue)!important; }.contact { padding:85px max(9vw,30px); display:grid; grid-template-columns:1fr 1fr; gap:60px; color:#fff; background:var(--navy); }.contact .eyebrow { color:#d6b77d; }.contact-details { font-size:20px; }.contact-details a { display:block; width:max-content; max-width:100%; color:#fff; text-decoration-color:var(--gold); text-underline-offset:5px; margin-bottom:14px; font-weight:600; }.contact-details p { color:#c6d3dc; margin-top:25px; } footer { padding:25px max(5vw,24px); background:#091d31; color:#b7c7d4; display:flex; flex-wrap:wrap; gap:8px 24px; font-size:12px; }.draft-note { color:#d6b77d; }
.claims ul { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); column-gap:24px; }.claims li { break-inside:auto; }
.card-link,.text-link { display:inline-block; margin-top:18px; color:var(--blue); font-weight:700; text-decoration-color:var(--gold); text-underline-offset:5px; }.service-page { background:#fff; }.service-hero { padding:95px max(9vw,30px) 85px; color:#fff; background:linear-gradient(115deg,rgba(6,31,55,.98),rgba(11,50,82,.9)),var(--navy); }.service-hero h1,.service-content h2,.service-list-section h2 { max-width:900px; margin:0; font-family:Georgia,"Times New Roman",serif; letter-spacing:-.035em; line-height:1.1; }.service-hero h1 { font-size:clamp(42px,5vw,68px); }.service-hero > p:not(.eyebrow) { max-width:760px; margin:26px 0 32px; color:#d9e3ea; font-size:19px; }.service-content { display:grid; grid-template-columns:.86fr 1.14fr; gap:90px; padding:90px max(9vw,30px); }.service-content h2,.service-list-section h2 { font-size:clamp(36px,4vw,54px); }.service-content p:not(.eyebrow) { max-width:720px; color:var(--muted); font-size:18px; }.service-list-section { padding:82px max(9vw,30px); background:#eaf0f4; }.service-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 35px; max-width:1080px; padding:0; margin:35px 0 0; list-style:none; }.service-list li { padding:14px 0; border-bottom:1px solid #cbd6df; }.service-list li::before { content:"— "; color:var(--gold); }.service-contrast { background:#fff; }
.legal-page { max-width:920px; padding:90px max(9vw,30px) 110px; background:#fff; }.legal-page h1,.forms-page h1 { font:clamp(42px,5vw,62px)/1.1 Georgia,"Times New Roman",serif; letter-spacing:-.035em; margin:0 0 55px; }.legal-page section { border-top:1px solid #dcd9d1; padding:27px 0 11px; }.legal-page h2 { font:26px/1.2 Georgia,"Times New Roman",serif; margin:0 0 13px; }.legal-page p { max-width:730px; }.legal-page a { color:var(--blue); }.legal-page strong { color:var(--ink); }.forms-page { padding:90px max(9vw,30px) 110px; background:#fff; }.forms-intro { max-width:700px; margin:-25px 0 48px; color:var(--muted); font-size:19px; }.form-cards { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:22px; max-width:1000px; }.form-card { padding:34px; border:1px solid #d7d3cb; background:var(--paper); }.file-mark { display:inline-block; color:var(--gold); font-weight:700; font-size:12px; letter-spacing:.13em; }.form-card h2 { margin:15px 0 11px; font:29px/1.16 Georgia,"Times New Roman",serif; }.form-card p { color:var(--muted); min-height:80px; }.download-link { display:inline-block; margin-top:15px; padding:12px 16px; background:var(--navy); color:#fff; font-weight:700; text-decoration:none; }.download-link span { margin-left:14px; color:var(--gold); }.forms-note { max-width:1000px; margin-top:25px; padding:20px 24px; border-left:4px solid var(--gold); background:#eaf0f4; color:#33424e; }
.about-page { background:#fff; }.about-hero { padding:95px max(9vw,30px) 85px; display:grid; grid-template-columns:1.15fr .85fr; gap:50px; color:#fff; background:linear-gradient(115deg,rgba(6,31,55,.98),rgba(11,50,82,.9)),var(--navy); }.about-hero h1,.about-copy h2,.about-callout h2 { margin:0; font-family:Georgia,"Times New Roman",serif; letter-spacing:-.035em; line-height:1.1; }.about-hero h1 { max-width:810px; font-size:clamp(42px,5vw,68px); }.about-hero > p { align-self:end; justify-self:end; max-width:400px; margin:0; color:#d9e3ea; font-size:19px; }.about-content { padding:95px max(9vw,30px); display:grid; grid-template-columns:.82fr 1.18fr; gap:90px; }.about-facts { display:grid; gap:1px; align-content:start; background:#d9e1e7; }.about-facts div { padding:27px; background:#eaf0f4; }.about-facts strong { display:block; margin-bottom:6px; color:var(--blue); font:34px/1 Georgia,"Times New Roman",serif; }.about-facts span { color:#52616c; font-size:14px; line-height:1.45; }.about-copy h2 { font-size:clamp(36px,4vw,54px); }.about-copy p:not(.eyebrow) { color:var(--muted); font-size:18px; max-width:740px; }.about-callout { padding:75px max(9vw,30px); color:#fff; background:var(--navy); }.about-callout .eyebrow { color:#d6b77d; }.about-callout h2 { max-width:860px; font-size:clamp(34px,4vw,52px); margin-bottom:30px; }
@media (max-width:900px) { .site-header { min-height:92px; gap:14px; }.brand img { width:130px; height:72px; }.header-call { display:none; }.menu-button { display:block; background:none; border:0; color:var(--blue); font:700 14px Arial,Helvetica,sans-serif; } nav { display:none; position:absolute; top:92px; left:0; right:0; padding:18px 24px 22px; background:#fff; border-bottom:1px solid #ddd; flex-direction:column; gap:15px; } nav.open { display:flex; } nav .nav-group { position:static; display:flex; flex-direction:column; gap:9px; } nav .nav-subitem { display:block; padding-left:18px; color:var(--muted); } nav .nav-subitem::before { content:"— "; color:var(--gold); }.hero { min-height:unset; padding-top:78px; padding-bottom:55px; grid-template-columns:minmax(0,1fr); gap:40px; }.hero-panel { max-width:400px; }.lead { font-size:17px; }.section { padding-top:68px; padding-bottom:68px; }.cards,.claims,.profile,.contact,.form-cards,.about-hero,.about-content { grid-template-columns:minmax(0,1fr); gap:34px; }.card,.card:nth-child(odd),.card:nth-child(even) { padding:25px 0; border-left:0; }.claims ul { columns:1; }.profile-mark { width:115px; height:135px; font-size:64px; }.contact { padding-top:65px; padding-bottom:65px; }.legal-page,.forms-page { padding-top:58px; padding-bottom:75px; }.form-card,.about-hero > div,.about-hero > p { min-width:0; }.form-card p { min-height:unset; }.form-card h2,.about-hero h1 { overflow-wrap:anywhere; }.about-hero,.about-content { padding-top:65px; padding-bottom:65px; } }
@media (max-width:900px) { .site-header { overflow:visible; } .site-header nav { position:absolute; z-index:2; } }
@media (max-width:900px) { .claims ul { grid-template-columns:minmax(0,1fr); } }
@media (max-width:900px) { .service-hero,.service-content,.service-list-section { min-width:0; padding-top:65px; padding-bottom:65px; }.service-content,.service-list { grid-template-columns:minmax(0,1fr); gap:34px; }.service-content > div { min-width:0; }.service-hero h1,.service-content h2,.service-list-section h2 { overflow-wrap:anywhere; }.service-list { margin-top:28px; } }

/* Mobile typography: whole words and fluid sizing, 2026-09-08. */
.hero-copy, .card, .profile > div, .contact > div { min-width: 0; }
@media (max-width: 900px) {
  .hero h1, .section h2, .contact h2, .card h3,
  .service-hero h1, .service-content h2, .service-list-section h2,
  .about-hero h1, .about-copy h2, .about-callout h2,
  .legal-page h1, .legal-page h2, .forms-page h1, .form-card h2 {
    overflow-wrap: normal;
    word-break: normal;
    hyphens: none;
    text-wrap: balance;
  }
}
@media (max-width: 600px) {
  .hero h1, .service-hero h1, .legal-page h1, .forms-page h1 {
    font-size: clamp(1.875rem, 6.5vw, 2.75rem);
    line-height: 1.14;
  }
  .about-hero h1 {
    font-size: clamp(1.375rem, 5.7vw, 2.125rem);
    line-height: 1.2;
  }
  .section h2, .contact h2, .service-content h2,
  .service-list-section h2, .about-copy h2, .about-callout h2 {
    font-size: clamp(1.625rem, 5.5vw, 2.125rem);
    line-height: 1.18;
  }
  .card h3, .form-card h2, .legal-page h2 {
    font-size: clamp(1.375rem, 4.8vw, 1.6875rem);
    line-height: 1.25;
  }
  .form-card { padding: 24px 20px; }
  .contact-details { font-size: 1.125rem; }
  .contact-details a { overflow-wrap: anywhere; }
}

@media (max-width: 360px) {
  .hero, .section, .contact, .service-hero, .service-content,
  .service-list-section, .about-hero, .about-content, .about-callout,
  .legal-page, .forms-page { padding-left: 20px; padding-right: 20px; }
  .service-hero h1 { font-size: 1.75rem; }
  .about-hero h1, .form-card h2 { font-size: 1.25rem; }
}
@media (min-width: 901px) {
  .about-hero h1 { font-size: clamp(2rem, 3.6vw, 3.75rem); }
}
@media (min-width: 901px) and (max-width: 1100px) { .form-cards { grid-template-columns: minmax(0,1fr); } }

.contact-form-wrap { grid-column: 1 / -1; min-width: 0; border-top: 1px solid #637c92; padding-top: 28px; }
section[id] { scroll-margin-top: 180px; }
@media (max-width: 900px) { section[id] { scroll-margin-top: 110px; } }
.contact-frame { display: block; width: 100%; height: 900px; border: 0; background: #0c2945; }
.contact-form-fallback { font-size: 14px; }
.contact-form-fallback a { color: #fff; text-decoration-color: #d6b77d; text-underline-offset: 4px; }
@media (max-width: 600px) { .contact-frame { height: 1350px; } }
