/* site/base.css */
/* ==========================================================================
   SITE BASE — the page system every brand shares.
   Mirrors the library's landing-system: content-sized photo heroes, one page
   width, white sections, 48px pill buttons, stacked full-width mobile CTAs,
   rounded photo surfaces. Colors come ONLY from the --cheers-component-*
   contract (set in brands/<slug>/brand.css). Never edit per brand.
   ========================================================================== */

:root {
  /* Library color contract defaults (theme-contract.mjs). brand.css overrides. */
  --cheers-component-background: #ffffff;
  --cheers-component-surface: #f3f3f3;
  --cheers-component-surface-hover: #e9e9e9;
  --cheers-component-text: #2b2b2b;
  --cheers-component-muted: #666666;
  --cheers-component-heading: #202020;
  --cheers-component-accent: #555555;
  --cheers-component-focus: #111111;
  --cheers-component-border: rgb(0 0 0 / 16%);
  --cheers-component-rating: #f2aa00;
  --cheers-component-logo-filter: none;
  --cheers-component-action-text: #ffffff;
  /* Text on any accent-colored background (map search button, selected city chip). White unless the brand's accent is light. */
  --site-accent-text: #ffffff;
  --cheers-component-radius: 20px;
  --cheers-component-button-radius: 999px;

  /* Site chrome roles (brand.css may override). */
  --site-bar-background: var(--cheers-component-heading);
  --site-bar-text: #ffffff;
  --site-header-background: var(--cheers-component-background);
  --site-header-text: var(--cheers-component-heading);
  --site-header-border: var(--cheers-component-border);
  --site-header-action: var(--cheers-component-accent);
  --site-header-action-text: var(--cheers-component-action-text);
  --site-hero-shade: linear-gradient(90deg, rgb(0 0 0 / 78%), rgb(0 0 0 / 28%));
  --site-hero-accent: #ffffff;
  --site-hero-action: var(--cheers-component-accent);
  --site-hero-action-text: var(--cheers-component-action-text);
  /* The CTA pair: sticky Schedule | Call bar and the mobile menu's buttons. White labels by default. */
  --site-action-bar-call: var(--cheers-component-accent);
  --site-action-bar-call-text: #ffffff;
  --site-action-bar-book: var(--cheers-component-heading);
  --site-action-bar-book-text: #ffffff;
  --site-final-background: var(--cheers-component-heading);
  --site-final-text: rgb(255 255 255 / 78%);
  --site-final-heading: #ffffff;
  --site-final-action: var(--site-hero-action);
  --site-final-action-text: var(--site-hero-action-text);
  --site-footer-background: var(--cheers-component-heading);
  --site-footer-text: rgb(255 255 255 / 72%);
  --site-footer-heading: #ffffff;

  /* Type */
  --font-body: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --font-display: var(--font-body);
  --display-weight: 800;
  --display-tracking: -0.04em;

  /* Page system (landing-system values) */
  --cheers-page-width: 1200px;
  --cheers-page-gutter: clamp(20px, 5vw, 64px); /* breathing room beside the page edge: 20px on phones, up to 64px on laptops */
  --cheers-page-space: clamp(48px, 7vw, 88px);
  /* One section heading size across components: confident, never shouting over the copy. */
  --site-h2-size: clamp(1.75rem, 2.7vw, 2.5rem);
  --site-header-height: 72px;
  --site-action-bar-height: 64px;
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-padding-top: calc(var(--site-header-height) + 12px); }
body {
  margin: 0;
  background: var(--cheers-component-background);
  color: var(--cheers-component-text);
  font-family: var(--font-body);
  font-size: 1rem;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
}
img, svg { display: block; max-width: 100%; }
img { height: auto; }
a { color: inherit; }
button, input, select, textarea { font: inherit; }
h1, h2, h3 { font-family: var(--font-display); text-wrap: balance; }
:focus-visible { outline: 3px solid var(--cheers-component-focus); outline-offset: 3px; }

/* Brand font flows into every library component through its --font-* fallbacks. */
[data-cheers-component] { --cheers-component-font: var(--font-body); }
[data-cheers-component] h2 { font-family: var(--font-display); } /* weight + tracking: site/library-overrides.css */

.site-wrap {
  width: min(var(--cheers-page-width), calc(100% - var(--cheers-page-gutter) * 2));
  margin-inline: auto;
}
.site-skip { position: absolute; left: 12px; top: -80px; z-index: 200; padding: 10px 16px; border-radius: 8px; background: var(--cheers-component-heading); color: var(--cheers-component-background); }
.site-skip:focus { top: 12px; }
.site-sr-only { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }

/* Buttons: the landing-system pill, two kinds only, finished like the reference sites —
   Elite Rooter homepage (glossy primary with a color glow) and Perfect Window Cleaning (liquid-glass
   secondary). Components recolor a primary through --site-button-bg / --site-button-text only. */
.site-button {
  --_btn-bg: var(--site-button-bg, var(--cheers-component-accent));
  --_btn-text: var(--site-button-text, var(--cheers-component-action-text));
  position: relative;
  display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  min-height: 52px; padding: 15px 26px;
  border: 1px solid transparent;
  border-radius: var(--cheers-component-button-radius);
  background: linear-gradient(180deg, rgb(255 255 255 / 22%), rgb(255 255 255 / 0%) 58%), var(--_btn-bg);
  color: var(--_btn-text);
  font-weight: 750; font-size: 1rem; line-height: 1.2; letter-spacing: .005em;
  text-decoration: none; white-space: nowrap;
  box-shadow:
    inset 0 1px 0 rgb(255 255 255 / 32%),
    inset 0 -1px 0 rgb(0 0 0 / 12%),
    0 12px 28px color-mix(in srgb, var(--_btn-bg) 34%, transparent);
  transition: transform .18s ease, box-shadow .18s ease, background-color .18s ease, color .18s ease;
}
.site-button:hover {
  transform: translateY(-2px);
  box-shadow:
    inset 0 1px 0 rgb(255 255 255 / 36%),
    inset 0 -1px 0 rgb(0 0 0 / 12%),
    0 16px 36px color-mix(in srgb, var(--_btn-bg) 46%, transparent);
}
.site-button:active { transform: translateY(0) scale(.98); }
.site-button svg { width: 18px; height: 18px; flex: none; }

/* Secondary on light sections: frosted glass, not a hard outline. */
.site-button--outline {
  background: linear-gradient(180deg, rgb(255 255 255 / 80%), rgb(255 255 255 / 45%));
  color: var(--cheers-component-heading);
  border-color: color-mix(in srgb, var(--cheers-component-heading) 14%, transparent);
  -webkit-backdrop-filter: blur(14px) saturate(1.4); backdrop-filter: blur(14px) saturate(1.4);
  box-shadow: inset 0 1px 0 rgb(255 255 255 / 90%), 0 8px 22px rgb(0 0 0 / 7%);
}
.site-button--outline:hover { box-shadow: inset 0 1px 0 rgb(255 255 255 / 90%), 0 12px 28px rgb(0 0 0 / 11%); }

/* Secondary on photos and dark panels: Perfect Window Cleaning liquid glass. */
.site-on-photo .site-button--outline, .site-on-dark .site-button--outline {
  background: linear-gradient(180deg, rgb(255 255 255 / 24%), rgb(255 255 255 / 10%));
  color: #ffffff;
  border-color: transparent;
  -webkit-backdrop-filter: blur(22px) saturate(1.8); backdrop-filter: blur(22px) saturate(1.8);
  box-shadow: inset 0 1px .5px rgb(255 255 255 / 45%), inset 0 -1px 1px rgb(255 255 255 / 8%), 0 10px 30px rgb(0 0 0 / 28%);
}
.site-on-photo .site-button--outline:hover, .site-on-dark .site-button--outline:hover {
  background: linear-gradient(180deg, rgb(255 255 255 / 30%), rgb(255 255 255 / 14%));
  box-shadow: inset 0 1px .5px rgb(255 255 255 / 50%), inset 0 -1px 1px rgb(255 255 255 / 8%), 0 14px 34px rgb(0 0 0 / 32%);
}
.site-actions { display: flex; flex-wrap: wrap; gap: 12px; }

.site-eyebrow {
  margin: 0;
  color: var(--cheers-component-accent);
  font-size: .78rem; font-weight: 800;
  letter-spacing: .14em; line-height: 1.3;
  text-transform: uppercase;
}

@media (max-width: 600px) {
  .site-actions { flex-direction: column; align-items: stretch; width: 100%; }
  .site-actions > .site-button { width: 100%; }
  /* Long labels ("Schedule a Free On-Site Consultation") wrap instead of pushing past the screen. */
  .site-button { white-space: normal; text-align: center; }
}
@media (prefers-reduced-motion: reduce) { .site-button { transition: none; } .site-button:hover, .site-button:active { transform: none; } }

/* Text selection: one readable highlight on every site. Dark text on a light tint of the brand accent; on photos and
   dark panels, dark text on white. Selected muted text is lifted to the heading color so it stays legible. */
::selection { background: color-mix(in srgb, var(--cheers-component-accent) 22%, #ffffff); color: var(--cheers-component-heading); }
.site-on-photo ::selection, .site-on-dark ::selection { background: #ffffff; color: var(--cheers-component-heading); }
/* Long unbroken strings (emails, URLs) wrap instead of pushing past the screen edge. */
a[href^="mailto:"], a[href^="http"]:not(.site-button) { overflow-wrap: anywhere; }

/* Tap targets (WCAG 2.2 target size): small text links still get a 24px-tall hit area; the header phone a full 44px. */
.site-utility a, .site-hero__crumbs a, .site-footer a, .site-crumbs a { display: inline-flex; align-items: center; min-height: 24px; }
.site-header__phone { min-height: 44px; min-width: 44px; justify-content: center; }
/* Paged lists (blog index, gallery): items past the current page wait behind "Show more". */
.is-paged { display: none !important; }
.site-more { display: flex; margin: 28px auto 0; }
.site-more[hidden] { display: none; }

/* Video player (videoEmbed): 16:9, rounded, dark until it loads. */
.site-video { position: relative; overflow: hidden; border-radius: var(--cheers-component-radius); aspect-ratio: 16 / 9; background: var(--cheers-component-heading); }
.site-video iframe, .site-video video { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; object-fit: cover; }

/* library/components/social-proof/social-proof.css */
[data-cheers-component="social-proof"] {
  --_cheers-social-proof-background: var(--cheers-social-proof-background, var(--cheers-component-background, #ffffff));
  --_cheers-social-proof-surface: var(--cheers-social-proof-surface, var(--cheers-component-surface, #f3f3f3));
  --_cheers-social-proof-surface-hover: var(--cheers-social-proof-surface-hover, var(--cheers-component-surface-hover, #e9e9e9));
  --_cheers-social-proof-text: var(--cheers-social-proof-text, var(--cheers-component-text, #2b2b2b));
  --_cheers-social-proof-muted: var(--cheers-social-proof-muted, var(--cheers-component-muted, #666666));
  --_cheers-social-proof-heading: var(--cheers-social-proof-heading, var(--cheers-component-heading, #202020));
  --_cheers-social-proof-accent: var(--cheers-social-proof-accent, var(--cheers-component-accent, #555555));
  --_cheers-social-proof-focus: var(--cheers-social-proof-focus, var(--cheers-component-focus, #111111));
  --_cheers-social-proof-border: var(--cheers-social-proof-border, var(--cheers-component-border, rgb(0 0 0 / 16%)));
  --_cheers-social-proof-rating: var(--cheers-social-proof-rating, var(--cheers-component-rating, #f2aa00));
  --_cheers-social-proof-font: var(--cheers-social-proof-font, var(--font-body, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif));
  --_cheers-social-proof-heading-font: var(--cheers-social-proof-heading-font, var(--font-display, var(--_cheers-social-proof-font)));
  --_cheers-social-proof-max-width: var(--cheers-social-proof-max-width, 1220px);
  --_cheers-social-proof-inline-padding: var(--cheers-social-proof-inline-padding, 24px);
  --_cheers-social-proof-radius: var(--cheers-social-proof-radius, 10px);

  width: 100%;
  border-bottom: 1px solid var(--_cheers-social-proof-border);
  color: var(--_cheers-social-proof-text);
  background: var(--_cheers-social-proof-background);
  box-shadow: 0 10px 30px rgb(0 0 0 / 4%);
  font-family: var(--_cheers-social-proof-font);
}

.cheers-social-proof,
.cheers-social-proof *,
.cheers-social-proof *::before,
.cheers-social-proof *::after { box-sizing: border-box; }

.cheers-social-proof__list {
  display: grid;
  width: 100%;
  max-width: var(--_cheers-social-proof-max-width);
  grid-template-columns: repeat(var(--cheers-social-proof-column-count), minmax(0, 1fr));
  grid-auto-rows: 1fr;
  align-items: stretch;
  margin: 0 auto;
  padding: 14px var(--_cheers-social-proof-inline-padding);
  list-style: none;
}

.cheers-social-proof__item { position: relative; display: flex; min-width: 0; }

.cheers-social-proof__item + .cheers-social-proof__item::before {
  position: absolute; top: 50%; left: 0;
  width: 1px; height: 42px;
  background: var(--_cheers-social-proof-border);
  content: "";
  transform: translateY(-50%);
}

.cheers-social-proof__body {
  display: flex;
  width: 100%;
  height: 100%;
  min-width: 0;
  min-height: 72px;
  align-items: center;
  justify-content: center;
  gap: 11px;
  padding: 10px 18px;
  border-radius: var(--_cheers-social-proof-radius);
  color: var(--_cheers-social-proof-text);
  text-decoration: none;
}

a.cheers-social-proof__body { transition: color 0.16s ease, background 0.16s ease, transform 0.16s ease; }
a.cheers-social-proof__body:hover { color: var(--_cheers-social-proof-accent); background: var(--_cheers-social-proof-surface-hover); transform: translateY(-1px); }
a.cheers-social-proof__body:focus-visible { outline: 2px solid var(--_cheers-social-proof-focus); outline-offset: -2px; }

.cheers-social-proof__copy { min-width: 0; }
.cheers-social-proof__copy strong, .cheers-social-proof__copy small { display: block; }
.cheers-social-proof__copy strong { color: var(--_cheers-social-proof-heading); font-size: 0.82rem; line-height: 1.2; }

.cheers-social-proof__title-image {
  display: inline-block; width: auto; max-width: 4em; height: 1em;
  margin: 0 0.15em; object-fit: contain; vertical-align: -0.12em;
}

.cheers-social-proof__copy small { margin-top: 3px; color: var(--_cheers-social-proof-muted); font-size: 0.68rem; line-height: 1.3; }
.cheers-social-proof__visual { flex: none; }
.cheers-social-proof__visual--rating {
  color: var(--_cheers-social-proof-heading);
  font-family: var(--_cheers-social-proof-heading-font);
  font-size: 1.9rem; font-weight: 800; letter-spacing: -0.05em; line-height: 1;
}
.cheers-social-proof__rating-stars { display: block; color: var(--_cheers-social-proof-rating); font-size: 0.68rem; letter-spacing: 0; white-space: nowrap; }
.cheers-social-proof__visual--image { display: grid; width: 70px; height: 72px; place-items: center; }
.cheers-social-proof__visual--image img { display: block; width: auto; max-width: 70px; height: auto; max-height: 72px; object-fit: contain; }
.cheers-social-proof__visual--text-mark {
  display: grid; width: 44px; height: 44px; place-content: center;
  border: 2px solid var(--_cheers-social-proof-heading); border-radius: 50%;
  color: var(--_cheers-social-proof-heading);
  font-size: 0.58rem; font-weight: 800; letter-spacing: 0.04em; line-height: 1.1; text-align: center;
}
.cheers-social-proof__visual--text-mark span { display: block; }
.cheers-social-proof__visual--icon { width: 28px; height: 28px; color: var(--_cheers-social-proof-accent); }
.cheers-social-proof__visual--icon svg { display: block; width: 100%; height: 100%; }
.cheers-social-proof__sr-only { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }

@media (max-width: 920px) {
  .cheers-social-proof__list { grid-template-columns: repeat(2, minmax(0, 1fr)); padding: 8px 18px; }
  .cheers-social-proof__item { border-bottom: 1px solid var(--_cheers-social-proof-border); }
  .cheers-social-proof__item:nth-child(even) { border-left: 1px solid var(--_cheers-social-proof-border); }
  .cheers-social-proof__item + .cheers-social-proof__item::before { display: none; }
  .cheers-social-proof__body { min-height: 84px; justify-content: flex-start; padding: 14px 20px; }
  .cheers-social-proof__item:last-child:nth-child(odd) { grid-column: 1 / -1; border-left: 0; border-bottom: 0; }
  .cheers-social-proof__item:last-child:nth-child(odd) .cheers-social-proof__body { justify-content: center; }
}

@media (max-width: 460px) {
  .cheers-social-proof__list { grid-template-columns: minmax(0, 1fr); padding: 8px 20px; }
  .cheers-social-proof__item,
  .cheers-social-proof__item:nth-child(even),
  .cheers-social-proof__item:last-child:nth-child(odd) { grid-column: auto; border-left: 0; border-bottom: 1px solid var(--_cheers-social-proof-border); }
  .cheers-social-proof__item:last-child,
  .cheers-social-proof__item:last-child:nth-child(odd) { border-bottom: 0; }
  .cheers-social-proof__body,
  .cheers-social-proof__item:last-child:nth-child(odd) .cheers-social-proof__body { min-height: 72px; justify-content: flex-start; padding: 10px 14px; }
  .cheers-social-proof__visual { width: 70px; margin: 0; text-align: center; }
  .cheers-social-proof__visual--image { height: 72px; }
  .cheers-social-proof__visual--text-mark { width: 44px; height: 44px; margin: 0 13px; }
  .cheers-social-proof__visual--icon { width: 28px; height: 28px; margin: 0 21px; }
}

@media (prefers-reduced-motion: reduce) { a.cheers-social-proof__body { transition: none; } }

/* Only multi-item strips become a carousel; single-item hero proof stays intact. */
@media (max-width: 1024px) {
  [data-social-proof-carousel] .cheers-social-proof__list {
    display: flex; max-width: 100%; padding: 8px 18px;
    overflow-x: auto; overscroll-behavior-x: contain; scroll-behavior: auto; scroll-snap-type: none;
    scrollbar-width: none; overflow-anchor: none; touch-action: pan-x pan-y pinch-zoom;
  }
  [data-social-proof-carousel] .cheers-social-proof__list::-webkit-scrollbar { display: none; }
  [data-social-proof-carousel] .cheers-social-proof__list:focus-visible { outline: 2px solid var(--_cheers-social-proof-focus); outline-offset: -2px; }
  [data-social-proof-carousel] .cheers-social-proof__item,
  [data-social-proof-carousel] .cheers-social-proof__item:nth-child(even),
  [data-social-proof-carousel] .cheers-social-proof__item:last-child:nth-child(odd) { flex: 0 0 min(82vw, 340px); grid-column: auto; border: 0; }
  [data-social-proof-carousel] .cheers-social-proof__item::before {
    position: absolute; top: 50%; left: 0; display: block;
    width: 1px; height: 42px; background: var(--_cheers-social-proof-border); content: ""; transform: translateY(-50%);
  }
  [data-social-proof-carousel] .cheers-social-proof__item .cheers-social-proof__body,
  [data-social-proof-carousel] .cheers-social-proof__item:last-child:nth-child(odd) .cheers-social-proof__body { min-height: 84px; justify-content: flex-start; padding: 14px 20px; }
  [data-social-proof-carousel] .cheers-social-proof__list[data-carousel-loop] { cursor: grab; }
  [data-social-proof-carousel] .cheers-social-proof__list.is-dragging,
  [data-social-proof-carousel] .is-dragging .cheers-social-proof__body { cursor: grabbing; user-select: none; }
}

/* library/components/social-proof-2/social-proof-2.css */
[data-cheers-component="social-proof-2"] {
  --_cheers-social-proof-2-background: var(--cheers-social-proof-2-background, var(--cheers-component-background, #ffffff));
  --_cheers-social-proof-2-surface-hover: var(--cheers-social-proof-2-surface-hover, var(--cheers-component-surface-hover, #e9e9e9));
  --_cheers-social-proof-2-text: var(--cheers-social-proof-2-text, var(--cheers-component-text, #2b2b2b));
  --_cheers-social-proof-2-muted: var(--cheers-social-proof-2-muted, var(--cheers-component-muted, #666666));
  --_cheers-social-proof-2-heading: var(--cheers-social-proof-2-heading, var(--cheers-component-heading, #202020));
  --_cheers-social-proof-2-accent: var(--cheers-social-proof-2-accent, var(--cheers-component-accent, #555555));
  --_cheers-social-proof-2-focus: var(--cheers-social-proof-2-focus, var(--cheers-component-focus, #111111));
  --_cheers-social-proof-2-border: var(--cheers-social-proof-2-border, var(--cheers-component-border, rgb(0 0 0 / 16%)));
  --_cheers-social-proof-2-rating: var(--cheers-social-proof-2-rating, var(--cheers-component-rating, #f2aa00));
  --_cheers-social-proof-2-font: var(--cheers-social-proof-2-font, var(--font-body, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif));
  --_cheers-social-proof-2-heading-font: var(--cheers-social-proof-2-heading-font, var(--font-display, var(--_cheers-social-proof-2-font)));
  --_cheers-social-proof-2-max-width: var(--cheers-social-proof-2-max-width, 1220px);
  width: 100%;
  border-bottom: 1px solid var(--_cheers-social-proof-2-border);
  color: var(--_cheers-social-proof-2-text);
  background: var(--_cheers-social-proof-2-background);
  box-shadow: 0 10px 30px rgb(0 0 0 / 4%);
  font-family: var(--_cheers-social-proof-2-font);
}
.cheers-social-proof-2, .cheers-social-proof-2 *, .cheers-social-proof-2 *::before, .cheers-social-proof-2 *::after { box-sizing: border-box; }
.cheers-social-proof-2__list { display: grid; width: min(var(--_cheers-social-proof-2-max-width), calc(100% - 100px)); grid-template-columns: repeat(var(--cheers-social-proof-2-column-count), minmax(0, 1fr)); align-items: center; margin: 0 auto; padding: 14px 0; list-style: none; }
.cheers-social-proof-2__item { position: relative; display: flex; min-width: 0; }
.cheers-social-proof-2__item + .cheers-social-proof-2__item::before { position: absolute; top: 50%; left: 0; width: 1px; height: 42px; background: var(--_cheers-social-proof-2-border); content: ""; transform: translateY(-50%); }
.cheers-social-proof-2__body { display: flex; width: 100%; min-width: 0; min-height: 72px; align-items: center; justify-content: center; gap: 11px; padding: 10px 14px; border-radius: 10px; color: var(--_cheers-social-proof-2-text); text-decoration: none; }
a.cheers-social-proof-2__body { transition: color 160ms ease, background-color 160ms ease, transform 160ms ease; }
a.cheers-social-proof-2__body:hover { color: var(--_cheers-social-proof-2-accent); background: var(--_cheers-social-proof-2-surface-hover); transform: translateY(-1px); }
a.cheers-social-proof-2__body:focus-visible { outline: 2px solid var(--_cheers-social-proof-2-focus); outline-offset: -2px; }
.cheers-social-proof-2__copy { min-width: 0; line-height: 1.2; }
.cheers-social-proof-2__copy strong, .cheers-social-proof-2__copy small { display: block; overflow-wrap: anywhere; }
.cheers-social-proof-2__copy strong { color: var(--_cheers-social-proof-2-heading); font-family: var(--_cheers-social-proof-2-heading-font); font-size: 0.82rem; font-weight: 800; letter-spacing: -0.01em; line-height: 1.2; }
a.cheers-social-proof-2__body:hover .cheers-social-proof-2__copy strong { color: inherit; }
.cheers-social-proof-2__copy small { margin-top: 3px; color: var(--_cheers-social-proof-2-muted); font-size: 0.68rem; line-height: 1.3; }
.cheers-social-proof-2__visual { min-width: 0; flex: none; }
.cheers-social-proof-2__visual--rating { color: var(--_cheers-social-proof-2-heading); font-family: var(--_cheers-social-proof-2-heading-font); font-size: 1.9rem; font-weight: 800; letter-spacing: -0.05em; line-height: 1; }
.cheers-social-proof-2__rating-stars { display: block; color: var(--_cheers-social-proof-2-rating); font-size: 0.68rem; letter-spacing: 0; line-height: normal; white-space: nowrap; }
.cheers-social-proof-2__visual--badge, .cheers-social-proof-2__visual--logo, .cheers-social-proof-2__visual--wordmark { display: grid; place-items: center; }
.cheers-social-proof-2__visual--badge img { display: block; width: auto; height: 58px; }
.cheers-social-proof-2__visual--logo { width: 70px; height: 72px; }
.cheers-social-proof-2__visual--logo img { display: block; width: auto; max-width: 70px; height: auto; max-height: 72px; object-fit: contain; }
.cheers-social-proof-2__visual--wordmark img { display: block; width: 88px; height: auto; }
.cheers-social-proof-2__visual--icon { width: 28px; height: 28px; color: var(--_cheers-social-proof-2-accent); }
.cheers-social-proof-2__visual--icon svg { display: block; width: 100%; height: 100%; stroke-linecap: round; stroke-linejoin: round; }
@media (max-width: 1180px) {
  .cheers-social-proof-2__body { gap: 9px; padding: 10px 12px; }
  .cheers-social-proof-2__copy strong { font-size: 0.76rem; }
  .cheers-social-proof-2__copy small { font-size: 0.64rem; }
  .cheers-social-proof-2__visual--rating { font-size: 1.7rem; }
  .cheers-social-proof-2__visual--badge img { height: 50px; }
  .cheers-social-proof-2__visual--wordmark img { width: 74px; }
}
@media (max-width: 920px) {
  .cheers-social-proof-2__list { width: calc(100% - 36px); grid-template-columns: repeat(2, minmax(0, 1fr)); padding: 8px 0; }
  .cheers-social-proof-2__item { border-bottom: 1px solid var(--_cheers-social-proof-2-border); }
  .cheers-social-proof-2__item:nth-child(even) { border-left: 1px solid var(--_cheers-social-proof-2-border); }
  .cheers-social-proof-2__item:last-child:nth-child(odd) { grid-column: 1 / -1; border-bottom: 0; }
  .cheers-social-proof-2__item + .cheers-social-proof-2__item::before { display: none; }
  .cheers-social-proof-2__body { height: 100%; min-height: 84px; justify-content: flex-start; padding: 14px 20px; border-radius: 0; }
  .cheers-social-proof-2__copy strong { font-size: 0.82rem; }
  .cheers-social-proof-2__copy small { font-size: 0.68rem; }
  .cheers-social-proof-2__visual { display: grid; width: 88px; height: 58px; flex: 0 0 88px; margin: 0; place-items: center; text-align: center; }
  .cheers-social-proof-2__visual--rating { font-size: 1.9rem; }
  .cheers-social-proof-2__visual--badge img { height: 58px; }
  .cheers-social-proof-2__visual--wordmark img { width: 88px; }
  .cheers-social-proof-2__item:last-child:nth-child(odd) .cheers-social-proof-2__body { justify-content: center; }
  a.cheers-social-proof-2__body:hover { transform: none; }
}
@media (max-width: 460px) {
  .cheers-social-proof-2__list { width: calc(100% - 32px); grid-template-columns: minmax(0, 1fr); padding: 6px 0; }
  .cheers-social-proof-2__item, .cheers-social-proof-2__item:nth-child(even), .cheers-social-proof-2__item:last-child:nth-child(odd) { grid-column: auto; border-left: 0; border-bottom: 1px solid var(--_cheers-social-proof-2-border); }
  .cheers-social-proof-2__item:last-child, .cheers-social-proof-2__item:last-child:nth-child(odd) { border-bottom: 0; }
  .cheers-social-proof-2__body, .cheers-social-proof-2__item:last-child:nth-child(odd) .cheers-social-proof-2__body { min-height: 72px; justify-content: flex-start; gap: 12px; padding: 10px 8px; }
  .cheers-social-proof-2__visual { width: 70px; height: 56px; flex-basis: 70px; margin: 0; text-align: center; }
  .cheers-social-proof-2__visual--rating { font-size: 1.9rem; }
  .cheers-social-proof-2__visual--logo { height: 56px; }
  .cheers-social-proof-2__visual--badge img { height: 54px; }
  .cheers-social-proof-2__visual--wordmark img { width: 70px; }
  .cheers-social-proof-2__visual--icon { height: 56px; margin: 0; }
}
@media (max-width: 340px) {
  .cheers-social-proof-2__list { width: calc(100% - 20px); }
  .cheers-social-proof-2__visual { width: 62px; flex-basis: 62px; }
  .cheers-social-proof-2__visual--badge img, .cheers-social-proof-2__visual--logo img { max-width: 62px; height: auto; }
  .cheers-social-proof-2__visual--wordmark img { width: 62px; }
}
@media (prefers-reduced-motion: reduce) { a.cheers-social-proof-2__body { transition: none; } a.cheers-social-proof-2__body:hover { transform: none; } }

/* library/components/service-card-stack/service-card-stack.css */
[data-cheers-component="service-card-stack"] {
  --_services-bg: var(--cheers-service-cards-background, var(--cheers-component-background, #ffffff));
  --_services-text: var(--cheers-component-text, #2b2b2b);
  --_services-muted: var(--cheers-component-muted, #666666);
  --_services-heading: var(--cheers-component-heading, #202020);
  --_services-accent: var(--cheers-component-accent, #555555);
  --_services-focus: var(--cheers-component-focus, #111111);
  --_services-border: var(--cheers-component-border, rgb(0 0 0 / 16%));
  --_services-card-text: var(--cheers-service-cards-overlay-text, #ffffff);
  --_services-card-muted: var(--cheers-service-cards-overlay-muted, #e7e7e7);
  --_services-card-link: var(--cheers-service-cards-link, #ffffff);
  --_services-overlay: var(--cheers-service-cards-overlay, linear-gradient(180deg, rgb(0 0 0 / 15%) 0%, rgb(0 0 0 / 55%) 55%, rgb(0 0 0 / 92%) 100%));
  padding: 64px 24px 32px;
  background: var(--_services-bg);
  color: var(--_services-text);
  font-family: var(--cheers-component-font, system-ui, sans-serif);
}
.cheers-service-stack, .cheers-service-stack * { box-sizing: border-box; }
.cheers-service-stack__wrap { max-width: 1220px; margin-inline: auto; }
.cheers-service-stack__header { margin-bottom: 32px; }
.cheers-service-stack__header h2 { margin: 0; color: var(--_services-heading); font-size: clamp(30px, 4vw, 48px); line-height: 1.1; }
.cheers-service-stack__header p { margin: 12px 0 0; color: var(--_services-muted); font-size: 16px; line-height: 1.6; }
.cheers-service-stack .cheers-mobile-card-scroll { background: transparent; }
.cheers-service-stack .cheers-mobile-card-scroll__grid { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; }
.cheers-service-stack .cheers-service-stack__card { position: relative; display: flex; flex-direction: column; justify-content: flex-end; min-height: 290px; height: 100%; border-radius: 8px; overflow: hidden; isolation: isolate; color: var(--_services-card-text); background: #202020; box-shadow: 0 8px 24px rgb(0 0 0 / 12%); text-decoration: none; }
.cheers-service-stack__image { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease; }
.cheers-service-stack__card::after { content: ""; position: absolute; inset: 0; z-index: -1; background: var(--_services-overlay); }
.cheers-service-stack__card:hover .cheers-service-stack__image { transform: scale(1.07); }
.cheers-service-stack__body { padding: 22px; }
.cheers-service-stack .cheers-service-stack__body h3 { margin: 0 0 .35em; font-size: 20px; line-height: 1.2; color: var(--_services-card-text); }
.cheers-service-stack__body p { margin: 0 0 16px; font-size: 15px; line-height: 1.5; color: var(--_services-card-muted); }
.cheers-service-stack__link { display: inline-flex; gap: 8px; align-items: center; font-size: 15px; line-height: 1.4; font-weight: 650; color: var(--_services-card-link); }
.cheers-service-stack__card:focus-visible { outline: 3px solid var(--cheers-service-cards-card-focus, #ffffff); outline-offset: -5px; }
.cheers-service-stack__footer { margin-top: 32px; text-align: center; }
.cheers-service-stack__all { color: var(--_services-accent); font-size: 16px; font-weight: 750; text-underline-offset: 4px; }
.cheers-service-stack__all:focus-visible { outline: 2px solid var(--_services-focus); outline-offset: 4px; }
.cheers-service-stack .is-stacked .cheers-mobile-card-scroll__content { height: 100%; }
.cheers-service-stack .is-stacked .cheers-service-stack__card { min-height: 0; }
@media (max-width: 1120px) { .cheers-service-stack .cheers-mobile-card-scroll__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) {
  .cheers-service-stack { padding: 40px 16px 24px; }
  .cheers-service-stack .cheers-mobile-card-scroll__grid { grid-template-columns: 1fr; }
}
@media (prefers-reduced-motion: reduce) { .cheers-service-stack__image { transition: none; } .cheers-service-stack__card:hover .cheers-service-stack__image { transform: none; } }

/* library/components/visual-service-guide/visual-service-guide.css */
.cheers-visual-service-guide { color: var(--vsg-text, var(--cheers-component-text, #2b2b2b)); background: var(--cheers-component-background, #ffffff); padding: clamp(40px, 6vw, 80px) 24px; font-family: inherit; }
.cheers-visual-service-guide *, .cheers-visual-service-guide *::before, .cheers-visual-service-guide *::after { box-sizing: border-box; }
.cheers-visual-service-guide .vsg-inner { max-width: 1200px; margin-inline: auto; }
.cheers-visual-service-guide .vsg-header { max-width: 780px; margin-bottom: clamp(24px, 3vw, 38px); }
.cheers-visual-service-guide .vsg-eyebrow { margin: 0 0 12px; color: var(--vsg-accent, var(--cheers-component-accent, #555555)); font-size: 12px; font-weight: 750; line-height: 1.5; letter-spacing: .12em; text-transform: uppercase; }
.cheers-visual-service-guide h2 { margin: 0; color: var(--vsg-heading, var(--cheers-component-heading, #202020)); font-size: clamp(30px, 3.4vw, 46px); font-weight: 700; line-height: 1.12; letter-spacing: -.035em; text-wrap: balance; }
.cheers-visual-service-guide .vsg-intro { max-width: 66ch; margin: 18px 0 0; color: var(--vsg-muted, var(--cheers-component-muted, #666666)); font-size: 17px; line-height: 1.6; }
.cheers-visual-service-guide .vsg-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; align-items: start; }
.cheers-visual-service-guide .vsg-grid[data-topic-count="2"], .cheers-visual-service-guide .vsg-grid[data-topic-count="4"] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.cheers-visual-service-guide .vsg-topic { min-width: 0; border-radius: var(--vsg-radius, 16px); overflow: hidden; background: var(--vsg-surface, var(--cheers-component-surface, #f3f3f3)); border-color: var(--cheers-component-border, rgb(0 0 0 / 16%)); }
.cheers-visual-service-guide .vsg-image { display: block; width: 100%; height: auto; aspect-ratio: 16 / 10; object-fit: cover; }
.cheers-visual-service-guide .vsg-copy { padding: clamp(22px, 2.2vw, 30px); }
.cheers-visual-service-guide h3 { margin: 0 0 12px; color: var(--vsg-heading, var(--cheers-component-heading, #202020)); font-size: clamp(23px, 2vw, 28px); font-weight: 700; line-height: 1.18; letter-spacing: -.025em; text-wrap: balance; }
.cheers-visual-service-guide .vsg-summary { margin: 0 0 20px; font-size: 16px; line-height: 1.6; }
.cheers-visual-service-guide .vsg-details { margin: 0; }
.cheers-visual-service-guide .vsg-details > summary { display: flex; justify-content: space-between; align-items: center; gap: 16px; min-height: 44px; padding-block: 8px; color: var(--vsg-accent, var(--cheers-component-accent, #555555)); font-size: 15px; font-weight: 700; line-height: 1.4; cursor: pointer; list-style: none; }
.cheers-visual-service-guide .vsg-details > summary::-webkit-details-marker { display: none; }
.cheers-visual-service-guide .vsg-details > summary:hover > span:first-child { text-decoration: underline; text-underline-offset: .2em; }
.cheers-visual-service-guide .vsg-details > summary:focus-visible, .cheers-visual-service-guide a:focus-visible { outline: 3px solid var(--vsg-focus, var(--cheers-component-focus, #111111)); outline-offset: 4px; border-radius: 3px; }
.cheers-visual-service-guide .vsg-toggle { flex: 0 0 auto; font-size: 27px; font-weight: 400; line-height: 1; }
.cheers-visual-service-guide .vsg-details[open] .vsg-toggle { transform: rotate(45deg); }
.cheers-visual-service-guide .vsg-detail { padding-top: 12px; font-size: 16px; line-height: 1.65; overflow-wrap: anywhere; }
.cheers-visual-service-guide .vsg-detail > :first-child { margin-top: 0; }
.cheers-visual-service-guide .vsg-detail > :last-child { margin-bottom: 0; }
.cheers-visual-service-guide .vsg-detail p { margin-block: 0 16px; }
.cheers-visual-service-guide .vsg-detail ul, .cheers-visual-service-guide .vsg-detail ol { padding-left: 1.25em; }
.cheers-visual-service-guide .vsg-detail li + li { margin-top: 8px; }
.cheers-visual-service-guide .vsg-detail a { color: var(--vsg-accent, var(--cheers-component-accent, #555555)); text-decoration: underline; text-underline-offset: .18em; }
@media (max-width: 950px) { .cheers-visual-service-guide .vsg-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 640px) {
  .cheers-visual-service-guide { padding: 40px 20px; }
  .cheers-visual-service-guide .vsg-grid, .cheers-visual-service-guide .vsg-grid[data-topic-count] { grid-template-columns: minmax(0, 1fr); gap: 24px; }
  .cheers-visual-service-guide .vsg-copy { padding: 24px; }
}
@media print {
  .cheers-visual-service-guide .vsg-grid { display: block; }
  .cheers-visual-service-guide .vsg-topic { margin-bottom: 24px; break-inside: avoid; }
  .cheers-visual-service-guide .vsg-details::details-content { content-visibility: visible; display: block; }
  .cheers-visual-service-guide .vsg-detail { display: block; }
}

/* library/components/how-it-works/how-it-works.css */
[data-cheers-component="how-it-works"] {
  --_cheers-how-it-works-background: var(--cheers-how-it-works-background, var(--cheers-component-background, #ffffff));
  --_cheers-how-it-works-surface: var(--cheers-how-it-works-surface, var(--cheers-component-surface, #f3f3f3));
  --_cheers-how-it-works-text: var(--cheers-how-it-works-text, var(--cheers-component-text, #2b2b2b));
  --_cheers-how-it-works-muted: var(--cheers-how-it-works-muted, var(--cheers-component-muted, #666666));
  --_cheers-how-it-works-heading: var(--cheers-how-it-works-heading, var(--cheers-component-heading, #202020));
  --_cheers-how-it-works-accent: var(--cheers-how-it-works-accent, var(--cheers-component-accent, #555555));
  --_cheers-how-it-works-focus: var(--cheers-how-it-works-focus, var(--cheers-component-focus, #111111));
  --_cheers-how-it-works-border: var(--cheers-how-it-works-border, var(--cheers-component-border, rgb(0 0 0 / 16%)));
  --_cheers-how-it-works-font: var(--cheers-how-it-works-font, var(--font-body, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif));
  --_cheers-how-it-works-heading-font: var(--cheers-how-it-works-heading-font, var(--font-display, var(--_cheers-how-it-works-font)));
  --_cheers-how-it-works-max-width: var(--cheers-how-it-works-max-width, 1232px);
  --_cheers-how-it-works-node-size: var(--cheers-how-it-works-node-size, 80px);
  width: 100%;
  overflow: hidden;
  color: var(--_cheers-how-it-works-text);
  background: var(--_cheers-how-it-works-background);
  font-family: var(--_cheers-how-it-works-font);
}
.cheers-how-it-works, .cheers-how-it-works *, .cheers-how-it-works *::before, .cheers-how-it-works *::after { box-sizing: border-box; }
.cheers-how-it-works__inner { width: min(100%, var(--_cheers-how-it-works-max-width)); margin-inline: auto; padding: 80px 24px; }
.cheers-how-it-works__header { width: min(100%, 780px); margin-inline: auto; text-align: center; }
.cheers-how-it-works__eyebrow, .cheers-how-it-works__description, .cheers-how-it-works__step h3, .cheers-how-it-works__step p { margin: 0; }
.cheers-how-it-works__eyebrow { color: var(--_cheers-how-it-works-muted); font-size: 0.78rem; font-weight: 750; letter-spacing: 0.08em; line-height: 1.3; text-transform: uppercase; }
.cheers-how-it-works__header h2 { margin: 12px 0 0; color: var(--_cheers-how-it-works-heading); font-family: var(--_cheers-how-it-works-heading-font); font-size: clamp(2rem, 2.4vw, 2.5rem); font-weight: 750; letter-spacing: -0.03em; line-height: 1.15; }
.cheers-how-it-works__heading-accent { color: var(--_cheers-how-it-works-accent); }
.cheers-how-it-works__description { margin-top: 12px; color: var(--_cheers-how-it-works-muted); font-size: 1rem; line-height: 1.55; }
.cheers-how-it-works__steps { position: relative; display: grid; grid-template-columns: repeat(var(--cheers-how-it-works-step-count), minmax(0, 1fr)); gap: 0; width: 100%; margin: 52px 0 0; padding: 0; list-style: none; }
.cheers-how-it-works__steps::before { position: absolute; z-index: 0; top: calc(var(--_cheers-how-it-works-node-size) / 2 - 1px); right: calc(50% / var(--cheers-how-it-works-step-count)); left: calc(50% / var(--cheers-how-it-works-step-count)); height: 2px; background: var(--_cheers-how-it-works-accent); content: ""; }
.cheers-how-it-works__step { position: relative; z-index: 1; display: grid; min-width: 0; justify-items: center; align-content: start; gap: 16px; text-align: center; }
.cheers-how-it-works__visual { display: grid; width: var(--_cheers-how-it-works-node-size); height: var(--_cheers-how-it-works-node-size); flex: none; overflow: hidden; place-items: center; border: 1px solid var(--_cheers-how-it-works-border); border-radius: 50%; color: var(--_cheers-how-it-works-heading); background: var(--_cheers-how-it-works-surface); }
.cheers-how-it-works__visual--image img { display: block; width: 100%; height: 100%; object-fit: cover; }
.cheers-how-it-works__visual--number { font-family: var(--_cheers-how-it-works-heading-font); font-size: clamp(1.5rem, 2.6vw, 2.2rem); font-weight: 800; letter-spacing: -0.04em; }
.cheers-how-it-works__step-copy { max-width: 160px; }
.cheers-how-it-works__step h3 { color: var(--_cheers-how-it-works-heading); font-size: 1rem; font-weight: 500; line-height: 1.4; }
.cheers-how-it-works__step p { margin-top: 8px; color: var(--_cheers-how-it-works-muted); font-size: 0.88rem; line-height: 1.5; }
@media (max-width: 760px) {
  [data-cheers-component="how-it-works"] { --_cheers-how-it-works-node-size: var(--cheers-how-it-works-node-size, 80px); }
  .cheers-how-it-works__inner { padding: 56px 20px 64px; }
  .cheers-how-it-works__header { text-align: center; }
  .cheers-how-it-works__header h2 { margin-top: 12px; font-size: 2rem; }
  .cheers-how-it-works__description { margin-top: 12px; }
  .cheers-how-it-works__steps { grid-template-columns: none; grid-auto-columns: 140px; grid-auto-flow: column; gap: 0; width: calc(100% + 40px); margin: 32px -20px 0; padding: 0 10px 4px; overflow-x: auto; overscroll-behavior-inline: contain; scroll-padding-inline: 10px; scroll-snap-type: inline proximity; scrollbar-width: none; }
  .cheers-how-it-works__steps::before { display: none; }
  .cheers-how-it-works__steps::-webkit-scrollbar { display: none; }
  .cheers-how-it-works__step { grid-template-columns: minmax(0, 1fr); justify-items: center; align-items: start; gap: 16px; text-align: center; scroll-snap-align: start; }
  .cheers-how-it-works__step:not(:last-child)::after { position: absolute; z-index: -1; top: calc(var(--_cheers-how-it-works-node-size) / 2 - 1px); left: 50%; width: 140px; height: 2px; background: var(--_cheers-how-it-works-accent); content: ""; }
  .cheers-how-it-works__visual { position: relative; z-index: 1; }
  .cheers-how-it-works__step-copy { max-width: 120px; }
}
@media (prefers-reduced-motion: reduce) {
  .cheers-how-it-works *, .cheers-how-it-works *::before, .cheers-how-it-works *::after { scroll-behavior: auto !important; transition-duration: 0.01ms !important; }
}

/* library/components/featured-reviews/featured-reviews.css */
.cheers-reviews {
  --_cheers-reviews-background: var(--cheers-reviews-background, var(--cheers-component-background, #ffffff));
  --_cheers-reviews-card-background: var(--cheers-reviews-card-background, var(--cheers-component-surface, #f3f3f3));
  --_cheers-reviews-card-hover: var(--cheers-reviews-card-hover, var(--cheers-component-surface-hover, #e9e9e9));
  --_cheers-reviews-text: var(--cheers-reviews-text, var(--cheers-component-text, #2b2b2b));
  --_cheers-reviews-muted: var(--cheers-reviews-muted, var(--cheers-component-muted, #666666));
  --_cheers-reviews-strong: var(--cheers-reviews-strong, var(--cheers-component-heading, #202020));
  --_cheers-reviews-accent: var(--cheers-reviews-accent, var(--cheers-component-accent, #555555));
  --_cheers-reviews-focus: var(--cheers-reviews-focus, var(--cheers-component-focus, #111111));
  --_cheers-reviews-stars: var(--cheers-reviews-stars, var(--cheers-component-rating, #f2aa00));
  --_cheers-reviews-border: var(--cheers-reviews-border, var(--cheers-component-border, rgb(0 0 0 / 16%)));
  --_cheers-reviews-font: var(--cheers-reviews-font, var(--font-body, "Rubik", system-ui, -apple-system, "Segoe UI", sans-serif));
  --_cheers-reviews-heading-font: var(--cheers-reviews-heading-font, var(--font-display, "Rubik", system-ui, -apple-system, "Segoe UI", sans-serif));
  --_cheers-reviews-max-width: var(--cheers-reviews-max-width, var(--maxw, 1200px));
  --_cheers-reviews-section-padding: var(--cheers-reviews-section-padding, clamp(56px, 8vw, 104px));
  --_cheers-reviews-inline-padding: var(--cheers-reviews-inline-padding, 24px);
  --_cheers-reviews-card-radius: var(--cheers-reviews-card-radius, 8px);
  --_cheers-reviews-wordmark-filter: var(--cheers-reviews-wordmark-filter, var(--cheers-component-logo-filter, none));

  scroll-margin-top: 82px;
  overflow: hidden;
  padding: var(--_cheers-reviews-section-padding) 0;
  color: var(--_cheers-reviews-text);
  background: var(--_cheers-reviews-background);
  font-family: var(--_cheers-reviews-font);
}

.cheers-reviews, .cheers-reviews *, .cheers-reviews *::before, .cheers-reviews *::after { box-sizing: border-box; }
.cheers-reviews > .wrap { position: relative; width: 100%; max-width: var(--_cheers-reviews-max-width); margin: 0 auto; padding: 0 var(--_cheers-reviews-inline-padding); }
.cheers-reviews a { color: inherit; text-decoration: none; }
.cheers-reviews .cheers-reviews-header { display: flex; align-items: flex-end; justify-content: space-between; gap: 36px; padding-bottom: 24px; border-bottom: 1px solid var(--_cheers-reviews-border); }
.cheers-reviews .cheers-reviews-heading-copy { min-width: 0; }
.cheers-reviews .cheers-reviews-header-aside { display: flex; align-items: flex-end; flex: 0 0 auto; flex-direction: column; }
.cheers-reviews .eyebrow { color: var(--_cheers-reviews-accent); font-family: var(--_cheers-reviews-font); font-size: 0.78rem; font-weight: 700; letter-spacing: 0.18em; text-transform: uppercase; }
.cheers-reviews .cheers-reviews-header h2 { max-width: 760px; margin: 0.32em 0 0; color: var(--_cheers-reviews-strong); font-family: var(--_cheers-reviews-heading-font); font-size: clamp(2.05rem, 4.4vw, 3.15rem); font-weight: 800; letter-spacing: -0.025em; line-height: 1.02; }
.cheers-reviews .cheers-review-selection { max-width: 720px; margin: 13px 0 0; color: var(--_cheers-reviews-muted); font-size: 0.9rem; line-height: 1.5; }
.cheers-reviews .cheers-review-selection strong, .cheers-reviews .cheers-review-selection span { display: block; }
.cheers-reviews .cheers-review-selection strong { color: var(--_cheers-reviews-text); }
.cheers-reviews .cheers-review-summary { display: grid; grid-template-columns: auto auto; align-items: center; column-gap: 12px; flex: 0 0 auto; text-align: right; }
.cheers-reviews .cheers-review-summary-rating { color: var(--_cheers-reviews-strong); font-family: var(--_cheers-reviews-heading-font); font-size: 3rem; font-weight: 800; letter-spacing: -0.045em; line-height: 1; }
.cheers-reviews .cheers-review-summary .stars { font-size: 1.12rem; letter-spacing: 0.08em; }
.cheers-reviews .cheers-review-summary-count { grid-column: 1 / -1; margin-top: 5px; color: var(--_cheers-reviews-muted); font-size: 0.8rem; }
.cheers-reviews .cheers-review-scroll-instructions { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); border: 0; white-space: nowrap; }
.cheers-reviews .review-ticker-frame { position: relative; width: 100%; }
.cheers-reviews .review-ticker { width: 100%; overflow-x: auto; padding: 24px 0 18px; overscroll-behavior-inline: contain; scrollbar-color: transparent transparent; scrollbar-width: thin; touch-action: pan-x pan-y; -webkit-overflow-scrolling: touch; }
.cheers-reviews .review-ticker:focus-visible { outline: 2px solid var(--_cheers-reviews-focus); outline-offset: 2px; }
.cheers-reviews .review-ticker::-webkit-scrollbar { height: 8px; }
.cheers-reviews .review-ticker::-webkit-scrollbar-track { background: transparent; }
.cheers-reviews .review-ticker::-webkit-scrollbar-thumb { border: 2px solid transparent; border-radius: 999px; background: transparent; background-clip: padding-box; }
.cheers-reviews .review-ticker:hover, .cheers-reviews .review-ticker:focus-visible, .cheers-reviews.is-manual-scrolling .review-ticker { scrollbar-color: var(--_cheers-reviews-border) transparent; }
.cheers-reviews .review-ticker:hover::-webkit-scrollbar-thumb, .cheers-reviews .review-ticker:focus-visible::-webkit-scrollbar-thumb, .cheers-reviews.is-manual-scrolling .review-ticker::-webkit-scrollbar-thumb { background-color: var(--_cheers-reviews-border); }
.cheers-reviews .review-ticker-frame::before, .cheers-reviews .review-ticker-frame::after { position: absolute; z-index: 2; top: 0; bottom: 0; width: 48px; background: var(--_cheers-reviews-background); content: ""; -webkit-mask-image: linear-gradient(90deg, #000, transparent); mask-image: linear-gradient(90deg, #000, transparent); pointer-events: none; }
.cheers-reviews .review-ticker-frame::before { left: 0; }
.cheers-reviews .review-ticker-frame::after { right: 0; transform: rotate(180deg); }
.cheers-reviews.is-enhanced .review-ticker { overflow-x: auto; cursor: grab; }
.cheers-reviews .review-track, .cheers-reviews .cheers-review-group { display: flex; width: max-content; gap: 16px; }
.cheers-reviews .review-track { animation: none; will-change: transform; }
.cheers-reviews.is-enhanced .review-track { animation: cheers-featured-review-scroll var(--review-loop-duration, 114s) linear infinite; animation-delay: var(--review-loop-delay, 0s); }
.cheers-reviews.is-manual-scrolling .review-track { animation: none; transform: none; will-change: auto; }
.cheers-reviews.is-review-dragging .review-ticker { cursor: grabbing; user-select: none; }
.cheers-reviews.is-review-dragging .cheers-review-card { pointer-events: none; }
.cheers-reviews .cheers-review-card { display: flex; flex: 0 0 clamp(300px, 31vw, 390px); height: 283px; min-height: 283px; max-height: 283px; flex-direction: column; padding: 28px; border: 1px solid var(--_cheers-reviews-border); border-radius: var(--_cheers-reviews-card-radius); color: var(--_cheers-reviews-text); background: var(--_cheers-reviews-card-background); text-decoration: none; transition: background 0.16s ease, transform 0.16s ease; }
.cheers-reviews .cheers-review-card:hover { color: var(--_cheers-reviews-text); background: var(--_cheers-reviews-card-hover); transform: translateY(-3px); }
.cheers-reviews .cheers-review-card:focus-visible { outline: 2px solid var(--_cheers-reviews-focus); outline-offset: -2px; }
.cheers-reviews .stars { color: var(--_cheers-reviews-stars); font-size: 1rem; letter-spacing: 0.02em; }
.cheers-reviews .cheers-review-card > .stars { margin-top: 9px; }
.cheers-reviews .cheers-review-card blockquote { --_cheers-review-line-clamp: 5; flex: 0 0 auto; max-height: 8.25em; margin: 12px 0 0; overflow: hidden; }
.cheers-reviews .cheers-review-card blockquote p { display: -webkit-box; margin: 0; overflow: hidden; color: var(--_cheers-reviews-text); font-size: 1rem; line-height: 1.65; text-overflow: ellipsis; -webkit-box-orient: vertical; -webkit-line-clamp: var(--_cheers-review-line-clamp); line-clamp: var(--_cheers-review-line-clamp); }
.cheers-reviews .review-person { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 12px; }
.cheers-reviews .cheers-review-identity { min-width: 0; text-align: left; }
.cheers-reviews .review-person strong, .cheers-reviews .review-person small { display: block; }
.cheers-reviews .review-person strong { overflow: hidden; color: var(--_cheers-reviews-strong); font-size: 0.94rem; text-overflow: ellipsis; white-space: nowrap; }
.cheers-reviews .review-person small { overflow: hidden; color: var(--_cheers-reviews-muted); font-size: 0.75rem; text-overflow: ellipsis; white-space: nowrap; }
.cheers-reviews .cheers-review-google { width: 18px; height: 18px; flex: 0 0 auto; }
.cheers-reviews .cheers-reviews-footer { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding-top: 18px; font-size: 0.9rem; }
.cheers-reviews .cheers-review-sources > a, .cheers-reviews .cheers-review-sources summary { display: inline-flex; align-items: center; color: var(--_cheers-reviews-accent); font-weight: 700; transition: color 0.16s ease; }
.cheers-reviews .cheers-review-sources > a:hover, .cheers-reviews .cheers-review-sources summary:hover { color: var(--_cheers-reviews-strong); }
.cheers-reviews .cheers-review-sources summary { cursor: pointer; }
.cheers-reviews .cheers-review-sources ul { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7px 24px; margin: 8px 0 0; padding-left: 18px; }
.cheers-reviews .cheers-review-freshness { margin: 10px 0 0; color: var(--_cheers-reviews-muted); font-size: 0.75rem; line-height: 1.5; }
.cheers-reviews .cheers-review-attribution { display: inline-flex; align-items: center; gap: 8px; flex: 0 0 auto; color: var(--_cheers-reviews-muted); font-size: 0.8rem; font-weight: 600; text-decoration: none; }
.cheers-reviews .cheers-review-attribution img { width: 78px; height: auto; filter: var(--_cheers-reviews-wordmark-filter); opacity: 0.78; }
.cheers-reviews-unavailable .cheers-reviews-footer { margin-top: 22px; border-top: 1px solid var(--_cheers-reviews-border); }
@keyframes cheers-featured-review-scroll { from { transform: translate3d(0, 0, 0); } to { transform: translate3d(var(--review-loop-offset, 0), 0, 0); } }

@media (max-width: 720px) {
  .cheers-reviews .cheers-reviews-header { align-items: flex-start; flex-direction: column; gap: 22px; }
  .cheers-reviews .cheers-review-summary { text-align: left; }
  .cheers-reviews .cheers-reviews-header-aside { width: 100%; align-items: flex-end; flex-direction: row; justify-content: space-between; }
  .cheers-reviews .cheers-review-card { flex-basis: min(82vw, 320px); height: 301px; min-height: 301px; max-height: 301px; padding: 24px; }
  .cheers-reviews .cheers-review-card blockquote { --_cheers-review-line-clamp: 6; max-height: 9.9em; }
  .cheers-reviews .review-ticker-frame::before, .cheers-reviews .review-ticker-frame::after { width: 24px; }
  .cheers-reviews .cheers-reviews-footer { align-items: flex-start; flex-direction: column; }
  .cheers-reviews .cheers-review-sources ul { grid-template-columns: 1fr; }
  .cheers-reviews .cheers-review-attribution { align-self: flex-start; }
}
@media (prefers-reduced-motion: reduce) {
  .cheers-reviews .review-track { animation: none !important; }
  .cheers-reviews.is-enhanced .review-ticker { overflow-x: auto; }
}

/* Shared compact review contract: Elite Rooter dimensions + in-card reading.
   Added only by the runtime: no-JS HTML retains the complete readable quote. */
[data-cheers-review-runtime] :is(.cheers-review-card, .elite-cheers-review-card)[data-cheers-review-index].is-compact-review { box-sizing: border-box; display: flex; flex: 0 0 var(--cheers-review-card-width, clamp(250px, 25vw, 300px)); width: var(--cheers-review-card-width, clamp(250px, 25vw, 300px)); height: var(--cheers-review-card-height, 260px); min-height: 0; max-height: var(--cheers-review-card-height, 260px); flex-direction: column; gap: 0; padding: 18px; overflow: hidden; }
[data-cheers-review-runtime] :is(.cheers-review-card, .elite-cheers-review-card)[data-cheers-review-index].is-compact-review > :not(.cheers-review-quote-scroll) { flex-shrink: 0; }
[data-cheers-review-runtime] :is(.cheers-review-card, .elite-cheers-review-card)[data-cheers-review-index].is-compact-review .cheers-review-quote-scroll { display: block; flex: 1 1 0; min-height: 0; max-height: none; margin: 10px 0 0; padding: 0 6px 0 0; border: 0; overflow-x: hidden; overflow-y: auto; overscroll-behavior-y: auto; scrollbar-width: thin; scrollbar-color: var(--_cheers-reviews-muted, var(--cheers-muted, #666)) transparent; scrollbar-gutter: stable; touch-action: pan-x pan-y pinch-zoom; cursor: auto; color: inherit; font-size: 14px; font-style: normal; line-height: 1.5; overflow-wrap: anywhere; -webkit-line-clamp: unset; line-clamp: unset; -webkit-mask-image: none; mask-image: none; }
[data-cheers-review-runtime] [data-cheers-review-index] .cheers-review-quote-scroll p { display: block; margin: 0; max-height: none; overflow: visible; font-size: 14px; line-height: 1.5; text-overflow: clip; -webkit-line-clamp: unset; line-clamp: unset; -webkit-mask-image: none; mask-image: none; }
[data-cheers-review-runtime] [data-cheers-review-index] .cheers-review-quote-scroll .rock-review-title { margin: 0 0 8px; }
[data-cheers-review-runtime] .is-compact-review .cheers-review-source-link { display: block; min-width: 0; color: inherit; text-decoration: none; }
[data-cheers-review-runtime] .is-compact-review .cheers-review-source-link:hover { text-decoration: underline; }
[data-cheers-review-runtime] .is-compact-review .cheers-review-reading-hint { margin: 4px 0 0; color: var(--_cheers-reviews-muted, var(--cheers-muted, #666)); font-size: 11px; line-height: 1.25; }
[data-cheers-review-runtime] .is-compact-review .cheers-review-reading-hint[hidden] { display: none; }
[data-cheers-review-runtime] .cheers-review-quote-scroll:focus-visible, [data-cheers-review-runtime] .cheers-review-source-link:focus-visible { outline: 2px solid var(--_cheers-reviews-focus, var(--cheers-blue, currentColor)); outline-offset: -2px; }
[data-cheers-review-runtime] [data-cheers-review-scroller] { overflow-x: auto; overscroll-behavior-x: contain; touch-action: pan-x pan-y pinch-zoom; }
[data-cheers-review-runtime] [data-cheers-review-track], [data-cheers-review-runtime] :is(.cheers-review-group, .elite-cheers-reviews__group) { gap: 16px; }
[data-cheers-review-runtime].is-enhanced [data-cheers-review-track] { animation: cheers-compact-review-scroll var(--review-loop-duration, 114s) linear infinite; animation-delay: var(--review-loop-delay, 0s); }
[data-cheers-review-runtime].is-manual-scrolling [data-cheers-review-track] { animation: none; transform: none; will-change: auto; }
[data-cheers-review-runtime].is-motion-paused [data-cheers-review-track] { animation-play-state: paused; }
[data-cheers-review-runtime].is-manual-scrolling .review-ticker-frame::before, [data-cheers-review-runtime].is-manual-scrolling .review-ticker-frame::after { opacity: 0; }
@keyframes cheers-compact-review-scroll { from { transform: translate3d(0, 0, 0); } to { transform: translate3d(var(--review-loop-offset, 0px), 0, 0); } }
@media (max-width: 720px) {
  [data-cheers-review-runtime] :is(.cheers-review-card, .elite-cheers-review-card)[data-cheers-review-index].is-compact-review { flex-basis: var(--cheers-review-card-mobile-width, min(72vw, 260px)); width: var(--cheers-review-card-mobile-width, min(72vw, 260px)); }
  [data-cheers-review-runtime].is-enhanced [data-cheers-review-track] { animation-duration: calc(var(--review-loop-duration, 114s) / 4); animation-delay: calc(var(--review-loop-delay, 0s) / 4); }
  [data-cheers-review-runtime].is-manual-scrolling [data-cheers-review-track] { animation: none; }
}
@media (prefers-reduced-motion: reduce) { [data-cheers-review-runtime].is-enhanced [data-cheers-review-track] { animation: none; transform: none; } }

/* With scripting unavailable, retain an expanded, readable document. */
:is([data-cheers-component="featured-reviews"], [data-cheers-review-widget], [data-market-review-widget]):not([data-cheers-review-runtime]) :is(.cheers-review-card, .elite-cheers-review-card) { height: auto; max-height: none; }
:is([data-cheers-component="featured-reviews"], [data-cheers-review-widget], [data-market-review-widget]):not([data-cheers-review-runtime]) :is(blockquote, .cheers-review-card p, .elite-cheers-review-card p) { display: block; max-height: none; overflow: visible; -webkit-line-clamp: unset; line-clamp: unset; -webkit-mask-image: none; mask-image: none; }

/* library/components/comparison/comparison.css */
[data-cheers-component="comparison"] {
  --_cheers-comparison-background: var(--cheers-comparison-background, var(--cheers-component-background, #ffffff));
  --_cheers-comparison-surface: var(--cheers-comparison-surface, var(--cheers-component-surface, #f3f3f3));
  --_cheers-comparison-surface-hover: var(--cheers-comparison-surface-hover, var(--cheers-component-surface-hover, #e9e9e9));
  --_cheers-comparison-text: var(--cheers-comparison-text, var(--cheers-component-text, #2b2b2b));
  --_cheers-comparison-muted: var(--cheers-comparison-muted, var(--cheers-component-muted, #666666));
  --_cheers-comparison-heading: var(--cheers-comparison-heading, var(--cheers-component-heading, #202020));
  --_cheers-comparison-accent: var(--cheers-comparison-accent, var(--cheers-component-accent, #555555));
  --_cheers-comparison-focus: var(--cheers-comparison-focus, var(--cheers-component-focus, #111111));
  --_cheers-comparison-border: var(--cheers-comparison-border, var(--cheers-component-border, rgb(0 0 0 / 16%)));
  --_cheers-comparison-company-header: var(--cheers-comparison-company-header, var(--_cheers-comparison-accent));
  --_cheers-comparison-company-surface: var(--cheers-comparison-company-surface, var(--_cheers-comparison-surface));
  --_cheers-comparison-competitor-header: var(--cheers-comparison-competitor-header, var(--_cheers-comparison-heading));
  --_cheers-comparison-header-text: var(--cheers-comparison-header-text, #ffffff);
  --_cheers-comparison-mark: var(--cheers-comparison-mark, var(--_cheers-comparison-accent));
  --_cheers-comparison-action-text: var(--cheers-comparison-action-text, #ffffff);
  --_cheers-comparison-max-width: var(--cheers-comparison-max-width, 1200px);
  --_cheers-comparison-radius: var(--cheers-comparison-radius, 24px);
  --_cheers-comparison-font: var(--cheers-comparison-font, var(--font-body, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif));
  --_cheers-comparison-heading-font: var(--cheers-comparison-heading-font, var(--font-display, var(--_cheers-comparison-font)));
  width: 100%;
  padding: clamp(72px, 8vw, 108px) 24px;
  color: var(--_cheers-comparison-text);
  background: var(--_cheers-comparison-background);
  font-family: var(--_cheers-comparison-font);
}
.cheers-comparison, .cheers-comparison *, .cheers-comparison *::before, .cheers-comparison *::after { box-sizing: border-box; }
.cheers-comparison__inner { width: min(100%, var(--_cheers-comparison-max-width)); margin: 0 auto; }
.cheers-comparison__eyebrow { margin: 0 0 12px; color: var(--_cheers-comparison-accent); font-size: 0.78rem; font-weight: 800; letter-spacing: 0.14em; text-transform: uppercase; }
.cheers-comparison h2 { margin: 0; color: var(--_cheers-comparison-heading); font-family: var(--_cheers-comparison-heading-font); font-size: clamp(2.35rem, 5.2vw, 4.75rem); font-weight: 850; letter-spacing: -0.045em; line-height: 0.98; }
.cheers-comparison__table-wrap { overflow: hidden; margin-top: clamp(38px, 5vw, 56px); border: 1px solid var(--_cheers-comparison-border); border-radius: var(--_cheers-comparison-radius); }
.cheers-comparison__table { width: 100%; margin: 0; border: 0; border-spacing: 0; border-collapse: separate; table-layout: fixed; color: var(--_cheers-comparison-heading); }
.cheers-comparison__table th, .cheers-comparison__table td { padding: clamp(20px, 2.4vw, 30px) clamp(16px, 2.6vw, 34px); border: 0; border-bottom: 1px solid var(--_cheers-comparison-border); font-size: clamp(0.875rem, 1.45vw, 1.125rem); line-height: 1.35; vertical-align: middle; }
.cheers-comparison__table thead th { padding-top: 22px; padding-bottom: 22px; color: var(--_cheers-comparison-header-text); font-family: var(--_cheers-comparison-heading-font); font-size: clamp(1.2rem, 2vw, 1.7rem); font-weight: 800; text-align: center; }
.cheers-comparison__table thead th:first-child { width: 42%; background: var(--_cheers-comparison-surface); }
.cheers-comparison__table .cheers-comparison__company { background: var(--_cheers-comparison-company-surface); }
.cheers-comparison__table thead .cheers-comparison__company { color: var(--_cheers-comparison-header-text); background: var(--_cheers-comparison-company-header); }
.cheers-comparison__table .cheers-comparison__competitor { background: var(--_cheers-comparison-competitor-header); }
.cheers-comparison__table tbody th { color: var(--_cheers-comparison-heading); background: var(--_cheers-comparison-surface); font-weight: 700; text-align: left; }
.cheers-comparison__table tbody td { color: var(--_cheers-comparison-muted); background: var(--_cheers-comparison-background); text-align: center; }
.cheers-comparison__table tbody td.cheers-comparison__cell--company { color: var(--_cheers-comparison-heading); background: var(--_cheers-comparison-company-surface); font-weight: 700; }
.cheers-comparison__mark { display: inline-block; color: var(--_cheers-comparison-mark); font-size: 1.35em; font-weight: 800; line-height: 1; }
.cheers-comparison__cell--not-included .cheers-comparison__mark, .cheers-comparison__cell--neutral .cheers-comparison__mark, .cheers-comparison__cell--competitor.cheers-comparison__cell--included .cheers-comparison__mark { color: var(--_cheers-comparison-muted); }
.cheers-comparison__cell--not-included .cheers-comparison__mark { font-size: 1.45em; }
.cheers-comparison__detail { margin-left: 8px; }
.cheers-comparison__table tbody tr:last-child > * { border-bottom: 0; }
.cheers-comparison__action { margin: 32px 0 0; text-align: center; }
.cheers-comparison__action a { display: inline-flex; min-height: 48px; align-items: center; justify-content: center; padding: 13px 24px; border: 1px solid var(--_cheers-comparison-accent); border-radius: 999px; color: var(--_cheers-comparison-action-text); background: var(--_cheers-comparison-accent); font-weight: 800; line-height: 1.2; text-decoration: none; transition: color 0.16s ease, background 0.16s ease, transform 0.16s ease; }
.cheers-comparison__action a:hover { color: var(--_cheers-comparison-heading); background: var(--_cheers-comparison-surface-hover); transform: translateY(-1px); }
.cheers-comparison__action a:focus-visible { outline: 3px solid var(--_cheers-comparison-focus); outline-offset: 3px; }
.cheers-comparison__visually-hidden { position: absolute !important; overflow: hidden !important; width: 1px !important; height: 1px !important; padding: 0 !important; border: 0 !important; margin: -1px !important; clip: rect(0 0 0 0) !important; clip-path: inset(50%) !important; white-space: nowrap !important; }
@media (max-width: 767px) {
  [data-cheers-component="comparison"] { padding: 64px 16px; }
  .cheers-comparison h2 { font-size: clamp(2.25rem, 12vw, 3.25rem); }
  .cheers-comparison__table-wrap { border-radius: 18px; }
  .cheers-comparison__table th, .cheers-comparison__table td { padding: 16px 10px; font-size: 0.8125rem; }
  .cheers-comparison__table thead th { padding: 16px 8px; font-size: 1.0625rem; }
  .cheers-comparison__table thead th:first-child { width: 40%; }
  .cheers-comparison__mark, .cheers-comparison__detail { display: block; }
  .cheers-comparison__detail { margin: 3px 0 0; }
}
@media (prefers-reduced-motion: reduce) { .cheers-comparison__action a { transition: none; } }

/* library/components/landmark/landmark.css */
[data-cheers-component="landmark"] {
  --_landmark-background: var(--cheers-landmark-background, var(--cheers-component-background, #ffffff));
  --_landmark-text: var(--cheers-landmark-text, var(--cheers-component-text, #2b2b2b));
  --_landmark-heading: var(--cheers-landmark-heading, var(--cheers-component-heading, #202020));
  --_landmark-muted: var(--cheers-landmark-muted, var(--cheers-component-muted, #666666));
  --_landmark-accent: var(--cheers-landmark-accent, var(--cheers-component-accent, #555555));
  --_landmark-focus: var(--cheers-landmark-focus, var(--cheers-component-focus, #111111));
  --_landmark-border: var(--cheers-landmark-border, var(--cheers-component-border, rgb(0 0 0 / 16%)));
  --_landmark-surface: var(--cheers-landmark-surface, var(--cheers-component-surface, #f3f3f3));
  padding: var(--cheers-landmark-padding, clamp(48px, 7vw, 96px) 24px);
  background: var(--_landmark-background);
  color: var(--_landmark-text);
  font-family: var(--cheers-landmark-font, var(--font-body, inherit));
}
.cheers-landmark, .cheers-landmark * { box-sizing: border-box; }
.cheers-landmark__inner { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: center; gap: var(--cheers-landmark-gap, clamp(32px, 5vw, 72px)); max-width: var(--cheers-landmark-max-width, 1200px); margin-inline: auto; }
.cheers-landmark__copy { min-width: 0; overflow-wrap: anywhere; }
.cheers-landmark__eyebrow { margin: 0 0 16px; color: var(--_landmark-accent); font-size: .78rem; font-weight: 750; letter-spacing: .12em; text-transform: uppercase; }
.cheers-landmark h2 { margin: 0 0 24px; color: var(--_landmark-heading); font-family: var(--cheers-landmark-heading-font, var(--font-display, inherit)); font-size: var(--cheers-landmark-heading-size, clamp(2rem, 3.8vw, 3.5rem)); font-weight: var(--cheers-landmark-heading-weight, 750); letter-spacing: -.035em; line-height: 1.1; text-wrap: balance; }
.cheers-landmark__description, .cheers-landmark__history, .cheers-landmark__closing { margin: 0 0 20px; font-size: var(--cheers-landmark-body-size, clamp(1rem, 1.35vw, 1.125rem)); line-height: 1.65; }
.cheers-landmark__closing { margin-bottom: 0; color: var(--_landmark-heading); font-weight: 600; }
.cheers-landmark__figure { min-width: 0; margin: 0; }
.cheers-landmark__image, .cheers-landmark__placeholder { display: block; width: 100%; height: auto; aspect-ratio: var(--cheers-landmark-image-ratio, 5 / 4); border-radius: var(--cheers-landmark-radius, var(--cheers-component-radius, 16px)); border: var(--cheers-landmark-border-width, 0px) solid var(--_landmark-border); background: var(--_landmark-surface); }
.cheers-landmark__image { object-fit: cover; object-position: var(--cheers-landmark-image-position, center); }
.cheers-landmark__placeholder { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 12px; padding: 32px; color: var(--_landmark-muted); text-align: center; }
.cheers-landmark__placeholder svg { margin-bottom: 12px; max-width: 100%; }
.cheers-landmark__placeholder strong { color: var(--_landmark-heading); font-size: 1.25rem; }
.cheers-landmark__figure figcaption { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px 16px; margin-top: 12px; color: var(--_landmark-muted); font-size: .75rem; line-height: 1.5; overflow-wrap: anywhere; }
.cheers-landmark__figure a { color: inherit; text-underline-offset: 3px; }
.cheers-landmark__figure a:focus-visible { outline: 2px solid var(--_landmark-focus); outline-offset: 4px; }
.cheers-landmark[data-image-position="left"] .cheers-landmark__figure { grid-column: 1; grid-row: 1; }
.cheers-landmark[data-image-position="left"] .cheers-landmark__copy { grid-column: 2; grid-row: 1; }
@media (max-width: 767px) {
  .cheers-landmark__inner { grid-template-columns: minmax(0, 1fr); }
  .cheers-landmark[data-image-position] .cheers-landmark__copy, .cheers-landmark[data-image-position] .cheers-landmark__figure { grid-column: auto; grid-row: auto; }
  .cheers-landmark[data-image-position] .cheers-landmark__figure { grid-row: 1; }
}

/* library/components/service-area-map/service-area-map.css */
[data-cheers-component="service-area-map"] {
  --_cheers-service-area-map-background: var(--cheers-service-area-map-background, var(--cheers-component-background, #ffffff));
  --_cheers-service-area-map-surface: var(--cheers-service-area-map-surface, var(--cheers-component-surface, #f3f3f3));
  --_cheers-service-area-map-surface-hover: var(--cheers-service-area-map-surface-hover, var(--cheers-component-surface-hover, #e9e9e9));
  --_cheers-service-area-map-text: var(--cheers-service-area-map-text, var(--cheers-component-text, #2b2b2b));
  --_cheers-service-area-map-muted: var(--cheers-service-area-map-muted, var(--cheers-component-muted, #666666));
  --_cheers-service-area-map-heading: var(--cheers-service-area-map-heading, var(--cheers-component-heading, #202020));
  --_cheers-service-area-map-accent: var(--cheers-service-area-map-accent, var(--cheers-component-accent, #555555));
  --_cheers-service-area-map-focus: var(--cheers-service-area-map-focus, var(--cheers-component-focus, #111111));
  --_cheers-service-area-map-border: var(--cheers-service-area-map-border, var(--cheers-component-border, rgb(0 0 0 / 16%)));
  --_cheers-service-area-map-font: var(--cheers-service-area-map-font, var(--font-body, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif));
  --_cheers-service-area-map-heading-font: var(--cheers-service-area-map-heading-font, var(--font-display, var(--_cheers-service-area-map-font)));
  --_cheers-service-area-map-max-width: var(--cheers-service-area-map-max-width, 1200px);
  width: 100%;
  overflow: hidden;
  padding: clamp(74px, 8vw, 102px) 0;
  color: var(--_cheers-service-area-map-text);
  background: var(--_cheers-service-area-map-background);
  font-family: var(--_cheers-service-area-map-font);
}
.cheers-service-area-map, .cheers-service-area-map *, .cheers-service-area-map *::before, .cheers-service-area-map *::after { box-sizing: border-box; }
.cheers-service-area-map__inner { display: grid; grid-template-columns: minmax(390px, .78fr) minmax(0, 1.22fr); align-items: stretch; gap: 0; width: min(var(--_cheers-service-area-map-max-width), calc(100% - 48px)); margin-inline: auto; }
.cheers-service-area-map__content { grid-column: 1; grid-row: 1; min-width: 0; padding: 32px clamp(38px, 5vw, 66px) 0 0; }
.cheers-service-area-map__eyebrow { display: block; margin: 0 0 18px; color: var(--_cheers-service-area-map-accent); font-family: var(--_cheers-service-area-map-heading-font); font-size: 12px; font-weight: 800; letter-spacing: .13em; line-height: 1.2; text-transform: uppercase; }
.cheers-service-area-map h2 { margin: 0 0 30px; color: var(--_cheers-service-area-map-heading); font-family: var(--_cheers-service-area-map-heading-font); font-size: clamp(46px, 5.25vw, 68px); font-weight: 800; letter-spacing: -.035em; line-height: .98; text-wrap: balance; }
.cheers-service-area-map__search { margin: -6px 0 28px; }
.cheers-service-area-map__search label { display: block; margin-bottom: 9px; color: var(--_cheers-service-area-map-heading); font-family: var(--_cheers-service-area-map-heading-font); font-size: 15px; font-weight: 800; line-height: 1.25; }
.cheers-service-area-map__search-row { display: flex; align-items: center; gap: 12px; }
.cheers-service-area-map__search input { min-width: 0; height: 46px; flex: 1 1 auto; padding: 0 16px; border: 1px solid var(--_cheers-service-area-map-border); border-radius: 6px; outline: 0; color: var(--_cheers-service-area-map-text); background: var(--_cheers-service-area-map-surface); font: inherit; font-size: 15px; line-height: 1; }
.cheers-service-area-map__search input:focus { border-color: var(--_cheers-service-area-map-accent); box-shadow: 0 0 0 3px color-mix(in srgb, var(--_cheers-service-area-map-focus) 20%, transparent); }
.cheers-service-area-map__search input::placeholder { color: var(--_cheers-service-area-map-muted); opacity: 1; }
.cheers-service-area-map__search button { min-height: 46px; flex: 0 0 auto; padding: 0 18px; border: 1px solid transparent; border-radius: 999px; color: var(--_cheers-service-area-map-background); background: var(--_cheers-service-area-map-accent); font-family: var(--_cheers-service-area-map-heading-font); font-size: 13px; font-weight: 800; line-height: 1; text-transform: uppercase; cursor: pointer; }
.cheers-service-area-map__search button:hover { background: var(--_cheers-service-area-map-heading); }
.cheers-service-area-map__search button:focus-visible, .cheers-service-area-map__suggestion:focus-visible, .cheers-service-area-map__action:focus-visible, .cheers-service-area-map__links a:focus-visible, .cheers-service-area-map__more:focus-visible { outline: 3px solid var(--_cheers-service-area-map-focus); outline-offset: 3px; }
.cheers-service-area-map__suggestions { display: grid; max-height: 210px; gap: 4px; margin: 9px 0 0; padding: 6px; overflow-y: auto; border: 1px solid var(--_cheers-service-area-map-border); border-radius: 16px; background: var(--_cheers-service-area-map-background); box-shadow: 0 14px 30px rgb(0 0 0 / 12%); list-style: none; }
.cheers-service-area-map__suggestions[hidden] { display: none; }
.cheers-service-area-map__suggestion { display: flex; min-height: 56px; align-items: center; justify-content: space-between; gap: 14px; margin: 0; padding: 10px 12px; border-radius: 11px; color: var(--_cheers-service-area-map-heading); line-height: 1.2; list-style: none; cursor: pointer; }
.cheers-service-area-map__suggestion:hover, .cheers-service-area-map__suggestion.is-active { background: var(--_cheers-service-area-map-surface-hover); outline: none; }
.cheers-service-area-map__suggestion-primary { flex: 0 0 auto; font-family: var(--_cheers-service-area-map-heading-font); font-size: 15px; font-weight: 800; line-height: 1.2; }
.cheers-service-area-map__suggestion-secondary { min-width: 0; color: var(--_cheers-service-area-map-muted); font-size: 12px; line-height: 1.3; text-align: right; }
.cheers-service-area-map__help { margin: 8px 2px 0; color: var(--_cheers-service-area-map-muted); font-size: 12px; line-height: 1.45; }
.cheers-service-area-map__result { margin-top: 16px; padding: 20px; border: 1px solid var(--_cheers-service-area-map-border); border-left: 5px solid var(--_cheers-service-area-map-accent); border-radius: 18px; background: var(--_cheers-service-area-map-surface); color: var(--_cheers-service-area-map-heading); }
.cheers-service-area-map__result[hidden] { display: none; }
.cheers-service-area-map__result.is-needs-address, .cheers-service-area-map__result.is-needs-confirmation { border-color: var(--cheers-service-area-map-warning-border, #cbbd85); border-left-color: var(--cheers-service-area-map-warning-accent, #a07b00); background: var(--cheers-service-area-map-warning-background, #fff9e8); }
.cheers-service-area-map__result.is-invalid { border-color: var(--cheers-service-area-map-invalid-border, #d3a8ad); border-left-color: var(--cheers-service-area-map-invalid-accent, #a73d49); background: var(--cheers-service-area-map-invalid-background, #fff4f5); }
.cheers-service-area-map__result-eyebrow { margin: 0 0 6px; color: var(--_cheers-service-area-map-accent); font-family: var(--_cheers-service-area-map-heading-font); font-size: 12px; font-weight: 800; letter-spacing: .1em; line-height: 1.2; text-transform: uppercase; }
.cheers-service-area-map__result-title { margin: 0 0 7px; color: var(--_cheers-service-area-map-heading); font-family: var(--_cheers-service-area-map-heading-font); font-size: 23px; font-weight: 800; letter-spacing: -.015em; line-height: 1.12; }
.cheers-service-area-map__result-copy { margin: 0; color: var(--_cheers-service-area-map-muted); font-size: 14px; line-height: 1.5; }
.cheers-service-area-map__result-actions, .cheers-service-area-map__result-links { display: flex; flex-wrap: wrap; gap: 9px; }
.cheers-service-area-map__result-actions { margin-top: 16px; }
.cheers-service-area-map__result-related-title { margin: 17px 0 8px; color: var(--_cheers-service-area-map-heading); font-family: var(--_cheers-service-area-map-heading-font); font-size: 13px; font-weight: 800; line-height: 1.3; }
.cheers-service-area-map__action { display: inline-flex; min-height: 42px; align-items: center; justify-content: center; padding: 10px 16px; border: 2px solid var(--_cheers-service-area-map-heading); border-radius: 999px; color: var(--_cheers-service-area-map-heading); background: transparent; font-family: var(--_cheers-service-area-map-heading-font); font-size: 13px; font-weight: 800; line-height: 1.15; text-align: center; text-decoration: none; }
.cheers-service-area-map__action.is-primary { border-color: var(--_cheers-service-area-map-accent); color: var(--_cheers-service-area-map-background); background: var(--_cheers-service-area-map-accent); }
.cheers-service-area-map__action.is-location { min-height: 38px; padding: 8px 14px; border-width: 1px; background: var(--_cheers-service-area-map-background); font-size: 12px; }
.cheers-service-area-map__action:hover { border-color: var(--_cheers-service-area-map-heading); color: var(--_cheers-service-area-map-background); background: var(--_cheers-service-area-map-heading); }
.cheers-service-area-map__map-shell { grid-column: 2; grid-row: 1 / span 2; min-width: 0; min-height: 640px; overflow: hidden; background: var(--_cheers-service-area-map-surface); }
.cheers-service-area-map__canvas, .cheers-service-area-map__fallback { display: block; width: 100%; height: 100%; min-height: 640px; }
.cheers-service-area-map__canvas { position: relative; isolation: isolate; background: var(--_cheers-service-area-map-surface); }
.cheers-service-area-map__fallback { object-fit: cover; }
.cheers-service-area-map__directory { grid-column: 1; grid-row: 2; min-width: 0; padding: 24px clamp(38px, 5vw, 66px) 32px 0; }
.cheers-service-area-map__links { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0 22px; margin: 0 0 32px; padding: 0; list-style: none; font-size: 13px; }
.cheers-service-area-map__links li { min-width: 0; }
.cheers-service-area-map__links a, .cheers-service-area-map__links span { display: flex; min-height: 40px; align-items: center; justify-content: flex-start; padding: 9px 0; border-bottom: 1px solid var(--_cheers-service-area-map-border); color: var(--_cheers-service-area-map-text); background: transparent; text-align: left; text-decoration: none; }
.cheers-service-area-map__links a:hover { color: var(--_cheers-service-area-map-heading); background: var(--_cheers-service-area-map-surface-hover); }
.cheers-service-area-map__links [data-service-area-name].is-selected { border-bottom-color: var(--_cheers-service-area-map-accent); color: var(--_cheers-service-area-map-accent); font-weight: 800; }
.cheers-service-area-map__more { display: inline-flex; align-items: center; min-height: 44px; color: var(--_cheers-service-area-map-accent); font-weight: 800; text-underline-offset: .22em; }
.cheers-service-area-map__more:hover { color: var(--_cheers-service-area-map-heading); }
.cheers-service-area-map .leaflet-container { z-index: 0; width: 100%; height: 100%; min-height: inherit; font-family: var(--_cheers-service-area-map-font); }
.cheers-service-area-map .leaflet-tooltip { border: 0; border-radius: 5px; color: #202020; font-size: 13px; font-weight: 700; }
@media (max-width: 991px) {
  .cheers-service-area-map__inner { grid-template-columns: minmax(0, 1fr); gap: 34px; }
  .cheers-service-area-map__content, .cheers-service-area-map__map-shell, .cheers-service-area-map__directory { grid-column: 1; padding: 0; }
  .cheers-service-area-map__content { grid-row: 1; }
  .cheers-service-area-map__map-shell { grid-row: 2; }
  .cheers-service-area-map__directory { grid-row: 3; }
  .cheers-service-area-map__map-shell, .cheers-service-area-map__canvas, .cheers-service-area-map__fallback { min-height: 440px; }
  .cheers-service-area-map h2 { font-size: clamp(40px, 7vw, 56px); }
  .cheers-service-area-map__links { width: 100%; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 0 18px; }
  .cheers-service-area-map__links li { text-align: center; }
  .cheers-service-area-map__links a, .cheers-service-area-map__links span { width: 100%; justify-content: center; text-align: center; }
}
@media (max-width: 767px) {
  [data-cheers-component="service-area-map"] { padding: 58px 0 64px; }
  .cheers-service-area-map__inner { width: min(100% - 32px, 680px); }
  .cheers-service-area-map h2 { font-size: clamp(36px, 11vw, 48px); }
  .cheers-service-area-map__map-shell, .cheers-service-area-map__canvas, .cheers-service-area-map__fallback { min-height: 280px; }
}
@media (max-width: 479px) {
  .cheers-service-area-map__links { grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)); gap: 0 12px; }
  .cheers-service-area-map__search-row { align-items: stretch; flex-direction: column; }
  .cheers-service-area-map__search input, .cheers-service-area-map__search button { width: 100%; }
  .cheers-service-area-map__suggestion { align-items: flex-start; flex-direction: column; }
  .cheers-service-area-map__suggestion-secondary { text-align: left; }
  .cheers-service-area-map__result { padding: 18px; border-radius: 16px; }
  .cheers-service-area-map__result-actions, .cheers-service-area-map__result-links { flex-direction: column; }
  .cheers-service-area-map__action { width: 100%; }
}
@media (prefers-reduced-motion: reduce) {
  .cheers-service-area-map *, .cheers-service-area-map *::before, .cheers-service-area-map *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; }
}

/* library/components/promo-card-stack/promo-card-stack.css */
[data-cheers-component="promo-card-stack"] {
  --_promo-bg: var(--cheers-promo-background, var(--cheers-component-background, #ffffff));
  --_promo-card: var(--cheers-promo-card-background, var(--cheers-component-background, #ffffff));
  --_promo-text: var(--cheers-promo-text, var(--cheers-component-text, #2b2b2b));
  --_promo-muted: var(--cheers-promo-muted, var(--cheers-component-muted, #666666));
  --_promo-heading: var(--cheers-promo-heading, var(--cheers-component-heading, #202020));
  --_promo-accent: var(--cheers-promo-accent, var(--cheers-component-accent, #555555));
  --_promo-border: var(--cheers-promo-border, var(--cheers-component-border, rgb(0 0 0 / 16%)));
  --_promo-focus: var(--cheers-promo-focus, var(--cheers-component-focus, #111111));
  padding: 64px 24px 32px;
  background: var(--_promo-bg);
  color: var(--_promo-text);
  font-family: var(--cheers-component-font, system-ui, sans-serif);
}
.cheers-promo-stack, .cheers-promo-stack * { box-sizing: border-box; }
.cheers-promo-stack__wrap { max-width: 1220px; margin-inline: auto; }
.cheers-promo-stack__header { margin-bottom: 32px; }
.cheers-promo-stack__header h2 { margin: 0; font-size: clamp(30px, 4vw, 48px); line-height: 1.1; color: var(--_promo-heading); }
.cheers-promo-stack__header p { margin: 12px 0 0; font-size: 16px; color: var(--_promo-muted); }
.cheers-promo-stack .cheers-mobile-card-scroll { background: transparent; }
.cheers-promo-stack .cheers-mobile-card-scroll__card { background: var(--_promo-card); }
.cheers-promo-stack__coupon { display: flex; flex-direction: column; align-items: center; gap: 16px; min-height: 430px; height: 100%; padding: 28px 24px; border: 2px dotted var(--_promo-border); border-radius: 8px; text-align: center; background: var(--_promo-card); }
.cheers-promo-stack__coupon h3 { margin: 0; font-size: 22px; line-height: 1.2; color: var(--_promo-heading); }
.cheers-promo-stack__coupon p { margin: 0; }
.cheers-promo-stack__badge { font-size: clamp(26px, 3vw, 40px); line-height: 1.1; font-weight: 900; letter-spacing: -.035em; color: var(--_promo-heading); }
.cheers-promo-stack__offer { width: 100%; padding: 12px; border: 2px solid var(--_promo-accent); border-radius: 6px; font-size: clamp(32px, 4vw, 52px); line-height: 1; color: var(--_promo-accent); }
.cheers-promo-stack__description { font-size: 16px; line-height: 1.45; }
.cheers-promo-stack__terms { width: 100%; padding-top: 14px; border-top: 2px dotted var(--_promo-border); font-size: 14px; line-height: 1.4; color: var(--_promo-muted); }
.cheers-promo-stack .cheers-promo-stack__action { margin-top: auto; padding: 8px; color: var(--_promo-accent); font-size: 16px; font-weight: 750; text-underline-offset: 4px; }
.cheers-promo-stack__action:focus-visible, .cheers-promo-stack__creative:focus-visible { outline: 2px solid var(--_promo-focus); outline-offset: 3px; }
.cheers-promo-stack__creative { display: block; }
.cheers-promo-stack__image { display: block; width: 100%; height: auto; border-radius: 8px; }
.cheers-promo-stack .is-stacked .cheers-mobile-card-scroll__content, .cheers-promo-stack .is-stacked .cheers-promo-stack__creative { height: 100%; }
.cheers-promo-stack .is-stacked .cheers-promo-stack__image { height: 100%; object-fit: contain; }
.cheers-promo-stack .is-stacked .cheers-promo-stack__coupon { min-height: 0; }
@media (max-width: 600px) {
  .cheers-promo-stack { padding: 40px 16px 24px; }
  .cheers-promo-stack__coupon { padding: 24px 18px; gap: 14px; }
}

/* library/components/service-guide/service-guide.css */
.cheers-service-guide{color:var(--guide-text,var(--cheers-component-text,#2b2b2b));background:var(--cheers-component-background,#ffffff);padding:56px 20px;font-family:inherit}
.cheers-service-guide,.cheers-service-guide *{box-sizing:border-box}
.csg-inner{max-width:1120px;margin:auto}
.csg-header{max-width:720px;margin:0 0 28px}
.csg-header--photo{display:grid;grid-template-columns:1fr 1fr;gap:40px;max-width:none;align-items:center}
.csg-header h2{color:var(--guide-heading,var(--cheers-component-heading,#202020));font-size:clamp(28px,3vw,40px);line-height:1.15;margin:8px 0 14px}
.csg-header p{font-size:16px;line-height:1.5;margin:0;max-width:55ch}
.csg-header .csg-eyebrow{text-transform:uppercase;letter-spacing:.08em;font-size:12px;font-weight:800;color:var(--guide-accent,var(--cheers-component-accent,#555555))}
.csg-photo{margin:0;height:240px;overflow:hidden;border-radius:16px}
.csg-photo img{display:block;width:100%;height:100%;object-fit:cover}
.csg-photo>span{display:block;height:100%}
.csg-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;align-items:start}
.csg-fact{margin:0!important;border:0!important;border-color:var(--cheers-component-border,rgb(0 0 0 / 16%))!important;border-radius:16px;background:var(--guide-surface,var(--cheers-component-surface,#f3f3f3));overflow:hidden}
.csg-fact summary{display:grid;grid-template-columns:minmax(0,1fr) 24px;align-items:start;gap:14px;padding:22px;list-style:none;cursor:pointer;min-height:88px}
.csg-fact summary::-webkit-details-marker{display:none}
.csg-label{display:grid;gap:7px;min-width:0}
.csg-label strong{font-size:18px;line-height:1.3;color:var(--guide-heading,var(--cheers-component-heading,#202020))}
.csg-label>span{font-size:15px;font-weight:400;line-height:1.45;color:var(--guide-muted,var(--cheers-component-muted,#666666))}
.csg-toggle{font-size:26px;line-height:1;justify-self:end}
.csg-fact[open] .csg-toggle{transform:rotate(45deg)}
.csg-fact summary:focus-visible{outline:3px solid var(--guide-focus,var(--guide-accent,var(--cheers-component-focus,#111111)));outline-offset:-4px;border-radius:16px}
.csg-detail{padding:0 22px 24px;font-size:16px;line-height:1.6}
.csg-detail h2,.csg-detail h3,.csg-detail h4{font-size:18px!important;line-height:1.4;margin:22px 0 8px;color:inherit}
.csg-detail p,.csg-detail ul,.csg-detail ol{font-size:16px;line-height:1.6;margin:12px 0}
.csg-detail a{color:var(--guide-link,var(--guide-accent,var(--cheers-component-accent,#555555)));text-decoration:underline;text-underline-offset:3px}
.csg-detail ul,.csg-detail ol{padding-left:22px}
.csg-detail .preserved-section{padding:0;margin:0;background:none}
.csg-detail [data-guide-preserve-markup],.csg-detail [data-guide-preserve-markup] :is(section,.wrap,.cheers-location-wrap,.editorial-section__shell){padding:0;margin:0;max-width:none;width:100%;background:transparent}
.csg-detail [data-guide-preserve-markup] :is(.satellite-local-facts,.location-service-grid,.location-resource-grid,.local-service-list){display:block}
.csg-detail [data-guide-preserve-markup] :is(article,.location-service-card,.location-resource){display:block;padding:0;margin:18px 0;border:0;box-shadow:none;background:transparent;color:inherit}
.csg-detail [data-guide-preserve-markup] :is(.eyebrow,.location-service-no,.go){display:none}
.csg-detail [data-guide-preserve-markup] :is(h2,h3,h4){text-align:left;font-size:18px!important;line-height:1.4!important}
.csg-source-photo{margin:20px 0}
.csg-source-photo img{display:block;width:100%;max-height:260px;object-fit:cover;border-radius:12px}
.csg-detail a:focus-visible{outline:2px solid currentColor;outline-offset:3px}
@media(max-width:760px){.cheers-service-guide{padding:40px 20px}.csg-facts{grid-template-columns:1fr}.csg-header--photo{grid-template-columns:1fr;gap:24px}.csg-fact summary{padding:18px;gap:12px;grid-template-columns:minmax(0,1fr) 20px;min-height:80px}.csg-label strong{font-size:17px}.csg-detail{padding:0 18px 20px}.csg-photo{height:210px}}

/* library/components/scheduling/scheduling.css */
[data-cheers-component="scheduling"] {
  --_cheers-scheduling-background: var(--cheers-scheduling-background, var(--cheers-component-background, #ffffff));
  --_cheers-scheduling-surface: var(--cheers-scheduling-surface, var(--cheers-component-surface, #f3f3f3));
  --_cheers-scheduling-surface-hover: var(--cheers-scheduling-surface-hover, var(--cheers-component-surface-hover, #e9e9e9));
  --_cheers-scheduling-text: var(--cheers-scheduling-text, var(--cheers-component-text, #2b2b2b));
  --_cheers-scheduling-muted: var(--cheers-scheduling-muted, var(--cheers-component-muted, #666666));
  --_cheers-scheduling-heading: var(--cheers-scheduling-heading, var(--cheers-component-heading, #202020));
  --_cheers-scheduling-accent: var(--cheers-scheduling-accent, var(--cheers-component-accent, #555555));
  --_cheers-scheduling-focus: var(--cheers-scheduling-focus, var(--cheers-component-focus, #111111));
  --_cheers-scheduling-border: var(--cheers-scheduling-border, var(--cheers-component-border, rgb(0 0 0 / 16%)));
  --_cheers-scheduling-embed-background: var(--cheers-scheduling-embed-background, #ffffff);
  --_cheers-scheduling-embed-text: var(--cheers-scheduling-embed-text, #202020);
  --_cheers-scheduling-embed-muted: var(--cheers-scheduling-embed-muted, #666666);
  --_cheers-scheduling-embed-border: var(--cheers-scheduling-embed-border, #d2d2d2);
  --_cheers-scheduling-embed-hover: var(--cheers-scheduling-embed-hover, #f1f1f1);
  --_cheers-scheduling-accent-text: var(--cheers-scheduling-accent-text, #ffffff);
  --_cheers-scheduling-font: var(--cheers-scheduling-font, var(--font-body, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif));
  --_cheers-scheduling-heading-font: var(--cheers-scheduling-heading-font, var(--font-display, var(--_cheers-scheduling-font)));
  --_cheers-scheduling-max-width: var(--cheers-scheduling-max-width, 1200px);
  --_cheers-scheduling-layout-width: var(--cheers-scheduling-layout-width, 1080px);
  width: 100%;
  overflow: hidden;
  scroll-margin-top: 96px;
  padding: clamp(36px, 4.5vw, 58px) 0;
  color: var(--_cheers-scheduling-text);
  background: var(--_cheers-scheduling-background);
  font-family: var(--_cheers-scheduling-font);
}
.cheers-scheduling, .cheers-scheduling *, .cheers-scheduling *::before, .cheers-scheduling *::after { box-sizing: border-box; }
.cheers-scheduling__container { width: min(var(--_cheers-scheduling-max-width), calc(100% - 48px)); margin-inline: auto; }
.cheers-scheduling__layout { width: min(100%, var(--_cheers-scheduling-layout-width)); margin-inline: auto; overflow: hidden; border: 0; border-radius: 8px; background: var(--_cheers-scheduling-surface); box-shadow: 0 18px 44px rgb(0 0 0 / 16%); }
.cheers-scheduling__intro { padding: clamp(24px, 3vw, 36px); color: var(--_cheers-scheduling-text); }
.cheers-scheduling__intro > div { max-width: 720px; }
.cheers-scheduling__eyebrow, .cheers-scheduling__body, .cheers-scheduling__fallback p, .cheers-scheduling__noscript { margin: 0; }
.cheers-scheduling__eyebrow { color: var(--_cheers-scheduling-accent); font-size: .78rem; font-weight: 800; letter-spacing: .1em; line-height: 1.25; text-transform: uppercase; }
.cheers-scheduling h2 { max-width: 19ch; margin: .22em 0 .3em; color: var(--_cheers-scheduling-heading); font-family: var(--_cheers-scheduling-heading-font); font-size: clamp(1.75rem, 3vw, 2.45rem); font-weight: 800; letter-spacing: 0; line-height: 1.08; }
.cheers-scheduling__body { max-width: 38rem; color: var(--_cheers-scheduling-muted); font-size: .95rem; line-height: 1.55; }
.cheers-scheduling__frame { position: relative; min-width: 0; min-height: 540px; border: 0; background: var(--_cheers-scheduling-embed-background); }
.cheers-scheduling__frame iframe { display: block; width: 100%; height: 590px; border: 0; background: var(--_cheers-scheduling-embed-background); }
.cheers-scheduling__loading { position: absolute; inset: 0; z-index: 1; display: grid; place-items: center; padding: 24px; color: var(--_cheers-scheduling-embed-muted); background: var(--_cheers-scheduling-embed-background); font-weight: 650; text-align: center; }
.cheers-scheduling__frame.is-loaded .cheers-scheduling__loading { display: none; }
.cheers-scheduling__fallback { display: grid; max-width: 520px; gap: 12px; margin: 18px auto 0; color: var(--_cheers-scheduling-embed-muted); font-weight: 400; }
.cheers-scheduling__fallback[hidden] { display: none; }
.cheers-scheduling__fallback strong { color: var(--_cheers-scheduling-embed-text); font-size: 1.05rem; }
.cheers-scheduling__fallback p { font-size: .92rem; line-height: 1.55; }
.cheers-scheduling__fallback-actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; }
.cheers-scheduling__fallback-actions a, .cheers-scheduling__noscript a { display: inline-flex; min-height: 44px; align-items: center; justify-content: center; padding: 10px 15px; border: 1px solid var(--_cheers-scheduling-embed-border); border-radius: 6px; color: var(--_cheers-scheduling-embed-text); background: var(--_cheers-scheduling-embed-background); font-size: .86rem; font-weight: 750; text-decoration: none; }
.cheers-scheduling__fallback-actions a:hover, .cheers-scheduling__noscript a:hover { background: var(--_cheers-scheduling-embed-hover); }
.cheers-scheduling__fallback-actions a:first-child { border-color: var(--_cheers-scheduling-accent); color: var(--_cheers-scheduling-accent-text); background: var(--_cheers-scheduling-accent); }
.cheers-scheduling__fallback-actions a:focus-visible, .cheers-scheduling__noscript a:focus-visible { outline: 3px solid var(--_cheers-scheduling-focus); outline-offset: 2px; }
.cheers-scheduling__noscript { margin-top: 18px; }
@media (max-width: 800px) {
  .cheers-scheduling h2 { max-width: 20ch; }
  .cheers-scheduling__frame { min-height: 560px; }
  .cheers-scheduling__frame iframe { height: 620px; }
}
@media (max-width: 560px) {
  [data-cheers-component="scheduling"] { padding: 28px 0; }
  .cheers-scheduling__container { width: min(100% - 32px, var(--_cheers-scheduling-max-width)); }
  .cheers-scheduling__layout { border-radius: 6px; }
  .cheers-scheduling__intro { padding: 22px 18px 20px; }
  .cheers-scheduling h2 { font-size: 1.85rem; }
  .cheers-scheduling__frame { min-height: 540px; }
  .cheers-scheduling__frame iframe { height: 600px; }
}
@media (prefers-reduced-motion: reduce) {
  .cheers-scheduling *, .cheers-scheduling *::before, .cheers-scheduling *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; }
}

/* library/components/mobile-card-scroll/mobile-card-scroll.css */
.cheers-mobile-card-scroll { color: var(--cheers-component-text, #2b2b2b); background: var(--cheers-component-background, #ffffff); }
.cheers-mobile-card-scroll__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.cheers-mobile-card-scroll__card { position: relative; min-width: 0; border-radius: 8px; background: var(--cheers-component-surface, #f3f3f3); }
.cheers-mobile-card-scroll__content { min-width: 0; }
.cheers-mobile-card-scroll__heading { display: flow-root; }
.cheers-mobile-card-scroll__content h3 { color: var(--cheers-component-heading, #202020); }
.cheers-mobile-card-scroll__content a { color: var(--cheers-component-accent, #555555); }
.cheers-mobile-card-scroll__controls[hidden] { display: none; }
.cheers-mobile-card-scroll__sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.cheers-mobile-card-scroll__card:focus-visible { outline: 2px solid var(--cheers-component-focus, #111111); outline-offset: 3px; }
@media (max-width: 1120px) {
  .cheers-mobile-card-scroll__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .cheers-mobile-card-scroll.is-stacked { height: var(--deck-runway); }
  .cheers-mobile-card-scroll.is-stacked .cheers-mobile-card-scroll__stage { position: sticky; top: var(--deck-top); }
  .cheers-mobile-card-scroll.is-stacked .cheers-mobile-card-scroll__grid { position: relative; display: block; width: calc(100% - 32px); max-width: 460px; height: calc(var(--deck-card-height) + 44px); margin-inline: auto; }
  .cheers-mobile-card-scroll.is-stacked .cheers-mobile-card-scroll__card { position: absolute; inset: 36px 0 auto; height: var(--deck-card-height); min-height: 0; transform-origin: center top; will-change: transform; box-shadow: 0 10px 24px rgb(0 0 0 / 15%); }
  .cheers-mobile-card-scroll__controls { display: grid; justify-items: center; gap: 4px; padding-top: 8px; }
  .cheers-mobile-card-scroll__controls p { margin: 0; color: var(--cheers-component-muted, #666666); font-size: 13px; }
  .cheers-mobile-card-scroll__controls > div { display: flex; align-items: center; gap: 8px; }
  .cheers-mobile-card-scroll__controls button { appearance: none; display: inline-flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; padding: 8px 12px; border: 0 solid var(--cheers-component-border, rgb(0 0 0 / 16%)); border-radius: 0; background: none; color: var(--cheers-component-accent, #555555); font: inherit; font-size: 16px; font-weight: 800; text-decoration: none; cursor: pointer; }
  .cheers-mobile-card-scroll__controls button:hover:not(:disabled) { color: var(--cheers-component-heading, #202020); }
  .cheers-mobile-card-scroll__controls button:disabled { opacity: 0.4; cursor: default; }
  .cheers-mobile-card-scroll__controls button:focus-visible { outline: 2px solid var(--cheers-component-focus, #111111); outline-offset: 3px; }
}
@media (max-width: 600px) { .cheers-mobile-card-scroll__grid { grid-template-columns: 1fr; } }

/* site/library-overrides.css */
/* ==========================================================================
   LIBRARY OVERRIDES — template-wide adjustments to vendored library components.
   library/ stays byte-for-byte untouched; these rules load after it.
   Template owner only. Never per brand. No raw colors (check.mjs enforces).
   ========================================================================== */

/* Card decks (service-card-stack, promo-card-stack): no "Scroll to explore ← → Show all
   options" row. The live status stays inside for screen readers. */
.cheers-mobile-card-scroll__controls > p,
.cheers-mobile-card-scroll__controls > div { display: none; }
.cheers-mobile-card-scroll__controls { padding: 0; }

/* Promo deck: coupons size to their content while stacked, and the heading sits tighter,
   so the shuffle fits ordinary phone heights instead of falling back to a flat list. */
.cheers-mobile-card-scroll.is-stacked .cheers-promo-stack__coupon { min-height: 0; }
.cheers-promo-stack .is-stacked .cheers-promo-stack__header { margin-bottom: 12px; }
/* Coupons: eyebrow (title) → amount (badge) → what it's for (offer), no box around the offer, and tighter spacing
   so the library's card shuffle fits shorter windows (it falls back to a flat grid when a coupon is too tall). */
.cheers-promo-stack__coupon { gap: 12px; padding: 24px 22px; }
.cheers-promo-stack__offer { padding: 0; border: 0; border-radius: 0; font-size: clamp(28px, 3.2vw, 44px); line-height: 1.05; text-wrap: balance; }
.cheers-promo-stack__terms { padding-top: 12px; }
/* While shuffling, a coupon is compact so it fits the pinned stage on small phones; the full terms stay readable. */
.cheers-mobile-card-scroll.is-stacked .cheers-promo-stack__coupon { gap: 8px; padding: 18px 18px 14px; }
.cheers-mobile-card-scroll.is-stacked .cheers-promo-stack__coupon h3 { font-size: 17px; }
.cheers-mobile-card-scroll.is-stacked .cheers-promo-stack__badge { font-size: 24px; }
.cheers-mobile-card-scroll.is-stacked .cheers-promo-stack__offer { font-size: 30px; }
.cheers-mobile-card-scroll.is-stacked .cheers-promo-stack__description { font-size: 14px; line-height: 1.4; }
.cheers-mobile-card-scroll.is-stacked .cheers-promo-stack__terms { padding-top: 8px; font-size: 12px; line-height: 1.35; }
.cheers-mobile-card-scroll.is-stacked .cheers-promo-stack__action { padding: 4px; }
.cheers-promo-stack__wrap > .cheers-mobile-card-scroll__heading { margin-bottom: 16px; }
/* Coupons size to their content, centered, so no blank band opens above the action; the action is the primary
   glossy button right under the description, and the fine print closes the coupon. */
.cheers-promo-stack__coupon { min-height: 0; justify-content: center; }
.cheers-promo-stack__terms { order: 10; }
.cheers-promo-stack .cheers-promo-stack__action { order: 5; display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 48px; margin-top: 6px; padding: 12px 26px; border-radius: var(--cheers-component-button-radius); background: linear-gradient(180deg, rgb(255 255 255 / 22%), rgb(255 255 255 / 0%) 58%), var(--cheers-component-accent); color: var(--cheers-component-action-text); font-size: 16px; font-weight: 750; text-decoration: none; box-shadow: inset 0 1px 0 rgb(255 255 255 / 32%), 0 10px 24px color-mix(in srgb, var(--cheers-component-accent) 32%, transparent); transition: transform .18s ease, box-shadow .18s ease; }
.cheers-promo-stack .cheers-promo-stack__action:hover { transform: translateY(-2px); box-shadow: inset 0 1px 0 rgb(255 255 255 / 36%), 0 14px 30px color-mix(in srgb, var(--cheers-component-accent) 44%, transparent); }
.cheers-mobile-card-scroll.is-stacked .cheers-promo-stack .cheers-promo-stack__action, .cheers-mobile-card-scroll.is-stacked .cheers-promo-stack__action { min-height: 44px; padding: 10px 22px; }
@media (prefers-reduced-motion: reduce) { .cheers-promo-stack .cheers-promo-stack__action { transition: none; } }

/* FAQ (service-guide): a drawn + that turns into × with motion, centered on its own axis. */
.csg-toggle {
  position: relative;
  width: 24px; height: 24px;
  font-size: 0;
  transition: transform .32s cubic-bezier(.4, 0, .2, 1);
}
.csg-toggle::before, .csg-toggle::after {
  content: ""; position: absolute; left: 3px; right: 3px; top: 50%;
  height: 2px; margin-top: -1px; border-radius: 2px; background: currentColor;
}
.csg-toggle::after { transform: rotate(90deg); }
.csg-fact[open] .csg-toggle { transform: rotate(135deg); }
@media (max-width: 760px) { .csg-toggle { width: 20px; height: 20px; } .csg-toggle::before, .csg-toggle::after { left: 2px; right: 2px; } }
@media (prefers-reduced-motion: reduce) { .csg-toggle { transition: none; } }

/* Toggle icons move as soon as a close starts (site/motion.js sets data-closing). */
.csg-fact[data-closing] .csg-toggle { transform: none; }

/* Visual service guide "+": same drawn + → × motion as the FAQ. */
.cheers-visual-service-guide .vsg-toggle {
  position: relative; width: 22px; height: 22px; font-size: 0;
  transition: transform .32s cubic-bezier(.4, 0, .2, 1);
}
.cheers-visual-service-guide .vsg-toggle::before, .cheers-visual-service-guide .vsg-toggle::after {
  content: ""; position: absolute; left: 3px; right: 3px; top: 50%;
  height: 2px; margin-top: -1px; border-radius: 2px; background: currentColor;
}
.cheers-visual-service-guide .vsg-toggle::after { transform: rotate(90deg); }
.cheers-visual-service-guide .vsg-details[open] .vsg-toggle { transform: rotate(135deg); }
.cheers-visual-service-guide .vsg-details[data-closing] .vsg-toggle { transform: none; }
@media (prefers-reduced-motion: reduce) { .cheers-visual-service-guide .vsg-toggle { transition: none; } }

/* Social proof: no hover state (it was the only element on the page with one). */
a.cheers-social-proof__body:hover { color: var(--_cheers-social-proof-text); background: none; transform: none; }
a.cheers-social-proof-2__body:hover { color: var(--_cheers-social-proof-2-text); background: none; transform: none; }
a.cheers-social-proof-2__body:hover .cheers-social-proof-2__copy strong { color: var(--_cheers-social-proof-2-heading); }

/* Service cards: pinned slide on tablets and phones (site/library-enhance.js builds .site-slide).
   Approved mockup: cards about half the screen wide, rounded, segmented progress bar. */
.cheers-service-stack .cheers-service-stack__card { border-radius: var(--cheers-component-radius); }
.cheers-service-stack .cheers-mobile-card-scroll__controls { display: none !important; }
.site-slide.is-on { position: relative; }
.site-slide.is-on .site-slide__stage {
  --_g: 24px;
  position: sticky; top: var(--slide-top, 0px);
  display: grid; grid-template-columns: minmax(0, 1fr); align-content: start;
  margin-inline: calc(-1 * var(--_g)); padding: 24px var(--_g);
  overflow: hidden;
}
.site-slide.is-on .cheers-mobile-card-scroll__grid {
  display: flex; gap: 14px; min-width: 0;
  margin-inline: calc(-1 * var(--_g)); padding-inline: var(--_g);
  will-change: transform;
}
.site-slide.is-on .cheers-mobile-card-scroll__card { flex: 0 0 min(52%, 260px); }
.site-slide.is-on .cheers-mobile-card-scroll__content { height: 100%; }
.site-slide.is-on .cheers-service-stack__card { height: clamp(250px, 38svh, 340px); min-height: 0; }
.site-slide.is-on .cheers-service-stack__body { padding: 16px; }
.site-slide.is-on .cheers-service-stack__body h3 { font-size: 18px; }
.site-slide.is-on .cheers-service-stack__body p { margin-bottom: 10px; font-size: 14px; line-height: 1.4; }
.site-slide.is-on .cheers-service-stack__link { font-size: 14px; }
.site-slide__progress { display: none; }
.site-slide.is-on .site-slide__progress { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(0, 1fr); gap: 6px; margin-top: 20px; }
.site-slide__progress span { height: 3px; border-radius: 3px; overflow: hidden; background: var(--cheers-component-border); }
.site-slide__progress span::after { content: ""; display: block; width: calc(var(--p, 0) * 100%); height: 100%; background: var(--cheers-component-heading); }
.site-slide.is-on .cheers-service-stack__footer { margin-top: 18px; }
@media (max-width: 600px) { .site-slide.is-on .site-slide__stage { --_g: 16px; } }

/* Service area (service-area-map): one structured column — heading, a single search pill,
   the communities as pin chips, one clear link — beside (desktop) or above (phone) a rounded map. */
.cheers-service-area-map__inner { grid-template-rows: auto 1fr; }
.cheers-service-area-map__content { padding-top: 8px; }
.cheers-service-area-map h2 { margin-bottom: 24px; font-size: clamp(40px, 4.4vw, 58px); line-height: 1.02; }
.cheers-service-area-map__search { margin: 0 0 4px; }
.cheers-service-area-map__search label { margin-bottom: 10px; font-size: 14px; }
.cheers-service-area-map__search-row {
  gap: 6px; padding: 5px;
  border: 1px solid var(--_cheers-service-area-map-border);
  border-radius: var(--cheers-component-button-radius);
  background: var(--_cheers-service-area-map-background);
  box-shadow: 0 8px 22px rgb(0 0 0 / 6%);
}
.cheers-service-area-map__search-row:focus-within { border-color: var(--_cheers-service-area-map-accent); box-shadow: 0 0 0 3px color-mix(in srgb, var(--_cheers-service-area-map-focus) 16%, transparent), 0 8px 22px rgb(0 0 0 / 6%); }
.cheers-service-area-map__search input, .cheers-service-area-map__search input:focus { height: 44px; padding: 0 14px; border: 0; border-radius: var(--cheers-component-button-radius); background: transparent; box-shadow: none; font-size: 16px; }
.cheers-service-area-map__search button {
  min-height: 44px; padding: 0 20px;
  border-radius: var(--cheers-component-button-radius);
  background: linear-gradient(180deg, rgb(255 255 255 / 22%), rgb(255 255 255 / 0%) 58%), var(--cheers-component-accent);
  color: var(--site-accent-text);
  font-family: var(--font-body); font-size: 15px; font-weight: 750; letter-spacing: 0; text-transform: none;
  box-shadow: inset 0 1px 0 rgb(255 255 255 / 30%), 0 8px 18px color-mix(in srgb, var(--cheers-component-accent) 30%, transparent);
}
.cheers-service-area-map__search button:hover { background: linear-gradient(180deg, rgb(255 255 255 / 22%), rgb(255 255 255 / 0%) 58%), var(--cheers-component-accent); }
.cheers-service-area-map__help { margin: 10px 4px 0; font-size: 13px; }
.cheers-service-area-map__map-shell { align-self: stretch; border: 1px solid var(--_cheers-service-area-map-border); border-radius: var(--cheers-component-radius); }

/* Communities: pin chips that wrap, left-aligned at every width. No divider lines. */
.cheers-service-area-map__directory { align-self: start; padding-top: 28px; }
.cheers-service-area-map__links,
.cheers-service-area-map__links li { all: unset; }
.cheers-service-area-map__links { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 10rem), 1fr)); gap: 8px; margin: 0 0 24px; padding: 0; list-style: none; } /* equal columns: chips line up and city names never wrap (Rock map fix) */
.cheers-service-area-map__links li { display: block; min-width: 0; }
.cheers-service-area-map__links li > :is(a, span) { width: 100%; box-sizing: border-box; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.cheers-service-area-map__links a, .cheers-service-area-map__links span {
  display: inline-flex; align-items: center; gap: 7px; width: auto; min-height: 40px;
  padding: 8px 15px 8px 12px; border: 1px solid var(--_cheers-service-area-map-border); border-radius: 999px;
  background: var(--_cheers-service-area-map-surface); color: var(--_cheers-service-area-map-heading);
  font-size: 14px; font-weight: 600; line-height: 1.2; text-align: left; text-decoration: none;
  transition: background-color .18s ease, border-color .18s ease, color .18s ease;
}
.cheers-service-area-map__links a::before, .cheers-service-area-map__links span::before {
  content: ""; flex: none; width: 15px; height: 15px; background: currentColor; opacity: .55;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 21s-6.5-6.2-6.5-11.2a6.5 6.5 0 0 1 13 0C18.5 14.8 12 21 12 21Z'/%3E%3Ccircle cx='12' cy='9.8' r='2.4'/%3E%3C/svg%3E") center / contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 21s-6.5-6.2-6.5-11.2a6.5 6.5 0 0 1 13 0C18.5 14.8 12 21 12 21Z'/%3E%3Ccircle cx='12' cy='9.8' r='2.4'/%3E%3C/svg%3E") center / contain no-repeat;
}
.cheers-service-area-map__links a:hover { border-color: var(--_cheers-service-area-map-heading); background: var(--_cheers-service-area-map-background); }
.cheers-service-area-map__links [data-service-area-name].is-selected { border-color: var(--_cheers-service-area-map-accent); background: var(--_cheers-service-area-map-accent); color: var(--site-accent-text); font-weight: 700; }
.cheers-service-area-map__links [data-service-area-name].is-selected::before { opacity: 1; }

/* One clear way to the full list. */
.cheers-service-area-map__more { gap: 8px; font-size: 15px; text-decoration: none; color: var(--_cheers-service-area-map-heading); }
.cheers-service-area-map__more::after { content: ""; width: 18px; height: 18px; background: currentColor; transition: transform .18s ease; -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4.5 12h15M13.5 6l6 6-6 6'/%3E%3C/svg%3E") center / contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4.5 12h15M13.5 6l6 6-6 6'/%3E%3C/svg%3E") center / contain no-repeat; }
.cheers-service-area-map__more:hover::after { transform: translateX(3px); }

@media (max-width: 991px) {
  /* Phone/tablet order: heading + search, communities, then the map. */
  .cheers-service-area-map__inner { grid-template-rows: none; gap: 28px; }
  .cheers-service-area-map__directory { grid-row: 2; padding-top: 0; }
  .cheers-service-area-map__map-shell { grid-row: 3; }
  .cheers-service-area-map__links { justify-content: flex-start; }
  .cheers-service-area-map__links li, .cheers-service-area-map__links a, .cheers-service-area-map__links span { text-align: left; justify-content: flex-start; }
}
@media (max-width: 767px) {
  [data-cheers-component="service-area-map"] { padding: 56px 0; }
  .cheers-service-area-map h2 { margin-bottom: 20px; font-size: clamp(34px, 10vw, 44px); }
  /* Compact chips on phones so the full list stays a few rows. */
  .cheers-service-area-map__links { gap: 6px; grid-template-columns: repeat(auto-fill, minmax(min(100%, 8.5rem), 1fr)); }
  .cheers-service-area-map__links a, .cheers-service-area-map__links span { min-height: 36px; padding: 6px 12px 6px 10px; font-size: 13px; }
}
/* The static map image is real geography: show all of it (never crop), on the map's own surface color. */
.cheers-service-area-map__fallback { object-fit: contain; }
@media (max-width: 991px) {
  /* Until (or unless) the live map loads, the shell takes the image's own height. */
  .cheers-service-area-map__map-shell:has(.cheers-service-area-map__fallback),
  .cheers-service-area-map__canvas:has(> .cheers-service-area-map__fallback),
  .cheers-service-area-map__fallback { min-height: 0; height: auto; }
}
@media (max-width: 479px) {
  /* Keep the search one pill on phones (library stacks it). */
  .cheers-service-area-map__search-row { flex-direction: row; align-items: center; }
  .cheers-service-area-map__search input { width: auto; }
  .cheers-service-area-map__search button { width: auto; padding: 0 16px; }
}
@media (prefers-reduced-motion: reduce) { .cheers-service-area-map__more::after { transition: none; } }

/* Comparison: a "neutral" (varies) cell shows "~" instead of a dash. Screen readers still hear "Varies". */
.cheers-comparison__cell--neutral .cheers-comparison__mark { font-size: 0; }
.cheers-comparison__cell--neutral .cheers-comparison__mark::after { content: "~"; font-size: 1.6rem; font-weight: 800; line-height: 1; }

/* Display type follows the site's design: library headings (and the comparison column heads, which use the
   display face) take --display-weight and --display-tracking, so a 400-only face like DM Serif Display is
   never faux-bolded. Loaded after the library, so these win at equal specificity. */
[data-cheers-component] h2, [data-cheers-component] h2 *,
.cheers-comparison__table thead th { font-weight: var(--display-weight); letter-spacing: var(--display-tracking); }

/* How it works: step copy wide enough that a step's text runs 3–5 lines, not 8–10
   (the library caps it at 160px desktop / 120px phone). */
.cheers-how-it-works__step-copy { max-width: 300px; padding-inline: 12px; }
@media (max-width: 760px) {
  .cheers-how-it-works__steps { grid-auto-columns: 250px; }
  .cheers-how-it-works__step:not(:last-child)::after { width: 250px; }
  .cheers-how-it-works__step-copy { max-width: 230px; padding-inline: 0; }
}

/* Social proof carousel (tablet and phone): each item is as wide as its content, so there's no empty run on the
   right before the next divider. Long items still wrap at the old width. */
@media (max-width: 1024px) {
  [data-social-proof-carousel] .cheers-social-proof__item,
  [data-social-proof-carousel] .cheers-social-proof__item:nth-child(even),
  [data-social-proof-carousel] .cheers-social-proof__item:last-child:nth-child(odd) { flex: 0 0 auto; max-width: min(82vw, 340px); }
  [data-social-proof-carousel] .cheers-social-proof__item .cheers-social-proof__body,
  [data-social-proof-carousel] .cheers-social-proof__item:last-child:nth-child(odd) .cheers-social-proof__body { padding: 14px 24px 14px 20px; }
}

/* Phones: a tighter service-deck intro so the cards and their progress bar sit well clear of the sticky
   Schedule | Call bar. */
@media (max-width: 600px) {
  .cheers-service-stack__header { margin-bottom: 18px; }
  .cheers-service-stack__header p { margin-top: 8px; font-size: 15px; line-height: 1.45; }
  [data-cheers-component="service-card-stack"] { padding-top: 44px; padding-bottom: calc(24px + var(--site-action-bar-height, 64px) * .25); }
}

/* How-it-works: an icon supplied as an image (a brand's own SVG icon set) sits inside the circle with breathing room,
   matching the template's drawn icons, instead of filling it edge to edge like a photo. */
.cheers-how-it-works__visual--image img[src$=".svg"]:not([src^="/assets/icons/"]) { object-fit: contain; padding: 24%; box-sizing: border-box; }

/* Tap targets: the library's small text links get a 24px-tall hit area. */
.cheers-service-stack__all, .cheers-review-sources a, .cheers-review-attribution { display: inline-flex; align-items: center; min-height: 24px; }

/* How-it-works on phones: a vertical timeline (icon left, copy right, connecting line) instead of the library's
   sideways scroller, which hid steps past the edge with no scroll cue. Every step is visible without swiping. */
@media (max-width: 760px) {
  [data-cheers-component="how-it-works"] { --_cheers-how-it-works-node-size: 64px; }
  .cheers-how-it-works__steps { grid-template-columns: minmax(0, 1fr); grid-auto-flow: row; grid-auto-columns: auto; gap: 26px; width: auto; margin: 32px 0 0; padding: 0; overflow: visible; scroll-snap-type: none; }
  .cheers-how-it-works__step { position: relative; grid-template-columns: var(--_cheers-how-it-works-node-size) minmax(0, 1fr); justify-items: start; align-items: start; gap: 18px; text-align: left; }
  .cheers-how-it-works__step-copy { padding-top: calc(var(--_cheers-how-it-works-node-size) / 2 - 0.8em); }
  .cheers-how-it-works__step:not(:last-child)::after { top: var(--_cheers-how-it-works-node-size); left: calc(var(--_cheers-how-it-works-node-size) / 2 - 1px); width: 2px; height: calc(100% - var(--_cheers-how-it-works-node-size) + 26px); }
  .cheers-how-it-works__step-copy { max-width: none; }
}

/* One page grid: library sections whose content box differed from .site-wrap (reviews 24px padding inside 1200,
   FAQ 1120 + 20px, steps 24px, service cards 1220) now share the template's page width and gutter, so every
   section's left edge lines up. */
.cheers-reviews > .wrap, .csg-inner, .cheers-how-it-works__inner {
  width: min(var(--cheers-page-width), calc(100% - var(--cheers-page-gutter) * 2)); max-width: none; padding-inline: 0; box-sizing: border-box;
}
.cheers-service-guide { padding-inline: 0; }
@media (min-width: 1121px) {
  .cheers-service-stack { padding-inline: 0; }
  .cheers-service-stack__wrap { width: min(var(--cheers-page-width), calc(100% - var(--cheers-page-gutter) * 2)); max-width: none; }
  /* The desktop card row fills the grid whatever the count: 2 → 2 columns, 3/5/6 → 3, 4/7/8 → 4. */
  .cheers-service-stack .cheers-mobile-card-scroll__grid:has(> :nth-child(2):last-child) { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .cheers-service-stack .cheers-mobile-card-scroll__grid:is(:has(> :nth-child(3):last-child), :has(> :nth-child(5):last-child), :has(> :nth-child(6):last-child), :has(> :nth-child(9):last-child)) { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
/* FAQ: cards in a row share a height (no jagged gaps); a lone card spans the row instead of sitting at half width. */
.csg-facts { align-items: start; } /* an open answer never stretches the card beside it */
.csg-facts:has(> :only-child) { grid-template-columns: minmax(0, 1fr); }

/* Reviews: heading follows the brand's display weight + tracking like every other section heading; the edge fade
   sits only on the trailing edge, so the first card's name and text are never washed out. */
.cheers-reviews .cheers-reviews-header h2 { font-family: var(--font-display); font-weight: var(--display-weight); letter-spacing: var(--display-tracking); }
.cheers-reviews .review-ticker-frame::before { display: none; }

/* Service-area markets: a page with no city, for a brand serving several markets, shows one map per market behind
   a tab row (the build renders it). The tabs sit where the map section's top padding was; inactive maps stay laid
   out (hidden) so each map frames its market at full size, but only the active one sets the height. */
.site-markets { padding-top: clamp(56px, 6vw, 80px); background: var(--cheers-component-background); }
.site-markets__bar { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 16px; }
.site-markets__label { margin: 0; color: var(--cheers-component-muted); font-size: 14px; font-weight: 700; }
.site-markets__tabs { display: flex; flex-wrap: wrap; gap: 8px; }
.site-markets__tab { min-height: 40px; padding: 0 16px; border: 1px solid var(--cheers-component-border); border-radius: var(--cheers-component-button-radius); color: var(--cheers-component-heading); background: var(--cheers-component-background); font: inherit; font-size: 14px; font-weight: 700; cursor: pointer; transition: background .16s ease, border-color .16s ease, color .16s ease; }
.site-markets__tab:hover { border-color: var(--cheers-component-accent); }
.site-markets__tab[aria-selected="true"] { border-color: var(--cheers-component-accent); color: var(--site-accent-text); background: var(--cheers-component-accent); }
.site-markets__tab:focus-visible { outline: 3px solid var(--cheers-component-focus); outline-offset: 2px; }
.site-markets__panels { position: relative; }
.site-markets__panel:not(.is-active) { position: absolute; inset: 0 0 auto; visibility: hidden; }
.site-markets .cheers-service-area-map { padding-top: 24px; }
@media (max-width: 700px) {
  .site-markets__tabs { flex-wrap: nowrap; overflow-x: auto; margin-inline: -16px; padding-inline: 16px; scrollbar-width: none; }
  .site-markets__tab { flex: 0 0 auto; }
}

/* Library section headings use the template's one section-heading size (not each library default). */
.cheers-service-area-map h2, .cheers-how-it-works__header h2, .cheers-reviews-header h2, .cheers-service-stack__header h2, .cheers-promo-stack__header h2, .cheers-comparison h2, .csg-header h2, .cheers-landmark h2, .cheers-scheduling h2, .cheers-visual-service-guide h2 { font-size: var(--site-h2-size) !important; line-height: 1.12; text-wrap: balance; }
.cheers-service-area-map h2 { margin-bottom: 20px; }
/* The amount is the coupon's headline (red, largest); what it's for sits above it, smaller. */
.cheers-promo-stack__badge { font-size: clamp(22px, 2.2vw, 28px); line-height: 1.15; text-wrap: balance; }
.cheers-promo-stack__offer { font-size: clamp(40px, 4.4vw, 60px); }
.cheers-mobile-card-scroll.is-stacked .cheers-promo-stack__badge { font-size: 20px; }
.cheers-mobile-card-scroll.is-stacked .cheers-promo-stack__offer { font-size: 40px; }

/* 50/50 standard for the landmark (matches photo-split): page-width container, equal columns, copy centered
   against a 4:3 photo, standard section spacing. */
[data-cheers-component="landmark"] { padding: var(--cheers-page-space) 0; }
.cheers-landmark__inner { width: min(var(--cheers-page-width), calc(100% - var(--cheers-page-gutter) * 2)); max-width: none; gap: clamp(40px, 6vw, 96px); }
.cheers-landmark__image, .cheers-landmark__placeholder { aspect-ratio: 4 / 3; max-height: 560px; }
.cheers-landmark__copy > p { max-width: 60ch; }
.cheers-landmark__copy > :last-child { margin-bottom: 0; }
@media (max-width: 767px) { .cheers-landmark__inner { gap: 24px; } }
/* Landmark 50/50 follows the photo-split rule: copy top-aligned with the photo, kept in view beside a taller photo. */
@media (min-width: 768px) {
  .cheers-landmark__inner { align-items: start; }
  .cheers-landmark__copy { position: sticky; top: calc(var(--site-header-height, 72px) + 24px); }
}
/* 2.23.4 — FAQ: two independent columns (an open answer moves nothing beside it); the summary line hides once the
   answer is open, so the same words never show twice. */
.csg-facts.is-cols { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; align-items: start; }
.csg-col { display: grid; gap: 12px; align-content: start; min-width: 0; }
@media (max-width: 760px) { .csg-facts.is-cols { grid-template-columns: minmax(0, 1fr); } .csg-col { display: contents; } }
.csg-fact[open]:not([data-closing]) .csg-label > span { display: none; }

/* site/components/utility-bar/utility-bar.css */
/* utility-bar — Elite Rooter homepage pattern: hours left, phone right. Hidden on phones (the action bar carries the phone).
   Family brands: sister-site links left, a "Serving <state>" switcher right (kept on phones). */
.site-utility { position: relative; z-index: 110; background: var(--site-bar-background); color: var(--site-bar-text); font-size: .8125rem; }
.site-utility__inner { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 38px; }
.site-utility p { margin: 0; opacity: .86; }
.site-utility > .site-wrap > a { font-weight: 800; text-decoration: none; font-variant-numeric: tabular-nums; letter-spacing: .01em; }
.site-utility > .site-wrap > a:hover { text-decoration: underline; text-underline-offset: 3px; }
.site-utility__family { display: flex; flex-wrap: wrap; gap: 4px 22px; }
.site-utility__family a { color: inherit; font-size: .75rem; text-decoration: none; opacity: .92; }
.site-utility__family a:hover { opacity: 1; text-decoration: underline; text-underline-offset: 4px; }
.site-utility__family a[aria-current="page"] { color: var(--site-bar-accent, var(--site-hero-accent, currentColor)); opacity: 1; }
.site-region { position: relative; margin-left: auto; }
.site-region__button { display: inline-flex; align-items: center; gap: 7px; min-height: 36px; padding: 0; border: 0; background: none; color: inherit; font: inherit; font-weight: 700; cursor: pointer; }
.site-region__button svg { width: 15px; height: 15px; }
.site-region__button > svg:first-child { color: var(--site-bar-accent, var(--site-hero-accent, currentColor)); }
.site-region__chevron { transition: transform .2s ease; }
.site-region__button[aria-expanded="true"] .site-region__chevron { transform: rotate(180deg); }
.site-region__menu { position: absolute; right: 0; top: calc(100% + 4px); z-index: 120; min-width: 260px; margin: 0; padding: 6px; list-style: none; border-radius: 12px; background: var(--cheers-component-background); box-shadow: 0 18px 40px rgb(0 0 0 / 22%); }
.site-region__menu a { display: grid; grid-template-columns: minmax(0, 1fr) 18px; align-items: center; column-gap: 10px; min-height: 48px; padding: 10px 12px; border-radius: 8px; color: var(--cheers-component-heading); text-decoration: none; }
.site-region__menu a:hover { background: var(--cheers-component-surface); }
.site-region__name { font-weight: 800; }
.site-region__meta { grid-column: 1; color: var(--cheers-component-muted); font-size: .75rem; }
.site-region__menu svg { grid-column: 2; grid-row: 1 / span 2; width: 18px; height: 18px; color: var(--cheers-component-accent); }
@media (max-width: 760px) {
  .site-utility:not(.site-utility--regions) { display: none; }
  .site-utility__family { display: none; }
  .site-utility__inner { justify-content: center; min-height: 36px; }
  .site-region { margin: 0 auto; }
  .site-region__menu { right: 50%; transform: translateX(50%); }
}
/* 2.23: with the sister sites moved to the header menu, phones still show only the region switcher. */
@media (max-width: 760px) { .site-utility--regions p { display: none; } }

/* site/components/site-header/site-header.css */
/* site-header — logo · nav · one CTA. Sticky. Colors from --site-header-* roles. */
.site-header {
  position: sticky; top: 0; z-index: 100;
  background: var(--site-header-background);
  color: var(--site-header-text);
  border-bottom: 1px solid var(--site-header-border);
}
.site-header__inner { display: flex; align-items: center; gap: 28px; min-height: var(--site-header-height); }
.site-logo { display: inline-grid; flex: 0 0 auto; color: inherit; text-decoration: none; line-height: 1; }
.site-logo img { height: var(--site-logo-height, 44px); width: auto; }
.site-logo__word { font-family: var(--font-display); font-size: 1.375rem; font-weight: var(--display-weight); letter-spacing: -.03em; }
.site-logo__sub { margin-top: 4px; font-size: .625rem; font-weight: 800; letter-spacing: .2em; text-transform: uppercase; opacity: .72; }

.site-nav { flex: 1 1 auto; display: flex; }
.site-header[data-nav-align="center"] .site-nav { justify-content: center; }
.site-header[data-nav-align="end"] .site-nav { justify-content: flex-end; }
.site-nav__list { display: flex; align-items: center; gap: 4px; margin: 0; padding: 0; list-style: none; }
.site-nav__item { position: relative; }
.site-nav__link {
  white-space: nowrap;
  display: inline-flex; align-items: center; gap: 4px;
  min-height: 44px; padding: 0 12px;
  border: 0; border-radius: 8px; background: none;
  color: inherit; font-size: var(--site-nav-size, .9688rem); font-weight: var(--site-nav-weight, 700); text-decoration: none;
  cursor: pointer;
}
.site-nav__link:hover { background: color-mix(in srgb, currentColor 9%, transparent); }
.site-nav__link[aria-current="page"] { text-decoration: none; }
.site-nav__chevron { width: 16px; height: 16px; transition: transform .16s ease; }
.site-nav__item--menu.is-open .site-nav__chevron { transform: rotate(180deg); }

/* Services flyout: hangs flush from the bottom edge of the header bar (square top, rounded bottom), left-aligned to
   its nav item so it never runs off the left edge. The top padding spans from the link down to the bar's edge, so the
   pointer never crosses a gap. */
.site-nav__menu {
  position: absolute; top: 100%; left: 0; z-index: 10;
  width: min(560px, 92vw);
  --_drop: calc((var(--site-header-height) - 44px) / 2 + 1px);
  padding-top: var(--_drop);
  /* One shadow for the whole flyout, following its shape and falling downward (no clip-path: it would also clip the hover bridge). */
  filter: drop-shadow(0 18px 18px rgb(0 0 0 / 15%));
  transform: translateY(-6px);
  visibility: hidden; opacity: 0;
  transition: opacity .22s cubic-bezier(.4, 0, .2, 1), transform .22s cubic-bezier(.4, 0, .2, 1), visibility .22s;
}
.site-nav__item--menu.is-open .site-nav__menu { visibility: visible; opacity: 1; transform: translateY(0); }
@media (hover: hover) and (min-width: 1025px) {
  .site-nav__item--menu:hover .site-nav__menu { visibility: visible; opacity: 1; transform: translateY(0); }
  .site-nav__item--menu:hover .site-nav__chevron { transform: rotate(180deg); }
}
.site-nav__menu > ul {
  display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2px;
  margin: 0; padding: 10px;
  list-style: none;
  border: 1px solid var(--cheers-component-border); border-top: 0;
  border-radius: 0;
  background: var(--cheers-component-background);
}
.site-nav__menu > ul a { display: grid; gap: 2px; padding: 12px 14px; border-radius: 10px; color: var(--cheers-component-heading); text-decoration: none; }
.site-nav__menu > ul a:hover { background: var(--cheers-component-surface); }
.site-nav__menu strong { font-size: .9375rem; }
.site-nav__menu span { color: var(--cheers-component-muted); font-size: .8125rem; line-height: 1.35; }
.site-nav__menu-all {
  display: flex; align-items: center; justify-content: space-between;
  padding: 14px 24px;
  border: 1px solid var(--cheers-component-border); border-top: 0;
  border-radius: 0 0 14px 14px;
  background: var(--cheers-component-surface);
  color: var(--cheers-component-heading); font-weight: 800; font-size: .9375rem; text-decoration: none;
}
.site-nav__menu-all svg { width: 18px; height: 18px; }

.site-header__end { display: flex; align-items: center; gap: 14px; margin-left: auto; }
.site-header__phone { display: inline-flex; align-items: center; gap: 8px; color: inherit; font-weight: 800; text-decoration: none; white-space: nowrap; font-variant-numeric: tabular-nums; }
.site-header__phone svg { width: 18px; height: 18px; }
.site-header__cta { --site-button-bg: var(--site-header-action); --site-button-text: var(--site-header-action-text); min-height: 44px; padding: 10px 18px; box-shadow: inset 0 1px 0 rgb(255 255 255 / 32%), 0 6px 16px color-mix(in srgb, var(--site-header-action) 30%, transparent); }
/* Mobile two-line menu (left) and call icon (right). No background behind either. */
.site-header__call { display: none; width: 44px; height: 44px; align-items: center; justify-content: center; color: inherit; }
.site-header__call svg { width: 24px; height: 24px; }
.site-header__toggle { display: none; width: 44px; height: 44px; align-items: center; justify-content: center; padding: 0; border: 0; background: none; color: inherit; cursor: pointer; }
.site-header__bars { position: relative; display: block; width: 26px; height: 12px; }
.site-header__bars > span {
  position: absolute; left: 0; right: 0; height: 2px; border-radius: 2px; background: currentColor;
  transition: transform .3s cubic-bezier(.4, 0, .2, 1), top .3s cubic-bezier(.4, 0, .2, 1);
}
.site-header__bars > span:first-child { top: 0; }
.site-header__bars > span:last-child { top: 10px; }
.site-header__toggle[aria-expanded="true"] .site-header__bars > span { top: 5px; }
.site-header__toggle[aria-expanded="true"] .site-header__bars > span:first-child { transform: rotate(45deg); }
.site-header__toggle[aria-expanded="true"] .site-header__bars > span:last-child { transform: rotate(-45deg); }
@media (prefers-reduced-motion: reduce) { .site-header__bars > span, .site-nav__menu { transition: none; } }

.site-drawer { --_drawer-line: color-mix(in srgb, var(--site-header-text) 16%, transparent); border-top: 1px solid var(--_drawer-line); background: var(--site-header-background); color: var(--site-header-text); max-height: calc(100dvh - var(--site-header-height)); overflow-y: auto; }
.site-drawer .site-wrap { display: grid; gap: 24px; padding-block: 4px 28px; }
/* Drawer: same background and text color as the header bar; plain full-width rows with hairline dividers; Services expands in place. */
.site-drawer__links { margin: 0; padding: 0; list-style: none; }
.site-drawer__links > li { border-bottom: 1px solid var(--_drawer-line); }
.site-drawer__row {
  display: flex; align-items: center; justify-content: space-between; width: 100%;
  min-height: 60px; padding: 0; border: 0; background: none;
  color: inherit; font-size: 1.125rem; font-weight: 700; text-align: left; text-decoration: none; cursor: pointer;
}
.site-drawer__row[aria-current="page"] { text-decoration: none; }
.site-drawer__chevron { width: 20px; height: 20px; transition: transform .25s cubic-bezier(.4, 0, .2, 1); }
.site-drawer__row[aria-expanded="true"] .site-drawer__chevron { transform: rotate(180deg); }
.site-drawer__sub { margin: -4px 0 0 2px; padding: 0 0 14px 16px; list-style: none; }
/* A group's divider line swings from horizontal to vertical when the group opens: it turns on its
   middle and lands beside the links, resizing to their height (the header script sets --rule). Reverses on close. */
.site-drawer__links > li.site-drawer__group { position: relative; border-bottom: 0; }
.site-drawer__group::after {
  content: ""; position: absolute; pointer-events: none;
  top: 59px; left: 0; width: 100%; height: 1px;
  background: var(--_drawer-line);
  transform-origin: 50% 50%;
  transition: transform .5s cubic-bezier(.4, 0, .2, 1), width .5s cubic-bezier(.4, 0, .2, 1), left .5s cubic-bezier(.4, 0, .2, 1), top .5s cubic-bezier(.4, 0, .2, 1), height .2s ease;
}
/* Turning on its middle: the box is placed so that, once rotated, the line sits at x 3px from y 59px down. */
.site-drawer__group[data-open]::after { left: calc(3px - var(--rule, 200px) / 2); top: calc(59px + var(--rule, 200px) / 2); width: var(--rule, 200px); height: 2px; transform: rotate(-90deg); } /* counter-clockwise */
.site-drawer__sub a { display: flex; align-items: center; gap: 8px; min-height: 44px; color: color-mix(in srgb, var(--site-header-text) 84%, transparent); font-size: 1rem; font-weight: 500; text-decoration: none; }
.site-drawer__sub .site-drawer__all { color: var(--site-header-text); font-weight: 750; }
.site-drawer__sub svg { width: 16px; height: 16px; }
/* Drawer buttons use the same pair as the sticky Schedule | Call bar, so a brand's CTAs read the same everywhere. */
.site-drawer .site-drawer__call { --site-button-bg: var(--site-action-bar-call); --site-button-text: var(--site-action-bar-call-text); }
.site-drawer .site-drawer__book { --site-button-bg: var(--site-action-bar-book); --site-button-text: var(--site-action-bar-book-text); }
.site-drawer .site-drawer__call, .site-drawer .site-drawer__book { border-color: color-mix(in srgb, var(--site-header-text) 28%, transparent); }
@media (prefers-reduced-motion: reduce) { .site-drawer__chevron, .site-drawer__group::after { transition: none; } }

@media (max-width: 1180px) { .site-header__phone span { display: none; } }
@media (max-width: 1024px) {
  .site-header__inner { display: grid; grid-template-columns: 44px minmax(0, 1fr) 44px; gap: 12px; }
  /* Menu on the left, logo centered, call on the right. */
  .site-header__end { grid-column: 1; grid-row: 1; margin: 0; justify-self: start; }
  .site-header__logo { grid-column: 2; grid-row: 1; justify-self: center; text-align: center; }
  .site-header__call { grid-column: 3; grid-row: 1; justify-self: end; display: inline-flex; margin-right: -10px; }
  .site-nav, .site-header__phone, .site-header__cta { display: none; }
  .site-header__toggle { display: inline-flex; margin-left: -9px; }
}
/* Content-fit states on wider screens (set by the header's inline fit script). */
.site-header[data-fit] .site-header__phone span { display: none; }
.site-header[data-fit] .site-header__inner { gap: 16px; }
.site-header[data-fit] .site-nav__link { padding-inline: 9px; }
.site-header[data-fit="menu"] .site-nav { display: none; }
.site-header[data-fit="menu"] .site-header__toggle { display: inline-flex; margin-right: -9px; }
.site-header[data-fit="compact"] .site-header__inner { display: grid; grid-template-columns: 44px minmax(0, 1fr) 44px; gap: 12px; }
/* Same as the phone layout when even the menu state does not fit. */
.site-header[data-fit="compact"] .site-header__end { grid-column: 1; grid-row: 1; margin: 0; justify-self: start; }
.site-header[data-fit="compact"] .site-header__logo { grid-column: 2; grid-row: 1; justify-self: center; text-align: center; }
.site-header[data-fit="compact"] .site-header__call { grid-column: 3; grid-row: 1; justify-self: end; display: inline-flex; margin-right: -10px; }
.site-header[data-fit="compact"] .site-nav, .site-header[data-fit="compact"] .site-header__phone, .site-header[data-fit="compact"] .site-header__cta { display: none; }
.site-header[data-fit="compact"] .site-header__toggle { display: inline-flex; margin-left: -9px; }
@media (min-width: 1025px) { .site-header:not([data-fit="menu"]):not([data-fit="compact"]) .site-drawer { display: none !important; } }
@media (max-width: 560px) {
  :root { --site-header-height: 64px; }
  .site-logo__word { font-size: 1.2rem; }
}

/* Wide services panel (a family brand services menu): every service link in columns, an emergency link on top. */
.site-nav__menu--wide { width: min(780px, 88vw); }
.site-nav__menu--wide > ul { grid-template-columns: repeat(3, minmax(0, 1fr)); border-radius: 0 0 14px 14px; }
.site-nav__menu--wide > ul a { padding: 10px 14px; }
.site-nav__emergency { display: flex; align-items: center; gap: 8px; padding: 14px 24px; border: 1px solid var(--cheers-component-border); border-top: 0; border-bottom: 0; background: var(--cheers-component-background); color: var(--cheers-component-accent); font-weight: 800; text-decoration: none; }
.site-nav__emergency svg { width: 18px; height: 18px; }
.site-nav__menu--wide .site-nav__emergency + ul { border-top: 0; }
/* Simple dropdown for a nav item with children ("Meet Rock"). */
.site-nav__menu--list { width: 260px; }
.site-nav__menu--list > ul { grid-template-columns: minmax(0, 1fr); border-radius: 0 0 14px 14px; }
/* Phone menu: service categories expand in place inside Services. */
.site-drawer__subgroup { border-top: 1px solid var(--_drawer-line); }
.site-drawer__subrow { display: flex; align-items: center; justify-content: space-between; width: 100%; min-height: 48px; padding: 0; border: 0; background: none; color: inherit; font-size: 1rem; font-weight: 650; text-align: left; cursor: pointer; }
.site-drawer__subrow[aria-expanded="true"] .site-drawer__chevron { transform: rotate(180deg); }
.site-drawer__subgroup > .site-drawer__sub { margin: 0; padding: 0 0 10px 14px; }
/* Pill actions: outline booking pill, then a solid phone pill that shows the number. */
.site-header--pills .site-header__end { gap: 12px; }
.site-header--pills .site-header__cta { order: 1; --site-button-bg: transparent; --site-button-text: var(--site-header-text); border: 1px solid currentColor; box-shadow: none; }
.site-header--pills .site-header__phone { order: 2; min-height: 48px; padding: 0 20px; border-radius: 999px; background: var(--site-header-phone-background, #ffffff); color: var(--site-header-phone-text, var(--cheers-component-heading)); }
.site-header--pills .site-header__phone svg { color: inherit; }
.site-header--pills[data-fit] .site-header__phone span { display: inline; }
.site-header--pills[data-fit="menu"] .site-header__phone, .site-header--pills[data-fit="compact"] .site-header__phone { order: 2; }
.site-header--pills[data-fit="menu"] .site-header__toggle { order: 3; margin-left: 4px; }
/* Grouped services panel: titled columns (HVAC: Air Conditioning, Heating, …). */
.site-nav__groups { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px 24px; padding: 18px 24px; border: 1px solid var(--cheers-component-border); border-top: 0; background: var(--cheers-component-background); }
.site-nav__group-title { margin: 0 0 6px; font-size: .8125rem; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; color: var(--cheers-component-muted); }
.site-nav__group-title a { color: inherit; text-decoration: none; }
.site-nav__group ul { margin: 0; padding: 0; list-style: none; }
.site-nav__group li a { display: block; padding: 6px 0; color: var(--cheers-component-heading); font-size: .9375rem; text-decoration: none; }
.site-nav__group li a:hover { color: var(--cheers-component-accent); }
/* Pill-style headers point their menus sideways (›) and turn them down when open, like the Rock restyle. */
.site-header--pills .site-nav__chevron { transform: rotate(-90deg); }
.site-header--pills .site-nav__item--menu.is-open .site-nav__chevron { transform: rotate(0deg); }
@media (hover: hover) and (min-width: 1025px) { .site-header--pills .site-nav__item--menu:hover .site-nav__chevron { transform: rotate(0deg); } }
/* Icons never shrink inside flex rows (Rock HVAC: chevrons squashed to 16x7). One chevron size everywhere; it turns
   when its menu is open. */
.site-header svg, .site-drawer svg { flex: none; }
.site-nav__chevron { width: 12px; height: 12px; margin-left: 4px; transition: transform .2s; }
.site-nav__toggle[aria-expanded="true"] .site-nav__chevron { transform: rotate(180deg); }
/* The emergency link is a filled pill at the top of the panel (Rock live: "24/7 emergencies"). */
.site-nav__emergency { display: block; padding: 16px 24px 4px; }
.site-nav__pill, .site-nav__menu .site-nav__pill { display: inline-flex; align-items: center; gap: 8px; min-height: 36px; padding: 0 16px; border-radius: 999px; background: var(--cheers-component-accent); color: var(--site-accent-text); font-size: .875rem; font-weight: 800; line-height: 1.2; }
.site-nav__pill svg { width: 16px; height: 16px; }
.site-nav__emergency:hover .site-nav__pill { filter: brightness(1.08); }
@media (hover: hover) and (min-width: 1025px) { .site-nav__item--menu.is-dismissed:hover .site-nav__menu { visibility: hidden; opacity: 0; } }
/* A full-colour logo on a dark header sits on a light plate (Parks: navy bar, navy wordmark). */
.site-header__logo { background: var(--site-header-logo-plate, transparent); border-radius: 10px; padding: var(--site-header-logo-pad, 0); }
/* Tablet and phone: menu left, logo centered, call right. Tablets get a "Call now" button; phones keep the icon.
   (The old in-between "menu" state, logo left + phone + booking + menu right, is gone.) */
.site-header__callnow { display: none !important; }
@media (max-width: 1024px) {
  .site-header__inner { grid-template-columns: minmax(44px, 1fr) auto minmax(44px, 1fr); }
}
.site-header[data-fit="compact"] .site-header__inner { grid-template-columns: minmax(44px, 1fr) auto minmax(44px, 1fr); }
@media (min-width: 600px) {
  .site-header .site-header__inner > .site-header__callnow { grid-column: 3; grid-row: 1; justify-self: end; white-space: nowrap; }
  .site-header[data-fit="compact"] .site-header__callnow { display: inline-flex !important; }
  .site-header[data-fit="compact"] .site-header__call { display: none; }
}
@media (min-width: 600px) and (max-width: 1024px) {
  .site-header__callnow { display: inline-flex !important; }
  .site-header__call { display: none !important; }
}
.site-header--pills .site-header__callnow { --site-button-bg: var(--site-header-phone-background, #ffffff); --site-button-text: var(--site-header-phone-text, var(--cheers-component-heading)); border: 0; }

/* 2.23 — Every desktop dropdown is the same width: it spans the nav row (at least min(720px, 60vw)), hanging from the
   row's right edge, so each menu sits under every nav button and never runs off screen. Lists flow in three columns. */
@media (min-width: 1025px) {
  .site-header .site-nav__list { position: relative; }
  .site-header .site-nav__item--menu { position: static; }
  .site-header .site-nav__menu { left: auto; right: 0; width: max(100%, min(var(--site-nav-menu-width, 720px), 60vw)); }
  .site-header .site-nav__menu--list > ul, .site-header .site-nav__menu--family > ul { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
/* Other Services (header familyMenu): sister sites as icon tiles. */
.site-nav__menu--family > ul { border-radius: 0 0 14px 14px; }
.site-nav__menu--family > ul a { display: flex; align-items: center; gap: 12px; }
.site-nav__family-icon { display: inline-grid; place-items: center; width: 32px; height: 32px; color: var(--site-hero-accent, var(--cheers-component-accent)); }
.site-nav__family-icon svg { width: 26px; height: 26px; }
.site-drawer__sub--family svg { width: 20px; height: 20px; color: var(--site-bar-accent, var(--site-hero-accent, currentColor)); }
/* Phone menu: no divider lines between the category rows inside a group. */
.site-drawer__subgroup { border-top: 0; }
/* 2.23.2: dropdown hover changes color, not background — text and icon turn the brand accent (Rock: turquoise). */
.site-header .site-nav__menu > ul a:hover, .site-header .site-nav__menu-all:hover, .site-header .site-nav__group li a:hover { background: none; color: var(--site-hero-accent, var(--cheers-component-accent)); }
.site-header .site-nav__menu > ul a:hover strong, .site-header .site-nav__menu > ul a:hover span { color: inherit; }
.site-header .site-nav__menu .site-nav__family-icon { color: var(--site-hero-accent, var(--cheers-component-accent)); }
.site-header .site-nav__menu a { transition: color .15s ease; }
/* 2.23.3: navAlign "start" — the nav sits right after the logo (Rock Service Pros). */
.site-header[data-nav-align="start"] .site-nav { justify-content: flex-start; }
/* 2.23.5 — Dropdowns wear the sticky header's own background and text color, so the menu reads as part of the bar.
   Hover turns text + icon --site-nav-hover (a light-header site sets it in its design file), else the hero accent. */
.site-header .site-nav__menu > ul, .site-header .site-nav__groups, .site-header .site-nav__emergency, .site-header .site-nav__menu-all {
  background: var(--site-header-background); border-color: color-mix(in srgb, var(--site-header-text) 14%, transparent); }
.site-header .site-nav__menu-all { background: linear-gradient(color-mix(in srgb, var(--site-header-text) 7%, transparent), color-mix(in srgb, var(--site-header-text) 7%, transparent)), var(--site-header-background); border-top: 1px solid color-mix(in srgb, var(--site-header-text) 14%, transparent); }
.site-header .site-nav__menu > ul a, .site-header .site-nav__menu strong, .site-header .site-nav__group li a, .site-header .site-nav__menu-all { color: var(--site-header-text); }
.site-header .site-nav__menu span:not(.site-nav__pill):not(.site-nav__family-icon), .site-header .site-nav__group-title { color: color-mix(in srgb, var(--site-header-text) 72%, transparent); }
.site-header .site-nav__menu > ul a:hover, .site-header .site-nav__menu-all:hover, .site-header .site-nav__group li a:hover { color: var(--site-nav-hover, var(--site-hero-accent, var(--cheers-component-accent))); }
.site-header .site-nav__menu > ul a:hover span:not(.site-nav__family-icon) { color: inherit; }
.site-header .site-nav__menu .site-nav__family-icon { color: var(--site-nav-hover, var(--site-hero-accent, var(--cheers-component-accent))); }
/* Landing pages: logo left, call button right, nothing else (at every width). */
.site-header--minimal .site-header__inner--minimal { display: flex !important; align-items: center; justify-content: space-between; gap: 16px; }
.site-header--minimal .site-header__cta { display: inline-flex !important; white-space: nowrap; }
@media (max-width: 420px) { .site-header--minimal .site-header__cta { padding-inline: 14px; font-size: .9375rem; } }

/* site/components/page-hero/page-hero.css */
/* page-hero — library landing-system hero: content-sized, photo + left shade, white type. */
.site-hero { position: relative; isolation: isolate; overflow: hidden; background: var(--cheers-component-heading); color: #ffffff; }
.site-hero__image { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; object-position: var(--site-hero-focus, 50% 12%); }
/* Tight, but tall enough that people in the photo keep their heads on wide screens. */
.site-hero { min-height: clamp(380px, 34vw, 620px); display: grid; align-items: center; }
.site-hero__shade { position: absolute; inset: 0; z-index: -1; background: var(--site-hero-shade); }
.site-hero__copy { display: grid; gap: 16px; justify-items: start; padding-block: clamp(44px, 6.5vw, 96px); }
.site-hero__copy > * { margin: 0; max-width: 760px; }
.site-hero .site-eyebrow { color: var(--site-hero-eyebrow, #ffffff); opacity: .92; }
.site-hero h1 { max-width: 20ch !important; color: #ffffff; font-size: clamp(2.25rem, 4.4vw, 3.9rem); font-weight: var(--display-weight); line-height: 1.04; letter-spacing: var(--display-tracking); }
.site-hero__accent { display: block; color: var(--site-hero-accent); }
.site-hero--interior h1 { max-width: 22ch !important; font-size: clamp(2rem, 3.4vw, 3rem); }
.site-hero--interior .site-hero__copy { padding-block: clamp(36px, 5vw, 72px); }
.site-hero__lede { max-width: 560px !important; font-size: clamp(1rem, 1.4vw, 1.1875rem); line-height: 1.6; color: rgb(255 255 255 / 90%); }
.site-hero__rating { display: flex; align-items: center; gap: 8px; font-size: .9375rem; color: rgb(255 255 255 / 92%); }
.site-hero__stars { color: var(--cheers-component-rating); letter-spacing: .04em; }
.site-hero__crumbs { display: flex; gap: 10px; font-size: .875rem; color: rgb(255 255 255 / 78%); }
.site-hero__crumbs a { text-decoration: none; }
.site-hero__crumbs a:hover { color: #ffffff; text-decoration: underline; }
.site-hero__checks { display: grid; grid-template-columns: repeat(2, minmax(0, max-content)); gap: 10px 28px; margin: 4px 0 0; padding: 0; list-style: none; font-weight: 650; }
.site-hero__checks li { display: flex; align-items: center; gap: 10px; }
.site-hero__checks svg { width: 18px; height: 18px; flex: none; color: var(--site-hero-accent); stroke-width: 2.6; }
@media (max-width: 600px) {
  .site-hero__shade { background: linear-gradient(0deg, rgb(0 0 0 / 83%), rgb(0 0 0 / 38%)); }
  .site-hero h1 { font-size: clamp(2rem, 8.4vw, 2.6rem); }
  .site-hero__checks { grid-template-columns: minmax(0, 1fr); }
}
.site-hero .site-button:not(.site-button--outline) { --site-button-bg: var(--site-hero-action); --site-button-text: var(--site-hero-action-text); }
/* Hero secondary button: liquid glass by default; a brand can make it solid with --site-hero-secondary. */
.site-hero .site-button--outline { background: var(--site-hero-secondary, linear-gradient(180deg, rgb(255 255 255 / 24%), rgb(255 255 255 / 10%))); color: var(--site-hero-secondary-text, #ffffff); }
.site-hero .site-button--outline:hover { background: var(--site-hero-secondary, linear-gradient(180deg, rgb(255 255 255 / 30%), rgb(255 255 255 / 14%))); }
/* Home hero extras: background video over the photo, mascot beside the headline, sister-site icon row on phones. */
.site-hero__picture { display: contents; }
.site-hero__video { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; object-position: var(--site-hero-focus, 50% 12%); }
.site-hero__lead { display: inline-flex; align-items: flex-start; gap: .25em; max-width: 100%; }
.site-hero__lead > span { min-width: 0; }
.site-hero__mascot { flex: none; width: clamp(64px, 5.4vw, 84px); height: auto; margin-top: -.2em; }
.site-hero__family { display: none; }
@media (max-width: 760px) {
  .site-hero__family { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px 12px; margin-top: 8px; }
  .site-hero__family p { grid-column: 1 / -1; margin: 0 0 4px; font-size: .875rem; font-weight: 700; }
  .site-hero__family a { display: grid; justify-items: center; gap: 8px; min-height: 64px; padding: 10px 6px; border-radius: 8px; color: inherit; font-size: .875rem; text-align: center; text-decoration: none; }
  .site-hero__family a:hover { background: rgb(255 255 255 / 10%); }
  .site-hero__family svg { width: 28px; height: 28px; color: var(--site-hero-accent, currentColor); }
  .site-hero__mascot { width: clamp(56px, 17vw, 80px); }
}
@media (prefers-reduced-motion: reduce) { .site-hero__video { display: none; } }
/* Photo credit (CC photos such as a city landmark used as the hero): a quiet line in the corner. */
.site-hero__credit { position: absolute; right: 12px; bottom: 8px; max-width: 60%; overflow: hidden; color: rgb(255 255 255 / 70%); font-size: .6875rem; line-height: 1.3; text-align: right; white-space: nowrap; text-overflow: ellipsis; }

/* Title band (offer pages): light, short, no photo. */
.site-hero.site-hero--band { display: block; min-height: 0; padding: clamp(40px, 6vw, 72px) 0 clamp(28px, 4vw, 44px); background: var(--site-band, color-mix(in srgb, var(--cheers-component-heading) 9%, white)); color: var(--cheers-component-heading); }
.site-hero--band h1 { max-width: 22ch; margin: 0; color: var(--cheers-component-heading); }
.site-hero--band .site-hero__crumbs, .site-hero--band .site-hero__crumbs a { color: var(--cheers-component-muted); }
/* Article byline row: author, date, reading time, separated by thin rules. */
.site-hero__meta { display: flex; flex-wrap: wrap; gap: 6px 14px; margin: 18px 0 0; font-size: .9375rem; font-weight: 600; opacity: .9; }
.site-hero__meta span + span::before { content: ""; display: inline-block; width: 1px; height: .9em; margin-right: 14px; background: currentColor; opacity: .5; vertical-align: -1px; }
/* A hero with only a title and buttons (no lede) is shorter, so its copy doesn't float in a tall empty photo. */
.site-hero--interior:not(:has(.site-hero__lede)) { min-height: clamp(320px, 26vw, 440px); }
/* Phones: the mascot sits beside the first line without stretching it (Rock: no gap between "Plumbing trouble?" and
   "Rock's on it."). */
@media (max-width: 760px) {
  .site-hero__lead { position: relative; display: block; padding-right: clamp(60px, 18vw, 84px); }
  .site-hero__mascot { position: absolute; top: -.15em; right: 0; width: clamp(52px, 16vw, 76px); margin: 0; }
  .site-hero__lead + .site-hero__accent { display: block; margin-top: .05em; }
}
@media (max-width: 760px) { .site-hero__family:has(> a:nth-of-type(3):last-child) { grid-template-columns: repeat(3, minmax(0, 1fr)); } .site-hero__family:has(> a:nth-of-type(3):last-child) > p { grid-column: 1 / -1; } }

/* Hero layout "side" (brand option): words on the brand panel at left, the photo on the right fading into it — for photos of
   people, so faces never sit under the headline. The taller photo box crops less; the photo focus point aims it at faces.
   On phones the photo sits above the words, uncovered. */
.site-hero--side { background: var(--site-hero-panel, var(--cheers-component-heading)); }
@media (min-width: 901px) {
  .site-hero--side :is(.site-hero__image, .site-hero__video) { left: auto; right: 0; width: 58%; object-position: var(--site-hero-focus, 50% 30%); -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 24%); mask-image: linear-gradient(90deg, transparent 0, #000 24%); }
  .site-hero--side .site-hero__shade { background: linear-gradient(90deg, color-mix(in srgb, var(--site-hero-panel, var(--cheers-component-heading)) 55%, transparent) 30%, transparent 60%); }
  .site-hero--side .site-hero__copy > * { max-width: min(560px, 44vw); }
  .site-hero--side h1 { max-width: min(18ch, 46vw) !important; }
  .site-hero--side .site-hero__checks { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 900px) {
  .site-hero--side { display: block; min-height: 0; }
  .site-hero--side :is(.site-hero__image, .site-hero__video) { position: relative; inset: auto; z-index: 0; display: block; width: 100%; height: auto; aspect-ratio: 4 / 3; object-position: var(--site-hero-focus, 50% 30%); }
  .site-hero--side:has(.site-hero__video) .site-hero__image { display: none; }
  .site-hero--side .site-hero__shade { display: none; }
  .site-hero--side .site-hero__copy { padding-block: 28px 36px; }
}
/* The band is a compact title strip: the content right under it is what the page is for. */
.site-hero--band .site-hero__copy { padding-block: 0; gap: 12px; }
.site-hero--band h1 { font-size: clamp(1.875rem, 3.6vw, 2.75rem); max-width: 28ch; }

/* 2.23 — The sister-site icon row shows on desktop too, the same icons as on phones, in one row. */
@media (min-width: 761px) {
  .site-hero__family { display: flex; flex-wrap: wrap; gap: 4px 6px; margin-top: 22px; }
  .site-hero__family p { flex-basis: 100%; margin: 0 0 4px; font-size: .875rem; font-weight: 700; }
  .site-hero__family a { display: grid; justify-items: center; align-content: center; gap: 8px; min-width: 104px; min-height: 76px; padding: 10px 12px; border-radius: 10px; color: inherit; font-size: .875rem; text-align: center; text-decoration: none; }
  .site-hero__family a:hover { background: rgb(255 255 255 / 10%); }
  .site-hero__family svg { width: 28px; height: 28px; color: var(--site-hero-accent, currentColor); }
}
/* 2.23.4 — Thinner heroes (live-site height): sized to the copy with modest padding, so the page starts higher. */
.site-hero { min-height: 0; }
.site-hero__copy { padding-block: clamp(40px, 5vw, 64px); }
.site-hero--interior .site-hero__copy { padding-block: clamp(32px, 4vw, 56px); }
.site-hero--interior:not(:has(.site-hero__lede)) { min-height: 0; }

/* site/components/section-nav/section-nav.css */
/* section-nav — on-page jump links under the hero (desktop only; it never sticks — it covered headings while scrolling). */
.site-section-nav { position: relative; background: var(--cheers-component-surface); border-bottom: 1px solid var(--cheers-component-border); }
.site-section-nav ul { display: flex; gap: 4px; margin: 0; padding: 0; overflow-x: auto; list-style: none; scrollbar-width: none; }
.site-section-nav ul::-webkit-scrollbar { display: none; }
.site-section-nav a { display: inline-flex; align-items: center; min-height: 52px; padding: 0 14px; color: var(--cheers-component-heading); font-weight: 750; font-size: .9375rem; white-space: nowrap; text-decoration: none; }
.site-section-nav li:first-child a { padding-left: 0; }
.site-section-nav a:hover { text-decoration: underline; text-underline-offset: 6px; }
@media (max-width: 900px) { .site-section-nav { display: none; } }

/* site/components/photo-split/photo-split.css */
/* photo-split — library page-photo-split: heading above, copy + rounded photo side by side; copy first on phones. */
.site-split { padding-block: var(--cheers-page-space); background: var(--cheers-component-background); }
.site-split--surface { background: var(--cheers-component-surface); }
.site-split__head { display: grid; gap: 12px; max-width: 760px; }
.site-split__head > * { margin: 0; }
.site-split h2 { color: var(--cheers-component-heading); font-size: var(--site-h2-size); font-weight: var(--display-weight); line-height: 1.1; letter-spacing: var(--display-tracking); }
.site-split__head > p:last-child { color: var(--cheers-component-muted); font-size: 1.0625rem; line-height: 1.65; }
.site-split__grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 28px; margin-top: 32px; }
.site-split__copy { display: grid; grid-template-columns: minmax(0, 1fr); gap: 16px; align-content: start; min-width: 0; overflow-wrap: break-word; }
.site-split__copy > p { margin: 0; font-size: 1.0625rem; line-height: 1.7; max-width: 62ch; }
.site-split__items { display: grid; margin: 0; padding: 0; list-style: none; }
.site-split__items li { display: grid; grid-template-columns: 44px minmax(0, 1fr); gap: 16px; align-items: start; padding: 14px 0; }
.site-split__icon { display: grid; place-items: center; width: 44px; height: 44px; border: 1px solid var(--cheers-component-border); border-radius: 50%; background: var(--cheers-component-surface); color: var(--cheers-component-accent); }
.site-split__icon svg { width: 22px; height: 22px; stroke-width: 1.8; }
.site-split__items strong { padding-top: 2px; }
.site-split__items strong { display: block; color: var(--cheers-component-heading); font-size: 1.125rem; }
.site-split__items div > span { display: block; margin-top: 6px; color: var(--cheers-component-muted); line-height: 1.6; }
.site-split__more > summary { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; color: var(--cheers-component-heading); font-weight: 750; list-style: none; cursor: pointer; }
.site-split__more > summary::-webkit-details-marker { display: none; }
.site-split__more svg { width: 18px; height: 18px; transition: transform .18s ease; }
.site-split__more[open] svg { transform: rotate(180deg); }
.site-split__more .is-less, .site-split__more[open] .is-more { display: none; }
.site-split__more[open] .is-less { display: inline; }
.site-split__more p { margin: 8px 0 0; line-height: 1.7; }
.site-split__link { display: inline-flex; align-items: center; gap: 8px; justify-self: start; min-height: 44px; color: var(--cheers-component-accent); font-weight: 800; text-underline-offset: 4px; }
.site-split__link svg { width: 18px; height: 18px; }
.site-split__photo { margin: 0; overflow: hidden; border-radius: var(--cheers-component-radius); }
.site-split__photo img { width: 100%; height: auto; aspect-ratio: 5 / 4; object-fit: cover; }
@media (min-width: 900px) {
  .site-split__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(32px, 5vw, 72px); align-items: stretch; }
  .site-split__photo { position: relative; min-height: 360px; }
  .site-split__photo img { position: absolute; inset: 0; height: 100%; aspect-ratio: auto; }
  .site-split--reverse .site-split__photo { order: -1; }
}
/* Closing (data-closing from the site motion script): flip the label and chevron as the close starts. */
.site-split__more[data-closing] svg { transform: none; }
.site-split__more[data-closing] .is-less { display: none; }
.site-split__more[data-closing] .is-more { display: inline; }
/* No photo: copy full width; icon list in two columns on desktop. */
.site-split--nophoto .site-split__copy > p { max-width: 72ch; }
@media (min-width: 900px) {
  .site-split--nophoto .site-split__grid { grid-template-columns: minmax(0, 1fr); }
  .site-split--nophoto .site-split__items { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: clamp(32px, 5vw, 72px); }
}
/* Body copy with structure (markdown body items): subheads and lists; a long list (communities) flows into columns. */
.site-split__copy > h3 { margin: 8px 0 0; color: var(--cheers-component-heading); font-family: var(--font-display); font-size: 1.25rem; line-height: 1.3; }
.site-split__copy > ul, .site-split__copy > ol { display: grid; gap: 8px; margin: 0; padding-left: 1.2em; font-size: 1.0625rem; line-height: 1.6; max-width: 62ch; }
.site-split__copy > ul:has(> li:nth-child(13)):not(.site-split__plist):not(.site-split__pcards) { display: block; columns: 3 11rem; column-gap: 24px; max-width: none; }
.site-split__copy > ul:has(> li:nth-child(13)) > li { break-inside: avoid; margin-bottom: 4px; }
/* Numbered points (no icon fits every item): an accent number in place of the icon. */
.site-split__num { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 50%; background: color-mix(in srgb, var(--cheers-component-accent) 12%, var(--cheers-component-background)); color: var(--cheers-component-accent); font-family: var(--font-display); font-size: .9375rem; font-weight: 800; letter-spacing: .02em; }
/* Title-only points: a grid of soft tiles instead of a long thin list. */
.site-split__items--tiles { grid-template-columns: repeat(auto-fill, minmax(min(100%, 240px), 1fr)); gap: 12px; }
.site-split__items--tiles li { align-items: center; padding: 14px 16px; border-radius: calc(var(--cheers-component-radius) * .7); background: var(--cheers-component-surface); }
.site-split__items--tiles strong { padding-top: 0; font-size: 1rem; line-height: 1.35; }
.site-split__items--tiles .site-split__icon, .site-split__items--tiles .site-split__num { background: var(--cheers-component-background); border-color: transparent; }
/* A city's service links: arrow tiles. */
.site-split__links { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 230px), 1fr)); gap: 10px; margin: 0; padding: 0; list-style: none; }
.site-split__links a { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 56px; padding: 12px 18px; border: 1px solid var(--cheers-component-border); border-radius: calc(var(--cheers-component-radius) * .7); background: var(--cheers-component-background); color: var(--cheers-component-heading); font-weight: 750; text-decoration: none; transition: border-color .16s ease, transform .16s ease; }
.site-split__links a:hover { border-color: var(--cheers-component-accent); transform: translateY(-1px); }
.site-split__links svg { flex: none; width: 18px; height: 18px; color: var(--cheers-component-accent); transition: transform .16s ease; }
.site-split__links a:hover svg { transform: translateX(3px); }
@media (prefers-reduced-motion: reduce) { .site-split__links a, .site-split__links svg { transition: none; } .site-split__links a:hover { transform: none; } }
.site-split__copy > .site-split__listlead { margin: 8px 0 -4px; color: var(--cheers-component-heading); font-size: 1.0625rem; font-weight: 750; line-height: 1.5; }
/* point lists line up with the copy (no list indent) */
.site-split__copy > ul.site-split__items, .site-split__copy > ul.site-split__links { padding-left: 0; max-width: none; }
/* Heading + photo with no copy: the photo runs as a wide banner under the heading. */
.site-split--banner .site-split__grid { grid-template-columns: minmax(0, 1fr) !important; }
.site-split--banner .site-split__photo { min-height: 0; }
.site-split--banner .site-split__photo img { position: static; aspect-ratio: 21 / 8; height: auto; }
@media (max-width: 700px) { .site-split--banner .site-split__photo img { aspect-ratio: 4 / 3; } }
/* No photo: points become a card grid across the full width (no empty right half). */
@media (min-width: 900px) {
  .site-split--nophoto .site-split__items:not(.site-split__items--tiles) { grid-template-columns: repeat(auto-fill, minmax(min(100%, 260px), 1fr)); gap: 16px; }
  .site-split--nophoto .site-split__items:not(.site-split__items--tiles) li { grid-template-columns: minmax(0, 1fr); gap: 14px; padding: 22px; border: 1px solid var(--cheers-component-border); border-radius: var(--cheers-component-radius); }
}
/* Long lists: chips, folded after 24. */
.site-split__copy > .site-split__chips, .site-split__all .site-split__chips { display: flex !important; flex-wrap: wrap; gap: 6px 8px; max-width: none; margin: 0; padding: 0; columns: auto; list-style: none; }
.site-split__chips li { margin: 0; padding: 5px 12px; border: 1px solid var(--cheers-component-border); border-radius: 999px; background: var(--cheers-component-surface); color: var(--cheers-component-text); font-size: .875rem; line-height: 1.35; }
.site-split__all > summary { display: inline-flex; align-items: center; min-height: 40px; margin-bottom: 8px; color: var(--cheers-component-accent); font-weight: 750; cursor: pointer; }
/* A long list of "**Service** – what it is" items: a card grid, not dense columns. */
.site-split__copy > ul:has(> li > strong:first-child):has(> li:nth-child(6)) { display: grid !important; grid-template-columns: repeat(auto-fill, minmax(min(100%, 260px), 1fr)); gap: 12px; columns: auto; max-width: none; padding: 0; list-style: none; }
.site-split__copy > ul:has(> li > strong:first-child):has(> li:nth-child(6)) > li { margin: 0; padding: 16px 18px; border-radius: calc(var(--cheers-component-radius) * .7); background: var(--cheers-component-surface); font-size: .9375rem; line-height: 1.55; }
.site-split__copy > ul:has(> li > strong:first-child):has(> li:nth-child(6)) > li > strong:first-child { display: block; margin-bottom: 4px; font-size: 1rem; }
.site-split__copy > h4 { margin: 4px 0 -8px; color: var(--cheers-component-heading); font-size: 1.0625rem; line-height: 1.4; }
/* Intro band: a heading and its paragraph only — centered, compact, with an accent rule (no empty columns). */
.site-split--intro { padding-block: clamp(48px, 6vw, 80px); }
.site-split--intro .site-split__head { max-width: 820px; margin-inline: auto; text-align: center; justify-items: center; }
.site-split--intro .site-split__head::after { content: ""; width: 56px; height: 4px; margin-top: 8px; border-radius: 4px; background: var(--cheers-component-accent); }
.site-split--intro .site-split__head > p:last-of-type { font-size: 1.1875rem; }
.site-split--intro .site-split__grid { display: none; }
/* Text-only sections (no photo): an editorial split instead of a lone column with an empty right half —
   heading and lede hold the left column (sticky while the copy scrolls), the copy reads on the right. A soft
   brand tint marks the section; the first paragraph leads a step larger. */
.site-split--nophoto { background: color-mix(in srgb, var(--cheers-component-accent) 5%, var(--cheers-component-background)); }
.site-split--nophoto.site-split--surface { background: var(--cheers-component-surface); }
.site-split--nophoto .site-split__head > p:not(.site-eyebrow) { color: var(--cheers-component-heading); font-size: 1.125rem; }
.site-split--nophoto .site-split__copy > p:first-child { color: var(--cheers-component-heading); font-size: 1.1875rem; line-height: 1.65; }
@media (min-width: 900px) {
  .site-split--nophoto > .site-wrap { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(32px, 5vw, 80px); align-items: start; }
  .site-split--nophoto .site-split__head { position: sticky; top: calc(var(--site-header-height, 72px) + 32px); padding-top: 18px; border-top: 3px solid var(--cheers-component-accent); }
  .site-split--nophoto .site-split__grid { margin-top: 0; }
  .site-split--nophoto .site-split__copy > p { max-width: 64ch; }
}
.site-split h2 { max-width: 22ch; text-wrap: balance; }
@media (min-width: 900px) {
  /* the copy column sits on a card so the section reads as one composed block */
  .site-split--nophoto .site-split__copy { padding: clamp(24px, 3vw, 40px); border-radius: var(--cheers-component-radius); background: var(--cheers-component-background); box-shadow: 0 1px 0 var(--cheers-component-border), 0 18px 40px -24px rgb(0 0 0 / 22%); }
}
.site-split--nophoto .site-split__links a { background: var(--cheers-component-surface); border-color: transparent; }
/* One point on its own: a callout card (accent edge) rather than a lonely list row. */
.site-split__items--callout li { padding: 20px 22px; border-left: 4px solid var(--cheers-component-accent); border-radius: 0 calc(var(--cheers-component-radius) * .7) calc(var(--cheers-component-radius) * .7) 0; background: var(--cheers-component-surface); }
.site-split__items--callout .site-split__icon { background: var(--cheers-component-background); border-color: transparent; }
/* Photos sit on a brand-colored offset block: depth without another card. */
@media (min-width: 900px) {
  .site-split:not(.site-split--banner) .site-split__photo { overflow: visible; }
  .site-split:not(.site-split--banner) .site-split__photo img { border-radius: var(--cheers-component-radius); }
  .site-split:not(.site-split--banner) .site-split__photo::before { content: ""; position: absolute; z-index: -1; inset: 22px -22px -22px 22px; border-radius: var(--cheers-component-radius); background: color-mix(in srgb, var(--cheers-component-accent) 16%, var(--cheers-component-background)); }
  .site-split--reverse:not(.site-split--banner) .site-split__photo::before { inset: 22px 22px -22px -22px; }
  .site-split:not(.site-split--banner) .site-split__photo { isolation: isolate; }
}
/* Three cards sit in one row (never two plus an orphan); a phone or email in a card is its action link. */
@media (min-width: 900px) {
  .site-split--nophoto .site-split__items:not(.site-split__items--tiles):has(> li:nth-child(3):last-child) { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
.site-split__items a.site-split__action { display: inline-block; margin-top: 6px; color: var(--cheers-component-accent); font-weight: 750; text-decoration: underline; text-underline-offset: 3px; }
.site-split__logo { display: block; width: auto; max-width: 220px; height: auto; max-height: 110px; margin-bottom: 16px; }
.site-split__checks { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 220px), 1fr)); gap: 12px 24px; margin: 8px 0 0; padding: 0; list-style: none; }
.site-split__checks li { display: grid; grid-template-columns: 22px minmax(0, 1fr); gap: 10px; align-items: start; color: var(--cheers-component-heading); font-weight: 650; line-height: 1.45; }
.site-split__checks svg { width: 20px; height: 20px; margin-top: 1px; color: var(--cheers-component-accent); }
.site-split__photo--video { align-self: center; }
.site-split__photo--video::before, .site-split__photo--video::after { display: none; }
/* Continuation sections (structured from a Read-more list) and their pieces. */
.site-split--cont { padding-top: clamp(40px, 5vw, 64px); padding-bottom: clamp(40px, 5vw, 64px); }
.site-split__items--cards { grid-template-columns: repeat(auto-fill, minmax(min(100%, 260px), 1fr)) !important; gap: 14px !important; }
.site-split__items--cards li { grid-template-columns: minmax(0, 1fr) !important; gap: 12px !important; padding: 22px !important; border: 1px solid var(--cheers-component-border); border-radius: var(--cheers-component-radius); background: #ffffff; }
.site-split__faq { display: grid; gap: 10px; margin-top: 8px; }
.site-split__faq details { border: 1px solid var(--cheers-component-border); border-radius: var(--cheers-component-radius); background: #ffffff; }
.site-split__faq summary { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 16px 20px; color: var(--cheers-component-heading); font-weight: 750; list-style: none; cursor: pointer; }
.site-split__faq summary::-webkit-details-marker { display: none; }
.site-split__faq summary svg { width: 18px; height: 18px; flex: none; transition: transform .18s; }
.site-split__faq details[open] summary svg { transform: rotate(180deg); }
.site-split__faq details p { margin: 0; padding: 0 20px 18px; color: var(--cheers-component-muted); line-height: 1.6; }
/* A text section that carries 3+ cards stacks: heading above, cards across the full width (no cramped right column). */
@media (min-width: 900px) {
  .site-split--nophoto:has(.site-split__items--cards) > .site-wrap { display: block; }
  .site-split--nophoto:has(.site-split__items--cards) .site-split__head { position: static; max-width: 760px; margin-bottom: 24px; }
  .site-split--nophoto:has(.site-split__items--cards) .site-split__copy { padding: 0; background: none; box-shadow: none; }
  .site-split--nophoto:has(.site-split__items--cards) .site-split__copy > p { max-width: 72ch; }
  .site-split--nophoto .site-split__items--cards { grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)) !important; }
}
.site-split__below { margin-top: clamp(24px, 3vw, 36px); }
.site-split__items--cards li { align-content: start; align-items: start; }
.site-split__below .site-split__items--cards { grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)) !important; }
.site-split__faq--numbered summary > span { display: flex; align-items: baseline; gap: 14px; }
.site-split__faq--numbered summary b { color: var(--cheers-component-accent); font-family: var(--font-display); font-size: .9375rem; }
.site-split__below .site-split__faq { max-width: 880px; }
/* Photo cards (points with photos) and logo cards. */
.site-split__pcards { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 220px), 1fr)); gap: 16px; margin: 8px 0 0; padding: 0; list-style: none; }
.site-split__pcard { display: grid; grid-template-rows: auto 1fr; height: 100%; overflow: hidden; border: 1px solid var(--cheers-component-border); border-radius: var(--cheers-component-radius); background: #ffffff; color: inherit; text-decoration: none; transition: transform .18s, box-shadow .18s; }
a.site-split__pcard:hover { transform: translateY(-3px); box-shadow: 0 14px 30px rgb(0 0 0 / 10%); }
.site-split__pcard-img { display: block; aspect-ratio: 4 / 3; overflow: hidden; background: var(--cheers-component-surface); }
.site-split__pcard-img img { width: 100%; height: 100%; object-fit: cover; }
.site-split__pcard-body { display: grid; gap: 6px; align-content: start; padding: 18px 20px 20px; }
.site-split__pcard-body strong { color: var(--cheers-component-heading); font-size: 1.125rem; }
.site-split__pcard-body > span { color: var(--cheers-component-muted); line-height: 1.55; }
.site-split__pcard-go { display: inline-flex; align-items: center; gap: 6px; margin-top: 6px; color: var(--cheers-component-accent) !important; font-weight: 750; }
.site-split__pcard-go svg { width: 16px; height: 16px; }
.site-split__pcards--logos .site-split__pcard-img { display: grid; place-items: center; aspect-ratio: 5 / 2; padding: 20px 28px; background: #ffffff; border-bottom: 1px solid var(--cheers-component-border); }
.site-split__pcards--logos .site-split__pcard-img img { object-fit: contain; }
@media (min-width: 900px) { .site-split--nophoto:has(.site-split__pcards) > .site-wrap { display: block; } .site-split--nophoto:has(.site-split__pcards) .site-split__head { position: static; max-width: 760px; margin-bottom: 24px; } .site-split--nophoto:has(.site-split__pcards) .site-split__copy { padding: 0; background: none; box-shadow: none; } .site-split__pcards { grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); } }
/* Stat tiles. */
.site-split__stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: 12px; margin: 16px 0 4px; padding: 0; list-style: none; }
.site-split__stats li { display: grid; gap: 4px; align-content: start; padding: 18px; border-radius: var(--cheers-component-radius); background: var(--cheers-component-surface); }
.site-split__stats strong { color: var(--cheers-component-accent); font-family: var(--font-display); font-size: clamp(1.75rem, 3vw, 2.25rem); line-height: 1; }
.site-split__stats span { color: var(--cheers-component-heading); font-size: .9375rem; font-weight: 650; line-height: 1.35; }
.site-split__stat-note span { font-weight: 600; }
.site-split__stat-note { grid-column: 1 / -1; padding: 10px 18px !important; background: none !important; }
.site-split:has(.site-split__pcards) .site-split__grid { display: block; max-width: none; }
.site-split:has(.site-split__pcards) .site-split__copy { max-width: none; }
.site-split__copy > ul.site-split__pcards { max-width: none; padding-left: 0; }
@media (min-width: 900px) { .site-split__pcards:has(> li:nth-child(6):last-child) { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.site-split__pcard-img--none { display: grid; place-items: center; color: var(--cheers-component-accent); }
.site-split__pcard-img--none svg { width: 44px; height: 44px; opacity: .6; }

/* Trades panel (location coverage): copy on the left, a dark panel of white icon tiles on the right with the closing
   panel's ring + glow — the Rock trade-home treatment. */
.site-split__trades { position: relative; isolation: isolate; overflow: hidden; margin-top: 28px; padding: clamp(20px, 3vw, 32px); border-radius: var(--cheers-component-radius); background: var(--site-final-background); color: var(--site-final-heading); }
.site-split__trades::before { content: ""; position: absolute; z-index: -1; width: 440px; aspect-ratio: 1; right: -160px; top: -180px; border-radius: 50%; border: 56px solid rgb(255 255 255 / 5%); }
.site-split__trades::after { content: ""; position: absolute; z-index: -1; width: 380px; aspect-ratio: 1; left: -140px; bottom: -200px; border-radius: 50%; background: radial-gradient(closest-side, color-mix(in srgb, var(--site-final-action, var(--cheers-component-accent)) 30%, transparent), transparent); }
.site-split__trades ul { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin: 0; padding: 0; list-style: none; }
.site-split__trades li:last-child:nth-child(odd) { grid-column: 1 / -1; }
.site-split__trades a { display: grid; justify-items: center; align-content: center; gap: 12px; min-height: 132px; padding: 20px 12px; border-radius: calc(var(--cheers-component-radius) * .7); color: var(--site-final-heading); font-size: 1.125rem; font-weight: 700; line-height: 1.25; text-align: center; text-decoration: none; transition: background-color .16s ease; }
.site-split__trades a:hover { background: rgb(255 255 255 / 8%); }
.site-split__trades a:focus-visible { outline: 3px solid var(--site-final-heading); outline-offset: -3px; }
.site-split__trades svg { width: 40px; height: 40px; stroke-width: 1.6; transition: transform .2s ease; }
.site-split__trades a:hover svg { transform: translateY(-3px); }
@media (prefers-reduced-motion: reduce) { .site-split__trades a, .site-split__trades svg { transition: none; } .site-split__trades a:hover svg { transform: none; } }
@media (min-width: 900px) {
  .site-split--trades > .site-wrap { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); grid-template-rows: 1fr auto auto 1fr; row-gap: 0; align-content: stretch; column-gap: clamp(32px, 5vw, 80px); align-items: start; }
  .site-split--trades .site-split__head { align-self: end; }
  .site-split--trades .site-split__grid { align-self: start; }
  .site-split--trades .site-split__head { grid-column: 1; grid-row: 2; position: static; }
  .site-split--trades .site-split__grid { grid-column: 1; grid-row: 3; margin-top: 24px; }
  .site-split--trades .site-split__copy { padding: 0; background: none; box-shadow: none; }
  .site-split--trades .site-split__trades { grid-column: 2; grid-row: 1 / -1; align-self: center; margin-top: 0; }
}

/* Non-linked service items: a compact, aligned list — small square thumbnail (photo, or the item's icon), title, line. */
.site-split__plist { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr)); gap: 12px 28px; margin: 8px 0 0; padding: 0; list-style: none; }
.site-split__plist > li { display: grid; grid-template-columns: 72px minmax(0, 1fr); gap: 16px; align-items: start; padding: 14px 0; border-top: 1px solid var(--cheers-component-border); }
.site-split__plist-img { display: block; width: 72px; aspect-ratio: 1; overflow: hidden; border-radius: 12px; background: var(--cheers-component-surface); }
.site-split__plist-img img { width: 100%; height: 100%; object-fit: cover; }
.site-split__plist-img--icon { display: grid; place-items: center; background: color-mix(in srgb, var(--cheers-component-accent) 10%, var(--cheers-component-background)); color: var(--cheers-component-accent); }
.site-split__plist-img--icon svg { width: 30px; height: 30px; }
.site-split__plist strong { display: block; color: var(--cheers-component-heading); font-size: 1.0625rem; line-height: 1.3; }
.site-split__plist strong + span { display: block; margin-top: 4px; color: var(--cheers-component-muted); font-size: .9375rem; line-height: 1.5; }
.site-split:has(.site-split__plist) .site-split__grid { display: block; max-width: none; }
.site-split:has(.site-split__plist) .site-split__copy { max-width: none; }
.site-split__copy > ul.site-split__plist { max-width: none; padding-left: 0; }
@media (min-width: 900px) { .site-split--nophoto:has(.site-split__plist) > .site-wrap { display: block; } .site-split--nophoto:has(.site-split__plist) .site-split__head { position: static; max-width: 760px; margin-bottom: 24px; } .site-split--nophoto:has(.site-split__plist) .site-split__copy { padding: 0; background: none; box-shadow: none; } .site-split__plist { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
/* Linked photo cards line up: every card fills its row. */
.site-split__pcards > li { display: grid; }
.site-split__pcard { height: 100%; }
/* The list is a true grid: every row starts on one line across the columns, and its rule spans the row. */
@media (min-width: 900px) { .site-split__plist { row-gap: 0; } .site-split__plist > li { height: 100%; padding: 18px 0; } }
/* 50/50 with a photo: the heading sits in the copy column, so heading + copy form one block centered beside the
   photo (the photo no longer starts below a full-width heading). */
@media (min-width: 900px) {
  .site-split--fifty > .site-wrap { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); grid-template-rows: 1fr auto auto 1fr; row-gap: 0; column-gap: clamp(32px, 5vw, 72px); }
  .site-split--fifty .site-split__grid { display: contents; }
  .site-split--fifty .site-split__head { grid-column: 1; grid-row: 2; margin-bottom: 20px; }
  .site-split--fifty .site-split__copy { grid-column: 1; grid-row: 3; }
  .site-split--fifty .site-split__photo { grid-column: 2; grid-row: 1 / -1; align-self: stretch; }
  .site-split--fifty.site-split--reverse .site-split__head,
  .site-split--fifty.site-split--reverse .site-split__copy { grid-column: 2; }
  .site-split--fifty.site-split--reverse .site-split__photo { grid-column: 1; }
  .site-split--fifty > .site-wrap > :is(.site-split__below, .site-split__more-wrap) { grid-column: 1 / -1; grid-row: auto; }
}
/* ==== 50/50 standard (photo-split and the library landmark share it) ====================================
   Page-width container · two equal columns · copy block (eyebrow, heading, text) vertically centered against
   a 4:3 photo that never leaves the container · the offset accent block tucks inside the gutter. */
@media (min-width: 900px) {
  .site-split--fifty > .site-wrap { column-gap: clamp(40px, 6vw, 96px); }
  .site-split--fifty .site-split__photo { align-self: center; min-height: 0; aspect-ratio: 4 / 3; max-height: 560px; }
  .site-split--fifty .site-split__photo::before { inset: 16px -16px -16px 16px; }
  .site-split--fifty.site-split--reverse .site-split__photo::before { inset: 16px 16px -16px -16px; }
  .site-split--fifty .site-split__copy > p { max-width: 60ch; }
}
.site-split__actions { margin-top: 8px; }

/* Items without a link are content, not controls: open layout, no frame. */
.site-split--nophoto .site-split__items:not(.site-split__items--tiles) li:not(:has(a)),
.site-split__items--cards li:not(:has(a)) { padding: 0 !important; border: 0; border-radius: 0; background: none; }
.site-split--nophoto .site-split__items:not(.site-split__items--tiles):has(li:not(:has(a))) { row-gap: clamp(28px, 4vw, 40px) !important; }
.site-split__items li { align-content: start; }
/* A text section with four or more described points stacks like the card sections: heading and copy on top,
   points across the full width in three open columns. */
@media (min-width: 900px) {
  .site-split--nophoto:has(.site-split__items:not(.site-split__items--tiles) > li:nth-child(4)) > .site-wrap { display: block; }
  .site-split--nophoto:has(.site-split__items:not(.site-split__items--tiles) > li:nth-child(4)) .site-split__head { position: static; max-width: 760px; margin-bottom: 24px; }
  .site-split--nophoto:has(.site-split__items:not(.site-split__items--tiles) > li:nth-child(4)) .site-split__copy { padding: 0; background: none; box-shadow: none; }
  .site-split--nophoto .site-split__items:not(.site-split__items--tiles):has(> li:nth-child(4)) { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; column-gap: clamp(28px, 4vw, 56px) !important; margin-top: 12px; }
}
.site-split--nophoto .site-split__items:not(.site-split__items--tiles) li:not(:has(a)) .site-split__icon { width: 48px; height: 48px; border-color: transparent; background: color-mix(in srgb, var(--cheers-component-accent) 12%, var(--cheers-component-background)); }
/* Title-only points are statements, not buttons: an open icon list, no boxes. */
.site-split__items--tiles { gap: 4px 24px; }
.site-split__items--tiles li { padding: 10px 0; border-radius: 0; background: none; }
.site-split__items--tiles .site-split__icon, .site-split__items--tiles .site-split__num { border-color: transparent; background: color-mix(in srgb, var(--cheers-component-accent) 12%, var(--cheers-component-background)); }
/* Three described points also stack full width (no narrow column beside the heading). */
@media (min-width: 900px) {
  .site-split--nophoto:has(.site-split__items:not(.site-split__items--tiles) > li:nth-child(3)) > .site-wrap { display: block; }
  .site-split--nophoto:has(.site-split__items:not(.site-split__items--tiles) > li:nth-child(3)) .site-split__head { position: static; max-width: 760px; margin-bottom: 24px; }
  .site-split--nophoto:has(.site-split__items:not(.site-split__items--tiles) > li:nth-child(3)) .site-split__copy { padding: 0; background: none; box-shadow: none; }
  .site-split--nophoto .site-split__items:not(.site-split__items--tiles):has(> li:nth-child(3)) { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; column-gap: clamp(28px, 4vw, 56px) !important; margin-top: 12px; }
}
/* Exactly four points never leave one alone on a row: four across on wide screens, two by two below. */
@media (min-width: 700px) {
  .site-split__items:not(.site-split__items--tiles):has(> li:nth-child(4):last-child) { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
}
@media (min-width: 1100px) {
  .site-split--nophoto .site-split__items:not(.site-split__items--tiles):has(> li:nth-child(4):last-child),
  .site-split__below .site-split__items:not(.site-split__items--tiles):has(> li:nth-child(4):last-child) { grid-template-columns: repeat(4, minmax(0, 1fr)) !important; column-gap: clamp(24px, 3vw, 40px) !important; }
}
/* 50/50 and trades panel, final: the text block (heading inside it) starts level with the top of the photo or
   panel, and when the photo side is taller the text stays in view beside it as the page scrolls. */
@media (min-width: 900px) {
  .site-split--fifty > .site-wrap { display: block; }
  .site-split--fifty .site-split__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); grid-template-rows: auto; column-gap: clamp(40px, 6vw, 96px); align-items: start; margin-top: 0; }
  .site-split--fifty .site-split__copy { grid-column: 1; grid-row: 1; }
  .site-split--fifty .site-split__photo { grid-column: 2; grid-row: 1; align-self: start; }
  .site-split--fifty.site-split--reverse .site-split__copy { grid-column: 2; }
  .site-split--fifty.site-split--reverse .site-split__photo { grid-column: 1; }
  .site-split--trades > .site-wrap { grid-template-rows: auto; align-items: start; }
  .site-split--trades .site-split__grid { grid-column: 1; grid-row: 1; margin-top: 0; align-self: stretch; }
  .site-split--trades .site-split__trades { grid-column: 2; grid-row: 1; align-self: start; }
  :is(.site-split--fifty, .site-split--trades) .site-split__copy { position: sticky; top: calc(var(--site-header-height, 72px) + 24px); align-self: start; }
  :is(.site-split--fifty, .site-split--trades) .site-split__head { grid-column: auto; grid-row: auto; position: static; margin-bottom: 8px; }
}
/* Trades panel hover: no tile background; the icon and label turn the brand's on-dark highlight (Parks yellow). */
.site-split__trades a:hover { background: none; color: var(--site-trades-hover, var(--site-final-eyebrow, var(--site-final-heading))); }
.site-split__trades a { transition: color .16s ease; }
.site-split__copy > p a { color: var(--cheers-component-accent); font-weight: 700; text-underline-offset: 3px; }
/* Stacked text section with a checklist and described points (Rock "Power You Can Trust"): intro on the left,
   checklist in a soft panel on the right, then the points across the full width with room to breathe. */
@media (min-width: 900px) {
  .site-split--nophoto .site-split__copy:has(> .site-split__checks):has(> .site-split__items > li:nth-child(4)) { grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); column-gap: clamp(40px, 5vw, 72px); row-gap: 16px; }
  .site-split--nophoto .site-split__copy:has(> .site-split__checks):has(> .site-split__items > li:nth-child(4)) > * { grid-column: 1 / -1; }
  .site-split--nophoto .site-split__copy:has(> .site-split__checks):has(> .site-split__items > li:nth-child(4)) > p { grid-column: 1; }
  .site-split--nophoto .site-split__copy:has(> .site-split__items > li:nth-child(4)) > .site-split__checks { grid-column: 2; grid-row: 1 / span 3; align-self: start; grid-template-columns: minmax(0, 1fr); gap: 14px; margin: 0; padding: 26px 28px; border-radius: var(--cheers-component-radius); background: var(--cheers-component-surface); }
  .site-split--nophoto .site-split__copy:has(> .site-split__checks) > .site-split__items { margin-top: clamp(32px, 4vw, 56px) !important; row-gap: clamp(36px, 4vw, 48px) !important; }
  .site-split--nophoto .site-split__copy > .site-split__items + .site-split__more { margin-top: 24px; }
}
/* Five points: three, then two that share the row evenly (no lone gap on the right). */
@media (min-width: 900px) {
  .site-split--nophoto .site-split__items:not(.site-split__items--tiles):has(> li:nth-child(5):last-child) { grid-template-columns: repeat(6, minmax(0, 1fr)) !important; }
  .site-split--nophoto .site-split__items:not(.site-split__items--tiles):has(> li:nth-child(5):last-child) > li { grid-column: span 2; }
  .site-split--nophoto .site-split__items:not(.site-split__items--tiles):has(> li:nth-child(5):last-child) > li:nth-child(n+4) { grid-column: span 3; }
}
.site-split__items li:not(:has(a)) strong { font-size: 1.1875rem; }

/* site/components/booking-card/booking-card.css */
/* booking-card — Rock trade homepages: a calendar sheet whose whole surface opens booking.
   Built like final-action: dark panel, ring motif + accent glow, frosted-glass days, glossy glowing button. */
.site-booking { --_mark: var(--site-booking-mark, var(--site-final-action, var(--cheers-component-accent))); --_mark-text: var(--site-booking-mark-text, var(--site-final-action-text, var(--cheers-component-action-text)));
  padding-block: clamp(36px, 5vw, 56px); background: var(--cheers-component-background); }
.site-booking__sheet { position: relative; isolation: isolate; overflow: hidden; max-width: 1120px; margin-inline: auto; border-radius: var(--cheers-component-radius); background: var(--site-booking-binding, var(--site-final-background)); color: var(--site-final-text); box-shadow: 0 24px 60px color-mix(in srgb, var(--site-booking-binding, var(--site-final-background)) 28%, transparent); }
/* Ring motif + accent glow, as on the closing panel. */
.site-booking__sheet::before { content: ""; position: absolute; z-index: -1; width: min(640px, 110vw); aspect-ratio: 1; left: -14%; top: 50%; transform: translateY(-50%); border-radius: 50%; border: clamp(36px, 6vw, 80px) solid rgb(255 255 255 / 5%); }
.site-booking__sheet::after { content: ""; position: absolute; z-index: -1; width: 520px; aspect-ratio: 1; right: -140px; bottom: -240px; border-radius: 50%; background: radial-gradient(closest-side, color-mix(in srgb, var(--_mark) 34%, transparent), transparent); }
.site-booking__binding { display: flex; justify-content: space-between; height: 44px; padding: 0 44px; background: linear-gradient(180deg, rgb(255 255 255 / 10%), rgb(255 255 255 / 4%)); border-bottom: 1px solid rgb(255 255 255 / 10%); }
.site-booking__binding > span { width: 12px; height: 26px; margin-top: 9px; border: 3px solid var(--site-booking-ring, var(--_mark)); border-radius: 999px; background: var(--site-booking-binding, var(--site-final-background)); box-shadow: 0 0 14px color-mix(in srgb, var(--site-booking-ring, var(--_mark)) 45%, transparent); }
.site-booking__body { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr); align-items: center; gap: clamp(32px, 5vw, 64px); padding: clamp(32px, 5vw, 56px); }
.site-booking__art { width: 100%; max-width: 380px; margin: auto; padding: 18px; border-radius: 20px; background: linear-gradient(180deg, rgb(255 255 255 / 12%), rgb(255 255 255 / 4%)); box-shadow: inset 0 1px .5px rgb(255 255 255 / 30%), 0 18px 40px rgb(0 0 0 / 22%); -webkit-backdrop-filter: blur(18px) saturate(1.6); backdrop-filter: blur(18px) saturate(1.6); user-select: none; }
.site-booking__week, .site-booking__days { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 8px; }
.site-booking__week { margin-bottom: 12px; color: var(--site-final-text); font-size: .6875rem; font-weight: 700; letter-spacing: .06em; text-align: center; opacity: .8; }
.site-booking__day { display: grid; place-items: center; aspect-ratio: 1; border-radius: 9px; background: rgb(255 255 255 / 8%); box-shadow: inset 0 1px 0 rgb(255 255 255 / 10%); }
.site-booking__day--marked { background: linear-gradient(180deg, rgb(255 255 255 / 26%), rgb(255 255 255 / 0%) 60%), var(--_mark); color: var(--_mark-text); transform: rotate(-7deg) scale(1.06); box-shadow: inset 0 1px 0 rgb(255 255 255 / 35%), 0 8px 22px color-mix(in srgb, var(--_mark) 55%, transparent); }
.site-booking__day svg { width: 58%; height: 58%; }
.site-booking__copy h2 { max-width: 14ch; margin: 0 0 28px; color: var(--site-final-heading); font-size: clamp(2rem, 4vw, 3.25rem); font-weight: var(--display-weight); line-height: 1.05; letter-spacing: var(--display-tracking); text-wrap: balance; }
.site-booking .site-booking__button { --site-button-bg: var(--_mark); --site-button-text: var(--_mark-text); min-height: 56px; padding-inline: 30px; font-size: 1.0625rem; }
.site-booking__button svg { width: 20px; height: 20px; }
/* The button's hit area stretches over the whole card. */
.site-booking__button::after { content: ""; position: absolute; inset: -400px -2000px; z-index: 1; cursor: pointer; }
.site-booking__sheet:has(.site-booking__button:hover) .site-booking__day--marked { transform: rotate(-3deg) scale(1.1); }
.site-booking__day--marked { transition: transform .2s ease; }
.site-booking__button:focus-visible { outline: 3px solid var(--site-final-heading); outline-offset: 4px; }
@media (prefers-reduced-motion: reduce) { .site-booking__day--marked { transition: none; } }
@media (max-width: 700px) {
  .site-booking__binding { height: 36px; padding-inline: 28px; }
  .site-booking__binding > span { width: 11px; height: 20px; margin-top: 8px; }
  .site-booking__body { grid-template-columns: minmax(0, 1fr); gap: 24px; padding: 24px; }
  .site-booking__art { max-width: 300px; padding: 14px; }
  .site-booking__week, .site-booking__days { gap: 5px; }
  .site-booking__day { border-radius: 6px; }
  .site-booking__copy { text-align: center; }
  .site-booking__copy h2 { margin: 0 auto 20px; font-size: 1.875rem; }
  .site-booking__button { width: 100%; }
}

/* site/components/photo-story/photo-story.css */
/* photo-story — library cheers-location-photo-story: inset rounded photo, left shade, white copy. */
.site-story { position: relative; isolation: isolate; width: min(calc(var(--cheers-page-width) + 80px), calc(100% - 32px)); margin: var(--cheers-page-space) auto; overflow: hidden; border-radius: var(--cheers-component-radius); background: var(--cheers-component-heading); color: #ffffff; }
.site-story__image { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; }
.site-story__shade { position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, rgb(0 0 0 / 78%), rgb(0 0 0 / 24%)); }
.site-story__copy { display: grid; gap: 18px; justify-items: start; max-width: 640px; padding: clamp(48px, 8vw, 100px) clamp(24px, 4vw, 56px); }
.site-story__copy > * { margin: 0; }
.site-story .site-eyebrow { color: #ffffff; }
.site-story h2 { font-size: var(--site-h2-size); font-weight: var(--display-weight); line-height: 1.08; letter-spacing: var(--display-tracking); }
.site-story__copy > p:not(.site-eyebrow) { font-size: 1.0625rem; line-height: 1.6; color: rgb(255 255 255 / 90%); }
@media (max-width: 600px) { .site-story { width: calc(100% - 16px); border-radius: 14px; } .site-story__shade { background: linear-gradient(0deg, rgb(0 0 0 / 83%), rgb(0 0 0 / 38%)); } }
/* Video variant: dark panel, copy left, player right. */
.site-story.site-story--video { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.25fr); gap: clamp(24px, 4vw, 56px); align-items: center; min-height: 0; padding: clamp(28px, 4vw, 56px); background: var(--cheers-component-heading); color: #ffffff; }
.site-story--video .site-story__copy { position: static; max-width: none; padding: 0; }
.site-story--video h2 { color: #ffffff; }
@media (max-width: 860px) { .site-story.site-story--video { grid-template-columns: minmax(0, 1fr); } }

/* site/components/contact-details/contact-details.css */
/* contact-details — contact board built like the closing panel: a dark call card with the ring + glow, two
   method cards, small facts, an optional message form, social links and a tips video row. */
.site-contact { padding-block: var(--cheers-page-space); background: var(--cheers-component-background); }
.site-contact__head { display: grid; gap: 12px; max-width: 720px; margin-bottom: clamp(28px, 4vw, 44px); }
.site-contact__head > * { margin: 0; }
.site-contact h2 { color: var(--cheers-component-heading); font-size: var(--site-h2-size); font-weight: var(--display-weight); letter-spacing: var(--display-tracking); line-height: 1.1; text-wrap: balance; }
.site-contact__head > p:last-child { color: var(--cheers-component-muted); font-size: 1.0625rem; line-height: 1.65; }
.site-contact__board--form { display: grid; grid-template-columns: minmax(0, 1fr); gap: clamp(20px, 3vw, 32px); }
/* The phone block, full width: number and call button at left; round icon actions and the office at right. */
.site-contact__call { position: relative; isolation: isolate; overflow: hidden; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: center; gap: clamp(28px, 5vw, 72px); padding: clamp(28px, 4.5vw, 56px); border-radius: var(--cheers-component-radius); background: var(--site-final-background); color: var(--site-final-text); }
.site-contact__call::before { content: ""; position: absolute; z-index: -1; width: 560px; aspect-ratio: 1; right: -160px; top: -240px; border-radius: 50%; border: 64px solid rgb(255 255 255 / 5%); }
.site-contact__call::after { content: ""; position: absolute; z-index: -1; width: 440px; aspect-ratio: 1; left: -140px; bottom: -240px; border-radius: 50%; background: radial-gradient(closest-side, color-mix(in srgb, var(--site-final-action, var(--cheers-component-accent)) 34%, transparent), transparent); }
.site-contact__lead { display: grid; gap: 12px; justify-items: start; }
.site-contact__kicker { display: inline-flex; align-items: center; gap: 8px; color: var(--site-final-eyebrow, var(--site-final-text)); font-size: .8125rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.site-contact__kicker svg { width: 16px; height: 16px; }
.site-contact__number { color: var(--site-final-heading); font-family: var(--font-display); font-size: clamp(2.25rem, 4.4vw, 3.5rem); font-weight: var(--display-weight); letter-spacing: -.03em; line-height: 1; font-variant-numeric: tabular-nums; text-decoration: none; }
.site-contact__note { max-width: 36ch; font-size: 1rem; line-height: 1.5; }
.site-contact__call .site-button { --site-button-bg: var(--site-final-action); --site-button-text: var(--site-final-action-text); margin-top: 8px; }
.site-contact__reach { display: grid; gap: 28px; justify-items: center; }
.site-contact__acts { display: flex; flex-wrap: wrap; justify-content: center; gap: clamp(20px, 4vw, 48px); margin: 0; padding: 0; list-style: none; }
.site-contact__act { display: grid; justify-items: center; gap: 14px; color: var(--site-final-text); text-decoration: none; }
.site-contact__disc { display: grid; place-items: center; width: 76px; height: 76px; border-radius: 50%; background: var(--site-final-heading); color: var(--site-final-background); box-shadow: 0 10px 26px rgb(0 0 0 / 22%); transition: transform .25s cubic-bezier(.2, .9, .3, 1.4), box-shadow .25s ease; }
.site-contact__disc svg { width: 28px; height: 28px; overflow: visible; }
.site-contact__label { font-size: .8125rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; opacity: .78; transition: opacity .2s ease; }
.site-contact__act:hover .site-contact__disc, .site-contact__act:focus-visible .site-contact__disc { transform: translateY(-4px) scale(1.06); box-shadow: 0 16px 34px color-mix(in srgb, var(--site-final-action, var(--cheers-component-accent)) 40%, transparent); }
.site-contact__act:hover .site-contact__label, .site-contact__act:focus-visible .site-contact__label { opacity: 1; }
.site-contact__act:focus-visible { outline: none; }
.site-contact__act:focus-visible .site-contact__disc { outline: 3px solid var(--site-final-heading); outline-offset: 4px; }
/* One entrance: the discs pop in one after another. */
@keyframes site-contact-pop { from { opacity: 0; transform: translateY(10px) scale(.8); } }
.site-contact__acts > li { animation: site-contact-pop .5s cubic-bezier(.2, .9, .3, 1.3) both; animation-delay: calc(var(--_i) * 90ms + 150ms); }
/* Call: the handset rings (a wiggle and sound waves) on hover, and once every few seconds at rest. */
@keyframes site-contact-ring { 0%, 100% { transform: rotate(0); } 15% { transform: rotate(-14deg); } 30% { transform: rotate(12deg); } 45% { transform: rotate(-9deg); } 60% { transform: rotate(6deg); } 75% { transform: rotate(-3deg); } }
@keyframes site-contact-waves { 0%, 100% { opacity: 0; } 30%, 70% { opacity: 1; } }
.site-contact__act--call svg { transform-origin: 50% 60%; animation: site-contact-ring 1s ease 2.2s, site-contact-ring 1s ease 7s; }
.site-contact__act--call .site-contact__ring { opacity: 0; }
.site-contact__act--call:hover svg, .site-contact__act--call:focus-visible svg { animation: site-contact-ring .8s ease infinite; }
.site-contact__act--call:hover .site-contact__ring, .site-contact__act--call:focus-visible .site-contact__ring { animation: site-contact-waves .8s ease infinite; }
/* Text: the typing dots bounce. */
@keyframes site-contact-dot { 0%, 60%, 100% { transform: translateY(0); } 30% { transform: translateY(-2.5px); } }
.site-contact__dot { transform-box: fill-box; }
.site-contact__act--text:hover .site-contact__dot, .site-contact__act--text:focus-visible .site-contact__dot { animation: site-contact-dot .9s ease infinite; }
.site-contact__act--text .site-contact__dot:nth-of-type(2) { animation-delay: .15s; }
.site-contact__act--text .site-contact__dot:nth-of-type(3) { animation-delay: .3s; }
/* Email: the letter folds up into a paper airplane, which flies off and comes back around. */
.site-contact__env, .site-contact__plane { transform-box: view-box; transform-origin: 12px 12px; }
.site-contact__plane { opacity: 0; transform: scale(.4) rotate(-30deg); }
@keyframes site-contact-fold { 0% { opacity: 1; transform: none; } 45% { opacity: 1; transform: scaleY(.25) scaleX(.6) rotate(-20deg); } 55%, 100% { opacity: 0; transform: scaleY(.1) scaleX(.4) rotate(-30deg); } }
@keyframes site-contact-fly { 0%, 40% { opacity: 0; transform: scale(.4) rotate(-30deg); } 60% { opacity: 1; transform: scale(1) rotate(0); } 80% { opacity: 1; transform: translate(5px, -5px) scale(1); } 90% { opacity: 0; transform: translate(9px, -9px) scale(.9); } 91% { opacity: 0; transform: translate(-8px, 8px) scale(.9); } 100% { opacity: 1; transform: none; } }
.site-contact__act--email:hover .site-contact__env, .site-contact__act--email:focus-visible .site-contact__env { animation: site-contact-fold 1.1s ease forwards; }
.site-contact__act--email:hover .site-contact__plane, .site-contact__act--email:focus-visible .site-contact__plane { animation: site-contact-fly 1.1s ease forwards; }
/* Book: a check draws onto the calendar. */
.site-contact__tick { stroke-dasharray: 12; stroke-dashoffset: 12; transition: stroke-dashoffset .35s ease .05s; }
.site-contact__act--book:hover .site-contact__tick, .site-contact__act--book:focus-visible .site-contact__tick { stroke-dashoffset: 0; }
/* Office (and license) below the actions. */
/* Hours, office and license as a left-aligned list (icon column + text), the list itself centered under the discs. */
.site-contact__facts { display: grid; gap: 12px; justify-self: center; max-width: 100%; margin: 0; text-align: left; }
.site-contact__facts > div { display: grid; grid-template-columns: 20px minmax(0, 1fr); align-items: start; gap: 12px; }
.site-contact__facts dt { display: flex; padding-top: .15em; color: var(--site-final-eyebrow, var(--site-final-text)); }
.site-contact__facts dt svg { width: 18px; height: 18px; }
.site-contact__facts dd { margin: 0; color: var(--site-final-heading); font-weight: 650; line-height: 1.45; }
@media (max-width: 900px) {
  .site-contact__call { grid-template-columns: minmax(0, 1fr); }
  .site-contact__reach { justify-items: start; }
  .site-contact__acts { justify-content: flex-start; gap: 22px; }
  .site-contact__disc { width: 64px; height: 64px; }
  .site-contact__facts { justify-self: start; }
}
@media (prefers-reduced-motion: reduce) {
  .site-contact__acts > li, .site-contact__act svg, .site-contact__ring, .site-contact__dot { animation: none !important; }
  .site-contact__disc, .site-contact__tick { transition: none; }
  .site-contact__env, .site-contact__plane { animation: none !important; }
}
/* Message form. */
.site-contact__form { display: grid; gap: 18px; padding: clamp(24px, 3vw, 36px); border: 1px solid var(--cheers-component-border); border-radius: var(--cheers-component-radius); background: var(--cheers-component-background); box-shadow: 0 18px 44px rgb(0 0 0 / 8%); }
.site-contact__form h3 { margin: 0; color: var(--cheers-component-heading); font-family: var(--font-display); font-size: 1.5rem; }
.site-contact__fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.site-contact__field { display: grid; gap: 6px; color: var(--cheers-component-heading); font-size: .875rem; font-weight: 700; }
.site-contact__field--wide { grid-column: 1 / -1; }
.site-contact__field input, .site-contact__field select, .site-contact__field textarea { width: 100%; min-height: 48px; padding: 12px 14px; border: 1px solid var(--cheers-component-border); border-radius: 12px; background: var(--cheers-component-surface); color: var(--cheers-component-heading); font: inherit; font-weight: 500; }
.site-contact__field textarea { resize: vertical; }
.site-contact__field :focus-visible { outline: 3px solid color-mix(in srgb, var(--cheers-component-accent) 40%, transparent); outline-offset: 1px; border-color: var(--cheers-component-accent); }
.site-contact__form .site-button { justify-self: start; }
/* Social + tips videos. */
.site-contact__social { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 18px; margin-top: clamp(28px, 4vw, 40px); padding-top: 24px; border-top: 1px solid var(--cheers-component-border); }
.site-contact__social h3 { margin: 0; color: var(--cheers-component-heading); font-family: var(--font-body); font-size: 1rem; font-weight: 750; }
.site-contact__social ul { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; list-style: none; }
.site-contact__social a { display: inline-flex; align-items: center; min-height: 48px; padding: 0 16px; border: 1px solid var(--cheers-component-border); border-radius: 999px; color: var(--cheers-component-heading); font-size: .9375rem; font-weight: 650; text-decoration: none; transition: border-color .16s ease; }
.site-contact__social a { gap: 10px; padding: 0 18px 0 12px; }
.site-contact__social a svg { width: 22px; height: 22px; padding: 4px; box-sizing: content-box; border-radius: 999px; background: color-mix(in srgb, var(--cheers-component-accent) 12%, transparent); color: var(--cheers-component-accent); transition: background-color .16s ease, color .16s ease; }
.site-contact__social a:hover { border-color: var(--cheers-component-accent); }
.site-contact__social a:hover svg { background: var(--cheers-component-accent); color: var(--cheers-component-action-text); }
.site-contact__videos { margin-top: clamp(36px, 5vw, 56px); }
.site-contact__videos h3 { margin: 0 0 18px; color: var(--cheers-component-heading); font-family: var(--font-display); font-size: clamp(1.375rem, 2.2vw, 1.75rem); }
.site-contact__video-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr)); gap: 20px; }
.site-contact__video-grid figure { margin: 0; display: grid; gap: 10px; }
.site-contact__video-grid figcaption { color: var(--cheers-component-heading); font-weight: 650; }
@media (max-width: 900px) {
  .site-contact__fields { grid-template-columns: minmax(0, 1fr); }
}
/* Office map: wide, rounded, with a directions link. */
.site-contact__map { position: relative; margin-top: clamp(28px, 4vw, 44px); }
.site-contact__map iframe { display: block; width: 100%; height: clamp(260px, 32vw, 380px); border: 0; border-radius: var(--cheers-component-radius); background: var(--cheers-component-surface); }
.site-contact__directions { position: absolute; left: 32px; bottom: 16px; display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 0 16px; border-radius: 999px; background: #ffffff; color: var(--cheers-component-heading); font-weight: 750; text-decoration: none; box-shadow: 0 6px 18px rgb(0 0 0 / 16%); }
.site-contact__directions svg { width: 18px; height: 18px; }

/* site/components/rich-text/rich-text.css */
/* rich-text — one readable column of long-form copy; optional "On this page" rail on desktop. */
.site-rich { padding-block: var(--cheers-page-space); background: var(--cheers-component-background); }
.site-rich__inner { display: grid; grid-template-columns: minmax(0, 1fr); justify-items: center; }
.site-rich--toc .site-rich__inner { justify-items: stretch; }
.site-rich__body { width: 100%; max-width: 720px; min-width: 0; color: var(--cheers-component-text); font-size: 1.125rem; line-height: 1.75; }
.site-rich__body > :first-child { margin-top: 0; }
.site-rich__body h2 { margin: 2.2em 0 .5em; color: var(--cheers-component-heading); font-size: clamp(1.5rem, 2.6vw, 2rem); font-weight: var(--display-weight); letter-spacing: var(--display-tracking); line-height: 1.15; scroll-margin-top: calc(var(--site-header-height) + 16px); }
.site-rich__body h3 { margin: 1.8em 0 .4em; color: var(--cheers-component-heading); font-size: 1.25rem; line-height: 1.3; }
.site-rich__body h4, .site-rich__body h5, .site-rich__body h6 { margin: 1.6em 0 .4em; color: var(--cheers-component-heading); font-size: 1.0625rem; }
.site-rich__body p { margin: 0 0 1.1em; }
.site-rich__body ul, .site-rich__body ol { margin: 0 0 1.2em; padding-left: 1.3em; }
.site-rich__body li { margin: .35em 0; padding-left: .2em; }
.site-rich__body li::marker { color: var(--cheers-component-accent); }
.site-rich__body a:not(.site-button) { color: var(--cheers-component-accent); font-weight: 650; text-underline-offset: 3px; }
.site-rich__body strong { color: var(--cheers-component-heading); }
.site-rich__body blockquote { margin: 1.6em 0; padding: 4px 0 4px 20px; border-left: 3px solid var(--cheers-component-accent); color: var(--cheers-component-heading); font-size: 1.1875rem; }
.site-rich__body blockquote p { margin: 0; }
.site-rich__body figure { margin: 1.8em 0; }
.site-rich__body img { width: 100%; border-radius: var(--cheers-component-radius); }
.site-rich__body hr { margin: 2.4em 0; border: 0; border-top: 1px solid var(--cheers-component-border); }
.site-rich__cta { display: grid; gap: 12px; margin: 2.2em 0; padding: clamp(22px, 3vw, 32px); border-radius: var(--cheers-component-radius); background: var(--cheers-component-surface); }
.site-rich__cta p { margin: 0; color: var(--cheers-component-muted); font-size: 1rem; line-height: 1.6; }
.site-rich__cta .site-rich__cta-title { color: var(--cheers-component-heading); font-family: var(--font-display); font-size: 1.375rem; font-weight: var(--display-weight); letter-spacing: var(--display-tracking); line-height: 1.2; }
.site-rich__cta .site-actions { margin-top: 6px; }
.site-rich__toc { display: none; }
@media (min-width: 1000px) {
  .site-rich--toc .site-rich__inner { grid-template-columns: 240px minmax(0, 720px); gap: clamp(40px, 6vw, 96px); justify-content: center; }
  .site-rich__toc { position: sticky; top: calc(var(--site-header-height) + 24px); display: grid; gap: 12px; align-self: start; }
  .site-rich__toc ul { display: grid; margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--cheers-component-border); }
  .site-rich__toc a { display: block; padding: 10px 0; border-bottom: 1px solid var(--cheers-component-border); color: var(--cheers-component-heading); font-size: .9375rem; font-weight: 600; line-height: 1.35; text-decoration: none; }
  .site-rich__toc a:hover { color: var(--cheers-component-accent); }
}
/* YouTube thumbnails linked from body copy: cropped to 16:9 (drops the letterbox bars) with a play affordance. */
.site-rich__body a:has(> img[src*="ytimg"]) { position: relative; display: block; }
.site-rich__body a > img[src*="ytimg"] { aspect-ratio: 16 / 9; object-fit: cover; }
.site-rich__body a:has(> img[src*="ytimg"])::after { content: ""; position: absolute; inset: 50% auto auto 50%; width: 64px; height: 64px; transform: translate(-50%, -50%); border-radius: 50%; background: rgb(0 0 0 / 62%) url("data:image/svg+xml,%3Csvg xmlns='http://www%2Ew3%2Eorg/2000/svg' viewBox='0 0 24 24' fill='white'%3E%3Cpath d='M9 7v10l8-5z'/%3E%3C/svg%3E") center / 30px no-repeat; }
/* Sections layout (content pages): designed bands per H2 — cards, accordions, copy beside photos, a call panel. */
.site-rich--sections { padding: 0; }
.site-rich__top { display: grid; gap: 28px; padding-block: clamp(40px, 5vw, 64px) 0; }
.site-rich__intro { max-width: 760px; color: var(--cheers-component-text); font-size: 1.1875rem; line-height: 1.7; }
.site-rich__intro p { margin: 0 0 1em; }
.site-rich__jump ul { display: flex; flex-wrap: wrap; gap: 8px; margin: 10px 0 0; padding: 0; list-style: none; }
.site-rich__jump a { display: inline-flex; align-items: center; min-height: 38px; padding: 0 14px; border: 1px solid var(--cheers-component-border); border-radius: var(--cheers-component-button-radius); color: var(--cheers-component-heading); font-size: .875rem; font-weight: 700; text-decoration: none; transition: border-color .16s ease; }
.site-rich__jump a:hover { border-color: var(--cheers-component-accent); }
.site-rich__band { padding-block: clamp(56px, 7vw, 96px); background: var(--cheers-component-background); color: var(--cheers-component-text); font-size: 1.0625rem; line-height: 1.7; }
.site-rich__band--surface { background: var(--cheers-component-surface); }
.site-rich__band-head { display: grid; gap: 12px; max-width: 820px; margin-bottom: clamp(24px, 3vw, 36px); }
.site-rich__band-head > * { margin: 0; }
.site-rich__band h2 { color: var(--cheers-component-heading); font-size: var(--site-h2-size); font-weight: var(--display-weight); letter-spacing: var(--display-tracking); line-height: 1.1; scroll-margin-top: calc(var(--site-header-height) + 16px); }
.site-rich__band p { margin: 0 0 1em; }
.site-rich__band a:not(.site-button) { color: var(--cheers-component-accent); font-weight: 650; text-underline-offset: 3px; }
.site-rich__band strong { color: var(--cheers-component-heading); }
.site-rich__band img { display: block; width: 100%; height: auto; border-radius: var(--cheers-component-radius); }
.site-rich__band figure { margin: 0; }
.site-rich__prose { max-width: 760px; }
.site-rich__prose > :last-child, .site-rich__lead > div > :last-child, .site-rich__card > :last-child { margin-bottom: 0; }
.site-rich__prose h3 { margin: 1.6em 0 .4em; color: var(--cheers-component-heading); font-size: 1.25rem; line-height: 1.3; }
/* lists: accent checks, two columns when long */
.site-rich__band ul:not([role]) { display: grid; gap: 10px; margin: 0 0 1.2em; padding: 0; list-style: none; }
.site-rich__band ul:not([role]) > li { position: relative; padding-left: 30px; }
.site-rich__band ul:not([role]) > li::before { content: ""; position: absolute; top: .45em; left: 0; width: 18px; height: 18px; border-radius: 50%; background: var(--cheers-component-accent) url("data:image/svg+xml,%3Csvg xmlns='http://www%2Ew3%2Eorg/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12l5 5 9-10'/%3E%3C/svg%3E") center / 12px no-repeat; }
.site-rich__band ul:not([role]):has(> li:nth-child(6)) { grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr)); column-gap: 28px; }
.site-rich__band ol { margin: 0 0 1.2em; padding-left: 1.3em; }
.site-rich__lead { max-width: 820px; margin-bottom: 28px; }
.site-rich__lead--photo { display: grid; gap: 28px; max-width: none; }
.site-rich__photos { display: grid; gap: 16px; }
.site-rich__photos p { margin: 0; }
.site-rich__photos img { aspect-ratio: 4 / 3; object-fit: cover; }
.site-rich__cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr)); gap: 16px; margin: 0; padding: 0; list-style: none; }
.site-rich__card { position: relative; padding: 26px 24px 24px; border: 1px solid var(--cheers-component-border); border-radius: var(--cheers-component-radius); background: var(--cheers-component-background); font-size: 1rem; line-height: 1.65; }
.site-rich__band--surface .site-rich__card { border-color: transparent; box-shadow: 0 1px 2px rgb(0 0 0 / 5%); }
.site-rich__card::before { content: ""; display: block; width: 36px; height: 4px; margin-bottom: 16px; border-radius: 4px; background: var(--cheers-component-accent); }
.site-rich__card h3 { margin: 0 0 8px; color: var(--cheers-component-heading); font-family: var(--font-display); font-size: 1.25rem; line-height: 1.25; }
.site-rich__card p { margin: 0 0 .8em; color: var(--cheers-component-text); }
.site-rich__faq { display: grid; gap: 10px; max-width: 900px; }
.site-rich__q { border: 1px solid var(--cheers-component-border); border-radius: calc(var(--cheers-component-radius) * .7); background: var(--cheers-component-background); }
.site-rich__q summary { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 60px; padding: 14px 20px; color: var(--cheers-component-heading); font-size: 1.0625rem; font-weight: 750; line-height: 1.35; list-style: none; cursor: pointer; }
.site-rich__q summary::-webkit-details-marker { display: none; }
.site-rich__q summary svg { flex: none; width: 20px; height: 20px; color: var(--cheers-component-accent); transition: transform .18s ease; }
.site-rich__q[open] summary svg { transform: rotate(180deg); }
.site-rich__q > div { padding: 0 20px 18px; }
.site-rich__q > div > :last-child { margin-bottom: 0; }
.site-rich__split { display: grid; gap: 28px; }
.site-rich__band--call { padding-block: clamp(40px, 5vw, 64px); }
.site-rich__call { display: grid; gap: 16px; justify-items: start; padding: clamp(28px, 4vw, 48px); border-radius: var(--cheers-component-radius); background: color-mix(in srgb, var(--cheers-component-accent) 9%, var(--cheers-component-background)); border: 1px solid color-mix(in srgb, var(--cheers-component-accent) 22%, transparent); }
.site-rich__call .site-rich__band-head { margin: 0; }
.site-rich__call-copy { max-width: 680px; }
.site-rich__call-copy p { margin: 0; }
@media (min-width: 900px) {
  .site-rich__lead--photo, .site-rich__split { grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); gap: clamp(32px, 5vw, 72px); align-items: start; }
  .site-rich__split .site-rich__photos, .site-rich__lead--photo .site-rich__photos { position: sticky; top: calc(var(--site-header-height) + 24px); }
}
@media (prefers-reduced-motion: reduce) { .site-rich__q summary svg, .site-rich__jump a { transition: none; } }
.site-rich__banner { margin-bottom: 24px; }
.site-rich__banner p { margin: 0; }
.site-rich__banner img { aspect-ratio: 21 / 8; object-fit: cover; }
@media (max-width: 700px) { .site-rich__banner img { aspect-ratio: 4 / 3; } }
/* Linked teaser cards: the whole card is the link (stretched), with a "Read →" cue. */
.site-rich__card--link { transition: border-color .16s ease, transform .16s ease; }
.site-rich__card--link:hover { border-color: var(--cheers-component-accent); transform: translateY(-2px); }
.site-rich__card--link h3 a { color: inherit; text-decoration: none; }
.site-rich__card--link h3 a::after { content: ""; position: absolute; inset: 0; border-radius: inherit; }
.site-rich__go { display: inline-flex; align-items: center; gap: 6px; color: var(--cheers-component-accent); font-size: .9375rem; font-weight: 750; }
.site-rich__go svg { width: 16px; height: 16px; }
@media (prefers-reduced-motion: reduce) { .site-rich__card--link { transition: none; } .site-rich__card--link:hover { transform: none; } }
.site-rich__kicker { margin: 2.6em 0 -1.2em !important; color: var(--cheers-component-accent); font-size: .75rem !important; font-weight: 800; letter-spacing: .14em; line-height: 1.4; text-transform: uppercase; }
@media (min-width: 700px) { .site-rich__cards:has(> li:nth-child(4):last-child) { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.site-rich__gallery { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr)); gap: 16px; margin-top: 8px; }
.site-rich__gallery > p, .site-rich__gallery > figure { margin: 0; }
.site-rich__gallery img { aspect-ratio: 16 / 9; object-fit: cover; }
.site-rich__intro:has(.site-rich__split--intro) { max-width: none; }
/* End of an article: three more posts as photo cards. */
.site-rich__related { margin-top: clamp(48px, 6vw, 80px); padding-top: clamp(32px, 4vw, 48px); border-top: 1px solid var(--cheers-component-border); }
.site-rich__related-title { margin: 0 0 24px; color: var(--cheers-component-heading); font-family: var(--font-display); font-size: var(--site-h2-size); }
.site-rich__related ul { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; margin: 0; padding: 0; list-style: none; }
.site-rich__related a { display: grid; gap: 10px; color: inherit; text-decoration: none; }
.site-rich__related-photo { overflow: hidden; border-radius: var(--cheers-component-radius); aspect-ratio: 16 / 10; background: var(--cheers-component-surface); }
.site-rich__related-photo img { width: 100%; height: 100%; object-fit: cover; transition: transform .3s ease; }
.site-rich__related a:hover img { transform: scale(1.03); }
.site-rich__related-meta { color: var(--cheers-component-accent); font-size: .8125rem; font-weight: 750; }
.site-rich__related strong { color: var(--cheers-component-heading); font-size: 1.125rem; line-height: 1.35; }
.site-rich__related a:hover strong { text-decoration: underline; text-underline-offset: 3px; }
@media (max-width: 800px) { .site-rich__related ul { grid-template-columns: minmax(0, 1fr); } }
/* Video list: thumbnail cards, three across, a play badge on each. */
.site-rich__videos { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 28px 24px; max-width: none !important; margin: 8px 0 0; padding: 0 !important; list-style: none; }
.site-rich__videos li { margin: 0; padding: 0; }
.site-rich__videos li::before { display: none; }
.site-rich__videos a { display: grid; gap: 12px; color: inherit; text-decoration: none; }
.site-rich__thumb { position: relative; display: block; overflow: hidden; border-radius: var(--cheers-component-radius); aspect-ratio: 16 / 9; background: var(--cheers-component-heading); }
.site-rich__thumb img { width: 100%; height: 100%; margin: 0; object-fit: cover; border-radius: 0; transition: transform .3s ease; }
.site-rich__play { position: absolute; inset: 50% auto auto 50%; display: grid; place-items: center; width: 56px; height: 56px; border-radius: 50%; background: var(--cheers-component-accent); color: var(--site-accent-text); transform: translate(-50%, -50%); box-shadow: 0 8px 24px rgb(0 0 0 / 30%); }
.site-rich__play svg { width: 22px; height: 22px; margin-left: 3px; }
.site-rich__videos a:hover img { transform: scale(1.04); }
.site-rich__videos strong { color: var(--cheers-component-heading); font-size: 1rem; line-height: 1.4; }
.site-rich__videos a:hover strong { color: var(--cheers-component-accent); }
@media (max-width: 900px) { .site-rich__videos { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) { .site-rich__videos { grid-template-columns: minmax(0, 1fr); } }
.site-rich__prose:has(> .site-rich__videos) { max-width: none; }
.site-rich__lede-links, .site-rich__lead:has(.site-rich__videos) { max-width: none; }
.site-rich :is(.site-rich__prose, .site-rich__body, .site-rich__inner, .site-wrap):has(.site-rich__videos) { max-width: var(--site-wrap-max, 1200px); }
.site-rich__body:has(> .site-rich__videos) { grid-column: 1 / -1; max-width: none; }
/* Comparison table (membership plans): sticky first column on phones, checks for "Included". */
.site-rich__table-wrap { max-width: none !important; margin: 24px 0; overflow-x: auto; border: 1px solid var(--cheers-component-border); border-radius: var(--cheers-component-radius); background: #ffffff; }
.site-rich__table { width: 100%; min-width: 560px; border-collapse: collapse; font-size: .9375rem; }
.site-rich__table th, .site-rich__table td { padding: 12px 16px; border-bottom: 1px solid var(--cheers-component-border); text-align: center; }
.site-rich__table thead th { background: var(--cheers-component-heading); color: #ffffff; font-family: var(--font-display); font-size: 1rem; }
.site-rich__table th[scope="row"], .site-rich__table thead th:first-child { position: sticky; left: 0; text-align: left; }
.site-rich__table th[scope="row"] { background: #ffffff; color: var(--cheers-component-heading); font-weight: 650; }
.site-rich__table tbody tr:nth-child(even) th[scope="row"], .site-rich__table tbody tr:nth-child(even) td { background: var(--cheers-component-surface); }
.site-rich__table tbody tr:last-child > * { border-bottom: 0; }
.site-rich__yes svg { width: 20px; height: 20px; color: var(--cheers-component-accent); }
.site-rich__no { color: var(--cheers-component-muted); }
/* Credential cards: a small badge, the state, the number, its link. */
.site-rich__cards--badges { grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)) !important; }
.site-rich__card--badge { position: relative; text-align: left; }
.site-rich__card-tag { position: absolute; top: 18px; right: 20px; margin: 0; color: var(--cheers-component-accent); font-family: var(--font-display); font-size: 1.5rem; font-weight: 800; opacity: .35; }
.site-rich__badge img { width: 56px !important; height: 56px !important; margin: 0 0 6px !important; border-radius: 0 !important; object-fit: contain; }
.site-rich__card--badge p { margin: 4px 0; }
.site-rich__card-label { color: var(--cheers-component-muted); font-size: .8125rem; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; }
.site-rich__card-figure { color: var(--cheers-component-heading); font-family: var(--font-display); font-size: 1.375rem; font-weight: 800; }
.site-rich__band--head { padding-bottom: 0 !important; }
.site-rich__band--head + .site-rich__band { padding-top: clamp(24px, 3vw, 36px); }
/* Directory cards (resources, partners): logo on white, a small tag, name, one line, link. */
.site-rich__cards--logos { grid-template-columns: repeat(auto-fill, minmax(min(100%, 260px), 1fr)) !important; }
.site-rich__card--logo { display: grid; align-content: start; gap: 8px; }
.site-rich__logo { display: grid; place-items: center; height: 96px; margin: -4px -4px 8px; padding: 14px 18px; border-radius: calc(var(--cheers-component-radius) * .7); background: #ffffff; border: 1px solid var(--cheers-component-border); }
.site-rich__logo { overflow: hidden; }
.site-rich__logo img { width: auto !important; max-width: 100% !important; height: auto !important; max-height: 68px !important; margin: 0 !important; object-fit: contain; border-radius: 0 !important; }
.site-rich__card-tag2 { margin: 0; color: var(--cheers-component-accent); font-size: .75rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.site-rich__card--logo h3 { margin: 0; }
.site-rich__card--logo p { margin: 0; }

/* site/components/card-grid/card-grid.css */
/* card-grid — cards that route to child pages or show options side by side. Three columns desktop, one on phones. */
.site-cards { padding-block: var(--cheers-page-space); background: var(--cheers-component-background); }
.site-cards__head { display: grid; gap: 12px; max-width: 760px; }
.site-cards__head > * { margin: 0; }
.site-cards h2 { color: var(--cheers-component-heading); font-size: var(--site-h2-size); font-weight: var(--display-weight); letter-spacing: var(--display-tracking); line-height: 1.1; }
.site-cards__head > p:last-child { color: var(--cheers-component-muted); font-size: 1.0625rem; line-height: 1.65; }
.site-cards__grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr)); gap: 16px; margin: 32px 0 0; padding: 0; list-style: none; }
.site-cards__card { display: grid; grid-template-rows: auto 1fr; height: 100%; overflow: hidden; border: 1px solid var(--site-card-border, var(--cheers-component-border)); border-radius: var(--cheers-component-radius); background: var(--site-card-background, var(--cheers-component-background)); color: inherit; text-decoration: none; transition: border-color .18s ease, transform .18s ease; }
a.site-cards__card:hover { border-color: var(--site-card-highlight, var(--cheers-component-accent)); transform: translateY(-2px); }
.site-cards__photo { display: block; overflow: hidden; aspect-ratio: 16 / 10; }
.site-cards__photo img { width: 100%; height: 100%; object-fit: cover; }
.site-cards__body { display: grid; gap: 8px; align-content: start; padding: 20px 22px 22px; }
.site-cards__body strong { display: flex; align-items: center; gap: 8px; color: var(--cheers-component-heading); font-family: var(--font-display); font-size: 1.25rem; line-height: 1.25; }
.site-cards__body strong svg { flex: none; width: 20px; height: 20px; color: var(--cheers-component-accent); }
.site-cards__body > span:not(.site-cards__go) { color: var(--cheers-component-muted); font-size: .9688rem; line-height: 1.55; }
.site-cards__go { display: inline-flex; align-items: center; gap: 6px; margin-top: 4px; color: var(--cheers-component-accent); font-weight: 750; font-size: .9375rem; }
.site-cards__go svg { width: 16px; height: 16px; transition: transform .18s ease; }
a.site-cards__card:hover .site-cards__go svg { transform: translateX(3px); }
.site-cards__card--plain { background: var(--cheers-component-surface); border-color: transparent; }
@media (prefers-reduced-motion: reduce) { .site-cards__card, .site-cards__go svg { transition: none; } a.site-cards__card:hover { transform: none; } }
.site-cards__eyebrow { color: var(--cheers-component-accent); font-size: .75rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.site-cards__points { display: grid; gap: 8px; margin: 4px 0 0; padding: 0; list-style: none; }
.site-cards__points li { display: grid; grid-template-columns: 18px minmax(0, 1fr); gap: 8px; color: var(--cheers-component-text); font-size: .9375rem; line-height: 1.5; }
.site-cards__points svg { width: 18px; height: 18px; margin-top: 2px; color: var(--cheers-component-accent); }
/* Photo credit (required by CC BY / BY-SA photos): a quiet line over the photo's bottom edge. */
.site-cards__photo { position: relative; }
.site-cards__credit { position: absolute; right: 0; bottom: 0; left: 0; padding: 14px 10px 5px; background: linear-gradient(transparent, rgb(0 0 0 / 55%)); color: #fff; font-size: .6875rem; line-height: 1.3; text-align: right; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
/* Grouped (areas hub across states): a jump row of state pills, a block per state, then its other communities as quiet chips. */
.site-cards__jump ul { display: flex; flex-wrap: wrap; gap: 8px; margin: 28px 0 0; padding: 0; list-style: none; }
.site-cards__jump a { display: inline-flex; align-items: center; min-height: 40px; padding: 0 16px; border: 1px solid var(--cheers-component-border); border-radius: var(--cheers-component-button-radius); color: var(--cheers-component-heading); font-size: .9375rem; font-weight: 700; text-decoration: none; transition: border-color .16s ease; }
.site-cards__jump a:hover { border-color: var(--cheers-component-accent); }
.site-cards__group { margin-top: clamp(40px, 5vw, 64px); scroll-margin-top: 120px; }
.site-cards__group-head { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 8px 20px; padding-bottom: 14px; border-bottom: 1px solid var(--cheers-component-border); }
.site-cards__group-head h3 { margin: 0; color: var(--cheers-component-heading); font-family: var(--font-display); font-size: clamp(1.5rem, 2.6vw, 2rem); font-weight: var(--display-weight); letter-spacing: var(--display-tracking); line-height: 1.15; }
.site-cards__group-link { display: inline-flex; align-items: center; gap: 6px; color: var(--cheers-component-accent); font-weight: 750; font-size: .9375rem; text-decoration: none; }
.site-cards__group-link svg { width: 16px; height: 16px; }
.site-cards__group .site-cards__grid { margin-top: 24px; }
.site-cards__also { margin-top: 24px; padding: 20px 22px; border-radius: var(--cheers-component-radius); background: var(--cheers-component-surface); }
.site-cards__also p { margin: 0 0 12px; color: var(--cheers-component-heading); font-weight: 750; }
.site-cards__also ul { display: flex; flex-wrap: wrap; gap: 6px 8px; margin: 0; padding: 0; list-style: none; }
.site-cards__also li { padding: 5px 12px; border: 1px solid var(--cheers-component-border); border-radius: 999px; background: var(--cheers-component-background); color: var(--cheers-component-text); font-size: .875rem; line-height: 1.35; }
/* Four cards never leave one alone on a row: two by two (or four across on wide screens). */
@media (min-width: 700px) { .site-cards__grid:has(> li:nth-child(4):last-child) { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1180px) { .site-cards__grid:has(> li:nth-child(4):last-child) { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
/* Grouped hub on phones: compact rows (thumbnail, city, arrow) instead of tall photo cards. */
@media (max-width: 700px) {
  .site-cards__group .site-cards__grid { gap: 8px; }
  .site-cards__group .site-cards__card { grid-template-columns: 84px minmax(0, 1fr); grid-template-rows: none; align-items: center; }
  .site-cards__group .site-cards__photo { aspect-ratio: 1; height: 100%; }
  .site-cards__group .site-cards__credit, .site-cards__group .site-cards__body > span:not(.site-cards__go):not(.site-cards__eyebrow) { display: none; }
  .site-cards__group .site-cards__body { padding: 12px 14px; gap: 4px; }
  .site-cards__group .site-cards__body strong { font-size: 1.0625rem; }
  .site-cards__group .site-cards__go { margin-top: 0; font-size: .875rem; }
}
/* Eight cards: two rows of four (never 3+3+2). */
@media (min-width: 1100px) { .site-cards__grid:has(> :nth-child(8):last-child) { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
/* Logo cards (affiliations, partners): the whole logo on white, never cropped. */
.site-cards__card--logo .site-cards__photo { display: grid; place-items: center; aspect-ratio: 5 / 2; padding: 22px 30px; background: #ffffff; border-bottom: 1px solid var(--cheers-component-border); }
.site-cards__card--logo .site-cards__photo img { position: static; width: 100%; height: 100%; object-fit: contain; }
.site-cards__more { margin: 28px 0 0; text-align: center; }
.site-cards__more a { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; color: var(--cheers-component-heading); font-weight: 750; text-decoration: underline; text-underline-offset: 4px; }
.site-cards__more svg { width: 18px; height: 18px; }
/* 7, 10, 13… photo cards in three columns would leave one card alone on the last row: the first card leads,
   wide, with its photo beside the words, and the rest fill full rows. */
@media (min-width: 1000px) {
  .site-cards__grid:has(> li:nth-child(3n+7):last-child):has(.site-cards__photo) { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .site-cards__grid:has(> li:nth-child(3n+7):last-child):has(.site-cards__photo) > li:first-child { grid-column: 1 / -1; }
  .site-cards__grid:has(> li:nth-child(3n+7):last-child) > li:first-child .site-cards__card:has(.site-cards__photo) { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); height: 100%; }
  .site-cards__grid:has(> li:nth-child(3n+7):last-child) > li:first-child .site-cards__card:has(.site-cards__photo) { grid-template-rows: none; }
  .site-cards__grid:has(> li:nth-child(3n+7):last-child) > li:first-child .site-cards__photo { position: relative; aspect-ratio: auto; height: 100%; min-height: 340px; }
  .site-cards__grid:has(> li:nth-child(3n+7):last-child) > li:first-child .site-cards__photo img { position: absolute; inset: 0; }
  .site-cards__grid:has(> li:nth-child(3n+7):last-child) > li:first-child .site-cards__body { align-content: center; padding: clamp(24px, 3vw, 44px); }
  .site-cards__grid:has(> li:nth-child(3n+7):last-child) > li:first-child .site-cards__body strong { font-size: clamp(1.5rem, 2.2vw, 1.875rem); }
}
/* Card system: only things you can open look like cards. A card that links somewhere has the frame, the hover lift
   and the "View" link; a card that doesn't is open content — no frame, no fill, no hover — so the two never read
   the same. Photo items keep a rounded photo; icon items lead with a tinted icon. */
div.site-cards__card { border-color: transparent; background: none; box-shadow: none; transform: none; }
div.site-cards__card .site-cards__photo { border-radius: var(--cheers-component-radius); }
div.site-cards__card .site-cards__body { padding: 16px 2px 0; }
div.site-cards__card--plain { background: none; }
div.site-cards__card--plain .site-cards__body { padding: 0; gap: 10px; }
div.site-cards__card--plain .site-cards__body strong { flex-direction: column; align-items: flex-start; gap: 14px; font-size: 1.25rem; }
div.site-cards__card--plain .site-cards__body strong svg { width: 44px; height: 44px; padding: 10px; box-sizing: border-box; border-radius: 12px; background: color-mix(in srgb, var(--cheers-component-accent) 12%, transparent); color: var(--cheers-component-accent); }
.site-cards__grid:has(> li > div.site-cards__card) { gap: 36px 32px; }
/* "We also serve": a plain list of names in columns, not chips that look like buttons. */
.site-cards__also { padding: 24px 0 0; border-radius: 0; background: none; }
.site-cards__also ul { display: block; columns: 4 160px; column-gap: 32px; }
.site-cards__also li { padding: 4px 0; border: 0; border-radius: 0; background: none; font-size: .9375rem; break-inside: avoid; }

/* site/components/post-grid/post-grid.css */
/* post-grid — blog index cards with topic chips. Three columns desktop, two tablet, one phone. */
.site-posts { padding-block: var(--cheers-page-space); background: var(--cheers-component-background); }
.site-posts__head { display: grid; gap: 12px; max-width: 760px; margin-bottom: clamp(24px, 3vw, 36px); }
.site-posts__head:empty { display: none; }
.site-posts__head > * { margin: 0; }
.site-posts h2 { color: var(--cheers-component-heading); font-size: var(--site-h2-size); font-weight: var(--display-weight); letter-spacing: var(--display-tracking); line-height: 1.1; }
.site-posts__head > p:last-child { color: var(--cheers-component-muted); font-size: 1.0625rem; line-height: 1.65; }
.site-chips { display: flex; gap: 8px; margin-top: 24px; overflow-x: auto; padding-bottom: 4px; scrollbar-width: none; }
.site-chips::-webkit-scrollbar { display: none; }
.site-chip { flex: none; min-height: 42px; padding: 0 18px; border: 1px solid var(--cheers-component-border); border-radius: var(--cheers-component-button-radius); background: var(--cheers-component-background); color: var(--cheers-component-heading); font-size: .9375rem; font-weight: 650; cursor: pointer; transition: background-color .18s ease, color .18s ease, border-color .18s ease; }
.site-chip:hover { border-color: var(--cheers-component-heading); }
.site-chip[aria-pressed="true"] { border-color: var(--cheers-component-heading); background: var(--cheers-component-heading); color: var(--cheers-component-background); }
.site-posts__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; margin: 28px 0 0; padding: 0; list-style: none; }
.site-posts__card { display: grid; grid-template-rows: auto 1fr; height: 100%; overflow: hidden; border: 1px solid var(--site-card-border, var(--cheers-component-border)); border-radius: var(--cheers-component-radius); background: var(--site-card-background, var(--cheers-component-background)); color: inherit; text-decoration: none; transition: border-color .18s ease, transform .18s ease; }
.site-posts__card:hover { border-color: var(--site-card-highlight, var(--cheers-component-accent)); transform: translateY(-2px); }
.site-posts__photo { display: block; overflow: hidden; aspect-ratio: 16 / 10; }
.site-posts__photo img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s ease; }
.site-posts__card:hover .site-posts__photo img { transform: scale(1.03); }
.site-posts__body { display: grid; gap: 8px; align-content: start; padding: 20px 22px 22px; }
.site-posts__cat { color: var(--cheers-component-accent); font-size: .75rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.site-posts__body strong { color: var(--cheers-component-heading); font-family: var(--font-display); font-size: 1.1875rem; line-height: 1.3; }
.site-posts__sum { color: var(--cheers-component-muted); font-size: .9688rem; line-height: 1.55; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.site-posts__body time { margin-top: 4px; color: var(--cheers-component-muted); font-size: .875rem; }
.site-posts__empty { margin-top: 24px; color: var(--cheers-component-muted); }
@media (max-width: 960px) { .site-posts__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) { .site-posts__grid { grid-template-columns: minmax(0, 1fr); } }
@media (prefers-reduced-motion: reduce) { .site-posts__card, .site-posts__photo img, .site-chip { transition: none; } .site-posts__card:hover { transform: none; } .site-posts__card:hover .site-posts__photo img { transform: none; } }
/* Tools row: search box, then topic chips. */
.site-posts__tools { display: grid; gap: 14px; margin-bottom: 28px; }
.site-posts__tools .site-chips { margin: 0; }
.site-posts__search { display: flex; align-items: center; gap: 10px; max-width: 420px; min-height: 48px; padding: 0 16px; border: 1px solid var(--cheers-component-border); border-radius: 999px; background: #ffffff; color: var(--cheers-component-muted); }
.site-posts__search:focus-within { border-color: var(--cheers-component-accent); box-shadow: 0 0 0 3px color-mix(in srgb, var(--cheers-component-accent) 18%, transparent); }
.site-posts__search svg { width: 18px; height: 18px; flex: none; }
.site-posts__search input { flex: 1; min-width: 0; border: 0; outline: 0; background: transparent; color: var(--cheers-component-heading); font: inherit; }
.site-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
/* The newest post leads, wide: photo left, words right (until a filter or search is on). */
@media (min-width: 900px) {
  .site-posts:not(.is-filtered) .site-posts__grid--lead > li:first-child { grid-column: 1 / -1; }
  .site-posts:not(.is-filtered) .site-posts__grid--lead > li:first-child .site-posts__card { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); }
  .site-posts:not(.is-filtered) .site-posts__grid--lead > li:first-child .site-posts__photo { height: 100%; aspect-ratio: auto; min-height: 320px; }
  .site-posts:not(.is-filtered) .site-posts__grid--lead > li:first-child .site-posts__body { align-content: center; padding: clamp(24px, 3vw, 44px); }
  .site-posts:not(.is-filtered) .site-posts__grid--lead > li:first-child strong { font-size: clamp(1.5rem, 2.2vw, 2rem); line-height: 1.2; }
}
.site-posts__tools .site-chips { flex-wrap: wrap; overflow: visible; }
/* Archive tools on one line: search at left, topics as one scrolling row beside it (faded at the edge), never a
   wrapped wall of chips. */
.site-posts__tools .site-chips { flex-wrap: nowrap; overflow-x: auto; -webkit-mask-image: linear-gradient(90deg, #000 85%, transparent); mask-image: linear-gradient(90deg, #000 85%, transparent); padding-right: 40px; }
@media (min-width: 900px) { .site-posts__tools:has(.site-posts__search) { grid-template-columns: minmax(260px, 340px) minmax(0, 1fr); align-items: center; gap: 20px; } }
.site-posts__search input { min-height: 48px; }

/* site/components/photo-gallery/photo-gallery.css */
/* photo-gallery — square grid, every 5th photo spans 2×2; full-screen viewer on tap. */
.site-gallery { padding-block: var(--cheers-page-space); background: var(--cheers-component-background); }
.site-gallery__head { display: grid; gap: 12px; max-width: 760px; }
.site-gallery__head > * { margin: 0; }
.site-gallery h2 { color: var(--cheers-component-heading); font-size: var(--site-h2-size); font-weight: var(--display-weight); letter-spacing: var(--display-tracking); line-height: 1.1; }
.site-gallery__head > p:last-child { color: var(--cheers-component-muted); font-size: 1.0625rem; line-height: 1.65; }
.site-gallery__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); grid-auto-flow: dense; gap: 12px; margin: 28px 0 0; padding: 0; list-style: none; }
.site-gallery__grid > li { aspect-ratio: 1; min-width: 0; }
.site-gallery__grid > li:nth-child(5n + 1) { grid-column: span 2; grid-row: span 2; }
.site-gallery__item { display: block; width: 100%; height: 100%; padding: 0; overflow: hidden; border: 0; border-radius: calc(var(--cheers-component-radius) * .75); background: var(--cheers-component-surface); cursor: zoom-in; }
.site-gallery__item img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s ease; }
.site-gallery__item:hover img { transform: scale(1.04); }
.site-gallery__dialog { width: min(1100px, calc(100vw - 32px)); max-height: calc(100svh - 32px); padding: 0; overflow: visible; border: 0; border-radius: var(--cheers-component-radius); background: transparent; }
.site-gallery__dialog::backdrop { background: rgb(0 0 0 / 86%); }
.site-gallery__figure { margin: 0; }
.site-gallery__dialog img { width: 100%; max-height: calc(100svh - 120px); object-fit: contain; border-radius: var(--cheers-component-radius); }
.site-gallery__caption { margin: 12px 4px 0; color: #ffffff; text-align: center; font-size: .9375rem; }
.site-gallery__close { position: absolute; top: -8px; right: -8px; display: grid; place-items: center; width: 44px; height: 44px; border: 0; border-radius: 50%; background: #ffffff; color: #000000; cursor: pointer; }
.site-gallery__close svg { width: 20px; height: 20px; }
@media (max-width: 760px) { .site-gallery__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; } }
@media (prefers-reduced-motion: reduce) { .site-gallery__item img { transition: none; } .site-gallery__item:hover img { transform: none; } }

/* site/components/lender-cards/lender-cards.css */
/* lender-cards — financing partners as equal cards; the published rate is the headline. */
.site-lenders { padding-block: var(--cheers-page-space); background: var(--cheers-component-surface); }
.site-lenders__head { display: grid; gap: 12px; max-width: 760px; }
.site-lenders__head > * { margin: 0; }
.site-lenders h2 { color: var(--cheers-component-heading); font-size: var(--site-h2-size); font-weight: var(--display-weight); letter-spacing: var(--display-tracking); line-height: 1.1; }
.site-lenders__head > p:last-child { color: var(--cheers-component-muted); font-size: 1.0625rem; line-height: 1.65; }
.site-lenders__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr)); gap: 16px; margin: 32px 0 0; padding: 0; list-style: none; }
.site-lenders__card { display: grid; grid-template-rows: auto auto 1fr auto; gap: 18px; padding: clamp(22px, 3vw, 30px); border: 1px solid var(--cheers-component-border); border-radius: var(--cheers-component-radius); background: var(--cheers-component-background); }
.site-lenders__logo { display: flex; align-items: center; min-height: 44px; }
.site-lenders__logo img { max-height: 40px; width: auto; }
.site-lenders__logo span { color: var(--cheers-component-heading); font-family: var(--font-display); font-size: 1.375rem; font-weight: var(--display-weight); letter-spacing: var(--display-tracking); }
.site-lenders__figure { display: flex; align-items: baseline; flex-wrap: wrap; gap: 8px; margin: 0; padding-bottom: 16px; border-bottom: 1px solid var(--cheers-component-border); }
.site-lenders__figure strong { color: var(--cheers-component-heading); font-family: var(--font-display); font-size: clamp(2.25rem, 4vw, 2.75rem); font-weight: var(--display-weight); letter-spacing: var(--display-tracking); line-height: 1; font-variant-numeric: tabular-nums; }
.site-lenders__figure span { color: var(--cheers-component-muted); font-size: .9375rem; }
.site-lenders__points { display: grid; gap: 10px; align-content: start; margin: 0; padding: 0; list-style: none; }
.site-lenders__points li { display: grid; grid-template-columns: 20px minmax(0, 1fr); gap: 10px; color: var(--cheers-component-text); line-height: 1.5; }
.site-lenders__points svg { width: 20px; height: 20px; margin-top: 2px; color: var(--cheers-component-accent); }
.site-lenders__card .site-button { width: 100%; }
.site-lenders__note { margin: 20px 0 0; color: var(--cheers-component-muted); font-size: .9375rem; }
.site-lenders__fine { max-width: 960px; margin: 16px 0 0; color: var(--cheers-component-muted); font-size: .8125rem; line-height: 1.6; }
/* Plan options from the intro: a row of cards above the lenders. */
.site-lenders__plans { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr)); gap: 16px; margin: 0 0 28px; padding: 0; list-style: none; }
.site-lenders__plans li { display: grid; gap: 8px; align-content: start; padding: 22px; border: 1px solid var(--cheers-component-border); border-top: 4px solid var(--cheers-component-accent); border-radius: var(--cheers-component-radius); background: #ffffff; }
.site-lenders__plans strong { color: var(--cheers-component-heading); font-family: var(--font-display); font-size: 1.25rem; line-height: 1.25; }
.site-lenders__plans span { color: var(--cheers-component-muted); line-height: 1.55; }
.site-lenders__card-fine { margin: 0; color: var(--cheers-component-muted); font-size: .8125rem; line-height: 1.5; }
.site-lenders__fine { font-size: .75rem; line-height: 1.55; }
.site-lenders__head + .site-lenders__plans { margin-top: 28px; }

/* One lender: a horizontal card (name and points beside a normal-size apply button), not a full-width slab.
   Long lender fine print folds into "Financing terms & disclosures" (still on the page, verbatim). */
@media (min-width: 760px) {
  .site-lenders__grid:has(> li:only-child) { grid-template-columns: minmax(0, 1fr); }
  .site-lenders__grid > li.site-lenders__card:only-child { display: grid; grid-template-columns: minmax(0, 1fr) auto; grid-template-areas: "logo action" "figure action" "points action" "terms terms"; grid-template-rows: auto; align-items: center; column-gap: 32px; row-gap: 12px; }
  .site-lenders__grid > li:only-child .site-lenders__logo { grid-area: logo; }
  .site-lenders__grid > li:only-child .site-lenders__figure { grid-area: figure; }
  .site-lenders__grid > li:only-child .site-lenders__points { grid-area: points; }
  .site-lenders__grid > li:only-child > .site-button { grid-area: action; width: auto; padding-inline: 32px; }
}
.site-lenders__note { display: flex; align-items: center; gap: 10px; color: var(--cheers-component-heading); font-weight: 650; }
.site-lenders__note svg { width: 20px; height: 20px; flex: none; color: var(--cheers-component-accent); }
.site-lenders__terms { margin-top: 18px; border-top: 1px solid var(--cheers-component-border); }
.site-lenders__terms summary { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 52px; color: var(--cheers-component-heading); font-weight: 700; cursor: pointer; list-style: none; }
.site-lenders__terms summary::-webkit-details-marker { display: none; }
.site-lenders__terms summary svg { width: 18px; height: 18px; transition: transform .2s ease; }
.site-lenders__terms[open] summary svg { transform: rotate(180deg); }
.site-lenders__terms .site-lenders__fine { margin: 0 0 12px; max-width: 110ch; }
@media (prefers-reduced-motion: reduce) { .site-lenders__terms summary svg { transition: none; } }
.site-lenders__grid > li:only-child .site-lenders__terms { grid-area: terms; margin-top: 8px; }
/* 2.23.4: the apply button keeps its own height, at the foot of the card, even when a card has no rate line. */
.site-lenders__card > .site-button { align-self: end; }

/* site/components/final-action/final-action.css */
/* final-action — dark closing panel (Elite Rooter homepage). Colors from --site-final-* roles. */
.site-final { padding-block: var(--cheers-page-space); background: var(--cheers-component-background); }
.site-final__panel { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, .8fr); gap: clamp(28px, 5vw, 64px); align-items: center; position: relative; isolation: isolate; overflow: hidden; padding: clamp(32px, 6vw, 72px); border-radius: var(--cheers-component-radius); background: var(--site-final-background); color: var(--site-final-text); }
/* Ring motif + accent glow behind the actions. */
.site-final__panel::before { content: ""; position: absolute; z-index: -1; width: min(720px, 120vw); aspect-ratio: 1; right: -18%; top: 50%; transform: translateY(-50%); border-radius: 50%; border: clamp(40px, 7vw, 90px) solid rgb(255 255 255 / 5%); }
.site-final__panel::after { content: ""; position: absolute; z-index: -1; width: 460px; aspect-ratio: 1; right: -120px; bottom: -220px; border-radius: 50%; background: radial-gradient(closest-side, color-mix(in srgb, var(--cheers-component-accent) 32%, transparent), transparent); }
.site-final__copy { display: grid; gap: 14px; }
.site-final__copy > * { margin: 0; }
.site-final h2 { color: var(--site-final-heading); font-size: var(--site-h2-size); font-weight: var(--display-weight); line-height: 1.12; letter-spacing: var(--display-tracking); }
.site-final__copy > p:last-child { color: var(--site-final-text); font-size: 1.0625rem; line-height: 1.6; max-width: 52ch; }
.site-final__actions { display: grid; gap: 18px; }
.site-final__phone { display: grid; gap: 4px; color: var(--site-final-heading); font-family: var(--font-display); font-size: clamp(1.75rem, 3vw, 2.4rem); font-weight: var(--display-weight); letter-spacing: -.03em; line-height: 1; text-decoration: none; font-variant-numeric: tabular-nums; }
.site-final__phone span { color: var(--site-final-text); font-family: var(--font-body); font-size: .75rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
@media (max-width: 900px) { .site-final__panel { grid-template-columns: minmax(0, 1fr); } }
.site-final .site-eyebrow { color: var(--site-final-eyebrow, color-mix(in srgb, var(--cheers-component-accent) 55%, #ffffff)); } /* brands may set --site-final-eyebrow (a kicker color made for dark panels) */
.site-final .site-button:not(.site-button--outline) { --site-button-bg: var(--site-final-action); --site-button-text: var(--site-final-action-text); }
/* The small label over the phone number keeps readable line spacing and clears the number when it wraps. */
.site-final__phone span { line-height: 1.35; margin-bottom: 6px; }
/* Both closing buttons share one width, and the label never squeezes against its icon. */
.site-final__actions .site-actions { display: grid; grid-template-columns: minmax(0, max-content); gap: 12px; }
.site-final__actions .site-actions .site-button { width: 100%; justify-content: center; white-space: nowrap; }
@media (max-width: 420px) { .site-final__actions .site-actions .site-button { white-space: normal; text-align: center; } }
/* The closing ask reads bigger than a section heading: two lines at display size. */
.site-final h2 { max-width: 16ch; font-size: clamp(2rem, 4vw, 3.25rem); line-height: 1.05; }

/* site/components/site-footer/site-footer.css */
/* site-footer — dark brand base, four columns, legal row. */
.site-footer { padding-block: clamp(56px, 7vw, 88px) 28px; background: var(--site-footer-background); color: var(--site-footer-text); font-size: .9375rem; }
.site-footer a { color: inherit; text-decoration: none; }
.site-footer a:hover { color: var(--site-footer-heading); }
.site-footer__top { display: grid; grid-template-columns: minmax(0, 1.5fr) repeat(3, minmax(0, 1fr)); gap: 40px; padding-bottom: 44px; border-bottom: 1px solid color-mix(in srgb, var(--site-footer-heading) 16%, transparent); }
.site-footer__brand { display: grid; gap: 14px; align-content: start; justify-items: start; }
.site-footer__brand .site-logo { color: var(--site-footer-heading); }
.site-footer__brand p { margin: 0; max-width: 34ch; line-height: 1.55; }
.site-footer__phone { color: var(--site-footer-heading) !important; font-family: var(--font-display); font-size: 1.75rem; font-weight: var(--display-weight); letter-spacing: -.03em; font-variant-numeric: tabular-nums; }
.site-footer__hours { font-size: .875rem; }
.site-footer__col h2 { margin: 0 0 14px; color: var(--site-footer-heading); font-family: var(--font-body); font-size: .75rem; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; }
.site-footer__col ul { display: grid; gap: 9px; margin: 0; padding: 0; list-style: none; }
.site-footer__bottom { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 12px 24px; padding-top: 22px; font-size: .8125rem; }
.site-footer__bottom p { margin: 0; }
.site-footer__bottom ul { display: flex; gap: 20px; margin: 0; padding: 0; list-style: none; }
@media (max-width: 900px) { .site-footer__top { grid-template-columns: repeat(2, minmax(0, 1fr)); } .site-footer__brand { grid-column: 1 / -1; } }
@media (max-width: 480px) { .site-footer__top { grid-template-columns: minmax(0, 1fr); } }
/* Contact lines (address, email) and social links under the phone. */
.site-footer__contact { display: grid; gap: 8px; margin: 14px 0 0; padding: 0; list-style: none; font-size: .9375rem; opacity: .9; }
.site-footer__contact li { display: grid; grid-template-columns: 18px minmax(0, 1fr); gap: 10px; align-items: start; }
.site-footer__contact svg { width: 18px; height: 18px; margin-top: 2px; }
.site-footer__social { display: flex; flex-wrap: wrap; gap: 8px; margin: 16px 0 0; padding: 0; list-style: none; }
.site-footer__social a { display: inline-flex; align-items: center; min-height: 34px; padding: 0 12px; border: 1px solid rgb(255 255 255 / 28%); border-radius: 999px; font-size: .8125rem; font-weight: 700; }
.site-footer__social a:hover { background: rgb(255 255 255 / 10%); }
/* Sister businesses row. */
.site-footer__family { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 20px; padding: 22px 0; border-bottom: 1px solid color-mix(in srgb, var(--site-footer-heading) 16%, transparent); }
.site-footer__family p { margin: 0; color: var(--site-footer-heading); font-weight: 750; }
.site-footer__family ul { display: flex; flex-wrap: wrap; gap: 10px; margin: 0; padding: 0; list-style: none; }
.site-footer__family a { display: inline-flex; align-items: center; gap: 8px; min-height: 40px; padding: 0 14px; border: 1px solid color-mix(in srgb, var(--site-footer-heading) 28%, transparent); border-radius: 999px; color: inherit; font-weight: 700; font-size: .875rem; text-decoration: none; }
.site-footer__family a:hover { background: color-mix(in srgb, var(--site-footer-heading) 10%, transparent); }
.site-footer__family svg { width: 18px; height: 18px; }
/* Profiles with a known network show its mark in a round button. */
.site-footer__social a:has(> svg) { justify-content: center; width: 44px; min-height: 44px; padding: 0; }
.site-footer__social a svg { width: 20px; height: 20px; }

/* site/components/action-bar/action-bar.css */
/* action-bar — fixed Schedule | Call split (Elite Rooter). Call on the right. ≤1024px only. */
.site-action-bar { display: none; }
@media (max-width: 1024px) {
  body { padding-bottom: calc(var(--site-action-bar-height) + env(safe-area-inset-bottom, 0px)); }
  .site-action-bar {
    position: fixed; inset: auto 0 0; z-index: 90;
    display: grid; grid-template-columns: 1fr 1fr;
    padding-bottom: env(safe-area-inset-bottom, 0px);
    background: var(--cheers-component-heading);
    box-shadow: 0 -8px 24px rgb(0 0 0 / 14%);
  }
  .site-action-bar a { display: flex; align-items: center; justify-content: center; gap: 8px; min-height: var(--site-action-bar-height); font-weight: 800; text-decoration: none; }
  .site-action-bar__call { background: var(--site-action-bar-call); color: var(--site-action-bar-call-text); }
  .site-action-bar__book { background-color: var(--site-action-bar-book); color: var(--site-action-bar-book-text); }
  .site-action-bar a { background-image: linear-gradient(155deg, rgb(255 255 255 / 8%), rgb(255 255 255 / 0%) 52%); }
  .site-action-bar__call { box-shadow: 0 -6px 22px color-mix(in srgb, var(--site-action-bar-call) 32%, transparent); }
  .site-action-bar svg { width: 18px; height: 18px; }
}

/* site/components/local-offer/local-offer.css */
/* local-offer — one coupon for the visitor's city, cut like a ticket: accent stub with the price, notched edge, details. */
.site-offer { padding-block: var(--cheers-page-space); background: var(--cheers-component-surface); }
.site-offer[hidden] { display: none; }
.site-offer__inner { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: clamp(28px, 5vw, 64px); align-items: center; }
.site-offer__head { display: grid; gap: 12px; }
.site-offer__head > * { margin: 0; }
.site-offer h2 { color: var(--cheers-component-heading); font-size: var(--site-h2-size); font-weight: var(--display-weight); letter-spacing: var(--display-tracking); line-height: 1.1; }
.site-offer__head > p:last-child:not(.site-eyebrow) { color: var(--cheers-component-muted); font-size: 1.0625rem; line-height: 1.65; }
.site-offer__coupon { position: relative; display: grid; grid-template-columns: minmax(150px, .7fr) minmax(0, 1.3fr); overflow: hidden; border-radius: var(--cheers-component-radius); background: var(--cheers-component-background); box-shadow: 0 1px 0 var(--cheers-component-border), 0 22px 48px rgb(0 0 0 / 10%); }
.site-offer__stub { position: relative; display: grid; align-content: center; justify-items: center; gap: 6px; padding: 28px 20px; background: linear-gradient(180deg, rgb(255 255 255 / 14%), rgb(255 255 255 / 0%) 60%), var(--cheers-component-accent); color: var(--site-accent-text); text-align: center; }
/* the perforated edge between stub and body, with half-circle notches top and bottom */
.site-offer__stub::after { content: ""; position: absolute; top: 14px; right: -1px; bottom: 14px; border-right: 2px dashed color-mix(in srgb, var(--cheers-component-accent) 45%, transparent); }
.site-offer__coupon::before, .site-offer__coupon::after { content: ""; position: absolute; z-index: 1; left: calc(35% - 13px); width: 26px; height: 26px; border-radius: 50%; background: var(--cheers-component-surface); }
.site-offer__coupon::before { top: -13px; } .site-offer__coupon::after { bottom: -13px; }
.site-offer__amount { font-family: var(--font-display); font-size: clamp(2.6rem, 6vw, 4rem); font-weight: 800; line-height: 1; letter-spacing: -.02em; }
.site-offer__what { font-size: .8125rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; opacity: .9; }
.site-offer__body { display: grid; gap: 12px; align-content: start; padding: 28px clamp(22px, 3vw, 34px); }
.site-offer__body > * { margin: 0; }
.site-offer__city { display: inline-flex; align-items: center; gap: 6px; width: fit-content; padding: 5px 12px 5px 9px; border-radius: 999px; background: color-mix(in srgb, var(--cheers-component-accent) 12%, var(--cheers-component-background)); color: var(--cheers-component-heading); font-size: .875rem; font-weight: 750; }
.site-offer__city svg { width: 16px; height: 16px; color: var(--cheers-component-accent); }
.site-offer__body h3 { color: var(--cheers-component-heading); font-family: var(--font-display); font-size: clamp(1.4rem, 2.4vw, 1.75rem); line-height: 1.2; }
.site-offer__desc { color: var(--cheers-component-text); font-size: 1rem; line-height: 1.6; }
.site-offer__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 20px; margin-top: 6px !important; }
.site-offer__call { display: inline-flex; align-items: center; gap: 8px; color: var(--cheers-component-heading); font-weight: 750; text-decoration: none; }
.site-offer__call svg { width: 18px; height: 18px; color: var(--cheers-component-accent); }
.site-offer__call:hover { text-decoration: underline; text-underline-offset: 3px; }
.site-offer__terms { padding-top: 12px; border-top: 1px dashed var(--cheers-component-border); color: var(--cheers-component-muted); font-size: .8125rem; line-height: 1.5; }
@media (max-width: 860px) {
  .site-offer__inner { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 560px) {
  .site-offer__coupon { grid-template-columns: minmax(0, 1fr); }
  .site-offer__stub { padding: 24px 18px 26px; }
  .site-offer__stub::after { top: auto; right: 14px; bottom: -1px; left: 14px; border-right: 0; border-bottom: 2px dashed color-mix(in srgb, var(--cheers-component-accent) 45%, transparent); }
  .site-offer__coupon::before, .site-offer__coupon::after { display: none; }
  .site-offer__actions .site-button { width: 100%; }
}
/* Coupons page: city picker beside the coupon slot. */
.site-offer--picker { background: var(--cheers-component-background); }
.site-offer__pick { display: grid; gap: 6px; margin-top: 8px !important; color: var(--cheers-component-heading); font-size: .875rem; font-weight: 750; }
.site-offer__pick select { min-height: 52px; padding: 0 44px 0 16px; border: 1px solid var(--cheers-component-border); border-radius: 12px; background: var(--cheers-component-background) url("data:image/svg+xml,%3Csvg xmlns='http://www%2Ew3%2Eorg/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23666' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") right 14px center / 18px no-repeat; color: var(--cheers-component-heading); font: inherit; font-size: 1rem; font-weight: 600; appearance: none; }
.site-offer__pick select:focus-visible { outline: 3px solid var(--cheers-component-focus); outline-offset: 2px; }
.site-offer__note { color: var(--cheers-component-muted); font-size: .875rem; }
.site-offer__empty { display: flex; align-items: center; justify-content: center; gap: 10px; min-height: 220px; margin: 0; border: 2px dashed var(--cheers-component-border); border-radius: var(--cheers-component-radius); color: var(--cheers-component-muted); font-weight: 650; }
.site-offer__empty svg { width: 20px; height: 20px; color: var(--cheers-component-accent); }
/* Coupons page: every city's coupon in a grid, state filter pills above. */
.site-offer--all { background: var(--cheers-component-surface); }
.site-offer__head--center { max-width: 720px; margin: 0 auto 24px; text-align: center; justify-items: center; }
.site-offer__states { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; margin-bottom: 28px; }
.site-offer__states button { min-height: 40px; padding: 0 18px; border: 1px solid var(--cheers-component-border); border-radius: 999px; background: var(--cheers-component-background); color: var(--cheers-component-heading); font: inherit; font-size: .9375rem; font-weight: 700; cursor: pointer; }
.site-offer__states button[aria-pressed="true"] { border-color: var(--cheers-component-heading); background: var(--cheers-component-heading); color: var(--cheers-component-background); }
.site-offer__grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr)); gap: 18px; margin: 0; padding: 0; list-style: none; }
.site-offer__grid > li[hidden] { display: none; }
.site-offer__card { display: grid; grid-template-rows: auto 1fr; height: 100%; overflow: hidden; border-radius: var(--cheers-component-radius); background: var(--cheers-component-background); box-shadow: 0 1px 0 var(--cheers-component-border), 0 16px 36px -22px rgb(0 0 0 / 30%); }
.is-near .site-offer__card { outline: 3px solid var(--cheers-component-accent); outline-offset: 2px; }
.site-offer__card-price { position: relative; display: grid; justify-items: center; gap: 4px; padding: 26px 18px 30px; background: linear-gradient(180deg, rgb(255 255 255 / 14%), rgb(255 255 255 / 0%) 60%), var(--cheers-component-accent); color: var(--site-accent-text); text-align: center; }
.site-offer__card-price::after { content: ""; position: absolute; right: 14px; bottom: 0; left: 14px; border-bottom: 2px dashed color-mix(in srgb, var(--cheers-component-background) 55%, transparent); }
.site-offer__card-body { display: grid; gap: 12px; align-content: start; padding: 20px 22px 22px; }
.site-offer__card-body > * { margin: 0; }
.site-offer__card-body .site-button { justify-self: start; }
.site-offer__near { margin-left: 6px; padding: 2px 8px; border-radius: 999px; background: var(--cheers-component-accent); color: var(--site-accent-text); font-size: .75rem; font-style: normal; }
.site-offer__near[hidden] { display: none; }
.site-offer__note--center { margin: 24px auto 0; text-align: center; color: var(--cheers-component-muted); }

/* Offer page panel (Parks live offer pages): price large in the accent, dates muted, photo beside. */
.site-offer-panel { padding: clamp(36px, 5vw, 64px) 0; background: var(--cheers-component-surface); }
.site-offer-panel__grid { display: grid; grid-template-columns: minmax(0, 1.7fr) minmax(0, 1fr); gap: clamp(28px, 4vw, 56px); align-items: start; }
.site-offer-panel__eyebrow { margin: 0 0 10px; color: var(--cheers-component-accent); font-size: .8125rem; font-weight: 800; letter-spacing: .09em; text-transform: uppercase; }
.site-offer-panel__price { margin: 0; color: var(--cheers-component-accent); font-family: var(--font-display, inherit); font-size: clamp(2.5rem, 5vw, 3.5rem); font-weight: 800; line-height: 1; letter-spacing: -.02em; }
.site-offer-panel__summary { margin: 12px 0 0; color: var(--cheers-component-heading); font-size: 1.25rem; font-weight: 700; line-height: 1.35; }
.site-offer-panel__terms { margin: 8px 0 0; color: var(--cheers-component-muted); font-size: .875rem; }
.site-offer-panel__intro { max-width: 60ch; margin: 18px 0 0; font-size: 1.0625rem; line-height: 1.6; }
.site-offer-panel .site-actions { margin-top: 24px; }
.site-offer-panel__photo { margin: 0; overflow: hidden; border-radius: 16px; aspect-ratio: 16 / 10; background: var(--cheers-component-border); }
.site-offer-panel__photo img { display: block; width: 100%; height: 100%; object-fit: cover; }
@media (max-width: 760px) { .site-offer-panel__grid { grid-template-columns: minmax(0, 1fr); } .site-offer-panel__photo { order: -1; } .site-offer-panel .site-actions > * { flex: 1 1 100%; } }
.site-offer--all { padding-top: clamp(40px, 5vw, 64px); }

/* site/components/service-selector/service-selector.css */
/* Choose a service: icon tiles in one row, then the all-services link and the areas card. */
.site-selector { padding: clamp(36px, 5vw, 64px) 0 clamp(40px, 5vw, 64px); background: var(--cheers-component-background); }
.site-selector__head { margin-bottom: 22px; }
.site-selector__head h2 { margin: 0; color: var(--cheers-component-heading); font-family: var(--font-display); font-size: var(--site-h2-size); line-height: 1.1; }
.site-selector__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 12px; margin: 0; padding: 0; list-style: none; }
.site-selector__tile { display: grid; grid-template-columns: 30px minmax(0, 1fr); gap: 10px; align-items: center; min-height: 72px; height: 100%; padding: 14px 16px; border: 1px solid color-mix(in srgb, var(--cheers-component-accent) 30%, transparent); border-radius: 14px; background: color-mix(in srgb, var(--cheers-component-accent) 12%, white); color: var(--cheers-component-heading); font-weight: 750; line-height: 1.25; text-decoration: none; transition: background .18s, border-color .18s, transform .18s; }
.site-selector__tile:hover { border-color: var(--cheers-component-accent); background: color-mix(in srgb, var(--cheers-component-accent) 22%, white); transform: translateY(-2px); }
.site-selector__icon svg { width: 26px; height: 26px; color: var(--cheers-component-heading); }
.site-selector__routes { display: grid; justify-items: center; gap: 20px; margin-top: 26px; }
.site-selector__all { color: var(--cheers-component-heading); font-weight: 750; text-decoration: underline; text-underline-offset: 6px; text-decoration-thickness: 2px; }
.site-selector__all:hover { color: var(--cheers-component-accent); }
.site-selector__area { position: relative; isolation: isolate; display: grid; grid-template-columns: 44px minmax(0, 1fr); gap: 14px; align-items: center; width: min(100%, 440px); min-height: 84px; padding: 16px 20px; overflow: hidden; border-radius: 14px; background: color-mix(in srgb, var(--cheers-component-rating) 12%, var(--cheers-component-surface)); color: var(--cheers-component-heading); text-decoration: none; box-shadow: 0 1px 0 rgb(0 0 0 / 4%); transition: transform .18s, box-shadow .18s; }
.site-selector__area:hover { transform: translateY(-2px); box-shadow: 0 10px 24px rgb(0 0 0 / 10%); }
.site-selector__map { position: absolute; inset: 0 0 0 38%; z-index: -1; width: 62%; height: 100%; -webkit-mask-image: linear-gradient(90deg, transparent, #000 35%); mask-image: linear-gradient(90deg, transparent, #000 35%); }
.site-selector__map .site-selector__m-streets { fill: none; stroke: #ffffff; stroke-width: 5; opacity: .9; }
.site-selector__map .site-selector__m-blocks rect { fill: color-mix(in srgb, var(--cheers-component-rating) 14%, var(--cheers-component-surface)); }
.site-selector__map .site-selector__m-river { fill: none; stroke: color-mix(in srgb, var(--cheers-component-accent) 25%, white); stroke-width: 9; }
.site-selector__map .site-selector__m-route { fill: none; stroke: var(--cheers-component-rating); stroke-width: 3.5; stroke-linecap: round; }
.site-selector__map .site-selector__m-pin path { fill: var(--cheers-component-rating); } .site-selector__map .site-selector__m-pin circle { fill: #ffffff; }
.site-selector__area-icon svg { width: 40px; height: 40px; }
.site-selector__area-copy { display: grid; gap: 2px; }
.site-selector__area-copy strong { font-size: 1.125rem; }
.site-selector__area-copy small { color: var(--cheers-component-muted); font-size: .9375rem; }
@media (max-width: 700px) { .site-selector__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (prefers-reduced-motion: reduce) { .site-selector__tile, .site-selector__area { transition: none; } .site-selector__tile:hover, .site-selector__area:hover { transform: none; } }

/* site/components/proof-band/proof-band.css */
/* Proof band: accent band, white standards gliding left. */
.site-band { overflow: hidden; padding: 16px 0; background: var(--site-band-background, var(--cheers-component-accent)); color: var(--site-band-text, var(--site-accent-text)); }
.site-band__track { display: flex; width: max-content; animation: site-band 38s linear infinite; }
.site-band:hover .site-band__track { animation-play-state: paused; }
.site-band__row { display: flex; flex: none; gap: 56px; margin: 0; padding: 0 28px; list-style: none; }
.site-band__row li { display: inline-flex; align-items: center; gap: 12px; white-space: nowrap; font-size: 1.0625rem; }
.site-band__row svg { width: 22px; height: 22px; flex: none; }
@keyframes site-band { to { transform: translateX(-33.333%); } }
@media (prefers-reduced-motion: reduce) {
  .site-band__track { width: auto; animation: none; justify-content: center; }
  .site-band__row { flex-wrap: wrap; justify-content: center; gap: 12px 40px; }
  .site-band__row[aria-hidden] { display: none; }
}

/* site/components/photo-strip/photo-strip.css */
/* Photo strip: tall rounded photos in a sideways row that starts on the page grid and runs off the right edge. */
.site-strip { padding: clamp(48px, 6vw, 88px) 0; background: var(--cheers-component-background); overflow: hidden; }
.site-strip__head { display: flex; align-items: end; justify-content: space-between; gap: 24px; margin-bottom: 24px; }
.site-strip__head h2 { margin: 0; color: var(--cheers-component-heading); font-family: var(--font-display); font-size: var(--site-h2-size); line-height: 1.1; }
.site-strip__controls { display: flex; gap: 10px; }
.site-strip__btn { display: grid; place-items: center; width: 48px; height: 48px; border: 1px solid var(--cheers-component-border); border-radius: 50%; background: #ffffff; color: var(--cheers-component-heading); cursor: pointer; transition: background .18s, border-color .18s; }
.site-strip__btn:hover:not(:disabled) { border-color: var(--cheers-component-heading); }
.site-strip__btn:disabled { opacity: .35; cursor: default; }
.site-strip__btn svg { width: 20px; height: 20px; }
.site-strip__btn[data-site-strip-prev] svg { transform: rotate(180deg); }
.site-strip__track { display: grid; grid-auto-flow: column; grid-auto-columns: clamp(240px, 26vw, 360px); gap: 16px; margin: 0; padding: 0 max(16px, calc((100vw - var(--site-wrap-max, 1200px)) / 2)); list-style: none; overflow-x: auto; scroll-snap-type: x mandatory; scroll-padding-inline: max(16px, calc((100vw - var(--site-wrap-max, 1200px)) / 2)); scrollbar-width: none; }
.site-strip__track::-webkit-scrollbar { display: none; }
.site-strip__track:focus-visible { outline: 2px solid var(--cheers-component-accent); outline-offset: 4px; }
.site-strip__item { scroll-snap-align: start; }
.site-strip__item figure { position: relative; margin: 0; overflow: hidden; border-radius: var(--cheers-component-radius); aspect-ratio: 3 / 4; background: var(--cheers-component-surface); }
.site-strip__img { width: 100%; height: 100%; object-fit: cover; }
.site-strip__item figcaption { position: absolute; inset: auto 0 0 0; padding: 40px 18px 16px; background: linear-gradient(transparent, rgb(0 0 0 / 70%)); color: #ffffff; font-weight: 750; }

/* site/components/topic-rows/topic-rows.css */
/* Topic rows: photo and copy side by side, alternating; checklist points; closing line set apart. */
.site-topics { padding: clamp(48px, 6vw, 88px) 0; background: var(--cheers-component-background); }
.site-topics__head { max-width: 760px; margin-bottom: clamp(24px, 3vw, 40px); }
.site-topics__head h2 { margin: 0; color: var(--cheers-component-heading); font-family: var(--font-display); font-size: var(--site-h2-size); }
.site-topics__row { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(28px, 5vw, 72px); align-items: center; padding: clamp(40px, 6vw, 80px) 0; }
.site-topics__row:first-of-type { border-top: 0; padding-top: 0; }
.site-topics__row--flip .site-topics__photo { order: 2; }
.site-topics__row--text { grid-template-columns: minmax(0, 1fr); }
.site-topics__photo { margin: 0; overflow: hidden; border-radius: var(--cheers-component-radius); aspect-ratio: 4 / 5; max-height: 560px; background: var(--cheers-component-surface); }
.site-topics__photo img { width: 100%; height: 100%; object-fit: cover; }
.site-topics__copy h2 { margin: 6px 0 14px; color: var(--cheers-component-heading); font-family: var(--font-display); font-size: clamp(1.5rem, 2.4vw, 2rem); line-height: 1.15; }
.site-topics__copy > p, .site-topics__outro p { max-width: 64ch; margin: 0 0 12px; line-height: 1.65; }
.site-topics__copy a { color: var(--cheers-component-accent); font-weight: 700; }
.site-topics__points { display: grid; gap: 10px; margin: 16px 0; padding: 0; list-style: none; }
.site-topics__points li { display: grid; grid-template-columns: 22px minmax(0, 1fr); gap: 10px; align-items: start; line-height: 1.55; }
.site-topics__points li:has(> span > strong) { padding: 12px 14px; border-radius: calc(var(--cheers-component-radius) * .7); background: var(--cheers-component-surface); }
.site-topics__points svg { width: 20px; height: 20px; margin-top: 2px; color: var(--cheers-component-accent); }
.site-topics__points strong { color: var(--cheers-component-heading); }
.site-topics__points:not(:has(strong)) { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.site-topics__cards { display: grid; gap: 12px; margin: 16px 0; padding: 0; list-style: none; }
.site-topics__card { display: grid; gap: 6px; padding: 18px 20px; border: 1px solid var(--cheers-component-border); border-left: 4px solid var(--cheers-component-accent); border-radius: var(--cheers-component-radius); background: #ffffff; }
.site-topics__card strong { color: var(--cheers-component-heading); font-size: 1.0625rem; }
.site-topics__card span { color: var(--cheers-component-muted); line-height: 1.6; }
.site-topics__outro { margin-top: 12px; padding-left: 14px; border-left: 3px solid var(--cheers-component-border); color: var(--cheers-component-muted); }
@media (max-width: 860px) { .site-topics__row, .site-topics__row--flip { grid-template-columns: minmax(0, 1fr); } .site-topics__row--flip .site-topics__photo { order: 0; } .site-topics__photo { aspect-ratio: 16 / 10; } .site-topics__points:not(:has(strong)) { grid-template-columns: minmax(0, 1fr); } }

/* site/components/local-team/local-team.css */
/* Local team: three review cards beside a service-area panel. */
.site-local { padding: clamp(48px, 6vw, 80px) 0; background: var(--cheers-component-surface); }
.site-local__head { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: 24px; align-items: end; margin-bottom: 24px; }
.site-local__head h2 { margin: 0; color: var(--cheers-component-heading); font-family: var(--font-display); font-size: var(--site-h2-size); line-height: 1.08; }
.site-local__head p { margin: 0; color: var(--cheers-component-muted); }
.site-local__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(260px, 340px); gap: 20px; align-items: start; }
.site-local__reviews { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 16px; margin: 0; padding: 0; list-style: none; }
.site-local__review { display: grid; grid-template-rows: auto 1fr auto; gap: 12px; height: 100%; margin: 0; padding: 22px; border-radius: var(--cheers-component-radius); background: #ffffff; box-shadow: 0 1px 0 var(--cheers-component-border); }
.site-local__stars { color: var(--cheers-component-rating); letter-spacing: 2px; }
.site-local__review blockquote { margin: 0; }
.site-local__review blockquote p { margin: 0; color: var(--cheers-component-heading); line-height: 1.6; }
.site-local__review figcaption { display: grid; gap: 2px; font-size: .875rem; }
.site-local__review figcaption strong { color: var(--cheers-component-heading); font-size: 1rem; }
.site-local__review figcaption span { color: var(--cheers-component-muted); }
.site-local__review figcaption a { display: inline-flex; align-items: center; gap: 4px; margin-top: 6px; color: var(--cheers-component-accent); font-weight: 750; }
.site-local__review figcaption a svg { width: 14px; height: 14px; }
.site-local__panel { position: sticky; top: calc(var(--site-header-height, 72px) + 24px); display: grid; gap: 14px; padding: 24px; border-radius: var(--cheers-component-radius); background: var(--cheers-component-heading); color: #ffffff; }
.site-local__panel h3 { margin: 0; color: #ffffff; font-size: 1.25rem; }
.site-local__panel dl { display: grid; gap: 12px; margin: 0; }
.site-local__panel dt { font-size: .75rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; opacity: .7; }
.site-local__panel dd { margin: 2px 0 0; font-weight: 650; }
.site-local__panel dd a { color: #ffffff; font-size: 1.25rem; font-weight: 800; }
@media (max-width: 900px) { .site-local__head, .site-local__grid { grid-template-columns: minmax(0, 1fr); } .site-local__panel { position: static; } }

/* site/components/lead-form/lead-form.css */
/* lead-form — the site's own message forms, posted to its form handler. */
.site-lead { display: grid; gap: 18px; padding: clamp(22px, 3vw, 32px); border: 1px solid var(--cheers-component-border); border-radius: var(--cheers-component-radius); background: var(--cheers-component-background); }
.site-lead__title { margin: 0; color: var(--cheers-component-heading); font-family: var(--font-display); font-size: 1.375rem; }
.site-lead__intro { margin: -8px 0 0; color: var(--cheers-component-muted); line-height: 1.6; }
.site-lead__fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px 16px; }
@media (max-width: 640px) { .site-lead__fields { grid-template-columns: minmax(0, 1fr); } }
.site-lead__field { display: grid; gap: 6px; min-width: 0; }
.site-lead__field--wide { grid-column: 1 / -1; }
.site-lead__field > span { color: var(--cheers-component-heading); font-size: .9375rem; font-weight: 700; }
.site-lead__field em { color: var(--cheers-component-muted); font-style: normal; font-weight: 500; }
.site-lead__field :is(input, select, textarea) { width: 100%; min-height: 48px; padding: 12px 14px; border: 1px solid var(--cheers-component-border); border-radius: calc(var(--cheers-component-radius) * .6); background: var(--cheers-component-surface); color: var(--cheers-component-text); font: inherit; }
.site-lead__field textarea { min-height: 112px; resize: vertical; }
.site-lead__field :is(input, select, textarea):focus-visible { outline: 3px solid color-mix(in srgb, var(--cheers-component-accent) 40%, transparent); outline-offset: 1px; border-color: var(--cheers-component-accent); }
.site-lead__check { display: flex; gap: 10px; align-items: flex-start; color: var(--cheers-component-text); line-height: 1.5; }
.site-lead__check input { width: 20px; height: 20px; margin-top: 2px; accent-color: var(--cheers-component-accent); }
.site-lead__hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.site-lead__submit { justify-self: start; }
.site-lead__submit[disabled] { opacity: .6; cursor: progress; }
.site-lead__status { margin: 0; padding: 12px 14px; border-radius: calc(var(--cheers-component-radius) * .6); background: var(--cheers-component-surface); color: var(--cheers-component-heading); font-weight: 650; line-height: 1.5; }
.site-lead__status[data-state="error"] { border-left: 4px solid var(--cheers-component-accent); }
.site-lead[data-sent] .site-lead__fields, .site-lead[data-sent] .site-lead__submit { display: none; }
.site-lead-section { padding-block: var(--cheers-page-space); background: var(--cheers-component-surface); }
.site-lead-section__inner { display: grid; gap: clamp(28px, 4vw, 56px); }
@media (min-width: 900px) { .site-lead-section__inner { grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); align-items: start; } .site-lead-section__head { position: sticky; top: calc(var(--site-header-height, 72px) + 24px); } }
.site-lead-section__head { display: grid; gap: 12px; align-content: start; }
.site-lead-section__head > * { margin: 0; }
.site-lead-section__head h2 { color: var(--cheers-component-heading); font-size: var(--site-h2-size); font-weight: var(--display-weight); line-height: 1.1; letter-spacing: var(--display-tracking); }
.site-lead-section__head > p { color: var(--cheers-component-muted); line-height: 1.65; }
.site-lead-section__call a { display: inline-flex; align-items: center; gap: 6px; color: var(--cheers-component-accent); font-weight: 800; text-decoration: none; }
.site-lead-section__call svg { width: 18px; height: 18px; }
.site-lead__group { display: grid; gap: 10px; margin: 0; padding: 0; border: 0; }
.site-lead__group legend { margin-bottom: 4px; color: var(--cheers-component-heading); font-size: .9375rem; font-weight: 700; }
.site-lead__check a { color: var(--cheers-component-accent); font-weight: 700; }
.site-lead__field input[type="file"] { padding: 10px; }
.site-lead__captcha { min-height: 78px; }
.site-lead__error { color: var(--cheers-component-accent); font-size: .875rem; font-weight: 650; }
.site-lead [aria-invalid="true"] { border-color: var(--cheers-component-accent); }
/* Never wider than the screen: long select options and labels wrap instead of stretching the form. */
.site-lead-section__inner { grid-template-columns: minmax(0, 1fr); }
@media (min-width: 900px) { .site-lead-section__inner { grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); } }
.site-lead, .site-lead__fields, .site-lead__field { min-width: 0; }
.site-lead__field :is(input, select, textarea) { min-width: 0; max-width: 100%; }
.site-lead__field select { text-overflow: ellipsis; }

/* site/components/member-portal/member-portal.css */
/* member-portal — staff sign-in and resource list. */
.site-portal { padding-block: var(--cheers-page-space); }
.site-portal__box { max-width: 960px; margin: 0 auto; }
.site-portal__login { display: grid; gap: 14px; max-width: 520px; padding: clamp(24px, 4vw, 40px); border: 1px solid var(--cheers-component-border); border-radius: var(--cheers-component-radius); background: var(--cheers-component-background); }
.site-portal__login > *, .site-portal__dashhead > * { margin: 0; }
.site-portal h2 { color: var(--cheers-component-heading); font-size: var(--site-h3-size, 1.75rem); font-weight: var(--display-weight); line-height: 1.15; }
.site-portal__badge { display: inline-flex; align-items: center; gap: 8px; justify-self: start; padding: 6px 12px; border-radius: 999px; background: var(--cheers-component-surface); color: var(--cheers-component-accent); font-size: .875rem; font-weight: 750; }
.site-portal__badge svg { width: 16px; height: 16px; }
.site-portal__intro, .site-portal__help { color: var(--cheers-component-muted); line-height: 1.6; }
.site-portal__help a { color: var(--cheers-component-accent); font-weight: 750; }
.site-portal__form { display: grid; gap: 14px; }
.site-portal__form .site-button { justify-self: start; }
.site-portal__field { display: grid; gap: 6px; }
.site-portal__field > span { color: var(--cheers-component-heading); font-size: .9375rem; font-weight: 700; }
.site-portal__field :is(input, select) { width: 100%; min-height: 48px; padding: 12px 14px; border: 1px solid var(--cheers-component-border); border-radius: calc(var(--cheers-component-radius) * .6); background: var(--cheers-component-surface); color: var(--cheers-component-text); font: inherit; }
.site-portal__status:empty, .site-portal__count:empty { display: none; }
.site-portal__status { padding: 10px 14px; border-left: 4px solid var(--cheers-component-accent); border-radius: 0 8px 8px 0; background: var(--cheers-component-surface); color: var(--cheers-component-heading); font-weight: 650; }
.site-portal__dash { display: grid; gap: 20px; }
.site-portal__dashhead { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; }
.site-portal__tools { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); gap: 14px; }
@media (max-width: 640px) { .site-portal__tools { grid-template-columns: minmax(0, 1fr); } }
.site-portal__count { margin: 0; color: var(--cheers-component-muted); }
.site-portal__list { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 280px), 1fr)); gap: 16px; margin: 0; padding: 0; list-style: none; }
.site-portal__item { display: grid; gap: 8px; align-content: start; padding: 20px; border: 1px solid var(--cheers-component-border); border-radius: var(--cheers-component-radius); background: var(--cheers-component-background); }
.site-portal__item > * { margin: 0; }
.site-portal__meta { display: flex; flex-wrap: wrap; gap: 8px; color: var(--cheers-component-muted); font-size: .8125rem; font-weight: 700; }
.site-portal__type { padding: 2px 8px; border-radius: 999px; background: var(--cheers-component-surface); color: var(--cheers-component-accent); }
.site-portal__item h3 { color: var(--cheers-component-heading); font-size: 1.125rem; }
.site-portal__item p { color: var(--cheers-component-muted); line-height: 1.55; }
.site-portal__item .site-button { justify-self: start; margin-top: 6px; }

/* site/components/cookie-preferences/cookie-preferences.css */
/* Consent controls only; Rock Service Pros PR #20 and the approved isolated mockup. */
.site-cookie-preferences{color:inherit;font:400 1rem/1.5 var(--font-body)}
.site-cookie-preferences__notice{font:inherit;font-size:.875rem;line-height:1.5;margin:0;padding:.75rem 0;display:flex;flex-wrap:wrap;gap:.35em .75em;align-items:baseline}
.site-cookie-preferences__trigger{font:inherit;color:inherit;text-decoration:underline;background:none;border:0;padding:0;min-height:44px;cursor:pointer;text-underline-offset:.2em}
.site-cookie-preferences__trigger:focus-visible{outline:2px solid var(--cheers-component-focus);outline-offset:5px}
.site-cookie-preferences__dialog{box-sizing:border-box;width:min(35rem,calc(100% - 2rem));max-height:calc(100% - 2rem);overflow:auto;margin:auto;border:1px solid var(--cheers-component-border);border-radius:var(--cheers-component-radius);padding:1.5rem;color:var(--cheers-component-text);background:var(--cheers-component-background);font:400 1rem/1.5 var(--font-body);box-shadow:0 12px 48px var(--site-consent-shadow,color-mix(in srgb,var(--cheers-component-heading) 20%,transparent))}
.site-cookie-preferences__dialog:not([open]){display:none}
.site-cookie-preferences__dialog::backdrop{background:var(--site-consent-backdrop,color-mix(in srgb,var(--cheers-component-heading) 60%,transparent))}
.site-cookie-preferences__dialog *{box-sizing:border-box}
.site-cookie-preferences__heading{display:flex;gap:1rem;align-items:center;justify-content:space-between}
.site-cookie-preferences__heading h2{margin:0;font:var(--display-weight) 1.5rem/1.25 var(--font-display);color:var(--cheers-component-heading)}
.site-cookie-preferences__dialog p{font:inherit;margin:1rem 0;color:inherit}
.site-cookie-preferences__dialog [hidden]{display:none!important}
.site-cookie-preferences__dialog .site-button{font:inherit;cursor:pointer;border:1px solid var(--cheers-component-heading);border-radius:var(--cheers-component-button-radius);padding:.7rem 1rem;min-height:44px;white-space:normal;height:auto}
.site-cookie-preferences__dialog .site-button--outline{background:var(--cheers-component-background);color:var(--cheers-component-heading)}
.site-cookie-preferences__dialog .site-cookie-preferences__close{font-size:1.5rem;line-height:1;padding:.4rem;min-width:44px;flex-shrink:0;border:0}
.site-cookie-preferences__option{display:flex;gap:.75rem;align-items:flex-start;margin:1.25rem 0;cursor:pointer}
.site-cookie-preferences__option input{width:1.2rem;height:1.2rem;margin:.2rem 0 0;flex-shrink:0;accent-color:var(--cheers-component-heading)}
.site-cookie-preferences__option span span{display:block;margin-top:.2rem;font-size:.9375rem}
.site-cookie-preferences__dialog strong{font-weight:700}
.site-cookie-preferences__dialog a{color:var(--cheers-component-heading);text-decoration:underline;text-underline-offset:.2em}
.site-cookie-preferences__actions{display:flex;flex-wrap:wrap;gap:.75rem}
.site-cookie-preferences__actions .site-button{flex:1}
.site-cookie-preferences__dialog button[type=submit]{background:var(--site-button-bg,var(--cheers-component-heading));color:var(--site-button-text,var(--cheers-component-action-text))}
.site-cookie-preferences__dialog :focus-visible{outline:3px solid var(--cheers-component-focus);outline-offset:3px}
.site-cookie-preferences__dialog [data-privacy-gpc]{background:var(--site-consent-signal,var(--cheers-component-surface));padding:.75rem;border-radius:var(--cheers-component-button-radius)}
.site-cookie-preferences__dialog [data-privacy-status]:empty{display:none}
@media(max-width:480px){.site-cookie-preferences__dialog{padding:1rem}.site-cookie-preferences__actions{flex-direction:column}}
@media(prefers-reduced-motion:reduce){.site-cookie-preferences__dialog *{transition:none!important;animation:none!important}}
