/* =========================================================
   Santacruz Eventos & Canteli Catering — hoja de estilos
   Paleta oscura + marfil, títulos serif con énfasis en itálica.
   ========================================================= */
/* Tipografías (alojadas en el sitio, sin depender de Google) */
@font-face{font-family:'Abhaya Libre';font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/abhaya-libre-latin-400-normal.woff2) format('woff2')}
@font-face{font-family:'Abhaya Libre';font-style:normal;font-weight:600;font-display:swap;src:url(../fonts/abhaya-libre-latin-600-normal.woff2) format('woff2')}
@font-face{font-family:'Abhaya Libre';font-style:normal;font-weight:700;font-display:swap;src:url(../fonts/abhaya-libre-latin-700-normal.woff2) format('woff2')}
@font-face{font-family:'Montserrat';font-style:normal;font-weight:300;font-display:swap;src:url(../fonts/montserrat-latin-300-normal.woff2) format('woff2')}
@font-face{font-family:'Montserrat';font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/montserrat-latin-400-normal.woff2) format('woff2')}
@font-face{font-family:'Montserrat';font-style:normal;font-weight:500;font-display:swap;src:url(../fonts/montserrat-latin-500-normal.woff2) format('woff2')}
@font-face{font-family:'Montserrat';font-style:normal;font-weight:600;font-display:swap;src:url(../fonts/montserrat-latin-600-normal.woff2) format('woff2')}

:root{
  --negro:#070608;
  --negro-2:#0d0c10;
  --panel:#121116;
  --panel-2:#17161c;
  --marfil:#e7e0d6;
  --marfil-2:#d2cabd;
  --oro:#e7e0d6;
  --muted:#a59e92;
  --texto-suave:#ded8cb;
  --linea:rgba(231,224,214,.22);
  --linea-suave:rgba(255,255,255,.07);
  --blanco-02:rgba(255,255,255,.02);
  --wa:#1faf54;
  --rojo:#e3141d;
  --rojo-suave:rgba(227,20,29,.55);
  --ease:cubic-bezier(.16,1,.3,1);
  --fs-hero:clamp(2.6rem,5.8vw,5rem);
  --fs-display:clamp(2.4rem,6vw,5rem);
  --fs-title:clamp(2rem,4.5vw,3.4rem);
  --maxw:1320px;
  --maxw-ancho:1600px;
  --r:16px;
  --sombra:0 30px 80px rgba(0,0,0,.6);
  --serif:'Abhaya Libre',Georgia,serif;
  --sans:'Montserrat',system-ui,-apple-system,'Segoe UI',sans-serif;
}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;overflow-x:clip}
body{
  background:var(--negro);color:var(--marfil);
  font-family:var(--sans);font-weight:300;line-height:1.65;
  -webkit-font-smoothing:antialiased;overflow-x:clip;
}
h1,h2,h3,h4{font-family:var(--serif);font-weight:700;line-height:1.06;letter-spacing:.01em}
h1 em,h2 em,h3 em{font-style:italic;font-weight:400;color:var(--marfil)}
a{color:inherit;text-decoration:none}
img,video,iframe{max-width:100%;display:block}
ul[class],ol[class]{list-style:none}
button{font:inherit}
::selection{background:var(--marfil);color:var(--negro)}
[id]{scroll-margin-top:90px}

.wrap{max-width:var(--maxw);margin:0 auto;padding:0 32px}
.wrap-ancho{max-width:var(--maxw-ancho);margin:0 auto;padding:0 32px}
.center{text-align:center}
main{display:block}
section{position:relative}
.pad{padding:clamp(80px,11vw,140px) 0}
.pad-sm{padding:clamp(56px,8vw,90px) 0}

/* ---------- utilidades ---------- */
.skip-link{
  position:fixed;top:-60px;left:18px;z-index:200;
  background:var(--marfil);color:var(--negro);padding:10px 18px;border-radius:8px;
  font-weight:600;font-size:.85rem;transition:top .25s var(--ease);
}
.skip-link:focus{top:18px}
:focus-visible{outline:2px solid var(--marfil);outline-offset:3px}
.grano{
  position:fixed;inset:0;z-index:79;pointer-events:none;opacity:.035;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)'/%3E%3C/svg%3E");
}
.progreso{
  position:fixed;top:0;left:0;right:0;height:2px;z-index:120;
  background:linear-gradient(90deg,#9e0d14,var(--rojo));
  transform-origin:0 50%;transform:scaleX(0);
}

/* ---------- eyebrow ---------- */
.eyebrow{
  display:flex;align-items:center;gap:14px;
  font-size:.72rem;letter-spacing:.34em;text-transform:uppercase;
  color:var(--oro);font-weight:500;margin-bottom:22px;
}
.eyebrow::before{content:"";width:38px;height:1px;background:var(--rojo);flex:none}
.center .eyebrow,.eyebrow.centrado{justify-content:center}
.center .eyebrow::after,.eyebrow.centrado::after{content:"";width:38px;height:1px;background:var(--rojo);flex:none}
.eyebrow .num{font-family:var(--serif);font-size:1rem;font-weight:600;letter-spacing:.08em}

/* ---------- botones ---------- */
.btn{
  position:relative;display:inline-flex;align-items:center;justify-content:center;gap:.55em;
  font-family:var(--sans);font-weight:600;font-size:.82rem;letter-spacing:.12em;text-transform:uppercase;
  padding:17px 34px;border-radius:999px;cursor:pointer;border:1px solid transparent;
  transition:transform .35s var(--ease),box-shadow .35s var(--ease),border-color .3s,color .3s,background .3s;
  white-space:nowrap;overflow:hidden;
}
.btn svg{width:18px;height:18px;fill:currentColor;flex:none}
.btn-oro{background:linear-gradient(135deg,#e7e0d6,#d2cabd);color:#0d0c10;box-shadow:0 12px 34px rgba(0,0,0,.45)}
.btn-oro::before{
  content:"";position:absolute;top:0;left:-80%;width:50%;height:100%;
  background:linear-gradient(105deg,transparent,rgba(255,255,255,.45),transparent);
  transform:skewX(-20deg);transition:left .7s var(--ease);
}
.btn-oro:hover{transform:translateY(-2px);box-shadow:0 18px 48px rgba(0,0,0,.6)}
.btn-oro:hover::before{left:130%}
.btn-fantasma{border-color:var(--linea);color:var(--marfil);background:var(--blanco-02)}
.btn-fantasma:hover{border-color:var(--marfil);background:rgba(231,224,214,.06)}
.btn-wa{background:var(--wa);color:#06130a}
.btn-wa:hover{background:#2cc463;transform:translateY(-2px);box-shadow:0 14px 36px rgba(31,175,84,.35)}

/* ---------- header ---------- */
header.principal{
  position:fixed;top:0;left:0;right:0;z-index:110;
  transition:background .4s,border-color .4s,backdrop-filter .4s;
  border-bottom:1px solid transparent;
}
header.principal.solid{background:rgba(7,6,8,.9);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom-color:var(--linea)}
.nav{display:flex;align-items:center;justify-content:space-between;height:84px;gap:24px}
.brand{display:inline-flex;align-items:center;gap:16px;line-height:1}
.brand img{width:auto;display:block}
.brand .logo-sc{height:58px}
.brand .logo-ca{height:40px}
.brand-div{width:1px;height:38px;background:var(--linea)}
.brand:hover img{opacity:.88}
.brand-txt{display:flex;flex-direction:column;gap:6px}
.brand-txt b{font-family:var(--serif);font-weight:700;font-size:1.65rem;letter-spacing:.06em;line-height:.9}
.brand-txt small{font-size:.56rem;letter-spacing:.34em;text-transform:uppercase;color:var(--muted);font-weight:500}
nav.principal ul,.menu-overlay ul{list-style:none}
nav.principal ul{display:flex;gap:clamp(16px,2.2vw,30px)}
nav.principal > ul > li{display:flex;align-items:center;gap:10px}
nav.principal > ul > li::before{content:"";width:4px;height:4px;border-radius:50%;background:var(--rojo);flex:none}
nav.principal a{
  position:relative;font-size:.76rem;letter-spacing:.14em;text-transform:uppercase;
  color:var(--marfil);opacity:.85;transition:opacity .25s;padding:6px 0;
}
nav.principal a::after{
  content:"";position:absolute;left:0;bottom:0;width:100%;height:1px;
  background:var(--rojo);transform:scaleX(0);transform-origin:100% 50%;transition:transform .4s var(--ease);
}
nav.principal a:hover{opacity:1}
nav.principal a:hover::after{transform:scaleX(1);transform-origin:0 50%}
nav.principal li.has-sub{position:relative}
nav.principal .caret{display:inline-block;margin-left:.45em;font-size:.62em;transform:translateY(-1px);transition:transform .3s}
nav.principal li.has-sub:hover .caret,nav.principal li.has-sub:focus-within .caret{transform:translateY(-1px) rotate(180deg)}
nav.principal .subnav{
  position:absolute;top:100%;left:50%;transform:translate(-50%,10px);min-width:230px;
  padding:12px 0;margin-top:12px;background:rgba(7,6,8,.97);border:1px solid var(--linea);border-radius:14px;
  box-shadow:0 22px 60px rgba(0,0,0,.55);
  opacity:0;visibility:hidden;transition:opacity .28s var(--ease),transform .28s var(--ease),visibility .28s;
}
nav.principal .subnav::before{content:"";position:absolute;left:0;right:0;top:-14px;height:14px}
nav.principal li.has-sub:hover .subnav,nav.principal li.has-sub:focus-within .subnav{opacity:1;visibility:visible;transform:translate(-50%,0)}
nav.principal .subnav ul{display:block}
nav.principal .subnav a{display:block;padding:10px 24px;white-space:nowrap}
nav.principal .subnav a::after{content:none}
.nav-cta{display:flex;align-items:center;gap:14px}
.nav-cta .btn{padding:13px 26px;font-size:.74rem}
.burger{
  display:none;flex-direction:column;justify-content:center;gap:6px;
  width:46px;height:46px;padding:11px;cursor:pointer;background:none;border:1px solid var(--linea);border-radius:50%;
  z-index:131;
}
.burger span{display:block;width:100%;height:1.5px;background:var(--marfil);transition:.4s var(--ease)}
.burger.abierto span:nth-child(1){transform:translateY(7.5px) rotate(45deg)}
.burger.abierto span:nth-child(2){opacity:0}
.burger.abierto span:nth-child(3){transform:translateY(-7.5px) rotate(-45deg)}

/* menú lateral */
.menu-overlay{
  position:fixed;inset:0 0 0 auto;z-index:130;width:min(86vw,370px);
  background:rgba(7,6,8,.97);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);
  border-left:1px solid var(--linea);
  display:flex;flex-direction:column;padding:104px 30px 30px;overflow-y:auto;overscroll-behavior:contain;
  transform:translateX(100%);visibility:hidden;transition:transform .45s var(--ease),visibility .45s;
}
.menu-overlay.abierto{transform:none;visibility:visible}
.menu-overlay nav{flex:1}
.menu-overlay nav ul{display:flex;flex-direction:column}
.menu-overlay nav a{
  display:inline-flex;align-items:baseline;gap:14px;
  font-family:var(--serif);font-size:clamp(1.3rem,2.4vh,1.7rem);font-weight:600;color:var(--marfil);
  padding:5px 0;line-height:1.3;transition:transform .4s var(--ease),opacity .4s;
  transform:translateY(20px);opacity:0;
}
.menu-overlay.abierto nav a{transform:none;opacity:1}
.menu-overlay nav a:hover{transform:translateX(8px)}
.menu-overlay nav a .idx{font-family:var(--sans);font-size:.62rem;letter-spacing:.26em;color:var(--oro);font-weight:500}
.menu-overlay .menu-sub a{font-size:clamp(1.05rem,2vh,1.3rem);font-weight:500;opacity:.8}
.menu-pie{display:flex;flex-direction:column;gap:6px;padding-top:16px;margin-top:20px;border-top:1px solid var(--linea);font-size:.78rem;color:var(--muted)}
body.menu-abierto{overflow:hidden}
body.menu-abierto::before{content:"";position:fixed;inset:0;z-index:129;background:rgba(0,0,0,.55)}
body.menu-abierto header.principal{z-index:140;background:rgba(7,6,8,.97);border-bottom-color:var(--linea)}

/* ---------- hero ---------- */
.hero{position:relative;min-height:100vh;min-height:100svh;display:flex;align-items:flex-end;overflow:hidden;padding:140px 0 0}
.hero-media{position:absolute;inset:0;z-index:0;background:var(--negro-2)}
.hero-media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;animation:zoomLento 24s var(--ease) both}
@keyframes zoomLento{from{transform:scale(1.12)}to{transform:scale(1)}}
.hero-media::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(0deg,var(--negro) 0%,rgba(7,6,8,.68) 30%,rgba(7,6,8,.5) 60%,rgba(7,6,8,.62) 100%);
}
.hero .wrap{position:relative;z-index:2;padding-bottom:64px;width:100%}
.hero .eyebrow{font-size:clamp(.8rem,1.05vw,1rem);letter-spacing:.3em}
.hero h1{font-size:var(--fs-hero);letter-spacing:-.01em;margin:10px 0 26px}
.linea-h1{display:block;overflow:hidden;padding-bottom:.06em}
.linea-h1 > span{display:inline-block;transition:transform 1.1s var(--ease)}
.js .hero:not(.listo) .linea-h1 > span{transform:translateY(115%)}
.linea-h1:nth-child(2) > span{transition-delay:.12s}
.bullets-hero{display:grid;grid-template-columns:repeat(2,auto);justify-content:start;gap:12px 44px;margin:8px 0 36px}
.bullets-hero li{display:flex;gap:12px;align-items:baseline;font-size:clamp(.95rem,1.1vw,1.08rem);color:var(--texto-suave)}
.bullets-hero li::before{content:"◆";font-size:.55rem;color:var(--rojo);flex:none}
.hero-cta{display:flex;flex-wrap:wrap;gap:16px;margin-bottom:34px}
.scroll-hint{
  position:absolute;right:46px;bottom:120px;z-index:3;
  display:flex;flex-direction:column;align-items:center;gap:12px;
  font-size:.7rem;letter-spacing:.34em;text-transform:uppercase;color:#cfc8bb;writing-mode:vertical-rl;
}
.scroll-hint::after{content:"";width:1px;height:54px;background:linear-gradient(180deg,var(--oro),transparent);animation:gotear 2.4s var(--ease) infinite}
@keyframes gotear{0%{transform:scaleY(0);transform-origin:0 0}45%{transform:scaleY(1);transform-origin:0 0}55%{transform:scaleY(1);transform-origin:0 100%}100%{transform:scaleY(0);transform-origin:0 100%}}
.video-toggle{
  position:absolute;left:24px;bottom:24px;z-index:5;
  width:44px;height:44px;border-radius:50%;cursor:pointer;
  border:1px solid var(--linea);background:rgba(7,6,8,.55);backdrop-filter:blur(6px);
  color:var(--marfil);font-size:.8rem;line-height:1;display:flex;align-items:center;justify-content:center;
  transition:border-color .3s,background .3s;
}
.video-toggle:hover{border-color:var(--marfil);background:rgba(7,6,8,.8)}

/* ---------- cifras ---------- */
.stats-fila{padding:clamp(48px,7vw,80px) 0;border-bottom:1px solid var(--linea)}
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:0 32px}
.stat{padding:22px 0;border-top:1px solid var(--linea);position:relative}
.stat::before{content:"";position:absolute;top:-1px;left:0;width:38px;height:1px;background:var(--rojo)}
.stat .n{
  font-family:var(--serif);font-size:clamp(2.6rem,4.5vw,4rem);color:var(--marfil);
  font-weight:700;line-height:1;display:flex;align-items:baseline;gap:6px;
}
.stat .n small{font-size:.45em;color:var(--muted)}
.stat .t{font-size:.78rem;color:var(--muted);letter-spacing:.1em;text-transform:uppercase;margin-top:8px}

/* ---------- títulos ---------- */
h2.title{font-size:var(--fs-title);margin-bottom:18px}
h2.display{font-size:var(--fs-display);margin-bottom:18px}
.sub{color:var(--muted);max-width:640px;font-weight:300;font-size:1.02rem}
.center .sub{margin-left:auto;margin-right:auto}

/* ---------- 01 catering ---------- */
.catering-mock{display:grid;grid-template-columns:1.3fr .95fr 1fr;border-top:1px solid var(--linea);background:var(--negro-2)}
.panel-cat{position:relative;display:flex;flex-direction:column;justify-content:center;padding:clamp(40px,4vw,72px);overflow:hidden;min-height:560px}
.panel-cat .fondo-cat{position:absolute;inset:0;z-index:0}
.panel-cat .fondo-cat img{width:100%;height:100%;object-fit:cover}
.panel-cat .fondo-cat::after{content:"";position:absolute;inset:0;background:rgba(7,6,8,.84)}
.panel-cat > *{position:relative;z-index:2}
.panel-cat h2{font-size:clamp(2rem,2.6vw,2.9rem);margin:0 0 16px}
.panel-cat p{max-width:440px;color:var(--texto-suave);font-size:1rem}
.panel-cat p strong{color:var(--marfil);font-weight:600}
.panel-cat .btn{align-self:flex-start;margin-top:28px}
.cat-vertical{position:relative;margin:0;overflow:hidden;background:var(--negro);min-width:0}
.cat-vertical img,.cat-vertical video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 1.4s var(--ease)}
.cat-vertical:hover img{transform:scale(1.04)}
.platos-apilados{display:grid;grid-template-rows:repeat(3,1fr);min-width:0}
.plato-col{position:relative;overflow:hidden;margin:0;aspect-ratio:16/10.5}
.plato-col img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease)}
.plato-col:hover img{transform:scale(1.05)}
.plato-col figcaption,.cat-vertical figcaption{
  position:absolute;left:0;right:0;bottom:0;z-index:2;padding:16px 20px;
  background:linear-gradient(0deg,rgba(7,6,8,.85),transparent);
  font-size:.66rem;letter-spacing:.22em;text-transform:uppercase;color:var(--marfil);
  display:flex;align-items:center;gap:10px;
}
.plato-col figcaption::before,.cat-vertical figcaption::before{content:"◆";font-size:.5rem;color:var(--rojo)}

.estaciones{padding:clamp(60px,8vw,100px) 0;background:var(--negro-2);border-top:1px solid var(--linea-suave)}
.vgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.vcard{
  position:relative;background:linear-gradient(180deg,var(--panel-2),var(--panel));
  border:1px solid var(--linea);border-radius:var(--r);padding:34px 28px;overflow:hidden;
  transition:transform .5s var(--ease),border-color .4s;
}
.vcard::before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,var(--rojo),transparent);opacity:0;transition:opacity .4s}
.vcard:hover{transform:translateY(-8px);border-color:rgba(231,224,214,.5)}
.vcard:hover::before{opacity:1}
.vcard .ic{font-family:var(--serif);font-size:1rem;letter-spacing:.2em;color:var(--muted);margin-bottom:18px}
.vcard h3{font-size:1.55rem;margin-bottom:12px}
.vcard ul{display:grid;gap:7px}
.vcard li{font-size:.88rem;color:var(--muted);display:flex;gap:10px;align-items:baseline}
.vcard li::before{content:"◆";font-size:.45rem;color:var(--rojo);flex:none;transform:translateY(-2px)}
.nota-dietas{margin-top:34px;text-align:center;font-size:.74rem;letter-spacing:.24em;text-transform:uppercase;color:var(--muted)}

/* ---------- 02 eventos ---------- */
.rasgos{display:grid;margin-top:34px}
.rasgos li{
  display:flex;gap:18px;align-items:flex-start;padding:18px 0;
  border-bottom:1px solid var(--linea-suave);font-size:.95rem;color:#d8d2c6;
}
.rasgos li::before{content:"◆";color:var(--rojo);font-size:.6rem;margin-top:7px;flex:none}
.rasgos li strong{color:var(--marfil);font-weight:500}
.botones-landings{display:flex;flex-wrap:wrap;gap:14px;margin:36px 0 8px}
.slider-flechas{position:relative}
.carrusel{
  display:grid;grid-auto-flow:column;grid-auto-columns:clamp(238px,22.5vw,330px);
  gap:18px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;
  padding:10px 4px 20px;margin-top:50px;
  scrollbar-width:thin;scrollbar-color:rgba(231,224,214,.35) transparent;
}
.carrusel::-webkit-scrollbar{height:6px}
.carrusel::-webkit-scrollbar-track{background:rgba(255,255,255,.04);border-radius:3px}
.carrusel::-webkit-scrollbar-thumb{background:rgba(231,224,214,.3);border-radius:3px}
.celda-ev{position:relative;display:block;aspect-ratio:3/4.3;border-radius:var(--r);overflow:hidden;scroll-snap-align:start;border:1px solid transparent;transition:border-color .4s;margin:0}
.celda-ev:hover{border-color:var(--linea)}
.celda-ev img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease)}
.celda-ev:hover img{transform:scale(1.05)}
.sl-flecha{
  position:absolute;top:calc(50% - 5px);transform:translateY(-50%);z-index:6;
  width:48px;height:48px;border-radius:50%;border:1px solid var(--linea);
  background:rgba(7,6,8,.6);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);
  color:var(--marfil);display:flex;align-items:center;justify-content:center;cursor:pointer;
  box-shadow:0 8px 24px rgba(0,0,0,.4);transition:opacity .35s var(--ease),background .3s,transform .25s;
}
.sl-flecha:hover{background:rgba(7,6,8,.88);transform:translateY(-50%) scale(1.07)}
.sl-flecha svg{width:21px;height:21px;display:block}
.sl-prev{left:8px}
.sl-next{right:8px}
.sl-flecha.is-oculta{opacity:0;pointer-events:none}

/* ---------- 03 propuestas ---------- */
.tgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-top:56px;text-align:left}
.tcard{background:var(--panel);border:1px solid var(--linea);border-radius:var(--r);overflow:hidden;transition:transform .5s var(--ease),border-color .4s;display:flex;flex-direction:column}
.tcard:hover{transform:translateY(-7px);border-color:rgba(231,224,214,.5)}
.tcard .tvid{position:relative;aspect-ratio:4/4.4;overflow:hidden}
.tcard .tvid img{width:100%;height:100%;object-fit:cover;opacity:.85;transition:transform 1.1s var(--ease),opacity .4s}
.tcard:hover .tvid img{transform:scale(1.06);opacity:1}
.tcard .tvid::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(18,17,22,.9),transparent 45%)}
.tcard .tvid h3{position:absolute;left:22px;right:22px;bottom:18px;z-index:2;font-size:clamp(1.5rem,1.9vw,1.9rem)}
.tcard .cuerpo{padding:20px 22px 26px;display:flex;flex-direction:column;gap:12px;flex:1}
.tcard .tag{font-size:.64rem;letter-spacing:.26em;text-transform:uppercase;color:#ff5a60;font-weight:500}
.tcard p{font-size:.9rem;color:var(--muted);line-height:1.6}
.tcard .mas{margin-top:auto;display:inline-flex;align-items:center;gap:8px;font-size:.7rem;letter-spacing:.18em;text-transform:uppercase;color:var(--marfil);font-weight:500}
.tcard .mas::after{content:"→";transition:transform .3s var(--ease)}
.tcard:hover .mas::after{transform:translateX(4px)}

.extras{margin-top:56px}
.extras .tit-extras{font-size:.7rem;letter-spacing:.3em;text-transform:uppercase;color:var(--muted);margin-bottom:18px}
.chips{display:flex;flex-wrap:wrap;gap:10px;justify-content:center}
.chips li{border:1px solid var(--linea);border-radius:999px;padding:9px 18px;font-size:.82rem;color:var(--texto-suave);background:var(--blanco-02)}

.banner-boliche{
  display:grid;grid-template-columns:1.15fr 1fr;align-items:stretch;margin-top:56px;
  border:1px solid var(--linea);border-radius:var(--r);overflow:hidden;background:var(--negro-2);text-align:left;
}
.banner-boliche .bt-cont{padding:clamp(34px,4.2vw,60px);display:flex;flex-direction:column;justify-content:center;align-items:flex-start;gap:16px}
.banner-boliche .eyebrow{margin-bottom:0;justify-content:flex-start}
.banner-boliche .eyebrow::after{content:none}
.banner-boliche h3{font-size:clamp(1.6rem,2.5vw,2.4rem);line-height:1.2}
.banner-boliche .bt-txt{color:var(--texto-suave);font-size:.98rem;line-height:1.85;max-width:480px}
.banner-boliche .bt-txt strong{color:var(--marfil);font-weight:600}
.banner-boliche .btn{margin-top:10px}
.banner-boliche .bt-img{position:relative;min-height:320px}
.banner-boliche .bt-img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}

/* ---------- 04 contacto ---------- */
.split{display:grid;grid-template-columns:1.04fr 1fr;gap:clamp(40px,6vw,88px);align-items:start}
.split > *{min-width:0}
.media{position:relative;border-radius:var(--r);overflow:hidden;box-shadow:var(--sombra);border:1px solid rgba(231,224,214,.14);background:var(--panel)}
.mapa{aspect-ratio:16/10;margin:28px 0 30px}
.mapa iframe{width:100%;height:100%;border:0;filter:grayscale(1) invert(.92) contrast(.88) brightness(.95)}
.mapa .cap{
  position:absolute;left:0;right:0;bottom:0;z-index:2;padding:16px 22px;
  background:linear-gradient(0deg,rgba(7,6,8,.92),transparent);
  font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;color:var(--marfil);
  display:flex;align-items:center;gap:10px;
}
.mapa .cap::before,.equipo .cap::before{content:"◆";font-size:.5rem;color:var(--rojo)}
.formcard{
  background:linear-gradient(180deg,var(--panel-2),var(--panel));
  border:1px solid var(--linea);border-radius:20px;padding:clamp(28px,4vw,44px);box-shadow:var(--sombra);
}
.formcard h2{font-size:1.9rem;margin-bottom:6px}
.formcard .pista{font-size:.88rem;color:var(--muted);margin-bottom:26px}
.field{margin-bottom:18px}
.field label{display:block;font-size:.74rem;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);margin-bottom:8px;font-weight:500}
.field input,.field select,.field textarea{
  width:100%;background:rgba(7,6,8,.7);border:1px solid rgba(255,255,255,.12);color:var(--marfil);
  padding:14px 16px;border-radius:10px;font-family:var(--sans);font-size:.95rem;font-weight:300;
  transition:border-color .25s,box-shadow .25s;color-scheme:dark;
}
.field textarea{resize:vertical;min-height:96px}
.field input::placeholder,.field textarea::placeholder{color:#6f695f}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--marfil);box-shadow:0 0 0 3px rgba(231,224,214,.15)}
.field select{
  appearance:none;-webkit-appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%23e7e0d6' d='M6 8L0 0h12z'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 16px center;padding-right:40px;
}
.field select option{background:var(--panel);color:var(--marfil)}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.formcard .btn-oro{width:100%;margin-top:10px;padding:18px}
.privacidad{font-size:.76rem;color:var(--muted);text-align:center;margin-top:16px;line-height:1.55}

/* ---------- 05 nosotros ---------- */
.banda-nosotros{position:relative;min-height:88vh;display:flex;align-items:center;overflow:hidden;padding:110px 0}
.banda-nosotros .fondo-n{position:absolute;inset:0}
.banda-nosotros .fondo-n img{width:100%;height:100%;object-fit:cover}
.banda-nosotros .fondo-n::after{
  content:"";position:absolute;inset:0;
  background:
    linear-gradient(90deg,rgba(7,6,8,.95) 0%,rgba(7,6,8,.8) 40%,rgba(7,6,8,.25) 75%,rgba(7,6,8,.45) 100%),
    linear-gradient(0deg,var(--negro) 0%,transparent 22%),
    linear-gradient(180deg,var(--negro-2) 0%,transparent 18%);
}
.banda-nosotros .wrap{position:relative;z-index:2;width:100%}
.banda-nosotros .contenido-n{max-width:640px}
.datos-clave{
  border-left:2px solid var(--rojo);
  padding:26px 32px;margin:26px 0 8px;border-radius:0 var(--r) var(--r) 0;
}
.datos-clave p{font-size:1.02rem;color:#d9d3c7}
.datos-clave p + p{margin-top:14px}
.datos-clave strong{color:var(--marfil);font-weight:500}
.nota-n{margin-top:34px;font-size:.74rem;letter-spacing:.3em;text-transform:uppercase;color:#cfc8bb}

.marcas{background:var(--negro);border-top:1px solid var(--linea-suave)}
.marcas-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:40px}
.marca{
  display:flex;align-items:center;gap:26px;padding:30px 32px;border:1px solid var(--linea);border-radius:var(--r);
  background:linear-gradient(180deg,var(--panel-2),var(--panel));text-align:left;
}
.marca .logo-box{flex:none;width:120px;height:120px;border-radius:14px;background:#000;display:flex;align-items:center;justify-content:center;overflow:hidden;border:1px solid var(--linea-suave)}
.marca .logo-box img{max-width:86%;max-height:86%;object-fit:contain}
.marca .logo-box span{font-family:var(--serif);font-size:2.4rem;font-weight:700}
.marca h3{font-size:1.6rem;margin-bottom:6px}
.marca p{font-size:.9rem;color:var(--muted)}
.marca .dir{display:block;margin-top:10px;font-size:.74rem;letter-spacing:.14em;text-transform:uppercase;color:var(--marfil)}

.equipo{margin:34px 0 0;aspect-ratio:16/8}
.equipo img{width:100%;height:100%;object-fit:cover}
.equipo .cap{position:absolute;left:0;right:0;bottom:0;padding:18px 24px;background:linear-gradient(0deg,rgba(7,6,8,.9),transparent);font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;color:var(--marfil);display:flex;align-items:center;gap:10px;text-align:left}

/* ---------- footer ---------- */
footer.principal .brand .logo-sc{height:70px}
footer.principal .brand .logo-ca{height:48px}
footer.principal{position:relative;background:#050406;border-top:1px solid var(--linea);padding:90px 0 0;overflow:hidden}
.fgrid{display:grid;grid-template-columns:1.4fr .9fr 1fr;gap:48px}
footer.principal .mision{color:var(--muted);font-size:.88rem;max-width:340px;margin-top:18px}
.fcol-tit{font-size:.7rem;letter-spacing:.26em;text-transform:uppercase;color:var(--oro);margin-bottom:18px;font-weight:500}
.fcol a,.fcol address{display:block;font-style:normal;font-size:.88rem;color:var(--muted);margin-bottom:10px;transition:color .25s;line-height:1.5}
.fcol a:hover{color:var(--marfil)}
.redes{display:flex;gap:12px;margin-top:22px}
.redes a{width:42px;height:42px;border:1px solid var(--linea);border-radius:50%;display:flex;align-items:center;justify-content:center;transition:border-color .3s,background .3s,transform .3s;margin:0}
.redes a:hover{border-color:var(--marfil);background:rgba(231,224,214,.1);transform:translateY(-3px)}
.redes svg{width:17px;height:17px;fill:var(--marfil)}
.legales{
  border-top:1px solid rgba(255,255,255,.06);margin-top:56px;
  padding-top:24px;padding-bottom:28px;font-size:.78rem;color:var(--muted);
  display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap;
}

/* ---------- flotantes ---------- */
.wa-float{
  position:fixed;right:26px;bottom:26px;z-index:115;width:58px;height:58px;border-radius:50%;
  background:var(--wa);display:flex;align-items:center;justify-content:center;
  box-shadow:0 14px 34px rgba(31,175,84,.45);transition:transform .3s var(--ease);
}
.wa-float:hover{transform:scale(1.1)}
.wa-float svg{width:30px;height:30px;fill:#06130a}
.cta-movil{display:none}

/* ---------- animaciones de entrada ---------- */
.js .reveal{opacity:0;transform:translateY(34px);transition:opacity .9s var(--ease),transform .9s var(--ease)}
.js .reveal.in{opacity:1;transform:none}
.js [data-stagger] > *{opacity:0;transform:translateY(28px);transition:opacity .8s var(--ease),transform .8s var(--ease)}
.js [data-stagger].in > *{opacity:1;transform:none}
.js [data-stagger].in > *:nth-child(2){transition-delay:.08s}
.js [data-stagger].in > *:nth-child(3){transition-delay:.16s}
.js [data-stagger].in > *:nth-child(4){transition-delay:.24s}

/* ---------- responsive ---------- */
@media (max-width:1240px){
  .vgrid,.tgrid{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:1080px){
  nav.principal{display:none}
  .burger{display:flex}
  .nav-cta .btn{padding:10px 14px;font-size:.62rem;gap:.4em}
  .nav-cta .btn svg{width:14px;height:14px}
  .split{grid-template-columns:1fr}
  .scroll-hint{display:none}
}
@media (max-width:900px){
  .stats{grid-template-columns:1fr 1fr;gap:0 18px}
  .catering-mock{grid-template-columns:1fr}
  .panel-cat{min-height:auto;padding:64px 22px}
  .cat-vertical{height:min(70vh,560px)}
  .plato-col{aspect-ratio:16/10}
  .banner-boliche{grid-template-columns:1fr}
  .banner-boliche .bt-img{order:-1;min-height:0;aspect-ratio:16/10}
  .banner-boliche .btn{align-self:stretch}
  .marcas-grid{grid-template-columns:1fr}
}
@media (max-width:760px){
  .wrap,.wrap-ancho{padding:0 20px}
  .pad{padding:72px 0}
  .nav{height:72px}
  .brand{gap:11px}
  .brand .logo-sc{height:44px}
  .brand .logo-ca{height:30px}
  .brand-div{height:28px}
  .equipo{aspect-ratio:4/3}
  .hero{min-height:92svh}
  .hero h1{font-size:clamp(2.5rem,11vw,3.8rem)}
  .bullets-hero{grid-template-columns:1fr;gap:10px}
  .hero-cta{flex-direction:column;align-items:stretch}
  .hero-cta .btn{width:100%}
  .hero-cta .btn-wa{display:none}
  .eyebrow{letter-spacing:.22em}
  .btn{white-space:normal}
  .botones-landings{flex-direction:column;align-items:stretch}
  .botones-landings .btn{width:100%}
  .vgrid{grid-template-columns:1fr}
  .tgrid{grid-template-columns:1fr 1fr;gap:12px}
  .tcard .cuerpo{padding:16px 16px 20px}
  .tcard p{font-size:.84rem}
  .row2{grid-template-columns:1fr}
  .datos-clave{padding:20px 22px}
  .banda-nosotros .fondo-n img{object-position:70% center}
  .marca{flex-direction:column;align-items:flex-start;padding:24px}
  .fgrid{grid-template-columns:1fr 1fr}
  .fgrid > div:first-child{grid-column:1 / -1}
  .sl-flecha{width:42px;height:42px}
  .wa-float{display:none}
  .cta-movil{
    display:flex;position:fixed;left:0;right:0;bottom:0;z-index:114;gap:10px;
    background:rgba(7,6,8,.96);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);
    border-top:1px solid var(--linea);padding:10px 14px calc(10px + env(safe-area-inset-bottom));
  }
  .cta-movil .btn{flex:1;padding:14px;font-size:.74rem}
  .cta-movil .btn-wa{flex:0 0 54px;padding:14px 0}
  footer.principal{padding-bottom:74px}
}
@media (max-width:560px){
  .tgrid{grid-template-columns:1fr}
  .stat .n{font-size:clamp(2.2rem,9vw,2.8rem)}
}
@media (max-width:560px){
  .nav-cta .btn{font-size:0;padding:11px;gap:0}
  .hero .eyebrow{letter-spacing:.2em}
  .nav-cta .btn svg{width:18px;height:18px}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important}
  html{scroll-behavior:auto}
  .reveal,[data-stagger] > *{opacity:1!important;transform:none!important}
  .linea-h1 > span{transform:none!important}
}
