/* ==========================================================================
   EZDC — compiled single stylesheet (Tailwind build output artifact).
   Design tokens are exposed as CSS custom properties (see tailwind.config.js /
   assets/css/src/input.css for the source pipeline). Sections are added
   template-by-template. Order: tokens -> base -> layout -> buttons ->
   header -> footer -> mobile CTA bar.
   ========================================================================== */

/* ---- Design tokens (README.md) ---------------------------------------- */
:root {
  /* Navy scale */
  --navy-950: #04091A;
  --navy-900: #071229;
  --navy-800: #0B1B33;

  /* Brand blue */
  --blue: #2A63C9;
  --blue-light: #6FA8F5;
  --sky-100: #EAF1FB;

  /* CTA green (conversion actions ONLY) */
  --green: #1E9E5A;
  --green-hover: #188A4D;
  --green-light-bg: #EAF6EF;
  --green-light-text: #1B5E3A;
  --green-on-navy: #6FD09A;

  /* Neutrals / surfaces */
  --cloud: #F4F7FB;
  --cloud-2: #F4F6FA;
  --border: #E7ECF3;
  --border-strong: #D8DFEA;
  --slate-500: #44536B;
  --slate-400: #7A8AA3;

  /* On-navy muted text */
  --navy-muted: #9FB4D4;
  --navy-muted-2: #8FA3C4;
  --navy-muted-3: #7A8FB5;
  --navy-text: #C9D6EA;

  /* Stars */
  --star: #F5A623;

  /* Radii */
  --r-btn: 9px;
  --r-card: 13px;
  --r-panel: 18px;
  --r-pill: 100px;

  /* Shadows */
  --shadow-card: 0 2px 10px rgba(11, 27, 51, 0.05);
  --shadow-hover: 0 6px 20px rgba(42, 99, 201, 0.1);
  --shadow-cta: 0 4px 20px rgba(30, 158, 90, 0.4);

  /* Layout */
  --content-max: 1280px;
  --section-pad-x: 48px;

  --font: "Manrope", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
  --mono: ui-monospace, Menlo, Consolas, monospace;
}

/* ---- Self-hosted Manrope (font-display: swap, size-adjust for CLS) ------ */
@font-face {
  font-family: "Manrope";
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("../fonts/manrope-500.woff2") format("woff2");
}
@font-face {
  font-family: "Manrope";
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("../fonts/manrope-600.woff2") format("woff2");
}
@font-face {
  font-family: "Manrope";
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("../fonts/manrope-700.woff2") format("woff2");
}
@font-face {
  font-family: "Manrope";
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url("../fonts/manrope-800.woff2") format("woff2");
}

/* ---- Base / reset ------------------------------------------------------ */
*,
*::before,
*::after { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; }

body {
  margin: 0;
  font-family: var(--font);
  font-weight: 500;
  color: var(--navy-800);
  background: #fff;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

img { max-width: 100%; height: auto; display: block; }
a { color: inherit; }

h1, h2, h3, h4 { margin: 0; }

.ezdc-skip-link {
  position: absolute;
  left: -999px;
  top: 0;
  background: #fff;
  color: var(--navy-800);
  padding: 10px 16px;
  z-index: 1000;
  border-radius: var(--r-btn);
}
.ezdc-skip-link:focus { left: 8px; top: 8px; }

/* ---- Layout helpers ---------------------------------------------------- */
.ezdc-container {
  max-width: var(--content-max);
  margin-inline: auto;
  padding-inline: var(--section-pad-x);
}

/* ---- Buttons ----------------------------------------------------------- */
/* Green is reserved for conversion CTAs only. */
.ezdc-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  font: 700 13px/1 var(--font);
  text-decoration: none;
  border-radius: var(--r-btn);
  padding: 11px 18px;
  white-space: nowrap;
  cursor: pointer;
  border: 1px solid transparent;
  transition: background-color 0.15s ease, box-shadow 0.15s ease, color 0.15s ease, border-color 0.15s ease;
}
.ezdc-btn--cta {
  background: var(--green);
  color: #fff;
}
.ezdc-btn--cta:hover { background: var(--green-hover); box-shadow: var(--shadow-cta); }
.ezdc-btn--outline-navy {
  background: transparent;
  color: #fff;
  border-color: rgba(255, 255, 255, 0.3);
}
.ezdc-btn--outline-navy:hover { border-color: #fff; }
.ezdc-btn--navy {
  background: var(--navy-900);
  color: #fff;
}
.ezdc-btn--navy:hover { background: var(--navy-800); }

/* ==========================================================================
   HEADER — topbar + primary nav (SiteHeader.dc.html)
   ========================================================================== */
.ezdc-header { font-family: var(--font); position: sticky; top: 0; z-index: 100; }

/* Topbar trust strip */
.ezdc-topbar {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 18px;
  padding: 8px 16px;
  background: var(--navy-950);
  color: var(--navy-muted-2);
  font: 600 11px/1.4 var(--font);
}
.ezdc-topbar__star { color: var(--star); }
.ezdc-topbar__sep { opacity: 0.3; }
.ezdc-topbar__emergency { color: var(--green-on-navy); text-decoration: none; }
.ezdc-topbar__emergency:hover { color: #fff; }

/* Primary nav bar */
.ezdc-nav {
  display: flex;
  align-items: center;
  gap: 24px;
  padding: 16px var(--section-pad-x);
  background: var(--navy-900);
}
.ezdc-logo {
  font: 800 17px/1 var(--font);
  color: #fff;
  letter-spacing: -0.4px;
  text-decoration: none;
  flex: none;
}
.ezdc-logo span { color: var(--blue-light); }

.ezdc-nav__menu {
  display: flex;
  gap: 20px;
  font: 600 13px/1 var(--font);
  list-style: none;
  margin: 0;
  padding: 0;
}
.ezdc-nav__menu a { color: var(--navy-text); text-decoration: none; transition: color 0.15s ease; }
.ezdc-nav__menu a:hover,
.ezdc-nav__menu .current-menu-item > a { color: #fff; }
.ezdc-nav__menu .ezdc-nav__coupons a { color: var(--green-on-navy); }
.ezdc-nav__menu .ezdc-nav__coupons a:hover { color: #fff; }

.ezdc-nav__actions {
  margin-left: auto;
  display: flex;
  gap: 10px;
  align-items: center;
}
.ezdc-nav__phone {
  font: 700 13.5px/1 var(--font);
  color: #fff;
  text-decoration: none;
  white-space: nowrap;
}
.ezdc-nav__phone:hover { color: var(--navy-text); }

/* Hamburger (mobile) */
.ezdc-nav__toggle {
  display: none;
  margin-left: auto;
  background: transparent;
  border: 0;
  color: #fff;
  padding: 8px;
  cursor: pointer;
}
.ezdc-nav__toggle svg { display: block; }

/* Mobile menu overlay */
.ezdc-mobile-menu {
  display: none;
  position: fixed;
  inset: 0;
  z-index: 200;
  background: var(--navy-900);
  padding: 20px var(--section-pad-x);
  flex-direction: column;
  gap: 4px;
  overflow-y: auto;
}
.ezdc-mobile-menu[data-open="true"] { display: flex; }
.ezdc-mobile-menu__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 16px;
}
.ezdc-mobile-menu__close {
  background: transparent;
  border: 0;
  color: #fff;
  font-size: 28px;
  line-height: 1;
  cursor: pointer;
  padding: 4px 8px;
}
.ezdc-mobile-menu ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; }
.ezdc-mobile-menu a {
  display: block;
  color: var(--navy-text);
  text-decoration: none;
  font: 600 16px/1 var(--font);
  padding: 14px 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}
.ezdc-mobile-menu__actions { margin-top: 20px; display: flex; flex-direction: column; gap: 10px; }
.ezdc-mobile-menu__actions .ezdc-btn { width: 100%; padding: 14px; font-size: 15px; }

@media (max-width: 1023px) {
  .ezdc-nav__menu,
  .ezdc-nav__actions { display: none; }
  .ezdc-nav__toggle { display: inline-flex; }
}

/* ==========================================================================
   FOOTER — mega footer (SiteFooter.dc.html)
   ========================================================================== */
.ezdc-footer {
  background: var(--navy-950);
  color: var(--navy-muted-2);
  font-family: var(--font);
  padding: 56px var(--section-pad-x) 0;
}
.ezdc-footer__grid {
  display: grid;
  grid-template-columns: 1.3fr 1fr 1fr 1fr 1fr;
  gap: 36px;
  padding-bottom: 44px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}
.ezdc-footer__brand { display: flex; flex-direction: column; gap: 14px; }
.ezdc-footer__logo { font: 800 18px/1 var(--font); color: #fff; }
.ezdc-footer__logo span { color: var(--blue-light); }
.ezdc-footer__addr { font: 500 12.5px/1.7 var(--font); }
.ezdc-footer__phone { font: 700 15px/1 var(--font); color: #fff; text-decoration: none; }
.ezdc-footer__hours { font: 500 12px/1.6 var(--font); }
.ezdc-footer__badges { display: flex; gap: 8px; flex-wrap: wrap; }
.ezdc-footer__badge {
  padding: 6px 10px;
  border: 1px solid rgba(255, 255, 255, 0.15);
  border-radius: var(--r-pill);
  font: 600 10.5px/1 var(--font);
  color: var(--navy-text);
}
.ezdc-footer__social { display: flex; gap: 12px; font: 600 12px/1 var(--font); }
.ezdc-footer__social a { color: var(--blue-light); text-decoration: none; }
.ezdc-footer__social a:hover { color: #fff; }

.ezdc-footer__col { display: flex; flex-direction: column; gap: 9px; }
.ezdc-footer__heading {
  font: 700 12px/1 var(--font);
  color: #fff;
  letter-spacing: 1px;
  text-transform: uppercase;
  margin-bottom: 2px;
}
.ezdc-footer__col a {
  font: 500 12.5px/1.4 var(--font);
  color: var(--navy-muted-2);
  text-decoration: none;
  transition: color 0.15s ease;
}
.ezdc-footer__col a:hover { color: #fff; }

.ezdc-footer__legal {
  display: flex;
  align-items: center;
  gap: 20px;
  padding: 18px 0;
  font: 500 11.5px/1.4 var(--font);
  flex-wrap: wrap;
}
.ezdc-footer__legal-links { margin-left: auto; display: flex; gap: 16px; flex-wrap: wrap; }
.ezdc-footer__legal-links a { color: var(--navy-muted-2); text-decoration: none; }
.ezdc-footer__legal-links a:hover { color: #fff; }

@media (max-width: 1023px) {
  .ezdc-footer__grid { grid-template-columns: 1fr 1fr; gap: 28px; }
}
@media (max-width: 560px) {
  .ezdc-footer__grid { grid-template-columns: 1fr; }
  .ezdc-footer { padding-inline: 24px; }
}

/* ==========================================================================
   STICKY MOBILE CTA BAR — Call / Estimate / Book (README + mobile-home)
   ========================================================================== */
.ezdc-sticky-cta {
  display: none;
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 150;
  background: #fff;
  border-top: 1px solid var(--border-strong);
  box-shadow: 0 -4px 20px rgba(11, 27, 51, 0.08);
  padding: 8px;
  gap: 8px;
  grid-template-columns: 1fr 1fr 1fr;
}
.ezdc-sticky-cta a {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  border-radius: var(--r-btn);
  font: 700 13px/1 var(--font);
  text-decoration: none;
}
.ezdc-sticky-cta__call { background: var(--navy-900); color: #fff; }
.ezdc-sticky-cta__estimate { background: var(--green); color: #fff; }
.ezdc-sticky-cta__book {
  background: #fff;
  color: var(--navy-800);
  border: 1px solid var(--border-strong);
}

@media (max-width: 1023px) {
  .ezdc-sticky-cta { display: grid; }
  /* Reserve space so the bar never covers footer content (CLS-safe). */
  body { padding-bottom: 60px; }
}

/* Section-level padding helper reused across templates */
.ezdc-section { padding: 60px var(--section-pad-x); }
@media (max-width: 640px) { .ezdc-section { padding: 40px 24px; } }

/* Shared section header (title + "view all" link) */
.ezdc-section-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 20px;
  flex-wrap: wrap;
}
.ezdc-section-head h2 { font: 800 32px/1.1 var(--font); letter-spacing: -1px; }
.ezdc-link {
  font: 700 13.5px/1 var(--font);
  color: var(--blue);
  text-decoration: none;
  white-space: nowrap;
}
.ezdc-link:hover { text-decoration: underline; }

/* Striped image placeholder (awaiting client photos) */
.ezdc-ph {
  background: repeating-linear-gradient(45deg, #E3EAF2, #E3EAF2 12px, #DBE4EF 12px, #DBE4EF 24px);
  display: flex;
  align-items: center;
  justify-content: center;
  font: 500 11px/1.4 var(--mono);
  color: var(--slate-400);
  text-align: center;
  padding: 12px;
}
.ezdc-ph--navy {
  background: repeating-linear-gradient(45deg, #122342, #122342 12px, #0e1c37 12px, #0e1c37 24px);
  color: var(--navy-muted-3);
  border: 1px solid rgba(255, 255, 255, 0.1);
}

/* ==========================================================================
   HOME — front-page.php (home.dc.html)
   ========================================================================== */

/* Hero (centered variant) */
.ezdc-hero {
  background: var(--navy-900);
  padding: 68px var(--section-pad-x) 0;
  display: flex;
  flex-direction: column;
  gap: 26px;
  align-items: center;
  text-align: center;
}
.ezdc-hero__promo {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 8px 16px;
  background: rgba(30, 158, 90, 0.15);
  border: 1px solid rgba(111, 208, 154, 0.4);
  border-radius: var(--r-pill);
  font: 600 12px/1.3 var(--font);
  color: var(--green-on-navy);
  text-decoration: none;
}
.ezdc-hero__promo:hover { background: rgba(30, 158, 90, 0.22); }
.ezdc-hero__badges { display: flex; gap: 8px; flex-wrap: wrap; justify-content: center; }
.ezdc-badge-navy {
  padding: 7px 13px;
  border: 1px solid rgba(255, 255, 255, 0.18);
  border-radius: var(--r-pill);
  font: 600 11.5px/1 var(--font);
  color: var(--navy-text);
}
.ezdc-hero__title {
  font: 800 56px/1.05 var(--font);
  letter-spacing: -2.3px;
  color: #fff;
  max-width: 840px;
}
.ezdc-hero__sub {
  font: 500 17px/1.65 var(--font);
  color: var(--navy-muted);
  max-width: 580px;
}
.ezdc-hero__actions { display: flex; gap: 12px; flex-wrap: wrap; justify-content: center; }
.ezdc-hero__assurance {
  display: flex;
  gap: 20px;
  flex-wrap: wrap;
  justify-content: center;
  font: 600 12px/1.4 var(--font);
  color: var(--navy-muted-3);
}
.ezdc-hero__media {
  width: 100%;
  max-width: 940px;
  aspect-ratio: 940 / 300;
  border-radius: 18px 18px 0 0;
  border-bottom: none;
}

/* Large buttons (hero + final CTA) */
.ezdc-btn--lg { padding: 16px 30px; font-size: 15px; border-radius: 10px; }
.ezdc-btn--ghost-navy {
  background: rgba(255, 255, 255, 0.08);
  color: #fff;
  border: 1px solid rgba(255, 255, 255, 0.2);
}
.ezdc-btn--ghost-navy:hover { background: rgba(255, 255, 255, 0.14); }
.ezdc-btn--white { background: #fff; color: var(--navy-900); }
.ezdc-btn--white:hover { background: #EAF1FB; }

/* Stats bar */
.ezdc-stats {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  border-bottom: 1px solid #EEF1F6;
}
.ezdc-stats__cell {
  padding: 26px;
  text-align: center;
  border-right: 1px solid #EEF1F6;
}
.ezdc-stats__cell:last-child { border-right: 0; }
.ezdc-stats__v { font: 800 26px/1.1 var(--font); }
.ezdc-stats__k { font: 600 12px/1.3 var(--font); color: var(--slate-400); }

/* Services grid */
.ezdc-services { padding: 64px var(--section-pad-x); display: flex; flex-direction: column; gap: 26px; }
.ezdc-service-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
.ezdc-service-card {
  padding: 20px;
  border-radius: var(--r-card);
  background: var(--cloud);
  display: flex;
  align-items: center;
  gap: 14px;
  text-decoration: none;
  color: var(--navy-800);
  transition: background-color 0.15s ease;
}
.ezdc-service-card:hover { background: var(--sky-100); }
.ezdc-service-card__glyph {
  width: 44px;
  height: 44px;
  flex: none;
  border-radius: 10px;
  background: var(--navy-800);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--blue-light);
  font: 700 17px/1 var(--font);
}
.ezdc-service-card__name { font: 700 15px/1.2 var(--font); }
.ezdc-service-card__price { font: 600 12px/1.3 var(--font); color: var(--blue); }

/* Before/After */
.ezdc-ba {
  margin: 0 var(--section-pad-x) 64px;
  padding: 40px 44px;
  background: var(--navy-900);
  border-radius: var(--r-panel);
  display: grid;
  grid-template-columns: 1fr 1.1fr;
  gap: 40px;
  align-items: center;
}
.ezdc-ba__copy { display: flex; flex-direction: column; gap: 14px; }
.ezdc-ba__copy h2 { font: 800 28px/1.15 var(--font); letter-spacing: -0.8px; color: #fff; }
.ezdc-ba__copy p { font: 500 14px/1.6 var(--font); color: var(--navy-muted); }
.ezdc-ba__actions { display: flex; gap: 10px; flex-wrap: wrap; }
.ezdc-ba__media { display: flex; flex-direction: column; gap: 10px; }
.ezdc-ba__frame { position: relative; height: 230px; border-radius: 12px; overflow: hidden; }
.ezdc-ba__before,
.ezdc-ba__after {
  position: absolute;
  top: 0;
  bottom: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  font: 600 11px/1.4 var(--mono);
  overflow: hidden;
  white-space: nowrap;
}
.ezdc-ba__before {
  inset: 0;
  background: repeating-linear-gradient(45deg, #3A4A63, #3A4A63 12px, #33425A 12px, #33425A 24px);
  color: var(--navy-text);
}
/* "After" is pinned left; its width is driven by the range input (JS). The
   green right border is the visible divider. */
.ezdc-ba__after {
  left: 0;
  width: 50%;
  background: repeating-linear-gradient(45deg, #E9EFF7, #E9EFF7 12px, #E1E9F3 12px, #E1E9F3 24px);
  color: var(--slate-500);
  border-right: 3px solid var(--green);
}
.ezdc-ba__range { width: 100%; accent-color: var(--green); }

/* Process */
.ezdc-process { padding: 0 var(--section-pad-x) 64px; display: flex; flex-direction: column; gap: 26px; }
.ezdc-process h2 { font: 800 30px/1.1 var(--font); letter-spacing: -0.9px; text-align: center; }
.ezdc-process__grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; }
.ezdc-process__card {
  padding: 24px;
  border: 1px solid var(--border);
  border-radius: 14px;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.ezdc-process__n { font: 800 13px/1 var(--mono); color: var(--blue); }
.ezdc-process__t { font: 700 16px/1.2 var(--font); }
.ezdc-process__d { font: 500 13px/1.55 var(--font); color: var(--slate-400); }

/* Why us */
.ezdc-why {
  background: var(--cloud);
  padding: 60px var(--section-pad-x);
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 44px;
  align-items: center;
}
.ezdc-why__media { height: 340px; border-radius: var(--r-panel); }
.ezdc-why__list { display: flex; flex-direction: column; gap: 18px; }
.ezdc-why__list h2 { font: 800 30px/1.12 var(--font); letter-spacing: -0.9px; }
.ezdc-why__item { display: flex; gap: 14px; align-items: flex-start; }
.ezdc-why__check {
  width: 30px;
  height: 30px;
  flex: none;
  border-radius: 50%;
  background: var(--green-light-bg);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--green-light-text);
  font: 800 14px/1 var(--font);
}
.ezdc-why__t { font: 700 15px/1.2 var(--font); }
.ezdc-why__d { font: 500 13px/1.55 var(--font); color: var(--slate-400); }

/* Reviews */
.ezdc-reviews { padding: 64px var(--section-pad-x); display: flex; flex-direction: column; gap: 26px; }
.ezdc-reviews__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.ezdc-review-card {
  padding: 22px;
  border: 1px solid var(--border);
  border-radius: 14px;
  display: flex;
  flex-direction: column;
  gap: 10px;
  box-shadow: var(--shadow-card);
}
.ezdc-stars { color: var(--star); font-size: 14px; letter-spacing: 2px; }
.ezdc-review-card__text { font: 500 13px/1.6 var(--font); color: var(--slate-500); }
.ezdc-review-card__who { font: 700 12.5px/1.3 var(--font); }
.ezdc-review-card__who span { font-weight: 500; color: var(--slate-400); }

/* Coverage */
.ezdc-coverage {
  margin: 0 var(--section-pad-x) 64px;
  border: 1px solid var(--border);
  border-radius: var(--r-panel);
  overflow: hidden;
  display: grid;
  grid-template-columns: 1fr 1fr;
}
.ezdc-coverage__copy { padding: 40px; display: flex; flex-direction: column; gap: 16px; }
.ezdc-coverage__copy h2 { font: 800 28px/1.12 var(--font); letter-spacing: -0.8px; }
.ezdc-coverage__copy p { font: 500 13.5px/1.6 var(--font); color: var(--slate-400); }
.ezdc-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.ezdc-chip {
  padding: 8px 14px;
  background: var(--cloud);
  border-radius: var(--r-pill);
  font: 600 12.5px/1 var(--font);
  color: var(--navy-800);
  text-decoration: none;
  transition: background-color 0.15s ease, color 0.15s ease;
}
.ezdc-chip:hover { background: var(--sky-100); color: var(--blue); }
.ezdc-coverage__map { min-height: 320px; }

/* FAQ */
.ezdc-faq { padding: 0 var(--section-pad-x) 64px; display: grid; grid-template-columns: 0.8fr 1.2fr; gap: 44px; }
.ezdc-faq__aside { display: flex; flex-direction: column; gap: 12px; }
.ezdc-faq__aside h2 { font: 800 30px/1.12 var(--font); letter-spacing: -0.9px; }
.ezdc-faq__aside p { font: 500 13.5px/1.6 var(--font); color: var(--slate-400); }
.ezdc-faq__list { display: flex; flex-direction: column; gap: 10px; }
.ezdc-faq__item {
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 18px 20px;
  transition: border-color 0.15s ease;
}
.ezdc-faq__item[open] { border-color: #C6D2E4; }
.ezdc-faq__item:hover { border-color: #C6D2E4; }
.ezdc-faq__q {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  cursor: pointer;
  list-style: none;
  font: 700 14.5px/1.35 var(--font);
}
.ezdc-faq__q::-webkit-details-marker { display: none; }
.ezdc-faq__icon { color: var(--blue); font-weight: 800; flex: none; }
.ezdc-faq__icon::after { content: "+"; }
.ezdc-faq__item[open] .ezdc-faq__icon::after { content: "\2212"; } /* minus */
.ezdc-faq__a { font: 500 13.5px/1.6 var(--font); color: var(--slate-500); margin-top: 10px; }

/* Blog */
.ezdc-blog { background: var(--cloud); padding: 56px var(--section-pad-x); display: flex; flex-direction: column; gap: 24px; }
.ezdc-blog__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.ezdc-post-card {
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 14px;
  overflow: hidden;
  text-decoration: none;
  color: var(--navy-800);
  display: flex;
  flex-direction: column;
  transition: box-shadow 0.15s ease;
}
.ezdc-post-card:hover { box-shadow: 0 8px 24px rgba(11, 27, 51, 0.08); }
.ezdc-post-card__media { height: 130px; }
.ezdc-post-card__body { padding: 18px; display: flex; flex-direction: column; gap: 8px; }
.ezdc-post-card__cat { font: 600 10.5px/1 var(--mono); color: var(--blue); letter-spacing: 1px; }
.ezdc-post-card__title { font: 700 15px/1.35 var(--font); }
.ezdc-post-card__meta { font: 500 12px/1.3 var(--font); color: var(--slate-400); }

/* Final CTA */
.ezdc-final-cta {
  background: var(--navy-900);
  padding: 56px var(--section-pad-x);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 18px;
  text-align: center;
}
.ezdc-final-cta h2 { font: 800 36px/1.1 var(--font); letter-spacing: -1.2px; color: #fff; max-width: 640px; }
.ezdc-final-cta p { font: 500 15px/1.6 var(--font); color: var(--navy-muted); }

/* Desktop floating "Call Now" pill (shows after 40% scroll) */
.ezdc-float-cta {
  position: fixed;
  bottom: 20px;
  right: 20px;
  z-index: 50;
  padding: 14px 22px;
  background: var(--green);
  color: #fff;
  border-radius: var(--r-pill);
  font: 700 13.5px/1 var(--font);
  text-decoration: none;
  box-shadow: 0 8px 30px rgba(30, 158, 90, 0.45);
  white-space: nowrap;
  opacity: 0;
  transform: translateY(10px);
  pointer-events: none;
  transition: opacity 0.2s ease, transform 0.2s ease;
}
.ezdc-float-cta[data-visible="true"] { opacity: 1; transform: translateY(0); pointer-events: auto; }
@media (max-width: 1023px) { .ezdc-float-cta { display: none; } } /* mobile uses the sticky bar */

/* ---- Home responsive ---- */
@media (max-width: 900px) {
  .ezdc-hero__title { font-size: 40px; letter-spacing: -1.4px; }
  .ezdc-stats { grid-template-columns: repeat(2, 1fr); }
  .ezdc-stats__cell:nth-child(2) { border-right: 0; }
  .ezdc-service-grid,
  .ezdc-process__grid,
  .ezdc-reviews__grid,
  .ezdc-blog__grid { grid-template-columns: 1fr 1fr; }
  .ezdc-ba,
  .ezdc-why,
  .ezdc-coverage,
  .ezdc-faq { grid-template-columns: 1fr; }
  .ezdc-ba, .ezdc-coverage { margin-inline: 24px; }
}
@media (max-width: 600px) {
  .ezdc-hero { padding: 44px 24px 0; }
  .ezdc-services,
  .ezdc-reviews { padding: 44px 24px; }
  .ezdc-process, .ezdc-faq { padding: 0 24px 44px; }
  .ezdc-why, .ezdc-blog, .ezdc-final-cta { padding: 44px 24px; }
  .ezdc-service-grid,
  .ezdc-process__grid,
  .ezdc-reviews__grid,
  .ezdc-blog__grid { grid-template-columns: 1fr; }
  .ezdc-hero__title { font-size: 34px; }
}

/* ==========================================================================
   SHARED — breadcrumbs, page hero (white), split hero (navy), CTA band
   ========================================================================== */
.ezdc-breadcrumbs {
  padding: 14px var(--section-pad-x);
  font: 600 12px/1.4 var(--font);
  color: var(--slate-400);
  border-bottom: 1px solid #EEF1F6;
}
.ezdc-breadcrumbs ol { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.ezdc-breadcrumbs li { display: flex; gap: 8px; align-items: center; }
.ezdc-breadcrumbs li:not(:last-child)::after { content: "\203A"; color: var(--slate-400); }
.ezdc-breadcrumbs a { color: var(--blue); text-decoration: none; }
.ezdc-breadcrumbs a:hover { text-decoration: underline; }

/* White left-aligned page hero (services hub, areas, coupons, financing, about, contact) */
.ezdc-page-hero {
  padding: 56px var(--section-pad-x) 40px;
  display: flex;
  flex-direction: column;
  gap: 16px;
  max-width: 860px;
}
.ezdc-page-hero h1 { font: 800 44px/1.08 var(--font); letter-spacing: -1.6px; }
.ezdc-page-hero p { font: 500 16px/1.65 var(--font); color: var(--slate-500); margin: 0; }
.ezdc-page-hero a.inline { color: var(--blue); text-decoration: none; font-weight: 700; }
.ezdc-hero-actions { display: flex; gap: 10px; flex-wrap: wrap; }
.ezdc-btn--ghost-light {
  background: #fff; color: var(--navy-800);
  border: 1.5px solid var(--border-strong);
}
.ezdc-btn--ghost-light:hover { border-color: var(--blue); color: var(--blue); }
.ezdc-btn--md { padding: 14px 24px; font-size: 14px; }

/* Navy split hero (single service, city, combo) */
.ezdc-split-hero {
  background: var(--navy-900);
  padding: 56px var(--section-pad-x);
  display: grid;
  grid-template-columns: 1.05fr 1fr;
  gap: 48px;
  align-items: center;
}
.ezdc-split-hero__copy { display: flex; flex-direction: column; gap: 20px; }
.ezdc-split-hero__pills { display: flex; gap: 8px; flex-wrap: wrap; }
.ezdc-pill-line {
  padding: 6px 12px; border: 1px solid rgba(255,255,255,0.18);
  border-radius: var(--r-pill); font: 600 11px/1 var(--font); color: var(--navy-text);
}
.ezdc-pill-green {
  padding: 6px 12px; border: 1px solid rgba(111,208,154,0.4);
  border-radius: var(--r-pill); font: 600 11px/1 var(--font); color: var(--green-on-navy);
}
.ezdc-split-hero h1 { font: 800 46px/1.07 var(--font); letter-spacing: -1.8px; color: #fff; }
.ezdc-split-hero p { font: 500 16px/1.65 var(--font); color: var(--navy-muted); margin: 0; }
.ezdc-split-hero p strong { color: #fff; }
.ezdc-split-hero__meta { display: flex; gap: 18px; flex-wrap: wrap; font: 600 12px/1.4 var(--font); color: var(--navy-muted-3); }
.ezdc-split-hero__media { height: 330px; border-radius: 16px; }
.ezdc-eta { display: flex; align-items: center; gap: 8px; font: 600 12px/1.4 var(--font); color: var(--green-on-navy); }
.ezdc-eta__dot { width: 6px; height: 6px; border-radius: 50%; background: var(--green-on-navy); flex: none; }

/* Split CTA band (navy, title left, buttons right) */
.ezdc-cta-band {
  background: var(--navy-900);
  padding: 48px var(--section-pad-x);
  display: flex; align-items: center; justify-content: space-between; gap: 24px; flex-wrap: wrap;
}
.ezdc-cta-band__title { font: 800 26px/1.15 var(--font); color: #fff; letter-spacing: -0.7px; }
.ezdc-cta-band__sub { font: 500 13.5px/1.5 var(--font); color: var(--navy-muted); margin-top: 4px; }
.ezdc-cta-band__actions { display: flex; gap: 10px; flex: none; flex-wrap: wrap; }

/* Cloud CTA strip (light) */
.ezdc-cta-strip {
  margin: 0 var(--section-pad-x) 64px;
  padding: 32px 36px; background: var(--cloud); border-radius: 16px;
  display: flex; align-items: center; justify-content: space-between; gap: 24px; flex-wrap: wrap;
}
.ezdc-cta-strip__title { font: 800 20px/1.2 var(--font); letter-spacing: -0.4px; }
.ezdc-cta-strip__sub { font: 500 13.5px/1.6 var(--font); color: var(--slate-400); margin-top: 4px; max-width: 620px; }

/* ==========================================================================
   SERVICES HUB (archive-service)
   ========================================================================== */
.ezdc-svc-hub { padding: 0 var(--section-pad-x) 64px; display: flex; flex-direction: column; gap: 36px; }
.ezdc-svc-group { display: flex; flex-direction: column; gap: 16px; }
.ezdc-svc-group__head { display: flex; align-items: center; gap: 12px; }
.ezdc-svc-group__head h2 { font: 800 22px/1.2 var(--font); letter-spacing: -0.5px; }
.ezdc-svc-group__rule { flex: 1; height: 1px; background: #EEF1F6; }
.ezdc-svc-cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
.ezdc-svc-card {
  padding: 22px; border: 1px solid var(--border); border-radius: 14px;
  display: flex; flex-direction: column; gap: 9px; text-decoration: none; color: var(--navy-800);
  background: #fff; transition: border-color .15s ease, box-shadow .15s ease;
}
.ezdc-svc-card:hover { border-color: var(--blue); box-shadow: var(--shadow-hover); }
.ezdc-svc-card__glyph {
  width: 40px; height: 40px; border-radius: 10px; background: var(--sky-100);
  display: flex; align-items: center; justify-content: center; color: var(--blue); font: 700 16px/1 var(--font);
}
.ezdc-svc-card__name { font: 700 16px/1.2 var(--font); }
.ezdc-svc-card__desc { font: 500 13px/1.55 var(--font); color: var(--slate-400); }
.ezdc-svc-card__foot { display: flex; justify-content: space-between; align-items: center; margin-top: auto; }
.ezdc-svc-card__more { font: 700 12.5px/1 var(--font); color: var(--blue); }
.ezdc-svc-card__price { font: 600 11px/1 var(--mono); color: var(--slate-400); }

/* ==========================================================================
   SINGLE SERVICE
   ========================================================================== */
.ezdc-included { padding: 60px var(--section-pad-x); display: grid; grid-template-columns: .9fr 1.1fr; gap: 44px; }
.ezdc-included__intro { display: flex; flex-direction: column; gap: 12px; }
.ezdc-included__intro h2 { font: 800 30px/1.12 var(--font); letter-spacing: -0.9px; }
.ezdc-included__intro p { font: 500 14px/1.6 var(--font); color: var(--slate-400); margin: 0; }
.ezdc-included__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.ezdc-check-item { display: flex; gap: 10px; align-items: flex-start; padding: 14px 16px; background: var(--cloud); border-radius: 10px; }
.ezdc-check-item span.tick { color: var(--green-light-text); font-weight: 800; flex: none; }
.ezdc-check-item span.txt { font: 600 13px/1.45 var(--font); }

.ezdc-signs { background: var(--cloud); padding: 56px var(--section-pad-x); display: flex; flex-direction: column; gap: 22px; }
.ezdc-signs h2 { font: 800 28px/1.12 var(--font); letter-spacing: -0.8px; text-align: center; }
.ezdc-signs__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
.ezdc-sign { padding: 20px; background: #fff; border: 1px solid var(--border); border-radius: 12px; display: flex; flex-direction: column; gap: 6px; }
.ezdc-sign__t { font: 700 15px/1.2 var(--font); }
.ezdc-sign__d { font: 500 13px/1.55 var(--font); color: var(--slate-400); }

.ezdc-proc5 { padding: 60px var(--section-pad-x); display: flex; flex-direction: column; gap: 24px; }
.ezdc-proc5 h2 { font: 800 28px/1.12 var(--font); letter-spacing: -0.8px; }
.ezdc-proc5__grid { display: grid; grid-template-columns: repeat(5, 1fr); gap: 12px; }
.ezdc-proc5__card { display: flex; flex-direction: column; gap: 8px; padding: 18px; border: 1px solid var(--border); border-radius: 12px; }
.ezdc-proc5__n { font: 800 12px/1 var(--mono); color: var(--blue); }
.ezdc-proc5__img { height: 80px; border-radius: 8px; }
.ezdc-proc5__t { font: 700 13.5px/1.2 var(--font); }
.ezdc-proc5__d { font: 500 11.5px/1.5 var(--font); color: var(--slate-400); }

/* Pricing tiers (navy panel) */
.ezdc-pricing { margin: 0 var(--section-pad-x) 60px; padding: 36px 40px; background: var(--navy-900); border-radius: var(--r-panel); display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.ezdc-tier { padding: 24px; border-radius: 14px; display: flex; flex-direction: column; gap: 10px; background: rgba(255,255,255,0.06); border: 1px solid rgba(255,255,255,0.12); }
.ezdc-tier--featured { background: var(--green); border-color: var(--green); }
.ezdc-tier__label { font: 700 13px/1.2 var(--font); color: var(--navy-muted-2); }
.ezdc-tier--featured .ezdc-tier__label { color: rgba(255,255,255,0.8); }
.ezdc-tier__price { font: 800 30px/1 var(--font); color: #fff; }
.ezdc-tier__desc { font: 500 12.5px/1.6 var(--font); color: var(--navy-muted); }
.ezdc-tier--featured .ezdc-tier__desc { color: rgba(255,255,255,0.85); }
.ezdc-tier__cta { margin-top: auto; padding: 12px; border-radius: 8px; font: 700 13px/1 var(--font); text-decoration: none; text-align: center; background: rgba(255,255,255,0.12); color: #fff; }
.ezdc-tier--featured .ezdc-tier__cta { background: #fff; color: var(--navy-800); }

/* Reviews + FAQ two-column (single service) */
.ezdc-rev-faq { padding: 0 var(--section-pad-x) 60px; display: grid; grid-template-columns: 1fr 1.2fr; gap: 40px; }
.ezdc-rev-faq__col { display: flex; flex-direction: column; gap: 14px; }
.ezdc-rev-faq__col h2 { font: 800 24px/1.2 var(--font); letter-spacing: -0.6px; }

/* Service cities pills */
.ezdc-svc-cities { background: var(--cloud); padding: 44px var(--section-pad-x); display: flex; flex-direction: column; gap: 14px; }
.ezdc-svc-cities h2 { font: 800 20px/1.2 var(--font); letter-spacing: -0.4px; }
.ezdc-pill-links { display: flex; flex-wrap: wrap; gap: 8px; }
.ezdc-pill-link {
  padding: 9px 15px; background: #fff; border: 1px solid #E2E8F2; border-radius: var(--r-pill);
  font: 600 12.5px/1 var(--font); color: var(--navy-800); text-decoration: none;
}
.ezdc-pill-link:hover { border-color: var(--blue); color: var(--blue); }
.ezdc-related-links { display: flex; gap: 18px; margin-top: 8px; flex-wrap: wrap; }

/* ==========================================================================
   SERVICE AREAS HUB (archive-city)
   ========================================================================== */
.ezdc-areas-hero { padding: 56px var(--section-pad-x) 44px; display: grid; grid-template-columns: 1fr 1fr; gap: 44px; align-items: center; }
.ezdc-areas-hero__copy { display: flex; flex-direction: column; gap: 16px; }
.ezdc-areas-hero__copy h1 { font: 800 44px/1.08 var(--font); letter-spacing: -1.6px; }
.ezdc-areas-hero__copy p { font: 500 16px/1.65 var(--font); color: var(--slate-500); margin: 0; }
.ezdc-areas-hero__media { height: 340px; border-radius: var(--r-panel); }
.ezdc-zip { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; }
.ezdc-zip__box { display: flex; border: 1.5px solid var(--border-strong); border-radius: 9px; overflow: hidden; }
.ezdc-zip__box input { border: none; outline: none; padding: 13px 16px; font: 600 14px/1 var(--font); width: 180px; }
.ezdc-zip__box button { padding: 13px 20px; background: var(--green); color: #fff; font: 700 14px/1 var(--font); cursor: pointer; border: none; }
.ezdc-zip__box button:hover { background: var(--green-hover); }
.ezdc-zip__result { font: 700 13px/1.4 var(--font); }
.ezdc-zip__result[data-state="success"] { color: var(--green-light-text); }
.ezdc-zip__result[data-state="warn"] { color: #7A5B14; }
.ezdc-zip__result[data-state="error"] { color: #B42318; }

.ezdc-counties { padding: 0 var(--section-pad-x) 64px; display: flex; flex-direction: column; gap: 32px; }
.ezdc-county { display: flex; flex-direction: column; gap: 14px; }
.ezdc-county__head { display: flex; align-items: baseline; gap: 12px; }
.ezdc-county__head h2 { font: 800 22px/1.2 var(--font); letter-spacing: -0.5px; }
.ezdc-county__note { font: 600 12px/1.2 var(--font); color: var(--slate-400); }
.ezdc-county__rule { flex: 1; height: 1px; background: #EEF1F6; }
.ezdc-county__grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; }
.ezdc-city-card {
  padding: 18px 20px; border: 1px solid var(--border); border-radius: 12px; text-decoration: none;
  color: var(--navy-800); display: flex; flex-direction: column; gap: 4px;
  transition: border-color .15s ease, box-shadow .15s ease;
}
.ezdc-city-card:hover { border-color: var(--blue); box-shadow: var(--shadow-hover); }
.ezdc-city-card__name { font: 700 15px/1.2 var(--font); }
.ezdc-city-card__eta { font: 600 11.5px/1.2 var(--font); color: var(--slate-400); }
.ezdc-city-card__link { font: 700 12px/1.2 var(--font); color: var(--blue); margin-top: 4px; }

/* ==========================================================================
   SINGLE CITY
   ========================================================================== */
.ezdc-city-services { padding: 60px var(--section-pad-x); display: flex; flex-direction: column; gap: 22px; }
.ezdc-city-services h2 { font: 800 28px/1.12 var(--font); letter-spacing: -0.8px; }
.ezdc-city-services__grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; }
.ezdc-mini-card { padding: 16px 18px; border: 1px solid var(--border); border-radius: 12px; text-decoration: none; color: var(--navy-800); display: flex; flex-direction: column; gap: 4px; transition: border-color .15s ease, box-shadow .15s ease; }
.ezdc-mini-card:hover { border-color: var(--blue); box-shadow: var(--shadow-hover); }
.ezdc-mini-card__name { font: 700 14px/1.2 var(--font); }
.ezdc-mini-card__link { font: 700 12px/1.2 var(--font); color: var(--blue); }

.ezdc-local-proof { background: var(--cloud); padding: 56px var(--section-pad-x); display: grid; grid-template-columns: 1fr 1fr; gap: 40px; align-items: center; }
.ezdc-local-proof__copy { display: flex; flex-direction: column; gap: 14px; }
.ezdc-local-proof__copy h2 { font: 800 26px/1.15 var(--font); letter-spacing: -0.7px; }
.ezdc-local-proof__meta { display: flex; gap: 16px; flex-wrap: wrap; font: 600 12.5px/1.4 var(--font); color: var(--slate-500); }
.ezdc-local-proof__media { height: 280px; border-radius: 16px; }

.ezdc-city-faq { padding: 56px var(--section-pad-x); display: grid; grid-template-columns: .8fr 1.2fr; gap: 40px; }
.ezdc-city-faq h2 { font: 800 26px/1.15 var(--font); letter-spacing: -0.7px; }
.ezdc-nearby { background: var(--cloud); padding: 36px var(--section-pad-x); display: flex; flex-direction: column; gap: 12px; }
.ezdc-nearby__title { font: 800 16px/1.2 var(--font); }

/* ==========================================================================
   COMBO (single-service_city) — lead form hero
   ========================================================================== */
.ezdc-combo-hero { grid-template-columns: 1.15fr 0.85fr; padding: 52px var(--section-pad-x); }
.ezdc-leadform {
  background: #fff; border-radius: 16px; padding: 26px; display: flex; flex-direction: column; gap: 12px;
  box-shadow: 0 20px 60px rgba(0,0,0,0.35);
}
.ezdc-leadform__title { font: 800 18px/1.2 var(--font); letter-spacing: -0.4px; }
.ezdc-leadform__sub { font: 500 12.5px/1.4 var(--font); color: var(--slate-400); }
.ezdc-leadform input {
  border: 1.5px solid var(--border-strong); border-radius: 8px; padding: 12px 14px;
  font: 600 13px/1 var(--font); outline: none;
}
.ezdc-leadform input:focus { border-color: var(--blue); }
.ezdc-leadform__note { font: 500 11px/1.4 var(--font); color: #9AA8BC; text-align: center; }
.ezdc-combo-content { padding: 56px var(--section-pad-x); display: grid; grid-template-columns: 1.1fr 0.9fr; gap: 44px; }
.ezdc-combo-content__main { display: flex; flex-direction: column; gap: 16px; }
.ezdc-combo-content__main h2 { font: 800 26px/1.15 var(--font); letter-spacing: -0.7px; }
.ezdc-combo-content__main p { font: 500 14px/1.7 var(--font); color: var(--slate-500); margin: 0; }
.ezdc-combo-facts { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.ezdc-combo-fact { padding: 14px 16px; background: var(--cloud); border-radius: 10px; font: 600 13px/1.4 var(--font); }
.ezdc-combo-content__side { display: flex; flex-direction: column; gap: 12px; }
.ezdc-combo-content__media { height: 200px; border-radius: 14px; }
.ezdc-combo-faq { background: var(--cloud); padding: 52px var(--section-pad-x); display: grid; grid-template-columns: .8fr 1.2fr; gap: 40px; }
.ezdc-combo-faq h2 { font: 800 24px/1.15 var(--font); letter-spacing: -0.6px; }
.ezdc-combo-faq .ezdc-faq__item { background: #fff; }
.ezdc-related-grid { padding: 44px var(--section-pad-x); display: grid; grid-template-columns: 1fr 1fr; gap: 36px; }
.ezdc-related-grid__col { display: flex; flex-direction: column; gap: 12px; }
.ezdc-related-grid__col h3 { font: 800 15px/1.2 var(--font); }

/* ==========================================================================
   ABOUT
   ========================================================================== */
.ezdc-about-hero { padding: 60px var(--section-pad-x); display: grid; grid-template-columns: 1fr 1fr; gap: 48px; align-items: center; }
.ezdc-about-hero__copy { display: flex; flex-direction: column; gap: 18px; }
.ezdc-about-hero__eyebrow { font: 600 11px/1 var(--mono); letter-spacing: 2px; color: var(--blue); }
.ezdc-about-hero__copy h1 { font: 800 44px/1.1 var(--font); letter-spacing: -1.7px; }
.ezdc-about-hero__copy p { font: 500 15.5px/1.7 var(--font); color: var(--slate-500); margin: 0; }
.ezdc-about-hero__media { height: 360px; border-radius: var(--r-panel); }
.ezdc-stats--bordered { border-top: 1px solid #EEF1F6; border-bottom: 1px solid #EEF1F6; }

.ezdc-creds { padding: 60px var(--section-pad-x); display: flex; flex-direction: column; gap: 24px; }
.ezdc-creds h2 { font: 800 28px/1.12 var(--font); letter-spacing: -0.8px; }
.ezdc-creds__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
.ezdc-cred { padding: 22px; border: 1px solid var(--border); border-radius: 14px; display: flex; flex-direction: column; gap: 8px; }
.ezdc-cred__glyph { width: 40px; height: 40px; border-radius: 10px; background: var(--sky-100); display: flex; align-items: center; justify-content: center; color: var(--blue); font: 800 16px/1 var(--font); }
.ezdc-cred__t { font: 700 15px/1.2 var(--font); }
.ezdc-cred__d { font: 500 12.5px/1.55 var(--font); color: var(--slate-400); }

.ezdc-team { background: var(--cloud); padding: 56px var(--section-pad-x); display: flex; flex-direction: column; gap: 22px; }
.ezdc-team h2 { font: 800 28px/1.12 var(--font); letter-spacing: -0.8px; }
.ezdc-team__grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; }
.ezdc-member { background: #fff; border: 1px solid var(--border); border-radius: 14px; overflow: hidden; display: flex; flex-direction: column; }
.ezdc-member__photo { height: 170px; }
.ezdc-member__body { padding: 16px; display: flex; flex-direction: column; gap: 4px; }
.ezdc-member__name { font: 700 14.5px/1.2 var(--font); }
.ezdc-member__role { font: 600 11.5px/1.2 var(--font); color: var(--blue); }
.ezdc-member__cred { font: 500 12px/1.5 var(--font); color: var(--slate-400); }

.ezdc-gallery { padding: 56px var(--section-pad-x); display: flex; flex-direction: column; gap: 22px; }
.ezdc-gallery__head { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; flex-wrap: wrap; }
.ezdc-gallery__head h2 { font: 800 28px/1.12 var(--font); letter-spacing: -0.8px; }
.ezdc-gallery__note { font: 600 12.5px/1.2 var(--font); color: var(--slate-400); }
.ezdc-gallery__grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; }
.ezdc-gallery__item { height: 150px; border-radius: 12px; }
.ezdc-all-reviews { background: var(--cloud); padding: 56px var(--section-pad-x); display: flex; flex-direction: column; gap: 22px; }
.ezdc-all-reviews__head { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; flex-wrap: wrap; }
.ezdc-all-reviews__head h2 { font: 800 28px/1.12 var(--font); letter-spacing: -0.8px; }
.ezdc-all-reviews__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }

/* ==========================================================================
   CONTACT + booking wizard
   ========================================================================== */
.ezdc-contact { padding: 56px var(--section-pad-x) 64px; display: grid; grid-template-columns: 1fr 1.1fr; gap: 48px; align-items: start; }
.ezdc-contact__info { display: flex; flex-direction: column; gap: 22px; }
.ezdc-contact__info h1 { font: 800 42px/1.1 var(--font); letter-spacing: -1.6px; }
.ezdc-contact__info > p { font: 500 15px/1.65 var(--font); color: var(--slate-500); margin: 0; }
.ezdc-contact__cards { display: flex; flex-direction: column; gap: 12px; }
.ezdc-contact__card { display: flex; align-items: center; gap: 14px; padding: 18px 20px; border-radius: 14px; text-decoration: none; }
.ezdc-contact__card--phone { background: var(--navy-900); }
.ezdc-contact__card--addr { border: 1px solid var(--border); }
.ezdc-contact__icon { width: 42px; height: 42px; flex: none; border-radius: 10px; display: flex; align-items: center; justify-content: center; font-size: 18px; }
.ezdc-contact__icon--green { background: var(--green); }
.ezdc-contact__icon--sky { background: var(--sky-100); }
.ezdc-contact__phone-num { font: 800 17px/1.2 var(--font); color: #fff; }
.ezdc-contact__phone-sub { font: 500 12px/1.3 var(--font); color: var(--navy-muted); }
.ezdc-contact__addr-t { font: 700 14px/1.3 var(--font); }
.ezdc-contact__addr-sub { font: 500 12px/1.3 var(--font); color: var(--slate-400); }
.ezdc-contact__addr-sub a { color: var(--blue); text-decoration: none; font-weight: 700; }
.ezdc-contact__map { height: 180px; border-radius: 14px; }
.ezdc-contact__trust { display: flex; gap: 14px; flex-wrap: wrap; font: 600 12px/1.4 var(--font); color: var(--slate-400); }

.ezdc-wizard {
  background: #fff; border: 1px solid var(--border); border-radius: var(--r-panel); padding: 30px;
  box-shadow: 0 12px 40px rgba(11,27,51,0.08); display: flex; flex-direction: column; gap: 18px;
}
.ezdc-wizard__progress { display: flex; gap: 6px; }
.ezdc-wizard__seg { flex: 1; height: 5px; border-radius: 3px; background: var(--border); }
.ezdc-wizard__seg[data-filled="true"] { background: var(--green); }
.ezdc-wizard__step-label { font: 600 11px/1 var(--mono); letter-spacing: 1.5px; color: var(--slate-400); }
.ezdc-wizard__step { display: flex; flex-direction: column; gap: 12px; }
.ezdc-wizard__q { font: 800 20px/1.2 var(--font); letter-spacing: -0.4px; }
.ezdc-wizard__opts { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.ezdc-choice {
  padding: 16px; border: 1.5px solid var(--border); background: #fff; border-radius: 12px;
  font: 700 13.5px/1.2 var(--font); cursor: pointer; text-align: center; transition: border-color .12s ease, background-color .12s ease;
}
.ezdc-choice:hover { border-color: var(--blue); }
.ezdc-choice[data-selected="true"] { border-color: var(--green); background: var(--green-light-bg); }
.ezdc-wizard input {
  border: 1.5px solid var(--border-strong); border-radius: 10px; padding: 14px 16px;
  font: 600 14px/1 var(--font); outline: none;
}
.ezdc-wizard input:focus { border-color: var(--blue); }
.ezdc-wizard__nav { display: flex; gap: 10px; margin-top: 4px; }
.ezdc-wizard__back { padding: 14px 20px; border: 1.5px solid var(--border-strong); border-radius: 10px; font: 700 14px/1 var(--font); cursor: pointer; background: #fff; }
.ezdc-wizard__next { flex: 1; padding: 14px; background: var(--green); color: #fff; border: none; border-radius: 10px; font: 700 14.5px/1 var(--font); cursor: pointer; }
.ezdc-wizard__next:hover { background: var(--green-hover); }
.ezdc-wizard__done { display: flex; flex-direction: column; gap: 12px; align-items: center; text-align: center; padding: 20px 0; }
.ezdc-wizard__done-check { width: 56px; height: 56px; border-radius: 50%; background: var(--green-light-bg); display: flex; align-items: center; justify-content: center; color: var(--green-light-text); font: 800 24px/1 var(--font); }
.ezdc-wizard__done-t { font: 800 22px/1.2 var(--font); letter-spacing: -0.5px; }
.ezdc-wizard__done-d { font: 500 13.5px/1.6 var(--font); color: var(--slate-500); }
.ezdc-wizard__note { font: 500 11px/1.4 var(--font); color: #9AA8BC; text-align: center; }

/* ==========================================================================
   COUPONS
   ========================================================================== */
.ezdc-coupons { padding: 0 var(--section-pad-x) 64px; display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.ezdc-coupon { border: 2px dashed var(--border-strong); background: #F7FAFE; border-radius: 16px; padding: 26px; display: flex; flex-direction: column; gap: 10px; }
.ezdc-coupon--green { border-color: #BBE0C8; background: #F3FBF6; }
.ezdc-coupon--blue { border-color: #C6D2E4; background: #F7FAFE; }
.ezdc-coupon__top { display: flex; justify-content: space-between; align-items: center; }
.ezdc-coupon__amount { font: 800 30px/1 var(--font); letter-spacing: -1px; }
.ezdc-coupon--green .ezdc-coupon__amount { color: #1B8A4E; }
.ezdc-coupon--blue .ezdc-coupon__amount { color: var(--blue); }
.ezdc-coupon__code { font: 700 10.5px/1 var(--mono); padding: 5px 9px; background: #fff; border: 1px solid #E2E8F2; border-radius: 5px; color: var(--slate-500); }
.ezdc-coupon__title { font: 700 16px/1.2 var(--font); }
.ezdc-coupon__detail { font: 500 12.5px/1.6 var(--font); color: var(--slate-400); }
.ezdc-coupon__expires { font: 600 11px/1 var(--mono); color: #9AA8BC; }
.ezdc-coupon .ezdc-btn { margin-top: auto; }

/* ==========================================================================
   FINANCING
   ========================================================================== */
.ezdc-fin-hero { padding: 56px var(--section-pad-x); display: grid; grid-template-columns: 1.1fr 0.9fr; gap: 48px; align-items: center; }
.ezdc-fin-hero__copy { display: flex; flex-direction: column; gap: 16px; }
.ezdc-fin-hero__copy h1 { font: 800 42px/1.1 var(--font); letter-spacing: -1.6px; }
.ezdc-fin-hero__copy p { font: 500 15px/1.65 var(--font); color: var(--slate-500); margin: 0; }
.ezdc-fin-disclaimer { font: 500 11.5px/1.5 var(--font); color: #9AA8BC; }
.ezdc-fin-plans { display: flex; flex-direction: column; gap: 12px; }
.ezdc-fin-plan { padding: 20px 24px; border: 1.5px solid var(--border); background: #fff; border-radius: 14px; display: flex; justify-content: space-between; align-items: center; gap: 16px; }
.ezdc-fin-plan--green { border-color: #BBE0C8; background: #F3FBF6; }
.ezdc-fin-plan__name { font: 800 18px/1.2 var(--font); }
.ezdc-fin-plan__detail { font: 500 12.5px/1.3 var(--font); color: var(--slate-400); }
.ezdc-fin-plan__apr { font: 800 22px/1 var(--font); }
.ezdc-fin-plan--green .ezdc-fin-plan__apr { color: #1B8A4E; }
.ezdc-fin-plan__apr { color: var(--blue); }
.ezdc-fin-steps { background: var(--cloud); padding: 52px var(--section-pad-x); display: flex; flex-direction: column; gap: 22px; }
.ezdc-fin-steps h2 { font: 800 26px/1.12 var(--font); letter-spacing: -0.7px; }
.ezdc-fin-steps__grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; }
.ezdc-fin-step { padding: 22px; background: #fff; border: 1px solid var(--border); border-radius: 12px; display: flex; flex-direction: column; gap: 8px; }
.ezdc-fin-step__n { font: 800 12px/1 var(--mono); color: var(--blue); }
.ezdc-fin-step__t { font: 700 15px/1.2 var(--font); }
.ezdc-fin-step__d { font: 500 12.5px/1.55 var(--font); color: var(--slate-400); }

/* ==========================================================================
   BLOG ARTICLE (single)
   ========================================================================== */
.ezdc-article { max-width: 760px; margin: 0 auto; padding: 52px 32px 40px; display: flex; flex-direction: column; gap: 22px; }
.ezdc-article__eyebrow { font: 600 11px/1 var(--mono); letter-spacing: 1.5px; color: var(--blue); }
.ezdc-article__title { font: 800 40px/1.12 var(--font); letter-spacing: -1.4px; }
.ezdc-article__byline { display: flex; align-items: center; gap: 12px; }
.ezdc-article__avatar { width: 42px; height: 42px; border-radius: 50%; background: repeating-linear-gradient(45deg,#E3EAF2,#E3EAF2 6px,#DBE4EF 6px,#DBE4EF 12px); flex: none; }
.ezdc-article__author { font: 700 13px/1.3 var(--font); }
.ezdc-article__meta { font: 500 12px/1.3 var(--font); color: var(--slate-400); }
.ezdc-article__hero { height: 320px; border-radius: 16px; }
.ezdc-toc { padding: 18px 22px; background: var(--cloud); border-radius: 12px; display: flex; flex-direction: column; gap: 6px; }
.ezdc-toc__title { font: 700 12px/1 var(--font); color: var(--slate-400); letter-spacing: 1px; }
.ezdc-toc a { font: 600 13.5px/1.5 var(--font); color: var(--blue); text-decoration: none; }
.ezdc-prose { display: flex; flex-direction: column; gap: 16px; }
.ezdc-prose p { margin: 0; font: 500 16px/1.75 var(--font); color: #333F52; }
.ezdc-prose h2 { margin: 12px 0 0; font: 800 24px/1.2 var(--font); letter-spacing: -0.6px; }
.ezdc-prose a { color: var(--blue); text-decoration: none; font-weight: 700; }
.ezdc-article__cta { padding: 24px; background: var(--navy-900); border-radius: 14px; display: flex; align-items: center; justify-content: space-between; gap: 20px; flex-wrap: wrap; }
.ezdc-article__cta-t { font: 800 17px/1.2 var(--font); color: #fff; }
.ezdc-article__cta-d { font: 500 12.5px/1.4 var(--font); color: var(--navy-muted); margin-top: 2px; }
.ezdc-authorbox { border: 1px solid var(--border); border-radius: 14px; padding: 22px; display: flex; gap: 16px; align-items: center; }
.ezdc-authorbox__avatar { width: 56px; height: 56px; flex: none; border-radius: 50%; background: repeating-linear-gradient(45deg,#E3EAF2,#E3EAF2 6px,#DBE4EF 6px,#DBE4EF 12px); }
.ezdc-authorbox__t { font: 800 14px/1.2 var(--font); }
.ezdc-authorbox__d { font: 500 13px/1.6 var(--font); color: var(--slate-500); }
.ezdc-related-articles { background: var(--cloud); padding: 44px var(--section-pad-x); display: flex; flex-direction: column; gap: 18px; }
.ezdc-related-articles__title { font: 800 20px/1.2 var(--font); letter-spacing: -0.4px; }
.ezdc-related-articles__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }

/* Blog listing (archive) */
.ezdc-blog-list { padding: 40px var(--section-pad-x) 64px; display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; max-width: var(--content-max); margin-inline: auto; }

/* ==========================================================================
   RESPONSIVE — collapse the new grids
   ========================================================================== */
@media (max-width: 1000px) {
  .ezdc-svc-cards, .ezdc-signs__grid, .ezdc-creds__grid, .ezdc-all-reviews__grid,
  .ezdc-related-articles__grid, .ezdc-blog-list { grid-template-columns: 1fr 1fr; }
  .ezdc-proc5__grid { grid-template-columns: repeat(3, 1fr); }
  .ezdc-county__grid, .ezdc-city-services__grid, .ezdc-team__grid, .ezdc-gallery__grid { grid-template-columns: repeat(2, 1fr); }
  .ezdc-pricing, .ezdc-coupons { grid-template-columns: 1fr; }
}
@media (max-width: 900px) {
  .ezdc-split-hero, .ezdc-combo-hero, .ezdc-areas-hero, .ezdc-included, .ezdc-rev-faq,
  .ezdc-local-proof, .ezdc-city-faq, .ezdc-combo-content, .ezdc-combo-faq, .ezdc-about-hero,
  .ezdc-contact, .ezdc-fin-hero, .ezdc-related-grid { grid-template-columns: 1fr; }
  .ezdc-page-hero h1, .ezdc-split-hero h1, .ezdc-areas-hero__copy h1, .ezdc-about-hero__copy h1,
  .ezdc-contact__info h1, .ezdc-fin-hero__copy h1 { font-size: 34px; letter-spacing: -1.1px; }
  .ezdc-split-hero h1 { font-size: 36px; }
}
@media (max-width: 640px) {
  .ezdc-page-hero, .ezdc-split-hero, .ezdc-included, .ezdc-proc5, .ezdc-creds, .ezdc-gallery,
  .ezdc-contact, .ezdc-city-services { padding-inline: 24px; }
  .ezdc-signs, .ezdc-team, .ezdc-local-proof, .ezdc-all-reviews, .ezdc-fin-steps,
  .ezdc-svc-cities, .ezdc-nearby, .ezdc-combo-content, .ezdc-combo-faq { padding-inline: 24px; }
  .ezdc-svc-hub, .ezdc-counties { padding-inline: 24px; }
  .ezdc-pricing, .ezdc-cta-strip { margin-inline: 24px; }
  .ezdc-svc-cards, .ezdc-signs__grid, .ezdc-creds__grid, .ezdc-all-reviews__grid,
  .ezdc-related-articles__grid, .ezdc-blog-list, .ezdc-proc5__grid, .ezdc-county__grid,
  .ezdc-city-services__grid, .ezdc-team__grid, .ezdc-gallery__grid, .ezdc-fin-steps__grid,
  .ezdc-included__grid, .ezdc-combo-facts, .ezdc-wizard__opts { grid-template-columns: 1fr; }
  .ezdc-cta-band, .ezdc-cta-strip { flex-direction: column; align-items: flex-start; }
}
