/* =========================================================
   RAMË · STYLES · v3
   Paleta: Negro profundo + Melocotón + Dorado Mate
   Tipografía local: Bebas Neue (display) + Besley (body)
   ========================================================= */

@font-face {
  font-family: 'Bebas Neue';
  src: url('../fonts/bebas-neue.woff2') format('woff2');
  font-weight: 400; font-style: normal; font-display: swap;
}
@font-face {
  font-family: 'Besley';
  src: url('../fonts/besley-regular.woff2') format('woff2');
  font-weight: 400; font-style: normal; font-display: swap;
}
@font-face {
  font-family: 'Besley';
  src: url('../fonts/besley-italic.woff2') format('woff2');
  font-weight: 400; font-style: italic; font-display: swap;
}

:root{
  /* Color base */
  --black:        #0a0806;
  --black-soft:   #141010;
  --black-ink:    #1c1714;

  /* Acentos */
  --peach:        #f0a07b;   /* Melocotón · favorito de Juan */
  --peach-soft:   #f4bca0;
  --peach-deep:   #d88362;

  --gold:         #b8956a;   /* Dorado mate — ajustado */
  --gold-light:   #c9a875;
  --gold-bright:  #dbbd88;

  /* Texto (sin blanco puro) */
  --cream:        #ebe1d2;   /* blanco roto cálido · títulos */
  --cream-dim:    #c8beb0;   /* cuerpo de texto */
  --muted:        #8a7f74;
  --line:         rgba(235,225,210,.10);
  --line-strong:  rgba(235,225,210,.25);

  /* Tipografía */
  --font-display: 'Bebas Neue', 'Oswald', sans-serif;
  --font-body:    'Besley', 'Bitter', Georgia, serif;

  /* Curvas */
  --ease: cubic-bezier(.2,.8,.2,1);
}

*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  background:var(--black);
  color:var(--cream);
  font-family:var(--font-body);
  font-size:16px;
  line-height:1.65;
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
  font-weight:400;
}
a{color:inherit;text-decoration:none;transition:color .3s var(--ease);}
img{display:block;max-width:100%;}
button{font:inherit;border:none;background:none;cursor:pointer;color:inherit;}
::selection{background:var(--peach);color:var(--black);}

/* Utilitarios tipográficos */
.display, h1, h2, h3{
  font-family:var(--font-display);
  font-weight:400;
  letter-spacing:.02em;
  line-height:.95;
  color:var(--cream);
}
.eyebrow{
  font-family:var(--font-display);
  font-size:14px;
  letter-spacing:.35em;
  text-transform:uppercase;
  color:var(--peach);
  display:inline-flex;align-items:center;gap:14px;
}
.eyebrow::before,.eyebrow.ctr::after{
  content:"";width:36px;height:1px;background:currentColor;opacity:.7;
}
.eyebrow.gold{color:var(--gold-light);}

/* ===== NAV ===== */
.nav{
  position:fixed;top:0;left:0;right:0;z-index:80;
  display:flex;align-items:center;justify-content:space-between;
  padding:24px 44px;transition:all .45s var(--ease);
  mix-blend-mode:normal;
}
.nav.scrolled{
  padding:14px 44px;
  background:rgba(10,8,6,.82);
  backdrop-filter:blur(18px) saturate(140%);
  -webkit-backdrop-filter:blur(18px) saturate(140%);
  border-bottom:1px solid var(--line);
}
.nav-brand{
  font-family:var(--font-display);
  font-size:26px;letter-spacing:.4em;color:var(--cream);
  display:inline-flex;align-items:center;line-height:0;
}
.nav-brand em{color:var(--peach);font-style:normal;}
.nav-brand picture,.nav-brand .brand-logo{display:inline-block;line-height:0;}
.brand-logo{
  display:block;height:30px;width:auto;
  transition:opacity .3s ease, height .3s ease;
}
.nav-brand:hover .brand-logo{opacity:.78;}
.nav.scrolled .brand-logo{height:24px;}
@media (max-width:640px){
  .brand-logo{height:24px;}
  .nav.scrolled .brand-logo{height:22px;}
}
.nav-links{display:flex;gap:34px;align-items:center;}
.nav-links a{
  font-family:var(--font-display);
  font-size:14px;letter-spacing:.28em;text-transform:uppercase;color:var(--cream-dim);
  position:relative;padding:8px 0;
}
.nav-links a:hover{color:var(--cream);}
.nav-links a::after{
  content:"";position:absolute;left:0;bottom:0;height:1px;width:0;background:var(--peach);transition:width .35s var(--ease);
}
.nav-links a:hover::after{width:100%;}
.nav-cta{
  padding:12px 24px;border:1px solid var(--peach);color:var(--peach);
  font-family:var(--font-display);font-size:13px;letter-spacing:.3em;text-transform:uppercase;
  overflow:hidden;position:relative;transition:color .3s var(--ease);
}
.nav-cta span{position:relative;z-index:2;}
.nav-cta::before{
  content:"";position:absolute;inset:0;background:var(--peach);
  transform:translateY(101%);transition:transform .4s var(--ease);
}
.nav-cta:hover::before{transform:translateY(0);}
.nav-cta:hover{color:var(--black);}

/* =========================================================
   LANGUAGE SWITCHER · ES / EN
   ========================================================= */
.lang-switch{
  display:inline-flex;align-items:center;gap:2px;
  margin-right:16px;
  font-family:var(--font-display);font-size:12px;letter-spacing:.22em;
}
.lang-switch button{
  padding:8px 10px;
  color:var(--cream-dim);border:1px solid transparent;
  cursor:pointer;transition:all .3s ease;
  background:transparent;
  text-transform:uppercase;letter-spacing:.22em;
}
.lang-switch button:hover{color:var(--cream);}
.lang-switch button.is-active{
  color:var(--peach);border-color:var(--line-strong);
  background:rgba(240,160,123,.06);
}
.lang-switch .sep{color:var(--muted);opacity:.5;padding:0 2px;}

.mobile-lang{
  display:flex;gap:8px;justify-content:center;margin-top:30px;padding-top:24px;
  border-top:1px solid var(--line);
  opacity:0;transition:opacity .5s var(--ease) .5s;
}
.mobile-menu.is-open .mobile-lang{opacity:1;}
.mobile-lang button{
  font-family:var(--font-display);font-size:13px;letter-spacing:.3em;text-transform:uppercase;
  color:var(--cream-dim);padding:10px 18px;border:1px solid var(--line-strong);
  background:transparent;cursor:pointer;transition:all .3s ease;
}
.mobile-lang button.is-active{color:var(--peach);border-color:var(--peach);background:rgba(240,160,123,.08);}
.mobile-lang button:hover{color:var(--cream);}

.menu-toggle{
  display:none;width:38px;height:38px;position:relative;
  border:1px solid var(--line-strong);
  background:transparent;cursor:pointer;
  transition:border-color .3s ease, background .3s ease;
}
.menu-toggle:hover{border-color:var(--peach);}
.menu-toggle span{
  position:absolute;left:8px;right:8px;height:1.5px;background:var(--cream);
  transition:all .35s var(--ease);
  border-radius:2px;
}
.menu-toggle span:nth-child(1){top:12px;}
.menu-toggle span:nth-child(2){top:50%;transform:translateY(-50%);}
.menu-toggle span:nth-child(3){bottom:12px;}
.menu-toggle.is-open{border-color:var(--peach);background:rgba(240,160,123,.08);}
.menu-toggle.is-open span{background:var(--peach);}
.menu-toggle.is-open span:nth-child(1){top:50%;transform:translateY(-50%) rotate(45deg);}
.menu-toggle.is-open span:nth-child(2){opacity:0;}
.menu-toggle.is-open span:nth-child(3){bottom:50%;transform:translateY(50%) rotate(-45deg);}

/* Overlay menú móvil */
.mobile-menu{
  position:fixed;inset:0;z-index:70;
  background:linear-gradient(135deg, rgba(10,8,6,.98) 0%, rgba(26,15,10,.98) 100%);
  backdrop-filter:blur(20px);
  -webkit-backdrop-filter:blur(20px);
  opacity:0;pointer-events:none;
  transition:opacity .45s var(--ease);
  padding:100px 30px 40px;
  overflow-y:auto;
}
.mobile-menu.is-open{opacity:1;pointer-events:all;}
.mobile-menu-inner{
  max-width:500px;margin:0 auto;display:flex;flex-direction:column;gap:2px;
}
.mobile-menu a{
  font-family:var(--font-display);font-size:28px;letter-spacing:.18em;
  color:var(--cream);padding:18px 4px;text-transform:uppercase;
  border-bottom:1px solid var(--line);
  transform:translateY(20px);opacity:0;transition:all .5s var(--ease);
  transition-delay:0s;
}
.mobile-menu.is-open a{transform:translateY(0);opacity:1;}
.mobile-menu.is-open a:nth-child(1){transition-delay:.1s;}
.mobile-menu.is-open a:nth-child(2){transition-delay:.14s;}
.mobile-menu.is-open a:nth-child(3){transition-delay:.18s;}
.mobile-menu.is-open a:nth-child(4){transition-delay:.22s;}
.mobile-menu.is-open a:nth-child(5){transition-delay:.26s;}
.mobile-menu.is-open a:nth-child(6){transition-delay:.30s;}
.mobile-menu.is-open a:nth-child(7){transition-delay:.34s;}
.mobile-menu.is-open a:nth-child(8){transition-delay:.38s;}
.mobile-menu a:hover{color:var(--peach);padding-left:10px;}
.mobile-menu .mobile-cta{
  margin-top:24px;background:var(--peach);color:var(--black);
  text-align:center;letter-spacing:.28em;font-size:16px;padding:22px;
  border-bottom:none;
}
.mobile-menu .mobile-cta:hover{background:var(--peach-soft);padding-left:4px;}
.mobile-phones{
  margin-top:28px;display:flex;flex-direction:column;gap:14px;align-items:center;
  opacity:0;transition:opacity .5s var(--ease) .45s;
}
.mobile-menu.is-open .mobile-phones{opacity:1;}
.mobile-phones a{
  font-family:var(--font-body);font-size:16px;letter-spacing:.05em;
  color:var(--cream-dim);padding:8px 0;border:none;
}
.mobile-phones a:hover{color:var(--peach);padding-left:0;}

body.no-scroll{overflow:hidden;}

/* ===== HERO (Maiko-style, ultra-visual) ===== */
.hero{
  position:relative;width:100%;height:100vh;min-height:640px;
  overflow:hidden;display:grid;place-items:end center;padding-bottom:80px;
  color:var(--cream);
}
.hero::before,
.hero::after{
  content:"";position:absolute;inset:0;pointer-events:none;
}
.hero::before{
  /* Vignette cinematográfico suave · sin dobles gradientes superpuestos */
  background:
    linear-gradient(180deg, rgba(10,8,6,.45) 0%, transparent 25%, transparent 65%, rgba(10,8,6,.92) 100%),
    radial-gradient(ellipse at 50% 50%, transparent 45%, rgba(10,8,6,.35) 100%);
  z-index:3;
}
.hero-media{
  position:absolute;inset:0;z-index:1;background:#0a0806;
}
.hero-media img{
  width:100%;height:100%;object-fit:cover;display:block;
}
.hero-media .hero-slide{
  position:absolute;inset:0;display:block;
  opacity:0;
  animation:heroFade 18s ease-in-out infinite, slowZoom 22s ease-in-out infinite alternate;
}
.hero-media .hero-slide img{
  width:100%;height:100%;object-fit:cover;display:block;
  opacity:.88;
  filter:saturate(1.08) contrast(1.04);
}
.hero-media .slide-1{animation-delay:0s, 0s;}
.hero-media .slide-2{animation-delay:10s, 0s;}
@keyframes heroFade{
  0%   {opacity:0;}
  4%   {opacity:.72;}
  50%  {opacity:.72;}
  56%  {opacity:0;}
  100% {opacity:0;}
}
@keyframes slowZoom{from{transform:scale(1);}to{transform:scale(1.08);}}

.hero-locale{
  position:relative;height:18px;margin-top:18px;
}
.locale-label{
  position:absolute;left:50%;top:0;transform:translateX(-50%);
  font-family:var(--font-display);
  font-size:clamp(11px, 1.1vw, 13px);
  letter-spacing:.4em;text-transform:uppercase;
  color:var(--peach);opacity:0;white-space:nowrap;
  animation:localeFade 18s ease-in-out infinite;
}
.locale-label.slide-1{animation-delay:0s;}
.locale-label.slide-2{animation-delay:10s;}
@keyframes localeFade{
  0%   {opacity:0;}
  6%   {opacity:1;}
  50%  {opacity:1;}
  56%  {opacity:0;}
  100% {opacity:0;}
}

.hero-content{
  position:relative;z-index:3;text-align:center;padding:0 30px 20px;
  width:100%;max-width:1400px;
}
.hero-logo{
  display:block;
  width:clamp(220px, 38vw, 420px);
  max-width:92vw;
  margin:0 auto;
  filter:drop-shadow(0 4px 40px rgba(0,0,0,.6));
}
.hero-logo img{
  display:block;
  width:100%;
  height:auto;
  image-rendering:-webkit-optimize-contrast;
}
.hero-tagline{
  font-family:var(--font-body);
  font-style:italic;
  font-size:clamp(16px, 1.4vw, 20px);
  color:var(--cream-dim);
  letter-spacing:.25em;text-transform:uppercase;font-style:normal;
  margin-top:14px;
}
.hero-scroll{
  position:absolute;bottom:28px;left:50%;transform:translateX(-50%);z-index:3;
  font-family:var(--font-display);font-size:12px;letter-spacing:.4em;color:var(--cream-dim);
  display:flex;flex-direction:column;align-items:center;gap:10px;
}
.hero-scroll .bar{
  width:1px;height:46px;background:linear-gradient(180deg, var(--peach), transparent);
  animation:scroll 2.2s ease-in-out infinite;
}
@keyframes scroll{0%,100%{opacity:.4;transform:scaleY(1);}50%{opacity:1;transform:scaleY(1.2);}}

/* ===== SECTION BASE ===== */
section{position:relative;padding:160px 44px;}
.container{max-width:1360px;margin:0 auto;}
.center{text-align:center;}
.section-title{
  font-size:clamp(52px, 8vw, 128px);
  color:var(--cream);margin-bottom:28px;
}
.section-title em{color:var(--peach);font-style:normal;}
.section-lede{
  font-family:var(--font-body);font-size:18px;line-height:1.75;color:var(--cream-dim);
  max-width:640px;
}
.center .eyebrow{justify-content:center;}

/* ===== MANIFEST (negative-space statement like Maiko) ===== */
.manifest{
  padding:200px 44px;text-align:center;
  border-bottom:1px solid var(--line);
}
.manifest .quote{
  font-family:var(--font-body);
  font-size:clamp(26px, 3.2vw, 44px);
  line-height:1.35;color:var(--cream);
  max-width:980px;margin:30px auto 0;letter-spacing:.01em;
  font-style:italic;
}
.manifest .quote em{color:var(--peach);font-style:normal;}
.manifest .sig{
  margin-top:44px;font-family:var(--font-display);font-size:13px;letter-spacing:.4em;color:var(--gold-light);
}

/* ===== IMMERSION (full-bleed image stripe) ===== */
.immersion{
  position:relative;height:70vh;min-height:500px;
  padding:0;display:grid;place-items:center;overflow:hidden;
  border-top:1px solid var(--line);border-bottom:1px solid var(--line);
}
.immersion-bg{
  position:absolute;inset:0;
  background:
    linear-gradient(90deg, rgba(10,8,6,.75) 0%, rgba(10,8,6,.35) 50%, rgba(10,8,6,.85) 100%),
    linear-gradient(135deg, #3a1f16, #0e0806 70%);
}
.immersion-bg img{width:100%;height:100%;object-fit:cover;opacity:.7;}
.immersion-content{
  position:relative;z-index:2;text-align:center;padding:0 30px;
}
.immersion h2{
  font-size:clamp(54px, 10vw, 180px);
  color:var(--cream);line-height:.9;
}
.immersion h2 em{color:var(--peach);font-style:normal;display:block;font-size:.42em;letter-spacing:.4em;margin-top:24px;}

/* ===== LOCATIONS (two tiles) ===== */
.locations{padding:180px 44px;}
.locations-head{text-align:center;margin-bottom:90px;}
.locations-grid{
  display:grid;grid-template-columns:1fr 1fr;gap:24px;
}
.location-card{
  position:relative;aspect-ratio:3/4;overflow:hidden;
  background:linear-gradient(135deg, #2b1a12, #0a0806);
  border:1px solid var(--line);transition:transform .6s var(--ease), border-color .4s var(--ease);
}
.location-card:hover{border-color:var(--peach);transform:translateY(-4px);}
.location-card .bg{
  position:absolute;inset:0;
  background:
    radial-gradient(60% 50% at 30% 40%, rgba(240,160,123,.2), transparent 70%),
    linear-gradient(135deg, #2b1a12, #0a0806);
}
.location-card > img,
.location-card picture img{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  opacity:.62;transition:opacity .5s var(--ease), transform .8s var(--ease);
}
.location-card:hover > img,
.location-card:hover picture img{opacity:.85;transform:scale(1.05);}
.location-card::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(180deg, transparent 40%, rgba(10,8,6,.9));pointer-events:none;
}
.location-meta{
  position:absolute;left:40px;right:40px;bottom:40px;z-index:2;color:var(--cream);
}
.location-meta .eyebrow{margin-bottom:12px;}
.location-meta h3{
  font-family:var(--font-display);font-size:clamp(56px, 6vw, 96px);line-height:.95;letter-spacing:.02em;
  margin-bottom:14px;color:var(--cream);
}
.location-meta .addr{color:var(--cream-dim);font-size:15px;margin-bottom:20px;max-width:340px;}
.location-meta .discover{
  display:inline-flex;align-items:center;gap:12px;
  font-family:var(--font-display);font-size:14px;letter-spacing:.3em;text-transform:uppercase;color:var(--peach);
}
.location-meta .discover .arrow{transition:transform .3s var(--ease);}
.location-card:hover .discover .arrow{transform:translateX(8px);}

/* ===== PHILOSOPHY STRIPE ===== */
.philosophy{
  padding:180px 44px;text-align:center;
  background:linear-gradient(180deg, var(--black) 0%, var(--black-soft) 100%);
}
.philosophy-big{
  font-family:var(--font-display);
  font-size:clamp(70px, 14vw, 240px);
  line-height:.9;letter-spacing:.01em;color:var(--cream);
}
.philosophy-big em{color:var(--peach);font-style:normal;}
.philosophy p{
  max-width:720px;margin:40px auto 0;color:var(--cream-dim);font-size:18px;line-height:1.8;
}

/* ===== CIRCOLO-STYLE GALLERY (rich, decorative) ===== */
.circolo{
  padding:160px 0;position:relative;
  background:
    radial-gradient(60% 40% at 10% 20%, rgba(240,160,123,.06), transparent 60%),
    radial-gradient(50% 40% at 90% 80%, rgba(174,138,84,.06), transparent 60%),
    var(--black);
  border-top:1px solid var(--line);
}
.circolo-head{text-align:center;margin-bottom:90px;padding:0 40px;}
.circolo-head h2{font-size:clamp(64px, 10vw, 180px);color:var(--cream);line-height:.9;}
.circolo-head h2 em{color:var(--peach);font-style:italic;font-family:var(--font-body);font-size:.55em;display:block;margin-top:20px;}

.circolo-grid{
  display:grid;grid-template-columns:repeat(12, 1fr);gap:16px;padding:0 44px;grid-auto-rows:160px;
}
.ctile{
  position:relative;overflow:hidden;
  background:linear-gradient(135deg, #2b1a12, #120c08);
  border:1px solid var(--line);transition:all .55s var(--ease);
}
.ctile img{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  opacity:.85;transition:transform .9s var(--ease), opacity .4s;
}
.ctile:hover img{transform:scale(1.06);opacity:1;}
.ctile::after{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(180deg, transparent 50%, rgba(10,8,6,.85));
  opacity:.55;transition:opacity .3s;
}
.ctile:hover::after{opacity:.8;}
.ctile .cap{
  position:absolute;left:18px;right:18px;bottom:18px;z-index:2;
  font-family:var(--font-body);font-style:italic;color:var(--cream);font-size:15px;
  opacity:0;transform:translateY(10px);transition:all .4s var(--ease);
}
.ctile:hover .cap{opacity:1;transform:translateY(0);}
.ctile .num{
  position:absolute;top:14px;left:18px;z-index:2;
  font-family:var(--font-display);font-size:13px;color:var(--peach);letter-spacing:.3em;
}
.ctile .empty{
  position:absolute;inset:0;display:grid;place-items:center;
  background:radial-gradient(circle at 40% 40%, rgba(240,160,123,.1), transparent 70%);
  font-size:50px;opacity:.8;
}

/* Circolo-specific tile placements */
.t-a{grid-column:span 5;grid-row:span 3;}
.t-b{grid-column:span 4;grid-row:span 2;}
.t-c{grid-column:span 3;grid-row:span 2;}
.t-d{grid-column:span 3;grid-row:span 3;}
.t-e{grid-column:span 4;grid-row:span 2;}
.t-f{grid-column:span 5;grid-row:span 2;}
.t-g{grid-column:span 4;grid-row:span 3;}
.t-h{grid-column:span 4;grid-row:span 2;}
.t-i{grid-column:span 4;grid-row:span 2;}

/* ===== MARQUEE ===== */
.marquee{
  overflow:hidden;padding:32px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);
  background:linear-gradient(90deg, transparent, rgba(240,160,123,.04), transparent);
}
.marquee-track{
  display:flex;gap:60px;white-space:nowrap;align-items:center;
  animation:marquee 50s linear infinite;
  font-family:var(--font-display);font-size:clamp(36px,6vw,72px);color:var(--cream);letter-spacing:.02em;
}
.marquee-track span{display:inline-flex;align-items:center;gap:60px;}
.marquee-track .dot{
  display:inline-block;width:10px;height:10px;border-radius:50%;background:var(--peach);
}
@keyframes marquee{from{transform:translateX(0);}to{transform:translateX(-50%);}}

/* ===== FOOTER ===== */
.footer{
  padding:120px 44px 40px;background:var(--black);
  border-top:1px solid var(--line);
}
.footer-grid{
  display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:60px;
  padding-bottom:60px;border-bottom:1px solid var(--line);
}
.footer-brand picture{display:block;margin-bottom:22px;line-height:0;}
.footer-logo{display:block;height:54px;width:auto;opacity:.95;}
.footer-brand .bigname{
  /* Fallback oculto: si la imagen carga, este título no se ve.
     Si la imagen falla, el usuario sigue viendo el nombre. */
  position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden;
  font-family:var(--font-display);font-size:72px;letter-spacing:.1em;color:var(--cream);margin-bottom:18px;
}
.footer-brand .bigname em{color:var(--peach);font-style:normal;}
.footer-brand p{color:var(--cream-dim);font-size:15px;line-height:1.7;max-width:380px;margin-top:0;}
@media (max-width:640px){
  .footer-logo{height:42px;}
}
.footer h4{
  font-family:var(--font-display);font-size:14px;letter-spacing:.3em;color:var(--gold-light);text-transform:uppercase;
  margin-bottom:22px;
}
.footer ul{list-style:none;}
.footer li{margin-bottom:10px;}
.footer li a{color:var(--cream-dim);font-size:14px;}
.footer li a:hover{color:var(--peach);}
.footer-cols p{color:var(--cream-dim);font-size:14px;line-height:1.7;}
.footer-socials{display:flex;gap:10px;margin-top:16px;}
.footer-socials a{
  width:38px;height:38px;border:1px solid var(--line);border-radius:50%;
  display:grid;place-items:center;color:var(--cream-dim);transition:all .3s var(--ease);
}
.footer-socials a:hover{border-color:var(--peach);color:var(--peach);transform:translateY(-2px);}

.footer-bottom{
  display:flex;justify-content:space-between;align-items:center;
  padding-top:28px;font-size:12px;color:var(--muted);flex-wrap:wrap;gap:12px;
}
.footer-bottom em{color:var(--peach);font-style:normal;}

.footer-bignam{
  font-family:var(--font-display);
  font-size:clamp(80px, 20vw, 280px);
  text-align:center;line-height:1;
  margin-top:40px;
  color:transparent;-webkit-text-stroke:1px rgba(240,160,123,.3);
  user-select:none;
}

/* ===== LOCATION PAGE SPECIFIC ===== */
.loc-hero{
  position:relative;min-height:100vh;padding:140px 44px 80px;
  display:flex;align-items:center;
  overflow:hidden;
}
.loc-hero::before{
  content:"";position:absolute;inset:0;z-index:1;
  background:
    linear-gradient(90deg, var(--black) 0%, rgba(10,8,6,.6) 45%, transparent 80%),
    linear-gradient(180deg, rgba(10,8,6,.6), transparent 30%, rgba(10,8,6,.7));
}
.loc-hero-bg{
  position:absolute;inset:0;z-index:0;
  background:linear-gradient(135deg, #3a1f16, #100a07 70%);
}
.loc-hero-bg img{width:100%;height:100%;object-fit:cover;opacity:.65;}
.loc-hero-content{
  position:relative;z-index:2;max-width:880px;
}
.loc-hero .eyebrow{margin-bottom:34px;font-size:16px;}
.loc-hero h1{
  font-size:clamp(70px, 11vw, 180px);color:var(--cream);margin-bottom:30px;letter-spacing:.02em;
}
.loc-hero h1 em{color:var(--peach);font-style:normal;display:block;font-size:.38em;letter-spacing:.32em;margin-top:18px;}
.loc-hero p{
  font-size:20px;color:var(--cream-dim);line-height:1.75;max-width:620px;margin-bottom:34px;
}
.loc-hero .loc-meta{
  display:flex;gap:40px;flex-wrap:wrap;padding-top:30px;border-top:1px solid var(--line-strong);
}
.loc-hero .loc-meta div{display:flex;flex-direction:column;gap:4px;}
.loc-hero .loc-meta .k{font-family:var(--font-display);font-size:12px;letter-spacing:.28em;color:var(--gold-light);text-transform:uppercase;}
.loc-hero .loc-meta .v{font-size:16px;color:var(--cream);}

/* Intro elegante estilo elportaltaberna */
.loc-intro{
  padding:180px 44px;text-align:center;
}
.loc-intro .eyebrow{justify-content:center;margin-bottom:28px;}
.loc-intro .eyebrow::after{content:"";width:36px;height:1px;background:currentColor;opacity:.7;}
.loc-intro h2{
  font-family:var(--font-body);font-style:italic;
  font-size:clamp(30px, 4vw, 56px);color:var(--cream);font-weight:400;line-height:1.3;
  max-width:880px;margin:0 auto;
}
.loc-intro h2 em{color:var(--peach);font-style:italic;}
.loc-intro .divider{
  width:50px;height:1px;background:var(--gold);margin:48px auto;
  position:relative;
}
.loc-intro .divider::before,.loc-intro .divider::after{
  content:"";position:absolute;top:50%;width:6px;height:6px;border-radius:50%;background:var(--gold);transform:translateY(-50%);
}
.loc-intro .divider::before{left:-20px;}
.loc-intro .divider::after{right:-20px;}
.loc-intro p{
  color:var(--cream-dim);font-size:17px;line-height:1.8;max-width:640px;margin:0 auto 18px;
}

/* Menú del Día */
.menu-dia{
  padding:70px 44px 80px;
  background:
    radial-gradient(70% 50% at 50% 0%, rgba(240,160,123,.07), transparent 60%),
    linear-gradient(180deg, var(--black) 0%, var(--black-ink) 100%);
  border-top:1px solid var(--line);border-bottom:1px solid var(--line);
  text-align:center;
}
.menu-dia .dia-wrap{max-width:1060px;margin:0 auto;}
.menu-dia .dia-cols{
  display:grid;grid-template-columns:1fr 1fr 1fr;gap:20px 60px;
  text-align:left;margin-top:40px;
}
.menu-dia .dia-col{}
.menu-dia .dia-cat{
  font-family:var(--font-display);font-size:22px;letter-spacing:.12em;
  color:var(--peach);margin:0 0 18px;
}
.menu-dia .dia-item{margin-bottom:16px;}
.menu-dia .dia-name{
  font-family:var(--font-display);font-size:18px;letter-spacing:.08em;
  color:var(--cream);display:block;margin-bottom:3px;
}
.menu-dia .dia-desc{
  color:var(--cream-dim);font-style:italic;font-size:14px;margin:0;
}
.menu-dia .dia-foot{
  margin-top:36px;padding-top:24px;border-top:1px dashed var(--line-strong);
  display:flex;align-items:center;justify-content:center;gap:40px;flex-wrap:wrap;
}
.menu-dia .dia-price{
  font-family:var(--font-display);font-size:clamp(36px,5vw,52px);letter-spacing:.04em;
  color:var(--peach);line-height:1;
}
.menu-dia .dia-foot-info{text-align:left;}
.menu-dia .dia-schedule{
  font-family:var(--font-display);font-size:16px;letter-spacing:.1em;
  color:var(--cream);display:block;margin-bottom:4px;
}
.menu-dia .dia-note{
  color:var(--cream-dim);font-style:italic;font-size:13px;display:block;
}
@media(max-width:820px){
  .menu-dia .dia-cols{grid-template-columns:1fr;gap:10px;text-align:center;}
  .menu-dia .dia-cat{margin-top:32px;}
  .menu-dia .dia-col:first-child .dia-cat{margin-top:0;}
  .menu-dia .dia-foot{flex-direction:column;gap:16px;}
  .menu-dia .dia-foot-info{text-align:center;}
}
@media(max-width:600px){
  .menu-dia{padding:60px 22px 70px;}
}

/* Menu categories - HYBRID (images + sticky sub-nav) */
.menu-cats{padding:120px 0 180px;}
.menu-cats-head{text-align:center;margin-bottom:80px;padding:0 44px;}
.cat-grid{
  display:grid;grid-template-columns:repeat(4, 1fr);gap:4px;padding:0 44px;
}
.cat-card{
  position:relative;aspect-ratio:3/4;overflow:hidden;cursor:pointer;
  background:linear-gradient(135deg, #221410, #0a0806);
  transition:all .5s var(--ease);border:1px solid transparent;
}
.cat-card img{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  opacity:.55;transition:all .6s var(--ease);
}
.cat-card:hover img{opacity:.85;transform:scale(1.06);}
.cat-card::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(180deg, transparent 45%, rgba(10,8,6,.92));pointer-events:none;
  transition:background .4s;
}
.cat-card .cat-meta{
  position:absolute;inset:0;display:flex;flex-direction:column;justify-content:flex-end;
  padding:40px 30px;z-index:2;color:var(--cream);
}
.cat-card .cat-num{
  font-family:var(--font-display);font-size:14px;letter-spacing:.35em;color:var(--peach);margin-bottom:14px;
}
.cat-card .cat-title{
  font-family:var(--font-display);font-size:clamp(36px, 4vw, 58px);line-height:.95;margin-bottom:12px;letter-spacing:.02em;color:var(--cream);
}
.cat-card .cat-desc{font-size:14px;color:var(--cream-dim);font-family:var(--font-body);font-style:italic;}
.cat-card .cat-arrow{
  position:absolute;top:28px;right:28px;z-index:2;width:36px;height:36px;border:1px solid var(--line-strong);
  border-radius:50%;display:grid;place-items:center;color:var(--cream);transition:all .3s var(--ease);
}
.cat-card:hover .cat-arrow{background:var(--peach);color:var(--black);border-color:var(--peach);transform:rotate(-45deg);}

/* Sticky sub-nav for menu (lineal, inside menu section) */
.menu-subnav{
  position:sticky;top:70px;z-index:30;
  background:rgba(10,8,6,.88);backdrop-filter:blur(14px);
  border-top:1px solid var(--line);border-bottom:1px solid var(--line);
  padding:16px 44px;
  display:flex;gap:30px;justify-content:center;overflow-x:auto;scrollbar-width:none;
}
.menu-subnav::-webkit-scrollbar{display:none;}
.menu-subnav a{
  font-family:var(--font-display);font-size:13px;letter-spacing:.3em;text-transform:uppercase;
  color:var(--cream-dim);white-space:nowrap;padding:6px 12px;
}
.menu-subnav a:hover,.menu-subnav a.active{color:var(--peach);}

/* RESERVAR (home) */
.reservar{
  padding:160px 44px 140px;background:var(--black-soft);border-top:1px solid var(--line);border-bottom:1px solid var(--line);
  position:relative;
}
.reservar-head{max-width:900px;margin:0 auto 64px;text-align:center;}
.reservar-head h2{font-size:clamp(44px, 5.4vw, 78px);}
.reservar-phones{
  display:grid;grid-template-columns:repeat(3, 1fr);gap:18px;
  max-width:1100px;margin:0 auto 56px;
}
.phone-card{
  display:flex;align-items:center;gap:18px;
  padding:26px 28px;background:rgba(255,255,255,.02);
  border:1px solid var(--line);border-radius:2px;
  transition:all .35s ease;color:var(--cream);
}
.phone-card:hover{border-color:var(--peach);background:rgba(240,180,140,.05);transform:translateY(-2px);}
.phone-icn{
  width:44px;height:44px;border:1px solid var(--peach);border-radius:50%;
  display:grid;place-items:center;color:var(--peach);flex-shrink:0;
}
.phone-data{display:flex;flex-direction:column;line-height:1.2;}
.phone-label{
  font-family:var(--font-display);font-size:10px;letter-spacing:.3em;text-transform:uppercase;
  color:var(--gold-light);margin-bottom:6px;
}
.phone-num{font-family:var(--font-body);font-size:19px;color:var(--cream);font-weight:500;letter-spacing:.02em;}
.phone-wa .phone-icn{border-color:#25d366;color:#25d366;}
.phone-wa:hover{border-color:#25d366;background:rgba(37,211,102,.06);}
.reservar-grid{
  display:grid;grid-template-columns:repeat(2, 1fr);gap:22px;max-width:1100px;margin:0 auto;
}
.reservar-card{
  padding:44px 40px;border:1px solid var(--line);background:rgba(0,0,0,.25);
  transition:all .4s ease;
}
.reservar-card:hover{border-color:var(--peach);transform:translateY(-3px);}
.reservar-card .eyebrow{color:var(--gold-light);margin-bottom:14px;}
.reservar-card h3{
  font-family:var(--font-display);font-size:clamp(32px, 3.2vw, 46px);letter-spacing:.08em;
  color:var(--cream);margin:0 0 16px;line-height:1;
}
.reservar-card .addr{
  font-family:var(--font-body);font-size:15px;color:var(--cream-dim);line-height:1.6;margin-bottom:14px;
}
.reservar-card .hours{
  font-family:var(--font-body);font-size:13px;color:var(--cream-dim);font-style:italic;
  padding:12px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-bottom:22px;
}
.btn-form{
  display:inline-flex;align-items:center;gap:10px;
  font-family:var(--font-display);font-size:12px;letter-spacing:.25em;text-transform:uppercase;
  color:var(--peach);padding:0;
}
.btn-form .arrow{display:inline-block;transition:transform .3s ease;}
.btn-form:hover{color:var(--cream);}
.btn-form:hover .arrow{transform:translateX(6px);}
@media (max-width: 900px){
  .reservar{padding:100px 22px 90px;}
  .reservar-phones{grid-template-columns:1fr;gap:12px;max-width:420px;margin-bottom:44px;}
  .reservar-grid{grid-template-columns:1fr;gap:14px;}
  .reservar-card{padding:32px 26px;}
  .phone-card{padding:20px 22px;}
}

/* CONTACT PANEL */
.contact{
  padding:180px 44px;background:var(--black-soft);border-top:1px solid var(--line);border-bottom:1px solid var(--line);
}
.contact-grid{
  display:grid;grid-template-columns:1fr 1.2fr;gap:80px;align-items:start;
}
.contact-grid h2{font-size:clamp(46px, 6vw, 84px);margin-bottom:28px;}
.contact-grid p{color:var(--cream-dim);font-size:17px;line-height:1.75;margin-bottom:18px;}
.contact-info{margin-top:44px;}
.contact-info .row{
  display:flex;gap:18px;padding:22px 0;border-bottom:1px solid var(--line);align-items:flex-start;
}
.contact-info .icn{
  width:42px;height:42px;border:1px solid var(--peach);border-radius:50%;
  display:grid;place-items:center;color:var(--peach);flex-shrink:0;
}
.contact-info .k{font-family:var(--font-display);font-size:11px;letter-spacing:.3em;text-transform:uppercase;color:var(--gold-light);margin-bottom:4px;}
.contact-info .v{font-family:var(--font-body);font-size:18px;color:var(--cream);}
.contact-info .v a{color:var(--cream);}
.contact-info .v a:hover{color:var(--peach);}

.contact-form{
  background:linear-gradient(180deg, rgba(255,255,255,.02), rgba(0,0,0,.2));
  border:1px solid var(--line);padding:48px;position:relative;
}
.contact-form::before{
  content:"";position:absolute;top:0;left:0;right:0;height:2px;
  background:linear-gradient(90deg, transparent, var(--peach), transparent);
}
.contact-form h3{
  font-family:var(--font-display);font-size:32px;letter-spacing:.03em;margin-bottom:4px;color:var(--cream);
}
.contact-form .sub{font-family:var(--font-body);font-style:italic;color:var(--cream-dim);margin-bottom:28px;}
.field{margin-bottom:16px;}
.field label{
  display:block;font-family:var(--font-display);font-size:11px;letter-spacing:.28em;text-transform:uppercase;
  color:var(--gold-light);margin-bottom:8px;
}
.field input,.field select,.field textarea{
  width:100%;padding:14px 16px;background:rgba(0,0,0,.3);border:1px solid var(--line);
  color:var(--cream);font:inherit;font-family:var(--font-body);font-size:16px;
  transition:all .25s;
}
.field input:focus,.field select:focus,.field textarea:focus{
  outline:none;border-color:var(--peach);background:rgba(240,160,123,.05);
}
.field textarea{min-height:90px;resize:vertical;}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
.form-cta{
  width:100%;padding:18px;background:var(--peach);color:var(--black);
  font-family:var(--font-display);font-size:14px;letter-spacing:.32em;text-transform:uppercase;
  transition:all .3s var(--ease);margin-top:8px;
}
.form-cta:hover{background:var(--peach-soft);letter-spacing:.4em;}

/* REVEALS · con desfase cinematográfico */
.reveal{opacity:0;transform:translateY(48px);transition:opacity 1.4s var(--ease), transform 1.4s var(--ease);}
.reveal.in{opacity:1;transform:translateY(0);}

/* Stagger automático dentro de un mismo contenedor */
.closing-grid .reveal{transition-delay:0s;}
.closing-grid .reveal.c-1.in{transition-delay:.05s;}
.closing-grid .reveal.c-2.in{transition-delay:.12s;}
.closing-grid .reveal.c-3.in{transition-delay:.20s;}
.closing-grid .reveal.c-4.in{transition-delay:.28s;}
.closing-grid .reveal.c-5.in{transition-delay:.36s;}
.closing-grid .reveal.c-6.in{transition-delay:.44s;}
.closing-grid .reveal.c-7.in{transition-delay:.52s;}

/* ===== RESPONSIVE ===== */
@media (max-width: 1100px){
  .nav{padding:18px 24px;}
  .nav.scrolled{padding:12px 24px;}
  .nav-links{display:none;}
  .menu-toggle{display:inline-block;}
  .locations-grid{grid-template-columns:1fr;}
  .cat-grid{grid-template-columns:repeat(2,1fr);}
  .contact-grid{grid-template-columns:1fr;gap:60px;}
  .footer-grid{grid-template-columns:1fr 1fr;gap:40px;}
  .circolo-grid{grid-auto-rows:130px;gap:10px;padding:0 22px;}
}
@media (max-width: 720px){
  section{padding:100px 22px;}
  .hero{padding:100px 22px 100px;min-height:560px;}
  .hero-logo{width:clamp(180px, 62vw, 320px);}
  .hero-scroll{display:none;}
  .hero-locale{margin-top:14px;}
  .locale-label{font-size:11px;letter-spacing:.32em;}
  .immersion{height:55vh;}
  .cat-grid{grid-template-columns:1fr;gap:6px;padding:0 22px;}
  .footer-grid{grid-template-columns:1fr;}
  .circolo-grid{grid-template-columns:repeat(4,1fr);grid-auto-rows:120px;gap:8px;padding:0 14px;}
  .t-a,.t-b,.t-c,.t-d,.t-e,.t-f,.t-g,.t-h,.t-i{grid-column:span 2;grid-row:span 2;}
  .loc-hero{padding:100px 22px 60px;}
  .loc-hero .loc-meta{gap:20px;}
  .contact-form{padding:28px 22px;}
  .form-row{grid-template-columns:1fr;gap:0;}
  .marquee-track{font-size:32px;gap:30px;}
}

/* =========================================================
   ALÉRGENOS · Badges compactas + leyenda
   Reglamento UE 1169/2011 · 14 alérgenos mayores
   ========================================================= */
.allergens{
  display:flex;flex-wrap:wrap;gap:6px;margin-top:10px;align-items:center;
}
.alg{
  display:inline-block;
  width:26px;height:26px;
  background-size:cover;background-position:center;background-repeat:no-repeat;
  background-color:var(--cream);
  border-radius:50%;
  cursor:help;
  vertical-align:middle;
  transition:transform .2s ease, box-shadow .2s ease;
  user-select:none;
  box-shadow:0 0 0 1px rgba(240,160,123,.25);
}
.alg:hover{
  transform:scale(1.25);
  box-shadow:0 0 0 2px var(--peach), 0 4px 12px rgba(0,0,0,.4);
}
.alg-glu{background-image:url(../logo/allergens/glu.png);}
.alg-cru{background-image:url(../logo/allergens/cru.png);}
.alg-hue{background-image:url(../logo/allergens/hue.png);}
.alg-pes{background-image:url(../logo/allergens/pes.png);}
.alg-cac{background-image:url(../logo/allergens/cac.png);}
.alg-soj{background-image:url(../logo/allergens/soj.png);}
.alg-lac{background-image:url(../logo/allergens/lac.png);}
.alg-fru{background-image:url(../logo/allergens/fru.png);}
.alg-api{background-image:url(../logo/allergens/api.png);}
.alg-mos{background-image:url(../logo/allergens/mos.png);}
.alg-ses{background-image:url(../logo/allergens/ses.png);}
.alg-sul{background-image:url(../logo/allergens/sul.png);}
.alg-mol{background-image:url(../logo/allergens/mol.png);}
.alg-alt{background-image:url(../logo/allergens/alt.png);}

/* Leyenda · al final de la carta */
.allergen-legend{
  margin-top:80px;padding:50px 44px;
  background:var(--black-soft);
  border:1px solid var(--line);
  border-radius:4px;
}
.allergen-legend h3{
  font-family:var(--font-display);font-size:22px;letter-spacing:.28em;
  color:var(--gold-light);text-transform:uppercase;margin-bottom:8px;
}
.allergen-legend .subtitle{
  color:var(--cream-dim);font-style:italic;font-size:14px;margin-bottom:36px;
  max-width:640px;line-height:1.6;
}
.legend-grid{
  display:grid;grid-template-columns:repeat(4,1fr);gap:14px 28px;
}
.legend-item{
  display:flex;align-items:center;gap:12px;
  color:var(--cream);font-size:14px;
}
.legend-item .alg{width:36px;height:36px;flex-shrink:0;pointer-events:none;}
.legend-note{
  margin-top:36px;padding-top:28px;border-top:1px dashed var(--line);
  color:var(--cream-dim);font-size:13px;font-style:italic;line-height:1.7;
}
@media (max-width:900px){
  .legend-grid{grid-template-columns:repeat(2,1fr);gap:12px 20px;}
  .allergen-legend{padding:36px 22px;}
}
@media (max-width:480px){
  .legend-grid{grid-template-columns:1fr;}
}

/* =========================================================
   HERO CON VIDEO LOOP · fade a imagen estática
   ========================================================= */
.hero-video{
  position:absolute;inset:0;z-index:1;
  width:100%;height:100%;object-fit:cover;
  opacity:0;
  transition:opacity 1.6s var(--ease);
  pointer-events:none;
  filter:saturate(1.1) contrast(1.05) brightness(.95);
}
.hero-video.is-playing{opacity:.92;}
.hero-video.is-faded{opacity:0;}

/* Video loop dentro de la portada de una página local (Quesada) */
.loc-hero-bg .hero-video{
  opacity:0;z-index:1;
}
.loc-hero-bg .hero-video.is-playing{opacity:.55;}
.loc-hero-bg picture{position:absolute;inset:0;z-index:0;display:block;}
.loc-hero-bg picture img{width:100%;height:100%;object-fit:cover;opacity:.7;}
.hero-still{
  position:absolute;inset:0;z-index:0;
  opacity:0;transition:opacity 1.6s var(--ease);
  pointer-events:none;
}
.hero-still img{
  width:100%;height:100%;object-fit:cover;opacity:.78;
}
.hero-still.is-visible{opacity:1;}

@media (prefers-reduced-motion: reduce){
  .hero-video{display:none;}
  .hero-still{opacity:1;}
  .hero-media .hero-slide{animation:none;opacity:.78;}
}

/* =========================================================
   CIRCOLO CLOSING · cierre cálido editorial (antes del footer)
   ========================================================= */
.closing{
  position:relative;padding:140px 44px 120px;
  background:
    radial-gradient(80% 60% at 50% 0%, rgba(240,160,123,.10), transparent 60%),
    radial-gradient(60% 50% at 20% 100%, rgba(184,149,106,.08), transparent 60%),
    linear-gradient(180deg, var(--black-soft) 0%, #1a0f0a 100%);
  border-top:1px solid var(--line);
  overflow:hidden;
}
.closing-head{
  text-align:center;max-width:920px;margin:0 auto 80px;
}
.closing-head .eyebrow{justify-content:center;color:var(--peach-soft);}
.closing-head .eyebrow::after{content:"";width:36px;height:1px;background:currentColor;opacity:.7;}
.closing-head h2{
  font-family:var(--font-body);font-style:italic;font-weight:400;
  font-size:clamp(32px, 5vw, 64px);line-height:1.2;color:var(--cream);
  margin-top:24px;
}
.closing-head h2 em{color:var(--peach);font-style:italic;}

.closing-grid{
  display:grid;grid-template-columns:repeat(6,1fr);grid-auto-rows:140px;gap:14px;
  max-width:1280px;margin:0 auto;
}
.closing-tile{
  position:relative;overflow:hidden;
  background:linear-gradient(135deg, #2b1a12, #120c08);
  transition:transform .7s var(--ease);
}
.closing-tile img{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  opacity:.92;transition:transform 1.1s var(--ease), opacity .4s;
  filter:saturate(1.08) contrast(1.02);
}
.closing-tile:hover img{transform:scale(1.05);}
.closing-tile::after{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(180deg, transparent 55%, rgba(10,8,6,.7));
}
.closing-tile .cap{
  position:absolute;left:18px;right:18px;bottom:16px;z-index:2;
  font-family:var(--font-body);font-style:italic;font-size:14px;color:var(--cream);
  opacity:0;transform:translateY(6px);transition:all .45s var(--ease);
}
.closing-tile:hover .cap{opacity:1;transform:translateY(0);}

/* Layout editorial — explicit positions, no gaps */
.closing-tile.c-1{grid-column:1/5;grid-row:1/3;}
.closing-tile.c-2{grid-column:5/7;grid-row:1/3;}
.closing-tile.c-3{grid-column:1/3;grid-row:3/5;}
.closing-tile.c-4{grid-column:3/5;grid-row:3/5;}
.closing-tile.c-5{grid-column:5/7;grid-row:3/5;}
.closing-tile.c-6{grid-column:1/4;grid-row:5/7;}
.closing-tile.c-7{grid-column:4/7;grid-row:5/7;}

.closing-cta{
  margin-top:70px;text-align:center;
}
.closing-cta p{
  font-family:var(--font-body);font-style:italic;font-size:20px;color:var(--cream-dim);
  max-width:560px;margin:0 auto 28px;line-height:1.6;
}
.closing-cta a{
  display:inline-flex;align-items:center;gap:14px;
  font-family:var(--font-display);font-size:14px;letter-spacing:.35em;text-transform:uppercase;
  color:var(--peach);padding:18px 32px;border:1px solid var(--peach);
  transition:all .35s var(--ease);
}
.closing-cta a:hover{background:var(--peach);color:var(--black);letter-spacing:.42em;}

@media (max-width:1100px){
  .closing-grid{grid-template-columns:repeat(4,1fr);grid-auto-rows:120px;}
  .closing-tile.c-1{grid-column:1/3;grid-row:1/3;}
  .closing-tile.c-2{grid-column:3/5;grid-row:1/3;}
  .closing-tile.c-3{grid-column:1/3;grid-row:3/5;}
  .closing-tile.c-4{grid-column:3/5;grid-row:3/5;}
  .closing-tile.c-5{grid-column:1/3;grid-row:5/7;}
  .closing-tile.c-6{grid-column:3/5;grid-row:5/7;}
  .closing-tile.c-7{grid-column:1/5;grid-row:7/9;}
}
@media (max-width:720px){
  .closing{padding:90px 18px 80px;}
  .closing-grid{grid-template-columns:repeat(2,1fr);grid-auto-rows:110px;gap:8px;}
  .closing-tile.c-1{grid-column:1/3;grid-row:1/4;}
  .closing-tile.c-2{grid-column:1/2;grid-row:4/6;}
  .closing-tile.c-3{grid-column:2/3;grid-row:4/6;}
  .closing-tile.c-4{grid-column:1/2;grid-row:6/8;}
  .closing-tile.c-5{grid-column:2/3;grid-row:6/8;}
  .closing-tile.c-6{grid-column:1/2;grid-row:8/10;}
  .closing-tile.c-7{grid-column:2/3;grid-row:8/10;}
}

/* Quitar los emoji fallback cuando la imagen carga */
.ctile .empty{display:none;}

/* =========================================================
   MENU PREVIEW · Cuatro categorías grandes (Opción B editorial)
   ========================================================= */
.menu-preview{
  padding:160px 0 140px;position:relative;
  background:
    radial-gradient(70% 50% at 50% 0%, rgba(240,160,123,.06), transparent 60%),
    linear-gradient(180deg, var(--black) 0%, var(--black-soft) 100%);
  border-top:1px solid var(--line);border-bottom:1px solid var(--line);
}
.menu-preview-head{
  text-align:center;max-width:960px;margin:0 auto 80px;padding:0 44px;
}
.menu-preview-head .eyebrow{justify-content:center;}
.menu-preview-head .eyebrow::after{content:"";width:36px;height:1px;background:currentColor;opacity:.7;}
.menu-preview-head .section-title{font-size:clamp(52px, 8vw, 120px);}
.menu-preview-head .section-title em{font-family:var(--font-body);font-style:italic;color:var(--peach);font-size:.85em;}

.menu-grid{
  display:grid;grid-template-columns:repeat(4,1fr);gap:2px;padding:0 44px;max-width:1600px;margin:0 auto;
}
.menu-card{
  position:relative;overflow:hidden;
  background:linear-gradient(135deg, #221410, #0a0806);
  min-height:620px;
  display:flex;flex-direction:column;justify-content:flex-end;
  transition:all .6s var(--ease);
  color:var(--cream);
  cursor:pointer;
  isolation:isolate;
}
.menu-card picture{
  position:absolute;inset:0;z-index:0;display:block;
}
.menu-card picture img{
  width:100%;height:100%;object-fit:cover;
  opacity:.55;transition:all .8s var(--ease);
  filter:saturate(1.08) contrast(1.04);
}
.menu-card:hover picture img{opacity:.85;transform:scale(1.05);}
.menu-card-overlay{
  position:absolute;inset:0;z-index:1;pointer-events:none;
  background:
    linear-gradient(180deg, transparent 40%, rgba(10,8,6,.92) 100%),
    linear-gradient(0deg, rgba(10,8,6,.5), transparent 40%);
  transition:opacity .4s;
}
.menu-card:hover .menu-card-overlay{
  background:
    linear-gradient(180deg, rgba(10,8,6,.2) 0%, rgba(10,8,6,.96) 100%);
}
.menu-card-meta{
  position:relative;z-index:2;padding:40px 34px 38px;
  transition:transform .5s var(--ease);
}
.menu-card:hover .menu-card-meta{transform:translateY(-8px);}
.menu-num{
  font-family:var(--font-display);font-size:12px;letter-spacing:.4em;color:var(--peach);margin-bottom:18px;
}
.menu-card h3{
  font-family:var(--font-display);font-size:clamp(44px, 3.4vw, 64px);line-height:.9;
  letter-spacing:.02em;margin-bottom:20px;color:var(--cream);
}
.menu-card h3 em{
  font-family:var(--font-body);font-style:italic;color:var(--peach);font-size:.52em;
  display:block;letter-spacing:.04em;margin-top:6px;
}
.menu-card p{
  font-family:var(--font-body);font-style:italic;font-size:14.5px;line-height:1.6;
  color:var(--cream-dim);margin-bottom:18px;
  max-height:0;overflow:hidden;opacity:0;transition:all .6s var(--ease);
}
.menu-card:hover p{max-height:200px;opacity:1;margin-bottom:18px;}

.menu-items{
  list-style:none;padding:0;margin:0 0 20px;
  max-height:0;overflow:hidden;opacity:0;transition:all .55s var(--ease);
}
.menu-card:hover .menu-items{max-height:200px;opacity:1;}
.menu-items li{
  font-family:var(--font-body);font-size:13.5px;color:var(--cream);padding:6px 0;
  border-bottom:1px solid var(--line);position:relative;padding-left:16px;
}
.menu-items li::before{
  content:"—";position:absolute;left:0;color:var(--gold-light);
}
.menu-arrow{
  font-family:var(--font-display);font-size:12px;letter-spacing:.3em;text-transform:uppercase;
  color:var(--peach);display:inline-flex;align-items:center;gap:10px;
  padding-top:10px;border-top:1px solid var(--line);
  opacity:.85;transition:all .3s var(--ease);
}
.menu-card:hover .menu-arrow{opacity:1;letter-spacing:.35em;}
.menu-arrow .arrow{transition:transform .3s ease;}
.menu-card:hover .menu-arrow .arrow{transform:translateX(6px);}

.menu-preview-cta{
  margin-top:70px;text-align:center;padding:0 44px;
}
.menu-preview-cta p{
  font-family:var(--font-body);font-style:italic;font-size:15px;color:var(--cream-dim);
  max-width:540px;margin:0 auto 22px;
}
.menu-preview-cta p strong{color:var(--cream);font-style:normal;}
.menu-cta-links{
  display:inline-flex;gap:16px;flex-wrap:wrap;justify-content:center;
}
.menu-cta-links a{
  font-family:var(--font-display);font-size:13px;letter-spacing:.3em;text-transform:uppercase;
  color:var(--cream);padding:16px 28px;border:1px solid var(--line-strong);
  display:inline-flex;align-items:center;gap:10px;
  transition:all .35s var(--ease);
}
.menu-cta-links a:hover{border-color:var(--peach);color:var(--peach);letter-spacing:.36em;}
.menu-cta-links a .arrow{transition:transform .3s ease;}
.menu-cta-links a:hover .arrow{transform:translateX(5px);}

@media (max-width: 1100px){
  .menu-grid{grid-template-columns:repeat(2,1fr);}
  .menu-card{min-height:520px;}
}
@media (max-width: 720px){
  .menu-preview{padding:100px 0 80px;}
  .menu-preview-head{padding:0 22px;margin-bottom:50px;}
  .menu-grid{grid-template-columns:1fr;gap:6px;padding:0 16px;}
  .menu-card{min-height:460px;}
  .menu-card-meta{padding:30px 26px;}
  /* En móvil siempre abierto (no hay hover) */
  .menu-card p,
  .menu-card .menu-items{max-height:400px;opacity:1;}
  .menu-card-overlay{
    background:linear-gradient(180deg, transparent 30%, rgba(10,8,6,.95) 80%);
  }
}

/* =========================================================
   RATINGS SPLIT (Torrevieja · Quesada)
   ========================================================= */
.ratings-split{
  display:flex;justify-content:center;gap:60px;align-items:flex-start;flex-wrap:wrap;
  margin-top:24px;
}
.rating-block{
  display:flex;flex-direction:column;align-items:center;gap:8px;
  padding:22px 34px;border:1px solid var(--line);
  background:rgba(255,255,255,.02);
  min-width:220px;
  transition:all .35s ease;
}
.rating-block:hover{border-color:var(--gold);background:rgba(184,149,106,.04);}
.rating-num{
  font-family:var(--font-display);font-size:56px;line-height:1;color:var(--peach);letter-spacing:.02em;
}
.rating-block .stars-big .star{width:20px;height:20px;}
.rating-loc{
  font-family:var(--font-display);font-size:11px;letter-spacing:.3em;text-transform:uppercase;
  color:var(--cream-dim);margin-top:4px;
}
@media (max-width:720px){
  .ratings-split{gap:18px;}
  .rating-block{min-width:auto;padding:18px 22px;}
  .rating-num{font-size:44px;}
}
.google-badge{
  display:flex;align-items:center;justify-content:center;
  width:36px;height:36px;border-radius:50%;background:#fff;
  box-shadow:0 2px 8px rgba(0,0,0,.18);
  margin-bottom:2px;
}
a.rating-block{cursor:pointer;}
a.rating-block:hover .rating-loc{color:var(--peach);}

/* =========================================================
   AMPLIFICACIÓN VISUAL · sombras, grano, parallax, hover
   ========================================================= */
/* Tratamiento editorial uniforme en todas las imágenes clave */
.location-card img,
.hero-slide img,
.closing-tile img,
.ctile img{
  filter:saturate(1.06) contrast(1.03);
}
/* Sombra cinematográfica sobre las imágenes grandes */
.location-card::before{
  content:"";position:absolute;inset:0;z-index:1;pointer-events:none;
  background:
    radial-gradient(ellipse at 50% 30%, transparent 20%, rgba(10,8,6,.35) 100%);
}
.location-card picture{position:absolute;inset:0;z-index:0;display:block;}
.location-card picture img{
  width:100%;height:100%;object-fit:cover;display:block;
  transition:transform 1s var(--ease), opacity .5s var(--ease);
}
.location-card:hover picture img{transform:scale(1.04);}
.location-card .location-meta{z-index:3;}
.location-card h3{
  font-size:clamp(64px, 7.5vw, 120px);
  text-shadow:0 2px 30px rgba(0,0,0,.55);
}
.location-meta .eyebrow{color:var(--peach);}

/* Titular gigante un punto más atmosférico */
.section-title{
  text-shadow:0 2px 30px rgba(0,0,0,.4);
}
.philosophy-big{
  text-shadow:0 4px 50px rgba(240,160,123,.12);
}

/* Parallax sutil en scroll (via CSS only) */
@media (min-width: 1024px){
  .immersion-bg{transform:translateY(0);will-change:transform;}
  .hero-media .hero-slide{will-change:transform;}
}

/* =========================================================
   RESEÑAS (Google-style feed)
   ========================================================= */
.reviews{
  padding:160px 0 140px;position:relative;
  background:
    radial-gradient(60% 40% at 50% 0%, rgba(184,149,106,.08), transparent 60%),
    var(--black);
  border-top:1px solid var(--line);border-bottom:1px solid var(--line);
}
.reviews-head{text-align:center;max-width:980px;margin:0 auto 60px;padding:0 44px;}
.reviews-head h2{font-size:clamp(52px, 8vw, 128px);line-height:.92;}
.reviews-head h2 em{color:var(--peach);font-style:normal;}
.reviews-meta{margin-top:38px;display:flex;flex-direction:column;align-items:center;gap:16px;}
.stars-big{display:inline-flex;gap:8px;}
.stars-big .star{width:32px;height:32px;}
.reviews-sub{font-family:var(--font-body);font-style:italic;color:var(--cream-dim);font-size:16px;max-width:540px;}
.reviews-sub strong{color:var(--cream);font-style:normal;}

.reviews-track-wrap{position:relative;max-width:1400px;margin:0 auto;padding:0 44px;}
.reviews-track{
  display:flex;gap:18px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;
  padding:10px 4px 40px;scrollbar-width:none;
  -webkit-overflow-scrolling:touch;
}
.reviews-track::-webkit-scrollbar{display:none;}

.review-card{
  flex:0 0 min(380px, 90vw);scroll-snap-align:start;
  background:linear-gradient(180deg, rgba(255,255,255,.03), rgba(0,0,0,.25));
  border:1px solid var(--line);
  padding:28px 26px;display:flex;flex-direction:column;gap:14px;
  transition:border-color .3s ease, transform .4s var(--ease);
  position:relative;
}
.review-card::before{
  content:"";position:absolute;top:0;left:0;right:0;height:1px;
  background:linear-gradient(90deg, transparent, var(--peach), transparent);
  opacity:0;transition:opacity .4s;
}
.review-card:hover{border-color:var(--peach);transform:translateY(-4px);}
.review-card:hover::before{opacity:.5;}
.review-head{display:grid;grid-template-columns:44px 1fr auto;gap:12px;align-items:center;}
.avatar{
  width:44px;height:44px;border-radius:50%;
  display:grid;place-items:center;
  font-family:var(--font-display);color:var(--cream);font-size:18px;letter-spacing:.05em;
}
.review-author{font-family:var(--font-display);font-size:16px;letter-spacing:.12em;color:var(--cream);}
.review-when{font-size:11px;color:var(--muted);letter-spacing:.12em;text-transform:uppercase;margin-top:2px;}
.stars{display:flex;gap:2px;}
.star{
  width:14px;height:14px;display:inline-block;
  background:
    linear-gradient(90deg, var(--peach) 50%, rgba(235,225,210,.2) 50%);
  -webkit-mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M12 .5l3.6 7.6 8.4 1-6 6 1.5 8.4L12 19.6 4.5 23.5 6 15.1 0 9.1l8.4-1z'/></svg>") center/contain no-repeat;
          mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M12 .5l3.6 7.6 8.4 1-6 6 1.5 8.4L12 19.6 4.5 23.5 6 15.1 0 9.1l8.4-1z'/></svg>") center/contain no-repeat;
}
.star.full{background:var(--peach);}
.star.half{background:linear-gradient(90deg, var(--peach) 50%, rgba(235,225,210,.15) 50%);}
.stars-big .star{width:36px;height:36px;background:var(--peach);}
.stars-big .star.half{background:linear-gradient(90deg, var(--peach) 50%, rgba(235,225,210,.15) 50%);}

.review-text{
  font-family:var(--font-body);font-style:italic;font-size:15px;line-height:1.65;color:var(--cream);
  flex:1;margin-top:4px;
}
.review-loc{
  margin-top:auto;
  font-family:var(--font-display);font-size:11px;letter-spacing:.3em;text-transform:uppercase;color:var(--gold-light);
  padding-top:12px;border-top:1px solid var(--line);
}

.reviews-controls{
  position:absolute;top:calc(50% - 24px);left:0;right:0;
  display:flex;justify-content:space-between;pointer-events:none;padding:0 12px;
}
.rev-btn{
  width:48px;height:48px;border-radius:50%;
  border:1px solid var(--line-strong);background:rgba(10,8,6,.8);backdrop-filter:blur(10px);
  color:var(--cream);font-size:18px;cursor:pointer;pointer-events:all;
  transition:all .3s ease;
  display:grid;place-items:center;
}
.rev-btn:hover{border-color:var(--peach);color:var(--peach);background:rgba(240,160,123,.08);}

.reviews-cta{text-align:center;margin-top:24px;display:flex;flex-wrap:wrap;justify-content:center;gap:14px;}
.reviews-cta a{
  font-family:var(--font-display);font-size:13px;letter-spacing:.32em;text-transform:uppercase;
  color:var(--gold-light);display:inline-flex;align-items:center;gap:10px;padding:14px 26px;
  border:1px solid var(--line-strong);
  transition:all .3s var(--ease);
}
.reviews-cta a:hover{color:var(--peach);border-color:var(--peach);}

@media (max-width: 720px){
  .reviews{padding:100px 0 100px;}
  .reviews-head{padding:0 22px;margin-bottom:40px;}
  .reviews-track-wrap{padding:0 22px;}
  .reviews-controls{display:none;}
  .review-card{flex:0 0 86vw;padding:24px 22px;}
}

/* =========================================================
   RESERVAR · Layout dos columnas con formulario
   ========================================================= */
.reservar-layout{
  display:grid;grid-template-columns:1.2fr .9fr;gap:48px;max-width:1200px;margin:0 auto;
  align-items:start;
}
.reserve-form{
  background:linear-gradient(180deg, rgba(255,255,255,.025), rgba(0,0,0,.25));
  border:1px solid var(--line);
  padding:40px 38px;
  position:relative;
}
.reserve-form::before{
  content:"";position:absolute;top:0;left:0;right:0;height:2px;
  background:linear-gradient(90deg, transparent, var(--peach), transparent);
}
.reserve-form .field{margin-bottom:18px;}
.reserve-form label{
  display:block;font-family:var(--font-display);font-size:11px;letter-spacing:.3em;text-transform:uppercase;
  color:var(--gold-light);margin-bottom:8px;
}
.reserve-form label .optional{color:var(--muted);letter-spacing:.2em;font-size:10px;}
.reserve-form input,
.reserve-form select,
.reserve-form textarea{
  width:100%;padding:16px 18px;
  background:rgba(0,0,0,.35);
  border:1px solid var(--line);
  color:var(--cream);font:inherit;font-family:var(--font-body);font-size:16px;
  transition:all .25s;border-radius:0;
  -webkit-appearance:none;appearance:none;
}
.reserve-form select{
  background-image:
    linear-gradient(45deg, transparent 50%, var(--peach) 50%),
    linear-gradient(135deg, var(--peach) 50%, transparent 50%);
  background-position:calc(100% - 20px) 50%, calc(100% - 14px) 50%;
  background-size:6px 6px;background-repeat:no-repeat;
  padding-right:40px;
}
.reserve-form input:focus,
.reserve-form select:focus,
.reserve-form textarea:focus{
  outline:none;border-color:var(--peach);
  background-color:rgba(240,160,123,.04);
  box-shadow:0 0 0 3px rgba(240,160,123,.08);
}
.reserve-form textarea{min-height:90px;resize:vertical;}
.reserve-form .form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px;}

.reserve-cta{
  width:100%;padding:20px;margin-top:10px;
  background:#25d366;color:#fff;
  font-family:var(--font-display);font-size:15px;letter-spacing:.28em;text-transform:uppercase;
  border:none;cursor:pointer;
  display:flex;align-items:center;justify-content:center;
  transition:all .35s var(--ease);
  position:relative;overflow:hidden;
}
.reserve-cta::before{
  content:"";position:absolute;inset:0;background:#1fb858;
  transform:translateY(101%);transition:transform .4s var(--ease);
}
.reserve-cta:hover::before{transform:translateY(0);}
.reserve-cta:hover{letter-spacing:.34em;}
.reserve-cta svg,.reserve-cta > *{position:relative;z-index:2;}
.reserve-disclaimer{
  margin-top:14px;font-family:var(--font-body);font-style:italic;font-size:13px;color:var(--cream-dim);
  text-align:center;line-height:1.5;
}

.reservar-side{display:flex;flex-direction:column;gap:28px;}
.reservar-side .reservar-phones{
  display:flex;flex-direction:column;gap:12px;margin:0;
}
.reserve-hours{
  padding:28px 30px;border:1px solid var(--line);background:rgba(0,0,0,.2);
}
.reserve-hours .eyebrow{margin-bottom:18px;color:var(--peach);}
.hours-row{
  display:flex;justify-content:space-between;padding:10px 0;
  border-bottom:1px solid var(--line);font-size:15px;color:var(--cream);font-family:var(--font-body);
}
.hours-row:last-of-type{border-bottom:none;}
.hours-row span:first-child{color:var(--cream-dim);font-style:italic;}
.hours-note{
  margin-top:14px;font-family:var(--font-body);font-style:italic;font-size:13px;color:var(--cream-dim);line-height:1.5;
}
.reserve-groups{
  padding:28px 30px;border:1px solid var(--line);background:rgba(184,149,106,.04);
}
.reserve-groups .eyebrow{margin-bottom:14px;}
.reserve-groups p{
  font-family:var(--font-body);font-size:15px;color:var(--cream-dim);line-height:1.6;margin-bottom:14px;
}
.btn-inline{
  display:inline-flex;align-items:center;gap:10px;
  font-family:var(--font-display);font-size:12px;letter-spacing:.3em;text-transform:uppercase;color:var(--peach);
}
.btn-inline .arrow{transition:transform .3s ease;}
.btn-inline:hover .arrow{transform:translateX(6px);}

@media (max-width: 900px){
  .reservar-layout{grid-template-columns:1fr;gap:28px;}
  .reserve-form{padding:30px 24px;}
  .reserve-form .form-row{grid-template-columns:1fr;gap:0;}
}
@media (max-width: 480px){
  .reservar-head h2{font-size:clamp(38px, 10vw, 64px);}
}
