/* =================================================================
   Spivak & Sakellariou — Conversion Refresh
   Brand system aligned to the official GSAS Brand Guidelines (Apr 2023):
   Gotham (subbed with Montserrat, the closest open-license geometric
   match) used throughout, with exact brand hex values:
   Midnight Blue #08292E, Metallic #8F7B5A, Platinum #BCC7C9, White.

   NOTE: a round-14 creative-direction experiment briefly swapped
   --font-serif to Fraunces to test an editorial/boutique feel. Confirmed
   against the actual 38-page brand guide (Section Three, Typography) that
   Gotham/Montserrat is the ONLY specified typeface — no secondary or
   alternate font is offered anywhere in the guide. Reverted per Andrea's
   decision (round 15) to stay brand-guide-compliant.
================================================================= */

@import url('https://fonts.googleapis.com/css2?family=Montserrat:ital,wght@0,400;0,500;0,600;0,700;0,800;1,400;1,500;1,600&display=swap');

:root{
  --ink: #08292e;          /* Midnight Blue — brand primary dark */
  --ink-2: #051a1d;         /* deepest, footer (darker step from Midnight Blue) */
  --gold: #8f7b5a;          /* Metallic — brand primary accent */
  --gold-light: #cdb78f;    /* light gold, for text on dark */
  --platinum: #bcc7c9;      /* Platinum — brand secondary */
  --cream: #f5f2ec;         /* base background */
  --cream-2: #fbf9f5;       /* alt light section */
  --cream-3: #f0ebe0;       /* testimonial section */
  --white: #ffffff;
  --body: #46555a;
  --body-2: #52615f;
  --body-3: #62706f;
  --muted: #8a949a;
  --line: rgba(8,41,46,0.12);
  --line-gold: rgba(143,123,90,0.3);
  --line-platinum: rgba(188,199,201,0.55);
  --shadow: 0 18px 48px rgba(8,41,46,0.14);
  --shadow-lg: 0 24px 60px rgba(8,41,46,0.18);

  --font-serif: 'Montserrat', system-ui, sans-serif;
  --font-sans: 'Montserrat', system-ui, sans-serif;

  --container: 1180px;
}

*, *::before, *::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
body{
  margin:0;
  font-family:var(--font-sans);
  color:var(--body);
  background:var(--cream);
  line-height:1.62;
  font-size:17px;
  -webkit-font-smoothing:antialiased;
}
img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
ul{ margin:0; padding:0; list-style:none; }
h1,h2,h3,h4{ font-family:var(--font-serif); font-weight:700; line-height:1.14; letter-spacing:-0.015em; color:var(--ink); margin:0 0 .5em; }
h1{ font-size:clamp(2.3rem, 4vw, 3rem); }
h2{ font-size:clamp(1.85rem, 3.1vw, 2.6rem); }
h3{ font-size:1.3rem; }
p{ margin:0 0 1em; }
.container{ max-width:var(--container); margin:0 auto; padding:0 32px; }
.eyebrow{
  font-family:var(--font-sans);
  text-transform:uppercase;
  letter-spacing:.19em;
  font-size:12.5px;
  font-weight:600;
  color:var(--gold);
  display:block;
  margin-bottom:18px;
}
.eyebrow--onDark{ color:var(--gold-light); }
.section{ padding:90px 0; }
.section--tight{ padding:56px 0; }
.section--ink{ background:var(--ink); color:var(--cream); }
.section--ink h1, .section--ink h2, .section--ink h3, .section--ink h4{ color:var(--cream); }
.section--cream2{ background:var(--cream-2); }
.section--cream3{ background:var(--cream-3); border-top:1px solid var(--line-gold); }
.section--bordered{ background:var(--cream-2); border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.center{ text-align:center; }
.lede{ font-size:1.1rem; max-width:640px; }
.center .lede{ margin-left:auto; margin-right:auto; }
.italic-accent{ font-style:normal; color:var(--gold); }
.visually-hidden{ position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); }

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:.5em;
  padding:16px 28px;
  font-weight:600;
  font-size:1.02rem;
  border-radius:9px;
  border:1.5px solid transparent;
  cursor:pointer;
  transition:all .18s ease;
  white-space:nowrap;
  font-family:var(--font-sans);
}
.btn--gold{ background:var(--gold); color:var(--white); }
.btn--gold:hover{ background:#a08a64; }
.btn--outline{ background:transparent; color:var(--ink); border-color:rgba(32,47,50,.25); }
.btn--outline:hover{ border-color:var(--ink); }
.btn--outline-onDark{ background:transparent; color:var(--cream); border-color:rgba(245,242,236,.4); }
.btn--outline-onDark:hover{ border-color:var(--cream); background:rgba(245,242,236,.06); }
.btn--block{ width:100%; }
.btn--sm{ padding:12px 20px; font-size:.92rem; border-radius:8px; }

/* ---------- Header ---------- */
header.site-header{ position:sticky; top:0; z-index:60; background:var(--ink); border-bottom:1px solid var(--line-gold); }
.header-row{ display:flex; align-items:center; justify-content:space-between; gap:24px; padding:16px 0; }
.logo img{ height:68px; width:auto; }
.header-actions{ display:flex; align-items:center; gap:18px; }
.header-call{
  display:flex; align-items:center; gap:11px;
  background:rgba(188,199,201,.09); border:1px solid rgba(205,183,143,.4); border-radius:8px;
  padding:8px 18px;
}
.header-call svg{ flex:none; color:var(--gold-light); }
.header-call-text{ display:flex; flex-direction:column; line-height:1.25; gap:2px; }
.header-call-text span{ font-size:10px; letter-spacing:.14em; text-transform:uppercase; color:rgba(245,242,236,.55); white-space:nowrap; }
.header-call-text a{ font-family:var(--font-serif); font-size:20px; color:var(--gold-light); font-weight:500; white-space:nowrap; }
.nav-toggle{ display:none; background:none; border:0; color:var(--cream); font-size:1.6rem; padding:8px; cursor:pointer; }

@media (max-width: 480px){
  .header-call{ display:none; }
  .header-actions{ gap:12px; }
}

nav.main-nav{ background:var(--ink-2); }
nav.main-nav ul{ display:flex; gap:2px; max-width:var(--container); margin:0 auto; padding:0 32px; }
nav.main-nav a{ display:block; color:rgba(245,242,236,.75); padding:14px 16px; font-size:.92rem; font-weight:500; border-bottom:2px solid transparent; }
nav.main-nav a:hover, nav.main-nav a.active{ color:var(--white); border-bottom-color:var(--gold); }

.has-dropdown{ position:relative; }
.has-dropdown > a{ display:flex; align-items:center; gap:6px; }
.has-dropdown .caret{ font-size:.62em; transition:transform .18s ease; position:relative; top:1px; }
.nav-dropdown{ display:none; }

@media (min-width: 901px){
  .nav-dropdown{
    position:absolute; top:100%; left:0; min-width:240px;
    background:var(--ink-2); border:1px solid var(--line-gold); border-top:3px solid var(--gold);
    border-radius:8px; padding:8px; box-shadow:var(--shadow-lg); z-index:50;
  }
  .has-dropdown:hover .nav-dropdown, .has-dropdown:focus-within .nav-dropdown{ display:block; }
  .has-dropdown:hover .caret, .has-dropdown:focus-within .caret{ transform:rotate(180deg); }
  .nav-dropdown a{ display:block; padding:11px 14px; font-size:.87rem; font-weight:500; color:rgba(245,242,236,.78); border-bottom:none; border-radius:6px; }
  .nav-dropdown a:hover{ background:rgba(245,242,236,.07); color:var(--white); }
}

@media (max-width: 900px){
  .header-call span{ display:none; }
  .nav-toggle{ display:block; }
  nav.main-nav{ display:none; position:absolute; left:0; right:0; z-index:40; box-shadow:var(--shadow-lg); }
  nav.main-nav.is-open{ display:block; }
  nav.main-nav ul{ flex-direction:column; gap:0; padding:0; }
  nav.main-nav a{ padding:16px 24px; border-bottom:1px solid rgba(255,255,255,0.08); }
  .has-dropdown .caret{ display:none; }
  .nav-dropdown{ display:block; padding:0 0 6px 16px; }
  .nav-dropdown a{ padding:11px 24px; font-size:.84rem; color:rgba(245,242,236,.6); border-bottom:1px solid rgba(255,255,255,0.06); }
}

/* ---------- Sticky mobile call/text bar ---------- */
.mobile-cta-bar{ display:none; }
@media (max-width: 640px){
  .mobile-cta-bar{
    display:flex; position:fixed; left:0; right:0; bottom:0; z-index:80;
    gap:10px; background:var(--ink); border-top:1px solid var(--line-gold);
    padding:10px 12px calc(10px + env(safe-area-inset-bottom));
    box-shadow:0 -6px 20px rgba(0,0,0,.22);
  }
  .mobile-cta-bar a{
    flex:1; display:flex; align-items:center; justify-content:center; gap:7px;
    padding:13px 8px; border-radius:4px; font-family:var(--font-sans);
    font-weight:600; font-size:14.5px; text-decoration:none; white-space:nowrap;
  }
  .mobile-cta-bar svg{ width:17px; height:17px; flex:none; }
  .mobile-cta-call{ background:var(--gold); color:var(--ink-2); }
  .mobile-cta-call:hover{ background:var(--gold-light); }
  .mobile-cta-text{ background:transparent; border:1.5px solid var(--line-gold); color:var(--cream); }
  .mobile-cta-text:hover{ border-color:var(--gold-light); color:var(--gold-light); }
  body{ padding-bottom:64px; }
}

/* ---------- Hero ---------- */
.hero{ background:var(--cream); }
.hero-grid{ display:grid; grid-template-columns:1.08fr .92fr; gap:60px; align-items:center; padding:74px 0 86px; }
@media (max-width: 900px){ .hero-grid{ grid-template-columns:1fr; padding:48px 0 56px; } }
.hero .eyebrow{ margin-bottom:12px; }
.hero h1{ line-height:1.08; margin-bottom:20px; }
.hero-body{ font-size:19px; max-width:33em; color:var(--body); margin-bottom:34px; }
.hero-actions{ display:flex; flex-wrap:wrap; gap:14px; align-items:center; }
.hero-stars{ display:flex; align-items:center; gap:13px; margin-top:30px; }
.hero-stars .stars{ color:var(--gold); font-size:17px; letter-spacing:1px; }
.hero-stars .rating-text{ font-size:14.5px; color:#5a686b; }
.hero-stars strong{ color:var(--ink); }

.hero-photo-wrap{ position:relative; }
.hero-photo-wrap::before{
  content:''; position:absolute; z-index:0;
  right:-22px; top:-22px; width:62%; height:44%;
  background:var(--platinum); opacity:.55; border-radius:2px;
}
.hero-photo{ position:relative; z-index:1; width:100%; aspect-ratio:4/4.6; object-fit:cover; border-radius:0; box-shadow:var(--shadow-lg); }
.hero-quote-card{
  position:absolute; z-index:2; left:-26px; bottom:38px; max-width:255px;
  background:var(--white); border-radius:4px; padding:20px 22px;
  box-shadow:0 18px 44px rgba(32,47,50,.2); border-top:3px solid var(--gold);
}
.hero-quote-card .stars{ color:var(--gold); font-size:13px; letter-spacing:1px; }
.hero-quote-card p{ font-family:var(--font-serif); font-style:italic; font-size:17px; color:var(--ink); line-height:1.32; margin:8px 0 10px; }
.hero-quote-card cite{ font-family:var(--font-sans); font-style:normal; font-size:12.5px; font-weight:600; letter-spacing:.04em; text-transform:uppercase; color:var(--muted); }
@media (max-width: 640px){ .hero-quote-card{ position:static; margin-top:18px; max-width:none; } }

.page-banner{ background:var(--ink); color:var(--cream); padding:70px 0 56px; text-align:center; }
.page-banner h1{ color:var(--cream); margin:0; }

/* ---------- Trust strip (reasons to believe) ---------- */
.trust-strip{ background:var(--cream-2); border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.trust-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:30px; padding:44px 0; }
@media (max-width: 900px){ .trust-grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width: 540px){ .trust-grid{ grid-template-columns:1fr; } }
.trust-item{ display:flex; flex-direction:column; align-items:center; text-align:center; gap:9px; }
.trust-icon{ width:46px; height:46px; border-radius:50%; background:rgba(188,199,201,.4); display:flex; align-items:center; justify-content:center; margin-bottom:4px; }
.trust-icon svg{ stroke:var(--ink); }
.trust-item h3{ font-size:18px; margin-bottom:0; }
.trust-item p{ font-size:13.5px; color:var(--body-3); line-height:1.45; margin-bottom:0; }

/* ---------- Empathy / attorney note (dark) ---------- */
.attorney-notes{ display:grid; grid-template-columns:1fr 1fr; gap:26px; }
@media (max-width: 760px){ .attorney-notes{ grid-template-columns:1fr; } }
.attorney-note{ background:var(--ink-2); border:1px solid var(--line-gold); border-top:3px solid var(--gold); border-radius:4px; padding:30px 32px; box-shadow:0 16px 36px rgba(0,0,0,.24); }
.attorney-note blockquote{ font-family:var(--font-serif); font-style:italic; font-size:21px; line-height:1.42; color:var(--cream); margin:0 0 24px; }
.attorney-note .who{ display:flex; align-items:center; gap:14px; }
.attorney-note img{ width:54px; height:54px; border-radius:50%; object-fit:cover; object-position:center top; }
.attorney-note .name{ font-family:var(--font-serif); font-size:19px; color:var(--cream); }
.attorney-note .role{ font-size:13px; text-transform:uppercase; letter-spacing:.12em; color:var(--gold-light); }

/* ---------- How we help (photo + list) ---------- */
.help-grid{ display:grid; grid-template-columns:.92fr 1.08fr; gap:60px; align-items:center; }
.help-grid--reverse{ grid-template-columns:1.08fr .92fr; }
@media (max-width: 860px){ .help-grid{ grid-template-columns:1fr; } .help-grid--reverse{ grid-template-columns:1fr; } .help-grid--reverse .help-photo-wrap{ order:-1; } }
.help-photo-wrap{ position:relative; }
.help-photo-wrap::before{
  content:''; position:absolute; z-index:0;
  left:-22px; top:-22px; width:62%; height:44%;
  background:var(--platinum); opacity:.55; border-radius:2px;
}
.help-photo{ position:relative; z-index:1; width:100%; aspect-ratio:4/3.4; object-fit:cover; border-radius:0; box-shadow:var(--shadow); }
.help-list{ display:flex; flex-direction:column; gap:4px; }
.help-item{ display:flex; gap:18px; padding:20px 0; border-top:1px solid var(--line); }
.help-item .diamond{ width:8px; height:8px; flex:none; background:var(--gold); transform:rotate(45deg); margin-top:9px; }
.help-item h4{ font-family:var(--font-serif); font-size:20px; color:var(--ink); margin-bottom:4px; font-weight:500; }
.help-item p{ font-size:15px; color:var(--body-3); margin-bottom:0; }


/* ---------- Practice cards ---------- */
.grid{ display:grid; gap:24px; }
.grid--3{ grid-template-columns:repeat(3,1fr); }
.grid--4{ grid-template-columns:repeat(4,1fr); }
.grid--2{ grid-template-columns:repeat(2,1fr); }
@media (max-width: 980px){ .grid--3, .grid--4{ grid-template-columns:repeat(2,1fr); } }
@media (max-width: 640px){ .grid--3, .grid--4, .grid--2{ grid-template-columns:1fr; } }

.card{ background:var(--white); border:1px solid var(--line); border-radius:4px; padding:30px 28px; transition:box-shadow .18s ease, transform .18s ease; }
.card:hover{ box-shadow:var(--shadow); transform:translateY(-3px); }
.card h3{ font-size:22px; margin-bottom:.3em; }
.card h3 a{ color:var(--ink); }
.card p{ color:var(--body-3); font-size:.96rem; }
.card-link{ font-weight:600; color:var(--gold); font-size:.92rem; border-bottom:2px solid var(--gold); padding-bottom:2px; }

/* Numbered / diamond process steps */
.steps{ display:grid; grid-template-columns:repeat(4,1fr); gap:24px; }
@media (max-width: 980px){ .steps{ grid-template-columns:repeat(2,1fr); } }
@media (max-width: 640px){ .steps{ grid-template-columns:1fr; } }
.step-num{ display:inline-flex; align-items:center; justify-content:center; width:38px; height:38px; background:var(--gold); color:var(--white); font-family:var(--font-serif); font-weight:600; font-size:1.1rem; border-radius:50%; margin-bottom:14px; }
.step h4{ font-size:1.1rem; margin-bottom:.35em; }
.step p{ font-size:.92rem; color:var(--body-3); margin-bottom:0; }
.section--ink .step p{ color:rgba(245,242,236,.7); }

/* CDL / differentiator tiles on ink bg */
.tile-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }
@media (max-width: 860px){ .tile-grid{ grid-template-columns:1fr; } }
.tile{ background:var(--ink-2); border:1px solid var(--line-gold); border-top:3px solid var(--gold); border-radius:4px; padding:30px 26px; box-shadow:0 16px 36px rgba(0,0,0,.28); }
.tile .t{ font-family:var(--font-serif); font-size:21px; color:var(--cream); margin-bottom:10px; }
.tile .b{ font-size:15px; line-height:1.55; color:rgba(245,242,236,.66); }

/* photo variant of .tile — real photography behind each card instead of a flat fill */
.tile--photo{ position:relative; overflow:hidden; background-size:cover; background-position:center; border-top:none; }
.tile--photo::before{ content:''; position:absolute; inset:0; background:linear-gradient(180deg, rgba(5,26,29,.32) 0%, rgba(5,26,29,.86) 62%, rgba(5,26,29,.95) 100%); z-index:0; }
.tile--photo .t, .tile--photo .b{ position:relative; z-index:1; }
.tile--photo .t{ padding-bottom:12px; border-bottom:1px solid rgba(245,242,236,.35); display:inline-block; }

/* ---------- Testimonials ---------- */
.rating-summary{ display:inline-flex; align-items:center; gap:12px; }
.rating-summary .stars{ color:var(--gold); font-size:18px; letter-spacing:1px; }
.rating-summary strong{ color:var(--ink); }
a.rating-summary{ text-decoration:none; color:inherit; }
a.rating-summary span:last-child{ border-bottom:1px solid var(--line-gold); padding-bottom:1px; transition:border-color .2s ease; }
a.rating-summary:hover span:last-child{ border-color:var(--gold); }
.hero-stars a{ text-decoration:none; }
.hero-stars .rating-text{ border-bottom:1px solid var(--line-gold); padding-bottom:1px; transition:border-color .2s ease; }
.hero-stars a:hover .rating-text{ border-color:var(--gold); }
.testimonial-card{ background:var(--white); border-radius:4px; padding:30px 28px; box-shadow:0 6px 24px rgba(32,47,50,.07); display:flex; flex-direction:column; border-top:3px solid var(--gold-light); height:100%; }
.testimonial-card .stars{ color:var(--gold); font-size:14px; letter-spacing:1.5px; margin-bottom:14px; display:block; }
.quote-title{ font-family:var(--font-serif); font-weight:700; font-size:16.5px; line-height:1.3; color:var(--ink); margin-bottom:10px; }
.featured-quote-card .quote-title{ position:relative; font-size:18px; margin-bottom:14px; }
.testimonial-card blockquote{ font-family:var(--font-serif); font-size:19px; line-height:1.46; color:#26343a; flex:1; margin:0 0 22px; font-style:normal; }
.testimonial-card .name{ font-weight:700; font-size:15px; color:var(--ink); }
.testimonial-card .meta{ font-size:12.5px; color:var(--muted); }

/* expandable variant used on the full testimonials page */
.testimonial-card details summary{ cursor:pointer; list-style:none; color:var(--gold); font-weight:600; font-size:.85rem; margin-top:8px; }
.testimonial-card details summary::-webkit-details-marker{ display:none; }
.testimonial-card details summary::after{ content:'Read full review'; }
.testimonial-card details[open] summary::after{ content:'Show less'; }

/* ---------- Team ---------- */
/* Editorial layered treatment: a platinum color-block sits behind a large
   portrait; the bio text is a separate card pulled up over the photo's
   bottom edge and offset to the right, so the two elements read as a single
   composed portrait rather than a flat side-by-side card. Same markup as
   before (img followed by a text div) — purely a CSS restructure. */
.team-card{ position:relative; display:block; background:none; border-radius:0; padding:0 0 8px; box-shadow:none; }
.team-card::before{
  content:''; position:absolute; z-index:0;
  left:-16px; right:10%; top:14%; height:44%;
  background:var(--platinum); opacity:.5; border-radius:2px;
}
.team-card img{
  position:relative; z-index:1; display:block;
  width:76%; aspect-ratio:3/4; border-radius:2px;
  object-fit:cover; object-position:center top;
  box-shadow:0 22px 44px rgba(8,41,46,.2);
}
.team-card > div{
  position:relative; z-index:2; background:var(--white);
  margin:-120px 0 0 22%; max-width:72%;
  padding:26px 28px 22px; border-left:6px solid var(--gold);
  box-shadow:var(--shadow-lg);
}
.team-card h3{ font-style:italic; font-weight:600; }
.team-card .role{ font-size:12.5px; text-transform:uppercase; letter-spacing:.13em; color:var(--gold); margin-bottom:14px; }
.team-card p{ font-size:14.5px; color:var(--body-3); margin-bottom:18px; }
.team-card details summary{ cursor:pointer; list-style:none; font-weight:600; font-size:14.5px; color:var(--ink); border-bottom:2px solid var(--gold); padding-bottom:2px; display:inline-block; }
.team-card details summary::-webkit-details-marker{ display:none; }
.team-card details summary::after{ content:' →'; }
.team-card details[open] summary::after{ content:''; }
.team-card details p:last-child{ margin-top:12px; }
@media (max-width: 700px){
  .team-card::before{ display:none; }
  .team-card img{ width:100%; max-width:300px; margin:0 auto; box-shadow:var(--shadow); }
  .team-card > div{ margin:-44px auto 0; max-width:88%; padding:24px 22px 20px; }
}

/* ---------- States / locations ---------- */
.state-card{ background:var(--white); border:1px solid var(--line); border-radius:4px; overflow:hidden; display:flex; flex-direction:column; }
.state-card img{ width:100%; height:220px; object-fit:contain; background:var(--cream-2); padding:14px; }
.state-card .state-body{ padding:22px; flex:1; display:flex; flex-direction:column; }
.state-card .cities{ font-size:.85rem; color:var(--gold); font-weight:600; margin-bottom:.6em; }
.state-card p{ font-size:.92rem; color:var(--body-3); flex:1; }

/* ---------- Accordion (FAQ + SEO content) ---------- */
.accordion-group{ display:flex; flex-direction:column; }
.accordion{ border-top:1px solid rgba(32,47,50,.13); }
.accordion:last-child{ border-bottom:1px solid rgba(32,47,50,.13); }
.accordion summary{ cursor:pointer; list-style:none; display:flex; align-items:center; justify-content:space-between; gap:24px; padding:24px 0; }
.accordion summary::-webkit-details-marker{ display:none; }
.accordion summary .q{ font-family:var(--font-serif); font-size:21px; color:var(--ink); }
.accordion summary .sign{ font-family:var(--font-sans); font-size:26px; color:var(--gold); line-height:1; flex:none; font-weight:400; }
.accordion .accordion-body{ padding:0 0 26px; color:var(--body-2); font-size:16.5px; max-width:60em; }
.accordion .accordion-body ul{ margin:0 0 1em; padding-left:1.2em; list-style:disc; }
.accordion .accordion-body li{ margin-bottom:.4em; }
.accordion .accordion-body h4{ font-size:1.05rem; margin-top:1.3em; color:var(--ink); }

/* ---------- CTA / contact section ---------- */
.contact-grid{ display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:start; }
@media (max-width: 860px){ .contact-grid{ grid-template-columns:1fr; gap:40px; } }
.contact-phone{ display:inline-flex; flex-direction:column; margin-bottom:40px; }
.contact-phone span{ font-size:12px; text-transform:uppercase; letter-spacing:.14em; color:rgba(245,242,236,.55); }
.contact-phone strong{ font-family:var(--font-serif); font-size:38px; color:var(--gold-light); line-height:1.1; font-weight:500; }
.next-steps{ display:flex; flex-direction:column; gap:16px; border-top:1px solid var(--line-gold); padding-top:28px; }
.next-steps-label{ font-size:12.5px; text-transform:uppercase; letter-spacing:.14em; color:var(--gold-light); }
.next-step{ display:flex; gap:14px; align-items:baseline; }
.next-step .n{ font-family:var(--font-serif); font-style:italic; font-size:20px; color:var(--gold); width:26px; flex:none; }
.next-step .t{ font-size:16px; color:rgba(245,242,236,.85); }

.lead-form{ background:var(--cream); border-radius:6px; padding:34px; box-shadow:0 24px 60px rgba(15,22,24,.3); }
.lead-form h3{ font-size:25px; margin-bottom:6px; color:var(--ink); }
.lead-form .lede{ font-size:14.5px; color:var(--body-3); margin-bottom:24px; }
.form-stack{ display:flex; flex-direction:column; gap:15px; }
.form-2col{ display:flex; gap:15px; }
@media (max-width: 480px){ .form-2col{ flex-direction:column; } }
.form-stack input, .form-stack select, .form-stack textarea{
  width:100%; padding:14px 16px; border:1px solid rgba(32,47,50,.2); border-radius:9px; font-size:15.5px;
  background:var(--white); color:var(--ink); outline:none; font-family:var(--font-sans);
}
.form-stack textarea{ resize:vertical; }
.sms-row{ display:flex; gap:11px; align-items:flex-start; font-size:13px; color:var(--body-3); }
.sms-check{ width:20px; height:20px; flex:none; border-radius:5px; display:flex; align-items:center; justify-content:center; font-size:13px; color:#fff; border:1.5px solid var(--gold); background:var(--gold); margin-top:1px; }
.form-fineprint{ font-size:11.5px; color:var(--muted); text-align:center; line-height:1.5; margin-top:4px; }

/* ---------- Memberships ---------- */
.membership-row{ display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:26px 30px; max-width:none; margin:0 auto; }
.membership-tile{ display:flex; align-items:center; justify-content:center; flex:none; opacity:.88; transition:opacity .2s ease, transform .2s ease; }
.membership-tile:hover{ opacity:1; transform:translateY(-2px); }
.membership-tile img{ max-width:100%; height:54px; width:auto; object-fit:contain; }
/* AAJ's and ABA's official marks are wide horizontal lockups (icon + wordmark), not the
   compact square/icon-led badges the other 4 marks use — scale them down so their
   rendered width stays in line with the rest of the row instead of forcing a wrap. */
.membership-tile--aaj img{ height:33px; }
.membership-tile--aba img{ height:30px; }
/* Below the container's own 1180px max-width, the row has less room than the desktop
   sizing assumes — shrink one notch earlier so 6 logos still fit one line at
   in-between/tablet viewports instead of wrapping unevenly. */
@media (max-width: 1180px){ .membership-row{ gap:20px 22px; } .membership-tile img{ height:44px; } .membership-tile--aaj img{ height:27px; } .membership-tile--aba img{ height:24px; } }
@media (max-width: 900px){ .membership-row{ gap:18px 20px; } .membership-tile img{ height:38px; } .membership-tile--aaj img{ height:23px; } .membership-tile--aba img{ height:21px; } }
@media (max-width: 640px){ .membership-row{ gap:20px 24px; justify-content:center; } .membership-tile img{ height:44px; } .membership-tile--aaj img{ height:28px; } .membership-tile--aba img{ height:25px; } }

/* ---------- Footer ---------- */
.site-footer{ background:var(--ink-2); color:rgba(245,242,236,.75); font-size:.92rem; }
.footer-grid{ display:grid; grid-template-columns:1.3fr .85fr 1fr 1fr; gap:36px; padding:54px 0 40px; align-items:start; }
@media (max-width: 900px){ .footer-grid{ grid-template-columns:1fr 1fr; } }
@media (max-width: 560px){ .footer-grid{ grid-template-columns:1fr; } }
.footer-logo{ height:64px; margin-bottom:18px; }
.site-footer h4{ font-family:var(--font-sans); font-size:12px; text-transform:uppercase; letter-spacing:.14em; color:var(--gold-light); margin-bottom:12px; }
.site-footer .col{ display:flex; flex-direction:column; gap:9px; }
.footer-bottom{ border-top:1px solid var(--line-gold); padding:22px 0 40px; font-size:11.5px; color:rgba(245,242,236,.42); line-height:1.6; display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:12px; }
.footer-bottom p{ margin:0; }
.footer-legal-links{ display:flex; gap:16px; flex:none; }
.footer-legal-links a{ color:rgba(245,242,236,.5); border-bottom:none; }
.footer-legal-links a:hover{ color:var(--gold-light); }

/* legal / info page prose */
.legal-content{ font-size:15.5px; line-height:1.7; color:var(--body-2); }
.legal-content h2{ font-size:1.25rem; margin-top:1.7em; margin-bottom:.5em; }
.legal-content p{ margin:0 0 1.1em; }
.legal-updated{ font-size:12.5px; color:var(--muted); margin-bottom:8px; }

/* ---------- Decorative brand-mark watermark (single large monochrome shield, bled off a corner) ---------- */
.brand-mark-bg{ position:relative; overflow:hidden; }
.brand-mark-bg::before{
  content:"";
  position:absolute;
  width:520px; height:624px;
  right:-140px; bottom:-160px;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 120'%3E%3Cpath d='M50 3 L94 17 L94 61 C94 90 74 108 50 119 C26 108 6 90 6 61 L6 17 Z' fill='none' stroke='%23ffffff' stroke-width='1.4'/%3E%3C/svg%3E");
  background-repeat:no-repeat;
  background-size:contain;
  opacity:.09;
  pointer-events:none;
  z-index:0;
}
.brand-mark-bg--tl::before{ right:auto; bottom:auto; left:-140px; top:-160px; }
.brand-mark-bg > *{ position:relative; z-index:1; }
/* light variant of the shield watermark, for use on cream/white sections */
.brand-mark-bg--light::before{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 120'%3E%3Cpath d='M50 3 L94 17 L94 61 C94 90 74 108 50 119 C26 108 6 90 6 61 L6 17 Z' fill='none' stroke='%2308292e' stroke-width='1.4'/%3E%3C/svg%3E");
  opacity:.05;
}

/* subtle diagonal motion-line texture for dark hero/CTA panels */
.line-texture{ position:relative; }
.line-texture::after{
  content:"";
  position:absolute; inset:0;
  background-image:repeating-linear-gradient(115deg, rgba(255,255,255,.035) 0 2px, transparent 2px 26px);
  pointer-events:none;
}
.line-texture > *{ position:relative; z-index:1; }

/* full-bleed photo band with a dark tint — for sections that want real
   photography behind the content instead of a flat ink fill */
.section--photo{ position:relative; background-size:cover; background-position:center; }
.section--photo::before{
  content:''; position:absolute; inset:0; z-index:0;
  background:linear-gradient(165deg, rgba(8,41,46,.88) 0%, rgba(5,26,29,.93) 100%);
}
.section--photo > *{ position:relative; z-index:1; }

/* gold overlay panel with an offset outline frame, sitting on a photo band */
.story-panel-wrap{ position:relative; max-width:820px; margin:0 auto; }
.story-panel-wrap::before{
  content:''; position:absolute; z-index:0;
  left:16px; top:16px; right:-16px; bottom:-16px;
  border:1px solid rgba(245,242,236,.4); pointer-events:none;
}
.story-panel{ position:relative; z-index:1; background:rgba(143,123,90,.88); padding:56px 64px; text-align:center; }
.story-panel .eyebrow{ color:#fff; }
.story-panel h2{ color:#fff; }
.story-panel p{ color:rgba(255,255,255,.88); }
@media (max-width: 640px){ .story-panel{ padding:38px 26px; } }

/* dimmed photo band behind a testimonials section */
.section--testimonial-photo{ position:relative; background-size:cover; background-position:center; border-top:none !important; }
.section--testimonial-photo::before{
  content:''; position:absolute; inset:0; z-index:0;
  background:linear-gradient(100deg, rgba(8,41,46,.93) 0%, rgba(8,41,46,.8) 55%, rgba(8,41,46,.68) 100%);
}
.section--testimonial-photo > *{ position:relative; z-index:1; }
.section--testimonial-photo .eyebrow{ color:var(--gold-light); }
.section--testimonial-photo h2{ color:var(--cream); }
.section--testimonial-photo .rating-summary span{ color:rgba(245,242,236,.85) !important; }

/* ---------- Practice-area icon tiles ---------- */
.icon-tile-grid{ display:grid; grid-template-columns:repeat(6,1fr); gap:14px; }
@media (max-width: 900px){ .icon-tile-grid{ grid-template-columns:repeat(3,1fr); } }
@media (max-width: 560px){ .icon-tile-grid{ grid-template-columns:repeat(2,1fr); } }
.icon-tile{
  background:var(--gold); aspect-ratio:1/1; border-radius:4px;
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:12px;
  padding:14px; text-align:center; transition:transform .18s ease, background .18s ease;
}
.icon-tile:hover{ background:#7a6849; transform:translateY(-3px); }
.icon-tile .ic{ font-size:28px; filter:brightness(0) invert(1); opacity:.92; line-height:1; }
.icon-tile .lb{ color:#fff; font-weight:600; font-size:.88rem; line-height:1.22; }

/* ---------- Top-accent cards (objection handling, why-us) ---------- */
.top-accent-card{ background:var(--white); border:1px solid var(--line); border-top:3px solid var(--gold); border-radius:4px; padding:28px 26px; height:100%; }
.top-accent-card h3{ font-size:20px; margin-bottom:.4em; }
.top-accent-card p{ font-size:15.5px; color:var(--body-3); margin-bottom:0; }

/* ---------- FAQ teaser cards (dark, link out to full answer) ---------- */
.faq-teaser-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:16px; }
@media (max-width: 900px){ .faq-teaser-grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width: 560px){ .faq-teaser-grid{ grid-template-columns:1fr; } }
.faq-teaser{ background:linear-gradient(160deg,var(--ink),var(--ink-2)); border-radius:4px; padding:24px 22px 26px; display:flex; flex-direction:column; gap:14px; min-height:200px; }
.faq-teaser h3{ color:#fff; font-size:1.05rem; margin:0; font-family:var(--font-serif); font-weight:500; }
.faq-teaser p{ color:rgba(245,242,236,.68); font-size:.9rem; margin:0; flex:1; }
.faq-teaser a{ color:#fff; font-weight:600; font-size:.88rem; border-bottom:1px solid var(--gold); align-self:flex-start; padding-bottom:2px; }

/* ---------- Numbered process cards ---------- */
.process-card-grid{ display:grid; grid-template-columns:repeat(5,1fr); gap:16px; }
@media (max-width: 980px){ .process-card-grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width: 560px){ .process-card-grid{ grid-template-columns:1fr; } }
.process-card-grid--4{ grid-template-columns:repeat(4,1fr); }
@media (max-width: 980px){ .process-card-grid--4{ grid-template-columns:repeat(2,1fr); } }
@media (max-width: 560px){ .process-card-grid--4{ grid-template-columns:1fr; } }
.process-card{ position:relative; overflow:hidden; background:linear-gradient(160deg,var(--ink),var(--ink-2)); min-height:172px; border-radius:4px; padding:22px; display:flex; align-items:flex-end; }
.process-card::before{ content:''; position:absolute; inset:0; background-image:repeating-linear-gradient(115deg, rgba(255,255,255,.035) 0 2px, transparent 2px 26px); pointer-events:none; }
.process-card .pnum{ position:absolute; top:16px; left:16px; z-index:1; background:var(--gold); color:#fff; font-family:var(--font-serif); font-weight:600; font-size:1.1rem; width:38px; height:38px; border-radius:50%; display:flex; align-items:center; justify-content:center; }
.process-card .ptitle{ position:relative; z-index:1; color:#fff; font-weight:600; font-size:1.02rem; line-height:1.28; border-bottom:1px solid rgba(255,255,255,.35); padding-bottom:10px; }
@media (max-width: 560px){
  .process-card{ min-height:0; align-items:center; gap:18px; flex-direction:row; padding:18px 20px; }
  .process-card .pnum{ position:static; flex:none; }
  .process-card .ptitle{ border-bottom:0; padding-bottom:0; }
}

/* ---------- Pull quote ---------- */
.pull-quote{ font-family:var(--font-serif); font-style:italic; font-size:1.7rem; line-height:1.35; color:var(--ink); max-width:16em; }
.pull-quote .mark{ color:var(--gold); }

/* ---------- Pull-quote band (featured client quote, card treatment) ---------- */
.pull-quote-band{ background:var(--cream-2); padding:76px 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.pull-quote-band .container{ max-width:780px; }
.pull-quote-card{ position:relative; background:var(--white); border-top:3px solid var(--gold); border-radius:6px; box-shadow:var(--shadow-lg); padding:56px 64px; text-align:center; overflow:hidden; }
@media (max-width: 640px){ .pull-quote-card{ padding:44px 26px; } }
.pull-quote-card .glyph{ position:absolute; top:2px; left:22px; font-family:var(--font-serif); font-size:120px; line-height:1; color:var(--gold); opacity:.12; pointer-events:none; }
.pull-quote-card .stars{ position:relative; display:block; color:var(--gold); font-size:16px; letter-spacing:3px; margin-bottom:22px; }
.pull-quote-card .pull-quote{ position:relative; max-width:32em; margin:0 auto 24px; text-align:center; }
.pull-quote-card .rule{ width:44px; height:2px; background:var(--gold); margin:0 auto 18px; }
.pull-quote-card .attribution{ position:relative; font-size:12.5px; text-transform:uppercase; letter-spacing:.14em; color:var(--muted); font-weight:600; }
.pull-quote-card .attribution strong{ color:var(--ink); font-family:var(--font-sans); letter-spacing:normal; text-transform:none; font-size:14.5px; }

/* ---------- Featured quote pair (testimonials.html — Alan + George side by side) ---------- */
.featured-quote-band{ background:var(--cream-2); padding:64px 0 72px; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.featured-quote-grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:28px; margin-top:44px; }
@media (max-width: 780px){ .featured-quote-grid{ grid-template-columns:1fr; } }
.featured-quote-card{ position:relative; background:var(--white); border-top:3px solid var(--gold); border-radius:6px; box-shadow:var(--shadow-lg); padding:42px 40px; overflow:hidden; transition:transform .2s ease, box-shadow .2s ease; }
.featured-quote-card:hover{ transform:translateY(-3px); box-shadow:0 16px 40px rgba(32,47,50,.13); }
@media (max-width: 640px){ .featured-quote-card{ padding:32px 26px; } }
.featured-quote-card .glyph{ position:absolute; top:14px; left:18px; font-family:var(--font-serif); font-size:92px; line-height:1; color:var(--gold); opacity:.12; pointer-events:none; }
.featured-quote-card .stars{ position:relative; display:block; color:var(--gold); font-size:15px; letter-spacing:2.5px; margin-bottom:18px; }
.featured-quote-card .pull-quote{ position:relative; font-family:var(--font-serif); font-style:italic; font-size:1.3rem; line-height:1.44; color:var(--ink); max-width:none; margin:0 0 22px; }
.featured-quote-card .rule{ width:38px; height:2px; background:var(--gold); margin:0 0 16px; }
.featured-quote-card .attribution{ position:relative; font-size:12px; text-transform:uppercase; letter-spacing:.14em; color:var(--muted); font-weight:600; }
.featured-quote-card .attribution strong{ color:var(--ink); font-family:var(--font-sans); letter-spacing:normal; text-transform:none; font-size:14px; }
.featured-quote-card .attribution-row{ position:relative; display:flex; align-items:center; gap:14px; }
.featured-quote-card .attribution-row .rule{ margin:0 0 8px; }
.attribution-photo{ width:46px; height:46px; border-radius:50%; object-fit:cover; flex:none; box-shadow:0 2px 8px rgba(32,47,50,.18); border:2px solid var(--white); }

/* subtle hover lift on the standard testimonial-card grid, used on testimonials.html's full grid */
.testimonial-card{ transition:transform .2s ease, box-shadow .2s ease; }
.testimonial-card:hover{ transform:translateY(-3px); box-shadow:0 12px 32px rgba(32,47,50,.1); }

/* ---------- Resources hub ---------- */
.resource-section-head{ display:flex; align-items:flex-end; justify-content:space-between; gap:24px; margin-bottom:36px; flex-wrap:wrap; }
.resource-section-head h2{ margin-bottom:0; }
.resource-faq-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
@media (max-width: 900px){ .resource-faq-grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width: 640px){ .resource-faq-grid{ grid-template-columns:1fr; } }
.resource-faq-card{ background:var(--ink-2); border:1px solid var(--line-gold); border-top:3px solid var(--gold); border-radius:4px; padding:26px 26px 22px; }
.resource-faq-card h4{ color:var(--cream); font-size:16.5px; margin-bottom:10px; line-height:1.3; }
.resource-faq-card p{ color:rgba(245,242,236,.68); font-size:14px; line-height:1.55; margin-bottom:14px; }
.resource-faq-card .card-link{ font-size:.85rem; }

/* ---------- Blog ---------- */
.breadcrumb{ font-size:12.5px; color:var(--muted); margin-bottom:18px; }
.breadcrumb a{ color:var(--muted); border-bottom:none; }
.breadcrumb a:hover{ color:var(--gold); }

.blog-hero{ padding:56px 0 44px; border-bottom:1px solid var(--line); }
.blog-hero .container{ max-width:820px; }
.blog-hero h1{ font-size:clamp(1.8rem,3.4vw,2.6rem); margin-bottom:14px; }
.blog-date{ font-size:12.5px; text-transform:uppercase; letter-spacing:.1em; color:var(--muted); font-weight:600; }

.blog-article{ padding:56px 0 90px; }
.blog-article .container{ max-width:820px; }
.blog-featured-img{ width:100%; aspect-ratio:16/9; object-fit:cover; border-radius:4px; box-shadow:var(--shadow); margin-bottom:44px; }
.blog-content{ font-size:17px; line-height:1.75; color:var(--body-2); }
.blog-content h2{ font-size:1.5rem; margin-top:1.5em; margin-bottom:.55em; }
.blog-content h3{ font-size:1.2rem; margin-top:1.3em; margin-bottom:.5em; }
.blog-content h4{ font-size:1.02rem; margin-top:1.2em; margin-bottom:.4em; }
.blog-content p{ margin:0 0 1.1em; }
.blog-content ul, .blog-content ol{ margin:0 0 1.2em; padding-left:1.4em; }
.blog-content li{ margin-bottom:.45em; }
.blog-content a{ color:var(--gold); border-bottom:1px solid var(--line-gold); text-decoration:none; }
.blog-content a:hover{ border-color:var(--gold); }
.blog-content strong, .blog-content b{ color:var(--ink); font-weight:700; }
.blog-content blockquote{ margin:1.6em 0; padding:4px 0 4px 22px; border-left:3px solid var(--gold); font-style:italic; color:var(--ink); }
.blog-content hr{ border:none; border-top:1px solid var(--line); margin:2.4em 0; }
.blog-content table{ width:100%; border-collapse:collapse; margin:1.4em 0 1.8em; font-size:15px; }
.blog-content th, .blog-content td{ border:1px solid var(--line); padding:10px 14px; text-align:left; }
.blog-content th{ background:var(--cream-2); font-weight:700; color:var(--ink); }
.blog-content figure{ margin:1.6em 0; }
.blog-content img{ max-width:100%; height:auto; border-radius:4px; }
.blog-cta{ margin-top:52px; padding:36px 40px; background:var(--ink); border-radius:4px; text-align:center; }
.blog-cta .eyebrow{ color:var(--gold-light); }
.blog-cta h3{ color:var(--cream); font-size:1.4rem; margin-bottom:.4em; }
.blog-cta p{ color:rgba(245,242,236,.75); margin-bottom:20px; }
@media (max-width: 640px){ .blog-cta{ padding:30px 24px; } }

/* Blog index */
.blog-index-hero{ padding:70px 0 50px; text-align:center; }
.blog-search{ max-width:420px; margin:28px auto 0; position:relative; }
.blog-search input{ width:100%; padding:13px 18px; border:1px solid var(--line); border-radius:4px; font-family:var(--font-sans); font-size:15px; background:var(--white); }
.blog-search input:focus{ outline:none; border-color:var(--gold); }
.blog-year-heading{ font-family:var(--font-serif); font-size:1.3rem; color:var(--ink); margin:52px 0 22px; padding-bottom:10px; border-bottom:2px solid var(--line-gold); }
.blog-year-heading:first-of-type{ margin-top:0; }
.blog-list-grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:20px; }
@media (max-width: 720px){ .blog-list-grid{ grid-template-columns:1fr; } }
.blog-card{ background:var(--white); border:1px solid var(--line); border-radius:4px; overflow:hidden; transition:box-shadow .18s ease, transform .18s ease; }
.blog-card:hover{ box-shadow:var(--shadow); transform:translateY(-2px); }
.blog-card-img{ width:100%; aspect-ratio:16/10; object-fit:cover; display:block; }
.blog-card-body{ padding:20px 24px 24px; }
.blog-card .blog-date{ display:block; margin-bottom:8px; }
.blog-card h3{ font-size:18px; line-height:1.32; margin-bottom:8px; }
.blog-card h3 a{ color:var(--ink); border-bottom:none; }
.blog-card h3 a:hover{ color:var(--gold); }
.blog-card p{ color:var(--body-3); font-size:14px; line-height:1.55; margin:0; }
.blog-empty{ display:none; text-align:center; padding:40px 0; color:var(--muted); }

/* ---------- misc ---------- */
.skip-link{ position:absolute; left:-999px; top:0; background:var(--ink); color:var(--cream); padding:10px 16px; z-index:100; }
.skip-link:focus{ left:8px; top:8px; }
