/* ============================================================
   THE FAULKNER FIRM — Brand Compliant Stylesheet 2025
   Brand Colors (exact from Brand Guidelines PDF):
     Navy Primary:  #151444
     Blue Accent:   #0A74CC  (described: "lighter blue adds contrast & freshness")
     Lime:          #B2D234  (CMYK 15/0/75/18, R:178 G:210 B:52)
     Dark Green:    #144531  (CMYK 71/0/29/73, R:20 G:69 B:49)
     Light Gray:    #E5E5E5
     Dark Gray:     #2D2D2D
     White:         #FFFFFF
   Typography (exact from Brand Guidelines PDF):
     Abril Fatface  → Titles & Headings (Regular)
     Poppins        → Subtitles & Subheadings (Medium weight for subtitle use)
     Radley         → Body & Paragraphs (Regular)
============================================================ */

@import url('https://fonts.googleapis.com/css2?family=Abril+Fatface&family=Poppins:wght@300;400;500;600;700&family=Radley:ital@0;1&display=swap');

:root {
  /* ── OFFICIAL BRAND PALETTE ── */
  --navy:         #151444;   /* Primary — dark blue */
  --navy-dark:    #0d0e35;   /* Darkened navy for deep sections */
  --blue-accent:  #0A74CC;   /* Lighter blue — contrast & freshness */
  --blue-hover:   #0860aa;   /* Darkened blue for hover states */
  --lime:         #B2D234;   /* Yellow-green — secondary accent */
  --dark-green:   #144531;   /* Dark green — tertiary */
  --gray-light:   #E5E5E5;   /* Light gray */
  --gray-mid:     #8a8a8a;   /* Mid gray for supporting text */
  --gray-dark:    #2D2D2D;   /* Dark gray — body text */
  --white:        #FFFFFF;   /* White */

  /* ── DERIVED / UTILITY ── */
  --text-body:    #3d3d3d;
  --off-white:    #f6f6f4;   /* Very light warm white for section backgrounds */
  --cream:        #f0f0ec;   /* Slightly warmer off-white */
  --border-rule:  rgba(10, 116, 204, 0.25);  /* Blue-tinted border */
  --border-light: rgba(229, 229, 229, 0.8);
}
/* ══════════════════════════════════════════
   HEADER & NAVIGATION — Clean, Logo-First
   Brand guide: horizontal nav, logo prominent
   Debbie: "I like the clean menu across the top"
══════════════════════════════════════════ */

/* Header shell */
.site-header {
  position: fixed;
  top: 0; left: 0; right: 0;
  z-index: 1000;
  height: 76px;
  transition: background 0.4s ease, box-shadow 0.4s ease;
}

/* On hero pages — fully transparent, no border */
.site-header {
  background: transparent;
}

/* Once scrolled past hero — opaque navy */
.site-header.scrolled {
  background: var(--navy);
  box-shadow: 0 1px 0 rgba(255,255,255,0.06);
}

/* On inner pages (no dark hero) — solid navy from load */
.site-header.page-nav {
  background: var(--navy);
  box-shadow: 0 1px 0 rgba(255,255,255,0.06);
}

/* Nav layout */
.nav-inner {
  max-width: 1400px;
  margin: 0 auto;
  padding: 0 2rem;
  height: 76px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 2rem;
}

/* ── LOGO ── */
.nav-logo {
  display: flex;
  align-items: center;
  flex-shrink: 0;
  text-decoration: none;
}
.nav-logo-img {
  height: 44px;           /* comfortable height, respects clear space */
  width: auto;
  display: block;
  /* logo-1.png is navy on transparent — invert for white on dark nav */
  filter: brightness(0) invert(1);
  opacity: 0.93;
  transition: opacity 0.2s;
}
.nav-logo:hover .nav-logo-img {
  opacity: 1;
}

/* ── DESKTOP NAV LINKS ── */
.nav-links {
  display: flex;
  align-items: center;
  gap: 0;
  list-style: none;
  margin: 0;
  padding: 0;
}
.nav-links li a {
  font-family: 'Poppins', sans-serif;
  font-weight: 500;
  font-size: 0.74rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.65);
  text-decoration: none;
  padding: 0 1rem;
  height: 76px;
  display: flex;
  align-items: center;
  position: relative;
  transition: color 0.2s;
}
/* Underline accent on hover/active */
.nav-links li a::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 1rem;
  right: 1rem;
  height: 1px;
  background: var(--blue-accent);
  transform: scaleX(0);
  transform-origin: center;
  transition: transform 0.3s ease;
}
.nav-links li a:hover {
  color: rgba(255,255,255,0.95);
}
.nav-links li a:hover::after,
.nav-links li a.active::after {
  transform: scaleX(1);
}
.nav-links li a.active {
  color: var(--white);
}

/* ── NAV CTA BUTTON ── */
.nav-cta-btn {
  display: inline-flex;
  align-items: center;
  flex-shrink: 0;
  font-family: 'Poppins', sans-serif;
  font-weight: 600;
  font-size: 0.72rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--white);
  text-decoration: none;
  padding: 0.7rem 1.5rem;
  border: 1px solid rgba(255,255,255,0.25);
  background: transparent;
  transition: all 0.25s ease;
  white-space: nowrap;
}
.nav-cta-btn:hover {
  background: var(--blue-accent);
  border-color: var(--blue-accent);
}

/* ── HAMBURGER ── */
.hamburger {
  display: none;
  flex-direction: column;
  justify-content: center;
  gap: 6px;
  background: none;
  border: none;
  cursor: pointer;
  padding: 0.5rem;
  width: 40px;
  height: 40px;
}
.hamburger span {
  display: block;
  width: 24px;
  height: 1.5px;
  background: rgba(255,255,255,0.8);
  transition: all 0.3s ease;
  transform-origin: center;
}
/* Hamburger → X on open */
.hamburger.open span:first-child { transform: translateY(7.5px) rotate(45deg); }
.hamburger.open span:last-child  { transform: translateY(-7.5px) rotate(-45deg); }

/* ── MOBILE MENU ── */
.mobile-menu {
  position: fixed;
  top: 0; right: 0;
  bottom: 0;
  width: min(360px, 88vw);
  background: var(--navy);
  z-index: 1100;
  display: flex;
  flex-direction: column;
  transform: translateX(100%);
  transition: transform 0.38s cubic-bezier(0.4, 0, 0.2, 1);
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}
.mobile-menu.open {
  transform: translateX(0);
}
.mobile-overlay {
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,0.6);
  backdrop-filter: blur(2px);
  z-index: 1099;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.38s ease;
}
.mobile-overlay.open {
  opacity: 1;
  pointer-events: auto;
}

/* Mobile header */
.mobile-menu-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 1.5rem 2rem;
  border-bottom: 1px solid rgba(255,255,255,0.07);
  flex-shrink: 0;
}
.mobile-logo-img {
  height: 36px;
  width: auto;
  filter: brightness(0) invert(1);
  opacity: 0.9;
}
.mobile-menu-close {
  background: none;
  border: none;
  color: rgba(255,255,255,0.5);
  cursor: pointer;
  padding: 0.5rem;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: color 0.2s;
}
.mobile-menu-close:hover { color: white; }

/* Mobile nav links */
.mobile-nav {
  flex: 1;
  padding: 1rem 0;
}
.mobile-link {
  display: block;
  font-family: 'Poppins', sans-serif;
  font-weight: 500;
  font-size: 0.9rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.72);
  text-decoration: none;
  padding: 1rem 2rem;
  border-bottom: 1px solid rgba(255,255,255,0.05);
  transition: color 0.2s, padding-left 0.2s;
}
.mobile-link:hover {
  color: white;
  padding-left: 2.4rem;
}
.mobile-group { }
.mobile-sub {
  background: rgba(0,0,0,0.2);
  padding: 0.25rem 0;
}
.mobile-sub a {
  display: block;
  font-family: 'Poppins', sans-serif;
  font-weight: 400;
  font-size: 0.75rem;
  letter-spacing: 0.06em;
  color: rgba(255,255,255,0.45);
  text-decoration: none;
  padding: 0.65rem 2rem 0.65rem 3rem;
  transition: color 0.2s;
}
.mobile-sub a:hover { color: rgba(255,255,255,0.8); }

/* Mobile footer */
.mobile-footer {
  padding: 2rem;
  border-top: 1px solid rgba(255,255,255,0.07);
  flex-shrink: 0;
}
.mobile-cta {
  display: block;
  text-align: center;
  font-family: 'Poppins', sans-serif;
  font-weight: 600;
  font-size: 0.78rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: white;
  text-decoration: none;
  padding: 1rem;
  border: 1px solid rgba(255,255,255,0.25);
  margin-bottom: 1.25rem;
  transition: all 0.25s;
}
.mobile-cta:hover {
  background: var(--blue-accent);
  border-color: var(--blue-accent);
}
.mobile-contact {
  text-align: center;
  font-family: 'Poppins', sans-serif;
  font-size: 0.75rem;
  color: rgba(255,255,255,0.35);
  margin: 0;
}
.mobile-contact a {
  color: rgba(255,255,255,0.35);
  text-decoration: none;
}
.mobile-contact a:hover { color: var(--lime); }

/* ── RESPONSIVE ── */
@media (max-width: 1024px) {
  .nav-links { display: none; }
  .nav-cta-btn { display: none; }
  .hamburger { display: flex; }
}



*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
body {
  font-family: 'Radley', Georgia, serif;
  color: var(--text-body);
  background: var(--white);
  line-height: 1.7;
  overflow-x: hidden;
}

/* ══════════════════════════════════════════
   TYPOGRAPHY — Exactly per Brand Guidelines
   Abril Fatface: h1 h2 h3 (Titles/Headings)
   Poppins Medium: subtitles, subheadings, labels, nav
   Radley Regular: body, paragraphs
══════════════════════════════════════════ */
h1, h2, h3 {
  font-family: 'Abril Fatface', Georgia, serif;
  font-weight: 400; /* Abril only has Regular */
  line-height: 1.1;
}
h4, h5, h6 {
  font-family: 'Poppins', sans-serif;
  font-weight: 500; /* Medium — per brand guide subtitle usage */
}
.subtitle, .subheading, .label-text, .section-eyebrow {
  font-family: 'Poppins', sans-serif;
  font-weight: 500; /* Medium per brand guide */
}
nav, .btn, .stat-label, .tag, .form-label, .card-link, .role, .breadcrumb {
  font-family: 'Poppins', sans-serif;
}
p, li, blockquote, .body-text {
  font-family: 'Radley', Georgia, serif;
  font-weight: 400; /* Regular per brand guide */
}

h1 { font-size: clamp(2.2rem, 5vw, 4rem); color: var(--navy); }
h2 { font-size: clamp(1.8rem, 3.5vw, 3rem); color: var(--navy); }
h3 { font-size: clamp(1.3rem, 2.5vw, 1.8rem); color: var(--navy); }
h4 {
  font-size: 0.78rem;
  font-weight: 500; /* Poppins Medium */
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--blue-accent);
}
p { font-size: 1.05rem; line-height: 1.8; }

/* ══════════════════════════════════════════
   SECTION RULE — brand-compliant blue line
══════════════════════════════════════════ */
.section-rule {
  display: flex;
  align-items: center;
  gap: 1rem;
  margin-bottom: 1.5rem;
}
.section-rule::before {
  content: '';
  display: block;
  width: 48px;
  height: 2px;
  background: var(--blue-accent); /* Brand blue — NOT gold */
}
.section-rule span {
  font-family: 'Poppins', sans-serif;
  font-weight: 500; /* Medium per brand guide */
  font-size: 0.72rem;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--blue-accent);
}
.section-rule.centered {
  justify-content: center;
}
.section-rule.centered::before {
  display: none;
}
/* Lime variant for use on navy backgrounds */
.section-rule.on-dark::before { background: var(--lime); }
.section-rule.on-dark span    { color: var(--lime); }

/* ══════════════════════════════════════════
   BUTTONS
══════════════════════════════════════════ */
.btn {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.9rem 2.2rem;
  font-family: 'Poppins', sans-serif;
  font-size: 0.8rem;
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  text-decoration: none;
  border: none;
  cursor: pointer;
  transition: all 0.3s ease;
}
/* Primary CTA — blue accent per brand palette */
.btn-primary {
  background: var(--blue-accent);
  color: var(--white);
}
.btn-primary:hover {
  background: var(--blue-hover);
  transform: translateY(-2px);
  box-shadow: 0 6px 20px rgba(10, 116, 204, 0.3);
}
/* Navy button */
.btn-navy {
  background: var(--navy);
  color: var(--white);
}
.btn-navy:hover {
  background: var(--navy-dark);
  transform: translateY(-2px);
}
/* Outline button */
.btn-outline {
  background: transparent;
  color: var(--navy);
  border: 1.5px solid var(--navy);
}
.btn-outline:hover {
  background: var(--navy);
  color: var(--white);
}
.btn-outline-white {
  background: transparent;
  color: var(--white);
  border: 1.5px solid rgba(255,255,255,0.5);
}
.btn-outline-white:hover {
  background: rgba(255,255,255,0.12);
  border-color: var(--white);
}
/* Lime accent button — sparingly for secondary CTAs */
.btn-lime {
  background: var(--lime);
  color: var(--navy);
}
.btn-lime:hover {
  background: #a0bc2e;
  transform: translateY(-2px);
}
/* White on dark */
.btn-white {
  background: var(--white);
  color: var(--navy);
}
.btn-white:hover {
  background: var(--off-white);
  transform: translateY(-2px);
}

/* ══════════════════════════════════════════
   NAVIGATION — brand compliant
══════════════════════════════════════════ */

/* Dropdown */


.nav-item:hover 

/* ══════════════════════════════════════════
   HERO — homepage
══════════════════════════════════════════ */
.hero {
  position: relative;
  min-height: 100vh;
  display: flex;
  align-items: center;
  overflow: hidden;
  background: var(--navy-dark);
  padding-top: 80px;
}
.hero-bg {
  position: absolute; inset: 0;
  background-image: url('https://thefaulknerfirm.com/wp-content/uploads/contact-us-page-header.jpg');
  background-size: cover;
  background-position: center 30%;
  opacity: 0.2;
  transform: scale(1.05);
  animation: heroZoom 22s ease-in-out infinite alternate;
}
@keyframes heroZoom {
  from { transform: scale(1.05); }
  to   { transform: scale(1.12); }
}
.hero-overlay {
  position: absolute; inset: 0;
  background: linear-gradient(
    135deg,
    rgba(13,14,53,0.93) 0%,
    rgba(21,20,68,0.78) 55%,
    rgba(10,116,204,0.12) 100%
  );
}
.hero-content {
  position: relative;
  z-index: 2;
  max-width: 1320px;
  margin: 0 auto;
  padding: 7rem 2rem 4rem;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 4rem;
  align-items: center;
}
.hero-text { color: white; }
.hero-eyebrow {
  display: flex;
  align-items: center;
  gap: 1rem;
  margin-bottom: 2rem;
}
.hero-eyebrow::before {
  content: '';
  width: 48px;
  height: 2px;
  background: var(--blue-accent);
}
.hero-eyebrow span {
  font-family: 'Poppins', sans-serif;
  font-weight: 500;
  font-size: 0.72rem;
  letter-spacing: 0.25em;
  text-transform: uppercase;
  color: var(--blue-accent);
}
.hero-text h1 {
  color: white;
  margin-bottom: 1.5rem;
  font-size: clamp(2.4rem, 5vw, 4.2rem);
}
.hero-text p {
  color: rgba(255,255,255,0.78);
  font-size: 1.15rem;
  margin-bottom: 2.5rem;
  max-width: 520px;
}
.hero-actions { display: flex; gap: 1rem; flex-wrap: wrap; }
.hero-card {
  background: rgba(255,255,255,0.06);
  backdrop-filter: blur(12px);
  border: 1px solid rgba(10,116,204,0.3);
  padding: 2.5rem;
  display: grid;
  gap: 1.5rem;
}
.hero-card-stat { display: flex; flex-direction: column; gap: 0.25rem; }
.hero-card-stat .num {
  font-family: 'Abril Fatface', serif;
  font-size: 2.5rem;
  color: white;
}
.hero-card-stat .label {
  font-family: 'Poppins', sans-serif;
  font-weight: 500;
  font-size: 0.7rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--blue-accent);
}
.hero-card-divider {
  height: 1px;
  background: rgba(10,116,204,0.25);
}
.hero-scroll {
  position: absolute;
  bottom: 2.5rem;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.5rem;
  z-index: 2;
  color: rgba(255,255,255,0.45);
  font-family: 'Poppins', sans-serif;
  font-size: 0.66rem;
  letter-spacing: 0.22em;
  text-transform: uppercase;
}
.hero-scroll::after {
  content: '';
  display: block;
  width: 1px;
  height: 48px;
  background: linear-gradient(to bottom, var(--blue-accent), transparent);
  animation: scrollLine 2.2s ease-in-out infinite;
}
@keyframes scrollLine {
  0%,100% { opacity: 0.3; }
  50%      { opacity: 1; }
}

/* ══════════════════════════════════════════
   STATS BAR
══════════════════════════════════════════ */
.stats-bar {
  background: var(--navy);
  padding: 4rem 2rem;
  border-top: 3px solid var(--blue-accent);
}
.stats-inner {
  max-width: 1320px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
}
.stat-item {
  text-align: center;
  padding: 2rem 1.5rem;
  border-right: 1px solid rgba(10,116,204,0.2);
}
.stat-item:last-child { border-right: none; }
.stat-num {
  font-family: 'Abril Fatface', serif;
  font-size: clamp(2.5rem, 5vw, 3.8rem);
  color: var(--white);
  display: block;
  line-height: 1;
}
.stat-label {
  font-family: 'Poppins', sans-serif;
  font-weight: 500;
  font-size: 0.72rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--blue-accent);
  display: block;
  margin-top: 0.75rem;
}
.stat-desc {
  font-family: 'Radley', serif;
  color: rgba(255,255,255,0.5);
  font-size: 0.88rem;
  margin-top: 0.5rem;
}

/* Brand tagline block */
.brand-tagline-bar {
  background: var(--blue-accent);
  padding: 1.25rem 2rem;
  text-align: center;
}
.brand-tagline-bar p {
  font-family: 'Poppins', sans-serif;
  font-weight: 500;
  font-size: 0.82rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--white);
  margin: 0;
}

/* ══════════════════════════════════════════
   SECTIONS
══════════════════════════════════════════ */
.section { padding: 7rem 2rem; }
.section-inner { max-width: 1320px; margin: 0 auto; }
.section-header { margin-bottom: 4rem; }
.section-header.centered { text-align: center; }
.section-header.centered .section-rule { justify-content: center; }
.section-header.centered .section-rule::before { display: none; }

.section-alt   { background: var(--off-white); }
.section-navy  { background: var(--navy); }
.section-cream { background: var(--cream); }

/* ══════════════════════════════════════════
   PRACTICE AREA CARDS
══════════════════════════════════════════ */
.practice-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 2px;
  background: var(--gray-light);
}
.practice-card {
  background: var(--white);
  padding: 3rem 3.5rem;
  position: relative;
  overflow: hidden;
  transition: background 0.3s ease;
  text-decoration: none;
  color: inherit;
  display: block;
}
.practice-card::before {
  content: '';
  position: absolute;
  left: 0; top: 0; bottom: 0;
  width: 4px;
  background: var(--blue-accent); /* brand blue */
  transform: scaleY(0);
  transform-origin: bottom;
  transition: transform 0.4s ease;
}
.practice-card:hover::before  { transform: scaleY(1); }
.practice-card:hover          { background: var(--off-white); }
.practice-card .area-icon {
  width: 52px; height: 52px;
  margin-bottom: 1.5rem;
  background: var(--navy);
  display: flex; align-items: center; justify-content: center;
  transition: background 0.3s;
}
.practice-card:hover .area-icon { background: var(--blue-accent); }
.practice-card h3              { margin-bottom: 0.75rem; }
.practice-card p               { color: var(--gray-mid); font-size: 0.95rem; margin-bottom: 1.5rem; }
.practice-card .card-link {
  font-family: 'Poppins', sans-serif;
  font-weight: 600;
  font-size: 0.73rem;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: var(--navy);
  display: flex; align-items: center; gap: 0.5rem;
  text-decoration: none;
  transition: color 0.2s;
}
.practice-card:hover .card-link { color: var(--blue-accent); }
.practice-card .card-link::after {
  content: '→';
  transition: transform 0.2s;
}
.practice-card:hover .card-link::after { transform: translateX(4px); }
.practice-card .area-num {
  position: absolute; top: 2rem; right: 2.5rem;
  font-family: 'Abril Fatface', serif;
  font-size: 4rem;
  color: var(--gray-light);
  line-height: 1;
  user-select: none;
  transition: color 0.3s;
}
.practice-card:hover .area-num { color: rgba(10,116,204,0.1); }

/* ══════════════════════════════════════════
   BIO / ABOUT LAYOUT
══════════════════════════════════════════ */
.bio-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 6rem;
  align-items: center;
}
.bio-image { position: relative; }
.bio-image img {
  width: 100%;
  aspect-ratio: 3/4;
  object-fit: cover;
  object-position: top;
  display: block;
}
.bio-image::before {
  content: '';
  position: absolute;
  top: -1.5rem; left: -1.5rem;
  right: 1.5rem; bottom: 1.5rem;
  border: 1px solid var(--blue-accent); /* brand blue frame */
  z-index: -1;
}
.bio-image-badge {
  position: absolute;
  bottom: -1.5rem; right: -1.5rem;
  background: var(--navy);
  color: var(--white);
  padding: 1.5rem 2rem;
  text-align: center;
}
.bio-image-badge .badge-num {
  font-family: 'Abril Fatface', serif;
  font-size: 2.2rem;
  color: var(--blue-accent);
  display: block;
}
.bio-image-badge .badge-label {
  font-family: 'Poppins', sans-serif;
  font-weight: 500;
  font-size: 0.63rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.7);
}
.bio-content { padding: 1rem 0; }
.bio-content h2 { margin-bottom: 1.5rem; }
.bio-content p  { margin-bottom: 1.25rem; }

.bio-credentials {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  margin: 2rem 0;
}
.bio-cred-item {
  display: flex;
  align-items: center;
  gap: 1rem;
  padding: 0.85rem 1.25rem;
  background: var(--off-white);
  border-left: 3px solid var(--blue-accent); /* brand blue */
}
.bio-cred-item span {
  font-family: 'Poppins', sans-serif;
  font-weight: 500;
  font-size: 0.82rem;
  color: var(--navy);
}

/* ══════════════════════════════════════════
   TEAM CARDS
══════════════════════════════════════════ */
.team-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2rem;
}
.team-card { text-align: center; }
.team-card img {
  width: 100%;
  aspect-ratio: 3/4;
  object-fit: cover;
  object-position: top;
  display: block;
  margin-bottom: 1.5rem;
  filter: grayscale(15%);
  transition: filter 0.3s;
}
.team-card:hover img { filter: grayscale(0%); }
.team-card h3  { font-size: 1.25rem; margin-bottom: 0.25rem; }
.team-card .role {
  font-family: 'Poppins', sans-serif;
  font-weight: 500;
  font-size: 0.7rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--blue-accent);
  display: block;
  margin-bottom: 0.75rem;
}
.team-card p { font-size: 0.9rem; color: var(--gray-mid); }

/* ══════════════════════════════════════════
   TESTIMONIALS
══════════════════════════════════════════ */
.testimonials-section {
  background: var(--navy);
  padding: 7rem 2rem;
}
.testimonials-header {
  text-align: center;
  margin-bottom: 4rem;
}
.testimonials-header h2 { color: var(--white); }
.testimonials-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.5rem;
  max-width: 1320px;
  margin: 0 auto;
}
.testimonial-card {
  background: rgba(255,255,255,0.05);
  padding: 2.5rem;
  border: 1px solid rgba(10,116,204,0.2);
  transition: all 0.3s ease;
}
.testimonial-card:hover {
  background: rgba(255,255,255,0.09);
  border-color: var(--blue-accent);
  transform: translateY(-4px);
}
.testimonial-stars {
  color: var(--lime); /* brand lime for stars — avoids off-brand gold */
  font-size: 0.95rem;
  letter-spacing: 2px;
  margin-bottom: 1rem;
}
.testimonial-card blockquote {
  font-family: 'Radley', serif;
  font-style: italic;
  color: rgba(255,255,255,0.85);
  font-size: 0.98rem;
  line-height: 1.7;
  margin-bottom: 1.5rem;
}
.testimonial-card cite {
  font-family: 'Poppins', sans-serif;
  font-weight: 500;
  font-size: 0.73rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--blue-accent);
  font-style: normal;
}

/* ══════════════════════════════════════════
   HOW WE ADVISE
══════════════════════════════════════════ */
.advise-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 3rem;
  max-width: 1320px;
  margin: 0 auto;
}
.advise-item { text-align: center; }
.advise-icon {
  width: 80px; height: 80px;
  margin: 0 auto 1.5rem;
  background: transparent;
  border: 1.5px solid var(--blue-accent);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.3s;
}
.advise-item:hover .advise-icon {
  background: var(--navy);
  border-color: var(--blue-accent);
}
.advise-item h4 { margin-bottom: 0.75rem; color: var(--navy); }
.advise-item p  { font-size: 0.9rem; color: var(--gray-mid); }

/* ══════════════════════════════════════════
   COMMUNITY / CAUSE CARDS
══════════════════════════════════════════ */
.community-causes {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 2rem;
}
.cause-card {
  padding: 2.5rem;
  border: 1px solid var(--gray-light);
  border-top: 3px solid var(--navy);
  transition: all 0.3s;
}
.cause-card:hover {
  border-top-color: var(--blue-accent);
  box-shadow: 0 8px 30px rgba(0,0,0,0.08);
}
.cause-card h3  { font-size: 1.2rem; margin-bottom: 0.5rem; }
.cause-card .cause-tag {
  font-family: 'Poppins', sans-serif;
  font-weight: 500;
  font-size: 0.67rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--blue-accent);
  margin-bottom: 1rem;
  display: block;
}
.cause-card p   { font-size: 0.9rem; color: var(--gray-mid); }
.cause-card a {
  font-family: 'Poppins', sans-serif;
  font-weight: 600;
  font-size: 0.7rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--navy);
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  margin-top: 1rem;
}
.cause-card a:hover { color: var(--blue-accent); }

/* ══════════════════════════════════════════
   PRACTICE AREA INNER PAGE
══════════════════════════════════════════ */
.pa-layout {
  display: grid;
  grid-template-columns: 2fr 1fr;
  gap: 5rem;
}
.sidebar-box {
  background: var(--off-white);
  padding: 2.5rem;
  margin-bottom: 1.5rem;
  border-top: 3px solid var(--navy);
}
.sidebar-box h4   { margin-bottom: 1.25rem; }
.sidebar-box ul   {
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}
.sidebar-box ul li {
  font-size: 0.9rem;
  color: var(--text-body);
  display: flex;
  align-items: flex-start;
  gap: 0.6rem;
}
.sidebar-box ul li::before {
  content: '→';
  color: var(--blue-accent); /* brand blue */
  flex-shrink: 0;
  margin-top: 0.05rem;
}

/* ══════════════════════════════════════════
   CONTACT FORM
══════════════════════════════════════════ */
.contact-form input,
.contact-form textarea,
.contact-form select {
  width: 100%;
  padding: 1rem 1.25rem;
  border: 1.5px solid var(--gray-light);
  background: white;
  font-family: 'Radley', serif;
  font-size: 1rem;
  color: var(--gray-dark);
  outline: none;
  transition: border-color 0.2s;
  appearance: none;
}
.contact-form input:focus,
.contact-form textarea:focus,
.contact-form select:focus {
  border-color: var(--blue-accent); /* brand blue focus */
}
.contact-form textarea { min-height: 160px; resize: vertical; }
.form-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem;
  margin-bottom: 1rem;
}
.form-group { margin-bottom: 1rem; }
.form-label {
  font-family: 'Poppins', sans-serif;
  font-weight: 500; /* Medium per brand guide */
  font-size: 0.7rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--navy);
  display: block;
  margin-bottom: 0.5rem;
}

/* ══════════════════════════════════════════
   NEWSLETTER
══════════════════════════════════════════ */
.newsletter-section {
  background: var(--cream);
  padding: 5rem 2rem;
  text-align: center;
}
.newsletter-inner { max-width: 600px; margin: 0 auto; }
.newsletter-form {
  display: flex;
  gap: 0;
  margin-top: 2rem;
}
.newsletter-form input[type="email"] {
  flex: 1;
  padding: 1rem 1.5rem;
  border: 1.5px solid var(--navy);
  border-right: none;
  font-family: 'Radley', serif;
  font-size: 1rem;
  outline: none;
  background: white;
}
.newsletter-form input[type="email"]:focus {
  border-color: var(--blue-accent);
}
.newsletter-form button {
  padding: 1rem 2rem;
  background: var(--blue-accent); /* brand blue */
  color: white;
  border: none;
  cursor: pointer;
  font-family: 'Poppins', sans-serif;
  font-weight: 600;
  font-size: 0.78rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  transition: background 0.3s;
}
.newsletter-form button:hover { background: var(--blue-hover); }

/* ══════════════════════════════════════════
   CTA BANNER
══════════════════════════════════════════ */
.cta-banner {
  background: var(--navy);
  padding: 5rem 2rem;
  text-align: center;
  position: relative;
  overflow: hidden;
}
.cta-banner::before {
  content: '';
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at center, rgba(10,116,204,0.18) 0%, transparent 70%);
}
.cta-banner h2 { color: var(--white); margin-bottom: 1rem; }
.cta-banner p  { color: rgba(255,255,255,0.72); margin-bottom: 2.5rem; }

/* ══════════════════════════════════════════
   PAGE HERO (inner pages)
══════════════════════════════════════════ */
.page-hero {
  padding-top: 76px;
  background: var(--navy);
  position: relative;
  overflow: hidden;
}
.page-hero-bg {
  position: absolute; inset: 0;
  opacity: 0.16;
  background-size: cover;
  background-position: center;
}
.page-hero-inner {
  position: relative;
  z-index: 2;
  max-width: 1320px;
  margin: 0 auto;
  padding: 4rem 2rem 3rem;
}
.page-hero h1 {
  color: var(--white);
  font-size: clamp(2rem, 4vw, 3.2rem);
}
.page-hero .breadcrumb {
  font-family: 'Poppins', sans-serif;
  font-weight: 500;
  font-size: 0.7rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.48);
  margin-bottom: 1rem;
}
.page-hero .breadcrumb a {
  color: var(--blue-accent);
  text-decoration: none;
}

/* ══════════════════════════════════════════
   FOOTER
══════════════════════════════════════════ */
.site-footer {
  background: var(--navy-dark);
  color: rgba(255,255,255,0.7);
  padding: 5rem 2rem 2rem;
  border-top: 3px solid var(--blue-accent);
}
.footer-inner {
  max-width: 1320px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 2fr 1fr 1fr 1.5fr;
  gap: 4rem;
  padding-bottom: 4rem;
  border-bottom: 1px solid rgba(10,116,204,0.2);
}
.footer-brand img {
  height: 56px;
  margin-bottom: 1.5rem;
  filter: brightness(0) invert(1); /* white logo on dark bg — valid per brand guide */
}
.footer-brand p { font-size: 0.9rem; line-height: 1.7; max-width: 280px; }
.footer-col h5 {
  font-family: 'Poppins', sans-serif;
  font-weight: 600;
  font-size: 0.7rem;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--blue-accent);
  margin-bottom: 1.5rem;
}
.footer-col ul {
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}
.footer-col ul li a {
  font-family: 'Radley', serif;
  font-size: 0.92rem;
  color: rgba(255,255,255,0.62);
  text-decoration: none;
  transition: color 0.2s;
}
.footer-col ul li a:hover { color: var(--lime); }
.footer-contact p   { font-size: 0.9rem; line-height: 2.2; }
.footer-contact a   { color: var(--lime); text-decoration: none; }
.footer-contact a:hover { color: var(--white); }
.footer-bottom {
  max-width: 1320px;
  margin: 0 auto;
  padding-top: 2rem;
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-family: 'Poppins', sans-serif;
  font-size: 0.7rem;
  letter-spacing: 0.06em;
  color: rgba(255,255,255,0.3);
}
.footer-bottom a { color: rgba(255,255,255,0.3); text-decoration: none; }
.footer-bottom a:hover { color: var(--blue-accent); }
.footer-bar-links { display: flex; gap: 2rem; }

/* Brand tagline in footer */
.footer-tagline {
  font-family: 'Poppins', sans-serif;
  font-weight: 500;
  font-size: 0.78rem;
  letter-spacing: 0.08em;
  color: rgba(255,255,255,0.5);
  font-style: italic;
  margin-top: 0.75rem;
}

/* ══════════════════════════════════════════
   SCROLL REVEAL ANIMATIONS
══════════════════════════════════════════ */
.reveal {
  opacity: 0;
  transform: translateY(24px);
  transition: opacity 0.7s ease, transform 0.7s ease;
}
.reveal.revealed {
  opacity: 1;
  transform: translateY(0);
}
.reveal-delay-1 { transition-delay: 0.1s; }
.reveal-delay-2 { transition-delay: 0.2s; }
.reveal-delay-3 { transition-delay: 0.3s; }
.reveal-delay-4 { transition-delay: 0.4s; }

/* ══════════════════════════════════════════
   RESPONSIVE
══════════════════════════════════════════ */
@media (max-width: 1100px) {
  .hero-content       { grid-template-columns: 1fr; }
  .hero-card          { display: none; }
  .bio-grid           { grid-template-columns: 1fr; gap: 3rem; }
  .bio-image::before  { display: none; }
  .testimonials-grid  { grid-template-columns: 1fr 1fr; }
  .footer-inner       { grid-template-columns: 1fr 1fr; gap: 3rem; }
}
@media (max-width: 768px) {
  .nav-links, 
  
  .stats-inner          { grid-template-columns: 1fr; }
  .stat-item            { border-right: none; border-bottom: 1px solid rgba(10,116,204,0.15); }
  .practice-grid        { grid-template-columns: 1fr; }
  .team-grid            { grid-template-columns: 1fr; max-width: 380px; margin: 0 auto; }
  .advise-grid          { grid-template-columns: 1fr; }
  .community-causes     { grid-template-columns: 1fr; }
  .form-row             { grid-template-columns: 1fr; }
  .footer-inner         { grid-template-columns: 1fr; gap: 2rem; }
  .footer-bottom        { flex-direction: column; gap: 1rem; text-align: center; }
  .newsletter-form      { flex-direction: column; }
  .newsletter-form input[type="email"] { border-right: 1.5px solid var(--navy); }
  .testimonials-grid    { grid-template-columns: 1fr; }
  .pa-layout            { grid-template-columns: 1fr; }
}

/* ══ NAV FALLBACK (when logo image fails) ══ */


/* ══ DEPTH OF PERSPECTIVE section (Figma Comment #45 approved language) ══ */
.depth-section {
  background: var(--navy);
  padding: 5rem 2rem;
  text-align: center;
  border-top: 3px solid var(--blue-accent);
}
.depth-section h2 { color: var(--white); margin-bottom: 1rem; }
.depth-section p  { color: rgba(255,255,255,0.72); max-width:680px; margin:0 auto; }

/* ══ CREDENTIALS BADGES (About short card) ══ */
.cred-badges {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  margin: 1.5rem 0;
}
.cred-badge {
  padding: 0.45rem 1rem;
  background: var(--off-white);
  border: 1px solid var(--gray-light);
  font-family: 'Poppins', sans-serif;
  font-weight: 500;
  font-size: 0.7rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--navy);
}

/* ══ COMPASS ICON SECTION ══ */
.compass-block {
  display: flex;
  align-items: center;
  gap: 1.5rem;
  padding: 2rem;
  background: var(--off-white);
  border-left: 4px solid var(--blue-accent);
  margin: 2rem 0;
}
.compass-icon-wrap {
  flex-shrink: 0;
  width: 64px;
  height: 64px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.compass-block p {
  font-size: 0.95rem;
  color: var(--text-body);
  margin: 0;
}

/* ══ AWARDS GRID ══ */
.awards-grid {
  display: grid;
  grid-template-columns: repeat(3,1fr);
  gap: 1.5rem;
  margin-top: 2rem;
}
.award-item {
  padding: 2rem;
  text-align: center;
  border: 1px solid var(--gray-light);
  border-top: 3px solid var(--blue-accent);
  transition: border-top-color 0.3s, box-shadow 0.3s;
}
.award-item:hover {
  border-top-color: var(--navy);
  box-shadow: 0 6px 24px rgba(0,0,0,0.07);
}
.award-item .award-icon { font-size:2rem; margin-bottom:0.75rem; }
.award-item h4 { font-size:0.78rem; margin-bottom:0.5rem; color:var(--navy); }
.award-item p  { font-size:0.85rem; color:var(--gray-mid); }

/* ══ EDU TIMELINE ══ */
.edu-timeline { display:flex; flex-direction:column; gap:1.5rem; margin-top:1.5rem; }
.edu-item { display:flex; gap:1.5rem; align-items:flex-start; }
.edu-dot { width:10px; height:10px; background:var(--blue-accent); border-radius:50%; margin-top:0.45rem; flex-shrink:0; }
.edu-content h4 { font-size:0.78rem; color:var(--blue-accent); margin-bottom:0.25rem; }
.edu-content p  { font-size:0.92rem; color:var(--text-body); }

/* ══ SHORT BIO CARD (Part A) ══ */
.short-bio-card {
  background: var(--navy);
  padding: 3.5rem;
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 3rem;
  align-items: center;
  margin-bottom: 4rem;
}
.short-bio-card img {
  width: 180px;
  height: 220px;
  object-fit: cover;
  object-position: top;
  display: block;
  flex-shrink: 0;
}
.short-bio-card h2 { color: var(--white); font-size:1.8rem; margin-bottom:0.25rem; }
.short-bio-card .bio-subtitle {
  font-family: 'Poppins', sans-serif;
  font-weight: 500;
  font-size: 0.72rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--blue-accent);
  margin-bottom: 1.25rem;
  display: block;
}
.short-bio-card p {
  color: rgba(255,255,255,0.78);
  font-size: 0.95rem;
  margin-bottom: 1.25rem;
}
@media(max-width:768px){ .short-bio-card{ grid-template-columns:1fr; gap:2rem; } .awards-grid{grid-template-columns:1fr;} }

/* ══ CYCLE / CONTINUOUS LIFECYCLE ICON indicator ══ */
.cycle-label {
  text-align: center;
  margin-top: -2.5rem;
  margin-bottom: 4rem;
}
.cycle-label p {
  font-family: 'Poppins', sans-serif;
  font-weight: 500;
  font-size: 0.72rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--blue-accent);
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
}

/* ══════════════════════════════════════════
   CREATIVE BRIEF VISUAL REFINEMENTS
   "Minimalist, refined, intentional"
   "White space used to convey confidence"
   "Strong typography over heavy imagery"
══════════════════════════════════════════ */

/* Increased breathing room throughout — Brief: white space = confidence */
.section { padding: 8rem 2rem; }

/* Refined section rule — thinner, more refined */
.section-rule::before { height: 1px; width: 40px; }

/* Letter-spacing refinement for authority — more editorial */
h1 { letter-spacing: -0.02em; }
h2 { letter-spacing: -0.01em; }

/* Pull quotes — consulting firm aesthetic */
.pull-quote-brief {
  margin: 3rem 0;
  padding: 3rem 3.5rem;
  border-left: 1px solid var(--blue-accent);
  background: transparent;
}
.pull-quote-brief p {
  font-family: 'Abril Fatface', serif;
  font-size: clamp(1.4rem, 2.5vw, 1.9rem);
  color: var(--navy);
  line-height: 1.35;
  font-style: normal;
}
.pull-quote-brief cite {
  font-family: 'Poppins', sans-serif;
  font-size: 0.72rem;
  font-weight: 500;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--blue-accent);
  font-style: normal;
  display: block;
  margin-top: 1rem;
}

/* Outcome callout blocks — speaks in results not process */
.outcome-block {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0;
  background: var(--gray-light);
  margin: 3rem 0;
}
.outcome-item {
  background: var(--white);
  padding: 2.5rem 2rem;
  border-right: 1px solid var(--gray-light);
  text-align: center;
}
.outcome-item:last-child { border-right: none; }
.outcome-num {
  font-family: 'Abril Fatface', serif;
  font-size: 2.8rem;
  color: var(--navy);
  display: block;
  line-height: 1;
  margin-bottom: 0.5rem;
}
.outcome-desc {
  font-family: 'Poppins', sans-serif;
  font-weight: 500;
  font-size: 0.72rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--blue-accent);
}

/* "Trusted advisor" positioning strip */
.positioning-strip {
  background: var(--off-white);
  padding: 2.5rem 2rem;
  text-align: center;
  border-top: 1px solid var(--gray-light);
  border-bottom: 1px solid var(--gray-light);
}
.positioning-strip p {
  font-family: 'Poppins', sans-serif;
  font-weight: 500;
  font-size: 0.8rem;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--navy);
  margin: 0;
}

/* Audience-targeting intro (Brief: business owners, executives, generational families) */
.audience-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 2px;
  background: var(--gray-light);
  margin: 3rem 0;
}
.audience-item {
  background: var(--white);
  padding: 2.5rem 2rem;
  text-align: center;
  transition: background 0.3s;
}
.audience-item:hover { background: var(--off-white); }
.audience-icon {
  font-size: 1.5rem;
  margin-bottom: 1rem;
  display: block;
}
.audience-item h4 { font-size: 0.78rem; margin-bottom: 0.5rem; color: var(--navy); }
.audience-item p  { font-size: 0.82rem; color: var(--gray-mid); }

/* Consulting-firm legitimacy bar */
.credibility-bar {
  background: var(--navy);
  padding: 1.75rem 2rem;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 4rem;
  flex-wrap: wrap;
}
.credibility-item {
  font-family: 'Poppins', sans-serif;
  font-weight: 500;
  font-size: 0.7rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.6);
  text-align: center;
}
.credibility-item strong {
  display: block;
  font-weight: 600;
  color: var(--white);
  font-size: 0.75rem;
  margin-bottom: 0.2rem;
}

/* Refined testimonial attribution — more editorial */
.testimonial-card cite::before {
  content: '— ';
}

/* Confident standalone stat — consulting style */
.solo-stat {
  text-align: center;
  padding: 5rem 2rem;
}
.solo-stat .big-num {
  font-family: 'Abril Fatface', serif;
  font-size: clamp(5rem, 12vw, 10rem);
  color: var(--navy);
  line-height: 1;
  display: block;
}
.solo-stat .big-label {
  font-family: 'Poppins', sans-serif;
  font-weight: 500;
  font-size: 0.8rem;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: var(--blue-accent);
  display: block;
  margin-top: 1rem;
}

/* Brief: "Human, but not casual" — warm but authoritative contact intro */
.contact-warmth {
  font-family: 'Radley', serif;
  font-style: italic;
  font-size: 1.25rem;
  color: var(--navy);
  line-height: 1.65;
  border-left: 1px solid var(--blue-accent);
  padding-left: 2rem;
  margin-bottom: 2.5rem;
}

/* Subtle page transition animation — Brief: nothing flashy */
@keyframes pageLoad {
  from { opacity: 0; transform: translateY(12px); }
  to   { opacity: 1; transform: translateY(0); }
}
main, .page-hero {
  animation: pageLoad 0.5s ease forwards;
}

@media (max-width: 768px) {
  .outcome-block { grid-template-columns: 1fr; }
  .audience-grid  { grid-template-columns: 1fr 1fr; }
  .credibility-bar { gap: 2rem; }
}

/* ══════════════════════════════════════════
   BEST PRACTICES ADDITIONS
   Research-backed: trust signals, CLO framing,
   FAQ, timely news, conversion optimization
══════════════════════════════════════════ */

/* ── TIMELY NEWS / LEGISLATIVE UPDATE BANNER ── */
.news-banner {
  background: var(--blue-accent);
  padding: 0.85rem 2rem;
  text-align: center;
  position: relative;
}
.news-banner p {
  font-family: 'Poppins', sans-serif;
  font-weight: 500;
  font-size: 0.75rem;
  letter-spacing: 0.08em;
  color: var(--white);
  margin: 0;
}
.news-banner a {
  color: var(--white);
  text-decoration: underline;
  text-underline-offset: 3px;
}
.news-banner a:hover { opacity: 0.85; }
.news-banner .news-close {
  position: absolute;
  right: 1.25rem;
  top: 50%;
  transform: translateY(-50%);
  background: none;
  border: none;
  color: rgba(255,255,255,0.7);
  font-size: 1rem;
  cursor: pointer;
  line-height: 1;
  padding: 0.25rem;
}
.news-banner .news-close:hover { color: white; }

/* ── TRUST SIGNAL BAR ── */
/* Best practice: social proof near top, converts 34% higher */
.trust-bar {
  background: var(--off-white);
  border-top: 1px solid var(--gray-light);
  border-bottom: 1px solid var(--gray-light);
  padding: 1.25rem 2rem;
}
.trust-bar-inner {
  max-width: 1320px;
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 3rem;
  flex-wrap: wrap;
}
.trust-item {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  font-family: 'Poppins', sans-serif;
}
.trust-item .trust-icon {
  color: var(--blue-accent);
  flex-shrink: 0;
}
.trust-item strong {
  font-weight: 600;
  font-size: 0.75rem;
  letter-spacing: 0.06em;
  color: var(--navy);
  display: block;
}
.trust-item span {
  font-size: 0.68rem;
  color: var(--gray-mid);
  letter-spacing: 0.04em;
  display: block;
}
/* Star ratings display */
.star-display {
  display: flex;
  align-items: center;
  gap: 0.35rem;
}
.star-display .stars {
  color: var(--lime);
  font-size: 0.85rem;
  letter-spacing: 1px;
}
.star-display .star-count {
  font-family: 'Poppins', sans-serif;
  font-weight: 700;
  font-size: 0.9rem;
  color: var(--navy);
}
.star-display .star-label {
  font-family: 'Poppins', sans-serif;
  font-size: 0.68rem;
  color: var(--gray-mid);
}

/* ── VIDEO PLACEHOLDER ── */
/* Best practice: attorney intro video, 60-90s, +40% time on page */
.video-section {
  background: var(--navy-dark);
  padding: 7rem 2rem;
}
.video-inner {
  max-width: 1320px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 6rem;
  align-items: center;
}
.video-frame {
  position: relative;
  aspect-ratio: 16/9;
  background: rgba(255,255,255,0.05);
  border: 1px solid rgba(10,116,204,0.3);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
}
.video-play-btn {
  width: 72px;
  height: 72px;
  border: 2px solid var(--blue-accent);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.3s;
  background: rgba(10,116,204,0.15);
}
.video-play-btn:hover {
  background: var(--blue-accent);
  transform: scale(1.08);
}
.video-play-btn svg { margin-left: 4px; }
.video-caption {
  position: absolute;
  bottom: 1rem;
  left: 1rem;
  right: 1rem;
  text-align: center;
  font-family: 'Poppins', sans-serif;
  font-size: 0.7rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.5);
}
.video-text h2 { color: white; }
.video-text p  { color: rgba(255,255,255,0.72); margin-top: 1rem; }

/* ── FAQ SECTION ── */
/* Best practice: FAQ schema improves SEO for YMYL legal content */
.faq-section { padding: 7rem 2rem; }
.faq-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem;
  margin-top: 3rem;
}
.faq-item {
  border: 1px solid var(--gray-light);
  border-top: 2px solid transparent;
  transition: border-top-color 0.3s;
}
.faq-item.open,
.faq-item:hover { border-top-color: var(--blue-accent); }
.faq-question {
  width: 100%;
  text-align: left;
  padding: 1.5rem 2rem;
  background: none;
  border: none;
  cursor: pointer;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  font-family: 'Poppins', sans-serif;
  font-weight: 500;
  font-size: 0.88rem;
  color: var(--navy);
  line-height: 1.5;
}
.faq-question .faq-icon {
  flex-shrink: 0;
  width: 20px;
  height: 20px;
  border: 1px solid var(--gray-light);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.75rem;
  color: var(--blue-accent);
  transition: all 0.3s;
  margin-top: 0.1rem;
}
.faq-item.open .faq-icon { background: var(--blue-accent); color: white; border-color: var(--blue-accent); }
.faq-answer {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.35s ease;
}
.faq-item.open .faq-answer { max-height: 400px; }
.faq-answer p {
  padding: 0 2rem 1.75rem;
  font-size: 0.92rem;
  color: var(--text-body);
  line-height: 1.8;
}

/* ── RESOURCE DOWNLOAD / LEAD MAGNET ── */
.resource-bar {
  background: var(--cream);
  padding: 3rem 2rem;
  border-top: 1px solid var(--gray-light);
  border-bottom: 1px solid var(--gray-light);
}
.resource-bar-inner {
  max-width: 1320px;
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 2rem;
  flex-wrap: wrap;
}
.resource-bar h4 { color: var(--navy); margin-bottom: 0.25rem; }
.resource-bar p  { font-size: 0.9rem; color: var(--gray-mid); }

/* ── TIMELY LEGISLATIVE UPDATE CALLOUT ── */
.legislative-callout {
  background: var(--navy);
  border-left: 4px solid var(--blue-accent);
  padding: 2rem 2.5rem;
  margin: 2.5rem 0;
  display: flex;
  gap: 1.5rem;
  align-items: flex-start;
}
.legislative-callout .callout-icon {
  flex-shrink: 0;
  width: 40px;
  height: 40px;
  background: var(--blue-accent);
  display: flex;
  align-items: center;
  justify-content: center;
}
.legislative-callout-content h4 { color: white; margin-bottom: 0.5rem; }
.legislative-callout-content p  { font-size: 0.9rem; color: rgba(255,255,255,0.75); line-height: 1.7; }
.legislative-callout-content a  { color: var(--lime); text-decoration: none; font-weight: 600; }
.legislative-callout-content a:hover { color: white; }

/* ── CLO / ONGOING COUNSEL FRAMING ── */
.clo-features {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2rem;
  margin: 3rem 0;
}
.clo-feature {
  padding: 2.5rem 2rem;
  border: 1px solid var(--gray-light);
  text-align: center;
  transition: all 0.3s;
}
.clo-feature:hover {
  border-color: var(--blue-accent);
  box-shadow: 0 4px 20px rgba(0,0,0,0.06);
}
.clo-feature-icon {
  width: 56px;
  height: 56px;
  background: var(--off-white);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto 1.25rem;
  transition: background 0.3s;
}
.clo-feature:hover .clo-feature-icon { background: var(--navy); }
.clo-feature h4 { margin-bottom: 0.75rem; }
.clo-feature p  { font-size: 0.88rem; color: var(--gray-mid); }

/* ── MINI TESTIMONIALS (for inner pages) ── */
.mini-testimonial {
  background: var(--off-white);
  padding: 2rem 2.5rem;
  margin: 2.5rem 0;
  border-left: 3px solid var(--blue-accent);
}
.mini-testimonial blockquote {
  font-family: 'Radley', serif;
  font-style: italic;
  font-size: 1rem;
  color: var(--navy);
  line-height: 1.7;
  margin-bottom: 0.75rem;
}
.mini-testimonial cite {
  font-family: 'Poppins', sans-serif;
  font-weight: 500;
  font-size: 0.7rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--blue-accent);
  font-style: normal;
}
.mini-testimonial .stars { color: var(--lime); font-size: 0.75rem; margin-bottom: 0.75rem; }

/* ── RESPONSE COMMITMENT (near forms) ── */
.response-promise {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding: 1rem 1.25rem;
  background: rgba(10,116,204,0.06);
  border: 1px solid rgba(10,116,204,0.15);
  margin-top: 1.25rem;
}
.response-promise p {
  font-family: 'Poppins', sans-serif;
  font-weight: 500;
  font-size: 0.72rem;
  letter-spacing: 0.06em;
  color: var(--navy);
  margin: 0;
}

/* Mobile responsive additions */
@media (max-width: 768px) {
  .trust-bar-inner { gap: 1.5rem; }
  .video-inner { grid-template-columns: 1fr; gap: 3rem; }
  .faq-grid { grid-template-columns: 1fr; }
  .clo-features { grid-template-columns: 1fr; }
  .resource-bar-inner { flex-direction: column; }
  .legislative-callout { flex-direction: column; }
}

/* ══════════════════════════════════════════
   BEST PRACTICES ADDITIONS
   Research-backed: trust signals, CLO framing,
   FAQ, timely news, conversion optimization
══════════════════════════════════════════ */

/* News banner */
.news-banner { background:var(--blue-accent); padding:0.85rem 2rem; text-align:center; position:relative; }
.news-banner p { font-family:'Poppins',sans-serif; font-weight:500; font-size:0.75rem; letter-spacing:0.08em; color:var(--white); margin:0; }
.news-banner a { color:var(--white); text-decoration:underline; text-underline-offset:3px; }
.news-banner .news-close { position:absolute; right:1.25rem; top:50%; transform:translateY(-50%); background:none; border:none; color:rgba(255,255,255,0.7); font-size:1rem; cursor:pointer; padding:0.25rem; }

/* Trust bar */
.trust-bar { background:var(--off-white); border-top:1px solid var(--gray-light); border-bottom:1px solid var(--gray-light); padding:1.25rem 2rem; }
.trust-bar-inner { max-width:1320px; margin:0 auto; display:flex; align-items:center; justify-content:center; gap:3rem; flex-wrap:wrap; }
.trust-item { display:flex; align-items:center; gap:0.75rem; font-family:'Poppins',sans-serif; }
.trust-item .trust-icon { color:var(--blue-accent); flex-shrink:0; }
.trust-item strong { font-weight:600; font-size:0.75rem; letter-spacing:0.06em; color:var(--navy); display:block; }
.trust-item span { font-size:0.68rem; color:var(--gray-mid); letter-spacing:0.04em; display:block; }
.star-display { display:flex; align-items:center; gap:0.35rem; }
.star-display .stars { color:var(--lime); font-size:0.85rem; letter-spacing:1px; }
.star-display .star-count { font-family:'Poppins',sans-serif; font-weight:700; font-size:0.9rem; color:var(--navy); }
.star-display .star-label { font-family:'Poppins',sans-serif; font-size:0.68rem; color:var(--gray-mid); }

/* FAQ */
.faq-section { padding:7rem 2rem; background:var(--off-white); }
.faq-grid { display:grid; grid-template-columns:1fr 1fr; gap:1px; background:var(--gray-light); margin-top:3rem; }
.faq-item { background:var(--white); border-top:2px solid transparent; transition:border-top-color 0.3s; }
.faq-item.open, .faq-item:hover { border-top-color:var(--blue-accent); }
.faq-question { width:100%; text-align:left; padding:1.5rem 2rem; background:none; border:none; cursor:pointer; display:flex; align-items:flex-start; justify-content:space-between; gap:1rem; font-family:'Poppins',sans-serif; font-weight:500; font-size:0.88rem; color:var(--navy); line-height:1.5; }
.faq-icon { flex-shrink:0; width:22px; height:22px; border:1px solid var(--gray-light); border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:0.7rem; color:var(--blue-accent); transition:all 0.3s; margin-top:0.05rem; }
.faq-item.open .faq-icon { background:var(--blue-accent); color:white; border-color:var(--blue-accent); }
.faq-answer { max-height:0; overflow:hidden; transition:max-height 0.38s ease; }
.faq-item.open .faq-answer { max-height:500px; }
.faq-answer p { padding:0 2rem 1.75rem; font-size:0.92rem; color:var(--text-body); line-height:1.85; }

/* Video placeholder */
.video-section { background:var(--navy-dark); padding:7rem 2rem; }
.video-inner { max-width:1320px; margin:0 auto; display:grid; grid-template-columns:1fr 1fr; gap:6rem; align-items:center; }
.video-frame { position:relative; aspect-ratio:16/9; background:rgba(255,255,255,0.05); border:1px solid rgba(10,116,204,0.25); display:flex; flex-direction:column; align-items:center; justify-content:center; gap:1.25rem; cursor:pointer; transition:border-color 0.3s; }
.video-frame:hover { border-color:var(--blue-accent); }
.video-play-btn { width:68px; height:68px; border:1.5px solid var(--blue-accent); border-radius:50%; display:flex; align-items:center; justify-content:center; transition:all 0.3s; background:rgba(10,116,204,0.12); }
.video-play-btn:hover { background:var(--blue-accent); transform:scale(1.08); }
.video-caption { font-family:'Poppins',sans-serif; font-size:0.68rem; letter-spacing:0.16em; text-transform:uppercase; color:rgba(255,255,255,0.45); }
.video-text h2 { color:white; }
.video-text p  { color:rgba(255,255,255,0.72); margin-top:1rem; }
.video-text .section-rule span { color:var(--lime); }

/* Legislative callout */
.legislative-callout { background:var(--navy); border-left:4px solid var(--blue-accent); padding:2rem 2.5rem; margin:2.5rem 0; display:flex; gap:1.5rem; align-items:flex-start; }
.callout-icon { flex-shrink:0; width:40px; height:40px; background:var(--blue-accent); display:flex; align-items:center; justify-content:center; }
.callout-body h4 { color:white; margin-bottom:0.5rem; }
.callout-body p  { font-size:0.9rem; color:rgba(255,255,255,0.75); line-height:1.75; }
.callout-body a  { color:var(--lime); font-weight:600; text-decoration:none; }

/* CLO features grid */
.clo-features { display:grid; grid-template-columns:repeat(3,1fr); gap:2rem; margin:3rem 0; }
.clo-feature { padding:2.5rem 2rem; border:1px solid var(--gray-light); text-align:center; transition:all 0.3s; }
.clo-feature:hover { border-color:var(--blue-accent); box-shadow:0 4px 20px rgba(0,0,0,0.06); }
.clo-feature-icon { width:56px; height:56px; background:var(--off-white); border-radius:50%; display:flex; align-items:center; justify-content:center; margin:0 auto 1.25rem; transition:background 0.3s; }
.clo-feature:hover .clo-feature-icon { background:var(--navy); }
.clo-feature h4 { margin-bottom:0.75rem; }
.clo-feature p  { font-size:0.88rem; color:var(--gray-mid); }

/* Mini testimonial (inner pages) */
.mini-testimonial { background:var(--off-white); padding:2rem 2.5rem; margin:2.5rem 0; border-left:3px solid var(--blue-accent); }
.mini-testimonial .stars { color:var(--lime); font-size:0.8rem; margin-bottom:0.75rem; letter-spacing:2px; }
.mini-testimonial blockquote { font-family:'Radley',serif; font-style:italic; font-size:1rem; color:var(--navy); line-height:1.75; margin-bottom:0.75rem; }
.mini-testimonial cite { font-family:'Poppins',sans-serif; font-weight:500; font-size:0.7rem; letter-spacing:0.12em; text-transform:uppercase; color:var(--blue-accent); font-style:normal; }

/* Response promise */
.response-promise { display:flex; align-items:center; gap:0.75rem; padding:0.9rem 1.25rem; background:rgba(10,116,204,0.06); border:1px solid rgba(10,116,204,0.15); margin-top:1.25rem; }
.response-promise p { font-family:'Poppins',sans-serif; font-weight:500; font-size:0.72rem; letter-spacing:0.06em; color:var(--navy); margin:0; }

/* Resource bar */
.resource-bar { background:var(--cream); padding:3rem 2rem; border-top:1px solid var(--gray-light); border-bottom:1px solid var(--gray-light); }
.resource-bar-inner { max-width:1320px; margin:0 auto; display:flex; align-items:center; justify-content:space-between; gap:2rem; flex-wrap:wrap; }
.resource-bar h4 { color:var(--navy); margin-bottom:0.25rem; }
.resource-bar p  { font-size:0.9rem; color:var(--gray-mid); }

@media(max-width:768px){
  .trust-bar-inner { gap:1.5rem; }
  .video-inner { grid-template-columns:1fr; gap:3rem; }
  .faq-grid { grid-template-columns:1fr; background:none; gap:1rem; }
  .clo-features { grid-template-columns:1fr; }
  .resource-bar-inner { flex-direction:column; }
  .legislative-callout { flex-direction:column; }
}

