/* =========================================================
   Duna · café · brasa · patio — Alhama de Murcia
   Identidad: web-prompt.md (tokens, tipografía, sistema gráfico)
   ========================================================= */
:root{
  --azulejo:#17807F;      /* color de marca · 30 % */
  --azulejo-hondo:#0F5B5C;/* texto de marca, botones */
  --arena:#EFE5D2;        /* fondo dominante · 60 % */
  --cal:#FAF6EE;          /* fondo alterno, tarjetas */
  --noche:#132322;        /* texto principal, secciones de noche */
  --cornisa:#E2957F;      /* acento cálido · 10 % (solo sobre oscuro como texto) */
  --barro:#B2502A;        /* brasa, precios destacados, CTA */
  --cielo:#8FC3DA;        /* mañana, café, degradados */

  --linea:rgba(19,35,34,.14);
  --sombra:0 10px 30px -12px rgba(19,35,34,.28);
  --radio:18px;
  --wrap:1180px;
  --gutter:16px;
  --barra-movil:0px;

  --f-serif:"Lora",Georgia,"Times New Roman",serif;
  --f-sans:"Inter",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --f-mono:"DM Mono",ui-monospace,"Cascadia Mono",Consolas,monospace;

  /* Sistema gráfico */
  --p-azulejo:
    radial-gradient(circle at 50% 50%, transparent 38%, rgba(255,255,255,.22) 39%, rgba(255,255,255,.22) 44%, transparent 45%),
    linear-gradient(45deg, transparent 46%, rgba(255,255,255,.18) 47%, rgba(255,255,255,.18) 53%, transparent 54%),
    linear-gradient(-45deg, transparent 46%, rgba(255,255,255,.18) 47%, rgba(255,255,255,.18) 53%, transparent 54%);
  --p-dunas:repeating-radial-gradient(ellipse at 50% 120%, var(--arena) 0 12px, #E4D5B9 12px 14px);
  --p-cielo:linear-gradient(180deg, var(--cielo), #CFE6F0 60%, var(--cal));
  --p-brasa:radial-gradient(circle at 40% 110%, #E0662F, var(--barro) 45%, #3A1D12);
  --p-toldo:repeating-linear-gradient(90deg, var(--azulejo) 0 32px, var(--arena) 32px 64px);
}

/* ---------- Base ---------- */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:84px}
body{
  margin:0;background:var(--arena);color:var(--noche);
  font:400 16px/1.6 var(--f-sans);
  overflow-x:hidden;
  padding-bottom:var(--barra-movil);
}
img,svg{max-width:100%;display:block}
a{color:var(--azulejo-hondo);text-underline-offset:3px}
h1,h2,h3{font-family:var(--f-serif);font-weight:600;margin:0;text-wrap:balance}
h1{font-size:40px;line-height:1.05;letter-spacing:-.01em}
h2{font-size:28px;line-height:1.15}
h3{font-size:20px;line-height:1.25}
h1 em,h2 em,h3 em{font-style:italic}
p{margin:0 0 1em}
:focus-visible{outline:3px solid var(--azulejo-hondo);outline-offset:3px;border-radius:6px}
.noche :focus-visible,.hero :focus-visible,.pie :focus-visible{outline-color:var(--cielo)}
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.salto{position:absolute;left:12px;top:-60px;z-index:100;background:var(--noche);color:var(--arena);padding:10px 14px;border-radius:10px}
.salto:focus{top:12px}

.wrap{width:min(100% - 2*var(--gutter), var(--wrap));margin-inline:auto}
.seccion{padding:72px 0}
.label,.chip,.mono{font-family:var(--f-mono);font-size:12px;line-height:1.3;letter-spacing:.1em;text-transform:uppercase}
.kicker{display:inline-block;color:var(--azulejo-hondo);margin-bottom:14px}
.noche .kicker{color:var(--cielo)}
.intro{font-size:17px;max-width:60ch}
.cabecera-seccion{margin-bottom:36px}
.cabecera-seccion h2{margin-bottom:12px}

/* ---------- Chips ---------- */
.chip{
  display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:500;
  border:1px solid currentColor;border-radius:999px;padding:4px 10px;white-space:nowrap;
}
.chip--firma{color:var(--barro)}
.noche .chip--firma{color:var(--cornisa)}

/* ---------- Botones ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:10px;
  min-height:48px;padding:12px 22px;border-radius:999px;border:2px solid transparent;
  font:600 16px/1.2 var(--f-sans);text-decoration:none;cursor:pointer;
  transition:transform .2s ease, background-color .2s ease, box-shadow .2s ease;
}
.btn svg{width:20px;height:20px;flex:none}
.btn--barro{background:var(--barro);color:var(--cal)}
.btn--barro:hover{background:#9C4423}
.btn--hondo{background:var(--azulejo-hondo);color:var(--cal)}
.btn--hondo:hover{background:#0B4748}
.btn--claro{background:transparent;color:var(--arena);border-color:rgba(239,229,210,.7)}
.btn--claro:hover{background:rgba(239,229,210,.12)}
.btn--linea{background:transparent;color:var(--azulejo-hondo);border-color:var(--azulejo-hondo)}
.btn--linea:hover{background:rgba(15,91,92,.08)}
.btn:active{transform:translateY(1px)}

/* ---------- Logo ---------- */
.logo{display:inline-flex;align-items:center;gap:10px;text-decoration:none;color:var(--noche)}
.logo svg{width:56px;height:32px}
.logo__nombre{font:italic 600 26px/1 var(--f-serif)}
.logo__desc{display:block;font-family:var(--f-mono);font-size:10px;letter-spacing:.22em;color:var(--azulejo-hondo);margin-top:3px;font-style:normal;font-weight:500}
.simbolo .arco{stroke-dasharray:160;stroke-dashoffset:0}
.simbolo .ola{transform-box:fill-box}
.cargado .cabecera .simbolo .arco{animation:arco 900ms cubic-bezier(.6,0,.2,1) both}
.cargado .cabecera .simbolo .ola1{animation:ola 1.2s ease-in-out 600ms 1 both}
.cargado .cabecera .simbolo .ola2{animation:ola 1.2s ease-in-out 750ms 1 both}
@keyframes arco{from{stroke-dashoffset:160}to{stroke-dashoffset:0}}
@keyframes ola{0%,100%{transform:translateX(0)}35%{transform:translateX(-6px)}70%{transform:translateX(5px)}}

/* ---------- Cabecera ---------- */
.cabecera{
  position:sticky;top:0;z-index:50;
  background:rgba(239,229,210,.94);backdrop-filter:saturate(1.2) blur(10px);-webkit-backdrop-filter:saturate(1.2) blur(10px);
  border-bottom:1px solid var(--linea);
}
.cabecera__fila{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:68px}
.nav{display:none}
.nav ul{list-style:none;margin:0;padding:0;display:flex;gap:4px;align-items:center}
.nav a{display:inline-flex;align-items:center;min-height:44px;padding:0 12px;color:var(--noche);text-decoration:none;font-weight:500;border-radius:999px}
.nav a:hover{background:rgba(23,128,127,.1)}
.idioma{font-family:var(--f-mono);font-size:12px;letter-spacing:.1em}
.idioma a,.idioma span{min-height:44px;display:inline-flex;align-items:center;padding:0 6px}
.idioma [aria-current]{color:var(--azulejo-hondo);font-weight:500;text-decoration:underline;text-underline-offset:4px}
.cabecera__acciones{display:flex;align-items:center;gap:8px}
.cabecera .btn{min-height:44px;padding:10px 18px;font-size:15px}
.cabecera .btn--reservar{display:none}
.hamburguesa{
  width:48px;height:48px;border-radius:999px;border:1px solid var(--linea);background:var(--cal);
  display:inline-grid;place-items:center;cursor:pointer;color:var(--noche)
}
.hamburguesa span{display:block;width:20px;height:2px;background:currentColor;border-radius:2px;position:relative;transition:transform .2s}
.hamburguesa span::before,.hamburguesa span::after{content:"";position:absolute;left:0;width:20px;height:2px;background:currentColor;border-radius:2px;transition:transform .2s}
.hamburguesa span::before{top:-6px}.hamburguesa span::after{top:6px}
.hamburguesa[aria-expanded="true"] span{background:transparent}
.hamburguesa[aria-expanded="true"] span::before{transform:translateY(6px) rotate(45deg)}
.hamburguesa[aria-expanded="true"] span::after{transform:translateY(-6px) rotate(-45deg)}

.menu-movil{border-top:1px solid var(--linea);padding:8px 0 20px}
.menu-movil[hidden]{display:none}
.menu-movil ul{list-style:none;margin:0;padding:0}
.menu-movil li a{display:flex;align-items:center;min-height:52px;font:italic 500 24px/1 var(--f-serif);color:var(--noche);text-decoration:none;border-bottom:1px solid var(--linea)}
.menu-movil .idioma{margin-top:12px}

/* ---------- Hero ---------- */
.hero{position:relative;color:var(--arena);overflow:hidden;isolation:isolate;min-height:clamp(560px, calc(100svh - 68px - var(--barra-movil)), 760px);display:flex;align-items:flex-end}
.hero__escena{position:absolute;inset:0;z-index:-2}
.hero__escena svg{width:100%;height:100%}
/* Veladura --noche al 55 % por la izquierda (más densa abajo en móvil para legibilidad) */
.hero::before{
  content:"";position:absolute;inset:0;z-index:-1;
  background:
    linear-gradient(0deg, rgba(19,35,34,.72) 0%, rgba(19,35,34,.35) 55%, rgba(19,35,34,0) 80%),
    linear-gradient(90deg, rgba(19,35,34,.55) 0%, rgba(19,35,34,.55) 35%, rgba(19,35,34,.15) 75%, rgba(19,35,34,0) 100%);
}
.hero__contenido{padding:120px 0 28px;width:min(100% - 2*var(--gutter), var(--wrap));margin-inline:auto}
.hero h1{max-width:12ch;font-size:44px;color:var(--cal)}
.hero h1 em{color:var(--cal)}
.hero__sub{font-size:17px;max-width:40ch;margin:16px 0 22px;color:var(--arena)}
.hero__ctas{display:flex;flex-wrap:wrap;gap:12px}
.hero__ctas .btn{flex:1 1 200px}
.hero__plano{
  position:absolute;right:12px;top:12px;font-size:10px;color:var(--noche);
  background:rgba(250,246,238,.82);padding:5px 9px;border-radius:999px
}
.hero__cerrado{margin:14px 0 0;max-width:46ch;font-size:15px;color:var(--arena)}
.hero__cerrado[hidden]{display:none}

/* Estado «Abierto ahora» */
.estado{
  display:inline-flex;align-items:center;gap:8px;min-height:32px;padding:6px 12px 6px 10px;border-radius:999px;
  font-family:var(--f-mono);font-size:12px;letter-spacing:.08em;text-transform:uppercase;font-weight:500;
  background:var(--cal);color:var(--azulejo-hondo)
}
.estado::before{content:"";width:9px;height:9px;border-radius:50%;background:var(--azulejo);box-shadow:0 0 0 3px rgba(23,128,127,.25)}
.estado[data-estado="pronto"]{color:var(--barro)}
.estado[data-estado="pronto"]::before{background:var(--barro);box-shadow:0 0 0 3px rgba(178,80,42,.25)}
.estado[data-estado="cerrado"]{color:var(--noche)}
.estado[data-estado="cerrado"]::before{background:#6B7C7B;box-shadow:none}
.cargado .estado[data-estado="abierto"]::before{animation:latido 2.4s ease-in-out infinite}
@keyframes latido{50%{box-shadow:0 0 0 6px rgba(23,128,127,0)}}

/* ---------- Hoy en Duna ---------- */
.hoy{padding:0;margin-top:-1px;background:var(--noche);position:relative}
.hoy::before{content:"";display:block;height:12px;background-color:var(--azulejo);background-image:var(--p-azulejo);background-size:48px 48px}
.hoy__grid{display:grid;gap:12px;padding:28px 0 36px}
.hoy__titulo{color:var(--cielo);margin-bottom:4px}
.tarjeta-hoy{
  background:var(--cal);color:var(--noche);border-radius:var(--radio);padding:20px 20px 18px;
  display:flex;flex-direction:column;gap:6px;min-height:100%
}
.tarjeta-hoy .label{color:var(--azulejo-hondo)}
.tarjeta-hoy h3{font-style:italic}
.tarjeta-hoy p{margin:0;font-size:15px}
.tarjeta-hoy .precio{font:600 22px/1.2 var(--f-sans);font-variant-numeric:tabular-nums;color:var(--barro)}
.tarjeta-hoy .precio small{font:500 12px/1 var(--f-mono);letter-spacing:.08em;color:var(--noche);margin-left:6px;text-transform:uppercase}

/* ---------- Las horas de Duna ---------- */
.horas{position:relative;overflow:hidden;background:var(--p-cielo)}
@supports (animation-timeline: view()){
  .horas{
    background:linear-gradient(180deg, var(--cielo) 0%, #CFE6F0 22%, #F1D6B8 45%, var(--cornisa) 58%, #3B4B4C 78%, var(--noche) 100%);
    background-size:100% 400%;
    animation:cielo-scroll linear both;animation-timeline:view();animation-range:entry 30% exit 70%;
  }
  .horas__sol{animation:sol-scroll linear both;animation-timeline:view();animation-range:entry 30% exit 70%}
}
@keyframes cielo-scroll{from{background-position:0 0}to{background-position:0 100%}}
@keyframes sol-scroll{
  0%{transform:translate(0, 40px)}
  50%{transform:translate(calc(50vw - 40px), -10px)}
  100%{transform:translate(calc(100vw - 100px), 60px);opacity:.3}
}
.horas__sol{position:absolute;left:16px;top:6px;width:64px;height:64px;pointer-events:none;z-index:1}
.horas__panel{background:var(--cal);border-radius:var(--radio);padding:24px 20px;max-width:620px;margin-bottom:28px;position:relative}
.horas__panel p{margin:0}
.linea-horas{list-style:none;margin:0;padding:0;display:grid;gap:12px;position:relative}
.parada{
  position:relative;background:var(--cal);border-radius:var(--radio);padding:16px 18px 16px 64px;
  box-shadow:var(--sombra)
}
.parada::before{
  content:"";position:absolute;left:24px;top:22px;width:14px;height:14px;border-radius:50%;
  background:var(--cal);border:3px solid var(--azulejo)
}
.parada:nth-child(4)::before{border-color:var(--barro)}
.parada:nth-child(5)::before{border-color:var(--noche);background:var(--noche)}
.parada time{display:block;color:var(--azulejo-hondo);margin-bottom:2px}
.parada h3{font-style:italic;font-size:20px}
.parada p{margin:4px 0 0;font-size:15px}

/* ---------- Platos bandera ---------- */
.bandera{background:var(--cal)}
.bandera__grid{display:grid;gap:20px}
.plato{
  background:var(--arena);border-radius:var(--radio);overflow:hidden;display:flex;flex-direction:column;
  transition:transform .25s ease, box-shadow .25s ease
}
.plato:hover{transform:translateY(-4px);box-shadow:var(--sombra)}
.plato__cuerpo{padding:20px 20px 22px;display:flex;flex-direction:column;gap:8px;flex:1}
.plato__cuerpo p{margin:0;font-size:15px}
.plato__pie{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:auto;padding-top:10px}
.precio-grande{font:600 22px/1 var(--f-sans);font-variant-numeric:tabular-nums;color:var(--barro)}

/* Marcadores de foto (sin stock): patrones de marca + nombre del plano */
.foto{position:relative;aspect-ratio:4/3;background-color:var(--azulejo)}
.foto--azulejo{background-color:var(--azulejo);background-image:var(--p-azulejo);background-size:48px 48px}
.foto--cielo{background:var(--p-cielo)}
.foto--brasa{background:var(--p-brasa)}
.foto--dunas{background:var(--p-dunas)}
.foto--noche{background-color:var(--noche);background-image:var(--p-azulejo);background-size:48px 48px}
.foto__plano{
  position:absolute;left:12px;bottom:12px;right:12px;width:fit-content;max-width:calc(100% - 24px);
  font-family:var(--f-mono);font-size:10px;line-height:1.35;letter-spacing:.1em;text-transform:uppercase;
  background:rgba(250,246,238,.92);color:var(--noche);padding:6px 10px;border-radius:10px
}
.foto__plano b{font-weight:500;color:var(--azulejo-hondo);display:block}
.foto svg.motivo{position:absolute;inset:0;margin:auto;width:44%;height:auto;opacity:.9}

/* ---------- La carta ---------- */
.carta{background:var(--arena)}
.carta .cabecera-seccion{display:grid;gap:16px}
.sello{
  display:inline-flex;align-items:center;gap:10px;width:fit-content;
  border:1.5px solid var(--azulejo-hondo);color:var(--azulejo-hondo);border-radius:999px;padding:8px 14px
}
.carta__herramientas{
  z-index:20;background:var(--arena);padding:12px 0 10px;
  border-bottom:1px solid var(--linea);display:grid;gap:10px
}
.buscador{position:relative}
.buscador input{
  width:100%;min-height:48px;border-radius:999px;border:1.5px solid var(--linea);background:var(--cal);
  padding:10px 16px 10px 44px;font:400 16px var(--f-sans);color:var(--noche)
}
.buscador input:focus-visible{outline:3px solid var(--azulejo-hondo);outline-offset:1px;border-color:transparent}
.buscador svg{position:absolute;left:16px;top:50%;transform:translateY(-50%);width:18px;height:18px;color:var(--azulejo-hondo)}
.desliza{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;padding:2px;margin:-2px;scroll-snap-type:x proximity}
.desliza::-webkit-scrollbar{display:none}
.filtro{
  appearance:none;background:transparent;color:var(--azulejo-hondo);cursor:pointer;min-height:40px;padding:6px 14px;
  scroll-snap-align:start
}
.filtro[aria-pressed="true"]{background:var(--azulejo-hondo);color:var(--cal);border-color:var(--azulejo-hondo)}
.anclas a{
  font-family:var(--f-mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;white-space:nowrap;
  color:var(--noche);text-decoration:none;min-height:36px;display:inline-flex;align-items:center;padding:0 10px;
  border-radius:999px;background:rgba(250,246,238,.7);scroll-snap-align:start
}
.anclas a:hover{background:var(--cal)}
.carta__cuerpo{display:grid;gap:44px;padding-top:32px}
.categoria h3{
  font-size:26px;font-style:italic;color:var(--azulejo-hondo);
  border-bottom:1.5px solid currentColor;padding-bottom:8px;margin-bottom:6px;display:flex;justify-content:space-between;align-items:baseline;gap:12px
}
.categoria:nth-child(even) h3{color:var(--barro)}
.categoria h3 .label{color:var(--noche);font-style:normal;font-family:var(--f-mono)}
.categoria ul{list-style:none;margin:0;padding:0}
.item{display:grid;grid-template-columns:1fr auto;gap:4px 16px;padding:14px 0;border-bottom:1px dashed rgba(19,35,34,.2)}
.item__nombre{font:600 18px/1.3 var(--f-serif)}
.item__nota{grid-column:1/-1;margin:0;font-size:15px;color:#3C4C4B}
.item__precio{font:600 17px/1.3 var(--f-sans);font-variant-numeric:tabular-nums;white-space:nowrap;color:var(--noche)}
.item__chips{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:6px;color:#45605F}
.item__chips .chip{font-size:10px;padding:2px 8px}
.item__chips .chip--firma{color:var(--barro)}
.alergenos{display:flex;gap:4px;flex-wrap:wrap}
.alergeno{font:500 10px/1 var(--f-mono);width:26px;height:26px;border-radius:50%;display:inline-grid;place-items:center;background:var(--cal);border:1px solid var(--linea)}
.carta__vacio{padding:28px 0;font-style:italic}
.carta__pie{display:grid;gap:16px;margin-top:40px;padding:22px;border-radius:var(--radio);background:var(--cal)}
.carta__pie p{margin:0;font-size:15px}
.carta__pie .btn{width:fit-content}

/* ---------- El patio ---------- */
.patio{background-color:var(--azulejo);background-image:var(--p-azulejo);background-size:48px 48px;color:var(--cal)}
.patio__caja{background:var(--noche);border-radius:var(--radio);padding:28px 22px;color:var(--arena);margin-bottom:24px;max-width:760px}
.patio__caja h2{color:var(--cal);margin-bottom:16px}
.patio__caja .kicker{color:var(--cielo)}
.patio__caja h2 em{color:var(--cornisa)}
.patio__caja p:last-child{margin:0}
.mosaico{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
.mosaico figure{margin:0;border-radius:14px;overflow:hidden;position:relative;aspect-ratio:1}
.mosaico figure .foto{aspect-ratio:auto;height:100%}
.mosaico .ancho{grid-column:span 2;aspect-ratio:2/1}
.patio .foto--azulejo{background-color:var(--azulejo-hondo)}

/* ---------- Reseñas ---------- */
.resenas{background:var(--p-dunas)}
.nota-google{display:flex;flex-wrap:wrap;align-items:center;gap:12px 18px;margin-top:6px}
.nota-google strong{font:600 44px/1 var(--f-serif);color:var(--noche)}
.estrellas{color:var(--barro);letter-spacing:2px;font-size:18px}
.resenas__grid{display:grid;gap:14px;margin-top:28px}
.resena{margin:0;background:var(--cal);border-radius:var(--radio);padding:22px;display:flex;flex-direction:column;gap:12px}
.resena blockquote{margin:0;font:italic 500 20px/1.35 var(--f-serif)}
.resena figcaption{display:flex;flex-direction:column;gap:4px;margin-top:auto;color:#3C4C4B}

/* ---------- Grupos ---------- */
.grupos{background:var(--noche);color:var(--arena)}
.grupos h2{color:var(--cal)}
.grupos h2 em{color:var(--cornisa)}
.grupos__grid{display:grid;gap:28px}
.grupos ul.tipos{list-style:none;margin:20px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:8px;color:var(--cielo)}
.formulario{background:var(--cal);color:var(--noche);border-radius:var(--radio);padding:22px;display:grid;gap:14px}
.formulario .fila{display:grid;gap:14px;grid-template-columns:1fr 1fr}
.campo{display:grid;gap:6px}
.campo label{font-family:var(--f-mono);font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--azulejo-hondo)}
.campo input,.campo select,.campo textarea{
  width:100%;min-height:48px;border-radius:12px;border:1.5px solid rgba(19,35,34,.25);background:#fff;
  padding:10px 12px;font:400 16px var(--f-sans);color:var(--noche)
}
.campo textarea{min-height:88px;resize:vertical}
.campo input:focus-visible,.campo select:focus-visible,.campo textarea:focus-visible{outline:3px solid var(--azulejo-hondo);outline-offset:1px}
.formulario .btn{width:100%}
.formulario small{color:#3C4C4B}

/* ---------- Cómo llegar ---------- */
.llegar{background:var(--cal)}
.llegar__grid{display:grid;gap:24px}
.mapa{display:block;position:relative;border-radius:var(--radio);overflow:hidden;background:var(--p-dunas);border:1px solid var(--linea);text-decoration:none;color:var(--noche)}
.mapa svg{width:100%;height:auto}
.mapa__pie{display:block;background:var(--noche);color:var(--arena);padding:12px 16px;font-size:11px}
.mapa:hover .mapa__pie{background:var(--azulejo-hondo)}
.nota-google{text-decoration:none;color:var(--noche)}
.nota-google > span{text-decoration:underline;text-underline-offset:3px;color:var(--azulejo-hondo)}
.datos-llegar{list-style:none;margin:0 0 20px;padding:0;display:grid;gap:12px}
.datos-llegar li{display:flex;gap:12px;align-items:flex-start}
.datos-llegar svg{width:22px;height:22px;flex:none;color:var(--azulejo-hondo);margin-top:2px}
.tabla-horario{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums;margin-top:8px}
.tabla-horario caption{text-align:left;font:italic 600 22px var(--f-serif);padding-bottom:8px}
.tabla-horario th,.tabla-horario td{padding:10px 8px;border-bottom:1px solid var(--linea);text-align:left}
.tabla-horario th{font-weight:500}
.tabla-horario td{font-family:var(--f-mono);font-size:13px;letter-spacing:.06em;text-align:right}
.tabla-horario tr.hoy-dia{background:rgba(23,128,127,.1)}
.tabla-horario tr.hoy-dia th::after{content:" · hoy";font-family:var(--f-mono);font-size:11px;color:var(--azulejo-hondo);letter-spacing:.08em}
html[lang="en"] .tabla-horario tr.hoy-dia th::after{content:" · today"}
.llegar__ctas{display:flex;flex-wrap:wrap;gap:10px;margin-top:20px}

/* ---------- Pie ---------- */
.pie{background:var(--noche);color:var(--arena);padding:0 0 32px}
.pie::before{content:"";display:block;height:12px;background:var(--p-toldo)}
.pie__grid{display:grid;gap:28px;padding-top:44px}
.pie .logo{color:var(--arena)}
.pie .logo__desc{color:var(--cielo)}
.pie a{color:var(--arena)}
.pie h2{font:500 12px/1.3 var(--f-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--cielo);margin-bottom:10px}
.pie ul{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.pie ul a{display:inline-flex;min-height:32px;align-items:center}
.pie__lema{font:italic 500 20px/1.3 var(--f-serif);color:var(--cornisa);margin-top:14px}
.pie__base{margin-top:36px;padding-top:18px;border-top:1px solid rgba(239,229,210,.18);font-size:13px;color:#C9C2B3}

/* ---------- Barra móvil fija ---------- */
.barra-movil{
  position:fixed;left:0;right:0;bottom:0;z-index:60;background:var(--noche);
  padding-bottom:env(safe-area-inset-bottom);
}
.barra-movil::before{content:"";display:block;height:12px;background:var(--p-toldo)}
.barra-movil ul{list-style:none;margin:0;padding:6px 8px;display:grid;grid-template-columns:repeat(3,1fr);gap:6px}
.barra-movil a{
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-height:52px;border-radius:12px;
  color:var(--arena);text-decoration:none;font-size:13px;font-weight:600
}
.barra-movil a svg{width:22px;height:22px}
.barra-movil a.wa{background:var(--azulejo-hondo)}
body{--barra-movil:calc(82px + env(safe-area-inset-bottom))}

/* ---------- Páginas legales ---------- */
.legal{padding:48px 0 72px}
.legal .wrap{max-width:760px}
.legal h1{font-size:40px;margin-bottom:20px}
.legal h2{font-size:24px;margin:32px 0 10px}
.legal .aviso{background:var(--cal);border-left:4px solid var(--barro);padding:14px 16px;border-radius:8px;font-size:15px}
.legal table{width:100%;border-collapse:collapse;margin:12px 0;font-size:15px}
.legal th,.legal td{text-align:left;padding:8px;border-bottom:1px solid var(--linea)}

/* ---------- Aparición suave ---------- */
.js .aparece{opacity:0;transform:translateY(16px);transition:opacity .7s ease, transform .7s ease}
.js .aparece.visible{opacity:1;transform:none}

/* =========================================================
   ≥ 600 px
   ========================================================= */
@media (min-width:600px){
  :root{--gutter:24px}
  .hoy__grid{grid-template-columns:repeat(3,1fr)}
  .hoy__titulo{grid-column:1/-1}
  .bandera__grid{grid-template-columns:repeat(2,1fr)}
  .bandera__grid .plato:first-child{grid-column:1/-1}
  .bandera__grid .plato:first-child .foto{aspect-ratio:16/7}
  .mosaico{grid-template-columns:repeat(3,1fr)}
  .mosaico .alto{grid-row:span 2;aspect-ratio:auto}
  .resenas__grid{grid-template-columns:repeat(2,1fr)}
  .hero__ctas .btn{flex:0 0 auto}
}

/* =========================================================
   ≥ 900 px (escritorio)
   ========================================================= */
@media (min-width:900px){
  body{font-size:17px;--barra-movil:0px}
  h1{font-size:56px}
  h2{font-size:36px}
  h3{font-size:24px}
  .seccion{padding:104px 0}
  .barra-movil{display:none}
  .hamburguesa,.menu-movil{display:none!important}
  .nav{display:block}
  .cabecera .btn--reservar{display:inline-flex}
  .hero{min-height:min(86vh,820px)}
  .hero h1{font-size:76px;max-width:11ch}
  .hero__sub{font-size:19px}
  .hero__contenido{padding:160px 0 72px}
  .hero__plano{right:24px;top:auto;bottom:24px}
  .hero::before{background:linear-gradient(90deg, rgba(19,35,34,.78) 0%, rgba(19,35,34,.55) 38%, rgba(19,35,34,.12) 70%, rgba(19,35,34,0) 100%)}
  .hoy__grid{grid-template-columns:auto repeat(3,1fr);align-items:stretch;gap:16px}
  .hoy__titulo{grid-column:auto;align-self:center;font-size:30px;max-width:6ch}

  .linea-horas{grid-template-columns:repeat(5,1fr);gap:14px;padding-top:44px}
  .linea-horas::before{content:"";position:absolute;left:0;right:0;top:12px;height:3px;border-radius:3px;background:linear-gradient(90deg,var(--azulejo),var(--cornisa),var(--noche))}
  .parada{padding:22px 18px 20px}
  .parada::before{left:18px;top:-40px;width:18px;height:18px}
  .parada h3{font-size:21px}

  .bandera__grid{grid-template-columns:1.3fr 1fr 1fr}
  .bandera__grid .plato:first-child{grid-column:auto}
  .bandera__grid .plato:first-child .foto{aspect-ratio:4/3}

  .carta .cabecera-seccion{grid-template-columns:1fr auto;align-items:end}
  .carta__layout{display:grid;grid-template-columns:240px 1fr;gap:48px;align-items:start}
  .carta__herramientas{position:sticky;top:96px;border:0;padding:0;background:none;gap:18px}
  .carta__herramientas .desliza{flex-wrap:wrap;overflow:visible}
  .anclas{flex-direction:column;align-items:flex-start}
  .anclas a{background:none;padding:0;min-height:30px}
  .anclas a:hover{text-decoration:underline}
  .carta__cuerpo{padding-top:0;display:block;columns:2;column-gap:48px}
  .categoria{break-inside:avoid;margin-bottom:44px}

  .patio__layout{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:28px;align-items:start}
  .patio__caja{position:sticky;top:100px;margin:0;padding:36px 32px}
  .resenas__grid{grid-template-columns:repeat(4,1fr)}
  .resenas .cabecera-seccion{display:flex;justify-content:space-between;align-items:end;gap:24px}
  .grupos__grid{grid-template-columns:1fr 1fr;gap:56px;align-items:center}
  .formulario{padding:32px}
  .llegar__grid{grid-template-columns:7fr 5fr;gap:48px;align-items:start}
  .pie__grid{grid-template-columns:1.4fr 1fr 1fr 1fr}
}
@media (min-width:1200px){
  .hero h1{font-size:88px}
}

/* ---------- Movimiento reducido ---------- */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
  .js .aparece{opacity:1;transform:none}
  .horas{background:var(--p-cielo)!important}
  .horas__sol{transform:none!important}
}

/* ---------- Impresión: «Descargar carta (PDF)» ---------- */
@media print{
  @page{margin:14mm}
  body{background:#fff;padding:0;font-size:11pt}
  body.imprimir-carta > *:not(main),
  body.imprimir-carta main > *:not(#carta),
  .carta__herramientas,.carta__pie .btn,.barra-movil,.cabecera{display:none!important}
  .carta{background:#fff;padding:0}
  .carta__layout{display:block}
  .carta__cuerpo{display:block;columns:2;column-gap:10mm}
  .categoria{break-inside:avoid;margin-bottom:8mm}
  .item{break-inside:avoid;padding:6px 0}
  .js .aparece{opacity:1;transform:none}
}
