/* Cover existing generated pages as well as newly rendered booking blocks. */
section.inline-booking { background: #fff; }

/* Sitewide correction for the editorial-list rule, not every green accent. */
.article-layout .prose-page > ul,
.article-layout .prose-page .article-icon-checklist {
  border-left: 0;
  border-inline-start: 0;
}

/* Actual shared How It Works image variant, as approved on the guides.
   Keep the page's original type styles and its existing per-topic images. */
body[data-service-visual-treatment] .service-photo-topics .cheers-how-it-works__steps {
  display: grid;
  grid-template-columns: repeat(2,minmax(0,1fr));
  grid-auto-flow: row;
  grid-auto-columns: auto;
  gap: 24px;
  width: 100%;
  margin: 32px 0 0;
  padding: 0;
  overflow: visible;
  scroll-snap-type: none;
}
body[data-service-visual-treatment] .service-photo-topics .cheers-how-it-works__steps::before,
body[data-service-visual-treatment] .service-photo-topics .cheers-how-it-works__step::after { display: none; }
body[data-service-visual-treatment] .service-photo-topics .cheers-how-it-works__step {
  position: relative;
  isolation: isolate;
  min-height: 300px;
  overflow: hidden;
  justify-items: stretch;
  align-content: end;
  gap: 0;
  text-align: left;
  background: var(--navy);
}
body[data-service-visual-treatment] .service-photo-topics .cheers-how-it-works__visual {
  position: absolute;
  inset: 0;
  z-index: -2;
  width: 100%;
  height: 100%;
  border: 0;
  border-radius: 0;
}
body[data-service-visual-treatment] .service-photo-topics .cheers-how-it-works__step::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background: linear-gradient(180deg,rgba(10,26,42,.12),rgba(10,26,42,.8) 55%,rgba(10,26,42,.98));
  pointer-events: none;
}
body[data-service-visual-treatment] .service-photo-topics .cheers-how-it-works__step-copy {
  width: 100%;
  max-width: none;
  padding: 140px 24px 28px;
}
body[data-service-visual-treatment] .service-photo-topics .cheers-how-it-works__step-copy :is(h3,p,a) { color: #fff; }
body[data-service-visual-treatment] .service-photo-topics a:focus-visible { outline-offset: 4px; }

/* Unboxed native planning/FAQ facts: no changes to open state, focus behavior,
   labels or content. Supporting-copy Read more remains the shared component. */
body[data-service-visual-treatment] .service-editorial-guide .csg-facts { gap: 28px 32px; }
body[data-service-visual-treatment] .service-editorial-guide .csg-fact { background: transparent; border-radius: 0 !important; }
body[data-service-visual-treatment] .service-editorial-guide .csg-fact summary {
  grid-template-columns: 30px minmax(0,1fr) 24px;
  gap: 14px;
  padding: 16px 0;
  min-height: 48px;
}
body[data-service-visual-treatment] .service-fact-icon { color: var(--green-700); }
body[data-service-visual-treatment] .service-fact-icon svg { display: block; width: 30px; height: 30px; }
body[data-service-visual-treatment] .service-editorial-guide .csg-detail { padding: 0 0 24px 44px; }
body[data-service-visual-treatment] .service-editorial-guide .csg-header { margin-bottom: 28px; }
body[data-service-visual-treatment] .service-editorial-guide .service-photo-header {
  position: relative;
  isolation: isolate;
  display: grid;
  grid-template-columns: minmax(0,1fr);
  align-items: end;
  min-height: 360px;
  max-width: none;
  background: var(--navy);
}
body[data-service-visual-treatment] .service-editorial-guide .service-photo-header > div { padding: 160px 28px 28px; }
body[data-service-visual-treatment] .service-editorial-guide .service-photo-header :is(h2,p,a) { color: #fff; }
body[data-service-visual-treatment] .service-photo-header .csg-source-photo {
  position: absolute;
  inset: 0;
  z-index: -2;
  margin: 0;
}
body[data-service-visual-treatment] .service-photo-header .csg-source-photo img {
  display: block;
  width: 100%;
  height: 100%;
  max-height: none;
  object-fit: cover;
  border-radius: 0;
}
body[data-service-visual-treatment] .service-photo-header::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background: linear-gradient(180deg,rgba(10,26,42,.12),rgba(10,26,42,.85) 55%,rgba(10,26,42,.98));
  pointer-events: none;
}
@media(max-width:760px) {
  body[data-service-visual-treatment] .service-photo-topics .cheers-how-it-works__steps { grid-template-columns: minmax(0,1fr); }
  body[data-service-visual-treatment] .service-photo-topics .cheers-how-it-works__step { min-height: 280px; }
  body[data-service-visual-treatment] .service-editorial-guide .csg-facts { grid-template-columns: minmax(0,1fr); }
  body[data-service-visual-treatment] .service-editorial-guide .csg-detail { padding-left: 0; }
  body[data-service-visual-treatment] .service-editorial-guide .service-photo-header > div { padding: 140px 20px 24px; }
}
/* The team portrait needs its own space on small screens. Retain the shared
   photo-story markup, original type and call attribution; no text over faces. */
body[data-service-visual-treatment] .local-team-call.cheers-location-photo-story .eyebrow { color: #fff; }
@media(max-width:760px) {
  body[data-service-visual-treatment] .local-team-call.cheers-location-photo-story {
    display: grid;
    grid-template-columns: minmax(0,1fr);
    width: calc(100% - 40px);
    max-width: 1200px;
    min-height: 0;
    margin: 24px auto;
    border-radius: 0;
    overflow: visible;
    background: transparent;
    color: var(--ink);
  }
  body[data-service-visual-treatment] .local-team-call.cheers-location-photo-story::after { display: none; }
  body[data-service-visual-treatment] .local-team-call .cheers-template-story__media {
    position: relative;
    inset: auto;
    z-index: auto;
    width: 100%;
  }
  body[data-service-visual-treatment] .local-team-call .cheers-template-story__media img {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 4 / 3;
    object-fit: contain;
    border-radius: 0;
  }
  body[data-service-visual-treatment] .local-team-call .cheers-location-photo-story__copy {
    width: 100%;
    padding: 24px 0 0;
    margin: 0;
  }
  body[data-service-visual-treatment] .local-team-call .cheers-location-photo-story__copy :is(h2,p) { color: var(--ink); }
  body[data-service-visual-treatment] .local-team-call.cheers-location-photo-story .eyebrow { color: var(--green-700); }
  body[data-service-visual-treatment] .local-team-call .local-team-call__phone {
    width: 100%;
    min-height: 48px;
    color: var(--green-ink);
  }
}
@media print {
  body[data-service-visual-treatment] .service-photo-topics .cheers-how-it-works__visual,
  body[data-service-visual-treatment] .service-photo-topics .cheers-how-it-works__step::before,
  body[data-service-visual-treatment] .service-photo-header .csg-source-photo,
  body[data-service-visual-treatment] .service-photo-header::before { display: none; }
  body[data-service-visual-treatment] .service-photo-topics .cheers-how-it-works__step,
  body[data-service-visual-treatment] .service-editorial-guide .service-photo-header { min-height: 0; background: transparent; }
  body[data-service-visual-treatment] .service-photo-topics .cheers-how-it-works__step-copy,
  body[data-service-visual-treatment] .service-editorial-guide .service-photo-header > div { padding: 16px 0; }
  body[data-service-visual-treatment] .service-photo-topics .cheers-how-it-works__step-copy :is(h3,p,a),
  body[data-service-visual-treatment] .service-editorial-guide .service-photo-header :is(h2,p,a) { color: var(--ink); }
}
