/**
 * LGM Bookings — front-end calendar widget styling.
 * Inherits the shared .lgm-ae-* controls + design tokens from Core frontend.css.
 * Uses logical properties for RTL.
 */
.lgm-ae-bookings {
	margin: 22px 0;
}

.lgm-ae-bk-title {
	margin: 0 0 4px;
	font-size: 1.2rem;
	color: var( --lgm-ae-green-deep );
}
.lgm-ae-bk-title__price {
	font-weight: 800;
	color: var( --lgm-ae-gold-ink );
}
.lgm-ae-bk-desc {
	margin: 0 0 16px;
	color: var( --lgm-ae-slate );
	font-size: 0.95rem;
}
.lgm-ae-bk-desc:empty {
	display: none;
}

/* Two-column layout: picker (left) + form (right) ------------------------ */
.lgm-ae-bk-layout {
	display: grid;
	grid-template-columns: minmax( 300px, 400px ) minmax( 320px, 1fr );
	gap: 20px;
	align-items: start;
}
.lgm-ae-bk-layout.is-single {
	grid-template-columns: minmax( 0, 520px );
}
@media ( max-width: 860px ) {
	.lgm-ae-bk-layout,
	.lgm-ae-bk-layout.is-single {
		grid-template-columns: 1fr;
	}
}
.lgm-ae-bk-forms {
	min-width: 0;
}
.lgm-ae-bk-layout .lgm-ae-bk-form {
	max-width: none;
	margin-top: 0;
}
.lgm-ae-bk-layout [data-back] {
	display: none;
}
.lgm-ae-bk-form__chosen.is-empty {
	color: var( --lgm-ae-muted );
	font-weight: 600;
	font-style: italic;
}

/* Calendar --------------------------------------------------------------- */
.lgm-ae-cal {
	margin-top: 8px;
}
.lgm-ae-cal__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	margin-bottom: 10px;
}
.lgm-ae-cal__title {
	font-weight: 800;
	font-size: 1.02rem;
	color: var( --lgm-ae-navy );
}
.lgm-ae-cal__nav {
	width: 32px;
	height: 32px;
	border: 1px solid var( --lgm-ae-line );
	border-radius: 8px;
	background: var( --lgm-ae-surface );
	color: var( --lgm-ae-green );
	font-size: 1.15rem;
	line-height: 1;
	cursor: pointer;
	transition: background 0.15s, opacity 0.15s;
}
.lgm-ae-cal__nav:hover {
	background: rgba( 15, 93, 58, 0.07 );
}
.lgm-ae-cal__nav:disabled {
	opacity: 0.35;
	cursor: default;
}

.lgm-ae-cal__grid {
	display: grid;
	grid-template-columns: repeat( 7, 1fr );
	gap: 3px;
}
.lgm-ae-cal__dow {
	text-align: center;
	font-size: 0.72rem;
	font-weight: 700;
	letter-spacing: 0.03em;
	text-transform: uppercase;
	color: var( --lgm-ae-muted );
	padding: 4px 0;
}
.lgm-ae-cal__pad {
	aspect-ratio: 1;
}
.lgm-ae-cal__day {
	aspect-ratio: 1;
	display: flex;
	align-items: center;
	justify-content: center;
	border: 1px solid var( --lgm-ae-line );
	border-radius: 7px;
	background: var( --lgm-ae-surface );
	color: var( --lgm-ae-navy );
	font-size: 0.82rem;
	font-weight: 600;
	cursor: pointer;
	transition: background 0.15s, border-color 0.15s, color 0.15s;
}
.lgm-ae-cal__day:hover {
	border-color: var( --lgm-ae-green );
	background: rgba( 15, 93, 58, 0.07 );
}
.lgm-ae-cal__day.is-closed {
	color: var( --lgm-ae-muted );
	background: var( --lgm-ae-surface-alt );
	border-color: transparent;
	opacity: 0.5;
	cursor: default;
}
.lgm-ae-cal__day.is-special {
	position: relative;
	border-color: var( --lgm-ae-gold-ink );
}
.lgm-ae-cal__day.is-special::after {
	content: "";
	position: absolute;
	top: 4px;
	inset-inline-end: 4px;
	width: 5px;
	height: 5px;
	border-radius: 50%;
	background: var( --lgm-ae-gold-ink );
}
.lgm-ae-cal__day.is-selected {
	background: var( --lgm-ae-green );
	border-color: var( --lgm-ae-green );
	color: var( --lgm-fg-on-green, #fff );
}
.lgm-ae-cal__day.is-selected.is-special::after {
	background: var( --lgm-fg-on-green, #fff );
}

/* Slots ------------------------------------------------------------------ */
.lgm-ae-bk-slots {
	margin-top: 18px;
}
.lgm-ae-bk-slots__hint {
	color: var( --lgm-ae-muted );
	font-size: 0.92rem;
	margin: 0;
}
.lgm-ae-bk-slots__grid {
	display: grid;
	grid-template-columns: repeat( auto-fill, minmax( 108px, 1fr ) );
	gap: 8px;
}
.lgm-ae-bk-slots__grid.is-allday {
	grid-template-columns: 1fr;
}
.lgm-ae-bk-slot {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 2px;
	padding: 11px 10px;
	border: 1.5px solid var( --lgm-ae-line );
	border-radius: 10px;
	background: var( --lgm-ae-surface );
	color: var( --lgm-ae-navy );
	font-family: inherit;
	cursor: pointer;
	transition: background 0.15s, border-color 0.15s;
}
.lgm-ae-bk-slot:hover {
	border-color: var( --lgm-ae-green );
	background: rgba( 15, 93, 58, 0.06 );
}
.lgm-ae-bk-slot.is-selected {
	border-color: var( --lgm-ae-green );
	background: rgba( 15, 93, 58, 0.1 );
}
.lgm-ae-bk-slot:disabled {
	opacity: 0.5;
	cursor: default;
	background: var( --lgm-ae-surface-alt );
}
.lgm-ae-bk-slot__time {
	font-weight: 700;
	font-size: 0.95rem;
}
.lgm-ae-bk-slot__left {
	font-size: 0.72rem;
	font-weight: 700;
	color: var( --lgm-ae-gold-ink );
}
.lgm-ae-bk-slot__left.is-full {
	color: var( --lgm-ae-danger );
}

/* Form ------------------------------------------------------------------- */
.lgm-ae-bk-form {
	max-width: 480px;
	margin-top: 4px;
}
.lgm-ae-bk-form__title {
	margin: 0 0 4px;
	font-size: 1.15rem;
	color: var( --lgm-ae-green-deep );
}
.lgm-ae-bk-form__chosen {
	margin: 0 0 16px;
	font-weight: 700;
	color: var( --lgm-ae-gold-ink );
	font-size: 0.95rem;
}
.lgm-ae-bk-form__chosen:empty {
	display: none;
}
.lgm-ae-bk-form__actions {
	display: flex;
	gap: 10px;
	margin-top: 8px;
}
.lgm-ae-bk-form__actions .lgm-ae-btn {
	flex: 1 1 auto;
}

.lgm-ae-hp {
	position: absolute;
	left: -9999px;
	top: -9999px;
	height: 0;
	overflow: hidden;
}

/* Success ---------------------------------------------------------------- */
.lgm-ae-bk-success {
	text-align: center;
	margin-top: 16px;
}
.lgm-ae-bk-success__tick {
	width: 46px;
	height: 46px;
	margin: 0 auto 10px;
	border-radius: 50%;
	background: var( --lgm-ae-green );
	color: var( --lgm-fg-on-green, #fff );
	font-size: 24px;
	line-height: 46px;
}
