@property --house-glimmer-angle {
  syntax: "<angle>";
  inherits: false;
  initial-value: 0deg;
}

:root {
  --house-neon-core: #fff7fc;
  --house-neon-pink: #ff2fbd;
}

body.landing-page {
  color: #f2f0ec;
  background: #0b0b0b;
}

.section-page :is(.rates, .booking, .digital, .vault, .private-line, .faq) {
  display: block;
  min-height: 100svh;
  padding: clamp(34px, 4.5vw, 64px) clamp(24px, 8vw, 132px) clamp(64px, 7vw, 104px);
  color: #f2f0ec;
  background: #0b0b0b;
}

.section-page :is(.rates-intro, .booking-intro, .digital-intro, .vault-intro, .private-line-intro, .faq-intro) {
  position: relative;
  top: auto;
  display: grid;
  width: min(1200px, 100%);
  max-width: none;
  margin: 0 auto;
  padding: 112px 0 0;
  text-align: center;
}

.section-page :is(.rates-intro, .booking-intro, .digital-intro, .vault-intro, .private-line-intro, .faq-intro) .room-back {
  position: absolute;
  z-index: 3;
  top: 0;
  left: 0;
  display: block;
  justify-self: start;
  width: max-content;
  margin: 0;
  color: #aaa7a1;
  text-align: left;
}

.section-page :is(.rates-intro, .booking-intro, .digital-intro, .vault-intro, .private-line-intro, .faq-intro) h2 {
  max-width: none;
  margin: 0;
  color: var(--house-neon-core);
  -webkit-text-stroke: .55px var(--house-neon-pink);
  font: 400 clamp(64px, 8vw, 124px)/.82 "Gonestone", "Cormorant Garamond", Georgia, serif;
  white-space: nowrap;
  text-align: center;
  text-shadow:
    0 0 2px var(--house-neon-core),
    0 0 8px var(--house-neon-pink),
    0 0 20px rgba(255, 47, 189, 1),
    0 0 42px rgba(255, 47, 189, .84),
    0 0 78px rgba(255, 47, 189, .52);
  animation:
    house-heading-glow 9.7s ease-in-out infinite,
    house-heading-drift 13.1s ease-in-out infinite;
}

.section-page .rates-intro h2 {
  font-size: clamp(54px, 7.2vw, 110px);
  white-space: nowrap;
}

.section-page .digital-intro h2 span { display: block; }

.section-page :is(.rates-intro, .booking-intro, .digital-intro, .vault-intro, .private-line-intro, .faq-intro) .eyebrow {
  margin: 28px 0 0;
  color: #aaa7a1;
  opacity: 1;
}

.section-page :is(.rates-intro, .booking-intro, .digital-intro, .vault-intro, .private-line-intro, .faq-intro) .intro-tagline {
  justify-self: end;
  width: min(430px, 100%);
  max-width: 430px;
  margin: clamp(22px, 3.5vh, 36px) 0 10px;
  color: #aaa7a1;
  font: 300 clamp(18px, 1.65vw, 23px)/1.45 "Jost", Arial, sans-serif;
  font-family: "Jost", Arial, sans-serif !important;
  font-style: normal !important;
  font-weight: 300;
  text-align: right;
}

.section-page :is(.rates-content, .booking-form, .digital-content, .vault-content, .private-line-content, .faq-list) {
  width: min(1200px, 100%);
  margin-right: auto;
  margin-left: auto;
}

.section-page .booking-intro { margin-top: clamp(64px, 8vw, 108px); }
.section-page .rates-intro .rates-scroll-cue { justify-self: start; margin: 4px 0 8px; color: #aaa7a1; text-align: left; }
.section-page .digital-form { margin-top: 54px; }
.section-page .vault-opening { display: none; }

/* Interior headings are already fully visible neon; disable the separate scroll translation. */
.house-motion-ready.section-page :is(.scroll-motion-heading, .scroll-motion-copy) {
  opacity: 1 !important;
  transform: none !important;
  transition: none !important;
}

/* All previously light public sections inherit the House black-and-white system. */
.section-page :is(.booking, .vault, .private-line, .faq) :is(h3, legend, strong, summary) { color: #f2f0ec; }
.section-page :is(.booking, .vault, .private-line, .faq) :is(p, small, li, label, dt, dd) { color: #aaa7a1; }
.section-page :is(.booking, .vault, .private-line, .faq) .eyebrow { color: #aaa7a1; }

.section-page .booking-form,
.section-page .private-line-form {
  color: #f2f0ec;
  background: transparent;
}

.section-page :is(.booking-form, .private-line-form) fieldset {
  border-bottom-color: rgba(242, 240, 236, .18);
}

.section-page :is(.booking-form, .private-line-form) :is(input:not([type="checkbox"]):not([type="radio"]), select, textarea) {
  color: #f2f0ec;
  background: rgba(255, 255, 255, .045);
  border-color: rgba(242, 240, 236, .25);
}

.section-page :is(.booking-form, .private-line-form) select option {
  color: #151411;
  background: #f2f0ec;
}

.section-page :is(.booking-form, .private-line-form) :is(input, select, textarea):focus {
  border-color: rgba(255, 255, 255, .9);
  box-shadow: 0 0 0 1px rgba(255, 255, 255, .65), 0 0 16px rgba(255, 47, 189, .24);
  outline: 0;
}

.section-page .booking-quote,
.section-page .service-inclusions,
.section-page .contact-choice,
.section-page .password-fields,
.section-page .access-boundaries {
  border-color: rgba(242, 240, 236, .18);
  background: rgba(255, 255, 255, .025);
}

.section-page .access-options article,
.section-page .access-options article.vip,
.section-page .vault-card,
.section-page .vault-card:nth-child(even),
.section-page .vault-bundle,
.section-page .vault-complete,
.section-page .vault-trouble {
  color: #f2f0ec;
  background: rgba(255, 255, 255, .025);
  border-color: rgba(242, 240, 236, .2);
}

.section-page :is(.vault-card-top, .vault-card > p, .access-options li, .access-boundaries, .vault-note) { color: #aaa7a1; }
.section-page .vault-action { color: #f2f0ec; border-color: rgba(242, 240, 236, .25); }
.section-page .vault-grid,
.section-page .digital-list,
.section-page .rate-list,
.section-page .faq-list { border-top-color: rgba(242, 240, 236, .25); }
.section-page :is(.vault-card, .digital-rate, .rate-row, .faq-list details) { border-bottom-color: rgba(242, 240, 236, .18); }
.section-page .digital-rate:nth-child(2),
.section-page .vault-card:nth-child(even) { border-left-color: rgba(242, 240, 236, .18); }

/* Every visible choice gets the same moving light edge. */
:is(
  .inside .room,
  .section-page .rate-row,
  .section-page .digital-rate,
  .section-page .vault-card,
  .section-page .access-options article,
  .section-page .choice-row,
  .section-page .check-row,
  .custom-page .choices label > span
) {
  position: relative;
  isolation: isolate;
  transform-origin: center;
  transition: transform .3s cubic-bezier(.2, .75, .25, 1), box-shadow .3s ease, background-color .3s ease;
}

:is(
  .inside .room,
  .section-page .rate-row,
  .section-page .digital-rate,
  .section-page .vault-card,
  .section-page .access-options article,
  .section-page .choice-row,
  .section-page .check-row,
  .custom-page .choices label > span
)::before {
  content: "";
  position: absolute;
  z-index: 0;
  inset: 0;
  padding: 1px;
  pointer-events: none;
  opacity: 0;
  background: conic-gradient(from var(--house-glimmer-angle), transparent 0 55%, rgba(255, 47, 189, .12) 62%, rgba(255, 255, 255, .98) 70%, rgba(255, 47, 189, .5) 78%, transparent 88% 100%);
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  transition: opacity .24s ease;
  animation: house-option-glimmer 4s linear infinite;
}

:is(
  .inside .room,
  .section-page .rate-row,
  .section-page .digital-rate,
  .section-page .vault-card,
  .section-page .access-options article,
  .section-page .choice-row,
  .section-page .check-row,
  .custom-page .choices label > span
):is(:hover, :focus-visible, :focus-within) {
  z-index: 2;
  background-color: rgba(255, 255, 255, .045);
  box-shadow: 0 0 24px rgba(255, 255, 255, .07), 0 0 42px rgba(255, 47, 189, .1);
  transform: scale(1.015);
}

.section-page .digital-rate.is-selected,
.section-page .vault-card.is-selected,
.section-page .access-options article.is-selected,
.custom-page .choices input:checked + span {
  z-index: 2;
  background-color: rgba(255, 255, 255, .045);
  box-shadow: 0 0 24px rgba(255, 255, 255, .07), 0 0 42px rgba(255, 47, 189, .12);
  transform: scale(1.015);
}

:is(
  .inside .room,
  .section-page .rate-row,
  .section-page .digital-rate,
  .section-page .vault-card,
  .section-page .access-options article,
  .section-page .choice-row,
  .section-page .check-row,
  .custom-page .choices label > span
):is(:hover, :focus-visible, :focus-within)::before,
.section-page .digital-rate.is-selected::before,
.section-page .vault-card.is-selected::before,
.section-page .access-options article.is-selected::before,
.custom-page .choices input:checked + span::before { opacity: 1; }

.section-page .digital-experience-field.is-selected select {
  border-color: var(--house-neon-core);
  box-shadow: 0 0 0 1px rgba(255, 247, 252, .7), 0 0 18px rgba(255, 47, 189, .3);
}

@keyframes house-heading-glow {
  0%, 100% {
    text-shadow:
      0 0 2px var(--house-neon-core),
      0 0 8px var(--house-neon-pink),
      0 0 20px rgba(255, 47, 189, 1),
      0 0 42px rgba(255, 47, 189, .84),
      0 0 78px rgba(255, 47, 189, .52);
  }
  11% {
    text-shadow:
      0 0 2px var(--house-neon-core),
      0 0 7px var(--house-neon-pink),
      0 0 17px rgba(255, 47, 189, .92),
      0 0 35px rgba(255, 47, 189, .72),
      0 0 65px rgba(255, 47, 189, .43);
  }
  29% {
    text-shadow:
      0 0 3px var(--house-neon-core),
      0 0 10px var(--house-neon-pink),
      0 0 25px rgba(255, 47, 189, 1),
      0 0 50px rgba(255, 47, 189, .9),
      0 0 88px rgba(255, 47, 189, .58);
  }
  43% {
    text-shadow:
      0 0 2px var(--house-neon-core),
      0 0 8px var(--house-neon-pink),
      0 0 19px rgba(255, 47, 189, .96),
      0 0 39px rgba(255, 47, 189, .78),
      0 0 71px rgba(255, 47, 189, .48);
  }
  67% {
    text-shadow:
      0 0 3px var(--house-neon-core),
      0 0 11px var(--house-neon-pink),
      0 0 27px rgba(255, 47, 189, 1),
      0 0 54px rgba(255, 47, 189, .94),
      0 0 94px rgba(255, 47, 189, .62);
  }
  82% {
    text-shadow:
      0 0 2px var(--house-neon-core),
      0 0 7px var(--house-neon-pink),
      0 0 18px rgba(255, 47, 189, .94),
      0 0 37px rgba(255, 47, 189, .75),
      0 0 68px rgba(255, 47, 189, .45);
  }
}

@keyframes house-heading-drift {
  0%, 100% { filter: brightness(1) saturate(1); }
  17% { filter: brightness(1.08) saturate(1.06); }
  38% { filter: brightness(1.02) saturate(1.02); }
  56% { filter: brightness(1.13) saturate(1.09); }
  74% { filter: brightness(1.04) saturate(1.03); }
  89% { filter: brightness(1.1) saturate(1.07); }
}

/* One exact neon recipe, shared with the landing sign artwork. */
.inside h2,
.custom-page .custom-intro h1 {
  color: var(--house-neon-core);
  -webkit-text-stroke: .55px var(--house-neon-pink);
  text-shadow:
    0 0 2px var(--house-neon-core),
    0 0 8px var(--house-neon-pink),
    0 0 20px rgba(255, 47, 189, 1),
    0 0 42px rgba(255, 47, 189, .84),
    0 0 78px rgba(255, 47, 189, .52);
  animation:
    house-heading-glow 9.7s ease-in-out infinite,
    house-heading-drift 13.1s ease-in-out infinite;
}

@keyframes house-option-glimmer {
  to { --house-glimmer-angle: 360deg; }
}

@media (max-width: 760px) {
  .section-page :is(.rates, .booking, .digital, .vault, .private-line, .faq) { padding: 28px 20px 58px; }
  .section-page :is(.rates-intro, .booking-intro, .digital-intro, .vault-intro, .private-line-intro, .faq-intro) .room-back { margin-bottom: 28px; }
  .section-page :is(.rates-intro, .booking-intro, .digital-intro, .vault-intro, .private-line-intro, .faq-intro) { padding-top: 104px; }
  .section-page :is(.rates-intro, .booking-intro, .digital-intro, .vault-intro, .private-line-intro, .faq-intro) h2 {
    font-size: clamp(42px, 13vw, 64px);
    line-height: .9;
    white-space: normal;
  }
  .section-page .rates-intro h2 {
    font-size: clamp(34px, 10.5vw, 58px);
    white-space: nowrap;
  }
  .section-page :is(.rates-intro, .booking-intro, .digital-intro, .vault-intro, .private-line-intro, .faq-intro) .eyebrow { margin-top: 24px; }
  .section-page :is(.rates-intro, .booking-intro, .digital-intro, .vault-intro, .private-line-intro, .faq-intro) .intro-tagline {
    width: min(300px, 88%);
    margin: 22px 0 8px;
    font-size: 18px;
  }
  .section-page .booking-intro { margin-top: 58px; }
  .section-page .vault-opening { max-width: 88%; margin-bottom: 18px; font-size: 21px; }
}

@media (prefers-reduced-motion: reduce) {
  .section-page :is(.rates-intro, .booking-intro, .digital-intro, .vault-intro, .private-line-intro, .faq-intro) h2,
  .inside h2,
  .custom-page .custom-intro h1,
  :is(.inside .room, .section-page .rate-row, .section-page .digital-rate, .section-page .vault-card, .section-page .access-options article, .section-page .choice-row, .section-page .check-row, .custom-page .choices label > span)::before {
    animation: none;
  }
}
