/* ── TOKENS ───────────────────────────────────────────────── */
:root{
  --gold:#F5C230;--gold-light:#F9D870;--gold-dark:#C09020;
  --cream:#EEF4FF;--cream-dark:#D8E6F5;
  --blue:#3BA2C8;--blue-light:#65C0E0;--blue-dark:#2070A0;

  /* dark theme */
  --bg:#0C1221;--bg2:#101828;--bg3:#141E30;
  --surface:#18223A;--surface2:#1E2A45;--surface3:#243050;
  --border:rgba(242,196,53,.15);--border2:rgba(242,196,53,.08);
  --text:#E8F0FF;--text2:#8AAAC8;--text3:#4A6585;
  --glass:rgba(12,18,33,.7);--glass2:rgba(24,34,58,.6);
  --shadow:rgba(0,0,0,.6);

  --font-serif:'Cormorant Garamond',serif;
  --font-display:'Playfair Display',serif;
  --font-sans:'Inter',sans-serif;

  --ease-premium:cubic-bezier(.16,1,.3,1);
  --ease-soft:cubic-bezier(.4,0,.2,1);
  --transition:.4s var(--ease-soft);

  --r-sm:.5rem;--r-md:1rem;--r-lg:1.5rem;--r-xl:2rem;
  --max:1320px;
}
[data-theme="light"]{
  --bg:#F5F8FF;--bg2:#EEF2FA;--bg3:#E4EAF5;
  --surface:#fff;--surface2:#F5F8FF;--surface3:#EEF2FA;
  --border:rgba(180,140,20,.2);--border2:rgba(180,140,20,.1);
  --text:#0C1221;--text2:#2A4A6A;--text3:#4A6A90;
  --glass:rgba(245,248,255,.85);--glass2:rgba(255,255,255,.75);
  --shadow:rgba(0,0,0,.12);
}

/* ── RESET ───────────────────────────────────────────────── */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;font-size:16px;overflow-x:hidden;max-width:100vw}
body{
  background:var(--bg);color:var(--text);
  font-family:var(--font-sans);font-weight:300;
  line-height:1.6;overflow-x:hidden;width:100%;
  transition:background var(--transition),color var(--transition);
}
img{display:block;max-width:100%;height:auto}
#cdmGoogleTranslate,
.goog-te-banner-frame,
.goog-te-balloon-frame,
.goog-te-gadget,
.skiptranslate{
  display:none!important;
}
body{
  top:0!important;
}

img[src^="uploads/"],
img[src*="/uploads/"]{
  object-fit:contain !important;
  object-position:center center !important;
  background:#050914;
}
.container{max-width:min(var(--max),100%)}
a{color:inherit;text-decoration:none}
button{cursor:pointer;border:none;background:none;font-family:inherit}
ul{list-style:none}

/* ── SCROLLBAR ───────────────────────────────────────────── */
::-webkit-scrollbar{width:6px}
::-webkit-scrollbar-track{background:var(--bg)}
::-webkit-scrollbar-thumb{background:var(--gold-dark);border-radius:3px}

/* ── TYPOGRAPHY ──────────────────────────────────────────── */
.t-display{font-family:var(--font-display);font-weight:700;line-height:1.1;letter-spacing:-.02em}
.t-serif{font-family:var(--font-serif);font-weight:300;line-height:1.3}
.t-label{font-family:var(--font-sans);font-size:.7rem;font-weight:600;letter-spacing:.25em;text-transform:uppercase;color:var(--gold)}
.t-gold{color:var(--gold)}

/* ── UTILITIES ───────────────────────────────────────────── */
.container{width:100%;max-width:var(--max);margin-inline:auto;padding-inline:clamp(1.25rem,5vw,3rem)}
.flex{display:flex}.grid{display:grid}
.items-center{align-items:center}.justify-between{justify-content:space-between}
.gap-sm{gap:.75rem}.gap-md{gap:1.5rem}.gap-lg{gap:2.5rem}.gap-xl{gap:4rem}
.text-center{text-align:center}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}

/* ── DIVIDER ─────────────────────────────────────────────── */
.divider{width:60px;height:1px;background:linear-gradient(90deg,transparent,var(--gold),transparent);margin-inline:auto;margin-block:.75rem}

/* ── BUTTONS ─────────────────────────────────────────────── */
.btn{
  display:inline-flex;align-items:center;gap:.5rem;
  padding:.85rem 2.2rem;border-radius:var(--r-sm);
  font-family:var(--font-sans);font-size:.8rem;font-weight:500;
  letter-spacing:.12em;text-transform:uppercase;
  transition:all .35s var(--ease-premium);position:relative;overflow:hidden;
}
.btn::before{
  content:'';position:absolute;inset:0;
  background:rgba(255,255,255,.08);opacity:0;transition:opacity .3s;
}
.btn:hover::before{opacity:1}
.btn-gold{
  background:linear-gradient(135deg,var(--gold),var(--gold-dark));
  color:#0C1221;font-weight:600;
  box-shadow:0 0 0 0 rgba(242,196,53,.4);
}
.btn-gold:hover{
  transform:translateY(-2px);
  box-shadow:0 8px 32px rgba(242,196,53,.35),0 0 0 1px var(--gold);
}
.btn-outline{
  border:1px solid var(--gold);color:var(--gold);background:transparent;
}
.btn-outline:hover{
  background:rgba(242,196,53,.08);transform:translateY(-2px);
  box-shadow:0 8px 24px rgba(242,196,53,.15);
}
.btn-ghost{color:var(--text2);border:1px solid var(--border2)}
.btn-ghost:hover{border-color:var(--gold);color:var(--gold);transform:translateY(-2px)}

/* ── Hero reserva button ─────────────────────────────────── */
.btn-hero-reserva{
  display:inline-flex;align-items:center;gap:.9rem;
  padding:1rem 2.8rem;
  border:1px solid rgba(242,196,53,.6);
  border-radius:var(--r-sm);
  color:#fff;
  font-family:var(--font-sans);font-size:.75rem;font-weight:500;
  letter-spacing:.25em;text-transform:uppercase;
  position:relative;overflow:hidden;
  transition:all .4s var(--ease-premium);
  backdrop-filter:blur(8px);
  background:rgba(255,255,255,.04);
}
.btn-hero-reserva::before{
  content:'';position:absolute;inset:0;
  background:linear-gradient(135deg,rgba(242,196,53,.15),transparent);
  opacity:0;transition:opacity .4s;
}
.btn-hero-reserva:hover{
  border-color:var(--gold);
  color:var(--gold);
  background:rgba(242,196,53,.06);
  transform:translateY(-2px);
  box-shadow:0 12px 40px rgba(242,196,53,.15);
}
.btn-hero-reserva:hover::before{opacity:1}
.btn-hero-reserva svg{transition:transform .35s var(--ease-premium)}
.btn-hero-reserva:hover svg{transform:translateX(5px)}
.btn-wa{
  background:linear-gradient(135deg,#25d366,#128c7e);
  color:#fff;font-weight:600;
}
.btn-wa:hover{transform:translateY(-2px);box-shadow:0 8px 24px rgba(37,211,102,.3)}

/* ── ANIMATIONS ──────────────────────────────────────────── */
@keyframes fadeUp{from{opacity:0;transform:translateY(40px)}to{opacity:1;transform:translateY(0)}}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
@keyframes scaleIn{from{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}
@keyframes scroll-indicator{0%{opacity:1;transform:translateY(0)}100%{opacity:0;transform:translateY(12px)}}
@keyframes pulse-gold{0%,100%{box-shadow:0 0 0 0 rgba(242,196,53,.4)}50%{box-shadow:0 0 0 12px rgba(242,196,53,0)}}
@keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}
@keyframes heroScale{to{transform:scale(1)}}

.reveal{opacity:0;transform:translateY(50px);transition:opacity .8s var(--ease-premium),transform .8s var(--ease-premium)}
.reveal.visible{opacity:1;transform:translateY(0)}
.reveal-left{opacity:0;transform:translateX(-50px);transition:opacity .8s var(--ease-premium),transform .8s var(--ease-premium)}
.reveal-left.visible{opacity:1;transform:translateX(0)}
.reveal-right{opacity:0;transform:translateX(50px);transition:opacity .8s var(--ease-premium),transform .8s var(--ease-premium)}
.reveal-right.visible{opacity:1;transform:translateX(0)}
.reveal-scale{opacity:0;transform:scale(.9);transition:opacity .8s var(--ease-premium),transform .8s var(--ease-premium)}
.reveal-scale.visible{opacity:1;transform:scale(1)}

.delay-1{transition-delay:.1s}.delay-2{transition-delay:.2s}
.delay-3{transition-delay:.3s}.delay-4{transition-delay:.4s}
.delay-5{transition-delay:.5s}.delay-6{transition-delay:.6s}

/* ── SECTION SHARED ──────────────────────────────────────── */
.section{padding:clamp(5rem,10vw,9rem) 0}
.section-header{margin-bottom:clamp(3rem,6vw,5rem)}
.section-label{display:flex;align-items:center;gap:.75rem;justify-content:center;margin-bottom:.75rem}
.section-label::before,.section-label::after{
  content:'';flex:1;max-width:40px;height:1px;
  background:linear-gradient(90deg,transparent,var(--gold));
}
.section-label::after{background:linear-gradient(90deg,var(--gold),transparent)}
.section-title{
  font-family:var(--font-display);font-size:clamp(2rem,5vw,3.5rem);
  font-weight:700;line-height:1.1;letter-spacing:-.02em;
  color:var(--text);margin-bottom:1rem;
}
.section-desc{
  font-family:var(--font-serif);font-size:clamp(1rem,2vw,1.2rem);
  color:var(--text2);max-width:560px;margin-inline:auto;
}

/* ═══ NAVBAR ═══════════════════════════════════════════════ */
#navbar{
  position:fixed;top:0;left:0;right:0;z-index:1000;
  padding:1.25rem 0;
  transition:all .5s var(--ease-premium);
}
#navbar.scrolled{
  background:var(--glass);
  backdrop-filter:blur(24px) saturate(180%);
  -webkit-backdrop-filter:blur(24px) saturate(180%);
  border-bottom:1px solid var(--border);
  padding:.85rem 0;
  box-shadow:0 4px 32px var(--shadow);
}
.nav-inner{display:flex;align-items:center;justify-content:space-between;gap:2rem}

/* ── Logo navbar ─────────────────────────────────────────── */
.nav-logo{
  display:flex;align-items:center;gap:.7rem;
  font-family:var(--font-display);text-decoration:none;
}
.nav-logo-img{
  width:44px;height:44px;flex-shrink:0;
  border-radius:50%;
  background-color:#0a0f1c;
  background-image:url('../img/logo.png');
  background-size:225%;
  background-position:50% 38%;
  background-repeat:no-repeat;
  box-shadow:0 0 0 1.5px rgba(112,112,112,.5);
  transition:transform .4s var(--ease-premium),box-shadow .3s;
}
.nav-logo:hover .nav-logo-img{
  transform:scale(1.08) rotate(-3deg);
  box-shadow:0 0 0 2px var(--gold),0 4px 16px rgba(0,0,0,.4);
}
.nav-logo-text{display:flex;flex-direction:column;line-height:1}
.nav-logo .logo-main{font-size:1.25rem;font-weight:700;letter-spacing:.04em;color:var(--text)}
.nav-logo .logo-sub{font-size:.58rem;font-weight:400;letter-spacing:.3em;text-transform:uppercase;color:var(--gold);margin-top:.15rem}
.nav-links{display:flex;align-items:center;gap:2.5rem}
.nav-link{
  font-size:.75rem;font-weight:500;letter-spacing:.15em;text-transform:uppercase;
  color:var(--text2);position:relative;padding-bottom:3px;transition:color .3s;
}
.nav-link::after{
  content:'';position:absolute;bottom:0;left:0;width:0;height:1px;
  background:var(--gold);transition:width .35s var(--ease-premium);
}
.nav-link:hover{color:var(--gold)}
.nav-link:hover::after{width:100%}
.nav-dropdown{
  position:relative;
}
.nav-dropdown>button{
  display:inline-flex;
  align-items:center;
  gap:.35rem;
}
.nav-dropdown-caret{
  display:inline-block;
  font-size:.78rem;
  line-height:1;
  transform:translateY(-1px);
  transition:transform .25s var(--ease-premium);
}
.nav-dropdown.open .nav-dropdown-caret{
  transform:translateY(-1px) rotate(180deg);
}
.nav-dropdown-menu{
  position:absolute;
  top:calc(100% + 1rem);
  left:50%;
  z-index:20;
  min-width:190px;
  padding:.55rem;
  border:1px solid rgba(245,194,48,.18);
  border-radius:14px;
  background:rgba(10,16,30,.96);
  box-shadow:0 22px 54px rgba(0,0,0,.36),inset 0 1px 0 rgba(255,255,255,.045);
  backdrop-filter:blur(18px);
  opacity:0;
  pointer-events:none;
  transform:translate(-50%,-8px);
  transition:opacity .2s,transform .2s;
}
.nav-dropdown.open .nav-dropdown-menu{
  opacity:1;
  pointer-events:auto;
  transform:translate(-50%,0);
}
.nav-dropdown-menu a{
  display:flex;
  align-items:center;
  min-height:38px;
  padding:.7rem .85rem;
  border-radius:10px;
  color:var(--text2);
  font-size:.72rem;
  font-weight:700;
  letter-spacing:.12em;
  text-transform:uppercase;
  transition:background .2s,color .2s;
}
.nav-dropdown-menu a:hover,
.nav-dropdown-menu a.active{
  color:#0C1221;
  background:var(--gold);
}
.nav-actions{display:flex;align-items:center;gap:1rem}
.lang-switch{
  display:inline-flex;
  align-items:center;
  gap:.2rem;
  padding:.18rem;
  border:1px solid var(--border2);
  border-radius:999px;
  background:rgba(255,255,255,.035);
}
.lang-switch a{
  display:grid;
  place-items:center;
  min-width:32px;
  height:28px;
  padding:0 .55rem;
  border-radius:999px;
  color:var(--text2);
  font-size:.64rem;
  font-weight:800;
  letter-spacing:.08em;
  transition:background .25s,color .25s,box-shadow .25s;
}
.lang-switch a:hover,
.lang-switch a.active{
  color:#0C1221;
  background:var(--gold);
  box-shadow:0 8px 22px rgba(245,194,48,.18);
}
.lang-switch-mobile{display:none}
.nav-reserva{padding:.6rem 1.4rem;font-size:.7rem}

.hamburger{
  display:none;flex-direction:column;justify-content:center;gap:5px;
  width:38px;height:38px;padding:6px;
  border:1px solid var(--border);border-radius:var(--r-sm);
}
.hamburger span{
  width:100%;height:1.5px;background:var(--text);border-radius:2px;
  transition:all .35s var(--ease-premium);transform-origin:center;
}
.hamburger.open span:nth-child(1){transform:translateY(6.5px) rotate(45deg)}
.hamburger.open span:nth-child(2){opacity:0;transform:scaleX(0)}
.hamburger.open span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg)}

/* ── Logo menú móvil ─────────────────────────────────────── */
.mobile-menu-brand{
  display:flex;flex-direction:column;align-items:center;gap:.5rem;
}
.mobile-menu-logo-img{
  width:80px;height:80px;
  border-radius:50%;
  background-color:#0a0f1c;
  background-image:url('../img/logo.png');
  background-size:225%;
  background-position:50% 38%;
  background-repeat:no-repeat;
  box-shadow:0 0 0 2px var(--gold),0 4px 24px rgba(0,0,0,.5);
  animation:float 3s ease-in-out infinite;
}
.mobile-menu-logo-name{
  font-family:var(--font-display);font-size:1.3rem;font-weight:700;
  letter-spacing:.04em;color:var(--text);line-height:1;
}
.mobile-menu-logo-sub{
  font-size:.58rem;font-weight:400;letter-spacing:.3em;
  text-transform:uppercase;color:var(--gold);
}

.mobile-menu{
  position:fixed;inset:0;z-index:999;
  background:var(--glass2);backdrop-filter:blur(32px) saturate(200%);
  -webkit-backdrop-filter:blur(32px) saturate(200%);
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2.5rem;
  opacity:0;pointer-events:none;transition:opacity .45s var(--ease-premium);
}
.mobile-menu.open{opacity:1;pointer-events:all}

/* Nav dentro del menú móvil: columna centrada */
.mobile-menu nav{
  display:flex;flex-direction:column;align-items:center;gap:1.75rem;
}

/* Admin notification styles (appended) */
.admin-notification-panel{display:block;margin-bottom:1.25rem;padding:.75rem;border-radius:.75rem;background:rgba(255,255,255,0.02);border:1px solid rgba(255,255,255,0.04);color:var(--text3)}
.admin-notification-inner{display:flex;justify-content:space-between;align-items:center}
.admin-notification-left{display:flex;gap:.75rem;align-items:center}
.admin-notification-icon{font-size:1.4rem;line-height:1}
.admin-notification-title{margin:0;font-weight:700;color:var(--text)}
.admin-notification-text{margin:0;color:var(--text3)}
.admin-notification-right{margin-left:1rem}
.admin-notification-panel.new{background:linear-gradient(90deg,rgba(40,95,60,0.08),rgba(28,80,55,0.06));border-color:rgba(34,150,90,0.3);box-shadow:0 6px 18px rgba(24,120,70,0.06);animation:pulse 1s ease-in-out 0s 2}
@keyframes pulse{0%{transform:translateY(0)}50%{transform:translateY(-4px)}100%{transform:translateY(0)}}
.admin-notification-history{list-style:none;margin:0;padding:0}
.admin-notification-history li{padding:0}
.admin-notification-history .muted{color:var(--text3)}

/* Drawer behavior: fixed, collapsible and pinnable */
.admin-notification-panel{
  position:fixed;right:20px;top:110px;width:320px;z-index:1600;
  transform:translateX(0);opacity:1;visibility:visible;
  transition:transform .35s ease,opacity .28s ease,visibility .28s ease,box-shadow .25s;
}
.admin-notification-panel.collapsed{
  transform:translateX(calc(100% + 2rem));opacity:0;visibility:hidden;pointer-events:none;
}
.admin-notification-panel.collapsed.new{animation:none}
.admin-notification-panel.pinned{right:20px;}
.admin-notification-panel .admin-notification-inner{display:grid;gap:.8rem;padding:.85rem;padding-top:1.4rem}
.admin-notification-panel .admin-notification-left{align-items:flex-start;min-width:0}
.admin-notification-panel .admin-notification-right{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;margin-left:2.15rem}
.admin-notification-close{
  position:absolute;top:.65rem;right:.65rem;z-index:1;
  display:inline-flex;align-items:center;justify-content:center;
  width:34px;height:34px;padding:0;border-radius:.55rem;
}

/* small toggle button (visible when collapsed) */
.admin-notif-edge-btn{
  position:fixed;right:1.25rem;top:1.25rem;z-index:1700;width:48px;height:48px;border-radius:999px;
  background:linear-gradient(145deg,rgba(30,42,69,.94),rgba(12,18,33,.94));
  display:flex;align-items:center;justify-content:center;color:var(--gold);border:1px solid rgba(245,194,48,.18);
  box-shadow:0 18px 44px rgba(0,0,0,.28),inset 0 1px 0 rgba(255,255,255,.06);
  transition:transform .35s var(--ease-premium),border-color .3s,box-shadow .35s;
}
.admin-notif-edge-btn[hidden]{display:none!important}
.admin-notif-edge-btn:hover{
  border-color:rgba(245,194,48,.42);transform:translateY(-2px);
  box-shadow:0 22px 52px rgba(0,0,0,.34),0 0 24px rgba(245,194,48,.12);
}

/* Modal for full history */
.modal{position:fixed;inset:0;display:none;align-items:center;justify-content:center;z-index:2000}
.modal[aria-hidden="false"]{display:flex}
.modal-backdrop{position:absolute;inset:0;background:rgba(6,10,18,.6)}
.modal-panel{position:relative;z-index:2001;background:var(--surface);border-radius:12px;max-width:1000px;width:92%;max-height:84vh;overflow:auto;border:1px solid var(--border2);box-shadow:0 20px 60px rgba(0,0,0,.6);padding:1rem}
.modal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}
.modal-body{font-size:.95rem;color:var(--text3)}
.modal-table{width:100%;border-collapse:collapse}
.modal-table th,.modal-table td{padding:.6rem .75rem;text-align:left;border-bottom:1px solid rgba(255,255,255,.03)}
.modal-loading{color:var(--text3)}

.mobile-link{
  display:block;
  font-family:var(--font-display);font-size:clamp(1.75rem,7vw,2.5rem);font-weight:400;
  color:var(--text);letter-spacing:.04em;
  transition:color .3s,transform .35s var(--ease-premium);
  text-align:center;
}
.mobile-link:hover,.mobile-link:focus{
  color:var(--gold);transform:translateX(10px);
}
.mobile-dropdown{
  display:grid;
  justify-items:center;
  gap:.75rem;
}
.mobile-dropdown .mobile-link{
  width:auto;
}
.mobile-dropdown-menu{
  display:grid;
  gap:.55rem;
  max-height:0;
  opacity:0;
  overflow:hidden;
  transform:translateY(-6px);
  transition:max-height .3s var(--ease-premium),opacity .25s,transform .25s;
}
.mobile-dropdown.open .mobile-dropdown-menu{
  max-height:120px;
  opacity:1;
  transform:translateY(0);
}
.mobile-dropdown-menu a{
  color:var(--gold);
  font-size:.8rem;
  font-weight:800;
  letter-spacing:.18em;
  text-transform:uppercase;
  text-align:center;
}
.mobile-menu-line{
  width:1px;height:48px;
  background:linear-gradient(to bottom,transparent,var(--gold),transparent);
}

/* ═══ HERO ═══════════════════════════════════════════════════ */
#hero{
  position:relative;height:100svh;min-height:700px;
  display:flex;align-items:center;justify-content:center;overflow:hidden;
}
.hero-bg{
  position:absolute;inset:0;z-index:0;
  background:url('https://images.unsplash.com/photo-1414235077428-338989a2e8c0?w=1920&q=85') center/cover no-repeat;
  transform:scale(1.05);animation:heroScale 12s var(--ease-soft) forwards;
}
@media(min-width:641px){
  body.home-page .hero-bg{
    background-image:url('../img/restaurante/restaurante2.png');
    background-position:center center;
  }
}
.hero-overlay{
  position:absolute;inset:0;z-index:1;
  background:linear-gradient(to bottom,rgba(12,18,33,.2) 0%,rgba(12,18,33,.55) 40%,rgba(12,18,33,.82) 100%);
}
[data-theme="light"] .hero-overlay{
  background:linear-gradient(to bottom,rgba(15,20,35,.15) 0%,rgba(15,20,35,.45) 40%,rgba(15,20,35,.75) 100%);
}
.hero-content{
  position:relative;z-index:2;text-align:center;
  padding-inline:clamp(1rem,5vw,3rem);max-width:900px;
}
/* Ocultar logo navbar en home en todas las pantallas */
body.home-page .nav-logo{display:none}
body.home-page .nav-links{flex:1;justify-content:center}

/* Hero brand: visible en todas las pantallas */
.hero-brand-img{display:none}
.hero-brand-mobile{
  display:flex;flex-direction:column;align-items:center;gap:.6rem;
  margin-bottom:2rem;animation:fadeIn 1s .2s both;
}
.hero-brand-img-wrap{
  width:110px;height:110px;border-radius:50%;flex-shrink:0;
  background-color:#0a0f1c;
  background-image:url('../img/logo.png');
  background-size:225%;
  background-position:50% 38%;
  background-repeat:no-repeat;
  box-shadow:0 0 0 2px var(--gold),0 6px 32px rgba(0,0,0,.5);
  animation:float 4s ease-in-out infinite, pulse-gold 3s ease-in-out infinite;
}
.hero-brand-name{
  font-family:var(--font-display);font-size:1.6rem;font-weight:700;
  color:#fff;letter-spacing:.04em;
}
.hero-brand-sub{
  font-size:.65rem;font-weight:600;letter-spacing:.35em;text-transform:uppercase;
  color:var(--gold);
}

.hero-label{
  display:none;
  font-size:.7rem;font-weight:600;letter-spacing:.4em;text-transform:uppercase;
  color:var(--gold);margin-bottom:1.5rem;animation:fadeIn 1s .3s both;
}
.hero-title{
  font-family:var(--font-display);font-size:clamp(3rem,8vw,6.5rem);
  font-weight:700;line-height:1.05;letter-spacing:-.03em;color:#fff;
  margin-bottom:1.5rem;animation:fadeUp 1s .5s both;
}
.hero-title em{font-style:italic;color:var(--gold);font-weight:400;font-family:var(--font-serif)}
.hero-welcome{
  font-family:var(--font-serif);font-size:clamp(1rem,2.2vw,1.2rem);
  font-weight:300;color:rgba(232,240,255,.72);
  text-align:center;max-width:560px;margin-inline:auto;
  margin-bottom:.5rem;animation:fadeUp 1s .65s both;
}
.hero-desc{
  font-family:var(--font-serif);font-size:clamp(1rem,2.2vw,1.2rem);
  color:rgba(232,240,255,.72);font-weight:300;max-width:560px;margin-inline:auto;
  margin-bottom:2.5rem;animation:fadeUp 1s .8s both;
}
.hero-ctas{
  display:flex;align-items:center;justify-content:center;
  flex-wrap:wrap;gap:1rem;animation:fadeUp 1s .9s both;
}
.hero-scroll{
  position:absolute;bottom:1.15rem;left:50%;transform:translateX(-50%);
  z-index:2;display:flex;flex-direction:column;align-items:center;gap:.5rem;
  color:rgba(232,240,255,.5);font-size:.65rem;letter-spacing:.2em;text-transform:uppercase;
  pointer-events:none;
}
.hero-scroll-line{
  width:1px;height:34px;
  background:linear-gradient(var(--gold),transparent);
  animation:scroll-indicator 1.5s ease-in-out infinite;
}
.hero-stats{
  position:absolute;bottom:2.5rem;z-index:2;
  display:flex;gap:3rem;left:clamp(1.25rem,5vw,3rem);
  animation:fadeIn 1s 1.2s both;
}
.hero-stat{display:flex;flex-direction:column;gap:.15rem}
.hero-stat-num{font-family:var(--font-display);font-size:1.6rem;font-weight:700;color:#fff;line-height:1}
.hero-stat-label{font-size:.6rem;letter-spacing:.2em;text-transform:uppercase;color:rgba(232,240,255,.5)}

@media(max-height:780px){
  .hero-scroll{display:none}
}

/* ═══ RESTAURANTE PAGE ══════════════════════════════════════ */
#experiencia{background:var(--bg2);padding:0}

/* ── Hero Premium ── */
.rest-hero{
  position:relative;
  overflow:hidden;background:var(--bg);
  /* Desktop: pantalla completa */
  min-height:100vh;
  display:flex;align-items:center;justify-content:center;
}
.rest-hero-bg{
  position:absolute;inset:0;
}
.rest-hero-img{
  width:100%;height:100%;
  object-fit:cover !important;object-position:center 22% !important;
  display:block;
}
.rest-hero .rest-hero-img{
  object-fit:cover !important;
}
.rest-hero-overlay{
  position:absolute;inset:0;
  background:linear-gradient(
    to bottom,
    rgba(5,7,18,0)   0%,
    rgba(5,7,18,.02) 38%,
    rgba(5,7,18,.5)  62%,
    rgba(5,7,18,.88) 78%,
    rgba(5,7,18,.96) 100%
  );
}
@media (min-width:1024px) {
  .rest-hero-img{
    object-position:center 25%;
    transform:scale(1.04);
  }
  .rest-hero-overlay{
    background:linear-gradient(
      to bottom,
      rgba(5,7,18,0)   0%,
      rgba(5,7,18,.02) 28%,
      rgba(5,7,18,.28) 52%,
      rgba(5,7,18,.52) 74%,
      rgba(5,7,18,.7) 100%
    );
  }
}
.rest-hero-content{
  position:relative;z-index:2;text-align:center;
  padding:2rem clamp(1.5rem,5vw,4rem) clamp(3rem,6vw,5rem);
  max-width:700px;width:100%;
  margin-top:0;
  display:flex;flex-direction:column;align-items:center;gap:1.2rem;
}
/* ── Cartel neón ── */
.rest-hero-neon{
  display:flex;flex-direction:column;align-items:center;
  line-height:1;margin-bottom:.2rem;
}
.rest-hero-neon-main{
  display:block;
  font-family:'Inter',var(--font-sans);
  font-size:clamp(4rem,14vw,10rem);
  font-weight:900;letter-spacing:.08em;text-transform:uppercase;
  color:#f0a0ff;
  -webkit-text-stroke:2px rgba(210,80,255,.65);
  text-shadow:
    0 0 5px rgba(255,255,255,.6),
    0 0 14px #e060ff,
    0 0 30px #c800e0,
    0 0 60px #c800e0,
    0 0 100px #9900bb,
    0 0 160px #6600aa;
  line-height:1;
}
.rest-hero-neon-script{
  display:block;
  font-family:'Dancing Script',cursive;
  font-size:clamp(2.8rem,8vw,6rem);
  font-weight:700;
  color:#f5c230;
  text-shadow:
    0 0 6px rgba(255,255,255,.55),
    0 0 16px #f5c230,
    0 0 32px #d4a800,
    0 0 60px #b08a00;
  margin-top:clamp(-1.2rem,-3.5vw,-2.4rem);
  position:relative;z-index:1;
  line-height:1.15;
}
.rest-hero-eyebrow{
  font-family:var(--font-sans);font-size:.68rem;
  letter-spacing:.4em;text-transform:uppercase;color:var(--gold);
  background:rgba(245,194,48,.08);border:1px solid rgba(245,194,48,.3);
  padding:.5rem 1.5rem;border-radius:100px;
}
.rest-hero-title{
  font-family:var(--font-serif);font-style:italic;font-weight:400;
  font-size:clamp(2rem,4.5vw,3.5rem);
  letter-spacing:.02em;line-height:1.1;color:rgba(255,255,255,.95);
  text-shadow:0 2px 32px rgba(0,0,0,.7);
}
.rest-hero-rule{
  width:56px;height:1px;
  background:linear-gradient(90deg,transparent,var(--gold),transparent);
  opacity:.85;
}
.rest-hero-sub{
  font-family:var(--font-serif);font-weight:300;
  font-size:clamp(1rem,1.9vw,1.3rem);
  color:rgba(232,240,255,.72);line-height:1.85;max-width:520px;
}
.rest-hero-actions{
  display:flex;align-items:center;gap:1.25rem;flex-wrap:wrap;
  justify-content:center;margin-top:.25rem;
}
.rest-hero-cta{
  display:inline-flex;align-items:center;gap:.75rem;
  padding:.95rem 2.6rem;border-radius:2px;
  background:linear-gradient(135deg,var(--gold),var(--gold-dark));
  font-family:var(--font-sans);font-size:.72rem;
  letter-spacing:.22em;text-transform:uppercase;
  color:#0C1221;font-weight:700;
  transition:transform .35s var(--ease-premium),box-shadow .35s;
}
.rest-hero-cta:hover{
  transform:translateY(-3px);
  box-shadow:0 16px 48px rgba(245,194,48,.4);
}
.rest-hero-cta-ghost{
  display:inline-flex;align-items:center;gap:.75rem;
  padding:.95rem 2.4rem;border-radius:2px;
  border:1px solid rgba(245,194,48,.45);
  font-family:var(--font-sans);font-size:.72rem;
  letter-spacing:.22em;text-transform:uppercase;color:rgba(245,194,48,.85);
  transition:border-color .3s,background .3s,color .3s;
}
.rest-hero-cta-ghost:hover{
  border-color:var(--gold);color:var(--gold);
  background:rgba(245,194,48,.07);
}
/* ── Ornamento ── */
.rest-hero-ornament{
  display:flex;align-items:center;gap:1.2rem;
  color:var(--gold);opacity:.55;margin-top:.4rem;
}
.rest-hero-ornament-line{
  display:block;width:clamp(60px,10vw,120px);height:1px;
  background:linear-gradient(90deg,transparent,var(--gold));
}
.rest-hero-ornament-line:last-child{
  background:linear-gradient(270deg,transparent,var(--gold));
}
/* Scroll indicator */
.rest-hero-scroll{
  position:absolute;bottom:2.5rem;left:50%;transform:translateX(-50%);
  display:flex;flex-direction:column;align-items:center;gap:.6rem;z-index:3;
}
.rest-hero-scroll-line{
  display:block;width:1px;height:52px;
  background:linear-gradient(to bottom,transparent,var(--gold));
  animation:scrollPulse 2.4s ease-in-out infinite;
}
.rest-hero-scroll-text{
  font-family:var(--font-sans);font-size:.58rem;
  letter-spacing:.32em;text-transform:uppercase;color:var(--gold);opacity:.65;
}
@keyframes scrollPulse{
  0%,100%{opacity:.25;transform:scaleY(.6);transform-origin:top}
  50%{opacity:1;transform:scaleY(1);transform-origin:top}
}

/* ── Stats bar ── */
.rest-stats-bar{
  display:flex;align-items:stretch;
  background:var(--surface);
  border-top:1px solid var(--border2);border-bottom:1px solid var(--border2);
  position:relative;overflow:hidden;
}
.rest-stats-bar::before{
  content:'';position:absolute;inset:0;
  background:linear-gradient(90deg,transparent,rgba(245,194,48,.025),transparent);
  pointer-events:none;
}
.rest-stat{
  flex:1;text-align:center;
  padding:clamp(2rem,3.5vw,3rem) 1rem;
  position:relative;transition:background .35s;
}
.rest-stat::after{
  content:'';position:absolute;bottom:0;left:50%;transform:translateX(-50%);
  width:0;height:2px;background:var(--gold);opacity:0;
  transition:width .45s var(--ease-premium),opacity .3s;
}
.rest-stat:hover::after{width:56%;opacity:.6}
.rest-stat-num{
  display:block;
  font-family:var(--font-display);font-size:clamp(2.4rem,4vw,3.8rem);
  font-weight:700;color:var(--gold);line-height:1;letter-spacing:-.03em;
}
.rest-stat-num sup{font-size:.42em;vertical-align:super;letter-spacing:0}
.rest-stat-label{
  display:block;margin-top:.55rem;
  font-size:.66rem;letter-spacing:.2em;text-transform:uppercase;color:var(--text3);
}
.rest-stat-sep{width:1px;background:var(--border2);flex-shrink:0;margin-block:1rem}

/* ── Historia Split ── */
.rest-split{
  display:grid;
  grid-template-columns:minmax(360px,.92fr) minmax(0,1.08fr);
  width:min(1280px,calc(100% - clamp(2rem,6vw,7rem)));
  margin:clamp(4rem,7vw,7rem) auto;
  overflow:hidden;
  background:
    radial-gradient(circle at 78% 12%,rgba(245,194,48,.08),transparent 18rem),
    linear-gradient(145deg,rgba(255,255,255,.045),rgba(255,255,255,.015)),
    var(--bg);
  border:1px solid rgba(245,194,48,.12);
  border-radius:clamp(22px,2vw,32px);
  box-shadow:0 30px 90px rgba(0,0,0,.28),inset 0 1px 0 rgba(255,255,255,.045);
}
.rest-split-img{
  position:relative;
  overflow:hidden;
  min-height:clamp(390px,36vw,540px);
  background:#070b15;
}
.rest-split-img img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover !important;
  object-position:center center !important;
  transition:transform 1.3s var(--ease-premium),filter .7s;
  filter:brightness(.86) saturate(.94) contrast(1.02);
}
.rest-split:hover .rest-split-img img{
  transform:scale(1.035);
  filter:brightness(.94) saturate(1.05) contrast(1.04);
}
.rest-split-badge{
  position:absolute;bottom:1.75rem;right:1.75rem;
  background:rgba(8,12,24,.88);backdrop-filter:blur(16px);
  border:1px solid rgba(245,194,48,.22);border-radius:var(--r-md);
  padding:1.1rem 1.5rem;text-align:center;
  box-shadow:0 8px 32px rgba(0,0,0,.4);
}
.rest-split-badge-num{
  display:block;font-family:var(--font-display);font-size:2.2rem;
  font-weight:700;color:var(--gold);line-height:1;
}
.rest-split-badge-stars{
  display:block;color:var(--gold);font-size:.9rem;margin:.3rem 0 .2rem;
}
.rest-split-badge-label{
  display:block;font-size:.6rem;letter-spacing:.2em;text-transform:uppercase;color:var(--text3);
}
.rest-split-body{
  display:flex;
  align-items:center;
  min-height:clamp(390px,36vw,540px);
  background:
    linear-gradient(90deg,rgba(5,9,20,.82),rgba(9,15,29,.98)),
    var(--bg);
}
.rest-split-content{
  width:100%;
  max-width:640px;
  padding:clamp(2.4rem,4.3vw,4.8rem);
  display:flex;
  flex-direction:column;
  gap:clamp(1rem,1.5vw,1.35rem);
}
.rest-split-title{
  font-family:var(--font-serif);font-style:italic;font-weight:400;
  font-size:clamp(2.15rem,3.1vw,3.05rem);
  color:var(--text);line-height:1.08;letter-spacing:0;
  margin-top:.15rem;
}
.rest-split-rule{
  width:48px;height:1px;
  background:linear-gradient(90deg,var(--gold),transparent);
  opacity:.7;
}
.rest-split-text{
  max-width:58ch;
  font-size:clamp(.92rem,.9vw,1rem);
  color:var(--text2);
  line-height:1.8;
}
.rest-split-features{
  display:grid;grid-template-columns:1fr 1fr;gap:.75rem 1.5rem;margin-top:.5rem;
}
.rest-split-feat{
  display:flex;align-items:center;gap:.65rem;
  font-size:.8rem;color:var(--text2);letter-spacing:.02em;
}
.rest-split-feat svg{color:var(--gold);flex-shrink:0}

/* ── Quote / Filosofía ── */
.rest-philosophy{
  padding:clamp(5.5rem,11vw,10rem) 0;
  background:var(--bg2);position:relative;overflow:hidden;
}
.rest-philosophy::before{
  content:'';position:absolute;inset:0;
  background:radial-gradient(ellipse 80% 60% at 50% 50%,rgba(245,194,48,.04) 0%,transparent 70%);
  pointer-events:none;
}
.rest-quote{text-align:center;max-width:720px;margin:0 auto;position:relative}
.rest-quote-mark{
  display:block;
  font-family:var(--font-serif);font-style:italic;
  font-size:8.5rem;color:var(--gold);
  line-height:.28;margin-bottom:2rem;opacity:.28;user-select:none;
}
.rest-quote-text{
  font-family:var(--font-serif);font-style:italic;font-weight:300;
  font-size:clamp(1.7rem,3.4vw,2.65rem);
  color:var(--text);line-height:1.45;letter-spacing:-.01em;
  margin-bottom:2.25rem;
}
.rest-quote-attr{
  font-family:var(--font-sans);font-size:.66rem;
  letter-spacing:.32em;text-transform:uppercase;color:var(--gold);opacity:.8;
}

/* ── Pilares Premium ── */
.rest-pillars{
  padding:clamp(5rem,10vw,9rem) 0;
  background:var(--bg);
}
.rest-pillars-header{
  text-align:center;margin-bottom:clamp(3rem,6vw,5.5rem);
}
.rest-pillars-title{
  font-family:var(--font-serif);font-style:italic;font-weight:400;
  font-size:clamp(2rem,3.6vw,3.1rem);
  color:var(--text);line-height:1.2;margin-top:.75rem;
}
.rest-pillars-grid{
  display:grid;grid-template-columns:repeat(4,1fr);
  border:1px solid var(--border2);border-radius:var(--r-lg);overflow:hidden;
}
.rest-pillar{
  padding:clamp(2.5rem,4vw,3.5rem) clamp(1.5rem,2.5vw,2rem);
  background:var(--surface);
  border-right:1px solid var(--border2);
  position:relative;overflow:hidden;
  display:flex;flex-direction:column;gap:1.25rem;
  text-align:center;align-items:center;
  transition:background .4s;
}
.rest-pillar:last-child{border-right:none}
.rest-pillar::after{
  content:'';position:absolute;bottom:0;left:0;right:0;height:2px;
  background:linear-gradient(90deg,transparent,var(--gold),transparent);
  transform:scaleX(0);transform-origin:center;
  transition:transform .55s var(--ease-premium);
}
.rest-pillar:hover{background:var(--surface2)}
.rest-pillar:hover::after{transform:scaleX(1)}
.rest-pillar-icon{
  width:58px;height:58px;border-radius:50%;
  background:rgba(245,194,48,.07);border:1px solid rgba(245,194,48,.2);
  display:flex;align-items:center;justify-content:center;color:var(--gold);
  transition:background .4s,transform .5s var(--ease-premium),box-shadow .4s;
  flex-shrink:0;
}
.rest-pillar:hover .rest-pillar-icon{
  background:rgba(245,194,48,.15);
  transform:scale(1.12) rotate(6deg);
  box-shadow:0 0 32px rgba(245,194,48,.2);
}
.rest-pillar-title{
  font-family:var(--font-display);font-size:1.05rem;font-weight:700;
  color:var(--text);letter-spacing:-.01em;
}
.rest-pillar-text{
  font-size:.82rem;color:var(--text3);line-height:1.72;
}

/* ── Galería Premium ── */
.rest-gallery-wrap{
  padding-top:clamp(4.5rem,9vw,8rem);
  padding-bottom:clamp(3.5rem,7vw,6rem);
  background:var(--bg2);
}
.rest-gallery-header{
  text-align:center;
  padding-bottom:clamp(2.5rem,5vw,4rem);
}
.rest-gallery-title{
  font-family:var(--font-serif);font-style:italic;font-weight:400;
  font-size:clamp(1.9rem,3.2vw,2.75rem);
  color:var(--text);margin-top:.6rem;
}

.rest-gallery-grid{
  display:grid;
  grid-template-columns:repeat(12,minmax(0,1fr));
  gap:clamp(18px,1.7vw,26px);
  max-width:1320px;
  margin:0 auto;
  padding:0 clamp(1rem,3vw,2.5rem);
}
.gal-row-top{
  display:contents;
}
.gal-row-bot{
  display:contents;
}

.gal-1,.gal-2,.gal-3,.gal-4,.gal-5,.gal-6,.gal-7{
  min-height:0;
  height:auto;
  aspect-ratio:4 / 5;
}
.gal-1,.gal-2,.gal-3,.gal-4{grid-column:span 3}
.gal-5,.gal-6,.gal-7{grid-column:span 4}

/* ── Estilos comunes ── */
.gal-item{
  position:relative;overflow:hidden;
  border-radius:18px;cursor:zoom-in;
  margin:0;
  background:rgba(255,255,255,.035);
  border:1px solid rgba(255,255,255,.08);
  box-shadow:0 18px 48px rgba(0,0,0,.22);
  transition:transform .45s var(--ease-premium),box-shadow .45s var(--ease-premium),border-color .45s;
}
.gal-item img{
  position:absolute;inset:0;
  width:100%;height:100%;
  object-fit:cover !important;
  object-position:center center !important;
  display:block;
  transition:transform .9s var(--ease-premium),filter .55s;
  filter:brightness(.78) saturate(.88);
}
.gal-item:hover{
  transform:translateY(-8px);
  border-color:rgba(201,167,107,.42);
  box-shadow:0 28px 70px rgba(0,0,0,.34),0 0 0 1px rgba(201,167,107,.12);
}
.gal-item:hover img{
  transform:scale(1.045);filter:brightness(1) saturate(1.05);
}
.gal-item:hover img[src^="uploads/"],
.gal-item:hover img[src*="/uploads/"],
.dish-card:hover .dish-img[src^="uploads/"],
.dish-card:hover .dish-img[src*="/uploads/"],
.ig-item:hover .ig-img[src^="uploads/"],
.ig-item:hover .ig-img[src*="/uploads/"],
.cms-public-gallery-item:hover img[src^="uploads/"],
.cms-public-gallery-item:hover img[src*="/uploads/"],
.evento-card:hover .evento-img[src^="uploads/"],
.evento-card:hover .evento-img[src*="/uploads/"]{
  transform:none !important;
}
.rest-gallery-grid .gal-item:hover img[src^="uploads/"],
.rest-gallery-grid .gal-item:hover img[src*="/uploads/"]{
  transform:scale(1.045) !important;
}
.gal-overlay{
  position:absolute;inset:0;
  background:linear-gradient(to top,rgba(8,12,24,.65) 0%,rgba(8,12,24,.1) 45%,transparent 100%);
  transition:opacity .45s;pointer-events:none;
}
.gal-item:hover .gal-overlay{opacity:.2}
.gal-label{
  position:absolute;bottom:1rem;left:1.1rem;z-index:2;
  font-family:var(--font-sans);font-size:.58rem;
  letter-spacing:.2em;text-transform:uppercase;
  color:rgba(255,255,255,.7);
  opacity:0;transform:translateY(6px);
  transition:opacity .4s var(--ease-premium),transform .4s var(--ease-premium);
  pointer-events:none;
}
.gal-item:hover .gal-label{opacity:1;transform:translateY(0)}

/* ── Ambience cinematic ── */
.rest-ambience{
  position:relative;
  min-height:clamp(520px,58vw,720px);
  overflow:hidden;
  background:
    radial-gradient(circle at 18% 18%,rgba(245,194,48,.1),transparent 18rem),
    linear-gradient(135deg,#080d18 0%,#0c1424 44%,#050914 100%);
}
.rest-ambience-img{
  position:absolute;
  inset:0 0 0 37%;
  overflow:hidden;
}
.rest-ambience-img img{
  width:100%;
  height:100%;
  object-fit:cover !important;
  object-position:43% 64% !important;
  filter:brightness(.96) saturate(1.06) contrast(1.08);
  transform:scale(1.02);
  transition:transform 1.8s var(--ease-premium),filter 1.8s;
}
.rest-ambience::before{
  content:'';
  position:absolute;
  inset:0;
  z-index:1;
  pointer-events:none;
  background:
    linear-gradient(90deg,#080d18 0%,rgba(8,13,24,.98) 29%,rgba(8,13,24,.58) 45%,rgba(8,13,24,.04) 70%,rgba(8,13,24,.32) 100%),
    linear-gradient(180deg,rgba(5,9,20,.08),rgba(5,9,20,.26));
}
.rest-ambience::after{
  content:'';
  position:absolute;
  inset:1.4rem;
  z-index:2;
  border:1px solid rgba(245,194,48,.12);
  border-radius:1.4rem;
  pointer-events:none;
}
.rest-ambience-img::after{
  content:'';
  position:absolute;
  inset:0;
  pointer-events:none;
  background:radial-gradient(ellipse at 54% 66%,rgba(255,255,255,.18),rgba(255,255,255,.055) 24%,transparent 50%);
  mix-blend-mode:screen;
}
.rest-split:hover .rest-split-img img[src^="uploads/"],
.rest-split:hover .rest-split-img img[src*="/uploads/"],
.rest-ambience:hover .rest-ambience-img img[src^="uploads/"],
.rest-ambience:hover .rest-ambience-img img[src*="/uploads/"]{
  transform:none !important;
}
.rest-ambience:hover .rest-ambience-img img{
  transform:scale(1);
  filter:brightness(.98) saturate(1.08) contrast(1.08);
}
.rest-ambience-overlay{
  position:relative;
  z-index:3;
  min-height:inherit;
  background:none;
  display:flex;
  align-items:center;
}
.rest-ambience-content{
  width:min(48vw,620px);
  padding:clamp(3rem,6vw,6.5rem);
  display:flex;
  flex-direction:column;
  gap:1.45rem;
}
.rest-ambience-title{
  font-family:var(--font-serif);font-style:italic;font-weight:400;
  font-size:clamp(3rem,5vw,5.3rem);
  color:#fff;
  line-height:.98;
  max-width:8.8ch;
  text-shadow:0 18px 46px rgba(0,0,0,.42);
}
.rest-ambience-content .t-label{
  width:max-content;
  max-width:100%;
  padding:.55rem .8rem;
  border:1px solid rgba(245,194,48,.16);
  border-radius:999px;
  background:rgba(245,194,48,.06);
  letter-spacing:.22em;
}
.rest-ambience-content p:not(.t-label){
  max-width:430px;
  color:#b7c5d8;
  font-size:1rem;
  line-height:1.8;
}
.rest-ambience-content .btn{
  width:min(350px,100%);
  justify-content:center;
  margin-top:.25rem;
  box-shadow:0 16px 42px rgba(224,173,31,.22);
}
.rest-ambience-sub{
  font-size:clamp(.9rem,1.5vw,1.05rem);
  color:rgba(232,240,255,.6);line-height:1.8;
}

/* ── CTA final ── */
.rest-closing{
  padding:clamp(5.5rem,11vw,9rem) 0;
  background:var(--bg2);
  border-top:1px solid var(--border2);
  position:relative;overflow:hidden;
}
.rest-closing::before{
  content:'';position:absolute;inset:0;
  background:radial-gradient(ellipse 60% 90% at 50% 100%,rgba(245,194,48,.05) 0%,transparent 70%);
  pointer-events:none;
}
.rest-closing-inner{
  text-align:center;
  display:flex;flex-direction:column;align-items:center;gap:1.75rem;
  position:relative;
}
.rest-closing-title{
  font-family:var(--font-serif);font-style:italic;font-weight:400;
  font-size:clamp(2rem,3.8vw,3.3rem);
  color:var(--text);letter-spacing:-.02em;line-height:1.2;
}
.rest-closing-sub{
  font-size:.9rem;color:var(--text3);max-width:400px;line-height:1.75;margin-top:-.5rem;
}

/* ═══ ESPECIALIDADES ════════════════════════════════════════ */
#especialidades{background:var(--bg)}
.dishes-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:1.5rem}
.dish-card{
  position:relative;border-radius:var(--r-lg);overflow:hidden;
  background:var(--surface);border:1px solid var(--border2);
  transition:border-color .4s,transform .4s var(--ease-premium),box-shadow .4s;
}
.dish-card:hover{
  transform:translateY(-8px);border-color:var(--border);
  box-shadow:0 24px 64px rgba(0,0,0,.35),0 0 0 1px rgba(242,196,53,.1);
}
.dish-img-wrap{
  position:relative;
  aspect-ratio:4/3;
  overflow:hidden;
  background:#050914;
}
.dish-img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover !important;
  object-position:center center !important;
  transition:transform .7s var(--ease-premium);
}
.dish-card:hover .dish-img{transform:scale(1.07)}
.dish-tag{
  position:absolute;top:1rem;left:1rem;
  background:var(--gold);color:#0C1221;
  font-size:.6rem;font-weight:700;letter-spacing:.15em;text-transform:uppercase;
  padding:.3rem .7rem;border-radius:100px;
}
.dish-body{padding:1.5rem}
.dish-category{font-size:.65rem;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);margin-bottom:.5rem}
.dish-name{font-family:var(--font-display);font-size:1.35rem;font-weight:700;color:var(--text);margin-bottom:.5rem;line-height:1.2}
.dish-desc{font-size:.85rem;color:var(--text3);line-height:1.55;margin-bottom:1rem}
.dish-footer{display:flex;align-items:center;justify-content:space-between}
.dish-price{font-family:var(--font-display);font-size:1.5rem;font-weight:700;color:var(--gold);letter-spacing:-.02em}
.dish-price span{font-size:.8rem;font-weight:300;color:var(--text3)}
.dish-add{
  width:36px;height:36px;border-radius:50%;
  background:rgba(242,196,53,.1);border:1px solid var(--border);
  color:var(--gold);display:flex;align-items:center;justify-content:center;
  font-size:1.2rem;transition:all .3s;
}
.dish-add:hover{background:var(--gold);color:#0C1221;border-color:var(--gold)}

/* ═══ CARTA ══════════════════════════════════════════════════ */
#carta{background:var(--bg2)}

/* Layout: sidebar en desktop */
.carta-layout{display:flex;gap:3rem;align-items:flex-start}
.carta-content{flex:1;min-width:0}

/* Tabs: columna vertical en desktop */
.carta-tabs{
  display:flex;flex-direction:column;gap:.25rem;
  padding:.5rem;background:var(--surface);
  border-radius:var(--r-lg);border:1px solid var(--border2);
  width:175px;flex-shrink:0;
  position:sticky;top:90px;
}
.carta-tab{
  padding:.7rem 1.1rem;border-radius:var(--r-md);
  font-size:.72rem;font-weight:500;letter-spacing:.08em;text-transform:uppercase;
  color:var(--text3);transition:all .25s;text-align:left;
}
.carta-tab.active,.carta-tab:hover{background:var(--gold);color:#0C1221;font-weight:700}
.carta-panel{display:none}.carta-panel.active{display:block}

/* Grid: lista de filas */
.carta-grid{
  display:flex;flex-direction:column;
  border:1px solid var(--border2);border-radius:var(--r-lg);overflow:hidden;
  background:var(--surface);
}

/* Item: fila con línea punteada y borde dorado al hover */
.carta-item{
  min-width:0;
  overflow:hidden;
  padding:1.1rem 1.25rem 1rem;
  border-bottom:1px solid var(--border2);
  border-left:3px solid transparent;
  transition:border-left-color .25s, background .25s;
}
.carta-item:last-child{border-bottom:none}
.carta-item:hover{border-left-color:var(--gold);background:var(--surface2)}
.carta-item-img{
  display:block;
  width:100%;
  height:180px;
  margin-bottom:.9rem;
  border-radius:12px;
  object-fit:cover !important;
  object-position:center center !important;
  border:1px solid rgba(245,194,48,.12);
  box-shadow:0 16px 34px rgba(0,0,0,.22);
}

/* Fila nombre + puntos + precio */
.carta-item-main{
  display:grid;
  grid-template-columns:minmax(0,auto) minmax(1rem,1fr) auto;
  align-items:baseline;
  gap:.5rem;
  min-width:0;
}
.carta-item-name{
  min-width:0;
  font-size:1rem;
  font-weight:600;
  color:var(--text);
  white-space:normal;
  overflow-wrap:anywhere;
  word-break:normal;
  line-height:1.35;
}
.carta-item-dots{
  min-width:.5rem;margin-bottom:3px;
  border-bottom:1px dashed rgba(255,255,255,.12);
}
.carta-item-price{
  font-family:var(--font-display);font-size:1.05rem;font-weight:700;
  color:var(--gold);white-space:nowrap;flex-shrink:0;
}
.carta-item-desc{font-size:.8rem;color:var(--text3);line-height:1.5;font-style:italic;margin-top:.2rem}
.carta-item-allergens{margin-top:.4rem;display:flex;gap:.3rem;flex-wrap:wrap}
.allergen{
  font-size:.55rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;
  padding:.2rem .5rem;border-radius:100px;
  background:rgba(242,196,53,.1);color:var(--gold);border:1px solid rgba(242,196,53,.2);
}

/* Carta: sub-section titles */
.carta-section-title{
  font-family:var(--font-display);font-size:1.1rem;font-weight:600;
  color:var(--text);letter-spacing:.04em;
  margin:0 0 1rem;
  display:flex;align-items:center;gap:.75rem;
}
.carta-section-title::before,.carta-section-title::after{
  content:'';flex:1;height:1px;
  background:linear-gradient(to right,transparent,rgba(242,196,53,.35));
}
.carta-section-title::after{
  background:linear-gradient(to left,transparent,rgba(242,196,53,.35));
}
.carta-section-subtitle{
  font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;
  color:var(--text3);margin:1.2rem 0 .5rem;
}
.carta-note{text-align:center;margin-top:1.5rem;font-size:.75rem;color:var(--text3)}

/* Huerta cards */
.huerta-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--border2);border:1px solid var(--border2);border-radius:var(--r-lg);overflow:hidden}
.huerta-card{background:var(--surface);padding:1.5rem;transition:background .3s}
.huerta-card:hover{background:var(--surface2)}
.huerta-card-name{font-size:1rem;font-weight:600;color:var(--text);margin-bottom:.4rem}
.huerta-card-desc{font-size:.8rem;color:var(--text3);line-height:1.5;margin-bottom:.75rem}
.huerta-card-price{font-family:var(--font-display);font-size:1.2rem;font-weight:700;color:var(--gold)}

/* Suplementos */
.carta-suplementos{margin-top:2rem}
.suplementos-grid{
  display:grid;grid-template-columns:repeat(4,1fr);gap:.5rem .75rem;
  background:var(--surface);border:1px solid var(--border2);border-radius:var(--r-lg);
  padding:1.25rem 1.5rem;
}
.suplementos-grid span{font-size:.82rem;color:var(--text3)}
.suplementos-grid strong{color:var(--gold);font-weight:700}

/* Vinos */
.vinos-section{margin-bottom:2rem}
.vinos-header{
  display:grid;grid-template-columns:1fr 80px 80px;
  gap:.5rem;padding:.3rem .75rem;
  font-size:.65rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--text3);
}
.vino-item{
  display:grid;grid-template-columns:1fr 80px 80px;gap:.5rem;
  align-items:center;padding:.9rem .75rem;
  border-bottom:1px solid var(--border2);transition:background .3s;
}
.vino-item:hover{background:var(--surface2);border-radius:var(--r-sm)}
.vino-name{font-size:.9rem;font-weight:500;color:var(--text)}
.vino-uva{font-size:.75rem;color:var(--text3);margin-top:.15rem}
.vino-copa,.vino-botella{font-family:var(--font-display);font-size:.95rem;font-weight:700;color:var(--gold);text-align:right}

/* Cocktails two-column layout */
.cocktails-cols{display:grid;grid-template-columns:1fr 1fr;gap:2rem}

/* Responsive adjustments */
@media(max-width:900px){
  .huerta-grid{grid-template-columns:1fr}
  .suplementos-grid{grid-template-columns:repeat(2,1fr)}
  .cocktails-cols{grid-template-columns:1fr}
  .vinos-header,.vino-item{grid-template-columns:1fr 70px 70px}
}
@media(max-width:640px){
  .suplementos-grid{grid-template-columns:1fr 1fr}
  .vinos-header,.vino-item{grid-template-columns:1fr 60px 60px}
  .vino-copa,.vino-botella{font-size:.85rem}
}

/* ═══ MENÚS PAGE ═════════════════════════════════════════════ */
.menus-page{
  background:
    radial-gradient(circle at 8% 2%,rgba(245,194,48,.1),transparent 24rem),
    radial-gradient(circle at 92% 22%,rgba(98,71,29,.12),transparent 22rem),
    linear-gradient(180deg,var(--bg),#0a1223 42%,var(--bg));
  color:var(--text);
  overflow:hidden;
}
.menus-hero{
  position:relative;
  min-height:clamp(660px,82vh,860px);
  display:flex;
  align-items:center;
  isolation:isolate;
  padding:clamp(5rem,9vw,8rem) 0 clamp(3.5rem,6vw,5rem);
}
.menus-hero-bg{
  position:absolute;inset:0;z-index:-2;
  background:
    radial-gradient(circle at 78% 18%,rgba(245,194,48,.2),transparent 24rem),
    radial-gradient(circle at 22% 45%,rgba(255,255,255,.06),transparent 20rem),
    linear-gradient(135deg,#0c1528,#101a31 46%,#060a14);
}
.menus-hero-overlay{
  position:absolute;inset:0;z-index:-1;
  background:
    linear-gradient(90deg,rgba(245,194,48,.055) 1px,transparent 1px),
    linear-gradient(0deg,rgba(255,255,255,.035) 1px,transparent 1px),
    linear-gradient(to bottom,transparent 0%,rgba(8,13,25,.4) 68%,var(--bg) 100%);
  background-size:84px 84px,84px 84px,auto;
  mask-image:linear-gradient(180deg,rgba(0,0,0,.78),rgba(0,0,0,.24) 82%,transparent);
}
.menus-hero-layout{
  display:grid;
  grid-template-columns:minmax(0,.9fr) minmax(360px,1fr);
  gap:clamp(2rem,5vw,5rem);
  align-items:center;
}
.menus-hero-content{
  max-width:680px;
  text-align:left;
  padding:0;
}
.menus-hero-layout:not(:has(.menus-hero-visual)){
  grid-template-columns:1fr;
}
.menus-hero-layout:not(:has(.menus-hero-visual)) .menus-hero-content{
  max-width:820px;
}
.menus-eyebrow{
  display:inline-flex;
  align-items:center;
  gap:.65rem;
  margin-bottom:1.25rem;
  padding:.48rem .78rem;
  border:1px solid rgba(245,194,48,.24);
  border-radius:999px;
  background:rgba(245,194,48,.075);
  color:var(--gold);
  font-size:.68rem;
  font-weight:700;
  letter-spacing:.28em;
  text-transform:uppercase;
  backdrop-filter:blur(14px);
}
.menus-eyebrow::before{
  content:"";
  width:.48rem;
  height:.48rem;
  border-radius:50%;
  background:var(--gold);
  box-shadow:0 0 18px rgba(245,194,48,.72);
}
.menus-hero h1{
  font-family:var(--font-display);
  font-size:clamp(3rem,6.4vw,6.4rem);
  line-height:.9;
  letter-spacing:-.02em;
  color:#fff;
  text-wrap:balance;
  margin-bottom:1.3rem;
  text-shadow:0 24px 80px rgba(0,0,0,.55);
}
.menus-hero-sub{
  font-family:var(--font-serif);
  font-size:clamp(1.28rem,2.2vw,1.85rem);
  color:rgba(255,255,255,.86);
  margin-bottom:.55rem;
}
.menus-hero-text{
  color:rgba(232,240,255,.68);
  margin:0 0 2rem;
  max-width:560px;
  line-height:1.8;
}
.menus-hero-actions{
  display:flex;
  align-items:center;
  gap:1rem;
  flex-wrap:wrap;
}
.menus-hero-actions .btn{
  min-width:190px;
  justify-content:center;
  box-shadow:0 18px 48px rgba(245,194,48,.24),0 0 0 1px rgba(245,194,48,.18);
  animation:menuCtaPulse 3.4s ease-in-out infinite;
}
.menus-hero-actions span{
  color:rgba(232,240,255,.66);
  font-size:.78rem;
  font-weight:800;
  letter-spacing:.12em;
  text-transform:uppercase;
}
.menus-hero-visual{
  position:relative;
  min-height:clamp(420px,44vw,620px);
  border:1px solid rgba(245,194,48,.2);
  border-radius:32px;
  overflow:hidden;
  background:rgba(255,255,255,.035);
  box-shadow:0 36px 110px rgba(0,0,0,.44),inset 0 1px 0 rgba(255,255,255,.06);
}
.menus-hero-visual::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:1;
  pointer-events:none;
  background:
    linear-gradient(180deg,rgba(7,12,24,.04),rgba(7,12,24,.46)),
    radial-gradient(circle at 24% 18%,rgba(245,194,48,.18),transparent 18rem);
}
.menus-hero-visual img{
  width:100%;
  height:100%;
  min-height:inherit;
  object-fit:cover;
  object-position:center;
  display:block;
  transform:scale(1.02);
  animation:menuHeroDrift 10s ease-in-out infinite alternate;
}
.menus-hero-floating{
  position:absolute;
  z-index:2;
  right:1.2rem;
  bottom:1.2rem;
  min-width:170px;
  padding:1rem 1.15rem;
  border:1px solid rgba(245,194,48,.28);
  border-radius:18px;
  background:rgba(7,12,24,.72);
  backdrop-filter:blur(18px);
  box-shadow:0 20px 54px rgba(0,0,0,.34);
}
.menus-hero-floating span,
.menus-hero-floating small{
  display:block;
  color:rgba(232,240,255,.62);
  font-size:.65rem;
  font-weight:900;
  letter-spacing:.14em;
  text-transform:uppercase;
}
.menus-hero-floating strong{
  display:block;
  margin:.2rem 0;
  color:var(--gold);
  font-family:var(--font-display);
  font-size:2.15rem;
  line-height:1;
}
.menus-showcase{
  position:relative;
  padding:clamp(4rem,8vw,7rem) 0;
  background:
    linear-gradient(180deg,var(--bg) 0%,var(--bg2) 55%,var(--bg) 100%);
}
.menus-section-head{
  text-align:center;
  max-width:700px;
  margin:0 auto clamp(2.5rem,5vw,4rem);
}
.menus-section-head h2{
  font-family:var(--font-serif);
  font-style:italic;
  font-size:clamp(2rem,4vw,3.4rem);
  font-weight:400;
  color:#fff;
  margin-top:.5rem;
}
.menus-grid{
  display:grid;
  grid-template-columns:repeat(12,minmax(0,1fr));
  gap:24px;
  align-items:stretch;
}
.menu-card{
  position:relative;
  display:flex;
  flex-direction:column;
  min-height:620px;
  padding:0;
  border-radius:24px;
  background:
    linear-gradient(145deg,rgba(255,255,255,.075),rgba(255,255,255,.028)),
    var(--glass2);
  border:1px solid rgba(245,194,48,.16);
  box-shadow:0 26px 80px rgba(0,0,0,.34);
  backdrop-filter:blur(18px);
  overflow:hidden;
  transition:transform .45s var(--ease-premium),box-shadow .45s var(--ease-premium),border-color .45s;
  grid-column:span 6;
}
.menu-card::before{
  content:'';
  position:absolute;inset:0 0 auto 0;height:3px;
  background:linear-gradient(90deg,transparent,var(--gold),transparent);
  opacity:.7;
}
.menu-card::after{
  content:'';
  position:absolute;right:-25%;top:-20%;width:260px;height:260px;
  background:radial-gradient(circle,rgba(245,194,48,.13),transparent 62%);
  pointer-events:none;
}
.menu-card:hover{
  transform:translateY(-10px) scale(1.01);
  border-color:rgba(245,194,48,.36);
  box-shadow:0 34px 100px rgba(0,0,0,.48),0 0 0 1px rgba(245,194,48,.1);
}
.menu-card-featured{
  min-height:650px;
  border-color:rgba(245,194,48,.38);
  background:
    linear-gradient(145deg,rgba(245,194,48,.12),rgba(255,255,255,.035)),
    var(--surface);
}
.menu-card-featured:hover{transform:translateY(-12px) scale(1.012)}
.menu-card:nth-child(n+3){
  grid-column:span 4;
}
.menu-card-no-image{
  min-height:auto;
  padding-top:.35rem;
  background:
    radial-gradient(circle at 18% 0%,rgba(245,194,48,.1),transparent 16rem),
    linear-gradient(145deg,rgba(255,255,255,.075),rgba(255,255,255,.028)),
    var(--glass2);
}
.menu-card-no-image .menu-card-top{
  margin-top:1.45rem;
}
.menu-card-image{
  position:relative;
  aspect-ratio:16 / 9;
  overflow:hidden;
  background:#060b15;
}
.menu-card-image img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
  display:block;
  transition:transform .55s var(--ease-premium),filter .55s var(--ease-premium);
}
.menu-card:hover .menu-card-image img{
  transform:scale(1.065);
  filter:saturate(1.08) contrast(1.04);
}
.menu-card-image::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,transparent 46%,rgba(8,13,25,.76));
}
.menu-card-image span{
  position:absolute;
  z-index:1;
  left:1rem;
  top:1rem;
  padding:.48rem .7rem;
  border:1px solid rgba(245,194,48,.28);
  border-radius:999px;
  color:#111827;
  background:linear-gradient(135deg,var(--gold),#d89a23);
  font-size:.66rem;
  font-weight:900;
  letter-spacing:.11em;
  text-transform:uppercase;
}
.menu-card-top{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
  margin:1.35rem clamp(1.25rem,2vw,1.65rem) 1rem;
}
.menu-tag{
  font-size:.65rem;
  font-weight:700;
  letter-spacing:.18em;
  text-transform:uppercase;
}
.menu-tag{color:var(--gold)}
.menu-event{
  color:rgba(232,240,255,.58);
  font-size:.62rem;
  font-weight:900;
  letter-spacing:.13em;
  text-transform:uppercase;
}
.menu-card h3{
  font-family:var(--font-display);
  font-size:clamp(2rem,3.2vw,3rem);
  line-height:1;
  color:#fff;
  margin:0 clamp(1.25rem,2vw,1.65rem) 1rem;
}
.menu-desc{
  color:rgba(232,240,255,.72);
  max-width:92%;
  line-height:1.75;
  margin:0 clamp(1.25rem,2vw,1.65rem) 1rem;
}
.menu-card-meta{
  display:flex;
  flex-wrap:wrap;
  gap:.5rem;
  margin:0 clamp(1.25rem,2vw,1.65rem) 1.35rem;
}
.menu-card-meta span{
  padding:.44rem .58rem;
  border:1px solid rgba(255,255,255,.08);
  border-radius:999px;
  color:#cfdaf0;
  background:rgba(255,255,255,.045);
  font-size:.66rem;
  font-weight:850;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.menu-divider{
  height:1px;
  margin:0 clamp(1.25rem,2vw,1.65rem) 1.35rem;
  background:linear-gradient(90deg,var(--gold),rgba(245,194,48,.18),transparent);
}
.menu-sections{
  display:grid;
  gap:1.25rem;
  margin:0 clamp(1.25rem,2vw,1.65rem) 2rem;
}
.menu-section{
  position:relative;
  padding-top:1.1rem;
}
.menu-section::before{
  content:'';
  position:absolute;
  top:0;left:0;right:0;
  height:1px;
  background:linear-gradient(90deg,rgba(245,194,48,.45),rgba(245,194,48,.08),transparent);
}
.menu-section h4{
  margin-bottom:.75rem;
  color:var(--gold);
  font-size:.68rem;
  font-weight:700;
  letter-spacing:.2em;
  text-transform:uppercase;
}
.menu-items{
  display:grid;
  gap:.55rem;
}
.menu-items li{
  display:flex;
  align-items:flex-start;
  gap:.7rem;
  color:rgba(255,255,255,.84);
  font-size:.88rem;
  line-height:1.45;
}
.menu-items li::before{
  content:'';
  width:6px;height:6px;
  border:1px solid var(--gold);
  transform:rotate(45deg);
  flex-shrink:0;
  margin-top:.45rem;
}
.menu-card-bottom{
  margin-top:auto;
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:1rem;
  padding:1.15rem clamp(1.25rem,2vw,1.65rem);
  border-top:1px solid rgba(255,255,255,.07);
  background:rgba(5,10,20,.34);
}
.menu-price strong{
  display:block;
  font-family:var(--font-serif);
  font-size:clamp(2.2rem,4vw,3.4rem);
  font-weight:400;
  color:var(--gold);
  line-height:1;
}
.menu-price span{
  display:block;
  margin-top:.35rem;
  color:rgba(232,240,255,.55);
  font-size:.78rem;
  letter-spacing:.12em;
  text-transform:uppercase;
}
.menu-reserve{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:46px;
  padding:0 1.25rem;
  border-radius:999px;
  border:1px solid rgba(245,194,48,.45);
  color:var(--gold);
  font-size:.72rem;
  font-weight:700;
  letter-spacing:.14em;
  text-transform:uppercase;
  transition:all .35s var(--ease-premium);
  box-shadow:0 14px 34px rgba(245,194,48,.08);
}
.menu-reserve:hover{
  background:var(--gold);
  color:var(--bg);
  transform:translateY(-2px);
  box-shadow:0 18px 48px rgba(245,194,48,.22);
}
@keyframes menuHeroDrift{
  from{transform:scale(1.02) translate3d(0,0,0)}
  to{transform:scale(1.065) translate3d(-1.2%,.8%,0)}
}
@keyframes menuCtaPulse{
  0%,100%{box-shadow:0 18px 48px rgba(245,194,48,.2),0 0 0 1px rgba(245,194,48,.18)}
  50%{box-shadow:0 22px 62px rgba(245,194,48,.32),0 0 0 1px rgba(245,194,48,.28)}
}

.christmas-menu-page{
  background:
    radial-gradient(circle at 18% 6%,rgba(245,194,48,.12),transparent 22rem),
    linear-gradient(180deg,var(--bg),var(--bg2));
}
.christmas-menu-hero{
  position:relative;
  min-height:clamp(360px,46vw,540px);
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:2rem;
  padding:clamp(2rem,5vw,4rem);
  border:1px solid rgba(245,194,48,.22);
  border-radius:26px;
  background:
    radial-gradient(circle at 18% 18%,rgba(245,194,48,.16),transparent 20rem),
    radial-gradient(circle at 82% 26%,rgba(118,86,33,.18),transparent 18rem),
    linear-gradient(135deg,rgba(24,34,58,.98),rgba(9,14,27,.98) 58%,rgba(6,10,20,.98));
  box-shadow:0 34px 90px rgba(0,0,0,.38),inset 0 1px 0 rgba(255,255,255,.055);
  overflow:hidden;
}
.christmas-menu-hero::before{
  content:"";
  position:absolute;
  inset:1px;
  border-radius:25px;
  pointer-events:none;
  background:
    linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px),
    linear-gradient(0deg,rgba(255,255,255,.028) 1px,transparent 1px);
  background-size:72px 72px;
  mask-image:linear-gradient(90deg,rgba(0,0,0,.42),transparent 72%);
}
.christmas-menu-hero::after{
  content:"";
  position:absolute;
  right:clamp(1.5rem,6vw,5rem);
  top:50%;
  width:clamp(9rem,22vw,18rem);
  aspect-ratio:1;
  transform:translateY(-50%);
  border:1px solid rgba(245,194,48,.22);
  border-radius:50%;
  background:
    radial-gradient(circle,rgba(245,194,48,.18),transparent 58%),
    conic-gradient(from 30deg,transparent,rgba(245,194,48,.22),transparent 42%,rgba(245,194,48,.12),transparent);
  opacity:.55;
  filter:blur(.2px);
}
.christmas-menu-hero > *{
  position:relative;
  z-index:1;
}
.christmas-menu-hero h1{
  margin:.3rem 0 .8rem;
  font-family:var(--font-display);
  font-size:clamp(2.7rem,7vw,6rem);
  line-height:.95;
  color:#fff;
  text-wrap:balance;
  text-shadow:0 18px 48px rgba(0,0,0,.35);
}
.christmas-menu-hero p:not(.t-label){
  max-width:560px;
  color:#d6e0ef;
  font-size:1rem;
  line-height:1.8;
}
.christmas-menu-hero .t-label{
  display:inline-flex;
  align-items:center;
  gap:.55rem;
  padding:.45rem .7rem;
  border:1px solid rgba(245,194,48,.24);
  border-radius:999px;
  background:rgba(245,194,48,.08);
  backdrop-filter:blur(12px);
}
.christmas-menu-hero .t-label::before{
  content:"";
  width:.45rem;
  height:.45rem;
  border-radius:50%;
  background:var(--gold);
  box-shadow:0 0 18px rgba(245,194,48,.65);
}
.christmas-menu-hero .btn{
  flex:0 0 auto;
  min-width:180px;
  justify-content:center;
  border:1px solid rgba(245,194,48,.35);
  box-shadow:0 18px 42px rgba(245,194,48,.18);
}
.christmas-menu-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,420px));
  justify-content:center;
  align-items:stretch;
  gap:1.35rem;
  margin-top:1.35rem;
}
.christmas-menu-card{
  display:flex;
  flex-direction:column;
  min-height:820px;
  padding:clamp(1.25rem,2.4vw,1.7rem);
  border:1px solid rgba(245,194,48,.42);
  border-radius:12px;
  background:
    radial-gradient(circle at 20% 0%,rgba(245,194,48,.08),transparent 16rem),
    linear-gradient(145deg,rgba(31,43,70,.96),rgba(18,28,49,.96));
  box-shadow:0 28px 70px rgba(0,0,0,.28),inset 0 1px 0 rgba(255,255,255,.045);
}
.christmas-menu-kicker{
  margin-bottom:1.25rem;
  color:var(--gold);
  font-size:.58rem;
  font-weight:900;
  letter-spacing:.14em;
  text-transform:uppercase;
}
.christmas-menu-card h2{
  margin-bottom:.9rem;
  color:#fff;
  font-family:var(--font-display);
  font-size:clamp(2.4rem,4.5vw,3.5rem);
  line-height:.86;
}
.christmas-menu-desc{
  max-width:29ch;
  margin-bottom:1.6rem;
  color:rgba(232,240,255,.72);
  font-size:.82rem;
  line-height:1.6;
}
.christmas-menu-section{
  margin-top:1.05rem;
}
.christmas-menu-section h3{
  margin-bottom:.7rem;
  color:var(--gold);
  font-size:.66rem;
  font-weight:900;
  letter-spacing:.16em;
  text-transform:uppercase;
}
.christmas-menu-section ul{
  display:grid;
  gap:.5rem;
}
.christmas-menu-section li{
  display:flex;
  align-items:flex-start;
  gap:.55rem;
  color:rgba(232,240,255,.86);
  font-size:.78rem;
  line-height:1.45;
}
.christmas-menu-section li::before{
  content:'';
  width:5px;
  height:5px;
  flex:0 0 auto;
  margin-top:.45rem;
  background:var(--gold);
  transform:rotate(45deg);
}
.christmas-menu-bottom{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:1rem;
  margin-top:auto;
  padding-top:2rem;
}
.christmas-menu-price span{
  display:block;
  color:var(--gold);
  font-family:var(--font-serif);
  font-size:2rem;
  line-height:.9;
}
.christmas-menu-price strong{
  display:block;
  color:var(--gold);
  font-family:var(--font-serif);
  font-size:3rem;
  font-weight:400;
  line-height:.85;
}
.christmas-menu-price small{
  display:block;
  margin-top:.55rem;
  color:rgba(232,240,255,.55);
  font-size:.58rem;
  font-weight:800;
  letter-spacing:.12em;
  text-transform:uppercase;
}
.christmas-menu-reserve{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:38px;
  padding:0 1rem;
  border:1px solid rgba(245,194,48,.72);
  border-radius:999px;
  color:var(--gold);
  font-size:.6rem;
  font-weight:900;
  letter-spacing:.12em;
  text-transform:uppercase;
  transition:background .25s,color .25s,transform .25s;
}
.christmas-menu-reserve:hover{
  background:var(--gold);
  color:var(--bg);
  transform:translateY(-2px);
}
.christmas-menu-note{
  margin-top:1.25rem;
  padding:1.1rem 1.25rem;
  border:1px solid rgba(245,194,48,.14);
  border-radius:16px;
  color:var(--text2);
  background:rgba(245,194,48,.055);
  text-align:center;
}

/* Menú Navidad premium */
.christmas-menu-page{
  background:
    radial-gradient(circle at 10% 0%,rgba(245,194,48,.13),transparent 26rem),
    radial-gradient(circle at 88% 18%,rgba(118,55,34,.12),transparent 24rem),
    linear-gradient(180deg,var(--bg),#0b1325 48%,var(--bg2));
  padding-top:clamp(1.4rem,3vw,3rem);
  padding-bottom:clamp(4rem,7vw,6rem);
}
.christmas-menu-hero{
  min-height:auto;
  display:grid;
  grid-template-columns:minmax(0,.86fr) minmax(360px,1fr);
  align-items:center;
  gap:clamp(1.25rem,3vw,3rem);
  padding:clamp(1.1rem,2vw,1.6rem);
  border-radius:28px;
  box-shadow:0 26px 78px rgba(0,0,0,.36),inset 0 1px 0 rgba(255,255,255,.055);
}
.christmas-hero-copy{padding:clamp(1rem,3vw,2.4rem)}
.christmas-menu-hero:not(:has(.christmas-hero-visual)){
  grid-template-columns:1fr;
  max-width:980px;
  margin-inline:auto;
}
.christmas-menu-hero:not(:has(.christmas-hero-visual)) .christmas-hero-copy{
  max-width:760px;
}
.christmas-menu-hero h1{font-size:clamp(3rem,5.4vw,5.8rem);line-height:.9}
.christmas-menu-hero .btn{animation:menuCtaPulse 3.4s ease-in-out infinite;box-shadow:0 18px 52px rgba(245,194,48,.24)}
.christmas-hero-stats{
  display:flex;
  gap:.75rem;
  flex-wrap:wrap;
  margin:1.35rem 0 1.65rem;
}
.christmas-hero-stats span{
  display:inline-flex;
  align-items:center;
  gap:.4rem;
  padding:.55rem .7rem;
  border:1px solid rgba(255,255,255,.08);
  border-radius:999px;
  color:rgba(232,240,255,.72);
  background:rgba(255,255,255,.045);
  font-size:.7rem;
  font-weight:850;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.christmas-hero-stats strong{color:var(--gold)}
.christmas-hero-visual{
  position:relative;
  z-index:1;
  height:clamp(330px,32vw,460px);
  min-height:0;
  overflow:hidden;
  border:1px solid rgba(245,194,48,.22);
  border-radius:24px;
  background:#070d18;
  box-shadow:0 24px 70px rgba(0,0,0,.34);
}
.christmas-hero-visual::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,transparent 46%,rgba(7,12,24,.62)),radial-gradient(circle at 22% 18%,rgba(245,194,48,.16),transparent 18rem);
}
.christmas-hero-visual img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
  display:block;
  animation:menuHeroDrift 10s ease-in-out infinite alternate;
}
.christmas-hero-price{
  position:absolute;
  z-index:2;
  right:1rem;
  bottom:1rem;
  min-width:168px;
  padding:1rem;
  border:1px solid rgba(245,194,48,.28);
  border-radius:18px;
  background:rgba(7,12,24,.72);
  backdrop-filter:blur(18px);
}
.christmas-hero-price span,.christmas-hero-price small{
  display:block;
  color:rgba(232,240,255,.62);
  font-size:.62rem;
  font-weight:900;
  letter-spacing:.14em;
  text-transform:uppercase;
}
.christmas-hero-price strong{
  display:block;
  margin:.25rem 0;
  color:var(--gold);
  font-family:var(--font-display);
  font-size:2.2rem;
  line-height:1;
}
.christmas-menu-grid{
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:1.35rem;
  margin-top:1.35rem;
}
.christmas-menu-card{
  position:relative;
  min-height:860px;
  padding:0;
  overflow:hidden;
  border-color:rgba(245,194,48,.28);
  border-radius:24px;
  transition:transform .45s var(--ease-premium),border-color .45s var(--ease-premium),box-shadow .45s var(--ease-premium);
}
.christmas-menu-card:hover{
  transform:translateY(-10px);
  border-color:rgba(245,194,48,.48);
  box-shadow:0 36px 96px rgba(0,0,0,.42),0 0 0 1px rgba(245,194,48,.08);
}
.christmas-menu-card-no-image{
  min-height:auto;
  padding-top:.35rem;
  background:
    radial-gradient(circle at 18% 0%,rgba(245,194,48,.1),transparent 16rem),
    linear-gradient(145deg,rgba(31,43,70,.96),rgba(18,28,49,.96));
}
.christmas-menu-card-no-image .christmas-menu-kicker{
  margin-top:1.45rem;
}
.christmas-card-image{
  position:relative;
  aspect-ratio:16 / 9;
  overflow:hidden;
  background:#070d18;
}
.christmas-card-image img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
  display:block;
  transition:transform .55s var(--ease-premium),filter .55s var(--ease-premium);
}
.christmas-menu-card:hover .christmas-card-image img{transform:scale(1.06);filter:saturate(1.08) contrast(1.04)}
.christmas-card-image::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 42%,rgba(12,18,33,.82))}
.christmas-card-image span{
  position:absolute;
  z-index:1;
  left:1rem;
  top:1rem;
  padding:.5rem .7rem;
  border-radius:999px;
  color:#10131b;
  background:linear-gradient(135deg,var(--gold),#d89a23);
  font-size:.66rem;
  font-weight:900;
  letter-spacing:.11em;
  text-transform:uppercase;
}
.christmas-menu-kicker{margin:1.35rem clamp(1.2rem,2vw,1.65rem) 1rem}
.christmas-menu-card h2{margin:0 clamp(1.2rem,2vw,1.65rem) .9rem}
.christmas-menu-desc{margin:0 clamp(1.2rem,2vw,1.65rem) 1rem}
.christmas-menu-meta{
  display:flex;
  flex-wrap:wrap;
  gap:.45rem;
  margin:0 clamp(1.2rem,2vw,1.65rem) 1.35rem;
}
.christmas-menu-meta span{
  padding:.42rem .58rem;
  border:1px solid rgba(255,255,255,.08);
  border-radius:999px;
  color:#cfdaf0;
  background:rgba(255,255,255,.045);
  font-size:.62rem;
  font-weight:850;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.christmas-menu-section{margin:1.05rem clamp(1.2rem,2vw,1.65rem) 0}
.christmas-menu-bottom{
  padding:1.25rem clamp(1.2rem,2vw,1.65rem);
  border-top:1px solid rgba(255,255,255,.07);
  background:rgba(5,10,20,.34);
}
.christmas-benefits{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:1rem;
  margin-top:1.35rem;
}
.christmas-benefits article{
  min-height:160px;
  padding:1.05rem;
  border:1px solid rgba(245,194,48,.14);
  border-radius:18px;
  background:linear-gradient(145deg,rgba(255,255,255,.06),rgba(255,255,255,.022));
  box-shadow:0 18px 52px rgba(0,0,0,.18);
}
.christmas-benefits span{display:grid;place-items:center;width:42px;height:42px;margin-bottom:.9rem;border-radius:14px;background:rgba(245,194,48,.1);border:1px solid rgba(245,194,48,.18)}
.christmas-benefits strong{display:block;color:#fff;line-height:1.2}
.christmas-benefits small{display:block;margin-top:.45rem;color:rgba(232,240,255,.62);line-height:1.55}
.christmas-gallery{
  display:grid;
  grid-template-columns:1.1fr .9fr .9fr;
  grid-auto-rows:220px;
  gap:1rem;
  margin-top:1rem;
}
.christmas-gallery figure{position:relative;overflow:hidden;border:1px solid rgba(245,194,48,.12);border-radius:22px;background:#070d18;box-shadow:0 22px 64px rgba(0,0,0,.22)}
.christmas-gallery img{width:100%;height:100%;object-fit:cover;object-position:center;display:block;transition:transform .55s var(--ease-premium),filter .55s var(--ease-premium)}
.christmas-gallery figure:hover img{transform:scale(1.055);filter:saturate(1.08) contrast(1.04)}
.christmas-gallery figcaption{position:absolute;left:1rem;bottom:1rem;padding:.5rem .7rem;border-radius:999px;color:#fff;background:rgba(5,10,20,.62);backdrop-filter:blur(14px);font-size:.68rem;font-weight:900;letter-spacing:.12em;text-transform:uppercase}

/* lightbox */
#lightbox{
  position:fixed;inset:0;z-index:2000;background:rgba(0,0,0,.95);
  display:flex;align-items:center;justify-content:center;
  opacity:0;pointer-events:none;transition:opacity .4s;
}
#lightbox.open{opacity:1;pointer-events:all}
#lightbox img{max-width:90vw;max-height:85vh;object-fit:contain;border-radius:var(--r-md)}
.lightbox-close{
  position:absolute;top:1.5rem;right:1.5rem;
  width:44px;height:44px;border-radius:50%;
  background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.2);
  color:#fff;font-size:1.2rem;display:flex;align-items:center;justify-content:center;
}
.lightbox-close:hover{background:rgba(255,255,255,.2)}

/* ═══ RESERVAS ═══════════════════════════════════════════════ */
#reservas{
  position:relative;isolation:isolate;overflow:hidden;
  background:
    radial-gradient(circle at 14% 18%,rgba(245,194,48,.13),transparent 28rem),
    radial-gradient(circle at 88% 16%,rgba(101,192,224,.1),transparent 30rem),
    radial-gradient(circle at 68% 86%,rgba(120,55,185,.12),transparent 32rem),
    linear-gradient(135deg,#070d18 0%,#0d1628 48%,#09111f 100%);
}
#reservas::before{
  content:'';position:absolute;inset:0;z-index:-2;pointer-events:none;
  height:auto;background:
    linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px),
    linear-gradient(180deg,rgba(255,255,255,.028) 1px,transparent 1px);
  background-size:72px 72px;opacity:.18;
}
#reservas::after{
  content:'';position:absolute;inset:0;z-index:-1;pointer-events:none;
  height:auto;background:
    linear-gradient(180deg,rgba(5,8,15,.18),rgba(5,8,15,.68)),
    linear-gradient(90deg,rgba(5,8,15,.72),transparent 45%,rgba(5,8,15,.5));
}
.form-alert{
  margin-bottom:2rem;padding:1rem 1.25rem;border-radius:var(--r-md);
  font-size:.95rem;line-height:1.5;
}
.form-alert-success{background:rgba(37,211,102,.12);border:1px solid rgba(37,211,102,.26);color:#d8ffda}
.form-alert-error{background:rgba(255,86,86,.12);border:1px solid rgba(255,86,86,.25);color:#ffe5e5}
.reservas-grid{display:grid;grid-template-columns:1fr 1.2fr;gap:clamp(3rem,6vw,6rem);align-items:start}
.reservas-info h2{
  font-family:var(--font-display);font-size:clamp(2rem,4vw,3rem);
  font-weight:700;line-height:1.15;color:var(--text);margin-bottom:1rem;
}
.reservas-info h2 em{font-style:italic;color:var(--gold);font-family:var(--font-serif)}
.reservas-info p{font-family:var(--font-serif);font-size:1.05rem;color:var(--text2);margin-bottom:2rem}
.reservas-contact{display:flex;flex-direction:column;gap:1rem}
.reservas-contact-item{display:flex;align-items:center;gap:.75rem;color:var(--text2);font-size:.9rem}
.reservas-contact-icon{
  width:36px;height:36px;border-radius:.5rem;
  background:rgba(242,196,53,.1);border:1px solid var(--border);
  display:flex;align-items:center;justify-content:center;color:var(--gold);flex-shrink:0;
}
.reservas-form-wrap{background:var(--surface);border:1px solid var(--border2);border-radius:var(--r-xl);padding:2.5rem}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.form-group{display:flex;flex-direction:column;gap:.5rem}
.form-group.full{grid-column:span 2}
.form-label{font-size:.7rem;font-weight:600;letter-spacing:.15em;text-transform:uppercase;color:var(--text3)}
.form-input,.form-select,.form-textarea{
  background:var(--surface2);border:1px solid var(--border2);
  border-radius:var(--r-sm);padding:.85rem 1rem;
  color:var(--text);font-family:var(--font-sans);font-size:.9rem;
  transition:border-color .3s,box-shadow .3s;appearance:none;-webkit-appearance:none;
}
.form-input::placeholder,.form-textarea::placeholder{color:var(--text3)}
.form-input:focus,.form-select:focus,.form-textarea:focus{
  outline:none;border-color:var(--gold);box-shadow:0 0 0 3px rgba(242,196,53,.1);
}
.form-textarea{resize:vertical;min-height:100px}

/* ── Admin login premium ─────────────────────────────────── */
.admin-login-section{
  position:relative;isolation:isolate;overflow:hidden;
  min-height:100svh;display:grid;place-items:center;
  padding:clamp(2rem,5vw,4.5rem) 0;
  background:
    radial-gradient(circle at 18% 16%,rgba(245,194,48,.16),transparent 26rem),
    radial-gradient(circle at 82% 20%,rgba(120,55,185,.18),transparent 30rem),
    radial-gradient(circle at 62% 90%,rgba(59,162,200,.12),transparent 28rem),
    linear-gradient(135deg,#070c17 0%,#0c1425 46%,#090f1d 100%);
}
.admin-login-section::before{
  content:'';position:absolute;inset:-10%;z-index:-2;
  background:url('../img/fondo.png') center/cover no-repeat;
  opacity:.08;filter:saturate(.75) contrast(1.12);
}
.admin-login-section::after{
  content:'';position:absolute;inset:0;z-index:-1;pointer-events:none;
  background:
    linear-gradient(90deg,rgba(5,8,15,.86),rgba(5,8,15,.38) 48%,rgba(5,8,15,.82)),
    radial-gradient(ellipse at center,transparent 0%,rgba(5,8,15,.58) 72%);
}
.admin-login-shell{
  width:min(1120px,calc(100% - 2rem));
  display:grid;grid-template-columns:minmax(0,1.06fr) minmax(390px,.86fr);
  align-items:center;gap:clamp(2rem,5vw,5rem);
  animation:admin-login-rise .7s var(--ease-premium) both;
}
.admin-login-copy{
  position:relative;display:grid;gap:1.15rem;max-width:560px;
}
.admin-login-copy::before{
  content:'';position:absolute;left:-3rem;top:-3rem;width:18rem;height:18rem;z-index:-1;
  background:radial-gradient(circle,rgba(245,194,48,.16),transparent 68%);
  filter:blur(8px);
}
.admin-login-brand{
  display:inline-flex;align-items:center;gap:.95rem;width:max-content;
  padding:.7rem 1rem .7rem .75rem;border:1px solid rgba(245,194,48,.16);
  border-radius:999px;background:rgba(12,18,33,.54);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.05);
  backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);
}
.admin-login-brand img{
  width:48px;height:48px;object-fit:contain;border-radius:50%;
  filter:drop-shadow(0 10px 24px rgba(0,0,0,.34));
}
.admin-login-brand strong{
  display:block;color:var(--text);font-family:var(--font-display);
  font-size:1.18rem;line-height:1.05;
}
.admin-login-brand span{
  display:block;margin-top:.18rem;color:var(--gold);
  font-size:.58rem;font-weight:800;letter-spacing:.24em;text-transform:uppercase;
}
.admin-login-copy h1{
  color:var(--text);font-family:var(--font-display);
  font-size:clamp(3rem,6vw,5.6rem);line-height:.95;font-weight:700;
  text-wrap:balance;text-shadow:0 22px 70px rgba(0,0,0,.6);
}
.admin-login-copy > p:not(.t-label){
  max-width:510px;color:#a5bad2;font-family:var(--font-serif);
  font-size:clamp(1.1rem,1.6vw,1.35rem);line-height:1.65;
}
.admin-login-highlights{
  display:flex;flex-wrap:wrap;gap:.7rem;margin-top:.45rem;
}
.admin-login-highlights span{
  display:inline-flex;align-items:center;gap:.5rem;
  min-height:40px;padding:.65rem .85rem;border:1px solid rgba(245,194,48,.13);
  border-radius:999px;color:#9fb8d4;background:rgba(12,18,33,.5);
  font-size:.72rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;
}
.admin-login-highlights span::before{
  content:'';width:6px;height:6px;border-radius:50%;background:var(--gold);
  box-shadow:0 0 16px rgba(245,194,48,.72);
}
.admin-login-card{
  position:relative;padding:clamp(1.5rem,3vw,2.25rem);
  border:1px solid rgba(245,194,48,.18);border-radius:1.65rem;
  background:
    linear-gradient(180deg,rgba(255,255,255,.07),transparent 34%),
    linear-gradient(145deg,rgba(24,34,58,.84),rgba(8,14,27,.78));
  box-shadow:
    0 34px 90px rgba(0,0,0,.42),
    inset 0 1px 0 rgba(255,255,255,.08);
  backdrop-filter:blur(22px);-webkit-backdrop-filter:blur(22px);
  transform:translateZ(0);transition:transform .45s var(--ease-premium),border-color .45s var(--ease-premium),box-shadow .45s var(--ease-premium);
}
.admin-login-card:hover{
  transform:translateY(-4px);
  border-color:rgba(245,194,48,.28);
  box-shadow:0 42px 100px rgba(0,0,0,.48),0 0 48px rgba(245,194,48,.08),inset 0 1px 0 rgba(255,255,255,.1);
}
.admin-login-card::before{
  content:'';position:absolute;inset:1px;border-radius:inherit;pointer-events:none;
  background:linear-gradient(135deg,rgba(245,194,48,.16),transparent 38%,rgba(101,192,224,.08));
  opacity:.72;
}
.admin-login-card > *{position:relative}
.admin-login-card-header{
  display:flex;align-items:center;gap:1rem;margin-bottom:1.35rem;
}
.admin-login-card-icon{
  display:grid;place-items:center;width:58px;height:58px;flex:0 0 58px;
  border:1px solid rgba(245,194,48,.22);border-radius:1.1rem;
  color:var(--gold);background:rgba(245,194,48,.08);
  box-shadow:0 0 30px rgba(245,194,48,.1),inset 0 1px 0 rgba(255,255,255,.08);
}
.admin-login-card-icon svg{width:28px;height:28px}
.admin-login-card-header h2{
  margin-top:.25rem;color:var(--text);font-family:var(--font-display);
  font-size:clamp(1.65rem,2.4vw,2.25rem);line-height:1.05;
}
.admin-login-alert{
  margin:0 0 1.2rem;border-radius:1rem;
  background:linear-gradient(135deg,rgba(255,86,86,.14),rgba(255,86,86,.06));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.05);
}
.admin-login-form{display:grid;gap:1rem}
.admin-login-field{display:grid;gap:.55rem}
.admin-login-input-wrap{
  position:relative;display:flex;align-items:center;
}
.admin-login-input-icon{
  position:absolute;left:1.05rem;z-index:1;display:grid;place-items:center;
  width:22px;height:22px;color:#7493b7;pointer-events:none;
  transition:color .28s var(--ease-premium),transform .28s var(--ease-premium);
}
.admin-login-input-icon svg{width:21px;height:21px}
.admin-login-section .form-label{
  color:#7895b8;font-size:.68rem;font-weight:800;letter-spacing:.2em;
}
.admin-login-section .form-input{
  width:100%;min-height:60px;padding:1rem 1rem 1rem 3.15rem;
  border:1px solid rgba(245,194,48,.14);border-radius:1rem;
  color:var(--text);background:rgba(7,13,25,.72);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.045),0 12px 28px rgba(0,0,0,.18);
  transition:border-color .3s var(--ease-premium),box-shadow .3s var(--ease-premium),background .3s var(--ease-premium);
}
.admin-login-section .form-input::placeholder{color:#526d8d}
.admin-login-section .form-input:hover{
  border-color:rgba(245,194,48,.24);background:rgba(9,16,31,.82);
}
.admin-login-input-wrap:focus-within .admin-login-input-icon{
  color:var(--gold);transform:scale(1.04);
}
.admin-login-section .form-input:focus{
  border-color:rgba(245,194,48,.7);
  box-shadow:0 0 0 4px rgba(245,194,48,.1),0 0 30px rgba(245,194,48,.12),inset 0 1px 0 rgba(255,255,255,.06);
}
.admin-login-submit{
  width:100%;justify-content:center;min-height:58px;margin-top:.35rem;
  border-radius:1rem;padding:1rem 1.4rem;border:1px solid rgba(255,255,255,.12);
  background:linear-gradient(135deg,#f9d870 0%,#f5c230 42%,#b78117 100%);
  box-shadow:0 18px 38px rgba(245,194,48,.22),inset 0 1px 0 rgba(255,255,255,.38);
}
.admin-login-submit span{
  display:inline-flex;transition:transform .3s var(--ease-premium);
}
.admin-login-submit:hover span{transform:translateX(4px)}
.admin-login-footnote{
  margin-top:1.05rem;color:#58718f;text-align:center;
  font-size:.78rem;letter-spacing:.08em;
}
@keyframes admin-login-rise{
  from{opacity:0;transform:translateY(22px) scale(.985)}
  to{opacity:1;transform:translateY(0) scale(1)}
}
@media(max-width:980px){
  .admin-login-section{
    place-items:start center;padding:clamp(1.5rem,6vw,3rem) 0;
  }
  .admin-login-shell{
    grid-template-columns:1fr;gap:1.5rem;width:min(620px,calc(100% - 1.5rem));
  }
  .admin-login-copy{
    max-width:none;text-align:center;justify-items:center;
  }
  .admin-login-copy h1{font-size:clamp(2.55rem,9vw,4.2rem)}
  .admin-login-copy > p:not(.t-label){max-width:540px}
  .admin-login-highlights{justify-content:center}
}
@media(max-width:560px){
  .admin-login-section{
    min-height:100dvh;padding:1rem 0;
  }
  .admin-login-shell{width:calc(100% - 1rem);gap:1rem}
  .admin-login-copy{gap:.85rem}
  .admin-login-brand{
    width:100%;justify-content:center;border-radius:1.15rem;
  }
  .admin-login-brand img{width:42px;height:42px}
  .admin-login-copy h1{font-size:2.45rem}
  .admin-login-copy > p:not(.t-label){font-size:1.02rem;line-height:1.55}
  .admin-login-highlights{display:none}
  .admin-login-card{
    padding:1.15rem;border-radius:1.25rem;
  }
  .admin-login-card-header{
    align-items:flex-start;margin-bottom:1rem;
  }
  .admin-login-card-icon{
    width:48px;height:48px;flex-basis:48px;border-radius:.95rem;
  }
  .admin-login-card-icon svg{width:24px;height:24px}
  .admin-login-card-header h2{font-size:1.65rem}
  .admin-login-section .form-input{
    min-height:56px;border-radius:.9rem;
  }
  .admin-login-submit{
    min-height:56px;border-radius:.9rem;
  }
}
.form-select{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' fill='%23F2C435'%3E%3Cpath d='M6 8L0 0h12z'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 1rem center;padding-right:2.5rem;
}
.form-divider{grid-column:span 2;height:1px;background:var(--border2)}
.form-submit{display:flex;flex-direction:column;gap:1rem;grid-column:span 2}
.form-wa-hint{font-size:.75rem;color:var(--text3);text-align:center}
.form-wa-hint a{color:var(--gold);text-decoration:underline}

/* ── Reservas premium layout ─────────────────────────────── */
#reservas.reservas-section{
  padding:clamp(5rem,8vw,7.75rem) 0;
}
.reservas-container{
  position:relative;z-index:1;
}
#reservas .form-alert{
  max-width:860px;margin:0 auto 1.5rem;border-radius:1rem;
  box-shadow:0 18px 50px rgba(0,0,0,.22),inset 0 1px 0 rgba(255,255,255,.05);
}
#reservas .reservas-grid{
  grid-template-columns:minmax(0,.86fr) minmax(540px,1.14fr);
  align-items:center;gap:clamp(2.25rem,5vw,5.25rem);
}
.reservas-copy{
  position:relative;display:grid;gap:1.35rem;
  padding:clamp(1rem,2vw,1.4rem) 0;
}
.reservas-copy::before{
  content:'';position:absolute;left:-3rem;top:-4rem;width:18rem;height:18rem;z-index:-1;
  background:radial-gradient(circle,rgba(245,194,48,.14),transparent 70%);
  filter:blur(8px);
}
.reservas-kicker{
  display:flex;align-items:center;gap:.85rem;
}
.reservas-kicker span{
  width:42px;height:1px;background:linear-gradient(90deg,var(--gold),transparent);
}
.reservas-info h2{
  max-width:610px;font-size:clamp(2.85rem,5.6vw,5.45rem);
  line-height:.96;letter-spacing:-.025em;margin-bottom:1.2rem;
  text-shadow:0 24px 72px rgba(0,0,0,.5);
}
.reservas-info h2 em{
  display:inline-block;color:transparent;
  background:linear-gradient(135deg,var(--gold-light),var(--gold),#a87914);
  -webkit-background-clip:text;background-clip:text;
  filter:drop-shadow(0 16px 34px rgba(245,194,48,.18));
}
.reservas-info p{
  max-width:520px;font-size:clamp(1.12rem,1.45vw,1.32rem);
  line-height:1.75;color:#a4bad3;margin-bottom:0;
}
.reservas-benefits{
  display:flex;flex-wrap:wrap;gap:.7rem;margin:.2rem 0 .4rem;
}
.reservas-benefits span{
  display:inline-flex;align-items:center;gap:.5rem;
  padding:.62rem .82rem;border:1px solid rgba(245,194,48,.13);border-radius:999px;
  color:#9fb8d4;background:rgba(12,18,33,.46);
  font-size:.68rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.04);
}
.reservas-benefits span::before{
  content:'';width:6px;height:6px;border-radius:50%;background:var(--gold);
  box-shadow:0 0 14px rgba(245,194,48,.68);
}
#reservas .reservas-contact{
  display:grid;gap:.85rem;margin-top:.15rem;
}
#reservas .reservas-contact-item{
  position:relative;display:flex;align-items:center;gap:.95rem;
  padding:1rem 1.05rem;border:1px solid rgba(245,194,48,.12);border-radius:1.1rem;
  color:var(--text2);
  background:linear-gradient(135deg,rgba(24,34,58,.64),rgba(8,14,27,.46));
  box-shadow:0 16px 34px rgba(0,0,0,.16),inset 0 1px 0 rgba(255,255,255,.04);
  transition:transform .32s var(--ease-premium),border-color .32s var(--ease-premium),background .32s var(--ease-premium);
}
#reservas .reservas-contact-item:hover{
  transform:translateY(-2px);border-color:rgba(245,194,48,.24);
  background:linear-gradient(135deg,rgba(30,42,69,.74),rgba(9,16,31,.56));
}
#reservas .reservas-contact-icon{
  width:44px;height:44px;border-radius:.9rem;background:rgba(245,194,48,.08);
  border:1px solid rgba(245,194,48,.18);color:var(--gold);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.06);
}
#reservas .reservas-contact-icon svg{
  width:22px;height:22px;
}
.reservas-contact-title{
  color:var(--text);font-weight:700;line-height:1.35;overflow-wrap:anywhere;
}
.reservas-contact-meta{
  margin-top:.16rem;color:#6380a2;font-size:.76rem;font-weight:600;letter-spacing:.06em;
}
.reservas-wa-btn{
  width:100%;justify-content:center;min-height:56px;margin-top:.35rem;border-radius:1rem;
  background:linear-gradient(135deg,#30df77,#18a96b 48%,#0f7967);
  box-shadow:0 18px 42px rgba(37,211,102,.18),inset 0 1px 0 rgba(255,255,255,.22);
}
.reservas-wa-btn:hover{
  box-shadow:0 22px 52px rgba(37,211,102,.28),0 0 0 1px rgba(255,255,255,.12);
}
#reservas .reservas-form-wrap{
  position:relative;overflow:hidden;padding:clamp(1.35rem,2.8vw,2.3rem);
  border:1px solid rgba(245,194,48,.18);border-radius:1.65rem;
  background:
    linear-gradient(180deg,rgba(255,255,255,.07),transparent 30%),
    linear-gradient(145deg,rgba(24,34,58,.86),rgba(8,14,27,.78));
  box-shadow:0 34px 92px rgba(0,0,0,.38),inset 0 1px 0 rgba(255,255,255,.07);
  backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);
}
#reservas .reservas-form-wrap::before{
  content:'';position:absolute;inset:1px;border-radius:inherit;pointer-events:none;
  background:linear-gradient(135deg,rgba(245,194,48,.15),transparent 34%,rgba(101,192,224,.08));
  opacity:.82;
}
#reservas .reservas-form-wrap > *{position:relative}
.reservas-form-head{
  display:grid;gap:.45rem;margin-bottom:1.35rem;padding-bottom:1.15rem;
  border-bottom:1px solid rgba(245,194,48,.1);
}
.reservas-form-head h3{
  color:var(--text);font-family:var(--font-display);
  font-size:clamp(1.7rem,2.4vw,2.35rem);line-height:1.08;
}
.reservas-form-head p:not(.t-label){
  max-width:520px;color:#819dbb;font-size:.94rem;line-height:1.55;
}
#reservas .reservas-form-grid{
  gap:1.05rem;
}
#reservas .reservas-field{
  gap:.55rem;
}
.reservas-field-control{
  position:relative;display:flex;align-items:center;
}
.reservas-field-icon{
  position:absolute;left:1rem;z-index:2;display:grid;place-items:center;
  width:24px;height:24px;color:#6f8daf;pointer-events:none;
  transition:color .3s var(--ease-premium),transform .3s var(--ease-premium);
}
.reservas-field-icon svg{width:22px;height:22px}
#reservas .form-label{
  color:#7895b8;font-weight:800;letter-spacing:.19em;
}
#reservas .form-input,
#reservas .form-select,
#reservas .form-textarea{
  width:100%;min-height:58px;padding:1rem 1rem 1rem 3.1rem;
  border:1px solid rgba(245,194,48,.13);border-radius:1rem;
  color:var(--text);background-color:rgba(7,13,25,.68);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.045),0 12px 26px rgba(0,0,0,.14);
  transition:border-color .3s var(--ease-premium),box-shadow .3s var(--ease-premium),background-color .3s var(--ease-premium);
}
#reservas .form-select{
  background-position:right 1rem center;padding-right:2.55rem;
}
#reservas .form-input::placeholder,
#reservas .form-textarea::placeholder{
  color:#536f90;
}
#reservas .form-input:hover,
#reservas .form-select:hover,
#reservas .form-textarea:hover{
  border-color:rgba(245,194,48,.24);background-color:rgba(9,16,31,.82);
}
.reservas-field-control:focus-within .reservas-field-icon{
  color:var(--gold);transform:scale(1.05);
}
#reservas .form-input:focus,
#reservas .form-select:focus,
#reservas .form-textarea:focus{
  border-color:rgba(245,194,48,.68);
  box-shadow:0 0 0 4px rgba(245,194,48,.1),0 0 32px rgba(245,194,48,.1),inset 0 1px 0 rgba(255,255,255,.06);
}
#reservas .has-textarea{align-items:flex-start}
#reservas .has-textarea .reservas-field-icon{
  top:1.05rem;
}
#reservas .form-textarea{
  min-height:122px;line-height:1.55;resize:vertical;
}
#reservas .form-divider{
  height:1px;background:linear-gradient(90deg,transparent,rgba(245,194,48,.24),transparent);
}
#reservas .form-submit{
  gap:.85rem;
}
.reservas-submit{
  width:100%;justify-content:center;min-height:58px;padding:1rem 1.4rem;border-radius:1rem;
  border:1px solid rgba(255,255,255,.14);
  background:linear-gradient(135deg,#f9d870 0%,#f5c230 44%,#b78117 100%);
  box-shadow:0 20px 42px rgba(245,194,48,.24),inset 0 1px 0 rgba(255,255,255,.36);
}
.reservas-submit span{
  position:relative;display:inline-flex;align-items:center;gap:.7rem;
}
.reservas-submit span::after{
  content:'→';font-size:1rem;transition:transform .3s var(--ease-premium);
}
.reservas-submit:hover span::after{
  transform:translateX(4px);
}
#reservas .form-wa-hint{
  color:#6380a2;font-size:.8rem;line-height:1.45;
}
#reservas .form-wa-hint a{
  color:var(--gold);text-decoration:none;border-bottom:1px solid rgba(245,194,48,.35);
}
.reservas-field-control.is-enhanced-select .form-select{
  position:absolute;inset:0;opacity:0;pointer-events:none;
}
.premium-select{
  position:relative;width:100%;
}
.premium-select-trigger{
  display:flex;align-items:center;justify-content:space-between;gap:1rem;
  width:100%;min-height:58px;padding:1rem 1rem 1rem 3.1rem;
  border:1px solid rgba(245,194,48,.16);border-radius:1rem;
  color:var(--text);text-align:left;
  background:
    linear-gradient(135deg,rgba(255,255,255,.045),transparent 42%),
    rgba(7,13,25,.74);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.05),0 12px 26px rgba(0,0,0,.16);
  transition:border-color .3s var(--ease-premium),box-shadow .3s var(--ease-premium),background .3s var(--ease-premium);
}
.premium-select-trigger:hover,
.premium-select.open .premium-select-trigger{
  border-color:rgba(245,194,48,.42);
  background:
    linear-gradient(135deg,rgba(245,194,48,.08),transparent 46%),
    rgba(9,16,31,.9);
  box-shadow:0 0 0 4px rgba(245,194,48,.08),0 20px 36px rgba(0,0,0,.22),inset 0 1px 0 rgba(255,255,255,.065);
}
.premium-select-value{
  min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
  font-size:.9rem;font-weight:500;color:#e8f0ff;
}
.premium-select-chevron{
  display:grid;place-items:center;flex:0 0 30px;width:30px;height:30px;
  border:1px solid rgba(245,194,48,.16);border-radius:.7rem;
  color:var(--gold);background:rgba(245,194,48,.08);
  transition:transform .3s var(--ease-premium),background .3s var(--ease-premium);
}
.premium-select.open .premium-select-chevron{
  transform:rotate(180deg);background:rgba(245,194,48,.14);
}
.premium-select-list{
  position:absolute;left:0;right:0;top:calc(100% + .5rem);z-index:30;
  display:grid;gap:.35rem;padding:.45rem;
  border:1px solid rgba(245,194,48,.2);border-radius:1rem;
  background:
    linear-gradient(180deg,rgba(255,255,255,.07),transparent 34%),
    rgba(9,15,29,.98);
  box-shadow:0 26px 58px rgba(0,0,0,.42),inset 0 1px 0 rgba(255,255,255,.06);
  backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);
  opacity:0;visibility:hidden;transform:translateY(-8px) scale(.98);
  transform-origin:top center;
  transition:opacity .22s var(--ease-premium),visibility .22s var(--ease-premium),transform .22s var(--ease-premium);
}
.premium-select.open .premium-select-list{
  opacity:1;visibility:visible;transform:translateY(0) scale(1);
}
.premium-select-option{
  display:flex;align-items:center;justify-content:space-between;gap:.75rem;
  width:100%;padding:.78rem .9rem;border:1px solid transparent;border-radius:.75rem;
  color:#b4c8df;text-align:left;font-size:.88rem;font-weight:600;
  background:transparent;transition:background .2s var(--ease-premium),border-color .2s var(--ease-premium),color .2s var(--ease-premium),transform .2s var(--ease-premium);
}
.premium-select-option:hover{
  color:var(--text);border-color:rgba(245,194,48,.18);
  background:rgba(245,194,48,.08);transform:translateX(2px);
}
.premium-select-option[aria-selected="true"]{
  color:#0c1221;
  background:linear-gradient(135deg,var(--gold-light),var(--gold));
  box-shadow:0 10px 24px rgba(245,194,48,.18);
}
.premium-select-option[aria-selected="true"]::after{
  content:'✓';font-weight:900;color:#0c1221;
}

.admin-panel{display:flex;flex-direction:column;gap:1.5rem}
.admin-panel-header{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:2rem;flex-wrap:wrap}
.admin-panel-actions{display:flex;align-items:center;gap:1rem}
.admin-panel-toolbar{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-bottom:1.5rem}
.admin-search-wrap{flex:1;min-width:240px}
.admin-filter-wrap{min-width:220px}
.admin-reservas-table-wrap{overflow-x:auto;background:var(--surface);border:1px solid var(--border2);border-radius:var(--r-xl);padding:1rem}
.admin-reservas-table{width:100%;border-collapse:collapse;min-width:980px}
.admin-reservas-table th,.admin-reservas-table td{padding:.9rem 1rem;text-align:left;border-bottom:1px solid var(--border2);vertical-align:middle}
.admin-reservas-table th{font-size:.75rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--text3)}
.admin-reservas-table td{font-size:.9rem;color:var(--text2)}
.admin-actions-cell{display:flex;flex-wrap:wrap;gap:.5rem}
.status-pill{display:inline-flex;align-items:center;justify-content:center;padding:.35rem .75rem;border-radius:999px;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.12em}
.status-pending{background:rgba(255,195,47,.12);color:var(--gold)}
.status-confirmed{background:rgba(37,211,102,.12);color:#16a34a}
.status-cancelled{background:rgba(220,38,38,.12);color:#ef4444}
@keyframes admin-dashboard-enter{
  from{opacity:0;transform:translateY(18px)}
  to{opacity:1;transform:translateY(0)}
}
@keyframes admin-dashboard-fade{
  from{opacity:0}
  to{opacity:1}
}
.admin-reservas-section{
  position:relative;isolation:isolate;min-height:100vh;
  padding:clamp(2.75rem,5vw,5.5rem) 0 clamp(4rem,7vw,6.5rem);
  background:
    linear-gradient(180deg,rgba(245,194,48,.075),transparent 20%),
    linear-gradient(135deg,#09101e 0%,var(--bg2) 48%,#08101d 100%);
}
.admin-reservas-section::before{
  content:'';position:absolute;inset:0;z-index:-1;pointer-events:none;
  background:
    linear-gradient(90deg,transparent 0%,rgba(255,255,255,.028) 50%,transparent 100%),
    linear-gradient(180deg,transparent 0%,rgba(0,0,0,.3) 100%);
}
.admin-reservas-panel{gap:1.35rem;animation:admin-dashboard-fade .55s var(--ease-premium) both}
.admin-reservas-panel .admin-panel-header{
  align-items:center;margin:0;padding:clamp(1.5rem,3vw,2.65rem);
  border:1px solid rgba(245,194,48,.18);border-radius:var(--r-xl);
  background:
    linear-gradient(135deg,rgba(245,194,48,.08),transparent 34%),
    linear-gradient(145deg,rgba(24,34,58,.94),rgba(12,18,33,.8));
  box-shadow:0 32px 86px rgba(0,0,0,.3),inset 0 1px 0 rgba(255,255,255,.075);
  backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);
}
.admin-panel-heading{
  display:flex;align-items:flex-start;gap:1.15rem;min-width:0;
}
.admin-panel-mark{
  position:relative;display:grid;place-items:center;flex:0 0 auto;
  width:66px;height:66px;border:1px solid rgba(245,194,48,.28);border-radius:1.25rem;
  color:var(--gold-light);background:linear-gradient(145deg,rgba(245,194,48,.16),rgba(19,31,54,.72));
  box-shadow:0 18px 42px rgba(0,0,0,.24),0 0 24px rgba(245,194,48,.08);
}
.admin-panel-mark::after{
  content:'';position:absolute;inset:7px;border:1px solid rgba(255,255,255,.07);border-radius:.92rem;
}
.admin-panel-mark svg{position:relative;z-index:1;width:32px;height:32px}
.admin-panel-heading .t-label{margin-top:.15rem}
.admin-reservas-panel .admin-panel-actions{
  flex-wrap:wrap;justify-content:flex-end;padding:.35rem;border-radius:999px;
  background:rgba(8,14,27,.34);border:1px solid rgba(255,255,255,.04);
}
.admin-reservas-panel .admin-panel-header h1{
  margin:.45rem 0 .55rem;color:var(--text);font-family:var(--font-display);
  font-size:clamp(2.05rem,3vw,3.15rem);font-weight:700;line-height:1.08;
}
.admin-reservas-panel .section-desc{
  margin-inline:0;max-width:620px;color:var(--text2);font-size:clamp(1rem,1.35vw,1.18rem);
}
.admin-reservas-panel .admin-panel-actions .btn{
  min-height:48px;justify-content:center;border-radius:999px;
  backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);
}
.admin-reservas-metrics{
  display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem;
}
.admin-metric-card{
  position:relative;display:grid;gap:.45rem;min-height:150px;padding:1.35rem 1.4rem;
  border:1px solid rgba(245,194,48,.12);border-radius:1.35rem;overflow:hidden;
  background:
    linear-gradient(145deg,rgba(255,255,255,.075),rgba(255,255,255,.02)),
    rgba(17,28,49,.76);
  box-shadow:0 24px 62px rgba(0,0,0,.22),inset 0 1px 0 rgba(255,255,255,.055);
  transition:transform .42s var(--ease-premium),border-color .35s,box-shadow .42s;
}
.admin-metric-card::before{
  content:'';position:absolute;inset:auto -20% -42% auto;width:145px;height:145px;border-radius:50%;
  background:radial-gradient(circle,rgba(245,194,48,.16),transparent 68%);
  opacity:.62;transition:transform .5s var(--ease-premium),opacity .35s;
}
.admin-metric-card::after{
  content:'';position:absolute;left:1.4rem;right:1.4rem;top:0;height:1px;
  background:linear-gradient(90deg,transparent,rgba(245,194,48,.72),transparent);
}
.admin-metric-card:hover{
  transform:translateY(-4px);border-color:rgba(245,194,48,.28);
  box-shadow:0 30px 78px rgba(0,0,0,.3),0 0 0 1px rgba(245,194,48,.07),inset 0 1px 0 rgba(255,255,255,.08);
}
.admin-metric-card:hover::before{transform:scale(1.15);opacity:.95}
.admin-metric-card:nth-child(2){animation:admin-dashboard-enter .7s .05s var(--ease-premium) both}
.admin-metric-card:nth-child(3){animation:admin-dashboard-enter .7s .1s var(--ease-premium) both}
.admin-metric-card:nth-child(4){animation:admin-dashboard-enter .7s .15s var(--ease-premium) both}
.admin-metric-label,.admin-metric-note{
  position:relative;z-index:1;text-transform:uppercase;font-weight:600;letter-spacing:.18em;
}
.admin-metric-label{color:var(--text2);font-size:.67rem}
.admin-metric-note{align-self:end;color:var(--text3);font-size:.62rem}
.admin-metric-card strong{
  position:relative;z-index:1;color:var(--text);font-family:var(--font-display);
  font-size:clamp(2.25rem,3.3vw,3.45rem);font-weight:700;line-height:1;
}
.admin-metric-today strong{color:var(--gold-light)}
.admin-metric-pending::before{background:radial-gradient(circle,rgba(245,194,48,.22),transparent 68%)}
.admin-metric-confirmed::before{background:radial-gradient(circle,rgba(37,211,102,.2),transparent 68%)}
.admin-metric-confirmed strong{color:#78edb2}
.admin-metric-cancelled::before{background:radial-gradient(circle,rgba(239,68,68,.18),transparent 68%)}
.admin-metric-cancelled strong{color:#ff9aa4}
.admin-agenda-filters{
  display:flex;flex-wrap:wrap;align-items:center;gap:.65rem;
  padding:.75rem;border:1px solid rgba(245,194,48,.1);border-radius:1.25rem;
  background:rgba(17,28,49,.52);
  box-shadow:0 18px 48px rgba(0,0,0,.18),inset 0 1px 0 rgba(255,255,255,.035);
}
.admin-agenda-filter{
  min-height:44px;padding:.72rem 1.05rem;border:1px solid rgba(245,194,48,.12);border-radius:999px;
  color:var(--text2);font-size:.7rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;
  background:rgba(7,13,25,.32);
  transition:transform .32s var(--ease-premium),border-color .3s,background .3s,color .3s,box-shadow .32s;
}
.admin-agenda-filter:hover{
  color:var(--gold);border-color:rgba(245,194,48,.32);transform:translateY(-2px);
  background:rgba(245,194,48,.06);
}
.admin-agenda-filter.is-active{
  color:#08101d;border-color:rgba(245,194,48,.72);
  background:linear-gradient(135deg,var(--gold),var(--gold-dark));
  box-shadow:0 14px 34px rgba(245,194,48,.18);
}
.admin-reservas-panel .admin-panel-toolbar{
  position:relative;overflow:hidden;
}
.admin-reservas-panel .admin-panel-toolbar::before{
  content:'';position:absolute;inset:0 auto 0 0;width:3px;
  background:linear-gradient(180deg,transparent,var(--gold),transparent);
}
.admin-reservas-panel .admin-panel-toolbar{
  display:grid;grid-template-columns:minmax(280px,1fr) minmax(170px,190px) minmax(210px,240px) auto;
  align-items:center;margin:0;padding:1.15rem;gap:1rem;
  border:1px solid rgba(245,194,48,.12);border-radius:1.35rem;
  background:rgba(17,28,49,.72);
  box-shadow:0 22px 58px rgba(0,0,0,.22),inset 0 1px 0 rgba(255,255,255,.045);
  backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);
}
.admin-reservas-panel .admin-search-wrap,
.admin-reservas-panel .admin-date-wrap,
.admin-reservas-panel .admin-filter-wrap{min-width:0}
.admin-reservas-panel .admin-search-wrap{position:relative}
.admin-reservas-panel .admin-search-wrap::before{
  content:'';position:absolute;left:1.15rem;top:50%;z-index:1;width:16px;height:16px;
  border:2px solid var(--text3);border-radius:50%;transform:translateY(-60%);
  pointer-events:none;transition:border-color .3s;
}
.admin-reservas-panel .admin-search-wrap::after{
  content:'';position:absolute;left:2.1rem;top:calc(50% + 7px);z-index:1;width:8px;height:2px;
  border-radius:999px;background:var(--text3);transform:rotate(45deg);
  pointer-events:none;transition:background .3s;
}
.admin-reservas-panel .admin-search-wrap:focus-within::before{border-color:var(--gold)}
.admin-reservas-panel .admin-search-wrap:focus-within::after{background:var(--gold)}
.admin-reservas-panel .form-input,
.admin-reservas-panel .form-select{
  min-height:58px;width:100%;border-color:rgba(242,196,53,.14);border-radius:1rem;
  background-color:rgba(12,18,33,.62);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.035);
}
.admin-reservas-panel .admin-search-wrap .form-input{padding-left:3.2rem}
.admin-reservas-panel .form-input:hover,
.admin-reservas-panel .form-select:hover{border-color:rgba(242,196,53,.24)}
.admin-date-wrap .form-input{color-scheme:dark}
.admin-updated{
  display:inline-flex;align-items:center;justify-self:end;gap:.65rem;min-height:48px;
  padding:.7rem .95rem;border:1px solid var(--border2);border-radius:999px;
  color:var(--text3);font-size:.82rem;font-weight:500;white-space:nowrap;
  background:rgba(12,18,33,.58);
}
.admin-updated::before{
  content:'';width:8px;height:8px;border-radius:50%;
  background:var(--gold);box-shadow:0 0 14px rgba(245,194,48,.72);
}
.admin-updated span{color:var(--text2)}
.admin-reservas-panel .admin-reservas-table-wrap{
  position:relative;padding:1.25rem;border-radius:var(--r-xl);
  border-color:rgba(242,196,53,.14);
  background:
    linear-gradient(180deg,rgba(255,255,255,.045),transparent 22%),
    linear-gradient(180deg,rgba(24,34,58,.95),rgba(11,18,33,.98));
  box-shadow:0 34px 92px rgba(0,0,0,.32),inset 0 1px 0 rgba(255,255,255,.055);
}
.admin-table-heading{
  display:flex;justify-content:space-between;align-items:flex-end;gap:1rem;
  padding:.35rem .35rem 1.15rem;
}
.admin-table-heading h2{
  margin-top:.34rem;color:var(--text);font-family:var(--font-display);
  font-size:clamp(1.35rem,1.8vw,1.9rem);line-height:1.15;
}
.admin-table-heading > p{
  max-width:340px;color:var(--text3);font-size:.92rem;text-align:right;
}
.admin-reservas-panel .admin-reservas-table{
  min-width:1280px;border-collapse:separate;border-spacing:0 .72rem;
}
.admin-reservas-panel .admin-reservas-table thead th{
  padding-top:.35rem;padding-bottom:.45rem;border-bottom:none;
  background:transparent;color:#7392b6;
}
.admin-reservas-panel .admin-reservas-table tbody tr{transition:transform .34s var(--ease-premium)}
.admin-reservas-panel .admin-date-group-row:hover{transform:none}
.admin-reservas-panel .admin-date-group-row td{
  height:auto!important;padding:.95rem .25rem .35rem!important;border:none!important;
  background:transparent!important;box-shadow:none!important;border-radius:0!important;
}
.admin-date-group{
  display:flex;justify-content:space-between;align-items:center;gap:1rem;
  padding:1rem 1.15rem;border:1px solid rgba(245,194,48,.16);border-radius:1rem;
  background:
    linear-gradient(135deg,rgba(245,194,48,.1),transparent 34%),
    rgba(12,18,33,.58);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.045);
}
.admin-date-group-kicker{
  display:block;margin-bottom:.25rem;color:var(--gold);
  font-size:.62rem;font-weight:800;letter-spacing:.2em;text-transform:uppercase;
}
.admin-date-group strong{
  display:block;color:var(--text);font-family:var(--font-display);
  font-size:clamp(1.15rem,1.6vw,1.55rem);line-height:1.15;text-transform:capitalize;
}
.admin-date-group > span{
  color:var(--text2);font-size:.8rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;text-align:right;
}
.admin-reservas-panel .admin-reservas-table tbody td{
  border-top:1px solid rgba(245,194,48,.08);border-bottom:1px solid rgba(245,194,48,.08);
  background:linear-gradient(135deg,rgba(30,42,69,.82),rgba(18,29,50,.68));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.025);
}
.admin-reservas-panel .admin-reservas-table tbody td:first-child{
  border-left:1px solid rgba(245,194,48,.08);border-radius:1rem 0 0 1rem;
}
.admin-reservas-panel .admin-reservas-table tbody td:last-child{
  border-right:1px solid rgba(245,194,48,.08);border-radius:0 1rem 1rem 0;
}
.admin-reservas-panel .admin-reservas-table tbody tr:hover{transform:translateY(-2px)}
.admin-reservas-panel .admin-reservas-table tbody tr:hover td{
  border-color:rgba(245,194,48,.22);
  background:linear-gradient(135deg,rgba(35,49,79,.95),rgba(19,31,54,.88));
}
.admin-reservas-panel .admin-reservas-table td{
  height:96px;padding-block:1rem;font-size:.93rem;line-height:1.45;border-bottom:1px solid rgba(245,194,48,.08);
}
.admin-reservas-panel .admin-reservas-table td:first-child{
  color:var(--text);font-weight:500;
}
.admin-reservas-panel .admin-reservas-table td:nth-child(3){
  min-width:190px;color:var(--blue-light);
}
.admin-reservas-panel .admin-reservas-table td:nth-child(4),
.admin-reservas-panel .admin-reservas-table td:nth-child(5),
.admin-reservas-panel .admin-reservas-table td:nth-child(6){white-space:nowrap}
.admin-reservas-panel .admin-reservas-table td:nth-child(7){
  max-width:260px;min-width:170px;overflow-wrap:anywhere;color:var(--text3);
}
.admin-reservas-panel .admin-reservas-table .text-center{
  height:auto;padding-block:2.5rem;color:var(--text3);
}
.admin-reservas-panel .admin-actions-cell{
  min-width:220px;
}
.admin-actions-row{
  display:flex;align-items:center;justify-content:center;gap:.65rem;flex-wrap:nowrap;
}
.admin-reservas-panel .admin-actions-cell .admin-action-btn{
  flex:0 0 40px;width:40px;height:40px;min-width:40px;min-height:40px;justify-content:center;gap:0;padding:0;
  border-color:rgba(242,196,53,.12);border-radius:.85rem;
  color:#9bb6d2;background:rgba(7,13,25,.42);
  overflow:visible;white-space:nowrap;font-size:.66rem;letter-spacing:0;
}
.admin-action-icon{
  display:grid;place-items:center;flex:0 0 24px;width:24px;height:24px;
  border-radius:.48rem;color:var(--gold);font-size:.82rem;line-height:1;
  background:rgba(245,194,48,.1);
}
.admin-action-text{display:none}
.admin-reservas-panel .admin-actions-cell .btn[data-action="confirm"]:hover{
  color:#6ee7a8;border-color:rgba(37,211,102,.34);background:rgba(37,211,102,.08);
}
.admin-reservas-panel .admin-actions-cell .btn[data-action="pending"]:hover{
  color:var(--gold);border-color:rgba(245,194,48,.34);background:rgba(245,194,48,.08);
}
.admin-reservas-panel .admin-actions-cell .btn[data-action="cancel"]:hover{
  color:#fda4af;border-color:rgba(251,113,133,.28);background:rgba(251,113,133,.07);
}
.admin-reservas-panel .admin-actions-cell .btn-danger .admin-action-icon{
  color:#ff8b96;background:rgba(239,68,68,.12);
}
.admin-reservas-panel .status-pill{
  min-width:126px;gap:.45rem;border:1px solid transparent;padding:.52rem .9rem;
  font-size:.67rem;box-shadow:inset 0 1px 0 rgba(255,255,255,.08);
}
.admin-reservas-panel .status-pill::before{
  content:'';width:7px;height:7px;border-radius:50%;background:currentColor;box-shadow:0 0 12px currentColor;
}
.admin-reservas-panel .status-pending{
  border-color:rgba(245,194,48,.24);background:linear-gradient(135deg,rgba(245,194,48,.18),rgba(245,194,48,.07));
}
.admin-reservas-panel .status-confirmed{
  border-color:rgba(37,211,102,.24);color:#4fe091;
  background:linear-gradient(135deg,rgba(37,211,102,.18),rgba(37,211,102,.07));
  box-shadow:0 0 24px rgba(37,211,102,.08),inset 0 1px 0 rgba(255,255,255,.08);
}
.admin-reservas-panel .status-cancelled{
  border-color:rgba(239,68,68,.24);color:#ff8390;
  background:linear-gradient(135deg,rgba(239,68,68,.16),rgba(239,68,68,.06));
}
.admin-reservas-section .admin-notification-panel{
  right:1.25rem;top:1.25rem;max-height:calc(100dvh - 2.5rem);overflow:auto;
  width:min(348px,calc(100vw - 1.5rem));padding:.4rem;border-radius:var(--r-lg);
  border-color:rgba(242,196,53,.13);
  background:linear-gradient(145deg,rgba(24,34,58,.96),rgba(12,18,33,.94));
  box-shadow:0 28px 72px rgba(0,0,0,.34),inset 0 1px 0 rgba(255,255,255,.045);
  backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);
}
.admin-reservas-section .admin-notification-panel .admin-notification-inner{
  gap:1rem;padding:1.15rem;padding-top:1.35rem;
}
.admin-reservas-section .admin-notification-left{gap:.9rem}
.admin-reservas-section .admin-notification-icon{
  display:grid;place-items:center;width:42px;height:42px;flex:0 0 42px;border-radius:50%;
  font-size:1.15rem;background:rgba(245,194,48,.1);border:1px solid rgba(245,194,48,.18);
}
.admin-reservas-section .admin-notification-title{line-height:1.25}
.admin-reservas-section .admin-notification-history{
  display:grid;gap:.45rem;margin-top:.8rem!important;padding-left:0!important;
}
.admin-reservas-section .admin-notification-history li{
  padding:.1rem 0;color:var(--text2);font-size:.85rem;line-height:1.35;
}
.admin-reservas-section .admin-notification-right{
  margin-left:3.15rem;justify-content:flex-start;
}
@media (max-width:900px){
  .admin-reservas-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}
  .admin-reservas-panel .admin-panel-toolbar{grid-template-columns:1fr}
  .admin-updated{justify-self:start}
  .admin-reservas-panel .admin-panel-actions{width:100%;justify-content:flex-start;border-radius:1rem}
  .admin-table-heading{align-items:flex-start;flex-direction:column}
  .admin-table-heading > p{text-align:left}
}
@media (max-width:640px){
  .admin-reservas-section{padding-top:2rem}
  .admin-reservas-panel .admin-panel-header{padding:1.25rem;border-radius:var(--r-lg)}
  .admin-panel-heading{gap:.85rem}
  .admin-panel-mark{width:54px;height:54px;border-radius:1rem}
  .admin-panel-mark svg{width:28px;height:28px}
  .admin-reservas-metrics{grid-template-columns:1fr}
  .admin-metric-card{min-height:128px}
  .admin-reservas-panel .admin-panel-actions .btn{flex:1}
  .admin-reservas-panel .admin-panel-toolbar{padding:.85rem}
  .admin-agenda-filters{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
  .admin-agenda-filter{width:100%;padding-inline:.8rem}
  .admin-date-group{align-items:flex-start;flex-direction:column}
  .admin-date-group > span{text-align:left}
  .admin-reservas-section .admin-notification-panel{right:.75rem;top:.75rem;max-height:calc(100dvh - 1.5rem)}
  .admin-notif-edge-btn{right:.75rem;top:.75rem}
  .admin-reservas-section .admin-notification-right{margin-left:0}
}
@media (max-width:760px){
  .admin-reservas-panel .admin-reservas-table-wrap{overflow:visible;padding:1rem}
  .admin-reservas-panel .admin-reservas-table{display:block;min-width:0;border-spacing:0}
  .admin-reservas-panel .admin-reservas-table thead{display:none}
  .admin-reservas-panel .admin-reservas-table tbody,
  .admin-reservas-panel .admin-reservas-table tr,
  .admin-reservas-panel .admin-reservas-table td{display:block;width:100%}
  .admin-reservas-panel .admin-reserva-row{
    margin-bottom:1rem;padding:.45rem;border:1px solid rgba(245,194,48,.12);border-radius:1.15rem;
    background:linear-gradient(145deg,rgba(30,42,69,.88),rgba(12,18,33,.88));
    box-shadow:0 18px 48px rgba(0,0,0,.22);
  }
  .admin-reservas-panel .admin-reserva-row:hover{transform:translateY(-2px)}
  .admin-reservas-panel .admin-reserva-row td,
  .admin-reservas-panel .admin-reserva-row td:first-child,
  .admin-reservas-panel .admin-reserva-row td:last-child{
    display:grid;grid-template-columns:minmax(92px,.45fr) 1fr;align-items:start;gap:.65rem;
    height:auto;min-width:0;max-width:none;padding:.7rem .65rem;border:none;border-radius:0;
    background:transparent;box-shadow:none;white-space:normal;
  }
  .admin-reservas-panel .admin-reserva-row td::before{
    content:attr(data-label);padding-top:.12rem;color:var(--text3);
    font-size:.62rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;
  }
  .admin-reservas-panel .admin-date-group-row,
  .admin-reservas-panel .admin-date-group-row td{
    display:block;width:100%;padding:.4rem 0!important;border:none!important;background:transparent!important;
  }
  .admin-reservas-panel .admin-date-group-row td::before{display:none}
  .admin-reservas-panel .admin-reserva-row .admin-actions-cell{
    display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;align-items:stretch!important;
    gap:.55rem!important;width:100%!important;max-width:none!important;min-width:0!important;
    margin-top:.35rem;padding:.75rem .65rem .65rem!important;
    border-top:1px solid rgba(245,194,48,.1);border-radius:0 0 .9rem .9rem;
    background:linear-gradient(180deg,rgba(7,13,25,.18),rgba(7,13,25,.42));
  }
  .admin-reservas-panel .admin-reserva-row .admin-actions-cell::before{
    content:'ACCIONES'!important;display:block!important;grid-column:1/-1!important;
    padding:0 0 .08rem!important;color:var(--text3);font-size:.58rem;font-weight:800;
    letter-spacing:.2em;text-transform:uppercase;
  }
  .admin-reservas-panel .admin-reserva-row .admin-actions-cell .admin-action-btn{
    display:flex!important;flex-direction:column;align-items:center;justify-content:center;gap:.22rem!important;
    width:100%!important;max-width:none!important;min-width:0!important;height:50px;min-height:50px;padding:0!important;
    border-radius:.82rem!important;font-size:.6rem!important;letter-spacing:.04em!important;line-height:1!important;
    white-space:nowrap;overflow:hidden;box-shadow:inset 0 1px 0 rgba(255,255,255,.05),0 8px 18px rgba(0,0,0,.18);
  }
  .admin-reservas-panel .admin-reserva-row .admin-actions-cell .admin-action-icon{
    width:22px;height:22px;flex:0 0 22px;border-radius:.5rem;font-size:.78rem;
  }
  .admin-reservas-panel .admin-reserva-row .admin-actions-cell .admin-action-text{
    display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;
    color:#a9c0da;font-size:.56rem;font-weight:800;text-transform:uppercase;letter-spacing:.03em;
  }
  .admin-reservas-panel .admin-reservas-table .text-center{
    margin-top:.4rem;padding:1.4rem;border:1px solid rgba(245,194,48,.1);border-radius:1rem;
    background:rgba(30,42,69,.54);
  }
}
.admin-history-section{
  position:relative;isolation:isolate;min-height:100vh;
  padding:clamp(2.75rem,5vw,5.5rem) 0 clamp(4rem,7vw,6.5rem);
  background:
    linear-gradient(180deg,rgba(245,194,48,.07),transparent 20%),
    linear-gradient(135deg,#09101e 0%,var(--bg2) 48%,#08101d 100%);
}
.admin-history-section::before{
  content:'';position:absolute;inset:0;z-index:-1;pointer-events:none;
  background:
    linear-gradient(90deg,transparent 0%,rgba(255,255,255,.03) 50%,transparent 100%),
    linear-gradient(180deg,transparent 0%,rgba(0,0,0,.28) 100%);
}
.admin-history-panel{gap:1.35rem;animation:admin-dashboard-fade .55s var(--ease-premium) both}
.admin-history-panel .admin-panel-header{
  align-items:center;margin:0;padding:clamp(1.5rem,3vw,2.65rem);
  border:1px solid rgba(245,194,48,.18);border-radius:var(--r-xl);
  background:
    linear-gradient(135deg,rgba(245,194,48,.08),transparent 34%),
    linear-gradient(145deg,rgba(24,34,58,.94),rgba(12,18,33,.8));
  box-shadow:0 32px 86px rgba(0,0,0,.3),inset 0 1px 0 rgba(255,255,255,.075);
  backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);
}
.admin-history-panel .admin-panel-header h1{
  margin:.45rem 0 .55rem;color:var(--text);font-family:var(--font-display);
  font-size:clamp(2.05rem,3vw,3.15rem);font-weight:700;line-height:1.08;
}
.admin-history-panel .section-desc{
  margin-inline:0;max-width:620px;color:var(--text2);font-size:clamp(1rem,1.35vw,1.18rem);
}
.admin-history-panel .admin-panel-actions{
  flex-wrap:wrap;justify-content:flex-end;padding:.35rem;border-radius:999px;
  background:rgba(8,14,27,.34);border:1px solid rgba(255,255,255,.04);
}
.admin-history-panel .admin-panel-actions .btn{
  min-height:48px;justify-content:center;border-radius:999px;
  backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);
}
.admin-history-summary{
  display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem;
}
.admin-history-stat{
  position:relative;display:grid;gap:.45rem;min-height:144px;padding:1.35rem 1.4rem;
  border:1px solid rgba(245,194,48,.12);border-radius:1.35rem;overflow:hidden;
  background:
    linear-gradient(145deg,rgba(255,255,255,.075),rgba(255,255,255,.02)),
    rgba(17,28,49,.76);
  box-shadow:0 24px 62px rgba(0,0,0,.22),inset 0 1px 0 rgba(255,255,255,.055);
  transition:transform .42s var(--ease-premium),border-color .35s,box-shadow .42s;
}
.admin-history-stat::before{
  content:'';position:absolute;inset:auto -20% -42% auto;width:145px;height:145px;border-radius:50%;
  background:radial-gradient(circle,rgba(245,194,48,.16),transparent 68%);
  opacity:.62;transition:transform .5s var(--ease-premium),opacity .35s;
}
.admin-history-stat::after{
  content:'';position:absolute;left:1.4rem;right:1.4rem;top:0;height:1px;
  background:linear-gradient(90deg,transparent,rgba(245,194,48,.72),transparent);
}
.admin-history-stat:hover{
  transform:translateY(-4px);border-color:rgba(245,194,48,.28);
  box-shadow:0 30px 78px rgba(0,0,0,.3),0 0 0 1px rgba(245,194,48,.07),inset 0 1px 0 rgba(255,255,255,.08);
}
.admin-history-stat:hover::before{transform:scale(1.15);opacity:.95}
.admin-history-stat span,
.admin-history-stat strong{position:relative;z-index:1}
.admin-history-stat span{
  color:var(--text2);font-size:.67rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;
}
.admin-history-stat strong{
  align-self:end;color:var(--text);font-family:var(--font-display);
  font-size:clamp(2.25rem,3.3vw,3.45rem);font-weight:700;line-height:1;
}
.admin-history-stat:nth-child(1) strong{color:var(--gold-light)}
.admin-history-stat:nth-child(2)::before{background:radial-gradient(circle,rgba(37,211,102,.2),transparent 68%)}
.admin-history-stat:nth-child(2) strong{color:#78edb2}
.admin-history-stat:nth-child(3)::before{background:radial-gradient(circle,rgba(245,194,48,.22),transparent 68%)}
.admin-history-stat:nth-child(4)::before{background:radial-gradient(circle,rgba(239,68,68,.18),transparent 68%)}
.admin-history-stat:nth-child(4) strong{color:#ff9aa4}
.admin-history-toolbar{
  position:relative;display:grid;grid-template-columns:minmax(280px,1fr) minmax(210px,240px);
  align-items:center;margin:0;padding:1.15rem;gap:1rem;overflow:hidden;
  border:1px solid rgba(245,194,48,.12);border-radius:1.35rem;
  background:rgba(17,28,49,.72);
  box-shadow:0 22px 58px rgba(0,0,0,.22),inset 0 1px 0 rgba(255,255,255,.045);
  backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);
}
.admin-history-toolbar::before{
  content:'';position:absolute;inset:0 auto 0 0;width:3px;
  background:linear-gradient(180deg,transparent,var(--gold),transparent);
}
.admin-history-panel .admin-search-wrap,
.admin-history-panel .admin-filter-wrap{min-width:0}
.admin-history-panel .admin-search-wrap{position:relative}
.admin-history-panel .admin-search-wrap::before{
  content:'';position:absolute;left:1.15rem;top:50%;z-index:1;width:16px;height:16px;
  border:2px solid var(--text3);border-radius:50%;transform:translateY(-60%);
  pointer-events:none;transition:border-color .3s;
}
.admin-history-panel .admin-search-wrap::after{
  content:'';position:absolute;left:2.1rem;top:calc(50% + 7px);z-index:1;width:8px;height:2px;
  border-radius:999px;background:var(--text3);transform:rotate(45deg);
  pointer-events:none;transition:background .3s;
}
.admin-history-panel .admin-search-wrap:focus-within::before{border-color:var(--gold)}
.admin-history-panel .admin-search-wrap:focus-within::after{background:var(--gold)}
.admin-history-panel .form-input,
.admin-history-panel .form-select{
  min-height:58px;width:100%;border-color:rgba(242,196,53,.14);border-radius:1rem;
  background-color:rgba(12,18,33,.62);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.035);
}
.admin-history-panel .admin-search-wrap .form-input{padding-left:3.2rem}
.admin-history-panel .form-input:hover,
.admin-history-panel .form-select:hover{border-color:rgba(242,196,53,.24)}
.admin-history-panel .admin-reservas-table-wrap{
  position:relative;padding:1.25rem;border-radius:var(--r-xl);
  border-color:rgba(242,196,53,.14);
  background:
    linear-gradient(180deg,rgba(255,255,255,.045),transparent 22%),
    linear-gradient(180deg,rgba(24,34,58,.95),rgba(11,18,33,.98));
  box-shadow:0 34px 92px rgba(0,0,0,.32),inset 0 1px 0 rgba(255,255,255,.055);
}
.admin-history-table{
  min-width:1380px;border-collapse:separate;border-spacing:0 .72rem;
}
.admin-history-table thead th{
  padding-top:.35rem;padding-bottom:.45rem;border-bottom:none;
  background:transparent;color:#7392b6;
}
.admin-history-table tbody tr{transition:transform .34s var(--ease-premium)}
.admin-history-table tbody td{
  height:86px;max-width:260px;white-space:normal;overflow-wrap:anywhere;
  border-top:1px solid rgba(245,194,48,.08);border-bottom:1px solid rgba(245,194,48,.08);
  background:linear-gradient(135deg,rgba(30,42,69,.82),rgba(18,29,50,.68));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.025);
}
.admin-history-table tbody td:first-child{
  border-left:1px solid rgba(245,194,48,.08);border-radius:1rem 0 0 1rem;
}
.admin-history-table tbody td:last-child{
  border-right:1px solid rgba(245,194,48,.08);border-radius:0 1rem 1rem 0;
}
.admin-history-table tbody tr:hover{transform:translateY(-2px)}
.admin-history-table tbody tr:hover td{
  border-color:rgba(245,194,48,.22);
  background:linear-gradient(135deg,rgba(35,49,79,.95),rgba(19,31,54,.88));
}
.admin-history-table td:first-child,
.admin-history-table td:nth-child(5),
.admin-history-table td:nth-child(6),
.admin-history-table td:nth-child(7),
.admin-history-table td:last-child{white-space:nowrap}
.admin-history-panel .status-pill{
  min-width:126px;gap:.45rem;border:1px solid transparent;padding:.52rem .9rem;
  font-size:.67rem;box-shadow:inset 0 1px 0 rgba(255,255,255,.08);
}
.admin-history-panel .status-pill::before{
  content:'';width:7px;height:7px;border-radius:50%;background:currentColor;box-shadow:0 0 12px currentColor;
}
.admin-history-panel .status-pending{
  border-color:rgba(245,194,48,.24);background:linear-gradient(135deg,rgba(245,194,48,.18),rgba(245,194,48,.07));
}
.admin-history-panel .status-confirmed{
  border-color:rgba(37,211,102,.24);color:#4fe091;
  background:linear-gradient(135deg,rgba(37,211,102,.18),rgba(37,211,102,.07));
}
.admin-history-panel .status-cancelled{
  border-color:rgba(239,68,68,.24);color:#ff8390;
  background:linear-gradient(135deg,rgba(239,68,68,.16),rgba(239,68,68,.06));
}
.admin-history-table .history-row-empty td,
.admin-history-table #historyNoResults td{
  padding-block:2rem;color:var(--text3);text-align:center;
  background:rgba(30,42,69,.54);border-radius:1rem;border:1px solid rgba(245,194,48,.1);
}
@media (max-width:900px){
  .admin-history-summary{grid-template-columns:repeat(2,minmax(0,1fr))}
  .admin-history-toolbar{grid-template-columns:1fr}
  .admin-history-panel .admin-panel-actions{width:100%;justify-content:flex-start;border-radius:1rem}
}
@media (max-width:760px){
  .admin-history-section{padding-top:2rem}
  .admin-history-panel .admin-panel-header{padding:1.25rem;border-radius:var(--r-lg)}
  .admin-history-summary{grid-template-columns:1fr}
  .admin-history-panel .admin-panel-actions{flex-wrap:wrap}
  .admin-history-panel .admin-panel-actions .btn{flex:1}
  .admin-history-panel .admin-reservas-table-wrap{overflow:visible;padding:1rem}
  .admin-history-table{display:block;min-width:0;border-spacing:0}
  .admin-history-table thead{display:none}
  .admin-history-table tbody,
  .admin-history-table tr,
  .admin-history-table td{display:block;width:100%}
  .admin-history-row{
    margin-bottom:1rem;padding:.45rem;border:1px solid rgba(245,194,48,.12);border-radius:1.15rem;
    background:linear-gradient(145deg,rgba(30,42,69,.88),rgba(12,18,33,.88));
    box-shadow:0 18px 48px rgba(0,0,0,.22);
  }
  .admin-history-row:hover{transform:translateY(-2px)}
  .admin-history-row td,
  .admin-history-row td:first-child,
  .admin-history-row td:last-child{
    display:grid;grid-template-columns:minmax(92px,.45fr) 1fr;align-items:start;gap:.65rem;
    height:auto;min-width:0;max-width:none;padding:.7rem .65rem;border:none;border-radius:0;
    background:transparent;box-shadow:none;white-space:normal;
  }
  .admin-history-row td::before{
    content:attr(data-label);padding-top:.12rem;color:var(--text3);
    font-size:.62rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;
  }
}
.btn-small{padding:.55rem .85rem;font-size:.72rem;letter-spacing:.08em}
.btn-danger{color:#ef4444;border:1px solid rgba(239,68,68,.3);}
.btn-danger:hover{background:rgba(239,68,68,.08);color:#ef4444}

/* ═══ EVENTOS ════════════════════════════════════════════════ */
#eventos{background:var(--bg)}
.eventos-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem}
.evento-card{
  border-radius:var(--r-lg);overflow:hidden;
  background:var(--surface);border:1px solid var(--border2);
  transition:transform .4s var(--ease-premium),border-color .3s,box-shadow .4s;
}
.evento-card:hover{
  transform:translateY(-6px);border-color:var(--border);
  box-shadow:0 20px 48px rgba(0,0,0,.3);
}
.evento-img-wrap{
  position:relative;
  aspect-ratio:3/2;
  overflow:hidden;
  background:#050914;
}
.evento-img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover !important;
  object-position:center center !important;
  transition:transform .6s var(--ease-premium);
}
.evento-card:hover .evento-img{transform:scale(1.05)}
.evento-icon-wrap{
  position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
  background:rgba(12,18,33,.55);opacity:0;transition:opacity .3s;font-size:3rem;
}
.evento-card:hover .evento-icon-wrap{opacity:1}
.evento-body{padding:1.75rem}
.evento-tag{font-size:.6rem;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);margin-bottom:.6rem}
.evento-title{font-family:var(--font-display);font-size:1.4rem;font-weight:700;color:var(--text);margin-bottom:.6rem;line-height:1.2}
.evento-desc{font-size:.85rem;color:var(--text3);line-height:1.55;margin-bottom:1.25rem}
.evento-link{
  font-size:.75rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;
  color:var(--gold);display:flex;align-items:center;gap:.4rem;transition:gap .3s;
}
.evento-link:hover{gap:.7rem}

/* ═══ TESTIMONIOS ════════════════════════════════════════════ */
#testimonios{background:var(--bg2)}
.testi-slider{overflow:hidden;position:relative}
.testi-track{display:flex;transition:transform .6s var(--ease-premium)}
.testi-slide{min-width:100%;padding:0 clamp(1rem,5vw,4rem)}
.testi-inner{max-width:780px;margin-inline:auto;text-align:center}
.testi-stars{display:flex;justify-content:center;gap:.3rem;margin-bottom:1.5rem;color:var(--gold);font-size:1.1rem}
.testi-quote{
  font-family:var(--font-serif);font-size:clamp(1.2rem,3vw,1.8rem);
  font-style:italic;color:var(--text);line-height:1.5;margin-bottom:2rem;
}
.testi-quote::before{content:'"';font-size:3rem;color:var(--gold);line-height:0;vertical-align:-.4em;margin-right:.2rem}
.testi-quote::after{content:'"';font-size:3rem;color:var(--gold);line-height:0;vertical-align:-.4em;margin-left:.2rem}
.testi-author{display:flex;align-items:center;justify-content:center;gap:1rem}
.testi-avatar{width:52px;height:52px;border-radius:50%;object-fit:cover;border:2px solid var(--gold)}
.testi-name{font-weight:600;color:var(--text);font-size:.9rem}
.testi-origin{font-size:.75rem;color:var(--text3)}
.testi-source{font-size:.7rem;font-weight:600;letter-spacing:.15em;text-transform:uppercase;color:var(--gold);margin-top:.2rem}
.testi-nav{display:flex;justify-content:center;align-items:center;gap:1.5rem;margin-top:3rem}
.testi-btn{
  width:44px;height:44px;border-radius:50%;border:1px solid var(--border);color:var(--text2);
  display:flex;align-items:center;justify-content:center;transition:all .3s;font-size:1rem;
}
.testi-btn:hover{border-color:var(--gold);color:var(--gold)}
.testi-dots{display:flex;gap:.6rem}
.testi-dot{width:8px;height:8px;border-radius:50%;background:var(--border);transition:all .3s}
.testi-dot.active{background:var(--gold);width:24px;border-radius:4px}

/* ═══ INSTAGRAM ══════════════════════════════════════════════ */
#instagram{background:var(--bg)}
.ig-grid{
  display:grid;
  grid-template-columns:repeat(6,minmax(0,1fr));
  gap:clamp(.65rem,1vw,1rem);
  align-items:stretch;
}
.ig-item{
  display:block;
  aspect-ratio:1;
  min-width:0;
  border-radius:clamp(.85rem,1.15vw,1.25rem);
  overflow:hidden;
  position:relative;
  cursor:pointer;
  background:var(--surface2);
  box-shadow:0 16px 36px rgba(0,0,0,.18),inset 0 1px 0 rgba(255,255,255,.04);
}
.ig-item-link:focus-visible{
  outline:2px solid var(--gold);
  outline-offset:4px;
}
.ig-img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover !important;
  object-position:center center !important;
  transition:transform .5s var(--ease-premium),filter .5s var(--ease-premium);
}
.ig-item:hover .ig-img{transform:scale(1.08)}
.ig-hover{
  position:absolute;inset:0;background:rgba(242,196,53,.85);
  display:flex;align-items:center;justify-content:center;
  opacity:0;transition:opacity .3s;color:#0C1221;
  font-size:1.4rem;flex-direction:column;gap:.25rem;
}
.ig-item:hover .ig-hover{opacity:1}
.ig-hover span{font-size:.75rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase}
.ig-cta{margin-top:2.5rem;text-align:center}
.ig-handle{font-family:var(--font-serif);font-size:1.5rem;font-style:italic;color:var(--text2);margin-bottom:.5rem}

/* ═══ CONTACTO ═══════════════════════════════════════════════ */
#contacto{background:var(--bg2)}
.contacto-grid{display:grid;grid-template-columns:1fr 1.5fr;gap:clamp(3rem,6vw,6rem);align-items:start}
.contacto-info{display:flex;flex-direction:column;gap:2rem}
.contacto-card{
  background:var(--surface);border:1px solid var(--border2);
  border-radius:var(--r-lg);padding:1.75rem;transition:border-color .3s,transform .3s;
}
.contacto-card:hover{border-color:var(--border);transform:translateX(4px)}
.contacto-card-icon{font-size:1.5rem;margin-bottom:.75rem}
.contacto-card-title{font-weight:600;color:var(--text);margin-bottom:.5rem;font-size:.9rem;letter-spacing:.05em}
.contacto-card-text{font-size:.85rem;color:var(--text3);line-height:1.6}
.contacto-card-text a{color:var(--gold)}
.contacto-map{border-radius:var(--r-xl);overflow:hidden;border:1px solid var(--border2)}
.contacto-map iframe{width:100%;height:400px;border:none;filter:grayscale(40%) contrast(105%)}
[data-theme="light"] .contacto-map iframe{filter:none}
.horario-grid{display:grid;grid-template-columns:1fr 1fr;gap:.5rem 2rem}
.horario-row{display:flex;justify-content:space-between;align-items:center;padding:.4rem 0;border-bottom:1px solid var(--border2);font-size:.85rem}
.horario-row:last-child{border:none}
.horario-row .day{color:var(--text2)}
.horario-row .time{color:var(--gold);font-weight:500}
.horario-row.closed .time{color:var(--text3)}

/* ═══ FOOTER ══════════════════════════════════════════════════ */
footer{background:var(--bg3);border-top:1px solid var(--border2);padding:5rem 0 2rem}
.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:3rem;margin-bottom:4rem}
/* ── Logo footer ─────────────────────────────────────────── */
.footer-logo-wrap{
  display:flex;align-items:center;gap:.9rem;
  text-decoration:none;margin-bottom:1.25rem;
}
.footer-logo-img{
  width:60px;height:60px;flex-shrink:0;
  border-radius:50%;
  background-color:#0a0f1c;
  background-image:url('../img/logo.png');
  background-size:225%;
  background-position:50% 38%;
  background-repeat:no-repeat;
  box-shadow:0 0 0 1.5px rgba(112,112,112,.5);
  transition:transform .4s var(--ease-premium),box-shadow .3s;
}
.footer-logo-wrap:hover .footer-logo-img{
  transform:scale(1.07) rotate(-3deg);
  box-shadow:0 0 0 2px var(--gold),0 4px 20px rgba(0,0,0,.4);
}
.footer-logo-text{display:flex;flex-direction:column;line-height:1}
.footer-brand .logo-main{font-family:var(--font-display);font-size:1.5rem;font-weight:700;color:var(--text)}
.footer-brand .logo-sub{font-size:.6rem;font-weight:400;letter-spacing:.3em;text-transform:uppercase;color:var(--gold);margin-top:.2rem}
.footer-brand p{font-family:var(--font-serif);font-size:.95rem;color:var(--text3);line-height:1.7;margin-bottom:1.5rem;margin-top:.75rem}
.footer-socials{display:flex;gap:.75rem}
.footer-social{
  width:36px;height:36px;border-radius:50%;border:1px solid var(--border);color:var(--text3);
  display:flex;align-items:center;justify-content:center;font-size:.85rem;transition:all .3s;
}
.footer-social:hover{border-color:var(--gold);color:var(--gold);transform:translateY(-3px)}
.footer-col h4{font-size:.7rem;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);margin-bottom:1.25rem}
.footer-col ul{display:flex;flex-direction:column;gap:.6rem}
.footer-col li a{font-size:.85rem;color:var(--text3);transition:color .3s;display:flex;align-items:center;gap:.4rem}
.footer-col li a:hover{color:var(--text)}
.footer-col li a::before{content:'—';color:var(--border);font-size:.7rem}
.footer-allergens-card{
  display:inline-flex;
  align-items:center;
  gap:.75rem;
  margin-top:1.25rem;
  padding:.75rem .95rem;
  border:1px solid rgba(245,194,48,.34);
  border-radius:999px;
  color:var(--gold);
  background:rgba(245,194,48,.055);
  font-size:.78rem;
  font-weight:800;
  letter-spacing:.08em;
  text-transform:uppercase;
  transition:transform .25s,border-color .25s,background .25s,box-shadow .25s;
}
.footer-allergens-card:hover{
  transform:translateY(-3px);
  border-color:rgba(245,194,48,.72);
  background:rgba(245,194,48,.1);
  box-shadow:0 18px 42px rgba(0,0,0,.22),0 0 32px rgba(245,194,48,.08);
}
.footer-allergens-icon{
  display:grid;
  place-items:center;
  width:42px;
  height:42px;
  flex:0 0 auto;
  border:1px solid currentColor;
  border-radius:50%;
}
.footer-allergens-icon svg{
  width:25px;
  height:25px;
}
.footer-bottom{
  border-top:1px solid var(--border2);padding-top:1.5rem;
  display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:1rem;
}
.footer-copy{font-size:.75rem;color:var(--text3)}
.footer-copy a{color:var(--gold)}
.footer-credit-logo{
  display:inline-flex;
  align-items:center;
  gap:.55rem;
  margin-left:.35rem;
  color:var(--text)!important;
  text-decoration:none;
  vertical-align:middle;
}
.footer-credit-mark{
  display:inline-grid;
  place-items:center;
  width:34px;
  height:34px;
  border-radius:50%;
  background:linear-gradient(135deg,#f7dc89,#c99b2d);
  color:#111827;
  font-size:.72rem;
  font-weight:900;
  letter-spacing:.02em;
  box-shadow:0 0 0 1px rgba(245,194,48,.24),0 10px 24px rgba(0,0,0,.24);
}
.footer-credit-name{
  color:#e9eef7;
  font-size:.86rem;
  font-weight:900;
  letter-spacing:.02em;
  text-transform:uppercase;
}
.footer-credit-logo:hover .footer-credit-mark{
  transform:translateY(-1px);
}
.footer-credit-logo:hover .footer-credit-name{
  color:var(--gold);
}
.footer-legal{display:flex;gap:1.5rem}
.footer-legal a{font-size:.75rem;color:var(--text3);transition:color .3s}
.footer-legal a:hover{color:var(--text)}

/* Legal pages */
.legal-section{
  padding-top:clamp(8rem,14vw,11rem);
  background:
    radial-gradient(circle at 18% 12%,rgba(245,194,48,.1),transparent 25rem),
    linear-gradient(180deg,var(--bg) 0%,var(--bg2) 100%);
}
.legal-container{
  max-width:980px;
}
.legal-card{
  padding:clamp(1.4rem,3vw,2.4rem);
  border:1px solid var(--border);
  border-radius:var(--r-lg);
  background:
    linear-gradient(145deg,rgba(255,255,255,.055),rgba(255,255,255,.02)),
    var(--surface);
  box-shadow:0 24px 70px rgba(0,0,0,.28);
}
.legal-card h2{
  margin:2rem 0 .65rem;
  color:var(--gold);
  font-family:var(--font-display);
  font-size:clamp(1.25rem,2vw,1.65rem);
}
.legal-card h2:first-child{margin-top:0}
.legal-card p{
  color:var(--text2);
  line-height:1.8;
  margin:.7rem 0;
}
.legal-card a{
  color:var(--gold);
  text-decoration:underline;
  text-underline-offset:3px;
}
.legal-updated{
  margin-top:2rem!important;
  padding-top:1.2rem;
  border-top:1px solid var(--border2);
  color:var(--text3)!important;
  font-size:.88rem;
}

/* ═══ FLOATING ════════════════════════════════════════════════ */
.wa-float{
  position:fixed;bottom:2rem;right:2rem;z-index:900;
  width:56px;height:56px;border-radius:50%;
  background:linear-gradient(135deg,#25d366,#128c7e);
  color:#fff;font-size:1.5rem;
  display:flex;align-items:center;justify-content:center;
  box-shadow:0 4px 24px rgba(37,211,102,.4);
  animation:float 3s ease-in-out infinite,pulse-gold 2s infinite;
  transition:transform .3s;
}
.wa-float:hover{transform:scale(1.1)}

#backTop{
  position:fixed;bottom:2rem;left:2rem;z-index:900;
  width:44px;height:44px;border-radius:50%;
  background:var(--surface);border:1px solid var(--border);
  color:var(--text2);font-size:.9rem;
  display:flex;align-items:center;justify-content:center;
  opacity:0;pointer-events:none;transition:all .3s;
}
#backTop.visible{opacity:1;pointer-events:all}
#backTop:hover{border-color:var(--gold);color:var(--gold);transform:translateY(-3px)}

#progress{
  position:fixed;top:0;left:0;z-index:1001;height:2px;width:0%;
  background:linear-gradient(90deg,var(--gold-dark),var(--gold),var(--gold-light));
  transition:width .1s;
}

/* ── ACTIVE NAV LINK ─────────────────────────────────────────── */
.nav-link.active{color:var(--gold)}
.nav-link.active::after{width:100%}

/* ── INNER PAGE OFFSET (fixed navbar) ────────────────────────── */
body.inner-page main{padding-top:80px}

/* ═══ RESPONSIVE ══════════════════════════════════════════════ */

/* ── Tablet grande (≤1100px) ─────────────────────────────────── */
@media(max-width:1100px){
  /* Split: ajuste pantallas medias */
  .rest-split{
    grid-template-columns:minmax(320px,.95fr) minmax(0,1.05fr);
    width:min(100% - 2rem,1040px);
  }
  .rest-split-img,
  .rest-split-body{min-height:440px}

  .menus-hero-layout{
    grid-template-columns:1fr;
  }
  .menus-hero-content{
    max-width:820px;
  }
  .menus-hero-visual{
    min-height:420px;
  }
  .menus-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:22px;
  }
  .menu-card,
  .menu-card:nth-child(n+3){
    grid-column:auto;
  }
  .menu-card-featured{transform:none}
  .menu-card-featured:hover{transform:translateY(-10px) scale(1.01)}

  .footer-grid{grid-template-columns:1fr 1fr;gap:2rem}
  .footer-brand{grid-column:span 2}

  /* Dishes: 2 columnas */
  .dishes-grid{grid-template-columns:repeat(2,1fr)}
}

/* ── Tablet (≤900px) ─────────────────────────────────────────── */
@media(max-width:900px){
  /* Navbar */
  .nav-links{display:none}
  .hamburger{display:flex}
  .nav-reserva{display:none}
  .nav-actions>.lang-switch{display:none}
  .lang-switch-mobile{display:inline-flex}
  .nav-logo-img{width:36px;height:36px}
  .nav-logo{gap:.5rem}
  /* Cuando el menú móvil está abierto: ocultar logo, fondo transparente */
  .mobile-menu.open + #navbar{background:transparent;box-shadow:none}
  .mobile-menu.open + #navbar .nav-logo{opacity:0;pointer-events:none}

  /* Nav actions al final cuando no hay logo */
  body.home-page .nav-actions{margin-left:auto}

  /* Hero brand móvil: tamaños reducidos */
  .hero-brand-img-wrap{width:90px;height:90px}
  .hero-brand-name{font-size:1.3rem}
  /* Ocultar hero-label duplicado */
  #hero .hero-label{display:none}

  /* Secciones: reducir padding vertical */
  .section{padding:clamp(3.5rem,8vw,6rem) 0}

  /* Grids → 1 columna */
  .reservas-grid,
  .contacto-grid{grid-template-columns:1fr}

  /* Restaurante: tablet */
  .rest-hero{min-height:90vh;align-items:flex-end;display:flex}
  .rest-hero-bg{position:absolute;inset:0}
  .rest-hero-img{width:100%;height:100%;object-fit:cover !important;object-position:center center !important}
  .rest-hero-title{font-size:clamp(1.8rem,3.5vw,2.8rem)}
  .rest-hero-content{position:relative;bottom:auto;left:auto;right:auto;margin-top:0;padding:2rem 2rem 3.5rem;max-width:700px;transform:none}
  .rest-hero-scroll{display:none}
  .rest-split{
    grid-template-columns:1fr;
    width:min(100% - 2rem,760px);
    margin:clamp(3rem,7vw,5rem) auto;
  }
  .rest-split-img{min-height:clamp(320px,52vw,440px)}
  .rest-split-body{min-height:auto}
  .rest-split-content{max-width:none}
  .rest-pillars-grid{grid-template-columns:1fr 1fr}
  .rest-pillar{border-right:none;border-bottom:1px solid var(--border2)}
  .rest-pillar:nth-child(odd){border-right:1px solid var(--border2)}
  .rest-pillar:last-child,.rest-pillar:nth-last-child(2):nth-child(odd){border-bottom:none}
  /* Galería restaurante: tablet → 2 columnas */
  .rest-gallery-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:20px;
    padding:0 1rem;
  }
  .gal-row-top,.gal-row-bot{
    display:contents;
    width:100%;
    max-width:none;
  }
  .gal-1,.gal-2,.gal-3,.gal-4,.gal-5,.gal-6,.gal-7{
    grid-column:auto;
    min-height:0;
    height:auto;
    aspect-ratio:4 / 5;
  }
  .gal-7{grid-column:1 / -1}
  .rest-ambience{height:clamp(360px,50vw,520px)}

  /* Eventos: 2 columnas */
  .eventos-grid{grid-template-columns:1fr 1fr}
  .menus-hero{
    min-height:auto;
    padding:4rem 0 3rem;
  }
  .menus-hero-visual{
    min-height:360px;
    border-radius:24px;
  }
  .christmas-menu-hero{
    align-items:flex-start;
    grid-template-columns:1fr;
    min-height:auto;
    padding:2rem;
  }
  .christmas-menu-hero::after{opacity:.22;right:-4rem}
  .christmas-menu-hero .btn{width:100%}
  .christmas-hero-copy{padding:0}
  .christmas-hero-visual{height:340px;min-height:0}
  .christmas-menu-grid{
    grid-template-columns:1fr;
  }
  .christmas-benefits{grid-template-columns:repeat(2,minmax(0,1fr))}
  .christmas-gallery{grid-template-columns:1fr;grid-auto-rows:220px}

  /* Carta: sidebar pasa a fila arriba */
  .carta-layout{flex-direction:column;gap:1.5rem}
  .carta-content{min-width:0;width:100%}
  .carta-tabs{
    flex-direction:row;flex-wrap:nowrap;
    overflow-x:auto;-webkit-overflow-scrolling:touch;
    scrollbar-width:none;width:100%;
    border-radius:var(--r-md);padding:.4rem;gap:.3rem;
    position:static;
  }
  .carta-tabs::-webkit-scrollbar{display:none}
  .carta-tab{white-space:nowrap;flex-shrink:0;text-align:center}
  /* Items: nombre flexible, precio a la derecha */
  .carta-item-name{white-space:normal;word-break:break-word}
  .carta-item-main{grid-template-columns:minmax(0,1fr) auto;align-items:flex-start;gap:.5rem}
  .carta-item-dots{display:none}
  /* Títulos de sección */
  .carta-section-title{font-size:.95rem}
  .carta-section-title::before,.carta-section-title::after{min-width:15px;flex:unset;width:30px}

  /* Instagram: 3 columnas */
  .ig-grid{grid-template-columns:repeat(3,1fr)}

  /* Hero stats: ocultar */
  .hero-stats{display:none}

  /* Footer: 2+2 */
  .footer-grid{grid-template-columns:1fr 1fr;gap:2rem}
  .footer-brand{grid-column:span 2}

  /* Reservas: el mapa va abajo del todo */
  .contacto-map iframe{height:280px}

  /* Testimonios: padding lateral menor */
  .testi-slide{padding:0 1rem}

  /* Floating WA: más pequeño */
  .wa-float{width:48px;height:48px;font-size:1.2rem}
  .wa-float svg{width:20px;height:20px}
}

/* ── Mobile (≤640px) ─────────────────────────────────────────── */
@media(max-width:640px){
  /* Offset navbar en páginas internas */
  body.inner-page main{padding-top:70px}

  /* Navbar: más compacto */
  #navbar{padding:1rem 0}
  #navbar.scrolled{padding:.7rem 0}
  .nav-logo-img{width:30px;height:30px}
  .nav-logo .logo-main{font-size:.95rem}
  .nav-logo .logo-sub{display:none}
  /* Footer logo */
  .footer-logo-img{width:48px;height:48px;background-size:225%;background-position:50% 38%}

  /* Secciones */
  .section{padding:3rem 0}

  /* Section labels: no overflow */
  .section-label::before,.section-label::after{max-width:20px}

  /* Hero */
  .hero-bg{background-image:url('../img/fondo.png');background-position:top center}
  .hero-title{font-size:clamp(1.9rem,9vw,2.8rem);letter-spacing:-.01em}
  .hero-ctas{flex-direction:column;align-items:stretch;gap:.75rem}
  .hero-ctas .btn{justify-content:center;padding:.9rem 1.4rem}
  .hero-scroll{display:none}
  .hero-desc{font-size:.95rem}
  .hero-welcome{font-size:.95rem}

  /* Grids → 1 columna */
  .eventos-grid,
  .dishes-grid{grid-template-columns:1fr}

  /* Restaurante: móvil */
  .rest-hero{
    min-height:calc(100svh - 70px);
    display:flex;
    align-items:flex-end;
    justify-content:center;
  }
  .rest-hero-bg{position:absolute;inset:0}
  .rest-hero-img{
    width:100%;height:100%;
    object-fit:cover !important;object-position:center center !important;
    display:block;
  }
  .rest-hero-overlay{
    background:linear-gradient(to bottom,rgba(5,7,18,0) 0%,rgba(5,7,18,.02) 40%,rgba(5,7,18,.55) 63%,rgba(5,7,18,.9) 80%,rgba(5,7,18,.96) 100%);
  }
  .rest-hero-title{font-size:clamp(1.6rem,6vw,2.2rem)}
  .rest-hero-content{
    position:relative;bottom:auto;left:auto;right:auto;
    padding:1.5rem 1.25rem 3.5rem;
    gap:1rem;
    max-width:100%;
    transform:none;
  }
  .rest-hero-eyebrow{font-size:.62rem;letter-spacing:.32em;padding:.48rem 1rem}
  .rest-hero-sub{font-size:1.05rem;line-height:1.65}
  .rest-hero-sub br{display:none}
  .rest-hero-actions{flex-direction:column;align-items:stretch;gap:.75rem}
  .rest-hero-cta,.rest-hero-cta-ghost{justify-content:center;text-align:center}
  .rest-split-content{padding:2.35rem 1.35rem 2.6rem}
  .rest-split-title{font-size:clamp(2rem,8vw,2.65rem)}
  .rest-split-text{line-height:1.72}
  .rest-split-features{grid-template-columns:1fr}
  .rest-split-badge{right:1rem;bottom:1rem;padding:.8rem 1.1rem}
  .rest-split-badge-num{font-size:1.7rem}
  .rest-pillars-grid{grid-template-columns:1fr;border-radius:var(--r-md)}
  .rest-pillar{border-right:none !important;border-bottom:1px solid var(--border2)}
  .rest-pillar:last-child{border-bottom:none}
  /* Galería restaurante: móvil → 1 columna */
  .rest-gallery-wrap{padding-top:3rem;padding-bottom:2rem}
  .rest-gallery-grid{
    grid-template-columns:1fr;
    gap:18px;
    padding:0 1rem;
  }
  .gal-row-top,.gal-row-bot{
    display:contents;
    width:100%;
  }
  .gal-1,.gal-2,.gal-3,.gal-4,.gal-5,.gal-6,.gal-7{
    grid-column:auto;
    min-height:0;
    height:auto;
    aspect-ratio:4 / 5;
  }
  .gal-7{grid-column:auto}
  .rest-stat{padding:1.25rem .5rem}
  .rest-ambience{height:clamp(340px,80vw,460px)}
  .rest-ambience-overlay{
    background:linear-gradient(to bottom,transparent 0%,rgba(8,12,24,.88) 50%,rgba(8,12,24,.97) 100%);
    align-items:flex-end;
  }
  .rest-ambience-content{padding:2rem 1.5rem}
  .rest-ambience-title{font-size:clamp(1.9rem,7vw,2.8rem)}
  .rest-closing-title{font-size:clamp(1.7rem,6vw,2.4rem)}
  .rest-closing-title br{display:none}

  /* Dish cards: imagen más baja */
  .dish-img-wrap{aspect-ratio:16/9}

  /* Carta tabs */
  .carta-tab{padding:.5rem .85rem;font-size:.65rem}
  /* Carta items: más compactos */
  .carta-item{padding:.85rem 1rem .75rem}
  .carta-item-name{font-size:.9rem}
  .carta-item-price{font-size:.95rem}
  .carta-item-desc{font-size:.75rem}
  .allergen{font-size:.5rem;padding:.15rem .4rem}
  /* Carta section title */
  .carta-section-title{font-size:.85rem}
  /* Vinos: columnas más estrechas */
  .vinos-header,.vino-item{grid-template-columns:1fr 52px 52px}
  .vino-copa,.vino-botella{font-size:.8rem}
  .vino-name{font-size:.82rem}
  /* Suplementos: 2 cols más compactos */
  .suplementos-grid{grid-template-columns:1fr 1fr;padding:.75rem 1rem;gap:.4rem .5rem}
  .suplementos-grid span{font-size:.75rem}
  /* Huerta: 1 col (ya viene de 900px) */
  /* Cocktails: ya 1 col desde 900px */

  .menus-hero{min-height:auto}
  .menus-hero-layout{gap:1.4rem}
  .menus-hero-content{text-align:left}
  .menus-hero-actions{display:grid;grid-template-columns:1fr;align-items:stretch}
  .menus-hero-actions .btn{width:100%}
  .menus-hero-visual{min-height:280px;border-radius:20px}
  .menus-hero-floating{left:1rem;right:1rem;bottom:1rem;min-width:0}
  .menus-grid{grid-template-columns:1fr;gap:18px}
  .menu-card,.menu-card-featured{
    min-height:auto;
    transform:none;
  }
  .menu-card:nth-child(3){
    grid-column:auto;
    width:100%;
  }
  .menu-card:nth-child(n+3){
    grid-column:auto;
    width:100%;
  }
  .menu-card:hover,.menu-card-featured:hover{transform:translateY(-6px)}
  .menu-card-bottom{align-items:flex-start;flex-direction:column}
  .menu-card-image{aspect-ratio:16 / 10}
  .menu-card-meta{gap:.4rem}
  .menu-card-meta span{font-size:.6rem}
  .christmas-menu-page{padding-top:1rem}
  .christmas-menu-hero{padding:1rem;border-radius:22px}
  .christmas-hero-visual{height:260px;min-height:0;border-radius:18px}
  .christmas-hero-price{left:1rem;right:1rem;min-width:0}
  .christmas-hero-stats{display:grid;grid-template-columns:1fr}
  .christmas-menu-card{min-height:auto}
  .christmas-card-image{aspect-ratio:16 / 10}
  .christmas-menu-bottom{align-items:flex-start;flex-direction:column}
  .christmas-benefits{grid-template-columns:1fr}
  .christmas-gallery{grid-auto-rows:210px}

  /* Formulario → 1 columna */
  .form-grid{grid-template-columns:1fr}
  .form-group.full,
  .form-submit,
  .form-divider{grid-column:span 1}
  .reservas-form-wrap{padding:1.5rem}

  /* Horario → 1 columna */
  .horario-grid{grid-template-columns:1fr}
  .contacto-map iframe{height:240px}

  /* Testimonios */
  .testi-quote{font-size:1.1rem}
  .testi-slide{padding:0 .5rem}

  /* Instagram: 2 columnas */
  .ig-grid{grid-template-columns:repeat(2,1fr);gap:.5rem}

  /* Footer → 1 columna */
  .footer-grid{grid-template-columns:1fr;gap:1.5rem}
  .footer-brand{grid-column:span 1}
  .footer-bottom{flex-direction:column;text-align:center;gap:.75rem}
  .footer-legal{justify-content:center}

  /* Botones flotantes: más pequeños y separados */
  .wa-float{width:44px;height:44px;bottom:1.25rem;right:1.25rem}
  .wa-float svg{width:18px;height:18px}
  #backTop{width:38px;height:38px;bottom:1.25rem;left:1.25rem}

  /* Mobile menu: gap más compacto */
  .mobile-menu nav{gap:1.4rem}
  .mobile-menu{gap:2rem}

  /* Eventos */
  .evento-img-wrap{aspect-ratio:16/9}
}

/* ── Mobile pequeño (≤400px) ─────────────────────────────────── */
@media(max-width:400px){
  .rest-hero{min-height:calc(100svh - 70px)}
  .rest-hero-title{font-size:clamp(1.65rem,7vw,2.2rem)}
  .rest-hero-content{top:auto;padding:1.35rem 1rem 2.25rem;gap:.9rem}
  .hero-title{font-size:clamp(1.7rem,8vw,2.2rem)}
  .section-title{font-size:1.75rem}
  .mobile-menu nav{gap:1.1rem}
  .mobile-menu{gap:1.5rem}
  .dishes-grid{grid-template-columns:1fr}
  .ig-grid{grid-template-columns:repeat(2,1fr)}
  .btn{padding:.8rem 1.2rem;font-size:.75rem}
  .testi-author{flex-direction:column;text-align:center}
  /* Carta extra pequeño */
  .carta-item{padding:.7rem .85rem .65rem}
  .carta-item-name{font-size:.82rem}
  .carta-item-price{font-size:.88rem}
  .vinos-header,.vino-item{grid-template-columns:1fr 46px 46px}
  .suplementos-grid{grid-template-columns:1fr}
  .hero-brand-name{font-size:1.1rem}
  .hero-brand-img-wrap{width:75px;height:75px}
}

/* Reservas responsive premium */
@media(max-width:1024px){
  #reservas .reservas-grid{
    grid-template-columns:1fr;gap:2rem;
  }
  .reservas-copy{
    max-width:780px;margin-inline:auto;text-align:center;justify-items:center;
  }
  .reservas-kicker{justify-content:center}
  .reservas-kicker span{display:none}
  .reservas-info p{margin-inline:auto}
  .reservas-benefits{justify-content:center}
  #reservas .reservas-contact{
    width:100%;grid-template-columns:repeat(3,minmax(0,1fr));
  }
  .reservas-wa-btn{max-width:420px}
}
@media(max-width:720px){
  #reservas.reservas-section{
    padding:clamp(3.4rem,10vw,5rem) 0;
  }
  .reservas-info h2{
    font-size:clamp(2.35rem,10vw,3.45rem);
  }
  #reservas .reservas-contact{
    grid-template-columns:1fr;
  }
  #reservas .reservas-form-wrap{
    border-radius:1.25rem;padding:1.15rem;
  }
  .reservas-form-head{
    margin-bottom:1rem;padding-bottom:1rem;
  }
  #reservas .reservas-form-grid{
    grid-template-columns:1fr;gap:.9rem;
  }
  #reservas .form-group.full,
  #reservas .form-submit,
  #reservas .form-divider{
    grid-column:span 1;
  }
  #reservas .form-input,
  #reservas .form-select{
    min-height:56px;border-radius:.9rem;
  }
  #reservas .form-textarea{
    min-height:112px;border-radius:.9rem;
  }
}
@media(max-width:420px){
  .reservas-benefits{display:none}
  #reservas .reservas-contact-item{
    padding:.9rem;border-radius:1rem;
  }
  #reservas .reservas-contact-icon{
    width:40px;height:40px;border-radius:.8rem;
  }
  .reservas-form-head h3{font-size:1.55rem}
  #reservas .form-label{font-size:.62rem}
  #reservas .form-input,
  #reservas .form-select,
  #reservas .form-textarea{
    padding-left:2.85rem;
  }
  .reservas-field-icon{left:.9rem}
}

/* ── Restaurante hero desktop balance ─────────────────────── */
@media(min-width:1024px){
  .rest-hero{
    min-height:calc(100vh - 80px);
    align-items:flex-start;
    justify-content:center;
  }
  .rest-hero-bg{
    background:none;
  }
  .rest-hero-img{
    display:block;
    width:100%;
    height:100%;
    object-fit:cover !important;
    object-position:center center !important;
    transform:none;
  }
  .rest-hero-overlay{
    background:
      radial-gradient(ellipse at 50% 68%,rgba(5,7,18,.36) 0%,rgba(5,7,18,.16) 30%,transparent 52%),
      linear-gradient(to bottom,rgba(5,7,18,.04) 0%,rgba(5,7,18,.06) 32%,rgba(5,7,18,.24) 62%,rgba(5,7,18,.56) 100%);
  }
  .rest-hero-content{
    position:relative;
    max-width:720px;
    margin:0 auto;
    padding:360px 3rem 3.5rem;
    gap:1.35rem;
    transform:none;
    text-align:center;
  }
  .rest-hero-content::before{
    content:'';
    position:absolute;
    inset:330px 1.4rem 1.8rem;
    z-index:-1;
    background:radial-gradient(ellipse at center,rgba(5,7,18,.48),rgba(5,7,18,.14) 62%,transparent 76%);
    filter:blur(4px);
  }
  .rest-hero-title{
    font-size:clamp(3.4rem,4.1vw,4.9rem);
    line-height:1;
  }
  .rest-hero-sub{
    font-size:clamp(1.08rem,1.2vw,1.28rem);
    line-height:1.75;
  }
  .rest-hero-actions{margin-top:.25rem}
}

/* Reserva cards: action rail mobile hard override */
@media(min-width:761px){
  body .admin-reservas-section .admin-reservas-panel .admin-reservas-table{
    min-width:1460px;
  }
  body .admin-reservas-section .admin-reservas-panel .admin-reservas-table th:last-child,
  body .admin-reservas-section .admin-reservas-panel .admin-reservas-table td.admin-actions-cell{
    width:240px!important;
    min-width:240px!important;
    max-width:240px!important;
  }
  body .admin-reservas-section .admin-reservas-panel .admin-reservas-table td.admin-actions-cell{
    display:table-cell!important;
    vertical-align:middle!important;
    padding-left:.95rem!important;
    padding-right:.95rem!important;
    white-space:nowrap!important;
    overflow:visible!important;
  }
  body .admin-reservas-section .admin-reservas-panel .admin-actions-row{
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    gap:.65rem!important;
    flex-wrap:nowrap!important;
    width:100%!important;
    min-width:0!important;
  }
  body .admin-reservas-section .admin-reservas-panel .admin-actions-row .admin-action-btn{
    flex:0 0 40px!important;
    width:40px!important;
    height:40px!important;
    min-width:40px!important;
    max-width:40px!important;
    min-height:40px!important;
    padding:0!important;
    margin:0!important;
  }
  body .admin-reservas-section .admin-reservas-panel .admin-actions-row .admin-action-text{
    display:none!important;
  }
}

@media(max-width:760px){
  body .admin-reservas-section .admin-reservas-panel .admin-reservas-table tbody tr.admin-reserva-row > td.admin-actions-cell{
    display:grid!important;
    grid-template-columns:repeat(4,minmax(0,1fr))!important;
    grid-auto-flow:row!important;
    align-items:stretch!important;
    gap:.5rem!important;
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    box-sizing:border-box!important;
    margin:.35rem 0 0!important;
    padding:.75rem .65rem .7rem!important;
    border:0!important;
    border-top:1px solid rgba(245,194,48,.12)!important;
    border-radius:0 0 .9rem .9rem!important;
    background:linear-gradient(180deg,rgba(8,14,27,.16),rgba(8,14,27,.55))!important;
    box-shadow:none!important;
  }
  body .admin-reservas-section .admin-reservas-panel .admin-reservas-table tbody tr.admin-reserva-row > td.admin-actions-cell::before{
    content:'ACCIONES'!important;
    display:block!important;
    grid-column:1/-1!important;
    width:100%!important;
    padding:0!important;
    color:var(--text3)!important;
    font-size:.56rem!important;
    font-weight:800!important;
    letter-spacing:.2em!important;
    line-height:1!important;
    text-transform:uppercase!important;
  }
  body .admin-reservas-section .admin-reservas-panel .admin-reservas-table tbody tr.admin-reserva-row > td.admin-actions-cell > .admin-actions-row{
    display:grid!important;
    grid-column:1/-1!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:.55rem!important;
    width:100%!important;
  }
  body .admin-reservas-section .admin-reservas-panel .admin-reservas-table tbody tr.admin-reserva-row > td.admin-actions-cell .admin-action-btn{
    display:flex!important;
    flex-direction:row!important;
    align-items:center!important;
    justify-content:flex-start!important;
    gap:.5rem!important;
    width:100%!important;
    min-width:0!important;
    max-width:none!important;
    height:46px!important;
    min-height:46px!important;
    margin:0!important;
    padding:0 .72rem!important;
    border-radius:.85rem!important;
    white-space:nowrap!important;
    overflow:hidden!important;
  }
  body .admin-reservas-section .admin-reservas-panel .admin-reservas-table tbody tr.admin-reserva-row > td.admin-actions-cell .admin-action-btn .admin-action-icon{
    width:22px!important;
    height:22px!important;
    flex:0 0 22px!important;
    border-radius:.48rem!important;
    font-size:.76rem!important;
  }
  body .admin-reservas-section .admin-reservas-panel .admin-reservas-table tbody tr.admin-reserva-row > td.admin-actions-cell .admin-action-btn .admin-action-text{
    display:block!important;
    max-width:100%!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
    color:#a9c0da!important;
    font-size:.54rem!important;
    font-weight:800!important;
    letter-spacing:.02em!important;
    line-height:1!important;
    text-transform:uppercase!important;
  }
}

@media(max-width:360px){
  body .admin-reservas-section .admin-reservas-panel .admin-reservas-table tbody tr.admin-reserva-row > td.admin-actions-cell{
    gap:.42rem!important;
    padding-inline:.5rem!important;
  }
  body .admin-reservas-section .admin-reservas-panel .admin-reservas-table tbody tr.admin-reserva-row > td.admin-actions-cell > .admin-actions-row{
    grid-template-columns:1fr!important;
  }
  body .admin-reservas-section .admin-reservas-panel .admin-reservas-table tbody tr.admin-reserva-row > td.admin-actions-cell .admin-action-btn{
    height:44px!important;
    min-height:44px!important;
  }
}

/* ── Contact page premium finish ─────────────────────────── */
#contacto,
#testimonios,
#instagram{
  position:relative;
  isolation:isolate;
  overflow:hidden;
}
#contacto{
  background:
    radial-gradient(circle at 16% 10%,rgba(245,194,48,.13),transparent 28rem),
    radial-gradient(circle at 86% 18%,rgba(101,192,224,.1),transparent 32rem),
    linear-gradient(135deg,#070d18 0%,#0d1628 48%,#09111f 100%);
}
#contacto::before,
#testimonios::before,
#instagram::before{
  content:'';
  position:absolute;
  inset:0;
  z-index:-1;
  pointer-events:none;
  background:
    linear-gradient(90deg,rgba(255,255,255,.03) 1px,transparent 1px),
    linear-gradient(180deg,rgba(255,255,255,.022) 1px,transparent 1px);
  background-size:76px 76px;
  opacity:.16;
}
#contacto .section-header,
#testimonios .section-header,
#instagram .section-header{
  margin-bottom:clamp(2rem,4vw,3.35rem);
}
#contacto .section-title,
#testimonios .section-title,
#instagram .section-title{
  text-shadow:0 24px 70px rgba(0,0,0,.45);
}
#contacto .contacto-grid{
  grid-template-columns:minmax(320px,.76fr) minmax(0,1.24fr);
  gap:clamp(1.6rem,4vw,3.8rem);
  align-items:stretch;
}
#contacto .contacto-info{
  gap:1rem;
}
#contacto .contacto-card{
  position:relative;
  overflow:hidden;
  min-height:132px;
  padding:1.35rem;
  border:1px solid rgba(245,194,48,.15);
  border-radius:1.25rem;
  background:
    linear-gradient(145deg,rgba(255,255,255,.055),transparent 38%),
    linear-gradient(145deg,rgba(24,34,58,.78),rgba(8,14,27,.64));
  box-shadow:0 18px 48px rgba(0,0,0,.22),inset 0 1px 0 rgba(255,255,255,.055);
  backdrop-filter:blur(16px);
  -webkit-backdrop-filter:blur(16px);
  transition:transform .35s var(--ease-premium),border-color .35s var(--ease-premium),box-shadow .35s var(--ease-premium),background .35s var(--ease-premium);
}
#contacto .contacto-card::before{
  content:'';
  position:absolute;
  inset:1px;
  border-radius:inherit;
  pointer-events:none;
  background:linear-gradient(135deg,rgba(245,194,48,.11),transparent 42%,rgba(101,192,224,.06));
}
#contacto .contacto-card > *{
  position:relative;
}
#contacto .contacto-card:hover{
  transform:translateY(-4px);
  border-color:rgba(245,194,48,.3);
  box-shadow:0 26px 64px rgba(0,0,0,.3),0 0 38px rgba(245,194,48,.06),inset 0 1px 0 rgba(255,255,255,.075);
}
#contacto .contacto-card-icon{
  display:grid;
  place-items:center;
  width:48px;
  height:48px;
  margin-bottom:1rem;
  border:1px solid rgba(245,194,48,.2);
  border-radius:1rem;
  color:var(--gold);
  background:rgba(245,194,48,.08);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.06);
  font-size:1.35rem;
}
#contacto .contacto-card-title{
  margin-bottom:.45rem;
  color:var(--text);
  font-size:.83rem;
  font-weight:800;
  letter-spacing:.16em;
  text-transform:uppercase;
}
#contacto .contacto-card-text{
  color:#88a4c4;
  font-size:.92rem;
  line-height:1.62;
}
#contacto .contacto-card-text a{
  color:var(--gold);
  border-bottom:1px solid rgba(245,194,48,.28);
  transition:color .25s var(--ease-premium),border-color .25s var(--ease-premium);
}
#contacto .contacto-card-text a:hover{
  color:var(--gold-light);
  border-color:var(--gold-light);
}
#contacto .horario-grid{
  grid-template-columns:1fr;
  gap:.38rem;
}
#contacto .horario-row{
  min-height:34px;
  padding:.35rem .55rem;
  border:1px solid rgba(245,194,48,.07);
  border-radius:.72rem;
  background:rgba(7,13,25,.28);
  font-size:.84rem;
}
#contacto .horario-row .day{
  color:#a5bcd6;
  font-weight:500;
}
#contacto .horario-row .time{
  color:var(--gold);
  font-weight:700;
}
#contacto .horario-row.closed{
  opacity:.72;
}
#contacto .contacto-map{
  position:relative;
  min-height:100%;
  border:1px solid rgba(245,194,48,.18);
  border-radius:1.55rem;
  background:rgba(24,34,58,.5);
  box-shadow:0 28px 82px rgba(0,0,0,.32),inset 0 1px 0 rgba(255,255,255,.055);
}
#contacto .contacto-map::before{
  content:'';
  position:absolute;
  inset:0;
  z-index:1;
  pointer-events:none;
  border-radius:inherit;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.03),inset 0 -80px 120px rgba(5,8,15,.18);
}
#contacto .contacto-map iframe{
  display:block;
  height:clamp(520px,52vw,650px);
  filter:grayscale(30%) contrast(108%) saturate(.82) brightness(.86);
}

#testimonios{
  background:
    radial-gradient(circle at 50% 0%,rgba(245,194,48,.11),transparent 28rem),
    linear-gradient(180deg,#0a1221 0%,#101828 100%);
}
#testimonios .testi-slider{
  max-width:840px;
  margin-inline:auto;
  padding:1px;
  border:1px solid rgba(245,194,48,.14);
  border-radius:1.35rem;
  background:
    linear-gradient(145deg,rgba(255,255,255,.055),transparent 35%),
    rgba(24,34,58,.62);
  box-shadow:0 28px 78px rgba(0,0,0,.28),inset 0 1px 0 rgba(255,255,255,.055);
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
  transition:transform .35s var(--ease-premium),border-color .35s var(--ease-premium),box-shadow .35s var(--ease-premium);
}
#testimonios .testi-track{
  align-items:flex-start;
  transition:transform .6s var(--ease-premium),height .35s var(--ease-premium);
}
#testimonios .testi-slider:hover{
  transform:translateY(-3px);
  border-color:rgba(245,194,48,.24);
  box-shadow:0 34px 90px rgba(0,0,0,.34),0 0 42px rgba(245,194,48,.05),inset 0 1px 0 rgba(255,255,255,.065);
}
#testimonios .testi-slide{
  padding:clamp(1.35rem,3vw,2.35rem);
  align-self:flex-start;
}
#testimonios .testi-inner{
  max-width:720px;
  position:relative;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:clamp(.85rem,1.6vw,1.15rem);
}
#testimonios .testi-inner::before{
  content:'';
  position:absolute;
  inset:-1.5rem clamp(-1rem,-2vw,-.4rem);
  z-index:-1;
  border-radius:1.4rem;
  background:radial-gradient(circle at 50% 0%,rgba(245,194,48,.09),transparent 26rem);
  opacity:.7;
  pointer-events:none;
}
#testimonios .testi-card-top{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:.8rem;
  flex-wrap:wrap;
}
#testimonios .testi-badge{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:30px;
  padding:.35rem .7rem;
  border:1px solid rgba(245,194,48,.2);
  border-radius:999px;
  background:linear-gradient(135deg,rgba(245,194,48,.14),rgba(245,194,48,.045));
  color:var(--gold);
  font-size:.62rem;
  font-weight:800;
  letter-spacing:.15em;
  text-transform:uppercase;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.07),0 12px 26px rgba(0,0,0,.16);
}
#testimonios .testi-stars{
  display:inline-flex;
  margin:0;
  padding:.36rem .68rem;
  border:1px solid rgba(245,194,48,.14);
  border-radius:999px;
  background:rgba(245,194,48,.07);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.05);
  letter-spacing:.07em;
  line-height:1;
}
#testimonios .testi-quote{
  color:#eef4ff;
  font-size:clamp(1.08rem,1.65vw,1.42rem);
  line-height:1.52;
  margin:0 auto .25rem;
  text-wrap:balance;
}
#testimonios .testi-quote::before,
#testimonios .testi-quote::after{
  font-size:2rem;
}
#testimonios .testi-author{
  width:max-content;
  max-width:100%;
  margin-inline:auto;
  padding:.55rem .82rem;
  border:1px solid rgba(245,194,48,.1);
  border-radius:999px;
  background:rgba(7,13,25,.34);
}
#testimonios .testi-avatar{
  width:48px;
  height:48px;
  border:2px solid rgba(245,194,48,.78);
  box-shadow:0 10px 24px rgba(0,0,0,.24),0 0 24px rgba(245,194,48,.12);
}
#testimonios .testi-avatar-fallback{
  display:grid;
  place-items:center;
  background:
    radial-gradient(circle at 30% 20%,rgba(245,194,48,.22),transparent 42%),
    linear-gradient(145deg,#101a2c,#07101d);
  color:var(--gold);
  font-weight:900;
  letter-spacing:.08em;
}
#testimonios .testi-review-link{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:38px;
  padding:.66rem 1rem;
  border:1px solid rgba(245,194,48,.22);
  border-radius:.78rem;
  background:rgba(7,13,25,.38);
  color:#d9e6f5;
  font-size:.66rem;
  font-weight:800;
  letter-spacing:.13em;
  text-transform:uppercase;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.045);
  transition:transform .28s var(--ease-premium),border-color .28s var(--ease-premium),background .28s var(--ease-premium),color .28s var(--ease-premium),box-shadow .28s var(--ease-premium);
}
#testimonios .testi-review-link:hover{
  transform:translateY(-2px);
  border-color:rgba(245,194,48,.48);
  background:rgba(245,194,48,.1);
  color:var(--gold-light);
  box-shadow:0 16px 34px rgba(0,0,0,.22),0 0 28px rgba(245,194,48,.08),inset 0 1px 0 rgba(255,255,255,.07);
}
#testimonios .testi-btn{
  border-color:rgba(245,194,48,.18);
  background:rgba(7,13,25,.34);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.04);
}
#testimonios .testi-btn:hover{
  background:rgba(245,194,48,.08);
  box-shadow:0 14px 30px rgba(0,0,0,.2);
}
#testimonios .testi-nav{
  margin-top:1.6rem;
}
#testimonios .testi-dot{
  appearance:none;
  -webkit-appearance:none;
  display:block;
  padding:0;
  border:0;
  cursor:pointer;
}

#instagram{
  background:
    radial-gradient(circle at 85% 20%,rgba(101,192,224,.09),transparent 24rem),
    linear-gradient(180deg,#0c1221 0%,#080e1a 100%);
}
#instagram .ig-grid{
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:clamp(1rem,2vw,1.35rem);
}
#instagram .ig-item{
  aspect-ratio:4/5;
  border:1px solid rgba(245,194,48,.12);
  border-radius:1.35rem;
  box-shadow:0 24px 58px rgba(0,0,0,.26),inset 0 1px 0 rgba(255,255,255,.045);
  transform:translateZ(0);
  transition:transform .42s var(--ease-premium),border-color .42s var(--ease-premium),box-shadow .42s var(--ease-premium);
}
#instagram .ig-item:hover{
  transform:translateY(-6px);
  border-color:rgba(245,194,48,.28);
  box-shadow:0 34px 74px rgba(0,0,0,.34),0 0 38px rgba(245,194,48,.06),inset 0 1px 0 rgba(255,255,255,.065);
}
#instagram .ig-img{
  filter:saturate(1.03) contrast(1.04);
}
#instagram .ig-item:hover .ig-img{
  transform:scale(1.06);
  filter:saturate(1.08) contrast(1.08) brightness(.82);
}
#instagram .ig-hover{
  background:linear-gradient(180deg,rgba(5,8,15,.08),rgba(5,8,15,.72)),rgba(245,194,48,.12);
  color:var(--text);
  backdrop-filter:blur(2px);
  -webkit-backdrop-filter:blur(2px);
}
#instagram .ig-hover svg{
  color:var(--gold);
  filter:drop-shadow(0 8px 22px rgba(0,0,0,.35));
}
#instagram .ig-hover span{
  color:var(--text);
  text-shadow:0 8px 24px rgba(0,0,0,.45);
}
#instagram .ig-cta{
  margin-top:clamp(2rem,4vw,3rem);
}
#instagram .ig-handle{
  color:#9db5d0;
  font-size:clamp(1.45rem,2.3vw,1.9rem);
}
#instagram .ig-cta-icon{
  width:18px;
  height:18px;
  flex:0 0 18px;
}

.cms-public-gallery{
  position:relative;
  background:
    radial-gradient(circle at 15% 10%,rgba(245,194,48,.09),transparent 24rem),
    linear-gradient(180deg,#080f1d 0%,#0d1728 100%);
}
.cms-public-gallery-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:clamp(1rem,2vw,1.35rem);
}
.cms-public-gallery-item{
  position:relative;
  min-height:280px;
  aspect-ratio:4/5;
  margin:0;
  overflow:hidden;
  border:1px solid rgba(245,194,48,.16);
  border-radius:1.25rem;
  background:rgba(24,34,58,.58);
  box-shadow:0 24px 58px rgba(0,0,0,.26),inset 0 1px 0 rgba(255,255,255,.045);
  cursor:pointer;
  transition:transform .38s var(--ease-premium),border-color .38s var(--ease-premium),box-shadow .38s var(--ease-premium);
}
.cms-public-gallery-item:hover{
  transform:translateY(-6px);
  border-color:rgba(245,194,48,.34);
  box-shadow:0 34px 74px rgba(0,0,0,.34),0 0 38px rgba(245,194,48,.06);
}
.cms-public-gallery-item img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover !important;
  object-position:center center !important;
  transition:transform .5s var(--ease-premium),filter .5s var(--ease-premium);
}
.cms-public-gallery-item:hover img{
  transform:scale(1.055);
  filter:brightness(.82) saturate(1.05);
}
.cms-public-gallery-item figcaption{
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  padding:1.2rem;
  background:linear-gradient(180deg,transparent,rgba(5,8,15,.84));
  color:var(--text);
}
.cms-public-gallery-item span{
  display:block;
  color:var(--gold);
  font-size:.62rem;
  font-weight:800;
  letter-spacing:.16em;
  text-transform:uppercase;
}
.cms-public-gallery-item strong{
  display:block;
  margin-top:.35rem;
  font-family:var(--font-serif);
  font-size:1.35rem;
  line-height:1.1;
}
.cms-public-gallery-item small{
  display:block;
  margin-top:.4rem;
  color:rgba(232,240,255,.72);
  line-height:1.45;
}

@media(max-width:1024px){
  #contacto .contacto-grid{
    grid-template-columns:1fr;
  }
  #contacto .contacto-info{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:1rem;
  }
  #contacto .contacto-map iframe{
    height:460px;
  }
  #instagram .ig-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .cms-public-gallery-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}
@media(max-width:720px){
  #contacto .contacto-info{
    grid-template-columns:1fr;
  }
  #contacto .contacto-card{
    min-height:auto;
    padding:1.15rem;
  }
  #contacto .contacto-map{
    border-radius:1.15rem;
  }
  #contacto .contacto-map iframe{
    height:340px;
  }
  #testimonios .testi-slide{
    padding:1rem;
  }
  #testimonios .testi-author{
    width:100%;
    justify-content:flex-start;
    border-radius:1rem;
  }
  #testimonios .testi-card-top{
    flex-direction:column;
    gap:.65rem;
  }
  #testimonios .testi-review-link{
    width:100%;
    min-height:42px;
  }
  #instagram .ig-grid{
    grid-template-columns:1fr;
  }
  .cms-public-gallery-grid{
    grid-template-columns:1fr;
  }
  .cms-public-gallery-item{
    min-height:260px;
    aspect-ratio:1;
  }
  #instagram .ig-item{
    aspect-ratio:1;
    border-radius:1.1rem;
  }
}

@media(max-width:900px){
  .rest-ambience{
    height:auto;
    min-height:auto;
    display:grid;
  }
  .rest-ambience-img{
    position:relative;
    inset:auto;
    min-height:360px;
    order:1;
  }
  .rest-ambience::before{
    background:linear-gradient(180deg,rgba(8,13,24,.08) 0%,rgba(8,13,24,.92) 82%);
  }
  .rest-ambience::after{
    inset:1rem;
    border-radius:1rem;
  }
  .rest-ambience-overlay{
    min-height:auto;
    order:2;
  }
  .rest-ambience-content{
    width:100%;
    padding:2.2rem 1.25rem 3rem;
  }
  .rest-ambience-title{
    max-width:10ch;
    font-size:clamp(2.6rem,14vw,4.2rem);
  }
}

/* Restaurante mobile premium override */
@media(max-width:900px){
  html,
  body{
    max-width:100%;
    overflow-x:hidden;
  }

  body.inner-page main{
    padding-top:78px;
  }

  body.inner-page #navbar{
    min-height:78px;
    padding:.8rem 0;
    background:rgba(5,9,20,.96);
    border-bottom:1px solid rgba(245,194,48,.08);
    box-shadow:0 16px 42px rgba(0,0,0,.32);
    backdrop-filter:blur(18px) saturate(160%);
    -webkit-backdrop-filter:blur(18px) saturate(160%);
  }

  body.inner-page #navbar.scrolled{
    min-height:72px;
    padding:.65rem 0;
    background:rgba(5,9,20,.98);
  }

  .nav-inner{
    gap:.75rem;
  }

  .nav-logo{
    min-width:0;
    gap:.65rem;
  }

  .nav-logo-img{
    width:42px;
    height:42px;
    box-shadow:0 0 0 1px rgba(245,194,48,.28);
  }

  .nav-logo-text{
    min-width:0;
  }

  .nav-logo .logo-main{
    max-width:calc(100vw - 176px);
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
    font-size:clamp(1rem,4.8vw,1.35rem);
    letter-spacing:0;
    line-height:1.05;
  }

  .nav-logo .logo-sub{
    display:none;
  }

  .nav-actions{
    flex-shrink:0;
    gap:.65rem;
  }

  .hamburger{
    width:46px;
    height:46px;
    border-radius:12px;
    border-color:rgba(245,194,48,.24);
    background:rgba(255,255,255,.025);
    color:rgba(255,255,255,.92);
  }

  .hamburger{
    padding:10px;
    gap:6px;
  }

  .hamburger span{
    height:2px;
  }

  .hamburger.open span:nth-child(1){transform:translateY(8px) rotate(45deg)}
  .hamburger.open span:nth-child(3){transform:translateY(-8px) rotate(-45deg)}

  .mobile-menu{
    background:rgba(5,9,20,.97);
  }

  .mobile-menu.open + #navbar{
    background:rgba(5,9,20,.96);
    box-shadow:0 16px 42px rgba(0,0,0,.32);
  }

  .mobile-menu.open + #navbar .nav-logo{
    opacity:1;
    pointer-events:auto;
  }

  #experiencia{
    margin-top:0;
  }

  .rest-hero{
    --rest-mobile-image-h:clamp(430px,64svh,560px);
    --rest-mobile-content-offset:clamp(285px,38svh,350px);
    min-height:calc(100svh - 78px);
    min-height:calc(100dvh - 78px);
    height:auto;
    align-items:flex-end;
    justify-content:center;
    background:#050914;
    isolation:isolate;
  }

  .rest-hero-bg{
    position:absolute;
    top:0;
    left:0;
    right:0;
    bottom:auto;
    height:var(--rest-mobile-image-h);
    overflow:hidden;
    z-index:0;
  }

  .rest-hero-img{
    width:100%;
    height:100%;
    max-width:none;
    object-fit:cover !important;
    object-position:center center !important;
    transform:none !important;
  }

  .rest-hero-overlay{
    z-index:1;
    background:
      linear-gradient(90deg,rgba(5,9,20,.44) 0%,rgba(5,9,20,.1) 42%,rgba(5,9,20,.28) 100%),
      linear-gradient(to bottom,rgba(5,9,20,.02) 0%,rgba(5,9,20,.03) 28%,rgba(5,9,20,.3) 48%,rgba(5,9,20,.86) 66%,#050914 86%,#050914 100%);
  }

  .rest-hero-content{
    position:relative;
    z-index:2;
    width:min(100%,680px);
    max-width:none;
    margin:0 auto;
    padding:var(--rest-mobile-content-offset) clamp(1rem,5vw,2rem) clamp(2rem,7svh,3.5rem);
    gap:clamp(.85rem,2.4vw,1.2rem);
    text-align:center;
    transform:none;
  }

  .rest-hero .reveal{
    opacity:1;
    transform:none;
  }

  .rest-hero-eyebrow{
    max-width:min(100%,620px);
    width:auto;
    margin-inline:auto;
    padding:.58rem clamp(1rem,5vw,1.8rem);
    border-radius:999px;
    border-color:rgba(245,194,48,.58);
    background:rgba(5,9,20,.52);
    color:#f5c230;
    font-size:clamp(.58rem,2.15vw,.72rem);
    line-height:1.35;
    letter-spacing:.34em;
    text-align:center;
    box-shadow:0 12px 40px rgba(0,0,0,.24), inset 0 0 0 1px rgba(255,255,255,.035);
  }

  .rest-hero-title{
    font-size:clamp(3.1rem,13vw,5.2rem);
    line-height:.95;
    letter-spacing:0;
    text-shadow:0 3px 28px rgba(0,0,0,.72);
  }

  .rest-hero-rule{
    display:none;
  }

  .rest-hero-sub{
    max-width:13.5em;
    margin-inline:auto;
    color:rgba(232,240,255,.82);
    font-size:clamp(1.24rem,5.2vw,1.75rem);
    line-height:1.62;
    text-shadow:0 2px 20px rgba(0,0,0,.75);
  }

  .rest-hero-sub br{
    display:none;
  }

  .rest-hero-actions{
    width:min(100%,620px);
    flex-direction:column;
    align-items:stretch;
    gap:1rem;
    margin-top:.55rem;
  }

  .rest-hero-cta,
  .rest-hero-cta-ghost{
    width:100%;
    min-height:64px;
    justify-content:center;
    text-align:center;
    border-radius:4px;
    padding:1.05rem 1.2rem;
    font-size:clamp(.78rem,3.15vw,1rem);
    line-height:1.2;
    letter-spacing:.26em;
    touch-action:manipulation;
  }

  .rest-hero-cta{
    box-shadow:0 16px 42px rgba(245,194,48,.22);
  }

  .rest-hero-cta:hover,
  .rest-hero-cta:focus-visible{
    transform:translateY(-2px);
    box-shadow:0 18px 52px rgba(245,194,48,.34);
  }

  .rest-hero-cta-ghost{
    border-color:rgba(245,194,48,.68);
    background:rgba(5,9,20,.36);
    color:#f5c230;
  }

  .rest-hero-cta-ghost:hover,
  .rest-hero-cta-ghost:focus-visible{
    background:rgba(245,194,48,.08);
    border-color:#f5c230;
  }

  .rest-hero-ornament{
    margin-top:.7rem;
    gap:1rem;
    opacity:.9;
  }

  .rest-hero-ornament svg{
    width:28px;
    height:28px;
  }

  .rest-hero-ornament-line{
    width:clamp(58px,22vw,120px);
  }

  .rest-hero-scroll{
    display:none;
  }

  .wa-float{
    width:52px;
    height:52px;
    right:1rem;
    bottom:.85rem;
    border:7px solid rgba(245,194,48,.12);
    box-shadow:0 16px 38px rgba(0,0,0,.36);
  }

  .wa-float svg{
    width:24px;
    height:24px;
  }
}

@media(max-width:640px){
  body.inner-page main{
    padding-top:74px;
  }

  body.inner-page #navbar{
    min-height:74px;
    padding:.7rem 0;
  }

  .container{
    width:min(100% - 1.5rem,var(--max));
  }

  .nav-logo-img{
    width:38px;
    height:38px;
  }

  .hamburger{
    width:42px;
    height:42px;
    border-radius:11px;
  }

  .nav-actions{
    gap:.5rem;
  }

  .rest-hero{
    --rest-mobile-image-h:clamp(410px,62svh,530px);
    --rest-mobile-content-offset:clamp(270px,36svh,330px);
    min-height:calc(100svh - 74px);
    min-height:calc(100dvh - 74px);
  }

  .rest-hero-content{
    padding:var(--rest-mobile-content-offset) clamp(1rem,5vw,1.35rem) clamp(1.8rem,6svh,3rem);
  }

  .rest-hero-eyebrow{
    letter-spacing:.3em;
  }

  .rest-hero-actions{
    gap:.85rem;
  }

  .rest-hero-cta,
  .rest-hero-cta-ghost{
    min-height:58px;
  }
}

@media(max-width:480px){
  body.inner-page main{
    padding-top:70px;
  }

  body.inner-page #navbar{
    min-height:70px;
    padding:.62rem 0;
  }

  .nav-logo .logo-main{
    max-width:calc(100vw - 152px);
    font-size:clamp(.95rem,5vw,1.18rem);
  }

  .nav-logo-img{
    width:36px;
    height:36px;
  }

  .hamburger{
    width:40px;
    height:40px;
  }

  .hamburger{
    padding:9px;
  }

  .rest-hero{
    --rest-mobile-image-h:clamp(390px,61svh,510px);
    --rest-mobile-content-offset:clamp(245px,32svh,290px);
    min-height:calc(100svh - 70px);
    min-height:calc(100dvh - 70px);
  }

  .rest-hero-content{
    padding:var(--rest-mobile-content-offset) 1rem clamp(1.6rem,5.5svh,2.55rem);
    gap:.8rem;
  }

  .rest-hero-eyebrow{
    padding:.52rem .9rem;
    letter-spacing:.24em;
  }

  .rest-hero-title{
    font-size:clamp(2.85rem,14vw,4.35rem);
  }

  .rest-hero-sub{
    max-width:12.8em;
    font-size:clamp(1.14rem,5.6vw,1.55rem);
    line-height:1.58;
  }

  .rest-hero-cta,
  .rest-hero-cta-ghost{
    min-height:56px;
    letter-spacing:.22em;
  }
}

@media(max-width:390px){
  .rest-hero-content{
    padding-top:clamp(230px,31svh,270px);
    padding-bottom:1.45rem;
    gap:.72rem;
  }

  .rest-hero-title{
    font-size:clamp(2.65rem,13.5vw,3.8rem);
  }

  .rest-hero-sub{
    font-size:clamp(1.05rem,5.45vw,1.34rem);
    line-height:1.5;
  }

  .rest-hero-cta,
  .rest-hero-cta-ghost{
    min-height:52px;
    font-size:.76rem;
    letter-spacing:.2em;
  }

  .rest-hero-ornament{
    margin-top:.45rem;
  }
}

@media(max-width:340px){
  .container{
    width:min(100% - 1rem,var(--max));
  }

  .nav-logo{
    gap:.45rem;
  }

  .nav-logo .logo-main{
    max-width:calc(100vw - 138px);
    font-size:.9rem;
  }

  .nav-logo-img{
    width:34px;
    height:34px;
  }

  .hamburger{
    width:38px;
    height:38px;
  }

  .rest-hero-content{
    padding-left:.75rem;
    padding-right:.75rem;
  }

  .rest-hero-eyebrow{
    letter-spacing:.18em;
    font-size:.55rem;
  }
}

@media(min-width:901px) and (max-width:1180px){
  body.inner-page main{
    padding-top:82px;
  }

  body.inner-page #navbar{
    background:rgba(5,9,20,.93);
    border-bottom:1px solid rgba(245,194,48,.08);
    backdrop-filter:blur(18px) saturate(160%);
    -webkit-backdrop-filter:blur(18px) saturate(160%);
  }

  .rest-hero{
    min-height:calc(100svh - 82px);
    min-height:calc(100dvh - 82px);
  }

  .rest-hero-img{
    object-fit:cover !important;
    object-position:center center !important;
  }

  .rest-hero-content{
    padding-top:clamp(18rem,45svh,24rem);
  }

  .rest-hero-actions{
    width:min(100%,620px);
  }
}

/* Premium restaurant reservations dashboard */
.admin-reservas-section{
  --panel-navy:#07101f;
  --panel-navy-2:#0c1729;
  --panel-ink:#101d33;
  --panel-line:rgba(245,194,48,.15);
  --panel-line-soft:rgba(255,255,255,.07);
  --panel-muted:#86a2c0;
  --panel-soft:#526b89;
  --panel-green:#5ee2a0;
  --panel-red:#ff7f8d;
  --panel-blue:#65c0e0;
  padding:clamp(2rem,4vw,4.5rem) 0 clamp(4rem,7vw,6.5rem);
  margin-top:-80px;
  background:
    radial-gradient(circle at 12% -4%,rgba(245,194,48,.12),transparent 28rem),
    radial-gradient(circle at 88% 6%,rgba(101,192,224,.1),transparent 30rem),
    linear-gradient(135deg,#050a14 0%,#0b1424 42%,#070d18 100%);
}
.admin-reservas-section::after{
  content:'';
  position:absolute;
  inset:0;
  z-index:-1;
  pointer-events:none;
  background:
    linear-gradient(90deg,transparent,rgba(255,255,255,.025),transparent),
    repeating-linear-gradient(90deg,rgba(255,255,255,.018) 0 1px,transparent 1px 120px);
  mask-image:linear-gradient(to bottom,rgba(0,0,0,.8),transparent 70%);
}
.admin-reservas-panel{gap:clamp(1rem,2vw,1.55rem)}
.admin-reservas-hero{
  position:relative;
  overflow:hidden;
  align-items:stretch!important;
  padding:clamp(1.35rem,3vw,2.65rem)!important;
  border:1px solid rgba(245,194,48,.2)!important;
  border-radius:28px!important;
  background:
    radial-gradient(circle at 82% 20%,rgba(245,194,48,.13),transparent 22rem),
    linear-gradient(135deg,rgba(255,255,255,.085),rgba(255,255,255,.025)),
    rgba(10,18,32,.86)!important;
  box-shadow:0 32px 100px rgba(0,0,0,.38),inset 0 1px 0 rgba(255,255,255,.08)!important;
}
.admin-reservas-hero::before{
  content:'';
  position:absolute;
  inset:0;
  pointer-events:none;
  background:linear-gradient(120deg,transparent 0%,rgba(245,194,48,.08) 42%,transparent 68%);
  opacity:.7;
}
.admin-panel-mark-premium{
  width:70px!important;
  height:70px!important;
  border-radius:20px!important;
  color:#0b1322!important;
  background:linear-gradient(135deg,var(--gold-light),var(--gold-dark))!important;
  box-shadow:0 18px 42px rgba(245,194,48,.22),inset 0 1px 0 rgba(255,255,255,.32)!important;
}
.admin-panel-mark-premium::after{display:none}
.admin-reservas-hero .admin-panel-heading{
  position:relative;
  z-index:1;
  align-items:flex-start;
}
.admin-reservas-hero .admin-panel-heading h1{
  max-width:10ch;
  margin:.45rem 0 .6rem;
  font-size:clamp(2.35rem,4.6vw,4.8rem)!important;
  font-weight:700;
  letter-spacing:0;
}
.admin-reservas-hero .section-desc{
  max-width:720px;
  color:#a7bdd5!important;
}
.admin-hero-status{
  display:flex;
  flex-wrap:wrap;
  gap:.65rem;
  margin-top:1.05rem;
}
.admin-hero-status span{
  display:inline-flex;
  align-items:center;
  gap:.5rem;
  min-height:36px;
  padding:.5rem .78rem;
  border:1px solid rgba(245,194,48,.14);
  border-radius:999px;
  background:rgba(7,13,25,.48);
  color:#c9d8ea;
  font-size:.7rem;
  font-weight:800;
  letter-spacing:.12em;
  text-transform:uppercase;
}
.admin-hero-status i{
  width:8px;
  height:8px;
  border-radius:50%;
  background:var(--panel-green);
  box-shadow:0 0 18px rgba(94,226,160,.75);
}
.admin-reservas-hero .admin-panel-actions{
  position:relative;
  z-index:1;
  align-self:flex-start;
  padding:.4rem;
  border:1px solid rgba(255,255,255,.06);
  border-radius:999px;
  background:rgba(5,10,19,.44);
}
.admin-hero-btn{
  gap:.55rem!important;
  padding:.76rem 1rem!important;
  border-radius:999px!important;
}
.admin-hero-btn svg{
  width:17px;
  height:17px;
  flex:0 0 17px;
}
.admin-reservas-metrics{
  grid-template-columns:repeat(5,minmax(0,1fr))!important;
  gap:clamp(.75rem,1.3vw,1rem)!important;
}
.admin-metric-card{
  min-height:142px!important;
  padding:1.15rem!important;
  border-radius:20px!important;
  background:
    radial-gradient(circle at 88% 18%,rgba(245,194,48,.12),transparent 7rem),
    linear-gradient(145deg,rgba(255,255,255,.075),rgba(255,255,255,.022)),
    rgba(13,24,43,.84)!important;
}
.admin-metric-card strong{
  font-family:var(--font-sans)!important;
  font-size:clamp(1.9rem,3.2vw,3.05rem)!important;
  font-weight:800!important;
  letter-spacing:-.02em;
}
.admin-metric-card:nth-child(n){animation:admin-dashboard-enter .72s var(--ease-premium) both}
.admin-metric-card:nth-child(2){animation-delay:.04s}
.admin-metric-card:nth-child(3){animation-delay:.08s}
.admin-metric-card:nth-child(4){animation-delay:.12s}
.admin-metric-card:nth-child(5){animation-delay:.16s}
.admin-metric-card:nth-child(6){animation-delay:.2s}
.admin-metric-card:nth-child(7){animation-delay:.24s}
.admin-metric-card:nth-child(8){animation-delay:.28s}
.admin-metric-card:nth-child(9){animation-delay:.32s}
.admin-metric-card:nth-child(10){animation-delay:.36s}
.admin-metric-clients strong,
.admin-metric-week strong{color:#d8e6f5!important}
.admin-metric-occupancy strong,
.admin-metric-service strong{color:var(--panel-green)!important}
.admin-metric-peak strong{font-size:clamp(1.6rem,2.4vw,2.35rem)!important;color:var(--panel-blue)!important}
.admin-metric-yesterday strong{color:var(--gold-light)!important}
.admin-analytics-grid{
  display:grid;
  grid-template-columns:minmax(0,1.35fr) minmax(320px,.9fr);
  gap:1rem;
}
.admin-analytics-card{
  min-width:0;
  border:1px solid rgba(245,194,48,.14);
  border-radius:24px;
  padding:1.25rem;
  background:
    linear-gradient(145deg,rgba(255,255,255,.07),rgba(255,255,255,.022)),
    rgba(11,20,36,.86);
  box-shadow:0 28px 78px rgba(0,0,0,.28),inset 0 1px 0 rgba(255,255,255,.055);
  overflow:hidden;
}
.admin-chart-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:1rem;
  margin-bottom:1rem;
}
.admin-chart-head h2{
  margin:.3rem 0 0;
  color:var(--text);
  font-family:var(--font-display);
  font-size:clamp(1.3rem,2vw,1.8rem);
  line-height:1.1;
}
.admin-chart-head > span{
  display:inline-flex;
  align-items:center;
  min-height:34px;
  padding:.45rem .7rem;
  border:1px solid rgba(245,194,48,.16);
  border-radius:999px;
  color:var(--gold);
  background:rgba(245,194,48,.07);
  font-size:.68rem;
  font-weight:900;
  letter-spacing:.12em;
  text-transform:uppercase;
  white-space:nowrap;
}
.admin-bar-chart{
  display:grid;
  grid-template-columns:repeat(7,minmax(0,1fr));
  align-items:end;
  gap:.65rem;
  height:230px;
  padding:1rem .35rem .15rem;
}
.admin-bar-item{
  display:grid;
  grid-template-rows:auto 1fr auto;
  gap:.55rem;
  height:100%;
  min-width:0;
  text-align:center;
}
.admin-bar-value{
  color:#c9d8ea;
  font-size:.74rem;
  font-weight:800;
}
.admin-bar-item i{
  align-self:end;
  display:block;
  min-height:8px;
  height:var(--bar);
  border:1px solid rgba(245,194,48,.28);
  border-radius:999px 999px .55rem .55rem;
  background:linear-gradient(180deg,var(--gold-light),rgba(192,144,32,.38));
  box-shadow:0 16px 28px rgba(245,194,48,.12);
}
.admin-bar-item b{
  color:#7f9ab8;
  font-size:.65rem;
  font-weight:900;
  letter-spacing:.12em;
  text-transform:uppercase;
}
.admin-horizontal-chart{
  display:grid;
  gap:.8rem;
  padding:.45rem 0;
}
.admin-hour-row{
  display:grid;
  grid-template-columns:54px minmax(0,1fr) 32px;
  align-items:center;
  gap:.75rem;
}
.admin-hour-row span,
.admin-hour-row strong{
  color:#c9d8ea;
  font-size:.78rem;
  font-weight:800;
}
.admin-hour-row i{
  height:10px;
  overflow:hidden;
  border-radius:999px;
  background:rgba(255,255,255,.06);
}
.admin-hour-row i b{
  display:block;
  width:var(--bar);
  height:100%;
  border-radius:inherit;
  background:linear-gradient(90deg,var(--gold),var(--panel-blue));
  box-shadow:0 0 22px rgba(245,194,48,.16);
}
.admin-spark-chart{
  display:flex;
  align-items:flex-end;
  gap:.45rem;
  min-height:142px;
  padding:.7rem 0 .15rem;
}
.admin-spark-chart span{
  flex:1;
  display:flex;
  align-items:flex-end;
  height:136px;
  min-width:5px;
}
.admin-spark-chart i{
  display:block;
  width:100%;
  height:var(--bar);
  min-height:7px;
  border-radius:999px;
  background:linear-gradient(180deg,var(--panel-blue),rgba(101,192,224,.25));
}
.admin-chart-empty{
  padding:2rem 1rem;
  border:1px dashed rgba(245,194,48,.18);
  border-radius:1rem;
  color:var(--panel-muted);
  text-align:center;
}
.admin-service-summary{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:.8rem;
}
.admin-service-summary div{
  min-height:86px;
  padding:1rem;
  border:1px solid rgba(255,255,255,.07);
  border-radius:18px;
  background:rgba(7,13,25,.42);
}
.admin-service-summary span{
  display:block;
  color:var(--panel-soft);
  font-size:.68rem;
  font-weight:900;
  letter-spacing:.13em;
  text-transform:uppercase;
}
.admin-service-summary strong{
  display:block;
  margin-top:.45rem;
  color:var(--text);
  font-size:1.05rem;
}
.admin-reservas-panel .admin-panel-toolbar{
  grid-template-columns:minmax(240px,1.35fr) minmax(150px,.7fr) minmax(170px,.8fr) minmax(150px,.7fr) minmax(150px,.7fr) auto!important;
  border-radius:22px!important;
}
.admin-client-cell{
  display:flex;
  align-items:center;
  gap:.85rem;
  min-width:260px;
}
.admin-client-avatar{
  display:grid;
  place-items:center;
  width:46px;
  height:46px;
  flex:0 0 46px;
  border:1px solid rgba(245,194,48,.28);
  border-radius:15px;
  color:#101827;
  background:linear-gradient(135deg,var(--gold-light),var(--gold-dark));
  font-size:.8rem;
  font-weight:900;
  letter-spacing:.08em;
  box-shadow:0 14px 30px rgba(245,194,48,.16);
}
.admin-client-main{
  display:grid;
  gap:.16rem;
  min-width:0;
}
.admin-client-main strong{
  color:var(--text);
  font-size:.98rem;
  line-height:1.2;
}
.admin-client-main small{
  max-width:240px;
  overflow:hidden;
  color:var(--panel-muted);
  font-size:.76rem;
  line-height:1.3;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.admin-people-pill{
  display:inline-flex;
  align-items:center;
  min-height:32px;
  padding:.4rem .62rem;
  border:1px solid rgba(101,192,224,.18);
  border-radius:999px;
  color:#bfe9f8;
  background:rgba(101,192,224,.08);
  font-size:.72rem;
  font-weight:900;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.admin-reservas-section .admin-notification-icon{
  position:relative;
  color:var(--gold);
}
.admin-reservas-section .admin-notification-icon svg,
.admin-notif-edge-btn svg{
  width:20px;
  height:20px;
}
.admin-reservas-section .admin-notification-icon b{
  position:absolute;
  top:-7px;
  right:-7px;
  display:grid;
  place-items:center;
  min-width:20px;
  height:20px;
  padding:0 .25rem;
  border-radius:999px;
  color:#07101f;
  background:var(--gold);
  font-size:.62rem;
  font-weight:900;
  box-shadow:0 8px 18px rgba(245,194,48,.2);
}
.admin-reservas-section .admin-notification-icon b[hidden]{display:none}
.admin-notification-right .is-muted{
  color:var(--panel-soft)!important;
  border-color:rgba(255,255,255,.08)!important;
}
.admin-notif-edge-btn{color:var(--gold)!important}
@media(min-width:761px){
  body .admin-reservas-section .admin-reservas-panel .admin-reservas-table{
    min-width:1500px!important;
  }
}
@media(max-width:1180px){
  .admin-reservas-metrics{grid-template-columns:repeat(3,minmax(0,1fr))!important}
  .admin-analytics-grid{grid-template-columns:1fr}
  .admin-reservas-panel .admin-panel-toolbar{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .admin-updated{justify-self:start}
}
@media(max-width:760px){
  .admin-reservas-section{padding-top:1rem}
  .admin-reservas-hero{border-radius:22px!important}
  .admin-reservas-hero .admin-panel-heading{flex-direction:column}
  .admin-reservas-hero .admin-panel-actions{
    width:100%;
    border-radius:18px;
  }
  .admin-hero-btn{flex:1}
  .admin-reservas-metrics{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .admin-analytics-card{
    padding:1rem;
    border-radius:20px;
  }
  .admin-service-summary{grid-template-columns:1fr}
  .admin-reservas-panel .admin-panel-toolbar{grid-template-columns:1fr!important}
  .admin-bar-chart{
    height:190px;
    gap:.45rem;
  }
  .admin-client-cell{min-width:0}
  .admin-client-main small{white-space:normal}
  body .admin-reservas-section .admin-reservas-panel .admin-reservas-table tbody tr.admin-reserva-row > td.admin-actions-cell > .admin-actions-row{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
}
@media(max-width:640px){
  .admin-reservas-section{margin-top:-70px}
}
@media(max-width:480px){
  .admin-reservas-section .container{padding-inline:.8rem}
  .admin-reservas-hero .admin-panel-heading h1{font-size:2.25rem!important}
  .admin-reservas-metrics{grid-template-columns:1fr!important}
  .admin-metric-card{min-height:118px!important}
  .admin-chart-head{flex-direction:column}
  .admin-agenda-filters{grid-template-columns:1fr!important}
  body .admin-reservas-section .admin-reservas-panel .admin-reservas-table tbody tr.admin-reserva-row > td.admin-actions-cell > .admin-actions-row{
    grid-template-columns:1fr!important;
  }
}

/* SaaS luxury reservations panel */
.admin-reservas-section{
  --panel-bg:#05070b;
  --panel-sidebar:#030509;
  --panel-surface:#080c14;
  --panel-surface-2:#0d1421;
  --panel-card:rgba(8,13,23,.82);
  --panel-card-strong:rgba(12,18,31,.94);
  --panel-border:rgba(238,184,43,.16);
  --panel-border-soft:rgba(255,255,255,.07);
  --panel-text:#f5f1e8;
  --panel-muted:#8e9bb0;
  --panel-soft:#59677d;
  --panel-green:#24d18d;
  --panel-red:#ff6477;
  --panel-cyan:#58b9d6;
  position:relative;
  min-height:100dvh;
  margin-top:0!important;
  padding:0!important;
  overflow:hidden;
  color:var(--panel-text);
  background:
    linear-gradient(120deg,rgba(238,184,43,.08),transparent 28%),
    linear-gradient(150deg,#030509 0%,#07101d 52%,#03060c 100%)!important;
}
.admin-reservas-section::after{
  z-index:0;
  opacity:.82;
}
.admin-reservas-app{
  position:relative;
  z-index:1;
  display:grid;
  grid-template-columns:292px minmax(0,1fr);
  width:min(100%,1840px);
  min-height:100dvh;
  margin:0 auto;
  background:
    linear-gradient(90deg,rgba(255,255,255,.02),transparent 34%),
    rgba(3,5,9,.62);
  border-inline:1px solid rgba(238,184,43,.11);
  box-shadow:0 42px 130px rgba(0,0,0,.45);
}
.reservas-sidebar{
  position:sticky;
  top:0;
  align-self:start;
  display:flex;
  flex-direction:column;
  gap:1.35rem;
  height:100dvh;
  min-height:720px;
  padding:1.85rem 1.35rem;
  background:
    linear-gradient(180deg,rgba(255,255,255,.035),transparent 34%),
    var(--panel-sidebar);
  border-right:1px solid rgba(238,184,43,.13);
}
.reservas-sidebar-brand{
  display:flex;
  align-items:center;
  gap:.9rem;
  min-height:64px;
  color:var(--panel-text);
  text-decoration:none;
}
.reservas-sidebar-brand img{
  width:54px;
  height:54px;
  border-radius:50%;
  object-fit:cover;
  box-shadow:0 0 0 1px rgba(238,184,43,.35),0 12px 30px rgba(0,0,0,.4);
}
.reservas-sidebar-brand strong{
  display:block;
  font-family:var(--font-display);
  font-size:1.18rem;
  line-height:1.05;
  letter-spacing:0;
}
.reservas-sidebar-brand small{
  display:block;
  margin-top:.28rem;
  color:var(--panel-muted);
  font-size:.66rem;
  font-weight:800;
  letter-spacing:.14em;
  text-transform:uppercase;
}
.reservas-sidebar-nav{
  display:grid;
  gap:.38rem;
  padding-top:.6rem;
}
.reservas-sidebar-link{
  position:relative;
  display:flex;
  align-items:center;
  gap:.78rem;
  min-height:48px;
  padding:.72rem .82rem;
  overflow:hidden;
  color:#9ca6b5;
  border:1px solid transparent;
  border-radius:14px;
  text-decoration:none;
  font-size:.92rem;
  font-weight:700;
  transition:transform .25s ease,color .25s ease,border-color .25s ease,background .25s ease,box-shadow .25s ease;
}
.reservas-sidebar-link::before{
  content:'';
  position:absolute;
  inset:0;
  opacity:0;
  background:linear-gradient(90deg,rgba(238,184,43,.2),rgba(238,184,43,.045));
  transition:opacity .25s ease;
}
.reservas-sidebar-link:hover,
.reservas-sidebar-link.is-active{
  color:var(--gold-light);
  border-color:rgba(238,184,43,.28);
  background:rgba(238,184,43,.07);
  box-shadow:0 14px 34px rgba(238,184,43,.1),inset 0 1px 0 rgba(255,255,255,.06);
  transform:translateX(3px);
}
.reservas-sidebar-link:hover::before,
.reservas-sidebar-link.is-active::before{opacity:1}
.reservas-sidebar-link span,
.reservas-sidebar-link b{position:relative;z-index:1}
.reservas-sidebar-icon{
  display:grid;
  place-items:center;
  width:24px;
  height:24px;
  flex:0 0 24px;
}
.reservas-sidebar-icon svg,
.admin-metric-icon svg,
.reservas-global-search svg,
.reservas-clock svg,
.reservas-notification-btn svg,
.admin-panel-mark-premium svg,
.admin-hero-btn svg{
  width:20px;
  height:20px;
}
.reservas-sidebar-link b{
  margin-left:auto;
  display:grid;
  place-items:center;
  min-width:24px;
  height:24px;
  padding:0 .35rem;
  border-radius:999px;
  color:#09101b;
  background:linear-gradient(135deg,var(--gold-light),var(--gold-dark));
  font-size:.68rem;
  font-weight:900;
}
.reservas-sidebar-card{
  margin-top:auto;
  padding:1.15rem;
  border:1px solid rgba(238,184,43,.18);
  border-radius:18px;
  background:
    linear-gradient(135deg,rgba(238,184,43,.18),rgba(255,255,255,.04)),
    rgba(14,19,28,.8);
  box-shadow:0 26px 60px rgba(0,0,0,.34),inset 0 1px 0 rgba(255,255,255,.08);
}
.reservas-sidebar-card span{
  display:block;
  color:#b6a986;
  font-size:.72rem;
  font-weight:800;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.reservas-sidebar-card strong{
  display:block;
  margin-top:.42rem;
  color:var(--panel-text);
  font-size:1rem;
}
.reservas-sidebar-card i{
  display:block;
  height:8px;
  margin-top:1rem;
  overflow:hidden;
  border-radius:999px;
  background:rgba(255,255,255,.12);
}
.reservas-sidebar-card b{
  display:block;
  width:72%;
  height:100%;
  border-radius:inherit;
  background:linear-gradient(90deg,var(--gold-light),#ffe179);
  box-shadow:0 0 20px rgba(238,184,43,.24);
}
.reservas-workspace{
  min-width:0;
  background:
    linear-gradient(180deg,rgba(255,255,255,.025),transparent 42%),
    rgba(4,7,12,.4);
}
.reservas-topbar{
  position:sticky;
  top:0;
  z-index:25;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
  min-height:92px;
  padding:1.3rem clamp(1rem,2vw,1.75rem);
  border-bottom:1px solid rgba(238,184,43,.12);
  background:rgba(5,8,14,.82);
  backdrop-filter:blur(22px) saturate(150%);
  -webkit-backdrop-filter:blur(22px) saturate(150%);
}
.reservas-topbar-title{min-width:220px}
.reservas-topbar-title span{
  display:block;
  color:#a99a75;
  font-size:.72rem;
  font-weight:800;
  letter-spacing:.08em;
  text-transform:capitalize;
}
.reservas-topbar-title h2{
  margin:.24rem 0 0;
  color:var(--panel-text);
  font-family:var(--font-display);
  font-size:clamp(1.25rem,2vw,1.72rem);
  line-height:1.1;
  letter-spacing:0;
}
.reservas-topbar-tools{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:.7rem;
  min-width:0;
  flex:1;
}
.reservas-global-search{
  display:flex;
  align-items:center;
  gap:.65rem;
  width:min(390px,100%);
  min-height:48px;
  padding:0 .95rem;
  color:#7f8da2;
  border:1px solid rgba(238,184,43,.12);
  border-radius:14px;
  background:rgba(0,0,0,.24);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.04);
  transition:border-color .25s ease,box-shadow .25s ease,background .25s ease;
}
.reservas-global-search:focus-within{
  border-color:rgba(238,184,43,.34);
  background:rgba(10,15,25,.72);
  box-shadow:0 0 0 4px rgba(238,184,43,.08),inset 0 1px 0 rgba(255,255,255,.06);
}
.reservas-global-search input{
  width:100%;
  min-width:0;
  border:0;
  outline:0;
  color:var(--panel-text);
  background:transparent;
  font:inherit;
}
.reservas-global-search input::placeholder{color:#707c90}
.reservas-state-pill,
.reservas-clock,
.reservas-notification-btn,
.reservas-user-avatar{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:48px;
  border:1px solid rgba(238,184,43,.14);
  border-radius:14px;
  background:rgba(0,0,0,.24);
  color:#cdd6e5;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.04);
}
.reservas-state-pill{
  gap:.52rem;
  padding:0 .82rem;
  white-space:nowrap;
  font-size:.75rem;
  font-weight:900;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.reservas-state-pill i{
  width:8px;
  height:8px;
  border-radius:50%;
  background:var(--panel-red);
  box-shadow:0 0 16px rgba(255,100,119,.6);
}
.reservas-state-pill.is-open i{
  background:var(--panel-green);
  box-shadow:0 0 16px rgba(36,209,141,.7);
}
.reservas-clock{
  gap:.48rem;
  padding:0 .82rem;
  min-width:98px;
  color:var(--gold-light);
  font-size:.86rem;
  font-weight:900;
}
.reservas-notification-btn{
  position:relative;
  width:48px;
  padding:0;
  cursor:pointer;
  transition:transform .25s ease,border-color .25s ease,box-shadow .25s ease;
}
.reservas-notification-btn:hover,
.reservas-notification-btn.has-alert{
  transform:translateY(-1px);
  border-color:rgba(238,184,43,.34);
  box-shadow:0 14px 34px rgba(238,184,43,.12),inset 0 1px 0 rgba(255,255,255,.06);
}
.reservas-notification-btn b{
  position:absolute;
  top:-8px;
  right:-8px;
  display:grid;
  place-items:center;
  min-width:22px;
  height:22px;
  padding:0 .3rem;
  border-radius:999px;
  color:#09101b;
  background:linear-gradient(135deg,var(--gold-light),var(--gold-dark));
  font-size:.68rem;
  font-weight:900;
  box-shadow:0 10px 22px rgba(238,184,43,.24);
}
.reservas-user-avatar{
  width:48px;
  flex:0 0 48px;
  color:#08101b;
  background:
    linear-gradient(135deg,rgba(255,255,255,.35),transparent),
    linear-gradient(135deg,var(--gold-light),var(--gold-dark));
  font-size:.78rem;
  font-weight:950;
  letter-spacing:.08em;
  text-decoration:none;
}
.admin-reservas-main{
  min-width:0;
  padding:clamp(1rem,2vw,1.75rem);
}
.admin-reservas-main .admin-reservas-panel{
  width:100%;
  max-width:none!important;
  padding:0!important;
  gap:clamp(1rem,1.5vw,1.25rem);
}
.admin-reservas-hero{
  min-height:210px;
  border-radius:24px!important;
  background:
    linear-gradient(110deg,rgba(238,184,43,.16),transparent 36%),
    linear-gradient(145deg,rgba(255,255,255,.08),rgba(255,255,255,.02)),
    var(--panel-card-strong)!important;
}
.admin-reservas-hero .admin-panel-heading h1{
  max-width:none;
  font-size:clamp(2rem,3.6vw,3.65rem)!important;
}
.admin-reservas-hero .section-desc{
  max-width:820px;
  font-size:1rem;
}
.admin-reservas-hero .admin-panel-actions{
  border-radius:16px;
  background:rgba(0,0,0,.2);
}
.admin-hero-btn{
  min-height:44px;
  border-radius:12px!important;
}
.admin-reservas-metrics{
  display:grid!important;
  grid-template-columns:repeat(4,minmax(0,1fr))!important;
  gap:1rem!important;
}
.admin-metric-card{
  position:relative;
  display:flex!important;
  flex-direction:column;
  justify-content:space-between;
  gap:.8rem;
  min-height:174px!important;
  padding:1.15rem!important;
  overflow:hidden;
  border:1px solid rgba(238,184,43,.13)!important;
  border-radius:18px!important;
  background:
    linear-gradient(145deg,rgba(255,255,255,.065),rgba(255,255,255,.018)),
    var(--panel-card)!important;
  box-shadow:0 22px 58px rgba(0,0,0,.26),inset 0 1px 0 rgba(255,255,255,.055);
  transition:transform .28s ease,border-color .28s ease,box-shadow .28s ease,background .28s ease;
}
.admin-metric-card::after{
  content:'';
  position:absolute;
  inset:auto -18% -42% 28%;
  height:110px;
  border-radius:50%;
  background:linear-gradient(90deg,transparent,rgba(238,184,43,.13),transparent);
  filter:blur(28px);
  opacity:.45;
  pointer-events:none;
}
.admin-metric-card:hover{
  transform:translateY(-4px);
  border-color:rgba(238,184,43,.32)!important;
  box-shadow:0 28px 70px rgba(0,0,0,.34),0 0 34px rgba(238,184,43,.08),inset 0 1px 0 rgba(255,255,255,.08);
}
.admin-metric-topline{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:.75rem;
}
.admin-metric-icon{
  display:grid;
  place-items:center;
  width:46px;
  height:46px;
  border:1px solid rgba(238,184,43,.16);
  border-radius:13px;
  color:var(--gold-light);
  background:rgba(238,184,43,.08);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.06);
}
.admin-metric-trend{
  display:inline-flex;
  align-items:center;
  min-height:26px;
  max-width:145px;
  padding:.36rem .55rem;
  border:1px solid rgba(255,255,255,.07);
  border-radius:999px;
  color:#b2bdcc;
  background:rgba(255,255,255,.035);
  font-size:.62rem;
  font-weight:900;
  letter-spacing:.08em;
  line-height:1.15;
  text-transform:uppercase;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.admin-metric-trend[data-tone="positive"]{
  color:var(--panel-green);
  border-color:rgba(36,209,141,.18);
  background:rgba(36,209,141,.07);
}
.admin-metric-trend[data-tone="negative"]{
  color:var(--panel-red);
  border-color:rgba(255,100,119,.18);
  background:rgba(255,100,119,.07);
}
.admin-metric-trend[data-tone="warning"]{
  color:var(--gold-light);
  border-color:rgba(238,184,43,.2);
  background:rgba(238,184,43,.08);
}
.admin-metric-card strong{
  margin-top:auto;
  color:var(--panel-text)!important;
  font-size:clamp(1.8rem,2.6vw,2.85rem)!important;
  line-height:1!important;
}
.admin-metric-label{
  color:#9faabd!important;
  font-size:.76rem!important;
  font-weight:900!important;
  letter-spacing:.1em!important;
  text-transform:uppercase!important;
}
.admin-metric-note{
  color:#657287!important;
  font-size:.78rem!important;
}
.admin-metric-pending strong,
.admin-metric-peak strong,
.admin-metric-yesterday strong,
.admin-metric-revenue strong{color:var(--gold-light)!important}
.admin-metric-confirmed strong,
.admin-metric-occupancy strong,
.admin-metric-service strong{color:var(--panel-green)!important}
.admin-metric-cancelled strong{color:var(--panel-red)!important}
.admin-analytics-grid{
  display:grid!important;
  grid-template-columns:minmax(0,1.55fr) minmax(340px,.78fr)!important;
  align-items:stretch;
  gap:1rem!important;
}
.admin-analytics-side{
  display:grid;
  grid-template-rows:auto 1fr;
  gap:1rem;
  min-width:0;
}
.admin-chart-card-large{
  min-height:428px;
}
.admin-trend-card{
  grid-column:1 / -1;
}
.admin-analytics-card{
  border-radius:18px!important;
  background:
    linear-gradient(145deg,rgba(255,255,255,.058),rgba(255,255,255,.018)),
    rgba(5,9,16,.9)!important;
  box-shadow:0 22px 58px rgba(0,0,0,.28),inset 0 1px 0 rgba(255,255,255,.05)!important;
}
.admin-chart-head h2{
  font-family:var(--font-display);
  letter-spacing:0;
}
.admin-bar-chart{
  min-height:282px;
  border:1px solid rgba(255,255,255,.055);
  border-radius:16px;
  background:
    linear-gradient(rgba(255,255,255,.055) 1px,transparent 1px) 0 0/100% 25%,
    linear-gradient(90deg,rgba(255,255,255,.05) 1px,transparent 1px) 0 0/14.285% 100%,
    rgba(0,0,0,.16);
}
.admin-bar-item i{
  background:linear-gradient(180deg,#ffe486,var(--gold),rgba(161,110,21,.5));
}
.admin-status-layout{
  display:grid;
  grid-template-columns:156px minmax(0,1fr);
  align-items:center;
  gap:1rem;
}
.admin-status-donut{
  position:relative;
  display:grid;
  place-items:center;
  width:156px;
  aspect-ratio:1;
  border-radius:50%;
  background:conic-gradient(var(--panel-green) 0 0,var(--gold) 0 0,var(--panel-red) 0 100%);
  box-shadow:0 22px 48px rgba(0,0,0,.28),inset 0 0 0 1px rgba(255,255,255,.08);
}
.admin-status-donut::before{
  content:'';
  position:absolute;
  inset:24px;
  border-radius:inherit;
  background:#060a12;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.05);
}
.admin-status-donut span{
  position:relative;
  z-index:1;
  display:grid;
  gap:.15rem;
  color:var(--panel-text);
  text-align:center;
  font-size:1.45rem;
  font-weight:950;
}
.admin-status-donut small{
  color:var(--panel-muted);
  font-size:.58rem;
  font-weight:900;
  letter-spacing:.09em;
  text-transform:uppercase;
}
.admin-status-card .admin-service-summary{
  grid-template-columns:1fr;
  gap:.55rem;
}
.admin-status-card .admin-service-summary div{
  display:flex;
  align-items:center;
  justify-content:space-between;
  min-height:44px;
  padding:.7rem .78rem;
  border-radius:12px;
}
.admin-status-card .admin-service-summary span,
.admin-status-card .admin-service-summary strong{
  margin:0;
}
.admin-panel-toolbar{
  border:1px solid rgba(238,184,43,.13)!important;
  background:
    linear-gradient(145deg,rgba(255,255,255,.06),rgba(255,255,255,.018)),
    rgba(6,10,18,.88)!important;
  box-shadow:0 18px 48px rgba(0,0,0,.24),inset 0 1px 0 rgba(255,255,255,.05);
}
.admin-panel-toolbar .form-input,
.admin-panel-toolbar .form-select{
  min-height:46px;
  border-color:rgba(238,184,43,.14)!important;
  border-radius:12px!important;
  background:rgba(0,0,0,.22)!important;
}
.admin-agenda-filters{
  padding:.35rem;
  border:1px solid rgba(238,184,43,.13);
  border-radius:16px;
  background:rgba(0,0,0,.18);
}
.admin-agenda-filter{
  border-radius:12px!important;
}
.admin-reservas-table-wrap{
  border:1px solid rgba(238,184,43,.13)!important;
  border-radius:20px!important;
  background:
    linear-gradient(145deg,rgba(255,255,255,.052),rgba(255,255,255,.016)),
    rgba(5,9,16,.9)!important;
  box-shadow:0 24px 64px rgba(0,0,0,.3),inset 0 1px 0 rgba(255,255,255,.05);
}
.admin-table-heading{
  border-bottom:1px solid rgba(255,255,255,.06);
}
.admin-reservas-table th{
  color:var(--gold)!important;
  font-size:.68rem!important;
  letter-spacing:.11em!important;
}
.admin-reservas-table tbody tr.admin-reserva-row{
  transition:background .22s ease,transform .22s ease;
}
.admin-reservas-table tbody tr.admin-reserva-row:hover{
  background:rgba(238,184,43,.045)!important;
}
.admin-client-avatar{
  border-radius:50%;
  color:#07101b;
}
.admin-actions-row .admin-action-btn{
  border-radius:10px!important;
}
.admin-reservas-section .admin-notification-panel{
  z-index:80;
  border-color:rgba(238,184,43,.22);
  background:rgba(5,9,16,.95);
  backdrop-filter:blur(24px) saturate(150%);
  -webkit-backdrop-filter:blur(24px) saturate(150%);
}
.admin-reservas-section .admin-notification-history{
  margin-top:.5rem;
  padding-left:1rem;
}
@media(max-width:1320px){
  .admin-reservas-app{grid-template-columns:260px minmax(0,1fr)}
  .reservas-sidebar{padding-inline:1rem}
  .admin-reservas-metrics{grid-template-columns:repeat(3,minmax(0,1fr))!important}
  .reservas-state-pill{display:none}
}
@media(max-width:1080px){
  .admin-reservas-app{grid-template-columns:1fr}
  .reservas-sidebar{
    position:relative;
    top:auto;
    height:auto;
    min-height:0;
    padding:1rem;
    border-right:0;
    border-bottom:1px solid rgba(238,184,43,.13);
  }
  .reservas-sidebar-brand{min-height:52px}
  .reservas-sidebar-brand img{width:46px;height:46px}
  .reservas-sidebar-nav{
    display:flex;
    gap:.55rem;
    max-width:100%;
    padding:.25rem 0 .2rem;
    overflow-x:auto;
    scrollbar-width:thin;
  }
  .reservas-sidebar-link{
    min-width:max-content;
    transform:none!important;
  }
  .reservas-sidebar-card{display:none}
  .reservas-topbar{top:0}
  .admin-analytics-grid{grid-template-columns:1fr!important}
}
@media(max-width:820px){
  .reservas-topbar{
    align-items:stretch;
    flex-direction:column;
    min-height:0;
  }
  .reservas-topbar-tools{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto auto;
    justify-content:stretch;
  }
  .reservas-global-search{
    grid-column:1 / -1;
    width:100%;
  }
  .reservas-clock{min-width:0}
  .admin-reservas-metrics{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .admin-status-layout{grid-template-columns:1fr}
  .admin-status-donut{margin:auto}
}
@media(max-width:640px){
  .admin-reservas-main{padding:.85rem}
  .reservas-sidebar{padding:.8rem}
  .reservas-sidebar-brand strong{font-size:1rem}
  .reservas-sidebar-brand small{font-size:.58rem}
  .reservas-sidebar-link{
    min-height:44px;
    padding:.62rem .72rem;
    font-size:.82rem;
  }
  .reservas-topbar{padding:.85rem}
  .reservas-topbar-title h2{font-size:1.12rem}
  .reservas-topbar-tools{grid-template-columns:1fr 1fr auto}
  .reservas-state-pill{
    display:inline-flex;
    grid-column:1 / -1;
  }
  .reservas-clock,
  .reservas-notification-btn,
  .reservas-user-avatar{
    min-height:44px;
  }
  .admin-reservas-hero{
    min-height:0;
    padding:1rem!important;
    border-radius:18px!important;
  }
  .admin-panel-mark-premium{
    width:52px!important;
    height:52px!important;
    border-radius:15px!important;
  }
  .admin-reservas-hero .admin-panel-actions{
    display:grid!important;
    grid-template-columns:1fr;
    width:100%;
  }
  .admin-hero-status span{
    width:100%;
    justify-content:center;
  }
  .admin-reservas-metrics{grid-template-columns:1fr!important}
  .admin-metric-card{min-height:150px!important}
  .admin-metric-trend{max-width:150px}
  .admin-chart-card-large{min-height:0}
  .admin-bar-chart{
    min-height:220px;
    height:220px;
  }
}
@media(max-width:380px){
  .reservas-sidebar-brand{gap:.65rem}
  .reservas-sidebar-brand img{width:40px;height:40px}
  .reservas-topbar-tools{grid-template-columns:1fr auto}
  .reservas-state-pill,
  .reservas-clock{grid-column:1 / -1}
  .admin-reservas-main{padding:.65rem}
  .admin-reservas-hero .admin-panel-heading h1{font-size:1.95rem!important}
  .admin-metric-card{padding:1rem!important}
}

body.admin-reservas-page main{
  padding-top:0!important;
  overflow-x:hidden;
}
body.admin-reservas-page{
  overflow-x:hidden;
  background:#030509;
}
body.admin-reservas-page *{
  box-sizing:border-box;
}
body.admin-reservas-page .admin-notif-edge-btn{
  display:none!important;
}
body.admin-reservas-page .admin-notification-panel{
  position:fixed!important;
  top:var(--admin-notification-top,96px)!important;
  right:var(--admin-notification-right,20px)!important;
  left:auto!important;
  z-index:10000!important;
  width:var(--admin-notification-width,min(360px,calc(100vw - 24px)))!important;
  max-width:calc(100vw - 24px)!important;
  max-height:calc(100dvh - var(--admin-notification-top,96px) - 16px)!important;
  overflow:auto!important;
  border:1px solid rgba(238,184,43,.24)!important;
  border-radius:18px!important;
  background:rgba(5,9,16,.98)!important;
  box-shadow:0 34px 90px rgba(0,0,0,.58),0 0 0 1px rgba(238,184,43,.06),inset 0 1px 0 rgba(255,255,255,.06)!important;
  backdrop-filter:blur(24px) saturate(155%)!important;
  -webkit-backdrop-filter:blur(24px) saturate(155%)!important;
}
body.admin-reservas-page .admin-notification-panel.open{
  opacity:1!important;
  visibility:visible!important;
  pointer-events:auto!important;
  transform:translateX(0)!important;
}
body.admin-reservas-page .admin-notification-panel.collapsed{
  opacity:0!important;
  visibility:hidden!important;
  pointer-events:none!important;
  transform:translateX(calc(100% + 2rem))!important;
}
body.admin-reservas-page .admin-notification-panel,
body.admin-reservas-page .admin-notification-panel *{
  min-width:0!important;
}
body.admin-reservas-page .admin-notification-panel .admin-notification-inner{
  width:100%!important;
}
body.admin-reservas-page .admin-notification-panel .admin-notification-text,
body.admin-reservas-page .admin-notification-panel .admin-notification-history li{
  overflow-wrap:anywhere;
}
@media(max-width:640px){
  body.admin-reservas-page .admin-notification-panel{
    left:12px!important;
    right:12px!important;
    width:auto!important;
    max-width:none!important;
    border-radius:16px!important;
  }
  body.admin-reservas-page .admin-notification-panel .admin-notification-inner{
    padding:1rem!important;
    padding-top:1.35rem!important;
  }
  body.admin-reservas-page .admin-notification-panel .admin-notification-left{
    gap:.72rem!important;
  }
  body.admin-reservas-page .admin-notification-panel .admin-notification-right{
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    margin-left:0!important;
    width:100%!important;
  }
  body.admin-reservas-page .admin-notification-panel .admin-notification-right > *{
    width:100%!important;
    justify-content:center!important;
  }
}
.admin-reservas-app,
.reservas-workspace,
.reservas-topbar,
.admin-reservas-main,
.admin-reservas-panel,
.admin-reservas-hero,
.admin-analytics-card,
.admin-reservas-table-wrap{
  min-width:0;
  max-width:100%;
}
@media(max-width:1080px){
  body.admin-reservas-page .admin-reservas-app{
    display:block!important;
    width:100vw!important;
    max-width:100vw!important;
    overflow:hidden!important;
  }
  body.admin-reservas-page .reservas-sidebar,
  body.admin-reservas-page .reservas-workspace,
  body.admin-reservas-page .reservas-topbar,
  body.admin-reservas-page .admin-reservas-main,
  body.admin-reservas-page .admin-reservas-panel{
    width:100%!important;
    max-width:100%!important;
    overflow:hidden!important;
  }
  body.admin-reservas-page .admin-panel-toolbar{
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
  }
  body.admin-reservas-page .admin-search-wrap,
  body.admin-reservas-page .admin-date-wrap,
  body.admin-reservas-page .admin-filter-wrap,
  body.admin-reservas-page .admin-updated{
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
  }
  body.admin-reservas-page .admin-reservas-table-wrap{
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    overflow-x:auto!important;
  }
}
@media(max-width:640px){
  body.admin-reservas-page .admin-reservas-app{
    display:block!important;
    width:100vw!important;
    max-width:100vw!important;
    overflow:hidden!important;
  }
  body.admin-reservas-page .reservas-sidebar,
  body.admin-reservas-page .reservas-workspace,
  body.admin-reservas-page .reservas-topbar,
  body.admin-reservas-page .admin-reservas-main,
  body.admin-reservas-page .admin-reservas-panel{
    width:100%!important;
    max-width:100%!important;
    overflow:hidden!important;
  }
  .reservas-topbar-tools > *,
  .admin-reservas-hero .admin-panel-heading,
  .admin-reservas-hero .admin-panel-heading > div,
  .admin-hero-status,
  .admin-reservas-hero .admin-panel-actions,
  .admin-hero-btn{
    min-width:0!important;
    max-width:100%!important;
  }
  .admin-reservas-hero .admin-panel-heading{
    display:grid!important;
    grid-template-columns:1fr;
    gap:.9rem;
  }
  .admin-reservas-hero .section-desc,
  .admin-reservas-hero .admin-panel-heading h1{
    max-width:100%!important;
    overflow-wrap:anywhere;
  }
  .admin-hero-status{
    display:grid!important;
    grid-template-columns:1fr;
  }
  .admin-hero-status span{
    display:flex;
    width:100%!important;
    white-space:normal;
    text-align:center;
    line-height:1.25;
  }
  .admin-hero-btn{
    display:flex!important;
    width:100%;
    justify-content:center;
    color:inherit;
    white-space:normal;
  }
  .admin-reservas-hero .admin-panel-actions{
    overflow:hidden;
  }
  .reservas-state-pill{
    justify-content:center;
    white-space:normal;
    text-align:center;
  }
  body.admin-reservas-page .admin-panel-toolbar{
    display:grid!important;
    grid-template-columns:1fr!important;
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
  }
  body.admin-reservas-page .admin-search-wrap,
  body.admin-reservas-page .admin-date-wrap,
  body.admin-reservas-page .admin-filter-wrap,
  body.admin-reservas-page .admin-updated{
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
  }
  body.admin-reservas-page .admin-reservas-table-wrap{
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    overflow-x:hidden!important;
  }
  body.admin-reservas-page .admin-reservas-table{
    width:100%!important;
    min-width:0!important;
  }
}

.cookie-consent{
  position:fixed;
  left:clamp(14px,3vw,34px);
  right:clamp(14px,3vw,34px);
  bottom:clamp(14px,3vw,30px);
  z-index:9999;
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:center;
  gap:1.35rem;
  width:min(920px,calc(100% - 28px));
  margin:0 auto;
  padding:1.05rem;
  color:#f8fafc;
  background:linear-gradient(135deg,rgba(12,19,34,.96),rgba(25,34,54,.94));
  border:1px solid rgba(244,192,40,.32);
  border-radius:20px;
  box-shadow:0 24px 70px rgba(0,0,0,.45), inset 0 1px 0 rgba(255,255,255,.08);
  backdrop-filter:blur(18px);
  transform:translateY(18px);
  opacity:0;
  pointer-events:none;
  transition:opacity .25s ease,transform .25s ease;
}
.cookie-consent[hidden]{
  display:none;
}
.cookie-consent.is-visible{
  transform:translateY(0);
  opacity:1;
  pointer-events:auto;
}
.cookie-consent__content{
  min-width:0;
}
.cookie-consent__eyebrow{
  display:inline-flex;
  align-items:center;
  gap:.45rem;
  margin-bottom:.35rem;
  color:#f4c028;
  font-size:.72rem;
  font-weight:800;
  letter-spacing:.14em;
  text-transform:uppercase;
}
.cookie-consent__eyebrow::before{
  content:"";
  width:7px;
  height:7px;
  border-radius:999px;
  background:#f4c028;
  box-shadow:0 0 18px rgba(244,192,40,.65);
}
.cookie-consent h2{
  margin:0 0 .28rem;
  font-family:"Playfair Display","Cormorant Garamond",serif;
  font-size:clamp(1.35rem,2vw,1.85rem);
  line-height:1;
}
.cookie-consent p{
  max-width:650px;
  margin:0;
  color:#c7d1e2;
  font-size:.94rem;
  line-height:1.55;
}
.cookie-consent a{
  color:#f4c028;
  font-weight:700;
  text-decoration:none;
}
.cookie-consent a:hover{
  text-decoration:underline;
}
.cookie-consent__actions{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:.7rem;
}
.cookie-consent__btn{
  min-height:44px;
  padding:.75rem 1rem;
  border-radius:12px;
  border:1px solid rgba(255,255,255,.14);
  font:800 .78rem/1 "Inter",sans-serif;
  letter-spacing:.08em;
  text-transform:uppercase;
  cursor:pointer;
  transition:transform .2s ease,border-color .2s ease,background .2s ease,box-shadow .2s ease;
}
.cookie-consent__btn:hover{
  transform:translateY(-1px);
}
.cookie-consent__btn--ghost{
  color:#d7deea;
  background:rgba(255,255,255,.04);
}
.cookie-consent__btn--ghost:hover{
  border-color:rgba(255,255,255,.3);
  background:rgba(255,255,255,.08);
}
.cookie-consent__btn--primary{
  color:#111827;
  border-color:rgba(244,192,40,.72);
  background:linear-gradient(135deg,#ffd75a,#e3a915);
  box-shadow:0 14px 32px rgba(244,192,40,.2);
}
.cookie-consent__btn--primary:hover{
  box-shadow:0 16px 40px rgba(244,192,40,.3);
}
@media(max-width:760px){
  .cookie-consent{
    grid-template-columns:1fr;
    padding:1rem;
    border-radius:18px;
  }
  .cookie-consent__actions{
    display:grid;
    grid-template-columns:1fr 1fr;
    width:100%;
  }
  .cookie-consent__btn{
    width:100%;
    padding:.85rem .7rem;
  }
}
