/* ── EstatesHelp Theme CSS ──────────────────────────────────────────
   Design system: Cream / Beige / Gold / Navy
   Fonts: Playfair Display (headings), DM Sans (body)
   WCAG 2.1 AA compliant contrast ratios throughout
─────────────────────────────────────────────────────────────────── */

/* ── DESIGN TOKENS ─────────────────────────────────────────────── */
:root {
  --eh-cream:       #f7f4ee;
  --eh-beige:       #e3e9da;
  --eh-gold:        #d5b26b;
  --eh-gold-dark:   #b8943e;
  --eh-gold-label:  #7a6020;  /* 5.4:1 on cream — AA compliant */
  --eh-navy:        #1a3156;
  --eh-navy-dark:   #0b1630;
  --eh-muted:       #4b617f;  /* 5.7:1 on cream — AA compliant */
  --eh-border:      rgba(26, 49, 86, 0.20);
  --eh-white:       #ffffff;

  --eh-radius:    0.625rem;   /* 10px */
  --eh-radius-xl: 1.125rem;   /* 18px */
  --eh-radius-2xl:1.375rem;   /* 22px */

  --eh-font-serif: 'Playfair Display', Georgia, serif;
  --eh-font-sans:  'DM Sans', system-ui, -apple-system, sans-serif;

  --eh-shadow-sm: 0 1px 3px rgba(26,49,86,.08), 0 1px 2px rgba(26,49,86,.06);
  --eh-shadow:    0 4px 16px rgba(26,49,86,.08), 0 2px 6px rgba(26,49,86,.06);
  --eh-shadow-lg: 0 16px 48px rgba(26,49,86,.12), 0 4px 16px rgba(26,49,86,.08);
}

/* ── RESET & BASE ──────────────────────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }

body {
  font-family: var(--eh-font-sans);
  font-size: 1rem;
  line-height: 1.65;
  color: var(--eh-navy);
  background-color: var(--eh-cream);
  -webkit-font-smoothing: antialiased;
}

img, video { max-width: 100%; height: auto; display: block; }
a { color: inherit; text-decoration: none; }
a:hover { text-decoration: underline; }
ul, ol { list-style: none; }
button { cursor: pointer; font-family: inherit; }

/* ── ACCESSIBILITY ─────────────────────────────────────────────── */
.eh-skip-link {
  position: absolute;
  transform: translateY(-150%);
  left: 1rem; top: 1rem; z-index: 9999;
  background: var(--eh-navy-dark); color: var(--eh-white);
  padding: .75rem 1.25rem; border-radius: var(--eh-radius);
  font-weight: 600; font-size: .875rem; text-decoration: none;
  transition: transform .15s ease;
}
.eh-skip-link:focus { transform: translateY(0); }

:focus-visible {
  outline: 3px solid var(--eh-navy);
  outline-offset: 3px;
  border-radius: 2px;
}
.site-footer :focus-visible,
.eh-stats-band :focus-visible,
.eh-fast-track :focus-visible,
.eh-hero--dark :focus-visible {
  outline-color: var(--eh-gold);
}

.screen-reader-text {
  border: 0; clip: rect(1px,1px,1px,1px);
  clip-path: inset(50%); height: 1px; margin: -1px;
  overflow: hidden; padding: 0; position: absolute; width: 1px;
  word-wrap: normal !important;
}

/* ── ICON ──────────────────────────────────────────────────────── */
.eh-icon         { width: 1.25rem; height: 1.25rem; display: inline-block; vertical-align: middle; flex-shrink: 0; }
.eh-icon--sm     { width: 1rem; height: 1rem; }
.eh-icon--lg     { width: 1.5rem; height: 1.5rem; }
.eh-icon--xl     { width: 2rem; height: 2rem; }
.eh-icons-sprite { display: none; }

/* ── CONTAINER ─────────────────────────────────────────────────── */
.eh-container {
  max-width: 1280px;
  margin-inline: auto;
  padding-inline: clamp(1rem, 4vw, 1.5rem);
}

/* ── TYPOGRAPHY ────────────────────────────────────────────────── */
h1, h2, h3, h4, h5, h6,
.wp-block-heading {
  font-family: var(--eh-font-serif);
  line-height: 1.2;
  letter-spacing: -0.03em;
  color: var(--eh-navy-dark);
}
h1 { font-size: clamp(2rem, 4vw, 3rem); font-weight: 700; }
h2 { font-size: clamp(1.6rem, 3vw, 2.4rem); font-weight: 700; }
h3 { font-size: 1.125rem; font-weight: 600; }
h4 { font-size: 1rem; font-weight: 600; }

.eh-eyebrow {
  font-size: .75rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .1em;
  color: var(--eh-gold-label); /* AA contrast on light bg */
  margin-bottom: .75rem;
}
/* On dark backgrounds, bright gold is fine */
.eh-stats-band .eh-eyebrow,
.eh-fast-track .eh-eyebrow,
.eh-hero--dark .eh-eyebrow,
.eh-vendor-hero .eh-eyebrow { color: var(--eh-gold); }

/* ── BUTTONS ───────────────────────────────────────────────────── */
.btn {
  display: inline-flex; align-items: center; gap: .4rem;
  font-family: var(--eh-font-sans); font-weight: 700;
  font-size: .875rem; line-height: 1; letter-spacing: .02em;
  padding: .75rem 1.5rem; border-radius: var(--eh-radius);
  border: 2px solid transparent; text-decoration: none;
  cursor: pointer; transition: background .2s, color .2s, border-color .2s;
  white-space: nowrap;
}
.btn--primary {
  background: var(--eh-gold); color: var(--eh-navy-dark);
  border-color: var(--eh-gold);
}
.btn--primary:hover, .btn--primary:focus-visible {
  background: var(--eh-gold-dark); border-color: var(--eh-gold-dark);
  text-decoration: none;
}
.btn--secondary {
  background: transparent; color: var(--eh-navy);
  border-color: var(--eh-border);
}
.btn--secondary:hover, .btn--secondary:focus-visible {
  border-color: var(--eh-navy); background: rgba(26,49,86,.04);
  text-decoration: none;
}
.btn--dark {
  background: var(--eh-navy-dark); color: var(--eh-white);
  border-color: var(--eh-navy-dark);
}
.btn--dark:hover, .btn--dark:focus-visible {
  background: var(--eh-navy); border-color: var(--eh-navy);
  text-decoration: none;
}
.btn--sm { padding: .5rem 1.125rem; font-size: .8125rem; }
.btn--lg { padding: .9rem 2rem; font-size: 1rem; }

/*
 * ── WP BUTTON BLOCKS ──────────────────────────────────────────────
 * All styling via CSS class on the outer .wp-block-button div.
 * Zero inline styles in block markup (avoids Gutenberg validation errors).
 * transition uses explicit long-hand properties — 'background' shorthand
 * is NOT transitionable in all browsers; 'background-color' is.
 */

/* Reset WP defaults */
.wp-block-button__link {
  font-family: var(--eh-font-sans) !important;
  font-weight: 700 !important;
  letter-spacing: .02em !important;
  text-decoration: none !important;
}

/* Base shared styles */
.wp-block-button .wp-block-button__link {
  display: inline-flex !important;
  align-items: center !important;
  gap: .4rem !important;
  padding: .75rem 1.5rem !important;
  font-size: .875rem !important;
  border-radius: var(--eh-radius) !important;
  border: 2px solid transparent !important;
  white-space: nowrap;
  /* Explicit long-hand so transitions actually fire */
  transition-property: background-color, color, border-color, box-shadow;
  transition-duration: .18s;
  transition-timing-function: ease;
}
.wp-block-button .wp-block-button__link:hover,
.wp-block-button .wp-block-button__link:focus-visible {
  text-decoration: none !important;
}

/* ── Primary — gold fill ── */
.wp-block-button.eh-btn-primary .wp-block-button__link {
  background-color: var(--eh-gold) !important;
  color: var(--eh-navy-dark) !important;
  border-color: var(--eh-gold) !important;
}
.wp-block-button.eh-btn-primary .wp-block-button__link:hover,
.wp-block-button.eh-btn-primary .wp-block-button__link:focus-visible {
  background-color: var(--eh-gold-dark) !important;
  border-color: var(--eh-gold-dark) !important;
  color: var(--eh-navy-dark) !important;
}

/* ── Secondary — outlined navy ── */
.wp-block-button.eh-btn-secondary .wp-block-button__link {
  background-color: transparent !important;
  color: var(--eh-navy) !important;
  border-color: var(--eh-border) !important;
  box-shadow: none !important;
}
.wp-block-button.eh-btn-secondary .wp-block-button__link:hover,
.wp-block-button.eh-btn-secondary .wp-block-button__link:focus-visible {
  background-color: rgba(26,49,86,.05) !important;
  border-color: var(--eh-navy) !important;
  color: var(--eh-navy-dark) !important;
}

/* ── Ghost — white outline on dark backgrounds ── */
.wp-block-button.eh-btn-ghost .wp-block-button__link {
  background-color: transparent !important;
  color: var(--eh-white) !important;
  border-color: rgba(255,255,255,.35) !important;
}
.wp-block-button.eh-btn-ghost .wp-block-button__link:hover,
.wp-block-button.eh-btn-ghost .wp-block-button__link:focus-visible {
  background-color: rgba(255,255,255,.12) !important;
  border-color: rgba(255,255,255,.65) !important;
  color: var(--eh-white) !important;
}

/* ── Dark — navy-dark fill on light/gold backgrounds ── */
.wp-block-button.eh-btn-dark .wp-block-button__link {
  background-color: var(--eh-navy-dark) !important;
  color: var(--eh-white) !important;
  border-color: var(--eh-navy-dark) !important;
}
.wp-block-button.eh-btn-dark .wp-block-button__link:hover,
.wp-block-button.eh-btn-dark .wp-block-button__link:focus-visible {
  background-color: var(--eh-navy) !important;
  border-color: var(--eh-navy) !important;
  color: var(--eh-white) !important;
}

/* ── Outline-dark — navy outline on gold/cream backgrounds ── */
.wp-block-button.eh-btn-outline-dark .wp-block-button__link {
  background-color: transparent !important;
  color: var(--eh-navy-dark) !important;
  border-color: rgba(11,22,48,.28) !important;
}
.wp-block-button.eh-btn-outline-dark .wp-block-button__link:hover,
.wp-block-button.eh-btn-outline-dark .wp-block-button__link:focus-visible {
  background-color: rgba(11,22,48,.06) !important;
  border-color: var(--eh-navy-dark) !important;
  color: var(--eh-navy-dark) !important;
}

/* wp:buttons group — horizontal flex with gap */
.wp-block-buttons {
  display: flex !important;
  flex-wrap: wrap;
  gap: .75rem;
  align-items: center;
}

/* ── HEADER / NAV ──────────────────────────────────────────────── */
.site-header {
  position: sticky; top: 0; z-index: 100;
  background: var(--eh-cream);
  border-bottom: 1px solid var(--eh-border);
}
.nav-inner {
  max-width: 1280px; margin-inline: auto;
  padding-inline: clamp(1rem, 4vw, 1.5rem);
  height: 68px;
  display: flex; align-items: center; gap: 2rem;
}
.site-logo {
  display: flex; align-items: center; gap: .625rem;
  text-decoration: none; flex-shrink: 0;
}
.site-logo svg { display: block; }
.site-logo__text {
  font-family: var(--eh-font-serif);
  font-size: 1.3rem; font-weight: 600;
  letter-spacing: -.02em; color: var(--eh-navy-dark);
  line-height: 1;
}
/* Gold "Help" portion of the wordmark */
.site-logo__gold,
.footer-logo__gold { color: var(--eh-gold); }
/* Custom logo from WordPress */
.site-logo .custom-logo { height: 36px; width: auto; }

.nav-menu-wrap { flex: 1; }
.nav-menu {
  display: flex; align-items: center; gap: 1.75rem;
}
.nav-menu li { position: relative; }
.nav-menu a {
  font-size: .875rem; font-weight: 500;
  color: var(--eh-muted);
  text-decoration: none; transition: color .15s;
  padding-block: .25rem;
}
.nav-menu a:hover,
.nav-menu .current-menu-item > a,
.nav-menu .current_page_item > a { color: var(--eh-navy-dark); }
.nav-menu .current-menu-item > a { font-weight: 600; }

.nav-actions {
  margin-left: auto;
  display: flex; align-items: center; gap: 1rem;
}
.nav-login {
  font-size: .875rem; font-weight: 500; color: var(--eh-navy);
  text-decoration: none;
}
.nav-toggle {
  display: none; background: none; border: none; padding: .25rem;
  color: var(--eh-navy);
}
.nav-toggle__close { display: none; }

/* Mobile nav */
@media ( max-width: 767px ) {
  .nav-menu-wrap {
    display: none; position: absolute; top: 68px; left: 0; right: 0;
    background: var(--eh-cream); border-bottom: 1px solid var(--eh-border);
    padding: 1rem clamp(1rem,4vw,3rem) 1.5rem;
    box-shadow: var(--eh-shadow);
  }
  .nav-menu-wrap.is-open { display: block; }
  .nav-menu { flex-direction: column; align-items: flex-start; gap: 0; }
  .nav-menu a { display: block; padding: .625rem 0; font-size: 1rem; }
  .nav-toggle { display: block; }
  .nav-toggle[aria-expanded="true"] .nav-toggle__open  { display: none; }
  .nav-toggle[aria-expanded="true"] .nav-toggle__close { display: block; }
  .nav-login { display: none; }
}

/* ── SECTION SHARED ────────────────────────────────────────────── */
.eh-section {
  padding-block: clamp(3rem, 6vw, 5rem);
}

/* Icon box (used in step cards, feature cards) */
.eh-icon-box {
  width: 2.5rem; height: 2.5rem; border-radius: var(--eh-radius);
  background: rgba(213,178,107,.12);
  display: flex; align-items: center; justify-content: center;
  color: var(--eh-gold-label); flex-shrink: 0;
}

/* ── SECTION SHARED TYPOGRAPHY SPACING ─────────────────────────── */
/* These classes are used across all content sections.
   max-width matches wideSize (1280px) so text blocks align with alignwide columns —
   both get the same Gutenberg constrained-layout centering position. */
.eh-section-label   { margin-bottom: .625rem !important; max-width: var(--wp--style--global--wide-size) !important; }
.eh-section-heading { margin-bottom: .625rem !important; max-width: var(--wp--style--global--wide-size) !important; }
.eh-section-sub     { margin-bottom: 2.75rem !important; font-size: 1.0625rem; line-height: 1.7; max-width: var(--wp--style--global--wide-size) !important; }

/* ── HERO SECTION ──────────────────────────────────────────────── */
.eh-hero {
  background: var(--eh-cream);
  padding-block: clamp(3.5rem, 7vw, 5.5rem);
}
.eh-hero .wp-block-columns { align-items: center; gap: 3rem !important; }

.eh-hero__heading {
  font-family: var(--eh-font-serif);
  font-size: clamp(2rem, 4vw, 3rem); font-weight: 700;
  letter-spacing: -.03em; line-height: 1.15;
  color: var(--eh-navy-dark);
  margin-bottom: 1rem;
}
.eh-hero__heading em { font-style: italic; color: var(--eh-gold); }
.eh-hero__subtitle {
  font-size: 1.0625rem; color: var(--eh-muted); line-height: 1.7;
  margin-bottom: .25rem;
}
.eh-hero__buttons { margin-top: 2rem; }
.eh-trust-badges {
  display: flex; flex-wrap: wrap; gap: 1.25rem;
  list-style: none; padding: 0; margin-top: 1.5rem;
}
.eh-trust-badge {
  display: flex; gap: .5rem; align-items: center;
  font-size: .8rem; font-weight: 500; color: var(--eh-muted);
}
/* Override to white when inside a dark-background hero */
.eh-vendor-hero .eh-trust-badge { color: rgba(255,255,255,.75); }
.eh-trust-badge .eh-icon { color: var(--eh-gold); }

/* Dashboard preview card (decorative) */
.eh-dashboard-preview {
  background: var(--eh-white);
  border-radius: var(--eh-radius-2xl);
  border: 1px solid var(--eh-border);
  box-shadow: var(--eh-shadow-lg);
  overflow: hidden;
}
.eh-dash-header {
  background: var(--eh-navy-dark);
  padding: .875rem 1.25rem;
  display: flex; align-items: center; gap: .625rem;
}
.eh-dash-dot { width: 10px; height: 10px; border-radius: 50%; background: rgba(255,255,255,.15); }
.eh-dash-title {
  flex: 1; text-align: center;
  font-size: .8rem; color: rgba(255,255,255,.4); font-weight: 500;
  margin-right: 30px;
}
.eh-dash-body { padding: 1.25rem; background: var(--eh-cream); }
.eh-dash-label { font-size: .7rem; font-weight: 700; text-transform: uppercase; letter-spacing: .08em; color: var(--eh-muted); margin-bottom: .25rem; }
.eh-dash-name { font-family: var(--eh-font-serif); font-size: 1.1rem; font-weight: 600; color: var(--eh-navy-dark); margin-bottom: 1rem; }
.eh-progress-wrap { background: var(--eh-beige); border-radius: 20px; height: 6px; overflow: hidden; margin-bottom: .375rem; }
.eh-progress-fill { background: var(--eh-gold); height: 100%; width: 35%; border-radius: 20px; }
.eh-progress-label { font-size: .7rem; color: var(--eh-muted); margin-bottom: 1.125rem; }
.eh-dash-step {
  background: var(--eh-white); border-radius: var(--eh-radius); border: 1px solid var(--eh-border);
  padding: .75rem .875rem; margin-bottom: .5rem;
  display: flex; align-items: center; gap: .75rem;
}
.eh-dash-step__num {
  width: 1.75rem; height: 1.75rem; border-radius: 50%; flex-shrink: 0;
  display: flex; align-items: center; justify-content: center;
  font-size: .7rem; font-weight: 700;
}
.eh-dash-step__num--done   { background: var(--eh-gold); color: var(--eh-navy-dark); }
.eh-dash-step__num--active { background: var(--eh-navy); color: var(--eh-white); }
.eh-dash-step__num--todo   { background: var(--eh-beige); color: var(--eh-muted); }
.eh-dash-step__title { font-size: .8rem; font-weight: 600; color: var(--eh-navy-dark); }
.eh-dash-step__sub   { font-size: .7rem; color: var(--eh-muted); }
.eh-dash-step__badge {
  font-size: .65rem; font-weight: 700; text-transform: uppercase; letter-spacing: .05em;
  padding: .2rem .5rem; border-radius: 20px; white-space: nowrap; margin-left: auto;
}
.eh-dash-step__badge--done   { background: #e8f5e8; color: #1a5e1a; border: 1px solid #b8dbb8; }
.eh-dash-step__badge--active { background: rgba(213,178,107,.15); color: var(--eh-gold-dark); border: 1px solid rgba(213,178,107,.3); }

/* ── STATS / PROBLEM BAND ──────────────────────────────────────── */
.eh-stats-band {
  background: var(--eh-navy-dark);
  padding-block: clamp(3rem, 6vw, 5rem);
}
.eh-stats-band .wp-block-columns { align-items: center; gap: 3rem !important; }
.eh-stats-band__heading {
  font-size: clamp(1.5rem, 3vw, 2.25rem) !important;
  color: var(--eh-white) !important;
  margin-bottom: 1rem;
  line-height: 1.2;
}
.eh-stats-band__body { color: rgba(255,255,255,.65); font-size: 1rem; line-height: 1.7; }

/* 2×2 grid of stat cards */
.eh-stat-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem;
}
.eh-stat-card {
  background: rgba(255,255,255,.07);
  border: 1px solid rgba(255,255,255,.10);
  border-radius: var(--eh-radius-xl);
  padding: 1.375rem 1.5rem;
}
.eh-stat-number {
  font-family: var(--eh-font-serif);
  font-size: 2.5rem; font-weight: 700;
  color: var(--eh-gold); line-height: 1;
  margin-bottom: .375rem;
}
.eh-stat-label { font-size: .8125rem; color: rgba(255,255,255,.55); line-height: 1.4; }

/* ── HOW IT WORKS ──────────────────────────────────────────────── */
.eh-how-it-works {
  background: var(--eh-cream);
  padding-block: clamp(3rem, 6vw, 5rem);
}
.eh-how-it-works .wp-block-columns { gap: 1.25rem !important; margin-top: 2.5rem; }
/* Narrow sub – 560px wide, left edge matches the wideSize container.
   margin-left mirrors Gutenberg's centering math: (parent - wideSize) / 2.
   max(0px,...) collapses to 0 on small screens where parent < wideSize. */
.eh-section-sub--narrow {
  max-width: 560px !important;
  margin-left: max(0px, calc((100% - var(--wp--style--global--wide-size)) / 2)) !important;
  margin-right: auto !important;
}

.eh-step-card,
.eh-step-card__inner {
  background: var(--eh-white);
  border-radius: var(--eh-radius-xl);
  border: 1px solid var(--eh-border);
  padding: 1.75rem 1.5rem;
  height: 100%;
  transition: box-shadow .18s ease;
}
.eh-step-card:hover,
.eh-step-card__inner:hover { box-shadow: var(--eh-shadow); }

/* Large zero-padded step number */
.eh-step-num {
  font-family: var(--eh-font-serif);
  font-size: 3rem; font-weight: 700;
  color: var(--eh-beige); line-height: 1;
  margin-bottom: .875rem;
  letter-spacing: -.02em;
}

/* Icon box inside step card */
.eh-step-icon {
  width: 2.25rem; height: 2.25rem;
  border-radius: var(--eh-radius);
  background: rgba(213,178,107,.12);
  display: flex; align-items: center; justify-content: center;
  color: var(--eh-gold-label);
  margin-bottom: 1rem;
}

.eh-step-title { font-size: 1rem; font-weight: 600; color: var(--eh-navy-dark); margin-bottom: .5rem; }
.eh-step-desc  { font-size: .9375rem; color: var(--eh-muted); line-height: 1.65; }

/* ── FEATURES GRID ─────────────────────────────────────────────── */
.eh-features,
.eh-features-section {
  background: var(--eh-beige);
  padding-block: clamp(3rem, 6vw, 5rem);
}
.eh-features .wp-block-columns { gap: 1.5rem !important; margin-top: 0 !important; }
.eh-features .wp-block-columns + .wp-block-columns { margin-top: 1.5rem !important; }

.eh-feature-card,
.eh-feature-card__inner {
  background: var(--eh-white);
  border-radius: var(--eh-radius-xl);
  border: 1px solid var(--eh-border);
  padding: 1.75rem 1.5rem;
  height: 100%;
}
.eh-feature-icon {
  width: 2.5rem; height: 2.5rem; border-radius: var(--eh-radius);
  background: rgba(213,178,107,.12);
  display: flex; align-items: center; justify-content: center;
  color: var(--eh-gold-label);
  margin-bottom: 1rem;
}
.eh-feature-title { font-size: 1rem; font-weight: 600; color: var(--eh-navy-dark); margin-bottom: .5rem; }
.eh-feature-desc  { font-size: .9375rem; color: var(--eh-muted); line-height: 1.65; }

/* ── FAST TRACK / CTA BAND ─────────────────────────────────────── */
.eh-fast-track {
  background: var(--eh-navy);
  padding-block: clamp(3rem, 6vw, 5rem);
  text-align: center;
}
.eh-fast-track .wp-block-heading,
.eh-fast-track__heading { color: var(--eh-white) !important; max-width: 720px; margin-inline: auto; }
.eh-fast-track__sub  { color: rgba(255,255,255,.70); max-width: 620px; margin-inline: auto; font-size: 1.0625rem; line-height: 1.7; margin-bottom: 2rem !important; }
/* BEM double-underscore badge */
.eh-fast-track__badge {
  display: inline-flex; align-items: center; gap: .4rem;
  background: rgba(213,178,107,.15); color: var(--eh-gold);
  border: 1px solid rgba(213,178,107,.3);
  font-size: .72rem; font-weight: 700; text-transform: uppercase;
  letter-spacing: .1em; padding: .4rem .875rem; border-radius: 20px;
  margin-bottom: 1.5rem;
}

/* ── TESTIMONIALS ──────────────────────────────────────────────── */
.eh-testimonials {
  background: var(--eh-beige);
  padding-block: clamp(3rem, 6vw, 5rem);
}
.eh-testimonials .wp-block-columns { gap: 1.25rem !important; }
.eh-testimonials__heading {
  font-family: var(--eh-font-serif);
  font-size: clamp(1.75rem, 4vw, 2.25rem);
  font-weight: 700;
  color: var(--eh-navy-dark) !important;
  letter-spacing: -.02em;
  margin-bottom: 2.5rem !important;
}

/* ── VENDOR TEASER ─────────────────────────────────────────────── */
.eh-vendor-teaser {
  background: var(--eh-cream);
  padding-block: clamp(3rem, 6vw, 5rem);
}
.eh-vendor-teaser .wp-block-columns { align-items: flex-start; gap: 4rem !important; }
.eh-vendor-teaser__heading { color: var(--eh-navy-dark) !important; margin-bottom: 1rem; font-size: clamp(1.75rem, 3.5vw, 2.75rem) !important; }
.eh-vendor-teaser__sub { color: var(--eh-muted); font-size: 1.0625rem; line-height: 1.7; margin-bottom: 1.75rem; }

/* Vendor type pills */
.eh-vendor-pills {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: .625rem;
  list-style: none; padding: 0;
  margin-top: 1.75rem;
}
.eh-vendor-pill {
  display: flex; align-items: center; gap: .625rem;
  border: 1.5px solid var(--eh-border);
  border-radius: var(--eh-radius);
  padding: .625rem 1rem;
  font-size: .875rem; font-weight: 500; color: var(--eh-navy);
  background: var(--eh-white);
}
.eh-vendor-pill::before {
  content: '';
  width: 8px; height: 8px; border-radius: 50%;
  background: var(--eh-gold); flex-shrink: 0;
}

/* "Why Vendors Join" benefit card */
.eh-vendor-why-card {
  background: var(--eh-white);
  border: 1px solid var(--eh-border);
  border-radius: var(--eh-radius-2xl);
  padding: 2rem 2.25rem;
  box-shadow: var(--eh-shadow);
}
.eh-vendor-why-card__label {
  font-size: .6875rem; font-weight: 700; text-transform: uppercase;
  letter-spacing: .1em; color: var(--eh-gold-label);
  margin-bottom: .625rem;
}
.eh-vendor-why-card__heading {
  font-family: var(--eh-font-serif);
  font-size: 1.375rem; font-weight: 600;
  color: var(--eh-navy-dark); line-height: 1.3;
  margin-bottom: 1.5rem;
}
.eh-vendor-why-list { list-style: none; padding: 0; display: flex; flex-direction: column; gap: 1.25rem; }
.eh-vendor-why-item { display: flex; align-items: flex-start; gap: .875rem; }
.eh-vendor-why-icon {
  width: 2.25rem; height: 2.25rem; border-radius: var(--eh-radius);
  background: rgba(213,178,107,.12);
  display: flex; align-items: center; justify-content: center;
  color: var(--eh-gold-label); flex-shrink: 0;
}
.eh-vendor-why-title { font-size: .9375rem; font-weight: 600; color: var(--eh-navy-dark); margin-bottom: .25rem; }
.eh-vendor-why-desc  { font-size: .875rem; color: var(--eh-muted); line-height: 1.6; }

/* ── FINAL CTA ─────────────────────────────────────────────────── */
.eh-final-cta {
  background: var(--eh-gold);
  padding-block: clamp(3rem, 6vw, 5.5rem);
  text-align: center;
}
.eh-final-cta .wp-block-heading,
.eh-final-cta__heading { color: var(--eh-navy-dark) !important; margin-bottom: .75rem; }
.eh-final-cta__sub   { color: rgba(11,22,48,.70); font-size: 1.0625rem; margin-bottom: 2rem !important; }

/* ── VENDOR HERO ───────────────────────────────────────────────── */
.eh-vendor-hero {
  background: var(--eh-navy-dark);
  padding-block: clamp(3rem, 6vw, 5rem);
}
.eh-vendor-hero h1 { color: var(--eh-white); }
.eh-vendor-hero p.eh-hero__subtitle { color: rgba(255,255,255,.65); }
.eh-vendor-form-card {
  background: var(--eh-cream);
  border-radius: var(--eh-radius-2xl);
  padding: 2.25rem; box-shadow: 0 24px 64px rgba(0,0,0,.3);
}
.eh-vendor-form-card h2 { font-size: 1.25rem; color: var(--eh-navy-dark); margin-bottom: .25rem; }

/* ── FORM ELEMENTS ─────────────────────────────────────────────── */
.eh-form-label {
  display: block; font-size: .72rem; font-weight: 700;
  text-transform: uppercase; letter-spacing: .07em;
  color: var(--eh-navy); margin-bottom: .4rem;
}
.eh-form-required { color: #c0392b; }
.eh-form-field {
  width: 100%; padding: .625rem .875rem;
  border-radius: var(--eh-radius); border: 1.5px solid var(--eh-border);
  background: var(--eh-white); font-family: var(--eh-font-sans);
  font-size: .875rem; color: var(--eh-navy-dark);
  transition: border-color .2s;
}
.eh-form-field:focus { outline: none; border-color: var(--eh-navy); box-shadow: 0 0 0 3px rgba(26,49,86,.15); }
.eh-form-row { display: grid; grid-template-columns: 1fr 1fr; gap: .875rem; }
@media (max-width:480px) { .eh-form-row { grid-template-columns: 1fr; } }
.eh-form-group { margin-bottom: .875rem; }
.eh-form-note { font-size: .75rem; color: var(--eh-muted); }

/* ── FORMINATOR OVERRIDES ──────────────────────────────────────────
   Maps Forminator's default markup to the EstatesHelp design system.
   Forminator's own stylesheet is still loaded (handles JS states,
   multi-step, file upload UI) — we layer on top rather than replace.
   If you disable Forminator CSS in Settings → General, remove any
   rules here that duplicate what you need from scratch.
─────────────────────────────────────────────────────────────────── */

/* Wrapper — remove Forminator's default font override */
.forminator-ui,
.forminator-ui * {
  font-family: var(--eh-font-sans) !important;
  color: inherit;
}

/* ── Labels ── */
.forminator-label,
.forminator-field--label {
  display: block !important;
  font-size: .72rem !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: .07em !important;
  color: var(--eh-navy) !important;
  margin-bottom: .4rem !important;
}
.forminator-required { color: #c0392b !important; }

/* Description / helper text */
.forminator-field--description,
.forminator-description {
  font-size: .75rem !important;
  color: var(--eh-muted) !important;
  margin-top: .3rem !important;
}

/* ── Text / email / tel / number / URL / date inputs ── */
.forminator-input,
.forminator-input-time,
.forminator-textarea {
  width: 100% !important;
  padding: .625rem .875rem !important;
  border-radius: var(--eh-radius) !important;
  border: 1.5px solid var(--eh-border) !important;
  background: var(--eh-white) !important;
  font-family: var(--eh-font-sans) !important;
  font-size: .875rem !important;
  color: var(--eh-navy-dark) !important;
  box-shadow: none !important;
  transition: border-color .2s !important;
  appearance: none !important;
}
.forminator-input:focus,
.forminator-input-time:focus,
.forminator-textarea:focus {
  outline: none !important;
  border-color: var(--eh-navy) !important;
  box-shadow: 0 0 0 3px rgba(26,49,86,.15) !important;
}
.forminator-textarea { min-height: 120px; resize: vertical; }

/* ── Select — native (Style: None) ── */
.forminator-ui select,
.forminator-select--field {
  width: 100% !important;
  padding: .625rem .875rem !important;
  border-radius: var(--eh-radius) !important;
  border: 1.5px solid var(--eh-border) !important;
  background: var(--eh-white) !important;
  font-family: var(--eh-font-sans) !important;
  font-size: .875rem !important;
  color: var(--eh-navy-dark) !important;
  box-shadow: none !important;
  appearance: auto;
  transition: border-color .2s !important;
}
.forminator-ui select:focus,
.forminator-select--field:focus {
  outline: none !important;
  border-color: var(--eh-navy) !important;
  box-shadow: 0 0 0 3px rgba(26,49,86,.15) !important;
}

/* ── Select — Select2 (if enabled per-field) ── */
.forminator-select2 .select2-selection,
.forminator-select2 .select2-selection--single {
  height: auto !important;
  padding: .625rem .875rem !important;
  border-radius: var(--eh-radius) !important;
  border: 1.5px solid var(--eh-border) !important;
  background: var(--eh-white) !important;
  font-size: .875rem !important;
  color: var(--eh-navy-dark) !important;
  box-shadow: none !important;
}
.forminator-select2 .select2-selection:focus,
.forminator-select2.select2-container--focus .select2-selection {
  border-color: var(--eh-navy) !important;
  box-shadow: 0 0 0 3px rgba(26,49,86,.15) !important;
  outline: none !important;
}
.forminator-select2 .select2-selection__rendered {
  color: var(--eh-navy-dark) !important;
  font-size: .875rem !important;
  line-height: 1.5 !important;
  padding: 0 !important;
}
.forminator-select2 .select2-selection__arrow { top: 50% !important; transform: translateY(-50%); }
.select2-dropdown {
  border: 1.5px solid var(--eh-border) !important;
  border-radius: var(--eh-radius) !important;
  box-shadow: var(--eh-shadow) !important;
}
.select2-results__option--highlighted {
  background: var(--eh-navy) !important;
  color: var(--eh-white) !important;
}

/* ── Checkbox & Radio ── */
.forminator-checkbox,
.forminator-radio {
  display: flex !important;
  align-items: flex-start !important;
  gap: .5rem !important;
  cursor: pointer !important;
}
.forminator-checkbox input[type="checkbox"],
.forminator-radio input[type="radio"] {
  width: 1rem; height: 1rem;
  accent-color: var(--eh-navy);
  flex-shrink: 0; margin-top: .15rem;
}
.forminator-checkbox--label,
.forminator-radio--label {
  font-size: .875rem !important;
  font-weight: 400 !important;
  text-transform: none !important;
  letter-spacing: 0 !important;
  color: var(--eh-navy) !important;
}

/* ── Field row spacing ── */
.forminator-row { margin-bottom: .875rem !important; }

/* ── Error states ── */
.forminator-input.forminator-is_invalid,
.forminator-textarea.forminator-is_invalid {
  border-color: #c0392b !important;
}
.forminator-error-message,
.forminator-field--error {
  font-size: .75rem !important;
  color: #c0392b !important;
  margin-top: .3rem !important;
}

/* ── Submit button ── */
.forminator-button-submit,
.forminator-button {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: .4rem !important;
  width: 100% !important;
  padding: .75rem 1.5rem !important;
  border-radius: var(--eh-radius) !important;
  border: 2px solid var(--eh-gold) !important;
  background: var(--eh-gold) !important;
  color: var(--eh-navy-dark) !important;
  font-family: var(--eh-font-sans) !important;
  font-size: .875rem !important;
  font-weight: 700 !important;
  letter-spacing: .02em !important;
  cursor: pointer !important;
  text-transform: none !important;
  transition: background-color .2s, border-color .2s !important;
  box-shadow: none !important;
}
.forminator-button-submit:hover,
.forminator-button:hover {
  background: var(--eh-gold-dark) !important;
  border-color: var(--eh-gold-dark) !important;
  color: var(--eh-navy-dark) !important;
}

/* ── Success message ── */
.forminator-response-message[aria-hidden="true"] {
  display: none !important;
}
.forminator-response-message,
.forminator-success {
  font-size: .9375rem !important;
  color: var(--eh-navy-dark) !important;
  background: rgba(213,178,107,.12) !important;
  border: 1px solid var(--eh-gold) !important;
  border-radius: var(--eh-radius) !important;
  padding: 1rem 1.25rem !important;
}

/* ── Dark background context (e.g. inside .eh-vendor-hero) ──
   The form card is cream so inputs stay white — no overrides needed.
   This rule handles any Forminator form placed directly on navy. ── */
.eh-vendor-hero .forminator-ui .forminator-input,
.eh-vendor-hero .forminator-ui .forminator-textarea {
  background: var(--eh-white) !important;
  color: var(--eh-navy-dark) !important;
}

/* ── VENDOR TYPE CARDS ─────────────────────────────────────────── */
/* Center the section header elements above the grid */
.eh-vendor-types .eh-eyebrow,
.eh-vendor-types .eh-section-heading,
.eh-vendor-types .eh-section-sub {
  text-align: center;
}

.eh-vendor-types-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.25rem;
  margin-top: .5rem;
  width: 100%;
}
.eh-vendor-card {
  background: var(--eh-white); border-radius: var(--eh-radius-xl);
  border: 1px solid var(--eh-border);
  padding: 1.75rem 1rem; text-align: center;
  transition: box-shadow .2s;
}
.eh-vendor-card:hover { box-shadow: var(--eh-shadow); }
.eh-vendor-card__icon {
  width: 3rem; height: 3rem; border-radius: var(--eh-radius);
  background: rgba(213,178,107,.12);
  display: flex; align-items: center; justify-content: center;
  color: var(--eh-gold-label);
  margin: 0 auto .875rem;
}
.eh-vendor-card__title {
  font-family: var(--eh-font-serif);
  font-size: 1rem; font-weight: 600;
  color: var(--eh-navy-dark); margin-bottom: .375rem;
}
.eh-vendor-card__desc {
  font-size: .8125rem; color: var(--eh-muted); line-height: 1.6;
}

/* ── VENDOR HERO — form spacing ────────────────────────────────── */
.eh-vendor-hero .eh-vendor-form-card { margin-block: 1.5rem; }
.eh-vendor-apply-form select.eh-form-field { appearance: auto; }

/* ── TESTIMONIAL BLOCK ─────────────────────────────────────────── */
.eh-testimonial-card {
  background: var(--eh-white);
  border-radius: var(--eh-radius-xl);
  border: 1px solid var(--eh-border);
  padding: 1.5rem;
  display: flex; flex-direction: column;
  height: 100%;
}
/* Stars — render.php outputs .eh-testimonial-stars */
.eh-testimonial-stars {
  display: flex; gap: .15rem; margin-bottom: .875rem;
}
.eh-star--filled { color: var(--eh-gold) !important; font-size: 1rem; }
.eh-star { color: var(--eh-border); font-size: 1rem; }
/* Quote — render.php outputs .eh-testimonial-quote */
.eh-testimonial-quote {
  font-style: italic;
  font-size: .875rem; color: var(--eh-navy); line-height: 1.7;
  flex: 1; margin-bottom: 1.125rem;
}
.eh-testimonial-quote p { margin: 0; }
/* Author row — render.php outputs .eh-testimonial-author */
.eh-testimonial-author {
  display: flex; gap: .75rem; align-items: center;
}
/* Avatar circle — render.php outputs .eh-testimonial-avatar */
.eh-testimonial-avatar {
  width: 2.25rem; height: 2.25rem; border-radius: 50%;
  background: var(--eh-beige); flex-shrink: 0;
  display: flex; align-items: center; justify-content: center;
  font-size: .75rem; font-weight: 700; color: var(--eh-navy);
}
.eh-testimonial-name     { font-size: .8125rem; font-weight: 600; color: var(--eh-navy-dark); margin: 0; }
.eh-testimonial-location { font-size: .75rem; color: var(--eh-muted); display: flex; align-items: center; gap: .25rem; margin: 0; }
.eh-testimonial-location .eh-icon { width: .875rem; height: .875rem; flex-shrink: 0; }

/* ── BLOG ──────────────────────────────────────────────────────── */
.eh-blog-hero {
  background: var(--eh-navy-dark);
  padding-block: clamp(3rem, 5vw, 4rem);
}
.eh-blog-hero h1 { color: var(--eh-white); }
.eh-blog-hero .eh-eyebrow { color: var(--eh-gold); }
.eh-blog-hero__subtitle { font-size: 1rem; color: rgba(255,255,255,.65); margin-top: .75rem; }

.eh-blog-grid-wrap { padding-block: clamp(2.5rem, 5vw, 4rem); }

.eh-posts-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 340px), 1fr));
  gap: 1.5rem;
  margin-bottom: 3rem;
}
.eh-post-card {
  background: var(--eh-white); border-radius: var(--eh-radius-xl);
  border: 1px solid var(--eh-border); overflow: hidden;
  display: flex; flex-direction: column;
  transition: box-shadow .2s;
}
.eh-post-card:hover { box-shadow: var(--eh-shadow); }
.eh-post-card__image-link { display: block; overflow: hidden; }
.eh-post-card__image { width: 100%; height: 200px; object-fit: cover; transition: transform .3s; }
.eh-post-card:hover .eh-post-card__image { transform: scale(1.03); }
.eh-post-card__body { padding: 1.5rem; flex: 1; display: flex; flex-direction: column; gap: .625rem; }
.eh-post-category {
  font-size: .7rem; font-weight: 700; text-transform: uppercase;
  letter-spacing: .08em; color: var(--eh-gold-label);
  text-decoration: none;
}
.eh-post-category:hover { color: var(--eh-navy-dark); }
.eh-post-card__title { font-size: 1rem; margin: 0; }
.eh-post-card__title a { color: var(--eh-navy-dark); text-decoration: none; }
.eh-post-card__title a:hover { color: var(--eh-navy); text-decoration: underline; }
.eh-post-card__excerpt { font-size: .875rem; color: var(--eh-muted); line-height: 1.6; flex: 1; }
.eh-post-card__meta {
  display: flex; align-items: center; justify-content: space-between;
  gap: .5rem; margin-top: auto; padding-top: .75rem;
  border-top: 1px solid var(--eh-border);
}
.eh-post-card__date { font-size: .75rem; color: var(--eh-muted); }
.eh-post-card__read-more {
  font-size: .8125rem; font-weight: 600; color: var(--eh-navy);
  display: flex; align-items: center; gap: .3rem;
  text-decoration: none;
}
.eh-post-card__read-more:hover { color: var(--eh-navy-dark); text-decoration: underline; }

/* ── SINGLE POST ───────────────────────────────────────────────── */
.eh-post-hero {
  background: var(--eh-navy-dark);
  padding-block: clamp(3rem, 5vw, 4rem);
}
.eh-post-hero__title { font-size: clamp(1.6rem, 3vw, 2.5rem); color: var(--eh-white); margin-top: .75rem; }
.eh-post-meta { display: flex; flex-wrap: wrap; gap: .5rem 1rem; align-items: center; margin-top: 1rem; }
.eh-post-meta-top { margin-bottom: .5rem; }
.eh-post-meta__item { font-size: .8125rem; color: rgba(255,255,255,.55); display: flex; align-items: center; gap: .35rem; }
.eh-post-meta__divider { color: rgba(255,255,255,.3); font-size: .75rem; }

.eh-post-featured-image { padding-top: 2.5rem; }
.eh-post-featured-image__img { border-radius: var(--eh-radius-xl); width: 100%; max-height: 480px; object-fit: cover; }

.eh-post-content { padding-block: 3rem 2rem; }
.eh-post-content__body {
  max-width: 720px; margin-inline: auto;
  font-size: 1.0625rem; line-height: 1.75;
}
.eh-post-content__body h2 { margin-top: 2.5rem; margin-bottom: 1rem; }
.eh-post-content__body h3 { margin-top: 2rem; margin-bottom: .75rem; }
.eh-post-content__body p { margin-bottom: 1.25rem; }
.eh-post-content__body a { color: var(--eh-navy); text-decoration: underline; }
.eh-post-content__body ul,
.eh-post-content__body ol { list-style: disc; padding-left: 1.5rem; margin-bottom: 1.25rem; }
.eh-post-content__body li { margin-bottom: .4rem; }
.eh-post-content__body blockquote {
  border-left: 3px solid var(--eh-gold);
  margin: 1.75rem 0; padding: 1rem 1.5rem;
  background: rgba(213,178,107,.08); border-radius: 0 var(--eh-radius) var(--eh-radius) 0;
  font-style: italic;
}
.eh-post-tags { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; max-width: 720px; margin-inline: auto; margin-top: 2rem; padding-top: 1.5rem; border-top: 1px solid var(--eh-border); }
.eh-post-tag {
  font-size: .75rem; font-weight: 600; padding: .3rem .75rem;
  border-radius: 20px; background: var(--eh-beige); color: var(--eh-navy);
  text-decoration: none;
}
.eh-post-tag:hover { background: var(--eh-gold); color: var(--eh-navy-dark); }

.eh-post-nav { padding-block: 1.5rem 3rem; }

/* ── KEY FACTS BLOCK ───────────────────────────────────────────── */
/*
 * GEO/AIO-optimised fact box. Designed to sit at the top of blog
 * posts and provide a scannable summary that AI overviews can parse.
 */
.eh-key-facts {
  background: var(--eh-white);
  border: 1px solid var(--eh-border);
  border-left: 4px solid var(--eh-gold);
  border-radius: var(--eh-radius-xl);
  padding: 1.5rem 1.75rem;
  margin-bottom: 2.5rem;
  max-width: 720px;
  margin-inline: auto;
}

/* Header row — icon + title */
.eh-key-facts__header {
  display: flex;
  align-items: center;
  gap: .5rem;
  margin-bottom: 1.125rem;
  color: var(--eh-gold-label);
}
.eh-key-facts__header .eh-icon { flex-shrink: 0; }
.eh-key-facts__title {
  font-family: var(--eh-font-sans);
  font-size: .6875rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .08em;
}

/* Definition list */
.eh-key-facts__list {
  margin: 0;
  display: grid;
  grid-template-columns: 1fr;
  gap: 0;
}
.eh-key-facts__row {
  display: grid;
  grid-template-columns: minmax(120px, 38%) 1fr;
  gap: .5rem 1.25rem;
  align-items: baseline;
  padding-block: .625rem;
  border-bottom: 1px solid var(--eh-border);
}
.eh-key-facts__row:last-child { border-bottom: none; }

.eh-key-facts__label {
  font-size: .8125rem;
  font-weight: 600;
  color: var(--eh-muted);
  text-transform: uppercase;
  letter-spacing: .04em;
  line-height: 1.5;
}
.eh-key-facts__value {
  font-size: .9375rem;
  font-weight: 500;
  color: var(--eh-navy-dark);
  line-height: 1.55;
  margin: 0;
}

/* ── Editor-only styles (canvas inputs) ── */
.eh-key-facts__input {
  width: 100%;
  border: none;
  background: transparent;
  font-family: var(--eh-font-sans);
  padding: 0;
  outline: none;
}
.eh-key-facts__input:focus { outline: 2px solid var(--eh-gold); outline-offset: 2px; border-radius: 2px; }
.eh-key-facts__input--label {
  font-size: .8125rem; font-weight: 600;
  color: var(--eh-muted);
  text-transform: uppercase; letter-spacing: .04em;
}
.eh-key-facts__input--value {
  font-size: .9375rem; font-weight: 500;
  color: var(--eh-navy-dark);
}
.eh-key-facts__remove {
  grid-column: 3;
  color: var(--eh-muted) !important;
  opacity: .5;
}
.eh-key-facts__remove:hover { opacity: 1; }

/* ── Responsive ── */
@media (max-width: 480px) {
  .eh-key-facts__row {
    grid-template-columns: 1fr;
    gap: .2rem;
  }
}

/* ── PAGE HERO (simple title) ──────────────────────────────────── */
.eh-page-hero {
  background: var(--eh-navy-dark);
  padding-block: clamp(3rem, 5vw, 4.5rem);
}
.eh-page-hero__title { color: var(--eh-white); }
.eh-page-hero__subtitle { font-size: 1.0625rem; color: rgba(255,255,255,.65); margin-top: .875rem; max-width: 560px; }

/* ── 404 ────────────────────────────────────────────────────────── */
.eh-404-cta { padding-block: 3rem 5rem; text-align: center; }

/* ── PAGINATION ────────────────────────────────────────────────── */
.eh-pagination { display: flex; justify-content: center; }
.eh-pagination .nav-links { display: flex; gap: .5rem; flex-wrap: wrap; justify-content: center; }
.eh-pagination a,
.eh-pagination span {
  min-width: 2.5rem; height: 2.5rem;
  display: inline-flex; align-items: center; justify-content: center;
  border-radius: var(--eh-radius); font-size: .875rem; font-weight: 500;
  padding-inline: .75rem; text-decoration: none;
}
.eh-pagination a { color: var(--eh-navy); border: 1px solid var(--eh-border); }
.eh-pagination a:hover { background: var(--eh-beige); border-color: var(--eh-navy); }
.eh-pagination .current { background: var(--eh-gold); color: var(--eh-navy-dark); font-weight: 700; border: 1px solid var(--eh-gold); }

/* ── FOOTER ────────────────────────────────────────────────────── */
.site-footer { background: var(--eh-navy-dark); color: rgba(255,255,255,.55); }
.footer-inner { max-width: 1280px; margin-inline: auto; padding-inline: clamp(1rem,4vw,1.5rem); padding-top: 3.5rem; padding-bottom: 2rem; }
.footer-top {
  display: grid;
  grid-template-columns: 2fr 1fr 1fr 1fr;
  gap: 2.5rem;
  padding-bottom: 2.5rem;
  border-bottom: 1px solid rgba(255,255,255,.08);
  margin-bottom: 1.75rem;
}
@media (max-width: 900px) {
  .footer-top { grid-template-columns: 1fr 1fr; }
  .footer-brand { grid-column: 1 / -1; }
}
@media (max-width: 540px) {
  .footer-top { grid-template-columns: 1fr; }
}
.footer-logo {
  display: flex; align-items: center; gap: .625rem;
  margin-bottom: .875rem; text-decoration: none;
}
.footer-logo__text {
  font-family: var(--eh-font-serif); font-size: 1.2rem;
  font-weight: 600; color: var(--eh-white); letter-spacing: -.02em;
}
.footer-desc { font-size: .8125rem; color: #ffffff; line-height: 1.65; margin-bottom: .75rem; }
.footer-disclaimer { font-size: .72rem; color: #ffffff; line-height: 1.55; }
.footer-col-heading {
  font-family: var(--eh-font-sans);
  font-size: .72rem; font-weight: 700; text-transform: uppercase;
  letter-spacing: .09em; color: rgba(255,255,255,.35);
  margin-bottom: .875rem;
}
.footer-menu li + li { margin-top: .5rem; }
.footer-menu a { font-size: .8375rem; color: rgba(255,255,255,.5); text-decoration: none; transition: color .15s; }
.footer-menu a:hover { color: var(--eh-white); }
.footer-bottom { display: flex; justify-content: space-between; align-items: center; gap: 1rem; flex-wrap: wrap; }
.footer-copy { font-size: .75rem; color: #ffffff; }
.footer-made { font-size: .75rem; color: #ffffff; }

/* ── PAGE PROSE CONTENT ─────────────────────────────────────────── */
/* Used in page.php for About, FAQ, and other text-content pages.   */
.eh-prose {
  max-width: 760px;
  margin-inline: auto;
  padding-inline: clamp(1rem, 4vw, 1.5rem);
  padding-block: 3rem 5rem;
}
.eh-prose h1 {
  font-family: var(--eh-font-serif);
  color: var(--eh-navy-dark);
  font-size: clamp(1.75rem, 4vw, 2.5rem);
  line-height: 1.15;
  margin-bottom: 1rem;
}
.eh-prose h2 {
  font-family: var(--eh-font-serif);
  color: var(--eh-navy-dark);
  font-size: clamp(1.35rem, 2.5vw, 1.75rem);
  line-height: 1.2;
  margin-top: 2.5rem;
  margin-bottom: .875rem;
}
.eh-prose h3 {
  font-family: var(--eh-font-serif);
  color: var(--eh-navy);
  font-size: clamp(1.1rem, 2vw, 1.3rem);
  line-height: 1.3;
  margin-top: 2rem;
  margin-bottom: .625rem;
}
.eh-prose h4 {
  font-weight: 700;
  color: var(--eh-navy);
  margin-top: 1.5rem;
  margin-bottom: .5rem;
}
.eh-prose p {
  font-size: 1.0625rem;
  line-height: 1.75;
  color: var(--eh-navy);
  margin-bottom: 1.25rem;
}
.eh-prose ul,
.eh-prose ol { padding-left: 1.5rem; margin-bottom: 1.25rem; }
.eh-prose ul { list-style: disc; }
.eh-prose ol { list-style: decimal; }
.eh-prose li { font-size: 1.0625rem; line-height: 1.7; margin-bottom: .4rem; color: var(--eh-navy); }
.eh-prose a { color: var(--eh-navy); text-decoration: underline; text-underline-offset: 2px; }
.eh-prose a:hover { color: var(--eh-gold); }
.eh-prose strong { font-weight: 700; color: var(--eh-navy-dark); }
.eh-prose em { font-style: italic; }
.eh-prose hr { border: none; border-top: 1px solid var(--eh-border); margin-block: 2.5rem; }
.eh-prose img { max-width: 100%; height: auto; border-radius: var(--eh-radius); display: block; }
.eh-prose figure { margin-block: 1.5rem; }
.eh-prose figcaption { font-size: .875rem; color: var(--eh-muted); text-align: center; margin-top: .5rem; }
.eh-prose blockquote {
  border-left: 3px solid var(--eh-gold);
  margin: 1.75rem 0;
  padding: 1rem 1.5rem;
  background: var(--eh-cream);
  border-radius: 0 var(--eh-radius) var(--eh-radius) 0;
  font-style: italic;
  color: var(--eh-navy);
}
.eh-prose blockquote p { margin-bottom: 0; }
.eh-prose table { width: 100%; border-collapse: collapse; font-size: 1rem; margin-bottom: 1.5rem; }
.eh-prose th { text-align: left; font-weight: 700; color: var(--eh-navy-dark); padding: .625rem 1rem; border-bottom: 2px solid var(--eh-border); }
.eh-prose td { padding: .625rem 1rem; border-bottom: 1px solid var(--eh-border); color: var(--eh-navy); }

/* ── GUTENBERG CONTENT ─────────────────────────────────────────── */
.eh-page-content .wp-block-group,
.site-main--page .wp-block-group { gap: 0; }

/* Alignment within prose pages only — .eh-prose has padding-inline so alignfull
   blocks inside it need a negative margin to break out. Landing pages (vendor,
   homepage, etc.) render their sections without .eh-prose so this never applies. */
.eh-prose .alignfull {
  margin-inline: calc(-1 * clamp(1rem, 4vw, 1.5rem));
}
/* alignwide: centred with a max-width matching theme.json wideSize (1280px).
   min(100%,…) ensures it never overflows inside padded section containers. */
.alignwide {
  max-width: min(100%, 1280px);
  margin-inline: auto;
  width: 100%;
}

/* Prevent any overflow-x from alignfull blocks or block-level negative margins */
body { overflow-x: clip; }

/* ══════════════════════════════════════════════════════════════════
   RESPONSIVE — MOBILE FIRST
   ──────────────────────────────────────────────────────────────────
   Gutenberg constrained layout handles max-width centering but adds
   ZERO horizontal padding. These rules supply the missing padding-inline
   so content never runs edge-to-edge on mobile.
═══════════════════════════════════════════════════════════════════ */

/* ── 1. Section horizontal padding ─────────────────────────────── */
/* Applied to every full-width section wrapper.
   clamp(1rem → 1.5rem) mirrors the mockup's px-6 (1.5rem) gutter. */
.eh-hero,
.eh-stats-band,
.eh-how-it-works,
.eh-features,
.eh-fast-track,
.eh-vendor-teaser,
.eh-vendor-types,
.eh-testimonials,
.eh-final-cta,
.eh-vendor-hero,
.eh-blog-hero,
.eh-page-hero {
  padding-inline: clamp(1rem, 4vw, 1.5rem);
}

/* ── 2. Hero — mobile stacking ──────────────────────────────────── */
@media (max-width: 767px) {
  .eh-hero .wp-block-columns { gap: 2rem !important; }
  .eh-hero__heading { font-size: clamp(1.8rem, 6vw, 2.4rem); }
  /* Dashboard preview: shrink on small screens */
  .eh-dashboard-preview { font-size: .8rem; }
}

/* ── 3. Stats Band — mobile ─────────────────────────────────────── */
@media (max-width: 767px) {
  .eh-stats-band .wp-block-columns { gap: 2rem !important; }
  .eh-stat-grid { grid-template-columns: 1fr 1fr; gap: .75rem; }
  .eh-stat-number { font-size: 2rem; }
}

/* ── 4. How It Works step cards — 2-col tablet, 1-col mobile ───── */
/* Gutenberg stacks wp:columns at ≤599px automatically.
   At 600–900px we want 2-col instead of 4-col. */
@media (max-width: 900px) and (min-width: 600px) {
  .eh-how-it-works .wp-block-columns { flex-wrap: wrap; }
  .eh-how-it-works .wp-block-column  { flex-basis: calc(50% - .625rem) !important; }
}
@media (max-width: 599px) {
  .eh-how-it-works .wp-block-columns { gap: 1rem !important; }
  .eh-step-card { padding: 1.25rem; }
}

/* ── 5. Features Grid — 2-col tablet, 1-col mobile ─────────────── */
@media (max-width: 900px) and (min-width: 600px) {
  .eh-features .wp-block-columns { flex-wrap: wrap; }
  .eh-features .wp-block-column  { flex-basis: calc(50% - .75rem) !important; }
}
@media (max-width: 599px) {
  .eh-features .wp-block-columns { gap: .875rem !important; }
}

/* ── 6. Vendor Hero — mobile ────────────────────────────────────── */
@media (max-width: 767px) {
  .eh-vendor-hero h1 { font-size: clamp(1.75rem, 7vw, 2.5rem) !important; }
  .eh-vendor-hero .wp-block-columns { gap: 2rem !important; }
  .eh-vendor-form-card { padding: 1.25rem; }
}

/* ── 7. Vendor Teaser — stack on mobile ─────────────────────────── */
@media (max-width: 767px) {
  .eh-vendor-teaser .wp-block-columns { gap: 2rem !important; }
  .eh-vendor-pills { grid-template-columns: 1fr 1fr; }
}

/* ── 8. Vendor Types Grid — responsive ──────────────────────────── */
@media (max-width: 959px) {
  .eh-vendor-types-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 539px) {
  .eh-vendor-types-grid { grid-template-columns: 1fr; }
}

/* ── 8. Testimonials — stack on mobile ──────────────────────────── */
@media (max-width: 767px) {
  .eh-testimonials .wp-block-columns { gap: 1rem !important; }
}

/* ── 9. Fast Track / Final CTA — mobile padding ─────────────────── */
@media (max-width: 767px) {
  .eh-fast-track__heading { font-size: clamp(1.6rem, 5vw, 2rem) !important; }
  .eh-final-cta .wp-block-heading { font-size: clamp(1.6rem, 5vw, 2rem) !important; }
}

/* ── 10. Nav — mobile refinements ──────────────────────────────── */
@media (max-width: 767px) {
  .nav-inner { height: 60px; padding-inline: 1rem; gap: .75rem; }
}
@media (max-width: 400px) {
  /* Hide Login link on very small screens to save space */
  .nav-login { display: none; }
}

/* ── 11. Footer — tighten on small mobile ──────────────────────── */
@media (max-width: 400px) {
  .footer-bottom { flex-direction: column; align-items: flex-start; gap: .5rem; }
}

/* ── UTILITY ───────────────────────────────────────────────────── */
.text-center { text-align: center; }
.text-muted   { color: var(--eh-muted); }
.visually-hidden {
  position: absolute; width: 1px; height: 1px;
  padding: 0; margin: -1px; overflow: hidden;
  clip: rect(0,0,0,0); white-space: nowrap; border: 0;
}
