/* ==========================================================================
   Furniture Disposal Plus | site.css
   Design language: freight and measurement. Mono labels, hairline rules,
   tick marks, one lime accent doing real work.
   ========================================================================== */

.section { padding-block: var(--space-12); }

.section__label {
  display: flex; align-items: center; gap: var(--space-3);
  font-family: var(--font-mono); font-size: var(--text-xs); font-weight: 500;
  letter-spacing: 0.1em; text-transform: uppercase; color: var(--ash);
  margin-bottom: var(--space-4);
}
.section__label::before { content: ""; width: 28px; height: 2px; background: var(--signal); }

.section__lead {
  font-size: var(--text-lg); color: var(--ash);
  margin-top: var(--space-2); margin-bottom: var(--space-8);
}

.btn--lg { font-size: var(--text-lg); padding: var(--space-4) var(--space-8); }

/* (measure strip removed) */

/* --------------------------------------------------------------------------
   Hero
   -------------------------------------------------------------------------- */

.hero { padding-block: var(--space-16); }

.hero__grid {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);
  gap: var(--space-12);
  align-items: center;
}

.hero .eyebrow { display: inline-flex; align-items: center; gap: var(--space-3); }
.hero .eyebrow::before { content: ""; width: 28px; height: 2px; background: var(--signal); }

.hero__copy h1 {
  margin-block: var(--space-4) var(--space-6);
  font-size: clamp(1.9rem, 2.2vw + 0.85rem, 2.5rem);
}
.hero__copy h1 em { font-style: normal; color: var(--signal); white-space: nowrap; }

.hero__answer {
  font-size: var(--text-lg); line-height: 1.55; color: #56514B;
  margin-bottom: var(--space-8);
}
.hero__answer data { color: var(--signal); }

.hero__cta-row { display: flex; align-items: center; gap: var(--space-6); flex-wrap: wrap; }
.hero__meta {
  font-family: var(--font-mono); font-size: var(--text-xs);
  color: var(--ash); letter-spacing: 0.04em;
}

/* The Doorway Test diagram card */
.doorway-card {
  border: 1px solid #2A2A2A; border-radius: var(--radius);
  background: linear-gradient(#1A1A1A, #151515);
  padding: var(--space-6);
  margin: 0;
}
.doorway-card svg { width: 100%; height: auto; display: block; }
.doorway-card figcaption {
  display: flex; justify-content: space-between; align-items: baseline; gap: var(--space-4);
  margin-top: var(--space-4); padding-top: var(--space-4);
  border-top: 1px solid #2A2A2A;
  font-size: var(--text-sm); color: var(--ash);
}
.doorway-card figcaption .mono {
  color: var(--signal); font-size: var(--text-xs);
  letter-spacing: 0.06em; text-transform: uppercase; white-space: nowrap;
}

@media (max-width: 900px) {
  .hero__grid { grid-template-columns: 1fr; gap: var(--space-8); }
}

/* --------------------------------------------------------------------------
   Booking: embed slot plus price card
   -------------------------------------------------------------------------- */

.booking__grid {
  display: grid;
  grid-template-columns: minmax(0, 640px);
  justify-content: center;
  gap: var(--space-8); align-items: stretch;
}
.booking .section__label,
.booking h2,
.booking .section__lead {
  max-width: 640px; margin-left: auto; margin-right: auto; text-align: center;
}
.booking .section__label { justify-content: center; }

.booking__slot {
  border: 1px solid var(--rule); border-top: 4px solid var(--signal);
  border-radius: var(--radius);
  padding: var(--space-8);
}

.price-card { border: 2px solid var(--ink); border-radius: var(--radius); overflow: hidden; background: #FFFFFF; display: flex; flex-direction: column; color: var(--ink); }
.section--dark .price-card { border-color: #3A3A3A; }
.section--dark .price-card__head { color: var(--signal); }
.price-card__head {
  background: var(--ink); color: var(--bone);
  padding: var(--space-4) var(--space-6);
  font-family: var(--font-mono); font-size: var(--text-xs);
  letter-spacing: 0.1em; text-transform: uppercase;
}
.price-card table { font-size: var(--text-base); }
.price-card td, .price-card th { padding: var(--space-4) var(--space-6); }
.price-card tr:last-child td { border-bottom: 0; }
.price-card td:last-child { text-align: right; }
.price-card td data { font-size: var(--text-xl); font-weight: 500; }
.price-card__foot {
  margin-top: auto;
  padding: var(--space-3) var(--space-6) var(--space-4);
  font-size: var(--text-xs); color: var(--ash);
  border-top: 1px solid var(--rule);
}

@media (max-width: 900px) { .booking__grid { grid-template-columns: 1fr; } }

/* --------------------------------------------------------------------------
   Item grid with line icons
   -------------------------------------------------------------------------- */

.items { background: #F5F5F2; border-top: 1px solid var(--rule); border-bottom: 1px solid var(--rule); }

.item-grid {
  list-style: none; padding: 0; margin: 0; max-width: none;
  display: grid; grid-template-columns: repeat(6, 1fr);
  gap: var(--space-3);
}

.item-grid a {
  display: flex; flex-direction: column; align-items: flex-start;
  gap: var(--space-2);
  padding: var(--space-4);
  border: 1px solid var(--rule); border-radius: var(--radius);
  text-decoration: none; background: #FFFFFF;
  transition: border-color var(--fast) var(--ease), transform var(--fast) var(--ease), box-shadow var(--fast) var(--ease);
}
.item-grid a:hover {
  border-color: var(--ink); transform: translateY(-3px);
  box-shadow: 0 4px 0 var(--signal);
}
.item-grid svg {
  width: 46px; height: 36px;
  stroke: var(--ink); stroke-width: 1.8; fill: none; stroke-linecap: square;
  margin-bottom: var(--space-1);
}
.item-grid__name { font-weight: 500; font-size: var(--text-sm); }
@media (max-width: 1100px) { .item-grid { grid-template-columns: repeat(4, 1fr); } }
@media (max-width: 700px) { .item-grid { grid-template-columns: repeat(2, 1fr); } }
.item-grid__price {
  font-size: var(--text-xs); color: var(--ink); white-space: nowrap;
  background: #EFEFEA; padding: 3px 9px; border-radius: 3px;
}

/* --------------------------------------------------------------------------
   How it works
   -------------------------------------------------------------------------- */

.steps {
  list-style: none; padding: 0; margin: 0; max-width: none;
  display: grid; grid-template-columns: repeat(3, 1fr);
  gap: var(--space-4);
}
@media (max-width: 860px) { .steps { grid-template-columns: 1fr; } }
.step {
  padding: var(--space-6) var(--space-5);
  background: #FFFFFF;
  border: 1px solid var(--rule);
  border-top: 3px solid var(--signal);
  border-radius: var(--radius);
}
.step__num {
  display: inline-block; font-size: var(--text-sm); color: var(--ink);
  background: var(--signal); padding: var(--space-1) var(--space-3);
  border-radius: var(--radius); margin-bottom: var(--space-4);
}
.step h3 { margin-bottom: var(--space-2); }
.step p { color: var(--ash); font-size: var(--text-sm); }



/* --------------------------------------------------------------------------
   Coverage band
   -------------------------------------------------------------------------- */

.coverage__inner {
  display: grid; grid-template-columns: minmax(0, 1fr) auto;
  gap: var(--space-8); align-items: center;
}
.coverage .btn { background: var(--signal); border-color: var(--signal); color: var(--ink); }

.state-ticker {
  margin-top: var(--space-6); padding-top: var(--space-6);
  border-top: 1px solid #2A2A2A;
  font-family: var(--font-mono); font-size: var(--text-xs);
  letter-spacing: 0.3em; color: var(--ash);
  line-height: 2.2; max-width: none;
}
.state-ticker b { color: var(--signal); font-weight: 500; }

@media (max-width: 760px) { .coverage__inner { grid-template-columns: 1fr; } }

/* --------------------------------------------------------------------------
   Reviews
   -------------------------------------------------------------------------- */

.reviews { background: #F5F5F2; border-top: 1px solid var(--rule); border-bottom: 1px solid var(--rule); }
.reviews [data-workmon-trust]:empty {
  border: 1px solid var(--rule); border-radius: var(--radius);
  min-height: 110px; display: grid; place-items: center;
  background: repeating-linear-gradient(-45deg, #FBFBFA 0 14px, #FFFFFF 14px 28px);
}
.reviews [data-workmon-trust]:empty::after {
  content: "Verified customer reviews load at launch";
  font-family: var(--font-mono); font-size: var(--text-sm); color: var(--ash);
}

/* --------------------------------------------------------------------------
   FAQ
   -------------------------------------------------------------------------- */

.faq details {
  border: 1px solid var(--rule);
  border-radius: var(--radius);
  padding: var(--space-4) var(--space-5);
  background: #FFFFFF;
}
.faq details + details { margin-top: var(--space-3); }
.faq details:last-of-type { border-bottom: 1px solid var(--rule); }
.faq details[open] { border-color: var(--ink); box-shadow: 0 3px 0 var(--signal); }
.faq details p { color: var(--ash); }
.faq summary::marker { color: var(--signal); }
.faq summary { list-style-position: inside; }

/* --------------------------------------------------------------------------
   Footer
   -------------------------------------------------------------------------- */

.site-footer { padding-block: var(--space-12); border-top: 3px solid var(--signal); }
.footer-nav {
  list-style: none; padding: 0; margin: 0 0 var(--space-8); max-width: none;
  display: flex; flex-wrap: wrap; gap: var(--space-4) var(--space-8);
}
.footer-nav a { text-decoration: none; font-size: var(--text-sm); color: var(--bone); }
.footer-nav a:hover { text-decoration: underline; text-decoration-color: var(--signal); }
.site-footer .loadup-lockup { color: #C9CDD0; margin-bottom: var(--space-2); }
.site-footer .loadup-lockup a { color: var(--bone); }
.site-footer small { color: var(--ash); }


/* --------------------------------------------------------------------------
   Full-screen section rhythm. Each section fills the viewport with a sliver
   of the next section visible. Desktop only; mobile flows naturally.
   -------------------------------------------------------------------------- */

@media (min-width: 900px) {
  /* Anchor jumps land with the section top in view */
  .section[id] { scroll-margin-top: 4.25rem; }
}


/* Breathing room under section titles */
.section h2 {
  margin-bottom: var(--space-8);
}
.section h2 + .section__lead {
  margin-top: calc(-1 * var(--space-4));
}


/* Clickable state ticker */
.state-ticker a { color: inherit; text-decoration: none; }
.state-ticker a:hover { color: var(--signal); text-decoration: underline; text-decoration-color: var(--signal); text-underline-offset: 4px; }


/* --------------------------------------------------------------------------
   Core-page header: editorial two-column layout
   Title left, intro right, tighter band, smaller display size.
   -------------------------------------------------------------------------- */

.page-hero {
  padding-block: var(--space-12) var(--space-12);
}

.page-hero .container {
  display: grid;
  grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
  column-gap: var(--space-16);
  row-gap: var(--space-4);
  align-items: start;
}

.page-hero .breadcrumb {
  grid-column: 1 / -1;
  margin-bottom: var(--space-2);
}

.page-hero h1 {
  grid-column: 1;
  margin: 0;
  font-size: clamp(1.75rem, 1.8vw + 0.9rem, 2.5rem);
  padding-bottom: var(--space-3);
  border-bottom: 3px solid var(--signal);
  align-self: end;
}

.page-hero .hero__answer {
  grid-column: 2;
  margin: 0;
  font-size: var(--text-base);
  align-self: end;
}

@media (max-width: 900px) {
  .page-hero .container { grid-template-columns: 1fr; }
  .page-hero h1, .page-hero .hero__answer { grid-column: 1; }
  .page-hero h1 { border-bottom: 0; padding-bottom: 0; }
}


/* Hero photo: tall portrait card like the parent brand */
.hero__media {
  justify-self: end;
  width: 100%;
  max-width: 500px;
}
.hero__media img {
  border-radius: 10px;
  width: 100%;
  aspect-ratio: 3 / 4;
  object-fit: cover;
  display: block;
}
@media (max-width: 900px) {
  .hero__media { justify-self: stretch; max-width: none; }
}


/* Service Areas hub: coverage stat panel */
.coverage-stat {
  justify-self: end;
  width: 100%;
  max-width: 440px;
  border: 1px solid #2A2A2A;
  border-top: 3px solid var(--signal);
  border-radius: var(--radius);
  padding: var(--space-8) var(--space-8) var(--space-6);
  background: linear-gradient(#161616, #111);
}
.coverage-stat__big {
  font-family: var(--font-display);
  font-variation-settings: "wdth" 125;
  font-weight: 800;
  font-style: italic;
  font-size: 7rem;
  line-height: 0.9;
  color: var(--signal);
  letter-spacing: -0.03em;
}
.coverage-stat__label {
  font-size: var(--text-lg);
  color: var(--bone);
  margin-bottom: var(--space-6);
  padding-bottom: var(--space-6);
  border-bottom: 1px solid #2A2A2A;
}
.coverage-stat__row {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  padding: var(--space-3) 0;
  color: #C9CDD0;
  font-size: var(--text-sm);
}
.coverage-stat__row + .coverage-stat__row { border-top: 1px solid #1F1F1F; }
.coverage-stat__row .mono { color: var(--signal); font-family: var(--font-mono); font-size: var(--text-base); }
@media (max-width: 900px) {
  .coverage-stat { justify-self: stretch; max-width: none; }
  .coverage-stat__big { font-size: 5rem; }
}




/* ==========================================================================
   WARM LAYER
   Loaded last so it wins. Direction: warm, friendly, trustworthy, like the
   parent brand. Cream ground, teal accent, soft rounded cards, gentle
   shadows. No hard offsets, no blueprint grid, no tape rules.
   ========================================================================== */

::selection { background: var(--signal-soft); color: var(--ink); }

/* Warm the eyebrow ticks and hero answer */
.hero__answer { color: #56514B; }
.hero__answer data { color: var(--signal); }
.section--dark .eyebrow { color: var(--signal-soft); }
.section__label::before,
.hero .eyebrow::before { background: var(--signal); }

/* --------------------------------------------------------------------------
   Dark sections: keep them warm and simple, no grid overlay
   -------------------------------------------------------------------------- */
.section--dark,
.hero.section--dark { background: var(--dark); }

/* --------------------------------------------------------------------------
   Hero: bigger friendly voice, soft framed photo
   -------------------------------------------------------------------------- */
.hero { padding-block: var(--space-16); }
.hero__copy h1 {
  font-size: clamp(2.3rem, 3.2vw + 1rem, 3.5rem);
  line-height: 1.05;
  letter-spacing: -0.02em;
}
.hero__copy h1 em { color: var(--signal-soft); }

.hero__media { position: relative; }
.hero__media img {
  border-radius: var(--radius-lg);
  border: 0;
  box-shadow: 0 20px 50px rgba(34,48,58,0.28);
}
/* Friendly floating pickup chip, like the parent brand */
.hero__media::after {
  /* Replaced by real .photo-badge HTML element for dot + text consistency */
  content: none;
}
.hero__media::before {
  content: none;
}
/* Reusable floating pickup badge: white pill, teal flashing dot, top-right */
.hero-badge {
  position: absolute; top: 16px; right: 16px; z-index: 3;
  display: inline-flex; align-items: center; gap: 9px;
  padding: 9px 15px; border-radius: 999px;
  background: #FFFFFF; box-shadow: 0 6px 18px rgba(34,48,58,0.18);
  max-width: calc(100% - 32px);
}
.hero-badge__dot {
  width: 9px; height: 9px; border-radius: 50%; flex-shrink: 0;
  background: var(--signal, #17B5AE);
  box-shadow: 0 0 0 0 rgba(23,181,174,0.55);
  animation: hero-chip-flash 1.4s ease-in-out infinite;
}
.hero-badge__text {
  font-family: var(--font-mono, monospace); font-size: 12px;
  font-weight: 500; letter-spacing: 0.01em; color: var(--dark); line-height: 1.3;
}
@media (max-width: 480px) {
  .hero-badge { padding: 8px 12px; }
  .hero-badge__text { font-size: 11px; }
}
@keyframes hero-chip-flash {
  0%,100% { opacity: 1; box-shadow: 0 0 0 0 rgba(23,181,174,0.55); }
  50% { opacity: 0.4; box-shadow: 0 0 0 7px rgba(23,181,174,0); }
}
@media (prefers-reduced-motion: reduce) {
  .hero__media::before { animation: none; }
}

/* --------------------------------------------------------------------------
   Buttons already teal + pill from tokens. Just the nav button here.
   -------------------------------------------------------------------------- */
.section--dark .btn:hover { box-shadow: 0 8px 22px rgba(79,211,207,0.30); }

/* --------------------------------------------------------------------------
   Section rhythm: bigger friendly h2s, alternating cream bands
   -------------------------------------------------------------------------- */
.section { padding-block: var(--space-16); }
.section h2 { font-size: clamp(1.9rem, 2.2vw + 0.8rem, 2.5rem); }

/* --------------------------------------------------------------------------
   Item grid: soft white cards, teal icon tiles, gentle lift
   -------------------------------------------------------------------------- */
.items { background: var(--cream-sink); border-top: 1px solid var(--rule); border-bottom: 1px solid var(--rule); }
.item-grid a {
  padding: var(--space-5) var(--space-4);
  background: var(--cream-card);
  border: 1px solid var(--rule);
  border-radius: var(--radius);
  box-shadow: 0 2px 8px rgba(42,38,34,0.04);
}
.item-grid svg {
  width: 52px; height: 40px;
  padding: 8px 7px;
  box-sizing: content-box;
  background: var(--signal-12);
  border: 0;
  border-radius: 10px;
  color: var(--signal);
  fill: currentColor;
  stroke: none;
  margin-bottom: var(--space-2);
  transition: background var(--fast) var(--ease), color var(--fast) var(--ease);
}
.item-grid svg.item-ico { width: 30px; height: 30px; padding: 9px; }
.item-grid a:hover {
  border-color: var(--signal);
  transform: translateY(-3px);
  box-shadow: var(--lift-lime);
}
.item-grid a:hover svg { background: var(--signal); color: #FFFFFF; fill: #FFFFFF; }
.item-grid__price { font-family: var(--font-mono); background: var(--cream-sink); color: var(--ink); }

/* --------------------------------------------------------------------------
   Steps: friendly teal number chips
   -------------------------------------------------------------------------- */
.step {
  background: var(--cream-card);
  border: 1px solid var(--rule);
  border-top: 0;
  border-radius: var(--radius);
  box-shadow: 0 2px 10px rgba(42,38,34,0.05);
}
.step__num {
  font-family: var(--font-display);
  font-variation-settings: "wdth" 125;
  font-style: italic;
  font-weight: 800;
  font-size: var(--text-lg);
  background: var(--signal-12);
  color: var(--signal);
  padding: var(--space-1) var(--space-3) var(--space-2);
  border-radius: 8px;
}

/* --------------------------------------------------------------------------
   Price card and booking slot
   -------------------------------------------------------------------------- */
.price-card {
  border: 1px solid var(--rule);
  border-radius: var(--radius);
  box-shadow: 0 6px 24px rgba(42,38,34,0.08);
}
.price-card__head { background: var(--dark); color: var(--signal-soft); }
.section--dark .price-card { border-color: rgba(255,255,255,0.12); }
.price-card td data { font-size: 1.6rem; color: var(--signal); }
.booking__slot {
  border: 1px solid var(--rule);
  border-top: 4px solid var(--signal);
  border-radius: var(--radius);
  background: var(--cream-card);
}

/* --------------------------------------------------------------------------
   Coverage stat panel: warm teal-slate
   -------------------------------------------------------------------------- */
.coverage-stat { border: 1px solid rgba(255,255,255,0.12); border-top: 3px solid var(--signal); background: var(--dark); }
.coverage-stat__big { color: var(--signal-soft); }

/* --------------------------------------------------------------------------
   FAQ: soft cards, teal open state
   -------------------------------------------------------------------------- */
.faq details {
  border: 1px solid var(--rule);
  border-radius: var(--radius);
  background: var(--cream-card);
  transition: border-color var(--fast) var(--ease), box-shadow var(--fast) var(--ease);
}
.faq details[open] { border-color: var(--signal); box-shadow: var(--lift-lime); }
.faq summary::marker { color: var(--signal); }

/* --------------------------------------------------------------------------
   Reviews band
   -------------------------------------------------------------------------- */
.reviews { background: var(--cream-sink); border-top: 1px solid var(--rule); border-bottom: 1px solid var(--rule); }
.reviews [data-workmon-trust]:empty {
  border: 1px solid var(--rule); border-radius: var(--radius);
  background: var(--cream-card);
}

@media (prefers-reduced-motion: reduce) {
  .btn:hover, .item-grid a:hover { transform: none; }
}

/* --------------------------------------------------------------------------
   Pricing hero: real photo with the price card layered over it
   -------------------------------------------------------------------------- */
.pricing-media {
  position: relative;
  margin: 0;
  justify-self: end;
  width: 100%;
  max-width: 560px;
  border-radius: var(--radius-lg);
  overflow: hidden;
  border: 0;
  box-shadow: 0 20px 50px rgba(34,48,58,0.28);
}
.pricing-media img {
  width: 100%;
  aspect-ratio: 3 / 4;
  object-fit: cover;
  display: block;
}
/* Scrim so the card reads cleanly over the photo */
.pricing-media::after {
  content: "";
  position: absolute; inset: 0;
  background: linear-gradient(180deg, transparent 30%, rgba(10,10,10,0.55) 100%);
  pointer-events: none;
}
.pricing-media__card {
  position: absolute;
  left: var(--space-4);
  right: var(--space-4);
  bottom: var(--space-4);
  margin: 0;
  z-index: 1;
  box-shadow: 0 10px 30px rgba(34,48,58,0.22);
  background: rgba(255,255,255,0.97);
  backdrop-filter: blur(2px);
}
@media (max-width: 900px) {
  .pricing-media { justify-self: stretch; max-width: none; box-shadow: 0 14px 36px rgba(34,48,58,0.26); }
}


/* ==========================================================================
   CLOSING CTA BAND + RICH FOOTER
   Modeled on the parent brand: full-bleed teal CTA, then a multi-column
   dark footer with a parent-attribution block on the right.
   ========================================================================== */

.closing-cta {
  background: var(--signal-soft);
  padding-block: var(--space-16);
}
.closing-cta .container {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
}
.closing-cta__live {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  background: rgba(34,48,58,0.08);
  padding: var(--space-2) var(--space-4);
  border-radius: 999px;
  margin-bottom: var(--space-6);
  font-family: var(--font-mono);
  font-size: var(--text-xs);
  color: #1A3A3A;
  white-space: nowrap;
}
.closing-cta__dot {
  width: 8px; height: 8px; border-radius: 50%;
  background: var(--dark);
  flex: 0 0 auto;
  animation: cta-dot-pulse 2s ease-in-out infinite;
}
@keyframes cta-dot-pulse {
  0%, 100% { opacity: 1; transform: scale(1); }
  50% { opacity: 0.45; transform: scale(0.82); }
}
.closing-cta .hero-live-text { transition: opacity 0.26s ease; }
.closing-cta h2 {
  color: var(--dark);
  font-size: clamp(1.75rem, 2.5vw + 0.75rem, 2.75rem);
  line-height: 1.05;
  margin: 0 0 var(--space-3);
  max-width: 18ch;
}
.closing-cta__sub {
  color: #1A3A3A;
  font-size: var(--text-lg);
  margin: 0 0 var(--space-7);
  max-width: 40ch;
}
.closing-cta .btn {
  font-size: var(--text-lg);
  padding: var(--space-4) var(--space-8);
  background: var(--dark);
  color: #FFFFFF;
}
.closing-cta .btn:hover { background: #17232B; box-shadow: 0 8px 22px rgba(34,48,58,0.28); }
.closing-cta__text {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: var(--space-2) var(--space-3);
  margin-top: var(--space-6);
  font-size: var(--text-sm);
  color: #1A3A3A;
}
.closing-cta__text .nowrap { display: inline-flex; align-items: center; gap: 6px; white-space: nowrap; }
.closing-cta__text .stars { color: var(--signal); letter-spacing: 1px; }
.closing-cta__text strong { color: var(--dark); font-weight: 600; }
.closing-cta__sep { color: rgba(34,48,58,0.4); }
.closing-cta__text a { color: var(--dark); font-weight: 500; }

/* Rich footer */
.site-footer { border-top: 0; padding-block: var(--space-16) var(--space-8); }
.site-footer::before { display: none; }
.footer-cols {
  display: grid;
  grid-template-columns: repeat(4, 1fr) 1.4fr;
  gap: var(--space-8) var(--space-6);
  padding-bottom: var(--space-12);
  border-bottom: 1px solid rgba(255,255,255,0.10);
  max-width: none;
}
.footer-col h3 {
  font-family: var(--font-mono);
  font-size: var(--text-xs);
  font-weight: 500;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--signal-soft);
  margin-bottom: var(--space-4);
}
.footer-col ul { list-style: none; padding: 0; margin: 0; max-width: none; }
.footer-col li + li { margin-top: var(--space-3); }
.footer-col a { text-decoration: none; font-size: var(--text-sm); color: #C9D2D2; }
.footer-col a:hover { color: #FFFFFF; text-decoration: underline; text-decoration-color: var(--signal); text-underline-offset: 4px; }

.footer-parent { border-left: 1px solid rgba(255,255,255,0.10); padding-left: var(--space-6); }
.footer-parent p { color: #C9D2D2; font-size: var(--text-sm); line-height: 1.6; margin-bottom: var(--space-4); max-width: 42ch; }
.footer-parent .footer-phone {
  display: flex; align-items: center; gap: var(--space-3);
  font-family: var(--font-mono); font-size: var(--text-base);
  color: #FFFFFF; margin-top: var(--space-2);
}
.footer-parent .footer-phone svg { width: 16px; height: 16px; flex: none; color: var(--signal-soft); }
.footer-parent .loadup-lockup { color: #C9D2D2; margin-top: var(--space-6); }
.footer-parent .loadup-lockup .loadup-mark { color: var(--loadup-teal); }
.footer-parent .loadup-lockup a { color: #FFFFFF; }

.footer-bottom {
  display: flex; justify-content: space-between; align-items: center;
  gap: var(--space-4); flex-wrap: wrap;
  padding-top: var(--space-6);
}
.footer-bottom small { color: var(--ash); }
.footer-bottom nav { display: flex; gap: var(--space-6); }
.footer-bottom a { text-decoration: none; font-size: var(--text-xs); color: var(--ash); }
.footer-bottom a:hover { color: #FFFFFF; }

@media (max-width: 960px) {
  .footer-cols { grid-template-columns: 1fr 1fr; }
  .footer-parent { grid-column: 1 / -1; border-left: 0; padding-left: 0; border-top: 1px solid rgba(255,255,255,0.10); padding-top: var(--space-8); }
}
@media (max-width: 560px) {
  .footer-cols { grid-template-columns: 1fr; }
}


/* ==========================================================================
   GOLOADUP-STYLE SECTIONS
   Stats bar, why-us grid, upgraded steps, reviews frame, pickup table,
   item detail cards. Warm teal-on-cream palette throughout.
   ========================================================================== */

/* --- Stats bar ------------------------------------------------------------ */
.stats-bar { background: var(--dark); padding-block: var(--space-12); }
.stats-bar__grid {
  display: grid; grid-template-columns: repeat(4, 1fr);
  gap: var(--space-6); max-width: none; text-align: center;
}
.stats-bar__num {
  font-family: var(--font-display);
  font-variation-settings: "wdth" 125;
  font-weight: 800; font-style: italic;
  font-size: clamp(2.2rem, 3vw + 1rem, 3.25rem);
  line-height: 1; color: var(--signal-soft);
  letter-spacing: -0.02em;
}
.stats-bar__label {
  font-family: var(--font-mono); font-size: var(--text-xs);
  letter-spacing: 0.08em; text-transform: uppercase;
  color: #C9D2D2; margin-top: var(--space-3);
}
.stats-bar__note {
  text-align: center; margin: var(--space-6) auto 0; max-width: none;
  font-size: var(--text-xs); color: var(--ash);
}
.stats-bar__grid > div { display: flex; flex-direction: column; align-items: center; }
@media (max-width: 720px) { .stats-bar__grid { grid-template-columns: 1fr 1fr; gap: var(--space-8); } }

/* --- Why-us 4-card grid --------------------------------------------------- */
.why { background: var(--cream-sink); border-top: 1px solid var(--rule); border-bottom: 1px solid var(--rule); }
.why-grid {
  display: grid; grid-template-columns: repeat(2, 1fr);
  gap: var(--space-4); max-width: none;
}
.why-card {
  background: var(--cream-card); border: 1px solid var(--rule);
  border-radius: var(--radius); padding: var(--space-8);
  box-shadow: 0 2px 10px rgba(42,38,34,0.05);
}
.why-card__ico {
  width: 44px; height: 44px; border-radius: 10px;
  background: var(--dark); color: var(--signal-soft);
  display: grid; place-items: center; margin-bottom: var(--space-4);
}
.why-card__ico svg { width: 22px; height: 22px; }
.why-card h3 { margin-bottom: var(--space-2); font-size: var(--text-lg); }
.why-card p { color: var(--ash); font-size: var(--text-sm); max-width: 46ch; }
@media (max-width: 720px) { .why-grid { grid-template-columns: 1fr; } }

/* --- Upgraded steps (big numbered, dark) ---------------------------------- */
.how--dark { background: var(--dark); }
.how--dark .section__label { color: #8A9298; }
.how--dark h2 { color: var(--bone); }
.steps--big { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--space-8); max-width: none; margin-top: var(--space-8); }
.steps--big .step {
  background: transparent; border: 0; border-top: 1px solid rgba(255,255,255,0.14);
  border-radius: 0; box-shadow: none; padding: var(--space-6) 0 0;
}
.steps--big .step__num {
  display: block; background: transparent; padding: 0;
  font-family: var(--font-display); font-variation-settings: "wdth" 125;
  font-style: italic; font-weight: 800;
  font-size: clamp(2.5rem, 4vw + 1rem, 3.5rem);
  color: var(--signal-soft); line-height: 1; margin-bottom: var(--space-4);
}
.steps--big .step h3 { color: var(--bone); font-size: var(--text-lg); margin-bottom: var(--space-2); }
.steps--big .step p { color: #C9D2D2; font-size: var(--text-sm); }
.step__badge {
  display: inline-block; margin-top: var(--space-4);
  font-family: var(--font-mono); font-size: var(--text-xs);
  letter-spacing: 0.06em; text-transform: uppercase;
  background: var(--signal-12); color: var(--signal-soft);
  padding: var(--space-1) var(--space-3); border-radius: 6px;
}
@media (max-width: 800px) { .steps--big { grid-template-columns: 1fr; gap: var(--space-6); } }

/* --- Reviews frame -------------------------------------------------------- */
.reviews__frame {
  display: grid; grid-template-columns: 320px 1fr;
  gap: var(--space-8); align-items: start; max-width: none;
}
.reviews__score {
  background: var(--dark); border-radius: var(--radius);
  padding: var(--space-8); text-align: center; color: var(--bone);
}
.reviews__score .worktrust-tag {
  font-family: var(--font-mono); font-size: var(--text-xs);
  letter-spacing: 0.1em; text-transform: uppercase; color: #C9D2D2;
  margin-bottom: var(--space-3);
}
.reviews__score .big {
  font-family: var(--font-display); font-variation-settings: "wdth" 125;
  font-weight: 800; font-style: italic; font-size: 4rem; line-height: 1;
  color: var(--signal-soft);
}
.reviews__score .stars { color: var(--signal-soft); font-size: var(--text-lg); margin: var(--space-3) 0; letter-spacing: 2px; }
.reviews__score .count { font-size: var(--text-sm); color: #C9D2D2; }
@media (max-width: 800px) { .reviews__frame { grid-template-columns: 1fr; } }

/* --- Pickup / service comparison table ------------------------------------ */
.svc-table-wrap { overflow-x: auto; border: 1px solid var(--rule); border-radius: var(--radius); background: var(--cream-card); }
.svc-table { width: 100%; border-collapse: collapse; font-size: var(--text-sm); min-width: 620px; }
.svc-table thead th {
  background: var(--dark); color: #C9D2D2;
  font-family: var(--font-mono); font-size: var(--text-xs);
  letter-spacing: 0.06em; text-transform: uppercase;
  text-align: left; padding: var(--space-4) var(--space-5); border: 0;
}
.svc-table tbody td { padding: var(--space-4) var(--space-5); border-bottom: 1px solid var(--rule); vertical-align: middle; }
.svc-table tbody tr:last-child td { border-bottom: 0; }
.svc-table .svc-name { font-weight: 500; color: var(--ink); }
.svc-table .svc-price { font-family: var(--font-mono); color: var(--signal); white-space: nowrap; }
.svc-badge {
  display: inline-block; font-family: var(--font-mono);
  font-size: var(--text-xs); letter-spacing: 0.04em; text-transform: uppercase;
  background: var(--signal-12); color: var(--signal);
  padding: 3px 9px; border-radius: 6px; white-space: nowrap;
}
.svc-badge--muted { background: var(--cream-sink); color: var(--ash); }

/* --- Item detail cards (replaces bare grid where used) -------------------- */
.item-cards { display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--space-4); max-width: none; }
.item-card {
  display: flex; flex-direction: column;
  background: var(--cream-card); border: 1px solid var(--rule);
  border-radius: var(--radius); overflow: hidden;
  box-shadow: 0 2px 10px rgba(42,38,34,0.05);
  transition: transform var(--fast) var(--ease), box-shadow var(--fast) var(--ease);
}
.item-card:hover { transform: translateY(-4px); box-shadow: var(--lift-lime); }
.item-card__top {
  background: linear-gradient(160deg, var(--signal-12), var(--cream-sink));
  padding: var(--space-8) var(--space-6); display: grid; place-items: center;
  position: relative; min-height: 130px;
}
.item-card__top svg { width: 76px; height: 76px; fill: currentColor; }
.item-card__badge {
  position: absolute; top: var(--space-3); right: var(--space-3);
  font-family: var(--font-mono); font-size: var(--text-xs);
  letter-spacing: 0.04em; text-transform: uppercase;
  background: var(--signal); color: #FFFFFF; padding: 3px 9px; border-radius: 6px;
}
.item-card__body { padding: var(--space-5); display: flex; flex-direction: column; flex: 1; }
.item-card__body h3 { font-size: var(--text-lg); margin-bottom: var(--space-2); }
.item-card__body p { color: var(--ash); font-size: var(--text-sm); margin-bottom: var(--space-4); }
.item-card__foot { margin-top: auto; }
.item-card__price { font-family: var(--font-mono); font-size: var(--text-sm); color: var(--ash); margin-bottom: var(--space-3); }
.item-card__price data { font-size: var(--text-xl); color: var(--signal); }
.item-card .btn { display: block; text-align: center; width: 100%; background: var(--dark); color: #FFFFFF; }
.item-card .btn:hover { background: #17232B; }
@media (max-width: 1000px) { .item-cards { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) {
  .item-cards { grid-template-columns: repeat(2, 1fr); gap: var(--space-3); }
  .item-card__top { min-height: 76px; padding: var(--space-4) var(--space-3); }
  .item-card__top svg { width: 44px; height: 44px; }
  .item-card__badge { top: var(--space-2); right: var(--space-2); font-size: 10px; padding: 2px 6px; }
  .item-card__body { padding: var(--space-3); align-items: center; text-align: center; }
  .item-card__body h3 { font-size: var(--text-base); margin-bottom: var(--space-1); text-align: center; }
  .item-card__body p { display: none; }
  .item-card__price { margin-bottom: var(--space-2); }
  .item-card__price data { font-size: var(--text-lg); }
  .item-card__foot { width: 100%; }
}

/* Launcher-era additions */
button.btn { font-family: inherit; }
.booking__slot {
  min-height: 0;
  display: flex; flex-direction: column; align-items: flex-start;
  place-items: initial;
  background: linear-gradient(160deg, var(--signal-12), #FFFFFF 60%);
  text-align: left; gap: 0;
}
.booking__slot-eyebrow {
  font-family: var(--font-mono); font-size: var(--text-xs);
  letter-spacing: 0.1em; text-transform: uppercase;
  color: var(--signal); margin-bottom: var(--space-3);
}
.booking__slot-headline {
  font-family: var(--font-display); font-weight: 700;
  font-size: var(--text-2xl); line-height: 1.1;
  color: var(--ink); margin-bottom: var(--space-5); max-width: 20ch;
}
.booking__slot-list {
  list-style: none; padding: 0; margin: 0 0 var(--space-8);
  display: flex; flex-direction: column; gap: var(--space-3);
}
.booking__slot-list li {
  position: relative; padding-left: var(--space-6);
  font-size: var(--text-base); color: var(--ink);
}
.booking__slot-list li::before {
  content: ""; position: absolute; left: 0; top: 0.55em;
  width: 10px; height: 6px; border-left: 2px solid var(--signal);
  border-bottom: 2px solid var(--signal); transform: rotate(-45deg);
}
.booking__slot-list li strong { font-family: var(--font-mono); color: var(--signal); font-weight: 500; }
.booking__slot .btn { align-self: stretch; text-align: center; }
.booking__slot-note { margin-top: var(--space-4); font-family: var(--font-mono); font-size: var(--text-sm); color: var(--ash); letter-spacing: 0.04em; text-align: center; align-self: center; }
.reviews__more p { margin-bottom: var(--space-4); color: var(--ash); }

/* Fuller item-card icon tiles */
.item-card__top {
  min-height: 150px;
  background: linear-gradient(160deg, var(--signal-12), var(--cream-sink));
}
.item-card__top::after {
  content: ""; position: absolute; inset: 0;
  background: radial-gradient(circle at 50% 45%, rgba(23,181,174,0.10), transparent 62%);
  pointer-events: none;
}
.item-card__top svg {
  width: 76px; height: 76px; stroke: none;
  position: relative; z-index: 1;
  filter: drop-shadow(0 3px 6px rgba(23,181,174,0.22));
}
.item-card__top svg .ic-a { fill: var(--signal); }
.item-card__top svg .ic-b { fill: var(--dark); }
.item-card__top svg .ic-c { fill: var(--bone); }
.item-card:hover .item-card__top svg { transform: translateY(-2px); transition: transform var(--fast) var(--ease); }

/* Title breathing room below the icon tile */
.item-card__body { padding-top: var(--space-6); padding-left: var(--space-6); padding-right: var(--space-6); padding-bottom: var(--space-6); }
.item-card__body h3 { margin-top: 0; }

/* --------------------------------------------------------------------------
   Section background rhythm (scroll cadence)
   dark -> bone -> sink -> dark -> bone -> sink -> dark
   Every seam is an intentional step; adjacent light sections never repeat.
   -------------------------------------------------------------------------- */
.booking  { background: var(--bone); border-bottom: 1px solid var(--rule); }
.items    { background: var(--cream-sink); border-top: 0; border-bottom: 0; }
.why      { background: var(--bone); border-top: 1px solid var(--rule); border-bottom: 0; }
.how--dark, .how.section--dark { background: var(--dark); }
.coverage.section--dark { background: var(--dark); border-top: 1px solid rgba(255,255,255,0.08); }
.reviews  { background: var(--cream-sink); border-top: 0; border-bottom: 0; }
.faq      { background: var(--bone); border-top: 1px solid var(--rule); }
.closing-cta { border-top: 0; }


/* --------------------------------------------------------------------------
   Price numerals in the display face (matches the stats-bar style)
   Applies to item cards, the pricing service table, and any price <data>.
   The "from" prefix keeps its small mono label; only the number changes.
   -------------------------------------------------------------------------- */
.item-card__price data,
.item-grid__price data,
.svc-table .svc-price data,
.hero__answer data,
.price-card td data {
  font-family: var(--font-display);
  font-variation-settings: "wdth" 125;
  font-weight: 800; font-style: italic;
  letter-spacing: -0.02em;
  line-height: 1;
}
/* Bold prices in the booking checklist ($90 / $20) match too */
.booking__slot-list li strong {
  font-family: var(--font-display);
  font-variation-settings: "wdth" 125;
  font-weight: 800; font-style: italic;
  font-size: 1.15em; letter-spacing: -0.02em;
  color: var(--signal);
}

/* --------------------------------------------------------------------------
   State + core page hero with photo (two-column above the fold)
   -------------------------------------------------------------------------- */
.state-hero__grid {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.85fr);
  gap: var(--space-12);
  align-items: start;
}
.state-hero__copy { min-width: 0; }
.state-hero__copy .hero__answer { max-width: 42ch; }
.state-hero__copy .breadcrumb { margin-bottom: var(--space-4); }
.state-hero__copy h1 { margin-bottom: var(--space-5); }
.state-hero__copy .hero__cta-row { margin-top: var(--space-8) !important; }
.state-hero__grid .hero__media {
  justify-self: end; width: 100%; max-width: 460px;
}
.state-hero__grid .hero__media img {
  border-radius: 10px; width: 100%;
  aspect-ratio: 3 / 4; object-fit: cover; display: block;
}
@media (max-width: 900px) {
  .state-hero__grid { grid-template-columns: 1fr; gap: var(--space-8); }
  .state-hero__grid .hero__media { justify-self: stretch; max-width: none; order: -1; }
  .state-hero__grid .hero__media img { aspect-ratio: 16 / 10; }
}

/* --------------------------------------------------------------------------
   Homepage marketplace redesign (Aug 2026). New classes only, nothing shared
   above was changed, so item, state, and core pages are unaffected.
   -------------------------------------------------------------------------- */

/* Hero: asymmetric grid, media column carries the pickup ticket */
.mhero { overflow: hidden; }
.mhero__grid { align-items: center; }
.mhero__media { position: relative; }
.mhero__media img { border-radius: var(--radius-lg); transform: rotate(1.2deg); }

.ticket {
  position: absolute;
  left: -2.25rem;
  bottom: 2rem;
  width: min(15.5rem, 78%);
  background: var(--bone);
  color: var(--ink);
  border-radius: var(--radius);
  padding: var(--space-4);
  box-shadow: 0 14px 34px rgba(14,20,23,0.35);
  transform: rotate(-2deg);
  border-top: 4px solid var(--signal);
}
.ticket__tag {
  font-family: var(--font-mono);
  font-size: 0.6875rem;
  letter-spacing: 0.09em;
  text-transform: uppercase;
  color: var(--signal);
  margin-bottom: var(--space-2);
}
.ticket__item { font-family: var(--font-display); font-weight: 700; font-size: var(--text-lg); line-height: 1.15; }
.ticket__meta {
  display: flex; justify-content: space-between; align-items: baseline;
  margin-top: var(--space-2); font-size: var(--text-sm); color: var(--ash);
}
.ticket__meta .mono { font-family: var(--font-mono); font-weight: 600; font-size: var(--text-base); color: var(--ink); }
.ticket__foot { margin-top: var(--space-3); padding-top: var(--space-3); border-top: 1px dashed var(--rule); font-size: var(--text-xs); color: var(--ash); }

.mhero__chips { display: flex; flex-wrap: wrap; gap: var(--space-2); list-style: none; padding: 0; margin: var(--space-6) 0 0; }
.mhero__chips a {
  display: inline-flex; align-items: baseline; gap: 0.5ch;
  padding: 0.45rem 0.85rem;
  border: 1px solid rgba(251,247,240,0.28);
  border-radius: 999px;
  color: var(--bone);
  text-decoration: none;
  font-size: var(--text-sm);
  transition: border-color var(--fast) var(--ease), background var(--fast) var(--ease);
}
.mhero__chips a:hover { border-color: var(--signal-soft); background: rgba(79,211,207,0.10); }
.mhero__chips .mono { font-family: var(--font-mono); font-size: var(--text-xs); color: var(--signal-soft); }
.mhero__chips-more { border-style: dashed; }

@media (max-width: 900px) {
  .ticket { left: var(--space-4); bottom: var(--space-4); }
  .mhero__media img { transform: none; }
}

/* Network activity band with CSS-only ticker */
.netband { background: var(--dark); border-top: 1px solid rgba(251,247,240,0.08); padding-block: var(--space-6); }
.netband__inner { max-width: var(--container); margin-inline: auto; padding-inline: var(--space-6); }
.netband__stat { color: var(--bone); font-size: var(--text-sm); margin-bottom: var(--space-3); }
.netband__stat .mono { font-family: var(--font-mono); color: var(--signal-soft); font-size: var(--text-base); }
.netband__dot { display: inline-block; width: 4px; height: 4px; border-radius: 50%; background: var(--ash); margin-inline: var(--space-2); vertical-align: middle; }
.netband__note { color: #8A9298; font-size: var(--text-xs); margin-top: var(--space-3); }

.feed { overflow: hidden; position: relative; mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent); -webkit-mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent); }
.feed__track { display: inline-flex; gap: var(--space-8); white-space: nowrap; animation: feed-scroll 48s linear infinite; will-change: transform; }
.feed__track span { color: #C9CDD0; font-size: var(--text-sm); }
.feed__track b { font-family: var(--font-mono); font-weight: 600; color: var(--signal-soft); }
@keyframes feed-scroll { to { transform: translateX(-50%); } }
@media (prefers-reduced-motion: reduce) {
  .feed__track { animation: none; flex-wrap: wrap; white-space: normal; }
}

/* Popular markets */
.markets__head { display: flex; justify-content: space-between; align-items: end; gap: var(--space-8); margin-bottom: var(--space-8); }
.markets__head .btn { flex-shrink: 0; }
.markets__chips { display: flex; flex-wrap: wrap; gap: var(--space-2); list-style: none; padding: 0; margin: 0; }
.markets__chips a {
  display: inline-block;
  padding: 0.55rem 1rem;
  background: var(--cream-card);
  border: 1px solid var(--rule);
  border-radius: 999px;
  color: var(--ink);
  text-decoration: none;
  font-size: var(--text-sm);
  font-weight: 500;
  transition: border-color var(--fast) var(--ease), box-shadow var(--fast) var(--ease);
}
.markets__chips a:hover { border-color: var(--signal); box-shadow: var(--lift-ink); }
@media (max-width: 720px) { .markets__head { flex-direction: column; align-items: flex-start; } }

/* Promise: editorial split replacing the 4-card why grid */
.promise__grid { display: grid; grid-template-columns: 46% 1fr; gap: var(--space-12); align-items: center; }
.promise__media img { border-radius: var(--radius-lg); width: 100%; height: auto; }
.promise__media figcaption { font-family: var(--font-mono); font-size: var(--text-xs); color: var(--ash); margin-top: var(--space-2); }
.promise__list { margin: var(--space-8) 0; display: grid; gap: var(--space-6); }
.promise__list dt { font-weight: 600; font-size: var(--text-base); }
.promise__list dt::before { content: ""; display: inline-block; width: 0.55rem; height: 0.55rem; background: var(--signal); border-radius: 2px; margin-right: var(--space-3); transform: rotate(45deg); }
.promise__list dd { margin: var(--space-1) 0 0 1.35rem; color: var(--ash); font-size: var(--text-sm); max-width: 52ch; }
@media (max-width: 900px) { .promise__grid { grid-template-columns: 1fr; gap: var(--space-8); } }

/* Reviews as dated, city-tagged cards */
.reviews__head { display: flex; justify-content: space-between; align-items: end; gap: var(--space-8); margin-bottom: var(--space-8); }
.reviews__score-inline { font-size: var(--text-sm); color: var(--ash); max-width: 24rem; text-align: right; }
.reviews__score-inline .mono { font-family: var(--font-mono); color: var(--ink); font-size: var(--text-lg); }
.review-cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--space-6); list-style: none; padding: 0; margin: 0; }
.review-card {
  background: var(--cream-card);
  border: 1px solid var(--rule);
  border-radius: var(--radius);
  padding: var(--space-6);
  display: flex; flex-direction: column; gap: var(--space-3);
}
.review-card__stars { color: var(--signal); letter-spacing: 0.15em; font-size: var(--text-sm); }
.review-card blockquote { margin: 0; font-size: var(--text-base); line-height: 1.55; flex-grow: 1; }
.review-card__meta { display: flex; justify-content: space-between; align-items: baseline; font-size: var(--text-sm); color: var(--ash); border-top: 1px solid var(--rule); padding-top: var(--space-3); }
.review-card__meta .mono { font-family: var(--font-mono); font-size: var(--text-xs); }
.reviews__foot { display: flex; align-items: center; gap: var(--space-6); margin-top: var(--space-8); font-size: var(--text-sm); color: var(--ash); }
@media (max-width: 900px) {
  .review-cards { grid-template-columns: 1fr; }
  .reviews__head { flex-direction: column; align-items: flex-start; }
  .reviews__score-inline { text-align: left; }
}

/* Item page redesign (Aug 2026): single review card variant */
.review-cards--single { grid-template-columns: minmax(0, 44rem); }

/* --------------------------------------------------------------------------
   White-top flip (Aug 2026): heroes and header go light, the booking
   section carries the dark teal-slate instead.
   -------------------------------------------------------------------------- */

/* Light heroes: text colors resolve to ink on the white ground */
.hero .eyebrow, .page-hero .eyebrow, .item-hero .eyebrow { color: var(--signal); }
.page-hero .breadcrumb, .page-hero .breadcrumb a,
.item-hero .breadcrumb, .item-hero .breadcrumb a { color: var(--ash); }
.item-hero .hero__answer, .page-hero .hero__answer { color: var(--ink); }

/* Homepage hero chips on white */
.mhero__chips a {
  border-color: var(--rule);
  color: var(--ink);
  background: var(--cream-card);
}
.mhero__chips a:hover { border-color: var(--signal); background: var(--signal-12); }
.mhero__chips .mono { color: var(--signal); }

/* Pickup ticket needs an edge on the light hero */
.ticket { border: 1px solid var(--rule); box-shadow: 0 14px 34px rgba(14,20,23,0.18); }

/* Booking section carries the dark slate */
.booking.section--dark h2 { color: #FFFFFF; }
.booking.section--dark .section__lead { color: #C9CDD0; }
.booking.section--dark .section__label { color: var(--signal-soft); }
.booking.section--dark .booking__slot { border-color: rgba(255,255,255,0.14); border-top-color: var(--signal); }

/* --------------------------------------------------------------------------
   Booking conversion block (Aug 2026): two columns on the dark slate.
   Left sells, right is the booking console that will hold the Workmon embed.
   -------------------------------------------------------------------------- */
.bookx__grid {
  display: grid;
  grid-template-columns: 1fr minmax(20rem, 26rem);
  gap: var(--space-12);
  align-items: center;
}
.bookx .section__label { color: var(--signal-soft); justify-content: flex-start; text-align: left; margin-left: 0; }
.bookx h2 { color: #FFFFFF; max-width: 20ch; margin-left: 0; text-align: left; }
.bookx__lead { color: #C9CDD0; font-size: var(--text-lg); line-height: 1.55; max-width: 52ch; margin-top: var(--space-4); }
.bookx__list { list-style: none; padding: 0; margin: var(--space-8) 0 0; display: grid; gap: var(--space-3); }
.bookx__list li { color: #E7EAEB; font-size: var(--text-base); padding-left: 1.6rem; position: relative; }
.bookx__list li::before {
  content: ""; position: absolute; left: 0; top: 0.42em;
  width: 0.6rem; height: 0.6rem; border-radius: 2px;
  background: var(--signal); transform: rotate(45deg);
}
.bookx__list data { color: var(--signal-soft); font-family: var(--font-mono); }
.bookx__trust { margin-top: var(--space-8); color: #8A9298; font-size: var(--text-sm); }
.bookx__trust .mono { font-family: var(--font-mono); color: var(--signal-soft); font-size: var(--text-base); }

.bookx__panel {
  background: #FFFFFF;
  border-radius: var(--radius-lg);
  border-top: 4px solid var(--signal);
  padding: var(--space-8);
  box-shadow: 0 24px 60px rgba(0,0,0,0.35);
}
.bookx__panel-tag {
  font-family: var(--font-mono); font-size: var(--text-xs);
  letter-spacing: 0.1em; text-transform: uppercase;
  color: var(--signal); margin-bottom: var(--space-6);
}
.bookx__steps { list-style: none; padding: 0; margin: 0 0 var(--space-6); display: grid; gap: var(--space-4); }
.bookx__steps li { display: flex; align-items: center; gap: var(--space-4); color: var(--ink); font-weight: 500; }
.bookx__steps .mono {
  font-family: var(--font-mono); font-size: var(--text-sm);
  width: 1.8rem; height: 1.8rem; flex-shrink: 0;
  display: inline-flex; align-items: center; justify-content: center;
  border: 1.5px solid var(--signal); border-radius: 50%; color: var(--signal);
}
.bookx__price {
  font-family: var(--font-mono); font-size: var(--text-xs); letter-spacing: 0.04em;
  color: var(--ash); border-top: 1px dashed var(--rule);
  padding-top: var(--space-4); margin-bottom: var(--space-4);
}
.bookx__btn { width: 100%; text-align: center; }
.bookx__panel-note { margin-top: var(--space-3); font-size: var(--text-sm); color: var(--ash); text-align: center; }
.bookx__panel-alt { margin-top: var(--space-2); font-size: var(--text-sm); color: var(--ash); text-align: center; }
.bookx__panel-alt a { color: var(--ink); font-weight: 500; }

@media (max-width: 900px) {
  .bookx__grid { grid-template-columns: 1fr; gap: var(--space-8); }
}

/* Coverage section on white (Aug 2026): light variant, dark ticker divider softened */
.coverage:not(.section--dark) { background: #FFFFFF; border-top: 1px solid var(--rule); }
.coverage:not(.section--dark) .state-ticker { border-top-color: var(--rule); color: var(--ash); }
.coverage:not(.section--dark) .state-ticker a { color: var(--ash); }
.coverage:not(.section--dark) .state-ticker a:hover { color: var(--signal); }

/* Floating WorkTrust badge (Aug 2026): fixed to the viewport, stays on scroll */
.worktrust-float {
  position: fixed;
  left: 1.25rem;
  bottom: 1.25rem;
  z-index: 60;
}
@media (max-width: 620px) {
  .worktrust-float { left: 0.75rem; bottom: 0.75rem; transform: scale(0.9); transform-origin: bottom left; }
}
/* Make the floating badge link to the reviews page (Sep 2026) */
a.worktrust-float-link {
  position: fixed;
  left: 1.25rem;
  bottom: 1.25rem;
  z-index: 60;
  display: inline-block;
  text-decoration: none;
  border-radius: 999px;
  transition: transform .16s ease, filter .16s ease;
}
a.worktrust-float-link:hover { transform: translateY(-2px); filter: drop-shadow(0 6px 14px rgba(34,48,58,0.22)); }
a.worktrust-float-link:focus-visible { outline: 3px solid var(--signal); outline-offset: 3px; }
a.worktrust-float-link .worktrust-float { position: static; left: auto; bottom: auto; z-index: auto; }
@media (max-width: 620px) {
  a.worktrust-float-link { left: 0.75rem; bottom: 0.75rem; }
}

/* --------------------------------------------------------------------------
   How-it-works hero: on-load reveal + micro-interactions. Scoped to .hero--anim
   so other pages are untouched. Reduced-motion disables everything.
   -------------------------------------------------------------------------- */
.hero--anim .reveal {
  opacity: 0;
  transform: translateY(14px);
  animation: hero-rise 0.62s var(--ease) forwards;
  animation-delay: calc(var(--i, 0) * 110ms + 80ms);
}
.hero--anim .reveal--media {
  transform: translateY(18px) scale(0.985);
}
@keyframes hero-rise {
  to { opacity: 1; transform: translateY(0) scale(1); }
}

/* Photo card: soft hover lift and the pickup badge easing in after load */
.hero--anim .hero__media {
  transition: transform 0.5s var(--ease), box-shadow 0.5s var(--ease);
}
.hero--anim .hero__media:hover {
  transform: translateY(-6px);
}
.hero--anim .hero__media img {
  transition: box-shadow 0.5s var(--ease);
}
.hero--anim .hero__media:hover img {
  box-shadow: 0 28px 64px rgba(34,48,58,0.34);
}
.hero--anim .hero__media::after {
  opacity: 0;
  transform: translateY(-6px);
  animation: badge-in 0.5s var(--ease) forwards;
  animation-delay: 620ms;
}
@keyframes badge-in {
  to { opacity: 1; transform: translateY(0); }
}

/* Get Price button in this hero gets a gentle attention pulse once, after reveal */
.hero__cta-row .btn {
  animation: cta-pulse 2.6s var(--ease) 1.3s infinite;
}
@keyframes cta-pulse {
  0%, 100% { box-shadow: 0 0 0 0 rgba(23,181,174,0); }
  50% { box-shadow: 0 0 0 8px rgba(23,181,174,0.14); }
}

@media (prefers-reduced-motion: reduce) {
  .hero--anim .reveal { opacity: 1; transform: none; animation: none; }
  .hero--anim .hero__media::after { opacity: 1; transform: none; animation: none; }
  .hero--anim .hero__media:hover { transform: none; }
  .hero__cta-row .btn { animation: none; }
}

/* How-it-works hero: live pickup line with pulsing dot (Aug 2026) */
.hero__live {
  display: inline-flex; align-items: center; gap: var(--space-3);
  margin-top: var(--space-6);
  font-family: var(--font-mono); font-size: var(--text-xs);
  letter-spacing: 0.04em; color: var(--ash);
}
.hero__live-dot {
  width: 8px; height: 8px; border-radius: 50%;
  background: var(--signal); flex-shrink: 0;
  box-shadow: 0 0 0 0 rgba(23,181,174,0.5);
  animation: live-pulse 2s var(--ease) infinite;
}
.hero__live-text { transition: opacity 0.26s var(--ease); }
@keyframes live-pulse {
  0% { box-shadow: 0 0 0 0 rgba(23,181,174,0.5); }
  70% { box-shadow: 0 0 0 9px rgba(23,181,174,0); }
  100% { box-shadow: 0 0 0 0 rgba(23,181,174,0); }
}
@media (prefers-reduced-motion: reduce) {
  .hero__live-dot { animation: none; }
}

/* Doorway card (item hero) gets the same hover lift as photo heroes */
.hero--anim .doorway-card { transition: transform 0.5s var(--ease); }
.hero--anim .doorway-card:hover { transform: translateY(-6px); }
@media (prefers-reduced-motion: reduce) {
  .hero--anim .doorway-card:hover { transform: none; }
}


/* Statewide coverage callout (city -> state uplink), interactive card */
.statewide{
  display:flex; align-items:center; gap:16px;
  background:var(--cream-card);
  border:1px solid var(--rule);
  border-left:4px solid var(--signal);
  border-radius:var(--radius);
  padding:18px 20px;
  text-decoration:none; cursor:pointer;
  transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease, background .18s ease;
}
.statewide:hover{
  transform:translateY(-2px);
  background:#FDFCFA;
  border-left-color:var(--signal-soft);
  box-shadow:0 8px 22px rgba(34,48,58,.13);
}
.statewide__pin{
  flex:0 0 auto; width:46px; height:46px; border-radius:50%;
  background:var(--dark); color:var(--signal-soft);
  display:grid; place-items:center;
  animation:statewide-pulse 2.6s ease-out infinite;
}
.statewide__pin svg{ width:24px; height:24px; }
@keyframes statewide-pulse{
  0%{ box-shadow:0 0 0 0 rgba(23,181,174,.5); }
  70%{ box-shadow:0 0 0 12px rgba(23,181,174,0); }
  100%{ box-shadow:0 0 0 0 rgba(23,181,174,0); }
}
.statewide__body{ flex:1 1 auto; min-width:0; }
.statewide__title{ display:block; font-weight:700; font-size:1.05rem; line-height:1.3; color:var(--dark); margin:0 0 4px; }
.statewide__text{ display:block; font-size:.92rem; line-height:1.55; color:var(--ash); margin:0; }
.statewide__arrow{ flex:0 0 auto; margin-left:auto; color:var(--signal); display:grid; place-items:center; transition:transform .18s ease; }
.statewide__arrow svg{ width:22px; height:22px; }
.statewide:hover .statewide__arrow{ transform:translateX(4px); }
@media (max-width:520px){
  .statewide{ gap:12px; padding:16px; }
  .statewide__pin{ width:40px; height:40px; }
  .statewide__pin svg{ width:20px; height:20px; }
  .statewide__title{ font-size:.95rem; }
  .statewide__text{ font-size:.9rem; }
}
@media (prefers-reduced-motion:reduce){
  .statewide__pin{ animation:none; }
  .statewide, .statewide__arrow{ transition:none; }
}

/* Click-to-call nav button: mobile menu only */
.site-nav .nav-call { display: none; }
.site-nav .btn--call {
  background: var(--signal);
  color: #FFFFFF;
  border: 0;
  white-space: nowrap;
}
.site-nav .btn--call svg { width: 15px; height: 15px; }
@media (max-width: 1080px) {
  .site-nav .nav-call { display: block; width: 100%; }
  .site-nav .btn--call {
    display: flex !important;
    align-items: center;
    justify-content: center;
    gap: 8px;
    width: 100%;
  }
  .site-nav ul > li:last-child { width: 100%; }
  .site-nav ul > li:last-child .btn { display: block; width: 100%; text-align: center; }
}
