/* =========================================================================
   MTT Experiencias — hoja de estilo del tema
   Sistema: radio 0 en todo, sin sombras, separación con filetes de 1px y aire.
   Fotografía protagonista, travertino de fondo y un único acento rojo.
   ========================================================================= */

/* --- Fuentes autoalojadas -------------------------------------------------
   Si los .woff2 no están en assets/fonts/, la cascada cae a Georgia y
   system-ui: no se pide nada a Google en producción.                       */

@font-face {
	font-family: 'Cormorant Garamond';
	src: url('../fonts/cormorant-garamond-latin-400-normal.woff2') format('woff2');
	font-weight: 400;
	font-style: normal;
	font-display: swap;
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212;
}
@font-face {
	font-family: 'Cormorant Garamond';
	src: url('../fonts/cormorant-garamond-latin-500-normal.woff2') format('woff2');
	font-weight: 500;
	font-style: normal;
	font-display: swap;
}
@font-face {
	font-family: 'Jost';
	src: url('../fonts/jost-latin-400-normal.woff2') format('woff2');
	font-weight: 400;
	font-style: normal;
	font-display: swap;
}
@font-face {
	font-family: 'Jost';
	src: url('../fonts/jost-latin-500-normal.woff2') format('woff2');
	font-weight: 500;
	font-style: normal;
	font-display: swap;
}

/* --- Tokens --------------------------------------------------------------- */

:root {
	/* Color */
	--mtt-blanco: #FFFFFF;
	--mtt-travertino: #F5F1E8;
	--mtt-travertino-oscuro: #EFE9DF;
	--mtt-tinta: #1A1917;
	--mtt-tinta-90: #191816;
	--mtt-carbon: #262320;
	--mtt-grafito: #4A443C;
	--mtt-piedra: #6E675C;
	--mtt-rosso: #92382F;
	--mtt-rosso-oscuro: #782C24;
	--mtt-oliva: #6B705C;
	--mtt-coral: #E76F51;
	--mtt-arena: #E4D8B8;
	--mtt-pizarra: #3F4A56;
	--mtt-dorado: #E3C79F;
	--mtt-filete: #E5DCCB;
	--mtt-filete-suave: #F0EADC;
	--mtt-filete-claro: rgba(255, 255, 255, .28);
	--mtt-pie: #12100E;
	--mtt-pie-texto: #F6F1EA;
	--mtt-pie-meta: #9C9280;
	--mtt-pie-parrafo: #CFC7B9;
	--mtt-pie-filete: #2B2723;

	/* Tipografía */
	--mtt-display: 'Cormorant Garamond', Georgia, 'Times New Roman', serif;
	--mtt-ui: 'Jost', system-ui, -apple-system, 'Segoe UI', sans-serif;

	/* Medidas */
	--mtt-ancho: 1400px;
	--mtt-gutter: 48px;
	--mtt-cabecera-alto: 84px;
	--mtt-seccion: 88px;
	--mtt-curva: cubic-bezier(.16, .84, .26, 1);
}

@media (max-width: 900px) {
	:root {
		--mtt-gutter: 20px;
		--mtt-cabecera-alto: 64px;
		--mtt-seccion: 56px;
	}
}

/* --- Base ----------------------------------------------------------------- */

*,
*::before,
*::after { box-sizing: border-box; }

html {
	scroll-behavior: smooth;
	-webkit-text-size-adjust: 100%;
}

body {
	margin: 0;
	background: var(--mtt-blanco);
	color: var(--mtt-tinta);
	font-family: var(--mtt-ui);
	font-size: 17px;
	line-height: 1.6;
	-webkit-font-smoothing: antialiased;
	overflow-x: hidden;
}

img,
picture,
svg { max-width: 100%; }

img { border-style: none; }

a {
	color: var(--mtt-rosso);
	text-decoration: none;
}

a:hover { color: var(--mtt-rosso-oscuro); }

button { font-family: inherit; }

:where(button, a, input, select, textarea, [tabindex]):focus-visible {
	outline: 2px solid var(--mtt-tinta);
	outline-offset: 3px;
}

.mtt-hero :focus-visible,
.mtt-prefooter :focus-visible,
.mtt-pie :focus-visible,
.mtt-menu-movil :focus-visible,
.mtt-cabecera.es-transparente :focus-visible {
	outline-color: var(--mtt-blanco);
}

.mtt-saltar {
	position: absolute;
	left: -9999px;
	z-index: 200;
	padding: 14px 20px;
	background: var(--mtt-tinta);
	color: var(--mtt-blanco);
	font: 500 12px/1 var(--mtt-ui);
	letter-spacing: .16em;
	text-transform: uppercase;
}
.mtt-saltar:focus {
	left: 16px;
	top: 16px;
	color: var(--mtt-blanco);
}

/* --- Estructura ----------------------------------------------------------- */

.mtt-contenedor {
	width: 100%;
	max-width: var(--mtt-ancho);
	margin: 0 auto;
	padding-left: var(--mtt-gutter);
	padding-right: var(--mtt-gutter);
}

.mtt-contenedor--estrecho { max-width: 860px; }

.mtt-seccion {
	padding-top: var(--mtt-seccion);
	padding-bottom: 0;
	scroll-margin-top: 120px;
}

.mtt-seccion:last-of-type { padding-bottom: var(--mtt-seccion); }

.mtt-seccion__cabecera {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 40px;
	flex-wrap: wrap;
	margin-bottom: 28px;
}

.mtt-seccion__cabecera .mtt-h2,
.mtt-seccion__cabecera .mtt-eyebrow:last-child { margin-bottom: 0; }

.mtt-seccion__cabecera--filete {
	border-bottom: 1px solid var(--mtt-filete);
	padding-bottom: 24px;
	margin-bottom: 40px;
}

.mtt-seccion__nota {
	margin: 0;
	font: 400 15px/1.6 var(--mtt-ui);
	color: var(--mtt-grafito);
}

/* --- Tipografía ----------------------------------------------------------- */

.mtt-h1 {
	margin: 0 0 32px;
	font-family: var(--mtt-display);
	font-weight: 400;
	font-size: clamp(46px, 5.6vw, 92px);
	line-height: .98;
	letter-spacing: -.015em;
	max-width: 18ch;
	color: var(--mtt-blanco);
	text-wrap: balance;
}

.mtt-h1--interior,
.mtt-h1--ficha {
	color: var(--mtt-tinta-90);
	max-width: 24ch;
}

.mtt-h1--ficha {
	font-size: clamp(40px, 5vw, 76px);
	line-height: 1;
	margin-bottom: 26px;
}

.mtt-h1--interior {
	font-size: clamp(36px, 4.4vw, 58px);
	line-height: 1.04;
	margin-bottom: 24px;
}

.mtt-h2 {
	margin: 0 0 36px;
	font-family: var(--mtt-display);
	font-weight: 400;
	font-size: clamp(28px, 2.6vw, 38px);
	line-height: 1.06;
	color: var(--mtt-tinta-90);
	max-width: 22ch;
	text-wrap: balance;
}

.mtt-h2--claro { color: var(--mtt-blanco); }

.mtt-h3 {
	margin: 0 0 18px;
	font-family: var(--mtt-display);
	font-weight: 500;
	font-size: clamp(22px, 2.2vw, 30px);
	line-height: 1.18;
	color: var(--mtt-tinta-90);
}

.mtt-eyebrow {
	margin: 0 0 12px;
	font: 500 11px/1 var(--mtt-ui);
	letter-spacing: .24em;
	text-transform: uppercase;
	color: var(--mtt-piedra);
}

.mtt-eyebrow--claro { color: var(--mtt-blanco); letter-spacing: .34em; }
.mtt-eyebrow--dorado { color: var(--mtt-dorado); letter-spacing: .28em; }
.mtt-eyebrow--rosso { color: var(--mtt-rosso); }
.mtt-eyebrow--oliva { color: var(--mtt-oliva); }

.mtt-texto {
	margin: 0 0 18px;
	font: 400 17px/1.75 var(--mtt-ui);
	color: var(--mtt-carbon);
	max-width: 70ch;
}

.mtt-texto--sutil { color: var(--mtt-grafito); font-size: 16px; }

.mtt-precio {
	font-family: var(--mtt-display);
	font-weight: 500;
	font-size: 34px;
	line-height: 1;
	color: var(--mtt-tinta);
	white-space: nowrap;
}

.mtt-precio--sm { font-size: 24px; }
.mtt-precio--xl { font-size: 46px; }

.mtt-prosa {
	font: 400 18px/1.85 var(--mtt-ui);
	color: var(--mtt-carbon);
	max-width: 70ch;
}

.mtt-prosa p { margin: 0 0 20px; }
.mtt-prosa h2 {
	font-family: var(--mtt-display);
	font-weight: 400;
	font-size: clamp(26px, 2.4vw, 34px);
	line-height: 1.1;
	margin: 44px 0 16px;
}
.mtt-prosa h3 {
	font-family: var(--mtt-display);
	font-weight: 500;
	font-size: 24px;
	margin: 32px 0 12px;
}
.mtt-prosa ul,
.mtt-prosa ol { margin: 0 0 20px; padding-left: 22px; }
.mtt-prosa li { margin-bottom: 10px; }
.mtt-prosa a { text-decoration: underline; text-underline-offset: 3px; }

/* --- Botones -------------------------------------------------------------- */

.mtt-boton {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 12px;
	min-height: 52px;
	padding: 17px 26px;
	border: 1px solid transparent;
	font: 500 12px/1 var(--mtt-ui);
	letter-spacing: .18em;
	text-transform: uppercase;
	text-align: center;
	cursor: pointer;
	transition: background .3s ease, color .3s ease, border-color .3s ease;
}

.mtt-boton--bloque { width: 100%; }

.mtt-boton--primario {
	background: var(--mtt-rosso);
	border-color: var(--mtt-rosso);
	color: var(--mtt-blanco);
}
.mtt-boton--primario:hover {
	background: var(--mtt-rosso-oscuro);
	border-color: var(--mtt-rosso-oscuro);
	color: var(--mtt-blanco);
}

.mtt-boton--contorno,
.mtt-boton--fantasma {
	background: transparent;
	border-color: var(--mtt-tinta);
	color: var(--mtt-tinta);
}
.mtt-boton--contorno:hover,
.mtt-boton--fantasma:hover {
	background: var(--mtt-tinta);
	color: var(--mtt-blanco);
}

.mtt-boton--grande {
	min-height: 58px;
	padding: 21px 34px;
	font-size: 13px;
}

.mtt-boton--compacto {
	min-height: 44px;
	padding: 0 20px;
}

.mtt-enlace-sutil {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	padding-bottom: 4px;
	border-bottom: 1px solid #C9BFA9;
	font: 500 12px/1 var(--mtt-ui);
	letter-spacing: .16em;
	text-transform: uppercase;
	color: var(--mtt-tinta);
	white-space: nowrap;
}
.mtt-enlace-sutil:hover {
	border-bottom-color: var(--mtt-rosso);
	color: var(--mtt-rosso);
}

/* --- Cabecera ------------------------------------------------------------- */

/* Sticky en páginas interiores (queda en el flujo: el contenido no se mete
   debajo), y fija solo sobre el hero de la portada. */
.mtt-cabecera {
	position: sticky;
	top: 0;
	z-index: 50;
	transition: background .45s ease, color .45s ease, border-color .45s ease;
}

body.mtt-tiene-hero .mtt-cabecera {
	position: fixed;
	left: 0;
	right: 0;
}

.mtt-cabecera.es-transparente {
	color: var(--mtt-blanco);
	background: rgba(26, 22, 18, .12);
	border-bottom: 1px solid rgba(255, 255, 255, .26);
	-webkit-backdrop-filter: blur(12px) saturate(1.1);
	backdrop-filter: blur(12px) saturate(1.1);
}

.mtt-cabecera.es-solida,
.mtt-cabecera.es-transparente.es-fija {
	color: var(--mtt-tinta);
	background: rgba(255, 255, 255, .94);
	border-bottom: 1px solid var(--mtt-filete);
	-webkit-backdrop-filter: blur(12px) saturate(1.1);
	backdrop-filter: blur(12px) saturate(1.1);
}

.mtt-cabecera__fila {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 40px;
	padding-top: 18px;
	padding-bottom: 18px;
}

.mtt-cabecera__logo {
	display: flex;
	align-items: center;
	flex: none;
	color: inherit;
}

.mtt-cabecera__logo { min-width: 0; }

.mtt-logo {
	display: block;
	height: 40px;
	width: auto;
	max-width: 100%;
}

.mtt-logo__texto {
	font-family: var(--mtt-display);
	font-weight: 500;
	font-size: 24px;
	letter-spacing: .04em;
	color: currentColor;
}

.mtt-cabecera.es-transparente:not(.es-fija) .mtt-logo--oscuro,
.mtt-cabecera.es-solida .mtt-logo--claro,
.mtt-cabecera.es-fija .mtt-logo--claro { display: none; }

.mtt-nav__lista {
	display: flex;
	gap: 10px 32px;
	flex-wrap: wrap;
	margin: 0;
	padding: 0;
	list-style: none;
	font: 500 12px/1 var(--mtt-ui);
	letter-spacing: .16em;
	text-transform: uppercase;
	white-space: nowrap;
}

.mtt-nav__lista a {
	color: inherit;
	padding: 6px 0;
	border-bottom: 1px solid transparent;
}
.mtt-nav__lista a:hover {
	color: inherit;
	border-bottom-color: currentColor;
}

.mtt-cabecera__acciones {
	display: flex;
	align-items: center;
	gap: 12px;
	position: relative;
}

.mtt-menu-boton {
	display: none;
	width: 44px;
	height: 44px;
	flex-direction: column;
	gap: 5px;
	align-items: center;
	justify-content: center;
	background: transparent;
	border: 1px solid currentColor;
	color: inherit;
	cursor: pointer;
}
.mtt-menu-boton span {
	display: block;
	width: 18px;
	height: 1px;
	background: currentColor;
}

/* Selector de idioma */

.mtt-idiomas { position: relative; }

.mtt-idiomas__boton {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	min-height: 44px;
	padding: 0 16px;
	background: transparent;
	border: 1px solid currentColor;
	color: inherit;
	font: 500 12px/1 var(--mtt-ui);
	letter-spacing: .14em;
	cursor: pointer;
	white-space: nowrap;
}

.mtt-idiomas__flecha { font-size: 10px; }

.mtt-idiomas__lista {
	position: absolute;
	top: calc(100% + 10px);
	right: 0;
	z-index: 60;
	min-width: 190px;
	margin: 0;
	padding: 6px;
	list-style: none;
	background: var(--mtt-blanco);
	border: 1px solid var(--mtt-filete);
}

.mtt-idiomas__enlace {
	display: flex;
	align-items: center;
	gap: 12px;
	min-height: 44px;
	padding: 10px 12px;
	color: var(--mtt-tinta);
	font: 400 15px/1 var(--mtt-ui);
}
.mtt-idiomas__enlace:hover { background: var(--mtt-travertino); color: var(--mtt-tinta); }
.mtt-idiomas__enlace.es-actual { font-weight: 500; }

.mtt-idiomas__codigo {
	font-size: 12px;
	letter-spacing: .12em;
	color: var(--mtt-piedra);
	min-width: 26px;
}
.mtt-idiomas__enlace.es-actual .mtt-idiomas__codigo { color: var(--mtt-rosso); }

/* Disclaimer */

.mtt-disclaimer {
	overflow: hidden;
	max-height: 34px;
	opacity: .86;
	border-top: 1px solid rgba(255, 255, 255, .14);
	font: 400 10px/1 var(--mtt-ui);
	letter-spacing: .14em;
	text-transform: uppercase;
	transition: max-height .3s ease, opacity .3s ease;
}

.mtt-cabecera.es-solida .mtt-disclaimer {
	border-top-color: var(--mtt-filete-suave);
	color: var(--mtt-piedra);
	opacity: 1;
}

.mtt-disclaimer .mtt-contenedor { padding-top: 9px; padding-bottom: 9px; }

.mtt-disclaimer.es-oculto {
	max-height: 0;
	opacity: 0;
}

/* --- Menú móvil ----------------------------------------------------------- */

.mtt-menu-movil {
	position: fixed;
	inset: 0;
	z-index: 90;
	display: flex;
	flex-direction: column;
	background: var(--mtt-pie);
	color: var(--mtt-blanco);
}

.mtt-menu-movil[hidden] { display: none; }

/* La barra del menú replica el mismo padding y alto que la cabecera para que
   el botón de cerrar caiga justo donde estaba el de abrir. */
.mtt-menu-movil__barra {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	padding: 13px 20px;
	border-bottom: 1px solid var(--mtt-pie-filete);
}

.mtt-menu-movil__logo {
	display: flex;
	align-items: center;
	min-width: 0;
}
.mtt-menu-movil__logo img { display: block; height: 28px; width: auto; }

.mtt-menu-movil__marca {
	font-family: var(--mtt-display);
	font-weight: 500;
	font-size: 22px;
	letter-spacing: .06em;
	color: var(--mtt-blanco);
}

.mtt-menu-movil__cerrar {
	position: relative;
	width: 42px;
	height: 42px;
	flex: none;
	background: transparent;
	border: 1px solid rgba(255, 255, 255, .6);
	cursor: pointer;
}

/* Dos barras que, al abrirse el menú, se cruzan en una X. Como el panel pasa de
   [hidden] a visible, la animación se reproduce en cada apertura. */
.mtt-menu-movil__cerrar span {
	position: absolute;
	left: 50%;
	top: 50%;
	width: 18px;
	height: 1.5px;
	background: var(--mtt-blanco);
	transform-origin: center;
}
.mtt-menu-movil__cerrar span:nth-child(1) {
	transform: translate(-50%, -50%) rotate(45deg);
	animation: mtt-x-arriba .28s var(--mtt-curva);
}
.mtt-menu-movil__cerrar span:nth-child(2) {
	transform: translate(-50%, -50%) rotate(-45deg);
	animation: mtt-x-abajo .28s var(--mtt-curva);
}

@keyframes mtt-x-arriba {
	from { transform: translate(-50%, -50%) translateY(-5px) rotate(0); }
	to   { transform: translate(-50%, -50%) rotate(45deg); }
}
@keyframes mtt-x-abajo {
	from { transform: translate(-50%, -50%) translateY(5px) rotate(0); }
	to   { transform: translate(-50%, -50%) rotate(-45deg); }
}

.mtt-menu-movil__lista {
	margin: 0;
	padding: 12px 0;
	list-style: none;
	display: flex;
	flex-direction: column;
}

.mtt-menu-movil__lista a {
	display: block;
	padding: 20px;
	border-bottom: 1px solid #221F1B;
	font-family: var(--mtt-display);
	font-weight: 400;
	font-size: 30px;
	color: var(--mtt-blanco);
}

.mtt-menu-movil__pie {
	margin-top: auto;
	padding: 20px;
	border-top: 1px solid var(--mtt-pie-filete);
}

.mtt-idiomas--oscuro .mtt-idiomas__lista {
	position: static;
	background: transparent;
	border: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	padding: 12px 0 0;
}
.mtt-idiomas--oscuro .mtt-idiomas__enlace {
	border: 1px solid #3A352F;
	color: var(--mtt-blanco);
	padding: 0 14px;
	min-height: 44px;
}
.mtt-idiomas--oscuro .mtt-idiomas__nombre { display: none; }

/* --- Hero ----------------------------------------------------------------- */

.mtt-hero {
	position: relative;
	display: flex;
	flex-direction: column;
	min-height: max(660px, min(820px, 88vh));
	overflow: hidden;
	background: var(--mtt-travertino-oscuro);
}

.mtt-hero__foto {
	position: absolute;
	inset: -12% 0;
	display: block;
	will-change: transform;
}

.mtt-hero__foto img,
.mtt-hero__foto picture {
	width: 100%;
	height: 100%;
	display: block;
}

.mtt-hero__img {
	object-fit: cover;
	object-position: center 45%;
}

.mtt-hero__velo {
	position: absolute;
	inset: 0;
	background:
		linear-gradient(0deg, rgba(26, 22, 18, .90) 0px, rgba(26, 22, 18, .74) 210px, rgba(26, 22, 18, .56) 340px, rgba(26, 22, 18, .22) 470px, rgba(26, 22, 18, 0) 580px),
		linear-gradient(180deg, rgba(26, 22, 18, .42) 0px, rgba(26, 22, 18, .12) 180px, rgba(26, 22, 18, 0) 300px);
}

.mtt-hero__cuerpo {
	position: relative;
	z-index: 2;
	flex: 1;
	display: flex;
	align-items: flex-end;
	padding-top: 170px;
	padding-bottom: 76px;
}

.mtt-hero__subtitulo {
	margin: 0 0 30px;
	font: 400 18px/1.7 var(--mtt-ui);
	color: #EDE7DC;
	max-width: 48ch;
}

.mtt-garantias {
	display: flex;
	flex-wrap: wrap;
	gap: 20px 48px;
	margin: 44px 0 0;
	padding: 26px 0 0;
	list-style: none;
	border-top: 1px solid var(--mtt-filete-claro);
}

.mtt-garantias__item {
	display: flex;
	align-items: center;
	gap: 12px;
	font: 400 15px/1.4 var(--mtt-ui);
	color: var(--mtt-blanco);
	white-space: nowrap;
}

.mtt-icono { flex: none; display: block; }

/* --- Marcos de imagen ------------------------------------------------------ */

.mtt-marco {
	display: block;
	position: relative;
	overflow: hidden;
	aspect-ratio: var(--ratio, 3 / 2);
	background: var(--mtt-travertino-oscuro);
}

.mtt-marco img,
.mtt-marco picture {
	display: block;
	width: 100%;
	height: 100%;
}

.mtt-marco img { object-fit: cover; }

.mtt-marco--vacio { background: var(--mtt-travertino); }

/* --- Selector de monumentos ------------------------------------------------ */

.mtt-monumentos__grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: clamp(14px, 2vw, 32px);
	align-items: start;
}

.mtt-monumento {
	display: block;
	width: 100%;
	min-width: 0;
	padding: 0;
	background: transparent;
	border: 0;
	text-align: left;
	color: var(--mtt-tinta);
	cursor: pointer;
}

.mtt-monumento__foto {
	position: relative;
	display: block;
	overflow: hidden;
	background: var(--mtt-travertino-oscuro);
}

.mtt-monumento__img {
	transition: transform .9s var(--mtt-curva);
}

.mtt-monumento:hover .mtt-monumento__img { transform: scale(1.06); }

.mtt-monumento__etiqueta {
	position: absolute;
	top: 0;
	left: 0;
	padding: 11px 13px;
	background: var(--mtt-rosso);
	color: var(--mtt-blanco);
	font: 500 10px/1 var(--mtt-ui);
	letter-spacing: .2em;
	text-transform: uppercase;
}

.mtt-monumento__pie {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 12px;
	min-height: 52px;
	margin-top: 14px;
	padding-top: 14px;
	border-top: 1px solid var(--mtt-filete);
}

.mtt-monumento__nombre {
	font-family: var(--mtt-display);
	font-weight: 500;
	font-size: 24px;
	line-height: 1.2;
	color: var(--mtt-tinta);
}

.mtt-monumento__cuenta {
	flex: none;
	font: 400 12px/1.6 var(--mtt-ui);
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--mtt-piedra);
}

/* Tres señales simultáneas de selección: filete, color de nombre y etiqueta. */
.mtt-monumento__estado {
	display: none;
	white-space: nowrap;
	font: 500 10px/1.3 var(--mtt-ui);
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--mtt-rosso);
}

.mtt-monumento.es-activo .mtt-monumento__pie { border-top: 2px solid var(--mtt-rosso); }
.mtt-monumento.es-activo .mtt-monumento__nombre { color: var(--mtt-rosso); font-weight: 500; }
.mtt-monumento.es-activo .mtt-monumento__etiqueta { display: block; }
.mtt-monumento.es-activo .mtt-monumento__img { transform: scale(1.04); }

.mtt-quitar-filtro[hidden] { display: none; }

/* --- Parrilla y tarjetas --------------------------------------------------- */

.mtt-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(330px, 1fr));
	gap: 44px 40px;
}

.mtt-grid--compacta {
	grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
	gap: 36px 32px;
}

.mtt-card {
	display: flex;
	flex-direction: column;
	transition: opacity .4s ease;
}

.mtt-card__foto {
	position: relative;
	display: block;
	overflow: hidden;
	background: var(--mtt-travertino-oscuro);
}

.mtt-card__img { transition: transform 1s var(--mtt-curva); }

.mtt-card:hover .mtt-card__img { transform: scale(1.05); }

.mtt-badge {
	position: absolute;
	top: 0;
	left: 0;
	padding: 11px 13px;
	font: 500 10px/1 var(--mtt-ui);
	letter-spacing: .2em;
	text-transform: uppercase;
	background: var(--mtt-rosso);
	color: var(--mtt-blanco);
}

.mtt-badge--rosso { background: var(--mtt-rosso); color: var(--mtt-blanco); }
.mtt-badge--oliva { background: var(--mtt-oliva); color: var(--mtt-blanco); }
.mtt-badge--coral { background: var(--mtt-coral); color: var(--mtt-tinta); }
.mtt-badge--arena { background: var(--mtt-arena); color: var(--mtt-tinta); }
.mtt-badge--pizarra { background: var(--mtt-pizarra); color: var(--mtt-blanco); }

.mtt-card__cinta {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	padding: 11px 14px;
	background: var(--mtt-travertino);
	color: var(--mtt-tinta);
	font: 500 10px/1 var(--mtt-ui);
	letter-spacing: .16em;
	text-transform: uppercase;
}

/* Despriorizada: la foto pierde saturación, pero texto, precio y CTA
   mantienen contraste completo y siguen siendo utilizables. */
.mtt-card.es-despriorizada .mtt-card__img { filter: saturate(.15); }
/* Cuando la card se apaga por el filtro, el CTA también se desatura. */
.mtt-card.es-despriorizada .mtt-boton--primario,
.mtt-card.es-despriorizada .mtt-boton--fantasma { filter: saturate(.12); }
.mtt-card.es-despriorizada .mtt-precio,
.mtt-card.es-despriorizada .mtt-badge { filter: saturate(.2); }
.mtt-card.es-despriorizada { order: 2; }

.mtt-card__cuerpo {
	display: flex;
	flex-direction: column;
	gap: 14px;
	flex: 1;
	padding-top: 22px;
}

.mtt-card__meta {
	margin: 0;
	font: 400 11px/1.5 var(--mtt-ui);
	letter-spacing: .2em;
	text-transform: uppercase;
	color: var(--mtt-piedra);
}

.mtt-card__titulo {
	margin: 0;
	font-family: var(--mtt-display);
	font-weight: 500;
	font-size: 27px;
	line-height: 1.18;
}

.mtt-card__titulo a {
	color: var(--mtt-tinta);
	transition: color .3s ease;
}
.mtt-card:hover .mtt-card__titulo a { color: var(--mtt-rosso); }

.mtt-card__resumen {
	margin: 0;
	font: 400 16px/1.7 var(--mtt-ui);
	color: var(--mtt-grafito);
}

.mtt-card__precio {
	display: flex;
	align-items: baseline;
	gap: 10px;
	margin: auto 0 0;
	padding-top: 20px;
}

.mtt-card__precio .mtt-eyebrow {
	margin: 0;
	font-weight: 400;
	letter-spacing: .2em;
}

.mtt-card__acciones {
	display: flex;
	align-items: center;
	gap: 20px;
	margin-top: 6px;
}

.mtt-card__acciones .mtt-boton--bloque { flex: 1; }

.mtt-card--compacta .mtt-card__titulo { font-size: 22px; line-height: 1.22; }
.mtt-card--compacta .mtt-card__cuerpo { gap: 12px; padding-top: 18px; }
.mtt-card--compacta .mtt-card__precio { padding-top: 14px; }
.mtt-card--compacta .mtt-card__acciones {
	justify-content: space-between;
	flex-wrap: nowrap;
	gap: 12px;
	margin-top: 0;
}
/* «Ver detalles» en la misma línea que «Ver fechas»: botón algo más estrecho
   y enlace más pequeño para que quepan los dos (también en DE). */
.mtt-card--compacta .mtt-card__acciones .mtt-boton--compacto {
	flex: none;
	padding: 0 14px;
	letter-spacing: .14em;
}
.mtt-card--compacta .mtt-card__acciones .mtt-enlace-sutil {
	flex: none;
	gap: 6px;
	padding-bottom: 3px;
	font-size: 10px;
	letter-spacing: .1em;
}
.mtt-card--compacta .mtt-precio { font-size: 26px; }

.mtt-vacio {
	margin: 0;
	padding: 40px 0;
	font: 400 17px/1.6 var(--mtt-ui);
	color: var(--mtt-grafito);
}

/* --- Confianza ------------------------------------------------------------- */

.mtt-confianza__grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
	gap: 18px 32px;
	margin: 0;
	padding: 28px 32px;
	list-style: none;
	background: var(--mtt-travertino);
	border: 1px solid var(--mtt-filete);
}

.mtt-confianza__item {
	display: flex;
	gap: 12px;
	align-items: baseline;
}

.mtt-confianza__punto {
	width: 7px;
	height: 7px;
	flex: none;
	background: var(--mtt-rosso);
	transform: translateY(-2px);
}

.mtt-confianza__titulo {
	margin: 0;
	font: 500 16px/1.45 var(--mtt-ui);
	color: var(--mtt-tinta);
}

.mtt-confianza__sub {
	margin: 2px 0 0;
	font: 400 15px/1.45 var(--mtt-ui);
	color: var(--mtt-grafito);
}

/* --- Acordeón FAQ ---------------------------------------------------------- */

.mtt-faq__caja {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
	gap: 40px 80px;
	align-items: start;
}

.mtt-faq__titulo { margin-bottom: 0; }

.mtt-acordeon { border-top: 1px solid var(--mtt-filete); }

.mtt-acordeon__item { border-bottom: 1px solid var(--mtt-filete); }

.mtt-acordeon__cabecera { margin: 0; }

.mtt-acordeon__boton {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	width: 100%;
	min-height: 62px;
	padding: 24px 0;
	background: transparent;
	border: 0;
	text-align: left;
	font: 500 18px/1.45 var(--mtt-ui);
	color: var(--mtt-tinta);
	cursor: pointer;
}

.mtt-acordeon__signo {
	flex: none;
	font: 300 24px/1 var(--mtt-ui);
	color: var(--mtt-rosso);
}

.mtt-acordeon__panel p {
	margin: 0;
	padding: 0 0 26px;
	font: 400 17px/1.8 var(--mtt-ui);
	color: var(--mtt-grafito);
	max-width: 74ch;
}

/* --- Prepié ---------------------------------------------------------------- */

.mtt-prefooter {
	position: relative;
	display: flex;
	align-items: flex-end;
	min-height: min(680px, 80vh);
	overflow: hidden;
	background: #2A2520;
}

.mtt-prefooter__foto {
	position: absolute;
	inset: -12% 0;
	display: block;
	will-change: transform;
}

.mtt-prefooter__foto img,
.mtt-prefooter__foto picture { width: 100%; height: 100%; display: block; }

.mtt-prefooter__img { object-fit: cover; object-position: center 40%; }

.mtt-prefooter__velo {
	position: absolute;
	inset: 0;
	background: linear-gradient(0deg, rgba(26, 22, 18, .92) 0px, rgba(26, 22, 18, .82) 240px, rgba(26, 22, 18, .68) 420px, rgba(26, 22, 18, .50) 560px, rgba(26, 22, 18, .22) 700px, rgba(26, 22, 18, 0) 800px);
}

.mtt-prefooter__cuerpo {
	position: relative;
	z-index: 2;
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
	gap: 48px 80px;
	align-items: end;
	padding-top: 96px;
	padding-bottom: 72px;
}

.mtt-prefooter__parrafo {
	margin: 0;
	font: 400 17px/1.75 var(--mtt-ui);
	color: #EDE7DC;
	max-width: 44ch;
}

.mtt-prefooter__caja {
	padding: 26px 30px 30px;
	background: rgba(26, 22, 18, .56);
	-webkit-backdrop-filter: blur(10px) saturate(1.05);
	backdrop-filter: blur(10px) saturate(1.05);
}

.mtt-prefooter__lista {
	margin: 0 0 28px;
	padding: 0;
	list-style: none;
}

.mtt-prefooter__lista a {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 24px;
	padding: 18px 0;
	border-bottom: 1px solid var(--mtt-filete-claro);
	color: var(--mtt-blanco);
}

.mtt-prefooter__lista a:hover {
	color: var(--mtt-dorado);
	border-bottom-color: var(--mtt-dorado);
}

.mtt-prefooter__nombre {
	font-family: var(--mtt-display);
	font-weight: 500;
	font-size: 22px;
	line-height: 1.25;
}

.mtt-prefooter__precio {
	flex: none;
	font: 400 13px/1 var(--mtt-ui);
	letter-spacing: .14em;
	text-transform: uppercase;
}

/* --- Pie ------------------------------------------------------------------- */

.mtt-pie {
	background: var(--mtt-pie);
	color: var(--mtt-pie-texto);
}

.mtt-pie__columnas {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
	gap: 48px;
	padding-top: 80px;
	padding-bottom: 80px;
}

.mtt-pie__logo { height: 44px; width: auto; margin-bottom: 18px; }

.mtt-pie__nombre {
	display: block;
	margin-bottom: 18px;
	font-family: var(--mtt-display);
	font-weight: 500;
	font-size: 27px;
	letter-spacing: .06em;
	color: var(--mtt-blanco);
}

.mtt-pie__texto {
	margin: 0;
	font: 400 16px/1.8 var(--mtt-ui);
	color: var(--mtt-pie-parrafo);
	max-width: 34ch;
}

.mtt-pie__titulo {
	margin-bottom: 18px;
	color: var(--mtt-pie-meta);
	letter-spacing: .22em;
}

.mtt-pie__lista {
	display: flex;
	flex-direction: column;
	gap: 12px;
	margin: 0;
	padding: 0;
	list-style: none;
	font: 400 16px/1.4 var(--mtt-ui);
}

.mtt-pie__lista a { color: var(--mtt-pie-texto); }
.mtt-pie__lista a:hover { color: var(--mtt-dorado); }

.mtt-pie__base { border-top: 1px solid var(--mtt-pie-filete); }

.mtt-pie__base-fila {
	display: flex;
	justify-content: space-between;
	gap: 24px;
	flex-wrap: wrap;
	padding-top: 26px;
	padding-bottom: 26px;
	font: 400 14px/1.6 var(--mtt-ui);
	color: var(--mtt-pie-meta);
}

/* --- Ficha ----------------------------------------------------------------- */

.mtt-miga {
	padding-top: 22px;
	font: 400 13px/1.5 var(--mtt-ui);
	letter-spacing: .06em;
	color: var(--mtt-piedra);
}

.mtt-miga a { color: var(--mtt-piedra); }
.mtt-miga a:hover { color: var(--mtt-rosso); }
.mtt-miga span[aria-current] { color: var(--mtt-tinta); }

.mtt-ficha__layout {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-start;
	gap: 48px 56px;
	padding-top: 28px;
}

.mtt-ficha__principal {
	flex: 1 1 420px;
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: 56px;
}

.mtt-ficha__entradilla {
	margin: 0 0 36px;
	font: 400 19px/1.75 var(--mtt-ui);
	color: var(--mtt-carbon);
	max-width: 62ch;
}

.mtt-ficha__rapidos {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr));
	gap: 26px 40px;
	margin: 0;
	padding-top: 26px;
	border-top: 1px solid var(--mtt-filete);
}

.mtt-ficha__rapidos dt { margin-bottom: 10px; }

.mtt-ficha__rapidos dd {
	margin: 0;
	font: 400 17px/1.35 var(--mtt-ui);
	color: var(--mtt-tinta);
}

.mtt-ficha__seccion { scroll-margin-top: 120px; }

.mtt-ficha__dos {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr));
	gap: 40px;
}

.mtt-incluye {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr));
	gap: 40px;
}

.mtt-incluye__titulo {
	padding-bottom: 14px;
	margin-bottom: 20px;
	border-bottom: 1px solid var(--mtt-filete);
}

.mtt-lista-signos,
.mtt-avisos {
	display: flex;
	flex-direction: column;
	gap: 14px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.mtt-lista-signos li,
.mtt-avisos li {
	display: flex;
	gap: 14px;
	font: 400 17px/1.7 var(--mtt-ui);
	color: var(--mtt-carbon);
}

.mtt-avisos {
	padding: 34px;
	background: var(--mtt-travertino);
	gap: 16px;
}

.mtt-signo { flex: none; font-weight: 500; }
.mtt-signo--mas { color: var(--mtt-oliva); }
.mtt-signo--menos,
.mtt-signo--punto { color: var(--mtt-rosso); }

.mtt-datos {
	margin: 0;
	display: grid;
	grid-template-columns: minmax(140px, max-content) 1fr;
	border-top: 1px solid var(--mtt-filete);
}

.mtt-datos__fila { display: contents; }

.mtt-datos dt {
	padding: 20px 32px 20px 0;
	border-bottom: 1px solid var(--mtt-filete);
	font: 500 11px/1.4 var(--mtt-ui);
	letter-spacing: .16em;
	text-transform: uppercase;
	color: var(--mtt-piedra);
}

.mtt-datos dd {
	margin: 0;
	padding: 18px 0;
	border-bottom: 1px solid var(--mtt-filete);
	font: 400 17px/1.7 var(--mtt-ui);
	color: var(--mtt-carbon);
}

.mtt-destacado {
	padding: 32px;
	background: var(--mtt-travertino);
}

.mtt-destacado__titulo {
	margin: 0 0 14px;
	font-family: var(--mtt-display);
	font-weight: 500;
	font-size: 26px;
	line-height: 1.2;
}

.mtt-itinerario {
	margin: 0;
	padding: 0;
	list-style: none;
	counter-reset: paso;
	border-top: 1px solid var(--mtt-filete);
}

.mtt-itinerario__paso {
	counter-increment: paso;
	position: relative;
	padding: 24px 0 24px 56px;
	border-bottom: 1px solid var(--mtt-filete);
}

.mtt-itinerario__paso::before {
	content: counter(paso);
	position: absolute;
	left: 0;
	top: 24px;
	width: 36px;
	height: 36px;
	display: flex;
	align-items: center;
	justify-content: center;
	border: 1px solid var(--mtt-filete);
	font: 500 14px/1 var(--mtt-ui);
	color: var(--mtt-rosso);
}

.mtt-itinerario__titulo {
	margin: 0 0 8px;
	font: 500 18px/1.4 var(--mtt-ui);
	color: var(--mtt-tinta);
}

/* Galería */

.mtt-galeria__principal {
	position: relative;
	overflow: hidden;
	aspect-ratio: 1.4 / 1;
	background: var(--mtt-travertino-oscuro);
}

.mtt-galeria__capa {
	position: absolute;
	inset: -10% 0;
	display: block;
	will-change: transform;
}

.mtt-galeria__capa img,
.mtt-galeria__capa picture { width: 100%; height: 100%; display: block; }

.mtt-galeria__img { object-fit: cover; object-position: center 58%; }

.mtt-galeria__tira {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 160px), 1fr));
	gap: 10px;
	margin: 10px 0 0;
	padding: 0;
	list-style: none;
}

.mtt-galeria__mini { transition: transform .9s var(--mtt-curva); }
.mtt-galeria__item:hover .mtt-galeria__mini { transform: scale(1.05); }

/* Bloque de reserva */

.mtt-reserva {
	flex: 0 1 360px;
	min-width: 300px;
	position: sticky;
	top: 108px;
	max-height: calc(100vh - 130px);
	overflow-y: auto;
	overscroll-behavior: contain;
	background: var(--mtt-blanco);
	border: 1px solid var(--mtt-filete);
	scroll-margin-top: 120px;
}

.mtt-reserva__precio,
.mtt-reserva__bloque,
.mtt-reserva__pie { padding: 24px 28px; }

.mtt-reserva__precio,
.mtt-reserva__bloque { border-bottom: 1px solid var(--mtt-filete); }

.mtt-reserva__cifra {
	display: flex;
	align-items: baseline;
	gap: 12px;
	margin: 0;
}

.mtt-reserva__por,
.mtt-reserva__impuestos,
.mtt-reserva__nota,
.mtt-reserva__cancelacion,
.mtt-reserva__aviso {
	font: 400 15px/1.6 var(--mtt-ui);
	color: var(--mtt-grafito);
}

.mtt-reserva__impuestos { margin: 10px 0 0; }
.mtt-reserva__nota { margin: 14px 0 0; }
.mtt-reserva__cancelacion { margin: 8px 0 0; color: var(--mtt-oliva); }

.mtt-opciones {
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.mtt-opcion {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 14px;
	min-height: 58px;
	padding: 16px 18px;
	background: var(--mtt-blanco);
	border: 1px solid var(--mtt-filete);
	text-align: left;
	cursor: pointer;
}

.mtt-opcion.es-activa {
	background: var(--mtt-travertino);
	border-color: var(--mtt-rosso);
}

.mtt-opcion__texto { min-width: 0; }

.mtt-opcion__nombre {
	display: block;
	font: 400 16px/1.3 var(--mtt-ui);
	color: var(--mtt-tinta);
}

.mtt-opcion.es-activa .mtt-opcion__nombre { font-weight: 500; }
.mtt-opcion.es-activa .mtt-opcion__nombre::before { content: '✓ '; color: var(--mtt-rosso); }

.mtt-opcion__nota {
	display: block;
	margin-top: 5px;
	font: 400 14px/1.5 var(--mtt-ui);
	color: var(--mtt-grafito);
}

.mtt-opcion__precio {
	flex: none;
	font-family: var(--mtt-display);
	font-weight: 500;
	font-size: 22px;
	line-height: 1.2;
	color: var(--mtt-tinta);
}

.mtt-reserva__confianza {
	display: flex;
	flex-direction: column;
	gap: 12px;
	margin: 22px 0 0;
	padding: 20px 0 0;
	border-top: 1px solid var(--mtt-filete);
	list-style: none;
	font: 400 15px/1.5 var(--mtt-ui);
	color: var(--mtt-grafito);
}

.mtt-reserva__confianza strong { color: var(--mtt-tinta); font-weight: 500; }

/* Calendario opcional (solo visual) */

.mtt-calendario__barra {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	margin-bottom: 16px;
}

.mtt-calendario__nav {
	width: 42px;
	height: 42px;
	background: var(--mtt-blanco);
	border: 1px solid var(--mtt-filete);
	font: 300 16px/1 var(--mtt-ui);
	cursor: pointer;
}

.mtt-calendario__mes {
	font: 500 13px/1 var(--mtt-ui);
	letter-spacing: .14em;
	text-transform: uppercase;
}

.mtt-calendario__semana,
.mtt-calendario__dias {
	display: grid;
	grid-template-columns: repeat(7, 1fr);
	gap: 4px;
}

.mtt-calendario__semana {
	margin-bottom: 4px;
	text-align: center;
	font: 500 11px/1 var(--mtt-ui);
	letter-spacing: .1em;
	color: var(--mtt-piedra);
}

.mtt-calendario__dia {
	aspect-ratio: 1 / 1;
	display: flex;
	align-items: center;
	justify-content: center;
	background: var(--mtt-blanco);
	border: 1px solid var(--mtt-filete-suave);
	font: 400 15px/1 var(--mtt-ui);
	color: var(--mtt-tinta);
	cursor: pointer;
}

.mtt-calendario__dia[disabled] { color: #B5AFA2; cursor: default; }
.mtt-calendario__dia.es-activo {
	background: var(--mtt-rosso);
	border-color: var(--mtt-rosso);
	color: var(--mtt-blanco);
	font-weight: 500;
}

/* --- CTA móvil fijo -------------------------------------------------------- */

.mtt-cta-movil {
	display: none;
	position: fixed;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 40;
	align-items: center;
	gap: 14px;
	padding: 12px 16px;
	background: var(--mtt-blanco);
	border-top: 1px solid var(--mtt-filete);
	transition: transform .3s var(--mtt-curva), opacity .3s ease;
}

.mtt-cta-movil.es-oculta {
	transform: translateY(120%);
	opacity: 0;
	pointer-events: none;
}

.mtt-cta-movil__info { flex: none; display: flex; flex-direction: column; }
.mtt-cta-movil__info .mtt-eyebrow { margin: 0 0 3px; font-size: 9px; }
.mtt-cta-movil .mtt-boton { flex: 1; }

/* --- Landing de monumento -------------------------------------------------- */

.mtt-landing {
	position: relative;
	display: flex;
	align-items: flex-end;
	min-height: min(520px, 62vh);
	overflow: hidden;
	background: var(--mtt-travertino-oscuro);
}

.mtt-landing:not(:has(.mtt-landing__foto)) {
	min-height: 0;
	padding-top: 56px;
	background: var(--mtt-blanco);
}

.mtt-landing__foto {
	position: absolute;
	inset: -10% 0;
	display: block;
	will-change: transform;
}

.mtt-landing__foto img,
.mtt-landing__foto picture { width: 100%; height: 100%; display: block; }
.mtt-landing__img { object-fit: cover; }

.mtt-landing__velo {
	position: absolute;
	inset: 0;
	background: linear-gradient(0deg, rgba(26, 22, 18, .88) 0px, rgba(26, 22, 18, .62) 200px, rgba(26, 22, 18, .18) 380px, rgba(26, 22, 18, 0) 480px);
}

.mtt-landing__cuerpo {
	position: relative;
	z-index: 2;
	padding-top: 180px;
	padding-bottom: 56px;
}

.mtt-landing__intro {
	margin: 0;
	font: 400 18px/1.75 var(--mtt-ui);
	color: #EDE7DC;
	max-width: 60ch;
}

.mtt-landing:not(:has(.mtt-landing__foto)) .mtt-landing__cuerpo { padding-top: 0; }
.mtt-landing:not(:has(.mtt-landing__foto)) .mtt-landing__intro { color: var(--mtt-grafito); }

/* --- Archivo y legal ------------------------------------------------------- */

/* La cabecera es sticky en interiores (ocupa su hueco), así que basta con un
   respiro; no hace falta compensar toda su altura. */
.mtt-archivo__cabecera,
.mtt-pagina,
.mtt-legal,
.mtt-404 { padding-top: 40px; }

.mtt-miga { margin-top: 8px; }

.mtt-archivo__cabecera { margin-bottom: 8px; }

.mtt-legal__layout {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 32px;
	max-width: 900px;
}

.mtt-legal__fecha {
	margin: 0;
	font: 400 15px/1.6 var(--mtt-ui);
	color: var(--mtt-piedra);
}

.mtt-legal__indice {
	padding: 24px 28px;
	background: var(--mtt-travertino);
	border: 1px solid var(--mtt-filete);
}

.mtt-legal__indice ol {
	margin: 0;
	padding-left: 20px;
	font: 400 16px/1.9 var(--mtt-ui);
}

.mtt-legal__indice a { color: var(--mtt-tinta); text-decoration: underline; text-underline-offset: 3px; }
.mtt-legal__indice a:hover { color: var(--mtt-rosso); }

.mtt-prosa--legal { font-size: 17px; max-width: 74ch; }

.mtt-listado { margin: 0; padding: 0; list-style: none; }
.mtt-listado__item { padding: 28px 0; border-bottom: 1px solid var(--mtt-filete); }

.mtt-paginacion,
.pagination {
	margin-top: 56px;
	font: 500 12px/1 var(--mtt-ui);
	letter-spacing: .16em;
	text-transform: uppercase;
}

.pagination .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 48px;
	min-height: 48px;
	padding: 0 12px;
	border: 1px solid var(--mtt-filete);
	color: var(--mtt-tinta);
	margin-right: 6px;
}

.pagination .page-numbers.current {
	background: var(--mtt-tinta);
	border-color: var(--mtt-tinta);
	color: var(--mtt-blanco);
}

/* --- Buscador -------------------------------------------------------------- */

.mtt-buscador {
	display: flex;
	gap: 10px;
	align-items: center;
	flex-wrap: wrap;
}

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

.mtt-buscador__campo {
	flex: 1 1 240px;
	min-height: 48px;
	padding: 0 16px;
	border: 1px solid var(--mtt-filete);
	font: 400 16px/1 var(--mtt-ui);
	color: var(--mtt-tinta);
	background: var(--mtt-blanco);
}

/* --- Reveal ---------------------------------------------------------------- */

[data-mtt-reveal] {
	opacity: 1;
}

.mtt-js [data-mtt-reveal]:not(.es-visible) {
	opacity: 0;
	transform: translateY(24px);
}

.mtt-js [data-mtt-reveal] {
	transition: opacity .7s var(--mtt-curva), transform .7s var(--mtt-curva);
	transition-delay: var(--mtt-retardo, 0ms);
}

/* --- Responsive ------------------------------------------------------------ */

@media (max-width: 1200px) {
	.mtt-nav { display: none; }
	.mtt-reserva { position: static; max-height: none; }
}

@media (max-width: 900px) {
	.mtt-menu-boton { display: flex; }

	.mtt-cabecera__fila { gap: 12px; padding-top: 13px; padding-bottom: 13px; }

	/* El aviso legal ocupa dos o tres líneas en móvil: se le da alto suficiente
	   para que no quede cortado antes de colapsarse al hacer scroll. */
	.mtt-disclaimer {
		max-height: 52px;
		font-size: 9px;
		line-height: 1.45;
		letter-spacing: .1em;
	}
	.mtt-disclaimer .mtt-contenedor { padding-top: 7px; padding-bottom: 7px; }
	.mtt-monumento__estado { font-size: 9px; letter-spacing: .1em; }
	.mtt-cabecera__acciones { gap: 8px; flex: none; }
	.mtt-logo { height: 28px; }
	.mtt-idiomas__boton { padding: 0 12px; height: 42px; min-height: 42px; }
	.mtt-menu-boton { width: 42px; height: 42px; }
	.mtt-cabecera__cta { display: none; }
	.mtt-idiomas__nombre { display: none; }

	.mtt-hero { min-height: max(620px, 88vh); }
	.mtt-hero__cuerpo { padding-top: 150px; padding-bottom: 36px; }
	.mtt-hero__img { object-position: 62% center; }
	.mtt-hero__velo {
		background:
			linear-gradient(0deg, rgba(26, 22, 18, .92) 0px, rgba(26, 22, 18, .76) 180px, rgba(26, 22, 18, .56) 300px, rgba(26, 22, 18, .20) 420px, rgba(26, 22, 18, 0) 520px),
			linear-gradient(180deg, rgba(26, 22, 18, .44) 0px, rgba(26, 22, 18, .14) 150px, rgba(26, 22, 18, 0) 260px);
	}

	.mtt-h1 { font-size: 42px; line-height: 1; }
	.mtt-h2 { font-size: 30px; }

	.mtt-garantias {
		display: grid;
		grid-template-columns: 1fr 1fr;
		gap: 14px 18px;
		margin-top: 28px;
		padding-top: 20px;
	}
	.mtt-garantias__item { font-size: 13px; white-space: normal; }

	/* Selector de monumentos: filas de 92px con miniatura de 64px. Todas las
	   tarjetas mantienen el mismo tamaño al seleccionar. */
	.mtt-monumentos__grid { grid-template-columns: 1fr 1fr; gap: 10px; }

	.mtt-monumento {
		display: flex;
		align-items: center;
		gap: 12px;
		min-height: 92px;
		background: var(--mtt-blanco);
		border-top: 1px solid var(--mtt-filete);
	}

	.mtt-monumento__foto { width: 64px; height: 64px; flex: none; }
	.mtt-monumento .mtt-marco { aspect-ratio: 1 / 1; width: 64px; height: 64px; }
	.mtt-monumento__etiqueta { display: none !important; }

	.mtt-monumento__pie {
		flex-direction: column;
		align-items: flex-start;
		gap: 6px;
		min-height: 0;
		margin: 0;
		padding: 10px 4px 10px 0;
		border: 0;
	}

	.mtt-monumento__nombre { font-size: 19px; line-height: 1.15; }
	.mtt-monumento__cuenta { font-size: 10px; }

	.mtt-monumento.es-activo .mtt-monumento__estado { display: block; }
	.mtt-monumento.es-activo .mtt-monumento__cuenta { display: none; }

	.mtt-monumento.es-activo { border-top: 2px solid var(--mtt-rosso); }
	.mtt-monumento.es-activo .mtt-monumento__pie { border-top: 0; }
		.mtt-monumento.es-activo .mtt-monumento__img { transform: none; }

	.mtt-quitar-filtro { width: 100%; }

	.mtt-grid { grid-template-columns: 1fr; gap: 44px; }
	.mtt-grid--compacta { grid-template-columns: 1fr; gap: 26px; }

	/* Foto de card a la misma altura que en desktop (~4/3.4 ≈ 300px), sin
	   pasar de ~350px. */
	.mtt-card .mtt-marco { --ratio: 4 / 3.4 !important; max-height: 350px; }
	.mtt-card__foto { overflow: hidden; }

	.mtt-card--compacta { flex-direction: row; gap: 16px; }
	.mtt-card--compacta .mtt-card__foto { width: 124px; flex: none; }
	.mtt-card--compacta .mtt-marco { --ratio: 1 / 1 !important; height: 100%; max-height: none; }
	.mtt-card--compacta .mtt-card__cuerpo { padding-top: 0; }

	.mtt-card__acciones { flex-direction: column; align-items: stretch; gap: 12px; }
	.mtt-card__acciones .mtt-enlace-sutil { align-self: center; }
	.mtt-card--compacta .mtt-card__acciones { flex-direction: row; align-items: center; }
	/* En móvil la card compacta es horizontal y no hay ancho para los dos. */
	.mtt-card--compacta .mtt-card__acciones { flex-wrap: wrap; }
	.mtt-card--compacta .mtt-card__acciones .mtt-enlace-sutil { align-self: auto; }

	/* Al filtrar, las no seleccionadas pasan al formato compacto horizontal,
	   como «Actividades más reservadas». */
	.mtt-grid .mtt-card.es-despriorizada {
		flex-direction: row;
		gap: 16px;
		align-items: stretch;
	}
	.mtt-grid .mtt-card.es-despriorizada .mtt-card__foto { width: 124px; flex: none; }
	.mtt-grid .mtt-card.es-despriorizada .mtt-marco { --ratio: 1 / 1 !important; height: 100%; max-height: none; }
	.mtt-grid .mtt-card.es-despriorizada .mtt-card__cuerpo { padding-top: 0; gap: 9px; }
	.mtt-grid .mtt-card.es-despriorizada .mtt-card__resumen,
	.mtt-grid .mtt-card.es-despriorizada .mtt-enlace-sutil { display: none; }
	.mtt-grid .mtt-card.es-despriorizada .mtt-card__titulo { font-size: 20px; line-height: 1.2; }
	.mtt-grid .mtt-card.es-despriorizada .mtt-card__precio { padding-top: 4px; }
	.mtt-grid .mtt-card.es-despriorizada .mtt-card__acciones { flex-direction: row; align-items: center; gap: 12px; margin-top: auto; }
	.mtt-grid .mtt-card.es-despriorizada .mtt-boton--primario {
		min-height: 44px;
		padding: 0 16px;
		background: transparent;
		border-color: var(--mtt-tinta);
		color: var(--mtt-tinta);
		flex: none;
		width: auto;
	}
	.mtt-grid .mtt-card.es-despriorizada .mtt-card__cinta { font-size: 8px; padding: 7px 9px; letter-spacing: .1em; }

	/* Galería en móvil: la principal gana altura (≈ 6/5) y las miniaturas se
	   reducen (~40% del ancho, 4/3) para marcar jerarquía y dejar ver que la
	   tira se puede deslizar. */
	.mtt-galeria__principal { aspect-ratio: 6 / 5; }

	/* Tira de miniaturas arrastrable con snap */
	.mtt-galeria__tira {
		display: flex;
		gap: 8px;
		margin-top: 8px;
		overflow-x: auto;
		scroll-snap-type: x mandatory;
		-webkit-overflow-scrolling: touch;
		scrollbar-width: none;
	}
	.mtt-galeria__tira::-webkit-scrollbar { display: none; }
	.mtt-galeria__item { flex: 0 0 40%; scroll-snap-align: start; }
	.mtt-galeria__item .mtt-marco { --ratio: 4 / 3; }

	.mtt-ficha__layout { gap: 40px; padding-top: 20px; }
	.mtt-reserva { flex: 1 1 100%; }

	.mtt-faq__caja { grid-template-columns: 1fr; gap: 20px; }

	.mtt-prefooter { min-height: 600px; }
	.mtt-prefooter__cuerpo { grid-template-columns: 1fr; gap: 26px; padding-top: 48px; padding-bottom: 40px; }

	.mtt-pie__columnas { grid-template-columns: 1fr 1fr; gap: 28px; padding-top: 40px; padding-bottom: 32px; }
	.mtt-pie__marca { grid-column: 1 / -1; }

	.mtt-datos { grid-template-columns: 1fr; }
	.mtt-datos dt { padding: 16px 0 4px; border-bottom: 0; }
	.mtt-datos dd { padding: 0 0 16px; }

	.mtt-avisos { padding: 24px; }

	body.mtt-ficha { padding-bottom: 88px; }
	.mtt-cta-movil { display: flex; }

	.mtt-boton { min-height: 56px; }
}

@media (max-width: 360px) {
	.mtt-garantias { grid-template-columns: 1fr; }
	.mtt-monumentos__grid { grid-template-columns: 1fr; }
}

/* --- Movimiento reducido --------------------------------------------------- */

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }

	*,
	*::before,
	*::after {
		animation-duration: .01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: .01ms !important;
	}

	.mtt-js [data-mtt-reveal]:not(.es-visible) {
		opacity: 1;
		transform: none;
	}

	.mtt-hero__foto,
	.mtt-prefooter__foto,
	.mtt-galeria__capa,
	.mtt-landing__foto {
		transform: none !important;
	}
}

@media (prefers-reduced-motion: reduce) {
	.mtt-menu-movil__cerrar span { animation: none !important; }
}

/* --- Impresión ------------------------------------------------------------- */

@media print {
	.mtt-cabecera,
	.mtt-menu-movil,
	.mtt-cta-movil,
	.mtt-prefooter,
	.mtt-reserva { display: none !important; }

	body { font-size: 12pt; }
}

/* --- Precio tachado y ventajas de ficha (sincronización) ------------------- */

.mtt-precio-tachado {
	font-family: var(--mtt-display);
	font-weight: 400;
	font-size: 22px;
	line-height: 1;
	color: var(--mtt-piedra);
	text-decoration: line-through;
	margin-right: 4px;
}

.mtt-precio-tachado--xl { font-size: 30px; }

.mtt-ficha__ventajas {
	display: flex;
	flex-direction: column;
	gap: 12px;
	margin: 0 0 32px;
	padding: 0;
	list-style: none;
}

.mtt-ficha__ventajas li {
	display: flex;
	align-items: center;
	gap: 12px;
	font: 400 17px/1.4 var(--mtt-ui);
	color: var(--mtt-carbon);
}

.mtt-ficha__ventajas .mtt-icono { color: var(--mtt-oliva); flex: none; }

/* --- Modal de disponibilidad ---------------------------------------------- */

.mtt-modal {
	position: fixed;
	inset: 0;
	z-index: 90;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 32px;
}

.mtt-modal[hidden] { display: none; }

.mtt-modal__overlay {
	position: absolute;
	inset: 0;
	background: rgba(18, 16, 14, .58);
}

.mtt-modal__panel {
	position: relative;
	width: 100%;
	max-width: 460px;
	max-height: 88vh;
	overflow-y: auto;
	overscroll-behavior: contain;
	background: var(--mtt-blanco);
	display: flex;
	flex-direction: column;
}

.mtt-modal__cabecera {
	position: sticky;
	top: 0;
	background: var(--mtt-blanco);
	border-bottom: 1px solid var(--mtt-filete);
	padding: 20px 24px;
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 16px;
}

.mtt-modal__titulo {
	margin: 8px 0 0;
	font-family: var(--mtt-display);
	font-weight: 500;
	font-size: 22px;
	line-height: 1.2;
	color: var(--mtt-tinta);
	max-width: 26ch;
}

.mtt-modal__cerrar {
	width: 44px;
	height: 44px;
	flex: none;
	background: var(--mtt-blanco);
	border: 1px solid var(--mtt-filete);
	cursor: pointer;
	font: 300 18px/1 var(--mtt-ui);
	color: var(--mtt-tinta);
}

.mtt-modal__cuerpo { padding: 22px 24px; }

.mtt-modal__precio {
	display: flex;
	align-items: baseline;
	gap: 10px;
	margin: 0 0 20px;
}
.mtt-modal__precio .mtt-eyebrow { margin: 0; }

.mtt-modal__nota {
	margin: 16px 0 0;
	font: 400 15px/1.6 var(--mtt-ui);
	color: var(--mtt-grafito);
}

.mtt-modal__pie {
	position: sticky;
	bottom: 0;
	background: var(--mtt-blanco);
	border-top: 1px solid var(--mtt-filete);
	padding: 20px 24px;
}
.mtt-modal__pie .mtt-reserva__nota { margin: 14px 0 0; }

/* La card entera es pulsable cuando hay JS. */
.mtt-js .mtt-card { cursor: pointer; }
.mtt-js .mtt-card .mtt-enlace-sutil { cursor: pointer; }

@media (max-width: 900px) {
	.mtt-modal { padding: 0; align-items: flex-end; }
	.mtt-modal__panel { max-width: 100%; max-height: 92vh; }
}

@media (prefers-reduced-motion: reduce) {
	.mtt-cta-movil { transition: none; }
}

/* ==========================================================================
   Selector de monumentos — variante «botón con icono» (.mtt-mon-btn)
   Alternativa a .mtt-monumento (versión con foto). Tile con borde para que se
   lea como botón/filtro; icono line-art vía mtt_icono_monumento().
   ========================================================================== */

.mtt-mon-btns {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: clamp(12px, 1.6vw, 20px);
}

.mtt-mon-btn {
	position: relative;
	overflow: hidden;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 14px;
	padding: 30px 18px 24px;
	background: var(--mtt-blanco);
	border: 1px solid var(--mtt-filete);
	color: var(--mtt-tinta);
	text-align: center;
	text-decoration: none;
	cursor: pointer;
	transition:
		border-color .3s var(--mtt-curva),
		background .3s var(--mtt-curva),
		transform .3s var(--mtt-curva),
		box-shadow .3s var(--mtt-curva);
}

.mtt-mon-btn:hover {
	border-color: var(--mtt-piedra);
	background: var(--mtt-travertino);
	color: var(--mtt-tinta);
	transform: translateY(-3px);
	box-shadow: 0 14px 30px -22px rgba(26, 25, 23, .5);
}

.mtt-mon-btn:focus-visible {
	outline: 2px solid var(--mtt-rosso);
	outline-offset: 3px;
}

/* Foto del monumento como fondo: aparece con fade + zoom suave al hover. */
.mtt-mon-btn::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 0;
	background-image: var(--mtt-mon-fondo, none);
	background-size: cover;
	background-position: center;
	opacity: 0;
	transform: scale(1.08);
	transition:
		opacity .5s var(--mtt-curva),
		transform .9s var(--mtt-curva);
	pointer-events: none;
}

.mtt-mon-btn:hover::before,
.mtt-mon-btn:focus-visible::before,
.mtt-mon-btn.es-activo::before {
	opacity: .15;
	transform: scale(1);
}

/* El contenido siempre por encima de la foto. */
.mtt-mon-btn__marca,
.mtt-mon-btn__nombre,
.mtt-mon-btn__cuenta,
.mtt-mon-btn__estado {
	position: relative;
	z-index: 1;
}

@media (prefers-reduced-motion: reduce) {
	.mtt-mon-btn::before { transition: opacity .3s linear; transform: none; }
	.mtt-mon-btn:hover::before,
	.mtt-mon-btn:focus-visible::before { transform: none; }
}

.mtt-mon-btn__marca {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 84px;
	height: 84px;
	border-radius: 50%;
	background: var(--mtt-travertino);
	color: var(--mtt-grafito);
	transition: background .3s var(--mtt-curva), color .3s var(--mtt-curva);
}

.mtt-mon-btn:hover .mtt-mon-btn__marca {
	background: var(--mtt-travertino-oscuro);
	color: var(--mtt-tinta);
}

.mtt-mon-btn__svg {
	width: 48px;
	height: 48px;
	display: block;
}

.mtt-mon-btn__nombre {
	font-family: var(--mtt-display);
	font-weight: 500;
	font-size: 23px;
	line-height: 1.15;
	color: var(--mtt-tinta);
}

.mtt-mon-btn__cuenta {
	font: 400 12px/1.5 var(--mtt-ui);
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--mtt-piedra);
}

/* Tercera señal de selección (no solo color): texto, oculto salvo activo. */
.mtt-mon-btn__estado {
	display: none;
	font: 500 12px/1.5 var(--mtt-ui);
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--mtt-rosso);
}

/* Estado seleccionado: borde 2 px rosso + medallón e icono rosso + etiqueta. */
.mtt-mon-btn.es-activo {
	border-color: var(--mtt-rosso);
	box-shadow: inset 0 0 0 1px var(--mtt-rosso);
	transform: none;
}

.mtt-mon-btn.es-activo .mtt-mon-btn__marca {
	background: var(--mtt-rosso);
	color: var(--mtt-blanco);
}

.mtt-mon-btn.es-activo .mtt-mon-btn__nombre { color: var(--mtt-rosso); }
.mtt-mon-btn.es-activo .mtt-mon-btn__cuenta { display: none; }
.mtt-mon-btn.es-activo .mtt-mon-btn__estado { display: block; }

@media (max-width: 900px) {
	.mtt-mon-btns { grid-template-columns: 1fr 1fr; gap: 10px; }
	.mtt-mon-btn { padding: 20px 12px 18px; gap: 10px; }
	.mtt-mon-btn__marca { width: 64px; height: 64px; }
	.mtt-mon-btn__svg { width: 38px; height: 38px; }
	.mtt-mon-btn__nombre { font-size: 19px; }
	.mtt-mon-btn__cuenta,
	.mtt-mon-btn__estado { font-size: 10px; }
}

@media (max-width: 400px) {
	.mtt-mon-btn__nombre { font-size: 17px; }
}

/* Emphasis del monumento en la meta de la tarjeta. */
.mtt-card__meta-mon {
	color: var(--mtt-tinta);
	font-weight: 500;
}

.mtt-reserva__bloque.mtt-reserva__widget-caja {
    padding: 0;
}


/* =====================================================================
   My Top Tour — Un solo scroll en el aside de reserva
   Elimina el doble scroll (aside + .mt-hb-body) dejando el <aside#reserva>
   como único contenedor con scroll. El contenido del widget fluye como
   un bloque único.
   ===================================================================== */

/* La caja del widget deja de tener altura fija y scroll interno */
#reserva .mt-hb{
  height: auto;
  max-height: none;
  overflow: visible;
  display: block;
}

/* El cuerpo del widget deja de tener su propio scroll */
#reserva .mt-hb-body{
  height: auto;
  max-height: none;
  overflow: visible;
  flex: none;
}

/* Opcional: mantener el título del ticket visible al hacer scroll.
   Si no lo quieres fijo, elimina este bloque. */
#reserva .mt-hb-head{
  position: sticky;
  top: 0;
  z-index: 5;
  background: #fff;
}

.mtt-card__disponibilidad{display:flex;align-items:center;gap:.45em;margin:.35rem 0 .75rem;font-size:.875rem;font-weight:600;line-height:1.3;color:#1b7f4b}
.mtt-card__disponibilidad.is-later{color:#8a6100}
.mtt-card__disponibilidad-dot{width:.5em;height:.5em;border-radius:50%;background:currentColor;flex:0 0 auto}
.mtt-card__disponibilidad.is-today  .mtt-card__disponibilidad-dot,
.mtt-card__disponibilidad.is-tomorrow .mtt-card__disponibilidad-dot{box-shadow:0 0 0 .22em rgba(27,127,75,.18)}