/* ==========================================================================
   Fiproyecto · Restaurante — estilos de la web
   ========================================================================== */

body.fpr-sitio {
	--rojo: #bd2c44;
	--rojo-osc: #93203a;
	--rojo-claro: #f7e1e5;
	--tinta: #201915;
	--tinta-2: #4a3f38;
	--gris: #7b6e65;
	--crema: #f6efe4;
	--papel: #fbf8f2;
	--arena: #ecdfcb;
	--linea: rgba(32, 25, 21, .12);
	--barro: #b4532e;
	--madera: #8a5634;
	--oliva: #5f6b3b;
	--oro: #c99a4c;
	--azul: #24395a;
	--f-tit: "Fraunces", "Iowan Old Style", Georgia, serif;
	--f-txt: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;
	--f-marca: "Cinzel", "Trajan Pro", Georgia, serif;
	--r: 20px;
	--r-peq: 12px;
	--ancho: 1260px;
	--margen: clamp(18px, 4.2vw, 48px);
	--cab: 78px;
	--sombra: 0 1px 2px rgba(32, 25, 21, .06), 0 14px 40px -12px rgba(32, 25, 21, .22);
	--sombra-fuerte: 0 30px 80px -20px rgba(32, 25, 21, .45);
	--ease: cubic-bezier(.2, .75, .2, 1);
	background: var(--crema);
	color: var(--tinta);
	font-family: var(--f-txt);
	font-size: 17px;
	font-weight: 400;
	line-height: 1.6;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	text-rendering: optimizeLegibility;
	overflow-x: hidden;
}

/* --- Divi: sin márgenes ni fondos propios en las páginas hechas con estos bloques --- */
.fpr-sitio #page-container,
.fpr-sitio #et-main-area,
.fpr-sitio #main-content,
.fpr-sitio .et-l--post,
.fpr-sitio .et_builder_inner_content { background: transparent !important; padding-top: 0 !important; margin-top: 0 !important; }
.fpr-sitio .et_pb_section { padding: 0 !important; background-color: transparent; }
.fpr-sitio .et_pb_row { width: 100% !important; max-width: none !important; padding: 0 !important; margin: 0 !important; }
.fpr-sitio .et_pb_column { margin: 0 !important; width: 100% !important; z-index: auto !important; }
.fpr-sitio .et_pb_module, .fpr-sitio .et_pb_code { margin: 0 !important; }
.fpr-sitio .et_pb_code_inner { position: static; }
/* Nada se sale por los lados (las animaciones de entrada desplazan algunos bloques). «clip» no rompe lo que va fijo o pegado al bajar. */
.fpr-sitio .et_builder_inner_content, .fpr-sitio .entry-content { overflow-x: clip; }

.fpr-sitio *, .fpr-sitio *::before, .fpr-sitio *::after { box-sizing: border-box; }
.fpr-sitio img { max-width: 100%; height: auto; }
.fpr-sitio ::selection { background: var(--rojo); color: #fff; }

.fpr, .fpr-cab, .fpr-pie, .fpr-menu-movil, .fpr-barra { font-family: var(--f-txt); }
.fpr h1, .fpr h2, .fpr h3, .fpr h4,
.fpr-pie h2, .fpr-menu-movil h2 { font-family: var(--f-tit); color: inherit; padding: 0; margin: 0; font-weight: 500; line-height: 1.05; letter-spacing: -.015em; font-optical-sizing: auto; }
.fpr p { padding: 0; margin: 0 0 1em; }
.fpr p:last-child { margin-bottom: 0; }
.fpr ul, .fpr ol, .fpr-pie ul, .fpr-cab ul, .fpr-menu-movil ul { list-style: none; margin: 0; padding: 0; line-height: inherit; }
.fpr a, .fpr-pie a, .fpr-cab a, .fpr-menu-movil a, .fpr-barra a { color: inherit; text-decoration: none; }
.fpr button, .fpr-cab button, .fpr-menu-movil button { font-family: inherit; }
.fpr-sitio :focus-visible { outline: 3px solid var(--rojo); outline-offset: 3px; border-radius: 6px; }

.fpr-sr { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.fpr-ico { width: 1.15em; height: 1.15em; flex: none; display: inline-block; vertical-align: -.18em; }

/* --- Piezas comunes --- */
.fpr [hidden], .fpr-cab [hidden], .fpr-menu-movil[hidden], .fpr-visor[hidden] { display: none !important; }
.fpr-in { width: 100%; max-width: var(--ancho); margin: 0 auto; }
.fpr-sec { position: relative; padding: clamp(80px, 11vw, 150px) var(--margen); }
.fpr-sec--papel { background: var(--papel); }
.fpr-sec--tinta { background: var(--tinta); color: var(--crema); }
.fpr-sec--rojo { background: var(--rojo); color: #fff; }
.fpr-sec--arena { background: var(--arena); }

.fpr-ceja { display: inline-flex; align-items: center; gap: 12px; margin: 0 0 18px !important; font: 700 .76rem/1.2 var(--f-txt); letter-spacing: .2em; text-transform: uppercase; color: var(--rojo); }
.fpr-ceja::before { content: ""; width: 30px; height: 1.5px; background: currentColor; }
.fpr-sec--tinta .fpr-ceja, .fpr-sec--rojo .fpr-ceja { color: var(--oro); }
.fpr-h2 { font-size: clamp(2.2rem, 4.8vw, 4rem) !important; line-height: 1.02 !important; letter-spacing: -.025em !important; max-width: 18ch; }
.fpr-h2 em, .fpr-h1 em { font-style: italic; color: var(--rojo); font-weight: 400; }
.fpr-sec--tinta .fpr-h2 em { color: #ef8a9b; }
.fpr-lead { font-size: clamp(1.06rem, 1.35vw, 1.24rem); line-height: 1.6; color: var(--tinta-2); max-width: 58ch; }
.fpr-sec--tinta .fpr-lead { color: rgba(246, 239, 228, .78); }
.fpr-cab-sec { display: grid; gap: 14px; margin-bottom: clamp(36px, 5vw, 64px); }
.fpr-cab-sec--centro { justify-items: center; text-align: center; }
.fpr-cab-sec--centro .fpr-h2, .fpr-cab-sec--centro .fpr-lead { margin-left: auto; margin-right: auto; }
.fpr-cab-sec--centro .fpr-ceja::after { content: ""; width: 30px; height: 1.5px; background: currentColor; }

.fpr-btn { display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-height: 54px; padding: 0 28px; border-radius: 999px; border: 1.5px solid transparent; font: 600 1rem/1 var(--f-txt); letter-spacing: .005em; cursor: pointer; text-decoration: none !important; white-space: nowrap; transition: background .25s var(--ease), color .25s var(--ease), border-color .25s var(--ease), transform .25s var(--ease), box-shadow .25s var(--ease); }
.fpr-btn .fpr-ico { width: 1.2em; height: 1.2em; }
.fpr-btn--rojo { background: var(--rojo); color: #fff !important; box-shadow: 0 10px 24px -10px rgba(189, 44, 68, .7); }
.fpr-btn--rojo:hover { background: var(--rojo-osc); transform: translateY(-2px); box-shadow: 0 16px 30px -12px rgba(147, 32, 58, .8); }
.fpr-btn--linea { border-color: currentColor; color: inherit; background: transparent; }
.fpr-btn--linea:hover { background: var(--tinta); border-color: var(--tinta); color: var(--crema) !important; }
.fpr-sec--tinta .fpr-btn--linea:hover, .fpr-sec--rojo .fpr-btn--linea:hover { background: var(--crema); border-color: var(--crema); color: var(--tinta) !important; }
.fpr-btn--claro { background: var(--crema); color: var(--tinta) !important; }
.fpr-btn--claro:hover { background: #fff; transform: translateY(-2px); }
.fpr-btn--peq { min-height: 44px; padding: 0 20px; font-size: .93rem; }
.fpr-btn--grande { min-height: 62px; padding: 0 34px; font-size: 1.06rem; }
.fpr-btns { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; }
.fpr-enlace { background: none; border: 0; padding: 0; color: var(--rojo); font-weight: 600; cursor: pointer; text-decoration: underline; text-underline-offset: 3px; }
.fpr-flecha { display: inline-flex; align-items: center; gap: 8px; font-weight: 600; color: var(--rojo); border-bottom: 1.5px solid currentColor; padding-bottom: 2px; }
.fpr-flecha .fpr-ico { transition: transform .25s var(--ease); }
.fpr-flecha:hover .fpr-ico { transform: translateX(4px); }

.fpr-chip { display: inline-flex; align-items: center; gap: 8px; min-height: 40px; padding: 0 16px; border-radius: 999px; border: 1px solid var(--linea); background: rgba(255, 255, 255, .6); font: 600 .9rem/1 var(--f-txt); color: var(--tinta); white-space: nowrap; cursor: pointer; transition: all .2s var(--ease); }
.fpr-chip:hover { border-color: var(--tinta); }
.fpr-chip.is-activa, .fpr-chip[aria-expanded="true"] { background: var(--tinta); border-color: var(--tinta); color: var(--crema); }
.fpr-chip--especial { border-color: var(--rojo); color: var(--rojo); }
.fpr-chip__n { min-width: 20px; height: 20px; border-radius: 999px; background: var(--rojo); color: #fff; font-size: .72rem; display: inline-flex; align-items: center; justify-content: center; padding: 0 5px; }
.fpr-tag { display: inline-flex; align-items: center; gap: 6px; padding: 3px 10px; border-radius: 999px; background: var(--rojo-claro); color: var(--rojo-osc); font: 700 .68rem/1.4 var(--f-txt); letter-spacing: .08em; text-transform: uppercase; vertical-align: middle; white-space: nowrap; }
.fpr-tag--agotado { background: var(--tinta); color: var(--crema); }

.fpr-abierto { display: inline-flex; align-items: center; gap: 10px; padding: 7px 14px 7px 12px; border-radius: 999px; background: rgba(32, 25, 21, .06); font: 600 .85rem/1.2 var(--f-txt); color: var(--tinta-2); }
.fpr-abierto i { width: 9px; height: 9px; border-radius: 50%; background: #a9a09a; flex: none; }
.fpr-abierto.is-abierto { background: rgba(47, 125, 79, .1); color: #24613d; }
.fpr-abierto.is-abierto i { background: #2f9d5c; box-shadow: 0 0 0 0 rgba(47, 157, 92, .6); animation: fpr-latido 2.2s infinite; }
@keyframes fpr-latido { 0% { box-shadow: 0 0 0 0 rgba(47, 157, 92, .55); } 70% { box-shadow: 0 0 0 9px rgba(47, 157, 92, 0); } 100% { box-shadow: 0 0 0 0 rgba(47, 157, 92, 0); } }
.fpr-sec--tinta .fpr-abierto, .fpr-pie .fpr-abierto, .fpr-tarjeta--tinta .fpr-abierto { background: rgba(246, 239, 228, .09); color: rgba(246, 239, 228, .85); }
.fpr-sec--tinta .fpr-abierto.is-abierto, .fpr-pie .fpr-abierto.is-abierto, .fpr-tarjeta--tinta .fpr-abierto.is-abierto { color: #8be0ad; }

.fpr-nota { display: inline-flex; align-items: center; gap: 10px; color: inherit; }
.fpr-nota__n { font: 600 1.5rem/1 var(--f-tit); }
.fpr-nota__e { display: inline-flex; gap: 1px; color: #e7a72c; }
.fpr-nota__e .fpr-ico { width: 16px; height: 16px; }
.fpr-est--vacia { opacity: .28; }
.fpr-est--media { position: relative; }
.fpr-est--media .fpr-ico { clip-path: inset(0 45% 0 0); }
.fpr-est--media::after { content: ""; position: absolute; inset: 0; background: currentColor; opacity: .28; -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 3.5l2.6 5.3 5.9.9-4.3 4.1 1 5.8-5.2-2.7-5.2 2.7 1-5.8-4.3-4.1 5.9-.9z'/%3E%3C/svg%3E") center/16px no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 3.5l2.6 5.3 5.9.9-4.3 4.1 1 5.8-5.2-2.7-5.2 2.7 1-5.8-4.3-4.1 5.9-.9z'/%3E%3C/svg%3E") center/16px no-repeat; clip-path: inset(0 0 0 55%); }
.fpr-nota__t { font-size: .9rem; color: inherit; opacity: .8; }
a.fpr-nota:hover .fpr-nota__t { text-decoration: underline; text-underline-offset: 3px; }

.fpr-precios { display: inline-flex; flex-wrap: wrap; gap: 6px 14px; align-items: baseline; }
.fpr-precio { display: inline-flex; align-items: baseline; gap: 6px; white-space: nowrap; }
.fpr-precio small { font: 600 .72rem/1 var(--f-txt); letter-spacing: .08em; text-transform: uppercase; color: var(--gris); }
.fpr-precio b { font: 600 1.06rem/1 var(--f-txt); font-variant-numeric: tabular-nums; }
.fpr-al { display: inline-flex; flex-wrap: wrap; gap: 3px; color: var(--gris); }
.fpr-al li { display: inline-flex; }
.fpr-al .fpr-ico { width: 19px; height: 19px; }

.fpr-monograma { display: block; width: 100%; height: auto; }

/* Azulejo: patrón propio en línea fina */
.fpr-azulejo { height: 56px; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='56' height='56' viewBox='0 0 56 56'%3E%3Cg fill='none' stroke='%23bd2c44' stroke-width='1.1'%3E%3Cpath d='M28 5c6.5 7.6 6.5 15.4 0 23-6.5-7.6-6.5-15.4 0-23zM28 51c6.5-7.6 6.5-15.4 0-23-6.5 7.6-6.5 15.4 0 23zM5 28c7.6-6.5 15.4-6.5 23 0-7.6 6.5-15.4 6.5-23 0zM51 28c-7.6-6.5-15.4-6.5-23 0 7.6 6.5 15.4 6.5 23 0z'/%3E%3Ccircle cx='28' cy='28' r='4.2'/%3E%3Cpath d='M0 9.5 9.5 0M46.5 0 56 9.5M0 46.5 9.5 56M46.5 56 56 46.5'/%3E%3C/g%3E%3C/svg%3E"); background-size: 56px 56px; opacity: .5; }

/* ==========================================================================
   Cabecera
   ========================================================================== */
.fpr-cab { position: fixed; top: 0; left: 0; right: 0; z-index: 990; height: var(--cab); background: rgba(246, 239, 228, .82); -webkit-backdrop-filter: blur(16px) saturate(1.3); backdrop-filter: blur(16px) saturate(1.3); border-bottom: 1px solid transparent; transition: border-color .3s, box-shadow .3s, background .3s, transform .35s var(--ease); }
.admin-bar .fpr-cab { top: 32px; }
.fpr-cab.is-scroll { border-bottom-color: var(--linea); box-shadow: 0 10px 30px -18px rgba(32, 25, 21, .35); background: rgba(246, 239, 228, .92); }
.fpr-cab.is-oculta { transform: translateY(-100%); }
.fpr-cab-hueco { height: var(--cab); }
.fpr-cab__in { height: 100%; max-width: calc(var(--ancho) + 2 * var(--margen)); margin: 0 auto; padding: 0 var(--margen); display: flex; align-items: center; gap: 28px; }
.fpr-marca { display: inline-flex; align-items: center; gap: 12px; color: var(--tinta) !important; margin-right: auto; }
.fpr-marca .fpr-monograma { width: 46px; height: 46px; flex: none; transition: transform .6s var(--ease); }
.fpr-marca:hover .fpr-monograma { transform: rotate(-12deg) scale(1.04); }
.fpr-marca__txt { display: grid; line-height: 1.1; }
.fpr-marca__nom { font: 500 1.2rem/1 var(--f-marca); letter-spacing: .1em; text-transform: uppercase; }
.fpr-marca__sub { margin-top: 5px; font: 600 .66rem/1 var(--f-txt); letter-spacing: .24em; text-transform: uppercase; color: var(--gris); }
.fpr-nav ul { display: flex; gap: 30px; }
.fpr-nav a { position: relative; font-weight: 600; font-size: .96rem; color: var(--tinta); padding: 8px 0; }
.fpr-nav a::after { content: ""; position: absolute; left: 0; right: 0; bottom: 2px; height: 1.5px; background: var(--rojo); transform: scaleX(0); transform-origin: right; transition: transform .35s var(--ease); }
.fpr-nav a:hover::after, .fpr-nav a[aria-current="page"]::after { transform: scaleX(1); transform-origin: left; }
.fpr-nav a[aria-current="page"] { color: var(--rojo); }
.fpr-cab__acc { display: flex; align-items: center; gap: 16px; }
.fpr-cab__tel { display: inline-flex; align-items: center; gap: 8px; font-weight: 600; font-size: .95rem; white-space: nowrap; }
.fpr-cab__tel .fpr-ico { color: var(--rojo); }
.fpr-cab__menu { display: none; width: 46px; height: 46px; border-radius: 50%; border: 1px solid var(--linea); background: transparent; color: var(--tinta); align-items: center; justify-content: center; cursor: pointer; padding: 0; }
.fpr-cab__menu .fpr-ico { width: 22px; height: 22px; }

.fpr-menu-movil { position: fixed; inset: 0; z-index: 1000; background: var(--crema); display: flex; flex-direction: column; padding: 14px var(--margen) calc(24px + env(safe-area-inset-bottom)); overflow-y: auto; opacity: 0; transform: translateY(-12px); transition: opacity .3s var(--ease), transform .3s var(--ease); }
.fpr-menu-movil[hidden] { display: none; }
.fpr-menu-movil.is-abierto { opacity: 1; transform: none; }
.admin-bar .fpr-menu-movil { top: 46px; }
.fpr-menu-movil__top { display: flex; align-items: center; justify-content: space-between; min-height: 52px; }
.fpr-menu-movil__top .fpr-cab__menu { display: inline-flex; }
.fpr-menu-movil__nav { margin: 6vh 0 auto !important; display: grid; gap: 2px; }
.fpr-menu-movil__nav a { display: block; font: 400 clamp(2.2rem, 9vw, 3rem)/1.15 var(--f-tit); letter-spacing: -.02em; padding: 8px 0; border-bottom: 1px solid var(--linea); }
.fpr-menu-movil__nav a[aria-current="page"] { color: var(--rojo); font-style: italic; }
.fpr-menu-movil__pie { display: grid; gap: 16px; padding-top: 28px; }
.fpr-menu-movil__btns { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.fpr-menu-movil__dir { display: flex; gap: 8px; color: var(--tinta-2); font-size: .95rem; margin: 0; }
.fpr-sin-scroll { overflow: hidden !important; }

.fpr-barra { display: none; }

/* ==========================================================================
   Portada
   ========================================================================== */
.fpr-hero { position: relative; min-height: calc(100svh - var(--cab)); padding: clamp(24px, 4vh, 56px) var(--margen) clamp(40px, 7vh, 80px); display: flex; align-items: center; overflow: hidden; isolation: isolate; }
.admin-bar .fpr-hero { min-height: calc(100svh - var(--cab) - 32px); }
.fpr-hero::before { content: ""; position: absolute; inset: 0; z-index: -2; background: radial-gradient(60% 70% at 78% 40%, rgba(201, 154, 76, .22), transparent 70%), radial-gradient(40% 50% at 10% 90%, rgba(189, 44, 68, .08), transparent 70%); }
.fpr-hero .fpr-azulejo { position: absolute; left: 0; right: 0; bottom: 0; z-index: -1; -webkit-mask-image: linear-gradient(90deg, transparent, #000 15%, #000 85%, transparent); mask-image: linear-gradient(90deg, transparent, #000 15%, #000 85%, transparent); opacity: .32; }
.fpr-hero__in { width: 100%; max-width: var(--ancho); margin: 0 auto; display: grid; grid-template-columns: minmax(0, 1.04fr) minmax(0, 1fr); gap: clamp(28px, 5vw, 80px); align-items: center; }
.fpr-hero__txt { display: grid; justify-items: start; gap: clamp(14px, 2.4vh, 26px); }
.fpr-h1 { font-size: min(clamp(2.7rem, 6.1vw, 6.1rem), 11.4vh) !important; line-height: .98 !important; letter-spacing: -.035em !important; font-weight: 400 !important; }
.fpr-h1 span { display: block; }
.fpr-hero__lead { font-size: clamp(1.05rem, 1.35vw, 1.25rem); color: var(--tinta-2); max-width: 46ch; margin: 0 !important; }
.fpr-hero__prueba { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 22px; color: var(--tinta-2); font-size: .92rem; }
.fpr-hero__prueba > span { display: inline-flex; align-items: center; gap: 8px; }
.fpr-hero__prueba .fpr-ico { color: var(--rojo); }
.fpr-hero__arte { position: relative; justify-self: center; width: min(44vw, 70vh, 620px); aspect-ratio: 1; }
.fpr-hero__plato { position: absolute; inset: 9%; border-radius: 50%; overflow: hidden; box-shadow: var(--sombra-fuerte), inset 0 0 0 10px rgba(255, 255, 255, .25); background: var(--arena); }
.fpr-hero__plato img { width: 100%; height: 100%; object-fit: cover; transform: scale(1.18); animation: fpr-giro 140s linear infinite; }
.fpr-hero__plato::after { content: ""; position: absolute; inset: 0; border-radius: 50%; box-shadow: inset 0 0 60px rgba(32, 25, 21, .35); pointer-events: none; }
@keyframes fpr-giro { to { transform: scale(1.18) rotate(360deg); } }
.fpr-hero__aro { position: absolute; inset: 0; width: 100%; height: 100%; animation: fpr-giro-aro 60s linear infinite reverse; color: var(--tinta); }
.fpr-hero__aro text { font: 600 13.5px var(--f-txt); letter-spacing: .42em; text-transform: uppercase; fill: currentColor; }
@keyframes fpr-giro-aro { to { transform: rotate(360deg); } }
.fpr-hero__sello { position: absolute; right: 2%; top: 8%; width: 23%; aspect-ratio: 1; border-radius: 50%; background: var(--rojo); color: #fff; display: grid; place-items: center; text-align: center; box-shadow: var(--sombra); transform: rotate(10deg); padding: 6%; }
.fpr-hero__sello .fpr-monograma { width: 46%; margin: 0 auto 4%; }
.fpr-hero__sello span { display: block; font: 600 clamp(.52rem, .9vw, .72rem)/1.25 var(--f-txt); letter-spacing: .14em; text-transform: uppercase; }
.fpr-hero__tarjeta { position: absolute; width: 34%; border-radius: 16px; overflow: hidden; background: #fff; padding: 6px 6px 10px; box-shadow: var(--sombra); animation: fpr-flota 7s ease-in-out infinite; }
.fpr-hero__tarjeta img { display: block; width: 100%; aspect-ratio: 4 / 3.2; object-fit: cover; border-radius: 11px; }
.fpr-hero__tarjeta figcaption { padding: 8px 6px 0; font: 600 .8rem/1.2 var(--f-txt); color: var(--tinta); }
.fpr-hero__tarjeta figcaption small { display: block; font-weight: 500; color: var(--gris); margin-top: 2px; }
.fpr-hero__tarjeta--1 { left: -6%; bottom: 6%; transform: rotate(-6deg); }
.fpr-hero__tarjeta--2 { right: -4%; bottom: -2%; transform: rotate(5deg); animation-delay: -3.5s; width: 30%; }
@keyframes fpr-flota { 0%, 100% { translate: 0 0; } 50% { translate: 0 -10px; } }

/* Cinta */
.fpr-cinta { background: var(--rojo); color: #fff; overflow: hidden; padding: 18px 0; position: relative; }
.fpr-cinta__pista { display: flex; width: max-content; animation: fpr-cinta 46s linear infinite; }
.fpr-cinta:hover .fpr-cinta__pista { animation-play-state: paused; }
.fpr-cinta__grupo { display: flex; align-items: center; gap: 34px; padding-right: 34px; }
.fpr-cinta__grupo span { font: italic 400 clamp(1.25rem, 2.1vw, 1.7rem)/1 var(--f-tit); white-space: nowrap; }
.fpr-cinta__grupo i { width: 20px; height: 20px; display: inline-block; flex: none; opacity: .75; background: currentColor; -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 1c2.2 3.3 2.2 6.7 0 10-2.2-3.3-2.2-6.7 0-10zm0 22c2.2-3.3 2.2-6.7 0-10-2.2 3.3-2.2 6.7 0 10zM1 12c3.3-2.2 6.7-2.2 10 0-3.3 2.2-6.7 2.2-10 0zm22 0c-3.3-2.2-6.7-2.2-10 0 3.3 2.2 6.7 2.2 10 0z'/%3E%3C/svg%3E") center / contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 1c2.2 3.3 2.2 6.7 0 10-2.2-3.3-2.2-6.7 0-10zm0 22c2.2-3.3 2.2-6.7 0-10-2.2 3.3-2.2 6.7 0 10zM1 12c3.3-2.2 6.7-2.2 10 0-3.3 2.2-6.7 2.2-10 0zm22 0c-3.3-2.2-6.7-2.2-10 0 3.3 2.2 6.7 2.2 10 0z'/%3E%3C/svg%3E") center / contain no-repeat; }
@keyframes fpr-cinta { to { transform: translateX(-50%); } }

/* Arroz */
.fpr-arroz__in { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: clamp(40px, 7vw, 110px); align-items: center; }
.fpr-arroz__fotos { position: relative; }
.fpr-arroz__f1 { border-radius: var(--r); overflow: hidden; aspect-ratio: 4 / 4.6; box-shadow: var(--sombra-fuerte); }
.fpr-arroz__f1 img, .fpr-arroz__f2 img { width: 100%; height: 100%; object-fit: cover; display: block; }
.fpr-arroz__f2 { position: absolute; width: 44%; aspect-ratio: 1; border-radius: 50%; overflow: hidden; right: -8%; bottom: -10%; border: 8px solid var(--crema); box-shadow: var(--sombra); }
.fpr-arroz__hora { position: absolute; left: -5%; top: 8%; background: var(--tinta); color: var(--crema); border-radius: 16px; padding: 14px 18px; box-shadow: var(--sombra); font: 600 .78rem/1.3 var(--f-txt); letter-spacing: .12em; text-transform: uppercase; }
.fpr-arroz__hora b { display: block; font: italic 400 1.9rem/1 var(--f-tit); letter-spacing: -.01em; text-transform: none; color: var(--oro); margin-bottom: 4px; }
.fpr-arroz__txt .fpr-h2 { margin-bottom: 22px !important; }
.fpr-cita { margin: 26px 0 !important; padding: 0 0 0 22px; border-left: 2px solid var(--rojo); font: italic 400 1.22rem/1.45 var(--f-tit); color: var(--tinta); }
.fpr-cita cite { display: block; margin-top: 8px; font: 600 .78rem/1.3 var(--f-txt); letter-spacing: .12em; text-transform: uppercase; color: var(--gris); font-style: normal; }
.fpr-arroz__precio { display: flex; flex-wrap: wrap; align-items: center; gap: 14px 22px; margin: 26px 0 30px; padding: 18px 22px; border-radius: 16px; background: var(--papel); border: 1px solid var(--linea); }
.fpr-arroz__precio .fpr-precio b { font-size: 1.3rem; }
.fpr-arroz__precio-tit { font: 600 .78rem/1 var(--f-txt); letter-spacing: .14em; text-transform: uppercase; color: var(--gris); width: 100%; }

/* Raíces */
.fpr-raices { overflow: hidden; }
.fpr-raices__in { display: grid; grid-template-columns: minmax(0, .95fr) minmax(0, 1fr); gap: clamp(30px, 6vw, 90px); align-items: center; }
.fpr-raices__mapa { position: relative; }
.fpr-raices__mapa svg { width: 100%; height: auto; display: block; overflow: visible; }
.fpr-raices__mapa .ruta { stroke-dasharray: 7 8; stroke-dashoffset: 0; }
.fpr-raices__mapa .ruta-dibujo { stroke-dasharray: 1000; stroke-dashoffset: 1000; transition: stroke-dashoffset 2.4s var(--ease) .3s; }
.fpr-raices__mapa.is-visto .ruta-dibujo { stroke-dashoffset: 0; }
.fpr-raices__mapa .punto { transform-box: fill-box; transform-origin: center; }
.fpr-raices__mapa.is-visto .punto--casa { animation: fpr-pulso 2.6s ease-out 2.4s infinite; }
@keyframes fpr-pulso { 0% { transform: scale(1); } 30% { transform: scale(1.35); } 60% { transform: scale(1); } }
.fpr-raices__mapa text { font: 600 13px var(--f-txt); letter-spacing: .08em; fill: var(--crema); }
.fpr-raices__mapa text.peq { font-size: 11px; font-weight: 500; letter-spacing: .02em; fill: rgba(246, 239, 228, .65); }
.fpr-raices__lista { display: grid; gap: 14px; margin-top: 34px !important; }
.fpr-raiz { display: grid; grid-template-columns: 92px 1fr; gap: 18px; align-items: center; padding: 14px; border-radius: 18px; background: rgba(246, 239, 228, .05); border: 1px solid rgba(246, 239, 228, .1); transition: background .3s, transform .3s var(--ease); }
.fpr-raiz:hover { background: rgba(246, 239, 228, .09); transform: translateX(4px); }
.fpr-raiz__foto { width: 92px; height: 92px; border-radius: 14px; overflow: hidden; }
.fpr-raiz__foto img { width: 100%; height: 100%; object-fit: cover; }
.fpr-raiz h3 { font-size: 1.4rem !important; margin-bottom: 4px !important; }
.fpr-raiz h3 small { display: block; font: 700 .68rem/1.4 var(--f-txt); letter-spacing: .18em; text-transform: uppercase; color: var(--oro); margin-bottom: 4px; }
.fpr-raiz p { font-size: .95rem; color: rgba(246, 239, 228, .72); margin: 0 !important; }

/* Setas */
.fpr-setas__in { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.08fr); gap: clamp(40px, 6vw, 90px); align-items: start; }
.fpr-setas__txt { position: static; }
.fpr-setas__fotos { position: sticky; top: calc(var(--cab) + 30px); display: grid; grid-template-columns: 1.15fr 1fr; grid-template-rows: auto auto; gap: 14px; }
.fpr-setas__fotos figure { margin: 0; border-radius: var(--r); overflow: hidden; position: relative; box-shadow: var(--sombra); }
.fpr-setas__fotos img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 1.2s var(--ease); }
.fpr-setas__fotos figure:hover img { transform: scale(1.05); }
.fpr-setas__fotos figure:nth-child(1) { grid-row: span 2; aspect-ratio: 3 / 4.6; }
.fpr-setas__fotos figure:nth-child(2), .fpr-setas__fotos figure:nth-child(3) { aspect-ratio: 1; }
.fpr-setas__fotos figcaption { position: absolute; left: 12px; bottom: 12px; background: rgba(246, 239, 228, .92); padding: 6px 12px; border-radius: 999px; font: 600 .8rem/1.2 var(--f-txt); }
.fpr-lista { display: grid; gap: 0; margin-top: 30px !important; border-top: 1px solid var(--linea); }
.fpr-lista__item { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 16px; align-items: center; padding: 16px 0; border-bottom: 1px solid var(--linea); }
.fpr-lista__foto { width: 58px; height: 58px; border-radius: 50%; object-fit: cover; }
.fpr-lista__foto--vacia { display: grid; place-items: center; background: var(--arena); color: rgba(189, 44, 68, .45); padding: 12px; }
.fpr-lista__foto--vacia .fpr-monograma { width: 100%; }
.fpr-lista__txt h3 { font: 500 1.18rem/1.2 var(--f-tit) !important; letter-spacing: -.01em !important; }
.fpr-lista__txt p { font-size: .9rem; color: var(--gris); margin: 3px 0 0 !important; line-height: 1.45; }
.fpr-lista .fpr-precios { justify-content: flex-end; flex-direction: column; align-items: flex-end; gap: 4px; }
.fpr-calendario { margin-top: 36px; padding: 22px; border-radius: var(--r); background: var(--papel); border: 1px solid var(--linea); }
.fpr-calendario__tit { display: flex; justify-content: space-between; align-items: baseline; gap: 10px; margin-bottom: 14px !important; font: 600 .78rem/1.3 var(--f-txt); letter-spacing: .14em; text-transform: uppercase; color: var(--gris); }
.fpr-calendario__tit b { color: var(--oliva); }
.fpr-calendario__meses, .fpr-calendario__fila { display: grid; grid-template-columns: 92px repeat(12, 1fr); gap: 3px; align-items: center; }
.fpr-calendario__meses span { text-align: center; font: 600 .66rem/1 var(--f-txt); color: var(--gris); padding-bottom: 4px; text-transform: uppercase; }
.fpr-calendario__meses span.is-hoy { color: var(--rojo); }
.fpr-calendario__fila { margin-top: 5px; }
.fpr-calendario__fila b { font: 600 .82rem/1.2 var(--f-txt); }
.fpr-calendario__fila i { height: 14px; border-radius: 4px; background: rgba(32, 25, 21, .06); }
.fpr-calendario__fila i.si { background: var(--oliva); }
.fpr-calendario__fila i.si.is-hoy { background: var(--rojo); box-shadow: 0 0 0 2px var(--papel), 0 0 0 3.5px var(--rojo); }
.fpr-calendario__nota { margin: 12px 0 0 !important; font-size: .8rem; color: var(--gris); }

/* Destacados */
.fpr-dest { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: clamp(14px, 2vw, 26px); }
.fpr-dest__item { display: flex; flex-direction: column; background: var(--papel); border-radius: var(--r); overflow: hidden; border: 1px solid var(--linea); transition: transform .4s var(--ease), box-shadow .4s var(--ease); }
.fpr-dest__item:hover { transform: translateY(-6px); box-shadow: var(--sombra); }
.fpr-dest__foto { position: relative; aspect-ratio: 4 / 3.3; overflow: hidden; background: var(--arena); }
.fpr-dest__foto img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 1s var(--ease); }
.fpr-dest__item:hover .fpr-dest__foto img { transform: scale(1.06); }
.fpr-dest__foto .fpr-tag { position: absolute; left: 12px; top: 12px; }
.fpr-dest__sin { display: grid; place-items: center; width: 100%; height: 100%; color: rgba(189, 44, 68, .35); }
.fpr-dest__sin .fpr-monograma { width: 38%; }
.fpr-dest__txt { display: flex; flex-direction: column; gap: 6px; padding: 18px 18px 20px; flex: 1; }
.fpr-dest__sec { font: 700 .66rem/1.3 var(--f-txt) !important; letter-spacing: .18em; text-transform: uppercase; color: var(--rojo); margin: 0 !important; }
.fpr-dest__nom { font-size: 1.3rem !important; line-height: 1.12 !important; }
.fpr-dest__desc { font-size: .9rem; line-height: 1.5; color: var(--gris); margin: 0 !important; }
.fpr-dest__pie { margin-top: auto; padding-top: 12px; display: flex; flex-wrap: wrap; gap: 8px 12px; justify-content: space-between; align-items: center; border-top: 1px dashed var(--linea); }
.fpr-dest__item.is-agotado .fpr-dest__foto img { filter: grayscale(.85); }
.fpr-dest-pie { display: flex; justify-content: center; margin-top: clamp(30px, 4vw, 50px); }

/* Asados */
.fpr-asados { padding: 0; background: #17110e; color: var(--crema); overflow: hidden; }
.fpr-asados__in { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); min-height: min(88vh, 860px); }
.fpr-asados__foto { position: relative; }
.fpr-asados__foto img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.fpr-asados__foto::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, transparent 55%, #17110e); }
.fpr-asados__txt { padding: clamp(60px, 9vw, 130px) clamp(24px, 6vw, 96px); display: flex; flex-direction: column; justify-content: center; }
.fpr-asados__txt .fpr-ceja { color: var(--oro); }
.fpr-asados__txt .fpr-h2 em { color: var(--oro); }
.fpr-asados__txt .fpr-lead { color: rgba(246, 239, 228, .75); }
.fpr-asados__opciones { display: grid; gap: 14px; margin: 34px 0 34px !important; }
.fpr-asado { display: grid; grid-template-columns: 1fr auto; gap: 6px 20px; align-items: baseline; padding: 20px 0; border-bottom: 1px solid rgba(246, 239, 228, .14); }
.fpr-asado h3 { font-size: 1.6rem !important; }
.fpr-asado p { grid-column: 1 / -1; margin: 0 !important; font-size: .95rem; color: rgba(246, 239, 228, .68); }
.fpr-asado .fpr-precio small { color: rgba(246, 239, 228, .6); }
.fpr-asado .fpr-precio b { font: 400 1.7rem/1 var(--f-tit); color: var(--oro); }

/* La casa */
.fpr-casa__rejilla { display: grid; grid-template-columns: 1.3fr 1fr 1fr; grid-template-rows: 280px 280px; gap: 14px; }
.fpr-casa__rejilla figure { margin: 0; border-radius: var(--r); overflow: hidden; position: relative; }
.fpr-casa__rejilla img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 1.2s var(--ease); }
.fpr-casa__rejilla figure:hover img { transform: scale(1.04); }
.fpr-casa__rejilla figure:nth-child(1) { grid-row: span 2; }
.fpr-casa__rejilla figure:nth-child(4) { grid-column: span 2; }
.fpr-casa__rejilla figcaption { position: absolute; left: 14px; bottom: 14px; color: #fff; font: 600 .85rem/1.2 var(--f-txt); text-shadow: 0 1px 12px rgba(0, 0, 0, .5); }
.fpr-casa__datos { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 12px; margin-top: 30px !important; }
.fpr-casa__datos li { display: grid; justify-items: center; text-align: center; gap: 10px; padding: 20px 10px; border-radius: 16px; background: var(--papel); border: 1px solid var(--linea); font-size: .88rem; font-weight: 600; line-height: 1.3; }
.fpr-casa__datos .fpr-ico { width: 30px; height: 30px; color: var(--rojo); }

/* Opiniones */
.fpr-opiniones__cab { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-end; gap: 24px; margin-bottom: clamp(30px, 4vw, 50px); }
.fpr-opiniones__nota { display: grid; justify-items: end; text-align: right; gap: 4px; }
.fpr-opiniones__nota .fpr-nota { flex-direction: column; align-items: flex-end; gap: 6px; }
.fpr-opiniones__nota .fpr-nota__n { font-size: clamp(3.4rem, 6vw, 5rem); letter-spacing: -.03em; }
.fpr-opiniones__nota .fpr-nota__e .fpr-ico { width: 22px; height: 22px; }
.fpr-resenas { position: relative; }
.fpr-resenas__pista { display: grid; grid-auto-flow: column; grid-auto-columns: calc((100% - 2 * 18px) / 3); gap: 18px; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; padding: 4px 2px 10px; }
.fpr-resenas__pista::-webkit-scrollbar { display: none; }
.fpr-resena { scroll-snap-align: start; margin: 0; padding: 28px 26px; border-radius: var(--r); background: var(--papel); border: 1px solid var(--linea); display: flex; flex-direction: column; gap: 14px; }
.fpr-resena__est { display: flex; gap: 2px; color: #e7a72c; }
.fpr-resena__est .fpr-ico { width: 17px; height: 17px; }
.fpr-resena blockquote { margin: 0; padding: 0; border: 0; quotes: "«" "»"; }
.fpr-resena blockquote p { font: 400 1.08rem/1.55 var(--f-tit); color: var(--tinta); margin: 0 !important; }
.fpr-resena blockquote p::before { content: open-quote; }
.fpr-resena blockquote p::after { content: close-quote; }
.fpr-resena figcaption { margin-top: auto; font-size: .85rem; color: var(--gris); }
.fpr-resena figcaption b { color: var(--tinta); }
.fpr-resenas__nav { display: flex; gap: 10px; justify-content: flex-end; margin-top: 14px; }
.fpr-resenas__nav button { width: 50px; height: 50px; border-radius: 50%; border: 1px solid var(--linea); background: transparent; cursor: pointer; display: inline-flex; align-items: center; justify-content: center; color: var(--tinta); transition: all .2s; }
.fpr-resenas__nav button:hover { background: var(--tinta); color: var(--crema); }
.fpr-resenas__nav button:first-child .fpr-ico { transform: scaleX(-1); }
.fpr-prensa { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 16px; margin-top: clamp(36px, 5vw, 60px); }
.fpr-prensa__item { display: grid; gap: 12px; padding: 24px 26px; border-radius: var(--r); background: var(--tinta); color: var(--crema) !important; transition: transform .3s var(--ease); }
.fpr-prensa__item:hover { transform: translateY(-4px); }
.fpr-prensa__medio { font: 500 1rem/1 var(--f-marca); letter-spacing: .12em; text-transform: uppercase; color: var(--oro); }
.fpr-prensa__item q { font: italic 400 1.3rem/1.35 var(--f-tit); quotes: "«" "»"; }
.fpr-prensa__pie { display: flex; align-items: center; justify-content: space-between; gap: 10px; font-size: .82rem; color: rgba(246, 239, 228, .6); }

/* Instagram */
.fpr-insta { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
.fpr-insta__item { position: relative; aspect-ratio: 1; border-radius: 14px; overflow: hidden; display: block; background: var(--arena); }
.fpr-insta__item img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .9s var(--ease); }
.fpr-insta__item:hover img { transform: scale(1.07); }
.fpr-insta__ico { position: absolute; inset: 0; display: grid; place-items: center; background: rgba(189, 44, 68, .55); color: #fff; opacity: 0; transition: opacity .3s; }
.fpr-insta__ico .fpr-ico { width: 34px; height: 34px; }
.fpr-insta__item:hover .fpr-insta__ico { opacity: 1; }
.fpr-ig__cab { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-end; gap: 20px; margin-bottom: 30px; }

/* Visita */
.fpr-visita__in { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr); gap: clamp(30px, 5vw, 70px); align-items: stretch; }
.fpr-visita__info { display: grid; gap: 26px; align-content: start; }
.fpr-visita__bloque h3 { font: 700 .74rem/1.3 var(--f-txt) !important; letter-spacing: .18em !important; text-transform: uppercase; color: var(--rojo); margin-bottom: 10px !important; }
.fpr-visita__bloque p, .fpr-visita__bloque address { font-style: normal; font-size: 1.1rem; margin: 0 !important; }
.fpr-visita__tels { display: grid; gap: 6px; font-size: 1.25rem; font-family: var(--f-tit); }
.fpr-visita__tels a:hover { color: var(--rojo); }

.fpr-horario { margin: 0; display: grid; gap: 6px; }
.fpr-horario div { display: flex; justify-content: space-between; gap: 18px; padding: 8px 0; border-bottom: 1px dashed currentColor; border-color: rgba(127, 110, 101, .3); }
.fpr-horario dt { font-weight: 600; }
.fpr-horario dd { margin: 0; font-variant-numeric: tabular-nums; }
.fpr-horario__nota { font-size: .85rem; opacity: .75; margin: 8px 0 0 !important; }

.fpr-mapa { position: relative; border-radius: var(--r); overflow: hidden; min-height: 420px; height: 100%; background: #e9dfd0; color: #cbbba5; }
.fpr-mapa iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.fpr-mapa__tapa { position: absolute; inset: 0; display: flex; align-items: flex-end; }
.fpr-mapa__calles { position: absolute; inset: 0; width: 100%; height: 100%; color: #fff; }
.fpr-mapa__pin { position: absolute; left: 50%; top: 38%; width: 74px; height: 74px; transform: translate(-50%, -50%); filter: drop-shadow(0 12px 18px rgba(32, 25, 21, .35)); animation: fpr-flota 4s ease-in-out infinite; }
.fpr-mapa__pin::after { content: ""; position: absolute; left: 50%; bottom: -14px; width: 16px; height: 16px; background: var(--rojo); transform: translateX(-50%) rotate(45deg); z-index: -1; }
.fpr-mapa__info { position: relative; margin: 18px; padding: 20px 22px; border-radius: 16px; background: rgba(251, 248, 242, .95); color: var(--tinta); width: calc(100% - 36px); box-shadow: var(--sombra); }
.fpr-mapa__dir { margin: 0 0 14px !important; font-size: 1rem; }
.fpr-mapa__btns { display: flex; flex-wrap: wrap; gap: 10px; }
.fpr-mapa__aviso { margin: 12px 0 0 !important; font-size: .78rem; color: var(--gris); }

/* Llamada final */
.fpr-llamada { text-align: center; }
.fpr-llamada .fpr-h2 { margin: 0 auto 18px !important; max-width: 16ch; }
.fpr-llamada .fpr-lead { margin: 0 auto 30px; }
.fpr-llamada .fpr-btns { justify-content: center; }
.fpr-llamada__mono { width: 74px; margin: 0 auto 24px; color: #fff; opacity: .9; }

/* ==========================================================================
   Páginas interiores
   ========================================================================== */
.fpr-cabpag { position: relative; padding: clamp(56px, 9vw, 120px) var(--margen) clamp(40px, 6vw, 80px); overflow: hidden; }
.fpr-cabpag__in { max-width: var(--ancho); margin: 0 auto; display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, .8fr); gap: clamp(26px, 5vw, 80px); align-items: end; }
.fpr-cabpag .fpr-h1 { font-size: clamp(3rem, 7.5vw, 6.6rem) !important; }
.fpr-cabpag__lado { display: grid; gap: 16px; justify-items: start; }
.fpr-cabpag__foto { position: relative; border-radius: var(--r); overflow: hidden; aspect-ratio: 5 / 4; box-shadow: var(--sombra-fuerte); }
.fpr-cabpag__foto img { width: 100%; height: 100%; object-fit: cover; display: block; }
.fpr-cabpag .fpr-azulejo { position: absolute; left: 0; right: 0; bottom: 0; opacity: .25; -webkit-mask-image: linear-gradient(90deg, transparent, #000 20%, #000 80%, transparent); mask-image: linear-gradient(90deg, transparent, #000 20%, #000 80%, transparent); }

.fpr-historia { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(30px, 6vw, 90px); align-items: center; }
.fpr-historia + .fpr-historia { margin-top: clamp(60px, 9vw, 120px); }
.fpr-historia--al-reves .fpr-historia__foto { order: 2; }
.fpr-historia__foto { border-radius: var(--r); overflow: hidden; aspect-ratio: 4 / 4.4; box-shadow: var(--sombra); }
.fpr-historia__foto img { width: 100%; height: 100%; object-fit: cover; display: block; }
.fpr-equipo { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }
.fpr-equipo figure { margin: 0; border-radius: var(--r); overflow: hidden; aspect-ratio: 3 / 4; position: relative; }
.fpr-equipo img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 1s var(--ease); }
.fpr-equipo figure:hover img { transform: scale(1.05); }

.fpr-reservas__in { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, .9fr); gap: clamp(26px, 5vw, 70px); align-items: start; }
.fpr-reservas__lado { display: grid; gap: 18px; position: sticky; top: calc(var(--cab) + 24px); }
.fpr-tarjeta { padding: 26px; border-radius: var(--r); background: var(--papel); border: 1px solid var(--linea); }
.fpr-tarjeta h3 { font-size: 1.45rem !important; margin-bottom: 12px !important; }
.fpr-tarjeta p { font-size: .97rem; color: var(--tinta-2); }
.fpr-tarjeta--tinta { background: var(--tinta); color: var(--crema); border-color: transparent; }
.fpr-tarjeta--tinta p { color: rgba(246, 239, 228, .75); }

/* ==========================================================================
   Carta
   ========================================================================== */
.fpr-carta { position: relative; max-width: var(--ancho); margin: 0 auto; }
.fpr-carta__barra { position: sticky; top: var(--cab); z-index: 20; margin: 0 calc(-1 * var(--margen)); padding: 12px var(--margen); background: rgba(246, 239, 228, .92); -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px); border-bottom: 1px solid var(--linea); }
.admin-bar .fpr-carta__barra { top: calc(var(--cab) + 32px); }
.fpr-carta__barra-in { display: flex; gap: 14px; align-items: center; }
.fpr-carta__secs { display: flex; gap: 8px; overflow-x: auto; scrollbar-width: none; flex: 1; min-width: 0; padding: 2px; scroll-behavior: smooth; -webkit-mask-image: linear-gradient(90deg, #000 92%, transparent); mask-image: linear-gradient(90deg, #000 92%, transparent); }
.fpr-carta__secs::-webkit-scrollbar { display: none; }
.fpr-carta__herr { display: flex; gap: 8px; align-items: center; flex: none; }
.fpr-carta__buscar { position: relative; display: flex; align-items: center; }
.fpr-carta__buscar .fpr-ico { position: absolute; left: 14px; color: var(--gris); pointer-events: none; }
.fpr-carta__buscar input { width: 200px; min-height: 40px; padding: 0 14px 0 40px; border-radius: 999px; border: 1px solid var(--linea); background: rgba(255, 255, 255, .75); font: 500 .92rem var(--f-txt); color: var(--tinta); transition: width .3s var(--ease), border-color .2s; -webkit-appearance: none; appearance: none; }
.fpr-carta__buscar input:focus { width: 240px; border-color: var(--tinta); outline: none; background: #fff; }
.fpr-idioma { display: inline-flex; padding: 3px; border-radius: 999px; background: rgba(32, 25, 21, .07); }
.fpr-idioma button { min-width: 42px; height: 34px; border: 0; border-radius: 999px; background: transparent; font: 700 .8rem/1 var(--f-txt); letter-spacing: .06em; color: var(--gris); cursor: pointer; }
.fpr-idioma button[aria-pressed="true"] { background: #fff; color: var(--tinta); box-shadow: 0 1px 4px rgba(32, 25, 21, .15); }
.fpr-carta__filtros { padding: 18px 0 8px; }
.fpr-carta__filtros[hidden] { display: none; }
.fpr-carta__filtros-tit { font-weight: 600; margin: 0 0 12px !important; font-size: .95rem; }
.fpr-carta__filtros-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 8px; }
.fpr-carta__filtros-pie { display: flex; flex-wrap: wrap; gap: 14px; align-items: center; justify-content: space-between; margin-top: 12px; }
.fpr-filtro { position: relative; display: flex; align-items: center; gap: 8px; padding: 9px 12px; border-radius: 12px; border: 1px solid var(--linea); background: rgba(255, 255, 255, .7); cursor: pointer; font-size: .88rem; font-weight: 600; user-select: none; transition: all .2s; }
.fpr-filtro input { position: absolute; opacity: 0; pointer-events: none; }
.fpr-filtro .fpr-ico { width: 20px; height: 20px; color: var(--gris); }
.fpr-filtro:has(input:checked) { background: var(--tinta); border-color: var(--tinta); color: var(--crema); }
.fpr-filtro:has(input:checked) .fpr-ico { color: var(--oro); }
.fpr-filtro--veg:has(input:checked) { background: var(--oliva); border-color: var(--oliva); }
.fpr-filtro:has(input:focus-visible) { outline: 3px solid var(--rojo); outline-offset: 2px; }

.fpr-carta__vacio { text-align: center; padding: 60px 20px; font-size: 1.1rem; color: var(--gris); }
.fpr-carta__sec { padding: clamp(44px, 6vw, 70px) 0 10px; scroll-margin-top: calc(var(--cab) + 80px); }
.fpr-carta__sec[hidden] { display: none; }
.fpr-carta__sec-cab { display: grid; grid-template-columns: auto 1fr; gap: 6px 26px; align-items: end; padding-bottom: 18px; margin-bottom: 8px; border-bottom: 2px solid var(--tinta); }
.fpr-carta__sec-cab h2 { font-size: clamp(2rem, 4vw, 3rem) !important; letter-spacing: -.025em !important; }
.fpr-carta__sec-cab p { margin: 0 0 6px !important; color: var(--gris); font-size: .98rem; max-width: 50ch; }
.fpr-carta__sec--especial { margin-top: 30px; padding: 30px clamp(18px, 3vw, 34px) 20px; border-radius: var(--r); background: var(--rojo); color: #fff; }
.fpr-carta__sec--especial .fpr-carta__sec-cab { border-color: rgba(255, 255, 255, .5); }
.fpr-carta__sec--especial .fpr-carta__sec-cab p, .fpr-carta__sec--especial .fpr-plato__desc, .fpr-carta__sec--especial .fpr-precio small, .fpr-carta__sec--especial .fpr-al { color: rgba(255, 255, 255, .8); }
.fpr-carta__sec--especial .fpr-plato { border-color: rgba(255, 255, 255, .22); }
.fpr-carta__lista { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: clamp(26px, 4vw, 60px); }
.fpr-plato { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 4px 18px; align-items: start; padding: 20px 0; border-bottom: 1px solid var(--linea); }
.fpr-plato.tiene-foto { grid-template-columns: 84px minmax(0, 1fr) auto; }
.fpr-plato[hidden] { display: none; }
.fpr-plato__foto { width: 84px; height: 84px; border-radius: 14px; overflow: hidden; border: 0; padding: 0; background: var(--arena); cursor: zoom-in; position: relative; }
.fpr-plato__foto img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .6s var(--ease); }
.fpr-plato__foto:hover img { transform: scale(1.08); }
.fpr-plato__nom { font: 500 1.24rem/1.2 var(--f-tit) !important; letter-spacing: -.01em !important; display: flex; flex-wrap: wrap; align-items: center; gap: 4px 10px; }
.fpr-plato__desc { margin: 6px 0 0 !important; font-size: .93rem; line-height: 1.5; color: var(--gris); }
.fpr-plato__marcas { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin-top: 8px; }
.fpr-plato__marcas:empty { display: none; }
.fpr-dieta { color: var(--oliva); display: inline-flex; }
.fpr-dieta .fpr-ico { width: 19px; height: 19px; }
.fpr-picante { display: inline-flex; color: #c2410c; }
.fpr-picante .fpr-ico { width: 18px; height: 18px; }
.fpr-plato__precios { text-align: right; padding-top: 2px; }
.fpr-precios--col { flex-direction: column; align-items: flex-end; gap: 6px; }
.fpr-plato.is-agotado .fpr-plato__nom > span:first-child, .fpr-plato.is-agotado .fpr-plato__precios { opacity: .5; }
.fpr-plato.is-agotado .fpr-plato__foto img { filter: grayscale(1); }
.fpr-carta__pie { margin: clamp(50px, 7vw, 90px) 0 0; padding: 30px; border-radius: var(--r); background: var(--papel); border: 1px solid var(--linea); display: grid; gap: 18px; }
.fpr-carta__leyenda-tit { font: 700 .74rem/1 var(--f-txt) !important; letter-spacing: .18em; text-transform: uppercase; color: var(--gris); margin-bottom: 14px !important; }
.fpr-carta__leyenda ul { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 10px 16px; }
.fpr-carta__leyenda li { display: flex; align-items: center; gap: 8px; font-size: .88rem; }
.fpr-carta__leyenda .fpr-ico { width: 20px; height: 20px; color: var(--gris); }
.fpr-carta__aviso { font-size: .95rem; margin: 0 !important; color: var(--tinta-2); }

/* Idioma de la carta */
/* Textos en dos idiomas: se esconde el que no toca (con !important para ganar a reglas como «.fpr-h1 span»). */
html:not([data-idioma="en"]) .fpr-en, [data-idioma="en"] .fpr-es { display: none !important; }

/* Visor de fotos */
.fpr-visor { position: fixed; inset: 0; z-index: 1100; background: rgba(20, 15, 12, .92); display: grid; place-items: center; padding: 24px; opacity: 0; transition: opacity .25s; }
.fpr-visor[hidden] { display: none; }
.fpr-visor.is-abierto { opacity: 1; }
.fpr-visor figure { margin: 0; max-width: min(1000px, 94vw); text-align: center; }
.fpr-visor img { max-height: 80vh; width: auto; border-radius: 16px; box-shadow: 0 30px 80px rgba(0, 0, 0, .5); }
.fpr-visor figcaption { color: var(--crema); margin-top: 14px; font: 400 1.3rem var(--f-tit); }
.fpr-visor__cerrar { position: absolute; top: 18px; right: 18px; width: 50px; height: 50px; border-radius: 50%; border: 1px solid rgba(255, 255, 255, .3); background: transparent; color: #fff; cursor: pointer; display: grid; place-items: center; }

/* ==========================================================================
   Reservas
   ========================================================================== */
.fpr-reserva, .fpr-reserva > *, .fpr-campo, .fpr-campo > * { min-width: 0; }
.fpr-reserva { display: grid; gap: 18px; padding: clamp(22px, 3.4vw, 40px); border-radius: var(--r); background: var(--papel); border: 1px solid var(--linea); box-shadow: var(--sombra); }
.fpr-reserva__fila { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.fpr-reserva__fila--3 { grid-template-columns: 1.2fr 1fr 1fr; }
.fpr-campo { display: grid; gap: 7px; }
.fpr-campo > span { font-weight: 600; font-size: .9rem; }
.fpr-campo small { font-weight: 400; color: var(--gris); }
.fpr-campo input, .fpr-campo select, .fpr-campo textarea { width: 100%; min-height: 54px; padding: 12px 16px; border-radius: 14px; border: 1.5px solid var(--linea); background: #fff; font: 500 1rem var(--f-txt); color: var(--tinta); transition: border-color .2s, box-shadow .2s; -webkit-appearance: none; appearance: none; }
.fpr-campo select { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%23201915' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 16px center; padding-right: 40px; }
.fpr-campo textarea { min-height: 84px; resize: vertical; }
.fpr-campo input:focus, .fpr-campo select:focus, .fpr-campo textarea:focus { outline: none; border-color: var(--rojo); box-shadow: 0 0 0 4px rgba(189, 44, 68, .12); }
.fpr-campo.is-error input, .fpr-campo.is-error select { border-color: var(--rojo); }
.fpr-reserva__pref { border: 0; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.fpr-reserva__pref legend { font-weight: 600; font-size: .9rem; margin-bottom: 8px; width: 100%; padding: 0; }
.fpr-reserva__extra { display: flex; flex-wrap: wrap; gap: 8px; }
.fpr-op { position: relative; cursor: pointer; }
.fpr-op input { position: absolute; opacity: 0; pointer-events: none; }
.fpr-op > span { display: inline-flex; align-items: center; gap: 8px; min-height: 46px; padding: 0 18px; border-radius: 999px; border: 1.5px solid var(--linea); background: #fff; font-weight: 600; font-size: .92rem; transition: all .2s; }
.fpr-op input:checked + span { background: var(--tinta); border-color: var(--tinta); color: var(--crema); }
.fpr-op input:focus-visible + span { outline: 3px solid var(--rojo); outline-offset: 2px; }
.fpr-op--check input:checked + span::before { content: "✓"; font-weight: 800; }
.fpr-reserva__error { margin: 0 !important; padding: 12px 16px; border-radius: 12px; background: var(--rojo-claro); color: var(--rojo-osc); font-weight: 600; }
.fpr-reserva__error[hidden] { display: none; }
.fpr-reserva .fpr-btn { width: 100%; }
.fpr-reserva__nota { margin: 0 !important; font-size: .88rem; color: var(--gris); text-align: center; }
.fpr-reserva__nota a { color: var(--rojo); font-weight: 600; }
.fpr-reserva__ok { padding: 30px; text-align: center; display: grid; gap: 12px; justify-items: center; }
.fpr-reserva__ok .fpr-ico { width: 54px; height: 54px; color: #2f9d5c; }

/* ==========================================================================
   Pie
   ========================================================================== */
.fpr-pie { background: var(--tinta); color: var(--crema); padding: clamp(70px, 9vw, 120px) var(--margen) 30px; }
.fpr-pie__in { max-width: var(--ancho); margin: 0 auto; display: grid; grid-template-columns: 1.3fr 1fr 1fr 1fr; gap: 40px; }
.fpr-pie__mono { width: 86px; color: var(--crema); margin-bottom: 18px; }
.fpr-pie__nombre { font: 500 1.6rem/1.1 var(--f-marca); letter-spacing: .1em; text-transform: uppercase; margin: 0 0 8px !important; }
.fpr-pie__lema { font: italic 400 1.1rem/1.4 var(--f-tit); color: rgba(246, 239, 228, .7); max-width: 26ch; margin: 0 !important; }
.fpr-pie__tit { font: 700 .74rem/1.2 var(--f-txt) !important; letter-spacing: .2em !important; text-transform: uppercase; color: var(--oro); margin-bottom: 16px !important; }
.fpr-pie__col { display: grid; gap: 10px; align-content: start; font-size: .95rem; }
.fpr-pie address { font-style: normal; line-height: 1.6; color: rgba(246, 239, 228, .82); }
.fpr-pie__link { display: inline-flex; align-items: center; gap: 8px; color: rgba(246, 239, 228, .82) !important; transition: color .2s; width: fit-content; }
.fpr-pie__link:hover { color: #fff !important; }
.fpr-pie__link .fpr-ico { color: var(--oro); }
.fpr-pie__tel { font: 400 1.4rem/1.2 var(--f-tit); color: var(--crema) !important; }
.fpr-pie .fpr-horario div { border-color: rgba(246, 239, 228, .14); }
.fpr-pie .fpr-horario dd { color: rgba(246, 239, 228, .82); }
.fpr-pie__abajo { max-width: var(--ancho); margin: clamp(50px, 7vw, 90px) auto 0; padding-top: 24px; border-top: 1px solid rgba(246, 239, 228, .14); display: flex; flex-wrap: wrap; gap: 14px 30px; align-items: center; justify-content: space-between; font-size: .84rem; color: rgba(246, 239, 228, .55); }
.fpr-pie__abajo p { margin: 0 !important; }
.fpr-pie__abajo ul { display: flex; flex-wrap: wrap; gap: 18px; }
.fpr-pie__abajo a:hover { color: #fff; }
.fpr-pie__credito a { color: rgba(246, 239, 228, .8) !important; text-decoration: underline !important; text-underline-offset: 3px; }

/* ==========================================================================
   Animaciones al aparecer
   ========================================================================== */
.fpr-js [data-fpr-revela] { opacity: 0; transform: translateY(28px); transition: opacity 1s var(--ease), transform 1s var(--ease); transition-delay: calc(var(--d, 0) * 90ms); }
.fpr-js [data-fpr-revela].is-visto { opacity: 1; transform: none; }
.fpr-js [data-fpr-revela="izq"] { transform: translateX(-36px); }
.fpr-js [data-fpr-revela="der"] { transform: translateX(36px); }
.fpr-js [data-fpr-revela="zoom"] { transform: scale(.94); }
.fpr-js [data-fpr-revela].is-visto { transform: none; }

/* ==========================================================================
   Pantallas medianas y móvil
   ========================================================================== */
@media (max-width: 1180px) {
	.fpr-cab__tel { display: none; }
	.fpr-nav ul { gap: 22px; }
	.fpr-dest { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.fpr-casa__datos { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.fpr-pie__in { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 960px) {
	body.fpr-sitio { --cab: 66px; font-size: 16px; }
	.fpr-nav { display: none; }
	.fpr-cab__menu { display: inline-flex; }
	.fpr-cab__acc .fpr-btn { display: none; }
	.fpr-cab__in { gap: 14px; }
	.fpr-marca .fpr-monograma { width: 40px; height: 40px; }
	.fpr-marca__nom { font-size: 1.05rem; }

	.fpr-hero { min-height: 0; padding-top: 18px; padding-bottom: 40px; align-items: flex-start; }
	.admin-bar .fpr-hero { min-height: 0; }
	.fpr-hero__in { grid-template-columns: 1fr; gap: 18px; }
	.fpr-hero__txt { gap: 14px; }
	.fpr-h1 { font-size: clamp(2.5rem, 10.6vw, 4.4rem) !important; }
	.fpr-hero__arte { width: min(80vw, 44vh, 460px); order: 2; margin-top: 4px; }
	.fpr-hero__tarjeta--1 { left: -10%; width: 36%; }
	.fpr-hero__tarjeta--2 { display: none; }
	.fpr-hero__sello { width: 26%; right: -3%; }

	.fpr-arroz__in, .fpr-raices__in, .fpr-setas__in, .fpr-visita__in, .fpr-historia, .fpr-cabpag__in, .fpr-reservas__in { grid-template-columns: minmax(0, 1fr); }
	.fpr-arroz__fotos { margin: 0 6% 40px 0; }
	.fpr-setas__txt, .fpr-setas__fotos, .fpr-reservas__lado { position: static; }
	.fpr-raices__mapa { max-width: 520px; margin: 0 auto; }
	.fpr-asados__in { grid-template-columns: 1fr; min-height: 0; }
	.fpr-asados__foto { aspect-ratio: 4 / 3.2; }
	.fpr-asados__foto::after { background: linear-gradient(180deg, transparent 50%, #17110e); }
	.fpr-casa__rejilla { grid-template-columns: 1fr 1fr; grid-template-rows: 220px 180px 180px; }
	.fpr-casa__rejilla figure:nth-child(1) { grid-column: span 2; grid-row: auto; }
	.fpr-casa__rejilla figure:nth-child(4) { grid-column: span 2; }
	.fpr-resenas__pista { grid-auto-columns: 84%; }
	.fpr-insta { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.fpr-historia--al-reves .fpr-historia__foto { order: 0; }
	.fpr-equipo { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.fpr-carta__lista { grid-template-columns: 1fr; }
	.fpr-carta__barra-in { flex-wrap: wrap; }
	.fpr-carta__secs { order: 2; flex-basis: 100%; }
	.fpr-carta__herr { width: 100%; }
	.fpr-carta__buscar { flex: 1; }
	.fpr-carta__buscar input, .fpr-carta__buscar input:focus { width: 100%; }

	.fpr-barra { position: fixed; left: 0; right: 0; bottom: 0; z-index: 980; display: grid; grid-template-columns: repeat(4, 1fr); background: var(--tinta); padding: 6px 6px calc(6px + env(safe-area-inset-bottom)); box-shadow: 0 -10px 30px rgba(32, 25, 21, .25); transition: transform .35s var(--ease); }
	.fpr-barra a { display: grid; justify-items: center; gap: 3px; padding: 8px 4px; color: var(--crema) !important; font: 600 .72rem/1 var(--f-txt); border-radius: 12px; }
	.fpr-barra .fpr-ico { width: 22px; height: 22px; }
	.fpr-barra a.fpr-barra__rojo { background: var(--rojo); }
	.fpr-barra.is-oculta { transform: translateY(110%); }
	body.fpr-sitio { padding-bottom: 72px; }
	.fpr-pie { padding-bottom: 40px; }
}

@media (max-width: 640px) {
	.fpr-hero__txt .fpr-btns { flex-wrap: nowrap; gap: 10px; width: 100%; }
	.fpr-hero__txt .fpr-btn { flex: 1 1 0; min-width: 0; padding: 0 12px; min-height: 52px; font-size: .95rem; }
	.fpr-hero__txt .fpr-btn .fpr-ico { display: none; }
	.fpr-hero__prueba > span { display: none; }
	.fpr-hero__lead { font-size: 1rem; }
	.fpr-hero__lead .fpr-solo-ancho { display: none; }
	.fpr-hero__prueba { font-size: .85rem; gap: 8px 16px; }
	.fpr-hero__arte { width: min(70vw, 31vh); margin-top: 0; }
	.fpr-hero__tarjeta--1 { width: 40%; left: -12%; bottom: 2%; }
	.fpr-hero__tarjeta figcaption { font-size: .7rem; }
	.fpr-btns .fpr-btn { flex: 1 1 auto; padding: 0 20px; }
	.fpr-dest { grid-template-columns: 1fr; }
	.fpr-dest__item { flex-direction: row; }
	.fpr-dest__foto { width: 38%; aspect-ratio: auto; flex: none; }
	.fpr-dest__txt { padding: 14px; }
	.fpr-dest__nom { font-size: 1.12rem !important; }
	.fpr-dest__desc { display: none; }
	.fpr-dest__pie .fpr-al { display: none; }
	.fpr-casa__datos { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.fpr-calendario__meses, .fpr-calendario__fila { grid-template-columns: 74px repeat(12, 1fr); gap: 2px; }
	.fpr-calendario__meses span { font-size: .55rem; }
	.fpr-reserva__fila, .fpr-reserva__fila--3 { grid-template-columns: 1fr; }
	.fpr-arroz__hora { left: 12px; top: 12px; padding: 10px 14px; }
	.fpr-arroz__hora b { font-size: 1.45rem; }
	.fpr-plato.tiene-foto { grid-template-columns: 70px minmax(0, 1fr); }
	.fpr-plato__foto { width: 70px; height: 70px; }
	.fpr-plato.tiene-foto .fpr-plato__precios { grid-column: 2; text-align: left; }
	.fpr-plato:not(.tiene-foto) { grid-template-columns: 1fr; }
	.fpr-plato:not(.tiene-foto) .fpr-plato__precios { text-align: left; }
	.fpr-precios--col { flex-direction: row; align-items: baseline; gap: 6px 16px; }
	.fpr-carta__sec-cab { grid-template-columns: 1fr; }
	.fpr-pie__in { grid-template-columns: 1fr; gap: 34px; }
	.fpr-opiniones__nota { justify-items: start; text-align: left; }
	.fpr-opiniones__nota .fpr-nota { align-items: flex-start; }
	.fpr-mapa { min-height: 380px; }
	.fpr-raiz { grid-template-columns: 72px 1fr; }
	.fpr-raiz__foto { width: 72px; height: 72px; }
	.fpr-carta__herr .fpr-chip span { display: none; }
}

@media (max-width: 782px) {
	.admin-bar .fpr-cab { top: 46px; }
	.admin-bar .fpr-carta__barra { top: calc(var(--cab) + 46px); }
}

@media (prefers-reduced-motion: reduce) {
	.fpr-sitio *, .fpr-sitio *::before, .fpr-sitio *::after { animation: none !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
	.fpr-js [data-fpr-revela] { opacity: 1; transform: none; }
}

/* ==========================================================================
   Impresión de la carta
   ========================================================================== */
@media print {
	.fpr-cab, .fpr-cab-hueco, .fpr-barra, .fpr-menu-movil, .fpr-pie, .fpr-carta__barra, .fpr-carta__imprimir, .fpr-visor, .fpr-llamada, .fpr-cabpag__foto, #wpadminbar { display: none !important; }
	body.fpr-sitio { background: #fff; font-size: 11pt; padding: 0; }
	.fpr-cabpag { padding: 0 0 12pt; }
	.fpr-carta__sec { padding: 14pt 0 0; break-inside: avoid-page; }
	.fpr-carta__lista { grid-template-columns: 1fr 1fr; }
	.fpr-plato { padding: 6pt 0; break-inside: avoid; }
	.fpr-plato.tiene-foto { grid-template-columns: minmax(0, 1fr) auto; }
	.fpr-plato__foto { display: none; }
	.fpr-plato[hidden], .fpr-carta__sec[hidden] { display: grid !important; }
}

/* Ajustes finos */
.fpr-lead--claro { color: rgba(255, 255, 255, .88) !important; }
.fpr-sec--rojo .fpr-h2 em { color: #ffd9a0; }
.fpr-carta-sec { padding-top: 0 !important; }
.fpr-sec--rojo .fpr-btn--linea { color: #fff; }

/* ==========================================================================
   Reservas en línea (formulario que reserva de verdad)
   ========================================================================== */
.fpr-rw { position: relative; }
.fpr-rw.is-gestion .fpr-rw__form { display: none; }
.fpr-rw__form { gap: 30px; }
.fpr-rw__cab { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: -6px; }
.fpr-rw__al-momento { display: inline-flex; align-items: center; gap: 8px; margin: 0 !important; padding: 7px 14px 7px 10px; border-radius: 999px; background: #e5f2e9; color: #1f6a3f; font-weight: 700; font-size: .86rem; }
.fpr-rw__al-momento .fpr-ico { width: 18px; height: 18px; padding: 2px; border-radius: 50%; background: #2f8a55; color: #fff; stroke-width: 2.4; }
.fpr-rw__paso { display: grid; gap: 14px; min-width: 0; margin: 0; padding: 0; border: 0; }
.fpr-rw__paso legend { display: flex; align-items: center; gap: 12px; margin: 0 0 14px; padding: 0; font: 500 clamp(1.2rem, 2vw, 1.4rem)/1.2 var(--f-tit); color: var(--tinta); }
.fpr-rw__n { flex: none; display: inline-flex; align-items: center; justify-content: center; width: 30px; height: 30px; border-radius: 50%; background: var(--tinta); color: var(--crema); font: 700 .85rem/1 var(--f-txt); }
.fpr-rw__ayuda { margin: -4px 0 0 !important; font-size: .88rem; color: var(--gris); }
.fpr-rw__ayuda a { color: var(--rojo); font-weight: 600; }
.fpr-rw__ayuda[hidden] { display: none; }

.fpr-rw__chips { display: flex; flex-wrap: wrap; gap: 8px; }
.fpr-rw__chip { min-width: 52px; height: 52px; padding: 0 12px; border: 1.5px solid var(--linea); border-radius: 14px; background: #fff; color: var(--tinta); font: 700 1.05rem/1 var(--f-txt); font-variant-numeric: tabular-nums; cursor: pointer; transition: background .2s, border-color .2s, color .2s, transform .2s; }
.fpr-rw__chip:hover { border-color: var(--tinta); }
.fpr-rw__chip[aria-pressed="true"] { background: var(--tinta); border-color: var(--tinta); color: var(--crema); transform: translateY(-1px); box-shadow: 0 8px 18px -10px rgba(32, 25, 21, .7); }

.fpr-rw__dias { display: flex; gap: 8px; margin: 0 -4px; padding: 2px 4px 10px; overflow-x: auto; scroll-snap-type: x proximity; scrollbar-width: thin; }
.fpr-rw__dia { position: relative; flex: none; display: grid; justify-items: center; align-content: center; gap: 1px; min-width: 74px; min-height: 84px; padding: 10px 8px; border: 1.5px solid var(--linea); border-radius: 16px; background: #fff; color: var(--tinta); font-family: var(--f-txt); cursor: pointer; scroll-snap-align: start; transition: background .2s, border-color .2s, color .2s; }
.fpr-rw__dia:hover:not(:disabled) { border-color: var(--tinta); }
.fpr-rw__dia small { font-size: .78rem; font-weight: 700; color: var(--gris); text-transform: capitalize; }
.fpr-rw__dia b { font: 500 1.5rem/1.1 var(--f-tit); }
.fpr-rw__dia span { font-size: .74rem; font-weight: 600; color: var(--gris); text-transform: capitalize; }
.fpr-rw__dia[aria-pressed="true"] { background: var(--tinta); border-color: var(--tinta); color: var(--crema); }
.fpr-rw__dia[aria-pressed="true"] small, .fpr-rw__dia[aria-pressed="true"] span { color: rgba(246, 239, 228, .72); }
.fpr-rw__dia:disabled { cursor: not-allowed; opacity: .42; background: transparent; }
.fpr-rw__otro { border-style: dashed; gap: 6px; overflow: hidden; }
.fpr-rw__otro .fpr-ico { width: 22px; height: 22px; color: var(--rojo); }
.fpr-rw__otro span { font-size: .78rem; color: var(--tinta); }
.fpr-rw__otro input { position: absolute; inset: 0; width: 100%; height: 100%; min-height: 0; padding: 0; border: 0; opacity: 0; cursor: pointer; }

.fpr-rw__zonas { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 10px; }
.fpr-rw__zona { position: relative; display: block; cursor: pointer; }
.fpr-rw__zona input { position: absolute; opacity: 0; pointer-events: none; }
.fpr-rw__zona-in { display: grid; grid-template-columns: auto minmax(0, 1fr); column-gap: 12px; row-gap: 2px; align-items: center; height: 100%; min-height: 78px; padding: 14px 16px; border: 1.5px solid var(--linea); border-radius: 16px; background: #fff; transition: border-color .2s, box-shadow .2s, background .2s; }
.fpr-rw__zona-in .fpr-ico { grid-row: span 2; width: 30px; height: 30px; color: var(--rojo); }
.fpr-rw__zona-in b { font-size: 1rem; font-weight: 700; line-height: 1.2; }
.fpr-rw__zona-in small { font-size: .82rem; color: var(--gris); line-height: 1.3; }
.fpr-rw__zona:hover .fpr-rw__zona-in { border-color: rgba(32, 25, 21, .4); }
.fpr-rw__zona input:checked + .fpr-rw__zona-in { border-color: var(--tinta); background: #fff; box-shadow: inset 0 0 0 1.5px var(--tinta), 0 10px 24px -14px rgba(32, 25, 21, .6); }
.fpr-rw__zona input:focus-visible + .fpr-rw__zona-in { outline: 3px solid var(--rojo); outline-offset: 2px; }
.fpr-rw__zona input:disabled + .fpr-rw__zona-in { cursor: not-allowed; opacity: .55; background: transparent; }
.fpr-rw__zona.is-lleno small { color: var(--rojo); font-weight: 600; }

.fpr-rw__horas { display: grid; gap: 18px; min-height: 96px; }
.fpr-rw__turno p { margin: 0 0 10px !important; font: 700 .74rem/1 var(--f-txt); letter-spacing: .16em; text-transform: uppercase; color: var(--gris); }
.fpr-rw__turno div { display: grid; grid-template-columns: repeat(auto-fill, minmax(78px, 1fr)); gap: 8px; }
.fpr-rw__hora { height: 50px; padding: 0; border: 1.5px solid var(--linea); border-radius: 13px; background: #fff; color: var(--tinta); font: 700 1rem/1 var(--f-txt); font-variant-numeric: tabular-nums; cursor: pointer; transition: background .2s, border-color .2s, color .2s, transform .2s, box-shadow .2s; }
.fpr-rw__hora:hover:not(:disabled) { border-color: var(--tinta); }
.fpr-rw__hora[aria-pressed="true"] { background: var(--rojo); border-color: var(--rojo); color: #fff; transform: translateY(-1px); box-shadow: 0 10px 22px -10px rgba(189, 44, 68, .8); }
.fpr-rw__hora:disabled { border-style: dashed; background: transparent; color: rgba(32, 25, 21, .28); text-decoration: line-through; cursor: not-allowed; }
.fpr-rw__buscando { margin: 0 !important; font-size: .9rem; color: var(--gris); }
.fpr-rw__esqueleto { display: grid; grid-template-columns: repeat(auto-fill, minmax(78px, 1fr)); gap: 8px; }
.fpr-rw__esqueleto i { height: 50px; border-radius: 13px; background: linear-gradient(90deg, rgba(32, 25, 21, .05) 0%, rgba(32, 25, 21, .1) 50%, rgba(32, 25, 21, .05) 100%); background-size: 200% 100%; animation: fpr-rw-brillo 1.3s ease-in-out infinite; }
@keyframes fpr-rw-brillo { 0% { background-position: 100% 0; } 100% { background-position: -100% 0; } }
.fpr-rw__aviso { display: grid; justify-items: start; gap: 12px; padding: 18px 20px; border-radius: 16px; background: #fff; border: 1.5px dashed var(--linea); }
.fpr-rw__aviso p { margin: 0 !important; font-weight: 600; line-height: 1.5; }
.fpr-rw__aviso .fpr-btn { min-height: 46px; padding: 0 20px; }
.fpr-rw__trampa { position: absolute !important; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.fpr-rw .fpr-btn--grande { white-space: normal; text-align: center; line-height: 1.25; padding-top: 12px; padding-bottom: 12px; }
.fpr-rw__legal { margin: -14px 0 0 !important; font-size: .78rem; color: var(--gris); text-align: center; }

/* Reserva hecha, ver o cancelar */
.fpr-rw__fin { scroll-margin-top: calc(var(--cab) + 20px); }
.fpr-rw__fin[hidden] { display: none; }
.fpr-rw__exito { display: grid; justify-items: center; gap: 16px; padding: clamp(26px, 4vw, 46px) clamp(20px, 3.4vw, 40px); border: 1px solid var(--linea); border-radius: var(--r); background: var(--papel); box-shadow: var(--sombra); text-align: center; animation: fpr-rw-entra .5s var(--ease) both; }
@keyframes fpr-rw-entra { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }
.fpr-rw__exito h3 { margin: 0; font: 500 clamp(1.9rem, 3.4vw, 2.6rem)/1.1 var(--f-tit); }
.fpr-rw__exito .fpr-ceja { margin: 0 !important; }
.fpr-rw__check { display: flex; align-items: center; justify-content: center; width: 86px; height: 86px; border-radius: 50%; background: #e5f2e9; color: #2f8a55; animation: fpr-rw-pop .55s .1s var(--ease) both; }
.fpr-rw__check .fpr-ico { width: 46px; height: 46px; stroke-width: 2.2; }
.fpr-rw__check.is-gris { background: rgba(32, 25, 21, .07); color: var(--gris); }
@keyframes fpr-rw-pop { from { transform: scale(.5); opacity: 0; } 70% { transform: scale(1.08); } to { transform: none; opacity: 1; } }
.fpr-rw__ticket { position: relative; display: grid; gap: 4px; width: 100%; max-width: 460px; padding: 22px 24px; border-radius: 18px; background: #fff; box-shadow: 0 1px 2px rgba(32, 25, 21, .06), 0 12px 30px -16px rgba(32, 25, 21, .35); }
.fpr-rw__ticket::before, .fpr-rw__ticket::after { content: ""; position: absolute; top: 50%; width: 22px; height: 22px; margin-top: -11px; border-radius: 50%; background: var(--papel); }
.fpr-rw__ticket::before { left: -11px; }
.fpr-rw__ticket::after { right: -11px; }
.fpr-rw__ticket p { margin: 0 !important; }
.fpr-rw__ticket-dia { font-weight: 700; color: var(--tinta-2); }
.fpr-rw__ticket-hora { font: 500 3rem/1 var(--f-tit); color: var(--rojo); letter-spacing: -.02em; }
.fpr-rw__ticket-pie { margin-top: 10px !important; padding-top: 12px; border-top: 1.5px dashed var(--linea); font-size: .9rem; color: var(--gris); }
.fpr-rw__ticket-pie b { color: var(--tinta); letter-spacing: .04em; }
.fpr-rw__estado { justify-self: center; margin-bottom: 6px !important; padding: 5px 12px; border-radius: 999px; background: #e5f2e9; color: #1f6a3f; font-size: .78rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.fpr-rw__estado.is-cancelada, .fpr-rw__estado.is-no_vino { background: var(--rojo-claro); color: var(--rojo-osc); }
.fpr-rw__estado.is-terminada { background: rgba(32, 25, 21, .07); color: var(--gris); }
.fpr-rw__exito.is-cancelada .fpr-rw__ticket-hora { color: var(--gris); text-decoration: line-through; }
.fpr-rw__exito-txt { max-width: 46ch; margin: 0 !important; color: var(--tinta-2); line-height: 1.55; }
.fpr-rw__exito .fpr-btns { justify-content: center; }
.fpr-rw__otra { margin-top: 2px; padding: 6px 4px; border: 0; background: none; color: var(--gris); font: 600 .92rem var(--f-txt); text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
.fpr-rw__otra:hover { color: var(--tinta); }
.fpr-rw__cancelar.is-seguro { background: var(--rojo); border-color: var(--rojo); color: #fff !important; }

@media (max-width: 640px) {
	.fpr-rw__form { gap: 26px; }
	.fpr-rw__chip { min-width: 48px; height: 48px; }
	.fpr-rw__chips { gap: 6px; }
	.fpr-rw__dia { min-width: 66px; min-height: 78px; }
	.fpr-rw__zonas { grid-template-columns: minmax(0, 1fr); }
	.fpr-rw__zona-in { min-height: 64px; padding: 12px 14px; }
	.fpr-rw__turno div, .fpr-rw__esqueleto { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 6px; }
	.fpr-rw__hora { height: 46px; font-size: .95rem; }
	.fpr-rw__ticket-hora { font-size: 2.6rem; }
}
.fpr-rw__form[hidden] { display: none; }

/* Selector de idioma en la cabecera y en el menú del móvil */
.fpr-cab__idioma { flex: none; }
.fpr-cab__idioma button { min-width: 38px; height: 32px; font-size: .74rem; }
.fpr-menu-movil__idioma { justify-self: start; }
@media (max-width: 640px) {
	.fpr-cab__in { gap: 12px; }
	.fpr-cab__acc { gap: 8px; }
	.fpr-cab__idioma { padding: 2px; }
	.fpr-cab__idioma button { min-width: 32px; height: 30px; font-size: .7rem; }
	.fpr-marca { gap: 10px; }
	.fpr-marca__nom { font-size: .98rem; letter-spacing: .08em; white-space: nowrap; }
	.fpr-marca__sub { letter-spacing: .18em; white-space: nowrap; }
}
@media (max-width: 400px) {
	.fpr-marca .fpr-monograma { width: 40px; height: 40px; }
	.fpr-marca__nom { font-size: .9rem; letter-spacing: .06em; }
	.fpr-cab__menu { width: 42px; height: 42px; }
}
@media (max-width: 370px) {
	.fpr-marca__sub { display: none; }
}
@media (max-width: 340px) {
	.fpr-cab .fpr-marca__txt { display: none; }
}
