/*
Theme Name: Canastón Store
Theme URI: https://canaston.com
Author: SAT LABS CO
Author URI: https://satlabs.co
Description: Tema de comercio rápido para Canastón Guatemala. Frutas, verduras, hierbas y confitería frescas con entrega rápida. Incluye WooCommerce, carrito AJAX deslizable, modal de inicio de sesión, importador de contenido demo de un clic, integración con Elementor, y personalizador completo en español de Guatemala. Diseñado por SAT LABS CO.
Version: 2.1.0
Requires at least: 6.0
Tested up to: 6.5
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: canaston-store
Tags: e-commerce, woocommerce, two-columns, custom-menu, featured-images, full-width-template, right-sidebar
WC requires at least: 7.0
WC tested up to: 8.7
*/

:root{
  --primary:#1B5C5C;        /* teal — primary buttons, links */
  --primary-dark:#0e3d3d;
  --accent:#B45A2A;         /* terracotta — top strip, brand accents */
  --accent-dark:#7d3a16;
  --green:#1B5C5C;          /* alias for legacy rules */
  --green-light:#1B5C5C;
  --yellow:#B45A2A;
  --yellow-deep:#7d3a16;
  --cream:#FAF4E8;
  --ink:#1c1c1c;
  --grey:#666;
  --line:#e7e7e7;
  --bg:#fff;
  --bg-soft:#fafafa;
  --radius:12px;
  --radius-lg:18px;
  --shadow:0 4px 14px rgba(0,0,0,.06);
  --shadow-lg:0 8px 24px rgba(0,0,0,.10);
  --max-w:1280px;
}

*,*::before,*::after{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  font-family:'Nunito',system-ui,-apple-system,Segoe UI,Roboto,sans-serif;
  color:var(--ink);
  background:var(--bg-soft);
  line-height:1.45;
  font-weight:500;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration:none}
button{font-family:inherit;cursor:pointer;border:none;background:none}

/* ===========================================================
 * HEADER
 * ========================================================= */
.site-header{
  position:sticky;top:0;z-index:90;
  background:#fff;
  box-shadow:0 1px 4px rgba(0,0,0,.06);
}
.topbar{
  height:6px;
  background:linear-gradient(90deg,var(--accent),var(--accent-dark));
}
.headrow{
  max-width:var(--max-w);
  margin:0 auto;
  padding:14px 22px;
  display:flex;
  align-items:center;
  gap:18px;
}

/* Logo */
.logo{display:inline-flex;align-items:center;gap:8px;font-weight:900;color:var(--primary);font-size:24px;text-decoration:none}
.logo--img{display:inline-flex;align-items:center}
.logo--img img{height:48px;width:auto;max-width:180px;object-fit:contain}
.logo .custom-logo-link img{height:48px;width:auto}

/* Search bar (desktop) */
.searchwrap{flex:1;max-width:560px}
.searchbar{
  display:flex;align-items:center;gap:10px;
  background:#f3f4f5;border:1px solid transparent;
  padding:12px 16px;border-radius:12px;
  cursor:pointer;transition:border-color .15s;
}
.searchbar:hover,.searchbar:focus{border-color:var(--primary)}
.searchbar .ph{color:#888;font-weight:600;font-size:14px}

/* Right-side actions */
.header-actions{
  display:flex;align-items:center;gap:6px;margin-left:auto;
}
.iconbtn{
  display:inline-flex;align-items:center;gap:8px;
  height:44px;padding:0 12px;
  background:transparent;color:#1c1c1c;
  border-radius:10px;font-weight:700;font-size:14px;
  transition:background .15s;
  text-decoration:none;
}
.iconbtn:hover{background:#f2f2f2}
.iconbtn svg{width:22px;height:22px;flex-shrink:0}
.iconbtn .lbl{display:inline-block}

/* Cart button */
.cartbtn{
  display:inline-flex;align-items:center;gap:10px;
  height:44px;padding:0 14px;
  background:var(--primary);color:#fff;
  border-radius:10px;font-weight:800;font-size:14px;
  transition:filter .15s;
}
.cartbtn:hover{filter:brightness(1.08)}
.cartbtn svg{width:22px;height:22px;color:#fff}
.iconwrap{position:relative;display:inline-flex;align-items:center;justify-content:center}
.cart-badge{
  position:absolute;top:-7px;right:-9px;
  min-width:18px;height:18px;padding:0 5px;
  background:#fff;color:var(--primary);
  border-radius:999px;
  font-size:11px;font-weight:900;
  display:flex;align-items:center;justify-content:center;
  line-height:1;
  box-shadow:0 0 0 2px var(--primary);
}
.cart-text{font-weight:800}

/* Mobile-shrink (label hides under 760px, icons only) */
@media (max-width:880px){
  .headrow{gap:10px;padding:12px 14px}
  .logo--img img{height:38px;max-width:140px}
  .searchwrap{display:none}
  .iconbtn .lbl,.cart-text{display:none}
  .iconbtn{padding:0 10px}
  .cartbtn{padding:0 12px}
}
@media (max-width:380px){
  .headrow{padding:10px 10px;gap:6px}
  .logo--img img{height:34px;max-width:120px}
}

/* ===========================================================
 * MAIN LAYOUT
 * ========================================================= */
#site-main{min-height:60vh}
.fade{animation:fade .25s ease-out}
@keyframes fade{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.woocommerce-shell{max-width:var(--max-w);margin:0 auto;padding:24px 22px}
@media (max-width:600px){.woocommerce-shell{padding:18px 14px}}

/* ===========================================================
 * HOMEPAGE — categories strip
 * ========================================================= */
.catstrip{
  max-width:var(--max-w);margin:18px auto 0;padding:0 22px;
  display:grid;grid-template-columns:repeat(10,1fr);gap:14px;
}
.catcell{
  display:flex;flex-direction:column;align-items:center;gap:8px;
  text-align:center;text-decoration:none;color:inherit;
  transition:transform .15s;
}
.catcell:hover{transform:translateY(-3px)}
.catcell .ci{
  width:74px;height:74px;border-radius:18px;
  display:flex;align-items:center;justify-content:center;
  font-size:38px;
}
.catcell .cn{font-size:13px;font-weight:700;color:#333;line-height:1.2;max-width:90px}
@media (max-width:900px){.catstrip{grid-template-columns:repeat(5,1fr);padding:0 14px}}
@media (max-width:520px){
  .catstrip{grid-template-columns:repeat(4,1fr);gap:10px}
  .catcell .ci{width:60px;height:60px;font-size:30px;border-radius:14px}
  .catcell .cn{font-size:11px}
}

/* ===========================================================
 * HOMEPAGE — banners
 * ========================================================= */
.banners{
  max-width:var(--max-w);margin:22px auto;padding:0 22px;
  display:grid;grid-template-columns:repeat(4,1fr);gap:14px;
}
.banner{
  position:relative;display:block;
  color:#fff;border-radius:var(--radius-lg);
  padding:24px 22px;min-height:170px;
  overflow:hidden;
  text-decoration:none;
  box-shadow:var(--shadow);
  transition:transform .2s;
}
.banner:hover{transform:translateY(-3px)}
.banner h3{margin:0 0 6px;font-size:20px;font-weight:900;line-height:1.15}
.banner p{margin:0;font-size:13px;opacity:.92;font-weight:600;max-width:200px}
.banner .pill{
  display:inline-block;margin-top:14px;
  background:rgba(255,255,255,.18);
  padding:6px 12px;border-radius:999px;
  font-size:12px;font-weight:800;
}
.banner .bemoji{
  position:absolute;right:14px;bottom:8px;
  font-size:62px;opacity:.65;line-height:1;
  filter:drop-shadow(0 4px 8px rgba(0,0,0,.15));
}
@media (max-width:900px){.banners{grid-template-columns:repeat(2,1fr);padding:0 14px;gap:10px}}
@media (max-width:520px){.banner{padding:18px 16px;min-height:140px}.banner h3{font-size:17px}.banner .bemoji{font-size:48px}}

/* ===========================================================
 * SECTIONS — product rows
 * ========================================================= */
.section{max-width:var(--max-w);margin:30px auto 0;padding:0 22px}
@media (max-width:600px){.section{padding:0 14px}}
.sec-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:14px}
.sec-head h2{margin:0;font-size:22px;font-weight:900;color:#1c1c1c}
.sec-head .see-all{font-size:14px;font-weight:800;color:var(--primary)}
.prow{
  display:grid;grid-template-columns:repeat(5,1fr);gap:14px;
}
@media (max-width:1000px){.prow{grid-template-columns:repeat(4,1fr)}}
@media (max-width:800px){.prow{grid-template-columns:repeat(3,1fr)}}
@media (max-width:520px){.prow{grid-template-columns:repeat(2,1fr);gap:10px}}

/* ===========================================================
 * PRODUCT CARD
 * ========================================================= */
.pcard{
  background:#fff;border:1px solid var(--line);border-radius:var(--radius);
  padding:12px;display:flex;flex-direction:column;gap:8px;
  transition:transform .15s,box-shadow .15s;
}
.pcard:hover{transform:translateY(-2px);box-shadow:var(--shadow)}
.pcard .imgwrap{
  position:relative;border-radius:8px;overflow:hidden;
  aspect-ratio:1/1;
  display:flex;align-items:center;justify-content:center;
}
.pcard .imgwrap img{width:100%;height:100%;object-fit:cover}
.pcard .imgwrap .off{
  position:absolute;top:0;left:0;
  background:var(--primary);color:#fff;
  padding:4px 6px 5px;font-size:10px;font-weight:900;
  border-radius:0 0 8px 0;
  text-align:center;line-height:1.1;
}
.pcard .wt{font-size:11px;color:var(--grey);font-weight:700;text-transform:uppercase;letter-spacing:.3px}
.pcard .nm{font-size:14px;font-weight:700;color:#1c1c1c;line-height:1.3;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
  min-height:36px;
}
.pcard .foot{display:flex;justify-content:space-between;align-items:center;gap:6px;margin-top:auto}
.pcard .price{font-size:14px;font-weight:900;color:#1c1c1c;line-height:1.2}
.pcard .price del{font-size:11px;font-weight:600;color:#999;display:block;margin-top:2px}
.pcard .price .woocommerce-Price-amount{font-weight:900}

/* Add/stepper */
.addbtn{
  background:#fff;color:var(--primary);
  border:1.5px solid var(--primary);
  padding:7px 14px;border-radius:8px;
  font-size:12px;font-weight:900;letter-spacing:.3px;
  transition:background .15s,color .15s;
  text-transform:uppercase;
}
.addbtn:hover{background:var(--primary);color:#fff}
.stepper{
  display:inline-flex;align-items:center;
  background:var(--primary);color:#fff;
  border-radius:8px;overflow:hidden;
  font-weight:900;
}
.stepper button{
  background:transparent;color:#fff;
  width:30px;height:30px;font-size:18px;font-weight:900;
}
.stepper button:hover{background:rgba(255,255,255,.15)}
.stepper .q{padding:0 8px;font-size:14px;min-width:24px;text-align:center}

/* ===========================================================
 * CATEGORY PAGE (shop + product_cat archive)
 * ========================================================= */
.breadcrumb{font-size:13px;color:var(--grey);margin-bottom:18px}
.breadcrumb a{color:var(--primary);font-weight:700}
.catpage{display:grid;grid-template-columns:240px 1fr;gap:24px}
@media (max-width:800px){.catpage{grid-template-columns:1fr}}
.catnav{
  background:#fff;border:1px solid var(--line);border-radius:var(--radius);
  padding:8px;height:max-content;position:sticky;top:80px;
  display:flex;flex-direction:column;gap:2px;
}
@media (max-width:800px){
  /* Feature 3 — mobile: filters appear below the search bar as a sticky,
     horizontally scrollable strip. Search + category filtering work together. */
  .catnav{
    position:sticky;top:64px;z-index:20;
    flex-direction:row;flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;
    padding:8px;gap:8px;scrollbar-width:none;
    box-shadow:0 2px 8px rgba(0,0,0,.04);
  }
  .catnav::-webkit-scrollbar{display:none}
  .catnav .item{scroll-snap-align:start;flex:0 0 auto;background:#f5f5f5}
  .catnav .item .ic{width:24px;height:24px;font-size:15px}
  .catpage{gap:14px}
}
.catnav .item{
  display:flex;align-items:center;gap:10px;
  padding:10px 12px;border-radius:8px;
  font-size:13px;font-weight:700;color:#444;
  text-decoration:none;transition:background .15s;
  white-space:nowrap;
}
.catnav .item:hover{background:#f5f5f5}
.catnav .item.active{background:var(--primary);color:#fff}
.catnav .item.active .ic{filter:brightness(1.1)}
.catnav .ic{
  width:32px;height:32px;border-radius:8px;
  display:flex;align-items:center;justify-content:center;font-size:18px;
  flex-shrink:0;
}
.catbody h1{margin:0 0 18px;font-size:26px;font-weight:900;color:#1c1c1c}
.pgrid{
  display:grid;grid-template-columns:repeat(4,1fr);gap:14px;
}
@media (max-width:900px){.pgrid{grid-template-columns:repeat(3,1fr)}}
@media (max-width:520px){.pgrid{grid-template-columns:repeat(2,1fr);gap:10px}}

/* ===========================================================
 * CART DRAWER
 * ========================================================= */
.scrim{
  position:fixed;inset:0;background:rgba(0,0,0,.45);
  opacity:0;pointer-events:none;transition:opacity .2s;z-index:100;
}
.scrim.show{opacity:1;pointer-events:auto}
.drawer{
  position:fixed;top:0;right:-460px;width:440px;max-width:100vw;height:100vh;
  background:#f6f7f9;z-index:110;
  display:flex;flex-direction:column;
  transition:right .25s ease;
  box-shadow:-4px 0 24px rgba(0,0,0,.12);
}
.drawer.open{right:0}
@media (max-width:520px){.drawer{width:100vw;right:-100vw}.drawer.open{right:0}}
.dhead{
  display:flex;justify-content:space-between;align-items:center;
  padding:16px 20px;background:#fff;border-bottom:1px solid var(--line);
  font-weight:900;font-size:17px;
}
.dhead .x{font-size:22px;color:#888;padding:4px 8px}
.dhead .x:hover{color:#1c1c1c}
.dbody{flex:1;overflow-y:auto;padding:14px 16px}
.cart-empty{text-align:center;padding:50px 20px;color:#666}
.cart-empty .big{font-size:72px;margin-bottom:14px}
.eta-card{
  background:#fff;border-radius:12px;padding:12px 14px;
  display:flex;align-items:center;gap:12px;margin-bottom:12px;
  box-shadow:var(--shadow);
}
.eta-card .ico{font-size:24px}
.eta-card .t1{font-weight:900;font-size:14px}
.eta-card .t2{font-size:12px;color:var(--grey)}
.citems{display:flex;flex-direction:column;gap:8px;margin-bottom:14px}
.citem{
  display:grid;grid-template-columns:48px 1fr auto;gap:10px;align-items:center;
  background:#fff;padding:10px;border-radius:10px;
  box-shadow:0 1px 3px rgba(0,0,0,.04);
}
.citem .thumb{
  width:48px;height:48px;border-radius:8px;background:#f3f3f3;
  display:flex;align-items:center;justify-content:center;font-size:26px;overflow:hidden;
}
.citem .thumb img{width:100%;height:100%;object-fit:cover}
.citem .info .n{font-size:13px;font-weight:700;line-height:1.3}
.citem .info .w{font-size:11px;color:var(--grey);margin-top:2px}
.citem .right{display:flex;flex-direction:column;align-items:flex-end;gap:6px}
.citem .pr{font-size:13px;font-weight:900}
.bill{
  background:#fff;border-radius:12px;padding:14px;
  box-shadow:0 1px 3px rgba(0,0,0,.04);margin-bottom:12px;
}
.bill h4{margin:0 0 10px;font-size:13px;font-weight:900;text-transform:uppercase;letter-spacing:.3px;color:#888}
.bline{display:flex;justify-content:space-between;font-size:13px;font-weight:600;margin-bottom:6px}
.bline.tot{border-top:1px dashed var(--line);padding-top:10px;margin-top:8px;font-size:15px;font-weight:900;color:#1c1c1c}
.bline .free{color:var(--primary);font-weight:900;font-size:12px}
.tipbox{background:#fff;border-radius:12px;padding:14px;box-shadow:0 1px 3px rgba(0,0,0,.04)}
.tipbox b{font-size:13px}
.tip-btn:hover{background:var(--primary);color:#fff;border-color:var(--primary) !important}
.checkout-bar{
  background:#fff;border-top:1px solid var(--line);padding:12px 14px;
}
.checkout-btn{
  display:flex;justify-content:space-between;align-items:center;
  background:var(--primary);color:#fff;
  padding:14px 18px;border-radius:10px;
  font-weight:900;font-size:15px;
  text-decoration:none;
}
.checkout-btn:hover{filter:brightness(1.08)}

/* ===========================================================
 * MODALS (login + search)
 * ========================================================= */
.modal{
  position:fixed;top:50%;left:50%;
  transform:translate(-50%,calc(-50% + 20px));
  width:420px;max-width:calc(100vw - 20px);max-height:90vh;
  background:#fff;border-radius:16px;
  z-index:120;opacity:0;pointer-events:none;
  transition:opacity .2s,transform .2s;
  display:flex;flex-direction:column;overflow:hidden;
  box-shadow:0 20px 60px rgba(0,0,0,.25);
}
.modal.open{opacity:1;pointer-events:auto;transform:translate(-50%,-50%)}
.modal .x{position:absolute;top:14px;right:16px;font-size:22px;color:#888;padding:4px 8px;z-index:2}
.modal .x:hover{color:#fff}
.mhead{display:flex;align-items:center;padding:14px 18px;border-bottom:1px solid var(--line)}
.mbody{padding:18px 22px;overflow-y:auto}

.login-hero{
  background:linear-gradient(135deg,var(--primary),var(--primary-dark));
  color:#fff;padding:34px 24px 24px;text-align:center;
  position:relative;
}
.login-hero .logo,.login-hero .logo--img{color:#fff}
.login-hero .logo--img img{height:64px;width:auto;margin:0 auto;background:#fff;border-radius:50%;padding:4px}
.login-hero p{margin:10px 0 0;font-size:13px;font-weight:600;opacity:.95}
.login-hero .x{color:#fff}

.tabs{display:flex;border-bottom:1px solid var(--line)}
.tabs button{flex:1;padding:14px;font-weight:800;font-size:14px;color:#888;border-bottom:3px solid transparent}
.tabs button.active{color:var(--primary);border-bottom-color:var(--primary)}
.field{margin-bottom:12px}
.field input{
  width:100%;padding:13px 14px;border:1.5px solid var(--line);
  border-radius:10px;font-size:14px;font-weight:600;font-family:inherit;
  transition:border-color .15s;
}
.field input:focus{outline:none;border-color:var(--primary)}
.bigbtn{
  display:block;width:100%;background:var(--primary);color:#fff;
  padding:14px;border-radius:10px;font-weight:900;font-size:15px;
  transition:filter .15s;text-align:center;
}
.bigbtn:hover{filter:brightness(1.08)}
.bigbtn:disabled{opacity:.6;cursor:not-allowed}
.muted{font-size:12px;color:var(--grey);margin-top:14px;text-align:center;line-height:1.5}
.muted a{color:var(--primary);font-weight:700}
.form-msg{padding:0;margin-bottom:12px;font-size:13px;font-weight:700;border-radius:8px}
.form-msg.err{padding:10px 12px;background:#fde8e8;color:#c0392b}
.form-msg.ok{padding:10px 12px;background:#e7f7ea;color:#0c831f}

/* Search modal results */
.locsearch{
  display:flex;align-items:center;gap:10px;
  background:#f3f4f5;padding:12px 14px;border-radius:12px;
}
.locsearch input{
  flex:1;border:none;background:transparent;font-size:14px;font-weight:600;font-family:inherit;
}
.locsearch input:focus{outline:none}
.chip-row{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px}
.chip{
  display:inline-flex;align-items:center;gap:6px;
  padding:8px 14px;background:#f3f4f5;border-radius:999px;
  font-size:13px;font-weight:700;color:#1c1c1c;
  text-decoration:none;transition:background .15s;
}
.chip:hover{background:var(--primary);color:#fff}
.results .empty{text-align:center;padding:40px 20px;color:#666}
.results .empty .big{font-size:60px;margin-bottom:12px}

/* ===========================================================
 * TOAST
 * ========================================================= */
.toast{
  position:fixed;bottom:30px;left:50%;transform:translateX(-50%) translateY(120%);
  background:#1c1c1c;color:#fff;padding:12px 22px;border-radius:30px;
  font-size:14px;font-weight:700;z-index:200;
  opacity:0;transition:opacity .2s,transform .2s;
  box-shadow:0 8px 24px rgba(0,0,0,.25);max-width:90vw;text-align:center;
}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}

/* ===========================================================
 * EMPTY STATE
 * ========================================================= */
.empty{text-align:center;padding:60px 20px;color:#666}
.empty .big{font-size:80px;margin-bottom:16px;opacity:.7}

/* ===========================================================
 * FOOTER
 * ========================================================= */
.site-footer{
  background:#1c1c1c;color:#bbb;padding:48px 22px 24px;margin-top:60px;
}
.foot-in{
  max-width:var(--max-w);margin:0 auto;
  display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:32px;
}
@media (max-width:900px){.foot-in{grid-template-columns:1fr 1fr}}
@media (max-width:520px){.foot-in{grid-template-columns:1fr;gap:24px}}
.site-footer .col h5{
  margin:0 0 12px;font-size:13px;font-weight:900;text-transform:uppercase;
  letter-spacing:.4px;color:#fff;
}
.site-footer .col a{
  display:block;padding:5px 0;font-size:14px;font-weight:600;color:#bbb;
  transition:color .15s;
}
.site-footer .col a:hover{color:#fff}
.foot-about .logo,.foot-about .logo--img{color:#fff}
.foot-about .logo--img img{height:80px;width:80px;background:#fff;border-radius:50%;padding:3px;object-fit:contain}
.foot-about p{margin:14px 0 0;font-size:14px;color:#aaa;line-height:1.6}
.foot-credit{
  max-width:var(--max-w);margin:32px auto 0;padding-top:20px;
  border-top:1px solid #2a2a2a;
  font-size:12px;color:#888;text-align:center;
}

/* ===========================================================
 * WOOCOMMERCE COMPAT — pages
 * ========================================================= */
.woocommerce-checkout .woocommerce-shell,
.woocommerce-account .woocommerce-shell,
.woocommerce-cart .woocommerce-shell{background:#fff;border-radius:var(--radius-lg);padding:32px;box-shadow:var(--shadow);margin:24px auto}
.woocommerce-shell .button,
.woocommerce-shell button[type="submit"],
.woocommerce-checkout .button{
  background:var(--primary) !important;color:#fff !important;
  font-weight:800 !important;border-radius:10px !important;padding:12px 22px !important;
  border:none !important;transition:filter .15s !important;
}
.woocommerce-shell .button:hover,
.woocommerce-shell button[type="submit"]:hover{filter:brightness(1.08)}
.woocommerce-shell h1,.woocommerce-shell h2{font-weight:900}
.woocommerce-shell input[type=text],
.woocommerce-shell input[type=email],
.woocommerce-shell input[type=password],
.woocommerce-shell input[type=tel],
.woocommerce-shell select,
.woocommerce-shell textarea{
  padding:12px 14px !important;border:1.5px solid var(--line) !important;
  border-radius:10px !important;font-size:14px !important;font-family:inherit !important;
}
.woocommerce-shell input:focus,.woocommerce-shell select:focus{border-color:var(--primary) !important;outline:none !important}

/* WC notices */
.woocommerce-message,.woocommerce-info{border-top-color:var(--primary) !important;background:#e7f0f0 !important;color:#0e3d3d !important}
.woocommerce-message::before,.woocommerce-info::before{color:var(--primary) !important}
.woocommerce-error{border-top-color:#c0392b !important}

/* Hide unwanted WC bits when single product is disabled */
.woocommerce-loop-product__link{pointer-events:none;cursor:default}


/* ===========================================================
 * FLOATING LANGUAGE SWITCHER (EN / ES)
 * ========================================================= */
.lang-fab{
  position:fixed;bottom:24px;right:24px;z-index:95;
  background:#fff;border-radius:999px;
  box-shadow:0 8px 24px rgba(0,0,0,.18),0 0 0 2px var(--primary);
  display:flex;align-items:center;
  padding:4px;gap:2px;
  font-weight:900;font-size:13px;
  user-select:none;
}
.lang-fab .lang-btn{
  display:inline-flex;align-items:center;gap:6px;
  padding:8px 14px;border-radius:999px;
  background:transparent;color:#1c1c1c;
  font-weight:900;font-size:13px;letter-spacing:.3px;
  transition:background .2s,color .2s;
  cursor:pointer;
}
.lang-fab .lang-btn:hover{background:#f3f3f3}
.lang-fab .lang-btn.active{
  background:var(--primary);color:#fff;
  box-shadow:0 2px 6px rgba(27,92,92,.3);
}
.lang-fab .flag{font-size:16px;line-height:1}
.lang-fab .code{font-size:12px}

@media (max-width:520px){
  .lang-fab{bottom:16px;right:16px;font-size:12px}
  .lang-fab .lang-btn{padding:6px 10px}
  .lang-fab .flag{font-size:14px}
}

/* When in EN mode, optionally flip a few utility classes */
html[data-lang="en"] .es-only{display:none}
html[data-lang="es"] .en-only{display:none}

/* ===========================================================
 * WOOCOMMERCE DEFAULT LOOP PARITY  (added v2.2.0)
 * Any product loop NOT routed through the custom archive template
 * (Elementor shop, [products]/[product_category] shortcodes, tag
 * archives, related products) renders WooCommerce's default
 * ul.products > li.product markup. Style it to match .pcard exactly
 * so cards are consistent everywhere.
 * ========================================================= */
ul.products {
	list-style: none;
	margin: 0 0 24px;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 14px;
}
ul.products::before,
ul.products::after { content: none; display: none; }

@media (max-width: 900px) { ul.products { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 520px) { ul.products { grid-template-columns: repeat(2, 1fr); gap: 10px; } }

/* Neutralise the theme/Woo default column floats + widths. */
ul.products li.product,
.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product {
	width: auto !important;
	margin: 0 !important;
	padding: 12px !important;
	float: none !important;
	clear: none !important;
	background: #fff;
	border: 1px solid var(--line);
	border-radius: var(--radius);
	display: flex;
	flex-direction: column;
	gap: 8px;
	transition: transform .15s, box-shadow .15s;
	text-align: left;
}
ul.products li.product:hover {
	transform: translateY(-2px);
	box-shadow: var(--shadow);
}
ul.products li.product::before,
ul.products li.product::after { content: none; }

/* Product image */
ul.products li.product a img,
ul.products li.product img {
	width: 100%;
	height: auto;
	aspect-ratio: 1 / 1;
	object-fit: cover;
	border-radius: 8px;
	margin: 0 0 4px;
	display: block;
	background: #f7f7f7;
}

/* Category label above title (hide to match minimal card) */
ul.products li.product .woocommerce-loop-category__title,
ul.products li.product .woocommerce-loop-product__category {
	font-size: 11px;
	color: var(--grey);
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .3px;
	margin: 0;
}

/* Product title */
ul.products li.product .woocommerce-loop-product__title,
ul.products li.product h2,
ul.products li.product h2.woocommerce-loop-product__title {
	font-size: 14px;
	font-weight: 700;
	color: #1c1c1c;
	line-height: 1.3;
	padding: 0;
	margin: 0;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
	min-height: 36px;
}

/* Star rating spacing */
ul.products li.product .star-rating {
	margin: 2px 0;
	font-size: 12px;
	color: var(--accent);
}

/* Price */
ul.products li.product .price {
	font-size: 14px;
	font-weight: 900;
	color: #1c1c1c;
	margin: 0;
	display: block;
	order: 5;
}
ul.products li.product .price del {
	font-size: 11px;
	font-weight: 600;
	color: #999;
	opacity: 1;
}
ul.products li.product .price ins {
	text-decoration: none;
	font-weight: 900;
}
ul.products li.product .price .woocommerce-Price-amount { font-weight: 900; }

/* Sale flash -> match .pcard .off ribbon */
ul.products li.product { position: relative; }
ul.products li.product .onsale {
	position: absolute;
	top: 12px;
	left: 12px;
	margin: 0;
	min-height: 0;
	min-width: 0;
	line-height: 1.1;
	padding: 4px 8px;
	background: var(--primary);
	color: #fff;
	font-size: 10px;
	font-weight: 900;
	border-radius: 0 0 8px 0;
	border-radius: 8px;
}

/* Add-to-cart button -> match .addbtn */
ul.products li.product .button,
ul.products li.product a.add_to_cart_button,
ul.products li.product a.added_to_cart {
	margin: 4px 0 0;
	background: #fff;
	color: var(--primary);
	border: 1.5px solid var(--primary);
	padding: 8px 14px;
	border-radius: 8px;
	font-size: 12px;
	font-weight: 900;
	letter-spacing: .3px;
	text-transform: uppercase;
	text-align: center;
	transition: background .15s, color .15s;
	display: block;
}
ul.products li.product .button:hover,
ul.products li.product a.add_to_cart_button:hover {
	background: var(--primary);
	color: #fff;
}
ul.products li.product .added_to_cart {
	margin-top: 6px;
	font-size: 11px;
}

/* Push button + price to the bottom consistently */
ul.products li.product > a:not(.button):not(.added_to_cart) { text-decoration: none; }
