/* MH Calendario de Precios por Temporada — v2.3.0 · Autor: Antonio García Carreño
   Los colores principales se eligen en WooCommerce → Calendario y temporadas → Integración.
   También se pueden sobrescribir estas variables desde Oxygen (Manage → Stylesheets). */
.mhcal {
	--mh-bg: #f4f4f2;          /* gris suave del calendario */
	--mh-cell: #ffffff;        /* días abiertos */
	--mh-line: #e6e4df;
	--mh-ink: #2a2522;
	--mh-muted: #85807a;
	--mh-accent: #a6191b;
	--mh-sel: #4f0c0e;
	--mh-alta: #c0392b;
	--mh-media: #c58a0e;
	--mh-baja: #3d8a56;
	--mh-alta-bg: #fde4e0;     /* pastel por temporada (fondo del día) */
	--mh-media-bg: #fdf0c9;
	--mh-baja-bg: #dff2e5;
	--mh-radius: 10px;
	font-family: inherit;
	color: var(--mh-ink);
	background: var(--mh-bg);
	border: 1px solid var(--mh-line);
	border-radius: 16px;
	padding: 20px;
	width: 100%;
	max-width: 540px;
	margin: 0 auto;            /* centrado en la pantalla */
	box-sizing: border-box;
	line-height: 1.3;
	position: relative;
	isolation: isolate;        /* nada del calendario se pinta por encima de la cabecera del tema */
	overflow: hidden;          /* nunca provoca scroll horizontal */
}
.mhcal.mhcal-multi { max-width: 1000px; padding: 24px 28px; }
.mhcal *, .mhcal *::before, .mhcal *::after { box-sizing: border-box; }

.mhcal .mhcal-head { margin-bottom: 12px; }
.mhcal .mhcal-title { font-size: 1.35em; font-weight: 700; line-height: 1.2; }
.mhcal .mhcal-sub { color: var(--mh-muted); font-size: .9em; margin-top: 2px; }

.mhcal .mhcal-legend { display: flex; flex-wrap: wrap; gap: 6px 14px; margin: 0 0 16px; font-size: .85em; }
.mhcal .mhcal-chip { display: inline-flex; align-items: center; gap: 6px; color: var(--mh-muted); }
.mhcal .mhcal-chip i { width: 14px; height: 14px; border-radius: 4px; display: inline-block; border-bottom: 3px solid; }
.mhcal .mhcal-chip b { color: var(--mh-ink); font-weight: 600; }
.mhcal .mhcal-chip.s-alta i { background: var(--mh-alta-bg); border-color: var(--mh-alta); }
.mhcal .mhcal-chip.s-media i { background: var(--mh-media-bg); border-color: var(--mh-media); }
.mhcal .mhcal-chip.s-baja i { background: var(--mh-baja-bg); border-color: var(--mh-baja); }
.mhcal .mhcal-head, .mhcal .mhcal-legend { text-align: center; justify-content: center; }

/* Navegación */
.mhcal .mhcal-nav { position: relative; }
.mhcal .mhcal-prev, .mhcal .mhcal-next {
	position: absolute; top: -4px; z-index: 1;
	width: 34px; height: 34px; min-width: 0; border-radius: 50%; margin: 0; padding: 0;
	border: 1px solid var(--mh-line); background: #fff; color: var(--mh-ink);
	font: 400 22px/1 system-ui, sans-serif; cursor: pointer; box-shadow: none; text-transform: none;
	display: flex; align-items: center; justify-content: center;
}
.mhcal .mhcal-prev { left: 0; }
.mhcal .mhcal-next { right: 0; }
.mhcal .mhcal-prev:disabled, .mhcal .mhcal-next:disabled { opacity: .3; cursor: default; }
.mhcal .mhcal-prev:not(:disabled):hover, .mhcal .mhcal-next:not(:disabled):hover { border-color: var(--mh-accent); color: var(--mh-accent); }

.mhcal .mhcal-months { display: grid; grid-template-columns: 1fr; gap: 28px; }
.mhcal.mhcal-multi .mhcal-months { grid-template-columns: 1fr 1fr; gap: 36px; }
.mhcal .mhcal-mname { text-align: center; font-weight: 700; font-size: 1.05em; height: 26px; line-height: 26px; margin-bottom: 10px; }

.mhcal .mhcal-grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 5px; }
.mhcal .mhcal-dow { text-align: center; font-size: .72em; font-weight: 600; color: var(--mh-muted); padding: 2px 0 4px; text-transform: uppercase; }

/* Celdas (reset defensivo frente a estilos de botón del tema / Oxygen) */
.mhcal .mhcal-grid .mhcal-cell {
	position: relative;
	display: flex; flex-direction: column; align-items: center; justify-content: center;
	width: 100%; min-width: 0; min-height: 60px; margin: 0; padding: 5px 2px 12px;
	border-radius: var(--mh-radius);
	border: 1px solid transparent;
	background: transparent; box-shadow: none;
	font: inherit; font-size: 1em; line-height: 1.1; letter-spacing: normal; text-transform: none; text-decoration: none;
	color: var(--mh-ink); text-align: center; overflow: visible;
	-webkit-appearance: none; appearance: none;
}
.mhcal .mhcal-grid .mhcal-cell .mhcal-n { display: block; font-weight: 600; font-size: .95em; }
.mhcal .mhcal-grid .mhcal-cell .mhcal-p { display: block; font-size: .68em; margin-top: 3px; line-height: 1; white-space: nowrap; font-variant-numeric: tabular-nums; font-weight: 600; }
.mhcal .mhcal-grid .mhcal-cell .mhcal-p small { display: block; font-size: .78em; font-weight: 400; opacity: .8; margin-bottom: 1px; }
.mhcal .mhcal-grid .mhcal-empty { min-height: 0; padding: 0; }
.mhcal .mhcal-grid .mhcal-out { color: #c8c4be; }
.mhcal .mhcal-grid .mhcal-closed { color: #b9b4ad; }
.mhcal .mhcal-grid .mhcal-closed .mhcal-n { font-weight: 400; }
.mhcal .mhcal-grid .mhcal-closed .mhcal-p { font-weight: 400; font-size: .6em; }

/* Días abiertos: blancos sobre el gris, con la temporada en el precio y una línea inferior */
.mhcal .mhcal-grid .mhcal-day { cursor: pointer; background: var(--mh-cell); border-color: var(--mh-line); transition: transform .08s ease, box-shadow .12s ease, border-color .12s ease; }
.mhcal .mhcal-grid .mhcal-day::after { content: ""; position: absolute; left: 34%; right: 34%; bottom: 5px; height: 2px; border-radius: 3px; }
.mhcal .mhcal-grid .mhcal-day.s-alta { background: var(--mh-alta-bg); border-color: #f6cdc6; }
.mhcal .mhcal-grid .mhcal-day.s-media { background: var(--mh-media-bg); border-color: #f3dfa5; }
.mhcal .mhcal-grid .mhcal-day.s-baja { background: var(--mh-baja-bg); border-color: #c4e3cd; }
.mhcal .mhcal-grid .mhcal-day.s-alta::after { background: var(--mh-alta); }
.mhcal .mhcal-grid .mhcal-day.s-alta .mhcal-p { color: var(--mh-alta); }
.mhcal .mhcal-grid .mhcal-day.s-media::after { background: var(--mh-media); }
.mhcal .mhcal-grid .mhcal-day.s-media .mhcal-p { color: #9a6a05; }
.mhcal .mhcal-grid .mhcal-day.s-baja::after { background: var(--mh-baja); }
.mhcal .mhcal-grid .mhcal-day.s-baja .mhcal-p { color: var(--mh-baja); }
.mhcal .mhcal-grid .mhcal-day:hover { transform: translateY(-1px); box-shadow: 0 3px 8px rgba(40, 30, 20, .10); color: var(--mh-ink); filter: saturate(1.15); }
.mhcal .mhcal-grid .mhcal-day:focus-visible { outline: 2px solid var(--mh-accent); outline-offset: 2px; }
.mhcal .mhcal-grid .mhcal-day.is-sel,
.mhcal .mhcal-grid .mhcal-day.is-sel:hover { background: var(--mh-sel); border-color: var(--mh-sel); color: #fff; }
.mhcal .mhcal-grid .mhcal-day.is-sel .mhcal-p { color: #fff; }
.mhcal .mhcal-grid .mhcal-day.is-sel::after { background: #fff; }
/* 2º día de la entrada de 2 días */
.mhcal .mhcal-grid .is-sel2 { background: #fff; border: 2px dashed var(--mh-sel); color: var(--mh-sel); }

/* Resumen de la fecha elegida */
.mhcal .mhcal-summary:empty { display: none; }
.mhcal .mhcal-summary { margin-top: 18px; }
.mhcal .mhcal-sel { background: #fff; border: 1px solid var(--mh-line); border-left: 4px solid var(--mh-accent); border-radius: 12px; padding: 14px 16px; display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 8px 10px; text-align: center; }
.mhcal .mhcal-sel .mhcal-next-btn { margin-top: 0; }
.mhcal .mhcal-sel.s-alta { border-left-color: var(--mh-alta); }
.mhcal .mhcal-sel.s-media { border-left-color: var(--mh-media); }
.mhcal .mhcal-sel.s-baja { border-left-color: var(--mh-baja); }
.mhcal .mhcal-date { font-weight: 700; margin-right: 8px; display: inline-block; }
.mhcal .mhcal-tag, .mhcal-fecha-elegida { display: inline-block; font-size: .75em; font-weight: 600; padding: 2px 9px; border-radius: 99px; vertical-align: 1px; background: #eee; }
.mhcal .mhcal-tag.s-alta { background: #fbe4e0; color: var(--mh-alta, #c0392b); }
.mhcal .mhcal-tag.s-media { background: #fbefd2; color: #8a5f04; }
.mhcal .mhcal-tag.s-baja { background: #e0f0e5; color: var(--mh-baja, #3d8a56); }
.mhcal .mhcal-prices { margin-top: 10px; font-size: .92em; }
.mhcal .mhcal-prices.is-loading { color: var(--mh-muted); }
.mhcal .mhcal-prices ul { list-style: none; margin: 0; padding: 0; }
.mhcal .mhcal-prices li { display: flex; justify-content: space-between; gap: 12px; padding: 6px 0; border-bottom: 1px dashed var(--mh-line); margin: 0; }
.mhcal .mhcal-prices li:last-child { border-bottom: 0; }
.mhcal .mhcal-prices li b { font-variant-numeric: tabular-nums; white-space: nowrap; }
.mhcal .mhcal-next-btn {
	display: inline-block; margin-top: 12px; padding: 10px 18px; border-radius: 99px;
	background: var(--mh-accent); color: #fff !important; text-decoration: none !important; font-weight: 600;
}
.mhcal .mhcal-next-btn:hover { filter: brightness(1.1); }

/* Aviso sobre la tabla de entradas: [mh_fecha_elegida] */
.mhcal-fecha-elegida { display: block; font-size: .95em; font-weight: 400; padding: 8px 14px; border-radius: 10px; margin: 0 0 12px; background: #f4f4f2; border-left: 4px solid #a6191b; }
.mhcal-fecha-elegida[hidden] { display: none; }
.mhcal-fecha-elegida.s-alta { border-left-color: #c0392b; }
.mhcal-fecha-elegida.s-media { border-left-color: #c58a0e; }
.mhcal-fecha-elegida.s-baja { border-left-color: #3d8a56; }

/* Tablet */
@media (max-width: 1024px) {
	.mhcal { max-width: 560px; }
}
/* Móvil */
@media (max-width: 440px) {
	.mhcal { padding: 14px 10px; border-radius: 12px; }
	.mhcal .mhcal-grid { gap: 3px; }
	.mhcal .mhcal-grid .mhcal-cell { min-height: 56px; padding: 4px 1px 11px; border-radius: 8px; }
	.mhcal .mhcal-grid .mhcal-cell .mhcal-p { font-size: .6em; }
	.mhcal .mhcal-grid .mhcal-closed .mhcal-p { display: none; }
	.mhcal .mhcal-legend { font-size: .78em; }
}
.mhcal.mhcal-multi .mhcal-summary { max-width: 640px; margin-left: auto; margin-right: auto; }

/* Botón 1 día / 2 días (solo entrada estándar) */
.mhcal .mhcal-mode { display: flex; justify-content: center; margin: 0 auto 14px; padding: 4px; gap: 4px; width: max-content; max-width: 100%; background: #fff; border: 1px solid var(--mh-line); border-radius: 99px; }
.mhcal .mhcal-mode button {
	margin: 0; padding: 7px 20px; border: 0; border-radius: 99px; min-width: 0;
	background: transparent; color: var(--mh-ink); font: inherit; font-size: .9em; font-weight: 600; line-height: 1.2;
	cursor: pointer; box-shadow: none; text-transform: none; letter-spacing: normal; -webkit-appearance: none; appearance: none;
}
.mhcal .mhcal-mode button:hover { background: var(--mh-bg); color: var(--mh-ink); }
.mhcal .mhcal-mode button.is-on, .mhcal .mhcal-mode button.is-on:hover { background: var(--mh-sel); color: #fff; }
.mhcal .mhcal-mode button:focus-visible { outline: 2px solid var(--mh-accent); outline-offset: 2px; }
.mhcal .mhcal-date { margin-right: 0; }

/* ---------- Calendario de eventos especiales (v2.5) ---------- */
.mhcal { --mh-ev: #6d4aa8; --mh-ev-bg: #ece4f8; --mh-ev-line: #d6c7ef; }
.mhcal .mhcal-grid .mhcal-noev { color: #c3beb7; }
.mhcal .mhcal-grid .mhcal-day.s-ev { background: var(--mh-ev-bg); border-color: var(--mh-ev-line); }
.mhcal .mhcal-grid .mhcal-day.s-ev::after { background: var(--mh-ev); }
.mhcal .mhcal-grid .mhcal-day.s-ev .mhcal-p { color: var(--mh-ev); }
.mhcal .mhcal-grid .mhcal-cell .mhcal-evn {
	display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; line-clamp: 2;
	max-width: 100%; padding: 0 3px; margin-top: 2px;
	font-size: .6em; font-weight: 600; line-height: 1.15; color: var(--mh-ev);
	overflow: hidden; white-space: normal; overflow-wrap: anywhere; hyphens: auto;
}
.mhcal .mhcal-grid .mhcal-closed.s-ev .mhcal-evn { color: #a99cc0; }
.mhcal .mhcal-grid .mhcal-day.s-ev.is-sel, .mhcal .mhcal-grid .mhcal-day.s-ev.is-sel:hover { background: var(--mh-sel); border-color: var(--mh-sel); }
.mhcal .mhcal-grid .mhcal-day.s-ev.is-sel .mhcal-evn, .mhcal .mhcal-grid .mhcal-day.s-ev.is-sel .mhcal-p { color: #fff; }
.mhcal.mhcal-events .mhcal-grid .mhcal-cell { min-height: 74px; }

.mhcal .mhcal-up-label { color: var(--mh-muted); align-self: center; }
.mhcal .mhcal-evchip {
	margin: 0; padding: 5px 12px; border-radius: 99px; border: 1px solid var(--mh-ev-line); background: var(--mh-ev-bg);
	color: var(--mh-ink); font: inherit; font-size: 1em; line-height: 1.2; cursor: pointer; box-shadow: none; text-transform: none; letter-spacing: normal;
}
.mhcal .mhcal-evchip b { color: var(--mh-ev); font-weight: 700; }
.mhcal .mhcal-evchip:hover { border-color: var(--mh-ev); background: var(--mh-ev-bg); color: var(--mh-ink); }

.mhcal .mhcal-sel.mhcal-evsel { flex-direction: column; border-left-color: var(--mh-ev); gap: 4px; }
.mhcal .mhcal-sel.mhcal-evsel + .mhcal-sel { margin-top: 10px; }
.mhcal .mhcal-evname { font-weight: 700; font-size: 1.1em; color: var(--mh-ev); }
.mhcal .mhcal-evwhen { font-weight: 600; }
.mhcal .mhcal-evdesc { color: var(--mh-muted); font-size: .92em; max-width: 520px; }
.mhcal .mhcal-evfrom { font-size: .95em; }
.mhcal .mhcal-evsel .mhcal-next-btn { margin-top: 6px; }
.mhcal.mhcal-empty-events { text-align: center; color: var(--mh-muted); }
@media (max-width: 440px) {
	.mhcal .mhcal-grid .mhcal-cell .mhcal-evn { font-size: .52em; }
	.mhcal.mhcal-events .mhcal-grid .mhcal-cell { min-height: 66px; }
	.mhcal .mhcal-grid .mhcal-cell .mhcal-evn { -webkit-line-clamp: 2; line-clamp: 2; padding: 0 1px; }
}
