*{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:104px}
.logo img{height:72px}
.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(--naranja)}
.ch-mayorista .nav{background:var(--azul)}
.nav .wrap{display:flex;align-items:center;justify-content:center;gap:4px;min-height:50px;flex-wrap:wrap}
.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(--azul-osc);color:#fff}
.ch-mayorista .nav .to-other{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:58px;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)}

/* Pestaña de portal mayorista en el nav */
.nav .portal-tab{background:rgba(255,255,255,.14);color:#fff;font-weight:700}
.nav .portal-tab:hover{background:rgba(255,255,255,.24)}

/* Mínimo mayorista por producto */
.card-min{display:block;font-size:11px;font-weight:600;color:var(--muted);margin-top:2px}
.ficha-min-nota{margin-top:10px;font-size:13px;color:var(--azul);font-weight:600}

/* ---- Formularios prolijos (checkout + portal) ---- */
.co-box label, .portal-box label{display:block;font-weight:600;color:var(--azul-osc);margin:14px 0 5px;font-size:13.5px}
.co-box label:first-of-type{margin-top:0}
.co-box input, .co-box select, .portal-box input{
  width:100%;box-sizing:border-box;padding:11px 13px;border:1.5px solid var(--linea);
  border-radius:9px;font-size:14px;font-family:inherit;background:#fff}
.co-box input:focus, .co-box select:focus, .portal-box input:focus{outline:none;border-color:var(--azul)}
.co-box .radios label, .portal-box .radios label{display:inline-flex;margin:0}
.portal-box .grid2{display:grid;grid-template-columns:1fr 1fr;gap:0 16px}

/* ---- Caja de datos de transferencia ---- */
.pay-methods{margin-top:6px}
.pay-opt{display:flex;align-items:center;gap:10px;padding:12px 14px;border:1.5px solid var(--linea);border-radius:10px;margin-bottom:10px;cursor:pointer;font-weight:600}
.pay-opt input{width:auto}
.pay-opt.sel{border-color:var(--azul);background:#f2f7fc}
.bank-box{background:#f2f7fc;border:1px solid #cfe0f0;border-radius:12px;padding:18px;margin-top:6px}
.bank-box h4{color:var(--azul-osc);margin:0 0 10px;font-size:15px}
.bank-row{display:flex;justify-content:space-between;gap:12px;padding:5px 0;font-size:14px;border-bottom:1px dashed #d7e3ef}
.bank-row:last-child{border-bottom:0}
.bank-row span{color:var(--muted)}.bank-row b{color:#1a1a1a;text-align:right}
.bank-nota{margin-top:12px;background:#FEF6E7;color:#a86b00;padding:10px 12px;border-radius:9px;font-size:13px;font-weight:600}

/* Títulos de categoría en el listado completo */
.grupo-cat{font-family:'Montserrat',sans-serif;font-weight:800;font-size:20px;color:var(--azul-osc);
  margin:30px 0 16px;padding-bottom:8px;border-bottom:2px solid var(--linea)}
.grupo-cat:first-child{margin-top:0}

/* ---- Checkout v2 (referencia Ghosh) ---- */
.co-pasos{text-align:center;font-family:'Montserrat',sans-serif;font-weight:700;color:var(--muted);margin-bottom:22px;font-size:15px}
.co-pasos b{color:var(--naranja)}
.co-login{font-size:14px;color:var(--muted);margin-bottom:14px}
.co-login a{color:var(--azul);font-weight:700}
.co-box label i{color:#c0392b;font-style:normal}
.co-box label small{font-weight:400;color:var(--muted)}
.co-hint{font-size:12.5px;color:var(--muted);margin-top:5px}
.co-radios{display:flex;flex-direction:column;gap:9px;margin-bottom:14px}
.co-opt{display:flex;align-items:center;gap:10px;padding:12px 14px;border:1.5px solid var(--linea);border-radius:10px;cursor:pointer;margin:0;font-weight:500}
.co-opt input{width:auto}
.co-opt.sel{border-color:var(--azul);background:#f2f7fc}
.co-opt span{display:flex;justify-content:space-between;width:100%;align-items:center}
.co-opt em{font-style:normal;color:var(--muted);font-size:13px}
.co-info{background:#f2f7fc;border:1px solid #cfe0f0;border-radius:10px;padding:12px 14px;font-size:13.5px;margin-bottom:14px}
.co-check{display:flex;align-items:center;gap:9px;font-weight:600;color:var(--azul-osc);margin:0}
.co-check input{width:auto}
.co-check small{font-weight:400;color:var(--muted)}
.co-box textarea{width:100%;box-sizing:border-box;padding:11px 13px;border:1.5px solid var(--linea);border-radius:9px;font-family:inherit;font-size:14px;margin-top:0}
.pay-opt span{display:flex;flex-direction:column}
.pay-opt small{font-weight:400;color:var(--muted);font-size:12px}
/* Carrito: bloque de envío */
.cs-envio{border-top:1px solid var(--linea);margin-top:12px;padding-top:12px;font-size:13.5px}
.cs-env-op{margin-top:8px;color:#445}
.cs-env-op small{color:var(--muted);font-size:12.5px}

/* RUT: estados de validación (regla Inteliworks) */
input.rut-ok{border-color:#2e8b57 !important;background:#f6fdf9}
input.rut-bad{border-color:#c0392b !important;background:#fdf5f4}

/* ---- Cotizador público ---- */
.cotizador .cot-form .co-box{margin-bottom:18px}
.cot-buscar{width:100%;box-sizing:border-box;padding:11px 13px;border:1.5px solid var(--linea);border-radius:9px;margin-bottom:14px;font-size:14px}
.cot-cat{font-family:'Montserrat',sans-serif;color:var(--azul-osc);font-size:15px;margin:18px 0 8px;padding-bottom:5px;border-bottom:1px solid var(--linea)}
.cot-lista{display:flex;flex-direction:column;gap:5px}
.cot-row{display:grid;grid-template-columns:1fr 110px 86px;gap:10px;align-items:center;padding:7px 9px;border-radius:8px}
.cot-row:hover{background:#f7f9fb}
.cot-nom{font-size:13.5px;color:#333}
.cot-precio{font-weight:700;color:var(--azul-osc);font-size:13.5px;text-align:right}
.cot-cant{width:100%;box-sizing:border-box;padding:7px 9px;border:1.5px solid var(--linea);border-radius:7px;text-align:center;font-size:13.5px}
.cot-cant:focus{outline:none;border-color:var(--azul)}
.cot-barra{position:sticky;bottom:0;background:#fff;border-top:2px solid var(--azul);padding:14px 18px;display:flex;
  justify-content:space-between;align-items:center;border-radius:12px 12px 0 0;box-shadow:0 -3px 14px rgba(0,0,0,.09);margin-top:18px}
.cot-barra b{font-size:21px;color:var(--azul-osc);font-family:'Montserrat',sans-serif}
.cot-barra small{color:var(--muted);margin-left:8px}
.cot-ok{text-align:center;background:#E8F6EF;border:1px solid #b8e6cd;border-radius:14px;padding:34px 20px}
.cot-ok h2{color:#1e7e46;margin:0 0 8px}
.cot-ok .btn-add,.cot-ok .btn-sec{display:inline-block;margin:14px 5px 0}
@media(max-width:700px){.cot-row{grid-template-columns:1fr 76px 66px;gap:6px}.cot-nom{font-size:12.5px}}

/* ---- Contacto ---- */
.contacto-grid{display:grid;grid-template-columns:1fr 320px;gap:20px;align-items:start}
.contacto-datos p{font-size:13.5px;line-height:1.6;margin:0 0 14px;color:#445}
.contacto-datos b{color:var(--azul-osc)}
.contacto-datos a{color:var(--azul);font-weight:600}
@media(max-width:820px){.contacto-grid{grid-template-columns:1fr}}

/* ============ Asistente IA (widget flotante) ============ */
.gh-asist{position:fixed;bottom:22px;right:22px;z-index:9999;font-family:'Inter',sans-serif}
.gh-asist-btn{width:60px;height:60px;border-radius:50%;background:var(--azul);color:#fff;border:0;cursor:pointer;
  box-shadow:0 6px 20px rgba(29,92,168,.4);display:flex;align-items:center;justify-content:center;transition:.2s}
.gh-asist-btn:hover{transform:scale(1.06);background:var(--azul-osc)}
.gh-asist-panel{position:absolute;bottom:74px;right:0;width:360px;max-width:calc(100vw - 30px);height:520px;max-height:calc(100vh - 120px);
  background:#fff;border-radius:16px;box-shadow:0 12px 40px rgba(0,0,0,.22);display:none;flex-direction:column;overflow:hidden}
.gh-asist-panel.on{display:flex;animation:ghup .2s ease}
@keyframes ghup{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
.gh-asist-top{background:var(--azul-osc);color:#fff;padding:14px 16px;display:flex;justify-content:space-between;align-items:center}
.gh-asist-top b{display:block;font-size:15px}
.gh-asist-top small{opacity:.8;font-size:11.5px}
.gh-asist-top button{background:none;border:0;color:#fff;font-size:26px;cursor:pointer;line-height:1}
.gh-asist-msgs{flex:1;overflow-y:auto;padding:16px;background:#f4f6f8;display:flex;flex-direction:column;gap:9px}
.gh-msg{max-width:82%;padding:10px 13px;border-radius:14px;font-size:14px;line-height:1.5}
.gh-user{align-self:flex-end;background:var(--azul);color:#fff;border-bottom-right-radius:4px}
.gh-bot{align-self:flex-start;background:#fff;color:#222;border:1px solid var(--linea);border-bottom-left-radius:4px}
.gh-asist-in{display:flex;gap:8px;padding:12px;border-top:1px solid var(--linea);background:#fff}
.gh-asist-in input{flex:1;border:1.5px solid var(--linea);border-radius:22px;padding:10px 15px;font-size:14px;outline:none}
.gh-asist-in input:focus{border-color:var(--azul)}
.gh-asist-in button{background:var(--azul);color:#fff;border:0;width:42px;border-radius:50%;cursor:pointer;font-size:16px}
.gh-dots{display:inline-flex;gap:4px}.gh-dots i{width:7px;height:7px;border-radius:50%;background:#bbb;animation:ghblink 1.2s infinite}
.gh-dots i:nth-child(2){animation-delay:.2s}.gh-dots i:nth-child(3){animation-delay:.4s}
@keyframes ghblink{0%,60%,100%{opacity:.3}30%{opacity:1}}
.ch-mayorista .gh-asist-btn{background:var(--azul-osc)}

/* ---- Producto agotado ---- */
.card-agotado{opacity:.72}
.card-media{position:relative}
.badge-agotado{position:absolute;top:8px;left:8px;z-index:2;background:#c0392b;color:#fff;font-size:11px;font-weight:800;
  padding:3px 10px;border-radius:20px;text-transform:uppercase;letter-spacing:.4px}
.card-btn-off{background:#e4e9ef !important;color:#9aa5b1 !important;cursor:not-allowed;border-color:#e4e9ef !important}
.ficha-agotado{background:#fdeaea;border:1px solid #f5c6c6;color:#c0392b;padding:14px 16px;border-radius:10px;font-size:14px;line-height:1.5}
.ficha-agotado b{text-transform:uppercase}

/* Botón descargar catálogo PDF */
.cat-head{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.btn-catalogo-pdf{margin-left:auto;background:var(--naranja,#F07800);color:#fff;padding:9px 16px;border-radius:9px;
  text-decoration:none;font-weight:700;font-size:13.5px;display:inline-flex;align-items:center;transition:.15s}
.btn-catalogo-pdf:hover{background:var(--azul-osc,#0E3A6B)}
@media(max-width:600px){.btn-catalogo-pdf{margin-left:0;width:100%;justify-content:center}}

@media(max-width:700px){.nav .wrap{flex-wrap:nowrap;justify-content:flex-start;overflow-x:auto}}
