/* ==========================================================================
   Fogo de Chão México · Sistema de diseño
   Referencia visual: fogodechao.com (reconstruido con código propio).

   1. Tipografías        6. Hero              11. Galería
   2. Tokens             7. Secciones e intro 12. Footer
   3. Base               8. Tarjetas          13. Barra móvil y panel
   4. Utilidades         9. Bloque dividido   14. Movimiento
   5. Header y menú     10. Formularios
   ========================================================================== */

/* 1. Tipografías -----------------------------------------------------------
   PROVISIONALES hasta recibir los archivos con licencia web:
   - Barlow Condensed  → sustituye a Avenir Next LT Pro Bold Condensed (titulares)
   - Nunito Sans       → sustituye a Avenir Next LT Pro (texto y botones)
   - Libre Caslon Text → la misma que usa el sitio global (itálicas y títulos editoriales)
   Para cambiar: reemplazar los .woff2 y los nombres en --fogo-f-* (sección 2). */

@font-face { font-family: "Barlow Condensed"; src: url("../fonts/barlow-condensed-600.woff2") format("woff2"); font-weight: 600; font-style: normal; font-display: swap; }
@font-face { font-family: "Barlow Condensed"; src: url("../fonts/barlow-condensed-700.woff2") format("woff2"); font-weight: 700; font-style: normal; font-display: swap; }
@font-face { font-family: "Libre Caslon Text"; src: url("../fonts/libre-caslon-text-regular.woff2") format("woff2"); font-weight: 400; font-style: normal; font-display: swap; }
@font-face { font-family: "Libre Caslon Text"; src: url("../fonts/libre-caslon-text-italic.woff2") format("woff2"); font-weight: 400; font-style: italic; font-display: swap; }
@font-face { font-family: "Nunito Sans"; src: url("../fonts/nunito-sans-variable.woff2") format("woff2"); font-weight: 300 900; font-style: normal; font-display: swap; }

/* 2. Tokens ------------------------------------------------------------- */

:root {
	/* Color */
	--fogo-negro: #1c1714;          /* fondo principal */
	--fogo-negro-2: #241e1a;        /* superficies sobre negro */
	--fogo-negro-3: #2f2823;
	--fogo-crema: #f4f0ee;          /* fondo claro */
	--fogo-crema-2: #ebe5e0;
	--fogo-dorado: #b4a365;         /* acento de marca (sobre oscuro: 7:1) */
	--fogo-dorado-crema: #8f7c48;   /* titulares grandes dorados sobre crema (3.6:1, texto grande) */
	--fogo-dorado-texto: #6e5f33;   /* texto dorado pequeño sobre crema (5.5:1) */
	--fogo-rojo: #d5250a;           /* botones principales (blanco encima: 5.1:1) */
	--fogo-rojo-hover: #b51f08;
	--fogo-blanco: #fff;
	--fogo-texto-claro: rgba(255, 255, 255, 0.86);
	--fogo-texto-tenue: rgba(255, 255, 255, 0.68);
	--fogo-tinta: #20272c;          /* texto sobre crema */
	--fogo-linea-oscura: rgba(255, 255, 255, 0.16);

	/* Tipografía */
	--fogo-f-cond: "Barlow Condensed", "Avenir Next Condensed", "Arial Narrow", sans-serif;
	--fogo-f-serif: "Libre Caslon Text", Georgia, "Times New Roman", serif;
	--fogo-f-sans: "Nunito Sans", "Avenir Next", "Helvetica Neue", Arial, sans-serif;

	--fogo-t-hero: clamp(3.25rem, 2.2rem + 5.2vw, 6rem);
	--fogo-t-display: clamp(3.25rem, 1.2rem + 6.4vw, 6.5rem);
	--fogo-t-h2: clamp(2.5rem, 1.9rem + 2.6vw, 3.75rem);
	--fogo-t-serif: clamp(2rem, 1.6rem + 1.6vw, 2.75rem);
	--fogo-t-eyebrow: clamp(1.375rem, 1.15rem + 0.9vw, 1.875rem);
	--fogo-t-lead: clamp(1.0625rem, 1rem + 0.3vw, 1.25rem);
	--fogo-t-base: 1rem;
	--fogo-t-chica: 0.875rem;
	--fogo-t-mini: 0.75rem;

	/* Espacio */
	--fogo-ancho: 1120px;
	--fogo-margen: clamp(20px, 5vw, 48px);
	--fogo-seccion: clamp(64px, 4rem + 4vw, 128px);
	--fogo-radio: 6px;

	/* Header */
	--fogo-util-h: 0px;
	--fogo-barra-h: 64px;
	--fogo-header-h: calc(var(--fogo-util-h) + var(--fogo-barra-h));

	/* Movimiento */
	--fogo-curva: cubic-bezier(0.2, 0.7, 0.2, 1);
}

@media (min-width: 1024px) {
	:root {
		--fogo-util-h: 34px;
		--fogo-barra-h: 72px;
	}
}

/* 3. Base --------------------------------------------------------------- */

html { scroll-padding-top: calc(var(--fogo-header-h) + 16px); }

body.fogo {
	margin: 0;
	overflow-x: clip;
	background: var(--fogo-negro);
	color: var(--fogo-texto-claro);
	font-family: var(--fogo-f-sans);
	font-size: var(--fogo-t-base);
	line-height: 1.6;
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
}

:where(.fogo) img,
:where(.fogo) video { display: block; max-width: 100%; height: auto; }

.fogo a { color: inherit; }

.fogo :focus-visible {
	outline: 2px solid var(--fogo-dorado);
	outline-offset: 3px;
	border-radius: 2px;
}
.fogo-seccion--crema :focus-visible { outline-color: var(--fogo-dorado-texto); }

#fogo-contenido:focus { outline: none; }

/* El reset de Hello Elementor pinta los botones de rosa (#c36) al enfocarlos; aquí no aplica. */
.fogo .fogo-header__hamburguesa,
.fogo .fogo-panel__cerrar,
.fogo .fogo-header__hamburguesa:is(:hover, :focus),
.fogo .fogo-panel__cerrar:is(:hover, :focus) {
	border: 0;
	border-radius: 0;
	background-color: transparent;
	color: var(--fogo-blanco);
}
.fogo .fogo-panel__cerrar:hover { color: var(--fogo-dorado); }
.fogo .fogo-hero__pausa:is(:hover, :focus) { background-color: rgba(28, 23, 20, 0.7); color: var(--fogo-blanco); }

.fogo .screen-reader-text {
	position: absolute !important;
	width: 1px; height: 1px;
	padding: 0; margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

/* Contenedores de Elementor sin relleno cuando solo envuelven un widget de Fogo */
.fogo .e-con:has(> [class*="elementor-widget-fogo-"]) {
	--padding-top: 0; --padding-bottom: 0; --padding-left: 0; --padding-right: 0;
	--gap: 0; --row-gap: 0; --column-gap: 0;
	--content-width: 100%;
	padding: 0;
}
.fogo .e-con > .e-con-inner:has(> [class*="elementor-widget-fogo-"]) { max-width: none; padding: 0; gap: 0; }
.fogo [class*="elementor-widget-fogo-"] { width: 100%; }

/* 4. Utilidades y componentes ----------------------------------------- */

.fogo-contenedor {
	width: 100%;
	max-width: calc(var(--fogo-ancho) + 2 * var(--fogo-margen));
	margin-inline: auto;
	padding-inline: var(--fogo-margen);
	box-sizing: border-box;
}

.fogo-saltar {
	position: absolute;
	left: 16px; top: -100px;
	z-index: 1000;
	padding: 12px 20px;
	background: var(--fogo-dorado);
	color: var(--fogo-negro) !important;
	font-weight: 700;
	text-decoration: none;
	border-radius: var(--fogo-radio);
}
.fogo-saltar:focus { top: 12px; }

.fogo-eyebrow {
	margin: 0 0 0.35em;
	font-family: var(--fogo-f-serif);
	font-style: italic;
	font-size: var(--fogo-t-eyebrow);
	line-height: 1.2;
	letter-spacing: -0.01em;
	color: inherit;
}

.fogo-antetitulo {
	margin: 0 0 0.75rem;
	font-family: var(--fogo-f-sans);
	font-size: var(--fogo-t-mini);
	font-weight: 700;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--fogo-dorado);
}
.fogo-seccion--crema .fogo-antetitulo { color: var(--fogo-dorado-texto); }

.fogo-titulo-serif {
	margin: 0 0 1rem;
	font-family: var(--fogo-f-serif);
	font-weight: 400;
	font-size: var(--fogo-t-serif);
	line-height: 1.15;
	letter-spacing: -0.01em;
	color: var(--fogo-blanco);
}
.fogo-seccion--crema .fogo-titulo-serif { color: var(--fogo-negro); }

.fogo-r { font-size: 0.42em; vertical-align: super; line-height: 0; letter-spacing: 0; margin-left: 0.04em; }

/* Botones */
.fogo-btn {
	--fogo-btn-fondo: var(--fogo-rojo);
	--fogo-btn-texto: var(--fogo-blanco);
	--fogo-btn-borde: var(--fogo-rojo);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.5em;
	min-height: 48px;
	padding: 0.75rem 2rem;
	box-sizing: border-box;
	border: 1px solid var(--fogo-btn-borde);
	border-radius: var(--fogo-radio);
	background: var(--fogo-btn-fondo);
	color: var(--fogo-btn-texto) !important;
	font-family: var(--fogo-f-sans);
	font-size: var(--fogo-t-chica);
	font-weight: 800;
	line-height: 1.2;
	letter-spacing: 0.09em;
	text-transform: uppercase;
	text-decoration: none !important;
	text-align: center;
	cursor: pointer;
	transition: background-color 0.25s ease, border-color 0.25s ease, color 0.25s ease, transform 0.25s var(--fogo-curva);
}
.fogo button.fogo-btn,
.fogo button.fogo-btn:is(:hover, :focus) {
	border-color: var(--fogo-btn-borde);
	background-color: var(--fogo-btn-fondo);
	color: var(--fogo-btn-texto);
	font-size: var(--fogo-t-chica);
}
.fogo-btn:hover { --fogo-btn-fondo: var(--fogo-rojo-hover); --fogo-btn-borde: var(--fogo-rojo-hover); }
.fogo-btn:active { transform: translateY(1px); }
.fogo-btn--contorno { --fogo-btn-fondo: transparent; --fogo-btn-texto: var(--fogo-blanco); }
.fogo-btn--contorno:hover { --fogo-btn-fondo: var(--fogo-rojo); --fogo-btn-borde: var(--fogo-rojo); }
.fogo-seccion--crema .fogo-btn--contorno { --fogo-btn-texto: var(--fogo-negro); --fogo-btn-borde: var(--fogo-negro); }
.fogo-seccion--crema .fogo-btn--contorno:hover { --fogo-btn-fondo: var(--fogo-negro); --fogo-btn-texto: var(--fogo-blanco); }
.fogo-btn--dorado { --fogo-btn-fondo: var(--fogo-dorado); --fogo-btn-borde: var(--fogo-dorado); --fogo-btn-texto: var(--fogo-negro); }
.fogo-btn--chico { min-height: 44px; padding: 0.5rem 1.1rem; font-size: var(--fogo-t-mini); }
.fogo-btn--ancho { width: 100%; }

.fogo-botones { display: flex; flex-wrap: wrap; gap: 12px 16px; margin-top: 2rem; }
.fogo-botones .fogo-btn { min-width: 210px; }
.fogo-botones:empty { display: none; }
.fogo-botones--centro { justify-content: center; }

.fogo-icono { flex: none; width: 1.25em; height: 1.25em; }
.fogo-icono--mini { width: 0.95em; height: 0.95em; vertical-align: -0.1em; margin-left: 0.25em; }

/* Separador dorado */
.fogo-sep {
	height: 1px;
	background: linear-gradient(90deg, transparent, var(--fogo-dorado) 22%, var(--fogo-dorado) 78%, transparent);
	opacity: 0.55;
}
.fogo-separador { padding-block: 0; }
.fogo-seccion--crema.fogo-separador { background: var(--fogo-crema); }

/* Marcador de posición para assets que faltan */
.fogo-pendiente {
	display: grid;
	place-items: center;
	width: 100%;
	height: 100%;
	min-height: 240px;
	padding: 24px;
	box-sizing: border-box;
	background:
		repeating-linear-gradient(-45deg, rgba(180, 163, 101, 0.07) 0 12px, transparent 12px 24px),
		var(--fogo-negro-3);
	border: 1px dashed rgba(180, 163, 101, 0.6);
	color: var(--fogo-dorado);
	font-family: var(--fogo-f-sans);
	font-size: var(--fogo-t-chica);
	font-weight: 700;
	letter-spacing: 0.06em;
	text-align: center;
	text-transform: uppercase;
}
.fogo-etiqueta-pendiente {
	position: absolute;
	top: 12px; left: 12px; right: 12px;
	z-index: 3;
	padding: 4px 8px;
	background: rgba(28, 23, 20, 0.85);
	border: 1px dashed var(--fogo-dorado);
	color: var(--fogo-dorado);
	font-size: 0.6875rem;
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	text-align: center;
}

/* 5. Header y menú ------------------------------------------------------ */

.fogo-header {
	position: sticky;
	top: 0;
	z-index: 100;
	background: var(--fogo-negro);
	color: var(--fogo-blanco);
}
.admin-bar .fogo-header { top: var(--wp-admin--admin-bar--height, 0px); }

.fogo-header__util {
	display: none;
	height: var(--fogo-util-h);
	border-bottom: 1px solid var(--fogo-linea-oscura);
	font-size: var(--fogo-t-mini);
}
.fogo-header__util-in {
	display: flex;
	align-items: center;
	justify-content: space-between;
	height: 100%;
	max-width: none;
}
.fogo-header__util-links {
	display: flex;
	margin: 0; padding: 0;
	list-style: none;
}
.fogo-header__util-links li + li { border-left: 1px solid var(--fogo-linea-oscura); }
.fogo-header__util-links a {
	display: block;
	padding: 4px 14px;
	color: var(--fogo-texto-claro);
	text-decoration: none;
	letter-spacing: 0.04em;
}
.fogo-header__util-links li:last-child a { padding-right: 0; }
.fogo-header__util-links a:hover { color: var(--fogo-dorado); }

.fogo-redes { display: flex; gap: 4px; margin: 0; padding: 0; list-style: none; }
.fogo-redes a {
	display: grid;
	place-items: center;
	width: 44px; height: 44px;
	color: var(--fogo-dorado);
	transition: color 0.2s ease;
}
.fogo-redes a:hover { color: var(--fogo-blanco); }
.fogo-redes--mini a { width: 30px; height: 30px; }
.fogo-redes--mini .fogo-icono { width: 16px; height: 16px; }

.fogo-header__barra {
	display: flex;
	align-items: center;
	gap: 12px;
	height: var(--fogo-barra-h);
	padding-left: var(--fogo-margen);
}
.fogo-header__logo { display: block; flex: 0 1 auto; min-width: 0; margin-right: auto; }
.fogo-header__logo img { width: auto; max-width: 100%; height: 20px; object-fit: contain; object-position: left center; }
@media (max-width: 380px) {
	.fogo-header__logo img { height: 17px; }
	.fogo-header__reservar { padding: 0 12px; letter-spacing: 0.08em; }
}

.fogo-nav { display: none; }
.fogo-nav__lista { display: flex; gap: clamp(16px, 2vw, 32px); margin: 0; padding: 0; list-style: none; }
.fogo-nav__lista a {
	position: relative;
	display: block;
	padding-block: 10px;
	color: var(--fogo-blanco);
	font-size: 0.8125rem;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	text-decoration: none;
	transition: color 0.2s ease;
}
.fogo-nav__lista a::after {
	content: "";
	position: absolute;
	left: 0; right: 0; bottom: 4px;
	height: 1px;
	background: var(--fogo-dorado);
	transform: scaleX(0);
	transition: transform 0.3s var(--fogo-curva);
}
.fogo-nav__lista a:hover,
.fogo-nav__lista a[aria-current] { color: var(--fogo-dorado); }
.fogo-nav__lista a:hover::after,
.fogo-nav__lista a[aria-current]::after { transform: scaleX(1); }

.fogo-header__reservar {
	display: inline-flex;
	align-items: center;
	height: 40px;
	padding: 0 16px;
	border-radius: var(--fogo-radio);
	background: var(--fogo-dorado);
	color: var(--fogo-negro) !important;
	font-size: var(--fogo-t-mini);
	font-weight: 800;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	text-decoration: none;
	white-space: nowrap;
	transition: background-color 0.2s ease;
}
.fogo-header__reservar:hover { background: #c6b67b; }

.fogo-header__hamburguesa {
	display: grid;
	flex: none;
	place-items: center;
	width: 48px; height: var(--fogo-barra-h);
	margin-right: calc(var(--fogo-margen) - 12px);
	padding: 0;
	border: 0;
	background: none;
	color: var(--fogo-blanco);
	cursor: pointer;
}
.fogo-header__hamburguesa .fogo-icono { width: 28px; height: 28px; grid-area: 1 / 1; transition: opacity 0.2s ease, transform 0.3s var(--fogo-curva); }
.fogo-header__hamburguesa .fogo-icono--cerrar { opacity: 0; transform: rotate(-45deg); }
.fogo-header__hamburguesa[aria-expanded="true"] .fogo-icono--abrir { opacity: 0; transform: rotate(45deg); }
.fogo-header__hamburguesa[aria-expanded="true"] .fogo-icono--cerrar { opacity: 1; transform: none; }

.fogo-menu-movil {
	position: fixed;
	inset: var(--fogo-header-h) 0 0 0;
	z-index: 99;
	display: flex;
	flex-direction: column;
	gap: 28px;
	padding: 32px var(--fogo-margen) calc(32px + env(safe-area-inset-bottom));
	overflow-y: auto;
	background: var(--fogo-negro);
	border-top: 1px solid var(--fogo-linea-oscura);
}
.admin-bar .fogo-menu-movil { top: calc(var(--fogo-header-h) + var(--wp-admin--admin-bar--height, 0px)); }
.fogo-menu-movil[hidden] { display: none; }
.fogo-menu-movil.is-abierto { animation: fogo-entrar 0.35s var(--fogo-curva); }
.fogo-menu-movil__lista { margin: 0; padding: 0; list-style: none; }
.fogo-menu-movil__lista a {
	display: block;
	padding: 10px 0;
	border-bottom: 1px solid var(--fogo-linea-oscura);
	color: var(--fogo-blanco);
	font-family: var(--fogo-f-cond);
	font-size: 2.125rem;
	font-weight: 700;
	line-height: 1.1;
	letter-spacing: 0.01em;
	text-transform: uppercase;
	text-decoration: none;
}
.fogo-menu-movil__lista a[aria-current] { color: var(--fogo-dorado); }
.fogo-menu-movil__util { display: flex; flex-wrap: wrap; gap: 8px 24px; margin: 0; padding: 0; list-style: none; }
.fogo-menu-movil__util a { display: inline-block; padding: 10px 0; color: var(--fogo-texto-claro); text-decoration: none; }
html.fogo-menu-abierto { overflow: hidden; }

@media (min-width: 1024px) {
	.fogo-header__util { display: block; }
	.fogo-header__barra { gap: clamp(20px, 2.5vw, 40px); }
	.fogo-header__logo img { height: 24px; }
	.fogo-nav { display: block; }
	.fogo-header__reservar {
		height: 100%;
		padding: 0 clamp(28px, 3vw, 48px);
		border-radius: 0;
		font-size: 0.8125rem;
	}
	.fogo-header__hamburguesa,
	.fogo-menu-movil { display: none; }
}

@keyframes fogo-entrar {
	from { opacity: 0; transform: translateY(-8px); }
	to { opacity: 1; transform: none; }
}

/* 6. Hero --------------------------------------------------------------- */

.fogo-hero {
	position: relative;
	display: grid;
	align-items: center;
	min-height: calc(100svh - var(--fogo-header-h));
	overflow: hidden;
	background: var(--fogo-negro);
	color: var(--fogo-blanco);
	isolation: isolate;
}
.fogo-hero--media { min-height: clamp(280px, 42vh, 420px); }
.fogo-hero--media .fogo-hero__contenido { padding-block: 56px; }
.fogo-hero--media .fogo-hero__titulo { max-width: 22ch; margin-bottom: 0; font-size: clamp(2.75rem, 1.7rem + 3.6vw, 4.75rem); }
.fogo-hero--media .fogo-btn { margin-top: 1.75rem; }
.admin-bar .fogo-hero--completa { min-height: calc(100svh - var(--fogo-header-h) - var(--wp-admin--admin-bar--height, 0px)); }

.fogo-hero__media,
.fogo-hero__velo { position: absolute; inset: 0; z-index: -1; }
.fogo-hero__poster,
.fogo-hero__video {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	max-width: none;
	object-fit: cover;
}
.fogo-hero__media picture { display: contents; }
.fogo-hero__video { opacity: 0; transition: opacity 1s ease; }
.fogo-hero__video.is-reproduciendo { opacity: 1; }
.fogo-hero__velo {
	background:
		linear-gradient(180deg, rgba(28, 23, 20, 0.55) 0%, rgba(28, 23, 20, 0.2) 35%, rgba(28, 23, 20, 0.35) 65%, rgba(28, 23, 20, 0.8) 100%);
}

.fogo-hero__contenido {
	padding-block: 64px 96px;
	text-align: center;
}
.fogo-hero__eyebrow { margin-bottom: 0.1em; color: var(--fogo-blanco); text-shadow: 0 1px 18px rgba(0, 0, 0, 0.35); }
.fogo-hero__titulo {
	margin: 0 auto 2.25rem;
	max-width: 14ch;
	font-family: var(--fogo-f-cond);
	font-size: var(--fogo-t-hero);
	font-weight: 700;
	line-height: 0.95;
	letter-spacing: 0.005em;
	text-transform: uppercase;
	color: var(--fogo-blanco);
	text-shadow: 0 2px 30px rgba(0, 0, 0, 0.35);
	text-wrap: balance;
}
.fogo-hero__titulo em {
	font-family: var(--fogo-f-serif);
	font-weight: 400;
	font-size: 0.78em;
	text-transform: none;
	letter-spacing: 0;
}

.fogo-hero__pausa {
	position: absolute;
	right: var(--fogo-margen);
	bottom: 24px;
	display: grid;
	place-items: center;
	width: 44px; height: 44px;
	padding: 0;
	border: 1.5px solid rgba(255, 255, 255, 0.85);
	border-radius: 50%;
	background: rgba(28, 23, 20, 0.35);
	color: var(--fogo-blanco);
	cursor: pointer;
	transition: background-color 0.2s ease;
}
.fogo-hero__pausa:hover { background: rgba(28, 23, 20, 0.7); }
.fogo-hero__pausa .fogo-icono { grid-area: 1 / 1; width: 20px; height: 20px; }
.fogo-hero__pausa .fogo-icono--play,
.fogo-hero__pausa[aria-pressed="true"] .fogo-icono--pausa { display: none; }
.fogo-hero__pausa[aria-pressed="true"] .fogo-icono--play { display: block; }

/* 7. Secciones e introducción -------------------------------------------- */

.fogo-seccion { padding-block: var(--fogo-seccion); }
.fogo-seccion--oscuro { background: var(--fogo-negro); color: var(--fogo-texto-claro); }
.fogo-seccion--crema { background: var(--fogo-crema); color: var(--fogo-tinta); }

/* Dos secciones del mismo fondo seguidas no duplican el espacio
   (en Elementor cada sección vive en su propio contenedor .e-con) */
.e-con:has(> .elementor-element > .fogo-seccion.fogo-seccion--crema) + .e-con > .elementor-element > .fogo-seccion--crema,
.e-con:has(> .elementor-element > .fogo-seccion.fogo-seccion--oscuro) + .e-con > .elementor-element > .fogo-seccion--oscuro { padding-top: 0; }
.fogo-seccion--crema + .fogo-seccion--crema,
.fogo-seccion--oscuro + .fogo-seccion--oscuro { padding-top: 0; }

.fogo-intro__cabeza { text-align: center; margin-bottom: clamp(32px, 5vw, 56px); }
.fogo-intro__subtitulo {
	margin: 0;
	font-family: var(--fogo-f-serif);
	font-style: italic;
	font-size: var(--fogo-t-eyebrow);
	line-height: 1.25;
	color: var(--fogo-negro);
}
.fogo-intro__rejilla {
	display: grid;
	gap: clamp(32px, 5vw, 72px);
	align-items: center;
}
.fogo-intro__titulo {
	display: flex;
	flex-direction: column;
	margin: 0;
	font-family: var(--fogo-f-cond);
	font-size: var(--fogo-t-display);
	font-weight: 700;
	line-height: 0.88;
	letter-spacing: 0.005em;
	text-transform: uppercase;
	text-align: center;
	text-wrap: balance;
}
.fogo-intro__l1 { color: var(--fogo-dorado-crema); white-space: nowrap; }
.fogo-intro__l2 { color: var(--fogo-negro); }
.fogo-intro__remate {
	margin-top: 0.12em;
	font-family: var(--fogo-f-serif);
	font-style: italic;
	font-weight: 400;
	font-size: 0.5em;
	line-height: 1.1;
	text-transform: none;
	color: var(--fogo-negro);
}
.fogo-intro__media {
	position: relative;
	margin: 0;
	aspect-ratio: 4 / 5;
	overflow: hidden;
	border-radius: 2px;
	background: var(--fogo-crema-2);
}
.fogo-intro__img,
.fogo-intro__video,
.fogo-intro__media .fogo-pendiente {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	max-width: none;
	object-fit: cover;
}
.fogo-intro__img { transform: translate3d(0, var(--fogo-parallax, 0px), 0) scale(1.08); will-change: transform; }
.fogo-intro__video { opacity: 0; transition: opacity 0.8s ease; }
.fogo-intro__video.is-reproduciendo { opacity: 1; }
.fogo-intro__texto {
	max-width: 62ch;
	margin: clamp(40px, 5vw, 64px) auto 0;
	font-size: var(--fogo-t-lead);
	line-height: 1.6;
	text-align: center;
	color: var(--fogo-tinta);
}
.fogo-intro__texto p { margin: 0 0 1em; }
.fogo-intro__texto p:last-child { margin-bottom: 0; }

@media (min-width: 1024px) {
	/* Como en el global: la foto es horizontal, grande y llega hasta el borde derecho de la pantalla. */
	.fogo-intro__rejilla { grid-template-columns: 5fr 6fr; }
	.fogo-intro__titulo { text-align: left; }
	.fogo-intro__media {
		aspect-ratio: 4 / 3;
		margin-right: calc(-1 * ((100vw - min(100vw, var(--fogo-ancho) + 2 * var(--fogo-margen))) / 2 + var(--fogo-margen)));
		border-radius: 0;
	}
	.fogo-intro__img { object-position: 50% 60%; }
}

/* 8. Tarjetas de experiencia -------------------------------------------- */

.fogo-tarjetas__lista {
	display: grid;
	gap: 16px;
	margin: 0;
	padding: 0;
	list-style: none;
}
.fogo-tarjeta {
	position: relative;
	display: flex;
	align-items: flex-end;
	aspect-ratio: 4 / 5;
	overflow: hidden;
	border-radius: 2px;
	background: var(--fogo-negro-2);
	color: var(--fogo-blanco);
	isolation: isolate;
}
.fogo-tarjeta__media,
.fogo-tarjeta__velo { position: absolute; inset: 0; z-index: -1; }
.fogo-tarjeta__vacio {
	position: absolute;
	inset: 0;
	background:
		repeating-linear-gradient(-45deg, rgba(180, 163, 101, 0.07) 0 12px, transparent 12px 24px),
		var(--fogo-negro-3);
}
.fogo-tarjeta__img,
.fogo-tarjeta__video {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	max-width: none;
	object-fit: cover;
	transition: transform 1.2s var(--fogo-curva);
}
.fogo-tarjeta__video { opacity: 0; transition: opacity 0.8s ease, transform 1.2s var(--fogo-curva); }
.fogo-tarjeta__video.is-reproduciendo { opacity: 1; }
.fogo-tarjeta:hover .fogo-tarjeta__img,
.fogo-tarjeta:hover .fogo-tarjeta__video { transform: scale(1.045); }
.fogo-tarjeta__velo {
	background: linear-gradient(180deg, rgba(28, 23, 20, 0.15) 0%, rgba(28, 23, 20, 0.1) 35%, rgba(28, 23, 20, 0.88) 100%);
}
.fogo-tarjeta__contenido {
	width: 100%;
	padding: 28px 24px 32px;
	text-align: center;
}
.fogo-tarjeta__eyebrow { margin-bottom: 0.2em; font-size: clamp(1.125rem, 1rem + 0.5vw, 1.375rem); color: var(--fogo-blanco); text-wrap: balance; }
.fogo-tarjeta__titulo {
	margin: 0 0 1.25rem;
	font-family: var(--fogo-f-cond);
	font-size: clamp(2.25rem, 1.6rem + 2vw, 3rem);
	font-weight: 700;
	line-height: 0.95;
	text-transform: uppercase;
	color: var(--fogo-blanco);
	text-wrap: balance;
}

@media (min-width: 768px) {
	.fogo-tarjetas__lista { grid-template-columns: repeat(3, 1fr); gap: clamp(12px, 1.5vw, 20px); }
	.fogo-tarjeta { aspect-ratio: 3 / 4.6; }
	.fogo-tarjeta__contenido { padding-inline: 16px; }
}

/* 9. Bloque dividido ---------------------------------------------------- */

.fogo-dividido .fogo-sep { margin-bottom: var(--fogo-seccion); }
.fogo-dividido__rejilla {
	display: grid;
	gap: clamp(32px, 5vw, 80px);
	align-items: center;
}
.fogo-dividido__media {
	position: relative;
	margin: 0;
	aspect-ratio: 4 / 5;
	overflow: hidden;
	border-radius: 2px;
	background: var(--fogo-negro-2);
}
.fogo-dividido__img,
.fogo-dividido__video,
.fogo-dividido__media .fogo-pendiente {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	max-width: none;
	object-fit: cover;
}
.fogo-dividido--byn .fogo-dividido__img,
.fogo-dividido--byn .fogo-dividido__video { filter: grayscale(1) contrast(1.05); }
.fogo-dividido__texto { max-width: 34rem; }
.fogo-dividido__texto .fogo-eyebrow { color: var(--fogo-dorado); }
.fogo-seccion--crema .fogo-dividido__texto .fogo-eyebrow { color: var(--fogo-dorado-texto); }
.fogo-dividido__subtitulo {
	margin: -0.25rem 0 1rem;
	font-family: var(--fogo-f-serif);
	font-style: italic;
	font-size: 1.25rem;
	color: var(--fogo-dorado);
}
.fogo-dividido__parrafo { font-size: var(--fogo-t-lead); line-height: 1.6; }
.fogo-dividido__parrafo p { margin: 0 0 1em; }

.fogo-lista-dorada {
	display: grid;
	gap: 10px;
	margin: 1.5rem 0 0;
	padding: 0;
	list-style: none;
}
.fogo-lista-dorada li {
	padding-left: 14px;
	border-left: 2px solid var(--fogo-dorado);
	font-size: var(--fogo-t-chica);
	font-weight: 700;
	line-height: 1.35;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--fogo-blanco);
}
.fogo-seccion--crema .fogo-lista-dorada li { color: var(--fogo-negro); border-color: var(--fogo-dorado-crema); }

@media (min-width: 640px) {
	.fogo-lista-dorada { grid-template-columns: 1fr 1fr; column-gap: 24px; }
}

@media (min-width: 1024px) {
	.fogo-dividido__rejilla { grid-template-columns: 5fr 6fr; }
	.fogo-dividido--derecha .fogo-dividido__rejilla { grid-template-columns: 6fr 5fr; }
	.fogo-dividido--derecha .fogo-dividido__media { order: 2; }
	.fogo-dividido--derecha .fogo-dividido__texto { justify-self: end; }
}

/* 10. Formularios -------------------------------------------------------- */

.fogo-form { margin-top: 1.75rem; }
.fogo-form__fila { display: grid; gap: 16px; }
@media (min-width: 640px) { .fogo-form__fila { grid-template-columns: 1fr 1fr; } }

.fogo-campo label {
	display: block;
	margin-bottom: 6px;
	font-size: var(--fogo-t-mini);
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--fogo-texto-claro);
}
.fogo-campo input,
.fogo-campo textarea,
.fogo-campo select {
	width: 100%;
	min-height: 48px;
	padding: 10px 14px;
	box-sizing: border-box;
	border: 1px solid rgba(255, 255, 255, 0.35);
	border-radius: var(--fogo-radio);
	background: rgba(255, 255, 255, 0.04);
	color: var(--fogo-blanco);
	font: inherit;
	font-size: 1rem; /* 16px evita el zoom automático en iOS */
	transition: border-color 0.2s ease, background-color 0.2s ease;
}
.fogo-campo input:hover { border-color: rgba(255, 255, 255, 0.6); }
.fogo-campo input:focus { border-color: var(--fogo-dorado); background: rgba(255, 255, 255, 0.07); outline: none; box-shadow: 0 0 0 2px rgba(180, 163, 101, 0.45); }
.fogo-campo [aria-invalid="true"] { border-color: #ff8a73; }
.fogo-campo__error { min-height: 0; margin: 6px 0 0; font-size: var(--fogo-t-mini); color: #ffb3a3; }
.fogo-campo__error:empty { display: none; }

.fogo-casilla {
	display: grid;
	grid-template-columns: auto 1fr;
	gap: 4px 12px;
	align-items: start;
	margin: 18px 0 22px;
	font-size: var(--fogo-t-chica);
	line-height: 1.5;
}
.fogo-casilla input {
	width: 22px; height: 22px;
	margin: 0;
	accent-color: var(--fogo-dorado);
}
.fogo-casilla a { color: var(--fogo-dorado); }
.fogo-casilla .fogo-campo__error { grid-column: 2; margin: 0; }

.fogo-trampa { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

.fogo-form__estado { margin: 14px 0 0; font-weight: 700; }
.fogo-form__estado:empty { display: none; }
.fogo-form.is-enviando button[type="submit"] { opacity: 0.6; pointer-events: none; }
.fogo-form.is-exito .fogo-form__fila,
.fogo-form.is-exito .fogo-casilla,
.fogo-form.is-exito button[type="submit"] { display: none; }
.fogo-form.is-exito .fogo-form__estado {
	padding: 16px 20px;
	border-left: 2px solid var(--fogo-dorado);
	background: rgba(180, 163, 101, 0.1);
	font-family: var(--fogo-f-serif);
	font-style: italic;
	font-weight: 400;
	font-size: 1.25rem;
	color: var(--fogo-blanco);
}

/* 11. Galería ------------------------------------------------------------ */

.fogo-galeria__cabeza { text-align: center; margin-bottom: clamp(28px, 4vw, 48px); }
.fogo-galeria__titulo {
	margin: 0;
	font-family: var(--fogo-f-serif);
	font-style: italic;
	font-weight: 400;
	font-size: var(--fogo-t-serif);
	line-height: 1.15;
	color: var(--fogo-blanco);
}
.fogo-galeria__rejilla {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 8px;
	margin: 0;
	padding: 0;
	list-style: none;
}
.fogo-galeria__rejilla a { position: relative; display: block; aspect-ratio: 1; overflow: hidden; background: var(--fogo-negro-2); }
.fogo-galeria__img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.9s var(--fogo-curva), opacity 0.3s ease;
}
.fogo-galeria__rejilla a:hover .fogo-galeria__img { transform: scale(1.05); opacity: 0.85; }
@media (min-width: 768px) { .fogo-galeria__rejilla { grid-template-columns: repeat(3, 1fr); gap: clamp(8px, 1.2vw, 16px); } }

/* 12. Footer ------------------------------------------------------------- */

.fogo-pie {
	padding-block: clamp(56px, 7vw, 96px) 32px;
	background: var(--fogo-negro);
	border-top: 1px solid var(--fogo-linea-oscura);
	color: var(--fogo-texto-claro);
}
.fogo-pie__arriba { display: grid; gap: 40px; justify-items: center; }
.fogo-pie__logo img { width: 120px; height: auto; }
.fogo-pie__columnas {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 36px 24px;
	width: 100%;
}
.fogo-pie__titulo {
	margin: 0 0 12px;
	font-family: var(--fogo-f-serif);
	font-weight: 400;
	font-size: 1.375rem;
	color: var(--fogo-blanco);
}
.fogo-pie__lista { margin: 0; padding: 0; list-style: none; }
.fogo-pie__lista a {
	display: inline-block;
	padding: 6px 0;
	color: var(--fogo-texto-claro);
	font-size: 0.9375rem;
	text-decoration: none;
	transition: color 0.2s ease;
}
.fogo-pie__lista a:hover { color: var(--fogo-dorado); }
.fogo-pie .fogo-sep { margin-block: 48px 28px; }
.fogo-pie__abajo { display: grid; gap: 16px; justify-items: center; text-align: center; }
.fogo-pie__legales { display: flex; flex-wrap: wrap; justify-content: center; gap: 0 20px; margin: 0; padding: 0; list-style: none; }
.fogo-pie__legales a { display: inline-block; padding: 8px 0; font-size: var(--fogo-t-mini); color: var(--fogo-texto-tenue); text-decoration: none; letter-spacing: 0.04em; }
.fogo-pie__legales a:hover { color: var(--fogo-dorado); }
.fogo-pie__derechos { margin: 0; font-size: var(--fogo-t-mini); color: var(--fogo-texto-tenue); }

@media (min-width: 768px) {
	.fogo-pie__columnas { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
@media (min-width: 1024px) {
	.fogo-pie__arriba { grid-template-columns: 200px 1fr; align-items: start; justify-items: start; }
	.fogo-pie__abajo { grid-template-columns: auto 1fr auto; text-align: left; }
	.fogo-pie__legales { justify-content: center; }
}

/* 13. Barra móvil y panel de sucursales --------------------------------- */

.fogo-barra-movil {
	position: fixed;
	left: 0; right: 0; bottom: 0;
	z-index: 90;
	display: grid;
	grid-template-columns: 1fr 1.4fr;
	gap: 8px;
	padding: 8px 12px calc(8px + env(safe-area-inset-bottom));
	background: rgba(28, 23, 20, 0.96);
	border-top: 1px solid var(--fogo-linea-oscura);
	transform: translateY(110%);
	transition: transform 0.35s var(--fogo-curva);
}
.fogo-barra-movil.is-visible { transform: none; }
.fogo-barra-movil__btn {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	min-height: 48px;
	border: 1px solid rgba(255, 255, 255, 0.4);
	border-radius: var(--fogo-radio);
	color: var(--fogo-blanco) !important;
	font-size: var(--fogo-t-chica);
	font-weight: 800;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	text-decoration: none;
}
.fogo-barra-movil__btn--reservar { border-color: var(--fogo-rojo); background: var(--fogo-rojo); }
.fogo-barra-movil__btn .fogo-icono { width: 20px; height: 20px; }
@media (max-width: 1023px) {
	html { scroll-padding-bottom: calc(80px + env(safe-area-inset-bottom)); }
	.fogo-pie { padding-bottom: calc(96px + env(safe-area-inset-bottom)); }
}
@media (min-width: 1024px) { .fogo-barra-movil { display: none; } }

.fogo-panel {
	width: min(560px, calc(100vw - 32px));
	max-height: min(86vh, 760px);
	padding: 0;
	border: 0;
	border-top: 3px solid var(--fogo-dorado);
	border-radius: var(--fogo-radio);
	background: var(--fogo-negro-2);
	color: var(--fogo-texto-claro);
	box-shadow: 0 24px 80px rgba(0, 0, 0, 0.5);
	overflow: auto;
	overscroll-behavior: contain;
}
.fogo-panel::backdrop { background: rgba(10, 8, 7, 0.72); backdrop-filter: blur(2px); }
.fogo-panel[open] { animation: fogo-entrar 0.3s var(--fogo-curva); }
.fogo-panel__cabeza {
	position: sticky;
	top: 0;
	z-index: 1;
	padding: 24px 64px 16px 24px;
	background: var(--fogo-negro-2);
	border-bottom: 1px solid var(--fogo-linea-oscura);
}
.fogo-panel__eyebrow { margin: 0; font-family: var(--fogo-f-serif); font-style: italic; font-size: 1.125rem; color: var(--fogo-dorado); }
.fogo-panel__titulo {
	margin: 0;
	font-family: var(--fogo-f-cond);
	font-size: 2.25rem;
	font-weight: 700;
	line-height: 1;
	text-transform: uppercase;
	color: var(--fogo-blanco);
}
.fogo-panel [data-modo-texto] { display: none; }
.fogo-panel[data-modo="reservar"] [data-modo-texto="reservar"],
.fogo-panel[data-modo="llamar"] [data-modo-texto="llamar"] { display: inline; }
.fogo-panel__cerrar {
	position: absolute;
	top: 14px; right: 12px;
	display: grid;
	place-items: center;
	width: 44px; height: 44px;
	padding: 0;
	border: 0;
	background: none;
	color: var(--fogo-blanco);
	cursor: pointer;
}
.fogo-panel__lista { margin: 0; padding: 8px 24px; list-style: none; }
.fogo-panel__sucursal {
	display: grid;
	gap: 12px;
	padding: 16px 0;
	border-bottom: 1px solid var(--fogo-linea-oscura);
}
.fogo-panel__nombre {
	margin: 0;
	font-family: var(--fogo-f-cond);
	font-size: 1.5rem;
	font-weight: 700;
	line-height: 1.05;
	text-transform: uppercase;
	color: var(--fogo-blanco);
}
.fogo-panel__ciudad { margin: 2px 0 0; font-size: var(--fogo-t-chica); color: var(--fogo-texto-tenue); }
.fogo-panel__acciones { display: flex; flex-wrap: wrap; gap: 8px; }
.fogo-panel__acciones .fogo-icono--mini { margin: 0; }
.fogo-panel[data-modo="llamar"] [data-accion="llamar"] { order: -1; --fogo-btn-fondo: var(--fogo-rojo); --fogo-btn-borde: var(--fogo-rojo); }
.fogo-panel[data-modo="llamar"] [data-accion="reservar"] { --fogo-btn-fondo: transparent; --fogo-btn-borde: rgba(255, 255, 255, 0.4); }
.fogo-panel__nota { margin: 0; padding: 16px 24px 24px; font-size: var(--fogo-t-chica); }
.fogo-panel__nota a { color: var(--fogo-dorado); font-weight: 700; }

@media (min-width: 560px) {
	.fogo-panel__sucursal { grid-template-columns: 1fr auto; align-items: center; }
}
@media (max-width: 559px) {
	.fogo-panel {
		width: 100vw;
		max-width: none;
		max-height: 88vh;
		margin: auto 0 0;
		border-radius: 12px 12px 0 0;
		padding-bottom: env(safe-area-inset-bottom);
	}
}

/* 14. Movimiento -------------------------------------------------------- */

html.fogo-js [data-fogo-aparecer] {
	opacity: 0;
	transform: translate3d(0, 28px, 0);
	transition: opacity 0.9s ease, transform 0.9s var(--fogo-curva);
	transition-delay: var(--retraso, 0ms);
}
html.fogo-js [data-fogo-aparecer].is-visible { opacity: 1; transform: none; }

@media (prefers-reduced-motion: reduce) {
	html.fogo-js [data-fogo-aparecer] { opacity: 1; transform: none; transition: none; }
	.fogo-intro__img { transform: none; }
	.fogo-tarjeta__img,
	.fogo-tarjeta__video,
	.fogo-galeria__img { transition: none; }
	.fogo-tarjeta:hover .fogo-tarjeta__img,
	.fogo-tarjeta:hover .fogo-tarjeta__video,
	.fogo-galeria__rejilla a:hover .fogo-galeria__img { transform: none; }
	.fogo-menu-movil.is-abierto,
	.fogo-panel[open] { animation: none; }
	html { scroll-behavior: auto; }
}

/* ==========================================================================
   Fase 3 · Páginas internas
   15. Texto y prosa      18. Rasgos        21. Formularios completos
   16. Subnavegación      19. FAQ           22. Línea de tiempo
   17. Platillos          20. Sucursales    23. Video y mapa
   ========================================================================== */

/* 15. Texto y prosa */
.fogo-texto__caja { max-width: 46rem; margin-inline: auto; }
.fogo-texto--centro .fogo-texto__caja { text-align: center; }
.fogo-texto--izquierda .fogo-texto__caja { max-width: 48rem; }
.fogo-texto__sep { margin-bottom: var(--fogo-seccion); }
.fogo-texto__eyebrow { color: var(--fogo-dorado); }
.fogo-seccion--crema .fogo-texto__eyebrow { color: var(--fogo-dorado-texto); }

.fogo-prosa { font-size: var(--fogo-t-lead); line-height: 1.7; }
.fogo-prosa > :first-child { margin-top: 0; }
.fogo-prosa p,
.fogo-prosa ul,
.fogo-prosa ol { margin: 0 0 1.1em; }
.fogo-prosa h2,
.fogo-prosa h3 {
	margin: 2em 0 0.6em;
	font-family: var(--fogo-f-serif);
	font-weight: 400;
	font-size: 1.5rem;
	line-height: 1.25;
	color: inherit;
}
.fogo-seccion--crema .fogo-prosa h2,
.fogo-seccion--crema .fogo-prosa h3 { color: var(--fogo-negro); }
.fogo-seccion--oscuro .fogo-prosa h2,
.fogo-seccion--oscuro .fogo-prosa h3 { color: var(--fogo-blanco); }
.fogo-prosa ul { padding-left: 1.25em; }
.fogo-prosa li { margin-bottom: 0.4em; }
.fogo-prosa li::marker { color: var(--fogo-dorado); }
.fogo-prosa a { color: var(--fogo-dorado); text-underline-offset: 3px; }
.fogo-seccion--crema .fogo-prosa a { color: var(--fogo-dorado-texto); }
.fogo-prosa strong { font-weight: 800; }
.fogo-texto--izquierda .fogo-prosa { font-size: 1rem; }

.fogo-titulo-cond {
	margin: 0 0 0.5rem;
	font-family: var(--fogo-f-cond);
	font-size: var(--fogo-t-h2);
	font-weight: 700;
	line-height: 0.95;
	text-transform: uppercase;
	color: var(--fogo-blanco);
}
.fogo-seccion--crema .fogo-titulo-cond { color: var(--fogo-negro); }

.fogo-enlace {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	min-height: 44px;
	color: var(--fogo-dorado);
	font-size: var(--fogo-t-chica);
	font-weight: 800;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	text-decoration: none;
}
.fogo-enlace:hover { text-decoration: underline; text-underline-offset: 4px; }
.fogo-seccion--crema .fogo-enlace { color: var(--fogo-dorado-texto); }

/* 16. Subnavegación (pestañas del menú, índice de sucursales) */
.fogo-subnav {
	position: sticky;
	top: calc(var(--fogo-header-h) + var(--wp-admin--admin-bar--height, 0px));
	z-index: 40;
	background: var(--fogo-negro-2);
	border-bottom: 1px solid var(--fogo-linea-oscura);
}
.fogo-subnav ul {
	display: flex;
	gap: 4px;
	margin: 0;
	padding: 10px 0;
	overflow-x: auto;
	list-style: none;
	scrollbar-width: none;
	-webkit-mask-image: linear-gradient(90deg, #000 85%, transparent);
	mask-image: linear-gradient(90deg, #000 85%, transparent);
}
.fogo-subnav ul::-webkit-scrollbar { display: none; }
.fogo-subnav a {
	display: inline-flex;
	align-items: center;
	min-height: 40px;
	padding: 0 16px;
	border: 1px solid transparent;
	border-radius: 999px;
	color: var(--fogo-texto-claro);
	font-size: var(--fogo-t-mini);
	font-weight: 800;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	text-decoration: none;
	white-space: nowrap;
	transition: border-color 0.2s ease, color 0.2s ease, background-color 0.2s ease;
}
.fogo-subnav a:hover { border-color: rgba(180, 163, 101, 0.6); color: var(--fogo-blanco); }
.fogo-subnav a[aria-current] { background: var(--fogo-dorado); color: var(--fogo-negro); }
@media (min-width: 1024px) {
	.fogo-subnav ul { flex-wrap: wrap; justify-content: center; overflow: visible; -webkit-mask-image: none; mask-image: none; }
	.fogo-subnav a { padding: 0 14px; }
}
.fogo-subnav--claro { position: static; margin: 0 0 40px; background: none; border: 0; }
.fogo-subnav--claro ul { justify-content: flex-start; flex-wrap: wrap; overflow: visible; -webkit-mask-image: none; mask-image: none; }
.fogo-seccion--crema .fogo-subnav--claro a { border-color: rgba(28, 23, 20, 0.2); color: var(--fogo-negro); }
.fogo-seccion--crema .fogo-subnav--claro a:hover { border-color: var(--fogo-negro); }

/* 17. Platillos */
.fogo-platillos__cabeza { max-width: 44rem; margin: 0 auto clamp(32px, 5vw, 56px); text-align: center; }
.fogo-platillos__intro { font-size: var(--fogo-t-lead); }
.fogo-platillos__intro p { margin: 0.5em 0 0; }
.fogo-platillos__lista {
	display: grid;
	gap: 0 clamp(32px, 5vw, 72px);
	margin: 0;
	padding: 0;
	list-style: none;
}
.fogo-platillo {
	padding: 20px 0 22px;
	border-bottom: 1px solid rgba(28, 23, 20, 0.14);
}
.fogo-seccion--oscuro .fogo-platillo { border-color: var(--fogo-linea-oscura); }
.fogo-platillo__fila { display: flex; align-items: baseline; gap: 12px; justify-content: space-between; }
.fogo-platillo__nombre {
	margin: 0;
	font-family: var(--fogo-f-cond);
	font-size: 1.625rem;
	font-weight: 700;
	line-height: 1.05;
	text-transform: uppercase;
	color: var(--fogo-negro);
}
.fogo-seccion--oscuro .fogo-platillo__nombre { color: var(--fogo-blanco); }
.fogo-platillo__detalle { flex: 0 1 auto; max-width: 55%; font-size: var(--fogo-t-chica); font-weight: 700; color: var(--fogo-dorado-texto); text-align: right; }
.fogo-seccion--oscuro .fogo-platillo__detalle { color: var(--fogo-dorado); }
.fogo-platillo__alterno { margin: 2px 0 0; font-family: var(--fogo-f-serif); font-style: italic; font-size: 1.0625rem; color: var(--fogo-dorado-texto); }
.fogo-seccion--oscuro .fogo-platillo__alterno { color: var(--fogo-dorado); }
.fogo-platillo__desc { margin: 8px 0 0; line-height: 1.6; }
.fogo-platillos__nota { margin: 32px auto 0; max-width: 44rem; font-size: var(--fogo-t-chica); text-align: center; }
@media (min-width: 768px) {
	.fogo-platillos__lista--2 { grid-template-columns: repeat(2, 1fr); }
	.fogo-platillos__lista--3 { grid-template-columns: repeat(3, 1fr); }
}

/* 18. Rasgos */
.fogo-rasgos__cabeza { max-width: 44rem; margin: 0 auto clamp(32px, 5vw, 56px); text-align: center; }
.fogo-rasgos__lista { display: grid; gap: clamp(28px, 4vw, 48px); margin: 0; padding: 0; list-style: none; }
.fogo-rasgo { padding-top: 20px; border-top: 2px solid var(--fogo-dorado); }
.fogo-seccion--crema .fogo-rasgo { border-color: var(--fogo-dorado-crema); }
.fogo-rasgo__titulo {
	margin: 0 0 10px;
	font-family: var(--fogo-f-cond);
	font-size: 1.75rem;
	font-weight: 700;
	line-height: 1.05;
	text-transform: uppercase;
	color: var(--fogo-blanco);
}
.fogo-seccion--crema .fogo-rasgo__titulo { color: var(--fogo-negro); }
.fogo-rasgo__texto p { margin: 0 0 0.9em; }
@media (min-width: 768px) {
	.fogo-rasgos__lista--2 { grid-template-columns: repeat(2, 1fr); }
	.fogo-rasgos__lista--3 { grid-template-columns: repeat(3, 1fr); }
}

/* 19. FAQ */
.fogo-faq__caja { max-width: calc(52rem + 2 * var(--fogo-margen)); }
.fogo-faq__cabeza { margin-bottom: clamp(28px, 4vw, 48px); text-align: center; }
.fogo-faq__intro { font-size: var(--fogo-t-lead); }
.fogo-faq__item { border-bottom: 1px solid rgba(28, 23, 20, 0.15); }
.fogo-seccion--oscuro .fogo-faq__item { border-color: var(--fogo-linea-oscura); }
.fogo-faq__item summary {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 20px;
	min-height: 64px;
	padding: 16px 0;
	cursor: pointer;
	list-style: none;
	font-family: var(--fogo-f-serif);
	font-size: 1.1875rem;
	line-height: 1.35;
	color: var(--fogo-negro);
}
.fogo-seccion--oscuro .fogo-faq__item summary { color: var(--fogo-blanco); }
.fogo-faq__item summary::-webkit-details-marker { display: none; }
.fogo-faq__signo { position: relative; flex: none; width: 18px; height: 18px; }
.fogo-faq__signo::before,
.fogo-faq__signo::after {
	content: "";
	position: absolute;
	top: 50%; left: 0;
	width: 100%; height: 2px;
	margin-top: -1px;
	background: var(--fogo-dorado-crema);
	transition: transform 0.3s var(--fogo-curva);
}
.fogo-faq__signo::after { transform: rotate(90deg); }
.fogo-faq__item[open] .fogo-faq__signo::after { transform: rotate(0deg); }
.fogo-faq__respuesta { padding: 0 0 24px; font-size: 1rem; }

/* 20. Sucursales y reservaciones */
.fogo-sucursales__cabeza { max-width: 44rem; margin: 0 auto clamp(28px, 4vw, 48px); text-align: center; }
.fogo-sucursales__intro { font-size: var(--fogo-t-lead); }
.fogo-sucursales--fichas .fogo-subnav--claro ul { justify-content: center; }
.fogo-sucursales__fichas { display: grid; gap: 20px; }
@media (min-width: 768px) { .fogo-sucursales__fichas { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1100px) { .fogo-sucursales__fichas { grid-template-columns: repeat(3, 1fr); } }
.fogo-sucursales__mapa { margin-top: 40px; }
.fogo-sucursales__nota { max-width: 44rem; margin: 32px auto 0; text-align: center; }
.fogo-sucursales__nota a { color: var(--fogo-dorado-texto); font-weight: 700; }
.fogo-seccion--oscuro .fogo-sucursales__nota a { color: var(--fogo-dorado); }

.fogo-ficha {
	display: flex;
	flex-direction: column;
	height: 100%;
	padding: 28px 24px;
	box-sizing: border-box;
	border-top: 3px solid var(--fogo-dorado);
	background: var(--fogo-blanco);
	color: var(--fogo-tinta);
	scroll-margin-top: calc(var(--fogo-header-h) + 24px);
}
.fogo-seccion--oscuro .fogo-ficha { background: var(--fogo-negro-2); color: var(--fogo-texto-claro); }
.fogo-ficha__nombre {
	margin: 0;
	font-family: var(--fogo-f-cond);
	font-size: 2rem;
	font-weight: 700;
	line-height: 1;
	text-transform: uppercase;
	color: var(--fogo-negro);
}
.fogo-seccion--oscuro .fogo-ficha__nombre { color: var(--fogo-blanco); }
.fogo-ficha__ciudad { margin: 4px 0 0; font-family: var(--fogo-f-serif); font-style: italic; color: var(--fogo-dorado-texto); }
.fogo-seccion--oscuro .fogo-ficha__ciudad { color: var(--fogo-dorado); }
.fogo-ficha__datos { display: grid; gap: 18px; margin: 22px 0 24px; flex: 1; font-size: 0.9375rem; line-height: 1.55; }
.fogo-ficha__rotulo {
	display: flex;
	align-items: center;
	gap: 6px;
	margin: 0 0 4px;
	font-size: var(--fogo-t-mini);
	font-weight: 800;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--fogo-dorado-texto);
}
.fogo-seccion--oscuro .fogo-ficha__rotulo { color: var(--fogo-dorado); }
.fogo-ficha__rotulo .fogo-icono { width: 16px; height: 16px; }
.fogo-ficha address { font-style: normal; }
.fogo-ficha__ref { margin: 4px 0 0; font-style: italic; }
.fogo-ficha__tels { display: flex; flex-wrap: wrap; gap: 0 16px; margin: 0; padding: 0; list-style: none; }
.fogo-ficha__tels a { display: inline-block; padding: 4px 0; font-weight: 700; text-decoration: none; color: inherit; border-bottom: 1px solid currentColor; }
.fogo-ficha__horario { display: grid; gap: 2px; margin: 0; }
.fogo-ficha__horario div { display: flex; justify-content: space-between; gap: 12px; }
.fogo-ficha__horario dt { font-weight: 700; }
.fogo-ficha__horario dd { margin: 0; text-align: right; }
.fogo-ficha__acciones { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 16px; }
.fogo-ficha__acciones .fogo-btn { flex: 1 1 auto; min-width: 0; padding-inline: 18px; }
.fogo-seccion--crema .fogo-ficha .fogo-btn--contorno { --fogo-btn-texto: var(--fogo-negro); --fogo-btn-borde: var(--fogo-negro); }
.fogo-ficha__acciones .fogo-enlace { color: var(--fogo-dorado-texto); }
.fogo-seccion--oscuro .fogo-ficha__acciones .fogo-enlace { color: var(--fogo-dorado); }

.fogo-reservar__lista { margin: 0; padding: 0; list-style: none; max-width: 56rem; margin-inline: auto; }
.fogo-reservar__fila {
	display: grid;
	gap: 14px;
	align-items: center;
	padding: 22px 0;
	border-bottom: 1px solid rgba(28, 23, 20, 0.14);
}
.fogo-seccion--oscuro .fogo-reservar__fila { border-color: var(--fogo-linea-oscura); }
.fogo-reservar__nombre { margin: 0; font-family: var(--fogo-f-cond); font-size: 1.875rem; font-weight: 700; line-height: 1; text-transform: uppercase; color: var(--fogo-negro); }
.fogo-seccion--oscuro .fogo-reservar__nombre { color: var(--fogo-blanco); }
.fogo-reservar__ciudad { margin: 4px 0 0; font-family: var(--fogo-f-serif); font-style: italic; color: var(--fogo-dorado-texto); }
.fogo-seccion--oscuro .fogo-reservar__ciudad { color: var(--fogo-dorado); }
.fogo-reservar__horario { margin: 6px 0 0; font-size: var(--fogo-t-chica); }
.fogo-reservar__acciones { display: flex; flex-wrap: wrap; gap: 10px; }
.fogo-seccion--crema .fogo-reservar__acciones .fogo-btn--contorno { --fogo-btn-texto: var(--fogo-negro); --fogo-btn-borde: var(--fogo-negro); }
@media (min-width: 768px) {
	.fogo-reservar__fila { grid-template-columns: 1fr auto; }
	.fogo-reservar__acciones { justify-content: flex-end; }
}

.fogo-sucursal__rejilla { display: grid; gap: 32px; align-items: stretch; }
@media (min-width: 1024px) { .fogo-sucursal__rejilla { grid-template-columns: 5fr 6fr; } }
.fogo-sucursal .fogo-mapa { min-height: 360px; }
.fogo-otras .fogo-titulo-serif { text-align: center; }
.fogo-otras__lista { display: grid; gap: 1px; margin: 32px 0 0; padding: 0; list-style: none; background: var(--fogo-linea-oscura); }
@media (min-width: 768px) { .fogo-otras__lista { grid-template-columns: repeat(3, 1fr); } }
.fogo-otras__lista a { display: block; height: 100%; padding: 20px; box-sizing: border-box; background: var(--fogo-negro); text-decoration: none; transition: background-color 0.2s ease; }
.fogo-otras__lista a:hover { background: var(--fogo-negro-2); }
.fogo-otras__nombre { display: block; font-family: var(--fogo-f-cond); font-size: 1.5rem; font-weight: 700; text-transform: uppercase; color: var(--fogo-blanco); }
.fogo-otras__ciudad { display: block; font-size: var(--fogo-t-chica); color: var(--fogo-texto-tenue); }
.fogo-otras .fogo-botones { justify-content: center; }

/* 21. Formularios completos */
.fogo-bloque-form .fogo-texto__sep { margin-bottom: var(--fogo-seccion); }
.fogo-bloque-form__rejilla { display: grid; gap: clamp(32px, 5vw, 72px); }
@media (min-width: 1024px) { .fogo-bloque-form__rejilla { grid-template-columns: 4fr 7fr; align-items: start; } }
.fogo-bloque-form__texto .fogo-prosa { font-size: 1rem; }

.fogo-form__campos {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 18px 16px;
}
.fogo-campo { grid-column: span 4; min-width: 0; margin: 0; padding: 0; border: 0; }
@media (min-width: 640px) {
	.fogo-campo--medio { grid-column: span 2; }
	.fogo-campo--cuarto { grid-column: span 1; }
}
@media (max-width: 639px) {
	.fogo-campo--cuarto { grid-column: span 2; }
}
.fogo-form__campos > .fogo-casilla { grid-column: span 4; margin: 0; }
.fogo-campo legend {
	margin-bottom: 8px;
	padding: 0;
	font-size: var(--fogo-t-mini);
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--fogo-texto-claro);
}
.fogo-campo--radio legend { font-family: var(--fogo-f-sans); text-transform: none; letter-spacing: 0; font-size: 1rem; line-height: 1.4; }
.fogo-campo__req { color: var(--fogo-dorado); }
.fogo-campo textarea { min-height: 140px; resize: vertical; }
.fogo-campo select {
	appearance: none;
	padding-right: 40px;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' fill='none' stroke='%23b4a365' stroke-width='1.6'%3E%3Cpath d='M1 1.5l5 5 5-5'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 14px center;
}
.fogo-campo select option { color: #1c1714; }
.fogo-campo input[type="date"] { color-scheme: dark; }
.fogo-campo input[type="file"] { padding: 10px; }
.fogo-campo input[type="file"]::file-selector-button {
	margin-right: 12px;
	padding: 8px 14px;
	border: 1px solid var(--fogo-dorado);
	border-radius: var(--fogo-radio);
	background: transparent;
	color: var(--fogo-blanco);
	font: inherit;
	font-size: var(--fogo-t-chica);
	font-weight: 700;
	cursor: pointer;
}
.fogo-campo__ayuda { margin: 6px 0 0; font-size: var(--fogo-t-mini); line-height: 1.5; color: var(--fogo-texto-tenue); }
.fogo-casilla .fogo-campo__ayuda { grid-column: 2; margin: 0; }
.fogo-mesdia { display: grid; grid-template-columns: 3fr 2fr; gap: 10px; }
.fogo-opciones { display: flex; flex-wrap: wrap; gap: 8px; }
.fogo-opcion { position: relative; cursor: pointer; }
.fogo-opcion input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.fogo-opcion span {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
	padding: 0 18px;
	border: 1px solid rgba(255, 255, 255, 0.35);
	border-radius: 999px;
	font-size: var(--fogo-t-chica);
	font-weight: 700;
	transition: background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease;
}
.fogo-opcion:hover span { border-color: var(--fogo-dorado); }
.fogo-opcion input:checked + span { border-color: var(--fogo-dorado); background: var(--fogo-dorado); color: var(--fogo-negro); }
.fogo-opcion input:focus-visible + span { outline: 2px solid var(--fogo-dorado); outline-offset: 3px; }
.fogo-form__nota { margin: 18px 0 14px; font-size: var(--fogo-t-mini); color: var(--fogo-texto-tenue); }
.fogo-form .fogo-btn[type="submit"] { margin-top: 8px; }
.fogo-form.is-exito .fogo-form__campos,
.fogo-form.is-exito .fogo-form__nota { display: none; }

/* Formularios sobre crema */
.fogo-seccion--crema .fogo-campo label,
.fogo-seccion--crema .fogo-campo legend { color: var(--fogo-tinta); }
.fogo-seccion--crema .fogo-campo input,
.fogo-seccion--crema .fogo-campo textarea,
.fogo-seccion--crema .fogo-campo select { border-color: rgba(28, 23, 20, 0.35); background-color: var(--fogo-blanco); color: var(--fogo-negro); }
.fogo-seccion--crema .fogo-campo input[type="date"] { color-scheme: light; }
.fogo-seccion--crema .fogo-opcion span { border-color: rgba(28, 23, 20, 0.35); }
.fogo-seccion--crema .fogo-campo__ayuda,
.fogo-seccion--crema .fogo-form__nota { color: #5b524c; }
.fogo-seccion--crema .fogo-campo__error { color: #b3261e; }
.fogo-seccion--crema .fogo-form.is-exito .fogo-form__estado { color: var(--fogo-negro); }

/* 22. Línea de tiempo */
.fogo-linea__cabeza { text-align: center; margin-bottom: clamp(32px, 5vw, 56px); }
.fogo-linea__lista { position: relative; max-width: 52rem; margin: 0 auto; padding: 0; list-style: none; }
.fogo-linea__lista::before {
	content: "";
	position: absolute;
	top: 8px; bottom: 8px; left: 7px;
	width: 1px;
	background: linear-gradient(180deg, transparent, var(--fogo-dorado) 6%, var(--fogo-dorado) 94%, transparent);
	opacity: 0.6;
}
.fogo-linea__hito { position: relative; display: grid; gap: 4px; padding: 0 0 clamp(32px, 4vw, 48px) 40px; }
.fogo-linea__hito::before {
	content: "";
	position: absolute;
	top: 6px; left: 0;
	width: 13px; height: 13px;
	border: 1px solid var(--fogo-dorado);
	border-radius: 50%;
	background: var(--fogo-negro);
	box-shadow: inset 0 0 0 3px var(--fogo-negro), inset 0 0 0 7px var(--fogo-dorado);
}
.fogo-linea__marca { margin: 0; font-family: var(--fogo-f-cond); font-size: 1.75rem; font-weight: 700; line-height: 1; letter-spacing: 0.02em; text-transform: uppercase; color: var(--fogo-dorado); }
.fogo-linea__titulo { margin: 0 0 6px; font-family: var(--fogo-f-serif); font-weight: 400; font-size: 1.375rem; color: var(--fogo-blanco); }
.fogo-linea__cuerpo p { margin: 0 0 0.8em; font-size: var(--fogo-t-lead); line-height: 1.65; }
@media (min-width: 768px) {
	.fogo-linea__lista::before { left: 167px; }
	.fogo-linea__hito { grid-template-columns: 136px 1fr; gap: 64px; padding-left: 0; }
	.fogo-linea__hito::before { left: 160px; }
	.fogo-linea__marca { text-align: right; }
}

/* 23. Video y mapa con carga diferida */
.fogo-video__cabeza { max-width: 44rem; margin: 0 auto clamp(28px, 4vw, 48px); text-align: center; }
.fogo-video__cabeza .fogo-eyebrow { color: var(--fogo-dorado); }
.fogo-video__texto { font-size: var(--fogo-t-lead); }
.fogo-video__marco { position: relative; aspect-ratio: 16 / 9; overflow: hidden; background: var(--fogo-negro-2); }
.fogo-video__portada,
.fogo-video__marco iframe { position: absolute; inset: 0; width: 100%; height: 100%; max-width: none; object-fit: cover; border: 0; }
.fogo-video__portada { filter: brightness(0.7); }
.fogo .fogo-video__play,
.fogo .fogo-video__play:is(:hover, :focus) {
	position: absolute;
	inset: 0;
	display: grid;
	place-items: center;
	width: 100%;
	height: 100%;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: transparent;
	color: var(--fogo-blanco);
	cursor: pointer;
}
.fogo-video__play .fogo-icono {
	width: 88px; height: 88px;
	padding: 22px 18px 22px 26px;
	box-sizing: border-box;
	border: 1.5px solid rgba(255, 255, 255, 0.9);
	border-radius: 50%;
	background: rgba(213, 37, 10, 0.9);
	transition: transform 0.3s var(--fogo-curva), background-color 0.2s ease;
}
.fogo-video__play:hover .fogo-icono { transform: scale(1.06); background: var(--fogo-rojo); }

.fogo-mapa { position: relative; min-height: 320px; overflow: hidden; background: var(--fogo-negro-2); color: var(--fogo-texto-claro); }
.fogo-mapa iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.fogo-mapa__aviso {
	position: absolute;
	inset: 0;
	display: grid;
	place-content: center;
	justify-items: center;
	gap: 8px;
	padding: 24px;
	text-align: center;
	background:
		radial-gradient(circle at 50% 40%, rgba(180, 163, 101, 0.12), transparent 60%),
		repeating-linear-gradient(0deg, rgba(255, 255, 255, 0.03) 0 1px, transparent 1px 40px),
		repeating-linear-gradient(90deg, rgba(255, 255, 255, 0.03) 0 1px, transparent 1px 40px),
		var(--fogo-negro-2);
}
.fogo-mapa__aviso p { margin: 0 0 8px; font-size: var(--fogo-t-chica); }
.fogo-mapa__icono { width: 40px; height: 40px; color: var(--fogo-dorado); }

/* 24. Mapa de sucursales (Leaflet) --------------------------------------- */
.fogo-mapa-suc__cabeza { margin-bottom: clamp(28px, 4vw, 48px); text-align: center; }
.fogo-mapa-suc__rejilla { display: grid; gap: 24px; }
@media (min-width: 1024px) { .fogo-mapa-suc__rejilla { grid-template-columns: 340px 1fr; gap: 32px; align-items: stretch; } }

.fogo-mapa-suc__lista { display: grid; gap: 10px; margin: 0; padding: 0; list-style: none; align-content: start; }
.fogo-mapa-suc__lista > li { border: 1px solid var(--fogo-linea-oscura); border-radius: var(--fogo-radio); background: var(--fogo-negro-2); }
.fogo-seccion--crema .fogo-mapa-suc__lista > li { border-color: rgba(28, 23, 20, 0.15); background: var(--fogo-blanco); }
.fogo .fogo-mapa-suc__item,
.fogo .fogo-mapa-suc__item:is(:hover, :focus) {
	display: flex;
	align-items: center;
	gap: 14px;
	width: 100%;
	padding: 14px 16px 6px;
	border: 0;
	border-radius: 0;
	background: transparent;
	color: inherit;
	font: inherit;
	text-align: left;
	white-space: normal;
	cursor: pointer;
}
.fogo-mapa-suc__pin { flex: none; width: 24px; height: 33px; transition: transform 0.25s var(--fogo-curva); }
.fogo-mapa-suc__item:hover .fogo-mapa-suc__pin,
.fogo-mapa-suc__item[aria-pressed="true"] .fogo-mapa-suc__pin { transform: translateY(-3px) scale(1.08); }
.fogo-mapa-suc__nombre { display: block; font-family: var(--fogo-f-cond); font-size: 1.5rem; font-weight: 700; line-height: 1; text-transform: uppercase; color: var(--fogo-blanco); }
.fogo-seccion--crema .fogo-mapa-suc__nombre { color: var(--fogo-negro); }
.fogo-mapa-suc__item[aria-pressed="true"] .fogo-mapa-suc__nombre { color: var(--fogo-dorado); }
.fogo-mapa-suc__ciudad { display: block; margin-top: 2px; font-family: var(--fogo-f-serif); font-style: italic; font-size: 0.9375rem; color: var(--fogo-texto-tenue); }
.fogo-seccion--crema .fogo-mapa-suc__ciudad { color: var(--fogo-dorado-texto); }
.fogo-mapa-suc__acciones { display: flex; flex-wrap: wrap; gap: 0 16px; padding: 0 16px 10px 54px; }
.fogo-mapa-suc__acciones a {
	display: inline-flex;
	align-items: center;
	min-height: 36px;
	color: var(--fogo-dorado);
	font-size: var(--fogo-t-mini);
	font-weight: 800;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	text-decoration: none;
}
.fogo-seccion--crema .fogo-mapa-suc__acciones a { color: var(--fogo-dorado-texto); }
.fogo-mapa-suc__acciones a:hover { text-decoration: underline; text-underline-offset: 3px; }

.fogo-mapa-suc__marco { position: relative; min-height: 420px; overflow: hidden; border: 1px solid var(--fogo-linea-oscura); border-radius: var(--fogo-radio); background: #262626; }
@media (min-width: 1024px) { .fogo-mapa-suc__marco { min-height: 560px; } }
.fogo-mapa-suc__mapa { position: absolute; inset: 0; z-index: 0; background: #262626; }
/* Fondo claro de OpenStreetMap convertido a la paleta oscura y cálida del sitio (solo las calles, no los pines). */
.fogo .fogo-mapa-suc__mapa--oscuro .leaflet-tile-pane { filter: invert(1) hue-rotate(180deg) brightness(0.82) contrast(0.92) saturate(0.35) sepia(0.25); }
@media (max-width: 1023px) {
	.fogo-mapa-suc__marco { order: -1; min-height: 360px; }
	.fogo-mapa-suc__lista { grid-template-columns: 1fr; }
}
.fogo-mapa-suc__cargando { position: absolute; inset: 0; display: grid; place-items: center; margin: 0; color: var(--fogo-texto-tenue); font-size: var(--fogo-t-chica); }

/* Pines */
.fogo .fogo-mapa-marcador { background: none; border: 0; }
.fogo .fogo-mapa-marcador svg { display: block; filter: drop-shadow(0 3px 4px rgba(0, 0, 0, 0.55)); transition: transform 0.2s var(--fogo-curva); transform-origin: 50% 100%; }
.fogo .fogo-mapa-marcador:hover svg,
.fogo .fogo-mapa-marcador:focus-visible svg { transform: scale(1.15); }
.fogo .fogo-mapa-marcador:focus-visible { outline: 2px solid var(--fogo-dorado); outline-offset: 2px; border-radius: 50%; }

/* Ventana del pin */
.fogo .fogo-mapa-popup .leaflet-popup-content-wrapper {
	border-top: 3px solid var(--fogo-dorado);
	border-radius: var(--fogo-radio);
	background: var(--fogo-negro);
	color: var(--fogo-texto-claro);
	box-shadow: 0 16px 40px rgba(0, 0, 0, 0.5);
}
.fogo .fogo-mapa-popup .leaflet-popup-tip { background: var(--fogo-negro); }
.fogo .fogo-mapa-popup .leaflet-popup-content { margin: 16px 18px; font-family: var(--fogo-f-sans); font-size: 0.875rem; line-height: 1.5; }
.fogo .fogo-mapa-popup a.leaflet-popup-close-button { top: 6px; right: 6px; width: 28px; height: 28px; color: var(--fogo-blanco); font-size: 22px; }
.fogo-mapa-pop__nombre { margin: 0; font-family: var(--fogo-f-cond); font-size: 1.5rem; font-weight: 700; line-height: 1; text-transform: uppercase; color: var(--fogo-blanco); }
.fogo-mapa-pop__ciudad { margin: 2px 0 8px !important; font-family: var(--fogo-f-serif); font-style: italic; color: var(--fogo-dorado); }
.fogo-mapa-pop__dir { margin: 0 0 12px !important; }
.fogo-mapa-pop__acciones { display: flex; gap: 8px; }
.fogo-mapa-pop__acciones .fogo-btn { min-height: 38px; padding: 6px 14px; }
.fogo-mapa-pop__enlaces { margin: 10px 0 0 !important; font-size: var(--fogo-t-mini); }
.fogo-mapa-pop__enlaces a { color: var(--fogo-dorado) !important; font-weight: 700; }

/* Controles y créditos con la paleta del sitio */
.fogo .fogo-mapa-suc .leaflet-bar { border: 1px solid var(--fogo-linea-oscura); box-shadow: none; }
.fogo .fogo-mapa-suc .leaflet-bar a { width: 36px; height: 36px; line-height: 36px; border-color: var(--fogo-linea-oscura); background: var(--fogo-negro); color: var(--fogo-blanco); }
.fogo .fogo-mapa-suc .leaflet-bar a:hover { background: var(--fogo-negro-3); color: var(--fogo-dorado); }
.fogo .fogo-mapa-suc .leaflet-control-attribution { background: rgba(28, 23, 20, 0.8); color: var(--fogo-texto-tenue); font-size: 10px; }
.fogo .fogo-mapa-suc .leaflet-control-attribution a { color: var(--fogo-texto-claro); }
.fogo .fogo-mapa-suc .leaflet-container { background: #262626; font-family: var(--fogo-f-sans); }

/* 25. Cada sección cabe en una pantalla de escritorio --------------------
   Altura útil = alto de la ventana − header. Se mide en 1440×900 y 1280×720. */
:root {
	--fogo-seccion: clamp(56px, 2rem + 3.2vw, 104px);
	--fogo-util: calc(100svh - var(--fogo-header-h));
}

/* Introducción: titular, texto y botones a un lado; foto al otro */
.fogo-intro__col { display: flex; flex-direction: column; gap: 0; }
.fogo-intro__col .fogo-intro__texto { margin: 1.5rem 0 0; text-align: center; }
.fogo-intro__col .fogo-botones { justify-content: center; margin-top: 1.5rem; }
.fogo-intro__cabeza { margin-bottom: clamp(20px, 3vw, 36px); }
@media (min-width: 1024px) {
	.fogo-intro__col .fogo-intro__texto { max-width: 34rem; text-align: left; }
	.fogo-intro__col .fogo-botones { justify-content: flex-start; }
	.fogo-intro__titulo { font-size: clamp(3rem, 1rem + 4.6vw, 5.75rem); }
	.fogo-intro__media {
		aspect-ratio: auto;
		height: clamp(380px, calc(var(--fogo-util) - 2 * var(--fogo-seccion) - 110px), 640px);
	}
}

/* Bloques divididos: la foto se ajusta a la altura de la pantalla */
@media (min-width: 1024px) {
	.fogo-dividido__media {
		aspect-ratio: auto;
		height: clamp(380px, calc(var(--fogo-util) - 2 * var(--fogo-seccion)), 620px);
	}
	.fogo-dividido .fogo-sep { margin-bottom: var(--fogo-seccion); }
	.fogo-seccion.fogo-dividido:has(.fogo-sep) { padding-top: var(--fogo-seccion); }
}

/* Tarjetas: más bajas; con más de 3, cuatro columnas */
@media (min-width: 768px) {
	.fogo-tarjeta { aspect-ratio: auto; height: clamp(380px, calc(var(--fogo-util) - 2 * var(--fogo-seccion)), 560px); }
}
@media (min-width: 1024px) {
	.fogo-tarjetas__lista:has(> li:nth-child(4)) { grid-template-columns: repeat(3, 1fr); }
	.fogo-tarjetas__lista:has(> li:nth-child(4)) .fogo-tarjeta { height: clamp(260px, calc((var(--fogo-util) - 2 * var(--fogo-seccion) - 16px) / 2), 380px); }
	.fogo-tarjetas__lista:has(> li:nth-child(4)) .fogo-tarjeta__titulo { font-size: clamp(1.75rem, 1rem + 1.4vw, 2.5rem); margin-bottom: 0.9rem; }
	.fogo-tarjetas__lista:has(> li:nth-child(4)) .fogo-tarjeta__contenido { padding: 18px 16px 22px; }
}

/* Galería: mosaicos apaisados para que las dos filas quepan */
.fogo-galeria__cabeza { margin-bottom: clamp(18px, 2.5vw, 32px); }
@media (min-width: 768px) {
	.fogo-galeria__rejilla a { aspect-ratio: auto; height: clamp(180px, calc((var(--fogo-util) - 2 * var(--fogo-seccion) - 190px) / 2), 300px); }
	.fogo-galeria .fogo-botones { margin-top: 1.25rem; }
}

/* Mapa de sucursales: lista compacta y mapa de la misma altura */
.fogo-mapa-suc__cabeza { margin-bottom: clamp(18px, 2.5vw, 32px); }
.fogo .fogo-mapa-suc__item,
.fogo .fogo-mapa-suc__item:is(:hover, :focus) { padding: 10px 14px 2px; gap: 12px; }
.fogo-mapa-suc__pin { width: 20px; height: 28px; }
.fogo-mapa-suc__nombre { font-size: 1.25rem; }
.fogo-mapa-suc__ciudad { font-size: 0.875rem; }
.fogo-mapa-suc__acciones { padding: 0 14px 6px 46px; gap: 0 14px; }
.fogo-mapa-suc__acciones a { min-height: 32px; }
.fogo-mapa-suc__lista { gap: 8px; }
@media (min-width: 1024px) {
	.fogo-mapa-suc__rejilla { height: clamp(440px, calc(var(--fogo-util) - 2 * var(--fogo-seccion) - 90px), 640px); }
	.fogo-mapa-suc__lista { overflow-y: auto; scrollbar-width: thin; scrollbar-color: var(--fogo-dorado) transparent; padding-right: 4px; }
	.fogo-mapa-suc__marco { min-height: 0; height: 100%; }
}
.fogo .fogo-mapa-popup .leaflet-popup-content p { margin: 0; }
.fogo-mapa-pop__ciudad { margin: 2px 0 8px !important; }

/* Video: el marco 16:9 no pasa del alto disponible */
.fogo-video__cabeza { margin-bottom: clamp(18px, 2.5vw, 32px); }
@media (min-width: 1024px) {
	.fogo-video__marco { max-width: min(100%, calc((var(--fogo-util) - 2 * var(--fogo-seccion) - 170px) * 16 / 9)); margin-inline: auto; }
}

/* Bloques de texto en rejilla y FAQ: más compactos */
.fogo-rasgos__cabeza { margin-bottom: clamp(20px, 3vw, 40px); }
.fogo-rasgos__lista { gap: clamp(20px, 2.5vw, 36px) clamp(24px, 3vw, 48px); }
.fogo-rasgo { padding-top: 14px; }
.fogo-rasgo__titulo { font-size: 1.5rem; margin-bottom: 6px; }
.fogo-rasgo__texto { font-size: 0.9375rem; line-height: 1.55; }

/* Reservaciones: filas más bajas */
.fogo-reservar__fila { padding: 14px 0; }
.fogo-reservar__nombre { font-size: 1.5rem; }
.fogo-sucursales__cabeza { margin-bottom: clamp(18px, 2.5vw, 32px); }

/* Carrusel horizontal (línea de tiempo y fichas de sucursales) */
.fogo-carrusel { position: relative; }
.fogo-carrusel__pista {
	display: grid;
	grid-auto-flow: column;
	grid-auto-columns: minmax(280px, 1fr);
	gap: 20px;
	margin: 0;
	padding: 4px 2px 18px;
	overflow-x: auto;
	overscroll-behavior-x: contain;
	scroll-snap-type: x mandatory;
	scrollbar-width: thin;
	scrollbar-color: var(--fogo-dorado) transparent;
	list-style: none;
}
.fogo-carrusel__pista > * { scroll-snap-align: start; }
@media (min-width: 768px) { .fogo-carrusel__pista { grid-auto-columns: calc((100% - 40px) / 3); } }
.fogo-carrusel__flechas { display: flex; justify-content: flex-end; gap: 8px; margin-bottom: 14px; }
.fogo .fogo-carrusel__flecha,
.fogo .fogo-carrusel__flecha:is(:hover, :focus) {
	display: grid;
	place-items: center;
	width: 44px; height: 44px;
	padding: 0;
	border: 1px solid var(--fogo-dorado);
	border-radius: 50%;
	background: transparent;
	color: var(--fogo-dorado);
	cursor: pointer;
}
.fogo .fogo-carrusel__flecha:hover { background: var(--fogo-dorado); color: var(--fogo-negro); }
.fogo-carrusel__flecha[disabled] { opacity: 0.35; cursor: default; }
.fogo-carrusel__flecha--prev .fogo-icono { transform: rotate(180deg); }

/* Línea de tiempo como carrusel */
.fogo-linea .fogo-carrusel__pista::before { display: none; }
.fogo-linea__lista.fogo-carrusel__pista { max-width: none; }
.fogo-linea__lista.fogo-carrusel__pista::before { content: none; }
.fogo-linea .fogo-linea__hito {
	display: block;
	padding: 24px 22px 26px;
	border-top: 2px solid var(--fogo-dorado);
	background: var(--fogo-negro-2);
}
.fogo-linea .fogo-linea__hito::before { content: none; }
.fogo-linea .fogo-linea__marca { margin-bottom: 8px; text-align: left; }
.fogo-linea .fogo-linea__cuerpo p { font-size: 1rem; line-height: 1.6; }
.fogo-linea__cabeza { margin-bottom: 8px; }

/* Fichas de sucursales en carrusel */
.fogo-sucursales__fichas.fogo-carrusel__pista { grid-template-columns: none; }

/* 25b. Ajuste fino tras medir en 1440×900 y 1280×720 */
@media (min-width: 1024px) {
	.fogo-mapa-suc__rejilla { height: clamp(420px, calc(var(--fogo-util) - 2 * var(--fogo-seccion) - 120px), 640px); }
	.fogo-galeria__rejilla a { height: clamp(170px, calc((var(--fogo-util) - 2 * var(--fogo-seccion) - 230px) / 2), 300px); }
	.fogo-tarjetas__lista:has(> li:nth-child(4)) .fogo-tarjeta { height: clamp(240px, calc((var(--fogo-util) - 2 * var(--fogo-seccion) - 50px) / 2), 380px); }
	.fogo-video__marco { max-width: min(100%, calc((var(--fogo-util) - 2 * var(--fogo-seccion) - 240px) * 16 / 9)); }
	.fogo-dividido__media { height: clamp(360px, calc(var(--fogo-util) - 2 * var(--fogo-seccion) - 24px), 620px); }
	.fogo-intro__titulo { font-size: clamp(2.75rem, 0.5rem + 4.4vw, 5.5rem); }
	.fogo-intro__media { height: clamp(340px, calc(var(--fogo-util) - 2 * var(--fogo-seccion) - 150px), 620px); }
	.fogo-intro__col .fogo-intro__texto { font-size: 1.0625rem; margin-top: 1.1rem; }
	.fogo-intro__col .fogo-botones { margin-top: 1.1rem; }

	/* Reservaciones en dos columnas */
	.fogo-reservar__lista { display: grid; grid-template-columns: 1fr 1fr; column-gap: 48px; max-width: none; }
	.fogo-reservar__fila { grid-template-columns: 1fr; align-content: start; }
	.fogo-reservar__acciones { justify-content: flex-start; }

	/* Platillos: tres columnas cuando hay muchos */
	.fogo-platillos__lista--2:has(> li:nth-child(7)) { grid-template-columns: repeat(3, 1fr); }
	.fogo-platillo { padding: 14px 0 16px; }
	.fogo-platillo__nombre { font-size: 1.375rem; }
	.fogo-platillo__desc { font-size: 0.9375rem; line-height: 1.5; margin-top: 6px; }

	/* Rasgos un poco más compactos */
	.fogo-rasgo__texto p { margin-bottom: 0.6em; }
}

/* Fichas de sucursal compactas */
.fogo-ficha { padding: 20px 20px 18px; }
.fogo-ficha__nombre { font-size: 1.625rem; }
.fogo-ficha__datos { gap: 12px; margin: 14px 0 16px; font-size: 0.875rem; line-height: 1.45; }
.fogo-ficha__rotulo { margin-bottom: 2px; }
.fogo-ficha__acciones .fogo-btn { min-height: 42px; padding: 8px 14px; }

/* Formularios: más compactos */
.fogo-form__campos { gap: 12px 14px; }
.fogo-campo input, .fogo-campo select { min-height: 44px; padding-block: 8px; }
.fogo-campo textarea { min-height: 96px; }
.fogo-campo__ayuda { font-size: 0.6875rem; line-height: 1.4; }
.fogo-casilla { margin: 4px 0; font-size: 0.8125rem; }
.fogo-form__nota { margin: 10px 0 8px; }
.fogo-campo--radio legend { margin-bottom: 6px; font-size: 0.9375rem; }
.fogo-opcion span { min-height: 40px; padding: 0 14px; }

/* 25c. Laptops de poca altura (≈720 px): mínimos más bajos */
@media (min-width: 1024px) and (max-height: 800px) {
	:root { --fogo-seccion: clamp(44px, 1rem + 3vw, 72px); }
	.fogo-mapa-suc__rejilla { height: max(340px, calc(var(--fogo-util) - 2 * var(--fogo-seccion) - 110px)); }
	.fogo-galeria__rejilla a { height: max(130px, calc((var(--fogo-util) - 2 * var(--fogo-seccion) - 210px) / 2)); }
	.fogo-dividido__media { height: max(320px, calc(var(--fogo-util) - 2 * var(--fogo-seccion) - 10px)); }
	.fogo-tarjetas__lista:has(> li:nth-child(4)) .fogo-tarjeta { height: max(200px, calc((var(--fogo-util) - 2 * var(--fogo-seccion) - 40px) / 2)); }
	.fogo-tarjeta { height: max(320px, calc(var(--fogo-util) - 2 * var(--fogo-seccion))); }
	.fogo-rasgo__texto { font-size: 0.875rem; }
	.fogo-rasgos__lista { gap: 18px 36px; }
}

/* 25d. FAQ en dos columnas y reservaciones más compactas */
@media (min-width: 1024px) {
	.fogo-faq__caja { max-width: calc(var(--fogo-ancho) + 2 * var(--fogo-margen)); }
	.fogo-faq__lista { columns: 2; column-gap: 48px; }
	.fogo-faq__item { break-inside: avoid; }
	.fogo-faq__item summary { min-height: 56px; padding: 12px 0; font-size: 1.0625rem; }
	.fogo-reservar__fila { padding: 10px 0; gap: 8px; }
	.fogo-reservar__horario { font-size: 0.8125rem; margin-top: 2px; }
	.fogo-reservar__acciones .fogo-btn { min-height: 40px; padding: 6px 16px; }
	.fogo-sucursales--reservar .fogo-sucursales__nota { margin-top: 16px; }
	.fogo-carrusel__flechas { margin-bottom: 8px; }
}
