.fk-booking { margin: 2rem 0; padding: 1.5rem; background: #fff; border: 3px solid #14213d; border-radius: 1.25rem; box-shadow: 6px 6px 0 #14213d; }
.fk-booking__title { margin-top: 0; }
.fk-cal { max-width: 420px; }
.fk-cal__head { display: flex; justify-content: space-between; align-items: center; margin-bottom: 0.5rem; font-size: 1.1rem; }
.fk-cal__nav { background: #f4f7fb; border: 2px solid #14213d; border-radius: 999px; width: 2.2rem; height: 2.2rem; font-size: 1.3rem; cursor: pointer; }
.fk-cal__nav:disabled { opacity: 0.3; cursor: default; }
.fk-cal__grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 4px; }
.fk-cal__dow { text-align: center; font-size: 0.75rem; font-weight: 800; color: #556; padding: 0.25rem 0; }
.fk-cal__day { aspect-ratio: 1; border: 2px solid transparent; border-radius: 0.6rem; background: #e6f7ee; font: inherit; font-weight: 700; cursor: pointer; }
.fk-cal__day.is-weekend { background: #d5f0e2; }
.fk-cal__day:hover:not(:disabled) { border-color: #14213d; }
.fk-cal__day.is-past { background: #f1f3f6; color: #aab; cursor: default; }
.fk-cal__day.is-taken { background: #ffd9dc; color: #b02030; text-decoration: line-through; cursor: not-allowed; }
.fk-cal__day.is-selected { background: #ffd23f; border-color: #14213d; }
.fk-cal__legend { font-size: 0.8rem; color: #556; margin: 0.75rem 0 0; display: flex; gap: 0.4rem; align-items: center; flex-wrap: wrap; }
.fk-cal__swatch { display: inline-block; width: 0.9rem; height: 0.9rem; border-radius: 0.25rem; margin-left: 0.6rem; }
.fk-cal__swatch.is-free { background: #e6f7ee; } .fk-cal__swatch.is-taken { background: #ffd9dc; } .fk-cal__swatch.is-selected { background: #ffd23f; }
.fk-booking__form { margin-top: 1.5rem; display: grid; gap: 0.75rem; max-width: 480px; }
.fk-booking__form[hidden] { display: none; }
.fk-booking__form label { display: grid; gap: 0.25rem; font-weight: 700; font-size: 0.95rem; }
.fk-booking__form input, .fk-booking__form textarea { font: inherit; padding: 0.6rem 0.8rem; border: 2px solid #c9d2e0; border-radius: 0.6rem; }
.fk-booking__form input:focus, .fk-booking__form textarea:focus { outline: none; border-color: #1e6fe0; }
.fk-booking__quote { background: #f4f7fb; border-radius: 0.75rem; padding: 0.75rem 1rem; margin: 0; }
.fk-booking__hp { position: absolute; left: -9999px; }
.fk-booking__status { margin: 0; min-height: 1.4em; color: #b02030; font-weight: 700; }
.fk-booking__done { background: #e6f7ee; border: 2px solid #2fbf71; border-radius: 0.75rem; padding: 1rem; margin-bottom: 1rem; }
.fk-booking__alt { font-size: 0.9rem; margin: 1rem 0 0; }

/* /book/ page — date first */
.fk-book__step { margin: 0 0 2.5rem; }
.fk-book__heading { display: flex; align-items: center; gap: 0.6rem; }
.fk-book__num { display: inline-grid; place-items: center; width: 2rem; height: 2rem; border-radius: 999px; background: #ffd23f; color: #14213d; font-size: 1.1rem; }
.fk-book__window { font-size: 1.1rem; margin: 0.75rem 0 0; min-height: 1.5em; }
.fk-book__card { text-align: left; padding: 0; font: inherit; cursor: pointer; color: inherit; }
.fk-book__card.is-taken { opacity: 0.45; cursor: not-allowed; filter: grayscale(1); }
.fk-book__card.is-taken:hover { transform: none; }
.fk-book__card.is-selected { outline: 4px solid #ffd23f; outline-offset: -4px; }
.fk-card__price--taken { color: #b02030; font-size: 1rem; }
.fk-book__none { grid-column: 1 / -1; background: #fff3cd; border-radius: 0.75rem; padding: 1rem; margin: 0; }
.fk-book .fk-cal { max-width: 460px; }

.fk-booking__done-actions { margin: 0.75rem 0 0; }
.fk-booking__wa { display: inline-block; background: #2fbf71 !important; color: #fff !important; text-decoration: none; margin-bottom: 0.25rem; }
.fk-booking__done-actions { margin: 0.75rem 0 0; }
.fk-booking__wa { display: inline-block; background: #2fbf71 !important; color: #fff !important; text-decoration: none; margin-bottom: 0.25rem; }

.fk-booking__form fieldset { border: 2px solid #c9d2e0; border-radius: 0.75rem; padding: 0.6rem 0.9rem 0.8rem; margin: 0; min-width: 0; }
.fk-booking__form legend { font-weight: 800; font-size: 0.95rem; padding: 0 0.3rem; }
.fk-booking__check { display: flex !important; gap: 0.55rem; align-items: flex-start; font-weight: 600 !important; margin: 0.35rem 0; }
.fk-booking__check input { margin-top: 0.3rem; flex: none; }
.fk-booking__delivery { margin-top: 0.5rem; display: grid; gap: 0.5rem; }
.fk-booking__delivery[hidden] { display: none; }
.fk-booking__delivery select { font: inherit; padding: 0.55rem 0.7rem; border: 2px solid #c9d2e0; border-radius: 0.6rem; }
.fk-booking__note { margin: 0; font-size: 0.85rem; color: #556; }
.fk-booking__terms details { margin: 0.3rem 0; }
.fk-booking__terms summary { cursor: pointer; font-weight: 700; color: #1e6fe0; }
.fk-booking__legal { max-height: 14rem; overflow: auto; font-size: 0.85rem; padding: 0.5rem 0.75rem; background: #f4f7fb; border-radius: 0.5rem; margin: 0.4rem 0 0.6rem; }
.fk-booking__submit.is-whatsapp { background: #2fbf71 !important; color: #fff !important; }
.fk-booking__submit:disabled { opacity: 0.45; cursor: not-allowed; }
.fk-booking__terms-hint { font-weight: 700; color: #b02030; }
.fk-booking__terms-hint[hidden] { display: none; }
.fk-booking__form label.is-missing input, .fk-booking__form label.is-missing textarea { border-color: #b02030; }
.fk-booking__form label.is-missing { color: #b02030; }
