/* ==========================================================================
   PRIDO Header System — v3 · r4
   assets/css/header-system-v3.r9.css (r3: píldora del buscador · r4–r6: v3.1 · r7–r9: modal B2B dirección A — tema en Mi cuenta,
   CTA Empresas teal-tinta, escalones ≤1399 / ≤1199 sin solapes)

   Documento normativo: docs/arquitectura-header-v3.md §4 (869-1150).
   REGLA DE ORO (§4.1): este archivo SUSTITUYE por completo a
   header-system-r2.css cuando el flag v3 está activo. Por eso reimplementa
   todo lo que r2.css hacía FUERA de #prido-hs: puente global (§0a), header de
   producto móvil .prido-hs-pmh (§0b) y auto-hide (§21).

   Orden de secciones = §4.2:
     §0a puente global · §0b PMH · §1 tokens · §2 reset acotado · §3 iconos y
     botones · §4 tooltips · §5 badges · §6 shell · §7 topbar · §8 navbar ·
     §9 nav · §10 mega · §11 tools · §12 barra móvil · §13 capas ·
     §14 offcanvas · §15 buscador · §16 modal B2B · §21 auto-hide ·
     §18 responsive.
   §17 (toast) y §20 (.prido-demo/.prido-card) NO se portan a propósito.

   Nombres: contrato de impl/header/CONTRATO.md — tokens --hs3-*, clases
   .prido-hs3-*; se conservan .prido-hs-tools__badge, .prido-hs-icon,
   .prido-iconbtn, .prido-btn*, .prido-field*, .prido-hs-offcanvas* y
   .prido-hs-navbar--desktop/--mobile por contrato con JS y fragments.
   ========================================================================== */


/* ============ §0a · Puente global — reimplementa header-system-r2.css:13-24,
   :47-83, :1656-1699 y :1793-1805. SIN ESTO el preview rompe wrappers, dark
   mode de los alias legacy y el overlay de búsqueda legado. ============ */
body.prido-hs-active {
  /* El offset se DERIVA de los tokens: si divergen, syncHeaderOffset()
     (header-system-r5.js:224-228) mide una altura mayor y el spacer crece en el
     primer frame → CLS. Nunca escribir un número suelto aquí. */
  --prido-hs-offset: calc(var(--hs3-topbar-h) + var(--hs3-nav-h));   /* 114px */
  --prido-wp-adminbar-offset: 0px;
  --prido-dark:         var(--prido-theme-ink);
  --prido-muted:        var(--prido-theme-muted);
  --prido-border-light: var(--prido-theme-border);
  --prido-bg-tint:      var(--prido-theme-surface-alt);
  /* Alias glass que r2.css:21-33 declaraba y consumen mini-cart.css y
     header-product-mobile.css (sobreviven al swap). */
  --hs-mobile-glass-bg:     var(--prido-glass-shell);
  --hs-mobile-glass-border: var(--prido-glass-border);
  --hs-mobile-glass-blur:   var(--prido-glass-backdrop-strong);
  --hs-mobile-glass-shadow: var(--prido-glass-shadow-soft);
  --hs-liquid-fill:         var(--prido-glass-shell-soft);
  --hs-liquid-fill-strong:  var(--prido-glass-shell);
  --hs-liquid-line:         var(--prido-glass-border);
  --hs-liquid-line-soft:    var(--prido-glass-border);
  --hs-liquid-shadow:       var(--prido-glass-shadow-soft);
  --hs-liquid-shadow-soft:  var(--prido-glass-shadow-soft);
  --hs-button-fill:         var(--prido-glass-chip);
  --hs-button-fill-hover:   var(--prido-glass-chip-hover);
  --hs-button-hover-border: var(--prido-glass-accent-border);
  --hs-button-hover-shadow: var(--prido-glass-shadow-soft);
  --hs-transition: 0.3s cubic-bezier(.25,.46,.45,.94);
}

/* Bloqueo de scroll de las capas v3 (§2). Vive aquí, junto al resto de
   selectores de <body>/<html>, para no dejar reglas globales sueltas fuera
   del §0a (ver lint del archivo). */
body.prido-hs3-lock { overflow: hidden; }

.prido-hs-spacer { display: block; height: var(--prido-hs-offset, 114px); background: transparent; pointer-events: none; }
.prido-hs-active .main-page-wrapper { padding-top: 0 !important; margin-top: 0 !important; transition: none; }
.prido-hs-active .website-wrapper > .main-page-wrapper:first-of-type { margin-top: 0 !important; }
.prido-hs-spacer + .main-page-wrapper,
.prido-hs-spacer + .prido-catalog-page,
.prido-hs-spacer ~ .main-page-wrapper { padding-top: 0 !important; margin-top: 0 !important; }

/* Header nativo WoodMart: visually-hidden A PROPÓSITO (el DOM sigue vivo para
   fragments/mini-cart de WC). NO usar display:none. (r2.css:1658-1668) */
.prido-hs-active .whb-header {
  position: absolute !important; width: 1px !important; height: 1px !important;
  overflow: hidden !important; clip: rect(0,0,0,0) !important; white-space: nowrap !important;
  border: 0 !important; padding: 0 !important; margin: -1px !important;
}
.prido-hs-active .whb-clone,
.prido-hs-active .whb-space-for-sticky { display: none !important; }

/* Overlay de búsqueda legado y capas por encima del header (r2.css:1677-1699).
   §19: el PMH se aparta también con las capas v3 (html.prido-hs3-modal-open). */
.prido-hs-active [class*="wd-search-full-screen"] { z-index: 100000 !important; }
html.wd-search-opened .prido-hs,
html.wd-search-opened .prido-hs-pmh,
html.prido-hs3-modal-open .prido-hs-pmh { z-index: 1 !important; pointer-events: none; opacity: 0; transition: opacity .2s ease; }
.prido-hs-active .prido-mini-cart-dropdown { z-index: 10001 !important; }  /* COPIA del vivo (r2.css:1697-1699) */

/* ≤1024: el PMH sustituye al header global en PDP (r2.css:1793-1805) */
@media (max-width: 1024px) {
  body.prido-hs-active { --prido-hs-offset: calc(var(--hs3-topbar-h) + var(--hs3-mobile-h)); }   /* 36+56 = 92 */
  .prido-hs-product .prido-hs-navbar--mobile,
  .prido-hs-product .prido-hs3-topbar { display: none !important; }
  .prido-hs-product .prido-hs-spacer { height: 0 !important; }
  /* r2.css:1728-1730 — con el offcanvas abierto el header no se desplaza. */
  html.prido-hs-menu-open .prido-hs { top: var(--prido-wp-adminbar-offset, 0px) !important; }
}
@media (max-width: 768px) {
  body.prido-hs-active { --prido-hs-offset: calc(var(--hs3-topbar-h) + var(--hs3-mobile-h)); }   /* 32+50 = 82 */
}

@media (prefers-reduced-motion: reduce) {
  .prido-hs *, .prido-hs-offcanvas *, .prido-hs-pmh *,
  .prido-hs3-layer, .prido-hs3-layer * {
    transition-duration: .01ms !important; animation-duration: .01ms !important;
  }
}


/* ============ §0b · PMH — 23 reglas que vivían en r2.css y NO en
   header-product-mobile.css. El PMH es v1 intacto: si esto falta, cada PDP
   móvil pierde iconos, píldora del badge y toggle de tema. ============ */
.prido-hs-pmh__btn svg,
.prido-hs-pmh__btn svg * {                                   /* r2.css:595-601 */
  display: block !important; fill: none !important; stroke: currentColor !important;
  opacity: 1 !important; visibility: visible !important;
}
.prido-hs-pmh__btn .prido-hs-icon { position: relative; z-index: 1; }   /* r2.css:610 */

button.prido-hs-pmh__btn.prido-hs-theme-toggle[data-prido-theme-toggle] { /* r2.css:670-694 */
  position: relative; isolation: isolate;
  display: inline-flex !important; align-items: center !important; justify-content: center !important;
  padding: 0 !important; border: 1px solid transparent !important; border-radius: 12px !important;
  background: transparent !important; box-shadow: none !important;
  color: var(--prido-theme-ink) !important; line-height: 0 !important; font-size: 0 !important;
  overflow: hidden !important; appearance: none !important; -webkit-appearance: none !important;
  outline: none !important; cursor: pointer !important; -webkit-tap-highlight-color: transparent;
}
button.prido-hs-pmh__btn.prido-hs-theme-toggle[data-prido-theme-toggle]:hover,
button.prido-hs-pmh__btn.prido-hs-theme-toggle[data-prido-theme-toggle]:focus-visible { /* :696-708 */
  background: color-mix(in srgb, var(--prido-theme-ink) 8%, transparent) !important;
  border-color: transparent !important; box-shadow: none !important; color: var(--prido-theme-ink) !important;
}
button.prido-hs-pmh__btn.prido-hs-theme-toggle[data-prido-theme-toggle]:active { transform: scale(.93); } /* :709-712 */
.prido-hs-theme-toggle__icon {                                /* :714-728 */
  position: absolute; inset: 0; display: inline-flex; align-items: center; justify-content: center;
  width: 100%; height: 100%; opacity: 0; visibility: hidden; pointer-events: none;
  color: currentColor !important; transition: opacity var(--hs-transition), transform var(--hs-transition);
}
.prido-hs-pmh__btn.prido-hs-theme-toggle .prido-hs-icon { width: 18px; height: 18px; stroke-width: 1.8px; } /* :736-741 */
.prido-hs-pmh__btn.prido-hs-theme-toggle svg,
.prido-hs-pmh__btn.prido-hs-theme-toggle svg * {              /* :746-752 */
  display: block !important; opacity: 1 !important; visibility: visible !important;
  fill: none !important; stroke: currentColor !important;
}
/* Conmutación sol/luna del PMH y del header (r2.css:754-779). Es el mecanismo
   que emite prido_hs_theme_toggle_markup(); el v3 lo reusa tal cual. */
:root[data-theme="light"] .prido-hs-theme-toggle__icon--moon,
:root:not([data-theme="dark"]) .prido-hs-theme-toggle__icon--moon { opacity: 1; visibility: visible; transform: scale(1); }
:root[data-theme="light"] .prido-hs-theme-toggle__icon--sun,
:root:not([data-theme="dark"]) .prido-hs-theme-toggle__icon--sun { opacity: 0; visibility: hidden; transform: scale(.75); }
:root[data-theme="dark"] .prido-hs-theme-toggle__icon--sun { opacity: 1; visibility: visible; transform: scale(1); }
:root[data-theme="dark"] .prido-hs-theme-toggle__icon--moon { opacity: 0; visibility: hidden; transform: scale(.75); }

@media (max-width: 768px) {                                    /* :781-785 */
  .prido-hs-pmh__btn.prido-hs-theme-toggle .prido-hs-icon { width: 16px; height: 16px; }
}
/* Badge del PMH — misma píldora que el header (r2.css:791-841, :883-885, :888-894),
   reescopeada. Oculto por defecto, visible con .is-visible / .is-pending (A-13). */
.prido-hs .prido-hs-tools__badge,
.prido-hs-pmh .prido-hs-tools__badge {
  position: absolute !important; top: 5px !important; right: 5px !important; z-index: 3;
  display: inline-flex !important; align-items: center; justify-content: center;
  min-width: 18px !important; height: 18px !important; padding: 0 5px !important;
  margin: 0 !important; border: 0 !important; border-radius: 999px;
  background: var(--hs3-badge-bg) !important; color: var(--hs3-badge-fg) !important;
  font-family: 'Outfit', sans-serif; font-size: 11px !important; font-weight: 800 !important;
  line-height: 1 !important; font-variant-numeric: tabular-nums; text-align: center;
  box-shadow: 0 0 0 2px var(--prido-badge-ring, var(--prido-theme-canvas));
  opacity: 0; transform: translate(38%, -38%) scale(.72); transform-origin: 70% 30%;
  transition: opacity .22s ease, transform .22s cubic-bezier(.2,0,0,1), box-shadow .22s ease;
  pointer-events: none;
}
.prido-hs .prido-iconbtn:hover .prido-hs-tools__badge,
.prido-hs-pmh .prido-hs-tools__btn:hover .prido-hs-tools__badge {
  --prido-badge-ring: color-mix(in srgb, var(--prido-theme-ink) 8%, var(--prido-theme-canvas));
}
.prido-hs-tools__badge.is-visible,
.prido-hs-tools__badge.is-pending { opacity: 1; transform: translate(38%, -38%) scale(1); }
.prido-hs-tools__badge.is-bump { animation: prido-hs3-bump .34s cubic-bezier(.2,0,0,1); }
@keyframes prido-hs3-bump { 0%{transform:translate(38%,-38%) scale(1)} 45%{transform:translate(38%,-38%) scale(1.28)} 100%{transform:translate(38%,-38%) scale(1)} }
/* Carrito del PMH (r2.css:844-882) */
.prido-hs-pmh .prido-hs-pmh__cart {
  display: inline-flex !important; align-items: center; justify-content: center;
  font-size: 1rem !important; line-height: 1 !important; color: var(--prido-dark, #1a2a3a) !important;
}
.prido-hs-pmh .prido-hs-pmh__cart::before,
.prido-hs-pmh .prido-hs-pmh__cart::after { content: none !important; display: none !important; }
.prido-hs-pmh .prido-hs-pmh__cart svg { width: 20px !important; height: 20px !important; overflow: visible !important; }
.prido-hs-pmh .prido-hs-pmh__cart svg * { stroke-width: 1.9 !important; }


/* ============ §1 · Tokens v3 ============ */

/* Geometría y movimiento en :root — los consume también body.prido-hs-active
   para derivar --prido-hs-offset (una var declarada en .prido-hs no sería
   visible desde <body>, y el offset DEBE coincidir con la altura real). */
:root {
  --hs3-topbar-h:         42px;
  --hs3-nav-h:            72px;
  --hs3-nav-h-compact:    58px;
  --hs3-mobile-h:         56px;
  --hs3-mobile-h-compact: 50px;
  --hs3-dur:   .28s;
  --hs3-ease:  cubic-bezier(.25, .46, .45, .94);
  --hs3-r-btn:   12px;
  --hs3-r-panel: 18px;
  /* z-index: escala documentada en prido-cart-drawer.r1.css:11-20 */
  --hs3-z-header:    1002;
  --hs3-z-mega:      1005;
  --hs3-z-offcanvas: 10000;
  --hs3-z-dropdown:  10020;
  --hs3-z-modal:     100000;
}
@media (max-width: 1024px) {
  :root { --hs3-topbar-h: 36px; --hs3-mobile-h: 56px; --hs3-mobile-h-compact: 50px; }
}
@media (max-width: 768px) {
  :root { --hs3-topbar-h: 32px; --hs3-mobile-h: 50px; --hs3-mobile-h-compact: 46px; }
}

/* AÑADIDO al bloque literal de §4.3: tipografías con prefijo propio. El
   prototipo usaba --font-heading/--font-ui, nombres sueltos prohibidos por
   §4.2 §1; se mapean a los del sitio (prido-design-tokens.css:77-78). */
:root {
  --hs3-font-heading: var(--prido-font-heading, 'Outfit', 'Avenir Next', 'Segoe UI', system-ui, sans-serif);
  --hs3-font-ui:      var(--prido-font-ui, 'Noto Sans', 'Helvetica Neue', Arial, sans-serif);
}

/* Color: el PMH ENTRA en el scope — su raíz .prido-hs-pmh es hermana de .prido-hs.
   AÑADIDO a la lista literal: #prido-hs-offcanvas. El offcanvas v3 NO lleva la
   clase .prido-hs3-layer (§3.6 lo declara .prido-hs-offcanvas.prido-hs3-drawer),
   así que sin este cuarto scope el drawer se quedaría sin tokens de color. */
.prido-hs,
.prido-hs-pmh,
.prido-hs3-layer,
#prido-hs-offcanvas {
  /* — mapeo 1:1 con prido-design-tokens.css (theme-aware por :root[data-theme]) — */
  --hs3-ink:            var(--prido-theme-ink);
  --hs3-muted:          var(--prido-theme-muted);
  --hs3-border:         var(--prido-theme-border);
  --hs3-border-strong:  var(--prido-theme-border-strong);
  --hs3-canvas:         var(--prido-theme-canvas);
  --hs3-canvas-soft:    var(--prido-theme-canvas-soft);
  --hs3-overlay:        var(--prido-theme-overlay);
  --hs3-shadow:         var(--prido-theme-shadow, 0 20px 44px rgba(18,29,42,.12));
  --hs3-shadow-soft:    var(--prido-theme-shadow-soft, 0 12px 24px rgba(18,29,42,.06));
  --hs3-primary:        var(--prido-primary);      /* prido-design-tokens.css:13 = var(--wd-primary-color,#5e81a2) */
  --hs3-teal:           var(--prido-secondary);    /* prido-design-tokens.css:14 = var(--wd-secondary-color,#2dc6c1) */

  /* — tokens que NO existen en el sitio: se CREAN aquí — */
  --hs3-ink-soft:       #2f4256;
  --hs3-surface:        #ffffff;
  --hs3-surface-alt:    #f8fbfd;
  --hs3-hover-fill:     rgba(26, 42, 58, .08);
  --hs3-glass:          rgba(248, 250, 252, .78);
  --hs3-glass-border:   rgba(201, 212, 221, .62);
  --hs3-primary-text:   #4a6b8a;
  --hs3-teal-deep:      #0e7e7a;
  --hs3-teal-tint:      rgba(45, 198, 193, .12);
  --hs3-badge-bg:       #2dc6c1;
  --hs3-badge-fg:       #0c1219;
  --hs3-cta-bg:         #1a2a3a;
  --hs3-cta-fg:         #ffffff;
  --hs3-cta-bg-hover:   #24394f;
  --hs3-danger:         #b4441c;
  --hs3-success:        #1c7c5a;
  --hs3-skeleton:       #e8eef3;
}

/* Dark: sólo los tokens que NO derivan de --prido-theme-* */
:root[data-theme="dark"] .prido-hs,
:root[data-theme="dark"] .prido-hs-pmh,
:root[data-theme="dark"] .prido-hs3-layer,
:root[data-theme="dark"] #prido-hs-offcanvas {
  --hs3-ink-soft:     #c9d6e0;
  --hs3-surface:      #121c26;
  --hs3-surface-alt:  #18222d;
  --hs3-hover-fill:   rgba(237, 244, 248, .09);
  --hs3-glass:        rgba(10, 19, 27, .74);
  --hs3-glass-border: rgba(255, 255, 255, .08);
  --hs3-primary-text: #9dbbd6;
  --hs3-teal-deep:    #2dc6c1;
  --hs3-teal-tint:    rgba(45, 198, 193, .16);
  --hs3-badge-bg:     #17a39c;
  --hs3-badge-fg:     #04241f;
  --hs3-cta-bg:       #2dc6c1;
  --hs3-cta-fg:       #0c1219;
  --hs3-cta-bg-hover: #4bd3ce;
  --hs3-danger:       #f0906c;
  --hs3-success:      #5fd3a5;
  --hs3-skeleton:     #1a2632;
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) .prido-hs,
  :root:not([data-theme="light"]) .prido-hs-pmh,
  :root:not([data-theme="light"]) .prido-hs3-layer,
  :root:not([data-theme="light"]) #prido-hs-offcanvas {
    --hs3-ink-soft:     #c9d6e0;
    --hs3-surface:      #121c26;
    --hs3-surface-alt:  #18222d;
    --hs3-hover-fill:   rgba(237, 244, 248, .09);
    --hs3-glass:        rgba(10, 19, 27, .74);
    --hs3-glass-border: rgba(255, 255, 255, .08);
    --hs3-primary-text: #9dbbd6;
    --hs3-teal-deep:    #2dc6c1;
    --hs3-teal-tint:    rgba(45, 198, 193, .16);
    --hs3-badge-bg:     #17a39c;
    --hs3-badge-fg:     #04241f;
    --hs3-cta-bg:       #2dc6c1;
    --hs3-cta-fg:       #0c1219;
    --hs3-cta-bg-hover: #4bd3ce;
    --hs3-danger:       #f0906c;
    --hs3-success:      #5fd3a5;
    --hs3-skeleton:     #1a2632;
  }
}


/* ============ §2 · Reset acotado (parts_css.py:95-109 recortado)
   NO se portan html/body/a/ul/h1-h4/:focus-visible globales: pisan
   prido-design-tokens.css y rompen listas del blog. ============ */
.prido-hs, .prido-hs *, .prido-hs *::before, .prido-hs *::after,
.prido-hs3-layer, .prido-hs3-layer *, .prido-hs3-layer *::before, .prido-hs3-layer *::after,
#prido-hs-offcanvas, #prido-hs-offcanvas *, #prido-hs-offcanvas *::before, #prido-hs-offcanvas *::after { box-sizing: border-box; }

.prido-hs .is-hidden,
.prido-hs3-layer .is-hidden,
#prido-hs-offcanvas .is-hidden { display: none !important; }

.prido-hs .prido-hs3-sr,
.prido-hs3-layer .prido-hs3-sr,
#prido-hs-offcanvas .prido-hs3-sr {
  position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}
/* ⚠ .prido-hs3-b2b__sr NO va aquí: tools.php imprime __full, __short y __sr a la
   vez, así que un visually-hidden permanente duplicaría el nombre accesible del
   CTA («Empresas Cotización Empresas», WCAG 2.5.3). Se apaga por defecto y sólo
   se repone en la banda icon-only de ≤1199 (§18). */
.prido-hs .prido-hs3-b2b__sr { display: none; }

/* Accesibilidad (r2.css:1841-1852) */
.prido-hs *:focus-visible,
.prido-hs3-layer *:focus-visible,
#prido-hs-offcanvas *:focus-visible { outline: 2px solid var(--hs3-teal, #2dc6c1); outline-offset: 2px; }
.prido-hs *, .prido-hs-offcanvas *, .prido-hs3-layer * { -webkit-tap-highlight-color: transparent; }

.prido-hs img, .prido-hs3-layer img, #prido-hs-offcanvas img { display: block; max-width: 100%; }
.prido-hs ul, .prido-hs3-layer ul, #prido-hs-offcanvas ul { list-style: none; margin: 0; padding: 0; }
.prido-hs button, .prido-hs3-layer button, #prido-hs-offcanvas button { font: inherit; color: inherit; }


/* ============ §3 · Iconos + botones base (parts_css.py:112-129)
   Acotados a los cuatro scopes; se conservan los fill/stroke !important de
   r2.css:591-601 porque WoodMart pinta SVGs con fill heredado. ============ */
.prido-hs .prido-hs-icon,
.prido-hs-pmh .prido-hs-icon,
.prido-hs3-layer .prido-hs-icon,
#prido-hs-offcanvas .prido-hs-icon {
  display: block !important; width: 20px; height: 20px; flex: 0 0 auto;
  fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round;
}
/* ⚠ prido_hs3_icon() NUNCA emite --sm/--xs (sólo `prido-hs-icon--<clave>`), y la
   regla base de arriba gana a los atributos width/height del <svg>. Por eso los
   tamaños distintos de 20px se declaran por contexto, con el MISMO peso que la
   base (el scope de #prido-hs-offcanvas vale 1-1-0). */
.prido-hs .prido-hs-icon--sm,
.prido-hs3-layer .prido-hs-icon--sm,
#prido-hs-offcanvas .prido-hs-icon--sm { width: 16px; height: 16px; }
.prido-hs .prido-hs-icon--xs,
.prido-hs3-layer .prido-hs-icon--xs,
#prido-hs-offcanvas .prido-hs-icon--xs { width: 14px; height: 14px; }

/* 14px: píldora «Top ventas» y su CTA, «Ver toda la categoría» del offcanvas y
   el pie del buscador (tanto el SSR como el ICON.arrow que inyecta el JS). */
.prido-hs .prido-hs3-mega__feature-tag .prido-hs-icon,
.prido-hs .prido-hs3-mega__feature-cta .prido-hs-icon,
#prido-hs-offcanvas .prido-hs3-oc__all .prido-hs-icon,
.prido-hs3-layer .prido-hs3-search__all .prido-hs-icon { width: 14px; height: 14px; }

/* 22px: hamburguesa de la barra móvil (mobile-bar.php:30). */
.prido-hs .prido-hs-mobile__hamburger .prido-hs-icon { width: 22px; height: 22px; }

/* 16px: cualquier icono dentro de un .prido-btn y el eyebrow del modal B2B. */
.prido-hs .prido-btn .prido-hs-icon,
.prido-hs3-layer .prido-btn .prido-hs-icon,
#prido-hs-offcanvas .prido-btn .prido-hs-icon,
.prido-hs3-layer .prido-hs3-b2b__eyebrow .prido-hs-icon { width: 16px; height: 16px; }

.prido-hs .prido-iconbtn svg, .prido-hs .prido-iconbtn svg *,
.prido-hs3-layer .prido-iconbtn svg, .prido-hs3-layer .prido-iconbtn svg *,
#prido-hs-offcanvas .prido-iconbtn svg, #prido-hs-offcanvas .prido-iconbtn svg * {
  display: block !important; fill: none !important; stroke: currentColor !important;
  opacity: 1 !important; visibility: visible !important; pointer-events: none;
}

/* Botón pastilla */
.prido-hs .prido-btn,
.prido-hs3-layer .prido-btn,
#prido-hs-offcanvas .prido-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  min-height: 44px; padding: 0 18px; border-radius: 999px; border: 1px solid transparent;
  font-family: var(--hs3-font-heading); font-weight: 600; font-size: 14px; letter-spacing: .005em;
  cursor: pointer; text-decoration: none; white-space: nowrap; background: transparent;
  transition: background var(--hs3-dur) var(--hs3-ease), color var(--hs3-dur) var(--hs3-ease),
              border-color var(--hs3-dur) var(--hs3-ease), transform var(--hs3-dur) var(--hs3-ease),
              box-shadow var(--hs3-dur) var(--hs3-ease);
}
.prido-hs .prido-btn--cta,
.prido-hs3-layer .prido-btn--cta,
#prido-hs-offcanvas .prido-btn--cta { background: var(--hs3-cta-bg); color: var(--hs3-cta-fg); }
.prido-hs .prido-btn--cta:hover,
.prido-hs3-layer .prido-btn--cta:hover,
#prido-hs-offcanvas .prido-btn--cta:hover { background: var(--hs3-cta-bg-hover); color: var(--hs3-cta-fg); transform: translateY(-1px); box-shadow: var(--hs3-shadow-soft); }
.prido-hs .prido-btn--cta:active,
.prido-hs3-layer .prido-btn--cta:active,
#prido-hs-offcanvas .prido-btn--cta:active { transform: translateY(0) scale(.98); }
.prido-hs .prido-btn--outline,
.prido-hs3-layer .prido-btn--outline,
#prido-hs-offcanvas .prido-btn--outline { background: transparent; color: var(--hs3-ink); border-color: var(--hs3-border-strong); }
.prido-hs .prido-btn--outline:hover,
.prido-hs3-layer .prido-btn--outline:hover,
#prido-hs-offcanvas .prido-btn--outline:hover { background: var(--hs3-hover-fill); color: var(--hs3-ink); }
.prido-hs .prido-btn--ghost,
.prido-hs3-layer .prido-btn--ghost,
#prido-hs-offcanvas .prido-btn--ghost { background: transparent; color: var(--hs3-ink); }
.prido-hs .prido-btn--ghost:hover,
.prido-hs3-layer .prido-btn--ghost:hover,
#prido-hs-offcanvas .prido-btn--ghost:hover { background: var(--hs3-hover-fill); color: var(--hs3-ink); }
.prido-hs .prido-btn--block,
.prido-hs3-layer .prido-btn--block,
#prido-hs-offcanvas .prido-btn--block { width: 100%; }
.prido-hs .prido-btn--sm,
.prido-hs3-layer .prido-btn--sm,
#prido-hs-offcanvas .prido-btn--sm { min-height: 36px; padding: 0 14px; font-size: 13px; }

/* Botón icono (44px de área táctil) */
.prido-hs .prido-iconbtn,
.prido-hs-pmh .prido-iconbtn,
.prido-hs3-layer .prido-iconbtn,
#prido-hs-offcanvas .prido-iconbtn {
  position: relative; display: inline-flex; align-items: center; justify-content: center;
  width: 44px; height: 44px; padding: 0; border: 1px solid transparent; border-radius: var(--hs3-r-btn);
  background: transparent; background-image: none; box-shadow: none; color: var(--hs3-ink);
  cursor: pointer; appearance: none; -webkit-appearance: none; text-decoration: none; font: inherit;
  transition: background var(--hs3-dur) var(--hs3-ease), color var(--hs3-dur) var(--hs3-ease), transform var(--hs3-dur) var(--hs3-ease);
}
.prido-hs .prido-iconbtn:hover,
.prido-hs3-layer .prido-iconbtn:hover,
#prido-hs-offcanvas .prido-iconbtn:hover { background: var(--hs3-hover-fill); color: var(--hs3-ink); border-color: transparent; box-shadow: none; }
.prido-hs .prido-iconbtn:active,
.prido-hs3-layer .prido-iconbtn:active,
#prido-hs-offcanvas .prido-iconbtn:active { transform: scale(.93); }

/* Resets duros de r2.css:611-660: WoodMart inyecta ::before en los
   disparadores de búsqueda y en el carrito. Sin esto salen dos iconos. */
.prido-hs .prido-hs-tools__search::before,
.prido-hs .prido-hs-tools__search::after,
.prido-hs .prido-hs-tools__cart::before,
.prido-hs .prido-hs-tools__cart::after { content: none !important; display: none !important; }
.prido-hs .prido-hs-tools__search,
.prido-hs .prido-hs-tools__cart { color: var(--hs3-ink) !important; background-image: none !important; }
.prido-hs .prido-hs-tools__cart svg { width: 20px !important; height: 20px !important; overflow: visible !important; }
.prido-hs .prido-hs-tools__cart svg * { stroke-width: 1.9 !important; }


/* ============ §4 · Tooltips (parts_css.py:132-135)
   ACOTADOS: [data-tip] global colisiona con plugins de terceros. ============ */
.prido-hs [data-tip],
.prido-hs3-layer [data-tip] { position: relative; }
.prido-hs [data-tip]::after,
.prido-hs3-layer [data-tip]::after {
  content: attr(data-tip); position: absolute; left: 50%; top: calc(100% + 8px); translate: -50% 0;
  padding: 6px 10px; border-radius: 8px; background: var(--hs3-ink); color: var(--hs3-canvas);
  font-family: var(--hs3-font-ui); font-size: 12px; font-weight: 500; line-height: 1.2; white-space: nowrap;
  opacity: 0; visibility: hidden; pointer-events: none; z-index: 60;
  transition: opacity .16s var(--hs3-ease), translate .16s var(--hs3-ease), visibility 0s linear .16s;
}
.prido-hs [data-tip]:hover::after, .prido-hs [data-tip]:focus-visible::after,
.prido-hs3-layer [data-tip]:hover::after, .prido-hs3-layer [data-tip]:focus-visible::after {
  opacity: 1; visibility: visible; translate: -50% 2px; transition-delay: .35s, .35s, .35s;
}
/* Con el panel abierto el tooltip estorba (§5.2, módulo tooltips = CSS puro). */
.prido-hs [data-tip][aria-expanded="true"]::after,
.prido-hs3-layer [data-tip][aria-expanded="true"]::after,
.prido-hs .prido-no-tip[data-tip]::after { display: none; }


/* ============ §5 · Badges — la píldora base y .is-visible/.is-pending/.is-bump
   ya están en §0b (compartidas con el PMH). Aquí sólo lo decorativo. ============ */
.prido-hs .prido-hs-tools__badge.is-zero { opacity: 0; }
.prido-hs.is-compact .prido-hs-tools__badge { --prido-badge-ring: var(--hs3-glass); }

/* Contador textual (panel de cuenta y filas del offcanvas) */
.prido-hs .prido-hs3-count,
#prido-hs-offcanvas .prido-hs3-count {
  font-family: var(--hs3-font-ui); font-size: 12.5px; font-weight: 600; color: var(--hs3-muted);
  font-variant-numeric: tabular-nums;
}


/* ============ §6 · Shell del header (parts_css.py:145-146)
   A-1: fixed + spacer, NO sticky. z-index 1002 (r2.css:49-54). ============ */
.prido-hs {
  position: fixed;
  top: var(--prido-wp-adminbar-offset, 0px);
  left: 0; right: 0;
  z-index: var(--hs3-z-header);
  font-family: var(--hs3-font-ui);
  font-size: 15px;
  line-height: 1.5;
  color: var(--hs3-ink);
}
/* Container: valor real del sitio (r2.css:258-267), no el --container:1520px
   del prototipo. */
.prido-hs3-container {
  width: min(1600px, calc(100% - 5%));
  max-width: none;
  margin: 0 auto;
  padding: 0 clamp(18px, 2vw, 32px);
}


/* ============ §7 · Topbar + rotador (parts_css.py:149-163) ============ */
.prido-hs3-topbar {
  height: var(--hs3-topbar-h);
  max-height: var(--hs3-topbar-h);
  background: var(--hs3-canvas-soft);
  color: var(--hs3-ink-soft);
  font-size: 12.5px; font-weight: 500; letter-spacing: .01em;
  box-shadow: inset 0 -1px 0 var(--hs3-border);
  overflow: hidden; position: relative; z-index: 2;
  transition: height var(--hs3-dur) var(--hs3-ease), max-height var(--hs3-dur) var(--hs3-ease), opacity var(--hs3-dur) var(--hs3-ease);
}
.prido-hs3-topbar .prido-hs3-container { display: flex; align-items: center; justify-content: space-between; gap: 24px; height: 100%; }
.prido-hs3-topbar__contact { display: flex; align-items: center; gap: 4px; min-width: 0; }
.prido-hs3-topbar__link {
  display: inline-flex; align-items: center; gap: 7px; padding: 6px 10px; border-radius: 999px;
  color: inherit; text-decoration: none; white-space: nowrap;
  transition: color var(--hs3-dur) var(--hs3-ease), background var(--hs3-dur) var(--hs3-ease);
}
.prido-hs3-topbar__link:hover { color: var(--hs3-teal-deep); background: var(--hs3-hover-fill); }
.prido-hs3-topbar__link .prido-hs-icon { width: 15px; height: 15px; stroke-width: 1.9; }
.prido-hs3-topbar__sep { width: 1px; height: 14px; background: var(--hs3-border-strong); margin: 0 4px; flex: 0 0 auto; }
.prido-hs3-topbar__benefits { display: flex; align-items: center; gap: 22px; min-width: 0; }
.prido-hs3-topbar__benefit { display: inline-flex; align-items: center; gap: 7px; white-space: nowrap; color: var(--hs3-ink-soft); }
.prido-hs3-topbar__benefit .prido-hs-icon { width: 15px; height: 15px; color: var(--hs3-teal-deep); }
.prido-hs3-topbar__benefit strong { font-weight: 600; color: var(--hs3-ink); }
.prido-hs3-topbar__rotator {
  position: relative; display: none; height: 100%; min-width: 0; flex: 1 1 auto;
  align-items: center; justify-content: flex-end; overflow: hidden;
}
.prido-hs3-topbar__rotator .prido-hs3-topbar__benefit {
  position: absolute; right: 0; opacity: 0; translate: 0 8px;
  transition: opacity .4s var(--hs3-ease), translate .4s var(--hs3-ease);
}
.prido-hs3-topbar__rotator .prido-hs3-topbar__benefit.is-active { opacity: 1; translate: 0 0; }


/* ============ §8 · Navbar + logo + glass (parts_css.py:166-177) ============ */
.prido-hs-navbar { position: relative; }
.prido-hs3-navbar {
  display: none;                        /* se enciende en ≥1025 (§18) */
  position: relative; z-index: 1;
  background: var(--hs3-canvas);
  border-bottom: none; box-shadow: none; overflow: visible;
  transition: background var(--hs3-dur) var(--hs3-ease), box-shadow var(--hs3-dur) var(--hs3-ease);
}
.prido-hs3-navbar > .prido-hs3-container {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  height: var(--hs3-nav-h);
  column-gap: clamp(18px, 3vw, 52px);
  overflow: visible;
  transition: height var(--hs3-dur) var(--hs3-ease);
}
.prido-hs3-logo { display: inline-flex; align-items: center; flex: 0 0 auto; height: 100%; justify-self: start; text-decoration: none; }
.prido-hs .prido-hs3-logo-img { display: block; width: auto; height: 60px; max-width: 340px; object-fit: contain; transition: height var(--hs3-dur) var(--hs3-ease); }

/* Estado condensado / compacto: el topbar se colapsa y la navbar toma glass.
   `sticky` (§5.2) pone .is-compact Y .is-condensed en el mismo tick (A-2b);
   .is-condensed además saca el topbar del flujo, como r2.css:239-249, para
   que syncHeaderOffset() mida sólo la navbar. */
.prido-hs.is-compact .prido-hs3-topbar { height: 0; max-height: 0; opacity: 0; pointer-events: none; }
.prido-hs.is-condensed .prido-hs3-topbar {
  position: absolute; top: 0; left: 0; right: 0;
  height: 0; max-height: 0; opacity: 0; pointer-events: none; overflow: hidden;
  transform: translateY(-100%);
}
.prido-hs.is-compact .prido-hs3-navbar {
  background: var(--hs3-glass);
  -webkit-backdrop-filter: saturate(150%) blur(18px);
  backdrop-filter: saturate(150%) blur(18px);
  box-shadow: inset 0 -1px 0 var(--hs3-glass-border), 0 10px 30px rgba(18, 29, 42, .08);
}
:root[data-theme="dark"] .prido-hs.is-compact .prido-hs3-navbar { box-shadow: inset 0 -1px 0 var(--hs3-glass-border), 0 12px 34px rgba(0, 0, 0, .4); }
.prido-hs.is-compact .prido-hs3-navbar > .prido-hs3-container { height: var(--hs3-nav-h-compact); }
.prido-hs.is-compact .prido-hs .prido-hs3-logo-img,
.prido-hs.is-compact .prido-hs3-logo-img { height: 46px; }

/* .is-stuck (r2.css:1635-1645): plano, sin costura contra el cuerpo. */
.prido-hs-navbar--desktop.is-stuck,
.prido-hs-navbar--mobile.is-stuck { box-shadow: none; background: var(--hs3-canvas); }


/* ============ §9 · Nav + subrayado teal (parts_css.py:180-191)
   El :hover NO abre el mega: eso lo hace el módulo JS `mega`. ============ */
.prido-hs3-nav { display: flex; align-items: center; justify-content: center; min-width: 0; }
.prido-hs3-nav__list { display: flex; align-items: center; gap: 2px; }
.prido-hs3-nav__item { position: relative; }
.prido-hs3-nav__link {
  position: relative; display: inline-flex; align-items: center; gap: 6px; height: 40px;
  padding: 0 10px; border-radius: 999px; border: 0; background: transparent;
  font-family: var(--hs3-font-heading); font-size: 14.5px; font-weight: 500; letter-spacing: .005em;
  color: var(--hs3-ink); text-decoration: none; white-space: nowrap; cursor: pointer;
  transition: color var(--hs3-dur) var(--hs3-ease);
}
.prido-hs3-nav__label { position: relative; display: inline-flex; align-items: center; line-height: 1; white-space: nowrap; }
.prido-hs3-nav__label::after {
  content: ""; position: absolute; left: 0; right: 0; bottom: -9px; height: 2px; border-radius: 2px;
  background: var(--hs3-teal); transform: scaleX(0); transform-origin: center;
  transition: transform var(--hs3-dur) var(--hs3-ease);
}
.prido-hs3-nav__link:hover .prido-hs3-nav__label::after,
.prido-hs3-nav__link:focus-visible .prido-hs3-nav__label::after,
.prido-hs3-nav__item.is-current > .prido-hs3-nav__link .prido-hs3-nav__label::after,
.prido-hs3-nav__item.is-open > .prido-hs3-nav__link .prido-hs3-nav__label::after { transform: scaleX(1); }
.prido-hs3-nav__link:hover,
.prido-hs3-nav__item.is-open > .prido-hs3-nav__link { color: var(--hs3-primary-text); }
.prido-hs3-nav__chev {
  width: 14px !important; height: 14px !important; stroke-width: 2; color: var(--hs3-muted);
  transition: transform var(--hs3-dur) var(--hs3-ease), color var(--hs3-dur) var(--hs3-ease);
}
.prido-hs3-nav__item.is-open .prido-hs3-nav__chev { transform: rotate(180deg); color: var(--hs3-primary-text); }
.prido-hs3-nav__item--offer .prido-hs3-nav__link { color: var(--hs3-teal-deep); font-weight: 600; }
.prido-hs3-nav__dot { width: 7px; height: 7px; border-radius: 50%; background: var(--hs3-teal); box-shadow: 0 0 0 3px var(--hs3-teal-tint); flex: 0 0 auto; }


/* ============ §10 · Mega (parts_css.py:194-223)
   Los paneles son hermanos del <ul> e hijos directos de .prido-hs3-navbar
   (§3.3), por eso top:100% + left:50% los centra sobre la navbar.
   A-14: sin bloque de precio ni chip de stock en la feature card. ============ */
.prido-hs3-mega {
  position: absolute; top: 100%; left: 50%; translate: -50% -6px;
  z-index: var(--hs3-z-mega);
  width: min(920px, calc(100vw - 48px));
  padding: 26px 28px 18px;
  background: var(--hs3-surface); color: var(--hs3-ink);
  border: 1px solid var(--hs3-border); border-radius: var(--hs3-r-panel);
  box-shadow: var(--hs3-shadow);
  opacity: 0; visibility: hidden; pointer-events: none;
  transition: opacity var(--hs3-dur) var(--hs3-ease), translate var(--hs3-dur) var(--hs3-ease), visibility 0s linear var(--hs3-dur);
}
.prido-hs3-mega.is-open { opacity: 1; visibility: visible; pointer-events: auto; translate: -50% 0; transition-delay: 0s; }
.prido-hs3-mega__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) 272px; gap: 8px 40px; }
/* §7.2: --single = SIN tarjeta «Top ventas» (lo pone el PHP con `empty($top)`),
   así que la pista de 272px no debe reservarse. OJO: en el prototipo
   (parts_css.py:197) el mismo modificador significaba «una sola columna de
   enlaces»; ese caso es ahora --cols1. */
.prido-hs3-mega__grid--single { grid-template-columns: repeat(auto-fit, minmax(0, 1fr)); }
/* Una columna de enlaces + tarjeta: sin esto la feature caería en la 2.ª pista
   1fr y la de 272px quedaría vacía. */
.prido-hs3-mega__grid--cols1 { grid-template-columns: minmax(0, 1fr) 272px; }
.prido-hs3-mega__col { min-width: 0; }
.prido-hs3-mega__eyebrow {
  font-family: var(--hs3-font-heading); font-size: 11px; font-weight: 700; letter-spacing: .12em;
  text-transform: uppercase; color: var(--hs3-muted); margin: 2px 0 10px;
}
.prido-hs3-mega__link {
  display: flex; align-items: center; justify-content: space-between; gap: 20px;
  padding: 8px; margin: 0 -8px; border-radius: 8px;
  font-size: 14px; font-weight: 500; color: var(--hs3-ink); text-decoration: none;
  transition: color var(--hs3-dur) var(--hs3-ease), background var(--hs3-dur) var(--hs3-ease);
}
.prido-hs3-mega__link:hover,
.prido-hs3-mega__link:focus-visible { color: var(--hs3-primary-text); background: var(--hs3-hover-fill); }
.prido-hs3-mega__count { font-size: 13px; font-weight: 500; color: var(--hs3-muted); font-variant-numeric: tabular-nums; }
.prido-hs3-mega__link:hover .prido-hs3-mega__count { color: var(--hs3-primary-text); }
.prido-hs3-mega__feature {
  display: flex; flex-direction: column; gap: 10px; padding: 14px; border-radius: 14px;
  background: var(--hs3-canvas-soft); border: 1px solid var(--hs3-border); color: inherit; text-decoration: none;
  transition: border-color var(--hs3-dur) var(--hs3-ease), transform var(--hs3-dur) var(--hs3-ease), box-shadow var(--hs3-dur) var(--hs3-ease);
}
.prido-hs3-mega__feature:hover { border-color: var(--hs3-teal); color: inherit; transform: translateY(-2px); box-shadow: var(--hs3-shadow-soft); }
.prido-hs3-mega__feature-head { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.prido-hs3-mega__feature-tag {
  display: inline-flex; align-items: center; gap: 6px; padding: 4px 9px; border-radius: 999px;
  background: var(--hs3-teal); color: #0c1219;
  font-family: var(--hs3-font-heading); font-size: 11px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase;
}
.prido-hs3-mega__feature-img {
  aspect-ratio: 4 / 3; border-radius: 10px; background: #fff; overflow: hidden;
  display: flex; align-items: center; justify-content: center;
}
.prido-hs3-mega__feature-img img { width: 100%; height: 100%; object-fit: contain; mix-blend-mode: multiply; }
:root[data-theme="dark"] .prido-hs3-mega__feature-img { background: #e9eef3; }
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) .prido-hs3-mega__feature-img { background: #e9eef3; }
}
.prido-hs3-mega__feature-name { font-family: var(--hs3-font-heading); font-size: 15px; font-weight: 600; line-height: 1.25; color: var(--hs3-ink); }
.prido-hs3-mega__feature-cta { display: inline-flex; align-items: center; gap: 6px; font-family: var(--hs3-font-heading); font-size: 13px; font-weight: 700; color: var(--hs3-primary-text); }
.prido-hs3-mega__foot {
  display: flex; align-items: center; justify-content: space-between; gap: 18px;
  margin-top: 18px; padding-top: 14px; border-top: 1px solid var(--hs3-border);
}
.prido-hs3-mega__hint { font-size: 13px; color: var(--hs3-muted); }
.prido-hs3-mega__cta {
  display: inline-flex; align-items: center; gap: 7px; text-decoration: none;
  font-family: var(--hs3-font-heading); font-size: 14px; font-weight: 700; color: var(--hs3-primary-text); white-space: nowrap;
}
.prido-hs3-mega__cta .prido-hs-icon { width: 16px; height: 16px; transition: transform var(--hs3-dur) var(--hs3-ease); }
.prido-hs3-mega__cta:hover .prido-hs-icon { transform: translateX(3px); }


/* ============ §11 · Tools, B2B, cuenta, tema (parts_css.py:226-252) ============ */
.prido-hs3-tools { display: flex; align-items: center; gap: 4px; flex: 0 0 auto; justify-self: end; }

/* CTA B2B. OJO: .prido-hs3-b2b es a la vez el botón (dentro de .prido-hs3-tools)
   y la raíz del modal (.prido-hs3-layer.prido-hs3-b2b) — se desambigua por scope. */
.prido-hs3-tools .prido-hs3-b2b {
  display: inline-flex; align-items: center; gap: 8px; height: 40px; padding: 0 16px 0 14px;
  margin-right: 8px; border-radius: 999px;
  /* v3.1 · variante A: teal-tinta (misma familia que .prido-hs3-tag); sin ink. */
  border: 1px solid rgba(45, 198, 193, .6);
  background: var(--hs3-teal-tint);
  /* Texto #0b6b68 (no el token #0e7e7a): 5,1:1 AA sobre la tinta en claro; en oscuro vuelve al token (#2dc6c1). */
  color: #0b6b68;
  font-family: var(--hs3-font-heading); font-size: 14px; font-weight: 600; white-space: nowrap; cursor: pointer;
  transition: background var(--hs3-dur) var(--hs3-ease), transform var(--hs3-dur) var(--hs3-ease), box-shadow var(--hs3-dur) var(--hs3-ease);
}
.prido-hs3-tools .prido-hs3-b2b .prido-hs-icon { width: 18px; height: 18px; }
.prido-hs3-tools .prido-hs3-b2b:hover { background: rgba(45, 198, 193, .26); border-color: rgba(45, 198, 193, .9); transform: translateY(-1px); box-shadow: var(--hs3-shadow-soft); }
:root[data-theme="dark"] .prido-hs3-tools .prido-hs3-b2b { color: var(--hs3-teal-deep); }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .prido-hs3-tools .prido-hs3-b2b { color: var(--hs3-teal-deep); } }
.prido-hs3-tools .prido-hs3-b2b:active { transform: translateY(0) scale(.98); }
/* Con etiqueta visible el tooltip sobra; vuelve en ≤1199 (icon-only, §18). */
.prido-hs3-tools .prido-hs3-b2b[data-tip]::after { display: none; }
/* Escalones de rótulo: base = corto; ≥1560 = completo; ≤1199 = icon-only (§18). */
.prido-hs3-b2b__full { display: none; }
.prido-hs3-b2b__short { display: inline; }

/* Cuenta */
.prido-hs3-account { position: relative; }
.prido-hs3-account__panel {
  position: absolute; top: calc(100% + 10px); right: 0; z-index: var(--hs3-z-dropdown);
  width: 272px; padding: 18px;
  background: var(--hs3-surface); border: 1px solid var(--hs3-border); border-radius: 16px;
  box-shadow: var(--hs3-shadow);
  opacity: 0; visibility: hidden; translate: 0 -6px; pointer-events: none;
  transition: opacity var(--hs3-dur) var(--hs3-ease), translate var(--hs3-dur) var(--hs3-ease), visibility 0s linear var(--hs3-dur);
}
.prido-hs3-account__panel.is-open { opacity: 1; visibility: visible; translate: 0 0; pointer-events: auto; transition-delay: 0s; }
.prido-hs3-account__greet { font-family: var(--hs3-font-heading); font-size: 16px; font-weight: 600; margin-bottom: 2px; color: var(--hs3-ink); }
.prido-hs3-account__sub { font-size: 13px; color: var(--hs3-muted); margin: 0 0 14px; }
.prido-hs3-account__actions { display: flex; flex-direction: column; gap: 8px; }
.prido-hs3-account__list { margin-top: 14px; padding-top: 12px; border-top: 1px solid var(--hs3-border); display: flex; flex-direction: column; }
.prido-hs3-account__link {
  display: flex; align-items: center; gap: 10px; min-height: 40px; padding: 0 8px; margin: 0 -8px;
  border-radius: 8px; color: var(--hs3-ink); text-decoration: none; font-size: 14px; font-weight: 500;
  transition: background var(--hs3-dur) var(--hs3-ease), color var(--hs3-dur) var(--hs3-ease);
}
.prido-hs3-account__link:hover { background: var(--hs3-hover-fill); color: var(--hs3-primary-text); }
.prido-hs3-account__link .prido-hs-icon { width: 17px; height: 17px; color: var(--hs3-muted); }
.prido-hs3-account__link .prido-hs3-count { margin-left: auto; }
/* v3.1 · Apariencia (Claro / Oscuro / Auto) dentro del panel de cuenta. */
.prido-hs3-account__ap { margin-top: 12px; padding-top: 12px; border-top: 1px solid var(--hs3-border); }
.prido-hs3-account__ap-label {
  font-family: var(--hs3-font-heading); font-size: 11px; font-weight: 700; letter-spacing: .12em;
  text-transform: uppercase; color: var(--hs3-muted); margin: 0 0 8px;
}
.prido-hs3-tseg {
  display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 2px; padding: 3px;
  border-radius: 999px; background: var(--hs3-canvas-soft); border: 1px solid var(--hs3-border);
}
.prido-hs3-tseg__btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 6px; height: 32px; min-width: 0;
  border: 1px solid transparent; border-radius: 999px; background: transparent; color: var(--hs3-muted);
  font-family: var(--hs3-font-ui); font-size: 12.5px; font-weight: 600; cursor: pointer; white-space: nowrap;
  transition: background var(--hs3-dur) var(--hs3-ease), color var(--hs3-dur) var(--hs3-ease), border-color var(--hs3-dur) var(--hs3-ease);
}
.prido-hs3-tseg__btn .prido-hs-icon { width: 14px; height: 14px; flex: 0 0 auto; }
.prido-hs3-tseg__btn:hover { color: var(--hs3-ink); }
.prido-hs3-tseg__btn[aria-pressed="true"] { background: var(--hs3-surface); color: var(--hs3-ink); border-color: var(--hs3-border-strong); box-shadow: 0 1px 2px rgba(18, 29, 42, .12); }
:root[data-theme="dark"] .prido-hs3-tseg__btn[aria-pressed="true"] { box-shadow: 0 1px 2px rgba(0, 0, 0, .5); }

/* Toggle de tema — markup de prido_hs_theme_toggle_markup() (helpers.php:164-175):
   .prido-hs3-theme + dos <span class="prido-hs-theme-toggle__icon --moon/--sun">.
   La conmutación por tema vive en §0b (compartida con el PMH). */
.prido-hs .prido-hs3-theme { overflow: hidden; isolation: isolate; line-height: 0; font-size: 0; }
.prido-hs .prido-hs3-theme .prido-hs-icon { width: 20px; height: 20px; stroke-width: 1.8px; }


/* ============ §12 · Barra móvil (parts_css.py:255-260) ============ */
.prido-hs3-mobile {
  display: none;                        /* se enciende en ≤1024 (§18) */
  position: relative; z-index: 1;
  background: var(--hs3-canvas);
  transition: background var(--hs3-dur) var(--hs3-ease), box-shadow var(--hs3-dur) var(--hs3-ease);
}
.prido-hs3-mobile > .prido-hs3-container {
  display: grid; grid-template-columns: 1fr auto 1fr; align-items: center;
  height: var(--hs3-mobile-h); padding: 0 8px;
  transition: height var(--hs3-dur) var(--hs3-ease);
}
.prido-hs.is-compact .prido-hs3-mobile > .prido-hs3-container { height: var(--hs3-mobile-h-compact); }
.prido-hs3-mobile__left { display: flex; align-items: center; justify-content: flex-start; }
.prido-hs3-mobile__logo { display: inline-flex; align-items: center; justify-self: center; text-decoration: none; }
.prido-hs3-mobile__logo .prido-hs3-logo-img { height: 42px; max-width: 200px; }
.prido-hs.is-compact .prido-hs3-mobile__logo .prido-hs3-logo-img { height: 36px; }
.prido-hs3-mobile__tools { display: flex; align-items: center; justify-content: flex-end; gap: 0; }


/* ============ §13 · Capas (parts_css.py:263-275, :356-361)
   SIN scrim compartido: cada capa trae su .prido-hs3-layer__backdrop.
   Estado cerrado = atributo [hidden]; abierto = quitar hidden + .is-open. ============ */
.prido-hs3-layer {
  position: fixed; inset: 0; z-index: var(--hs3-z-modal);
  display: flex; align-items: flex-start; justify-content: center;
  padding: 8vh 16px 24px; overflow-y: auto; overscroll-behavior: contain;
  font-family: var(--hs3-font-ui); font-size: 15px; line-height: 1.5; color: var(--hs3-ink);
}
/* [hidden] pierde ante cualquier display de autor: hay que reponerlo. */
.prido-hs3-layer[hidden] { display: none !important; }
.prido-hs3-layer__backdrop {
  position: fixed; inset: 0; z-index: 0; border: 0; padding: 0; margin: 0;
  background: var(--hs3-overlay);
  -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px);
  opacity: 0; transition: opacity var(--hs3-dur) var(--hs3-ease);
}
.prido-hs3-layer.is-open .prido-hs3-layer__backdrop { opacity: 1; }

.prido-hs3-modal__dialog {
  position: relative; z-index: 1;
  width: min(760px, 100%); max-height: 100%;
  display: flex; flex-direction: column;
  background: var(--hs3-surface); color: var(--hs3-ink);
  border: 1px solid var(--hs3-border); border-radius: 20px; box-shadow: var(--hs3-shadow);
  opacity: 0; translate: 0 12px; scale: .98;
  transition: opacity var(--hs3-dur) var(--hs3-ease), translate var(--hs3-dur) var(--hs3-ease), scale var(--hs3-dur) var(--hs3-ease);
}
.prido-hs3-layer.is-open .prido-hs3-modal__dialog { opacity: 1; translate: 0 0; scale: 1; }
.prido-hs3-modal__close { position: absolute; top: 10px; right: 10px; z-index: 2; width: 40px; height: 40px; border-radius: 10px; }

.prido-hs3-kbd {
  display: inline-flex; align-items: center; justify-content: center; min-width: 22px; height: 22px;
  padding: 0 6px; border-radius: 6px; border: 1px solid var(--hs3-border-strong);
  background: var(--hs3-canvas-soft); color: var(--hs3-muted);
  font-family: var(--hs3-font-ui); font-size: 11px; font-weight: 600;
}

/* Bloque «vacío/éxito» reutilizado por el modal B2B (§16). */
.prido-hs3-layer .prido-hs3-empty__icon {
  width: 64px; height: 64px; border-radius: 50%;
  background: var(--hs3-teal-tint); color: var(--hs3-teal-deep);
  display: flex; align-items: center; justify-content: center;
}
.prido-hs3-layer .prido-hs3-empty__icon .prido-hs-icon { width: 28px; height: 28px; }
.prido-hs3-layer .prido-hs3-empty__title { font-family: var(--hs3-font-heading); font-size: 18px; font-weight: 600; }
.prido-hs3-layer .prido-hs3-empty__text { font-size: 14px; color: var(--hs3-muted); margin: 0 0 8px; }

@keyframes prido-hs3-fade-in { from { opacity: 0; translate: 0 6px; } to { opacity: 1; translate: 0 0; } }


/* ============ §14 · Offcanvas (parts_css.py:324-353)
   Conserva .prido-hs-offcanvas, __panel, __backdrop, __close y `.is-open`
   como estado abierto: prido-cart-drawer.r1.js:219-223 depende de ello. ============ */
#prido-hs-offcanvas {
  position: fixed; inset: 0; z-index: var(--hs3-z-offcanvas);
  font-family: var(--hs3-font-ui); font-size: 15px; line-height: 1.5; color: var(--hs3-ink);
}
#prido-hs-offcanvas[hidden] { display: none !important; }
.prido-hs-offcanvas__backdrop {
  position: absolute; inset: 0; border: 0; padding: 0; margin: 0;
  background: var(--hs3-overlay); opacity: 0;
  transition: opacity var(--hs3-dur) var(--hs3-ease);
}
#prido-hs-offcanvas.is-open .prido-hs-offcanvas__backdrop { opacity: 1; }
.prido-hs3-drawer__panel {
  position: absolute; top: 0; bottom: 0;
  display: flex; flex-direction: column;
  width: min(372px, 92vw);
  background: var(--hs3-surface); color: var(--hs3-ink);
  box-shadow: var(--hs3-shadow);
  transition: translate var(--hs3-dur) var(--hs3-ease);
}
.prido-hs3-drawer--left .prido-hs3-drawer__panel { left: 0; translate: -100% 0; border-right: 1px solid var(--hs3-border); }
.prido-hs3-drawer--right .prido-hs3-drawer__panel { right: 0; translate: 100% 0; border-left: 1px solid var(--hs3-border); }
#prido-hs-offcanvas.is-open .prido-hs3-drawer__panel { translate: 0 0; }
.prido-hs3-drawer__body { flex: 1 1 auto; overflow-y: auto; overscroll-behavior: contain; -webkit-overflow-scrolling: touch; }

.prido-hs3-oc__head { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 10px 10px 18px; border-bottom: 1px solid var(--hs3-border); }
.prido-hs-offcanvas__logo { display: inline-flex; align-items: center; text-decoration: none; }
.prido-hs-offcanvas__logo .prido-hs-logo-img,
.prido-hs3-oc__logo-img { display: block; width: auto; height: 40px; max-width: 200px; object-fit: contain; }
.prido-hs-offcanvas__close { flex: 0 0 auto; }
.prido-hs3-oc__b2b { padding: 14px 18px 6px; }
.prido-hs3-oc__section { padding: 8px 10px; }
.prido-hs3-oc__eyebrow {
  font-family: var(--hs3-font-heading); font-size: 11px; font-weight: 700; letter-spacing: .12em;
  text-transform: uppercase; color: var(--hs3-muted); padding: 14px 8px 6px;
}
.prido-hs3-oc__row {
  display: flex; align-items: center; justify-content: space-between; gap: 12px;
  width: 100%; min-height: 48px; padding: 0 8px; border: 0; border-radius: 10px;
  background: transparent; color: var(--hs3-ink); text-decoration: none;
  font-family: var(--hs3-font-heading); font-size: 16px; font-weight: 500; text-align: left; cursor: pointer;
  transition: background var(--hs3-dur) var(--hs3-ease), color var(--hs3-dur) var(--hs3-ease);
}
.prido-hs3-oc__row:hover { background: var(--hs3-hover-fill); color: var(--hs3-ink); }
.prido-hs3-oc__row--offer { color: var(--hs3-teal-deep); font-weight: 600; }
.prido-hs3-oc__row--sub { font-family: var(--hs3-font-ui); font-size: 15px; min-height: 44px; padding-left: 20px; }
.prido-hs3-oc__row--sub2 { font-family: var(--hs3-font-ui); font-size: 14.5px; min-height: 42px; padding-left: 34px; font-weight: 500; }
.prido-hs3-oc__row-left { display: inline-flex; align-items: center; gap: 10px; min-width: 0; }
.prido-hs3-oc__row-right { display: inline-flex; align-items: center; gap: 8px; flex: 0 0 auto; position: relative; }
.prido-hs3-oc__chev {
  width: 16px !important; height: 16px !important; stroke-width: 2; color: var(--hs3-muted);
  transition: transform var(--hs3-dur) var(--hs3-ease), color var(--hs3-dur) var(--hs3-ease);
}
.prido-hs3-oc__row[aria-expanded="true"] { color: var(--hs3-primary-text); }
.prido-hs3-oc__row[aria-expanded="true"] .prido-hs3-oc__chev { transform: rotate(180deg); color: var(--hs3-primary-text); }
/* prido_hs3_icon() emite `prido-hs-icon prido-hs-icon--<clave>`, nunca `--lead`:
   se apunta al icono de la izquierda de la fila. Hace falta el prefijo del id
   porque la regla base de §3 lo lleva (`#prido-hs-offcanvas .prido-hs-icon`). */
#prido-hs-offcanvas .prido-hs3-oc__row-left > .prido-hs-icon { width: 18px; height: 18px; color: var(--hs3-muted); }
/* Acordeón: grid-template-rows 0fr → 1fr (parts_css.py:340-342). */
.prido-hs3-oc__panel { display: grid; grid-template-rows: 0fr; transition: grid-template-rows var(--hs3-dur) var(--hs3-ease); }
.prido-hs3-oc__panel > div { overflow: hidden; }
.prido-hs3-oc__panel.is-open { grid-template-rows: 1fr; }
.prido-hs3-oc__all {
  display: inline-flex; align-items: center; gap: 6px; padding: 10px 8px 12px 20px; text-decoration: none;
  font-family: var(--hs3-font-heading); font-size: 14px; font-weight: 700; color: var(--hs3-primary-text);
}
.prido-hs3-oc__contact { display: flex; flex-direction: column; gap: 2px; padding: 0 0 6px; }
.prido-hs3-oc__contact a,
.prido-hs3-oc__contact span {
  display: flex; align-items: center; gap: 12px; min-height: 42px; padding: 0 8px;
  border-radius: 10px; color: var(--hs3-ink); text-decoration: none; font-size: 14.5px;
}
.prido-hs3-oc__contact a:hover { background: var(--hs3-hover-fill); color: var(--hs3-primary-text); }
#prido-hs-offcanvas .prido-hs3-oc__contact .prido-hs-icon { width: 18px; height: 18px; color: var(--hs3-teal-deep); }
.prido-hs3-oc__theme {
  display: flex; align-items: center; justify-content: space-between; gap: 12px;
  min-height: 52px; padding: 0 18px; border-top: 1px solid var(--hs3-border);
  font-family: var(--hs3-font-heading); font-size: 15px; font-weight: 500;
}
.prido-hs3-switch {
  position: relative; width: 46px; height: 26px; padding: 0; border: 0; border-radius: 999px;
  background: var(--hs3-border-strong); cursor: pointer; flex: 0 0 auto;
  transition: background var(--hs3-dur) var(--hs3-ease);
}
.prido-hs3-switch::after {
  content: ""; position: absolute; top: 3px; left: 3px; width: 20px; height: 20px; border-radius: 50%;
  background: #fff; box-shadow: 0 1px 3px rgba(0, 0, 0, .25);
  transition: translate var(--hs3-dur) var(--hs3-ease);
}
.prido-hs3-switch[aria-checked="true"] { background: var(--hs3-teal); }
.prido-hs3-switch[aria-checked="true"]::after { translate: 20px 0; }
/* El badge de comparar también aparece en el offcanvas (§3.6): la píldora de
   §0b está acotada a .prido-hs/.prido-hs-pmh, aquí se repone. */
#prido-hs-offcanvas .prido-hs-tools__badge {
  position: static !important; opacity: 1; transform: none;
  display: none; align-items: center; justify-content: center;
  min-width: 20px; height: 20px; padding: 0 6px; border: 0; border-radius: 999px;
  background: var(--hs3-badge-bg); color: var(--hs3-badge-fg);
  font-family: var(--hs3-font-heading); font-size: 11px; font-weight: 700; line-height: 1;
  font-variant-numeric: tabular-nums; box-shadow: none; pointer-events: none;
}
/* A-13: el SSR imprime «0» y `MODULES.badges` añade .is-visible/.is-zero. La
   regla que apaga el cero (§5) está acotada a .prido-hs, así que aquí el gate
   es al revés: oculto por defecto, visible sólo con estado. */
#prido-hs-offcanvas .prido-hs-tools__badge.is-visible,
#prido-hs-offcanvas .prido-hs-tools__badge.is-pending { display: inline-flex; }


/* ============ §15 · Buscador ⌘K (parts_css.py:364-406) ============ */
.prido-hs3-search .prido-hs3-modal__dialog { width: min(760px, 100%); }
.prido-hs3-search__head { display: flex; align-items: center; gap: 10px; padding: 12px 12px 12px 16px; border-bottom: 1px solid var(--hs3-border); }
/* r3 · Píldora de ingreso: mismo radio 999px y borde que .prido-hs3-tag y el CTA B2B,
   para que el campo vaya a juego con las demás píldoras del modal. El anillo de foco
   vive en el contenedor (:focus-within); el <input> no dibuja outline propio. */
.prido-hs3-search__field {
  display: flex; align-items: center; gap: 10px; flex: 1 1 auto; min-width: 0;
  min-height: 48px; padding: 0 6px 0 16px;
  border-radius: 999px; border: 1px solid var(--hs3-border-strong); background: var(--hs3-surface);
  transition: border-color var(--hs3-dur) var(--hs3-ease), box-shadow var(--hs3-dur) var(--hs3-ease);
}
.prido-hs3-search__field:hover { border-color: var(--hs3-teal); }
.prido-hs3-search__field:focus-within { border-color: var(--hs3-teal); box-shadow: 0 0 0 3px var(--hs3-teal-tint); }
.prido-hs3-search__field > .prido-hs-icon { color: var(--hs3-muted); width: 20px; height: 20px; flex: 0 0 auto; }
.prido-hs3-search__input {
  flex: 1 1 auto; min-width: 0; height: 46px; border: 0; background: transparent;
  color: var(--hs3-ink); font-family: var(--hs3-font-ui); font-size: 17px; outline: none;
}
/* Gana a `.prido-hs3-layer *:focus-visible` (§0): el anillo lo pinta la píldora. */
.prido-hs3-layer .prido-hs3-search__input:focus,
.prido-hs3-layer .prido-hs3-search__input:focus-visible { outline: none; box-shadow: none; }
.prido-hs3-search__input::placeholder { color: var(--hs3-muted); }
.prido-hs3-search__input::-webkit-search-cancel-button,
.prido-hs3-search__input::-webkit-search-decoration { -webkit-appearance: none; appearance: none; display: none; }
/* No lleva .prido-iconbtn (search-modal.php:62): el §2 sólo le da font/color, así
   que aquí van el reset de botón y el centrado del SVG de 14px. */
.prido-hs3-search__clear {
  display: inline-flex; align-items: center; justify-content: center; flex: 0 0 auto;
  width: 28px; height: 28px; padding: 0; border: 0; border-radius: 50%;
  background: var(--hs3-hover-fill); color: var(--hs3-muted); cursor: pointer;
  opacity: 0; pointer-events: none;
  transition: opacity var(--hs3-dur) var(--hs3-ease), background var(--hs3-dur) var(--hs3-ease);
}
.prido-hs3-search__clear .prido-hs-icon { width: 14px; height: 14px; stroke-width: 2.2; }
.prido-hs3-search__clear:hover { background: var(--hs3-border-strong); color: var(--hs3-ink); }
.prido-hs3-search__clear.is-visible { opacity: 1; pointer-events: auto; }
.prido-hs3-search__esc { display: inline-flex; flex: 0 0 auto; }
.prido-hs3-search__body { padding: 18px 20px 8px; overflow-y: auto; max-height: min(66vh, 640px); }
/* Estado ocioso (populares + recientes): el JS lo alterna con .is-hidden. */
.prido-hs3-search__idle { display: block; }
.prido-hs3-search__idle[hidden] { display: none !important; }
.prido-hs3-search__label {
  display: flex; align-items: center; justify-content: space-between;
  font-family: var(--hs3-font-heading); font-size: 11px; font-weight: 700; letter-spacing: .12em;
  text-transform: uppercase; color: var(--hs3-muted); margin: 0 0 10px;
}
.prido-hs3-search__label button {
  border: 0; background: none; color: var(--hs3-primary-text);
  font-family: var(--hs3-font-ui); font-size: 12px; font-weight: 600; letter-spacing: 0; text-transform: none; cursor: pointer;
}
.prido-hs3-search__tags { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 20px; }
/* Bloque completo de recientes (label + chips): el JS le pone [hidden] cuando
   no hay historial, así no queda un encabezado «Recientes» huérfano. */
.prido-hs3-search__recents[hidden] { display: none !important; }
.prido-hs3-tag {
  display: inline-flex; align-items: center; gap: 6px; min-height: 34px; padding: 0 12px;
  border-radius: 999px; border: 1px solid var(--hs3-border-strong);
  background: var(--hs3-surface); color: var(--hs3-ink); font-size: 13px; font-weight: 500; cursor: pointer;
  transition: border-color var(--hs3-dur) var(--hs3-ease), background var(--hs3-dur) var(--hs3-ease), color var(--hs3-dur) var(--hs3-ease);
}
.prido-hs3-tag:hover { border-color: var(--hs3-teal); background: var(--hs3-teal-tint); color: var(--hs3-teal-deep); }
.prido-hs3-tag .prido-hs-icon { width: 14px; height: 14px; color: var(--hs3-muted); }
.prido-hs3-tag--recent .prido-hs3-tag__x { display: inline-flex; margin: 0 -4px 0 2px; padding: 4px; border-radius: 50%; color: var(--hs3-muted); }
.prido-hs3-tag--recent .prido-hs3-tag__x:hover { color: var(--hs3-danger); background: var(--hs3-hover-fill); }
.prido-hs3-search__results { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin-bottom: 12px; }
.prido-hs3-search__card {
  display: grid; grid-template-columns: 64px minmax(0, 1fr) auto; gap: 12px; align-items: center;
  padding: 8px; border-radius: 12px; border: 1px solid transparent; color: inherit; text-decoration: none; cursor: pointer;
  transition: background var(--hs3-dur) var(--hs3-ease), border-color var(--hs3-dur) var(--hs3-ease);
  animation: prido-hs3-fade-in .25s var(--hs3-ease);
}
.prido-hs3-search__card:hover,
.prido-hs3-search__card.is-active { background: var(--hs3-canvas-soft); border-color: var(--hs3-border); color: inherit; }
.prido-hs3-search__card.is-active { outline: 2px solid var(--hs3-teal); outline-offset: -2px; }
.prido-hs3-search__thumb {
  width: 64px; height: 64px; border-radius: 10px; background: #fff; border: 1px solid var(--hs3-border);
  overflow: hidden; display: flex; align-items: center; justify-content: center;
}
.prido-hs3-search__thumb img { width: 100%; height: 100%; object-fit: contain; }
.prido-hs3-search__info { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.prido-hs3-search__name {
  font-family: var(--hs3-font-heading); font-size: 14px; font-weight: 600; line-height: 1.3; color: var(--hs3-ink);
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.prido-hs3-search__name mark { background: var(--hs3-teal-tint); color: var(--hs3-teal-deep); border-radius: 3px; padding: 0 1px; }
.prido-hs3-search__cat { font-size: 12px; color: var(--hs3-muted); }
.prido-hs3-search__price { display: flex; align-items: baseline; gap: 6px; margin-top: 2px; flex-wrap: wrap; }
/* price_html crudo de WooCommerce (§6.3): normaliza <del>/<ins>. */
.prido-hs3-search__price del { color: var(--hs3-muted); font-size: 12px; font-weight: 500; }
.prido-hs3-search__price ins { text-decoration: none; font-weight: 700; color: var(--hs3-ink); }
.prido-hs3-price { font-family: var(--hs3-font-heading); font-weight: 700; font-size: 14px; color: var(--hs3-ink); font-variant-numeric: tabular-nums; }
.prido-hs3-price--was { font-size: 12px; font-weight: 500; color: var(--hs3-muted); text-decoration: line-through; }
.prido-hs3-stock { display: inline-flex; align-items: center; gap: 6px; font-size: 12px; font-weight: 600; color: var(--hs3-success); }
.prido-hs3-stock::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: currentColor; }
.prido-hs3-stock--low { color: var(--hs3-danger); }
.prido-hs3-stock--out { color: var(--hs3-muted); }
.prido-hs3-search__side { display: flex; flex-direction: column; align-items: flex-end; gap: 6px; }
/* Lleva .prido-iconbtn (44px, borde transparente): hay que igualar el scope
   `.prido-hs3-layer .prido-iconbtn` o el «+» se pinta 44×34 sin borde. */
.prido-hs3-layer .prido-hs3-search__add { width: 34px; height: 34px; border-radius: 10px; border: 1px solid var(--hs3-border-strong); }
.prido-hs3-search__add .prido-hs-icon { width: 16px; height: 16px; stroke-width: 2.2; }
.prido-hs3-layer .prido-hs3-search__add:hover { border-color: var(--hs3-teal); background: var(--hs3-teal-tint); color: var(--hs3-teal-deep); }
.prido-hs3-search__add:disabled,
.prido-hs3-search__add.is-loading { opacity: .4; cursor: not-allowed; }
.prido-hs3-search__empty { padding: 28px 12px 24px; text-align: center; color: var(--hs3-muted); font-size: 14px; }
.prido-hs3-search__empty strong { display: block; color: var(--hs3-ink); font-family: var(--hs3-font-heading); font-weight: 600; font-size: 16px; margin-bottom: 4px; }
/* Esqueleto de carga (§6.4): mismo grid que los resultados, PERO sólo visible
   mientras el módulo `search` mantiene .is-loading en #prido-hs3-search
   (header-system-v3.r1.js:1085). Sin este gate se pintaba siempre. */
.prido-hs3-search__skeleton { display: none; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin-bottom: 12px; }
.prido-hs3-search.is-loading .prido-hs3-search__skeleton { display: grid; }
.prido-hs3-search.is-loading .prido-hs3-search__results,
.prido-hs3-search.is-loading .prido-hs3-search__idle,
.prido-hs3-search.is-loading .prido-hs3-search__empty { display: none; }
.prido-hs3-search__skeleton > * {
  height: 80px; border-radius: 12px; background: var(--hs3-skeleton);
  animation: prido-hs3-pulse 1.1s var(--hs3-ease) infinite;
}
@keyframes prido-hs3-pulse { 0%, 100% { opacity: 1; } 50% { opacity: .5; } }
.prido-hs3-search__foot {
  display: flex; align-items: center; justify-content: space-between; gap: 12px;
  padding: 12px 20px 14px; border-top: 1px solid var(--hs3-border); font-size: 12.5px; color: var(--hs3-muted);
}
.prido-hs3-search__hints { display: flex; align-items: center; gap: 12px; }
.prido-hs3-search__hints span { display: inline-flex; align-items: center; gap: 5px; }
.prido-hs3-search__all {
  display: inline-flex; align-items: center; gap: 6px; text-decoration: none;
  font-family: var(--hs3-font-heading); font-size: 13px; font-weight: 700; color: var(--hs3-primary-text);
}


/* ============ §16 · Modal B2B (parts_css.py:409-440) ============ */
/* ══ Modal B2B · dirección A (r7, 6-sep-2026) ═══════════════════════════════
   Rejilla de áreas sobre el diálogo (hijos planos, ver b2b-modal.php):
     escritorio  "head form" / "foot form" / "foot error" / "foot actions"
     ≤768        "head" / "form" / "error" / "actions" / "foot"  (actions sticky)
   head y foot pintan el panel (canvas-soft); form/actions la columna blanca. */
.prido-hs3-layer.prido-hs3-b2b .prido-hs3-modal__dialog {
  width: min(940px, 100%);
  /* El diálogo crece con su contenido y el layer hace scroll: con el max-height:100% base,
     en móvil el formulario se salía de la caja pintada (medido 6-sep). */
  max-height: none;
  display: grid;
  grid-template-columns: 320px minmax(0, 1fr);
  grid-template-rows: auto minmax(0, 1fr) auto auto;
  grid-template-areas: "head form" "foot form" "foot error" "foot actions";
}
/* La × es hija de la rejilla: sin área explícita Chrome la posiciona respecto a la celda
   auto-asignada. Abarcando toda la rejilla, top/right vuelven a ser los del diálogo. */
.prido-hs3-b2b .prido-hs3-modal__close { grid-row: 1 / -1; grid-column: 1 / -1; justify-self: end; align-self: start; }
.prido-hs3-b2b__head {
  grid-area: head; display: flex; flex-direction: column; gap: 10px;
  padding: 32px 28px 22px; background: var(--hs3-canvas-soft); border-right: 1px solid var(--hs3-border);
}
.prido-hs3-b2b__eyebrow {
  display: inline-flex; align-items: center; gap: 8px;
  font-family: var(--hs3-font-heading); font-size: 11px; font-weight: 700; letter-spacing: .12em;
  text-transform: uppercase; color: var(--hs3-teal-deep);
}
.prido-hs3-b2b__title { font-family: var(--hs3-font-heading); font-size: 24px; font-weight: 600; letter-spacing: -.01em; line-height: 1.15; margin: 0; color: var(--hs3-ink); text-wrap: balance; }
.prido-hs3-b2b__lead { margin: 0; font-size: 14px; line-height: 1.5; color: var(--hs3-muted); }
.prido-hs3-b2b__perks { list-style: none; margin: 12px 0 0; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.prido-hs3-b2b__perk { display: flex; align-items: center; gap: 12px; font-size: 13.5px; font-weight: 600; color: var(--hs3-ink-soft); line-height: 1.3; }
.prido-hs3-b2b__perk-ico {
  display: inline-flex; align-items: center; justify-content: center; flex: 0 0 auto;
  width: 34px; height: 34px; border-radius: 10px; background: var(--hs3-teal-tint); color: var(--hs3-teal-deep);
}
.prido-hs3-b2b__perk-ico .prido-hs-icon { width: 18px; height: 18px; }
.prido-hs3-b2b__form { grid-area: form; display: flex; flex-direction: column; gap: 18px; padding: 32px 32px 0; min-width: 0; }
.prido-hs3-b2b__group { display: flex; flex-direction: column; gap: 10px; margin: 0; padding: 0; border: 0; min-width: 0; }
.prido-hs3-b2b__grp {
  padding: 0; margin: 0; float: none;  /* legend: sin la caja por defecto del fieldset */
  font-family: var(--hs3-font-heading); font-size: 11px; font-weight: 700; letter-spacing: .12em;
  text-transform: uppercase; color: var(--hs3-muted);
}
.prido-hs3-b2b__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
/* Campos con cuerpo: relleno suave, blanco sólo al enfocar (revisión 6-sep). */
.prido-hs3-layer.prido-hs3-b2b .prido-field input,
.prido-hs3-layer.prido-hs3-b2b .prido-field select,
.prido-hs3-layer.prido-hs3-b2b .prido-field textarea { background: var(--hs3-canvas-soft); }
.prido-hs3-layer.prido-hs3-b2b .prido-field input:focus,
.prido-hs3-layer.prido-hs3-b2b .prido-field select:focus,
.prido-hs3-layer.prido-hs3-b2b .prido-field textarea:focus { background: var(--hs3-surface); }
:root[data-theme="dark"] .prido-hs3-layer.prido-hs3-b2b .prido-field input,
:root[data-theme="dark"] .prido-hs3-layer.prido-hs3-b2b .prido-field select,
:root[data-theme="dark"] .prido-hs3-layer.prido-hs3-b2b .prido-field textarea { background: var(--hs3-surface-alt); }
.prido-hs3-layer.prido-hs3-b2b .prido-field textarea { min-height: 72px; }
.prido-hs3-b2b .prido-hs3-seg label { border-radius: 999px; }
.prido-hs3-b2b .prido-field--check { padding-top: 2px; }
/* Acción principal: teal sólido SÓLO en este modal (el token ink del header no cambia). */
.prido-hs3-b2b__actions { grid-area: actions; display: flex; justify-content: flex-end; padding: 16px 32px 28px; }
.prido-hs3-layer .prido-hs3-b2b__submit { background: var(--hs3-teal-deep); color: #fff; }
.prido-hs3-layer .prido-hs3-b2b__submit:hover { background: #0b6b68; color: #fff; }
:root[data-theme="dark"] .prido-hs3-layer .prido-hs3-b2b__submit { color: #0c1219; }
:root[data-theme="dark"] .prido-hs3-layer .prido-hs3-b2b__submit:hover { background: #4bd3ce; color: #0c1219; }
.prido-hs3-layer .prido-field { display: flex; flex-direction: column; gap: 5px; min-width: 0; }
.prido-hs3-layer .prido-field--full { grid-column: 1 / -1; }
.prido-hs3-layer .prido-field label,
.prido-hs3-layer .prido-field__label { font-size: 12.5px; font-weight: 600; color: var(--hs3-ink-soft); }
.prido-hs3-layer .prido-field label em { font-style: normal; color: var(--hs3-danger); }
.prido-hs3-layer .prido-field input,
.prido-hs3-layer .prido-field select,
.prido-hs3-layer .prido-field textarea {
  width: 100%; min-height: 44px; padding: 10px 12px; border-radius: 10px;
  border: 1px solid var(--hs3-border-strong); background: var(--hs3-surface); color: var(--hs3-ink);
  font-family: var(--hs3-font-ui); font-size: 14px;
  transition: border-color var(--hs3-dur) var(--hs3-ease), box-shadow var(--hs3-dur) var(--hs3-ease);
}
.prido-hs3-layer .prido-field textarea { min-height: 84px; resize: vertical; }
.prido-hs3-layer .prido-field input:focus,
.prido-hs3-layer .prido-field select:focus,
.prido-hs3-layer .prido-field textarea:focus { outline: none; border-color: var(--hs3-teal); box-shadow: 0 0 0 3px var(--hs3-teal-tint); }
.prido-hs3-layer .prido-field.is-invalid input,
.prido-hs3-layer .prido-field.is-invalid select,
.prido-hs3-layer .prido-field.is-invalid textarea { border-color: var(--hs3-danger); }
.prido-hs3-layer .prido-field__err { font-size: 12px; color: var(--hs3-danger); display: none; }
.prido-hs3-layer .prido-field.is-invalid .prido-field__err { display: block; }
/* Checkbox de términos: etiqueta en línea, no en columna (§4.2 §16). */
.prido-hs3-layer .prido-field--check label {
  display: flex; align-items: flex-start; gap: 8px; font-weight: 500; font-size: 13px; color: var(--hs3-ink-soft); cursor: pointer;
}
.prido-hs3-layer .prido-field--check input[type="checkbox"] { width: 18px; min-height: 0; height: 18px; margin: 2px 0 0; padding: 0; flex: 0 0 auto; accent-color: var(--hs3-teal); }
.prido-hs3-layer .prido-field--check a { color: var(--hs3-primary-text); text-decoration: underline; }
.prido-hs3-seg { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 6px; }
.prido-hs3-seg label {
  position: relative; display: flex; align-items: center; justify-content: center; min-height: 40px;
  border-radius: 10px; border: 1px solid var(--hs3-border-strong);
  font-family: var(--hs3-font-heading); font-size: 13px; font-weight: 600; color: var(--hs3-ink); cursor: pointer;
  transition: border-color var(--hs3-dur) var(--hs3-ease), background var(--hs3-dur) var(--hs3-ease), color var(--hs3-dur) var(--hs3-ease);
}
.prido-hs3-seg input { position: absolute; opacity: 0; inset: 0; width: 100%; height: 100%; margin: 0; cursor: pointer; }
.prido-hs3-seg label:has(input:checked) { border-color: var(--hs3-teal); background: var(--hs3-teal-tint); color: var(--hs3-teal-deep); }
.prido-hs3-seg label:has(input:focus-visible) { outline: 2px solid var(--hs3-teal); outline-offset: 2px; }
/* Error del envío AJAX (§8.4). Lo muestra el JS quitando [hidden]. */
.prido-hs3-b2b__error {
  grid-area: error; margin: 12px 32px 0; padding: 10px 12px; border-radius: 10px;
  background: color-mix(in srgb, var(--hs3-danger) 12%, transparent);
  border: 1px solid color-mix(in srgb, var(--hs3-danger) 38%, transparent);
  color: var(--hs3-danger); font-size: 13px; font-weight: 600;
}
.prido-hs3-b2b__error[hidden] { display: none !important; }
.prido-hs3-b2b__foot {
  grid-area: foot; display: flex; flex-direction: column; justify-content: flex-end; gap: 12px;
  padding: 18px 28px 28px; background: var(--hs3-canvas-soft); border-right: 1px solid var(--hs3-border);
}
.prido-hs3-b2b__foot::before { content: ""; display: block; height: 1px; background: var(--hs3-border); margin-bottom: 6px; }
.prido-hs3-layer .prido-hs3-b2b__wa { justify-content: flex-start; width: 100%; color: var(--hs3-ink-soft); text-decoration: none; }
.prido-hs3-layer .prido-hs3-b2b__wa:hover { color: var(--hs3-ink); }
.prido-hs3-b2b__wa-logo { width: 18px; height: 18px; flex: 0 0 auto; }
.prido-hs3-b2b__alt { display: inline-flex; align-items: center; gap: 6px; min-height: 40px; font-size: 13px; font-weight: 600; color: var(--hs3-primary-text); text-decoration: none; line-height: 1.3; }
.prido-hs3-b2b__alt .prido-hs-icon { width: 14px; height: 14px; flex: 0 0 auto; }
.prido-hs3-b2b__alt:hover { text-decoration: underline; }
.prido-hs3-b2b__success { display: none; grid-column: 1 / -1; grid-row: 1 / -1; flex-direction: column; align-items: center; justify-content: center; text-align: center; gap: 10px; padding: 48px 32px 40px; min-height: 320px; }
.prido-hs3-b2b.is-sent .prido-hs3-b2b__success { display: flex; }
.prido-hs3-b2b.is-sent .prido-hs3-b2b__head,
.prido-hs3-b2b.is-sent .prido-hs3-b2b__perks,
.prido-hs3-b2b.is-sent .prido-hs3-b2b__form,
.prido-hs3-b2b.is-sent .prido-hs3-b2b__error,
.prido-hs3-b2b.is-sent .prido-hs3-b2b__actions,
.prido-hs3-b2b.is-sent .prido-hs3-b2b__foot { display: none; }
.prido-hs3-b2b__success .prido-hs3-empty__icon { background: color-mix(in srgb, var(--hs3-success) 14%, transparent); color: var(--hs3-success); }
/* Honeypot: oculto sin depender de estilos inline. */
.prido-hs3-hp { position: absolute !important; left: -9999px !important; width: 1px !important; height: 1px !important; overflow: hidden !important; }


/* ============ §21 · Auto-hide (headroom) — copia de r2.css:2037-2056.
   Sin esto el módulo JS `autohide` togglea una clase sin estilos y el
   headroom desaparece del sitio en silencio. ============ */
.prido-hs {
  transition: transform .4s cubic-bezier(.25, .46, .45, .94);
  will-change: transform;
}
.prido-hs.prido-hs--hidden {
  transform: translateY(-100%);
  pointer-events: none;
}
@media (prefers-reduced-motion: reduce) {
  .prido-hs { transition: none !important; }
  .prido-hs.prido-hs--hidden,
  .prido-hs-pmh.prido-hs--hidden { transform: none !important; }
}


/* ============ §18 · Responsive — rejilla real
   1560 / 1480 / 1300 / 1280 / 1199 / 1180 / 1025 / 1024 / 768 / 400.
   El escalón «1200» se expresa como max-width:1199px para que la banda
   1200–1559 conserve el rótulo corto del CTA B2B (§4.2 §11).
   La banda 1025–1480 absorbe r2.css:2002-2026 y el mu-plugin
   prido-header-tablet-tune.php (que se neutraliza con el swap). ============ */

/* ── ≥1560: el CTA B2B muestra el rótulo completo ── */
@media (min-width: 1560px) {
  .prido-hs3-b2b__full { display: inline; }
  .prido-hs3-b2b__short { display: none; }
}

/* ── Desktop (≥1025) ── */
@media (min-width: 1025px) {
  .prido-hs .prido-hs-navbar--desktop { display: block; }
  .prido-hs .prido-hs-navbar--mobile { display: none !important; }
}

/* ── 1025–1480: condensa logo/nav/tools (r2.css:2002-2026 + tablet-tune) ── */
@media (min-width: 1025px) and (max-width: 1480px) {
  .prido-hs .prido-hs3-logo-img { height: 54px; }
  .prido-hs3-navbar > .prido-hs3-container { column-gap: clamp(10px, 1.4vw, 26px); padding: 0 clamp(12px, 1.4vw, 24px); }
  .prido-hs3-nav__list { gap: 2px; }
  .prido-hs3-nav__link { padding: 0 8px; font-size: 14px; }
  .prido-hs3-nav__label { white-space: nowrap; }   /* tablet-tune: rótulos multi-palabra en una línea */
  .prido-hs3-tools { gap: 3px; }
}

/* ── v3.1 · 1025–1399: condensado. Sin el toggle de tema en la barra (−44px) y sin
   «Inicio» (el logo ya lleva al inicio; sigue en offcanvas y footer). Estimado a 1200:
   logo 133 + nav 655 + tools 350 + gaps 24 = 1162 ≤ 1168 disponibles. ── */
@media (min-width: 1025px) and (max-width: 1399px) {
  .prido-hs3-nav__item--home { display: none; }
  .prido-hs3-nav__link { padding: 0 6px; font-size: 13.5px; }
  .prido-hs3-nav__list { gap: 0; }
  .prido-hs3-tools { gap: 2px; }
  .prido-hs .prido-hs3-logo-img { height: 50px; }
  .prido-hs.is-compact .prido-hs3-logo-img { height: 42px; }
  .prido-hs3-navbar > .prido-hs3-container { column-gap: 14px; padding: 0 16px; }
}

/* ── v3.1 · 1025–1300: compacto (medido 2026-09-06: a 1200 el condensado quedaba 3px corto; a 1241 sólo 16px de holgura → corte en 1300, como el icon-only anterior). «Empresas» sólo icono (tooltip + nombre accesible);
   Deseos y Comparar se pliegan en Mi cuenta con su contador; el carrito sigue fuera.
   Estimado a 1100: logo 117 + nav 633 + tools 180 + gaps 24 = 954 ≤ 1076. ── */
@media (min-width: 1025px) and (max-width: 1300px) {
  .prido-hs3-nav__link { font-size: 13px; }
  .prido-hs3-tools { gap: 0; }
  .prido-hs .prido-hs3-logo-img { height: 44px; }
  .prido-hs.is-compact .prido-hs3-logo-img { height: 38px; }
  .prido-hs3-navbar > .prido-hs3-container { column-gap: 12px; padding: 0 12px; }
  /* 3 clases: gana a `.prido-hs .prido-iconbtn` (display:inline-flex). */
  .prido-hs .prido-hs3-tools .prido-hs3-tools__wish,
  .prido-hs .prido-hs3-tools .prido-hs3-tools__cmp { display: none; }
  .prido-hs3-tools .prido-hs3-b2b {
    width: 44px; height: 44px; padding: 0; margin-right: 4px;
    justify-content: center; border-radius: var(--hs3-r-btn);
  }
  .prido-hs3-b2b__full,
  .prido-hs3-b2b__short { display: none; }
  /* Sin rótulo visible el botón se queda sin nombre accesible: aquí, y sólo
     aquí, el span oculto lo aporta (WCAG 2.5.3 / 4.1.2). */
  .prido-hs .prido-hs3-b2b__sr {
    display: block;
    position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px;
    overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
  }
  .prido-hs3-tools .prido-hs3-b2b[data-tip]::after { display: block; }
}

/* ── ≤1380: el topbar cambia inventario por rotador (a 1280 contacto y
   beneficios se solapaban) ── */
@media (max-width: 1380px) {
  .prido-hs3-topbar__benefits { display: none; }
  .prido-hs3-topbar__rotator { display: flex; }
}

/* ── Tablet / móvil (≤1024) ── */
@media (max-width: 1024px) {
  .prido-hs3-layer.prido-hs3-b2b .prido-hs3-modal__dialog { grid-template-columns: 280px minmax(0, 1fr); }
  .prido-hs3-b2b__head, .prido-hs3-b2b__foot { padding-left: 22px; padding-right: 22px; }
  .prido-hs3-b2b__form, .prido-hs3-b2b__actions { padding-left: 24px; padding-right: 24px; }
  .prido-hs3-b2b__error { margin-left: 24px; margin-right: 24px; }
  .prido-hs .prido-hs-navbar--desktop { display: none !important; }
  .prido-hs .prido-hs-navbar--mobile { display: block; }
  .prido-hs3-nav,
  .prido-hs3-tools { display: none; }

  .prido-hs.is-compact .prido-hs3-mobile {
    background: var(--hs3-glass);
    -webkit-backdrop-filter: saturate(150%) blur(18px);
    backdrop-filter: saturate(150%) blur(18px);
    box-shadow: inset 0 -1px 0 var(--hs3-glass-border), 0 10px 30px rgba(18, 29, 42, .08);
  }
  /* r2.css:1774-1781 — condensada, la barra móvil queda fija arriba. */
  .prido-hs.is-condensed .prido-hs3-mobile {
    position: fixed; top: var(--prido-wp-adminbar-offset, 0px); left: 0; right: 0;
    transform: none; margin-top: 0 !important;
  }

  .prido-hs3-topbar { font-size: 12px; }
  .prido-hs3-topbar .prido-hs3-container { width: 100%; padding: 0 12px; gap: 12px; }
  .prido-hs3-topbar__link { padding: 6px 8px; }
  .prido-hs3-topbar__sep { display: none; }

  .prido-hs .prido-hs3-logo-img { height: 48px; max-width: 240px; }
  .prido-hs3-search__body { max-height: min(60vh, 560px); }
}

/* ── Teléfono (≤768) ── */
@media (max-width: 768px) {
  .prido-hs3-topbar { font-size: 11px; }
  .prido-hs3-topbar__link--mail { display: none; }
  .prido-hs3-topbar__link--addr { display: none; }   /* la dirección sigue en el rotador */
  .prido-hs3-topbar__link--phone span { display: none; }
  .prido-hs3-container { width: 100%; padding: 0 16px; }
  .prido-hs3-mobile > .prido-hs3-container { padding: 0 8px; }
  .prido-hs3-mobile__logo .prido-hs3-logo-img { height: 38px; max-width: 170px; }

  .prido-hs3-layer { padding: 12px 10px 16px; }
  .prido-hs3-modal__dialog { border-radius: 16px; }
  .prido-hs3-search__results,
  .prido-hs3-search__skeleton { grid-template-columns: 1fr; }
  .prido-hs3-search__head { padding: 10px 10px 10px 12px; gap: 8px; }
  .prido-hs3-search__field { min-height: 46px; padding-left: 14px; }
  .prido-hs3-search__input { font-size: 16px; height: 44px; }   /* 16px evita el zoom de iOS */
  .prido-hs3-search__esc,
  .prido-hs3-search__hints { display: none; }
  .prido-hs3-layer.prido-hs3-b2b { padding: 40px 0 0; }
  .prido-hs3-layer.prido-hs3-b2b .prido-hs3-modal__dialog {
    grid-template-columns: minmax(0, 1fr); grid-template-rows: auto auto auto auto auto;
    grid-template-areas: "head" "form" "error" "actions" "foot";
    border-radius: 16px 16px 0 0; border-bottom: 0; min-height: 100%;
  }
  .prido-hs3-b2b__head { padding: 22px 20px 0; background: var(--hs3-surface); border-right: 0; gap: 12px; }
  .prido-hs3-b2b__title { font-size: 22px; padding-right: 40px; }
  .prido-hs3-b2b__lead { font-size: 13.5px; }
  .prido-hs3-b2b__perks { flex-direction: row; flex-wrap: wrap; gap: 6px 14px; margin-top: 2px; }
  .prido-hs3-b2b__perk { font-size: 12px; gap: 7px; }
  .prido-hs3-b2b__perk-ico { width: auto; height: auto; background: transparent; border-radius: 0; }
  .prido-hs3-b2b__perk-ico .prido-hs-icon { width: 14px; height: 14px; }
  .prido-hs3-b2b__form { padding: 18px 20px 0; gap: 16px; }
  .prido-hs3-b2b__grid { grid-template-columns: 1fr; }
  .prido-hs3-b2b .prido-hs3-seg label { min-height: 44px; }
  .prido-hs3-b2b__error { margin-left: 20px; margin-right: 20px; }
  /* Barra pegada abajo dentro del layer que hace scroll (.prido-hs3-layer, overflow-y:auto). */
  .prido-hs3-b2b__actions {
    position: sticky; bottom: 0; z-index: 2; padding: 12px 16px 14px; margin-top: 4px;
    background: var(--hs3-surface); border-top: 1px solid var(--hs3-border); box-shadow: 0 -12px 24px rgba(18, 29, 42, .06);
  }
  .prido-hs3-b2b__actions .prido-hs3-b2b__submit { width: 100%; }
  .prido-hs3-b2b__foot { padding: 14px 20px 24px; background: var(--hs3-surface); border-right: 0; gap: 4px; }
  .prido-hs3-b2b__foot::before { display: none; }
  .prido-hs3-b2b__alt { min-height: 44px; }
  .prido-hs3-seg { grid-template-columns: repeat(2, minmax(0, 1fr)); }

  .prido-hs3-drawer__panel { width: min(360px, 94vw); }
  .prido-hs3-oc__head { padding-left: 16px; }
}

/* ── ≤400: sólo queda WhatsApp en el contacto del topbar ── */
@media (max-width: 400px) {
  .prido-hs3-topbar__link--phone { display: none; }
}
