/* ==========================================================================
   LAS MORERAS · Restaurante · Cehegín (Murcia)
   Hoja de estilos principal
   --------------------------------------------------------------------------
   1. Variables y base
   2. Tipografía y utilidades
   3. Navegación
   4. Hero
   5. Secciones
   6. Componentes (botones, tarjetas, imágenes, formularios)
   7. Galería y lightbox
   8. Footer y barra móvil
   9. Animaciones
   ========================================================================== */

/* 1. VARIABLES Y BASE ----------------------------------------------------- */
:root{
  /* Paleta */
  --crema:        #FBF7F0;
  --crema-2:      #F3EBDD;
  --crema-3:      #E8DECB;
  --marron:       #241A13;
  --marron-2:     #3B2C21;
  --marron-3:     #6B5A4A;
  --oliva:        #6E7A4F;
  --oliva-osc:    #4F5838;
  --dorado:       #B08D4F;
  --dorado-claro: #D8BC85;
  --texto:        #33271E;
  --texto-tenue:  #7A6A5B;
  --linea:        #DED3C0;
  --blanco:       #FFFFFF;

  /* Tipografía */
  --serif:    "Marcellus", "Georgia", "Times New Roman", serif;   /* titulares */
  --serif-it: "Lora", "Georgia", serif;                            /* cursivas y destacados */
  --sans:     "Jost", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;

  /* Medidas */
  --ancho: 1220px;
  --ancho-estrecho: 780px;
  --radio: 2px;
  --nav-h: 76px;
  --sep: clamp(64px, 9vw, 128px);
  --trans: 480ms cubic-bezier(.22,.61,.36,1);
}

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

html{ scroll-behavior:smooth; -webkit-text-size-adjust:100%; }
@media (prefers-reduced-motion: reduce){ html{ scroll-behavior:auto; } }

body{
  margin:0;
  background:var(--crema);
  color:var(--texto);
  font-family:var(--sans);
  font-size:17.5px;
  line-height:1.72;
  font-weight:400;
  letter-spacing:.004em;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
body.no-scroll{ overflow:hidden; }

img{ max-width:100%; display:block; }
a{ color:inherit; }

::selection{ background:var(--dorado-claro); color:var(--marron); }

:focus-visible{
  outline:2px solid var(--oliva);
  outline-offset:3px;
}

.skip-link{
  position:absolute; left:-9999px; top:0; z-index:999;
  background:var(--marron); color:var(--crema);
  padding:12px 20px; font-size:14px;
}
.skip-link:focus{ left:12px; top:12px; }

/* 2. TIPOGRAFÍA Y UTILIDADES ---------------------------------------------- */
h1,h2,h3,h4{
  font-family:var(--serif);
  font-weight:400;
  line-height:1.16;
  text-wrap:balance;
  margin:0 0 .5em;
  color:var(--marron);
  letter-spacing:-0.01em;
}
h1{ font-size:clamp(2.7rem, 7.4vw, 5rem); letter-spacing:.005em; }
h2{ font-size:clamp(1.95rem, 4.2vw, 3.05rem); }
h3{ font-size:clamp(1.25rem, 2vw, 1.6rem); }
h4{ font-size:1.15rem; }
p{ margin:0 0 1.1em; }
p:last-child{ margin-bottom:0; }

.eyebrow{
  font-family:var(--sans);
  font-size:.72rem;
  font-weight:600;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:var(--oliva);
  margin:0 0 18px;
  display:flex;
  align-items:center;
  gap:14px;
}
.eyebrow::after{
  content:""; flex:0 0 44px; height:1px; background:var(--dorado); opacity:.6;
}
.eyebrow.centrado{ justify-content:center; }
.eyebrow.centrado::before{
  content:""; flex:0 0 44px; height:1px; background:var(--dorado); opacity:.6;
}

.lead{
  font-size:clamp(1.05rem,1.6vw,1.2rem);
  color:var(--texto-tenue);
  line-height:1.75;
}

.contenedor{
  width:100%;
  max-width:var(--ancho);
  margin-inline:auto;
  padding-inline:22px;
}
.estrecho{ max-width:var(--ancho-estrecho); margin-inline:auto; }
.centrado{ text-align:center; }
.solo-movil{ display:none; }
.visually-hidden{
  position:absolute; width:1px; height:1px; padding:0; margin:-1px;
  overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0;
}

.seccion{ padding-block:var(--sep); position:relative; }
.seccion--crema{ background:var(--crema-2); }
.seccion--oscura{ background:var(--marron); color:var(--crema-2); }
.seccion--oscura h2,.seccion--oscura h3{ color:var(--crema); }
.seccion--oscura .lead{ color:#C9BCAA; }
.seccion--oscura .eyebrow{ color:var(--dorado-claro); }

.filete{
  width:52px; height:1px; background:var(--dorado);
  margin:26px 0; border:0;
}
.filete.centrado{ margin-inline:auto; }

/* 3. NAVEGACIÓN ----------------------------------------------------------- */
.nav{
  position:fixed; inset:0 0 auto 0; z-index:100;
  height:var(--nav-h);
  display:flex; align-items:center;
  background:transparent;
  transition:background var(--trans), box-shadow var(--trans), height var(--trans);
}
.nav__inner{
  width:100%; max-width:var(--ancho); margin-inline:auto;
  padding-inline:22px;
  display:flex; align-items:center; justify-content:space-between; gap:24px;
}
.marca{
  font-family:var(--serif);
  font-size:1.55rem; font-weight:400; letter-spacing:.19em;
  text-transform:uppercase; text-decoration:none;
  color:var(--crema); line-height:1;
  transition:color var(--trans);
}
.marca small{
  display:block; font-family:var(--sans); font-size:.56rem;
  letter-spacing:.3em; font-weight:500; opacity:.75; margin-top:5px;
}
.nav__links{
  display:flex; align-items:center; gap:34px;
  list-style:none; margin:0; padding:0;
}
.nav__links a{
  text-decoration:none; color:var(--crema);
  font-size:.83rem; font-weight:500; letter-spacing:.09em;
  text-transform:uppercase;
  position:relative; padding-block:6px;
  transition:color var(--trans), opacity var(--trans);
}
.nav__links a::after{
  content:""; position:absolute; left:0; bottom:0;
  width:0; height:1px; background:var(--dorado);
  transition:width var(--trans);
}
.nav__links a:hover::after,.nav__links a[aria-current="page"]::after{ width:100%; }

/* Estado con scroll o páginas interiores */
.nav.solida,.nav.interior{
  background:rgba(251,247,240,.96);
  backdrop-filter:blur(10px);
  box-shadow:0 1px 0 var(--linea);
}
.nav.solida .marca,.nav.interior .marca,
.nav.solida .nav__links a,.nav.interior .nav__links a{ color:var(--marron); }
.nav.solida .nav__burger span,.nav.interior .nav__burger span{ background:var(--marron); }

.nav__burger{
  display:none; width:44px; height:44px;
  background:none; border:0; cursor:pointer;
  padding:0; position:relative;
}
.nav__burger span{
  position:absolute; left:11px; width:22px; height:1.5px;
  background:var(--crema); transition:transform 320ms ease, opacity 200ms ease;
}
.nav__burger span:nth-child(1){ top:16px; }
.nav__burger span:nth-child(2){ top:22px; }
.nav__burger span:nth-child(3){ top:28px; }
.nav__burger[aria-expanded="true"] span:nth-child(1){ transform:translateY(6px) rotate(45deg); }
.nav__burger[aria-expanded="true"] span:nth-child(2){ opacity:0; }
.nav__burger[aria-expanded="true"] span:nth-child(3){ transform:translateY(-6px) rotate(-45deg); }

/* Panel móvil */
.menu-movil{
  position:fixed; inset:0; z-index:99;
  background:var(--marron);
  display:flex; flex-direction:column; justify-content:center;
  padding:100px 30px 40px;
  transform:translateY(-100%);
  transition:transform 520ms cubic-bezier(.65,0,.35,1);
  visibility:hidden;
}
.menu-movil.abierto{ transform:translateY(0); visibility:visible; }
.menu-movil ul{ list-style:none; margin:0 0 34px; padding:0; }
.menu-movil li{ border-bottom:1px solid rgba(216,188,133,.18); }
.menu-movil a{
  display:block; padding:17px 0; text-decoration:none;
  color:var(--crema); font-family:var(--serif); font-size:1.7rem;
}
.menu-movil .contacto-rapido{
  display:flex; flex-direction:column; gap:12px;
  font-size:.9rem; color:#C0B2A0;
}
.menu-movil .contacto-rapido a{
  font-family:var(--sans); font-size:.95rem; padding:0; color:var(--dorado-claro);
}

/* 4. HERO ----------------------------------------------------------------- */
.hero{
  position:relative;
  min-height:100svh;
  display:flex; align-items:flex-end;
  color:var(--crema);
  overflow:hidden;
}
.hero .hero__media{ position:absolute; inset:0; z-index:0; margin:0; }
.hero .hero__media img{ width:100%; height:100%; object-fit:cover; }
.hero .hero__media::after{
  content:""; position:absolute; inset:0;
  background:
    linear-gradient(180deg, rgba(20,14,9,.55) 0%, rgba(20,14,9,.20) 32%, rgba(20,14,9,.82) 100%);
}
.hero__contenido{
  position:relative; z-index:2;
  width:100%; max-width:var(--ancho); margin-inline:auto;
  padding:0 22px clamp(56px,9vh,104px);
}
.hero h1{
  color:var(--crema);
  font-size:clamp(3.3rem, 11vw, 7.4rem);
  letter-spacing:.03em;
  font-weight:400;
  margin:0 0 .12em;
  text-shadow:0 2px 40px rgba(0,0,0,.35);
}
.hero__sub{
  font-family:var(--serif-it);
  font-weight:400;
  font-size:clamp(1.3rem,2.7vw,1.95rem);
  color:var(--dorado-claro);
  margin:0 0 18px;
  font-style:italic;
}
.hero__texto{
  max-width:52ch; color:#E6DED2; font-size:1.05rem; margin:0 0 34px;
}
.hero__acciones{ display:flex; flex-wrap:wrap; gap:14px; margin-bottom:34px; }
.hero__lugar{
  display:flex; align-items:center; gap:12px;
  font-size:.74rem; letter-spacing:.24em; text-transform:uppercase;
  color:#CBBFB0;
}
.hero__lugar::before{ content:""; width:34px; height:1px; background:var(--dorado); }

.hero__scroll{
  position:absolute; right:26px; bottom:34px; z-index:2;
  writing-mode:vertical-rl;
  font-size:.62rem; letter-spacing:.28em; text-transform:uppercase;
  color:#BDB1A2; display:flex; align-items:center; gap:14px;
}
.hero__scroll::after{
  content:""; width:1px; height:56px; background:linear-gradient(var(--dorado),transparent);
  animation:desliza 2.6s ease-in-out infinite;
}
@keyframes desliza{ 0%,100%{ transform:scaleY(.4); transform-origin:top; } 50%{ transform:scaleY(1); transform-origin:top; } }

/* 6. COMPONENTES ---------------------------------------------------------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:10px;
  padding:16px 32px;
  font-family:var(--sans); font-size:.78rem; font-weight:600;
  letter-spacing:.16em; text-transform:uppercase; text-decoration:none;
  border:1px solid transparent; border-radius:var(--radio);
  cursor:pointer; text-align:center;
  transition:background var(--trans), color var(--trans), border-color var(--trans), transform 240ms ease;
}
.btn:active{ transform:translateY(1px); }
.btn--primario{ background:var(--dorado); color:#fff; border-color:var(--dorado); }
.btn--primario:hover{ background:var(--marron); border-color:var(--marron); }
.btn--oscuro{ background:var(--marron); color:var(--crema); border-color:var(--marron); }
.btn--oscuro:hover{ background:var(--oliva-osc); border-color:var(--oliva-osc); }
.btn--linea{ background:transparent; color:var(--crema); border-color:rgba(251,247,240,.55); }
.btn--linea:hover{ background:var(--crema); color:var(--marron); border-color:var(--crema); }
.btn--linea-osc{ background:transparent; color:var(--marron); border-color:var(--linea); }
.btn--linea-osc:hover{ background:var(--marron); color:var(--crema); border-color:var(--marron); }
.btn--pequeno{ padding:12px 22px; font-size:.72rem; }
.btn--nav{ padding:13px 24px; font-size:.72rem; }
.btn--bloque{ width:100%; }

.enlace-flecha{
  display:inline-flex; align-items:center; gap:10px;
  font-size:.78rem; font-weight:600; letter-spacing:.14em; text-transform:uppercase;
  text-decoration:none; color:var(--oliva-osc);
  border-bottom:1px solid var(--dorado); padding-bottom:6px;
  transition:gap var(--trans), color var(--trans);
}
.enlace-flecha:hover{ gap:16px; color:var(--marron); }

/* Imágenes y placeholders sustituibles */
.media{
  position:relative; margin:0; overflow:hidden;
  background:linear-gradient(135deg,var(--crema-3),var(--crema-2));
}
.media img{
  width:100%; height:100%; object-fit:cover;
  transition:transform 900ms cubic-bezier(.22,.61,.36,1), opacity 500ms ease;
}
.media--zoom:hover img{ transform:scale(1.05); }
.media__nota{ display:none; }
.media.falta img{ opacity:0; }
.media.falta{
  background:
    repeating-linear-gradient(45deg, rgba(176,141,79,.05) 0 12px, transparent 12px 24px),
    linear-gradient(150deg,var(--crema-3),var(--crema-2));
  border:1px dashed rgba(107,90,74,.32);
}
.media.falta .media__nota{
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:8px;
  position:absolute; inset:0; padding:22px; text-align:center;
}
.media__nota strong{
  font-family:var(--serif); font-size:1.05rem; color:var(--marron-2); font-weight:600;
}
.media__nota span{
  font-size:.66rem; letter-spacing:.16em; text-transform:uppercase; color:var(--marron-3);
}
.media__nota code{
  font-size:.68rem; letter-spacing:.02em; color:var(--oliva-osc);
  background:rgba(255,255,255,.6); padding:3px 8px; border-radius:2px;
}
.media__nota .icono{ font-size:1.4rem; opacity:.5; line-height:1; }

.ratio-4-5{ aspect-ratio:4/5; }
.ratio-1-1{ aspect-ratio:1/1; }
.ratio-3-2{ aspect-ratio:3/2; }
.ratio-16-9{ aspect-ratio:16/9; }
.ratio-3-4{ aspect-ratio:3/4; }

/* Historia */
.historia{ display:grid; grid-template-columns:1.05fr 1fr; gap:clamp(36px,6vw,84px); align-items:center; }
.historia__media{ position:relative; }
.historia__media .sello{
  position:absolute; right:-18px; bottom:-18px;
  width:126px; height:126px; border-radius:50%;
  background:var(--marron); color:var(--dorado-claro);
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  font-family:var(--serif); text-align:center; line-height:1.25;
  font-size:.95rem; letter-spacing:.06em; padding:14px;
}
.historia__media .sello span{
  font-family:var(--sans); font-size:.55rem; letter-spacing:.22em;
  text-transform:uppercase; opacity:.75; margin-top:4px;
}

/* Especialidades */
.rejilla-platos{
  display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(20px,3vw,38px);
}
.plato{ display:flex; flex-direction:column; }
.plato .media{ margin-bottom:20px; }
.plato h3{ margin:0 0 8px; }
.plato p{ color:var(--texto-tenue); font-size:.95rem; margin:0; }
.plato__etiqueta{
  font-size:.63rem; letter-spacing:.2em; text-transform:uppercase;
  color:var(--dorado); margin-bottom:9px; font-weight:600;
}

/* Experiencia */
.rejilla-experiencia{
  display:grid; grid-template-columns:repeat(3,1fr); gap:1px;
  background:rgba(216,188,133,.22);
  border:1px solid rgba(216,188,133,.22);
}
.experiencia-item{
  background:var(--marron); padding:38px 30px;
  transition:background var(--trans);
}
.experiencia-item:hover{ background:#2E221A; }
.experiencia-item h3{ font-size:1.28rem; margin:0 0 10px; }
.experiencia-item p{ color:#B7A896; font-size:.92rem; margin:0; }
.experiencia-item .num{
  font-family:var(--serif); font-size:.85rem; color:var(--dorado);
  letter-spacing:.1em; display:block; margin-bottom:16px;
}

/* Eventos */
.eventos{ display:grid; grid-template-columns:1fr 1.1fr; gap:clamp(36px,6vw,80px); align-items:center; }
.eventos__lista{ list-style:none; margin:26px 0 34px; padding:0; display:grid; gap:12px; }
.eventos__lista li{
  display:flex; gap:13px; align-items:flex-start;
  font-size:.97rem; color:var(--texto-tenue);
}
.eventos__lista li::before{
  content:""; flex:0 0 6px; width:6px; height:6px; margin-top:9px;
  background:var(--dorado); transform:rotate(45deg);
}
.eventos__medias{ display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.eventos__medias .media:first-child{ grid-row:span 2; }

/* 7. GALERÍA Y LIGHTBOX --------------------------------------------------- */
.galeria{
  display:grid; grid-template-columns:repeat(4,1fr);
  grid-auto-rows:200px; gap:14px;
}
.galeria .media{ cursor:zoom-in; height:100%; }
.galeria .media::after{
  content:""; position:absolute; inset:0;
  background:linear-gradient(180deg,transparent 55%,rgba(20,14,9,.5));
  opacity:0; transition:opacity var(--trans);
}
.galeria .media:not(.falta):hover::after{ opacity:1; }
.galeria .g-alta{ grid-row:span 2; }
.galeria .g-ancha{ grid-column:span 2; }

.lightbox{
  position:fixed; inset:0; z-index:200;
  background:rgba(18,12,8,.94);
  display:flex; align-items:center; justify-content:center;
  padding:5vw;
  opacity:0; visibility:hidden; transition:opacity 340ms ease;
}
.lightbox.abierto{ opacity:1; visibility:visible; }
.lightbox img{ max-width:100%; max-height:86vh; object-fit:contain; }
.lightbox__pie{
  position:absolute; bottom:22px; left:0; right:0; text-align:center;
  color:#CBBFB0; font-size:.78rem; letter-spacing:.14em; text-transform:uppercase;
}
.lightbox__cerrar,.lightbox__nav{
  position:absolute; background:none; border:1px solid rgba(251,247,240,.3);
  color:var(--crema); width:48px; height:48px; cursor:pointer;
  font-size:1.3rem; line-height:1; display:flex; align-items:center; justify-content:center;
  transition:background var(--trans);
}
.lightbox__cerrar:hover,.lightbox__nav:hover{ background:rgba(251,247,240,.14); }
.lightbox__cerrar{ top:20px; right:20px; }
.lightbox__nav.prev{ left:16px; top:50%; transform:translateY(-50%); }
.lightbox__nav.next{ right:16px; top:50%; transform:translateY(-50%); }

/* Reservas y formularios --------------------------------------------------- */
.reserva{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(36px,6vw,76px); align-items:start; }
.formulario{ display:grid; gap:18px; }
.campos{ display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.campo{ display:flex; flex-direction:column; gap:7px; }
.campo--ancho{ grid-column:1 / -1; }
.campo label{
  font-size:.68rem; letter-spacing:.16em; text-transform:uppercase;
  font-weight:600; color:var(--texto-tenue);
}
.campo input,.campo select,.campo textarea{
  font-family:var(--sans); font-size:.98rem; color:var(--texto);
  background:var(--blanco); border:1px solid var(--linea);
  border-radius:var(--radio); padding:13px 14px; width:100%;
  transition:border-color var(--trans), box-shadow var(--trans);
}
.campo textarea{ min-height:104px; resize:vertical; }
.campo input:focus,.campo select:focus,.campo textarea:focus{
  outline:none; border-color:var(--oliva); box-shadow:0 0 0 3px rgba(110,122,79,.14);
}
.campo input:invalid:not(:placeholder-shown){ border-color:#B4553F; }
.aviso-form{
  font-size:.82rem; color:var(--texto-tenue); line-height:1.6;
  border-left:2px solid var(--dorado); padding-left:14px;
}
.form-estado{
  font-size:.9rem; padding:14px 16px; border-radius:var(--radio);
  background:rgba(110,122,79,.1); border:1px solid rgba(110,122,79,.3);
  color:var(--oliva-osc);
}
.form-estado[hidden]{ display:none; }

.tarjeta-llamada{
  background:var(--crema); border:1px solid var(--linea);
  padding:clamp(28px,4vw,42px);
}
.seccion--oscura .tarjeta-llamada{
  background:rgba(251,247,240,.05); border-color:rgba(216,188,133,.28);
}
.tarjeta-llamada .telefono{
  font-family:var(--serif-it);
  font-style:italic; font-size:clamp(1.9rem,4vw,2.6rem);
  color:var(--dorado); text-decoration:none; display:block; margin:6px 0 4px;
  letter-spacing:.02em;
}
.tarjeta-llamada .telefono:hover{ text-decoration:underline; text-underline-offset:6px; }

/* Contacto */
.contacto{ display:grid; grid-template-columns:1fr 1.25fr; gap:clamp(32px,5vw,64px); align-items:start; }
.datos-contacto{ display:grid; gap:26px; }
.dato h4{
  font-family:var(--sans); font-size:.68rem; letter-spacing:.18em;
  text-transform:uppercase; color:var(--dorado); margin:0 0 7px; font-weight:600;
}
.dato p,.dato a{ margin:0; color:var(--texto); text-decoration:none; font-size:1rem; }
.dato a:hover{ color:var(--oliva-osc); }
.seccion--oscura .dato p,.seccion--oscura .dato a{ color:#DCD1C2; }

.horarios{ list-style:none; margin:0; padding:0; display:grid; gap:9px; }
.horarios li{
  display:flex; justify-content:space-between; gap:18px;
  font-size:.95rem; padding-bottom:9px; border-bottom:1px solid var(--linea);
}
.seccion--oscura .horarios li{ border-color:rgba(216,188,133,.2); }
.horarios li:last-child{ border-bottom:0; }
.horarios .dia{ color:var(--texto-tenue); }
.seccion--oscura .horarios .dia{ color:#A79684; }
.horarios .horas{ font-variant-numeric:tabular-nums; }

.mapa{
  width:100%; aspect-ratio:4/3; border:1px solid var(--linea);
  filter:grayscale(.35) sepia(.12); background:var(--crema-2);
}

/* Franja CTA */
.franja{
  background:var(--oliva-osc); color:var(--crema);
  padding-block:clamp(44px,6vw,68px); text-align:center;
}
.franja h2{ color:var(--crema); margin-bottom:14px; }
.franja p{ color:#DCE0CE; max-width:56ch; margin-inline:auto; margin-bottom:28px; }
.franja__acciones{ display:flex; gap:14px; justify-content:center; flex-wrap:wrap; }

/* CARTA -------------------------------------------------------------------- */
.carta-cabecera{
  padding-top:calc(var(--nav-h) + clamp(48px,7vw,84px));
  padding-bottom:clamp(32px,5vw,56px);
  background:var(--crema-2);
  text-align:center;
}
.carta-nav{
  position:sticky; top:var(--nav-h); z-index:40;
  background:rgba(251,247,240,.97);
  backdrop-filter:blur(8px);
  border-block:1px solid var(--linea);
}
.carta-nav ul{
  display:flex; gap:6px; list-style:none; margin:0; padding:0;
  overflow-x:auto; scrollbar-width:none; -webkit-overflow-scrolling:touch;
}
.carta-nav ul::-webkit-scrollbar{ display:none; }
.carta-nav a{
  display:block; white-space:nowrap; text-decoration:none;
  padding:16px 16px; font-size:.72rem; font-weight:600;
  letter-spacing:.13em; text-transform:uppercase; color:var(--texto-tenue);
  border-bottom:2px solid transparent;
  transition:color var(--trans), border-color var(--trans);
}
.carta-nav a:hover,.carta-nav a.activo{ color:var(--marron); border-color:var(--dorado); }

.carta-bloque{ padding-block:clamp(44px,6vw,72px); border-bottom:1px solid var(--linea); scroll-margin-top:calc(var(--nav-h) + 56px); }
.carta-bloque:last-of-type{ border-bottom:0; }
.carta-bloque__cabecera{ text-align:center; margin-bottom:clamp(28px,4vw,44px); }
.carta-bloque__cabecera p{ color:var(--texto-tenue); font-size:.96rem; max-width:60ch; margin-inline:auto; }
.carta-lista{
  display:grid; grid-template-columns:repeat(2,1fr);
  gap:6px clamp(32px,5vw,72px);
  max-width:1000px; margin-inline:auto;
}
.carta-item{
  display:flex; align-items:baseline; gap:12px;
  padding:14px 0; border-bottom:1px dotted var(--linea);
}
.carta-item__nombre{
  font-family:var(--serif); font-size:1.16rem; letter-spacing:.01em; color:var(--marron); font-weight:500;
}
.carta-item__desc{
  display:block; font-family:var(--sans); font-size:.86rem;
  color:var(--texto-tenue); margin-top:3px; line-height:1.55;
}
.carta-item__precio{
  margin-left:auto; font-variant-numeric:tabular-nums;
  color:var(--dorado); font-size:.95rem; white-space:nowrap;
}
.carta-aviso{
  text-align:center; font-size:.86rem; color:var(--texto-tenue);
  max-width:62ch; margin:0 auto; padding-top:8px;
}

/* Páginas de texto legal */
.pagina-texto{
  padding-top:calc(var(--nav-h) + clamp(48px,7vw,80px));
  padding-bottom:var(--sep);
}
.pagina-texto h2{ margin-top:2em; font-size:1.6rem; }
.pagina-texto h2:first-of-type{ margin-top:1em; }
.pagina-texto ul{ padding-left:20px; color:var(--texto-tenue); }
.pagina-texto li{ margin-bottom:8px; }

/* 8. FOOTER Y BARRA MÓVIL -------------------------------------------------- */
.pie{ background:var(--marron); color:#B7A896; padding-block:clamp(52px,7vw,80px) 0; }
.pie__top{
  display:grid; grid-template-columns:1.4fr 1fr 1fr 1.2fr; gap:clamp(28px,4vw,54px);
  padding-bottom:48px; border-bottom:1px solid rgba(216,188,133,.16);
}
.pie .marca{ color:var(--crema); font-size:1.6rem; }
.pie h4{
  font-family:var(--sans); font-size:.68rem; letter-spacing:.2em;
  text-transform:uppercase; color:var(--dorado); margin:0 0 16px; font-weight:600;
}
.pie ul{ list-style:none; margin:0; padding:0; display:grid; gap:10px; }
.pie a{ color:#B7A896; text-decoration:none; font-size:.93rem; transition:color var(--trans); }
.pie a:hover{ color:var(--dorado-claro); }
.pie__desc{ font-size:.92rem; margin-top:18px; max-width:34ch; line-height:1.7; }
.redes{ display:flex; gap:10px; margin-top:20px; }
.redes a{
  width:42px; height:42px; border:1px solid rgba(216,188,133,.3);
  display:flex; align-items:center; justify-content:center;
  transition:background var(--trans), border-color var(--trans);
}
.redes a:hover{ background:var(--dorado); border-color:var(--dorado); }
.redes svg{ width:17px; height:17px; fill:currentColor; }
.redes a:hover svg{ fill:#fff; }
.pie__bottom{
  display:flex; flex-wrap:wrap; gap:14px; justify-content:space-between;
  padding-block:26px; font-size:.8rem; color:#8B7C6D;
}
.pie__bottom nav{ display:flex; gap:20px; flex-wrap:wrap; }

.barra-movil{
  position:fixed; left:0; right:0; bottom:0; z-index:90;
  display:none; gap:1px;
  background:rgba(216,188,133,.25);
  box-shadow:0 -6px 24px rgba(20,14,9,.16);
  padding-bottom:env(safe-area-inset-bottom);
}
.barra-movil a{
  flex:1; display:flex; flex-direction:column; align-items:center; gap:4px;
  padding:11px 4px; text-decoration:none; background:var(--crema);
  color:var(--marron); font-size:.63rem; letter-spacing:.12em; text-transform:uppercase; font-weight:600;
}
.barra-movil a.destacado{ background:var(--dorado); color:#fff; }
.barra-movil svg{ width:18px; height:18px; fill:currentColor; }

/* 9. ANIMACIONES ----------------------------------------------------------- */
.aparece{ opacity:0; transform:translateY(26px); transition:opacity 900ms ease, transform 900ms cubic-bezier(.22,.61,.36,1); }
.aparece.visible{ opacity:1; transform:none; }
.aparece.d1{ transition-delay:110ms; }
.aparece.d2{ transition-delay:220ms; }
.aparece.d3{ transition-delay:330ms; }
.aparece.d4{ transition-delay:440ms; }
@media (prefers-reduced-motion: reduce){
  .aparece,.aparece.visible{ opacity:1; transform:none; transition:none; }
  .hero__scroll::after{ animation:none; }
  .media img{ transition:none; }
}

/* Portada sin fotografía: fondo oscuro para mantener el contraste del texto */
.hero .hero__media.falta{
  background:linear-gradient(155deg,#433326 0%,#2A1F17 55%,#1B120C 100%);
  border:0;
}
.hero .hero__media.falta .media__nota{ inset:calc(var(--nav-h) + 26px) 26px auto auto; align-items:flex-end; text-align:right; }
.hero .hero__media.falta .media__nota strong{ color:var(--crema); }
.hero .hero__media.falta .media__nota span{ color:#A0917F; }
.hero .hero__media.falta .media__nota code{ background:rgba(255,255,255,.08); color:var(--dorado-claro); }
.hero .hero__media.falta .media__nota .icono{ color:var(--dorado); }

/* Casilla de consentimiento ------------------------------------------------ */
.campo--check label{
  display:flex; align-items:flex-start; gap:11px;
  font-size:.86rem; letter-spacing:0; text-transform:none;
  font-weight:400; color:var(--texto-tenue); line-height:1.55; cursor:pointer;
}
.seccion--oscura .campo--check label{ color:#B7A896; }
.campo--check input[type="checkbox"]{
  appearance:none; flex:0 0 18px; width:18px; height:18px; margin-top:2px;
  border:1px solid var(--linea); background:var(--blanco);
  border-radius:2px; cursor:pointer; position:relative;
  transition:background var(--trans), border-color var(--trans);
}
.campo--check input[type="checkbox"]:checked{ background:var(--oliva-osc); border-color:var(--oliva-osc); }
.campo--check input[type="checkbox"]:checked::after{
  content:""; position:absolute; left:5px; top:1px; width:5px; height:10px;
  border:solid #fff; border-width:0 2px 2px 0; transform:rotate(42deg);
}
.campo--check a{ color:var(--dorado); text-underline-offset:3px; }

/* Mapa con consentimiento --------------------------------------------------- */
.mapa--bloqueado{
  display:flex; align-items:center; justify-content:center; padding:30px;
  background:
    repeating-linear-gradient(45deg, rgba(176,141,79,.045) 0 14px, transparent 14px 28px),
    linear-gradient(150deg,var(--crema-3),var(--crema-2));
  filter:none;
}
.mapa__aviso{ display:grid; gap:12px; justify-items:center; text-align:center; max-width:38ch; }
.mapa__aviso .icono{ font-size:1.5rem; color:var(--dorado); line-height:1; }
.mapa__aviso .direccion{ font-family:var(--serif); font-size:1.2rem; color:var(--marron); margin:0; }
.mapa__aviso .mini{ font-size:.82rem; color:var(--texto-tenue); margin:0; }
.mapa__aviso .mini-enlace{ font-size:.78rem; color:var(--texto-tenue); text-underline-offset:3px; }
iframe.mapa{ border:1px solid var(--linea); }

/* Aviso de cookies ---------------------------------------------------------- */
.banner-cookies{
  position:fixed; left:16px; right:16px; bottom:16px; z-index:120;
  display:flex; align-items:center; gap:20px; flex-wrap:wrap;
  background:var(--crema); border:1px solid var(--linea);
  box-shadow:0 12px 40px rgba(20,14,9,.18);
  padding:18px 22px;
  animation:sube 520ms cubic-bezier(.22,.61,.36,1) both;
}
.banner-cookies[hidden]{ display:none; }
.banner-cookies__texto{ flex:1 1 320px; }
.banner-cookies__texto strong{
  display:block; font-family:var(--sans); font-size:.68rem; font-weight:600;
  letter-spacing:.2em; text-transform:uppercase; color:var(--dorado); margin-bottom:6px;
}
.banner-cookies__texto p{ margin:0; font-size:.86rem; color:var(--texto-tenue); line-height:1.55; }
.banner-cookies__texto a{ color:var(--oliva-osc); text-underline-offset:3px; }
.banner-cookies__acciones{ display:flex; gap:10px; flex-wrap:wrap; }
@keyframes sube{ from{ opacity:0; transform:translateY(18px); } to{ opacity:1; transform:none; } }
@media (max-width:900px){
  .banner-cookies{ bottom:74px; }
  .banner-cookies__acciones .btn{ flex:1 1 auto; }
}
@media (prefers-reduced-motion: reduce){ .banner-cookies{ animation:none; } }

/* Cabecera de las páginas interiores --------------------------------------- */
.cabecera-pagina{
  padding-top:calc(var(--nav-h) + clamp(44px,6vw,78px));
  padding-bottom:clamp(26px,4vw,46px);
  background:var(--crema-2);
  text-align:center;
}
.cabecera-pagina h1{ font-size:clamp(2.2rem,4.8vw,3.5rem); margin-bottom:0; }
.cabecera-pagina .lead{ margin-top:16px; }

/* Anticipo de galería en la portada ---------------------------------------- */
.rejilla-teaser{ display:grid; grid-template-columns:repeat(4,1fr); gap:14px; }
@media (max-width:640px){ .rejilla-teaser{ grid-template-columns:repeat(2,1fr); gap:10px; } }

/* RESPONSIVE --------------------------------------------------------------- */
@media (max-width:1080px){
  .rejilla-platos{ grid-template-columns:repeat(2,1fr); }
  .galeria{ grid-template-columns:repeat(3,1fr); grid-auto-rows:180px; }
  .pie__top{ grid-template-columns:1fr 1fr; }
}

@media (max-width:900px){
  .nav__links{ display:none; }
  .nav__burger{ display:block; }
  .nav .btn--nav{ display:none; }
  .historia,.eventos,.reserva,.contacto{ grid-template-columns:1fr; }
  .rejilla-experiencia{ grid-template-columns:repeat(2,1fr); }
  .historia__media{ order:-1; }
  .eventos__medias{ order:-1; }
  .solo-movil{ display:flex; }
  .barra-movil{ display:flex; }
  body{ padding-bottom:62px; }
  .hero__scroll{ display:none; }
  .lightbox__nav{ width:42px; height:42px; }
}

@media (max-width:640px){
  body{ font-size:16px; }
  :root{ --nav-h:64px; }
  .rejilla-platos{ grid-template-columns:1fr; gap:34px; }
  .rejilla-experiencia{ grid-template-columns:1fr; }
  .galeria{ grid-template-columns:repeat(2,1fr); grid-auto-rows:150px; gap:10px; }
  .galeria .g-ancha{ grid-column:span 2; }
  .campos{ grid-template-columns:1fr; }
  .carta-lista{ grid-template-columns:1fr; }
  .pie__top{ grid-template-columns:1fr; gap:34px; }
  .pie__bottom{ flex-direction:column; }
  .hero{ min-height:92svh; }
  .hero__acciones .btn{ flex:1 1 100%; }
  .historia__media .sello{ width:104px; height:104px; right:-8px; bottom:-14px; font-size:.85rem; }
  .eventos__medias{ grid-template-columns:1fr 1fr; }
  .eventos__medias .media:first-child{ grid-row:auto; grid-column:span 2; }
  .franja__acciones .btn{ flex:1 1 100%; }
}

@media print{
  .nav,.barra-movil,.menu-movil,.hero__scroll,.lightbox,.franja{ display:none !important; }
  body{ background:#fff; color:#000; }
}
