.catering-page { max-width: 70rem; margin-inline: auto; min-width: 0; }
.catering-heading { max-width: 46rem; margin-bottom: 2rem; }
.catering-heading h1 { font-size: clamp(2.6rem, 6cqi, 4.8rem); }
.catering-heading .lede { max-width: 40rem; margin-bottom: 0.5rem; }
.catering-form { min-width: 0; }
.catering-form-intro, .catering-hint, .catering-draft-note { color: var(--bosco-charcoal-soft); font-size: 0.9rem; line-height: 1.65; }
.catering-draft-note:empty { margin: 0; }
.catering-section { min-width: 0; margin: 2rem 0 0; padding: 1.75rem 0 2rem; border: 0; border-top: 1px solid var(--bosco-line); }
.catering-section legend { padding: 0 1.25rem 0 0; font-family: var(--bosco-font-display); font-weight: 600; font-size: clamp(1.6rem, 3cqi, 2.2rem); letter-spacing: -0.025em; }
.catering-section legend > span { margin-right: 0.65rem; color: var(--bosco-ember); font-family: var(--bosco-font-sans); font-size: 0.8rem; font-weight: 700; letter-spacing: 0.08em; vertical-align: middle; }
.catering-section > .catering-hint { max-width: 42rem; margin-bottom: 1.5rem; }
.catering-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.25rem 1.5rem; }
.catering-full { grid-column: 1 / -1; }
.catering-grid > p { margin: -0.5rem 0 0; }
.catering-grid label { display: flex; flex-wrap: wrap; align-content: start; align-items: baseline; gap: 0.5rem; min-width: 0; font-size: 0.9rem; font-weight: 600; }
.catering-optional { color: var(--bosco-charcoal-soft); font-size: 0.75rem; font-weight: 400; }
.catering-grid :is(input, select, textarea) { width: 100%; min-width: 0; min-height: 50px; padding: 0.75rem; border: 1px solid var(--bosco-charcoal-soft); border-radius: var(--bosco-radius-sm); background: var(--bosco-cream-deep); color: var(--bosco-charcoal); font: inherit; font-size: 1rem; font-weight: 400; transition: border-color var(--bosco-duration-fast) ease; }
.catering-grid :is(input, select, textarea):hover { border-color: var(--bosco-charcoal); }
.catering-grid input[readonly] { background: var(--bosco-paper); color: var(--bosco-charcoal-soft); }
.catering-grid textarea { resize: vertical; line-height: 1.65; }
.catering-grid ::placeholder { color: var(--bosco-charcoal-soft); opacity: 1; }
.catering-grid small { color: var(--bosco-charcoal-soft); font-size: 0.8rem; font-weight: 400; line-height: 1.6; }
.catering-page :is(input, select, textarea, button, a):focus-visible, .catering-alert:focus, .catering-receipt:focus { outline: 3px solid var(--bosco-focus); outline-offset: 4px; }
.catering-page [aria-invalid="true"] { border-color: var(--bosco-ember); }
.catering-menu { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.75rem; margin-bottom: 1.5rem; }
.catering-menu:empty { display: none; }
.catering-choice { display: flex; align-items: start; gap: 0.75rem; min-height: 44px; padding-block: 0.65rem; font-size: 0.95rem; line-height: 1.5; cursor: pointer; }
.catering-choice input { flex-shrink: 0; width: 1.25rem; height: 1.25rem; margin: 0.1rem 0 0; accent-color: var(--bosco-ember); }
.catering-menu-choice { align-items: center; padding: 0.85rem 1rem; border: 1px solid var(--bosco-charcoal-soft); border-radius: var(--bosco-radius-sm); background: var(--bosco-cream-deep); }
.catering-menu-choice:has(:checked) { border-color: var(--bosco-ember); }
.catering-menu-choice strong { display: block; overflow-wrap: anywhere; }
.catering-menu-choice small { display: block; margin-top: 0.2rem; color: var(--bosco-charcoal-soft); font-size: 0.75rem; }
.catering-fulfillment { display: flex; flex-wrap: wrap; gap: 0.5rem 2rem; margin-bottom: 1.5rem; }
.catering-address-pair { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.catering-review { min-width: 0; margin: 2rem 0 0; padding: clamp(1.25rem, 3cqi, 2rem); border: 1px solid var(--bosco-line); border-radius: var(--bosco-radius-md); background: var(--bosco-paper); }
.catering-review-legend { padding-inline: 0.5rem; font-size: 0.85rem; font-weight: 700; }
.catering-review-grid { display: grid; grid-template-columns: minmax(0, 0.8fr) minmax(0, 1fr); gap: 2.5rem; }
.catering-review h2, .catering-receipt h2 { font-size: clamp(1.8rem, 3.5cqi, 2.6rem); line-height: 1.1; }
.catering-summary { font-size: 0.9rem; }
.catering-summary > div { padding-block: 0.75rem; border-bottom: 1px solid var(--bosco-line); }
.catering-summary dt { color: var(--bosco-charcoal-soft); font-size: 0.75rem; }
.catering-summary dd { margin: 0.25rem 0 0; overflow-wrap: anywhere; }
.catering-summary small { display: block; color: var(--bosco-charcoal-soft); }
.catering-terms > .catering-hint { margin-bottom: 1rem; }
.catering-acknowledgment { border-top: 1px solid var(--bosco-line); padding-top: 1.25rem; }
.catering-submit { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1rem 2rem; padding-top: 1.5rem; margin-top: 1rem; border-top: 1px solid var(--bosco-line); }
.catering-submit > p { flex: 1 1 22rem; margin: 0; font-size: 0.8rem; }
.catering-submit .button { min-height: 50px; line-height: 1.3; text-align: center; }
.catering-submit a[aria-disabled="true"] { opacity: 0.45; cursor: not-allowed; }
.catering-alert { scroll-margin-block: 2rem; overflow-wrap: anywhere; color: var(--bosco-ember-dark); }
.catering-alert:not(:empty) { padding: 1rem 0; border-block: 1px solid var(--bosco-ember); margin-bottom: 1.5rem; }
.catering-receipt { max-width: 45rem; padding: clamp(1.25rem, 3cqi, 2rem); border: 1px solid var(--bosco-line); border-radius: var(--bosco-radius-md); background: var(--bosco-paper); overflow-wrap: anywhere; }
.catering-page fieldset:disabled label { cursor: default; }

@container (max-width: 48rem) {
  .catering-review-grid { grid-template-columns: minmax(0, 1fr); gap: 1rem; }
}

@container (max-width: 34rem) {
  .catering-grid, .catering-menu { grid-template-columns: minmax(0, 1fr); }
  .catering-section legend { font-size: 1.65rem; }
  .catering-submit .button { width: 100%; }
}

@media (prefers-reduced-motion: reduce) {
  .catering-page *, .catering-page *::before, .catering-page *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}
