/*
 * Visitas a la fábrica: bloque de reserva en la ficha de producto.
 * Mismo lenguaje que el alquiler de grifos: panel oscuro para el tema Brewski,
 * colores explícitos (sin heredar del tema) y acento ámbar.
 */

.lasalve-visita-reserva {
	--lvf-bg: #17130f;
	--lvf-panel: #211b15;
	--lvf-panel-2: #2a221a;
	--lvf-border: #3a3128;
	--lvf-text: #f4efe8;
	--lvf-muted: #b7ab9b;
	--lvf-accent: #e8912a;
	--lvf-accent-soft: rgba(232, 145, 42, 0.14);
	--lvf-ok: #7bd88f;
	--lvf-error: #ff8a7a;

	box-sizing: border-box;
	width: 100%;
	max-width: 520px;
	margin: 1.25em 0 1.25em;
	padding: 1.5rem;
	background: var(--lvf-bg);
	border: 1px solid var(--lvf-border);
	border-radius: 14px;
	color: var(--lvf-text);
	font-size: 15px;
	line-height: 1.5;
}

.lasalve-visita-reserva *,
.lasalve-visita-reserva *::before,
.lasalve-visita-reserva *::after {
	box-sizing: border-box;
}

form.cart {
	flex-wrap: wrap;
}

form.cart .lasalve-visita-reserva {
	flex: 0 0 100%;
}

/* Encabezado */
.lasalve-visita-reserva .lvf-header {
	display: flex;
	align-items: center;
	gap: 0.6rem;
	margin-bottom: 1.1rem;
}

.lasalve-visita-reserva .lvf-ico {
	flex: 0 0 auto;
	width: 38px;
	height: 38px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border-radius: 10px;
	background: var(--lvf-accent-soft);
	color: var(--lvf-accent);
}

.lasalve-visita-reserva .lvf-ico svg {
	width: 20px;
	height: 20px;
	display: block;
}

.lasalve-visita-reserva .lvf-title {
	margin: 0;
	padding: 0;
	color: var(--lvf-text) !important;
	font-size: 1.05rem;
	font-weight: 700;
	line-height: 1.2;
}

.lasalve-visita-reserva .lvf-sub {
	margin: 0.15rem 0 0;
	padding: 0;
	color: var(--lvf-muted) !important;
	font-size: 0.85rem;
}

/* Calendario en linea. flatpickr cuelga de un input propio que no debe verse. */
.lasalve-visita-reserva .lvf-cal > input {
	display: none !important;
}

/* Calendario en linea */
.lasalve-visita-reserva .lvf-cal .flatpickr-calendar.inline {
	width: 100%;
	max-width: 100%;
	margin: 0;
	top: 0;
	background: var(--lvf-panel);
	border: 1px solid var(--lvf-border);
	border-radius: 12px;
	box-shadow: none;
	color: var(--lvf-text);
}

.lasalve-visita-reserva .lvf-cal .flatpickr-innerContainer,
.lasalve-visita-reserva .lvf-cal .flatpickr-rContainer,
.lasalve-visita-reserva .lvf-cal .flatpickr-days,
.lasalve-visita-reserva .lvf-cal .dayContainer {
	width: 100%;
	min-width: 0;
	max-width: 100%;
}

.lasalve-visita-reserva .lvf-cal .flatpickr-day {
	max-width: none;
	flex-basis: 14.2857%;
	height: 42px;
	line-height: 42px;
	color: #6b6155;
	border-radius: 10px;
}

.lasalve-visita-reserva .lvf-cal .flatpickr-months .flatpickr-month,
.lasalve-visita-reserva .lvf-cal .flatpickr-weekday,
.lasalve-visita-reserva .lvf-cal .flatpickr-current-month input.cur-year,
.lasalve-visita-reserva .lvf-cal .flatpickr-current-month .cur-month {
	color: var(--lvf-text);
	fill: var(--lvf-text);
	background: transparent;
}

.lasalve-visita-reserva .lvf-cal .flatpickr-weekday {
	color: var(--lvf-muted);
}

.lasalve-visita-reserva .lvf-cal .flatpickr-prev-month,
.lasalve-visita-reserva .lvf-cal .flatpickr-next-month {
	color: var(--lvf-accent);
	fill: var(--lvf-accent);
	font-size: 1.4rem;
	line-height: 1;
}

.lasalve-visita-reserva .lvf-cal .flatpickr-prev-month.flatpickr-disabled,
.lasalve-visita-reserva .lvf-cal .flatpickr-next-month.flatpickr-disabled {
	display: block;
	opacity: 0.25;
}

.lasalve-visita-reserva .lvf-cal .flatpickr-day.lvf-disponible {
	position: relative;
	color: var(--lvf-text);
	font-weight: 600;
}

.lasalve-visita-reserva .lvf-cal .flatpickr-day.lvf-disponible::after {
	content: "";
	position: absolute;
	left: 50%;
	bottom: 5px;
	width: 5px;
	height: 5px;
	margin-left: -2.5px;
	border-radius: 50%;
	background: var(--lvf-ok);
}

.lasalve-visita-reserva .lvf-cal .flatpickr-day.lvf-disponible:hover,
.lasalve-visita-reserva .lvf-cal .flatpickr-day.lvf-disponible:focus {
	background: var(--lvf-panel-2);
	border-color: var(--lvf-accent);
}

.lasalve-visita-reserva .lvf-cal .flatpickr-day.selected,
.lasalve-visita-reserva .lvf-cal .flatpickr-day.selected:hover {
	background: var(--lvf-accent);
	border-color: var(--lvf-accent);
	color: var(--lvf-bg);
}

.lasalve-visita-reserva .lvf-cal .flatpickr-day.selected::after {
	background: var(--lvf-bg);
}

.lasalve-visita-reserva .lvf-cal .flatpickr-day.lvf-lleno,
.lasalve-visita-reserva .lvf-cal .flatpickr-day.lvf-lleno:hover {
	color: var(--lvf-error) !important;
	background: rgba(255, 138, 122, 0.1);
	text-decoration: line-through;
	cursor: not-allowed;
}

.lasalve-visita-reserva .lvf-cal .flatpickr-day.flatpickr-disabled:not(.lvf-lleno),
.lasalve-visita-reserva .lvf-cal .flatpickr-day.prevMonthDay,
.lasalve-visita-reserva .lvf-cal .flatpickr-day.nextMonthDay {
	color: #4d453b;
	background: transparent;
}

.lasalve-visita-reserva .lvf-cal .flatpickr-day.today {
	border-color: var(--lvf-border);
}

.lasalve-visita-reserva .lvf-leyenda {
	display: flex;
	gap: 1.1rem;
	justify-content: center;
	padding: 8px 10px 10px;
	border-top: 1px solid var(--lvf-border);
	font-size: 0.78rem;
	color: var(--lvf-muted);
}

.lasalve-visita-reserva .lvf-leyenda span {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
}

.lasalve-visita-reserva .lvf-dot {
	display: inline-block;
	width: 9px;
	height: 9px;
	border-radius: 50%;
}

.lasalve-visita-reserva .lvf-dot-libre {
	background: var(--lvf-ok);
}

.lasalve-visita-reserva .lvf-dot-lleno {
	background: var(--lvf-error);
}

/* Horas del dia elegido */
.lasalve-visita-reserva .lvf-horas-titulo {
	margin: 1rem 0 0.5rem;
	color: var(--lvf-muted) !important;
	font-size: 0.8rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.04em;
}

.lasalve-visita-reserva .lvf-horas-lista {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(130px, 1fr));
	gap: 0.6rem;
}

.lasalve-visita-reserva button.lvf-hora {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 2px;
	margin: 0;
	padding: 0.65rem 0.85rem;
	background: var(--lvf-panel) !important;
	border: 1px solid var(--lvf-border) !important;
	border-radius: 10px !important;
	color: var(--lvf-text) !important;
	text-align: left;
	text-transform: none !important;
	letter-spacing: 0 !important;
	line-height: 1.25 !important;
	cursor: pointer;
	transition: border-color 0.15s ease, background 0.15s ease;
}

.lasalve-visita-reserva button.lvf-hora strong {
	font-size: 1.05rem;
	font-weight: 700;
	color: inherit;
}

.lasalve-visita-reserva button.lvf-hora span {
	font-size: 0.78rem;
	color: var(--lvf-muted);
}

.lasalve-visita-reserva button.lvf-hora:hover,
.lasalve-visita-reserva button.lvf-hora:focus-visible {
	border-color: var(--lvf-accent) !important;
	outline: none;
}

.lasalve-visita-reserva button.lvf-hora[aria-pressed="true"] {
	background: var(--lvf-accent) !important;
	border-color: var(--lvf-accent) !important;
	color: var(--lvf-bg) !important;
}

.lasalve-visita-reserva button.lvf-hora[aria-pressed="true"] span {
	color: var(--lvf-bg);
}

.lasalve-visita-reserva button.lvf-hora:disabled {
	opacity: 0.45;
	cursor: not-allowed;
	text-decoration: line-through;
}

/* Resumen y mensajes */
.lasalve-visita-reserva .lvf-resumen {
	margin-top: 0.9rem;
	min-height: 1.2em;
	font-size: 0.92rem;
	color: var(--lvf-muted);
}

.lasalve-visita-reserva .lvf-resumen:empty {
	display: none;
}

.lasalve-visita-reserva .lvf-resumen.is-ok {
	display: flex;
	flex-direction: column;
	gap: 0.2rem;
	padding: 0.9rem 1rem;
	background: var(--lvf-accent-soft);
	border: 1px solid rgba(232, 145, 42, 0.35);
	border-radius: 10px;
	color: var(--lvf-text);
}

.lasalve-visita-reserva .lvf-res-fecha {
	color: var(--lvf-text);
	font-weight: 600;
}

.lasalve-visita-reserva .lvf-res-total {
	color: var(--lvf-accent);
	font-weight: 700;
	font-size: 1.05rem;
}

.lasalve-visita-reserva .lvf-res-aviso {
	color: var(--lvf-error);
	font-size: 0.85rem;
}

.lasalve-visita-reserva .lvf-resumen.is-error {
	padding: 0.7rem 0.85rem;
	background: rgba(255, 138, 122, 0.1);
	border: 1px solid rgba(255, 138, 122, 0.35);
	border-radius: 10px;
	color: var(--lvf-error) !important;
	font-weight: 500;
}

/* Cantidad = personas */
form.cart .lvf-personas-label {
	flex: 0 0 100%;
	display: block;
	margin: 0 0 0.35rem;
	color: #b7ab9b;
	font-size: 0.8rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.04em;
}

.lvf-por-persona {
	font-size: 0.6em;
	font-weight: 500;
	opacity: 0.7;
	text-transform: uppercase;
	letter-spacing: 0.03em;
}

.single_add_to_cart_button.disabled,
.single_add_to_cart_button[aria-disabled="true"] {
	opacity: 0.45;
	cursor: not-allowed;
}

@media (max-width: 480px) {
	.lasalve-visita-reserva {
		padding: 1.1rem;
	}

	.lasalve-visita-reserva .lvf-cal .flatpickr-day {
		height: 38px;
		line-height: 38px;
	}
}
