/* ==========================================================================
   TIENDA PROELTEC — estilos de marca sobre Kadence (MODO CLARO)

   La tienda se diferencia de la página de servicios por su distribución de color:
     · servicios (proeltecsas.com): base blanca, texto azul, acentos verdes
     · tienda: barra verde, menú y banner principal en azul marino, zona de
       productos clara con tarjetas blancas; el verde es el color de comprar.
   Superficies opacas, sin brillos ni glassmorphism, un solo acento verde.
   ========================================================================== */

html:root {
  /* Marca */
  --pt-green: #39B54A;
  --pt-green-050: #EAF7EC;
  --pt-green-100: #C9EBD0;
  --pt-green-600: #2E9A3D;
  --pt-green-700: #237A30;
  --pt-navy: #003366;
  --pt-navy-700: #0B4C82;
  --pt-navy-900: #04213F;
  --pt-navy-line: #1B4A7A;
  --pt-blue-050: #E6ECF3;
  --pt-blue-100: #C2D2E4;
  --pt-gray: #666666;
  --pt-gray-100: #F2F2F2;
  --pt-gray-200: #E4E4E4;
  --pt-white: #FFFFFF;
  --pt-bg: #F5F7FA;
  --pt-circle: #EEF2F7;
  --pt-error: #C0392B;
  --pt-warning: #E0A800;

  --pt-font-display: 'Montserrat', sans-serif;
  --pt-font-body: 'Open Sans', sans-serif;

  --pt-radius-sm: 4px;
  --pt-radius-md: 8px;
  --pt-radius-lg: 14px;
  --pt-radius-pill: 999px;

  --pt-shadow-card: 0 1px 3px rgba(0, 51, 102, 0.08), 0 8px 24px rgba(0, 51, 102, 0.06);
  --pt-shadow-hover: 0 4px 8px rgba(0, 51, 102, 0.1), 0 16px 32px rgba(0, 51, 102, 0.1);
  --pt-ease: cubic-bezier(0.4, 0, 0.2, 1);
  --pt-duration: 180ms;
  --pt-header-height: 76px;

  /* Paleta global de Kadence → colores de marca */
  --global-palette1: #39B54A;
  --global-palette2: #2E9A3D;
  --global-palette3: #003366;
  --global-palette4: #003366;
  --global-palette5: #666666;
  --global-palette6: #8A97A8;
  --global-palette7: #E4E4E4;
  --global-palette8: #F5F7FA;
  --global-palette9: #FFFFFF;
  --global-palette-highlight: #237A30;
  --global-palette-highlight-alt: #2E9A3D;
  --global-palette-btn-bg: #39B54A;
  --global-palette-btn-bg-hover: #2E9A3D;
  --global-palette-btn: #FFFFFF;
  --global-palette-btn-hover: #FFFFFF;
  --global-body-font-family: 'Open Sans', sans-serif;
  --global-heading-font-family: 'Montserrat', sans-serif;
}

/* ==========================================================================
   Base
   ========================================================================== */
html { box-sizing: border-box; }
*, *::before, *::after { box-sizing: inherit; }

html body {
  font-family: var(--pt-font-body);
  color: var(--pt-navy);
  background: var(--pt-bg);
  -webkit-font-smoothing: antialiased;
}
html body h1, html body h2, html body h3, html body h4, html body h5, html body h6,
html body .entry-title, html body .page-title, html body .product_title {
  font-family: var(--pt-font-display);
  color: var(--pt-navy);
}

/* Los encabezados de Kadence se reemplazan por los de marca (inc/layout.php).
   Si Kadence llegara a pintarlos igual, quedan ocultos. */
#masthead, #colophon { display: none !important; }

.pt-container {
  width: 100%;
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 24px;
}

.pt-eyebrow {
  display: inline-block;
  font: 700 0.75rem/1 var(--pt-font-display);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--pt-green-700);
  margin-bottom: 14px;
}

.screen-reader-text {
  position: absolute !important;
  width: 1px; height: 1px;
  overflow: hidden;
  clip: rect(1px, 1px, 1px, 1px);
  white-space: nowrap;
}

:focus-visible { outline: 3px solid var(--pt-green); outline-offset: 2px; }

/* ==========================================================================
   Botones (marca + los de WooCommerce/Kadence)
   ========================================================================== */
.pt-btn,
html body .button,
html body button.button,
html body a.button,
html body input[type="submit"],
html body .wp-element-button,
html body .wc-block-components-button:not(.is-link) {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  border-radius: var(--pt-radius-pill);
  font-family: var(--pt-font-display);
  font-weight: 700;
  transition: background var(--pt-duration) var(--pt-ease), border-color var(--pt-duration) var(--pt-ease), color var(--pt-duration) var(--pt-ease);
}
.pt-btn {
  padding: 14px 28px;
  font-size: 0.9375rem;
  line-height: 1;
  border: 2px solid transparent;
  text-decoration: none;
  white-space: nowrap;
  cursor: pointer;
}
html body .pt-btn-primary { background: var(--pt-green); color: var(--pt-white); }
html body .pt-btn-primary:hover { background: var(--pt-green-600); color: var(--pt-white); }
html body .pt-btn-primary:active { background: var(--pt-green-700); }
html body .pt-btn-outline { background: transparent; border-color: var(--pt-blue-100); color: var(--pt-white); }
html body .pt-btn-outline:hover { border-color: var(--pt-white); background: var(--pt-navy-700); color: var(--pt-white); }
html body .pt-btn-ghost { background: transparent; border-color: var(--pt-navy); color: var(--pt-navy); }
html body .pt-btn-ghost:hover { background: var(--pt-blue-050); color: var(--pt-navy); }

/* ==========================================================================
   1 — Barra de anuncios en movimiento
   ========================================================================== */
.pt-ticker {
  background: var(--pt-green);
  color: var(--pt-navy-900);
  overflow: hidden;
  font: 600 0.8125rem/1 var(--pt-font-body);
}
.pt-ticker-track {
  display: flex;
  width: max-content;
  animation: pt-ticker 38s linear infinite;
}
.pt-ticker-group { display: flex; list-style: none; margin: 0; padding: 0; }
.pt-ticker-group li {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 11px 36px;
  white-space: nowrap;
  position: relative;
}
.pt-ticker-group li::after {
  content: '';
  position: absolute;
  right: 0; top: 50%;
  width: 5px; height: 5px;
  margin-top: -2px;
  border-radius: var(--pt-radius-pill);
  background: var(--pt-navy);
}
@keyframes pt-ticker {
  from { transform: translateX(0); }
  to { transform: translateX(-50%); }
}

/* ==========================================================================
   2 — Menú (azul marino: la tienda se distingue de la página de servicios)
   ========================================================================== */
.pt-header {
  position: sticky;
  top: 0;
  z-index: 100;
  height: var(--pt-header-height);
  display: flex;
  align-items: center;
  background: var(--pt-navy);
  border-bottom: 1px solid var(--pt-navy-line);
  transition: box-shadow var(--pt-duration) var(--pt-ease);
}
.admin-bar .pt-header { top: 32px; }
.pt-header.is-scrolled { box-shadow: 0 6px 20px rgba(4, 33, 63, 0.35); }
.pt-header .pt-container { display: flex; align-items: center; justify-content: space-between; gap: 24px; }

/* Logo: símbolo + PROELTEC SAS | TIENDA (mismo tamaño a ambos lados de la línea) */
.pt-brand { display: flex; align-items: center; gap: 10px; text-decoration: none; flex-shrink: 0; }
.pt-logo-mark { width: 42px; height: 42px; object-fit: contain; }
.pt-brand-name, .pt-brand-tag { font: 800 1.1875rem/1 var(--pt-font-display); color: var(--pt-white); letter-spacing: 0.01em; }
.pt-brand-name span { color: var(--pt-green); }
.pt-brand-divider { width: 2px; height: 26px; border-radius: 2px; background: var(--pt-blue-100); }

.pt-nav { display: flex; align-items: center; }
.pt-nav > ul { display: flex; align-items: center; gap: 28px; list-style: none; margin: 0; padding: 0; }
html body .pt-nav a {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font: 600 0.9375rem/1 var(--pt-font-body);
  color: var(--pt-white);
  text-decoration: none;
  padding: 8px 0;
  position: relative;
}
.pt-nav > ul > li > a::after {
  content: '';
  position: absolute;
  left: 0; right: 0; bottom: 0;
  height: 2px;
  background: var(--pt-green);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform var(--pt-duration) var(--pt-ease);
}
.pt-nav > ul > li > a:hover::after { transform: scaleX(1); }
.pt-nav-services { display: none; }

.pt-has-dropdown { position: relative; }
.pt-dropdown {
  position: absolute;
  top: calc(100% + 14px);
  left: 50%;
  transform: translateX(-50%);
  min-width: 240px;
  list-style: none;
  margin: 0;
  background: var(--pt-white);
  border: 1px solid var(--pt-gray-200);
  border-radius: var(--pt-radius-lg);
  box-shadow: var(--pt-shadow-hover);
  padding: 8px;
  opacity: 0;
  visibility: hidden;
  transition: opacity var(--pt-duration) var(--pt-ease), visibility var(--pt-duration);
}
.pt-has-dropdown:hover .pt-dropdown,
.pt-has-dropdown:focus-within .pt-dropdown { opacity: 1; visibility: visible; }
html body .pt-dropdown a { display: block; padding: 10px 16px; border-radius: var(--pt-radius-sm); font-weight: 400; color: var(--pt-navy); }
html body .pt-dropdown a:hover { background: var(--pt-green-050); color: var(--pt-green-700); }

.pt-header-actions { display: flex; align-items: center; gap: 6px; flex-shrink: 0; }

.pt-search { display: flex; align-items: center; position: relative; }
.pt-search input[type="search"] {
  width: 240px;
  height: 42px;
  padding: 0 44px 0 16px;
  border: 1px solid var(--pt-white);
  border-radius: var(--pt-radius-pill);
  background: var(--pt-white);
  font: 400 0.875rem/1 var(--pt-font-body);
  color: var(--pt-navy);
}
.pt-search input[type="search"]:focus { outline: none; border-color: var(--pt-green); box-shadow: 0 0 0 3px var(--pt-green); }
.pt-search button {
  position: absolute;
  right: 4px;
  width: 34px; height: 34px;
  display: flex; align-items: center; justify-content: center;
  border: none;
  border-radius: var(--pt-radius-pill);
  background: var(--pt-navy);
  color: var(--pt-white);
  padding: 0;
  cursor: pointer;
}
.pt-search button:hover { background: var(--pt-green); }
.pt-search--mobile { display: none; }

/* Botón a la página de servicios: verde sólido para que se vea de una */
html body .pt-services-btn {
  padding: 11px 20px;
  font-size: 0.8125rem;
  margin-left: 6px;
  background: var(--pt-green);
  color: var(--pt-white);
  border-color: var(--pt-green);
}
html body .pt-services-btn:hover { background: var(--pt-white); border-color: var(--pt-white); color: var(--pt-navy); }

html body .pt-icon-btn {
  position: relative;
  width: 44px; height: 44px;
  display: flex; align-items: center; justify-content: center;
  border-radius: var(--pt-radius-pill);
  color: var(--pt-white);
  text-decoration: none;
  transition: background var(--pt-duration) var(--pt-ease);
}
html body .pt-icon-btn:hover { background: var(--pt-navy-700); color: var(--pt-white); }
.pt-cart-count {
  position: absolute;
  top: 2px; right: 0;
  min-width: 20px; height: 20px;
  padding: 0 5px;
  border-radius: var(--pt-radius-pill);
  background: var(--pt-green);
  color: var(--pt-white);
  font: 700 0.6875rem/20px var(--pt-font-display);
  text-align: center;
}
.pt-cart-count.is-empty { display: none; }

.pt-nav-toggle {
  display: none;
  width: 44px; height: 44px;
  align-items: center; justify-content: center;
  border: none;
  background: none;
  color: var(--pt-white);
  padding: 0;
  cursor: pointer;
}
.pt-nav-toggle-close { display: none; }
.pt-nav-toggle[aria-expanded="true"] .pt-nav-toggle-open { display: none; }
.pt-nav-toggle[aria-expanded="true"] .pt-nav-toggle-close { display: flex; }

/* ==========================================================================
   Estructura común del inicio
   ========================================================================== */
.pt-home { background: var(--pt-white); }
.pt-home h1, .pt-home h2, .pt-home h3, .pt-home p, .pt-home blockquote, .pt-home figure { margin: 0; }

.pt-row-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; margin-bottom: 28px; }
html body .pt-home .pt-row-head h2 { font: 800 clamp(1.4rem, 1.6vw + 1rem, 1.75rem)/1.2 var(--pt-font-display); color: var(--pt-navy); text-transform: uppercase; letter-spacing: 0.01em; }
html body .pt-row-link { display: inline-flex; align-items: center; gap: 6px; font: 700 0.875rem/1 var(--pt-font-display); color: var(--pt-green-700); text-decoration: none; white-space: nowrap; }
html body .pt-row-link:hover { color: var(--pt-green-600); }

.pt-section-head { max-width: 640px; margin: 0 auto 36px; text-align: center; }
html body .pt-home .pt-section-head h2 { font: 800 clamp(1.5rem, 2vw + 1rem, 1.875rem)/1.2 var(--pt-font-display); color: var(--pt-navy); text-transform: uppercase; }

/* Título con segunda parte en verde (como "Drive further") */
.pt-slide-copy h1 span, .pt-slide-copy h2 span,
.pt-promo-copy h2 span, .pt-services-copy h2 span { color: var(--pt-green); display: block; }

/* ==========================================================================
   3 — Banner principal en movimiento
   Computador: imagen 1920 × 720 (productos a la derecha, texto a la izquierda).
   Celular/tablet: imagen 1080 × 1350 (productos arriba, texto abajo).
   ========================================================================== */
.pt-slider { position: relative; background: var(--pt-navy-900); overflow: hidden; }
/* Las diapositivas se apilan en la misma celda: el banner toma la altura de la más alta y no salta al rotar */
.pt-slides { position: relative; display: grid; }
.pt-slide {
  grid-area: 1 / 1;
  position: relative;
  display: flex;
  align-items: center;
  opacity: 0;
  visibility: hidden;
  transition: opacity 400ms var(--pt-ease), visibility 400ms;
}
.pt-slide.is-active {
  position: relative;
  opacity: 1;
  visibility: visible;
  aspect-ratio: 1920 / 720;
  min-height: 500px;
  max-height: 720px;
}

.pt-slide-media { position: absolute; inset: 0; z-index: 0; }
.pt-slide-media img { width: 100%; height: 100%; object-fit: cover; object-position: right center; display: block; }

/* Velo azul del lado del texto (regla del manual), sin tapar los productos */
.pt-slide::before {
  content: '';
  position: absolute;
  z-index: 1;
  inset: 0;
  background: linear-gradient(90deg, rgba(4, 33, 63, 0.95) 0%, rgba(4, 33, 63, 0.82) 32%, rgba(0, 51, 102, 0.25) 58%, rgba(0, 51, 102, 0) 72%);
}
/* Motivo de marca (solo en diapositivas con foto): corte diagonal con banda verde */
.pt-slide.has-motif::after {
  content: '';
  position: absolute;
  z-index: 1;
  inset: 0;
  background:
    linear-gradient(115deg, transparent 64%, rgba(57, 181, 74, 0.6) 64%, rgba(57, 181, 74, 0.6) 67.5%, transparent 67.5%),
    linear-gradient(115deg, transparent 67.5%, rgba(0, 51, 102, 0.55) 67.5%, rgba(0, 51, 102, 0.55) 71%, transparent 71%);
  pointer-events: none;
}
.pt-slide .pt-container { position: relative; z-index: 2; padding-top: 48px; padding-bottom: 64px; }
.pt-slide-copy { max-width: 560px; }
.pt-slide-copy .pt-eyebrow { color: var(--pt-green); }
html body .pt-home .pt-slide-copy h1, html body .pt-home .pt-slide-copy h2 {
  font: 800 clamp(2rem, 3.2vw + 1rem, 3rem)/1.08 var(--pt-font-display);
  color: var(--pt-white);
  text-transform: uppercase;
}
.pt-slide-copy p { font: 400 1.125rem/1.6 var(--pt-font-body); color: rgba(255, 255, 255, 0.86); margin-top: 16px; max-width: 46ch; }
.pt-slide-actions { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 30px; }

/* Flechas a los lados, centradas en altura; puntos centrados abajo */
.pt-slider-arrow {
  position: absolute;
  top: 50%;
  z-index: 3;
  width: 48px; height: 48px;
  margin-top: -24px;
  display: flex; align-items: center; justify-content: center;
  border-radius: var(--pt-radius-pill);
  border: none;
  background: var(--pt-white);
  color: var(--pt-navy);
  box-shadow: var(--pt-shadow-hover);
  cursor: pointer;
  padding: 0;
  transition: background var(--pt-duration) var(--pt-ease), color var(--pt-duration) var(--pt-ease);
}
.pt-slider-arrow:hover { background: var(--pt-green); color: var(--pt-white); }
.pt-slider-arrow.is-prev { left: 20px; }
.pt-slider-arrow.is-next { right: 20px; }
.pt-slider-dots {
  position: absolute;
  left: 50%;
  bottom: 22px;
  z-index: 3;
  transform: translateX(-50%);
  display: flex;
  gap: 8px;
}
.pt-slider-dot {
  width: 10px; height: 10px;
  padding: 0;
  border: none;
  border-radius: var(--pt-radius-pill);
  background: var(--pt-blue-100);
  cursor: pointer;
  transition: width var(--pt-duration) var(--pt-ease), background var(--pt-duration) var(--pt-ease);
}
.pt-slider-dot.is-active { width: 28px; background: var(--pt-green); }

/* ==========================================================================
   4 — Franja de información
   ========================================================================== */
.pt-info { background: var(--pt-white); border-bottom: 1px solid var(--pt-gray-200); }
.pt-info .pt-container { display: grid; grid-template-columns: repeat(5, 1fr); }
.pt-info-item { display: flex; align-items: center; gap: 12px; padding: 24px 16px; }
.pt-info-item + .pt-info-item { border-left: 1px solid var(--pt-gray-200); }
.pt-info-icon {
  flex-shrink: 0;
  width: 46px; height: 46px;
  display: flex; align-items: center; justify-content: center;
  border-radius: var(--pt-radius-md);
  background: var(--pt-green-050);
  color: var(--pt-green-700);
}
.pt-info-item strong { display: block; font: 700 0.875rem/1.25 var(--pt-font-display); color: var(--pt-navy); text-transform: uppercase; letter-spacing: 0.02em; }
.pt-info-item div span { font-size: 0.8125rem; color: var(--pt-gray); line-height: 1.4; }

/* ==========================================================================
   5 — Categorías: círculos claros con la foto del producto (como la referencia)
   La imagen de cada círculo es la "Miniatura" de la categoría en WooCommerce:
   foto del producto con fondo transparente o blanco, cuadrada (600 × 600).
   ========================================================================== */
.pt-cats { background: var(--pt-white); padding: 64px 0 56px; }
.pt-cats-list { display: flex; justify-content: center; gap: 20px; flex-wrap: wrap; }
html body .pt-cat { display: flex; flex-direction: column; align-items: center; gap: 6px; width: 124px; text-decoration: none; text-align: center; }
.pt-cat-circle {
  width: 120px; height: 120px;
  display: flex; align-items: center; justify-content: center;
  border-radius: var(--pt-radius-pill);
  background: var(--pt-circle);
  border: 2px solid transparent;
  color: var(--pt-navy);
  overflow: hidden;
  margin-bottom: 8px;
  transition: border-color var(--pt-duration) var(--pt-ease), background var(--pt-duration) var(--pt-ease);
}
.pt-cat-circle img { width: 78%; height: 78%; object-fit: contain; transition: transform var(--pt-duration) var(--pt-ease); }
.pt-cat:hover .pt-cat-circle { border-color: var(--pt-green); background: var(--pt-green-050); }
.pt-cat-name { font: 800 0.8125rem/1.3 var(--pt-font-display); color: var(--pt-navy); text-transform: uppercase; letter-spacing: 0.02em; }
.pt-cat-link { font-size: 0.75rem; color: var(--pt-gray); }
.pt-cat:hover .pt-cat-link { color: var(--pt-green-700); }

/* ==========================================================================
   6 — Carruseles (productos, promociones y opiniones)
   ========================================================================== */
.pt-products { background: var(--pt-bg); padding: 64px 0; }
.pt-carousel { position: relative; }
.pt-carousel-track {
  display: flex;
  gap: 20px;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scroll-behavior: smooth;
  scrollbar-width: none;
  padding: 4px 2px 12px;
}
.pt-carousel-track::-webkit-scrollbar { display: none; }
.pt-carousel-track > * { flex: 0 0 calc((100% - 60px) / 4); scroll-snap-align: start; }
.pt-carousel-arrow {
  position: absolute;
  top: 40%;
  z-index: 2;
  width: 46px; height: 46px;
  display: flex; align-items: center; justify-content: center;
  border-radius: var(--pt-radius-pill);
  border: 1px solid var(--pt-gray-200);
  background: var(--pt-white);
  color: var(--pt-navy);
  box-shadow: var(--pt-shadow-card);
  cursor: pointer;
  padding: 0;
  transition: background var(--pt-duration) var(--pt-ease), color var(--pt-duration) var(--pt-ease);
}
.pt-carousel-arrow:hover { background: var(--pt-navy); color: var(--pt-white); }
.pt-carousel-arrow.is-prev { left: -22px; }
.pt-carousel-arrow.is-next { right: -22px; }
.pt-carousel-arrow[disabled] { opacity: 0.4; cursor: default; }
.pt-carousel-arrow[disabled]:hover { background: var(--pt-white); color: var(--pt-navy); }

.pt-card {
  display: flex;
  flex-direction: column;
  background: var(--pt-white);
  border: 1px solid var(--pt-gray-200);
  border-radius: var(--pt-radius-lg);
  box-shadow: var(--pt-shadow-card);
  overflow: hidden;
  transition: box-shadow var(--pt-duration) var(--pt-ease), border-color var(--pt-duration) var(--pt-ease);
}
.pt-card:hover { box-shadow: var(--pt-shadow-hover); border-color: var(--pt-blue-100); }
.pt-card-media { position: relative; display: block; aspect-ratio: 1 / 1; background: var(--pt-white); padding: 16px; }
.pt-card-media img { width: 100%; height: 100%; object-fit: contain; }
.pt-badge {
  position: absolute;
  top: 12px; left: 12px;
  z-index: 1;
  padding: 6px 10px;
  border-radius: var(--pt-radius-sm);
  font: 700 0.6875rem/1 var(--pt-font-display);
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--pt-white);
  background: var(--pt-navy);
}
.pt-badge.is-sale { background: var(--pt-green-700); }
.pt-badge.is-new { background: var(--pt-navy-700); }
.pt-badge.is-out { background: var(--pt-gray); }
.pt-card.is-out .pt-card-media img { opacity: 0.55; filter: grayscale(0.6); }

/* Botones "Editar" y "Pausar" que solo ve el equipo de la tienda */
.pt-card { position: relative; }
.pt-admin-tools { position: absolute; top: 10px; right: 10px; z-index: 3; display: flex; gap: 4px; }
.pt-admin-tools a {
  padding: 5px 9px;
  border-radius: var(--pt-radius-sm);
  background: var(--pt-navy);
  color: var(--pt-white);
  font: 700 0.6875rem/1 var(--pt-font-display);
  text-decoration: none;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2);
}
.pt-admin-tools a:hover { background: var(--pt-navy-700); color: var(--pt-white); }
.pt-admin-tools a.is-pause { background: var(--pt-error); }
.pt-admin-tools a.is-resume { background: var(--pt-green-700); }
.pt-product-summary .pt-admin-tools { position: static; margin-bottom: 12px; }
.pt-card-body { display: flex; flex-direction: column; gap: 6px; padding: 16px 18px 18px; border-top: 1px solid var(--pt-gray-100); flex: 1; }
.pt-card-category { font: 700 0.6875rem/1.2 var(--pt-font-display); letter-spacing: 0.06em; text-transform: uppercase; color: var(--pt-green-700); }
.pt-card-title { font: 700 0.9375rem/1.35 var(--pt-font-display); }
html body .pt-card-title a { color: var(--pt-navy); text-decoration: none; }
html body .pt-card-title a:hover { color: var(--pt-green-700); }
.pt-card-brand { font-size: 0.8125rem; color: var(--pt-gray); }
.pt-card-brand strong { color: var(--pt-navy); font-weight: 600; }
.pt-card-excerpt {
  font-size: 0.8125rem;
  line-height: 1.45;
  color: var(--pt-gray);
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  min-height: 2.9em;
}
.pt-card-rating { display: flex; align-items: center; gap: 6px; font-size: 0.8125rem; color: var(--pt-gray); }
.pt-card-rating .star-rating { margin: 0; font-size: 0.8125rem; color: var(--pt-warning); }
.pt-card-price { font: 700 1.1875rem/1.2 var(--pt-font-display); color: var(--pt-navy); margin-top: auto; padding-top: 6px; }
.pt-card-price del { font-size: 0.875rem; font-weight: 400; color: var(--pt-gray); margin-right: 6px; }
.pt-card-price ins { text-decoration: none; color: var(--pt-green-700); }
.pt-card-price .woocommerce-price-suffix { display: block; font: 400 0.75rem/1.4 var(--pt-font-body); color: var(--pt-gray); }
.pt-card-btn { width: 100%; padding: 12px 16px; font-size: 0.875rem; margin-top: 6px; }
.pt-card-btn.added { background: var(--pt-green-700); }
html body .pt-card .added_to_cart { display: block; text-align: center; font: 600 0.8125rem/1 var(--pt-font-body); color: var(--pt-green-700); margin-top: 8px; }

/* ==========================================================================
   7 — Promociones: carrusel de banners (2 a la vez, van rotando)
   Imagen 1200 × 600 (productos a la derecha); en celular 800 × 800 opcional.
   ========================================================================== */
.pt-promos { background: var(--pt-white); padding: 64px 0; }
.pt-promos .pt-carousel-track { gap: 24px; }
.pt-promos .pt-carousel-track > * { flex-basis: calc((100% - 24px) / 2); }
.pt-promos .pt-carousel-arrow { top: 50%; margin-top: -23px; }
/* Cinta continua: sin imán ni desplazamiento suave, el JS mueve píxel a píxel */
[data-pt-marquee] .pt-carousel-track { scroll-snap-type: none; scroll-behavior: auto; }
.pt-promo {
  position: relative;
  min-height: 300px;
  display: flex;
  align-items: center;
  border-radius: var(--pt-radius-lg);
  background: var(--pt-navy-900);
  overflow: hidden;
}
.pt-promo-media { position: absolute; inset: 0; z-index: 0; }
.pt-promo-media img { width: 100%; height: 100%; object-fit: cover; object-position: right center; display: block; }
.pt-promo::before {
  content: '';
  position: absolute;
  inset: 0;
  z-index: 1;
  background: linear-gradient(90deg, rgba(4, 33, 63, 0.95) 0%, rgba(4, 33, 63, 0.85) 38%, rgba(4, 33, 63, 0.3) 65%, rgba(4, 33, 63, 0) 85%);
}
.pt-promo-copy { position: relative; z-index: 2; padding: 32px; max-width: 360px; }
.pt-promo-copy .pt-eyebrow { color: var(--pt-green); }
html body .pt-home .pt-promo-copy h2 { font: 800 1.625rem/1.12 var(--pt-font-display); color: var(--pt-white); text-transform: uppercase; }
.pt-promo-copy p { color: rgba(255, 255, 255, 0.82); line-height: 1.55; margin: 12px 0 20px; font-size: 0.9375rem; }
.pt-promo-copy .pt-btn { padding: 12px 22px; font-size: 0.875rem; }
.pt-promo-brands { display: flex; flex-wrap: wrap; gap: 8px 18px; list-style: none; margin: 20px 0 0; padding: 16px 0 0; border-top: 1px solid var(--pt-navy-line); }
.pt-promo-brands li { font: 800 0.875rem/1 var(--pt-font-display); color: var(--pt-white); letter-spacing: 0.02em; }

/* ==========================================================================
   8 — Opiniones de clientes
   ========================================================================== */
.pt-reviews { background: var(--pt-bg); padding: 64px 0; }
.pt-reviews .pt-carousel-track > * { flex-basis: calc((100% - 40px) / 3); }
.pt-review {
  display: flex;
  flex-direction: column;
  gap: 14px;
  background: var(--pt-white);
  border: 1px solid var(--pt-gray-200);
  border-radius: var(--pt-radius-lg);
  box-shadow: var(--pt-shadow-card);
  padding: 28px;
}
.pt-review-quote { color: var(--pt-green-100); }
.pt-review-stars { display: flex; gap: 2px; color: var(--pt-gray-200); }
.pt-review-stars .is-on { color: var(--pt-warning); }
.pt-review-stars .is-on svg { fill: currentColor; }
.pt-review blockquote { font: 400 0.9375rem/1.6 var(--pt-font-body); color: var(--pt-navy); flex: 1; padding: 0; border: none; }
.pt-review figcaption { display: flex; align-items: center; gap: 12px; padding-top: 14px; border-top: 1px solid var(--pt-gray-100); }
.pt-review-avatar {
  width: 44px; height: 44px;
  flex-shrink: 0;
  display: flex; align-items: center; justify-content: center;
  border-radius: var(--pt-radius-pill);
  background: var(--pt-navy);
  color: var(--pt-white);
  font: 700 1rem/1 var(--pt-font-display);
}
.pt-review figcaption strong { display: block; font: 700 0.9375rem/1.3 var(--pt-font-display); color: var(--pt-navy); }
.pt-review figcaption small { font-size: 0.8125rem; color: var(--pt-gray); }

/* ==========================================================================
   9 — Promoción de la página de servicios
   ========================================================================== */
.pt-services { position: relative; overflow: hidden; background: var(--pt-navy); padding: 88px 0; }
.pt-services-bg { position: absolute; z-index: 0; inset: 0; background-position: center; background-size: cover; }
.pt-services::before {
  content: '';
  position: absolute;
  inset: 0;
  z-index: 1;
  background: linear-gradient(90deg, rgba(0, 51, 102, 0.88) 0%, rgba(0, 51, 102, 0.72) 38%, rgba(0, 51, 102, 0.2) 62%, rgba(0, 51, 102, 0) 78%);
}
.pt-services .pt-container { position: relative; z-index: 2; }
.pt-services-copy { max-width: 600px; }
.pt-services-copy .pt-eyebrow { color: var(--pt-green); }
html body .pt-home .pt-services-copy h2 { font: 800 clamp(1.8rem, 3vw + 1rem, 2.6rem)/1.1 var(--pt-font-display); color: var(--pt-white); text-transform: uppercase; }
.pt-services-copy > p { color: rgba(255, 255, 255, 0.86); font-size: 1.0625rem; line-height: 1.6; margin-top: 16px; }
.pt-services-list { list-style: none; margin: 22px 0 0; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.pt-services-list li { display: flex; align-items: center; gap: 10px; color: var(--pt-white); font-weight: 600; }
.pt-services-list .pt-icon { color: var(--pt-green); flex-shrink: 0; }

/* ==========================================================================
   10 — Preguntas frecuentes
   ========================================================================== */
.pt-faq-section { background: var(--pt-white); padding: 72px 0; }
.pt-faq-wrap { max-width: 840px; }
.pt-faq { display: flex; flex-direction: column; gap: 12px; }
.pt-faq details {
  background: var(--pt-white);
  border: 1px solid var(--pt-gray-200);
  border-radius: var(--pt-radius-lg);
  padding: 0 24px;
  transition: border-color var(--pt-duration) var(--pt-ease);
}
.pt-faq details[open] { border-color: var(--pt-green-100); background: var(--pt-bg); }
.pt-faq summary {
  list-style: none;
  cursor: pointer;
  padding: 20px 0;
  font: 700 1.0625rem/1.35 var(--pt-font-display);
  color: var(--pt-navy);
  display: flex;
  justify-content: space-between;
  gap: 16px;
}
.pt-faq summary::-webkit-details-marker { display: none; }
.pt-faq summary::after { content: '+'; color: var(--pt-green-600); font-size: 1.5rem; line-height: 1; flex-shrink: 0; }
.pt-faq details[open] summary::after { content: '–'; }
.pt-faq details p { padding: 0 0 20px; color: var(--pt-gray); line-height: 1.6; }
.pt-faq-more { text-align: center; margin-top: 28px !important; color: var(--pt-gray); }
html body .pt-faq-more a { color: var(--pt-green-700); font-weight: 700; }

/* ==========================================================================
   WooCommerce en el resto de páginas: tarjetas, precios, avisos
   ========================================================================== */
html body .woocommerce ul.products li.product {
  background: var(--pt-white);
  border: 1px solid var(--pt-gray-200);
  border-radius: var(--pt-radius-lg);
  box-shadow: var(--pt-shadow-card);
  overflow: hidden;
  transition: box-shadow var(--pt-duration) var(--pt-ease);
}
html body .woocommerce ul.products li.product:hover { box-shadow: var(--pt-shadow-hover); }
html body .woocommerce ul.products li.product .woocommerce-loop-product__title { font: 600 1rem/1.35 var(--pt-font-display); color: var(--pt-navy); }
html body .woocommerce ul.products li.product .price,
html body .woocommerce div.product p.price,
html body .woocommerce div.product span.price { font-family: var(--pt-font-display); font-weight: 700; color: var(--pt-navy); }
html body .woocommerce .price del { color: var(--pt-gray); font-weight: 400; }
html body .woocommerce .price ins { text-decoration: none; color: var(--pt-green-700); }
.woocommerce-price-suffix { font: 400 0.75rem/1 var(--pt-font-body); color: var(--pt-gray); }
html body .woocommerce span.onsale { background: var(--pt-green-700); color: var(--pt-white); border-radius: var(--pt-radius-sm); font-family: var(--pt-font-display); font-weight: 700; }
.woocommerce-message, .woocommerce-info { border-top-color: var(--pt-green); }
.woocommerce-error { border-top-color: var(--pt-error); }

/* Pedido recibido: confirmación por WhatsApp */
.pt-wa-confirm {
  display: flex;
  gap: 20px;
  align-items: flex-start;
  background: var(--pt-green-050);
  border: 1px solid var(--pt-green-100);
  border-radius: var(--pt-radius-lg);
  padding: 28px;
  margin: 0 0 32px;
}
.pt-wa-confirm-icon {
  flex-shrink: 0;
  width: 56px; height: 56px;
  display: flex; align-items: center; justify-content: center;
  border-radius: var(--pt-radius-pill);
  background: var(--pt-green);
  color: var(--pt-white);
}
html body .pt-wa-confirm h2 { font: 700 1.375rem/1.25 var(--pt-font-display); color: var(--pt-navy); margin: 0 0 8px; }
.pt-wa-confirm p { margin: 0 0 16px; line-height: 1.6; color: var(--pt-navy); }
.pt-wa-confirm .pt-wa-confirm-note { font-size: 0.875rem; color: var(--pt-gray); margin: 12px 0 0; }

/* ==========================================================================
   11 — Pie de página
   ========================================================================== */
.pt-footer { background: var(--pt-navy-900); color: rgba(255, 255, 255, 0.75); padding-top: 64px; }
html body .pt-footer a { color: rgba(255, 255, 255, 0.75); text-decoration: none; transition: color var(--pt-duration) var(--pt-ease); }
html body .pt-footer a:hover { color: var(--pt-green); }
.pt-footer-top {
  display: grid;
  grid-template-columns: 1.4fr 1fr 1.2fr 1.2fr;
  gap: 32px;
  padding-bottom: 48px;
  border-bottom: 1px solid var(--pt-navy-line);
}
.pt-footer-brand p { margin: 16px 0 0; font-size: 0.875rem; line-height: 1.55; max-width: 34ch; }
.pt-footer-social { display: flex; gap: 8px; margin-top: 24px; }
html body .pt-footer-social a {
  width: 38px; height: 38px;
  border-radius: var(--pt-radius-pill);
  border: 1px solid var(--pt-navy-line);
  display: flex; align-items: center; justify-content: center;
}
html body .pt-footer-social a:hover { background: var(--pt-green); border-color: var(--pt-green); color: var(--pt-white); }
html body .pt-footer-col h2 {
  font: 700 0.8125rem/1 var(--pt-font-display);
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--pt-white);
  margin: 0 0 16px;
}
.pt-footer-col ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.pt-footer-col a, .pt-footer-col li { font-size: 0.875rem; line-height: 1.5; }
.pt-contact-item { display: flex; align-items: flex-start; gap: 10px; }
.pt-contact-item .pt-icon { flex-shrink: 0; margin-top: 2px; color: var(--pt-green); }
.pt-footer-bottom {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 24px 0;
  font-size: 0.8125rem;
  flex-wrap: wrap;
}
.pt-footer-bottom p { margin: 0; max-width: 80ch; line-height: 1.55; }
.pt-sic-link { white-space: nowrap; text-decoration: underline !important; }

/* Botón flotante de WhatsApp */
html body .pt-wa-float {
  position: fixed;
  right: 24px;
  bottom: 24px;
  z-index: 90;
  width: 58px; height: 58px;
  border-radius: var(--pt-radius-pill);
  background: var(--pt-green);
  color: var(--pt-white);
  display: flex; align-items: center; justify-content: center;
  box-shadow: var(--pt-shadow-hover);
  transition: background var(--pt-duration) var(--pt-ease);
}
html body .pt-wa-float:hover { background: var(--pt-green-600); color: var(--pt-white); }

/* ==========================================================================
   Página Tienda (catálogo, categorías, marcas y búsqueda)
   Panel lateral de filtros a la izquierda y productos a la derecha, sobre
   fondo claro; las promociones, opiniones y servicios son los del inicio.
   ========================================================================== */
.pt-shop { background: var(--pt-bg); }
.pt-shop-layout {
  display: grid;
  grid-template-columns: 264px minmax(0, 1fr);
  gap: 32px;
  align-items: start;
  padding-top: 32px;
  padding-bottom: 72px;
}

/* 4 — Panel lateral */
.pt-shop-sidebar {
  position: sticky;
  top: calc(var(--pt-header-height) + 20px);
  max-height: calc(100vh - var(--pt-header-height) - 40px);
  overflow-y: auto;
  scrollbar-width: thin;
  display: flex;
  flex-direction: column;
  gap: 20px;
  background: var(--pt-white);
  border: 1px solid var(--pt-gray-200);
  border-radius: var(--pt-radius-lg);
  padding: 20px;
}
.admin-bar .pt-shop-sidebar { top: calc(var(--pt-header-height) + 52px); }
.pt-shop-sidebar-head { display: none; }
.pt-filter + .pt-filter { border-top: 1px solid var(--pt-gray-100); padding-top: 20px; }
html body .pt-shop .pt-filter-title {
  font: 800 0.8125rem/1 var(--pt-font-display);
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--pt-navy);
  margin: 0 0 12px;
}
.pt-filter ul { list-style: none; margin: 0; padding: 0; }
.pt-filter-cats > li + li { margin-top: 2px; }
html body .pt-filter-cats a,
.pt-filter-cats summary,
html body .pt-filter-brands a {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px 10px;
  border-radius: var(--pt-radius-md);
  font-size: 0.875rem;
  line-height: 1.3;
  color: var(--pt-navy);
  text-decoration: none;
  cursor: pointer;
  transition: background var(--pt-duration) var(--pt-ease), color var(--pt-duration) var(--pt-ease);
}
html body .pt-filter-cats a:hover, .pt-filter-cats summary:hover, html body .pt-filter-brands a:hover { background: var(--pt-bg); }
.pt-filter-cats summary { list-style: none; font-weight: 600; }
.pt-filter-cats summary::-webkit-details-marker { display: none; }
.pt-filter-cats summary span { flex: 1; }
.pt-filter-cats summary .pt-icon { flex-shrink: 0; color: var(--pt-gray); transition: transform var(--pt-duration) var(--pt-ease); }
.pt-filter-cats details[open] > summary .pt-icon { transform: rotate(180deg); }
.pt-filter-cats summary.is-active { color: var(--pt-green-700); }
.pt-filter-cats details ul { margin: 2px 0 6px 10px; padding-left: 8px; border-left: 2px solid var(--pt-gray-100); }
html body .pt-filter-cats details a { font-size: 0.8125rem; padding: 7px 10px; }
html body .pt-filter-cats > li > a { font-weight: 600; }
.pt-filter small {
  margin-left: auto;
  min-width: 26px;
  padding: 3px 7px;
  border-radius: var(--pt-radius-pill);
  background: var(--pt-gray-100);
  font: 600 0.6875rem/1 var(--pt-font-body);
  color: var(--pt-gray);
  text-align: center;
}
html body .pt-filter a.is-current { background: var(--pt-green-050); color: var(--pt-green-700); font-weight: 700; }
html body .pt-filter a.is-current small { background: var(--pt-white); color: var(--pt-green-700); }

.pt-filter-check {
  flex-shrink: 0;
  width: 18px; height: 18px;
  display: flex; align-items: center; justify-content: center;
  border: 1.5px solid var(--pt-blue-100);
  border-radius: var(--pt-radius-sm);
  color: transparent;
  background: var(--pt-white);
}
.pt-filter-brands a.is-current .pt-filter-check { background: var(--pt-green); border-color: var(--pt-green); color: var(--pt-white); }

.pt-filter-price { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.pt-filter-price label { display: flex; flex-direction: column; gap: 4px; font-size: 0.75rem; color: var(--pt-gray); }
html body .pt-filter-price input {
  width: 100%;
  min-height: 40px;
  padding: 8px 10px;
  border: 1px solid var(--pt-gray-200);
  border-radius: var(--pt-radius-md);
  background: var(--pt-white);
  font: 400 0.875rem/1.2 var(--pt-font-body);
  color: var(--pt-navy);
}
html body .pt-filter-price input:focus { border-color: var(--pt-green); outline: none; box-shadow: 0 0 0 3px var(--pt-green-050); }
.pt-filter-price .pt-btn { grid-column: 1 / -1; padding: 11px 16px; font-size: 0.8125rem; }
html body .pt-filter-clear { display: inline-flex; align-items: center; gap: 6px; font: 700 0.8125rem/1 var(--pt-font-display); color: var(--pt-error); text-decoration: none; }

.pt-shop-help {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 8px;
  padding: 20px;
  border-radius: var(--pt-radius-md);
  background: var(--pt-navy);
  color: var(--pt-white);
}
.pt-shop-help-icon {
  width: 44px; height: 44px;
  display: flex; align-items: center; justify-content: center;
  border-radius: var(--pt-radius-pill);
  background: var(--pt-navy-700);
  color: var(--pt-green);
}
.pt-shop-help strong { font: 800 0.9375rem/1.25 var(--pt-font-display); text-transform: uppercase; }
html body .pt-shop .pt-shop-help p { font-size: 0.8125rem; line-height: 1.5; color: rgba(255, 255, 255, 0.8); }
.pt-shop-help .pt-btn { width: 100%; margin-top: 6px; padding: 12px 16px; font-size: 0.8125rem; }

/* Encabezado de la página */
.pt-shop-head { margin-bottom: 24px; }
.pt-breadcrumb { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; font-size: 0.8125rem; color: var(--pt-gray); margin-bottom: 10px; }
html body .pt-breadcrumb a { color: var(--pt-gray); text-decoration: none; }
html body .pt-breadcrumb a:hover { color: var(--pt-green-700); }
.pt-crumb-sep { color: var(--pt-blue-100); }
html body .pt-shop .pt-shop-head h1 { font: 800 clamp(1.625rem, 2vw + 1rem, 2.25rem)/1.15 var(--pt-font-display); color: var(--pt-navy); text-transform: uppercase; }
.pt-shop-desc { max-width: 70ch; margin-top: 10px; color: var(--pt-gray); line-height: 1.6; }
.pt-shop-desc p { margin: 0; }

/* 3 — Cuadros de categorías / subcategorías */
.pt-shop-tiles {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(108px, 1fr));
  gap: 14px;
  margin-bottom: 32px;
}
html body .pt-tile {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
  padding: 14px 8px 12px;
  background: var(--pt-white);
  border: 1px solid var(--pt-gray-200);
  border-radius: var(--pt-radius-lg);
  text-align: center;
  text-decoration: none;
  transition: border-color var(--pt-duration) var(--pt-ease), box-shadow var(--pt-duration) var(--pt-ease);
}
html body .pt-tile:hover { border-color: var(--pt-green); box-shadow: var(--pt-shadow-card); }
.pt-tile-media {
  width: 64px; height: 64px;
  display: flex; align-items: center; justify-content: center;
  border-radius: var(--pt-radius-pill);
  background: var(--pt-circle);
  color: var(--pt-navy);
  overflow: hidden;
  margin-bottom: 6px;
}
.pt-tile-media img { width: 80%; height: 80%; object-fit: contain; }
.pt-tile:hover .pt-tile-media { background: var(--pt-green-050); color: var(--pt-green-700); }
.pt-tile-name { font: 800 0.75rem/1.3 var(--pt-font-display); color: var(--pt-navy); text-transform: uppercase; letter-spacing: 0.02em; }
.pt-tile-count { font-size: 0.75rem; color: var(--pt-gray); }

/* 5 — Barra de orden, cuadrícula y paginación */
.pt-shop-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
  padding-bottom: 16px;
  margin-bottom: 20px;
  border-bottom: 1px solid var(--pt-gray-200);
}
html body .pt-shop-toolbar .woocommerce-result-count { margin: 0; font-size: 0.875rem; color: var(--pt-gray); }
html body .pt-shop-toolbar .woocommerce-ordering { margin: 0 0 0 auto; }
html body .pt-shop-toolbar select.orderby {
  min-height: 42px;
  padding: 8px 36px 8px 14px;
  border: 1px solid var(--pt-gray-200);
  border-radius: var(--pt-radius-pill);
  background-color: var(--pt-white);
  font: 600 0.875rem/1.2 var(--pt-font-body);
  color: var(--pt-navy);
  cursor: pointer;
}
.pt-shop-filters-open { display: none; position: relative; padding: 10px 18px; font-size: 0.875rem; }
.pt-filter-dot { position: absolute; top: 6px; right: 8px; width: 8px; height: 8px; border-radius: var(--pt-radius-pill); background: var(--pt-green); }

.pt-shop-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }

html body .pt-shop .woocommerce-pagination { margin-top: 40px; text-align: center; }
html body .pt-shop .woocommerce-pagination ul.page-numbers { display: inline-flex; gap: 8px; border: none; margin: 0; padding: 0; list-style: none; }
html body .pt-shop .woocommerce-pagination ul.page-numbers li { border: none; }
html body .pt-shop .woocommerce-pagination .page-numbers a,
html body .pt-shop .woocommerce-pagination .page-numbers span {
  min-width: 42px; height: 42px;
  display: flex; align-items: center; justify-content: center;
  padding: 0 12px;
  border: 1px solid var(--pt-gray-200);
  border-radius: var(--pt-radius-pill);
  background: var(--pt-white);
  font: 700 0.875rem/1 var(--pt-font-display);
  color: var(--pt-navy);
  text-decoration: none;
}
html body .pt-shop .woocommerce-pagination .page-numbers a:hover { border-color: var(--pt-green); color: var(--pt-green-700); }
html body .pt-shop .woocommerce-pagination .page-numbers span.current { background: var(--pt-navy); border-color: var(--pt-navy); color: var(--pt-white); }

.pt-shop-empty {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
  padding: 48px 24px;
  background: var(--pt-white);
  border: 1px solid var(--pt-gray-200);
  border-radius: var(--pt-radius-lg);
  text-align: center;
}
.pt-shop-empty .pt-shop-help-icon { width: 60px; height: 60px; background: var(--pt-green-050); color: var(--pt-green-700); }
html body .pt-shop .pt-shop-empty h2 { font: 800 1.25rem/1.25 var(--pt-font-display); color: var(--pt-navy); text-transform: uppercase; }
html body .pt-shop .pt-shop-empty p { max-width: 46ch; color: var(--pt-gray); line-height: 1.6; }
.pt-shop-empty-actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; margin-top: 8px; }

.pt-shop-backdrop { position: fixed; inset: 0; z-index: 110; background: rgba(4, 33, 63, 0.55); }
.pt-shop-backdrop[hidden] { display: none; }

@media (max-width: 1100px) {
  .pt-shop-layout { grid-template-columns: 240px minmax(0, 1fr); gap: 24px; }
  .pt-shop-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* Tableta y celular: el panel de filtros se abre desde la izquierda */
@media (max-width: 1024px) {
  .pt-shop-layout { grid-template-columns: minmax(0, 1fr); padding-top: 24px; }
  .pt-shop-sidebar {
    position: fixed;
    top: 0; bottom: 0; left: 0;
    z-index: 120;
    width: min(340px, 88vw);
    max-height: none;
    border: none;
    border-radius: 0;
    box-shadow: var(--pt-shadow-hover);
    transform: translateX(-105%);
    visibility: hidden;
    transition: transform 240ms var(--pt-ease), visibility 240ms;
  }
  .admin-bar .pt-shop-sidebar { top: 0; }
  .pt-shop-sidebar.is-open { transform: translateX(0); visibility: visible; transition: transform 240ms var(--pt-ease); }
  .pt-shop-sidebar-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding-bottom: 12px;
    border-bottom: 1px solid var(--pt-gray-200);
    font: 800 1rem/1 var(--pt-font-display);
    color: var(--pt-navy);
    text-transform: uppercase;
  }
  .pt-shop-filters-close { width: 40px; height: 40px; display: flex; align-items: center; justify-content: center; border: none; background: none; color: var(--pt-navy); cursor: pointer; padding: 0; }
  html body .pt-shop-filters-open { display: inline-flex; }
  .pt-shop-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 860px) {
  .pt-shop-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
  /* Cuadros de categorías: se deslizan con el dedo */
  .pt-shop-tiles { display: flex; overflow-x: auto; scrollbar-width: none; margin: 0 -24px 24px; padding: 0 24px 4px; }
  .pt-shop-tiles::-webkit-scrollbar { display: none; }
  html body .pt-tile { flex: 0 0 116px; }
}

@media (max-width: 640px) {
  .pt-shop-toolbar { gap: 10px; }
  .pt-shop-tiles { margin: 0 -16px 24px; padding: 0 16px 4px; }
  html body .pt-shop-toolbar .woocommerce-result-count { order: 3; width: 100%; font-size: 0.8125rem; }
  /* Tarjetas en dos columnas: más compactas */
  .pt-shop-grid .pt-card-media { padding: 10px; }
  .pt-shop-grid .pt-card-body { padding: 12px; gap: 4px; }
  .pt-shop-grid .pt-card-title { font-size: 0.8125rem; }
  .pt-shop-grid .pt-card-excerpt { display: none; }
  .pt-shop-grid .pt-card-brand, .pt-shop-grid .pt-card-category { font-size: 0.6875rem; }
  .pt-shop-grid .pt-card-price { font-size: 1rem; }
  .pt-shop-grid .pt-card-btn { padding: 10px 8px; font-size: 0.75rem; gap: 6px; white-space: normal; }
  .pt-shop-grid .pt-card-btn .pt-icon { display: none; }
  .pt-shop-grid .pt-badge { top: 8px; left: 8px; padding: 5px 7px; font-size: 0.625rem; }
}

/* ==========================================================================
   Página de una categoría — banner principal (3)
   Imagen 1600 × 400: productos a la derecha, izquierda oscura para el texto.
   ========================================================================== */
.pt-cat-banner {
  position: relative;
  overflow: hidden;
  display: flex;
  align-items: center;
  min-height: 240px;
  margin-bottom: 32px;
  border-radius: var(--pt-radius-lg);
  background: var(--pt-navy-900);
}
.pt-cat-banner-media { position: absolute; inset: 0; z-index: 0; width: 100%; height: 100%; object-fit: cover; object-position: right center; }
.pt-cat-banner::before {
  content: '';
  position: absolute;
  inset: 0;
  z-index: 1;
  background: linear-gradient(90deg, rgba(4, 33, 63, 0.94) 0%, rgba(4, 33, 63, 0.8) 38%, rgba(4, 33, 63, 0.15) 70%, rgba(4, 33, 63, 0) 85%);
}
.pt-cat-banner-copy { position: relative; z-index: 2; max-width: 460px; padding: 32px 36px; }
.pt-cat-banner-copy .pt-eyebrow { color: var(--pt-green); margin-bottom: 10px; }
html body .pt-shop .pt-cat-banner h1 { font: 800 clamp(1.75rem, 2.2vw + 1rem, 2.5rem)/1.1 var(--pt-font-display); color: var(--pt-white); text-transform: uppercase; }
.pt-cat-banner-desc { margin-top: 10px; color: rgba(255, 255, 255, 0.84); font-size: 0.9375rem; line-height: 1.55; }
.pt-cat-banner-desc p { margin: 0; }
.pt-cat-banner-count {
  display: inline-block;
  margin-top: 16px;
  padding: 6px 12px;
  border-radius: var(--pt-radius-pill);
  background: var(--pt-green);
  font: 700 0.75rem/1 var(--pt-font-display);
  color: var(--pt-white);
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

/* Franja de beneficios en formato grande (ficha de producto) */
.pt-info--large { background: var(--pt-navy); border: none; }
.pt-info--large .pt-info-item { padding: 32px 18px; }
.pt-info--large .pt-info-item + .pt-info-item { border-left-color: var(--pt-navy-line); }
.pt-info--large .pt-info-item .pt-info-icon { width: 58px; height: 58px; border-radius: var(--pt-radius-pill); background: var(--pt-green); color: var(--pt-white); }
.pt-info--large .pt-info-item strong { color: var(--pt-white); font-size: 0.9375rem; }
.pt-info--large .pt-info-item div span { color: rgba(255, 255, 255, 0.75); }

/* ==========================================================================
   Ficha de producto
   ========================================================================== */
.pt-product-page { background: var(--pt-white); }
.pt-product-top { padding-top: 24px; padding-bottom: 56px; }
.pt-product-main {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr);
  gap: 48px;
  align-items: start;
  margin-top: 16px;
}

/* 3 — Fotos (galería de WooCommerce) */
.pt-product-gallery { position: relative; }
.pt-product-gallery > .pt-badge { top: 16px; left: 16px; z-index: 5; }
html body .pt-product-gallery .woocommerce-product-gallery { position: relative; width: 100% !important; float: none !important; margin: 0 !important; }
html body .pt-product-gallery .woocommerce-product-gallery__wrapper { margin: 0; }
html body .pt-product-gallery .flex-viewport,
html body .pt-product-gallery .woocommerce-product-gallery__wrapper > .woocommerce-product-gallery__image:only-child,
html body .pt-product-gallery .woocommerce-product-gallery--without-images .woocommerce-product-gallery__wrapper {
  border: 1px solid var(--pt-gray-200);
  border-radius: var(--pt-radius-lg);
  background: var(--pt-white);
  overflow: hidden;
}
html body .pt-product-gallery .woocommerce-product-gallery__image img { width: 100%; height: auto; aspect-ratio: 1 / 1; object-fit: contain; padding: 24px; background: var(--pt-white); }
html body .pt-product-gallery .flex-control-thumbs { display: grid; grid-template-columns: repeat(5, 1fr); gap: 10px; margin: 12px 0 0; padding: 0; list-style: none; }
html body .pt-product-gallery .flex-control-thumbs li { width: auto !important; float: none !important; margin: 0 !important; }
html body .pt-product-gallery .flex-control-thumbs img {
  width: 100%;
  aspect-ratio: 1 / 1;
  object-fit: contain;
  padding: 6px;
  border: 1px solid var(--pt-gray-200);
  border-radius: var(--pt-radius-md);
  background: var(--pt-white);
  opacity: 1;
  cursor: pointer;
  transition: border-color var(--pt-duration) var(--pt-ease);
}
html body .pt-product-gallery .flex-control-thumbs img.flex-active,
html body .pt-product-gallery .flex-control-thumbs img:hover { border-color: var(--pt-green); }
html body .pt-product-gallery .woocommerce-product-gallery__trigger {
  position: absolute;
  top: 16px; right: 16px;
  z-index: 5;
  width: 40px; height: 40px;
  border-radius: var(--pt-radius-pill);
  background: var(--pt-white);
  border: 1px solid var(--pt-gray-200);
  box-shadow: var(--pt-shadow-card);
}

/* 4 — Nombre, precio y botones */
.pt-product-summary { display: flex; flex-direction: column; gap: 16px; }
html body .pt-product-cat { margin: 0; text-decoration: none; }
html body .pt-product-page h1.product_title { font: 800 clamp(1.5rem, 1.4vw + 1rem, 2.125rem)/1.2 var(--pt-font-display); color: var(--pt-navy); margin: -6px 0 0; }
.pt-product-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 20px; font-size: 0.875rem; color: var(--pt-gray); }
.pt-product-meta strong { color: var(--pt-navy); font-weight: 600; }
html body .pt-product-rating { display: inline-flex; align-items: center; gap: 6px; color: var(--pt-gray); text-decoration: none; }
.pt-product-rating .star-rating { margin: 0; color: var(--pt-warning); font-size: 0.875rem; }
.pt-product-price {
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding: 16px 0;
  border-top: 1px solid var(--pt-gray-200);
  border-bottom: 1px solid var(--pt-gray-200);
  font: 800 2rem/1.1 var(--pt-font-display);
  color: var(--pt-navy);
}
.pt-product-price del { font-size: 1.125rem; font-weight: 400; color: var(--pt-gray); margin-right: 8px; }
.pt-product-price ins { text-decoration: none; color: var(--pt-green-700); }
.pt-product-price .woocommerce-price-suffix { display: none; }
.pt-product-price small { font: 400 0.8125rem/1.4 var(--pt-font-body); color: var(--pt-gray); }
html body .pt-product-page .pt-product-short p { margin: 0; color: var(--pt-gray); line-height: 1.6; }
.pt-product-facts { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; font-size: 0.875rem; color: var(--pt-navy); }
.pt-product-facts li { display: flex; align-items: flex-start; gap: 10px; line-height: 1.45; }
.pt-product-facts .pt-icon { flex-shrink: 0; margin-top: 1px; color: var(--pt-green-700); }
.pt-product-facts li.is-ok { font-weight: 600; }
.pt-product-facts li.is-off { color: var(--pt-error); font-weight: 600; }
.pt-product-facts li.is-off .pt-icon { color: var(--pt-error); }

/* Cantidad y "Agregar al carrito" (formulario de WooCommerce) */
html body .pt-product-buy form.cart { display: flex; flex-wrap: wrap; gap: 12px; margin: 0; }
html body .pt-product-buy .quantity { display: flex; align-items: center; margin: 0 !important; border: 1px solid var(--pt-gray-200); border-radius: var(--pt-radius-pill); overflow: hidden; }
html body .pt-product-buy .quantity input.qty {
  width: 56px;
  min-height: 50px;
  border: none;
  background: var(--pt-white);
  text-align: center;
  font: 700 1rem/1 var(--pt-font-display);
  color: var(--pt-navy);
  -moz-appearance: textfield;
}
html body .pt-product-buy .quantity input.qty::-webkit-inner-spin-button,
html body .pt-product-buy .quantity input.qty::-webkit-outer-spin-button { -webkit-appearance: none; margin: 0; }
.pt-qty-btn { width: 44px; min-height: 50px; border: none; background: var(--pt-bg); color: var(--pt-navy); font: 700 1.25rem/1 var(--pt-font-display); cursor: pointer; padding: 0; }
.pt-qty-btn:hover { background: var(--pt-blue-050); }
html body .pt-product-buy .single_add_to_cart_button {
  flex: 1 1 200px;
  min-height: 52px;
  padding: 14px 24px;
  border: none;
  border-radius: var(--pt-radius-pill);
  background: var(--pt-green) !important;
  color: var(--pt-white) !important;
  font: 700 1rem/1 var(--pt-font-display);
}
html body .pt-product-buy .single_add_to_cart_button:hover { background: var(--pt-green-600) !important; }
html body .pt-product-buy .single_add_to_cart_button.disabled { opacity: 0.5; cursor: not-allowed; }
html body .pt-product-buy table.variations { width: 100%; margin: 0 0 12px; border: none; }
html body .pt-product-buy table.variations th, html body .pt-product-buy table.variations td { display: block; padding: 0 0 6px; border: none; text-align: left; }
html body .pt-product-buy table.variations label { font: 700 0.8125rem/1 var(--pt-font-display); color: var(--pt-navy); text-transform: uppercase; }
html body .pt-product-buy table.variations select { width: 100%; min-height: 46px; padding: 8px 12px; border: 1px solid var(--pt-gray-200); border-radius: var(--pt-radius-md); }
html body .pt-product-buy .woocommerce-variation-add-to-cart { display: flex; flex-wrap: wrap; gap: 12px; width: 100%; }
html body .pt-product-buy .stock { margin: 0; font-size: 0.875rem; }
html body .pt-product-wa { justify-content: center; min-height: 50px; }

.pt-product-install {
  display: flex;
  gap: 14px;
  padding: 18px;
  border: 1px dashed var(--pt-green);
  border-radius: var(--pt-radius-md);
  background: var(--pt-green-050);
}
.pt-product-install-icon {
  flex-shrink: 0;
  width: 44px; height: 44px;
  display: flex; align-items: center; justify-content: center;
  border-radius: var(--pt-radius-pill);
  background: var(--pt-white);
  color: var(--pt-green-700);
}
.pt-product-install strong { display: block; font: 800 0.9375rem/1.25 var(--pt-font-display); color: var(--pt-navy); text-transform: uppercase; }
html body .pt-product-page .pt-product-install p { margin: 4px 0 8px; font-size: 0.875rem; color: var(--pt-gray); line-height: 1.5; }
html body .pt-product-install a { display: inline-flex; align-items: center; gap: 6px; font: 700 0.875rem/1 var(--pt-font-display); color: var(--pt-green-700); text-decoration: none; }

/* Pestañas: descripción, ficha técnica, garantía, opiniones */
.pt-product-details { background: var(--pt-white); padding: 56px 0; }
.pt-tabs-list { display: flex; gap: 4px; overflow-x: auto; scrollbar-width: none; border-bottom: 2px solid var(--pt-gray-200); margin-bottom: 28px; }
.pt-tabs-list::-webkit-scrollbar { display: none; }
.pt-tabs-list button {
  flex-shrink: 0;
  padding: 14px 20px;
  margin-bottom: -2px;
  border: none;
  border-bottom: 3px solid transparent;
  background: none;
  font: 700 0.9375rem/1 var(--pt-font-display);
  color: var(--pt-gray);
  cursor: pointer;
}
.pt-tabs-list button:hover { color: var(--pt-navy); }
.pt-tabs-list button[aria-selected="true"] { color: var(--pt-navy); border-bottom-color: var(--pt-green); }
.pt-tab-panel { max-width: 860px; }
.pt-prose { color: var(--pt-navy); line-height: 1.7; }
html body .pt-product-page .pt-prose p { margin: 0 0 14px; }
html body .pt-product-page .pt-prose h2, html body .pt-product-page .pt-prose h3 { font: 800 1.0625rem/1.3 var(--pt-font-display); color: var(--pt-navy); text-transform: uppercase; margin: 24px 0 10px; }
html body .pt-product-page .pt-prose h3:first-child { margin-top: 0; }
.pt-prose ul { padding-left: 20px; margin: 0 0 14px; }
.pt-prose li { margin-bottom: 6px; }
.pt-specs { width: 100%; border-collapse: collapse; border: 1px solid var(--pt-gray-200); border-radius: var(--pt-radius-md); overflow: hidden; font-size: 0.9375rem; }
.pt-specs th, .pt-specs td { padding: 12px 16px; text-align: left; border-bottom: 1px solid var(--pt-gray-200); vertical-align: top; }
.pt-specs tr:last-child th, .pt-specs tr:last-child td { border-bottom: none; }
.pt-specs th { width: 36%; background: var(--pt-bg); font: 700 0.875rem/1.4 var(--pt-font-display); color: var(--pt-navy); }
.pt-specs td { color: var(--pt-navy); }
.pt-related { border-top: 1px solid var(--pt-gray-200); }

@media (max-width: 1024px) {
  .pt-product-main { gap: 32px; }
  .pt-info--large .pt-info-item { padding: 24px 14px; }
}
@media (max-width: 860px) {
  .pt-product-main { grid-template-columns: minmax(0, 1fr); }
  .pt-cat-banner { min-height: 0; align-items: flex-end; }
  .pt-cat-banner-media { object-position: center; }
  .pt-cat-banner::before { background: linear-gradient(180deg, rgba(4, 33, 63, 0.25) 0%, rgba(4, 33, 63, 0.75) 45%, rgba(4, 33, 63, 0.95) 100%); }
  .pt-cat-banner-copy { padding: 96px 20px 22px; }
}
@media (max-width: 640px) {
  .pt-product-top { padding-bottom: 40px; }
  .pt-product-price { font-size: 1.75rem; }
  .pt-product-details { padding: 40px 0; }
  .pt-tabs-list button { padding: 12px 14px; font-size: 0.875rem; }
  .pt-specs th, .pt-specs td { padding: 10px 12px; font-size: 0.875rem; }
  .pt-info--large .pt-info-item .pt-info-icon { width: 48px; height: 48px; }
  .pt-cat-banner { margin: 0 -16px 24px; border-radius: 0; }
}

/* ==========================================================================
   Páginas legales (envíos, retracto, garantías, términos, PQR, privacidad)
   Lectura cómoda: título en banda azul, índice lateral fijo y texto a 70 caracteres.
   ========================================================================== */
.pt-legal { background: var(--pt-white); }
.pt-legal-hero { background: var(--pt-navy); padding: 40px 0 44px; border-bottom: 4px solid var(--pt-green); }
.pt-legal-hero .pt-breadcrumb, html body .pt-legal-hero .pt-breadcrumb a { color: rgba(255, 255, 255, 0.7); }
.pt-legal-hero .pt-crumb-sep { color: var(--pt-navy-line); }
html body .pt-legal .pt-legal-hero h1 { font: 800 clamp(1.75rem, 2.4vw + 1rem, 2.625rem)/1.12 var(--pt-font-display); color: var(--pt-white); text-transform: uppercase; max-width: 22ch; }
html body .pt-legal .pt-legal-intro { margin-top: 12px; max-width: 60ch; font-size: 1.0625rem; line-height: 1.55; color: rgba(255, 255, 255, 0.86); }
html body .pt-legal .pt-legal-updated { margin-top: 16px; font: 700 0.75rem/1 var(--pt-font-display); letter-spacing: 0.06em; text-transform: uppercase; color: var(--pt-green); }

.pt-legal-layout { display: grid; grid-template-columns: 250px minmax(0, 1fr); gap: 56px; align-items: start; padding-top: 48px; padding-bottom: 72px; }
.pt-legal-aside { position: sticky; top: calc(var(--pt-header-height) + 24px); display: flex; flex-direction: column; gap: 28px; }
.admin-bar .pt-legal-aside { top: calc(var(--pt-header-height) + 56px); }
.pt-legal-aside strong { display: block; margin-bottom: 10px; font: 800 0.75rem/1 var(--pt-font-display); letter-spacing: 0.06em; text-transform: uppercase; color: var(--pt-navy); }
.pt-legal-aside ol, .pt-legal-aside ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 2px; }
html body .pt-legal-aside a {
  display: block;
  padding: 7px 12px;
  border-left: 2px solid var(--pt-gray-200);
  font-size: 0.875rem;
  line-height: 1.35;
  color: var(--pt-gray);
  text-decoration: none;
  transition: color var(--pt-duration) var(--pt-ease), border-color var(--pt-duration) var(--pt-ease);
}
html body .pt-legal-aside a:hover, html body .pt-legal-aside a.is-current { color: var(--pt-navy); border-left-color: var(--pt-green); }
html body .pt-legal-aside a.is-current { font-weight: 700; }

.pt-legal-body { max-width: 72ch; }
html body .pt-legal .pt-legal-body h2 {
  scroll-margin-top: calc(var(--pt-header-height) + 24px);
  margin: 40px 0 12px;
  font: 800 1.25rem/1.3 var(--pt-font-display);
  color: var(--pt-navy);
  text-transform: uppercase;
}
html body .pt-legal .pt-legal-body h2:first-child { margin-top: 0; }
html body .pt-legal .pt-legal-body p { margin: 0 0 14px; }
.pt-legal-body ul, .pt-legal-body ol { margin: 0 0 16px; padding-left: 22px; }
.pt-legal-body li { margin-bottom: 8px; line-height: 1.65; }
.pt-legal-body li::marker { color: var(--pt-green-700); font-weight: 700; }
html body .pt-legal-body a:not(.pt-btn) { color: var(--pt-green-700); font-weight: 600; text-underline-offset: 3px; }
.pt-legal-company { list-style: none !important; padding: 18px 20px !important; border-radius: var(--pt-radius-md); background: var(--pt-bg); border: 1px solid var(--pt-gray-200); }
.pt-legal-company li { margin-bottom: 4px; }
.pt-legal-table { width: 100%; margin: 0 0 16px; border-collapse: collapse; border: 1px solid var(--pt-gray-200); font-size: 0.9375rem; }
.pt-legal-table th, .pt-legal-table td { padding: 12px 14px; text-align: left; border-bottom: 1px solid var(--pt-gray-200); }
.pt-legal-table th { background: var(--pt-navy); color: var(--pt-white); font: 700 0.8125rem/1.3 var(--pt-font-display); text-transform: uppercase; letter-spacing: 0.03em; }
.pt-legal-table tr:nth-child(even) td { background: var(--pt-bg); }
html body .pt-legal .pt-legal-note { padding: 16px 18px; border-left: 4px solid var(--pt-warning); border-radius: var(--pt-radius-sm); background: #FFF8E1; }
.pt-legal-actions { display: flex; flex-wrap: wrap; gap: 12px; margin: 4px 0 16px; }

.pt-legal-help {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 16px;
  margin-top: 48px;
  padding: 24px;
  border-radius: var(--pt-radius-lg);
  background: var(--pt-navy);
  color: var(--pt-white);
}
.pt-legal-help > div:nth-child(2) { flex: 1 1 200px; }
.pt-legal-help strong { font: 800 1rem/1.25 var(--pt-font-display); text-transform: uppercase; }
html body .pt-legal .pt-legal-help p { margin: 4px 0 0; color: rgba(255, 255, 255, 0.8); font-size: 0.9375rem; }
.pt-legal-help-actions { display: flex; flex-wrap: wrap; gap: 10px; }
.pt-legal-help .pt-btn { padding: 12px 20px; font-size: 0.875rem; }
html body .pt-legal-help .pt-btn-ghost { border-color: var(--pt-blue-100); color: var(--pt-white); }
html body .pt-legal-help .pt-btn-ghost:hover { background: var(--pt-navy-700); color: var(--pt-white); }

/* ==========================================================================
   Página 404
   ========================================================================== */
.pt-404-hero { position: relative; overflow: hidden; background: var(--pt-navy); padding: 72px 0 80px; text-align: center; }
.pt-404-hero .pt-container { position: relative; display: flex; flex-direction: column; align-items: center; }
.pt-404-code { font: 800 clamp(5rem, 12vw, 9rem)/0.9 var(--pt-font-display); color: var(--pt-navy-700); letter-spacing: -0.02em; }
html body .pt-404 .pt-404-hero h1 { margin-top: -8px; font: 800 clamp(1.75rem, 3vw + 1rem, 2.75rem)/1.1 var(--pt-font-display); color: var(--pt-white); text-transform: uppercase; }
.pt-404-hero h1 span { color: var(--pt-green); }
html body .pt-404 .pt-404-hero p { max-width: 56ch; margin-top: 14px; color: rgba(255, 255, 255, 0.84); line-height: 1.6; }
.pt-404-search { display: flex; gap: 8px; width: 100%; max-width: 560px; margin-top: 28px; padding: 6px; border-radius: var(--pt-radius-pill); background: var(--pt-white); }
html body .pt-404-search input[type="search"] { flex: 1; min-width: 0; border: none; background: transparent; padding: 0 16px; font: 400 1rem/1 var(--pt-font-body); color: var(--pt-navy); }
html body .pt-404-search input[type="search"]:focus { outline: none; }
.pt-404-search .pt-btn { padding: 12px 22px; }
.pt-404-cats { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; list-style: none; margin: 20px 0 0; padding: 0; }
html body .pt-404-cats a { display: inline-block; padding: 8px 14px; border: 1px solid var(--pt-navy-line); border-radius: var(--pt-radius-pill); font: 600 0.8125rem/1 var(--pt-font-body); color: var(--pt-white); text-decoration: none; }
html body .pt-404-cats a:hover { border-color: var(--pt-green); color: var(--pt-green); }
.pt-404-hero .pt-slide-actions { justify-content: center; margin-top: 28px; }

@media (max-width: 860px) {
  .pt-legal-layout { grid-template-columns: minmax(0, 1fr); gap: 32px; padding-top: 32px; }
  .pt-legal-aside { position: static; order: -1; }
  .pt-legal-toc { padding: 16px; border: 1px solid var(--pt-gray-200); border-radius: var(--pt-radius-md); }
  .pt-legal-others { display: none; }
}
@media (max-width: 640px) {
  .pt-legal-hero { padding: 28px 0 32px; }
  .pt-legal-help { padding: 20px; }
  .pt-legal-help-actions, .pt-legal-help-actions .pt-btn { width: 100%; }
  .pt-legal-table { font-size: 0.8125rem; }
  .pt-404-search { flex-direction: column; border-radius: var(--pt-radius-lg); }
  html body .pt-404-search input[type="search"] { padding: 12px; }
  .pt-404-search .pt-btn { width: 100%; }
}

/* ==========================================================================
   Marco de Carrito y Mi cuenta: banda clara con título, ruta y pasos
   ========================================================================== */
.pt-woo-page { background: var(--pt-bg); }
.pt-page-band { background: var(--pt-white); border-bottom: 1px solid var(--pt-gray-200); padding: 28px 0 26px; }
html body .pt-woo-page .pt-page-band h1 { font: 800 clamp(1.625rem, 2vw + 1rem, 2.25rem)/1.15 var(--pt-font-display); color: var(--pt-navy); text-transform: uppercase; }
.pt-steps { display: flex; flex-wrap: wrap; gap: 8px 28px; list-style: none; margin: 18px 0 0; padding: 0; }
.pt-steps li { display: flex; align-items: center; gap: 10px; font: 700 0.8125rem/1.2 var(--pt-font-display); color: var(--pt-gray); }
.pt-steps li span {
  width: 28px; height: 28px;
  display: flex; align-items: center; justify-content: center;
  border-radius: var(--pt-radius-pill);
  border: 2px solid var(--pt-gray-200);
  background: var(--pt-white);
}
.pt-steps li.is-current { color: var(--pt-navy); }
.pt-steps li.is-current span { border-color: var(--pt-green); background: var(--pt-green); color: var(--pt-white); }
.pt-steps li.is-done { color: var(--pt-green-700); }
.pt-steps li.is-done span { border-color: var(--pt-green); background: var(--pt-green-050); color: var(--pt-green-700); }
.pt-woo-content { padding-top: 32px; padding-bottom: 72px; }
html body .pt-woo-page .woocommerce-notices-wrapper:empty { display: none; }
html body .pt-woo-page .woocommerce-message,
html body .pt-woo-page .woocommerce-info,
html body .pt-woo-page .woocommerce-error {
  margin: 0 0 20px;
  padding: 14px 18px 14px 48px;
  border-radius: var(--pt-radius-md);
  border: 1px solid var(--pt-gray-200);
  border-left: 4px solid var(--pt-green);
  background: var(--pt-white);
  color: var(--pt-navy);
  font-size: 0.9375rem;
  list-style: none;
}
html body .pt-woo-page .woocommerce-error { border-left-color: var(--pt-error); }

/* ==========================================================================
   Carrito
   ========================================================================== */
.pt-cart { display: grid; grid-template-columns: minmax(0, 1fr) 360px; gap: 28px; align-items: start; }
.pt-cart-form { background: var(--pt-white); border: 1px solid var(--pt-gray-200); border-radius: var(--pt-radius-lg); overflow: hidden; }
.pt-cart-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 18px 22px; border-bottom: 1px solid var(--pt-gray-200); }
html body .pt-woo-page .pt-cart-head h2 { font: 800 1rem/1 var(--pt-font-display); color: var(--pt-navy); text-transform: uppercase; }
html body .pt-cart-table { width: 100%; margin: 0; border: none; border-collapse: collapse; }
html body .pt-cart-table thead th {
  padding: 12px 16px;
  background: var(--pt-navy);
  border: none;
  font: 700 0.75rem/1 var(--pt-font-display);
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--pt-white);
  text-align: left;
}
html body .pt-cart-table td { padding: 18px 16px; border: none; border-bottom: 1px solid var(--pt-gray-100); vertical-align: middle; color: var(--pt-navy); }
html body .pt-cart-table tbody tr:last-child td { border-bottom: none; }
html body .pt-cart-table .product-thumbnail { width: 96px; padding-right: 0; }
html body .pt-cart-table .product-thumbnail img { width: 80px; height: 80px; object-fit: contain; padding: 6px; border: 1px solid var(--pt-gray-200); border-radius: var(--pt-radius-md); background: var(--pt-white); }
html body .pt-cart-table .product-name a { font: 700 0.9375rem/1.35 var(--pt-font-display); color: var(--pt-navy); text-decoration: none; }
html body .pt-cart-table .product-name a:hover { color: var(--pt-green-700); }
.pt-cart-meta { display: block; margin-top: 4px; font-size: 0.8125rem; color: var(--pt-gray); }
.pt-cart-meta strong { color: var(--pt-navy); font-weight: 600; }
html body .pt-cart-table td.product-price, html body .pt-cart-table td.product-subtotal { font: 700 0.9375rem/1.2 var(--pt-font-display); white-space: nowrap; }
html body .pt-cart-table td.product-subtotal { color: var(--pt-green-700); }
html body .pt-cart-table .product-remove { width: 48px; text-align: right; }
html body .pt-cart-table a.remove {
  width: 34px; height: 34px;
  display: inline-flex; align-items: center; justify-content: center;
  border-radius: var(--pt-radius-pill);
  color: var(--pt-gray) !important;
  background: transparent !important;
  font-size: 0;
}
html body .pt-cart-table a.remove:hover { color: var(--pt-error) !important; background: #FDECEA !important; }

/* Cantidad con − y + (carrito y ficha de producto) */
html body .pt-cart .quantity { display: inline-flex; align-items: center; border: 1px solid var(--pt-gray-200); border-radius: var(--pt-radius-pill); overflow: hidden; background: var(--pt-white); }
html body .pt-cart .quantity input.qty { width: 44px; min-height: 40px; border: none; text-align: center; font: 700 0.9375rem/1 var(--pt-font-display); color: var(--pt-navy); background: transparent; -moz-appearance: textfield; }
html body .pt-cart .quantity input.qty::-webkit-inner-spin-button, html body .pt-cart .quantity input.qty::-webkit-outer-spin-button { -webkit-appearance: none; margin: 0; }
.pt-cart .pt-qty-btn { width: 36px; min-height: 40px; font-size: 1.125rem; }

.pt-cart-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; padding: 16px 22px; background: var(--pt-bg); border-top: 1px solid var(--pt-gray-200); }
.pt-coupon { display: flex; gap: 8px; flex: 1 1 280px; }
html body .pt-coupon input { flex: 1; min-width: 0; min-height: 44px; padding: 8px 16px; border: 1px solid var(--pt-gray-200); border-radius: var(--pt-radius-pill); background: var(--pt-white); font: 400 0.9375rem/1 var(--pt-font-body); color: var(--pt-navy); }
.pt-cart-actions .pt-btn { padding: 11px 20px; font-size: 0.8125rem; }
.pt-update-cart[disabled] { opacity: 0.5; cursor: default; }
html body .pt-cart-clear { margin-left: auto; font: 700 0.8125rem/1 var(--pt-font-display); color: var(--pt-gray); text-decoration: underline; text-underline-offset: 3px; }
html body .pt-cart-clear:hover { color: var(--pt-error); }
/* Con JavaScript el carrito se actualiza solo al cambiar la cantidad */
.js-pt-autoupdate .pt-update-cart { display: none; }

/* Resumen del pedido */
.pt-cart-side { position: sticky; top: calc(var(--pt-header-height) + 20px); }
.admin-bar .pt-cart-side { top: calc(var(--pt-header-height) + 52px); }
html body .pt-summary { width: 100% !important; float: none !important; padding: 22px; background: var(--pt-white); border: 1px solid var(--pt-gray-200); border-radius: var(--pt-radius-lg); box-shadow: var(--pt-shadow-card); }
html body .pt-woo-page .pt-summary h2 { margin: 0 0 16px; padding-bottom: 14px; border-bottom: 1px solid var(--pt-gray-200); font: 800 1rem/1 var(--pt-font-display); color: var(--pt-navy); text-transform: uppercase; }
.pt-summary-rows { margin: 0; }
.pt-summary-rows > div { display: flex; justify-content: space-between; gap: 12px; padding: 8px 0; font-size: 0.9375rem; color: var(--pt-navy); }
.pt-summary-rows dt { color: var(--pt-gray); }
.pt-summary-rows dd { margin: 0; font-weight: 600; text-align: right; }
.pt-summary-shipping dd { font-weight: 400; font-size: 0.8125rem; color: var(--pt-gray); }
.pt-summary-rows .cart-discount dd { color: var(--pt-green-700); }
.pt-summary-rows .order-total { margin-top: 8px; padding-top: 14px; border-top: 1px solid var(--pt-gray-200); }
.pt-summary-rows .order-total dt { color: var(--pt-navy); font: 800 1rem/1.2 var(--pt-font-display); text-transform: uppercase; }
.pt-summary-rows .order-total dd { font: 800 1.375rem/1.2 var(--pt-font-display); color: var(--pt-navy); }
html body .pt-woo-page .pt-summary-tax { margin: 2px 0 16px; font-size: 0.75rem; color: var(--pt-gray); text-align: right; }
.pt-free-ship { padding: 14px; border-radius: var(--pt-radius-md); background: var(--pt-green-050); margin-bottom: 16px; }
html body .pt-woo-page .pt-free-ship p { display: flex; gap: 8px; align-items: flex-start; font-size: 0.8125rem; line-height: 1.45; color: var(--pt-navy); }
.pt-free-ship .pt-icon { flex-shrink: 0; color: var(--pt-green-700); }
.pt-free-ship-bar { height: 8px; margin-top: 10px; border-radius: var(--pt-radius-pill); background: var(--pt-white); overflow: hidden; }
.pt-free-ship-bar span { display: block; height: 100%; border-radius: inherit; background: var(--pt-green); transition: width 400ms var(--pt-ease); }
.pt-free-ship small { display: block; margin-top: 8px; font-size: 0.75rem; color: var(--pt-gray); }
html body .pt-summary .wc-proceed-to-checkout { padding: 0; }
html body .pt-summary .checkout-button {
  display: flex !important;
  width: 100%;
  min-height: 54px;
  margin: 0 !important;
  padding: 16px 24px !important;
  border-radius: var(--pt-radius-pill) !important;
  background: var(--pt-green) !important;
  color: var(--pt-white) !important;
  font: 700 1rem/1 var(--pt-font-display) !important;
  text-decoration: none;
}
html body .pt-summary .checkout-button:hover { background: var(--pt-green-600) !important; }
html body .pt-summary-wa { display: flex; align-items: center; justify-content: center; gap: 6px; margin-top: 12px; font: 700 0.8125rem/1.3 var(--pt-font-display); color: var(--pt-green-700); text-decoration: none; }
.pt-summary-trust { list-style: none; margin: 18px 0 0; padding: 16px 0 0; border-top: 1px solid var(--pt-gray-200); display: flex; flex-direction: column; gap: 8px; }
.pt-summary-trust li { display: flex; align-items: center; gap: 8px; font-size: 0.8125rem; color: var(--pt-gray); }
.pt-summary-trust .pt-icon { color: var(--pt-green-700); flex-shrink: 0; }
.pt-cart-suggest { background: transparent; padding: 56px 0 0; }
.pt-cart-empty { display: flex; flex-direction: column; align-items: center; gap: 12px; padding: 56px 24px; background: var(--pt-white); border: 1px solid var(--pt-gray-200); border-radius: var(--pt-radius-lg); text-align: center; }
.pt-cart-empty-icon { width: 76px; height: 76px; display: flex; align-items: center; justify-content: center; border-radius: var(--pt-radius-pill); background: var(--pt-green-050); color: var(--pt-green-700); }
html body .pt-woo-page .pt-cart-empty h2 { font: 800 1.375rem/1.2 var(--pt-font-display); color: var(--pt-navy); text-transform: uppercase; }
html body .pt-woo-page .pt-cart-empty p { max-width: 46ch; color: var(--pt-gray); line-height: 1.6; }
.pt-cart-empty .pt-slide-actions { justify-content: center; margin-top: 8px; }

/* ==========================================================================
   Mi cuenta — Iniciar sesión / Crear cuenta
   ========================================================================== */
.pt-auth { display: grid; grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr); max-width: 1040px; margin: 0 auto; border-radius: var(--pt-radius-lg); overflow: hidden; box-shadow: var(--pt-shadow-hover); background: var(--pt-white); }
.pt-auth-side { display: flex; flex-direction: column; gap: 20px; padding: 40px 36px; background: var(--pt-navy); color: var(--pt-white); }
.pt-auth-side .pt-eyebrow { color: var(--pt-green); margin: 0; }
html body .pt-woo-page .pt-auth-side h2 { font: 800 clamp(1.5rem, 1.5vw + 1rem, 1.875rem)/1.15 var(--pt-font-display); color: var(--pt-white); text-transform: uppercase; }
.pt-auth-side h2 span { display: block; color: var(--pt-green); }
.pt-auth-benefits { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 14px; }
.pt-auth-benefits li { display: flex; align-items: flex-start; gap: 12px; font-size: 0.9375rem; line-height: 1.45; color: rgba(255, 255, 255, 0.88); }
.pt-auth-benefits .pt-icon { flex-shrink: 0; color: var(--pt-green); }
.pt-auth-integrator { margin-top: auto; padding: 18px; border-radius: var(--pt-radius-md); border: 1px solid var(--pt-navy-line); background: var(--pt-navy-900); }
.pt-auth-integrator strong { display: flex; align-items: center; gap: 8px; font: 800 0.9375rem/1.25 var(--pt-font-display); text-transform: uppercase; color: var(--pt-white); }
.pt-auth-integrator .pt-icon { color: var(--pt-green); }
html body .pt-woo-page .pt-auth-integrator p { margin-top: 8px; font-size: 0.875rem; line-height: 1.55; color: rgba(255, 255, 255, 0.78); }
.pt-auth-integrator b { color: var(--pt-white); }

.pt-auth-card { padding: 32px 36px 36px; }
.pt-auth-tabs { display: inline-flex; gap: 4px; padding: 4px; margin-bottom: 24px; border-radius: var(--pt-radius-pill); background: var(--pt-bg); border: 1px solid var(--pt-gray-200); }
.pt-auth-tabs button { padding: 10px 20px; border: none; border-radius: var(--pt-radius-pill); background: transparent; font: 700 0.875rem/1 var(--pt-font-display); color: var(--pt-gray); cursor: pointer; }
.pt-auth-tabs button[aria-selected="true"] { background: var(--pt-white); color: var(--pt-navy); box-shadow: var(--pt-shadow-card); }
html body .pt-woo-page .pt-auth-title { font: 800 1.5rem/1.2 var(--pt-font-display); color: var(--pt-navy); }
html body .pt-woo-page .pt-auth-sub { margin: 4px 0 20px; color: var(--pt-gray); }

.pt-form { display: flex; flex-direction: column; gap: 16px; margin: 0 !important; padding: 0 !important; border: none !important; }
.pt-form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px 16px; }
.pt-field { display: flex; flex-direction: column; gap: 6px; margin: 0 !important; }
.pt-field--full { grid-column: 1 / -1; }
.pt-field[hidden] { display: none; }
.pt-field label { font: 700 0.8125rem/1.2 var(--pt-font-display); color: var(--pt-navy); }
.pt-field label small { font: 400 0.75rem/1.3 var(--pt-font-body); color: var(--pt-gray); }
.pt-field .required { color: var(--pt-error); text-decoration: none; border: none; }
html body .pt-field input:not([type="checkbox"]):not([type="radio"]):not([type="file"]),
html body .pt-field select {
  width: 100%;
  min-height: 48px;
  padding: 10px 18px;
  border: 1.5px solid var(--pt-gray-200);
  border-radius: var(--pt-radius-pill);
  background: var(--pt-white);
  font: 400 0.9375rem/1.2 var(--pt-font-body);
  color: var(--pt-navy);
  transition: border-color var(--pt-duration) var(--pt-ease), box-shadow var(--pt-duration) var(--pt-ease);
}
html body .pt-field input:focus, html body .pt-field select:focus { outline: none; border-color: var(--pt-green); box-shadow: 0 0 0 4px var(--pt-green-050); }
html body .pt-field input[type="file"] { padding: 10px; border: 1.5px dashed var(--pt-blue-100); border-radius: var(--pt-radius-md); background: var(--pt-bg); font-size: 0.875rem; }
.pt-form-row { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.pt-check { display: flex; align-items: flex-start; gap: 10px; font-size: 0.875rem; line-height: 1.45; color: var(--pt-navy); cursor: pointer; }
.pt-check input { width: 18px; height: 18px; margin: 1px 0 0; accent-color: var(--pt-green); flex-shrink: 0; }
html body .pt-check a { color: var(--pt-green-700); font-weight: 600; }
html body .pt-auth-link { padding: 0; border: none; background: none; font: 700 0.875rem/1.3 var(--pt-font-display); color: var(--pt-green-700); text-decoration: none; cursor: pointer; }
html body .pt-auth-link:hover { text-decoration: underline; }
.pt-auth-submit { width: 100%; min-height: 52px; }
html body .pt-woo-page .pt-auth-switch { margin-top: 20px; text-align: center; font-size: 0.875rem; color: var(--pt-gray); }
html body .pt-woo-page .pt-auth-hint { margin: 0; font-size: 0.8125rem; color: var(--pt-gray); }

.pt-type-picker { display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px; margin: 0; padding: 0; border: none; }
.pt-type-option { position: relative; cursor: pointer; }
.pt-type-option input { position: absolute; opacity: 0; inset: 0; }
.pt-type-box { height: 100%; display: flex; flex-direction: column; gap: 4px; padding: 14px; border: 1.5px solid var(--pt-gray-200); border-radius: var(--pt-radius-md); background: var(--pt-white); transition: border-color var(--pt-duration) var(--pt-ease), background var(--pt-duration) var(--pt-ease); }
.pt-type-box .pt-icon { color: var(--pt-gray); margin-bottom: 4px; }
.pt-type-box strong { font: 800 0.875rem/1.2 var(--pt-font-display); color: var(--pt-navy); }
.pt-type-box small { font-size: 0.75rem; line-height: 1.35; color: var(--pt-gray); }
.pt-type-option:hover .pt-type-box { border-color: var(--pt-blue-100); }
.pt-type-option input:checked + .pt-type-box { border-color: var(--pt-green); background: var(--pt-green-050); box-shadow: inset 0 0 0 1px var(--pt-green); }
.pt-type-option input:checked + .pt-type-box .pt-icon { color: var(--pt-green-700); }
.pt-type-option input:focus-visible + .pt-type-box { outline: 3px solid var(--pt-green); outline-offset: 2px; }
.pt-integrator-note { display: flex; gap: 10px; padding: 12px 14px; border-radius: var(--pt-radius-md); background: var(--pt-blue-050); color: var(--pt-navy); }
.pt-integrator-note[hidden] { display: none; }
.pt-integrator-note .pt-icon { flex-shrink: 0; margin-top: 2px; color: var(--pt-navy-700); }
html body .pt-woo-page .pt-integrator-note p { margin: 0; font-size: 0.8125rem; line-height: 1.5; }
.pt-auth-footer { display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; margin-top: 4px; padding-top: 18px; border-top: 1px solid var(--pt-gray-200); }
html body .pt-woo-page .pt-auth-footer p { margin: 0; font-size: 0.8125rem; color: var(--pt-gray); }
.pt-auth-footer .pt-auth-submit { width: auto; flex: 0 0 auto; }
[data-pt-label-for][hidden] { display: none; }

/* ==========================================================================
   Mi cuenta — con sesión: menú lateral y panel
   ========================================================================== */
html body .pt-account-page .woocommerce { display: grid; grid-template-columns: 240px minmax(0, 1fr); gap: 28px; align-items: start; }
html body .pt-account-page .woocommerce::before, html body .pt-account-page .woocommerce::after { display: none; }
html body .pt-account-page .woocommerce > .woocommerce-notices-wrapper { grid-column: 1 / -1; }
html body .pt-account-page .woocommerce-MyAccount-navigation,
html body .pt-account-page .woocommerce-MyAccount-content { width: auto !important; float: none !important; margin: 0; }
html body .pt-account-page .woocommerce-MyAccount-navigation { padding: 10px; background: var(--pt-white); border: 1px solid var(--pt-gray-200); border-radius: var(--pt-radius-lg); }
html body .pt-account-page .woocommerce-MyAccount-navigation ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 2px; }
html body .pt-account-page .woocommerce-MyAccount-navigation a { display: block; padding: 12px 14px; border-radius: var(--pt-radius-md); font: 700 0.875rem/1.2 var(--pt-font-display); color: var(--pt-navy); text-decoration: none; }
html body .pt-account-page .woocommerce-MyAccount-navigation a:hover { background: var(--pt-bg); }
html body .pt-account-page .woocommerce-MyAccount-navigation .is-active a { background: var(--pt-navy); color: var(--pt-white); }
html body .pt-account-page .woocommerce-MyAccount-navigation-link--customer-logout a { color: var(--pt-error); }
html body .pt-account-page .woocommerce-MyAccount-content { padding: 28px; background: var(--pt-white); border: 1px solid var(--pt-gray-200); border-radius: var(--pt-radius-lg); }

.pt-dash { display: flex; flex-direction: column; gap: 24px; }
.pt-dash-hello { display: flex; justify-content: space-between; gap: 16px; align-items: flex-start; flex-wrap: wrap; }
html body .pt-woo-page .pt-dash-hello h2 { font: 800 1.5rem/1.2 var(--pt-font-display); color: var(--pt-navy); }
html body .pt-woo-page .pt-dash-hello p { margin-top: 6px; color: var(--pt-gray); line-height: 1.55; }
html body .pt-dash-hello a { color: var(--pt-green-700); font-weight: 600; }
.pt-dash-type { padding: 7px 12px; border-radius: var(--pt-radius-pill); background: var(--pt-blue-050); font: 700 0.75rem/1 var(--pt-font-display); color: var(--pt-navy); text-transform: uppercase; letter-spacing: 0.03em; white-space: nowrap; }
.pt-dash-status { display: flex; gap: 14px; padding: 16px 18px; border-radius: var(--pt-radius-md); border: 1px solid; }
.pt-dash-status.is-pendiente { background: #FFF8E1; border-color: #F3D98B; }
.pt-dash-status.is-aprobado { background: var(--pt-green-050); border-color: var(--pt-green-100); }
.pt-dash-status.is-rechazado { background: #FDECEA; border-color: #F2C2BD; }
.pt-dash-status-icon { flex-shrink: 0; width: 42px; height: 42px; display: flex; align-items: center; justify-content: center; border-radius: var(--pt-radius-pill); background: var(--pt-white); color: var(--pt-navy); }
.pt-dash-status.is-aprobado .pt-dash-status-icon { color: var(--pt-green-700); }
.pt-dash-status.is-rechazado .pt-dash-status-icon { color: var(--pt-error); }
.pt-dash-status strong { font: 800 0.9375rem/1.25 var(--pt-font-display); color: var(--pt-navy); }
html body .pt-woo-page .pt-dash-status p { margin-top: 4px; font-size: 0.875rem; line-height: 1.5; color: var(--pt-navy); }
html body .pt-dash-status a { color: var(--pt-green-700); font-weight: 700; }
.pt-dash-tiles { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
html body .pt-dash-tile { display: flex; flex-direction: column; gap: 4px; padding: 18px; border: 1px solid var(--pt-gray-200); border-radius: var(--pt-radius-md); background: var(--pt-white); text-decoration: none; transition: border-color var(--pt-duration) var(--pt-ease), box-shadow var(--pt-duration) var(--pt-ease); }
html body .pt-dash-tile:hover { border-color: var(--pt-green); box-shadow: var(--pt-shadow-card); }
.pt-dash-tile .pt-icon { color: var(--pt-green-700); margin-bottom: 6px; }
.pt-dash-tile strong { font: 800 0.875rem/1.2 var(--pt-font-display); color: var(--pt-navy); text-transform: uppercase; }
.pt-dash-tile span { font-size: 0.8125rem; color: var(--pt-gray); }
html body .pt-woo-page .pt-dash-orders h3 { font: 800 1rem/1.2 var(--pt-font-display); color: var(--pt-navy); text-transform: uppercase; }
.pt-dash-orders .pt-row-head { margin-bottom: 12px; }
.pt-dash-orders ul { list-style: none; margin: 0; padding: 0; border: 1px solid var(--pt-gray-200); border-radius: var(--pt-radius-md); overflow: hidden; }
.pt-dash-orders li + li { border-top: 1px solid var(--pt-gray-100); }
html body .pt-dash-orders li a.pt-dash-order-main { display: grid; grid-template-columns: 1fr auto auto; grid-template-areas: "id status total" "date status total"; gap: 2px 16px; align-items: center; padding: 14px 16px; text-decoration: none; color: var(--pt-navy); }
html body .pt-dash-orders li a.pt-dash-order-main:hover { background: var(--pt-bg); }
.pt-dash-order-id { grid-area: id; font: 800 0.9375rem/1.2 var(--pt-font-display); }
.pt-dash-order-date { grid-area: date; font-size: 0.8125rem; color: var(--pt-gray); }
.pt-dash-order-total { grid-area: total; font: 800 0.9375rem/1 var(--pt-font-display); }
.pt-order-status { grid-area: status; padding: 6px 10px; border-radius: var(--pt-radius-pill); background: var(--pt-blue-050); font: 700 0.6875rem/1 var(--pt-font-display); color: var(--pt-navy); text-transform: uppercase; letter-spacing: 0.03em; }
.pt-order-status.status-completed { background: var(--pt-green-050); color: var(--pt-green-700); }
.pt-order-status.status-on-hold, .pt-order-status.status-pending, .pt-order-status.status-esperando-pago { background: #FFF8E1; color: #8A6500; }
.pt-order-status.status-cancelled, .pt-order-status.status-failed { background: #FDECEA; color: var(--pt-error); }
html body .pt-woo-page .pt-dash-empty { padding: 18px; border: 1px dashed var(--pt-gray-200); border-radius: var(--pt-radius-md); color: var(--pt-gray); }
html body .pt-dash-empty a { color: var(--pt-green-700); font-weight: 700; }
/* Perfil: encabezado, números, próxima entrega, pedidos, carruseles y ayuda */
.pt-dash-profile { display: flex; align-items: center; gap: 16px; flex-wrap: wrap; }
.pt-dash-avatar { width: 58px; height: 58px; flex-shrink: 0; display: flex; align-items: center; justify-content: center; border-radius: var(--pt-radius-pill); background: var(--pt-navy); color: var(--pt-white); font: 800 1.5rem/1 var(--pt-font-display); }
.pt-dash.is-integrator .pt-dash-avatar { background: var(--pt-green); }
.pt-dash-who { flex: 1 1 200px; }
html body .pt-woo-page .pt-dash-who h2 { font: 800 1.5rem/1.2 var(--pt-font-display); color: var(--pt-navy); }
html body .pt-woo-page .pt-dash-who p { margin-top: 2px; font-size: 0.875rem; color: var(--pt-gray); }
.pt-dash-type { display: inline-flex; align-items: center; gap: 6px; }
.pt-dash-type.is-pro { background: var(--pt-green); color: var(--pt-white); }
.pt-dash-stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 12px; }
.pt-dash-stats > div { display: flex; flex-direction: column; gap: 6px; padding: 16px 18px; border-radius: var(--pt-radius-md); background: var(--pt-bg); border: 1px solid var(--pt-gray-200); }
.pt-dash-stats span { font: 700 0.6875rem/1.2 var(--pt-font-display); letter-spacing: 0.05em; text-transform: uppercase; color: var(--pt-gray); }
.pt-dash-stats strong { font: 800 1.375rem/1.1 var(--pt-font-display); color: var(--pt-navy); }
.pt-dash-stats .is-highlight { background: var(--pt-green-050); border-color: var(--pt-green-100); }
.pt-dash-stats .is-highlight strong { color: var(--pt-green-700); }
html body .pt-dash-next { display: flex; align-items: center; gap: 16px; padding: 18px 20px; border-radius: var(--pt-radius-md); background: var(--pt-navy); color: var(--pt-white); text-decoration: none; }
.pt-dash-next-icon { width: 52px; height: 52px; flex-shrink: 0; display: flex; align-items: center; justify-content: center; border-radius: var(--pt-radius-pill); background: var(--pt-green); }
.pt-dash-next > span:nth-child(2) { flex: 1; display: flex; flex-direction: column; gap: 2px; }
.pt-dash-next small { font: 700 0.6875rem/1 var(--pt-font-display); letter-spacing: 0.06em; text-transform: uppercase; color: var(--pt-green); }
.pt-dash-next strong { font: 800 1.25rem/1.2 var(--pt-font-display); }
.pt-dash-next em { font-style: normal; font-size: 0.8125rem; color: rgba(255, 255, 255, 0.75); }
.pt-dash-tile.is-accent { background: var(--pt-green-050); border-color: var(--pt-green-100); }
.pt-dash-order-actions { display: flex; flex-wrap: wrap; gap: 16px; padding: 0 16px 12px; }
.pt-dash-order-actions:empty { display: none; }
html body .pt-dash-order-actions a { display: inline-flex; align-items: center; gap: 6px; font: 700 0.8125rem/1 var(--pt-font-display); color: var(--pt-green-700); text-decoration: none; }
html body .pt-dash-order-actions a:hover { text-decoration: underline; }
.pt-dash-carousel .pt-row-head { margin-bottom: 12px; }
html body .pt-woo-page .pt-dash-carousel h3 { font: 800 1rem/1.2 var(--pt-font-display); color: var(--pt-navy); text-transform: uppercase; }
.pt-dash-carousel .pt-carousel-track > * { flex-basis: calc((100% - 40px) / 3); }
.pt-dash-help { display: flex; align-items: center; gap: 16px; flex-wrap: wrap; padding: 20px; border-radius: var(--pt-radius-md); border: 1px dashed var(--pt-blue-100); background: var(--pt-bg); }
.pt-dash-help > div { flex: 1 1 220px; }
.pt-dash-help strong { font: 800 0.9375rem/1.25 var(--pt-font-display); color: var(--pt-navy); text-transform: uppercase; }
html body .pt-woo-page .pt-dash-help p { margin-top: 4px; font-size: 0.875rem; color: var(--pt-gray); }
.pt-dash-help .pt-shop-help-icon { background: var(--pt-navy); color: var(--pt-green); }
.pt-dash-help .pt-btn { padding: 12px 20px; font-size: 0.875rem; }

/* Mis facturas y Volver a comprar */
html body .pt-woo-page .pt-account-section h2 { font: 800 1.375rem/1.2 var(--pt-font-display); color: var(--pt-navy); }
html body .pt-woo-page .pt-account-lead { margin: 6px 0 20px; color: var(--pt-gray); line-height: 1.55; }
html body .pt-woo-page .pt-account-note { margin-top: 20px; font-size: 0.875rem; color: var(--pt-gray); }
html body .pt-account-note a { color: var(--pt-green-700); font-weight: 700; }
.pt-account-table { width: 100%; border-collapse: collapse; border: 1px solid var(--pt-gray-200); font-size: 0.9375rem; }
.pt-account-table th { padding: 12px 14px; background: var(--pt-navy); color: var(--pt-white); font: 700 0.75rem/1 var(--pt-font-display); letter-spacing: 0.05em; text-transform: uppercase; text-align: left; }
.pt-account-table td { padding: 12px 14px; border-bottom: 1px solid var(--pt-gray-100); color: var(--pt-navy); }
html body .pt-account-table td a:not(.pt-btn) { color: var(--pt-navy); font-weight: 700; }
.pt-btn.pt-btn-sm { padding: 8px 14px; font-size: 0.8125rem; gap: 6px; }
.pt-muted { font-size: 0.8125rem; color: var(--pt-gray); }
.pt-buy-again { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.pt-buy-again-item { display: flex; flex-direction: column; gap: 8px; }
.pt-buy-again-item .pt-card { flex: 1; }
.pt-buy-again-meta { font: 700 0.75rem/1.3 var(--pt-font-display); color: var(--pt-green-700); }
.pt-order-invoice { display: flex; align-items: center; flex-wrap: wrap; gap: 12px; margin: 20px 0; padding: 16px 18px; border-radius: var(--pt-radius-md); background: var(--pt-bg); border: 1px solid var(--pt-gray-200); color: var(--pt-navy); }
.pt-order-invoice > span { flex: 1 1 200px; font-weight: 600; }
.pt-order-invoice .pt-icon { color: var(--pt-green-700); }

@media (max-width: 860px) {
  .pt-dash-carousel .pt-carousel-track > * { flex-basis: 62%; }
  .pt-buy-again { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
  .pt-account-table thead { display: none; }
  .pt-account-table, .pt-account-table tbody, .pt-account-table tr, .pt-account-table td { display: block; }
  .pt-account-table tr { padding: 12px 0; border-bottom: 1px solid var(--pt-gray-200); }
  .pt-account-table td { display: flex; justify-content: space-between; gap: 12px; padding: 6px 12px; border: none; }
  .pt-account-table td::before { content: attr(data-title); font: 700 0.75rem/1.6 var(--pt-font-display); color: var(--pt-gray); text-transform: uppercase; }
  .pt-dash-next strong { font-size: 1.0625rem; }
}

.pt-integrator-tag { display: block; font: 700 0.6875rem/1.4 var(--pt-font-display); color: var(--pt-navy-700); text-transform: uppercase; letter-spacing: 0.04em; }

/* ==========================================================================
   Mi cuenta: Mis pedidos, detalle del pedido, direcciones y Mis datos
   ========================================================================== */
html body .pt-back-link { display: inline-flex; align-items: center; gap: 4px; margin-bottom: 14px; font: 700 0.8125rem/1 var(--pt-font-display); color: var(--pt-green-700); text-decoration: none; }
html body .pt-back-link:hover { text-decoration: underline; }


.pt-order-list { display: flex; flex-direction: column; gap: 14px; }
.pt-order-card { border: 1px solid var(--pt-gray-200); border-radius: var(--pt-radius-md); background: var(--pt-white); overflow: hidden; }
.pt-order-card-head { display: flex; align-items: center; gap: 12px 16px; padding: 14px 18px; background: var(--pt-bg); border-bottom: 1px solid var(--pt-gray-200); }
.pt-order-card-head > div { flex: 1; display: flex; flex-direction: column; gap: 2px; }
html body .pt-order-card-id { font: 800 1rem/1.2 var(--pt-font-display); color: var(--pt-navy); text-decoration: none; }
html body .pt-order-card-id:hover { color: var(--pt-green-700); }
.pt-order-card-date { font-size: 0.8125rem; color: var(--pt-gray); }
.pt-order-card-total { font: 800 1.0625rem/1 var(--pt-font-display); color: var(--pt-navy); }
.pt-order-card-body { display: flex; gap: 18px; padding: 16px 18px 6px; align-items: flex-start; }
.pt-order-thumbs { display: flex; gap: 8px; flex-shrink: 0; }
.pt-order-thumb { position: relative; width: 58px; height: 58px; display: flex; align-items: center; justify-content: center; border: 1px solid var(--pt-gray-200); border-radius: var(--pt-radius-md); background: var(--pt-bg); color: var(--pt-gray); overflow: hidden; }
.pt-order-thumb img { width: 100%; height: 100%; object-fit: contain; }
.pt-order-thumb em { position: absolute; right: 2px; bottom: 2px; padding: 2px 5px; border-radius: var(--pt-radius-pill); background: var(--pt-navy); color: var(--pt-white); font: 700 0.625rem/1 var(--pt-font-display); font-style: normal; }
.pt-order-thumb.is-more { font: 800 0.875rem/1 var(--pt-font-display); color: var(--pt-navy); }
.pt-order-card-info { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 6px; }
html body .pt-woo-page .pt-order-card-info p { margin: 0; font-size: 0.875rem; line-height: 1.45; color: var(--pt-navy); }
.pt-order-card-items { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
html body .pt-woo-page p.pt-order-card-when { display: flex; align-items: center; gap: 6px; font-weight: 700; }
.pt-order-card-when .pt-icon { color: var(--pt-green-700); }
html body .pt-woo-page p.pt-order-card-hint { color: var(--pt-gray); }
.pt-order-card-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 10px 18px; padding: 12px 18px; border-top: 1px solid var(--pt-gray-100); }
html body .pt-order-card-actions a:not(.pt-btn) { display: inline-flex; align-items: center; gap: 6px; font: 700 0.8125rem/1 var(--pt-font-display); color: var(--pt-green-700); text-decoration: none; }
html body .pt-order-card-actions a:not(.pt-btn):hover { text-decoration: underline; }
html body .pt-order-card-actions .pt-order-card-help { margin-left: auto; color: var(--pt-navy); }
.pt-order-pages { display: flex; align-items: center; justify-content: center; gap: 16px; margin-top: 20px; font-size: 0.875rem; color: var(--pt-gray); }

/* Barra de avance del pedido */
.pt-track { list-style: none; margin: 0; padding: 14px 18px; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.pt-track li { position: relative; display: flex; flex-direction: column; align-items: center; gap: 4px; text-align: center; }
.pt-track li::before { content: ""; position: absolute; top: 11px; right: 50%; width: 100%; height: 3px; background: var(--pt-gray-200); z-index: 0; }
.pt-track li:first-child::before { display: none; }
.pt-track li.is-done::before, .pt-track li.is-current::before { background: var(--pt-green); }
.pt-track-dot { position: relative; z-index: 1; width: 24px; height: 24px; display: flex; align-items: center; justify-content: center; border-radius: var(--pt-radius-pill); background: var(--pt-white); border: 3px solid var(--pt-gray-200); color: var(--pt-white); }
.pt-track li.is-done .pt-track-dot { background: var(--pt-green); border-color: var(--pt-green); }
.pt-track li.is-current .pt-track-dot { border-color: var(--pt-green); box-shadow: 0 0 0 4px var(--pt-green-050); }
.pt-track strong { font: 700 0.75rem/1.2 var(--pt-font-display); color: var(--pt-gray); }
.pt-track li.is-done strong, .pt-track li.is-current strong { color: var(--pt-navy); }
.pt-track small { font-size: 0.75rem; color: var(--pt-gray); }
.pt-track--compact { padding-top: 10px; }

/* Detalle del pedido */
.pt-view-order { display: flex; flex-direction: column; gap: 20px; }
.pt-view-order .pt-back-link { margin-bottom: -6px; align-self: flex-start; }
.pt-view-order-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
html body .pt-woo-page .pt-view-order-head p { margin-top: 4px; color: var(--pt-gray); }
.pt-view-order-status { border: 1px solid var(--pt-green-100); border-radius: var(--pt-radius-md); background: var(--pt-green-050); }
html body .pt-woo-page .pt-view-order-status p { margin: 0; padding: 14px 18px 0; font: 700 0.9375rem/1.4 var(--pt-font-display); color: var(--pt-navy); }
.pt-view-order-status .pt-track { padding: 18px; }
.pt-view-order-status .pt-track-dot { background: var(--pt-green-050); }
.pt-view-order-status li.is-done .pt-track-dot { background: var(--pt-green); }
.pt-view-order-status.is-cancelled { border-color: #F2C2BD; background: #FDECEA; }
html body .pt-woo-page .pt-view-order-status.is-cancelled p { padding-bottom: 14px; color: var(--pt-error); }
.pt-view-order-facts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.pt-view-order-facts > div { display: grid; grid-template-columns: auto 1fr; column-gap: 12px; row-gap: 2px; align-content: start; padding: 14px 16px; border: 1px solid var(--pt-gray-200); border-radius: var(--pt-radius-md); }
.pt-view-order-facts .pt-icon { grid-row: span 3; color: var(--pt-green-700); margin-top: 2px; }
.pt-view-order-facts span { font: 700 0.6875rem/1.3 var(--pt-font-display); letter-spacing: 0.05em; text-transform: uppercase; color: var(--pt-gray); }
.pt-view-order-facts strong { font: 700 0.9375rem/1.35 var(--pt-font-display); color: var(--pt-navy); }
.pt-view-order-facts em { font-style: normal; font-size: 0.8125rem; color: var(--pt-gray); }
html body .pt-view-order-facts a { font: 700 0.8125rem/1.4 var(--pt-font-display); color: var(--pt-green-700); }
html body .pt-woo-page .pt-view-order-notes h3,
html body .pt-woo-page .pt-view-order .woocommerce-order-details__title,
html body .pt-woo-page .pt-view-order .woocommerce-column__title { margin: 0 0 12px; font: 800 1rem/1.2 var(--pt-font-display); color: var(--pt-navy); text-transform: uppercase; }
.pt-view-order-notes ol { list-style: none; margin: 0; padding: 0 0 0 18px; border-left: 3px solid var(--pt-green-100); display: flex; flex-direction: column; gap: 12px; }
.pt-view-order-notes time { font: 700 0.75rem/1 var(--pt-font-display); color: var(--pt-green-700); }
html body .pt-woo-page .pt-view-order-notes p { margin: 4px 0 0; font-size: 0.875rem; color: var(--pt-navy); }
html body .pt-view-order .woocommerce-table--order-details { width: 100%; margin: 0; border: 1px solid var(--pt-gray-200); border-collapse: collapse; border-radius: 0; font-size: 0.9375rem; }
html body .pt-view-order .woocommerce-table--order-details th,
html body .pt-view-order .woocommerce-table--order-details td { padding: 12px 14px; border: none; border-bottom: 1px solid var(--pt-gray-100); color: var(--pt-navy); text-align: left; }
html body .pt-view-order .woocommerce-table--order-details thead th { background: var(--pt-navy); color: var(--pt-white); font: 700 0.75rem/1 var(--pt-font-display); letter-spacing: 0.05em; text-transform: uppercase; }
html body .pt-view-order .woocommerce-table--order-details tfoot th { font-weight: 600; color: var(--pt-gray); }
html body .pt-view-order .woocommerce-table--order-details tfoot tr:last-child td { font: 800 1.0625rem/1 var(--pt-font-display); }
html body .pt-view-order .woocommerce-table--order-details td a { color: var(--pt-navy); font-weight: 700; }
html body .pt-view-order .woocommerce-customer-details .woocommerce-columns { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
html body .pt-view-order .woocommerce-customer-details .woocommerce-column { width: auto; float: none; }
html body .pt-view-order .woocommerce-customer-details address { padding: 14px 16px; border: 1px solid var(--pt-gray-200); border-radius: var(--pt-radius-md); font-style: normal; line-height: 1.6; color: var(--pt-navy); }
.pt-view-order .pt-order-invoice { margin: 0; }

/* Volver a comprar */
.pt-reorder-banner { display: flex; align-items: center; gap: 16px; flex-wrap: wrap; margin-bottom: 22px; padding: 18px 20px; border-radius: var(--pt-radius-md); background: var(--pt-navy); color: var(--pt-white); }
.pt-reorder-banner > span:nth-child(2) { flex: 1 1 200px; display: flex; flex-direction: column; gap: 2px; }
.pt-reorder-banner small { font: 700 0.6875rem/1 var(--pt-font-display); letter-spacing: 0.06em; text-transform: uppercase; color: var(--pt-green); }
.pt-reorder-banner strong { font: 800 1.125rem/1.2 var(--pt-font-display); }
.pt-reorder-banner em { font-style: normal; font-size: 0.8125rem; color: rgba(255, 255, 255, 0.75); }

/* Direcciones */
.pt-address-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.pt-address-card { display: flex; flex-direction: column; gap: 14px; padding: 20px; border: 1px solid var(--pt-gray-200); border-radius: var(--pt-radius-md); }
.pt-address-card header { display: flex; gap: 12px; align-items: flex-start; }
.pt-address-icon { width: 42px; height: 42px; flex-shrink: 0; display: flex; align-items: center; justify-content: center; border-radius: var(--pt-radius-pill); background: var(--pt-green-050); color: var(--pt-green-700); }
html body .pt-woo-page .pt-address-card h3 { margin: 0; font: 800 1rem/1.2 var(--pt-font-display); color: var(--pt-navy); text-transform: uppercase; }
html body .pt-woo-page .pt-address-card header p { margin: 4px 0 0; font-size: 0.8125rem; color: var(--pt-gray); }
.pt-address-card address { flex: 1; margin: 0; padding: 14px 16px; border-radius: var(--pt-radius-md); background: var(--pt-bg); font-style: normal; line-height: 1.6; color: var(--pt-navy); }
html body .pt-woo-page .pt-address-empty { flex: 1; margin: 0; padding: 14px 16px; border: 1px dashed var(--pt-gray-200); border-radius: var(--pt-radius-md); color: var(--pt-gray); }
.pt-address-card .pt-btn { align-self: flex-start; }
.pt-address-zones { display: flex; gap: 12px; align-items: flex-start; margin-top: 18px; padding: 14px 16px; border-radius: var(--pt-radius-md); border: 1px dashed var(--pt-blue-100); color: var(--pt-navy); }
.pt-address-zones .pt-icon { flex-shrink: 0; color: var(--pt-green-700); }
html body .pt-woo-page .pt-address-zones p { margin: 0; font-size: 0.875rem; line-height: 1.5; }

/* Formulario de dirección (campos de WooCommerce) */
html body .pt-account-page .woocommerce-address-fields__field-wrapper { display: grid; grid-template-columns: 1fr 1fr; gap: 14px 16px; }
html body .pt-account-page .woocommerce-address-fields .form-row { width: auto; float: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 6px; }
html body .pt-account-page .woocommerce-address-fields .form-row-wide { grid-column: 1 / -1; }
html body .pt-account-page .woocommerce-address-fields label { font: 700 0.8125rem/1.2 var(--pt-font-display); color: var(--pt-navy); }
html body .pt-account-page .woocommerce-address-fields .input-text,
html body .pt-account-page .woocommerce-address-fields select,
html body .pt-account-page .woocommerce-address-fields .select2-selection { width: 100%; min-height: 48px; padding: 10px 18px; border: 1.5px solid var(--pt-gray-200); border-radius: var(--pt-radius-pill); background: var(--pt-white); font: 400 0.9375rem/1.2 var(--pt-font-body); color: var(--pt-navy); }
html body .pt-account-page .woocommerce-address-fields .input-text:focus { outline: none; border-color: var(--pt-green); box-shadow: 0 0 0 4px var(--pt-green-050); }
html body .pt-account-page .woocommerce-address-fields .select2-selection__rendered { padding: 0; line-height: 26px; color: var(--pt-navy); }
html body .pt-account-page .woocommerce-address-fields .select2-selection__arrow { top: 11px; right: 12px; }
html body .pt-account-page .woocommerce-address-fields button[name="save_address"] { margin-top: 20px; padding: 14px 28px; border: none; border-radius: var(--pt-radius-pill); background: var(--pt-green); color: var(--pt-white); font: 800 0.9375rem/1 var(--pt-font-display); cursor: pointer; }
html body .pt-account-page .woocommerce-address-fields button[name="save_address"]:hover { background: var(--pt-green-600); }
html body .pt-account-page .woocommerce-MyAccount-content > form > h2,
html body .pt-account-page .woocommerce-MyAccount-content > form > h3 { margin: 0 0 18px; font: 800 1.375rem/1.2 var(--pt-font-display); color: var(--pt-navy); }

/* Mis datos */
.pt-account-type { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; margin-bottom: 22px; padding: 16px 18px; border-radius: var(--pt-radius-md); background: var(--pt-bg); border: 1px solid var(--pt-gray-200); }
.pt-account-type > div { flex: 1 1 160px; display: flex; flex-direction: column; gap: 2px; }
.pt-account-type > div span { font: 700 0.6875rem/1.3 var(--pt-font-display); letter-spacing: 0.05em; text-transform: uppercase; color: var(--pt-gray); }
.pt-account-type strong { font: 800 1.0625rem/1.2 var(--pt-font-display); color: var(--pt-navy); }
html body .pt-account-type a { font: 700 0.8125rem/1.3 var(--pt-font-display); color: var(--pt-green-700); }
.pt-account-type em { font-style: normal; font-size: 0.8125rem; color: var(--pt-green-700); font-weight: 600; }
.pt-account-type.is-pro { background: var(--pt-green-050); border-color: var(--pt-green-100); }
.pt-account-type.is-pro .pt-address-icon { background: var(--pt-green); color: var(--pt-white); }
.pt-account-form { display: flex; flex-direction: column; gap: 22px; }
.pt-account-form fieldset { margin: 0; padding: 0; border: none; min-width: 0; }
.pt-account-form legend { margin-bottom: 14px; padding: 0; font: 800 0.9375rem/1.2 var(--pt-font-display); color: var(--pt-navy); text-transform: uppercase; }
html body .pt-field input[readonly] { background: var(--pt-bg); color: var(--pt-gray); cursor: not-allowed; }
html body .pt-woo-page .pt-field-note { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; margin: 10px 0 0; font-size: 0.8125rem; color: var(--pt-gray); }
.pt-field-note .pt-icon { color: var(--pt-green-700); }
html body .pt-field-note a { color: var(--pt-green-700); font-weight: 700; }
.pt-password-box { border: 1px solid var(--pt-gray-200); border-radius: var(--pt-radius-md); }
.pt-password-box summary { display: flex; align-items: center; gap: 8px; padding: 14px 18px; font: 800 0.875rem/1.2 var(--pt-font-display); color: var(--pt-navy); text-transform: uppercase; cursor: pointer; list-style: none; }
.pt-password-box summary::-webkit-details-marker { display: none; }
.pt-password-box summary::after { content: "+"; margin-left: auto; font-size: 1.25rem; color: var(--pt-green-700); }
.pt-password-box[open] summary::after { content: "\2212"; }
.pt-password-box summary .pt-icon { color: var(--pt-green-700); }
.pt-password-box > .pt-form-grid, .pt-password-box > .pt-field-note { padding: 0 18px; }
.pt-password-box > .pt-field-note { padding-bottom: 16px; }
html body .pt-woo-page .pt-account-form-submit { margin: 0; padding-top: 6px; border-top: 1px solid var(--pt-gray-100); }
.pt-account-form-submit .pt-btn { padding: 14px 32px; margin-top: 16px; }

@media (max-width: 640px) {
  .pt-order-card-head { flex-wrap: wrap; }
  .pt-order-card-head > div { flex-basis: 100%; }
  .pt-order-card-body { flex-direction: column; gap: 12px; }
  html body .pt-order-card-actions .pt-order-card-help { margin-left: 0; }
  .pt-track { padding-left: 8px; padding-right: 8px; }
  .pt-track strong { font-size: 0.6875rem; }
  .pt-view-order-facts, .pt-address-grid { grid-template-columns: 1fr; }
  html body .pt-view-order .woocommerce-customer-details .woocommerce-columns { grid-template-columns: 1fr; }
  html body .pt-account-page .woocommerce-address-fields__field-wrapper { grid-template-columns: 1fr; }
  .pt-reorder-banner .pt-btn { width: 100%; }
  .pt-account-form-submit .pt-btn { width: 100%; }
}

@media (max-width: 1024px) {
  .pt-cart { grid-template-columns: minmax(0, 1fr); }
  .pt-cart-side { position: static; }

}
@media (max-width: 860px) {
  .pt-auth { grid-template-columns: minmax(0, 1fr); }
  .pt-auth-side { padding: 28px 24px; }
  .pt-auth-benefits, .pt-auth-side h2 { display: none; }
  .pt-auth-integrator { margin-top: 0; }
  html body .pt-account-page .woocommerce { grid-template-columns: minmax(0, 1fr); }
  html body .pt-account-page .woocommerce-MyAccount-navigation ul { flex-direction: row; overflow-x: auto; scrollbar-width: none; }
  html body .pt-account-page .woocommerce-MyAccount-navigation a { white-space: nowrap; }
}
@media (max-width: 640px) {
  .pt-woo-content { padding-top: 20px; }
  .pt-steps { gap: 8px 16px; }
  .pt-steps li { font-size: 0.75rem; }
  .pt-steps li:not(.is-current) { color: var(--pt-gray); }
  /* Carrito: cada producto es una tarjeta */
  html body .pt-cart-table thead { display: none; }
  html body .pt-cart-table, html body .pt-cart-table tbody { display: block; }
  html body .pt-cart-table tr.cart_item {
    display: grid;
    grid-template-columns: 76px minmax(0, 1fr) auto;
    grid-template-areas: "thumb name remove" "thumb price price" "qty qty subtotal";
    gap: 8px 12px;
    padding: 16px;
    border-bottom: 1px solid var(--pt-gray-100);
  }
  html body .pt-cart-table tr.cart_item td { display: block; padding: 0; border: none; }
  html body .pt-cart-table .product-thumbnail { grid-area: thumb; width: auto; }
  html body .pt-cart-table .product-thumbnail img { width: 72px; height: 72px; }
  html body .pt-cart-table .product-name { grid-area: name; }
  html body .pt-cart-table .product-price { grid-area: price; font-size: 0.875rem; color: var(--pt-gray); }
  html body .pt-cart-table .product-quantity { grid-area: qty; }
  html body .pt-cart-table .product-subtotal { grid-area: subtotal; align-self: center; font-size: 1.0625rem; }
  html body .pt-cart-table .product-remove { grid-area: remove; width: auto; }
  .pt-cart-head, .pt-cart-actions { padding: 14px 16px; }
  html body .pt-cart-clear { margin-left: 0; }
  .pt-auth-card { padding: 24px 18px 28px; }
  .pt-auth-tabs { display: flex; }
  .pt-auth-tabs button { flex: 1; }
  .pt-type-picker { grid-template-columns: 1fr; }
  .pt-type-box { flex-direction: row; flex-wrap: wrap; align-items: center; column-gap: 10px; }
  .pt-type-box .pt-icon { margin: 0; }
  .pt-type-box small { width: 100%; }
  .pt-form-grid { grid-template-columns: 1fr; }
  .pt-auth-footer .pt-auth-submit { width: 100%; }
  html body .pt-account-page .woocommerce-MyAccount-content { padding: 20px 16px; }
  .pt-dash-tiles { grid-template-columns: 1fr 1fr; }
  .pt-dash-stats { grid-template-columns: 1fr 1fr; }
  html body .pt-dash-orders li a.pt-dash-order-main { grid-template-columns: 1fr auto; grid-template-areas: "id total" "date date" "status status"; }
  .pt-order-status { justify-self: start; margin-top: 6px; }
}

/* ==========================================================================
   Responsive
   ========================================================================== */
@media (max-width: 1180px) {
  .pt-search--desktop input[type="search"] { width: 180px; }
  .pt-nav > ul { gap: 20px; }
}

@media (max-width: 1100px) {
  /* Sin espacio en el menú: el botón de servicios pasa al menú desplegable */
  html body .pt-services-btn { display: none; }
}

@media (max-width: 1024px) {
  .pt-info .pt-container { grid-template-columns: repeat(3, 1fr); }
  .pt-info-item:nth-child(4) { border-left: none; }
  .pt-carousel-track > * { flex-basis: calc((100% - 40px) / 3); }
  .pt-reviews .pt-carousel-track > * { flex-basis: calc((100% - 20px) / 2); }
  .pt-promos .pt-carousel-track > * { flex-basis: 100%; }
  .pt-footer-top { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 860px) {
  .pt-nav-toggle { display: flex; }
  .pt-search--desktop { display: none; }
  .pt-search--mobile { display: flex; width: 100%; margin-top: 16px; }
  .pt-search--mobile input[type="search"] { width: 100%; height: 48px; border-color: var(--pt-gray-200); background: var(--pt-bg); }
  .pt-nav-services { display: block; }
  html body .pt-nav-services a { color: var(--pt-green-700); font-weight: 700; }

  .pt-nav {
    position: fixed;
    top: var(--pt-nav-top, var(--pt-header-height));
    left: 0; right: 0; bottom: 0;
    z-index: 99;
    flex-direction: column;
    align-items: stretch;
    background: var(--pt-white);
    padding: 24px;
    overflow-y: auto;
    transform: translateX(100%);
    visibility: hidden;
    transition: transform var(--pt-duration) var(--pt-ease), visibility var(--pt-duration);
  }
  .pt-nav.is-open { transform: translateX(0); visibility: visible; }
  .pt-nav > ul { flex-direction: column; align-items: stretch; gap: 0; }
  .pt-nav > ul > li { border-bottom: 1px solid var(--pt-gray-100); }
  html body .pt-nav a { display: flex; justify-content: space-between; width: 100%; padding: 16px 0; font-size: 1.0625rem; color: var(--pt-navy); }
  .pt-nav > ul > li > a::after { display: none; }
  .pt-dropdown {
    position: static;
    transform: none;
    opacity: 1;
    visibility: visible;
    box-shadow: none;
    border: none;
    padding: 0 0 8px 16px;
    display: none;
  }
  .pt-has-dropdown.is-open .pt-dropdown { display: block; }
  .pt-has-dropdown.is-open > a .pt-icon { transform: rotate(180deg); }

  /* Banner en celular y tablet: imagen vertical (productos arriba), texto abajo */
  .pt-slide, .pt-slide.is-active { align-items: flex-end; }
  .pt-slide.is-active { aspect-ratio: auto; min-height: 600px; max-height: none; }
  .pt-slide-media img { object-position: center top; }
  .pt-slide::before { background: linear-gradient(180deg, rgba(4, 33, 63, 0) 0%, rgba(4, 33, 63, 0.4) 30%, rgba(4, 33, 63, 0.93) 58%, var(--pt-navy-900) 100%); }
  .pt-slide.has-motif::after { display: none; }
  .pt-slide .pt-container { padding-top: 180px; padding-bottom: 64px; }
  .pt-slider-arrow { top: 34%; width: 42px; height: 42px; margin-top: -21px; }
  .pt-slider-arrow.is-prev { left: 12px; }
  .pt-slider-arrow.is-next { right: 12px; }

  /* Imagen de celular con los productos abajo (opción del panel): texto arriba y la
     imagen completa, pegada abajo; su parte de arriba (vacía) queda detrás del texto */
  .pt-slide.is-copy-top, .pt-slide.is-copy-top.is-active { align-items: flex-start; }
  .pt-slide.is-copy-top .pt-slide-media { top: auto; }
  .pt-slide.is-copy-top .pt-slide-media img { height: auto; object-fit: initial; }
  .pt-slide.is-copy-top::before { background: linear-gradient(180deg, var(--pt-navy-900) 0%, rgba(4, 33, 63, 0.75) 35%, rgba(4, 33, 63, 0) 55%); }
  .pt-slide.is-copy-top .pt-container { padding-top: 40px; padding-bottom: 62vw; }

  .pt-carousel-arrow { display: none; }

  /* Categorías y productos: deslizar con el dedo */
  .pt-cats-list { flex-wrap: nowrap; justify-content: flex-start; overflow-x: auto; scrollbar-width: none; padding-bottom: 4px; }
  .pt-cats-list::-webkit-scrollbar { display: none; }
  html body .pt-cat { flex: 0 0 104px; width: 104px; }
  .pt-cat-circle { width: 96px; height: 96px; }
  .pt-carousel-track > * { flex-basis: 62%; }
  .pt-reviews .pt-carousel-track > * { flex-basis: 85%; }
  .pt-promos .pt-carousel-track > * { flex-basis: 92%; }
}

@media (max-width: 640px) {
  .pt-container { padding: 0 16px; }

  .pt-header .pt-container { gap: 8px; }
  .pt-brand { gap: 8px; }
  .pt-brand-name, .pt-brand-tag { font-size: 1rem; }
  .pt-brand-name span { display: none; }
  .pt-brand-divider { height: 20px; }
  .pt-logo-mark { width: 34px; height: 34px; }
  .pt-header-actions { gap: 0; }
  html body .pt-icon-btn, .pt-nav-toggle { width: 38px; height: 38px; }

  /* Flechas del banner abajo, junto a los puntos, para no tapar el título */
  .pt-slider-arrow { top: auto; bottom: 10px; margin-top: 0; width: 36px; height: 36px; box-shadow: none; }
  .pt-slider-arrow.is-prev { left: 16px; }
  .pt-slider-arrow.is-next { right: 16px; }
  .pt-slider-dots { bottom: 23px; }

  .pt-slide.is-active { min-height: 560px; }
  .pt-slide .pt-container { padding-top: 160px; padding-bottom: 60px; }
  .pt-slide.is-copy-top .pt-container { padding-top: 32px; padding-bottom: 62vw; }
  .pt-slide-copy p { font-size: 1rem; }
  .pt-slide-actions .pt-btn { flex: 1 1 100%; }
  .pt-info .pt-container { grid-template-columns: 1fr 1fr; }
  .pt-info-item { padding: 18px 8px; }
  .pt-info-item + .pt-info-item { border-left: none; }
  .pt-info-item:last-child { grid-column: 1 / -1; }
  .pt-products, .pt-promos, .pt-reviews { padding: 48px 0; }
  .pt-cats { padding: 48px 0 40px; }
  .pt-row-head { margin-bottom: 20px; }

  /* Promociones en celular: imagen cuadrada (productos arriba), texto abajo */
  .pt-promo { min-height: 420px; align-items: flex-end; }
  .pt-promo-media img { object-position: center top; }
  .pt-promo::before { background: linear-gradient(180deg, rgba(4, 33, 63, 0) 0%, rgba(4, 33, 63, 0.5) 35%, rgba(4, 33, 63, 0.95) 65%, var(--pt-navy-900) 100%); }
  .pt-promo-copy { padding: 24px 20px; }

  .pt-services { padding: 64px 0; }
  .pt-services::before { background: linear-gradient(180deg, rgba(0, 51, 102, 0.62) 0%, rgba(0, 51, 102, 0.78) 45%, rgba(0, 51, 102, 0.86) 100%); }
  .pt-services .pt-slide-actions .pt-btn { flex: 1 1 100%; }
  .pt-faq-section { padding: 56px 0; }
  .pt-wa-confirm { flex-direction: column; padding: 24px 20px; }
  .pt-wa-confirm .pt-btn { width: 100%; white-space: normal; text-align: center; }
  .pt-footer-top { grid-template-columns: 1fr; }
  .pt-footer-bottom { flex-direction: column; align-items: flex-start; }
  html body .pt-wa-float { right: 16px; bottom: 16px; width: 54px; height: 54px; }
}

@media (max-width: 782px) {
  .admin-bar .pt-header { top: 46px; }
}
@media (max-width: 600px) {
  /* En celular, la barra de administración de WordPress no se queda fija. */
  .admin-bar .pt-header { top: 0; }
}

/* La cinta de avisos (sección 1) se mueve siempre, aunque el equipo pida menos animaciones. */
@media (prefers-reduced-motion: reduce) {
  .pt-slide, .pt-header, .pt-nav, .pt-btn, .pt-card, .pt-wa-float { transition: none; }
  .pt-carousel-track { scroll-behavior: auto; }
}

/* Mi cuenta: link de pago en el detalle del pedido */
.pt-view-order-pay { display: flex; align-items: center; flex-wrap: wrap; gap: 8px 16px; margin: 0 18px 18px; padding: 16px 18px; border-radius: var(--pt-radius-md); background: var(--pt-white); border: 1px solid var(--pt-green-100); }
.pt-view-order-pay > span { flex: 1 1 180px; font: 700 0.875rem/1.3 var(--pt-font-display); color: var(--pt-gray); }
.pt-view-order-pay strong { display: block; font: 800 1.375rem/1.2 var(--pt-font-display); color: var(--pt-navy); }
.pt-view-order-pay small { flex-basis: 100%; font-size: 0.75rem; color: var(--pt-gray); }
.pt-wa-steps { margin: 0 0 18px; padding-left: 20px; display: flex; flex-direction: column; gap: 8px; color: var(--pt-navy); line-height: 1.5; }
.pt-cart-table tr.is-removing { opacity: 0.45; }

/* ==========================================================================
   Finalizar compra (bloque de pago de WooCommerce) y Pedido recibido
   ========================================================================== */
html body .pt-checkout-page .wc-block-checkout { margin: 0; }
html body .pt-checkout-page .wc-block-components-sidebar-layout { gap: 28px; flex-wrap: nowrap; }
html body .pt-checkout-page .wc-block-components-checkout-step { position: relative; margin: 0 0 16px !important; padding: 22px 24px !important; background: var(--pt-white); border: 1px solid var(--pt-gray-200); border-radius: var(--pt-radius-lg); }
html body .pt-checkout-page .wc-block-components-checkout-step::before,
html body .pt-checkout-page .wc-block-components-checkout-step::after { display: none !important; }
html body .pt-checkout-page .wc-block-components-checkout-step__heading { margin: 0 0 12px; }
html body .pt-checkout-page .wc-block-components-checkout-step__title { font: 800 1rem/1.25 var(--pt-font-display) !important; color: var(--pt-navy); text-transform: uppercase; letter-spacing: 0.02em; }
html body .pt-checkout-page .wc-block-components-checkout-step__container,
html body .pt-checkout-page .wc-block-components-checkout-step__content { padding: 0 !important; margin: 0 !important; }
html body .pt-checkout-page .wc-block-components-checkout-step__description { margin: 0 0 14px; font-size: 0.875rem; color: var(--pt-gray); }
html body .pt-checkout-page .wc-block-components-text-input input,
html body .pt-checkout-page .wc-block-components-textarea,
html body .pt-checkout-page .wc-blocks-components-select__select,
html body .pt-checkout-page .wc-block-components-combobox .wc-block-components-combobox-control input { border: 1.5px solid var(--pt-gray-200) !important; border-radius: var(--pt-radius-md) !important; background: var(--pt-white); color: var(--pt-navy); font-family: var(--pt-font-body); }
html body .pt-checkout-page .wc-block-components-text-input input:focus,
html body .pt-checkout-page .wc-block-components-textarea:focus,
html body .pt-checkout-page .wc-blocks-components-select__select:focus { border-color: var(--pt-green) !important; box-shadow: 0 0 0 3px var(--pt-green-050) !important; outline: none; }
html body .pt-checkout-page .wc-block-components-text-input label,
html body .pt-checkout-page .wc-blocks-components-select__label { color: var(--pt-gray); }
html body .pt-checkout-page .wc-block-components-radio-control__option,
html body .pt-checkout-page .wc-block-components-radio-control-accordion-option { border-radius: var(--pt-radius-md); }
html body .pt-checkout-page .wc-block-components-radio-control--highlight-checked .wc-block-components-radio-control__option--checked-option-highlighted,
html body .pt-checkout-page .wc-block-components-radio-control--highlight-checked .wc-block-components-radio-control-accordion-option--checked-option-highlighted { box-shadow: inset 0 0 0 2px var(--pt-green); background: var(--pt-green-050); }
html body .pt-checkout-page .wc-block-components-radio-control__input:checked { border-color: var(--pt-green); }
html body .pt-checkout-page .wc-block-components-radio-control__input:checked::before { background: var(--pt-green); }
html body .pt-checkout-page .wc-block-components-radio-control__label { font-weight: 700; color: var(--pt-navy); }
html body .pt-checkout-page .wc-block-components-radio-control__description,
html body .pt-checkout-page .wc-block-components-radio-control__secondary-description { color: var(--pt-gray); font-size: 0.8125rem; }
html body .pt-checkout-page .wc-block-components-checkbox .wc-block-components-checkbox__input[type="checkbox"]:checked { background: var(--pt-green); border-color: var(--pt-green); }
html body .pt-checkout-page .wc-block-components-checkbox .wc-block-components-checkbox__mark { fill: var(--pt-white); }
html body .pt-checkout-page .wc-block-components-checkout-step__description p { margin: 0; }
html body .pt-checkout-page .wc-block-checkout__terms { margin: 0 0 16px; font-size: 0.8125rem; color: var(--pt-gray); }
html body .pt-checkout-page .wc-block-checkout__terms a { color: var(--pt-green-700); font-weight: 700; }
html body .pt-checkout-page .wc-block-checkout__actions_row { display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap-reverse; }
html body .pt-checkout-page .wc-block-components-checkout-place-order-button { min-height: 56px; padding: 16px 32px; border: none; border-radius: var(--pt-radius-pill) !important; background: var(--pt-green) !important; color: var(--pt-white) !important; font: 800 1rem/1 var(--pt-font-display) !important; cursor: pointer; }
html body .pt-checkout-page .wc-block-components-checkout-place-order-button:hover { background: var(--pt-green-600) !important; }
html body .pt-checkout-page .wc-block-components-checkout-return-to-cart-button { display: inline-flex; align-items: center; gap: 4px; color: var(--pt-green-700); font: 700 0.875rem/1 var(--pt-font-display); text-decoration: none; }
html body .pt-checkout-page .wc-block-checkout__sidebar { position: sticky; top: calc(var(--pt-header-height) + 20px); align-self: flex-start; }
html body .pt-checkout-page .wp-block-woocommerce-checkout-order-summary-block { padding: 20px 22px; background: var(--pt-white); border: 1px solid var(--pt-gray-200); border-radius: var(--pt-radius-lg); }
html body .pt-checkout-page .wc-block-components-checkout-order-summary__title-text { font: 800 1rem/1.2 var(--pt-font-display); color: var(--pt-navy); text-transform: uppercase; }
html body .pt-checkout-page .wc-block-components-order-summary-item__description .wc-block-components-product-name { font-weight: 700; color: var(--pt-navy); }
html body .pt-checkout-page .wc-block-components-order-summary-item__quantity { background: var(--pt-navy); color: var(--pt-white); border: none; }
html body .pt-checkout-page .wc-block-components-totals-item { color: var(--pt-navy); }
html body .pt-checkout-page .wc-block-components-totals-footer-item .wc-block-components-totals-item__label { font: 800 1rem/1.2 var(--pt-font-display); text-transform: uppercase; }
html body .pt-checkout-page .wc-block-components-totals-footer-item .wc-block-components-totals-item__value { font: 800 1.5rem/1.1 var(--pt-font-display); color: var(--pt-navy); }
html body .pt-checkout-page .wc-block-components-totals-coupon { display: none; }
.pt-checkout-trust { list-style: none; margin: 16px 0 0; padding: 0; display: flex; flex-direction: column; gap: 8px; font-size: 0.8125rem; color: var(--pt-navy); }
.pt-checkout-trust li { display: flex; align-items: center; gap: 8px; }
.pt-checkout-trust .pt-icon { color: var(--pt-green-700); flex-shrink: 0; }

/* Pedido recibido */
.pt-received { max-width: 920px; }
.pt-received-facts { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.pt-received-facts li { display: flex; flex-direction: column; gap: 4px; padding: 14px 16px; border: 1px solid var(--pt-gray-200); border-radius: var(--pt-radius-md); background: var(--pt-white); }
.pt-received-facts span { font: 700 0.6875rem/1.3 var(--pt-font-display); letter-spacing: 0.05em; text-transform: uppercase; color: var(--pt-gray); }
.pt-received-facts strong { font: 800 1rem/1.3 var(--pt-font-display); color: var(--pt-navy); }
.pt-received .pt-wa-confirm { margin: 0; }
.pt-received .pt-wa-confirm-btn { margin-bottom: 20px; }

@media (max-width: 1024px) {
  html body .pt-checkout-page .wc-block-components-sidebar-layout { flex-wrap: wrap; }
  html body .pt-checkout-page .wc-block-checkout__sidebar { position: static; }
}
@media (max-width: 640px) {
  html body .pt-checkout-page .wc-block-components-checkout-step { padding: 18px 16px !important; }
  html body .pt-checkout-page .wc-block-components-checkout-place-order-button { width: 100%; }
  .pt-received-facts { grid-template-columns: 1fr 1fr; }
  .pt-wa-confirm { flex-direction: column; padding: 22px 18px; }
  .pt-received .pt-wa-confirm-btn { width: 100%; }
}

/* Finalizar compra: campos con error */
html body .pt-checkout-page .has-error input,
html body .pt-checkout-page .has-error select { border-color: var(--pt-error) !important; box-shadow: 0 0 0 3px #FDECEA !important; }
html body .pt-checkout-page .has-error label { color: var(--pt-error) !important; }
html body .pt-checkout-page .wc-block-components-validation-error { margin: 4px 0 0; font-size: 0.8125rem; line-height: 1.4; color: var(--pt-error); }
html body .pt-checkout-page .wc-block-components-validation-error p { margin: 0; }

/* ==========================================================================
   Mi cuenta: panel de la tienda (administrador)
   ========================================================================== */
.pt-store-panel .pt-dash-avatar { background: var(--pt-navy-900); color: var(--pt-green); }
.pt-dash-type.is-admin { background: var(--pt-navy); color: var(--pt-white); }
.pt-store-actions { display: flex; flex-wrap: wrap; gap: 10px; }
.pt-store-actions .pt-btn { padding: 12px 20px; font-size: 0.875rem; }
.pt-store-stats > a { display: flex; flex-direction: column; gap: 6px; padding: 16px 18px; border-radius: var(--pt-radius-md); background: var(--pt-bg); border: 1px solid var(--pt-gray-200); text-decoration: none; transition: border-color var(--pt-duration) var(--pt-ease), box-shadow var(--pt-duration) var(--pt-ease); }
.pt-store-stats > a:hover { border-color: var(--pt-green); box-shadow: var(--pt-shadow-card); }
.pt-store-stats em { font-style: normal; font-size: 0.75rem; color: var(--pt-gray); }
.pt-store-stats > a.is-alert { background: #FFF8E1; border-color: #F3D98B; }
.pt-store-stats > a.is-alert strong { color: #8A6500; }
.pt-store-stats > a.is-highlight { background: var(--pt-green-050); border-color: var(--pt-green-100); }
.pt-store-stats > a.is-highlight strong { color: var(--pt-green-700); }
.pt-store-list { list-style: none; margin: 0; padding: 0; border: 1px solid var(--pt-gray-200); border-radius: var(--pt-radius-md); overflow: hidden; }
.pt-store-list li { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; grid-template-areas: "main status total" "actions actions actions"; gap: 6px 16px; align-items: center; padding: 12px 16px; }
.pt-store-list li + li { border-top: 1px solid var(--pt-gray-100); }
html body .pt-store-list-main { grid-area: main; display: flex; flex-direction: column; gap: 2px; min-width: 0; text-decoration: none; color: var(--pt-navy); }
.pt-store-list-main strong { font: 800 0.9375rem/1.25 var(--pt-font-display); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pt-store-list-main span { font-size: 0.8125rem; color: var(--pt-gray); }
.pt-store-list .pt-order-status { grid-area: status; }
.pt-store-list-total { grid-area: total; font: 800 0.9375rem/1 var(--pt-font-display); color: var(--pt-navy); }
.pt-store-list-actions { grid-area: actions; display: flex; flex-wrap: wrap; gap: 16px; }
html body .pt-store-list-actions a { display: inline-flex; align-items: center; gap: 6px; font: 700 0.8125rem/1 var(--pt-font-display); color: var(--pt-green-700); text-decoration: none; }
html body .pt-store-list-actions a:hover { text-decoration: underline; }
.pt-store-list li:not(:has(.pt-order-status)) { grid-template-columns: minmax(0, 1fr) auto; grid-template-areas: "main actions"; }
.pt-store-days { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 12px; }
.pt-store-day { padding: 14px 16px; border: 1px solid var(--pt-gray-200); border-radius: var(--pt-radius-md); }
.pt-store-day.is-today { border-color: var(--pt-green); background: var(--pt-green-050); }
.pt-store-day.is-late { border-color: #F2C2BD; background: #FDECEA; }
html body .pt-woo-page .pt-store-day h4 { display: flex; align-items: center; gap: 6px; margin: 0 0 10px; font: 800 0.875rem/1.3 var(--pt-font-display); color: var(--pt-navy); }
.pt-store-day h4 .pt-icon { color: var(--pt-green-700); flex-shrink: 0; }
.pt-store-day h4 small { margin-left: auto; min-width: 24px; padding: 3px 7px; border-radius: var(--pt-radius-pill); background: var(--pt-navy); color: var(--pt-white); font-size: 0.6875rem; text-align: center; }
.pt-store-day ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.pt-store-day li { display: flex; flex-direction: column; gap: 1px; font-size: 0.8125rem; color: var(--pt-gray); }
html body .pt-store-day li a { font-weight: 700; color: var(--pt-navy); text-decoration: none; }
html body .pt-store-day li a:hover { color: var(--pt-green-700); }
html body .pt-woo-page .pt-store-head h3 { font: 800 1rem/1.2 var(--pt-font-display); color: var(--pt-navy); text-transform: uppercase; }
.pt-store-head { margin-bottom: 12px; }
@media (max-width: 640px) {
  .pt-store-actions .pt-btn { flex: 1 1 100%; }
  .pt-store-list li { grid-template-columns: minmax(0, 1fr) auto; grid-template-areas: "main total" "status status" "actions actions"; }
  .pt-store-list .pt-order-status { justify-self: start; }
}
.pt-dash-orders .pt-store-day ul { border: none; border-radius: 0; overflow: visible; }
.pt-dash-orders .pt-store-day li + li { border-top: none; }

/* ==========================================================================
   Mi cuenta: estadísticas (administrador) y clientes en Excel
   ========================================================================== */
html body .pt-woo-page .pt-store-export p { margin: 0 0 14px; font-size: 0.875rem; line-height: 1.55; color: var(--pt-gray); }
.pt-store-export { padding: 18px 20px; border: 1px dashed var(--pt-blue-100); border-radius: var(--pt-radius-md); background: var(--pt-bg); }
.pt-stats-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 14px; flex-wrap: wrap; }
html body .pt-woo-page .pt-stats-head h2 { font: 800 1.5rem/1.2 var(--pt-font-display); color: var(--pt-navy); }
html body .pt-woo-page .pt-stats-head p { margin-top: 4px; font-size: 0.875rem; color: var(--pt-gray); }
.pt-stats-periods { display: flex; flex-wrap: wrap; gap: 6px; }
html body .pt-stats-periods a { padding: 8px 14px; border: 1.5px solid var(--pt-gray-200); border-radius: var(--pt-radius-pill); font: 700 0.75rem/1 var(--pt-font-display); color: var(--pt-navy); text-decoration: none; background: var(--pt-white); }
html body .pt-stats-periods a:hover { border-color: var(--pt-green); }
html body .pt-stats-periods a.is-active { background: var(--pt-navy); border-color: var(--pt-navy); color: var(--pt-white); }
.pt-stats-kpis { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.pt-stats-kpis em { font-style: normal; font-size: 0.75rem; color: var(--pt-gray); }
.pt-stats-card { padding: 18px 20px; border: 1px solid var(--pt-gray-200); border-radius: var(--pt-radius-md); background: var(--pt-white); min-width: 0; }
html body .pt-woo-page .pt-stats-card h3 { margin: 0 0 14px; font: 800 0.875rem/1.3 var(--pt-font-display); color: var(--pt-navy); text-transform: uppercase; letter-spacing: 0.02em; }
.pt-stats-card h3 small { font: 600 0.75rem/1.3 var(--pt-font-body); color: var(--pt-gray); text-transform: none; letter-spacing: 0; }
.pt-stats-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.pt-stats-wide { grid-column: 1 / -1; }
.pt-stats-chart { display: flex; align-items: flex-end; gap: 3px; height: 160px; padding: 8px 0 0; border-bottom: 2px solid var(--pt-gray-200); }
.pt-stats-chart span { flex: 1 1 0; min-width: 2px; border-radius: 3px 3px 0 0; background: var(--pt-gray-200); }
.pt-stats-chart span.has-sales { background: var(--pt-green); }
.pt-stats-chart span:hover { background: var(--pt-navy); }
html body .pt-woo-page .pt-stats-chart-axis { display: flex; justify-content: space-between; gap: 10px; margin: 6px 0 0; font-size: 0.75rem; color: var(--pt-gray); }
.pt-stats-bars { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.pt-stats-bars li { display: grid; grid-template-columns: minmax(0, 1fr) auto; grid-template-areas: "label value" "bar bar"; gap: 4px 12px; align-items: baseline; }
.pt-stats-bar-label { grid-area: label; font-size: 0.8125rem; color: var(--pt-navy); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pt-stats-bars strong { grid-area: value; font: 800 0.8125rem/1 var(--pt-font-display); color: var(--pt-navy); white-space: nowrap; }
.pt-stats-bar { grid-area: bar; height: 8px; border-radius: var(--pt-radius-pill); background: var(--pt-gray-100); overflow: hidden; }
.pt-stats-bar span { display: block; height: 100%; border-radius: inherit; background: var(--pt-green); }
.pt-stats-bars li:first-child .pt-stats-bar span { background: var(--pt-navy); }
@media (max-width: 860px) {
  .pt-stats-kpis { grid-template-columns: 1fr 1fr; }
  .pt-stats-grid { grid-template-columns: minmax(0, 1fr); }
}

/* ==========================================================================
   Buscador con sugerencias
   ========================================================================== */
.pt-search-results { position: absolute; top: calc(100% + 8px); right: 0; z-index: 120; width: min(440px, calc(100vw - 32px)); max-height: min(70vh, 520px); overflow-y: auto; padding: 6px; border: 1px solid var(--pt-gray-200); border-radius: var(--pt-radius-lg); background: var(--pt-white); box-shadow: var(--pt-shadow-hover); text-align: left; }
.pt-search-results[hidden] { display: none; }
.pt-search-results.is-loading { opacity: 0.6; }
html body .pt-search-item { display: grid; grid-template-columns: 52px minmax(0, 1fr) auto; align-items: center; gap: 12px; padding: 8px 10px; border-radius: var(--pt-radius-md); color: var(--pt-navy); text-decoration: none; }
html body .pt-search-item:hover, html body .pt-search-item.is-active { background: var(--pt-bg); }
.pt-search-thumb { width: 52px; height: 52px; display: flex; align-items: center; justify-content: center; border: 1px solid var(--pt-gray-200); border-radius: var(--pt-radius-md); background: var(--pt-white); overflow: hidden; }
.pt-search-thumb img { width: 100%; height: 100%; object-fit: contain; }
.pt-search-name { display: flex; flex-direction: column; gap: 2px; font: 600 0.875rem/1.3 var(--pt-font-body); overflow: hidden; }
.pt-search-name small { font-size: 0.75rem; font-weight: 400; color: var(--pt-gray); }
.pt-search-price { font: 800 0.875rem/1 var(--pt-font-display); color: var(--pt-navy); white-space: nowrap; }
html body .pt-search-all { display: block; margin-top: 4px; padding: 12px 10px; border-top: 1px solid var(--pt-gray-100); font: 700 0.8125rem/1.2 var(--pt-font-display); color: var(--pt-green-700); text-align: center; text-decoration: none; border-radius: 0 0 var(--pt-radius-md) var(--pt-radius-md); }
html body .pt-search-all:hover, html body .pt-search-all.is-active { background: var(--pt-green-050); }
.pt-search-empty { margin: 0; padding: 14px 12px; font-size: 0.875rem; line-height: 1.5; color: var(--pt-navy); }
html body .pt-search-empty a { color: var(--pt-green-700); font-weight: 700; }
.pt-search--mobile .pt-search-results { left: 0; right: 0; width: auto; }

/* ==========================================================================
   Catálogo: filtros que dependen de los productos (marcas y características)
   ========================================================================== */
.pt-filter-brands li.is-extra { display: none; }
.pt-filter-brands.is-open li.is-extra { display: list-item; }
html body .pt-filter-more { margin: 6px 0 0 10px; padding: 0; border: none; background: none; font: 700 0.8125rem/1.2 var(--pt-font-display); color: var(--pt-green-700); cursor: pointer; }
html body .pt-filter-more:hover { text-decoration: underline; }
.pt-active-filters { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: -6px 0 18px; }
html body .pt-chip { display: inline-flex; align-items: center; gap: 6px; padding: 7px 10px 7px 12px; border-radius: var(--pt-radius-pill); background: var(--pt-blue-050); color: var(--pt-navy); font-size: 0.8125rem; text-decoration: none; }
html body .pt-chip:hover { background: var(--pt-blue-100); }
.pt-chip strong { font-weight: 700; }
.pt-chip .pt-icon { opacity: 0.7; }
html body .pt-chip-clear { font: 700 0.8125rem/1 var(--pt-font-display); color: var(--pt-error); text-decoration: underline; text-underline-offset: 3px; }
html body .pt-woo-page .pt-card-specs, html body .pt-card-specs { margin: 2px 0 0; font-size: 0.75rem; line-height: 1.4; color: var(--pt-gray); }
.pt-card-price ins.is-pending { font-size: 0.9375rem; color: var(--pt-gray); }

/* ==========================================================================
   Calculadora del domicilio (carrito y página de envíos)
   ========================================================================== */
.pt-ship-calc { display: flex; flex-direction: column; gap: 8px; margin: 4px 0 16px; padding: 14px 16px; border: 1px solid var(--pt-gray-200); border-radius: var(--pt-radius-md); background: var(--pt-bg); }
html body .pt-ship-calc label { display: flex; align-items: center; gap: 6px; font: 700 0.8125rem/1.3 var(--pt-font-display); color: var(--pt-navy); }
.pt-ship-calc label .pt-icon { color: var(--pt-green-700); }
html body .pt-ship-calc select, html body .pt-ship-calc input { width: 100%; min-height: 44px; padding: 8px 14px; border: 1.5px solid var(--pt-gray-200); border-radius: var(--pt-radius-pill); background: var(--pt-white); font: 400 0.875rem/1.2 var(--pt-font-body); color: var(--pt-navy); }
html body .pt-ship-calc select:focus, html body .pt-ship-calc input:focus { outline: none; border-color: var(--pt-green); box-shadow: 0 0 0 3px var(--pt-green-050); }
html body .pt-woo-page .pt-ship-calc-note, html body .pt-ship-calc-note { margin: 0; font-size: 0.8125rem; line-height: 1.45; color: var(--pt-gray); }
.pt-ship-calc-note strong { color: var(--pt-navy); }
[data-pt-ship-result].is-free, [data-pt-ship-out].is-free { color: var(--pt-green-700); font-weight: 700; }
.pt-ship-calc--page { max-width: 560px; gap: 12px; margin: 12px 0 20px; padding: 18px 20px; }
html body .pt-ship-calc--page label { flex-direction: column; align-items: stretch; gap: 6px; }
html body .pt-ship-calc-out { margin: 0; font: 700 1rem/1.3 var(--pt-font-display); color: var(--pt-navy); }
.pt-ship-calc-out strong { font-size: 1.25rem; }
