/* ===== Tokens — K's Top 2 Bottom brand palette (v6: warm editorial) ===== */
:root {
  --navy: #0F1F3A;          /* deep editorial navy for nav/footer/text */
  --navy-2: #1A2E52;        /* slightly lighter navy */
  --navy-3: #2A4570;        /* hover / accent navy */
  --gold: #C79A3F;          /* warm gold accent (primary brand accent now) */
  --gold-2: #E1B75A;        /* lighter gold for hover / highlights */
  --gold-3: #F5E9CE;        /* very pale gold background tint */
  --sky: #C79A3F;           /* alias so existing components use gold */
  --sky-2: #E1B75A;
  --sky-3: #F5E9CE;
  --blue: #2A4570;
  --cream: #FFFFFF;         /* white page background (matches mockup) */
  --cream-2: #F7F2E9;       /* soft warm tint for the commitment band + row hover */
  --paper: #FFFFFF;         /* card white surfaces */
  --line: #E5DBC7;          /* warm ivory line color */
  --ink: #0F1F3A;
  --ink-2: #2A3A55;
  --muted: #6B7A8A;
  --peach: #F5E9CE;
  --lime: #E1B75A;          /* alias for legacy accent usage */
  --radius: 18px;
  --radius-lg: 24px;
  --shadow: 0 1px 0 rgba(15,31,58,.06), 0 12px 32px -16px rgba(15,31,58,.18);
  --shadow-lg: 0 1px 0 rgba(15,31,58,.06), 0 28px 60px -24px rgba(15,31,58,.28);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }

/* ===== Accessibility helpers ===== */
.skip-link {
  position: absolute;
  top: -100px;
  left: 0.5rem;
  z-index: 100;
  background: var(--navy);
  color: var(--cream);
  padding: 0.7rem 1.1rem;
  border-radius: 0 0 10px 10px;
  font-weight: 700;
  text-decoration: none;
  transition: top 0.2s ease;
}
.skip-link:focus {
  top: 0;
  outline: 3px solid var(--sky);
  outline-offset: 2px;
}
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0,0,0,0);
  white-space: nowrap;
  border: 0;
}

/* Improved focus indicators (visible only for keyboard users) */
:focus { outline: none; }
:focus-visible {
  outline: 3px solid var(--blue);
  outline-offset: 2px;
  border-radius: 4px;
}
.btn:focus-visible {
  outline-offset: 4px;
}
input:focus-visible,
select:focus-visible,
textarea:focus-visible {
  outline: none; /* the existing box-shadow handles the focus ring */
}
body {
  margin: 0;
  font-family: 'Inter', system-ui, -apple-system, sans-serif;
  font-size: 17px;
  line-height: 1.55;
  color: var(--ink);
  background: var(--cream);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

img, svg { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
em { font-family: 'Instrument Serif', serif; font-style: italic; font-weight: 400; letter-spacing: -0.01em; }

/* ===== Typography ===== */
.display {
  font-family: 'Playfair Display', 'Instrument Serif', Georgia, serif;
  font-style: normal;
  font-weight: 600;
  font-size: clamp(2.8rem, 6vw, 5.2rem);
  line-height: 1.08;
  letter-spacing: -0.01em;
  margin: 0;
  color: var(--navy);
}
.display em { font-style: italic; font-weight: 500; font-size: 1em; letter-spacing: 0; color: var(--gold); }
.display--md { font-size: clamp(2.4rem, 4.8vw, 3.8rem); line-height: 1.05; }
.kicker {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--gold);
  margin-bottom: 1.2rem;
  font-family: 'Inter', sans-serif;
  font-style: normal;
}
.kicker::before,
.kicker::after {
  content: '';
  display: inline-block;
  width: 22px;
  height: 1px;
  background: var(--gold);
}
.kicker::before { margin-right: 0.15rem; }
.kicker::after  { margin-left: 0.15rem; }
.kicker--light { color: var(--gold-2); }
.kicker--light::before, .kicker--light::after { background: var(--gold-2); }
.lede {
  font-size: 1.15rem;
  color: var(--ink-2);
  max-width: 56ch;
  margin: 1.4rem 0 2rem;
}
.lede--muted { color: var(--muted); }
.tag {
  display: inline-flex;
  align-items: center;
  padding: 0.45rem 0.95rem;
  border-radius: 999px;
  border: 1.5px solid var(--navy);
  background: var(--sky);
  font-size: 0.82rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  margin-bottom: 1.8rem;
}

/* ===== Buttons ===== */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.55rem;
  padding: 0.9rem 1.4rem;
  border-radius: 999px;
  font-weight: 700;
  font-size: 0.98rem;
  font-family: inherit;
  cursor: pointer;
  border: 2px solid var(--navy);
  transition: transform 0.15s ease, box-shadow 0.15s ease, background 0.15s ease, color 0.15s ease;
  white-space: nowrap;
  color: var(--navy);
  background: var(--paper);
}
.btn:hover { transform: translate(-2px, -2px); box-shadow: 4px 4px 0 var(--navy); }
.btn:active { transform: translate(0,0); box-shadow: 0 0 0 var(--navy); }
.btn--primary { background: var(--navy); color: var(--cream); }
.btn--primary:hover { background: var(--navy-3); color: var(--sky); }
.btn--ghost { background: transparent; color: var(--navy); }
.btn--ghost:hover { background: var(--sky); }
.btn--lg { padding: 1.05rem 1.7rem; font-size: 1.02rem; }
.btn--block { display: flex; width: 100%; }

/* Refined gold CTA (v6 editorial style — clean rounded rect, no offset shadow) */
.btn--gold {
  background: var(--gold);
  color: #fff;
  border: 2px solid var(--gold);
  border-radius: 12px;
  box-shadow: 0 6px 18px -8px rgba(199, 154, 63, 0.7);
  letter-spacing: 0.01em;
}
.btn--gold:hover {
  background: var(--gold-2);
  border-color: var(--gold-2);
  transform: translateY(-2px);
  box-shadow: 0 10px 24px -8px rgba(199, 154, 63, 0.75);
}
.btn--gold:active { transform: translateY(0); }
.btn--gold::after { display: none; }

/* ===== Top bar ===== */
.topbar {
  display: none;   /* top info strip removed */
  background: var(--navy);
  color: var(--sky);
  font-size: 0.82rem;
  font-weight: 500;
  letter-spacing: 0.02em;
}
.topbar__inner {
  max-width: 1280px;
  margin: 0 auto;
  padding: 0.6rem 2rem;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1.2rem;
  flex-wrap: wrap;
}
.topbar__item {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
}
.topbar__item--link { color: var(--paper); font-weight: 700; }
.topbar__item--link:hover { color: var(--sky); }
.topbar__divider { color: var(--blue); font-size: 0.5rem; }

/* ===== Nav ===== */
.nav {
  position: sticky;
  top: 0;
  z-index: 50;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0.9rem 2rem;
  background: rgba(255, 255, 255, 0.92);
  backdrop-filter: blur(12px);
  border-bottom: 1px solid var(--line);
}
.logo {
  display: inline-flex;
  align-items: center;
  gap: 0.7rem;
  font-weight: 800;
  font-size: 1.1rem;
  letter-spacing: -0.02em;
  color: var(--navy);
}
.logo__img { width: 42px; height: 42px; object-fit: contain; background: transparent; }
.logo__img--light { background: transparent; }
.logo__img--ondark { display: none; }   /* light logo shown only on the navy mobile nav */
.logo__text em { font-size: 1.15em; margin-left: 0.15rem; color: var(--blue); }
.logo__text--light { color: var(--cream); }
.logo__text--light em { color: var(--sky); }
.logo__fallback { display: inline-flex; }
.nav__links {
  display: flex;
  gap: 2rem;
  font-weight: 500;
  font-size: 0.95rem;
}
.nav__links a { position: relative; padding: 0.25rem 0; color: var(--navy); }
.nav__links a:hover { color: var(--blue); }
.nav__links a.active { color: var(--blue); }
.nav__links a.active::after {
  content: '';
  position: absolute;
  left: 0;
  right: 0;
  bottom: -6px;
  height: 3px;
  background: var(--blue);
  border-radius: 2px;
}

/* ===== Mobile nav hamburger ===== */
.nav__toggle {
  display: none;
  background: transparent;
  border: 2px solid var(--navy);
  border-radius: 10px;
  width: 44px;
  height: 44px;
  padding: 0;
  cursor: pointer;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 5px;
  transition: background 0.15s ease;
}
.nav__toggle:hover { background: var(--sky-3); }
.nav__toggle span {
  display: block;
  width: 20px;
  height: 2.5px;
  background: var(--navy);
  border-radius: 2px;
  transition: transform 0.25s ease, opacity 0.2s ease;
}
body.nav-open .nav__toggle span:nth-child(1) { transform: translateY(7.5px) rotate(45deg); }
body.nav-open .nav__toggle span:nth-child(2) { opacity: 0; }
body.nav-open .nav__toggle span:nth-child(3) { transform: translateY(-7.5px) rotate(-45deg); }

/* ===== Page header (used on all non-home pages) ===== */
.page-header {
  padding: 4rem 2rem 3rem;
  max-width: 1280px;
  margin: 0 auto;
  text-align: center;
}
.page-header .display { font-size: clamp(2.6rem, 5vw, 4.4rem); }
.page-header .lede { margin-left: auto; margin-right: auto; }

/* ===== Page-bottom CTA strip ===== */
.page-cta {
  background: var(--sky-3);
  padding: 4rem 2rem;
  text-align: center;
}
.page-cta-inner {
  max-width: 720px;
  margin: 0 auto;
}
.page-cta h2 {
  font-size: clamp(1.8rem, 3.5vw, 2.6rem);
  font-weight: 900;
  letter-spacing: -0.025em;
  margin: 0 0 0.6rem;
  color: var(--navy);
}
.page-cta p { margin: 0 0 1.6rem; color: var(--ink-2); font-size: 1.05rem; }
.page-cta .btn + .btn { margin-left: 0.6rem; }
@media (max-width: 520px) {
  .page-cta .btn + .btn { margin-left: 0; margin-top: 0.6rem; }
  .page-cta .btn { width: 100%; }
}

/* ===== Home-page teasers ===== */
.home-teaser { padding: 6rem 0; }
.home-teaser--cream { background: var(--cream); }
.home-teaser .section__head { margin-bottom: 2.4rem; }

/* "Not included" callout */
.not-included {
  max-width: 1280px;
  margin: 2.5rem auto 0;
  padding: 1.8rem 2rem;
  background: var(--paper);
  border: 2.5px solid var(--navy);
  border-radius: var(--radius-lg);
}
.not-included h3 {
  font-size: 1.1rem;
  font-weight: 800;
  letter-spacing: -0.01em;
  margin: 0 0 0.6rem;
  color: var(--navy);
}
.not-included ul {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0.4rem 1.2rem;
}
.not-included li {
  position: relative;
  padding-left: 1.2rem;
  font-size: 0.95rem;
  color: var(--ink-2);
}
.not-included li::before {
  content: '×';
  position: absolute;
  left: 0;
  color: var(--blue);
  font-weight: 800;
  font-size: 1.1rem;
  line-height: 1.4;
}
@media (max-width: 760px) {
  .not-included ul { grid-template-columns: 1fr; }
}

/* ===== Hero ===== */
.hero {
  padding: 4rem 2rem 2rem;
  max-width: 1280px;
  margin: 0 auto;
  position: relative;
}
.hero__grid {
  display: grid;
  grid-template-columns: 1.1fr 0.9fr;
  gap: 4rem;
  align-items: center;
}
.hero__copy h1 { margin-bottom: 0; }
.hero__ctas { display: flex; gap: 0.8rem; flex-wrap: wrap; margin-bottom: 1.8rem; }

.hero__google {
  display: inline-flex;
  align-items: center;
  gap: 0.8rem;
  padding: 0.75rem 1.1rem;
  border: 2px solid var(--navy);
  border-radius: 14px;
  background: var(--paper);
  transition: transform 0.15s ease, box-shadow 0.15s ease;
}
.hero__google:hover { transform: translate(-2px,-2px); box-shadow: 4px 4px 0 var(--navy); }
.hero__google-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 38px;
  height: 38px;
  border-radius: 50%;
  background: var(--sky-3);
  border: 1.5px solid var(--line);
}
.hero__google-text { display: flex; flex-direction: column; line-height: 1.15; }
.hero__google-text strong { font-size: 0.92rem; color: var(--navy); letter-spacing: 0.02em; }
.hero__google-text small { font-size: 0.8rem; color: var(--muted); margin-top: 0.1rem; }

/* Hero art — logo spotlight */
.hero__art {
  position: relative;
  aspect-ratio: 1;
  display: flex;
  align-items: center;
  justify-content: center;
}
.hero__halo {
  position: absolute;
  inset: 6%;
  border-radius: 50%;
  background: radial-gradient(circle at 50% 45%, var(--sky-2) 0%, var(--sky-3) 50%, transparent 75%);
  z-index: 0;
}
.hero__logo-frame {
  position: relative;
  z-index: 1;
  width: 88%;
  aspect-ratio: 1;
  background: transparent;
  display: flex;
  align-items: center;
  justify-content: center;
}
.hero__logo-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.hero__logo-placeholder { width: 100%; height: 100%; }
.hero__sticker {
  position: absolute;
  z-index: 3;
  background: var(--sky);
  color: var(--navy);
  border: 2.5px solid var(--navy);
  font-weight: 800;
  font-size: 0.82rem;
  letter-spacing: 0.05em;
  padding: 0.7rem 1rem;
  border-radius: 999px;
  box-shadow: 4px 4px 0 var(--navy);
}
.hero__sticker--1 {
  top: -10px;
  right: -8px;
  display: flex;
  flex-direction: column;
  align-items: center;
  border-radius: 50%;
  width: 108px;
  height: 108px;
  justify-content: center;
  line-height: 1.1;
  text-align: center;
  background: var(--paper);
  transform: rotate(8deg);
}
.hero__sticker--2 {
  bottom: 18px;
  left: -16px;
  background: var(--navy);
  color: var(--sky);
  transform: rotate(-4deg);
}

.stats {
  margin-top: 4rem;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1rem;
  border-top: 2px solid var(--navy);
  border-bottom: 2px solid var(--navy);
  padding: 1.4rem 0;
}
.stat {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 0 1rem;
  border-right: 1px solid var(--line);
}
.stat:last-child { border-right: none; }
.stat b {
  font-size: clamp(1.5rem, 2.6vw, 2.2rem);
  font-weight: 900;
  letter-spacing: -0.03em;
  line-height: 1;
  color: var(--navy);
}
.stat:first-child b { color: var(--gold); letter-spacing: 0.05em; font-size: 1.4rem; }
.stat span {
  font-size: 0.85rem;
  color: var(--muted);
  margin-top: 0.5rem;
  letter-spacing: 0.02em;
}

/* ===== Section heads ===== */
.section__head {
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 2rem;
  margin-bottom: 3rem;
}
.section__head--center { text-align: center; }
.section__head--center .lede { margin-left: auto; margin-right: auto; }

/* ===== Services ===== */
.services { padding: 6rem 0 2rem; }
.services__grid {
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 2rem;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.4rem;
}
.services__grid--four { grid-template-columns: repeat(4, 1fr); }

/* Add-ons strip */
.addons {
  max-width: 1280px;
  margin: 2.5rem auto 0;
  padding: 1.6rem 2rem;
  background: var(--sky-3);
  border: 2px dashed var(--navy);
  border-radius: var(--radius);
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.8rem;
}
.addons__head {
  font-size: 0.82rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--blue);
  margin-right: 0.4rem;
}
.addons__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}
.addons__list li {
  background: var(--paper);
  border: 1.5px solid var(--navy);
  border-radius: 999px;
  padding: 0.35rem 0.85rem;
  font-size: 0.85rem;
  font-weight: 600;
  color: var(--navy);
}
.card {
  position: relative;
  background: var(--paper);
  border: 2.5px solid var(--navy);
  border-radius: var(--radius-lg);
  padding: 2rem;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.card:hover {
  transform: translate(-4px, -4px);
  box-shadow: 8px 8px 0 var(--navy);
}
.card--accent { background: var(--sky); }
.card--service .card__num {
  font-family: 'Instrument Serif', serif;
  font-size: 2.6rem;
  font-style: italic;
  color: var(--blue);
  display: block;
  line-height: 1;
  margin-bottom: 1.5rem;
}
.card--accent .card__num { color: var(--navy); }
.card h3 {
  font-size: 1.4rem;
  font-weight: 800;
  letter-spacing: -0.02em;
  margin: 0 0 0.7rem;
  color: var(--navy);
}
.card p { color: var(--ink-2); margin: 0 0 1rem; font-size: 0.97rem; }
.card ul { margin: 0; padding-left: 1.1rem; font-size: 0.9rem; color: var(--ink-2); }
.card ul li { margin-bottom: 0.3rem; }

/* ===== Gallery (Before & After) ===== */
.gallery { padding: 6rem 0; background: var(--cream); }
.gallery__grid {
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 2rem;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1.4rem;
}
.gallery__item {
  margin: 0;
  border: 2.5px solid var(--navy);
  border-radius: var(--radius-lg);
  overflow: hidden;
  background: var(--navy);
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.gallery__item:hover {
  transform: translate(-4px, -4px);
  box-shadow: 8px 8px 0 var(--navy);
}
.gallery__item img {
  width: 100%;
  height: auto;
  display: block;
  background: var(--navy);
}
.gallery__item figcaption {
  padding: 1rem 1.4rem;
  background: var(--paper);
  font-size: 0.95rem;
  font-weight: 600;
  color: var(--navy);
  border-top: 2.5px solid var(--navy);
}
.gallery__item--wide { grid-column: 1 / -1; }
.gallery__cta {
  text-align: center;
  margin-top: 2.5rem;
}
.gallery__cta a {
  font-weight: 700;
  color: var(--blue);
  border-bottom: 2px solid var(--blue);
  padding-bottom: 2px;
}
.gallery__cta a:hover { color: var(--navy); border-bottom-color: var(--navy); }

/* ===== How ===== */
.how {
  padding: 6rem 0;
  background: var(--navy);
  color: var(--cream);
}
.how .kicker { color: var(--sky); }
.how__steps {
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 2rem;
  list-style: none;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2rem;
}
.how__steps li {
  border: 2.5px solid var(--cream);
  border-radius: var(--radius-lg);
  padding: 2.2rem 1.8rem;
  position: relative;
  background: transparent;
}
.how__steps li:nth-child(2) { background: var(--blue); border-color: var(--cream); }
.how__steps li:nth-child(3) { background: var(--sky); color: var(--navy); border-color: var(--navy); }
.how__num {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 52px;
  height: 52px;
  border-radius: 50%;
  background: var(--sky);
  color: var(--navy);
  font-weight: 900;
  font-size: 1.5rem;
  font-family: 'Instrument Serif', serif;
  font-style: italic;
  margin-bottom: 1.4rem;
  border: 2.5px solid var(--navy);
}
.how__steps li:nth-child(2) .how__num { background: var(--cream); border-color: var(--navy); }
.how__steps li:nth-child(3) .how__num { background: var(--navy); color: var(--sky); }
.how__steps h3 {
  font-size: 1.3rem;
  font-weight: 800;
  margin: 0 0 0.6rem;
  letter-spacing: -0.02em;
}
.how__steps p { margin: 0; opacity: 0.9; font-size: 0.97rem; }

/* ===== Pricing ===== */
.pricing { padding: 6rem 0; }
.pricing__grid {
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 2rem;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.4rem;
  align-items: stretch;
}
.tier {
  position: relative;
  background: var(--paper);
  border: 2.5px solid var(--navy);
  border-radius: var(--radius-lg);
  padding: 2.2rem;
  display: flex;
  flex-direction: column;
}
.tier header h3 {
  font-size: 1.4rem;
  font-weight: 800;
  margin: 0 0 0.4rem;
  letter-spacing: -0.02em;
  color: var(--navy);
}
.tier header p {
  color: var(--muted);
  font-size: 0.92rem;
  margin: 0 0 1.6rem;
}
.tier__price {
  font-size: 3.6rem;
  font-weight: 900;
  letter-spacing: -0.04em;
  line-height: 1;
  margin-bottom: 1.6rem;
  display: flex;
  align-items: baseline;
  gap: 0.15rem;
  color: var(--navy);
}
.tier__price span { font-size: 1.5rem; font-weight: 800; transform: translateY(-1rem); }
.tier__price small { font-size: 0.95rem; font-weight: 600; color: var(--muted); margin-left: 0.3rem; }
.tier__price small:first-child {
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--blue);
  margin: 0 0.5rem 0 0;
  align-self: center;
  transform: translateY(-0.6rem);
}
.tier--featured .tier__price small:first-child { color: var(--sky); }
.tier ul {
  list-style: none;
  padding: 0;
  margin: 0 0 1.8rem;
  font-size: 0.97rem;
}
.tier ul li {
  padding: 0.55rem 0;
  border-bottom: 1px dashed var(--line);
  display: flex;
  align-items: center;
  gap: 0.6rem;
  color: var(--ink-2);
}
.tier ul li:before {
  content: "✓";
  color: var(--blue);
  font-weight: 800;
}
.tier--featured {
  background: var(--navy);
  color: var(--cream);
  transform: scale(1.03);
  box-shadow: var(--shadow-lg);
}
.tier--featured header h3 { color: var(--cream); }
.tier--featured header p { color: var(--sky-2); }
.tier--featured .tier__price { color: var(--cream); }
.tier--featured ul li { border-bottom-color: rgba(255,255,255,0.18); color: var(--sky-2); }
.tier--featured ul li:before { color: var(--sky); }
.tier--featured .btn--primary { background: var(--sky); color: var(--navy); border-color: var(--sky); }
.tier--featured .btn--primary:hover { background: var(--paper); color: var(--navy); }
.tier__badge {
  position: absolute;
  top: -14px;
  right: 24px;
  background: var(--sky);
  color: var(--navy);
  border: 2px solid var(--navy);
  font-size: 0.78rem;
  font-weight: 800;
  letter-spacing: 0.04em;
  padding: 0.35rem 0.8rem;
  border-radius: 999px;
  text-transform: uppercase;
}
.tier > .btn { margin-top: auto; }
.pricing__cards {
  max-width: 980px;
  margin: 0 auto;
  padding: 0 2rem;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1.4rem;
}
.pricing__card {
  background: var(--paper);
  border: 2.5px solid var(--navy);
  border-radius: var(--radius-lg);
  padding: 2rem 2rem 1.8rem;
  text-align: center;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.pricing__card:hover {
  transform: translate(-4px, -4px);
  box-shadow: 8px 8px 0 var(--navy);
}
.pricing__card-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 64px;
  height: 64px;
  border-radius: 50%;
  background: var(--sky);
  color: var(--navy);
  margin-bottom: 1.2rem;
  border: 2.5px solid var(--navy);
}
.pricing__card h3 {
  font-size: 1.35rem;
  font-weight: 800;
  letter-spacing: -0.02em;
  margin: 0 0 0.5rem;
  color: var(--navy);
}
.pricing__card p {
  margin: 0;
  color: var(--ink-2);
  font-size: 0.97rem;
  max-width: 36ch;
  margin-left: auto;
  margin-right: auto;
}
.pricing__cta {
  max-width: 980px;
  margin: 3rem auto 0;
  padding: 2.8rem 2rem;
  background: var(--navy);
  color: var(--cream);
  border-radius: var(--radius-lg);
  text-align: center;
  position: relative;
  overflow: hidden;
}
.pricing__cta::before {
  content: '';
  position: absolute;
  top: -100px;
  right: -100px;
  width: 280px;
  height: 280px;
  border-radius: 50%;
  background: radial-gradient(circle, var(--blue) 0%, transparent 70%);
  opacity: 0.45;
  pointer-events: none;
}
.pricing__cta::after {
  content: '';
  position: absolute;
  bottom: -120px;
  left: -120px;
  width: 280px;
  height: 280px;
  border-radius: 50%;
  background: radial-gradient(circle, var(--sky) 0%, transparent 70%);
  opacity: 0.18;
  pointer-events: none;
}
.pricing__cta h3 {
  position: relative;
  font-size: clamp(1.6rem, 3vw, 2.2rem);
  font-weight: 900;
  letter-spacing: -0.025em;
  margin: 0 0 0.5rem;
  color: var(--cream);
}
.pricing__cta > p {
  position: relative;
  margin: 0 0 1.8rem;
  color: var(--sky-2);
  font-size: 1.05rem;
}
.pricing__cta-buttons {
  position: relative;
  display: flex;
  justify-content: center;
  gap: 0.8rem;
  flex-wrap: wrap;
  margin-bottom: 1.6rem;
}
.btn--cta-primary {
  background: var(--sky);
  color: var(--navy);
  border-color: var(--sky);
}
.btn--cta-primary:hover {
  background: var(--paper);
  color: var(--navy);
  border-color: var(--paper);
  box-shadow: 4px 4px 0 var(--cream);
}
.btn--cta-secondary {
  background: transparent;
  color: var(--cream);
  border-color: var(--sky);
}
.btn--cta-secondary:hover {
  background: var(--cream);
  color: var(--navy);
  border-color: var(--cream);
  box-shadow: 4px 4px 0 var(--sky);
}
.pricing__cta small {
  position: relative;
  display: block;
  color: var(--sky-2);
  font-size: 0.85rem;
  letter-spacing: 0.02em;
}

/* ===== Reviews ===== */
.reviews { padding: 6rem 0; background: var(--sky-3); }
.reviews__grid {
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 2rem;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1.4rem;
}
.reviews__cta {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  margin-top: 1rem;
  font-weight: 700;
  color: var(--navy);
  padding: 0.6rem 1rem;
  border-radius: 999px;
  background: var(--paper);
  border: 1.5px solid var(--navy);
  transition: transform 0.15s ease, box-shadow 0.15s ease;
}
.reviews__cta:hover { transform: translate(-2px,-2px); box-shadow: 4px 4px 0 var(--navy); }
.quote {
  background: var(--paper);
  border: 2.5px solid var(--navy);
  border-radius: var(--radius-lg);
  padding: 2rem;
  margin: 0;
}
.quote--accent { background: var(--sky); }
.quote__stars {
  color: var(--gold);
  font-size: 1.1rem;
  letter-spacing: 0.15em;
  margin-bottom: 1rem;
}
.quote blockquote {
  font-size: 1.22rem;
  line-height: 1.4;
  font-weight: 500;
  letter-spacing: -0.01em;
  margin: 0 0 1.2rem;
  color: var(--navy);
}
.quote figcaption {
  font-size: 0.92rem;
  color: var(--muted);
}
.quote figcaption b { color: var(--navy); }

/* ===== Why ===== */
.why { padding: 6rem 0; }
.why__grid {
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 2rem;
  display: grid;
  grid-template-columns: 0.9fr 1.1fr;
  gap: 4rem;
  align-items: start;
}
.why__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1.4rem;
}
.why__list li {
  background: var(--paper);
  border: 2.5px solid var(--navy);
  border-radius: var(--radius);
  padding: 1.6rem;
}
.why__list li:nth-child(1) { background: var(--sky); }
.why__list li:nth-child(4) { background: var(--sky-2); }
.why__list h4 {
  font-size: 1.08rem;
  font-weight: 800;
  margin: 0 0 0.4rem;
  letter-spacing: -0.01em;
  color: var(--navy);
}
.why__list p { margin: 0; color: var(--ink-2); font-size: 0.95rem; }

/* ===== FAQ ===== */
.faq { padding: 6rem 0; background: var(--navy); color: var(--cream); }
.faq .kicker { color: var(--sky); }
.faq__list {
  max-width: 820px;
  margin: 0 auto;
  padding: 0 2rem;
}
.faq__list details {
  border-top: 1px solid rgba(168, 205, 227, 0.25);
  padding: 1.4rem 0;
}
.faq__list details:last-child { border-bottom: 1px solid rgba(168, 205, 227, 0.25); }
.faq__list summary {
  list-style: none;
  cursor: pointer;
  font-size: 1.15rem;
  font-weight: 700;
  letter-spacing: -0.01em;
  display: flex;
  justify-content: space-between;
  align-items: center;
  color: var(--cream);
}
.faq__list summary::-webkit-details-marker { display: none; }
.faq__icon {
  font-family: 'Instrument Serif', serif;
  font-size: 1.6rem;
  color: var(--sky);
  transition: transform 0.2s ease;
}
.faq__list details[open] .faq__icon { transform: rotate(45deg); }
.faq__list details p {
  margin: 0.9rem 0 0;
  color: var(--sky-2);
  font-size: 1rem;
  max-width: 65ch;
}

/* ===== Book (intake form) ===== */
.book { padding: 6rem 0; background: var(--navy); color: var(--cream); position: relative; overflow: hidden; }
.book::before {
  content: '';
  position: absolute;
  top: -200px;
  right: -200px;
  width: 500px;
  height: 500px;
  border-radius: 50%;
  background: radial-gradient(circle, var(--blue) 0%, transparent 70%);
  opacity: 0.4;
  pointer-events: none;
}
.book__top {
  position: relative;
  max-width: 820px;
  margin: 0 auto 3rem;
  padding: 0 2rem;
  text-align: center;
}
.book__top p { font-size: 1.1rem; opacity: 0.92; max-width: 56ch; margin: 1.2rem auto 0; }
.book__contact {
  margin-top: 1.4rem;
}
.book__contact a {
  display: inline-flex;
  align-items: center;
  gap: 0.6rem;
  color: var(--sky);
  font-size: 1.02rem;
}
.book__contact a:hover strong { color: var(--cream); }
.book__contact strong { color: var(--paper); font-size: 1.12rem; letter-spacing: 0.02em; }

.book__form {
  background: var(--cream);
  color: var(--navy);
  border-radius: var(--radius-lg);
  border: 2.5px solid var(--navy);
  padding: 2.2rem;
  box-shadow: 14px 14px 0 var(--sky);
}
.book__form--full {
  position: relative;
  max-width: 920px;
  margin: 0 auto;
  padding: 2.6rem;
}

.book__form-fields {
  display: flex;
  flex-direction: column;
  gap: 1.6rem;
}

/* Fieldset section */
.book__section {
  border: none;
  border-top: 1px solid var(--line);
  padding: 1.6rem 0 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 1rem;
}
.book__section:first-of-type { border-top: none; padding-top: 0; }
.book__section legend {
  font-size: 1.15rem;
  font-weight: 800;
  color: var(--navy);
  letter-spacing: -0.01em;
  display: inline-flex;
  align-items: center;
  gap: 0.65rem;
  padding: 0;
}
.book__step {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: var(--sky);
  color: var(--navy);
  font-size: 0.78rem;
  font-weight: 800;
  letter-spacing: 0.02em;
  border: 2px solid var(--navy);
  font-family: 'Inter', sans-serif;
}
.book__section-hint {
  margin: 0;
  font-size: 0.92rem;
  color: var(--muted);
}

/* Row of inputs */
.book__row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.9rem;
}
.book__row--2 { grid-template-columns: 1fr 1fr; }

/* Field container */
.book__field {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
.book__label {
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: var(--ink-2);
}
.book__hint {
  font-size: 0.78rem;
  color: var(--muted);
  letter-spacing: 0;
  text-transform: none;
  font-weight: 500;
  width: 100%;
}

/* Input labels */
.book__form label {
  display: flex;
  flex-direction: column;
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: var(--ink-2);
}
.book__form label.full { grid-column: 1 / -1; }
.book__form input[type="text"],
.book__form input[type="email"],
.book__form input[type="tel"],
.book__form input[type="number"],
.book__form input[type="date"],
.book__form select,
.book__form textarea {
  margin-top: 0.4rem;
  padding: 0.85rem 1rem;
  border: 2px solid var(--navy);
  border-radius: 12px;
  font-family: inherit;
  font-size: 1rem;
  font-weight: 500;
  background: var(--paper);
  color: var(--navy);
  letter-spacing: 0;
  text-transform: none;
}
.book__form input:focus,
.book__form select:focus,
.book__form textarea:focus {
  outline: none;
  background: var(--sky-3);
  box-shadow: 0 0 0 3px var(--sky);
}
.book__form textarea { resize: vertical; min-height: 70px; }
.book__form button[type="submit"] { margin-top: 0.6rem; }
.book__fine {
  text-align: center;
  font-size: 0.82rem;
  color: var(--muted);
  margin: 0.4rem 0 0;
  text-transform: none;
  letter-spacing: 0;
  font-weight: 500;
}

/* Pill-style radio buttons */
.pillgroup {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}
.pill {
  cursor: pointer;
  position: relative;
  text-transform: none;
  letter-spacing: 0;
}
.pill input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}
.pill span {
  display: inline-flex;
  align-items: center;
  padding: 0.55rem 1rem;
  border: 2px solid var(--navy);
  border-radius: 999px;
  background: var(--paper);
  color: var(--navy);
  font-size: 0.92rem;
  font-weight: 600;
  transition: background 0.15s ease, color 0.15s ease, transform 0.15s ease;
}
.pill:hover span { background: var(--sky-3); }
.pill input:checked + span {
  background: var(--navy);
  color: var(--sky);
  border-color: var(--navy);
}
.pill input:focus-visible + span {
  box-shadow: 0 0 0 3px var(--sky);
}

/* Checkbox grid (boxes) */
.checkgrid {
  display: grid;
  gap: 0.6rem;
}
.checkgrid--2 { grid-template-columns: repeat(2, 1fr); }
.checkgrid--4 { grid-template-columns: repeat(4, 1fr); }
.check {
  cursor: pointer;
  display: flex;
  align-items: center;
  gap: 0.6rem;
  padding: 0.7rem 0.9rem;
  border: 2px solid var(--navy);
  border-radius: 12px;
  background: var(--paper);
  font-size: 0.92rem;
  font-weight: 600;
  color: var(--navy);
  text-transform: none;
  letter-spacing: 0;
  transition: background 0.15s ease;
}
.check:hover { background: var(--sky-3); }
.check input {
  appearance: none;
  -webkit-appearance: none;
  width: 18px;
  height: 18px;
  border: 2px solid var(--navy);
  border-radius: 4px;
  background: var(--paper);
  cursor: pointer;
  flex-shrink: 0;
  position: relative;
  margin: 0;
}
.check input:checked {
  background: var(--navy);
  border-color: var(--navy);
}
.check input:checked::after {
  content: '';
  position: absolute;
  left: 4px;
  top: 0px;
  width: 6px;
  height: 11px;
  border: solid var(--sky);
  border-width: 0 2.5px 2.5px 0;
  transform: rotate(45deg);
}
.check input:focus-visible {
  box-shadow: 0 0 0 3px var(--sky);
  outline: none;
}
.check--block {
  display: flex;
  width: 100%;
  align-items: flex-start;
  padding: 1rem;
  font-weight: 500;
}
.check--block span { line-height: 1.4; }
.success {
  text-align: center;
  padding: 2rem 0;
}
.success__check {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 64px;
  height: 64px;
  border-radius: 50%;
  background: var(--sky);
  border: 2.5px solid var(--navy);
  font-size: 2rem;
  font-weight: 900;
  margin-bottom: 1rem;
  color: var(--navy);
}
.success h3 { font-size: 1.5rem; margin: 0 0 0.6rem; letter-spacing: -0.02em; color: var(--navy); }
.success p { color: var(--ink-2); margin: 0; }
.success a { color: var(--blue); }

/* ===== Footer ===== */
.footer { background: var(--navy); color: var(--cream); padding: 5rem 0 1.5rem; }
.footer__top {
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 2rem 3rem;
  display: grid;
  grid-template-columns: 1.6fr 1fr 1fr 1fr;
  gap: 3rem;
  border-bottom: 1px solid rgba(168, 205, 227, 0.2);
}
.footer__brand p { color: var(--sky-2); margin-top: 1rem; max-width: 36ch; font-size: 0.95rem; }
.footer__col h5 {
  font-size: 0.82rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--sky);
  margin: 0 0 1rem;
}
.footer__col ul { list-style: none; padding: 0; margin: 0; }
.footer__col li { margin-bottom: 0.5rem; color: var(--sky-2); font-size: 0.95rem; }
.footer__col a { color: var(--sky-2); }
.footer__col a:hover { color: var(--paper); }
.footer__bottom {
  max-width: 1280px;
  margin: 0 auto;
  padding: 1.5rem 2rem 0;
  display: flex;
  justify-content: space-between;
  color: var(--blue);
  font-size: 0.85rem;
}

/* ===== Scroll-to-top button ===== */
.scroll-top {
  position: fixed;
  right: 1.2rem;
  bottom: 1.2rem;
  width: 48px;
  height: 48px;
  border-radius: 50%;
  background: var(--navy);
  color: var(--sky);
  border: 2px solid var(--navy);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  z-index: 40;
  opacity: 0;
  transform: translateY(20px);
  pointer-events: none;
  transition: opacity 0.25s ease, transform 0.25s ease, background 0.15s ease;
  box-shadow: 0 8px 16px -8px rgba(14,39,64,0.4);
}
.scroll-top.is-visible {
  opacity: 1;
  transform: translateY(0);
  pointer-events: auto;
}
.scroll-top:hover { background: var(--blue); }

/* ===== Mobile floating call button (cleaning is phone-driven) ===== */
.mobile-call-fab {
  display: none;
  position: fixed;
  left: 1.2rem;
  bottom: 1.2rem;
  background: var(--lime, #C7F051);
  color: var(--navy);
  font-weight: 800;
  font-size: 0.95rem;
  letter-spacing: 0.01em;
  padding: 0.85rem 1.15rem;
  border-radius: 999px;
  border: 2px solid var(--navy);
  text-decoration: none;
  z-index: 40;
  box-shadow: 0 8px 18px -8px rgba(14,39,64,0.45);
  gap: 0.5rem;
  align-items: center;
}
.mobile-call-fab:hover { background: var(--sky); }

/* ===== Gallery lightbox ===== */
.lightbox {
  position: fixed;
  inset: 0;
  background: rgba(10, 27, 45, 0.92);
  z-index: 100;
  display: none;
  align-items: center;
  justify-content: center;
  padding: 2rem;
  animation: fadeIn 0.2s ease;
}
.lightbox.is-open { display: flex; }
.lightbox__img {
  max-width: min(1200px, 95vw);
  max-height: 88vh;
  border: 3px solid var(--cream);
  border-radius: 8px;
  background: var(--navy);
  display: block;
}
.lightbox__close {
  position: absolute;
  top: 1rem;
  right: 1rem;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: var(--cream);
  color: var(--navy);
  border: 2px solid var(--navy);
  font-size: 1.4rem;
  font-weight: 800;
  cursor: pointer;
}
.lightbox__caption {
  position: absolute;
  bottom: 1.2rem;
  left: 50%;
  transform: translateX(-50%);
  background: var(--cream);
  color: var(--navy);
  font-weight: 600;
  font-size: 0.92rem;
  padding: 0.55rem 1rem;
  border-radius: 999px;
  border: 1.5px solid var(--navy);
  max-width: 90vw;
  text-align: center;
}
.gallery__item img { cursor: zoom-in; }
@keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } }

/* ===== Inline form error states ===== */
.field-error {
  display: none;
  color: #b22222;
  font-size: 0.82rem;
  font-weight: 600;
  margin-top: 0.35rem;
  text-transform: none;
  letter-spacing: 0;
}
.book__form input.is-invalid,
.book__form select.is-invalid,
.book__form textarea.is-invalid {
  border-color: #b22222;
  background: #fef5f5;
}
.book__form input.is-invalid + .field-error,
.book__form select.is-invalid + .field-error,
.book__form textarea.is-invalid + .field-error {
  display: block;
}
.form-message {
  margin: 1rem 0;
  padding: 0.95rem 1.1rem;
  border-radius: 10px;
  font-weight: 600;
  font-size: 0.95rem;
}
.form-message--error {
  background: #fef5f5;
  border: 1.5px solid #b22222;
  color: #b22222;
}
.form-draft-banner {
  display: none;
  margin: 0 0 1.4rem;
  padding: 0.85rem 1.1rem;
  background: var(--sky-3);
  border: 1.5px dashed var(--blue);
  border-radius: 10px;
  font-size: 0.92rem;
  color: var(--navy);
  display: flex;
  align-items: center;
  gap: 0.8rem;
  flex-wrap: wrap;
}
.form-draft-banner button {
  background: var(--navy);
  color: var(--sky);
  border: none;
  padding: 0.4rem 0.85rem;
  border-radius: 999px;
  font-weight: 700;
  cursor: pointer;
  font-size: 0.85rem;
}
.form-draft-banner.is-hidden { display: none; }

/* ===== Privacy/Policies page typography (extracted from inline styles) ===== */
.legal-doc { max-width: 820px; margin: 0 auto; padding: 1rem 2rem 4rem; }
.legal-doc h2 {
  font-size: 1.4rem;
  font-weight: 800;
  color: var(--navy);
  margin: 2.5rem 0 0.6rem;
  letter-spacing: -0.01em;
}
.legal-doc p { line-height: 1.65; }
.legal-doc p + p { margin-top: 0.7rem; }
.legal-doc .legal-doc__lead {
  color: var(--muted);
  font-size: 0.95rem;
  margin: 0 0 0.8rem;
}
.legal-doc ul {
  padding-left: 1.4rem;
  line-height: 1.7;
  margin: 0 0 0.6rem;
}
.legal-doc a { color: var(--blue); font-weight: 600; }
.legal-doc a:hover { text-decoration: underline; }

/* ============================================================
   v3 INTERACTIVITY LAYER
   ============================================================ */

/* ---- Scroll reveal (set by IntersectionObserver in scripts.js) ---- */
.reveal {
  opacity: 0;
  transform: translateY(22px);
  transition: opacity 0.7s cubic-bezier(0.22, 0.61, 0.36, 1),
              transform 0.7s cubic-bezier(0.22, 0.61, 0.36, 1);
  will-change: opacity, transform;
}
.reveal.is-visible { opacity: 1; transform: translateY(0); }
.reveal--delay-1 { transition-delay: 0.1s; }
.reveal--delay-2 { transition-delay: 0.2s; }
.reveal--delay-3 { transition-delay: 0.3s; }
.reveal--delay-4 { transition-delay: 0.4s; }
.reveal--scale { transform: translateY(22px) scale(0.96); }
.reveal--scale.is-visible { transform: translateY(0) scale(1); }
@media (prefers-reduced-motion: reduce) {
  .reveal, .reveal--scale { opacity: 1 !important; transform: none !important; }
}

/* ---- Hero animations ---- */
.hero {
  position: relative;
  overflow: visible;
}
.hero::before {
  content: '';
  position: absolute;
  inset: -10% -5% auto -5%;
  height: 60%;
  background:
    radial-gradient(ellipse 50% 40% at 20% 20%, var(--sky-2) 0%, transparent 60%),
    radial-gradient(ellipse 40% 35% at 80% 30%, var(--peach, #FFE9D6) 0%, transparent 60%),
    radial-gradient(ellipse 35% 30% at 50% 80%, var(--sky-3) 0%, transparent 60%);
  opacity: 0.6;
  z-index: -1;
  filter: blur(20px);
  animation: hero-mesh 18s ease-in-out infinite alternate;
  pointer-events: none;
}
@keyframes hero-mesh {
  0%   { transform: translate(0, 0) scale(1); }
  50%  { transform: translate(-2%, 2%) scale(1.03); }
  100% { transform: translate(2%, -1%) scale(0.98); }
}

.hero__logo-frame {
  animation: logo-float 6s ease-in-out infinite;
}
@keyframes logo-float {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  50%      { transform: translateY(-10px) rotate(0.5deg); }
}

/* Twinkling sparkles around the hero logo */
.hero__sparkles {
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 2;
}
.sparkle {
  position: absolute;
  display: block;
  width: 22px;
  height: 22px;
  color: var(--sky);
  filter: drop-shadow(0 0 6px rgba(168, 205, 227, 0.55));
  animation: sparkle-twinkle 3.2s ease-in-out infinite;
}
.sparkle--lg { width: 32px; height: 32px; }
.sparkle--sm { width: 14px; height: 14px; }
.sparkle--gold { color: var(--gold); filter: drop-shadow(0 0 6px rgba(232, 184, 68, 0.6)); }
.sparkle--1 { top: 8%;  left: 6%;  animation-delay: 0s; }
.sparkle--2 { top: 4%;  right: 10%; animation-delay: 0.6s; }
.sparkle--3 { bottom: 18%; left: -2%; animation-delay: 1.2s; }
.sparkle--4 { bottom: 6%; right: 4%; animation-delay: 1.8s; }
.sparkle--5 { top: 50%; right: -2%; animation-delay: 2.4s; }
@keyframes sparkle-twinkle {
  0%, 100% { opacity: 0;   transform: scale(0.5) rotate(0deg); }
  40%      { opacity: 1;   transform: scale(1.15) rotate(45deg); }
  70%      { opacity: 0.7; transform: scale(0.95) rotate(180deg); }
}
@media (prefers-reduced-motion: reduce) {
  .sparkle, .hero__logo-frame, .hero::before { animation: none !important; }
}

/* Scroll-down cue */
.scroll-cue {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  margin-top: 1.6rem;
  color: var(--blue);
  font-size: 0.82rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  animation: scroll-cue 2.4s ease-in-out infinite;
}
.scroll-cue svg { display: inline-block; }
@keyframes scroll-cue {
  0%, 100% { transform: translateY(0); opacity: 1; }
  50%      { transform: translateY(6px); opacity: 0.6; }
}

/* ---- Stat counter ---- */
.stat b { font-variant-numeric: tabular-nums; }
.stat[data-counted] b { animation: stat-pop 0.4s ease; }
@keyframes stat-pop {
  0%   { transform: scale(0.9); }
  60%  { transform: scale(1.08); }
  100% { transform: scale(1); }
}

/* ---- Buttons: shine sweep on hover ---- */
.btn { position: relative; overflow: hidden; isolation: isolate; }
.btn::after {
  content: '';
  position: absolute;
  top: 0;
  left: -120%;
  width: 60%;
  height: 100%;
  background: linear-gradient(120deg, transparent 0%, rgba(255,255,255,0.35) 50%, transparent 100%);
  transform: skewX(-20deg);
  transition: left 0.6s ease;
  pointer-events: none;
  z-index: -1;
}
.btn:hover::after { left: 130%; }

/* ---- Cards: subtle 3D tilt + glowing edge on hover ---- */
.card--service {
  transform-style: preserve-3d;
  perspective: 1000px;
}
.card--service .card__num {
  display: inline-block;
  transition: transform 0.35s cubic-bezier(0.22, 0.61, 0.36, 1);
}
.card--service:hover .card__num {
  transform: translateY(-6px) scale(1.15);
}
.card--service::before {
  content: '';
  position: absolute;
  inset: -2px;
  border-radius: var(--radius-lg);
  background: linear-gradient(135deg, var(--blue), var(--sky), var(--blue));
  opacity: 0;
  transition: opacity 0.35s ease;
  z-index: -1;
  pointer-events: none;
}
.card--service:hover::before { opacity: 0.4; }

/* ---- Service tier cards (pricing) glow ---- */
.tier:hover {
  transform: translateY(-4px);
}
.tier { transition: transform 0.3s ease, box-shadow 0.3s ease; }

/* ---- Animated underline on links ---- */
.legal-doc a { position: relative; }
.legal-doc a::after {
  content: '';
  position: absolute;
  left: 0; right: 0; bottom: -2px;
  height: 1.5px;
  background: currentColor;
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 0.3s ease;
}
.legal-doc a:hover::after { transform: scaleX(1); }

/* ---- Reviews marquee (infinite scroll) ---- */
.reviews-marquee {
  position: relative;
  overflow: hidden;
  margin: 0 auto;
  max-width: 100%;
  -webkit-mask-image: linear-gradient(to right, transparent 0, black 80px, black calc(100% - 80px), transparent 100%);
          mask-image: linear-gradient(to right, transparent 0, black 80px, black calc(100% - 80px), transparent 100%);
}
.reviews-marquee__track {
  display: flex;
  gap: 1.4rem;
  width: max-content;
  animation: reviews-scroll 50s linear infinite;
  padding: 1rem 0;
}
.reviews-marquee:hover .reviews-marquee__track { animation-play-state: paused; }
.reviews-marquee .quote {
  flex: 0 0 380px;
  margin: 0;
}
@keyframes reviews-scroll {
  from { transform: translateX(0); }
  to   { transform: translateX(-50%); }
}
@media (prefers-reduced-motion: reduce) {
  .reviews-marquee__track { animation: none; }
  .reviews-marquee { mask-image: none; -webkit-mask-image: none; }
}

/* ---- Before / After interactive slider ---- */
.compare {
  position: relative;
  max-width: 1100px;
  margin: 0 auto 2.5rem;
  border: 2.5px solid var(--navy);
  border-radius: var(--radius-lg);
  overflow: hidden;
  box-shadow: var(--shadow-lg);
  user-select: none;
  touch-action: pan-y;
  aspect-ratio: 16 / 10;
  background: var(--navy);
}
.compare__img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  pointer-events: none;
}
.compare__img--after {
  clip-path: inset(0 0 0 50%);
  transition: clip-path 0.05s linear;
}
.compare__label {
  position: absolute;
  top: 14px;
  background: var(--paper);
  color: var(--navy);
  font-weight: 800;
  font-size: 0.8rem;
  letter-spacing: 0.1em;
  padding: 0.45rem 0.8rem;
  border-radius: 999px;
  border: 2px solid var(--navy);
  z-index: 3;
}
.compare__label--before { left: 14px; }
.compare__label--after  { right: 14px; }
.compare__divider {
  position: absolute;
  top: 0; bottom: 0;
  left: 50%;
  width: 3px;
  background: var(--paper);
  z-index: 4;
  pointer-events: none;
  box-shadow: 0 0 0 1px var(--navy);
}
.compare__handle {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 52px;
  height: 52px;
  background: var(--paper);
  border: 3px solid var(--navy);
  border-radius: 50%;
  transform: translate(-50%, -50%);
  cursor: ew-resize;
  z-index: 5;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--navy);
  font-weight: 900;
  font-size: 1.1rem;
  box-shadow: 0 6px 14px -4px rgba(14,39,64,0.4);
  transition: transform 0.15s ease, background 0.15s ease;
}
.compare__handle:hover { background: var(--sky); }
.compare__handle:active { transform: translate(-50%, -50%) scale(0.95); }
.compare:focus-within .compare__handle {
  box-shadow: 0 0 0 4px var(--sky), 0 6px 14px -4px rgba(14,39,64,0.4);
}
.compare__hint {
  position: absolute;
  bottom: 14px;
  left: 50%;
  transform: translateX(-50%);
  background: var(--navy);
  color: var(--sky);
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.05em;
  padding: 0.4rem 0.8rem;
  border-radius: 999px;
  z-index: 3;
  opacity: 0.95;
  pointer-events: none;
  animation: hint-pulse 3s ease-in-out infinite;
}
@keyframes hint-pulse {
  0%, 100% { transform: translateX(-50%) translateY(0); }
  50%      { transform: translateX(-50%) translateY(-4px); }
}

/* ---- Marquee enhancement: pause on hover ---- */
.marquee:hover .marquee__track { animation-play-state: paused; }

/* ---- FAQ: smoother expand ---- */
.faq__list details {
  transition: background 0.25s ease;
}
.faq__list details[open] summary { color: var(--sky); }
.faq__list details > p {
  animation: faq-slide 0.4s ease;
}
@keyframes faq-slide {
  from { opacity: 0; transform: translateY(-6px); }
  to   { opacity: 1; transform: translateY(0); }
}

/* ---- Gallery card refinement ---- */
.gallery__item {
  transition: transform 0.4s cubic-bezier(0.22, 0.61, 0.36, 1),
              box-shadow 0.4s cubic-bezier(0.22, 0.61, 0.36, 1);
}
.gallery__item img {
  transition: transform 0.5s ease;
}
.gallery__item:hover img { transform: scale(1.02); }

/* ---- Hero CTA buttons get extra polish ---- */
.hero__ctas .btn--primary {
  position: relative;
}
.hero__ctas .btn--primary::before {
  content: '';
  position: absolute;
  inset: -3px;
  background: linear-gradient(135deg, var(--blue), var(--sky), var(--blue));
  border-radius: inherit;
  z-index: -2;
  opacity: 0;
  transition: opacity 0.3s ease;
  filter: blur(8px);
}
.hero__ctas .btn--primary:hover::before { opacity: 0.7; }

/* ============================================================
   v4 SENIOR-TEAM PASS
   ============================================================ */

/* ===== Multi-step form wizard ===== */
.wizard-progress {
  display: flex;
  gap: 0.45rem;
  margin: 0 0 2.3rem;
  padding: 0 0.2rem;
  counter-reset: wizard;
}
.wizard-progress__step {
  flex: 1;
  position: relative;
  padding-top: 18px;
}
.wizard-progress__bar {
  height: 6px;
  border-radius: 999px;
  background: var(--line);
  transition: background 0.35s ease, box-shadow 0.35s ease;
}
.wizard-progress__step.is-done .wizard-progress__bar { background: var(--blue); }
.wizard-progress__step.is-active .wizard-progress__bar {
  background: var(--blue);
  box-shadow: 0 0 0 4px var(--sky-3);
}
.wizard-progress__label {
  display: block;
  margin-top: 10px;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--muted);
  text-align: center;
}
.wizard-progress__step.is-active .wizard-progress__label,
.wizard-progress__step.is-done .wizard-progress__label { color: var(--navy); }

/* When wizard is active, hide all sections except the active one */
.book__form--wizard .book__section { display: none; animation: wizard-fade 0.4s ease; }
.book__form--wizard .book__section.is-active { display: flex; }
@keyframes wizard-fade {
  from { opacity: 0; transform: translateY(12px); }
  to   { opacity: 1; transform: translateY(0); }
}

.wizard-nav {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 0.8rem;
  margin-top: 1.8rem;
  flex-wrap: wrap;
}
.wizard-nav__left { display: flex; align-items: center; gap: 0.8rem; flex-wrap: wrap; }
.wizard-nav__right { display: flex; gap: 0.8rem; flex-wrap: wrap; }
.wizard-nav .btn { min-width: 130px; }
.wizard-nav__hint {
  font-size: 0.8rem;
  color: var(--muted);
  margin: 0;
}
.book__form--wizard .book__fine { display: none; }
.book__form--wizard.is-on-final .book__fine { display: block; }

/* ===== Toast notifications ===== */
.toast {
  position: fixed;
  left: 50%;
  bottom: 6.5rem;
  transform: translateX(-50%) translateY(20px);
  background: var(--navy);
  color: var(--cream);
  padding: 0.95rem 1.3rem;
  border-radius: 14px;
  border: 2px solid var(--navy);
  box-shadow: 0 16px 32px -10px rgba(14,39,64,0.5);
  font-weight: 600;
  font-size: 0.95rem;
  max-width: 92vw;
  min-width: 280px;
  opacity: 0;
  z-index: 200;
  transition: transform 0.35s cubic-bezier(0.22, 0.61, 0.36, 1), opacity 0.25s ease;
  display: flex;
  align-items: center;
  gap: 0.7rem;
}
.toast.is-visible { transform: translateX(-50%) translateY(0); opacity: 1; }
.toast a { color: var(--sky); text-decoration: underline; font-weight: 700; }
.toast--success { background: #1d6a3e; border-color: #1d6a3e; }
.toast--error   { background: #a51c1c; border-color: #a51c1c; }

/* ===== Mobile sticky bottom action bar ===== */
.mobile-bar {
  display: none;
  position: fixed;
  left: 0; right: 0; bottom: 0;
  background: var(--navy);
  border-top: 1px solid rgba(255,255,255,0.12);
  padding: 0.4rem 0.3rem calc(0.4rem + env(safe-area-inset-bottom));
  z-index: 50;
  gap: 0;
  box-shadow: 0 -10px 20px -10px rgba(15,31,58,0.5);
}
.mobile-bar__item,
.mobile-bar a,
.mobile-bar button {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.22rem;
  padding: 0.5rem 0.2rem;
  color: #F5EFE3;
  background: none;
  border: none;
  border-radius: 12px;
  text-decoration: none;
  font: inherit;
  cursor: pointer;
  transition: background 0.15s ease, transform 0.15s ease;
}
.mobile-bar__item svg { color: #F5EFE3; }
.mobile-bar__item span {
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.07em;
  text-transform: uppercase;
  color: #F5EFE3;
}
.mobile-bar__item:active { transform: scale(0.94); background: rgba(255,255,255,0.06); }

/* ===== First-time customer welcome banner ===== */
.welcome-banner {
  display: none;
  position: relative;
  background: linear-gradient(120deg, var(--sky), var(--peach, #FFE9D6));
  border-bottom: 2px solid var(--navy);
  padding: 0.85rem 3rem 0.85rem 1.4rem;
  text-align: center;
  font-weight: 600;
  font-size: 0.96rem;
  color: var(--navy);
}
.welcome-banner.is-visible { display: block; }
.welcome-banner__cta {
  display: inline-block;
  background: var(--navy);
  color: var(--sky);
  padding: 0.2rem 0.7rem;
  border-radius: 999px;
  margin-left: 0.4rem;
  font-weight: 800;
  font-size: 0.86rem;
  text-decoration: none;
}
.welcome-banner__close {
  position: absolute;
  right: 0.7rem;
  top: 50%;
  transform: translateY(-50%);
  background: transparent;
  color: var(--navy);
  border: none;
  font-size: 1.2rem;
  font-weight: 800;
  cursor: pointer;
  padding: 0.2rem 0.55rem;
  border-radius: 999px;
  line-height: 1;
}
.welcome-banner__close:hover { background: rgba(14,39,64,0.1); }

/* ===== Availability indicator ===== */
.availability {
  display: inline-flex;
  align-items: center;
  gap: 0.55rem;
  padding: 0.4rem 0.85rem;
  background: rgba(29, 106, 62, 0.1);
  border: 1.5px solid #1d6a3e;
  border-radius: 999px;
  font-size: 0.85rem;
  font-weight: 700;
  color: #1d6a3e;
  margin: 1rem 0 0;
  letter-spacing: 0.01em;
}
.availability__dot {
  width: 9px;
  height: 9px;
  background: #1d6a3e;
  border-radius: 50%;
  box-shadow: 0 0 0 0 rgba(29, 106, 62, 0.6);
  animation: avail-pulse 2.4s ease-out infinite;
}
@keyframes avail-pulse {
  0%   { box-shadow: 0 0 0 0 rgba(29, 106, 62, 0.55); }
  70%  { box-shadow: 0 0 0 10px rgba(29, 106, 62, 0); }
  100% { box-shadow: 0 0 0 0 rgba(29, 106, 62, 0); }
}

/* ===== About-Karla card (home page) ===== */
.about-section {
  padding: 6rem 0;
  background: var(--cream);
}
.about-grid {
  max-width: 1100px;
  margin: 0 auto;
  padding: 0 2rem;
  display: grid;
  grid-template-columns: 0.7fr 1.3fr;
  gap: 3rem;
  align-items: center;
}
.about-avatar {
  position: relative;
  aspect-ratio: 1;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--sky), var(--navy));
  border: 3px solid var(--navy);
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: 'Instrument Serif', serif;
  font-style: italic;
  font-size: clamp(6rem, 12vw, 9rem);
  color: var(--cream);
  font-weight: 400;
  box-shadow: 14px 14px 0 var(--sky);
  max-width: 320px;
  margin: 0 auto;
}
.about-avatar::after {
  content: '';
  position: absolute;
  inset: -8px;
  border: 2px dashed var(--navy);
  border-radius: 50%;
  animation: about-rotate 24s linear infinite;
}
@keyframes about-rotate {
  to { transform: rotate(360deg); }
}
.about-content .kicker { color: var(--blue); }
.about-content .display { margin-bottom: 1rem; }
.about-content blockquote {
  font-family: 'Instrument Serif', serif;
  font-style: italic;
  font-size: 1.4rem;
  line-height: 1.4;
  margin: 1.5rem 0;
  color: var(--ink-2);
  padding-left: 1.2rem;
  border-left: 4px solid var(--sky);
}
.about-stats {
  display: flex;
  gap: 1.5rem;
  flex-wrap: wrap;
  margin-top: 1.5rem;
}
.about-stats > div {
  padding: 0.7rem 1.1rem;
  background: var(--paper);
  border: 2px solid var(--navy);
  border-radius: 12px;
  text-align: center;
  min-width: 110px;
}
.about-stats b {
  display: block;
  font-size: 1.5rem;
  font-weight: 900;
  color: var(--navy);
  line-height: 1;
}
.about-stats span {
  font-size: 0.78rem;
  color: var(--muted);
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

/* ===== Service area section ===== */
.service-area {
  padding: 5rem 0;
  background: var(--sky-3);
}
.service-area__inner {
  max-width: 1100px;
  margin: 0 auto;
  padding: 0 2rem;
  text-align: center;
}
.service-area__cities {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.6rem;
  margin: 2rem auto;
  max-width: 900px;
}
.service-area__cities span {
  background: var(--paper);
  border: 2px solid var(--navy);
  border-radius: 999px;
  padding: 0.55rem 1.05rem;
  font-weight: 700;
  font-size: 0.92rem;
  color: var(--navy);
  transition: transform 0.2s ease, background 0.2s ease;
}
.service-area__cities span:hover {
  background: var(--sky);
  transform: translateY(-2px);
}
.service-area__note {
  font-size: 0.92rem;
  color: var(--muted);
  margin: 1rem 0 0;
}

/* ===== Topbar SMS link ===== */
.topbar__item--sms { color: var(--sky); font-weight: 700; }

/* ===== Print stylesheet (policies page especially) ===== */
@media print {
  .topbar, .nav, .scroll-top, .mobile-call-fab, .mobile-bar, .welcome-banner,
  .page-cta, #submitBanner, .skip-link, .nav__toggle {
    display: none !important;
  }
  body { background: white; color: black; }
  .page-header { padding-top: 0; }
  .legal-doc, section { max-width: none !important; }
  a { color: black !important; text-decoration: underline; }
  a[href]::after { content: " (" attr(href) ")"; font-size: 0.85em; color: #666; }
  a[href^="#"]::after, a[href^="tel:"]::after, a[href^="mailto:"]::after { content: ""; }
  .footer { border-top: 1px solid #999; padding: 1rem 0; }
  .footer__top { display: none; }
  h2 { break-after: avoid; }
  ul, p { break-inside: avoid; }
}

/* ===== Responsive ===== */
@media (max-width: 1180px) {
  .services__grid--four { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 980px) {
  .topbar__inner { gap: 0.6rem; padding: 0.5rem 1rem; font-size: 0.75rem; }
  .topbar__divider { display: none; }
  .nav { gap: 0.5rem; }
  .nav__toggle { display: inline-flex; }
  .nav__cta { padding: 0.7rem 1rem; font-size: 0.9rem; }
  /* Replace floating FAB pattern with sticky bottom bar on mobile */
  .mobile-call-fab { display: none; }
  .mobile-bar { display: flex; }
  body { padding-bottom: 5.2rem; }  /* room for the sticky bar */
  .scroll-top { right: 1rem; bottom: 5.4rem; }
  .toast { bottom: 7.5rem; }

  /* About-Karla grid stacks on mobile */
  .about-grid { grid-template-columns: 1fr; gap: 2rem; }
  .about-avatar { max-width: 220px; }

  /* Wizard nav stacks on small screens */
  .wizard-nav { flex-direction: column; align-items: stretch; }
  .wizard-nav__left, .wizard-nav__right { width: 100%; }
  .wizard-nav .btn { width: 100%; min-width: 0; }
  .wizard-progress__label { font-size: 0; }  /* labels too small on mobile */
  .wizard-progress__step::after {
    content: '';
  }

  /* Turn the nav links into a slide-down dropdown panel */
  .nav__links {
    display: flex;
    flex-direction: column;
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    background: var(--cream);
    border-bottom: 2px solid var(--navy);
    padding: 0.4rem 1.5rem 0.8rem;
    gap: 0;
    transform: translateY(-110%);
    opacity: 0;
    pointer-events: none;
    transition: transform 0.25s ease, opacity 0.2s ease;
    z-index: 49;
    box-shadow: 0 16px 32px -16px rgba(14, 39, 64, 0.18);
  }
  body.nav-open .nav__links {
    transform: translateY(0);
    opacity: 1;
    pointer-events: auto;
  }
  .nav__links a {
    padding: 0.95rem 0.2rem;
    border-bottom: 1px solid var(--line);
    font-size: 1.05rem;
    font-weight: 600;
  }
  .nav__links a:last-child { border-bottom: none; }
  .nav__links a.active { color: var(--blue); }
  .nav__links a.active::after { display: none; }
  .hero { padding-top: 2.5rem; }
  .hero__grid { grid-template-columns: 1fr; gap: 3rem; }
  .hero__art { max-width: 420px; margin: 0 auto; }
  .hero__logo-frame { box-shadow: none; }
  .stats { grid-template-columns: repeat(2, 1fr); gap: 0; }
  .stat { padding: 1rem; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
  .stat:nth-child(2) { border-right: none; }
  .stat:nth-child(3), .stat:nth-child(4) { border-bottom: none; }
  .stat:nth-child(4) { border-right: none; }
  .services__grid,
  .services__grid--four,
  .pricing__grid,
  .pricing__cards,
  .how__steps,
  .reviews__grid,
  .gallery__grid { grid-template-columns: 1fr; }
  .gallery__item--wide { grid-column: auto; }
  .pricing__cta { padding: 2.2rem 1.6rem; }
  .pricing__cta-buttons .btn { width: 100%; }
  .addons { flex-direction: column; align-items: flex-start; }

  /* Form */
  .book__form--full { padding: 1.6rem; }
  .book__row,
  .book__row--2,
  .checkgrid--2,
  .checkgrid--4 { grid-template-columns: 1fr; }
  .tier--featured { transform: none; }
  .why__grid { grid-template-columns: 1fr; gap: 2.5rem; }
  .why__list { grid-template-columns: 1fr; }
  .book__inner { grid-template-columns: 1fr; gap: 2.5rem; }
  .book__form-fields { grid-template-columns: 1fr; }
  .footer__top { grid-template-columns: 1fr 1fr; gap: 2rem; }
  .footer__bottom { flex-direction: column; gap: 0.4rem; }
  .display { font-size: clamp(2.4rem, 8vw, 3.4rem); }
}

@media (max-width: 520px) {
  .nav { padding: 0.8rem 1.2rem; }
  .hero { padding: 2rem 1.2rem; }
  .section__head, .services__grid, .how__steps, .pricing__grid, .reviews__grid, .why__grid, .faq__list, .book__inner, .footer__top, .footer__bottom { padding-left: 1.2rem; padding-right: 1.2rem; }
  .card, .tier, .quote, .book__form, .how__steps li { padding: 1.6rem; }
  .footer__top { grid-template-columns: 1fr; }
  .hero__sticker--1 { width: 88px; height: 88px; font-size: 0.7rem; top: -8px; right: -6px; }
}

/* ============================================================
   v6 — POLICIES PAGE EDITORIAL REDESIGN
   ============================================================ */

/* ---- Promise hero ---- */
.promise-hero {
  max-width: 900px;
  margin: 0 auto;
  padding: 3.5rem 2rem 2.5rem;
  text-align: center;
}
.promise-hero .kicker { justify-content: center; }
.promise-hero .display { margin: 0.4rem 0 0; }
.promise-divider {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.8rem;
  margin: 1.4rem 0 1.6rem;
}
.promise-divider span {
  height: 1.5px;
  width: 70px;
  background: linear-gradient(to var(--dir, right), transparent, var(--gold));
}
.promise-divider span:first-child { background: linear-gradient(to right, transparent, var(--gold)); }
.promise-divider span:last-child  { background: linear-gradient(to left, transparent, var(--gold)); }
.promise-divider i {
  width: 9px; height: 9px;
  transform: rotate(45deg);
  background: var(--gold);
  display: inline-block;
}
.promise-hero__sub {
  font-size: 1.15rem;
  line-height: 1.6;
  color: var(--ink-2);
  max-width: 620px;
  margin: 0 auto;
}

/* ---- Promise strip (5 icon columns) ---- */
.promise-strip {
  max-width: 1180px;
  margin: 0 auto;
  padding: 1rem 2rem 3.5rem;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0;
}
.promise-item {
  text-align: center;
  padding: 0.5rem 1.4rem;
  position: relative;
}
.promise-item + .promise-item::before {
  content: '';
  position: absolute;
  left: 0; top: 12%;
  height: 76%;
  width: 1px;
  background: var(--line);
}
.promise-item__icon {
  color: var(--gold);
  margin: 0 auto 0.9rem;
  display: flex;
  justify-content: center;
}
.promise-item h3 {
  font-family: 'Inter', sans-serif;
  font-size: 0.82rem;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--navy);
  margin: 0 0 0.5rem;
  line-height: 1.3;
}
.promise-item p {
  font-size: 0.9rem;
  color: var(--muted);
  margin: 0;
  line-height: 1.45;
}

/* ---- Policies intro ---- */
.policies-intro {
  text-align: center;
  max-width: 700px;
  margin: 0 auto;
  padding: 1rem 2rem 2.4rem;
}
.policies-intro .kicker { justify-content: center; }
.policies-intro .display { margin: 0.3rem 0 0.9rem; }
.policies-intro p { color: var(--ink-2); font-size: 1.05rem; margin: 0; }

/* ---- Policy cards grid ---- */
.policy-cards {
  max-width: 1180px;
  margin: 0 auto;
  padding: 0 2rem 3rem;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.6rem;
  align-items: start;
}
.policy-card {
  background: var(--paper);
  border: 1px solid var(--line);
  border-radius: 16px;
  box-shadow: 0 18px 40px -28px rgba(15,31,58,0.4);
  overflow: hidden;
}
.policy-card__head {
  display: flex;
  align-items: center;
  gap: 0.85rem;
  padding: 1.4rem 1.5rem;
  border-bottom: 1px solid var(--line);
  width: 100%;
  background: none;
  border-left: none; border-right: none; border-top: none;
  cursor: default;
  text-align: left;
  font: inherit;
}
.policy-card__icon {
  width: 44px; height: 44px;
  border-radius: 50%;
  background: var(--gold-3);
  color: var(--gold);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.policy-card__title {
  font-family: 'Inter', sans-serif;
  font-size: 0.98rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--navy);
}
.policy-card__chevron { margin-left: auto; color: var(--muted); display: none; transition: transform 0.25s ease; }
.policy-card__body { padding: 0.4rem 0; }

/* ---- Individual expandable policy row ---- */
.policy-row { border-bottom: 1px solid var(--line); }
.policy-row:last-child { border-bottom: none; }
.policy-row > summary {
  list-style: none;
  cursor: pointer;
  display: flex;
  align-items: center;
  gap: 0.85rem;
  padding: 0.95rem 1.5rem;
  transition: background 0.15s ease;
}
.policy-row > summary::-webkit-details-marker { display: none; }
.policy-row > summary:hover { background: var(--cream-2); }
.policy-row__ico {
  color: var(--gold);
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 38px; height: 38px;
  border-radius: 50%;
  background: var(--gold-3);
}
.policy-row__ico svg { width: 19px; height: 19px; }
.policy-row__text { flex: 1; min-width: 0; }
.policy-row__title {
  font-family: 'Inter', sans-serif;
  font-weight: 700;
  font-size: 0.96rem;
  color: var(--navy);
  display: block;
  line-height: 1.3;
}
.policy-row__desc {
  font-size: 0.86rem;
  color: var(--muted);
  display: block;
  margin-top: 0.15rem;
  line-height: 1.4;
}
.policy-row__arrow {
  color: var(--gold);
  flex-shrink: 0;
  transition: transform 0.25s ease;
}
.policy-row[open] .policy-row__arrow { transform: rotate(90deg); }
.policy-row__detail {
  padding: 0 1.5rem 1.15rem 3.9rem;
  animation: policy-fade 0.3s ease;
}
.policy-row__detail ul {
  margin: 0;
  padding-left: 1.1rem;
  color: var(--ink-2);
  font-size: 0.9rem;
  line-height: 1.6;
}
.policy-row__detail li { margin-bottom: 0.35rem; }
.policy-row__detail li::marker { color: var(--gold); }
.policy-row__detail p { color: var(--ink-2); font-size: 0.9rem; line-height: 1.6; margin: 0 0 0.5rem; }
.policy-row__fees {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  margin-top: 0.5rem;
}
.policy-fee {
  display: flex;
  align-items: center;
  gap: 0.7rem;
  font-size: 0.88rem;
  color: var(--ink-2);
}
.policy-fee b {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 62px;
  padding: 0.25rem 0.6rem;
  border-radius: 999px;
  font-size: 0.78rem;
  font-weight: 800;
  letter-spacing: 0.02em;
  border: 1.5px solid var(--navy);
}
.policy-fee--free b { background: var(--gold-3); color: var(--navy); }
.policy-fee--mid  b { background: var(--gold); color: #fff; border-color: var(--gold); }
.policy-fee--high b { background: var(--navy); color: var(--gold-2); }
@keyframes policy-fade { from { opacity: 0; transform: translateY(-4px); } to { opacity: 1; transform: translateY(0); } }

/* ---- Commitment + CTA band ---- */
.commitment-band {
  max-width: 1180px;
  margin: 1rem auto 4rem;
  background: var(--cream-2);
  border: 1px solid var(--line);
  border-radius: 20px;
  padding: 2.6rem;
  display: grid;
  grid-template-columns: 1.1fr 1px 1fr;
  gap: 2.4rem;
  align-items: center;
}
.commitment-band__left { display: flex; gap: 1.3rem; align-items: flex-start; }
.commitment-heart {
  width: 64px; height: 64px;
  border-radius: 50%;
  background: var(--navy);
  color: var(--gold);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.commitment-band__left h3 {
  font-family: 'Inter', sans-serif;
  font-size: 1.15rem;
  font-weight: 800;
  color: var(--navy);
  margin: 0 0 0.5rem;
}
.commitment-band__left p { color: var(--ink-2); font-size: 0.95rem; line-height: 1.6; margin: 0; }
.commitment-band__rule { width: 1px; height: 100%; background: var(--line); }
.commitment-band__right { text-align: center; }
.commitment-band__right h3 {
  font-family: 'Playfair Display', 'Instrument Serif', serif;
  font-style: italic;
  font-weight: 500;
  font-size: 1.7rem;
  color: var(--gold);
  margin: 0 0 0.3rem;
}
.commitment-band__right > p { color: var(--ink-2); font-size: 0.98rem; margin: 0 0 1.2rem; }
.commitment-band__phone {
  margin: 1rem 0 0;
  font-weight: 600;
  color: var(--ink-2);
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  justify-content: center;
}
.commitment-band__phone a { color: var(--gold); font-weight: 800; }
.commitment-band__phone svg { color: var(--gold); }

/* ---- Responsive: policies page ---- */
@media (max-width: 980px) {
  .promise-strip { grid-template-columns: repeat(4, 1fr); gap: 0; padding: 1rem 1rem 2.5rem; }
  .promise-item { padding: 0.5rem 0.5rem; }
  .promise-item__icon svg { width: 26px; height: 26px; }
  .promise-item h3 { font-size: 0.62rem; letter-spacing: 0.02em; }
  .promise-item p { display: none; }
  .policy-cards { grid-template-columns: 1fr; gap: 1rem; }
  .policy-card__head { cursor: pointer; }
  .policy-card__chevron { display: inline-flex; }
  .policy-card.is-collapsed .policy-card__body { display: none; }
  .policy-card.is-collapsed .policy-card__head { border-bottom: none; }
  .policy-card.is-collapsed .policy-card__chevron { transform: rotate(-90deg); }
  .commitment-band { grid-template-columns: 1fr; gap: 1.8rem; padding: 1.8rem; }
  .commitment-band__rule { display: none; }
  .commitment-band__left { flex-direction: column; align-items: center; text-align: center; }
}
@media (max-width: 520px) {
  .promise-item h3 { font-size: 0.55rem; }
  .promise-item__icon svg { width: 22px; height: 22px; }
  .policy-row__detail { padding-left: 1.5rem; }
}

/* ============================================================
   v6 — COMPACT FOOTER BAND (brand + contact + trust badges)
   ============================================================ */
.footer--band {
  background: var(--cream);
  color: var(--ink);
  padding: 0;
  border-radius: 0;
  margin-top: 0;
  border-top: 1px solid var(--line);
}
.footer__band {
  max-width: 1280px;
  margin: 0 auto;
  padding: 1.9rem 2.2rem;
  display: flex;
  align-items: center;
  gap: 1.6rem;
  flex-wrap: wrap;
}
.footer__brandblock {
  display: flex;
  align-items: center;
  gap: 1.1rem;
  padding-right: 1.6rem;
  border-right: 1px solid rgba(255,255,255,0.14);
}
.footer__brandblock .logo__img {
  width: 74px; height: 74px;
  background: transparent;
  border-radius: 0;
  flex-shrink: 0;
}
.footer__brandblock { min-width: 0; }
.footer__contact { display: flex; flex-direction: column; gap: 0.4rem; min-width: 0; }
.footer__contact a {
  display: inline-flex;
  align-items: center;
  gap: 0.6rem;
  color: #fff;
  font-weight: 700;
  font-size: 1.02rem;
  max-width: 100%;
  overflow-wrap: anywhere;
}
.footer__contact a:first-child { font-size: 1.15rem; }
.footer__contact a svg { color: var(--gold); flex-shrink: 0; }
.footer__contact a:hover { color: var(--gold-2); }
.footer__tagline {
  color: rgba(255,255,255,0.6);
  font-size: 0.86rem;
  margin-top: 0.15rem;
}

.footer__badges {
  display: flex;
  align-items: stretch;
  gap: 0;
  flex: 1;
  justify-content: space-around;
  flex-wrap: nowrap;
}
.footer__badge {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.5rem;
  text-align: center;
  padding: 0.2rem 0.9rem;
  position: relative;
}
.footer__badge + .footer__badge::before {
  content: '';
  position: absolute;
  left: 0; top: 10%;
  height: 80%;
  width: 1px;
  background: rgba(255,255,255,0.14);
}
.footer__badge svg { color: var(--gold); }
.footer__badge span {
  font-family: 'Inter', sans-serif;
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.07em;
  text-transform: uppercase;
  color: #fff;
  line-height: 1.25;
  max-width: 8rem;
}

/* slim legal line under the band */
.footer--band .footer__bottom {
  max-width: 1280px;
  margin: 0 auto;
  padding: 2rem 2.2rem 1.6rem;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 0.8rem;
  flex-wrap: wrap;
}
.footer--band .footer__bottom small { color: var(--muted); font-size: 0.82rem; }
.footer--band .footer__bottom a { color: var(--gold); }
.footer__quicklinks { display: flex; gap: 1.1rem; flex-wrap: wrap; }
.footer__quicklinks a {
  color: var(--navy);
  font-size: 0.85rem;
  font-weight: 600;
}
.footer__quicklinks a:hover { color: var(--gold); }

@media (max-width: 980px) {
  .footer__band { flex-direction: column; align-items: stretch; gap: 1.3rem; padding: 1.6rem 1.4rem; }
  .footer__brandblock {
    border-right: none;
    border-bottom: 1px solid rgba(255,255,255,0.14);
    padding-right: 0;
    padding-bottom: 1.3rem;
    justify-content: flex-start;
  }
  .footer__badges { flex-wrap: wrap; justify-content: center; gap: 1.3rem 0.5rem; }
  .footer__badge { padding: 0.2rem 0.4rem; flex: 0 1 30%; min-width: 0; }
  .footer__badge + .footer__badge::before { display: none; }
  .footer--band .footer__bottom { flex-direction: column; text-align: center; }
}
@media (max-width: 520px) {
  .footer__badge { flex-basis: 30%; }
  .footer__badge span { font-size: 0.62rem; }
  .footer__badge svg { width: 24px; height: 24px; }
  .footer__contact a:first-child { font-size: 1.05rem; }
  .footer__contact a { font-size: 0.9rem; }
}

/* ============================================================
   v6 — MOBILE MATCH (policies mockup) : navy nav, short labels,
   side-by-side commitment, 4-item bottom bar
   ============================================================ */
@media (max-width: 980px) {
  /* Hide top info strip — navy nav becomes the top bar */
  .topbar { display: none; }

  /* Navy nav bar with light logo, no CTA button */
  .nav {
    background: var(--navy);
    border-bottom: 1px solid rgba(255,255,255,0.08);
  }
  .nav .logo__text { display: none; }
  .nav .logo__img--onlight { display: none; }
  .nav .logo__img--ondark { display: block; width: 58px; height: 58px; object-fit: contain; }
  .nav__cta { display: none; }
  .nav__toggle { border-color: rgba(255,255,255,0.65); }
  .nav__toggle span { background: #fff; }
  body.nav-open .nav__toggle span { background: #fff; }

  /* Mobile dropdown menu styled for navy nav */
  .nav__links { background: var(--navy); border-bottom: 1px solid rgba(255,255,255,0.12); }
  .nav__links a { color: #F5EFE3; border-bottom-color: rgba(255,255,255,0.1); }
  .nav__links a:last-child { border-bottom: none; }
  .nav__links a.active { color: var(--gold-2); }
  .nav__links a.active::after { display: none; }

  /* Promise strip — short labels */
  .promise-item .lbl-full { display: none; }
  .promise-item .lbl-short { display: inline; }

  /* Commitment band — keep heart on left, text on right */
  .commitment-band__left { flex-direction: row; align-items: flex-start; text-align: left; }

  /* Floating scroll-top hidden (TOP lives in the bottom bar) */
  .scroll-top { display: none; }
}

@media (min-width: 981px) {
  .promise-item .lbl-short { display: none; }   /* short labels appear only on mobile */
  .promise-item .lbl-full { display: inline; }
}

/* ============================================================
   v7 — SITE-WIDE EDITORIAL REFINEMENT
   Softens the old brutalist elements (hard offset shadows,
   heavy borders) into the refined Policies aesthetic.
   Appended last so it overrides earlier component rules.
   ============================================================ */

/* ---- Buttons: clean lift, no hard offset shadow ---- */
.btn { border-width: 2px; }
.btn:hover { transform: translateY(-2px); box-shadow: 0 10px 22px -10px rgba(15,31,58,0.35); }
.btn:active { transform: translateY(0); box-shadow: none; }
.btn--primary { background: var(--navy); color: #fff; border-color: var(--navy); }
.btn--primary:hover { background: var(--navy-2); color: #fff; }
.btn--ghost { background: transparent; color: var(--navy); border-color: var(--navy); }
.btn--ghost:hover { background: var(--gold-3); color: var(--navy); }
/* Gold stays the hero CTA */
.btn--gold { background: var(--gold); color: #fff; border-color: var(--gold); }
.btn--gold:hover { background: var(--gold-2); border-color: var(--gold-2); color: #fff; box-shadow: 0 10px 24px -8px rgba(199,154,63,0.55); }

/* ---- Service / content cards: soft editorial ---- */
.card {
  border: 1px solid var(--line);
  border-radius: 16px;
  box-shadow: 0 18px 40px -28px rgba(15,31,58,0.35);
  background: var(--paper);
}
.card:hover { transform: translateY(-4px); box-shadow: 0 26px 50px -30px rgba(15,31,58,0.45); }
.card--accent { background: var(--cream-2); border-color: var(--gold-3); }
.card--service::before { display: none; }   /* remove gradient glow edge */
.card--service .card__num {
  font-family: 'Playfair Display', 'Instrument Serif', serif;
  font-style: italic;
  color: var(--gold);
  font-weight: 600;
}
.card--accent .card__num { color: var(--gold); }

/* ---- Stat strip: thin lines, gold stars ---- */
.stats { border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.stat { border-right: 1px solid var(--line); }
.stat b { color: var(--navy); }
.stat:first-child b { color: var(--gold); }

/* ---- Review quote cards ---- */
.reviews { background: var(--cream-2); }
.quote {
  border: 1px solid var(--line);
  border-radius: 16px;
  box-shadow: 0 18px 40px -30px rgba(15,31,58,0.3);
  background: var(--paper);
}
.quote--accent { background: var(--cream-2); }
.quote__stars { color: var(--gold); }
.quote blockquote { color: var(--ink); }
.reviews__cta { border: 1px solid var(--navy); border-radius: 999px; }
.reviews__cta:hover { transform: translateY(-2px); box-shadow: 0 8px 18px -8px rgba(15,31,58,0.3); background: var(--paper); }

/* ---- Why-us feature cards ---- */
.why__list li {
  border: 1px solid var(--line);
  border-radius: 16px;
  box-shadow: 0 18px 40px -30px rgba(15,31,58,0.3);
  background: var(--paper) !important;
}
.why__list li h4 { color: var(--navy); }

/* ---- Tags / pills ---- */
.tag {
  background: var(--gold-3);
  border: 1px solid var(--gold);
  color: var(--navy);
  border-radius: 999px;
}

/* ---- Hero stickers: soft, not brutalist ---- */
.hero__sticker {
  border: none;
  box-shadow: 0 14px 30px -12px rgba(15,31,58,0.4);
}
.hero__sticker--1 { background: var(--gold); color: #fff; }
.hero__sticker--2 { background: var(--navy); color: var(--gold-2); }
.hero__logo-frame { box-shadow: none; border: none; }

/* ---- Google review badge ---- */
.hero__google { border: 1px solid var(--line); border-radius: 14px; }
.hero__google:hover { transform: translateY(-2px); box-shadow: 0 12px 26px -12px rgba(15,31,58,0.3); }

/* ---- Bottom CTA sections → warm editorial band ---- */
.page-cta { background: var(--cream-2); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.page-cta h2 { font-family: 'Playfair Display','Instrument Serif',serif; font-weight: 600; color: var(--navy); }

/* ---- "How it works" steps (FAQ page, on navy) keep accent, soften ---- */
.how__steps li { border-radius: 16px; }

/* ---- Pricing tiers (if used) ---- */
.tier {
  border: 1px solid var(--line);
  border-radius: 18px;
  box-shadow: 0 18px 40px -28px rgba(15,31,58,0.35);
}
.tier--featured { background: var(--navy); border-color: var(--navy); }

/* ---- Section headings use serif display consistently ---- */
.section__head .display { font-family: 'Playfair Display','Instrument Serif',serif; font-weight: 600; }

/* ---- Welcome/submit banners: gold tint ---- */
.welcome-banner { background: var(--gold-3); border-bottom: 1px solid var(--gold); color: var(--navy); }
.welcome-banner__cta { background: var(--navy); color: #fff; }

/* ============================================================
   v8 — FAQ PAGE REDESIGN (category-filtered)
   ============================================================ */
.faq2-hero { max-width: 900px; margin: 0 auto; padding: 3.5rem 2rem 1.6rem; text-align: center; }
.faq2-hero .kicker { justify-content: center; }
.faq2-hero h1 { margin: 0.3rem 0 0.7rem; }
.faq2-hero__script {
  font-family: 'Playfair Display','Instrument Serif',serif;
  font-style: italic;
  font-weight: 500;
  font-size: clamp(1.3rem, 2.6vw, 1.7rem);
  color: var(--gold);
  margin: 0 0 0.7rem;
  line-height: 1.35;
}
.faq2-hero__sub { color: var(--ink-2); font-size: 1.05rem; margin: 0 auto; max-width: 40ch; }

/* ---- Category tab bar ---- */
.faq2-tabs {
  max-width: 1240px;
  margin: 1.6rem auto 0;
  padding: 0 2rem;
  display: flex;
  gap: 0.7rem;
  flex-wrap: wrap;
  justify-content: center;
}
.faq2-tab {
  display: inline-flex;
  align-items: center;
  gap: 0.55rem;
  padding: 0.85rem 1.3rem;
  border-radius: 14px;
  border: 1px solid var(--line);
  background: var(--paper);
  color: var(--navy);
  font-family: 'Inter', sans-serif;
  font-weight: 700;
  font-size: 0.95rem;
  cursor: pointer;
  transition: background 0.18s ease, color 0.18s ease, border-color 0.18s ease, transform 0.15s ease;
  white-space: nowrap;
}
.faq2-tab svg { color: var(--gold); }
.faq2-tab:hover { border-color: var(--gold); transform: translateY(-1px); }
.faq2-tab.is-active { background: var(--navy); color: #fff; border-color: var(--navy); }
.faq2-tab.is-active svg { color: var(--gold-2); }

/* ---- Two-column layout ---- */
.faq2-layout {
  max-width: 1240px;
  margin: 2.4rem auto 0;
  padding: 0 2rem 3rem;
  display: grid;
  grid-template-columns: 1fr 340px;
  gap: 2rem;
  align-items: start;
}
.faq2-main { min-width: 0; }

/* Panel (one per category, only active shown) */
.faq2-panel { display: none; }
.faq2-panel.is-active { display: block; animation: faq-fade 0.35s ease; }
@keyframes faq-fade { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: translateY(0); } }
.faq2-panel__head { text-align: center; margin-bottom: 1.4rem; }
.faq2-panel__title {
  display: inline-flex;
  align-items: center;
  gap: 0.7rem;
  font-family: 'Inter', sans-serif;
  font-weight: 800;
  font-size: 1rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--navy);
}
.faq2-panel__title svg { color: var(--gold); }
.faq2-panel__title::before, .faq2-panel__title::after {
  content: ''; width: 32px; height: 1.5px; background: var(--gold); display: inline-block;
}
.faq2-panel__sub { color: var(--muted); font-size: 0.95rem; margin: 0.5rem 0 0; }

/* ---- Accordion items ---- */
.faq2-list { counter-reset: faq; display: flex; flex-direction: column; gap: 0.9rem; }
.faq2-item {
  background: var(--paper);
  border: 1px solid var(--line);
  border-radius: 14px;
  box-shadow: 0 14px 34px -28px rgba(15,31,58,0.35);
  overflow: hidden;
}
.faq2-item > summary {
  list-style: none;
  cursor: pointer;
  display: flex;
  align-items: center;
  gap: 0.9rem;
  padding: 1.15rem 1.4rem;
  font-family: 'Inter', sans-serif;
  font-weight: 700;
  font-size: 1.05rem;
  color: var(--navy);
}
.faq2-item > summary::-webkit-details-marker { display: none; }
.faq2-item > summary::before {
  counter-increment: faq;
  content: counter(faq);
  flex-shrink: 0;
  width: 30px; height: 30px;
  border-radius: 50%;
  background: var(--navy);
  color: #fff;
  font-size: 0.85rem;
  font-weight: 800;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.faq2-item__q { flex: 1; line-height: 1.35; }
.faq2-item__pm {
  flex-shrink: 0;
  width: 30px; height: 30px;
  border-radius: 50%;
  border: 1.5px solid var(--navy);
  color: var(--navy);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 1.3rem;
  line-height: 1;
  transition: background 0.2s ease, color 0.2s ease;
}
.faq2-item[open] .faq2-item__pm { background: var(--navy); color: #fff; }
.faq2-item[open] .faq2-item__pm::after { content: '\2212'; } /* minus */
.faq2-item .faq2-item__pm::after { content: '+'; }
.faq2-item__body {
  padding: 0 1.4rem 1.3rem 3.7rem;
  color: var(--ink-2);
  font-size: 0.97rem;
  line-height: 1.6;
  animation: faq-fade 0.3s ease;
}
.faq2-item__body p { margin: 0 0 0.6rem; }

/* Checklist (regular cleaning) */
.faq2-checklist {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0.6rem 1.4rem;
  margin: 0.2rem 0 1rem;
}
.faq2-checklist li {
  list-style: none;
  display: flex;
  gap: 0.5rem;
  align-items: flex-start;
  font-size: 0.92rem;
  color: var(--ink-2);
}
.faq2-checklist li::before {
  content: '';
  flex-shrink: 0;
  width: 16px; height: 16px;
  margin-top: 2px;
  background: var(--gold);
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23fff' d='M9 16.2 4.8 12l-1.4 1.4L9 19 21 7l-1.4-1.4z'/%3E%3C/svg%3E") center/contain no-repeat;
          mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23fff' d='M9 16.2 4.8 12l-1.4 1.4L9 19 21 7l-1.4-1.4z'/%3E%3C/svg%3E") center/contain no-repeat;
}
.faq2-checklist ul { margin: 0; padding: 0; }

/* Comparison */
.faq2-compare {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  gap: 1.2rem;
  align-items: center;
  margin: 0.2rem 0 1rem;
}
.faq2-compare__spark { color: var(--gold); }
.faq2-morelink {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  color: var(--navy);
  font-weight: 800;
  font-size: 0.95rem;
}
.faq2-morelink:hover { color: var(--gold); }
.faq2-morelink-wrap { text-align: center; }

/* ---- Sidebar ---- */
.faq2-side { display: flex; flex-direction: column; gap: 1.2rem; position: sticky; top: 90px; }
.faq2-help {
  background: var(--navy);
  color: #fff;
  border-radius: 18px;
  padding: 1.8rem 1.6rem;
  text-align: center;
}
.faq2-help__chat {
  width: 54px; height: 54px;
  border-radius: 50%;
  background: rgba(255,255,255,0.08);
  color: var(--gold-2);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 0.9rem;
}
.faq2-help h3 { font-family: 'Playfair Display','Instrument Serif',serif; font-weight: 600; font-size: 1.7rem; margin: 0; color: #fff; }
.faq2-help__script { font-family: 'Playfair Display','Instrument Serif',serif; font-style: italic; color: var(--gold-2); font-size: 1.15rem; margin: 0.2rem 0 1.3rem; }
.faq2-contact { display: flex; align-items: center; gap: 0.8rem; text-align: left; padding: 0.6rem 0; }
.faq2-contact__ico {
  width: 42px; height: 42px; border-radius: 50%;
  background: rgba(255,255,255,0.08); color: var(--gold-2);
  display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0;
}
.faq2-contact__label { font-size: 0.72rem; font-weight: 800; letter-spacing: 0.08em; text-transform: uppercase; color: rgba(255,255,255,0.6); display: block; }
.faq2-contact__val { color: #fff; font-weight: 700; font-size: 0.98rem; }
.faq2-contact__val:hover { color: var(--gold-2); }
.faq2-help .btn { margin-top: 1.2rem; }
.faq2-promise {
  background: var(--cream-2);
  border: 1px solid var(--line);
  border-radius: 18px;
  padding: 1.5rem;
  display: flex;
  gap: 1rem;
  align-items: flex-start;
}
.faq2-promise__ico {
  width: 46px; height: 46px; border-radius: 50%;
  background: var(--gold-3); color: var(--gold);
  display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0;
}
.faq2-promise h4 { font-family: 'Inter',sans-serif; font-size: 1.05rem; font-weight: 800; color: var(--navy); margin: 0 0 0.4rem; }
.faq2-promise p { margin: 0; color: var(--ink-2); font-size: 0.9rem; line-height: 1.55; }

/* ---- Trust badges strip ---- */
.faq2-badges {
  background: var(--cream-2);
  border-top: 1px solid var(--line);
  padding: 2.4rem 2rem;
}
.faq2-badges__inner {
  max-width: 1240px;
  margin: 0 auto;
  display: flex;
  justify-content: space-around;
  gap: 1rem;
  flex-wrap: wrap;
}
.faq2-badge { text-align: center; max-width: 200px; padding: 0 0.8rem; position: relative; }
.faq2-badge + .faq2-badge::before {
  content: ''; position: absolute; left: 0; top: 6%; height: 88%; width: 1px; background: var(--line);
}
.faq2-badge svg { color: var(--gold); margin-bottom: 0.5rem; }
.faq2-badge h4 { font-family: 'Inter',sans-serif; font-size: 0.82rem; font-weight: 800; letter-spacing: 0.06em; text-transform: uppercase; color: var(--navy); margin: 0 0 0.35rem; }
.faq2-badge p { font-size: 0.85rem; color: var(--muted); margin: 0; line-height: 1.4; }

/* ---- Responsive ---- */
@media (max-width: 960px) {
  .faq2-layout { grid-template-columns: 1fr; }
  .faq2-side { position: static; }
  .faq2-tabs {
    flex-wrap: nowrap;
    overflow-x: auto;
    justify-content: flex-start;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
    padding-bottom: 0.4rem;
  }
  .faq2-tabs::-webkit-scrollbar { display: none; }
  .faq2-tab { flex-shrink: 0; padding: 0.7rem 1rem; font-size: 0.9rem; }
  .faq2-checklist { grid-template-columns: 1fr; }
  .faq2-compare { grid-template-columns: 1fr; }
  .faq2-compare__spark { display: none; }
  .faq2-badges__inner { gap: 1.4rem 0.5rem; }
  .faq2-badge { flex: 1 1 40%; min-width: 0; }
  .faq2-badge + .faq2-badge::before { display: none; }
  .faq2-badge p { display: none; }
}
@media (max-width: 520px) {
  .faq2-item > summary { font-size: 0.98rem; padding: 1rem; gap: 0.7rem; }
  .faq2-item__body { padding-left: 1rem; }
}

/* ============================================================
   v9 — GALLERY PAGE REDESIGN
   ============================================================ */
.gallery2-hero { max-width: 900px; margin: 0 auto; padding: 3.5rem 2rem 0.5rem; text-align: center; }
.gallery2-hero .kicker { justify-content: center; }
.gallery2-hero h1 { margin: 0.3rem 0 0.4rem; }
.gallery2-hero__script {
  font-family: 'Playfair Display','Instrument Serif',serif;
  font-style: italic; font-weight: 500;
  font-size: clamp(1.4rem, 3vw, 2rem);
  color: var(--gold); margin: 0 0 0.8rem; line-height: 1.3;
}
.gallery2-hero__sub { color: var(--ink-2); font-size: 1.05rem; margin: 0 auto; max-width: 46ch; line-height: 1.6; }

/* ---- Cards grid ---- */
.gallery2-grid {
  max-width: 1240px;
  margin: 2.4rem auto 0;
  padding: 0 2rem;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.8rem;
}
.gallery2-card {
  background: var(--paper);
  border: 1px solid var(--line);
  border-radius: 18px;
  box-shadow: 0 22px 46px -30px rgba(15,31,58,0.4);
  overflow: visible;
  display: flex;
  flex-direction: column;
}
.gallery2-card__media {
  position: relative;
  border-radius: 18px 18px 0 0;
  overflow: hidden;
  aspect-ratio: 16 / 10;
  background: var(--navy);
}
.gallery2-card__media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.gallery2-handle {
  position: absolute;
  top: 50%; left: 50%;
  transform: translate(-50%, -50%);
  width: 52px; height: 52px;
  border-radius: 50%;
  background: #fff;
  color: var(--navy);
  display: flex; align-items: center; justify-content: center;
  gap: 1px;
  box-shadow: 0 6px 16px -4px rgba(0,0,0,0.4);
  font-weight: 800;
  pointer-events: none;
}
.gallery2-handle svg { display: block; }
.gallery2-card__badge {
  align-self: center;
  margin-top: -32px;
  flex: 0 0 auto;
  width: 64px; height: 64px;
  border-radius: 50%;
  background: var(--navy);
  color: var(--gold-2);
  display: flex; align-items: center; justify-content: center;
  border: 4px solid var(--paper);
  position: relative;
  z-index: 2;
}
.gallery2-card__body { padding: 1.1rem 1.6rem 1.8rem; text-align: center; }
.gallery2-card__body h3 {
  font-family: 'Playfair Display','Instrument Serif',serif;
  font-weight: 600;
  font-size: 1.5rem;
  color: var(--navy);
  margin: 0 0 0.6rem;
}
.gallery2-card__body p { color: var(--ink-2); font-size: 0.97rem; line-height: 1.55; margin: 0; }

/* mobile carousel dots (hidden on desktop) */
.gallery2-dots { display: none; }

/* ---- Stats strip ---- */
.gallery2-stats {
  max-width: 1240px;
  margin: 2.6rem auto 0;
  padding: 2.4rem 1rem;
  background: var(--cream-2);
  border: 1px solid var(--line);
  border-radius: 20px;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1rem;
}
.gallery2-stat { text-align: center; padding: 0 1.2rem; position: relative; }
.gallery2-stat + .gallery2-stat::before {
  content: ''; position: absolute; left: 0; top: 8%; height: 84%; width: 1px; background: var(--line);
}
.gallery2-stat svg { color: var(--gold); margin-bottom: 0.7rem; }
.gallery2-stat b {
  display: block;
  font-family: 'Inter', sans-serif;
  font-size: 1.05rem;
  font-weight: 800;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--navy);
  line-height: 1.25;
}
.gallery2-stat b span { display: block; font-size: 1.9rem; letter-spacing: -0.02em; }
.gallery2-stat p { color: var(--muted); font-size: 0.9rem; margin: 0.4rem 0 0; line-height: 1.45; }

/* ---- CTA ---- */
.gallery2-cta { text-align: center; padding: 2.4rem 2rem 3.5rem; }
.gallery2-cta .btn svg { margin-right: 0.2rem; }
.gallery2-cta__note { margin: 1rem 0 0; color: var(--muted); font-size: 0.95rem; }
.gallery2-cta__note a { color: var(--gold); font-weight: 700; }

/* ---- Responsive ---- */
@media (max-width: 960px) {
  .gallery2-grid {
    grid-template-columns: none;
    grid-auto-flow: column;
    grid-auto-columns: 84%;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    gap: 1rem;
    padding: 0 2rem 0.5rem;
  }
  .gallery2-grid::-webkit-scrollbar { display: none; }
  .gallery2-card { scroll-snap-align: center; }
  .gallery2-dots { display: flex; justify-content: center; gap: 0.5rem; margin-top: 1.2rem; }
  .gallery2-dot { width: 9px; height: 9px; border-radius: 50%; background: var(--line); border: none; padding: 0; cursor: pointer; transition: background 0.2s ease, width 0.2s ease; }
  .gallery2-dot.is-active { background: var(--gold); width: 22px; border-radius: 999px; }
  .gallery2-stats { grid-template-columns: repeat(2, 1fr); gap: 1.8rem 0.6rem; }
  .gallery2-stat { min-width: 0; padding: 0 0.5rem; }
  .gallery2-stat + .gallery2-stat::before { display: none; }
}
@media (max-width: 520px) {
  .gallery2-stats { grid-template-columns: 1fr; gap: 1.5rem; padding: 2rem 1rem; }
  .gallery2-card__body h3 { font-size: 1.3rem; }
}

/* ============================================================
   v10 — SERVICES PAGE REDESIGN
   ============================================================ */
.svc2-hero { max-width: 900px; margin: 0 auto; padding: 3.4rem 2rem 0.5rem; text-align: center; }
.svc2-kicker {
  display: inline-flex; align-items: center; gap: 0.7rem;
  color: var(--gold); font-weight: 800; font-size: 0.82rem;
  letter-spacing: 0.22em; text-transform: uppercase; margin-bottom: 0.6rem;
}
.svc2-kicker::before, .svc2-kicker::after { content: '✦'; font-size: 0.8rem; color: var(--gold-2); }
.svc2-hero h1 { margin: 0.1rem 0 0.2rem; }
.svc2-hero__script {
  font-family: 'Playfair Display','Instrument Serif',serif;
  font-style: italic; font-weight: 500;
  font-size: clamp(1.5rem, 3.2vw, 2.2rem);
  color: var(--gold); margin: 0 0 0.9rem; line-height: 1.2;
}
.svc2-hero__sub { color: var(--ink-2); font-size: 1.05rem; margin: 0 auto; max-width: 52ch; line-height: 1.6; }

/* ---- Grid ---- */
.svc2-grid {
  max-width: 1300px;
  margin: 2.6rem auto 0;
  padding: 0 2rem;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1.5rem;
  align-items: stretch;
}
.svc2-card {
  position: relative;
  background: var(--paper);
  border: 1px solid var(--line);
  border-radius: 18px;
  box-shadow: 0 24px 50px -34px rgba(15,31,58,0.45);
  display: flex;
  flex-direction: column;
  overflow: hidden;
}
.svc2-card--popular { border-color: var(--gold-2); box-shadow: 0 26px 54px -30px rgba(199,154,63,0.5); }

/* MOST POPULAR ribbon */
.svc2-card__badge {
  position: absolute; top: 14px; left: 14px; z-index: 4;
  display: inline-flex; align-items: center; gap: 0.35rem;
  background: linear-gradient(135deg, var(--gold-2), var(--gold));
  color: #fff; font-size: 0.66rem; font-weight: 800;
  letter-spacing: 0.1em; text-transform: uppercase;
  padding: 0.4rem 0.7rem; border-radius: 999px;
  box-shadow: 0 6px 16px -6px rgba(199,154,63,0.7);
}
.svc2-card__badge svg { width: 12px; height: 12px; }

/* Toggle (header) */
.svc2-card__toggle {
  display: block; width: 100%; padding: 0; border: 0; background: none;
  text-align: center; position: relative; cursor: default; font: inherit;
}
.svc2-card__media {
  display: block; position: relative; width: 100%; height: 188px;
  overflow: hidden; border-radius: 18px 18px 0 0; background: var(--navy);
}
.svc2-card__media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.svc2-card__media--nopic {
  background: linear-gradient(157deg, #1b3565 0%, #14295c 55%, #0f1f3a 100%);
  display: flex; align-items: center; justify-content: center;
}
.svc2-card__ghost { width: 96px; height: 96px; color: rgba(245,233,206,0.16); }
.svc2-card__ghost svg { width: 100%; height: 100%; }

.svc2-card__icon {
  position: absolute; top: 188px; left: 50%;
  transform: translate(-50%, -50%);
  width: 62px; height: 62px; border-radius: 50%;
  background: var(--navy); color: var(--gold-2);
  display: flex; align-items: center; justify-content: center;
  border: 4px solid var(--paper); z-index: 3;
}
.svc2-card__icon svg { width: 28px; height: 28px; }

.svc2-card__title {
  display: block; margin: 44px 0 0; padding: 0 1rem;
  font-family: 'Playfair Display','Instrument Serif',serif;
  font-weight: 700; font-size: 1.28rem; line-height: 1.2;
  color: var(--navy); text-transform: uppercase; letter-spacing: 0.01em;
}
.svc2-card__title::after {
  content: ''; display: block; width: 34px; height: 3px; border-radius: 2px;
  background: var(--gold); margin: 0.7rem auto 0;
}
.svc2-card__chev { display: none; }

/* Body */
.svc2-card__body {
  display: flex; flex-direction: column; flex: 1;
  padding: 1rem 1.4rem 1.5rem; text-align: center;
}
.svc2-card__desc { color: var(--ink-2); font-size: 0.97rem; line-height: 1.55; margin: 0 0 1.1rem; }
.svc2-card__list { list-style: none; margin: 0 0 1.3rem; padding: 0; text-align: left; }
.svc2-card__list li {
  position: relative; padding: 0 0 0 1.6rem; margin: 0 0 0.6rem;
  font-size: 0.9rem; line-height: 1.45; color: var(--ink);
}
.svc2-card__list li::before {
  content: ''; position: absolute; left: 0; top: 0.15em;
  width: 15px; height: 15px; flex: 0 0 auto;
  background: var(--gold);
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M20 6L9 17l-5-5' fill='none' stroke='black' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat;
          mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M20 6L9 17l-5-5' fill='none' stroke='black' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat;
}
.svc2-card__list li strong { font-weight: 700; color: var(--navy); }
.svc2-card__actions { margin-top: auto; display: flex; flex-direction: column; gap: 0.6rem; }
.svc2-card__actions .btn { width: 100%; justify-content: center; padding: 0.8rem 1rem; font-size: 0.9rem; }
.svc2-card__actions .btn svg { width: 16px; height: 16px; }

/* Trust badges (mobile) */
.svc2-badges { display: none; }

/* ---- Checklist modal ---- */
.svc2-templates { display: none; }
.svc2-modal {
  position: fixed; inset: 0; z-index: 1200;
  display: none; align-items: center; justify-content: center; padding: 1.2rem;
}
.svc2-modal.is-open { display: flex; }
.svc2-modal__backdrop { position: absolute; inset: 0; background: rgba(15,31,58,0.55); backdrop-filter: blur(3px); }
.svc2-modal__panel {
  position: relative; z-index: 1; background: var(--paper);
  border-radius: 20px; max-width: 560px; width: 100%;
  max-height: 86vh; overflow-y: auto; padding: 2.2rem 2rem 1.8rem;
  box-shadow: 0 40px 80px -30px rgba(15,31,58,0.6);
  border: 1px solid var(--line);
}
.svc2-modal__close {
  position: absolute; top: 1rem; right: 1rem; width: 38px; height: 38px;
  border-radius: 50%; border: 1px solid var(--line); background: var(--cream-2);
  color: var(--navy); font-size: 1.4rem; line-height: 1; cursor: pointer;
  display: flex; align-items: center; justify-content: center;
}
.svc2-modal__close:hover { background: var(--gold-3); }
.svc2-modal__title {
  font-family: 'Playfair Display','Instrument Serif',serif;
  font-weight: 700; font-size: 1.5rem; color: var(--navy);
  margin: 0 2.5rem 1.2rem 0;
}
.svc2-modal__body h4 {
  font-size: 0.78rem; text-transform: uppercase; letter-spacing: 0.1em;
  color: var(--gold); margin: 1.2rem 0 0.5rem; font-weight: 800;
}
.svc2-modal__body ul { list-style: none; margin: 0; padding: 0; }
.svc2-modal__body li {
  position: relative; padding: 0 0 0 1.6rem; margin: 0 0 0.55rem;
  font-size: 0.94rem; line-height: 1.5; color: var(--ink);
}
.svc2-modal__body li::before {
  content: ''; position: absolute; left: 0; top: 0.2em; width: 15px; height: 15px;
  background: var(--gold);
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M20 6L9 17l-5-5' fill='none' stroke='black' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat;
          mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M20 6L9 17l-5-5' fill='none' stroke='black' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat;
}
.svc2-modal__body li strong { color: var(--navy); }
.svc2-modal__note {
  margin-top: 1.3rem; padding-top: 1rem; border-top: 1px solid var(--line);
  font-size: 0.85rem; color: var(--muted); line-height: 1.5;
}
.svc2-modal__cta { margin-top: 1.4rem; display: flex; }
.svc2-modal__cta .btn { width: 100%; justify-content: center; }

/* ---- Responsive: tablet ---- */
@media (max-width: 1100px) and (min-width: 961px) {
  .svc2-grid { grid-template-columns: repeat(2, 1fr); max-width: 760px; }
}

/* ---- Responsive: mobile accordion ---- */
@media (max-width: 960px) {
  .svc2-grid {
    grid-template-columns: 1fr; gap: 0.9rem;
    max-width: 560px; margin-top: 1.8rem;
  }
  .svc2-card { overflow: hidden; }
  .svc2-card__toggle {
    display: flex; align-items: center; gap: 0.85rem;
    padding: 0.85rem 1rem; text-align: left; cursor: pointer;
  }
  .svc2-card--popular .svc2-card__toggle { padding-top: 2.3rem; }
  .svc2-card__badge { top: 10px; left: 10px; }
  .svc2-card__media {
    width: 58px; height: 58px; flex: 0 0 auto;
    border-radius: 12px; order: 0;
  }
  .svc2-card__ghost { width: 30px; height: 30px; }
  .svc2-card__icon {
    position: static; transform: none; width: 42px; height: 42px;
    border-width: 0; flex: 0 0 auto; order: 1;
  }
  .svc2-card__icon svg { width: 20px; height: 20px; }
  .svc2-card__title {
    order: 2; flex: 1; margin: 0; padding: 0; text-align: left;
    font-size: 0.98rem; letter-spacing: 0.02em;
  }
  .svc2-card__title::after { display: none; }
  .svc2-card__chev {
    display: flex; order: 3; flex: 0 0 auto; color: var(--navy);
    transition: transform 0.25s ease;
  }
  .svc2-card__chev svg { width: 20px; height: 20px; }
  .svc2-card.is-open .svc2-card__chev { transform: rotate(180deg); }

  .svc2-card__body { display: none; padding: 0 1.15rem 1.2rem; }
  .svc2-card.is-open .svc2-card__body { display: flex; }
  .svc2-card__list { text-align: left; }

  /* Trust badges strip */
  .svc2-badges {
    display: grid; grid-template-columns: repeat(3, 1fr);
    gap: 0.4rem; max-width: 560px; margin: 1.8rem auto 0;
    padding: 1.4rem 0.6rem 0.4rem; border-top: 1px solid var(--line);
  }
  .svc2-badge { text-align: center; display: flex; flex-direction: column; align-items: center; gap: 0.4rem; }
  .svc2-badge svg { width: 24px; height: 24px; color: var(--gold); }
  .svc2-badge span {
    font-size: 0.6rem; font-weight: 800; letter-spacing: 0.05em;
    text-transform: uppercase; color: var(--navy); line-height: 1.25;
  }
}

/* ============================================================
   v11 — DESKTOP NAVY HEADER (match reference nav)
   Brings the navy bar + centered white links + gold CTA to
   desktop (mobile ≤980px already uses the navy nav).
   ============================================================ */
@media (min-width: 981px) {
  .nav {
    background: var(--navy);
    border-bottom: 1px solid rgba(255,255,255,0.10);
    backdrop-filter: none;
    padding: 0.7rem 2.2rem;
  }
  /* Logo: circular light emblem only, no wordmark */
  .nav .logo__text { display: none; }
  .nav .logo__img--onlight { display: none; }
  .nav .logo__img--ondark { display: block; width: 54px; height: 54px; object-fit: contain; }

  /* Center links in the viewport (independent of logo/CTA widths) */
  .nav__links {
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    gap: 2.4rem;
    font-weight: 600;
    font-size: 0.97rem;
    letter-spacing: 0.01em;
  }
  .nav__links a { color: #F5EFE3; padding: 0.3rem 0; }
  .nav__links a:hover { color: #fff; }
  .nav__links a.active { color: var(--gold-2); }
  .nav__links a.active::after { background: var(--gold-2); bottom: -8px; height: 3px; }

  /* READY TO BOOK — gold, uppercase */
  .nav__cta {
    text-transform: uppercase;
    letter-spacing: 0.06em;
    font-weight: 800;
    font-size: 0.82rem;
    padding: 0.85rem 1.5rem;
  }
}

/* ============================================================
   v12 — Hero logo: blend on plain white, no glow, no float
   ============================================================ */
.hero__halo { display: none; }          /* remove gold glow behind logo */
.hero__logo-frame { animation: none; }   /* stop the float/bounce */

/* ============================================================
   v13 — HOME PAGE EDITORIAL REDESIGN
   Matches the warm-editorial system used on Services/Gallery/
   FAQ/Policies: gold ✦ kickers, Playfair heads, gold italic
   sublines, soft cards, alternating white / cream sections.
   ============================================================ */

/* ---- Shared editorial helpers ---- */
.ekicker {
  display: inline-flex; align-items: center; gap: 0.7rem;
  color: var(--gold); font-weight: 800; font-size: 0.8rem;
  letter-spacing: 0.18em; text-transform: uppercase;
}
.ekicker::before, .ekicker::after { content: '✦'; color: var(--gold-2); font-weight: 400; font-size: 0.9em; }
.escript {
  font-family: 'Playfair Display','Instrument Serif',serif;
  font-style: italic; font-weight: 500; color: var(--gold);
}

/* ---- Section shell + heads ---- */
.home2-sec { max-width: 1240px; margin: 0 auto; padding: 4.6rem 2rem; }
.home2-sec--tint { max-width: none; background: var(--cream-2); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); overflow: hidden; }
.home2-sec--tint > .home2-head, .home2-sec--tint > .home2-about, .home2-sec--tint > .reviews-marquee { max-width: 1240px; margin-left: auto; margin-right: auto; }
.home2-sec--tint > .home2-head { padding: 4.6rem 2rem 0; }
.home2-sec--tint > .reviews-marquee { margin-top: 2.6rem; margin-bottom: 4.2rem; }
.home2-head { text-align: center; max-width: 720px; margin: 0 auto 2.8rem; }
.home2-head .ekicker { justify-content: center; margin-bottom: 0.8rem; }
.home2-head h2 {
  font-family: 'Playfair Display','Instrument Serif',serif; font-weight: 600; color: var(--navy);
  font-size: clamp(2rem, 3.6vw, 2.9rem); line-height: 1.12; margin: 0; letter-spacing: -0.01em;
}
.home2-head h2 .escript { display: inline; }
.home2-head p { color: var(--ink-2); font-size: 1.05rem; margin: 1rem auto 0; line-height: 1.6; }

/* ---- Hero ---- */
.home2-hero { max-width: 1240px; margin: 0 auto; padding: 3.4rem 2rem 2rem; }
.home2-hero__grid { display: grid; grid-template-columns: 1.05fr 0.95fr; gap: 3rem; align-items: center; }
.home2-hero__copy .ekicker { margin-bottom: 1.1rem; }
.home2-hero__title {
  font-family: 'Playfair Display','Instrument Serif',serif; font-weight: 600; color: var(--navy);
  font-size: clamp(2.7rem, 5vw, 4.1rem); line-height: 1.04; letter-spacing: -0.015em; margin: 0 0 1.2rem;
}
.home2-hero__title .escript { display: block; font-size: 1.02em; }
.home2-hero__sub { color: var(--ink-2); font-size: 1.1rem; line-height: 1.62; max-width: 47ch; margin: 0 0 1.7rem; }
.home2-hero__ctas { display: flex; gap: 0.9rem; flex-wrap: wrap; margin-bottom: 1.3rem; }
.home2-hero__ctas .btn svg { width: 18px; height: 18px; }

/* stats strip */
.home2-stats {
  margin: 3rem auto 0; max-width: 1040px;
  background: var(--cream-2); border: 1px solid var(--line); border-radius: 20px;
  display: grid; grid-template-columns: repeat(4, 1fr); gap: 1rem; padding: 1.9rem 1rem;
}
.home2-stat { text-align: center; position: relative; padding: 0 1rem; }
.home2-stat + .home2-stat::before { content: ''; position: absolute; left: 0; top: 12%; height: 76%; width: 1px; background: var(--line); }
.home2-stat b { display: block; font-family: 'Playfair Display', serif; font-weight: 700; font-size: 1.75rem; color: var(--navy); line-height: 1; }
.home2-stat b.home2-stat__star { color: var(--gold); font-size: 1.3rem; letter-spacing: 2px; }
.home2-stat span { display: block; margin-top: 0.45rem; font-size: 0.78rem; color: var(--muted); text-transform: uppercase; letter-spacing: 0.05em; font-weight: 700; }

/* ---- Services teaser cards ---- */
.home2-svc-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.4rem; }
.home2-svc {
  background: var(--paper); border: 1px solid var(--line); border-radius: 18px;
  padding: 1.4rem 1.5rem; text-align: center; box-shadow: 0 20px 44px -32px rgba(15,31,58,0.4);
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.home2-svc:hover { transform: translateY(-4px); box-shadow: 0 28px 52px -30px rgba(15,31,58,0.45); }
.home2-svc__icon {
  width: 60px; height: 60px; border-radius: 50%; background: var(--navy); color: var(--gold-2);
  display: flex; align-items: center; justify-content: center; margin: 0 auto 1.1rem;
}
.home2-svc__icon svg { width: 28px; height: 28px; }
.home2-svc h3 { font-family: 'Playfair Display', serif; font-weight: 700; font-size: 1.24rem; color: var(--navy); margin: 0 0 0.5rem; }
.home2-svc p { color: var(--ink-2); font-size: 0.94rem; line-height: 1.52; margin: 0; }
.home2-sec__cta { text-align: center; margin-top: 2.6rem; }

/* ---- Why us ---- */
.home2-why-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1.3rem; }
.home2-why-card { background: var(--paper); border: 1px solid var(--line); border-radius: 16px; padding: 1.7rem; display: flex; gap: 1.1rem; align-items: flex-start; }
.home2-why-card__icon { flex: 0 0 auto; width: 48px; height: 48px; border-radius: 12px; background: var(--gold-3); color: var(--navy); display: flex; align-items: center; justify-content: center; }
.home2-why-card__icon svg { width: 24px; height: 24px; }
.home2-why-card h4 { font-family: 'Playfair Display', serif; font-weight: 700; font-size: 1.14rem; color: var(--navy); margin: 0 0 0.35rem; }
.home2-why-card p { color: var(--ink-2); font-size: 0.94rem; line-height: 1.5; margin: 0; }

/* ---- About / Meet Karla ---- */
.home2-about { display: grid; grid-template-columns: 300px 1fr; gap: 3.2rem; align-items: center; }
.home2-about__avatar {
  width: 260px; height: 260px; border-radius: 50%; margin: 0 auto;
  background: linear-gradient(160deg, #1b3565, var(--navy));
  color: var(--gold-2); font-family: 'Playfair Display', serif; font-weight: 700; font-size: 7rem;
  display: flex; align-items: center; justify-content: center;
  border: 4px solid var(--gold-3); box-shadow: 0 30px 60px -30px rgba(15,31,58,0.5);
}
.home2-about__title { font-family: 'Playfair Display', serif; font-weight: 600; color: var(--navy); font-size: clamp(1.8rem, 3vw, 2.5rem); line-height: 1.12; margin: 0.6rem 0 0; }
.home2-about blockquote {
  font-family: 'Playfair Display', serif; font-style: italic; font-size: 1.35rem; color: var(--navy);
  border-left: 3px solid var(--gold); padding-left: 1.3rem; margin: 1.3rem 0; line-height: 1.45;
}
.home2-about__body { color: var(--ink-2); font-size: 1.02rem; line-height: 1.65; margin: 0; }
.home2-about__stats { display: flex; gap: 2.4rem; margin-top: 1.7rem; flex-wrap: wrap; }
.home2-about__stats b { display: block; font-family: 'Playfair Display', serif; font-weight: 700; font-size: 1.5rem; color: var(--gold); }
.home2-about__stats span { font-size: 0.85rem; color: var(--muted); }

/* ---- Service area ---- */
.home2-area__cities { display: flex; flex-wrap: wrap; justify-content: center; gap: 0.6rem; margin: 0 auto 1.5rem; max-width: 840px; }
.home2-area__cities span { background: var(--paper); border: 1px solid var(--line); border-radius: 999px; padding: 0.5rem 1.15rem; font-size: 0.9rem; font-weight: 600; color: var(--navy); transition: background 0.15s ease, color 0.15s ease; }
.home2-area__cities span:hover { background: var(--navy); color: #fff; }
.home2-area__note { text-align: center; color: var(--ink-2); font-size: 0.98rem; margin: 0; }
.home2-area__note a { color: var(--gold); font-weight: 700; }

/* ---- Bottom CTA (navy) ---- */
.home2-cta { background: var(--navy); border-top: none; border-bottom: none; text-align: center; padding: 4.6rem 2rem; }
.home2-cta .ekicker { justify-content: center; margin-bottom: 0.9rem; }
.home2-cta h2 { font-family: 'Playfair Display', serif; font-weight: 600; color: #fff; font-size: clamp(2rem, 3.6vw, 2.9rem); margin: 0 0 0.7rem; }
.home2-cta h2 .escript { color: var(--gold-2); }
.home2-cta p { color: var(--sky-2, #cdd8ea); margin: 0 auto 1.8rem; font-size: 1.05rem; }
.home2-cta__row { display: flex; gap: 0.9rem; justify-content: center; flex-wrap: wrap; }
.home2-cta__ghost { background: transparent; color: #fff; border-color: rgba(255,255,255,0.55); }
.home2-cta__ghost:hover { background: rgba(255,255,255,0.1); color: #fff; border-color: #fff; }

/* ---- Reviews head CTA ---- */
.home2-reviews__cta { display: inline-flex; align-items: center; gap: 0.5rem; margin-top: 1.1rem; color: var(--navy); font-weight: 700; font-size: 0.95rem; }
.home2-reviews__cta:hover { color: var(--gold); }

/* ---- Responsive ---- */
@media (max-width: 980px) {
  .home2-hero__grid { grid-template-columns: 1fr; gap: 1.6rem; }
  .home2-hero__copy { text-align: center; }
  .home2-hero__copy .ekicker, .home2-head .ekicker { justify-content: center; }
  .home2-hero__sub { margin-left: auto; margin-right: auto; }
  .home2-hero__ctas { justify-content: center; }
  .hero__art { display: none; }   /* hide logo art on mobile home hero */
  .home2-stats { grid-template-columns: repeat(2, 1fr); gap: 1.6rem 0.5rem; }
  .home2-stat:nth-child(3)::before { display: none; }
  .home2-svc-grid { grid-template-columns: repeat(2, 1fr); }
  .home2-why-grid { grid-template-columns: 1fr; }
  .home2-about { grid-template-columns: 1fr; gap: 1.8rem; text-align: center; }
  .home2-about__avatar { width: 190px; height: 190px; font-size: 5rem; }
  .home2-about blockquote { border-left: none; border-top: 3px solid var(--gold); padding: 1rem 0 0; }
  .home2-about__stats { justify-content: center; }
  .home2-sec, .home2-sec--tint > .home2-head { padding-left: 1.3rem; padding-right: 1.3rem; }
}
@media (max-width: 520px) {
  .home2-svc-grid { grid-template-columns: 1fr; }
  .home2-hero__ctas .btn { width: 100%; justify-content: center; }
  .home2-cta__row .btn { width: 100%; justify-content: center; }
  .home2-stats { padding: 1.5rem 0.6rem; }
}

/* Reviews head — stack the REVIEWS kicker on top of the Google CTA */
#reviews .home2-head .ekicker { display: flex; margin-bottom: 1rem; }

/* ============================================================
   v14 — QUOTE FORM EDITORIAL REDESIGN
   Restyles the multi-step quote wizard to the warm-editorial
   system. All structure/classes preserved for the wizard JS.
   ============================================================ */

/* Page: clean white instead of navy hero */
.book { background: #fff; color: var(--ink); padding: 3.4rem 0 4.6rem; }
.book::before { display: none; }

/* Header */
.book__top { max-width: 760px; margin: 0 auto 2.4rem; }
.book__top .ekicker { justify-content: center; margin-bottom: 0.85rem; }
.book__title {
  font-family: 'Playfair Display','Instrument Serif',serif; font-weight: 600; color: var(--navy);
  font-size: clamp(2rem, 4vw, 3rem); line-height: 1.1; margin: 0 0 0.9rem; letter-spacing: -0.01em;
}
.book__top p { color: var(--ink-2); opacity: 1; font-size: 1.05rem; }
.book__contact a { color: var(--navy); }
.book__contact a strong { color: var(--gold); }
.book__contact a:hover strong { color: var(--gold-2); }

/* Form card — soft editorial */
.book__form {
  background: var(--paper); color: var(--ink);
  border: 1px solid var(--line); border-radius: 22px;
  box-shadow: 0 30px 70px -40px rgba(15,31,58,0.4);
  padding: 2.4rem;
}
.book__form--full { max-width: 860px; padding: 2.6rem; }

/* Wizard progress — gold/navy */
.wizard-progress__bar { background: var(--line); }
.wizard-progress__step.is-done .wizard-progress__bar { background: var(--gold); }
.wizard-progress__step.is-active .wizard-progress__bar { background: var(--navy); box-shadow: 0 0 0 4px var(--gold-3); }
.wizard-progress__step.is-active .wizard-progress__label,
.wizard-progress__step.is-done .wizard-progress__label { color: var(--navy); }

/* Section + step badge */
.book__form--wizard .book__section { border-top: none; padding-top: 0; }
.book__section legend { font-family: 'Playfair Display','Instrument Serif',serif; font-weight: 700; font-size: 1.4rem; color: var(--navy); gap: 0.75rem; letter-spacing: 0; }
.book__step {
  width: 38px; height: 38px; border: none;
  background: var(--navy); color: var(--gold-2); font-size: 0.9rem; font-family: 'Inter', sans-serif;
}

/* Inputs / selects / textareas */
.book__form input[type="text"],
.book__form input[type="email"],
.book__form input[type="tel"],
.book__form input[type="number"],
.book__form input[type="date"],
.book__form select,
.book__form textarea {
  border: 1.5px solid var(--line); border-radius: 12px; background: var(--cream-2); color: var(--navy);
}
.book__form input:focus,
.book__form select:focus,
.book__form textarea:focus {
  background: #fff; border-color: var(--gold); box-shadow: 0 0 0 3px var(--gold-3);
}

/* Pills */
.pill span { border: 1.5px solid var(--line); background: var(--paper); color: var(--navy); }
.pill:hover span { background: var(--gold-3); border-color: var(--gold-2); }
.pill input:checked + span { background: var(--navy); color: #fff; border-color: var(--navy); }
.pill input:focus-visible + span { box-shadow: 0 0 0 3px var(--gold-3); }

/* Checks */
.check { border: 1.5px solid var(--line); background: var(--paper); }
.check:hover { background: var(--gold-3); border-color: var(--gold-2); }
.check input { border: 1.5px solid var(--line); border-radius: 5px; }
.check input:checked { background: var(--navy); border-color: var(--navy); }
.check input:checked::after { border-color: var(--gold-2); }
.check input:focus-visible { box-shadow: 0 0 0 3px var(--gold-3); }

/* Success */
.success__check { background: var(--navy); border: none; color: var(--gold-2); }
.success h3 { font-family: 'Playfair Display','Instrument Serif',serif; font-weight: 700; }
.success a { color: var(--gold); font-weight: 700; }

/* Mobile */
@media (max-width: 620px) {
  .book__form, .book__form--full { padding: 1.5rem 1.2rem; }
  .book__row, .book__row--2 { grid-template-columns: 1fr; }
  .checkgrid--4 { grid-template-columns: repeat(2, 1fr); }
}

/* ============================================================
   v15 — PRIVACY / THANK-YOU / 404 editorial polish
   ============================================================ */

/* Shared editorial page header (privacy) */
.legal-hero { text-align: center; }
.legal-hero .ekicker { justify-content: center; margin-bottom: 0.8rem; }
.legal-hero__title {
  font-family: 'Playfair Display','Instrument Serif',serif; font-weight: 600; color: var(--navy);
  font-size: clamp(2rem, 4vw, 3rem); line-height: 1.1; margin: 0 0 0.9rem; letter-spacing: -0.01em;
}

/* Legal body copy */
.legal-body { max-width: 760px; margin: 0 auto; padding: 1rem 2rem 4rem; }
.legal-body h2 {
  font-family: 'Playfair Display','Instrument Serif',serif; font-weight: 700;
  font-size: 1.45rem; color: var(--navy); margin: 2.6rem 0 0.8rem;
}
.legal-body p, .legal-body li { color: var(--ink-2); line-height: 1.7; }
.legal-body ul { padding-left: 1.4rem; }
.legal-body a { color: var(--gold); font-weight: 600; }
.legal-body a:hover { color: var(--gold-2); }
.legal-body strong { color: var(--navy); }

/* Thank-you page */
.thanks { background: #fff; min-height: 60vh; display: flex; align-items: center; padding: 3rem 0; }
.thanks__inner { max-width: 620px; margin: 0 auto; text-align: center; padding: 0 2rem; }
.thanks .ekicker { justify-content: center; margin-bottom: 1rem; }
.thanks .success__check { margin: 0 auto 1.4rem; }
.thanks__title {
  font-family: 'Playfair Display','Instrument Serif',serif; font-weight: 600; color: var(--navy);
  font-size: clamp(2rem, 4vw, 2.9rem); line-height: 1.12; margin: 0 0 0.9rem;
}
.thanks__title .escript { color: var(--gold); }
.thanks p { color: var(--ink-2); font-size: 1.05rem; line-height: 1.6; }
.thanks__back { display: inline-block; margin-top: 1.8rem; color: var(--gold); font-weight: 700; }
.thanks__back:hover { color: var(--gold-2); }

/* 404 page */
.nf { min-height: 66vh; display: flex; align-items: center; justify-content: center; text-align: center; padding: 4rem 2rem; }
.nf__inner { max-width: 560px; }
.nf .ekicker { justify-content: center; margin-bottom: 1rem; }
.nf .nf__code {
  font-family: 'Playfair Display','Instrument Serif',serif; font-style: italic; font-weight: 600;
  font-size: clamp(5rem, 14vw, 8.5rem); color: var(--gold); line-height: 1; margin: 0 0 0.4rem;
}
.nf__title {
  font-family: 'Playfair Display','Instrument Serif',serif; font-weight: 600; color: var(--navy);
  font-size: clamp(1.8rem, 3.5vw, 2.6rem); line-height: 1.1; margin: 0 0 0.9rem;
}
.nf p { color: var(--ink-2); font-size: 1.05rem; line-height: 1.6; margin: 0; }
.nf__ctas { display: flex; gap: 0.9rem; justify-content: center; flex-wrap: wrap; margin-top: 1.8rem; }
@media (max-width: 520px) { .nf__ctas .btn { width: 100%; justify-content: center; } }

/* FAQ help sidebar — let the grid column shrink so the card centers on
   mobile (the long email was forcing the track wider than the container) */
.faq2-side { min-width: 0; }
.faq2-contact { min-width: 0; }
.faq2-contact > span:last-child { min-width: 0; }
.faq2-contact__val { overflow-wrap: anywhere; }

/* ============================================================
   v16 — Quote wizard progress: clean centered numbered stepper
   (default <ol> markers were clipping; bars were collapsed inline)
   ============================================================ */
.wizard-progress { list-style: none; padding: 0 0.2rem; }
.wizard-progress__step {
  list-style: none;
  padding-top: 0;
  text-align: center;
  counter-increment: wizard;
}
.wizard-progress__step::before {
  content: counter(wizard);
  display: block;
  margin-bottom: 9px;
  font-family: 'Inter', sans-serif;
  font-weight: 800;
  font-size: 0.85rem;
  color: var(--muted);
  transition: color 0.3s ease;
}
.wizard-progress__step.is-active::before,
.wizard-progress__step.is-done::before { color: var(--navy); }
.wizard-progress__bar { display: block; width: 100%; }

/* ============================================================
   v17 — Why Homeowners section (3 cards, tighter) + mobile
   logo size + shorter bottom action bar
   ============================================================ */
/* 3 balanced cards in a row on desktop */
.home2-why-grid { grid-template-columns: repeat(3, 1fr); gap: 1.2rem; }
/* ~24% less padding / empty space */
.home2-why-card { padding: 1.3rem 1.25rem; gap: 0.9rem; align-items: flex-start; }
.home2-why-card h4 { font-size: 1.06rem; margin: 0 0 0.3rem; }
/* descriptions slightly smaller + explicitly left-aligned */
.home2-why-card p { font-size: 0.86rem; line-height: 1.5; text-align: left; }

@media (max-width: 980px) {
  /* stack cards on mobile */
  .home2-why-grid { grid-template-columns: 1fr; }

  /* logo fills the header bar top-to-bottom — touches the edges (mobile only) */
  .nav { padding-top: 0; padding-bottom: 0; }
  .nav .logo__img--ondark { width: 84px; height: 84px; }

  /* shorter Call/Text/Quote/Top bar */
  .mobile-bar { padding: 0.24rem 0.3rem calc(0.24rem + env(safe-area-inset-bottom)); }
  .mobile-bar__item, .mobile-bar a, .mobile-bar button { padding: 0.3rem 0.2rem; gap: 0.15rem; }
  .mobile-bar__item svg { width: 20px; height: 20px; }
  .mobile-bar__item span { font-size: 0.64rem; }
}

/* ============================================================
   v18 — Service Area section: two-column featured markets,
   compact spacing, gold CTA, non-wrapping phone number
   ============================================================ */
.home2-area2 { padding-top: 3.4rem; padding-bottom: 3.6rem; }
.home2-area2 .home2-head { margin-bottom: 1.8rem; }

/* Featured markets — two consistent columns (column-major order) */
.home2-area2__grid {
  list-style: none; padding: 0;
  margin: 0 auto; max-width: 400px;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  grid-template-rows: repeat(3, auto);
  grid-auto-flow: column;
  gap: 0.5rem 2.2rem;
}
.home2-area2__grid li {
  display: flex; align-items: center; gap: 0.6rem;
  font-size: 1.06rem; font-weight: 600; color: var(--navy);
  padding: 0.35rem 0;
  border-bottom: 1px solid var(--line);
}
.home2-area2__grid li::before {
  content: ''; width: 15px; height: 17px; flex: 0 0 auto;
  background: var(--gold);
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' fill-rule='evenodd' d='M12 2a7 7 0 0 0-7 7c0 5.25 7 13 7 13s7-7.75 7-13a7 7 0 0 0-7-7Zm0 9.5a2.5 2.5 0 1 1 0-5 2.5 2.5 0 0 1 0 5Z'/%3E%3C/svg%3E") center/contain no-repeat;
          mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' fill-rule='evenodd' d='M12 2a7 7 0 0 0-7 7c0 5.25 7 13 7 13s7-7.75 7-13a7 7 0 0 0-7-7Zm0 9.5a2.5 2.5 0 1 1 0-5 2.5 2.5 0 0 1 0 5Z'/%3E%3C/svg%3E") center/contain no-repeat;
}

.home2-area2__more {
  text-align: center; max-width: 620px; margin: 1.4rem auto 0;
  color: var(--muted); font-size: 0.92rem; line-height: 1.55;
}
.home2-area2__cta { text-align: center; margin-top: 1.8rem; }
.home2-area2__note { text-align: center; margin: 1.1rem auto 0; color: var(--ink-2); font-size: 0.98rem; }
.home2-area2__tel { color: var(--gold); font-weight: 700; }
.home2-area2__tel .nowrap, .home2-area2__note .nowrap { white-space: nowrap; }

@media (max-width: 520px) {
  .home2-area2__grid { max-width: 320px; gap: 0.4rem 1.4rem; }
  .home2-area2__grid li { font-size: 1rem; }
}

/* ============================================================
   v19 — Reviews marquee: perfectly seamless continuous loop.
   Spacing moved into each quote's right margin (gap removed) so
   translateX(-50%) wraps with ZERO jump at the seam — the row
   now flows around continuously instead of hitching each lap.
   ============================================================ */
.reviews-marquee__track { gap: 0; }
.reviews-marquee .quote { margin: 0 1.4rem 0 0; }

/* ============================================================
   v20 — Mobile only: tighten gap after the last benefit card,
   and size the Service Area heading's gold line to sit on one
   line ~the same width as the "Proudly Serving…" kicker.
   ============================================================ */
/* Tighter gap between the last benefit card and the Service Area
   section — now applied on desktop/tablet as well as mobile. */
.home2-sec:has(+ .home2-area2) { padding-bottom: 2.2rem; }
.home2-area2 { padding-top: 2.2rem; padding-bottom: 1.4rem; }

@media (max-width: 620px) {
  /* even tighter gap on phones */
  .home2-sec:has(+ .home2-area2) { padding-bottom: 1.6rem; }
  .home2-area2 { padding-top: 1.6rem; padding-bottom: 1.1rem; }

  /* one-line gold subhead, matched to the kicker's length (mobile only) */
  .home2-area2 .home2-head h2 { font-size: 1.72rem; }
}

/* ============================================================
   v22 — Reviews section: more compact so it takes less vertical
   space (both desktop and mobile). Trims the surrounding
   padding/margins and shrinks the review cards a touch. The
   per-card right margin (v19) is kept so the loop stays seamless.
   ============================================================ */
.home2-sec--tint > .home2-head { padding-top: 2.4rem; }
.home2-sec--tint > .reviews-marquee { margin-top: 1.3rem; margin-bottom: 2.2rem; }
.reviews-marquee__track { padding: 0.5rem 0; }
.reviews-marquee .quote { flex: 0 0 340px; padding: 1.35rem 1.5rem; }
.reviews-marquee .quote__stars { font-size: 1rem; margin-bottom: 0.55rem; }
.reviews-marquee .quote blockquote { font-size: 1.06rem; line-height: 1.4; margin: 0 0 0.8rem; }
.reviews-marquee .quote figcaption { font-size: 0.85rem; }

/* ============================================================
   v23 — Tighten the gap between the hero stats panel and the
   "What we do" services section (both desktop and mobile).
   ============================================================ */
.home2-hero { padding-bottom: 1rem; }
.home2-hero + .home2-sec { padding-top: 2.8rem; }

/* ============================================================
   v24 — Bottom CTA redesign: quote-first, more compact, white
   supporting text, phone as small link. Slightly shorter bar.
   ============================================================ */
.home2-cta { padding: 3.4rem 2rem 3rem; }
.home2-cta h2 { margin-bottom: 0.6rem; }
.home2-cta p { color: #fff; font-size: 1.02rem; max-width: 48ch; margin: 0 auto 1.5rem; }
.home2-cta__row { margin: 0; }
.home2-cta__row .btn { padding: 0.9rem 1.8rem; font-size: 1rem; gap: 0.5rem; }
.home2-cta__row .btn svg { width: 17px; height: 17px; }
/* phone: small clickable text under the gold button */
.home2-cta p.home2-cta__phone { color: rgba(255,255,255,0.72); font-size: 0.95rem; margin: 1.15rem auto 0; }
.home2-cta__phone a { color: var(--gold-2); font-weight: 700; }
.home2-cta__phone a:hover { color: var(--gold); }
.home2-cta__phone .nowrap { white-space: nowrap; }

/* slightly shorter fixed bottom action bar */
@media (max-width: 980px) {
  .mobile-bar { padding: 0.16rem 0.3rem calc(0.16rem + env(safe-area-inset-bottom)); }
  .mobile-bar__item, .mobile-bar a, .mobile-bar button { padding: 0.22rem 0.2rem; }
  .mobile-bar__item svg { width: 19px; height: 19px; }
}

/* ============================================================
   v25 — Hero: gold star in place of the SPOTLESS GUARANTEED badge
   ============================================================ */
.hero__badge-star {
  position: absolute;
  top: -4px;
  right: 10px;
  width: 58px;
  height: 58px;
  color: var(--gold);
  z-index: 3;
  filter: drop-shadow(0 4px 12px rgba(199,154,63,0.45));
}

/* ============================================================
   v26 — Reduce the space between the header and the hero
   content (start the text/logo higher on the page).
   ============================================================ */
.home2-hero { padding-top: 1.2rem; }
.home2-hero__grid { align-items: start; }

/* ============================================================
   v27 — Reduce the empty space in the hero: cap the logo art so
   it's closer to the text column's height (removes the big gap
   under the buttons) and pull the stats panel up. Desktop only
   (the art is hidden on mobile).
   ============================================================ */
.hero__art { max-width: 420px; margin: 0 auto; }
.home2-stats { margin-top: 1rem; }
.home2-hero { padding-bottom: 0.6rem; }

/* ============================================================
   v28 — Reviews section: make it more compact and pull it up
   closer to the "See all services & add-ons" banner. Trims the
   trailing padding of the services section, tightens the reviews
   header spacing, shrinks the marquee margins, and makes the
   review cards a touch smaller.
   ============================================================ */
/* pull the reviews section up toward the services banner */
.home2-sec:has(+ #reviews) { padding-bottom: 2rem; }
#reviews > .home2-head { padding-top: 1.4rem; margin-bottom: 1.4rem; }

/* smaller, tighter review cards + marquee */
#reviews > .reviews-marquee { margin-top: 0.9rem; margin-bottom: 1.6rem; }
#reviews .reviews-marquee__track { padding: 0.35rem 0; }
#reviews .reviews-marquee .quote { flex: 0 0 320px; padding: 1.1rem 1.3rem; }
#reviews .reviews-marquee .quote__stars { font-size: 0.92rem; margin-bottom: 0.4rem; }
#reviews .reviews-marquee .quote blockquote { font-size: 0.98rem; line-height: 1.38; margin: 0 0 0.6rem; }
#reviews .reviews-marquee .quote figcaption { font-size: 0.8rem; }

@media (max-width: 620px) {
  .home2-sec:has(+ #reviews) { padding-bottom: 1.4rem; }
  #reviews > .home2-head { padding-top: 1.1rem; margin-bottom: 1.1rem; }
  #reviews > .reviews-marquee { margin-top: 0.7rem; margin-bottom: 1.2rem; }
}

/* ============================================================
   v29 — Keep the hero stats panel on ONE row on mobile (match
   the desktop layout) instead of the 2x2 grid. Numbers, labels,
   gaps and padding scale down so all four fit across narrow
   phones, and the divider between the 2nd/3rd stats is restored.
   ============================================================ */
@media (max-width: 980px) {
  .home2-stats { grid-template-columns: repeat(4, 1fr); gap: 0.5rem; }
  .home2-stat:nth-child(3)::before { display: block; }   /* restore divider */
}
@media (max-width: 620px) {
  .home2-stats { padding: 1.2rem 0.4rem; gap: 0.25rem; }
  .home2-stat { padding: 0 0.5rem; }
  .home2-stat b { font-size: 1.2rem; }
  .home2-stat b.home2-stat__star { font-size: 0.9rem; letter-spacing: 1px; }
  .home2-stat span { font-size: 0.58rem; margin-top: 0.35rem; letter-spacing: 0.02em; }
}
@media (max-width: 400px) {
  .home2-stats { gap: 0.2rem; padding: 1.2rem 0.3rem; }
  .home2-stat { padding: 0 0.22rem; }
  .home2-stat b { font-size: 1.02rem; }
  .home2-stat b.home2-stat__star { font-size: 0.72rem; letter-spacing: 0; }
  .home2-stat span { font-size: 0.5rem; }
}

/* ============================================================
   v30 — Tighten the vertical space around the "Why Homeowners
   Choose K's" section: reduce the gap above it (from the reviews
   section) and below it (before the "Proudly Serving the
   Triangle" service-area section).
   ============================================================ */
#reviews + .home2-sec { padding-top: 2.4rem; padding-bottom: 1.4rem; }
.home2-area2 { padding-top: 1.4rem; }

@media (max-width: 620px) {
  #reviews + .home2-sec { padding-top: 1.8rem; padding-bottom: 1.2rem; }
  .home2-area2 { padding-top: 1.2rem; }
}

/* ============================================================
   v31 — Make the header logo pure white. The navy header shows
   the cream "light" emblem; this recolors it to solid white
   (works on the transparent PNG and preserves the shape).
   ============================================================ */
.nav .logo__img { filter: brightness(0) invert(1); }

/* ============================================================
   v32 — Reduce the gap between the hero stats panel and the
   "What we do" services section (tighter on mobile, where the
   panel and the section sit close together).
   ============================================================ */
.home2-hero + .home2-sec { padding-top: 2rem; }

@media (max-width: 620px) {
  .home2-hero + .home2-sec { padding-top: 1.2rem; }
}

/* ============================================================
   v33 — Trim the fixed navigation footprint on mobile/tablet:
   (a) make the bottom Call/Text/Quote bar slightly shorter, and
   (b) shrink the sticky header (padding + logo) once the user
   starts scrolling (toggled via the .nav--scrolled class).
   ============================================================ */
/* (a) shorter bottom action bar */
@media (max-width: 980px) {
  .mobile-bar { padding: 0.1rem 0.3rem calc(0.1rem + env(safe-area-inset-bottom)); }
  .mobile-bar__item, .mobile-bar a, .mobile-bar button { padding: 0.16rem 0.2rem; gap: 0.1rem; }
  .mobile-bar__item svg { width: 18px; height: 18px; }
  .mobile-bar__item span { font-size: 0.6rem; }
}

/* (b) header shrinks on scroll */
.nav { transition: padding 0.22s ease; }
.nav .logo__img { transition: width 0.22s ease, height 0.22s ease; }
@media (min-width: 981px) {
  .nav--scrolled { padding-top: 0.3rem; padding-bottom: 0.3rem; }
  .nav--scrolled .logo__img--ondark { width: 42px; height: 42px; }
}
@media (max-width: 980px) {
  .nav--scrolled .logo__img--ondark { width: 54px; height: 54px; }
}

/* ============================================================
   v34 — Bigger, more prominent header logo on DESKTOP so it
   fills most of the navy header bar's height (kept square /
   proportional). Padding is trimmed so the emblem dominates the
   bar; the scroll-shrink from v33 still applies, just larger.
   ============================================================ */
@media (min-width: 981px) {
  .nav { padding-top: 0.3rem; padding-bottom: 0.3rem; }
  .nav .logo__img--ondark { width: 82px; height: 82px; }
  .nav--scrolled .logo__img--ondark { width: 58px; height: 58px; }
}
