/* ============================================================
   GeoMap — Catálogo y producto WooCommerce (modo catálogo)
   Escrito desde cero: 3 breakpoints (480 / 768 / 1100), tipografía fluida.
   Usa las variables de global.css (--night, --blue, --orange, --green, --text,
   --muted, --line, --soft, --max).
   ============================================================ */
.gm-wrap{width:var(--max, min(100% - 40px, 1280px));margin-inline:auto}
.gm-shop, .gm-product{font-family:Inter,system-ui,sans-serif;color:var(--text,#111827);background:#fff}
.gm-shop h1, .gm-product h1{font-family:"Plus Jakarta Sans",Inter,sans-serif;font-weight:800;letter-spacing:-.02em;line-height:1.08}
.gm-shop h2, .gm-product h2{font-family:"Plus Jakarta Sans",Inter,sans-serif;font-weight:800;letter-spacing:-.01em;line-height:1.15}

/* Botones */
.gm-btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:14px 22px;border-radius:999px;font-weight:700;font-size:1rem;text-decoration:none;transition:transform .15s,box-shadow .15s,background .15s;cursor:pointer;border:0}
.gm-btn:hover{transform:translateY(-1px)}
.gm-btn-wa{background:var(--green,#22A045);color:#fff;box-shadow:0 10px 24px rgba(34,160,69,.28)}
.gm-btn-wa:hover{background:var(--green2,#1a7d36)}
.gm-btn-wa svg{width:20px;height:20px;fill:currentColor}
.gm-btn-ghost{background:#fff;color:var(--blue,#1F4EA3);border:2px solid var(--blue,#1F4EA3)}
.gm-btn-ghost:hover{background:var(--soft,#F7F9FC)}

/* Migas, etiquetas, precio, stock */
.gm-crumbs{font-size:.875rem;color:var(--muted,#667085);margin-bottom:14px}
.gm-crumbs a{color:inherit;text-decoration:none}.gm-crumbs a:hover{color:var(--blue,#1F4EA3)}
.gm-crumbs span{color:var(--text,#111827)}
.gm-badge{position:absolute;bottom:12px;left:12px;z-index:2;padding:6px 12px;border-radius:999px;font-size:.75rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:#fff;background:var(--orange,#F36B21);box-shadow:0 6px 16px rgba(243,107,33,.35)}
.gm-badge-hot{background:var(--blue,#1F4EA3);box-shadow:0 6px 16px rgba(31,78,163,.3)}
.gm-price{display:flex;flex-direction:column;gap:2px;margin:12px 0}
.gm-price-old{color:var(--muted,#667085);text-decoration:line-through;font-size:.9375rem}
.gm-price-now{color:var(--orange,#F36B21);font-size:clamp(1.35rem,1.1rem + 1vw,1.75rem);font-weight:900;letter-spacing:-.02em;white-space:nowrap}
.gm-card .gm-price-now{font-size:clamp(1.15rem,1rem + .6vw,1.4rem)}
.gm-price-now small{font-size:.65em;font-weight:700;color:var(--muted,#667085)}
.gm-price-note{font-size:.8125rem;color:var(--muted,#667085);font-weight:600}
.gm-stock{display:inline-flex;align-items:center;gap:6px;font-size:.8125rem;font-weight:700;color:var(--green2,#1a7d36)}
.gm-stock::before{content:"";width:8px;height:8px;border-radius:50%;background:currentColor}
.gm-stock.out{color:var(--muted,#667085)}
.gm-kicker{display:inline-block;padding:5px 12px;border-radius:999px;background:var(--blue,#1F4EA3);color:#fff;font-size:.75rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;text-decoration:none}
.gm-kicker-soft{background:var(--soft,#F7F9FC);color:var(--blue,#1F4EA3);border:1px solid var(--line,#E5EAF2)}

/* ---------- Catálogo ---------- */
.gm-shop-hero{background:linear-gradient(135deg,var(--night,#061426),var(--navblue,#041E3D) 70%,#0b2d5c);color:#fff;padding:calc(76px + clamp(28px,5vw,56px)) 0 clamp(28px,5vw,56px)}
.gm-shop-hero .gm-crumbs{color:rgba(255,255,255,.65)}.gm-shop-hero .gm-crumbs span{color:#fff}
.gm-shop-hero h1{font-size:clamp(1.9rem,1.3rem + 2.4vw,3rem);margin:0 0 10px}
.gm-shop-hero p{max-width:60ch;color:rgba(255,255,255,.8);font-size:clamp(1rem,.95rem + .3vw,1.125rem);margin:0 0 22px}
.gm-search{display:flex;max-width:560px;background:#fff;border-radius:999px;padding:5px;box-shadow:0 14px 34px rgba(0,0,0,.25)}
.gm-search input{flex:1;min-width:0;border:0;background:transparent;padding:10px 18px;font:inherit;font-size:1rem;color:var(--text,#111827);outline:0}
.gm-search button{border:0;border-radius:999px;background:var(--orange,#F36B21);color:#fff;font-weight:800;padding:10px 20px;cursor:pointer}
.gm-shop-layout{display:grid;grid-template-columns:260px 1fr;gap:32px;padding:32px 0 56px;align-items:start}
.gm-filter-toggle{display:none}
.gm-filters{position:sticky;top:96px;display:flex;flex-direction:column;gap:22px}
.gm-filter-group{border:1px solid var(--line,#E5EAF2);border-radius:18px;padding:18px;background:#fff}
.gm-filter-group h2{font-size:.8125rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted,#667085);margin:0 0 10px}
.gm-filter-group a{display:flex;justify-content:space-between;align-items:center;padding:8px 10px;border-radius:10px;color:var(--text,#111827);text-decoration:none;font-weight:600;font-size:.9375rem}
.gm-filter-group a span{font-size:.75rem;color:var(--muted,#667085);font-weight:700}
.gm-filter-group a:hover{background:var(--soft,#F7F9FC)}
.gm-filter-group a.is-active{background:var(--blue,#1F4EA3);color:#fff}.gm-filter-group a.is-active span{color:rgba(255,255,255,.8)}
.gm-filter-help{background:var(--soft,#F7F9FC)}
.gm-filter-help p{margin:0 0 12px;font-size:.9375rem;color:var(--muted,#667085)}
.gm-filter-help .gm-btn{width:100%;padding:12px 18px}
.gm-results-bar{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:18px;font-weight:600;color:var(--muted,#667085);font-size:.9375rem}
.gm-sort label{display:flex;align-items:center;gap:8px}
.gm-sort select{font:inherit;padding:8px 12px;border:1px solid var(--line,#E5EAF2);border-radius:10px;background:#fff;color:var(--text,#111827)}
.gm-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:20px}
.gm-card{display:flex;flex-direction:column;background:#fff;border:1px solid var(--line,#E5EAF2);border-radius:20px;overflow:hidden;transition:transform .2s,box-shadow .2s}
.gm-card:hover{transform:translateY(-3px);box-shadow:0 18px 40px rgba(7,20,38,.12)}
.gm-card-media{position:relative;display:block;aspect-ratio:1/1;background:linear-gradient(180deg,#f8fafc,#eef3f9);overflow:hidden}
.gm-card-media img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;padding:14px;transition:opacity .25s,transform .25s}
.gm-card-hover{opacity:0}
.gm-card.has-hover:hover .gm-card-photo{opacity:0}.gm-card.has-hover:hover .gm-card-hover{opacity:1}
.gm-card-body{display:flex;flex-direction:column;flex:1;padding:16px 18px 18px}
.gm-card-kicker{font-size:.75rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--blue,#1F4EA3)}
.gm-card h3{font-size:1.0625rem;line-height:1.25;margin:6px 0 6px;font-weight:800}
.gm-card h3 a{color:inherit;text-decoration:none}
.gm-card-body > p{margin:0;font-size:.9rem;color:var(--muted,#667085);line-height:1.45;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.gm-card .gm-price{margin:10px 0 auto}
.gm-card-actions{display:flex;justify-content:space-between;align-items:center;margin-top:12px;padding-top:12px;border-top:1px solid var(--line,#E5EAF2)}
.gm-card-link{font-weight:800;color:var(--blue,#1F4EA3);text-decoration:none;font-size:.9375rem}
.gm-card-link::after{content:" →"}
.gm-pagination{display:flex;justify-content:center;gap:6px;margin-top:32px}
.gm-pagination a,.gm-pagination span{display:inline-flex;align-items:center;justify-content:center;min-width:40px;height:40px;padding:0 12px;border-radius:10px;border:1px solid var(--line,#E5EAF2);text-decoration:none;color:var(--text,#111827);font-weight:700}
.gm-pagination .current{background:var(--blue,#1F4EA3);color:#fff;border-color:var(--blue,#1F4EA3)}
.gm-empty{text-align:center;padding:48px 20px;border:1px dashed var(--line,#E5EAF2);border-radius:20px}
.gm-shop-cta{background:var(--soft,#F7F9FC);border-top:1px solid var(--line,#E5EAF2);padding:clamp(32px,5vw,56px) 0;text-align:center}
.gm-shop-cta h2{font-size:clamp(1.4rem,1.1rem + 1.4vw,2rem);margin:0 0 8px}
.gm-shop-cta p{max-width:62ch;margin:0 auto 20px;color:var(--muted,#667085)}

/* ---------- Producto ---------- */
.gm-product{padding:calc(76px + 24px) 0 56px}
.gm-product-top{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:clamp(24px,4vw,56px);align-items:start}
.gm-gallery{position:sticky;top:96px}
.gm-gallery-main{position:relative;aspect-ratio:1/1;border:1px solid var(--line,#E5EAF2);border-radius:24px;background:linear-gradient(180deg,#fff,#eef3f9);overflow:hidden}
.gm-gallery-main img{width:100%;height:100%;object-fit:contain;padding:clamp(12px,3vw,32px)}
.gm-gallery-thumbs{display:flex;gap:10px;margin-top:12px;overflow-x:auto;padding-bottom:4px}
.gm-gallery-thumbs button{flex:0 0 72px;height:72px;padding:4px;border:2px solid var(--line,#E5EAF2);border-radius:12px;background:#fff;cursor:pointer}
.gm-gallery-thumbs button img{width:100%;height:100%;object-fit:contain}
.gm-gallery-thumbs button.is-active{border-color:var(--blue,#1F4EA3)}
.gm-summary-kickers{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}
.gm-summary h1{font-size:clamp(1.6rem,1.2rem + 1.8vw,2.5rem);margin:0 0 10px}
.gm-lead{font-size:clamp(1rem,.95rem + .35vw,1.15rem);color:var(--muted,#667085);line-height:1.5;margin:0 0 6px}
.gm-summary .gm-price-now{font-size:clamp(1.8rem,1.4rem + 1.6vw,2.4rem)}
.gm-trust{list-style:none;margin:16px 0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.gm-trust li{display:flex;flex-direction:column;gap:2px;padding:12px;border:1px solid var(--line,#E5EAF2);border-radius:14px;background:var(--soft,#F7F9FC);font-size:.8125rem;color:var(--muted,#667085)}
.gm-trust strong{color:var(--text,#111827);font-size:.9375rem}
.gm-cta{display:flex;flex-wrap:wrap;gap:12px;margin-top:8px}
.gm-cta .gm-btn{flex:1 1 220px}
.gm-cta-note{font-size:.875rem;color:var(--muted,#667085);margin:12px 0 0}
.gm-cta-note a{color:var(--blue,#1F4EA3)}
.gm-product-body{max-width:860px;margin-top:clamp(32px,5vw,56px);display:grid;gap:clamp(24px,4vw,40px)}
.gm-block h2{font-size:clamp(1.25rem,1.05rem + 1vw,1.7rem);margin:0 0 12px}
.gm-prose{line-height:1.65;font-size:1.0625rem}.gm-prose ul{padding-left:22px}
.gm-checklist{list-style:none;padding:0;margin:0;display:grid;gap:8px}
.gm-checklist li{padding:10px 14px 10px 40px;position:relative;border:1px solid var(--line,#E5EAF2);border-radius:12px;background:#fff}
.gm-checklist li::before{content:"✓";position:absolute;left:14px;top:9px;width:20px;height:20px;border-radius:50%;background:var(--green,#22A045);color:#fff;font-size:.75rem;font-weight:900;display:grid;place-items:center}
.gm-specs{width:100%;border-collapse:collapse;font-size:.9375rem}
.gm-specs th,.gm-specs td{text-align:left;padding:11px 14px;border-bottom:1px solid var(--line,#E5EAF2);vertical-align:top}
.gm-specs th{width:38%;color:var(--muted,#667085);font-weight:700;background:var(--soft,#F7F9FC)}
.gm-guarantee{padding:22px;border-radius:18px;background:var(--night,#061426);color:#fff}
.gm-guarantee h2{color:#fff}.gm-guarantee p{margin:0;line-height:1.6;color:rgba(255,255,255,.85)}
.gm-related{margin-top:clamp(40px,6vw,72px);padding-top:clamp(28px,4vw,48px);border-top:1px solid var(--line,#E5EAF2)}
.gm-related h2{font-size:clamp(1.3rem,1.1rem + 1.2vw,1.9rem);margin:0 0 18px}

/* ---------- Responsivo ---------- */
@media (max-width:1100px){
  .gm-shop-layout{grid-template-columns:220px 1fr;gap:22px}
  .gm-trust{grid-template-columns:1fr 1fr}
}
@media (max-width:768px){
  .gm-shop-layout{grid-template-columns:1fr;gap:16px;padding-top:20px}
  .gm-filter-toggle{display:inline-flex;align-items:center;gap:8px;align-self:flex-start;padding:10px 18px;border-radius:999px;border:2px solid var(--blue,#1F4EA3);background:#fff;color:var(--blue,#1F4EA3);font-weight:800;cursor:pointer}
  .gm-filter-toggle::before{content:"☰"}
  .gm-filters{display:none;position:static}
  .gm-filters.is-open{display:flex}
  .gm-filter-group a{padding:10px}
  .gm-product-top{grid-template-columns:1fr}
  .gm-gallery{position:static}
  .gm-grid{grid-template-columns:repeat(2,1fr);gap:12px}
  .gm-card-body{padding:12px 12px 14px}
  .gm-card h3{font-size:.9375rem}
  .gm-card-body > p{display:none}
  .gm-results-bar{flex-direction:column;align-items:flex-start}
  .gm-card .gm-badge{bottom:8px;left:8px;padding:4px 9px;font-size:.66rem;letter-spacing:.02em}
  .gm-card-media img{padding:10px}
}
@media (max-width:480px){
  .gm-grid{grid-template-columns:1fr 1fr;gap:10px}
  .gm-card-media img{padding:8px}
  .gm-card .gm-price-now{font-size:1.05rem}
  .gm-card-actions{flex-direction:column;align-items:flex-start;gap:6px}
  .gm-trust{grid-template-columns:1fr}
  .gm-search button{padding:10px 14px}
  .gm-cta .gm-btn{flex-basis:100%}
}
@media (prefers-reduced-motion:reduce){
  .gm-card,.gm-btn,.gm-card-media img{transition:none}
}
