/* BookFlow — gate availability calendar.
 * Inherits the gate palette vars (--wdz-gate-primary / --wdz-gate-accent) from
 * the enclosing .wdz-gate, so it tracks the active niche automatically. */

.wdz-gate__datefields--hidden { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

.wdz-gate__calendar { margin: 4px 0 10px; }

.wdz-cal {
	--wdz-cal-primary: var(--wdz-gate-primary, #0F3460);
	--wdz-cal-accent:  var(--wdz-gate-accent, #C9A227);
	user-select: none;
}

.wdz-cal__head {
	display: flex; align-items: center; justify-content: space-between;
	margin-bottom: 8px;
}
.wdz-cal__title { font-weight: 700; font-size: 1.02rem; color: var(--wdz-cal-primary); }
.wdz-cal__nav {
	width: 36px; height: 36px; border: 1px solid #dfe3ea; background: #fff;
	border-radius: 10px; font-size: 1.2rem; line-height: 1; cursor: pointer;
	color: var(--wdz-cal-primary); transition: background .15s, border-color .15s;
}
.wdz-cal__nav:hover:not(:disabled) { background: var(--wdz-cal-primary); color: #fff; border-color: var(--wdz-cal-primary); }
.wdz-cal__nav:disabled { opacity: .35; cursor: default; }

.wdz-cal__grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 4px; }
.wdz-cal__grid--wd { margin-bottom: 4px; }
.wdz-cal__wd { text-align: center; font-size: .72rem; font-weight: 700; color: #9aa3b2; text-transform: uppercase; letter-spacing: .03em; }

.wdz-cal__cell {
	position: relative; aspect-ratio: 1 / 1; min-height: 38px;
	display: flex; flex-direction: column; align-items: center; justify-content: center;
	border: 1px solid transparent; border-radius: 10px; background: #f4f6fa;
	font-size: .92rem; color: #1f2733; cursor: pointer;
	transition: background .12s, color .12s, border-color .12s, transform .05s;
}
.wdz-cal__cell.is-empty { background: transparent; cursor: default; }
.wdz-cal__cell:hover:not(:disabled):not(.is-empty) { border-color: var(--wdz-cal-primary); }
.wdz-cal__cell:active:not(:disabled) { transform: scale(.96); }

.wdz-cal__cell.is-disabled {
	background: transparent; color: #c2c8d2; cursor: default; text-decoration: line-through;
	text-decoration-thickness: 1px;
}
.wdz-cal__cell.is-booked {
	background: repeating-linear-gradient(135deg, #fbe9e9, #fbe9e9 5px, #f7dede 5px, #f7dede 10px);
	color: #b33; cursor: default; text-decoration: none;
	border-color: #f1cccc;
}
.wdz-cal__cell.is-booked .wdz-cal__num { opacity: .65; }
.wdz-cal__tag {
	position: absolute; bottom: 3px; font-size: .52rem; font-weight: 700;
	text-transform: uppercase; letter-spacing: .02em; color: #c0392b; line-height: 1;
}

.wdz-cal__cell.is-range { background: color-mix(in srgb, var(--wdz-cal-accent) 18%, #fff); }
.wdz-cal__cell.is-selected {
	background: var(--wdz-cal-primary); color: #fff; border-color: var(--wdz-cal-primary);
	font-weight: 700;
}
.wdz-cal__cell.is-selected.is-booked { background: var(--wdz-cal-primary); }

.wdz-cal__legend {
	display: flex; align-items: center; gap: 6px; margin-top: 10px;
	font-size: .76rem; color: #6b7280;
}
.wdz-cal__dot { width: 12px; height: 12px; border-radius: 3px; display: inline-block; }
.wdz-cal__dot--booked { background: repeating-linear-gradient(135deg, #fbe9e9, #fbe9e9 3px, #f7dede 3px, #f7dede 6px); border: 1px solid #f1cccc; }

.wdz-gate__calendar.is-loading { opacity: .6; pointer-events: none; }

/* Live IO availability + price line (on date select) */
.wdz-cal__live { margin-top: 10px; min-height: 20px; font-size: .86rem; }
.wdz-cal__live-checking { color: #6b7280; }
.wdz-cal__live-ok { color: #1e7e34; font-weight: 600; }
.wdz-cal__live-ok strong { color: var(--wdz-cal-primary, #0F3460); }
.wdz-cal__live-no { color: #c0392b; font-weight: 600; }

@media (max-width: 420px) {
	.wdz-cal__cell { min-height: 34px; font-size: .86rem; border-radius: 8px; }
}
