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

.reservation-page a:not(.button) {
  text-decoration-thickness: 1px;
}

.reservation-page a:not(.button):hover {
  text-decoration-thickness: 2px;
}

.reservation-hero__grid,
.reservation-options__grid,
.reservation-guidance__grid,
.reservation-form-section__grid,
.reservation-steps__grid,
.reservation-poker__grid,
.reservation-context__grid,
.reservation-faq__grid {
  display: grid;
  min-width: 0;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: var(--gutter-desktop);
}

.reservation-hero__copy { grid-column: 1 / span 7; min-width: 0; }
.reservation-hero__action { grid-column: 9 / span 4; min-width: 0; align-self: end; }
.reservation-hero__lead { max-width: 52ch; font-size: var(--text-lg); line-height: 1.4; }
.reservation-hero__action { display: flex; flex-direction: column; gap: var(--space-3); }
.reservation-hero__action .button { width: fit-content; }
.reservation-hero__note { max-width: 34ch; margin-bottom: 0; font-size: var(--text-sm); }

.reservation-options__intro { grid-column: 1 / span 4; min-width: 0; }
.reservation-options__intro p { max-width: 46ch; }
.reservation-options__list { grid-column: 5 / span 8; display: grid; min-width: 0; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 var(--gutter-desktop); border-top: 1px solid var(--color-border); }
.reservation-option { display: flex; min-width: 0; flex-direction: column; gap: var(--space-3); padding: var(--space-6) 0; border-bottom: 1px solid var(--color-border); }
.reservation-option:nth-child(odd) { padding-right: var(--space-6); }
.reservation-option:nth-child(even) { padding-left: var(--space-6); border-left: 1px solid var(--color-border); }
.reservation-option--muted { background: var(--color-blanc); padding-inline: var(--space-6) !important; }
.reservation-option__number { font-size: var(--text-xs); font-weight: var(--weight-semibold); letter-spacing: var(--tracking-meta); text-transform: uppercase; }
.reservation-option h3,
.reservation-option p { margin: 0; }
.reservation-option p { max-width: 50ch; }
.reservation-option a { width: fit-content; margin-top: auto; }

.reservation-guidance__main { grid-column: 1 / span 5; min-width: 0; padding-top: var(--space-4); }
.reservation-guidance__fact { grid-column: 6 / span 3; min-width: 0; padding-top: var(--space-4); }
.reservation-guidance__list { grid-column: 10 / span 3; min-width: 0; padding-top: var(--space-4); }
.reservation-guidance__main p { max-width: 56ch; }
.reservation-guidance__fact p { max-width: 38ch; }
.reservation-guidance__list ul { display: flex; flex-direction: column; gap: var(--space-3); margin-bottom: 0; }
.reservation-guidance__list li { display: flex; min-width: 0; flex-direction: column; gap: var(--space-1); }
.reservation-guidance__list span { font-size: var(--text-sm); }

.reservation-form-section__header { grid-column: 1 / -1; min-width: 0; }
.reservation-form-section__header p { max-width: 52ch; }
.reservation-form { grid-column: 1 / span 8; display: flex; min-width: 0; flex-direction: column; gap: var(--space-8); }
.reservation-sidebar { grid-column: 10 / span 3; display: flex; min-width: 0; flex-direction: column; gap: var(--space-6); align-self: start; padding: var(--space-6); border: 1px solid var(--color-border); background: var(--color-blanc); }
.reservation-form__group { display: flex; min-width: 0; flex-direction: column; gap: var(--space-4); padding-top: var(--space-6); border-top: 1px solid var(--color-border); }
.reservation-form__group:first-of-type { padding-top: 0; border-top: 0; }
.reservation-form__group legend { margin-bottom: 0; font-size: var(--text-xl); }
.reservation-form__help { max-width: 45ch; margin: 0; font-size: var(--text-sm); }
.reservation-form__radios { display: grid; min-width: 0; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-3); }
.reservation-choice { display: flex; min-width: 0; min-height: 44px; align-items: center; gap: var(--space-2); margin: 0; padding: var(--space-3); border: 1px solid var(--color-border); background: var(--color-blanc); font-weight: var(--weight-medium); }
.reservation-choice:has(input:checked) { border-top: 3px solid var(--color-rouge-luna); padding-top: calc(var(--space-3) - 2px); }
.reservation-choice input { width: auto; min-height: auto; padding: 0; }
.reservation-form__fields { display: grid; min-width: 0; gap: var(--space-4); }
.reservation-form__fields--two { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.reservation-form__fields--three { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.reservation-field,
.reservation-context-fields { display: flex; min-width: 0; flex-direction: column; gap: var(--space-2); }
.reservation-field label span { font-weight: var(--weight-regular); }
.reservation-field--measure { max-width: calc((100% - var(--space-4)) / 2); }
.reservation-field--message { margin-top: var(--space-4); }
.reservation-context-fields { padding: var(--space-4); border-left: 2px solid var(--color-rouge-luna); background: var(--color-blanc); }
.reservation-field-error { min-height: 1.2em; margin: 0; color: var(--color-rouge-luna); font-size: var(--text-sm); font-weight: var(--weight-semibold); }
.reservation-form__status { min-height: 0; font-size: var(--text-sm); font-weight: var(--weight-semibold); }
.reservation-consent { display: flex; min-width: 0; align-items: flex-start; gap: var(--space-3); margin: 0; font-weight: var(--weight-regular); }
.reservation-consent input { width: auto; min-height: auto; margin-top: 0.2rem; padding: 0; }
.reservation-form__group--submit .button { width: fit-content; }
.reservation-form__submit-note { max-width: 52ch; margin: 0; font-size: var(--text-sm); }
.reservation-sidebar__item { min-width: 0; }
.reservation-sidebar__item + .reservation-sidebar__item { padding-top: var(--space-6); border-top: 1px solid var(--color-border); }
.reservation-sidebar__item p { max-width: 36ch; margin-bottom: 0; font-size: var(--text-sm); }
.reservation-sidebar__item ol { display: flex; flex-direction: column; gap: var(--space-3); margin-bottom: 0; padding-left: 1.25rem; font-size: var(--text-sm); }
.reservation-sidebar__poker { border-top-color: var(--color-rouge-luna) !important; }

.reservation-steps__intro { grid-column: 1 / span 4; min-width: 0; }
.reservation-step { grid-column: span 4; min-width: 0; padding-top: var(--space-4); }
.reservation-step p { max-width: 42ch; }
.reservation-step p:last-of-type { margin-bottom: var(--space-3); }

.reservation-poker__intro { grid-column: 1 / span 5; min-width: 0; }
.reservation-poker__intro p { max-width: 52ch; }
.reservation-poker__register { grid-column: 6 / span 7; min-width: 0; }
.reservation-register-line { display: grid; min-width: 0; grid-template-columns: minmax(0, 2fr) minmax(0, 5fr); gap: var(--gutter-desktop); padding: var(--space-6) 0; border-top: 1px solid var(--color-border); }
.reservation-register-line:last-child { border-bottom: 1px solid var(--color-border); }
.reservation-register-line div,
.reservation-register-line p { min-width: 0; margin: 0; }
.reservation-register-line p { max-width: 50ch; }

.reservation-context__intro { grid-column: 1 / span 3; min-width: 0; }
.reservation-context__intro p { max-width: 42ch; }
.reservation-context__modules { grid-column: 5 / span 8; display: grid; min-width: 0; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--gutter-desktop); }
.reservation-context-module { display: flex; min-width: 0; flex-direction: column; gap: var(--space-3); padding-top: var(--space-4); }
.reservation-context-module h3,
.reservation-context-module p { margin: 0; }
.reservation-context-module p { max-width: 48ch; }
.reservation-context-module a { width: fit-content; margin-top: auto; }
.reservation-context-module--muted { padding: var(--space-4); background: var(--color-surface); }

.reservation-faq__intro { grid-column: 1 / span 4; min-width: 0; }
.reservation-faq__intro p { max-width: 42ch; }
.reservation-faq__items { grid-column: 5 / span 8; min-width: 0; }
.reservation-faq-item { border-top: 1px solid var(--color-border); }
.reservation-faq-item:last-child { border-bottom: 1px solid var(--color-border); }
.reservation-faq-item button { display: flex; width: 100%; min-height: 44px; align-items: center; justify-content: space-between; gap: var(--space-4); padding: var(--space-4) 0; border: 0; background: transparent; color: var(--color-noir); font-size: var(--text-base); font-weight: var(--weight-semibold); letter-spacing: 0; line-height: 1.3; text-align: left; }
.reservation-faq-item button:hover { background: transparent; color: var(--color-noir); }
.reservation-faq-item button span { flex: 0 0 auto; font-size: var(--text-xl); font-weight: var(--weight-regular); }
.reservation-faq-item > div { padding: 0 0 var(--space-4); }
.reservation-faq-item > div p { max-width: 52ch; }
.reservation-faq-item > div p:last-child { margin-bottom: 0; }

@media (max-width: 68.6875rem) {
  .reservation-options__grid,
  .reservation-poker__grid,
  .reservation-context__grid { grid-template-columns: repeat(6, minmax(0, 1fr)); gap: var(--gutter-tablet); }
  .reservation-options__intro,
  .reservation-poker__intro,
  .reservation-context__intro { grid-column: 1 / -1; }
  .reservation-options__list,
  .reservation-poker__register,
  .reservation-context__modules { grid-column: 1 / -1; }
  .reservation-context__modules { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .reservation-context-module:last-child { grid-column: 1 / -1; }
}

@media (max-width: 63.9375rem) {
  .reservation-hero__grid,
  .reservation-guidance__grid,
  .reservation-form-section__grid,
  .reservation-steps__grid,
  .reservation-faq__grid { grid-template-columns: repeat(6, minmax(0, 1fr)); gap: var(--gutter-tablet); }
  .reservation-hero__copy,
  .reservation-hero__action,
  .reservation-guidance__main,
  .reservation-form-section__header,
  .reservation-form,
  .reservation-sidebar,
  .reservation-steps__intro,
  .reservation-faq__intro,
  .reservation-faq__items { grid-column: 1 / -1; }
  .reservation-hero__action { align-self: auto; }
  .reservation-guidance__fact { grid-column: 1 / span 3; }
  .reservation-guidance__list { grid-column: 4 / span 3; }
  .reservation-sidebar { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-4); }
  .reservation-sidebar__item + .reservation-sidebar__item { padding-top: 0; border-top: 0; border-left: 1px solid var(--color-border); padding-left: var(--space-4); }
  .reservation-step { grid-column: span 3; }
  .reservation-step:last-child { grid-column: 1 / -1; }
}

@media (max-width: 47.9375rem) {
  .reservation-hero__grid,
  .reservation-options__grid,
  .reservation-guidance__grid,
  .reservation-form-section__grid,
  .reservation-steps__grid,
  .reservation-poker__grid,
  .reservation-context__grid,
  .reservation-faq__grid { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--gutter-mobile); }
  .reservation-hero__copy,
  .reservation-hero__action,
  .reservation-options__intro,
  .reservation-options__list,
  .reservation-guidance__main,
  .reservation-guidance__fact,
  .reservation-guidance__list,
  .reservation-form-section__header,
  .reservation-form,
  .reservation-sidebar,
  .reservation-steps__intro,
  .reservation-step,
  .reservation-poker__intro,
  .reservation-poker__register,
  .reservation-context__intro,
  .reservation-context__modules,
  .reservation-faq__intro,
  .reservation-faq__items { grid-column: 1 / -1; }
  .reservation-hero__lead { max-width: 40ch; font-size: var(--text-base); }
  .reservation-hero__action .button { width: 100%; }
  .reservation-options__list,
  .reservation-context__modules { grid-template-columns: 1fr; gap: var(--space-6); }
  .reservation-option,
  .reservation-option:nth-child(odd),
  .reservation-option:nth-child(even) { padding: var(--space-4) 0; border-left: 0; }
  .reservation-option--muted { padding: var(--space-4) !important; }
  .reservation-guidance__fact,
  .reservation-guidance__list { padding-top: var(--space-4); }
  .reservation-form__radios,
  .reservation-form__fields--two,
  .reservation-form__fields--three,
  .reservation-sidebar { grid-template-columns: 1fr; }
  .reservation-field--measure { max-width: none; }
  .reservation-form__group--submit .button { width: 100%; }
  .reservation-sidebar__item + .reservation-sidebar__item { padding-top: var(--space-6); padding-left: 0; border-top: 1px solid var(--color-border); border-left: 0; }
  .reservation-step { padding-top: var(--space-4); }
  .reservation-register-line { grid-template-columns: 1fr; gap: var(--space-3); }
  .reservation-context-module:last-child { grid-column: auto; }
  .reservation-context-module { padding: var(--space-4); }
  .reservation-context-module:not(.reservation-context-module--muted) { padding-inline: 0; }
}
