:root {
  --selected-ink: #0a0a09;
  --selected-graphite: #121313;
  --selected-ivory: #f6f0e5;
  --selected-gold: #c9a84c;
  --selected-rule: rgba(201, 168, 76, .32);
}

/* Selected hero: desktop hotel source, mobile home source, and a live-text safe field. */
.selected-hero .hero-v2-media img { object-position: 64% 50%; }
.selected-hero::before { background: linear-gradient(90deg, rgba(8,8,8,.92) 0%, rgba(8,8,8,.66) 43%, rgba(8,8,8,.30) 65%, rgba(8,8,8,0) 100%); }
.selected-hero .hero-v2-content { max-width: min(42vw, 680px); }
.selected-hero .hero-v2-title { line-height: 1.08; }
.selected-hero .hero-v2-title span,
.selected-final-cta-line { display: block; color: var(--selected-gold); }
.selected-hero .hero-v2-title span { margin-top: .2em; }
.selected-hero .hero-v2-support { max-width: 62ch; }

/* Membership stays immediately after the proof band. Copy and plan cards remain together before the portrait image on small screens. */
.selected-membership { background: linear-gradient(180deg, #0a0a09 0%, #111312 100%); }
.selected-membership .membership-v2-container {
  display: grid;
  grid-template-columns: minmax(0, 54%) minmax(280px, 46%);
  gap: clamp(2rem, 5vw, 5.5rem);
  min-height: 0;
  align-items: center;
}
.selected-membership .membership-v2-container > * { max-width: none; }
.selected-membership-content { min-width: 0; }
.selected-membership .membership-v2-media {
  position: relative;
  inset: auto;
  transform: none;
  justify-self: end;
  width: min(100%, 560px);
  aspect-ratio: 4 / 5;
  opacity: 1;
  overflow: hidden;
  border-radius: 16px;
  border: 1px solid var(--selected-rule);
}
.selected-membership .membership-v2-media img { object-position: center; }
.selected-membership-depth { max-width: 58ch; margin: 1rem 0 0; color: rgba(246, 240, 229, .78); font-size: .9rem; line-height: 1.65; }

/* Five-image editorial ribbon: CSS grid on desktop, horizontal scroll-snap on mobile. */
.selected-visit-ribbon { background: linear-gradient(180deg, #111312 0%, #0a0a09 100%); border-top: 1px solid rgba(201, 168, 76, .12); }
.selected-visit-ribbon .visit-ribbon-heading > p:last-child { max-width: 720px; color: rgba(246, 240, 229, .72); line-height: 1.7; }
.selected-visit-ribbon .visit-ribbon {
  grid-template-columns: 1fr 1.2fr 1fr 1.33fr .86fr;
  grid-auto-rows: min(18vw, 216px);
  max-width: 1180px;
  padding: 0 24px;
  gap: 14px;
}
.selected-visit-ribbon .visit-ribbon__item,
.selected-visit-ribbon .visit-ribbon__item:nth-child(odd),
.selected-visit-ribbon .visit-ribbon__item:nth-child(even) { aspect-ratio: auto; min-height: 0; border-radius: 14px; }
.selected-visit-ribbon .visit-ribbon__item::after { background: linear-gradient(0deg, rgba(7,8,9,.86) 0%, rgba(7,8,9,.58) 38%, rgba(7,8,9,0) 75%); }
.selected-visit-ribbon .visit-ribbon__item img { object-fit: cover; }
.selected-ribbon-home img,
.selected-ribbon-office img { object-position: 50% 50%; }
.selected-ribbon-hotel img { object-position: 60% 50%; }
.selected-ribbon-active img { object-position: 56% 50%; }
.selected-ribbon-evening img { object-position: center; }
.selected-ribbon-caption { position: absolute; inset: auto 0 0; z-index: 1; display: grid; gap: .2rem; padding: 1rem; color: var(--selected-ivory); pointer-events: none; }
.selected-ribbon-caption b { color: var(--selected-gold); font-size: .63rem; letter-spacing: .16em; }
.selected-ribbon-caption span { position: static; color: inherit; font-size: .78rem; font-weight: 600; line-height: 1.3; }

/* Private Visits image stays outside the treatment cards and bridge remains content-safe. */
.private-visits-v3-feature-copy .btn { margin-top: 1.35rem; }
.private-visits-v3-media img { object-position: 58% 56%; }
.full-menu-v3-bridge { min-height: clamp(460px, 38vw, 540px); }
.full-menu-v3-media img { object-position: 58% 48%; }
.full-menu-v3-bridge::before { background: linear-gradient(90deg, rgba(8,8,8,.94) 0%, rgba(8,8,8,.82) 48%, rgba(8,8,8,.20) 72%, rgba(8,8,8,.04) 100%); }
.full-menu-v3-content { max-width: min(48%, 540px); }

/* One shallow preparation strip, then text-first process steps. */
.standard-v2 { background: #101211; }
.standard-v2-grid { display: grid; grid-template-columns: 1fr; gap: clamp(2rem, 5vw, 4rem); }
.selected-standard-media { width: 100%; max-width: none; height: clamp(300px, 28vw, 360px); aspect-ratio: auto; border-radius: 16px; }
.selected-standard-media img { object-position: 50% 48%; }
.standard-v2-content { max-width: 1020px; }

/* Final conversion preserves the existing account-gate path and only changes the visual/copy wrapper. */
.coverage-v2-media img { object-position: 66% 50%; }
.coverage-v2::before { background: linear-gradient(90deg, rgba(8,8,8,.94) 0%, rgba(8,8,8,.76) 52%, rgba(8,8,8,.10) 100%); }
.selected-final-cta-line { margin: 0 0 1.25rem; font-family: 'Playfair Display', Georgia, serif; font-size: clamp(1.3rem, 2.8vw, 2rem); }

@media (max-width: 767px) {
  .selected-hero .hero-v2-media img { object-position: 55% 65%; }
  .selected-hero::before { background: linear-gradient(0deg, #080808 0%, rgba(8,8,8,.90) 31%, rgba(8,8,8,.34) 67%, rgba(8,8,8,.12) 100%); }
  .selected-hero .hero-v2-content { max-width: 100%; }
  .selected-hero .hero-v2-title { font-size: clamp(2.4rem, 10vw, 3.2rem); }
  .selected-hero .hero-v2-support { max-width: 22em; }
  .selected-hero .hero-v2-actions { width: 100%; }
  .selected-hero .hero-v2-actions .btn { flex: 1 1 100%; min-height: 48px; }

  .selected-membership .membership-v2-container { display: flex; flex-direction: column; align-items: stretch; gap: 2rem; }
  .selected-membership-content { order: 0; }
  .selected-membership .membership-v2-media { order: 1; width: 100%; max-height: none; margin: 0; }

  .selected-visit-ribbon .visit-ribbon { display: flex; overflow-x: auto; grid-auto-rows: auto; gap: 12px; padding: 0 20px 12px; scroll-snap-type: x mandatory; }
  .selected-visit-ribbon .visit-ribbon__item,
  .selected-visit-ribbon .visit-ribbon__item:nth-child(odd),
  .selected-visit-ribbon .visit-ribbon__item:nth-child(even) { flex: 0 0 82vw; aspect-ratio: 4 / 5; scroll-snap-align: start; }
  .selected-ribbon-caption { padding: 1.25rem; }
  .selected-ribbon-caption span { font-size: .95rem; }
  .selected-ribbon-home img { object-position: 50% 50%; }
  .selected-ribbon-hotel img { object-position: 68% 50%; }
  .selected-ribbon-office img { object-position: 50% 50%; }
  .selected-ribbon-active img { object-position: 67% 50%; }

  .private-visits-v3-media { order: 1; aspect-ratio: 4 / 5; max-height: none; }
  .private-visits-v3-media img { object-position: 58% 56%; }
  .full-menu-v3-bridge { min-height: 600px; }
  .full-menu-v3-media img { object-position: 55% 48%; }
  .full-menu-v3-bridge::before { background: linear-gradient(0deg, #080808 0%, rgba(8,8,8,.93) 39%, rgba(8,8,8,.34) 68%, rgba(8,8,8,.03) 100%); }
  .full-menu-v3-content { max-width: none; padding: 2rem 1.5rem 2.25rem; }

  .selected-standard-media { height: auto; aspect-ratio: 3 / 2; }
  .coverage-v2-media img { object-position: 64% 50%; }
}

@media (prefers-reduced-motion: reduce) {
  .selected-hero *, .selected-membership *, .selected-visit-ribbon *, .full-menu-v3-bridge *, .standard-v2 *, .coverage-v2 * { transition: none !important; animation: none !important; }
}

/* Treatments: selected kit hero stays separate from the filter controls below it. */
.selected-menu-hero { position: relative; isolation: isolate; overflow: hidden; min-height: clamp(500px, 48vw, 620px); display: flex; align-items: center; text-align: left; }
.selected-menu-hero .s-hero-v2-media { position: absolute; inset: 0; z-index: -2; }
.selected-menu-hero .s-hero-v2-media img { width: 100%; height: 100%; display: block; object-fit: cover; object-position: 66% 50%; }
.selected-menu-hero::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, rgba(8,8,8,.94) 0%, rgba(8,8,8,.70) 46%, rgba(8,8,8,.08) 100%); }
.selected-menu-hero .s-hero-v2-content { position: relative; z-index: 1; width: min(100%, 680px); margin: 0 0 0 max(1.5rem, calc((100vw - 1200px) / 2)); padding: 0 1.5rem 0 0; }
.selected-menu-hero .s-hero-title { max-width: 760px; margin: 0 0 .8rem; }
.selected-menu-hero .s-hero-sub { max-width: 64ch; margin: 0; color: rgba(246,240,229,.80); }
.selected-menu-goldline { margin: 0 0 .9rem; color: var(--selected-gold); font-family: 'Playfair Display', Georgia, serif; font-size: clamp(1.25rem, 2.8vw, 1.8rem); line-height: 1.2; }
.selected-menu-hero .cat-tabs { position: absolute; left: 50%; bottom: 1.5rem; z-index: 2; width: min(calc(100% - 3rem), 900px); margin: 0; transform: translateX(-50%); }

.selected-menu-intro { padding: clamp(2rem, 5vw, 4.25rem) 1.5rem 1.25rem; background: linear-gradient(180deg, #101211 0%, #0a0a09 100%); }
.selected-menu-intro-inner { max-width: 900px; margin: 0 auto; color: rgba(246,240,229,.78); font-size: clamp(1rem, 1.8vw, 1.15rem); line-height: 1.7; text-align: center; }
.selected-card-footer { margin: .1rem 0 1rem; color: rgba(246,240,229,.55); font-size: .72rem; line-height: 1.5; }

.selected-menu-private-support { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(260px, .85fr); align-items: center; gap: clamp(1.5rem, 4vw, 4rem); margin: 2rem 0 1rem; padding: clamp(1.5rem, 4vw, 3.5rem) 0; border-top: 1px solid var(--selected-rule); }
.selected-menu-private-support > div { max-width: 55ch; }
.selected-menu-private-support > div > p:last-child { margin: 0; color: rgba(246,240,229,.75); line-height: 1.75; }
.selected-menu-kicker { margin: 0 0 .8rem; color: var(--selected-gold); font-size: .68rem; font-weight: 700; letter-spacing: .18em; }
.selected-menu-private-support picture { justify-self: end; width: min(100%, 380px); aspect-ratio: 4 / 5; overflow: hidden; border-radius: 14px; border: 1px solid var(--selected-rule); }
.selected-menu-private-support img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: 58% 56%; }

.selected-addon-band { position: relative; min-height: clamp(340px, 30vw, 440px); margin: 3rem 0 2.25rem; overflow: hidden; border: 1px solid var(--selected-rule); border-radius: 16px; isolation: isolate; display: flex; align-items: flex-end; }
.selected-addon-band picture { position: absolute; inset: 0; z-index: -2; }
.selected-addon-band picture img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: 58% 48%; }
.selected-addon-band::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, rgba(8,8,8,.94) 0%, rgba(8,8,8,.80) 46%, rgba(8,8,8,.14) 78%, rgba(8,8,8,.02) 100%); }
.selected-addon-band > div { max-width: min(48%, 560px); padding: clamp(1.5rem, 4vw, 3.5rem); }
.selected-addon-band h2 { margin: 0 0 .85rem; color: var(--selected-ivory); font-family: 'Playfair Display', Georgia, serif; font-size: clamp(1.8rem, 3.8vw, 3rem); line-height: 1.1; }
.selected-addon-band div > p:last-child { margin: 0; color: rgba(246,240,229,.78); line-height: 1.65; }
.selected-detail-next-step { margin-top: 1.25rem; padding: .85rem 1rem; border-left: 2px solid var(--selected-gold); background: rgba(201,168,76,.08); color: rgba(246,240,229,.84); font-size: .84rem; line-height: 1.55; }

@media (max-width: 767px) {
  .selected-menu-hero { min-height: min(640px, 92svh); padding: 7rem 1.25rem 5.75rem; align-items: flex-end; }
  .selected-menu-hero .s-hero-v2-media img { object-position: 72% 50%; }
  .selected-menu-hero::before { background: linear-gradient(0deg, #080808 0%, rgba(8,8,8,.92) 37%, rgba(8,8,8,.30) 73%, rgba(8,8,8,.12) 100%); }
  .selected-menu-hero .s-hero-v2-content { width: 100%; margin: 0; padding: 0; }
  .selected-menu-hero .s-hero-sub { font-size: .92rem; }
  .selected-menu-hero .cat-tabs { bottom: 1rem; width: calc(100% - 1.5rem); gap: .35rem; }
  .selected-menu-hero .cat-btn { padding: .48rem .78rem; }
  .selected-menu-intro { padding: 2.25rem 1.25rem 1rem; }
  .selected-menu-private-support { grid-template-columns: 1fr; margin-top: 1.5rem; }
  .selected-menu-private-support picture { justify-self: stretch; width: 100%; max-width: none; }
  .selected-addon-band { min-height: 560px; align-items: flex-end; margin-top: 2.5rem; }
  .selected-addon-band picture img { object-position: 55% 48%; }
  .selected-addon-band::before { background: linear-gradient(0deg, #080808 0%, rgba(8,8,8,.94) 43%, rgba(8,8,8,.28) 75%, rgba(8,8,8,.03) 100%); }
  .selected-addon-band > div { max-width: none; padding: 1.5rem; }
}

/* Contact: a separate supporting image and readable live conversion content. */
.selected-contact-hero .contact-v2-media img { object-position: 66% 50%; }
.selected-contact-hero::after { background: linear-gradient(90deg, rgba(8,8,8,.93) 0%, rgba(8,8,8,.72) 44%, rgba(8,8,8,.12) 78%, rgba(8,8,8,.02) 100%); }
.selected-contact-hero h1 span { display: block; margin-top: .18em; }
.contact-card { background: rgba(18,19,19,.85); border-radius: 16px; }
.contact-card a.card-link, .contact-card a.card-link-outline { min-height: 44px; box-sizing: border-box; border-radius: 10px; }

.selected-service-area { position: relative; isolation: isolate; overflow: hidden; min-height: 520px; padding: 0 0 2rem; text-align: left; background: #101211; }
.selected-service-area-media { position: absolute; inset: 0; z-index: -2; }
.selected-service-area-media img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: 66% 50%; }
.selected-service-area::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, rgba(8,8,8,.95) 0%, rgba(8,8,8,.83) 45%, rgba(8,8,8,.22) 78%, rgba(8,8,8,.06) 100%); pointer-events: none; }
.selected-service-area-copy { position: relative; max-width: min(56%, 570px); padding: clamp(2rem, 5vw, 4rem) clamp(1.5rem, 4vw, 3.5rem) 1.35rem; }
.selected-service-area h2 { font-size: clamp(1.8rem, 3.5vw, 2.6rem); line-height: 1.14; }
.selected-service-area-copy p { margin: 0; color: rgba(246,240,229,.80); line-height: 1.7; }
.selected-service-area .area-tags { position: relative; justify-content: flex-start; max-width: 690px; padding: .25rem clamp(1.5rem, 4vw, 3.5rem) 0; }
.selected-service-area .area-tag { background: rgba(8,8,8,.74); color: rgba(246,240,229,.82); border-color: rgba(201,168,76,.32); }
.selected-service-area-note { position: relative; max-width: 680px; margin: 1rem clamp(1.5rem, 4vw, 3.5rem) 0 !important; color: rgba(246,240,229,.70) !important; font-size: .78rem !important; text-align: left !important; }

.selected-first-visit { min-height: 0; padding: clamp(2rem, 4vw, 3.25rem); background: #111312; text-align: center; }
.selected-first-visit-steps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; margin-top: 1.25rem; text-align: left; }
.selected-first-visit-steps > div { min-width: 0; padding: 1.25rem; background: rgba(8,8,8,.58); border: 1px solid rgba(201,168,76,.18); border-radius: 12px; }
.selected-first-visit-steps > div > div { color: var(--selected-gold); font-size: .70rem; font-weight: 700; letter-spacing: .12em; line-height: 1.45; }
.selected-first-visit-steps p { margin: .65rem 0 0; color: rgba(246,240,229,.72); font-size: .9rem; line-height: 1.6; }

@media (max-width: 767px) {
  .selected-contact-hero .contact-v2-media { height: 330px; }
  .selected-contact-hero .contact-v2-media img { object-position: 68% 50%; }
  .selected-contact-hero::after { top: 230px; background: linear-gradient(0deg, #080808 0%, rgba(8,8,8,.92) 32%, rgba(8,8,8,.20) 100%); }
  .selected-service-area { min-height: 650px; padding-bottom: 1.5rem; }
  .selected-service-area-media img { object-position: 62% 50%; }
  .selected-service-area::before { background: linear-gradient(0deg, #080808 0%, rgba(8,8,8,.94) 37%, rgba(8,8,8,.30) 72%, rgba(8,8,8,.05) 100%); }
  .selected-service-area-copy { max-width: none; padding: 2rem 1.5rem 1.25rem; }
  .selected-service-area .area-tags { padding: .25rem 1.5rem 0; }
  .selected-service-area-note { margin: 1rem 1.5rem 0 !important; }
  .selected-first-visit-steps { grid-template-columns: 1fr; }
}

/* Keep Contact cards editorial and prevent decorative emoji from competing with the small utility label. */
.contact-grid .contact-card .icon { display: none; }
.contact-grid .contact-card .card-label { margin-bottom: 12px; }

/* Desktop Contact hero uses the dark right-side field as a deliberate copy zone, with the supplied office scene unobscured at left. */
@media (min-width: 768px) {
  .selected-contact-hero .contact-v2-content { margin-left: auto; margin-right: 0; width: min(50%, 610px); }
  .selected-contact-hero::after { background: linear-gradient(270deg, rgba(8,8,8,.96) 0%, rgba(8,8,8,.76) 48%, rgba(8,8,8,.18) 76%, rgba(8,8,8,.04) 100%); }
}

/* At mobile widths filters return to normal flow, guaranteeing clear copy and a complete two-by-two control grid. */
@media (max-width: 767px) {
  .selected-menu-hero { display: block; min-height: 0; padding: 7rem 1.25rem 1.25rem; }
  .selected-menu-hero .cat-tabs { position: relative; left: auto; bottom: auto; transform: none; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); width: 100%; gap: .55rem; margin: 1.25rem 0 0; }
  .selected-menu-hero .cat-btn { width: 100%; padding: .7rem .5rem; }
}

/* At the narrowest supported width, content takes priority over a fixed hero height. */
@media (max-width: 360px) {
  .selected-hero { height: auto !important; min-height: 0 !important; }
  .selected-hero .hero-v2-container { align-items: stretch; }
  .selected-hero .hero-v2-content { padding-top: 7.25rem; }
  .selected-hero .hero-v2-eyebrow { font-size: .61rem; letter-spacing: .13em; }
  .selected-hero .hero-v2-title { font-size: clamp(2.2rem, 10.5vw, 2.7rem); }
  .selected-hero .hero-v2-support { font-size: .92rem; }
}

/* The selected desktop/tablet hero expands with live copy instead of clipping the eyebrow or proof band at either width extreme. */
@media (min-width: 768px) {
  .hero.hero-v2.selected-hero { height: auto; min-height: 0; overflow: hidden; }
  .selected-hero .hero-v2-container { min-height: clamp(900px, 84vh, 980px); align-items: center; }
  .selected-hero .hero-v2-content { padding-top: clamp(5rem, 7vw, 7rem); padding-bottom: clamp(3.5rem, 5vw, 5rem); }
}
