.booking-page {
  background: var(--color-cream);
}

.booking-page .section {
  position: relative;
  overflow: clip;
}

.booking-section-kicker,
.booking-hero__eyebrow {
  margin: 0;
  color: var(--color-cobalt);
  font-size: var(--text-sm);
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.booking-hero__grid {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
  align-items: center;
  gap: var(--space-7);
}

.booking-hero__copy {
  display: flex;
  min-width: 0;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-4);
}

.booking-hero__copy > * { margin: 0; }
.booking-hero__copy h1 { max-width: 620px; }
.booking-hero__lead { max-width: 620px; font-size: var(--text-lg); line-height: 1.45; }
.booking-hero__badges,
.booking-hero__actions { display: flex; min-width: 0; flex-wrap: wrap; align-items: center; gap: var(--space-3); }
.booking-hero__actions > * { min-width: 0; }
.booking-hero__media { width: 100%; min-width: 0; margin: 0; align-self: start; }
.booking-hero__media figcaption { padding: 0 var(--space-2); }
.booking-hero__star { position: absolute; top: 1rem; right: 0; color: var(--color-yellow); font-size: 3.5rem; line-height: 1; transform: rotate(12deg); }

.booking-steps { background: var(--color-white); }
.booking-steps__intro { display: flex; max-width: 640px; min-width: 0; flex-direction: column; align-items: flex-start; gap: var(--space-3); }
.booking-steps__intro > * { margin: 0; }
.booking-steps__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--space-5); margin: var(--space-7) 0 0; padding: 0; list-style: none; }
.booking-step-card { display: flex; min-width: 0; flex-direction: column; gap: var(--space-4); padding: var(--space-5); border: var(--border-strong); border-radius: var(--radius-control); background: var(--color-white); box-shadow: var(--shadow-hard); transition: transform var(--transition-base), box-shadow var(--transition-base); }
.booking-step-card:hover { transform: translate(-3px, -3px); box-shadow: 8px 8px 0 var(--color-blueberry); }
.booking-step-card--yellow .booking-step-card__number { background: var(--color-yellow); }
.booking-step-card--tangerine .booking-step-card__number { background: var(--color-tangerine); }
.booking-step-card--cobalt { background: var(--color-cobalt); color: var(--color-white); }
.booking-step-card--cobalt h3 { color: var(--color-white); }
.booking-step-card--cobalt .booking-step-card__number { background: var(--color-cream); color: var(--color-blueberry); }
.booking-step-card--cream { border-bottom: 8px solid var(--color-tangerine); background: var(--color-cream); }
.booking-step-card__number { display: inline-flex; width: fit-content; min-width: 4rem; align-items: center; justify-content: center; padding: var(--space-2) var(--space-3); border: var(--border-strong); border-radius: 6px; color: var(--color-blueberry); font-family: var(--font-display); font-size: 2rem; font-weight: 700; line-height: 1; }
.booking-step-card__content { display: flex; min-width: 0; flex-direction: column; gap: var(--space-3); }
.booking-step-card__content > * { margin: 0; }
.booking-step-card__label { font-size: var(--text-sm); font-weight: 700; text-transform: uppercase; }
.booking-step-card__content p { font-size: 0.98rem; }

.booking-decisions__intro { display: flex; max-width: 680px; min-width: 0; flex-direction: column; align-items: flex-start; gap: var(--space-3); }
.booking-decisions__intro > * { margin: 0; }
.booking-decisions__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); align-items: start; gap: var(--space-5); margin-top: var(--space-7); }
.booking-decision { display: flex; min-width: 0; flex-direction: column; align-items: flex-start; gap: var(--space-4); }
.booking-decision > * { margin: 0; }
.booking-decision--group { margin-top: var(--space-5); }
.booking-decision--play { min-height: 100%; padding: var(--space-5); }
.booking-decision--play h3 { color: var(--color-white); }
.booking-decision__index { color: var(--color-cobalt); font-family: var(--font-display); font-size: 3.5rem; font-weight: 700; line-height: 0.9; }
.booking-decision--play .booking-decision__index { color: var(--color-yellow); }
.booking-decision__details { display: grid; width: 100%; min-width: 0; grid-template-columns: 1fr; gap: var(--space-4); }
.booking-decision__details > div { min-width: 0; }
.booking-decision__details h4,
.booking-decision__details p { margin: 0; }
.booking-decision__details h4 { margin-bottom: var(--space-1); }

.booking-table { background: var(--color-white); }
.booking-table__grid { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); align-items: center; gap: var(--space-7); }
.booking-table__copy { display: flex; max-width: 560px; min-width: 0; flex-direction: column; align-items: flex-start; gap: var(--space-4); }
.booking-table__copy > * { margin: 0; }
.booking-table__helps { display: flex; width: 100%; min-width: 0; flex-direction: column; gap: var(--space-4); padding-top: var(--space-3); border-top: 1px solid var(--color-line); }
.booking-table__helps h3 { margin: 0; }
.booking-table__help-list { display: grid; min-width: 0; grid-template-columns: 1fr; gap: var(--space-4); }
.booking-table__help-list > div { min-width: 0; }
.booking-table__help-list h4,
.booking-table__help-list p { margin: 0; }
.booking-table__help-list h4 { margin-bottom: var(--space-1); }
.booking-table__media { width: 100%; min-width: 0; margin: 0; }
.booking-table__media figcaption { padding: 0 var(--space-2); }

.booking-status__intro { display: flex; max-width: 760px; min-width: 0; flex-direction: column; align-items: center; gap: var(--space-3); margin-inline: auto; text-align: center; }
.booking-status__intro > * { margin: 0; }
.booking-status__flow { display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); align-items: stretch; gap: var(--space-5); margin-top: var(--space-7); }
.booking-status-card { display: flex; min-width: 0; flex-direction: column; gap: var(--space-4); padding: var(--space-6); }
.booking-status-card > * { margin: 0; }
.booking-status-card--reply { color: var(--color-white); }
.booking-status-card--reply h3 { color: var(--color-white); }
.booking-status-card__label { width: fit-content; padding: var(--space-1) var(--space-2); border: var(--border-strong); border-radius: 6px; background: var(--color-yellow); color: var(--color-blueberry); font-size: var(--text-sm); font-weight: 700; }
.booking-status-card--reply .booking-status-card__label { background: var(--color-cream); }
.booking-status__connector { display: flex; width: 2rem; min-width: 2rem; align-items: center; justify-content: center; color: var(--color-cobalt); font-size: 2.5rem; font-weight: 700; }
.booking-status__faq-note { max-width: 650px; margin: var(--space-6) auto 0; text-align: center; }

.booking-faq { background: var(--color-white); }
.booking-faq__container { position: relative; }
.booking-faq__intro { display: flex; max-width: 700px; min-width: 0; flex-direction: column; align-items: flex-start; gap: var(--space-3); }
.booking-faq__intro > * { margin: 0; }
.booking-accordion { display: grid; max-width: 860px; min-width: 0; grid-template-columns: minmax(0, 1fr); gap: var(--space-3); margin-top: var(--space-6); }
.booking-accordion__item { min-width: 0; border: var(--border-strong); border-radius: var(--radius-control); background: var(--color-cream); overflow: hidden; }
.booking-accordion__item h3 { margin: 0; }
.booking-accordion__button { display: flex; width: 100%; min-width: 0; min-height: 3.5rem; align-items: center; justify-content: space-between; gap: var(--space-4); padding: var(--space-4) var(--space-5); border: 0; background: transparent; color: var(--color-blueberry); font-family: var(--font-display); font-size: var(--text-xl); font-weight: 700; line-height: 1.16; text-align: left; }
.booking-accordion__button > span:first-child { min-width: 0; }
.booking-accordion__symbol { display: inline-flex; width: 1.75rem; min-width: 1.75rem; height: 1.75rem; align-items: center; justify-content: center; border: var(--border-strong); border-radius: 50%; background: var(--color-yellow); font-family: var(--font-body); font-size: 1.25rem; line-height: 1; }
.booking-accordion__panel { max-width: 760px; padding: 0 var(--space-5) var(--space-5); }
.booking-accordion__panel p { margin: 0; }
.booking-faq__wave { position: absolute; right: 4%; bottom: 5rem; color: var(--color-tangerine); font-family: var(--font-display); font-size: 7rem; line-height: 1; transform: rotate(-10deg); }

.booking-cta__panel { display: grid; width: min(100%, 62.5rem); min-width: 0; grid-template-columns: minmax(0, 3fr) minmax(0, 2fr); align-items: center; gap: var(--space-6); margin-inline: auto; padding: var(--space-6); }
.booking-cta__copy { display: flex; max-width: 560px; min-width: 0; flex-direction: column; align-items: flex-start; gap: var(--space-3); }
.booking-cta__copy > * { margin: 0; }
.booking-cta__copy .booking-section-kicker { color: var(--color-yellow); }
.booking-cta__actions { display: flex; min-width: 0; flex-wrap: wrap; justify-content: flex-end; gap: var(--space-3); }
.booking-cta__actions > * { min-width: 0; }

.booking-summary__intro { display: flex; max-width: 760px; min-width: 0; flex-direction: column; align-items: center; gap: var(--space-3); margin-inline: auto; text-align: center; }
.booking-summary__intro > * { margin: 0; }
.booking-summary__list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-6); margin: var(--space-7) 0 0; padding: 0; list-style: none; }
.booking-summary__list > li { display: grid; min-width: 0; grid-template-columns: auto minmax(0, 1fr); align-items: start; gap: var(--space-3); }
.booking-summary__number { display: inline-flex; min-width: 4.5rem; align-items: center; justify-content: center; padding: var(--space-2); border: var(--border-strong); border-radius: 6px; color: var(--color-blueberry); font-family: var(--font-display); font-size: 2rem; font-weight: 700; line-height: 1; }
.booking-summary__number--orange { background: var(--color-tangerine); }
.booking-summary__number--blue { background: var(--color-cobalt); color: var(--color-white); }
.booking-summary__list h3,
.booking-summary__list p { margin: 0; }
.booking-summary__list h3 { margin-bottom: var(--space-2); }

@media (max-width: 74.9375rem) {
  .booking-hero__grid { gap: var(--space-6); }
  .booking-steps__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .booking-decisions__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .booking-decision--play { grid-column: 1 / -1; }
  .booking-faq__wave { display: none; }
}

@media (max-width: 61.1875rem) {
  .booking-hero__grid { grid-template-columns: minmax(0, 1fr); }
  .booking-hero__copy { max-width: 650px; }
  .booking-hero__media { max-width: 720px; }
  .booking-hero__star { display: none; }
  .booking-table__grid { grid-template-columns: minmax(0, 1fr); }
  .booking-table__copy { max-width: 620px; }
  .booking-table__media { max-width: 820px; }
  .booking-cta__panel { grid-template-columns: minmax(0, 1fr); }
  .booking-cta__actions { justify-content: flex-start; }
}

@media (max-width: 53.0625rem) {
  .booking-status__flow { grid-template-columns: minmax(0, 1fr); gap: var(--space-3); }
  .booking-status__connector { width: 100%; min-width: 0; height: 2rem; transform: rotate(90deg); }
  .booking-summary__list { grid-template-columns: minmax(0, 1fr); }
}

@media (max-width: 44.9375rem) {
  .booking-hero__copy h1 { font-size: 2rem; line-height: 1.09; }
  .booking-hero__lead { font-size: var(--text-base); line-height: 1.5; }
  .booking-hero__actions { width: 100%; flex-direction: column; align-items: stretch; }
  .booking-hero__actions > * { width: 100%; }
  .booking-steps__grid,
  .booking-decisions__grid { grid-template-columns: minmax(0, 1fr); gap: var(--space-4); margin-top: var(--space-6); }
  .booking-step-card { padding: var(--space-5); }
  .booking-step-card__number { font-size: 2.5rem; }
  .booking-decision--group { margin-top: 0; }
  .booking-decision--play { grid-column: auto; }
  .booking-status__intro,
  .booking-summary__intro { align-items: flex-start; margin-inline: 0; text-align: left; }
  .booking-status-card { padding: var(--space-5); }
  .booking-status__faq-note { margin-inline: 0; text-align: left; }
  .booking-accordion__button { min-height: 3.25rem; padding: var(--space-4); font-size: 1.25rem; }
  .booking-accordion__panel { padding: 0 var(--space-4) var(--space-4); }
  .booking-cta__panel { padding: var(--space-5); }
  .booking-cta__actions { width: 100%; flex-direction: column; align-items: stretch; }
  .booking-cta__actions > * { width: 100%; }
  .booking-summary__list { gap: var(--space-5); margin-top: var(--space-6); }
}

@media (prefers-reduced-motion: reduce) {
  .booking-step-card:hover { transform: none; box-shadow: var(--shadow-hard); }
  .booking-hero__star,
  .booking-faq__wave { transform: none; }
}
