/* ==========================================================
   Lindo Michoacán — rediseño "chocolate de lujo"
   Paleta: chocolate oscuro + crema + caramelo
   Tipografía: Playfair Display (títulos) + Jost (texto)
   ========================================================== */
:root{
  --choco-950:#110501;
  --choco-900:#170602;       /* mismo tono que las orillas del video del hero */
  --choco-850:#1F0B04;
  --choco-800:#2A130A;
  --choco-700:#3B2014;
  --cream:#F4EBDD;
  --cream-2:#EADCC6;
  --paper:#FBF6EE;
  --caramel:#C9A06B;
  --caramel-2:#9E7440;       /* caramelo oscuro: legible sobre crema */
  --caramel-soft:#E6CA9F;
  --ink:#2A130A;
  --ink-soft:#6E5646;
  --on-dark:#F4EBDD;
  --on-dark-soft:#C2AC95;
  --line-dark:rgba(244,235,221,.12);
  --line-light:rgba(42,19,10,.12);
  --serif:'Playfair Display',Georgia,'Times New Roman',serif;
  --sans:'Jost',system-ui,-apple-system,'Segoe UI',sans-serif;
  --ease:cubic-bezier(.2,.8,.2,1);
  --topbar:36px;
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;}
body{margin:0;font-family:var(--sans);font-weight:400;background:var(--choco-900);color:var(--on-dark);-webkit-font-smoothing:antialiased;overflow-x:clip;}
h1,h2,h3{font-family:var(--serif);font-weight:500;margin:0;line-height:1.08;letter-spacing:-.01em;}
p{margin:0;}
a{color:inherit;text-decoration:none;}
img{display:block;max-width:100%;}
button{font-family:var(--sans);cursor:pointer;}
.wrap{max-width:1240px;margin:0 auto;padding:0 32px;}
@media (max-width:600px){ .wrap{padding:0 22px;} }
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;}

/* ---------- Intro (video de marca) ---------- */
#intro-overlay{position:fixed;inset:0;z-index:9999;overflow:hidden;background:radial-gradient(62vh 58vh at 50% 46%,#2E1207 0%,rgba(46,18,7,0) 100%),var(--choco-900);transition:opacity .9s cubic-bezier(.4,0,.2,1),transform .9s cubic-bezier(.4,0,.2,1);}
#intro-overlay.intro-done{opacity:0;transform:scale(1.08);pointer-events:none;}
#intro-video{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;object-position:50% 50%;display:block;}
/* el video se ve completo y sus orillas se funden con el mismo chocolate del fondo: sin bordes en ninguna pantalla */
@media (max-aspect-ratio:9/16){ /* celulares (más altos que el video): se funde arriba y abajo */
  #intro-video{-webkit-mask-image:linear-gradient(180deg,transparent calc(50% - 88.9vw),#000 calc(50% - 72vw),#000 calc(50% + 72vw),transparent calc(50% + 88.9vw));mask-image:linear-gradient(180deg,transparent calc(50% - 88.9vw),#000 calc(50% - 72vw),#000 calc(50% + 72vw),transparent calc(50% + 88.9vw));}
}
@media (min-aspect-ratio:9/16){ /* tablets y compu (más anchas): se funde a los lados */
  #intro-video{-webkit-mask-image:linear-gradient(90deg,transparent calc(50% - 28.2vh),#000 calc(50% - 23.5vh),#000 calc(50% + 23.5vh),transparent calc(50% + 28.2vh));mask-image:linear-gradient(90deg,transparent calc(50% - 28.2vh),#000 calc(50% - 23.5vh),#000 calc(50% + 23.5vh),transparent calc(50% + 28.2vh));}
}
/* pantallas horizontales: video horizontal a pantalla completa, sin máscara */
#intro-video.is-wide{object-fit:cover;-webkit-mask-image:none;mask-image:none;}
#intro-skip{position:absolute;right:18px;bottom:18px;background:rgba(17,5,1,.5);color:#fff;border:none;padding:10px 18px;border-radius:999px;font-weight:500;font-size:12px;letter-spacing:.14em;text-transform:uppercase;backdrop-filter:blur(6px);}
#lm-root{transition:opacity .9s ease,transform .9s var(--ease);}
#lm-root.page-hidden{opacity:0;transform:scale(.985);}
@media (prefers-reduced-motion:reduce){ #intro-overlay{display:none;} }

/* ---------- Texto base ---------- */
.eyebrow{display:inline-flex;align-items:center;gap:14px;font-size:12px;font-weight:500;letter-spacing:.26em;text-transform:uppercase;color:var(--caramel);}
.eyebrow::before{content:'';width:30px;height:1px;background:currentColor;opacity:.7;}
.center .eyebrow::after{content:'';width:30px;height:1px;background:currentColor;opacity:.7;}
.sec-cream .eyebrow{color:var(--caramel-2);}
h1 em,h2 em{font-style:italic;font-weight:400;color:var(--caramel-soft);}
.sec-cream h2 em{color:var(--caramel-2);}

/* ---------- Botones ---------- */
.btn{position:relative;overflow:hidden;isolation:isolate;display:inline-flex;align-items:center;justify-content:center;gap:12px;font-family:var(--sans);font-size:13px;font-weight:500;letter-spacing:.16em;text-transform:uppercase;padding:17px 32px;border-radius:2px;border:1px solid transparent;white-space:nowrap;transition:transform .35s var(--ease),background .35s ease,color .35s ease,border-color .35s ease,box-shadow .35s ease;}
.btn::after{content:'';position:absolute;top:0;left:-70%;width:45%;height:100%;background:linear-gradient(110deg,transparent,rgba(255,255,255,.45),transparent);transform:skewX(-18deg);transition:left .7s var(--ease);pointer-events:none;}
.btn:hover::after{left:130%;}
.btn:hover{transform:translateY(-2px);}
.btn:active{transform:translateY(0) scale(.98);}
.btn-gold{background:var(--caramel);color:var(--choco-900);}
.btn-gold:hover{background:var(--caramel-soft);box-shadow:0 16px 34px rgba(201,160,107,.25);}
.btn-line{border-color:rgba(244,235,221,.32);color:var(--on-dark);}
.btn-line:hover{border-color:var(--caramel);color:var(--caramel-soft);}
.btn-dark{background:var(--choco-900);color:var(--cream);}
.btn-dark:hover{background:var(--choco-700);box-shadow:0 16px 34px rgba(42,19,10,.25);}
.btn-line-dark{border-color:rgba(42,19,10,.3);color:var(--ink);}
.btn-line-dark:hover{border-color:var(--ink);background:var(--ink);color:var(--cream);}
.btn svg{flex-shrink:0;}
.link-arrow{display:inline-flex;align-items:center;gap:12px;font-size:13px;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:var(--on-dark);padding:8px 0;border-bottom:1px solid rgba(244,235,221,.3);transition:border-color .3s ease,color .3s ease;}
.link-arrow span{transition:transform .35s var(--ease);}
.link-arrow:hover{color:var(--caramel-soft);border-color:var(--caramel);}
.link-arrow:hover span{transform:translateX(5px);}

/* ---------- Barra superior ---------- */
.topbar{position:relative;z-index:101;height:var(--topbar);background:var(--caramel);color:var(--choco-900);font-size:12px;letter-spacing:.08em;}
.topbar .wrap{height:100%;display:flex;align-items:center;justify-content:space-between;gap:16px;}
.topbar a{font-weight:500;display:inline-flex;align-items:center;gap:8px;}
.topbar a span{text-decoration:underline;text-underline-offset:3px;}
@media (max-width:640px){ .topbar .tb-left{display:none;} .topbar .wrap{justify-content:center;} }

/* ---------- Navegación ---------- */
#lm-nav{position:fixed;top:var(--topbar);left:0;right:0;z-index:100;transition:top .35s var(--ease),background .35s ease,border-color .35s ease;border-bottom:1px solid transparent;}
#lm-nav.scrolled{top:0;background:rgba(17,5,1,.84);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-color:var(--line-dark);}
#lm-nav .wrap{height:86px;display:flex;align-items:center;justify-content:space-between;gap:24px;transition:height .35s var(--ease);}
#lm-nav.scrolled .wrap{height:68px;}
.brand{display:flex;align-items:center;gap:13px;}
.brand img{width:46px;height:46px;border-radius:50%;object-fit:cover;object-position:center 42%;box-shadow:0 0 0 1px rgba(201,160,107,.55);}
.brand-name{font-size:14.5px;font-weight:500;letter-spacing:.24em;text-transform:uppercase;color:var(--on-dark);line-height:1.1;}
.brand-name small{display:block;margin-top:4px;font-size:9.5px;font-weight:400;letter-spacing:.32em;color:var(--caramel);}
.nav-links{display:flex;align-items:center;gap:30px;}
.nav-links a{position:relative;font-size:12px;font-weight:500;letter-spacing:.18em;text-transform:uppercase;color:rgba(244,235,221,.82);padding:6px 0;transition:color .3s ease;}
.nav-links a::after{content:'';position:absolute;left:0;right:100%;bottom:0;height:1px;background:var(--caramel);transition:right .35s var(--ease);}
.nav-links a:hover{color:var(--on-dark);}
.nav-links a:hover::after{right:0;}
.nav-cta{display:inline-flex;align-items:center;gap:10px;font-size:12px;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:var(--on-dark);}
.nav-cta .ring{width:42px;height:42px;border-radius:50%;border:1px solid rgba(201,160,107,.6);display:grid;place-items:center;color:var(--caramel-soft);transition:background .3s ease,color .3s ease;}
.nav-cta:hover .ring{background:var(--caramel);color:var(--choco-900);}
#menu-btn{display:none;width:46px;height:46px;border-radius:50%;border:1px solid rgba(244,235,221,.3);background:transparent;color:var(--on-dark);align-items:center;justify-content:center;}
#mobile-menu{position:fixed;inset:0;z-index:99;background:rgba(17,5,1,.97);backdrop-filter:blur(10px);display:flex;flex-direction:column;justify-content:center;padding:100px 32px 40px;gap:6px;opacity:0;visibility:hidden;transition:opacity .35s ease,visibility .35s;}
#mobile-menu.open{opacity:1;visibility:visible;}
#mobile-menu a.mm-link{font-family:var(--serif);font-size:38px;color:var(--on-dark);padding:8px 0;border-bottom:1px solid var(--line-dark);transform:translateY(12px);opacity:0;transition:transform .5s var(--ease),opacity .5s ease,color .3s ease;}
#mobile-menu.open a.mm-link{transform:none;opacity:1;}
#mobile-menu a.mm-link:hover{color:var(--caramel-soft);}
#mobile-menu .btn{margin-top:28px;align-self:flex-start;}
body.menu-open{overflow:hidden;}
@media (max-width:1040px){
  .nav-links,.nav-cta{display:none;}
  #menu-btn{display:inline-flex;}
}

/* ---------- Hero ---------- */
.hero{position:relative;min-height:100vh;min-height:100svh;display:flex;align-items:center;overflow:hidden;padding:calc(var(--topbar) + 110px) 0 110px;
  background:radial-gradient(52% 58% at 62% 50%,#2C1107 0%,rgba(44,17,7,0) 70%),var(--choco-900);}
.hero-stage{position:absolute;top:52%;left:62%;width:min(60vw,860px);aspect-ratio:1/1;transform:translate(-50%,-50%);z-index:1;pointer-events:none;}
.hero-stage-in{width:100%;height:100%;will-change:transform;}
.hero-media{position:relative;width:100%;height:100%;opacity:0;transform:scale(.9);transition:opacity 1.4s ease,transform 1.8s var(--ease);
  -webkit-mask-image:radial-gradient(closest-side,#000 64%,rgba(0,0,0,.6) 80%,transparent 100%);mask-image:radial-gradient(closest-side,#000 64%,rgba(0,0,0,.6) 80%,transparent 100%);}
.lm-ready .hero-media{opacity:1;transform:none;}
.hero-media > video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
/* Escena flotante: capas recortadas del último cuadro de la explosión, cada una flota a su ritmo */
.float-scene{position:absolute;inset:0;opacity:0;transition:opacity .5s ease;}
.hero-media.is-looping .float-scene{opacity:1;}
.float-scene img{position:absolute;display:block;max-width:none;}
.fs-plate{inset:0;width:100%;height:100%;}
.fl{height:auto;will-change:transform;transform:translate3d(calc(var(--mx,0) * var(--depth,10) * 1px),calc(var(--my,0) * var(--depth,10) * 1px),0);}
.hero-media.is-looping .fl{animation:flBob var(--t1,6s) ease-in-out var(--dl,0s) infinite,flSway var(--t2,8s) ease-in-out var(--dl,0s) infinite;}
.float-scene.fs-paused .fl{animation-play-state:paused;}
@keyframes flBob{0%,100%{translate:0 0;}50%{translate:var(--dx,0px) var(--dy,-10px);}}
@keyframes flSway{0%,100%{rotate:0deg;}50%{rotate:var(--rot,2deg);}}
.hero-copy{position:relative;z-index:3;max-width:520px;}
.hero h1{margin-top:26px;font-size:clamp(46px,5.7vw,84px);line-height:1.02;color:var(--on-dark);}
.hero .lead{margin-top:24px;max-width:430px;font-size:17px;line-height:1.75;font-weight:300;color:var(--on-dark-soft);}
.hero-actions{margin-top:38px;display:flex;align-items:center;gap:30px;flex-wrap:wrap;}
.socials{display:flex;gap:12px;}
.hero .socials{margin-top:46px;}
.social{width:44px;height:44px;border-radius:50%;border:1px solid rgba(244,235,221,.28);display:grid;place-items:center;color:var(--on-dark);transition:border-color .3s ease,color .3s ease,transform .35s var(--ease);}
.social:hover{border-color:var(--caramel);color:var(--caramel-soft);transform:translateY(-3px);}
.h-in{opacity:0;transform:translateY(26px);transition:opacity 1s ease var(--d,0s),transform 1.1s var(--ease) var(--d,0s);}
.lm-ready .h-in{opacity:1;transform:none;}

.hero-side{position:absolute;z-index:3;top:50%;right:max(32px,calc((100vw - 1240px)/2 + 32px));transform:translateY(-50%);width:196px;display:flex;flex-direction:column;align-items:center;gap:24px;}
.side-card{display:block;width:100%;padding:0 18px 22px;border:1px solid rgba(201,160,107,.35);border-radius:16px;background:rgba(23,6,2,.5);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);text-align:center;transition:border-color .35s ease,transform .45s var(--ease);}
.side-card:hover{border-color:var(--caramel);transform:translateY(-4px);}
.side-card img{height:128px;width:auto;margin:-54px auto 8px;filter:drop-shadow(0 18px 18px rgba(0,0,0,.45));transform:rotate(-8deg);transition:transform .5s var(--ease);}
.side-card:hover img{transform:rotate(0deg) translateY(-4px);}
.side-card .k{font-size:10.5px;font-weight:500;letter-spacing:.24em;text-transform:uppercase;color:var(--caramel);}
.side-card .n{margin-top:6px;font-family:var(--serif);font-size:19px;color:var(--on-dark);}
.side-card .p{margin-top:4px;font-family:var(--serif);font-size:32px;color:var(--caramel-soft);}
.side-card .p small{font-family:var(--sans);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--on-dark-soft);}
.side-btns{display:flex;gap:12px;}
.round-btn{width:50px;height:50px;border-radius:50%;border:1px solid rgba(244,235,221,.32);background:transparent;color:var(--on-dark);display:grid;place-items:center;transition:border-color .3s ease,background .3s ease,color .3s ease,transform .35s var(--ease);}
.round-btn:hover{border-color:var(--caramel);background:var(--caramel);color:var(--choco-900);transform:scale(1.06);}
.hero-scroll{position:absolute;z-index:3;left:50%;bottom:30px;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:10px;font-size:10.5px;letter-spacing:.3em;text-transform:uppercase;color:var(--on-dark-soft);}
.hero-scroll i{display:block;width:1px;height:46px;background:linear-gradient(var(--caramel),transparent);transform-origin:top;animation:scrollCue 2.2s var(--ease) infinite;}
@keyframes scrollCue{0%{transform:scaleY(0);opacity:1;}60%{transform:scaleY(1);opacity:1;}100%{transform:scaleY(1);opacity:0;}}
#hero-replay{position:absolute;z-index:4;display:none;}

@media (max-width:1240px){
  .hero-stage{left:66%;width:min(56vw,760px);}
  .hero-side{display:none;}
}
@media (max-width:900px){
  .hero{display:block;min-height:auto;padding:calc(var(--topbar) + 76px) 0 90px;background:radial-gradient(80% 36% at 50% 26%,#2C1107 0%,rgba(44,17,7,0) 70%),var(--choco-900);}
  .hero-stage{position:relative;top:auto;left:auto;transform:none;width:min(118vw,620px);margin:0 auto -84px;left:50%;translate:-50% 0;}
  .hero-copy{max-width:560px;}
  .hero h1{margin-top:20px;}
  .hero-scroll{display:none;}
  #hero-replay{display:grid;right:18px;top:calc(var(--topbar) + 96px);width:44px;height:44px;}
}

/* ---------- Secciones ---------- */
.sec{position:relative;padding:130px 0;}
.sec-cream{background:var(--cream);color:var(--ink);}
.sec-dark{background:var(--choco-850);color:var(--on-dark);}
.sec-head{max-width:640px;}
.sec-head.center{margin:0 auto;text-align:center;}
.sec-head h2{margin-top:20px;font-size:clamp(38px,4.6vw,62px);}
.sec-head p{margin-top:20px;font-size:17px;line-height:1.75;font-weight:300;}
.sec-cream .sec-head p{color:var(--ink-soft);}
.sec-dark .sec-head p{color:var(--on-dark-soft);}
.split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:80px;align-items:center;}
@media (max-width:900px){ .split{grid-template-columns:1fr;gap:48px;} .sec{padding:92px 0;} }
.reveal{opacity:0;transform:translateY(34px);transition:opacity 1s ease var(--d,0s),transform 1.1s var(--ease) var(--d,0s);}
.reveal.in-view{opacity:1;transform:none;}

/* ---------- Productos (menú) ---------- */
.menu-grid{margin-top:70px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;}
.menu-card{position:relative;background:var(--paper);border:1px solid var(--line-light);border-radius:18px;padding:34px 30px 36px;transition:transform .5s var(--ease),box-shadow .5s ease,border-color .5s ease;}
.menu-card:hover{transform:translateY(-6px);box-shadow:0 26px 50px rgba(42,19,10,.12);border-color:rgba(158,116,64,.45);}
.mc-top{display:flex;align-items:center;justify-content:space-between;}
.mc-num{font-family:var(--serif);font-style:italic;font-size:20px;color:var(--caramel-2);}
.mc-icon{width:54px;height:54px;border-radius:50%;border:1px solid rgba(158,116,64,.4);display:grid;place-items:center;color:var(--caramel-2);transition:background .4s ease,color .4s ease;}
.menu-card:hover .mc-icon{background:var(--ink);color:var(--caramel-soft);border-color:var(--ink);}
.menu-card h3{margin-top:26px;font-size:28px;color:var(--ink);}
.menu-card > p{margin-top:10px;font-size:15px;line-height:1.65;color:var(--ink-soft);font-weight:300;}
.flavors{list-style:none;margin:22px 0 0;padding:20px 0 0;border-top:1px solid var(--line-light);display:flex;flex-wrap:wrap;gap:8px;}
.flavors li{font-size:13.5px;color:var(--ink);padding:6px 12px;border:1px solid rgba(42,19,10,.14);border-radius:999px;background:rgba(255,255,255,.55);transition:background .3s ease,color .3s ease,border-color .3s ease;}
.flavors li:hover{background:var(--ink);color:var(--cream);border-color:var(--ink);}
.menu-row{margin-top:24px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;}
.menu-mini{display:flex;gap:20px;align-items:flex-start;background:transparent;border:1px solid rgba(42,19,10,.16);border-radius:18px;padding:26px 26px 28px;transition:background .45s ease,border-color .45s ease,transform .45s var(--ease);}
.menu-mini:hover{background:var(--paper);border-color:rgba(158,116,64,.45);transform:translateY(-4px);}
.menu-mini h3{font-size:22px;color:var(--ink);}
.menu-mini p{margin-top:8px;font-size:14.5px;line-height:1.6;color:var(--ink-soft);font-weight:300;}
.menu-mini .mc-icon{flex-shrink:0;width:48px;height:48px;}
@media (max-width:1000px){ .menu-grid,.menu-row{grid-template-columns:1fr;} .menu-grid{margin-top:52px;} }

/* ---------- Mayoreo ---------- */
.mayoreo{overflow:hidden;}
.mayoreo::before{content:'';position:absolute;right:-12%;top:50%;width:620px;height:620px;transform:translateY(-50%);border-radius:50%;background:radial-gradient(circle,rgba(201,160,107,.14),transparent 65%);pointer-events:none;}
.stats{display:grid;grid-template-columns:1fr 1fr;gap:20px;position:relative;}
.stat{border:1px solid var(--line-dark);border-radius:18px;padding:34px 28px 32px;background:rgba(255,255,255,.02);transition:border-color .4s ease,transform .45s var(--ease),background .4s ease;}
.stat:hover{border-color:rgba(201,160,107,.55);background:rgba(201,160,107,.05);transform:translateY(-5px);}
.stat-n{font-family:var(--serif);font-size:clamp(76px,8vw,112px);line-height:.9;color:var(--caramel-soft);}
.stat-u{margin-top:6px;font-size:12px;font-weight:500;letter-spacing:.26em;text-transform:uppercase;color:var(--caramel);}
.stat h3{margin-top:26px;font-size:21px;color:var(--on-dark);}
.stat p{margin-top:8px;font-size:14.5px;line-height:1.6;color:var(--on-dark-soft);font-weight:300;}
.mayoreo-actions{margin-top:38px;display:flex;flex-direction:column;align-items:flex-start;gap:16px;}
.mayoreo-actions small{font-size:14px;color:var(--on-dark-soft);font-weight:300;}
@media (max-width:520px){ .stats{grid-template-columns:1fr;} }

/* ---------- Precios (carta) ---------- */
.price-menu{position:relative;max-width:720px;margin:64px auto 0;background:var(--paper);border-radius:4px;padding:58px 64px 50px;box-shadow:0 30px 60px rgba(42,19,10,.12);}
.price-menu::before{content:'';position:absolute;inset:12px;border:1px solid rgba(158,116,64,.4);pointer-events:none;}
.price-menu::after{content:'';position:absolute;inset:17px;border:1px solid rgba(158,116,64,.18);pointer-events:none;}
.pm-title{text-align:center;font-family:var(--serif);font-style:italic;font-size:24px;color:var(--caramel-2);}
.pm-title::after{content:'';display:block;width:54px;height:1px;background:var(--caramel-2);margin:16px auto 0;opacity:.6;}
.pm-list{margin-top:30px;}
.pm-row{display:flex;align-items:baseline;gap:14px;padding:13px 0;transition:padding .3s ease;}
.pm-row:hover{padding-left:6px;}
.pm-name{font-family:var(--serif);font-size:21px;color:var(--ink);white-space:nowrap;}
.pm-dots{flex:1;min-width:24px;border-bottom:1px dotted rgba(42,19,10,.35);transform:translateY(-6px);}
.pm-price{font-family:var(--serif);font-size:22px;color:var(--caramel-2);font-weight:600;}
.pm-note{margin-top:30px;padding-top:22px;border-top:1px solid var(--line-light);text-align:center;font-size:14px;line-height:1.6;color:var(--ink-soft);}
.center-actions{margin-top:44px;display:flex;justify-content:center;}
@media (max-width:600px){ .price-menu{padding:44px 30px 38px;margin-top:48px;} .pm-name{font-size:18px;white-space:normal;} .pm-price{font-size:19px;} }

/* ---------- Eventos ---------- */
.ev-grid{margin-top:70px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;}
.ev-card{position:relative;display:flex;flex-direction:column;border:1px solid var(--line-dark);border-radius:18px;padding:36px 30px 34px;background:linear-gradient(180deg,rgba(255,255,255,.035),rgba(255,255,255,0));transition:border-color .45s ease,transform .5s var(--ease),box-shadow .5s ease;}
.ev-card:hover{border-color:rgba(201,160,107,.6);transform:translateY(-6px);box-shadow:0 30px 60px rgba(0,0,0,.35);}
.ev-num{position:absolute;top:30px;right:30px;font-family:var(--serif);font-style:italic;font-size:18px;color:var(--caramel);}
.ev-icon{width:64px;height:64px;border-radius:50%;border:1px solid rgba(201,160,107,.5);display:grid;place-items:center;color:var(--caramel-soft);transition:background .4s ease,color .4s ease;}
.ev-card:hover .ev-icon{background:var(--caramel);color:var(--choco-900);}
.ev-card h3{margin-top:28px;font-size:26px;color:var(--on-dark);}
.ev-card p{margin-top:12px;font-size:15px;line-height:1.65;color:var(--on-dark-soft);font-weight:300;flex-grow:1;}
.ev-price{margin-top:26px;padding-top:22px;border-top:1px solid var(--line-dark);font-family:var(--serif);font-size:38px;color:var(--caramel-soft);}
.ev-price small{font-family:var(--sans);font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--on-dark-soft);}
.ev-note{margin-top:12px;font-size:13px;color:var(--caramel);}
@media (max-width:1000px){ .ev-grid{grid-template-columns:1fr;margin-top:52px;} }

/* ---------- Ubicación ---------- */
.addr{margin-top:26px;display:flex;align-items:center;gap:12px;font-size:15px;color:var(--ink);}
.addr svg{color:var(--caramel-2);}
.ubic-actions{margin-top:32px;}
.map-wrap{position:relative;border-radius:18px;overflow:hidden;box-shadow:0 30px 60px rgba(42,19,10,.16);}
.map-wrap::after{content:'';position:absolute;inset:0;border-radius:18px;box-shadow:inset 0 0 0 1px rgba(42,19,10,.1);pointer-events:none;}
.map-frame{border:0;width:100%;height:440px;display:block;}
@media (max-width:600px){ .map-frame{height:340px;} }

/* ---------- Contacto ---------- */
.contact{overflow:hidden;text-align:center;}
.contact::before{content:'';position:absolute;left:50%;top:50%;width:900px;height:900px;transform:translate(-50%,-50%);border-radius:50%;background:radial-gradient(circle,rgba(201,160,107,.12),transparent 62%);pointer-events:none;}
.contact .sec-head{position:relative;}
.contact-actions{position:relative;margin-top:44px;display:flex;flex-direction:column;align-items:center;gap:18px;}
.contact-actions .row{display:flex;gap:14px;flex-wrap:wrap;justify-content:center;}
.privacy-note{position:relative;margin:34px auto 0;max-width:520px;font-size:12.5px;line-height:1.6;color:var(--on-dark-soft);font-weight:300;}
.privacy-note a{color:var(--on-dark);text-decoration:underline;text-underline-offset:2px;}

/* ---------- Footer ---------- */
.footer{background:var(--choco-950);color:var(--on-dark-soft);padding:70px 0 34px;}
.footer-top{display:flex;align-items:center;justify-content:space-between;gap:30px;flex-wrap:wrap;padding-bottom:40px;border-bottom:1px solid var(--line-dark);}
.footer-nav{display:flex;gap:26px;flex-wrap:wrap;}
.footer-nav a{font-size:12px;font-weight:500;letter-spacing:.18em;text-transform:uppercase;color:var(--on-dark-soft);transition:color .3s ease;}
.footer-nav a:hover{color:var(--caramel-soft);}
.footer-legal{padding-top:26px;display:flex;align-items:center;justify-content:space-between;gap:12px 26px;flex-wrap:wrap;font-size:13px;}
.footer-legal .links{display:flex;gap:22px;flex-wrap:wrap;}
.footer-legal a{color:var(--on-dark);text-decoration:underline;text-decoration-color:rgba(244,235,221,.3);text-underline-offset:3px;transition:color .3s ease;}
.footer-legal a:hover{color:var(--caramel-soft);}

/* ---------- Páginas legales y 404 ---------- */
.legal-page{background:var(--cream);color:var(--ink);min-height:100vh;}
.legal-top{background:var(--choco-900);padding:16px 0;}
.legal-top .wrap{display:flex;align-items:center;justify-content:space-between;gap:16px;}
.legal-brand{display:flex;align-items:center;gap:12px;color:var(--on-dark);font-size:13.5px;font-weight:500;letter-spacing:.22em;text-transform:uppercase;}
.legal-brand img{width:40px;height:40px;border-radius:50%;object-fit:cover;object-position:center 42%;box-shadow:0 0 0 1px rgba(201,160,107,.55);}
.legal-back{color:var(--on-dark);font-size:12px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;padding:11px 18px;border:1px solid rgba(244,235,221,.3);border-radius:2px;transition:border-color .3s ease,color .3s ease;}
.legal-back:hover{border-color:var(--caramel);color:var(--caramel-soft);}
.legal-body{max-width:760px;margin:0 auto;padding:64px 28px 100px;}
.legal-body h1{font-size:48px;color:var(--ink);}
.legal-body .legal-date{margin-top:12px;color:var(--ink-soft);font-size:13px;letter-spacing:.12em;text-transform:uppercase;}
.legal-body h2{margin-top:44px;font-size:26px;color:var(--ink);}
.legal-body p,.legal-body li{color:var(--ink);font-size:16px;line-height:1.75;font-weight:400;}
.legal-body p{margin-top:12px;}
.legal-body ul{margin:12px 0 0;padding-left:22px;}
.legal-body li{margin-top:6px;}
.legal-body a:not(.btn){color:var(--caramel-2);font-weight:500;text-decoration:underline;text-underline-offset:2px;}
.legal-box{margin-top:34px;background:var(--paper);border:1px solid var(--line-light);border-radius:14px;padding:22px 24px;}
.fill-in{background:#FFE58A;color:#5A3B00;font-weight:600;padding:1px 6px;border-radius:5px;}
@media (max-width:600px){ .legal-body h1{font-size:36px;} .legal-body{padding:44px 22px 70px;} .legal-brand span{display:none;} }

@media (prefers-reduced-motion:reduce){
  .h-in,.reveal,.hero-media{opacity:1!important;transform:none!important;transition:none!important;}
  .hero-scroll i{animation:none;}
}

/* Números de precios y cantidades: cifras alineadas (más claras que las "antiguas" de Playfair) */
.pm-price,.ev-price,.stat-n,.side-card .p,.mc-num,.ev-num{font-variant-numeric:lining-nums;}

/* Botón de menú: las dos líneas se cruzan en una X al abrir */
#menu-btn path{transform-box:fill-box;transform-origin:center;transition:transform .35s var(--ease);}
#menu-btn[aria-expanded="true"] .mb-1{transform:translateY(4px) rotate(45deg);}
#menu-btn[aria-expanded="true"] .mb-2{transform:translateY(-4px) rotate(-45deg);}
