/* SpinLaundry light + motion layer
   Shared by the homepage, service pages and franchise page. */

:root {
  --spin-aqua: #08b8d2;
  --deep-aqua: #147f91;
  --ocean-ink: #173d47;
  --aqua-mist: #eefafb;
  --cloud-white: #ffffff;
  --waterline: #d8e9eb;
  --muted: #4f6971;
  --page: #fbfefe;
  --panel-teal: #215b66;
  --panel-teal-bright: #237584;
  --panel-teal-hover: #236570;
  --soft-aqua: #dff7f8;
  --motion-ease: cubic-bezier(.16, 1, .3, 1);
}

html {
  scroll-behavior: smooth;
  background: var(--page);
}

body {
  background:
    radial-gradient(circle at 12% 15%, rgba(8, 184, 210, .055), transparent 22rem),
    linear-gradient(180deg, #ffffff 0%, var(--page) 100%);
  font-weight: 490;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

p { letter-spacing: -.008em; }

.hero h1,
.service-hero h1,
.franchise-hero h1 {
  font-weight: 770;
  letter-spacing: -.064em;
  line-height: .92;
  font-variation-settings: "wght" 770, "wdth" 111, "opsz" 72;
}

.section-heading-row h2,
.story-copy h2,
.process h2,
.pickup-content h2,
.service-intro h2,
.process-heading h2,
.standard-lead h2,
.network-copy h2,
.related-heading h2,
.franchise-model h2,
.franchise-image-story h2,
.franchise-form-section h2,
.home-value h2,
.care-standards h2 {
  font-weight: 740;
  letter-spacing: -.058em;
  line-height: .95;
  font-variation-settings: "wght" 740, "wdth" 108, "opsz" 56;
}

.service-card h3,
.process-step h3,
.related-card h3,
.franchise-model-cards h3 { font-weight: 720; }

.hero-copy,
.service-hero-copy > p:not(.eyebrow),
.franchise-hero-copy > p:not(.eyebrow),
.section-heading-row > p,
.story-copy p,
.process-heading > p,
.service-intro-copy > p,
.standard-detail p,
.network-copy > p:not(.eyebrow),
.franchise-model-copy > p:not(.eyebrow),
.franchise-image-story p:not(.eyebrow),
.form-intro > p:not(.eyebrow) { font-weight: 500; }

body::before {
  position: fixed;
  z-index: 250;
  top: 0;
  right: 0;
  left: 0;
  height: 2px;
  background: linear-gradient(90deg, #6fe6eb, var(--spin-aqua));
  content: "";
  pointer-events: none;
  transform: scaleX(var(--scroll-progress, 0));
  transform-origin: left center;
}

/* Calm, translucent navigation that remains available while the story moves. */
.site-header {
  position: sticky;
  z-index: 100;
  top: 0;
  border-bottom-color: rgba(188, 216, 220, .72);
  background: rgba(251, 254, 254, .82);
  box-shadow: 0 0 0 rgba(23, 61, 71, 0);
  -webkit-backdrop-filter: saturate(145%) blur(18px);
  backdrop-filter: saturate(145%) blur(18px);
  transition: background .35s ease, box-shadow .35s ease, border-color .35s ease;
}

.site-header.is-scrolled {
  border-bottom-color: rgba(167, 205, 210, .84);
  background: rgba(251, 254, 254, .94);
  box-shadow: 0 10px 34px rgba(23, 61, 71, .08);
}

.wordmark { color: var(--spin-aqua); }
.header-cta { border-color: #228a9a; background: #278c9d; }
.header-cta:hover { background: #19798b; }

/* Lighter hero and statement surfaces. */
.hero,
.service-hero,
.franchise-hero {
  border-color: #39737d;
  background: var(--panel-teal);
  box-shadow: 0 20px 56px rgba(33, 91, 102, .13), 0 3px 10px rgba(33, 91, 102, .08);
}

.hero::before {
  background:
    linear-gradient(90deg, rgba(31, 83, 94, .99) 0%, rgba(31, 83, 94, .95) 39%, rgba(31, 83, 94, .64) 58%, rgba(31, 83, 94, .10) 100%),
    linear-gradient(180deg, rgba(81, 226, 234, .14), transparent 40%);
}

.service-hero::before {
  background: linear-gradient(105deg, rgba(31, 83, 94, 1) 0%, rgba(31, 83, 94, .97) 48%, rgba(31, 83, 94, .18) 74%);
}

.hero-photo-wrap::before {
  background: linear-gradient(90deg, #215b66 0%, rgba(33, 91, 102, .54) 22%, transparent 58%);
}

.franchise-hero::before {
  background:
    radial-gradient(circle at 62% 25%, rgba(104, 232, 237, .22), transparent 27%),
    linear-gradient(120deg, #215b66 0%, #215b66 49%, #2a8292 100%);
}

.franchise-hero-visual::before {
  background: linear-gradient(90deg, #215b66 0%, transparent 35%), linear-gradient(180deg, transparent, rgba(28, 79, 89, .34));
}

.pickup-card,
.visual-status {
  border-color: rgba(211, 249, 250, .34);
  background: rgba(28, 82, 92, .72);
  box-shadow: 0 15px 42px rgba(14, 57, 66, .19);
}

.hero-copy,
.service-hero-copy > p:not(.eyebrow),
.franchise-hero-copy > p:not(.eyebrow),
.pickup-card p,
.visual-status small { color: #d2e9eb; }

.hero-footer,
.franchise-hero-foot { color: #c1dbde; }

/* Rich image cards, without the near-black weight. */
.service-card,
.service-card:nth-child(n) { background: #255f69; }
.service-card:nth-child(2) { background: var(--panel-teal-bright); }
.service-card:nth-child(5) { color: #173d47; background: #eaf9fa; }
.service-card::after { background: linear-gradient(180deg, rgba(26, 76, 86, .08), rgba(24, 73, 82, .88) 82%); }
.service-card:nth-child(2)::after { background: linear-gradient(180deg, rgba(34, 122, 138, .10), rgba(28, 105, 120, .86) 84%); }
.service-card:nth-child(5)::after { background: linear-gradient(180deg, rgba(234, 249, 250, .20), rgba(234, 249, 250, .94) 84%); }
.service-card p { color: #dbedef; }
.service-card:nth-child(5) p { color: #4f7077; }

.story-visual,
.service-gallery figure,
.franchise-image-story figure { background: #286571; }

.story-visual::before,
.service-gallery figure::after,
.franchise-image-story figure::after { background: linear-gradient(180deg, transparent 24%, rgba(29, 81, 91, .84)); }

.standard-lead,
.pricing-section,
.pickup-section,
.franchise-form-section {
  border-color: #3a737d;
  background: var(--panel-teal);
}

.network-section { background: var(--panel-teal-bright); }
.related-card { background: #27636e; }
.related-card::after { background: linear-gradient(180deg, rgba(36, 101, 113, .08), rgba(27, 79, 89, .90) 86%); }

.process-step:hover,
.franchise-model-cards article:hover {
  background: var(--panel-teal-hover);
}

.process-step:hover p,
.franchise-model-cards article:hover p { color: #d1e6e8; }

.franchise-form {
  border-color: rgba(217, 247, 248, .30);
  background: rgba(255, 255, 255, .09);
}

.franchise-form input,
.franchise-form select,
.franchise-form textarea {
  border-color: rgba(217, 247, 248, .34);
  background: rgba(27, 75, 84, .62);
}

/* Small visual signals make dense boxes easier to scan. */
.trust-item > span,
.franchise-proof article > span,
.network-note > span {
  width: 35px;
  height: 35px;
  flex: 0 0 35px;
  display: inline-grid;
  place-items: center;
  border: 1px solid #c9e9eb;
  border-radius: 10px;
  color: #157f91;
  background: #effbfc;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .85);
}

.network-note > span {
  border-color: rgba(223, 249, 250, .42);
  color: #e8feff;
  background: rgba(255, 255, 255, .11);
}

.care-point {
  position: relative;
  padding-left: 64px;
  background: linear-gradient(145deg, #fff, #f7fcfc);
  transition: transform .35s var(--motion-ease), border-color .35s ease, box-shadow .35s ease;
}

.care-point::before {
  position: absolute;
  top: 17px;
  left: 17px;
  width: 32px;
  height: 32px;
  display: grid;
  place-items: center;
  border: 1px solid #c7e8ea;
  border-radius: 9px;
  color: var(--deep-aqua);
  background: var(--aqua-mist);
  content: "\2713";
  font-size: 14px;
  font-weight: 750;
}

.care-point:nth-child(2)::before { content: "\2197"; }
.care-point:hover { border-color: #9dd8dc; box-shadow: 0 15px 32px rgba(30, 104, 115, .09); transform: translateY(-3px); }

.process-step { position: relative; }
.process-step::before {
  position: absolute;
  top: 21px;
  right: 21px;
  width: 34px;
  height: 34px;
  display: grid;
  place-items: center;
  border: 1px solid #c7e8ea;
  border-radius: 10px;
  color: #178397;
  background: #effbfc;
  content: "\2197";
  font-size: 14px;
  transition: color .25s ease, background .25s ease, transform .4s var(--motion-ease);
}

.process-step:nth-child(2)::before { content: "\25CE"; }
.process-step:nth-child(3)::before { content: "\2713"; }
.process-step:nth-child(4)::before { content: "\2302"; }
.process-step:hover::before { color: #e9feff; border-color: rgba(227, 252, 253, .34); background: rgba(255, 255, 255, .11); transform: rotate(6deg) scale(1.05); }

.price-row > div { position: relative; padding-left: 31px; }
.price-row > div::before {
  position: absolute;
  top: 2px;
  left: 0;
  width: 20px;
  height: 20px;
  display: grid;
  place-items: center;
  border: 1px solid rgba(212, 248, 249, .36);
  border-radius: 7px;
  color: #9cf2f5;
  background: rgba(255, 255, 255, .08);
  content: "\2713";
  font-size: 10px;
}

.franchise-model-cards span {
  width: 35px;
  height: 35px;
  display: grid;
  place-items: center;
  margin-bottom: 23px;
  border: 1px solid #c7e8ea;
  border-radius: 10px;
  background: #effbfc;
}

.franchise-model-cards article:hover span {
  border-color: rgba(227, 252, 253, .34);
  color: #e9feff;
  background: rgba(255, 255, 255, .11);
}

/* Content density: alternate information, rates and purposeful laundry imagery. */
.services { padding-top: 96px; }
.care-story { margin-top: 96px; margin-bottom: 96px; }
.process { padding-bottom: 92px; }

.home-value {
  display: grid;
  grid-template-columns: .9fr 1.1fr;
  gap: clamp(42px, 7vw, 92px);
  align-items: center;
  margin: 94px auto 0;
}

.home-value h2,
.care-standards h2 { margin: 0 0 20px; color: var(--ocean-ink); font-family: var(--mona); font-size: clamp(40px, 5vw, 66px); }
.value-copy > p:not(.eyebrow), .standards-heading > p:not(.eyebrow) { color: var(--muted); font-size: 16px; line-height: 1.6; }
.value-cards { display: grid; gap: 0; overflow: hidden; margin-top: 30px; border: 1px solid var(--waterline); border-radius: 12px; background: #fff; }
.value-cards article { display: grid; grid-template-columns: 40px 1fr; gap: 15px; padding: 19px; border-bottom: 1px solid var(--waterline); }
.value-cards article:last-child { border-bottom: 0; }
.value-cards article > span { width: 38px; height: 38px; display: grid; place-items: center; border: 1px solid #c7e8ea; border-radius: 10px; color: var(--deep-aqua); background: var(--aqua-mist); font-weight: 760; }
.value-cards b { display: block; color: var(--ocean-ink); font-size: 15px; font-weight: 720; letter-spacing: -.025em; }
.value-cards p { margin: 4px 0 7px; color: var(--muted); font-size: 13px; line-height: 1.45; }
.value-cards a { color: var(--deep-aqua); font-size: 12px; font-weight: 700; text-decoration: none; }

.value-collage { min-height: 600px; display: grid; grid-template-columns: 1.2fr .8fr; gap: 12px; }
.value-photo-stack { display: grid; grid-template-rows: 1fr 1fr; gap: 12px; }
.value-photo { position: relative; min-height: 0; overflow: hidden; margin: 0; border: 1px solid #bcd9dc; border-radius: 12px; background: #286571; }
.value-photo::after { position: absolute; inset: 0; background: linear-gradient(180deg, transparent 43%, rgba(29,81,91,.84)); content: ""; }
.value-photo img { width: 100%; height: 100%; position: absolute; inset: 0; object-fit: cover; filter: saturate(.88) contrast(1.03); transition: transform .55s var(--motion-ease); }
.value-photo:hover img { transform: scale(1.035); }
.value-photo figcaption { position: absolute; z-index: 1; right: 18px; bottom: 17px; left: 18px; color: #fff; }
.value-photo figcaption small { display: block; margin-bottom: 4px; color: #bdf6f8; font-size: 10px; font-weight: 680; }
.value-photo figcaption b { display: block; font-size: clamp(18px, 2vw, 27px); font-weight: 720; letter-spacing: -.045em; line-height: 1; }

.editorial-reel { width: min(1280px, calc(100% - 48px)); display: block; margin: 92px auto 0; overflow: visible; background: transparent; }
.editorial-reel .reel-track { width: 100%; display: grid; grid-template-columns: 1.2fr .8fr 1fr; gap: 12px; padding: 0; animation: none; transform: none; }
.editorial-reel .reel-frame,
.editorial-reel .reel-frame.reel-wide { position: relative; width: auto; height: 330px; display: block; overflow: hidden; border: 1px solid #bcd9dc; border-radius: 12px; }
.editorial-reel .reel-frame:nth-child(n+4) { display: none; }
.editorial-reel .reel-frame::after { position: absolute; inset: 0; background: linear-gradient(180deg, transparent 50%, rgba(29,81,91,.76)); content: ""; pointer-events: none; }
.editorial-reel .reel-frame figcaption { position: absolute; z-index: 1; right: 18px; bottom: 16px; left: 18px; color: #fff; font-size: 13px; font-weight: 680; }

.care-standards { width: min(1180px, calc(100% - 48px)); display: grid; grid-template-columns: .75fr 1.25fr; gap: clamp(42px, 8vw, 110px); align-items: start; margin: 0 auto 94px; padding: clamp(32px, 5vw, 62px); border: 1px solid var(--waterline); border-radius: 14px; background: var(--aqua-mist); }
.standards-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.standards-grid article { min-height: 170px; padding: 20px; border: 1px solid var(--waterline); border-radius: 10px; background: #fff; }
.standards-grid span { width: 34px; height: 34px; display: grid; place-items: center; margin-bottom: 28px; border: 1px solid #c7e8ea; border-radius: 10px; color: var(--deep-aqua); background: #effbfc; font-size: 11px; font-weight: 720; }
.standards-grid b { display: block; color: var(--ocean-ink); font-size: 15px; font-weight: 720; letter-spacing: -.025em; }
.standards-grid p { margin: 6px 0 0; color: var(--muted); font-size: 12px; line-height: 1.5; }

.service-benefit-bar { width: min(1180px, calc(100% - 48px)); display: grid; grid-template-columns: repeat(3, 1fr); overflow: hidden; margin: -60px auto 92px; border: 1px solid var(--waterline); border-radius: 12px; background: #fff; }
.service-benefit-bar article { display: grid; grid-template-columns: 40px 1fr; gap: 14px; min-height: 118px; padding: 22px; border-right: 1px solid var(--waterline); }
.service-benefit-bar article:last-child { border-right: 0; }
.service-benefit-bar article > span { width: 38px; height: 38px; display: grid; place-items: center; border: 1px solid #c7e8ea; border-radius: 10px; color: var(--deep-aqua); background: var(--aqua-mist); font-weight: 760; }
.service-benefit-bar b { display: block; color: var(--ocean-ink); font-size: 14px; font-weight: 720; letter-spacing: -.02em; }
.service-benefit-bar p { margin: 5px 0 0; color: var(--muted); font-size: 12px; line-height: 1.45; }

.service-intro { margin-top: 92px; margin-bottom: 92px; }
.service-gallery { margin-top: 88px; margin-bottom: 88px; }
.pricing-section { margin-top: 92px; margin-bottom: 92px; }
.service-standard { margin-top: 92px; margin-bottom: 92px; }
.related-services { margin-top: 92px; margin-bottom: 92px; }
.care-process, .network-section { padding-top: 94px; padding-bottom: 94px; }
.franchise-model, .franchise-image-story { margin-top: 94px; margin-bottom: 94px; }
.franchise-form-section { margin-top: 98px; margin-bottom: 98px; }

/* v1.6 — calmer editorial composition with fewer boxed containers. */
.hero { perspective: 1200px; }
.hero-splash {
  top: -3%;
  right: -5%;
  bottom: auto;
  left: auto;
  width: 76%;
  height: 106%;
  opacity: .96;
  object-fit: contain;
  object-position: right center;
  filter: drop-shadow(0 32px 34px rgba(4, 41, 49, .22));
  -webkit-mask-image: none;
  mask-image: none;
  transform-style: preserve-3d;
}

.hero::after {
  top: -19%;
  right: 1%;
  width: min(51vw, 650px);
  height: min(51vw, 650px);
  border-color: rgba(191, 248, 250, .18);
  background: radial-gradient(circle, rgba(118, 236, 241, .16), rgba(118, 236, 241, .025) 47%, transparent 70%);
}

.service-grid {
  display: grid;
  grid-template-columns: 1fr;
  grid-auto-rows: auto;
  gap: 0;
  overflow: hidden;
  border-top: 1px solid var(--waterline);
  border-bottom: 1px solid var(--waterline);
}

.service-card,
.service-card:nth-child(n) {
  grid-column: auto;
  min-height: 220px;
  padding: 27px 43% 27px 24px;
  overflow: hidden;
  border: 0;
  border-bottom: 1px solid var(--waterline);
  border-radius: 0;
  color: var(--ocean-ink);
  background: transparent;
  box-shadow: none;
  transition: padding .35s var(--motion-ease), background .35s ease;
}

.service-card:last-child { border-bottom: 0; }
.service-card:hover, .service-card:focus-within { border-color: var(--waterline); background: var(--aqua-mist); box-shadow: none; transform: none; padding-left: 32px; }
.service-card::before { display: none; }
.service-card > img {
  top: 0;
  right: 0;
  bottom: 0;
  left: auto;
  width: 39%;
  height: 100%;
  opacity: .94;
  object-fit: cover;
  filter: saturate(.86) contrast(1.03);
  transform: scale(1.015);
  -webkit-mask-image: linear-gradient(90deg, transparent 0%, #000 20%, #000 100%);
  mask-image: linear-gradient(90deg, transparent 0%, #000 20%, #000 100%);
}
.service-card:hover > img { opacity: 1; filter: saturate(.96) contrast(1.03); transform: scale(1.045); }
.service-card::after,
.service-card:nth-child(2)::after,
.service-card:nth-child(5)::after { background: linear-gradient(90deg, rgba(255,255,255,1) 0%, rgba(255,255,255,.98) 53%, rgba(255,255,255,.36) 77%, transparent 100%); }
.service-card:hover::after { background: linear-gradient(90deg, rgba(238,250,251,1) 0%, rgba(238,250,251,.98) 53%, rgba(238,250,251,.34) 77%, transparent 100%); }
.service-card-top { justify-content: flex-start; gap: 12px; }
.service-number,
.service-card:nth-child(5) .service-number { color: var(--deep-aqua); }
.service-icon,
.service-card:nth-child(5) .service-icon { width: 36px; height: 36px; color: var(--deep-aqua); border-color: #b9e1e4; background: rgba(255,255,255,.72); }
.service-card .card-kicker,
.service-card:nth-child(5) .card-kicker { color: var(--deep-aqua); }
.service-card h3 { max-width: none; margin: auto 0 10px; color: var(--ocean-ink); font-size: clamp(37px, 4.6vw, 60px); line-height: .92; }
.service-card p,
.service-card:nth-child(5) p { max-width: 410px; color: var(--muted); font-size: 14px; }
.service-card a,
.service-card:nth-child(5) a { color: var(--deep-aqua); }

.value-cards {
  overflow: visible;
  border: 0;
  border-top: 1px solid var(--waterline);
  border-radius: 0;
  background: transparent;
}
.value-cards article { padding: 20px 0; border-bottom: 1px solid var(--waterline); }
.value-cards article > span { border: 0; border-radius: 50%; background: transparent; font-size: 18px; }
.value-collage { min-height: 640px; display: block; }
.value-photo-main { width: 100%; height: 640px; border: 0; border-radius: 22px; box-shadow: 0 30px 70px rgba(33,91,102,.14); }
.value-photo-main figcaption { right: 30px; bottom: 28px; left: 30px; }

.editorial-reel { display: none; }

.process-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0;
  overflow: visible;
  border: 0;
  border-top: 1px solid var(--waterline);
  border-radius: 0;
}
.process-step,
.process-step:nth-child(n) {
  min-height: auto;
  display: grid;
  grid-template-columns: 70px minmax(170px, .7fr) minmax(260px, 1.3fr);
  gap: 24px;
  align-items: start;
  padding: 27px 0;
  border: 0;
  border-bottom: 1px solid var(--waterline);
  border-radius: 0;
  background: transparent;
}
.process-step:last-child { border-bottom: 0; }
.process-step::before { display: none; }
.process-step > span, .step-number { margin: 2px 0 0; }
.process-step h3 { margin: 0; color: var(--ocean-ink); }
.process-step p { margin: 2px 0 0; color: var(--muted); }
.process-step:hover { color: var(--ocean-ink); background: transparent; }
.process-step:hover h3 { color: var(--ocean-ink); }
.process-step:hover p { color: var(--muted); }

.care-standards {
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
}
.standards-grid { display: grid; grid-template-columns: 1fr; gap: 0; border-top: 1px solid var(--waterline); }
.standards-grid article {
  min-height: auto;
  display: grid;
  grid-template-columns: 56px minmax(190px, .85fr) 1.15fr;
  gap: 18px;
  align-items: start;
  padding: 22px 0;
  border: 0;
  border-bottom: 1px solid var(--waterline);
  border-radius: 0;
  background: transparent;
}
.standards-grid span { width: auto; height: auto; display: block; margin: 2px 0 0; border: 0; border-radius: 0; background: transparent; }
.standards-grid p { margin: 2px 0 0; }

.service-benefit-bar {
  overflow: visible;
  border: 0;
  border-top: 1px solid var(--waterline);
  border-bottom: 1px solid var(--waterline);
  border-radius: 0;
  background: transparent;
}
.service-benefit-bar article { padding: 22px 18px; border-right: 1px solid var(--waterline); }
.service-benefit-bar article:first-child { padding-left: 0; }
.service-benefit-bar article:last-child { padding-right: 0; }
.service-benefit-bar article > span { border: 0; border-radius: 50%; background: transparent; font-size: 17px; }

.care-points { gap: 0; border-top: 1px solid var(--waterline); }
.care-point {
  min-height: auto;
  padding: 20px 15px 20px 48px;
  border: 0;
  border-bottom: 1px solid var(--waterline);
  border-radius: 0;
  background: transparent;
}
.care-point::before { top: 19px; left: 0; border: 0; background: transparent; }
.care-point:hover { border-color: var(--waterline); box-shadow: none; transform: none; }

/* Shared cinematic scroll system. JS only activates these states when available. */
.reveal { opacity: 1; transform: none; }

html.motion-enabled .motion-reveal {
  opacity: 0;
  transform: translate3d(0, 24px, 0) scale(.995);
  transition:
    opacity .56s var(--motion-ease) var(--motion-delay, 0ms),
    transform .64s var(--motion-ease) var(--motion-delay, 0ms),
    clip-path .68s var(--motion-ease) var(--motion-delay, 0ms);
}

html.motion-enabled .motion-reveal.motion-in {
  opacity: 1;
  transform: translate3d(0, 0, 0) scale(1);
}

html.motion-enabled .motion-clip:not(.motion-in) { clip-path: inset(3% 0 3% 0 round 12px); }
html.motion-enabled .motion-clip.motion-in { clip-path: inset(0 0 0 0 round 12px); }

html.motion-enabled .page-enter {
  opacity: 0;
  transform: translate3d(0, 14px, 0);
  transition:
    opacity .48s var(--motion-ease) var(--enter-delay, 0ms),
    transform .56s var(--motion-ease) var(--enter-delay, 0ms);
}

html.motion-enabled.page-ready .page-enter {
  opacity: 1;
  transform: translate3d(0, 0, 0);
}

.motion-parallax {
  --motion-scale: 1.03;
  animation: none !important;
  transform: translate3d(0, var(--parallax-y, 0px), 0) scale(var(--motion-scale)) !important;
  transform-origin: center;
  will-change: transform;
}

.hero-splash.motion-parallax {
  transform:
    translate3d(var(--splash-x, 0px), calc(var(--parallax-y, 0px) + var(--splash-y, 0px)), 44px)
    rotateX(var(--splash-rx, 0deg))
    rotateY(var(--splash-ry, 0deg))
    scale(1.035) !important;
  transform-origin: 68% 52%;
  will-change: transform;
}

.story-visual:hover .motion-parallax,
.service-gallery figure:hover .motion-parallax,
.franchise-image-story figure:hover .motion-parallax { --motion-scale: 1.055; }

.motion-parallax { will-change: auto; }

@media (max-width: 850px) {
  .home-value { grid-template-columns: 1fr; gap: 42px; }
  .value-collage { min-height: 520px; }
  .editorial-reel .reel-frame, .editorial-reel .reel-frame.reel-wide { height: 285px; }
  .care-standards { grid-template-columns: 1fr; gap: 34px; }
}

@media (max-width: 590px) {
  .hero::before { background: linear-gradient(180deg, rgba(31, 83, 94, .98) 0%, rgba(31, 83, 94, .91) 52%, rgba(31, 83, 94, .54) 100%); }
  .service-hero::before { background: linear-gradient(180deg, rgba(31, 83, 94, 1), rgba(31, 83, 94, .94) 70%, rgba(31, 83, 94, .67)); }
  .hero-photo-wrap::before { background: linear-gradient(180deg, #215b66 0%, rgba(33, 91, 102, .12) 45%); }
  .franchise-hero-visual::before { background: linear-gradient(180deg, #215b66, rgba(33, 91, 102, .08) 42%); }
  .care-point { padding-left: 61px; }
  .home-value { grid-template-columns: 1fr; gap: 34px; width: calc(100% - 32px); margin-top: 72px; }
  .value-collage { min-height: 560px; grid-template-columns: 1fr; grid-template-rows: 1.1fr .9fr; }
  .value-photo-stack { grid-template-columns: 1fr 1fr; grid-template-rows: 1fr; }
  .editorial-reel { width: calc(100% - 32px); margin-top: 72px; overflow-x: auto; }
  .editorial-reel .reel-track { width: max-content; grid-template-columns: repeat(3, 74vw); padding-bottom: 8px; }
  .editorial-reel .reel-frame, .editorial-reel .reel-frame.reel-wide { width: 74vw; height: 280px; }
  .care-standards { width: calc(100% - 32px); grid-template-columns: 1fr; gap: 28px; margin-bottom: 72px; padding: 28px 20px; }
  .standards-grid { grid-template-columns: 1fr; }
  .standards-grid article { min-height: 145px; }
  .service-benefit-bar { width: calc(100% - 32px); grid-template-columns: 1fr; margin: -48px auto 72px; }
  .service-benefit-bar article { min-height: auto; border-right: 0; border-bottom: 1px solid var(--waterline); }
  .service-benefit-bar article:last-child { border-bottom: 0; }
  .hero-splash { top: auto; right: -26%; bottom: 1%; width: 122%; height: 55%; opacity: .82; }
  .hero-splash.motion-parallax { transform: translate3d(0, var(--parallax-y, 0px), 20px) scale(1.06) !important; }
  .service-card, .service-card:nth-child(n) { min-height: 218px; padding: 22px 38% 22px 17px; }
  .service-card:hover, .service-card:focus-within { padding-left: 17px; }
  .service-card > img { width: 37%; -webkit-mask-image: linear-gradient(90deg, transparent, #000 24%); mask-image: linear-gradient(90deg, transparent, #000 24%); }
  .service-card h3 { font-size: 34px; }
  .service-card p { font-size: 12px; }
  .value-collage { min-height: 440px; }
  .value-photo-main { height: 440px; border-radius: 15px; }
  .process-step, .process-step:nth-child(n) { grid-template-columns: 42px 1fr; gap: 12px; padding: 22px 0; }
  .process-step p { grid-column: 2; }
  .standards-grid article { grid-template-columns: 42px 1fr; gap: 12px; }
  .standards-grid p { grid-column: 2; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  body::before { display: none; }
  .motion-reveal,
  .page-enter,
  .motion-parallax,
  main,
  footer {
    opacity: 1 !important;
    clip-path: none !important;
    transform: none !important;
    transition: none !important;
  }
}

/* Mobile type scale: keep the wordmark and page hierarchy as confident as desktop. */
@media (max-width: 590px) {
  .site-header { height: 80px; }
  .wordmark { font-size: 32px; }
  .header-cta { min-height: 44px; padding: 10px 11px; font-size: 13px; }
  .eyebrow,
  .hero-kicker { font-size: 12px; }
  .service-hero h1,
  .franchise-hero h1 { font-size: clamp(64px, 17vw, 84px); }
  .service-hero-copy > p:not(.eyebrow),
  .franchise-hero-copy > p:not(.eyebrow) { font-size: 16px; }
  .service-intro h2,
  .process-heading h2,
  .standard-lead h2,
  .network-copy h2,
  .related-heading h2,
  .pickup-content h2,
  .franchise-model h2,
  .franchise-image-story h2,
  .franchise-form-section h2 { font-size: clamp(48px, 13vw, 66px); }
  .process-step h3,
  .related-card h3,
  .franchise-model-cards h3 { font-size: 26px; }
}

/* Portrait phones may expose a wide layout viewport. This keeps every inner
   page on the same calm mobile grid and type system as the landing page. */
@media (max-width: 1100px) and (orientation: portrait) {
  body { font-weight: 480; font-variation-settings: "wght" 480, "wdth" 100, "opsz" 18; }
  .site-header { width: calc(100% - 32px); height: 88px; }
  .wordmark { font-size: clamp(38px, 4.6vw, 44px); font-variation-settings: "wght" 760, "wdth" 96, "opsz" 44; }
  .desktop-nav { display: none; }
  .header-cta { min-height: 42px; margin-left: auto; padding: 9px 12px; font-size: 12px; }

  .service-hero,
  .franchise-hero { width: calc(100% - 32px); min-height: 0; grid-template-columns: 1fr; margin-top: 12px; border-radius: 12px; }
  .service-hero-copy,
  .franchise-hero-copy { min-height: 0; padding: 62px 30px 54px; }
  .service-hero h1,
  .franchise-hero h1 { font-size: clamp(64px, 9.6vw, 96px); font-weight: 690; font-variation-settings: "wght" 690, "wdth" 102, "opsz" 72; letter-spacing: -.062em; line-height: .91; }
  .service-hero-copy > p:not(.eyebrow),
  .franchise-hero-copy > p:not(.eyebrow) { font-size: 17px; }
  .hero-photo-wrap,
  .franchise-hero-visual { min-height: clamp(350px, 54vw, 520px); }

  .service-intro,
  .franchise-model,
  .franchise-image-story,
  .franchise-form-section { width: calc(100% - 40px); grid-template-columns: 1fr; gap: 34px; margin: 78px auto; }
  .service-intro h2,
  .process-heading h2,
  .standard-lead h2,
  .network-copy h2,
  .related-heading h2,
  .pickup-content h2,
  .franchise-model h2,
  .franchise-image-story h2,
  .franchise-form-section h2 { font-size: clamp(48px, 7vw, 70px); font-weight: 690; font-variation-settings: "wght" 690, "wdth" 102, "opsz" 56; letter-spacing: -.058em; line-height: .94; }
  .process-heading,
  .network-inner { grid-template-columns: 1fr; gap: 24px; }
  .process-grid,
  .related-grid { grid-template-columns: 1fr; }
  .process-step::after { display: none; }
  .service-standard { width: calc(100% - 40px); grid-template-columns: 1fr; margin: 78px auto; }
  .related-services { width: calc(100% - 40px); margin: 78px auto; }
  .franchise-proof { width: calc(100% - 32px); grid-template-columns: 1fr; }
  .franchise-proof article { min-height: auto; border-right: 0; border-bottom: 1px solid var(--waterline); }
  .franchise-proof article:last-child { border-bottom: 0; }
  .franchise-form-section { padding: 36px 26px; }
  .form-grid { grid-template-columns: 1fr; }
}
