/* landing-v2.css — Home "v2" (index.php). Copiado de la maqueta semola-web-v2/index.html; los textos salen de Admin → Sitio Web → Textos de la home. */
:root{
  --rojo:#CE0917; --rojo-osc:#a30712; --crema:#F6EBD6; --blanco:#FFFFFF; --tinta:#000000; --negro:#000000;
  --sans:"Source Sans 3",system-ui,sans-serif; --mono:"Fragment Mono",ui-monospace,monospace;
  --pad:clamp(16px,4vw,48px);
}
*{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{background:var(--crema);color:var(--tinta);font-family:var(--sans);line-height:1.4;overflow-x:clip}
img{display:block;max-width:100%}
a{color:inherit}
.logo svg,.logo .logo-img{display:block;height:100%;width:auto}

/* NAV */
.nav{position:fixed;inset:0 0 auto 0;z-index:50;display:flex;align-items:center;justify-content:space-between;
  padding:12px var(--pad);padding-top:max(12px,env(safe-area-inset-top));
  background:rgba(var(--crema-rgb,246,235,214),.92);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);box-shadow:0 1px 0 rgba(var(--red-rgb,206,9,23),.15)}
.nav .logo{color:var(--rojo)}
.lockup{display:flex;flex-direction:column;align-items:center;text-decoration:none;line-height:1}
.lockup .logo-s{display:block;height:34px}
.lockup .logo-tag{font-family:var(--sans);font-weight:700;font-size:10.5px;letter-spacing:.22em;text-transform:uppercase;color:var(--rojo);margin-top:3px;padding-left:.22em}
.nav-links{display:flex;gap:22px;align-items:center}
.nav-links a{font-family:var(--mono);text-transform:uppercase;letter-spacing:.04em;font-size:13px;text-decoration:none;color:var(--rojo)}
.nav-links a.btn-rojo{color:var(--crema)}
@media (max-width:760px){.nav-links a:not(.btn){display:none}.lockup .logo-s{height:28px}.lockup .logo-tag{font-size:9px;margin-top:2px}}

.btn{display:inline-flex;align-items:center;gap:8px;font-family:var(--mono);text-transform:uppercase;letter-spacing:.04em;font-weight:400;font-size:15px;text-decoration:none;
  padding:12px 22px;border-radius:999px;border:2px solid var(--rojo);transition:transform .15s,background .2s,color .2s;cursor:pointer}
.btn:active{transform:scale(.97)}
.btn-rojo{background:var(--rojo);color:var(--crema)}
.btn-rojo:hover{background:var(--rojo-osc);border-color:var(--rojo-osc)}
.btn-linea{background:transparent;color:var(--rojo)}
.btn-linea:hover{background:var(--rojo);color:var(--crema)}
.btn-crema{background:var(--crema);color:var(--rojo);border-color:var(--crema)}
.nav .btn{padding:9px 18px;font-size:15px}

/* HERO con scroll */
.hero{position:relative;height:340vh}
.stage{position:sticky;top:0;height:100vh;height:100svh;overflow:hidden;background:var(--crema)}
.stage.dark{background:var(--tinta)}
.bigword{position:absolute;top:50%;left:0;white-space:nowrap;font-weight:700;text-transform:uppercase;
  font-size:clamp(120px,26vw,420px);line-height:.8;color:transparent;-webkit-text-stroke:2px rgba(var(--red-rgb,206,9,23),.16);
  transform:translate3d(0,-50%,0);will-change:transform;pointer-events:none;user-select:none}
#heroCanvas{position:absolute;inset:0;width:100%;height:100%}
.hero-video{position:absolute;right:max(16px,4vw);top:86px;width:calc(53% - max(16px,4vw));height:calc(100% - 114px);object-fit:cover;border-radius:28px;
  box-shadow:0 30px 60px rgba(60,20,10,.25);background:#2a1d17;display:none}
.stage.has-video .hero-video{display:block}
@media (max-width:900px){.hero-video{inset:0;width:100%;height:100%;border-radius:0;box-shadow:none}}
.scrim{position:absolute;inset:0;pointer-events:none;display:none;
  background:linear-gradient(to top,rgba(10,6,4,.75) 0%,rgba(10,6,4,.25) 40%,rgba(10,6,4,0) 62%)}
.stage.dark .scrim{display:block}
@media (max-width:900px){.scrim{background:linear-gradient(to top,rgba(10,6,4,.85) 0%,rgba(10,6,4,.45) 42%,rgba(10,6,4,0) 66%)}}
.stage.dark .bigword{display:none}
.chapter{position:absolute;left:var(--pad);bottom:max(7vh,calc(env(safe-area-inset-bottom) + 28px));
  max-width:min(600px,42vw);opacity:0;pointer-events:none}
.chapter.on{pointer-events:auto}
.chapter h1,.chapter h2{font-weight:700;text-transform:uppercase;color:var(--rojo);line-height:.9;letter-spacing:-.01em;font-size:clamp(42px,5.4vw,88px)}
.h1-2 span{display:block;white-space:nowrap}
.chapter .h1-2{font-size:clamp(34px,4.1vw,68px)}
@media (max-width:900px){.chapter .h1-2{font-size:clamp(28px,8.6vw,56px)}}
.chapter p{margin-top:14px;font-family:var(--sans);font-size:clamp(16px,1.6vw,19px);line-height:1.4;max-width:440px}
.chapter .ctas{display:flex;gap:10px;flex-wrap:wrap;margin-top:20px}
.stage.dark .chapter h1,.stage.dark .chapter h2,.stage.dark .chapter p{color:var(--crema)}
.stage.dark .chapter .btn-linea{color:var(--crema);border-color:var(--crema)}
.kicker{display:inline-block;font-family:var(--mono);text-transform:uppercase;letter-spacing:.04em;font-size:12px;color:var(--crema);background:var(--rojo);padding:5px 10px;border-radius:999px;margin-bottom:14px}
.progress{position:absolute;left:var(--pad);right:var(--pad);top:calc(max(12px,env(safe-area-inset-top)) + 64px);height:2px;background:rgba(var(--red-rgb,206,9,23),.12);z-index:2}
.progress b{display:block;height:100%;background:var(--rojo);transform-origin:left;transform:scaleX(0)}
.stage.dark .progress{background:rgba(var(--crema-rgb,246,235,214),.25)}.stage.dark .progress b{background:var(--crema)}
.scroll-hint{position:absolute;left:var(--pad);top:calc(max(12px,env(safe-area-inset-top)) + 78px);font-family:var(--mono);text-transform:uppercase;letter-spacing:.04em;font-size:12px;color:var(--rojo)}
.stage.dark .scroll-hint{color:var(--crema)}
@media (max-width:900px){.chapter{max-width:none;right:var(--pad);bottom:max(4vh,calc(env(safe-area-inset-bottom) + 18px))}.chapter h1,.chapter h2{font-size:clamp(36px,10.4vw,64px)}}

/* MARQUEE */
.marquee{background:var(--rojo);color:var(--crema);overflow:hidden;padding:14px 0}
.marquee .track{display:flex;width:max-content;animation:mq 28s linear infinite}
.marquee span{font-weight:700;text-transform:uppercase;font-size:clamp(22px,3.4vw,40px);padding-right:.6em;white-space:nowrap}
.marquee em{font-style:normal;font-family:var(--mono);text-transform:uppercase;letter-spacing:.04em;font-weight:400;font-size:.55em;vertical-align:middle;padding:0 .6em}
@keyframes mq{to{transform:translateX(-50%)}}

/* SECCIONES */
section.block{padding:clamp(72px,12vw,140px) var(--pad)}
.wrap{max-width:1180px;margin:0 auto}
.eyebrow{font-family:var(--mono);text-transform:uppercase;letter-spacing:.04em;font-size:13px;color:var(--rojo);margin-bottom:14px;display:flex;align-items:center;gap:10px}
.eyebrow::before{content:"";width:28px;height:1.5px;background:currentColor}
.h2{font-weight:700;text-transform:uppercase;color:var(--rojo);font-size:clamp(44px,8vw,104px);line-height:.88;letter-spacing:-.01em}
.lead{font-family:var(--sans);font-size:clamp(17px,1.8vw,21px);line-height:1.45;max-width:560px;margin-top:20px}
.reveal{opacity:0;transform:translateY(30px);transition:opacity .8s cubic-bezier(.2,.7,.2,1),transform .8s cubic-bezier(.2,.7,.2,1)}
.reveal.in{opacity:1;transform:none}

/* Pasta Lab */
.lab-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(28px,5vw,72px);align-items:center}
.equation{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-top:34px}
.ing{background:var(--blanco);border-radius:20px;padding:16px 20px;min-width:130px}
.ing small{font-family:var(--mono);text-transform:uppercase;letter-spacing:.04em;font-size:11px;color:var(--rojo);display:block}
.ing b{font-weight:700;text-transform:uppercase;font-size:28px;line-height:1}
.op{font-weight:700;font-size:40px;color:var(--rojo)}
.ing.res{background:var(--rojo);color:var(--crema)}
.ing.res b{white-space:nowrap}
.equation{display:inline-grid;grid-template-columns:auto auto auto;gap:10px;align-items:center}
.equation .op:nth-of-type(2){display:none}
.equation .ing{text-align:center}
.equation .ing.res{grid-column:1/-1}
.equation .ing.res b::before{content:"= ";opacity:.8}.ing.res small{color:var(--crema);opacity:.8}
.benefits{list-style:none;margin-top:30px;display:grid;gap:0}
.benefits li{border-top:1px dashed rgba(var(--red-rgb,206,9,23),.4);padding:14px 0;display:grid;grid-template-columns:34px 1fr;gap:10px}
.benefits li:last-child{border-bottom:1px dashed rgba(var(--red-rgb,206,9,23),.4)}
.benefits .n{font-family:var(--mono);text-transform:uppercase;letter-spacing:.04em;font-size:12px;color:var(--rojo);padding-top:4px}
.benefits b{display:block;font-size:20px;text-transform:uppercase;font-weight:700}
.benefits span{font-family:var(--mono);text-transform:uppercase;letter-spacing:.04em;font-size:13px;opacity:.8}
.lab-photo{position:relative;max-width:560px;justify-self:center;width:100%}
.lab-photo .bowl{position:relative;width:100%;aspect-ratio:1;cursor:pointer;-webkit-tap-highlight-color:transparent;
  transform:translateY(-40px) scale(.9);opacity:0;transition:transform 1s cubic-bezier(.2,1.4,.4,1),opacity .5s}
.lab-photo.in .bowl{transform:none;opacity:1}
.lab-photo .bowl:active .spin{scale:.97}
.spin{position:absolute;inset:0;transition:scale .15s}
@keyframes spin{to{transform:rotate(360deg)}}
.spin img{width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 30px 40px rgba(80,30,10,.25))}
.spin canvas{position:absolute;left:0;top:-40%;width:100%;height:140%;pointer-events:none}
.steam{position:absolute;left:25%;right:25%;top:-14%;height:62%;pointer-events:none}
.steam i{position:absolute;bottom:18%;width:46%;height:62%;border-radius:50%;opacity:0;
  background:radial-gradient(closest-side,rgba(255,255,255,.85),rgba(255,255,255,0));filter:blur(10px);animation:steam 4.6s ease-in infinite}
.steam i:nth-child(1){left:2%;animation-delay:0s}
.steam i:nth-child(2){left:30%;animation-delay:1.5s}
.steam i:nth-child(3){left:54%;animation-delay:3s}
@keyframes steam{0%{transform:translateY(35%) scale(.55,.7);opacity:0}25%{opacity:.75}100%{transform:translateY(-75%) scale(1.25,1.5);opacity:0}}
.lab-grid{align-items:start}
.lab-scroll{position:relative;height:150vh;align-self:stretch}
@media (min-width:761px){.lab-grid>div:first-child{position:sticky;top:calc(50vh - 260px)}}
.lab-photo{position:sticky;top:calc(50vh - 230px)}
.lab-photo .bowl{max-width:340px;margin:0 auto}
.boom{position:absolute;left:50%;top:50%;width:0;height:0;pointer-events:none;z-index:3}
.boom svg.lines{position:absolute;left:-600px;top:-600px;width:1200px;height:1200px;overflow:visible}
.boom svg.lines line{stroke:var(--rojo);stroke-width:1.5}
.boom .dot{position:absolute;left:0;top:0;width:14px;height:14px;margin:-7px 0 0 -7px;border-radius:50%;background:var(--rojo);
  border:2.5px solid var(--crema);box-shadow:0 2px 6px rgba(0,0,0,.25);opacity:0;transform:scale(0)}
.boom .dot::after{content:"";position:absolute;inset:-7px;border-radius:50%;border:2px solid var(--rojo);animation:ring 1.8s ease-out infinite}
@keyframes ring{from{transform:scale(.5);opacity:.9}to{transform:scale(1.6);opacity:0}}
.boom .lbl{position:absolute;left:0;top:0;opacity:0;white-space:nowrap}
.boom .lbl b{display:block;font-weight:700;text-transform:uppercase;color:var(--rojo);font-size:16px;line-height:1;letter-spacing:.02em}
.boom .lbl span{display:block;font-family:var(--mono);text-transform:uppercase;letter-spacing:.04em;font-size:11.5px;color:var(--tinta);margin-top:4px}
.boom .lbl.r{text-align:left}.boom .lbl.l{text-align:right}.boom .lbl.c{text-align:center}
@media (max-width:760px){.boom .lbl b{font-size:14px}.boom .lbl span{font-size:10.5px}}
.badges,.tap-hint{transition:opacity .2s}
.tap-hint{font-family:var(--mono);text-transform:uppercase;letter-spacing:.04em;font-size:11px;color:var(--rojo);opacity:.75;text-align:center;margin-top:6px}
.badge{position:absolute;font-family:var(--mono);text-transform:uppercase;letter-spacing:.04em;font-size:12px;background:var(--crema);border:1.5px solid var(--rojo);color:var(--rojo);border-radius:999px;padding:7px 12px;white-space:nowrap}
.b1{left:-2%;top:12%}.b2{right:-2%;top:46%}.b3{left:8%;bottom:6%}
@media (max-width:860px){.lab-grid{grid-template-columns:1fr}.b1{left:0}.b2{right:0}}

/* Pasta al paso */
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:48px}
.step{border-radius:22px;padding:26px;background:var(--blanco);position:relative;overflow:hidden}
.step .n{font-family:var(--mono);text-transform:uppercase;letter-spacing:.04em;color:var(--rojo);font-size:13px}
.step h3{font-weight:700;text-transform:uppercase;color:var(--rojo);font-size:30px;line-height:.95;margin:14px 0 10px}
.step p{font-family:var(--sans);font-size:16px;line-height:1.45;color:var(--negro);position:relative;max-width:85%}
.step .big{position:absolute;right:-6px;bottom:-26px;font-weight:700;font-size:120px;color:rgba(var(--red-rgb,206,9,23),.07);line-height:1;pointer-events:none}
.services{display:flex;gap:10px;flex-wrap:wrap;margin-top:28px;align-items:center}
.chip{font-family:var(--mono);text-transform:uppercase;letter-spacing:.04em;font-size:13px;border:1.5px solid var(--rojo);color:var(--rojo);border-radius:999px;padding:7px 14px}
@media (max-width:860px){.steps{grid-template-columns:1fr}}

/* Banda promo */
.promo-band{background:var(--rojo);color:var(--crema);position:relative;overflow:hidden}
.promo-band .wrap{display:grid;grid-template-columns:auto 1fr auto;gap:clamp(20px,4vw,56px);align-items:center}
.promo-band .x{font-weight:700;font-size:clamp(110px,18vw,240px);line-height:.8;letter-spacing:-.04em}
.promo-band h3{font-weight:700;text-transform:uppercase;font-size:clamp(30px,4vw,52px);line-height:.92}
.promo-band p{font-family:var(--sans);font-size:17px;line-height:1.45;margin-top:12px;max-width:440px}
.promo-band .iso{position:absolute;right:-8%;top:-30%;width:min(55vw,560px);color:rgba(var(--crema-rgb,246,235,214),.07);pointer-events:none}
@media (max-width:860px){.promo-band .wrap{grid-template-columns:1fr}}

/* Visitanos */
.visit{background:var(--tinta);color:var(--crema)}
.visit .h2,.visit .eyebrow{color:var(--crema)}
/* Horario y contacto */
.contact{position:relative}
.c-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:18px;margin-top:36px}
.c-grid>*{min-width:0}
.btn{max-width:100%}
.c-card{background:var(--blanco);border-radius:26px;padding:26px;display:flex;flex-direction:column;gap:18px}
.c-head{display:flex;justify-content:space-between;align-items:center;gap:12px}
.c-head h3{font-weight:700;text-transform:uppercase;color:var(--rojo);font-size:30px;line-height:1}
.status{font-family:var(--mono);text-transform:uppercase;letter-spacing:.04em;font-size:12px;border-radius:999px;padding:6px 12px;display:inline-flex;align-items:center;gap:7px;white-space:nowrap;background:var(--crema);color:var(--rojo)}
.status::before{content:"";width:8px;height:8px;border-radius:50%;background:currentColor}
.status.open{background:#e4f3e6;color:#1d7a35}
.status.open::before{animation:pulse 1.6s ease-in-out infinite}
.status.closed{background:#f1e9e0;color:#6b5f55}
@keyframes pulse{50%{opacity:.25}}
.hours{list-style:none;display:grid;gap:0}
.hours li{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:14px 0;border-top:1px dashed rgba(var(--red-rgb,206,9,23),.35)}
.hours li:last-child{border-bottom:1px dashed rgba(var(--red-rgb,206,9,23),.35)}
.hours li span{font-family:var(--mono);text-transform:uppercase;letter-spacing:.04em;font-size:13px}
.hours li b{font-weight:700;font-size:22px;text-transform:uppercase;white-space:nowrap}
.hours li span{min-width:0}
.hours li.today span{color:var(--rojo);font-weight:700}
.hours li.today span::after{content:" · hoy";font-weight:400}
.hours li.off b{color:#9c8f84}
.place{display:flex;gap:12px;align-items:flex-start;color:var(--rojo)}
.place div{display:flex;flex-direction:column;color:var(--tinta)}
.place b{font-size:21px;font-weight:700;line-height:1.15}
.place span{font-family:var(--mono);text-transform:uppercase;letter-spacing:.04em;font-size:12px;opacity:.7;margin-top:3px}
.c-actions{display:grid;gap:10px;margin-top:auto}
.c-actions .btn{justify-content:center;padding:14px 18px}
.c-actions .btn svg{flex:0 0 auto}
@media (max-width:760px){
  .c-grid{grid-template-columns:1fr;gap:14px;margin-top:26px}
  .c-card{padding:20px;border-radius:22px}
  .c-head h3{font-size:24px}
  .hours li b{font-size:19px}
  .c-grid{grid-template-columns:minmax(0,1fr)}
  .c-actions .btn{font-size:13px;letter-spacing:.02em;white-space:normal;text-align:center;padding:14px 12px}
}
.visit-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:40px;align-items:start}
.info-row{border-top:1px solid rgba(var(--crema-rgb,246,235,214),.2);padding:18px 0;display:grid;grid-template-columns:130px 1fr;gap:14px}
.info-row .k{font-family:var(--mono);text-transform:uppercase;letter-spacing:.04em;font-size:12px;opacity:.7;padding-top:5px}
.info-row .v{font-size:22px;font-weight:600}
.info-row .v a{text-decoration:none;border-bottom:1px solid rgba(var(--crema-rgb,246,235,214),.4)}
.ig-card{background:var(--crema);color:var(--tinta);border-radius:24px;padding:28px;display:flex;flex-direction:column;gap:16px}
.ig-card .logo{height:70px;color:var(--rojo)}
.ig-card p{font-family:var(--mono);text-transform:uppercase;letter-spacing:.04em;font-size:14px}
.map{border-radius:24px;overflow:hidden;min-height:320px}
.map iframe{width:100%;height:340px;border:0}
@media (max-width:860px){.visit-grid{grid-template-columns:1fr}.info-row{grid-template-columns:1fr;gap:4px}}

footer{background:var(--negro);color:var(--crema);padding:72px var(--pad) calc(28px + env(safe-area-inset-bottom))}
footer .f-top{display:flex;justify-content:space-between;align-items:flex-end;gap:32px;flex-wrap:wrap;padding-bottom:40px}
footer .logo{height:60px;color:var(--crema)}
footer .logo svg,footer .logo .logo-img{height:100%;width:auto;display:block}
footer .f-tag{font-family:var(--sans);font-size:17px;line-height:1.5;max-width:420px;text-align:right}
footer .f-bottom{display:flex;justify-content:space-between;align-items:center;gap:10px 24px;flex-wrap:wrap;
  border-top:1px solid rgba(var(--crema-rgb,246,235,214),.35);padding-top:20px;font-family:var(--mono);text-transform:uppercase;letter-spacing:.04em;font-size:12px;opacity:.9}
footer .f-bottom a{text-decoration:none;border-bottom:1px solid rgba(var(--crema-rgb,246,235,214),.6);padding:6px 0}
/* ================= MOBILE ================= */
@media (max-width:760px){
  .hero{height:250vh}
  .scroll-hint{display:none}
  section.block{padding:64px var(--pad)}
  .h2{font-size:clamp(38px,11vw,56px)}
  .lead{font-size:17px}
  .eyebrow{font-size:12px}
  /* Pasta Lab: foto arriba, chica, sin etiquetas encima */
  .lab-grid{gap:8px}
  .lab-photo{padding-bottom:110px}
  .lab-scroll{order:1;height:125vh;margin:12px calc(-1 * var(--pad)) 0;overflow-x:clip}
  .lab-photo{max-width:none;width:100%;aspect-ratio:auto;display:flex;flex-direction:column;align-items:center;gap:12px;top:max(130px,calc(50vh - 150px))}
  .lab-photo .bowl{width:250px}
  .badges{display:flex;flex-wrap:wrap;justify-content:center;gap:6px}
  .badge{position:static;font-size:11px;padding:5px 10px}
  .equation{display:grid;grid-template-columns:1fr auto 1fr;gap:8px 6px;align-items:center;margin-top:24px}
  .equation .op:nth-of-type(2){display:none}
  .equation .ing.res{grid-column:1/-1;padding:12px}
  .equation .ing.res b::before{content:"= ";opacity:.8}
  .ing{min-width:0;padding:10px 10px;border-radius:14px;text-align:center}
  .ing small{font-size:9px}
  .ing b{font-size:19px}
  .op{font-size:22px}
  .benefits b{font-size:17px}
  .benefits span{font-size:12.5px}
  /* pasos: carrusel horizontal */
  .steps{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding-inline:var(--pad);gap:12px;margin:28px calc(-1 * var(--pad)) 0;padding:0 var(--pad) 6px;scrollbar-width:none}
  .steps::-webkit-scrollbar{display:none}
  .step{flex:0 0 80%;scroll-snap-align:start;padding:22px}
  .step h3{font-size:24px;line-height:1}
  .swipe{display:block!important}
  .services{margin-top:20px}
  /* promo */
  .promo-band .wrap{gap:14px;text-align:left}
  .promo-band .x{font-size:110px}
  .promo-band .btn{width:100%;justify-content:center}
  /* visitanos */
  .visit .h2{margin-bottom:20px!important}
  .info-row{padding:14px 0}
  .info-row .v{font-size:19px}
  .ig-card{padding:22px}
  .ig-card .logo{height:54px}
  .ig-card .btn{width:100%;justify-content:center}
  footer{padding-top:56px}
  footer .f-top{flex-direction:column;align-items:flex-start;gap:18px;padding-bottom:32px}
  footer .logo{height:48px}
  footer .f-tag{text-align:left;font-size:16px}
  footer .f-bottom{flex-direction:column;align-items:flex-start;gap:8px}
  .chapter .ctas .btn{flex:1;justify-content:center;white-space:nowrap;font-size:15px;padding:12px 12px}
}
.first-btn{margin-top:34px;display:flex;align-items:center;justify-content:space-between;gap:18px;text-decoration:none;
  background:var(--rojo);color:var(--crema);border-radius:24px;padding:22px 26px;box-shadow:0 12px 28px rgba(var(--red-rgb,206,9,23),.25);transition:transform .15s,background .2s}
.first-btn:hover{background:var(--rojo-osc)}.first-btn:active{transform:scale(.98)}
.first-btn span{font-weight:700;text-transform:uppercase;font-size:clamp(20px,2.6vw,30px);line-height:1}
.first-btn i{font-style:normal;flex:0 0 auto;width:48px;height:48px;border-radius:50%;background:var(--crema);color:var(--rojo);display:grid;place-items:center;font-size:22px;font-weight:700}
.first{margin-top:34px;display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;border-top:1px dashed rgba(var(--red-rgb,206,9,23),.4);padding-top:24px}
.first b{font-weight:700;text-transform:uppercase;color:var(--rojo);font-size:clamp(22px,2.6vw,32px);line-height:1;max-width:560px}
.lab-end{font-weight:700;text-transform:uppercase;color:var(--rojo);font-size:clamp(20px,2.2vw,26px);margin-top:26px}
.eq-note{font-family:var(--sans);font-size:16px;margin-top:12px}
.nota{font-family:var(--mono);text-transform:uppercase;letter-spacing:.04em;font-size:12px;margin-top:22px;opacity:.75}
.promo-band .pkick{font-family:var(--mono);text-transform:uppercase;letter-spacing:.04em;font-size:12px;opacity:.85;margin-bottom:8px}
.promo-band .terms{font-size:11.5px;opacity:.8;border-top:1px dashed rgba(var(--crema-rgb,246,235,214),.45);padding-top:10px}
.contact-list .v a{text-decoration:none;border-bottom:1px solid rgba(var(--crema-rgb,246,235,214),.4)}
.visit .btn-wa{margin-top:18px}
@media (max-width:760px){.first{flex-direction:column;align-items:stretch}.first .btn{justify-content:center}}
body:not(.abierto) .post{display:none!important}
body.abierto .pre{display:none!important}
.stock{margin-top:72px;padding-top:28px;border-top:1px solid rgba(var(--crema-rgb,246,235,214),.35);display:grid;grid-template-columns:1.4fr 1fr;gap:20px 48px;align-items:end}
.stock-t{display:flex;flex-direction:column;font-weight:700;text-transform:uppercase;font-size:clamp(44px,8.4vw,124px);line-height:.88;letter-spacing:-.01em;color:var(--crema)}
.stock-t span:last-child{color:var(--rojo)}
.stock p a{color:var(--crema);font-weight:700;text-decoration:underline;text-decoration-color:var(--rojo);text-decoration-thickness:2px;text-underline-offset:4px}
.stock p{font-family:var(--sans);font-size:clamp(17px,1.5vw,20px);line-height:1.45;max-width:420px;padding-bottom:.4em}
@media (max-width:760px){.stock{grid-template-columns:1fr;margin-top:48px;padding-top:22px}.stock-t{font-size:clamp(40px,12.4vw,64px)}}
.rule{margin-top:28px;background:var(--tinta);color:var(--crema);border-radius:24px;padding:24px 26px;display:grid;gap:6px}
.rule-tag{font-family:var(--mono);text-transform:uppercase;letter-spacing:.04em;font-size:12px;opacity:.7}
.rule b{font-weight:700;text-transform:uppercase;font-size:clamp(26px,3.4vw,40px);line-height:1}
.rule p{font-family:var(--sans);font-size:17px;line-height:1.45;max-width:560px;opacity:.9}
.promo-band .post{grid-template-columns:auto 1fr auto}
.promo-band .x .pct{font-size:.5em;vertical-align:top;margin-left:.02em}
.promo-band .x-off{white-space:nowrap;font-size:clamp(64px,20vw,190px)!important;letter-spacing:-.03em}
@media (min-width:861px){.promo-band .x-off{font-size:clamp(90px,10.5vw,150px)!important}.promo-band .post{grid-template-columns:auto 1fr;row-gap:20px}.promo-band .post>div:last-child{grid-column:2}}
.promo-band .post .live{margin-bottom:14px}
.live{display:inline-flex;align-items:center;gap:8px;font-family:var(--mono);text-transform:uppercase;letter-spacing:.04em;font-size:12px;background:var(--crema);color:var(--rojo);border-radius:999px;padding:6px 12px;margin-bottom:12px}
.live::before{content:"";width:8px;height:8px;border-radius:50%;background:#1d9a45;animation:pulse 1.6s ease-in-out infinite}
.live.out::before{background:#9c8f84;animation:none}
@media (max-width:860px){.promo-band .post{grid-template-columns:1fr}}
/* ===== Proporción de color del manual: rojo 33 · crema 33 · blanco 17 · negro 17 ===== */
.sec-negro{background:var(--negro);color:var(--crema)}
.sec-negro .eyebrow,.sec-negro .h2{color:var(--crema)}
.sec-negro .step{border:0;background:var(--blanco)}
.sec-negro .swipe{color:var(--crema)}
.sec-negro .rule{background:var(--crema);color:var(--negro)}
.sec-negro .rule b{color:var(--rojo)}
.sec-negro .rule-tag{opacity:.85}
/* Hilo de spaghetti que se dibuja (como en el video de intro) */
section.block{position:relative;overflow:hidden}
.strand{display:block;width:min(100%,760px);height:auto;margin:-24px auto 18px;overflow:visible;color:var(--rojo)}
.strand.flip{transform:scaleX(-1)}
.strand path{fill:none;stroke:currentColor;stroke-width:13;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1 1;stroke-dashoffset:1}
.sec-negro .strand,.sec-rojo .strand,.promo-band .strand{color:var(--crema)}
.promo-band .strand{margin-top:-10px;margin-bottom:6px}
@media (max-width:760px){.strand{margin:-34px auto 8px;width:100%}.strand path{stroke-width:15}}
.strand path{transform-box:fill-box;transform-origin:50% 50%}
@media (prefers-reduced-motion:reduce){.strand path{stroke-dashoffset:0;animation:none!important}}
.facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:30px;max-width:720px}
.fact{background:var(--blanco);border-radius:22px;padding:18px 16px;display:flex;flex-direction:column;gap:2px}
.fact b{font-weight:700;color:var(--rojo);font-size:clamp(46px,6vw,76px);line-height:.9;letter-spacing:-.02em}
.fact b em{font-style:normal;font-size:.5em;vertical-align:top}
.fact span{font-weight:700;text-transform:uppercase;font-size:clamp(14px,1.5vw,18px);margin-top:6px}
.fact small{font-family:var(--sans);font-size:13px;line-height:1.3;opacity:.8}
@media (max-width:760px){.facts{gap:8px}.fact{padding:14px 10px;border-radius:16px}.fact b{font-size:38px}.fact span{font-size:13px}.fact small{font-size:12.5px;opacity:.85}}
.swipe{display:none;font-family:var(--mono);text-transform:uppercase;letter-spacing:.04em;font-size:12px;color:var(--rojo);margin-top:10px}
@media (prefers-reduced-motion:reduce){.spin,.steam i{animation:none}.marquee .track{animation:none}.reveal{opacity:1;transform:none;transition:none}}

/* ===== Menú (post apertura) ===== */
.sec-blanco{background:var(--blanco)}
.menu-head{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap}
.menu-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-top:36px}
.dish{position:relative;background:var(--crema);border-radius:24px;padding:18px 18px 20px;display:flex;flex-direction:column;text-decoration:none;color:var(--negro);transition:transform .25s}
.dish:hover{transform:translateY(-4px)}
.dish .ph{aspect-ratio:1;display:grid;place-items:center;margin:-4px 0 6px}
.dish .ph img{width:88%;height:auto;transition:transform .5s cubic-bezier(.2,.7,.2,1)}
.dish:hover .ph img{transform:rotate(-8deg) scale(1.04)}
.dish .cat{font-family:var(--mono);text-transform:uppercase;letter-spacing:.04em;font-size:11px;color:var(--rojo)}
.dish h3{font-weight:700;text-transform:uppercase;color:var(--rojo);font-size:24px;line-height:1;margin:6px 0 6px}
.dish p{font-size:15px;line-height:1.4;flex:1}
.dish .row{display:flex;justify-content:space-between;align-items:center;margin-top:14px}
.dish .price{font-weight:700;font-size:20px}
.dish .add{width:40px;height:40px;border-radius:50%;background:var(--rojo);color:var(--crema);display:grid;place-items:center;font-size:24px;line-height:1}
.dish.out{pointer-events:none}
.dish.out .ph img{filter:grayscale(1);opacity:.45}
.dish.out .add{display:none}
.dish .tag{position:absolute;top:16px;right:16px;font-family:var(--mono);text-transform:uppercase;letter-spacing:.04em;font-size:11px;background:var(--negro);color:var(--crema);padding:5px 10px;border-radius:999px}
.menu-note{font-size:15px;margin-top:22px;opacity:.75}
@media (max-width:860px){.menu-grid{grid-template-columns:1fr 1fr;gap:10px}}
@media (max-width:560px){
  .menu-grid{grid-template-columns:1fr;gap:10px;margin-top:24px}
  .dish{display:grid;grid-template-columns:96px 1fr;column-gap:14px;padding:12px 14px 12px 10px;border-radius:20px;align-items:center}
  .dish .ph{grid-row:1/span 4;margin:0}
  .dish .ph img{width:100%}
  .dish h3{font-size:19px;margin:2px 0 4px}
  .dish p{font-size:14px}
  .dish .row{margin-top:8px}
  .dish .price{font-size:17px}
  .dish .add{width:34px;height:34px;font-size:20px}
  .dish .tag{top:8px;left:8px;right:auto;font-size:9.5px;padding:4px 8px}
  .menu-head .btn{width:100%;justify-content:center}
}

/* ===== Agregados para el sitio ===== */
/* iOS app instalada: la página nunca más corta que la pantalla (ver order/menu.php) */
body{min-height:100vh}
/* Plato sin foto: sin hueco, la tarjeta arranca con la categoría */
.dish.sin-foto{padding-top:22px}
@media (max-width:560px){.dish.sin-foto{grid-template-columns:1fr;padding:16px 16px 14px}}
.dish.sin-foto .tag{position:static;align-self:flex-start;margin-bottom:8px}
/* Horario cargado como texto (sin días reconocibles): sin "· hoy" */
.c-email{font-family:var(--mono);text-transform:uppercase;letter-spacing:.04em;font-size:12px;opacity:.75;margin-top:4px;word-break:break-all}
/* Enlaces con foco visible para teclado */
a:focus-visible,button:focus-visible{outline:3px solid var(--rojo);outline-offset:3px}
.stage.dark a:focus-visible,.sec-negro a:focus-visible,.sec-rojo a:focus-visible,.promo-band a:focus-visible,footer a:focus-visible{outline-color:var(--crema)}

/* ===== Secciones armadas con bloques (Admin → Sitio Web → Secciones) ===== */
.sec-crema{background:var(--crema)}
.sec-rojo{background:var(--rojo);color:var(--crema)}
.sec-rojo .eyebrow,.sec-rojo .h2,.sec-rojo .lab-end,.sec-rojo .w-lista h3,.sec-rojo .w-split h3{color:var(--crema)}
.sec-blanco .dish{background:var(--crema)}
.sec-crema .dish,.sec-negro .dish,.sec-rojo .dish{background:var(--blanco)}
/* "Hasta agotar stock": sobre fondo claro el título en negro y el link en rojo */
.sec-crema .stock,.sec-blanco .stock{border-top-color:rgba(var(--red-rgb,206,9,23),.3)}
.sec-crema .stock-t,.sec-blanco .stock-t{color:var(--negro)}
.sec-crema .stock p a,.sec-blanco .stock p a{color:var(--rojo)}
.sec-rojo .stock-t span:last-child{color:var(--negro)}
/* Bloques uno debajo del otro */
.wrap>.w-texto,.wrap>.w-split,.wrap>.w-lista,.wrap>.w-fig,.wrap>.w-btn,.wrap>.rule,.wrap>.c-grid,.wrap>.menu-grid{margin-top:28px}
.wrap>.eyebrow~.w-btn{margin-top:22px}
.w-btn{display:flex}
@media (max-width:760px){.w-btn .btn{width:100%;justify-content:center}}
.w-texto{max-width:680px}
.w-texto p{font-size:clamp(17px,1.6vw,19px);line-height:1.5}
.w-texto p+p{margin-top:12px}
.w-texto a,.w-split a{color:inherit;font-weight:700;text-decoration-color:var(--rojo);text-decoration-thickness:2px;text-underline-offset:4px}
.w-split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(20px,4vw,56px);align-items:center}
.w-split.der .w-split-media{order:2}
.w-split-media img{width:100%;border-radius:24px;object-fit:cover}
.w-split h3,.w-lista h3{font-weight:700;text-transform:uppercase;color:var(--rojo);font-size:clamp(26px,3vw,40px);line-height:.95}
.w-split p{font-size:17px;line-height:1.5;margin-top:12px}
@media (max-width:760px){.w-split{grid-template-columns:1fr}.w-split.der .w-split-media{order:0}}
.w-lista{max-width:760px}
.w-lista .benefits p{font-size:16px;line-height:1.45;opacity:.85;margin-top:2px}
.w-fig img{width:100%;border-radius:24px}
.w-fig figcaption{font-family:var(--mono);text-transform:uppercase;letter-spacing:.04em;font-size:12px;opacity:.7;margin-top:10px}
.sec-negro .benefits li,.sec-rojo .benefits li{border-color:rgba(var(--crema-rgb,246,235,214),.35)}
.sec-negro .benefits .n,.sec-rojo .benefits .n{color:var(--crema)}
/* Vista previa del admin: secciones apagadas */
.sec-borrador{position:absolute;left:12px;top:12px;z-index:5;font-family:var(--mono);text-transform:uppercase;letter-spacing:.04em;font-size:11px;background:#111;color:#fff;border-radius:999px;padding:5px 10px}
.hero .sec-borrador{top:90px}
.marquee{position:relative}
/* Barra de abajo del footer con varios links */
footer .f-links{display:flex;gap:10px 20px;flex-wrap:wrap}

/* HERO dibujado a mano (íconos de la marca, trazo rojo que se dibuja con el scroll) — maqueta semola-web-v2 */
.draw-layer{position:absolute;left:var(--pad);right:var(--pad);top:calc(max(12px,env(safe-area-inset-top)) + 96px);bottom:min(330px,44vh);pointer-events:none}
@media (min-width:901px){.draw-layer{left:46%;bottom:40px}}
.draw-layer .dw-all{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.draw-layer path{fill:none;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1 1;stroke-dashoffset:1}
.draw-layer path.o{stroke:var(--rojo,#CE0917);stroke-width:8}
.draw-layer path.i{stroke:#F6EBD6;stroke-width:3}
.draw-layer path.l{stroke:var(--rojo,#CE0917);stroke-width:3.2}
.draw-layer path.lg{stroke-width:5;fill:var(--rojo,#CE0917);fill-opacity:var(--fill,0)}
.draw-layer .pen{fill:var(--rojo,#CE0917)}
.stage:has(.draw-layer) .bigword{display:none}

/* La cinta roja que sigue a la portada queda pegada abajo mientras se scrollea el hero
   (position:sticky bottom:0) y después sigue con la página; los textos del hero suben para no taparse */
.hero + .marquee{position:sticky;bottom:0;z-index:40;padding-bottom:calc(14px + env(safe-area-inset-bottom))}
.hero:has(+ .marquee){--mq-h:calc(28px + clamp(22px,3.4vw,40px) * 1.4 + env(safe-area-inset-bottom))}
.hero:has(+ .marquee) .chapter{bottom:calc(max(7vh,28px) + var(--mq-h))}
@media (max-width:900px){.hero:has(+ .marquee) .chapter{bottom:calc(max(3vh,16px) + var(--mq-h))}}
.hero:has(+ .marquee) .draw-layer{bottom:calc(min(330px,44vh) + var(--mq-h) * .5)}
@media (min-width:901px){.hero:has(+ .marquee) .draw-layer{bottom:calc(40px + var(--mq-h))}}
