:root {
  --v3-ink: #070809;
  --v3-graphite: #101214;
  --v3-ivory: #f6f0e5;
  --v3-gold: #c9a84c;
  --v3-rule: rgba(201, 168, 76, .34);
}

.vitalis-media,
.vitalis-media img,
.hero-v2-media,
.hero-v2-media img,
.coverage-v2-media,
.coverage-v2-media img,
.standard-v2-media,
.standard-v2-media img,
.membership-v2-media,
.membership-v2-media img {
  display: block;
  width: 100%;
  height: 100%;
}

.vitalis-media img,
.hero-v2-media img,
.coverage-v2-media img,
.standard-v2-media img,
.membership-v2-media img {
  object-fit: cover;
  transform: translateZ(0);
}

/* V3 hero: image is visible service proof, while the live copy retains a quiet, dark reading field. */
.hero.hero-v2 {
  height: clamp(680px, 78vh, 900px);
  min-height: 680px;
  isolation: isolate;
  background: var(--v3-ink);
}
.hero-v2-media { position: absolute; inset: 0; z-index: -2; }
.hero-v2-media img { object-position: 70% 50%; }
.hero.hero-v2::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background: linear-gradient(90deg, rgba(7,8,9,.94) 0%, rgba(7,8,9,.76) 42%, rgba(7,8,9,.12) 72%, rgba(7,8,9,.10) 100%);
}
.hero-v2-container { min-height: 100%; display: flex; align-items: center; }
.hero-v2-content { max-width: 605px; padding: clamp(2rem, 5vw, 5.25rem) 0; }
.hero-v2-facts { border-top-color: var(--v3-rule); }

/* V3 membership is intentionally direct, immediately after hero and supported by one portrait image. */
.membership-v2 { background: var(--v3-ink); overflow: hidden; }
.membership-v2::before { opacity: 0; }
.membership-v2-container {
  position: relative;
  min-height: 700px;
  padding-top: clamp(3rem, 7vw, 7rem);
  padding-bottom: clamp(3rem, 7vw, 7rem);
}
.membership-v2-media {
  position: absolute;
  z-index: 0;
  right: max(4vw, calc((100vw - 1180px) / 2));
  top: 50%;
  width: min(35vw, 500px);
  height: auto;
  aspect-ratio: 4 / 5;
  transform: translateY(-50%);
  opacity: .9;
}
.membership-v2-media img { object-position: 56% 50%; }
.membership-v2-container > * { position: relative; z-index: 1; max-width: min(61%, 690px); }
#membership-teaser { padding-top: 0 !important; }
.membership-v2-plans > div { padding-bottom: 0 !important; }

/* A fixed visual rhythm for the real-life ribbon; no carousel script or automatic movement. */
.visit-ribbon-section { padding: clamp(4.5rem, 9vw, 8rem) 0; background: #0b0d0f; }
.visit-ribbon-heading { margin-bottom: 2rem; }
.visit-ribbon { max-width: 1180px; margin: 0 auto; padding: 0; list-style: none; display: grid; grid-template-columns: 1.25fr .85fr 1.25fr .85fr 1.25fr; gap: 12px; align-items: stretch; }
.visit-ribbon__item { position: relative; overflow: hidden; border-radius: 18px; min-width: 0; background: #131518; }
.visit-ribbon__item:nth-child(odd) { aspect-ratio: 16 / 10; }
.visit-ribbon__item:nth-child(even) { aspect-ratio: 4 / 5; }
.visit-ribbon__item picture, .visit-ribbon__item img { display: block; width: 100%; height: 100%; }
.visit-ribbon__item img { object-fit: cover; }
.visit-ribbon__item::after { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg, rgba(7,8,9,.78), transparent 48%); pointer-events: none; }
.visit-ribbon__item span { position: absolute; left: 18px; right: 14px; bottom: 16px; z-index: 1; color: var(--v3-ivory); font-size: .92rem; font-weight: 600; line-height: 1.35; }

/* Signature visits retain the three existing cards; a fourth image-led support row follows them. */
.private-visits-v2 { padding-top: clamp(5rem, 10vw, 9rem); background: var(--v3-ink); }
.private-visits-v3-feature { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(280px, .65fr); gap: clamp(2rem, 6vw, 5rem); align-items: center; max-width: 1040px; margin: 0 auto 2.25rem; padding: clamp(2rem, 4vw, 4rem) 0; border-top: 1px solid var(--v3-rule); }
.private-visits-v3-feature-copy { max-width: 470px; }
.private-visits-v3-feature-copy h3 { margin: .8rem 0 1rem; color: var(--v3-ivory); font-family: 'Playfair Display', Georgia, serif; font-size: clamp(1.75rem, 3.8vw, 3rem); line-height: 1.12; }
.private-visits-v3-feature-copy p:last-child { color: rgba(246,240,229,.7); line-height: 1.75; }
.private-visits-v3-media { justify-self: end; width: min(100%, 360px); aspect-ratio: 4 / 5; overflow: hidden; border-radius: 16px; }
.private-visits-v3-media img { object-position: 52% 50%; }

/* Required image-backed menu bridge replaces the empty visual gap and keeps copy as live HTML. */
.full-menu-v3-bridge { position: relative; max-width: 1180px; min-height: 400px; margin: 0 auto clamp(4rem, 8vw, 7rem); overflow: hidden; border-radius: 20px; isolation: isolate; background: #0c0d0f; display: flex; align-items: center; }
.full-menu-v3-media { position: absolute; inset: 0; z-index: -2; }
.full-menu-v3-media img { object-position: 70% 50%; }
.full-menu-v3-bridge::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, rgba(7,8,9,.96) 0%, rgba(7,8,9,.87) 40%, rgba(7,8,9,.16) 72%, rgba(7,8,9,.04) 100%); }
.full-menu-v3-content { max-width: 460px; padding: clamp(28px, 5vw, 72px); }
.full-menu-v3-content h3 { margin: .7rem 0 1rem; color: var(--v3-ivory); font-family: 'Playfair Display', Georgia, serif; font-size: clamp(2rem, 4.5vw, 3.5rem); line-height: 1.08; }
.full-menu-v3-content > p:not(.full-menu-v3-microcopy) { color: rgba(246,240,229,.76); line-height: 1.65; margin-bottom: 1.65rem; }
.full-menu-v3-microcopy { margin: 1.25rem 0 0; max-width: 390px; color: rgba(246,240,229,.56); font-size: .78rem; line-height: 1.55; }

/* Preparation and final-CTA media have specified proportional roles, no image filters or artificial gold tint. */
.standard-v2 { padding: clamp(5rem, 10vw, 9rem) 0; background: #0b0d0f; }
.standard-v2-grid { grid-template-columns: minmax(260px, 480px) minmax(0, 1fr); gap: clamp(2rem, 6vw, 6rem); }
.standard-v2-media { aspect-ratio: 4 / 5; max-width: 480px; border-radius: 16px; overflow: hidden; }
.standard-v2-media img { object-position: 50% 50%; }
.coverage-v2 { min-height: 420px; isolation: isolate; }
.coverage-v2-media { z-index: -2; }
.coverage-v2-media img { object-position: 74% 50%; }
.coverage-v2::before { background: linear-gradient(90deg, rgba(7,8,9,.94), rgba(7,8,9,.65) 48%, rgba(7,8,9,.12)); }
.coverage-v2 .card { max-width: 560px !important; margin-left: 0 !important; text-align: left !important; background: transparent !important; border: 0 !important; padding-left: 0 !important; }
.coverage-v2 .card > div { justify-content: flex-start !important; }

/* Treatments menu hero is unmistakably IV-specific while preserving its original dynamic catalog. */
.services-v2-hero, .menu-v2-hero { position: relative; overflow: hidden; min-height: clamp(460px, 48vw, 560px); isolation: isolate; }
.services-v2-hero picture, .menu-v2-hero picture { position: absolute; inset: 0; z-index: -2; }
.services-v2-hero picture img, .menu-v2-hero picture img { width: 100%; height: 100%; display: block; object-fit: cover; object-position: 70% 50%; }
.services-v2-hero::before, .menu-v2-hero::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, rgba(7,8,9,.94), rgba(7,8,9,.73) 45%, rgba(7,8,9,.08)); }

@media (max-width: 1279px) and (min-width: 768px) {
  .hero.hero-v2 { height: min(760px, 84vh); min-height: 620px; }
  .hero-v2-media img { object-position: 67% 50%; }
  .hero.hero-v2::before { background: linear-gradient(90deg, rgba(7,8,9,.94) 0%, rgba(7,8,9,.76) 48%, rgba(7,8,9,.16) 76%, rgba(7,8,9,.1) 100%); }
  .membership-v2-media { right: 2rem; width: min(39vw, 430px); }
  .membership-v2-container > * { max-width: 60%; }
  .visit-ribbon { padding: 0 1.25rem; }
}

@media (max-width: 767px) {
  .hero.hero-v2 { height: min(760px, 92svh); min-height: 610px; }
  .hero-v2-media img { object-position: 54% 28%; }
  .hero.hero-v2::before { background: linear-gradient(180deg, rgba(7,8,9,.18) 0%, rgba(7,8,9,.22) 36%, rgba(7,8,9,.92) 72%, #070809 100%); }
  .hero-v2-container { align-items: flex-end; }
  .hero-v2-content { max-width: 100%; padding-top: 12rem; padding-bottom: 2.2rem; }
  .hero-v2-facts { grid-template-columns: 1fr; gap: .75rem; margin-top: 1.7rem; }
  .membership-v2-container { padding-top: 0; display: flex; flex-direction: column; }
  .membership-v2-media { position: relative; inset: auto; order: -1; transform: none; width: 100%; max-height: 520px; aspect-ratio: 4 / 5; margin: 0 0 2rem; opacity: 1; }
  .membership-v2-container > * { max-width: 100%; }
  #membership-teaser { padding: 0 0 1.75rem !important; }
  .visit-ribbon-section { padding-bottom: 3.5rem; }
  .visit-ribbon { display: flex; overflow-x: auto; gap: 12px; padding: 0 20px 12px; scroll-snap-type: x mandatory; scrollbar-width: none; }
  .visit-ribbon::-webkit-scrollbar { display: none; }
  .visit-ribbon__item, .visit-ribbon__item:nth-child(odd), .visit-ribbon__item:nth-child(even) { flex: 0 0 78vw; aspect-ratio: 4 / 5; scroll-snap-align: start; }
  .private-visits-v3-feature { grid-template-columns: 1fr; gap: 1.5rem; }
  .private-visits-v3-media { order: -1; justify-self: stretch; width: 100%; max-height: 480px; }
  .full-menu-v3-bridge { min-height: 560px; align-items: flex-end; border-radius: 16px; }
  .full-menu-v3-media img { object-position: 72% 44%; }
  .full-menu-v3-bridge::before { background: linear-gradient(180deg, rgba(7,8,9,.02) 0%, rgba(7,8,9,.20) 45%, rgba(7,8,9,.96) 68%, #070809 100%); }
  .full-menu-v3-content { padding: 2rem 1.5rem 2.25rem; }
  .standard-v2-grid { display: flex; flex-direction: column; }
  .standard-v2-content { order: -1; }
  .standard-v2-media { max-width: 100%; width: 100%; }
  .coverage-v2 { min-height: 420px; }
  .coverage-v2-media img { object-position: 68% 50%; }
  .coverage-v2 .card { margin: 0 !important; padding: 2rem 0 !important; }
  .services-v2-hero, .menu-v2-hero { min-height: min(560px, 92svh); }
  .services-v2-hero picture img, .menu-v2-hero picture img { object-position: 68% 36%; }
  .services-v2-hero::before, .menu-v2-hero::before { background: linear-gradient(180deg, rgba(7,8,9,.12), rgba(7,8,9,.25) 38%, rgba(7,8,9,.92) 72%, #070809); }
}

@media (prefers-reduced-motion: reduce) {
  .vitalis-media img, .hero-v2-media img, .coverage-v2-media img, .standard-v2-media img, .membership-v2-media img { transform: none; transition: none; }
}
