.ek-booking-hero{background:#f4eaeb;padding:84px 0 58px}.ek-booking-kicker{font-size:12px;letter-spacing:.16em;font-weight:700;color:#873951}.ek-booking-hero h1{font-size:clamp(35px,5vw,58px);margin:13px 0;color:#343945}.ek-booking-hero p{max-width:680px;font-size:17px;line-height:1.8;color:#65626a}.ek-booking-area{background:#faf8f7;padding:60px 0 100px}.ek-booking-panel{background:#fff;border:1px solid #efe5e5;border-radius:20px;padding:clamp(20px,3vw,38px);box-shadow:0 14px 48px rgba(78,40,52,.055)}.ek-step{display:flex;align-items:flex-start;gap:14px;margin-bottom:26px}.ek-step>span{width:38px;height:38px;display:grid;place-items:center;border-radius:50%;background:#f4eaeb;color:#873951;font-weight:700;flex-shrink:0}.ek-step h2{font-size:22px;margin:0 0 6px;color:#343945}.ek-step p{margin:0;color:#777078;font-size:14px}.ek-calendar{border:1px solid #eee5e5;border-radius:16px;padding:20px}.ek-calendar-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;color:#343945;font-size:18px}.ek-calendar-nav{height:36px;width:36px;border:1px solid #ebdfe2;border-radius:50%;display:grid;place-items:center;color:#873951;font-size:28px;text-decoration:none}.ek-calendar-nav.disabled{opacity:.25;pointer-events:none}.ek-calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;margin:5px 0}.ek-calendar-weekdays{text-align:center;color:#93888c;font-size:13px;margin-bottom:12px}.ek-calendar-day{height:49px;display:flex;align-items:center;justify-content:center;flex-direction:column;border-radius:12px;text-decoration:none!important;font-weight:600;position:relative}.ek-calendar-day.available{background:#f8f1f2;color:#873951}.ek-calendar-day.available:hover{background:#edd7dd}.ek-calendar-day.available i{height:4px;width:4px;border-radius:50%;background:#873951;position:absolute;bottom:7px}.ek-calendar-day.selected{background:#873951;color:#fff}.ek-calendar-day.selected i{background:#fff}.ek-calendar-day.unavailable{color:#c6bec0;background:#faf9f9}.ek-calendar-legend{display:flex;gap:22px;flex-wrap:wrap;margin-top:18px;font-size:13px;color:#756c70}.ek-calendar-legend span{display:flex;align-items:center;gap:8px}.ek-calendar-legend i{height:9px;width:9px;border-radius:50%}.dot-available{background:#873951}.dot-unavailable{background:#d6cdd0}.ek-slot-section{border-top:1px solid #eee6e6;margin-top:30px;padding-top:30px}.ek-time-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.ek-time-option{border:1px solid #e6d5da;border-radius:10px;background:white;color:#873951;padding:12px 5px;font-weight:600;transition:.15s}.ek-time-option:hover{background:#f4eaeb}.ek-time-option.active{background:#873951;border-color:#873951;color:#fff}.ek-no-slots{padding:22px;background:#faf5f5;border-radius:12px;color:#756b70;font-size:14px}.ek-form-panel .form-label{font-weight:600;color:#4b4549;font-size:14px;margin-bottom:7px}.ek-form-panel .form-control,.ek-form-panel .form-select{border:1px solid #e6dcdf;border-radius:10px;min-height:47px;padding:10px 13px;background-color:#fff}.ek-form-panel .form-control:focus,.ek-form-panel .form-select:focus{border-color:#873951;box-shadow:0 0 0 .2rem rgba(135,57,81,.12)}.ek-selected-summary{background:#f8f1f2;padding:17px 20px;border-radius:12px;margin-bottom:26px;display:flex;flex-direction:column;gap:5px}.ek-selected-summary small,.ek-selected-summary>span{font-size:12px;color:#85767c}.ek-selected-summary strong{color:#873951;font-size:17px}.ek-consent{margin:24px 0 18px}.ek-consent .form-check-label{font-size:13px;line-height:1.6;color:#5e555a}.ek-consent .form-check-input:checked{background-color:#873951;border-color:#873951}.ek-privacy-note{font-size:12px;line-height:1.65;color:#82777b}.ek-submit{background:#873951;color:#fff;border-radius:40px;padding:15px;font-weight:700;margin-top:10px}.ek-submit:hover{background:#69263c;color:#fff}.ek-submit:disabled{background:#c9b6bd;color:#fff}.ek-form-hint{font-size:12px;color:#85767c;text-align:center;margin:12px 0 0}@media(max-width:767px){.ek-booking-hero{padding:50px 0 36px}.ek-booking-area{padding:28px 0 70px}.ek-calendar{padding:10px}.ek-calendar-day{height:42px}.ek-time-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}

.ek-time-reserved{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;background:#f5f2f2;color:#8d8588;border-color:#e9e5e5;cursor:not-allowed}.ek-time-reserved small{font-size:10px;font-weight:400}.ek-time-reserved:hover{background:#f5f2f2}

/* Phase 9C.3 live-state and confirmation dialog */
.ek-live-status{margin-top:20px;padding:12px 14px;border:1px solid #eadfe2;border-radius:10px;font-size:13px;color:#62545b;display:flex;align-items:center;gap:12px;flex-wrap:wrap;background:#fbf8f9}
.ek-live-action{border:0;background:transparent;color:#873951;text-decoration:underline;font-weight:700;padding:3px 0;cursor:pointer}
.ek-live-action[hidden]{display:none}
.ek-verification-overlay{position:fixed;inset:0;z-index:99999;background:rgba(25,20,25,.75);display:flex;align-items:center;justify-content:center;padding:20px;overflow:auto}
.ek-verification-dialog{position:relative;background:white;border-radius:22px;box-shadow:0 30px 90px rgba(0,0,0,.28);padding:40px 34px;max-width:540px;width:100%;text-align:center;color:#343945}
.ek-verification-close{position:absolute;right:14px;top:10px;background:none;border:0;font-size:32px;line-height:1;color:#77676d;cursor:pointer;padding:4px 10px}
.ek-verification-symbol{font-size:48px;color:#873951;margin-bottom:10px}
.ek-verification-dialog h2{font-size:28px;margin-bottom:16px}
.ek-verification-dialog p{line-height:1.7}
.ek-verification-warning{background:#faf0f2;border-radius:12px;padding:15px;color:#69263c}
.ek-verification-resend{display:block;margin:16px 0;color:#873951;text-decoration:underline}
@media(max-width:600px){.ek-verification-dialog{padding:38px 20px 24px}.ek-verification-dialog h2{font-size:23px}}

/* Phase 9C.3 UI refinement: no permanent status banner for healthy streams. */
.ek-live-status[hidden]{display:none!important}
.ek-live-status{margin-top:12px;padding:10px 14px;border:1px solid #eadfe2;border-radius:10px;background:#fbf8f9;color:#62545b;font-size:13px;display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.ek-live-action{white-space:nowrap}
/* Match the site's primary navigation action, with a reliable click target. */
.ek-page-action{display:inline-flex!important;align-items:center;justify-content:center;gap:8px;padding:13px 28px!important;border-radius:36px!important;background:#873951!important;color:#fff!important;text-decoration:none!important;position:relative;z-index:1;cursor:pointer}
.ek-page-action:hover,.ek-page-action:focus-visible{background:#69263c!important;color:#fff!important}
.ek-info-card{text-align:center;padding:clamp(1.5rem,4vw,3rem)}
.ek-info-card h2{color:#873951;margin-bottom:1rem}
.ek-info-card .ek-page-action{margin-top:12px}

/* Future fully-booked/closed dates remain inspectable, never bookable. */
.ek-calendar-day.ek-calendar-inspect{cursor:pointer;text-decoration:none!important}
.ek-calendar-day.ek-calendar-inspect:hover,.ek-calendar-day.ek-calendar-inspect:focus-visible{color:#765f69;background:#efe5e9;outline-offset:2px}

/* A7: keep every time slot identical in size; don't disclose why a slot is unavailable. */
.ek-time-grid{grid-auto-rows:44px;align-items:stretch}
.ek-time-grid .ek-time-option{box-sizing:border-box;height:44px;min-height:44px;max-height:44px;padding:0 6px;display:flex;align-items:center;justify-content:center;flex-direction:row;gap:7px;line-height:1.2;white-space:nowrap;overflow:hidden}
.ek-time-grid .ek-time-unavailable{background:#f4f1f2;color:#82777b;border-color:#e6e0e2;cursor:not-allowed;user-select:none}
.ek-time-grid .ek-time-unavailable:hover{background:#f4f1f2}
.ek-slot-lock{width:12px;height:12px;flex:0 0 12px;stroke:currentColor;fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;opacity:.85}
