*{margin:0;padding:0;box-sizing:border-box}
body{font-family:'Inter',-apple-system,Segoe UI,Roboto,sans-serif;color:var(--texto);background:#fff;-webkit-font-smoothing:antialiased;line-height:1.5}
a{text-decoration:none;color:inherit} img{max-width:100%;display:block}
.wrap{max-width:1240px;margin:0 auto;padding:0 20px}
.muted{color:var(--muted)} .empty{color:var(--muted);padding:40px 0;text-align:center}
h1,h2,h3{font-family:'Montserrat',sans-serif}

/* Topbar */
.topbar{background:var(--azul-osc);color:#dce6f2;font-size:13px}
.topbar .wrap{display:flex;justify-content:space-between;align-items:center;height:38px}
.ch-mayorista .topbar{background:#06243f}

/* Header */
.header{border-bottom:1px solid var(--linea);background:#fff;position:sticky;top:0;z-index:40}
.header .wrap{display:flex;align-items:center;gap:24px;height:88px}
.logo img{height:50px}
.search{flex:1;max-width:520px;position:relative}
.search input{width:100%;border:1.5px solid var(--linea);background:var(--gris);border-radius:30px;padding:12px 18px 12px 44px;font-size:14px;outline:none}
.search input:focus{border-color:var(--azul)}
.search svg{position:absolute;left:16px;top:50%;transform:translateY(-50%);width:18px;height:18px;color:var(--muted)}
.head-actions{display:flex;align-items:center;gap:22px;margin-left:auto}
.h-item{display:flex;align-items:center;gap:9px;font-size:13px}
.h-item .lbl small{display:block;color:var(--muted);font-size:11px}
.h-item .lbl b{font-size:13px;color:var(--azul-osc)}
.h-item svg{width:22px;height:22px;color:var(--azul)}
.cart{position:relative}
.cart .badge{position:absolute;top:-8px;right:-10px;background:var(--naranja);color:#fff;font-size:11px;font-weight:700;min-width:18px;height:18px;border-radius:10px;display:grid;place-items:center;padding:0 4px}

/* Nav */
.nav{background:var(--azul-osc)}
.ch-mayorista .nav{background:#06243f}
.nav .wrap{display:flex;align-items:center;gap:4px;height:50px;overflow-x:auto}
.nav a{color:#eaf1fa;font-size:13px;font-weight:600;padding:8px 13px;border-radius:6px;text-transform:uppercase;white-space:nowrap;transition:.15s}
.nav a:hover,.nav a.active{background:rgba(255,255,255,.1);color:#fff}
.nav .to-other{margin-left:auto;background:var(--naranja);color:#fff}
.nav .to-other:hover{background:var(--naranja)}

/* Hero */
.hero{padding:26px 0}
.hero-grid{display:grid;grid-template-columns:1.55fr 1fr;gap:20px}
.hero-main{position:relative;border-radius:16px;overflow:hidden;min-height:340px;
  background:radial-gradient(circle at 80% 28%,#ffd84d 0 20%,transparent 20%),linear-gradient(120deg,#eef3f8 0 60%,var(--naranja) 60%);
  display:flex;flex-direction:column;justify-content:center;padding:42px}
.hero-main .eyebrow{font-family:'Montserrat';font-weight:800;color:var(--naranja);letter-spacing:2px;text-transform:uppercase;font-size:13px;margin-bottom:8px}
.hero-main h1{font-family:'Montserrat';font-weight:900;font-size:46px;line-height:1;color:var(--azul-osc);max-width:62%}
.hero-main p{margin-top:14px;max-width:60%;color:#33414f;font-weight:500;font-size:15px}
.hero-side{display:grid;grid-template-rows:1fr 1fr;gap:20px}
.side-card{border-radius:16px;padding:26px;color:#fff;display:flex;flex-direction:column;justify-content:center;overflow:hidden}
.side-may{background:linear-gradient(120deg,#2e8b57,#7cc576 65%,#ffd84d)}
.side-may h3{font-family:'Montserrat';font-weight:800;font-size:20px;line-height:1.1}
.side-may .big{font-family:'Montserrat';font-weight:900;font-size:30px}
.side-may .cta{margin-top:12px;align-self:flex-start;background:var(--naranja);color:#fff;font-family:'Montserrat';font-weight:800;padding:9px 18px;border-radius:30px;font-size:13px;text-transform:uppercase}
.side-all{background:linear-gradient(120deg,var(--naranja),#8a3d00)}
.side-all h3{font-family:'Montserrat';font-weight:900;font-size:26px}
.side-all .cta{margin-top:14px;align-self:flex-start;background:#ffd84d;color:#1a1a1a;font-family:'Montserrat';font-weight:800;padding:9px 20px;border-radius:8px;font-size:13px}

/* Sliders (banners BD) */
.sliders{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:8px 0 20px}
.sliders .slide img{border-radius:14px;width:100%}

/* Features */
.features{border:1px solid var(--linea);border-radius:14px;margin:6px 0 30px}
.features .wrap-in{display:grid;grid-template-columns:repeat(4,1fr)}
.feat{padding:18px 22px;border-right:1px solid var(--linea)}
.feat:last-child{border-right:0}
.feat b{display:block;font-size:14px;color:var(--azul-osc)}
.feat span{font-size:12.5px;color:var(--muted)}

/* Categoria */
.cat{margin:38px 0}
.cat-head{display:flex;align-items:center;justify-content:space-between;border-bottom:2px solid var(--linea);padding-bottom:12px;margin-bottom:22px}
.cat-title{font-weight:800;font-size:23px;color:var(--azul-osc)}
.cat-all{font-weight:600;color:var(--azul);font-size:14px}
.cat-body{display:grid;grid-template-columns:230px 1fr;gap:22px}
.cat-promo{border-radius:16px;padding:26px 22px;color:#fff;display:flex;flex-direction:column;align-items:center;text-align:center;min-height:420px}
.promo-kicker{background:rgba(0,0,0,.22);font-family:'Montserrat';font-weight:700;font-size:11px;letter-spacing:1px;padding:5px 12px;border-radius:20px;text-transform:uppercase}
.promo-title{font-family:'Montserrat';font-weight:900;font-size:34px;margin:14px 0 2px}
.promo-sabor{font-family:'Montserrat';font-weight:700;background:#ffd84d;color:#1a1a1a;padding:3px 14px;border-radius:20px;font-size:13px}
.promo-cta{margin-top:auto;background:rgba(0,0,0,.32);color:#fff;font-family:'Montserrat';font-weight:700;padding:10px 22px;border-radius:30px;font-size:14px}

/* Grid + Cards */
.grid{display:grid;grid-template-columns:repeat(5,1fr);gap:16px}
.grid-cat{grid-template-columns:repeat(4,1fr)}
.card{border:1px solid var(--linea);border-radius:14px;padding:14px;display:flex;flex-direction:column;transition:.18s;background:#fff}
.card:hover{box-shadow:0 10px 26px rgba(14,58,107,.12);transform:translateY(-3px);border-color:transparent}
.card-media{aspect-ratio:1;border-radius:10px;background:linear-gradient(135deg,#eef2f6,#dfe7ee);display:grid;place-items:center;margin-bottom:12px;overflow:hidden;position:relative}
.card-media img{width:100%;height:100%;object-fit:cover}
.card-media .ph{font-family:'Montserrat';font-weight:900;font-size:40px;color:#c3ccd6}
.card-media em{position:absolute;bottom:8px;font-style:normal;font-family:'Montserrat';font-weight:800;font-size:11px;color:#aab4bf;letter-spacing:1px}
.card-name{font-size:13px;font-weight:600;line-height:1.35;min-height:52px}
.card-price{font-family:'Montserrat';font-weight:800;font-size:20px;color:var(--azul);margin:6px 0 12px}
.card-btn{margin-top:auto;border:0;background:var(--naranja);color:#fff;font-family:'Montserrat';font-weight:700;font-size:13px;padding:11px;border-radius:9px;cursor:pointer;width:100%}
.card-btn:hover{filter:brightness(.94)}

/* Promos */
.promos{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin:36px 0}
.pbanner{border-radius:16px;padding:32px 34px;color:#fff;min-height:150px;display:flex;flex-direction:column;justify-content:center}
.p-min{background:linear-gradient(120deg,#2e8b57,#3fae6a)}
.p-min h3{font-family:'Montserrat';font-weight:900;font-size:28px}
.p-min .amount{font-family:'Montserrat';font-weight:900;font-size:24px;background:#ffd84d;color:#1a1a1a;display:inline-block;padding:2px 16px;border-radius:8px;margin:8px 0;align-self:flex-start}
.p-min p{font-size:13px;max-width:75%;opacity:.95}
.p-env{background:linear-gradient(120deg,#c0392b,#8f251a)}
.p-env .k{font-size:12px;opacity:.85;font-weight:600;text-align:right}
.p-env h3{font-family:'Montserrat';font-weight:900;font-size:32px;background:#1a1a1a;display:inline-block;padding:4px 18px;border-radius:8px;margin:6px 0;align-self:flex-start}
.p-env .cta{align-self:flex-start;background:#fff;color:#1a1a1a;font-weight:700;padding:8px 18px;border-radius:30px;font-size:13px}

/* Catalogo */
.catalogo{padding:26px 0}
.cat-layout{display:grid;grid-template-columns:220px 1fr;gap:26px;margin-top:20px}
.side-cats h4{font-size:14px;color:var(--azul-osc);margin-bottom:10px}
.side-cats a{display:block;padding:8px 12px;border-radius:8px;color:#445;font-size:14px;font-family:'Inter'}
.side-cats a:hover,.side-cats a.on{background:var(--gris);color:var(--azul);font-weight:600}
.pager{display:flex;gap:6px;margin-top:24px;flex-wrap:wrap}
.pager a{padding:8px 13px;border:1px solid var(--linea);border-radius:8px;font-size:14px;font-weight:600;color:#445}
.pager a.on{background:var(--azul);color:#fff;border-color:var(--azul)}

/* Ficha */
.ficha{padding:24px 0}
.crumbs{font-size:13px;color:var(--muted);margin-bottom:20px}
.crumbs a{color:var(--azul)}
.ficha-grid{display:grid;grid-template-columns:1fr 1fr;gap:40px}
.fg-main{border-radius:14px;background:var(--gris);width:100%;aspect-ratio:1;object-fit:contain}
.fg-none{border-radius:14px;background:linear-gradient(135deg,#eef2f6,#dfe7ee);aspect-ratio:1;display:grid;place-items:center;font-family:'Montserrat';font-weight:800;color:#b7c1cc;font-size:14px}
.fg-none span{font-size:64px;display:block}
.fg-thumbs{display:flex;gap:10px;margin-top:12px}
.fg-thumbs img{width:64px;height:64px;object-fit:cover;border-radius:8px;border:1px solid var(--linea);cursor:pointer}
.ficha-info h1{font-size:28px;color:var(--azul-osc);line-height:1.15}
.ficha-cat{color:var(--muted);font-size:14px;margin:8px 0 16px}
.ficha-precio{font-family:'Montserrat';font-weight:900;font-size:36px;color:var(--azul)}
.ficha-aviso{display:block;background:#FEF6E7;color:#a86b00;padding:10px 14px;border-radius:10px;font-size:13px;font-weight:600;margin:14px 0}
.ficha-datos{list-style:none;margin:18px 0;border-top:1px solid var(--linea)}
.ficha-datos li{padding:9px 0;border-bottom:1px solid var(--linea);font-size:14px;color:#445}
.ficha-add{display:flex;gap:12px;margin-top:20px}
.qty{width:80px;padding:12px;border:1.5px solid var(--linea);border-radius:9px;text-align:center;font-size:15px}
.btn-add{background:var(--naranja);color:#fff;border:0;font-family:'Montserrat';font-weight:800;padding:13px 26px;border-radius:9px;font-size:15px;cursor:pointer}
.ficha-desc{margin-top:20px;color:#445;font-size:14px}
.relacionados{margin-top:48px}
.relacionados h2{font-size:20px;color:var(--azul-osc);margin-bottom:18px}

/* Carrito */
.carrito{padding:26px 0}
.carrito h1{color:var(--azul-osc);margin-bottom:20px}
.cart-grid{display:grid;grid-template-columns:1fr 320px;gap:26px}
.cline{display:grid;grid-template-columns:64px 1fr 90px 90px 30px;align-items:center;gap:14px;padding:14px 0;border-bottom:1px solid var(--linea)}
.cl-img img,.cl-img span{width:64px;height:64px;border-radius:8px;object-fit:cover}
.cl-img span{background:linear-gradient(135deg,#eef2f6,#dfe7ee);display:grid;place-items:center;font-family:'Montserrat';font-weight:800;color:#b7c1cc}
.cl-info b{font-size:14px}.cl-sku{display:block;color:var(--muted);font-size:12px;margin-top:3px}
.cl-qty input{width:64px;padding:8px;border:1.5px solid var(--linea);border-radius:8px;text-align:center}
.cl-total{font-family:'Montserrat';font-weight:800;color:var(--azul);text-align:right}
.cl-del button{background:none;border:0;color:#c0392b;font-size:16px;cursor:pointer}
.cart-summary{background:var(--gris);border-radius:14px;padding:22px;align-self:start}
.cart-summary h3{color:var(--azul-osc);margin-bottom:14px}
.cs-row{display:flex;justify-content:space-between;padding:8px 0;font-size:15px}
.cs-min{padding:10px 12px;border-radius:9px;font-size:13px;font-weight:600;margin:12px 0}
.cs-min.ok{background:#E8F6EF;color:#1e7e46}.cs-min.no{background:#FEF6E7;color:#a86b00}
.cs-btn{display:block;text-align:center;background:var(--naranja);color:#fff;font-family:'Montserrat';font-weight:800;padding:14px;border-radius:10px;margin-top:6px}
.cs-btn.disabled{opacity:.5;pointer-events:none}
.cs-seguir{display:block;text-align:center;color:var(--azul);font-weight:600;font-size:14px;margin-top:14px}
.cs-cross{display:block;text-align:center;background:#fff;border:1.5px dashed var(--naranja);color:var(--naranja);font-weight:600;font-size:13px;padding:10px;border-radius:10px;margin-top:14px}

/* Pagina generica */
.pagina{padding:32px 0;min-height:40vh}
.pagina h1{color:var(--azul-osc);margin-bottom:18px}
.pagina-cont{color:#445;font-size:15px;line-height:1.7}

/* Footer */
.footer{background:var(--gris);border-top:1px solid var(--linea);padding:48px 0 0;margin-top:44px}
.foot-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:30px}
.foot-logo{height:46px;margin-bottom:16px}
.foot-consulta{color:var(--azul);font-weight:600;font-size:14px}
.foot-tel{font-family:'Montserrat';font-weight:800;font-size:19px;color:var(--azul-osc);margin:4px 0 12px}
.foot-desc{color:var(--muted);font-size:13.5px;max-width:320px}
.foot-social{display:flex;gap:10px;margin-top:16px}
.foot-social a{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;color:#fff;background:var(--azul)}
.foot-col h4{font-weight:800;font-size:15px;color:var(--azul-osc);margin-bottom:14px}
.foot-col a{display:block;color:var(--muted);font-size:14px;margin-bottom:10px}
.foot-col a:hover{color:var(--azul)}
.foot-pay{color:var(--muted);font-size:13px}
.foot-bottom{background:#222;color:#aaa;margin-top:36px;padding:16px 0;font-size:13px}
.foot-bottom .wrap{display:flex;justify-content:space-between;align-items:center}

/* Toast */
.toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%) translateY(40px);background:var(--azul-osc);color:#fff;padding:14px 22px;border-radius:12px;font-size:14px;font-weight:600;opacity:0;transition:.25s;z-index:80;box-shadow:0 10px 30px rgba(0,0,0,.25)}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}

@media(max-width:980px){
  .hero-grid{grid-template-columns:1fr}.hero-main h1,.hero-main p{max-width:100%}
  .features .wrap-in{grid-template-columns:1fr 1fr}.feat{border-bottom:1px solid var(--linea)}
  .cat-body{grid-template-columns:1fr}.cat-promo{min-height:auto}
  .grid,.grid-cat{grid-template-columns:repeat(3,1fr)}
  .promos,.foot-grid,.sliders{grid-template-columns:1fr}
  .cat-layout{grid-template-columns:1fr}.ficha-grid{grid-template-columns:1fr}
  .cart-grid{grid-template-columns:1fr}
}
@media(max-width:620px){
  .header .wrap{flex-wrap:wrap;height:auto;padding:14px 20px;gap:12px}
  .search{order:3;flex-basis:100%;max-width:100%}
  .grid,.grid-cat{grid-template-columns:repeat(2,1fr)}
  .hero-main h1{font-size:34px}
  .cline{grid-template-columns:56px 1fr 70px;grid-template-areas:'img info info' 'img qty total'}
}

/* ---- Checkout Fase 3 ---- */
.checkout-pg{padding:26px 0}
.checkout-pg h1{color:var(--azul-osc);margin-bottom:20px}
.co-grid{display:grid;grid-template-columns:1fr 340px;gap:26px;align-items:start}
.co-box{background:#fff;border:1px solid var(--linea);border-radius:14px;padding:22px;margin-bottom:20px}
.co-box h2{font-size:17px;color:var(--azul-osc);margin-bottom:16px}
.co-box .radios{display:flex;gap:22px;margin-bottom:16px}
.co-box .radios label{display:flex;align-items:center;gap:8px;font-weight:500;color:#334;margin:0}
.co-summary{background:var(--gris);border-radius:14px;padding:22px;position:sticky;top:100px}
.co-summary h3{color:var(--azul-osc);margin-bottom:14px}
.cs-line{display:flex;justify-content:space-between;font-size:13px;color:#556;padding:5px 0}
.cs-row{display:flex;justify-content:space-between;padding:8px 0;font-size:15px;border-top:1px solid var(--linea);margin-top:6px}
.cs-row.total{font-size:19px;font-family:'Montserrat';font-weight:800;color:var(--azul-osc)}
.co-summary .cs-btn{width:100%;border:0;cursor:pointer;margin-top:14px}
.co-secure{text-align:center;color:var(--muted);font-size:12px;margin-top:10px}

.resultado{text-align:center;max-width:520px;margin:0 auto}
.res-ico{width:72px;height:72px;border-radius:50%;display:grid;place-items:center;font-size:36px;color:#fff;margin:10px auto 18px}
.res-ico.ok{background:#2e8b57}.res-ico.no{background:#c0392b}
.voucher{background:var(--gris);border-radius:14px;padding:22px;text-align:left;max-width:380px;margin:22px auto}
.v-row{display:flex;justify-content:space-between;padding:8px 0;font-size:14px;border-bottom:1px solid var(--linea)}
.v-row.total{border-bottom:0;font-family:'Montserrat';font-weight:800;color:var(--azul-osc);font-size:17px;padding-top:12px}

/* ---- Portal cliente Fase 4 ---- */
.portal{padding:50px 0;display:grid;place-items:center;min-height:50vh}
.portal-box{background:#fff;border:1px solid var(--linea);border-radius:16px;padding:34px;width:100%;max-width:420px;box-shadow:0 10px 40px rgba(14,58,107,.08)}
.portal-box.wide{max-width:640px}
.portal-box h1{color:var(--azul-osc);font-size:24px;margin-bottom:4px}
.portal-box label{margin-top:12px}
.portal-links{display:flex;justify-content:space-between;margin-top:18px;font-size:14px}
.portal-links a{color:var(--azul);font-weight:600}
.portal-cuenta{padding:30px 0}
.pc-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:22px}
.pc-head h1{color:var(--azul-osc)}
