@charset "UTF-8";
/* =========================================================================
   EL AS DE BRASAS · hoja de estilos del tema
   Kit v5 · prefijo .adb- · móvil primero

   El scope .adb-scope lo pone functions.php en el <body>, una sola vez.
   NO se vuelve a abrir dentro de ninguna plantilla ni fragmento (§2, §3.1).

   REGLA QUE MANDA SOBRE TODO LO DEMÁS (§3.2):
   las reglas base sobre etiquetas van SIEMPRE con :where(), que no suma
   especificidad, para que se queden en (0,1,0) y cualquier clase pueda
   ganarles. Las utilidades van SIEMPRE prefijadas con .adb-scope.

   ÍNDICE
    1 · Tipografías autoalojadas
    2 · Fichas de diseño (variables)
    3 · Reinicio y base
    4 · Accesibilidad
    5 · Composición: contenedor, bandas, retícula
    6 · Cabecera y navegación
    7 · Botones y enlaces
    8 · La línea de carta  ← componente estructural del sitio
    9 · Portada
   10 · Páginas interiores
   11 · Tabla de horarios y estado de apertura
   12 · Terceros bajo demanda
   13 · Blog
   14 · Contenido del editor
   15 · Pie
   16 · Consentimiento
   17 · Movimiento
   18 · Utilidades
   19 · Impresión
   ========================================================================= */


/* =========================================================================
   1 · TIPOGRAFÍAS AUTOALOJADAS                                          (§6)
   Solo WOFF2 y solo variables: un archivo en lugar de cinco.
   Nunca desde CDN: una petición a fonts.gstatic.com convertiría un sitio sin
   cookies en un sitio que tiene que pedir permiso.
   Subconjunto latino. Licencia OFL-1.1, incluida en fuentes/.
   ========================================================================= */

@font-face {
	font-family: 'Fraunces Variable';
	font-style: normal;
	font-weight: 100 900;
	font-display: swap;
	src: url('fuentes/fraunces-var-latin.woff2') format('woff2');
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA,
		U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122,
		U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
	font-family: 'Archivo Variable';
	font-style: normal;
	font-weight: 100 900;
	font-display: swap;
	src: url('fuentes/archivo-var-latin.woff2') format('woff2');
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA,
		U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122,
		U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}


/* =========================================================================
   2 · FICHAS DE DISEÑO
   ========================================================================= */

:root {

	/* --- Color -----------------------------------------------------------
	   Los tres de marca están MEDIDOS sobre el PNG del logotipo, no sacados
	   de la web anterior ni de la carta impresa. Ratios calculados en D1.   */

	--adb-crema:   #FAF6F0;  /* fondo principal, blanco cálido               */
	--adb-hueso:   #F1EAE0;  /* fondo de banda alterna                       */
	--adb-carbon:  #1A1614;  /* texto y bandas oscuras                       */
	--adb-humo:    #5F564E;  /* texto secundario. 6,66:1 sobre crema         */
	--adb-burdeos: #5C0F12;  /* marca 1. 12,73:1 sobre crema                 */
	--adb-brasa:   #B4501A;  /* marca 2, precios. 4,75:1 sobre crema         */

	/* OJO: --adb-ambar sobre crema da 1,92:1. NUNCA como texto sobre fondo
	   claro. Solo filetes, iconos decorativos y fondos oscuros, donde sube
	   a 8,70:1 sobre carbón.                                                */
	--adb-ambar:   #E8A93C;

	--adb-linea:      #E0D6C8;  /* filetes finos sobre crema                 */
	--adb-linea-osc:  #3A322C;  /* filetes finos sobre carbón                */

	/* --- Tipografía ------------------------------------------------------
	   Pila de respaldo real, con métricas parecidas, no `serif` a secas.    */

	--adb-tipo-display: 'Fraunces Variable', Fraunces, Georgia, 'Times New Roman', serif;
	--adb-tipo-texto:   'Archivo Variable', Archivo, 'Helvetica Neue', Arial, sans-serif;

	/* Escala fluida. El mínimo de cuerpo es 17px: por encima del mínimo de
	   16px que pide §8, porque la carta se lee mucho en móvil.              */
	--adb-t-xs:  0.8125rem;
	--adb-t-s:   0.9375rem;
	--adb-t-m:   1.0625rem;
	--adb-t-l:   clamp(1.1875rem, 1.1rem + 0.38vw, 1.375rem);
	--adb-t-xl:  clamp(1.5rem,   1.35rem + 0.75vw, 2rem);
	--adb-t-2xl: clamp(2rem,     1.7rem  + 1.5vw,  3rem);
	--adb-t-3xl: clamp(2.5rem,   1.9rem  + 3vw,    4.5rem);
	--adb-t-4xl: clamp(3rem,     2rem    + 5vw,    6rem);

	/* --- Espaciado -------------------------------------------------------
	   Escala de 4px. Los saltos grandes son fluidos porque 96px fijos se
	   quedan cortos entre secciones bajo un titular de 6rem.                */

	--adb-e-1:  4px;
	--adb-e-2:  8px;
	--adb-e-3:  12px;
	--adb-e-4:  16px;
	--adb-e-5:  24px;
	--adb-e-6:  32px;
	--adb-e-7:  48px;
	--adb-e-8:  64px;
	--adb-e-9:  clamp(64px, 8vw, 112px);
	--adb-e-10: clamp(80px, 11vw, 160px);

	/* --- Composición ---------------------------------------------------- */

	--adb-ancho:        1240px;
	--adb-ancho-texto:  66ch;   /* 60-75 caracteres, §8                      */
	--adb-margen:       clamp(20px, 5vw, 48px);

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

	--adb-t-rapida: 120ms cubic-bezier(0.2, 0, 0.2, 1);
	--adb-t-media:  320ms cubic-bezier(0.16, 1, 0.3, 1);
}


/* =========================================================================
   3 · REINICIO Y BASE
   Todas las reglas sobre etiquetas van con :where() (§3.2). Si alguna se
   escribe sin él, las clases dejan de poder ganarle y el fallo no se ve.
   ========================================================================= */

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

html {
	-webkit-text-size-adjust: 100%;
	scroll-behavior: smooth;
	/* La cabecera es fija: sin esto, un enlace ancla deja el titular debajo. */
	scroll-padding-top: 88px;
}

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

body.adb-scope {
	margin: 0;
	background: var(--adb-crema);
	color: var(--adb-carbon);
	font-family: var(--adb-tipo-texto);
	font-size: var(--adb-t-m);
	font-weight: 400;
	line-height: 1.65;
	font-synthesis-weight: none;
	text-rendering: optimizeLegibility;
	-webkit-font-smoothing: antialiased;
	overflow-x: hidden;
}

.adb-scope :where(h1, h2, h3, h4, h5, h6) {
	margin: 0;
	font-family: var(--adb-tipo-display);
	font-weight: 600;
	line-height: 1.1;
	letter-spacing: -0.015em;
	text-wrap: balance;
	color: var(--adb-carbon);
}

.adb-scope :where(p) { margin: 0 0 1.2em; }
.adb-scope :where(p):last-child { margin-bottom: 0; }

.adb-scope :where(ul, ol) { margin: 0 0 1.2em; padding-left: 1.4em; }
.adb-scope :where(li) { margin-bottom: 0.4em; }

.adb-scope :where(a) {
	color: var(--adb-burdeos);
	text-decoration-thickness: 1px;
	text-underline-offset: 0.18em;
	transition: color var(--adb-t-rapida), text-decoration-thickness var(--adb-t-rapida);
}
.adb-scope :where(a:hover) {
	color: var(--adb-brasa);
	text-decoration-thickness: 2px;
}

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

.adb-scope :where(strong, b) { font-weight: 650; }

.adb-scope :where(hr) {
	border: 0;
	border-top: 1px solid var(--adb-linea);
	margin: var(--adb-e-7) 0;
}

.adb-scope :where(table) { border-collapse: collapse; width: 100%; }

/* Cifras tabulares en TODO lo numérico. Es la razón por la que la tipografía
   de texto es Archivo: sin esto, «180 €» y «9 €» bailan en la columna.      */
.adb-scope :where(time, td, th) { font-variant-numeric: tabular-nums lining-nums; }


/* =========================================================================
   4 · ACCESIBILIDAD                                                     (§8)
   ========================================================================= */

.adb-scope .adb-saltar {
	position: absolute;
	left: var(--adb-e-4);
	top: -100px;
	z-index: 200;
	padding: var(--adb-e-3) var(--adb-e-5);
	background: var(--adb-burdeos);
	color: var(--adb-crema);
	font-size: var(--adb-t-s);
	font-weight: 600;
	text-decoration: none;
	border-radius: 2px;
	transition: top var(--adb-t-rapida);
}
.adb-scope .adb-saltar:focus { top: var(--adb-e-4); color: var(--adb-crema); }

/* Anillo de foco visible de verdad. Doble sombra para que se vea igual sobre
   crema y sobre carbón, sin depender del color de fondo.                    */
.adb-scope :where(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
	outline: 3px solid var(--adb-brasa);
	outline-offset: 2px;
	border-radius: 2px;
}

.adb-scope .adb-oculto-visual {
	position: absolute !important; /* documentado: no hay alternativa para
	   sacarlo del flujo sin ocultarlo al lector de pantalla */
	width: 1px; height: 1px;
	padding: 0; margin: -1px;
	overflow: hidden;
	clip-path: inset(50%);
	white-space: nowrap;
	border: 0;
}


/* =========================================================================
   5 · COMPOSICIÓN
   ========================================================================= */

.adb-scope .adb-contenedor {
	width: 100%;
	max-width: var(--adb-ancho);
	margin-inline: auto;
	padding-inline: var(--adb-margen);
}

/* Medida de lectura. Se aplica al texto largo, no al contenedor entero: la
   carta y las retículas necesitan todo el ancho.                            */
.adb-scope .adb-medida { max-width: var(--adb-ancho-texto); }

.adb-scope .adb-seccion { padding-block: var(--adb-e-9); }

/* Banda oscura a sangre. Se usa en el horno de leña, que es la sección sin
   fotografía: el color hace el trabajo que haría la imagen.                 */
.adb-scope .adb-banda--carbon {
	background: var(--adb-carbon);
	color: var(--adb-crema);
}
.adb-scope .adb-banda--carbon :where(h1, h2, h3, h4) { color: var(--adb-crema); }
.adb-scope .adb-banda--carbon :where(a) { color: var(--adb-ambar); }
.adb-scope .adb-banda--carbon :where(a:hover) { color: var(--adb-crema); }

.adb-scope .adb-banda--hueso { background: var(--adb-hueso); }

/* Antetítulo. Es el elemento que orienta en una web sin hero: dice de qué va
   la sección antes del titular.                                             */
.adb-scope .adb-antetitulo {
	display: block;
	margin: 0 0 var(--adb-e-4);
	font-family: var(--adb-tipo-texto);
	font-size: var(--adb-t-xs);
	font-weight: 600;
	line-height: 1.3;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--adb-brasa);
}
.adb-scope .adb-banda--carbon .adb-antetitulo { color: var(--adb-ambar); }

/* El filete de brasa: el único gesto de marca que se anima (§17). */
.adb-scope .adb-filete {
	display: block;
	width: 100%;
	max-width: 220px;
	height: 2px;
	margin: var(--adb-e-5) 0 var(--adb-e-6);
	background: var(--adb-ambar);
	transform-origin: left center;
}


/* =========================================================================
   6 · CABECERA Y NAVEGACIÓN
   ========================================================================= */

.adb-scope .adb-cabecera {
	position: sticky;
	top: 0;
	z-index: 100;
	background: color-mix(in srgb, var(--adb-crema) 92%, transparent);
	backdrop-filter: blur(8px);
	border-bottom: 1px solid var(--adb-linea);
}

.adb-scope .adb-cabecera__fila {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--adb-e-5);
	min-height: 72px;
}

.adb-scope .adb-logo { display: inline-flex; color: var(--adb-carbon); }
.adb-scope .adb-logo svg { width: auto; height: 44px; }
.adb-scope .adb-logo:hover { color: var(--adb-burdeos); }

/* El logotipo del personalizador viene como <img> dentro de .custom-logo-link */
.adb-scope .custom-logo-link { display: inline-flex; }
.adb-scope .custom-logo { height: 44px; width: auto; }

.adb-scope .adb-nav { display: none; }

.adb-scope .adb-nav__lista {
	display: flex;
	align-items: center;
	gap: var(--adb-e-5);
	margin: 0;
	padding: 0;
	list-style: none;
}
.adb-scope .adb-nav__lista li { margin: 0; }

.adb-scope .adb-nav a {
	display: inline-block;
	padding-block: var(--adb-e-2);
	font-size: var(--adb-t-s);
	font-weight: 500;
	line-height: 1.3;
	color: var(--adb-carbon);
	text-decoration: none;
	border-bottom: 2px solid transparent;
}
.adb-scope .adb-nav a:hover { color: var(--adb-burdeos); border-bottom-color: var(--adb-ambar); }
.adb-scope .adb-nav .current-menu-item > a,
.adb-scope .adb-nav .current_page_item > a {
	color: var(--adb-burdeos);
	border-bottom-color: var(--adb-burdeos);
}

.adb-scope .adb-cabecera__acciones { display: flex; align-items: center; gap: var(--adb-e-3); }

/* Botón hamburguesa. Solo en móvil. */
.adb-scope .adb-hamburguesa {
	display: inline-flex;
	align-items: center;
	gap: var(--adb-e-2);
	padding: var(--adb-e-2) var(--adb-e-3);
	background: none;
	border: 1px solid var(--adb-linea);
	border-radius: 2px;
	font-family: var(--adb-tipo-texto);
	font-size: var(--adb-t-xs);
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--adb-carbon);
	cursor: pointer;
}
.adb-scope .adb-hamburguesa__barras {
	position: relative;
	width: 18px; height: 2px;
	background: currentColor;
}
.adb-scope .adb-hamburguesa__barras::before,
.adb-scope .adb-hamburguesa__barras::after {
	content: '';
	position: absolute;
	left: 0;
	width: 18px; height: 2px;
	background: currentColor;
}
.adb-scope .adb-hamburguesa__barras::before { top: -6px; }
.adb-scope .adb-hamburguesa__barras::after  { top: 6px; }

/* Panel de móvil. Es una modal y cumple §8: role=dialog, Escape, foco
   atrapado y devuelto al botón. Lo gobierna scripts.js.                     */
.adb-scope .adb-panel-nav {
	position: fixed;
	inset: 0;
	z-index: 150;
	display: none;
	background: var(--adb-crema);
	padding: var(--adb-e-5) 0 var(--adb-e-8);
	overflow-y: auto;
	overscroll-behavior: contain;
}
.adb-scope .adb-panel-nav[data-abierto='true'] { display: block; }

.adb-scope .adb-panel-nav__cabecera {
	display: flex; align-items: center; justify-content: space-between;
	min-height: 48px; margin-bottom: var(--adb-e-6);
}

.adb-scope .adb-panel-nav__cerrar {
	padding: var(--adb-e-2) var(--adb-e-4);
	background: none;
	border: 1px solid var(--adb-linea);
	border-radius: 2px;
	font-family: var(--adb-tipo-texto);
	font-size: var(--adb-t-s);
	color: var(--adb-carbon);
	cursor: pointer;
}

.adb-scope .adb-panel-nav ul { margin: 0; padding: 0; list-style: none; }
.adb-scope .adb-panel-nav li { margin: 0; border-bottom: 1px solid var(--adb-linea); }
.adb-scope .adb-panel-nav a {
	display: block;
	padding: var(--adb-e-4) 0;
	font-family: var(--adb-tipo-display);
	font-size: var(--adb-t-xl);
	font-weight: 500;
	line-height: 1.2;
	letter-spacing: -0.01em;
	color: var(--adb-carbon);
	text-decoration: none;
}
.adb-scope .adb-panel-nav a:hover { color: var(--adb-burdeos); }

@media (min-width: 62em) {
	.adb-scope .adb-nav { display: block; }
	.adb-scope .adb-hamburguesa { display: none; }
	.adb-scope .adb-panel-nav { display: none !important; } /* documentado:
	   si el panel queda abierto y se gira la tablet, tiene que desaparecer
	   sin depender de que el JS lo cierre a tiempo */
}


/* =========================================================================
   7 · BOTONES
   Se fijan familia, tamaño, interlineado y márgenes explícitamente porque el
   botón se renderiza a veces como <a> y a veces como <button> (§3.2).
   ========================================================================= */

.adb-scope .adb-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: var(--adb-e-2);
	margin: 0;
	padding: 14px 26px;
	border: 2px solid transparent;
	border-radius: 2px;
	font-family: var(--adb-tipo-texto);
	font-size: var(--adb-t-s);
	font-weight: 600;
	line-height: 1.2;
	letter-spacing: 0.02em;
	text-align: center;
	text-decoration: none;
	cursor: pointer;
	transition: background-color var(--adb-t-rapida), border-color var(--adb-t-rapida), color var(--adb-t-rapida);
}

.adb-scope .adb-btn--principal {
	background: var(--adb-burdeos);
	border-color: var(--adb-burdeos);
	color: var(--adb-crema);
}
.adb-scope .adb-btn--principal:hover {
	background: var(--adb-brasa);
	border-color: var(--adb-brasa);
	color: var(--adb-crema);
}

.adb-scope .adb-btn--secundario {
	background: transparent;
	border-color: var(--adb-carbon);
	color: var(--adb-carbon);
}
.adb-scope .adb-btn--secundario:hover {
	background: var(--adb-carbon);
	color: var(--adb-crema);
}

/* Sobre banda oscura hay que invertir: el burdeos sobre carbón no contrasta. */
.adb-scope .adb-banda--carbon .adb-btn--principal {
	background: var(--adb-ambar);
	border-color: var(--adb-ambar);
	color: var(--adb-carbon);
}
.adb-scope .adb-banda--carbon .adb-btn--principal:hover {
	background: var(--adb-crema);
	border-color: var(--adb-crema);
	color: var(--adb-carbon);
}
.adb-scope .adb-banda--carbon .adb-btn--secundario {
	border-color: var(--adb-crema);
	color: var(--adb-crema);
}
.adb-scope .adb-banda--carbon .adb-btn--secundario:hover {
	background: var(--adb-crema);
	color: var(--adb-carbon);
}

.adb-scope .adb-btn--tel {
	font-variant-numeric: tabular-nums lining-nums;
	letter-spacing: 0.04em;
}

.adb-scope .adb-botonera {
	display: flex;
	flex-wrap: wrap;
	gap: var(--adb-e-3);
	margin-top: var(--adb-e-6);
}


/* =========================================================================
   8 · LA LÍNEA DE CARTA
   El componente estructural del sitio: plato · filete de puntos · precio.
   Es la forma tipográfica más tradicional que existe en hostelería, y aquí
   hace de retícula en vez de decoración.
   ========================================================================= */

.adb-scope .adb-carta { margin: 0; padding: 0; list-style: none; }

.adb-scope .adb-carta__grupo + .adb-carta__grupo { margin-top: var(--adb-e-8); }

.adb-scope .adb-carta__titulo {
	margin: 0 0 var(--adb-e-2);
	font-family: var(--adb-tipo-display);
	font-size: var(--adb-t-xl);
	font-weight: 600;
	line-height: 1.15;
	letter-spacing: -0.015em;
	color: var(--adb-burdeos);
}

.adb-scope .adb-carta__lista {
	margin: 0;
	padding: 0;
	list-style: none;
	border-top: 1px solid var(--adb-linea);
}

.adb-scope .adb-carta__linea {
	display: flex;
	align-items: baseline;
	gap: var(--adb-e-2);
	margin: 0;
	padding: var(--adb-e-4) 0;
	border-bottom: 1px solid var(--adb-linea);
}

.adb-scope .adb-carta__plato {
	font-family: var(--adb-tipo-texto);
	font-size: var(--adb-t-m);
	font-weight: 500;
	line-height: 1.4;
	color: var(--adb-carbon);
}

/* El filete de puntos. Se lleva el espacio sobrante para que el precio quede
   anclado a la derecha sin usar justify-content: space-between, que dejaría
   el hueco vacío en las líneas cortas.                                      */
.adb-scope .adb-carta__filete {
	flex: 1 1 auto;
	min-width: var(--adb-e-5);
	align-self: flex-end;
	/* -0.32em sube la línea hasta la base tipográfica: alineada al baseline
	   real cae demasiado abajo y parece un subrayado.                       */
	transform: translateY(-0.32em);
	border-bottom: 1px dotted var(--adb-linea);
}

.adb-scope .adb-carta__precio {
	flex: 0 0 auto;
	font-family: var(--adb-tipo-texto);
	font-size: var(--adb-t-m);
	font-weight: 600;
	line-height: 1.4;
	/* La razón de ser de Archivo: sin cifras tabulares la columna baila. */
	font-variant-numeric: tabular-nums lining-nums;
	color: var(--adb-brasa);
	white-space: nowrap;
}

.adb-scope .adb-carta__nota {
	margin: var(--adb-e-4) 0 0;
	font-size: var(--adb-t-s);
	line-height: 1.55;
	color: var(--adb-humo);
}

.adb-scope .adb-carta__marca {
	display: inline-block;
	margin-left: var(--adb-e-2);
	padding: 2px 6px;
	border: 1px solid var(--adb-burdeos);
	border-radius: 2px;
	font-size: var(--adb-t-xs);
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--adb-burdeos);
	white-space: nowrap;
}

/* Versión grande, para el extracto de carta de la portada. Aquí la línea deja
   de ser lista y pasa a ser el titular de la sección.                       */
.adb-scope .adb-carta--grande .adb-carta__plato,
.adb-scope .adb-carta--grande .adb-carta__precio {
	font-family: var(--adb-tipo-display);
	font-size: var(--adb-t-l);
	font-weight: 500;
	line-height: 1.25;
}
.adb-scope .adb-carta--grande .adb-carta__linea { padding: var(--adb-e-5) 0; }

/* Sobre banda oscura. */
.adb-scope .adb-banda--carbon .adb-carta__lista,
.adb-scope .adb-banda--carbon .adb-carta__linea { border-color: var(--adb-linea-osc); }
.adb-scope .adb-banda--carbon .adb-carta__filete { border-bottom-color: var(--adb-linea-osc); }
.adb-scope .adb-banda--carbon .adb-carta__plato  { color: var(--adb-crema); }
.adb-scope .adb-banda--carbon .adb-carta__precio { color: var(--adb-ambar); }
.adb-scope .adb-banda--carbon .adb-carta__titulo { color: var(--adb-crema); }
.adb-scope .adb-banda--carbon .adb-carta__nota   { color: #B9AFA4; }


/* =========================================================================
   9 · PORTADA
   ========================================================================= */

/* --- 9.1 Apertura tipográfica. Sin imagen: el material no da para un hero a
   sangre (techo de 1350px) y un hero fotográfico es además el recurso más
   genérico que existe.                                                      */

.adb-scope .adb-apertura { padding-block: var(--adb-e-9) var(--adb-e-8); }

.adb-scope .adb-apertura__titulo {
	margin: 0;
	font-family: var(--adb-tipo-display);
	font-size: var(--adb-t-4xl);
	font-weight: 600;
	line-height: 0.98;
	letter-spacing: -0.03em;
	text-wrap: balance;
}
.adb-scope .adb-apertura__titulo em {
	display: block;
	font-style: italic;
	font-weight: 400;
	color: var(--adb-burdeos);
}

.adb-scope .adb-apertura__entrada {
	max-width: 54ch;
	margin-top: var(--adb-e-6);
	font-size: var(--adb-t-l);
	line-height: 1.5;
	color: var(--adb-humo);
}

/* Franja práctica: estado de apertura, teléfono y reserva. Va arriba porque
   es lo que busca quien entra desde el móvil justo antes de venir.          */
.adb-scope .adb-franja {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--adb-e-3) var(--adb-e-6);
	margin-top: var(--adb-e-7);
	padding-top: var(--adb-e-5);
	border-top: 1px solid var(--adb-linea);
}

/* --- 9.2 La semana partida.
   La sección que hace única esta web: sale del horario real del negocio, que
   son dos negocios distintos. Ningún otro restaurante tiene este horario, así
   que ninguno puede tener esta sección.                                     */

.adb-scope .adb-semana {
	display: grid;
	gap: var(--adb-e-7);
	grid-template-columns: 1fr;
}

.adb-scope .adb-semana__bloque { position: relative; padding-top: var(--adb-e-5); border-top: 3px solid var(--adb-carbon); }
.adb-scope .adb-semana__bloque--diario { border-top-color: var(--adb-brasa); }
.adb-scope .adb-semana__bloque--asador { border-top-color: var(--adb-burdeos); }

.adb-scope .adb-semana__dias {
	display: block;
	margin-bottom: var(--adb-e-3);
	font-size: var(--adb-t-xs);
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--adb-humo);
}

.adb-scope .adb-semana__titulo {
	margin: 0 0 var(--adb-e-4);
	font-family: var(--adb-tipo-display);
	font-size: var(--adb-t-2xl);
	font-weight: 600;
	line-height: 1.05;
	letter-spacing: -0.02em;
}

.adb-scope .adb-semana__precio {
	display: block;
	margin-bottom: var(--adb-e-4);
	font-family: var(--adb-tipo-display);
	font-size: var(--adb-t-3xl);
	font-weight: 600;
	line-height: 1;
	font-variant-numeric: tabular-nums lining-nums;
	color: var(--adb-brasa);
}

.adb-scope .adb-semana__texto { color: var(--adb-humo); }

@media (min-width: 48em) {
	/* Asimétrica a propósito: el diario pesa menos en euros pero más en
	   frecuencia; el asador al revés. 5/7 contra 7/7 lo dice sin escribirlo. */
	.adb-scope .adb-semana { grid-template-columns: 5fr 7fr; gap: var(--adb-e-8); }
}

/* --- 9.3 Pieza de fuego: una sola imagen contenida, a su tamaño real.
   1350px de ancho es el máximo que existe en el material: NO se amplía (§9). */

.adb-scope .adb-pieza { margin-block: var(--adb-e-8); }
.adb-scope .adb-pieza img {
	width: 100%;
	max-width: 1350px;
	margin-inline: auto;
	aspect-ratio: 1350 / 756;
	object-fit: cover;
}
.adb-scope .adb-pieza figcaption {
	max-width: 1350px;
	margin: var(--adb-e-3) auto 0;
	font-size: var(--adb-t-s);
	color: var(--adb-humo);
}

/* --- 9.5 La brasa en tres tiempos: crudo → parrilla → cortado.
   Es la única narrativa que el material fotográfico sostiene de verdad.     */

.adb-scope .adb-tiempos {
	display: grid;
	gap: var(--adb-e-5);
	grid-template-columns: 1fr;
	margin: 0;
	padding: 0;
	list-style: none;
	counter-reset: adb-tiempo;
}
.adb-scope .adb-tiempos li { margin: 0; counter-increment: adb-tiempo; }

.adb-scope .adb-tiempos img {
	width: 100%;
	aspect-ratio: 843 / 787;
	object-fit: cover;
}

.adb-scope .adb-tiempos__pie {
	display: flex;
	align-items: baseline;
	gap: var(--adb-e-3);
	margin-top: var(--adb-e-3);
	font-size: var(--adb-t-s);
	color: var(--adb-humo);
}
.adb-scope .adb-tiempos__pie::before {
	content: counter(adb-tiempo);
	font-family: var(--adb-tipo-display);
	font-size: var(--adb-t-l);
	font-weight: 600;
	font-variant-numeric: lining-nums;
	color: var(--adb-brasa);
}

@media (min-width: 48em) {
	.adb-scope .adb-tiempos { grid-template-columns: repeat(3, 1fr); gap: var(--adb-e-6); }
}

/* --- 9.7 Vinos en corto: tres nombres que pesan, no los treinta. */

.adb-scope .adb-vinos {
	display: grid;
	gap: var(--adb-e-5);
	grid-template-columns: 1fr;
	margin: var(--adb-e-6) 0 0;
	padding: 0;
	list-style: none;
}
.adb-scope .adb-vinos li {
	margin: 0;
	padding-top: var(--adb-e-4);
	border-top: 1px solid var(--adb-linea);
}
.adb-scope .adb-vinos__nombre {
	display: block;
	font-family: var(--adb-tipo-display);
	font-size: var(--adb-t-l);
	font-weight: 600;
	line-height: 1.2;
}
.adb-scope .adb-vinos__dato {
	display: block;
	margin-top: var(--adb-e-1);
	font-size: var(--adb-t-s);
	font-variant-numeric: tabular-nums lining-nums;
	color: var(--adb-humo);
}

@media (min-width: 40em) {
	.adb-scope .adb-vinos { grid-template-columns: repeat(3, 1fr); }
}


/* =========================================================================
   10 · PÁGINAS INTERIORES
   ========================================================================= */

.adb-scope .adb-cabecera-pagina {
	padding-block: var(--adb-e-8) var(--adb-e-7);
	border-bottom: 1px solid var(--adb-linea);
}

.adb-scope .adb-cabecera-pagina__titulo {
	margin: 0;
	font-family: var(--adb-tipo-display);
	font-size: var(--adb-t-3xl);
	font-weight: 600;
	line-height: 1.02;
	letter-spacing: -0.025em;
	max-width: 20ch;
}

.adb-scope .adb-cabecera-pagina__entrada {
	max-width: 56ch;
	margin-top: var(--adb-e-5);
	font-size: var(--adb-t-l);
	line-height: 1.5;
	color: var(--adb-humo);
}

/* Migas. Van con BreadcrumbList en el JSON-LD del fragmento (§7). */
.adb-scope .adb-migas {
	padding-block: var(--adb-e-4);
	font-size: var(--adb-t-xs);
	color: var(--adb-humo);
}
.adb-scope .adb-migas ol {
	display: flex; flex-wrap: wrap; gap: var(--adb-e-2);
	margin: 0; padding: 0; list-style: none;
}
.adb-scope .adb-migas li { margin: 0; }
.adb-scope .adb-migas li + li::before { content: '/'; margin-right: var(--adb-e-2); color: var(--adb-linea); }
.adb-scope .adb-migas a { color: var(--adb-humo); }

/* Dos columnas de texto e imagen, alternables. Se usa en las páginas de
   método (horno y brasa), no en la portada.                                 */
.adb-scope .adb-duo {
	display: grid;
	gap: var(--adb-e-6);
	grid-template-columns: 1fr;
	align-items: center;
}
@media (min-width: 52em) {
	.adb-scope .adb-duo { grid-template-columns: 1fr 1fr; gap: var(--adb-e-8); }
	.adb-scope .adb-duo--invertido .adb-duo__media { order: -1; }
}
/* Cuando las dos columnas tienen alturas muy distintas —texto largo contra un
   incrustado de altura fija— centrar deja la caja pequeña flotando en medio.
   Con esto se alinean por arriba, que es como se lee. */
.adb-scope .adb-duo--arriba { align-items: start; }
.adb-scope .adb-duo img { width: 100%; aspect-ratio: 843 / 787; object-fit: cover; }

/* Bloque de encargo. Existe porque el lechazo, el cochinillo y el pato son
   «por encargo» y no caben en Cover Manager: el camino es el teléfono.      */
.adb-scope .adb-encargo {
	padding: var(--adb-e-6);
	border: 2px solid var(--adb-ambar);
	border-radius: 2px;
}
.adb-scope .adb-encargo__titulo {
	margin: 0 0 var(--adb-e-3);
	font-family: var(--adb-tipo-display);
	font-size: var(--adb-t-xl);
	font-weight: 600;
	line-height: 1.15;
}


/* =========================================================================
   11 · TABLA DE HORARIOS Y ESTADO DE APERTURA
   ========================================================================= */

.adb-scope .adb-horario { width: 100%; margin: 0; font-variant-numeric: tabular-nums lining-nums; }
.adb-scope .adb-horario caption { text-align: left; margin-bottom: var(--adb-e-4); font-weight: 600; }

.adb-scope .adb-horario th,
.adb-scope .adb-horario td {
	padding: var(--adb-e-3) 0;
	font-size: var(--adb-t-s);
	line-height: 1.4;
	text-align: left;
	vertical-align: baseline;
	border-bottom: 1px solid var(--adb-linea);
}
.adb-scope .adb-horario th { font-weight: 500; width: 42%; }
.adb-scope .adb-horario td { text-align: right; }

.adb-scope .adb-horario tr[data-hoy='true'] th,
.adb-scope .adb-horario tr[data-hoy='true'] td {
	font-weight: 700;
	color: var(--adb-burdeos);
}
/* No se comunica solo con color (§8): el día de hoy lleva además esta marca. */
.adb-scope .adb-horario tr[data-hoy='true'] th::after {
	content: ' · hoy';
	font-weight: 500;
	color: var(--adb-brasa);
}

.adb-scope .adb-horario__cerrado { color: var(--adb-humo); }

/* Indicador de abierto/cerrado. Lo rellena el JS con la hora de Madrid, no
   con la del visitante. Si el JS no corre, no se muestra nada y la tabla de
   horarios sigue diciendo la verdad.                                        */
.adb-scope .adb-estado {
	display: none;
	align-items: center;
	gap: var(--adb-e-2);
	font-size: var(--adb-t-s);
	font-weight: 600;
}
.adb-scope .adb-estado[data-estado] { display: inline-flex; }
.adb-scope .adb-estado__punto {
	width: 9px; height: 9px;
	border-radius: 50%;
	background: var(--adb-humo);
	flex: 0 0 auto;
}
.adb-scope .adb-estado[data-estado='abierto'] .adb-estado__punto { background: #1E7A3C; }
.adb-scope .adb-estado[data-estado='abierto'] { color: #1A5C2E; }
.adb-scope .adb-estado[data-estado='cerrado'] { color: var(--adb-humo); }


/* =========================================================================
   12 · TERCEROS BAJO DEMANDA                                           (§11)
   No hay <iframe> en el HTML. Hay un contenedor con el aspecto reservado, la
   explicación de qué se carga y de quién, y un botón. El clic ES el
   consentimiento para ese incrustado.
   ========================================================================= */

.adb-scope .adb-incrustado {
	position: relative;
	display: grid;
	place-items: center;
	background: var(--adb-hueso);
	border: 1px solid var(--adb-linea);
	border-radius: 2px;
	padding: var(--adb-e-6);
	text-align: center;
	/* Aspecto calculado, no estimado: 16/9 para el mapa, 3/4 en móvil para el
	   motor de reservas. Se sobrescribe por modificador.                     */
	aspect-ratio: 16 / 9;
	overflow: hidden;
}
.adb-scope .adb-incrustado--reservas { aspect-ratio: 3 / 4; }
@media (min-width: 48em) {
	.adb-scope .adb-incrustado--reservas { aspect-ratio: 4 / 3; }
}

.adb-scope .adb-incrustado__aviso { max-width: 46ch; }
.adb-scope .adb-incrustado__titulo {
	margin: 0 0 var(--adb-e-2);
	font-family: var(--adb-tipo-display);
	font-size: var(--adb-t-l);
	font-weight: 600;
	line-height: 1.2;
}
.adb-scope .adb-incrustado__texto {
	margin: 0 0 var(--adb-e-5);
	font-size: var(--adb-t-s);
	line-height: 1.5;
	color: var(--adb-humo);
}
.adb-scope .adb-incrustado iframe {
	position: absolute;
	inset: 0;
	width: 100%; height: 100%;
	border: 0;
}
.adb-scope .adb-incrustado[data-cargado='true'] { padding: 0; background: var(--adb-crema); }
.adb-scope .adb-incrustado[data-cargado='true'] .adb-incrustado__aviso { display: none; }


/* =========================================================================
   13 · BLOG
   ========================================================================= */

.adb-scope .adb-listado {
	display: grid;
	gap: var(--adb-e-7);
	grid-template-columns: 1fr;
	margin: 0; padding: 0; list-style: none;
}
@media (min-width: 44em) { .adb-scope .adb-listado { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 68em) { .adb-scope .adb-listado { grid-template-columns: repeat(3, 1fr); } }

/* La tarjeta se pinta con h2 en el listado y con h3 en las relacionadas.
   Por eso fija familia, tamaño, interlineado, espaciado y margen de forma
   explícita: si heredara, se vería de un tamaño en cada sitio (§3.2).       */
.adb-scope .adb-tarjeta { margin: 0; display: flex; flex-direction: column; }

.adb-scope .adb-tarjeta__media { margin: 0 0 var(--adb-e-4); overflow: hidden; }
.adb-scope .adb-tarjeta__media img {
	width: 100%;
	aspect-ratio: 3 / 2;
	object-fit: cover;
	transition: transform var(--adb-t-media);
}
.adb-scope .adb-tarjeta:hover .adb-tarjeta__media img { transform: scale(1.03); }

.adb-scope .adb-tarjeta__meta {
	display: flex; flex-wrap: wrap; gap: var(--adb-e-2) var(--adb-e-4);
	margin-bottom: var(--adb-e-2);
	font-size: var(--adb-t-xs);
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--adb-humo);
}
.adb-scope .adb-tarjeta__categoria { color: var(--adb-brasa); font-weight: 600; }

.adb-scope .adb-tarjeta__titulo {
	margin: 0 0 var(--adb-e-3);
	font-family: var(--adb-tipo-display);
	font-size: var(--adb-t-xl);
	font-weight: 600;
	line-height: 1.15;
	letter-spacing: -0.015em;
}
.adb-scope .adb-tarjeta__titulo a { color: var(--adb-carbon); text-decoration: none; }
.adb-scope .adb-tarjeta__titulo a:hover { color: var(--adb-burdeos); }

.adb-scope .adb-tarjeta__extracto {
	margin: 0;
	font-size: var(--adb-t-s);
	line-height: 1.6;
	color: var(--adb-humo);
}

.adb-scope .adb-entrada__contenido { max-width: var(--adb-ancho-texto); }
.adb-scope .adb-entrada__portada { margin: var(--adb-e-6) 0 var(--adb-e-7); }
.adb-scope .adb-entrada__portada img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; }

.adb-scope .adb-relacionadas { padding-block: var(--adb-e-9); }

.adb-scope .adb-paginacion { margin-top: var(--adb-e-8); }
.adb-scope .adb-paginacion__lista {
	display: flex; flex-wrap: wrap; gap: var(--adb-e-2);
	margin: 0; padding: 0; list-style: none;
}
.adb-scope .adb-paginacion__item { margin: 0; }
.adb-scope .adb-paginacion__item .page-numbers {
	display: inline-flex; align-items: center; justify-content: center;
	min-width: 44px; min-height: 44px;
	padding: 0 var(--adb-e-3);
	border: 1px solid var(--adb-linea);
	border-radius: 2px;
	font-size: var(--adb-t-s);
	font-variant-numeric: tabular-nums lining-nums;
	color: var(--adb-carbon);
	text-decoration: none;
}
.adb-scope .adb-paginacion__item .page-numbers.current {
	background: var(--adb-burdeos);
	border-color: var(--adb-burdeos);
	color: var(--adb-crema);
}


/* =========================================================================
   14 · CONTENIDO DEL EDITOR
   Estilos para lo que se escribe de verdad en el editor: es lo que siempre se
   olvida y lo que rompe el blog cuando el cliente publica su primera entrada.
   ========================================================================= */

/* El espaciado de la prosa lo lleva SOLO este par. Hay que anular el
   margin-bottom de la regla base de §3, porque si no cada párrafo sumaría
   1.2em abajo y 1.2em arriba y quedaría a doble espacio. */
.adb-scope .adb-prosa > * { margin-bottom: 0; }
.adb-scope .adb-prosa > * + * { margin-top: 1.2em; }

.adb-scope .adb-prosa :where(h2) { margin-top: 1.8em; font-size: var(--adb-t-2xl); }
.adb-scope .adb-prosa :where(h3) { margin-top: 1.6em; font-size: var(--adb-t-xl); }
.adb-scope .adb-prosa :where(h4) { margin-top: 1.4em; font-size: var(--adb-t-l); }

.adb-scope .adb-prosa :where(blockquote) {
	margin: 1.8em 0;
	padding-left: var(--adb-e-5);
	border-left: 3px solid var(--adb-ambar);
	font-family: var(--adb-tipo-display);
	font-size: var(--adb-t-l);
	font-style: italic;
	line-height: 1.45;
	color: var(--adb-burdeos);
}
.adb-scope .adb-prosa :where(blockquote) cite {
	display: block;
	margin-top: var(--adb-e-3);
	font-family: var(--adb-tipo-texto);
	font-size: var(--adb-t-s);
	font-style: normal;
	color: var(--adb-humo);
}

.adb-scope .adb-prosa :where(figure) { margin: 1.8em 0; }
.adb-scope .adb-prosa :where(figcaption) {
	margin-top: var(--adb-e-2);
	font-size: var(--adb-t-s);
	line-height: 1.5;
	color: var(--adb-humo);
}

.adb-scope .adb-prosa :where(table) { margin: 1.8em 0; font-size: var(--adb-t-s); }
.adb-scope .adb-prosa :where(th, td) {
	padding: var(--adb-e-3);
	text-align: left;
	border-bottom: 1px solid var(--adb-linea);
}
.adb-scope .adb-prosa :where(th) { font-weight: 600; background: var(--adb-hueso); }

.adb-scope .adb-prosa :where(code) {
	padding: 2px 5px;
	background: var(--adb-hueso);
	border-radius: 2px;
	font-size: 0.9em;
}

.adb-scope .adb-prosa :where(.wp-block-separator) {
	width: 120px;
	margin: 2.4em 0;
	border-top: 2px solid var(--adb-ambar);
}

.adb-scope .adb-prosa :where(.wp-block-image) img { width: 100%; }

.adb-scope .adb-prosa :where(ul, ol) { padding-left: 1.3em; }
.adb-scope .adb-prosa :where(li)::marker { color: var(--adb-brasa); }


/* =========================================================================
   15 · PIE
   ========================================================================= */

.adb-scope .adb-pie {
	/* Sin margin-top: la última sección ya trae su propio padding inferior, y
	   sumarlos dejaba una franja de fondo crema entre una banda de color y el
	   pie que parecía un hueco sin rellenar. */
	padding-block: var(--adb-e-9) var(--adb-e-6);
	background: var(--adb-carbon);
	color: #C9C0B6;
	font-size: var(--adb-t-s);
}
.adb-scope .adb-pie :where(h2, h3) { color: var(--adb-crema); }
.adb-scope .adb-pie :where(a) { color: #C9C0B6; text-decoration: none; }
.adb-scope .adb-pie :where(a:hover) { color: var(--adb-ambar); text-decoration: underline; }

.adb-scope .adb-pie__rejilla {
	display: grid;
	gap: var(--adb-e-7);
	grid-template-columns: 1fr;
}
@media (min-width: 48em) { .adb-scope .adb-pie__rejilla { grid-template-columns: 1.2fr 1fr 1fr; } }

.adb-scope .adb-pie__titulo {
	margin: 0 0 var(--adb-e-4);
	font-family: var(--adb-tipo-texto);
	font-size: var(--adb-t-xs);
	font-weight: 700;
	line-height: 1.3;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--adb-ambar);
}

.adb-scope .adb-pie__logo svg { width: 180px; height: auto; color: var(--adb-crema); }

.adb-scope .adb-pie ul { margin: 0; padding: 0; list-style: none; }
.adb-scope .adb-pie li { margin-bottom: var(--adb-e-2); }

.adb-scope .adb-pie__legal {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--adb-e-3) var(--adb-e-5);
	margin-top: var(--adb-e-8);
	padding-top: var(--adb-e-5);
	border-top: 1px solid var(--adb-linea-osc);
	font-size: var(--adb-t-xs);
}

.adb-scope .adb-pie__preferencias {
	padding: 0;
	background: none;
	border: 0;
	border-bottom: 1px solid currentColor;
	font-family: inherit;
	font-size: inherit;
	color: inherit;
	cursor: pointer;
}
.adb-scope .adb-pie__preferencias:hover { color: var(--adb-ambar); }


/* =========================================================================
   16 · CONSENTIMIENTO                                                  (§10)
   Se monta aunque ahora mismo se entregue apagado: en cuanto entre una
   analítica hace falta, y añadirlo después obliga a tocar el JS en caliente.
   Rechazar cuesta exactamente lo mismo que aceptar.
   ========================================================================= */

.adb-scope .adb-cookies {
	position: fixed;
	left: var(--adb-e-4);
	right: var(--adb-e-4);
	bottom: var(--adb-e-4);
	z-index: 180;
	display: none;
	max-width: 640px;
	padding: var(--adb-e-5);
	background: var(--adb-crema);
	border: 1px solid var(--adb-carbon);
	border-radius: 2px;
	box-shadow: 0 8px 32px rgb(26 22 20 / 18%);
}
.adb-scope .adb-cookies[data-abierto='true'] { display: block; }

.adb-scope .adb-cookies__titulo {
	margin: 0 0 var(--adb-e-2);
	font-family: var(--adb-tipo-display);
	font-size: var(--adb-t-l);
	font-weight: 600;
	line-height: 1.2;
}
.adb-scope .adb-cookies__texto {
	margin: 0 0 var(--adb-e-5);
	font-size: var(--adb-t-s);
	line-height: 1.55;
	color: var(--adb-humo);
}

/* Mismo nivel, mismo tamaño, misma jerarquía. Sin un «Aceptar» de color y un
   «Rechazar» gris pequeño debajo (§10).                                     */
.adb-scope .adb-cookies__acciones {
	display: grid;
	gap: var(--adb-e-2);
	grid-template-columns: 1fr;
}
@media (min-width: 34em) {
	.adb-scope .adb-cookies__acciones { grid-template-columns: repeat(3, 1fr); }
}
.adb-scope .adb-cookies__acciones .adb-btn { width: 100%; padding-inline: var(--adb-e-3); }

.adb-scope .adb-panel-cookies {
	position: fixed;
	inset: 0;
	z-index: 190;
	display: none;
	place-items: center;
	padding: var(--adb-e-4);
	background: rgb(26 22 20 / 55%);
}
.adb-scope .adb-panel-cookies[data-abierto='true'] { display: grid; }

.adb-scope .adb-panel-cookies__caja {
	width: 100%;
	max-width: 560px;
	max-height: 86vh;
	overflow-y: auto;
	padding: var(--adb-e-6);
	background: var(--adb-crema);
	border-radius: 2px;
}

.adb-scope .adb-cookies__grupo {
	display: flex;
	align-items: flex-start;
	gap: var(--adb-e-3);
	padding: var(--adb-e-4) 0;
	border-bottom: 1px solid var(--adb-linea);
}
.adb-scope .adb-cookies__grupo label { font-weight: 600; font-size: var(--adb-t-s); cursor: pointer; }
.adb-scope .adb-cookies__grupo p { margin: var(--adb-e-1) 0 0; font-size: var(--adb-t-xs); color: var(--adb-humo); }
.adb-scope .adb-cookies__grupo input { width: 20px; height: 20px; margin-top: 2px; accent-color: var(--adb-burdeos); }
.adb-scope .adb-cookies__grupo input:disabled { opacity: 0.6; }


/* =========================================================================
   17 · MOVIMIENTO
   Sutil, por encargo. Un solo gesto de marca: el filete de brasa.
   ========================================================================= */

.adb-scope [data-revelar] {
	opacity: 0;
	transform: translateY(8px);
	transition: opacity var(--adb-t-media), transform var(--adb-t-media);
}
.adb-scope [data-revelar][data-visible='true'] { opacity: 1; transform: none; }

/* El filete solo arranca encogido si está DENTRO de un bloque que se revela.
   Si se pusiera en .adb-filete a secas, cualquier filete fuera de un bloque
   revelable se quedaría en scaleX(0) para siempre, o sea invisible. */
.adb-scope [data-revelar] .adb-filete {
	transform: scaleX(0);
	transition: transform 520ms cubic-bezier(0.16, 1, 0.3, 1);
}
.adb-scope [data-revelar][data-visible='true'] .adb-filete { transform: scaleX(1); }

/* Sin JavaScript no puede desaparecer contenido. header.php lleva además un
   <noscript> con la misma anulación, porque `scripting` no está en todos los
   navegadores todavía y esto no puede fallar. */
@media (scripting: none) {
	.adb-scope [data-revelar] { opacity: 1; transform: none; }
	.adb-scope [data-revelar] .adb-filete { transform: scaleX(1); }
}

/* Anula todo lo de arriba (§8). Va aquí, en su sección, no al final. */
@media (prefers-reduced-motion: reduce) {
	.adb-scope *,
	.adb-scope *::before,
	.adb-scope *::after {
		animation-duration: 0.01ms !important;  /* documentado: es la forma
		   estándar de neutralizar animaciones de terceros y del editor, que
		   no podemos reescribir una a una */
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
		scroll-behavior: auto !important;
	}
	.adb-scope [data-revelar] { opacity: 1; transform: none; }
	.adb-scope .adb-filete { transform: scaleX(1); }
	.adb-scope .adb-tarjeta:hover .adb-tarjeta__media img { transform: none; }
}


/* =========================================================================
   18 · UTILIDADES
   Siempre prefijadas con el scope, para ganar a las reglas base de §3 (§3.2).
   ========================================================================= */

.adb-scope .adb-mt-0  { margin-top: 0; }
.adb-scope .adb-mt-s  { margin-top: var(--adb-e-4); }
.adb-scope .adb-mt-m  { margin-top: var(--adb-e-6); }
.adb-scope .adb-mt-l  { margin-top: var(--adb-e-8); }
.adb-scope .adb-mb-0  { margin-bottom: 0; }

.adb-scope .adb-destacado {
	font-family: var(--adb-tipo-display);
	font-size: var(--adb-t-l);
	font-weight: 500;
	line-height: 1.4;
	color: var(--adb-burdeos);
}

.adb-scope .adb-cifra { font-variant-numeric: tabular-nums lining-nums; }

/* Figura suelta que no debe estirarse más allá del tamaño real del original.
   Existe para no escribir style="max-width:843px" en el HTML: ninguna medida
   de maquetación vive en los fragmentos. */
.adb-scope .adb-figura { max-width: 843px; margin: 0; }
.adb-scope .adb-figura img { width: 100%; }


/* =========================================================================
   19 · IMPRESIÓN
   Alguien va a imprimir la carta. Que salga legible y sin la navegación.
   ========================================================================= */

@media print {
	.adb-scope .adb-cabecera,
	.adb-scope .adb-panel-nav,
	.adb-scope .adb-cookies,
	.adb-scope .adb-panel-cookies,
	.adb-scope .adb-incrustado,
	.adb-scope .adb-botonera,
	.adb-scope .adb-pie__rejilla { display: none; }

	.adb-scope { background: #fff; color: #000; font-size: 11pt; }
	.adb-scope .adb-carta__precio { color: #000; }
	.adb-scope .adb-carta__grupo { break-inside: avoid; }
	/* :where() también aquí, por coherencia con §3.2: sin él este selector
	   sube a (0,2,1) y le ganaría a cualquier regla de clase en impresión. */
	.adb-scope :where(a[href^='http'])::after { content: ' (' attr(href) ')'; font-size: 9pt; }
}
