/* ================================================================
   SIGMA — AUTORIDAD SYSTEM
   Dark-first B2B portal. Overdrive edition.
   ================================================================ */

@import url('https://fonts.googleapis.com/css2?family=Inter:ital,opsz,wght@0,14..32,300..900;1,14..32,400..700&display=swap');

/* ── @property (animated tokens) ────────────────────────────── */
@property --glow-x { syntax: '<percentage>'; inherits: false; initial-value: 68%; }
@property --glow-y { syntax: '<percentage>'; inherits: false; initial-value: 44%; }
@property --glow-r { syntax: '<number>';     inherits: false; initial-value: 0; }

/* ── TOKENS ──────────────────────────────────────────────────── */
:root {
  /* Dark brand palette */
  --ink:    #08111E;
  --ink-2:  #0D1C33;
  --ink-3:  #162B4A;
  --ink-4:  #1E3A62;
  --ink-border: rgba(255,255,255,.07);
  --ink-border-2: rgba(255,255,255,.13);

  /* Accents */
  --red:    #C8313A;
  --red-2:  #A0262D;
  --gold:   #E8B84B;
  --gold-2: #C99A2E;
  --gold-bg: rgba(232,184,75,.10);

  /* Light catalog palette */
  --white:     #FFFFFF;
  --off-white: #F5F7FA;
  --gray-50:   #F1F4F8;
  --gray-100:  #E5E9F0;
  --gray-200:  #D0D7E4;
  --gray-300:  #B0BBCB;
  --gray-400:  #8A97AB;
  --gray-500:  #5E6E85;
  --gray-700:  #2B3A50;
  --text:      #08111E;

  /* Radii */
  --r-xs: 4px; --r-sm: 8px; --r: 12px; --r-lg: 18px; --r-xl: 26px; --r-full: 9999px;

  /* Shadows (light-page) */
  --sh:    0 1px 4px rgba(8,17,30,.06), 0 2px 12px rgba(8,17,30,.05);
  --sh-md: 0 4px 20px rgba(8,17,30,.09), 0 1px 6px rgba(8,17,30,.04);
  --sh-lg: 0 8px 40px rgba(8,17,30,.13), 0 2px 10px rgba(8,17,30,.05);

  /* Transitions */
  --t-fast: 140ms ease; --t: 220ms ease; --t-slow: 380ms ease;
}

/* ── RESET ───────────────────────────────────────────────────── */
*,*::before,*::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body {
  font-family: 'Inter', system-ui, -apple-system, sans-serif;
  font-size: 16px; line-height: 1.6; color: var(--text);
  background: var(--off-white); -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}
img, video, svg { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
button { font-family: inherit; cursor: pointer; border: none; background: none; }
ul, ol { list-style: none; }
p { max-width: 68ch; }

/* ── LAYOUT ──────────────────────────────────────────────────── */
.container { width: 100%; max-width: 1300px; margin-inline: auto; padding-inline: clamp(1.25rem,4vw,3rem); }
.section     { padding-block: clamp(4.5rem, 8vw, 8rem); }
.section--sm { padding-block: clamp(2.5rem, 4vw, 4.5rem); }

/* ── TYPOGRAPHY ──────────────────────────────────────────────── */
.display-xl  { font-size: clamp(2.75rem,6vw,6rem);   font-weight: 900; letter-spacing: -0.04em; line-height: 1.0; }
.display-lg  { font-size: clamp(2rem,  4vw,4rem);    font-weight: 800; letter-spacing: -0.035em; line-height: 1.08; }
.display-md  { font-size: clamp(1.5rem,3vw,2.75rem); font-weight: 800; letter-spacing: -0.03em;  line-height: 1.12; }
.display-sm  { font-size: clamp(1.2rem,2vw,1.75rem); font-weight: 700; letter-spacing: -0.025em; line-height: 1.2; }
.body-lg  { font-size: clamp(1rem,1.5vw,1.1875rem); line-height: 1.7; color: var(--gray-500); }
.body-md  { font-size: 0.9375rem; line-height: 1.7; }
.label    { font-size: 0.6875rem; font-weight: 700; letter-spacing: 0.16em; text-transform: uppercase; }

/* ── BUTTONS ─────────────────────────────────────────────────── */
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 0.5rem;
  font-weight: 600; border-radius: var(--r-sm); cursor: pointer; border: none;
  transition: background var(--t-fast), color var(--t-fast), transform var(--t-fast), box-shadow var(--t-fast);
  white-space: nowrap; font-family: inherit; text-decoration: none;
}
.btn:active { transform: translateY(1px); }

.btn--sm  { font-size: 0.8125rem; padding: 0.5rem 1rem; }
.btn--md  { font-size: 0.9375rem; padding: 0.6875rem 1.375rem; }
.btn--lg  { font-size: 1rem;      padding: 0.875rem 1.875rem; }
.btn--xl  { font-size: 1.0625rem; padding: 1rem 2.25rem; }

.btn--red   { background: var(--red); color: var(--white); }
.btn--red:hover { background: var(--red-2); box-shadow: 0 6px 24px rgba(200,49,58,.35); }

.btn--white { background: var(--white); color: var(--ink); }
.btn--white:hover { background: var(--gray-50); box-shadow: 0 6px 20px rgba(255,255,255,.25); }

.btn--ink   { background: var(--ink); color: var(--white); }
.btn--ink:hover { background: var(--ink-2); }

.btn--gold  { background: var(--gold); color: var(--ink); }
.btn--gold:hover { background: var(--gold-2); }

.btn--ghost { background: rgba(255,255,255,.1); color: var(--white); border: 1px solid var(--ink-border-2); }
.btn--ghost:hover { background: rgba(255,255,255,.18); }

.btn--outline { background: transparent; color: var(--white); border: 1.5px solid var(--ink-border-2); }
.btn--outline:hover { background: rgba(255,255,255,.08); }

.btn--outline-dark { background: transparent; color: var(--ink); border: 1.5px solid var(--gray-200); }
.btn--outline-dark:hover { background: var(--gray-50); border-color: var(--gray-300); }

.btn--primary { background: var(--red); color: var(--white); }
.btn--primary:hover { background: var(--red-2,#a5262d); box-shadow: 0 6px 24px rgba(200,49,58,.35); }

.btn--outline-white { background: transparent; color: var(--white); border: 1.5px solid rgba(255,255,255,.45); }
.btn--outline-white:hover { background: rgba(255,255,255,.1); border-color: rgba(255,255,255,.7); }

/* ── HEADER ──────────────────────────────────────────────────── */
.site-header {
  position: sticky; top: 0; z-index: 100;
  background: var(--ink); height: 66px; display: flex; align-items: center;
  border-bottom: 1px solid var(--ink-border);
  transition: box-shadow var(--t);
}
.site-header.is-scrolled { box-shadow: 0 2px 30px rgba(0,0,0,.35); }

.site-header__inner {
  display: flex; align-items: center; gap: 2rem; width: 100%;
  max-width: 1300px; margin-inline: auto; padding-inline: clamp(1.25rem,3vw,2.5rem);
}

.site-logo { flex-shrink: 0; }
.site-logo a { display: flex; align-items: center; }
.site-logo__img { height: 36px !important; width: auto !important; max-height: 36px !important; display: block; }
.site-logo__text { font-size: 1.25rem; font-weight: 800; color: var(--white); letter-spacing: -0.03em; }

.site-nav { margin-inline: auto; }
.site-nav__list { display: flex; gap: 0.125rem; align-items: center; }
.site-nav__list > li > a {
  display: block; padding: 0.5rem 0.875rem;
  font-size: 0.875rem; font-weight: 500; color: rgba(255,255,255,.72);
  border-radius: var(--r-sm); transition: background var(--t-fast), color var(--t-fast);
}
.site-nav__list > li > a:hover,
.site-nav__list .current-menu-item > a { color: var(--white); background: rgba(255,255,255,.09); }

.site-header__actions { display: flex; align-items: center; gap: 0.625rem; }

.hdr-icon {
  position: relative; display: flex; align-items: center; justify-content: center;
  width: 38px; height: 38px; border-radius: var(--r-sm); color: rgba(255,255,255,.68);
  transition: background var(--t-fast), color var(--t-fast);
}
.hdr-icon:hover { background: rgba(255,255,255,.10); color: var(--white); }

.hdr-cart-count {
  position: absolute; top: 3px; right: 3px;
  background: var(--red); color: white; font-size: 9px; font-weight: 800;
  min-width: 16px; height: 16px; border-radius: var(--r-full);
  display: flex; align-items: center; justify-content: center; padding-inline: 2px;
  line-height: 1;
}

/* Search bar — visibility via HTML [hidden] attr toggled by JS */
.search-bar {
  position: absolute; top: 66px; inset-inline: 0; z-index: 98;
  background: var(--ink); border-bottom: 1px solid var(--ink-border); padding-block: 0.875rem;
}
.search-bar[hidden] { display: none !important; }
.search-bar form {
  display: flex; gap: 0.75rem; max-width: 640px; margin-inline: auto;
  padding-inline: clamp(1.25rem,3vw,2.5rem);
}
.search-bar input {
  flex: 1; padding: 0.6875rem 1.125rem; background: var(--ink-2); color: var(--white);
  border: 1px solid var(--ink-3); border-radius: var(--r-sm); font-size: 0.9375rem;
  outline: none; transition: border-color var(--t-fast);
}
.search-bar input::placeholder { color: var(--gray-400); }
.search-bar input:focus { border-color: var(--gold); }
.search-bar button[type="submit"] {
  display: flex; align-items: center; justify-content: center; gap: 0.375rem;
  padding: 0.6875rem 1.25rem; background: var(--red); color: var(--white);
  border-radius: var(--r-sm); font-size: 0.875rem; font-weight: 600;
  transition: background var(--t-fast);
}
.search-bar button[type="submit"]:hover { background: var(--red-2); }

/* Search dropdown ─────────────────────────────────── */
.search-drop {
  max-width: 640px; margin-inline: auto;
  padding-inline: clamp(1.25rem,3vw,2.5rem);
  padding-bottom: 0.5rem;
}
.search-drop[hidden] { display: none !important; }
.search-drop__inner {
  background: var(--ink-2);
  border: 1px solid var(--ink-3);
  border-radius: var(--r-sm);
  overflow: hidden;
}
.sr-item {
  display: flex; align-items: center; gap: 0.75rem;
  padding: 0.625rem 0.875rem;
  text-decoration: none; color: var(--white);
  border-bottom: 1px solid var(--ink-3);
  transition: background var(--t-fast);
}
.sr-item:last-child { border-bottom: none; }
.sr-item:hover { background: var(--ink-3); }
.sr-thumb {
  width: 44px; height: 44px; flex-shrink: 0;
  border-radius: 4px; object-fit: contain;
  background: var(--ink-3);
}
.sr-thumb-ph {
  width: 44px; height: 44px; flex-shrink: 0;
  border-radius: 4px; background: var(--ink-3);
  display: flex; align-items: center; justify-content: center;
}
.sr-info { flex: 1; min-width: 0; }
.sr-name { font-size: 0.8125rem; font-weight: 600; line-height: 1.3; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.sr-brand { font-size: 0.6875rem; color: var(--gray-400); margin-top: 2px; text-transform: uppercase; letter-spacing: 0.04em; }
.sr-footer {
  display: flex; align-items: center; justify-content: center;
  padding: 0.6rem 0.875rem; border-top: 1px solid var(--ink-3);
  font-size: 0.8125rem; color: var(--gold); font-weight: 600; gap: 0.25rem;
  text-decoration: none;
  transition: color var(--t-fast);
}
.sr-footer:hover { color: var(--white); }
.sr-empty, .sr-loading {
  padding: 1rem; text-align: center; font-size: 0.875rem; color: var(--gray-400);
}

/* Hamburger */
.hdr-hamburger { display: none; flex-direction: column; gap: 5px; }
.hdr-hamburger span {
  display: block; width: 22px; height: 2px; background: rgba(255,255,255,.8);
  border-radius: 2px; transition: var(--t);
}

/* ═══════════════════════════════════════════════════════════════
   HOMEPAGE — DARK BRAND SYSTEM
   ═══════════════════════════════════════════════════════════════ */

/* ── HERO ────────────────────────────────────────────────────── */
.hero {
  position: relative; overflow: hidden;
  min-height: calc(100dvh - 66px);
  display: flex; align-items: center;
  background: radial-gradient(ellipse 80% 90% at var(--glow-x) var(--glow-y), rgba(200,49,58,.15) 0%, transparent 65%), var(--ink);
  animation: hero-breathe 10s ease-in-out infinite alternate;
}
@keyframes hero-breathe {
  from { --glow-x: 62%; --glow-y: 38%; }
  to   { --glow-x: 74%; --glow-y: 60%; }
}

/* Subtle noise grain on hero */
.hero::before {
  content: ''; position: absolute; inset: 0; z-index: 0; pointer-events: none; opacity: .03;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='1'/%3E%3C/svg%3E");
  background-size: 200px 200px;
}

/* Diagonal grid lines */
.hero::after {
  content: ''; position: absolute; inset: 0; z-index: 0; pointer-events: none;
  background-image: repeating-linear-gradient(
    -45deg,
    rgba(255,255,255,.018) 0px, rgba(255,255,255,.018) 1px,
    transparent 1px, transparent 60px
  );
}

.hero__inner {
  position: relative; z-index: 1;
  display: grid; grid-template-columns: 1.05fr 0.95fr;
  gap: clamp(2rem,5vw,5rem); align-items: center;
  padding-block: clamp(4rem,8vw,7rem);
}

.hero__content { max-width: 600px; }

.hero__title {
  font-size: clamp(2.75rem,6vw,5.75rem);
  font-weight: 900; letter-spacing: -0.045em; line-height: 1.0;
  color: var(--white); margin-bottom: 1.5rem;
}
.hero__title em {
  font-style: normal; color: var(--red);
  display: inline-block;
}

.hero__desc {
  font-size: clamp(1rem,1.5vw,1.1875rem); color: rgba(255,255,255,.62);
  line-height: 1.75; margin-bottom: 2.25rem; max-width: 52ch;
}

.hero__actions { display: flex; flex-wrap: wrap; gap: 0.875rem; }

/* Hero scroll indicator */
.hero__scroll {
  position: absolute; bottom: 2rem; left: 50%; transform: translateX(-50%);
  display: flex; flex-direction: column; align-items: center; gap: 0.375rem;
  color: rgba(255,255,255,.3); font-size: 0.6875rem; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase;
  animation: scroll-bounce 2.4s ease-in-out infinite;
}
@keyframes scroll-bounce {
  0%,100% { transform: translateX(-50%) translateY(0); opacity: .3; }
  50%      { transform: translateX(-50%) translateY(6px); opacity: .7; }
}
.hero__scroll svg { animation: scroll-bounce 2.4s ease-in-out infinite; }

/* Hero right: product showcase */
.hero__showcase {
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-template-rows: auto auto;
  gap: 0.875rem;
}
.hero__show-item {
  border-radius: var(--r-lg); overflow: hidden; position: relative;
  background: var(--ink-2); border: 1px solid var(--ink-border-2);
  aspect-ratio: 1; display: flex; align-items: flex-end;
  transition: transform var(--t-slow);
}
.hero__show-item:hover { transform: translateY(-4px); }
.hero__show-item:first-child { grid-row: 1 / 3; aspect-ratio: 0.65 / 1; }
.hero__show-item img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.hero__show-item-label {
  position: relative; z-index: 1; padding: 1rem 0.875rem;
  background: linear-gradient(to top, rgba(8,17,30,.9) 0%, transparent 100%);
  width: 100%; font-size: 0.75rem; font-weight: 700; color: rgba(255,255,255,.9);
  text-transform: uppercase; letter-spacing: 0.1em;
}
/* Placeholder SVG categories */
.hero__show-item--placeholder { background: var(--ink-3); }
.hero__show-bg {
  position: absolute; inset: 0; display: flex; align-items: center; justify-content: center;
  color: rgba(255,255,255,.07);
}
.hero__show-bg svg { width: 50%; height: 50%; }

/* ── METRICS STRIP ───────────────────────────────────────────── */
.metrics-strip { background: var(--ink-2); border-block: 1px solid var(--ink-border); }
.metrics-strip__grid {
  display: grid; grid-template-columns: repeat(4,1fr);
}
.metric-item {
  padding: clamp(1.5rem,3vw,2.25rem) clamp(1rem,2vw,1.75rem);
  border-right: 1px solid var(--ink-border);
  display: flex; flex-direction: column; gap: 0.25rem;
}
.metric-item:last-child { border-right: none; }
.metric-num {
  font-size: clamp(2rem,4vw,3.25rem); font-weight: 900; letter-spacing: -0.04em;
  line-height: 1; color: var(--white); display: flex; align-items: baseline; gap: 0.1em;
}
.metric-num sup { font-size: 0.45em; font-weight: 700; letter-spacing: -0.01em; }
.metric-label { font-size: 0.8125rem; font-weight: 500; color: rgba(255,255,255,.45); line-height: 1.4; }

/* ── CATEGORIES ──────────────────────────────────────────────── */
.cats-section { background: var(--ink); padding-block: 0; }
.cats-section__head {
  display: flex; align-items: flex-end; justify-content: space-between; gap: 2rem;
  padding-block: clamp(3rem,5vw,5rem) 2rem;
}
.cats-section__head h2 { color: var(--white); }
.cats-section__head a { color: rgba(255,255,255,.5); font-size: 0.875rem; font-weight: 500; white-space: nowrap; transition: color var(--t-fast); }
.cats-section__head a:hover { color: var(--white); }
@media (max-width: 640px) {
  .cats-section__head { flex-direction: column; align-items: center; text-align: center; }
  .cats-section__head a { display: none; }
}

/* Editorial asymmetric grid */
.cats-grid {
  display: grid;
  grid-template-columns: 2fr 1fr 1fr;
  grid-template-rows: 280px 280px;
  gap: 0.625rem;
  padding-bottom: clamp(3rem,5vw,5rem);
}
.cat-tile {
  position: relative; overflow: hidden; border-radius: var(--r-lg);
  background: var(--ink-2); cursor: pointer; display: flex;
}
.cat-tile:first-child { grid-row: 1 / 3; }
.cat-tile:nth-child(4),
.cat-tile:nth-child(5) { grid-column: span 1; }

.cat-tile__bg {
  position: absolute; inset: 0;
  background-size: cover; background-position: center;
  transition: transform 0.6s cubic-bezier(0.25,0.46,0.45,0.94);
}
/* Large tile (first child, spans 2 rows): center image so products appear in the clear zone above the gradient */
.cats-grid .cat-tile:first-child .cat-tile__bg { background-position: center 30%; }
/* Tiles 2-3 y 5: imagen landscape → 100% ancho desde arriba */
.cats-grid .cat-tile:nth-child(2) .cat-tile__bg,
.cats-grid .cat-tile:nth-child(3) .cat-tile__bg,
.cats-grid .cat-tile:nth-child(5) .cat-tile__bg {
  background-size: 100% auto;
  background-position: center top;
  background-repeat: no-repeat;
  background-color: #08111e;
}
/* Tiles 4 y 5 (Bebidas, CDH): imagen cuadrada → cover centrado */
.cats-grid .cat-tile:nth-child(4) .cat-tile__bg,
.cats-grid .cat-tile:nth-child(5) .cat-tile__bg {
  background-size: cover;
  background-position: center;
}
/* Tiles 2-5: overlay liviano — solo oscurece la franja del texto (fondo) */
.cats-grid .cat-tile:nth-child(2) .cat-tile__overlay,
.cats-grid .cat-tile:nth-child(3) .cat-tile__overlay,
.cats-grid .cat-tile:nth-child(4) .cat-tile__overlay,
.cats-grid .cat-tile:nth-child(5) .cat-tile__overlay {
  background: linear-gradient(to top, rgba(8,17,30,.96) 0%, rgba(8,17,30,.55) 28%, rgba(8,17,30,.05) 52%, transparent 70%);
}
/* Suaviza el overlay del tile grande para que los productos sean visibles en la zona media */
.cats-grid .cat-tile:first-child .cat-tile__overlay {
  background: linear-gradient(to top, rgba(8,17,30,.95) 0%, rgba(8,17,30,.8) 20%, rgba(8,17,30,.05) 55%, transparent 80%);
}
.cat-tile:hover .cat-tile__bg { transform: scale(1.06); }

.cat-tile__overlay {
  position: absolute; inset: 0;
  background: linear-gradient(to top, rgba(8,17,30,.92) 0%, rgba(8,17,30,.25) 60%, transparent 100%);
  transition: background var(--t-slow);
}
.cat-tile:hover .cat-tile__overlay {
  background: linear-gradient(to top, rgba(8,17,30,.95) 0%, rgba(8,17,30,.4) 60%, rgba(8,17,30,.1) 100%);
}

.cat-tile__body {
  position: relative; z-index: 1; margin-top: auto;
  padding: clamp(1rem,2vw,1.5rem) clamp(1rem,2vw,1.5rem) clamp(1.25rem,2vw,1.625rem);
  width: 100%;
}
.cat-tile__name {
  display: block; font-size: clamp(1rem,1.8vw,1.375rem); font-weight: 800;
  letter-spacing: -0.025em; line-height: 1.2; color: var(--white); margin-bottom: 0.35rem;
}
.cat-tile__count {
  font-size: 0.75rem; font-weight: 500; color: rgba(255,255,255,.45);
  transition: color var(--t-fast);
}
.cat-tile:hover .cat-tile__count { color: var(--gold); }
.cat-tile__arrow {
  position: absolute; top: 1rem; right: 1rem; z-index: 1;
  width: 32px; height: 32px; display: flex; align-items: center; justify-content: center;
  background: rgba(255,255,255,.1); border-radius: var(--r-sm); color: rgba(255,255,255,.5);
  transition: background var(--t-fast), color var(--t-fast), transform var(--t-fast);
}
.cat-tile:hover .cat-tile__arrow { background: var(--red); color: var(--white); transform: translate(2px,-2px); }

/* Category placeholder SVG backgrounds */
.cat-tile--cosmeticos .cat-tile__bg  { background: linear-gradient(135deg,#2D1B3D 0%,#4A2060 40%,#1A1230 100%); }
.cat-tile--fragancias .cat-tile__bg  { background: linear-gradient(135deg,#0D1F3A 0%,#1A3055 40%,#0A1628 100%); }
.cat-tile--alimentos .cat-tile__bg   { background: linear-gradient(135deg,#1E2800 0%,#2E3F05 50%,#111800 100%); }
.cat-tile--bebidas .cat-tile__bg     { background: linear-gradient(135deg,#001A30 0%,#003050 40%,#00152A 100%); }
.cat-tile--hogar .cat-tile__bg       { background: linear-gradient(135deg,#1A1200 0%,#2E2005 50%,#0A0800 100%); }

/* ── WHY SIGMA ───────────────────────────────────────────────── */
.why-section { background: var(--off-white); }
.why-section__inner {
  display: grid; grid-template-columns: 1fr 1fr; gap: clamp(3rem,6vw,7rem); align-items: center;
}
.why-section__text h2 { color: var(--ink); margin-bottom: 1.5rem; }
.why-section__text p  { color: var(--gray-500); margin-bottom: 2rem; max-width: 48ch; }

.why-list { display: flex; flex-direction: column; gap: 1.5rem; }
.why-item { display: flex; gap: 1rem; align-items: flex-start; }
.why-item__icon {
  width: 44px; height: 44px; flex-shrink: 0; border-radius: var(--r);
  background: var(--ink); color: var(--white);
  display: flex; align-items: center; justify-content: center;
}
.why-item__body { flex: 1; }
.why-item__title { font-size: 0.9375rem; font-weight: 700; color: var(--ink); margin-bottom: 0.25rem; }
.why-item__desc  { font-size: 0.875rem; color: var(--gray-500); line-height: 1.6; max-width: none; }

.why-section__visual {
  position: relative; border-radius: var(--r-xl); overflow: hidden;
  aspect-ratio: 4/5; background: var(--ink-2);
}
.why-section__visual img { width: 100%; height: 100%; object-fit: cover; }
.why-stat-badge {
  position: absolute; bottom: 1.5rem; left: 1.5rem;
  background: var(--white); border-radius: var(--r-lg); padding: 1rem 1.25rem;
  box-shadow: var(--sh-lg);
}
.why-stat-badge__num   { font-size: 2rem; font-weight: 900; letter-spacing: -0.04em; color: var(--ink); line-height: 1; }
.why-stat-badge__label { font-size: 0.75rem; font-weight: 500; color: var(--gray-500); margin-top: 0.125rem; }

/* ── ABOUT ───────────────────────────────────────────────────── */
.about-section { background: var(--ink); }
.about-section__inner {
  display: grid; grid-template-columns: 1fr 1fr; gap: clamp(3rem,6vw,7rem); align-items: center;
}
.about-section__img {
  position: relative; border-radius: var(--r-xl); overflow: hidden;
  aspect-ratio: 5/6; background: var(--ink-2);
}
.about-section__img img { width: 100%; height: 100%; object-fit: cover; }
.about-section__img::before {
  content: ''; position: absolute; inset: 0; z-index: 1;
  background: linear-gradient(to bottom right, rgba(200,49,58,.12) 0%, transparent 60%);
}

/* SVG placeholder for about */
.about-placeholder {
  position: absolute; inset: 0; display: flex; align-items: center; justify-content: center;
}

.about-section__text h2 { color: var(--white); margin-bottom: 0.5rem; }
.about-section__year {
  display: inline-block; font-size: clamp(4rem,8vw,8rem); font-weight: 900;
  letter-spacing: -0.055em; line-height: 0.9; color: rgba(255,255,255,.18);
  margin-bottom: -1rem; user-select: none;
}
.about-section__desc  { color: rgba(255,255,255,.6); line-height: 1.8; margin-bottom: 1rem; max-width: 48ch; }
.about-section__quote {
  border-left: 3px solid var(--gold); padding-left: 1.125rem; margin-block: 1.75rem;
  font-size: 1rem; font-style: italic; color: rgba(255,255,255,.75); line-height: 1.65; max-width: 44ch;
}

/* ── PROCESS ─────────────────────────────────────────────────── */
.process-section { background: var(--off-white); }
.process-section__head { text-align: center; margin-bottom: clamp(2.5rem,4vw,4rem); }
.process-section__head h2 { color: var(--ink); margin-bottom: 0.875rem; }
.process-section__head p  { color: var(--gray-500); margin-inline: auto; }

.process-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 1rem; position: relative; }
.process-grid::before {
  content: ''; position: absolute; top: 28px; left: calc(16.6% + 14px); right: calc(16.6% + 14px);
  height: 2px; background: linear-gradient(to right, var(--red), var(--red)); opacity: .25;
  z-index: 0;
}

.process-card {
  background: var(--white); border-radius: var(--r-xl); padding: clamp(1.5rem,3vw,2.25rem);
  position: relative; z-index: 1;
  box-shadow: var(--sh);
  transition: box-shadow var(--t), transform var(--t);
}
.process-card:hover { box-shadow: var(--sh-md); transform: translateY(-3px); }

.process-card__step {
  width: 28px; height: 28px; border-radius: var(--r-full); background: var(--red);
  color: var(--white); font-size: 0.6875rem; font-weight: 800;
  display: flex; align-items: center; justify-content: center;
  margin-bottom: 1.25rem; letter-spacing: 0;
}
.process-card__icon { color: var(--ink); margin-bottom: 1rem; }
.process-card__icon svg { width: 26px; height: 26px; stroke-width: 1.6; }
.process-card__title { font-size: 1.0625rem; font-weight: 700; color: var(--ink); margin-bottom: 0.5rem; letter-spacing: -0.02em; }
.process-card__desc  { font-size: 0.875rem; color: var(--gray-500); line-height: 1.65; max-width: none; }

/* ── BRANDS TICKER ───────────────────────────────────────────── */
.ticker-section {
  background: var(--ink-2); border-block: 1px solid var(--ink-border); overflow: hidden;
  padding-block: 0; height: 52px; display: flex; align-items: center;
}
.ticker-track {
  display: flex; gap: 0; white-space: nowrap;
  animation: ticker 80s linear infinite;
  will-change: transform;
}
.ticker-section:hover .ticker-track { animation-play-state: paused; }
.ticker-item {
  display: inline-flex; align-items: center;
  font-size: 0.6875rem; font-weight: 700; letter-spacing: 0.2em; text-transform: uppercase;
  color: rgba(255,255,255,.35); padding-inline: 2.5rem; position: relative;
  transition: color var(--t-fast);
}
.ticker-item:hover { color: rgba(255,255,255,.7); }
.ticker-item::before {
  content: '◆'; position: absolute; left: 0; transform: translateX(-50%);
  font-size: 0.3125rem; color: rgba(255,255,255,.18);
}
@keyframes ticker {
  from { transform: translateX(0); }
  to   { transform: translateX(-50%); }
}

/* ── CTA ─────────────────────────────────────────────────────── */
.cta-section {
  background: var(--ink); position: relative; overflow: hidden;
  text-align: center; padding-block: clamp(4.5rem,8vw,8rem);
}
.cta-section::before {
  content: ''; position: absolute; inset: 0;
  background: radial-gradient(ellipse 70% 70% at 50% 100%, rgba(200,49,58,.18) 0%, transparent 70%);
  pointer-events: none;
}
.cta-section__inner { position: relative; z-index: 1; max-width: 700px; margin-inline: auto; }
.cta-section h2 { color: var(--white); margin-bottom: 1rem; }
.cta-section p  { color: rgba(255,255,255,.55); margin-bottom: 2.25rem; margin-inline: auto; max-width: 48ch; }
.cta-section__actions { display: flex; justify-content: center; flex-wrap: wrap; gap: 0.875rem; }

/* ── FOOTER ──────────────────────────────────────────────────── */
.site-footer { background: var(--ink); border-top: 1px solid var(--ink-border); }

.site-footer__main { padding-block: clamp(3rem,5vw,5rem); }
.site-footer__grid {
  display: grid; grid-template-columns: 1.6fr 1fr 1fr 1.2fr;
  gap: clamp(2rem,4vw,4.5rem);
}
.site-footer__logo { margin-bottom: 1rem; }
.site-footer__logo img { height: 34px; width: auto; }
.site-footer__tagline { font-size: 0.875rem; font-weight: 600; color: var(--white); margin-bottom: 0.5rem; }
.site-footer__desc    { font-size: 0.8125rem; color: rgba(255,255,255,.38); line-height: 1.6; margin-bottom: 1.5rem; max-width: 30ch; }
.social-links { display: flex; gap: 0.5rem; }
.social-link {
  width: 34px; height: 34px; display: flex; align-items: center; justify-content: center;
  border-radius: var(--r-sm); background: rgba(255,255,255,.07); color: rgba(255,255,255,.55);
  transition: background var(--t-fast), color var(--t-fast);
}
.social-link:hover { background: var(--red); color: var(--white); }

.site-footer__heading {
  font-size: 0.6875rem; font-weight: 700; letter-spacing: 0.16em; text-transform: uppercase;
  color: rgba(255,255,255,.3); margin-bottom: 1.25rem;
}
.site-footer__links { display: flex; flex-direction: column; gap: 0.6rem; }
.site-footer__links a { font-size: 0.875rem; color: rgba(255,255,255,.5); transition: color var(--t-fast); }
.site-footer__links a:hover { color: var(--white); }

.site-footer__contact { display: flex; flex-direction: column; gap: 0.75rem; }
.footer-contact-item { display: flex; align-items: flex-start; gap: 0.625rem; }
.footer-contact-item svg { flex-shrink: 0; margin-top: 2px; color: rgba(255,255,255,.3); }
.footer-contact-item span,
.footer-contact-item a { font-size: 0.875rem; color: rgba(255,255,255,.55); line-height: 1.5; transition: color var(--t-fast); }
.footer-contact-item a:hover { color: var(--white); }
.footer-contact-social { display: flex; gap: 0.5rem; margin-top: 1.25rem; }

.site-footer__bar {
  border-top: 1px solid var(--ink-border);
  padding-block: 1.125rem;
  display: flex; align-items: center; justify-content: space-between; gap: 1rem;
  flex-wrap: wrap;
}
.site-footer__bar p { font-size: 0.8125rem; color: rgba(255,255,255,.28); max-width: none; }

/* ═══════════════════════════════════════════════════════════════
   WOOCOMMERCE — LIGHT CATALOG SYSTEM
   ═══════════════════════════════════════════════════════════════ */

/* Page hero (catalog) */
.page-hero {
  position: relative; background: var(--ink);
  background-image: var(--hero-bg, none); background-size: cover; background-position: center;
  padding-block: clamp(3rem,5vw,4.5rem); overflow: hidden;
}
.page-hero__overlay {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, rgba(8,17,30,.94) 0%, rgba(8,17,30,.75) 100%);
}
.page-hero__content { position: relative; z-index: 1; color: var(--white); }
.page-hero__title { font-size: clamp(1.75rem,3.5vw,3rem); font-weight: 800; letter-spacing: -0.035em; margin-bottom: 0.625rem; }
.page-hero__desc  { font-size: 0.9375rem; color: rgba(255,255,255,.6); max-width: 54ch; }

/* Features bar */
.features-bar { background: var(--white); border-bottom: 1px solid var(--gray-100); }
.features-bar__grid {
  display: grid; grid-template-columns: repeat(4,1fr);
}
.feature-item {
  display: flex; align-items: center; gap: 0.875rem;
  padding: 1.125rem 1.5rem; border-right: 1px solid var(--gray-100);
}
.feature-item:last-child { border-right: none; }
.feature-item__icon {
  width: 36px; height: 36px; flex-shrink: 0; border-radius: var(--r-sm);
  background: var(--ink); color: var(--white);
  display: flex; align-items: center; justify-content: center;
}
.feature-item__icon svg { width: 16px; height: 16px; }
.feature-item__text strong { display: block; font-size: 0.8125rem; font-weight: 700; color: var(--text); }
.feature-item__text span  { display: block; font-size: 0.75rem; color: var(--gray-400); }

/* B2B banner */
.b2b-banner {
  display: flex; align-items: flex-start; gap: 0.75rem;
  padding: 1rem 1.25rem; background: var(--gray-50);
  border: 1px solid var(--gray-200); border-radius: var(--r-lg);
  margin-bottom: 1.5rem; font-size: 0.875rem; color: var(--gray-700);
}
.b2b-banner svg { flex-shrink: 0; margin-top: 2px; color: var(--gray-400); }
.b2b-banner strong { color: var(--text); }
.b2b-banner a { color: var(--red); font-weight: 600; }
.b2b-banner a:hover { text-decoration: underline; }

/* ── MOBILE FILTERS ─────────────────────────────────────────── */
.mobile-filters { display: none; background: var(--white); border-bottom: 1px solid var(--gray-100); padding: 1rem 0; }
.mf-cats { display: grid; grid-template-columns: 1fr 1fr; gap: 0.5rem; margin-bottom: 0.75rem; }
.mf-cat-pill {
  display: flex; align-items: center; justify-content: space-between; gap: 0.25rem;
  padding: 0.5rem 0.75rem; border-radius: var(--r-sm);
  font-size: 0.8125rem; font-weight: 500; color: var(--gray-500);
  background: var(--gray-50); border: 1px solid var(--gray-100);
  transition: background var(--t-fast), color var(--t-fast), border-color var(--t-fast);
}
.mf-cat-pill.is-active { background: var(--ink); color: var(--white); border-color: var(--ink); font-weight: 700; }
.mf-cat-pill:hover:not(.is-active) { background: var(--gray-100); color: var(--ink); }
.mf-cat-count { font-size: 0.75rem; opacity: .6; }
.mf-brand-toggle {
  display: flex; align-items: center; justify-content: space-between;
  width: 100%; padding: 0.75rem 1rem;
  background: var(--ink); color: var(--white);
  border-radius: var(--r-sm); font-size: 0.875rem; font-weight: 700;
  transition: background var(--t-fast);
}
.mf-brand-toggle svg { transition: transform 0.25s; }
.mf-brand-toggle.is-open svg { transform: rotate(180deg); }
.mf-brand-list {
  display: none; grid-template-columns: 1fr 1fr;
  gap: 0.25rem; padding: 0.625rem 0; max-height: 260px; overflow-y: auto;
}
.mf-brand-list.is-open { display: grid; }
.mf-brand-item {
  display: flex; align-items: center; justify-content: space-between;
  padding: 0.375rem 0.625rem; border-radius: var(--r-sm);
  font-size: 0.8125rem; color: var(--gray-500);
  transition: background var(--t-fast), color var(--t-fast);
}
.mf-brand-item.is-active { color: var(--ink); font-weight: 600; background: var(--gray-50); }
.mf-brand-item:hover { background: var(--gray-50); color: var(--ink); }
.mf-brand-count { font-size: 0.75rem; color: var(--gray-300); }
@media (max-width: 768px) { .mobile-filters { display: block; } }

/* ── SHOP LAYOUT ─────────────────────────────────────────────── */
.shop-section { background: var(--off-white); }
.woo-layout { display: grid; grid-template-columns: 240px 1fr; gap: 2rem; }

/* Sidebar */
.shop-sidebar { position: sticky; top: 82px; align-self: start; }
.filter-widget { background: var(--white); border: 1px solid var(--gray-100); border-radius: var(--r-lg); padding: 1.25rem; margin-bottom: 1rem; }
.filter-widget__title {
  font-size: 0.6875rem; font-weight: 700; letter-spacing: 0.16em; text-transform: uppercase;
  color: var(--gray-400); margin-bottom: 1rem; padding-bottom: 0.75rem;
  border-bottom: 1px solid var(--gray-100);
}

.cat-filter-list { display: flex; flex-direction: column; gap: 0.125rem; }
.cat-filter-list li a {
  display: flex; align-items: center; justify-content: space-between;
  padding: 0.5rem 0.625rem; border-radius: var(--r-sm); font-size: 0.875rem;
  color: var(--gray-500); transition: background var(--t-fast), color var(--t-fast);
}
.cat-filter-list li.active > a,
.cat-filter-list li a:hover { background: var(--gray-50); color: var(--text); }
.cat-filter-list li.active > a { font-weight: 600; color: var(--ink); }
.cat-count { font-size: 0.75rem; color: var(--gray-300); }
.cat-filter-list li.active .cat-count { color: var(--gray-400); }

.brand-filter-list { display: flex; flex-direction: column; gap: 0.125rem; max-height: 260px; overflow-y: auto; }
.brand-filter-list::-webkit-scrollbar { width: 4px; }
.brand-filter-list::-webkit-scrollbar-track { background: transparent; }
.brand-filter-list::-webkit-scrollbar-thumb { background: var(--gray-200); border-radius: 4px; }
.brand-item a {
  display: flex; align-items: center; justify-content: space-between;
  padding: 0.4rem 0.625rem; border-radius: var(--r-sm); font-size: 0.8125rem;
  color: var(--gray-500); transition: background var(--t-fast), color var(--t-fast);
}
.brand-item.active > a { color: var(--ink); font-weight: 600; background: var(--gray-50); }
.brand-item a:hover { background: var(--gray-50); color: var(--text); }
.brand-toggle {
  width: 100%; text-align: left; padding: 0.5rem 0.625rem; margin-top: 0.5rem;
  font-size: 0.8125rem; font-weight: 600; color: var(--red);
  border-radius: var(--r-sm); transition: background var(--t-fast);
}
.brand-toggle:hover { background: var(--gray-50); }

/* Shop toolbar */
.shop-content {}
.shop-toolbar {
  display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 0.75rem;
  margin-bottom: 1.25rem;
}
.shop-current-cat { font-size: 0.875rem; color: var(--gray-400); }
.shop-current-cat a { color: var(--gray-400); transition: color var(--t-fast); }
.shop-current-cat a:hover { color: var(--text); }

/* WooCommerce order select */
.woocommerce-ordering select {
  padding: 0.5rem 0.875rem; border: 1px solid var(--gray-200); border-radius: var(--r-sm);
  background: var(--white); font-size: 0.875rem; color: var(--text); outline: none;
  transition: border-color var(--t-fast); cursor: pointer;
}
.woocommerce-ordering select:focus { border-color: var(--ink); }
.woocommerce-result-count { font-size: 0.875rem; color: var(--gray-400); }

/* ── PRODUCT CARDS ───────────────────────────────────────────── */
ul.products {
  display: grid !important;
  grid-template-columns: repeat(3,1fr) !important;
  gap: 1.25rem !important; list-style: none !important; margin: 0 !important;
}
ul.products::before, ul.products::after { display: none !important; }
li.product { list-style: none !important; width: auto !important; float: none !important; margin: 0 !important; }

.prod-card {
  background: var(--white); border-radius: var(--r-lg); overflow: hidden;
  border: 1px solid var(--gray-100); display: flex; flex-direction: column;
  transition: box-shadow var(--t), transform var(--t);
}
.prod-card:hover { box-shadow: var(--sh-md); transform: translateY(-3px); }

.prod-card__img-wrap {
  position: relative; overflow: hidden; aspect-ratio: 1;
  background: var(--white); display: block;
}
.prod-card__img {
  width: 100% !important; height: 100% !important; object-fit: contain !important;
  padding: 0.875rem; transition: transform 0.5s cubic-bezier(0.25,0.46,0.45,0.94);
}
.prod-card:hover .prod-card__img { transform: scale(1.05); }
.prod-card__no-img {
  width: 100%; height: 100%; display: flex; align-items: center; justify-content: center;
  color: var(--gray-300); aspect-ratio: 1;
}

.prod-badge {
  position: absolute; top: 0.625rem; left: 0.625rem; z-index: 1;
  font-size: 0.6875rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase;
  padding: 0.25rem 0.5rem; border-radius: var(--r-xs);
}
.prod-badge--sale { background: var(--red); color: white; }
.prod-badge--out  { background: var(--red); color: white; }
.prod-badge--low  { background: #D97706; color: white; }

.prod-card__body {
  padding: 0.875rem 1rem; flex: 1; display: flex; flex-direction: column; gap: 0.4rem;
  border-top: 1px solid var(--gray-100);
}
.prod-card__name {
  font-size: 0.8125rem; font-weight: 600; color: var(--text); line-height: 1.4;
  display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;
  transition: color var(--t-fast); max-width: none;
}
.prod-card__name:hover { color: var(--red); }
.prod-card__price { margin-top: auto; }
.prod-card__price .woocommerce-Price-amount { font-size: 0.9375rem; font-weight: 700; color: var(--ink); }
.prod-card__price del { color: var(--gray-300); margin-right: 0.25rem; }

/* Price gate */
.price-gate {
  display: inline-flex; align-items: center; gap: 0.375rem;
  font-size: 0.75rem; font-weight: 600; color: var(--gray-400);
  background: var(--gray-50); border: 1px solid var(--gray-100); border-radius: var(--r-sm);
  padding: 0.3rem 0.625rem; transition: background var(--t-fast), color var(--t-fast), border-color var(--t-fast);
}
.price-gate:hover { background: var(--ink); color: var(--white); border-color: var(--ink); }

.prod-card__cta { padding: 0 0.875rem 0.875rem; display: none; height: 3.125rem; overflow: hidden; }
body.logged-in .prod-card__cta { display: block; }

/* Base del botón — "Leer más" y fallback */
.prod-card__cta .button {
  display: flex !important; align-items: center; justify-content: center; gap: 0.375rem;
  width: 100%; height: 2.25rem; padding: 0 1rem; margin: 0 !important;
  background: transparent; color: var(--ink);
  border: 1.5px solid var(--gray-200);
  border-radius: var(--r-sm) !important; font-size: 1rem !important; font-weight: 700 !important; letter-spacing: normal !important;
  transition: background var(--t-fast), color var(--t-fast), border-color var(--t-fast), box-shadow var(--t-fast), transform var(--t-fast);
  position: relative; overflow: hidden;
}
.prod-card__cta .button:hover {
  background: var(--ink); color: var(--white); border-color: var(--ink);
  transform: translateY(-1px); box-shadow: 0 3px 10px rgba(8,17,30,.15);
}
.prod-card__cta .button:active { transform: none; box-shadow: none; }

/* WC agrega un link "Ver carrito" tras el AJAX — lo ocultamos, el stepper toma su lugar */
.prod-card__cta a.added_to_cart { display: none; }

/* "Agregar al carrito" — azul oscuro, centrado, sin icono
   Especificidad 0,2,1 (igual a woocommerce.css) + cascade position → ganamos */
.prod-card__cta a.add_to_cart_button {
  display: flex !important; align-items: center; justify-content: center; text-align: center;
  height: 2.25rem; padding-top: 0; padding-bottom: 0; margin: 0 !important;
  border-radius: var(--r-sm) !important;
  background: var(--ink-2); color: var(--white); border-color: var(--ink-2);
}
.prod-card__cta a.add_to_cart_button::after { display: none !important; }
.prod-card__cta a.add_to_cart_button::before { display: none !important; }
/* Estado loading: idéntico al normal — sin gris, sin desplazamiento de texto */
.prod-card__cta a.add_to_cart_button.loading {
  background: var(--ink-2) !important; color: var(--white) !important;
  border-color: var(--ink-2) !important; opacity: 1 !important; cursor: wait;
  padding: 0 1rem !important; /* WC agrega padding-right:2.618em que desplaza el texto */
}
.prod-card__cta a.add_to_cart_button.loading::after,
.prod-card__cta a.add_to_cart_button.loading::before { display: none !important; }
.prod-card__cta a.add_to_cart_button:hover {
  background: var(--ink); border-color: var(--ink);
  box-shadow: 0 4px 14px rgba(8,17,30,.25);
  transform: none;
}

/* Pagination */
.woocommerce-pagination { margin-top: 2.5rem; display: flex; justify-content: center; }
.woocommerce-pagination ul { display: flex; gap: 0.375rem; }
.woocommerce-pagination a,
.woocommerce-pagination .current {
  display: flex; align-items: center; justify-content: center;
  min-width: 36px; height: 36px; padding-inline: 0.625rem;
  border-radius: var(--r-sm); font-size: 0.875rem; font-weight: 500;
  border: 1px solid var(--gray-200); color: var(--text);
  transition: background var(--t-fast), color var(--t-fast), border-color var(--t-fast);
}
.woocommerce-pagination a:hover { background: var(--gray-50); color: var(--ink); }
.woocommerce-pagination .current { background: var(--ink); color: var(--white); border-color: var(--ink); }

/* Shop stats bar */
.shop-stats-bar { background: var(--ink); }
.shop-stats-bar__grid {
  display: grid; grid-template-columns: repeat(5,1fr); padding-block: 1.375rem;
}
.shop-stat {
  text-align: center; padding-inline: 1rem;
  border-right: 1px solid var(--ink-border);
}
.shop-stat:last-child { border-right: none; }
.shop-stat strong { display: block; font-size: 1.25rem; font-weight: 800; color: var(--white); letter-spacing: -0.03em; }
.shop-stat span   { display: block; font-size: 0.75rem; color: rgba(255,255,255,.38); margin-top: 0.125rem; }

/* ── SINGLE PRODUCT ──────────────────────────────────────────── */
.spg-breadcrumb { background: var(--white); border-bottom: 1px solid var(--gray-100); padding-block: 0.875rem; }
.spg-breadcrumb__nav {
  display: flex; align-items: center; flex-wrap: wrap; gap: 0.375rem;
  font-size: 0.8125rem; color: var(--gray-400);
}
.spg-breadcrumb__nav a { color: var(--gray-400); transition: color var(--t-fast); }
.spg-breadcrumb__nav a:hover { color: var(--text); }
.spg-breadcrumb__nav svg { color: var(--gray-200); flex-shrink: 0; }
.spg-breadcrumb__nav > span { color: var(--text); font-weight: 500; }

.single-product-wrap { background: var(--off-white); padding-block: 0 clamp(3rem,5vw,5rem); }
.single-product-wrap > .container { padding-block: 2.25rem; }
.single-product-grid { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(2rem,5vw,5rem); align-items: start; }

.spg-gallery__main {
  aspect-ratio: 1; background: var(--white); border: 1px solid var(--gray-100);
  border-radius: var(--r-xl); overflow: hidden;
  display: flex; align-items: center; justify-content: center; margin-bottom: 0.75rem;
}
.spg-gallery__main img { width: 100%; height: 100%; object-fit: contain; padding: 1.75rem; }
.spg-gallery__thumbs { display: flex; gap: 0.5rem; flex-wrap: wrap; }
.spg-gallery__thumb {
  width: 68px; height: 68px; border: 2px solid var(--gray-100); border-radius: var(--r);
  overflow: hidden; cursor: pointer; background: var(--white);
  display: flex; align-items: center; justify-content: center; padding: 0.25rem;
  transition: border-color var(--t-fast);
}
.spg-gallery__thumb:hover, .spg-gallery__thumb.active { border-color: var(--ink); }
.spg-gallery__thumb img { width: 100%; height: 100%; object-fit: contain; }

/* Info panel */
.spg-info { background: var(--white); border: 1px solid var(--gray-100); border-radius: var(--r-xl); padding: clamp(1.5rem,3vw,2.25rem); }
.spg-info__brand { font-size: 0.6875rem; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; color: var(--red); margin-bottom: 0.5rem; }
.spg-info__title { font-size: clamp(1.25rem,2.5vw,1.875rem); font-weight: 800; letter-spacing: -0.03em; line-height: 1.2; color: var(--ink); margin-bottom: 1.25rem; }
.spg-info__meta {
  display: flex; flex-direction: column; gap: 0.5rem;
  padding: 0.875rem 1rem; background: var(--gray-50); border: 1px solid var(--gray-100);
  border-radius: var(--r-lg); margin-bottom: 1.25rem;
}
.spg-meta-row { display: flex; align-items: baseline; gap: 0.75rem; font-size: 0.875rem; }
.spg-meta-key { font-weight: 600; color: var(--gray-400); width: 78px; flex-shrink: 0; }
.spg-meta-val { color: var(--text); }
.spg-meta-val a { color: var(--red); }

.spg-stock {
  display: inline-flex; align-items: center; gap: 0.4rem;
  font-size: 0.8125rem; font-weight: 600; padding: 0.3rem 0.75rem;
  border-radius: var(--r-full); margin-bottom: 1.25rem;
}
.spg-stock--instock    { background: rgba(16,185,129,.10); color: #065F46; }
.spg-stock--onbackorder { background: rgba(245,158,11,.10); color: #92400E; }
.spg-stock--outofstock  { background: var(--gray-100); color: var(--gray-500); }

.spg-price { font-size: 1.625rem; font-weight: 800; color: var(--ink); margin-bottom: 1.25rem; letter-spacing: -0.03em; }
.spg-price del { color: var(--gray-300); font-size: 1.25rem; margin-right: 0.375rem; }

.spg-price-gate {
  padding: 1.375rem 1.5rem; background: var(--gray-50); border: 1px solid var(--gray-100);
  border-radius: var(--r-lg); margin-bottom: 1.25rem;
}
.spg-price-gate__icon {
  width: 40px; height: 40px; background: var(--gray-100); border-radius: var(--r);
  display: flex; align-items: center; justify-content: center; color: var(--gray-400); margin-bottom: 0.875rem;
}
.spg-price-gate__title { font-size: 0.9375rem; font-weight: 700; color: var(--ink); margin-bottom: 0.3rem; }
.spg-price-gate__desc  { font-size: 0.8125rem; color: var(--gray-500); margin-bottom: 1rem; max-width: none; }
.spg-price-gate__actions { display: flex; gap: 0.625rem; flex-wrap: wrap; }

.spg-desc { border-top: 1px solid var(--gray-100); padding-top: 1.375rem; margin-top: 1.375rem; }
.spg-desc p { font-size: 0.9375rem; color: var(--gray-500); line-height: 1.75; max-width: none; }

/* Single product WooCommerce cart */
.spg-info .single_add_to_cart_button {
  display: flex !important; align-items: center; justify-content: center; width: 100%;
  padding: 0.875rem 1.75rem !important; background: var(--ink) !important; color: var(--white) !important;
  border-radius: var(--r-sm) !important; font-size: 1rem !important; font-weight: 700 !important;
  transition: background var(--t-fast); margin-top: 0.5rem; border: none !important;
  text-transform: none !important; letter-spacing: normal !important; height: auto !important;
}
.spg-info .single_add_to_cart_button:hover { background: var(--ink-2) !important; }
.spg-info .single_add_to_cart_button:disabled,
.spg-info .single_add_to_cart_button.disabled { opacity: .6 !important; cursor: not-allowed; }
.spg-info .single_add_to_cart_button.added-feedback { background: var(--red) !important; }
.spg-info .quantity input { padding: 0.625rem 0.75rem; border: 1px solid var(--gray-200); border-radius: var(--r-sm); width: 72px; text-align: center; font-size: 0.9375rem; color: var(--text); }

/* Related */
.related-section { background: var(--off-white); padding-block: clamp(2.5rem,4vw,4rem); }
.related-section__title { font-size: 1.375rem; font-weight: 800; letter-spacing: -0.03em; color: var(--ink); margin-bottom: 1.75rem; }
.related-section ul.products { grid-template-columns: repeat(4,1fr) !important; }

/* WooCommerce notices */
.woocommerce-error   { background:#FEF2F2; color:#991B1B; border:1px solid #FECACA; padding:.875rem 1.25rem; border-radius:var(--r); font-size:.9375rem; margin-bottom:1.25rem; }
.woocommerce-info    { background:var(--gray-50); color:var(--text); border:1px solid var(--gray-200); padding:.875rem 1.25rem; border-radius:var(--r); font-size:.9375rem; margin-bottom:1.25rem; }
.woocommerce-message { background:#F0FDF4; color:#166534; border:1px solid #BBF7D0; padding:.875rem 1.25rem; border-radius:var(--r); font-size:.9375rem; margin-bottom:1.25rem; }
.woocommerce-breadcrumb { font-size:.875rem; color:var(--gray-400); padding-block:1rem; }
.woocommerce-breadcrumb a { transition:color var(--t-fast); }
.woocommerce-breadcrumb a:hover { color:var(--text); }
.woocommerce-breadcrumb .sep { margin-inline:.5rem; }

/* ── SCROLL-DRIVEN REVEALS ───────────────────────────────────── */
.reveal {
  opacity: 1; transform: none;
}
@supports (animation-timeline: view()) {
  .reveal {
    animation: sigma-reveal linear both;
    animation-timeline: view();
    animation-range: entry 0% entry 28%;
  }
  .reveal-d1 { animation-delay: 0ms; }
  .reveal-d2 { animation-delay: 80ms; }
  .reveal-d3 { animation-delay: 160ms; }
}
@keyframes sigma-reveal {
  from { opacity: 0; transform: translateY(22px); }
  to   { opacity: 1; transform: translateY(0); }
}

/* ── CUSTOM SCROLLBAR ────────────────────────────────────────── */
::-webkit-scrollbar       { width: 7px; height: 7px; }
::-webkit-scrollbar-track { background: var(--off-white); }
::-webkit-scrollbar-thumb { background: var(--gray-200); border-radius: 8px; }
::-webkit-scrollbar-thumb:hover { background: var(--gray-300); }

/* Selection */
::selection { background: var(--ink); color: var(--white); }

/* Focus ring */
:focus-visible { outline: 2px solid var(--red); outline-offset: 3px; }

/* ── RESPONSIVE ──────────────────────────────────────────────── */
@media (max-width: 1200px) {
  .cats-grid { grid-template-columns: 1.5fr 1fr 1fr; grid-template-rows: 240px 240px; }
  .metrics-strip__grid { grid-template-columns: repeat(2,1fr); }
  .metric-item:nth-child(2) { border-right: none; }
  .metric-item:nth-child(3) { border-top: 1px solid var(--ink-border); }
  .metric-item:nth-child(4) { border-right: none; border-top: 1px solid var(--ink-border); }
}

@media (max-width: 1024px) {
  .hero__inner { grid-template-columns: 1fr; }
  .hero__showcase { display: none; }
  .hero__content { max-width: 100%; }
  ul.products { grid-template-columns: repeat(3,1fr) !important; }
  .woo-layout { grid-template-columns: 200px 1fr; }
  .site-footer__grid { grid-template-columns: 1fr 1fr; gap: 2.5rem; }
  .why-section__inner { grid-template-columns: 1fr; }
  .why-section__visual { max-width: 480px; }
  .about-section__inner { grid-template-columns: 1fr; }
  .about-section__img { max-width: 480px; }
  .single-product-grid { grid-template-columns: 1fr; }
  .features-bar__grid { grid-template-columns: repeat(2,1fr); }
  .feature-item:nth-child(2n) { border-right: none; }
  .feature-item:nth-child(3),
  .feature-item:nth-child(4) { border-top: 1px solid var(--gray-100); }
}

@media (max-width: 768px) {
  .hdr-hamburger { display: flex; }
  .site-nav { display: none; }
  .site-nav.is-open {
    display: block;
    position: fixed; top: 66px; left: 0; right: 0; bottom: 0;
    background: var(--ink); z-index: 99;
    overflow-y: auto; padding: 0.5rem 0 2rem;
  }
  .site-nav.is-open .site-nav__list {
    flex-direction: column; gap: 0; padding: 0;
  }
  .site-nav.is-open .site-nav__list > li > a {
    padding: 1rem 1.5rem; font-size: 1.0625rem;
    border-bottom: 1px solid var(--ink-border);
    border-radius: 0;
  }
  .cats-grid { grid-template-columns: 1fr 1fr; grid-template-rows: 200px 200px 200px; }
  .cats-grid .cat-tile:first-child { grid-row: 1; }
  .process-grid { grid-template-columns: 1fr; }
  .process-grid::before { display: none; }
  .shop-stats-bar__grid { grid-template-columns: repeat(3,1fr); }
  .woo-layout { grid-template-columns: 1fr; }
  .shop-sidebar { display: none; }
  ul.products { grid-template-columns: repeat(2,1fr) !important; }
  .site-footer__grid { grid-template-columns: 1fr 1fr; gap: 1.75rem 1.25rem; }
  .site-footer__desc { max-width: none; }
}

@media (max-width: 480px) {
  .hero__title { letter-spacing: -0.035em; }
  .hero__actions .btn { width: 100%; justify-content: center; }
  .hero__actions { flex-direction: column; }
  .cats-grid { grid-template-columns: 1fr; grid-template-rows: repeat(5,180px); }
  .cats-grid .cat-tile:first-child { grid-row: 1; }
  .metrics-strip__grid { grid-template-columns: 1fr 1fr; }
  .shop-stats-bar__grid { grid-template-columns: repeat(2,1fr); }
  ul.products { grid-template-columns: repeat(2,1fr) !important; gap: 0.625rem !important; }
  .prod-card__cta .button,
  .prod-card__cta a.add_to_cart_button,
  .cart-stepper__qty { font-size: 0.75rem !important; }
}

/* ═══════════════════════════════════════════════════════════════
   SOBRE NOSOTROS
   ═══════════════════════════════════════════════════════════════ */

/* ── Shared label tag ────────────────────────────────────── */
.sn-label {
  display: inline-block;
  font-size: 0.6875rem; font-weight: 700; letter-spacing: 0.18em; text-transform: uppercase;
  color: var(--red); border: 1px solid rgba(200,49,58,.35);
  padding: 0.25rem 0.75rem; border-radius: var(--r-full);
  margin-bottom: 1rem;
}

/* ── Section headings ────────────────────────────────────── */
.sn-section-hd { text-align: center; margin-bottom: clamp(2.5rem,4vw,4rem); }
.sn-section-title {
  font-size: clamp(1.75rem,3.5vw,3rem); font-weight: 800;
  letter-spacing: -0.035em; line-height: 1.1;
  color: var(--white); margin-top: 0.5rem;
}

/* ── HERO ────────────────────────────────────────────────── */
.sn-hero {
  position: relative; background: var(--ink); overflow: hidden;
  min-height: clamp(520px, 80vh, 780px);
  display: flex; flex-direction: column;
}
.sn-hero__canvas {
  position: absolute; inset: 0; z-index: 0; pointer-events: none;
}
.sn-hero__grid {
  position: absolute; inset: 0;
  background-image: radial-gradient(circle, rgba(255,255,255,.05) 1px, transparent 1px);
  background-size: 36px 36px;
  mask-image: radial-gradient(ellipse 80% 70% at 60% 50%, black 20%, transparent 80%);
}
.sn-hero__glow-svg { position: absolute; inset: 0; width: 100%; height: 100%; }

.sn-hero__inner {
  position: relative; z-index: 1;
  display: grid; grid-template-columns: 1fr auto;
  align-items: center; gap: 2rem;
  padding-block: clamp(5rem,10vh,8rem);
  flex: 1;
}
.sn-hero__content { max-width: 640px; }

.sn-hero__eyebrow {
  display: inline-block;
  font-size: 0.6875rem; font-weight: 700; letter-spacing: 0.2em; text-transform: uppercase;
  color: var(--red); border: 1px solid rgba(200,49,58,.35);
  padding: 0.25rem 0.875rem; border-radius: var(--r-full); margin-bottom: 1.5rem;
}
.sn-hero__title {
  font-size: clamp(2.75rem,6vw,5.5rem); font-weight: 900;
  letter-spacing: -0.045em; line-height: 1.0;
  color: var(--white); margin-bottom: 1.5rem;
}
.sn-hero__accent {
  font-style: italic;
  background: linear-gradient(90deg, var(--red) 0%, var(--gold) 100%);
  -webkit-background-clip: text; -webkit-text-fill-color: transparent;
  background-clip: text;
}
.sn-hero__desc {
  font-size: clamp(1rem,1.5vw,1.125rem); line-height: 1.7;
  color: rgba(255,255,255,.6); max-width: 52ch; margin-bottom: 2rem;
}
.sn-hero__actions { display: flex; gap: 0.75rem; flex-wrap: wrap; }

.sn-hero__watermark {
  font-size: clamp(8rem,18vw,16rem); font-weight: 900;
  letter-spacing: -0.06em; line-height: 1;
  color: rgba(255,255,255,.04);
  user-select: none; flex-shrink: 0; align-self: center;
  margin-right: clamp(-2rem, -4vw, -5rem);
}

.sn-hero__edge {
  position: relative; z-index: 1;
  height: 64px; flex-shrink: 0;
  background: var(--ink);
  clip-path: polygon(0 0, 100% 0, 100% 0, 0 100%);
  margin-bottom: -1px;
}

/* ── STATS BAR ───────────────────────────────────────────── */
.sn-stats { background: var(--ink-2); border-top: 1px solid var(--ink-border); }
.sn-stats__grid {
  display: grid; grid-template-columns: repeat(4,1fr);
}
.sn-stat {
  padding: clamp(1.75rem,3vw,2.5rem) clamp(1rem,2vw,2rem);
  border-right: 1px solid var(--ink-border);
  text-align: center;
}
.sn-stat:last-child { border-right: none; }
.sn-stat__num {
  display: block;
  font-size: clamp(2rem,4vw,3.25rem); font-weight: 900;
  letter-spacing: -0.05em; line-height: 1;
  color: var(--white); margin-bottom: 0.5rem;
}
.sn-stat__lbl {
  font-size: 0.75rem; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase;
  color: rgba(255,255,255,.45);
}

/* ── QUIÉNES SOMOS ───────────────────────────────────────── */
.sn-quienes { background: var(--ink); }
.sn-quienes__inner {
  display: grid; grid-template-columns: 1fr 1fr; gap: clamp(3rem,6vw,6rem);
  align-items: center;
}
.sn-quienes__title {
  font-size: clamp(1.75rem,3vw,2.75rem); font-weight: 800;
  letter-spacing: -0.035em; line-height: 1.1;
  color: var(--white); margin-bottom: 1.25rem;
}
.sn-quienes__body {
  font-size: 0.9375rem; line-height: 1.75;
  color: rgba(255,255,255,.6); margin-bottom: 0.875rem; max-width: 60ch;
}
.sn-quienes__badge {
  display: inline-flex; align-items: center; gap: 0.625rem;
  font-size: 0.8125rem; font-weight: 600;
  color: rgba(255,255,255,.8);
  background: rgba(200,49,58,.12); border: 1px solid rgba(200,49,58,.25);
  padding: 0.5rem 1rem; border-radius: var(--r-full);
  margin-top: 1.5rem;
}
.sn-quienes__badge svg { color: var(--red); flex-shrink: 0; }

.sn-quienes__img-frame {
  position: relative; border-radius: var(--r-lg);
  overflow: hidden;
  border: 1px solid var(--ink-border-2);
  box-shadow: 0 24px 80px rgba(0,0,0,.5);
}
.sn-quienes__img { width: 100%; height: auto; aspect-ratio: 4/3; object-fit: cover; }
.sn-quienes__img-glow {
  position: absolute; inset: 0; pointer-events: none;
  background: linear-gradient(135deg, rgba(200,49,58,.15) 0%, transparent 60%);
}

.sn-quienes__img-tag {
  display: flex; flex-direction: column;
  margin-top: 1rem; padding-left: 0.25rem;
}
.sn-quienes__img-tag strong {
  font-size: 0.875rem; font-weight: 700; color: var(--white);
}
.sn-quienes__img-tag span {
  font-size: 0.75rem; color: rgba(255,255,255,.4);
}

/* ── TIMELINE ────────────────────────────────────────────── */
.sn-tl {
  position: relative; max-width: 840px; margin-inline: auto;
  padding-left: clamp(2rem,4vw,4rem);
}
.sn-tl::before {
  content: ''; position: absolute;
  left: 0; top: 12px; bottom: 12px; width: 1px;
  background: linear-gradient(to bottom, transparent, var(--red) 15%, var(--red) 85%, transparent);
}

.sn-tl-item {
  position: relative; display: grid;
  grid-template-columns: 5rem 1fr; gap: 1.5rem;
  margin-bottom: 3rem; align-items: start;
}
.sn-tl-item:last-child { margin-bottom: 0; }

.sn-tl-item__year {
  font-size: 0.8125rem; font-weight: 800; letter-spacing: 0.06em;
  color: var(--red); padding-top: 1.25rem;
  text-align: right;
}

.sn-tl-item__dot {
  position: absolute; left: calc(-1 * clamp(2rem,4vw,4rem));
  top: 1.125rem; transform: translateX(-50%);
  width: 11px; height: 11px; border-radius: 50%;
  background: var(--red); border: 2px solid var(--ink-2);
  box-shadow: 0 0 0 3px rgba(200,49,58,.2);
}
.sn-tl-item__dot--current {
  background: var(--gold);
  box-shadow: 0 0 0 3px rgba(232,184,75,.25), 0 0 12px rgba(232,184,75,.4);
}

.sn-tl-item__card {
  background: var(--ink-3); border: 1px solid var(--ink-border-2);
  border-radius: var(--r-lg); padding: 1.25rem 1.5rem;
  transition: border-color var(--t), box-shadow var(--t);
}
.sn-tl-item__card:hover {
  border-color: rgba(255,255,255,.2);
  box-shadow: 0 8px 32px rgba(0,0,0,.3);
}
.sn-tl-item__card--current {
  border-color: rgba(232,184,75,.25);
}
.sn-tl-item__card--current:hover {
  border-color: rgba(232,184,75,.4);
}
.sn-tl-item__ttl {
  font-size: 1rem; font-weight: 700; color: var(--white);
  margin-bottom: 0.5rem;
}
.sn-tl-item__body {
  font-size: 0.875rem; line-height: 1.7;
  color: rgba(255,255,255,.55); max-width: none;
}

/* ── VISIÓN / MISIÓN ─────────────────────────────────────── */
.sn-vm { background: var(--ink); }
.sn-vm__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1.5rem; }

.sn-vm-card {
  position: relative; overflow: hidden;
  background: var(--ink-2); border: 1px solid var(--ink-border-2);
  border-radius: var(--r-xl); padding: clamp(1.75rem,3vw,2.5rem);
  transition: border-color var(--t), transform var(--t);
}
.sn-vm-card:hover {
  border-color: rgba(255,255,255,.18);
  transform: translateY(-3px);
}
.sn-vm-card__icon {
  width: 48px; height: 48px; border-radius: var(--r);
  background: rgba(200,49,58,.12); border: 1px solid rgba(200,49,58,.2);
  display: flex; align-items: center; justify-content: center;
  color: var(--red); margin-bottom: 1.25rem;
}
.sn-vm-card__ttl {
  font-size: 1.375rem; font-weight: 800;
  letter-spacing: -0.025em; color: var(--white);
  margin-bottom: 0.875rem;
}
.sn-vm-card__body {
  font-size: 0.9375rem; line-height: 1.75;
  color: rgba(255,255,255,.6); max-width: none;
}
.sn-vm-card__accent {
  position: absolute; bottom: -60px; right: -60px;
  width: 160px; height: 160px; border-radius: 50%;
  background: radial-gradient(circle, rgba(200,49,58,.12) 0%, transparent 70%);
  pointer-events: none;
}
.sn-vm-card__accent--gold {
  background: radial-gradient(circle, rgba(232,184,75,.10) 0%, transparent 70%);
}

/* ── VALORES ─────────────────────────────────────────────── */
.sn-valores { background: var(--ink-2); }
.sn-valores__grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 1px; }

.sn-valor {
  background: var(--ink-2); border: 1px solid var(--ink-border);
  padding: clamp(1.5rem,2.5vw,2rem);
  transition: background var(--t), border-color var(--t);
  position: relative; overflow: hidden;
}
.sn-valor:hover { background: var(--ink-3); border-color: var(--ink-border-2); }

.sn-valor__icon {
  width: 44px; height: 44px; border-radius: var(--r-sm);
  display: flex; align-items: center; justify-content: center;
  margin-bottom: 1rem;
}
.sn-valor__icon--red {
  background: rgba(200,49,58,.12); color: var(--red);
  border: 1px solid rgba(200,49,58,.2);
}
.sn-valor__icon--gold {
  background: rgba(232,184,75,.10); color: var(--gold);
  border: 1px solid rgba(232,184,75,.2);
}

.sn-valor__name {
  font-size: 1rem; font-weight: 700; color: var(--white);
  margin-bottom: 0.5rem;
}
.sn-valor__desc {
  font-size: 0.875rem; line-height: 1.7;
  color: rgba(255,255,255,.5); max-width: none;
}

/* ── WEITNAUER ───────────────────────────────────────────── */
.sn-weitnauer {
  position: relative; background: var(--ink-3); overflow: hidden;
  border-top: 1px solid var(--ink-border); border-bottom: 1px solid var(--ink-border);
}
.sn-weitnauer__bg { position: absolute; inset: 0; pointer-events: none; }
.sn-weitnauer__glow { width: 100%; height: 100%; }

.sn-weitnauer__inner {
  position: relative; z-index: 1;
  display: grid; grid-template-columns: 1fr auto;
  gap: clamp(3rem,5vw,6rem); align-items: center;
}
.sn-weitnauer__title {
  font-size: clamp(1.75rem,3.5vw,3rem); font-weight: 800;
  letter-spacing: -0.035em; line-height: 1.1;
  color: var(--white); margin-block: 0.5rem 1.25rem;
}
.sn-weitnauer__body {
  font-size: 0.9375rem; line-height: 1.75;
  color: rgba(255,255,255,.6); max-width: 56ch; margin-bottom: 2rem;
}

.sn-weitnauer__badge-ring {
  display: flex; flex-direction: column; align-items: center; gap: 1rem;
  flex-shrink: 0;
}
.sn-weitnauer__badge-text {
  display: flex; flex-direction: column; align-items: center; text-align: center;
}
.sn-weitnauer__badge-text strong {
  font-size: 2rem; font-weight: 900; color: var(--white); letter-spacing: -0.04em;
}
.sn-weitnauer__badge-text span {
  font-size: 0.75rem; font-weight: 600; letter-spacing: 0.08em;
  text-transform: uppercase; color: rgba(255,255,255,.45);
}

/* ═══════════════════════════════════════════════════════════════
   PRESENCIA
   ═══════════════════════════════════════════════════════════════ */

/* ── Hero ────────────────────────────────────────────────── */
.pr-hero {
  position: relative; background: var(--ink); overflow: hidden;
  min-height: clamp(380px, 55vh, 560px);
  display: flex; flex-direction: column; justify-content: center;
}
.pr-hero__bg { position: absolute; inset: 0; z-index: 0; pointer-events: none; }
.pr-hero__grid {
  position: absolute; inset: 0;
  background-image: radial-gradient(circle, rgba(255,255,255,.05) 1px, transparent 1px);
  background-size: 36px 36px;
  mask-image: radial-gradient(ellipse 80% 70% at 30% 50%, black 20%, transparent 80%);
}
.pr-hero__glow { position: absolute; inset: 0; width: 100%; height: 100%; }
.pr-hero__country {
  position: absolute; right: 5%; top: 50%; transform: translateY(-50%);
  width: clamp(180px,28vw,320px); height: auto;
  opacity: 0.5;
}
.pr-hero__inner { position: relative; z-index: 1; padding-block: clamp(4rem,8vh,6rem); }
.pr-hero__title {
  font-size: clamp(2.5rem,5.5vw,5rem); font-weight: 900;
  letter-spacing: -0.045em; line-height: 1.3;
  color: var(--white); margin-block: 1rem 1.25rem;
}
.pr-hero__desc {
  font-size: clamp(1rem,1.4vw,1.125rem); line-height: 1.7;
  color: rgba(255,255,255,.6); max-width: 52ch;
}

/* ── Map section ─────────────────────────────────────────── */
.pr-mapa { background: var(--ink); }
.pr-mapa__subtitle {
  font-size: 0.9375rem; color: rgba(255,255,255,.5);
  max-width: 52ch; margin-inline: auto; margin-top: 0.5rem;
}
.pr-mapa__layout {
  display: grid; grid-template-columns: 320px 1fr;
  gap: 3rem; align-items: stretch;
}

/* Dept tabs panel */
.pr-dep-panel { display: flex; flex-direction: column; gap: 1.25rem; }
.pr-dep-tabs {
  display: flex; flex-direction: column; gap: 2px;
  background: var(--ink-2); border: 1px solid var(--ink-border);
  border-radius: var(--r-lg); overflow: hidden;
}
.pr-dep-tab {
  display: flex; align-items: center; gap: 0.625rem;
  padding: 0.625rem 1rem; text-align: left;
  font-size: 0.8125rem; font-weight: 500; color: rgba(255,255,255,.6);
  background: transparent; border: none; cursor: pointer;
  transition: background var(--t-fast), color var(--t-fast);
  border-bottom: 1px solid var(--ink-border);
  font-family: inherit;
}
.pr-dep-tab:last-child { border-bottom: none; }
.pr-dep-tab:hover { background: var(--ink-3); color: var(--white); }
.pr-dep-tab.is-active {
  background: rgba(200,49,58,.12); color: var(--white);
}
.pr-dep-tab.is-active .pr-dep-tab__dot { background: var(--red); }
.pr-dep-tab__dot {
  width: 6px; height: 6px; border-radius: 50%;
  background: rgba(255,255,255,.25); flex-shrink: 0;
  transition: background var(--t-fast);
}
.pr-dep-tab__count {
  margin-left: auto; font-size: 0.6875rem; font-weight: 700;
  color: rgba(255,255,255,.35);
  background: rgba(255,255,255,.06); border-radius: var(--r-full);
  padding: 0.1rem 0.45rem;
}

/* Dept info panel */
.pr-dep-info {
  background: var(--ink-2); border: 1px solid var(--ink-border-2);
  border-radius: var(--r-lg); padding: 1.25rem;
  min-height: 120px;
}
.pr-dep-info__empty {
  display: flex; flex-direction: column; align-items: center;
  justify-content: center; gap: 0.625rem;
  padding: 1.5rem; color: rgba(255,255,255,.3);
  font-size: 0.8125rem; text-align: center;
}
.pr-dep-detail__name {
  font-size: 1rem; font-weight: 700; color: var(--white);
  margin-bottom: 0.75rem;
  padding-bottom: 0.625rem; border-bottom: 1px solid var(--ink-border);
}
.pr-dep-detail__list {
  display: flex; flex-direction: column; gap: 0.375rem;
}
.pr-dep-detail__list li {
  display: flex; align-items: center; gap: 0.5rem;
  font-size: 0.8125rem; color: rgba(255,255,255,.65);
}
.pr-dep-detail__list svg { color: var(--red); flex-shrink: 0; }

/* SVG map */
.pr-mapa__svg-wrap { display: flex; flex-direction: column; align-items: center; justify-content: center; }
.pr-mapa__svg {
  width: 100%; height: auto;
  filter: drop-shadow(0 8px 40px rgba(0,0,0,.5));
}
.pr-mapa__hint {
  font-size: 0.75rem; color: rgba(255,255,255,.35);
  margin-top: 0.875rem; text-align: center;
}

.pr-py-outline {
  fill: var(--ink-2); stroke: var(--ink-border-2); stroke-width: 1.5;
}
.pr-py-river {
  stroke: rgba(100,160,255,.25); stroke-width: 1.5; stroke-dasharray: 5 4;
}
.pr-dep-area {
  fill: url(#dep-fill); stroke: rgba(255,255,255,.08); stroke-width: 0.8;
  cursor: pointer; transition: fill 180ms ease; outline: none;
}
.pr-dep-area:hover { fill: rgba(30,58,98,.9); stroke: rgba(255,255,255,.2); }
.pr-dep-area.is-active { fill: url(#dep-fill-active); stroke: rgba(200,49,58,.5); stroke-width: 1.2; }

.pr-city-dot {
  fill: rgba(255,255,255,.9); stroke: var(--ink); stroke-width: 1;
  transition: r 180ms ease;
}
.pr-city-dot--capital { fill: var(--gold); r: 5; }
.pr-dep-area.is-active ~ .pr-city-dot { fill: var(--white); }

/* ── Department cards grid ───────────────────────────────── */
.pr-deps { background: var(--ink-2); }
.pr-deps__grid {
  display: grid; grid-template-columns: repeat(4,1fr); gap: 1px;
}
.pr-dep-card {
  background: var(--ink-2); border: 1px solid var(--ink-border);
  padding: 1.25rem 1.375rem;
  transition: background var(--t), border-color var(--t);
}
.pr-dep-card:hover { background: var(--ink-3); border-color: var(--ink-border-2); }
.pr-dep-card__hd {
  display: flex; align-items: center; gap: 0.5rem;
  margin-bottom: 0.75rem; padding-bottom: 0.625rem;
  border-bottom: 1px solid var(--ink-border);
  color: var(--red);
}
.pr-dep-card__name {
  font-size: 0.8125rem; font-weight: 700; color: var(--white); flex: 1;
}
.pr-dep-card__count {
  font-size: 0.6875rem; font-weight: 700; color: var(--red);
  background: rgba(200,49,58,.1); border: 1px solid rgba(200,49,58,.2);
  border-radius: var(--r-full); padding: 0.1rem 0.45rem;
}
.pr-dep-card__list { display: flex; flex-direction: column; gap: 0.3rem; }
.pr-dep-card__list li {
  font-size: 0.75rem; color: rgba(255,255,255,.5);
  padding-left: 0.625rem;
  border-left: 2px solid var(--ink-border-2);
}

/* ── CTA ─────────────────────────────────────────────────── */
.pr-cta {
  position: relative; background: var(--ink-3); overflow: hidden;
  border-top: 1px solid var(--ink-border);
  padding-block: clamp(3rem,5vw,4.5rem);
}
.pr-cta__bg { position: absolute; inset: 0; pointer-events: none; }
.pr-cta__bg svg { width: 100%; height: 100%; }
.pr-cta__inner {
  position: relative; z-index: 1;
  display: flex; align-items: center; justify-content: space-between;
  gap: 2rem; flex-wrap: wrap;
}
.pr-cta__title {
  font-size: clamp(1.25rem,2.5vw,2rem); font-weight: 800;
  letter-spacing: -0.03em; color: var(--white); margin-bottom: 0.5rem;
}
.pr-cta__desc { font-size: 0.9375rem; color: rgba(255,255,255,.6); max-width: 50ch; }

/* ── Responsive ──────────────────────────────────────────── */
@media (max-width: 1100px) {
  .pr-mapa__layout { grid-template-columns: 280px 1fr; gap: 2rem; }
  .pr-deps__grid { grid-template-columns: repeat(3,1fr); }
}
@media (max-width: 900px) {
  .pr-mapa__layout { grid-template-columns: 1fr; }
  .pr-mapa__svg-wrap { order: -1; }
  .pr-dep-tabs { flex-direction: row; flex-wrap: wrap; overflow: visible; }
  .pr-dep-tab { border-bottom: none; border-radius: var(--r-sm); border: 1px solid var(--ink-border); flex: none; }
  .pr-deps__grid { grid-template-columns: repeat(2,1fr); }
}
@media (max-width: 600px) {
  .pr-cta__inner { flex-direction: column; align-items: flex-start; }
  .pr-deps__grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 480px) {
  .pr-deps__grid { grid-template-columns: 1fr; }
}

/* ── RESPONSIVE (Sobre Nosotros) ─────────────────────────── */
@media (max-width: 1024px) {
  .sn-hero__inner { grid-template-columns: 1fr; }
  .sn-hero__watermark { display: none; }
  .sn-quienes__inner { grid-template-columns: 1fr; }
  .sn-weitnauer__inner { grid-template-columns: 1fr; }
  .sn-weitnauer__badge { order: -1; }
}
@media (max-width: 768px) {
  .sn-stats__grid { grid-template-columns: repeat(2,1fr); }
  .sn-stat:nth-child(2) { border-right: none; }
  .sn-stat:nth-child(3) { border-top: 1px solid var(--ink-border); }
  .sn-vm__grid { grid-template-columns: 1fr; }
  .sn-valores__grid { grid-template-columns: repeat(2,1fr); }
  .sn-tl { padding-left: 1.75rem; }
  .sn-tl-item { grid-template-columns: 4rem 1fr; gap: 1rem; }
}
@media (max-width: 560px) {
  .sn-stats__grid { grid-template-columns: repeat(2,1fr); }
  .sn-stat { border-right: none !important; border-bottom: 1px solid var(--ink-border); }
  .sn-stat:last-child { border-bottom: none; }
  .sn-valores__grid { grid-template-columns: 1fr; }
  .sn-hero__actions .btn { width: 100%; justify-content: center; }
  .sn-hero__actions { flex-direction: column; }
}

/* ── Sucursales ──────────────────────────────────────────────── */
.sucursales-section { }
.sucursales-header { text-align: center; max-width: 580px; margin: 0 auto 2.5rem; }
.sucursales-header__title { color: var(--ink); font-size: clamp(1.5rem,2.5vw,2rem); letter-spacing: -0.03em; margin-bottom: 0.75rem; }
.sucursales-header__desc { color: var(--gray-500); font-size: 0.9375rem; line-height: 1.7; }
.sucursales-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 1.25rem; }
.suc-card {
  background: var(--white); border-radius: var(--r-lg); overflow: hidden;
  border: 1px solid var(--gray-100); box-shadow: var(--sh);
  transition: box-shadow var(--t), transform var(--t);
  display: flex; flex-direction: column;
}
.suc-card:hover { box-shadow: var(--sh-md); transform: translateY(-2px); }
.suc-card__img { aspect-ratio: 16/9; overflow: hidden; flex-shrink: 0; }
.suc-card__img img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform var(--t-slow); }
.suc-card:hover .suc-card__img img { transform: scale(1.05); }
.suc-card__body { padding: 1.125rem 1.125rem 1.25rem; display: flex; flex-direction: column; gap: 0.5rem; flex: 1; }
.suc-card__city { font-size: 0.6875rem; font-weight: 800; letter-spacing: 0.08em; text-transform: uppercase; color: var(--red); }
.suc-card__address { font-size: 0.8rem; color: var(--gray-400); line-height: 1.55; }
.suc-card__phones { display: flex; flex-direction: column; gap: 0.2rem; margin-top: 0.25rem; }
.suc-card__phones a { font-size: 0.8125rem; color: var(--ink); font-weight: 500; }
.suc-card__phones a:hover { color: var(--red); }
.suc-card__maps {
  display: inline-flex; align-items: center; gap: 0.375rem; margin-top: auto; padding-top: 0.875rem;
  font-size: 0.8rem; font-weight: 600; color: var(--ink); letter-spacing: 0.01em;
  border-top: 1px solid var(--gray-100); transition: color var(--t-fast);
}
.suc-card__maps:hover { color: var(--red); }
@media (max-width: 900px) { .sucursales-grid { grid-template-columns: repeat(2,1fr); } }
@media (max-width: 560px) { .sucursales-grid { grid-template-columns: 1fr; } }

/* ── Contacto ────────────────────────────────────────────────── */
.contact-layout {
  display: grid; grid-template-columns: 1fr 1.1fr;
  gap: clamp(2rem,5vw,5rem); align-items: start;
}
.contact-info > h2 {
  color: var(--ink); margin-bottom: 1rem;
  font-size: clamp(1.5rem,2.5vw,2.25rem); letter-spacing: -0.03em; line-height: 1.2;
}
.contact-intro { color: var(--gray-500); margin-bottom: 2rem; max-width: 48ch; line-height: 1.7; }
.cinfo-grid {
  display: grid; grid-template-columns: 1fr 1fr;
  gap: 0.125rem; background: var(--gray-100);
  border: 1px solid var(--gray-100); border-radius: var(--r-lg);
  overflow: hidden; margin-bottom: 2rem;
}
.cinfo-item {
  background: var(--white); padding: 1.125rem 1.25rem;
  display: flex; flex-direction: column; gap: 0.3rem;
  transition: background var(--t-fast);
}
.cinfo-item:hover { background: var(--gray-50); }
.cinfo-item__label {
  font-size: 0.625rem; font-weight: 800; letter-spacing: 0.1em;
  text-transform: uppercase; color: var(--gray-400);
}
.cinfo-item__value { font-size: 0.9375rem; color: var(--ink); font-weight: 600; line-height: 1.4; }
a.cinfo-item__value { transition: color var(--t-fast); }
a.cinfo-item__value:hover { color: var(--red); }
.contact-socials { display: flex; flex-wrap: wrap; gap: 0.25rem 0.75rem; margin-top: 0.125rem; }
.contact-socials a { font-size: 0.875rem; color: var(--gray-700); font-weight: 500; transition: color var(--t-fast); }
.contact-socials a:hover { color: var(--red); }
.contact-values-bar {
  border-top: 1px solid var(--gray-100);
  border-bottom: 1px solid var(--gray-100);
  padding-block: 1.125rem;
}
.contact-values {
  display: flex; flex-direction: row; flex-wrap: wrap;
  justify-content: center; gap: 0.5rem clamp(2rem, 5vw, 4rem);
}
.contact-value-item { display: flex; align-items: center; gap: 0.625rem; font-size: 0.875rem; color: var(--gray-500); }
.contact-value-item svg { color: var(--red); flex-shrink: 0; }
.contact-map {
  border-radius: var(--r-xl); overflow: hidden; isolation: isolate;
  box-shadow: 0 16px 60px rgba(8,17,30,.3), 0 0 0 1px rgba(8,17,30,.1);
}
#sigma-map { width: 100%; height: 100%; min-height: 480px; }

/* Pin SVG */
.sigma-pin { display: flex; filter: drop-shadow(0 3px 6px rgba(0,0,0,.5)); }
.sigma-pin svg { width: 32px; height: 40px; }

/* City labels */
.sigma-label.leaflet-tooltip {
  background: rgba(8,17,30,.88);
  border: 1px solid rgba(255,255,255,.13);
  border-radius: 6px;
  color: #fff;
  font-size: 0.6875rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  padding: 3px 9px;
  box-shadow: 0 2px 10px rgba(0,0,0,.5);
  white-space: nowrap;
}
.sigma-label.leaflet-tooltip::before { display: none; }

@media (max-width: 900px) {
  .contact-layout { grid-template-columns: 1fr; }
  .contact-map { min-height: 380px; }
}
@media (max-width: 560px) {
  .cinfo-grid { grid-template-columns: 1fr; }
}

/* ── CART STEPPER (cards de productos) ─────────────────────── */
.cart-stepper {
  display: flex; align-items: center;
  background: var(--red); border-radius: var(--r-sm);
  width: 100%; overflow: hidden;
}
.cart-stepper__btn {
  flex-shrink: 0; width: 2.25rem; height: 2.25rem;
  display: flex; align-items: center; justify-content: center;
  background: transparent; color: var(--white);
  border: none; cursor: pointer; font-size: 1.125rem; font-weight: 600; line-height: 1;
  transition: background var(--t-fast);
}
.cart-stepper__btn:hover { background: rgba(0,0,0,.12); }
.cart-stepper__btn:active { background: rgba(0,0,0,.2); }
.cart-stepper__qty {
  flex: 1; text-align: center;
  color: var(--white); font-size: 1rem; font-weight: 700;
  white-space: nowrap; letter-spacing: normal;
}
.cart-stepper__n { font-weight: 700; }

/* ── MINI CARRITO EXPRESS ────────────────────────────────────── */
.sigma-mini-cart {
  position: fixed; inset: 0; z-index: 9998;
  display: flex; justify-content: flex-end;
}
.sigma-mini-cart[hidden] { display: none; }

.sigma-mini-cart__backdrop {
  position: absolute; inset: 0;
  background: rgba(8,17,30,.45);
  backdrop-filter: blur(2px);
  cursor: pointer;
}
.sigma-mini-cart__panel {
  position: relative; z-index: 1;
  width: min(400px, 93vw); height: 100%;
  background: var(--white);
  display: flex; flex-direction: column;
  box-shadow: -6px 0 40px rgba(8,17,30,.2);
}
.sigma-mini-cart__head {
  display: flex; align-items: center; justify-content: space-between;
  padding: 1.125rem 1.25rem 1rem;
  border-bottom: 1px solid var(--gray-100); flex-shrink: 0;
}
.sigma-mini-cart__head > span { font-size: 0.9375rem; font-weight: 700; color: var(--ink); }
.sigma-mini-cart__close {
  display: flex; align-items: center; justify-content: center;
  width: 1.875rem; height: 1.875rem;
  background: var(--gray-50); border: none; border-radius: 50%;
  cursor: pointer; color: var(--ink);
  transition: background var(--t-fast);
}
.sigma-mini-cart__close:hover { background: var(--gray-100); }

.sigma-mini-cart__content {
  flex: 1; overflow-y: auto; display: flex; flex-direction: column;
  min-height: 0;
}

/* Estado vacío */
.mini-cart-empty {
  flex: 1; display: flex; flex-direction: column; align-items: center;
  justify-content: center; gap: 0.75rem; padding: 2.5rem 1.25rem;
  color: var(--gray-300); text-align: center;
}
.mini-cart-empty p { font-size: 0.9375rem; font-weight: 500; margin: 0; color: var(--gray-400); }

/* Lista de items */
.mini-cart-items { list-style: none; margin: 0; padding: 0; flex: 1; }
.mini-cart-item {
  display: flex; align-items: center; gap: 0.875rem;
  padding: 0.875rem 1.25rem;
  border-bottom: 1px solid var(--gray-50);
}
.mci-img {
  width: 52px; height: 52px; flex-shrink: 0;
  border-radius: 6px; overflow: hidden;
  background: var(--gray-50); border: 1px solid var(--gray-100);
  display: flex; align-items: center; justify-content: center;
}
.mci-img img { width: 100%; height: 100%; object-fit: contain; }
.mci-info { flex: 1; min-width: 0; }
.mci-name { font-size: 0.8125rem; font-weight: 700; color: var(--ink); line-height: 1.3; }
.mci-qty { font-size: 0.75rem; color: var(--gray-400); margin-top: 0.25rem; }
.mci-remove {
  flex-shrink: 0; background: none; border: none;
  color: var(--gray-300); cursor: pointer; padding: 0.375rem;
  border-radius: 4px; display: flex; align-items: center; justify-content: center;
  transition: color var(--t-fast), background var(--t-fast);
}
.mci-remove:hover { color: var(--red); background: #fef2f2; }

/* Subtotal */
.mini-cart-subtotal {
  display: flex; justify-content: space-between; align-items: center;
  padding: 0.875rem 1.25rem;
  border-top: 1px solid var(--gray-100);
  font-size: 0.9375rem; color: var(--ink); flex-shrink: 0;
}
.mini-cart-subtotal strong { font-weight: 700; }

/* Botones de acción */
.mini-cart-actions {
  display: flex; flex-direction: column; gap: 0.625rem;
  padding: 0.75rem 1.25rem 1.5rem; flex-shrink: 0;
}
.btn-mini-cart {
  display: flex; align-items: center; justify-content: center;
  padding: 0.75rem 1rem; border-radius: var(--r-sm);
  font-size: 0.9375rem; font-weight: 600; text-decoration: none; text-align: center;
  transition: background var(--t-fast), color var(--t-fast), border-color var(--t-fast);
}
.btn-mini-cart--primary {
  background: var(--ink-2); color: var(--white); border: 2px solid var(--ink-2);
}
.btn-mini-cart--primary:hover { background: var(--ink); border-color: var(--ink); color: var(--white); }
.btn-mini-cart--outline {
  background: transparent; color: var(--ink);
  border: 1.5px solid var(--gray-200); font-size: 0.875rem;
}
.btn-mini-cart--outline:hover { border-color: var(--ink); color: var(--ink); }


/* ═══════════════════════════════════════════════════════════════
   WC PÁGINAS: LOGIN · CARRITO · CHECKOUT · MI CUENTA
   ═══════════════════════════════════════════════════════════════ */

/* ── Shared WC form fields ───────────────────────────────────── */
.sigma-input,
.woocommerce .input-text,
.woocommerce form .input-text,
.woocommerce-page .input-text {
  display: block; width: 100%; padding: 0.75rem 1rem;
  border: 1.5px solid var(--gray-200); border-radius: var(--r-sm);
  background: var(--white); color: var(--ink);
  font-size: 0.9375rem; font-family: inherit;
  transition: border-color var(--t-fast), box-shadow var(--t-fast);
  outline: none;
}
.sigma-input:focus,
.woocommerce .input-text:focus,
.woocommerce form .input-text:focus {
  border-color: var(--ink-3); box-shadow: 0 0 0 3px rgba(22,43,74,.1);
}
.sigma-input::placeholder { color: var(--gray-400); }

/* ── WC notices ──────────────────────────────────────────────── */
.woocommerce-error, .woocommerce-message, .woocommerce-info {
  list-style: none; margin: 0 0 1.5rem; padding: 0.875rem 1rem;
  border-radius: var(--r-sm); font-size: 0.9375rem; display: flex;
  align-items: flex-start; gap: 0.625rem;
}
.woocommerce-error { background: #fff5f5; border: 1px solid #fca5a5; color: #991b1b; }
.woocommerce-message { background: #f0fdf4; border: 1px solid #86efac; color: #166534; }
.woocommerce-info { background: #eff6ff; border: 1px solid #93c5fd; color: #1e40af; }
.woocommerce-error li, .woocommerce-message li, .woocommerce-info li { margin: 0; }

/* ══════════════════════════════════════════════════════════════
   PÁGINA LOGIN / MI CUENTA
   ══════════════════════════════════════════════════════════════ */
.woocommerce-account:not(.logged-in) .page-content,
.woocommerce-account:not(.logged-in) .entry-content {
  background: var(--off-white);
}
.sigma-login-wrap {
  min-height: 70vh; display: flex; align-items: center; justify-content: center;
  padding: 3rem 1rem;
}
.sigma-login-card {
  width: 100%; max-width: 440px;
  background: var(--white); border-radius: var(--r-lg);
  box-shadow: var(--sh-lg); overflow: hidden;
}
.sigma-login-header {
  background: var(--ink); color: var(--white);
  padding: 2rem 2rem 1.75rem;
}
.sigma-login-eyebrow {
  display: inline-block; font-size: 0.75rem; font-weight: 600;
  letter-spacing: .1em; text-transform: uppercase; color: var(--gray-400);
  margin-bottom: 0.5rem;
}
.sigma-login-title {
  font-size: 1.625rem; font-weight: 700; margin: 0 0 0.5rem; color: var(--white);
}
.sigma-login-desc { font-size: 0.875rem; color: var(--gray-400); margin: 0; }
.sigma-login-form { padding: 1.75rem 2rem 0.5rem; }
.sigma-field-group { margin-bottom: 1.25rem; }
.sigma-label {
  display: block; font-size: 0.875rem; font-weight: 600;
  color: var(--ink); margin-bottom: 0.4rem;
}
.sigma-label .required { color: var(--red); margin-left: 2px; }
.sigma-label-row {
  display: flex; justify-content: space-between; align-items: baseline;
  margin-bottom: 0.4rem;
}
.sigma-lost-pw { font-size: 0.8125rem; color: var(--gray-500); text-decoration: none; }
.sigma-lost-pw:hover { color: var(--red); }
.sigma-pw-wrap { position: relative; }
.sigma-pw-wrap .sigma-input { padding-right: 2.75rem; }
.sigma-pw-toggle {
  position: absolute; right: 0.75rem; top: 50%; transform: translateY(-50%);
  background: none; border: none; padding: 0; cursor: pointer;
  color: var(--gray-400); display: flex; align-items: center;
  transition: color var(--t-fast);
}
.sigma-pw-toggle:hover { color: var(--ink); }
.sigma-remember-row { margin-bottom: 1.25rem; }
.sigma-checkbox-label {
  display: flex; align-items: center; gap: 0.625rem; cursor: pointer;
  font-size: 0.875rem; color: var(--ink);
}
.sigma-checkbox-label input[type="checkbox"] { position: absolute; opacity: 0; width: 0; height: 0; }
.sigma-checkbox-box {
  flex-shrink: 0; width: 18px; height: 18px; border: 1.5px solid var(--gray-300);
  border-radius: var(--r-xs); background: var(--white);
  transition: background var(--t-fast), border-color var(--t-fast);
  display: flex; align-items: center; justify-content: center;
}
.sigma-checkbox-label input[type="checkbox"]:checked + .sigma-checkbox-box {
  background: var(--ink); border-color: var(--ink);
}
.sigma-checkbox-label input[type="checkbox"]:checked + .sigma-checkbox-box::after {
  content: ''; display: block; width: 5px; height: 9px;
  border: 2px solid var(--white); border-top: none; border-left: none;
  transform: rotate(45deg) translateY(-1px);
}
.sigma-login-submit {
  display: flex; width: 100%; justify-content: center;
  padding: 0.875rem 1rem; margin-bottom: 1.5rem;
}
.sigma-login-footer {
  padding: 1.25rem 2rem 1.75rem;
  border-top: 1px solid var(--gray-100); text-align: center;
}
.sigma-login-footer__text { font-size: 0.875rem; color: var(--gray-500); margin: 0 0 0.875rem; }
.sigma-login-footer__btn { display: inline-flex; align-items: center; gap: 0.5rem; }
@media (max-width: 480px) {
  .sigma-login-card { border-radius: var(--r); }
  .sigma-login-header { padding: 1.5rem 1.25rem; }
  .sigma-login-form { padding: 1.5rem 1.25rem 0.5rem; }
  .sigma-login-footer { padding: 1rem 1.25rem 1.5rem; }
}

/* ══════════════════════════════════════════════════════════════
   CARRITO — /carrito/
   ══════════════════════════════════════════════════════════════ */
.woocommerce-cart .page-content { background: var(--off-white); }
.woocommerce-cart table.cart,
.woocommerce table.shop_table {
  width: 100%; border-collapse: separate; border-spacing: 0;
  background: var(--white); border-radius: var(--r-lg);
  box-shadow: var(--sh); overflow: hidden; margin-bottom: 2rem;
}
.woocommerce table.shop_table thead th {
  background: var(--ink); color: var(--white);
  padding: 0.875rem 1rem; font-size: 0.8125rem; font-weight: 600;
  letter-spacing: .06em; text-transform: uppercase; text-align: left; border: none;
}
.woocommerce table.shop_table thead th.product-thumbnail { width: 80px; }
.woocommerce table.shop_table thead th.product-remove { width: 40px; }
.woocommerce table.shop_table thead th.product-quantity { text-align: center; }
.woocommerce table.shop_table thead th.product-subtotal { text-align: right; }
.woocommerce table.shop_table thead th.product-price { text-align: right; }
.woocommerce table.shop_table tbody tr { border-bottom: 1px solid var(--gray-100); }
.woocommerce table.shop_table tbody tr:last-child { border-bottom: none; }
.woocommerce table.shop_table tbody td {
  padding: 1rem; vertical-align: middle; border: none; background: transparent;
  color: var(--ink); font-size: 0.9375rem;
}
.woocommerce table.cart .product-thumbnail img,
.woocommerce table.shop_table td.product-thumbnail img {
  width: 64px; height: 64px; object-fit: contain;
  border-radius: var(--r-sm); border: 1px solid var(--gray-100); display: block;
}
.woocommerce table.cart td.product-name a,
.woocommerce table.shop_table td.product-name a {
  color: var(--ink); font-weight: 600; text-decoration: none; transition: color var(--t-fast);
}
.woocommerce table.shop_table td.product-name a:hover { color: var(--red); }
.woocommerce table.shop_table td.product-price,
.woocommerce table.shop_table td.product-subtotal { text-align: right; font-weight: 600; }
.woocommerce table.shop_table td.product-quantity { text-align: center; }
.woocommerce table.shop_table td.product-quantity .qty {
  width: 70px; text-align: center; padding: 0.5rem;
  border: 1.5px solid var(--gray-200); border-radius: var(--r-sm);
  font-size: 0.9375rem; font-weight: 600; color: var(--ink); background: var(--white);
  outline: none; transition: border-color var(--t-fast);
}
.woocommerce table.shop_table td.product-quantity .qty:focus { border-color: var(--ink-3); }
.woocommerce table.cart a.remove {
  display: flex; align-items: center; justify-content: center;
  width: 28px; height: 28px; border-radius: 50%;
  background: transparent; color: var(--gray-400);
  font-size: 1.125rem; font-weight: 700; text-decoration: none; line-height: 1;
  transition: background var(--t-fast), color var(--t-fast);
  border: 1.5px solid var(--gray-200);
}
.woocommerce table.cart a.remove:hover { background: #fff5f5; color: var(--red); border-color: #fca5a5; }
.woocommerce-cart-form__contents td.actions { padding: 1rem; background: var(--gray-50); }
.woocommerce-cart td.actions .coupon {
  display: flex; gap: 0.625rem; align-items: center; margin-bottom: 1rem;
}
.woocommerce-cart td.actions .coupon label { display: none; }
.woocommerce-cart td.actions .coupon #coupon_code {
  width: auto; flex: 1; max-width: 240px;
  padding: 0.625rem 0.875rem; border: 1.5px solid var(--gray-200);
  border-radius: var(--r-sm); font-size: 0.875rem; outline: none;
  transition: border-color var(--t-fast);
}
.woocommerce-cart td.actions .coupon #coupon_code:focus { border-color: var(--ink-3); }
.woocommerce-cart td.actions .button { font-size: 0.875rem; padding: 0.6rem 1.25rem; }
.woocommerce-cart td.actions .button[name="update_cart"] {
  float: right; background: var(--gray-100); color: var(--ink);
  border: 1.5px solid var(--gray-200); border-radius: var(--r-sm); font-weight: 600;
  transition: background var(--t-fast), border-color var(--t-fast);
}
.woocommerce-cart td.actions .button[name="update_cart"]:hover { background: var(--gray-200); border-color: var(--gray-300); }
.cart-collaterals { margin-top: 0; }
.cart_totals {
  background: var(--white); border-radius: var(--r-lg); box-shadow: var(--sh); overflow: hidden;
  max-width: 420px; margin-left: auto;
}
.cart_totals h2 {
  background: var(--ink); color: var(--white);
  font-size: 1rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase;
  padding: 0.875rem 1.25rem; margin: 0;
}
.cart_totals table { width: 100%; border-collapse: collapse; }
.cart_totals table tr { border-bottom: 1px solid var(--gray-100); }
.cart_totals table tr:last-child { border-bottom: none; }
.cart_totals table th,
.cart_totals table td { padding: 0.875rem 1.25rem; font-size: 0.9375rem; text-align: left; background: transparent; }
.cart_totals table th { color: var(--gray-600); font-weight: 500; width: 40%; }
.cart_totals table td { font-weight: 600; color: var(--ink); text-align: right; }
.cart_totals table tr.order-total th,
.cart_totals table tr.order-total td { font-size: 1.0625rem; }
.cart_totals table tr.order-total td strong { font-weight: 700; }
.cart_totals .wc-proceed-to-checkout { padding: 1.25rem; }
.cart_totals .checkout-button {
  display: flex; width: 100%; justify-content: center;
  background: var(--red); color: var(--white); border: none;
  padding: 0.9375rem 1.5rem; border-radius: var(--r-sm);
  font-size: 1rem; font-weight: 700; text-decoration: none;
  transition: background var(--t-fast); cursor: pointer;
}
.cart_totals .checkout-button:hover { background: var(--red-2); }
.woocommerce-cart .cart-empty {
  text-align: center; padding: 3rem 1rem;
  background: var(--white); border-radius: var(--r-lg); box-shadow: var(--sh);
  color: var(--gray-500); font-size: 1rem;
}
.woocommerce-cart .return-to-shop { text-align: center; margin-top: 1.5rem; }
@media (max-width: 767px) {
  .woocommerce table.shop_table thead { display: none; }
  .woocommerce table.shop_table tbody tr {
    display: grid;
    grid-template-columns: 72px 1fr auto;
    grid-template-areas: "thumb name remove" "thumb price price" "thumb qty sub";
    gap: 0.25rem 0.75rem; padding: 0.875rem; border-bottom: 1px solid var(--gray-100); align-items: center;
  }
  .woocommerce table.shop_table tbody td { padding: 0; }
  .woocommerce table.shop_table td.product-thumbnail { grid-area: thumb; }
  .woocommerce table.shop_table td.product-name    { grid-area: name; font-size: 0.875rem; }
  .woocommerce table.shop_table td.product-remove  { grid-area: remove; justify-self: end; }
  .woocommerce table.shop_table td.product-price   { grid-area: price; font-size: 0.8125rem; text-align: left; color: var(--gray-500); }
  .woocommerce table.shop_table td.product-quantity { grid-area: qty; text-align: left; }
  .woocommerce table.shop_table td.product-subtotal { grid-area: sub; text-align: right; }
  .woocommerce-cart td.actions .coupon { flex-direction: column; align-items: flex-start; }
  .woocommerce-cart td.actions .coupon #coupon_code { max-width: 100%; width: 100%; }
  .cart_totals { max-width: 100%; }
}

/* ══════════════════════════════════════════════════════════════
   CHECKOUT — /finalizar-la-compra/
   ══════════════════════════════════════════════════════════════ */
.woocommerce-checkout .page-content { background: var(--off-white); }
.woocommerce-checkout #customer_details,
.woocommerce form.checkout { display: grid; gap: 2rem; }
@media (min-width: 900px) {
  .woocommerce form.checkout {
    grid-template-columns: 1fr 380px;
    grid-template-areas: "billing order" "payment order";
    align-items: start;
  }
  #order_review_heading { display: none; }
}
.woocommerce-billing-fields,
.woocommerce-shipping-fields,
.woocommerce-additional-fields {
  background: var(--white); border-radius: var(--r-lg); box-shadow: var(--sh); overflow: hidden;
}
@media (min-width: 900px) { .woocommerce-billing-fields { grid-area: billing; } }
.woocommerce-billing-fields h3,
.woocommerce-shipping-fields h3,
.woocommerce-additional-fields h3 {
  background: var(--ink); color: var(--white);
  font-size: 1rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase;
  padding: 0.875rem 1.25rem; margin: 0;
}
.woocommerce-billing-fields__field-wrapper,
.woocommerce-shipping-fields__field-wrapper,
.woocommerce-additional-fields__field-wrapper {
  padding: 1.5rem 1.25rem; display: grid; grid-template-columns: 1fr 1fr; gap: 1rem;
}
@media (max-width: 600px) {
  .woocommerce-billing-fields__field-wrapper,
  .woocommerce-shipping-fields__field-wrapper { grid-template-columns: 1fr; }
}
.woocommerce-checkout .form-row { margin: 0; }
.woocommerce-checkout .form-row label {
  display: block; font-size: 0.875rem; font-weight: 600; color: var(--ink); margin-bottom: 0.375rem;
}
.woocommerce-checkout .form-row label .required { color: var(--red); margin-left: 2px; }
.woocommerce-checkout .form-row.form-row-wide,
.woocommerce-checkout .form-row.notes { grid-column: 1 / -1; }
.woocommerce-checkout select,
.woocommerce-checkout textarea {
  display: block; width: 100%; padding: 0.75rem 1rem;
  border: 1.5px solid var(--gray-200); border-radius: var(--r-sm);
  background: var(--white); color: var(--ink); font-size: 0.9375rem; font-family: inherit;
  outline: none; transition: border-color var(--t-fast), box-shadow var(--t-fast);
}
.woocommerce-checkout select:focus,
.woocommerce-checkout textarea:focus { border-color: var(--ink-3); box-shadow: 0 0 0 3px rgba(22,43,74,.1); }
.woocommerce-checkout textarea { resize: vertical; min-height: 90px; }
#order_review {
  background: var(--white); border-radius: var(--r-lg); box-shadow: var(--sh); overflow: hidden;
}
@media (min-width: 900px) { #order_review { grid-area: order; } }
#order_review h3,
#order_review_heading {
  background: var(--ink); color: var(--white);
  font-size: 1rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase;
  padding: 0.875rem 1.25rem; margin: 0;
}
.woocommerce-checkout-review-order-table { width: 100%; border-collapse: collapse; }
.woocommerce-checkout-review-order-table thead th {
  font-size: 0.75rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase;
  color: var(--gray-500); padding: 0.75rem 1.25rem; border-bottom: 1px solid var(--gray-100); text-align: left;
}
.woocommerce-checkout-review-order-table thead th.product-total { text-align: right; }
.woocommerce-checkout-review-order-table tbody tr { border-bottom: 1px solid var(--gray-100); }
.woocommerce-checkout-review-order-table td { padding: 0.75rem 1.25rem; font-size: 0.875rem; color: var(--ink); border: none; }
.woocommerce-checkout-review-order-table td.product-total { text-align: right; font-weight: 600; }
.woocommerce-checkout-review-order-table tfoot tr { border-top: 1px solid var(--gray-200); }
.woocommerce-checkout-review-order-table tfoot td { font-weight: 700; }
.woocommerce-checkout-review-order-table tfoot .order-total td { font-size: 1rem; color: var(--ink); }
#payment { background: var(--white); border-radius: var(--r-lg); box-shadow: var(--sh); overflow: hidden; }
@media (min-width: 900px) { #payment { grid-area: payment; } }
#payment .woocommerce-checkout-payment { padding: 1.25rem; }
#payment ul.payment_methods {
  list-style: none; margin: 0 0 1.25rem; padding: 0;
  border: 1.5px solid var(--gray-200); border-radius: var(--r-sm); overflow: hidden;
}
#payment ul.payment_methods li.wc_payment_method { border-bottom: 1px solid var(--gray-100); }
#payment ul.payment_methods li.wc_payment_method:last-child { border-bottom: none; }
#payment ul.payment_methods li.wc_payment_method label {
  display: flex; align-items: center; gap: 0.625rem;
  padding: 0.875rem 1rem; cursor: pointer; font-size: 0.9375rem; font-weight: 600;
  color: var(--ink); transition: background var(--t-fast);
}
#payment ul.payment_methods li.wc_payment_method label:hover { background: var(--gray-50); }
#payment ul.payment_methods li.wc_payment_method input[type="radio"] { accent-color: var(--ink); }
#payment .payment_box {
  padding: 0.875rem 1rem; background: var(--gray-50);
  border-top: 1px solid var(--gray-100); font-size: 0.875rem; color: var(--gray-600);
}
#place_order {
  display: flex; width: 100%; justify-content: center;
  background: var(--red); color: var(--white); border: none;
  padding: 1rem 1.5rem; border-radius: var(--r-sm);
  font-size: 1.0625rem; font-weight: 700; cursor: pointer; transition: background var(--t-fast);
}
#place_order:hover { background: var(--red-2); }
.woocommerce-order-received .woocommerce-order {
  background: var(--white); border-radius: var(--r-lg); box-shadow: var(--sh);
  padding: 2rem; margin-bottom: 2rem;
}
.woocommerce-order-received ul.woocommerce-order-overview {
  list-style: none; padding: 1rem 1.25rem; margin: 0 0 2rem;
  display: flex; flex-wrap: wrap; gap: 1rem;
  background: var(--ink); border-radius: var(--r-sm);
}
.woocommerce-order-received ul.woocommerce-order-overview li { font-size: 0.875rem; color: var(--gray-400); flex: 1; min-width: 130px; }
.woocommerce-order-received ul.woocommerce-order-overview li strong { display: block; font-size: 1rem; color: var(--white); margin-top: 0.25rem; }

/* ══════════════════════════════════════════════════════════════
   MI CUENTA — dashboard, pedidos, datos
   ══════════════════════════════════════════════════════════════ */
.woocommerce-account.logged-in .page-content { background: var(--off-white); }
.woocommerce-account.logged-in .entry-content { padding: 0; }
.woocommerce-account.logged-in .woocommerce { display: grid; gap: 1.5rem; align-items: start; }
@media (min-width: 900px) {
  .woocommerce-account.logged-in .woocommerce { grid-template-columns: 220px 1fr; }
}
.woocommerce-account.logged-in .woocommerce-MyAccount-navigation {
  background: var(--ink); border-radius: var(--r-lg); overflow: hidden; box-shadow: var(--sh);
}
.woocommerce-account.logged-in .woocommerce-MyAccount-navigation ul { list-style: none; margin: 0; padding: 0; }
.woocommerce-account.logged-in .woocommerce-MyAccount-navigation ul li a {
  display: flex; align-items: center; gap: 0.625rem;
  padding: 0.875rem 1.25rem; color: var(--gray-400);
  font-size: 0.9375rem; font-weight: 500; text-decoration: none;
  border-bottom: 1px solid rgba(255,255,255,.06); transition: color var(--t-fast), background var(--t-fast);
}
.woocommerce-account.logged-in .woocommerce-MyAccount-navigation ul li:last-child a { border-bottom: none; }
.woocommerce-account.logged-in .woocommerce-MyAccount-navigation ul li a:hover { color: var(--white); background: rgba(255,255,255,.06); }
.woocommerce-account.logged-in .woocommerce-MyAccount-navigation ul li.is-active a {
  color: var(--white); background: rgba(255,255,255,.1); font-weight: 600; border-left: 3px solid var(--red);
}
.woocommerce-account.logged-in .woocommerce-MyAccount-content {
  background: var(--white); border-radius: var(--r-lg); box-shadow: var(--sh);
  padding: 1.75rem; min-height: 300px;
}
.woocommerce-account.logged-in .woocommerce-MyAccount-content p:first-child { font-size: 0.9375rem; color: var(--gray-600); }
.woocommerce-account .woocommerce-orders-table { width: 100%; border-collapse: separate; border-spacing: 0; font-size: 0.9375rem; margin-bottom: 1.5rem; }
.woocommerce-account .woocommerce-orders-table thead th {
  background: var(--gray-50); color: var(--gray-600);
  font-size: 0.75rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase;
  padding: 0.75rem 1rem; text-align: left; border-bottom: 1.5px solid var(--gray-200);
}
.woocommerce-account .woocommerce-orders-table tbody tr { border-bottom: 1px solid var(--gray-100); }
.woocommerce-account .woocommerce-orders-table tbody td { padding: 0.875rem 1rem; color: var(--ink); border: none; }
.woocommerce-account .woocommerce-orders-table tbody tr:hover td { background: var(--gray-50); }
.woocommerce-account .woocommerce-orders-table .woocommerce-button { font-size: 0.8125rem; padding: 0.375rem 0.875rem; }
.woocommerce-orders-table .woocommerce-order-status span, mark.order-status {
  display: inline-block; padding: 0.25rem 0.625rem; border-radius: 100px;
  font-size: 0.75rem; font-weight: 600; letter-spacing: .04em; text-transform: uppercase;
}
.status-completed mark, .order-status.status-completed span { background: #dcfce7; color: #166534; }
.status-processing mark, .order-status.status-processing span { background: #dbeafe; color: #1e40af; }
.status-on-hold mark, .order-status.status-on-hold span { background: #fef9c3; color: #854d0e; }
.status-cancelled mark, .order-status.status-cancelled span { background: #fee2e2; color: #991b1b; }
.status-pending mark, .order-status.status-pending span { background: var(--gray-100); color: var(--gray-600); }
.woocommerce-account .woocommerce-EditAccountForm fieldset {
  border: 1.5px solid var(--gray-200); border-radius: var(--r-sm); padding: 1.25rem; margin: 1.5rem 0 0;
}
.woocommerce-account .woocommerce-EditAccountForm legend {
  font-size: 0.875rem; font-weight: 600; color: var(--gray-500); padding: 0 0.5rem; letter-spacing: .06em; text-transform: uppercase;
}
.woocommerce-account .woocommerce-EditAccountForm .form-row { margin-bottom: 1rem; }
.woocommerce-account .woocommerce-EditAccountForm label {
  display: block; font-size: 0.875rem; font-weight: 600; color: var(--ink); margin-bottom: 0.375rem;
}
.woocommerce-account .woocommerce-EditAccountForm input[type="text"],
.woocommerce-account .woocommerce-EditAccountForm input[type="email"],
.woocommerce-account .woocommerce-EditAccountForm input[type="password"] {
  display: block; width: 100%; padding: 0.75rem 1rem;
  border: 1.5px solid var(--gray-200); border-radius: var(--r-sm);
  font-size: 0.9375rem; font-family: inherit; color: var(--ink); background: var(--white);
  outline: none; transition: border-color var(--t-fast), box-shadow var(--t-fast);
}
.woocommerce-account .woocommerce-EditAccountForm input:focus { border-color: var(--ink-3); box-shadow: 0 0 0 3px rgba(22,43,74,.1); }
.woocommerce-account .woocommerce-Addresses { display: grid; gap: 1.5rem; }
@media (min-width: 600px) { .woocommerce-account .woocommerce-Addresses { grid-template-columns: 1fr 1fr; } }
.woocommerce-account .woocommerce-Address {
  background: var(--gray-50); border-radius: var(--r-sm); padding: 1.25rem; border: 1.5px solid var(--gray-200);
}
.woocommerce-account .woocommerce-Address h3 {
  font-size: 0.9375rem; font-weight: 700; color: var(--ink); margin: 0 0 0.75rem;
  padding-bottom: 0.625rem; border-bottom: 1px solid var(--gray-200);
}
.woocommerce-account .woocommerce-Address address { font-size: 0.9rem; color: var(--gray-600); line-height: 1.7; }
.woocommerce-account .woocommerce-Address a.edit {
  display: inline-block; margin-top: 0.875rem; font-size: 0.8125rem; font-weight: 600;
  color: var(--ink); text-decoration: none; border-bottom: 1.5px solid var(--gray-200); padding-bottom: 1px;
  transition: color var(--t-fast), border-color var(--t-fast);
}
.woocommerce-account .woocommerce-Address a.edit:hover { color: var(--red); border-color: var(--red); }
@media (max-width: 899px) {
  .woocommerce-account.logged-in .woocommerce-MyAccount-navigation { border-radius: var(--r); }
  .woocommerce-account.logged-in .woocommerce-MyAccount-navigation ul { display: flex; flex-wrap: wrap; }
  .woocommerce-account.logged-in .woocommerce-MyAccount-navigation ul li { flex: 1; min-width: 130px; }
  .woocommerce-account.logged-in .woocommerce-MyAccount-navigation ul li a {
    justify-content: center; text-align: center; font-size: 0.8125rem;
    padding: 0.75rem 0.625rem; border-bottom: none; border-right: 1px solid rgba(255,255,255,.06);
  }
  .woocommerce-account.logged-in .woocommerce-MyAccount-navigation ul li.is-active a {
    border-left: none; border-bottom: 3px solid var(--red);
  }
}

/* ══════════════════════════════════════════════════════════════
   MODAL LOGIN — Ver precio
   ══════════════════════════════════════════════════════════════ */
.slm-overlay[hidden] { display: none; }
.slm-overlay {
  position: fixed; inset: 0; z-index: 9999;
  display: flex; align-items: center; justify-content: center;
  padding: 1rem;
}
.slm-backdrop {
  position: absolute; inset: 0;
  background: rgba(8,17,30,.74); backdrop-filter: blur(3px);
  opacity: 0; transition: opacity 270ms ease;
}
.slm-overlay.is-open .slm-backdrop { opacity: 1; }

.slm-card {
  position: relative; z-index: 1;
  width: 100%; max-width: 420px;
  transform: translateY(28px) scale(.97);
  opacity: 0;
  transition: transform 270ms cubic-bezier(.22,.68,0,1.2), opacity 270ms ease;
}
.slm-overlay.is-open .slm-card { transform: none; opacity: 1; }

.slm-close {
  position: absolute; top: 0.875rem; right: 0.875rem; z-index: 2;
  background: rgba(255,255,255,.14); border: none;
  width: 30px; height: 30px; border-radius: 50%;
  color: var(--white); cursor: pointer;
  display: flex; align-items: center; justify-content: center;
  transition: background var(--t-fast);
}
.slm-close:hover { background: rgba(255,255,255,.26); }

.slm-error {
  background: #fff0f0; border: 1px solid #fca5a5; color: #991b1b;
  border-radius: var(--r-sm); padding: 0.625rem 0.875rem;
  font-size: 0.875rem; margin-bottom: 1rem; line-height: 1.5;
}