/* Paleta del logo Porvenir Tecnológico (guia-identidad-visual.md): azul noche #0A1168, índigo #222173, violeta #471A83, azul #1565E0, celeste #5AC8FA.
   Accesible: letra base 19px, contraste alto, botones >=52px con texto. */
:root{--noche:#0A1168;--indigo:#222173;--violeta:#471A83;--azul:#1565E0;--celeste:#5AC8FA;--tx:#111;--wa:#0B7A3B}
*{box-sizing:border-box}html{font-size:19px}body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;background:#eef1f8;color:var(--tx);line-height:1.4}
header{position:sticky;top:0;z-index:5;display:flex;justify-content:space-between;align-items:center;gap:10px;padding:10px 14px;background:linear-gradient(90deg,var(--azul),var(--indigo) 55%,var(--violeta))}
.logo{height:30px;max-width:58%;object-fit:contain}
button,select,input,.btn{font:inherit;min-height:52px}
.cartbtn{background:#fff;color:var(--noche);border:3px solid var(--celeste);border-radius:12px;padding:0 14px;font-weight:800}
.tools{padding:12px 14px;background:#fff;border-bottom:2px solid #c9d0e4}.lbl{display:block;font-weight:700;margin:8px 0 4px}
input,select{width:100%;padding:10px 12px;border:2px solid #4a5170;border-radius:12px;background:#fff;color:var(--tx)}
input:focus,select:focus,button:focus-visible{outline:4px solid var(--celeste);outline-offset:1px}
.notice{margin:12px 14px 0;background:#fff4d6;border:2px solid #b07d00;padding:10px 12px;border-radius:12px}
.count{margin:10px 14px;font-weight:700}
.grid{display:grid;grid-template-columns:1fr;gap:14px;padding:0 14px}
.card{background:#fff;border-radius:16px;overflow:hidden;border:2px solid #c9d0e4;display:flex;flex-direction:column}
.ph{aspect-ratio:4/3;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#fff;background:linear-gradient(135deg,var(--azul),var(--violeta));cursor:pointer}
.ph b{font-size:56px;line-height:1}.ph span{font-size:1rem;font-weight:700;margin-top:6px}.ph img{width:100%;height:100%;object-fit:cover}
.cb{padding:12px 14px;display:flex;flex-direction:column;gap:6px}
.nm{font-size:1.1rem;font-weight:700;margin:0}.cd{font-size:.95rem;color:#2b2f45}
.pr{font-weight:900;font-size:1.6rem;color:var(--noche)}
.tag{font-weight:800;border-radius:8px;padding:3px 10px;align-self:flex-start;font-size:.95rem}.ok{background:#d9f2e3;color:#0b5a2c}.low{background:#ffe0dc;color:#9b1c10}
.acts{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:0 14px 14px}
.btn{display:flex;align-items:center;justify-content:center;width:100%;padding:10px;border:0;border-radius:12px;font-weight:800;text-align:center;text-decoration:none;cursor:pointer}
.pri{background:var(--noche);color:#fff}.sec{background:#fff;color:var(--noche);border:3px solid var(--noche)}
.wa{background:var(--wa);color:#fff;font-size:1.25rem;min-height:64px;box-shadow:0 4px 0 #064d24}
.more{display:block;margin:18px auto;padding:0 28px;border-radius:12px;border:3px solid var(--noche);background:#fff;color:var(--noche);font-weight:800}
.overlay{position:fixed;inset:0;background:#000a;z-index:10;display:flex;align-items:flex-end;justify-content:center}.overlay[hidden]{display:none}
.sheet{background:#fff;width:100%;max-width:620px;max-height:94vh;overflow:auto;border-radius:18px 18px 0 0;padding:14px 16px 20px}
.top{display:flex;justify-content:flex-end}.close{background:#fff;border:3px solid var(--noche);color:var(--noche);border-radius:12px;padding:0 16px;font-weight:800}
.sheet h2{margin:10px 0 6px;font-size:1.35rem}.desc{font-size:1.05rem;margin:8px 0}
/* Carrusel táctil: scroll-snap nativo, sin librerías */
.car{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;border-radius:14px;scrollbar-width:none}.car::-webkit-scrollbar{display:none}
.car>*{flex:0 0 100%;scroll-snap-align:center}.dots{display:flex;justify-content:center;gap:10px;margin-top:8px}
.dots i{width:14px;height:14px;border-radius:50%;background:#b6bdd6}.dots i.on{background:var(--noche)}
.line{border-bottom:2px solid #e1e5f0;padding:10px 0}.line .n{font-weight:700}
.qty{display:flex;align-items:center;gap:10px;margin-top:6px}.qty button{min-width:52px;background:#fff;border:3px solid var(--noche);border-radius:12px;font-weight:900;font-size:1.3rem;color:var(--noche)}.qty .q{font-size:1.2rem;font-weight:800;min-width:30px;text-align:center}.qty .s{margin-left:auto;font-weight:800}
.total{font-size:1.5rem;font-weight:900;text-align:right;margin:14px 0}
footer{margin-top:28px;padding:20px 16px;background:var(--noche);color:#fff;text-align:center}footer p{margin:6px 0}
@media(min-width:640px){.grid{grid-template-columns:repeat(2,1fr)}}
@media(min-width:900px){.grid{grid-template-columns:repeat(3,1fr);max-width:1200px;margin:0 auto}.tools{display:grid;grid-template-columns:2fr 1fr 1fr;gap:0 12px;max-width:1200px;margin:0 auto}.tools .lbl{grid-row:1}.notice,.count{max-width:1172px;margin-left:auto;margin-right:auto}.overlay{align-items:center}.sheet{border-radius:18px}.logo{height:38px}}
@media(min-width:1250px){.grid{grid-template-columns:repeat(4,1fr)}}
.cartbtn{white-space:nowrap}.logo{max-width:52%}
/* ---- Portada llamativa ---- */
.hero{background:radial-gradient(circle at 85% 15%,#5AC8FA55,transparent 40%),linear-gradient(135deg,var(--azul),var(--indigo) 55%,var(--violeta));color:#fff;padding:34px 18px 38px;text-align:center}
.hero h1{font-size:1.9rem;line-height:1.15;margin:0 0 12px}.hero p{font-size:1.1rem;margin:0 auto 20px;max-width:640px}
.heroBtn{background:#fff;color:var(--noche);font-size:1.25rem;min-height:62px;max-width:340px;margin:0 auto;border-radius:16px;box-shadow:0 6px 18px #0004}
.sec-wrap{padding:20px 14px 4px;max-width:1200px;margin:0 auto}.sh{font-size:1.4rem;margin:0 0 12px;color:var(--noche)}
.fcats{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}
.fcat{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;min-height:110px;border:0;border-radius:18px;background:var(--c);color:#fff;font-weight:800;font-size:1rem;box-shadow:0 4px 12px #0002;cursor:pointer}.fcat span{font-size:2.2rem}
.dest{display:flex;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:8px}
.dcard{flex:0 0 72%;max-width:260px;scroll-snap-align:start;background:#fff;border:0;border-radius:18px;overflow:hidden;box-shadow:0 4px 14px #0a116822;text-align:left;padding:0 0 12px;font:inherit;cursor:pointer;display:flex;flex-direction:column}
.dcard img{width:100%;aspect-ratio:1;object-fit:cover}.dcard b{padding:10px 12px 4px;font-size:1rem}.dcard span{padding:0 12px;font-size:1.4rem;font-weight:900;color:var(--noche)}
.steps{list-style:none;padding:0;margin:0;display:grid;gap:12px}.steps li{background:#fff;border-radius:18px;padding:14px 16px;box-shadow:0 3px 10px #0001;display:grid;grid-template-columns:56px 1fr;column-gap:12px;align-items:center}
.steps span{grid-row:span 2;font-size:2.2rem;width:56px;height:56px;border-radius:50%;background:#e6ecff;display:flex;align-items:center;justify-content:center}.steps b{font-size:1.15rem;color:var(--noche)}
.card{box-shadow:0 4px 14px #0a116814;border-color:#dde3f2;border-radius:18px}
button,.btn,.card,.fcat,.dcard{transition:transform .12s ease,box-shadow .12s ease}button:active,.btn:active,.fcat:active,.dcard:active{transform:scale(.97)}
@media(hover:hover){.card:hover,.fcat:hover,.dcard:hover{transform:translateY(-3px);box-shadow:0 8px 20px #0a116826}}
.notice.big{font-size:1.1rem;font-weight:800;background:#fff4d6;border:3px solid #b07d00;color:#3d2a00}
.fab{position:fixed;right:14px;bottom:16px;z-index:8;background:var(--wa);color:#fff;border:0;border-radius:40px;padding:0 22px;min-height:60px;font-weight:900;font-size:1.1rem;box-shadow:0 6px 18px #0006}
footer{padding-bottom:96px}
@media(min-width:900px){.fcats{grid-template-columns:repeat(4,1fr)}.steps{grid-template-columns:repeat(3,1fr)}.hero{padding:60px 20px}.hero h1{font-size:2.6rem}.dcard{flex-basis:230px}}
@media (prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
/* ---- Cabecera con nombre en tipografía redondeada (Baloo 2, local) ---- */
@font-face{font-family:"Baloo 2";src:url(fonts/baloo2-800.woff2) format("woff2");font-weight:800;font-display:swap}
header{display:grid;grid-template-columns:1fr;justify-items:center;padding:10px 14px 12px;gap:8px}
.brand{font-family:"Baloo 2",system-ui,sans-serif;font-weight:800;font-size:1.6rem;line-height:1.1;color:#fff;text-align:center;text-shadow:0 2px 6px #0004}
.brand .inf{color:var(--celeste);font-size:1.25em;vertical-align:-.06em}
.hdr-r{display:none}
@media(min-width:900px){header{grid-template-columns:1fr auto 1fr}.brand{grid-column:2;font-size:2.1rem}.hdr-r{display:block;grid-column:3;justify-self:end}}
/* ---- Banner con imagen de temporada + velo oscuro para contraste ---- */
.hero{position:relative;padding:0;background:#222173 center/cover no-repeat;min-height:300px;display:flex}
.veil{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:16px;padding:28px 18px 30px;background:linear-gradient(180deg,#0A116822 0%,#0A116866 45%,#0A1168e6 100%)}
.hero h1{font-family:"Baloo 2",system-ui,sans-serif;font-size:2.2rem;margin:0;text-shadow:0 2px 10px #000a}
@media(min-width:900px){.hero{min-height:440px}.hero h1{font-size:3.2rem}}
/* ---- Mi pedido: miniaturas y dos opciones grandes ---- */
.line{display:flex;gap:12px;align-items:flex-start}.li{flex:1}
.th{width:72px;height:72px;border-radius:12px;object-fit:cover;flex:0 0 72px;border:2px solid #dde3f2}
.thph{display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--azul),var(--violeta));color:#fff;font-weight:900;font-size:1.6rem}
.modos{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.modo{min-height:64px;border-radius:14px;border:3px solid var(--noche);background:#fff;color:var(--noche);font-weight:800;font-size:1.05rem}
.modo.on{background:var(--noche);color:#fff;box-shadow:0 0 0 4px var(--celeste)}
.brand{font-size:1.4rem;white-space:nowrap}@media(max-width:360px){.brand{font-size:1.2rem}}
@media(min-width:900px){.brand,.hdr-r{grid-row:1}.brand{font-size:2.1rem}}
