/* =========================================================================
   Larrauri · direccion Cantabrico, con los colores de su marca

   Papel claro de mantel y azul de puerto en las bandas (cabecera, heroe,
   grupos y pie). Los acentos salen del logo: su azul claro para reservar y
   los precios de menu, y su azul, oscurecido lo justo para texto, en cifras
   y detalles sobre papel. El logo va vectorizado en assets/img/logo.svg.

   Las superficies azules no repiten reglas: redefinen los mismos tokens
   (.lrr-oscuro y sus alias) y el resto del CSS los hereda.

   Contrastes medidos. Papel: tinta 14,2:1, texto 10,5:1, apagado 6,1:1,
   azul de marca 5,1:1 (4,7:1 sobre arena), filete fuerte 3,2:1. Azul de
   puerto: titular 14:1, texto 11:1, apagado 7,8:1, azul claro 6,2:1,
   filete fuerte 3,3:1. Azul de puerto sobre azul claro 6,2:1.

   Barlow Condensed para titulares en mayusculas; Source Serif 4 para el
   texto. Autoalojadas. Todo dentro de .lrr-scope; la base con :where()
   para dejar la especificidad a cero.
   ========================================================================= */

@font-face {
	font-family: 'Barlow Condensed';
	src: url('../fonts/barlow-condensed-600-latin.woff2') format('woff2');
	font-weight: 600;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: 'Barlow Condensed';
	src: url('../fonts/barlow-condensed-700-latin.woff2') format('woff2');
	font-weight: 700;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: 'Source Serif 4';
	src: url('../fonts/source-serif-4-var-latin.woff2') format('woff2');
	font-weight: 400 600;
	font-style: normal;
	font-display: swap;
}

:root {
	/* Paleta fija */
	--lrr-azul: #0E2433;
	--lrr-papel: #F4F2EC;
	--lrr-papel-2: #EBE9E1;
	--lrr-cian: #00AEE1;           /* azul claro del logo */
	--lrr-cian-claro: #5FCBEF;
	--lrr-azul-marca: #006BAD;     /* azul del logo (#0074BA) oscurecido para texto */
	--lrr-logo-base: #0074BA;
	--lrr-logo-acento: #00AEE1;

	/* Tokens de superficie: papel. Las bandas azules los redefinen. */
	--lrr-fondo: var(--lrr-papel);
	--lrr-titular: #0E2433;         /* 14,2:1 */
	--lrr-texto: #2A3A45;           /* 10,5:1 */
	--lrr-apagado: #4E5D66;         /* 6,1:1 */
	--lrr-acento: var(--lrr-azul-marca); /* 5,1:1 */
	--lrr-hueco: #E4E3DC;
	--lrr-filete: #CDD0CB;
	--lrr-filete-fuerte: #7A858B;   /* 3,2:1, bordes de control */
	--lrr-estado: #2F7D4F;
	--lrr-boton: var(--lrr-cian);
	--lrr-boton-claro: var(--lrr-cian-claro);
	--lrr-boton-tinta: var(--lrr-azul);

	/* Tipografia. Escala de razon 1,25 */
	--lrr-display: 'Barlow Condensed', 'Arial Narrow', sans-serif-condensed, sans-serif;
	--lrr-texto-familia: 'Source Serif 4', Georgia, 'Times New Roman', serif;
	--lrr-t-xs: 0.875rem;    /* 14 */
	--lrr-t-s: 1rem;         /* 16 */
	--lrr-t-m: 1.125rem;     /* 18, base */
	--lrr-t-l: 1.375rem;     /* 22 */
	--lrr-t-xl: 1.75rem;     /* 28 */
	--lrr-t-2xl: clamp(2.25rem, 1.6rem + 1.8vw, 3rem);       /* 48 */
	--lrr-t-3xl: clamp(3rem, 1.8rem + 3.8vw, 5.25rem);       /* 84 */
	--lrr-t-4xl: clamp(4.5rem, 2rem + 10vw, 13.75rem);       /* 220 */
	--lrr-t-cifra: clamp(7.5rem, 4rem + 10vw, 13.5rem);

	/* Espacio */
	--lrr-e-1: 0.5rem;
	--lrr-e-2: 1rem;
	--lrr-e-3: 1.5rem;
	--lrr-e-4: 2.5rem;
	--lrr-e-5: 4rem;
	--lrr-seccion: clamp(4.5rem, 3rem + 5vw, 6.5rem);
	--lrr-margen: clamp(1.25rem, 4vw, 2rem);
	--lrr-ancho: 80rem;
	--lrr-cabecera-alto: 5rem;
	--lrr-pestanas-alto: 4.25rem;
	--lrr-barra-admin: 0px;

	/* Movimiento */
	--lrr-curva: cubic-bezier(0.22, 1, 0.36, 1);
	--lrr-rapido: 160ms;

	color-scheme: light;
}

/* Superficies azules: mismas reglas, otros tokens. */
.lrr-oscuro,
.lrr-cabecera,
.lrr-cabeza,
.lrr-movil,
.lrr-heroe,
.lrr-seccion--tinta,
.lrr-pie,
.lrr-barra-movil {
	--lrr-fondo: var(--lrr-azul);
	--lrr-titular: #EEF1EC;         /* 14:1 */
	--lrr-texto: #CFD8DB;           /* 11:1 */
	--lrr-apagado: #A9B8BF;         /* 7,8:1 */
	--lrr-acento: var(--lrr-cian);  /* 6,2:1 */
	--lrr-logo-base: #FFFFFF;
	--lrr-hueco: #173244;
	--lrr-filete: #2C4A5C;
	--lrr-filete-fuerte: #5D7685;   /* 3,3:1 */
	--lrr-estado: #7DBA7A;
	color: var(--lrr-texto);
	color-scheme: dark;
}

@media (max-width: 899px) {
	:root { --lrr-cabecera-alto: 4.25rem; }
}

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

html { background: var(--lrr-fondo); }
:where(.lrr-scope) {
	margin: 0;
	background: var(--lrr-fondo);
	color: var(--lrr-texto);
	font-family: var(--lrr-texto-familia);
	font-size: var(--lrr-t-m);
	font-weight: 400;
	line-height: 1.6;
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
}

:where(.lrr-scope) *, :where(.lrr-scope) *::before, :where(.lrr-scope) *::after { box-sizing: border-box; }
:where(.lrr-scope) :where(h1, h2, h3, h4, p, ul, ol, dl, dd, figure, blockquote) { margin: 0; }
:where(.lrr-scope) :where(ul, ol) { padding: 0; list-style: none; }
:where(.lrr-scope) :where(h1, h2, h3, h4) { color: var(--lrr-titular); font-weight: 600; line-height: 1.08; text-wrap: balance; }
:where(.lrr-scope) :where(p) { text-wrap: pretty; }
:where(.lrr-scope) :where(img, svg) { display: block; max-width: 100%; }
:where(.lrr-scope) :where(a) { color: var(--lrr-titular); text-underline-offset: 0.22em; text-decoration-thickness: 1px; }
:where(.lrr-scope) :where(a:hover) { color: var(--lrr-acento); }
:where(.lrr-scope) :where(strong, b) { color: var(--lrr-titular); font-weight: 600; }
:where(.lrr-scope) :where(address) { font-style: normal; }
:where(.lrr-scope) :where(button) { font: inherit; }
:where(.lrr-scope) :where(:focus-visible) { outline: 2px solid var(--lrr-acento); outline-offset: 3px; }
:where(.lrr-scope) ::selection { background: var(--lrr-boton); color: var(--lrr-boton-tinta); }

html { scroll-padding-top: calc(var(--lrr-barra-admin) + var(--lrr-cabecera-alto) + 1rem); }
html:has(.lrr-pestanas) { scroll-padding-top: calc(var(--lrr-barra-admin) + var(--lrr-cabecera-alto) + var(--lrr-pestanas-alto) + 0.5rem); }
.admin-bar { --lrr-barra-admin: 32px; }
@media (max-width: 782px) { .admin-bar { --lrr-barra-admin: 46px; } }

.lrr-contenedor { width: 100%; max-width: calc(var(--lrr-ancho) + 2 * var(--lrr-margen)); margin-inline: auto; padding-inline: var(--lrr-margen); }
.lrr-oculto { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; }
.lrr-salto { position: absolute; left: var(--lrr-e-2); top: -4rem; z-index: 100; background: var(--lrr-boton); color: var(--lrr-boton-tinta); padding: 0.75rem 1.25rem; }
.lrr-salto:focus { top: var(--lrr-e-2); color: var(--lrr-boton-tinta); }
.lrr-cifras { font-variant-numeric: tabular-nums; }
.lrr-apagado { color: var(--lrr-apagado); }
.lrr-medida { max-width: 36em; }

/* -------------------------------------------------------------------------
   Tipografia
   ------------------------------------------------------------------------- */

.lrr-antetitulo { display: block; font-size: var(--lrr-t-xs); font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--lrr-acento); line-height: 1.4; }
.lrr-display-1, .lrr-display-2, .lrr-display-3 { font-family: var(--lrr-display); text-transform: uppercase; letter-spacing: 0.01em; color: var(--lrr-titular); font-weight: 700; }
.lrr-display-1 { font-size: var(--lrr-t-4xl); line-height: 0.86; font-weight: 700; }
.lrr-display-2 { font-size: var(--lrr-t-3xl); line-height: 0.92; }
.lrr-display-3 { font-size: var(--lrr-t-2xl); line-height: 0.98; }
.lrr-entradilla { font-size: var(--lrr-t-l); line-height: 1.5; color: var(--lrr-titular); max-width: 32em; }
.lrr-enlace { color: var(--lrr-titular); text-decoration: underline; text-decoration-color: var(--lrr-filete-fuerte); }
.lrr-enlace:hover { color: var(--lrr-acento); text-decoration-color: var(--lrr-acento); }
.lrr-flecha { display: inline-flex; align-items: center; min-height: 44px; font-size: var(--lrr-t-m); font-weight: 600; text-decoration: none; color: var(--lrr-acento); }
.lrr-flecha::after { content: '\2192'; margin-left: 0.5em; transition: translate var(--lrr-rapido) var(--lrr-curva); }
.lrr-flecha:hover { color: var(--lrr-titular); }
@media (hover: hover) { .lrr-flecha:hover::after { translate: 4px 0; } }
.lrr-pila { display: flex; flex-direction: column; gap: 0.35rem; }
.lrr-encabezado .lrr-pila { gap: 1rem; }
.lrr-mas { margin-top: var(--lrr-e-4); }

/* -------------------------------------------------------------------------
   Botones: rectos, como la web de la marca. Tostado con texto negro el
   principal; filete gris el secundario.
   ------------------------------------------------------------------------- */

.lrr-btn {
	display: inline-flex; align-items: center; justify-content: center; gap: 0.5rem;
	min-height: 52px; padding: 0.9rem 1.75rem;
	font-size: var(--lrr-t-m); font-weight: 600; letter-spacing: 0; line-height: 1.2; text-decoration: none; white-space: nowrap;
	border: 1px solid transparent;
	transition: background-color var(--lrr-rapido) var(--lrr-curva), color var(--lrr-rapido) var(--lrr-curva), border-color var(--lrr-rapido) var(--lrr-curva), transform var(--lrr-rapido) var(--lrr-curva);
}
.lrr-btn:active { transform: scale(0.98); }
.lrr-btn--principal { background: var(--lrr-boton); border-color: var(--lrr-boton); color: var(--lrr-boton-tinta); }
.lrr-btn--secundario { background: transparent; border-color: var(--lrr-titular); color: var(--lrr-titular); }
@media (hover: hover) {
	.lrr-btn--principal:hover { background: var(--lrr-boton-claro); border-color: var(--lrr-boton-claro); color: var(--lrr-boton-tinta); }
	.lrr-btn--secundario:hover { border-color: var(--lrr-acento); color: var(--lrr-acento); }
}
.lrr-acciones { display: flex; flex-wrap: wrap; gap: 0.875rem; }

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

.lrr-cabecera { position: sticky; top: 0; z-index: 50; background: rgba(14, 36, 51, 0.97); border-bottom: 1px solid var(--lrr-filete); }
@supports (backdrop-filter: blur(1px)) { .lrr-cabecera { background: rgba(14, 36, 51, 0.9); backdrop-filter: blur(10px); } }
.admin-bar .lrr-cabecera { top: var(--lrr-barra-admin); }
.lrr-cabecera__fila { display: flex; align-items: center; justify-content: space-between; gap: var(--lrr-e-4); min-height: var(--lrr-cabecera-alto); }
.lrr-marca { display: block; flex: none; text-decoration: none; }
.lrr-marca:hover .lrr-logo { color: var(--lrr-acento); }
.lrr-logo { display: block; font-family: var(--lrr-display); font-weight: 700; font-size: 1.875rem; line-height: 1; letter-spacing: 0.04em; text-transform: uppercase; color: var(--lrr-titular); }
.lrr-nav__lista { display: flex; gap: 2.25rem; }
.lrr-nav__enlace { display: inline-block; font-size: var(--lrr-t-s); font-weight: 500; text-decoration: none; padding-block: 0.875rem; position: relative; color: var(--lrr-texto); }
.lrr-nav__enlace::after { content: ''; position: absolute; left: 0; right: 0; bottom: 0.45rem; height: 1px; background: var(--lrr-acento); transform: scaleX(0); transform-origin: left; transition: transform 200ms var(--lrr-curva); }
.lrr-nav__enlace:hover, .lrr-nav__enlace[aria-current='page'] { color: var(--lrr-titular); }
.lrr-cabecera__lado .lrr-btn { min-height: 44px; padding: 0.65rem 1.25rem; font-size: var(--lrr-t-s); }
.lrr-nav__enlace[aria-current='page']::after { transform: scaleX(1); }
@media (hover: hover) { .lrr-nav__enlace:hover::after { transform: scaleX(1); } }
.lrr-cabecera__lado { display: flex; align-items: center; gap: 1.5rem; }
.lrr-hamburguesa { display: none; width: 44px; height: 44px; align-items: center; justify-content: center; background: none; border: 0; color: var(--lrr-titular); cursor: pointer; }

.lrr-movil { position: fixed; inset: 0; z-index: 60; background: var(--lrr-fondo); padding: var(--lrr-e-3) var(--lrr-margen); display: flex; flex-direction: column; gap: var(--lrr-e-4); overflow-y: auto; visibility: hidden; opacity: 0; transform: translateY(-8px); transition: opacity 200ms var(--lrr-curva), transform 200ms var(--lrr-curva), visibility 0s linear 200ms; }
.lrr-movil[data-open='true'] { visibility: visible; opacity: 1; transform: none; transition-delay: 0s; }
.lrr-movil__alto { display: flex; align-items: center; justify-content: space-between; color: var(--lrr-texto); }
.lrr-logo--movil { font-size: 1.625rem; }
.lrr-movil__cerrar { width: 44px; height: 44px; display: inline-flex; align-items: center; justify-content: center; background: none; border: 0; color: var(--lrr-titular); cursor: pointer; }
.lrr-movil__lista { display: flex; flex-direction: column; }
.lrr-movil__enlace { display: block; padding: 0.75rem 0; border-bottom: 1px solid var(--lrr-filete); font-family: var(--lrr-display); font-weight: 700; text-transform: uppercase; font-size: var(--lrr-t-2xl); text-decoration: none; color: var(--lrr-titular); }
.lrr-movil__enlace[aria-current='page'] { color: var(--lrr-acento); }
.lrr-movil__pie { display: flex; flex-direction: column; align-items: flex-start; gap: var(--lrr-e-2); }

@media (max-width: 1099px) { .lrr-nav__lista { gap: 1.5rem; } .lrr-cabecera__lado .lrr-nav__enlace { display: none; } }
@media (max-width: 899px) {
	.lrr-nav, .lrr-cabecera__lado { display: none; }
	.lrr-hamburguesa { display: inline-flex; }
	.lrr-logo { font-size: 1.625rem; }
}

/* -------------------------------------------------------------------------
   Secciones
   ------------------------------------------------------------------------- */

.lrr-seccion { padding-block: var(--lrr-seccion); }
.lrr-seccion--estrecha { padding-block: var(--lrr-e-5); }
.lrr-seccion--filete { border-top: 1px solid var(--lrr-filete); }
.lrr-seccion--banda { border-block: 1px solid var(--lrr-filete); }
.lrr-seccion--arena { background: var(--lrr-papel-2); }
.lrr-seccion--tinta { background: var(--lrr-fondo); }
.lrr-encabezado { display: flex; flex-direction: column; gap: var(--lrr-e-2); margin-bottom: var(--lrr-e-5); }
.lrr-encabezado--fila { flex-direction: row; flex-wrap: wrap; justify-content: space-between; align-items: flex-end; gap: var(--lrr-e-3) var(--lrr-e-5); }
:where(.lrr-encabezado--fila) > p { max-width: 28em; color: var(--lrr-texto); }
.lrr-franja { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--lrr-e-4); }
.lrr-franja > div:first-child { display: flex; flex-direction: column; gap: 0.75rem; }

/* -------------------------------------------------------------------------
   Fotografia y huecos

   Mientras no hay foto, el hueco va plano y rotulado abajo a la izquierda,
   como en la maqueta: sin rayados, que en negro hacen ruido.
   ------------------------------------------------------------------------- */

.lrr-marco { position: relative; overflow: hidden; background: var(--lrr-hueco); width: 100%; }
.lrr-marco .lrr-foto, .lrr-marco .lrr-foto-zoom, .lrr-marco .lrr-foto-zoom img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.lrr-marco--hueco { display: flex; align-items: flex-end; justify-content: flex-start; padding: var(--lrr-e-2); border: 1px solid var(--lrr-filete); }
.lrr-marco__rotulo { font-size: 0.75rem; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--lrr-apagado); line-height: 1.35; text-wrap: balance; }
.lrr-foto-zoom { cursor: zoom-in; display: block; }
.lrr-visor { border: 0; padding: 0; background: transparent; max-width: min(92vw, 1400px); max-height: 92vh; }
.lrr-visor::backdrop { background: rgba(14, 36, 51, 0.92); }
.lrr-visor img { max-width: 100%; max-height: 92vh; width: auto; height: auto; }

/* -------------------------------------------------------------------------
   Heroe
   ------------------------------------------------------------------------- */

.lrr-heroe { padding-block: clamp(3.5rem, 2rem + 4vw, 6rem) var(--lrr-e-5); }
.lrr-heroe__reticula { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: clamp(2.5rem, 5vw, 4rem); align-items: end; }
.lrr-heroe__texto { display: flex; flex-direction: column; gap: 2rem; }
.lrr-hoy { font-size: var(--lrr-t-s); border-top: 1px solid var(--lrr-filete); padding-top: 1.1rem; font-variant-numeric: tabular-nums; }
.lrr-hoy:empty { display: none; }
.lrr-hoy .lrr-estado { margin: 0; }
@media (max-width: 899px) {
	.lrr-heroe__reticula { grid-template-columns: 1fr; }
	.lrr-heroe__foto { max-width: 30rem; }
}

/* Mosaico de seis fotos verticales, la cadencia de la web antigua */
.lrr-mosaico { padding-bottom: var(--lrr-seccion); }
.lrr-mosaico__reticula { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 0.75rem; }
.lrr-mosaico__reticula > :nth-child(even) { margin-top: 3rem; }
@media (max-width: 899px) {
	.lrr-mosaico__reticula { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.lrr-mosaico__reticula > :nth-child(even) { margin-top: 1.5rem; }
}
@media (max-width: 520px) { .lrr-mosaico__reticula { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* Tres piezas escalonadas */
.lrr-tres { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--lrr-e-4); }
.lrr-tres__pieza { display: flex; flex-direction: column; gap: 1.25rem; }
.lrr-tres__pieza:nth-child(2) { margin-top: clamp(3rem, 8vw, 7.5rem); }
.lrr-tres__pieza:nth-child(3) { margin-top: clamp(6rem, 16vw, 15rem); }
:where(.lrr-tres__pieza) p { color: var(--lrr-texto); }
@media (max-width: 899px) {
	.lrr-tres { grid-template-columns: 1fr; max-width: 30rem; }
	.lrr-tres__pieza:nth-child(n) { margin-top: 0; }
	.lrr-tres__pieza + .lrr-tres__pieza { padding-top: var(--lrr-e-3); }
}

/* Reparto: cabecera estrecha y contenido ancho */
.lrr-reparto { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); gap: clamp(2.5rem, 5vw, 4rem); align-items: start; }
.lrr-reparto--mitades { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
.lrr-reparto__cabeza { display: flex; flex-direction: column; gap: 1.25rem; }
:where(.lrr-reparto__cabeza) p { color: var(--lrr-texto); max-width: 26em; }
.lrr-reparto__cuerpo { display: flex; flex-direction: column; gap: var(--lrr-e-4); }
@media (max-width: 899px) { .lrr-reparto, .lrr-reparto--mitades { grid-template-columns: 1fr; } }

/* Lineas de carta en la portada */
.lrr-lineas { display: flex; flex-direction: column; }
.lrr-linea { display: grid; grid-template-columns: minmax(0, 14rem) minmax(0, 1fr) auto; align-items: baseline; gap: 0.35rem 1.5rem; padding-block: 1.25rem; border-bottom: 1px solid var(--lrr-filete); }
.lrr-linea__nombre { font-size: var(--lrr-t-l); font-weight: 600; line-height: 1.3; color: var(--lrr-titular); }
.lrr-linea__desc { color: var(--lrr-apagado); font-size: var(--lrr-t-s); }
.lrr-linea__precio { grid-column: 3; color: var(--lrr-acento); font-size: var(--lrr-t-m); font-variant-numeric: tabular-nums; white-space: nowrap; }
@media (max-width: 680px) {
	.lrr-linea { grid-template-columns: minmax(0, 1fr) auto; }
	.lrr-linea__precio { grid-column: 2; grid-row: 1; }
	.lrr-linea__desc { grid-column: 1 / -1; }
}

/* Cifras del legado */
.lrr-numeros { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--lrr-e-4); }
.lrr-numero { display: flex; flex-direction: column; gap: 1rem; border-top: 1px solid var(--lrr-filete-fuerte); padding-top: 1.5rem; }
.lrr-numero__cifra { font-family: var(--lrr-display); font-weight: 700; font-size: var(--lrr-t-3xl); line-height: 1; color: var(--lrr-acento); }
.lrr-numero :is(h2, h3) { font-family: var(--lrr-display); font-size: var(--lrr-t-xl); font-weight: 700; text-transform: uppercase; line-height: 1; }
:where(.lrr-numero) p { color: var(--lrr-texto); }
@media (max-width: 899px) { .lrr-numeros { grid-template-columns: 1fr; } }

/* Visita */
.lrr-visita { display: flex; flex-direction: column; gap: 1.75rem; }
.lrr-visita .lrr-horario { max-width: 30rem; }

/* Horario */
.lrr-horario { --lrr-filete-local: var(--lrr-filete); display: flex; flex-direction: column; font-variant-numeric: tabular-nums; }
.lrr-horario__fila { display: grid; grid-template-columns: minmax(7.5rem, auto) 1fr; gap: var(--lrr-e-2); padding: 0.7rem 0; border-top: 1px solid var(--lrr-filete-local); }
.lrr-horario__fila:last-child { border-bottom: 1px solid var(--lrr-filete-local); }
.lrr-horario dt { color: var(--lrr-apagado); }
.lrr-horario dd { color: var(--lrr-texto); text-align: right; }
/* Cada turno en su linea y entero: un horario partido a mitad no se lee. */
.lrr-turno { display: block; white-space: nowrap; }
.lrr-horario__fila--cerrado dd { color: var(--lrr-apagado); }
.lrr-estado { margin-top: 0.75rem; font-size: var(--lrr-t-s); color: var(--lrr-texto); display: flex; align-items: center; gap: 0.5rem; }
.lrr-estado::before { content: ''; width: 8px; height: 8px; border-radius: 50%; background: var(--lrr-apagado); flex: none; }
.lrr-estado[data-abierto='true']::before { background: var(--lrr-estado); }

/* -------------------------------------------------------------------------
   Paginas interiores
   ------------------------------------------------------------------------- */

.lrr-cabeza { padding-block: clamp(3.5rem, 2rem + 4vw, 6rem) var(--lrr-e-4); }
.lrr-cabeza__reticula { display: flex; flex-direction: column; align-items: flex-start; gap: 1.5rem; }
.lrr-cabeza__reticula > * { max-width: 56rem; }
.lrr-cabeza__reticula > .lrr-hoy { width: 100%; max-width: 36rem; }
.lrr-cabeza__acciones { display: flex; flex-wrap: wrap; gap: 0.875rem; margin-top: var(--lrr-e-1); }
.lrr-prosa { max-width: 44rem; display: flex; flex-direction: column; gap: 1.1rem; }
.lrr-prosa h2 { font-family: var(--lrr-display); font-weight: 700; text-transform: uppercase; font-size: var(--lrr-t-xl); margin-top: var(--lrr-e-3); }
.lrr-prosa h3 { font-size: var(--lrr-t-l); font-weight: 500; margin-top: var(--lrr-e-2); }
.lrr-prosa ul { list-style: disc; padding-left: 1.25rem; display: flex; flex-direction: column; gap: 0.4rem; }
.lrr-prosa table { border-collapse: collapse; width: 100%; font-size: var(--lrr-t-s); }
.lrr-prosa th, .lrr-prosa td { text-align: left; padding: 0.6rem 0.75rem; border-bottom: 1px solid var(--lrr-filete); vertical-align: top; }
.lrr-prosa th { color: var(--lrr-titular); font-weight: 500; }
.lrr-tabla { overflow-x: auto; }

/* Carta */
.lrr-carta { display: flex; flex-direction: column; }
.lrr-pestanas { position: sticky; top: calc(var(--lrr-barra-admin) + var(--lrr-cabecera-alto)); z-index: 20; background: var(--lrr-fondo); border-bottom: 1px solid var(--lrr-filete); margin-inline: calc(-1 * var(--lrr-margen)); padding-inline: var(--lrr-margen); }
.lrr-pestanas__lista { display: flex; gap: 0.5rem; overflow-x: auto; padding-block: 0.75rem; scrollbar-width: none; min-height: var(--lrr-pestanas-alto); align-items: center; scroll-target-group: auto; }
.lrr-pestana { display: inline-flex; align-items: center; min-height: 44px; padding: 0.5rem 1.1rem; border: 1px solid var(--lrr-filete-fuerte); text-decoration: none; font-size: var(--lrr-t-s); font-weight: 500; white-space: nowrap; color: var(--lrr-texto); transition: background-color var(--lrr-rapido) var(--lrr-curva), color var(--lrr-rapido) var(--lrr-curva), border-color var(--lrr-rapido) var(--lrr-curva); }
.lrr-pestana[aria-current='true'], .lrr-pestana:target-current { background: var(--lrr-boton); border-color: var(--lrr-boton); color: var(--lrr-boton-tinta); }
@media (hover: hover) { .lrr-pestana:hover { border-color: var(--lrr-titular); color: var(--lrr-titular); } .lrr-pestana[aria-current='true']:hover { color: var(--lrr-boton-tinta); } }
.lrr-filtros { display: flex; flex-wrap: wrap; align-items: center; gap: 0.75rem 1rem; padding-block: var(--lrr-e-3); }
.lrr-filtros__titulo { font-size: var(--lrr-t-s); color: var(--lrr-titular); font-weight: 500; }
.lrr-filtros__lista { display: flex; flex-wrap: wrap; gap: 0.5rem; }
.lrr-filtro { min-height: 44px; padding: 0.45rem 1rem; border: 1px dashed var(--lrr-filete-fuerte); background: transparent; color: var(--lrr-texto); font-size: var(--lrr-t-s); cursor: pointer; }
.lrr-filtro[aria-pressed='true'] { background: var(--lrr-titular); border-style: solid; border-color: var(--lrr-titular); color: var(--lrr-fondo); }
.lrr-filtros__aviso { font-size: var(--lrr-t-s); color: var(--lrr-titular); flex-basis: 100%; }
.lrr-filtros__aviso:empty { display: none; }
.lrr-filtros__nota { flex-basis: 100%; font-size: var(--lrr-t-xs); color: var(--lrr-apagado); }
.lrr-carta__seccion { padding-block: var(--lrr-e-5) 0; display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); gap: var(--lrr-e-5); align-items: start; }
.lrr-carta__seccion[hidden] { display: none; }
.lrr-carta__cabeza { grid-column: 1; position: sticky; top: calc(var(--lrr-barra-admin) + var(--lrr-cabecera-alto) + var(--lrr-pestanas-alto) + 1.5rem); z-index: 1; display: flex; flex-direction: column; gap: 0.6rem; }
.lrr-carta__titulo { font-family: var(--lrr-display); font-weight: 700; text-transform: uppercase; font-size: var(--lrr-t-2xl); }
.lrr-carta__nota { font-size: var(--lrr-t-s); color: var(--lrr-apagado); max-width: 22em; }
.lrr-carta__lista { grid-column: 2; min-width: 0; }
.lrr-plato { padding-block: 1.15rem; border-bottom: 1px solid var(--lrr-filete); display: flex; flex-direction: column; gap: 0.3rem; }
.lrr-plato:first-child { padding-top: 0.25rem; }
.lrr-plato__linea { display: flex; align-items: baseline; justify-content: space-between; gap: var(--lrr-e-2); }
.lrr-plato__nombre { font-family: var(--lrr-texto-familia); font-size: var(--lrr-t-l); font-weight: 600; line-height: 1.35; }
.lrr-plato--destacado .lrr-plato__nombre::after { content: ''; display: inline-block; width: 7px; height: 7px; margin-left: 0.6rem; vertical-align: 0.2em; background: var(--lrr-acento); transform: rotate(45deg); }
.lrr-plato__precio { font-variant-numeric: tabular-nums; color: var(--lrr-acento); white-space: nowrap; text-align: right; }
.lrr-plato__desc { color: var(--lrr-texto); }
.lrr-plato__alergenos { font-size: var(--lrr-t-xs); color: var(--lrr-apagado); letter-spacing: 0.01em; }
@media (max-width: 899px) {
	.lrr-carta__seccion { grid-template-columns: 1fr; gap: var(--lrr-e-2); }
	.lrr-carta__cabeza { position: static; }
	.lrr-carta__lista, .lrr-carta__cabeza { grid-column: 1; }
}
.lrr-leyenda { margin-top: var(--lrr-e-5); padding-top: var(--lrr-e-3); border-top: 1px solid var(--lrr-filete); font-size: var(--lrr-t-s); color: var(--lrr-apagado); display: flex; flex-direction: column; gap: 0.5rem; max-width: 52rem; }

/* Glosario */
.lrr-glosario { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 15rem), 1fr)); gap: 0 var(--lrr-e-4); }
.lrr-glosario > div { padding-block: 1.1rem; border-top: 1px solid var(--lrr-filete); display: flex; flex-direction: column; gap: 0.35rem; }
.lrr-glosario dt { font-family: var(--lrr-display); font-weight: 700; text-transform: uppercase; font-size: var(--lrr-t-l); color: var(--lrr-titular); line-height: 1.2; }
.lrr-glosario dd { color: var(--lrr-texto); font-size: var(--lrr-t-s); }

/* Galeria */
.lrr-galeria { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--lrr-e-2); }
.lrr-galeria > :nth-child(6n + 1) { grid-column: span 2; grid-row: span 2; }
@media (max-width: 899px) { .lrr-galeria { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* Contacto y visita */
.lrr-contacto { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(2.5rem, 5vw, 5rem); align-items: start; }
.lrr-contacto__datos { display: flex; flex-direction: column; gap: var(--lrr-e-4); }
.lrr-contacto__bloque { display: flex; flex-direction: column; gap: 0.5rem; }
.lrr-contacto__bloque h2 { font-family: var(--lrr-display); font-weight: 700; text-transform: uppercase; font-size: var(--lrr-t-xl); margin-bottom: 0.4rem; }
.lrr-contacto__lado { display: flex; flex-direction: column; gap: var(--lrr-e-3); }
@media (max-width: 899px) { .lrr-contacto { grid-template-columns: 1fr; } }
.lrr-direccion { display: flex; flex-direction: column; }
.lrr-mapa { aspect-ratio: 4 / 3; min-width: 0; width: 100%; background: var(--lrr-hueco); border: 1px solid var(--lrr-filete); display: flex; flex-direction: column; align-items: flex-start; justify-content: flex-end; gap: var(--lrr-e-2); padding: var(--lrr-e-4); overflow: hidden; }
.lrr-mapa[data-cargado] { padding: 0; }
@media (max-width: 599px) { .lrr-mapa { aspect-ratio: auto; min-height: 18rem; padding: var(--lrr-e-3); } }
.lrr-mapa iframe { width: 100%; height: 100%; border: 0; display: block; filter: grayscale(0.25); }
.lrr-mapa .lrr-medida { max-width: 24em; font-size: var(--lrr-t-s); }

/* Blog (plantillas heredadas del kit) */
.lrr-entradas { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--lrr-e-4); }
.lrr-entrada { display: flex; flex-direction: column; gap: var(--lrr-e-2); }
.lrr-entrada__titulo { font-family: var(--lrr-display); font-weight: 700; text-transform: uppercase; font-size: var(--lrr-t-xl); }
.lrr-entrada__enlace { text-decoration: none; }
.lrr-entrada__meta, .lrr-entrada__cat { font-size: var(--lrr-t-xs); letter-spacing: 0.12em; text-transform: uppercase; color: var(--lrr-acento); }
.lrr-entrada__texto { max-width: 44rem; }
.lrr-paginacion { display: flex; gap: var(--lrr-e-2); justify-content: center; margin-top: var(--lrr-e-5); }
.lrr-vecinas { display: flex; justify-content: space-between; gap: var(--lrr-e-4); }
.lrr-vecina { display: flex; flex-direction: column; gap: 0.25rem; text-decoration: none; max-width: 24rem; }
.lrr-vecina--fin { text-align: right; margin-left: auto; }
.lrr-vecina__titulo { color: var(--lrr-titular); font-size: var(--lrr-t-l); }
@media (max-width: 899px) { .lrr-entradas { grid-template-columns: 1fr; } }

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

.lrr-pie { border-top: 1px solid var(--lrr-filete); padding-top: var(--lrr-e-5); font-size: var(--lrr-t-s); }
.lrr-pie__reticula { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 3fr) minmax(0, 3fr) minmax(0, 4fr); gap: var(--lrr-e-4); }
.lrr-pie__marca { display: flex; flex-direction: column; gap: 1rem; color: var(--lrr-texto); }
.lrr-logo--pie { font-size: 2.75rem; }
.lrr-pie__lema { font-size: var(--lrr-t-s); line-height: 1.6; color: var(--lrr-apagado); max-width: 18em; }
.lrr-pie__titulo { font-size: var(--lrr-t-xs); font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--lrr-acento); margin-bottom: 0.9rem; }
.lrr-pie .lrr-direccion { margin-bottom: 0.4rem; }
.lrr-pie .lrr-pila { gap: 0.6rem; align-items: flex-start; }
.lrr-pie .lrr-btn { min-height: 44px; padding: 0.7rem 1.25rem; }
.lrr-pie .lrr-horario__fila { grid-template-columns: 1fr auto; }
.lrr-pie__bajo { display: flex; flex-wrap: wrap; justify-content: space-between; gap: var(--lrr-e-2); margin-top: var(--lrr-e-5); padding-block: var(--lrr-e-3); border-top: 1px solid var(--lrr-filete); font-size: var(--lrr-t-xs); letter-spacing: 0.12em; text-transform: uppercase; color: var(--lrr-apagado); }
.lrr-pie__legal { display: flex; flex-wrap: wrap; gap: 0.25rem var(--lrr-e-3); }
.lrr-pie__legal a { text-decoration: none; color: var(--lrr-texto); display: inline-block; padding-block: 0.6rem; }
.lrr-pie__legal a:hover { color: var(--lrr-titular); }
@media (max-width: 1099px) { .lrr-pie__reticula { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 599px) { .lrr-pie__reticula { grid-template-columns: 1fr; } }

/* Barra fija de movil: llamar, carta y reservar a un toque */
.lrr-barra-movil { display: none; }
@media (max-width: 899px) {
	.lrr-barra-movil { display: grid; grid-template-columns: 1fr 1fr 1.4fr; position: fixed; left: 0; right: 0; bottom: 0; z-index: 40; background: var(--lrr-fondo); border-top: 1px solid var(--lrr-filete); padding: 0.5rem 0.5rem calc(0.5rem + env(safe-area-inset-bottom)); gap: 0.5rem; }
	.lrr-barra-movil__accion { min-height: 48px; display: flex; align-items: center; justify-content: center; text-align: center; padding-inline: 0.25rem; line-height: 1.2; text-decoration: none; font-weight: 600; font-size: var(--lrr-t-s); border: 1px solid var(--lrr-filete-fuerte); color: var(--lrr-titular); }
	.lrr-barra-movil__accion--principal { background: var(--lrr-boton); border-color: var(--lrr-boton); color: var(--lrr-boton-tinta); font-weight: 600; }
	.lrr-barra-movil__accion--principal:hover { color: var(--lrr-boton-tinta); }
	.lrr-scope { padding-bottom: calc(4.25rem + env(safe-area-inset-bottom)); }
}

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

   Cuatro trabajos y ninguno mas: la entrada del heroe al cargar, el revelado
   de cada bloque la primera vez que aparece, el fundido entre paginas y el
   desplazamiento suave a los anclas. El scroll es el del navegador.

   Solo opacity, translate y scale. Curva de salida fuerte; nada rebota.
   El contenido se entrega visible: el revelado lo oculta el script justo
   antes de animarlo, asi que si el script no llega, la pagina se lee igual.
   ------------------------------------------------------------------------- */

:root {
	--lrr-revela-recorrido: 18px;
	--lrr-revela-tiempo: 650ms;
	--lrr-revela-paso: 70ms;
}

@keyframes lrr-entra { from { opacity: 0; translate: 0 16px; } }
@keyframes lrr-entra-titular { from { opacity: 0; translate: 0 22px; } }
@keyframes lrr-asienta { from { scale: 1.06; } }
@keyframes lrr-funde { from { opacity: 0; } }

@media (prefers-reduced-motion: no-preference) {
	html { scroll-behavior: smooth; }

	.lrr-heroe__texto > *,
	.lrr-cabeza__reticula > * { animation: lrr-entra 700ms var(--lrr-curva) backwards; }
	.lrr-heroe__texto > .lrr-display-1,
	.lrr-cabeza__reticula > .lrr-display-1,
	.lrr-cabeza__reticula > .lrr-display-2 { animation-name: lrr-entra-titular; animation-duration: 900ms; }
	.lrr-heroe__texto > :nth-child(1), .lrr-cabeza__reticula > :nth-child(1) { animation-delay: 60ms; }
	.lrr-heroe__texto > :nth-child(2), .lrr-cabeza__reticula > :nth-child(2) { animation-delay: 140ms; }
	.lrr-heroe__texto > :nth-child(3), .lrr-cabeza__reticula > :nth-child(3) { animation-delay: 260ms; }
	.lrr-heroe__texto > :nth-child(4), .lrr-cabeza__reticula > :nth-child(4) { animation-delay: 360ms; }
	.lrr-heroe__texto > :nth-child(n+5), .lrr-cabeza__reticula > :nth-child(n+5) { animation-delay: 440ms; }

	.lrr-heroe__foto { animation: lrr-funde 1000ms var(--lrr-curva) 120ms backwards; }
	.lrr-heroe__foto .lrr-foto { animation: lrr-asienta 1800ms var(--lrr-curva) 120ms backwards; }

	[data-revela] {
		transition:
			opacity var(--lrr-revela-tiempo) var(--lrr-curva),
			translate calc(var(--lrr-revela-tiempo) + 100ms) var(--lrr-curva);
		transition-delay: calc(var(--lrr-i, 0) * var(--lrr-revela-paso));
	}
	[data-revela]:not([data-visto]) { opacity: 0; translate: 0 var(--lrr-revela-recorrido); }
	[data-revela][data-visto] { translate: none; }

	[data-revela] .lrr-marco .lrr-foto { transition: scale 1600ms var(--lrr-curva); transition-delay: calc(var(--lrr-i, 0) * var(--lrr-revela-paso)); }
	[data-revela]:not([data-visto]) .lrr-marco .lrr-foto { scale: 1.06; }
	[data-revela].lrr-marco .lrr-foto { transition: scale 1600ms var(--lrr-curva); transition-delay: calc(var(--lrr-i, 0) * var(--lrr-revela-paso)); }
	[data-revela].lrr-marco:not([data-visto]) .lrr-foto { scale: 1.06; }

	@view-transition { navigation: auto; }
	::view-transition-old(root) { animation: 160ms var(--lrr-curva) both lrr-vt-sale; }
	::view-transition-new(root) { animation: 420ms var(--lrr-curva) 60ms both lrr-vt-entra; }
	.lrr-cabecera { view-transition-name: lrr-cabecera; }
	.lrr-barra-movil { view-transition-name: lrr-barra-movil; }
	::view-transition-group(lrr-cabecera),
	::view-transition-group(lrr-barra-movil) { animation-duration: 0s; }
}

@keyframes lrr-vt-sale { to { opacity: 0; } }
@keyframes lrr-vt-entra { from { opacity: 0; translate: 0 10px; } }

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	.lrr-heroe__texto > *, .lrr-cabeza__reticula > *, .lrr-heroe__foto { animation: lrr-funde 400ms ease-out backwards; }
	[data-revela] { transition: opacity 400ms ease-out; }
	[data-revela]:not([data-visto]) { opacity: 0; }
	.lrr-btn:active { transform: none; }
}

/* -------------------------------------------------------------------------
   Piezas propias de Larrauri
   ------------------------------------------------------------------------- */

/* Voz de rotulo: titulares, botones, navegacion y cifras en Barlow. */
.lrr-display-1, .lrr-display-2, .lrr-display-3 { font-weight: 700; letter-spacing: 0; }
.lrr-antetitulo { font-family: var(--lrr-display); font-size: 1.0625rem; letter-spacing: 0.1em; }
.lrr-btn { font-family: var(--lrr-display); font-weight: 700; text-transform: uppercase; letter-spacing: 0.06em; font-size: 1.1875rem; }
.lrr-btn--secundario { border-width: 2px; }
.lrr-cabecera__lado .lrr-btn { font-size: 1.0625rem; }
.lrr-nav__enlace { font-family: var(--lrr-display); font-weight: 600; text-transform: uppercase; letter-spacing: 0.06em; font-size: 1.125rem; }
.lrr-cabecera__lado .lrr-nav__enlace { font-variant-numeric: tabular-nums; }
.lrr-logo { font-weight: 700; letter-spacing: 0.03em; font-size: 2rem; }
.lrr-flecha { font-family: var(--lrr-display); text-transform: uppercase; letter-spacing: 0.06em; font-weight: 700; font-size: 1.1875rem; }
.lrr-pestana { font-family: var(--lrr-display); font-weight: 600; text-transform: uppercase; letter-spacing: 0.05em; font-size: 1.0625rem; }
.lrr-barra-movil__accion { font-family: var(--lrr-display); font-weight: 700; text-transform: uppercase; letter-spacing: 0.05em; font-size: 1.0625rem; }
.lrr-pie__titulo, .lrr-pie__bajo { font-family: var(--lrr-display); font-size: 1rem; }
.lrr-pie { background: var(--lrr-fondo); border-top: 0; }
.lrr-cabeza { background: var(--lrr-fondo); padding-block: clamp(3rem, 2rem + 3vw, 5rem); }
.lrr-cabeza + .lrr-seccion--estrecha { padding-top: var(--lrr-e-5); }

/* Encabezado de seccion con raya gruesa, como una pizarra de lonja */
.lrr-encabezado--raya { border-bottom: 3px solid var(--lrr-titular); padding-bottom: 1.1rem; margin-bottom: var(--lrr-e-4); }

/* Heroe: banda azul, el nombre a todo lo ancho y la foto debajo */
.lrr-heroe { background: var(--lrr-fondo); padding-block: clamp(1.25rem, 0.5rem + 2vw, 2.5rem) 0; }
.lrr-heroe__texto { display: flex; flex-direction: column; gap: 0; container-type: inline-size; }
.lrr-heroe .lrr-heroe__nombre { font-family: var(--lrr-display); font-weight: 700; text-transform: uppercase; color: var(--lrr-titular); font-size: min(var(--lrr-t-4xl), 23cqi); line-height: 0.82; letter-spacing: -0.005em; }
.lrr-heroe__pie { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: var(--lrr-e-3) var(--lrr-e-5); padding-block: var(--lrr-e-4) var(--lrr-e-5); }
.lrr-heroe__pie .lrr-entradilla { color: var(--lrr-titular); max-width: 30em; font-size: clamp(1.1875rem, 1rem + 0.6vw, 1.375rem); }
.lrr-heroe .lrr-heroe__foto { max-width: calc(var(--lrr-ancho) + 2 * var(--lrr-margen)); }
.lrr-heroe__datos { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem 2.5rem; padding-block: 1.25rem 1.75rem; font-size: var(--lrr-t-s); color: var(--lrr-apagado); }
.lrr-heroe__datos .lrr-estado { margin: 0; }
.lrr-heroe__datos .lrr-estado:empty { display: none; }

/* Pizarra: los platos de la casa numerados, con fotos al lado */
.lrr-pizarra { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: clamp(2.5rem, 5vw, 4rem); align-items: start; }
.lrr-pizarra__lista { display: flex; flex-direction: column; gap: var(--lrr-e-3); align-items: flex-start; }
.lrr-pizarra__lista > .lrr-lineas { align-self: stretch; }
.lrr-fotos { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.lrr-fotos > :first-child { grid-column: 1 / -1; }
@media (max-width: 899px) { .lrr-pizarra { grid-template-columns: 1fr; } }

.lrr-lineas { counter-reset: pizarra; }
.lrr-linea { grid-template-columns: 2.75rem minmax(0, 1fr) auto; gap: 0.15rem 1rem; padding-block: 1.05rem; counter-increment: pizarra; }
.lrr-linea::before { content: counter(pizarra, decimal-leading-zero); grid-column: 1; grid-row: 1; font-family: var(--lrr-display); font-weight: 700; font-size: 1.375rem; line-height: 1.2; color: var(--lrr-acento); font-variant-numeric: tabular-nums; }
.lrr-linea__nombre { grid-column: 2; grid-row: 1; font-size: 1.25rem; font-weight: 400; color: var(--lrr-titular); }
.lrr-linea__precio { grid-column: 3; grid-row: 1; font-family: var(--lrr-display); font-weight: 700; font-size: 1.5rem; line-height: 1.1; color: var(--lrr-titular); }
.lrr-linea__desc { grid-column: 2 / -1; grid-row: 2; }

/* Lista de precios simple: vinos */
.lrr-precios { border-top: 3px solid var(--lrr-titular); }
.lrr-precios li { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; padding-block: 0.85rem; border-bottom: 1px solid var(--lrr-filete); }
.lrr-precio { font-family: var(--lrr-display); font-weight: 700; font-size: 1.25rem; font-variant-numeric: tabular-nums; white-space: nowrap; color: var(--lrr-titular); }

/* Menus de grupo */
.lrr-menus { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 15.5rem), 1fr)); gap: 1rem; }
.lrr-menu { border: 2px solid var(--lrr-titular); padding: 1.75rem 1.5rem; display: flex; flex-direction: column; gap: 0.9rem; }
.lrr-menu__precio { align-self: flex-start; background: var(--lrr-boton); color: var(--lrr-boton-tinta); padding: 0.2rem 0.75rem; font-family: var(--lrr-display); font-weight: 700; font-size: 1.375rem; font-variant-numeric: tabular-nums; }
.lrr-menu__nombre { font-family: var(--lrr-display); font-weight: 700; text-transform: uppercase; font-size: clamp(2.25rem, 1.8rem + 1vw, 2.75rem); line-height: 1; }
.lrr-menu__resumen { color: var(--lrr-apagado); font-size: var(--lrr-t-s); }
.lrr-menu__parte { display: flex; flex-direction: column; gap: 0.35rem; padding-top: 0.9rem; border-top: 1px solid var(--lrr-filete); }
.lrr-menu__parte :is(h3, h4) { font-family: var(--lrr-display); font-weight: 700; text-transform: uppercase; letter-spacing: 0.08em; font-size: 1rem; color: var(--lrr-acento); }
.lrr-menu__parte li { font-size: var(--lrr-t-s); line-height: 1.45; }
.lrr-menu__incluye { margin-top: auto; padding-top: 0.9rem; font-size: var(--lrr-t-s); color: var(--lrr-apagado); }
.lrr-menus + .lrr-acciones { margin-top: var(--lrr-e-4); }

/* Carta: precios en la voz de rotulo */
.lrr-plato__precio { font-family: var(--lrr-display); font-weight: 700; font-size: 1.375rem; line-height: 1.1; color: var(--lrr-titular); }
.lrr-plato__nombre { font-weight: 500; }
.lrr-carta__nota { color: var(--lrr-apagado); }

/* Rombo de plato de la casa */
.lrr-rombo { display: inline-block; width: 7px; height: 7px; margin-right: 0.4rem; vertical-align: 0.15em; background: var(--lrr-acento); transform: rotate(45deg); }

/* Datos sueltos bajo un bloque */
.lrr-nota { font-size: var(--lrr-t-s); color: var(--lrr-apagado); }

/* -------------------------------------------------------------------------
   Blog: filas de pizarra, no tarjetas. Raya gruesa arriba, filete entre
   articulos, fecha y seccion en la voz de rotulo.
   ------------------------------------------------------------------------- */

.lrr-arriba { margin-top: var(--lrr-e-2); }
.lrr-marco--filete { border: 1px solid var(--lrr-filete); }
.lrr-entradas { display: flex; flex-direction: column; gap: 0; border-top: 3px solid var(--lrr-titular); }
.lrr-entrada { display: block; border-bottom: 1px solid var(--lrr-filete); }
.lrr-entrada__enlace { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--lrr-e-3) var(--lrr-e-4); padding-block: var(--lrr-e-4); text-decoration: none; color: inherit; }
.lrr-entrada__enlace:has(.lrr-entrada__foto) { grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); align-items: center; }
.lrr-entrada__texto { display: flex; flex-direction: column; align-items: flex-start; gap: 0.75rem; max-width: 46rem; }
.lrr-entrada__meta { display: flex; flex-wrap: wrap; gap: 0.25rem 1rem; font-family: var(--lrr-display); font-weight: 600; font-size: 1rem; letter-spacing: 0.06em; text-transform: uppercase; color: var(--lrr-apagado); }
.lrr-entrada__cat { font-size: inherit; letter-spacing: inherit; color: var(--lrr-acento); }
.lrr-entrada .lrr-entrada__titulo { font-size: var(--lrr-t-2xl); color: var(--lrr-titular); transition: color var(--lrr-rapido) var(--lrr-curva); }
.lrr-entrada__extracto { max-width: 38em; }
.lrr-entrada__mas { display: inline-flex; align-items: center; min-height: 44px; font-family: var(--lrr-display); font-weight: 700; font-size: 1.125rem; letter-spacing: 0.06em; text-transform: uppercase; color: var(--lrr-titular); }
.lrr-entrada__mas::after { content: '\2192'; margin-left: 0.5em; transition: translate var(--lrr-rapido) var(--lrr-curva); }
@media (hover: hover) {
	.lrr-entrada__enlace:hover .lrr-entrada__titulo,
	.lrr-entrada__enlace:hover .lrr-entrada__mas { color: var(--lrr-acento); }
	.lrr-entrada__enlace:hover .lrr-entrada__mas::after { translate: 4px 0; }
}
.lrr-entrada__enlace:focus-visible { outline-offset: 6px; }
@media (max-width: 699px) { .lrr-entrada__enlace:has(.lrr-entrada__foto) { grid-template-columns: 1fr; } }

.lrr-paginacion { flex-wrap: wrap; font-family: var(--lrr-display); font-weight: 700; font-size: 1.125rem; text-transform: uppercase; letter-spacing: 0.05em; }
.lrr-paginacion :is(a, span) { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; padding-inline: 0.75rem; border: 2px solid var(--lrr-titular); color: var(--lrr-titular); text-decoration: none; font-variant-numeric: tabular-nums; }
.lrr-paginacion .current { background: var(--lrr-titular); color: var(--lrr-fondo); }
.lrr-paginacion .dots { border-color: transparent; }
@media (hover: hover) { .lrr-paginacion a:hover { border-color: var(--lrr-acento); color: var(--lrr-acento); } }

.lrr-vecinas { flex-wrap: wrap; }
.lrr-vecina__titulo { font-family: var(--lrr-display); font-weight: 700; text-transform: uppercase; font-size: var(--lrr-t-xl); line-height: 1.05; }
.lrr-vecina:hover .lrr-vecina__titulo { color: var(--lrr-acento); }

/* Firma de agencia (Maserai Digital). El hueco de la barra de movil ya lo reserva .lrr-scope. */
.lrr-firma { background: #000; color: var(--lrr-papel); }
.lrr-firma__texto { margin: 0; padding-block: 0.7rem; font-size: 0.75rem; letter-spacing: 0.06em; text-align: center; }
.lrr-firma__enlace { color: var(--lrr-papel); text-decoration: underline; text-decoration-color: rgba(244, 242, 236, 0.4); text-underline-offset: 3px; }
.lrr-firma__enlace:hover, .lrr-firma__enlace:focus-visible { color: var(--lrr-cian); text-decoration-color: currentColor; }

/* Lo que lleva hidden se oculta aunque su clase le de display: sin esto,
   los filtros de alergenos marcaban los platos pero no los escondian. */
.lrr-scope [hidden] { display: none; }

/* Dentro y fuera: comedor, barra, terraza y fachada, las cuatro al mismo tamano */
.lrr-casa { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--lrr-e-3); }
.lrr-casa__foto { margin: 0; display: flex; flex-direction: column; gap: 0.75rem; }
.lrr-casa__foto figcaption { font-family: var(--lrr-display); font-weight: 700; font-size: 1.25rem; letter-spacing: 0.06em; text-transform: uppercase; color: var(--lrr-titular); }
@media (max-width: 899px) { .lrr-casa { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--lrr-e-2); } .lrr-casa__foto figcaption { font-size: 1.0625rem; } }
/* Logo vectorizado: alto fijo y ancho por su proporcion (370 x 88) */
.lrr-logo { display: block; width: auto; height: 2.25rem; aspect-ratio: 370 / 88; font-size: inherit; letter-spacing: 0; }
.lrr-logo--movil { height: 2rem; }
.lrr-logo--pie { height: 3.25rem; }
@media (max-width: 899px) { .lrr-cabecera .lrr-logo { height: 1.875rem; } }
.lrr-heroe .lrr-heroe__nombre { line-height: 0; font-size: inherit; }
.lrr-logo--heroe { width: 100%; max-width: 62rem; height: auto; }
.lrr-marca:hover .lrr-logo { --lrr-logo-acento: var(--lrr-cian-claro); }
/* Mapa cargado de entrada: alto minimo para que el iframe no se quede en 150 px en movil */
.lrr-mapa iframe { min-height: 18rem; }