/* Homepage layout for Central Elite.
   Scoped to body.page-home so other pages keep the live stylesheet.
   Navy and orange only. Sora + Plus Jakarta Sans. Does not load concept B or C. */

.page-home {
  --hl-paper: #f4f7fb;
  --hl-ink: #0d2447;
  --hl-line: #dde3ef;
  --hl-mark: #f3c15a;
}

.page-home [hidden] { display: none !important; }

.page-home .site-header {
  box-shadow: none;
  border-bottom: 1px solid var(--hl-line);
  background: #fff;
}

.page-home .header-inner {
  min-height: 84px;
  padding-block: .85rem;
  gap: .75rem;
}

.page-home .logo-link { flex: 0 0 auto; width: max-content; margin-right: .35rem; display: inline-flex; align-items: center; min-height: 44px; }
.page-home .logo-img { height: 44px; width: auto; max-width: none; }

.page-home .header-cta { flex-shrink: 0; }

.page-home .header-phone { min-width: 9.6rem; }

.page-home .header-phone a {
  white-space: nowrap;
  font-size: 1.02rem;
}

@media (max-width: 899px) {
  .page-home .header-phone,
  .page-home .header-schedule { display: none; }
  .page-home .header-inner { min-height: 68px; }
}

@media (min-width: 1180px) {
  .page-home .primary-nav { flex: 1 1 auto; min-width: 0; justify-content: flex-end; flex-wrap: nowrap; }
  .page-home .nav-link { padding: .4rem .38rem; font-size: .74rem; white-space: nowrap; }
}

@media (min-width: 1180px) and (max-width: 1320px) {
  .page-home .nav-link { font-size: .72rem; padding: .35rem .28rem; }
  .page-home .header-schedule { padding: .7rem .9rem; font-size: .82rem; }
  .page-home .header-phone a { font-size: .95rem; }
}

.page-home .btn {
  border-radius: 2px;
  font-weight: 800;
  clip-path: polygon(12px 0, 100% 0, 100% 100%, 0 100%, 0 12px);
}

.page-home .btn-navy,
.page-home .hl-btn-navy {
  background: var(--hl-ink);
  color: #fff;
  clip-path: polygon(0 0, calc(100% - 12px) 0, 100% 12px, 100% 100%, 0 100%);
}

.page-home .btn:focus-visible,
.page-home .hl-symptom:focus-visible,
.page-home .hl-filter:focus-visible,
.page-home .faq-question:focus-visible,
.page-home .hl-map-pin:focus-visible {
  outline: 3px solid var(--color-accent);
  outline-offset: 3px;
}

.page-home section[id],
.page-home .hl-band[id] { scroll-margin-top: 5.75rem; }

.hl-band { padding-block: clamp(3.25rem, 7vw, 5.75rem); }
.hl-band--alt { background: var(--hl-paper); }
.hl-band--navy { background: var(--hl-ink); color: #fff; }

.hl-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: .55rem;
  margin: 0 0 .85rem;
  font-family: var(--font-sans);
  font-size: .72rem;
  font-weight: 800;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--color-primary);
}

.hl-band--navy .hl-eyebrow { color: #ffd270; }

.hl-eyebrow::before {
  content: "";
  width: 1.15rem;
  height: .42rem;
  background: var(--color-accent);
  transform: skewX(-20deg);
  flex: none;
}

.hl-h2 {
  font-family: var(--font-heading);
  font-weight: 800;
  font-size: clamp(2rem, 4.2vw, 3.35rem);
  line-height: 1.02;
  letter-spacing: -.03em;
  color: var(--hl-ink);
  margin: 0 0 .85rem;
}

.hl-band--navy .hl-h2,
.hl-close .hl-h2 { color: #fff; }

.hl-lead {
  margin: 0;
  max-width: 62ch;
  color: var(--color-text-muted);
  font-size: 1.05rem;
  line-height: 1.6;
}

.hl-band--navy .hl-lead { color: rgba(255,255,255,.82); }

.hl-head { margin-bottom: clamp(1.6rem, 3vw, 2.4rem); max-width: 40rem; }

/* Hero */
.hl-hero {
  background: var(--hl-paper);
  padding: clamp(2.2rem, 5vw, 4.4rem) 0 clamp(1.25rem, 3vw, 2rem);
}

.hl-hero-grid {
  display: grid;
  gap: 2rem;
  align-items: center;
}

@media (min-width: 980px) {
  .hl-hero-grid {
    grid-template-columns: minmax(0, 1.14fr) minmax(0, .86fr);
    gap: clamp(1.5rem, 3vw, 2.75rem);
    min-height: 520px;
  }
}

.hl-hero h1 {
  font-family: var(--font-heading);
  font-weight: 800;
  font-size: clamp(2.35rem, 3.15vw, 3.35rem);
  line-height: 1.02;
  letter-spacing: -.03em;
  color: var(--hl-ink);
  margin: 0 0 1.05rem;
  text-shadow: none;
}

.hl-hero h1 em,
.hl-hero h1 .hl-mark {
  font-style: italic;
  font-weight: 800;
  color: var(--hl-ink);
  background-image: linear-gradient(transparent 58%, var(--hl-mark) 58%, var(--hl-mark) 90%, transparent 90%);
  padding: 0 .06em;
}

.hl-hero .hero-description {
  color: var(--color-text);
  margin-bottom: 1.35rem;
  max-width: 46ch;
}

.hl-hero-actions {
  display: flex;
  flex-wrap: wrap;
  gap: .75rem;
  margin-bottom: 1rem;
}

.hl-hero-actions .btn { min-height: 52px; padding-inline: 1.35rem; }

@media (max-width: 699px) {
  .hl-hero { padding-top: 1.35rem; padding-bottom: .4rem; }
  .hl-hero h1 { font-size: 2.05rem; line-height: 1.05; margin-bottom: .75rem; }
  .hl-hero .hero-description { font-size: .98rem; margin-bottom: .85rem; }
  .hl-hero-actions { flex-direction: column; margin-bottom: .65rem; }
  .hl-hero-actions .btn { width: 100%; justify-content: center; }
  .hl-hero .hero-thirdcta { margin-bottom: .65rem; }
}

.hl-hero .hero-thirdcta {
  color: var(--color-text-muted);
  margin: 0 0 1.15rem;
}

.hl-hero .hero-thirdcta a { color: var(--color-accent-text); }

.hl-rating-line {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .45rem .75rem;
  margin: 0;
  color: var(--hl-ink);
  font-weight: 700;
  font-size: .95rem;
}

.hl-rating-line a { text-decoration: underline; text-underline-offset: 2px; }

.hl-stars { color: #f5a623; letter-spacing: .08em; }

.hl-rating-meta {
  font-weight: 600;
  color: var(--color-text-muted);
}

.hl-collage {
  position: relative;
  margin: .5rem 0 2.75rem;
}

.hl-collage-main {
  border-radius: 18px;
  overflow: hidden;
  aspect-ratio: 4 / 4.6;
  background: #d5deea;
  box-shadow: 0 18px 40px rgba(13,36,71,.12);
}

.hl-collage-main img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 62% center;
}

.hl-float-card {
  position: absolute;
  left: 0;
  bottom: 16%;
  width: min(250px, 68%);
  background: #fff;
  border-radius: 16px;
  box-shadow: 0 16px 40px rgba(13,36,71,.16);
  padding: .9rem 1rem 1rem;
  left: .75rem;
}

.hl-float-card p {
  margin: .35rem 0 .45rem;
  font-size: .92rem;
  line-height: 1.45;
  color: var(--hl-ink);
}

.hl-float-card cite {
  font-style: normal;
  font-size: .78rem;
  color: var(--color-text-muted);
  font-weight: 600;
}

.hl-inset {
  position: absolute;
  right: 0;
  bottom: 0;
  width: 42%;
  aspect-ratio: 1;
  border: 6px solid #fff;
  border-radius: 18px;
  overflow: hidden;
  box-shadow: 0 16px 36px rgba(13,36,71,.18);
  background: #fff;
  transform: translate(6%, 10%);
}

.hl-inset img { width: 100%; height: 100%; object-fit: cover; }

.hl-yeti-float {
  position: absolute;
  top: -36px;
  right: -18px;
  width: 128px;
  height: auto;
  z-index: 2;
  pointer-events: none;
  filter: drop-shadow(0 8px 14px rgba(13,36,71,.22));
}

@media (max-width: 979px) {
  .hl-collage { margin-top: .4rem; }
  .hl-float-card { position: static; width: auto; transform: none; margin-top: .85rem; }
  .hl-inset { position: static; width: 46%; transform: none; margin-top: -2.4rem; margin-left: auto; }
  .hl-yeti-float { width: 88px; top: 8px; }
}

/* Trust */
.hl-trust-wrap { position: relative; z-index: 2; margin-top: .25rem; padding-bottom: .5rem; background: linear-gradient(var(--hl-paper) 40%, #fff 40%); }

.hl-trust {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  background: #fff;
  border: 1px solid var(--hl-line);
  border-radius: 18px;
  overflow: hidden;
  box-shadow: 0 10px 28px rgba(13,36,71,.06);
}

.hl-trust article {
  padding: 1rem .95rem 1.05rem;
  border-bottom: 1px solid var(--hl-line);
  border-right: 1px solid var(--hl-line);
}

.hl-trust article:nth-child(2n) { border-right: none; }
.hl-trust article:nth-last-child(-n+2) { border-bottom: none; }

.hl-trust-title {
  margin: 0 0 .2rem;
  font-family: var(--font-heading);
  font-size: 1rem;
  font-weight: 800;
  color: var(--hl-ink);
  letter-spacing: -.02em;
}

.hl-trust p { margin: 0; font-size: .82rem; line-height: 1.4; color: var(--color-text-muted); }
.hl-trust a { color: var(--color-accent-text); font-weight: 700; text-decoration: underline; text-underline-offset: 2px; }

@media (min-width: 980px) {
  .hl-trust { grid-template-columns: repeat(6, minmax(0, 1fr)); }
  .hl-trust article { border-bottom: none; border-right: 1px solid var(--hl-line); }
  .hl-trust article:nth-child(2n) { border-right: 1px solid var(--hl-line); }
  .hl-trust article:last-child { border-right: none; }
}

/* Photo strip: full-bleed row, natural aspect ratios, no face crop */
.hl-band--photos { padding-block: clamp(1.35rem, 3vw, 2.15rem); }

.hl-strip-head {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 1rem;
  margin-bottom: .85rem;
}

.hl-strip-head a { color: var(--color-accent-text); font-weight: 800; font-size: .92rem; }

.hl-strip {
  display: flex;
  align-items: stretch;
  gap: 8px;
  overflow-x: auto;
  overscroll-behavior-x: contain;
  scroll-snap-type: x proximity;
  scroll-behavior: smooth;
  scrollbar-width: none;
  -ms-overflow-style: none;
  margin-inline: calc(50% - 50vw);
  width: 100vw;
  max-width: 100vw;
  padding-inline: 10px;
  cursor: grab;
  -webkit-overflow-scrolling: touch;
}

.hl-strip::-webkit-scrollbar { height: 0; display: none; }
.hl-strip.is-dragging { cursor: grabbing; scroll-snap-type: none; scroll-behavior: auto; }

.hl-strip figure {
  position: relative;
  margin: 0;
  flex: 0 0 auto;
  height: clamp(300px, 42vw, 460px);
  aspect-ratio: var(--ar, 3 / 4);
  scroll-snap-align: start;
  border-radius: 18px;
  overflow: hidden;
  background: #d5deea;
}

.hl-strip img.hl-shot {
  width: 100%;
  height: 100%;
  max-width: none;
  object-fit: cover;
  object-position: center center;
  border-radius: 0;
  pointer-events: none;
  -webkit-user-drag: none;
  user-select: none;
}

.hl-strip .hl-marklogo {
  position: absolute;
  right: .55rem;
  bottom: .5rem;
  width: clamp(56px, 7vw, 76px);
  height: auto;
  max-width: none;
  opacity: .94;
  filter: drop-shadow(0 1px 2px rgba(0,0,0,.5));
  pointer-events: none;
}

/* Symptoms: compact chip grid plus one answer line */
.hl-band--symptoms { padding-block: clamp(1.5rem, 3.2vw, 2.4rem); }
.hl-band--symptoms .hl-head { margin-bottom: .85rem; }
.hl-band--symptoms .hl-h2 { font-size: clamp(1.65rem, 3vw, 2.35rem); margin-bottom: .35rem; }
.hl-band--symptoms .hl-lead { font-size: .98rem; }

.hl-symptom-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .45rem;
}

@media (min-width: 720px) {
  .hl-symptom-list { grid-template-columns: repeat(5, minmax(0, 1fr)); }
}

.hl-symptom {
  display: flex;
  width: 100%;
  align-items: center;
  gap: .45rem;
  min-height: 48px;
  text-align: left;
  background: #fff;
  border: 1px solid var(--hl-line);
  border-radius: 12px;
  padding: .5rem .7rem;
  cursor: pointer;
  font: inherit;
  font-weight: 800;
  font-size: .92rem;
  line-height: 1.2;
  color: var(--hl-ink);
}

.hl-symptom .ico { width: 1.15rem; height: 1.15rem; color: var(--color-accent-text); flex: none; }

.hl-symptom[aria-pressed="true"] {
  background: var(--hl-ink);
  color: #fff;
  border-color: var(--hl-ink);
}

.hl-symptom[aria-pressed="true"] .ico { color: #ffd270; }

.hl-symptom-panel {
  margin-top: .7rem;
  background: #fff;
  border: 1px solid var(--hl-line);
  border-radius: 14px;
  padding: .75rem .9rem .8rem;
}

.hl-symptom-panel #symptomEmpty { margin: 0; font-size: .95rem; color: var(--color-text); }

.hl-symptom-hint {
  margin: .45rem 0 0;
  font-size: .95rem;
  line-height: 1.4;
  color: var(--color-text);
}

.hl-symptom-hint a { color: var(--color-accent-text); font-weight: 800; }

.page-home .hl-symptom-panel .safety-interrupt { margin-top: .65rem; }
.page-home .symptom-tray { margin: 0; box-shadow: none; background: transparent; border: 0; border-radius: 0; padding: 0; }
.page-home .symptom-tray-list { margin: 0; font-size: .95rem; }
.page-home .symptom-tray-actions { margin-top: .55rem; }
.page-home .symptom-tray-actions .btn { min-height: 44px; }

/* Services */
.hl-svc-grid {
  display: grid;
  gap: 1.15rem;
}

@media (min-width: 900px) {
  .hl-svc-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

.hl-svc {
  background: #fff;
  border: 1px solid var(--hl-line);
  border-radius: 18px;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  box-shadow: 0 10px 28px rgba(13,36,71,.05);
}

.hl-svc-media { position: relative; aspect-ratio: 16 / 10; background: #d5deea; }
.hl-svc-media img { width: 100%; height: 100%; object-fit: cover; }

.hl-svc-badge {
  position: absolute;
  left: 1rem;
  bottom: -1.15rem;
  width: 2.6rem;
  height: 2.6rem;
  border-radius: 10px;
  background: var(--hl-ink);
  color: #fff;
  display: grid;
  place-items: center;
  box-shadow: 0 8px 16px rgba(13,36,71,.2);
}

.hl-svc-badge .ico { width: 1.25rem; height: 1.25rem; }

.hl-svc-body { padding: 1.7rem 1.15rem 1rem; display: flex; flex-direction: column; flex: 1; }
.hl-svc-body h3 { margin: 0 0 .4rem; font-size: 1.45rem; color: var(--hl-ink); }
.hl-svc-body p { margin: 0 0 .85rem; color: var(--color-text-muted); font-size: .95rem; }
.hl-svc-links { list-style: none; margin: 0; padding: .2rem 0 0; border-top: 1px solid var(--hl-line); }
.hl-svc-links a {
  display: flex;
  justify-content: space-between;
  gap: .75rem;
  padding: .72rem 0;
  border-bottom: 1px solid var(--hl-line);
  font-weight: 700;
  color: var(--hl-ink);
}
.hl-svc-links li:last-child a { border-bottom: none; }
.hl-svc-links a:hover { color: var(--color-accent-text); }

.hl-center { text-align: center; margin-top: 1.6rem; }

/* Offer */
.hl-offer {
  background: var(--color-accent);
  color: var(--hl-ink);
  padding: clamp(1.8rem, 4vw, 2.6rem) 0;
  clip-path: polygon(0 0, 100% 0, 100% calc(100% - 26px), calc(100% - 42px) 100%, 0 100%);
}

.hl-offer-grid {
  display: grid;
  gap: 1.2rem;
  align-items: center;
}

@media (min-width: 800px) {
  .hl-offer-grid { grid-template-columns: 1.4fr auto; }
}

.hl-offer h2 {
  font-family: var(--font-heading);
  font-size: clamp(1.7rem, 3vw, 2.4rem);
  line-height: 1.05;
  letter-spacing: -.03em;
  margin: 0 0 .4rem;
  color: var(--hl-ink);
}

.hl-offer p { margin: 0; max-width: 52ch; font-weight: 600; }
.hl-offer-actions { display: flex; flex-direction: column; gap: .55rem; }
.hl-offer .btn-navy { min-width: 220px; justify-content: center; }

/* Promises on navy */
.page-home .promises-section.hl-band--navy { background: var(--hl-ink); position: relative; overflow: hidden; }
.page-home .promises-section .hl-yeti-watermark {
  position: absolute;
  right: -1rem;
  bottom: -1.5rem;
  width: min(280px, 40vw);
  opacity: .18;
  pointer-events: none;
}
.page-home .promises-section .container { position: relative; z-index: 1; }
.page-home .hl-band--navy .promise-card {
  background: rgba(255,255,255,.06);
  border: 1px solid rgba(255,255,255,.12);
  border-left: 4px solid var(--color-accent);
  color: #fff;
}
.page-home .hl-band--navy .promise-card h3 { color: #fff; }
.page-home .hl-band--navy .promise-card p { color: rgba(255,255,255,.82); }
.page-home .hl-band--navy .promises-foot { color: rgba(255,255,255,.8); }
.page-home .hl-band--navy .promises-foot a { color: #ffd270; }

/* Costs + calc keep their components; give them the editorial header */
.page-home .fee-item { border-radius: 16px; }

/* The shared calculator cards size to their content. On a phone the
   nowrap estimate button and the range input's minimum width push
   .calc-controls and .calc-result outside .container. */
.page-home .calc-wrap {
  grid-template-columns: minmax(0, 1fr);
  min-width: 0;
}
@media (min-width: 900px) {
  .page-home .calc-wrap {
    grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr);
  }
}
.page-home .calc-controls,
.page-home .calc-result {
  min-width: 0;
  max-width: 100%;
}
.page-home .calc-field label {
  min-width: 0;
  flex-wrap: wrap;
  row-gap: .15rem;
}
.page-home .calc-field input[type="range"] {
  display: block;
  width: 100%;
  max-width: 100%;
  min-width: 0;
}
.page-home .calc-result .btn {
  white-space: normal;
  text-align: center;
  height: auto;
  min-height: 48px;
}
@media (max-width: 430px) {
  .page-home .calc-controls,
  .page-home .calc-result {
    padding: 1.05rem .9rem;
  }
  .page-home .calc-amount {
    font-size: 1.65rem;
  }
}

/* About */
.hl-about {
  display: grid;
  gap: 1.75rem;
  align-items: center;
}

@media (min-width: 900px) {
  .hl-about { grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: 2.5rem; }
}

.hl-about-photos { position: relative; min-height: 280px; }
.hl-about-photos .hl-about-main {
  width: min(100%, 420px);
  aspect-ratio: 4 / 5;
  object-fit: cover;
  border-radius: 18px;
  background: #d5deea;
}
.hl-about-photos .hl-about-overlap {
  position: absolute;
  width: 48%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  border-radius: 16px;
  border: 6px solid #fff;
  right: 0;
  bottom: -1rem;
  box-shadow: 0 14px 30px rgba(13,36,71,.16);
  background: #fff;
}
.hl-about-photos .hl-yeti-float { width: 96px; top: auto; bottom: 38%; right: 6%; }

.hl-statement {
  margin: 1.15rem 0;
  padding: .15rem 0 .15rem 1rem;
  border-left: 4px solid var(--color-accent);
  font-family: var(--font-heading);
  font-weight: 700;
  font-size: 1.2rem;
  line-height: 1.35;
  letter-spacing: -.02em;
  color: var(--hl-ink);
}

.hl-points { list-style: none; margin: .4rem 0 1.1rem; padding: 0; display: grid; gap: .35rem; }
.hl-points li { padding-left: 1.1rem; position: relative; color: var(--color-text); }
.hl-points li::before { content: ""; position: absolute; left: 0; top: .55rem; width: .45rem; height: .45rem; border-radius: 2px; background: var(--color-accent); }

.hl-text-btn {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  padding: .55rem 1rem;
  border-radius: 999px;
  background: var(--hl-paper);
  font-weight: 800;
  color: var(--hl-ink);
}

/* Gallery */
.hl-filters { display: flex; flex-wrap: wrap; gap: .45rem; margin: 0 0 1rem; }
.hl-filter {
  border: 1px solid var(--hl-line);
  background: #fff;
  color: var(--hl-ink);
  border-radius: 999px;
  padding: .4rem .85rem;
  font: inherit;
  font-weight: 700;
  font-size: .85rem;
  cursor: pointer;
}
.hl-filter[aria-pressed="true"] { background: var(--hl-ink); color: #fff; border-color: var(--hl-ink); }

.hl-gallery {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  grid-auto-rows: 132px;
  grid-auto-flow: dense;
  gap: 8px;
}
@media (min-width: 800px) {
  .hl-gallery {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    grid-auto-rows: 176px;
  }
}
@media (min-width: 1100px) {
  .hl-gallery { grid-auto-rows: 196px; }
}
.hl-gallery figure {
  position: relative;
  margin: 0;
  min-height: 0;
  border-radius: 16px;
  overflow: hidden;
  background: #d5deea;
}
.hl-gallery figure[data-more] { display: none; }
.hl-gallery figure.is-wide { grid-column: span 2; }
.hl-gallery figure.is-tall { grid-row: span 2; }
.hl-gallery figure.is-big { grid-column: span 2; grid-row: span 2; }
.hl-gallery img {
  width: 100%;
  height: 100%;
  max-width: none;
  object-fit: cover;
  border-radius: 0;
  background: #d5deea;
}
.hl-gallery figcaption {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  margin: 0;
  padding: 1.35rem .7rem .5rem;
  font-size: .84rem;
  font-weight: 700;
  line-height: 1.25;
  color: #fff;
  background: linear-gradient(to top, rgba(8,24,47,.9) 0%, rgba(8,24,47,.45) 62%, transparent 100%);
}
.hl-gallery figure[hidden] { display: none; }

/* Reviews */
.hl-score {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: .55rem .8rem;
  margin: .2rem 0 1rem;
}
.hl-score b {
  font-family: var(--font-heading);
  font-size: clamp(2.8rem, 6vw, 4rem);
  line-height: .9;
  letter-spacing: -.04em;
  color: var(--hl-ink);
}
.hl-review-track {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: minmax(240px, 78%);
  gap: .8rem;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  padding-bottom: .4rem;
  scrollbar-width: thin;
}
@media (min-width: 980px) {
  .hl-review-track { grid-auto-columns: calc((100% - 2.4rem) / 4); }
}
.hl-quote {
  scroll-snap-align: start;
  background: #fff;
  border: 1px solid var(--hl-line);
  border-radius: 16px;
  padding: 1.05rem 1rem 1rem;
  margin: 0;
}
.hl-quote[hidden] { display: none; }
.hl-quote blockquote { margin: .45rem 0 .7rem; font-size: .95rem; line-height: 1.5; color: var(--hl-ink); }
.hl-quote figcaption { font-size: .8rem; color: var(--color-text-muted); font-weight: 700; }
.hl-review-nav { display: flex; gap: .5rem; margin-top: .9rem; }
.hl-round {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  border: 1px solid var(--hl-line);
  background: #fff;
  font-size: 1.1rem;
  cursor: pointer;
  color: var(--hl-ink);
}
.hl-round:focus-visible { outline: 3px solid var(--color-accent); outline-offset: 2px; }

/* Timeline */
.hl-timeline {
  display: grid;
  gap: 1.1rem;
  margin: 0;
  padding: 0;
  list-style: none;
}
@media (min-width: 900px) {
  .hl-timeline {
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 1rem;
    position: relative;
  }
  .hl-timeline::before {
    content: "";
    position: absolute;
    top: 1rem;
    left: 1rem;
    right: 1rem;
    height: 2px;
    background: #d5deea;
  }
}
.hl-step { position: relative; }
.hl-step-num {
  width: 2rem;
  height: 2rem;
  display: grid;
  place-items: center;
  background: var(--color-accent);
  color: var(--hl-ink);
  font-family: var(--font-heading);
  font-weight: 800;
  border-radius: 6px;
  margin-bottom: .7rem;
  position: relative;
  z-index: 1;
}
.hl-step h3 { margin: 0 0 .3rem; font-size: 1rem; color: var(--hl-ink); }
.hl-step p { margin: 0; font-size: .88rem; color: var(--color-text-muted); line-height: 1.5; }

/* Repair card */
.hl-split-card {
  display: grid;
  gap: 1.2rem;
  background: #fff;
  border: 1px solid var(--hl-line);
  border-radius: 20px;
  padding: clamp(1.2rem, 3vw, 2rem);
  box-shadow: 0 12px 32px rgba(13,36,71,.06);
}
@media (min-width: 800px) {
  .hl-split-card { grid-template-columns: 1.2fr .8fr; align-items: center; }
}
.hl-split-card .hl-panel {
  background: var(--hl-ink);
  color: #fff;
  border-radius: 16px;
  padding: 1.2rem;
}
.hl-split-card .hl-panel p { color: rgba(255,255,255,.82); margin: .4rem 0 .9rem; }

/* Areas */
.hl-areas {
  display: grid;
  gap: 1.5rem;
}
@media (min-width: 900px) {
  .hl-areas { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: start; }
}
.hl-featured { display: grid; grid-template-columns: 1fr 1fr; gap: .6rem; margin-top: .9rem; }
.hl-featured a { background: #fff; border: 1px solid var(--hl-line); border-radius: 14px; padding: .85rem .95rem; color: var(--hl-ink); }
.hl-featured strong { display: block; font-size: 1.05rem; }
.hl-featured span { display: block; font-weight: 600; color: var(--color-text-muted); font-size: .82rem; }

.hl-town-form { display: flex; flex-wrap: wrap; gap: .5rem; margin: 1rem 0 .6rem; }
.hl-town-form input {
  flex: 1 1 180px;
  min-height: 48px;
  border: 1.5px solid var(--hl-line);
  border-radius: 10px;
  padding: .6rem .8rem;
  font: inherit;
}
.hl-town-result { min-height: 1.4em; font-weight: 700; }
.hl-town-result a { color: var(--color-accent-text); }
.hl-chips { display: flex; flex-wrap: wrap; gap: .45rem; margin-top: .8rem; }
.hl-chips a {
  border: 1px solid var(--hl-line);
  background: #fff;
  border-radius: 999px;
  padding: .35rem .75rem;
  font-weight: 700;
  font-size: .88rem;
}
.hl-chips a:hover,
.hl-chips a.is-match { background: var(--hl-ink); color: #fff; border-color: var(--hl-ink); }

.hl-map {
  position: relative;
  background: #fff;
  border: 1px solid var(--hl-line);
  border-radius: 18px;
  min-height: 420px;
  overflow: hidden;
}
.hl-map svg { width: 100%; height: 420px; display: block; }
.hl-map-pin {
  position: absolute;
  transform: translate(-50%, -50%);
  left: var(--x);
  top: var(--y);
  font-size: .72rem;
  font-weight: 800;
  color: var(--hl-ink);
  background: #fff;
  border: 1px solid var(--hl-line);
  border-radius: 999px;
  padding: .15rem .4rem .15rem .28rem;
  white-space: nowrap;
  box-shadow: 0 4px 10px rgba(13,36,71,.08);
}
.hl-map-pin::before {
  content: "";
  display: inline-block;
  width: .45rem;
  height: .45rem;
  margin-right: .25rem;
  border-radius: 50%;
  background: var(--color-accent);
  vertical-align: middle;
}
.hl-map-pin.is-match { background: var(--hl-ink); color: #fff; }

/* Blog + financing */
.hl-posts { display: grid; gap: 1rem; }
@media (min-width: 800px) { .hl-posts { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.hl-post {
  background: #fff;
  border: 1px solid var(--hl-line);
  border-radius: 16px;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  color: inherit;
}
.hl-post img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; background: #d5deea; }
.hl-post div { padding: .95rem 1rem 1.05rem; display: flex; flex-direction: column; gap: .35rem; flex: 1; }
.hl-post span { font-size: .72rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: var(--color-accent-text); }
.hl-post h3 { margin: 0; font-size: 1.05rem; color: var(--hl-ink); }
.hl-post p { margin: 0; color: var(--color-text-muted); font-size: .9rem; }
.hl-post em { margin-top: auto; font-style: normal; font-weight: 800; color: var(--color-primary); }

.hl-fin-grid { display: grid; gap: .7rem; }
@media (min-width: 700px) { .hl-fin-grid { grid-template-columns: 1fr 1fr; } }
.hl-fin-card {
  background: var(--hl-paper);
  border-radius: 14px;
  padding: .95rem 1rem;
}
.hl-fin-card h3 { margin: 0 0 .25rem; font-size: 1rem; color: var(--hl-ink); }
.hl-fin-card p { margin: 0; color: var(--color-text-muted); font-size: .9rem; }

/* FAQ */
.page-home .faq-list { max-width: 820px; display: grid; gap: .6rem; }
.page-home .faq-item { border: 1px solid var(--hl-line); border-radius: 14px; background: #fff; overflow: hidden; }
.page-home .faq-question {
  width: 100%;
  background: #fff;
  border-radius: 14px;
  font-weight: 800;
  color: var(--hl-ink);
}
.page-home .faq-question.active { background: #fff; }
.page-home .faq-question.active .faq-icon { transform: none; }
.page-home .faq-icon::before { content: "+"; font-weight: 700; color: var(--color-accent); }
.page-home .faq-question.active .faq-icon { font-size: 0; }
.page-home .faq-question.active .faq-icon::before { content: "–"; font-size: 1.25rem; color: var(--hl-ink); }
.page-home .faq-answer.open { max-height: 40rem; }

/* Close */
.hl-close { position: relative; overflow: hidden; }
.hl-close .hl-yeti-watermark {
  position: absolute;
  right: -2rem;
  bottom: -3rem;
  width: min(420px, 55vw);
  opacity: .12;
  pointer-events: none;
}
.hl-close-grid {
  position: relative;
  z-index: 1;
  display: grid;
  gap: 1.4rem;
  align-items: center;
}
@media (min-width: 800px) {
  .hl-close-grid { grid-template-columns: 1.2fr .8fr; }
}
.hl-close-phone {
  font-family: var(--font-heading);
  font-weight: 800;
  font-size: clamp(2rem, 4vw, 3rem);
  letter-spacing: -.03em;
  color: var(--color-accent);
  line-height: 1;
}
.hl-close-actions { display: flex; flex-wrap: wrap; gap: .6rem; margin-top: 1rem; }
.hl-close .btn-outline { color: #fff; border-color: rgba(255,255,255,.7); }

/* Mobile bar */
.page-home .mobile-cta-bar {
  background: rgba(255,255,255,.94);
  backdrop-filter: blur(10px);
  border-top: 1px solid var(--hl-line);
  box-shadow: 0 -8px 24px rgba(13,36,71,.08);
  padding: .65rem .75rem calc(.65rem + env(safe-area-inset-bottom));
}
.page-home .mobile-cta-bar .btn { min-height: 48px; font-size: .95rem; }
.page-home .hl-bar-call { background: var(--color-accent); color: var(--hl-ink); justify-content: center; }
.page-home .hl-bar-book { background: var(--hl-ink); color: #fff; justify-content: center; }

@media (prefers-reduced-motion: reduce) {
  .page-home .hl-strip,
  .page-home .hl-review-track { scroll-behavior: auto; }
}

@media (max-width: 699px) {
  .hl-about-photos .hl-about-overlap { position: static; width: 70%; margin-top: -2rem; }
  .hl-about-photos .hl-yeti-float { display: none; }
}
