/* FRANKLERS · sitio: menú con selector de producto, carro compartido y portada (panel principal).
   Usa los tokens de ficha.css (--k, --w, --red, --r, --g, --max, --font). */

/* ── menú fijo en todas las páginas ── */
.nav{ position:sticky; top:0; z-index:40; background:rgba(3,3,3,.9); backdrop-filter:blur(12px); -webkit-backdrop-filter:blur(12px);
      border-bottom:1px solid var(--w3) }
.nav-in{ max-width:var(--max); margin:0 auto; padding:10px var(--g); display:flex; align-items:center; gap:18px }
.nav .marca{ flex:none; min-height:44px }
.nav-caps{ display:flex; gap:4px; margin-right:auto }
.nav-caps a{ display:flex; align-items:center; min-height:44px; padding:0 12px; border-radius:10px; font-size:15px; color:var(--w2); text-decoration:none }
.nav-caps a:hover, .nav-caps a[aria-current="true"]{ color:var(--w); background:rgba(255,255,255,.06) }
.sel{ position:relative; flex:none }
.sel select{ appearance:none; -webkit-appearance:none; min-height:44px; max-width:260px; padding:0 40px 0 14px; border:1px solid var(--w3); border-radius:12px;
             background:var(--k2); color:var(--w); font:500 15px var(--font); cursor:pointer }
.sel::after{ content:''; position:absolute; right:16px; top:50%; width:8px; height:8px; margin-top:-6px; border:solid var(--w2);
             border-width:0 2px 2px 0; transform:rotate(45deg); pointer-events:none }
.sel select:focus-visible, .btn:focus-visible, .carro-btn:focus-visible{ outline:2px solid var(--red); outline-offset:2px }
.carro-btn{ position:relative; flex:none; display:flex; align-items:center; gap:8px; min-height:44px; padding:0 16px; border:0; border-radius:12px;
            background:var(--red); color:#fff; font:600 15px var(--font); cursor:pointer }
.carro-n{ min-width:22px; height:22px; padding:0 6px; border-radius:99px; background:#fff; color:var(--red); font-size:13px; line-height:22px; text-align:center }
.confianza-bar{ border-top:1px solid var(--w3); font-size:13px; color:var(--w2) }
.confianza-bar ul{ max-width:var(--max); margin:0 auto; padding:8px var(--g); list-style:none; display:flex; justify-content:center; flex-wrap:wrap; gap:6px 22px }
.confianza-bar li::before{ content:'✓ '; color:var(--red) }
@media (max-width:980px){ .nav-caps{ display:none } .nav-in{ gap:10px } .sel{ margin-left:auto } .sel select{ max-width:46vw } }
@media (max-width:520px){ .nav .marca span.txt{ display:none } .carro-btn .t{ display:none } }

/* ── carro lateral ── */
.carro{ position:fixed; inset:0; z-index:60; display:none }
.carro.abierto{ display:block }
.carro-fondo{ position:absolute; inset:0; background:rgba(0,0,0,.6) }
.carro-panel{ position:absolute; right:0; top:0; bottom:0; width:min(420px, 100%); display:flex; flex-direction:column;
              background:var(--k2); border-left:1px solid var(--w3); box-shadow:-20px 0 60px rgba(0,0,0,.5) }
.carro-cab{ display:flex; justify-content:space-between; align-items:center; padding:18px 20px; border-bottom:1px solid var(--w3) }
.carro-cab h2{ font-size:20px; font-weight:500 }
.carro-x{ width:44px; height:44px; border:0; border-radius:50%; background:transparent; color:var(--w); font-size:26px; cursor:pointer }
.carro-lista{ flex:1; overflow:auto; padding:8px 20px; list-style:none }
.carro-lista li{ display:grid; grid-template-columns:64px 1fr auto; gap:12px; align-items:center; padding:14px 0; border-bottom:1px solid var(--w3) }
.carro-lista img{ width:64px; height:64px; object-fit:cover; border-radius:10px; background:var(--k3) }
.cl-n{ display:block; font-weight:500; font-size:15px; line-height:1.25 } .cl-v{ font-size:13px; color:var(--w2) } .cl-p{ font-size:15px; text-align:right }
.cl-q{ display:inline-flex; align-items:center; margin-top:6px; border:1px solid var(--w3); border-radius:10px }
.cl-q button{ width:36px; height:36px; border:0; background:transparent; color:var(--w); font-size:18px; cursor:pointer }
.cl-q output{ min-width:22px; text-align:center; font-size:14px }
.cl-del{ display:block; margin-top:6px; padding:0; border:0; background:none; color:var(--w2); font-size:13px; text-decoration:underline; cursor:pointer }
.carro-vacio{ padding:40px 20px; text-align:center; color:var(--w2) }
.carro-pie{ padding:18px 20px 22px; border-top:1px solid var(--w3); display:grid; gap:10px }
.carro-fila{ display:flex; justify-content:space-between; font-size:15px; color:var(--w2) }
.carro-fila.total{ color:var(--w); font-size:20px; font-weight:600 }
.carro-fila.promo{ color:#7ee08a }
.carro-nota{ font-size:13px; color:var(--w2) }
.carro-pie .buy{ min-height:54px }
.carro-ok{ margin:12px 20px 0; padding:10px 14px; border-radius:10px; background:rgba(126,224,138,.12); color:#7ee08a; font-size:14px; font-weight:500 }
.carro-ok:empty{ display:none }

/* ── portada ── */
.inicio{ max-width:var(--max); margin:0 auto; padding:clamp(40px, 7vw, 96px) var(--g) clamp(40px, 6vw, 80px);
         display:grid; grid-template-columns:1.05fr 1fr; gap:clamp(28px, 5vw, 72px); align-items:center }
.inicio h1{ font-size:clamp(40px, 6.4vw, 88px); font-weight:500; line-height:.98; letter-spacing:-.02em }
.inicio h1 em{ font-style:normal; color:var(--red) }
.inicio .bajada{ margin-top:18px; font-size:clamp(17px, 1.6vw, 20px); color:var(--w2); max-width:46ch }
.ctas{ display:flex; flex-wrap:wrap; gap:10px; margin-top:28px }
.btn{ display:inline-flex; align-items:center; justify-content:center; min-height:52px; padding:0 22px; border-radius:12px; font-weight:600;
      font-size:15px; letter-spacing:.04em; text-decoration:none; border:1px solid var(--w3); color:var(--w); background:transparent; cursor:pointer }
.btn.rojo{ background:var(--red); border-color:var(--red); color:#fff }
.btn:hover{ filter:brightness(1.1) }
/* 1.6fr + 1fr: la foto alta queda casi en 4:5 y las fotos con marca no pierden el logo ni la franja roja de abajo */
.mosaico{ display:grid; grid-template-columns:1.6fr 1fr; gap:10px }
.mosaico figure{ aspect-ratio:1 } .mosaico figure:first-child{ grid-row:span 2; aspect-ratio:auto }
.mosaico img{ object-position:50% 100% }
.panel{ max-width:var(--max); margin:0 auto clamp(48px, 7vw, 96px); padding:0 var(--g) }
.panel-in{ display:grid; grid-template-columns:1fr auto; gap:14px; align-items:end; padding:clamp(20px, 3vw, 32px); border:1px solid var(--w3);
           border-radius:var(--r); background:var(--k2) }
.panel label{ display:block; margin-bottom:10px; font-size:13px; font-weight:600; letter-spacing:.12em; text-transform:uppercase; color:var(--red) }
.panel .sel select{ width:100%; max-width:none; min-height:56px; font-size:17px }
.panel .sel{ width:100% }
@media (max-width:860px){ .inicio{ grid-template-columns:1fr } .panel-in{ grid-template-columns:1fr } }

.capitulo{ max-width:var(--max); margin:0 auto; padding:clamp(40px, 6vw, 80px) var(--g); scroll-margin-top:80px }
.cap-cab{ display:flex; align-items:flex-end; gap:20px; margin-bottom:28px; border-bottom:1px solid var(--w3); padding-bottom:20px }
.cap-cab .n{ font-size:clamp(48px, 7vw, 96px); line-height:.85; color:var(--red) }
.cap-cab h2{ font-size:clamp(30px, 4vw, 52px); font-weight:500; text-transform:uppercase; letter-spacing:.02em; line-height:1 }
.cap-cab p{ color:var(--w2); max-width:52ch; margin-top:6px }
.grilla{ display:grid; grid-template-columns:repeat(auto-fill, minmax(250px, 1fr)); gap:14px }
.card{ position:relative; display:flex; flex-direction:column; border:1px solid var(--w3); border-radius:var(--r); background:var(--k2); overflow:hidden }
.card:hover{ border-color:rgba(226,35,52,.6) }
.card-img{ display:block; aspect-ratio:1; overflow:hidden; background:#f2f2f0 }
.card-img img{ display:block; width:100%; height:100%; aspect-ratio:1; object-fit:cover }
.card-img.osc{ background:var(--k3) }
.badges-c{ position:absolute; top:12px; left:12px; display:flex; flex-wrap:wrap; gap:6px }
.bdg{ padding:4px 10px; border-radius:99px; background:rgba(3,3,3,.85); color:#fff; font-size:12px; font-weight:600; letter-spacing:.04em }
.bdg.r{ background:var(--red) }
.card-b{ display:flex; flex-direction:column; gap:6px; padding:16px 18px 18px; flex:1 }
.card-n{ font-size:19px; font-weight:600; letter-spacing:.02em; text-decoration:none }
.card-d{ font-size:14px; color:var(--w2) }
.card-g{ font-size:15px; line-height:1.4; margin-top:2px }
.card-p{ margin-top:auto; padding-top:10px; display:flex; align-items:baseline; justify-content:space-between; gap:8px }
.card-p b{ font-size:22px; font-weight:600 } .card-p span{ font-size:13px; color:var(--w2) }
.card-acc{ display:grid; grid-template-columns:1fr 1fr; gap:8px; margin-top:12px }
.card-acc .btn{ min-height:46px; padding:0 10px; font-size:14px }

.kits{ max-width:var(--max); margin:0 auto; padding:clamp(40px, 6vw, 80px) var(--g); scroll-margin-top:80px }
.kits h2{ font-size:clamp(30px, 4vw, 52px); font-weight:500; margin-bottom:8px } .kits > p{ color:var(--w2); margin-bottom:24px }
.kit-c{ padding:20px; border:1px solid var(--w3); border-radius:var(--r); background:var(--k2); display:flex; flex-direction:column; gap:12px }
.kit-c h3{ font-size:20px; font-weight:600 }
.kit-thumbs{ display:flex; gap:8px } .kit-thumbs img{ width:64px; height:64px; object-fit:cover; border-radius:10px; background:#f2f2f0 }
.kit-c ul{ list-style:none; padding:0; font-size:14px; color:var(--w2); display:grid; gap:4px }
.kit-c .btn{ margin-top:auto }
.info{ max-width:var(--max); margin:0 auto; padding:clamp(40px, 6vw, 80px) var(--g); display:grid; grid-template-columns:repeat(auto-fit, minmax(230px, 1fr)); gap:14px }
.info div{ padding:22px; border:1px solid var(--w3); border-radius:var(--r) } .info b{ display:block; font-size:17px; margin-bottom:6px } .info p{ color:var(--w2); font-size:15px }
.nota-mp{ font-size:13px; color:var(--w2) }

/* ── piezas agregadas ── */
.skip{ position:absolute; left:-9999px; top:8px; z-index:80; padding:10px 14px; border-radius:10px; background:var(--w); color:var(--k) }
.skip:focus{ left:8px }
.eyebrow a{ text-decoration:none } .eyebrow a:hover{ color:var(--w) }
.chips{ display:flex; flex-wrap:wrap; gap:8px }
.chips a{ display:inline-flex; align-items:center; min-height:44px; padding:0 14px; border:1px solid var(--w3); border-radius:99px; font-size:14px; text-decoration:none; color:var(--w2) }
.chips a:hover{ color:var(--w); border-color:var(--w2) }
.kit-v{ display:grid; gap:6px; font-size:13px; color:var(--w2) } .kit-v .sel select{ width:100%; max-width:none }
.kit-total{ font-size:15px; font-weight:600 }
.add{ flex:1; min-height:52px; padding:0 18px; border:1px solid var(--w); border-radius:12px; background:transparent; color:var(--w); font:600 15px var(--font); cursor:pointer }
.add:hover{ background:var(--w); color:var(--k) }
.vars-l{ font-size:13px; font-weight:600; letter-spacing:.1em; text-transform:uppercase; color:var(--w2) }
section.solo{ grid-template-columns:1fr !important; max-width:900px !important }
/* una fila larga de miniaturas o una tabla no debe ensanchar la columna de la grilla (scroll horizontal en celular) */
.hero > *, .regalo > *, .ganancia > *, .beneficios > *, .momentos > *, .protocolo > *, .ficha-tec > *{ min-width:0 }
.extra figure{ max-width:900px; margin:0 auto; background:#fff }
.rel .grilla{ margin-top:8px }
