/* ===== Página de productos (catálogo por categoría + lista de cotización) ===== */

nav.main a.is-active{color:var(--green-700)}
nav.main a.is-active::after{transform:scaleX(1)}

/* Encabezado */
.pl-head{background:var(--green-900);color:#fff;padding:2.2rem 0 2.4rem}
.crumbs{display:flex;gap:.5rem;flex-wrap:wrap;font-size:.85rem;color:#a9c9b5;margin-bottom:.9rem}
.crumbs a{color:#d3e6d9;text-decoration:none}
.crumbs a:hover{color:var(--yellow)}
.crumbs b{color:#fff;font-weight:600}
.pl-head h1{font-size:clamp(1.9rem,4vw,2.6rem);font-weight:850;color:#fff}
.pl-head p{margin:.6rem 0 0;color:#cfe3d6;max-width:62ch}

/* Distribución */
.pl{padding:2rem 0 5rem}
.pl-grid{display:grid;grid-template-columns:230px minmax(0,1fr);gap:2rem;align-items:start}

/* Barra lateral */
.pl-side{position:sticky;top:96px}
.side-h{font-size:.75rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);font-weight:700;margin:0 0 .6rem}
.cat-list{list-style:none;margin:0;padding:0;display:grid;gap:2px}
.cat-list a{display:flex;justify-content:space-between;align-items:center;gap:.5rem;padding:.55rem .75rem;border-radius:8px;text-decoration:none;color:var(--ink);font-weight:500;font-size:.95rem;transition:background .15s}
.cat-list a:hover{background:#eef4f0}
.cat-list a small{font-size:.75rem;color:var(--muted);background:#eef1ee;border-radius:999px;padding:.05rem .5rem;font-weight:600}
.cat-list a[aria-current="true"]{background:var(--green-100);color:var(--green-700);font-weight:700}
.cat-list a[aria-current="true"] small{background:var(--green-700);color:#fff}
.side-help{margin-top:1.5rem;padding:1rem;border:1px solid var(--line);border-radius:12px;background:#fff;font-size:.88rem}
.side-help b{display:block;font-family:var(--display)}
.side-help p{margin:.3rem 0 .6rem;color:var(--muted)}
.side-help a{color:var(--green-700);font-weight:700;text-decoration:none}

/* Herramientas: búsqueda y conteo */
.pl-tools{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem}
.search{flex:1;max-width:380px;display:flex;align-items:center;gap:.5rem;background:#fff;border:1px solid var(--line);border-radius:10px;padding:0 .8rem;transition:border-color .15s}
.search:focus-within{border-color:var(--green-700);box-shadow:0 0 0 3px rgba(6,105,47,.12)}
.search svg{width:18px;height:18px;color:var(--muted);flex:none}
.search input{border:0;outline:0;background:transparent;font:inherit;font-size:.95rem;padding:.65rem 0;width:100%;color:var(--ink)}
.count{font-size:.88rem;color:var(--muted);white-space:nowrap}

/* Tarjetas de producto: todas iguales */
.pc-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.pc{background:#fff;border:1px solid var(--line);border-radius:12px;padding:12px 12px 14px;display:flex;flex-direction:column;transition:border-color .2s,box-shadow .2s}
.pc:hover{border-color:#b9d3c2;box-shadow:0 8px 22px rgba(3,36,26,.07)}
.pc .ph{aspect-ratio:1/1;border-radius:8px;background:#fff;display:grid;place-items:center;overflow:hidden}
.pc .ph img{width:100%;height:100%;object-fit:contain;padding:6px}
.pc .tags{display:flex;gap:4px;flex-wrap:wrap;margin:10px 0 0;min-height:18px}
.pc .tag{font-size:.66rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--green-700);background:var(--green-100);border-radius:4px;padding:.1rem .4rem}
.pc .tag.palma{background:#fff6d6;color:#8a6500}
.pc h3{font-family:var(--body);font-size:.9rem;font-weight:600;line-height:1.4;margin:6px 0 12px;min-height:2.8em;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}

/* Botón de cotizar: pequeño, verde, siempre abajo */
.add{margin-top:auto;display:inline-flex;align-items:center;justify-content:center;gap:.4rem;width:100%;height:36px;border:0;border-radius:8px;background:var(--green-700);color:#fff;font:600 .84rem/1 var(--body);cursor:pointer;box-shadow:inset 0 -2px 0 rgba(0,0,0,.18);transition:background .15s,transform .15s}
.add svg{width:15px;height:15px;color:var(--yellow);flex:none}
.add:hover{background:var(--green-600);transform:translateY(-1px)}
.add:focus-visible{outline:2px solid var(--green-700);outline-offset:2px}
.add[aria-pressed="true"]{background:var(--green-100);color:var(--green-700);box-shadow:none}
.add[aria-pressed="true"] svg{color:var(--green-700)}

/* Sin resultados */
.pl-empty{background:#fff;border:1px dashed var(--line);border-radius:12px;padding:2.5rem 1.5rem;text-align:center}
.pl-empty b{font-family:var(--display);font-size:1.15rem}
.pl-empty p{color:var(--muted);margin:.4rem 0 1.2rem}

/* Barra flotante de cotización */
.q-bar{position:fixed;left:50%;bottom:20px;transform:translateX(-50%);z-index:70;display:flex;align-items:center;gap:.7rem;background:var(--green-950);color:#fff;border:0;border-radius:999px;padding:.7rem .8rem .7rem 1.1rem;font:600 .95rem var(--body);box-shadow:0 12px 32px rgba(0,0,0,.28);cursor:pointer;animation:qin .25s ease}
.q-bar[hidden]{display:none}
.q-bar svg{width:20px;height:20px;color:var(--yellow)}
.q-n{min-width:26px;height:26px;border-radius:999px;background:var(--yellow);color:var(--green-950);display:grid;place-items:center;font:800 .85rem var(--display);padding:0 .4rem}
.q-go{background:rgba(255,255,255,.1);border-radius:999px;padding:.35rem .8rem;font-size:.85rem}
.q-bar:hover .q-go{background:rgba(255,255,255,.18)}
@keyframes qin{from{opacity:0;transform:translate(-50%,12px)}to{opacity:1;transform:translate(-50%,0)}}
.q-bar.bump .q-n{animation:bump .35s ease}
@keyframes bump{50%{transform:scale(1.3)}}

/* Panel lateral de cotización */
.q-overlay{position:fixed;inset:0;background:rgba(3,36,26,.45);z-index:80}
.q-overlay[hidden]{display:none}
.q-panel{position:fixed;top:0;right:0;bottom:0;width:min(420px,100%);background:#fff;z-index:90;display:flex;flex-direction:column;transform:translateX(100%);transition:transform .25s ease;box-shadow:-10px 0 40px rgba(0,0,0,.15)}
.q-panel.open{transform:none}
.q-top{display:flex;justify-content:space-between;align-items:center;padding:1.1rem 1.25rem;border-bottom:1px solid var(--line)}
.q-top h2{font-size:1.25rem;font-weight:800}
.q-x{width:36px;height:36px;border-radius:8px;border:1px solid var(--line);background:#fff;display:grid;place-items:center;cursor:pointer;color:var(--ink)}
.q-x svg{width:18px;height:18px}
.q-body{flex:1;overflow:auto;padding:.5rem 1.25rem}
.q-list{list-style:none;margin:0;padding:0}
.q-list li{display:grid;grid-template-columns:52px 1fr auto;gap:.8rem;align-items:center;padding:.75rem 0;border-bottom:1px solid var(--line)}
.q-list img{width:52px;height:52px;object-fit:contain;border:1px solid var(--line);border-radius:8px;background:#fff;padding:3px}
.q-list .nm{font-size:.88rem;font-weight:600;line-height:1.3}
.q-list .rm{display:block;margin-top:.25rem;background:none;border:0;padding:0;color:var(--muted);font:500 .78rem var(--body);cursor:pointer;text-decoration:underline}
.q-list .rm:hover{color:#b42318}
.qty{display:flex;align-items:center;border:1px solid var(--line);border-radius:8px;overflow:hidden}
.qty button{width:30px;height:32px;border:0;background:#f4f6f3;cursor:pointer;font:700 1rem var(--body);color:var(--ink)}
.qty button:hover{background:var(--green-100)}
.qty input{width:40px;height:32px;border:0;text-align:center;font:600 .9rem var(--body);-moz-appearance:textfield}
.qty input::-webkit-outer-spin-button,.qty input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.q-none{text-align:center;padding:2.5rem .5rem;color:var(--muted)}
.q-none b{display:block;color:var(--ink);font-family:var(--display);font-size:1.05rem;margin-bottom:.3rem}
.mini-add{display:inline-block;background:var(--green-700);color:#fff;border-radius:6px;padding:0 .4rem;font-size:.8rem;font-weight:600}
.q-foot{border-top:1px solid var(--line);padding:1rem 1.25rem 1.25rem;display:grid;gap:.75rem;background:#fbfcfa}
.q-foot .row2{gap:.75rem}
.q-foot .field input{padding:.6rem .75rem;font-size:.92rem}
.q-foot .btn{justify-content:center;width:100%;padding:.85rem 1.2rem}
.q-foot .btn:disabled{opacity:.45;cursor:not-allowed;box-shadow:none}
.q-clear{background:none;border:0;color:var(--muted);font:500 .82rem var(--body);cursor:pointer;text-decoration:underline;justify-self:center}

body.q-open{overflow:hidden}
body.has-q .wa-float{bottom:88px}

/* Tablet */
@media (max-width:1100px){
  .pc-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
}
/* Celular: categorías arriba como pestañas que se deslizan */
@media (max-width:820px){
  .pl{padding-top:0}
  .pl-grid{grid-template-columns:minmax(0,1fr);gap:0}
  .pl-side,.pl-main{min-width:0}
  .pl-side{position:sticky;top:76px;z-index:20;background:var(--bg);margin:0 -16px;padding:.75rem 16px;border-bottom:1px solid var(--line)}
  .side-h,.side-help{display:none}
  .cat-list{display:flex;gap:.5rem;overflow-x:auto;scrollbar-width:none;padding-bottom:2px}
  .cat-list::-webkit-scrollbar{display:none}
  .cat-list a{white-space:nowrap;border:1px solid var(--line);background:#fff;border-radius:999px;padding:.45rem .85rem;font-size:.88rem}
  .cat-list a[aria-current="true"]{border-color:var(--green-700)}
  .pl-tools{margin-top:1rem}
  .search{max-width:none}
}
@media (max-width:600px){
  .pc-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .pc{padding:10px 10px 12px}
  .pc h3{font-size:.84rem}
  .add{height:34px;font-size:.8rem}
  .count{display:none}
  .q-bar{left:16px;right:16px;transform:none;justify-content:space-between;animation:none}
  .q-panel{width:100%}
  .q-foot .row2{grid-template-columns:1fr 1fr}
}

/* ===== Cantidad en cada tarjeta (sin límite) ===== */
.pc-buy{margin-top:auto;display:grid;grid-template-columns:1fr;gap:6px}
.pc-buy .add{margin-top:0}
.qty-card{height:36px;background:#fff}
.qty-card button{width:30px;height:34px}
.qty-card{width:100%}
.qty-card input{flex:1;width:auto;height:34px;min-width:0}
.qty-card button{width:36px}
.qty input{font-variant-numeric:tabular-nums}
.qty input:focus{outline:2px solid var(--green-700);outline-offset:-2px}
.q-list .qty input{width:56px}

/* Código interno */
.pc .cod{margin-left:auto;font-size:.68rem;color:var(--muted);font-weight:600;letter-spacing:.02em;align-self:center}
.q-cod{font-size:.72rem;color:var(--muted);margin-top:.1rem}

/* Productos sin foto */
.noimg{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;border-radius:8px;background:var(--green-100);color:var(--green-700)}
.noimg svg{width:38%;height:38%;opacity:.85}
.noimg span{font-size:.68rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;opacity:.7}
.noimg.cafeteria{background:#f6efe6;color:#7a4a1e}
.noimg.papeleria{background:#eaf1fb;color:#1f4f8f}
.noimg.salud{background:#fdecec;color:#a42a2a}
.noimg.palma{background:#e3f7f0;color:#0d8a6c}
.q-noimg{width:52px;height:52px}
.q-noimg .noimg{border-radius:8px}
.q-noimg .noimg span{display:none}
.q-noimg .noimg svg{width:55%;height:55%}

@media (max-width:600px){
  .pc-buy{grid-template-columns:1fr}
  .qty-card{width:100%}
  .qty-card input{flex:1;width:auto}
  .qty-card button{width:36px}
  .pc .cod{font-size:.62rem}
}

/* Familias dentro de Tecnología */
.fam-bar{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:1rem}
.fam-bar[hidden]{display:none}
.fam-bar a{display:inline-flex;align-items:center;gap:.45rem;padding:.42rem .8rem;border:1px solid var(--line);border-radius:999px;background:#fff;color:var(--ink);font-size:.86rem;font-weight:600;text-decoration:none;white-space:nowrap;transition:border-color .15s,background .15s}
.fam-bar a:hover{border-color:var(--green-700)}
.fam-bar a small{font-size:.72rem;font-weight:700;color:var(--muted)}
.fam-bar a[aria-current="true"]{background:var(--green-700);border-color:var(--green-700);color:#fff}
.fam-bar a[aria-current="true"] small{color:var(--yellow)}
.pc .cod{max-width:60%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@media (max-width:760px){
  .fam-bar{flex-wrap:nowrap;overflow-x:auto;margin:0 -16px 1rem;padding:0 16px 4px;scrollbar-width:none}
  .fam-bar::-webkit-scrollbar{display:none}
}

/* Estados de carga y error del catálogo (datos desde la base) */
.pc-skel{min-height:300px;background:linear-gradient(#eef2ef,#eef2ef) 14px 14px/calc(100% - 28px) 58% no-repeat,linear-gradient(#eef2ef,#eef2ef) 14px 70%/70% 12px no-repeat,#fff;animation:skel 1.4s ease-in-out infinite alternate}
@keyframes skel{from{opacity:1}to{opacity:.55}}
@media (prefers-reduced-motion:reduce){.pc-skel{animation:none}}
.pl-error{grid-column:1/-1;background:#fff;border:1px solid var(--line);border-left:4px solid #c0392b;border-radius:var(--radius);padding:1.5rem;display:grid;gap:.6rem}
.pl-error b{font-family:var(--display);font-size:1.1rem}
.pl-error p{margin:0;color:var(--muted)}
.pl-error div{display:flex;gap:.75rem;flex-wrap:wrap;margin-top:.4rem}
.btn-line{border-color:var(--green-700);color:var(--green-700)}
.btn-line:hover{background:var(--green-100)}
.precio{font-family:var(--display);font-weight:800;color:var(--green-700);font-size:1rem}
