:root{
  --mariposa:#ffd700;
  --mariposa-deep:#e5ac00;
  --bugambilia:#d63384;
  --turquesa:#0891b2;
  --lulo:#22c55e;
  --tapia:#fdf8f0;
  --tapia-2:#faefe0;
  --madera:#7a5826;
  --madera-2:#3d2b1f;
  --casona:#2c1e15;
  --cream:#fffaf1;
  --shadow:0 22px 60px rgba(61,43,31,.18);
  --soft-shadow:0 14px 35px rgba(61,43,31,.12);
  --radius:8px;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family:"Inter",system-ui,sans-serif;
  color:var(--madera-2);
  background:
    radial-gradient(circle at 10% 10%,rgba(255,215,0,.16),transparent 30%),
    radial-gradient(circle at 90% 12%,rgba(214,51,132,.12),transparent 28%),
    linear-gradient(180deg,#fff7e8 0%,#f7ead5 45%,#fff6e8 100%);
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
}
body::before{
  content:"";
  position:fixed;
  inset:0;
  pointer-events:none;
  z-index:-2;
  background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 240 240' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.75' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.08'/%3E%3C/svg%3E");
  mix-blend-mode:multiply;
}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%}
button,input,select{font:inherit}
::selection{background:rgba(255,215,0,.45);color:var(--casona)}

/* ★ MEJORA: Estados focus para accesibilidad */
:focus-visible{
  outline:2px solid var(--mariposa);
  outline-offset:3px;
  border-radius:4px;
}
.btn:focus-visible,.nav-cta:focus-visible{
  outline:2px solid rgba(255,255,255,.7);
  outline-offset:3px;
}
.field:focus-visible{
  outline:none;
}

/* ═══════════════════════════════════════
   NAVBAR — Glassmorphism premium
   ═══════════════════════════════════════ */
.nav-bar{
  position:fixed;
  top:14px;
  left:50%;
  transform:translateX(-50%);
  width:min(1180px,calc(100% - 28px));
  height:72px;
  z-index:50;
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:0 14px 0 18px;
  border:1px solid rgba(255,255,255,.55);
  border-bottom:1px solid rgba(184,137,62,.06);
  border-radius:8px;
  background:rgba(255,248,236,.78);
  backdrop-filter:blur(18px);
  -webkit-backdrop-filter:blur(18px);
  box-shadow:0 14px 40px rgba(44,30,21,.14);
  transition:background .35s ease,box-shadow .35s ease,top .35s ease,height .35s cubic-bezier(.16,1,.3,1),backdrop-filter .35s ease,border-color .35s ease;
}
/* ★ MEJORA: Scroll state con altura reducida y más desenfoque */
.nav-bar.scrolled{
  top:8px;
  height:64px;
  background:rgba(255,248,236,.92);
  backdrop-filter:blur(26px);
  -webkit-backdrop-filter:blur(26px);
  box-shadow:0 18px 50px rgba(44,30,21,.22);
  border-bottom-color:rgba(184,137,62,.1);
}
.brand{display:flex;align-items:center;gap:12px}
.brand-mark{
  width:42px;height:42px;display:grid;place-items:center;
  border-radius:50%;
  background:radial-gradient(circle at 30% 20%,#fff9c4,var(--mariposa) 45%,#b8893e);
  color:var(--casona);
  font:700 26px/1 "Cormorant Garamond",serif;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.7),0 8px 20px rgba(122,88,38,.25);
  transition:transform .3s ease;
}
.brand:hover .brand-mark{transform:scale(1.06)}
.brand strong{display:block;font-family:"Pacifico",cursive;color:var(--madera);font-size:24px;line-height:1}
.brand small{display:block;margin-top:3px;font-size:9px;letter-spacing:.22em;text-transform:uppercase;color:#8a6b3a;font-weight:800}
.nav-links{display:flex;align-items:center;gap:22px}
/* ★ MEJORA: Links con línea inferior animada */
.nav-links a{font-size:13px;font-weight:800;color:#624418;transition:color .3s ease,transform .3s ease;position:relative}
.nav-links a:not(.nav-cta)::after{
  content:"";position:absolute;bottom:-2px;left:50%;width:0;height:2px;
  background:linear-gradient(90deg,var(--mariposa),var(--bugambilia));
  border-radius:99px;
  transition:width .35s cubic-bezier(.16,1,.3,1),left .35s cubic-bezier(.16,1,.3,1);
}
.nav-links a:not(.nav-cta):hover::after{width:100%;left:0}
.nav-links a:hover{color:var(--bugambilia);transform:translateY(-1px)}
/* ★ MEJORA: Botón Reservar destacado con brillo */
.nav-cta{
  padding:12px 22px;
  border-radius:999px;
  color:white!important;
  background:linear-gradient(135deg,var(--bugambilia),#8e1a54);
  box-shadow:0 12px 28px rgba(214,51,132,.32);
  position:relative;
  overflow:hidden;
  transition:transform .3s cubic-bezier(.16,1,.3,1),box-shadow .3s ease;
}
.nav-cta:hover{
  transform:translateY(-2px);
  box-shadow:0 18px 38px rgba(214,51,132,.42);
}
.nav-cta::before{
  content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.18),transparent);
  transition:left .6s ease;pointer-events:none;
}
.nav-cta:hover::before{left:100%}
.nav-toggle{display:none;background:transparent;border:0;width:44px;height:44px;place-items:center;gap:5px;cursor:pointer}
.nav-toggle span{display:block;width:24px;height:2px;background:var(--madera-2);border-radius:99px;transition:.3s cubic-bezier(.16,1,.3,1)}
.nav-toggle.on span:nth-child(1){transform:rotate(45deg) translate(5px,5px)}
.nav-toggle.on span:nth-child(2){opacity:0}
.nav-toggle.on span:nth-child(3){transform:rotate(-45deg) translate(5px,-5px)}
/* ★ MEJORA: Menú móvil con links escalonados */
.nav-links.open .mob-link{
  opacity:0;
  transform:translateY(12px);
  animation:mobileLinkIn .4s cubic-bezier(.16,1,.3,1) forwards;
}
.nav-links.open .mob-link:nth-child(1){animation-delay:.03s}
.nav-links.open .mob-link:nth-child(2){animation-delay:.07s}
.nav-links.open .mob-link:nth-child(3){animation-delay:.11s}
.nav-links.open .mob-link:nth-child(4){animation-delay:.15s}
.nav-links.open .mob-link:nth-child(5){animation-delay:.19s}
.nav-links.open .mob-link:nth-child(6){animation-delay:.23s}
.nav-links.open .mob-link:nth-child(7){animation-delay:.27s}

.chapter{position:relative;padding:110px max(22px,calc((100vw - 1180px)/2));overflow:hidden}
.chapter-head{max-width:780px;margin:0 auto 46px;text-align:center;position:relative;z-index:2}
.chapter-kicker{
  display:inline-flex;
  align-items:center;
  gap:8px;
  color:var(--bugambilia);
  font-size:11px;
  letter-spacing:.28em;
  text-transform:uppercase;
  font-weight:900;
}
.chapter-kicker::before,.chapter-kicker::after{content:"";width:24px;height:2px;background:var(--mariposa)}
h1,h2,h3{font-family:"Cormorant Garamond",Georgia,serif;margin:0;color:var(--casona)}
h2{font-size:clamp(42px,6vw,76px);line-height:.94;font-weight:700}
h2 em{font-family:"Pacifico",cursive;color:var(--bugambilia);font-style:normal;font-size:.72em}
.chapter-head p,.hero-copy,.story-copy p,.catering-card p,.coffee-copy p{font-size:17px;line-height:1.75;color:#6b5130}

/* ═══════════════════════════════════════
   HERO — Preparado para fotografía real
   ═══════════════════════════════════════ */
.hero{
  min-height:100vh;
  display:grid;
  place-items:center;
  padding-top:118px;
  padding-bottom:72px;
  isolation:isolate;
  background:
    radial-gradient(circle at 50% 38%,rgba(255,215,0,.26),transparent 30%),
    linear-gradient(180deg,#fdf8f0 0%,#f8ead2 58%,#fdf8f0 100%);
}
.hero-bg{
  position:absolute;inset:0;z-index:-6;
  transform:scale(1.04);
  overflow:hidden;
}
/* ★ NUEVO: Capa de foto con zoom lento independiente del parallax */
.hero-photo{
  position:absolute;
  inset:-30px;
  background:url("https://images.unsplash.com/photo-1572327415339-3baf7e4048b0?w=2200&q=85") center/cover;
  filter:saturate(1.22) sepia(.12) contrast(.96) brightness(1.08);
  opacity:.72;
  animation:heroZoom 80s ease-in-out infinite alternate;
}
.hero-bg::after{
  content:"";position:absolute;inset:0;
  background:
    linear-gradient(180deg,rgba(253,248,240,.24) 0%,rgba(253,248,240,.5) 58%,#fdf8f0 100%),
    radial-gradient(circle at 50% 45%,rgba(255,215,0,.34),transparent 30%),
    radial-gradient(circle at 12% 45%,rgba(34,197,94,.18),transparent 34%),
    radial-gradient(circle at 86% 35%,rgba(214,51,132,.13),transparent 30%);
}
.hero-texture{position:absolute;inset:0;z-index:-4;background-image:radial-gradient(rgba(122,88,38,.18) 1px,transparent 1px);background-size:18px 18px;opacity:.1}
.warm-light{position:absolute;border-radius:50%;filter:blur(34px);z-index:-3;mix-blend-mode:multiply}
.light-one{width:320px;height:320px;left:12%;top:22%;background:rgba(255,215,0,.18)}
.light-two{width:280px;height:280px;right:12%;bottom:18%;background:rgba(214,51,132,.1)}
.leaf{position:absolute;z-index:-2;opacity:.46;filter:drop-shadow(0 20px 30px rgba(0,0,0,.18))}
.leaf::before{content:"";display:block;width:180px;height:420px;border-radius:100% 0 100% 0;background:linear-gradient(135deg,rgba(21,128,61,.9),rgba(72,187,120,.35));transform:skew(-10deg)}
.leaf-a{left:-34px;top:145px;transform:rotate(24deg)}
.leaf-b{right:-38px;top:110px;transform:rotate(-34deg) scale(.9)}
.leaf-c{right:12%;bottom:-140px;transform:rotate(36deg) scale(.7)}
/* ★ NUEVO: Canvas de partículas */
#heroParticles{
  position:absolute;inset:0;z-index:0;
  pointer-events:none;
  width:100%;height:100%;
}

.hero-content{position:relative;z-index:3;width:min(930px,100%);text-align:center}
.eyebrow{font-size:11px;letter-spacing:.36em;text-transform:uppercase;font-weight:900;color:#7a5826;text-shadow:0 1px 0 rgba(255,255,255,.55)}
/* ★ MEJORA: Más respiración en el logo orbit */
.logo-orbit{position:relative;width:min(540px,86vw);aspect-ratio:1;margin:28px auto 34px;display:grid;place-items:center}
/* ★ MEJORA: Entrada del logo más dramática */
.logo-orbit.reveal-scale{transform:scale(.84) translateY(18px)}
.logo-sun{position:absolute;inset:7%;border-radius:50%;background:radial-gradient(circle,rgba(255,247,176,.74) 0%,rgba(255,215,0,.42) 34%,rgba(255,238,88,.15) 58%,transparent 74%);filter:blur(7px);box-shadow:0 0 70px rgba(255,215,0,.2)}
.logo-card{
  position:relative;
  width:70%;
  aspect-ratio:1;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  padding:34px;
  border-radius:50%;
  border:3px solid rgba(255,255,255,.86);
  background:
    linear-gradient(145deg,rgba(255,250,241,.96),rgba(250,240,224,.93)),
    radial-gradient(circle at 30% 20%,rgba(255,215,0,.25),transparent 35%);
  box-shadow:inset 0 0 0 10px rgba(255,215,0,.13),0 28px 70px rgba(122,88,38,.26);
  /* ★ MEJORA: Transición suave para el efecto de profundidad con mouse */
  transition:transform .4s cubic-bezier(.16,1,.3,1);
  will-change:transform;
}
.logo-script{font-family:"Pacifico",cursive;color:var(--bugambilia);font-size:clamp(52px,9vw,92px);line-height:.9}
.logo-title{font-family:"Cormorant Garamond",serif;text-transform:uppercase;letter-spacing:.18em;font-size:clamp(20px,3vw,30px);font-weight:700;color:var(--casona);margin-top:8px}
.logo-line{width:54%;height:3px;background:repeating-linear-gradient(90deg,var(--mariposa) 0 22px,var(--bugambilia) 22px 44px,var(--turquesa) 44px 66px,var(--lulo) 66px 88px);border-radius:99px;margin:14px 0}
.logo-place{font-size:12px;letter-spacing:.14em;text-transform:uppercase;font-weight:900;color:#765222}
/* ★ MEJORA: Más respiración en el copy */
.hero-copy{max-width:690px;margin:0 auto 34px;color:#5c421c;text-shadow:0 1px 0 rgba(255,255,255,.5)}
.hero-actions{display:flex;justify-content:center;gap:14px;flex-wrap:wrap}

/* ═══════════════════════════════════════
   BOTONES — Premium con brillo y ripple
   ═══════════════════════════════════════ */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:10px;
  min-height:50px;padding:0 24px;border:0;border-radius:999px;
  color:white;font-size:13px;text-transform:uppercase;letter-spacing:.11em;font-weight:900;
  box-shadow:0 18px 34px rgba(44,30,21,.18);
  position:relative;
  overflow:hidden;
  transition:transform .3s cubic-bezier(.16,1,.3,1),box-shadow .3s ease,filter .3s ease;
  cursor:pointer;
}
.btn:hover{
  transform:translateY(-3px);
  box-shadow:0 24px 46px rgba(44,30,21,.28);
  filter:saturate(1.08);
}
.btn-primary{background:linear-gradient(135deg,var(--turquesa),#155e75)}
.btn-secondary{background:linear-gradient(135deg,var(--bugambilia),#8e1a54)}
/* ★ NUEVO: Barrido de brillo sutil en hover */
.btn::before{
  content:"";position:absolute;top:0;left:-100%;width:60%;height:100%;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.12),transparent);
  transition:left .55s ease;pointer-events:none;z-index:1;
}
.btn:hover::before{left:130%}
/* ★ NUEVO: Efecto ripple al hacer clic */
.btn-ripple{
  position:absolute;border-radius:50%;
  background:rgba(255,255,255,.2);
  transform:scale(0);
  animation:rippleExpand .6s ease-out forwards;
  pointer-events:none;z-index:0;
}

/* ═══════════════════════════════════════
   SCROLL CUE — Rediseño elegante
   ═══════════════════════════════════════ */
.scroll-cue{
  position:absolute;bottom:28px;left:50%;transform:translateX(-50%);
  display:flex;flex-direction:column;align-items:center;gap:12px;
  color:#7b5d2b;font-size:10px;font-weight:900;text-transform:uppercase;
  letter-spacing:.28em;z-index:3;
}
/* ★ NUEVO: Línea con punto animado */
.scroll-line{
  width:1px;height:44px;position:relative;overflow:hidden;
  background:rgba(184,137,62,.12);border-radius:99px;
}
.scroll-dot{
  position:absolute;top:-8px;left:50%;transform:translateX(-50%);
  width:3px;height:8px;border-radius:99px;
  background:linear-gradient(180deg,var(--mariposa),var(--bugambilia));
  animation:scrollDotMove 2.6s cubic-bezier(.4,0,.2,1) infinite;
}

.butterfly-stage{position:absolute;inset:0;z-index:4;pointer-events:none;overflow:hidden}
.butterfly-svg{position:absolute;width:30px;height:24px;filter:drop-shadow(0 5px 7px rgba(44,30,21,.25));will-change:transform,opacity}
.ambient-butterfly{opacity:.55}

/* ═══════════════════════════════════════
   EXPERIENCIAS
   ═══════════════════════════════════════ */
.experiences{background:linear-gradient(180deg,#fdf8f0,#fff1d7)}
.experience-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;position:relative;z-index:2}
.experience-card{position:relative;min-height:510px;overflow:hidden;border-radius:8px;border:4px solid rgba(255,255,255,.85);box-shadow:var(--shadow);background:#000}
.experience-card:nth-child(even){transform:translateY(34px)}
.experience-card img{width:100%;height:100%;object-fit:cover;transition:transform .8s cubic-bezier(.16,1,.3,1),filter .8s ease}
.experience-card::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 28%,rgba(44,30,21,.86));}
.experience-card div{position:absolute;left:24px;right:24px;bottom:24px;z-index:2;color:white}
.experience-card span{font-family:"Cormorant Garamond",serif;font-size:34px;font-weight:700}
.experience-card p{margin:8px 0 0;color:#ffeecf;line-height:1.55}
.experience-card:hover img{transform:scale(1.09);filter:saturate(1.14)}

/* ═══════════════════════════════════════
   HISTORIA
   ═══════════════════════════════════════ */
.story{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center;background:linear-gradient(135deg,#fff0b8,#fdf8f0 42%,#e8fff0)}
.story::before,.menu-chapter::before,.reservations::before{content:"";position:absolute;inset:24px;border:1px solid rgba(184,137,62,.22);border-radius:8px;pointer-events:none}
.story-media{position:relative}
.story-media img{height:590px;width:100%;object-fit:cover;border-radius:8px;border:8px solid white;box-shadow:var(--shadow)}
.floating-note{position:absolute;right:-18px;bottom:44px;padding:18px 22px;border-radius:8px;background:rgba(255,250,241,.93);box-shadow:var(--soft-shadow);font-family:"Pacifico",cursive;color:var(--bugambilia);font-size:24px}
.story-copy{position:relative;z-index:2}
.story-copy h2{text-align:left;margin:8px 0 18px}
.story-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:28px}
.story-stats span{padding:18px;border-radius:8px;background:rgba(255,255,255,.7);box-shadow:var(--soft-shadow)}
.story-stats strong{display:block;font-family:"Cormorant Garamond",serif;font-size:28px;color:var(--casona)}
.story-stats small{text-transform:uppercase;font-size:10px;letter-spacing:.18em;font-weight:900;color:var(--madera)}

/* ═══════════════════════════════════════
   CARTA
   ═══════════════════════════════════════ */
.menu-chapter{background:linear-gradient(180deg,#fff8e8,#f7ead5)}
.menu-bg-flower{position:absolute;right:-120px;top:110px;width:360px;height:360px;border-radius:50%;background:radial-gradient(circle,rgba(214,51,132,.16),transparent 70%);filter:blur(2px)}
.menu-tabs{display:flex;justify-content:center;gap:12px;flex-wrap:wrap;margin-bottom:34px;position:relative;z-index:2}
.menu-tab{
  display:inline-flex;align-items:center;gap:9px;
  border:2px solid rgba(122,88,38,.25);
  background:rgba(255,255,255,.72);
  color:#6b4a20;
  border-radius:999px;
  padding:14px 18px;
  font-size:13px;
  font-weight:900;
  cursor:pointer;
  box-shadow:0 8px 20px rgba(61,43,31,.08);
  transition:.3s cubic-bezier(.16,1,.3,1);
}
.menu-tab:hover,.menu-tab.active{transform:translateY(-2px);color:white;border-color:transparent;background:linear-gradient(135deg,var(--mariposa-deep),var(--bugambilia));box-shadow:0 16px 32px rgba(214,51,132,.18)}
.hidden{display:none!important}
.dish-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;position:relative;z-index:2}
.dish{
  position:relative;
  display:grid;
  grid-template-columns:180px 1fr;
  gap:22px;
  min-height:216px;
  padding:18px;
  border-radius:8px;
  background:linear-gradient(145deg,rgba(255,255,255,.9),rgba(255,246,226,.92));
  border:1px solid rgba(184,137,62,.24);
  box-shadow:var(--soft-shadow);
  overflow:hidden;
  transition:transform .35s cubic-bezier(.16,1,.3,1),box-shadow .35s ease,border-color .35s ease;
}
.dish::before{content:"";position:absolute;inset:0;background:linear-gradient(135deg,rgba(255,215,0,.13),transparent 38%,rgba(8,145,178,.08));opacity:.8;pointer-events:none}
.dish:hover{transform:translateY(-7px);box-shadow:0 26px 70px rgba(61,43,31,.2);border-color:rgba(255,215,0,.65)}
.dish-media{position:relative;z-index:1;min-height:180px;border-radius:8px;overflow:hidden;box-shadow:0 16px 30px rgba(44,30,21,.18)}
.dish-media img{width:100%;height:100%;object-fit:cover;transition:transform .7s cubic-bezier(.16,1,.3,1)}
.dish:hover .dish-media img{transform:scale(1.1)}
.dish-body{position:relative;z-index:1;display:flex;flex-direction:column;justify-content:center}
.dish-body h3{font-size:32px;line-height:1;margin-bottom:10px}
.dish-body p{margin:0;color:#6d5231;line-height:1.62;font-size:14px}
.dish-price{display:inline-flex;align-self:flex-start;margin-top:18px;padding:9px 14px;border-radius:999px;background:var(--casona);color:var(--mariposa);font-weight:900;box-shadow:0 12px 22px rgba(44,30,21,.18)}

.drink-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.drink-card{min-height:210px;padding:26px;border-radius:8px;background:linear-gradient(145deg,#fff,#fff1dc);border:1px solid rgba(214,51,132,.22);box-shadow:var(--soft-shadow);transition:.3s cubic-bezier(.16,1,.3,1)}
.drink-card:hover{transform:translateY(-6px);box-shadow:var(--shadow)}
.drink-icon{width:52px;height:52px;display:grid;place-items:center;border-radius:50%;background:rgba(255,215,0,.24);color:var(--bugambilia);font-size:26px;margin-bottom:14px}
.drink-card h3{font-size:28px}
.drink-card p{color:#6d5231;line-height:1.6}
.drink-price{display:inline-block;margin-top:10px;font-weight:900;color:var(--bugambilia)}
.drink-items{margin:12px 0 0;padding:0;list-style:none;color:#6d5231;line-height:1.8}
.coffee-panel{display:grid;grid-template-columns:.9fr 1.1fr;gap:32px;align-items:center;padding:32px;border-radius:8px;background:rgba(255,255,255,.75);box-shadow:var(--shadow);border:1px solid rgba(34,197,94,.22)}
.coffee-copy h3{font-size:50px;line-height:1;margin:10px 0}
.coffee-tags{display:flex;flex-wrap:wrap;gap:10px;margin-top:22px}
.coffee-tags span{padding:9px 12px;border-radius:999px;background:#ecfdf3;color:#16753a;font-weight:900;font-size:12px}
.coffee-photos{display:grid;grid-template-columns:1fr .46fr;gap:14px;align-items:end}
.coffee-photos img{height:440px;width:100%;object-fit:cover;border-radius:8px;box-shadow:var(--soft-shadow)}
.coffee-photos img:nth-child(2){height:230px}
.delivery-note{display:flex;align-items:center;justify-content:center;gap:12px;width:max-content;max-width:100%;margin:32px auto 0;padding:14px 22px;border-radius:999px;background:rgba(230,255,250,.9);color:#0e7490;border:1px solid rgba(8,145,178,.24);font-size:14px}
.delivery-note p{margin:0}
.delivery-note a{text-decoration:underline;font-weight:900}

/* ═══════════════════════════════════════
   RESEÑAS
   ═══════════════════════════════════════ */
.reviews{background:linear-gradient(135deg,#fff0f6,#fff8e8)}
.review-scroll{display:flex;gap:18px;overflow-x:auto;scroll-snap-type:x mandatory;padding:8px 2px 20px;scrollbar-width:none}
.review-scroll::-webkit-scrollbar{display:none}
.review-card{scroll-snap-align:start;flex:0 0 380px;padding:24px;border-radius:8px;background:rgba(255,255,255,.84);border:1px solid rgba(214,51,132,.18);box-shadow:var(--soft-shadow);transition:transform .3s cubic-bezier(.16,1,.3,1),box-shadow .3s ease}
.review-card:hover{transform:translateY(-4px);box-shadow:var(--shadow)}
.review-head{display:flex;justify-content:space-between;gap:14px;align-items:center;margin-bottom:14px}
.review-avatar{width:46px;height:46px;border-radius:50%;display:grid;place-items:center;background:var(--mariposa);color:var(--casona);font-weight:900}
.review-card p{line-height:1.75;color:#684f2f}
.stars{color:var(--mariposa-deep);letter-spacing:1px}

/* ═══════════════════════════════════════
   CATERING
   ═══════════════════════════════════════ */
.catering{display:grid;grid-template-columns:.9fr 1.1fr;gap:44px;align-items:center;background:linear-gradient(160deg,#e6fffa,#fff7dc)}
.catering-card{padding:40px;border-radius:8px;background:rgba(255,255,255,.76);box-shadow:var(--shadow)}
.catering-card h2{text-align:left;margin:10px 0 18px}
.catering-gallery{display:grid;grid-template-columns:1fr .8fr;gap:16px;align-items:end}
.catering-gallery img{width:100%;object-fit:cover;border-radius:8px;box-shadow:var(--shadow);border:6px solid white}
.catering-gallery img:first-child{height:520px}
.catering-gallery img:last-child{height:360px}

/* ═══════════════════════════════════════
   RESERVAS
   ═══════════════════════════════════════ */
.reservations{background:linear-gradient(180deg,#fff8e8,#f2e3c9)}
.reservation-form{
  max-width:850px;margin:auto;
  display:grid;grid-template-columns:repeat(2,1fr);gap:18px;
  padding:30px;border-radius:8px;
  background:rgba(255,255,255,.86);
  box-shadow:var(--shadow);
  border:1px solid rgba(184,137,62,.22);
}
.reservation-form label{display:grid;gap:8px;color:#6b4a20;font-size:12px;text-transform:uppercase;letter-spacing:.12em;font-weight:900}
.field{width:100%;min-height:52px;border:2px solid rgba(184,137,62,.28);border-radius:8px;background:#fffaf1;color:var(--casona);padding:0 14px;outline:0;transition:border-color .25s ease,box-shadow .25s ease}
.field:focus{border-color:var(--mariposa-deep);box-shadow:0 0 0 4px rgba(255,215,0,.18)}
.form-wide{grid-column:1/-1}

/* ═══════════════════════════════════════
   UBICACIÓN
   ═══════════════════════════════════════ */
.location{background:linear-gradient(135deg,#ecfdf3,#fff8e8)}
.location-grid{display:grid;grid-template-columns:1.4fr .8fr;gap:24px}
.map-frame{min-height:500px;border-radius:8px;overflow:hidden;border:8px solid white;box-shadow:var(--shadow)}
.map-frame iframe{width:100%;height:100%;min-height:500px;border:0;display:block}
.location-cards{display:grid;gap:16px}
.location-cards article{padding:24px;border-radius:8px;background:rgba(255,255,255,.82);box-shadow:var(--soft-shadow);border:1px solid rgba(34,197,94,.18);transition:transform .3s ease,box-shadow .3s ease}
.location-cards article:hover{transform:translateY(-3px);box-shadow:var(--shadow)}
.location-cards .iconify{font-size:30px;color:var(--bugambilia)}
.location-cards h3{font-size:28px;margin:8px 0 4px}
.location-cards p{line-height:1.65;color:#6b5130}
.location-cards a{font-weight:900;color:var(--turquesa);transition:color .2s ease}
.location-cards a:hover{color:var(--bugambilia)}
#openStatus{display:inline-flex;align-items:center;gap:8px;margin-top:10px;padding:8px 12px;border-radius:999px;font-size:12px;font-weight:900}
#openStatus.open{background:#dcfce7;color:#166534}
#openStatus.closed{background:#fee2e2;color:#991b1b}
#openStatus::before{content:"";width:8px;height:8px;border-radius:50%;background:currentColor}

/* ═══════════════════════════════════════
   FOOTER — Cierre memorable
   ═══════════════════════════════════════ */
.footer{
  position:relative;text-align:center;
  padding:100px 22px 90px;
  background:var(--casona);color:#f8e8c6;overflow:hidden;
}
.footer::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 50% 0,rgba(255,215,0,.18),transparent 38%)}
.footer .azulejo{position:absolute;top:0;left:0;right:0;height:10px;background:repeating-linear-gradient(90deg,var(--mariposa) 0 28px,var(--bugambilia) 28px 56px,var(--turquesa) 56px 84px,var(--lulo) 84px 112px)}
.footer h2{position:relative;color:white;font-size:52px;margin-bottom:16px}
.footer h2 span{color:var(--mariposa)}
.footer p{position:relative;color:#e8d4ac;font-size:18px;line-height:1.7;margin-bottom:36px;max-width:520px;margin-left:auto;margin-right:auto}
.footer .btn{position:relative}

/* ★ NUEVO: Iconos sociales del footer */
.footer-social{
  position:relative;
  display:flex;
  justify-content:center;
  gap:14px;
  margin-bottom:36px;
}
.footer-social a{
  width:48px;height:48px;
  display:grid;place-items:center;
  border-radius:50%;
  border:1px solid rgba(255,215,0,.18);
  color:var(--mariposa);
  font-size:22px;
  transition:all .35s cubic-bezier(.16,1,.3,1);
}
.footer-social a:hover{
  background:rgba(255,215,0,.1);
  border-color:rgba(255,215,0,.45);
  transform:translateY(-3px);
  box-shadow:0 8px 24px rgba(255,215,0,.12);
}

/* ═══════════════════════════════════════
   WHATSAPP FLOTANTE
   ═══════════════════════════════════════ */
.wa-float{position:fixed;right:22px;bottom:22px;z-index:60;width:58px;height:58px;border-radius:50%;display:grid;place-items:center;background:#25d366;color:white;font-size:30px;box-shadow:0 18px 38px rgba(37,211,102,.35);animation:pulseGlow 2.4s ease-in-out infinite;transition:transform .3s cubic-bezier(.16,1,.3,1)}
.wa-float:hover{transform:scale(1.1)}

/* ═══════════════════════════════════════
   BOTÓN VOLVER ARRIBA
   ═══════════════════════════════════════ */
.back-to-top{
  position:fixed;
  right:24px;
  bottom:94px;
  z-index:55;
  width:46px;height:46px;
  border:none;border-radius:50%;
  background:rgba(44,30,21,.82);
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
  color:var(--mariposa);
  font-size:24px;
  display:grid;place-items:center;
  cursor:pointer;
  opacity:0;
  transform:translateY(10px);
  pointer-events:none;
  transition:opacity .4s cubic-bezier(.16,1,.3,1),transform .4s cubic-bezier(.16,1,.3,1),background .3s ease,box-shadow .3s ease;
  box-shadow:0 8px 24px rgba(44,30,21,.2);
  border:1px solid rgba(255,215,0,.1);
}
.back-to-top.visible{
  opacity:1;
  transform:translateY(0);
  pointer-events:auto;
}
.back-to-top:hover{
  background:var(--casona);
  box-shadow:0 12px 32px rgba(44,30,21,.35);
  border-color:rgba(255,215,0,.25);
}

/* ═══════════════════════════════════════
   TOASTS
   ═══════════════════════════════════════ */
.toasts{position:fixed;top:100px;right:18px;z-index:80;display:grid;gap:10px;pointer-events:none}
.toast{max-width:360px;padding:15px 18px;border-radius:8px;color:white;box-shadow:var(--shadow);font-size:14px;font-weight:700;transition:opacity .26s ease,transform .26s ease}
.toast.success{background:#16a34a}
.toast.error{background:#dc2626}