/**
 * Aloha — tema hijo de Hummingbird (PrestaShop 9.2.x) · v2.2.1
 * Tokens + UX: ritmo 8px, touch 44px, CTA alto contraste, estados vacíos, reduced-motion
 * Selectores Classic se mantienen por compatibilidad si aún no migraste el padre.
 */

@import url("https://fonts.googleapis.com/css2?family=Fraunces:ital,opsz,wght@0,9..144,400;0,9..144,500;1,9..144,400&family=IBM+Plex+Mono:wght@400;500&family=Outfit:wght@300;400;500;600&display=swap");

:root {
  --aloha-foam: #f3f7f8;
  --aloha-salt: #e4eef1;
  --aloha-horizon: #7eb8c9;
  --aloha-sea: #1a6f8a;
  --aloha-lagoon: #0b3d4d;
  --aloha-abyss: #071820;
  --aloha-sand: #cdb89a;
  --aloha-dusk: #c56b5c;
  --aloha-ink: #0c1c22;
  --aloha-muted: #4a6573;

  --aloha-font-display: "Fraunces", "Times New Roman", serif;
  --aloha-font-body: "Outfit", system-ui, sans-serif;
  --aloha-font-mono: "IBM Plex Mono", ui-monospace, monospace;

  --aloha-radius-pebble: 1.5rem;
  --aloha-radius-pill: 999px;
  --aloha-ease-out: cubic-bezier(0.23, 1, 0.32, 1);
  --aloha-duration-ui: 220ms;
  --aloha-touch: 2.75rem;
  --aloha-gap-touch: 0.5rem;
  --aloha-section-y: clamp(2.5rem, 5vw, 3.5rem);
  --aloha-shadow-card: 0 4px 24px color-mix(in srgb, var(--aloha-abyss) 8%, transparent);
  --aloha-shadow-card-hover: 0 12px 40px color-mix(in srgb, var(--aloha-abyss) 14%, transparent);

  --primary: var(--aloha-lagoon);
  --secondary: var(--aloha-sea);
  --success: #2d8a5e;
  --danger: var(--aloha-dusk);
  --light: var(--aloha-foam);
  --dark: var(--aloha-abyss);

  /* Bootstrap 5 (Hummingbird) */
  --bs-primary: var(--aloha-lagoon);
  --bs-primary-rgb: 11, 61, 77;
  --bs-secondary: var(--aloha-sea);
  --bs-body-bg: var(--aloha-foam);
  --bs-body-color: var(--aloha-ink);
  --bs-link-color: var(--aloha-sea);
  --bs-link-hover-color: var(--aloha-lagoon);
  --bs-border-radius: 0.75rem;
  --bs-border-radius-pill: var(--aloha-radius-pill);
  --bs-tertiary-bg: color-mix(in srgb, var(--aloha-lagoon) 14%, var(--aloha-foam));
  --bs-tertiary-color: var(--aloha-ink);
  --bs-secondary-bg: var(--aloha-salt);
  --bs-secondary-color: var(--aloha-ink);
}

html.aloha-theme {
  scroll-behavior: smooth;
}

@media (prefers-reduced-motion: reduce) {
  html.aloha-theme {
    scroll-behavior: auto;
  }
}

body {
  font-family: var(--aloha-font-body);
  font-size: 1rem;
  line-height: 1.55;
  color: var(--aloha-ink);
  background-color: var(--aloha-foam);
  -webkit-font-smoothing: antialiased;
  touch-action: manipulation;
}

/* Skip link (marcador insertado por custom.js) */
.aloha-skip {
  position: absolute;
  left: 1rem;
  top: -4rem;
  z-index: 10000;
  padding: 0.65rem 1.1rem;
  border-radius: var(--aloha-radius-pill);
  background: var(--aloha-abyss);
  color: var(--aloha-foam);
  font-weight: 500;
  text-decoration: none;
  transition: top var(--aloha-duration-ui) var(--aloha-ease-out);
}

.aloha-skip:focus {
  top: 1rem;
  outline: 2px solid var(--aloha-horizon);
  outline-offset: 3px;
}

#wrapper {
  background: var(--aloha-foam);
}

#content-wrapper,
.page-content {
  padding-top: clamp(1.5rem, 4vw, var(--aloha-section-y));
  padding-bottom: var(--aloha-section-y);
}

.page-index .page-content--home,
.page-index .page-home-mockup .page-content {
  padding-top: 0;
}

.page-heading,
h1.h1 {
  margin-bottom: 1.25rem;
}

h1,
.h1,
h2,
.h2,
.page-heading,
.card-block h1 {
  font-family: var(--aloha-font-display);
  font-weight: 500;
  letter-spacing: 0.02em;
  color: var(--aloha-lagoon);
  line-height: 1.2;
}

h2.h2,
.featured-products h2,
.products-section-title {
  font-family: var(--aloha-font-display);
  font-size: clamp(1.35rem, 3vw, 1.75rem);
  margin-bottom: 1.5rem;
  padding-bottom: 0.5rem;
  border-bottom: 1px solid color-mix(in srgb, var(--aloha-lagoon) 12%, transparent);
}

h3,
.h3,
h4,
.h4,
h5,
.h5 {
  font-family: var(--aloha-font-body);
  font-weight: 500;
  color: var(--aloha-ink);
}

#footer h3,
#footer .h3,
#footer h4,
#footer .h4,
#footer h5,
#footer .h5 {
  color: var(--aloha-foam);
}

#content-wrapper a,
#wrapper .page-content a,
.card a,
.breadcrumb a {
  color: var(--aloha-sea);
  transition: color var(--aloha-duration-ui) var(--aloha-ease-out);
}

#content-wrapper a:hover,
#content-wrapper a:focus-visible,
#wrapper .page-content a:hover,
.card a:hover {
  color: var(--aloha-lagoon);
}

/* —— Cabecera (anula Classic: fondo blanco, grises, blockcart gris) —— */
#header {
  --aloha-header-text: var(--aloha-foam);
  --aloha-header-text-muted: color-mix(in srgb, var(--aloha-foam) 72%, var(--aloha-horizon));
  --aloha-header-accent: var(--aloha-horizon);
  --aloha-header-surface: var(--aloha-abyss);
  --aloha-header-border: color-mix(in srgb, var(--aloha-horizon) 28%, transparent);

  color: var(--aloha-header-text);
  background-color: var(--aloha-header-surface);
  background-image: linear-gradient(
    180deg,
    var(--aloha-header-surface) 0%,
    color-mix(in srgb, var(--aloha-lagoon) 92%, var(--aloha-abyss)) 100%
  );
  box-shadow: 0 8px 32px color-mix(in srgb, var(--aloha-abyss) 28%, transparent);
}

#header .header-banner,
#header .header-nav,
#header .header-top {
  background-color: var(--aloha-header-surface);
  background-image: linear-gradient(
    180deg,
    var(--aloha-header-surface) 0%,
    color-mix(in srgb, var(--aloha-lagoon) 88%, var(--aloha-abyss)) 100%
  );
  color: var(--aloha-header-text);
}

#header .header-top.bg-body-tertiary,
#header .header-bottom.bg-body-tertiary,
#header .header-nav.bg-body-tertiary,
#header .bg-body-tertiary {
  --bs-bg-opacity: 1;
  background-color: var(--aloha-header-surface) !important;
  color: var(--aloha-header-text) !important;
}

#header .ps-contactinfo,
#header .header-top .ps-contactinfo a,
#header .header-top .contact-link {
  color: var(--aloha-header-text-muted);
}

#header .header-top .ps-contactinfo a:hover,
#header .header-top .contact-link:hover {
  color: var(--aloha-header-accent);
}

#header .header-nav {
  max-height: none;
  padding: 0.65rem 0;
  border-bottom: 1px solid var(--aloha-header-border);
}

#header .header-nav > .container,
#header .header-top > .container {
  padding-left: 1.25rem;
  padding-right: 1.25rem;
}

#header .header-nav .right-nav {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
  gap: 0.25rem 0.65rem;
}

#header .header-nav .user-info,
#header .header-nav .language-selector,
#header .header-nav .currency-selector,
#header .header-nav #_desktop_contact_link {
  margin-top: 0;
  margin-left: 0;
  display: flex;
  align-items: center;
}

#header .header-top {
  border-bottom: none;
  padding: 1rem 0 1.15rem;
}

#header .header-top > .container > .row {
  align-items: center;
  row-gap: 1rem;
}

#header .header-top #_desktop_logo {
  padding-right: 1rem;
}

#header .header-top .search-widgets,
#header #search_widget {
  width: 100%;
  max-width: 22rem;
  margin-left: auto;
}

#header a,
#header .header-nav a,
#header .header-top a,
#header .user-info a,
#header .blockcart a,
#header .cart-preview a,
#header #contact-link,
#header .top-menu a,
#header .top-menu a[data-depth="0"],
#header .dropdown-toggle,
#header .expand-more {
  color: var(--aloha-header-text);
  text-decoration: none;
}

#header a:hover,
#header a:focus-visible,
#header .header-nav a:hover,
#header .top-menu a:hover {
  color: var(--aloha-header-accent);
}

#header h1,
#header #_desktop_logo h1,
#header .logo {
  color: var(--aloha-header-text);
  margin-bottom: 0;
}

#header .material-icons {
  color: inherit;
  line-height: 1;
}

#header #menu-icon .material-icons,
#header .language-selector .material-icons,
#header .currency-selector .material-icons {
  min-height: var(--aloha-touch);
  min-width: var(--aloha-touch);
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

#header .blockcart,
#header .cart-preview,
#header .header-nav .blockcart,
#header .header-nav .cart-preview {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  overflow: visible;
  background: transparent;
  border: 0;
  height: auto;
  min-height: 0;
  padding: 0;
  margin: 0;
  text-align: center;
  white-space: nowrap;
}

#header .blockcart a,
#header .cart-preview a {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  color: var(--aloha-header-text);
  line-height: 1.2;
}

#header .blockcart .shopping-cart,
#header .cart-preview .shopping-cart {
  color: inherit;
  vertical-align: middle;
  font-size: 1.35rem;
}

#header .blockcart .cart-products-count,
#header .cart-preview .cart-products-count {
  position: absolute;
  top: -0.35rem;
  right: -0.4rem;
  font-family: var(--aloha-font-mono);
  font-size: 0.62rem;
  font-weight: 700;
  letter-spacing: 0;
  color: var(--aloha-abyss, #082a36);
  background: var(--aloha-horizon);
  border-radius: 999px;
  padding: 0 0.28rem;
  min-width: 1.1rem;
  height: 1.1rem;
  line-height: 1.1rem;
}

#header .blockcart:hover,
#header .header-nav .blockcart:hover {
  background: transparent;
}

#header .cart-preview.active,
#header .blockcart.active {
  background: transparent;
}

#header .cart-preview.active a,
#header .cart-preview.active i,
#header .blockcart.active a {
  color: var(--aloha-header-text);
}

#header .user-info,
#header .language-selector,
#header .currency-selector,
#header #_desktop_contact_link {
  color: var(--aloha-header-text-muted);
}

#header .user-info .account {
  color: var(--aloha-header-text);
}

#header .search-widget form input[type="text"],
#header .search-widget form input[type="search"],
#header .header-top .search-widgets form input[type="text"],
#header .header-top .search-widgets form input[type="search"],
#header #search_widget input[type="text"] {
  min-height: var(--aloha-touch);
  min-width: 0;
  width: 100%;
  border-radius: var(--aloha-radius-pill);
  border: 1px solid var(--aloha-header-border);
  background: color-mix(in srgb, var(--aloha-abyss) 35%, transparent);
  color: var(--aloha-header-text);
  font-size: 1rem;
  box-shadow: none;
}

#header .search-widget form input::placeholder,
#header .header-top .search-widgets form input::placeholder,
#header #search_widget input::placeholder {
  color: var(--aloha-header-text-muted);
}

#header .header-top .search-widgets form input[type="text"]:focus,
#header #search_widget input[type="text"]:focus {
  color: var(--aloha-header-text);
  background: color-mix(in srgb, var(--aloha-abyss) 50%, transparent);
  outline: 2px solid color-mix(in srgb, var(--aloha-horizon) 55%, transparent);
  outline-offset: 0;
}

#header .search-widget form button[type="submit"],
#header .header-top .search-widgets form button[type="submit"],
#header #search_widget button[type="submit"] {
  color: var(--aloha-header-accent);
  min-height: var(--aloha-touch);
  min-width: var(--aloha-touch);
  background: transparent;
  border: none;
}

#header .search-widgets form button[type="submit"] .search,
#header .search-widgets form button[type="submit"] .search:hover {
  color: var(--aloha-header-accent);
}

/* Menú principal (desktop) */
#header .top-menu > li > a,
#header #top-menu > li > a {
  color: var(--aloha-header-text);
  font-weight: 500;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  font-size: 0.72rem;
  padding: 0.5rem 0.75rem;
  min-height: var(--aloha-touch);
  display: inline-flex;
  align-items: center;
}

#header .top-menu .sub-menu a,
#header .popover.sub-menu a {
  color: var(--aloha-ink);
  text-transform: none;
  letter-spacing: normal;
  font-size: 0.95rem;
}

#header .popover.sub-menu,
#header .dropdown-menu {
  background: var(--aloha-foam);
  border: 1px solid color-mix(in srgb, var(--aloha-lagoon) 14%, transparent);
  border-radius: 0.75rem;
  box-shadow: var(--aloha-shadow-card);
}

#header .dropdown-item {
  color: var(--aloha-ink);
}

#header .dropdown-item:hover,
#header .dropdown-item:focus {
  background: var(--aloha-salt);
  color: var(--aloha-lagoon);
}

/* Cuenta: el menú cae sobre foam; no heredar el blanco de la barra */
html.aloha-theme #header .dropdown-menu,
#header .ps-customersignin .dropdown-menu,
#header .header-block .dropdown-menu {
  background: var(--aloha-foam) !important;
  color: var(--aloha-ink) !important;
}

html.aloha-theme #header .dropdown-menu a,
html.aloha-theme #header .dropdown-item,
html.aloha-theme #header .dropdown-menu .material-icons,
html.aloha-theme #header .dropdown-item .material-icons {
  color: var(--aloha-ink) !important;
}

html.aloha-theme #header .dropdown-item:hover,
html.aloha-theme #header .dropdown-item:focus,
html.aloha-theme #header .dropdown-item:focus-visible,
html.aloha-theme #header .dropdown-item:active {
  background: var(--aloha-salt) !important;
  color: var(--aloha-lagoon) !important;
}

html.aloha-theme #header .dropdown-item:hover .material-icons,
html.aloha-theme #header .dropdown-item:focus .material-icons,
html.aloha-theme #header .dropdown-item:active .material-icons {
  color: var(--aloha-lagoon) !important;
}

#mobile_top_menu_wrapper {
  background: var(--aloha-lagoon);
  color: var(--aloha-foam);
}

#mobile_top_menu_wrapper a,
#mobile_top_menu_wrapper .top-menu a {
  color: var(--aloha-foam);
  padding: 0.85rem 1rem;
  min-height: var(--aloha-touch);
  display: flex;
  align-items: center;
}

#mobile_top_menu_wrapper .menu-close,
#mobile_top_menu_wrapper #menu-icon {
  color: var(--aloha-foam);
  min-height: var(--aloha-touch);
  min-width: var(--aloha-touch);
}

/* —— Cabecera Hummingbird (header-bottom, ps_searchbar, header-block) —— */
#header .header-bottom {
  background-color: color-mix(in srgb, var(--aloha-lagoon) 92%, var(--aloha-abyss));
  background-image: linear-gradient(
    180deg,
    color-mix(in srgb, var(--aloha-lagoon) 90%, var(--aloha-abyss)) 0%,
    color-mix(in srgb, var(--aloha-lagoon) 78%, var(--aloha-abyss)) 100%
  );
  color: var(--aloha-header-text, var(--aloha-foam));
  padding: 1rem 0 1.15rem;
  border-bottom: 1px solid color-mix(in srgb, var(--aloha-horizon) 28%, transparent);
}

#header .header-top__left,
#header .header-top__right {
  color: inherit;
  overflow: visible;
}

#header .header-top a:hover,
#header .header-block__action-btn:hover {
  color: var(--aloha-header-accent, var(--aloha-horizon));
}

/* Enlaces de primer nivel en barra oscura (no submenús) */
#header .header-bottom .ps-mainmenu__tree-item > .ps-mainmenu__tree-item-wrapper > a,
#header .header-bottom .ps-mainmenu__tree-item > .ps-mainmenu__tree-item-wrapper > .ps-mainmenu__tree-link,
#header .ps-mainmenu__tree > .ps-mainmenu__tree-item > div > a {
  color: var(--aloha-header-text, var(--aloha-foam));
}

#header .header-bottom .ps-mainmenu__tree-item > .ps-mainmenu__tree-item-wrapper > a:hover {
  color: var(--aloha-header-accent, var(--aloha-horizon));
}

/* Hummingbird: submenú categorías (fondo claro — NO heredar color foam de #header a) */
#header .submenu,
#header .js-sub-menu.submenu,
#header .ps-mainmenu__dropdown,
#header .ps-mainmenu__panel {
  background-color: var(--aloha-foam) !important;
  color: var(--aloha-ink) !important;
  border: 1px solid color-mix(in srgb, var(--aloha-lagoon) 14%, transparent);
  border-radius: 0.75rem;
  box-shadow: var(--aloha-shadow-card);
}

#header .submenu a,
#header .js-sub-menu a,
#header .js-sub-menu.submenu a,
#header .ps-mainmenu__dropdown a,
#header .ps-mainmenu__panel a,
#header .submenu__list a {
  color: var(--aloha-ink) !important;
  text-transform: none;
  letter-spacing: normal;
  font-size: 0.95rem;
  font-weight: 400;
}

#header .submenu a:hover,
#header .js-sub-menu a:hover,
#header .ps-mainmenu__dropdown a:hover {
  color: var(--aloha-lagoon) !important;
  background-color: var(--aloha-salt) !important;
}

/* Menú móvil (offcanvas Bootstrap — fondo claro por defecto) */
.ps-mainmenu--mobile.offcanvas,
.offcanvas.js-menu-canvas,
#header .offcanvas.ps-mainmenu--mobile {
  --bs-offcanvas-bg: var(--aloha-abyss);
  background-color: var(--aloha-abyss) !important;
  color: var(--aloha-foam) !important;
}

.ps-mainmenu--mobile.offcanvas a,
.offcanvas.js-menu-canvas a,
.ps-mainmenu--mobile .menu__link,
.ps-mainmenu--mobile .ps-mainmenu__tree-link,
#header .offcanvas.ps-mainmenu--mobile a {
  color: var(--aloha-foam) !important;
}

.ps-mainmenu--mobile .btn-link,
.offcanvas.js-menu-canvas .btn-link,
.ps-mainmenu--mobile .btn-close {
  color: var(--aloha-horizon) !important;
}

.ps-mainmenu--mobile .btn-close {
  filter: invert(1) grayscale(1) brightness(1.6);
}

#header #ps_searchbar,
#header .ps-searchbar {
  width: 100%;
  max-width: 22rem;
}

#header .ps-searchbar__input,
#header #ps_searchbar input[name="s"] {
  min-height: var(--aloha-touch);
  border-radius: var(--aloha-radius-pill);
  border: 1px solid color-mix(in srgb, var(--aloha-horizon) 28%, transparent);
  background: color-mix(in srgb, var(--aloha-abyss) 35%, transparent);
  color: var(--aloha-header-text, var(--aloha-foam));
  box-shadow: none;
}

#header .ps-searchbar__input::placeholder {
  color: color-mix(in srgb, var(--aloha-foam) 72%, var(--aloha-horizon));
}

#header .ps-searchbar__input:focus {
  color: var(--aloha-header-text, var(--aloha-foam));
  background: color-mix(in srgb, var(--aloha-abyss) 50%, transparent);
  border-color: color-mix(in srgb, var(--aloha-horizon) 55%, transparent);
  outline: 2px solid color-mix(in srgb, var(--aloha-horizon) 55%, transparent);
  outline-offset: 0;
}

#header .ps-searchbar__magnifier {
  color: var(--aloha-horizon);
}

#header .header-block.blockcart,
#header .header-block--active.blockcart {
  background: transparent;
  border: 0;
  min-height: 0;
  padding: 0;
  overflow: visible;
}

#header .header-block.blockcart .header-block__action-btn,
#header .header-block--active.blockcart .header-block__action-btn {
  gap: 0.4rem;
  padding: 0.4rem 0.7rem 0.4rem 0.55rem;
  border-radius: var(--aloha-radius-pill);
  background: color-mix(in srgb, var(--aloha-foam) 12%, transparent);
  border: 1px solid color-mix(in srgb, var(--aloha-horizon) 28%, transparent);
  transition:
    background var(--aloha-duration-ui) var(--aloha-ease-out),
    border-color var(--aloha-duration-ui) var(--aloha-ease-out);
}

#header .header-block.blockcart:hover .header-block__action-btn,
#header .header-block--active.blockcart .header-block__action-btn:hover {
  background: color-mix(in srgb, var(--aloha-foam) 20%, transparent);
  border-color: color-mix(in srgb, var(--aloha-horizon) 45%, transparent);
}

#header #_desktop_logo img,
#header .logo img,
#header .header-top__logo img {
  max-height: 2.75rem;
  width: auto;
  height: auto;
}

#header .header-block__cart-mark {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.45rem;
  height: 1.45rem;
  flex: 0 0 auto;
}

#header .header-block.blockcart .header-block__icon {
  font-size: 1.35rem;
  line-height: 1;
}

#header .header-block__badge {
  position: absolute;
  top: -0.38rem;
  right: -0.42rem;
  z-index: 1;
  box-sizing: border-box;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 1.05rem;
  height: 1.05rem;
  padding: 0 0.26rem;
  border-radius: 999px;
  border: 0;
  background: var(--aloha-horizon);
  color: var(--aloha-abyss, #082a36);
  font-family: var(--aloha-font-body);
  font-size: 0.62rem;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
  letter-spacing: 0;
  line-height: 1;
  box-shadow: 0 0 0 2px var(--aloha-lagoon, #0b3d4d);
  pointer-events: none;
}

#header .header-block.inactive .header-block__badge,
#header .header-block__badge[hidden],
#header .header-block__badge[data-count="0"] {
  display: none;
}

#header .main-menu > li > a,
#header .ps-mainmenu a[data-depth="0"],
#header .header-bottom .top-menu a,
#header .header-bottom .menu a,
#header .header-bottom .ps-mainmenu a,
#header .header-bottom nav a {
  color: var(--aloha-header-text, var(--aloha-foam));
  font-weight: 500;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  font-size: 0.72rem;
}

#header .text-body,
#header .link-body-emphasis,
#header .navbar-nav .nav-link {
  color: var(--aloha-header-text, var(--aloha-foam)) !important;
}

#header.js-sticky-header,
#header.header--sticky,
.header.is-sticky,
#header.is-sticky {
  background-color: var(--aloha-header-surface) !important;
  background-image: linear-gradient(
    180deg,
    var(--aloha-header-surface) 0%,
    color-mix(in srgb, var(--aloha-lagoon) 92%, var(--aloha-abyss)) 100%
  ) !important;
  color: var(--aloha-header-text) !important;
}

#header.js-sticky-header a,
#header.header--sticky a,
.header.is-sticky a {
  color: var(--aloha-header-text, var(--aloha-foam));
}

/* —— Botones —— */
.btn,
button.btn {
  min-height: var(--aloha-touch);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.35rem;
  cursor: pointer;
}

.btn-primary,
.btn.btn-primary {
  font-family: var(--aloha-font-body);
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  font-size: 0.78rem;
  color: #fff;
  background-color: var(--aloha-lagoon);
  border-color: var(--aloha-lagoon);
  border-radius: var(--aloha-radius-pill);
  padding: 0.65rem 1.5rem;
  box-shadow: var(--aloha-shadow-card);
  transition:
    background var(--aloha-duration-ui) var(--aloha-ease-out),
    transform 160ms var(--aloha-ease-out),
    box-shadow var(--aloha-duration-ui) var(--aloha-ease-out);
}

.btn-primary:hover,
.btn-primary:focus,
.btn-primary:active {
  color: #fff;
  background-color: color-mix(in srgb, var(--aloha-lagoon) 88%, #000);
  border-color: color-mix(in srgb, var(--aloha-lagoon) 88%, #000);
  box-shadow: var(--aloha-shadow-card-hover);
}

.btn-primary:active {
  transform: scale(0.98);
}

.btn-secondary,
.btn-outline-primary {
  border-radius: var(--aloha-radius-pill);
  border-width: 1.5px;
  border-color: var(--aloha-sea);
  color: var(--aloha-sea);
  font-weight: 500;
}

.btn-secondary:hover,
.btn-outline-primary:hover,
.btn-outline-primary:focus {
  background: var(--aloha-lagoon);
  border-color: var(--aloha-lagoon);
  color: var(--aloha-foam);
}

.btn:focus,
.btn-primary:focus,
.form-control:focus {
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--aloha-horizon) 45%, transparent);
}

/* —— Listado producto (cards) —— */
.products {
  row-gap: 2rem;
}

.product-miniature {
  margin-bottom: 0.5rem;
}

.product-miniature .thumbnail-container {
  border-radius: var(--aloha-radius-pebble);
  overflow: hidden;
  background: var(--aloha-salt);
  box-shadow: var(--aloha-shadow-card);
  transition:
    box-shadow var(--aloha-duration-ui) var(--aloha-ease-out),
    transform var(--aloha-duration-ui) var(--aloha-ease-out);
}

.product-miniature .product-thumbnail,
.product-miniature .thumbnail-container a {
  cursor: pointer;
}

.product-miniature .product-thumbnail img {
  aspect-ratio: 4 / 5;
  object-fit: cover;
  width: 100%;
}

@media (hover: hover) {
  .product-miniature .thumbnail-container:hover {
    box-shadow: var(--aloha-shadow-card-hover);
    transform: translateY(-2px);
  }
}

.product-miniature .highlighted-informations {
  padding: 0.75rem 0.25rem 0;
}

.product-miniature .product-description {
  padding: 0 0.25rem 0.75rem;
}

.product-price,
.current-price,
.has-discount .current-price {
  font-family: var(--aloha-font-mono);
  font-variant-numeric: tabular-nums;
  font-size: 1.15rem;
  font-weight: 500;
  color: var(--aloha-sea);
}

.regular-price,
.product-price-and-shipping .regular-price {
  color: var(--aloha-muted);
  font-family: var(--aloha-font-mono);
  font-size: 0.9rem;
}

.product-miniature .product-title {
  margin-top: 0.35rem;
  min-height: 2.75rem;
}

.product-miniature .product-title a {
  font-family: var(--aloha-font-body);
  font-weight: 500;
  color: var(--aloha-ink);
  line-height: 1.35;
  display: block;
  padding: 0.15rem 0;
}

.product-miniature .product-title a:hover,
.product-miniature .product-title a:focus {
  color: var(--aloha-sea);
}

.product-miniature .quick-view,
.product-miniature .wishlist-button-add {
  min-height: var(--aloha-touch);
  min-width: var(--aloha-touch);
}

.product-cover img,
.page-product .product-cover {
  border-radius: var(--aloha-radius-pebble);
  box-shadow: var(--aloha-shadow-card);
}

.product-miniature .thumbnail-container .product-flags {
  top: 0.5rem;
  left: 0.5rem;
  width: auto;
  max-width: calc(100% - 1rem);
  flex-direction: column;
  align-items: flex-start;
  gap: 0.35rem;
}

.product-miniature .product-flags li.product-flag,
.product-flags .product-flag {
  position: relative;
  margin-top: 0 !important;
  width: fit-content !important;
  max-width: 100%;
  order: 0 !important;
  text-align: left !important;
  background: var(--aloha-lagoon);
  color: var(--aloha-foam);
  font-family: var(--aloha-font-mono);
  font-size: 0.62rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  border-radius: var(--aloha-radius-pill);
  padding: 0.35rem 0.65rem;
  min-width: 0;
  min-height: 0;
  font-weight: 600;
}

.product-miniature .product-flags li.product-flag.discount,
.product-miniature .product-flags li.product-flag.discount-percentage,
.product-miniature .product-flags li.product-flag.on-sale,
.product-flags .product-flag.discount,
.product-flags .product-flag.on-sale {
  background: var(--aloha-dusk);
}

.product-miniature .product-flags li.product-flag.new {
  background: var(--aloha-lagoon);
}

/* —— Ficha producto —— */
.page-product .product-actions .add-to-cart,
.product-add-to-cart .add-to-cart {
  min-height: 3rem;
  padding-left: 2rem;
  padding-right: 2rem;
}

.page-product .product-information {
  margin-bottom: var(--aloha-section-y);
}

.page-product .product-description {
  color: var(--aloha-ink);
  max-width: 65ch;
}

/* —— Categoría (hero ligero) —— */
body.page-category,
body#category {
  color: var(--aloha-ink);
}

body.page-category #wrapper,
body.page-category #content-wrapper,
body.page-category #main,
body.page-category .page-content {
  color: var(--aloha-ink);
}

body.page-category #main h1,
body.page-category .block-category h1,
body.page-category .page-heading,
#page-category #main h1 {
  color: var(--aloha-lagoon);
}

body.page-category .breadcrumb,
body.page-category .breadcrumb a,
body.page-category .breadcrumb li:last-child {
  color: var(--aloha-muted);
}

body.page-category .product-miniature .product-title a,
body.page-category .product-title a,
body.page-category .product-price-and-shipping {
  color: var(--aloha-ink);
}

#category #js-product-list-header,
.block-category {
  background: linear-gradient(
    135deg,
    color-mix(in srgb, var(--aloha-salt) 80%, var(--aloha-foam)) 0%,
    var(--aloha-foam) 100%
  );
  border-radius: var(--aloha-radius-pebble);
  padding: clamp(1.5rem, 4vw, 2.5rem);
  margin-bottom: 2rem;
  border: 1px solid color-mix(in srgb, var(--aloha-lagoon) 10%, transparent);
}

.block-category #category-description {
  color: var(--aloha-muted);
  max-width: 60ch;
  font-size: 1.05rem;
}

/* —— Carrito / checkout —— */
.card,
.cart-summary,
#checkout #wrapper .card {
  border-radius: var(--aloha-radius-pebble);
  border-color: color-mix(in srgb, var(--aloha-lagoon) 12%, transparent);
  box-shadow: var(--aloha-shadow-card);
}

.cart-summary-line .value,
.cart-summary-line.cart-total .value {
  font-family: var(--aloha-font-mono);
  font-variant-numeric: tabular-nums;
  color: var(--aloha-sea);
}

.cart-grid-body .cart-overview .no-items,
.cart-empty,
#cart-empty {
  text-align: center;
  padding: clamp(2rem, 6vw, 4rem) 1.5rem;
  background: color-mix(in srgb, var(--aloha-salt) 50%, var(--aloha-foam));
  border-radius: var(--aloha-radius-pebble);
  border: 1px dashed color-mix(in srgb, var(--aloha-horizon) 35%, transparent);
}

.cart-grid-body .no-items p,
.cart-empty .cart-empty-title {
  font-family: var(--aloha-font-display);
  font-size: 1.35rem;
  color: var(--aloha-lagoon);
  margin-bottom: 0.75rem;
}

.cart-grid-body .no-items a,
.cart-empty a {
  margin-top: 1rem;
}

/* Carrito a ancho de cabecera: el .container de 1320px dejaba franjas laterales. */
body.page-cart .columns-container.container,
body.page-checkout .columns-container.container {
  max-width: none;
  width: 100%;
  padding-inline: clamp(1rem, 4vw, 2.5rem);
}

body.page-cart #center-column,
body.page-checkout #center-column {
  max-width: none;
  width: 100%;
  padding-inline: 0;
}

body.page-cart #cart > .cart-grid.row {
  max-width: 90rem;
  width: 100%;
  margin-inline: auto;
  margin-left: auto;
  margin-right: auto;
  --bs-gutter-x: 1.25rem;
}

body.page-cart .ps-featuredproducts,
body.page-cart section.featured-products {
  width: 100%;
  max-width: 90rem;
  margin-inline: auto;
  margin-bottom: 2.75rem;
  padding-inline: 0;
  box-sizing: border-box;
}

body.page-cart .ps-featuredproducts .module-products.container,
body.page-cart .ps-featuredproducts .container {
  width: 100%;
  max-width: none;
  padding-inline: 0;
}

body.page-cart .ps-featuredproducts .products,
body.page-cart .ps-featuredproducts .module-products__list .products {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: clamp(1rem, 2.8vw, 1.75rem) !important;
  width: 100% !important;
}

@media (min-width: 992px) {
  body.page-cart .ps-featuredproducts .products,
  body.page-cart .ps-featuredproducts .module-products__list .products {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  }
}

body.page-cart .ps-featuredproducts .products > .product-miniature,
body.page-cart .ps-featuredproducts .products > article {
  width: 100% !important;
  max-width: none !important;
  flex: none !important;
}

body.page-cart .product-miniature__form .input-group,
body.page-cart .product-miniature__variants {
  display: none;
}

body.page-cart {
  overflow-x: clip;
}

/* —— Carrito: líneas, resumen, dock móvil —— */
#cart .cart-grid {
  align-items: start;
  row-gap: 1.5rem;
}

#cart .cart__list {
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
}

#cart .cart__item {
  overflow: hidden;
  border-radius: 1.15rem;
  background: #fff;
  border: 1px solid color-mix(in srgb, var(--aloha-lagoon) 10%, transparent);
  box-shadow: var(--aloha-shadow-card);
  transform-origin: 50% 0;
  animation: aloha-cart-line-in 380ms var(--aloha-ease-out) both;
  transition:
    transform var(--aloha-duration-ui) var(--aloha-ease-out),
    box-shadow var(--aloha-duration-ui) var(--aloha-ease-out),
    border-color var(--aloha-duration-ui) ease;
}

#cart .cart__item:nth-child(1) { animation-delay: 40ms; }
#cart .cart__item:nth-child(2) { animation-delay: 90ms; }
#cart .cart__item:nth-child(3) { animation-delay: 140ms; }
#cart .cart__item:nth-child(4) { animation-delay: 190ms; }
#cart .cart__item:nth-child(5) { animation-delay: 240ms; }

#cart .cart__item:hover {
  transform: translateY(-2px);
  box-shadow: var(--aloha-shadow-card-hover);
  border-color: color-mix(in srgb, var(--aloha-horizon) 35%, transparent);
}

#cart .cart__item.is-leaving {
  animation: aloha-cart-line-out 280ms cubic-bezier(0.4, 0, 1, 1) forwards;
  pointer-events: none;
}

#cart .product-line {
  display: grid !important;
  grid-template-columns: 5.5rem minmax(0, 1fr);
  gap: 0.9rem 1rem;
  padding: 0.9rem 1rem 1rem;
  align-items: start;
}

#cart .product-line__content {
  display: flex !important;
  flex-direction: column;
  gap: 0.4rem;
  min-width: 0;
}

#cart .product-line__content-right {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem 0.75rem;
  width: 100%;
  margin-left: 0;
}

#cart .product-line__image {
  overflow: hidden;
  border-radius: 0.85rem;
  background: var(--aloha-salt);
}

#cart .product-line__img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 3 / 4;
  object-fit: cover;
  transition: transform 480ms var(--aloha-ease-out);
}

#cart .cart__item:hover .product-line__img {
  transform: scale(1.04);
}

#cart .product-line__title {
  font-family: var(--aloha-font-body);
  font-weight: 600;
  color: var(--aloha-ink);
  text-decoration: none;
}

#cart .product-line__title:hover {
  color: var(--aloha-sea);
}

#cart .product-line__item--info {
  font-size: 0.85rem;
  color: var(--aloha-muted);
}

#cart .product-line__item-price,
#cart .product-line__price {
  font-family: var(--aloha-font-mono);
  font-variant-numeric: tabular-nums;
  color: var(--aloha-lagoon);
  font-weight: 500;
}

#cart .product-line__price {
  font-size: 1.05rem;
  transition: color 220ms ease, transform 220ms var(--aloha-ease-out);
}

#cart .product-line__price.is-flash,
#cart .cart-summary-line.cart-total .value.is-flash {
  animation: aloha-price-flash 520ms var(--aloha-ease-out);
}

#cart .js-quantity-button .btn,
#cart .quantity-button__group .btn {
  min-width: var(--aloha-touch);
  min-height: var(--aloha-touch);
  border-radius: 0.7rem;
  transition: background-color 160ms ease, transform 160ms var(--aloha-ease-out);
}

#cart .js-quantity-button .btn:active,
#cart .quantity-button__group .btn:active {
  transform: scale(0.92);
}

#cart .js-cart-line-product-quantity {
  min-height: var(--aloha-touch);
  text-align: center;
  font-variant-numeric: tabular-nums;
}

#cart .js-remove-from-cart {
  display: inline-flex;
  align-items: center;
  min-height: 2.25rem;
  color: var(--aloha-dusk);
  text-decoration: none;
  font-size: 0.88rem;
  transition: color 160ms ease, transform 160ms var(--aloha-ease-out);
}

#cart .js-remove-from-cart:hover {
  color: #8a1f2b;
}

#cart .cart-grid__aside-wrapper {
  padding: 1.25rem 1.35rem 1.4rem;
  border-radius: 1.25rem;
  background: #fff;
  border: 1px solid color-mix(in srgb, var(--aloha-lagoon) 10%, transparent);
  box-shadow: var(--aloha-shadow-card);
  animation: aloha-cart-line-in 420ms 80ms var(--aloha-ease-out) both;
}

#cart .cart-summary__actions .btn-primary {
  min-height: 3rem;
  border-radius: var(--aloha-radius-pill);
  transition: transform 200ms var(--aloha-ease-out), box-shadow 200ms ease;
}

#cart .cart-summary__actions .btn-primary:hover {
  transform: translateY(-1px);
  box-shadow: 0 8px 22px color-mix(in srgb, var(--aloha-lagoon) 28%, transparent);
}

#cart .cart__continue-shopping {
  margin-top: 0.35rem;
  border-radius: var(--aloha-radius-pill);
  transition: transform 200ms var(--aloha-ease-out);
}

#aloha-cart-dock {
  position: fixed;
  z-index: 1070;
  right: 0;
  bottom: 0;
  left: 0;
  display: none;
  padding: 0.7rem 1rem calc(0.7rem + env(safe-area-inset-bottom));
  background: color-mix(in srgb, var(--aloha-foam) 88%, transparent);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  box-shadow: 0 -10px 32px color-mix(in srgb, var(--aloha-abyss) 12%, transparent);
  transform: translate3d(0, 110%, 0);
  animation: aloha-dock-in 340ms var(--aloha-ease-out) forwards;
}

#aloha-cart-dock .btn {
  width: 100%;
  min-height: 3rem;
  border-radius: var(--aloha-radius-pill);
}

@keyframes aloha-cart-line-in {
  from {
    opacity: 0;
    transform: translate3d(0, 12px, 0);
  }
  to {
    opacity: 1;
    transform: translate3d(0, 0, 0);
  }
}

@keyframes aloha-cart-line-out {
  to {
    opacity: 0;
    transform: translate3d(-12px, 0, 0) scale(0.98);
    height: 0;
    margin: 0;
    padding: 0;
    border-width: 0;
  }
}

@keyframes aloha-price-flash {
  0% {
    transform: scale(1);
  }
  35% {
    transform: scale(1.06);
    color: var(--aloha-sea);
  }
  100% {
    transform: scale(1);
  }
}

@keyframes aloha-dock-in {
  to {
    transform: translate3d(0, 0, 0);
  }
}

@media (min-width: 992px) {
  #cart .cart-grid__aside-wrapper {
    position: sticky;
    top: 6.25rem;
  }

  #cart .product-line {
    grid-template-columns: 6.25rem minmax(0, 1fr);
    padding: 1.05rem 1.15rem;
  }
}

@media (max-width: 991.98px) {
  #cart .product-line {
    grid-template-columns: 4.75rem minmax(0, 1fr);
    gap: 0.75rem;
    padding: 0.8rem 0.85rem 0.9rem;
  }

  #cart .product-line__item--prices {
    display: none;
  }

  #cart .product-line__content-right {
    margin-top: 0.45rem;
  }

  #cart .js-cart-detailed-actions {
    display: none;
  }

  body.page-cart:not(.cart-empty) #aloha-cart-dock {
    display: block;
  }

  body.page-cart:not(.cart-empty) #wrapper {
    padding-bottom: 5.5rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  #cart .cart__item,
  #cart .cart-grid__aside-wrapper,
  #aloha-cart-dock,
  #cart .product-line__img,
  #cart .product-line__price {
    animation: none !important;
    transition: none !important;
    transform: none !important;
  }
}

.checkout-step {
  border-radius: var(--aloha-radius-pebble);
  margin-bottom: 1rem;
  border: 1px solid color-mix(in srgb, var(--aloha-lagoon) 10%, transparent);
}

.checkout-step.-current {
  border-color: var(--aloha-horizon);
  box-shadow: 0 0 0 1px color-mix(in srgb, var(--aloha-horizon) 25%, transparent);
}

.checkout-step .step-title {
  font-family: var(--aloha-font-mono);
  font-size: 0.72rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

/* —— Migas —— */
.breadcrumb {
  background: transparent;
  font-family: var(--aloha-font-mono);
  font-size: 0.68rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  margin-bottom: 1.25rem;
}

.breadcrumb a {
  color: var(--aloha-muted);
}

.breadcrumb a:hover {
  color: var(--aloha-sea);
}

/* —— Formularios —— */
.form-control,
.custom-select,
select.form-control {
  min-height: var(--aloha-touch);
  border-radius: 0.75rem;
  border-color: color-mix(in srgb, var(--aloha-lagoon) 18%, transparent);
  font-size: 1rem;
  color: var(--aloha-ink);
}

.form-control:focus {
  border-color: var(--aloha-horizon);
}

label,
.form-control-label {
  font-weight: 500;
  color: var(--aloha-ink);
  margin-bottom: 0.35rem;
}

.form-group.has-error .form-control,
.form-group.has-error label {
  border-color: var(--aloha-dusk);
  color: var(--aloha-dusk);
}

.help-block,
.form-text {
  color: var(--aloha-muted);
  font-size: 0.9rem;
}

/* —— Bloques home —— */
#index .page-home section {
  margin-bottom: var(--aloha-section-y);
}

#index .block_newsletter {
  background: linear-gradient(
    120deg,
    var(--aloha-lagoon) 0%,
    color-mix(in srgb, var(--aloha-sea) 70%, var(--aloha-lagoon)) 100%
  );
  border-radius: var(--aloha-radius-pebble);
  color: var(--aloha-foam);
  padding: clamp(1.5rem, 4vw, 2.5rem);
}

#index .block_newsletter.bg-body-tertiary,
#index section.ps-emailsubscription {
  --bs-bg-opacity: 1;
  background: linear-gradient(
    120deg,
    var(--aloha-lagoon) 0%,
    color-mix(in srgb, var(--aloha-sea) 70%, var(--aloha-lagoon)) 100%
  ) !important;
  color: var(--aloha-foam) !important;
}

#index .block_newsletter h3,
#index .block_newsletter p {
  color: var(--aloha-foam);
}

#index .block_newsletter .btn-primary {
  background: var(--aloha-foam);
  color: var(--aloha-abyss);
}

/* —— Pie (anula Classic: #7a7a7a, newsletter blanca) —— */
#footer {
  --aloha-footer-text: color-mix(in srgb, var(--aloha-foam) 92%, var(--aloha-horizon));
  --aloha-footer-muted: color-mix(in srgb, var(--aloha-foam) 78%, var(--aloha-horizon));
  --aloha-footer-border: color-mix(in srgb, var(--aloha-horizon) 28%, transparent);

  background-color: var(--aloha-abyss);
  background-image: linear-gradient(
    180deg,
    var(--aloha-lagoon) 0%,
    color-mix(in srgb, var(--aloha-lagoon) 70%, var(--aloha-abyss)) 35%,
    var(--aloha-abyss) 100%
  );
  color: var(--aloha-footer-text);
  padding: clamp(2.5rem, 5vw, 3.5rem) 0 2rem;
  margin-top: var(--aloha-section-y);
}

#footer .footer-container {
  background: transparent;
  padding-top: 2rem;
  margin-top: 0.5rem;
  border-top: 1px solid var(--aloha-footer-border);
  overflow: visible;
}

#footer .footer__before,
#footer .footer__main,
#footer .footer__after {
  background-color: transparent;
  background-image: none;
  color: inherit;
}

#footer .footer-container .h3,
#footer .footer-container .h4,
#footer .footer-container .title .h3,
#footer .block-contact .h3,
#footer h5,
#footer .h5 {
  color: var(--aloha-foam);
  font-family: var(--aloha-font-display);
  font-weight: 500;
  font-size: 1.05rem;
  margin-bottom: 1rem;
}

#footer .footer-container li a,
#footer .block-contact,
#footer .block-contact a,
#footer .block-contact p,
#footer .block-contact .contact-rich {
  color: var(--aloha-footer-muted);
  font-size: 0.9rem;
}

#footer .footer-container li a {
  text-decoration: none;
  transition: color var(--aloha-duration-ui) var(--aloha-ease-out);
}

#footer a {
  color: var(--aloha-horizon);
  text-decoration: underline;
  text-underline-offset: 0.15em;
}

#footer .footer-container li a:hover,
#footer .block-contact a:hover,
#footer a:hover {
  color: var(--aloha-foam);
}

#footer .footer-container li {
  margin-bottom: 0.5rem;
}

#footer .text-sm-center,
#footer .text-sm-center a {
  color: var(--aloha-footer-muted);
  font-size: 0.75rem;
  text-decoration: none;
}

#footer .text-sm-center a:hover {
  color: var(--aloha-horizon);
}

#footer .block_newsletter {
  float: none;
  width: 100%;
  max-width: none;
  margin: 0 0 2rem;
  padding: clamp(1.25rem, 3vw, 1.75rem);
  clear: both;
  font-size: 0.95rem;
  background: color-mix(in srgb, var(--aloha-abyss) 35%, transparent);
  border: 1px solid var(--aloha-footer-border);
  border-radius: var(--aloha-radius-pebble);
}

#footer .block_newsletter.bg-body-tertiary,
#footer .ps-emailsubscription.bg-body-tertiary,
#footer section.ps-emailsubscription.bg-body-tertiary,
#footer section.bg-body-tertiary,
#index .block_newsletter.bg-body-tertiary,
#index section.ps-emailsubscription.bg-body-tertiary {
  --bs-bg-opacity: 1;
  --bs-tertiary-bg-rgb: 7, 24, 32;
  background: color-mix(in srgb, var(--aloha-abyss) 55%, var(--aloha-lagoon)) !important;
  background-image: none !important;
  color: var(--aloha-foam) !important;
}

#footer .block_newsletter #block-newsletter-label,
#footer .block_newsletter p {
  color: var(--aloha-foam);
  font-family: var(--aloha-font-display);
  font-size: clamp(1.05rem, 2.5vw, 1.25rem);
  line-height: 1.4;
}

#footer .block_newsletter form .row .col-xs-12:last-of-type p {
  color: var(--aloha-footer-muted);
  font-size: 0.8rem;
}

#footer .block_newsletter form input[type="email"],
#footer .block_newsletter form input[type="text"] {
  height: var(--aloha-touch);
  padding: 0.65rem 1rem;
  color: var(--aloha-foam);
  background: color-mix(in srgb, var(--aloha-foam) 8%, transparent);
  border: 1px solid var(--aloha-footer-border);
  border-radius: var(--aloha-radius-pill);
  box-shadow: none;
}

#footer .block_newsletter form input[type="email"]:focus,
#footer .block_newsletter form input[type="text"]:focus {
  color: var(--aloha-foam);
  background: color-mix(in srgb, var(--aloha-foam) 12%, transparent);
  border-color: var(--aloha-horizon);
  outline: 2px solid color-mix(in srgb, var(--aloha-horizon) 40%, transparent);
  outline-offset: 0;
}

#footer .block_newsletter form input::placeholder {
  color: var(--aloha-footer-muted);
}

#footer .block_newsletter .btn-primary {
  margin-left: 0.5rem;
  padding: 0.55rem 1.25rem;
  min-height: var(--aloha-touch);
}

#footer .block-social ul {
  display: flex;
  gap: 0.5rem;
  justify-content: flex-end;
  align-items: center;
}

#footer .block-social a {
  color: var(--aloha-foam);
  text-decoration: none;
}

.aloha-footer-story {
  margin-top: 1.5rem;
  padding: 1.25rem 1rem;
  border-top: 1px solid var(--aloha-footer-border);
  border-radius: var(--aloha-radius-pebble);
  font-size: 0.95rem;
  color: var(--aloha-footer-text);
  background: color-mix(in srgb, var(--aloha-abyss) 45%, transparent);
}

.aloha-footer-story a {
  font-weight: 500;
  color: var(--aloha-foam);
  text-decoration: underline;
  text-underline-offset: 0.15em;
}

.aloha-footer-story a:hover {
  color: var(--aloha-horizon);
}

/* —— Pie Hummingbird (footer-block, ps-emailsubscription) —— */
#footer .footer__main {
  padding-block: 0;
}

#footer .footer__main-top {
  padding-top: 2rem;
  margin-top: 0.5rem;
  border-top: 1px solid var(--aloha-footer-border, color-mix(in srgb, var(--aloha-horizon) 28%, transparent));
}

#footer .footer-block__title,
#footer .footer-block__title a {
  color: var(--aloha-foam);
  font-family: var(--aloha-font-display);
  font-weight: 500;
  font-size: 1.05rem;
}

#footer .footer-block__list a {
  color: var(--aloha-footer-muted, color-mix(in srgb, var(--aloha-foam) 62%, var(--aloha-horizon)));
  text-decoration: none;
  transition: color var(--aloha-duration-ui) var(--aloha-ease-out);
}

#footer .footer-block__list a:hover {
  color: var(--aloha-foam);
}

#footer .ps-emailsubscription {
  background: color-mix(in srgb, var(--aloha-abyss) 55%, var(--aloha-lagoon));
  background-image: none;
  border: 1px solid var(--aloha-footer-border, color-mix(in srgb, var(--aloha-horizon) 28%, transparent));
  border-radius: var(--aloha-radius-pebble);
  margin-bottom: 2rem;
  color: var(--aloha-foam);
}

#footer .ps-emailsubscription .h3,
#footer .ps-emailsubscription p {
  color: var(--aloha-foam);
  font-family: var(--aloha-font-display);
}

#footer .ps-emailsubscription .form-control {
  color: var(--aloha-foam);
  background: color-mix(in srgb, var(--aloha-foam) 8%, transparent);
  border: 1px solid var(--aloha-footer-border, color-mix(in srgb, var(--aloha-horizon) 28%, transparent));
  border-radius: var(--aloha-radius-pill);
}

#footer .ps-emailsubscription .form-control:focus {
  color: var(--aloha-foam);
  border-color: var(--aloha-horizon);
  box-shadow: 0 0 0 2px color-mix(in srgb, var(--aloha-horizon) 40%, transparent);
}

#footer .ps-emailsubscription .btn-primary {
  min-height: var(--aloha-touch);
}

section.ps-featuredproducts .module-products__list {
  margin-top: 1rem;
}

/* Mini-carrito modal */
#blockcart-modal .modal-header,
#blockcart-modal .modal-body {
  background: var(--aloha-foam);
  color: var(--aloha-ink);
}

#blockcart-modal .modal-title,
#blockcart-modal .product-name {
  color: var(--aloha-lagoon);
  font-family: var(--aloha-font-display);
}

#blockcart-modal .product-price,
#blockcart-modal .cart-content p.product-total {
  font-family: var(--aloha-font-mono);
  color: var(--aloha-sea);
}

#blockcart-modal .cart-content p.product-total {
  background: var(--aloha-salt);
  border-radius: 0.75rem;
}

/* —— Avisos —— */
#notifications {
  margin-bottom: 1rem;
}

#notifications .alert {
  border-radius: var(--aloha-radius-pebble);
}

#notifications .alert-success {
  background-color: color-mix(in srgb, var(--success) 18%, var(--aloha-foam));
  border-color: var(--success);
  color: var(--aloha-ink);
}

#notifications .alert-danger,
#notifications .alert-warning {
  background-color: color-mix(in srgb, var(--aloha-dusk) 15%, var(--aloha-foam));
  border-color: var(--aloha-dusk);
  color: var(--aloha-ink);
}

/* —— Paginación —— */
.pagination {
  gap: var(--aloha-gap-touch);
  margin-top: 2rem;
}

.page-item .page-link {
  min-height: var(--aloha-touch);
  min-width: var(--aloha-touch);
  display: flex;
  align-items: center;
  justify-content: center;
}

.page-item.active .page-link {
  background-color: var(--aloha-lagoon);
  border-color: var(--aloha-lagoon);
}

.page-link {
  color: var(--aloha-sea);
  border-radius: 0.5rem;
}

/* —— Accesibilidad —— */
#header .text-muted,
#footer .text-muted {
  color: var(--aloha-footer-muted) !important;
}

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

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }

  .product-miniature .thumbnail-container:hover {
    transform: none;
  }
}

@media (max-width: 767px) {
  #content-wrapper,
  .page-content {
    padding-top: 1.75rem;
    padding-bottom: 2.5rem;
  }

  .btn-primary,
  .btn.btn-primary {
    width: 100%;
    max-width: 100%;
  }

  .page-product .product-actions .add-to-cart {
    width: 100%;
  }
}

/* —— Portada tienda (sustituye demo PrestaShop) —— */
.aloha-home-hero {
  margin-bottom: clamp(2rem, 5vw, 3.5rem);
  padding: clamp(2rem, 6vw, 4rem) 0;
  background: linear-gradient(
    145deg,
    var(--aloha-abyss) 0%,
    var(--aloha-lagoon) 55%,
    color-mix(in srgb, var(--aloha-horizon) 35%, var(--aloha-lagoon)) 100%
  );
  color: var(--aloha-foam);
  border-radius: var(--aloha-radius-pebble);
}

.aloha-home-hero__kicker {
  font-family: var(--aloha-font-mono);
  font-size: 0.72rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--aloha-header-text-muted, color-mix(in srgb, var(--aloha-foam) 75%, transparent));
  margin-bottom: 0.75rem;
}

.aloha-home-hero__title {
  font-family: var(--aloha-font-display);
  font-size: clamp(2rem, 5vw, 3.25rem);
  font-weight: 500;
  line-height: 1.08;
  margin-bottom: 1rem;
  color: var(--aloha-foam);
}

.aloha-home-hero__title em {
  font-style: italic;
  font-weight: 400;
  color: var(--aloha-horizon);
}

.aloha-home-hero__lead {
  max-width: 42ch;
  font-size: 1.05rem;
  color: color-mix(in srgb, var(--aloha-foam) 92%, transparent);
  margin-bottom: 1.5rem;
}

.aloha-home-hero__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
}

.aloha-home-hero__cta {
  min-height: var(--aloha-touch);
  padding-inline: 1.5rem;
  border-radius: var(--aloha-radius-pill);
}

.aloha-home-hero__cta--ghost {
  border-color: color-mix(in srgb, var(--aloha-foam) 55%, transparent);
  color: var(--aloha-foam);
}

.aloha-home-hero__cta--ghost:hover {
  background: color-mix(in srgb, var(--aloha-foam) 12%, transparent);
  color: var(--aloha-foam);
}

/* Categorías portada → ver assets/css/aloha-home.css */

.aloha-home-featured {
  margin-bottom: 2.5rem;
}

.aloha-home-featured__title,
.page-home section.ps-featuredproducts h2,
.page-home .featured-products h2 {
  color: var(--aloha-lagoon);
  margin-bottom: 1rem;
}

.aloha-home-featured__empty {
  margin: 0;
  padding: 1.25rem 1.5rem;
  border-radius: var(--aloha-radius-pebble);
  background: color-mix(in srgb, var(--aloha-foam) 90%, white);
  color: var(--aloha-muted);
  border: 1px dashed color-mix(in srgb, var(--aloha-horizon) 45%, transparent);
}

.page-home section.ps-featuredproducts,
.page-home .ps-featuredproducts {
  margin-top: 0.5rem;
  margin-bottom: 2.5rem;
}

/* Checkout: un método, sin «Elegir» duplicado, botón de pedido clicable */
#checkout-payment-step .payment-option__no-js-form,
#checkout-payment-step .ps-hidden-by-js {
  display: none !important;
}

#checkout-payment-step.aloha-single-payment .payment-option__input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}

#checkout-payment-step .payment-option--single .payment-option__label {
  font-weight: 600;
}

#payment-confirmation button.disabled,
#aloha-place-order.disabled {
  pointer-events: auto;
  opacity: 1;
}

.aloha-payment-hint {
  margin: 0.75rem 0 0;
  color: #8a1f2b;
  font-size: 0.95rem;
}

body.page-cart:not(.cart-empty) #aloha-cookie:not([hidden]) {
  bottom: calc(5.75rem + env(safe-area-inset-bottom, 0px));
}

.aloha-cookie {
  position: fixed;
  z-index: 1080;
  right: 1rem;
  bottom: 1rem;
  left: 1rem;
  max-width: 36rem;
  margin-inline: auto;
  padding: 1rem 1.15rem;
  border-radius: 1rem;
  background: var(--aloha-abyss);
  color: var(--aloha-foam);
  box-shadow: var(--aloha-shadow-card-hover);
}

.aloha-cookie__inner {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem 1rem;
  align-items: center;
  justify-content: space-between;
}

.aloha-cookie__text {
  margin: 0;
  flex: 1 1 14rem;
  font-size: 0.9rem;
  line-height: 1.4;
}

.aloha-cookie__text a {
  color: var(--aloha-horizon);
  text-decoration: underline;
}

.aloha-cookie__ok {
  flex: 0 0 auto;
}

.aloha-wa-link {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
}

.aloha-wa-icon {
  width: 1.15em;
  height: 1.15em;
  flex: 0 0 auto;
  display: block;
}

.category-id-12 .category__cover {
  display: none !important;
}

#_desktop_ps_shoppingcart,
#_mobile_ps_shoppingcart,
#_desktop_ps_shoppingcart .ps-shoppingcart,
#_mobile_ps_shoppingcart .ps-shoppingcart {
  overflow: visible;
}

#_desktop_ps_shoppingcart a.header-block__action-btn,
#_mobile_ps_shoppingcart a.header-block__action-btn,
#_mobile_ps_shoppingcart .header-block__action-btn {
  pointer-events: auto;
  position: relative;
  z-index: 2;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 2.75rem;
  min-height: 2.75rem;
  overflow: visible;
  text-decoration: none;
}

@media (max-width: 767.98px) {
  #header .header-block.blockcart .header-block__action-btn,
  #header .header-block--active.blockcart .header-block__action-btn {
    width: 2.75rem;
    padding: 0;
  }
}

.aloha-added {
  position: fixed;
  z-index: 1090;
  top: 5.25rem;
  right: 1rem;
  display: flex;
  align-items: center;
  gap: 0.45rem;
  max-width: min(22rem, calc(100vw - 2rem));
  padding: 0.65rem 1rem;
  border-radius: var(--aloha-radius-pill);
  background: var(--aloha-lagoon);
  color: var(--aloha-foam);
  font-family: var(--aloha-font-body);
  font-size: 0.9rem;
  line-height: 1.3;
  box-shadow: var(--aloha-shadow-card-hover);
  transform: translate3d(1.25rem, 0, 0);
  opacity: 0;
  pointer-events: none;
  transition:
    transform 280ms var(--aloha-ease-out),
    opacity 280ms ease;
}

.aloha-added.is-in {
  transform: translate3d(0, 0, 0);
  opacity: 1;
}

.aloha-added__icon {
  font-size: 1.15rem;
  line-height: 1;
}

.aloha-added__text {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.is-aloha-pulse .header-block__badge {
  animation: aloha-badge-pop 420ms var(--aloha-ease-out);
  transform-origin: center;
}

@keyframes aloha-badge-pop {
  0% {
    transform: scale(1);
  }
  40% {
    transform: scale(1.28);
  }
  100% {
    transform: scale(1);
  }
}

@media (prefers-reduced-motion: reduce) {
  .aloha-added,
  .is-aloha-pulse .header-block__badge {
    transition: none;
    animation: none;
  }
}

.aloha-pay-ok {
  max-width: 36rem;
  margin: 3rem auto;
  padding: 2rem 1.25rem 4rem;
  text-align: center;
}

.aloha-pay-ok h1 {
  font-family: var(--aloha-font-display);
  color: var(--aloha-lagoon);
}

.aloha-pay-ok p {
  color: var(--aloha-muted);
}

/* —— Sobre nosotros (CMS 4) —— */
body.cms-id-4 .columns-container.container,
body.cms-id-4 .columns-container.container-fluid {
  max-width: none;
  width: 100%;
  padding-inline: 0;
}

body.cms-id-4 .columns-container > .row {
  display: block;
  margin: 0;
}

body.cms-id-4 #left-column,
body.cms-id-4 #right-column {
  display: none;
}

body.cms-id-4.page-cms #center-column,
body.cms-id-4 #center-column {
  width: 100%;
  max-width: none;
  flex: none;
  padding: 0;
}

body.cms-id-4.page-cms .page-content,
body.cms-id-4.page-cms .cms-content,
body.cms-id-4.page-cms #content {
  max-width: none;
  font-size: inherit;
  line-height: inherit;
}

body.cms-id-4 .breadcrumb-wrapper,
body.cms-id-4 .breadcrumb {
  margin-bottom: 0;
}

body.cms-id-4 .page-header,
body.cms-id-4 .page-title-section,
body.cms-id-4 h1.h1 {
  display: none;
}

.aloha-about {
  color: var(--aloha-ink);
}

.aloha-about img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.aloha-about figure {
  margin: 0;
}

.aloha-about a {
  color: var(--aloha-sea);
  text-underline-offset: 0.18em;
}

.aloha-about a:hover {
  color: var(--aloha-lagoon);
}

body.cms-id-4.page-cms .aloha-about h2,
body.cms-id-4.page-cms .aloha-about h3,
body.cms-id-4.page-cms .aloha-about h4 {
  font-family: var(--aloha-font-display);
  color: var(--aloha-lagoon);
  border: 0;
  padding: 0;
  margin: 0 0 0.85rem;
}

.aloha-about__hero {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(16rem, 0.9fr);
  gap: clamp(1.5rem, 4vw, 4rem);
  align-items: end;
  padding: clamp(1.75rem, 4.5vw, 3.5rem) clamp(1.15rem, 5vw, 4.5rem) 0;
  max-width: 90rem;
  margin-inline: auto;
}

.aloha-about__title {
  font-size: clamp(2.2rem, 5.4vw, 3.6rem);
  font-weight: 500;
  font-style: normal;
  line-height: 1.05;
  letter-spacing: -0.03em;
  max-width: 10ch;
  margin-bottom: 1.15rem;
}

.aloha-about__lede {
  margin: 0;
  max-width: 38ch;
  font-size: clamp(1.05rem, 1.7vw, 1.22rem);
  line-height: 1.55;
  color: var(--aloha-muted);
}

.aloha-about__hero-media {
  aspect-ratio: 4 / 5;
  max-height: min(78vh, 42rem);
  overflow: hidden;
  border-radius: 2.15rem 0.55rem 2.15rem 2.15rem;
  box-shadow: 0 18px 48px color-mix(in srgb, var(--aloha-abyss) 18%, transparent);
}

.aloha-about__hero-media img {
  object-position: 72% 22%;
  transform: scale(1.04);
  transform-origin: 72% 22%;
}

.aloha-about__story,
.aloha-about__find,
.aloha-about__buy,
.aloha-about__contact {
  max-width: 90rem;
  margin-inline: auto;
  padding-inline: clamp(1.15rem, 5vw, 4.5rem);
}

.aloha-about__story {
  display: grid;
  grid-template-columns: minmax(14rem, 0.72fr) minmax(0, 1.1fr);
  gap: clamp(1.5rem, 4vw, 3.75rem);
  align-items: center;
  padding-top: clamp(3rem, 7vw, 5.5rem);
  padding-bottom: clamp(2.5rem, 6vw, 4.5rem);
}

.aloha-about__story-media {
  aspect-ratio: 3 / 4;
  overflow: hidden;
  border-radius: 0.55rem 2rem 2rem 2rem;
}

.aloha-about__story-copy h3,
.aloha-about__find h3,
.aloha-about__buy h3,
.aloha-about__contact h3,
.aloha-about__place h3 {
  font-size: clamp(1.55rem, 3vw, 2.15rem);
  font-weight: 500;
  line-height: 1.15;
}

.aloha-about__story-copy p,
.aloha-about__buy p {
  margin: 0 0 1rem;
  max-width: 58ch;
  font-size: 1.05rem;
  line-height: 1.65;
}

.aloha-about__find {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(12rem, 0.7fr);
  gap: clamp(1.5rem, 4vw, 3.5rem);
  align-items: end;
  padding-bottom: clamp(2.75rem, 6vw, 4.75rem);
}

.aloha-about__find h3 {
  grid-column: 1 / -1;
}

.aloha-about__dl {
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 1.35rem;
}

.aloha-about__dl > div {
  padding-top: 1.15rem;
  border-top: 1px solid color-mix(in srgb, var(--aloha-lagoon) 14%, transparent);
}

.aloha-about__dl dt {
  font-family: var(--aloha-font-display);
  font-size: 1.35rem;
  font-weight: 500;
  color: var(--aloha-lagoon);
  margin-bottom: 0.3rem;
}

.aloha-about__dl dd {
  margin: 0;
  max-width: 48ch;
  color: var(--aloha-muted);
  line-height: 1.55;
}

.aloha-about__find-media {
  aspect-ratio: 3 / 4;
  overflow: hidden;
  border-radius: 2rem 2rem 0.55rem 2rem;
}

.aloha-about__place {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);
  background: var(--aloha-lagoon);
  color: var(--aloha-foam);
}

.aloha-about__place-inner {
  padding: clamp(2.25rem, 6vw, 4.5rem) clamp(1.15rem, 5vw, 4.5rem);
  display: flex;
  flex-direction: column;
  justify-content: center;
}

body.cms-id-4.page-cms .aloha-about__place h3 {
  color: color-mix(in srgb, var(--aloha-horizon) 70%, var(--aloha-foam));
  margin-bottom: 0.85rem;
}

.aloha-about__address {
  font-family: var(--aloha-font-display);
  font-size: clamp(1.65rem, 3.4vw, 2.45rem);
  font-weight: 400;
  line-height: 1.2;
  letter-spacing: -0.02em;
  margin: 0 0 1.1rem;
  color: var(--aloha-foam);
}

.aloha-about__place-note {
  margin: 0 0 1.5rem;
  max-width: 42ch;
  color: color-mix(in srgb, var(--aloha-foam) 78%, var(--aloha-horizon));
  line-height: 1.55;
}

.aloha-about__place-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.65rem;
  margin: 0;
}

.aloha-about__cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: var(--aloha-touch);
  padding: 0.55rem 1.2rem;
  border-radius: var(--aloha-radius-pill);
  font-family: var(--aloha-font-body);
  font-size: 0.82rem;
  font-weight: 500;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  text-decoration: none;
}

.aloha-about__cta--fill {
  background: var(--aloha-foam);
  color: var(--aloha-abyss);
}

.aloha-about__cta--fill:hover {
  background: #fff;
  color: var(--aloha-abyss);
}

.aloha-about__cta--ghost {
  background: transparent;
  color: var(--aloha-foam);
  border: 1px solid color-mix(in srgb, var(--aloha-foam) 55%, transparent);
}

.aloha-about__cta--ghost:hover {
  background: color-mix(in srgb, var(--aloha-foam) 12%, transparent);
  color: var(--aloha-foam);
}

.aloha-about__place-media {
  min-height: 18rem;
  overflow: hidden;
}

.aloha-about__buy {
  padding-top: clamp(2.75rem, 6vw, 4.5rem);
  padding-bottom: 0.5rem;
}

.aloha-about__contact {
  padding-top: 2rem;
  padding-bottom: clamp(3rem, 7vw, 5rem);
}

.aloha-about__contact-lines {
  display: flex;
  flex-wrap: wrap;
  gap: 0.65rem 1.35rem;
  margin: 0 0 1.75rem;
  font-size: 1.05rem;
}

.aloha-about__sign {
  font-family: var(--aloha-font-display);
  font-size: clamp(1.85rem, 4vw, 2.75rem);
  font-style: italic;
  font-weight: 400;
  color: var(--aloha-lagoon);
  margin: 0 0 1.25rem;
  letter-spacing: -0.03em;
}

.aloha-about__legal {
  margin: 0;
  font-size: 0.82rem;
  color: var(--aloha-muted);
  max-width: 62ch;
}

@media (max-width: 767.98px) {
  .aloha-about__hero,
  .aloha-about__story,
  .aloha-about__find,
  .aloha-about__place {
    grid-template-columns: 1fr;
  }

  .aloha-about__title {
    max-width: none;
  }

  .aloha-about__hero-media,
  .aloha-about__story-media,
  .aloha-about__find-media {
    max-height: 28rem;
    aspect-ratio: 4 / 5;
  }

  .aloha-about__story-media {
    order: -1;
  }

  .aloha-about__place-media {
    min-height: 14rem;
    aspect-ratio: 16 / 10;
  }
}

@media (prefers-reduced-motion: reduce) {
  .aloha-about__hero-media img {
    transform: none;
  }
}
