@font-face { font-family:'Baloo'; src:url('../fonts/Baloo2-700.woff2') format('woff2'); font-weight:700; font-display:swap; }
@font-face { font-family:'Baloo'; src:url('../fonts/Baloo2-800.woff2') format('woff2'); font-weight:800; font-display:swap; }
@font-face { font-family:'Work'; src:url('../fonts/WorkSans-400.woff2') format('woff2'); font-weight:400; font-display:swap; }
@font-face { font-family:'Work'; src:url('../fonts/WorkSans-600.woff2') format('woff2'); font-weight:600; font-display:swap; }

:root {
  --black:#0b0b09; --cream:#faf5e9; --green:#4f7a2f; --green-dark:#24391a; --green-deep:#16220f;
  --amber:#eab448; --amber-2:#f3cf7e; --red:#c0463a; --ink:#1c1a14;
}
* { box-sizing:border-box; }
html,body { margin:0; padding:0; background:var(--cream); color:var(--ink); font-family:'Work',sans-serif; overflow-x:hidden; }
h1,h2,h3,.display { font-family:'Baloo',sans-serif; font-weight:800; letter-spacing:-0.01em; margin:0; }
a { color:inherit; }
html { scroll-behavior:smooth; }

/* ---------- FIXED BACKGROUND VIDEO ---------- */
#bgWrap { position:fixed; inset:0; z-index:0; background:var(--black); }
#bgVideo { width:100%; height:100%; object-fit:cover; opacity:0.9; }
#bgWrap::after {
  content:""; position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(11,11,9,.55) 0%, rgba(11,11,9,.25) 35%, rgba(11,11,9,.35) 60%, rgba(11,11,9,.92) 100%);
}

/* ---------- NAVBAR (over everything) ---------- */
header.nav { position:fixed; top:0; left:0; right:0; z-index:60; background:rgba(11,11,9,0.55); backdrop-filter:blur(6px); color:var(--cream); }
.nav-inner { max-width:1180px; margin:0 auto; display:flex; align-items:center; justify-content:space-between; padding:.65rem 1.25rem; }
.brand { display:flex; align-items:center; gap:.6rem; text-decoration:none; }
.brand-logo { height:68px; width:auto; border-radius:0; }
@media (max-width:640px) { .brand-logo { height:54px; } }
.brand span { font-size:1.25rem; color:var(--amber); }
nav.links { display:none; gap:1.75rem; font-weight:600; font-size:.9rem; }
nav.links a { text-decoration:none; }
@media (min-width:860px) { nav.links { display:flex; } }
.burger { background:none; border:0; color:var(--cream); font-size:1.5rem; }
@media (min-width:860px) { .burger { display:none; } }

/* ---------- SCROLL ZONE (transparent, sits on top of fixed video) ---------- */
.content { position:relative; z-index:2; }
.zone-panel {
  min-height:100vh; display:flex; flex-direction:column; align-items:center; justify-content:center;
  text-align:center; padding:6rem 1.25rem 3rem; color:var(--cream);
}
.hero-logo {
  height:auto; width:min(38vw, 260px); margin-bottom:1.2rem;
  opacity:1;
  filter:drop-shadow(0 8px 18px rgba(0,0,0,.35));
  transform-origin:center center;
  will-change:transform, opacity, filter;
}
@media (max-width:640px) { .hero-logo { width:min(34vw, 130px); margin-bottom:.9rem; } }
.eyebrow { font-family:'Work'; font-weight:600; letter-spacing:.18em; text-transform:uppercase; font-size:.75rem; color:var(--amber-2); margin-bottom:.9rem; }
.hero-title { font-size:clamp(2.3rem,7vw,4.8rem); line-height:1.03; }
.hero-title span { display:inline-block; opacity:0; transform:translateY(28px) rotate(-2deg); animation:wordIn .75s cubic-bezier(.2,.9,.25,1.2) forwards; }
.hero-sub { max-width:32rem; margin-top:1.1rem; font-size:1.02rem; color:rgba(250,245,233,.9); }
.hero-ctas { margin-top:2.1rem; display:flex; gap:1rem; flex-wrap:wrap; justify-content:center; }
.btn { font-family:'Baloo'; font-weight:700; font-size:.95rem; padding:.85rem 1.6rem; border-radius:999px; text-decoration:none; display:inline-flex; align-items:center; gap:.4rem; transition:transform .25s cubic-bezier(.34,1.56,.64,1); box-shadow:0 6px 0 rgba(0,0,0,.25); border:0; cursor:pointer; }
.btn:hover { transform:translateY(-3px) scale(1.04); }
.btn:active { transform:translateY(1px); box-shadow:0 3px 0 rgba(0,0,0,.25); }
.btn-amber { background:var(--amber); color:var(--black); }
.btn-red { background:var(--red); color:var(--cream); }
@keyframes wordIn { to { opacity:1; transform:translateY(0) rotate(0); } }
@keyframes fadeUp { from { opacity:0; transform:translateY(16px); } to { opacity:1; transform:translateY(0); } }

.zone-panel.teaser h2 { font-size:clamp(1.7rem,5vw,2.8rem); color:var(--cream); }
.zone-panel.teaser p { max-width:34rem; margin-top:.9rem; color:rgba(250,245,233,.82); }

.scroll-hint { position:fixed; bottom:1.6rem; left:50%; transform:translateX(-50%); z-index:40; color:var(--cream); font-size:.72rem; letter-spacing:.14em; text-transform:uppercase; display:flex; flex-direction:column; align-items:center; gap:.35rem; transition:opacity .4s; }
.scroll-hint .dot { width:22px; height:34px; border:2px solid rgba(250,245,233,.7); border-radius:14px; position:relative; }
.scroll-hint .dot::after { content:""; position:absolute; top:6px; left:50%; width:4px; height:6px; background:var(--amber-2); border-radius:2px; transform:translateX(-50%); animation:sd 1.5s infinite; }
@keyframes sd { 0%{opacity:1;top:6px} 100%{opacity:0;top:18px} }

/* ---------- SOLID CONTENT (opaque, hides fixed video once reached) ---------- */
.solid { position:relative; z-index:3; background:var(--cream); }
.scallop { position:relative; height:34px; background:var(--cream); }
.scallop::before { content:""; position:absolute; top:-17px; left:0; right:0; height:34px; background-image:radial-gradient(circle at 17px 17px, transparent 17px, var(--black) 17.5px); background-size:34px 34px; background-repeat:repeat-x; background-position:center; }

section.block { padding:5rem 1.25rem; }
.wrap { max-width:1180px; margin:0 auto; }
.kicker { font-family:'Work'; font-weight:600; letter-spacing:.16em; text-transform:uppercase; font-size:.75rem; color:var(--green); }
.block h2 { font-size:clamp(1.8rem,4vw,2.6rem); margin-top:.4rem; }
.block p.lead { max-width:40rem; margin-top:.75rem; color:rgba(28,26,20,.72); font-size:1.02rem; }
.reveal { opacity:0; transform:translateY(24px); transition:opacity .7s ease, transform .7s ease; }
.reveal.in { opacity:1; transform:translateY(0); }

.grid-cards { margin-top:2.5rem; display:grid; grid-template-columns:1fr; gap:1.5rem; }
@media (min-width:640px) { .grid-cards { grid-template-columns:1fr 1fr; } }
@media (min-width:1000px) { .grid-cards { grid-template-columns:repeat(4,1fr); } }
.ticket-card { background:#fff; border-radius:4px; overflow:hidden; box-shadow:0 10px 24px rgba(11,11,9,.08); position:relative; transition:transform .35s cubic-bezier(.34,1.56,.64,1), box-shadow .35s ease; }
.ticket-card:nth-child(odd):hover { transform:rotate(-1.5deg) translateY(-6px); }
.ticket-card:nth-child(even):hover { transform:rotate(1.5deg) translateY(-6px); }
.ticket-card:hover { box-shadow:0 18px 34px rgba(11,11,9,.16); }
.ticket-photo { height:150px; width:100%; object-fit:cover; display:block; }
.ticket-photo-fallback { height:150px; width:100%; display:flex; align-items:center; justify-content:center; color:var(--cream); font-family:'Baloo'; font-weight:700; text-align:center; padding:0 1rem; }
.ticket-body { padding:1.1rem 1.15rem 1.3rem; }
.ticket-body h3 { font-size:1.15rem; }
.ticket-body p { margin:.4rem 0 0; font-size:.87rem; color:rgba(28,26,20,.68); }
.ticket-notch { position:absolute; top:150px; left:0; right:0; height:12px; background-image:radial-gradient(circle at 6px 0, transparent 6px, #fff 6.5px); background-size:20px 12px; background-repeat:repeat-x; }

.cafeteria { background:var(--green-deep); color:var(--cream); position:relative; overflow:hidden; }
.cafeteria::after { content:""; position:absolute; inset:0; background:radial-gradient(circle at 85% 20%, rgba(234,180,72,.14), transparent 55%); pointer-events:none; }
.cafeteria .kicker { color:var(--amber-2); }
.cafe-grid { display:grid; grid-template-columns:1fr; gap:2.5rem; align-items:center; margin-top:2.5rem; }
@media (min-width:900px) { .cafe-grid { grid-template-columns:1.1fr 1fr; } }
.cafe-photos { margin:2.5rem auto 0; max-width:56rem; display:grid; grid-template-columns:1fr; gap:2.5rem; justify-items:center; }
@media (min-width:640px) { .cafe-photos { grid-template-columns:1fr 1fr; } }

.eventos-grid { display:grid; grid-template-columns:1fr; gap:2.5rem; align-items:center; }
@media (min-width:900px) { .eventos-grid { grid-template-columns:1.05fr .95fr; gap:3.5rem; } }
.eventos-photo { display:flex; flex-direction:column; align-items:center; }
.eventos-photo-logo { width:min(46vw, 150px); height:auto; margin-bottom:1.5rem; filter:drop-shadow(0 6px 14px rgba(0,0,0,.4)); }
.eventos-photo-frame {
  width:100%; max-width:420px; border-radius:20px; overflow:hidden; margin:0;
  border:3px solid var(--amber); box-shadow:0 20px 40px rgba(0,0,0,.5), 0 0 0 8px rgba(234,180,72,.08);
}
.eventos-photo-frame img { width:100%; display:block; aspect-ratio:1/1; object-fit:cover; }
.polaroid { background:var(--cream); padding:.9rem .9rem 1.6rem; border-radius:3px; box-shadow:0 22px 40px rgba(0,0,0,.35); transform:rotate(-3deg); max-width:380px; margin:0 auto; }
.polaroid img { width:100%; display:block; border-radius:1px; }
.polaroid figcaption { font-family:'Baloo'; color:var(--ink); text-align:center; margin-top:.7rem; font-size:.95rem; }
.menu-list { list-style:none; margin:1.5rem 0 0; padding:0; }
.menu-list li { display:flex; align-items:baseline; gap:.5rem; padding:.6rem 0; border-bottom:1px dashed rgba(250,245,233,.25); font-size:1rem; }
.menu-list .name { font-family:'Baloo'; font-weight:700; }
.menu-list .dots { flex:1; border-bottom:1px dotted rgba(250,245,233,.35); transform:translateY(-4px); }
.menu-list .price { font-family:'Baloo'; font-weight:700; color:var(--amber-2); white-space:nowrap; }

.product-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:1rem; }
@media (min-width:560px) { .product-grid { grid-template-columns:repeat(3,1fr); gap:1.25rem; } }
@media (min-width:900px) { .product-grid { grid-template-columns:repeat(4,1fr); } }
.product-card { background:#fff; border-radius:16px; overflow:hidden; box-shadow:0 8px 20px rgba(11,11,9,.07); transition:transform .3s cubic-bezier(.34,1.56,.64,1), box-shadow .3s ease; display:flex; flex-direction:column; }
.product-card:hover { transform:translateY(-4px) scale(1.02); box-shadow:0 16px 30px rgba(11,11,9,.13); }
.product-card .product-photo-wrap { width:100%; aspect-ratio:1/1; background:#fff; overflow:hidden; }
.product-card img { width:100%; height:100%; object-fit:cover; display:block; }
.product-body { padding:.7rem .8rem .9rem; text-align:center; }
.product-body h4 { font-family:'Baloo'; font-weight:700; font-size:.85rem; color:var(--ink); line-height:1.25; min-height:2.1em; }
.product-body .price { display:inline-block; margin-top:.4rem; font-family:'Baloo'; font-weight:700; font-size:.85rem; color:var(--green-dark); background:var(--cream); padding:.2rem .6rem; border-radius:999px; }

.carta-accordion { margin-top:2rem; display:flex; flex-direction:column; gap:.75rem; }
.carta-item { background:var(--cream); border-radius:14px; padding:0 1.1rem; border:1px solid rgba(28,26,20,.08); }
.carta-item summary {
  list-style:none; cursor:pointer; display:flex; align-items:center; justify-content:space-between;
  padding:1.1rem 0; font-family:'Baloo'; font-weight:700; font-size:1rem; color:var(--ink);
}
.carta-item summary::-webkit-details-marker { display:none; }
.carta-item summary::after {
  content:'+'; font-size:1.3rem; color:var(--green); transition:transform .25s ease; margin-left:.75rem;
}
.carta-item[open] summary::after { transform:rotate(45deg); }
.carta-count { margin-left:auto; margin-right:.75rem; font-family:'Work'; font-weight:600; font-size:.72rem; color:var(--green-dark); background:rgba(79,122,47,.12); padding:.2rem .55rem; border-radius:999px; }
.carta-item-body { padding-bottom:1.4rem; }

.motif-section { position:relative; overflow:hidden; }
.motif { position:absolute; width:56px; height:56px; opacity:.9; pointer-events:none; z-index:0; }
.motif-star { background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'><path fill='%23eab448' d='M50 5 L61 38 L96 38 L68 59 L79 92 L50 71 L21 92 L32 59 L4 38 L39 38 Z'/></svg>"); transform:rotate(-12deg); }
.motif-kite { background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'><polygon fill='%23c0463a' points='50,4 90,45 50,60 10,45'/><polygon fill='%234f7a2f' points='50,60 90,45 50,96 10,45'/></svg>"); transform:rotate(8deg); }
.motif-balloon { background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 130'><ellipse cx='50' cy='45' rx='38' ry='45' fill='%234f7a2f'/><polygon points='42,88 58,88 50,100' fill='%234f7a2f'/><line x1='50' y1='100' x2='50' y2='128' stroke='%23a89a7a' stroke-width='2'/></svg>"); transform:rotate(-6deg); }
@media (max-width:640px) { .motif { width:38px; height:38px; } }

.map-card { background:#fff; border-radius:18px; overflow:hidden; box-shadow:0 12px 26px rgba(11,11,9,.08); display:flex; flex-direction:column; align-items:center; text-align:center; }
.map-card-visual {
  width:100%; padding:2.5rem 1rem; background:linear-gradient(135deg, var(--green) 0%, var(--green-dark) 100%);
  color:var(--cream); position:relative; overflow:hidden;
}
.map-card-visual::before {
  content:''; position:absolute; inset:0; opacity:.15;
  background-image:radial-gradient(circle, var(--cream) 1.5px, transparent 1.5px);
  background-size:18px 18px;
}
.map-card-visual .pin { font-size:2.5rem; display:block; position:relative; }
.map-card-visual p { position:relative; margin-top:.5rem; font-family:'Baloo'; font-weight:700; }

footer { background:var(--black); color:var(--cream); padding:3.5rem 1.25rem 2.5rem; text-align:center; }
footer img { height:52px; width:52px; border-radius:12px; margin-bottom:.9rem; }
footer .fine { margin-top:1.6rem; font-size:.78rem; color:rgba(250,245,233,.5); }
.agency-credit {
  margin-top:1.8rem; padding-top:1.4rem; border-top:1px solid rgba(250,245,233,.12);
  display:flex; align-items:center; justify-content:center; gap:.55rem;
  font-size:.76rem; color:rgba(250,245,233,.55);
}
.agency-credit img { height:16px; width:auto; opacity:.9; }
.badge-note { display:inline-block; margin-top:2rem; font-size:.72rem; letter-spacing:.08em; text-transform:uppercase; color:rgba(250,245,233,.45); border:1px solid rgba(250,245,233,.2); padding:.4rem .9rem; border-radius:999px; }

.whatsapp-fab {
  position:fixed; left:20px; bottom:20px; z-index:80;
  width:58px; height:58px; border-radius:999px;
  background:linear-gradient(145deg, #2fdc6b, #1fb355);
  display:flex; align-items:center; justify-content:center;
  box-shadow:0 10px 24px rgba(0,0,0,.35), 0 0 0 1px rgba(255,255,255,.08) inset;
  transition:transform .25s cubic-bezier(.34,1.56,.64,1), box-shadow .25s ease;
}
.whatsapp-fab:hover { transform:translateY(-3px) scale(1.06); box-shadow:0 14px 30px rgba(0,0,0,.4); }
.whatsapp-fab:active { transform:translateY(0) scale(.96); }
.whatsapp-fab svg { position:relative; z-index:1; }
.whatsapp-fab-ping {
  position:absolute; inset:0; border-radius:999px;
  background:#2fdc6b; opacity:.55;
  animation:whatsappPing 2.4s cubic-bezier(0,0,.2,1) infinite;
}
@keyframes whatsappPing {
  0% { transform:scale(1); opacity:.55; }
  70% { transform:scale(1.7); opacity:0; }
  100% { transform:scale(1.7); opacity:0; }
}
@media (max-width:640px) {
  .whatsapp-fab { left:14px; bottom:16px; width:52px; height:52px; }
}

.reserva-form { background:#fff; border-radius:16px; padding:1.75rem; box-shadow:0 16px 34px rgba(11,11,9,.08); max-width:34rem; }
.form-row { display:grid; grid-template-columns:1fr; gap:1rem; }
@media (min-width:560px) { .form-row { grid-template-columns:1fr 1fr; } }
.form-field { margin-bottom:1rem; text-align:left; }
.form-field label { display:block; font-family:'Baloo'; font-weight:700; font-size:.82rem; margin-bottom:.35rem; color:var(--ink); }
.form-field input, .form-field select, .form-field textarea {
  width:100%; border:1.5px solid rgba(28,26,20,.15); border-radius:10px; padding:.65rem .8rem;
  font-family:'Work'; font-size:.92rem; color:var(--ink); background:var(--cream); transition:border-color .2s ease;
  -webkit-appearance:none; appearance:none; box-sizing:border-box; min-height:2.75rem;
}
.form-field input:focus, .form-field select:focus, .form-field textarea:focus { outline:none; border-color:var(--green); }
.form-field input[type="date"] { line-height:1.4; }
.form-field input[type="date"]::-webkit-date-and-time-value { text-align:left; }
.form-field input[type="number"]::-webkit-outer-spin-button,
.form-field input[type="number"]::-webkit-inner-spin-button { margin-left:.4rem; }
@media (max-width:640px) {
  .form-field input, .form-field select, .form-field textarea { font-size:16px; }
}
.form-success { background:#e9f3e1; border:1px solid var(--green); color:var(--green-dark); padding:1rem 1.2rem; border-radius:12px; margin-bottom:1.25rem; font-weight:600; }
.form-error { background:#fbeceb; border:1px solid var(--red); color:#7a2b24; padding:1rem 1.2rem; border-radius:12px; margin-bottom:1.25rem; font-weight:600; }
.honeypot-field { position:absolute; left:-9999px; top:-9999px; }
