/* ═══════════════════════════════════════════════════════════
   VILLA BOLONIA — styles.css  (versión mejorada)
   ═══════════════════════════════════════════════════════════ */

/* ── VARIABLES ── */
:root {
  --gold:         #C9A84C;
  --gold-light:   #E8C97A;
  --gold-dark:    #8B6914;
  --gold-faint:   rgba(201,168,76,0.08);
  --black:        #0A0A0A;
  --black-soft:   #111111;
  --black-mid:    #1A1A1A;
  --white:        #F5F0E8;
  --white-pure:   #FFFFFF;
  --gray:         #888880;
  --gray-dark:    #555550;

  /* New easing */
  --ease-out-expo: cubic-bezier(0.16, 1, 0.3, 1);
  --ease-in-out-quart: cubic-bezier(0.76,0,0.24,1);
}

/* ── RESET ── */
*, *::before, *::after { margin:0; padding:0; box-sizing:border-box; }
html  { scroll-behavior:smooth; }
body  {
  background:var(--black);
  color:var(--white);
  font-family:'Montserrat', sans-serif;
  font-weight:300;
  overflow-x:hidden;
  cursor:none;
}
img   { display:block; max-width:100%; }

/* ── SCROLLBAR ── */
::-webkit-scrollbar       { width:4px; }
::-webkit-scrollbar-track { background:var(--black); }
::-webkit-scrollbar-thumb { background:var(--gold-dark); }

/* ══════════════════════════════════════
   GRAIN OVERLAY
══════════════════════════════════════ */
.grain-overlay {
  position:fixed; inset:0;
  pointer-events:none;
  z-index:9998;
  opacity:0.028;
  background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)'/%3E%3C/svg%3E");
  background-size:200px 200px;
  mix-blend-mode:overlay;
}

/* ══════════════════════════════════════
   SCROLL PROGRESS BAR
══════════════════════════════════════ */
.scroll-progress {
  position:fixed;
  top:0; left:0;
  height:2px;
  width:0%;
  background:linear-gradient(to right, var(--gold-dark), var(--gold-light));
  z-index:9999;
  transition:width 0.1s linear;
}

/* ══════════════════════════════════════
   BACK TO TOP
══════════════════════════════════════ */
.back-to-top {
  position:fixed;
  bottom:108px; right:36px;
  width:44px; height:44px;
  background:transparent;
  border:1px solid rgba(201,168,76,0.3);
  color:var(--gold);
  font-size:20px;
  cursor:pointer;
  z-index:7000;
  display:flex; align-items:center; justify-content:center;
  opacity:0; transform:translateY(16px);
  transition:all 0.4s var(--ease-out-expo);
}
.back-to-top.visible { opacity:1; transform:translateY(0); }
.back-to-top:hover   { background:var(--gold); color:var(--black); }

/* ══════════════════════════════════════
   PRELOADER
══════════════════════════════════════ */
#preloader {
  position:fixed;
  inset:0;
  background:var(--black);
  z-index:10000;
  display:flex;
  align-items:center;
  justify-content:center;
  transition:opacity 0.8s ease, visibility 0.8s ease;
}
#preloader.hidden { opacity:0; visibility:hidden; pointer-events:none; }

.preloader-inner { text-align:center; }

/* Emblem rings */
.pe-ring {
  position:absolute; top:50%; left:50%;
  transform:translate(-50%,-50%);
  border-radius:50%;
  border:1px solid var(--gold-dark);
  animation:peRing 2s ease-in-out infinite alternate;
}
.pe-ring--1 { width:60px; height:60px; animation-delay:0s; opacity:0.8; }
.pe-ring--2 { width:80px; height:80px; animation-delay:0.2s; opacity:0.5; }
.pe-ring--3 { width:100px; height:100px; animation-delay:0.4s; opacity:0.2; }
@keyframes peRing {
  from { transform:translate(-50%,-50%) scale(0.92) rotate(0deg); }
  to   { transform:translate(-50%,-50%) scale(1.08) rotate(180deg); }
}
.preloader-emblem {
  position:relative; width:100px; height:100px;
  margin:0 auto 32px;
}
.pe-center {
  position:absolute; top:50%; left:50%;
  transform:translate(-50%,-50%);
  font-family:'Cormorant Garamond', serif;
  font-size:20px; letter-spacing:3px;
  color:var(--gold);
}

.preloader-logo {
  font-family:'Cormorant Garamond', serif;
  font-size:52px;
  font-weight:300;
  color:var(--gold);
  letter-spacing:6px;
  animation:preloaderPulse 1.5s ease infinite alternate;
}
@keyframes preloaderPulse {
  from { opacity:0.4; }
  to   { opacity:1; }
}

.preloader-tagline {
  font-size:10px;
  letter-spacing:5px;
  text-transform:uppercase;
  color:var(--gray);
  margin:12px 0 36px;
}

.preloader-bar {
  width:240px;
  height:1px;
  background:rgba(201,168,76,0.15);
  margin:0 auto;
  overflow:hidden;
}
.preloader-fill {
  height:100%;
  width:0%;
  background:linear-gradient(to right, var(--gold-dark), var(--gold-light));
  transition:width 0.05s linear;
}
.preloader-pct {
  font-size:11px; color:var(--gray);
  letter-spacing:2px; margin-top:12px;
}

/* ══════════════════════════════════════
   CUSTOM CURSOR
══════════════════════════════════════ */
.cursor {
  position:fixed;
  width:8px; height:8px;
  background:var(--gold);
  border-radius:50%;
  pointer-events:none;
  z-index:9997;
  transform:translate(-50%,-50%);
  transition:transform 0.1s, background 0.3s;
}
.cursor-ring {
  position:fixed;
  width:32px; height:32px;
  border:1px solid var(--gold);
  border-radius:50%;
  pointer-events:none;
  z-index:9996;
  transform:translate(-50%,-50%);
  transition:all 0.25s ease;
  opacity:0.6;
}
.cursor-text {
  position:fixed;
  font-size:9px; letter-spacing:2px;
  text-transform:uppercase; color:var(--gold);
  pointer-events:none;
  z-index:9997;
  opacity:0;
  transform:translate(-50%,-50%) translateY(-28px);
  transition:opacity 0.3s;
  white-space:nowrap;
}
.cursor-text.visible { opacity:1; }

/* ══════════════════════════════════════
   POPUP
══════════════════════════════════════ */
.popup-overlay {
  position:fixed;
  inset:0;
  background:rgba(0,0,0,0.85);
  z-index:8000;
  display:flex;
  align-items:center;
  justify-content:center;
  opacity:0;
  visibility:hidden;
  transition:all 0.5s ease;
  backdrop-filter:blur(6px);
}
.popup-overlay.visible { opacity:1; visibility:visible; }

.popup {
  background:var(--black-mid);
  border:1px solid rgba(201,168,76,0.2);
  padding:60px 50px;
  max-width:500px;
  width:90%;
  text-align:center;
  position:relative;
  animation:popupIn 0.6s cubic-bezier(0.34,1.56,0.64,1) forwards;
}
/* Corner decorations */
.popup-deco-tl, .popup-deco-br {
  position:absolute;
  width:40px; height:40px;
  border-color:var(--gold-dark);
  border-style:solid;
  pointer-events:none;
}
.popup-deco-tl {
  top:-1px; left:-1px;
  border-width:1px 0 0 1px;
}
.popup-deco-br {
  bottom:-1px; right:-1px;
  border-width:0 1px 1px 0;
}

@keyframes popupIn {
  from { transform:scale(0.85) translateY(30px); opacity:0; }
  to   { transform:scale(1)    translateY(0);    opacity:1; }
}

.popup-close {
  position:absolute;
  top:20px; right:20px;
  background:none; border:none;
  color:var(--gray); font-size:18px;
  cursor:pointer; transition:color 0.3s;
}
.popup-close:hover { color:var(--gold); }

.popup-badge {
  display:inline-block;
  font-size:9px; letter-spacing:4px;
  text-transform:uppercase;
  color:var(--gold);
  border:1px solid var(--gold-dark);
  padding:6px 18px;
  margin-bottom:28px;
}
.popup-title {
  font-family:'Cormorant Garamond', serif;
  font-size:40px; font-weight:300;
  color:var(--white-pure);
  line-height:1.15;
  margin-bottom:20px;
}
.popup-title em { font-style:italic; color:var(--gold-light); }
.popup-text {
  font-size:14px; color:var(--gray);
  line-height:1.8; margin-bottom:36px;
}
.popup-btn {
  display:inline-block;
  background:var(--gold); color:var(--black);
  padding:14px 40px;
  font-size:11px; letter-spacing:3px;
  text-transform:uppercase; font-weight:500;
  text-decoration:none;
  transition:all 0.3s ease;
  position:relative; overflow:hidden;
  margin-bottom:16px;
}
.popup-btn::before {
  content:''; position:absolute; inset:0;
  background:var(--gold-light);
  transform:scaleX(0); transform-origin:left;
  transition:transform 0.4s ease;
}
.popup-btn:hover::before { transform:scaleX(1); }
.popup-btn span { position:relative; z-index:1; }
.popup-skip {
  display:block; background:none; border:none;
  color:var(--gray); font-size:12px;
  letter-spacing:2px; cursor:pointer;
  margin:0 auto; transition:color 0.3s;
  font-family:'Montserrat', sans-serif;
}
.popup-skip:hover { color:var(--gold); }

/* ══════════════════════════════════════
   WHATSAPP BUTTON
══════════════════════════════════════ */
.whatsapp-btn {
  position:fixed;
  bottom:36px; right:36px;
  background:#25D366;
  color:#fff;
  width:56px; height:56px;
  border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  z-index:7000;
  text-decoration:none;
  box-shadow:0 4px 20px rgba(37,211,102,0.35);
  transition:all 0.4s ease;
  overflow:visible;
}
.whatsapp-btn svg { width:28px; height:28px; flex-shrink:0; }
.whatsapp-btn:hover {
  transform:scale(1.1);
  box-shadow:0 6px 30px rgba(37,211,102,0.5);
}
.whatsapp-label {
  position:absolute;
  right:66px;
  background:var(--black-mid);
  color:var(--white);
  font-size:11px; letter-spacing:1px;
  padding:6px 14px;
  white-space:nowrap;
  opacity:0;
  transform:translateX(10px);
  transition:all 0.3s ease;
  pointer-events:none;
  border:1px solid rgba(201,168,76,0.2);
}
.whatsapp-btn:hover .whatsapp-label { opacity:1; transform:translateX(0); }

/* ══════════════════════════════════════
   NAVIGATION — CENTRADA v3
══════════════════════════════════════ */
nav {
  position: fixed; top: 0; left: 0; right: 0;
  z-index: 500;
  padding: 0 40px;
  height: 78px;
  display: grid;
  grid-template-columns: 230px 1fr auto;
  align-items: center;
  gap: 0 16px;
  transition: height 0.45s var(--ease-out-expo),
              background 0.45s ease,
              border-color 0.45s ease;
}
nav.scrolled {
  height: 60px;
  background: rgba(10,10,10,0.97);
  backdrop-filter: blur(24px);
  -webkit-backdrop-filter: blur(24px);
  border-bottom: 1px solid rgba(201,168,76,0.1);
}
.nav-logo {
  font-family: 'Cormorant Garamond', serif;
  font-size: 22px; font-weight: 300;
  letter-spacing: 5px; color: var(--gold);
  text-decoration: none; text-transform: uppercase;
  grid-column: 1;
  justify-self: start;
  line-height: 1;
}
.nav-logo span {
  display: block; font-size: 8px;
  letter-spacing: 5px; color: var(--gray);
  margin-top: 4px; font-family: 'Montserrat', sans-serif;
  text-transform: uppercase;
}
/* ── Links centrados ── */
.nav-links {
  grid-column: 2;
  justify-self: center;
  padding-right: 0;
  display: flex;
  gap: 0;
  list-style: none;
  align-items: center;
  flex-wrap: nowrap;
  overflow: visible;
}
.nav-links li { display: flex; align-items: center; }

/* Separador dorado entre links */
.nav-links li + li::before {
  content: '';
  display: block;
  width: 1px; height: 10px;
  background: rgba(201,168,76,0.18);
  flex-shrink: 0;
}
/* Quitar separador antes del horario y del botón reservar */
.nav-links li:has(.nav-horario)::before,
.nav-links li:has(.nav-reserve-btn)::before { display: none; }

.nav-links a {
  font-size: 9px; letter-spacing: 1.5px;
  text-transform: uppercase; color: rgba(245,240,232,0.75);
  text-decoration: none; position: relative;
  padding: 6px 10px;
  transition: color 0.3s ease;
  white-space: nowrap;
}
/* Hover line desde centro */
.nav-links a::after {
  content: ''; position: absolute;
  bottom: 0; left: 50%;
  width: 0; height: 1px;
  background: var(--gold);
  transform: translateX(-50%);
  transition: width 0.35s var(--ease-out-expo);
}
.nav-links a:hover        { color: var(--gold); }
.nav-links a:hover::after { width: calc(100% - 24px); }
.nav-links a.nav-active   { color: var(--gold); }
.nav-links a.nav-active::after { width: calc(100% - 24px); }

/* ── Horario pill ── */
.nav-horario {
  display: flex; align-items: center; gap: 7px;
  padding: 5px 12px;
  border: 1px solid rgba(201,168,76,0.2);
  border-radius: 20px;
  font-size: 8.5px; letter-spacing: 1.5px;
  text-transform: uppercase;
  cursor: default; white-space: nowrap;
  margin: 0 6px;
  transition: border-color 0.3s, background 0.3s;
  background: rgba(10,10,10,0.4);
  max-width: 200px;
}
.nav-horario:hover { border-color: rgba(201,168,76,0.45); }
.nh-dot {
  width: 6px; height: 6px; border-radius: 50%;
  flex-shrink: 0; transition: background 0.5s;
}
.nh-dot.open   { background: #4ade80; box-shadow: 0 0 6px rgba(74,222,128,0.7); animation: pulse-green 2s infinite; }
.nh-dot.closed { background: #f87171; box-shadow: 0 0 5px rgba(248,113,113,0.5); }
.nh-text       { color: rgba(136,136,128,0.9); font-size: 8.5px; }

/* ── Reservar botón — columna derecha ── */
.nav-links li:last-child { margin-left: 4px; }
.nav-reserve-btn {
  border: 1px solid rgba(201,168,76,0.7) !important;
  padding: 8px 20px !important;
  color: var(--gold) !important;
  background: transparent;
  letter-spacing: 2.5px !important;
  font-size: 9px !important;
  transition: background 0.35s ease, color 0.35s ease, border-color 0.35s ease !important;
}
.nav-reserve-btn:hover {
  background: var(--gold) !important;
  color: var(--black) !important;
  border-color: var(--gold) !important;
}
.nav-reserve-btn::after { display: none !important; }

.hamburger {
  display:none; flex-direction:column;
  gap:5px; cursor:pointer; padding:5px;
}
.hamburger span {
  width:24px; height:1px;
  background:var(--gold);
  transition:all 0.3s; display:block;
}

/* ══════════════════════════════════════
   MOBILE NAV
══════════════════════════════════════ */
.mobile-nav {
  position:fixed; inset:0;
  background:var(--black);
  z-index:490;
  display:flex; flex-direction:column;
  align-items:center; justify-content:center;
  gap:0;
  transform:translateX(100%);
  transition:transform 0.6s var(--ease-in-out-quart);
}
.mobile-nav.open { transform:translateX(0); }

.mobile-close {
  position:absolute; top:28px; right:28px;
  font-size:24px; color:var(--gray);
  cursor:pointer; background:none; border:none;
}
.mobile-close:hover { color:var(--gold); }

.mobile-nav-logo {
  font-family:'Cormorant Garamond', serif;
  font-size:28px; color:var(--gold);
  letter-spacing:6px; text-transform:uppercase;
  margin-bottom:48px;
}
.mobile-nav-links {
  display:flex; flex-direction:column;
  align-items:center; gap:8px;
}
.mobile-nav-links a {
  font-family:'Cormorant Garamond', serif;
  font-size:32px; color:var(--white);
  text-decoration:none; font-weight:300;
  transition:color 0.3s; padding:6px 0;
}
.mobile-nav-links a:hover { color:var(--gold); }

.mobile-nav-footer {
  position:absolute; bottom:40px;
  text-align:center;
}
.mobile-nav-footer p {
  font-size:12px; color:var(--gray);
  letter-spacing:1px; line-height:2;
}

/* ══════════════════════════════════════
   BUTTONS
══════════════════════════════════════ */
.btn-primary {
  background:var(--gold); color:var(--black);
  padding:16px 44px;
  font-size:11px; letter-spacing:3px;
  text-transform:uppercase; text-decoration:none;
  font-weight:500; display:inline-block;
  transition:all 0.4s ease;
  position:relative; overflow:hidden;
}
.btn-primary::before {
  content:''; position:absolute; inset:0;
  background:var(--gold-light);
  transform:scaleX(0); transform-origin:left;
  transition:transform 0.4s ease;
}
.btn-primary:hover::before { transform:scaleX(1); }
.btn-primary span { position:relative; z-index:1; }

.btn-secondary {
  border:1px solid rgba(201,168,76,0.5);
  color:var(--white); padding:16px 44px;
  font-size:11px; letter-spacing:3px;
  text-transform:uppercase; text-decoration:none;
  display:inline-block; transition:all 0.4s ease;
}
.btn-secondary:hover { border-color:var(--gold); color:var(--gold); }

/* ══════════════════════════════════════
   SECTION COMMONS
══════════════════════════════════════ */
section { padding:120px 60px; }

.section-label {
  font-size:9px; letter-spacing:6px;
  text-transform:uppercase; color:var(--gold);
  margin-bottom:20px;
  display:flex; align-items:center; gap:16px;
}
.section-label::before {
  content:''; width:30px; height:1px;
  background:var(--gold);
}
.section-title {
  font-family:'Cormorant Garamond', serif;
  font-size:clamp(40px,6vw,78px);
  font-weight:300; line-height:1;
  color:var(--white-pure);
}
.section-title em { font-style:italic; color:var(--gold-light); }

/* ══════════════════════════════════════
   HERO
══════════════════════════════════════ */
.hero {
  height:100vh; position:relative;
  display:flex; align-items:center;
  justify-content:center; overflow:hidden;
}
.hero-bg {
  position:absolute; inset:0;
  background-image:url('https://images.unsplash.com/photo-1555396273-367ea4eb4db5?w=1800&q=90');
  background-size:cover; background-position:center;
  filter:brightness(0.28);
  transform:scale(1.06);
  animation:heroZoom 22s ease-in-out infinite alternate;
}
@keyframes heroZoom {
  from { transform:scale(1.06); }
  to   { transform:scale(1.14); }
}
.hero-overlay {
  position:absolute; inset:0;
  background:linear-gradient(to bottom,
    rgba(10,10,10,0.25) 0%,
    rgba(10,10,10,0.05) 40%,
    rgba(10,10,10,0.7)  100%);
}
.hero-particles {
  position:absolute; inset:0;
  pointer-events:none; z-index:1;
}
.hero-particle {
  position:absolute;
  width:2px; height:2px;
  background:var(--gold);
  border-radius:50%;
  opacity:0;
  animation:particleFloat var(--dur) var(--delay) ease-in-out infinite;
}
@keyframes particleFloat {
  0%   { opacity:0;   transform:translateY(0)    scale(0); }
  20%  { opacity:0.6; }
  80%  { opacity:0.3; }
  100% { opacity:0;   transform:translateY(-120px) scale(1.5); }
}

/* Vertical floating text */
.hero-vert-text {
  position:absolute; top:50%;
  font-size:9px; letter-spacing:6px;
  text-transform:uppercase; color:rgba(201,168,76,0.3);
  writing-mode:vertical-rl;
  transform:translateY(-50%);
  z-index:2; pointer-events:none;
  animation:fadeIn 2s 2s forwards;
  opacity:0;
}
.hero-vert-left  { left:24px; }
.hero-vert-right { right:24px; transform:translateY(-50%) rotate(180deg); }

.hero-content {
  position:relative; text-align:center;
  z-index:2;
}
.hero-eyebrow {
  font-size:10px; letter-spacing:8px;
  text-transform:uppercase; color:var(--gold);
  margin-bottom:28px;
  display:flex; align-items:center; gap:20px;
  justify-content:center;
  opacity:0; animation:fadeUp 1s 0.3s forwards;
}
.eyebrow-line {
  display:block; width:40px; height:1px;
  background:linear-gradient(to right, transparent, var(--gold));
}
.eyebrow-line:last-child { transform:scaleX(-1); }
.hero-title {
  font-family:'Cormorant Garamond', serif;
  font-size:clamp(64px,10vw,140px);
  font-weight:300; line-height:0.88;
  color:var(--white-pure);
  margin-bottom:12px;
  opacity:0; animation:fadeUp 1s 0.6s forwards;
}
.hero-title em { font-style:italic; color:var(--gold-light); }
.hero-subtitle {
  font-family:'Cormorant Garamond', serif;
  font-size:clamp(18px,3vw,28px);
  font-weight:300; font-style:italic;
  color:var(--gray); margin-bottom:52px;
  opacity:0; animation:fadeUp 1s 0.9s forwards;
}
.hero-divider {
  display:flex; align-items:center; justify-content:center;
  gap:16px; margin-bottom:44px;
  opacity:0; animation:fadeUp 1s 1.1s forwards;
}
.hero-divider::before, .hero-divider::after {
  content:''; width:80px; height:1px;
  background:linear-gradient(to right,transparent,var(--gold));
}
.hero-divider::after { transform:scaleX(-1); }
.hd-ornament { color:var(--gold); font-size:12px; }
.hero-cta {
  display:inline-flex; gap:24px;
  flex-wrap:wrap; justify-content:center;
  opacity:0; animation:fadeUp 1s 1.3s forwards;
}
.hero-scroll-indicator {
  position:absolute; bottom:40px; left:50%;
  transform:translateX(-50%);
  display:flex; flex-direction:column;
  align-items:center; gap:8px;
  opacity:0; animation:fadeUp 1s 1.8s forwards;
}
.hero-scroll-indicator span {
  font-size:9px; letter-spacing:4px;
  text-transform:uppercase; color:var(--gray);
}
.scroll-line {
  width:1px; height:50px;
  background:linear-gradient(to bottom,var(--gold),transparent);
  animation:scrollPulse 2s ease infinite;
}
@keyframes scrollPulse {
  0%,100% { transform:scaleY(1); opacity:1; }
  50%     { transform:scaleY(0.5); opacity:0.3; }
}

/* Hero floating badges */
.hero-badge {
  position:absolute; bottom:100px;
  background:rgba(10,10,10,0.8);
  border:1px solid rgba(201,168,76,0.25);
  padding:18px 24px;
  backdrop-filter:blur(10px);
  text-align:center; z-index:3;
  opacity:0; animation:fadeUp 1s 2s forwards;
}
.hero-badge--left  { left:60px; }
.hero-badge--right { right:60px; }
.hb-num {
  display:block;
  font-family:'Cormorant Garamond', serif;
  font-size:28px; color:var(--gold);
  margin-bottom:4px;
}
.hb-txt { font-size:10px; letter-spacing:1px; color:var(--gray); }

/* Diagonal accent line */
.hero-diagonal {
  position:absolute; bottom:0; left:0;
  width:100%; height:80px;
  background:linear-gradient(to bottom-right, transparent 49.5%, var(--black) 50%);
  z-index:4; pointer-events:none;
}

@keyframes fadeUp {
  from { opacity:0; transform:translateY(20px); }
  to   { opacity:1; transform:translateY(0); }
}
@keyframes fadeIn {
  from { opacity:0; }
  to   { opacity:1; }
}

/* ══════════════════════════════════════
   STATS STRIP
══════════════════════════════════════ */
.strip {
  background:var(--gold); padding:28px 60px;
  display:flex; align-items:center;
  justify-content:center; gap:60px; overflow:hidden;
  flex-wrap:wrap;
}
.strip-item { display:flex; align-items:center; gap:16px; flex-shrink:0; }
.strip-item .num {
  font-family:'Cormorant Garamond', serif;
  font-size:36px; font-weight:300;
  color:var(--black); line-height:1;
}
.strip-item .text {
  font-size:9px; letter-spacing:2px;
  text-transform:uppercase; color:var(--black); opacity:0.65;
}
.strip-divider { width:1px; height:40px; background:rgba(0,0,0,0.18); }

/* ══════════════════════════════════════
   FAMILIA
══════════════════════════════════════ */
#familia {
  background:var(--black-soft);
  display:grid; grid-template-columns:1fr 1fr;
  gap:100px; align-items:center;
}
.familia-media { position:relative; }
.familia-img-main {
  width:100%; aspect-ratio:3/4;
  object-fit:cover;
  filter:sepia(20%) brightness(0.88);
}
.familia-img-accent {
  position:absolute; bottom:-40px; right:-40px;
  width:55%; aspect-ratio:1;
  object-fit:cover;
  border:6px solid var(--black-soft);
  filter:sepia(20%) brightness(0.88);
}
.familia-gold-frame {
  position:absolute; top:-16px; left:-16px;
  width:60%; height:60%;
  border:1px solid var(--gold-dark);
  pointer-events:none;
}
.familia-year-badge {
  position:absolute; top:28px; left:28px;
  background:var(--gold); color:var(--black);
  font-size:10px; letter-spacing:3px;
  padding:8px 16px; font-weight:500;
}
.familia-text { padding:20px 0; }
.familia-text p {
  font-size:15px; line-height:1.9;
  color:var(--gray); margin-bottom:24px;
}
.familia-text p strong { color:var(--white); font-weight:400; }
.familia-text p em {
  color:var(--gold-light); font-style:italic;
  font-family:'Cormorant Garamond', serif; font-size:17px;
}
.familia-values {
  display:flex; flex-direction:column; gap:12px;
  margin:32px 0;
}
.fv-item {
  display:flex; align-items:center; gap:14px;
  font-size:13px; color:var(--gray); letter-spacing:1px;
}
.fv-icon { color:var(--gold); font-size:14px; }

.familia-signature {
  padding-top:36px;
  border-top:1px solid rgba(201,168,76,0.2);
}
.familia-signature-text {
  font-family:'Cormorant Garamond', serif;
  font-size:28px; font-style:italic; color:var(--gold-light);
}
.familia-signature-sub {
  font-size:10px; letter-spacing:2px;
  text-transform:uppercase; color:var(--gray);
  margin-top:4px;
}

/* ══════════════════════════════════════
   PARALLAX QUOTE
══════════════════════════════════════ */
.parallax-quote {
  position:relative; height:420px;
  display:flex; align-items:center;
  justify-content:center; overflow:hidden;
}
.parallax-quote-bg {
  position:absolute; inset:0;
  background-image:url('https://images.unsplash.com/photo-1414235077428-338989a2e8c0?w=1600&q=85');
  background-size:cover; background-position:center;
  filter:brightness(0.25);
  will-change:transform;
}
.parallax-quote-overlay {
  position:absolute; inset:0;
  background:rgba(10,10,10,0.55);
}
.parallax-quote-content {
  position:relative; z-index:2;
  text-align:center; max-width:800px; padding:0 40px;
}
.pq-ornament {
  font-size:12px; letter-spacing:8px;
  color:var(--gold); margin-bottom:32px;
}
.parallax-quote-content blockquote {
  font-family:'Cormorant Garamond', serif;
  font-size:clamp(22px,4vw,38px);
  font-style:italic; font-weight:300;
  color:var(--white-pure); line-height:1.4;
  margin-bottom:28px;
}
.parallax-quote-content cite {
  font-size:12px; letter-spacing:3px;
  text-transform:uppercase; color:var(--gold);
  font-style:normal;
}

/* ══════════════════════════════════════
   MENU
══════════════════════════════════════ */
#menu {
  background:var(--black);
  position:relative; overflow:hidden;
}
#menu::before {
  content:'MENU';
  position:absolute; top:50%; left:50%;
  transform:translate(-50%,-50%);
  font-family:'Cormorant Garamond', serif;
  font-size:280px; font-weight:300;
  color:rgba(201,168,76,0.025);
  pointer-events:none; white-space:nowrap; line-height:1;
}
.menu-header { text-align:center; margin-bottom:64px; position:relative; }
.menu-header .section-label { justify-content:center; }
.menu-header .section-label::before { display:none; }
.menu-header .section-label::after {
  content:''; width:30px; height:1px; background:var(--gold);
}
.menu-subtitle {
  font-size:14px; color:var(--gray);
  margin-top:20px; max-width:500px;
  margin-left:auto; margin-right:auto;
  line-height:1.8;
}

/* Menu tabs */
.menu-tabs {
  display:flex; gap:4px; justify-content:center;
  margin-top:40px;
}
.tab-btn {
  background:transparent;
  border:1px solid rgba(201,168,76,0.2);
  color:var(--gray);
  padding:10px 28px;
  font-family:'Montserrat', sans-serif;
  font-size:10px; letter-spacing:2px;
  text-transform:uppercase; cursor:pointer;
  transition:all 0.3s ease;
}
.tab-btn:hover   { border-color:var(--gold); color:var(--gold); }
.tab-btn.active  { background:var(--gold); color:var(--black); border-color:var(--gold); }

/* Menu grid */
.menu-grid {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:2px; position:relative;
}
.menu-card {
  position:relative; overflow:hidden;
  aspect-ratio:4/5; cursor:pointer;
  background:var(--black-mid);
}
.menu-card.featured { grid-column:span 1; grid-row:span 2; aspect-ratio:auto; }
.menu-card.hidden   { display:none; }

.menu-card img {
  width:100%; height:100%; object-fit:cover;
  transition:transform 0.8s ease, filter 0.6s ease;
  filter:brightness(0.6) saturate(0.75);
}
.menu-card:hover img {
  transform:scale(1.08);
  filter:brightness(0.45) saturate(0.55);
}
.menu-card-overlay {
  position:absolute; inset:0;
  background:linear-gradient(to top, rgba(10,10,10,0.96) 0%, transparent 55%);
  transition:background 0.4s;
}
.menu-card:hover .menu-card-overlay {
  background:linear-gradient(to top, rgba(10,10,10,0.98) 0%, rgba(10,10,10,0.25) 100%);
}
.menu-card-content {
  position:absolute; bottom:0; left:0; right:0;
  padding:28px;
}
.menu-card-tag {
  font-size:9px; letter-spacing:3px;
  text-transform:uppercase; color:var(--gold); margin-bottom:8px;
}
.menu-card-name {
  font-family:'Cormorant Garamond', serif;
  font-size:30px; font-weight:400;
  color:var(--white-pure); line-height:1.1; margin-bottom:8px;
}
.menu-card-desc {
  font-size:12px; color:var(--gray);
  line-height:1.7; max-height:0;
  overflow:hidden; transition:max-height 0.5s ease;
}
.menu-card:hover .menu-card-desc { max-height:90px; }

.menu-card-footer {
  display:flex; align-items:center;
  justify-content:space-between; margin-top:16px;
}
.menu-card-price {
  font-family:'Cormorant Garamond', serif;
  font-size:22px; color:var(--gold-light);
  display:flex; align-items:center; gap:8px;
}
.menu-card-price::before {
  content:''; width:16px; height:1px; background:var(--gold);
}
.menu-card-btn {
  font-size:9px; letter-spacing:2px;
  text-transform:uppercase; color:var(--gold);
  text-decoration:none; border:1px solid rgba(201,168,76,0.35);
  padding:6px 14px; transition:all 0.3s;
  opacity:0; transform:translateY(8px);
  transition:all 0.4s ease;
}
.menu-card:hover .menu-card-btn { opacity:1; transform:translateY(0); }
.menu-card-btn:hover { background:var(--gold); color:var(--black); }

.featured-badge {
  position:absolute; top:24px; right:24px;
  background:var(--gold); color:var(--black);
  font-size:8px; letter-spacing:2px;
  text-transform:uppercase;
  padding:6px 14px; font-weight:500; z-index:2;
}

.menu-cta { text-align:center; margin-top:60px; }

/* ══════════════════════════════════════
   CHEF
══════════════════════════════════════ */
.chef-section {
  background:var(--black-soft);
  padding:120px 60px;
  position:relative; overflow:hidden;
}
.chef-bg-text {
  position:absolute; top:50%; right:-40px;
  transform:translateY(-50%);
  font-family:'Cormorant Garamond', serif;
  font-size:220px; font-weight:300;
  color:rgba(201,168,76,0.03);
  pointer-events:none; line-height:1;
  white-space:nowrap;
}
.chef-inner {
  display:grid; grid-template-columns:1fr 1fr;
  gap:100px; align-items:center;
  position:relative; z-index:2;
}
.chef-img-wrap { position:relative; }
.chef-img {
  width:100%; aspect-ratio:3/4;
  object-fit:cover; object-position:top;
  filter:sepia(10%) brightness(0.9);
}
.chef-img-border {
  position:absolute; top:-20px; left:-20px;
  right:20px; bottom:20px;
  border:1px solid var(--gold-dark);
  pointer-events:none; z-index:-1;
}
.chef-award {
  position:absolute; bottom:30px; left:-30px;
  background:var(--gold); color:var(--black);
  padding:16px 20px; text-align:center;
}
.ca-icon { display:block; font-size:22px; margin-bottom:4px; }
.ca-txt  { font-size:10px; letter-spacing:1px; font-weight:500; line-height:1.4; }

.chef-role {
  font-size:12px; letter-spacing:3px;
  text-transform:uppercase; color:var(--gold);
  margin-bottom:32px; margin-top:12px;
}
.chef-bio {
  font-size:15px; color:var(--gray);
  line-height:1.9; margin-bottom:24px;
}
.chef-bio em {
  font-style:italic; color:var(--white);
  font-family:'Cormorant Garamond', serif; font-size:17px;
}
.chef-stats {
  display:flex; gap:0; margin:36px 0;
  border:1px solid rgba(201,168,76,0.15);
}
.cs-item {
  flex:1; padding:24px;
  text-align:center;
}
.cs-divider {
  width:1px;
  background:rgba(201,168,76,0.15);
}
.cs-num {
  display:block;
  font-family:'Cormorant Garamond', serif;
  font-size:32px; color:var(--gold);
  margin-bottom:6px;
}
.cs-txt {
  font-size:10px; letter-spacing:1px;
  text-transform:uppercase; color:var(--gray); line-height:1.5;
}

/* ══════════════════════════════════════
   EXPERIENCE STRIP
══════════════════════════════════════ */
.experience-strip {
  background:var(--black-mid);
  padding:100px 60px;
  display:grid;
  grid-template-columns:1fr 1px 1fr 1px 1fr 1px 1fr;
  text-align:center;
}
.exp-divider {
  background:linear-gradient(to bottom, transparent, var(--gold-dark), transparent);
  align-self:stretch;
}
.exp-item { padding:40px 48px; }
.exp-icon {
  font-size:28px; color:var(--gold);
  margin-bottom:20px; display:block;
}
.exp-title {
  font-family:'Cormorant Garamond', serif;
  font-size:22px; color:var(--white-pure); margin-bottom:12px;
}
.exp-text { font-size:13px; color:var(--gray); line-height:1.8; }

/* ══════════════════════════════════════
   GALERÍA
══════════════════════════════════════ */
.galeria-section {
  background:var(--black);
  padding:120px 60px;
}
.galeria-header { margin-bottom:60px; }

.galeria-grid {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  grid-template-rows:auto auto;
  gap:4px;
}
.galeria-item {
  position:relative; overflow:hidden;
  aspect-ratio:1; cursor:pointer;
  background:var(--black-mid);
}
.galeria-item.gi-large { grid-column:span 1; grid-row:span 2; aspect-ratio:auto; }

.galeria-item img {
  width:100%; height:100%; object-fit:cover;
  transition:transform 0.7s ease, filter 0.5s ease;
  filter:brightness(0.75) saturate(0.8);
}
.galeria-item:hover img {
  transform:scale(1.07);
  filter:brightness(0.5) saturate(0.6);
}
.gi-overlay {
  position:absolute; inset:0;
  display:flex; align-items:flex-end;
  padding:24px;
  background:linear-gradient(to top, rgba(10,10,10,0.85) 0%, transparent 50%);
  opacity:0; transition:opacity 0.4s ease;
}
.galeria-item:hover .gi-overlay { opacity:1; }
.gi-overlay span {
  font-size:13px; letter-spacing:3px;
  text-transform:uppercase; color:var(--gold);
}

/* Enhanced Lightbox */
.lightbox {
  position:fixed; inset:0;
  background:rgba(0,0,0,0.97);
  z-index:9000;
  display:flex; align-items:center; justify-content:center;
  opacity:0; visibility:hidden;
  transition:all 0.4s ease;
}
.lightbox.open { opacity:1; visibility:visible; }
.lightbox-img {
  max-width:88vw; max-height:82vh;
  object-fit:contain;
  transform:scale(0.9);
  transition:transform 0.4s ease;
}
.lightbox.open .lightbox-img { transform:scale(1); }
.lightbox-close {
  position:absolute; top:24px; right:28px;
  font-size:28px; color:var(--gray);
  background:none; border:none;
  cursor:pointer; transition:color 0.3s;
}
.lightbox-close:hover { color:var(--gold); }
.lightbox-prev, .lightbox-next {
  position:absolute; top:50%;
  transform:translateY(-50%);
  background:none; border:1px solid rgba(201,168,76,0.3);
  color:var(--gold); font-size:28px;
  width:52px; height:52px;
  display:flex; align-items:center; justify-content:center;
  cursor:pointer; transition:all 0.3s;
}
.lightbox-prev:hover, .lightbox-next:hover { background:var(--gold); color:var(--black); }
.lightbox-prev { left:24px; }
.lightbox-next { right:24px; }
.lightbox-caption {
  position:absolute; bottom:24px; left:50%;
  transform:translateX(-50%);
  font-size:11px; letter-spacing:3px;
  text-transform:uppercase; color:var(--gold);
}

/* ══════════════════════════════════════
   TESTIMONIOS
══════════════════════════════════════ */
.testimonios-section {
  background:var(--black-soft);
  padding:120px 60px;
  overflow:hidden;
}
.testimonios-header { margin-bottom:60px; }

.testimonios-wrapper {
  overflow:hidden; position:relative;
}
.testimonios-track {
  display:flex; gap:24px;
  transition:transform 0.6s var(--ease-in-out-quart);
  will-change:transform;
}
.testimonio-card {
  min-width:calc(33.333% - 16px);
  background:var(--black-mid);
  border:1px solid rgba(201,168,76,0.1);
  padding:44px 40px;
  transition:border-color 0.3s, transform 0.3s;
  flex-shrink:0;
  position:relative; overflow:hidden;
}
.testimonio-card::before {
  content:'"';
  position:absolute; top:16px; right:24px;
  font-family:'Cormorant Garamond', serif;
  font-size:80px; color:rgba(201,168,76,0.06);
  line-height:1; pointer-events:none;
}
.testimonio-card:hover {
  border-color:rgba(201,168,76,0.3);
  transform:translateY(-4px);
}
.tc-stars {
  font-size:18px; color:var(--gold);
  letter-spacing:3px; margin-bottom:24px;
}
.tc-text {
  font-style:italic;
  font-family:'Cormorant Garamond', serif;
  font-size:17px; color:var(--gray);
  line-height:1.9; margin-bottom:32px;
}
.tc-author { display:flex; align-items:center; gap:16px; }
.tc-avatar {
  width:44px; height:44px;
  background:var(--gold-dark);
  color:var(--black);
  display:flex; align-items:center; justify-content:center;
  font-size:13px; font-weight:500;
  flex-shrink:0; border-radius:50%;
}
.tc-name { font-size:13px; color:var(--white); font-weight:400; margin-bottom:3px; }
.tc-role { font-size:10px; letter-spacing:1px; color:var(--gray); text-transform:uppercase; }

.testimonios-controls {
  display:flex; align-items:center;
  justify-content:center; gap:24px; margin-top:48px;
}
.tc-btn {
  width:44px; height:44px;
  border:1px solid rgba(201,168,76,0.3);
  background:transparent; color:var(--gold);
  font-size:18px; cursor:pointer;
  transition:all 0.3s ease;
  display:flex; align-items:center; justify-content:center;
}
.tc-btn:hover { background:var(--gold); color:var(--black); }
.tc-dots { display:flex; gap:8px; }
.tc-dot {
  width:6px; height:6px;
  border-radius:50%;
  background:rgba(201,168,76,0.25);
  cursor:pointer; transition:all 0.3s;
}
.tc-dot.active { background:var(--gold); transform:scale(1.4); }

/* ══════════════════════════════════════
   EVENTOS PRIVADOS
══════════════════════════════════════ */
.eventos-section {
  position:relative; overflow:hidden;
  min-height:600px;
  display:flex; align-items:center; justify-content:center;
  padding:120px 60px;
}
.eventos-bg {
  position:absolute; inset:0;
  background-image:url('https://images.unsplash.com/photo-1559339352-11d035aa65de?w=1800&q=85');
  background-size:cover; background-position:center;
  filter:brightness(0.2);
  will-change:transform;
}
.eventos-overlay {
  position:absolute; inset:0;
  background:rgba(10,10,10,0.6);
}
.eventos-content {
  position:relative; z-index:2;
  text-align:center; max-width:900px;
}
.eventos-text {
  font-size:15px; color:var(--gray);
  line-height:1.9; margin:28px auto 48px;
  max-width:640px;
}
.eventos-cards {
  display:flex; gap:24px;
  justify-content:center; margin-bottom:48px;
  flex-wrap:wrap;
}
.ev-card {
  background:rgba(10,10,10,0.7);
  border:1px solid rgba(201,168,76,0.2);
  padding:32px 28px; flex:1; min-width:180px;
  text-align:center;
  transition:border-color 0.3s, transform 0.3s;
  backdrop-filter:blur(10px);
}
.ev-card:hover { border-color:var(--gold); transform:translateY(-6px); }
.ev-icon { display:block; font-size:22px; color:var(--gold); margin-bottom:14px; }
.ev-card h4 {
  font-family:'Cormorant Garamond', serif;
  font-size:20px; color:var(--white-pure); margin-bottom:10px;
}
.ev-card p { font-size:12px; color:var(--gray); line-height:1.8; }

/* ══════════════════════════════════════
   [NUEVO] MENÚ DEGUSTACIÓN
══════════════════════════════════════ */
.degustacion-section {
  background:var(--black);
  padding:120px 60px;
  position:relative; overflow:hidden;
}
.degu-bg-text {
  position:absolute; top:50%; left:50%;
  transform:translate(-50%,-50%);
  font-family:'Cormorant Garamond', serif;
  font-size:200px; font-weight:300;
  color:rgba(201,168,76,0.02);
  pointer-events:none; white-space:nowrap;
}
.degu-header { text-align:center; margin-bottom:80px; }
.degu-header .section-label { justify-content:center; }
.degu-header .section-label::before { display:none; }
.degu-header .section-label::after {
  content:''; width:30px; height:1px; background:var(--gold);
}
.degu-subtitle {
  font-size:14px; color:var(--gray);
  max-width:560px; margin:20px auto 0;
  line-height:1.8;
}

/* Timeline */
.degu-timeline {
  display:flex; flex-direction:column; gap:12px;
  position:relative; max-width:860px; margin:0 auto;
}
.degu-timeline::before {
  content:'';
  position:absolute; left:28px; top:20px; bottom:20px;
  width:1px;
  background:linear-gradient(to bottom,
    transparent,
    var(--gold-dark) 8%,
    var(--gold-dark) 92%,
    transparent
  );
}
.degu-item {
  display:flex; gap:0;
  align-items:flex-start;
  position:relative;
}
.degu-num {
  flex-shrink:0;
  width:56px;
  padding-top:36px;
  font-family:'Cormorant Garamond', serif;
  font-size:12px; letter-spacing:2px;
  color:rgba(201,168,76,0.4);
  text-align:right; padding-right:0;
  position:relative;
}
.degu-num::after {
  content:'';
  position:absolute; right:-6px; top:44px;
  width:10px; height:10px;
  background:var(--black);
  border:1px solid var(--gold);
  border-radius:50%;
  transform:translateX(0);
}
.degu-connector {
  flex-shrink:0;
  width:24px; height:1px;
  border-bottom:1px dashed rgba(201,168,76,0.2);
  margin-top:49px;
  align-self:flex-start;
}
.degu-card {
  flex:1; min-width:0;
  background:var(--black-mid);
  border:1px solid rgba(201,168,76,0.1);
  border-left:2px solid var(--gold-dark);
  padding:28px 32px;
  margin:12px 0;
  transition:border-color 0.4s, transform 0.4s;
  position:relative; overflow:hidden;
}
.degu-card::before {
  content:'';
  position:absolute; top:0; left:0;
  width:0; height:100%;
  background:var(--gold-faint);
  transition:width 0.5s ease;
}
.degu-card:hover::before { width:100%; }
.degu-card:hover {
  border-color:rgba(201,168,76,0.4);
  transform:translateX(6px);
}
.degu-course {
  font-size:9px; letter-spacing:4px;
  text-transform:uppercase; color:var(--gold);
  margin-bottom:8px;
}
.degu-name {
  font-family:'Cormorant Garamond', serif;
  font-size:26px; color:var(--white-pure);
  margin-bottom:10px; font-weight:400;
}
.degu-desc {
  font-size:13px; color:var(--gray); line-height:1.8;
  margin-bottom:16px;
}
.degu-pairing {
  font-size:11px; letter-spacing:2px;
  color:var(--gold-dark); text-transform:uppercase;
  display:flex; align-items:center; gap:8px;
}
.dp-icon { font-size:8px; }

.degu-footer {
  text-align:center; margin-top:80px;
  display:flex; flex-direction:column;
  align-items:center; gap:32px;
}
.degu-price-box {
  border:1px solid rgba(201,168,76,0.2);
  padding:32px 60px; text-align:center;
  background:var(--black-mid);
}
.dpb-label {
  font-size:10px; letter-spacing:3px;
  text-transform:uppercase; color:var(--gray);
  margin-bottom:12px;
}
.dpb-price {
  font-family:'Cormorant Garamond', serif;
  font-size:56px; font-weight:300; color:var(--gold);
  line-height:1;
}
.dpb-price span { font-size:18px; color:var(--gray); }
.dpb-note {
  font-size:11px; color:var(--gray);
  letter-spacing:1px; margin-top:12px;
}

/* ══════════════════════════════════════
   VINOS
══════════════════════════════════════ */
.vinos-section {
  background:var(--black-soft);
  padding:120px 60px;
}
.vinos-inner {
  display:grid; grid-template-columns:1fr 1fr;
  gap:100px; align-items:center;
}
.vinos-text {
  font-size:15px; color:var(--gray);
  line-height:1.9; margin:28px 0 36px;
}
.vinos-list { margin-bottom:40px; }
.vino-item {
  display:flex; justify-content:space-between;
  align-items:center; padding:14px 0;
  border-bottom:1px solid rgba(201,168,76,0.1);
  transition:all 0.3s; position:relative; overflow:hidden;
}
.vino-item::before {
  content:'';
  position:absolute; left:0; top:0;
  width:0; height:100%;
  background:var(--gold-faint);
  transition:width 0.4s ease;
}
.vino-item:hover::before { width:100%; }
.vino-item:hover { border-color:rgba(201,168,76,0.35); padding-left:8px; }
.vi-region {
  font-size:9px; letter-spacing:3px;
  text-transform:uppercase; color:var(--gold);
  position:relative;
}
.vi-name {
  font-family:'Cormorant Garamond', serif;
  font-size:18px; color:var(--white-pure);
  position:relative;
}
.vinos-img-wrap { position:relative; }
.vinos-img {
  width:100%; aspect-ratio:3/4;
  object-fit:cover;
  filter:sepia(15%) brightness(0.85);
}
.vinos-img-border {
  position:absolute; top:-16px; right:-16px;
  left:16px; bottom:16px;
  border:1px solid var(--gold-dark);
  pointer-events:none; z-index:-1;
}

/* ══════════════════════════════════════
   [NUEVO] EN LA PRENSA
══════════════════════════════════════ */
.prensa-section {
  background:var(--black-mid);
  padding:120px 60px;
  overflow:hidden;
}
.prensa-header { margin-bottom:64px; }

.prensa-grid {
  display:grid; grid-template-columns:1fr 1.3fr 1fr;
  gap:2px; margin-bottom:64px;
}
.prensa-card {
  background:var(--black-soft);
  border:1px solid rgba(201,168,76,0.08);
  padding:44px 40px;
  transition:border-color 0.4s, transform 0.4s;
  position:relative; overflow:hidden;
}
.prensa-card::after {
  content:'';
  position:absolute; bottom:0; left:0;
  width:0; height:2px;
  background:linear-gradient(to right, var(--gold-dark), var(--gold-light));
  transition:width 0.5s ease;
}
.prensa-card:hover::after { width:100%; }
.prensa-card:hover {
  border-color:rgba(201,168,76,0.3);
  transform:translateY(-8px);
}
.pc-featured {
  background:var(--black-mid);
  border-color:rgba(201,168,76,0.25);
  transform:translateY(-16px);
}
.pc-featured:hover { transform:translateY(-24px); }
.pc-award-badge {
  display:inline-block; background:var(--gold);
  color:var(--black); font-size:9px; letter-spacing:2px;
  text-transform:uppercase; padding:6px 16px;
  font-weight:500; margin-bottom:24px;
}
.pc-logo {
  font-family:'Cormorant Garamond', serif;
  font-size:22px; font-style:italic;
  color:var(--gold-light); margin-bottom:20px;
}
.pc-quote {
  font-size:14px; color:var(--gray); line-height:1.9;
  font-style:italic; margin-bottom:24px;
  font-family:'Cormorant Garamond', serif; font-size:16px;
}
.pc-meta {
  font-size:10px; letter-spacing:2px;
  text-transform:uppercase; color:var(--gold-dark);
}

/* Media logos */
.prensa-logos {
  display:flex; align-items:center;
  justify-content:center; gap:16px; flex-wrap:wrap;
  padding:32px; border:1px solid rgba(201,168,76,0.08);
}
.pl-item {
  font-family:'Cormorant Garamond', serif;
  font-size:18px; font-style:italic;
  color:rgba(201,168,76,0.3);
  transition:color 0.3s; cursor:default; letter-spacing:1px;
}
.pl-item:hover { color:var(--gold); }
.pl-sep { color:rgba(201,168,76,0.15); font-size:14px; }

/* ══════════════════════════════════════
   UBICACIÓN
══════════════════════════════════════ */
.ubicacion-section {
  background:var(--black-soft);
  padding:120px 60px;
}
.ubicacion-inner {
  display:grid; grid-template-columns:1fr 1fr;
  gap:100px; align-items:center;
}
.ubicacion-details { margin:36px 0; }
.ud-item {
  display:flex; gap:20px; margin-bottom:28px;
  align-items:flex-start;
}
.ud-icon {
  width:44px; height:44px;
  border:1px solid var(--gold-dark);
  display:flex; align-items:center; justify-content:center;
  color:var(--gold); font-size:16px; flex-shrink:0;
}
.ud-label {
  font-size:9px; letter-spacing:2px;
  text-transform:uppercase; color:var(--gray); margin-bottom:6px;
}
.ud-value {
  font-family:'Cormorant Garamond', serif;
  font-size:18px; color:var(--white-pure); line-height:1.6;
}

/* Map placeholder */
.ubicacion-map {
  height:480px; position:relative;
  background:var(--black-mid);
  border:1px solid rgba(201,168,76,0.15);
  display:flex; align-items:center; justify-content:center;
  overflow:hidden;
}
.ubicacion-map::before {
  content:'';
  position:absolute; inset:0;
  background:
    linear-gradient(rgba(201,168,76,0.03) 1px, transparent 1px),
    linear-gradient(90deg, rgba(201,168,76,0.03) 1px, transparent 1px);
  background-size:40px 40px;
}
.map-placeholder { text-align:center; position:relative; z-index:2; }
.map-pin { position:relative; width:60px; height:60px; margin:0 auto 20px; }
.mp-dot {
  position:absolute; top:50%; left:50%;
  transform:translate(-50%,-50%);
  width:12px; height:12px;
  background:var(--gold); border-radius:50%;
}
.mp-ring {
  position:absolute; top:50%; left:50%;
  transform:translate(-50%,-50%);
  width:40px; height:40px;
  border:1px solid rgba(201,168,76,0.5);
  border-radius:50%;
  animation:mapPulse 2s ease infinite;
}
.mp-ring--2 {
  width:60px; height:60px;
  animation-delay:0.5s;
  border-color:rgba(201,168,76,0.25);
}
@keyframes mapPulse {
  0%,100% { transform:translate(-50%,-50%) scale(1); opacity:0.8; }
  50%     { transform:translate(-50%,-50%) scale(1.2); opacity:0.3; }
}
.map-label {
  font-family:'Cormorant Garamond', serif;
  font-size:24px; color:var(--gold);
}
.map-sublabel { font-size:12px; color:var(--gray); margin-top:6px; letter-spacing:1px; }

/* ══════════════════════════════════════
   RESERVACIONES
══════════════════════════════════════ */
#reservaciones {
  background:var(--black);
  display:grid; grid-template-columns:1fr 1fr;
  gap:100px; align-items:start;
  position:relative; overflow:hidden;
}
#reservaciones::after {
  content:''; position:absolute;
  top:-120px; right:-120px;
  width:500px; height:500px;
  border:1px solid rgba(201,168,76,0.06);
  border-radius:50%; pointer-events:none;
}
.reserva-info p {
  font-size:15px; color:var(--gray);
  line-height:1.9; margin-bottom:36px;
}
.contact-detail {
  display:flex; align-items:flex-start;
  gap:20px; margin-bottom:24px;
}
.contact-icon {
  width:44px; height:44px;
  border:1px solid var(--gold-dark);
  display:flex; align-items:center; justify-content:center;
  flex-shrink:0; color:var(--gold); font-size:15px;
}
.contact-label {
  font-size:9px; letter-spacing:2px;
  text-transform:uppercase; color:var(--gray); margin-bottom:4px;
}
.contact-value {
  font-family:'Cormorant Garamond', serif;
  font-size:19px; color:var(--white-pure);
}
.reserva-social { margin-top:40px; }
.rs-label {
  font-size:9px; letter-spacing:3px;
  text-transform:uppercase; color:var(--gray); margin-bottom:16px;
}
.rs-links { display:flex; gap:12px; }
.rs-link {
  font-size:10px; letter-spacing:2px;
  text-transform:uppercase; color:var(--gold);
  text-decoration:none;
  border:1px solid rgba(201,168,76,0.3);
  padding:8px 16px; transition:all 0.3s;
}
.rs-link:hover { background:var(--gold); color:var(--black); }

/* Form */
.reserva-form { position:relative; }
.form-group   { margin-bottom:22px; position:relative; }
.form-label {
  font-size:9px; letter-spacing:3px;
  text-transform:uppercase; color:var(--gray);
  display:block; margin-bottom:10px;
}
.form-control {
  width:100%; background:transparent;
  border:none; border-bottom:1px solid rgba(201,168,76,0.2);
  padding:12px 0;
  font-family:'Montserrat', sans-serif;
  font-size:14px; color:var(--white);
  outline:none; transition:border-color 0.3s;
  appearance:none; -webkit-appearance:none;
}
.form-control::placeholder { color:rgba(136,136,128,0.35); }
.form-control:focus        { border-bottom-color:var(--gold); }
.form-control option       { background:var(--black); }
.form-textarea { resize:none; min-height:80px; }

/* Animated underline on focus */
.form-group::after {
  content:'';
  position:absolute; bottom:0; left:0;
  width:0; height:1px;
  background:var(--gold);
  transition:width 0.4s ease;
}
.form-group:focus-within::after { width:100%; }

.form-row { display:grid; grid-template-columns:1fr 1fr; gap:24px; }

.form-submit {
  width:100%; background:var(--gold);
  color:var(--black); border:none;
  padding:18px;
  font-family:'Montserrat', sans-serif;
  font-size:11px; letter-spacing:4px;
  text-transform:uppercase; font-weight:500;
  cursor:pointer; transition:all 0.4s ease;
  margin-top:10px; position:relative; overflow:hidden;
}
.form-submit::before {
  content:''; position:absolute; inset:0;
  background:var(--gold-light);
  transform:scaleX(0); transform-origin:left;
  transition:transform 0.4s ease;
}
.form-submit:hover::before { transform:scaleX(1); }
.form-submit:hover         { letter-spacing:6px; }
.form-submit span          { position:relative; z-index:1; }

/* Success */
.success-msg {
  display:none; padding:48px 40px;
  border:1px solid var(--gold-dark);
  text-align:center; margin-top:0;
}
.success-icon {
  width:60px; height:60px;
  border:1px solid var(--gold);
  border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  font-size:24px; color:var(--gold);
  margin:0 auto 24px;
}
.success-title {
  font-family:'Cormorant Garamond', serif;
  font-size:36px; color:var(--gold);
  font-style:italic; margin-bottom:12px;
}
.success-sub { font-size:14px; color:var(--gray); line-height:1.8; margin-bottom:32px; }
.success-back { display:inline-block; }

/* ══════════════════════════════════════
   FOOTER
══════════════════════════════════════ */
footer {
  background:var(--black);
  padding:80px 60px 40px;
  border-top:1px solid rgba(201,168,76,0.08);
}
.footer-top {
  display:grid; grid-template-columns:2fr 1fr 1fr 1fr;
  gap:60px; margin-bottom:60px;
  padding-bottom:60px;
  border-bottom:1px solid rgba(255,255,255,0.04);
}
.footer-brand-name {
  font-family:'Cormorant Garamond', serif;
  font-size:40px; font-weight:300; color:var(--gold); margin-bottom:4px;
}
.footer-brand-tagline {
  font-size:10px; letter-spacing:4px;
  text-transform:uppercase; color:var(--gray); margin-bottom:24px;
}
.footer-brand-text {
  font-size:13px; color:var(--gray);
  line-height:1.9; max-width:280px;
}
.footer-social { display:flex; gap:10px; margin-top:24px; }
.fs-link {
  width:36px; height:36px;
  border:1px solid rgba(201,168,76,0.2);
  display:flex; align-items:center; justify-content:center;
  font-size:10px; letter-spacing:1px;
  color:var(--gray); text-decoration:none;
  transition:all 0.3s;
}
.fs-link:hover { border-color:var(--gold); color:var(--gold); }

.footer-col-title {
  font-size:9px; letter-spacing:3px;
  text-transform:uppercase; color:var(--gold); margin-bottom:24px;
}
.footer-col ul { list-style:none; }
.footer-col ul li { margin-bottom:10px; }
.footer-col ul li a {
  font-size:13px; color:var(--gray);
  text-decoration:none; transition:color 0.3s; letter-spacing:0.5px;
}
.footer-col ul li a:hover { color:var(--gold); }
.footer-col p { font-size:13px; color:var(--gray); line-height:1.9; }

.footer-bottom {
  display:flex; justify-content:space-between; align-items:center;
}
.footer-copy { font-size:11px; color:rgba(136,136,128,0.4); letter-spacing:1px; }
.footer-gold-line { width:60px; height:1px; background:linear-gradient(to right, var(--gold-dark), transparent); }
.footer-gold-line--right { transform:scaleX(-1); }

/* ══════════════════════════════════════
   REVEAL ANIMATIONS
══════════════════════════════════════ */
.reveal {
  opacity:0; transform:translateY(44px);
  transition:opacity 0.9s ease, transform 0.9s ease;
}
.reveal-left {
  opacity:0; transform:translateX(-44px);
  transition:opacity 0.9s ease, transform 0.9s ease;
}
.reveal-right {
  opacity:0; transform:translateX(44px);
  transition:opacity 0.9s ease, transform 0.9s ease;
}
.reveal.visible, .reveal.revealed,
.reveal-left.visible, .reveal-left.revealed,
.reveal-right.visible, .reveal-right.revealed {
  opacity:1; transform:translate(0,0);
}
.delay-1 { transition-delay:0.15s; }
.delay-2 { transition-delay:0.30s; }
.delay-3 { transition-delay:0.45s; }
.delay-4 { transition-delay:0.60s; }
.delay-5 { transition-delay:0.75s; }

/* ══════════════════════════════════════
   PROCESO DE COCINA
══════════════════════════════════════ */
.proceso-section {
  background:var(--black-soft);
  padding:120px 60px;
}
.proceso-header { margin-bottom:80px; }
.proceso-subtitle {
  font-size:14px; color:var(--gray);
  max-width:540px; margin:20px 0 0;
  line-height:1.8;
}

.proceso-steps {
  display:grid; grid-template-columns:repeat(4,1fr);
  gap:0; position:relative;
}
.proceso-step {
  padding:0 40px 0 0;
  position:relative;
}
.ps-num {
  font-family:'Cormorant Garamond', serif;
  font-size:72px; font-weight:300;
  color:rgba(201,168,76,0.08);
  line-height:1; margin-bottom:-20px;
}
.ps-icon-wrap {
  display:flex; align-items:center; gap:0;
  margin-bottom:28px;
}
.ps-icon {
  width:56px; height:56px;
  background:var(--black-mid);
  border:1px solid rgba(201,168,76,0.2);
  display:flex; align-items:center; justify-content:center;
  font-size:24px; flex-shrink:0;
  transition:border-color 0.3s, background 0.3s;
}
.proceso-step:hover .ps-icon {
  border-color:var(--gold);
  background:rgba(201,168,76,0.08);
}
.ps-line {
  flex:1; height:1px;
  background:linear-gradient(to right, rgba(201,168,76,0.3), transparent);
}
.ps-line.last { background:transparent; }

.ps-title {
  font-family:'Cormorant Garamond', serif;
  font-size:26px; color:var(--white-pure);
  margin-bottom:12px; font-weight:400;
}
.ps-text {
  font-size:13px; color:var(--gray);
  line-height:1.8; margin-bottom:16px;
}
.ps-tag {
  font-size:9px; letter-spacing:3px;
  text-transform:uppercase; color:var(--gold-dark);
  border-left:2px solid var(--gold-dark);
  padding-left:10px;
}

/* ══════════════════════════════════════
   EL EQUIPO
══════════════════════════════════════ */
.equipo-section {
  background:var(--black);
  padding:120px 60px;
}
.equipo-header { margin-bottom:64px; }
.equipo-subtitle {
  font-size:14px; color:var(--gray);
  max-width:560px; margin:20px 0 0; line-height:1.8;
}

.equipo-grid {
  display:grid;
  grid-template-columns:1.4fr 1fr 1fr 1fr 1fr;
  gap:2px;
}
.equipo-card {
  position:relative; overflow:hidden;
  background:var(--black-mid);
  cursor:pointer;
}
.equipo-card--featured { grid-row:span 1; }

.ec-img-wrap {
  position:relative; overflow:hidden;
  aspect-ratio:3/4;
}
.equipo-card--featured .ec-img-wrap { aspect-ratio:3/5; }

.ec-img-wrap img {
  width:100%; height:100%; object-fit:cover;
  object-position:top;
  filter:grayscale(30%) brightness(0.75);
  transition:transform 0.7s ease, filter 0.5s ease;
}
.equipo-card:hover .ec-img-wrap img {
  transform:scale(1.06);
  filter:grayscale(0%) brightness(0.6);
}
.ec-overlay {
  position:absolute; inset:0;
  background:linear-gradient(to top, rgba(10,10,10,0.95) 0%, transparent 60%);
}
.ec-info {
  position:absolute; bottom:0; left:0; right:0;
  padding:24px;
}
.ec-role {
  font-size:9px; letter-spacing:3px;
  text-transform:uppercase; color:var(--gold);
  margin-bottom:6px;
}
.ec-name {
  font-family:'Cormorant Garamond', serif;
  font-size:22px; color:var(--white-pure);
  margin-bottom:8px;
}
.equipo-card--featured .ec-name { font-size:30px; }
.ec-bio {
  font-size:12px; color:var(--gray);
  line-height:1.7;
  max-height:0; overflow:hidden;
  transition:max-height 0.5s ease, opacity 0.4s ease;
  opacity:0;
}
.equipo-card:hover .ec-bio { max-height:80px; opacity:1; }
.ec-social { margin-top:12px; }
.ec-soc-link {
  font-size:9px; letter-spacing:2px;
  text-transform:uppercase; color:var(--gold);
  text-decoration:none;
  border:1px solid rgba(201,168,76,0.3);
  padding:4px 10px; transition:all 0.3s;
}
.ec-soc-link:hover { background:var(--gold); color:var(--black); }

/* ══════════════════════════════════════
   INSTAGRAM FEED
══════════════════════════════════════ */
.instagram-section {
  background:var(--black-soft);
  padding:120px 60px;
}
.ig-header {
  display:flex; align-items:flex-end;
  justify-content:space-between;
  margin-bottom:48px; gap:24px; flex-wrap:wrap;
}
.ig-at {
  font-size:11px; letter-spacing:3px;
  text-transform:uppercase; color:var(--gold);
  margin-bottom:12px;
}
.ig-subtitle {
  font-size:14px; color:var(--gray);
  margin-top:12px; line-height:1.7;
  max-width:460px;
}
.ig-follow-btn {
  display:inline-flex; align-items:center; gap:10px;
  background:transparent;
  border:1px solid rgba(201,168,76,0.35);
  color:var(--gold); text-decoration:none;
  padding:12px 28px;
  font-size:11px; letter-spacing:2px;
  text-transform:uppercase;
  transition:all 0.4s ease; white-space:nowrap;
  flex-shrink:0;
}
.ig-follow-btn:hover { background:var(--gold); color:var(--black); }

.ig-grid {
  display:grid;
  grid-template-columns:repeat(6,1fr);
  gap:3px;
}
.ig-item {
  position:relative; overflow:hidden;
  aspect-ratio:1; cursor:pointer;
  background:var(--black-mid);
}
.ig-item img {
  width:100%; height:100%; object-fit:cover;
  transition:transform 0.6s ease, filter 0.4s ease;
  filter:brightness(0.8) saturate(0.9);
}
.ig-item:hover img {
  transform:scale(1.08);
  filter:brightness(0.4) saturate(0.5);
}
.ig-item-overlay {
  position:absolute; inset:0;
  display:flex; flex-direction:column;
  align-items:center; justify-content:center;
  gap:8px; opacity:0;
  transition:opacity 0.4s ease;
}
.ig-item:hover .ig-item-overlay { opacity:1; }
.ig-likes, .ig-comments {
  font-size:12px; color:var(--white-pure);
  letter-spacing:1px; font-weight:500;
}

/* ══════════════════════════════════════
   TIENDA ONLINE
══════════════════════════════════════ */
.tienda-section {
  background:var(--black);
  padding:120px 60px;
  position:relative;
}
.tienda-header { margin-bottom:64px; }
.tienda-subtitle {
  font-size:14px; color:var(--gray);
  max-width:520px; margin:20px 0 0; line-height:1.8;
}

.tienda-grid {
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:2px;
}
.tienda-card {
  background:var(--black-mid);
  position:relative; overflow:hidden;
  transition:transform 0.4s ease;
  border:1px solid transparent;
}
.tienda-card:hover {
  border-color:rgba(201,168,76,0.15);
  transform:translateY(-6px);
}
.tc-badge {
  position:absolute; top:16px; left:16px;
  background:var(--gold); color:var(--black);
  font-size:8px; letter-spacing:2px;
  text-transform:uppercase; padding:5px 12px;
  font-weight:500; z-index:3;
}
.tc-img-wrap {
  position:relative; overflow:hidden;
  aspect-ratio:1;
}
.tc-img-wrap img {
  width:100%; height:100%; object-fit:cover;
  transition:transform 0.7s ease, filter 0.5s ease;
  filter:brightness(0.8) saturate(0.8);
}
.tienda-card:hover .tc-img-wrap img {
  transform:scale(1.06);
  filter:brightness(0.55);
}
.tc-img-overlay {
  position:absolute; inset:0;
  display:flex; align-items:center; justify-content:center;
  opacity:0; transition:opacity 0.4s ease;
}
.tienda-card:hover .tc-img-overlay { opacity:1; }
.tc-quick-add {
  background:var(--gold); color:var(--black);
  border:none; padding:12px 28px;
  font-family:'Montserrat', sans-serif;
  font-size:10px; letter-spacing:2px;
  text-transform:uppercase; cursor:pointer;
  font-weight:500; transition:all 0.3s;
}
.tc-quick-add:hover { background:var(--gold-light); }

.tc-info { padding:24px; }
.tc-category {
  font-size:9px; letter-spacing:3px;
  text-transform:uppercase; color:var(--gold);
  margin-bottom:8px;
}
.tc-name {
  font-family:'Cormorant Garamond', serif;
  font-size:22px; color:var(--white-pure);
  margin-bottom:10px; line-height:1.2;
}
.tc-desc {
  font-size:12px; color:var(--gray);
  line-height:1.7; margin-bottom:20px;
}
.tc-footer {
  display:flex; align-items:center;
  justify-content:space-between;
  border-top:1px solid rgba(201,168,76,0.1);
  padding-top:16px; gap:12px;
}
.tc-price {
  font-family:'Cormorant Garamond', serif;
  font-size:28px; color:var(--gold-light);
}
.tc-add-btn {
  background:transparent;
  border:1px solid rgba(201,168,76,0.35);
  color:var(--gold); padding:8px 16px;
  font-family:'Montserrat', sans-serif;
  font-size:9px; letter-spacing:2px;
  text-transform:uppercase; cursor:pointer;
  transition:all 0.3s; white-space:nowrap;
}
.tc-add-btn:hover { background:var(--gold); color:var(--black); }

/* Cart toast */
.cart-toast {
  position:fixed; bottom:40px; left:50%;
  transform:translateX(-50%) translateY(80px);
  background:var(--black-mid);
  border:1px solid var(--gold-dark);
  padding:16px 28px;
  display:flex; align-items:center; gap:16px;
  z-index:6000;
  opacity:0; pointer-events:none;
  transition:all 0.5s var(--ease-out-expo);
  white-space:nowrap;
}
.cart-toast.show {
  opacity:1; transform:translateX(-50%) translateY(0);
  pointer-events:all;
}
.ct-icon { color:var(--gold); font-size:16px; }
.ct-msg  { font-size:13px; color:var(--white); }
.ct-btn  {
  font-size:10px; letter-spacing:2px;
  text-transform:uppercase; color:var(--gold);
  text-decoration:none; border:1px solid rgba(201,168,76,0.3);
  padding:6px 14px; transition:all 0.3s;
}
.ct-btn:hover { background:var(--gold); color:var(--black); }

/* ══════════════════════════════════════
   NEWSLETTER / CLUB
══════════════════════════════════════ */
.newsletter-section {
  position:relative; overflow:hidden;
  padding:120px 60px;
  display:flex; align-items:center; justify-content:center;
}
.newsletter-bg {
  position:absolute; inset:0;
  background-image:url('https://images.unsplash.com/photo-1555396273-367ea4eb4db5?w=1600&q=80');
  background-size:cover; background-position:center;
  filter:brightness(0.15);
}
.newsletter-overlay {
  position:absolute; inset:0;
  background:rgba(10,10,10,0.75);
}
.newsletter-content {
  position:relative; z-index:2;
  text-align:center; max-width:680px; width:100%;
}
.nl-emblem {
  font-family:'Cormorant Garamond', serif;
  font-size:14px; letter-spacing:6px;
  color:var(--gold); width:60px; height:60px;
  border:1px solid var(--gold-dark);
  display:flex; align-items:center; justify-content:center;
  margin:0 auto 28px;
  animation:peRing 4s ease-in-out infinite alternate;
}
.nl-perks-title {
  font-size:10px; letter-spacing:4px;
  text-transform:uppercase; color:var(--gray);
  margin:28px 0 20px;
}
.nl-perks {
  display:grid; grid-template-columns:1fr 1fr;
  gap:12px; margin-bottom:40px; text-align:left;
}
.nl-perk {
  display:flex; align-items:center; gap:12px;
  font-size:13px; color:var(--gray);
  background:rgba(201,168,76,0.05);
  border:1px solid rgba(201,168,76,0.1);
  padding:12px 16px;
}
.nlp-icon { color:var(--gold); font-size:10px; flex-shrink:0; }
.nl-inputs {
  display:flex; gap:0; flex-wrap:wrap;
}
.nl-input {
  flex:1; min-width:180px;
  background:rgba(10,10,10,0.8);
  border:1px solid rgba(201,168,76,0.2);
  border-right:none;
  padding:16px 20px;
  font-family:'Montserrat', sans-serif;
  font-size:13px; color:var(--white);
  outline:none; transition:border-color 0.3s;
}
.nl-input:last-of-type { border-right:none; }
.nl-input::placeholder { color:rgba(136,136,128,0.4); }
.nl-input:focus { border-color:var(--gold); }
.nl-btn {
  background:var(--gold); color:var(--black);
  border:none; padding:16px 32px;
  font-family:'Montserrat', sans-serif;
  font-size:10px; letter-spacing:3px;
  text-transform:uppercase; font-weight:500;
  cursor:pointer; transition:all 0.4s ease;
  position:relative; overflow:hidden; white-space:nowrap;
}
.nl-btn::before {
  content:''; position:absolute; inset:0;
  background:var(--gold-light);
  transform:scaleX(0); transform-origin:left;
  transition:transform 0.4s ease;
}
.nl-btn:hover::before { transform:scaleX(1); }
.nl-btn span { position:relative; z-index:1; }
.nl-note {
  font-size:11px; color:rgba(136,136,128,0.5);
  letter-spacing:1px; margin-top:16px;
}
.nl-success {
  display:none; padding:40px;
  border:1px solid rgba(201,168,76,0.2);
  background:rgba(10,10,10,0.6);
}
.nls-icon {
  font-size:28px; color:var(--gold);
  margin-bottom:16px; display:block;
}
.nls-title {
  font-family:'Cormorant Garamond', serif;
  font-size:36px; color:var(--gold);
  font-style:italic; margin-bottom:10px;
}
.nls-sub { font-size:14px; color:var(--gray); line-height:1.8; }

/* ══════════════════════════════════════
   FAQ
══════════════════════════════════════ */
.faq-section {
  background:var(--black-soft);
  padding:120px 60px;
}
.faq-inner {
  display:grid; grid-template-columns:1fr 1.6fr;
  gap:100px; align-items:start;
}
.faq-header-col { position:sticky; top:120px; }
.faq-sub {
  font-size:14px; color:var(--gray);
  line-height:1.8; margin-top:20px;
}

.faq-list { display:flex; flex-direction:column; gap:0; }
.faq-item {
  border-bottom:1px solid rgba(201,168,76,0.12);
}
.faq-q {
  width:100%; background:none; border:none;
  display:flex; align-items:center;
  justify-content:space-between; gap:20px;
  padding:24px 0; cursor:pointer;
  color:var(--white); text-align:left;
  font-family:'Montserrat', sans-serif;
  font-size:14px; font-weight:400;
  transition:color 0.3s;
}
.faq-q:hover { color:var(--gold); }
.faq-q.open  { color:var(--gold); }
.faq-icon {
  font-size:22px; color:var(--gold);
  flex-shrink:0; transition:transform 0.4s ease;
  line-height:1; font-weight:300;
}
.faq-q.open .faq-icon { transform:rotate(45deg); }
.faq-a {
  max-height:0; overflow:hidden;
  transition:max-height 0.5s ease, padding 0.4s ease;
}
.faq-a.open { max-height:200px; }
.faq-a p {
  font-size:14px; color:var(--gray);
  line-height:1.9; padding-bottom:24px;
}

/* ══════════════════════════════════════════
   RESPONSIVE — NEW SECTIONS TABLET
══════════════════════════════════════════ */
@media (max-width:1100px) {
  section { padding:80px 40px; }
  nav, nav.scrolled { padding:20px 40px; }
  .chef-section { padding:80px 40px; }
  .vinos-section, .ubicacion-section, .galeria-section,
  .eventos-section, .testimonios-section,
  .degustacion-section, .prensa-section { padding:80px 40px; }
  .experience-strip { padding:80px 40px; }
  .strip { padding:28px 40px; gap:30px; }

  #familia        { grid-template-columns:1fr; gap:0; }
  .familia-media  { display:none; }

  #reservaciones  { grid-template-columns:1fr; gap:60px; }

  .chef-inner     { grid-template-columns:1fr; gap:60px; }
  .chef-img-wrap  { max-width:480px; }

  .vinos-inner    { grid-template-columns:1fr; gap:60px; }
  .vinos-img-wrap { max-width:480px; }

  .ubicacion-inner { grid-template-columns:1fr; gap:60px; }

  .menu-grid { grid-template-columns:1fr 1fr; }
  .menu-card.featured { grid-column:span 2; aspect-ratio:16/9; }

  .experience-strip { grid-template-columns:1fr 1fr; }
  .exp-divider { display:none; }

  .footer-top { grid-template-columns:1fr 1fr; gap:40px; }

  .testimonio-card { min-width:calc(50% - 12px); }

  .prensa-grid { grid-template-columns:1fr; }
  .pc-featured { transform:translateY(0); }

  .degu-timeline::before { left:20px; }
  .degu-item { gap:0; }
  .degu-num  { width:42px; font-size:11px; }

  .proceso-steps  { grid-template-columns:1fr 1fr; gap:40px; }
  .ps-line        { display:none; }
  .equipo-grid    { grid-template-columns:1fr 1fr 1fr; }
  .equipo-card--featured { grid-column:span 3; }
  .equipo-card--featured .ec-img-wrap { aspect-ratio:16/7; }
  .ig-grid        { grid-template-columns:repeat(3,1fr); }
  .tienda-grid    { grid-template-columns:1fr 1fr; }
  .faq-inner      { grid-template-columns:1fr; gap:48px; }
  .faq-header-col { position:static; }
  .nl-perks       { grid-template-columns:1fr; }
  .proceso-section, .equipo-section, .instagram-section,
  .tienda-section, .newsletter-section, .faq-section { padding:80px 40px; }
}

/* ══════════════════════════════════════
   RESPONSIVE — MOBILE 768
══════════════════════════════════════ */
@media (max-width:768px) {
  section { padding:64px 24px; }
  nav, nav.scrolled {
    padding: 0 20px;
    grid-template-columns: 1fr auto;
    height: 62px;
  }
  nav.scrolled { height: 54px; }
  .chef-section, .vinos-section, .ubicacion-section,
  .galeria-section, .testimonios-section, .eventos-section,
  .degustacion-section, .prensa-section { padding:64px 24px; }
  .experience-strip { padding:64px 24px; }
  .strip { padding:24px; gap:20px; }
  footer { padding:60px 24px 32px; }

  .nav-links  { display:none; }
  .hamburger  { display:flex; }

  .hero-title { font-size:clamp(52px,16vw,80px); }
  .hero-badge { display:none; }
  .hero-vert-text { display:none; }

  .menu-grid  { grid-template-columns:1fr; }
  .menu-card.featured { grid-column:span 1; aspect-ratio:4/5; }

  .galeria-grid { grid-template-columns:1fr 1fr; }
  .galeria-item.gi-large { grid-column:span 2; aspect-ratio:16/9; }

  .testimonio-card { min-width:100%; }

  .form-row { grid-template-columns:1fr; }

  .footer-top { grid-template-columns:1fr; }
  .footer-bottom { flex-direction:column; gap:16px; text-align:center; }

  .experience-strip { grid-template-columns:1fr; }
  .exp-divider { display:none; }

  .eventos-cards { flex-direction:column; }

  .strip-divider { display:none; }

  .parallax-quote { height:320px; }
  .parallax-quote-content blockquote { font-size:22px; }

  .whatsapp-btn { bottom:20px; right:20px; }
  .back-to-top  { bottom:86px; right:20px; }

  .degu-timeline::before { display:none; }
  .degu-num       { display:none; }
  .degu-connector { display:none; }
  .degu-card      { margin:6px 0; border-left:2px solid var(--gold-dark); }

  .prensa-grid { grid-template-columns:1fr; gap:24px; }
  .pc-featured { transform:none; }

  .degu-price-box { padding:32px 24px; }

  .prensa-logos { gap:12px; }

  .proceso-steps   { grid-template-columns:1fr; }
  .ps-line         { display:none; }
  .equipo-grid     { grid-template-columns:1fr 1fr; }
  .equipo-card--featured { grid-column:span 2; }
  .equipo-card--featured .ec-img-wrap { aspect-ratio:16/9; }
  .ig-grid         { grid-template-columns:repeat(3,1fr); }
  .tienda-grid     { grid-template-columns:1fr; }
  .nl-inputs       { flex-direction:column; }
  .nl-input        { border-right:1px solid rgba(201,168,76,0.2); }
  .nl-btn          { width:100%; }
  .nl-perks        { grid-template-columns:1fr; }
  .faq-inner       { grid-template-columns:1fr; gap:40px; }
  .faq-header-col  { position:static; }
  .proceso-section, .equipo-section, .instagram-section,
  .tienda-section, .newsletter-section, .faq-section { padding:64px 24px; }
  .ig-follow-btn   { width:100%; justify-content:center; }
  .ig-header       { flex-direction:column; align-items:flex-start; }
}

/* ══════════════════════════════════════
   COOKIE BANNER
══════════════════════════════════════ */
.cookie-banner {
  position:fixed; bottom:0; left:0; right:0;
  background:var(--black-mid);
  border-top:1px solid rgba(201,168,76,0.2);
  z-index:9999;
  transform:translateY(100%);
  transition:transform 0.6s var(--ease-out-expo);
  backdrop-filter:blur(12px);
}
.cookie-banner.show { transform:translateY(0); }
.cookie-inner {
  max-width:1400px; margin:0 auto;
  padding:18px 60px;
  display:flex; align-items:center;
  justify-content:space-between; gap:32px; flex-wrap:wrap;
}
.cookie-text {
  display:flex; align-items:center; gap:14px; flex:1; min-width:260px;
}
.cookie-icon { font-size:20px; flex-shrink:0; }
.cookie-text p { font-size:12px; color:var(--gray); line-height:1.6; }
.cookie-link { color:var(--gold); text-decoration:underline; }
.cookie-actions { display:flex; gap:12px; flex-shrink:0; }
.cookie-reject {
  background:transparent; border:1px solid rgba(201,168,76,0.25);
  color:var(--gray); padding:10px 22px;
  font-family:'Montserrat',sans-serif; font-size:10px;
  letter-spacing:2px; text-transform:uppercase;
  cursor:pointer; transition:all 0.3s;
}
.cookie-reject:hover { border-color:var(--gold); color:var(--gold); }
.cookie-accept {
  background:var(--gold); border:none; color:var(--black);
  padding:10px 22px;
  font-family:'Montserrat',sans-serif; font-size:10px;
  letter-spacing:2px; text-transform:uppercase; font-weight:500;
  cursor:pointer; transition:all 0.3s;
}
.cookie-accept:hover { background:var(--gold-light); }

/* ══════════════════════════════════════
   NAV — HORARIO EN TIEMPO REAL
══════════════════════════════════════ */
.nh-dot.open  { background:#4ade80; box-shadow:0 0 6px rgba(74,222,128,0.6); animation:pulse-green 2s infinite; }
.nh-dot.closed{ background:#f87171; box-shadow:0 0 6px rgba(248,113,113,0.5); }
.nh-text      { color:var(--gray); font-size:9px; }
@keyframes pulse-green {
  0%,100% { box-shadow:0 0 6px rgba(74,222,128,0.6); }
  50%      { box-shadow:0 0 12px rgba(74,222,128,0.9); }
}

/* Live hours badge on map */
.live-hours-badge {
  position:absolute; top:16px; left:16px; z-index:10;
  background:rgba(10,10,10,0.92);
  border:1px solid rgba(201,168,76,0.25);
  padding:10px 18px;
  display:flex; align-items:center; gap:10px;
  backdrop-filter:blur(8px);
}
.lhb-dot {
  width:8px; height:8px; border-radius:50%;
  flex-shrink:0;
}
.lhb-dot--open   { background:#4ade80; animation:pulse-green 2s infinite; }
.lhb-dot--closed { background:#f87171; }
.lhb-text { font-size:10px; letter-spacing:2px; text-transform:uppercase; color:var(--gray); }

/* Open status in ubicacion info */
.open-status {
  display:inline-flex; align-items:center; gap:8px;
  margin-top:10px; padding:8px 14px;
  border-radius:0;
  border-left:2px solid var(--gold-dark);
  font-family:'Montserrat', sans-serif;
  font-size:11px; letter-spacing:1.5px; text-transform:uppercase;
}
.open-status--open  { border-color:#4ade80; }
.open-status--closed{ border-color:#f87171; }
.os-dot {
  width:7px; height:7px; border-radius:50%; flex-shrink:0;
}
.open-status--open  .os-dot { background:#4ade80; animation:pulse-green 2s infinite; }
.open-status--closed .os-dot{ background:#f87171; }
.os-msg  { color:var(--white); font-weight:500; }
.os-next { color:var(--gray); }

/* Navbar active link */
.nav-links a.nav-active {
  color:var(--gold) !important;
}
.nav-links a.nav-active::after {
  width:100% !important;
}

/* Gold pulse keyframe for counters */
@keyframes goldPulse {
  0%   { color:var(--gold); text-shadow:none; }
  50%  { color:var(--gold-light); text-shadow:0 0 24px rgba(201,168,76,0.5); }
  100% { color:var(--gold); text-shadow:none; }
}

/* Menu card — 3D tilt will be applied inline via JS, just set transform-style */
.menu-card, .tienda-card {
  transform-style:preserve-3d;
  will-change:transform;
}

/* Google Maps container */
.ubicacion-map {
  position:relative; height:480px;
  border:1px solid rgba(201,168,76,0.15);
  overflow:hidden;
}
.gmap-iframe { display:block; }

/* ══════════════════════════════════════
   HERO TITLE — SPLIT WORD ANIMATION
══════════════════════════════════════ */
.ht-word {
  display:inline-block;
  opacity:0;
  transform:translateY(60px) skewY(3deg);
  transition:opacity 0.9s var(--ease-out-expo), transform 0.9s var(--ease-out-expo);
}
.ht-word.visible {
  opacity:1;
  transform:translateY(0) skewY(0deg);
}

/* ══════════════════════════════════════
   SECOND PARALLAX QUOTE
══════════════════════════════════════ */
.parallax-quote--2 .parallax-quote-bg {
  background-image: url('https://images.unsplash.com/photo-1510812431401-41d2bd2722f3?w=1600&q=80');
}

/* ══════════════════════════════════════
   MICRO-ANIMACIONES EXTRA
══════════════════════════════════════ */

/* Vino items — shimmer hover */
.vino-item {
  position:relative; overflow:hidden;
}
.vino-item::after {
  content:'';
  position:absolute; inset:0;
  background:linear-gradient(105deg, transparent 40%, rgba(201,168,76,0.06) 50%, transparent 60%);
  transform:translateX(-100%);
  transition:transform 0.7s ease;
}
.vino-item:hover::after { transform:translateX(100%); }

/* Chef stats — counter glow on hover */
.chef-stat:hover .cs-num {
  color:var(--gold-light);
  text-shadow:0 0 20px rgba(201,168,76,0.4);
  transition:color 0.3s, text-shadow 0.3s;
}

/* Experience strip — icon float */
.exp-item:hover .exp-icon {
  transform:translateY(-6px) scale(1.1);
  transition:transform 0.4s var(--ease-out-expo);
}
.exp-icon { transition:transform 0.4s ease; }

/* Section label — shimmer keyframe */
@keyframes labelShimmer {
  from { opacity:0; transform:translateX(-8px); }
  to   { opacity:1; transform:translateX(0); }
}

/* Nav horario pulse */
.nav-horario:hover { border-color:rgba(201,168,76,0.5); }

/* Evento cards lift */
.ev-card:hover {
  transform:translateY(-8px);
  border-color:rgba(201,168,76,0.35);
  box-shadow:0 24px 60px rgba(0,0,0,0.4);
  transition:all 0.4s var(--ease-out-expo);
}

/* Footer social links — expand on hover */
.fs-link {
  display:inline-flex; align-items:center; justify-content:center;
  width:38px; height:38px;
  border:1px solid rgba(201,168,76,0.25);
  color:var(--gray);
  font-size:10px; letter-spacing:1px;
  text-decoration:none;
  transition:all 0.35s ease;
  font-family:'Montserrat',sans-serif;
}
.fs-link:hover {
  background:var(--gold); color:var(--black);
  border-color:var(--gold);
  transform:translateY(-3px);
}

/* ══════════════════════════════════════
   PRINT STYLES — menú elegante
══════════════════════════════════════ */
@media print {
  /* Hide everything except menu content */
  .grain-overlay, .cookie-banner, #preloader, .cursor, .cursor-ring, .cursor-text,
  .popup-overlay, .whatsapp-btn, .scroll-progress, .back-to-top, .mobile-nav,
  nav, .hero, .strip, #familia, .parallax-quote, .chef-section,
  .experience-strip, .galeria-section, .testimonios-section,
  .eventos-section, .degustacion-section, .prensa-section,
  .vinos-section, .ubicacion-section, #reservaciones, footer,
  .proceso-section, .equipo-section, .instagram-section,
  .tienda-section, .newsletter-section, .faq-section,
  .menu-tabs, .menu-cta, .menu-card-btn { display:none !important; }

  body { background:#fff; color:#1a1a1a; font-family:Georgia,serif; }
  #menu { display:block !important; padding:20mm; }
  .menu-header { text-align:center; margin-bottom:12mm; }
  .menu-header::before {
    content:'Villa Bolonia — Ristorante Italiano dal 1978';
    display:block; font-size:10pt; letter-spacing:4px;
    text-transform:uppercase; color:#8B6914; margin-bottom:4mm;
  }
  .section-title { font-size:28pt; color:#1a1a1a; }
  .section-title em { color:#8B6914; }
  .section-label { display:none; }
  .menu-grid {
    display:grid !important;
    grid-template-columns:1fr 1fr !important;
    gap:6mm; break-inside:avoid;
  }
  .menu-card {
    border:0.5pt solid #C9A84C;
    padding:6mm; break-inside:avoid;
    background:#fff !important;
    page-break-inside:avoid;
  }
  .menu-card img { display:none; }
  .menu-card-inner { padding:0; }
  .menu-card-tag { color:#8B6914; font-size:7pt; }
  .menu-card-title { font-size:14pt; color:#1a1a1a; margin:2mm 0 1mm; }
  .menu-card-desc  { font-size:9pt; color:#555; line-height:1.5; }
  .menu-card-price { font-size:13pt; color:#8B6914; }
  .menu-card-price::before { background:#C9A84C; }
  .menu-card.featured { grid-column:span 2 !important; }

  @page {
    size:A4; margin:15mm;
    @top-center { content:'Villa Bolonia · Menú'; font-size:8pt; color:#888; }
    @bottom-center { content:counter(page); font-size:8pt; }
  }
}

/* ══════════════════════════════════════
   COOKIE + HORARIO RESPONSIVE
══════════════════════════════════════ */
@media (max-width:768px) {
  .cookie-inner { padding:16px 24px; flex-direction:column; gap:16px; }
  .cookie-actions { width:100%; }
  .cookie-accept, .cookie-reject { flex:1; text-align:center; }
  .nav-horario { display:none; }
}

/* ═══════════════════════════════════════════════════════════
   VILLA BOLONIA — UPGRADE v3.0
   Navbar centrado · Horario fix · Nuevas secciones · Animaciones
   ═══════════════════════════════════════════════════════════ */

/* ── FIX horario lhb classes ── */
.lhb-dot.open   { background:#4ade80 !important; animation:pulse-green 2s infinite; box-shadow:0 0 8px rgba(74,222,128,0.7); }
.lhb-dot.closed { background:#f87171 !important; box-shadow:0 0 6px rgba(248,113,113,0.5); }

/* ══════════════════════════════════════
   NUEVA SECCIÓN — AWARDS STRIP
══════════════════════════════════════ */
.awards-strip {
  background: linear-gradient(135deg, var(--black-mid) 0%, #0f0f0f 50%, var(--black-mid) 100%);
  border-top: 1px solid rgba(201,168,76,0.12);
  border-bottom: 1px solid rgba(201,168,76,0.12);
  padding: 48px 60px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0;
  overflow: hidden;
  position: relative;
}
.awards-strip::before {
  content: '';
  position: absolute; inset: 0;
  background: repeating-linear-gradient(
    90deg,
    transparent 0px,
    transparent 60px,
    rgba(201,168,76,0.015) 60px,
    rgba(201,168,76,0.015) 61px
  );
}
.award-item {
  flex: 1;
  text-align: center;
  padding: 0 32px;
  position: relative;
  z-index: 1;
  opacity: 0;
  transform: translateY(24px);
  transition: opacity 0.7s ease, transform 0.7s ease;
}
.award-item.visible { opacity: 1; transform: translateY(0); }
.award-item:nth-child(3) { transition-delay: 0.1s; }
.award-item:nth-child(5) { transition-delay: 0.2s; }
.award-item:nth-child(7) { transition-delay: 0.3s; }
.award-item:nth-child(9) { transition-delay: 0.4s; }
.award-divider {
  width: 1px; height: 60px;
  background: linear-gradient(to bottom, transparent, rgba(201,168,76,0.25), transparent);
  flex-shrink: 0;
}
.award-icon {
  font-size: 22px;
  margin-bottom: 12px;
  display: block;
  color: var(--gold);
}
.award-year {
  font-size: 9px; letter-spacing: 4px;
  text-transform: uppercase; color: var(--gold);
  display: block; margin-bottom: 6px;
}
.award-name {
  font-family: 'Cormorant Garamond', serif;
  font-size: 15px; font-weight: 400;
  color: var(--white); line-height: 1.4;
}
.award-pub {
  font-size: 9px; letter-spacing: 2px;
  text-transform: uppercase; color: var(--gray);
  margin-top: 6px; display: block;
}

/* ══════════════════════════════════════
   NUEVA SECCIÓN — TIMELINE HISTORIA
══════════════════════════════════════ */
.timeline-section {
  padding: 120px 0;
  background: var(--black);
  overflow: hidden;
  position: relative;
}
.timeline-section::before {
  content: '';
  position: absolute;
  top: 0; left: 50%; transform: translateX(-50%);
  width: 1px; height: 100%;
  background: linear-gradient(to bottom, transparent, rgba(201,168,76,0.25) 8%, rgba(201,168,76,0.25) 92%, transparent);
}
.timeline-header {
  text-align: center;
  margin-bottom: 80px;
  position: relative;
  z-index: 2;
}
.timeline-track {
  max-width: 900px;
  margin: 0 auto;
  padding: 0 40px;
  position: relative;
  z-index: 2;
}
.tl-item {
  display: grid;
  grid-template-columns: 1fr 60px 1fr;
  gap: 0 24px;
  align-items: center;
  margin-bottom: 64px;
  position: relative;
}
.tl-item:nth-child(even) .tl-content { grid-column: 3; }
.tl-item:nth-child(even) .tl-year-wrap { grid-column: 2; }
.tl-item:nth-child(even) .tl-empty { grid-column: 1; }
.tl-item:nth-child(odd) .tl-content { grid-column: 1; text-align: right; }
.tl-item:nth-child(odd) .tl-year-wrap { grid-column: 2; }
.tl-item:nth-child(odd) .tl-empty { grid-column: 3; }

.tl-year-wrap {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0;
  position: relative;
}
.tl-dot {
  width: 14px; height: 14px;
  border-radius: 50%;
  background: var(--gold);
  border: 2px solid var(--black);
  box-shadow: 0 0 0 5px rgba(201,168,76,0.25), 0 0 12px rgba(201,168,76,0.3);
  flex-shrink: 0;
  transition: box-shadow 0.4s ease;
}
.tl-item:hover .tl-dot {
  box-shadow: 0 0 0 8px rgba(201,168,76,0.15), 0 0 20px rgba(201,168,76,0.4);
}
.tl-year {
  font-family: 'Cormorant Garamond', serif;
  font-size: 13px; color: var(--gold);
  letter-spacing: 2px; margin-top: 6px;
  white-space: nowrap;
}
.tl-content {
  opacity: 0;
  transition: opacity 0.8s ease, transform 0.8s var(--ease-out-expo);
}
.tl-item:nth-child(odd) .tl-content  { transform: translateX(30px); }
.tl-item:nth-child(even) .tl-content { transform: translateX(-30px); }
.tl-content.visible, .tl-content.revealed { opacity: 1; transform: translateX(0); }
.tl-title {
  font-family: 'Cormorant Garamond', serif;
  font-size: 22px; color: var(--white);
  margin-bottom: 8px;
}
.tl-desc {
  font-size: 12px; color: var(--gray);
  line-height: 1.7; letter-spacing: 0.3px;
}
.tl-img {
  width: 100%; aspect-ratio: 4/3;
  object-fit: cover;
  margin-top: 12px;
  opacity: 0.7;
  transition: opacity 0.4s;
  filter: grayscale(30%);
}
.tl-item:hover .tl-img { opacity: 1; filter: grayscale(0); }

/* ══════════════════════════════════════
   NUEVA SECCIÓN — CHEF SIGNATURE DISH
   Full-bleed inmersiva con texto centrado
══════════════════════════════════════ */
.signature-section {
  position: relative;
  min-height: 80vh;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}
.signature-bg {
  position: absolute; inset: 0;
  background-image: url('https://images.unsplash.com/photo-1574894709920-11b28e7367e3?w=1800&q=90');
  background-size: cover;
  background-position: center;
  filter: brightness(0.2);
  transform: scale(1.05);
  transition: transform 8s ease;
}
.signature-section:hover .signature-bg { transform: scale(1); }
.signature-overlay {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at center, transparent 30%, rgba(10,10,10,0.85) 100%);
}
.signature-content {
  position: relative; z-index: 2;
  text-align: center;
  max-width: 700px;
  padding: 0 40px;
}
.signature-label {
  font-size: 9px; letter-spacing: 6px;
  text-transform: uppercase; color: var(--gold);
  display: block; margin-bottom: 24px;
}
.signature-title {
  font-family: 'Cormorant Garamond', serif;
  font-size: clamp(48px, 7vw, 90px);
  font-weight: 300; line-height: 1;
  color: var(--white);
  margin-bottom: 28px;
}
.signature-title em { color: var(--gold); font-style: italic; }
.signature-divider {
  width: 60px; height: 1px;
  background: var(--gold);
  margin: 0 auto 28px;
}
.signature-desc {
  font-size: 13px; color: rgba(245,240,232,0.75);
  line-height: 1.9; letter-spacing: 0.5px;
  margin-bottom: 40px;
}
.signature-price {
  font-family: 'Cormorant Garamond', serif;
  font-size: 36px; color: var(--gold);
  display: block; margin-bottom: 32px;
}
.signature-price span { font-size: 14px; color: var(--gray); }

/* ══════════════════════════════════════
   NUEVA SECCIÓN — VIDEO AMBIENT
   (placeholder elegante si no hay video)
══════════════════════════════════════ */
.ambient-section {
  position: relative;
  height: 480px;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
}
.ambient-bg {
  position: absolute; inset: 0;
  background-image: url('https://images.unsplash.com/photo-1424847651672-bf20a4b0982b?w=1800&q=85');
  background-size: cover;
  background-position: center;
  filter: brightness(0.15) saturate(0.6);
}
.ambient-overlay {
  position: absolute; inset: 0;
  background: linear-gradient(to bottom, var(--black) 0%, transparent 20%, transparent 80%, var(--black) 100%);
}
.ambient-content {
  position: relative; z-index: 2;
  text-align: center;
}
.ambient-ornament {
  font-family: 'Cormorant Garamond', serif;
  font-size: 120px; font-weight: 300;
  color: rgba(201,168,76,0.06);
  line-height: 1;
  user-select: none;
  display: block;
  letter-spacing: 20px;
}
.ambient-text {
  font-family: 'Cormorant Garamond', serif;
  font-size: clamp(28px, 4vw, 52px);
  font-weight: 300; font-style: italic;
  color: var(--white);
  position: absolute;
  top: 50%; left: 50%;
  transform: translate(-50%, -50%);
  white-space: nowrap;
}
.ambient-text em { color: var(--gold); }

/* ══════════════════════════════════════
   NUEVA SECCIÓN — MARQUEE / TICKER
══════════════════════════════════════ */
.marquee-strip {
  overflow: hidden;
  padding: 20px 0;
  background: var(--gold);
  position: relative;
}
.marquee-track {
  display: flex;
  gap: 0;
  animation: marqueeScroll 28s linear infinite;
  width: max-content;
}
.marquee-track:hover { animation-play-state: paused; }
.marquee-item {
  display: flex;
  align-items: center;
  gap: 24px;
  padding: 0 48px;
  white-space: nowrap;
  font-size: 11px;
  letter-spacing: 4px;
  text-transform: uppercase;
  color: var(--black);
  font-weight: 600;
}
.marquee-sep {
  color: rgba(10,10,10,0.4);
  font-size: 16px;
}
@keyframes marqueeScroll {
  from { transform: translateX(0); }
  to   { transform: translateX(-50%); }
}

/* ══════════════════════════════════════
   NUEVA SECCIÓN — RESERVA CTA STICKY (lateral)
══════════════════════════════════════ */
.sticky-cta {
  display: none !important;
}
.sticky-cta.visible { display: none !important; }
.sticky-cta-inner {
  background: var(--gold);
  color: var(--black);
  padding: 14px 20px;
  font-size: 9px;
  letter-spacing: 3px;
  text-transform: uppercase;
  font-weight: 600;
  cursor: pointer;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  border-left: none;
  text-decoration: none;
  transition: background 0.3s;
  border-radius: 4px 0 0 4px;
  box-shadow: -4px 0 20px rgba(0,0,0,0.4);
}
.sticky-cta-inner:hover { background: var(--gold-light); }
.sticky-cta-icon { font-size: 16px; }
.sticky-cta-text {
  writing-mode: vertical-rl;
  transform: rotate(180deg);
  font-size: 9px;
  letter-spacing: 3px;
}

/* ══════════════════════════════════════
   NUEVA SECCIÓN — NÚMEROS IMPACTO
   (versión re-diseñada con grandes cifras)
══════════════════════════════════════ */
.impact-section {
  padding: 120px 60px;
  background: var(--black-soft);
  position: relative;
  overflow: hidden;
}
.impact-section::before {
  content: '1978';
  position: absolute;
  font-family: 'Cormorant Garamond', serif;
  font-size: 280px; font-weight: 300;
  color: rgba(201,168,76,0.025);
  top: 50%; left: 50%;
  transform: translate(-50%, -50%);
  white-space: nowrap;
  pointer-events: none;
  user-select: none;
  letter-spacing: -10px;
}
.impact-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 2px;
  max-width: 1200px;
  margin: 0 auto;
  position: relative;
  z-index: 2;
}
.impact-item {
  text-align: center;
  padding: 60px 40px;
  border: 1px solid rgba(201,168,76,0.06);
  position: relative;
  overflow: hidden;
  transition: border-color 0.4s ease, background 0.4s ease;
}
.impact-item:hover {
  border-color: rgba(201,168,76,0.25);
  background: rgba(201,168,76,0.02);
}
.impact-item::before {
  content: '';
  position: absolute;
  bottom: 0; left: 0; right: 0;
  height: 2px;
  background: linear-gradient(to right, transparent, var(--gold), transparent);
  transform: scaleX(0);
  transition: transform 0.6s ease;
}
.impact-item:hover::before { transform: scaleX(1); }
.impact-num {
  font-family: 'Cormorant Garamond', serif;
  font-size: clamp(52px, 5vw, 80px);
  font-weight: 300;
  color: var(--gold);
  line-height: 1;
  display: block;
  margin-bottom: 12px;
}
.impact-unit {
  font-size: 20px;
  color: var(--gold-dark);
}
.impact-label {
  font-size: 10px;
  letter-spacing: 3px;
  text-transform: uppercase;
  color: var(--gray);
  display: block;
  margin-bottom: 8px;
}
.impact-sub {
  font-size: 11px;
  color: rgba(136,136,128,0.7);
  font-style: italic;
  font-family: 'Cormorant Garamond', serif;
}

/* ══════════════════════════════════════
   NUEVA SECCIÓN — MAPA DE ITALIA
   (origen de ingredientes)
══════════════════════════════════════ */
.origen-section {
  padding: 120px 60px;
  background: var(--black);
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 100px;
  align-items: center;
  max-width: 1400px;
  margin: 0 auto;
}
.origen-text {}
.origen-items {
  margin-top: 40px;
  display: flex;
  flex-direction: column;
  gap: 0;
}
.origen-item {
  display: grid;
  grid-template-columns: 50px 1fr;
  gap: 20px;
  align-items: start;
  padding: 20px 0;
  border-bottom: 1px solid rgba(201,168,76,0.08);
  cursor: default;
  transition: border-color 0.3s;
}
.origen-item:hover { border-color: rgba(201,168,76,0.25); }
.origen-num {
  font-family: 'Cormorant Garamond', serif;
  font-size: 13px; color: var(--gold);
  letter-spacing: 1px; padding-top: 2px;
}
.origen-region {
  font-family: 'Cormorant Garamond', serif;
  font-size: 20px; color: var(--white);
  margin-bottom: 4px;
}
.origen-product {
  font-size: 11px; color: var(--gray);
  letter-spacing: 1px;
}
.origen-visual {
  position: relative;
  height: 500px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.origen-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: grayscale(40%) brightness(0.7);
  transition: filter 0.6s ease;
}
.origen-img:hover { filter: grayscale(0) brightness(1); }
.origen-img-frame {
  position: absolute;
  inset: -12px;
  border: 1px solid rgba(201,168,76,0.15);
  pointer-events: none;
}
.origen-img-label {
  position: absolute;
  bottom: 20px; left: 20px;
  background: rgba(10,10,10,0.9);
  padding: 10px 18px;
  font-size: 9px;
  letter-spacing: 3px;
  text-transform: uppercase;
  color: var(--gold);
  border-left: 2px solid var(--gold);
}

/* ══════════════════════════════════════
   ANIMACIONES PREMIUM — PAGE TRANSITIONS
══════════════════════════════════════ */
/* Hover underline animado desde centro */
.nav-links a {
  position: relative;
}
.nav-links a::before {
  content: '';
  position: absolute;
  bottom: -4px; left: 50%;
  width: 0; height: 1px;
  background: var(--gold);
  transform: translateX(-50%);
  transition: width 0.35s var(--ease-out-expo);
}
.nav-links a:hover::before,
.nav-links a.nav-active::before {
  width: 100%;
}
.nav-links a::after { display: none !important; }

/* Magnetic button effect base */
.btn-primary, .btn-secondary, .nav-reserve-btn {
  position: relative;
  overflow: hidden;
}
.btn-primary::before {
  content: '';
  position: absolute;
  inset: 0;
  background: radial-gradient(circle at var(--mx,50%) var(--my,50%), rgba(255,255,255,0.12), transparent 70%);
  opacity: 0;
  transition: opacity 0.3s;
}
.btn-primary:hover::before { opacity: 1; }

/* Scroll-triggered number odometer effect */
@keyframes odometer-flip {
  0%   { transform: translateY(100%); opacity: 0; }
  100% { transform: translateY(0);    opacity: 1; }
}

/* Section entrance — más dramático */
.reveal {
  opacity: 0;
  transform: translateY(40px);
  transition: opacity 0.9s var(--ease-out-expo), transform 0.9s var(--ease-out-expo);
}
.reveal.visible, .reveal.revealed { opacity: 1; transform: translateY(0); }

.reveal-left {
  opacity: 0; transform: translateX(-60px);
  transition: opacity 1s var(--ease-out-expo), transform 1s var(--ease-out-expo);
}
.reveal-left.visible, .reveal-left.revealed { opacity: 1; transform: translateX(0); }

.reveal-right {
  opacity: 0; transform: translateX(60px);
  transition: opacity 1s var(--ease-out-expo), transform 1s var(--ease-out-expo);
}
.reveal-right.visible, .reveal-right.revealed { opacity: 1; transform: translateX(0); }

/* Stagger delays ampliados */
.delay-1 { transition-delay: 0.1s !important; }
.delay-2 { transition-delay: 0.22s !important; }
.delay-3 { transition-delay: 0.34s !important; }
.delay-4 { transition-delay: 0.46s !important; }
.delay-5 { transition-delay: 0.58s !important; }
.delay-6 { transition-delay: 0.70s !important; }

/* Cursor premium mejorado */
body:hover .cursor-ring { opacity: 0.6; }

/* Hover states para cursor */
a:hover ~ #cursor, button:hover ~ #cursor {
  width: 12px; height: 12px;
}

/* Image hover zoom */
.galeria-item img,
.chef-img,
.familia-img-main,
.vinos-img {
  transition: transform 0.8s var(--ease-out-expo), filter 0.6s ease;
}
.galeria-item:hover img { transform: scale(1.06); }
.chef-img:hover { transform: scale(1.03); }

/* Gold line accent animada */
@keyframes goldLineDraw {
  from { width: 0; }
  to   { width: 100%; }
}
.section-label.visible {
  animation: labelShimmer 0.6s ease forwards;
}

/* Smooth reveal para degu cards */
.degu-card {
  transition: border-color 0.4s ease, box-shadow 0.4s ease, transform 0.4s var(--ease-out-expo);
}
.degu-card:hover {
  transform: translateX(6px);
}

/* Prensa card shimmer */
.prensa-card {
  overflow: hidden;
  position: relative;
}
.prensa-card::after {
  content: '';
  position: absolute; top: 0; left: -100%;
  width: 60%; height: 100%;
  background: linear-gradient(105deg, transparent, rgba(201,168,76,0.04), transparent);
  transition: left 0.8s ease;
}
.prensa-card:hover::after { left: 150%; }

/* Testimonio card elevation */
.testimonio-card {
  transition: transform 0.4s var(--ease-out-expo), box-shadow 0.4s ease;
}
.testimonio-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 30px 80px rgba(0,0,0,0.5);
}

/* Parallax quote texto más cinematográfico */
.parallax-quote-content blockquote {
  transition: transform 0.6s ease, opacity 0.6s ease;
}
.parallax-quote-content.visible blockquote {
  transform: translateY(0);
  opacity: 1;
}

/* Page hero — zoom out on load */
.page-hero-bg {
  animation: heroZoomOut 8s ease forwards;
}
@keyframes heroZoomOut {
  from { transform: scale(1.08); }
  to   { transform: scale(1); }
}

/* ══════════════════════════════════════
   RESPONSIVE — Nuevas secciones
══════════════════════════════════════ */
/* ── Responsive nuevas secciones ── */
@media (max-width: 1280px) {
  nav { padding: 0 32px; grid-template-columns: 180px 1fr 180px; }
  .nav-links a { padding: 6px 8px; font-size: 8.5px; }
}
@media (max-width: 1100px) {
  .impact-grid { grid-template-columns: repeat(2, 1fr); }
  .origen-section { grid-template-columns: 1fr; gap: 60px; }
  .origen-visual { height: 300px; }
  nav { grid-template-columns: 1fr auto; }
  .nav-links { display: none; }
  .hamburger { display: flex !important; }
}
@media (max-width: 768px) {
  nav { padding: 0 20px; }
  .awards-strip { flex-direction: column; gap: 32px; padding: 48px 24px; }
  .award-divider { width: 60px; height: 1px; }
  .timeline-section::before { left: 20px; transform: none; }
  .tl-item { grid-template-columns: 40px 1fr; }
  .tl-item:nth-child(odd) .tl-content,
  .tl-item:nth-child(even) .tl-content { grid-column: 2; text-align: left; transform: translateX(-20px); }
  .tl-item:nth-child(odd) .tl-year-wrap,
  .tl-item:nth-child(even) .tl-year-wrap { grid-column: 1; }
  .tl-empty { display: none; }
  .impact-grid { grid-template-columns: repeat(2, 1fr); }
  .impact-section { padding: 80px 24px; }
  .sticky-cta { display: none; }
  .marquee-item { padding: 0 24px; }
  .origen-section { padding: 80px 24px; }
  .signature-title { font-size: 48px; }
}

/* ═══════════════════════════════════════════════════════════
   VILLA BOLONIA — v4.0 · Expansión Masiva de Contenido
   ═══════════════════════════════════════════════════════════ */

/* ══ MARIDAJE SECTION ══ */
.maridaje-section {
  padding:120px 60px;
  background:var(--black-soft);
  max-width:1400px;
  margin:0 auto;
}
.maridaje-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:80px;
  align-items:center;
  margin-top:60px;
}
.maridaje-img-wrap {
  position:relative;
}
.maridaje-img {
  width:100%;
  aspect-ratio:4/5;
  object-fit:cover;
  filter:brightness(0.85);
  transition:filter 0.6s ease;
}
.maridaje-img-wrap:hover .maridaje-img { filter:brightness(1); }
.maridaje-img-caption {
  position:absolute;
  bottom:0; left:0; right:0;
  padding:32px 24px 24px;
  background:linear-gradient(to top, rgba(10,10,10,0.95), transparent);
  font-family:'Cormorant Garamond',serif;
  font-size:13px;
  color:var(--gold);
  letter-spacing:2px;
}
.maridaje-pairs {
  display:flex;
  flex-direction:column;
  gap:0;
}
.maridaje-pair {
  display:grid;
  grid-template-columns:48px 1fr;
  gap:20px;
  align-items:start;
  padding:24px 0;
  border-bottom:1px solid rgba(201,168,76,0.08);
  cursor:default;
  transition:border-color 0.3s;
}
.maridaje-pair:hover { border-color:rgba(201,168,76,0.3); }
.mp-num {
  font-family:'Cormorant Garamond',serif;
  font-size:32px; color:rgba(201,168,76,0.2);
  line-height:1;
  transition:color 0.3s;
}
.maridaje-pair:hover .mp-num { color:var(--gold); }
.mp-plato {
  font-family:'Cormorant Garamond',serif;
  font-size:19px; color:var(--white);
  margin-bottom:4px;
}
.mp-vino {
  font-size:11px; color:var(--gold);
  letter-spacing:2px; text-transform:uppercase;
  margin-bottom:4px;
}
.mp-nota {
  font-size:11px; color:var(--gray);
  line-height:1.6;
}

/* ══ CALENDARIO DE EVENTOS ══ */
.calendario-section {
  padding:120px 60px;
  background:var(--black);
}
.calendario-grid {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:2px;
  margin-top:60px;
}
.cal-item {
  background:var(--black-mid);
  padding:40px 32px;
  position:relative;
  overflow:hidden;
  border:1px solid rgba(201,168,76,0.06);
  transition:border-color 0.4s, background 0.4s, transform 0.4s var(--ease-out-expo);
}
.cal-item:hover {
  border-color:rgba(201,168,76,0.25);
  background:#161616;
  transform:translateY(-4px);
}
.cal-item::before {
  content:'';
  position:absolute;
  top:0; left:0;
  width:3px; height:0;
  background:var(--gold);
  transition:height 0.5s var(--ease-out-expo);
}
.cal-item:hover::before { height:100%; }
.cal-date {
  font-family:'Cormorant Garamond',serif;
  font-size:48px; color:rgba(201,168,76,0.15);
  line-height:1;
  margin-bottom:16px;
  transition:color 0.3s;
}
.cal-item:hover .cal-date { color:rgba(201,168,76,0.35); }
.cal-month {
  font-size:9px; letter-spacing:4px;
  text-transform:uppercase; color:var(--gold);
  display:block; margin-bottom:16px;
}
.cal-title {
  font-family:'Cormorant Garamond',serif;
  font-size:22px; color:var(--white);
  margin-bottom:12px; line-height:1.3;
}
.cal-desc {
  font-size:12px; color:var(--gray);
  line-height:1.7;
}
.cal-tag {
  margin-top:20px;
  display:inline-block;
  font-size:8px; letter-spacing:3px;
  text-transform:uppercase;
  padding:5px 12px;
  border:1px solid rgba(201,168,76,0.25);
  color:var(--gold);
}
.cal-soldout {
  position:absolute;
  top:20px; right:20px;
  font-size:8px; letter-spacing:2px;
  text-transform:uppercase;
  padding:4px 10px;
  background:rgba(248,113,113,0.1);
  color:#f87171;
  border:1px solid rgba(248,113,113,0.25);
}

/* ══ MENÚ DE TEMPORADA ══ */
.temporada-section {
  padding:120px 60px;
  background:var(--black-soft);
}
.temporada-inner {
  max-width:900px;
  margin:0 auto;
}
.temporada-tabs {
  display:flex;
  gap:0;
  border-bottom:1px solid rgba(201,168,76,0.12);
  margin-bottom:60px;
}
.temp-tab {
  padding:14px 32px;
  font-size:10px; letter-spacing:3px;
  text-transform:uppercase;
  color:var(--gray);
  cursor:pointer;
  border:none;
  background:none;
  border-bottom:2px solid transparent;
  margin-bottom:-1px;
  transition:color 0.3s, border-color 0.3s;
}
.temp-tab.active, .temp-tab:hover {
  color:var(--gold);
  border-bottom-color:var(--gold);
}
.temp-panel { display:none; }
.temp-panel.active { display:block; }
.temp-intro {
  font-family:'Cormorant Garamond',serif;
  font-size:20px; font-style:italic;
  color:rgba(245,240,232,0.7);
  line-height:1.6;
  margin-bottom:48px;
  padding-left:24px;
  border-left:2px solid var(--gold);
}
.temp-platos {
  display:flex;
  flex-direction:column;
  gap:0;
}
.temp-plato {
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  padding:20px 0;
  border-bottom:1px solid rgba(201,168,76,0.07);
  gap:16px;
  transition:background 0.3s;
}
.temp-plato:hover { padding-left:8px; }
.tp-info {}
.tp-name {
  font-family:'Cormorant Garamond',serif;
  font-size:20px; color:var(--white);
}
.tp-desc {
  font-size:11px; color:var(--gray);
  margin-top:4px; line-height:1.5;
}
.tp-price {
  font-family:'Cormorant Garamond',serif;
  font-size:20px; color:var(--gold);
  white-space:nowrap; flex-shrink:0;
}
.tp-new {
  font-size:7px; letter-spacing:2px;
  text-transform:uppercase;
  background:var(--gold);
  color:var(--black);
  padding:2px 8px;
  margin-left:10px;
  vertical-align:middle;
}

/* ══ MOODBOARD FOTOGRAFÍA ══ */
.moodboard-section {
  padding:0;
  overflow:hidden;
}
.moodboard-grid {
  display:grid;
  grid-template-columns:2fr 1fr 1fr;
  grid-template-rows:auto auto;
  gap:3px;
}
.mb-item {
  overflow:hidden;
  position:relative;
  cursor:pointer;
}
.mb-item:first-child {
  grid-row:span 2;
}
.mb-img {
  width:100%;
  height:100%;
  min-height:260px;
  object-fit:cover;
  transition:transform 0.8s var(--ease-out-expo), filter 0.6s ease;
  filter:brightness(0.85) saturate(0.9);
}
.mb-item:hover .mb-img {
  transform:scale(1.06);
  filter:brightness(1) saturate(1);
}
.mb-overlay {
  position:absolute; inset:0;
  background:rgba(10,10,10,0);
  transition:background 0.4s ease;
  display:flex; align-items:center; justify-content:center;
}
.mb-item:hover .mb-overlay { background:rgba(10,10,10,0.25); }
.mb-label {
  font-family:'Cormorant Garamond',serif;
  font-size:16px; color:var(--white);
  letter-spacing:4px;
  opacity:0;
  transform:translateY(8px);
  transition:opacity 0.4s, transform 0.4s;
}
.mb-item:hover .mb-label { opacity:1; transform:translateY(0); }

/* ══ VIDEO TESTIMONIOS ══ */
.video-testimonios-section {
  padding:120px 60px;
  background:var(--black);
}
.vt-grid {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:24px;
  margin-top:60px;
}
.vt-card {
  background:var(--black-mid);
  border:1px solid rgba(201,168,76,0.08);
  padding:36px 28px;
  position:relative;
  transition:border-color 0.4s, transform 0.4s var(--ease-out-expo);
}
.vt-card:hover {
  border-color:rgba(201,168,76,0.25);
  transform:translateY(-6px);
}
.vt-quote-mark {
  font-family:'Cormorant Garamond',serif;
  font-size:80px; color:rgba(201,168,76,0.1);
  line-height:0.6;
  position:absolute; top:24px; left:24px;
}
.vt-text {
  font-family:'Cormorant Garamond',serif;
  font-size:18px; font-style:italic;
  color:rgba(245,240,232,0.85);
  line-height:1.6;
  margin-bottom:24px;
  padding-top:24px;
}
.vt-author {
  display:flex;
  align-items:center;
  gap:14px;
}
.vt-avatar {
  width:44px; height:44px;
  border-radius:50%;
  object-fit:cover;
  border:1px solid rgba(201,168,76,0.3);
}
.vt-name {
  font-size:12px; font-weight:600;
  color:var(--white); letter-spacing:1px;
}
.vt-detail {
  font-size:10px; color:var(--gold);
  letter-spacing:2px; text-transform:uppercase;
  margin-top:2px;
}
.vt-stars {
  position:absolute; top:24px; right:24px;
  color:var(--gold); font-size:11px; letter-spacing:2px;
}
.vt-platform {
  font-size:8px; letter-spacing:3px;
  text-transform:uppercase;
  color:rgba(136,136,128,0.5);
  margin-top:4px;
}

/* ══ CHEF COCINA EN VIVO ══ */
.cocina-section {
  padding:120px 0;
  background:var(--black-soft);
  overflow:hidden;
}
.cocina-inner {
  max-width:1400px;
  margin:0 auto;
  padding:0 60px;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:100px;
  align-items:center;
}
.cocina-gallery {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px;
}
.cocina-img {
  width:100%;
  aspect-ratio:1;
  object-fit:cover;
  filter:grayscale(20%) brightness(0.8);
  transition:all 0.6s var(--ease-out-expo);
}
.cocina-img:first-child {
  aspect-ratio:1/1.4;
  grid-row:span 2;
}
.cocina-img:hover {
  filter:grayscale(0) brightness(1);
  transform:scale(1.02);
  z-index:2;
  position:relative;
}
.cocina-text {}
.cocina-ritmo {
  margin-top:40px;
  display:flex;
  flex-direction:column;
  gap:0;
}
.cr-item {
  display:grid;
  grid-template-columns:70px 1fr;
  gap:0;
  padding:16px 0;
  border-bottom:1px solid rgba(201,168,76,0.07);
  align-items:center;
}
.cr-time {
  font-family:'Cormorant Garamond',serif;
  font-size:15px; color:var(--gold);
  letter-spacing:1px;
}
.cr-act {
  font-size:12px; color:var(--gray);
  letter-spacing:0.5px;
}
.cr-act strong { color:var(--white); font-weight:500; }

/* ══ POLÍTICA DE SOSTENIBILIDAD ══ */
.sostenibilidad-section {
  padding:120px 60px;
  background:var(--black);
}
.sost-grid {
  display:grid;
  grid-template-columns:1fr 1fr 1fr;
  gap:40px;
  margin-top:60px;
}
.sost-item {
  padding:40px 32px;
  border:1px solid rgba(201,168,76,0.06);
  position:relative;
  transition:border-color 0.4s, transform 0.4s;
}
.sost-item:hover {
  border-color:rgba(201,168,76,0.22);
  transform:translateY(-4px);
}
.sost-num {
  font-family:'Cormorant Garamond',serif;
  font-size:64px; color:rgba(201,168,76,0.06);
  line-height:1; position:absolute;
  top:16px; right:20px;
  pointer-events:none;
}
.sost-icon {
  font-size:28px; margin-bottom:20px; display:block;
}
.sost-title {
  font-family:'Cormorant Garamond',serif;
  font-size:22px; color:var(--white);
  margin-bottom:12px;
}
.sost-text {
  font-size:12px; color:var(--gray);
  line-height:1.7;
}

/* ══ COCKTAIL BAR ══ */
.cocktail-section {
  padding:120px 60px;
  background:var(--black-mid);
}
.cocktail-grid {
  display:grid;
  grid-template-columns:1fr 2fr;
  gap:80px;
  align-items:start;
  margin-top:60px;
}
.cocktail-img-col {
  position:sticky; top:100px;
}
.cocktail-img {
  width:100%;
  aspect-ratio:3/4;
  object-fit:cover;
  filter:brightness(0.75);
}
.cocktail-list {
  display:flex;
  flex-direction:column;
  gap:0;
}
.cocktail-item {
  display:grid;
  grid-template-columns:1fr auto;
  gap:24px;
  padding:28px 0;
  border-bottom:1px solid rgba(201,168,76,0.08);
  align-items:start;
  transition:padding-left 0.3s;
}
.cocktail-item:hover { padding-left:8px; }
.ci-name {
  font-family:'Cormorant Garamond',serif;
  font-size:22px; color:var(--white);
  margin-bottom:6px;
}
.ci-desc {
  font-size:11px; color:var(--gray);
  line-height:1.6;
}
.ci-tag {
  font-size:8px; letter-spacing:3px;
  text-transform:uppercase; color:var(--gold);
  margin-top:8px; display:block;
}
.ci-price {
  font-family:'Cormorant Garamond',serif;
  font-size:22px; color:var(--gold);
  white-space:nowrap;
}

/* ══ MAPA INTERACTIVO ZONA ══ */
.zona-section {
  padding:120px 60px;
  background:var(--black-soft);
}
.zona-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:60px;
  align-items:start;
  margin-top:60px;
}
.zona-list {
  display:flex;
  flex-direction:column;
  gap:0;
}
.zona-item {
  display:grid;
  grid-template-columns:48px 1fr;
  gap:20px;
  padding:20px 0;
  border-bottom:1px solid rgba(201,168,76,0.07);
  align-items:start;
}
.zona-icon { font-size:20px; padding-top:2px; }
.zona-name {
  font-size:13px; font-weight:500;
  color:var(--white); margin-bottom:4px;
}
.zona-dist {
  font-size:11px; color:var(--gold);
  letter-spacing:1px;
}
.zona-note {
  font-size:11px; color:var(--gray);
  margin-top:2px;
}
.zona-transport {
  margin-top:32px;
}
.zt-title {
  font-size:10px; letter-spacing:3px;
  text-transform:uppercase; color:var(--gray);
  margin-bottom:16px; display:block;
}
.zt-grid {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:12px;
}
.zt-item {
  padding:16px;
  border:1px solid rgba(201,168,76,0.1);
  text-align:center;
}
.zt-mode { font-size:20px; display:block; margin-bottom:6px; }
.zt-label { font-size:10px; color:var(--gray); letter-spacing:1px; }

/* ══ GALERÍA BEHIND-THE-SCENES ══ */
.behind-section {
  padding:120px 60px;
  background:var(--black);
}
.behind-scroll {
  display:flex;
  gap:20px;
  overflow-x:auto;
  scrollbar-width:none;
  padding-bottom:20px;
  margin-top:60px;
  cursor:grab;
}
.behind-scroll::-webkit-scrollbar { display:none; }
.behind-scroll.grabbing { cursor:grabbing; }
.behind-card {
  flex-shrink:0;
  width:300px;
}
.behind-img {
  width:100%;
  aspect-ratio:2/3;
  object-fit:cover;
  filter:grayscale(40%) brightness(0.75);
  transition:all 0.5s var(--ease-out-expo);
}
.behind-card:hover .behind-img {
  filter:grayscale(0) brightness(1);
}
.behind-caption {
  font-family:'Cormorant Garamond',serif;
  font-size:14px; font-style:italic;
  color:var(--gray); margin-top:12px;
  padding-left:12px;
  border-left:1px solid rgba(201,168,76,0.3);
}

/* ══ WIDGET RESERVACIÓN RÁPIDA ══ */
.quick-reserve-section {
  padding:80px 60px;
  background:var(--black-mid);
  border-top:1px solid rgba(201,168,76,0.1);
  border-bottom:1px solid rgba(201,168,76,0.1);
}
.qr-inner {
  max-width:900px; margin:0 auto;
  display:grid;
  grid-template-columns:1fr auto;
  align-items:center;
  gap:48px;
}
.qr-title {
  font-family:'Cormorant Garamond',serif;
  font-size:32px; color:var(--white);
}
.qr-title em { color:var(--gold); font-style:italic; }
.qr-form {
  display:flex;
  gap:12px;
  align-items:center;
  flex-wrap:wrap;
}
.qr-select, .qr-input {
  background:rgba(255,255,255,0.04);
  border:1px solid rgba(201,168,76,0.2);
  color:var(--white);
  padding:12px 16px;
  font-size:12px;
  font-family:'Montserrat',sans-serif;
  letter-spacing:1px;
  outline:none;
  transition:border-color 0.3s;
  min-width:140px;
}
.qr-select:focus, .qr-input:focus {
  border-color:rgba(201,168,76,0.6);
}
.qr-select option { background:var(--black); }

/* ══ PRENSA EXTENDIDA ══ */
.prensa-extendida-section {
  padding:120px 60px;
  background:var(--black-soft);
}
.prensa-logos-strip {
  display:flex;
  align-items:center;
  justify-content:center;
  gap:60px;
  flex-wrap:wrap;
  margin-top:60px;
  margin-bottom:80px;
  padding:40px;
  border:1px solid rgba(201,168,76,0.07);
}
.prensa-logo-item {
  font-family:'Cormorant Garamond',serif;
  font-size:18px; font-weight:300;
  letter-spacing:6px;
  text-transform:uppercase;
  color:rgba(136,136,128,0.4);
  transition:color 0.3s;
  cursor:default;
}
.prensa-logo-item:hover { color:var(--gold); }
.menciones-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:24px;
}
.mencion-item {
  padding:32px;
  border:1px solid rgba(201,168,76,0.07);
  position:relative;
  transition:border-color 0.4s, transform 0.4s;
}
.mencion-item:hover {
  border-color:rgba(201,168,76,0.22);
  transform:translateX(4px);
}
.mencion-fuente {
  font-size:9px; letter-spacing:4px;
  text-transform:uppercase; color:var(--gold);
  margin-bottom:16px; display:block;
}
.mencion-texto {
  font-family:'Cormorant Garamond',serif;
  font-size:18px; font-style:italic;
  color:rgba(245,240,232,0.8);
  line-height:1.6;
}
.mencion-fecha {
  font-size:10px; color:var(--gray);
  letter-spacing:2px; margin-top:16px;
  display:block;
}

/* ══ CHEF'S TIPS / BLOG MINI ══ */
.tips-section {
  padding:120px 60px;
  background:var(--black);
}
.tips-grid {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:40px;
  margin-top:60px;
}
.tip-card {
  cursor:default;
}
.tip-img {
  width:100%;
  aspect-ratio:16/9;
  object-fit:cover;
  filter:brightness(0.8);
  transition:filter 0.5s, transform 0.5s var(--ease-out-expo);
}
.tip-card:hover .tip-img {
  filter:brightness(1);
  transform:scale(1.02);
}
.tip-img-wrap { overflow:hidden; }
.tip-tag {
  font-size:8px; letter-spacing:4px;
  text-transform:uppercase; color:var(--gold);
  margin-top:20px; display:block;
}
.tip-title {
  font-family:'Cormorant Garamond',serif;
  font-size:22px; color:var(--white);
  margin:10px 0 10px;
  line-height:1.3;
}
.tip-excerpt {
  font-size:12px; color:var(--gray);
  line-height:1.7;
}
.tip-link {
  font-size:10px; letter-spacing:2px;
  text-transform:uppercase; color:var(--gold);
  text-decoration:none; margin-top:16px;
  display:inline-flex; align-items:center; gap:8px;
  transition:gap 0.3s;
}
.tip-link:hover { gap:14px; }

/* ══ RESPONSIVE — nuevas secciones ══ */
@media (max-width:1024px) {
  .maridaje-grid, .cocina-inner, .zona-grid { grid-template-columns:1fr; gap:48px; }
  .cocktail-grid { grid-template-columns:1fr; }
  .cocktail-img-col { position:static; }
  .calendario-grid { grid-template-columns:1fr 1fr; }
  .vt-grid { grid-template-columns:1fr 1fr; }
  .tips-grid { grid-template-columns:1fr 1fr; }
}
@media (max-width:768px) {
  .maridaje-section, .calendario-section, .temporada-section,
  .cocina-section, .sostenibilidad-section, .cocktail-section,
  .zona-section, .behind-section, .quick-reserve-section,
  .prensa-extendida-section, .tips-section,
  .video-testimonios-section { padding:80px 24px; }
  .calendario-grid { grid-template-columns:1fr; }
  .vt-grid { grid-template-columns:1fr; }
  .tips-grid { grid-template-columns:1fr; }
  .sost-grid { grid-template-columns:1fr; }
  .moodboard-grid { grid-template-columns:1fr 1fr; }
  .moodboard-grid .mb-item:first-child { grid-row:span 1; grid-column:span 2; }
  .qr-inner { grid-template-columns:1fr; }
  .qr-form { flex-direction:column; align-items:stretch; }
  .menciones-grid { grid-template-columns:1fr; }
  .prensa-logos-strip { gap:32px; }
  .cocina-inner { padding:0 24px; }
}

/* ═══════════════════════════════════════════════════════════
   VILLA BOLONIA — v5.0 · Expansión Final Premium
   ═══════════════════════════════════════════════════════════ */

/* ══ HERO PAGE — páginas internas full-bleed ══ */
.page-hero {
  position: relative;
  height: 60vh;
  min-height: 480px;
  display: flex;
  align-items: flex-end;
  overflow: hidden;
  padding: 0 60px 80px;
}
.page-hero-bg {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center;
  transform: scale(1.1);
  transition: transform 8s ease;
  filter: brightness(0.35);
}
.page-hero:hover .page-hero-bg { transform: scale(1.05); }
.page-hero-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(10,10,10,0.95) 0%, rgba(10,10,10,0.2) 60%, rgba(10,10,10,0.1) 100%);
}
.page-hero-content {
  position: relative;
  z-index: 2;
}
.page-hero-eyebrow {
  font-size: 9px;
  letter-spacing: 5px;
  text-transform: uppercase;
  color: var(--gold);
  margin-bottom: 16px;
  display: flex;
  align-items: center;
  gap: 16px;
}
.page-hero-eyebrow::before {
  content: '';
  display: block;
  width: 40px;
  height: 1px;
  background: var(--gold);
  opacity: 0.5;
}
.page-hero-title {
  font-family: 'Cormorant Garamond', serif;
  font-size: clamp(42px, 7vw, 96px);
  color: var(--white);
  line-height: 1;
  margin-bottom: 20px;
}
.page-hero-title em { color: var(--gold); font-style: italic; }
.page-hero-desc {
  font-size: 14px;
  color: rgba(245,240,232,0.6);
  max-width: 480px;
  line-height: 1.7;
}
.page-hero-badge {
  position: absolute;
  top: 40px;
  right: 60px;
  z-index: 2;
  text-align: center;
  border: 1px solid rgba(201,168,76,0.3);
  padding: 20px 24px;
  background: rgba(10,10,10,0.7);
  backdrop-filter: blur(8px);
}
.phb-num {
  font-family: 'Cormorant Garamond', serif;
  font-size: 36px;
  color: var(--gold);
  display: block;
  line-height: 1;
}
.phb-txt {
  font-size: 9px;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--gray);
  display: block;
  margin-top: 6px;
}

/* ══ NÚMERO GRANDE CENTRADO ══ */
.big-number-section {
  padding: 120px 60px;
  background: var(--black);
  text-align: center;
}
.bn-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0;
  max-width: 1100px;
  margin: 60px auto 0;
}
.bn-item {
  padding: 48px 24px;
  border-right: 1px solid rgba(201,168,76,0.08);
  position: relative;
}
.bn-item:last-child { border-right: none; }
.bn-item::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 0;
  height: 2px;
  background: var(--gold);
  transition: width 0.5s var(--ease-out-expo);
}
.bn-item:hover::after { width: 60%; }
.bn-num {
  font-family: 'Cormorant Garamond', serif;
  font-size: clamp(48px, 6vw, 80px);
  color: var(--gold);
  line-height: 1;
  display: block;
}
.bn-label {
  font-size: 10px;
  letter-spacing: 3px;
  text-transform: uppercase;
  color: var(--gray);
  margin-top: 12px;
  display: block;
}
.bn-sub {
  font-size: 12px;
  color: rgba(136,136,128,0.5);
  margin-top: 6px;
  display: block;
}

/* ══ GALERÍA MASONRY ══ */
.masonry-section {
  padding: 120px 60px;
  background: var(--black-soft);
}
.masonry-grid {
  columns: 3;
  column-gap: 12px;
  margin-top: 60px;
}
.masonry-item {
  break-inside: avoid;
  margin-bottom: 12px;
  overflow: hidden;
  position: relative;
  cursor: pointer;
}
.masonry-img {
  width: 100%;
  display: block;
  filter: brightness(0.8) saturate(0.85);
  transition: filter 0.6s ease, transform 0.8s var(--ease-out-expo);
}
.masonry-item:hover .masonry-img {
  filter: brightness(1) saturate(1);
  transform: scale(1.04);
}
.masonry-overlay {
  position: absolute;
  inset: 0;
  background: rgba(10,10,10,0);
  transition: background 0.4s;
  display: flex;
  align-items: flex-end;
  padding: 20px;
}
.masonry-item:hover .masonry-overlay { background: rgba(10,10,10,0.35); }
.masonry-label {
  font-family: 'Cormorant Garamond', serif;
  font-size: 14px;
  color: var(--white);
  letter-spacing: 3px;
  opacity: 0;
  transform: translateY(8px);
  transition: all 0.3s ease;
}
.masonry-item:hover .masonry-label { opacity: 1; transform: translateY(0); }

/* ══ STAFF DETAIL CARD ══ */
.staff-featured {
  padding: 120px 60px;
  background: var(--black);
}
.sf-grid {
  display: grid;
  grid-template-columns: 1fr 1.5fr;
  gap: 80px;
  align-items: start;
  max-width: 1200px;
  margin: 0 auto;
}
.sf-img-wrap {
  position: sticky;
  top: 100px;
}
.sf-img {
  width: 100%;
  aspect-ratio: 3/4;
  object-fit: cover;
  filter: brightness(0.85);
}
.sf-img-caption {
  margin-top: 20px;
  padding-top: 20px;
  border-top: 1px solid rgba(201,168,76,0.12);
}
.sf-credentials {
  display: flex;
  flex-direction: column;
  gap: 0;
  margin-top: 40px;
}
.sf-cred {
  display: grid;
  grid-template-columns: 60px 1fr;
  gap: 16px;
  padding: 20px 0;
  border-bottom: 1px solid rgba(201,168,76,0.07);
  align-items: start;
}
.sf-cred-year {
  font-family: 'Cormorant Garamond', serif;
  font-size: 14px;
  color: var(--gold);
  padding-top: 2px;
}
.sf-cred-text { font-size: 13px; color: rgba(245,240,232,0.75); line-height: 1.6; }
.sf-cred-place { font-size: 10px; color: var(--gray); letter-spacing: 2px; margin-top: 4px; }
.sf-philosophy {
  margin-top: 60px;
  padding: 48px;
  border: 1px solid rgba(201,168,76,0.1);
  background: var(--black-mid);
  position: relative;
}
.sf-philosophy::before {
  content: '"';
  position: absolute;
  top: -24px;
  left: 32px;
  font-family: 'Cormorant Garamond', serif;
  font-size: 100px;
  color: var(--gold);
  line-height: 1;
  opacity: 0.2;
}
.sf-philosophy-text {
  font-family: 'Cormorant Garamond', serif;
  font-size: 22px;
  font-style: italic;
  color: rgba(245,240,232,0.9);
  line-height: 1.6;
}
.sf-philosophy-attr {
  font-size: 10px;
  letter-spacing: 3px;
  text-transform: uppercase;
  color: var(--gold);
  margin-top: 20px;
}

/* ══ EXPERIENCIAS ESPECIALES ══ */
.exp-especiales {
  padding: 120px 60px;
  background: var(--black-mid);
}
.ee-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 2px;
  margin-top: 60px;
}
.ee-item {
  position: relative;
  overflow: hidden;
  cursor: pointer;
  min-height: 380px;
  display: flex;
  align-items: flex-end;
}
.ee-item:first-child { grid-row: span 2; min-height: 760px; }
.ee-bg {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center;
  transition: transform 0.8s var(--ease-out-expo), filter 0.5s;
  filter: brightness(0.5);
}
.ee-item:hover .ee-bg { transform: scale(1.06); filter: brightness(0.65); }
.ee-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(10,10,10,0.9) 0%, transparent 60%);
}
.ee-content {
  position: relative;
  z-index: 2;
  padding: 40px 36px;
  transform: translateY(8px);
  transition: transform 0.4s ease;
}
.ee-item:hover .ee-content { transform: translateY(0); }
.ee-tag {
  font-size: 8px;
  letter-spacing: 4px;
  text-transform: uppercase;
  color: var(--gold);
  margin-bottom: 10px;
  display: block;
}
.ee-title {
  font-family: 'Cormorant Garamond', serif;
  font-size: clamp(22px, 3vw, 34px);
  color: var(--white);
  line-height: 1.2;
  margin-bottom: 12px;
}
.ee-desc {
  font-size: 12px;
  color: rgba(245,240,232,0.65);
  line-height: 1.7;
  max-width: 380px;
  opacity: 0;
  transform: translateY(8px);
  transition: opacity 0.4s ease 0.1s, transform 0.4s ease 0.1s;
}
.ee-item:hover .ee-desc { opacity: 1; transform: translateY(0); }
.ee-cta {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 9px;
  letter-spacing: 3px;
  text-transform: uppercase;
  color: var(--gold);
  text-decoration: none;
  margin-top: 16px;
  opacity: 0;
  transition: opacity 0.4s ease 0.15s;
}
.ee-item:hover .ee-cta { opacity: 1; }

/* ══ MAPA INTERACTIVO DE ITALIA ══ */
.mapa-italia-section {
  padding: 120px 60px;
  background: var(--black);
}
.mi-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 80px;
  align-items: start;
  margin-top: 60px;
}
.mi-regions {
  display: flex;
  flex-direction: column;
  gap: 0;
}
.mi-region {
  padding: 24px 0;
  border-bottom: 1px solid rgba(201,168,76,0.07);
  cursor: pointer;
  transition: padding-left 0.3s;
  display: grid;
  grid-template-columns: 32px 1fr auto;
  align-items: center;
  gap: 16px;
}
.mi-region:hover { padding-left: 8px; }
.mi-region.active { padding-left: 8px; border-bottom-color: rgba(201,168,76,0.25); }
.mi-flag { font-size: 20px; }
.mi-name {
  font-family: 'Cormorant Garamond', serif;
  font-size: 20px;
  color: var(--white);
  display: block;
}
.mi-prod {
  font-size: 10px;
  color: var(--gray);
  letter-spacing: 1px;
  display: block;
  margin-top: 3px;
}
.mi-badge {
  font-size: 8px;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--gold);
  border: 1px solid rgba(201,168,76,0.2);
  padding: 3px 8px;
  white-space: nowrap;
}
.mi-detail {
  display: none;
  padding: 48px;
  background: var(--black-mid);
  border: 1px solid rgba(201,168,76,0.1);
  position: sticky;
  top: 100px;
}
.mi-detail.active { display: block; }
.mi-detail-region {
  font-size: 9px;
  letter-spacing: 4px;
  text-transform: uppercase;
  color: var(--gold);
  margin-bottom: 16px;
}
.mi-detail-title {
  font-family: 'Cormorant Garamond', serif;
  font-size: 32px;
  color: var(--white);
  margin-bottom: 20px;
  line-height: 1.2;
}
.mi-detail-desc {
  font-size: 13px;
  color: rgba(245,240,232,0.65);
  line-height: 1.8;
  margin-bottom: 28px;
}
.mi-products-list {
  display: flex;
  flex-direction: column;
  gap: 0;
}
.mi-prod-item {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 0;
  border-bottom: 1px solid rgba(201,168,76,0.06);
  font-size: 12px;
  color: rgba(245,240,232,0.75);
}
.mi-prod-item::before {
  content: '✦';
  color: var(--gold);
  font-size: 8px;
  flex-shrink: 0;
}

/* ══ GALERÍA VIDEO EMBED ══ */
.video-section {
  padding: 120px 60px;
  background: var(--black-soft);
}
.video-grid {
  display: grid;
  grid-template-columns: 1.5fr 1fr;
  gap: 40px;
  align-items: start;
  margin-top: 60px;
}
.video-main {
  position: relative;
  aspect-ratio: 16/9;
  background: var(--black-mid);
  border: 1px solid rgba(201,168,76,0.1);
  overflow: hidden;
  cursor: pointer;
}
.video-thumb {
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: brightness(0.6);
  transition: filter 0.5s;
}
.video-main:hover .video-thumb { filter: brightness(0.8); }
.video-play {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 72px;
  height: 72px;
  border: 2px solid rgba(201,168,76,0.6);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 24px;
  color: var(--gold);
  transition: all 0.3s;
  background: rgba(10,10,10,0.5);
  backdrop-filter: blur(4px);
}
.video-main:hover .video-play {
  border-color: var(--gold);
  background: rgba(201,168,76,0.15);
  transform: translate(-50%, -50%) scale(1.1);
}
.video-caption {
  padding: 20px 0 0;
  font-size: 12px;
  color: var(--gray);
  line-height: 1.6;
}
.video-sidebar {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.video-mini {
  display: grid;
  grid-template-columns: 120px 1fr;
  gap: 16px;
  cursor: pointer;
  padding: 12px;
  border: 1px solid rgba(201,168,76,0.06);
  transition: border-color 0.3s, background 0.3s;
  align-items: center;
}
.video-mini:hover { border-color: rgba(201,168,76,0.2); background: var(--black-mid); }
.video-mini-thumb {
  width: 100%;
  aspect-ratio: 16/9;
  object-fit: cover;
  filter: brightness(0.7);
  transition: filter 0.3s;
}
.video-mini:hover .video-mini-thumb { filter: brightness(0.9); }
.video-mini-title {
  font-family: 'Cormorant Garamond', serif;
  font-size: 15px;
  color: var(--white);
  line-height: 1.3;
  margin-bottom: 6px;
}
.video-mini-dur {
  font-size: 10px;
  color: var(--gold);
  letter-spacing: 1px;
}

/* ══ NEWSLETTER PREMIUM ══ */
.nl-premium {
  padding: 100px 60px;
  background: var(--black-mid);
  border-top: 1px solid rgba(201,168,76,0.08);
  border-bottom: 1px solid rgba(201,168,76,0.08);
  position: relative;
  overflow: hidden;
}
.nl-premium::before {
  content: 'VB';
  position: absolute;
  font-family: 'Cormorant Garamond', serif;
  font-size: 300px;
  color: rgba(201,168,76,0.025);
  top: 50%;
  right: -40px;
  transform: translateY(-50%);
  line-height: 1;
  pointer-events: none;
  font-weight: 700;
}
.nl-inner {
  max-width: 640px;
  margin: 0 auto;
  text-align: center;
  position: relative;
  z-index: 1;
}
.nl-ornament {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 16px;
  margin-bottom: 24px;
}
.nl-ornament::before, .nl-ornament::after {
  content: '';
  flex: 1;
  height: 1px;
  background: linear-gradient(to right, transparent, rgba(201,168,76,0.3));
}
.nl-ornament::after {
  background: linear-gradient(to left, transparent, rgba(201,168,76,0.3));
}
.nl-icon { font-size: 20px; color: var(--gold); }
.nl-title {
  font-family: 'Cormorant Garamond', serif;
  font-size: clamp(28px, 4vw, 44px);
  color: var(--white);
  margin-bottom: 16px;
  line-height: 1.2;
}
.nl-title em { color: var(--gold); }
.nl-sub {
  font-size: 13px;
  color: var(--gray);
  line-height: 1.7;
  margin-bottom: 40px;
}
.nl-form {
  display: flex;
  gap: 0;
}
.nl-input {
  flex: 1;
  background: rgba(255,255,255,0.04);
  border: 1px solid rgba(201,168,76,0.2);
  border-right: none;
  color: var(--white);
  padding: 16px 20px;
  font-size: 13px;
  font-family: 'Montserrat', sans-serif;
  outline: none;
  transition: border-color 0.3s;
}
.nl-input:focus { border-color: rgba(201,168,76,0.5); }
.nl-input::placeholder { color: rgba(136,136,128,0.5); }
.nl-submit {
  background: var(--gold);
  color: var(--black);
  border: 1px solid var(--gold);
  padding: 16px 28px;
  font-size: 10px;
  letter-spacing: 3px;
  text-transform: uppercase;
  font-weight: 700;
  cursor: pointer;
  transition: background 0.3s, color 0.3s;
  font-family: 'Montserrat', sans-serif;
  white-space: nowrap;
}
.nl-submit:hover { background: transparent; color: var(--gold); }
.nl-disclaimer {
  font-size: 10px;
  color: rgba(136,136,128,0.4);
  margin-top: 16px;
  letter-spacing: 0.5px;
}

/* ══ PARALLAX CITA CENTRADA ══ */
.cita-section {
  position: relative;
  padding: 160px 60px;
  overflow: hidden;
  text-align: center;
}
.cita-bg {
  position: absolute;
  inset: -20%;
  background-size: cover;
  background-position: center;
  filter: brightness(0.2) saturate(0.5);
  transition: transform 0.1s linear;
}
.cita-overlay {
  position: absolute;
  inset: 0;
  background: rgba(10,10,10,0.6);
}
.cita-content {
  position: relative;
  z-index: 2;
  max-width: 800px;
  margin: 0 auto;
}
.cita-ornament {
  color: rgba(201,168,76,0.4);
  letter-spacing: 12px;
  font-size: 12px;
  margin-bottom: 32px;
}
.cita-text {
  font-family: 'Cormorant Garamond', serif;
  font-size: clamp(24px, 4vw, 48px);
  font-style: italic;
  color: var(--white);
  line-height: 1.4;
  margin-bottom: 28px;
}
.cita-attr {
  font-size: 10px;
  letter-spacing: 4px;
  text-transform: uppercase;
  color: var(--gold);
}

/* ══ GALERÍA 360 SIMULADA ══ */
.tour-section {
  padding: 120px 60px;
  background: var(--black);
}
.tour-viewer {
  position: relative;
  margin-top: 60px;
  overflow: hidden;
  cursor: grab;
}
.tour-viewer.grabbing { cursor: grabbing; }
.tour-strip {
  display: flex;
  gap: 4px;
  transition: transform 0.05s linear;
}
.tour-frame {
  flex-shrink: 0;
  width: calc(100% / 3);
}
.tour-frame img {
  width: 100%;
  aspect-ratio: 16/10;
  object-fit: cover;
  filter: brightness(0.85);
  pointer-events: none;
  transition: filter 0.3s;
}
.tour-controls {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 24px;
  margin-top: 24px;
}
.tour-btn {
  width: 48px;
  height: 48px;
  border: 1px solid rgba(201,168,76,0.3);
  background: transparent;
  color: var(--gold);
  font-size: 18px;
  cursor: pointer;
  transition: all 0.3s;
  display: flex;
  align-items: center;
  justify-content: center;
}
.tour-btn:hover { border-color: var(--gold); background: rgba(201,168,76,0.08); }
.tour-hint {
  font-size: 10px;
  letter-spacing: 3px;
  text-transform: uppercase;
  color: var(--gray);
}

/* ══ RESPONSIVE v5 ══ */
@media (max-width: 1024px) {
  .sf-grid { grid-template-columns: 1fr; }
  .sf-img-wrap { position: static; }
  .ee-grid { grid-template-columns: 1fr; }
  .ee-item:first-child { min-height: 380px; grid-row: auto; }
  .mi-grid { grid-template-columns: 1fr; }
  .video-grid { grid-template-columns: 1fr; }
  .bn-grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 768px) {
  .page-hero { padding: 0 24px 60px; height: 50vh; }
  .page-hero-badge { display: none; }
  .masonry-grid { columns: 2; }
  .bn-grid { grid-template-columns: 1fr 1fr; }
  .nl-form { flex-direction: column; }
  .nl-input { border-right: 1px solid rgba(201,168,76,0.2); }
  .tour-frame { width: 80%; }
  .page-hero-title { font-size: clamp(36px, 8vw, 56px); }
  .staff-featured, .exp-especiales, .mapa-italia-section,
  .video-section, .masonry-section, .big-number-section,
  .tour-section { padding: 80px 24px; }
}

/* ── NAV RESPONSIVE 1280px ── */
@media (max-width: 1280px) {
  .nav-links a {
    padding: 6px 7px !important;
    font-size: 8.5px !important;
    letter-spacing: 1px !important;
  }
  nav {
    padding: 0 28px !important;
    grid-template-columns: 200px 1fr auto !important;
  }
}

/* ── LANGUAGE SWITCHER — fijo en navbar ── */
.lang-switcher {
  display: inline-flex;
  align-items: center;
  gap: 0;
  border: 1px solid rgba(201,168,76,0.2);
  overflow: hidden;
  margin-left: 10px;
  flex-shrink: 0;
}
.lang-btn {
  background: transparent;
  border: none;
  border-right: 1px solid rgba(201,168,76,0.15);
  color: rgba(136,136,128,0.6);
  font-size: 8px;
  letter-spacing: 2px;
  text-transform: uppercase;
  padding: 5px 8px;
  cursor: pointer;
  font-family: 'Montserrat', sans-serif;
  transition: color 0.25s, background 0.25s;
  line-height: 1;
}
.lang-btn:last-child { border-right: none; }
.lang-btn:hover { color: var(--white); background: rgba(201,168,76,0.07); }
.lang-btn.active {
  color: var(--gold);
  background: rgba(201,168,76,0.1);
  font-weight: 600;
}

/* ═══════════════════════════════════════════════════════════
   VILLA BOLONIA — v6.0 Final Polish
   ═══════════════════════════════════════════════════════════ */

/* ── SKIP LINK (accesibilidad) ── */
.skip-link {
  position: absolute;
  top: -100px;
  left: 24px;
  background: var(--gold);
  color: var(--black);
  padding: 10px 20px;
  font-size: 11px;
  letter-spacing: 2px;
  text-transform: uppercase;
  text-decoration: none;
  z-index: 99999;
  font-weight: 700;
  transition: top 0.2s;
}
.skip-link:focus { top: 24px; }

/* ── FOCUS STYLES visibles para teclado ── */
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible {
  outline: 2px solid var(--gold);
  outline-offset: 3px;
}

/* lang-switcher (versión lateral eliminada — ahora en navbar) */

/* ── ALLERGEN FILTER (menú) ── */
.allergen-bar {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  padding: 24px 0;
  border-bottom: 1px solid rgba(201,168,76,0.08);
  margin-bottom: 32px;
}
.allergen-btn {
  background: transparent;
  border: 1px solid rgba(201,168,76,0.15);
  color: var(--gray);
  padding: 6px 14px;
  font-size: 9px;
  letter-spacing: 2px;
  text-transform: uppercase;
  cursor: pointer;
  transition: all 0.25s;
  font-family: 'Montserrat', sans-serif;
  display: flex;
  align-items: center;
  gap: 6px;
}
.allergen-btn:hover { border-color: rgba(201,168,76,0.4); color: var(--white); }
.allergen-btn.active {
  background: rgba(201,168,76,0.1);
  border-color: var(--gold);
  color: var(--gold);
}
.allergen-icon { font-size: 13px; }
.menu-card.hidden-allergen { display: none !important; }

/* ── PRINT BUTTON ── */
.print-menu-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: transparent;
  border: 1px solid rgba(201,168,76,0.25);
  color: var(--gray);
  padding: 10px 20px;
  font-size: 9px;
  letter-spacing: 2px;
  text-transform: uppercase;
  cursor: pointer;
  font-family: 'Montserrat', sans-serif;
  transition: all 0.3s;
  margin-left: auto;
}
.print-menu-btn:hover { border-color: var(--gold); color: var(--gold); }
.print-menu-btn svg { width: 14px; height: 14px; fill: currentColor; }

/* ── COUNTDOWN TIMER ── */
.countdown-widget {
  display: inline-flex;
  align-items: center;
  gap: 16px;
  padding: 16px 24px;
  border: 1px solid rgba(201,168,76,0.15);
  background: rgba(201,168,76,0.04);
  margin-top: 20px;
}
.cd-label {
  font-size: 9px;
  letter-spacing: 3px;
  text-transform: uppercase;
  color: var(--gray);
}
.cd-time {
  font-family: 'Cormorant Garamond', serif;
  font-size: 24px;
  color: var(--gold);
  letter-spacing: 2px;
}
.cd-sep { color: rgba(201,168,76,0.3); }

/* ── FORM VALIDATION STYLES ── */
.form-field { position: relative; }
.form-input.valid,
.form-select.valid {
  border-color: rgba(74,222,128,0.5) !important;
}
.form-input.invalid,
.form-select.invalid {
  border-color: rgba(248,113,113,0.6) !important;
}
.field-feedback {
  font-size: 10px;
  letter-spacing: 1px;
  margin-top: 5px;
  height: 14px;
  transition: all 0.3s;
  display: flex;
  align-items: center;
  gap: 5px;
}
.field-feedback.ok  { color: #4ade80; }
.field-feedback.err { color: #f87171; }

/* ── RESERVATION CONFIRMATION MODAL ── */
.res-confirm-overlay {
  position: fixed;
  inset: 0;
  background: rgba(10,10,10,0.92);
  z-index: 9000;
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.4s ease, visibility 0.4s ease;
  backdrop-filter: blur(8px);
}
.res-confirm-overlay.open {
  opacity: 1;
  visibility: visible;
}
.res-confirm-box {
  background: var(--black-mid);
  border: 1px solid rgba(201,168,76,0.25);
  padding: 56px 48px;
  max-width: 520px;
  width: 90%;
  text-align: center;
  position: relative;
  transform: translateY(20px);
  transition: transform 0.4s var(--ease-out-expo);
}
.res-confirm-overlay.open .res-confirm-box { transform: translateY(0); }
.res-confirm-close {
  position: absolute;
  top: 20px; right: 24px;
  background: none; border: none;
  color: var(--gray); font-size: 20px;
  cursor: pointer; transition: color 0.2s;
}
.res-confirm-close:hover { color: var(--white); }
.res-confirm-icon {
  width: 64px; height: 64px;
  border: 1px solid var(--gold);
  border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  margin: 0 auto 24px;
  font-size: 24px;
  color: var(--gold);
}
.res-confirm-title {
  font-family: 'Cormorant Garamond', serif;
  font-size: 32px; color: var(--white);
  margin-bottom: 12px;
}
.res-confirm-title em { color: var(--gold); }
.res-confirm-sub {
  font-size: 12px; color: var(--gray);
  line-height: 1.8; margin-bottom: 32px;
}
.res-confirm-details {
  display: flex;
  flex-direction: column;
  gap: 0;
  text-align: left;
  border: 1px solid rgba(201,168,76,0.1);
  margin-bottom: 32px;
}
.rc-detail {
  display: grid;
  grid-template-columns: 100px 1fr;
  gap: 12px;
  padding: 14px 20px;
  border-bottom: 1px solid rgba(201,168,76,0.07);
  align-items: center;
}
.rc-detail:last-child { border-bottom: none; }
.rc-key {
  font-size: 9px;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--gold);
}
.rc-val {
  font-size: 13px;
  color: var(--white);
  font-family: 'Cormorant Garamond', serif;
}
.res-confirm-note {
  font-size: 10px;
  color: rgba(136,136,128,0.6);
  letter-spacing: 0.5px;
  margin-top: 16px;
}

/* ── SEMANA EN VB (index) ── */
.semana-section {
  padding: 100px 60px;
  background: var(--black-mid);
  border-top: 1px solid rgba(201,168,76,0.06);
}
.semana-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2px;
  margin-top: 56px;
}
.semana-item {
  background: var(--black-soft);
  padding: 36px 28px;
  border: 1px solid rgba(201,168,76,0.06);
  transition: border-color 0.4s, transform 0.4s var(--ease-out-expo);
  position: relative;
  overflow: hidden;
}
.semana-item::before {
  content: '';
  position: absolute;
  top: 0; left: 0;
  width: 100%; height: 3px;
  background: var(--gold);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 0.4s var(--ease-out-expo);
}
.semana-item:hover { border-color: rgba(201,168,76,0.2); transform: translateY(-4px); }
.semana-item:hover::before { transform: scaleX(1); }
.semana-tag {
  font-size: 8px;
  letter-spacing: 4px;
  text-transform: uppercase;
  color: var(--gold);
  margin-bottom: 14px;
  display: block;
}
.semana-title {
  font-family: 'Cormorant Garamond', serif;
  font-size: 22px;
  color: var(--white);
  margin-bottom: 10px;
  line-height: 1.3;
}
.semana-desc {
  font-size: 12px;
  color: var(--gray);
  line-height: 1.7;
}
.semana-date {
  font-size: 10px;
  color: rgba(136,136,128,0.5);
  letter-spacing: 2px;
  margin-top: 16px;
  display: block;
}

/* ── LIGHTBOX MEJORADO (con contador) ── */
.lightbox-counter {
  position: absolute;
  bottom: 24px;
  left: 50%;
  transform: translateX(-50%);
  font-size: 11px;
  letter-spacing: 3px;
  color: rgba(245,240,232,0.5);
}
.lightbox-caption-bar {
  position: absolute;
  bottom: 0; left: 0; right: 0;
  padding: 20px 32px 48px;
  background: linear-gradient(to top, rgba(10,10,10,0.9), transparent);
  font-size: 12px;
  color: rgba(245,240,232,0.7);
  letter-spacing: 1px;
}

/* ── 404 PAGE PREMIUM ── */
.notfound-wrap {
  min-height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  text-align: center;
  padding: 40px;
  background: var(--black);
  position: relative;
  overflow: hidden;
}
.notfound-wrap::before {
  content: '404';
  position: absolute;
  font-family: 'Cormorant Garamond', serif;
  font-size: clamp(180px, 30vw, 400px);
  color: rgba(201,168,76,0.04);
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  line-height: 1;
  pointer-events: none;
  white-space: nowrap;
}
.notfound-ornament {
  font-size: 11px;
  letter-spacing: 8px;
  color: var(--gold);
  text-transform: uppercase;
  margin-bottom: 24px;
  opacity: 0.7;
}
.notfound-title {
  font-family: 'Cormorant Garamond', serif;
  font-size: clamp(42px, 8vw, 96px);
  color: var(--white);
  line-height: 1;
  margin-bottom: 20px;
}
.notfound-title em { color: var(--gold); font-style: italic; }
.notfound-sub {
  font-size: 14px;
  color: var(--gray);
  max-width: 400px;
  line-height: 1.8;
  margin-bottom: 40px;
  font-family: 'Cormorant Garamond', serif;
  font-style: italic;
}
.notfound-links {
  display: flex;
  gap: 16px;
  flex-wrap: wrap;
  justify-content: center;
}

/* ── MENU DEL DÍA ── */
.menu-dia-section {
  padding: 80px 60px;
  background: var(--black);
  border-top: 1px solid rgba(201,168,76,0.08);
  border-bottom: 1px solid rgba(201,168,76,0.08);
}
.menu-dia-inner {
  max-width: 800px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 60px;
  align-items: center;
}
.menu-dia-badge {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  background: rgba(201,168,76,0.08);
  border: 1px solid rgba(201,168,76,0.2);
  padding: 6px 16px;
  margin-bottom: 20px;
}
.mdb-dot {
  width: 6px; height: 6px;
  background: var(--gold);
  border-radius: 50%;
  animation: pulse-green 2s infinite;
}
.mdb-text {
  font-size: 9px;
  letter-spacing: 3px;
  text-transform: uppercase;
  color: var(--gold);
}
.menu-dia-platos {
  display: flex;
  flex-direction: column;
  gap: 0;
}
.mdp-item {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  padding: 14px 0;
  border-bottom: 1px solid rgba(201,168,76,0.07);
  gap: 16px;
}
.mdp-name {
  font-family: 'Cormorant Garamond', serif;
  font-size: 18px;
  color: var(--white);
}
.mdp-desc {
  font-size: 10px;
  color: var(--gray);
  margin-top: 3px;
}
.mdp-price {
  font-family: 'Cormorant Garamond', serif;
  font-size: 18px;
  color: var(--gold);
  flex-shrink: 0;
}
.menu-dia-cta {
  font-size: 11px;
  color: var(--gray);
  line-height: 1.8;
}

/* ── HERO TESTIMONIAL ── */
.hero-testimonial {
  padding: 100px 60px;
  background: var(--black-soft);
  position: relative;
}
.ht-inner {
  display: grid;
  grid-template-columns: 1fr 2px 1fr;
  gap: 60px;
  align-items: center;
  max-width: 1100px;
  margin: 0 auto;
}
.ht-divider { background: rgba(201,168,76,0.12); }
.ht-photo-wrap {
  position: relative;
}
.ht-photo {
  width: 100%;
  aspect-ratio: 3/4;
  object-fit: cover;
  filter: brightness(0.85) saturate(0.9);
}
.ht-photo-badge {
  position: absolute;
  bottom: -20px;
  right: -20px;
  background: var(--gold);
  color: var(--black);
  padding: 16px 20px;
  text-align: center;
}
.ht-badge-stars { font-size: 12px; letter-spacing: 3px; display: block; }
.ht-badge-text { font-size: 9px; letter-spacing: 2px; text-transform: uppercase; margin-top: 4px; display: block; }
.ht-quote-mark {
  font-family: 'Cormorant Garamond', serif;
  font-size: 100px;
  color: rgba(201,168,76,0.12);
  line-height: 0.7;
  margin-bottom: 16px;
}
.ht-quote-text {
  font-family: 'Cormorant Garamond', serif;
  font-size: clamp(20px, 2.5vw, 28px);
  font-style: italic;
  color: rgba(245,240,232,0.9);
  line-height: 1.55;
  margin-bottom: 28px;
}
.ht-author-name {
  font-size: 12px;
  font-weight: 600;
  color: var(--white);
  letter-spacing: 2px;
  text-transform: uppercase;
}
.ht-author-detail {
  font-size: 10px;
  color: var(--gold);
  letter-spacing: 2px;
  margin-top: 4px;
}
.ht-author-platform {
  font-size: 9px;
  color: rgba(136,136,128,0.5);
  letter-spacing: 1px;
  margin-top: 4px;
}

/* ── RESPONSIVE v6 ── */
@media (max-width: 768px) {
  .semana-grid { grid-template-columns: 1fr; }
  .menu-dia-inner { grid-template-columns: 1fr; gap: 32px; }
  .ht-inner { grid-template-columns: 1fr; }
  .ht-divider { display: none; }
  .lang-switcher { display: none; }
  .res-confirm-box { padding: 36px 24px; }
}

/* ═══════════════════════════════════════════
   PRINT STYLES — Menú imprimible
   ═══════════════════════════════════════════ */
@media print {
  /* Ocultar todo lo no esencial */
  nav, .page-hero, .preloader, #preloader,
  .whatsapp-btn, .back-to-top, .cookie-banner,
  .cursor, .cursor-ring, .cursor-text,
  .scroll-progress, .grain-overlay,
  .allergen-bar, .print-menu-btn,
  .marquee-strip, .vinos-section,
  .tienda-section, .menu-dia-section,
  .signature-section, .degustacion-section,
  footer, .cocktail-section, .temporada-section,
  .maridaje-section, .quick-reserve-section,
  .lang-switcher, #pageTransitionOverlay,
  .skip-link { display: none !important; }

  body {
    background: white !important;
    color: black !important;
    font-size: 11pt;
  }

  /* Header del menú impreso */
  .menu-section::before {
    content: 'Villa Bolonia — Ristorante Italiano dal 1978';
    display: block;
    text-align: center;
    font-size: 20pt;
    font-family: 'Cormorant Garamond', serif;
    border-bottom: 1pt solid #C9A84C;
    padding-bottom: 12pt;
    margin-bottom: 24pt;
    color: #8B6914;
  }

  .menu-grid {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 16pt !important;
  }

  .menu-card {
    background: white !important;
    border: 0.5pt solid #ddd !important;
    padding: 10pt !important;
    break-inside: avoid;
    box-shadow: none !important;
  }

  .menu-card h3 { color: black !important; font-size: 12pt !important; }
  .menu-card-price { color: #8B6914 !important; font-weight: bold; }
  .menu-card-desc { color: #444 !important; font-size: 9pt !important; }

  .tab-btn, .tab-btns { display: none !important; }
  .menu-card { display: block !important; }

  /* Footer de impresión */
  @page {
    margin: 15mm;
    size: A4;
  }
  body::after {
    content: 'villabolonia.com · reservas@villabolonia.com · +1 (555) 234-5678';
    display: block;
    text-align: center;
    font-size: 8pt;
    color: #888;
    margin-top: 20pt;
    border-top: 0.5pt solid #ddd;
    padding-top: 8pt;
  }
}

/* lang-switcher li — no grow, no shrink */
.nav-links li:has(.lang-switcher) {
  flex-shrink: 0;
  margin-left: 8px;
}

/* ═══════════════════════════════════════════════════════════
   VILLA BOLONIA — Utility Classes (reemplaza inline styles)
   ═══════════════════════════════════════════════════════════ */

/* Typography utilities */
.u-cormorant-gold-lg {
  font-family: 'Cormorant Garamond', serif;
  font-size: clamp(36px, 4vw, 48px);
  color: var(--gold);
}
.u-cormorant-white {
  font-family: 'Cormorant Garamond', serif;
  font-size: 22px;
  color: var(--white);
}
.u-label-gold {
  font-size: 8px;
  letter-spacing: 3px;
  text-transform: uppercase;
  color: var(--gold);
  margin-bottom: 6px;
  display: block;
}
.u-label-gray {
  font-size: 9px;
  letter-spacing: 3px;
  text-transform: uppercase;
  color: var(--gray);
  margin-top: 4px;
  display: block;
}
.u-text-sm { font-size: 11px; color: var(--gray); }
.u-text-sm-white { font-size: 11px; color: var(--white); }
.u-text-md { font-size: 12px; font-weight: 600; color: var(--white); margin-bottom: 4px; }

/* Layout utilities */
.u-card-slot {
  padding: 0;
  overflow: hidden;
  text-align: center;
  cursor: pointer;
}
.u-card-inner-box {
  padding: 20px;
  border: 1px solid rgba(201,168,76,0.1);
}
.u-divider-v {
  width: 1px;
  height: 50px;
  background: rgba(201,168,76,0.15);
}
.u-portrait {
  width: 100%;
  aspect-ratio: 3/4;
  object-fit: cover;
  filter: grayscale(30%) brightness(0.75);
  transition: all 0.6s ease;
}
.u-portrait:hover { filter: grayscale(0) brightness(1); }

/* Border & spacing */
.u-border-gold { border: 1px solid rgba(201,168,76,0.1); }
.u-border-gold-strong { border: 1px solid rgba(201,168,76,0.25); }
.u-gold-line-top { border-top: 1px solid rgba(201,168,76,0.08); }
.u-gold-line-bottom { border-bottom: 1px solid rgba(201,168,76,0.08); }
.u-display-contents { display: contents; }

/* Responsive utility */
@media (max-width: 768px) {
  .u-hide-mobile { display: none !important; }
  .u-show-mobile { display: block !important; }
}
@media (min-width: 769px) {
  .u-hide-desktop { display: none !important; }
}

/* ═══════════════════════════════════════════════════════════
   VILLA BOLONIA — v8.0 · Expansión de Contenido Final
   ═══════════════════════════════════════════════════════════ */

/* ══ INGREDIENTE CARTA ══ */
.ingrediente-carta-section { padding:120px 60px; background:var(--black); }
.ingr-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:2px; margin-top:60px; }
.ingr-card {
  position:relative; overflow:hidden; cursor:default;
  border:1px solid rgba(201,168,76,0.06);
  transition:border-color 0.4s, transform 0.4s var(--ease-out-expo);
}
.ingr-card:hover { border-color:rgba(201,168,76,0.25); transform:translateY(-6px); }
.ingr-img { width:100%; aspect-ratio:1; object-fit:cover; filter:brightness(0.6) saturate(0.7); transition:all 0.7s; display:block; }
.ingr-card:hover .ingr-img { filter:brightness(0.85) saturate(1); transform:scale(1.05); }
.ingr-info { padding:24px 20px; }
.ingr-region { font-size:8px; letter-spacing:3px; text-transform:uppercase; color:var(--gold); margin-bottom:8px; display:block; }
.ingr-name { font-family:'Cormorant Garamond',serif; font-size:20px; color:var(--white); margin-bottom:8px; line-height:1.2; }
.ingr-desc { font-size:11px; color:var(--gray); line-height:1.6; }
.ingr-badge { font-size:8px; letter-spacing:2px; text-transform:uppercase; color:var(--gold); border:1px solid rgba(201,168,76,0.2); padding:3px 8px; margin-top:12px; display:inline-block; }

/* ══ VINO DESTAC ══ */
.vino-destac-section { padding:120px 60px; background:var(--black-mid); }
.vd-grid { display:grid; grid-template-columns:1fr 1fr; gap:80px; align-items:center; margin-top:60px; }
.vd-img-wrap { position:relative; }
.vd-img { width:100%; aspect-ratio:3/4; object-fit:cover; filter:brightness(0.75); }
.vd-score { position:absolute; bottom:-24px; right:-24px; width:96px; height:96px; background:var(--gold); color:var(--black); display:flex; flex-direction:column; align-items:center; justify-content:center; }
.vd-score-num { font-family:'Cormorant Garamond',serif; font-size:32px; font-weight:600; line-height:1; }
.vd-score-lbl { font-size:7px; letter-spacing:2px; text-transform:uppercase; margin-top:2px; }
.vd-specs { display:grid; grid-template-columns:1fr 1fr; gap:0; margin:32px 0; }
.vd-spec { padding:16px 0; border-bottom:1px solid rgba(201,168,76,0.08); }
.vd-spec:nth-child(odd) { padding-right:24px; border-right:1px solid rgba(201,168,76,0.08); }
.vd-spec:nth-child(even) { padding-left:24px; }
.vd-spec-key { font-size:8px; letter-spacing:3px; text-transform:uppercase; color:var(--gold); margin-bottom:4px; }
.vd-spec-val { font-size:13px; color:var(--white); font-family:'Cormorant Garamond',serif; }

/* ══ CHEF'S TABLE ══ */
.chefs-table-section { padding:120px 0; background:var(--black-soft); }
.ct-inner { max-width:1400px; margin:0 auto; padding:0 60px; }
.ct-feature { display:grid; grid-template-columns:1fr 1fr; gap:80px; align-items:center; margin-top:60px; }
.ct-img { width:100%; aspect-ratio:16/10; object-fit:cover; filter:brightness(0.8); }
.ct-slots { display:flex; flex-direction:column; gap:0; margin-top:40px; }
.ct-slot { display:grid; grid-template-columns:80px 1fr auto; align-items:center; gap:20px; padding:20px 0; border-bottom:1px solid rgba(201,168,76,0.08); transition:background 0.3s; }
.ct-slot:hover { padding-left:8px; }
.ct-time { font-family:'Cormorant Garamond',serif; font-size:18px; color:var(--gold); }
.ct-meal { font-size:13px; color:var(--white); }
.ct-meal span { font-size:11px; color:var(--gray); display:block; margin-top:2px; }
.ct-avail { font-size:9px; letter-spacing:2px; text-transform:uppercase; padding:4px 10px; border:1px solid; white-space:nowrap; }
.ct-avail.open { color:#4ade80; border-color:rgba(74,222,128,0.3); }
.ct-avail.few { color:var(--gold); border-color:rgba(201,168,76,0.3); }
.ct-avail.full { color:#f87171; border-color:rgba(248,113,113,0.3); }

/* ══ GALERÍA EVENTOS PASADOS ══ */
.eventos-galeria { padding:100px 60px; background:var(--black); }
.eg-grid { display:grid; grid-template-columns:2fr 1fr 1fr; grid-template-rows:1fr 1fr; gap:4px; margin-top:56px; height:600px; }
.eg-item { overflow:hidden; position:relative; cursor:pointer; }
.eg-item:first-child { grid-row:span 2; }
.eg-img { width:100%; height:100%; object-fit:cover; filter:brightness(0.65) saturate(0.85); transition:all 0.7s var(--ease-out-expo); }
.eg-item:hover .eg-img { filter:brightness(0.9) saturate(1); transform:scale(1.04); }
.eg-overlay { position:absolute; inset:0; background:linear-gradient(to top,rgba(10,10,10,0.8),transparent 50%); }
.eg-caption { position:absolute; bottom:20px; left:20px; right:20px; }
.eg-caption-type { font-size:8px; letter-spacing:3px; text-transform:uppercase; color:var(--gold); display:block; margin-bottom:4px; }
.eg-caption-title { font-family:'Cormorant Garamond',serif; font-size:clamp(14px,2vw,20px); color:var(--white); line-height:1.3; }

/* ══ PROCESO PLANIFICACIÓN ══ */
.plan-section { padding:120px 60px; background:var(--black-mid); }
.plan-steps { display:grid; grid-template-columns:repeat(5,1fr); gap:0; margin-top:60px; position:relative; }
.plan-steps::before { content:''; position:absolute; top:32px; left:10%; right:10%; height:1px; background:linear-gradient(to right, transparent, rgba(201,168,76,0.2) 20%, rgba(201,168,76,0.2) 80%, transparent); }
.plan-step { text-align:center; padding:0 16px; position:relative; }
.plan-step-num { width:64px; height:64px; border:1px solid rgba(201,168,76,0.3); border-radius:50%; display:flex; align-items:center; justify-content:center; margin:0 auto 20px; font-family:'Cormorant Garamond',serif; font-size:22px; color:var(--gold); background:var(--black-mid); position:relative; z-index:2; transition:all 0.4s; }
.plan-step:hover .plan-step-num { background:rgba(201,168,76,0.1); border-color:var(--gold); box-shadow:0 0 20px rgba(201,168,76,0.2); }
.plan-step-title { font-family:'Cormorant Garamond',serif; font-size:17px; color:var(--white); margin-bottom:10px; }
.plan-step-desc { font-size:11px; color:var(--gray); line-height:1.6; }
.plan-step-time { font-size:9px; color:var(--gold); letter-spacing:2px; margin-top:10px; display:block; }

/* ══ SOBRE LA BODEGA ══ */
.bodega-section { padding:120px 60px; background:var(--black); }
.bodega-grid { display:grid; grid-template-columns:1.2fr 1fr; gap:80px; align-items:start; margin-top:60px; }
.bodega-stats { display:grid; grid-template-columns:1fr 1fr; gap:2px; }
.bodega-stat { background:var(--black-mid); padding:36px 28px; border:1px solid rgba(201,168,76,0.06); transition:border-color 0.3s; }
.bodega-stat:hover { border-color:rgba(201,168,76,0.2); }
.bs-num { font-family:'Cormorant Garamond',serif; font-size:52px; color:var(--gold); line-height:1; display:block; }
.bs-label { font-size:10px; letter-spacing:2px; text-transform:uppercase; color:var(--gray); margin-top:8px; display:block; }
.bodega-regions { display:flex; flex-direction:column; gap:0; }
.br-item { display:flex; justify-content:space-between; align-items:center; padding:18px 0; border-bottom:1px solid rgba(201,168,76,0.07); }
.br-name { font-size:13px; color:var(--white); font-family:'Cormorant Garamond',serif; }
.br-bar-wrap { flex:1; margin:0 20px; height:2px; background:rgba(201,168,76,0.1); position:relative; }
.br-bar { height:100%; background:var(--gold); transition:width 1s var(--ease-out-expo); }
.br-pct { font-size:10px; color:var(--gold); letter-spacing:1px; }

/* ══ HORARIO VISUAL ══ */
.horario-visual { padding:80px 60px; background:var(--black-soft); border-top:1px solid rgba(201,168,76,0.07); border-bottom:1px solid rgba(201,168,76,0.07); }
.hv-grid { display:grid; grid-template-columns:repeat(7,1fr); gap:2px; margin-top:48px; }
.hv-day { padding:28px 16px; text-align:center; border:1px solid rgba(201,168,76,0.06); position:relative; transition:border-color 0.3s, background 0.3s; }
.hv-day:hover { border-color:rgba(201,168,76,0.2); background:var(--black-mid); }
.hv-day.today { border-color:rgba(201,168,76,0.3); background:rgba(201,168,76,0.05); }
.hv-day.closed { opacity:0.5; }
.hv-day-name { font-size:8px; letter-spacing:3px; text-transform:uppercase; color:var(--gray); margin-bottom:12px; display:block; }
.hv-day.today .hv-day-name { color:var(--gold); }
.hv-hours { font-family:'Cormorant Garamond',serif; font-size:15px; color:var(--white); line-height:1.4; }
.hv-day.closed .hv-hours { color:rgba(136,136,128,0.4); }
.hv-status { font-size:8px; letter-spacing:2px; text-transform:uppercase; margin-top:10px; display:block; }
.hv-status.open-now { color:#4ade80; }
.hv-status.closed-now { color:rgba(136,136,128,0.4); }
.hv-today-badge { position:absolute; top:-1px; left:50%; transform:translateX(-50%); background:var(--gold); color:var(--black); font-size:7px; letter-spacing:2px; text-transform:uppercase; padding:2px 8px; white-space:nowrap; }

/* ══ CONTACTO DIRECTO ══ */
.contacto-directo { padding:100px 60px; background:var(--black); }
.cd-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:2px; margin-top:56px; }
.cd-card { padding:48px 36px; border:1px solid rgba(201,168,76,0.08); text-align:center; transition:border-color 0.4s, transform 0.4s var(--ease-out-expo); position:relative; overflow:hidden; }
.cd-card:hover { border-color:rgba(201,168,76,0.3); transform:translateY(-6px); }
.cd-card::before { content:''; position:absolute; top:0; left:50%; transform:translateX(-50%); width:0; height:3px; background:var(--gold); transition:width 0.5s var(--ease-out-expo); }
.cd-card:hover::before { width:60%; }
.cd-icon { font-size:32px; margin-bottom:20px; display:block; }
.cd-method { font-size:9px; letter-spacing:4px; text-transform:uppercase; color:var(--gold); margin-bottom:12px; display:block; }
.cd-value { font-family:'Cormorant Garamond',serif; font-size:22px; color:var(--white); margin-bottom:8px; line-height:1.3; }
.cd-note { font-size:11px; color:var(--gray); line-height:1.6; }
.cd-link { display:inline-flex; align-items:center; gap:8px; font-size:9px; letter-spacing:2px; text-transform:uppercase; color:var(--gold); text-decoration:none; margin-top:20px; transition:gap 0.3s; }
.cd-link:hover { gap:14px; }

/* ══ TEAM DETAIL ══ */
.team-detail-section { padding:120px 60px; background:var(--black-soft); }
.td-profiles { display:grid; grid-template-columns:repeat(3,1fr); gap:2px; margin-top:60px; }
.td-profile { border:1px solid rgba(201,168,76,0.06); overflow:hidden; transition:border-color 0.4s; }
.td-profile:hover { border-color:rgba(201,168,76,0.25); }
.td-img-wrap { position:relative; overflow:hidden; }
.td-img { width:100%; aspect-ratio:3/4; object-fit:cover; filter:grayscale(20%) brightness(0.75); transition:all 0.7s var(--ease-out-expo); }
.td-profile:hover .td-img { filter:grayscale(0) brightness(0.95); transform:scale(1.04); }
.td-img-overlay { position:absolute; inset:0; background:linear-gradient(to top, rgba(10,10,10,0.9) 0%, transparent 50%); }
.td-img-bottom { position:absolute; bottom:20px; left:20px; right:20px; }
.td-role { font-size:8px; letter-spacing:3px; text-transform:uppercase; color:var(--gold); display:block; margin-bottom:4px; }
.td-name { font-family:'Cormorant Garamond',serif; font-size:24px; color:var(--white); }
.td-body { padding:28px 24px; }
.td-bio { font-size:12px; color:var(--gray); line-height:1.7; margin-bottom:16px; }
.td-skills { display:flex; flex-wrap:wrap; gap:6px; }
.td-skill { font-size:8px; letter-spacing:2px; text-transform:uppercase; padding:4px 10px; border:1px solid rgba(201,168,76,0.15); color:var(--gray); }
.td-quote { font-family:'Cormorant Garamond',serif; font-size:16px; font-style:italic; color:rgba(245,240,232,0.6); border-left:2px solid var(--gold); padding-left:16px; margin-top:16px; line-height:1.5; }

/* ══ RESPONSIVE v8 ══ */
@media (max-width:1024px) {
  .ingr-grid { grid-template-columns:repeat(2,1fr); }
  .vd-grid { grid-template-columns:1fr; }
  .ct-feature { grid-template-columns:1fr; }
  .eg-grid { grid-template-columns:1fr 1fr; height:auto; }
  .eg-item:first-child { grid-row:span 1; grid-column:span 2; }
  .plan-steps { grid-template-columns:1fr 1fr; gap:40px; }
  .plan-steps::before { display:none; }
  .bodega-grid { grid-template-columns:1fr; }
  .hv-grid { grid-template-columns:repeat(4,1fr); }
  .cd-grid { grid-template-columns:1fr; }
  .td-profiles { grid-template-columns:1fr 1fr; }
}
@media (max-width:768px) {
  .ingr-grid { grid-template-columns:1fr 1fr; }
  .ingr-carta-section, .vino-destac-section, .chefs-table-section,
  .eventos-galeria, .plan-section, .bodega-section,
  .horario-visual, .contacto-directo, .team-detail-section { padding:80px 24px; }
  .hv-grid { grid-template-columns:repeat(2,1fr); }
  .td-profiles { grid-template-columns:1fr; }
  .vd-specs { grid-template-columns:1fr; }
  .vd-spec:nth-child(odd) { border-right:none; padding-right:0; }
  .vd-spec:nth-child(even) { padding-left:0; }
  .bodega-stats { grid-template-columns:1fr 1fr; }
  .plan-steps { grid-template-columns:1fr; }
}