.frostbite-page { --ice: #a9d9e9; --night: #0c1b26; font-size: clamp(1.125rem, 1rem + .4vw, 1.25rem); line-height: 1.6; }
.frostbite-page .section { padding: 2rem 1.5rem; }
.frostbite-page #book { scroll-margin-top: 70px; }
.frostbite-page .frostbite-hero {
  background: #061121;
  color: #edf5f8;
  isolation: isolate;
  min-height: calc(100vh - 52px);
  min-height: calc(100svh - 52px);
  overflow: hidden;
  padding: 0;
  position: relative;
  display: flex;
  align-items: center;
}
.frostbite-art { position: absolute; inset: 0; display: block; z-index: 0; }
.frostbite-art img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center; }
.frostbite-hero::before,
.frostbite-hero::after { content: ""; position: absolute; inset: 0; pointer-events: none; }
.frostbite-hero::before {
  z-index: 1;
  background: radial-gradient(ellipse at 70% 43%, transparent 24%, rgb(13 67 119 / 18%) 52%, rgb(4 14 34 / 85%) 100%);
  box-shadow: inset 0 0 110px rgb(55 145 226 / 28%);
}
.frostbite-hero::after {
  z-index: 2;
  background: linear-gradient(90deg, rgb(3 12 27 / 97%) 0%, rgb(4 16 34 / 86%) 25%, rgb(4 16 34 / 35%) 52%, transparent 76%), linear-gradient(0deg, #061121 0%, transparent 28%, transparent 83%, rgb(6 17 33 / 35%) 100%);
}
.frostbite-hero > .frostbite-intro {
  position: relative;
  z-index: 3;
  width: 100%;
  max-width: none;
  margin: 0;
  padding: clamp(2rem, 5vh, 5rem) clamp(1.5rem, 4vw, 5rem);
}
.frostbite-heading { max-width: 760px; }
.frostbite-pitch { max-width: 680px; }
.frostbite-hero .title { margin: .75rem 0 1rem; }
#frostbite-title { width: min(42vw, 38rem); max-width: 100%; line-height: 0; }
.frostbite-title-text {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  clip-path: inset(50%);
  white-space: nowrap;
  border: 0;
}
.frostbite-wordmark { display: block; }
.frostbite-wordmark img {
  display: block;
  width: 100%;
  height: auto;
  filter: drop-shadow(0 3px 16px rgb(100 192 255 / 20%));
}
.frostbite-eyebrow { font-size: 1rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.frostbite-hero .frostbite-eyebrow, .frostbite-hook { color: var(--ice); }
.frostbite-hook { font-size: clamp(1.5rem, 2.1vw, 2rem); font-weight: 600; margin-bottom: .75rem; }
.frostbite-pitch { font-size: clamp(1.25rem, 1.6vw, 1.5rem); line-height: 1.6; text-shadow: 0 1px 8px #061121; }
.frostbite-facts { display: flex; flex-wrap: wrap; gap: .5rem; list-style: none; margin: 1rem 0; padding-top:1.7rem; }
.frostbite-facts li { background: rgb(5 20 40 / 60%); border: 1px solid #597484; border-radius: 5px; padding: .4rem .85rem; font-size: clamp(1.125rem, 1.4vw, 1.25rem); font-weight: 600; }
.frostbite-starting-price { margin-bottom: .5rem; }
.frostbite-starting-price b { font-size: 2rem; }
.frostbite-starting-price span { color: #c0d5df; font-size: 1.125rem; }
.frostbite-location-note { font-size: clamp(1.125rem, 1.2vw, 1.25rem); margin-top: .5rem; }
.frostbite-age-note { color: #c0d5df; font-size: 1.0625rem; margin-top: .75rem; }
.frostbite-page .frostbite-cta { background: #b12c3e; border-color: transparent; color: #fff; font-weight: 700; white-space: normal; min-height: 48px; height: auto; }
.frostbite-page .frostbite-cta:hover { background: #922134; color: #fff; }
.frostbite-page a:focus-visible, .frostbite-page summary:focus-visible { outline: 3px solid #227b9b; outline-offset: 4px; }
.frostbite-hero a:focus-visible { outline-color: var(--ice); }
.frostbite-booking { background: #061121; color: #edf5f8; }
.frostbite-booking a { color: #a9d9e9; }
.frostbite-booking a:hover { color: #fff; }
.frostbite-price-note { font-size: 1rem; margin-bottom: .75rem; color: #425762; }
.frostbite-visit { background: #f1f6f8; }
.frostbite-visit address { font-style: normal; font-weight: 600; }
.frostbite-directions { display: inline-block; padding: .5rem 0; }
.frostbite-map { border: 0; border-radius: 8px; display: block; width: 100%; height: 280px; }
.frostbite-prices { display: flex; flex-wrap: wrap; gap: .75rem; margin-bottom: 1rem; list-style: none; }
.frostbite-prices li { background: #fff; border: 1px solid #cedce2; border-radius: 6px; padding: .6rem 1rem; }
.frostbite-prices b, .frostbite-prices span { display: block; }
.frostbite-calendar { min-height: 400px; background: #fff; border: 1px solid #325077; border-radius: 12px; padding: .5rem; box-shadow: 0 0 50px rgb(38 125 217 / 14%); color: #000; }
.frostbite-booking-help { font-size: 1.125rem; margin-top: 1rem; }
.frostbite-benefits { list-style: disc; padding-left: 1.2rem; }
.frostbite-benefits li + li { margin-top: 1rem; }
.frostbite-teams { background: #f1f6f8; }
.frostbite-team-photo img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 8px; }
.frostbite-faq details { border-bottom: 1px solid #d7e1e6; padding: 1rem 0; }
.frostbite-faq summary { cursor: pointer; font-weight: 600; padding: .25rem 0; }
.frostbite-faq details p { margin-top: .75rem; max-width: 55rem; }
.frostbite-final-cta { margin-top: 2rem; padding: 1.5rem; text-align: center; background: #f1f6f8; border-radius: 8px; }
@media (max-width: 768px) {
  .frostbite-page .section { padding: 1.5rem 1rem; }
  .frostbite-page .columns.is-variable { --columnGap: .75rem; }
  .frostbite-page .frostbite-hero { display: block; min-height: 0; padding: 0; overflow: visible; }
  .frostbite-art { position: static; width: 100%; }
  .frostbite-art img { width: 100%; height: auto; object-fit: contain; }
  .frostbite-hero::before, .frostbite-hero::after { display: none; }
  .frostbite-hero > .frostbite-intro { padding: 1.5rem 1rem; }
  .frostbite-heading, .frostbite-pitch { max-width: none; }
  .frostbite-wordmark { display: none; }
  /* The mobile poster already contains the title; retain only its accessible H1. */
  #frostbite-title {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    clip-path: inset(50%);
    white-space: nowrap;
    border: 0;
  }
  .frostbite-hero .title { margin: .5rem 0; }
  .frostbite-eyebrow { font-size: .875rem; }
  .frostbite-hook { font-size: 1.375rem; margin-bottom: 1rem; }
  .frostbite-pitch { font-size: 1.125rem; }
  .frostbite-starting-price { margin-bottom: .25rem; }
  .frostbite-prices { gap: .4rem; }
  .frostbite-prices li { flex: 1 1 90px; padding: .5rem; font-size: 1rem; }
  .frostbite-cta { width: 100%; }
}
