/* Structure only for the hire booking form. No colours or fonts: the site theme styles it.
 * :where() keeps specificity at zero so any theme rule wins. */
:where(.mhe-booking) { margin: 1.5em 0; }
:where(.mhe-booking [hidden]) { display: none !important; }
:where(.mhe-booking__intro) { display: flex; flex-wrap: wrap; align-items: center; gap: 1em; }
:where(.mhe-progress) { display: flex; flex-wrap: wrap; gap: .5em 1.5em; list-style: decimal inside; padding: 0; margin: 1em 0; }
:where(.mhe-progress .is-current) { font-weight: bold; }
:where(.mhe-step) { border: 0; padding: 0; margin: 0 0 1em; min-width: 0; }
:where(.mhe-step__title) { font-size: 1.25em; font-weight: bold; margin-bottom: .5em; }
:where(.mhe-step__nav) { display: flex; flex-wrap: wrap; gap: .75em; margin-top: 1em; }
:where(.mhe-question) { border: 0; padding: 0; margin: 0 0 1.25em; min-width: 0; }
:where(.mhe-question > legend) { font-weight: bold; margin-bottom: .4em; }
:where(.mhe-answers) { display: flex; flex-wrap: wrap; gap: .5em 1em; }
:where(.mhe-answer) { display: inline-flex; align-items: center; gap: .4em; cursor: pointer; }
:where(.mhe-answer--photo) { flex-direction: column; align-items: flex-start; max-width: 12em; }
:where(.mhe-answer__photo) { display: block; width: 100%; height: auto; }
:where(.mhe-extra) { margin: .75em 0; }
:where(.mhe-extra__details) { margin: .5em 0 0 1.75em; }
:where(.mhe-extra.is-unavailable .mhe-extra__pick) { opacity: .55; }
:where(.mhe-included ul) { margin: .25em 0 1em 1.25em; }
:where(.mhe-component) { margin: 0 0 1em; }
:where(.mhe-calendar__nav) { display: flex; align-items: center; justify-content: space-between; gap: 1em; margin-bottom: .75em; }
:where(.mhe-calendar__grid) { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 4px; }
:where(.mhe-calendar__dow) { text-align: center; font-size: .8em; font-weight: bold; }
:where(.mhe-day) { min-height: 2.6em; }
:where(.mhe-day:disabled) { opacity: .4; cursor: not-allowed; }
:where(.mhe-day.is-special)::after { content: " \2605"; }
:where(.mhe-day.is-selected), :where(.mhe-slot.is-selected) { outline: 3px solid currentColor; outline-offset: 1px; }
:where(.mhe-slots) { display: flex; flex-wrap: wrap; gap: .5em; }
:where(.mhe-summary__table) { width: 100%; border-collapse: collapse; }
:where(.mhe-summary__amount) { text-align: right; white-space: nowrap; }
:where(.mhe-summary__total) { font-weight: bold; }
:where(.mhe-optional), :where(.mhe-hint) { font-size: .9em; opacity: .8; }
:where(.mhe-missing), :where(.mhe-notice), :where(.mhe-special-day-notice) { border-left: 4px solid currentColor; padding: .25em .75em; }
:where(.mhe-staff-issues) { border-left: 4px solid currentColor; padding: .5em .75em; }
