@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,300;0,400;0,500;0,600;1,400;1,500&family=Jost:wght@300;400;500&display=swap');

/* =========================================================================
   NEUTRALIZACIÓN DE BOOTSTRAP 4
   Bootstrap se carga para compatibilidad de módulos PS; aquí se sobreescriben
   sus reglas de UI para que no pisen el diseño del atelier.
   ========================================================================= */
body { background-color: var(--apt-cream, #f2ede6) !important; }

/* ── Scrollbar global personalizada ── */
::-webkit-scrollbar { width: 6px; }
::-webkit-scrollbar-track { background: var(--apt-cream-deep); }
::-webkit-scrollbar-thumb { background: var(--apt-terracotta); border-radius: 3px; }
::-webkit-scrollbar-thumb:hover { background: var(--apt-terracotta-d); }
* { scrollbar-width: thin; scrollbar-color: var(--apt-terracotta) var(--apt-cream-deep); }
a, a:hover { text-decoration: none; }
h1,h2,h3,h4,h5,h6 { margin-bottom: 0; }
/* Anular color de enlace de Bootstrap (#24b9d7) — excluir CTAs del hero y botones editoriales */
a:not(.apt-hero__cta):not(.apt-btn):not(.apt-account-card):not(.apt-account__back):not(.apt-back-to-top),
a:not(.apt-hero__cta):not(.apt-btn):not(.apt-account-card):not(.apt-account__back):not(.apt-back-to-top):link,
a:not(.apt-hero__cta):not(.apt-btn):not(.apt-account-card):not(.apt-account__back):not(.apt-back-to-top):visited {
  color: var(--apt-ink, #211c17);
}
a:not(.apt-hero__cta):not(.apt-btn):not(.apt-account-card):not(.apt-account__back):not(.apt-back-to-top):hover,
a:not(.apt-hero__cta):not(.apt-btn):not(.apt-account-card):not(.apt-account__back):not(.apt-back-to-top):focus {
  color: var(--apt-terracotta, #9c5a3c);
}
a:not(.apt-hero__cta):not(.apt-btn):not(.apt-account-card):not(.apt-account__back):not(.apt-back-to-top):active {
  color: var(--apt-terracotta-d, #7e472f);
}
.text-primary { color: var(--apt-terracotta, #9c5a3c) !important; }
.bg-primary { background-color: var(--apt-ink, #211c17) !important; }
.border-primary { border-color: var(--apt-terracotta, #9c5a3c) !important; }
.btn-link,
.btn-link:hover,
.btn-link:focus,
.btn-link:active {
  color: var(--apt-terracotta, #9c5a3c) !important;
}
.page-link {
  color: var(--apt-ink, #211c17) !important;
}
.page-link:hover,
.page-link:focus {
  color: var(--apt-terracotta, #9c5a3c) !important;
}
.page-item.active .page-link,
.page-item.active .page-link:hover,
.page-item.active .page-link:focus {
  background-color: var(--apt-ink, #211c17) !important;
  border-color: var(--apt-ink, #211c17) !important;
  color: var(--apt-white, #fff) !important;
}
.nav-link.active,
.nav-pills .nav-link.active,
.nav-tabs .nav-link.active {
  color: var(--apt-ink, #211c17) !important;
}
.form-control:focus,
select.form-control:focus,
textarea.form-control:focus {
  border-color: var(--apt-terracotta, #9c5a3c) !important;
  box-shadow: 0 0 0 0.15rem rgba(156, 90, 60, 0.18) !important;
}
.custom-control-input:focus ~ .custom-control-label::before {
  box-shadow: 0 0 0 0.15rem rgba(156, 90, 60, 0.18) !important;
}
.custom-control-input:checked ~ .custom-control-label::before {
  border-color: var(--apt-terracotta, #9c5a3c) !important;
  background-color: var(--apt-terracotta, #9c5a3c) !important;
}
.list-group-item.active {
  background-color: var(--apt-ink, #211c17) !important;
  border-color: var(--apt-ink, #211c17) !important;
}
.dropdown-item.active,
.dropdown-item:active {
  background-color: var(--apt-cream-deep, #ebe3d8) !important;
  color: var(--apt-ink, #211c17) !important;
}
.ui-state-active,
.ui-widget-content .ui-state-active,
.ui-widget-header .ui-state-active,
a.ui-state-active {
  border-color: var(--apt-terracotta, #9c5a3c) !important;
  background: var(--apt-terracotta, #9c5a3c) !important;
  color: var(--apt-white, #fff) !important;
}
/* Anular reset de lista */
ul, ol { padding-left: 0; list-style: none; }
/* Anular botón de Bootstrap */
.btn { border-radius: 0; font-family: inherit; letter-spacing: 0.18em; text-transform: uppercase; }
.btn-primary { background-color: var(--apt-ink, #211c17); border-color: var(--apt-ink, #211c17); }
.btn-primary:hover, .btn-primary:focus { background-color: var(--apt-terracotta, #9c5a3c); border-color: var(--apt-terracotta, #9c5a3c); }
/* Anular fondo blanco de .container */
.container, .container-fluid { background: transparent; }
/* Anular card/panel */
.card { border: 1px solid var(--apt-line, #ddd2c4); border-radius: 0; }



/* =========================================================================
   APPARENTIA · Atelier Barcelona — Tema PrestaShop 9 (hijo de classic)
   Paleta cálida tierra + tipografía serif editorial.
   ========================================================================= */

:root {
  /* Paleta */
  --apt-cream:        #f2ede6;   /* fondo general claro */
  --apt-cream-soft:   #f7f3ec;   /* tarjetas / secciones claras */
  --apt-cream-deep:   #ebe3d8;   /* divisores suaves */
  --apt-ink:          #211c17;   /* texto principal / botones */
  --apt-ink-soft:     #4a423a;
  --apt-muted:        #8a7d6e;   /* texto secundario */
  --apt-line:         #ddd2c4;   /* bordes finos */
  --apt-terracotta:   #9c5a3c;   /* acento principal (vestido) */
  --apt-terracotta-d: #7e472f;
  --apt-gold:         #b08d5b;   /* detalle dorado / florales */
  --apt-white:        #ffffff;

  /* Tipografía */
  --apt-display: 'Cormorant Garamond', 'Times New Roman', serif;
  --apt-sans: 'Jost', 'Helvetica Neue', Arial, sans-serif;

  /* -------------------------------------------------------------------
     Escala tipográfica — fuente única de tamaños.
     No usar valores rem sueltos en font-size: siempre var(--apt-fs-*).
     Suelo absoluto: 11px. Nada por debajo, en ninguna parte del site.
     ------------------------------------------------------------------- */

  /* Texto — pasos fijos */
  --apt-fs-3xs:  0.6875rem;  /* 11px — flags, badges, copyright, legales  */
  --apt-fs-2xs:  0.75rem;    /* 12px — eyebrows, autores, meta secundaria */
  --apt-fs-xs:   0.8125rem;  /* 13px — labels, botones, enlaces de footer */
  --apt-fs-sm:   0.875rem;   /* 14px — UI densa, nav, títulos de card     */
  --apt-fs-md:   0.9375rem;  /* 15px — cuerpo secundario                  */
  --apt-fs-base: 1rem;       /* 16px — cuerpo por defecto                 */
  --apt-fs-lg:   1.125rem;   /* 18px — cuerpo destacado, precios          */
  --apt-fs-xl:   1.25rem;    /* 20px — entradilla                         */
  --apt-fs-2xl:  1.375rem;   /* 22px — título de panel                    */
  --apt-fs-3xl:  1.5rem;     /* 24px                                      */

  /* Display — fluidos (min → max) */
  --apt-fs-d1: clamp(2.6rem, 7vw, 5.6rem);        /* 42 → 90  hero home    */
  --apt-fs-d2: clamp(2rem, 4.5vw, 3.5rem);        /* 32 → 56  título sección */
  --apt-fs-d3: clamp(1.625rem, 3vw, 2.625rem);    /* 26 → 42  título bloque  */
  --apt-fs-d4: clamp(1.375rem, 2.4vw, 1.875rem);  /* 22 → 30  título menor   */
  --apt-fs-d5: clamp(1.125rem, 2vw, 1.5rem);      /* 18 → 24  subtítulo      */
  --apt-fs-d6: clamp(1rem, 1.6vw, 1.25rem);       /* 16 → 20  subtítulo bajo */

  /* Métrica */
  --apt-maxw: 1240px;
  --apt-gut: 50px;
  --apt-content-pad: var(--apt-gut);
  --apt-header-h: 72px;
  --apt-radius: 0px;
  --apt-trans: 0.45s cubic-bezier(0.22, 0.61, 0.36, 1);
}

/* Móvil: gutter 25px — tablet (768px+) mantiene 50px */
@media (max-width: 767px) {
  :root {
    --apt-gut: 25px;
  }
}

/* ----------------------------- Base global ----------------------------- */
body {
  font-family: var(--apt-sans);
  font-weight: 400;
  color: var(--apt-ink);
  background: var(--apt-cream);
  -webkit-font-smoothing: antialiased;
  letter-spacing: 0.01em;
}

#wrapper,
.page-content,
#content-wrapper {
  background: transparent;
  box-shadow: none;
}

/* El header es position:fixed (fuera de flujo): reservamos su alto para que el
   contenido no quede debajo. Excepción: home en desktop, donde el header es
   transparente y va SOBRE el hero (padding 0, gestionado abajo + resetSpacing JS). */
#wrapper { padding: var(--apt-header-h) 0 0; }
@media (min-width: 1200px) {
  #index #wrapper { padding-top: 0; }
}

/* =========================================================================
   AVISOS — alineados con márgenes del header
   ========================================================================= */
#notifications.apt-notices {
  width: 100%;
  margin: 0;
  padding: 0;
  background: transparent;
}

#notifications.apt-notices:not(:has(.apt-notice)) {
  display: none;
}

#notifications.apt-notices:has(.apt-notice) {
  display: flex;
  align-items: center;
}

#notifications.apt-notices .apt-notices__inner,
#notifications .notifications-container.container {
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 auto !important;
  padding: clamp(12px, 1.6vw, 18px) var(--apt-gut) !important;
  box-sizing: border-box;
}

#product #notifications.apt-notices .apt-notices__inner {
  padding-left: var(--apt-prod-pad, var(--apt-gut)) !important;
  padding-right: var(--apt-prod-pad, var(--apt-gut)) !important;
}

#main .page-content #notifications,
.page-content #notifications {
  margin-left: 0 !important;
  margin-right: 0 !important;
}

#notifications .apt-notice,
#notifications .alert {
  margin: 0 0 clamp(8px, 1vw, 10px);
  padding: clamp(12px, 1.4vw, 15px) clamp(16px, 2vw, 20px);
  border: 1px solid var(--apt-line);
  border-left-width: 3px;
  border-radius: 0;
  background: var(--apt-cream-soft);
  box-shadow: none;
}

#notifications .apt-notice:last-child,
#notifications .alert:last-child {
  margin-bottom: 0;
}

#notifications .apt-notice__list,
#notifications ul {
  list-style: none;
  margin: 0;
  padding: 0;
}

#notifications .apt-notice__item,
#notifications .apt-notice__list li,
#notifications ul li {
  margin: 0;
  padding: 0;
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-md);
  font-weight: 400;
  line-height: 1.55;
  letter-spacing: 0.02em;
  color: var(--apt-ink-soft);
}

#notifications .apt-notice__item + .apt-notice__item,
#notifications ul li + li {
  margin-top: 6px;
}

#notifications .apt-notice--info,
#notifications .alert-info {
  border-left-color: var(--apt-terracotta);
  background: var(--apt-cream-soft);
  color: var(--apt-ink-soft);
}

#notifications .apt-notice--success,
#notifications .alert-success {
  border-left-color: var(--apt-terracotta-d, #7e472f);
  background: var(--apt-cream-soft);
  color: var(--apt-ink-soft);
}

#notifications .apt-notice--warning,
#notifications .alert-warning {
  border-left-color: var(--apt-gold);
  background: var(--apt-cream-soft);
  color: var(--apt-ink-soft);
}

#notifications .apt-notice--error,
#notifications .alert-danger {
  border-left-color: #a0443a;
  background: #faf3f2;
  color: var(--apt-ink-soft);
}

#notifications .apt-notice a,
#notifications .alert a {
  color: var(--apt-ink);
  text-decoration: underline;
  text-underline-offset: 2px;
}

#notifications .apt-notice a:hover,
#notifications .alert a:hover {
  color: var(--apt-terracotta);
}

#notifications .alert-link {
  color: var(--apt-terracotta) !important;
}

#notifications .alert hr {
  display: none;
}

h1, h2, h3, h4, .h1, .h2, .h3 {
  font-family: var(--apt-display);
  font-weight: 400;
  color: var(--apt-ink);
  letter-spacing: 0.02em;
}

a:not(.apt-hero__cta):not(.apt-btn):not(.apt-account-card):not(.apt-account__back):not(.apt-back-to-top) { color: var(--apt-ink); transition: color var(--apt-trans); }
a:hover,
a:focus,
a:active { text-decoration: none; }

.apt-container {
  max-width: var(--apt-maxw);
  margin: 0 auto;
  padding: 0 var(--apt-gut);
}

/* Botones de marca */
.apt-btn,
.btn-primary,
#content .btn-primary,
.product-add-to-cart .add-to-cart {
  display: inline-block;
  background: var(--apt-ink);
  color: var(--apt-white);
  border: 1px solid var(--apt-ink);
  font-family: var(--apt-sans);
  font-weight: 400;
  font-size: var(--apt-fs-xs);
  letter-spacing: 0.22em;
  text-transform: uppercase;
  padding: 14px 30px;
  border-radius: var(--apt-radius);
  cursor: pointer;
  transition: all var(--apt-trans);
  text-align: center;
}
.apt-btn:hover,
.btn-primary:hover,
.product-add-to-cart .add-to-cart:hover {
  background: var(--apt-terracotta);
  border-color: var(--apt-terracotta);
  color: var(--apt-white);
}
.apt-btn--ghost {
  background: transparent;
  color: var(--apt-white);
  border-color: rgba(255, 255, 255, 0.7);
}
.apt-btn--ghost:hover {
  background: var(--apt-white);
  border-color: var(--apt-white);
  color: var(--apt-ink);
}
.apt-btn--outline {
  background: transparent;
  color: var(--apt-ink);
  border-color: var(--apt-line);
}
.apt-btn--outline:hover {
  background: var(--apt-cream-deep);
  border-color: var(--apt-ink);
  color: var(--apt-ink);
}
.apt-btn--block {
  display: flex;
  width: 100%;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
}
.apt-btn--block[disabled],
.apt-btn[disabled] {
  opacity: 0.45;
  cursor: not-allowed;
  pointer-events: none;
}
a.apt-btn,
a.apt-btn:hover,
a.apt-btn:focus,
a.apt-btn:active,
a.apt-btn:visited {
  color: var(--apt-white);
}
a.apt-btn--outline,
a.apt-btn--outline:hover,
a.apt-btn--outline:focus,
a.apt-btn--outline:active,
a.apt-btn--outline:visited {
  color: var(--apt-ink) !important;
}
a.apt-btn--ghost,
a.apt-btn--ghost:hover,
a.apt-btn--ghost:focus,
a.apt-btn--ghost:active,
a.apt-btn--ghost:visited {
  color: var(--apt-white) !important;
}
.visually-hidden {
  position: absolute !important;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

/* =========================================================================
   HEADER — grid 3 columnas: [logo] [menú centrado] [acciones]
   ========================================================================= */
#header {
  background: var(--apt-cream);
  position: fixed;             /* fijo + auto-hide por JS; tb bloque de posicionamiento para .apt-megamenu */
  top: 0; left: 0; right: 0;
  z-index: 200;
  transition: transform var(--apt-trans), background var(--apt-trans),
              border-color var(--apt-trans), box-shadow var(--apt-trans);
}
/* Auto-ocultar: al bajar se retrae; al subir vuelve (clase la pone apparentia.js) */
#header.apt-header--hidden { transform: translateY(-100%); }
/* Header full-width */
#header .container { max-width: 100% !important; width: 100% !important; padding: 0 var(--apt-gut); }

/* Grid: [idioma] [nav] [iconos] */
.apt-header {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  align-items: stretch;
  height: 72px;
}

/* ── Columna izquierda: idioma + contacto ── */
.apt-header__left {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 16px;
}
.apt-header__contacts {
  display: flex;
  align-items: center;
  gap: 16px;
}
.apt-header__contact-link {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 24px;
  height: 24px;
  color: var(--apt-ink);
  transition: color var(--apt-trans);
}
.apt-header__contact-link:hover,
.apt-header__contact-link:focus-visible {
  color: var(--apt-terracotta);
}
.apt-header__contact-link .material-icons {
  font-size: 24px;
  line-height: 1;
}
.apt-header__contact-svg {
  width: 24px;
  height: 24px;
  display: block;
}
.apt-header__contacts--mobile {
  justify-content: center;
  padding-bottom: 16px;
  margin-bottom: 8px;
  border-bottom: 1px solid var(--apt-line);
}
/* Mostrar SOLO el selector de idioma en la columna izquierda */
.apt-header__left #_desktop_language_selector { display: flex; align-items: center; }
.apt-header__left #_desktop_user_info,
.apt-header__left #_desktop_cart,
.apt-header__left #_desktop_currency_selector { display: none; }

/* Estilo del selector de idioma */
#_desktop_language_selector a,
#_desktop_language_selector .expand-more,
#_desktop_language_selector button,
.apt-header__left a {
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-base);
  font-weight: 600;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--apt-ink);
  background: none; border: none; cursor: pointer; padding: 0;
  display: flex; align-items: center; gap: 5px;
}

.apt-lang-selector {
  position: relative;
  display: flex;
  align-items: center;
  height: 24px;
}
.apt-lang-code {
  display: block;
  font-family: var(--apt-sans);
  font-size: 26px;
  font-weight: 400;
  letter-spacing: 0.02em;
  line-height: 1;
  text-transform: uppercase;
}
.apt-lang-current,
.apt-lang-toggle {
  color: var(--apt-ink);
  background: none;
  border: none;
  cursor: default;
  padding: 0;
  height: 24px;
  min-height: 24px;
  display: inline-flex;
  align-items: center;
  gap: 0;
}
.apt-lang-toggle {
  position: relative;
  cursor: pointer;
  transition: color var(--apt-trans);
}
.apt-lang-toggle::after {
  content: '';
  position: absolute;
  left: 0;
  bottom: -4px;
  width: 0;
  height: 1px;
  background: currentColor;
  transition: width var(--apt-trans);
}
.apt-lang-toggle:hover,
.apt-lang-toggle:focus-visible,
.apt-lang-selector.is-open .apt-lang-toggle {
  color: var(--apt-terracotta);
}
.apt-lang-toggle:hover::after,
.apt-lang-toggle:focus-visible::after,
.apt-lang-selector.is-open .apt-lang-toggle::after {
  width: 100%;
}
.apt-lang-arrow {
  font-size: 22px !important;
  line-height: 1 !important;
  width: 22px;
  height: 22px;
  margin-left: -1px;
  transition: transform var(--apt-trans);
}
.apt-lang-selector.is-open .apt-lang-arrow { transform: rotate(180deg); }

.apt-lang-dropdown {
  position: absolute;
  top: calc(100% + 12px);
  left: 0;
  background: var(--apt-cream);
  border: 1px solid var(--apt-line);
  list-style: none;
  margin: 0;
  padding: 6px 0;
  min-width: 80px;
  opacity: 0;
  visibility: hidden;
  transform: translateY(-6px);
  transition: opacity var(--apt-trans), transform var(--apt-trans), visibility var(--apt-trans);
  z-index: 300;
}
.apt-lang-selector.is-open .apt-lang-dropdown {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}
.apt-lang-option {
  display: block;
  padding: 8px 16px;
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-sm);
  font-weight: 600;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--apt-ink);
  text-decoration: none;
  white-space: nowrap;
}
.apt-lang-option--active { opacity: 0.4; cursor: default; }
.apt-lang-option:not(.apt-lang-option--active):hover { background: var(--apt-cream-deep); }

/* ── Columna central: nav ── */
.apt-header__nav {
  display: flex;
  align-items: center;
  justify-content: center;
}

/* El buscador no va suelto en la barra: se abre desde la lupa, y el único que se
   pinta es el del panel (`.apt-search`). Todo lo demás que los módulos cuelguen
   del header con estas clases se sigue ocultando —era el motivo original de esta
   regla— pero ahora con la excepción, porque si no el panel nace invisible. */
#header .search-widgets:not(.apt-search),
#header .search-widget:not(.apt-search),
#header #_desktop_search_widget:not(.apt-search),
.apt-mobile-nav .search-widgets,
.apt-mobile-nav .search-widget,
.apt-mobile-nav__body .search-widgets,
.apt-mobile-nav__footer .search-widgets {
  display: none !important;
}

/* ── Columna derecha: iconos + hamburger ── */
.apt-header__right {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 20px;
  position: relative;
  z-index: 2;
}

/* Icono genérico */
.apt-icon-link {
  display: flex;
  align-items: center;
  color: var(--apt-ink);
  font-size: 0;        /* oculta cualquier texto */
  line-height: 0;
  position: relative;
  transition: color var(--apt-trans);
}
.apt-icon-link .material-icons {
  font-size: 24px;
  color: inherit;
  transition: color var(--apt-trans);
}
.apt-icon-link:hover,
.apt-icon-link:focus-visible { color: var(--apt-terracotta); }

/* Iconos derecha — color y hover con transición (sin !important en color) */
.apt-header__right .apt-icon-link,
.apt-header__right .apt-cart-dropdown__toggle {
  transition: color var(--apt-trans);
}
#header.apt-header--hero:not(.apt-header--solid) .apt-header__right .apt-icon-link,
#header.apt-header--hero:not(.apt-header--solid) .apt-header__right .apt-cart-dropdown__toggle {
  color: var(--apt-white);
}
#header.apt-header--hero.apt-header--solid .apt-header__right .apt-icon-link,
#header.apt-header--hero.apt-header--solid .apt-header__right .apt-cart-dropdown__toggle {
  color: var(--apt-ink);
}
.apt-header__right .apt-icon-link:hover,
.apt-header__right .apt-icon-link:focus-visible,
.apt-header__right .apt-cart-dropdown__toggle:hover,
.apt-header__right .apt-cart-dropdown__toggle:focus-visible {
  color: var(--apt-terracotta);
}

/* Badge carrito */
.apt-cart-badge {
  position: absolute;
  top: -6px; right: -8px;
  width: 18px; height: 18px;
  background: var(--apt-terracotta);
  color: var(--apt-white);
  border-radius: 50%;
  font-size: var(--apt-fs-3xs);
  font-family: var(--apt-sans);
  display: flex; align-items: center; justify-content: center;
  line-height: 1;
  letter-spacing: 0;
}
.apt-cart-badge--empty { background: var(--apt-muted); }

.apt-wishlist-link .apt-wishlist-badge[hidden] {
  display: none;
}

/* ── Mini-carrito desplegable (navbar) ── */
.apt-cart-dropdown {
  position: relative;
}
.apt-cart-dropdown__wrap {
  position: relative;
}
.apt-cart-dropdown__toggle {
  background: none;
  border: none;
  padding: 0;
  cursor: pointer;
}
.apt-cart-dropdown__panel {
  position: absolute;
  top: calc(100% + 14px);
  right: 0;
  width: min(92vw, 400px);
  background: var(--apt-cream);
  border: 1px solid var(--apt-line);
  box-shadow: 0 12px 40px rgba(26, 22, 18, 0.12);
  z-index: 400;
  opacity: 0;
  visibility: hidden;
  transform: translateY(-8px);
  transition: opacity var(--apt-trans), transform var(--apt-trans), visibility var(--apt-trans);
  pointer-events: none;
}
.apt-cart-dropdown.is-open .apt-cart-dropdown__panel {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
  pointer-events: auto;
}
.apt-cart-dropdown.is-open .apt-cart-dropdown__panel[hidden] {
  display: block;
}
.apt-cart-dropdown__head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  padding: 18px 20px 14px;
  border-bottom: 1px solid var(--apt-line);
}
.apt-cart-dropdown__title {
  font-family: var(--apt-display);
  font-size: var(--apt-fs-xl);
  font-weight: 400;
  color: var(--apt-ink);
  letter-spacing: 0.02em;
}
.apt-cart-dropdown__count {
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-2xs);
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--apt-muted);
  white-space: nowrap;
}
.apt-cart-dropdown__list {
  list-style: none;
  margin: 0;
  padding: 0;
  max-height: min(50vh, 320px);
  overflow-y: auto;
}
.apt-cart-dropdown__item + .apt-cart-dropdown__item {
  border-top: 1px solid var(--apt-line);
}
.apt-cart-dropdown-line {
  display: grid;
  grid-template-columns: 72px minmax(0, 1fr) auto;
  gap: 14px;
  align-items: start;
  padding: 16px 20px;
}
.apt-cart-dropdown-line__media {
  display: block;
  width: 72px;
  aspect-ratio: 1;
  overflow: hidden;
  background: var(--apt-cream-deep);
}
.apt-cart-dropdown-line__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.apt-cart-dropdown-line__name {
  display: block;
  font-family: var(--apt-display);
  font-size: var(--apt-fs-base);
  font-weight: 400;
  line-height: 1.3;
  color: var(--apt-ink);
  text-decoration: none;
  margin-bottom: 6px;
}
.apt-cart-dropdown-line__name:hover { color: var(--apt-terracotta); }
.apt-cart-dropdown-line__attr {
  margin: 0 0 6px;
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-xs);
  color: var(--apt-muted);
  letter-spacing: 0.02em;
}
.apt-cart-dropdown-line__meta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 8px;
  margin: 8px 0 0;
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-sm);
  color: var(--apt-ink);
}
.apt-cart-dropdown-line__qty {
  letter-spacing: 0.08em;
  color: var(--apt-muted);
}
.apt-cart-dropdown-line__price { font-weight: 500; }
.apt-cart-dropdown-line__remove {
  color: var(--apt-muted);
  line-height: 0;
  padding: 2px;
  transition: color var(--apt-trans);
}
.apt-cart-dropdown-line__remove .material-icons { font-size: 18px; }
.apt-cart-dropdown-line__remove:hover { color: var(--apt-terracotta); }
.apt-cart-dropdown__footer {
  padding: 16px 20px 20px;
  border-top: 1px solid var(--apt-line);
}
.apt-cart-dropdown__subtotal {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 16px;
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-md);
  color: var(--apt-ink);
}
.apt-cart-dropdown__subtotal-label {
  letter-spacing: 0.12em;
  text-transform: uppercase;
  font-size: var(--apt-fs-2xs);
  color: var(--apt-muted);
}
.apt-cart-dropdown__subtotal-value {
  font-size: var(--apt-fs-base);
  font-weight: 500;
}
.apt-cart-dropdown__actions {
  display: grid;
  gap: 10px;
}
.apt-cart-dropdown .apt-btn {
  color: var(--apt-white);
  font-size: var(--apt-fs-2xs);
  letter-spacing: 0.18em;
  padding: 13px 20px;
}
.apt-cart-dropdown .apt-btn--outline {
  color: var(--apt-ink);
  background: transparent;
  border-color: var(--apt-line);
}
.apt-cart-dropdown .apt-btn--outline:hover {
  background: var(--apt-cream-deep);
  border-color: var(--apt-ink);
  color: var(--apt-ink);
}
.apt-cart-dropdown .apt-btn--checkout,
.apt-cart-dropdown .apt-btn--block:not(.apt-btn--outline) {
  color: var(--apt-white) !important;
  background: var(--apt-ink);
  border-color: var(--apt-ink);
}
.apt-cart-dropdown .apt-btn--outline:hover,
.apt-cart-dropdown .apt-btn--outline:focus,
.apt-cart-dropdown .apt-btn--outline:active {
  background: var(--apt-cream-deep);
  border-color: var(--apt-ink);
  color: var(--apt-ink) !important;
}
.apt-cart-dropdown .apt-btn--checkout:hover,
.apt-cart-dropdown .apt-btn--checkout:focus,
.apt-cart-dropdown .apt-btn--checkout:active,
.apt-cart-dropdown .apt-btn--block:not(.apt-btn--outline):hover,
.apt-cart-dropdown .apt-btn--block:not(.apt-btn--outline):focus,
.apt-cart-dropdown .apt-btn--block:not(.apt-btn--outline):active {
  color: var(--apt-white) !important;
  background: var(--apt-terracotta);
  border-color: var(--apt-terracotta);
}
.apt-cart-dropdown__empty .apt-btn--outline {
  color: var(--apt-ink);
}
.apt-cart-dropdown__empty {
  padding: 28px 20px 24px;
  text-align: center;
}
.apt-cart-dropdown__empty-text {
  margin: 0 0 18px;
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-base);
  color: var(--apt-muted);
  line-height: 1.5;
}

/* Ocultar duplicados del hook displayNav2 en menú móvil (perfil ya está en la barra) */
.apt-mobile-nav__footer #_desktop_user_info,
.apt-mobile-nav__footer .user-info,
.apt-mobile-nav__footer .blockcart,
.apt-mobile-nav__footer #_desktop_cart {
  display: none !important;
}

/* Hero header: panel legible sobre fondo claro al hacer scroll */
#header.apt-header--hero .apt-cart-dropdown__panel,
#header.apt-header--solid .apt-cart-dropdown__panel {
  background: var(--apt-cream);
  border-color: var(--apt-line);
}

@media (max-width: 767px) {
  .apt-cart-dropdown__panel {
    position: fixed;
    top: var(--apt-header-h);
    left: var(--apt-gut);
    right: var(--apt-gut);
    width: auto;
    max-height: calc(100svh - var(--apt-header-h) - 16px);
    overflow-y: auto;
  }
  .apt-cart-dropdown__list {
    max-height: none;
  }
}

/* ── Hamburger (solo móvil) ── */
.apt-hamburger {
  display: none;
  flex-direction: column;
  gap: 5px;
  background: none;
  border: none;
  cursor: pointer;
  padding: 4px;
}
.apt-hamburger span {
  display: block;
  width: 22px; height: 1.5px;
  background: var(--apt-ink);
  transition: all 0.3s ease;
}
.apt-hamburger.is-open span:nth-child(1) { transform: translateY(6.5px) rotate(45deg); }
.apt-hamburger.is-open span:nth-child(2) { opacity: 0; }
.apt-hamburger.is-open span:nth-child(3) { transform: translateY(-6.5px) rotate(-45deg); }

/* ── Cajón de navegación móvil ── */
.apt-mobile-nav {
  position: fixed;
  top: 0; left: 0; bottom: 0;
  z-index: 500;
  visibility: hidden;
}
.apt-mobile-nav.is-open { visibility: visible; }

.apt-mobile-nav__inner {
  position: absolute;
  top: 0; left: 0; bottom: 0;
  width: 100vw;
  background: var(--apt-cream);
  display: flex;
  flex-direction: column;
  transform: translateX(-100%);
  transition: transform 0.36s cubic-bezier(0.22, 0.61, 0.36, 1);
  z-index: 2;
  overflow-y: auto;
}
.apt-mobile-nav.is-open .apt-mobile-nav__inner { transform: translateX(0); }

.apt-mobile-nav__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 20px 24px;
  border-bottom: 1px solid var(--apt-line);
  flex-shrink: 0;
}
.apt-mobile-nav__brand {
  font-family: var(--apt-display);
  font-size: var(--apt-fs-2xl);
  letter-spacing: 0.28em;
  color: var(--apt-ink);
}
.apt-mobile-nav__close {
  background: none; border: none; cursor: pointer;
  color: var(--apt-muted); padding: 4px;
}
.apt-mobile-nav__close .material-icons { font-size: 24px; }

.apt-mobile-nav__body { flex: 1; padding: 16px 0; }
.apt-mobile-nav__footer { padding: 16px 24px; border-top: 1px solid var(--apt-line); }

/* Estilo del menú dentro del cajón móvil */
.apt-mobile-nav .apt-mainnav { display: block; height: auto; }
.apt-mobile-nav .apt-nav-list {
  flex-direction: column;
  align-items: flex-start;
  gap: 0; height: auto;
}
.apt-mobile-nav .apt-nav-item { width: 100%; display: block; padding: 0; }
.apt-mobile-nav .apt-nav-link {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  width: 100%;
  height: auto;
  padding: 16px 24px;
  font-size: var(--apt-fs-md);
  letter-spacing: 0.16em;
  border-bottom: 1px solid var(--apt-line);
  color: var(--apt-ink) !important;
  background: none !important;
  box-shadow: none !important;
  outline: none !important;
}
.apt-mobile-nav .apt-nav-link::after { display: none; }
.apt-mobile-nav .apt-nav-item.is-current > .apt-nav-link,
.apt-mobile-nav .apt-nav-item.is-open > .apt-nav-link { color: var(--apt-terracotta) !important; background: none !important; }
/* Flecha para items con hijos */
.apt-mobile-nav .has-children > .apt-nav-link::before {
  content: '›';
  font-size: 1.2rem;
  color: var(--apt-muted);
  margin-right: 12px;
  order: -1;
}
.apt-mobile-nav .apt-megamenu,
.apt-mobile-nav .apt-submenu {
  position: static;
  visibility: visible;
  opacity: 1;
  transform: none !important;
  pointer-events: auto;
  box-shadow: none;
  padding: 0;
  border: none;
  border-top: none;
  background: var(--apt-cream-soft);
  display: none;
  width: 100% !important;
  min-height: unset !important;
  left: auto !important;
}
.apt-mobile-nav .apt-nav-item.is-open > .apt-megamenu,
.apt-mobile-nav .apt-nav-item.is-open > .apt-submenu { display: block; }
.apt-mobile-nav .apt-megamenu__inner {
  flex-direction: column;
  min-height: unset;
  width: 100%;
}
.apt-mobile-nav .apt-megamenu__nav {
  padding: 0;
  border-right: none;
  width: 100%;
}
.apt-mobile-nav .apt-megamenu__visual {
  display: flex;
  width: 100%;
  max-width: 100%;
  overflow-x: auto;
  min-height: 270px;
}
.apt-mobile-nav .apt-mega-featured { width: 100%; }
.apt-mobile-nav .apt-mega-featured__grid { flex-wrap: nowrap; min-height: 270px; }
.apt-mobile-nav .apt-mega-feat {
  width: 180px;
  aspect-ratio: 2 / 3;
  min-height: unset;
  flex-shrink: 0;
}
.apt-mobile-nav .apt-subnav-link {
  padding: 12px 24px;
  font-size: var(--apt-fs-md);
  border-bottom: 1px solid var(--apt-line);
}
.apt-mobile-nav .apt-subnav-sublink {
  padding: 10px 16px 10px 36px;
  font-size: var(--apt-fs-sm);
  border-bottom: 1px solid var(--apt-cream-deep);
}
.apt-mobile-nav .apt-subnav-sublist { max-height: none !important; padding-left: 0; border-left: none; }
.apt-mobile-nav .apt-nav-sub { padding: 12px 32px; border-bottom: 1px solid var(--apt-line); font-size: var(--apt-fs-sm); }
.apt-mobile-nav .apt-nav-toggle { display: none; }

/* Overlay oscuro al fondo del cajón */
.apt-mobile-nav__overlay {
  position: fixed;
  inset: 0;
  background: rgba(33,28,23,0.45);
  opacity: 0;
  transition: opacity 0.36s ease;
  z-index: 1;
}
.apt-mobile-nav.is-open .apt-mobile-nav__overlay { opacity: 1; }

/* =========================================================================
   MEGA-MENÚ
   Desktop: CSS :hover — panel full-width, subcategorías en línea debajo.
   Hover sobre una categoría → sus hijos se despliegan DEBAJO de ella.
   ========================================================================= */

.apt-mainnav {
  display: flex;
  align-items: stretch;
  height: 72px;
}
.apt-nav-list {
  display: flex;
  align-items: stretch;
  gap: 0;
  margin: 0; padding: 0;
  list-style: none;
}
.apt-nav-list > .apt-nav-item { padding: 0 18px; }
.apt-nav-item {
  position: static;
  display: flex;
  align-items: center;
  cursor: pointer;
}

/* Enlace de primer nivel */
.apt-nav-link {
  font-family: var(--apt-sans);
  font-weight: 600;
  font-size: var(--apt-fs-lg);
  letter-spacing: 0.12em;
  text-transform: uppercase;
  white-space: nowrap;
  display: inline-flex;
  align-items: center;
  padding: 5px 0 0;
  position: relative;
  color: var(--apt-ink);
  transition: color var(--apt-trans);
}
.apt-nav-link::after {
  content: '';
  position: absolute;
  left: 0; bottom: -6px;
  width: 0; height: 1px;
  background: currentColor;
  transition: width var(--apt-trans);
}
#_desktop_top_menu .apt-nav-item:hover > .apt-nav-link,
#_desktop_top_menu .apt-nav-item.is-current > .apt-nav-link { color: var(--apt-terracotta) !important; }
#_desktop_top_menu .apt-nav-item:hover > .apt-nav-link::after,
#_desktop_top_menu .apt-nav-item.is-current > .apt-nav-link::after { width: 100%; }

.apt-nav-toggle { display: none; }

/* ─── Panel mega-menú (CSS :hover — no mouseleave JS) ─── */
.apt-megamenu {
  position: absolute;
  top: 100%;
  left: 50%;
  transform: translateX(-50%);
  width: fit-content;
  max-width: calc(100vw - 2 * var(--apt-gut));
  min-height: 60vh;
  display: flex;
  flex-direction: column;
  background: #fff;
  border-top: 2px solid var(--apt-terracotta);
  box-shadow: 0 20px 60px rgba(33,28,23,0.12);
  z-index: 300;
  visibility: hidden;
  opacity: 0;
  pointer-events: none;
  transform: translateX(-50%) translateY(-6px);
  transition: opacity 0.22s ease, transform 0.22s ease, visibility 0s 0.22s;
}
/* Variante sin imágenes: ancho y alto ajustados al contenido */
.apt-megamenu--simple {
  min-height: 0;
  left: auto;
  right: auto;
  width: auto;
  min-width: 220px;
}
.apt-megamenu--simple .apt-megamenu__inner {
  flex: none;
}
.apt-megamenu--simple .apt-megamenu__nav {
  border-right: none;
  padding: 20px 32px 24px 24px;
}

/* CSS :hover como selector primario — fiable con hijos absolutos */
#_desktop_top_menu .apt-nav-item:hover > .apt-megamenu,
#_desktop_top_menu .apt-nav-item.is-open > .apt-megamenu {
  visibility: visible;
  opacity: 1;
  pointer-events: auto;
  transform: translateX(-50%) translateY(0);
  transition: opacity 0.22s ease, transform 0.22s ease, visibility 0s 0s;
}

/* ── Layout interno: ocupa todo el alto del panel ── */
.apt-megamenu__inner {
  display: flex;
  align-items: stretch;
  flex: 1;
  overflow: hidden;
  min-width: 0;
}
.apt-megamenu__nav {
  flex: 0 0 auto;
  min-width: 200px;
  padding: 36px 48px 36px 36px;
  border-right: 1px solid var(--apt-cream-deep);
  background: #fff;
}
.apt-megamenu__visual {
  /* Encoge si el panel no da de si (columna nav ancha, viewport estrecho) en vez
     de quedar recortada por el overflow:hidden de __inner: asi el carrusel SIEMPRE
     tiene ancho visible y las flechas aparecen. min-width:0 es obligatorio para que
     un flex item con contenido ancho pueda encoger por debajo de su min-content. */
  flex: 1 1 auto;
  min-width: 0;
  /* Limitamos el ancho visible a ~5 cards (una card = calc(60vh*2/3), gap 3px):
     asi el carrusel SIEMPRE desliza cuando hay mas cards, en cualquier pantalla.
     En monitores anchos evita que se muestre el set completo como grid estatico
     (p. ej. Invitadas con 8 cards cabia y no deslizaba). El limite 100vw sigue
     ganando en pantallas normales, donde el comportamiento no cambia. */
  max-width: min(
    calc(100vw - 2 * var(--apt-gut) - 280px),
    calc(5 * (60vh * 2 / 3) + 4 * 3px)
  );
  overflow: hidden;
  display: flex;
  align-self: stretch;
}

/* ── Imágenes destacadas — llenan la altura del nav ── */
.apt-mega-featured {
  display: flex;
  flex-direction: column;
  width: 100%;
  min-width: 0;
  height: 100%;
}
.apt-mega-featured__heading {
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-3xs);
  letter-spacing: 0.26em;
  text-transform: uppercase;
  color: var(--apt-muted);
  padding: 16px 20px 0;
  flex-shrink: 0;
}
.apt-mega-slider {
  position: relative;
  flex: 1;
  display: flex;
  min-width: 0;
  min-height: 320px;
}
.apt-mega-featured__grid {
  display: flex;
  gap: 3px;
  flex: 1;
  min-width: 0;
  align-items: stretch;
  overflow-x: auto;
  scroll-behavior: smooth;
  scrollbar-width: none;
  /* Cap directo del ancho visible del carrusel a ~5 cards (una card = 60vh*2/3,
     gap 3px). Es el elemento que mide el JS (scrollWidth vs clientWidth), asi que
     garantiza el overflow -> aparecen las flechas y desliza SIEMPRE que haya mas
     cards, en cualquier pantalla. Sin esto, en monitores anchos el set completo
     (p. ej. Invitadas con 8 cards) cabia y salia como grid estatico sin flechas. */
  max-width: calc(5 * (60vh * 2 / 3) + 4 * 3px);
}
.apt-mega-featured__grid::-webkit-scrollbar { display: none; }

/* Flechas del carrusel (Anterior / Siguiente) */
.apt-mega-slider__nav {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 4;
  width: 42px;
  height: 42px;
  border: 0;
  padding: 0;
  background: rgba(33, 28, 23, 0.82);
  color: #fff;
  font-size: 1.6rem;
  line-height: 1;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background var(--apt-trans), opacity 0.2s ease;
}
.apt-mega-slider__nav:hover { background: var(--apt-terracotta); }
.apt-mega-slider__nav--prev { left: 10px; }
.apt-mega-slider__nav--next { right: 10px; }
.apt-mega-slider__nav[hidden] { display: none; }
.apt-mobile-nav .apt-mega-slider__nav { display: none; }
.apt-mega-feat {
  flex: 0 0 auto;
  width: calc(60vh * 2 / 3);
  align-self: stretch;
  position: relative;
  overflow: hidden;
  text-decoration: none;
  display: block;
}
.apt-mega-feat__img {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center top;
  transition: transform 0.7s cubic-bezier(0.22,0.61,0.36,1);
}
.apt-mega-feat::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(33,28,23,0.55) 0%, transparent 50%);
  transition: opacity 0.3s ease;
}
.apt-mega-feat:hover .apt-mega-feat__img { transform: scale(1.04); }
.apt-mega-feat:hover::after { opacity: 0.75; }
.apt-mega-feat__label {
  position: absolute;
  bottom: 18px;
  left: 18px;
  z-index: 2;
  color: #fff;
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-lg);
  font-weight: 600;
  letter-spacing: 0.2em;
  text-transform: uppercase;
}

/* ── Lista de nivel 2 ── */
.apt-subnav-list { list-style: none; margin: 0; padding: 0; }
.apt-subnav-item { padding: 0; }

/* ── Enlace nivel 2 ── */
.apt-subnav-link {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  padding: 11px 0;
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-lg);
  font-weight: 400;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--apt-ink);
  transition: color var(--apt-trans), padding-left var(--apt-trans);
  white-space: nowrap;
}
.apt-subnav-link:hover,
.apt-subnav-item.is-current > .apt-subnav-link {
  color: var(--apt-terracotta) !important;
  padding-left: 5px;
}
.apt-subnav-item.has-sub:hover > .apt-subnav-link { color: var(--apt-terracotta-d) !important; }
.apt-subnav-arrow {
  font-style: normal;
  font-size: 1.3rem;
  font-weight: 700;
  opacity: 0.6;
  margin-left: 8px;
  transition: transform var(--apt-trans);
}
.apt-subnav-item.has-sub:hover .apt-subnav-arrow { transform: rotate(90deg); opacity: 0.7; }

/* ── Subcategorías accordion animado ── */
.apt-subnav-sublist {
  list-style: none;
  margin: 0 0 4px;
  padding: 0 0 0 12px;
  border-left: 1px solid var(--apt-line);
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.32s ease;
}
.apt-subnav-item.has-sub:hover .apt-subnav-sublist { max-height: 400px; }
.apt-subnav-sublink {
  display: block;
  padding: 7px 0;
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-lg);
  font-weight: 400;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--apt-muted);
  transition: color var(--apt-trans), padding-left var(--apt-trans);
}
.apt-subnav-sublink:hover { color: var(--apt-terracotta) !important; padding-left: 4px; }

/* ── Compat: reglas antiguas apt-nav-sub (no usadas en nav, sí en mobile) ── */
.apt-nav-sub {
  display: block;
  padding: 10px 0;
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-sm);
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--apt-ink);
}
.apt-nav-sub::after { display: none; }
.apt-megamenu .apt-nav-item:hover > .apt-nav-sub { color: var(--apt-terracotta); }
.apt-megamenu .apt-nav-item.has-children > .apt-submenu {
  display: none; padding: 2px 0 8px 12px; border-left: 1px solid var(--apt-line);
}
.apt-megamenu .apt-nav-item.has-children.sub-open > .apt-submenu { display: block; }
.apt-megamenu .apt-submenu .apt-nav-list { display: block; height: auto; }
.apt-megamenu .apt-submenu .apt-nav-item { display: block; padding: 0; }
.apt-megamenu .apt-submenu .apt-nav-sub {
  padding: 6px 0 6px 6px;
  font-size: var(--apt-fs-2xs);
  color: var(--apt-muted);
  font-weight: 400;
  justify-content: flex-start;
}
.apt-megamenu .apt-submenu .apt-nav-item:hover > .apt-nav-sub {
  color: var(--apt-terracotta);
  padding-left: 14px;
  border-bottom: none;
}
/* Si nivel 3 tiene hijos → mismo comportamiento */
.apt-megamenu .apt-submenu .has-children > .apt-submenu {
  padding-left: 8px;
}
.apt-megamenu .apt-submenu .has-children > .apt-nav-sub::after {
  content: '∨';
  display: inline;
  position: static; width: auto; height: auto;
  background: none;
  font-size: 0.6rem;
  opacity: 0.35;
}
/* ── Acciones (columna 3) ── */
.apt-header__actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 20px;
  flex-wrap: nowrap;
}
.apt-header__actions > div,
.apt-header__actions > span { display: flex; align-items: center; }
#_desktop_language_selector .expand-more,
#_desktop_language_selector a,
#_desktop_language_selector button {
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-2xs);
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--apt-ink);
  background: none; border: none;
  cursor: pointer; padding: 0;
}
#_desktop_user_info a,
#_desktop_user_info .user-info a {
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-2xs);
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--apt-ink);
  display: flex; align-items: center; gap: 5px;
}
.blockcart > a,
#_desktop_cart > a,
.blockcart .header a {
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-2xs);
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--apt-ink);
  display: flex; align-items: center; gap: 5px;
}
.blockcart .header { background: transparent; display: flex; }
.blockcart .cart-products-count {
  display: inline-flex; align-items: center; justify-content: center;
  width: 18px; height: 18px;
  background: var(--apt-terracotta);
  color: var(--apt-white);
  border-radius: 50%;
  font-size: var(--apt-fs-3xs); font-weight: 500;
  letter-spacing: 0; margin-left: 2px;
}
#_desktop_currency_selector { display: none; }

/* ── Menú móvil ── */
.apt-mobile-menu { background: var(--apt-cream); border-top: 1px solid var(--apt-line); }
.apt-mobile-menu .apt-nav-list { flex-direction: column; gap: 0; height: auto; }
.apt-mobile-menu .apt-nav-link { width: 100%; padding: 14px var(--apt-gut); border-bottom: 1px solid var(--apt-line); font-size: var(--apt-fs-sm); }
.apt-mobile-menu .apt-megamenu,
.apt-mobile-menu .apt-submenu { position: static; visibility: visible; opacity: 1; transform: none; pointer-events: auto; box-shadow: none; padding: 0; border: none; display: none; }
.apt-mobile-menu .apt-nav-toggle { display: flex; }

/* =========================================================================
   HOME — layout-home.tpl ya elimina el .container de Bootstrap.
   Aquí solo limpiamos restos de padding y garantizamos ancho completo.
   ========================================================================= */
.apt-wrapper-home,
.apt-wrapper-home #content-wrapper,
.apt-wrapper-home .apt-home-wrapper,
.apt-wrapper-home #content {
  width: 100%;
  max-width: none;
  padding: 0;
  margin: 0;
}
html, body {
  max-width: 100%;
}
/* El clip horizontal va SOLO en body: poner overflow en <html> (documentElement)
   mueve el scroller raíz y rompe el scroll anchoring del navegador → con el header
   sticky, en móvil el scroll hacia arriba "saltaba" al top de golpe. Con html como
   scroller limpio (overflow visible) el sticky y el anclaje de scroll funcionan bien. */
body {
  overflow-x: clip;
}

/* ── Header transparente sobre el hero — clase añadida por JS ── */
#header.apt-header--hero {
  position: fixed;
  top: 0; left: 0; right: 0;
  background: transparent;
  border-bottom: none;
  box-shadow: none !important;
}
#header.apt-header--hero .apt-logo-text,
#header.apt-header--hero .apt-nav-link,
#header.apt-header--hero .apt-header__left a,
#header.apt-header--hero #_desktop_language_selector a,
#header.apt-header--hero #_desktop_language_selector button,
#header.apt-header--hero #_desktop_language_selector .expand-more,
#header.apt-header--hero .apt-lang-current,
#header.apt-header--hero .apt-lang-toggle,
#header.apt-header--hero .apt-header__contact-link { color: var(--apt-white) !important; }
#header.apt-header--hero .apt-lang-toggle:hover,
#header.apt-header--hero .apt-lang-toggle:focus-visible,
#header.apt-header--hero .apt-lang-selector.is-open .apt-lang-toggle,
#header.apt-header--hero .apt-header__contact-link:hover,
#header.apt-header--hero .apt-header__contact-link:focus-visible {
  color: var(--apt-terracotta) !important;
}
#header.apt-header--hero .apt-hamburger span { background: var(--apt-white) !important; }
#header.apt-header--hero img.logo { filter: brightness(0) invert(1); }

/* ── Sólido al hacer scroll — clase añadida por JS ── */
#header.apt-header--solid {
  background: var(--apt-cream) !important;
  border-bottom: 1px solid var(--apt-line) !important;
  box-shadow: 0 2px 24px rgba(33,28,23,0.07);
}
#header.apt-header--solid .apt-logo-text,
#header.apt-header--solid .apt-nav-link,
#header.apt-header--solid .apt-header__left a,
#header.apt-header--solid #_desktop_language_selector a,
#header.apt-header--solid #_desktop_language_selector button,
#header.apt-header--solid #_desktop_language_selector .expand-more,
#header.apt-header--solid .apt-lang-current,
#header.apt-header--solid .apt-lang-toggle,
#header.apt-header--solid .apt-header__contact-link { color: var(--apt-ink) !important; }
#header.apt-header--solid .apt-lang-toggle:hover,
#header.apt-header--solid .apt-lang-toggle:focus-visible,
#header.apt-header--solid .apt-lang-selector.is-open .apt-lang-toggle,
#header.apt-header--solid .apt-header__contact-link:hover,
#header.apt-header--solid .apt-header__contact-link:focus-visible {
  color: var(--apt-terracotta) !important;
}
#header.apt-header--solid .apt-hamburger span { background: var(--apt-ink) !important; }
#header.apt-header--solid img.logo { filter: none; }

/* El panel del selector de idioma SIEMPRE va sobre fondo crema, tambien con el header
   transparente sobre el hero. Hay que sacarlo de la regla que pinta en blanco los enlaces
   de la columna izquierda (#header.apt-header--hero .apt-header__left a), que si no deja
   las opciones en blanco sobre crema: ilegibles.
   Especificidad: aquella es (1,2,1); esta (1,3,0) -> gana. */
#header .apt-lang-selector .apt-lang-dropdown {
  list-style: none;
}

#header .apt-lang-selector .apt-lang-dropdown li {
  list-style: none;
  margin: 0;
  padding: 0;
}

/* El padding hay que reponerlo aqui: `.apt-header__left a { padding: 0; display: flex }`
   es (0,1,1) y gana a `.apt-lang-option` (0,1,0), asi que la opcion NO seleccionada (un <a>)
   se quedaba pegada al borde, mientras la activa (un <span>) si conservaba su padding. */
#header .apt-lang-selector .apt-lang-dropdown .apt-lang-option {
  display: block;
  width: 100%;
  box-sizing: border-box;
  padding: 8px 16px;
  text-align: left;
  color: var(--apt-ink) !important;
}

#header .apt-lang-selector .apt-lang-dropdown .apt-lang-option--active {
  color: var(--apt-muted) !important;
  opacity: 1;
}

#header .apt-lang-selector .apt-lang-dropdown .apt-lang-option:not(.apt-lang-option--active):hover,
#header .apt-lang-selector .apt-lang-dropdown .apt-lang-option:not(.apt-lang-option--active):focus-visible {
  color: var(--apt-terracotta) !important;
  background: var(--apt-cream-deep);
}



/* =========================================================================
   HERO (home) — contenedor del slider
   ========================================================================= */
/* Hero estático de fallback — siempre presente, tapado por el hero dinámico */
.apt-hero--fallback {
  /* Visible por defecto */
}
/* Cuando el slider dinámico (.apt-banner) le precede inmediatamente,
   el fallback se oculta porque el dinámico ya ocupa toda la pantalla */
.apt-banner + .apt-hero--fallback {
  display: none;
}

/* Hero estático (fallback cuando no hay slider dinámico configurado) */
.apt-hero--static {
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  background-color: #3d2e24;
  background-image:
    linear-gradient(180deg, rgba(20,14,10,0.5) 0%, rgba(20,14,10,0.2) 50%, rgba(20,14,10,0.65) 100%),
    url('../img/hero.jpg');
  background-size: cover;
  background-position: center 30%;
}
.apt-hero--static .apt-hero__inner { animation: aptFadeUp 1.3s ease both; }

.apt-hero {
  position: relative;          /* bloque de posicionamiento para los slides */
  width: 100%;
  height: 96vh;
  min-height: 500px;
  overflow: hidden;
  background-color: #3d2e24;   /* fallback mientras cargan las imágenes */
}

/* Textos del slide (usados también cuando NO hay slider dinámico) */
.apt-hero__inner {
  max-width: 760px;
  padding: 0 24px;
  animation: aptFadeUp 1.3s cubic-bezier(0.22, 0.61, 0.36, 1) both;
  position: relative; z-index: 2;
  text-align: center;
}
.apt-hero__title {
  font-family: var(--apt-display);
  font-weight: 300;
  color: var(--apt-white);
  font-size: var(--apt-fs-d1);
  letter-spacing: 0.26em;
  line-height: 1.05;
  margin: 0 0 0.6rem;
  text-indent: 0.26em;
  white-space: nowrap;
  max-width: 100%;
}
.apt-hero__subtitle {
  font-family: var(--apt-sans);
  font-weight: 400;
  font-size: var(--apt-fs-base);
  letter-spacing: 0.5em;
  text-transform: uppercase;
  text-indent: 0.5em;
  margin: 0 0 2.6rem;
  opacity: 0.92;
}
.apt-hero__cta {
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-md);
  font-weight: 400;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  text-indent: 0.28em;
  display: inline-block;
  width: fit-content;
  max-width: 100%;
  margin: 0 auto;
  padding: 0 0 10px;
  border: 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.72);
  background: transparent;
  box-shadow: none;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  text-shadow: 0 1px 12px rgba(0, 0, 0, 0.35);
  transition: color var(--apt-trans), border-color var(--apt-trans), opacity var(--apt-trans);
}

.apt-hero a.apt-hero__cta,
.apt-hero a.apt-hero__cta:link,
.apt-hero a.apt-hero__cta:visited,
.apt-hero a.apt-hero__cta:hover,
.apt-hero a.apt-hero__cta:focus,
.apt-hero a.apt-hero__cta:active {
  color: #fff !important;
  text-decoration: none;
}

.apt-hero a.apt-hero__cta:hover,
.apt-hero a.apt-hero__cta:focus {
  color: #fff !important;
  background: transparent;
  border-bottom-color: #fff;
  opacity: 0.92;
  transform: none;
}

/* Nombre de la tienda en el hero (siempre visible) */
.apt-hero__brand {
  font-family: var(--apt-display);
  font-weight: 300;
  color: var(--apt-white);
  font-size: clamp(1.8rem, 9vw, 7.5rem);
  letter-spacing: 0.32em;
  line-height: 1;
  margin: 0 0 0.35em;
}
.apt-hero__tagline {
  font-family: var(--apt-sans);
  font-weight: 400;
  font-size: var(--apt-fs-md);
  letter-spacing: 0.52em;
  text-indent: 0.52em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.88);
  margin: 0 0 2rem;
}
.apt-hero__desc {
  font-family: var(--apt-display);
  font-style: italic;
  font-size: var(--apt-fs-d6);
  color: rgba(255,255,255,0.82);
  margin: 0 0 2rem;
  max-width: 480px;
}
.apt-hero__scroll {
  position: absolute;
  bottom: 36px; left: 50%; transform: translateX(-50%);
  width: 1px; height: 56px;
  background: rgba(255,255,255,0.6);
  z-index: 10;
}

@keyframes aptFadeUp {
  from { opacity: 0; transform: translateY(28px); }
  to   { opacity: 1; transform: translateY(0); }
}

/* =========================================================================
   SLIDES del carrusel (ps_imageslider override → slider.tpl)
   Cada slide ocupa todo el contenedor con position:absolute + inset:0;
   background-size:cover garantiza que la imagen cubra sin importar
   las proporciones de la fotografía subida desde el back office.
   ========================================================================= */
.apt-banner {
  display: block;
  width: 100%;
  height: 96vh;
  min-height: 500px;
  position: relative;
  overflow: hidden;
}

.apt-slide {
  /* Ocupa exactamente el área del contenedor */
  position: absolute;
  inset: 0;                    /* top:0; right:0; bottom:0; left:0 */
  display: none;

  /* La imagen CUBRE siempre, sin importar tamaño ni proporción */
  background-size: cover;
  background-position: center center;
  background-repeat: no-repeat;
  background-color: #3d2e24;

  /* Centrar el texto verticalmente */
  align-items: center;
  justify-content: center;
  text-align: center;
  color: var(--apt-white);
}

/* Overlay oscuro para legibilidad del texto */
.apt-slide::before {
  content: '';
  position: absolute; inset: 0;
  background: linear-gradient(
    180deg,
    rgba(20,14,10,0.45) 0%,
    rgba(20,14,10,0.10) 45%,
    rgba(20,14,10,0.55) 100%
  );
  z-index: 1;
}

/* Slide activo: visible y flex para centrar contenido */
.apt-slide.active {
  display: flex;
  animation: aptFadeSlide 0.9s cubic-bezier(0.22, 0.61, 0.36, 1) both;
}

@keyframes aptFadeSlide {
  from { opacity: 0; }
  to   { opacity: 1; }
}

.apt-slide .apt-hero__inner { position: relative; z-index: 2; width: 100%; max-width: 100%; }

.apt-hero__overlay {
  position: absolute;
  inset: 0;
  z-index: 20;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  pointer-events: none;
  width: 100%;
  max-width: 100%;
  padding: 0 24px;
  box-sizing: border-box;
  text-align: center;
}
.apt-hero__overlay .apt-hero__cta { pointer-events: auto; }



/* Controles del slider */
.apt-slide-prev,
.apt-slide-next {
  position: absolute;
  top: 50%; transform: translateY(-50%);
  z-index: 10;
  background: none;
  border: none;
  color: rgba(255,255,255,0.7);
  font-size: 2.4rem;
  line-height: 1;
  cursor: pointer;
  padding: 12px;
  transition: color var(--apt-trans);
}
.apt-slide-prev { left: 24px; }
.apt-slide-next { right: 24px; }
.apt-slide-prev:hover,
.apt-slide-next:hover { color: var(--apt-white); }

/* Puntos de navegación */
.apt-slide-dots {
  position: absolute;
  bottom: 24px; left: 50%; transform: translateX(-50%);
  display: flex; gap: 10px;
  z-index: 10;
}
.apt-slide-dot {
  width: 6px; height: 6px;
  border-radius: 50%;
  background: rgba(255,255,255,0.45);
  border: none;
  cursor: pointer;
  padding: 0;
  transition: background var(--apt-trans), transform var(--apt-trans);
}
.apt-slide-dot.active {
  background: var(--apt-white);
  transform: scale(1.4);
}



/* =========================================================================
   TARJETAS DE CATEGORÍA (Invitadas / Novia / Personaliza)
   ========================================================================= */
.apt-cats {
  display: grid;
  grid-template-columns: repeat(var(--apt-cols, 3), 1fr);
  gap: 20px;
  width: 100%;
  margin: var(--apt-gut) 0;
  padding: 0 var(--apt-gut);
  box-sizing: border-box;
}
.apt-cat {
  position: relative;
  aspect-ratio: 2 / 3;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  color: var(--apt-white);
}
.apt-cat__img {
  position: absolute; inset: 0;
  background-size: cover;
  background-position: center;
  transition: transform 1.1s cubic-bezier(0.22,0.61,0.36,1);
}
.apt-cat::after {
  content: '';
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(33,28,23,0.15), rgba(33,28,23,0.55));
}
.apt-cat:hover .apt-cat__img { transform: scale(1.06); }
.apt-cat__body { position: relative; z-index: 2; padding: 24px; display: flex; flex-direction: column; align-items: center; }
.apt-cat__title {
  display: block;
  font-family: var(--apt-display);
  font-weight: 700;
  color: var(--apt-white);
  font-size: var(--apt-fs-d3);
  line-height: 1.1;
  letter-spacing: 0.18em;
  text-indent: 0.18em;
  margin: 0 0 1.4rem;
}
.apt-cat__link {
  display: block;
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-sm);
  font-weight: 700;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: var(--apt-white);
  position: relative;
  padding-bottom: 14px;
}
.apt-cat__link::after {
  content: '';
  position: absolute; left: 50%; bottom: 0;
  width: 26px; height: 1px;
  background: var(--apt-white);
  transform: translateX(-50%);
  transition: width var(--apt-trans);
}
.apt-cat:hover .apt-cat__link::after { width: 60px; }

/* =========================================================================
   TÍTULOS DE SECCIÓN
   ========================================================================= */
.apt-section { padding: 70px 0; }
.apt-section--cream { background: var(--apt-cream-soft); }
.apt-section-title {
  text-align: center;
  font-family: var(--apt-display);
  font-weight: 400;
  font-size: var(--apt-fs-d2);
  letter-spacing: 0.26em;
  text-transform: uppercase;
  text-indent: 0.26em;
  margin: 0 0 12px;
  padding: 0 var(--apt-gut);
}
.apt-section-rule {
  width: 56px; height: 1px;
  background: var(--apt-gold);
  margin: 0 auto 44px;
}

/* =========================================================================
   Legacy .featured-products (carrito / classic) — colección vía apt_collection
   ========================================================================= */
.featured-products {
  background: var(--apt-cream-soft);
  padding: 70px 0;
}
.featured-products::before {
  content: 'NUEVA COLECCIÓN';
  display: block;
  text-align: center;
  font-family: var(--apt-display);
  font-weight: 400;
  font-size: var(--apt-fs-d2);
  letter-spacing: 0.26em;
  text-indent: 0.26em;
  text-transform: uppercase;
  color: var(--apt-ink);
  margin-bottom: 12px;
}
.featured-products::after {
  content: '';
  display: block;
  width: 56px;
  height: 1px;
  background: var(--apt-gold);
  margin: 0 auto 44px;
}

/* =========================================================================
   Rejilla de producto (miniatura compartida)
   ========================================================================= */
.featured-products .products,
.apt-collection .products {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 20px;
  margin: 0;
}
.products .product-miniature,
.product-miniature.js-product-miniature,
.product-miniature.apt-col-item {
  background: transparent;
  text-align: center;
}

/* Tarjeta unificada: listados + carrusel apt_collection */
.product-miniature.apt-col-item,
.apt-col-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 100%;
  min-width: 0;
}
.product-miniature.apt-col-item .thumbnail-container,
.apt-col-item .thumbnail-container {
  width: 100%;
  margin-bottom: 14px;
  position: relative;
  height: auto !important;
  overflow: hidden;
  background: transparent !important;
}
.product-miniature.apt-col-item .thumbnail-container .thumbnail,
.product-miniature.apt-col-item .product-thumbnail,
.apt-col-item .thumbnail-container .thumbnail {
  display: block;
  width: 100%;
  aspect-ratio: 3 / 4;
  overflow: hidden;
  position: relative;
}
.product-miniature.apt-col-item .thumbnail-container .thumbnail img,
.product-miniature.apt-col-item .product-thumbnail img,
.apt-col-item .thumbnail-container .thumbnail img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  max-width: none;
  margin: 0;
  transition: transform 1s cubic-bezier(0.22, 0.61, 0.36, 1);
}

/* Favoritos — esquina superior derecha de la miniatura (categoría, crosssell, colección) */
:is(#category, #product) .product-miniature .thumbnail-container,
.apt-col-carousel .product-miniature .thumbnail-container,
.apt-section .apt-col-track .apt-col-item .thumbnail-container {
  position: relative !important;
}

:is(#category, #product) .product-miniature .thumbnail-container > .wishlist-button,
:is(#category, #product) .product-miniature .thumbnail-container > .wishlist-button-add,
.apt-col-carousel .product-miniature .thumbnail-container > .wishlist-button,
.apt-col-carousel .product-miniature .thumbnail-container > .wishlist-button-add,
.apt-section .apt-col-item .thumbnail-container > .wishlist-button,
.apt-section .apt-col-item .thumbnail-container > .wishlist-button-add {
  position: absolute !important;
  top: 10px !important;
  right: 10px !important;
  left: auto !important;
  bottom: auto !important;
  z-index: 5;
  margin: 0;
  padding: 0;
  line-height: 0;
  transform: none;
  pointer-events: auto;
}

.product-miniature .thumbnail-container > .product-thumbnail {
  position: relative;
  z-index: 1;
}

.product-miniature .thumbnail-container > .wishlist-button .wishlist-button-add {
  pointer-events: auto;
}

.product-miniature.apt-col-item:hover .thumbnail img,
.apt-col-item:hover .thumbnail img { transform: scale(1.05); }

.product-miniature.apt-col-item .product-title,
.product-miniature.apt-col-item .product-title a,
.apt-col-item .product-title,
.apt-col-item .product-title a {
  font-family: var(--apt-sans);
  font-weight: 600;
  font-size: var(--apt-fs-md);
  line-height: 1.5;
  /* 0.12em y no 0.2em: a 15px en mayúsculas, un tracking mayor obliga a
     una tercera línea en casi todos los nombres largos del catálogo. */
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--apt-ink);
  margin: 0 0 6px;
  width: 100%;
  text-align: center;
  text-decoration: none;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
}
/* Altura fija de 2 líneas: sin esto las tarjetas de la fila miden distinto
   y los precios no quedan alineados entre sí. */
.product-miniature.apt-col-item .product-title,
.apt-col-item .product-title {
  min-height: 3em;
}
.product-miniature.apt-col-item .product-price-and-shipping,
.product-miniature.apt-col-item .price,
.apt-col-item .product-price-and-shipping,
.apt-col-item .price {
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-base);
  font-weight: 400;
  color: var(--apt-ink-soft);
  letter-spacing: 0.04em;
}
.product-miniature.apt-col-item .regular-price { color: var(--apt-muted); }

.product-miniature.apt-col-item .product-flags {
  position: absolute;
  top: 8px;
  left: 8px;
  z-index: 2;
  margin: 0;
  padding: 0;
  list-style: none;
  text-align: left;
}

/* Legacy: miniaturas sin apt-col-item (compatibilidad) */
.product-miniature .thumbnail-container,
.product-miniature .thumbnail {
  display: block;
  overflow: hidden;
  margin-bottom: 16px;
}
.product-miniature:not(.apt-col-item) .thumbnail img {
  width: 100%;
  aspect-ratio: 3 / 4;
  object-fit: cover;
  transition: transform 1s cubic-bezier(0.22,0.61,0.36,1);
}
.product-miniature:not(.apt-col-item):hover .thumbnail img { transform: scale(1.05); }
.product-miniature:not(.apt-col-item) .product-title,
.product-miniature:not(.apt-col-item) .product-title a {
  font-family: var(--apt-sans);
  font-weight: 400;
  font-size: var(--apt-fs-md);
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--apt-ink);
  margin: 0 0 6px;
}
.product-miniature:not(.apt-col-item) .product-price-and-shipping,
.product-miniature:not(.apt-col-item) .price {
  font-family: var(--apt-display);
  font-size: var(--apt-fs-base);
  font-weight: 500;
  color: var(--apt-ink-soft);
  letter-spacing: 0.04em;
}
.product-miniature .discount-percentage,
.product-flags .discount-product { background: var(--apt-terracotta); }
.product-flag {
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-3xs);
  font-weight: 500;
  letter-spacing: 0.11em;
  line-height: 1.25;
  text-transform: uppercase;
  background: var(--apt-ink);
  min-width: 0 !important;
  min-height: 0 !important;
  padding: 5px 8px;
  border-radius: 0;
}
.product-flag.on-sale,
.product-flag.discount {
  background: var(--apt-terracotta);
}
.product-flag.new { background: var(--apt-gold); }
.product-miniature.apt-col-item .product-flags .product-flag,
.apt-col-item .product-flags .product-flag {
  font-size: var(--apt-fs-3xs);
  letter-spacing: 0.1em;
  padding: 5px 7px;
}
.product-miniature.apt-col-item .product-flags {
  top: 6px;
  left: 6px;
}

/* Separacion entre la barra «En oferta» y los chips que cuelgan de ella
   (descuento, agotado).

   La barra ocupa todo el ancho y los chips van debajo, a la izquierda. Con el
   margen de 10px que heredaban de classic los dos bloques marrones quedaban casi
   pegados y se leian como una sola pegatina colgada del rotulo. El espaciado se
   controla aqui —gap en la lista, margen extra bajo la barra— en vez de dejarlo
   en manos de classic. */
.product-miniature.apt-col-item .product-flags,
.apt-col-item .product-flags {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 10px;
}

.product-miniature.apt-col-item .product-flags .product-flag,
.apt-col-item .product-flags .product-flag { margin: 0; }

/* El rotulo va a ancho completo y con el texto centrado, pero el boton de
   favoritos flota encima por la derecha (top 10 / right 10, circulo de ~40px):
   el final de «¡EN OFERTA!» quedaba debajo del corazon. Se reserva su hueco con
   padding, asi el texto se centra en lo que queda libre y nunca lo pisa. */
.product-miniature.apt-col-item .product-flags .product-flag.on-sale,
.apt-col-item .product-flags .product-flag.on-sale {
  width: 100%;
  box-sizing: border-box;
  padding-right: 52px;
  margin-bottom: 8px;
}

/* ── Carrusel de colección (apt_homecollection) ── */
.apt-col-carousel {
  position: relative;
  width: 100%;
  padding: 0 var(--apt-gut);
  box-sizing: border-box;
}
.apt-col-viewport {
  overflow: hidden;
}
.apt-col-track {
  display: flex;
  align-items: flex-start;
  gap: 20px;
  transition: transform 0.5s cubic-bezier(0.22, 0.61, 0.36, 1);
  will-change: transform;
}
.apt-col-carousel--centered .apt-col-track {
  justify-content: center;
}
.apt-col-carousel .apt-arrow[hidden] {
  display: none !important;
}
.apt-col-track .apt-col-item {
  flex: 0 0 calc((100% - (var(--apt-col-slides, 4) - 1) * 20px) / var(--apt-col-slides, 4));
  min-width: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
}
.apt-col-item .thumbnail-container {
  width: 100%;
  margin-bottom: 14px;
  position: relative;
}
.apt-col-item .thumbnail-container .thumbnail {
  display: block;
  width: 100%;
  aspect-ratio: 3 / 4;
  overflow: hidden;
  position: relative;
}
.apt-col-item .thumbnail-container .thumbnail img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 1s cubic-bezier(0.22, 0.61, 0.36, 1);
}
.apt-col-item:hover .thumbnail img { transform: scale(1.05); }

/* El título y el precio de .apt-col-item se definen una sola vez, más arriba
   («Tarjeta unificada»). Aquí había una copia literal que reponía
   letter-spacing: 0.2em y width: 80% y rompía el clamp de 2 líneas. */

/* Flechas del carrusel de productos */
.apt-collection { position: relative; }
.apt-col-carousel .apt-arrow { background: none; border: none; padding: 0; transform: translateY(-50%); }
.apt-arrow {
  position: absolute; top: 50%;
  transform: translateY(-50%);
  width: 56px; height: 56px;
  display: flex; align-items: center; justify-content: center;
  color: var(--apt-muted);
  font-size: 2.8rem;
  cursor: pointer;
  transition: color var(--apt-trans);
  user-select: none;
  z-index: 2;
}
.apt-arrow:hover { color: var(--apt-ink); }
.apt-col-carousel .apt-arrow--prev { left: 4px; }
.apt-col-carousel .apt-arrow--next { right: 4px; }
.apt-arrow--prev { left: -8px; }
.apt-arrow--next { right: -8px; }

/* =========================================================================
   OPINIONES DE CLIENTES
   ========================================================================= */
.apt-reviews {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0;
  width: 100%;
  padding: 0 var(--apt-gut);
  box-sizing: border-box;
}
.apt-review {
  text-align: center;
  padding: 0 36px;
  border-left: 1px solid var(--apt-line);
}
.apt-review:first-child { border-left: none; }
.apt-review__quote {
  font-family: var(--apt-display);
  font-style: italic;
  font-size: var(--apt-fs-xl);
  line-height: 1.55;
  color: var(--apt-ink-soft);
  margin: 0 0 22px;
  position: relative;
}
.apt-review__quote::before {
  content: '\201C';
  display: block;
  font-family: var(--apt-display);
  font-size: 3rem;
  line-height: 0.4;
  color: var(--apt-gold);
  margin-bottom: 18px;
}
.apt-review__stars { color: var(--apt-gold); letter-spacing: 0.3em; font-size: var(--apt-fs-sm); margin-bottom: 12px; }
.apt-review__author {
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-2xs);
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: var(--apt-muted);
}

/* =========================================================================
   BANDA ATELIER
   ========================================================================= */
.apt-atelier {
  display: grid;
  grid-template-columns: 1fr 1.4fr;
  align-items: center;
  background: var(--apt-cream-soft);
}
.apt-atelier__text { padding: 0 clamp(24px, 6vw, 90px); }
.apt-atelier__eyebrow {
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-2xs);
  letter-spacing: 0.32em;
  text-transform: uppercase;
  color: var(--apt-muted);
  margin: 0 0 20px;
}
.apt-atelier__title {
  font-family: var(--apt-display);
  font-weight: 400;
  font-size: var(--apt-fs-d2);
  line-height: 1.15;
  margin: 0 0 22px;
}
.apt-atelier__copy {
  color: var(--apt-ink-soft);
  font-size: var(--apt-fs-base);
  line-height: 1.8;
  max-width: 340px;
  margin: 0 0 32px;
}
.apt-atelier__img {
  min-height: 420px;
  background-image: url('../img/atelier.jpg');
  background-size: cover;
  background-position: center;
}

/* =========================================================================
   FRANJA DE SERVICIOS
   ========================================================================= */
.apt-features {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 24px;
  width: 100%;
  box-sizing: border-box;
  padding: 60px var(--apt-gut);
  text-align: center;
}
.apt-feature__icon {
  font-size: 1.5rem;
  color: var(--apt-ink);
  margin-bottom: 16px;
  display: inline-flex;
}
.apt-feature__title {
  font-family: var(--apt-sans);
  font-weight: 400;
  font-size: var(--apt-fs-xs);
  letter-spacing: 0.2em;
  text-transform: uppercase;
  margin: 0 0 8px;
}
.apt-feature__copy {
  color: var(--apt-muted);
  font-size: var(--apt-fs-md);
  line-height: 1.7;
}

/* =========================================================================
   GALERÍA INFERIOR
   ========================================================================= */
.apt-gallery {
  display: grid;
  grid-template-columns: repeat(var(--apt-gallery-cols, 7), 1fr);
  gap: 20px;
  width: 100%;
  padding: 0 var(--apt-gut);
  box-sizing: border-box;
}
.apt-gallery__cell {
  aspect-ratio: 1 / 1;
  background-size: cover;
  background-position: center;
  transition: opacity var(--apt-trans);
}
.apt-gallery__cell:hover { opacity: 0.86; }

/* =========================================================================
   FOOTER
   ========================================================================= */
#footer {
  background: var(--apt-cream);
  padding: 0;
  margin: 0;
}

.apt-footer {
  background: var(--apt-cream);
  border-top: 0;
}

.apt-footer__inner {
  width: 100%;
  max-width: none;
  margin: 0 auto;
  padding: clamp(56px, 7vw, 80px) var(--apt-gut) clamp(28px, 4vw, 40px);
  box-sizing: border-box;
}

.apt-footer__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(32px, 5vw, 72px);
  align-items: start;
}

.apt-footer__brand {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 10px;
}

.apt-footer__logo {
  font-family: var(--apt-display);
  font-size: var(--apt-fs-d4);
  font-weight: 400;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  color: var(--apt-ink);
  text-decoration: none;
  line-height: 1.1;
}

.apt-footer__logo:hover {
  color: var(--apt-terracotta);
}

.apt-footer__tagline {
  margin: 0;
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-3xs);
  font-weight: 400;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  color: var(--apt-muted);
}

.apt-footer__social {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 14px;
  margin-top: 8px;
}

.apt-footer__social a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: auto;
  height: auto;
  padding: 0;
  border: 0;
  border-radius: 0;
  margin: 0;
  color: var(--apt-ink-soft);
  text-decoration: none;
  transition: color var(--apt-trans);
}

.apt-footer__social a:hover {
  color: var(--apt-terracotta);
  background: transparent;
}

.apt-footer__social .material-icons {
  font-size: 18px;
  line-height: 1;
}

.apt-footer__social-svg {
  display: block;
  width: 18px;
  height: 18px;
}

.apt-footer__nav {
  min-width: 0;
}

.apt-footer__links {
  margin: 0;
  padding: 0;
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: clamp(10px, 1.4vw, 14px);
}

.apt-footer__links a,
.apt-footer__links .apt-footer__link-text {
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-xs);
  font-weight: 400;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--apt-muted);
  text-decoration: none;
  transition: color var(--apt-trans);
}

.apt-footer__links a:hover {
  color: var(--apt-terracotta);
}

.apt-footer__copy {
  margin: clamp(40px, 5vw, 56px) 0 0;
  padding-top: clamp(24px, 3vw, 32px);
  border-top: 1px solid var(--apt-line);
  text-align: center;
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-3xs);
  font-weight: 400;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--apt-muted);
}

.apt-footer__hooks {
  display: none !important;
}

/* Portal de modales blockwishlist — no usar display:none (Vue toggles .show) */
.apt-wishlist-portal {
  display: block;
}

.apt-wishlist-portal .wishlist-modal {
  z-index: 1051;
}

.apt-wishlist-portal .wishlist-modal.show + .modal-backdrop,
.apt-wishlist-portal .modal-backdrop.in {
  z-index: 1050;
}

/* Legacy footer modules (ocultos) */
.footer-container,
#footer .links,
#footer .block-social,
#footer .block-contact {
  display: none !important;
}

@media (max-width: 991px) {
  .apt-footer__grid {
    grid-template-columns: 1fr 1fr;
    gap: clamp(28px, 4vw, 40px);
  }

  .apt-footer__brand {
    grid-column: 1 / -1;
    align-items: center;
    text-align: center;
  }

  .apt-footer__logo {
    text-indent: 0.28em;
  }

  .apt-footer__social {
    justify-content: center;
  }
}

@media (max-width: 640px) {
  .apt-footer__grid {
    grid-template-columns: 1fr;
    gap: 28px;
  }

  .apt-footer__brand {
    align-items: center;
    text-align: center;
  }

  .apt-footer__nav {
    text-align: center;
  }

  .apt-footer__links {
    align-items: center;
  }
}

/* =========================================================================
   PÁGINAS INTERIORES — coherencia de marca
   ========================================================================= */
.page-header h1, #main .page-title, .h1.page-title {
  font-family: var(--apt-display);
  font-weight: 400;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  text-align: center;
}
.product-information .product-name,
.product-detail-name {
  font-family: var(--apt-display);
  font-weight: 400;
  letter-spacing: 0.06em;
}
.current-price .price {
  font-family: var(--apt-display);
  font-weight: 500;
}

/* =========================================================================
   VOLVER ARRIBA — botón flotante
   ========================================================================= */
.apt-back-to-top {
  position: fixed;
  right: var(--apt-gut);
  bottom: var(--apt-gut);
  z-index: 700;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  margin: 0;
  padding: 0;
  border: 1px solid var(--apt-ink);
  border-radius: 0;
  background: var(--apt-ink);
  color: var(--apt-cream);
  font: inherit;
  line-height: 1;
  cursor: pointer;
  appearance: none;
  -webkit-appearance: none;
  text-decoration: none;
  box-shadow: 0 8px 24px rgba(33, 28, 23, 0.14);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: background var(--apt-trans), color var(--apt-trans), border-color var(--apt-trans), transform var(--apt-trans), opacity var(--apt-trans), visibility var(--apt-trans);
}

.apt-back-to-top.is-visible,
.apt-back-to-top.is-visible[hidden] {
  display: inline-flex !important;
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}

.apt-back-to-top:hover,
.apt-back-to-top:focus {
  background: var(--apt-cream);
  color: var(--apt-ink);
  border-color: var(--apt-ink);
  transform: translateY(-2px);
}

.apt-back-to-top:focus-visible {
  outline: 2px solid var(--apt-terracotta);
  outline-offset: 2px;
}
.apt-back-to-top__icon {
  position: relative;
  display: block;
  width: 14px;
  height: 14px;
}
.apt-back-to-top__icon::before {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  width: 10px;
  height: 10px;
  border-top: 1.5px solid currentColor;
  border-right: 1.5px solid currentColor;
  transform: translate(-50%, -30%) rotate(-45deg);
}
:is(#category, #search, #manufacturer, #best-sales, #prices-drop, #new-products) .apt-back-to-top {
  right: var(--apt-cat-pad);
  bottom: var(--apt-cat-pad);
}
@media (max-width: 991px) {
  .apt-back-to-top {
    width: 42px;
    height: 42px;
    bottom: max(var(--apt-gut), env(safe-area-inset-bottom));
    right: var(--apt-gut);
  }
  #category .apt-back-to-top {
    right: var(--apt-cat-pad);
    bottom: max(var(--apt-cat-pad), env(safe-area-inset-bottom));
  }
}

/* =========================================================================
   CATEGORÍA — tokens de layout (ancho completo)
   ========================================================================= */
:is(#category, #search, #manufacturer, #best-sales, #prices-drop, #new-products) {
  --apt-cat-pad: var(--apt-gut);
  --apt-cat-sidebar-pad-y: clamp(20px, 2.4vw, 28px);
  --apt-cat-sidebar-pad-x: var(--apt-cat-pad);
  --apt-cat-sidebar-w: clamp(260px, 22vw, 320px);
  --apt-cat-block-gap: 24px;
  --apt-cat-toolbar-gap: clamp(18px, 2.2vw, 26px);
}

/* Anular contenedor Bootstrap en categoría (fallback si el layout antiguo persiste en caché) */
:is(#category, #search, #manufacturer, #best-sales, #prices-drop, #new-products) #wrapper > .container,
:is(#category, #search, #manufacturer, #best-sales, #prices-drop, #new-products) #wrapper .container {
  max-width: 100% !important;
  width: 100% !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}
:is(#category, #search, #manufacturer, #best-sales, #prices-drop, #new-products) #wrapper > .container > .row {
  display: grid !important;
  grid-template-columns: var(--apt-cat-sidebar-w) minmax(0, 1fr);
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 !important;
}
:is(#category, #search, #manufacturer, #best-sales, #prices-drop, #new-products) #left-column,
:is(#category, #search, #manufacturer, #best-sales, #prices-drop, #new-products) #content-wrapper {
  flex: none !important;
  max-width: none !important;
  width: auto !important;
  float: none !important;
}

/* =========================================================================
   CATEGORÍA — migas de pan
   ========================================================================= */
.apt-breadcrumb {
  padding: 0;
  margin: 0;
  background: transparent;
}
.apt-breadcrumb__list {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0;
  margin: 0;
  padding: 0;
  list-style: none;
}
.apt-breadcrumb__item {
  display: inline-flex;
  align-items: center;
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-xs);
  font-weight: 400;
  letter-spacing: 0.08em;
  line-height: 1.4;
}
.apt-breadcrumb__item + .apt-breadcrumb__item::before {
  content: '›';
  display: inline-block;
  margin: 0 12px;
  font-size: var(--apt-fs-md);
  line-height: 1;
  color: var(--apt-gold);
  opacity: 0.85;
  pointer-events: none;
}
.apt-breadcrumb__link {
  color: var(--apt-muted);
  text-decoration: none;
  transition: color var(--apt-trans);
}
.apt-breadcrumb__link:hover {
  color: var(--apt-terracotta);
}
.apt-breadcrumb__current {
  color: var(--apt-ink);
  font-weight: 500;
}

/* Anular separadores classic en migas del tema */
#wrapper .breadcrumb.apt-breadcrumb li::after,
#wrapper .apt-breadcrumb li::after {
  content: none !important;
  display: none !important;
  margin: 0 !important;
}
#wrapper .breadcrumb.apt-breadcrumb {
  padding: 0 !important;
  margin: 0 !important;
  background: transparent !important;
}
#wrapper .breadcrumb.apt-breadcrumb li,
#wrapper .breadcrumb.apt-breadcrumb ol {
  display: inline-flex;
  align-items: center;
  float: none !important;
}
#wrapper .breadcrumb.apt-breadcrumb li:last-child {
  color: inherit;
  margin: 0;
}
/* Páginas con el layout por defecto (login, recuperar contraseña, sitemap…) no
   envuelven el breadcrumb en .apt-category-strip--breadcrumb, así que quedaba
   pegado al header fijo. Se le da el mismo respiro que la franja. */
#wrapper > .container > .breadcrumb.apt-breadcrumb {
  padding: clamp(14px, 2vw, 18px) 0 !important;
}

.apt-category-strip--breadcrumb {
  padding: clamp(14px, 2vw, 18px) var(--apt-cat-pad);
  background: var(--apt-cream-soft);
  border-bottom: 1px solid var(--apt-line);
}

/* =========================================================================
   CATEGORÍA — shell ancho completo
   ========================================================================= */
.apt-category-wrapper {
  width: 100%;
  max-width: 100%;
  overflow: visible;
}
.apt-category-wrapper > .container { display: none; }

.apt-category-strip {
  width: 100%;
  padding-left: var(--apt-cat-pad);
  padding-right: var(--apt-cat-pad);
  box-sizing: border-box;
}
.apt-category-strip--subcats {
  padding-bottom: clamp(32px, 4vw, 48px);
}

.apt-category-layout {
  display: grid;
  grid-template-columns: var(--apt-cat-sidebar-w) minmax(0, 1fr);
  width: 100%;
  max-width: 100%;
  align-items: start;
}

.apt-category-sidebar,
.apt-category-main {
  box-sizing: border-box;
  min-width: 0;
}
.apt-category-sidebar {
  position: sticky;
  top: var(--apt-header-h);
  align-self: start;
  height: var(--apt-sidebar-h, calc(100svh - var(--apt-header-h)));
  max-height: var(--apt-sidebar-h, calc(100svh - var(--apt-header-h)));
  padding: 0;
  border-right: 1px solid var(--apt-line);
  overflow: hidden;
  display: flex;
  flex-direction: column;
}
.apt-category-sidebar__panel {
  flex: 1 1 auto;
  min-height: 0;
  max-height: 100%;
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
  padding: var(--apt-cat-sidebar-pad-y) var(--apt-cat-pad) !important;
  padding-bottom: calc(var(--apt-cat-sidebar-pad-y) + 4px) !important;
  scrollbar-gutter: stable;
  box-sizing: border-box;
}
.apt-category-main {
  padding: 0 var(--apt-cat-pad) clamp(48px, 6vw, 80px);
}

/* =========================================================================
   CATEGORÍA — sidebar (navegación + filtros)
   ========================================================================= */

/* Anular cajas blancas y márgenes negativos de theme.css (classic) */
:is(#category, #search, #manufacturer, #best-sales, #prices-drop, #new-products) #left-column.apt-category-sidebar #search_filters_wrapper,
:is(#category, #search, #manufacturer, #best-sales, #prices-drop, #new-products) .apt-category-sidebar .block-categories,
:is(#category, #search, #manufacturer, #best-sales, #prices-drop, #new-products) .apt-category-sidebar #search_filters,
:is(#category, #search, #manufacturer, #best-sales, #prices-drop, #new-products) .apt-category-sidebar #search_filters_wrapper {
  background: transparent !important;
  padding: 0 !important;
  margin: 0 !important;
  box-shadow: none !important;
}
:is(#category, #search, #manufacturer, #best-sales, #prices-drop, #new-products) #left-column.apt-category-sidebar #search_filters {
  border: none !important;
}
:is(#category, #search, #manufacturer, #best-sales, #prices-drop, #new-products) #left-column.apt-category-sidebar #search_filters .facet {
  padding-top: 0 !important;
  border-bottom-color: var(--apt-line) !important;
}
:is(#category, #search, #manufacturer, #best-sales, #prices-drop, #new-products) #left-column.apt-category-sidebar #search_filters .facet ul li {
  padding: 0 !important;
  border-top: none !important;
}
:is(#category, #search, #manufacturer, #best-sales, #prices-drop, #new-products) #left-column.apt-category-sidebar #search_filters .facet .h6 {
  padding: 0 !important;
}
:is(#category, #search, #manufacturer, #best-sales, #prices-drop, #new-products) .apt-category-sidebar .h6,
:is(#category, #search, #manufacturer, #best-sales, #prices-drop, #new-products) .apt-category-sidebar .facet-title {
  font-size: inherit !important;
  font-weight: inherit !important;
}

.apt-category-sidebar > *:not(.apt-category-sidebar__panel),
.apt-category-sidebar__panel > * {
  margin: 0 0 var(--apt-cat-block-gap);
  padding: 0;
}
.apt-category-sidebar > *:not(.apt-category-sidebar__panel):last-child,
.apt-category-sidebar__panel > *:last-child { margin-bottom: 0; }

/* Bloque sidebar compartido */
.apt-sidebar-block {
  padding-bottom: var(--apt-cat-block-gap);
  border-bottom: 1px solid var(--apt-line);
}
.apt-sidebar-block--filters {
  padding-bottom: 0;
  border-bottom: none;
}
.apt-category-sidebar > *:last-child,
.apt-category-sidebar__panel > *:last-child,
.apt-sidebar-block:last-child {
  padding-bottom: 0;
  border-bottom: none;
  margin-bottom: 0;
}
.apt-sidebar-block__title {
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-2xs);
  font-weight: 400;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--apt-muted);
  margin: 0 0 18px;
  padding: 0;
  border: none;
}

/* ── Navegación de categorías ── */
.apt-catnav__list {
  margin: 0;
  padding: 0;
  list-style: none;
}
.apt-catnav__list--d1,
.apt-catnav__list--d2,
.apt-catnav__list--d3 {
  margin: 0 0 0 10px;
  padding: 4px 0 4px 12px;
  border-left: 1px solid var(--apt-line);
}
.apt-catnav__item { margin: 0; }
.apt-catnav__row {
  display: flex;
  align-items: center;
  gap: 8px;
  min-height: 42px;
}
.apt-catnav__link {
  flex: 1;
  min-width: 0;
  display: block;
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-xs);
  font-weight: 400;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--apt-ink);
  padding: 10px 0;
  line-height: 1.35;
  transition: color var(--apt-trans);
}
.apt-catnav__link--sub {
  font-size: var(--apt-fs-xs);
  font-weight: 400;
  letter-spacing: 0.04em;
  text-transform: none;
  color: var(--apt-ink-soft);
  padding: 7px 0;
}
.apt-catnav__link:hover {
  color: var(--apt-terracotta);
}
.apt-catnav__link--current,
.apt-catnav__item--current > .apt-catnav__row .apt-catnav__link {
  color: var(--apt-terracotta);
  font-weight: 600;
}
.apt-catnav__item--current > .apt-catnav__row {
  position: relative;
}
.apt-catnav__item--current > .apt-catnav__row::before {
  content: '';
  position: absolute;
  left: -14px;
  top: 50%;
  transform: translateY(-50%);
  width: 3px;
  height: 15px;
  background: var(--apt-terracotta);
}
.apt-catnav__toggle {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 16px;
  height: 16px;
  padding: 0;
  border: none;
  background: transparent;
  color: var(--apt-muted);
  cursor: pointer;
  transition: color var(--apt-trans);
}
.apt-catnav__toggle:hover { color: var(--apt-ink); }
.apt-catnav__icon::before {
  content: '+';
  display: block;
  font-family: var(--apt-sans);
  font-size: 0.95rem;
  font-weight: 300;
  line-height: 1;
  transition: transform var(--apt-trans);
}
.apt-catnav__toggle[aria-expanded="true"] .apt-catnav__icon::before {
  content: '−';
}
.apt-catnav__sub { padding-top: 2px; }

/* ── Filtros facetados ── */
.apt-filters__clear { margin: 0 0 14px; }
.apt-filters__clear-btn {
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-2xs);
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--apt-muted);
  background: none;
  border: none;
  padding: 0;
  cursor: pointer;
  text-decoration: underline;
  text-underline-offset: 3px;
  transition: color var(--apt-trans);
}
.apt-filters__clear-btn:hover { color: var(--apt-terracotta); }

.apt-filters__group {
  margin: 0 0 22px;
  padding: 0 0 22px;
  border-bottom: 1px solid var(--apt-cream-deep);
}
.apt-filters__group:last-child {
  margin-bottom: 0;
  padding-bottom: 0;
  border-bottom: none;
}
.apt-filters__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 12px;
  cursor: default;
}
.apt-filters__head--mobile { cursor: pointer; }
.apt-filters__label {
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-xs);
  font-weight: 400;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--apt-ink);
  margin: 0;
  padding: 0;
  border: none;
}
.apt-filters__icon::before {
  content: '+';
  display: block;
  font-family: var(--apt-sans);
  font-size: 0.95rem;
  font-weight: 300;
  line-height: 1;
  color: var(--apt-muted);
}
.apt-filters__head[aria-expanded="true"] .apt-filters__icon::before {
  content: '−';
}

.apt-filters__options {
  margin: 0;
  padding: 0;
  list-style: none;
}
.apt-filters__option { margin: 0; }

/* Fila filtro: grid 14px + texto, alineación vertical fija */
:is(#category, #search, #manufacturer, #best-sales, #prices-drop, #new-products) .apt-filters .apt-filters__row {
  display: grid !important;
  grid-template-columns: 14px minmax(0, 1fr);
  align-items: center;
  column-gap: 10px;
  padding: 6px 0;
  margin: 0;
  cursor: pointer;
}
:is(#category, #search, #manufacturer, #best-sales, #prices-drop, #new-products) .apt-filters .apt-filters__native {
  grid-column: 1;
  grid-row: 1;
  width: 14px;
  height: 14px;
  margin: 0 !important;
  padding: 0;
  opacity: 0;
  z-index: 2;
  cursor: pointer;
}
:is(#category, #search, #manufacturer, #best-sales, #prices-drop, #new-products) .apt-filters .apt-filters__mark {
  grid-column: 1;
  grid-row: 1;
  width: 14px;
  height: 14px;
  box-sizing: border-box;
  border: 1px solid var(--apt-line);
  background: transparent;
  display: flex;
  align-items: center;
  justify-content: center;
  pointer-events: none;
}
:is(#category, #search, #manufacturer, #best-sales, #prices-drop, #new-products) .apt-filters .apt-filters__mark--color {
  border-color: var(--apt-ink-soft);
  background-size: cover;
  background-position: center;
}
:is(#category, #search, #manufacturer, #best-sales, #prices-drop, #new-products) .apt-filters .apt-filters__mark--radio {
  border-radius: 50%;
}
:is(#category, #search, #manufacturer, #best-sales, #prices-drop, #new-products) .apt-filters .apt-filters__native:checked + .apt-filters__mark:not(.apt-filters__mark--color)::after,
:is(#category, #search, #manufacturer, #best-sales, #prices-drop, #new-products) .apt-filters .apt-filters__row.active .apt-filters__mark:not(.apt-filters__mark--color)::after {
  content: '';
  width: 6px;
  height: 6px;
  background: var(--apt-terracotta);
}
:is(#category, #search, #manufacturer, #best-sales, #prices-drop, #new-products) .apt-filters .apt-filters__native:checked + .apt-filters__mark--radio::after {
  border-radius: 50%;
}
:is(#category, #search, #manufacturer, #best-sales, #prices-drop, #new-products) .apt-filters .apt-filters__copy {
  grid-column: 2;
  display: block;
  margin: 0 !important;
  padding: 0 !important;
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-xs);
  font-weight: 400;
  letter-spacing: 0.02em;
  line-height: 14px;
  color: var(--apt-ink-soft);
}
:is(#category, #search, #manufacturer, #best-sales, #prices-drop, #new-products) .apt-filters .apt-filters__copy a,
:is(#category, #search, #manufacturer, #best-sales, #prices-drop, #new-products) .apt-filters .facet-label a {
  display: inline !important;
  margin: 0 !important;
  padding: 0 !important;
  font: inherit !important;
  color: inherit !important;
  line-height: inherit !important;
  vertical-align: baseline !important;
  text-decoration: none;
  transition: color var(--apt-trans);
}
:is(#category, #search, #manufacturer, #best-sales, #prices-drop, #new-products) .apt-filters .apt-filters__row:hover .apt-filters__copy,
:is(#category, #search, #manufacturer, #best-sales, #prices-drop, #new-products) .apt-filters .apt-filters__row:hover .apt-filters__copy a,
:is(#category, #search, #manufacturer, #best-sales, #prices-drop, #new-products) .apt-filters .apt-filters__row.active .apt-filters__copy,
:is(#category, #search, #manufacturer, #best-sales, #prices-drop, #new-products) .apt-filters .apt-filters__row.active .apt-filters__copy a {
  color: var(--apt-ink);
}
:is(#category, #search, #manufacturer, #best-sales, #prices-drop, #new-products) .apt-filters .apt-filters__count {
  color: var(--apt-muted);
  font-size: var(--apt-fs-2xs);
}

/* Anular CSS del módulo ps_facetedsearch (front.css) */
:is(#category, #search, #manufacturer, #best-sales, #prices-drop, #new-products) #search_filters .facet .facet-label {
  width: auto !important;
  text-align: left !important;
  margin-bottom: 0 !important;
}
:is(#category, #search, #manufacturer, #best-sales, #prices-drop, #new-products) #search_filters .facet .facet-label a {
  width: auto !important;
  margin-top: 0 !important;
  overflow: visible !important;
  text-overflow: unset !important;
  white-space: normal !important;
}

/* Ocultar restos classic si persisten */
:is(#category, #search, #manufacturer, #best-sales, #prices-drop, #new-products) .apt-filters .custom-checkbox,
:is(#category, #search, #manufacturer, #best-sales, #prices-drop, #new-products) .apt-filters .custom-radio {
  display: none !important;
}

/* Precio — slider */
.apt-filters__range-label {
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-xs);
  letter-spacing: 0.06em;
  color: var(--apt-ink-soft);
  margin: 0 0 14px;
}
.apt-filters__range.ui-slider,
:is(#category, #search, #manufacturer, #best-sales, #prices-drop, #new-products) .apt-filters__range.ui-slider {
  height: 2px;
  background: var(--apt-line);
  border: none;
  margin: 8px 6px 18px;
}
:is(#category, #search, #manufacturer, #best-sales, #prices-drop, #new-products) .apt-filters__range .ui-slider-range {
  background: var(--apt-terracotta);
}
:is(#category, #search, #manufacturer, #best-sales, #prices-drop, #new-products) .apt-filters__range .ui-slider-handle {
  width: 14px;
  height: 14px;
  top: -6px;
  margin-left: -7px;
  border-radius: 0;
  border: 1px solid var(--apt-ink);
  background: var(--apt-cream);
  cursor: grab;
}
:is(#category, #search, #manufacturer, #best-sales, #prices-drop, #new-products) .apt-filters__range .ui-slider-handle:focus {
  outline: none;
  border-color: var(--apt-terracotta);
}

.apt-filters__select {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-xs);
  letter-spacing: 0.06em;
  color: var(--apt-ink-soft);
  border: 1px solid var(--apt-line);
  padding: 10px 12px;
}
.apt-filters__dropdown .dropdown-menu {
  background: var(--apt-cream);
  border-radius: 0;
  border: 1px solid var(--apt-line);
  box-shadow: none;
  padding: 0;
  min-width: 100%;
}
.apt-filters__dropdown .select-list {
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-xs);
  padding: 10px 12px;
  color: var(--apt-ink-soft);
}
.apt-filters__dropdown .select-list:hover {
  background: var(--apt-cream-soft);
  color: var(--apt-ink);
}

/* Ocultar restos de classic en sidebar */
:is(#category, #search, #manufacturer, #best-sales, #prices-drop, #new-products) .apt-category-sidebar .collapse-icons,
:is(#category, #search, #manufacturer, #best-sales, #prices-drop, #new-products) .apt-category-sidebar .navbar-toggler.collapse-icons {
  display: none !important;
}
:is(#category, #search, #manufacturer, #best-sales, #prices-drop, #new-products) .apt-category-sidebar .facet .title.hidden-md-up .navbar-toggler {
  display: none;
}

/* =========================================================================
   CATEGORÍA — hero editorial (ancho completo)
   ========================================================================= */
.apt-category-hero {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: clamp(88px, 14vw, 168px);
  margin: 0;
  overflow: hidden;
  text-align: center;
  color: var(--apt-white);
}
.apt-category-hero--no-cover,
.apt-category-hero--compact {
  min-height: auto;
  padding: var(--apt-cat-toolbar-gap) var(--apt-cat-pad);
  background: var(--apt-cream-soft);
  color: var(--apt-ink);
}
.apt-category-hero--compact {
  padding: var(--apt-cat-toolbar-gap) var(--apt-cat-pad);
}
.apt-category-hero__media {
  position: absolute;
  inset: 0;
}
.apt-category-hero__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.apt-category-hero__media::after,
.apt-category-hero:not(.apt-category-hero--no-cover)::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(33,28,23,0.25) 0%, rgba(33,28,23,0.62) 100%);
  pointer-events: none;
}
.apt-category-hero__inner {
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  max-width: 760px;
  padding: 0;
  margin: 0 auto;
}
.apt-category-hero--no-cover .apt-category-hero__inner,
.apt-category-hero--compact .apt-category-hero__inner {
  padding: 0;
}
.apt-category-hero__eyebrow {
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-2xs);
  font-weight: 400;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  margin: 0 0 6px;
  opacity: 0.85;
}
.apt-category-hero__title {
  font-family: var(--apt-display);
  font-weight: 400;
  font-size: var(--apt-fs-d3);
  letter-spacing: 0.22em;
  text-indent: 0.22em;
  text-transform: uppercase;
  line-height: 1.15;
  margin: 0;
  color: inherit;
}
.apt-category-hero__title--compact {
  font-size: var(--apt-fs-d3);
  letter-spacing: 0.18em;
  text-indent: 0.18em;
}
.apt-category-hero__rule {
  display: block;
  width: 56px;
  height: 1px;
  background: var(--apt-gold);
  margin: 8px auto;
}
.apt-category-hero--no-cover .apt-category-hero__rule,
.apt-category-hero--compact .apt-category-hero__rule { background: var(--apt-terracotta); }
.apt-category-hero__count {
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-xs);
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: inherit;
  opacity: 0.8;
  margin: 0;
}
.apt-category-hero__desc {
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-base);
  font-weight: 400;
  line-height: 1.7;
  color: inherit;
  opacity: 0.92;
  max-width: 560px;
  margin: 0 auto;
}
.apt-category-hero--no-cover .apt-category-hero__desc { color: var(--apt-ink-soft); opacity: 1; }

/* =========================================================================
   CATEGORÍA — subcategorías
   ========================================================================= */
.apt-category-subcats { margin-bottom: 0; }
.apt-category-subcats .apt-section-title { margin-bottom: 12px; }
.apt-category-subcats .apt-section-rule { margin-bottom: clamp(24px, 3vw, 32px); }
.apt-category-subcats__grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 220px), 1fr));
  gap: clamp(12px, 2vw, 16px);
}

/* =========================================================================
   CATEGORÍA — barra de herramientas y ordenación
   ========================================================================= */
.apt-category-toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  align-content: center;
  justify-content: space-between;
  gap: 12px 20px;
  min-height: calc(var(--apt-cat-toolbar-gap) * 2 + 42px);
  padding: var(--apt-cat-toolbar-gap) 0;
  border-top: 1px solid var(--apt-line);
  border-bottom: 1px solid var(--apt-line);
  margin: var(--apt-cat-toolbar-gap) 0;
}
.apt-category-toolbar__count,
.apt-category-toolbar__actions {
  display: flex;
  align-items: center;
  min-height: 42px;
}
.apt-category-toolbar__count p,
.apt-category-toolbar__showing {
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-xs);
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--apt-muted);
  margin: 0;
  line-height: 1;
  display: flex;
  align-items: center;
}
.apt-category-toolbar__actions {
  flex-wrap: wrap;
  gap: 12px 16px;
  margin-left: auto;
}
.apt-category-toolbar__sort-label {
  display: flex;
  align-items: center;
  min-height: 42px;
  line-height: 1;
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-2xs);
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--apt-muted);
}
.apt-category-sort { position: relative; }
.apt-category-sort .select-title {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  min-height: 42px;
  box-sizing: border-box;
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-xs);
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--apt-ink);
  background: transparent;
  border: 1px solid var(--apt-line);
  padding: 10px 16px;
  cursor: pointer;
  white-space: nowrap;
  transition: border-color var(--apt-trans), color var(--apt-trans);
}
.apt-category-sort .select-title:hover { border-color: var(--apt-ink); }
.apt-category-sort .select-title .material-icons { font-size: 18px; }
.apt-category-sort .dropdown-menu {
  background: var(--apt-cream);
  border-radius: 0;
  border: 1px solid var(--apt-line);
  box-shadow: none;
  padding: 0;
  min-width: 100%;
}
.apt-category-sort .select-list {
  display: block;
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-xs);
  letter-spacing: 0.08em;
  padding: 10px 16px;
  color: var(--apt-ink-soft);
  transition: background var(--apt-trans), color var(--apt-trans);
}
.apt-category-sort .select-list:hover,
.apt-category-sort .select-list.current {
  background: var(--apt-cream-soft);
  color: var(--apt-ink);
}
.apt-btn--sm {
  font-size: var(--apt-fs-2xs);
  padding: 10px 18px;
  letter-spacing: 0.18em;
}
:is(#category, #search, #manufacturer, #best-sales, #prices-drop, #new-products) .apt-btn--ghost {
  background: transparent;
  color: var(--apt-ink);
  border-color: var(--apt-ink);
}
:is(#category, #search, #manufacturer, #best-sales, #prices-drop, #new-products) .apt-btn--ghost:hover {
  background: var(--apt-ink);
  color: var(--apt-white);
}

/* =========================================================================
   CATEGORÍA — barra de filtros facetados (desplegables, escritorio >=992px)
   ========================================================================= */
.apt-category-toolbar__filters {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  flex: 1 1 auto;
  min-width: 0;
}
.apt-category-toolbar__filters:empty { display: none; }

/* El wrapper/contenedor de ps_facetedsearch no debe generar caja propia aqui:
   #search_filters_wrapper nace ya dentro de esta barra (SSR, ver
   products-top-category.tpl) para sobrevivir al replaceWith completo de
   #js-product-list-top que hace theme.js tras cada AJAX de filtros; en
   movil/tablet apparentia.js lo saca de aqui y lo lleva al modal. */
.apt-category-toolbar__filters #search_filters_wrapper,
.apt-category-toolbar__filters #search_filters {
  /* classic (theme.css) pone #search_filters{background:#fff} para la caja
     de sidebar de siempre; aqui el wrapper vive en la barra de herramientas,
     no en el sidebar, y esa regla de sobreescritura antigua (2984) solo
     aplica dentro de .apt-category-sidebar. */
  background: transparent;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  margin: 0 !important;
  padding: 0 !important;
}
.apt-category-toolbar__filters #search_filter_controls,
.apt-category-toolbar__filters .apt-sidebar-block__title,
.apt-category-toolbar__filters .apt-filters__clear {
  display: none;
}
.apt-category-toolbar__filters .facet {
  position: relative;
  margin: 0 !important;
  padding: 0 !important;
  border-bottom: none !important;
}
.apt-category-toolbar__filters .apt-filters__head--mobile {
  display: none !important;
}
.apt-category-toolbar__filters .apt-filterbar__trigger {
  display: inline-flex;
  align-items: center;
  justify-content: flex-start;
  gap: 8px;
  min-height: 42px;
  margin: 0;
  box-sizing: border-box;
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-xs);
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--apt-ink);
  background: transparent;
  border: 1px solid var(--apt-line);
  padding: 10px 16px;
  cursor: pointer;
  white-space: nowrap;
  transition: border-color var(--apt-trans), color var(--apt-trans);
}
.apt-category-toolbar__filters .apt-filterbar__trigger:hover,
.apt-category-toolbar__filters .facet.is-open .apt-filterbar__trigger,
.apt-category-toolbar__filters .facet.has-selection .apt-filterbar__trigger {
  border-color: var(--apt-ink);
}
.apt-category-toolbar__filters .apt-filterbar__count {
  color: var(--apt-ink);
}
.apt-category-toolbar__filters .apt-filterbar__count:empty {
  display: none;
}
.apt-category-toolbar__filters .apt-filterbar__chevron {
  font-size: 18px;
  margin-left: 2px;
  transition: transform var(--apt-trans);
}
.apt-category-toolbar__filters .facet.is-open .apt-filterbar__chevron {
  transform: rotate(180deg);
}

/* Ficha "sticky": lo que queda visible cuando ps_facetedsearch decide no
   devolver una faceta activa (hideUselessFacets(), ver apparentia.js). A
   propósito NO se parece a .apt-filterbar__trigger: ese estilo insinúa un
   desplegable con opciones, y aquí no hay ninguna que ofrecer -solo se
   puede quitar la faceta entera-, así que confundía. Usa el mismo lenguaje
   que las fichas de "filtros activos" (.filter-block, más abajo): una
   etiqueta con los valores y una única acción, quitar. Sin scope a
   .apt-category-toolbar__filters a propósito: apparentia.js la inyecta
   también dentro del modal de filtros móvil, donde ese contenedor no
   existe. */
.apt-filterbar__sticky-tag {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-height: 42px;
  margin: 4px 0;
  box-sizing: border-box;
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-2xs);
  letter-spacing: 0.06em;
  color: var(--apt-muted);
  background: var(--apt-cream-soft);
  border: 1px dashed var(--apt-line);
  padding: 8px 12px;
  white-space: nowrap;
}
.apt-filterbar__sticky-remove-btn {
  display: inline-flex;
  color: var(--apt-muted);
  background: none;
  border: none;
  padding: 0;
  cursor: pointer;
  line-height: 1;
}
.apt-filterbar__sticky-remove-btn .material-icons { font-size: 16px; }
.apt-filterbar__sticky-remove-btn:hover { color: var(--apt-terracotta); }

.apt-category-toolbar__filters .apt-filterbar__panel {
  position: absolute;
  top: calc(100% + 4px);
  left: 0;
  width: max-content;
  min-width: max(240px, 100%);
  max-width: min(320px, 90vw);
  /* Tope de seguridad antes de que corra el JS (positionFacetPanel(), en
     apparentia.js): sin JS o en el primer frame, que el panel nunca se salga
     de la pantalla. El JS afina esto en línea según la posición real del
     disparador y el alto del banner de cookies (ver apparentia.js). */
  max-height: min(420px, calc(100vh - var(--apt-header-h, 72px) - var(--apt-cookiebar-h, 0px) - 32px));
  display: flex;
  flex-direction: column;
  overflow: hidden;
  background: var(--apt-cream-deep);
  border: 1px solid var(--apt-line);
  z-index: 500;
  visibility: hidden;
  opacity: 0;
  pointer-events: none;
  transition: opacity var(--apt-trans), visibility 0s linear var(--apt-trans);
}
.apt-category-toolbar__filters .facet.is-open .apt-filterbar__panel {
  visibility: visible;
  opacity: 1;
  pointer-events: auto;
  transition-delay: 0s;
}
.apt-category-toolbar__filters .apt-filterbar__panel .apt-filters__options,
.apt-category-toolbar__filters .apt-filterbar__panel .apt-filters__slider {
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
  margin: 0;
  padding: 10px 16px;
}
.apt-category-toolbar__filters .apt-filterbar__panel .apt-filters__slider {
  padding-top: 22px;
  padding-bottom: 22px;
}
/* Fila de opción: mismo hover por fondo que el desplegable de «Ordenar»
   (3599-3602), ahora que el panel es --apt-cream-deep y ya no basta con
   cambiar solo el color del texto. Sangría negativa para que el fondo llegue
   al borde del panel, igual que .select-list. */
.apt-category-toolbar__filters .apt-filterbar__panel .apt-filters__row {
  margin: 0 -16px !important;
  padding: 6px 16px !important;
  transition: background var(--apt-trans), color var(--apt-trans);
}
.apt-category-toolbar__filters .apt-filterbar__panel .apt-filters__row:hover {
  background: var(--apt-cream-soft);
}
.apt-category-toolbar__filters .apt-filterbar__foot {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 10px 16px;
  border-top: 1px solid var(--apt-line);
  flex: 0 0 auto;
}
.apt-category-toolbar__filters .apt-filterbar__clear {
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-2xs);
  color: var(--apt-muted);
  background: none;
  border: none;
  padding: 0;
  cursor: pointer;
  text-decoration: underline;
  text-underline-offset: 3px;
  transition: color var(--apt-trans);
}
.apt-category-toolbar__filters .apt-filterbar__clear:hover {
  color: var(--apt-terracotta);
}
.apt-category-toolbar__filters .apt-filterbar__apply {
  white-space: nowrap;
}
@media (max-width: 991px) {
  html.apt-filters-js .apt-category-toolbar__filters {
    display: none !important;
  }
}

/* Sin JS: la barra de filtros no se degrada a "vacía" (fix 6). El desplegable
   de escritorio depende del clic para abrir el panel y del listener de
   captura de apparentia.js para diferir el checkbox; sin ninguno de los dos
   no hay forma de llegar a las opciones. La marca `apt-filters-js` la pone un
   <script> inline pegado al wrapper (products-top-category.tpl), que solo se
   ejecuta si hay JS -y se re-ejecuta igual tras cada AJAX, porque va dentro
   del HTML que theme.js reinserta con .replaceWith()-. Sin esa marca, el
   panel vuelve a ser una lista plana siempre visible y el pie
   Limpiar/Aplicar (pensado para la aplicación diferida) no tiene sentido: los
   <a href> de cada opción ya navegan solos, de uno en uno. */
html:not(.apt-filters-js) .apt-category-toolbar__filters .apt-filterbar__trigger {
  cursor: default;
}
html:not(.apt-filters-js) .apt-category-toolbar__filters .facet.is-open .apt-filterbar__chevron {
  transform: none;
}
html:not(.apt-filters-js) .apt-category-toolbar__filters .apt-filterbar__panel {
  position: static;
  width: auto;
  min-width: 0;
  max-width: none;
  max-height: none;
  display: block;
  overflow: visible;
  visibility: visible;
  opacity: 1;
  pointer-events: auto;
  margin: 6px 0 14px;
  transition: none;
}
html:not(.apt-filters-js) .apt-category-toolbar__filters .apt-filterbar__panel .apt-filters__options,
html:not(.apt-filters-js) .apt-category-toolbar__filters .apt-filterbar__panel .apt-filters__slider {
  padding: 0;
}
html:not(.apt-filters-js) .apt-category-toolbar__filters .apt-filterbar__foot {
  display: none;
}

/* =========================================================================
   CATEGORÍA — filtros popup pantalla completa (responsive <992px)
   ========================================================================= */
.apt-category-filters-mobile {
  display: none !important;
  position: fixed;
  inset: 0;
  z-index: 600;
  margin: 0;
  padding: 0;
  border: 0;
}
.apt-category-filters-mobile[hidden] {
  display: none !important;
}
.apt-category-filters-mobile.is-open {
  display: block !important;
}
.apt-category-filters-mobile__sheet {
  display: flex;
  flex-direction: column;
  height: 100%;
  height: 100dvh;
  background: var(--apt-cream);
}
.apt-category-filters-mobile__header {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 18px var(--apt-cat-pad);
  padding-top: max(18px, env(safe-area-inset-top));
  border-bottom: 1px solid var(--apt-line);
  background: var(--apt-cream-soft);
}
.apt-category-filters-mobile__title {
  font-family: var(--apt-display);
  font-size: var(--apt-fs-d4);
  font-weight: 400;
  letter-spacing: 0.02em;
  color: var(--apt-ink);
  margin: 0;
  text-transform: none;
}
.apt-category-filters-mobile__close {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  padding: 0;
  border: 1px solid var(--apt-line);
  background: transparent;
  color: var(--apt-ink);
  cursor: pointer;
  transition: border-color var(--apt-trans), background var(--apt-trans), color var(--apt-trans);
}
.apt-category-filters-mobile__close:hover {
  border-color: var(--apt-ink);
  background: var(--apt-ink);
  color: var(--apt-white);
}
.apt-category-filters-mobile__close span {
  position: relative;
  display: block;
  width: 16px;
  height: 16px;
}
.apt-category-filters-mobile__close span::before,
.apt-category-filters-mobile__close span::after {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  width: 16px;
  height: 1px;
  background: currentColor;
  transform-origin: center;
}
.apt-category-filters-mobile__close span::before { transform: translate(-50%, -50%) rotate(45deg); }
.apt-category-filters-mobile__close span::after { transform: translate(-50%, -50%) rotate(-45deg); }
.apt-category-filters-mobile__body {
  flex: 1;
  min-height: 0;
  overflow: hidden;
  display: flex;
  flex-direction: column;
}
.apt-category-filters-mobile__body .apt-sidebar-block__title.hidden-lg-up {
  display: none;
}
.apt-category-filters-mobile__footer {
  display: flex;
  align-items: center;
  justify-content: stretch;
  gap: 12px;
  margin-top: auto;
  padding: 16px 0 0;
  /* --apt-cookiebar-h la mantiene apparentia.js (syncCookieBarHeightVar):
     mismo problema que el panel de escritorio (fix 2) pero en el pie de este
     modal a pantalla completa -el banner de cookies, fijo abajo, puede tapar
     "Aplicar" igual que tapaba el del desplegable-. Sin banner vale 0px y el
     pie queda como antes. */
  padding-bottom: max(20px, calc(16px + env(safe-area-inset-bottom) + var(--apt-cookiebar-h, 0px)));
  border-top: 1px solid var(--apt-line);
  background: var(--apt-cream);
}
.apt-category-filters-mobile__footer .apt-category-filters-mobile__apply {
  flex: 1;
  justify-content: center;
}
.apt-category-filters-mobile__footer .apt-category-filters-mobile__clear {
  flex: 0 0 auto;
  justify-content: center;
  white-space: nowrap;
}
.apt-category-filters-mobile__footer .apt-category-filters-mobile__clear[hidden] {
  display: none;
}
body.apt-filters-modal-open {
  position: fixed;
  left: 0;
  right: 0;
  width: 100%;
  overflow: hidden;
  touch-action: none;
}
@media (max-width: 991px) {
  #category .apt-category-sidebar #search_filters_wrapper {
    display: none !important;
  }
  #category .apt-category-filters-mobile__body #search_filters_wrapper {
    display: flex !important;
    flex-direction: column;
    flex: 1;
    min-height: 0;
    margin: 0 !important;
    padding: var(--apt-cat-sidebar-pad-y) var(--apt-cat-pad) 0 !important;
    background: transparent !important;
    overflow: hidden;
  }
  #category .apt-category-filters-mobile__body #search_filters {
    flex: 1;
    min-height: 0;
    overflow-y: auto;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
    padding-bottom: 12px;
  }
  #category .apt-category-sidebar .apt-sidebar-block--filters {
    display: none;
  }
}
@media (min-width: 992px) {
  .apt-category-filters-mobile,
  .apt-category-filters-mobile__footer {
    display: none !important;
  }
  /* El wrapper de facetas ya no nace en el sidebar (displayLeftColumn):
     desde 1.x nace directamente en la barra de herramientas (SSR, ver
     products-top-category.tpl) para sobrevivir al AJAX de filtros; el hook
     de ps_facetedsearch.tpl no pinta nada. Esta regla queda como cinturón de
     seguridad por si algún día el hook vuelve a pintar algo ahí. */
  :is(#category, #search, #manufacturer, #best-sales, #prices-drop, #new-products) .apt-category-sidebar #search_filters_wrapper {
    display: none !important;
  }
}

/* =========================================================================
   CATEGORÍA — filtros activos
   ========================================================================= */
:is(#category, #search, #manufacturer, #best-sales, #prices-drop, #new-products) #js-active-search-filters.active_filters { margin-bottom: 20px; }
:is(#category, #search, #manufacturer, #best-sales, #prices-drop, #new-products) #js-active-search-filters .active-filter-title {
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-2xs);
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--apt-muted);
  margin: 0 0 10px;
}
:is(#category, #search, #manufacturer, #best-sales, #prices-drop, #new-products) #js-active-search-filters ul {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 0;
  padding: 0;
  list-style: none;
}
:is(#category, #search, #manufacturer, #best-sales, #prices-drop, #new-products) #js-active-search-filters .filter-block {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-2xs);
  letter-spacing: 0.06em;
  padding: 6px 10px;
  border: 1px solid var(--apt-line);
  background: var(--apt-cream-soft);
}
:is(#category, #search, #manufacturer, #best-sales, #prices-drop, #new-products) #js-active-search-filters .filter-block a {
  display: inline-flex;
  color: var(--apt-muted);
  line-height: 1;
}
:is(#category, #search, #manufacturer, #best-sales, #prices-drop, #new-products) #js-active-search-filters .filter-block a .material-icons { font-size: 16px; }
:is(#category, #search, #manufacturer, #best-sales, #prices-drop, #new-products) #js-active-search-filters .filter-block a:hover { color: var(--apt-terracotta); }

/* =========================================================================
   CATEGORÍA — rejilla de productos (responsive)
   ========================================================================= */
.apt-category-grid {
  --apt-cat-cols: 3;
  display: flex !important;
  flex-wrap: wrap;
  justify-content: center;
  gap: 20px;
  margin: 0;
  align-items: start;
}
.apt-category-grid > .product-miniature {
  flex: 0 1 calc((100% - (var(--apt-cat-cols) - 1) * 20px) / var(--apt-cat-cols));
  max-width: calc((100% - (var(--apt-cat-cols) - 1) * 20px) / var(--apt-cat-cols));
  width: auto;
  padding: 0;
  float: none;
  min-height: 0;
}

/* Tarjeta categoría: contenido arriba, título 2 líneas max, precio pegado al nombre */
:is(#category, #product .apt-crosssell) .apt-category-grid > .product-miniature.apt-col-item {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  justify-content: flex-start;
  height: auto;
  text-align: center;
}
:is(#category, #product .apt-crosssell) .apt-category-grid .product-miniature.apt-col-item .thumbnail-container {
  flex-shrink: 0;
  width: 100%;
  margin-bottom: 12px !important;
}
:is(#category, #product .apt-crosssell) .apt-category-grid .product-miniature.apt-col-item .product-title {
  flex: 0 0 auto;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
  width: 100% !important;
  max-width: none;
  min-height: 0;
  margin: 0 0 6px;
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-md);
  font-weight: 500;
  line-height: 1.45;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--apt-ink);
}
:is(#category, #product .apt-crosssell) .apt-category-grid .product-miniature.apt-col-item .product-title a {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
  width: 100%;
  font: inherit;
  letter-spacing: inherit;
  text-transform: inherit;
  color: inherit;
  text-decoration: none;
}
:is(#category, #product .apt-crosssell) .apt-category-grid .product-miniature.apt-col-item .product-price-and-shipping {
  flex: 0 0 auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2px;
  width: 100%;
  margin: 0;
  padding: 0;
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-base);
  font-weight: 400;
  letter-spacing: 0.04em;
  color: var(--apt-ink-soft);
}
:is(#category, #product .apt-crosssell) .apt-category-grid .product-miniature.apt-col-item .price {
  font: inherit;
  color: inherit;
  line-height: 1.3;
}
:is(#category, #product .apt-crosssell) .apt-category-grid .product-miniature.apt-col-item .regular-price {
  display: block;
  font-size: var(--apt-fs-sm);
  line-height: 1.3;
  margin: 0;
  color: var(--apt-muted);
  text-decoration: line-through;
}

/* Anular estilos classic en listado categoría */
:is(#category, #product .apt-crosssell) .apt-category-grid .product-miniature .thumbnail-container {
  margin-bottom: 14px !important;
  background: transparent !important;
  height: auto !important;
}
:is(#category, #product .apt-crosssell) .apt-category-grid .product-miniature .product-description,
:is(#category, #product .apt-crosssell) .apt-category-grid .product-miniature .highlighted-informations,
:is(#category, #product .apt-crosssell) .apt-category-grid .product-miniature .quick-view {
  display: none !important;
}
:is(#category, #product .apt-crosssell) .apt-category-grid .product-miniature .product-thumbnail {
  height: auto !important;
}
:is(#category, #product .apt-crosssell) .apt-category-grid .product-miniature .product-thumbnail img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  margin: 0 !important;
  max-width: none !important;
}

/* =========================================================================
   PAGINACIÓN — editorial (listados, búsqueda, categoría)
   ========================================================================= */
.apt-pagination {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 20px;
  width: 100%;
  margin-top: clamp(32px, 5vw, 48px);
  padding-top: clamp(24px, 3vw, 32px);
  border-top: 1px solid var(--apt-line);
  background: transparent !important;
  font-size: inherit;
}
.apt-pagination__summary {
  margin: 0;
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-2xs);
  font-weight: 400;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--apt-muted);
  text-align: center;
}
.apt-pagination__list,
.pagination .apt-pagination__list,
.pagination .page-list.apt-pagination__list {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 6px 8px;
  margin: 0;
  padding: 0 !important;
  list-style: none;
  background: transparent !important;
  float: none !important;
}
.apt-pagination__item {
  margin: 0;
  padding: 0;
  float: none !important;
  display: flex;
}
.apt-pagination__link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  min-width: 40px;
  min-height: 40px;
  padding: 0 12px;
  border: 1px solid var(--apt-line);
  background: transparent;
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-xs);
  font-weight: 500;
  letter-spacing: 0.1em;
  color: var(--apt-ink-soft) !important;
  text-decoration: none;
  transition: color var(--apt-trans), border-color var(--apt-trans), background var(--apt-trans);
}
.apt-pagination__link:hover {
  border-color: var(--apt-ink);
  color: var(--apt-ink) !important;
  background: transparent;
}
.apt-pagination__item.is-current .apt-pagination__link {
  border-color: var(--apt-ink);
  background: var(--apt-ink);
  color: var(--apt-white) !important;
  font-size: var(--apt-fs-xs);
  text-decoration: none;
  pointer-events: none;
}
.apt-pagination__link.is-disabled:not(.apt-pagination__link--prev):not(.apt-pagination__link--next),
.apt-pagination__link.disabled:not(.apt-pagination__link--prev):not(.apt-pagination__link--next) {
  opacity: 0.35;
  pointer-events: none;
}
.apt-pagination__item.is-current .apt-pagination__link.disabled {
  opacity: 1;
}
.apt-pagination__link--prev,
.apt-pagination__link--next,
.apt-pagination__link.previous,
.apt-pagination__link.next {
  min-width: auto;
  padding: 0 14px;
  border-color: transparent;
  font-weight: 600;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  float: none !important;
}
.apt-pagination__link--prev:hover,
.apt-pagination__link--next:hover,
.apt-pagination__link.previous:hover,
.apt-pagination__link.next:hover {
  border-color: transparent;
  color: var(--apt-terracotta) !important;
}
.apt-pagination__chev {
  font-size: 1.1rem;
  line-height: 1;
  font-weight: 400;
}
.apt-pagination__spacer {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 28px;
  min-height: 40px;
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-md);
  letter-spacing: 0.08em;
  color: var(--apt-muted);
}
.apt-pagination .material-icons { display: none; }

/* Anular classic theme.css en paginación */
.pagination .page-list {
  background: transparent !important;
}
.pagination a {
  font-weight: inherit;
  color: inherit;
}
.pagination .current a {
  font-size: inherit;
  color: inherit;
  text-decoration: none;
}
.pagination .previous,
.pagination .next {
  float: none !important;
}
/* Classic mete dentro de `.pagination` sus propios `<div>` (el «Showing 1-12 of
   N» y el selector de productos por pagina) y el tema los sustituye por su
   maqueta, asi que se ocultan todos. Las piezas propias van exceptuadas una a
   una: el `<nav>` lleva la clase `pagination` de classic, de modo que
   cualquier `<div>` hijo que se anada aqui nace invisible. */
.pagination > div:not(.apt-pagination__row):not(.apt-pagination__ver-todos) { display: none; }

@media (max-width: 640px) {
  .apt-pagination__list {
    gap: 4px 6px;
  }
  .apt-pagination__link--prev .apt-pagination__label,
  .apt-pagination__link--next .apt-pagination__label {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
  }
  .apt-pagination__link--prev,
  .apt-pagination__link--next {
    min-width: 40px;
    padding: 0;
    border-color: var(--apt-line);
  }
}

/* =========================================================================
   CATEGORÍA — bloque SEO al pie
   ========================================================================= */
.apt-category-seo {
  margin-top: clamp(40px, 5vw, 56px);
  padding-top: clamp(28px, 4vw, 40px);
  border-top: 1px solid var(--apt-line);
}
.apt-category-seo__inner { max-width: 720px; }
.apt-category-seo__rule {
  display: block;
  width: 56px;
  height: 1px;
  background: var(--apt-gold);
  margin-bottom: 24px;
}
.apt-category-seo__content {
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-base);
  font-weight: 400;
  line-height: 1.75;
  color: var(--apt-ink-soft);
}
.apt-category-seo__content h2,
.apt-category-seo__content h3 {
  font-family: var(--apt-display);
  font-weight: 400;
  letter-spacing: 0.08em;
  margin: 1.5em 0 0.6em;
  color: var(--apt-ink);
}

/* =========================================================================
   CATEGORÍA — estado vacío
   ========================================================================= */
.apt-category__empty {
  text-align: center;
  padding: clamp(40px, 8vw, 60px) 0;
}
.apt-category__empty h4 {
  font-family: var(--apt-display);
  font-size: var(--apt-fs-d5);
  letter-spacing: 0.12em;
  text-transform: uppercase;
  margin-bottom: 12px;
}
.apt-category__empty p {
  font-family: var(--apt-sans);
  color: var(--apt-muted);
}

/* =========================================================================
   CATEGORÍA — responsive
   ========================================================================= */
@media (min-width: 1400px) {
  .apt-category-grid {
    --apt-cat-cols: 4;
  }
}
@media (max-width: 991px) {
  /* Ojo: NO poner overflow-x aquí. En iOS Safari, overflow-x: clip en este wrapper
     lo promociona a contenedor de scroll vertical anidado y el scroll salta al top.
     El recorte horizontal ya lo hace `body { overflow-x: clip }` para toda la página. */
  #category #left-column.apt-category-sidebar,
  :is(#category, #search, #manufacturer, #best-sales, #prices-drop, #new-products) .apt-category-sidebar {
    position: static;
    height: auto !important;
    max-height: none !important;
    min-height: 0 !important;
    overflow: visible;
    border-right: none;
    border-bottom: 1px solid var(--apt-line);
  }
  .apt-category-sidebar.is-empty {
    display: none;
  }
  .apt-category-layout {
    grid-template-columns: 1fr;
  }
  .apt-category-sidebar__panel {
    max-height: none;
    overflow: visible;
    padding: var(--apt-cat-sidebar-pad-y) var(--apt-cat-pad);
    padding-bottom: calc(var(--apt-cat-sidebar-pad-y) - var(--apt-cat-block-gap) + 4px);
  }
  .apt-category-main {
    padding-top: 0;
  }
  .apt-category-toolbar {
    flex-direction: column;
    align-items: stretch;
    align-content: center;
  }
  .apt-category-toolbar__count,
  .apt-category-toolbar__actions {
    justify-content: center;
    min-height: 42px;
  }
  .apt-category-toolbar__actions {
    margin-left: 0;
    justify-content: space-between;
    width: 100%;
  }
}
@media (max-width: 767px) {
  #category { --apt-cat-block-gap: 24px; }
  .apt-category-subcats__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .apt-category-grid {
    --apt-cat-cols: 2;
  }
}
@media (max-width: 420px) {
  .apt-category-subcats__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

/* =========================================================================
   IMÁGENES DE FONDO (rutas relativas al CSS del tema → /themes/apparentia/)
   ========================================================================= */
/* background images via inline style in template */

.apt-gallery__cell--1 { background-image: url('../img/gallery-1.jpg'); }
.apt-gallery__cell--2 { background-image: url('../img/gallery-2.jpg'); }
.apt-gallery__cell--3 { background-image: url('../img/gallery-3.jpg'); }
.apt-gallery__cell--4 { background-image: url('../img/gallery-4.jpg'); }
.apt-gallery__cell--5 { background-image: url('../img/gallery-5.jpg'); }
.apt-gallery__cell--6 { background-image: url('../img/gallery-6.jpg'); }
.apt-gallery__cell--7 { background-image: url('../img/gallery-7.jpg'); }

/* =========================================================================
   RESPONSIVE
   ========================================================================= */
@media (min-width: 1200px) and (max-width: 1440px) {
  /* Escritorio estrecho: el nav de escritorio reaparece a 1200px — apretar
     gap y padding de ítems para que quepa sin cortarse. */
  #_desktop_top_menu .top-menu { gap: 24px; }
  .apt-nav-list > .apt-nav-item { padding: 0 12px; }
}
@media (max-width: 1100px) {
  .apt-gallery { gap: 20px; }
  .featured-products .products,
  .apt-collection .products { grid-template-columns: repeat(2, 1fr); }
}
/* ── Logo móvil ── */
.apt-mobile-logo {
  display: none;
  font-family: var(--apt-display);
  font-size: var(--apt-fs-xl);
  letter-spacing: 0.28em;
  color: var(--apt-ink) !important;
  text-decoration: none;
  white-space: nowrap;
}
.apt-mobile-logo:hover,
.apt-mobile-logo:active,
.apt-mobile-logo:visited { color: var(--apt-ink) !important; }

/* ── MÓVIL / TABLET: hamburger y cajón ──
   Breakpoint 1199px: el nav de escritorio (3 columnas) no cabe en tablet y se
   corta. Todos los iPad —portrait y landscape, incl. Pro de 1024px— caen aquí y
   usan la hamburguesa. El nav de escritorio solo se muestra a partir de 1200px. */
@media (max-width: 1199px) {
  .apt-hamburger { display: flex; }
  .apt-header__nav { display: none; }
  .apt-header__left { display: none; }
  .apt-mobile-logo { display: block; }
  /* Un solo gutter: el .container no aporta padding horizontal */
  #header .container,
  #header > .container {
    max-width: none !important;
    width: 100% !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
  }
  .apt-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    width: 100%;
    box-sizing: border-box;
    padding: 0 var(--apt-gut);
  }
  .apt-header__right {
    gap: 12px;
    flex-shrink: 0;
  }
  #header .apt-header__right > *,
  #header .apt-header__right #_desktop_cart,
  #header .apt-header__right .blockcart,
  #header .apt-header__right .apt-cart-dropdown {
    margin: 0 !important;
    padding: 0 !important;
  }
  #header .apt-hamburger {
    margin: 0 0 0 14px !important;
    padding: 0;
  }
  #header .blockcart .header,
  #header .blockcart > a {
    margin: 0 !important;
    padding: 0 !important;
  }
}

@media (max-width: 1199px) {
  /* Menú de escritorio oculto en móvil/tablet */
  .apt-header__nav { display: none; }
  /* En tablet/móvil el header de home es siempre sólido (crema) aunque tenga
     clase hero: con hamburguesa no tiene sentido el overlay transparente, y así
     el logo móvil y los iconos quedan legibles en todo el rango. */
  #header.apt-header--hero {
    position: fixed;
    top: 0;
    background: var(--apt-cream) !important;
    border-bottom: 1px solid var(--apt-line) !important;
  }
  #header.apt-header--hero .apt-logo-text,
  #header.apt-header--hero .apt-nav-link { color: var(--apt-ink) !important; }

  /* En movil el header es siempre solido (fondo crema), asi que TODOS los iconos van en ink,
     igual que el sticky de escritorio.

     Cuidado con la especificidad: la regla de escritorio
       #header.apt-header--hero:not(.apt-header--solid) .apt-header__right .apt-icon-link
     puntua (1,4,0) — el :not() cuenta como clase — y pinta blanco. Una regla movil
     `#header.apt-header--hero .apt-header__right .apt-icon-link` solo llega a (1,3,0)
     y PIERDE. De ahi el !important: iconos blancos sobre crema mientras no se hacia scroll. */
  #header.apt-header--hero .apt-header__right .apt-icon-link,
  #header.apt-header--hero .apt-header__right .apt-cart-dropdown__toggle,
  #header.apt-header--hero .apt-header__contact-link { color: var(--apt-ink) !important; }

  #header.apt-header--hero .apt-header__right .apt-icon-link:hover,
  #header.apt-header--hero .apt-header__right .apt-icon-link:focus-visible,
  #header.apt-header--hero .apt-header__right .apt-cart-dropdown__toggle:hover,
  #header.apt-header--hero .apt-header__right .apt-cart-dropdown__toggle:focus-visible,
  #header.apt-header--hero .apt-header__contact-link:hover,
  #header.apt-header--hero .apt-header__contact-link:focus-visible { color: var(--apt-terracotta) !important; }

  #header.apt-header--hero .apt-hamburger span { background: var(--apt-ink) !important; }
  #header.apt-header--hero img.logo { filter: none; }
}

@media (max-width: 991px) {
  /* Layout home — columnas de .apt-cats gestionadas por --apt-cols del módulo */
  .apt-reviews { grid-template-columns: 1fr; gap: 44px; padding: 0 var(--apt-gut); }
  .apt-review { border-left: none; padding: 0; }
  .apt-atelier { grid-template-columns: 1fr; gap: 32px; }
  .apt-atelier__text {
    padding: 32px var(--apt-gut) 0;
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 100%;
    box-sizing: border-box;
  }
  .apt-atelier__copy { margin-left: auto; margin-right: auto; }
  .apt-atelier__img { min-height: 320px; }
  .apt-features { grid-template-columns: repeat(2, 1fr); gap: 40px 24px; }
}

/* =========================================================================
   PRODUCTO — tokens y shell
   ========================================================================= */
#product {
  --apt-prod-pad: var(--apt-gut);
  --apt-cat-pad: var(--apt-prod-pad);
  --apt-prod-gap: clamp(24px, 3vw, 48px);
  --apt-prod-col-gap: clamp(32px, 4vw, 64px);
  --apt-prod-thumb-w: 112px;
  --apt-prod-breadcrumb-h: clamp(46px, 6vw, 56px);
  --apt-prod-gallery-h: calc(
    100svh - var(--apt-header-h) - var(--apt-prod-breadcrumb-h) - (2 * var(--apt-prod-gap))
  );
  --apt-prod-gallery-gap: 12px;
}

#product #content-wrapper {
  flex: none !important;
  max-width: none !important;
  width: 100% !important;
  float: none !important;
  padding: 0 !important;
}

#product .apt-category-strip--breadcrumb {
  padding: clamp(14px, 2vw, 18px) var(--apt-prod-pad);
}

#product .apt-breadcrumb__list {
  row-gap: 6px;
}

#product .apt-breadcrumb__item:last-child {
  min-width: 0;
  flex: 1 1 auto;
}

#product .apt-breadcrumb__current {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  max-width: min(100%, 52ch);
  font-weight: 400;
  color: var(--apt-muted);
}

#product #wrapper > .container,
#product #wrapper .container {
  max-width: 100% !important;
  width: 100% !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}

.apt-product-wrapper {
  width: 100%;
  max-width: 100%;
  overflow: visible;
}
.apt-product-wrapper > .container { display: none; }

.apt-product-main {
  width: 100%;
  max-width: 100%;
  padding: 0;
}

.apt-product {
  padding: 0;
  padding-bottom: clamp(48px, 6vw, 80px);
}

/* Anular reglas legacy de theme.css (#product #content, máscara centrada) */
#product #content {
  max-width: none !important;
  margin: 0 !important;
}

/* =========================================================================
   PRODUCTO — layout galería + buybox
   ========================================================================= */
.apt-product-layout {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: var(--apt-prod-col-gap);
  align-items: start;
  padding: var(--apt-prod-gap) var(--apt-prod-pad) 0;
  margin-bottom: var(--apt-prod-gap);
}

.apt-product-gallery {
  position: relative;
  width: auto;
  max-width: none;
}

#product .apt-product-gallery .page-content,
#product .apt-product-gallery .apt-product-gallery__inner {
  padding: 0;
  margin: 0;
}

#product #main .images-container .js-qv-mask,
#product #main .images-container .js-qv-mask.scroll {
  max-height: none;
  margin: 0 !important;
}

#product .apt-product-gallery .js-qv-mask,
#product .apt-product-gallery .js-qv-mask.scroll,
#product .apt-product-gallery .mask {
  flex: 0 0 var(--apt-prod-thumb-w);
  width: var(--apt-prod-thumb-w) !important;
  max-height: none;
  margin: 0 !important;
  white-space: normal;
  overflow-x: hidden;
  overflow-y: auto;
  scrollbar-width: thin;
  -webkit-overflow-scrolling: touch;
}

#product .product-cover {
  margin: 0;
}

/* Mismo criterio que en las miniaturas de listado: el rotulo «En oferta» a ancho
   completo pegado al borde superior y los chips (descuento, agotado) colgando
   por debajo, con hueco. Antes el descuento iba en absolute sobre la propia
   barra y los dos marrones se leian como una sola pegatina. */
.apt-product-gallery .product-cover .product-flags {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 3;
  margin: 0;
  padding: 0;
  list-style: none;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 10px;
  pointer-events: none;
}

#product .apt-product-gallery .product-cover .product-flag {
  pointer-events: auto;
  /* Los chips van metidos hacia dentro; la barra no (ver regla siguiente). */
  margin: 0 0 0 12px;
}

#product .apt-product-gallery .product-cover .product-flag.on-sale {
  width: 100%;
  margin: 0 0 8px;
  text-align: center;
  box-sizing: border-box;
}

#product .apt-product-gallery .product-cover .product-flag.discount,
#product .apt-product-gallery .product-cover .product-flag.discount-percentage,
#product .apt-product-gallery .product-cover .product-flag.discount-amount {
  position: static;
  width: fit-content;
  z-index: 4;
}

.apt-product-gallery .images-container {
  display: flex;
  flex-direction: row;
  align-items: stretch;
  gap: var(--apt-prod-gallery-gap);
  height: var(--apt-prod-gallery-h);
}

.apt-product-gallery .product-cover {
  position: relative;
  flex: 0 0 auto;
  height: 100%;
  width: auto;
  /* Mismo ratio que las fotos originales (800x1200): encaja exacta, sin recorte ni bandas. */
  aspect-ratio: 2 / 3;
  overflow: hidden;
  background: var(--apt-cream-deep);
}

.apt-product-gallery .product-cover img,
.apt-product-gallery .product-cover picture {
  display: block;
  width: 100%;
  height: 100%;
}

#product .scroll-box-arrows { display: none !important; }

#product .apt-product-gallery .product-cover img {
  object-fit: cover;
  background: transparent;
}

.apt-product-gallery .product-cover .layer {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(33, 28, 23, 0.08);
  opacity: 0;
  transition: opacity var(--apt-trans);
  cursor: pointer;
}

.apt-product-gallery .product-cover:hover .layer { opacity: 1; }

.apt-product-gallery .product-cover .layer .material-icons {
  font-size: 28px;
  color: var(--apt-white);
}

.apt-product-gallery .product-images {
  display: flex;
  flex-direction: column;
  flex-wrap: nowrap;
  gap: var(--apt-prod-gallery-gap);
  margin: 0;
  padding: 0;
  list-style: none;
  overflow: visible;
}

.apt-product-gallery .thumb-container {
  flex: 0 0 auto;
}

#product .apt-product-gallery .thumb-container .thumb {
  margin: 0;
}

.apt-product-gallery .thumb-container img {
  display: block;
  width: var(--apt-prod-thumb-w);
  height: calc(var(--apt-prod-thumb-w) * 3 / 2);
  object-fit: cover;
  border: 1px solid transparent;
  cursor: pointer;
  transition: border-color var(--apt-trans), opacity var(--apt-trans);
  opacity: 0.72;
}

.apt-product-gallery .thumb-container img.selected,
.apt-product-gallery .thumb-container img.js-thumb-selected {
  border-color: var(--apt-ink);
  opacity: 1;
}

/* =========================================================================
   LIGHTBOX DE GALERIA (#product-modal)
   Solo dos cosas: lista de imagenes + la seleccionada en grande.

   OJO CON LA ESPECIFICIDAD: el CSS de classic (theme-*.css, combinado por CCC
   y cargado ANTES que este fichero) trae reglas como
     #product-modal .modal-content .modal-body { display:flex; margin-left:-35% }
     #product-modal .modal-content .modal-body .product-images img { width:9.25rem }
     #product-modal .modal-content .modal-body .mask { max-height:49.38rem; overflow:hidden }
   con especificidad (1,3,0). Cualquier regla nuestra con menos especificidad
   (p.ej. `.apt-lightbox .modal-body`) es IGNORADA. Por eso todo aqui va
   prefijado con #product-modal y a la misma profundidad o mayor.

   Las clases js-modal-* las usa el JS de classic para cambiar la imagen y
   alternar .selected: no renombrarlas.
   ========================================================================= */
#product-modal.apt-lightbox {
  --apt-lb-pad: clamp(16px, 3vw, 40px);
  --apt-lb-thumb-w: 84px;
  padding: 0 !important;
}

/* Fondo ink a pantalla completa */
#product-modal.apt-lightbox .modal-dialog {
  max-width: none;
  width: 100%;
  height: 100%;
  margin: 0;
  display: flex;
  align-items: center;
  justify-content: center;
}

#product-modal.apt-lightbox .modal-content {
  width: 100%;
  height: 100%;
  position: relative;
  padding: 0;
  background: var(--apt-ink);
  border: 0;
  border-radius: var(--apt-radius, 0);
  box-shadow: none;
}

/* Cuerpo: grande a la izquierda, lista a la derecha.
   Anula el display:flex + margin-left:-35% de classic. */
#product-modal.apt-lightbox .modal-content .modal-body {
  display: grid;
  grid-template-columns: minmax(0, 1fr) var(--apt-lb-thumb-w);
  gap: var(--apt-lb-pad);
  align-items: center;
  width: 100%;
  height: 100%;
  margin: 0;
  padding: var(--apt-lb-pad);
  overflow: hidden;
}

/* --- Imagen seleccionada, en grande --- */
#product-modal.apt-lightbox .modal-content .modal-body figure {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 100%;
  min-height: 0;
  margin: 0;
}

#product-modal.apt-lightbox .modal-content .modal-body figure picture {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  min-height: 0;
}

#product-modal.apt-lightbox .modal-content .modal-body .product-cover-modal,
#product-modal.apt-lightbox .modal-content .modal-body .js-modal-product-cover {
  display: block;
  width: auto;
  height: auto;
  max-width: 100%;
  max-height: 100%;
  /* contain: en el zoom se ve la pieza entera, no recortada como en la ficha */
  object-fit: contain;
  background: transparent;
}

/* --- Lista de imagenes --- */
#product-modal.apt-lightbox .modal-content .modal-body .thumbnails {
  position: relative;
  height: 100%;
  min-height: 0;
  display: flex;
  align-items: center;
}

/* Anula max-height/overflow/margin-top de classic */
#product-modal.apt-lightbox .modal-content .modal-body .mask,
#product-modal.apt-lightbox .modal-content .modal-body .mask.nomargin {
  position: relative;
  width: 100%;
  max-height: 100%;
  margin: 0;
  overflow-y: auto;
  overflow-x: hidden;
  scrollbar-width: thin;
  scrollbar-color: rgba(255, 255, 255, 0.28) transparent;
}

#product-modal.apt-lightbox .modal-content .modal-body .product-images {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin: 0;
  padding: 0;
  list-style: none;
}

#product-modal.apt-lightbox .modal-content .modal-body .product-images li {
  list-style: none;
}

/* Anula width:9.25rem y el border 3px del hover de classic */
#product-modal.apt-lightbox .modal-content .modal-body .product-images img {
  display: block;
  width: var(--apt-lb-thumb-w);
  height: calc(var(--apt-lb-thumb-w) * 3 / 2); /* 2:3, igual que el catalogo */
  object-fit: cover;
  cursor: pointer;
  background: transparent;
  border: 1px solid transparent;
  opacity: 0.5;
  transition: opacity var(--apt-trans), border-color var(--apt-trans);
}

#product-modal.apt-lightbox .modal-content .modal-body .product-images img:hover {
  border: 1px solid rgba(255, 255, 255, 0.5);
  opacity: 0.85;
}

#product-modal.apt-lightbox .modal-content .modal-body .product-images img.selected {
  border: 1px solid var(--apt-white, #fff);
  opacity: 1;
}

/* --- Nada mas: sin pie de foto ni flechas --- */
#product-modal.apt-lightbox .modal-content .modal-body .image-caption,
#product-modal.apt-lightbox .modal-content .modal-body .arrows {
  display: none;
}

/* --- Cerrar --- */
#product-modal.apt-lightbox .apt-lightbox__close {
  position: absolute;
  top: var(--apt-lb-pad);
  right: var(--apt-lb-pad);
  z-index: 5;
  width: 44px;
  height: 44px;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  font-size: 26px;
  line-height: 1;
  color: var(--apt-white, #fff);
  background: transparent;
  border: 1px solid rgba(255, 255, 255, 0.35);
  border-radius: var(--apt-radius, 0);
  cursor: pointer;
  transition: background var(--apt-trans), border-color var(--apt-trans);
}

#product-modal.apt-lightbox .apt-lightbox__close:hover {
  background: var(--apt-terracotta);
  border-color: var(--apt-terracotta);
}

/* --- Movil: la lista pasa debajo, en fila --- */
@media (max-width: 767px) {
  #product-modal.apt-lightbox .modal-content .modal-body {
    grid-template-columns: minmax(0, 1fr);
    grid-template-rows: minmax(0, 1fr) auto;
    gap: 12px;
  }

  #product-modal.apt-lightbox .modal-content .modal-body .thumbnails {
    height: auto;
  }

  #product-modal.apt-lightbox .modal-content .modal-body .mask,
  #product-modal.apt-lightbox .modal-content .modal-body .mask.nomargin {
    max-height: none;
    overflow-x: auto;
    overflow-y: hidden;
  }

  #product-modal.apt-lightbox .modal-content .modal-body .product-images {
    flex-direction: row;
    justify-content: center;
  }

  #product-modal.apt-lightbox .modal-content .modal-body .product-images img {
    width: 64px;
    height: 96px;
  }
}

/* Buybox */
.apt-product-buybox {
  position: sticky;
  top: calc(var(--apt-header-h) + 24px);
  min-width: 0;
  padding-top: clamp(8px, 1.5vw, 16px);
}

.apt-product-buybox__eyebrow {
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-2xs);
  font-weight: 400;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--apt-muted);
  margin: 0 0 10px;
}

.apt-product-buybox__title {
  font-family: var(--apt-display);
  font-weight: 400;
  font-size: var(--apt-fs-d3);
  letter-spacing: 0.14em;
  text-indent: 0.14em;
  text-transform: uppercase;
  line-height: 1.15;
  margin: 0;
  color: var(--apt-ink);
}

.apt-product-buybox__rule {
  display: block;
  width: 56px;
  height: 1px;
  background: var(--apt-terracotta);
  margin: 14px 0 20px;
}

.apt-product-buybox__excerpt {
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-lg);
  font-weight: 400;
  line-height: 1.75;
  color: var(--apt-ink-soft);
  margin-bottom: 24px;
}

.apt-product-buybox__excerpt p:last-child { margin-bottom: 0; }

/* Precios */
#product .product-prices {
  margin-bottom: 24px;
}

#product .product-prices .product-price {
  margin: 0;
}

#product .product-prices .current-price {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 10px 14px;
}

#product .product-prices .current-price-value,
#product .product-prices .price {
  font-family: var(--apt-display);
  font-size: var(--apt-fs-d4);
  font-weight: 500;
  letter-spacing: 0.04em;
  color: var(--apt-ink);
}

#product .product-prices .product-discount {
  margin-bottom: 6px;
}

#product .product-prices .regular-price {
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-md);
  letter-spacing: 0.06em;
  color: var(--apt-muted);
  text-decoration: line-through;
}

#product .product-prices .discount {
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-2xs);
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--apt-terracotta);
}

#product .tax-shipping-delivery-label,
#product .product-unit-price,
#product .product-without-taxes,
#product .price-ecotax {
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-xs);
  letter-spacing: 0.06em;
  color: var(--apt-muted);
  margin: 8px 0 0;
}

/* seQura — widget de financiacion, se inyecta tras .product-prices */
#product .apt-product-buybox .sequra-promotion-widget {
  margin: -8px 0 24px;
  max-width: 460px;
  clear: both;
  text-align: left;
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-xs);
  letter-spacing: 0.04em;
  color: var(--apt-ink-soft);
}

#product .apt-product-buybox .sequra-promotion-widget :is(a, button, span, div) {
  border-radius: var(--apt-radius);
}

/* Variantes */
#product .product-variants {
  margin-bottom: 24px;
}

#product .product-variants-item {
  margin-bottom: 18px;
}

#product .product-variants-item .control-label {
  display: block;
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-2xs);
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--apt-muted);
  margin-bottom: 10px;
}

/* Cabecera de la variante: etiqueta a la izquierda y lo que enganche el hook
   displayAptSizeGuide a la derecha (guia de tallas). Si no hay modulo
   enganchado queda un flex de un solo hijo y la fila se ve igual que antes. */
#product .apt-variant-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 10px;
}

#product .apt-variant-head .control-label { margin-bottom: 0; }

#product .product-variants-item .form-control-select {
  width: 100%;
  max-width: 100%;
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-xs);
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--apt-ink);
  background: transparent;
  border: 1px solid var(--apt-line);
  border-radius: 0;
  padding: 12px 16px;
  height: auto;
  box-shadow: none;
}

#product .product-variants-item ul {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 0;
  padding: 0;
  list-style: none;
}

#product .product-variants-item .input-container { float: none; margin: 0; }

#product .product-variants-item .color,
#product .product-variants-item .input-color + span.color {
  width: 28px;
  height: 28px;
  border-radius: 0;
  border: 1px solid var(--apt-line);
  box-shadow: none;
}

#product .product-variants-item .input-color:checked + span.color,
#product .product-variants-item .input-color:focus + span.color {
  outline: 2px solid var(--apt-ink);
  outline-offset: 2px;
}

#product .product-variants-item .radio-label {
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-xs);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--apt-ink);
}

#product .product-variants-item .input-radio + .radio-label {
  display: inline-block;
  padding: 10px 14px;
  border: 1px solid var(--apt-line);
  cursor: pointer;
  transition: border-color var(--apt-trans), color var(--apt-trans);
}

#product .product-variants-item .input-radio:checked + .radio-label {
  border-color: var(--apt-ink);
  color: var(--apt-ink);
}

#product .product-variants-item .input-radio { position: absolute; opacity: 0; }

/* Variantes sin existencias — solo se atenúan. Siguen siendo seleccionables a
   propósito: al elegirlas aparece el aviso de reposición por email. La marca la
   pone product-variants.tpl leyendo `attributes_quantity`. */
#product .product-variants-item .form-control-select option.apt-variant-agotada {
  color: var(--apt-muted);
}

#product .product-variants-item .apt-variant-agotada .radio-label {
  color: var(--apt-muted);
}

#product .product-variants-item .apt-variant-agotada .color,
#product .product-variants-item .apt-variant-agotada .input-color + span.color {
  opacity: 0.45;
}

/* Seleccionada, vuelve a leerse con normalidad: ya está en primer plano y la
   ficha indica ahí mismo que está agotada. */
#product .product-variants-item .apt-variant-agotada .input-radio:checked + .radio-label {
  color: var(--apt-ink);
}

#product .product-variants-item .apt-variant-agotada .input-color:checked + span.color {
  opacity: 1;
}

/* Añadir al carrito */
#product .product-add-to-cart .control-label {
  display: block;
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-2xs);
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--apt-muted);
  margin-bottom: 10px;
}

#product .product-quantity {
  display: flex;
  flex-wrap: wrap;
  align-items: stretch;
  gap: 12px;
  margin-bottom: 16px;
}

#product .product-quantity .qty {
  flex: 0 0 88px;
}

#product .product-quantity .qty input,
#product .product-quantity #quantity_wanted {
  width: 100%;
  height: 100%;
  min-height: 48px;
  text-align: center;
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-md);
  color: var(--apt-ink);
  background: transparent;
  border: 1px solid var(--apt-line);
  border-radius: 0;
  box-shadow: none;
  -moz-appearance: textfield;
}

#product .product-quantity .qty input::-webkit-outer-spin-button,
#product .product-quantity .qty input::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}

/* Flechas de cantidad (bootstrap-touchspin de classic).
   Las dos juntas tienen que medir exactamente lo que la caja del numero. Por
   defecto son dos botones de 23px sobre una caja de 48, con borde y fondo
   propios: quedaban cortos por arriba y por abajo y se leian como un widget
   pegado al lado en vez de como parte del mismo control.
   El reparto es 50% cada una, asi que si cambia el alto de la caja siguen
   cuadrando sin tocar numeros. */
#product .product-quantity .bootstrap-touchspin {
  display: flex;
  align-items: stretch;
  width: 100%;
}

#product .product-quantity .bootstrap-touchspin > .form-control {
  flex: 1 1 auto;
  min-width: 0;
  border-right: 0;
}

#product .product-quantity .input-group-btn-vertical {
  display: flex;
  flex-direction: column;
  flex: 0 0 26px;
  width: 26px;
  align-self: stretch;
}

#product .product-quantity .input-group-btn-vertical > .btn {
  flex: 1 1 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  /* position: static anula el absolute con el que classic las apila */
  position: static;
  width: 100%;
  height: auto;
  min-height: 0;
  padding: 0;
  margin: 0;
  background: transparent;
  border: 1px solid var(--apt-line);
  border-radius: 0;
  box-shadow: none;
  color: var(--apt-ink-soft);
  transition: background var(--apt-trans), color var(--apt-trans);
}

#product .product-quantity .input-group-btn-vertical > .btn + .btn { border-top: 0; }

#product .product-quantity .input-group-btn-vertical > .btn:hover {
  background: var(--apt-ink);
  color: var(--apt-white);
}

#product .product-quantity .input-group-btn-vertical .material-icons {
  position: static;
  top: auto;
  left: auto;
  font-size: 16px;
  line-height: 1;
}

#product .product-quantity .add {
  flex: 1 1 180px;
}

#product .product-quantity .wishlist-button {
  flex: 0 0 48px;
  display: flex;
  align-items: stretch;
  margin: 0;
}

#product .product-quantity .wishlist-button-add,
#product .product-quantity .wishlist-button .wishlist-button-add {
  width: 48px;
  height: 48px;
  min-width: 48px;
  min-height: 48px;
  margin: 0 !important;
  padding: 0;
  flex-shrink: 0;
  border-radius: 50%;
  background: #fff;
  box-shadow: 0 2px 8px rgba(26, 26, 26, 0.12);
}

#product .product-quantity .wishlist-button-add i,
#product .product-quantity .wishlist-button .wishlist-button-add i {
  color: var(--apt-ink-soft);
  font-size: 1.35rem;
}

#product .product-quantity .wishlist-button-add:hover,
#product .product-quantity .wishlist-button .wishlist-button-add:hover {
  opacity: 0.85;
}

#product .product-add-to-cart .add-to-cart {
  width: 100%;
  min-height: 48px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 14px 24px;
}

#product .product-add-to-cart .add-to-cart .material-icons { display: none; }

/* CTA deshabilitado — sin esto el boton agotado se pintaba igual que uno activo
   (fondo ink + hover terracotta) e invitaba al click. Aplica tambien al quickview. */
.product-add-to-cart .add-to-cart[disabled],
.product-add-to-cart .add-to-cart[disabled]:hover,
.product-add-to-cart .add-to-cart[disabled]:focus {
  background: var(--apt-cream-soft);
  border-color: var(--apt-line);
  color: var(--apt-muted);
  cursor: not-allowed;
}

/* Badge de agotado: ocupa el hueco del boton de comprar, misma altura (48px) pero
   en terracotta sobre cream-deep para que no se confunda con un CTA. */
#product .product-quantity--oos .apt-product-oos,
.product-quantity--oos .apt-product-oos {
  flex: 1 1 auto;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  padding: 14px 24px;
  border: 1px solid var(--apt-terracotta);
  background: var(--apt-cream-deep);
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-xs);
  font-weight: 500;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--apt-terracotta);
  text-align: center;
}

/* Boton de aviso, justo debajo del badge y con el mismo alto */
#product .apt-product-oos__notify {
  min-height: 48px;
  margin-top: 10px;
}

/* Las tallas que si quedan, bajo el rotulo de agotado. Van en ink y no en
   terracotta: el rotulo de arriba ya avisa de lo que falta, y esto es lo que se
   puede comprar. */
#product .apt-product-oos__otras {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  margin: 12px 0 0;
}
#product .apt-product-oos__otras-texto {
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-2xs);
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--apt-muted);
}
#product .apt-product-oos__talla {
  min-width: 44px;
  min-height: 36px;
  padding: 0 12px;
  border: 1px solid var(--apt-ink);
  border-radius: var(--apt-radius);
  background: transparent;
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-xs);
  letter-spacing: 0.1em;
  color: var(--apt-ink);
  cursor: pointer;
  transition: background var(--apt-trans), color var(--apt-trans);
}
#product .apt-product-oos__talla:hover,
#product .apt-product-oos__talla:focus-visible {
  background: var(--apt-ink);
  color: var(--apt-white);
}

/* La coletilla «(agotada)» de los grupos pintados como radios. En el <select> va
   dentro del texto de la opcion y no admite estilo propio. */
#product .apt-variant-agotada__nota {
  color: var(--apt-muted);
}

/* ── Modal de aviso de reposicion (ps_emailalerts) ── */
.apt-alert-modal {
  position: fixed;
  inset: 0;
  z-index: 1200;
  display: none;
  align-items: center;
  justify-content: center;
  padding: var(--apt-gut);
  background: rgba(33, 28, 23, 0.55);
}

.apt-alert-modal.is-open { display: flex; }

.apt-alert-modal__sheet {
  width: 100%;
  max-width: 460px;
  max-height: 90vh;
  overflow-y: auto;
  background: var(--apt-cream);
  border: 1px solid var(--apt-line);
}

.apt-alert-modal__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 18px 24px;
  border-bottom: 1px solid var(--apt-line);
}

.apt-alert-modal__title {
  margin: 0;
  font-family: var(--apt-display);
  font-size: var(--apt-fs-lg);
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--apt-ink);
}

/* Aspa en CSS, sin icono: misma solucion que el modal de filtros */
.apt-alert-modal__close {
  flex: 0 0 auto;
  width: 32px;
  height: 32px;
  padding: 0;
  border: 0;
  background: transparent;
  cursor: pointer;
  position: relative;
}

.apt-alert-modal__close span,
.apt-alert-modal__close span::after {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 16px;
  height: 1px;
  background: var(--apt-ink);
  content: '';
}

.apt-alert-modal__close span {
  transform: translate(-50%, -50%) rotate(45deg);
}

.apt-alert-modal__close span::after {
  top: 0;
  left: 0;
  transform: rotate(-90deg);
}

.apt-alert-modal__body { padding: 24px; }

.apt-alert-modal__intro,
.apt-alert-modal__account {
  margin: 0 0 18px;
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-md);
  line-height: 1.6;
  color: var(--apt-ink-soft);
}

.apt-alert-modal__field { margin-bottom: 16px; }

.apt-alert-modal__label {
  display: block;
  margin-bottom: 6px;
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-2xs);
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--apt-muted);
}

.apt-alert-modal__input {
  display: block;
  width: 100%;
  min-height: 46px;
  padding: 10px 14px;
  border: 1px solid var(--apt-line);
  border-radius: 0;
  background: var(--apt-white);
  box-shadow: none;
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-md);
  color: var(--apt-ink);
}

.apt-alert-modal__input:focus {
  outline: none;
  border-color: var(--apt-ink);
}

.apt-alert-modal__input.has-error { border-color: var(--apt-terracotta); }
.apt-alert-modal__input::placeholder { color: var(--apt-muted); }

.apt-alert-modal__check {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  margin: 0;
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-sm);
  line-height: 1.5;
  color: var(--apt-ink-soft);
  cursor: pointer;
}

.apt-alert-modal__check input {
  flex: 0 0 auto;
  width: 16px;
  height: 16px;
  margin-top: 2px;
  accent-color: var(--apt-ink);
}

.apt-alert-modal__check a {
  color: var(--apt-terracotta);
  text-decoration: underline;
}

.apt-alert-modal__field--check.has-error .apt-alert-modal__check { color: var(--apt-terracotta); }

.apt-alert-modal__gdpr {
  margin-bottom: 14px;
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-xs);
  color: var(--apt-muted);
}

.apt-alert-modal__error {
  margin: 0 0 14px;
  padding: 10px 12px;
  border: 1px solid var(--apt-terracotta);
  background: var(--apt-cream-deep);
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-sm);
  color: var(--apt-terracotta);
}

.apt-alert-modal__actions {
  display: flex;
  gap: 10px;
  margin-top: 20px;
  padding-top: 18px;
  border-top: 1px solid var(--apt-line);
}

.apt-alert-modal__actions .apt-btn {
  flex: 1 1 0;
  min-height: 46px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
}

/* Loader: solo visible mientras la peticion esta en vuelo */
.apt-alert-modal__loader {
  width: 14px;
  height: 14px;
  border: 2px solid currentColor;
  border-top-color: transparent;
  border-radius: 50%;
  animation: apt-alert-spin 0.7s linear infinite;
}

@keyframes apt-alert-spin { to { transform: rotate(360deg); } }

@media (prefers-reduced-motion: reduce) {
  .apt-alert-modal__loader { animation-duration: 2s; }
}

/* Check de confirmacion dibujado en CSS: el tema oculta los material-icons */
.apt-alert-modal__check-icon {
  display: block;
  width: 44px;
  height: 44px;
  margin: 4px auto 18px;
  border: 1px solid var(--apt-terracotta);
  border-radius: 50%;
  position: relative;
}

.apt-alert-modal__check-icon::after {
  content: '';
  position: absolute;
  top: 46%;
  left: 50%;
  width: 8px;
  height: 15px;
  border: solid var(--apt-terracotta);
  border-width: 0 1.5px 1.5px 0;
  transform: translate(-50%, -50%) rotate(45deg);
}

.apt-alert-modal__done {
  margin: 0 0 20px;
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-md);
  line-height: 1.6;
  color: var(--apt-ink-soft);
  text-align: center;
}

body.apt-alert-modal-open { overflow: hidden; }

@media (max-width: 575px) {
  .apt-alert-modal { padding: 16px; }
  .apt-alert-modal__body { padding: 20px; }
  .apt-alert-modal__actions { flex-direction: column-reverse; }
}

#product .product-availability .alert {
  border-radius: 0;
  border: 1px solid var(--apt-line);
  background: var(--apt-cream-soft);
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-sm);
  color: var(--apt-ink-soft);
}

#product .product-minimal-quantity {
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-xs);
  color: var(--apt-muted);
  margin: 8px 0 0;
}

/* Reassurance */
.apt-product-reassurance { margin-top: 28px; }

#product #block-reassurance {
  background: transparent;
  border: none;
  box-shadow: none;
  padding: 0;
}

#product #block-reassurance ul {
  margin: 0;
  padding: 0;
  list-style: none;
}

#product #block-reassurance li {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 10px 0;
  border-bottom: 1px solid var(--apt-line);
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-sm);
  color: var(--apt-ink-soft);
}

#product #block-reassurance li:last-child { border-bottom: none; }

/* Tabs / detalles */
.apt-product-details {
  margin-top: 0;
  margin-left: var(--apt-prod-pad);
  margin-right: var(--apt-prod-pad);
  padding-top: clamp(32px, 4vw, 48px);
  border-top: 1px solid var(--apt-line);
}

#product .apt-product-tabs__nav {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 28px;
  border-bottom: 1px solid var(--apt-line);
  margin-bottom: clamp(24px, 3vw, 32px);
  padding: 0;
}

#product .apt-product-tabs__nav .nav-item { margin: 0; }

#product .apt-product-tabs__nav .nav-link {
  border: none;
  border-radius: 0;
  background: transparent;
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-sm);
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--apt-muted);
  padding: 12px 0;
  margin-bottom: -1px;
  border-bottom: 2px solid transparent;
  transition: color var(--apt-trans), border-color var(--apt-trans);
}

#product .apt-product-tabs__nav .nav-link:hover { color: var(--apt-ink); }

#product .apt-product-tabs__nav .nav-link.active,
#product .apt-product-tabs__nav .nav-link.js-product-nav-active {
  color: var(--apt-ink);
  border-bottom-color: var(--apt-terracotta);
  background: transparent;
}

/* Texto largo de lectura: 18px. A 16px el bloque quedaba pequeño dentro del
   panel, y con max-width 760px la línea se iba a ~90 caracteres (demasiado).
   A 18px la medida baja a ~78, que es donde se lee cómodo. */
#product .apt-product-tabs__body,
#product .apt-product-tabs__content .product-description {
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-lg);
  font-weight: 400;
  line-height: 1.75;
  color: var(--apt-ink-soft);
  max-width: 760px;
}

/* -------------------------------------------------------------------------
   Neutralizar la tipografía incrustada en las descripciones.
   La migración de la tienda antigua dejó `style="..."` dentro del HTML que
   guarda la BD: font-size de 11 a 14.44px, font-family Quicksand y colores
   fijos como #777777. Al ser estilos en línea ganan a cualquier regla del
   tema, así que la descripción se veía a 13px en una fuente que no es de la
   marca, dijera lo que dijera el CSS. Afecta a ~210 descripciones y ~167
   extractos del catálogo.
   Se anulan tamaño, fuente, interlineado y color; NO se tocan negritas,
   cursivas ni listas, que sí son contenido legítimo del editor.
   El arreglo de fondo es limpiar el HTML en la BD; esto lo cubre mientras.
   ------------------------------------------------------------------------- */
#product .apt-product-tabs__content .product-description :is(p, span, div, li, td, th, section, article, font),
.apt-product-buybox__excerpt :is(p, span, div, li, td, th, section, article, font) {
  font-size: inherit !important;
  font-family: inherit !important;
  line-height: inherit !important;
  color: inherit !important;
  background: none !important;
}
/* Los enlaces conservan su color de marca */
#product .apt-product-tabs__content .product-description a,
.apt-product-buybox__excerpt a {
  font-size: inherit !important;
  font-family: inherit !important;
  color: var(--apt-terracotta) !important;
}

#product .product-features .h6,
#product .apt-product-tabs__subtitle {
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-2xs);
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--apt-muted);
  margin-bottom: 16px;
}

#product .data-sheet {
  display: grid;
  grid-template-columns: minmax(120px, 0.9fr) 1.4fr;
  gap: 10px 20px;
  margin: 0;
}

#product .data-sheet .name {
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-xs);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--apt-muted);
  margin: 0;
  font-weight: 400;
}

#product .data-sheet .value {
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-base);
  color: var(--apt-ink-soft);
  margin: 0;
}

#product .product-reference,
#product .product-manufacturer,
#product .product-quantities,
#product .product-condition {
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-md);
  color: var(--apt-ink-soft);
  margin-bottom: 12px;
}

#product .product-reference .label,
#product .product-manufacturer .label {
  font-size: var(--apt-fs-2xs);
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--apt-muted);
  margin-right: 8px;
}

/* Complementos (pack, accesorios nativos) */
.apt-product-accessories {
  margin-top: clamp(56px, 7vw, 88px);
  margin-left: var(--apt-prod-pad);
  margin-right: var(--apt-prod-pad);
  padding-top: clamp(32px, 4vw, 48px);
  border-top: 1px solid var(--apt-line);
}

.apt-product-accessories .apt-section-title { margin-bottom: 12px; }

.apt-product-accessories .apt-section-rule { margin-bottom: clamp(28px, 4vw, 40px); }

/* Crosssell — mismo patrón que apt_collection (carrusel editorial) */
#product .apt-crosssell.apt-section {
  margin-top: clamp(56px, 7vw, 88px);
  width: 100vw;
  max-width: 100vw;
  position: relative;
  left: 50%;
  right: 50%;
  margin-left: -50vw;
  margin-right: -50vw;
  padding-top: clamp(48px, 6vw, 70px);
  padding-bottom: clamp(48px, 6vw, 70px);
  border-top: 1px solid var(--apt-line);
  box-sizing: border-box;
}

#product .apt-crosssell .apt-col-carousel {
  padding: 0 var(--apt-gut);
}

.apt-product-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: clamp(16px, 2vw, 24px);
  width: 100%;
  margin: 0;
}

#product .apt-product-grid > .product-miniature {
  width: 100%;
  max-width: none;
  padding: 0;
  margin: 0;
}

/* Pack, customization, descuentos */
#product .product-pack,
#product .product-customization,
#product .product-discounts {
  margin-bottom: 20px;
}

#product .product-pack__title,
#product .product-customization .h4,
#product .product-discounts .h3 {
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-2xs);
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--apt-muted);
  margin-bottom: 12px;
}

#product .product-customization .card,
#product .product-pack .card {
  border: 1px solid var(--apt-line);
  border-radius: 0;
  background: var(--apt-cream-soft);
  box-shadow: none;
}

@media (max-width: 991px) {
  .apt-product-layout {
    grid-template-columns: minmax(0, 1fr);
    gap: var(--apt-prod-gap);
    padding: var(--apt-prod-gap) var(--apt-prod-pad) 0;
    margin-bottom: var(--apt-prod-gap);
  }

  .apt-product-gallery {
    width: 100%;
    max-width: none;
  }

  .apt-product-gallery .images-container {
    flex-direction: column;
    gap: 12px;
    height: auto;
  }

  .apt-product-gallery .product-cover {
    width: 100%;
    height: auto;
    aspect-ratio: 2 / 3;
  }

  /* En tactil no hay hover: la capa de zoom queda visible como señal de que se puede ampliar */
  .apt-product-gallery .product-cover .layer {
    opacity: 1;
    background: transparent;
    align-items: flex-end;
    justify-content: flex-end;
    padding: 12px;
  }

  .apt-product-gallery .product-cover .layer .material-icons {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    font-size: 20px;
    color: var(--apt-ink);
    background: rgba(255, 255, 255, 0.9);
  }

  #product .apt-product-gallery .js-qv-mask,
  #product .apt-product-gallery .js-qv-mask.scroll,
  #product .apt-product-gallery .mask {
    flex: none;
    width: 100% !important;
    overflow-x: auto;
    overflow-y: hidden;
  }

  .apt-product-gallery .product-images {
    flex-direction: row;
    overflow-x: auto;
    scrollbar-width: thin;
  }

  .apt-product-buybox {
    position: static;
    padding-top: 0;
  }

  .apt-product-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

/* =========================================================================
   CARRITO — shell y layout editorial
   ========================================================================= */
#cart {
  --apt-cart-pad: var(--apt-gut);
  --apt-cart-gap: clamp(28px, 4vw, 56px);
  --apt-cart-summary-w: min(100%, 380px);
}

#cart #content-wrapper.apt-cart-main {
  flex: none !important;
  max-width: none !important;
  width: 100% !important;
  float: none !important;
  padding: 0 var(--apt-gut) !important;
  box-sizing: border-box;
}

#cart #main.apt-cart,
#cart #content.apt-cart {
  max-width: none !important;
  width: 100% !important;
  margin: 0 !important;
  padding: clamp(20px, 3vw, 36px) 0 clamp(56px, 7vw, 96px) !important;
  float: none !important;
  box-sizing: border-box;
}

#cart #wrapper > .container,
#cart #wrapper .container {
  max-width: 100% !important;
  width: 100% !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}

.apt-cart-wrapper {
  width: 100%;
  max-width: 100%;
  overflow: visible;
}
.apt-cart-wrapper > .container { display: none; }

#cart .apt-category-strip--breadcrumb {
  width: 100%;
  padding: clamp(14px, 2vw, 18px) var(--apt-gut);
  background: var(--apt-cream-soft);
  border-bottom: 1px solid var(--apt-line);
  box-sizing: border-box;
}

.apt-cart {
  width: 100%;
  max-width: 100%;
  margin: 0;
  box-sizing: border-box;
}

.apt-cart__head {
  margin-bottom: clamp(24px, 3vw, 36px);
  padding-bottom: clamp(16px, 2vw, 24px);
  border-bottom: 1px solid var(--apt-line);
}

.apt-cart__title {
  margin: 0;
  font-family: var(--apt-display);
  font-size: var(--apt-fs-d3);
  font-weight: 400;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--apt-ink);
  line-height: 1.15;
}

.apt-cart__meta {
  margin: 10px 0 0;
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-sm);
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--apt-muted);
}

.apt-cart__grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) var(--apt-cart-summary-w);
  gap: var(--apt-cart-gap);
  align-items: start;
}

.apt-cart__main { min-width: 0; }

.apt-cart__aside {
  position: sticky;
  top: calc(var(--apt-header-h) + 20px);
  align-self: start;
}

.apt-cart__back {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  margin-top: clamp(24px, 3vw, 32px);
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-xs);
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--apt-muted);
  text-decoration: none;
  transition: color var(--apt-trans);
}
.apt-cart__back .material-icons { font-size: 18px; }
.apt-cart__back:hover { color: var(--apt-terracotta); }

.apt-cart-summary {
  background: var(--apt-cream-soft);
  border: 1px solid var(--apt-line);
  padding: clamp(20px, 2.5vw, 28px);
}

.apt-cart-summary .card,
.apt-cart-summary .card-block {
  background: transparent;
  border: 0;
  padding: 0;
  margin: 0;
  box-shadow: none;
}

.apt-cart-items {
  list-style: none;
  margin: 0;
  padding: 0;
}

.apt-cart-item + .apt-cart-item {
  border-top: 1px solid var(--apt-line);
}

.apt-cart-line {
  display: grid;
  grid-template-columns: 100px minmax(0, 1fr) 116px minmax(72px, 96px) 32px;
  gap: clamp(16px, 2vw, 24px);
  align-items: center;
  padding: clamp(20px, 2.5vw, 28px) 0;
}

.apt-cart-line__media {
  display: block;
  aspect-ratio: 3 / 4;
  overflow: hidden;
  background: var(--apt-cream-soft);
  text-decoration: none;
}
.apt-cart-line__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.apt-cart-line__name {
  margin: 0 0 8px;
  font-family: var(--apt-display);
  font-size: var(--apt-fs-base);
  font-weight: 400;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  line-height: 1.35;
}
.apt-cart-line__name a {
  color: var(--apt-ink);
  text-decoration: none;
  transition: color var(--apt-trans);
}
.apt-cart-line__name a:hover { color: var(--apt-terracotta); }

.apt-cart-line__attr {
  margin: 0 0 4px;
  font-size: var(--apt-fs-sm);
  color: var(--apt-muted);
  letter-spacing: 0.04em;
}
.apt-cart-line__attr-label {
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-size: var(--apt-fs-2xs);
}

.apt-cart-line__unit {
  margin-top: 10px;
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 8px;
}
.apt-cart-line__regular {
  font-size: var(--apt-fs-sm);
  color: var(--apt-muted);
  text-decoration: line-through;
}
.apt-cart-line__price {
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-base);
  color: var(--apt-ink);
}
.apt-cart-line__unit-price {
  font-size: var(--apt-fs-xs);
  color: var(--apt-muted);
}

.apt-cart-line__customization {
  display: inline-block;
  margin-top: 8px;
  font-size: var(--apt-fs-xs);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--apt-terracotta);
}

/* ── Stepper de cantidad — carrito y mini-carrito ──
   Sustituye a bootstrap-touchspin de classic: mismo comportamiento, markup propio. */
.apt-qty {
  display: inline-grid;
  grid-template-columns: 34px minmax(36px, 1fr) 34px;
  align-items: stretch;
  width: 100%;
  max-width: 116px;
  border: 1px solid var(--apt-line);
  background: transparent;
  transition: border-color var(--apt-trans), opacity var(--apt-trans);
}
.apt-qty:focus-within { border-color: var(--apt-ink); }
.apt-qty.is-busy { opacity: 0.55; pointer-events: none; }

.apt-qty__btn {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  min-height: 42px;
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-base);
  line-height: 1;
  color: var(--apt-ink-soft);
  background: transparent;
  border: 0;
  border-radius: 0;
  cursor: pointer;
  transition: color var(--apt-trans), background var(--apt-trans);
}
.apt-qty__btn:hover:not(:disabled) { color: #fff; background: var(--apt-ink); }
.apt-qty__btn:disabled { cursor: default; opacity: 0.4; }

.apt-qty__input {
  width: 100%;
  min-width: 0;
  min-height: 42px;
  padding: 0 2px;
  text-align: center;
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-md);
  color: var(--apt-ink);
  background: transparent;
  border: 0;
  border-left: 1px solid var(--apt-line);
  border-right: 1px solid var(--apt-line);
  border-radius: 0;
  box-shadow: none;
  -moz-appearance: textfield;
  appearance: textfield;
}
.apt-qty__input:focus { outline: none; box-shadow: none; }
.apt-qty__input::-webkit-outer-spin-button,
.apt-qty__input::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}

/* Variante compacta del mini-carrito */
.apt-qty--sm {
  grid-template-columns: 28px minmax(30px, 1fr) 28px;
  max-width: 96px;
}
.apt-qty--sm .apt-qty__btn { min-height: 30px; font-size: var(--apt-fs-sm); }
.apt-qty--sm .apt-qty__input { min-height: 30px; font-size: var(--apt-fs-xs); }

.apt-cart-line__total {
  text-align: right;
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-base);
  font-weight: 500;
  color: var(--apt-ink);
  white-space: nowrap;
}

.apt-cart-line__remove-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  color: var(--apt-muted);
  text-decoration: none;
  transition: color var(--apt-trans);
}
.apt-cart-line__remove-btn .material-icons { font-size: 20px; }
.apt-cart-line__remove-btn:hover { color: var(--apt-terracotta); }

.apt-cart-totals__sub {
  padding-bottom: 16px;
  margin-bottom: 16px;
  border-bottom: 1px solid var(--apt-line);
}

.apt-cart-totals__row {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 16px;
  padding: 6px 0;
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-md);
  color: var(--apt-ink-soft);
}
/* classic trae `.cart-summary-line::after{content:"";display:table;clear:both}` — un
   clearfix de cuando esto iba con floats. En un contenedor flex ese pseudo-elemento
   es un TERCER ítem: `space-between` reparte el hueco en dos tramos y el importe se
   queda descolgado del borde derecho. Se anula. */
.apt-cart-totals__row::after { content: none; }

/* La etiqueta NO crece: la separación la reparte `justify-content: space-between`.
   Si se le pone flex-grow, su caja se ensancha y el `.label{text-align:right}` que
   trae classic pega el texto al borde derecho — parece un sangrado enorme.
   `min-width: 0` sí, para que ceda sitio y el importe nunca se descuelgue. */
.apt-cart-totals__row > .apt-cart-totals__label {
  flex: 0 1 auto;
  min-width: 0;
  text-align: left;
}
.apt-cart-totals__row > .apt-cart-totals__value { flex: 0 0 auto; white-space: nowrap; }
/* Solo envuelve la fila que de verdad lleva nota debajo (detalle de envío) */
.apt-cart-totals__row:has(.apt-cart-totals__note) { flex-wrap: wrap; }
.apt-cart-totals__row--total {
  padding-top: 12px;
  font-size: var(--apt-fs-base);
  color: var(--apt-ink);
}
.apt-cart-totals__row--total .apt-cart-totals__label {
  letter-spacing: 0.1em;
  text-transform: uppercase;
}
.apt-cart-totals__row--total .apt-cart-totals__value {
  font-size: var(--apt-fs-lg);
  font-weight: 500;
}
.apt-cart-totals__note {
  flex: 0 0 100%;
  font-size: var(--apt-fs-xs);
  color: var(--apt-muted);
}

/* seQura — teaser "Desde X/mes" en el resumen del carrito.
   El destino configurado en el BO es `div.cart-summary-line.cart-total`, así que el
   módulo inserta su <small> como hermano INMEDIATAMENTE DESPUÉS de la fila del total,
   ya fuera de su contexto flex: cae solo en su propia línea, sin tocar el importe.
   El selector cubre también la fila por si alguien revierte el destino en el BO. */
.apt-cart-totals .sequra-educational-popup,
.apt-cart-totals__row .sequra-educational-popup {
  display: block;
  flex: 0 0 100%;
  margin: 10px 0 0;
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-xs);
  font-weight: 400;
  letter-spacing: 0.04em;
  line-height: 1.4;
  text-align: left;
  color: var(--apt-muted);
  cursor: pointer;
  transition: color var(--apt-trans);
}
.apt-cart-totals .sequra-educational-popup:hover,
.apt-cart-totals__row .sequra-educational-popup:hover { color: var(--apt-terracotta); }

.cart-detailed-actions { margin-top: 20px; }

.apt-cart-alert {
  margin-bottom: 14px;
  font-size: var(--apt-fs-md);
  border-radius: 0;
  border: 1px solid var(--apt-line);
  background: var(--apt-cream);
  color: var(--apt-ink);
}

.apt-cart-voucher {
  margin-top: 20px;
  padding-top: 16px;
  border-top: 1px solid var(--apt-line);
}
.apt-cart-voucher__toggle a {
  font-size: var(--apt-fs-xs);
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--apt-terracotta);
  text-decoration: none;
}
.apt-cart-voucher__toggle a:hover { text-decoration: underline; }
.apt-cart-voucher__form-inner {
  display: flex;
  gap: 8px;
  margin-top: 12px;
}
.apt-cart-voucher__input {
  flex: 1 1 auto;
  min-width: 0;
  min-height: 44px;
  padding: 0 12px;
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-md);
  border: 1px solid var(--apt-line);
  border-radius: 0;
  background: var(--apt-white);
  color: var(--apt-ink);
}
.apt-cart-voucher__input:focus {
  outline: none;
  border-color: var(--apt-ink);
}
.apt-cart-voucher__list {
  list-style: none;
  margin: 0 0 12px;
  padding: 0;
}
.apt-cart-voucher__item {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  font-size: var(--apt-fs-md);
  padding: 6px 0;
}
.apt-cart-voucher__item-right {
  display: inline-flex;
  align-items: center;
  gap: 8px;
}
.apt-cart-voucher__remove { color: var(--apt-muted); line-height: 0; }
.apt-cart-voucher__remove .material-icons { font-size: 18px; }
.apt-cart-voucher__cancel {
  display: inline-block;
  margin-top: 10px;
  font-size: var(--apt-fs-2xs);
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--apt-muted);
}
.apt-cart-voucher__error {
  display: none;
  align-items: center;
  gap: 8px;
  margin-top: 10px;
  padding: 10px 12px;
  font-size: var(--apt-fs-sm);
  border-radius: 0;
}
.apt-cart-voucher__error .material-icons { font-size: 18px; }

.apt-cart-empty {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  min-height: clamp(240px, 35vh, 360px);
  padding: clamp(32px, 5vw, 64px) 0;
  border: 1px solid var(--apt-line);
  background: var(--apt-cream-soft);
}
.apt-cart-empty__icon {
  width: 64px;
  height: 64px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 20px;
  border: 1px solid var(--apt-line);
  border-radius: 50%;
  color: var(--apt-muted);
}
.apt-cart-empty__icon .material-icons { font-size: 28px; }
.apt-cart-empty__title {
  margin: 0 0 8px;
  font-family: var(--apt-display);
  font-size: var(--apt-fs-d5);
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--apt-ink);
}
.apt-cart-empty__text {
  margin: 0 0 24px;
  max-width: 36ch;
  font-size: var(--apt-fs-base);
  line-height: 1.6;
  color: var(--apt-muted);
}

#cart.cart-empty .apt-cart__head {
  border-bottom: 0;
  margin-bottom: clamp(16px, 2vw, 24px);
  padding-bottom: 0;
}
#cart.cart-empty .apt-cart__grid { grid-template-columns: 1fr; }
#cart.cart-empty .apt-cart__aside { position: static; }

#cart .apt-crosssell,
#cart .featured-products {
  margin-top: clamp(40px, 5vw, 72px);
  padding-top: clamp(32px, 4vw, 48px);
  border-top: 1px solid var(--apt-line);
}

#cart .card,
#cart .cart-container,
#cart .cart-summary {
  background: transparent;
  border: 0;
  box-shadow: none;
  border-radius: 0;
}
#cart .cart-grid.row,
#cart .cart-grid-body,
#cart .cart-grid-right {
  margin: 0;
  padding: 0;
  width: 100%;
  max-width: none;
}
#cart .separator,
#cart hr.separator { display: none; }

@media (max-width: 991px) {
  .apt-cart__grid {
    grid-template-columns: 1fr;
    gap: clamp(24px, 4vw, 36px);
  }
  .apt-cart__aside { position: static; }
  .apt-cart-line {
    grid-template-columns: 88px minmax(0, 1fr) 32px;
    grid-template-areas:
      "media body remove"
      "media qty total";
    gap: 12px 16px;
  }
  .apt-cart-line__media { grid-area: media; }
  .apt-cart-line__body { grid-area: body; }
  .apt-cart-line__qty { grid-area: qty; }
  .apt-cart-line__total { grid-area: total; text-align: left; }
  .apt-cart-line__remove { grid-area: remove; }
}

@media (max-width: 640px) {
  :root { --apt-gut: 20px; }
  .apt-hero { min-height: 88vh; }
  .apt-hero__title { letter-spacing: 0.16em; white-space: normal; }
  .apt-gallery { gap: 20px; }
  .apt-features { grid-template-columns: 1fr; }
  .featured-products .products,
  .apt-collection .products { grid-template-columns: repeat(2, 1fr); gap: 20px; }
  .apt-section { padding: 48px 0; }
}

/* ═══════════════════════════════════════════════════════════════
   FAVORITOS — blockwishlist
   ═══════════════════════════════════════════════════════════════ */

:is(#module-blockwishlist-lists, #module-blockwishlist-view),
.apt-wishlist-wrapper {
  --apt-wish-pad: var(--apt-gut);
  --apt-wish-gap: clamp(28px, 4vw, 56px);
  --apt-cat-toolbar-gap: clamp(18px, 2.2vw, 26px);
}

.apt-wishlist-wrapper #content-wrapper.apt-wishlist-main,
:is(#module-blockwishlist-lists, #module-blockwishlist-view) #content-wrapper.apt-wishlist-main {
  flex: none !important;
  max-width: none !important;
  width: 100% !important;
  padding: 0 var(--apt-gut) !important;
  margin: 0 !important;
  float: none !important;
  box-sizing: border-box;
}

.apt-wishlist-wrapper #main.apt-wishlist,
.apt-wishlist-wrapper #content.apt-wishlist,
:is(#module-blockwishlist-lists, #module-blockwishlist-view) #main.apt-wishlist,
:is(#module-blockwishlist-lists, #module-blockwishlist-view) #content.apt-wishlist {
  max-width: none !important;
  width: 100% !important;
  margin: 0 !important;
  padding: clamp(20px, 3vw, 36px) 0 clamp(56px, 7vw, 96px) !important;
  float: none !important;
  box-sizing: border-box;
}

.apt-wishlist-wrapper > .container,
.apt-wishlist-wrapper .container,
:is(#module-blockwishlist-lists, #module-blockwishlist-view) #wrapper > .container,
:is(#module-blockwishlist-lists, #module-blockwishlist-view) #wrapper .container {
  max-width: 100% !important;
  width: 100% !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}

:is(#module-blockwishlist-lists, #module-blockwishlist-view) #wrapper.apt-wishlist-wrapper {
  box-sizing: border-box;
  /* Igual que .apt-account-wrapper: reservar el alto del header fijo */
  padding-top: var(--apt-header-h) !important;
  background: var(--apt-cream) !important;
}

.apt-wishlist-wrapper {
  background: var(--apt-cream);
  min-height: 60vh;
  width: 100%;
  max-width: 100%;
}

.apt-wishlist-wrapper > .container { display: none; }

.apt-wishlist-wrapper .apt-category-strip--breadcrumb,
:is(#module-blockwishlist-lists, #module-blockwishlist-view) .apt-category-strip--breadcrumb {
  width: 100%;
  padding: clamp(14px, 2vw, 18px) var(--apt-gut);
  background: var(--apt-cream-soft);
  border-bottom: 1px solid var(--apt-line);
  box-sizing: border-box;
}

.apt-wishlist {
  width: 100%;
  max-width: 100%;
  margin: 0;
  box-sizing: border-box;
}

.apt-wishlist__head {
  margin-bottom: clamp(24px, 3vw, 40px);
  padding-bottom: clamp(16px, 2vw, 24px);
  border-bottom: 1px solid var(--apt-line);
}

/* Una sola línea bajo el título; la toolbar Vue no repite bordes */
.apt-wishlist--products .apt-wishlist__head {
  margin-bottom: 0;
  border-bottom: none;
}

.apt-wishlist--lists .apt-wishlist__head {
  margin-bottom: 0;
  border-bottom: none;
}

.apt-wishlist__title {
  margin: 0 0 8px;
  font-family: var(--apt-display);
  font-size: var(--apt-fs-d3);
  font-weight: 400;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--apt-ink);
  line-height: 1.15;
}

.apt-wishlist__meta {
  margin: 0;
  font-size: var(--apt-fs-xs);
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--apt-muted);
}

.apt-wishlist__foot {
  display: flex;
  flex-wrap: wrap;
  gap: 20px 32px;
  width: 100%;
  max-width: 100%;
  margin: 0;
  padding: 0 0 clamp(32px, 4vw, 48px);
  box-sizing: border-box;
}

.apt-wishlist__back {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: var(--apt-fs-2xs);
  font-weight: 500;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--apt-ink);
  text-decoration: none;
  transition: color var(--apt-trans);
}

.apt-wishlist__back .material-icons { font-size: 18px; }
.apt-wishlist__back:hover { color: var(--apt-terracotta); }
.apt-wishlist__back--secondary { color: var(--apt-muted); }

/* — Índice de listas (Vue) — */
.apt-wishlist__foot--inline {
  padding: clamp(24px, 3vw, 40px) 0 0;
  max-width: none;
  margin: 0;
}

.apt-wishlist--lists .wishlist-container {
  width: 100%;
  max-width: none;
}

.apt-wishlist--lists .wishlist-container .page-content.card,
.apt-wishlist--lists .wishlist-container #content.page-content {
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  padding: 0 !important;
  margin: 0 !important;
}

.apt-wishlist-pagination__info {
  font-size: var(--apt-fs-2xs);
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--apt-muted);
}

.apt-wishlist--lists .wishlist-container-header h1 {
  display: none;
}

.apt-wishlist--lists .wishlist-container-header {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  width: 100%;
  max-width: none;
  min-height: calc(var(--apt-cat-toolbar-gap) * 2 + 42px);
  padding: var(--apt-cat-toolbar-gap) 0;
  margin: 0 0 clamp(20px, 2.5vw, 28px);
  border-top: 1px solid var(--apt-line);
  border-bottom: 1px solid var(--apt-line);
  background: transparent;
  box-sizing: border-box;
}

.apt-wishlist--lists .wishlist-add-to-new {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: var(--apt-fs-2xs);
  font-weight: 500;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--apt-ink) !important;
  text-decoration: none;
  transition: color var(--apt-trans);
}

.apt-wishlist--lists .wishlist-add-to-new:hover { color: var(--apt-terracotta) !important; opacity: 1; }
.apt-wishlist--lists .wishlist-add-to-new .material-icons { font-size: 18px; color: inherit; }

.apt-wishlist--lists .wishlist-list-item {
  border-bottom: 1px solid var(--apt-line);
}

.apt-wishlist--lists .wishlist-list-item-default {
  border-bottom-color: var(--apt-ink);
}

.apt-wishlist--lists .wishlist-list-item-link {
  padding: clamp(18px, 2.5vw, 24px) 0;
  text-decoration: none;
}

.apt-wishlist--lists .wishlist-list-item:hover .wishlist-list-item-title {
  color: var(--apt-terracotta);
}

.apt-wishlist--lists .wishlist-list-item-title {
  font-family: var(--apt-display);
  font-size: var(--apt-fs-d5);
  font-weight: 400;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--apt-ink);
  transition: color var(--apt-trans);
}

.apt-wishlist--lists .wishlist-list-item-title span {
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-xs);
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--apt-muted);
}

.apt-wishlist--lists .wishlist-list-item-right .material-icons,
.apt-wishlist--lists .wishlist-list-item-right button .material-icons {
  color: var(--apt-muted);
}

.apt-wishlist--lists .wishlist-list-item-right .dropdown-menu {
  border: 1px solid var(--apt-line);
  border-radius: 0;
  box-shadow: none;
}

.apt-wishlist--lists .wishlist-list-item-right .dropdown-menu > button {
  font-size: var(--apt-fs-2xs);
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

/* Sin compartir lista */
.apt-wishlist--lists .wishlist-list-item-default .wishlist-list-item-right > button,
.apt-wishlist--lists .wishlist-list-item-right .dropdown-menu > button:nth-child(2),
.wishlist-share {
  display: none !important;
}

.apt-wishlist--lists .wishlist-list-empty {
  font-family: var(--apt-display);
  font-size: var(--apt-fs-d4);
  font-weight: 400;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--apt-muted);
  padding: clamp(40px, 6vw, 72px) 0;
}

/* — Productos en lista (Vue) — */
.apt-wishlist--products .wishlist-products-container {
  width: 100%;
  max-width: none;
}

/* Anular #content Vue + page-content classic (max-width / caja blanca) */
.apt-wishlist-wrapper #main.apt-wishlist #content,
.apt-wishlist-wrapper #main.apt-wishlist .page-content,
.apt-wishlist-wrapper #main.apt-wishlist .page-content.card,
.apt-wishlist-wrapper #main.apt-wishlist .page-content.card-block,
:is(#module-blockwishlist-lists, #module-blockwishlist-view) #main.apt-wishlist #content,
:is(#module-blockwishlist-lists, #module-blockwishlist-view) #main.apt-wishlist .page-content,
:is(#module-blockwishlist-lists, #module-blockwishlist-view) #main.apt-wishlist .page-content.card,
:is(#module-blockwishlist-lists, #module-blockwishlist-view) #main.apt-wishlist .page-content.card-block {
  max-width: none !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  border-radius: 0 !important;
  float: none !important;
}

.apt-wishlist--products .wishlist-products-container-header {
  width: 100%;
  max-width: none;
  box-sizing: border-box;
}

.apt-wishlist--products .wishlist-products-container-header.apt-category-toolbar,
.apt-wishlist--products .wishlist-products-container-header.apt-wishlist-toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 12px 20px;
  min-height: calc(var(--apt-cat-toolbar-gap) * 2 + 42px);
  padding: var(--apt-cat-toolbar-gap) 0;
  border-top: 1px solid var(--apt-line);
  border-bottom: 1px solid var(--apt-line);
}

/* Misma barra que categoría: count izquierda + ordenar derecha */
.apt-wishlist--products .apt-wishlist-toolbar.apt-category-toolbar {
  margin-top: 0;
  margin-bottom: clamp(20px, 2.5vw, 28px);
}

.apt-wishlist--products .apt-wishlist-toolbar .apt-category-toolbar__actions {
  margin-left: auto;
}

.apt-wishlist--products .apt-wishlist-toolbar .sort-by-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
  gap: 12px 16px;
  width: auto;
  min-width: 0;
  margin: 0;
}

.apt-wishlist--products .apt-category-sort .select-title .material-icons.float-xs-right {
  float: none;
}

.apt-wishlist--products .wishlist-products-container-header.apt-wishlist-toolbar--ready h1,
.apt-wishlist--products .wishlist-products-container-header.apt-wishlist-toolbar--ready .wishlist-products-count {
  display: none !important;
}

.apt-wishlist--products .wishlist-products-container #content.page-content,
.apt-wishlist--products .wishlist-products-container #content {
  width: 100% !important;
  max-width: none !important;
}

.apt-wishlist--products .page-content.card {
  background: transparent;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  margin: 0;
  padding: 0;
  max-width: none;
  width: 100%;
}

/* Rejilla editorial — mismo patrón que categoría */
.apt-wishlist--products .wishlist-products-container #content .wishlist-products-list,
.apt-wishlist--products .wishlist-products-list {
  --apt-wish-cols: 4;
  display: flex !important;
  flex-wrap: wrap;
  justify-content: flex-start !important;
  align-items: stretch;
  gap: 20px;
  margin: clamp(24px, 3vw, 36px) 0 0 !important;
  padding: 0 !important;
  list-style: none;
  width: 100% !important;
  max-width: none !important;
}

.apt-wishlist--products .wishlist-products-container #content .wishlist-products-item,
.apt-wishlist--products .wishlist-products-item {
  flex: 0 1 calc((100% - (var(--apt-wish-cols) - 1) * 20px) / var(--apt-wish-cols)) !important;
  max-width: calc((100% - (var(--apt-wish-cols) - 1) * 20px) / var(--apt-wish-cols)) !important;
  width: auto !important;
  min-width: 0;
  margin: 0 !important;
  padding: 0 !important;
  float: none !important;
}

.apt-wishlist--products .wishlist-products-container #content .wishlist-product,
.apt-wishlist--products .wishlist-products-item .wishlist-product,
.apt-wishlist--products .wishlist-product {
  display: flex;
  flex-direction: column;
  max-width: none !important;
  width: 100% !important;
  height: 100%;
  margin: 0 !important;
  gap: 0;
}

.apt-wishlist--products .wishlist-product-link {
  display: flex !important;
  flex-direction: column !important;
  align-items: stretch !important;
  flex: 1 1 auto;
  text-decoration: none;
  color: inherit;
}

.apt-wishlist--products .wishlist-product-image {
  position: relative;
  width: 100%;
  aspect-ratio: 3 / 4;
  height: auto;
  margin: 0;
  overflow: hidden;
  background: var(--apt-cream);
}

.apt-wishlist--products .wishlist-product-image img {
  object-fit: cover;
  width: 100%;
  height: 100%;
  max-width: none;
  max-height: none;
  position: absolute;
  inset: 0;
  left: 0;
  top: 0;
  transform: none;
  transition: transform var(--apt-trans);
}

.apt-wishlist--products .wishlist-product-link:hover .wishlist-product-image img {
  transform: scale(1.03);
}

.apt-wishlist--products .wishlist-product-unavailable {
  opacity: 0.55;
}

.apt-wishlist--products .wishlist-product-availability {
  position: absolute;
  left: 12px;
  right: 12px;
  bottom: 12px;
  transform: none;
  min-width: 0;
  margin: 0;
  padding: 8px 10px;
  background: rgba(255, 255, 255, 0.92);
  border: 1px solid var(--apt-line);
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-3xs);
  font-weight: 500;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--apt-ink);
  justify-content: center;
  align-items: center;
  gap: 6px;
  display: none;
}

/* blockwishlist pinta el badge con show_availability aunque no haya mensaje */
.apt-wishlist--products .wishlist-product-image .wishlist-product-availability:has(.material-icons) {
  display: flex;
}

.apt-wishlist--products .wishlist-product-availability i {
  font-size: 16px;
  color: var(--apt-terracotta);
}

.apt-wishlist--products .wishlist-product-availability-responsive {
  display: none !important;
}

.apt-wishlist--products .wishlist-product-right {
  flex: 1 1 auto;
  padding-top: 14px;
  text-align: center;
}

.apt-wishlist--products .wishlist-product-title {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-md);
  font-weight: 500;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--apt-ink);
  line-height: 1.45;
  margin: 0 0 8px;
}

.apt-wishlist--products .wishlist-product-price {
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-sm);
  letter-spacing: 0.06em;
  color: var(--apt-ink);
  font-weight: 500;
  line-height: 1.4;
}

.apt-wishlist--products .wishlist-product-price-promo {
  color: var(--apt-muted);
  font-size: var(--apt-fs-xs);
  font-weight: 400;
  text-decoration: line-through;
  margin-right: 6px;
}

.apt-wishlist--products .wishlist-product-combinations {
  display: block;
  margin-top: 8px;
}

.apt-wishlist--products .wishlist-product-combinations a {
  display: none;
}

.apt-wishlist--products .wishlist-product-combinations-text {
  font-size: var(--apt-fs-3xs);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--apt-muted);
  line-height: 1.5;
  min-height: 0;
  margin: 0;
}

.apt-wishlist--products .wishlist-product-bottom {
  display: flex;
  align-items: stretch;
  gap: 10px;
  margin-top: 16px;
  padding-top: 0;
}

.apt-wishlist--products .wishlist-product-addtocart {
  flex: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 0;
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-3xs);
  font-weight: 500;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  padding: 14px 12px;
  border: 1px solid var(--apt-ink);
  background: var(--apt-ink);
  color: var(--apt-cream);
  transition: background var(--apt-trans), color var(--apt-trans), border-color var(--apt-trans);
}

.apt-wishlist--products .wishlist-product-addtocart .material-icons {
  display: none;
}

.apt-wishlist--products .wishlist-product-addtocart:hover:not(:disabled) {
  background: transparent;
  color: var(--apt-ink);
}

.apt-wishlist--products .wishlist-product-addtocart.btn-secondary {
  background: transparent;
  color: var(--apt-ink);
}

.apt-wishlist--products .wishlist-product-addtocart:disabled {
  opacity: 0.45;
  cursor: not-allowed;
}

.apt-wishlist--products .wishlist-product-bottom .wishlist-button-add {
  position: static;
  border-radius: 0;
  box-shadow: none;
  border: 1px solid var(--apt-line);
  width: 46px;
  min-width: 46px;
  height: auto;
  align-self: stretch;
  flex-shrink: 0;
  background: #fff;
  cursor: pointer;
  transition: border-color var(--apt-trans), color var(--apt-trans);
}

.apt-wishlist--products .wishlist-product-bottom .wishlist-button-add:hover {
  border-color: var(--apt-terracotta);
}

.apt-wishlist--products .wishlist-product-bottom .wishlist-button-add .material-icons {
  color: var(--apt-muted);
  font-size: 20px;
}

.apt-wishlist--products .wishlist-product-bottom .wishlist-button-add:hover .material-icons {
  color: var(--apt-terracotta);
}

.apt-wishlist--products .wishlist-list-empty,
.apt-wishlist--products .wishlist-list-loader {
  padding: clamp(40px, 6vw, 72px) clamp(20px, 3vw, 32px);
}

.apt-wishlist--products .wishlist-list-empty {
  font-family: var(--apt-display);
  font-size: var(--apt-fs-d5);
  font-weight: 400;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--apt-muted);
  text-align: center;
}

.apt-wishlist--products .wishlist-pagination {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 16px 24px;
  margin: clamp(24px, 3vw, 36px) 0 0;
  padding-top: clamp(20px, 2.5vw, 28px);
  border-top: 1px solid var(--apt-line);
}

.apt-wishlist--products .wishlist-pagination .col-md-4,
.apt-wishlist--products .wishlist-pagination .col-md-6,
.apt-wishlist--products .wishlist-pagination .offset-md-2 {
  width: auto;
  max-width: none;
  padding: 0;
  margin: 0;
  flex: 0 1 auto;
}

.apt-wishlist--products .wishlist-pagination .col-md-6 {
  margin-left: auto;
}

.apt-wishlist--products .apt-wishlist-pagination__info {
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-2xs);
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--apt-muted);
}

.apt-wishlist--products .wishlist-pagination ul,
.apt-wishlist--products .wishlist-pagination .page-list {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 8px;
  list-style: none;
  padding: 0;
  margin: 0;
  float: none !important;
}

.apt-wishlist--products .wishlist-pagination li {
  margin: 0;
  float: none !important;
}

.apt-wishlist--products .wishlist-pagination a,
.apt-wishlist--products .wishlist-pagination span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 4px;
  min-width: 36px;
  height: 36px;
  padding: 0 10px;
  border: 1px solid var(--apt-line);
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-2xs);
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--apt-ink);
  text-decoration: none;
  background: #fff;
  cursor: pointer;
}

.apt-wishlist--products .wishlist-pagination a:hover:not(.disabled) {
  border-color: var(--apt-terracotta);
  color: var(--apt-terracotta);
}

.apt-wishlist--products .wishlist-pagination .current a,
.apt-wishlist--products .wishlist-pagination .current span,
.apt-wishlist--products .wishlist-pagination a.disabled {
  background: var(--apt-ink);
  color: var(--apt-cream);
  border-color: var(--apt-ink);
  pointer-events: none;
}

.apt-wishlist--products .wishlist-pagination a .material-icons {
  font-size: 18px;
}

@media (max-width: 1199px) {
  .apt-wishlist--products .wishlist-products-list {
    --apt-wish-cols: 3;
  }
}

@media (max-width: 991px) {
  .apt-wishlist--products .wishlist-products-list {
    --apt-wish-cols: 2;
  }
}

@media (max-width: 640px) {
  .apt-wishlist--products .wishlist-products-list {
    --apt-wish-cols: 2;
    gap: 16px;
  }

  .apt-wishlist--products .wishlist-pagination {
    flex-direction: column;
    align-items: stretch;
  }

  .apt-wishlist--products .wishlist-pagination .col-md-6 {
    margin-left: 0;
  }

  .apt-wishlist--products .wishlist-pagination ul,
  .apt-wishlist--products .wishlist-pagination .page-list {
    justify-content: center;
  }
}

/* Modales blockwishlist — tokens Apparentia */
.wishlist-modal .modal-content {
  border-radius: 0;
  border: 1px solid var(--apt-line);
}

.wishlist-modal .modal-header h5 {
  font-family: var(--apt-display);
  font-size: var(--apt-fs-2xl);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--apt-ink);
  font-weight: 400;
}

.wishlist-modal .form-control {
  border-radius: 0;
  border-color: var(--apt-line);
}

.wishlist-modal .btn-primary {
  border-radius: 0;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  font-size: var(--apt-fs-2xs);
  background: var(--apt-ink);
  border-color: var(--apt-ink);
}

/* «Crear nueva lista» del pie del modal abre otro modal: es un botón, no un
   enlace. Como <a> sin href no era rastreable ni alcanzable con el teclado.
   Este reset deja el <button> con el mismo aspecto que tenía el enlace. */
button.wishlist-add-to-new {
  background: none;
  border: 0;
  padding: 0;
  font: inherit;
  cursor: pointer;
}

.wishlist-toast {
  border-radius: 0 !important;
  border-color: var(--apt-line) !important;
  font-size: var(--apt-fs-sm);
  letter-spacing: 0.04em;
}

/* Modal «añadido al carrito» */
.apt-cart-modal .modal-dialog {
  max-width: min(92vw, 860px);
  margin: 1.75rem auto;
}
.apt-cart-modal__content {
  border: 1px solid var(--apt-line);
  border-radius: 0;
  background: var(--apt-cream);
  box-shadow: 0 24px 64px rgba(26, 22, 18, 0.14);
  overflow: hidden;
}
.apt-cart-modal__head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 20px;
  padding: 28px 32px 22px;
  border-bottom: 1px solid var(--apt-line);
  background: var(--apt-cream-soft);
}
.apt-cart-modal__head-text {
  flex: 1;
  min-width: 0;
  padding-right: 12px;
}
.apt-cart-modal__kicker {
  margin: 0 0 8px;
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-2xs);
  font-weight: 500;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--apt-terracotta);
}
.apt-cart-modal__title {
  margin: 0;
  font-family: var(--apt-display);
  font-size: var(--apt-fs-d4);
  font-weight: 400;
  line-height: 1.2;
  color: var(--apt-ink);
  letter-spacing: 0.02em;
}
.apt-cart-modal__close {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  margin: 0;
  padding: 0;
  border: none;
  background: transparent;
  color: var(--apt-muted);
  opacity: 1;
  text-shadow: none;
  transition: color var(--apt-trans);
}
.apt-cart-modal__close .material-icons { font-size: 22px; }
.apt-cart-modal__close:hover { color: var(--apt-ink); }
.apt-cart-modal__body {
  padding: 0;
}
.apt-cart-modal__grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
}
.apt-cart-modal__product {
  display: grid;
  grid-template-columns: 140px minmax(0, 1fr);
  gap: 24px;
  padding: 28px 32px;
  border-right: 1px solid var(--apt-line);
}
.apt-cart-modal__media {
  display: block;
  aspect-ratio: 3 / 4;
  overflow: hidden;
  background: var(--apt-cream-deep);
}
.apt-cart-modal__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.apt-cart-modal__name {
  display: block;
  margin-bottom: 10px;
  font-family: var(--apt-display);
  font-size: var(--apt-fs-xl);
  line-height: 1.25;
  color: var(--apt-ink);
  text-decoration: none;
}
.apt-cart-modal__name:hover { color: var(--apt-terracotta); }
.apt-cart-modal__price {
  margin: 0 0 14px;
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-base);
  font-weight: 500;
  color: var(--apt-ink);
}
.apt-cart-modal__attrs {
  margin: 0;
  padding: 0;
  list-style: none;
}
.apt-cart-modal__attrs li {
  display: flex;
  gap: 8px;
  margin-bottom: 6px;
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-sm);
  line-height: 1.4;
}
.apt-cart-modal__attr-label {
  color: var(--apt-muted);
  letter-spacing: 0.04em;
}
.apt-cart-modal__attr-label::after { content: ':'; }
.apt-cart-modal__attr-value { color: var(--apt-ink-soft); }
.apt-cart-modal__summary {
  display: flex;
  flex-direction: column;
  padding: 28px 32px;
}
.apt-cart-modal__count {
  margin: 0 0 20px;
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-sm);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--apt-muted);
}
.apt-cart-modal__totals {
  margin: 0 0 24px;
}
.apt-cart-modal__total-row {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 16px;
  padding: 10px 0;
  border-bottom: 1px solid var(--apt-line);
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-md);
  color: var(--apt-ink);
}
.apt-cart-modal__total-row dt {
  margin: 0;
  font-weight: 400;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  font-size: var(--apt-fs-2xs);
  color: var(--apt-muted);
}
.apt-cart-modal__total-row dd {
  margin: 0;
  font-weight: 500;
  text-align: right;
}
.apt-cart-modal__total-row--grand {
  margin-top: 4px;
  padding: 14px 16px;
  border: none;
  background: var(--apt-cream-deep);
}
.apt-cart-modal__total-row--grand dt {
  font-size: var(--apt-fs-xs);
  color: var(--apt-ink-soft);
}
.apt-cart-modal__total-row--grand dd {
  font-size: var(--apt-fs-lg);
  color: var(--apt-ink);
}
.apt-cart-modal__total-row--tax {
  border-bottom: none;
  padding-top: 6px;
}
.apt-cart-modal__actions {
  display: grid;
  gap: 12px;
  margin-top: auto;
}
.apt-cart-modal .modal-backdrop.in,
.apt-cart-modal.show ~ .modal-backdrop {
  opacity: 0.35;
}
#blockcart-modal.modal .modal-dialog {
  transform: translate(0, 24px);
  transition: transform 0.35s cubic-bezier(0.22, 0.61, 0.36, 1);
}
#blockcart-modal.modal.in .modal-dialog,
#blockcart-modal.modal.show .modal-dialog {
  transform: translate(0, 0);
}

@media (max-width: 767px) {
  .apt-cart-modal .modal-dialog {
    margin: 0.75rem auto;
    max-width: calc(100vw - 24px);
  }
  .apt-cart-modal__head {
    padding: 22px 20px 18px;
  }
  .apt-cart-modal__grid {
    grid-template-columns: 1fr;
  }
  .apt-cart-modal__product {
    grid-template-columns: 96px minmax(0, 1fr);
    gap: 16px;
    padding: 22px 20px;
    border-right: none;
    border-bottom: 1px solid var(--apt-line);
  }
  .apt-cart-modal__summary {
    padding: 22px 20px 24px;
  }
}

/* =========================================================================
   MI CUENTA — shell y navegación editorial
   ========================================================================= */
.apt-account-wrapper {
  --apt-account-gap: clamp(16px, 2vw, 24px);
}

.apt-account-wrapper #content-wrapper.apt-account-main,
:is(#my-account, #identity, #address, #addresses, #history, #order-detail, #order-slip, #order-follow, #order-return, #discount, #guest-tracking, #guest-login, #module-psgdpr-gdpr) #content-wrapper {
  flex: none !important;
  max-width: none !important;
  width: 100% !important;
  float: none !important;
  padding: 0 var(--apt-gut) !important;
  box-sizing: border-box;
}

.apt-account-wrapper #main.apt-account,
:is(#my-account, #identity, #address, #addresses, #history, #order-detail, #order-slip, #order-follow, #order-return, #discount, #guest-tracking, #guest-login, #module-psgdpr-gdpr) #main.apt-account {
  max-width: none !important;
  width: 100% !important;
  margin: 0 !important;
  padding: clamp(20px, 3vw, 36px) 0 clamp(56px, 7vw, 96px) !important;
  float: none !important;
  box-sizing: border-box;
}

.apt-account-wrapper #wrapper > .container,
.apt-account-wrapper #wrapper .container,
:is(#my-account, #identity, #address, #addresses, #history, #order-detail, #order-slip, #order-follow, #order-return, #discount, #guest-tracking, #guest-login, #module-psgdpr-gdpr) #wrapper > .container,
:is(#my-account, #identity, #address, #addresses, #history, #order-detail, #order-slip, #order-follow, #order-return, #discount, #guest-tracking, #guest-login, #module-psgdpr-gdpr) #wrapper .container {
  max-width: 100% !important;
  width: 100% !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}

.apt-account-wrapper {
  width: 100%;
  max-width: 100%;
  overflow: visible;
  background: var(--apt-cream);
  min-height: 60vh;
  /* El header es position:fixed desde c4199a7; hay que reservar su alto igual que
     hace la regla global de #wrapper. Antes iba a 0 porque el header estaba en flujo. */
  padding-top: var(--apt-header-h) !important;
}

.apt-account-wrapper > .container { display: none; }

.apt-account-wrapper .apt-category-strip--breadcrumb,
:is(#my-account, #identity, #address, #addresses, #history, #order-detail, #order-slip, #order-follow, #order-return, #discount, #guest-tracking, #guest-login, #module-psgdpr-gdpr) .apt-category-strip--breadcrumb {
  width: 100%;
  padding: clamp(14px, 2vw, 18px) var(--apt-gut);
  background: var(--apt-cream-soft);
  border-bottom: 1px solid var(--apt-line);
  box-sizing: border-box;
}

.apt-account__head {
  margin-bottom: clamp(24px, 3vw, 36px);
  padding-bottom: clamp(16px, 2vw, 24px);
  border-bottom: 1px solid var(--apt-line);
}

.apt-account__nav {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 12px 16px;
  margin-bottom: clamp(16px, 2vw, 22px);
}

.apt-account__nav-links {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px 20px;
}

.apt-account__nav .apt-account__back {
  padding: 10px 14px;
  border: 1px solid var(--apt-line);
  background: var(--apt-cream-soft);
  color: var(--apt-ink) !important;
}

.apt-account__nav .apt-account__back:hover {
  border-color: var(--apt-terracotta);
  color: var(--apt-terracotta) !important;
  background: var(--apt-cream);
}

.apt-account__nav-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
  gap: 10px;
  margin-left: auto;
}

.apt-account__title {
  margin: 0;
  font-family: var(--apt-display);
  font-size: var(--apt-fs-d3);
  font-weight: 400;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--apt-ink);
  line-height: 1.15;
}

.apt-account__meta {
  margin: 10px 0 0;
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-sm);
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--apt-muted);
}

.apt-account__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--apt-account-gap);
}

.apt-account-card {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: flex-start;
  gap: 18px;
  min-height: clamp(120px, 14vw, 148px);
  padding: clamp(22px, 3vw, 32px);
  border: 1px solid var(--apt-line);
  background: var(--apt-cream-soft);
  color: var(--apt-ink);
  text-decoration: none;
  box-sizing: border-box;
  transition: border-color var(--apt-trans), color var(--apt-trans), background var(--apt-trans);
}

.apt-account-card:hover,
.apt-account-card:focus {
  border-color: var(--apt-terracotta);
  color: var(--apt-terracotta);
  background: var(--apt-cream);
}

.apt-account-card__icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  border: 1px solid var(--apt-line);
  color: var(--apt-muted);
  transition: border-color var(--apt-trans), color var(--apt-trans);
}

.apt-account-card__icon .material-icons {
  font-size: 22px;
  line-height: 1;
}

.apt-account-card:hover .apt-account-card__icon,
.apt-account-card:focus .apt-account-card__icon {
  border-color: var(--apt-terracotta);
  color: var(--apt-terracotta);
}

.apt-account-card__label {
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-xs);
  font-weight: 500;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  line-height: 1.45;
}

/* Hooks legacy (col-* de módulos sin override) */
#my-account .apt-account__grid > a.col-lg-4,
#my-account .apt-account__grid > .col-lg-4 {
  width: auto;
  max-width: none;
  padding: 0;
  float: none;
}

#my-account .apt-account__grid .link-item {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 18px;
  width: 100%;
  height: 100%;
  min-height: clamp(120px, 14vw, 148px);
  padding: clamp(22px, 3vw, 32px);
  border: 1px solid var(--apt-line);
  background: var(--apt-cream-soft);
  color: var(--apt-ink);
  text-decoration: none;
  box-sizing: border-box;
}

#my-account .apt-account__grid .link-item .material-icons {
  font-size: 22px;
  color: var(--apt-muted);
}

.apt-account__foot {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 20px 32px;
  margin-top: clamp(32px, 4vw, 48px);
  padding-top: clamp(24px, 3vw, 32px);
  border-top: 1px solid var(--apt-line);
}

.apt-account__logout,
.apt-account__back {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  max-width: 100%;
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-xs);
  font-weight: 500;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  line-height: 1.35;
  color: var(--apt-muted);
  text-decoration: none;
  transition: color var(--apt-trans);
}

.apt-account__logout .material-icons,
.apt-account__back .material-icons {
  flex-shrink: 0;
  font-size: 18px;
  line-height: 1;
}

.apt-account__logout:hover,
.apt-account__back:hover {
  color: var(--apt-terracotta);
}

.apt-account__logout {
  color: var(--apt-ink);
}

.apt-account__back--secondary {
  color: var(--apt-muted);
}

.apt-account__foot--inline {
  margin-top: clamp(32px, 4vw, 48px);
  padding-top: clamp(24px, 3vw, 32px);
  border-top: 1px solid var(--apt-line);
}

/* Anular card classic en área de cliente */
.apt-account-wrapper .page-content.card,
.apt-account-wrapper .page-content.card-block,
.apt-account-wrapper .page-header,
.apt-account-wrapper .page-footer,
:is(#my-account, #identity, #address, #addresses, #history, #order-detail, #order-slip, #order-follow, #order-return, #discount, #guest-tracking, #guest-login, #module-psgdpr-gdpr) .page-content.card,
:is(#my-account, #identity, #address, #addresses, #history, #order-detail, #order-slip, #order-follow, #order-return, #discount, #guest-tracking, #guest-login, #module-psgdpr-gdpr) .page-content.card-block,
:is(#my-account, #identity, #address, #addresses, #history, #order-detail, #order-slip, #order-follow, #order-return, #discount, #guest-tracking, #guest-login, #module-psgdpr-gdpr) .page-header,
:is(#my-account, #identity, #address, #addresses, #history, #order-detail, #order-slip, #order-follow, #order-return, #discount, #guest-tracking, #guest-login, #module-psgdpr-gdpr) .page-footer,
:is(#my-account, #identity, #address, #addresses, #history, #order-detail, #order-slip, #order-follow, #order-return, #discount, #guest-tracking, #guest-login, #module-psgdpr-gdpr) .page-customer-account #content {
  background: transparent;
  border: 0;
  box-shadow: none;
  border-radius: 0;
  padding: 0;
  margin: 0;
}

/* — Subpáginas: paneles, formularios, tablas — */
.apt-account__body {
  width: 100%;
  max-width: none;
}

.apt-account-panel {
  background: var(--apt-cream-soft);
  border: 1px solid var(--apt-line);
  padding: clamp(24px, 3vw, 36px);
  box-sizing: border-box;
  width: 100%;
  max-width: none;
}

.apt-account-page .apt-account-form__fields {
  display: flex;
  flex-direction: column;
}

@media (min-width: 992px) {
  .apt-account-page .apt-account-form__fields {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: clamp(24px, 3vw, 40px);
    row-gap: clamp(16px, 2vw, 22px);
    align-items: start;
  }

  .apt-account-page .apt-account-form__fields > .form-group,
  .apt-account-page .apt-account-form__fields > .apt-pwd-wrap {
    margin-bottom: 0;
  }

  /* Layout genérico (direcciones, registro…) */
  .apt-account-page .apt-account-form__fields:not(.apt-account-form__fields--split) > .form-group:has(.custom-checkbox),
  .apt-account-page .apt-account-form__fields:not(.apt-account-form__fields--split) > .form-group:has(textarea),
  .apt-account-page .apt-account-form__fields:not(.apt-account-form__fields--split) > .form-group:has(.js-parent-focus select),
  .apt-account-page .apt-account-form__fields:not(.apt-account-form__fields--split) > :not(.form-group):not(.apt-pwd-wrap) {
    grid-column: 1 / -1;
  }

  /* Datos personales: dos columnas explícitas */
  #identity .apt-account-form__fields--split {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: clamp(32px, 4vw, 64px);
    row-gap: 0;
    align-items: start;
  }

  #identity .apt-account-form__col {
    display: flex;
    flex-direction: column;
    gap: clamp(16px, 2vw, 22px);
    min-width: 0;
  }

  #identity .apt-account-form__col > .form-group,
  #identity .apt-account-form__col > .apt-pwd-wrap {
    margin-bottom: 0;
  }
}

.apt-account-panel__title {
  margin: 0 0 12px;
  font-family: var(--apt-display);
  font-size: var(--apt-fs-d5);
  font-weight: 400;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--apt-ink);
}

.apt-account-panel__text {
  margin: 0 0 20px;
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-base);
  line-height: 1.65;
  color: var(--apt-ink-soft);
}

.apt-account-page .form-group {
  margin-bottom: clamp(16px, 2vw, 22px);
}

/* Etiquetas encima del campo (anular grid Bootstrap row) */
.apt-account-page .form-group.row {
  display: flex;
  flex-direction: column;
  flex-wrap: nowrap;
  margin-left: 0;
  margin-right: 0;
}

.apt-account-page .form-group.row > label.col-md-3,
.apt-account-page .form-group.row > .col-md-6,
.apt-account-page .form-group.row > .col-md-3,
.apt-account-page .form-group.row > [class*="col-"] {
  flex: 0 0 100%;
  max-width: 100%;
  width: 100%;
  padding-left: 0;
  padding-right: 0;
  float: none;
}

.apt-account-page .form-group.row > label.form-control-label {
  order: 1;
  text-align: left;
}

.apt-account-page .form-group.row > .js-input-column {
  order: 2;
}

.apt-account-page .form-group.row > .form-control-comment.col-md-3 {
  order: 3;
  margin-top: 6px;
  padding-top: 0;
  text-align: left;
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-2xs);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--apt-muted);
}

.apt-account-page .form-group.row > .form-control-comment.col-md-3:empty {
  display: none;
  margin: 0;
}

.apt-account-page .form-group.row:has(.custom-checkbox) > label.form-control-label:first-child {
  display: none;
  margin: 0;
}

.apt-account-page .form-group.row .input-group {
  width: 100%;
}

.apt-account-page .form-control-valign {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px 24px;
  padding-top: 0;
}

.apt-account-page .radio-inline {
  display: inline-flex;
  align-items: center;
  margin: 0;
  padding: 0;
  float: none;
}

.apt-account-page .radio-inline .custom-radio {
  margin-right: 8px;
}

.apt-account-page .form-group label,
.apt-account-page .form-control-label {
  display: block;
  margin-bottom: 8px;
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-2xs);
  font-weight: 500;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  text-align: left;
  color: var(--apt-muted);
}

.apt-account-page .form-control,
.apt-account-page input.form-control,
.apt-account-page textarea.form-control {
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  border: 1px solid var(--apt-line);
  border-radius: 0;
  background: var(--apt-cream);
  color: var(--apt-ink);
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-base);
  padding: 12px 14px;
  box-shadow: none;
  transition: border-color var(--apt-trans);
}

.apt-account-page .form-control-select,
.apt-account-page select.form-control {
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  border: 1px solid var(--apt-line);
  border-radius: 0;
  background-color: var(--apt-cream);
  color: var(--apt-ink);
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-base);
  line-height: 1.4;
  padding: 12px 14px;
  height: auto;
  min-height: 2.75rem;
  box-shadow: none;
  transition: border-color var(--apt-trans);
}

.apt-account-page .form-control:focus,
.apt-account-page select.form-control:focus,
.apt-account-page .form-control-select:focus {
  border-color: var(--apt-ink);
  outline: none;
  box-shadow: none;
}

.apt-account-form__foot {
  margin-top: clamp(24px, 3vw, 32px);
  padding-top: clamp(20px, 2.5vw, 28px);
  border-top: 1px solid var(--apt-line);
}

.apt-account-form__foot .apt-btn,
.apt-account-form__foot .form-control-submit {
  float: none;
  margin: 0;
}

/* ── Iniciar sesion: textos mas legibles y recuperar contrasena mas visible ── */
#authentication .apt-account-page .form-control-label,
#authentication .form-control-label {
  font-size: var(--apt-fs-sm);
  color: var(--apt-ink-soft);
}
#authentication .apt-account-page .form-control,
#authentication .apt-account-page input.form-control {
  font-size: var(--apt-fs-lg);
  padding: 14px 16px;
}
#authentication .forgot-password {
  margin-top: 14px;
  text-align: left;
}
#authentication .forgot-password a {
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-base);
  font-weight: 500;
  letter-spacing: 0.02em;
  color: var(--apt-terracotta) !important;
  text-decoration: underline;
  text-underline-offset: 3px;
}
#authentication .forgot-password a:hover {
  color: var(--apt-terracotta-d) !important;
}
#authentication .no-account {
  margin-top: 6px;
}
#authentication .no-account a {
  font-size: var(--apt-fs-base);
  text-decoration: underline;
  text-underline-offset: 3px;
}

.apt-account-link {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-2xs);
  font-weight: 500;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--apt-ink);
  text-decoration: none;
  transition: color var(--apt-trans);
}

.apt-account-link:hover {
  color: var(--apt-terracotta);
}

.apt-account-link--secondary {
  color: var(--apt-muted);
}

.apt-account-empty {
  padding: clamp(32px, 4vw, 48px) 0;
  text-align: center;
  border: 1px solid var(--apt-line);
  background: var(--apt-cream-soft);
}

.apt-account-empty p {
  margin: 0 0 16px;
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-base);
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--apt-muted);
}

.apt-account-empty__cta {
  margin-top: 8px;
}

.apt-account-table-wrap {
  width: 100%;
  overflow-x: auto;
  border: 1px solid var(--apt-line);
  background: var(--apt-cream-soft);
}

.apt-account-table {
  width: 100%;
  border-collapse: collapse;
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-sm);
}

.apt-account-table thead th {
  padding: 14px 16px;
  border-bottom: 1px solid var(--apt-line);
  font-size: var(--apt-fs-2xs);
  font-weight: 500;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--apt-muted);
  text-align: left;
  white-space: nowrap;
}

.apt-account-table tbody td {
  padding: 16px;
  border-bottom: 1px solid var(--apt-line);
  color: var(--apt-ink);
  vertical-align: middle;
}

.apt-account-table tbody tr:last-child td {
  border-bottom: 0;
}

.apt-account-table__ref {
  font-weight: 500;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.apt-account-table__ref a {
  color: inherit;
  text-decoration: none;
  transition: color var(--apt-trans);
}

.apt-account-table__ref a:hover {
  color: var(--apt-terracotta);
}

.apt-account-table__actions {
  white-space: nowrap;
}

.apt-account-table__actions .apt-account-link + .apt-account-link {
  margin-left: 12px;
}

.apt-account-table__icon a {
  color: var(--apt-muted);
  transition: color var(--apt-trans);
}

.apt-account-table__icon a:hover {
  color: var(--apt-terracotta);
}

.apt-account-badge {
  display: inline-block;
  padding: 6px 10px;
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-3xs);
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  line-height: 1;
  border-radius: 0;
  border: 1px solid transparent;
}

.apt-account-badge.dark {
  color: var(--apt-ink);
  border-color: rgba(33, 28, 23, 0.1);
}

.apt-account-badge.bright {
  color: var(--apt-white);
  border-color: transparent;
}

#history .apt-account-badge,
#order-detail .apt-account-badge,
#order-detail #order-history .apt-account-badge {
  min-width: 0;
}

#order-detail #order-history .label.label-pill {
  display: inline-block;
  padding: 6px 10px;
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-3xs);
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  line-height: 1;
  border-radius: 0;
  border: 1px solid transparent;
}

#order-detail #order-history .label.label-pill.dark {
  color: var(--apt-ink);
  border-color: rgba(33, 28, 23, 0.1);
}

#order-detail #order-history .label.label-pill.bright {
  color: var(--apt-white);
  border-color: transparent;
}

.apt-account-cards {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.apt-account-card-row {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  padding: 18px 16px;
  border: 1px solid var(--apt-line);
  background: var(--apt-cream-soft);
}

.apt-account-card-row__title {
  display: block;
  margin: 0 0 6px;
  font-family: var(--apt-display);
  font-size: var(--apt-fs-lg);
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--apt-ink);
  text-decoration: none;
}

.apt-account-card-row__title:hover {
  color: var(--apt-terracotta);
}

.apt-account-card-row__label,
.apt-account-card-row__meta {
  margin: 0 0 4px;
  font-size: var(--apt-fs-xs);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--apt-muted);
}

.apt-account-card-row__price {
  margin: 8px 0;
  font-size: var(--apt-fs-base);
  color: var(--apt-ink);
}

.apt-account-card-row__actions {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.apt-account-card-row__actions a {
  color: var(--apt-muted);
}

.apt-account-card-row__actions a:hover {
  color: var(--apt-terracotta);
}

/* Alertas de disponibilidad (ps_emailalerts) */
.apt-account-alerts {
  margin: 0;
  padding: 0;
  list-style: none;
}

.apt-account-alerts .apt-account-card-row {
  align-items: center;
}

.apt-account-alert__thumb {
  flex: 0 0 72px;
  display: block;
  width: 72px;
}

.apt-account-alert__thumb img {
  display: block;
  width: 100%;
  aspect-ratio: 2 / 3;
  object-fit: cover;
}

.apt-account-alerts .apt-account-card-row__main {
  flex: 1 1 auto;
  min-width: 0;
}

.apt-account-address-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--apt-account-gap);
}

.apt-account-address {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  min-height: 100%;
  padding: clamp(20px, 2.5vw, 28px);
  border: 1px solid var(--apt-line);
  background: var(--apt-cream-soft);
  box-sizing: border-box;
}

.apt-account-address__alias {
  margin: 0 0 12px;
  font-family: var(--apt-display);
  font-size: var(--apt-fs-xl);
  font-weight: 400;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--apt-ink);
}

.apt-account-address__formatted {
  margin: 0;
  font-style: normal;
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-base);
  line-height: 1.65;
  color: var(--apt-ink-soft);
}

.apt-account-address__foot {
  display: flex;
  flex-wrap: wrap;
  gap: 12px 20px;
  margin-top: 20px;
  padding-top: 16px;
  border-top: 1px solid var(--apt-line);
}

.apt-account-address-actions {
  margin-top: clamp(24px, 3vw, 32px);
}

.apt-account-address-actions .apt-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

.apt-account-address-actions .material-icons {
  font-size: 18px;
}

.apt-account-gdpr {
  display: grid;
  gap: clamp(20px, 3vw, 28px);
}

.apt-account-gdpr__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px 16px;
}

.apt-account-page .apt-btn--ghost {
  background: transparent;
  color: var(--apt-ink);
  border-color: var(--apt-line);
}

.apt-account-page .apt-btn--ghost:hover {
  background: var(--apt-cream);
  border-color: var(--apt-ink);
  color: var(--apt-ink);
}

@media (max-width: 991px) {
  .apt-account__grid,
  .apt-account-address-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  #identity .apt-account-form__fields--split {
    grid-template-columns: 1fr;
    row-gap: clamp(16px, 2vw, 22px);
  }
}

@media (max-width: 640px) {
  .apt-account__grid,
  .apt-account-address-grid {
    grid-template-columns: 1fr;
  }

  .apt-account-panel {
    padding: 20px 16px;
  }

  .apt-account-gdpr__actions {
    flex-direction: column;
  }

  .apt-account-gdpr__actions .apt-btn {
    width: 100%;
    justify-content: center;
  }
}

/* =========================================================================
   CMS — páginas estáticas
   ========================================================================= */
.apt-cms-wrapper {
  width: 100%;
  max-width: 100%;
  overflow: visible;
  background: var(--apt-cream);
  min-height: 60vh;
  /* El header es position:fixed (c4199a7): reservar su alto, como la regla global de #wrapper */
  padding-top: var(--apt-header-h) !important;
}

.apt-cms-wrapper > .container {
  display: none;
}

.apt-cms-wrapper #content-wrapper.apt-cms-main,
#cms #content-wrapper.apt-cms-main {
  flex: none !important;
  max-width: none !important;
  width: 100% !important;
  float: none !important;
  padding: 0 var(--apt-gut) !important;
  box-sizing: border-box;
}

.apt-cms-wrapper #main.apt-cms,
#cms #main.apt-cms {
  max-width: none !important;
  width: 100% !important;
  margin: 0 !important;
  padding: clamp(20px, 3vw, 36px) 0 clamp(56px, 7vw, 96px) !important;
  float: none !important;
  box-sizing: border-box;
}

.apt-cms-wrapper #wrapper > .container,
.apt-cms-wrapper #wrapper .container,
#cms #wrapper > .container,
#cms #wrapper .container {
  max-width: 100% !important;
  width: 100% !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}

.apt-cms-wrapper .apt-category-strip--breadcrumb,
#cms .apt-category-strip--breadcrumb {
  width: 100%;
  padding: clamp(14px, 2vw, 18px) var(--apt-gut);
  background: var(--apt-cream-soft);
  border-bottom: 1px solid var(--apt-line);
  box-sizing: border-box;
}

.apt-cms-wrapper .page-content.card,
.apt-cms-wrapper .page-content.card-block,
.apt-cms-wrapper .page-header,
.apt-cms-wrapper .page-footer,
#cms .page-content.card,
#cms .page-content.card-block,
#cms .page-header,
#cms .page-footer {
  background: transparent;
  border: 0;
  box-shadow: none;
  border-radius: 0;
  padding: 0;
  margin: 0;
}

.apt-cms__head {
  margin-bottom: clamp(28px, 4vw, 44px);
  padding-bottom: clamp(16px, 2vw, 24px);
  border-bottom: 1px solid var(--apt-line);
}

.apt-cms__title {
  margin: 0;
  font-family: var(--apt-display);
  font-size: var(--apt-fs-d3);
  font-weight: 400;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--apt-ink);
  line-height: 1.15;
}

.apt-cms__meta {
  margin: 12px 0 0;
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-sm);
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--apt-muted);
}

.apt-cms__body {
  width: 100%;
  max-width: none;
}

.apt-cms-prose {
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-xl);
  line-height: 1.85;
  color: var(--apt-ink-soft);
}

.apt-cms-prose > :first-child {
  margin-top: 0;
}

.apt-cms-prose > :last-child {
  margin-bottom: 0;
}

.apt-cms-prose h1,
.apt-cms-prose h2,
.apt-cms-prose h3,
.apt-cms-prose h4,
.apt-cms-prose h5,
.apt-cms-prose h6 {
  margin: clamp(28px, 4vw, 40px) 0 clamp(12px, 2vw, 16px);
  font-family: var(--apt-display);
  font-weight: 400;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--apt-ink);
  line-height: 1.25;
}

.apt-cms-prose h1 { font-size: var(--apt-fs-d4); }
.apt-cms-prose h2 { font-size: var(--apt-fs-d5); }
.apt-cms-prose h3 { font-size: var(--apt-fs-d6); }

.apt-cms-prose p,
.apt-cms-prose ul,
.apt-cms-prose ol,
.apt-cms-prose blockquote {
  margin: 0 0 1.15em;
}

/* -------------------------------------------------------------------------
   Devolver el tamaño y el color a la escala del bloque.
   Classic trae `p` en una regla suelta —`.page-content.page-cms ul, p
   { font-size: .9375rem; color: #7a7a7a }` en theme.css— y una regla directa
   sobre el elemento gana siempre a lo que hereda de `.apt-cms-prose`. Los
   párrafos salían a 15px grises y las listas a 20px en ink-soft, así que en
   páginas largas como /devoluciones el texto cambiaba de tamaño cada vez que
   aparecía una lista. Afecta a todas las páginas CMS.
   Las etiquetas h1-h3 quedan fuera: tienen su propia escala más abajo.
   ------------------------------------------------------------------------- */
.apt-cms-prose p,
.apt-cms-prose ul,
.apt-cms-prose ol,
.apt-cms-prose li,
.apt-cms-prose blockquote,
.apt-cms-prose div,
.apt-cms-prose span,
.apt-cms-prose td,
.apt-cms-prose th {
  font-size: inherit;
  color: inherit;
}

.apt-cms-prose ul,
.apt-cms-prose ol {
  padding-left: 1.35em;
}

.apt-cms-prose li {
  margin-bottom: 0.45em;
}

.apt-cms-prose a {
  color: var(--apt-ink);
  text-decoration: underline;
  text-decoration-color: var(--apt-terracotta);
  text-underline-offset: 3px;
  transition: color var(--apt-trans);
}

.apt-cms-prose a:hover {
  color: var(--apt-terracotta);
}

.apt-cms-prose strong,
.apt-cms-prose b {
  color: var(--apt-ink);
  font-weight: 600;
}

.apt-cms-prose blockquote {
  padding: clamp(16px, 2vw, 24px);
  border-left: 3px solid var(--apt-terracotta);
  background: var(--apt-cream-soft);
  font-style: italic;
}

.apt-cms-prose img {
  display: block;
  max-width: 100%;
  height: auto;
  margin: clamp(20px, 3vw, 32px) 0;
}

.apt-cms-prose figure {
  margin: clamp(20px, 3vw, 32px) 0;
}

.apt-cms-prose figcaption {
  margin-top: 8px;
  font-size: var(--apt-fs-sm);
  letter-spacing: 0.06em;
  color: var(--apt-muted);
}

.apt-cms-prose table {
  width: 100%;
  border-collapse: collapse;
  margin: clamp(20px, 3vw, 28px) 0;
  font-size: var(--apt-fs-base);
}

.apt-cms-prose th,
.apt-cms-prose td {
  padding: 12px 14px;
  border: 1px solid var(--apt-line);
  text-align: left;
  vertical-align: top;
}

.apt-cms-prose th {
  font-size: var(--apt-fs-2xs);
  font-weight: 500;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--apt-muted);
  background: var(--apt-cream-soft);
}

.apt-cms-prose hr {
  border: 0;
  border-top: 1px solid var(--apt-line);
  margin: clamp(24px, 4vw, 40px) 0;
}

.apt-cms__hooks,
.apt-cms__actions {
  margin-top: clamp(32px, 4vw, 48px);
  padding-top: clamp(20px, 3vw, 28px);
  border-top: 1px solid var(--apt-line);
}

.apt-cms-nav + .apt-cms-nav {
  margin-top: clamp(32px, 4vw, 48px);
}

.apt-cms-nav__title {
  margin: 0 0 clamp(16px, 2vw, 24px);
  font-family: var(--apt-display);
  font-size: var(--apt-fs-d6);
  font-weight: 400;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--apt-ink);
}

.apt-cms-nav__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(12px, 2vw, 16px);
  margin: 0;
  padding: 0;
  list-style: none;
}

.apt-cms-nav__link {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  min-height: clamp(72px, 10vw, 88px);
  padding: clamp(18px, 2.5vw, 24px);
  border: 1px solid var(--apt-line);
  background: var(--apt-cream-soft);
  color: var(--apt-ink);
  text-decoration: none;
  box-sizing: border-box;
  transition: border-color var(--apt-trans), color var(--apt-trans), background var(--apt-trans);
}

.apt-cms-nav__link:hover,
.apt-cms-nav__link:focus {
  border-color: var(--apt-terracotta);
  color: var(--apt-terracotta);
  background: var(--apt-cream);
}

.apt-cms-nav__label {
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-xs);
  font-weight: 500;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  line-height: 1.45;
}

.apt-cms-nav__link .material-icons {
  flex-shrink: 0;
  font-size: 20px;
  color: var(--apt-muted);
  transition: color var(--apt-trans);
}

.apt-cms-nav__link:hover .material-icons,
.apt-cms-nav__link:focus .material-icons {
  color: var(--apt-terracotta);
}

@media (max-width: 991px) {
  .apt-cms-nav__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 640px) {
  .apt-cms-nav__grid {
    grid-template-columns: 1fr;
  }
}

/* ═══════════════════════════════════════════════════════════════
   CONTACT — /contactenos (shell alineado con CMS / cuenta)
   ═══════════════════════════════════════════════════════════════ */

.apt-contact-wrapper {
  width: 100%;
  max-width: 100%;
  overflow: visible;
  background: var(--apt-cream);
  min-height: 60vh;
  /* El header es position:fixed (c4199a7): reservar su alto, como la regla global de #wrapper */
  padding-top: var(--apt-header-h) !important;
}

.apt-contact-wrapper > .container {
  display: none;
}

.apt-contact-wrapper #content-wrapper.apt-contact-main,
#contact #content-wrapper.apt-contact-main {
  flex: none !important;
  max-width: none !important;
  width: 100% !important;
  float: none !important;
  padding: 0 var(--apt-gut) !important;
  box-sizing: border-box;
}

.apt-contact-wrapper #main.apt-contact,
#contact #main.apt-contact {
  max-width: none !important;
  width: 100% !important;
  margin: 0 !important;
  padding: clamp(20px, 3vw, 36px) 0 clamp(56px, 7vw, 96px) !important;
  float: none !important;
  box-sizing: border-box;
}

.apt-contact-wrapper #wrapper > .container,
.apt-contact-wrapper #wrapper .container,
#contact #wrapper > .container,
#contact #wrapper .container {
  max-width: 100% !important;
  width: 100% !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}

.apt-contact-wrapper .apt-category-strip--breadcrumb,
#contact .apt-category-strip--breadcrumb {
  width: 100%;
  padding: clamp(14px, 2vw, 18px) var(--apt-gut);
  background: var(--apt-cream-soft);
  border-bottom: 1px solid var(--apt-line);
  box-sizing: border-box;
}

.apt-contact-wrapper .page-content.card,
.apt-contact-wrapper .page-content.card-block,
.apt-contact-wrapper .page-header,
.apt-contact-wrapper .page-footer,
#contact .page-content.card,
#contact .page-content.card-block,
#contact .page-header,
#contact .page-footer {
  background: transparent;
  border: 0;
  box-shadow: none;
  border-radius: 0;
  padding: 0;
  margin: 0;
}

.apt-contact__head {
  margin-bottom: clamp(28px, 4vw, 44px);
  padding-bottom: clamp(16px, 2vw, 24px);
  border-bottom: 1px solid var(--apt-line);
}

.apt-contact__title {
  margin: 0;
  font-family: var(--apt-display);
  font-size: var(--apt-fs-d3);
  font-weight: 400;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--apt-ink);
  line-height: 1.15;
}

.apt-contact__intro {
  margin: 10px 0 0;
  max-width: 46rem;
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-lg);
  line-height: 1.75;
  color: var(--apt-ink-soft);
}

.apt-contact__intro p {
  margin: 0 0 0.75em;
}

.apt-contact__intro p:last-child {
  margin-bottom: 0;
}

.apt-contact__grid {
  display: grid;
  grid-template-columns: minmax(240px, 0.85fr) minmax(0, 1.15fr);
  gap: clamp(20px, 3vw, 32px);
  align-items: start;
}

.apt-contact__aside,
.apt-contact__main {
  min-width: 0;
}

.apt-contact-info .apt-account-panel__title {
  margin-bottom: clamp(20px, 3vw, 28px);
}

.apt-contact-info__list {
  margin: 0;
  padding: 0;
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: clamp(18px, 2.5vw, 24px);
}

.apt-contact-info__item {
  display: grid;
  grid-template-columns: 28px minmax(0, 1fr);
  gap: 14px;
  align-items: start;
}

.apt-contact-info__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--apt-terracotta);
}

.apt-contact-info__icon .material-icons {
  font-size: 20px;
  line-height: 1;
}

.apt-contact-info__svg {
  width: 20px;
  height: 20px;
  display: block;
}

.apt-contact-info__label {
  display: block;
  margin-bottom: 6px;
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-2xs);
  font-weight: 500;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--apt-muted);
}

.apt-contact-info__value {
  display: block;
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-base);
  line-height: 1.6;
  color: var(--apt-ink-soft);
}

.apt-contact-info__link {
  color: var(--apt-ink);
  text-decoration: none;
  transition: color var(--apt-trans);
}

.apt-contact-info__link:hover {
  color: var(--apt-terracotta);
}

.apt-contact-info__item--details {
  grid-template-columns: minmax(0, 1fr);
}

.apt-contact-info__body--full {
  width: 100%;
}

.apt-account-panel__text p {
  margin: 0 0 0.75em;
}

.apt-account-panel__text p:last-child {
  margin-bottom: 0;
}

.apt-contact-form__alert {
  margin-bottom: clamp(20px, 3vw, 28px);
  padding: 14px 18px;
  border: 1px solid var(--apt-line);
  background: var(--apt-cream-soft);
}

.apt-contact-form__alert--error {
  border-color: rgba(156, 90, 60, 0.35);
  color: var(--apt-ink);
}

.apt-contact-form__alert--success {
  border-color: rgba(74, 107, 82, 0.35);
  color: var(--apt-ink);
}

.apt-contact-form__alert-list {
  margin: 0;
  padding-left: 1.1rem;
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-base);
  line-height: 1.55;
}

.apt-contact-form__honeypot {
  position: absolute;
  left: -9999px;
  width: 1px;
  height: 1px;
  opacity: 0;
  pointer-events: none;
}

#contact .apt-contact .form-group {
  margin-bottom: clamp(16px, 2vw, 22px);
}

#contact .apt-contact .form-group.row {
  display: flex;
  flex-direction: column;
  flex-wrap: nowrap;
  align-items: flex-start;
  text-align: left;
  margin-left: 0;
  margin-right: 0;
}

#contact .apt-contact .form-group.row > label.form-control-label {
  order: 1;
  width: 100%;
  text-align: left !important;
  align-self: flex-start;
}

#contact .apt-contact .form-group.row > .js-input-column {
  order: 2;
  width: 100%;
}

#contact .apt-contact .form-group.row > .form-control-comment {
  order: 3;
  width: 100%;
  text-align: left !important;
  padding-left: 0;
  padding-right: 0;
}

#contact .apt-contact .form-group.row > [class*="col-"] {
  flex: 0 0 100%;
  max-width: 100%;
  width: 100%;
  padding-left: 0;
  padding-right: 0;
  float: none;
}

#contact .apt-contact .form-group label,
#contact .apt-contact .form-control-label {
  display: block;
  margin-bottom: 8px;
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-2xs);
  font-weight: 500;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--apt-muted);
}

#contact .apt-contact .form-control-comment {
  margin-top: 6px;
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-2xs);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--apt-muted);
}

#contact .apt-contact .form-control,
#contact .apt-contact input.form-control,
#contact .apt-contact textarea.form-control {
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  border: 1px solid var(--apt-line);
  border-radius: 0;
  background: var(--apt-cream);
  color: var(--apt-ink);
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-base);
  padding: 12px 14px;
  box-shadow: none;
  transition: border-color var(--apt-trans);
}

#contact .apt-contact .form-control-select,
#contact .apt-contact select.form-control {
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  border: 1px solid var(--apt-line);
  border-radius: 0;
  background-color: var(--apt-cream);
  color: var(--apt-ink);
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-base);
  line-height: 1.4;
  padding: 12px 14px;
  height: auto;
  min-height: 2.75rem;
  box-shadow: none;
  transition: border-color var(--apt-trans);
}

#contact .apt-contact .form-control:focus,
#contact .apt-contact select.form-control:focus,
#contact .apt-contact textarea.form-control:focus {
  border-color: var(--apt-ink);
  outline: none;
  box-shadow: none;
}

#contact .apt-contact textarea.form-control {
  min-height: 9rem;
  resize: vertical;
}

.apt-file-upload {
  position: relative;
  width: 100%;
}

.apt-file-upload__input {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.apt-file-upload__row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px 16px;
}

#contact .apt-file-upload__trigger {
  margin: 0;
  flex-shrink: 0;
  background: var(--apt-ink);
  color: var(--apt-white);
  border-color: var(--apt-ink);
}

#contact .apt-file-upload__trigger:hover {
  background: var(--apt-terracotta);
  border-color: var(--apt-terracotta);
  color: var(--apt-white);
}

.apt-file-upload__name {
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-sm);
  line-height: 1.5;
  color: var(--apt-ink-soft);
  word-break: break-word;
}

.apt-contact-form__gdpr {
  grid-column: 1 / -1;
}

/* Contacto: textos algo mayores para lectura comoda */
#contact .apt-account-panel__text {
  font-size: var(--apt-fs-lg);
  line-height: 1.75;
}
#contact .apt-account-page .form-control-label,
#contact .form-control-label {
  font-size: var(--apt-fs-sm);
}
#contact .apt-account-page .form-control,
#contact .apt-account-page textarea.form-control,
#contact .form-control {
  font-size: var(--apt-fs-base);
}

/* Adjuntar archivo: al final del formulario y discreto (casi nadie lo usa) */
#contact .apt-contact-form__file-group {
  margin-top: 2px;
}
#contact .apt-contact-form__file-group .form-control-label {
  font-size: var(--apt-fs-2xs);
  color: var(--apt-muted);
}
#contact .apt-contact-form__file-optional {
  text-transform: none;
  letter-spacing: 0;
}
#contact .apt-contact-form__file-group .apt-file-upload__trigger.apt-btn {
  font-size: var(--apt-fs-3xs);
  padding: 7px 14px;
  background: transparent;
  color: var(--apt-ink-soft);
  border-color: var(--apt-line);
}
#contact .apt-contact-form__file-group .apt-file-upload__trigger.apt-btn:hover {
  background: var(--apt-ink);
  color: var(--apt-white);
  border-color: var(--apt-ink);
}
#contact .apt-contact-form__file-group .apt-file-upload__name {
  font-size: var(--apt-fs-xs);
  color: var(--apt-muted);
}

@media (min-width: 992px) {
  .apt-contact-form__fields {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: clamp(24px, 3vw, 40px);
    row-gap: clamp(16px, 2vw, 22px);
    align-items: start;
  }

  .apt-contact-form__fields > .form-group {
    margin-bottom: 0;
  }

  .apt-contact-form__fields > .form-group:has(textarea),
  .apt-contact-form__fields > .form-group:has(input[type="file"]),
  .apt-contact-form__fields > .apt-contact-form__gdpr {
    grid-column: 1 / -1;
  }
}

@media (max-width: 991px) {
  .apt-contact__grid {
    grid-template-columns: 1fr;
  }

  .apt-contact__aside {
    order: 2;
  }

  .apt-contact__main {
    order: 1;
  }
}

/* =========================================================================
   REFUERZO — eliminar azul PrestaShop (#24b9d7 / #5bc0de) en toda la web
   ========================================================================= */

/* Precios y totales (theme.css: .product-price { color: #24b9d7 }) */
.product-price,
.current-price,
.current-price-value,
.current-price .price,
.product-prices .price,
.product-line-info .price,
.product-line-grid-body .price,
.has-discount .price,
.cart-summary-line .value,
.cart-detailed-subtotals .value,
.cart-detailed-totals .value,
.apt-cart-line__total-value,
.apt-cart-line__price,
.apt-cart-totals__value,
.apt-cart-dropdown-line__price,
#blockcart-modal .product-name,
#blockcart-modal .product-price,
.apt-cart-modal__price,
.apt-cart-modal__name {
  color: var(--apt-ink) !important;
}

/* Utilidades Bootstrap / PS */
.text-primary,
.text-info,
a.text-primary,
a.text-info {
  color: var(--apt-terracotta) !important;
}
.bg-primary,
.bg-info,
.tag-primary,
.tag-info,
.card-primary,
.card-info,
.progress-info .progress-bar {
  background-color: var(--apt-ink) !important;
}
.btn-info,
.btn-info:hover,
.btn-info:focus,
.btn-info:active {
  background-color: var(--apt-terracotta) !important;
  border-color: var(--apt-terracotta) !important;
  color: var(--apt-white) !important;
}
.btn-outline-primary,
.btn-outline-info {
  color: var(--apt-ink) !important;
  border-color: var(--apt-line) !important;
}
.btn-outline-primary:hover,
.btn-outline-primary:focus,
.btn-outline-primary.active,
.btn-outline-primary:active,
.btn-outline-info:hover,
.btn-outline-info:focus,
.btn-outline-info.active,
.btn-outline-info:active {
  background-color: var(--apt-ink) !important;
  border-color: var(--apt-ink) !important;
  color: var(--apt-white) !important;
}

/* Paginación y tabs */
.page-link,
.pagination .current a,
.pagination .page-list li.current a {
  color: var(--apt-ink) !important;
}
.page-item.active .page-link,
.page-item.active .page-link:hover,
.page-item.active .page-link:focus,
.pagination .current a {
  background-color: var(--apt-ink) !important;
  border-color: var(--apt-ink) !important;
  color: var(--apt-white) !important;
}
.tabs .nav-tabs .nav-link.active,
.tabs .nav-tabs .nav-link:hover,
.nav-tabs .nav-link.active {
  color: var(--apt-ink) !important;
  border-color: var(--apt-line) var(--apt-line) var(--apt-cream) !important;
}

/* Facetas, ordenación, header legacy */
.facet-dropdown.open > .select-title,
.facet-dropdown .select-list:hover,
.products-sort-order .select-list:hover,
.brands-sort .select-list:hover,
.suppliers-sort .select-list:hover,
#subcategories ul li:hover .subcategory-image a,
.block_newsletter form input[type=text]:focus,
.block_newsletter form input[type=email]:focus,
.search-widget form input[type=text]:focus,
.product-customization .product-message:focus,
.custom-radio input[type=radio]:checked + span {
  color: var(--apt-ink) !important;
  border-color: var(--apt-terracotta) !important;
}
.facet-dropdown .select-list:hover,
.products-sort-order .select-list:hover {
  background-color: var(--apt-cream-deep) !important;
}

/* Enlaces — estados activos */
#wrapper a:not(.apt-btn):not(.btn):link,
#wrapper a:not(.apt-btn):not(.btn):visited,
#header a:not(.apt-btn):not(.btn):link,
#header a:not(.apt-btn):not(.btn):visited,
#footer a:not(.apt-btn):not(.btn):link,
#footer a:not(.apt-btn):not(.btn):visited {
  color: var(--apt-ink);
}
#wrapper a:not(.apt-btn):not(.btn):hover,
#header a:not(.apt-btn):not(.btn):hover,
#footer a:not(.apt-btn):not(.btn):hover,
.modal a:not(.apt-btn):not(.btn):hover {
  color: var(--apt-terracotta) !important;
}
#wrapper a:not(.apt-btn):not(.btn):active,
#header a:not(.apt-btn):not(.btn):active,
.modal a:not(.apt-btn):not(.btn):active,
#footer a:not(.apt-btn):not(.btn):active {
  color: var(--apt-terracotta-d) !important;
}
#wrapper a:not(.apt-btn):not(.btn):focus,
.modal a:not(.apt-btn):not(.btn):focus {
  color: var(--apt-terracotta) !important;
}

/* Botones Bootstrap */
.btn-primary:focus,
.btn-primary:active,
.btn-primary:not(:disabled):not(.disabled):active,
.btn-primary:not(:disabled):not(.disabled).active {
  background-color: var(--apt-terracotta) !important;
  border-color: var(--apt-terracotta) !important;
  color: var(--apt-white) !important;
  box-shadow: 0 0 0 0.15rem rgba(156, 90, 60, 0.25) !important;
}
.btn-secondary:focus,
.btn-secondary:active {
  border-color: var(--apt-terracotta) !important;
  color: var(--apt-ink) !important;
  box-shadow: 0 0 0 0.15rem rgba(156, 90, 60, 0.15) !important;
}
.btn-link,
.btn-link:hover,
.btn-link:focus,
.btn-link:active {
  color: var(--apt-terracotta) !important;
}

/* Checkout legacy */
body#checkout section.checkout-step .address-item.selected {
  border-color: var(--apt-terracotta) !important;
}
.product-flags li.product-flag {
  background-color: var(--apt-terracotta) !important;
}

/* =========================================================================
   CHECKOUT / PEDIDO — shell editorial
   ========================================================================= */
.apt-checkout-wrapper {
  --apt-checkout-gap: clamp(28px, 4vw, 56px);
  --apt-checkout-summary-w: min(100%, 380px);
  width: 100%;
  max-width: 100%;
  overflow: visible;
  background: var(--apt-cream);
  min-height: 60vh;
  /* El header es position:fixed (c4199a7): reservar su alto, como la regla global de #wrapper */
  padding-top: var(--apt-header-h) !important;
}
.apt-checkout-wrapper > .container { display: none; }

.apt-checkout-wrapper #content-wrapper.apt-checkout-main,
#checkout #content-wrapper.apt-checkout-main,
#order-confirmation #content-wrapper.apt-checkout-main {
  flex: none !important;
  max-width: none !important;
  width: 100% !important;
  float: none !important;
  padding: 0 var(--apt-gut) !important;
  box-sizing: border-box;
}

.apt-checkout-wrapper #wrapper > .container,
.apt-checkout-wrapper #wrapper .container,
#checkout #wrapper > .container,
#checkout #wrapper .container {
  max-width: 100% !important;
  width: 100% !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}

.apt-checkout-wrapper .apt-category-strip--breadcrumb,
#checkout .apt-category-strip--breadcrumb {
  width: 100%;
  padding: clamp(14px, 2vw, 18px) var(--apt-gut);
  background: var(--apt-cream-soft);
  border-bottom: 1px solid var(--apt-line);
  box-sizing: border-box;
}

#checkout #main.apt-checkout,
#checkout #content.apt-checkout {
  max-width: none !important;
  width: 100% !important;
  margin: 0 !important;
  padding: clamp(20px, 3vw, 36px) 0 clamp(56px, 7vw, 96px) !important;
  float: none !important;
  box-sizing: border-box;
}

.apt-checkout__head {
  margin-bottom: clamp(24px, 3vw, 36px);
  padding-bottom: clamp(16px, 2vw, 24px);
  border-bottom: 1px solid var(--apt-line);
}

.apt-checkout__title {
  margin: 0;
  font-family: var(--apt-display);
  font-size: var(--apt-fs-d3);
  font-weight: 400;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--apt-ink);
  line-height: 1.15;
}

.apt-checkout__grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) var(--apt-checkout-summary-w);
  gap: var(--apt-checkout-gap);
  align-items: start;
}

.apt-checkout__steps { min-width: 0; }

.apt-checkout__aside {
  position: sticky;
  top: calc(var(--apt-header-h) + 20px);
  align-self: start;
}

/* Pasos */
body#checkout section.checkout-step.apt-checkout-step {
  --apt-checkout-step-x: clamp(18px, 2.2vw, 28px);
  --apt-checkout-step-y: clamp(18px, 2.2vw, 28px);
  padding: 0 !important;
  margin-bottom: clamp(12px, 1.5vw, 18px);
  background: var(--apt-white) !important;
  border: 1px solid var(--apt-line);
  box-shadow: none;
}

body#checkout section.checkout-step.apt-checkout-step:last-child {
  margin-bottom: 0;
}

.apt-checkout-step__head.step-title {
  display: flex;
  align-items: center;
  gap: clamp(12px, 1.5vw, 18px);
  padding: clamp(16px, 2vw, 22px) var(--apt-checkout-step-x);
  margin: 0 !important;
  border-bottom: 1px solid var(--apt-line);
  border-top: 0 !important;
  cursor: pointer;
  text-transform: none !important;
  font-size: inherit !important;
  font-weight: inherit !important;
}

body#checkout section.checkout-step.-current .apt-checkout-step__head.step-title {
  cursor: default;
}

body#checkout section.checkout-step.-unreachable .apt-checkout-step__head.step-title,
body#checkout section.checkout-step .not-allowed {
  cursor: not-allowed;
  opacity: 0.45;
}

body#checkout section.checkout-step.-current + .checkout-step .step-title {
  border-top: 0;
  padding-top: clamp(16px, 2vw, 22px);
}

.apt-checkout-step__indicator {
  flex: 0 0 auto;
  position: relative;
  width: 28px;
  height: 28px;
}

.apt-checkout-step__indicator .step-number {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  margin: 0;
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-xs);
  font-weight: 600;
  letter-spacing: 0;
  text-transform: none;
  color: var(--apt-white);
  background: var(--apt-muted);
  border: 0;
  border-radius: 50%;
}

.apt-checkout-step__indicator .done {
  position: absolute;
  inset: 0;
  display: none;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  margin: 0;
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-md);
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0;
  text-transform: none;
  color: var(--apt-white);
  background: var(--apt-terracotta) !important;
  border: 0;
  border-radius: 50%;
}

body#checkout section.checkout-step.-reachable.-complete .apt-checkout-step__indicator .done {
  display: flex;
}

body#checkout section.checkout-step.-reachable.-complete .apt-checkout-step__indicator .step-number {
  display: none;
}

body#checkout section.checkout-step.-current.-reachable.-complete .apt-checkout-step__indicator .done {
  display: none;
}

body#checkout section.checkout-step.-current.-reachable.-complete .apt-checkout-step__indicator .step-number {
  display: flex;
  background: var(--apt-terracotta) !important;
}

body#checkout section.checkout-step.-current .apt-checkout-step__indicator .step-number {
  display: flex;
  background: var(--apt-terracotta) !important;
}

body#checkout section.checkout-step.-current.-reachable.-complete .apt-checkout-step__edit.step-edit {
  display: none;
}

.apt-checkout-step__title {
  flex: 1 1 auto;
  margin: 0;
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-sm);
  font-weight: 600;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--apt-ink);
  line-height: 1.3;
}

body#checkout section.checkout-step.-unreachable .apt-checkout-step__title {
  color: var(--apt-muted);
}

.apt-checkout-step__edit.step-edit {
  display: none;
  align-items: center;
  gap: 4px;
  margin: 0 0 0 auto;
  padding: 0;
  border: 0;
  background: none;
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-2xs);
  font-weight: 500;
  letter-spacing: 0.1em;
  text-transform: lowercase;
  color: var(--apt-muted);
  cursor: pointer;
  transition: color var(--apt-trans);
}

body#checkout section.checkout-step.-reachable.-complete .apt-checkout-step__edit.step-edit {
  display: inline-flex;
}

.apt-checkout-step__edit.step-edit:hover,
.apt-checkout-step__edit.step-edit:focus {
  color: var(--apt-terracotta);
}

.apt-checkout-step__edit .material-icons {
  font-size: 0.95rem;
}

.apt-checkout-step__content.content {
  padding: var(--apt-checkout-step-y) var(--apt-checkout-step-x) clamp(22px, 2.5vw, 32px) !important;
}

/* Anular padding/márgenes legacy de theme.css en pasos editoriales */
body#checkout section.checkout-step.apt-checkout-step .step-title,
body#checkout section.checkout-step.apt-checkout-step .apt-checkout-step__head.step-title {
  padding: clamp(16px, 2vw, 22px) var(--apt-checkout-step-x) !important;
  padding-bottom: clamp(16px, 2vw, 22px) !important;
}

body#checkout section.checkout-step.apt-checkout-step .content,
body#checkout section.checkout-step.apt-checkout-step .apt-checkout-step__content.content {
  padding: var(--apt-checkout-step-y) var(--apt-checkout-step-x) clamp(22px, 2.5vw, 32px) !important;
}

body#checkout section.checkout-step.apt-checkout-step.-current + .checkout-step .step-title {
  padding-top: clamp(16px, 2vw, 22px) !important;
  border-top: 0 !important;
}

body#checkout section.checkout-step.apt-checkout-step .checkbox-field div {
  margin-top: 1rem !important;
}

body#checkout section.checkout-step.apt-checkout-step .address {
  margin-left: 0 !important;
}

body#checkout section.checkout-step:not(.-current) .apt-checkout-step__content.content {
  display: none;
}

body#checkout section.checkout-step.-current .apt-checkout-step__content.content,
body#checkout section.checkout-step.-current.-reachable.-complete .apt-checkout-step__content.content {
  display: block;
}

/* Direcciones */
.apt-checkout-addresses__intro,
.apt-checkout-addresses__subtitle {
  margin: 0 0 clamp(14px, 1.8vw, 20px);
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-base);
  line-height: 1.55;
  color: var(--apt-ink-soft);
}

.apt-checkout-addresses__subtitle {
  font-size: var(--apt-fs-xs);
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--apt-ink);
}

.apt-checkout-addresses__list {
  display: grid;
  gap: clamp(12px, 1.5vw, 16px);
  margin-bottom: clamp(14px, 1.8vw, 20px);
}

.apt-checkout-address {
  border: 1px solid var(--apt-line);
  background: var(--apt-cream-soft);
  transition: border-color var(--apt-trans), background var(--apt-trans);
}

.apt-checkout-address.selected,
body#checkout section.checkout-step .apt-checkout-address.selected {
  border-color: var(--apt-terracotta) !important;
  background: var(--apt-white);
}

.apt-checkout-address__head { padding: 0; }

.apt-checkout-address__label {
  display: block;
  margin: 0;
  padding: clamp(14px, 1.8vw, 18px) clamp(16px, 2vw, 22px);
  cursor: pointer;
}

.apt-checkout-address__radio.custom-radio {
  margin-right: 10px;
}

.apt-checkout-address__alias {
  display: block;
  margin-bottom: 6px;
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-xs);
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--apt-ink);
}

.apt-checkout-address__body.address {
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-md);
  line-height: 1.55;
  color: var(--apt-ink-soft);
}

.apt-checkout-address__footer.address-footer {
  display: flex;
  gap: clamp(12px, 2vw, 20px);
  padding: 0 clamp(16px, 2vw, 22px) clamp(14px, 1.8vw, 18px);
  border-top: 0;
}

.apt-checkout-address__action {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-2xs);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--apt-muted) !important;
  text-decoration: none;
  transition: color var(--apt-trans);
}

.apt-checkout-address__action:hover {
  color: var(--apt-terracotta) !important;
}

.apt-checkout-address__action .material-icons {
  font-size: 0.95rem;
}

.apt-checkout-addresses__add a,
.apt-checkout-addresses__alt a {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-xs);
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--apt-ink) !important;
  text-decoration: none;
  transition: color var(--apt-trans);
}

.apt-checkout-addresses__add a:hover,
.apt-checkout-addresses__alt a:hover {
  color: var(--apt-terracotta) !important;
}

.apt-checkout-addresses__actions,
.apt-checkout-personal__actions,
.apt-checkout-shipping__actions,
.apt-checkout-payment__actions {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  gap: 12px;
  margin-top: clamp(18px, 2.2vw, 28px);
  margin-left: calc(-1 * var(--apt-checkout-step-x, clamp(18px, 2.2vw, 28px)));
  margin-right: calc(-1 * var(--apt-checkout-step-x, clamp(18px, 2.2vw, 28px)));
  padding: clamp(14px, 1.8vw, 20px) var(--apt-checkout-step-x, clamp(18px, 2.2vw, 28px)) 0;
  border-top: 1px solid var(--apt-line);
}

.apt-checkout-personal__actions form,
.apt-checkout-addresses__actions form {
  margin: 0;
}

/* Botonera del formulario de dirección (alta/edición dentro del checkout).
   Vive dentro de <footer class="form-footer apt-account-form__foot">, que ya aporta
   el separador y el margen superior, así que aquí solo se alinea la fila. */
.apt-address-form__actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  align-items: center;
  gap: 12px;
}
.apt-address-form__actions form { margin: 0; }
body#checkout .apt-address-form__actions .apt-btn { float: none; }

.apt-address-form__cancel,
body#checkout .apt-address-form__cancel {
  float: none;
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-xs);
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--apt-muted);
  text-decoration: none;
  transition: color var(--apt-trans);
}
.apt-address-form__cancel:hover,
body#checkout .apt-address-form__cancel:hover {
  color: var(--apt-terracotta) !important;
}

body#checkout .continue.btn.btn-primary,
body#checkout #payment-confirmation .btn.btn-primary {
  display: none;
}

body#checkout .apt-btn.continue,
body#checkout .apt-checkout-addresses__actions .apt-btn,
body#checkout .apt-checkout-personal__actions .apt-btn,
body#checkout .apt-checkout-shipping__actions .apt-btn,
body#checkout .apt-checkout-payment__actions .apt-btn {
  float: none;
}

/* Envío y pago */
.apt-checkout-shipping__option,
.apt-checkout-payment__option {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 12px;
  padding: clamp(14px, 1.8vw, 18px);
  margin-bottom: clamp(10px, 1.2vw, 14px);
  border: 1px solid var(--apt-line);
  background: var(--apt-cream-soft);
  transition: border-color var(--apt-trans);
}

body#checkout section.checkout-step .payment-options .apt-checkout-payment__option .custom-radio {
  float: none !important;
  flex: 0 0 auto;
  margin: 0;
}

body#checkout section.checkout-step .payment-options .apt-checkout-payment__option form.ps-hidden-by-js {
  display: none !important;
}

body#checkout section.checkout-step .payment-options .apt-checkout-payment__option label,
body#checkout .apt-checkout-payment__option label {
  display: flex !important;
  align-items: center;
  justify-content: flex-start;
  flex: 1 1 auto;
  gap: 10px;
  min-width: 0;
  margin: 0;
  text-align: left;
  cursor: pointer;
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-base);
  color: var(--apt-ink);
}

body#checkout section.checkout-step .payment-options .apt-checkout-payment__option label span,
body#checkout .apt-checkout-payment__option label span {
  text-align: left;
}

body#checkout .apt-checkout-payment__option label img {
  flex: 0 0 auto;
  max-height: 24px;
  width: auto;
}

.apt-checkout-shipping__option:has(input:checked),
.apt-checkout-payment__option:has(input:checked) {
  border-color: var(--apt-terracotta);
  background: var(--apt-white);
}

.apt-checkout-shipping__label,
.apt-checkout-payment__option label {
  flex: 1;
  margin: 0;
  cursor: pointer;
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-base);
  color: var(--apt-ink);
}

.apt-checkout-shipping__extras {
  margin-top: clamp(18px, 2.2vw, 28px);
  padding-top: clamp(14px, 1.8vw, 20px);
  border-top: 1px solid var(--apt-line);
}

.apt-checkout-shipping__extras label,
body#checkout #delivery > label {
  display: block;
  margin-bottom: 8px;
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-md);
  color: var(--apt-ink-soft);
  text-align: left;
}

body#checkout textarea {
  width: 100%;
  min-height: 88px;
  padding: 12px 14px;
  border: 1px solid var(--apt-line);
  background: var(--apt-white);
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-base);
  color: var(--apt-ink);
  resize: vertical;
  transition: border-color var(--apt-trans);
}

body#checkout textarea:focus {
  outline: none;
  border-color: var(--apt-terracotta);
}

.apt-checkout-payment__conditions ul {
  list-style: none;
  margin: clamp(16px, 2vw, 24px) 0 0;
  padding: 0;
}

body#checkout section.checkout-step.apt-checkout-step #conditions-to-approve {
  padding-top: 0 !important;
}

.apt-checkout-payment__condition {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 12px;
}

.apt-checkout-payment__checkbox.custom-checkbox {
  position: relative;
  flex: 0 0 18px;
  width: 18px;
  height: 18px;
  margin: 0;
}

body#checkout .apt-checkout-payment__checkbox.custom-checkbox span {
  position: absolute;
  top: 0;
  left: 0;
  flex: none;
  width: 18px;
  height: 18px;
  margin: 0;
}

.apt-checkout-payment__condition-label {
  flex: 1 1 auto;
  margin: 0;
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-md);
  line-height: 1.5;
  color: var(--apt-ink-soft);
  text-align: left;
  cursor: pointer;
}

.apt-checkout-payment__condition-label a {
  color: var(--apt-ink);
  text-decoration: underline;
  text-underline-offset: 2px;
}

.apt-checkout-payment__condition-label a:hover {
  color: var(--apt-terracotta);
}

.apt-checkout-payment .cart-payment-step-not-needed-info,
.apt-checkout-payment .cart-payment-step-refreshed-info {
  margin: 0 0 clamp(14px, 1.8vw, 20px);
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-base);
  line-height: 1.55;
  color: var(--apt-ink-soft);
}

.apt-checkout-payment__confirm .js-alert-payment-conditions {
  margin: clamp(12px, 1.5vw, 16px) 0 0;
}

/* Tabs login / invitado */
.apt-checkout-tabs .nav-link {
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-xs);
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--apt-muted);
  border: 0;
  padding: 8px 0;
}

.apt-checkout-tabs .nav-link.active,
.apt-checkout-tabs .nav-link:hover {
  color: var(--apt-ink);
  background: transparent;
}

.apt-checkout-tabs .nav-separator {
  color: var(--apt-line);
  padding: 0 8px;
}

.apt-checkout-personal p {
  margin: 0 0 0.65em;
}

.apt-checkout-personal__identity,
.apt-checkout-personal__logout {
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-base);
  line-height: 1.55;
  color: var(--apt-ink-soft);
}

.apt-checkout-personal__note {
  margin-bottom: 0 !important;
  color: var(--apt-muted);
}

/* Formularios checkout */
body#checkout .form-control-label,
body#checkout label.form-control-label {
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-xs);
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--apt-ink);
  text-align: left;
}

body#checkout .form-control,
body#checkout select.form-control {
  border: 1px solid var(--apt-line);
  border-radius: 0;
  background: var(--apt-white);
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-base);
  color: var(--apt-ink);
  box-shadow: none;
}

body#checkout .form-control:focus {
  border-color: var(--apt-terracotta);
  box-shadow: 0 0 0 0.12rem rgba(156, 90, 60, 0.12);
}

body#checkout .custom-radio input[type=radio]:checked + span,
body#checkout .custom-checkbox input[type=checkbox]:checked + span {
  border-color: var(--apt-terracotta) !important;
}

body#checkout .custom-radio span,
body#checkout .custom-checkbox span {
  border-color: var(--apt-line);
}

/* Sidebar resumen */
.apt-checkout-summary {
  background: var(--apt-cream-soft);
  border: 1px solid var(--apt-line);
  padding: clamp(20px, 2.5vw, 28px);
  box-shadow: none;
}

.apt-checkout-summary .card,
.apt-checkout-summary .card-block {
  background: transparent;
  border: 0;
  padding: 0;
  margin: 0;
  box-shadow: none;
}

.apt-checkout-summary__count {
  margin: 0 0 6px;
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-xs);
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--apt-ink);
}

.apt-checkout-summary__toggle a {
  display: inline-flex;
  align-items: center;
  gap: 2px;
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-2xs);
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--apt-muted) !important;
  text-decoration: none;
}

.apt-checkout-summary__toggle a:hover {
  color: var(--apt-terracotta) !important;
}

.apt-checkout-summary__products {
  margin-bottom: clamp(14px, 1.8vw, 20px);
  padding-bottom: clamp(14px, 1.8vw, 20px);
  border-bottom: 1px solid var(--apt-line);
}

.apt-checkout-summary__list {
  list-style: none;
  margin: clamp(12px, 1.5vw, 16px) 0 0;
  padding: 0;
}

.apt-checkout-summary__subtotals {
  padding: clamp(14px, 1.8vw, 20px) 0;
  border-top: 1px solid var(--apt-line);
  border-bottom: 1px solid var(--apt-line);
}

.apt-checkout-summary__line {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 12px;
  margin-bottom: 10px;
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-md);
  color: var(--apt-ink-soft);
}

.apt-checkout-summary__line:last-child {
  margin-bottom: 0;
}

.apt-checkout-summary__line .value {
  font-weight: 600;
  color: var(--apt-ink);
  white-space: nowrap;
}

.apt-checkout-summary .apt-cart-totals__grand,
.apt-checkout-summary .cart-summary-totals {
  padding-top: clamp(14px, 1.8vw, 20px);
}

.apt-checkout-summary .cart-total .label,
.apt-checkout-summary .cart-total .value {
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-sm);
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--apt-ink);
}

.apt-checkout-summary .cart-total .value {
  font-size: var(--apt-fs-lg);
  letter-spacing: 0.04em;
  text-transform: none;
}

.apt-checkout-reassurance {
  margin-top: clamp(16px, 2vw, 24px);
}

/* Pie legal checkout */
.apt-checkout-legal {
  margin-top: clamp(32px, 4vw, 48px);
  padding-top: clamp(20px, 2.5vw, 28px);
  border-top: 1px solid var(--apt-line);
  text-align: center;
}

.apt-checkout-legal__terms {
  margin-bottom: 10px;
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-xs);
  color: var(--apt-muted);
}

.apt-checkout-legal__copy {
  margin: 0;
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-2xs);
  letter-spacing: 0.08em;
  color: var(--apt-muted);
}

.apt-checkout-modal__content {
  border: 1px solid var(--apt-line);
  border-radius: 0;
}

.apt-checkout-modal__close {
  position: absolute;
  top: 12px;
  right: 14px;
  z-index: 2;
  opacity: 0.6;
}

/* Override verdes legacy theme.css */
body#checkout section.checkout-step .step-number,
body#checkout section.checkout-step.-current .step-number {
  background-color: var(--apt-terracotta) !important;
}

body#checkout section.checkout-step.-reachable.-complete h1 .done,
body#checkout section.checkout-step .done {
  color: var(--apt-white) !important;
  background-color: var(--apt-terracotta) !important;
}

@media (max-width: 991px) {
  .apt-checkout__grid {
    grid-template-columns: 1fr;
  }
  .apt-checkout__aside {
    position: static;
    order: -1;
  }
}

/* =========================================================================
   CONFIRMACIÓN DE PEDIDO
   ========================================================================= */
#order-confirmation #main.apt-order-confirm {
  max-width: none !important;
  width: 100% !important;
  margin: 0 !important;
  padding: clamp(20px, 3vw, 36px) 0 clamp(56px, 7vw, 96px) !important;
  float: none !important;
  box-sizing: border-box;
}

.apt-order-confirm__hero {
  margin-bottom: clamp(28px, 3.5vw, 40px);
  padding: clamp(24px, 3vw, 36px);
  background: var(--apt-white);
  border: 1px solid var(--apt-line);
  text-align: center;
}

.apt-order-confirm__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 52px;
  height: 52px;
  margin-bottom: clamp(14px, 1.8vw, 20px);
  color: var(--apt-terracotta);
}

.apt-order-confirm__icon .material-icons {
  font-size: 52px;
  line-height: 1;
}

.apt-order-confirm__title {
  margin: 0 0 clamp(12px, 1.5vw, 16px);
  font-family: var(--apt-display);
  font-size: var(--apt-fs-d4);
  font-weight: 400;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--apt-ink);
  line-height: 1.2;
}

.apt-order-confirm__lead {
  max-width: 36rem;
  margin: 0 auto;
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-base);
  line-height: 1.65;
  color: var(--apt-ink-soft);
}

.apt-order-confirm__lead a {
  color: var(--apt-ink);
  text-decoration: underline;
  text-underline-offset: 2px;
}

.apt-order-confirm__lead a:hover {
  color: var(--apt-terracotta);
}

.apt-order-confirm__hook {
  margin-top: clamp(16px, 2vw, 24px);
}

.apt-order-confirm__grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) min(100%, 320px);
  gap: clamp(28px, 4vw, 56px);
  align-items: start;
  margin-bottom: clamp(24px, 3vw, 36px);
}

.apt-order-confirm__main {
  min-width: 0;
  background: var(--apt-white);
  border: 1px solid var(--apt-line);
}

.apt-order-confirm__items {
  padding: clamp(18px, 2.2vw, 28px);
}

.apt-order-confirm__items-head {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 16px;
  align-items: end;
  margin-bottom: clamp(12px, 1.5vw, 18px);
  padding-bottom: clamp(12px, 1.5vw, 18px);
  border-bottom: 1px solid var(--apt-line);
}

.apt-order-confirm__items-title {
  margin: 0;
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-xs);
  font-weight: 600;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--apt-ink);
}

.apt-order-confirm__items-cols {
  display: grid;
  grid-template-columns: repeat(3, 88px);
  gap: 12px;
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-3xs);
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--apt-muted);
  text-align: center;
}

.apt-order-confirm__line {
  margin: 0;
  padding: clamp(16px, 2vw, 22px) 0;
  border-bottom: 1px solid var(--apt-line);
}

.apt-order-confirm__line:last-of-type {
  border-bottom: 0;
}

.apt-order-confirm__line-media .image,
.apt-order-confirm__line-media picture {
  display: block;
  aspect-ratio: 3 / 4;
  overflow: hidden;
  background: var(--apt-cream-soft);
}

.apt-order-confirm__line-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.apt-order-confirm__line-name {
  display: block;
  font-family: var(--apt-display);
  font-size: var(--apt-fs-base);
  font-weight: 400;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  line-height: 1.35;
  color: var(--apt-ink);
}

.apt-order-confirm__line-info .customizations a {
  display: inline-block;
  margin-top: 8px;
  font-size: var(--apt-fs-xs);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--apt-muted) !important;
}

.apt-order-confirm__line-info .customizations a:hover {
  color: var(--apt-terracotta) !important;
}

.apt-order-confirm__virtual {
  margin-top: 8px;
  font-size: var(--apt-fs-sm);
  color: var(--apt-muted);
}

.apt-order-confirm__mobile-label {
  display: none;
  font-size: var(--apt-fs-3xs);
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--apt-muted);
}

.apt-order-confirm__line-qty {
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-base);
  color: var(--apt-ink);
}

.apt-order-confirm__totals {
  padding: clamp(16px, 2vw, 22px) 0 0;
  border-top: 1px solid var(--apt-line);
}

.apt-order-confirm__totals-table {
  width: 100%;
  border-collapse: collapse;
}

.apt-order-confirm__totals-row td {
  padding: 8px 0;
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-md);
  color: var(--apt-ink-soft);
  vertical-align: top;
}

.apt-order-confirm__totals-row td:last-child {
  text-align: right;
  font-weight: 600;
  color: var(--apt-ink);
  white-space: nowrap;
}

.apt-order-confirm__totals-row--grand td {
  padding-top: 14px;
  font-size: var(--apt-fs-sm);
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--apt-ink);
}

.apt-order-confirm__totals-row--grand td:last-child {
  font-size: var(--apt-fs-lg);
  letter-spacing: 0.04em;
  text-transform: none;
}

.apt-order-confirm__aside {
  position: sticky;
  top: calc(var(--apt-header-h) + 20px);
  align-self: start;
}

.apt-order-confirm__details {
  padding: clamp(20px, 2.5vw, 28px);
  background: var(--apt-cream-soft);
  border: 1px solid var(--apt-line);
}

.apt-order-confirm__details-title {
  margin: 0 0 clamp(14px, 1.8vw, 20px);
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-xs);
  font-weight: 600;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--apt-ink);
}

.apt-order-confirm__details-list {
  list-style: none;
  margin: 0;
  padding: 0;
}

.apt-order-confirm__details-list > li {
  padding: clamp(12px, 1.5vw, 16px) 0;
  border-top: 1px solid var(--apt-line);
}

.apt-order-confirm__details-list > li:first-child {
  padding-top: 0;
  border-top: 0;
}

.apt-order-confirm__details-label {
  display: block;
  margin-bottom: 4px;
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-3xs);
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--apt-muted);
}

.apt-order-confirm__details-value {
  display: block;
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-base);
  line-height: 1.5;
  color: var(--apt-ink);
}

.apt-order-confirm__details-value em {
  font-size: var(--apt-fs-md);
  color: var(--apt-ink-soft);
}

.apt-order-confirm__details-note {
  font-size: var(--apt-fs-md);
  color: var(--apt-ink-soft);
}

.apt-order-confirm__panel {
  margin-bottom: clamp(20px, 2.5vw, 28px);
  padding: clamp(20px, 2.5vw, 28px);
  background: var(--apt-white);
  border: 1px solid var(--apt-line);
}

.apt-order-confirm__guest-title {
  margin: 0 0 12px;
  font-family: var(--apt-display);
  font-size: var(--apt-fs-d6);
  font-weight: 400;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--apt-ink);
}

.apt-order-confirm__guest-list {
  margin: 0 0 clamp(16px, 2vw, 22px);
  padding-left: 1.1rem;
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-md);
  line-height: 1.7;
  color: var(--apt-ink-soft);
}

.apt-order-confirm__guest-form .form-control-label {
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-xs);
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--apt-ink);
}

.apt-order-confirm__guest-form .form-control {
  border: 1px solid var(--apt-line);
  border-radius: 0;
  background: var(--apt-white);
  box-shadow: none;
}

.apt-order-confirm__guest-form .form-control:focus {
  border-color: var(--apt-terracotta);
  box-shadow: 0 0 0 0.12rem rgba(156, 90, 60, 0.12);
}

.apt-order-confirm__actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 12px;
  margin-top: clamp(28px, 3.5vw, 40px);
  padding-top: clamp(20px, 2.5vw, 28px);
  border-top: 1px solid var(--apt-line);
}

.apt-order-confirm-modal__content {
  border: 1px solid var(--apt-line);
  border-radius: 0;
}

/* Legacy theme overrides */
#order-confirmation .card,
#order-confirmation .card-block {
  background: transparent;
  border: 0;
  box-shadow: none;
  padding: 0;
}

#order-confirmation .card-title .done,
#order-confirmation .card-title .material-icons.done {
  color: var(--apt-terracotta) !important;
}

/* Miniatura cuadrada del producto en el detalle de pedido (área de cliente).
   La imagen es `medium` (400×600, 2:3). `aspect-ratio:1` sobre la <img> no basta:
   con los atributos width/height del original, el navegador conservaba la altura
   (salía 88×600). Solución robusta: el CONTENEDOR (<a>) es el cuadrado (aspect-ratio
   + overflow) y la <img> lo rellena con height:100% explícito + object-fit:cover. */
.apt-order-detail__line-image {
  display: block;
  width: 100%;
  max-width: 150px;
  aspect-ratio: 1;
  overflow: hidden;
  background: var(--apt-cream-soft);
}
.apt-order-detail__line-image picture,
.apt-order-detail__line-media picture,
.apt-order-detail__line-media img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  aspect-ratio: auto;
}

@media (max-width: 991px) {
  .apt-order-confirm__grid {
    grid-template-columns: 1fr;
  }

  .apt-order-confirm__aside {
    position: static;
    order: -1;
  }

  .apt-order-confirm__items-cols._desktop-title {
    display: none;
  }

  .apt-order-confirm__mobile-label {
    display: block;
    margin-bottom: 4px;
  }

  .apt-order-confirm__line-qty .col-xs-4 {
    margin-bottom: 10px;
  }
}

/* =========================================================================
   DETALLE DE PEDIDO — cuenta cliente
   ========================================================================= */
.apt-order-detail__meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 10px;
}

.apt-order-detail__meta .apt-account-badge {
  margin-top: 2px;
}

.apt-order-detail__ref {
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--apt-ink);
}

.apt-order-detail__sep {
  color: var(--apt-muted);
}

.apt-order-detail__actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
}

.apt-account__nav .apt-order-detail__actions {
  margin-left: 0;
}

.apt-order-detail__actions .apt-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 12px 22px;
  white-space: nowrap;
}

.apt-order-detail__actions .apt-btn--outline {
  color: var(--apt-ink) !important;
  background: var(--apt-cream-soft);
  border-color: var(--apt-line);
}

.apt-order-detail__actions .apt-btn--outline:hover {
  color: var(--apt-ink) !important;
  background: var(--apt-cream-deep);
  border-color: var(--apt-ink);
}

.apt-order-detail__actions .apt-btn .material-icons {
  font-size: 1rem;
}

.apt-order-detail__grid {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(280px, 0.65fr);
  gap: clamp(24px, 3vw, 40px);
  align-items: start;
  margin-bottom: clamp(28px, 3.5vw, 44px);
}

.apt-order-detail__section {
  margin-bottom: clamp(28px, 3.5vw, 44px);
}

.apt-order-detail__section-title,
.apt-order-detail__panel-title {
  margin: 0 0 clamp(16px, 2vw, 22px);
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-xs);
  font-weight: 600;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--apt-ink);
}

:is(#order-detail, .page-order-detail) .apt-order-detail__products,
:is(#order-detail, .page-order-detail) .apt-order-detail__message-form,
:is(#order-detail, .page-order-detail) .apt-order-detail__messages,
:is(#order-detail, .page-order-detail) .apt-order-detail__history,
:is(#order-detail, .page-order-detail) #order-shipping.apt-order-detail__section,
:is(#order-detail, .page-order-detail) .box,
:is(#order-detail, .page-order-detail) .order-message-form,
:is(#order-detail, .page-order-detail) .messages.box {
  border: 1px solid var(--apt-line);
  background: var(--apt-cream-soft);
  box-shadow: none;
}

:is(#order-detail, .page-order-detail) .apt-order-detail__message-form,
:is(#order-detail, .page-order-detail) .apt-order-detail__messages,
:is(#order-detail, .page-order-detail) .apt-order-detail__history,
:is(#order-detail, .page-order-detail) #order-shipping.apt-order-detail__section,
:is(#order-detail, .page-order-detail) .order-message-form.box,
:is(#order-detail, .page-order-detail) .messages.box {
  padding: clamp(18px, 2.2vw, 24px);
}

:is(#order-detail, .page-order-detail) .apt-order-detail__products {
  padding: 0;
}

:is(#order-detail, .page-order-detail) .apt-order-detail__history .apt-order-detail__section-title,
:is(#order-detail, .page-order-detail) #order-shipping .apt-order-detail__section-title,
:is(#order-detail, .page-order-detail) .apt-order-detail__messages .apt-order-detail__section-title {
  margin-top: 0;
}

:is(#order-detail, .page-order-detail) #order-shipping .apt-order-detail__carrier {
  margin-top: 4px;
}

:is(#order-detail, .page-order-detail) #order-shipping .apt-account-table-wrap,
:is(#order-detail, .page-order-detail) .apt-order-detail__history .apt-account-table-wrap {
  border: 0;
  background: transparent;
}

:is(#order-detail, .page-order-detail) .apt-order-detail__message-form-inner,
:is(#order-detail, .page-order-detail) .order-message-form form {
  background: transparent;
}

.apt-order-detail__field .form-control {
  border: 1px solid var(--apt-line);
  border-radius: 0;
  background: var(--apt-cream);
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-base);
  color: var(--apt-ink);
  box-shadow: none;
}

.apt-order-detail__items-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: clamp(16px, 2vw, 22px) clamp(18px, 2.2vw, 28px);
  border-bottom: 1px solid var(--apt-line);
  background: var(--apt-cream-soft);
}

.apt-order-detail__items-head .apt-order-detail__section-title {
  margin: 0;
}

.apt-order-detail__items-cols {
  display: grid;
  grid-template-columns: repeat(3, minmax(70px, 1fr));
  gap: 12px;
  min-width: min(100%, 280px);
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-3xs);
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--apt-muted);
  text-align: center;
}

.apt-order-detail__line {
  margin: 0;
  padding: clamp(16px, 2vw, 22px) clamp(18px, 2.2vw, 28px);
  border-bottom: 1px solid var(--apt-line);
  align-items: center;
}

.apt-order-detail__line:last-of-type {
  border-bottom: 0;
}

.apt-order-detail__line-image {
  max-width: 88px;
}

.apt-order-detail__line-name {
  display: inline-block;
  margin: 0 0 6px;
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-base);
  font-weight: 600;
  color: var(--apt-ink);
  text-decoration: none;
  transition: color var(--apt-trans);
}

.apt-order-detail__line-name:hover {
  color: var(--apt-terracotta);
}

.apt-order-detail__line-ref,
.apt-order-detail__line-note {
  margin: 0 0 6px;
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-sm);
  line-height: 1.5;
  color: var(--apt-muted);
}

.apt-order-detail__line-link,
.apt-order-detail__line-info .customizations a {
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-xs);
  font-weight: 500;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--apt-terracotta);
  text-decoration: underline;
  text-underline-offset: 2px;
}

.apt-order-detail__line-qty {
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-base);
  color: var(--apt-ink-soft);
}

.apt-order-detail__line-total {
  font-weight: 600;
  color: var(--apt-ink);
}

.apt-order-detail__mobile {
  border-top: 1px solid var(--apt-line);
}

.apt-order-detail__mobile-item {
  padding: 16px 18px;
  border-bottom: 1px solid var(--apt-line);
}

.apt-order-detail__mobile-item:last-child {
  border-bottom: 0;
}

.apt-order-detail__mobile-meta {
  display: grid;
  gap: 8px;
  margin: 12px 0 0;
}

.apt-order-detail__mobile-meta > div {
  display: flex;
  justify-content: space-between;
  gap: 12px;
}

.apt-order-detail__mobile-meta dt {
  margin: 0;
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-2xs);
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--apt-muted);
}

.apt-order-detail__mobile-meta dd {
  margin: 0;
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-base);
  color: var(--apt-ink);
}

.apt-order-detail__totals {
  padding: clamp(16px, 2vw, 22px) clamp(18px, 2.2vw, 28px);
  background: var(--apt-cream-soft);
  border-top: 1px solid var(--apt-line);
}

.apt-order-detail__totals-table {
  width: 100%;
  border-collapse: collapse;
}

.apt-order-detail__totals-row td {
  padding: 8px 0;
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-md);
  color: var(--apt-ink-soft);
  border: 0;
}

.apt-order-detail__totals-row td:last-child {
  text-align: right;
  color: var(--apt-ink);
}

.apt-order-detail__totals-row--grand td {
  padding-top: 14px;
  border-top: 1px solid var(--apt-line);
  font-size: var(--apt-fs-xs);
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--apt-ink);
}

.apt-order-detail__panel {
  padding: clamp(18px, 2.2vw, 24px);
  margin-bottom: 16px;
  border: 1px solid var(--apt-line);
  background: var(--apt-cream-soft);
}

.apt-order-detail__panel:last-child {
  margin-bottom: 0;
}

.apt-order-detail__facts {
  margin: 0;
}

.apt-order-detail__fact {
  padding: 10px 0;
  border-bottom: 1px solid var(--apt-line);
}

.apt-order-detail__fact:first-child {
  padding-top: 0;
}

.apt-order-detail__fact:last-child {
  padding-bottom: 0;
  border-bottom: 0;
}

.apt-order-detail__fact dt {
  margin: 0 0 4px;
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-3xs);
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--apt-muted);
}

.apt-order-detail__fact dd {
  margin: 0;
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-base);
  line-height: 1.55;
  color: var(--apt-ink);
}

.apt-order-detail__address {
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-base);
  line-height: 1.65;
  font-style: normal;
  color: var(--apt-ink-soft);
}

.apt-order-detail__tracking-note {
  margin: 0 0 10px;
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-md);
  line-height: 1.55;
  color: var(--apt-ink-soft);
}

.apt-order-detail__tracking-link {
  word-break: break-all;
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-sm);
  font-weight: 500;
  letter-spacing: 0.06em;
  color: var(--apt-terracotta);
  text-decoration: underline;
  text-underline-offset: 2px;
}

.apt-order-detail__history-table {
  margin-top: 0;
}

.apt-order-detail__timeline-mobile {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.apt-order-detail__timeline-item {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 8px;
  padding: 14px 16px;
  border: 1px solid var(--apt-line);
  background: var(--apt-cream-soft);
}

.apt-order-detail__timeline-date {
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-sm);
  color: var(--apt-muted);
}

.apt-order-detail__messages-list {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.apt-order-detail__message {
  padding: 16px 18px;
  border: 1px solid var(--apt-line);
  background: var(--apt-cream);
}

.apt-order-detail__message-head {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 8px;
  margin-bottom: 10px;
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-sm);
  color: var(--apt-muted);
}

.apt-order-detail__message-head strong {
  color: var(--apt-ink);
  font-weight: 600;
}

.apt-order-detail__message-body {
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-base);
  line-height: 1.6;
  color: var(--apt-ink-soft);
}

.apt-order-detail__message-form-head p {
  margin: 0 0 18px;
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-md);
  line-height: 1.55;
  color: var(--apt-ink-soft);
}

.apt-order-detail__field {
  margin-bottom: 16px;
}

.apt-order-detail__field .form-control-label {
  display: block;
  margin-bottom: 8px;
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-xs);
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  text-align: left;
  color: var(--apt-ink);
}

.apt-order-detail__field .form-control:focus {
  border-color: var(--apt-terracotta);
  box-shadow: 0 0 0 0.12rem rgba(156, 90, 60, 0.12);
}

.apt-order-detail__message-form-actions {
  margin-top: 8px;
}

:is(#order-detail, .page-order-detail) .apt-order-detail__carrier-card {
  padding: 14px 16px;
  border: 1px solid var(--apt-line);
  background: var(--apt-cream);
}

:is(#order-detail, .page-order-detail) .apt-order-detail__carrier .apt-account-table tbody td,
:is(#order-detail, .page-order-detail) .apt-order-detail__carrier-table tbody td {
  background: transparent;
}

.apt-order-detail-modal__content {
  border: 1px solid var(--apt-line);
  border-radius: 0;
}

#order-detail .box,
.page-order-detail .box {
  padding: 0;
  margin: 0 0 clamp(28px, 3.5vw, 44px);
}

#order-detail #order-return-form .table,
#order-detail #order-products.table {
  margin: 0;
  border: 0;
  background: transparent;
}

#order-detail #order-return-form .table th,
#order-detail #order-products.table th,
#order-detail #order-return-form .table td,
#order-detail #order-products.table td {
  padding: 12px 14px;
  border-color: var(--apt-line);
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-md);
  color: var(--apt-ink-soft);
  vertical-align: middle;
}

#order-detail #order-return-form .table thead th,
#order-detail #order-products.table thead th {
  font-size: var(--apt-fs-3xs);
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--apt-muted);
  background: var(--apt-cream-soft);
  border-bottom: 1px solid var(--apt-line);
}

#order-detail #order-return-form .table tbody td,
#order-detail #order-products.table tbody td {
  background: transparent;
}

#order-detail .order-items.box,
#order-detail .order-totals.box {
  padding: 16px 18px;
  background: var(--apt-cream-soft);
}

@media (max-width: 991px) {
  .apt-order-detail__grid {
    grid-template-columns: 1fr;
  }

  .apt-order-detail__items-cols._desktop-title {
    display: none;
  }

  .apt-account__nav {
    flex-direction: column;
    align-items: flex-start;
  }

  .apt-account__nav-actions,
  .apt-order-detail__actions {
    width: 100%;
    margin-left: 0;
    justify-content: flex-start;
  }

  .apt-order-detail__actions .apt-btn {
    width: 100%;
    justify-content: center;
  }
}

@media (min-width: 768px) {
  .apt-order-detail__items-cols._desktop-title {
    display: grid;
  }
}

/* =========================================================================
   CONTENIDO EDITORIAL (apt_editorial)
   Paginas de contenido: atelier, prensa, sobre nosotros...
   Ancho completo con margenes --apt-gut, como el resto del customer journey.
   ========================================================================= */

.apt-editorial {
  --apt-ed-pad: clamp(20px, 4vw, var(--apt-gut));
  --apt-ed-gap: clamp(48px, 7vw, 110px);
  background: var(--apt-cream);
}

.apt-editorial > section {
  padding-left: var(--apt-ed-pad);
  padding-right: var(--apt-ed-pad);
}

.apt-editorial > section + section { margin-top: var(--apt-ed-gap); }
.apt-editorial > section:last-child { padding-bottom: var(--apt-ed-gap); }

/* ── Portada ── */
.apt-editorial__hero {
  padding-top: clamp(40px, 6vw, 90px);
  text-align: center;
  max-width: 780px;
  margin: 0 auto;
}

.apt-editorial__eyebrow {
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-2xs);
  font-weight: 400;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  color: var(--apt-muted);
  margin: 0 0 16px;
}

.apt-editorial__hero-title {
  font-family: var(--apt-display);
  font-weight: 400;
  font-size: var(--apt-fs-d2);
  letter-spacing: 0.18em;
  text-transform: uppercase;
  line-height: 1.25;
  margin: 0 0 22px;
}

.apt-editorial__lead {
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-2xl);
  line-height: 1.8;
  color: var(--apt-ink-soft);
  margin-top: 22px;
}

/* Las preguntas de apertura: una por linea, en cursiva serif */
.apt-editorial__questions {
  list-style: none;
  margin: 28px 0 0;
  padding: 0;
}

.apt-editorial__questions li {
  font-family: var(--apt-display);
  font-size: var(--apt-fs-d3);
  font-style: italic;
  line-height: 1.7;
  color: var(--apt-ink);
  padding: 9px 0;
}

.apt-editorial__questions li + li { border-top: 1px solid var(--apt-line); }

/* ── Texto con imagen lateral ── */
.apt-editorial__split {
  display: grid;
  grid-template-columns: 1fr 1.05fr;
  gap: clamp(28px, 5vw, 72px);
  align-items: center;
}

.apt-editorial__split--left .apt-editorial__text  { order: 2; }
.apt-editorial__split--left .apt-editorial__media { order: 1; }

.apt-editorial__title {
  font-family: var(--apt-display);
  font-weight: 400;
  font-size: var(--apt-fs-d3);
  letter-spacing: 0.12em;
  text-transform: uppercase;
  line-height: 1.3;
  margin: 0 0 18px;
}

.apt-editorial__copy {
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-xl);
  line-height: 1.85;
  color: var(--apt-ink-soft);
}

.apt-editorial__copy strong { font-weight: 500; color: var(--apt-ink); }

.apt-editorial__list {
  list-style: none;
  margin: 22px 0 0;
  padding: 0;
}

.apt-editorial__list li {
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-lg);
  line-height: 1.75;
  color: var(--apt-ink-soft);
  padding: 12px 0 12px 26px;
  border-top: 1px solid var(--apt-line);
  position: relative;
}

.apt-editorial__list li:last-child { border-bottom: 1px solid var(--apt-line); }

/* Guion en gold en lugar de vinneta redonda: cero radius */
.apt-editorial__list li::before {
  content: '';
  position: absolute;
  left: 0;
  top: 22px;
  width: 12px;
  height: 1px;
  background: var(--apt-gold);
}

.apt-editorial__text .apt-btn { margin-top: 26px; }

.apt-editorial__media {
  display: block;
  width: 100%;
  height: auto;
}

/* ── Imagenes a ancho completo ── */
.apt-editorial__images { display: grid; gap: clamp(14px, 2vw, 24px); }
.apt-editorial__images--pair { grid-template-columns: 1fr 1fr; }

/* Sin recorte ni alto fijo: las composiciones son transparentes y cada una trae
   su propia proporcion. Dejarlas fluir evita letterboxing y bordes recortados. */
.apt-editorial__image {
  display: block;
  width: 100%;
  height: auto;
}

/* ── Cita ── */
.apt-editorial__quote {
  text-align: center;
  max-width: 900px;
  margin: 0 auto;
  padding-top: clamp(20px, 3vw, 40px);
}

.apt-editorial__quote-text {
  font-family: var(--apt-display);
  font-size: var(--apt-fs-d3);
  font-style: italic;
  line-height: 1.55;
  color: var(--apt-ink);
  margin: 22px 0 0;
}

/* ── Llamada a la accion ── */
.apt-editorial__cta {
  text-align: center;
  max-width: 720px;
  margin: 0 auto;
  padding-top: clamp(28px, 4vw, 56px);
  padding-bottom: clamp(28px, 4vw, 56px);
  background: var(--apt-cream-soft);
}

.apt-editorial__contacts {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 14px 34px;
  margin: 26px 0 30px;
}

.apt-editorial__contact {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-sm);
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--apt-ink);
  text-decoration: none;
  border-bottom: 1px solid var(--apt-line);
  padding-bottom: 4px;
  transition: color var(--apt-trans), border-color var(--apt-trans);
}

.apt-editorial__contact:hover {
  color: var(--apt-terracotta);
  border-color: var(--apt-terracotta);
}

.apt-editorial__contact .material-icons { font-size: 18px; }

@media (max-width: 767px) {
  .apt-editorial__split,
  .apt-editorial__images--pair { grid-template-columns: 1fr; }

  /* En movil la imagen siempre debajo del texto, sin importar el lado */
  .apt-editorial__split--left .apt-editorial__text  { order: 1; }
  .apt-editorial__split--left .apt-editorial__media { order: 2; }

}

/* Dentro de una pagina CMS el wrapper ya aplica --apt-gut a los lados: si las
   secciones anadieran el suyo, el texto quedaria metido hacia dentro el doble. */
#cms .apt-editorial { --apt-ed-pad: 0; }

/* La portada del editorial ya trae su propio aire arriba */
#cms #main.apt-cms--editorial { padding-top: 0 !important; }

/* =========================================================================
   OPINIONES — disposicion en rejilla (pagina) ademas de la franja (home)
   ========================================================================= */

.apt-editorial__embed { padding: 0; }

.apt-reviews-section--grid { padding-top: clamp(20px, 3vw, 40px); }

/* Cuatro por fila. Sin `align-items: start`: asi las cards se estiran a la altura
   de su fila y quedan igualadas aunque las citas midan distinto. */
.apt-reviews--grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: clamp(18px, 2.4vw, 30px);
}

@media (max-width: 1200px) { .apt-reviews--grid { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 900px)  { .apt-reviews--grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px)  { .apt-reviews--grid { grid-template-columns: 1fr; } }

.apt-reviews--grid .apt-review {
  background: var(--apt-cream-soft);
  border: 1px solid var(--apt-line);
  padding: 26px 24px 24px;
  margin: 0;
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
}

.apt-reviews--grid .apt-review__stars {
  color: var(--apt-gold);
  letter-spacing: 0.18em;
  font-size: var(--apt-fs-sm);
  margin-bottom: 12px;
}

.apt-reviews--grid .apt-review__quote {
  font-family: var(--apt-display);
  font-size: var(--apt-fs-lg);
  font-style: italic;
  line-height: 1.7;
  color: var(--apt-ink);
  margin: 0 0 16px;
  flex: 1 0 auto;
}

.apt-reviews--grid .apt-review__author {
  font-family: var(--apt-sans);
  font-style: normal;
  font-size: var(--apt-fs-2xs);
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--apt-muted);
  margin-top: auto;
}

/* Sellos de la portada editorial (plataformas de opinion, organismos) */
.apt-editorial__seals {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: clamp(20px, 3vw, 44px);
  margin-top: 28px;
}

.apt-editorial__seals img {
  height: 34px;
  width: auto;
  opacity: 0.72;
  filter: grayscale(1);
  transition: opacity var(--apt-trans), filter var(--apt-trans);
}

.apt-editorial__seals img:hover { opacity: 1; filter: grayscale(0); }

/* =========================================================================
   PRENSA (apt_press)
   ========================================================================= */

.apt-press { padding-bottom: clamp(40px, 6vw, 80px); }

.apt-press__grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: clamp(18px, 2.4vw, 32px);
}

@media (max-width: 1200px) { .apt-press__grid { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 900px)  { .apt-press__grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 520px)  { .apt-press__grid { grid-template-columns: 1fr; } }

.apt-press__item { display: flex; flex-direction: column; }

.apt-press__link { display: block; overflow: hidden; background: var(--apt-cream-deep); }

.apt-press__photo {
  display: block;
  width: 100%;
  height: auto;
  transition: transform var(--apt-trans);
}

.apt-press__link:hover .apt-press__photo { transform: scale(1.03); }

.apt-press__name {
  font-family: var(--apt-display);
  font-size: var(--apt-fs-base);
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--apt-ink);
  margin: 14px 0 6px;
}

.apt-press__desc {
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-md);
  line-height: 1.7;
  color: var(--apt-ink-soft);
  margin: 0 0 12px;
}

.apt-press__cta {
  align-self: flex-start;
  margin-top: auto;
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-2xs);
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--apt-ink);
  text-decoration: none;
  border-bottom: 1px solid var(--apt-line);
  padding-bottom: 3px;
  transition: color var(--apt-trans), border-color var(--apt-trans);
}

.apt-press__cta:hover { color: var(--apt-terracotta); border-color: var(--apt-terracotta); }

.apt-press__pages {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 26px;
  margin-top: clamp(32px, 4vw, 56px);
  padding-top: 24px;
  border-top: 1px solid var(--apt-line);
}

.apt-press__page {
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-xs);
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--apt-ink);
  text-decoration: none;
}

.apt-press__page:hover { color: var(--apt-terracotta); }

.apt-press__count {
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-xs);
  letter-spacing: 0.12em;
  color: var(--apt-muted);
}

/* ══ Seccion Looks (lookbook gestionado por el modulo apt_looks) ══ */
.apt-looks {
  display: grid;
  grid-template-columns: clamp(180px, 18vw, 240px) 1fr;
  gap: clamp(24px, 4vw, 56px);
  align-items: start;
  font-family: var(--apt-sans);
  padding: clamp(24px, 3.5vw, 48px) 0 clamp(48px, 6vw, 84px);
}
.apt-looks__title {
  font-family: var(--apt-display);
  font-weight: 400;
  font-size: var(--apt-fs-d2);
  letter-spacing: 0.18em;
  text-transform: uppercase;
  line-height: 1.2;
  margin: 0 0 clamp(20px, 3vw, 32px);
  color: var(--apt-ink);
}
.apt-looks__side { position: sticky; top: calc(var(--apt-header-h) + 20px); }
.apt-looks__side-title {
  font-family: var(--apt-display);
  font-size: var(--apt-fs-xl); letter-spacing: 0.22em; text-transform: uppercase;
  margin: 0 0 16px; padding-bottom: 12px; border-bottom: 1px solid var(--apt-line);
}
.apt-looks__nav { list-style: none; margin: 0; padding: 0; }
.apt-looks__nav li { margin: 0; }
.apt-looks__nav a {
  display: block; padding: 9px 0; font-size: var(--apt-fs-sm); letter-spacing: 0.14em;
  text-transform: uppercase; color: var(--apt-ink-soft); text-decoration: none;
  border-bottom: 1px solid var(--apt-line); transition: color var(--apt-trans);
}
.apt-looks__nav a:hover,
.apt-looks__nav a.is-active { color: var(--apt-terracotta); }
.apt-looks__nav a.is-active { font-weight: 500; }
.apt-looks__empty { color: var(--apt-muted); font-size: var(--apt-fs-lg); }
.apt-looks__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(16px, 2vw, 26px); margin: 0; }
.apt-looks__grid--cats { grid-template-columns: repeat(4, 1fr); }
a.apt-look { text-decoration: none; margin: 0; display: flex; flex-direction: column; }
.apt-look img { width: 100%; aspect-ratio: 2 / 3; object-fit: cover; background: var(--apt-cream-deep); display: block; transition: opacity var(--apt-trans); }
a.apt-look:hover img { opacity: 0.9; }
.apt-look .apt-look__cap {
  display: block; font-family: var(--apt-display); font-size: var(--apt-fs-base); line-height: 1.4;
  color: var(--apt-ink); margin-top: 10px; text-align: center; transition: color var(--apt-trans);
}
a.apt-look:hover .apt-look__cap { color: var(--apt-terracotta); }
a.apt-look--cat .apt-look__cap {
  font-family: var(--apt-sans); text-transform: uppercase; letter-spacing: 0.16em; font-size: var(--apt-fs-xs);
}

/* Ficha de look: cabecera + productos que lo componen */
.apt-look-detail__head { text-align: center; margin-bottom: clamp(24px, 3vw, 40px); }
.apt-look-detail__eyebrow { margin: 0 0 12px; font-size: var(--apt-fs-2xs); letter-spacing: 0.24em; text-transform: uppercase; }
.apt-look-detail__eyebrow a { color: var(--apt-muted); }
.apt-look-detail__eyebrow a:hover { color: var(--apt-terracotta); }
.apt-look-detail__title {
  font-family: var(--apt-display); font-weight: 400; text-transform: uppercase;
  font-size: var(--apt-fs-d2); letter-spacing: 0.16em; margin: 0; line-height: 1.2;
}
.apt-look-detail__rule { display: block; width: 56px; height: 1px; background: var(--apt-terracotta); margin: 18px auto 0; }
.apt-look-detail__lead {
  font-family: var(--apt-sans); font-size: var(--apt-fs-xs); letter-spacing: 0.2em; text-transform: uppercase;
  color: var(--apt-muted); text-align: center; margin: 0 0 24px;
}
.apt-look-detail__grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: clamp(16px, 2vw, 26px); }
.apt-look-product { display: flex; flex-direction: column; text-align: center; }
.apt-look-product__media img { width: 100%; aspect-ratio: 2 / 3; object-fit: cover; background: var(--apt-cream-deep); display: block; transition: opacity var(--apt-trans); }
.apt-look-product__media:hover img { opacity: 0.9; }
.apt-look-product__name {
  font-family: var(--apt-display); font-size: var(--apt-fs-md); line-height: 1.35; color: var(--apt-ink);
  margin-top: 12px; text-decoration: none; transition: color var(--apt-trans);
}
.apt-look-product__name:hover { color: var(--apt-terracotta); }
.apt-look-product__price { font-family: var(--apt-display); font-size: var(--apt-fs-base); color: var(--apt-ink); margin-top: 6px; font-weight: 500; }

@media (max-width: 900px) {
  .apt-looks { grid-template-columns: 1fr; }
  .apt-looks__side { position: static; }
  .apt-looks__nav { display: flex; flex-wrap: wrap; gap: 6px 14px; }
  .apt-looks__nav a { border-bottom: none; padding: 4px 0; }
  .apt-looks__grid, .apt-looks__grid--cats,
  .apt-look-detail__grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 520px) {
  .apt-looks__grid, .apt-looks__grid--cats,
  .apt-look-detail__grid { grid-template-columns: 1fr 1fr; gap: 12px; }
}

/* ═══════════════════════════════════════════════════════════════
   SELECT CON BUSCADOR (.apt-select)
   Mejora progresiva del <select> nativo — ver apparentia.js.
   El <select> original sigue en el DOM (.apt-select__native): se mantiene
   enfocable para la validación HTML5 y para el envío del formulario.
   ═══════════════════════════════════════════════════════════════ */

.apt-select {
  position: relative;
  width: 100%;
  max-width: 100%;
}

.apt-select__native {
  position: absolute;
  left: 0;
  bottom: 0;
  width: 100%;
  height: 1px;
  padding: 0;
  margin: 0;
  border: 0;
  opacity: 0;
  pointer-events: none;
}

.apt-select__toggle {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  width: 100%;
  min-height: 2.75rem;
  padding: 12px 14px;
  text-align: left;
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-base);
  line-height: 1.4;
  color: var(--apt-ink);
  background: var(--apt-cream);
  border: 1px solid var(--apt-line);
  border-radius: 0;
  box-shadow: none;
  cursor: pointer;
  transition: border-color var(--apt-trans);
}
.apt-select__toggle:hover { border-color: var(--apt-ink-soft); }
.apt-select__toggle:focus,
.apt-select.is-open .apt-select__toggle {
  border-color: var(--apt-ink);
  outline: none;
}

.apt-select__value {
  flex: 1 1 auto;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.apt-select__value--placeholder { color: var(--apt-muted); }

/* Chevron en CSS puro: sin iconos ni SVG externos */
.apt-select__caret {
  flex: 0 0 auto;
  width: 8px;
  height: 8px;
  margin-top: -4px;
  border-right: 1px solid var(--apt-ink-soft);
  border-bottom: 1px solid var(--apt-ink-soft);
  transform: rotate(45deg);
  transition: transform var(--apt-trans);
}
.apt-select.is-open .apt-select__caret {
  margin-top: 2px;
  transform: rotate(-135deg);
}

.apt-select__panel {
  position: absolute;
  z-index: 60;
  top: calc(100% - 1px);
  left: 0;
  right: 0;
  background: var(--apt-cream);
  border: 1px solid var(--apt-ink);
  border-radius: 0;
}
.apt-select__panel[hidden] { display: none; }

.apt-select__search {
  display: block;
  width: 100%;
  padding: 11px 14px;
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-sm);
  color: var(--apt-ink);
  background: var(--apt-cream-soft);
  border: 0;
  border-bottom: 1px solid var(--apt-line);
  border-radius: 0;
  box-shadow: none;
}
.apt-select__search:focus { outline: none; box-shadow: none; }
.apt-select__search::placeholder { color: var(--apt-muted); }

.apt-select__list {
  list-style: none;
  margin: 0;
  padding: 0;
  max-height: 264px;
  overflow-y: auto;
  overscroll-behavior: contain;
}

.apt-select__option {
  padding: 9px 14px;
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-sm);
  line-height: 1.35;
  color: var(--apt-ink-soft);
  cursor: pointer;
}
.apt-select__option[hidden] { display: none; }
.apt-select__option.is-active { background: var(--apt-cream-deep); color: var(--apt-ink); }
.apt-select__option.is-selected {
  color: var(--apt-ink);
  font-weight: 500;
}
.apt-select__option.is-selected::after {
  content: '·';
  margin-left: 6px;
  color: var(--apt-terracotta);
}

.apt-select__empty {
  margin: 0;
  padding: 14px;
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-xs);
  color: var(--apt-muted);
}
.apt-select__empty[hidden] { display: none; }

/* El panel no debe quedar recortado por el paso del checkout */
body#checkout .apt-checkout-step__content,
body#checkout .js-address-form { overflow: visible; }

/* ═══════════════════════════════════════════════════════════════
   SEGUIMIENTO DE PEDIDO DE INVITADO (#guest-login / #guest-tracking)
   Formulario corto y aislado: columna centrada y bloque equilibrado
   verticalmente, en vez de la rejilla Bootstrap de classic a ancho completo.
   ═══════════════════════════════════════════════════════════════ */

:is(#guest-login, #guest-tracking) #main.apt-account-page {
  display: flex;
  flex-direction: column;
  justify-content: center;
  /* Alto util: viewport menos header fijo y franja de breadcrumb */
  min-height: calc(100vh - var(--apt-header-h) - 190px);
  padding: clamp(32px, 6vh, 72px) 0 clamp(40px, 7vh, 88px);
}

:is(#guest-login, #guest-tracking) .apt-account__head {
  text-align: center;
  border-bottom: 0;
  margin-bottom: clamp(18px, 2.5vw, 26px);
  padding-bottom: 0;
}

.apt-guest-track {
  width: 100%;
  max-width: 460px;
  margin: 0 auto;
}

.apt-guest-track__intro {
  margin: 0 0 clamp(22px, 3vw, 30px);
  text-align: center;
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-md);
  line-height: 1.55;
  color: var(--apt-ink-soft);
}

.apt-guest-track__field + .apt-guest-track__field { margin-top: clamp(16px, 2vw, 22px); }

.apt-guest-track__label {
  display: block;
  margin-bottom: 8px;
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-xs);
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--apt-ink-soft);
  text-align: left;
}
.apt-guest-track__label.required::after {
  content: ' *';
  color: var(--apt-terracotta);
}

.apt-guest-track__input,
.apt-guest-track .form-control.apt-guest-track__input {
  width: 100%;
  box-sizing: border-box;
  min-height: 2.75rem;
  padding: 12px 14px;
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-base);
  color: var(--apt-ink);
  /* Igual que el area de cliente: el campo va en --apt-cream, un punto mas
     oscuro que el panel (--apt-cream-soft) que lo envuelve. */
  background: var(--apt-cream);
  border: 1px solid var(--apt-line);
  border-radius: 0;
  box-shadow: none;
  transition: border-color var(--apt-trans);
}
.apt-guest-track__input:focus {
  border-color: var(--apt-ink);
  outline: none;
  box-shadow: none;
}

.apt-guest-track__hint {
  margin: 8px 0 0;
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-xs);
  color: var(--apt-muted);
}

.apt-guest-track__actions { margin-top: clamp(24px, 3vw, 32px); }

:is(#guest-login, #guest-tracking) .apt-account__foot--inline {
  justify-content: center;
  border-top: 0;
}

/* ═══════════════════════════════════════════════════════════════
   FORMULARIOS DE AUTENTICACIÓN AISLADOS (.apt-auth)
   Login y afines. El markup lo genera form-fields.tpl (compartido con
   direcciones y registro), que trae la rejilla Bootstrap de classic:
   etiqueta en col-md-3 alineada a la derecha y campo en col-md-6.
   Aquí se apila en una columna centrada, sin tocar esa plantilla.
   ═══════════════════════════════════════════════════════════════ */

.apt-auth {
  width: 100%;
  max-width: 460px;
  margin: 0 auto;
}

.apt-auth .form-group.row,
.apt-auth .form-group {
  display: block;
  margin: 0 0 clamp(16px, 2vw, 22px);
}

.apt-auth .form-control-label,
.apt-auth label.form-control-label {
  display: block;
  width: 100%;
  max-width: none;
  flex: none;
  margin: 0 0 8px;
  padding: 0;
  text-align: left;
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-xs);
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--apt-ink-soft);
}

.apt-auth .js-input-column,
.apt-auth [class*='col-md-'],
.apt-auth [class*='col-xs-'] {
  display: block;
  width: 100%;
  max-width: none;
  flex: none;
  padding: 0;
}

.apt-auth .form-control,
.apt-auth input.form-control {
  width: 100%;
  box-sizing: border-box;
  min-height: 2.75rem;
  padding: 12px 14px;
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-base);
  color: var(--apt-ink);
  /* Igual que el area de cliente: el campo va en --apt-cream, un punto mas
     oscuro que el panel (--apt-cream-soft) que lo envuelve. */
  background: var(--apt-cream);
  border: 1px solid var(--apt-line);
  border-radius: 0;
  box-shadow: none;
  transition: border-color var(--apt-trans);
}
.apt-auth .form-control:focus { border-color: var(--apt-ink); outline: none; box-shadow: none; }

/* Botón de mostrar contraseña: pegado al campo, sin radius */
.apt-auth .input-group { display: flex; width: 100%; }
.apt-auth .input-group .form-control { flex: 1 1 auto; }
.apt-auth .input-group-btn,
.apt-auth .input-group-append { display: flex; flex: 0 0 auto; }
/* classic pinta este boton en gris solido con especificidad alta; hay que ganarle */
#authentication .apt-auth .input-group .input-group-btn .btn,
#authentication .apt-auth .input-group-btn > .btn,
.apt-auth .input-group .input-group-btn .btn,
.apt-auth .input-group button.btn {
  border: 1px solid var(--apt-line);
  border-left: 0;
  border-radius: 0;
  background: var(--apt-cream-deep);
  color: var(--apt-ink-soft);
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-xs);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  padding: 0 14px;
  box-shadow: none;
}
#authentication .apt-auth .input-group .input-group-btn .btn:hover,
.apt-auth .input-group button.btn:hover {
  background: var(--apt-ink);
  color: #fff;
  border-color: var(--apt-ink);
}

.apt-auth .forgot-password {
  margin: 0 0 clamp(20px, 2.5vw, 26px);
  text-align: right;
  font-size: var(--apt-fs-xs);
}

.apt-auth .form-footer,
.apt-auth footer.form-footer { margin: 0; padding: 0; text-align: center; }

.apt-auth #submit-login,
.apt-auth .form-footer .btn-primary {
  display: block;
  width: 100%;
  min-height: 48px;
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-xs);
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: #fff;
  background: var(--apt-ink);
  border: 1px solid var(--apt-ink);
  border-radius: 0;
  cursor: pointer;
  transition: background var(--apt-trans), border-color var(--apt-trans);
}
.apt-auth #submit-login:hover,
.apt-auth .form-footer .btn-primary:hover {
  background: var(--apt-terracotta);
  border-color: var(--apt-terracotta);
}

.apt-auth__alt {
  margin-top: clamp(22px, 3vw, 30px);
  padding-top: clamp(18px, 2.5vw, 24px);
  border-top: 1px solid var(--apt-line);
  text-align: center;
  font-size: var(--apt-fs-sm);
}

/* Mismo encaje vertical que el seguimiento de invitado */
#authentication #main.apt-account-page {
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-height: calc(100vh - var(--apt-header-h) - 190px);
  padding: clamp(32px, 6vh, 72px) 0 clamp(40px, 7vh, 88px);
}
#authentication .apt-account__head {
  text-align: center;
  border-bottom: 0;
  margin-bottom: clamp(18px, 2.5vw, 26px);
  padding-bottom: 0;
}
#authentication .apt-account__foot--inline { justify-content: center; border-top: 0; }

/* ── .apt-auth: piezas compartidas por registro y recuperar contraseña ── */

.apt-auth__intro {
  margin: 0 0 clamp(22px, 3vw, 30px);
  text-align: center;
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-md);
  line-height: 1.55;
  color: var(--apt-ink-soft);
}

.apt-auth__field + .apt-auth__field { margin-top: clamp(16px, 2vw, 22px); }

.apt-auth__label {
  display: block;
  margin-bottom: 8px;
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-xs);
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--apt-ink-soft);
  text-align: left;
}
.apt-auth__label.required::after { content: ' *'; color: var(--apt-terracotta); }

.apt-auth__actions { margin-top: clamp(24px, 3vw, 32px); }

.apt-auth__errors {
  list-style: none;
  margin: 0 0 clamp(18px, 2.5vw, 24px);
  padding: 14px 16px;
  border: 1px solid var(--apt-terracotta);
  background: var(--apt-cream-soft);
  font-size: var(--apt-fs-sm);
  color: var(--apt-ink);
}
.apt-auth__errors p { margin: 0; }

/* El alta de cuenta es un formulario largo: columna algo mas ancha */
.apt-auth--wide { max-width: 560px; }

/* Casillas (condiciones, newsletter, RGPD): en linea, no apiladas */
.apt-auth .form-group:has(.custom-checkbox) { display: block; }
.apt-auth .custom-checkbox { display: flex; align-items: flex-start; gap: 10px; }
.apt-auth .custom-checkbox label,
.apt-auth .custom-checkbox span + label {
  margin: 0;
  text-transform: none;
  letter-spacing: 0;
  font-size: var(--apt-fs-sm);
  color: var(--apt-ink-soft);
  line-height: 1.5;
}
.apt-auth .form-control-comment,
.apt-auth .form-control-comment small {
  display: block;
  margin-top: 8px;
  font-size: var(--apt-fs-xs);
  color: var(--apt-muted);
}

/* Selects del formulario (tratamiento, fecha de nacimiento) al mismo tono */
.apt-auth select.form-control,
.apt-auth .form-control-select {
  background-color: var(--apt-cream-soft);
  border: 1px solid var(--apt-line);
  border-radius: 0;
  min-height: 2.75rem;
  padding: 12px 14px;
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-base);
  color: var(--apt-ink);
}

/* Mismo encaje vertical que login y seguimiento */
:is(#registration, #password) #main.apt-account-page {
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-height: calc(100vh - var(--apt-header-h) - 190px);
  padding: clamp(32px, 6vh, 72px) 0 clamp(40px, 7vh, 88px);
}
:is(#registration, #password) .apt-account__head {
  text-align: center;
  border-bottom: 0;
  margin-bottom: clamp(18px, 2.5vw, 26px);
  padding-bottom: 0;
}
:is(#registration, #password) .apt-account__foot--inline { justify-content: center; border-top: 0; }

/* Registro: al heredar de customer/page.tpl coge la rejilla de dos columnas del
   área de cliente (.apt-account-form__fields). En una columna de 560px eso deja
   campos de 261px; aquí se fuerza a columna única, como login. */
.apt-auth .apt-account-form__fields,
.apt-auth .form-fields,
.apt-auth .js-customer-form > section,
.apt-auth .js-customer-form {
  display: block !important;
  grid-template-columns: none !important;
  gap: 0 !important;
}
.apt-auth .apt-account-form__fields > .form-group,
.apt-auth .form-group.apt-field {
  width: 100% !important;
  max-width: none !important;
  margin: 0 0 clamp(16px, 2vw, 22px) !important;
}
/* Radios de tratamiento en línea */
.apt-auth .apt-field--id_gender .js-input-column { display: flex; gap: 20px; align-items: center; }
.apt-auth .apt-field--id_gender label.radio-inline { margin: 0; }

/* Aviso de éxito (recuperar contraseña, paso 2) */
.apt-auth__success {
  list-style: none;
  margin: 0;
  padding: clamp(18px, 2.5vw, 24px);
  border: 1px solid var(--apt-line);
  background: var(--apt-cream-soft);
  text-align: center;
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-md);
  line-height: 1.55;
  color: var(--apt-ink-soft);
}
.apt-auth__success p { margin: 0; }
.apt-auth__success .item + .item { margin-top: 10px; }

/* password-new comparte el encaje vertical de login */
#password #main.apt-account-page,
#password-new #main.apt-account-page {
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-height: calc(100vh - var(--apt-header-h) - 190px);
  padding: clamp(32px, 6vh, 72px) 0 clamp(40px, 7vh, 88px);
}

/* ── Las páginas de autenticación adoptan el panel del área de cliente ──
   Mismo componente que .apt-account-panel (y que las cajas de contacto):
   fondo --apt-cream-soft, borde --apt-line y padding generoso. Así login,
   registro, recuperar/restablecer contraseña y seguimiento de invitado
   comparten estética con "Sus datos personales" y con contacto. */
.apt-auth,
.apt-guest-track {
  background: var(--apt-cream-soft);
  border: 1px solid var(--apt-line);
  padding: clamp(24px, 3vw, 36px);
  box-sizing: border-box;
}

/* El aviso de éxito ya vive dentro del panel: sin doble caja */
.apt-auth .apt-auth__success {
  border: 0;
  background: transparent;
  padding: 0;
}

/* El botón MOSTRAR de classic sigue gris en el área de cliente; se unifica
   con el tratamiento que ya tienen las páginas de autenticación. */
.apt-account-page .input-group .input-group-btn .btn,
.apt-account-page .input-group-btn > .btn,
#contact .input-group .input-group-btn .btn {
  border: 1px solid var(--apt-line);
  border-left: 0;
  border-radius: 0;
  background: var(--apt-cream-deep);
  color: var(--apt-ink-soft);
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-xs);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  box-shadow: none;
}
.apt-account-page .input-group .input-group-btn .btn:hover,
#contact .input-group .input-group-btn .btn:hover {
  background: var(--apt-ink);
  color: #fff;
  border-color: var(--apt-ink);
}

/* ═══════════════════════════════════════════════════════════════
   PÁGINAS DE ERROR (#pagenotfound — 404 / 410)
   Mismo encaje y panel que login y el área de cliente.
   ═══════════════════════════════════════════════════════════════ */

#pagenotfound #main,
#pagenotfound #content-wrapper {
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-height: calc(100vh - var(--apt-header-h) - 190px);
  padding: clamp(32px, 6vh, 72px) var(--apt-gut) clamp(40px, 7vh, 88px);
  box-sizing: border-box;
}

.apt-error__title {
  margin: 0 0 clamp(20px, 3vw, 28px);
  text-align: center;
  font-family: var(--apt-display);
  font-size: var(--apt-fs-d3);
  font-weight: 400;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--apt-ink);
  line-height: 1.15;
}

.apt-error {
  width: 100%;
  max-width: 520px;
  margin: 0 auto;
  padding: clamp(24px, 3vw, 36px);
  box-sizing: border-box;
  background: var(--apt-cream-soft);
  border: 1px solid var(--apt-line);
  text-align: center;
}

.apt-error__lead {
  margin: 0 0 10px;
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-lg);
  color: var(--apt-ink);
}
.apt-error__hint {
  margin: 0;
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-md);
  line-height: 1.55;
  color: var(--apt-ink-soft);
}

.apt-error__search { margin-top: clamp(20px, 3vw, 28px); }
.apt-error__search .search-widget,
.apt-error__search form { width: 100%; }
/* classic pinta el buscador en gris con radius 5px; se le gana en especificidad.
   El padding izquierdo deja hueco para la lupa, que va superpuesta. */
/* Vale tanto para la pagina de error como para los listados vacios (categoria,
   marca, busqueda), que comparten errors/not-found.tpl. */
/* Compite con `#search_widget form input` de classic (fondo #f1f1f1, radius 5px),
   que lleva id: hay que igualar o superar esa especificidad. */
.apt-error__search #search_widget form input,
.apt-error__search form input[type='text'],
.apt-error__search input.ui-autocomplete-input {
  width: 100%;
  box-sizing: border-box;
  min-height: 2.75rem;
  padding: 12px 14px 12px 42px;
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-base);
  color: var(--apt-ink);
  background: var(--apt-cream);
  border: 1px solid var(--apt-line);
  border-radius: 0;
  box-shadow: none;
}
.apt-error__search #search_widget form input:focus,
.apt-error__search form input[type='text']:focus,
.apt-error__search input.ui-autocomplete-input:focus { border-color: var(--apt-ink); outline: none; box-shadow: none; }
.apt-error__search .material-icons { color: var(--apt-muted); }
/* En listados vacios el panel no debe heredar el ancho ni el blanco de classic */
#js-product-list .apt-error,
.apt-category__empty .apt-error {
  max-width: 520px;
  margin: 0 auto;
  background: var(--apt-cream-soft);
  border: 1px solid var(--apt-line);
  padding: clamp(24px, 3vw, 36px);
  box-sizing: border-box;
}

.apt-error__actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 16px;
  margin-top: clamp(24px, 3vw, 32px);
  padding-top: clamp(20px, 2.5vw, 26px);
  border-top: 1px solid var(--apt-line);
}
.apt-error__link {
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-xs);
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--apt-muted);
}
.apt-error__link:hover { color: var(--apt-terracotta) !important; }

/* classic mete el contenido en una card blanca: se anula */
#pagenotfound .page-content.card,
#pagenotfound .page-content.card-block,
#pagenotfound #content.page-content {
  background: transparent;
  border: 0;
  box-shadow: none;
  border-radius: 0;
}
#pagenotfound #content.apt-error {
  background: var(--apt-cream-soft);
  border: 1px solid var(--apt-line);
}

/* ── Mapa del sitio: el título usa la escala del tema ── */
#sitemap .sitemap-title,
#sitemap h1 {
  display: block;
  margin: 0 0 clamp(24px, 3vw, 36px);
  text-align: center;
  font-family: var(--apt-display);
  font-size: var(--apt-fs-d3);
  font-weight: 400;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--apt-ink);
}
#sitemap #main { padding: clamp(24px, 3vw, 36px) var(--apt-gut) clamp(48px, 6vw, 80px); }
#sitemap .sitemap .col-md-3 { padding-bottom: clamp(24px, 3vw, 32px); }

/* classic fija `#pagenotfound .page-not-found { max-width:570px; background:#fff }`
   y deja la botonera sin ancho; hay que ganarle en especificidad. */
#pagenotfound #content.page-not-found.apt-error {
  max-width: 520px;
  padding: clamp(24px, 3vw, 36px);
  margin: 0 auto;
  overflow: visible;
  font-size: inherit;
  color: var(--apt-ink-soft);
  background: var(--apt-cream-soft);
}
#pagenotfound .apt-error__actions {
  width: 100%;
  box-sizing: border-box;
}

/* ═══════════════════════════════════════════════════════════════
   LAYOUT AUTÓNOMO DE ERROR (#layout-error)
   Tienda en mantenimiento, país restringido y acceso prohibido. No pasa por
   head.tpl ni por el header/footer del tema, así que se compone aquí entero.
   ═══════════════════════════════════════════════════════════════ */

body:has(#layout-error) { background: var(--apt-cream); }

.apt-error-page {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-height: 100vh;
  padding: clamp(32px, 8vh, 80px) var(--apt-gut);
  box-sizing: border-box;
  background: var(--apt-cream);
  text-align: center;
}

.apt-error-page .page-header { margin-bottom: clamp(24px, 4vw, 40px); }
.apt-error-page .logo img { max-width: 220px; height: auto; }

.apt-error-page h1 {
  margin: clamp(18px, 3vw, 26px) 0 0;
  font-family: var(--apt-display);
  font-size: var(--apt-fs-d3);
  font-weight: 400;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--apt-ink);
}

.apt-error-page .page-content {
  width: 100%;
  max-width: 520px;
  margin: 0 auto;
  padding: clamp(24px, 3vw, 36px);
  box-sizing: border-box;
  background: var(--apt-cream-soft);
  border: 1px solid var(--apt-line);
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-md);
  line-height: 1.6;
  color: var(--apt-ink-soft);
}
.apt-error-page .page-content p:first-child { margin-top: 0; }
.apt-error-page .page-content p:last-child { margin-bottom: 0; }

/* classic pinta de blanco los contenedores de esta pantalla */
.apt-error-page .page-header,
.apt-error-page header,
.apt-error-page > div,
.apt-error-page .card,
.apt-error-page .card-block {
  background: transparent;
  border: 0;
  box-shadow: none;
  border-radius: 0;
}

/* Los contenedores de hooks y acciones del layout CMS pintan su filete superior
   aunque esten vacios (paginas sin modulos enganchados ni acciones): dos rayas
   sueltas al pie. Se ocultan cuando no tienen ningun hijo. */
.apt-cms__hooks:not(:has(*)),
.apt-cms__actions:not(:has(*)) {
  display: none;
}

/* Listados sin columna izquierda (marca): la rejilla reserva el hueco del sidebar
   aunque no exista y el contenido se queda en la columna estrecha. */
.apt-category-layout:not(:has(.apt-category-sidebar)) {
  grid-template-columns: minmax(0, 1fr);
}

/* ═══════════════════════════════════════════════════════════════
   LISTADO DE MARCAS (#manufacturer sin marca concreta -> /marcas)
   ═══════════════════════════════════════════════════════════════ */

.apt-brands {
  width: 100%;
  padding: clamp(28px, 4vw, 48px) var(--apt-gut) clamp(56px, 7vw, 96px);
  box-sizing: border-box;
}

.apt-brands__head {
  text-align: center;
  margin-bottom: clamp(28px, 4vw, 48px);
}
.apt-brands__eyebrow {
  margin: 0 0 10px;
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-2xs);
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--apt-muted);
}
.apt-brands__title {
  margin: 0;
  font-family: var(--apt-display);
  font-size: var(--apt-fs-d2);
  font-weight: 300;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--apt-ink);
}
.apt-brands__rule {
  display: block;
  width: 56px;
  height: 1px;
  margin: clamp(14px, 2vw, 20px) auto 0;
  background: var(--apt-gold);
}

/* classic fuerza `#manufacturer #main ul { display:flex }` con dos ids: hay que
   igualarlo o la rejilla se convierte en una fila flexible de anchos dispares. */
#manufacturer #main .apt-brands__grid,
.apt-brands__grid {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
  gap: clamp(16px, 2vw, 24px);
}

.apt-brand__link {
  display: flex;
  flex-direction: column;
  align-items: center;
  height: 100%;
  padding: clamp(18px, 2.2vw, 26px);
  box-sizing: border-box;
  background: var(--apt-cream-soft);
  border: 1px solid var(--apt-line);
  text-decoration: none;
  transition: border-color var(--apt-trans), background var(--apt-trans);
}
.apt-brand__link:hover {
  border-color: var(--apt-ink);
  background: var(--apt-cream);
}

.apt-brand__media {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 92px;
  margin-bottom: clamp(14px, 1.8vw, 18px);
}
.apt-brand__logo {
  max-width: 100%;
  max-height: 100%;
  width: auto;
  height: auto;
  object-fit: contain;
  mix-blend-mode: multiply;   /* los logos vienen con fondo blanco */
}
.apt-brand__initial {
  font-family: var(--apt-display);
  font-size: var(--apt-fs-d3);
  color: var(--apt-line);
  letter-spacing: 0.1em;
}

.apt-brand__name {
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-xs);
  letter-spacing: 0.1em;
  text-transform: uppercase;
  text-align: center;
  color: var(--apt-ink);
  line-height: 1.4;
}
.apt-brand__count {
  margin-top: 6px;
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-3xs);
  letter-spacing: 0.06em;
  color: var(--apt-muted);
}

/* Los listados sin categoria propia (mas vendidos, rebajados, novedades) no tienen
   descripcion, asi que su hero se quedaba como una franja clara medio vacia frente
   a los 226px con texto de novias/invitadas/outlet. Se ajusta el aire al contenido
   real en vez de dejar el hueco de un parrafo que no existe. */
.apt-category-hero--no-cover:not(:has(.apt-category-hero__desc)) {
  padding-top: calc(var(--apt-cat-toolbar-gap) * 0.75);
  padding-bottom: calc(var(--apt-cat-toolbar-gap) * 0.75);
}
.apt-category-hero--no-cover:not(:has(.apt-category-hero__desc)) .apt-category-hero__count {
  margin-bottom: 0;
}

/* classic fija `section.checkout-step.-reachable.-current .step-number` a 33x33 con
   margin-right .65rem y 1rem de fuente (1 id + 4 clases), asi que el numero del paso
   ACTIVO se salia del indicador de 28px y quedaba pegado al titulo, mientras el check
   del paso ya cubierto —que si respeta los 28px— se veia bien. Se igualan los dos. */
body#checkout section.checkout-step.-reachable.-current .apt-checkout-step__indicator .step-number,
body#checkout section.checkout-step.-current .apt-checkout-step__indicator .step-number,
body#checkout section.checkout-step.-current.-reachable.-complete .apt-checkout-step__indicator .step-number {
  width: 28px;
  height: 28px;
  margin: 0;
  font-size: var(--apt-fs-xs);
  line-height: 1;
  box-sizing: border-box;
}

/* ==========================================================================
   Política de contraseña — checklist en vivo
   --------------------------------------------------------------------------
   Markup: templates/_partials/password-policy-template.tpl
   Lógica: apparentia.js → aptPasswordPolicy()

   Dos bloques con jerarquía distinta a propósito: arriba los REQUISITOS que
   PrestaShop valida de verdad (longitud y puntuación zxcvbn) y abajo los
   CONSEJOS, que suben la puntuación pero no se exigen.
   ========================================================================== */

.apt-pwd {
  margin-top: 10px;
}

.apt-pwd[hidden] {
  display: none;
}

.apt-pwd__meter {
  height: 3px;
  background: var(--apt-cream-deep);
}

.apt-pwd__meter-fill {
  display: block;
  width: 0;
  height: 100%;
  background: var(--apt-terracotta);
  transition: width 0.25s ease, background-color 0.25s ease;
}

/* Escala de color dentro de la paleta: terracotta (flojo) → gold (medio) →
   ink (suficiente). No hay verde en el sistema y no se añade uno para esto. */
.apt-pwd[data-score="2"] .apt-pwd__meter-fill {
  background: var(--apt-gold);
}

.apt-pwd[data-score="3"] .apt-pwd__meter-fill,
.apt-pwd[data-score="4"] .apt-pwd__meter-fill {
  background: var(--apt-ink);
}

.apt-pwd__level {
  margin: 8px 0 0;
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-2xs);
  font-weight: 400;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--apt-muted);
}

.apt-pwd__level-value {
  font-weight: 500;
  color: var(--apt-ink);
}

.apt-pwd__list {
  margin: 10px 0 0;
  padding: 0;
  list-style: none;
}

.apt-pwd__item {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  margin-top: 6px;
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-xs);
  line-height: 1.45;
  color: var(--apt-muted);
}

/* Casilla cuadrada: el sistema no admite border-radius tampoco aquí. */
.apt-pwd__mark {
  position: relative;
  flex: 0 0 auto;
  width: 14px;
  height: 14px;
  margin-top: 2px;
  border: 1px solid var(--apt-line);
  background: transparent;
  transition: background-color var(--apt-trans), border-color var(--apt-trans);
}

.apt-pwd__item.is-ok {
  color: var(--apt-ink);
}

.apt-pwd__item.is-ok .apt-pwd__mark {
  background: var(--apt-ink);
  border-color: var(--apt-ink);
}

.apt-pwd__item.is-ok .apt-pwd__mark::after {
  content: '';
  position: absolute;
  left: 4px;
  top: 1px;
  width: 4px;
  height: 8px;
  border: solid #fff;
  border-width: 0 1.5px 1.5px 0;
  transform: rotate(45deg);
}

/* Pista concreta de zxcvbn ya traducida («Esta es una contraseña muy común»,
   «Añade otra palabra o dos»…): es lo que de verdad desatasca al usuario. */
.apt-pwd__hint {
  margin: 10px 0 0;
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-xs);
  line-height: 1.5;
  color: var(--apt-terracotta-d);
}

.apt-pwd__hint[hidden] {
  display: none;
}

.apt-pwd__tips-title {
  margin: 14px 0 0;
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-2xs);
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--apt-muted);
}

.apt-pwd__list--tips {
  margin-top: 4px;
}

.apt-pwd__list--tips .apt-pwd__item {
  font-size: var(--apt-fs-2xs);
}

.apt-pwd__list--tips .apt-pwd__mark {
  width: 12px;
  height: 12px;
  margin-top: 3px;
}

.apt-pwd__list--tips .apt-pwd__item.is-ok .apt-pwd__mark::after {
  left: 3px;
  top: 0;
  width: 4px;
  height: 7px;
}

/* Borde del propio input. Se marca sólo cuando ya hay algo escrito, para no
   recibir al usuario con un campo en rojo. */
input.apt-pwd-input--bad {
  border-color: var(--apt-terracotta);
}

input.apt-pwd-input--ok {
  border-color: var(--apt-ink);
}

/* El campo de registro va dentro de un .input-group con el botón «Mostrar»:
   sin esto sólo se teñiría el input y el borde del grupo quedaría partido. */
.input-group:has(input.apt-pwd-input--bad) .btn {
  border-color: var(--apt-terracotta);
}

.input-group:has(input.apt-pwd-input--ok) .btn {
  border-color: var(--apt-ink);
}

/* Botón bloqueado por la política de contraseña. `.apt-btn[disabled]` ya cubre
   los botones del tema; esto es la red para cualquier submit que no lo sea. */
.apt-pwd-policy ~ * .apt-btn--blocked,
button.apt-btn--blocked {
  opacity: 0.45;
  cursor: not-allowed;
}

/* ── Comprar desde el listado ───────────────────────────────────────────────
   Selector de talla y boton dentro de la tarjeta, como en la web anterior.
   Lo pinta apt_listado_compra; el comportamiento va en apparentia.js.

   La tarjeta es deliberadamente editorial, asi que el bloque se mantiene sobrio:
   mismos tokens, cero radius y ancho completo para que las tarjetas de una fila
   queden a la misma altura aunque unas lleven un desplegable y otras dos. */
.apt-listado-compra {
  width: 100%;
  margin-top: 12px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.apt-listado-compra__opciones {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.apt-listado-compra__select {
  flex: 1 1 0;
  min-width: 0;
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-xs);
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--apt-ink);
  background: transparent;
  border: 1px solid var(--apt-line);
  border-radius: 0;
  padding: 9px 10px;
  height: auto;
  appearance: none;
  background-image: linear-gradient(45deg, transparent 50%, var(--apt-ink) 50%),
                    linear-gradient(135deg, var(--apt-ink) 50%, transparent 50%);
  background-position: calc(100% - 14px) 50%, calc(100% - 9px) 50%;
  background-size: 5px 5px, 5px 5px;
  background-repeat: no-repeat;
  padding-right: 26px;
}

.apt-listado-compra__select:focus {
  outline: none;
  border-color: var(--apt-ink);
}

/* Las tallas agotadas se atenuan tambien aqui, y siguen siendo elegibles: es al
   elegirlas cuando el boton pasa a «Agotado» y ofrece el aviso de reposicion. */
.apt-listado-compra__select option.apt-variant-agotada { color: var(--apt-muted); }

.apt-listado-compra__btn {
  width: 100%;
  justify-content: center;
}

/* El boton es tambien el indicador de stock del listado, que es justo lo que se
   echaba en falta: en hueco y en gris, se distingue de un vistazo del de comprar
   sin tener que leerlo. */
.apt-listado-compra__btn--agotado,
.apt-listado-compra__btn--agotado:hover {
  background: transparent;
  color: var(--apt-muted);
  border-color: var(--apt-line);
}

.apt-listado-compra__aviso {
  margin: 0;
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-3xs);
  letter-spacing: 0.06em;
  color: var(--apt-terracotta);
}

/* En movil la tarjeta es mas estrecha: los desplegables se apilan para no
   quedarse en dos columnas ilegibles. */
@media (max-width: 575px) {
  .apt-listado-compra__opciones { flex-direction: column; }
  .apt-listado-compra__select { flex: 1 1 auto; }
}

/* ── Tarjetas de listado a la misma altura ──────────────────────────────────
   Tres cosas descuadraban la fila: el titulo, que ocupa una o dos lineas; el
   precio tachado, que solo existe si hay descuento; y el bloque de compra, que
   arranca a distinta altura en cada tarjeta.

   Se reservan las alturas variables en vez de recortar el contenido, y la fila
   se estira para que el boton de todas las tarjetas caiga a la misma altura. */
/* Se cuelga de la rejilla, no del id de la pagina: `apt-category-grid` la pintan
   igual categoria, buscador, novedades, ofertas, mas vendidos y marca, y
   `apt-product-grid` los complementos de la ficha. Enumerar ids condenaba a
   olvidarse de uno. */
.apt-category-grid,
.apt-product-grid {
  align-items: stretch;
}

.apt-category-grid > .product-miniature.apt-col-item,
.apt-product-grid > .product-miniature.apt-col-item {
  height: 100%;
}

/* Dos lineas siempre, aunque el nombre ocupe una. Es el mismo alto que ya
   impone el -webkit-line-clamp por arriba. */
.apt-category-grid .product-miniature.apt-col-item .product-title,
.apt-product-grid .product-miniature.apt-col-item .product-title {
  min-height: calc(2 * 1.45em);
}

/* El sitio del precio tachado se reserva con alto minimo, sin pintar nada.
   Un producto sin rebaja tiene su precio y punto: no le falta nada, asi que no
   debe aparecer ninguna marca donde iria el tachado.

   El primer intento fue un <span> vacio con la clase `regular-price`, y salia un
   guion: heredaba el `text-decoration: line-through` y tachaba el espacio.

   La cuenta son las dos lineas del bloque —tachado a `--apt-fs-sm` y precio a
   `--apt-fs-base`, ambos con line-height 1.3—, que es justo lo que mide la
   tarjeta de un producto rebajado. */
.apt-category-grid .product-price-and-shipping,
.apt-product-grid .product-price-and-shipping {
  min-height: calc(1.3 * (var(--apt-fs-sm) + var(--apt-fs-base)));
}

/* El bloque de compra, al fondo: asi los botones de una fila quedan alineados
   aunque algo por encima cambie de alto. */
.apt-category-grid .product-miniature.apt-col-item .apt-listado-compra,
.apt-product-grid .product-miniature.apt-col-item .apt-listado-compra {
  margin-top: auto;
}

/* ── Distintivos de la tarjeta, en texto y encima de la foto ────────────────
   Sustituyen a las pegatinas superpuestas. Referencia: la web anterior ponia
   un «SALE» centrado y en color sobre la imagen, sin recuadro
   (views/resources/css/styles.css:712). Con casi todo el catalogo rebajado,
   dos bloques terracota por tarjeta tapaban la prenda.

   Gana el selector por ir mas tarde en el fichero y por especificidad; las
   reglas viejas de .product-flags siguen valiendo para la ficha de producto,
   que tiene su propia galeria. */
.apt-card-flags {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 10px;
  position: static;
  margin: 0 0 6px;
  padding: 0;
  list-style: none;
  /* Reserva su linea aunque el producto no tenga ningun distintivo, para que
     las tarjetas de una fila midan lo mismo. Vacia no dibuja nada. */
  min-height: calc(1.3 * var(--apt-fs-3xs));
}

.apt-card-flags .product-flag {
  background: none;
  border: 0;
  padding: 0;
  margin: 0;
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-3xs);
  font-weight: 500;
  line-height: 1.3;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--apt-terracotta);
  width: auto;
  box-shadow: none;
}

.apt-card-flags .product-flag.out_of_stock { color: var(--apt-muted); }
.apt-card-flags .product-flag.new { color: var(--apt-gold); }
.apt-card-flags .product-flag.online-only,
.apt-card-flags .product-flag.pack { color: var(--apt-ink-soft); }

/* ── Menú de secciones plegable en móvil ────────────────────────────────────
   En escritorio es la columna izquierda de siempre: el boton no existe y el
   menu se ve entero. En movil no hay columna, el menu cae encima de la rejilla
   y sus once filas dejaban los productos fuera del primer pantallazo. */
.apt-catnav-toggle { display: none; }

@media (max-width: 991px) {
  .apt-catnav-toggle {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    width: 100%;
    padding: 12px 0;
    background: none;
    border: 0;
    border-bottom: 1px solid var(--apt-line);
    border-radius: 0;
    font-family: var(--apt-sans);
    font-size: var(--apt-fs-xs);
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--apt-ink);
    cursor: pointer;
  }

  /* Chevron en CSS, sin icono: gira al abrir. */
  .apt-catnav-toggle__chev {
    width: 8px;
    height: 8px;
    border-right: 1px solid currentColor;
    border-bottom: 1px solid currentColor;
    transform: rotate(45deg) translate(-2px, -2px);
    transition: transform var(--apt-trans);
  }

  .apt-catnav-toggle[aria-expanded="true"] .apt-catnav-toggle__chev {
    transform: rotate(-135deg) translate(-2px, -2px);
  }

  /* Cerrado por defecto: lo decide el CSS, no el JS, asi no parpadea. */
  .apt-catnav-panel { display: none; }
  .apt-catnav-panel.is-open { display: block; }
}

/* ── «Ver todos» ────────────────────────────────────────────────────────────
   Tres sitios: centrado justo encima de las fotos, centrado bajo la
   paginacion y como ultima entrada del arbol lateral. Los dos del listado son
   dos momentos distintos —antes de empezar y despues de recorrerlo— y el del
   arbol es el que tenia la web anterior. */
.apt-ver-todos {
  white-space: nowrap;
  /* El borde de `--outline` es `--apt-line`, demasiado tenue para un boton que
     tiene que verse desde el primer pantallazo. Ink, como el resto de acciones
     del listado. */
  border-color: var(--apt-ink);
}

.apt-ver-todos__num {
  color: var(--apt-muted);
}

.apt-ver-todos:hover .apt-ver-todos__num {
  color: inherit;
}

/* Arriba a la derecha y abajo a la derecha, como en la web anterior
   (`<p class="ver-todo pull-right">` sobre las fotos y `.ver-todo-bottom`
   junto al paginador). Arriba queda a plomo con «Ordenar» de la barra. */

/* Abajo comparte fila con los numeros. Tres columnas en vez de `margin-left:
   auto` para que los numeros sigan centrados en la pagina y no se desplacen al
   aparecer o desaparecer el boton. */
.apt-pagination__row {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 12px;
  width: 100%;
}

/* Con una sola pagina y pocos productos no hay ni numeros ni boton. La fila se
   monta igual —condicionarla en la plantilla rompe la compilacion Smarty, por
   los `{block}` que lleva dentro— y sin esto se comeria el `gap` de la
   paginacion. El HTML sale minificado, asi que el div queda literalmente vacio
   y `:empty` aplica. */
.apt-pagination__row:empty {
  display: none;
}
.apt-pagination__row .apt-pagination__list {
  grid-column: 2;
}
.apt-pagination__ver-todos {
  grid-column: 3;
  display: flex;
  justify-content: flex-end;
  margin: 0;
}

/* Apilado y centrado cuando las dos cosas no caben de lado. */
@media (max-width: 767px) {
  .apt-pagination__row {
    grid-template-columns: 1fr;
    gap: 18px;
  }
  .apt-pagination__row .apt-pagination__list,
  .apt-pagination__ver-todos {
    grid-column: 1;
    justify-content: center;
  }
}

/* La fila de encima de las fotos. El hueco superior ya lo pone el margin de la
   toolbar, asi que aqui solo hace falta el de abajo para mantener el ritmo
   vertical de --apt-cat-toolbar-gap. En listados sin toolbar (busqueda) el
   margen propio evita que quede pegada a lo anterior. */
.apt-listing-actions--top {
  display: flex;
  justify-content: flex-end;
  margin: 0 0 var(--apt-cat-toolbar-gap, 22px);
}

/* Refuerzo: `.product-flag.on-sale` y `.discount` traen fondo terracota con la
   misma especificidad que la regla de arriba. Se anulan aquí de forma explícita
   para no depender del orden del fichero. */
.apt-card-flags .product-flag.on-sale,
.apt-card-flags .product-flag.discount,
.apt-card-flags .product-flag.sale,
.apt-card-flags .product-flag.new,
.apt-card-flags .product-flag.out_of_stock {
  background: none;
  border: 0;
  padding: 0;
  width: auto;
}

/* ── Menú de secciones plegado: que ocupe lo justo ──────────────────────────
   Plegado, el bloque entero es una fila; no tiene sentido que conserve el
   respiro vertical que necesitaba cuando iba desplegado (20-28px arriba y
   abajo). Con esto pasa de ~70px a ~47px, casi media pulgada menos de pantalla
   antes de la primera foto.

   El botón se queda en 39px de alto: por debajo de eso el objetivo táctil
   empieza a fallar, y ocupa todo el ancho, así que acertar es fácil.

   Van con !important porque la regla que fijan estos paddings también lo lleva. */
@media (max-width: 991px) {
  .apt-category-sidebar .apt-category-sidebar__panel {
    padding-top: 4px !important;
    padding-bottom: 4px !important;
  }

  .apt-catnav-toggle {
    padding: 11px 0;
    font-size: var(--apt-fs-2xs);
  }

  /* Desplegado sí necesita aire bajo el botón. */
  .apt-catnav-panel.is-open {
    padding: 6px 0 14px;
  }
}

/* «Ver todos» cerrando el árbol de categorías, como una entrada más. Se separa
   con una línea para que se lea como cierre de la lista y no como una hermana
   cualquiera. */
.apt-catnav__list--cierre {
  margin-top: 6px;
  padding-top: 6px;
  border-top: 1px solid var(--apt-line);
}

.apt-catnav__link--ver-todos {
  color: var(--apt-terracotta);
}

/* En la ficha van centrados sobre la foto y un escalón más grandes: encima de
   una galería a página completa, los 11px de la tarjeta se pierden. */
#product .apt-product-gallery .apt-card-flags {
  justify-content: center;
  margin-bottom: 12px;
}

#product .apt-product-gallery .apt-card-flags .product-flag {
  font-size: var(--apt-fs-sm);
}

/* En escritorio las miniaturas van a la derecha de la portada, así que centrar
   sobre el bloque entero dejaría el texto corrido hacia la derecha respecto a
   la foto. Se descuenta su columna y el hueco entre ambas. */
@media (min-width: 992px) {
  #product .apt-product-gallery .apt-card-flags {
    padding-right: calc(var(--apt-prod-thumb-w) + var(--apt-prod-gallery-gap));
  }
}

/* La lupa del header es un <button> y `.apt-icon-link` está pensada para <a>:
   sin este reset sale con el fondo gris y el borde `outset` que el navegador da
   a los botones, y desentona con los otros tres iconos. */
.apt-search-toggle {
  padding: 0;
  border: 0;
  background: none;
  color: inherit;
  font: inherit;
  cursor: pointer;
  appearance: none;
  -webkit-appearance: none;
}

/* =========================================================================
   BUSCADOR — cajón lateral con rejilla en vivo
   Entra desde la derecha y va enseñando productos según se escribe. El fondo es
   el mismo tinte oscuro translúcido que ya se usó para el panel sobre el hero:
   sobre la foto de portada deja ver la imagen detrás y sobre las páginas claras
   se lee como una capa, no como un bloque pegado.
   ========================================================================= */
.apt-search-drawer {
  position: fixed;
  inset: 0;
  z-index: 900;
  visibility: hidden;
  pointer-events: none;
}
.apt-search-drawer.is-open {
  visibility: visible;
  pointer-events: auto;
}

.apt-search-drawer__overlay {
  position: absolute;
  inset: 0;
  background: rgba(33, 28, 23, 0.45);
  opacity: 0;
  transition: opacity 0.36s ease;
}
.apt-search-drawer.is-open .apt-search-drawer__overlay { opacity: 1; }

.apt-search-drawer__panel {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  width: min(460px, 100vw);
  display: flex;
  flex-direction: column;
  padding: 0 clamp(20px, 3vw, 32px) clamp(20px, 3vw, 28px);
  background: rgba(33, 28, 23, 0.86);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  border-left: 1px solid rgba(255, 255, 255, 0.14);
  transform: translateX(100%);
  transition: transform 0.36s cubic-bezier(0.22, 0.61, 0.36, 1);
  overflow-y: auto;
  overscroll-behavior: contain;
}
.apt-search-drawer.is-open .apt-search-drawer__panel { transform: translateX(0); }

@media (prefers-reduced-motion: reduce) {
  .apt-search-drawer__panel,
  .apt-search-drawer__overlay { transition: none; }
}

/* Con el cajón abierto, el fondo no se mueve. */
body.apt-search-abierto { overflow: hidden; }

.apt-search-drawer__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: clamp(18px, 2.4vw, 24px) 0 14px;
}
.apt-search-drawer__title {
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-2xs);
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.72);
}
.apt-search-drawer__close {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  padding: 0;
  border: 0;
  background: none;
  color: var(--apt-white);
  cursor: pointer;
  appearance: none;
  -webkit-appearance: none;
  transition: color var(--apt-trans);
}
.apt-search-drawer__close:hover,
.apt-search-drawer__close:focus-visible { color: var(--apt-gold); }

/* El campo dentro del cajón: sobre oscuro, línea inferior clara. */
.apt-search-drawer .apt-search__form {
  display: flex;
  align-items: center;
  gap: 8px;
  width: 100%;
}
.apt-search-drawer .apt-search__input {
  flex: 1 1 auto;
  min-width: 0;
  height: 46px;
  padding: 0 4px;
  border: 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.4);
  border-radius: var(--apt-radius);
  background: transparent;
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-lg);
  color: var(--apt-white);
  transition: border-color var(--apt-trans);
}
.apt-search-drawer .apt-search__input::placeholder { color: rgba(255, 255, 255, 0.5); }
.apt-search-drawer .apt-search__input:focus {
  outline: none;
  border-bottom-color: var(--apt-white);
}
.apt-search-drawer .apt-search__submit {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 46px;
  padding: 0;
  border: 0;
  background: none;
  color: var(--apt-white);
  cursor: pointer;
  appearance: none;
  -webkit-appearance: none;
  transition: color var(--apt-trans);
}
.apt-search-drawer .apt-search__submit:hover,
.apt-search-drawer .apt-search__submit:focus-visible { color: var(--apt-gold); }

.apt-search-drawer__body {
  flex: 1 1 auto;
  padding-top: clamp(18px, 2.4vw, 26px);
}
.apt-search-drawer__body.is-cargando { opacity: 0.45; transition: opacity 0.2s ease; }

.apt-search-drawer__hint {
  margin: 0;
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-sm);
  line-height: 1.6;
  color: rgba(255, 255, 255, 0.6);
}

/* Rótulo de la tanda inicial («Novedades»), antes de que se escriba nada. */
.apt-search-drawer__rotulo {
  margin: 0 0 12px;
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-3xs);
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.55);
}

/* Rejilla de resultados: dos columnas, ratio 2:3 como el resto del catálogo. */
.apt-search-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(14px, 2vw, 20px);
}
.apt-search-card {
  display: flex;
  flex-direction: column;
  gap: 8px;
  text-decoration: none;
}
.apt-search-card__foto {
  display: block;
  aspect-ratio: 2 / 3;
  overflow: hidden;
  background: rgba(255, 255, 255, 0.06);
}
.apt-search-card__foto img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform var(--apt-trans);
}
.apt-search-card:hover .apt-search-card__foto img { transform: scale(1.03); }

.apt-search-card__nombre {
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-2xs);
  line-height: 1.45;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--apt-white);
  /* Dos líneas como mucho: con nombres de cuatro palabras las tarjetas de una
     misma fila se descuadraban. */
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.apt-search-card:hover .apt-search-card__nombre { color: var(--apt-gold); }

.apt-search-card__precios {
  font-family: var(--apt-sans);
  font-size: var(--apt-fs-2xs);
  color: rgba(255, 255, 255, 0.82);
}
.apt-search-card__antes {
  margin-right: 6px;
  text-decoration: line-through;
  color: rgba(255, 255, 255, 0.45);
}

.apt-search-drawer__foot {
  padding-top: clamp(16px, 2vw, 22px);
}
.apt-search-drawer__foot[hidden] { display: none; }

/* El botón de «ver todos» es el `--outline` del tema, que asume fondo claro. */
#header .apt-search-drawer__todos,
.apt-search-drawer__todos,
a.apt-search-drawer__todos:hover,
a.apt-search-drawer__todos:focus,
a.apt-search-drawer__todos:visited {
  display: block;
  width: 100%;
  border-color: rgba(255, 255, 255, 0.55);
  color: var(--apt-white) !important;
}
a.apt-search-drawer__todos:hover {
  background: var(--apt-white);
  border-color: var(--apt-white);
  color: var(--apt-ink) !important;
}

@media (max-width: 575px) {
  .apt-search-drawer__panel { width: 100vw; }
}

/* ── Búsqueda: listado sin columna lateral ────────────────────────────────────
   Reutiliza el layout de categoría, pero aquí no hay árbol de sección que
   enseñar: sin esto quedaría una columna vacía de 320px empujando la rejilla. */
#search .apt-category-sidebar { display: none; }
#search .apt-category-layout { grid-template-columns: minmax(0, 1fr); }
