.booking-page {
  min-width: 0;
}

.booking-page__hero-grid,
.booking-page__planning-grid,
.booking-page__lounge-grid,
.booking-page__route-grid,
.booking-page__details-grid,
.booking-page__request-grid,
.booking-page__context-grid,
.booking-page__checklist,
.booking-page__tournament-panel,
.booking-page__final-panel {
  min-width: 0;
}

.booking-page__hero-grid {
  display: grid;
  grid-template-columns: minmax(0, 7fr) minmax(17.5rem, 5fr);
  gap: 2rem;
  align-items: end;
}

.booking-page__hero-copy {
  min-width: 0;
  max-width: 42rem;
}

.booking-page__hero-copy .intro {
  max-width: 42rem;
}

.booking-page__hero-link {
  margin-top: var(--space-2);
}

.booking-page__summary {
  min-width: 0;
  border-top: 3px solid var(--color-brass-gold);
}

.booking-page__summary-content {
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: var(--space-4);
}

.booking-page__summary-content > * {
  min-width: 0;
  margin: 0;
}

.booking-page__summary-list {
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: var(--space-3);
  margin: 0;
}

.booking-page__summary-list > div {
  min-width: 0;
  padding-bottom: var(--space-3);
  border-bottom: var(--border-subtle);
}

.booking-page__summary-list > div:last-child {
  padding-bottom: 0;
  border-bottom: 0;
}

.booking-page__summary-list dd {
  margin: var(--space-1) 0 0;
}

.booking-page__form {
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: var(--space-8);
}

.booking-page__form-heading {
  min-width: 0;
  max-width: 46rem;
}

.booking-page__form-heading > :last-child {
  margin-bottom: 0;
}

.booking-page__required-note {
  color: var(--color-muted-slate);
  font-size: var(--text-sm);
}

.booking-page__required-note span,
.booking-page__field label span[aria-hidden="true"],
.booking-page__field-label span[aria-hidden="true"] {
  color: var(--color-brass-gold);
}

.booking-page__error-summary {
  padding: var(--space-4);
  border: 1px solid var(--color-error);
  border-radius: var(--radius-control);
  background: color-mix(in srgb, var(--color-error) 10%, var(--color-panel-slate));
  color: var(--color-white);
}

.booking-page__error-summary strong {
  display: block;
  margin-bottom: var(--space-2);
}

.booking-page__error-summary ul {
  display: flex;
  flex-direction: column;
  gap: var(--space-1);
  margin: 0;
  padding: 0;
}

.booking-page__field-group {
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: var(--space-4);
  padding-top: var(--space-6);
  border-top: var(--border-subtle);
}

.booking-page__field-group legend {
  color: var(--color-white);
  font-family: var(--font-heading);
  font-size: var(--text-h3);
  font-weight: 700;
  line-height: 1.18;
}

.booking-page__group-help {
  max-width: 46rem;
  margin: 0;
  color: var(--color-muted-slate);
}

.booking-page__details-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(17.5rem, 1fr));
  gap: 2rem;
}

.booking-page__details-grid > * {
  min-width: 0;
  width: 100%;
}

.booking-page__field--phone {
  grid-column: 1 / -1;
  max-width: calc(50% - 1rem);
}

.booking-page__request-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 2rem;
}

.booking-page__request-grid > * {
  min-width: 0;
  width: 100%;
}

.booking-page__field {
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: var(--space-2);
}

.booking-page__field label,
.booking-page__field-label {
  color: var(--color-white);
  font-size: var(--text-sm);
  font-weight: 600;
  line-height: 1.35;
}

.booking-page__optional {
  color: var(--color-muted-slate);
  font-size: var(--text-xs);
  font-weight: 500;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.booking-page__field input,
.booking-page__field select,
.booking-page__field textarea {
  min-width: 0;
  background: var(--color-harbor-slate);
}

.booking-page__field-error {
  min-height: 1.35em;
  margin: 0;
  color: var(--color-error);
  font-size: var(--text-sm);
  line-height: 1.35;
}

.booking-page__context-grid {
  display: grid;
  grid-template-columns: minmax(17.5rem, 5fr) minmax(17.5rem, 7fr);
  gap: 2rem;
}

.booking-page__context-grid > * {
  min-width: 0;
  width: 100%;
}

.booking-page__focus-wrap {
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: var(--space-3);
}

.booking-page__focus-options {
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: var(--space-3);
}

.booking-page__focus-options label {
  display: flex;
  min-width: 0;
  align-items: flex-start;
  gap: var(--space-2);
  padding: var(--space-3);
  border-left: 3px solid var(--color-line-slate);
  background: color-mix(in srgb, var(--color-harbor-slate) 54%, transparent);
  color: var(--color-white);
  line-height: 1.35;
}

.booking-page__focus-options label:has(input:checked) {
  border-left-color: var(--color-brass-gold);
  background: color-mix(in srgb, var(--color-felt-green) 12%, var(--color-panel-slate));
}

.booking-page__focus-options input {
  margin-top: 0.1rem;
}

.booking-page__focus-helper,
.booking-page__notes-help {
  margin: 0;
  color: var(--color-muted-slate);
  font-size: var(--text-sm);
  line-height: 1.45;
}

.booking-page__form-actions {
  display: flex;
  min-width: 0;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-6);
  padding-top: var(--space-6);
  border-top: var(--border-subtle);
}

.booking-page__acknowledgement {
  min-width: 0;
  flex: 1 1 auto;
}

.booking-page__acknowledgement label {
  display: flex;
  min-width: 0;
  align-items: flex-start;
  gap: var(--space-2);
  color: var(--color-muted-slate);
  font-size: var(--text-sm);
  line-height: 1.45;
}

.booking-page__acknowledgement input {
  margin-top: 0.15rem;
}

.booking-page__acknowledgement .booking-page__field-error {
  margin-top: var(--space-2);
}

.booking-page__submit {
  flex: 0 0 auto;
  min-width: max-content;
}

.booking-page__submit-status {
  min-height: 1.6em;
  margin: 0;
  color: var(--color-muted-slate);
  font-size: var(--text-sm);
}

.booking-page__section-heading {
  min-width: 0;
  max-width: 42rem;
  margin-bottom: var(--space-5);
}

.booking-page__section-heading > :last-child {
  margin-bottom: 0;
}

.booking-page__planning-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 2rem;
}

.booking-page__planning-grid > * {
  min-width: 0;
  width: 100%;
}

.booking-page__planning-card,
.booking-page__route-card {
  gap: var(--space-4);
}

.booking-page__planning-card > *,
.booking-page__route-card > * {
  margin: 0;
}

.booking-page__planning-card .button,
.booking-page__route-card .button {
  margin-top: auto;
  align-self: flex-start;
}

.booking-page__rank {
  color: var(--color-brass-gold);
  font-size: 1.15rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  line-height: 1;
}

.booking-page__section-heading--lounge {
  max-width: 44rem;
}

.booking-page__section-heading--lounge .divider,
.booking-page__expectations-heading .divider {
  width: 4rem;
  margin: var(--space-4) 0;
}

.booking-page__lounge-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(22.5rem, 1fr));
  gap: 2rem;
}

.booking-page__lounge-grid > * {
  min-width: 0;
  width: 100%;
}

.booking-page__lounge-panel-content {
  display: flex;
  min-width: 0;
  height: 100%;
  flex-direction: column;
  gap: var(--space-4);
}

.booking-page__lounge-panel-content > * {
  margin: 0;
}

.booking-page__feature-list {
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: 0;
  margin: 0;
  padding: 0;
}

.booking-page__feature-list li,
.booking-page__tournament-row {
  display: grid;
  grid-template-columns: minmax(8rem, 0.8fr) minmax(0, 1.2fr);
  gap: var(--space-4);
  min-width: 0;
  padding: var(--space-3) 0;
  border-top: var(--border-subtle);
}

.booking-page__feature-list span,
.booking-page__tournament-row span {
  min-width: 0;
  color: var(--color-muted-slate);
}

.booking-page__tournament-row {
  border-left: 3px solid var(--color-brass-gold);
  padding-left: var(--space-3);
}

.booking-page__section-heading--gathering {
  max-width: 42rem;
}

.booking-page__gathering-panel {
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: var(--space-6);
}

.booking-page__checklist {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 0;
}

.booking-page__check-item {
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: var(--space-3);
  padding: 0 var(--space-4);
  border-left: var(--border-subtle);
}

.booking-page__check-item:first-child {
  padding-left: 0;
  border-left: 0;
}

.booking-page__check-item:last-child {
  padding-right: 0;
}

.booking-page__check-item span,
.booking-page__step > span {
  color: var(--color-brass-gold);
  font-size: var(--text-sm);
  font-weight: 700;
  letter-spacing: 0.08em;
}

.booking-page__check-item p {
  margin: 0;
}

.booking-page__return-callout {
  display: flex;
  min-width: 0;
  align-items: end;
  justify-content: space-between;
  gap: var(--space-6);
  padding: var(--space-5);
  border-top: var(--border-subtle);
  border-left: 3px solid var(--color-felt-green);
  background: color-mix(in srgb, var(--color-felt-green) 9%, var(--color-panel-slate));
}

.booking-page__return-callout > * {
  min-width: 0;
}

.booking-page__return-callout h3,
.booking-page__return-callout p {
  margin: 0;
}

.booking-page__return-callout p {
  margin-top: var(--space-2);
  color: var(--color-muted-slate);
}

.booking-page__notes-link {
  flex: 0 0 auto;
}

.booking-page__tournament-panel {
  display: grid;
  grid-template-columns: minmax(0, 8fr) minmax(17.5rem, 4fr);
  gap: 2rem;
}

.booking-page__tournament-panel > * {
  min-width: 0;
  width: 100%;
}

.booking-page__tournament-copy {
  max-width: 42rem;
}

.booking-page__tournament-copy > :last-child {
  margin-bottom: 0;
}

.booking-page__tournament-steps {
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: var(--space-4);
}

.booking-page__step {
  display: grid;
  grid-template-columns: 2.25rem minmax(0, 1fr);
  gap: var(--space-3);
  min-width: 0;
  padding-bottom: var(--space-4);
  border-bottom: var(--border-subtle);
}

.booking-page__step > div {
  min-width: 0;
}

.booking-page__step h3,
.booking-page__step p {
  margin: 0;
}

.booking-page__step p {
  margin-top: var(--space-2);
  color: var(--color-muted-slate);
}

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

.booking-page__expectations-panel {
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: var(--space-6);
}

.booking-page__expectations-heading {
  max-width: 42rem;
}

.booking-page__expectations-heading > :last-child {
  margin-bottom: 0;
}

.booking-page__expectation-list {
  display: flex;
  min-width: 0;
  flex-direction: column;
}

.booking-page__expectation-row {
  display: grid;
  grid-template-columns: minmax(0, 3fr) minmax(0, 9fr);
  gap: var(--space-6);
  min-width: 0;
  padding: var(--space-4) 0;
  border-top: var(--border-subtle);
}

.booking-page__expectation-row > * {
  min-width: 0;
  margin: 0;
}

.booking-page__route-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 2rem;
}

.booking-page__route-grid > * {
  min-width: 0;
  width: 100%;
}

.booking-page__section-heading--routes {
  max-width: 42rem;
}

.booking-page__final-container {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: 2rem;
}

.booking-page__final-panel {
  grid-column: 3 / span 8;
  display: flex;
  min-width: 0;
  align-items: end;
  justify-content: space-between;
  gap: var(--space-6);
}

.booking-page__final-panel > * {
  min-width: 0;
}

.booking-page__final-copy {
  flex: 1 1 auto;
}

.booking-page__final-copy > :last-child {
  margin-bottom: 0;
}

.booking-page__return-button {
  flex: 0 0 auto;
  min-width: max-content;
}

@media (max-width: 61.1875rem) {
  .booking-page__hero-grid {
    grid-template-columns: minmax(0, 1fr) minmax(17.5rem, 0.72fr);
    gap: 1.5rem;
  }

  .booking-page__request-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.5rem;
  }

  .booking-page__request-grid > :last-child {
    grid-column: 1 / -1;
    max-width: calc(50% - 0.75rem);
  }

  .booking-page__planning-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.5rem;
  }

  .booking-page__planning-card--context {
    grid-column: 1 / -1;
  }

  .booking-page__lounge-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.5rem;
  }

  .booking-page__checklist {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    row-gap: var(--space-5);
  }

  .booking-page__check-item {
    padding: 0 var(--space-4);
  }

  .booking-page__check-item:nth-child(4) {
    padding-left: 0;
    border-left: 0;
  }

  .booking-page__check-item:nth-child(3) {
    padding-right: 0;
  }

  .booking-page__tournament-panel {
    grid-template-columns: 1fr;
    gap: var(--space-6);
  }

  .booking-page__tournament-copy {
    max-width: 42rem;
  }

  .booking-page__tournament-steps {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--space-4);
    padding-top: var(--space-5);
    border-top: var(--border-subtle);
  }

  .booking-page__step-actions {
    grid-column: 1 / -1;
    flex-direction: row;
    flex-wrap: wrap;
  }

  .booking-page__route-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.5rem;
  }

  .booking-page__route-card:last-child {
    grid-column: 1 / span 1;
  }
}

@media (max-width: 56.1875rem) {
  .booking-page__hero-grid {
    grid-template-columns: 1fr;
  }

  .booking-page__hero-copy {
    max-width: 42rem;
  }

  .booking-page__summary {
    width: 100%;
  }

  .booking-page__lounge-grid {
    grid-template-columns: 1fr;
  }

  .booking-page__final-panel {
    align-items: flex-start;
    flex-direction: column;
  }
}

@media (max-width: 49.9375rem) {
  .booking-page__expectation-row {
    grid-template-columns: 1fr;
    gap: var(--space-2);
  }

  .booking-page__final-panel {
    grid-column: 2 / span 10;
  }
}

@media (max-width: 47.9375rem) {
  .booking-page__hero-grid,
  .booking-page__details-grid,
  .booking-page__request-grid,
  .booking-page__context-grid,
  .booking-page__planning-grid,
  .booking-page__lounge-grid,
  .booking-page__route-grid,
  .booking-page__checklist,
  .booking-page__tournament-steps {
    grid-template-columns: 1fr;
    gap: var(--space-4);
  }

  .booking-page__hero-copy,
  .booking-page__hero-copy .intro,
  .booking-page__form-heading,
  .booking-page__group-help,
  .booking-page__section-heading,
  .booking-page__section-heading--lounge,
  .booking-page__section-heading--gathering,
  .booking-page__section-heading--routes,
  .booking-page__tournament-copy,
  .booking-page__expectations-heading {
    max-width: none;
  }

  .booking-page__form {
    gap: var(--space-6);
  }

  .booking-page__field-group {
    gap: var(--space-4);
    padding-top: var(--space-5);
  }

  .booking-page__field--phone,
  .booking-page__request-grid > :last-child,
  .booking-page__planning-card--context,
  .booking-page__route-card:last-child,
  .booking-page__step-actions {
    grid-column: auto;
    max-width: none;
  }

  .booking-page__form-actions,
  .booking-page__return-callout {
    align-items: stretch;
    flex-direction: column;
    gap: var(--space-4);
  }

  .booking-page__submit,
  .booking-page__return-button {
    width: 100%;
    min-width: 0;
  }

  .booking-page__feature-list li,
  .booking-page__tournament-row {
    grid-template-columns: 1fr;
    gap: var(--space-1);
  }

  .booking-page__checklist {
    gap: 0;
  }

  .booking-page__check-item,
  .booking-page__check-item:first-child,
  .booking-page__check-item:last-child,
  .booking-page__check-item:nth-child(4),
  .booking-page__check-item:nth-child(3) {
    padding: var(--space-4) 0;
    border-top: var(--border-subtle);
    border-left: 0;
  }

  .booking-page__check-item:first-child {
    padding-top: 0;
    border-top: 0;
  }

  .booking-page__tournament-steps {
    padding-top: var(--space-5);
  }

  .booking-page__step-actions {
    flex-direction: column;
    align-items: flex-start;
  }

  .booking-page__final-container {
    display: block;
  }

  .booking-page__final-panel {
    display: flex;
    width: 100%;
    margin: 0;
  }
}

@media (prefers-reduced-motion: reduce) {
  .booking-page * {
    scroll-behavior: auto;
  }
}