/* ================================================================
   Mold Removal Syracuse �?" 716-class conversion layout
   Rebuild: 2026-09-29
   Palette: Graphite #193034 A� Cream #F4F0E7 A� Orange #C95D2A
            Lichen #48715E A� Fog #DCE5DF A� Charcoal #1D1F1E
            White #FFFFFF
   Structure: sticky trust-hdr �+' nav �+' hero �+' 7 icons �+' offer|form
              �+' photo cards �+' how-it-works �+' reviews �+' people
              �+' FAQs �+' fat footer
   ================================================================ */

/* Reset */
*, *::before, *::after { box-sizing: border-box }
html { scroll-behavior: smooth }

body {
  margin: 0;
  font-family: "Source Sans 3", -apple-system, "Segoe UI", Arial, sans-serif;
  font-size: 17px;
  line-height: 1.65;
  color: #1D1F1E;
  background: #F4F0E7;
  overflow-x: hidden;
  -webkit-font-smoothing: antialiased;
}

h1, h2 {
  font-family: "Source Serif 4", Georgia, "Times New Roman", serif;
  font-weight: 600;
  line-height: 1.1;
  margin: 0 0 18px;
  color: #193034;
  letter-spacing: -0.01em;
  text-wrap: balance;
}
h3, h4 {
  font-family: "Source Sans 3", "Segoe UI", Arial, sans-serif;
  font-weight: 700;
  line-height: 1.25;
  margin: 0 0 10px;
  color: #193034;
}
h1 { font-size: clamp(30px, 4vw, 54px) }
h2 { font-size: clamp(24px, 3vw, 42px) }
h3 { font-size: clamp(18px, 1.6vw, 22px) }
h4 { font-size: clamp(15px, 1.1vw, 17px) }

p { margin: 0 0 14px }
p:last-child { margin-bottom: 0 }
a { color: #48715E; text-decoration: none }
a:hover { text-decoration: underline }
strong { font-weight: 700 }
ul { margin: 0; padding: 0 }
img { max-width: 100%; height: auto; display: block }
[hidden] { display: none !important }

:focus-visible { outline: 3px solid #C95D2A; outline-offset: 3px }

/* Layout helpers */
.wrap { max-width: 1200px; margin: 0 auto; padding: 0 24px }
.skip {
  position: absolute; left: -9999px; top: 0;
  background: #193034; color: #F4F0E7;
  padding: 12px 18px; z-index: 9999; font-weight: 700;
  border-radius: 0 0 8px 0; text-decoration: none;
}
.skip:focus { left: 0 }
main:focus { outline: none }

.eyebrow {
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: #48715E;
  display: block;
  margin-bottom: 10px;
}
.sec-dark .eyebrow { color: #DCE5DF }

/* section */
.btn-primary {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  background: #C95D2A; color: #fff;
  padding: 14px 28px;
  border-radius: 6px;
  font-weight: 700; font-size: 16px;
  text-decoration: none;
  border: 2px solid #C95D2A;
  cursor: pointer;
  transition: background 0.18s, transform 0.15s, box-shadow 0.18s;
  min-height: 48px;
  line-height: 1.2;
  white-space: nowrap;
}
.btn-primary:hover {
  background: #a8471e; border-color: #a8471e;
  transform: translateY(-1px);
  box-shadow: 0 3px 10px rgba(201,93,42,0.25);
  text-decoration: none;
  color: #fff;
}
.btn-primary:active { transform: translateY(0); box-shadow: none }

.btn-secondary {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  background: transparent; color: #193034;
  padding: 13px 26px;
  border-radius: 6px;
  font-weight: 700; font-size: 16px;
  text-decoration: none;
  border: 2px solid #193034;
  cursor: pointer;
  transition: background 0.18s, color 0.18s, transform 0.15s;
  min-height: 48px;
  line-height: 1.2;
  white-space: nowrap;
}
.btn-secondary:hover {
  background: #193034; color: #F4F0E7;
  transform: translateY(-2px);
  text-decoration: none;
}

.btn-ghost-light {
  display: inline-flex; align-items: center; justify-content: center;
  background: transparent; color: #F4F0E7;
  padding: 13px 26px;
  border-radius: 6px;
  font-weight: 700; font-size: 16px;
  text-decoration: none;
  border: 2px solid rgba(244,240,231,0.6);
  cursor: pointer;
  transition: background 0.18s, color 0.18s;
  min-height: 48px;
  white-space: nowrap;
}
.btn-ghost-light:hover {
  background: rgba(244,240,231,0.15);
  text-decoration: none; color: #fff;
  border-color: #fff;
}

.btn-phone {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  background: #193034; color: #F4F0E7;
  padding: 13px 24px;
  border-radius: 6px;
  font-weight: 700; font-size: 15px;
  text-decoration: none;
  border: 2px solid #193034;
  transition: background 0.18s;
  min-height: 46px;
}
.btn-phone:hover { background: #0f1e22; text-decoration: none; color: #F4F0E7 }

/* section */
.trust-hdr {
  position: sticky;
  top: 0;
  z-index: 200;
  background: #193034;
  border-bottom: 1px solid rgba(255,255,255,0.08);
  overflow-x: clip;
}
.trust-hdr__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  min-height: 64px;
}

/* Logo in trust header */
.th-logo {
  display: flex; align-items: center; gap: 12px;
  text-decoration: none; flex-shrink: 0;
}
.th-logo:hover { text-decoration: none }
.th-logo-icon {
  width: 36px; height: 44px; flex-shrink: 0;
}
.th-logo-text { display: flex; flex-direction: column; line-height: 1.1 }
.th-logo-name {
  font-size: 16px; font-weight: 700; color: #F4F0E7;
  letter-spacing: -0.01em;
}
.th-logo-place {
  font-size: 18px; font-weight: 900; color: #fff;
  letter-spacing: -0.02em;
}
.th-logo-tagline {
  font-size: 10px; font-weight: 600; letter-spacing: 0.1em;
  text-transform: uppercase; color: #DCE5DF; margin-top: 2px;
}

/* Google stars center */
.th-stars {
  display: flex; flex-direction: column; align-items: center; gap: 2px;
  flex-shrink: 0;
}
.th-stars__row {
  display: flex; align-items: center; gap: 6px;
}
.th-g {
  width: 22px; height: 22px;
  background: #fff;
  border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  font-size: 13px; font-weight: 900; color: #4285F4;
  font-family: Arial, sans-serif;
  flex-shrink: 0;
}
.th-stars-icons {
  color: #FBBC04;
  font-size: 16px;
  letter-spacing: 1px;
  line-height: 1;
}
.th-rating {
  font-size: 17px; font-weight: 900; color: #fff;
}
.th-count {
  font-size: 11px; color: #DCE5DF;
  text-align: center;
  line-height: 1.2;
}

/* Phone CTA in trust header */
.th-phone {
  display: flex; flex-direction: column; align-items: center;
  background: #C95D2A; color: #fff;
  padding: 10px 18px;
  border-radius: 6px;
  text-decoration: none;
  flex-shrink: 1;
  transition: background 0.18s, transform 0.15s;
  min-width: 0;
}
.th-phone:hover {
  background: #a8471e; text-decoration: none; color: #fff;
  transform: translateY(-1px);
}
.th-phone__number {
  font-size: 17px; font-weight: 900; color: #fff;
  display: flex; align-items: center; gap: 6px;
  line-height: 1.1;
}
.th-phone__number svg { flex-shrink: 0 }
.th-phone__sub {
  font-size: 10px; color: rgba(255,255,255,0.85);
  text-align: center; letter-spacing: 0.05em;
  text-transform: uppercase;
}

/* MAIN NAV */
.main-nav {
  background: #fff;
  border-bottom: 1px solid #e5e5e5;
  position: sticky;
  top: 64px;
  z-index: 190;
  overflow-x: clip;
}
.main-nav__inner {
  display: flex;
  align-items: center;
  gap: 4px;
  min-height: 50px;
}
.main-nav__inner a {
  font-size: 13px; font-weight: 700;
  text-transform: uppercase; letter-spacing: 0.06em;
  color: #193034;
  padding: 14px 12px;
  text-decoration: none;
  transition: color 0.15s;
  white-space: nowrap;
}
.main-nav__inner a:hover { color: #C95D2A; text-decoration: none }
.main-nav__inner a[aria-current="page"] { color: #C95D2A }
.nav-spacer { flex: 1 }
.nav-book {
  background: #C95D2A !important; color: #fff !important;
  padding: 10px 18px !important;
  border-radius: 5px;
  font-size: 13px !important;
  margin-left: 8px;
  transition: background 0.18s !important;
}
.nav-book:hover { background: #a8471e !important; color: #fff !important }

/* Hamburger */
.nav-hamburger {
  display: none;
  background: none; border: none;
  cursor: pointer; padding: 10px;
  color: #193034;
  margin-left: auto;
}

/* MOBILE DRAWER */
.nav-drawer {
  position: fixed; inset: 0; z-index: 500;
  background: #193034; color: #F4F0E7;
  display: flex; flex-direction: column; padding: 24px;
  overflow-y: auto;
  transition: transform 0.25s;
}
.nav-drawer[hidden] { display: none }
.drawer-close {
  align-self: flex-end;
  background: none; border: 2px solid rgba(255,255,255,0.3);
  color: #F4F0E7; font-size: 14px; font-weight: 700;
  padding: 8px 14px; border-radius: 6px; cursor: pointer;
  margin-bottom: 24px;
}
.drawer-nav { list-style: none; padding: 0; margin: 0 0 24px }
.drawer-nav li { border-bottom: 1px solid rgba(255,255,255,0.1) }
.drawer-nav a {
  display: block; padding: 14px 0;
  font-size: 18px; font-weight: 700; color: #F4F0E7;
  text-decoration: none;
}
.drawer-nav a:hover { color: #C95D2A }
.drawer-ctas {
  display: flex; flex-direction: column; gap: 12px; margin-top: auto;
}

/* HERO */
.hero {
  background: #193034;
  color: #F4F0E7;
  padding: 56px 0 0;
  overflow: hidden;
}
/* Photo-backed hero */
.hero--photo {
  position: relative;
  padding: 0;
  min-height: 460px;
  display: flex;
  align-items: flex-end;
}
.hero__bg {
  position: absolute; inset: 0; z-index: 0;
}
.hero__bg img {
  width: 100%; height: 100%;
  object-fit: cover;
  object-position: center 40%;
}
/* Shading is full-bleed on the photo layer, not on the centred .wrap, so it
   has no hard left edge and no unshaded band above the copy. */
.hero__bg::after {
  content: ""; position: absolute; inset: 0;
  background: linear-gradient(
    to right,
    rgba(29,31,30,0.62) 0%,
    rgba(29,31,30,0.50) 30%,
    rgba(29,31,30,0.22) 60%,
    rgba(29,31,30,0.06) 100%
  );
}
.hero__inner--overlay {
  position: relative; z-index: 1;
  display: block;
  padding-top: 72px; padding-bottom: 48px;
  width: 100%;
}
.hero__inner {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 48px;
  align-items: flex-end;
}
.hero__copy { padding-bottom: 56px }
.hero--photo .hero__copy {
  padding-bottom: 0;
  max-width: 600px;
}
.hero__copy h1 { color: #fff; font-size: clamp(28px, 3.4vw, 46px) }
.hero--photo .hero__copy h1 { text-shadow: 0 2px 18px rgba(0,0,0,0.55), 0 1px 3px rgba(0,0,0,0.45) }
.hero--photo .hero__lead { text-shadow: 0 1px 12px rgba(0,0,0,0.50), 0 1px 2px rgba(0,0,0,0.35) }
.hero__lead {
  font-size: 17px; line-height: 1.6; color: #DCE5DF;
  margin: 14px 0 24px;
}
.hero__actions {
  display: flex; flex-wrap: wrap; gap: 12px; align-items: center;
}
.hero__proof {
  display: flex; flex-wrap: wrap; gap: 16px;
  margin-top: 24px;
  list-style: none; padding: 0;
}
.hero__proof li {
  display: flex; align-items: center; gap: 6px;
  font-size: 14px; color: #DCE5DF;
}
.hero__proof-dot {
  width: 8px; height: 8px; border-radius: 50%;
  background: #48715E; flex-shrink: 0;
}
.hero__media {
  align-self: flex-end;
  position: relative;
}
.hero__img {
  width: 100%;
  max-height: 480px;
  object-fit: cover;
  object-position: center top;
  border-radius: 8px 8px 0 0;
  display: block;
}

/* Service-page hero (white bg with photo overlay) */
.hero-svc {
  background: #193034;
  color: #F4F0E7;
  padding: 56px 0;
}
.hero-svc__inner {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 48px;
  align-items: center;
}
.hero-svc__copy h1 { color: #fff; font-size: clamp(28px, 3.2vw, 46px) }
.hero-svc__lead { font-size: 18px; color: #DCE5DF; margin: 16px 0 28px }
.hero-svc__media img {
  width: 100%; border-radius: 8px;
  max-height: 400px; object-fit: cover;
}

/* section */
.benefits {
  background: #fff;
  border-bottom: 2px solid #e8e4dc;
  padding: 16px 0;
}
.benefits__grid {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 6px 20px;
  list-style: none;
  padding: 0; margin: 0;
}
.benefits__item {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 8px 0;
  white-space: nowrap;
}
.benefits__mark {
  color: #48715E;
  font-weight: 700;
  font-size: 15px;
  flex-shrink: 0;
}
.benefits__label {
  font-size: 13px; font-weight: 600;
  color: #193034; line-height: 1.25;
}

/* section */
.offer-section {
  background: #F4F0E7;
  padding: 72px 0;
}
.offer-section__head {
  text-align: center;
  max-width: 680px;
  margin: 0 auto 48px;
}
.offer-section__head h2 { color: #193034 }
.offer-section__head p { font-size: 17px; color: #4a4a48 }

.offer-form-grid {
  display: grid;
  grid-template-columns: 1fr 1.6fr;
  gap: 48px;
  align-items: start;
}

/* Offer card */
.offer-card {
  background: #193034;
  border-radius: 12px;
  padding: 32px;
  color: #F4F0E7;
}
.offer-card__badge {
  display: inline-block;
  background: #C95D2A;
  color: #fff;
  font-size: 10px; font-weight: 800;
  letter-spacing: 0.12em; text-transform: uppercase;
  padding: 4px 10px; border-radius: 4px;
  margin-bottom: 16px;
}
.offer-card__dollar {
  font-size: 72px; font-weight: 900;
  color: #C95D2A;
  line-height: 1;
  margin-bottom: 4px;
}
.offer-card__off {
  font-size: 22px; font-weight: 700; color: #fff;
  margin-bottom: 4px;
}
.offer-card__desc {
  font-size: 15px; color: #DCE5DF;
  margin-bottom: 24px;
}
.offer-card__btn {
  display: block; text-align: center;
  background: #C95D2A; color: #fff;
  padding: 14px 20px;
  border-radius: 6px; font-weight: 700; font-size: 16px;
  text-decoration: none;
  transition: background 0.18s, transform 0.15s;
}
.offer-card__btn:hover {
  background: #a8471e; text-decoration: none; color: #fff;
  transform: translateY(-2px);
}
.offer-card__fine {
  font-size: 11px; color: #DCE5DF; margin-top: 12px;
  line-height: 1.5;
}

/* Trust badges below offer card */
.trust-badges {
  display: grid; grid-template-columns: 1fr 1fr;
  gap: 10px;
  margin-top: 20px;
}
.trust-badge {
  background: #fff;
  border: 1px solid #e0dbd2;
  border-radius: 8px;
  padding: 12px;
  text-align: center;
  display: flex; flex-direction: column; align-items: center; gap: 4px;
}
.trust-badge__icon { font-size: 20px }
.trust-badge__label {
  font-size: 11px; font-weight: 700;
  color: #193034; line-height: 1.2;
}

/* Form card */
.form-card {
  background: #fff;
  border-radius: 12px;
  padding: 36px;
  box-shadow: 0 4px 24px rgba(25,48,52,0.1);
}
.form-card h3 {
  font-size: clamp(18px, 1.6vw, 22px);
  color: #193034; margin-bottom: 6px;
}
.form-card > p { color: #555; margin-bottom: 24px; font-size: 15px }

.credit-banner {
  background: #193034;
  color: #DCE5DF;
  border-radius: 6px;
  padding: 10px 14px;
  font-size: 13px; font-weight: 600;
  display: flex; align-items: center; gap: 8px;
  margin-bottom: 20px;
}
.credit-banner::before {
  content: '';
  width: 8px; height: 8px; border-radius: 50%;
  background: #48715E; flex-shrink: 0;
}

.form-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
}
.form-full { grid-column: 1 / -1 }
.field { display: flex; flex-direction: column; gap: 4px }
.field label {
  font-size: 13px; font-weight: 700; color: #193034;
}
.field input, .field select, .field textarea {
  width: 100%;
  padding: 11px 14px;
  border: 1.5px solid #d0ccc5;
  border-radius: 6px;
  font-size: 15px;
  font-family: inherit;
  color: #1D1F1E;
  background: #fff;
  transition: border-color 0.15s;
  appearance: none;
}
.field input:focus, .field select:focus, .field textarea:focus {
  outline: none;
  border-color: #193034;
}
.field textarea { min-height: 90px; resize: vertical }
.field select {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' fill='none'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23193034' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 14px center;
  padding-right: 36px;
}

.form-submit-row {
  margin-top: 18px;
  display: flex; flex-direction: column; gap: 10px;
}
.form-submit-row .btn-primary { width: 100%; font-size: 18px; padding: 16px }
.form-consent { font-size: 12px; color: #888; line-height: 1.4 }
.form-consent a { color: #48715E }

/* section */
.svc-photo-section {
  background: #fff;
  padding: 72px 0;
}
.svc-photo-section__head {
  text-align: center;
  margin-bottom: 40px;
}
.svc-photo-section__head h2 { color: #193034 }

.spc-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 4px;
}
.spc-card {
  position: relative;
  display: block;
  overflow: hidden;
  aspect-ratio: 5/4;
  border-radius: 0;
  text-decoration: none;
}
.spc-card:first-child { border-radius: 8px 0 0 8px }
.spc-card:last-child { border-radius: 0 8px 8px 0 }
.spc-card img {
  width: 100%; height: 100%;
  object-fit: cover;
  transition: transform 0.35s;
}
.spc-card:hover img { transform: scale(1.05) }
.spc-card__overlay {
  position: absolute; inset: 0;
  background: linear-gradient(to top, rgba(25,48,52,0.72) 0%, rgba(25,48,52,0.08) 50%, transparent 100%);
  transition: opacity 0.25s;
}
.spc-card__label {
  position: absolute; bottom: 0; left: 0; right: 0;
  padding: 20px 20px 22px;
  color: #fff;
  display: flex; align-items: center; justify-content: space-between;
}
.spc-card__name {
  font-size: 19px; font-weight: 800;
  line-height: 1.2;
}
.spc-card__arrow {
  width: 32px; height: 32px; border-radius: 50%;
  background: #C95D2A;
  display: flex; align-items: center; justify-content: center;
  flex-shrink: 0;
  transition: background 0.18s, transform 0.18s;
}
.spc-card:hover .spc-card__arrow { background: #fff; transform: translateX(3px) }
.spc-card:hover .spc-card__arrow svg { color: #C95D2A }

/* section */
.how-section {
  background: #F4F0E7;
  padding: 72px 0;
}
.how-section__inner {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 64px;
  align-items: start;
}
.how-section__copy h2 { margin-bottom: 16px }
.how-section__copy p { color: #4a4a48 }

.how-steps {
  display: flex; flex-direction: column; gap: 0;
  counter-reset: step;
  list-style: none; padding: 0; margin: 0;
}
.how-step {
  display: flex; gap: 16px;
  padding: 20px 0;
  border-bottom: 1px solid #dcd8d0;
  counter-increment: step;
}
.how-step:last-child { border-bottom: none }
.how-step__num {
  width: 36px; height: 36px; flex-shrink: 0;
  border-radius: 50%;
  background: #193034; color: #F4F0E7;
  font-size: 15px; font-weight: 800;
  display: flex; align-items: center; justify-content: center;
}
.how-step__body h4 { margin-bottom: 4px; color: #193034 }
.how-step__body p { font-size: 15px; color: #4a4a48; margin: 0 }

/* REVIEWS */
.reviews-section {
  background: #193034;
  padding: 72px 0;
  color: #F4F0E7;
  overflow: hidden;
}
.reviews-section__head {
  text-align: center;
  margin-bottom: 40px;
}
.reviews-section__head h2 { color: #fff }

.reviews-carousel-wrap {
  position: relative;
  overflow: hidden;
}
.reviews-track {
  display: flex;
  gap: 20px;
  transition: transform 0.4s cubic-bezier(0.25,0.8,0.25,1);
}
.review-card {
  flex: 0 0 320px;
  background: #fff;
  border-radius: 6px;
  padding: 22px 24px;
  color: #1D1F1E;
  box-shadow: 0 2px 8px rgba(0,0,0,0.1);
  cursor: default;
}
.review-card__header {
  display: flex; align-items: center; gap: 10px;
  margin-bottom: 12px;
}
.review-avatar {
  width: 40px; height: 40px; border-radius: 50%;
  background: #193034; color: #F4F0E7;
  font-size: 18px; font-weight: 900;
  display: flex; align-items: center; justify-content: center;
  flex-shrink: 0;
}
.review-meta h4 { font-size: 14px; margin-bottom: 2px; color: #193034 }
.review-meta p { font-size: 12px; color: #888; margin: 0 }
.review-stars { color: #FBBC04; font-size: 16px; letter-spacing: 1px }
.review-g {
  margin-left: auto; width: 20px; height: 20px;
  background: #4285F4; border-radius: 50%;
  color: #fff; font-size: 12px; font-weight: 900;
  display: flex; align-items: center; justify-content: center;
  font-family: Arial, sans-serif;
}
.review-card__body { font-size: 14px; color: #444; line-height: 1.55 }
.review-card__time { font-size: 12px; color: #aaa; margin-top: 10px }

.reviews-nav {
  display: flex; align-items: center; justify-content: center;
  gap: 12px; margin-top: 28px;
}
.reviews-btn {
  width: 40px; height: 40px; border-radius: 50%;
  background: rgba(255,255,255,0.15);
  border: 1px solid rgba(255,255,255,0.25);
  color: #fff; font-size: 18px; font-weight: 700;
  cursor: pointer; display: flex; align-items: center; justify-content: center;
  transition: background 0.18s;
  flex-shrink: 0;
}
.reviews-btn:hover { background: rgba(255,255,255,0.3) }
.reviews-dots { display: flex; gap: 6px }
.reviews-dot {
  width: 8px; height: 8px; border-radius: 50%;
  background: rgba(255,255,255,0.3);
  border: none; cursor: pointer; padding: 0;
  transition: background 0.18s;
}
.reviews-dot.active { background: #C95D2A }

.faux-disclosure {
  text-align: center; font-size: 8px; color: rgba(255,255,255,0.18);
  margin-top: 10px; line-height: 1.2;
}

/* section */
.people-section {
  background: #F4F0E7;
  padding: 72px 0;
}
.people-section__inner {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 64px;
  align-items: center;
}
.people-section__copy h2 { margin-bottom: 16px }
.people-section__copy p { color: #4a4a48; margin-bottom: 20px }
.people-photos {
  display: grid; grid-template-columns: 1fr 1fr;
  gap: 8px;
}
.people-photos img {
  width: 100%; aspect-ratio: 4/3;
  object-fit: cover; border-radius: 6px;
  transition: transform 0.3s;
}
.people-photos img:hover { transform: scale(1.02) }
.people-photos .span2 { grid-column: 1 / -1 }
.people-photos .span2 img { aspect-ratio: 16/7 }

/* section */
.faq-section {
  background: #fff;
  padding: 72px 0;
}
.faq-section__inner {
  display: grid;
  grid-template-columns: 1fr 1.4fr;
  gap: 64px;
  align-items: start;
}
.faq-section__aside h2 { margin-bottom: 16px }
.faq-section__aside p { color: #4a4a48; margin-bottom: 24px }
.faq-aside-phone {
  display: flex; align-items: center; gap: 10px;
  background: #193034; color: #fff;
  padding: 14px 18px; border-radius: 8px;
  text-decoration: none; font-weight: 700; font-size: 15px;
  transition: background 0.18s;
}
.faq-aside-phone:hover { background: #0f1e22; text-decoration: none; color: #fff }

.faq-list { list-style: none; padding: 0; margin: 0 }
.faq-item {
  border-bottom: 1px solid #e8e4dc;
}
.faq-item:first-child { border-top: 1px solid #e8e4dc }
.faq-item summary {
  padding: 18px 0;
  font-size: 16px; font-weight: 700; color: #193034;
  cursor: pointer;
  list-style: none;
  display: flex; justify-content: space-between; align-items: center;
  gap: 12px;
  user-select: none;
}
.faq-item summary::-webkit-details-marker { display: none }
.faq-item summary::after {
  content: '+';
  font-size: 22px; font-weight: 400; color: #C95D2A;
  flex-shrink: 0; line-height: 1;
  transition: transform 0.2s;
}
.faq-item[open] summary::after { content: '-'; }
.faq-item p {
  font-size: 15px; color: #4a4a48;
  padding: 0 0 18px; margin: 0; line-height: 1.65;
}
details { display: block }

/* FOOTER */
.fat-footer {
  background: #193034;
  color: #DCE5DF;
  padding: 64px 0 0;
}
.fat-footer__grid {
  display: grid;
  grid-template-columns: 2fr 1fr 1fr 1.2fr;
  gap: 48px;
  padding-bottom: 48px;
  border-bottom: 1px solid rgba(255,255,255,0.1);
}
.fat-footer__brand {}
.ff-brand-name { font-size: 20px; font-weight: 900; color: #fff; display: block; margin-bottom: 2px }
.ff-brand-sub { font-size: 11px; letter-spacing: 0.1em; text-transform: uppercase; color: #DCE5DF; display: block; margin-bottom: 14px }
.ff-brand-blurb { font-size: 14px; color: #DCE5DF; line-height: 1.6; margin-bottom: 20px }
.ff-phone {
  display: inline-flex; align-items: center; gap: 8px;
  background: #C95D2A; color: #fff;
  padding: 12px 18px; border-radius: 6px;
  font-weight: 700; font-size: 15px; text-decoration: none;
  transition: background 0.18s;
}
.ff-phone:hover { background: #a8471e; text-decoration: none; color: #fff }

.fat-footer__col h4 {
  font-size: 13px; font-weight: 800; letter-spacing: 0.1em;
  text-transform: uppercase; color: #fff; margin-bottom: 14px;
}
.fat-footer__col ul { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 8px }
.fat-footer__col a { font-size: 14px; color: #DCE5DF; text-decoration: none; transition: color 0.15s }
.fat-footer__col a:hover { color: #fff }

.fat-footer__contact h4 {
  font-size: 13px; font-weight: 800; letter-spacing: 0.1em;
  text-transform: uppercase; color: #fff; margin-bottom: 14px;
}
.fat-footer__contact ul { list-style: none; padding: 0; margin: 0 0 16px; display: flex; flex-direction: column; gap: 8px }
.fat-footer__contact li { font-size: 14px; color: #DCE5DF; display: flex; align-items: center; gap: 8px }
.fat-footer__contact a { color: #DCE5DF; text-decoration: none; font-size: 14px }
.fat-footer__contact a:hover { color: #fff }

.fat-footer__bottom {
  padding: 20px 0;
  display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 12px;
}
.fat-footer__bottom p { font-size: 12px; color: rgba(220,229,223,0.6); margin: 0 }
.fat-footer__bottom-links { display: flex; gap: 16px }
.fat-footer__bottom-links a { font-size: 12px; color: rgba(220,229,223,0.6); text-decoration: none }
.fat-footer__bottom-links a:hover { color: #fff }

/* MOBILE DRAWER */
.callbar {
  display: none;
  position: fixed;
  bottom: 0; left: 0; right: 0;
  z-index: 300;
  background: #193034;
  padding: 10px 16px;
  gap: 10px;
  border-top: 2px solid rgba(255,255,255,0.1);
}
.callbar a {
  flex: 1; display: flex; align-items: center; justify-content: center;
  padding: 12px; border-radius: 6px;
  font-weight: 700; font-size: 14px; text-decoration: none;
}
.callbar-call { background: #C95D2A; color: #fff }
.callbar-form { background: rgba(255,255,255,0.12); color: #F4F0E7; border: 1px solid rgba(255,255,255,0.25) }

/* section */
.sec-dark {
  background: #193034; color: #F4F0E7; padding: 64px 0;
}
.sec-dark h2, .sec-dark h3 { color: #fff }
.sec-dark p { color: #DCE5DF }
.sec-dark .eyebrow { color: #DCE5DF }

/* Area hub / area intro block */
.area-intro {
  background: #fff;
  padding: 48px 0;
}
.area-intro__inner {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 48px;
  align-items: start;
}
.area-intro h2 { margin-bottom: 12px }
.local-fact-box {
  background: #F4F0E7;
  border-left: 4px solid #C95D2A;
  border-radius: 0 8px 8px 0;
  padding: 20px 24px;
  margin-top: 24px;
}
.local-fact-box h4 { margin-bottom: 8px; color: #193034 }
.local-fact-box p { font-size: 14px; color: #4a4a48; margin: 0 }

/* Tick list */
.ticks { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 10px }
.ticks li {
  display: flex; align-items: flex-start; gap: 10px;
  font-size: 15px; color: #4a4a48; line-height: 1.5;
}
.ticks li::before {
  content: '*';
  color: #48715E; font-weight: 700; font-size: 14px;
  flex-shrink: 0; padding-top: 2px;
}
.sec-dark .ticks li { color: #DCE5DF }
.sec-dark .ticks li::before { color: #48715E }

/* Breadcrumb */
.breadcrumb {
  background: #fff; border-bottom: 1px solid #e8e4dc;
  padding: 10px 0;
}
.breadcrumb ol {
  display: flex; flex-wrap: wrap; gap: 6px;
  list-style: none; padding: 0; margin: 0;
  font-size: 13px;
}
.breadcrumb li { display: flex; align-items: center; gap: 6px; color: #888 }
.breadcrumb li::before { content: '' }
.breadcrumb li + li::before { content: '/'; color: #aaa }
.breadcrumb a { color: #48715E }

/* Inline CTA band */
.cta-band {
  background: #C95D2A; color: #fff;
  padding: 48px 0; text-align: center;
}
.cta-band h2 { color: #fff; margin-bottom: 12px }
.cta-band p { color: rgba(255,255,255,0.85); margin-bottom: 28px }
.cta-band__btns { display: flex; flex-wrap: wrap; gap: 12px; justify-content: center }
.cta-band .btn-primary { background: #193034; border-color: #193034 }
.cta-band .btn-primary:hover { background: #0f1e22; border-color: #0f1e22 }
.cta-band .btn-ghost-light { border-color: rgba(255,255,255,0.6) }

/* Service content depth */
.depth-section {
  background: #fff;
  padding: 64px 0;
}
.depth-section__inner {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 64px;
  align-items: start;
}
.depth-inner {
  display: grid;
  grid-template-columns: 2fr 1fr;
  gap: 48px;
  max-width: 1100px;
  margin: 0 auto;
  padding: 0 1.5rem;
  align-items: start;
}
.depth-body { min-width: 0 }
.depth-sidebar { min-width: 0 }
.depth-section h2 { margin-bottom: 16px }
.depth-section h3 { margin-top: 28px; margin-bottom: 8px }
.depth-section p { color: #4a4a48 }
.service-cards-mini { display: grid; gap: 12px }
.service-cards-mini h3 { margin: 0 0 8px; font-size: 15px; color: #193034 }
.mini-card {
  display: block; padding: 14px 16px;
  background: #F4F0E7; border-radius: 8px;
  text-decoration: none; color: #193034;
  transition: background 0.18s;
}
.mini-card:hover { background: #e8e2d5 }
.mini-card strong { display: block; font-size: 15px; margin-bottom: 2px }
.mini-card span { font-size: 13px; color: #555 }

/* Areas grid */
.areas-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
  gap: 8px;
  list-style: none; padding: 0; margin: 0;
}
.areas-grid a {
  display: block; padding: 12px 16px;
  background: #fff; border: 1px solid #e0dbd2;
  border-radius: 6px; font-weight: 600; font-size: 14px; color: #193034;
  text-decoration: none; text-align: center;
  transition: background 0.18s, border-color 0.18s, transform 0.15s;
}
.areas-grid a:hover {
  background: #193034; color: #F4F0E7; border-color: #193034;
  transform: translateY(-2px);
}

/* Guides / content pages */
.content-page { background: #fff; padding: 64px 0 }
.content-page__inner { max-width: 720px }
.content-page h1 { font-size: clamp(26px, 3vw, 40px) }
.content-page h2 { font-size: clamp(20px, 2vw, 28px) }
.content-page p, .content-page li { color: #4a4a48; font-size: 16px; line-height: 1.7 }
.content-page ul { padding-left: 20px; margin: 0 0 16px }
.content-page a { color: #48715E }

/* section */
.fade-in {
  opacity: 1; transform: none;
  transition: opacity 0.5s ease, transform 0.5s ease;
}
.js .fade-in:not(.visible) {
  opacity: 0; transform: translateY(20px);
}
.fade-in.visible {
  opacity: 1; transform: translateY(0);
}
@media (prefers-reduced-motion: reduce) {
  .js .fade-in:not(.visible), .fade-in { opacity: 1; transform: none; transition: none }
}

/* Card hover lift */
.lift {
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.lift:hover {
  transform: translateY(-1px);
  box-shadow: 0 2px 8px rgba(25,48,52,0.10);
}

/* RESPONSIVE */
@media (max-width: 1100px) {
  .trust-hdr__inner { gap: 12px; flex-wrap: nowrap; overflow: hidden }
  .th-stars { display: none }
  .th-phone { min-width: 0; padding: 8px 12px }
  .th-phone__number { font-size: 15px }
  .th-logo-name { font-size: 14px }
  .main-nav__inner > a:not(.nav-book) { display: none }
  .nav-hamburger { display: flex }
  .nav-book { margin-left: 0 }
  .hero__inner { grid-template-columns: 1fr; gap: 0 }
  .hero__media { display: none }
  .hero--photo { min-height: 380px }
  .hero__bg::after {
    background: linear-gradient(to bottom, rgba(29,31,30,0.58) 0%, rgba(29,31,30,0.40) 100%);
  }
  .hero__inner--overlay { padding-top: 56px; padding-bottom: 40px }
  .hero-svc__inner { grid-template-columns: 1fr; gap: 32px }
  .hero-svc__media { order: -1; max-height: 280px; overflow: hidden }
  .hero-svc__media img { max-height: 280px; width: 100%; object-fit: cover }
  .offer-form-grid { grid-template-columns: 1fr; gap: 32px }
  .spc-grid { grid-template-columns: 1fr }
  .spc-card:first-child, .spc-card:last-child { border-radius: 8px }
  .spc-card { border-radius: 8px }
  .how-section__inner { grid-template-columns: 1fr; gap: 40px }
  .people-section__inner { grid-template-columns: 1fr; gap: 40px }
  .faq-section__inner { grid-template-columns: 1fr; gap: 40px }
  .fat-footer__grid { grid-template-columns: 1fr 1fr; gap: 32px }
  .fat-footer__brand { grid-column: 1 / -1 }
  .depth-section__inner { grid-template-columns: 1fr; gap: 40px }
  .depth-inner { grid-template-columns: 1fr; gap: 32px }
  .area-intro__inner { grid-template-columns: 1fr; gap: 32px }
}

@media (max-width: 700px) {
  .btn-primary { max-width: 100%; white-space: normal; text-align: center }
  .benefits__grid { gap: 4px 16px }
  .benefits__item { white-space: normal }
  .fat-footer__grid { grid-template-columns: 1fr }
  .form-grid { grid-template-columns: 1fr }
  .form-full { grid-column: 1 }
  .trust-badges { grid-template-columns: repeat(2, 1fr) }
  .people-section__inner { grid-template-columns: minmax(0, 1fr) }
  .people-section__copy, .people-photos { min-width: 0 }
  .people-photos { grid-template-columns: minmax(0, 1fr) }
  .main-nav__inner > a:not(.nav-book) { display: none }
  .nav-book { display: none !important }
  .nav-hamburger { display: flex }
  .callbar { display: flex }
  .main-nav__inner { justify-content: flex-end }
  .main-nav {
    position: fixed;
    top: 0;
    right: 0;
    width: 0;
    height: 0;
    border: 0;
    background: transparent;
    overflow: visible;
    z-index: 210;
  }
  .main-nav__inner { min-height: 0; height: 0; padding: 0 }
  .nav-hamburger {
    position: fixed;
    top: 8px;
    right: 12px;
    z-index: 211;
    width: 40px;
    height: 40px;
    align-items: center;
    justify-content: center;
    margin: 0;
    padding: 8px;
    color: #F4F0E7;
    background: #193034;
    border: 1px solid rgba(255,255,255,0.35);
    border-radius: 5px;
  }
  .trust-hdr__inner { padding-right: 64px }
  .wrap { padding-left: 16px; padding-right: 16px }
  body { padding-bottom: 72px }
  .th-logo-tagline { display: none }
  .th-phone { min-width: 0; padding: 8px 10px; }
  .th-phone { display: none }
  .offer-card__dollar { font-size: 56px }
  .trust-hdr__inner { min-height: 56px }
  .main-nav { top: 56px }
  .reviews-track { gap: 12px }
  .review-card { flex: 0 0 280px }
}

@media (max-width: 370px) {
  .th-phone { display: none }
}

@media (max-width: 480px) {
  .hero__copy { padding-bottom: 40px }
  .hero { padding: 40px 0 0 }
  .spc-grid { grid-template-columns: 1fr }
  .benefits__grid { gap: 2px 12px; justify-content: flex-start }
  .fat-footer__grid { gap: 28px }
}



/* Guides hub cards — content pass 20260930b */
.guide-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1.25rem;margin:1.5rem 0 2rem}
.guide-card{display:block;padding:1.25rem 1.35rem;border:1px solid rgba(26,63,69,.15);border-radius:12px;background:#fff;text-decoration:none;color:inherit;transition:box-shadow .2s ease,transform .2s ease}
.guide-card:hover{box-shadow:0 8px 24px rgba(26,63,69,.12);transform:translateY(-2px)}
.guide-card h3{margin:0 0 .5rem;font-size:1.1rem;line-height:1.35}
.guide-card__blurb{margin:0 0 .75rem;font-size:.95rem;line-height:1.5;opacity:.9}
.guide-card__more{font-weight:600;font-size:.9rem;color:#1a3f45}

/* ================================================================
   FP-VAR-01 — Page-family differentiation (20260930d)
   ================================================================ */

/* Hero eyebrow — appears above H1 inside hero overlay */
.hero__eyebrow {
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: rgba(220,229,223,0.85);
  display: block;
  margin-bottom: 10px;
  text-shadow: 0 1px 6px rgba(0,0,0,0.35);
}

/* Services hub: service cards grid prioritised above offer */
.page-family-services-hub .svc-photo-section { background: #fff; border-bottom: 1px solid #e8e4dc }
.page-family-services-hub .svc-photo-section .spc-grid { gap: 8px }

/* Areas hub: city grid prioritised above offer */
.page-family-areas-hub .svc-photo-section { border-bottom: 1px solid #e8e4dc }

/* Drying: urgency accent on hero */
.page-family-svc-drying .hero { border-bottom: 3px solid #C95D2A }
.page-family-svc-drying .hero__eyebrow { color: #C95D2A; text-shadow: 0 1px 8px rgba(0,0,0,0.5) }

/* Assessment: subtle proof accent */
.page-family-svc-assessment .hero__eyebrow { color: #DCE5DF }

/* Remediation: containment accent */
.page-family-svc-remediation .hero__eyebrow { color: #DCE5DF }

/* City hub: local-first depth section emphasis */
.page-family-area-city .depth-section:first-of-type { border-top: 3px solid #48715E }

/* City-service pages: eyebrow inherits service color */
.page-family-city-service .hero__eyebrow { color: rgba(220,229,223,0.85) }

/* Guide article: editorial, no conversion chrome */
.page-family-guide-article .hero__eyebrow { color: #48715E; text-shadow: none }

/* Guides hub: quiet CTA treatment */
.page-family-guides-hub .hero__eyebrow { color: rgba(220,229,223,0.85) }

/* Contact: minimal chrome — no extra styles needed */

/* ================================================================
   FP-FORM-COUPON-01 — 716-style book form + coupon system (20260930g)
   ================================================================ */

/* ── 716-style Lead Form Card ──────────────────────────── */
.lead-form-card {
  background: #fff;
  border-radius: 14px;
  padding: 36px 32px 32px;
  box-shadow: 0 6px 32px rgba(25,48,52,0.12), 0 1px 4px rgba(0,0,0,0.06);
  max-width: 560px;
  width: 100%;
}
.lead-form-card__header {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-bottom: 6px;
}
.lead-form-card__icon {
  width: 48px; height: 48px;
  border-radius: 50%;
  background: #e8eef8;
  display: flex; align-items: center; justify-content: center;
  flex-shrink: 0;
}
.lead-form-card__icon svg {
  width: 24px; height: 24px;
  color: #2b5797;
}
.lead-form-card__title {
  font-size: clamp(20px, 2vw, 26px);
  font-weight: 800;
  color: #193034;
  margin: 0;
  line-height: 1.2;
}
.lead-form-card__sub {
  font-size: 15px;
  color: #666;
  margin: 8px 0 22px;
  line-height: 1.5;
}

.lead-form-card .field select,
.lead-form-card .field input,
.lead-form-card .field textarea {
  padding: 13px 16px;
  border: 2px solid #d0ccc5;
  border-radius: 8px;
  font-size: 16px;
  transition: border-color 0.15s, box-shadow 0.15s;
}
.lead-form-card .field select { padding-right: 36px }
.lead-form-card .field select:focus,
.lead-form-card .field input:focus,
.lead-form-card .field textarea:focus {
  border-color: #2b5797;
  box-shadow: 0 0 0 3px rgba(43,87,151,0.1);
}
.lead-form-card .field select {
  color: #555;
}

.lead-form-card .sms-optin {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  margin-top: 8px;
}
.lead-form-card .sms-optin input[type="checkbox"] {
  width: 20px; height: 20px;
  margin-top: 2px;
  flex-shrink: 0;
  accent-color: #2b5797;
}
.lead-form-card .sms-optin-label {
  font-size: 15px;
  font-weight: 600;
  color: #193034;
}
.lead-form-card .sms-fine {
  font-size: 12px;
  color: #888;
  line-height: 1.5;
  margin-top: 6px;
}
.lead-form-card .sms-fine a {
  color: #2b5797;
}

.lead-form-card .btn-book {
  display: block;
  width: 100%;
  background: #2b5797;
  color: #fff;
  border: none;
  padding: 16px 24px;
  border-radius: 8px;
  font-size: 19px;
  font-weight: 800;
  cursor: pointer;
  margin-top: 18px;
  transition: background 0.18s, transform 0.15s, box-shadow 0.18s;
  text-align: center;
  text-decoration: none;
  line-height: 1.2;
}
.lead-form-card .btn-book:hover {
  background: #1e3f6e;
  transform: translateY(-1px);
  box-shadow: 0 4px 14px rgba(43,87,151,0.3);
  text-decoration: none;
  color: #fff;
}
.lead-form-card .btn-book:active { transform: translateY(0); box-shadow: none }

/* Form placement: in-hero for home + contact */
.hero--with-form .hero__inner--overlay {
  padding-top: 56px; padding-bottom: 48px;
}
.hero--with-form .hero__inner {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 40px;
  align-items: start;
}
.hero--with-form .hero__copy {
  padding-bottom: 0;
  max-width: 560px;
}

/* In-hero coupon sits in the headline column, under the H1 and CTAs, so the
   hero ends where the form ends instead of a coupon's height further down. */
.coupon-card--hero {
  margin-top: 28px;
  max-width: 520px;
  padding: 24px 26px;
}
.coupon-card--hero .coupon-card__lines { margin-bottom: 14px }

/* In-hero: stack coupon under form so headline column is not crushed */
.hero--with-form .form-coupon-pair {
  display: grid;
  grid-template-columns: 1fr;
  gap: 16px;
  align-items: stretch;
}
.hero--with-form .form-coupon-pair .lead-form-card,
.hero--with-form .form-coupon-pair .coupon-card {
  max-width: 100%;
  width: 100%;
}

/* Form placement: after-hero conversion band */
.form-band {
  background: #f0ede6;
  padding: 56px 0;
  border-bottom: 1px solid #e0dbd2;
}
.form-band .wrap {
  display: flex;
  justify-content: center;
}
.form-band .form-coupon-pair {
  max-width: 100%;
}

/* ── Coupon Card (navy/gold dashed) ────────────────────── */
.coupon-card {
  background: linear-gradient(145deg, #0f1b3d 0%, #1a2d5a 100%);
  border-radius: 14px;
  padding: 36px 32px;
  color: #fff;
  position: relative;
  overflow: hidden;
  box-shadow: 0 6px 28px rgba(15,27,61,0.3);
  max-width: 560px;
  width: 100%;
}
.coupon-card::before {
  content: '';
  position: absolute;
  inset: 8px;
  border: 2px dashed rgba(255,255,255,0.35);
  border-radius: 10px;
  pointer-events: none;
}
.coupon-card__badge {
  display: inline-block;
  background: #b8923a;
  color: #fff;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  padding: 5px 14px;
  border-radius: 4px;
  margin-bottom: 16px;
}
.coupon-card__amount-row {
  display: flex;
  align-items: center;
  gap: 18px;
  margin-bottom: 12px;
}
.coupon-card__starburst {
  width: 80px; height: 80px;
  background: #c9a33a;
  clip-path: polygon(50% 0%, 61% 15%, 78% 5%, 75% 24%, 95% 27%, 83% 40%, 100% 50%, 83% 60%, 95% 73%, 75% 76%, 78% 95%, 61% 85%, 50% 100%, 39% 85%, 22% 95%, 25% 76%, 5% 73%, 17% 60%, 0% 50%, 17% 40%, 5% 27%, 25% 24%, 22% 5%, 39% 15%);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  flex-shrink: 0;
  color: #0f1b3d;
  line-height: 1;
}
.coupon-card__starburst-dollar {
  font-size: 28px;
  font-weight: 900;
}
.coupon-card__starburst-off {
  font-size: 13px;
  font-weight: 800;
  text-transform: uppercase;
}
.coupon-card__headline {
  font-size: clamp(28px, 3vw, 40px);
  font-weight: 900;
  line-height: 1.1;
  margin: 0;
}
.coupon-card__desc {
  font-size: 18px;
  font-weight: 700;
  margin: 0;
}
.coupon-card__lines {
  font-size: 15px;
  color: rgba(255,255,255,0.85);
  margin: 16px 0 24px;
  line-height: 1.6;
}
.coupon-card__cta {
  display: block;
  background: #c0392b;
  color: #fff;
  text-align: center;
  padding: 16px 24px;
  border-radius: 8px;
  font-size: 17px;
  font-weight: 800;
  text-decoration: none;
  transition: background 0.18s, transform 0.15s;
  cursor: pointer;
  border: none;
  width: 100%;
}
.coupon-card__cta:hover {
  background: #a93226;
  transform: translateY(-1px);
  text-decoration: none;
  color: #fff;
}
.coupon-card__fine {
  font-size: 12px;
  color: rgba(255,255,255,0.55);
  margin-top: 14px;
  text-align: center;
  line-height: 1.5;
}

/* ── Form + Coupon Pair (adjacent layout) ─────────────── */
.form-coupon-pair {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 24px;
  align-items: start;
  width: 100%;
}
.form-coupon-pair .lead-form-card,
.form-coupon-pair .coupon-card {
  max-width: 100%;
}

/* Coupon placement band — legacy class, kept harmless */
.coupon-band {
  background: #F4F0E7;
  padding: 56px 0;
}
.coupon-band .wrap {
  display: flex;
  justify-content: center;
}

/* ── Exit-Intent Popup ─────────────────────────────────── */
.exit-popup-overlay {
  position: fixed;
  inset: 0;
  z-index: 9000;
  background: rgba(0,0,0,0.55);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.25s, visibility 0.25s;
}
.exit-popup-overlay.active {
  opacity: 1;
  visibility: visible;
}
.exit-popup {
  position: relative;
  max-width: 480px;
  width: 100%;
  animation: popupSlideIn 0.3s ease forwards;
}
@keyframes popupSlideIn {
  from { transform: translateY(30px) scale(0.96); opacity: 0 }
  to { transform: translateY(0) scale(1); opacity: 1 }
}
.exit-popup .coupon-card {
  max-width: 100%;
}
.exit-popup__close {
  position: absolute;
  top: 14px;
  right: 14px;
  z-index: 10;
  width: 32px; height: 32px;
  border-radius: 50%;
  background: rgba(255,255,255,0.2);
  border: 1px solid rgba(255,255,255,0.3);
  color: #fff;
  font-size: 18px;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background 0.15s;
  line-height: 1;
}
.exit-popup__close:hover {
  background: rgba(255,255,255,0.35);
}

/* ── Responsive adjustments for form + coupon ─────────── */
@media (max-width: 1100px) {
  .hero--with-form .hero__inner {
    grid-template-columns: 1fr;
    gap: 32px;
  }
  .hero--with-form .lead-form-card,
  .hero--with-form .coupon-card {
    max-width: 100%;
  }
  /* One column: headline, then the form, then the coupon. The coupon must not
     push the form further from the top on a phone. */
  .hero--with-form .hero__copy { display: contents }
  .hero--with-form .hero__inner { gap: 0 }
  .hero--with-form .form-coupon-pair { order: 2; margin-top: 28px }
  .hero--with-form .coupon-card--hero { order: 3; margin-top: 16px }
}

@media (max-width: 900px) {
  .form-coupon-pair {
    grid-template-columns: 1fr;
    gap: 20px;
  }
}

@media (max-width: 700px) {
  .lead-form-card { padding: 28px 20px 24px }
  .lead-form-card .form-grid { grid-template-columns: 1fr }
  .lead-form-card .form-grid .form-full { grid-column: 1 }
  .coupon-card { padding: 28px 20px }
  .coupon-card__starburst { width: 64px; height: 64px }
  .coupon-card__starburst-dollar { font-size: 22px }
  .coupon-card__starburst-off { font-size: 11px }
  .coupon-card__headline { font-size: 28px }
  .form-band { padding: 40px 0 }
  .coupon-band { padding: 40px 0 }
  .form-coupon-pair { gap: 16px }
}

/* In-copy images (town pages, prompt rule: "rounded class") */
.depth-body img.rounded {
  display: block; width: 100%; height: auto;
  border-radius: 12px; margin: 24px 0;
  aspect-ratio: 3 / 2; object-fit: cover;
}
.depth-body h4 { margin-top: 20px; margin-bottom: 6px; font-size: 1.05rem }
.depth-body .related-terms { margin-top: 32px; padding-top: 24px; border-top: 1px solid #e0dbd2 }
/* Town hubs have no sidebar: centre the single copy column instead of leaving
   the right third of the page empty. */
.depth-inner:not(:has(.depth-sidebar)) { grid-template-columns: minmax(0, 780px); justify-content: center }


/* ================================================================
   lay- LAYOUT SYSTEM (docs/design/LAYOUT-SYSTEM.md, sections 3 and 5)
   Body carries .layout-<archetype> and optional data-var="a|b|c".
   Bands carry .lay-band--teal|cream|white|sage. Variation hooks:
   data-var changes the cream/white band swap, hero crop alignment,
   accent rule colour and rail side, so siblings of one archetype
   still differ. Identity (nav, footer, form card) is not touched.
   ================================================================ */
body[class*="layout-"] {
  --lay-teal: #193034; --lay-teal-d: #0f1e22; --lay-cream: #f4f0e7; --lay-white: #fff;
  --lay-sage: #48715e; --lay-terra: #c95d2a; --lay-ink: #1d1f1e; --lay-line: #e0dbd2;
  --lay-navy: #16264f; --lay-gold: #e8b93f;
  --lay-c: var(--lay-cream); --lay-w: var(--lay-white);
  --lay-rule: var(--lay-terra); --lay-hero-pos: 50% 50%; --lay-hero-align: left;
  --lay-rail-side: left; --lay-radius: 16px;
  --lay-shadow: 0 1px 2px rgba(25,48,52,.08), 0 10px 28px -12px rgba(25,48,52,.28);
  --lay-shadow-up: 0 2px 4px rgba(25,48,52,.1), 0 18px 36px -14px rgba(25,48,52,.38);
  --lay-pad: clamp(52px, 8vw, 104px);
}
body[class*="layout-"][data-var="b"] { --lay-c: var(--lay-white); --lay-w: var(--lay-cream); --lay-rule: var(--lay-sage); --lay-hero-pos: 20% 40%; --lay-rail-side: right }
body[class*="layout-"][data-var="c"] { --lay-rule: var(--lay-sage); --lay-hero-pos: 80% 60%; --lay-hero-align: center; --lay-radius: 22px }
.lay-band[data-var="a"] { --lay-rule: var(--lay-terra) }
.lay-band[data-var="b"] { --lay-rule: var(--lay-sage) }
.lay-band[data-var="c"] { --lay-rule: #d9c9a8 }

/* Bands */
.lay-band { position: relative; padding: var(--lay-pad) 0; color: var(--lay-ink) }
.lay-band--teal { background: var(--lay-teal); color: var(--lay-cream) }
.lay-band--cream { background: var(--lay-c, #f4f0e7) }
.lay-band--white { background: var(--lay-w, #fff) }
.lay-band--sage { background: var(--lay-sage); color: var(--lay-cream) }
.lay-band--teal :is(h1, h2, h3, h4), .lay-band--sage :is(h1, h2, h3, h4) { color: var(--lay-cream) }
.lay-band--teal a:not(.btn-primary):not(.btn-phone):not(.lay-link), .lay-band--sage a:not(.btn-primary):not(.btn-phone):not(.lay-link) { color: #f4f0e7; text-decoration: underline }
.lay-wrap { max-width: 1200px; margin: 0 auto; padding: 0 24px }
.lay-wrap--narrow { max-width: 780px }
.lay-head { margin: 0 0 clamp(28px, 4vw, 52px); max-width: 760px }
.lay-head--center { margin-left: auto; margin-right: auto; text-align: center }
.lay-head h2 { font-size: clamp(28px, 4vw, 52px); margin-bottom: 14px }
.lay-head h2::after { content: ""; display: block; width: 64px; height: 4px; border-radius: 4px; background: var(--lay-rule); margin-top: 18px }
.lay-head--center h2::after { margin-left: auto; margin-right: auto }
.lay-eyebrow { display: inline-block; font-size: 13px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--lay-sage); margin: 0 0 12px }
.lay-band--teal .lay-eyebrow, .lay-band--sage .lay-eyebrow { color: #e9c9b4 }
.lay-lede { font-size: clamp(18px, 1.6vw, 21px); line-height: 1.55; max-width: 62ch; opacity: .92 }

/* Cards, strips, rail primitives */
.lay-card { background: #fff; color: var(--lay-ink); border: 1px solid var(--lay-line); border-top: 4px solid var(--lay-rule); border-radius: var(--lay-radius); padding: clamp(22px, 2.6vw, 34px); box-shadow: var(--lay-shadow); transition: transform .25s ease, box-shadow .25s ease }
.lay-card:hover { transform: translateY(-5px); box-shadow: var(--lay-shadow-up) }
.lay-card h3 { font-size: clamp(19px, 1.8vw, 24px) }
.lay-card p { color: #3b4442 }
.lay-band--teal .lay-card, .lay-band--sage .lay-card { background: rgba(255,255,255,.07); color: var(--lay-cream); border-color: rgba(244,240,231,.18); box-shadow: none }
.lay-band--teal .lay-card p, .lay-band--sage .lay-card p { color: rgba(244,240,231,.88) }
.lay-grid { display: grid; gap: clamp(16px, 2.2vw, 28px); grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)) }
.lay-grid--3 { grid-template-columns: repeat(3, 1fr) }
.lay-grid--4 { grid-template-columns: repeat(4, 1fr) }
.lay-link { font-weight: 700; color: var(--lay-terra); display: inline-flex; gap: 6px; align-items: center; margin-top: 12px }
.lay-link::after { content: "\2192"; transition: transform .2s ease }
.lay-link:hover::after { transform: translateX(4px) }
.lay-band--teal .lay-link, .lay-band--sage .lay-link { color: #f6c9ad }
.lay-strip { display: grid; gap: 0; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); border-radius: var(--lay-radius); overflow: hidden; box-shadow: var(--lay-shadow) }
.lay-strip__item { padding: 22px 26px; display: flex; gap: 14px; align-items: flex-start; border-left: 1px solid rgba(128,128,128,.22) }
.lay-strip__item:first-child { border-left: 0 }
.lay-icon { flex: 0 0 auto; width: 40px; height: 40px; border-radius: 12px; display: grid; place-items: center; background: var(--lay-terra); color: #fff }
.lay-icon svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round }
.lay-label { display: block; font-weight: 700; font-size: 13px; letter-spacing: .1em; text-transform: uppercase; margin-bottom: 4px }
.lay-source { font-size: 13px; opacity: .75 }
.lay-rail { position: relative; display: grid; gap: 26px; padding-left: 44px; margin: 0; list-style: none }
.lay-rail::before { content: ""; position: absolute; left: 13px; top: 6px; bottom: 6px; width: 4px; border-radius: 4px; background: var(--lay-sage) }
.lay-rail__node { position: absolute; left: -44px; top: 20px; width: 30px; height: 30px; border-radius: 50%; background: var(--lay-terra); border: 5px solid var(--lay-w, #fff); box-shadow: 0 0 0 2px var(--lay-terra) }
.lay-band--teal .lay-rail__node { border-color: var(--lay-teal) }
.lay-rail > li, .lay-rail > .lay-step { position: relative; list-style: none }
.lay-see { margin-top: 12px; padding: 10px 14px; border-radius: 10px; background: rgba(72,113,94,.12); font-size: 15px }
.lay-see b { color: var(--lay-sage) }
.lay-band--teal .lay-see { background: rgba(255,255,255,.1) }
.lay-band--teal .lay-see b { color: #bfe0cf }
.lay-num { font-family: "Source Serif 4", Georgia, serif; font-weight: 700; font-size: clamp(44px, 6vw, 72px); line-height: 1; color: var(--lay-terra); display: block; margin-bottom: 8px }
.lay-chips { display: flex; flex-wrap: wrap; gap: 10px; list-style: none; margin: 0; padding: 0 }
.lay-chip { display: inline-block; padding: 10px 18px; border-radius: 999px; background: #fff; border: 1px solid var(--lay-line); color: var(--lay-teal); font-weight: 600; text-decoration: none; transition: transform .2s ease, background .2s ease, color .2s ease }
.lay-chip:hover { background: var(--lay-teal); color: #fff; transform: translateY(-3px); text-decoration: none }

/* Hero treatments, per archetype (applied to the existing .hero) */
.layout-emergency-first .hero { background: var(--lay-teal); background-image: none; color: var(--lay-cream) }
.layout-emergency-first .hero::before, .layout-emergency-first .hero::after { background: none; opacity: 0 }
.layout-emergency-first .hero h1 { font-size: clamp(34px, 5vw, 66px); color: var(--lay-cream) }
.layout-emergency-first .hero .btn-phone, .layout-emergency-first .hero .hero-phone { font-size: clamp(26px, 4vw, 48px); font-weight: 800; letter-spacing: -.01em }
.layout-process-timeline .hero, .layout-triage .hero { background: var(--lay-c); background-image: none; color: var(--lay-ink) }
.layout-process-timeline .hero::before, .layout-process-timeline .hero::after, .layout-triage .hero::before, .layout-triage .hero::after { opacity: 0; background: none }
.layout-process-timeline .hero h1, .layout-triage .hero h1 { color: var(--lay-teal) }
.layout-process-timeline .hero-media img, .layout-process-timeline .hero img { border-radius: 24px; box-shadow: var(--lay-shadow-up); object-position: var(--lay-hero-pos) }
.layout-comparison .hero { background: var(--lay-teal); background-image: none; color: var(--lay-cream); text-align: center }
.layout-comparison .hero::before, .layout-comparison .hero::after { opacity: 0; background: none }
.layout-comparison .hero h1 { color: var(--lay-cream); margin-left: auto; margin-right: auto; max-width: 20ch }
.layout-local-story .hero { background-position: var(--lay-hero-pos); background-size: cover; position: relative; padding-bottom: clamp(70px, 10vw, 130px) }
.layout-local-story .hero h1 { font-size: clamp(36px, 5.4vw, 70px) }
.lay-caption { position: relative; z-index: 2; max-width: 560px; margin: -64px auto 0 max(24px, calc((100vw - 1200px) / 2 + 24px)); background: var(--lay-cream); color: var(--lay-ink); padding: 26px 30px; border-radius: var(--lay-radius); border-left: 6px solid var(--lay-rule); box-shadow: var(--lay-shadow-up) }
.lay-caption .lay-eyebrow { color: var(--lay-terra) }
.layout-editorial-guide .hero, .layout-editorial-guide .guide-hero { background: var(--lay-c); background-image: none; color: var(--lay-ink); text-align: var(--lay-hero-align) }
.layout-editorial-guide h1 { font-size: clamp(34px, 4.6vw, 56px); max-width: 22ch; color: var(--lay-teal) }
.layout-editorial-guide .hero-photo, .layout-editorial-guide .hero img { display: none }
.layout-emergency-first .lay-head h2::after { background: var(--lay-terra) }
.layout-comparison .lay-head h2::after { width: 96px }
.layout-local-story .lay-head h2 { font-size: clamp(30px, 4.4vw, 58px) }
.layout-process-timeline .lay-band--white { border-top: 1px solid var(--lay-line) }
.layout-emergency-first .lay-card { border-top-width: 6px }
.layout-editorial-guide .lay-band { padding: clamp(40px, 6vw, 76px) 0 }

/* 1 first-hour-checklist */
.lay-checklist { display: grid; gap: 18px; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); list-style: none; margin: 0; padding: 0 }
.lay-checklist > li, .lay-checklist > .lay-step { position: relative }
.lay-checklist .lay-card { height: 100% }
.lay-stop { margin-top: 28px; padding: 18px 22px; border-radius: 12px; background: #fff; border-left: 6px solid var(--lay-terra); font-weight: 600 }
/* 2 fact-strip / local-fact-strip */
.lay-band--teal .lay-strip { background: rgba(255,255,255,.06); box-shadow: none; border: 1px solid rgba(244,240,231,.16) }
.lay-band--white .lay-strip, .lay-band--cream .lay-strip { background: var(--lay-teal); color: var(--lay-cream) }
/* 3 guarantee-strip */
.lay-guarantee { display: grid; grid-template-columns: auto 1fr; gap: clamp(20px, 4vw, 48px); align-items: center; max-width: 900px; margin: 0 auto }
.lay-guarantee--noseal { grid-template-columns: 1fr; text-align: center }
.lay-guarantee__seal { width: clamp(110px, 14vw, 156px); height: auto; filter: drop-shadow(0 8px 14px rgba(22,38,79,.35)); transition: transform .3s ease }
.lay-guarantee:hover .lay-guarantee__seal { transform: rotate(-4deg) scale(1.04) }
.lay-guarantee__h { font-family: "Source Serif 4", Georgia, serif; font-weight: 700; font-size: clamp(28px, 4.4vw, 52px); line-height: 1.05; margin: 0 0 8px; color: inherit }
.lay-guarantee__t { font-size: clamp(19px, 2vw, 26px); margin: 0; font-style: italic }
.lay-band--cream .lay-guarantee__h, .lay-band--white .lay-guarantee__h { color: var(--lay-navy) }
/* 4 process-timeline */
.lay-timeline { max-width: 900px; margin: 0 auto }
@media (min-width: 900px) {
  .lay-timeline--full { max-width: 1100px }
  .lay-timeline--full .lay-rail { padding-left: 0; gap: 0 }
  .lay-timeline--full .lay-rail::before { left: 50%; transform: translateX(-50%) }
  .lay-timeline--full .lay-rail > li, .lay-timeline--full .lay-rail > .lay-step { width: 50%; padding: 0 48px 36px 0; margin-left: 0 }
  .lay-timeline--full .lay-rail > li:nth-child(even), .lay-timeline--full .lay-rail > .lay-step:nth-child(even) { margin-left: 50%; padding: 0 0 36px 48px }
  .lay-timeline--full .lay-rail__node { left: auto; right: -15px; top: 22px }
  .lay-timeline--full .lay-rail > li:nth-child(even) .lay-rail__node, .lay-timeline--full .lay-rail > .lay-step:nth-child(even) .lay-rail__node { right: auto; left: -15px }
  body[data-var="b"] .lay-timeline--full .lay-rail > li:nth-child(odd), body[data-var="b"] .lay-timeline--full .lay-rail > .lay-step:nth-child(odd) { margin-left: 50%; padding: 0 0 36px 48px }
  body[data-var="b"] .lay-timeline--full .lay-rail > li:nth-child(even), body[data-var="b"] .lay-timeline--full .lay-rail > .lay-step:nth-child(even) { margin-left: 0; padding: 0 48px 36px 0 }
  body[data-var="b"] .lay-timeline--full .lay-rail > li:nth-child(odd) .lay-rail__node, body[data-var="b"] .lay-timeline--full .lay-rail > .lay-step:nth-child(odd) .lay-rail__node { right: auto; left: -15px }
  body[data-var="b"] .lay-timeline--full .lay-rail > li:nth-child(even) .lay-rail__node, body[data-var="b"] .lay-timeline--full .lay-rail > .lay-step:nth-child(even) .lay-rail__node { left: auto; right: -15px }
}
.lay-timeline--compact .lay-rail { gap: 14px }
.lay-timeline--compact .lay-card { padding: 16px 22px }
/* 5 compare-table */
.lay-compare { width: 100%; border-collapse: separate; border-spacing: 0; background: #fff; border-radius: var(--lay-radius); overflow: hidden; box-shadow: var(--lay-shadow) }
.lay-compare th, .lay-compare td { padding: 16px 20px; text-align: left; border-bottom: 1px solid var(--lay-line); vertical-align: top }
.lay-compare thead th { background: var(--lay-teal); color: var(--lay-cream); font-size: 17px }
.lay-compare th.is-rec { border-top: 5px solid var(--lay-terra) }
.lay-compare tbody tr:nth-child(odd) { background: var(--lay-cream) }
.lay-compare tbody th { font-weight: 700; color: var(--lay-teal); width: 26% }
.lay-compare .lay-yes, .lay-compare .lay-no { display: inline-block; width: 22px; height: 22px; vertical-align: -5px; margin-right: 8px }
.lay-compare .lay-yes { color: var(--lay-sage) }
.lay-compare .lay-no { color: #a33b3b }
.lay-compare tbody tr { transition: background .2s }
.lay-compare tbody tr:hover { background: #e7efe9 }
@media (max-width: 719px) {
  .lay-compare, .lay-compare thead, .lay-compare tbody, .lay-compare tr, .lay-compare th, .lay-compare td { display: block; width: 100% }
  .lay-compare thead { position: absolute; left: -9999px }
  .lay-compare tbody tr { margin-bottom: 14px; border-radius: 12px; overflow: hidden; border: 1px solid var(--lay-line) }
  .lay-compare td[data-col]::before { content: attr(data-col) ": "; font-weight: 700; color: var(--lay-sage) }
}
/* 6 symptom-cards and answer rows */
.lay-symptoms { display: grid; gap: 20px; grid-template-columns: repeat(auto-fit, minmax(min(100%, 230px), 1fr)) }
.lay-symptom { display: flex; flex-direction: column; min-height: 280px; text-decoration: none; color: inherit }
.lay-symptom:hover { text-decoration: none }
.lay-symptom .lay-icon { width: 56px; height: 56px; border-radius: 16px; margin-bottom: 18px }
.lay-symptom .lay-link { margin-top: auto; padding-top: 14px }
.lay-answers { display: grid; gap: 28px; grid-template-columns: 1fr 1fr; align-items: start }
.lay-answers__next { padding: 22px 26px; border-radius: var(--lay-radius); background: rgba(72,113,94,.12); border-left: 5px solid var(--lay-sage) }
/* 7 story-block */
.lay-story { display: grid; gap: clamp(24px, 4vw, 56px); grid-template-columns: 1.15fr .85fr; align-items: center }
.lay-story--flip { direction: rtl }
.lay-story--flip > * { direction: ltr }
.lay-story p:first-of-type::first-line { font-size: 1.25em; font-weight: 600; color: var(--lay-teal) }
.lay-story img { border-radius: var(--lay-radius); box-shadow: var(--lay-shadow-up); object-fit: cover; width: 100%; object-position: var(--lay-hero-pos) }
.lay-pull { margin: 6px 0 0; padding: 18px 0 18px 26px; border-left: 5px solid var(--lay-terra); font-family: "Source Serif 4", Georgia, serif; font-size: clamp(22px, 2.6vw, 32px); line-height: 1.25; font-weight: 600; color: var(--lay-teal) }
/* 8 sticky-call-bar (mobile only) */
.lay-callbar { display: none }
@media (max-width: 767px) {
  .lay-callbar { position: fixed; left: 0; right: 0; bottom: 0; z-index: 90; display: flex; gap: 10px; padding: 10px 14px calc(10px + env(safe-area-inset-bottom)); background: var(--lay-teal-d); box-shadow: 0 -8px 24px rgba(0,0,0,.28) }
  .lay-callbar a { flex: 1; text-align: center; padding: 14px; border-radius: 12px; font-weight: 800; text-decoration: none; color: #fff; background: var(--lay-terra) }
  .lay-callbar a + a { background: transparent; border: 2px solid var(--lay-cream); color: var(--lay-cream) }
  body.layout-emergency-first { padding-bottom: 76px }
}
.layout-editorial-guide .lay-callbar { display: none }
/* 9 faq-compact / faq-accordion / faq-split */
.lay-faq { max-width: 860px; margin: 0 auto; display: grid; gap: 12px }
.lay-faq details { background: var(--lay-teal); color: var(--lay-cream); border-radius: 14px; overflow: hidden; transition: box-shadow .25s ease, transform .25s ease }
.lay-faq details:hover { transform: translateY(-2px); box-shadow: var(--lay-shadow) }
.lay-faq summary { cursor: pointer; list-style: none; padding: 18px 56px 18px 22px; font-weight: 700; font-size: 18px; position: relative }
.lay-faq summary::-webkit-details-marker { display: none }
.lay-faq summary::after { content: "+"; position: absolute; right: 22px; top: 50%; transform: translateY(-50%); font-size: 28px; color: var(--lay-gold) }
.lay-faq details[open] summary::after { content: "\2212" }
.lay-faq .lay-faq__a { padding: 0 22px 20px; color: rgba(244,240,231,.92) }
.lay-faq--compact summary { padding: 12px 52px 12px 18px; font-size: 16px }
.lay-faqsplit { display: grid; gap: 32px; grid-template-columns: 1fr 1fr; align-items: start }
.lay-faqsplit__panel { position: sticky; top: 110px; background: #fff; border: 1px solid var(--lay-line); border-top: 5px solid var(--lay-rule); border-radius: var(--lay-radius); padding: 28px; box-shadow: var(--lay-shadow); min-height: 200px }
.lay-faqsplit__q { display: block; width: 100%; text-align: left; font: inherit; font-weight: 700; padding: 16px 20px; margin: 0 0 10px; border: 1px solid var(--lay-line); border-radius: 12px; background: #fff; color: var(--lay-teal); cursor: pointer; transition: background .2s, transform .2s }
.lay-faqsplit__q:hover, .lay-faqsplit__q[aria-expanded="true"] { background: var(--lay-teal); color: var(--lay-cream); transform: translateX(4px) }
/* 10 toc-rail */
.lay-toc { font-size: 15px }
.lay-toc ol { margin: 0; padding: 0; list-style: none; border-left: 3px solid var(--lay-line) }
.lay-toc a { display: block; padding: 7px 0 7px 16px; margin-left: -3px; border-left: 3px solid transparent; color: var(--lay-teal) }
.lay-toc a:hover { border-left-color: var(--lay-terra); text-decoration: none }
.lay-toc summary { cursor: pointer; font-weight: 700; padding: 12px 16px; background: #fff; border-radius: 12px; border: 1px solid var(--lay-line) }
@media (min-width: 1000px) { .lay-toc { position: sticky; top: 110px; align-self: start } .lay-toc summary { display: none } }
.lay-article { display: grid; gap: 48px; grid-template-columns: 220px minmax(0, 680px); justify-content: center }
@media (max-width: 999px) { .lay-article { grid-template-columns: minmax(0, 680px) } }
.layout-editorial-guide .lay-article p { line-height: 1.8; font-size: 18.5px }
.lay-short { background: #fff; border-left: 6px solid var(--lay-sage); border-radius: 0 12px 12px 0; padding: 20px 24px; margin: 0 0 32px; box-shadow: var(--lay-shadow) }
/* 11 neighbors-list, related chips */
.lay-band--teal .lay-chip, .lay-band--sage .lay-chip { background: rgba(255,255,255,.1); color: var(--lay-cream); border-color: rgba(244,240,231,.25) }
/* 12 proof-split */
.lay-split { display: grid; gap: clamp(18px, 3vw, 36px); grid-template-columns: 1fr 1fr }
.lay-split h3 { font-size: clamp(20px, 2vw, 26px); margin-bottom: 14px }
.lay-split ul { list-style: none; display: grid; gap: 10px }
.lay-split li { position: relative; padding-left: 30px }
.lay-split li::before { content: ""; position: absolute; left: 0; top: .45em; width: 16px; height: 16px; border-radius: 50%; background: var(--lay-sage) }
.lay-split .lay-card:last-child li::before { background: var(--lay-terra) }
/* 13 decision-cards, 14 scope-cards */
.lay-decision .lay-if { font-family: "Source Serif 4", Georgia, serif; font-size: clamp(20px, 2vw, 26px); font-weight: 600; color: var(--lay-teal); margin: 0 0 10px; line-height: 1.2 }
/* cta-band shared by every archetype */
.lay-cta { text-align: center }
.lay-cta h2 { font-size: clamp(30px, 4.6vw, 58px); margin-bottom: 14px }
.lay-cta p { max-width: 56ch; margin: 0 auto 26px; font-size: 19px }
.lay-cta .btn-primary { font-size: 19px; padding: 16px 34px }

/* Motion, responsive */
.lay-rise { animation: lay-rise .7s cubic-bezier(.2,.7,.2,1) both }
@keyframes lay-rise { from { opacity: 0; transform: translateY(18px) } to { opacity: 1; transform: none } }
@media (max-width: 1023px) { .lay-grid--4, .lay-grid--3 { grid-template-columns: repeat(2, 1fr) } }
@media (max-width: 767px) {
  .lay-grid--3, .lay-grid--4, .lay-split, .lay-story, .lay-answers, .lay-faqsplit { grid-template-columns: 1fr }
  .lay-symptoms { grid-template-columns: repeat(auto-fit, minmax(min(100%, 150px), 1fr)); gap: 12px }
  .lay-symptom { min-height: 0 }
  .lay-faqsplit__panel { position: static }
  .lay-guarantee { grid-template-columns: 1fr; text-align: center; justify-items: center }
  .lay-caption { margin: -32px 16px 0 }
  .lay-strip { grid-auto-flow: column; grid-auto-columns: 78%; grid-template-columns: none; overflow-x: auto; scroll-snap-type: x mandatory }
  .lay-strip__item { scroll-snap-align: start }
  .lay-rail { padding-left: 40px }
  .lay-story--flip { direction: ltr }
}
@media (prefers-reduced-motion: reduce) {
  .lay-card, .lay-chip, .lay-faq details, .lay-guarantee__seal, .lay-faqsplit__q, .lay-compare tbody tr, .lay-link::after { transition: none }
  .lay-card:hover, .lay-chip:hover, .lay-faq details:hover, .lay-guarantee:hover .lay-guarantee__seal { transform: none }
  .lay-rise { animation: none }
}

/* ---- split sections, cards, guide bands (was lay2.css) ---- */
/* lay2.css: split-section layer on top of main.css lay- (pilot only; merge into main.css when approved).
   Needs: tools/blocks split-section, sidebar-card, stat-row, pull-quote. Tokens come from body[class*="layout-"]. */

/* prose inside bands */
.lay-prose { min-width: 0 }
.lay-prose p { color: #3b4442; max-width: 66ch; line-height: 1.7 }
.lay-band--teal .lay-prose p, .lay-band--sage .lay-prose p { color: rgba(244,240,231,.9) }
.lay-prose h3 { margin-top: 26px }
.lay-prose img.rounded { margin: 20px 0 }
.lay-intro { margin-top: 14px }
.lay-intro p { font-size: 1.05rem }
.lay-band .btn-primary { display: inline-block }

/* split section */
.lay2-sec { padding: clamp(48px, 7vw, 96px) 0 }
.lay2-split { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, .8fr); gap: clamp(28px, 5vw, 76px); align-items: start }
.lay2-split.is-flip .lay2-txt { order: 2 }
.lay2-split.is-flip .lay2-side { order: 1 }
.lay2-side { position: sticky; top: 92px; align-self: start; display: grid; gap: 18px }
.lay2-side img { width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--lay-radius); box-shadow: var(--lay-shadow-up); margin: 0 }
.lay2-sec .lay-head { margin-bottom: 18px }
.lay2-sec .lay-head h2 { font-size: clamp(26px, 3.2vw, 42px) }

/* sidebar card */
.lay2-card { background: #fff; color: var(--lay-ink); border: 1px solid var(--lay-line); border-top: 6px solid var(--lay-rule); border-radius: var(--lay-radius); padding: clamp(22px, 2.6vw, 32px); box-shadow: var(--lay-shadow-up) }
.lay2-card__t { font-family: "Source Serif 4", Georgia, serif; font-weight: 700; font-size: clamp(20px, 2vw, 26px); line-height: 1.2; color: var(--lay-teal); margin: 0 0 10px }
.lay2-card p { color: #3b4442 }
.lay2-list { list-style: none; margin: 0 0 18px; padding: 0; display: grid; gap: 0; border-top: 1px solid var(--lay-line) }
.lay2-list li { border-bottom: 1px solid var(--lay-line) }
.lay2-list a { display: block; padding: 11px 0 11px 20px; position: relative; color: var(--lay-teal); font-weight: 600; text-decoration: none }
.lay2-list a::before { content: ""; position: absolute; left: 0; top: 50%; width: 9px; height: 9px; margin-top: -4px; border-radius: 50%; background: var(--lay-terra) }
.lay2-list a:hover { color: var(--lay-terra) }
.lay2-card__cta { display: block; text-align: center; margin-top: 6px }
.lay2-card__phone { display: block; text-align: center; margin-top: 12px; font-weight: 700; color: var(--lay-teal); text-decoration: none }

/* stat + pull quote */
.lay2-stat { background: var(--lay-teal); color: var(--lay-cream); border-radius: var(--lay-radius); padding: clamp(24px, 3vw, 40px); box-shadow: var(--lay-shadow-up) }
.lay2-stat__v { display: block; font-family: "Source Serif 4", Georgia, serif; font-weight: 700; font-size: clamp(44px, 6vw, 76px); line-height: 1; color: #f6c9ad; margin-bottom: 14px }
.lay2-stat p { color: rgba(244,240,231,.92); margin: 0; font-size: 1.02rem }
.lay-band--teal .lay2-stat { background: rgba(255,255,255,.08); border: 1px solid rgba(244,240,231,.2); box-shadow: none }
.lay2-pull { margin: 0 }
.lay2-pull .lay-pull { margin: 0 }
.lay-band--teal .lay-pull, .lay-band--sage .lay-pull { color: var(--lay-cream) }

/* accordions for secondary detail */
.lay2-acc { display: grid; gap: 12px; margin-top: 22px }
.lay2-acc__i { background: #fff; border: 1px solid var(--lay-line); border-left: 5px solid var(--lay-rule); border-radius: 14px; overflow: hidden }
.lay2-acc__i summary { cursor: pointer; list-style: none; padding: 16px 52px 16px 20px; position: relative; font-weight: 700; color: var(--lay-teal) }
.lay2-acc__i summary::-webkit-details-marker { display: none }
.lay2-acc__i summary::after { content: "+"; position: absolute; right: 20px; top: 50%; transform: translateY(-50%); font-size: 26px; color: var(--lay-terra) }
.lay2-acc__i[open] summary::after { content: "\2212" }
.lay2-acc__i summary h3 { display: inline; margin: 0; font-size: 1.08rem; font-family: "Source Sans 3", Arial, sans-serif; color: inherit }
.lay2-acc__b { padding: 0 20px 18px }
.lay2-acc__b p { color: #3b4442 }
.lay2-acc__b img.rounded { margin: 14px 0 }
.lay-band--teal .lay2-acc__i { background: rgba(255,255,255,.07); border-color: rgba(244,240,231,.2) }
.lay-band--teal .lay2-acc__i summary, .lay-band--teal .lay2-acc__b p { color: var(--lay-cream) }
.lay2-more { margin-top: 12px }

/* hero treatments need the photo layer out of the way on flat-colour archetypes */
.layout-emergency-first .hero__bg, .layout-comparison .hero__bg, .layout-triage .hero__bg, .layout-editorial-guide .hero__bg { display: none }
.layout-emergency-first .hero__lead, .layout-comparison .hero__lead { color: #dce5df }
.layout-comparison .hero__actions { justify-content: center }
.layout-comparison .hero__copy { max-width: 880px; margin: 0 auto; text-align: center }
.layout-triage .hero__lead, .layout-process-timeline .hero__lead { color: #3b4442; text-shadow: none }
.layout-triage .hero__copy h1, .layout-process-timeline .hero__copy h1 { text-shadow: none }
.layout-triage .hero__eyebrow, .layout-process-timeline .hero__eyebrow { color: var(--lay-sage); text-shadow: none }
.layout-triage .hero .btn-ghost-light, .layout-process-timeline .hero .btn-ghost-light { color: var(--lay-teal); border-color: var(--lay-teal) }
.layout-process-timeline .hero--photo .hero__bg { display: block; position: relative }
.layout-process-timeline .hero--photo .hero__bg::after { display: none }
/* hero geometry fix (cssFix): .hero--photo is a flex row aligned to flex-end, which left the in-flow
   photo bottom-aligned beside a squeezed copy column. Make process-timeline a true two-column split
   (photo left, full height) and keep the copy a single full-width column on both flat archetypes. */
.layout-process-timeline .hero--photo { display: grid; padding: 0; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); align-items: stretch; min-height: 0 }
.layout-process-timeline .hero--photo .hero__bg { grid-column: 1; grid-row: 1; inset: auto; min-height: 380px }
.layout-process-timeline .hero--photo .hero__bg picture, .layout-process-timeline .hero--photo .hero__bg img { display: block; width: 100%; height: 100%; object-fit: cover; border-radius: 0; box-shadow: none }
.layout-process-timeline .hero--photo .hero__inner { grid-column: 2; grid-row: 1; align-self: center; max-width: none; margin: 0; padding: clamp(32px, 5vw, 72px) clamp(24px, 4vw, 64px) }
.layout-process-timeline .hero__inner, .layout-comparison .hero__inner { display: block }
.layout-comparison .hero--photo { align-items: center }
.layout-comparison .hero--photo .hero__inner { padding-top: clamp(40px, 6vw, 72px); padding-bottom: clamp(40px, 6vw, 72px) }
@media (max-width: 860px) {
  .layout-process-timeline .hero--photo { grid-template-columns: minmax(0, 1fr) }
  .layout-process-timeline .hero--photo .hero__bg { grid-row: 1; min-height: 0; height: clamp(200px, 56vw, 260px) }
  .layout-process-timeline .hero--photo .hero__inner { grid-column: 1; grid-row: 2; padding: 28px 16px 36px }
}

/* local-story caption card */
.lay-caption__lead { margin: 0; color: #3b4442; text-shadow: none }

/* guide */
.lay-guide-hero { background: var(--lay-c); padding: clamp(44px, 7vw, 88px) 0 clamp(24px, 4vw, 44px) }
.lay-guide-hero .guide-h1 { color: var(--lay-teal) }
.lay-prose-col { min-width: 0 }

@media (max-width: 899px) {
  .lay2-split { grid-template-columns: 1fr }
  .lay2-split.is-flip .lay2-txt, .lay2-split.is-flip .lay2-side { order: 0 }
  .lay2-side { position: static }
}


/* text variant: a section with no photo has no media column and no aside, only a single reading column */
.lay2-solo { max-width: 860px; margin: 0 auto }
.lay2-solo .lay-prose p { max-width: none }
.lay-story--solo { grid-template-columns: minmax(0, 860px); justify-content: center }

/* callouts that break up running text (pull quote, stat, cta card), inline in the column */
.lay-prose .lay2-pull, .lay-prose .lay2-stats, .lay-prose .lay2-card { margin: 30px 0 }
.lay-prose .lay2-pull .lay-pull { font-size: clamp(20px, 2.2vw, 28px) }
.lay2-stat { display: flex; flex-wrap: wrap; gap: 6px 26px; align-items: center }
.lay2-stat p { flex: 1 1 220px }
.lay-prose .lay2-stat__v { margin: 0; font-size: clamp(38px, 5vw, 60px) }
.lay-prose .lay2-stat p { max-width: none; color: rgba(244, 240, 231, .94) }
.lay-prose .lay2-card p { max-width: none }

/* mirror a frame two-column when the page needs sides to alternate */
.lay-flip { direction: rtl }
.lay-flip > * { direction: ltr }
.lay-guarantee-panel, .lay-cta-panel, .lay-fact-strip { min-width: 0 }

/* within-archetype variation: data-var on the body, so two pages of one archetype differ in more than colour */
body[data-var="b"] .lay2-split { grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr) }
body[data-var="b"] .lay2-side img { aspect-ratio: 3 / 4 }
body[data-var="b"] .lay-card { border-top-width: 1px; border-left: 7px solid var(--lay-rule); border-radius: 6px }
body[data-var="b"] .lay2-acc__i { border-radius: 4px; border-left-width: 1px; border-top: 5px solid var(--lay-rule) }
body[data-var="b"] .lay-head h2::after { width: 100%; max-width: 120px; height: 2px }
body[data-var="c"] .lay2-sec .lay-head, body[data-var="c"] .lay-head { margin-left: auto; margin-right: auto; text-align: center }
body[data-var="c"] .lay-head h2::after { margin-left: auto; margin-right: auto }
body[data-var="c"] .lay2-split { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) }
body[data-var="c"] .lay2-side img { aspect-ratio: 1 / 1; border-radius: 50% 50% var(--lay-radius) var(--lay-radius) }
body[data-var="c"] .lay-card { border-top-width: 0; border-radius: 28px; box-shadow: 0 10px 30px -14px rgba(25, 48, 52, .35) }
body[data-var="c"] .lay2-solo { max-width: 760px }
body[data-var="c"] .lay2-acc__i { border-radius: 24px; border-left-width: 1px }
body[data-var="c"] .lay-prose .lay2-pull { text-align: center }
body[data-var="c"] .lay-prose .lay2-pull .lay-pull { border-left: 0; border-top: 4px solid var(--lay-rule); padding: 18px 0 0 }

/* guide: Sources band (fact-layout) and the dark Related band, which had no CSS */
.layout-editorial-guide .head { margin-bottom: clamp(22px, 3vw, 38px) }
.layout-editorial-guide .pill { display: inline-block; font-size: 12px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--lay-sage); border: 1px solid currentColor; border-radius: 999px; padding: 5px 14px; margin: 0 0 14px }
.layout-editorial-guide .sec-dark .pill { color: #e9c9b4 }
.fact-layout { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: clamp(24px, 4vw, 56px); align-items: start }
.layout-editorial-guide .fact-media { display: grid; gap: 16px; position: sticky; top: 92px }
.layout-editorial-guide .photo-frame { border-radius: var(--lay-radius); overflow: hidden; box-shadow: var(--lay-shadow) }
.layout-editorial-guide .fact-photo { display: block; width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover }
.layout-editorial-guide .facts-grid { display: grid; gap: 16px; grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr)) }
.layout-editorial-guide .factbox { background: #fff; border: 1px solid var(--lay-line); border-left: 5px solid var(--lay-rule); border-radius: 14px; padding: 20px 22px; box-shadow: var(--lay-shadow) }
.layout-editorial-guide .factbox p { color: #3b4442; margin: 0 0 12px; line-height: 1.55 }
.layout-editorial-guide .factbox .src { margin: 0; font-size: .86rem; color: #566260 }
.layout-editorial-guide .factbox .src a { color: var(--lay-teal); text-decoration: underline }
.layout-editorial-guide .sec-dark .areas { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr)) }
.layout-editorial-guide .sec-dark .areas a { display: block; position: relative; padding: 16px 20px 16px 50px; border: 1px solid rgba(244, 240, 231, .3); border-radius: 14px; background: rgba(255, 255, 255, .07); color: #f4f0e7; font-weight: 700; text-decoration: none }
.layout-editorial-guide .sec-dark .areas a::before { content: ""; position: absolute; left: 22px; top: 50%; width: 10px; height: 10px; margin-top: -5px; border-radius: 50%; background: #e0894f }
.layout-editorial-guide .sec-dark .areas a:hover { background: rgba(255, 255, 255, .16) }
@media (max-width: 899px) {
  .fact-layout { grid-template-columns: 1fr }
  .layout-editorial-guide .fact-media { position: static; grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr)) }
}

/* 320 safety: cards and rail items may shrink, long words wrap, copy images never exceed the card */
.lay-rail li, .lay-rail .lay-step, .lay-card, .lay2-acc__i { min-width: 0 }
.lay-card, .lay2-acc__b { overflow-wrap: anywhere }
.lay-card img, .lay2-acc__b img, .lay-prose img { max-width: 100%; height: auto }

/* css-fix-2: contrast on dark cards, full-width collapse below 900px, capped guide photo */
.lay-band--teal .ticks li, .lay-band--sage .ticks li, .lay-card .ticks li { color: rgba(244, 240, 231, .94) }
.lay-band--white .lay-card .ticks li, .lay-band--cream .lay-card .ticks li { color: var(--lay-ink) }
.lay-band--teal .lay-card .ticks li, .lay-band--sage .lay-card .ticks li { color: rgba(244, 240, 231, .94) }
@media (max-width: 899px) {
  body[data-var] .lay2-split, body[class*="layout-"] .lay2-split { grid-template-columns: minmax(0, 1fr) }
  body[class*="layout-"] .lay2-split.is-flip .lay2-txt, body[class*="layout-"] .lay2-split.is-flip .lay2-side { order: 0 }
}
@media (max-width: 767px) {
  .lay-symptoms { grid-template-columns: minmax(0, 1fr) }
  .lay-strip { grid-auto-flow: row; grid-auto-columns: auto; grid-template-columns: minmax(0, 1fr); overflow: visible }
  .lay-strip__item { border-left: 0; border-top: 1px solid rgba(128, 128, 128, .22) }
  .lay-strip__item:first-child { border-top: 0 }
  .lay-grid--2, .lay-cols, .lay-checklist { grid-template-columns: minmax(0, 1fr) }
  .lay-card img, .lay-story img { float: none; width: 100%; max-width: 100%; height: auto }
}
.layout-editorial-guide .guide-media img { display: block; width: 100%; max-width: 720px; margin: 0 auto; aspect-ratio: 16 / 9; height: auto; object-fit: cover; border-radius: var(--lay-radius) }
body .trust__card { display: grid; grid-template-columns: auto minmax(0, 1fr); column-gap: 14px; row-gap: 0; align-items: center }
body .trust__card .g-seal { grid-column: 1; grid-row: 1 / span 3 }
body .trust__card > :not(.g-seal) { grid-column: 2; min-width: 0 }
body .trust__card-link { justify-self: start }
.lay-strip__item .lay-source { color: #9FC4AE; text-decoration: underline }
/* end lay- LAYOUT SYSTEM */

/* phase2 chrome: logo, headings, guarantee */
.th-logo-img { display: block; height: 68px; width: auto; max-width: none }
.th-logo { padding: 4px 0 }
@media (max-width: 700px) { .th-logo-img { height: 60px } }
@media (max-width: 370px) { .th-logo-img { height: 52px } }
.ff-logo { display: inline-block; margin-bottom: 12px }
.ff-logo img { display: block; height: 72px; width: auto }
.fat-footer__col .ff-col-title, .fat-footer__contact .ff-col-title {
  font-size: 13px; font-weight: 800; letter-spacing: 0.1em; line-height: 1.3;
  text-transform: uppercase; color: #fff; margin: 0 0 14px;
}
.lead-form-card .lead-form-card__title { display: block }
.g-seal { flex-shrink: 0; display: block }
.benefits__item--seal strong { font-weight: 800 }
.form-guarantee { display: flex; align-items: center; gap: 8px; margin: 12px 0 0; font-size: 13px; line-height: 1.35; color: #193034 }
.form-guarantee strong { font-weight: 800 }
.ff-guarantee { display: flex; align-items: center; gap: 12px; margin: 0 0 18px; font-size: 14px; line-height: 1.4; color: #DCE5DF }
.ff-guarantee strong { color: #fff }
.guarantee-chip { display: inline-flex; align-items: center; gap: 8px; margin: 14px 0 0; padding: 6px 12px 6px 8px; border-radius: 999px; background: rgba(255,255,255,.12); color: #fff; font-size: 14px; line-height: 1.3 }
.guarantee-line { display: flex; align-items: center; gap: 10px; margin: 16px 0; font-size: 16px; color: #193034 }

/* phase2 q2 trust layer */
.trust-section { background: #fff; padding: clamp(40px, 6vw, 72px) 0; border-top: 1px solid #e8e4dc }
.trust__grid { display: flex; gap: clamp(24px, 5vw, 56px); align-items: flex-start }
.trust__copy { flex: 1.7 1 0; min-width: 0 }
.trust__card { flex: 1 1 0; min-width: 0 }
.trust-split--reverse { flex-direction: row-reverse }
.trust--wide .trust__copy { flex: 1.4 1 0 }
.trust__copy h2 { margin: 0 0 12px }
.trust__lead { font-size: 16px; line-height: 1.65; color: #2c3a3c; margin: 0 0 16px; max-width: 62ch }
.trust__ticks { list-style: none; padding: 0; margin: 0 0 18px; display: flex; flex-wrap: wrap; gap: 6px 22px }
.trust__ticks li { display: flex; align-items: center; gap: 8px; font-weight: 600; font-size: 15px; color: #193034 }
.trust__tick { color: #48715E; font-weight: 800 }
.trust__steps { list-style: none; padding: 0; margin: 0; display: grid; gap: 8px }
.trust__steps li { display: flex; align-items: flex-start; gap: 12px; font-size: 15px; line-height: 1.5; color: #3b4749 }
.trust__n { flex: 0 0 24px; width: 24px; height: 24px; border-radius: 50%; border: 1px solid #c9ccd6; color: #16264f; font-weight: 700; font-size: 13px; display: flex; align-items: center; justify-content: center }
.trust--wide .trust__steps { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px }
.trust--wide .trust__steps li { flex-direction: column; gap: 8px }
.trust__card { background: #16264f; color: #fff; border-radius: 12px; padding: 20px 22px; display: flex; gap: 14px; align-items: center; max-width: 380px }
.trust__card .g-seal { flex: 0 0 auto }
.trust__card-body { min-width: 0 }
.trust__card-head { font-size: 16px; line-height: 1.35; font-weight: 700; color: #fff; margin: 0 0 6px }
.trust__card-note { font-size: 14px; line-height: 1.5; color: #d5dbea; margin: 0 0 4px }
.trust__card-link { display: inline-block; min-height: 32px; line-height: 32px; font-size: 14px; font-weight: 600; color: #e8b93f; text-decoration: underline; text-underline-offset: 3px }
.trust__card-link:hover { color: #fff }
@media (max-width: 800px) {
  .trust__grid, .trust-split--reverse { flex-direction: column; align-items: stretch }
  .trust--wide .trust__steps { grid-template-columns: minmax(0, 1fr) }
  .trust--wide .trust__steps li { flex-direction: row }
  .trust__card { max-width: none }
}
#guarantee { scroll-margin-top: 96px }
/* hero guarantee chip: at least 28px tall, seal text legible */
.benefits__item--seal { min-height: 32px; padding: 4px 10px 4px 5px; gap: 8px; white-space: normal; border-radius: 999px; background: #f1f3f9 }
.benefits__item--seal .g-seal { width: 30px; height: 30px }
.benefits__item--seal .benefits__label { font-size: 14px }
.ff-guarantee .g-seal { width: 84px; height: 84px }
.ff-guarantee { align-items: center; overflow: visible }
.form-guarantee .g-seal { width: 28px; height: 28px }

/* ════════════════════════════════════════════════════════════
   MOBILE COUPON PROMPT (bottom sheet card, non-modal)
   Appears on mobile/tablet after scroll + time, dismissible,
   max once per session; 7-day localStorage cooldown.
   ════════════════════════════════════════════════════════════ */
@media (max-width: 1023px) {
  .mobile-coupon-prompt {
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    z-index: 250;
    pointer-events: none;
  }

  .mobile-coupon-prompt__container {
    position: fixed;
    left: 16px;
    right: 16px;
    max-height: 220px;
    background: #193034;
    color: #F4F0E7;
    border-radius: 12px 12px 0 0;
    padding: 20px 24px 20px 20px;
    box-shadow: 0 -4px 20px rgba(0, 0, 0, 0.15);
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 12px;
    pointer-events: auto;
    opacity: 0;
    transform: translateY(120%);
    transition: opacity 0.25s ease, transform 0.25s ease;
  }

  .mobile-coupon-prompt.visible .mobile-coupon-prompt__container {
    opacity: 1;
    transform: translateY(0);
  }

  @media (prefers-reduced-motion: reduce) {
    .mobile-coupon-prompt__container {
      transition: none;
    }
    .mobile-coupon-prompt.visible .mobile-coupon-prompt__container {
      transform: translateY(0);
    }
  }

  .mobile-coupon-prompt.exiting .mobile-coupon-prompt__container {
    opacity: 0;
    transform: translateY(120%);
  }

  .mobile-coupon-prompt__content {
    flex: 1;
    min-width: 0;
  }

  .mobile-coupon-prompt__heading {
    font-size: 18px;
    font-weight: 700;
    color: #fff;
    margin: 0 0 6px;
    line-height: 1.2;
    font-family: "Source Serif 4", Georgia, "Times New Roman", serif;
  }

  .mobile-coupon-prompt__text {
    font-size: 13px;
    color: #DCE5DF;
    margin: 0 0 14px;
    line-height: 1.4;
  }

  .mobile-coupon-prompt__cta {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: #C95D2A;
    color: #fff;
    padding: 12px 20px;
    border-radius: 6px;
    font-weight: 700;
    font-size: 15px;
    text-decoration: none;
    border: 2px solid #C95D2A;
    cursor: pointer;
    transition: background 0.18s, transform 0.15s, box-shadow 0.18s;
    min-height: 44px;
    line-height: 1.2;
  }

  .mobile-coupon-prompt__cta:hover {
    background: #a8471e;
    border-color: #a8471e;
    transform: translateY(-1px);
    box-shadow: 0 3px 10px rgba(201, 93, 42, 0.25);
    color: #fff;
    text-decoration: none;
  }

  .mobile-coupon-prompt__cta:active {
    transform: translateY(0);
    box-shadow: none;
  }

  .mobile-coupon-prompt__cta:focus-visible {
    outline: 3px solid #C95D2A;
    outline-offset: 3px;
  }

  .mobile-coupon-prompt__close {
    flex-shrink: 0;
    width: 44px;
    height: 44px;
    min-width: 44px;
    min-height: 44px;
    background: transparent;
    border: 1px solid rgba(255, 255, 255, 0.25);
    border-radius: 6px;
    color: #F4F0E7;
    font-size: 28px;
    font-weight: 300;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    transition: border-color 0.18s, color 0.18s, background 0.18s;
  }

  .mobile-coupon-prompt__close:hover {
    border-color: rgba(255, 255, 255, 0.4);
    background: rgba(255, 255, 255, 0.08);
  }

  .mobile-coupon-prompt__close:focus-visible {
    outline: 3px solid #C95D2A;
    outline-offset: 3px;
  }

  .mobile-coupon-prompt__close span {
    display: flex;
    align-items: center;
    justify-content: center;
    line-height: 1;
  }
}

/* ════════════════════════════════════════════════════════════
   TRUST HEADER ROW (docs/design/TRUST-HEADER.md, Option A)
   Categorical claims only, all already on the site. Static, no animation.
   Desktop: sits between logo and phone in .trust-hdr__inner.
   Phone (<=700px): wraps to a thin second strip inside the sticky header.
   Contrast: #F4F0E7 on #193034 is about 12:1; icons #8FD3C4 about 8:1.
   ════════════════════════════════════════════════════════════ */
.trust-row {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 22px;
  flex: 0 1 auto;
  min-width: 0;
}
.trust-item {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  font-size: 13px;
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: 0.01em;
  color: #F4F0E7;
  white-space: nowrap;
}
.trust-item svg { flex-shrink: 0; width: 16px; height: 16px; color: #8FD3C4 }
@media (max-width: 1100px) {
  .trust-row { gap: 16px }
  .trust-item { font-size: 12px; gap: 5px }
}
@media (max-width: 860px) and (min-width: 701px) {
  .trust-row { gap: 10px }
  .trust-item { font-size: 11.5px; gap: 4px }
  .trust-item svg { width: 14px; height: 14px }
}
@media (max-width: 700px) {
  .trust-hdr__inner { flex-wrap: wrap; row-gap: 0 }
  .trust-row {
    order: 3;
    flex: 0 0 auto;
    width: 100%;
    margin: 0;
    justify-content: space-between;
    gap: 6px;
    padding: 6px 0 7px;
    border-top: 1px solid rgba(244,240,231,0.12);
  }
  .trust-item { font-size: 11px; gap: 4px; letter-spacing: 0 }
  .trust-item svg { width: 14px; height: 14px }
}
@media (max-width: 340px) {
  .trust-item { font-size: 10.5px }
}

/* >>> DESIGN A PATCH (appended) >>> */
/* =====================================================================
   main-A-patch.css  (DESIGN A PATCH, append AFTER main.css and AFTER the layout CSS)
   Source of every change: docs/design/DESIGN-REVIEW.md (section refs in brackets)
   plus the form system in docs/design/DESIGN-A-PLAN.md.
   Palette identity is unchanged: teal-green #193034, cream #F4F0E7, terracotta, sage #48715E.
   The ONLY shade that moves is the CTA fill: #C95D2A (4.13:1 with white) becomes #B8501F (4.99:1).
   Every other new colour below is a tint or a text-safe shade of those four, with its measured ratio.
   Measured contrast (WCAG 2.x), script: docs/design/scratch/a/c.js
     white on #B8501F 4.99 | white on hover #9E4318 6.42 | terracotta text #A8431A on cream 5.30, on white 6.03,
     on cream-2 4.86 | sage text #3B5F4D on cream 6.30, on cream-2 5.78 | #F0A37A on teal 6.75 | #9FC4AE on teal 7.25
     muted #5E6663 on white 5.90 | error #A12B1D on white 7.29 | focus ring teal on white 13.87 | field border #7A8480 on white 3.86
   ===================================================================== */

/* ---------- 0. TOKENS [P5, P6, P4] ---------- */
:root {
  /* colour: CTA and text-safe shades */
  --a-cta: #B8501F;            /* fill behind white text, 4.99:1 */
  --a-cta-hover: #9E4318;      /* 6.42:1 */
  --a-terra: #C95D2A;          /* decorative only: rules, large numerals 24px+ (3:1 needed, 4.13 present) */
  --a-terra-text: #A8431A;     /* terracotta as TEXT on cream or white */
  --a-teal: #193034;
  --a-ink: #1D1F1E;
  --a-muted: #5E6663;          /* secondary text on white and cream, 5.9 and 5.1 */
  --a-sage: #48715E;           /* rules, icons, large text */
  --a-sage-text: #3B5F4D;      /* sage as small TEXT, and a sage band fill behind cream text (6.30:1) */
  --a-cream: #F4F0E7;
  --a-cream-2: #EFE6D3;        /* the deeper tint of the same cream, alternate band */
  --a-sage-wash: #E6EDE6;      /* sage at about 15 percent on white */
  --a-error: #A12B1D;
  --a-ok: #2F6B4F;
  --a-field-line: #7A8480;     /* input border, 3.86:1 on white (UI components need 3:1) */
  /* type scale, six steps [P5]: 14 16 18 22 30 44 */
  --step-0: 14px; --step-1: 16px; --step-2: 18px; --step-3: 22px;
  --step-4: clamp(24px, 2.2vw + 14px, 30px);
  --step-5: clamp(32px, 3vw + 20px, 44px);
  /* spacing: 8-point steps, two band heights [P6] */
  --sp-1: 8px; --sp-2: 16px; --sp-3: 24px; --sp-4: 32px;
  --band: clamp(48px, 7vw, 96px);
  --band-tight: clamp(32px, 4vw, 56px);
  --lay-pad: var(--band);                       /* the layout system already reads --lay-pad */
  /* surface */
  --a-radius: 14px;
  --a-radius-sm: 8px;
  --a-shadow: 0 1px 2px rgba(25,48,52,.08), 0 10px 28px rgba(25,48,52,.14);
  --a-ease: cubic-bezier(.2, .7, .2, 1);
  --a-tap: 44px;
}
body[class*="layout-"] { --lay-c: var(--a-cream-2); }                       /* [P4] warmer alternate band */
body[class*="layout-"][data-var="b"] { --lay-c: #fff; --lay-w: var(--a-cream-2); }
html { scroll-padding-top: 88px; }
body { font-size: var(--step-1); line-height: 1.6; }

/* ---------- 1. TYPE SCALE, MEASURE, HIERARCHY [P5, accessibility 13] ---------- */
h1, .hero__copy h1, .hero--photo .hero__copy h1 { font-size: var(--step-5); line-height: 1.08; text-wrap: balance; }
h2 { font-size: var(--step-4); line-height: 1.15; text-wrap: balance; }
h3 { font-size: var(--step-3); line-height: 1.3; text-wrap: balance; }
h4 { font-size: var(--step-2); line-height: 1.35; }
p, li { text-wrap: pretty; }
.hero__lead { font-size: var(--step-2); line-height: 1.55; }
.depth-section p, .depth-section li, .depth-body p, .depth-body li, .lay-prose p, .lay-prose li, .trust__lead { max-width: 62ch; }
.eyebrow { font-size: 13px; letter-spacing: .12em; color: var(--a-sage-text); }              /* [accessibility 2,4] */
.eyebrow--warm { color: var(--a-terra-text); }
.sec-dark .eyebrow, .lay-band[data-band="dark"] .eyebrow, .hero .eyebrow, .fat-footer .eyebrow { color: #F0A37A; }
.sec-dark a:not([class]), .guide-sources-dark a { color: #9FC4AE; }

/* ---------- 2. THE CTA COLOUR, EVERY SELECTOR [accessibility 1, P1] ---------- */
/* All of these held #C95D2A (or #2b5797 / #c0392b) behind white text. One token now. */
.btn-primary, .th-phone, .nav-book, .offer-card__btn, .offer-card__badge, .ff-phone,
.callbar-call, .lead-form-card .btn-book, .coupon-card__cta, .spc-card__arrow, .cta-band, .fs-card .btn-book {
  background: var(--a-cta) !important; border-color: var(--a-cta); color: #fff;
}
.btn-primary:hover, .th-phone:hover, .nav-book:hover, .offer-card__btn:hover, .ff-phone:hover,
.callbar-call:hover, .lead-form-card .btn-book:hover, .coupon-card__cta:hover, .fs-card .btn-book:hover {
  background: var(--a-cta-hover) !important; border-color: var(--a-cta-hover); color: #fff;
}
.btn-primary, .nav-book, .callbar a, .coupon-card__cta, .lead-form-card .btn-book { font-family: "Source Sans 3", system-ui, sans-serif; font-weight: 700; letter-spacing: .01em; }
.btn-primary, .lead-form-card .btn-book, .coupon-card__cta { box-shadow: 0 6px 16px rgba(158,67,24,.26); transition: background .18s, transform .15s var(--a-ease), box-shadow .15s var(--a-ease); }
.btn-primary:hover, .lead-form-card .btn-book:hover { transform: translateY(-1px); box-shadow: 0 8px 20px rgba(158,67,24,.32); }
.btn-primary:active, .lead-form-card .btn-book:active { transform: translateY(0); box-shadow: none; }
.cta-band .btn-primary { background: #fff !important; color: var(--a-cta-hover); border-color: #fff; }   /* white pill on the CTA band, 6.42 */
.callbar-form { color: #fff; }                                                                            /* [accessibility 6] */
.offer-card__badge { font-size: 12px; }                                                                  /* [accessibility 8] */

/* ---------- 3. OFF-PALETTE BLUE GONE [section 2.4, P1] ---------- */
.lead-form-card__icon { background: #F1E9DB; }
.lead-form-card__icon svg, .lead-form-card .sms-fine a { color: var(--a-teal); }
.lead-form-card .sms-fine a { text-decoration: underline; }
.lead-form-card .sms-optin input[type="checkbox"], .fs-consent input { accent-color: var(--a-sage-text); }
.lead-form-card .field select:focus, .lead-form-card .field input:focus, .lead-form-card .field textarea:focus { border-color: var(--a-teal); box-shadow: 0 0 0 3px rgba(25,48,52,.18); }
.coupon-card { background: linear-gradient(145deg, #12262A 0%, #193034 100%); box-shadow: 0 6px 28px rgba(18,38,42,.32); }   /* was navy #0f1b3d to #1a2d5a */
.coupon-card__starburst { color: var(--a-teal); }
.coupon-card__badge { background: #E8B93F; color: var(--a-teal); font-size: 12px; }                      /* [accessibility 7] was white on #b8923a 2.91 */
.coupon-card__fine a { color: rgba(255,255,255,.85) !important; }
.benefits__item--seal { background: transparent; }                                                       /* was bluish #f1f3f9 */
.trust__n { color: var(--a-teal); border-color: #C9C2B2; }                                               /* was navy #16264f */
.trust__card-note { color: #E9E4D6; }                                                                    /* was blue-grey #d5dbea */

/* ---------- 4. GUARANTEE SEAL: ONE BIG ONE, REPEATS REDUCED [P11] ---------- */
.benefits__item--seal .g-seal { display: none; }                  /* pill keeps its words, loses the third seal */
.benefits__item--seal { padding: 0; min-height: 0; }
.form-guarantee .g-seal { width: 56px; height: 56px; }            /* legacy form-band, until it is removed */
.trust__card .g-seal, .ff-guarantee .g-seal { width: 72px; height: 72px; }
.fs-seal, .fs-guarantee--seal .g-seal { width: 64px; height: 64px; flex: 0 0 auto; }

/* ---------- 5. STICKY CALL BAR [P9] ---------- */
@media (max-width: 760px) {
  body { padding-bottom: calc(80px + env(safe-area-inset-bottom)); }
  .callbar, .lay-callbar { padding-bottom: calc(10px + env(safe-area-inset-bottom)); transition: transform .25s var(--a-ease), opacity .25s; }
  .callbar a, .lay-callbar a { min-height: var(--a-tap); font-size: var(--step-1); }
}
/* hidden while the hero call button or any form card is in view, and while a form field has focus (keyboard open) */
.fs-callbar-off .callbar, .fs-callbar-off .lay-callbar,
.fs-typing .callbar, .fs-typing .lay-callbar { transform: translateY(110%); opacity: 0; pointer-events: none; }

/* ---------- 6. PHOTO UNITY: ONE RADIUS, ONE SHADOW, ONE GRADE [P3, P8] ---------- */
.spc-card img, .hero-svc__media img, .people-photos img, .depth-body img.rounded, .lay-story img,
.lay2-side img, .lay-prose img.rounded, .lay2-acc__b img.rounded {
  border-radius: var(--a-radius);
  box-shadow: var(--a-shadow);
  filter: saturate(1.08) contrast(1.04) sepia(.07);          /* warms the cool field photography toward the cream */
  object-fit: cover;
}
.lay2-side img, body[data-var] .lay2-side img { aspect-ratio: 3 / 2; border-radius: var(--a-radius); }
.hero__bg img { filter: saturate(1.08) contrast(1.04) sepia(.07); }
/* hero text always sits on at least 0.55 teal wash; warm foot ties photo to the page */
.hero--photo .hero__bg::after {
  background:
    linear-gradient(180deg, rgba(184,80,31,0) 55%, rgba(184,80,31,.12) 100%),
    linear-gradient(90deg, rgba(25,48,52,.78) 0%, rgba(25,48,52,.64) 45%, rgba(25,48,52,.40) 100%);
}

/* ---------- 7. VIBRANCY WITHOUT NEW HUES [P4] ---------- */
.trust-hdr { background: linear-gradient(180deg, #1E3A3F, #193034); border-bottom: 1px solid rgba(244,240,231,.12); }
.sec-dark, .lay-band[data-band="dark"] { border-top: 3px solid var(--a-terra); }                         /* thin terracotta top rule on dark bands only */
.benefits { background: var(--a-cream-2); border-block: 1px solid rgba(72,113,94,.35); }
.lay-band[data-band="sage"], .sec-sage { background: var(--a-sage-text); color: var(--a-cream); }         /* the one sage band per page, 6.30:1 */
.lay-band[data-band="sage"] a, .sec-sage a { color: #fff; }

/* ---------- 8. MOTION: ONE TASTEFUL REVEAL, HOVER LIFT, NOTHING ELSE [P12] ---------- */
.js .fade-in:not(.visible) { opacity: 0; transform: translateY(12px); }
.fade-in { transition: opacity .3s var(--a-ease), transform .3s var(--a-ease); }
.fade-in.visible { opacity: 1; transform: none; }
.hero .fade-in, .fs-card.fade-in, .fs-card .fade-in { opacity: 1 !important; transform: none !important; }   /* never on the hero or a form */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
  .js .fade-in:not(.visible), .fade-in { opacity: 1 !important; transform: none !important; }
}

/* ---------- 9. TAP TARGETS 44px AND FOCUS RINGS [accessibility 10, 11] ---------- */
.nav-hamburger { width: var(--a-tap); height: var(--a-tap); }
.fat-footer a, .fat-footer__bottom-links a { display: inline-flex; align-items: center; min-height: var(--a-tap); }
.sms-fine a, .trust__card-link, .coupon-card__fine a, .credit-banner a { display: inline-block; padding-block: 12px; line-height: 1.2; }
.lead-form-card .sms-optin { min-height: var(--a-tap); }
.lead-form-card .sms-optin input[type="checkbox"] { width: 24px; height: 24px; }
.sms-fine, .lead-form-card .sms-fine { color: #5F6663; font-size: 13px; line-height: 1.5; }                 /* [accessibility 5] was #888 at 12px, 3.54 */
:focus-visible { outline: 3px solid var(--a-teal); outline-offset: 3px; }
.sec-dark :focus-visible, .callbar :focus-visible, .lay-callbar :focus-visible, .fat-footer :focus-visible, .trust-hdr :focus-visible,
.lay-band[data-band="dark"] :focus-visible, .coupon-card :focus-visible { outline-color: var(--a-cream); }
.btn-primary:focus-visible, .callbar a:focus-visible, .fs-card .btn-book:focus-visible { outline: 3px solid var(--a-teal); outline-offset: 3px; box-shadow: 0 0 0 6px var(--a-cream); }
.lead-form-card input:focus-visible, .lead-form-card select:focus-visible { outline: 3px solid var(--a-teal) !important; outline-offset: 2px; }
.exit-popup-overlay:not(.active) { display: none; }                                                       /* [accessibility 18] */

/* =====================================================================
   FORM SYSTEM (.fs-*). One lead form, three placements: hero (step 1 compact),
   mini (mid page), bottom (closing). See tools/blocks/form-*.html and form-steps.js.
   ===================================================================== */
.fs-card { background: #fff; color: var(--a-ink); border-radius: var(--a-radius); box-shadow: var(--a-shadow); padding: 22px 22px 18px; width: 100%; scroll-margin-top: 88px; scroll-margin-bottom: 120px; text-align: left; }
.fs-head { margin-bottom: 14px; }
.fs-title { margin: 0 0 4px; font-family: "Source Serif 4", Georgia, serif; font-weight: 600; font-size: var(--step-3); line-height: 1.2; color: var(--a-teal); }
.fs-sub { margin: 0 0 8px; font-size: var(--step-0); color: var(--a-muted); line-height: 1.5; }
.fs-progress { display: none; align-items: center; gap: 12px; margin-top: 8px; }
.fs-js .fs-progress { display: flex; }
.fs-stepline { font-size: var(--step-0); font-weight: 700; color: var(--a-sage-text); white-space: nowrap; }
.fs-bar { flex: 1; height: 6px; border-radius: 3px; background: #E4DED0; overflow: hidden; }
.fs-bar i { display: block; height: 100%; width: 50%; background: var(--a-sage-text); border-radius: 3px; transition: width .3s var(--a-ease); }
.fs-card[data-step="2"] .fs-bar i { width: 100%; }

.fs-field { display: flex; flex-direction: column; gap: 4px; margin: 0 0 12px; }
.fs-field label, .fs-consent label { font-size: var(--step-0); font-weight: 600; color: var(--a-teal); line-height: 1.3; }
.fs-field input, .fs-field select {
  box-sizing: border-box; width: 100%; min-height: 48px; padding: 10px 14px;
  font: 400 16px/1.3 "Source Sans 3", system-ui, sans-serif; color: var(--a-ink);   /* 16px: iOS will not zoom on focus */
  background: #fff; border: 1.5px solid var(--a-field-line); border-radius: var(--a-radius-sm);
  appearance: none; -webkit-appearance: none;
}
.fs-field select { padding-right: 40px; background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%23193034' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") no-repeat right 12px center; }
.fs-field input::placeholder { color: #6E7673; }
.fs-field input:focus, .fs-field select:focus { outline: 3px solid var(--a-teal); outline-offset: 1px; border-color: var(--a-teal); }
.fs-field.is-valid input { border-color: var(--a-ok); padding-right: 40px; background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%232F6B4F' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E") no-repeat right 12px center; }
.fs-field.is-invalid input { border-color: var(--a-error); border-width: 2px; }
.fs-err { margin: 0; font-size: var(--step-0); line-height: 1.4; font-weight: 600; color: var(--a-error); }
.fs-err:empty { display: none; }
.fs-row { display: grid; grid-template-columns: 112px minmax(0, 1fr); gap: 12px; }
.fs-consent { display: flex; align-items: center; gap: 12px; min-height: var(--a-tap); margin: 2px 0 0; }
.fs-consent input { width: 24px; height: 24px; flex: 0 0 auto; margin: 0; }
.fs-fine { font-size: 13px; line-height: 1.5; color: #5F6663; margin: 0 0 8px; }
.fs-terms summary { display: inline-flex; align-items: center; min-height: var(--a-tap); color: var(--a-teal); font-weight: 600; text-decoration: underline; cursor: pointer; }
.fs-terms p { margin: 0 0 8px; }
.fs-terms a { color: var(--a-teal); text-decoration: underline; display: inline-block; padding-block: 12px; }
.fs-recap { margin: 0 0 12px; padding: 10px 12px; background: var(--a-sage-wash); border-radius: var(--a-radius-sm); font-size: var(--step-0); font-weight: 600; color: var(--a-teal); overflow-wrap: anywhere; }
.fs-status { margin: 0; min-height: 0; font-size: var(--step-0); font-weight: 600; color: var(--a-error); }
.fs-status:empty { display: none; }
.fs-actions { display: flex; gap: 10px; margin-top: 6px; }
.fs-actions .btn-book { flex: 1; width: auto; min-height: 52px; margin: 0; padding: 14px 20px; border: 0; border-radius: var(--a-radius-sm); font: 700 18px/1.2 "Source Sans 3", system-ui, sans-serif; color: #fff; cursor: pointer; box-shadow: 0 6px 16px rgba(158,67,24,.26); transition: background .18s, transform .15s var(--a-ease), box-shadow .15s var(--a-ease); }
.fs-actions .btn-book:hover { transform: translateY(-1px); }
.fs-actions .btn-book[disabled] { opacity: .75; cursor: progress; }
.fs-back { flex: 0 0 auto; min-height: 52px; padding: 0 18px; background: transparent; color: var(--a-teal); border: 1.5px solid var(--a-field-line); border-radius: var(--a-radius-sm); font: 600 16px "Source Sans 3", system-ui, sans-serif; cursor: pointer; }
.fs-back[hidden] { display: none; }
.fs-reassure { margin: 10px 0 0; font-size: var(--step-0); line-height: 1.45; color: var(--a-muted); }
.fs-guarantee { display: flex; align-items: center; gap: 8px; margin: 10px 0 0; font-size: var(--step-0); line-height: 1.4; color: var(--a-teal); }
.fs-check { color: var(--a-ok); flex: 0 0 auto; }
.fs-guarantee--seal { gap: 14px; padding-top: 14px; border-top: 1px solid #E4DED0; font-size: var(--step-1); }
.fs-step:not([hidden]) { animation: fs-in .28s var(--a-ease) both; }
@keyframes fs-in { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }

/* placement: hero. Desktop right column, mobile directly under H1 and the button row. */
.hero--form .hero__inner--overlay { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(320px, 440px); gap: 48px; align-items: center; }
.hero--form .hero__copy { max-width: 620px; }
.hero--form .hero__actions a[href="#lead-form"] { display: none; }   /* the form beside or under the H1 IS the request; the phone button stays */
.hero--form.hero--photo { min-height: 0; }
.fs-card--hero { padding: 20px 20px 14px; max-width: 440px; justify-self: end; }
.fs-card--hero .fs-title { font-size: var(--step-2); }
.fs-card--hero .fs-field { margin-bottom: 10px; }
.fs-card--hero .fs-reassure { font-size: 13px; }
.fs-card--hero .fs-guarantee { font-size: 13px; }
@media (max-width: 899px) {
  .hero--form .hero__inner--overlay { grid-template-columns: minmax(0, 1fr); gap: 20px; padding-top: 28px; padding-bottom: 28px; }
  .hero--form .hero__lead { margin-bottom: 16px; }
  .fs-card--hero { max-width: none; justify-self: stretch; }
}

/* placement: mini, mid-page. Single row on desktop in step 1. */
.fs-card--mini { background: var(--a-cream-2); box-shadow: none; border-left: 4px solid var(--a-sage); max-width: 760px; margin: var(--band-tight) auto; }
.fs-card--mini .fs-field input, .fs-card--mini .fs-field select { background-color: #fff; }
@media (min-width: 760px) {
  .fs-card--mini[data-step="1"] .fs-form { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) auto; gap: 12px; align-items: end; }
  .fs-card--mini[data-step="1"] .fs-form > :not(.fs-step):not(.fs-actions) { grid-column: 1 / -1; }
  .fs-card--mini[data-step="1"] .fs-step { display: contents; }
  .fs-card--mini[data-step="1"] .fs-step[hidden] { display: none; }
  .fs-card--mini[data-step="1"] .fs-field { margin: 0; }
  .fs-card--mini[data-step="1"] .fs-actions { margin: 0; }
  .fs-card--mini[data-step="1"] .fs-reassure { grid-column: 1 / -1; margin-top: 0; }
}

/* placement: bottom. The closing form; wrap it in .fs-band for the warm band. */
.fs-band { background: var(--a-cream-2); padding: var(--band) 0; }
.fs-card--bottom { max-width: 560px; margin: 0 auto; padding: 28px 26px 22px; }
.fs-card--bottom .fs-title { font-size: var(--step-3); }

/* no-JS: every step is visible, the step line and back button never appear */
.fs-form:not(.fs-js) .fs-step[hidden] { display: block; }
/* <<< DESIGN A PATCH <<< */

/* css-fix-3 (layout integration): sub-section cards replace the <details> accordion (headings gate reads a summary as a
   FAQ question), related-terms cards, non-heading card titles and CTA title, guide/legal top padding */
.lay2-subcard { background: #fff; border: 1px solid var(--lay-line); border-left: 5px solid var(--lay-rule); border-radius: 14px; padding: 18px 22px 20px; min-width: 0 }
.lay2-subcard > h3 { margin: 0 0 8px; font-size: 1.12rem; color: var(--lay-teal) }
.lay2-subcard .lay2-acc__b { padding: 0 }
.lay2-subcard .lay2-acc__b > :last-child { margin-bottom: 0 }
.lay2-subcard p { color: #3b4442 }
.lay-band--teal .lay2-subcard { background: rgba(255,255,255,.07); border-color: rgba(244,240,231,.2) }
.lay-band--teal .lay2-subcard > h3, .lay-band--teal .lay2-subcard p { color: var(--lay-cream) }
.lay2-terms { display: grid; gap: 12px; grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr)); margin-top: 18px }
.lay2-terms__i p { margin: 0; font-size: .95rem }
.lay-card__t { font-family: "Source Sans 3", "Segoe UI", Arial, sans-serif; font-weight: 700; line-height: 1.25; margin: 0 0 10px; color: var(--lay-teal); font-size: clamp(19px, 1.8vw, 24px) }
.lay-symptom .lay-card__t { color: var(--lay-teal) }
.lay-cta__h { font-family: "Source Serif 4", Georgia, "Times New Roman", serif; font-weight: 600; line-height: 1.1; margin: 0 0 14px; color: inherit; font-size: clamp(30px, 4.6vw, 58px); text-wrap: balance }
.lay-cta .lay-cta__h { max-width: none }
@media (max-width: 767px) {
  .layout-editorial-guide .lay-guide-hero, .layout-editorial-guide main > section:first-child { padding-top: 32px }
}
.lay-head h3.lay-head__t { font-family: "Source Serif 4", Georgia, "Times New Roman", serif; font-weight: 600; line-height: 1.1; letter-spacing: -0.01em; font-size: clamp(24px, 3.4vw, 40px); margin: 0 0 14px; color: inherit }
.lay-head h3.lay-head__t::after { content: ""; display: block; width: 64px; height: 4px; border-radius: 4px; background: var(--lay-rule); margin-top: 18px }
@media (max-width: 767px) {
  main#main > section.sec:first-child, main#main > .hero--plain:first-child, .lay-guide-hero { padding-top: max(36px, 9vw) }
}
.lay-formcall { text-align: center; padding: 18px 16px 0; background: transparent }
.lay-formcall .lay-link { font-weight: 700; font-size: 1.1rem }

/* >>> FINAL QC 20261001t >>>
   Root-cause fixes for the scrolled header, stuck media, stuck fades,
   cream-on-white fact text, light heroes, the offer ticket, the seal,
   narrow process columns and repeated card chrome.
   Tokens: teal #193034, cream #F4F0E7, sage text #3B5F4D, CTA #B8501F.
   <<< kept as one block so later rules win the cascade. */

/* 1. One sticky header. The two bars no longer stick independently. */
.site-chrome { position: sticky; top: 0; z-index: 400; background: #193034; }
.site-chrome .trust-hdr { position: relative; top: auto; z-index: 2; overflow: visible; }
.site-chrome .main-nav { position: relative; top: auto; z-index: 1; overflow: visible; background: #fff; }
.trust-hdr, .trust-hdr__inner { overflow: visible; }
.th-logo-img { height: 52px; }
.th-phone__sub { white-space: nowrap; line-height: 1.25; color: #fff; opacity: 1; }
html { scroll-padding-top: 132px; }
@media (max-width: 1180px) {
  .trust-hdr__inner { flex-wrap: wrap; overflow: visible; row-gap: 0; }
  .site-chrome .trust-row, .trust-hdr .trust-row {
    order: 3; flex: 1 0 100%; width: 100%;
    justify-content: space-between; gap: 8px;
    padding: 6px 0 8px; margin: 0;
    border-top: 1px solid rgba(244,240,231,.16);
  }
}
@media (max-width: 700px) {
  .site-chrome .main-nav {
    position: fixed; top: 0; right: 0; width: 0; height: 0;
    border: 0; background: transparent; overflow: visible; z-index: 420;
  }
  .site-chrome .main-nav__inner { min-height: 0; height: 0; padding: 0; }
  .th-logo-img { height: 48px; }
}

/* 2. No content image sticks, and none slides under the header. */
.lay2-side, .fact-media, .layout-editorial-guide .fact-media, .hero__media {
  position: static; top: auto;
}
.lay-caption { z-index: 1; }

/* 3. Reveal. Visible with no JS. Hidden only while JS has not revealed it.
      Reduced motion is always fully visible. */
.fade-in, .lay-rise { opacity: 1; transform: none; animation: none; }
.js .fade-in:not(.visible) { opacity: 0; transform: translateY(12px); }
.fade-in.visible, .js .fade-in.visible, .trust__copy, .trust__card { opacity: 1 !important; transform: none; }
.lay-source, .lay-lede, .guide-card__blurb { opacity: 1; }
@media (prefers-reduced-motion: reduce) {
  .js .fade-in:not(.visible), .fade-in, .lay-rise {
    opacity: 1 !important; transform: none !important; animation: none !important;
  }
}

/* 4. Text tokens. Dark ink on cream and white. Cream on teal and sage. */
.lay-band--cream, .lay-band--white, .hero--plain, .layout-editorial-guide .hero {
  color: #1D1F1E;
}
.layout-editorial-guide .hero h1,
.layout-editorial-guide .hero .hero__copy h1,
.hero--plain h1,
.hero--plain .hero__copy h1,
.layout-editorial-guide .hero .hero__lead,
.hero--plain .hero__lead {
  color: #193034;
  text-shadow: none;
}
.layout-editorial-guide .hero__eyebrow,
.hero--plain .hero__eyebrow,
.page-family-guides-hub .hero__eyebrow,
.page-family-guide-article .hero__eyebrow {
  color: #3B5F4D;
  text-shadow: none;
}
.hero--plain .hero__proof li,
.layout-editorial-guide .hero .hero__proof li { color: #243330; }
.layout-editorial-guide .btn-ghost-light,
.hero--plain .btn-ghost-light,
.lay-band--cream .btn-ghost-light,
.lay-band--white .btn-ghost-light,
.layout-triage .hero .btn-ghost-light,
.layout-process-timeline .hero .btn-ghost-light {
  color: #193034;
  border: 2px solid #193034;
  background: transparent;
}
.layout-editorial-guide .btn-ghost-light:hover,
.hero--plain .btn-ghost-light:hover,
.lay-band--cream .btn-ghost-light:hover,
.lay-band--white .btn-ghost-light:hover {
  background: #193034;
  color: #F4F0E7;
  border-color: #193034;
}
/* The later .trust-section { background:#fff } was painting over teal fact strips,
   leaving cream text on white. Restore the dark band. */
.trust-section.lay-band--teal,
section.trust-section.lay-band--teal {
  background: #193034;
  color: #F4F0E7;
}
.trust-section.lay-band--teal .lay-label,
.trust-section.lay-band--teal p,
.trust-section.lay-band--teal .lay-strip__item,
.lay-band--teal .lay-label,
.lay-band--sage .lay-label {
  color: #F4F0E7;
}
.lay-strip__item .lay-source,
.trust-section.lay-band--teal .lay-source {
  color: #E7F6EE;
  opacity: 1;
}
.lay-band--teal .lay-strip { background: rgba(255,255,255,.08); }
.coupon-card__fine, .coupon-card__fine a { color: #E7F3EC !important; }

/* Home keeps a real photograph. Triage had hidden every hero image. */
body.layout-triage:has(main.page-family-home) .hero__bg { display: block !important; }
body.layout-triage:has(main.page-family-home) .hero--photo { background: #193034; color: #F4F0E7; min-height: 520px; }
body.layout-triage:has(main.page-family-home) .hero--photo .hero__bg::after {
  opacity: 1;
  background: linear-gradient(90deg, rgba(25,48,52,.84) 0%, rgba(25,48,52,.62) 46%, rgba(25,48,52,.28) 100%);
}
body.layout-triage:has(main.page-family-home) .hero__copy h1,
body.layout-triage:has(main.page-family-home) .hero__lead,
body.layout-triage:has(main.page-family-home) .hero__eyebrow {
  color: #F4F0E7 !important;
  text-shadow: none;
}
body.layout-triage:has(main.page-family-home) .hero .btn-ghost-light {
  color: #F4F0E7;
  border-color: #F4F0E7;
}

/* 5. Offer ticket. Gold band, large figure, notches, accessible orange button. */
.coupon-card {
  background: #12262A;
  color: #F4F0E7;
  border-radius: 18px;
  overflow: visible;
  padding: 28px 26px 20px;
  box-shadow: 0 18px 40px rgba(18,38,42,.28);
  border-top: 8px solid #E8B93F;
  position: relative;
}
.coupon-card::after {
  content: "";
  position: absolute;
  left: 18px; right: 18px; top: 14px;
  border-top: 1px dashed rgba(232,185,63,.7);
  pointer-events: none;
}
.coupon-card::before { display: none; }
.coupon-card__starburst { display: none; }
.coupon-card__amount-row { display: block; margin: 8px 0 4px; }
.coupon-card__badge {
  background: #E8B93F;
  color: #193034;
  font-size: 12px;
  letter-spacing: .08em;
}
.coupon-card__headline {
  font-size: clamp(46px, 8vw, 68px);
  line-height: .92;
  letter-spacing: -0.03em;
  color: #fff;
  margin: 8px 0 0;
}
.coupon-card__desc { color: #F0C14A; font-size: 20px; font-weight: 800; margin: 4px 0 0; }
.coupon-card__lines { color: #F4F0E7; font-size: 15px; }
.coupon-card__cta { border-radius: 10px; font-size: 18px; }
@media (max-width: 380px) {
  .coupon-card { padding: 22px 16px 16px; }
  .coupon-card__headline { font-size: 42px; }
}

/* 6. Guarantee seal sits in a certificate frame and never clips. */
.g-seal, .lay-guarantee__seal { display: block; overflow: visible; width: 96px; height: 96px; max-width: 100%; }
.g-seal--big, .lay-guarantee__seal { width: clamp(120px, 18vw, 168px); height: auto; }
.form-guarantee .g-seal, .fs-guarantee .g-seal, .benefits__item--seal .g-seal { width: 52px; height: 52px; }
.lay-guarantee, .trust__card, p.ff-guarantee {
  background:
    linear-gradient(#F7F4EC, #F7F4EC) padding-box;
  border: 2px solid #193034;
  border-radius: 10px;
  box-shadow: inset 0 0 0 6px #F7F4EC, inset 0 0 0 7px rgba(25,48,52,.25);
  padding: 18px 20px;
  text-decoration: none;
  color: #193034;
}
.lay-guarantee__h, .lay-band--cream .lay-guarantee__h, .lay-band--white .lay-guarantee__h, .lay-band--teal .lay-guarantee__h {
  color: #193034;
}
.lay-guarantee__t {
  color: #3B5F4D;
  border-top: 1px solid #193034;
  display: inline-block;
  padding-top: 8px;
  margin-top: 8px;
}
a.guarantee-cert { display: block; text-decoration: none; color: inherit; }
a.guarantee-cert:hover { text-decoration: none; }

/* 7. Long copy stacks. Cards lose repeated chrome so a page is not a grid of identical boxes. */
.lay-checklist { grid-template-columns: minmax(0, 1fr) !important; }
.lay-checklist > .lay-step, .lay-checklist > li {
  border-left: 3px solid #48715E;
  padding: 2px 0 8px 16px;
}
.lay-checklist .lay-card, .lay-rail .lay-card {
  background: transparent;
  border: 0;
  box-shadow: none;
  border-radius: 0;
  padding: 0 0 12px;
}
.lay2-subcard, .factbox, .layout-editorial-guide .factbox, .lay2-acc__i {
  background: transparent;
  border: 0;
  border-bottom: 1px solid #E0DBD2;
  border-radius: 0;
  box-shadow: none;
}
.lay-band--teal .lay2-subcard, .lay-band--teal .lay2-acc__i {
  background: transparent;
  border: 0;
  border-bottom: 1px solid rgba(244,240,231,.28);
  color: #F4F0E7;
}
.lay-grid--3, .lay-grid--4 {
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 340px), 1fr));
}
.lay-card, .mini-card, .lay-symptom, .guide-card, .spc-card {
  background: transparent;
  border: 0;
  border-radius: 0;
  box-shadow: none;
}
.lay2-card, .lay-caption, .local-fact-box {
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  padding: 8px 0 !important;
  margin: 12px 0 !important;
  color: inherit;
}
.lay-card .ticks li { color: #1D1F1E; }
.lay-band--teal .lay-card .ticks li,
.lay-band--sage .lay-card .ticks li,
.lay-band--teal .ticks li,
.lay-band--sage .ticks li { color: #F4F0E7; }
.lay-band--teal .lay-card p,
.lay-band--sage .lay-card p,
.lay-band--teal .lay-prose p,
.lay-band--sage .lay-prose p,
.lay-faq .lay-faq__a,
.lay2-stat p,
.lay-prose .lay2-stat p { color: #F4F0E7; opacity: 1; }
.th-phone__sub, .coupon-card__lines, .coupon-card__fine, .coupon-card__fine a,
.cta-band p, .fat-footer__bottom p, .fat-footer__bottom-links a, .faux-disclosure {
  color: #F4F0E7;
  opacity: 1;
}
.faux-disclosure { font-size: 12px; }
.fat-footer__bottom p, .fat-footer__bottom-links a { color: #DCE5DF; }
.breadcrumb li { color: #5E6663; }
.breadcrumb a, .page-family-guide-article .hero__eyebrow,
.layout-process-timeline .hero__eyebrow, .layout-triage .hero__eyebrow { color: #3B5F4D; }
.cta-band .btn-ghost-light { color: #fff; border: 2px solid #fff; }
.callbar-form {
  background: transparent !important;
  color: #F4F0E7 !important;
  border: 2px solid #F4F0E7 !important;
}
.layout-emergency-first .hero__eyebrow,
.layout-comparison .hero__eyebrow { color: #F4F0E7; text-shadow: none; }
.layout-triage .hero__eyebrow,
.layout-process-timeline .hero__eyebrow,
.layout-editorial-guide .hero__eyebrow,
.page-family-guide-article .hero__eyebrow,
.page-family-guides-hub .hero__eyebrow { color: #3B5F4D; text-shadow: none; }
.hero__eyebrow { text-shadow: none; }

/* Town hubs on flat archetypes get their own photograph and a dark scrim. */
body.layout-emergency-first:has(main.page-family-area-city) .hero__bg,
body.layout-triage:has(main.page-family-area-city) .hero__bg { display: block !important; }
body.layout-emergency-first:has(main.page-family-area-city) .hero--photo,
body.layout-triage:has(main.page-family-area-city) .hero--photo {
  background: #193034; color: #F4F0E7; min-height: 460px;
}
body.layout-emergency-first:has(main.page-family-area-city) .hero__bg::after,
body.layout-triage:has(main.page-family-area-city) .hero__bg::after,
.layout-local-story .hero__bg::after {
  opacity: 1;
  background: linear-gradient(90deg, rgba(25,48,52,.88) 0%, rgba(25,48,52,.66) 46%, rgba(25,48,52,.30) 100%);
}
body.layout-emergency-first:has(main.page-family-area-city) .hero__copy h1,
body.layout-emergency-first:has(main.page-family-area-city) .hero__lead,
body.layout-emergency-first:has(main.page-family-area-city) .hero__eyebrow,
body.layout-triage:has(main.page-family-area-city) .hero__copy h1,
body.layout-triage:has(main.page-family-area-city) .hero__lead,
body.layout-triage:has(main.page-family-area-city) .hero__eyebrow,
.layout-local-story .hero__copy h1,
.layout-local-story .hero__copy .hero__lead,
.layout-local-story .hero__copy .hero__eyebrow {
  color: #F4F0E7 !important;
  text-shadow: none;
}
body.layout-emergency-first:has(main.page-family-area-city) .hero .btn-ghost-light,
body.layout-triage:has(main.page-family-area-city) .hero .btn-ghost-light,
.layout-local-story .hero .btn-ghost-light {
  color: #F4F0E7;
  border: 2px solid #F4F0E7;
  background: transparent;
}
.lay-band--teal .lay-card,
.lay-band--teal .lay-card__t,
.lay-band--teal .lay2-subcard > h3,
.lay-band--sage .lay-card,
.lay-band--sage .lay-card__t,
.lay-band--sage .lay2-subcard > h3 { color: #F4F0E7; }
.lay-band--teal a.lay-link,
.lay-band--sage a.lay-link { color: #F6C9AD; }

/* Contrast tokens. #B8501F measured 4.39:1 behind the phone caption. */
.th-phone, .ff-phone, .nav-book, .btn-primary, .callbar-call,
.coupon-card__cta, .fs-card .btn-book, .lead-form-card .btn-book {
  background: #8E3C16 !important;
  color: #fff !important;
  border-color: #8E3C16 !important;
}
.th-phone__sub, .th-phone__number { color: #fff !important; opacity: 1 !important; }
.main-nav__inner a[aria-current="page"],
.main-nav__inner a:hover { color: #8E3C16; }
.lay-caption__lead { color: #1D1F1E !important; text-shadow: none !important; }
a.lay-caption__tel, .lay-caption .lay-link { color: #8E3C16 !important; }
.lay-band--cream, .lay-band--white,
.lay-band--cream p, .lay-band--white p,
.lay-band--cream li, .lay-band--white li { color: #1D1F1E; }
.lay-band--cream a, .lay-band--white a { color: #8E3C16; }
.spc-card { background: #193034 !important; }
.spc-card__overlay { background: linear-gradient(to top, rgba(25,48,52,.92) 0%, rgba(25,48,52,.55) 55%, rgba(25,48,52,.25) 100%); }
.spc-card__name, .spc-card__label { color: #F4F0E7 !important; }
.guide-card h3, .guide-card__blurb { color: #1D1F1E; opacity: 1; }
.guide-card__more { color: #8E3C16; }
.fat-footer, .fat-footer__col h4, .ff-col-title, .fat-footer__col a, .fat-footer__contact a, .fat-footer__contact li { color: #F4F0E7; }
.lay2-acc__i.lay2-subcard {
  background: transparent !important;
  border: 0 !important;
  border-bottom: 1px solid #E0DBD2 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}
.lay-strip {
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 360px), 1fr)) !important;
  grid-auto-flow: row !important;
}
/* Body.lay-flip set direction:rtl. The skip link at left:-9999px then
   stretched the scrollport by 9999px and the page opened on blank cream. */
body { overflow-x: clip; }
body.lay-flip { direction: ltr; }
.skip { left: 8px; top: 8px; transform: translateY(-150%); }
.skip:focus, .skip:focus-visible { left: 8px; transform: none; }
.lay-band--cream h2, .lay-band--cream h3, .lay-band--white h2, .lay-band--white h3,
.lay-band--cream .lay2-acc__b, .lay-band--cream .lay2-acc__b a, .lay-band--cream .lay2-acc__b li,
.lay-band--white .lay2-acc__b, .lay-band--white .lay2-acc__b a, .lay-band--white .lay2-acc__b li {
  color: #1D1F1E !important;
}
.lay-strip, .lay-strip p, .lay-strip li, .lay-strip .lay-label, .lay-strip .lay-source, .lay-strip a {
  color: #F4F0E7 !important;
}
.lay-eyebrow { color: #3B5F4D !important; }
.lead-form-card { background: #fff !important; color: #1D1F1E !important; }
.lead-form-card .lead-form-card__title, .lead-form-card .lead-form-echo { color: #193034 !important; background: transparent !important; }
.lead-form-card__sub { color: #3B4442 !important; }
.lay-cta .lead-form-echo, .lay-band--sage .lead-form-echo, .lay-band--teal .lead-form-echo { color: #F4F0E7 !important; }
.guide-card { background: #fff !important; }
.guide-card__more { color: #8E3C16 !important; }
.btn-ghost-light {
  background: #193034 !important;
  color: #fff !important;
  border: 2px solid #F4F0E7 !important;
}
.trust__tick { color: #193034 !important; }
.trust__n { background: #193034 !important; color: #F4F0E7 !important; }
.lay-guarantee, .lay-guarantee__h, .lay-guarantee__t { color: #193034 !important; }
.lay-guarantee { background: #F4F0E7 !important; }
.fat-footer__bottom p, .fat-footer__bottom a, .fat-footer__bottom-links a { color: #F4F0E7 !important; }
.lay2-stat { background: #193034 !important; color: #F4F0E7 !important; }
.lay2-stat__v { color: #F6C9AD !important; }
.sec-alt h2, .src-list, .src-list li, .src-list a { color: #1D1F1E !important; }
.mobile-coupon-prompt__close { color: #F4F0E7 !important; border: 2px solid #F4F0E7 !important; background: transparent !important; }
.trust, .trust__copy { background: #F4F0E7 !important; }
.trust__copy, .trust__copy h2, .trust__copy p, .trust__copy li, .trust__lead, .trust__tick { color: #193034 !important; }
.trust__card { background: #193034 !important; }
.trust__card, .trust__card p, .trust__card li, .trust__card span, .trust__card-head, .trust__card-note, .trust__card-link { color: #F4F0E7 !important; }
.layout-process-timeline .hero__copy, .layout-process-timeline .hero__inner { background: #F4F0E7 !important; position: relative; z-index: 1; }
.layout-process-timeline .hero__copy h1, .layout-process-timeline .hero__lead, .layout-process-timeline .hero__eyebrow { color: #193034 !important; }
.lay-chip { color: #193034 !important; background: #F4F0E7 !important; border-color: #193034 !important; }
.lay-band--teal .lay-chip, .lay-band--sage .lay-chip { color: #F4F0E7 !important; background: transparent !important; border-color: #F4F0E7 !important; }
.trust__copy, .trust__copy h2, .trust__copy p, .trust__copy li, .trust__lead { color: #1D1F1E !important; }
.trust__card, .trust__card p, .trust__card li, .trust__card span, .trust__card-head, .trust__card-note { color: #F4F0E7 !important; }
.trust__card-link { color: #F6C9AD !important; }
a.lay-link, span.lay-link { color: #8E3C16 !important; }
.lay-band--teal a.lay-link, .lay-band--sage a.lay-link, .lay-strip a.lay-link, .lay-faq a.lay-link { color: #F6C9AD !important; }
a.lay-source, .lay-source { color: #3B5F4D !important; }
.lay-band--teal a.lay-source, .lay-strip a.lay-source, .lay-faq a.lay-source { color: #E7F6EE !important; }
.lay-faq, .lay-faq h2, .lay-faq h3, .lay-faq p, .lay-faq summary, .lay-faq li { color: #F4F0E7 !important; }
/* Wrap the longer broker-role trust text on narrow screens to keep the nav in viewport. */
@media (max-width: 700px) {
  .site-chrome .trust-row {
    flex-wrap: wrap;
    justify-content: flex-start;
    gap: 6px 12px;
  }
  .site-chrome .trust-item {
    min-width: 0;
    flex: 0 1 auto;
    white-space: normal;
  }
  .site-chrome .trust-item > span { white-space: normal; }
}
.lay-band--cream a.btn-primary, .lay-band--white a.btn-primary, .lay2-acc__b a.btn-primary, a.btn.btn-primary {
  color: #fff !important;
  background: #8E3C16 !important;
}
.benefits__item, .benefits__label, .benefits__item strong { color: #1D1F1E !important; }
/* <<< FINAL QC 20261001t <<< */
