/**
 * Ficha de reserva (diseño 2026). Ver micelium-ficha-reserva.php.
 *
 * Todo va bajo .mic-ficha-reserva (tarjeta de reserva), .mic-ficha-galeria (fotos) y
 * .mic-ficha-barra (barra fija del móvil). La tarjeta solo cambia cuando el JS le pone
 * .mic-ficha-lista: si el script no carga, el formulario del motor se ve como siempre.
 *
 * Algunos selectores son largos a propósito: WooCommerce, Elementor, las variaciones y
 * PRAD traen reglas muy específicas, y PRAD y el CSS adicional del sitio (Apariencia >
 * Personalizar) usan !important en etiquetas, botones de variación y botón de enviar.
 *
 * `form.cart.cart` repite la clase a propósito: vale para productos variables y simples
 * (semanas, oficina virtual, bono de sala) con la misma especificidad que tenía
 * `form.variations_form.cart`.
 */

.mic-ficha-reserva,
.mic-ficha-galeria,
.mic-ficha-barra {
	--mic-azul: #024B94;
	--mic-azul-vivo: #0054CA;
	--mic-azul-suave: #EAF1F9;
	--mic-tinta: #1F1D1E;
	--mic-texto-2: #7E7E7E;
	--mic-gris: #F7F7F7;
	--mic-linea: #E8E6E3;
	--mic-apagado: #C4C0BA;
	--mic-aviso: #A35600;
	--mic-ui: "Rajdhani", "Arial Narrow", sans-serif;
	--mic-txt: "Roboto", system-ui, -apple-system, "Segoe UI", sans-serif;
	--mic-u: 64px;
	--mic-uh: 48px;
	--mic-gap: 8px;
	--mic-r: 14px;
}

.mic-ficha-lista [hidden] { display: none !important; }

/* =====================================================================
   Formulario
   ===================================================================== */
.mic-ficha-reserva.mic-ficha-lista form.cart.cart {
	margin: 0;
	counter-reset: mic-paso;
	font: 300 16px/1.5 var(--mic-txt);
	color: var(--mic-tinta);
}

/* Primeros pasos: horas, tipo o días (tabla de variaciones de WooCommerce) */
.mic-ficha-reserva.mic-ficha-lista form.cart.cart table.variations {
	display: block;
	width: 100%;
	margin: 0;
	border: 0;
	font-size: inherit;
}
.mic-ficha-reserva.mic-ficha-lista form.cart.cart table.variations > tbody,
.mic-ficha-reserva.mic-ficha-lista form.cart.cart table.variations > tbody > tr { display: block; }
.mic-ficha-reserva.mic-ficha-lista form.cart.cart table.variations > tbody > tr > th,
.mic-ficha-reserva.mic-ficha-lista form.cart.cart table.variations > tbody > tr > td {
	display: block;
	padding: 0;
	border: 0;
	background: none;
	line-height: 1.2;
	text-align: left;
}
.mic-ficha-reserva.mic-ficha-lista form.cart.cart table.variations th.label {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	min-height: 34px;
	margin-bottom: 10px;
	font-weight: 400;
}
.mic-ficha-reserva.mic-ficha-lista form.cart.cart table.variations th.label label,
.mic-ficha-reserva.mic-ficha-lista .mic-paso-tit,
.mic-ficha-reserva.mic-ficha-lista form.cart.cart .prad-parent .prad-block-title {
	display: inline-flex !important;
	white-space: nowrap;
	align-items: center;
	gap: 10px;
	margin: 0;
	font: 600 15px/1 var(--mic-ui);
	font-size: 15px !important;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--mic-tinta);
}
.mic-ficha-reserva.mic-ficha-lista form.cart.cart table.variations th.label label::before,
.mic-ficha-reserva.mic-ficha-lista .mic-paso-n .mic-paso-tit::before {
	counter-increment: mic-paso;
	content: counter(mic-paso);
	display: grid;
	place-items: center;
	flex: none;
	width: 24px;
	height: 24px;
	border-radius: 50%;
	background: var(--mic-azul-suave);
	font: 700 13px/1 var(--mic-ui);
	letter-spacing: 0;
	color: var(--mic-azul);
}
.mic-ficha-reserva.mic-ficha-lista .mic-paso-nota {
	font: 400 13.5px/1.3 var(--mic-txt);
	letter-spacing: 0;
	text-transform: none;
	color: var(--mic-texto-2);
	text-align: right;
}
.mic-ficha-reserva.mic-ficha-lista form.cart.cart .woo-selected-variation-item-name,
.mic-ficha-reserva.mic-ficha-lista form.cart.cart .reset_variations,
.mic-ficha-reserva.mic-ficha-lista form.cart.cart .woocommerce-variation-price,
.mic-ficha-reserva.mic-ficha-lista form.cart.cart .woocommerce-variation-availability { display: none !important; }

/* Botones de variación (Variation Swatches): se visten con sus propias variables */
.mic-ficha-reserva.mic-ficha-lista form.cart.cart .variations {
	--wvs-single-product-item-width: var(--mic-u);
	--wvs-single-product-item-height: var(--mic-uh);
	--wvs-single-product-item-font-size: 17px;
	--wvs-item-background-color: var(--mic-gris);
	--wvs-item-text-color: var(--mic-tinta);
	--wvs-item-box-shadow: none;
	--wvs-hover-item-background-color: var(--mic-azul-suave);
	--wvs-hover-item-text-color: var(--mic-azul);
	--wvs-hover-item-box-shadow: none;
	--wvs-selected-item-background-color: var(--mic-azul);
	--wvs-selected-item-text-color: #fff;
	--wvs-selected-item-box-shadow: none;
}
.mic-ficha-reserva.mic-ficha-lista form.cart.cart ul.variable-items-wrapper {
	gap: var(--mic-gap);
	margin: 0;
	padding: 0;
}
.mic-ficha-reserva.mic-ficha-lista form.cart.cart ul.variable-items-wrapper > li.variable-item.button-variable-item {
	margin: 0;
	padding: 0 !important;
	border-radius: var(--mic-r);
	font-family: var(--mic-ui);
	font-size: 17px !important;
	font-weight: 600;
	letter-spacing: .02em;
	font-variant-numeric: tabular-nums;
	white-space: nowrap;
	transition: background-color .2s, color .2s;
}
.mic-ficha-reserva.mic-ficha-lista form.cart.cart ul.variable-items-wrapper > li.variable-item .variable-item-span { padding: 0 12px; }
.mic-ficha-reserva.mic-ficha-lista form.cart.cart ul.variable-items-wrapper > li.variable-item:focus-visible {
	outline: 2px solid var(--mic-azul-vivo);
	outline-offset: 2px;
}
.mic-ficha-lista [data-wvstooltip]::before,
.mic-ficha-lista [data-wvstooltip]::after { content: none !important; display: none !important; }

/* =====================================================================
   Pasos 2 y 3: fecha y hora
   ===================================================================== */
.mic-ficha-reserva.mic-ficha-lista form.cart.cart .micelium-box { margin: 26px 0 0; padding: 0; }
.mic-ficha-reserva.mic-ficha-lista form.cart.cart .micelium-box > .micelium-field-row { display: none; }
.mic-ficha-reserva.mic-ficha-lista form.cart.cart .mic-paso + .mic-paso { margin-top: 26px; }
.mic-ficha-reserva.mic-ficha-lista form.cart.cart .mic-paso-cab {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	min-height: 34px;
	margin-bottom: 10px;
}

.mic-ficha-reserva.mic-ficha-lista form.cart.cart ul.mic-rail {
	display: flex;
	align-items: center;
	gap: var(--mic-gap);
	margin: -4px;
	padding: 4px;
	list-style: none;
	overflow-x: auto;
	overscroll-behavior-x: contain;
	scrollbar-width: none;
	-webkit-overflow-scrolling: touch;
}
.mic-ficha-reserva.mic-ficha-lista form.cart.cart ul.mic-rail::-webkit-scrollbar { display: none; }
.mic-ficha-reserva.mic-ficha-lista form.cart.cart ul.mic-rail.is-drag { cursor: grabbing; }
.mic-ficha-reserva.mic-ficha-lista form.cart.cart ul.mic-rail.fade-r { -webkit-mask-image: linear-gradient(90deg, #000 calc(100% - 40px), transparent); mask-image: linear-gradient(90deg, #000 calc(100% - 40px), transparent); }
.mic-ficha-reserva.mic-ficha-lista form.cart.cart ul.mic-rail.fade-l { -webkit-mask-image: linear-gradient(90deg, transparent, #000 40px); mask-image: linear-gradient(90deg, transparent, #000 40px); }
.mic-ficha-reserva.mic-ficha-lista form.cart.cart ul.mic-rail.fade-l.fade-r { -webkit-mask-image: linear-gradient(90deg, transparent, #000 40px, #000 calc(100% - 40px), transparent); mask-image: linear-gradient(90deg, transparent, #000 40px, #000 calc(100% - 40px), transparent); }

.mic-ficha-reserva.mic-ficha-lista form.cart.cart li.mic-chip {
	flex: 0 0 auto;
	display: grid;
	place-content: center;
	justify-items: center;
	gap: 4px;
	width: var(--mic-u);
	height: var(--mic-uh);
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: var(--mic-r);
	background: var(--mic-gris);
	color: var(--mic-tinta);
	font: 600 17px/1 var(--mic-ui);
	letter-spacing: .02em;
	font-variant-numeric: tabular-nums;
	white-space: nowrap;
	list-style: none;
	cursor: pointer;
	-webkit-user-select: none;
	user-select: none;
	transition: background-color .2s, color .2s, box-shadow .2s;
}
.mic-ficha-reserva.mic-ficha-lista form.cart.cart li.mic-chip:hover { background: var(--mic-azul-suave); color: var(--mic-azul); }
.mic-ficha-reserva.mic-ficha-lista form.cart.cart li.mic-chip[aria-checked="true"] { background: var(--mic-azul); color: #fff; }
.mic-ficha-reserva.mic-ficha-lista form.cart.cart li.mic-chip:focus-visible { outline: 2px solid var(--mic-azul-vivo); outline-offset: 2px; }
.mic-ficha-reserva.mic-ficha-lista form.cart.cart li.mic-chip[aria-disabled="true"] {
	background: transparent;
	box-shadow: inset 0 0 0 1px var(--mic-linea);
	color: var(--mic-apagado);
	text-decoration: line-through;
	cursor: not-allowed;
}
/* Mientras se consultan las horas libres no se tachan: solo se apagan */
.mic-ficha-reserva.mic-ficha-lista form.cart.cart ul.mic-rail.is-cargando li.mic-chip[aria-disabled="true"] {
	background: var(--mic-gris);
	box-shadow: none;
	text-decoration: none;
	cursor: progress;
	animation: mic-pulso 1.2s ease-in-out infinite;
}
@keyframes mic-pulso { 50% { opacity: .55; } }

.mic-ficha-reserva.mic-ficha-lista form.cart.cart li.mic-dia .dw { font: 600 11.5px/1 var(--mic-ui); letter-spacing: .1em; text-transform: uppercase; color: var(--mic-texto-2); }
.mic-ficha-reserva.mic-ficha-lista form.cart.cart li.mic-dia[aria-checked="true"] .dw { color: rgba(255, 255, 255, .75); }
.mic-ficha-reserva.mic-ficha-lista form.cart.cart li.mic-dia[aria-disabled="true"] .dw { color: inherit; }
.mic-ficha-reserva.mic-ficha-lista form.cart.cart li.mic-dia .dn { font: 700 21px/1 var(--mic-ui); }
.mic-ficha-reserva.mic-ficha-lista form.cart.cart li.mic-mes {
	flex: 0 0 auto;
	align-self: center;
	margin: 0 -1px;
	list-style: none;
	writing-mode: vertical-rl;
	transform: rotate(180deg);
	font: 600 11px/1 var(--mic-ui);
	letter-spacing: .16em;
	text-transform: uppercase;
	color: var(--mic-azul);
}

/* «Calendario» y «Ver todas» */
.mic-ficha-reserva.mic-ficha-lista form.cart.cart button.mic-accion {
	display: inline-flex;
	align-items: center;
	justify-content: flex-end;
	gap: 7px;
	min-width: 128px;
	height: 34px;
	margin: 0 -10px 0 0;
	padding: 0 12px;
	border: 0;
	border-radius: 100px;
	background: transparent;
	font: 600 14px/1 var(--mic-ui);
	letter-spacing: .08em;
	text-transform: uppercase;
	white-space: nowrap;
	color: var(--mic-azul);
	cursor: pointer;
	transition: background-color .2s;
}
.mic-ficha-reserva.mic-ficha-lista form.cart.cart button.mic-accion svg { flex: none; }
.mic-ficha-reserva.mic-ficha-lista form.cart.cart button.mic-accion:hover,
.mic-ficha-reserva.mic-ficha-lista form.cart.cart button.mic-accion[aria-expanded="true"] { background: var(--mic-azul-suave); color: var(--mic-azul); }

.mic-ficha-reserva.mic-ficha-lista form.cart.cart .mic-cal { padding: 14px; border-radius: 18px; background: var(--mic-gris); }
.mic-ficha-reserva.mic-ficha-lista form.cart.cart .mic-cal-top { display: flex; align-items: center; justify-content: space-between; margin-bottom: 10px; }
.mic-ficha-reserva.mic-ficha-lista form.cart.cart .mic-cal-titulo { font: 600 16px/1 var(--mic-ui); letter-spacing: .12em; text-transform: uppercase; color: var(--mic-tinta); }
.mic-ficha-reserva.mic-ficha-lista form.cart.cart button.mic-cal-nav {
	display: grid;
	place-items: center;
	width: 36px;
	height: 36px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: transparent;
	color: var(--mic-tinta);
	cursor: pointer;
	transition: background-color .2s, color .2s;
}
.mic-ficha-reserva.mic-ficha-lista form.cart.cart button.mic-cal-nav:hover { background: #fff; color: var(--mic-azul); }
.mic-ficha-reserva.mic-ficha-lista form.cart.cart button.mic-cal-nav:disabled { background: transparent; color: var(--mic-tinta); opacity: .25; cursor: default; }
.mic-ficha-reserva.mic-ficha-lista form.cart.cart .mic-cal-grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 4px; }
.mic-ficha-reserva.mic-ficha-lista form.cart.cart .mic-cal-wd { padding-bottom: 6px; text-align: center; font: 600 12px/1 var(--mic-ui); letter-spacing: .1em; text-transform: uppercase; color: var(--mic-texto-2); }
.mic-ficha-reserva.mic-ficha-lista form.cart.cart button.mic-cd {
	display: grid;
	place-items: center;
	width: 100%;
	height: 40px;
	padding: 0;
	border: 0;
	border-radius: 12px;
	background: transparent;
	font: 600 17px/1 var(--mic-ui);
	font-variant-numeric: tabular-nums;
	color: var(--mic-tinta);
	cursor: pointer;
	transition: background-color .2s, color .2s;
}
.mic-ficha-reserva.mic-ficha-lista form.cart.cart button.mic-cd:hover { background: #fff; color: var(--mic-azul); }
.mic-ficha-reserva.mic-ficha-lista form.cart.cart button.mic-cd.is-hoy { color: var(--mic-azul); }
.mic-ficha-reserva.mic-ficha-lista form.cart.cart button.mic-cd[aria-pressed="true"] { background: var(--mic-azul); color: #fff; }
.mic-ficha-reserva.mic-ficha-lista form.cart.cart button.mic-cd:disabled { background: transparent; color: #C9C5BF; cursor: default; }
.mic-ficha-reserva.mic-ficha-lista form.cart.cart button.mic-cd.is-cerrado { text-decoration: line-through; }
.mic-ficha-reserva.mic-ficha-lista form.cart.cart button.mic-accion:focus-visible,
.mic-ficha-reserva.mic-ficha-lista form.cart.cart button.mic-cal-nav:focus-visible,
.mic-ficha-reserva.mic-ficha-lista form.cart.cart button.mic-cd:focus-visible { outline: 2px solid var(--mic-azul-vivo); outline-offset: 2px; }
.mic-ficha-reserva.mic-ficha-lista form.cart.cart .mic-reloj-h { margin: 0 2px 8px; font: 600 12px/1 var(--mic-ui); letter-spacing: .14em; text-transform: uppercase; color: var(--mic-texto-2); }
.mic-ficha-reserva.mic-ficha-lista form.cart.cart .mic-reloj-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(60px, 1fr)); gap: 4px; }
.mic-ficha-reserva.mic-ficha-lista form.cart.cart .mic-reloj-grid + .mic-reloj-h { margin-top: 14px; }

.mic-ficha-reserva.mic-ficha-lista form.cart.cart .mic-aviso { margin: 10px 0 0; font: 400 14px/1.5 var(--mic-txt); color: var(--mic-aviso); }
.mic-ficha-reserva.mic-ficha-lista form.cart.cart .mic-aviso.is-info { color: var(--mic-texto-2); }

/* Puesto: plano de la sala (micelium-plano.css dibuja; aquí va la caja, la leyenda y el globo) */
.mic-ficha-reserva.mic-ficha-lista form.cart.cart .mic-libres { font: 400 14px/1 var(--mic-txt); color: var(--mic-texto-2); white-space: nowrap; }
.mic-ficha-reserva.mic-ficha-lista form.cart.cart .mic-libres b { font: 700 17px/1 var(--mic-ui); color: var(--mic-azul); }
.mic-ficha-reserva.mic-ficha-lista form.cart.cart .mic-libres.is-pocos b { color: var(--mic-aviso); }
.mic-ficha-reserva.mic-ficha-lista form.cart.cart .mic-mapa { position: relative; padding: 6px; border-radius: 18px; background: #fff; box-shadow: inset 0 0 0 1px var(--mic-linea); }
.mic-ficha-reserva.mic-ficha-lista form.cart.cart .mic-plano {
	--mp-azul: var(--mic-azul);
	--mp-azul-vivo: var(--mic-azul-vivo);
	--mp-azul-suave: var(--mic-azul-suave);
	--mp-suelo: var(--mic-gris);
	--mp-ui: var(--mic-ui);
	max-width: 100%;
}
.mic-ficha-reserva.mic-ficha-lista form.cart.cart ul.mic-leyenda { display: flex; flex-wrap: wrap; gap: 6px 18px; margin: 12px 0 0; padding: 0; list-style: none; font: 400 13.5px/1.2 var(--mic-txt); color: var(--mic-texto-2); }
.mic-ficha-reserva.mic-ficha-lista form.cart.cart ul.mic-leyenda li { display: flex; align-items: center; gap: 7px; margin: 0; padding: 0; }
.mic-ficha-reserva.mic-ficha-lista form.cart.cart ul.mic-leyenda i { width: 11px; height: 11px; border-radius: 50%; }
.mic-ficha-reserva.mic-ficha-lista form.cart.cart ul.mic-leyenda .l-libre { background: #fff; box-shadow: inset 0 0 0 1.5px var(--mic-azul); }
.mic-ficha-reserva.mic-ficha-lista form.cart.cart ul.mic-leyenda .l-ocupado { background: #E6E3DF; }
.mic-ficha-reserva.mic-ficha-lista form.cart.cart ul.mic-leyenda .l-tuyo { background: var(--mic-azul); }
.mic-ficha-reserva.mic-ficha-lista form.cart.cart .mic-tip {
	position: absolute;
	z-index: 6;
	width: max-content;
	max-width: 230px;
	padding: 10px 13px;
	border-radius: 14px;
	background: #2A2829;
	box-shadow: 0 14px 30px -14px rgba(0, 0, 0, .5);
	font: 300 13px/1.5 var(--mic-txt);
	color: rgba(255, 255, 255, .84);
	pointer-events: none;
}
.mic-ficha-reserva.mic-ficha-lista form.cart.cart .mic-tip b { font: 600 15px/1.2 var(--mic-ui); letter-spacing: .04em; color: #fff; }
.mic-ficha-reserva.mic-ficha-lista form.cart.cart .mic-tip span { color: rgba(255, 255, 255, .58); }

.mic-ficha-reserva.mic-ficha-lista form.cart.cart .mic-entra { animation: mic-entra .3s ease-out; }
@keyframes mic-entra { from { opacity: 0; transform: translateY(-6px); } to { opacity: 1; transform: none; } }

/* =====================================================================
   Extra (PRAD): el monitor es un extra más, no depende de ningún puesto
   ===================================================================== */
.mic-ficha-reserva.mic-ficha-lista form.cart.cart .prad-addons-wrapper { margin-top: 26px; }
.mic-ficha-reserva.mic-ficha-lista form.cart.cart .prad-blocks-container { margin: 0 !important; }
.mic-ficha-reserva.mic-ficha-lista form.cart.cart .prad-parent > .prad-flex-column {
	justify-content: center;
	min-height: 34px;
	margin-bottom: 10px !important;
}
.mic-ficha-reserva.mic-ficha-lista form.cart.cart .prad-button-container { position: relative; }
/* PRAD esconde el botón de radio con visibility: sin esto no se llega con el teclado */
.mic-ficha-reserva.mic-ficha-lista form.cart.cart .prad-button-container input.prad-input-hidden {
	visibility: visible !important;
	width: 1px;
	height: 1px;
	margin: 0;
	clip-path: inset(50%);
}
.mic-ficha-reserva.mic-ficha-lista form.cart.cart .prad-button-item {
	display: grid;
	place-content: center;
	justify-items: center;
	gap: 4px;
	width: calc(var(--mic-u) * 2 + var(--mic-gap));
	min-height: var(--mic-uh);
	padding: 6px 12px !important;
	border: 0 !important;
	border-radius: var(--mic-r) !important;
	background-color: var(--mic-gris) !important;
	font: 600 16px/1 var(--mic-ui);
	letter-spacing: .02em;
	color: var(--mic-tinta);
	cursor: pointer;
	transition: background-color .2s, color .2s;
}
.mic-ficha-reserva.mic-ficha-lista form.cart.cart .prad-button-item .prad-ellipsis-2 { font: inherit; color: inherit; text-align: center; }
.mic-ficha-reserva.mic-ficha-lista form.cart.cart .prad-button-item .prad-block-price,
.mic-ficha-reserva.mic-ficha-lista form.cart.cart .prad-button-item .prad-block-price * {
	font: 600 12.5px/1 var(--mic-ui);
	letter-spacing: .04em;
	text-transform: none;
	color: var(--mic-texto-2);
}
.mic-ficha-reserva.mic-ficha-lista form.cart.cart .prad-button-item:hover { background-color: var(--mic-azul-suave) !important; color: var(--mic-azul); }
.mic-ficha-reserva.mic-ficha-lista form.cart.cart .prad-button-item:hover .prad-block-price,
.mic-ficha-reserva.mic-ficha-lista form.cart.cart .prad-button-item:hover .prad-block-price * { color: var(--mic-azul); }
.mic-ficha-reserva.mic-ficha-lista form.cart.cart .prad-input-hidden:checked + label .prad-button-item,
.mic-ficha-reserva.mic-ficha-lista form.cart.cart .prad-button-container.prad-active .prad-button-item { background-color: var(--mic-azul) !important; color: #fff; }
.mic-ficha-reserva.mic-ficha-lista form.cart.cart .prad-input-hidden:checked + label .prad-button-item .prad-block-price,
.mic-ficha-reserva.mic-ficha-lista form.cart.cart .prad-input-hidden:checked + label .prad-button-item .prad-block-price *,
.mic-ficha-reserva.mic-ficha-lista form.cart.cart .prad-button-container.prad-active .prad-button-item .prad-block-price,
.mic-ficha-reserva.mic-ficha-lista form.cart.cart .prad-button-container.prad-active .prad-button-item .prad-block-price * { color: rgba(255, 255, 255, .75); }
.mic-ficha-reserva.mic-ficha-lista form.cart.cart .prad-input-hidden:focus-visible + label .prad-button-item { outline: 2px solid var(--mic-azul-vivo); outline-offset: 2px; }

/* =====================================================================
   Resumen, total y botón
   ===================================================================== */
.mic-ficha-reserva.mic-ficha-lista form.cart.cart .mic-cierre {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	gap: 8px 20px;
	align-items: end;
	margin-top: 26px;
	padding-top: 20px;
	border-top: 1px solid var(--mic-linea);
}
.mic-ficha-reserva.mic-ficha-lista form.cart.cart p.mic-sum { margin: 0; font: 400 15.5px/1.45 var(--mic-txt); color: var(--mic-tinta); }
.mic-ficha-reserva.mic-ficha-lista form.cart.cart p.mic-sum b { font-weight: 500; }
.mic-ficha-reserva.mic-ficha-lista form.cart.cart p.mic-sum.is-hint { color: var(--mic-texto-2); }
.mic-ficha-reserva.mic-ficha-lista form.cart.cart p.mic-sum.is-falta { color: var(--mic-aviso); }
.mic-ficha-reserva.mic-ficha-lista form.cart.cart .mic-k { display: block; margin-bottom: 6px; font: 600 13px/1 var(--mic-ui); letter-spacing: .14em; text-transform: uppercase; color: var(--mic-texto-2); }
.mic-ficha-reserva.mic-ficha-lista form.cart.cart p.mic-total { display: grid; justify-items: end; margin: 0; text-align: right; }
.mic-ficha-reserva.mic-ficha-lista form.cart.cart p.mic-total b { font: 700 25px/1 var(--mic-ui); font-variant-numeric: tabular-nums; white-space: nowrap; color: var(--mic-tinta); }
.mic-ficha-reserva.mic-ficha-lista form.cart.cart p.mic-total .mic-iva { margin-top: 4px; font: 600 14px/1 var(--mic-ui); color: var(--mic-texto-2); }

.mic-ficha-reserva.mic-ficha-lista form.cart.cart .e-atc-qty-button-holder { margin-top: 18px; }
.mic-ficha-reserva.mic-ficha-lista form.cart.cart .e-atc-qty-button-holder .quantity { display: none !important; }
.mic-ficha-reserva.mic-ficha-lista form.cart.cart .e-atc-qty-button-holder button.single_add_to_cart_button.button.alt {
	flex: 1 1 100%;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	width: 100%;
	height: var(--mic-uh);
	margin: 0;
	padding: 0 26px;
	float: none;
	border: 0;
	border-radius: 100px;
	background: var(--mic-azul);
	box-shadow: none;
	font: 600 17px/1 var(--mic-ui);
	line-height: 1 !important;
	letter-spacing: .07em;
	text-transform: uppercase;
	white-space: nowrap;
	color: #fff;
	cursor: pointer;
	transition: background-color .2s, transform .2s, box-shadow .2s, opacity .2s;
}
.mic-ficha-reserva.mic-ficha-lista form.cart.cart .e-atc-qty-button-holder button.single_add_to_cart_button.button.alt::before {
	content: "";
	flex: none;
	width: 20px;
	height: 20px;
	background: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='9' cy='20' r='1.4'/%3E%3Ccircle cx='18' cy='20' r='1.4'/%3E%3Cpath d='M2 3h3l2.7 12.2a2 2 0 0 0 2 1.6h8.6a2 2 0 0 0 2-1.5L22 7H6'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='9' cy='20' r='1.4'/%3E%3Ccircle cx='18' cy='20' r='1.4'/%3E%3Cpath d='M2 3h3l2.7 12.2a2 2 0 0 0 2 1.6h8.6a2 2 0 0 0 2-1.5L22 7H6'/%3E%3C/svg%3E") center / contain no-repeat;
}
.mic-ficha-reserva.mic-ficha-lista form.cart.cart .e-atc-qty-button-holder button.single_add_to_cart_button.button.alt:hover {
	background: var(--mic-azul-vivo);
	color: #fff;
	transform: translateY(-1px);
	box-shadow: 0 14px 26px -14px rgba(2, 75, 148, .7);
}
.mic-ficha-reserva.mic-ficha-lista form.cart.cart .e-atc-qty-button-holder button.single_add_to_cart_button.button.alt:focus-visible { outline: 2px solid var(--mic-azul-vivo); outline-offset: 3px; }
/* Sin fecha u hora: se puede pulsar (explica qué falta), pero se ve que aún no está */
.mic-ficha-reserva.mic-ficha-lista form.cart.cart .e-atc-qty-button-holder button.single_add_to_cart_button.button.alt.mic-incompleto { opacity: .5; }
.mic-ficha-reserva.mic-ficha-lista form.cart.cart .e-atc-qty-button-holder button.single_add_to_cart_button.button.alt.mic-incompleto:hover { background: var(--mic-azul); transform: none; box-shadow: none; }
.mic-ficha-reserva.mic-ficha-lista form.cart.cart .wc-stripe-product-checkout-container { margin-top: 12px; }

/* =====================================================================
   Galería (fotos del producto de WooCommerce)
   ===================================================================== */
body .mic-ficha-galeria div.woocommerce-product-gallery.images { margin: 0; }
body .mic-ficha-galeria div.woocommerce-product-gallery.images .flex-viewport { position: relative; margin-bottom: 12px !important; }
body .mic-ficha-galeria div.woocommerce-product-gallery.images .woocommerce-product-gallery__image img:not(.zoomImg) {
	width: 100%;
	height: auto;
	aspect-ratio: 3 / 2;
	object-fit: cover;
}
body .mic-ficha-galeria div.woocommerce-product-gallery.images ol.flex-control-thumbs {
	display: flex;
	flex-wrap: nowrap;
	overflow: visible;
	padding-top: 4px;
}
body .mic-ficha-galeria div.woocommerce-product-gallery.images ol.flex-control-thumbs > li {
	flex: 1 1 0;
	min-width: 0;
	width: auto;
	float: none;
}
body .mic-ficha-galeria div.woocommerce-product-gallery.images ol.flex-control-thumbs > li > img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 3 / 2;
	object-fit: cover;
	opacity: .5;
	transition: opacity .2s;
}
body .mic-ficha-galeria div.woocommerce-product-gallery.images ol.flex-control-thumbs > li > img:hover { opacity: .85; }
body .mic-ficha-galeria div.woocommerce-product-gallery.images ol.flex-control-thumbs > li > img.flex-active { opacity: 1; outline: 2px solid var(--mic-azul); outline-offset: 2px; }

.mic-ficha-galeria button.mic-gal-flecha {
	position: absolute;
	top: 50%;
	z-index: 2;
	display: grid;
	place-items: center;
	width: 46px;
	height: 46px;
	margin-top: -23px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: rgba(255, 255, 255, .92);
	box-shadow: 0 10px 24px -12px rgba(3, 24, 56, .45);
	color: var(--mic-tinta);
	cursor: pointer;
	opacity: 0;
	transition: opacity .2s, background-color .2s, color .2s;
}
.mic-ficha-galeria button.mic-gal-prev { left: 16px; }
.mic-ficha-galeria button.mic-gal-next { right: 16px; }
.mic-ficha-galeria .flex-viewport:hover button.mic-gal-flecha,
.mic-ficha-galeria button.mic-gal-flecha:focus-visible { opacity: 1; }
.mic-ficha-galeria button.mic-gal-flecha:hover { background: #fff; color: var(--mic-azul); }
.mic-ficha-galeria button.mic-gal-flecha:focus-visible { outline: 2px solid var(--mic-azul-vivo); outline-offset: 2px; }
@media (hover: none) {
	.mic-ficha-galeria button.mic-gal-flecha { display: none; }
}

/* Barra fija del móvil: se aparta mientras la reserva está a la vista */
.elementor .mic-ficha-barra { transition: transform .3s, opacity .3s; }
.elementor .mic-ficha-barra.mic-fuera { transform: translateY(110%); opacity: 0; pointer-events: none; }

/* =====================================================================
   Móvil
   ===================================================================== */
/* Tarjeta estrecha (móvil, o una columna estrecha): títulos más cortos y sin nota */
.mic-ficha-reserva { container: mic-ficha / inline-size; }
@container mic-ficha (max-width: 420px) {
	.mic-ficha-reserva.mic-ficha-lista .mic-paso-nota { display: none; }
	.mic-ficha-reserva.mic-ficha-lista form.cart.cart table.variations th.label label,
	.mic-ficha-reserva.mic-ficha-lista .mic-paso-tit,
	.mic-ficha-reserva.mic-ficha-lista form.cart.cart .prad-parent .prad-block-title { font-size: 14px !important; letter-spacing: .08em; }
	.mic-ficha-reserva.mic-ficha-lista form.cart.cart button.mic-accion { min-width: 0; gap: 6px; margin-right: -8px; padding: 0 8px; font-size: 13px; letter-spacing: .06em; }
	.mic-ficha-reserva.mic-ficha-lista form.cart.cart button.mic-accion svg { width: 16px; height: 16px; }
}

@media (max-width: 767px) {

	/* Galería: foto 4:3 y rayas en lugar de miniaturas */
	body .mic-ficha-galeria div.woocommerce-product-gallery.images .flex-viewport { margin-bottom: 0 !important; }
	body .mic-ficha-galeria div.woocommerce-product-gallery.images .woocommerce-product-gallery__image img:not(.zoomImg) { aspect-ratio: 4 / 3; }
	body .mic-ficha-galeria div.woocommerce-product-gallery.images .flex-viewport::after {
		content: "";
		position: absolute;
		left: 0;
		right: 0;
		bottom: 0;
		height: 64px;
		background: linear-gradient(rgba(0, 0, 0, 0), rgba(0, 0, 0, .32));
		pointer-events: none;
	}
	body .mic-ficha-galeria div.woocommerce-product-gallery.images ol.flex-control-thumbs {
		position: absolute;
		left: 16px;
		right: 16px;
		bottom: 8px;
		z-index: 2;
		gap: 6px;
		margin: 0 !important;
		padding: 0 !important;
	}
	body .mic-ficha-galeria div.woocommerce-product-gallery.images ol.flex-control-thumbs > li {
		position: relative;
		height: 22px;
		padding: 0 !important;
	}
	body .mic-ficha-galeria div.woocommerce-product-gallery.images ol.flex-control-thumbs > li::before {
		content: "";
		position: absolute;
		left: 0;
		right: 0;
		top: 50%;
		height: 3px;
		margin-top: -1.5px;
		border-radius: 3px;
		background: rgba(255, 255, 255, .5);
		pointer-events: none;
		transition: background-color .25s;
	}
	body .mic-ficha-galeria div.woocommerce-product-gallery.images ol.flex-control-thumbs > li:has(img.flex-active)::before { background: #fff; }
	body .mic-ficha-galeria div.woocommerce-product-gallery.images ol.flex-control-thumbs > li > img,
	body .mic-ficha-galeria div.woocommerce-product-gallery.images ol.flex-control-thumbs > li > img.flex-active,
	body .mic-ficha-galeria div.woocommerce-product-gallery.images ol.flex-control-thumbs > li > img:hover {
		position: absolute;
		inset: 0;
		height: 100%;
		aspect-ratio: auto;
		outline: 0;
		opacity: 0;
	}
}

@media (prefers-reduced-motion: reduce) {
	.mic-ficha-reserva *,
	.mic-ficha-galeria *,
	.elementor .mic-ficha-barra { transition: none !important; animation: none !important; }
}
