.mc-book { --mcb-ink: var(--ink, #262223); --mcb-muted: #5c5557; --mcb-open: var(--g-teal, #6cd4a6); --mcb-req: var(--g-gold, #fcc74c); --mcb-booked: var(--g-coral, #ef746c); --mcb-r: var(--radius, 14px); max-width: 760px; }
.mc-book__step { border: 0; margin: 0 0 2rem; padding: 0; min-inline-size: 0; }   /* a fieldset is min-content wide by default: it pushed narrow phones sideways */
.mc-book__step > legend { font-family: Sora, system-ui, sans-serif; font-weight: 700; font-size: 1.35rem; margin-bottom: .75rem; }
.mc-book__n { display: inline-grid; place-items: center; width: 1.8em; height: 1.8em; border-radius: 50%; background: var(--mcb-ink); color: #fff; font-size: .8em; margin-right: .4em; }
.mc-book__field { margin: 0 0 1rem; }
.mc-book__field label, .mc-book__radios legend { display: block; font-weight: 600; margin-bottom: .3rem; }
.mc-book input[type=text], .mc-book input[type=email], .mc-book input[type=tel], .mc-book input[type=number], .mc-book input[type=date], .mc-book select, .mc-book textarea { width: 100%; box-sizing: border-box; padding: .6rem .75rem; border: 1px solid #c9c1bd; border-radius: 10px; font: inherit; background: #fff; }
.mc-book input[type=file] { max-width: 100%; }
.mc-book__row { display: grid; gap: 0 1rem; grid-template-columns: 1fr; }
@media (min-width: 640px) { .mc-book__row { grid-template-columns: 1fr 1fr; } }
.mc-book__cal { border: 1px solid #e6dfda; border-radius: var(--mcb-r); padding: .75rem; margin-bottom: 1rem; background: #fff; }
.mc-book__cal-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: .5rem; }
.mc-book__cal-head button { border: 0; background: none; font-size: 1.6rem; line-height: 1; padding: .2rem .6rem; cursor: pointer; }
.mc-book__cal-head button:disabled { opacity: .25; cursor: default; }
.mc-book__cal-grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 4px; }
.mc-book__dow { font-size: .75rem; color: var(--mcb-muted); text-align: center; }
.mc-book__day { min-height: 44px; min-width: 0; padding: 0; border: 1px solid #e6dfda; border-radius: 8px; background: #fff; font: inherit; cursor: pointer; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px; }
.mc-book__day.is-out { border: 0; color: #c9c1bd; cursor: default; }
.mc-book__day.is-full { background: #f6f1ee; color: #a59c98; cursor: not-allowed; }
.mc-book__day.is-sel { outline: 3px solid var(--mcb-ink); outline-offset: 1px; }
.mc-book__day:focus-visible { outline: 3px solid var(--g-violet, #9873c4); outline-offset: 2px; }
.mc-book__dots, .mc-book__legend { display: flex; gap: 3px; align-items: center; }
.mc-book__legend { gap: .4rem; font-size: .8rem; color: var(--mcb-muted); margin: .5rem 0 0; flex-wrap: wrap; }
.mc-book i.is-o, .mc-book i.is-r, .mc-book i.is-b { display: inline-block; width: 7px; height: 7px; border-radius: 50%; }
.mc-book i.is-o { background: var(--mcb-open); } .mc-book i.is-r { background: var(--mcb-req); } .mc-book i.is-b { background: var(--mcb-booked); }
.mc-book__slots { display: grid; gap: .5rem; margin-bottom: .5rem; }
.mc-book__slot { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; padding: .7rem .9rem; border: 1px solid #e6dfda; border-radius: 10px; background: #fff; cursor: pointer; }
.mc-book__slot-time { color: var(--mcb-muted); }
.mc-book__slot-state { margin-left: auto; font-size: .85rem; font-weight: 600; }
.mc-book__slot.is-b { opacity: .55; cursor: not-allowed; } .mc-book__slot.is-r .mc-book__slot-state { color: #8a6500; }
.mc-book__layouts { display: grid; gap: .75rem; grid-template-columns: 1fr; }
@media (min-width: 640px) { .mc-book__layouts { grid-template-columns: 1fr 1fr; } }
.mc-book__layout { display: block; padding: .8rem; border: 2px solid #e6dfda; border-radius: var(--mcb-r); background: #fff; cursor: pointer; }
.mc-book__layout:has(input:checked) { border-color: var(--mcb-ink); }
.mc-book__layout-title { font-weight: 700; } .mc-book__layout-cap { display: block; font-size: .85rem; color: var(--mcb-muted); }
.mc-book__layout-svg svg { display: block; width: 100%; height: auto; margin-top: .5rem; }
.mc-book__radios { border: 0; padding: 0; margin: 0 0 1rem; } .mc-book__radios label { display: block; margin: .3rem 0; }
.mc-book__check label { display: flex; gap: .5rem; align-items: flex-start; }
.mc-book__rules { margin: 0 0 1rem; padding: .6rem .9rem; border-radius: 10px; background: #f6f1ee; } .mc-book__rules summary { font-weight: 600; cursor: pointer; }
.mc-book__clash, .mc-book__warn { padding: .6rem .9rem; border-radius: 10px; background: #fff8e1; border-left: 4px solid var(--mcb-req); }
.mc-book__clash.is-hard { background: #fdecea; border-left-color: var(--mcb-booked); }
/* Live regions (role=status/alert) stay rendered while empty, or screen readers may not announce them when they fill; empty, they draw nothing. */
.mc-book__clash:empty, .mc-book__warn:empty { padding: 0; margin: 0; border: 0; background: none; }
.mc-book__fee { font-weight: 600; }
.mc-book__err { color: #a4262c; font-weight: 600; margin: -.6rem 0 1rem; }
.mc-book__flyer-msg { display: block; margin-top: .3rem; color: #a4262c; font-weight: 600; } .mc-book__flyer-msg:empty { margin: 0; }
.mc-book__summary { padding: .9rem 1.1rem; border-radius: 10px; background: #fdecea; border-left: 4px solid #a4262c; margin-bottom: 1.5rem; }
.mc-book__hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.mc-book__fine { font-size: .9rem; color: var(--mcb-muted); }
.mc-book [hidden] { display: none !important; }
.mc-book--sent { padding: 1.25rem 1.5rem; border-radius: var(--mcb-r); background: #eefaf4; border-left: 4px solid var(--mcb-open); }
