/** Shopify CDN: Minification failed

Line 132:2 All "@import" rules must come first
Line 6314:0 All "@import" rules must come first

**/
/* START_SECTION:category-bar (INDEX:5) */
/* ===== Category Bar — Naliblu =====
     Fondo fijo #FAF6F1 (no usamos rgb(var(--color-background-rgb)) porque esa
     variable sale del color_scheme de la sección, que aquí no tiene un valor
     que dé exactamente #FAF6F1 — con !important evitamos que ese scheme
     dinámico la vuelva a pisar). */
  .category-bar {
    display: block;
    background: #FAF6F1 !important;
    padding-block: 28px;
  }

  /* 5-column grid a todo el ancho, con gap entre categorías — reparte el
     ancho total disponible de forma uniforme entre las 5, sin comprimir
     ni centrar el conjunto. */
  .category-bar__cards {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 20px;
  }

  .category-bar__card {
    position: relative;
  }

  /* Sin límite de ancho propio, .category-bar__link (el <a>) se estiraba a
     todo el ancho de su celda del grid (align-items:stretch por defecto en
     un item de grid) — mucho más ancho que la imagen/título centrados
     dentro, así que el hueco entre categorías seguía siendo clicable
     aunque el hover ya no se activara ahí. width:fit-content + margin
     auto encoge el enlace a su contenido real (imagen o título, lo que
     sea más ancho) y lo centra en la celda — fuera de ese ancho ya no hay
     enlace debajo del cursor. */
  .category-bar__link {
    display: flex;
    flex-direction: column;
    align-items: center;
    width: fit-content;
    margin-inline: auto;
    gap: 10px;
    text-decoration: none;
  }

  /* Círculo de producto — las 5 fotos vienen ya recortadas al mismo tamaño
     exacto (círculo a bordes del lienzo), sin necesidad de ajuste por CSS.
     clip-path: circle(50%) recorta también el área de hover/click de la
     propia imagen a un círculo real — antes el hover se activaba con todo
     el rectángulo de .category-bar__link (imagen + título + huecos en las
     esquinas fuera del círculo visible); ahora el :hover se dispara sobre
     la imagen y solo dentro de esa forma circular. */
  .category-bar__image {
    display: block;
    width: 100%;
    max-width: 200px;
    height: auto;
    aspect-ratio: 1 / 1;
    object-fit: cover;
    clip-path: circle(50%);
    transition: transform 0.2s ease;
  }

  /* El <a> (.category-bar__link) sigue envolviendo imagen + título, así que
     el texto sigue siendo clicable hacia la misma colección — solo cambia
     dónde se dispara la animación de hover (ahora: encima de la imagen,
     dentro del círculo, no en todo el rectángulo del enlace). */
  .category-bar__image:hover {
    transform: scale(1.03);
  }

  /* Título — SIEMPRE 2 líneas con el corte fijado por idioma
     (custom.category_*_lines en locales, "línea 1|línea 2"), igual que los
     círculos de Tienda (tienda-category-explorer.liquid). Misma familia
     tipográfica que el menú principal (var(--font-heading--family)).
     Flex + align-items:center: si una línea sobresale un poco del ancho
     del círculo, lo hace por igual a los dos lados. Sin max-width (con
     nowrap solo empujaría la línea hacia la derecha). Si la línea más
     larga no cabe en su columna, el script inline de abajo reduce la letra
     de los 5 títulos a la vez. */
  .category-bar__title {
    display: flex;
    flex-direction: column;
    align-items: center;
    font-family: var(--font-heading--family);
    font-size: 17px;
    font-weight: 500;
    color: #7F7F6A;
    text-align: center;
    line-height: 1.3;
  }

  .category-bar__title .cat-line {
    display: block;
    white-space: nowrap;
    text-wrap: nowrap;
    text-align: center;
  }

  @media screen and (max-width: 749px) {
    .category-bar__cards {
      gap: 10px;
      padding-block: 16px;
      /* Margen lateral sutil solo en móvil, para que la 1ª y 5ª categoría
         no queden pegadas al borde de la pantalla. */
      padding-inline: 14px;
    }

    .category-bar__link {
      gap: 6px;
    }

    .category-bar__title {
      font-size: clamp(12px, 2.8vw, 14.5px);
    }
  }
/* END_SECTION:category-bar */
/* START_SECTION:footer (INDEX:26) */
/* ===== Naliblu footer =====
     Dos bloques visualmente separados:
     1) .nb-news-wrap — tarjeta de suscripción independiente, mismo estilo
        que el popup (fondo #DEDED3, esquinas redondeadas, sombra).
     2) .nb-inner — footer inferior (marca/columnas/redes/copyright) con su
        estructura y espaciados ORIGINALES intactos; el único cambio es el
        fondo, ahora marfil #FAF6F1 (antes salvia #d4e4d9).
     Tinta principal #463a2c · secundaria 62% · acento terracota #B44C21
     Tipos: Cormorant Garamond (titulares) + Karla (cuerpo) */
  @import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@400;500;600&family=Karla:wght@300;400;500;600&display=swap');

  .nb-footer {
    --nb-ink: #463a2c;
    --nb-muted: rgba(70, 58, 44, .62);
    --nb-line: rgba(70, 58, 44, .15);
    --nb-input: #FAF6F1;
    --nb-accent: #B44C21;

    background: #FAF6F1;
    color: var(--nb-ink);
    font-family: 'Karla', system-ui, sans-serif;
  }

  /* Línea separadora encima de la tarjeta — mismo .nb-rule que la de abajo.
     Espacio "antes" de la línea: lo aporta el padding-block-end de la
     sección anterior (Destacados), igual que la línea de abajo no tiene
     padding propio antes y depende del padding-bottom de la tarjeta.
     Espacio "después" (hasta la tarjeta): 44px, calculado para que el hueco
     total de arriba (48px de la sección anterior + estos 44px = 92px) sea
     exactamente igual al hueco total de abajo (40px de la tarjeta + 52px de
     .nb-cols = 92px). */
  .nb-top-rule-wrap {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 40px;
  }

  /* En Tienda y en las páginas de colección, la barra de paginación de
     snippets/product-grid.liquid ya pone su propia línea justo encima de
     esta tarjeta (pagination-bar--bottom) — sin esto quedarían las dos
     líneas duplicadas, una detrás de otra. */
  main[data-template='page.tienda'] ~ footer .nb-top-rule-wrap,
  main[data-template^='collection'] ~ footer .nb-top-rule-wrap {
    display: none;
  }

  /* ===== 1) Tarjeta de suscripción — independiente, estilo popup ===== */
  .nb-news-wrap {
    max-width: 1200px;
    margin: 0 auto;
    padding: 44px 40px 40px;
  }

  .nb-news {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 22px;
    max-width: 640px;
    margin: 0 auto;
    background: var(--nb-olive-light, #DEDED3);
    border-radius: 20px;
    padding: 48px 44px;
  }

  .nb-news__copy {
    max-width: 420px;
  }

  .nb-news__copy h2 {
    font-family: 'Cormorant Garamond', serif;
    font-weight: 500;
    font-size: 34px;
    line-height: 1.1;
    margin: 0 0 12px;
  }

  .nb-news__copy p {
    margin: 0;
    font-size: 15.5px;
    line-height: 1.55;
    color: var(--nb-muted);
  }

  .nb-news__form {
    display: flex;
    align-items: center;
    gap: 10px;
    background: var(--nb-input);
    border: 1px solid var(--nb-line);
    border-radius: 999px;
    padding: 7px 8px 7px 24px;
    width: 100%;
    max-width: 400px;
    margin: 0 auto;
    position: relative;
  }

  .nb-news__form input[type='email'] {
    flex: 1;
    border: none;
    background: transparent;
    outline: none;
    /* En móvil, sin este reset, algunos navegadores (Safari/Chrome iOS)
       pintan su propio fondo/chrome nativo sobre el input, tapando el
       marfil de la píldora (.nb-news__form) que hay detrás. */
    -webkit-appearance: none;
    appearance: none;
    box-shadow: none;
    -webkit-text-fill-color: var(--nb-ink);
    font-family: 'Karla', sans-serif;
    font-size: 15px;
    color: var(--nb-ink);
    min-width: 0;
  }

  .nb-news__form button {
    flex: none;
    width: 46px;
    height: 46px;
    border-radius: 999px;
    border: none;
    background: var(--nb-accent);
    color: #fbf6f0;
    cursor: pointer;
    display: grid;
    place-items: center;
    transition: transform .15s ease;
  }

  .nb-news__form button:hover {
    transform: translateX(2px);
  }

  .nb-news__message {
    position: absolute;
    top: 100%;
    left: 24px;
    margin: 6px 0 0;
    font-size: 12.5px;
  }

  .nb-news__message--error {
    color: #b23b1f;
  }

  @media screen and (max-width: 749px) {
    .nb-top-rule-wrap {
      padding-inline: 24px;
    }

    .nb-news-wrap {
      /* Más aire que antes alrededor de la tarjeta en móvil (antes 12px
         arriba / 8px abajo, se notaba apretado). */
      padding: 28px 24px 28px;
    }

    .nb-news {
      padding: 40px 26px 32px;
      gap: 18px;
    }

    /* Evita el zoom automático de iOS al enfocar el input (font-size < 16px)
       — provoca el "scroll lateral" al quedar la página zoomeada. Mismo fix
       que ya tiene snippets/newsletter-popup.liquid. */
    .nb-news__form input[type='email'] {
      font-size: 16px;
    }
  }

  /* ===== 2) Footer inferior — original intacto, solo cambia el fondo ===== */
  .nb-inner {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 40px 30px;
  }

  .nb-rule {
    height: 1px;
    background: var(--nb-line);
    width: 100%;
  }

  /* Columns — 4 columnas de enlaces repartidas a partes iguales en todo el
     ancho que antes ocupaban marca + 4 columnas (ya sin bloque de marca).
     Mismo gap y mismo padding de siempre, así que el ancho total y la
     altura de la sección no cambian.
     Flexbox en vez de grid: cada .nb-col lleva flex:1 1 0, que reparte el
     ancho a partes EXACTAMENTE iguales sin importar cuánto contenido tenga
     cada columna (flex-basis:0 ignora el contenido a la hora de repartir).
     Con grid + minmax(0,1fr) las columnas ya eran iguales en teoría, pero
     el bloque no llegaba al borde derecho — flex es más simple y directo
     para este caso. */
  .nb-cols {
    display: flex;
    width: 100%;
    gap: 32px;
    padding: 52px 0 44px;
  }

  .nb-col {
    display: flex;
    flex-direction: column;
    flex: 1 1 0;
    min-width: 0;
    gap: 4px;
  }

  /* Título de columna — <button> en las 3 columnas de enlaces (acordeón
     solo-JS en móvil), <div> simple en "Síguenos". Reset de <button> para
     que se vea igual que el <div> original: con un solo hijo visible (el
     texto; el chevron está display:none salvo en móvil) justify-content:
     space-between no cambia su posición, así que en desktop es idéntico. */
  .nb-col__title {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    width: 100%;
    background: none;
    border: none;
    padding: 0;
    font: inherit;
    text-align: left;
    font-size: 12px;
    letter-spacing: 1.4px;
    text-transform: uppercase;
    color: var(--nb-muted);
    margin: 0 0 14px;
    cursor: default;
  }

  .nb-col__chevron {
    display: none;
    flex: none;
  }

  .nb-col__chevron svg {
    display: block;
  }

  .nb-col__links {
    display: flex;
    flex-direction: column;
  }

  /* Sin esto, el atributo "hidden" que pone el script en móvil no tendría
     efecto: una regla de autor normal (display:flex de arriba) siempre gana
     al display:none del user-agent para [hidden], sea cual sea su
     especificidad — hace falta declararlo explícitamente aquí. */
  .nb-col__links[hidden] {
    display: none;
  }

  .nb-col a {
    text-decoration: none;
    color: var(--nb-ink);
    font-size: 14.5px;
    padding: 5px 0;
    display: block;
    transition: opacity .15s ease, color .15s ease;
  }

  .nb-col a:hover {
    opacity: .6;
  }

  .nb-social__icons {
    display: flex;
    flex-direction: column;
    gap: 4px;
  }

  .nb-social__icons a {
    display: flex;
    align-items: center;
    gap: 10px;
  }

  .nb-social__icons a:hover {
    opacity: 1;
    color: var(--nb-accent);
  }

  .nb-social__icons svg {
    flex: none;
  }

  /* Bottom bar */
  .nb-bottom {
    display: flex;
    flex-wrap: wrap;
    gap: 16px 28px;
    align-items: center;
    padding-top: 26px;
  }

  .nb-bottom__copy {
    font-size: 13px;
    color: var(--nb-muted);
  }

  @media (max-width: 860px) {
    .nb-cols {
      grid-template-columns: 1fr 1fr;
      gap: 36px 24px;
    }
  }

  @media (max-width: 520px) {
    .nb-cols {
      grid-template-columns: 1fr;
    }
  }

  /* ===== Footer inferior en móvil: tarjeta redondeada independiente =====
     Colocado al final a propósito: todas las reglas de arriba (.nb-inner,
     .nb-cols, .nb-brand, .nb-col, .nb-social__icons a...) son igual de
     específicas que estas — si este bloque no fuera el último del hoja de
     estilos, esas reglas base (que se aplican siempre, no están dentro de
     ningún @media) ganarían el empate de cascada por ir después en el
     código, y estas reglas móviles no se aplicarían nunca.
     .nb-footer ya es marfil #FAF6F1 en todas partes (regla base, más
     arriba) — antes esta tarjeta ponía .nb-footer en transparente para
     contrastar con el fondo real de la página, pero eso dejaba SIN marfil
     el espacio alrededor de la tarjeta de suscripción también (mismo
     .nb-footer). Ahora todo el footer es marfil de forma consistente, y
     esta tarjeta se distingue solo por sus esquinas redondeadas (sin sombra,
     que generaba una franja oscura justo debajo, como un cambio de color). */
  @media screen and (max-width: 749px) {
    .nb-inner {
      background: #FAF6F1;
      border-radius: 24px;
      margin: 0 12px 16px;
      padding: 4px 20px 20px;
    }

    /* Línea separadora entre la tarjeta de suscripción y los desplegables —
       antes se ocultaba en móvil (el hueco entre tarjetas parecía
       suficiente), pero sin ella no se distinguía bien dónde acaba una y
       empieza la otra. */
    .nb-rule--top {
      display: block;
      margin-bottom: 4px;
    }

    .nb-cols {
      display: flex;
      flex-direction: column;
      gap: 0;
      padding: 20px 0 0;
    }

    /* Acordeón: cada bloque (Tienda/Naliblu/Ayuda/Síguenos) con línea
       separadora fina encima, salvo el primero (Tienda), que ahora es el
       primer elemento visible del footer — sin el bloque de marca encima,
       una línea justo bajo el borde redondeado de la tarjeta quedaría rara.
       flex:none anula el flex:1 1 0 de desktop (pensado para repartir 4
       columnas en fila) — en móvil .nb-cols es una columna vertical, así
       que cada acordeón debe medir según su contenido, no estirarse. */
    .nb-col {
      border-top: 1px solid var(--nb-line);
      flex: none;
      gap: 0;
    }

    .nb-cols > .nb-col:first-child {
      border-top: none;
    }

    .nb-col__title {
      margin: 0;
      padding: 16px 0;
      cursor: pointer;
    }

    .nb-col__chevron {
      display: flex;
    }

    .nb-col__links {
      padding: 2px 0 16px;
    }

    /* Síguenos: "SÍGUENOS" y los 3 iconos en una misma fila, alineados a la
       izquierda (antes: título arriba centrado + iconos centrados debajo). */
    .nb-social {
      flex-direction: row;
      align-items: center;
      gap: 14px;
    }

    .nb-social .nb-col__title {
      width: auto;
      flex: none;
      margin: 0;
      justify-content: flex-start;
      cursor: default;
    }

    .nb-social__icons {
      flex-direction: row;
      justify-content: flex-start;
      gap: 16px;
    }

    .nb-social__label {
      display: none;
    }

    /* Copyright alineado a la izquierda (antes centrado) */
    .nb-bottom {
      justify-content: flex-start;
      text-align: left;
      padding-top: 20px;
    }
  }
/* END_SECTION:footer */
/* START_SECTION:header-announcements (INDEX:27) */
.announcement-bar {
    border-block-end: var(--border-bottom-width) solid var(--color-border);
  }

  .announcement-bar__slider {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: center;
    width: fit-content;
    max-width: 100%;
    margin-inline: auto;
    position: relative;

    @media screen and (max-width: 749px) {
      grid-column: 1 / -1;
    }
  }

  /* Sin el tope de 480px de Horizon en desktop: con él, "¡10% de descuento
     en tu primer pedido! Descúbrelo aquí ✨" partía en 2 líneas aunque
     sobrase espacio. Ahora solo envuelve cuando de verdad no cabe (el
     slider ya está limitado a max-width: 100%). */
  .announcement-bar__slides {
    display: grid;
    grid: [stack] auto / [stack] auto;
    max-width: 100%;
  }

  .announcement-bar__slides > * {
    grid-area: stack;
  }

  .announcement-bar__slide {
    transition: opacity 0.5s ease-in-out, visibility 0.5s ease-in-out;
    content-visibility: visible;
    place-content: center;

    &[aria-hidden='true'] {
      opacity: 0;
      visibility: hidden;
    }
  }

  .announcement-bar__text:first-child {
    margin: 0;
  }

  /* Bug real encontrado por inspección en vivo: el bloque (blocks/_announcement.liquid)
     pone --text-align: center como variable CSS en <slideshow-slide>, pero
     ninguna regla del tema la consume (var(--text-align) no aparece en
     ningún selector) — es una variable muerta. El resultado real medido:
     .announcement-bar__text queda con text-align:start (por defecto del
     navegador) ocupando el 100% del ancho de .announcement-bar__slides
     (680px), así que el texto se pega al borde izquierdo de una caja que
     SÍ está bien centrada — parece que "la barra" está descentrada, pero
     es el texto dentro. Poco perceptible en mobile (el texto envuelve a 2
     líneas casi a ancho completo, apenas queda hueco que delate la
     diferencia); muy visible en desktop, donde el texto es bastante más
     corto que los 680px de la caja. */
  .announcement-bar__text {
    text-align: center;
  }

  /* Móvil: nunca más de una línea. El tamaño de letra lo ajusta el script
     inline de esta sección para que el anuncio quepa entero. */
  /* Especificidad doble a propósito: la regla nativa ".custom-typography > *"
     (base.css) pone text-wrap: var(--text-wrap) en este mismo <p>, y en los
     navegadores actuales text-wrap también decide si se puede partir la
     línea — con la misma especificidad ganaba ella y "Descúbrelo aquí ✨"
     bajaba a una segunda línea. */
  @media screen and (max-width: 749px) {
    .announcement-bar .announcement-bar__text {
      white-space: nowrap;
      text-wrap: nowrap;
      /* 2px más de alto: con line-height 1 la parte de abajo de letras
         como la "g" quedaba ligeramente cortada. */
      padding-block-end: 2px;
    }
  }

  .announcement-bar__link {
    position: absolute;
    inset: 0;
  }
/* END_SECTION:header-announcements */
/* START_SECTION:header (INDEX:28) */
body {
    --header-height: 60px;
    --header-group-height: var(--header-height);
    --transparent-header-offset-boolean: 0; /* stylelint-disable-line declaration-property-value-disallowed-list */
  }

  .header {
    /* Set header paddings based on height setting */
    --header-padding: var(--padding-sm);
    --font-paragraph--line-height: 1;
    --header-content-transition-timing: 0s;

    display: block;
    contain: layout style;
    background: transparent;

    a,
    .button,
    .button-secondary,
    .header-actions__action {
      /* reset style from base.css */
      transition: color var(--header-content-transition-timing), border-color var(--header-content-transition-timing);
    }
  }

  #header-component :is(.header-menu, .dropdown-localization) {
    display: none;
  }

  @media screen and (min-width: 750px) {
    #header-component[data-menu-style='menu'] :is(.header-menu, .dropdown-localization) {
      display: flex;
    }
  }

  #header-component[data-menu-style='drawer'] .header__column {
    display: contents;
  }

  @media screen and (min-width: 750px) {
    #header-component[data-menu-style='menu'] .header__navigation-bar-row {
      display: none;
    }
  }

  .header[transparent] {
    --language-button-background-color: transparent;
    --language-button-border-color: transparent;
    --header-content-transition-timing: calc(var(--submenu-animation-speed) - var(--animation-speed-fast))
      var(--animation-speed-fast) var(--ease-out-cubic);

    --closed-underlay-height: 0px;

    /* used to display the appropriate logo based on transparency state */
    --header-logo-display: none;
    --header-logo-inverse-display: block;

    position: absolute;
    top: 0;
    left: 0;
    right: 0;

    z-index: var(--layer-overlay);

    &[transparent='not-sticky'][data-sticky-state='active'],
    &:has(.menu-list__link:not([aria-haspopup]):hover) {
      --header-logo-display: unset;
      --header-logo-inverse-display: unset;
      --color-foreground: inherit;
      --color-foreground-rgb: inherit;
      --color-background: inherit;
      --color-background-rgb: inherit;
      --color-border: inherit;
      --color-border-rgb: inherit;
      --closed-underlay-height: 100%;
    }

    /** For transparent header, apply inherit to rows when menu is not hovered */
    &:not([data-sticky-state='active']):not(:has(.menu-list__link:is(:hover, [aria-expanded='true']))) .header__row {
      --color-foreground: inherit;
      --color-foreground-rgb: inherit;
      --color-border: inherit;
      --color-border-rgb: inherit;
      --color-primary-button-background: inherit;
      --color-primary-button-text: inherit;
    }

    /* Multiple selectors for performance: each simple :has() check is faster than one complex selector with multiple conditions */
    &:has(.mega-menu__list:hover),
    &:has(.menu-list__link:is(:hover, [aria-expanded='true'])),
    &:has(.menu-list__list-item[slot='overflow'] .menu-list__link:is(:hover, [aria-expanded='true'])) {
      --header-logo-display: unset;
      --header-logo-inverse-display: unset;
      --color-foreground: inherit;
      --color-foreground-rgb: inherit;
      --color-background: inherit;
      --color-background-rgb: inherit;
      --color-border: inherit;
      --color-border-rgb: inherit;
      --header-content-transition-timing: var(--submenu-animation-speed) var(--ease-out-cubic);
    }
  }

  /* When top row has transparent background, make it inherit colors from header component */
  [data-transparent-color-scheme='top']:hover .header__row--top,
  [data-transparent-color-scheme='top']:focus-within .header__row--top,
  [data-transparent-color-scheme='both']:hover .header__row--top,
  [data-transparent-color-scheme='both']:focus-within .header__row--top {
    --color-foreground: inherit;
    --color-foreground-rgb: inherit;
    --color-border: inherit;
    --color-border-rgb: inherit;
    --color-primary-button-background: inherit;
    --color-primary-button-text: inherit;
  }

  /* When bottom row has transparent background, make it inherit colors from header component */
  [data-transparent-color-scheme='bottom']:hover .header__row--bottom,
  [data-transparent-color-scheme='bottom']:focus-within .header__row--bottom,
  [data-transparent-color-scheme='both']:hover .header__row--bottom,
  [data-transparent-color-scheme='both']:focus-within .header__row--bottom {
    --color-foreground: inherit;
    --color-foreground-rgb: inherit;
    --color-border: inherit;
    --color-border-rgb: inherit;
    --color-primary-button-background: inherit;
    --color-primary-button-text: inherit;
  }

  .header-section {
    position: relative;
    z-index: var(--layer-heightened);
  }

  /* need default values for non-flash transitions on first overflow menu open */
  #header-component {
    --submenu-height: 0px;
    --full-open-header-height: 0px;
  }

  #header-group:has(#header-component[sticky]) {
    display: contents;
  }

  .header-section:has(> #header-component[sticky='always']),
  .header-section:has(> #header-component[sticky='scroll-up'][data-sticky-state='active']) {
    position: sticky;

    /* Use -1 instead of 0 so intersection observer can track sticky state */
    top: -1px;
    z-index: var(--layer-sticky);
  }

  .header[data-sticky-state] {
    transition: opacity var(--animation-speed) var(--animation-easing);
    opacity: 1;
  }

  .header[data-sticky-state='active'] {
    view-transition-name: sticky-header;
  }

  :active-view-transition-type(empty-cart-drawer) {
    .header[data-sticky-state='active'] {
      view-transition-name: none;
    }
  }

  .header[data-sticky-state='idle'] {
    opacity: 0;
  }

  /* ================================
     * Underlays
     * ================================ */
  .header__underlay {
    position: absolute;
    inset: 0;
  }

  .header__underlay-closed {
    height: var(--closed-underlay-height, 100%);
    z-index: var(--layer-lowest);
    background: linear-gradient(
      var(--color-scheme-top-row) 0 var(--top-row-height),
      var(--color-scheme-bottom-row) var(--top-row-height) var(--header-height)
    );
    transition: height var(--animation-speed-slow) var(--ease-out-cubic);
  }

  .header__underlay-open {
    height: var(--full-open-header-height);
    background: linear-gradient(
      var(--color-scheme-top-row) 0 var(--top-row-height),
      var(--color-scheme-bottom-row) var(--top-row-height) var(--header-height),
      var(--color-submenu) var(--header-height) 100%
    );
    /* header-height is updated via js, the transition works automagically */
    transition: height var(--submenu-animation-speed) var(--ease-out-cubic);
  }

  .header__underlay-open::after {
    content: '';
    position: absolute;
    inset: 0;
    box-shadow: var(--shadow-popover);
    clip-path: inset(var(--header-height) 0 -100px 0); /* stylelint-disable-line */
    transition: height var(--submenu-animation-speed) var(--ease-out-cubic);
  }

  /* When top row has transparent background, make underlay inherit colors from header component */
  [data-transparent-color-scheme='top']:hover,
  [data-transparent-color-scheme='top']:focus-within,
  [data-transparent-color-scheme='both']:hover,
  [data-transparent-color-scheme='both']:focus-within {
    :is(.header__underlay-open, .header__underlay-closed) {
      --color-scheme-top-row: var(--color-background);
    }
  }

  /* When bottom row has transparent background, make underlay inherit colors from header component */
  [data-transparent-color-scheme='bottom']:hover,
  [data-transparent-color-scheme='bottom']:focus-within,
  [data-transparent-color-scheme='both']:hover,
  [data-transparent-color-scheme='both']:focus-within {
    :is(.header__underlay-open, .header__underlay-closed) {
      --color-scheme-bottom-row: var(--color-background);
    }
  }

  [data-submenu-overlap-bottom-row] {
    .header__underlay-open {
      background: linear-gradient(
        var(--color-scheme-top-row) 0 var(--top-row-height),
        var(--color-submenu) var(--top-row-height) 100%
      );
    }

    .header__row--bottom {
      z-index: var(--layer-lowest);
    }
  }

  /* End Underlays ================ */

  .header__row {
    /* The account component uses a different color scheme, but we need to override it to inherit the color of the header row */
    --color-account-icon: var(--color-foreground);

    position: relative;

    /* Overwrite color from color scheme, background is controlled by the underlays */
    background-color: transparent;

    &:has(.mega-menu__list:hover),
    &:has(.menu-list__link[aria-haspopup]:is(:hover, [aria-expanded='true'])),
    &:has(.menu-list__list-item[slot='overflow'] .menu-list__link:is(:hover, [aria-expanded='true'])) {
      /* Only elevate the row when the submenu is open to avoid overlapping other elevated content */
      z-index: var(--layer-heightened);
    }
  }

  .header__row--top:not(.divider--page-width),
  .header__row--top.divider--page-width .header__columns,
  .header__row--bottom {
    border-bottom: var(--border-bottom-width) solid var(--color-border);
  }

  @media screen and (max-width: 749px) {
    .header__row--top:not(.divider--page-width),
    .header__row--top.divider--page-width .header__columns {
      border-bottom-width: var(--border-bottom-width-mobile);
    }
  }

  #header-component[data-menu-style='drawer'] .header__row--top:not(.divider--page-width),
  #header-component[data-menu-style='drawer'] .header__row--top.divider--page-width .header__columns {
    border-bottom-width: var(--border-bottom-width-mobile);
  }

  .header__row.divider--page-width:not(.section--page-width) .header__columns {
    @media screen and (min-width: 750px) {
      padding-inline-start: 0;
      padding-inline-end: 0;
      margin-inline-start: var(--page-margin);
      margin-inline-end: var(--page-margin);
    }
  }

  .header__column {
    display: flex;
    align-items: center;

    /* on mobile, header__column nodes are ignored to create a new grid-template-area based on all visible content */
    @media screen and (max-width: 749px) {
      display: contents;
    }
  }

  .header__column--left,
  .header__column--center {
    gap: var(--gap-xl);
    grid-area: left;
  }

  .header__column--center {
    justify-content: center;
    grid-area: center;

    header-menu:only-child .overflow-menu::part(list) {
      justify-content: center;
    }
  }

  .header__column--right {
    gap: var(--gap-xl);
    justify-content: flex-end;
    grid-area: right;

    .overflow-menu::part(list) {
      justify-content: flex-end;
    }
  }

  .header__columns {
    /* Three column layout */
    --header-left: 1fr;
    --header-center: auto;
    --header-right: 1fr;
    --header-template-columns: var(--header-left) var(--header-center) var(--header-right);

    /* Mobile layout */
    --header-mobile-bookend: 44px;

    display: grid;
    grid-template-areas: 'left center right';
    grid-gap: var(--gap-xl);
    grid-template-columns: var(--header-template-columns);

    /* If menu is in center column */
    &:has(.header__column--center header-menu) {
      --header-center: auto;
      --header-left: minmax(max-content, 1fr);
      --header-right: minmax(max-content, 1fr);
    }

    /* If there is no center column, make the column the menu is in grow eagerly */
    &:where(:not(:has(.header__column--center))) {
      @media screen and (min-width: 750px) {
        --header-template-columns: var(--header-left) var(--header-right);

        grid-template-areas: 'left right';
      }

      /* If the header-menu is in the right column */
      &:has(.header__column--right header-menu) {
        --header-right: auto;
        --header-left: minmax(max-content, 1fr);
      }

      /* If the header-menu is in the left column */
      &:has(.header__column--left header-menu) {
        --header-left: auto;
        --header-right: minmax(max-content, 1fr);
      }
    }

    @media screen and (max-width: 749px) {
      --header-template-columns: var(--header-mobile-bookend) var(--header-mobile-bookend) 1fr
        var(--header-mobile-bookend) var(--header-mobile-bookend);

      grid-template-areas: 'leftA leftB center rightA rightB';
      grid-column: span 3;
      column-gap: 0;
      align-items: center;
      padding-block: 0;
      padding-inline: 0 var(--padding-3xs);

      .header-logo {
        grid-area: center;
      }

      &:not(:has(header-actions)) .search-action {
        grid-area: leftB;
      }

      &:not(:has(shopify-account)) .search-action {
        grid-area: rightA;
      }

      .search-action {
        grid-area: leftB;
      }

      header-actions {
        grid-area: rightB;
      }
    }
  }

  /* not ideal but we need to duplicate these styles for when touch comes into play
    We could avoid the duplication using js to set the data-menu-style attribute on small screens instead of using @media queries */
  #header-component[data-menu-style='drawer'] .header__columns {
    --header-template-columns: var(--header-mobile-bookend) var(--header-mobile-bookend) 1fr
      var(--header-mobile-bookend) var(--header-mobile-bookend);

    grid-template-areas: 'leftA leftB center rightA rightB';
    grid-column: span 3;
    column-gap: 0;
    align-items: center;
    padding-block: 0;
    padding-inline: 0 var(--padding-3xs);

    .header-logo {
      grid-area: center;
    }

    &:not(:has(header-actions)) .search-action {
      grid-area: leftB;
    }

    &:not(:has(shopify-account)) .search-action {
      grid-area: rightA;
    }

    .search-action {
      grid-area: leftB;
    }

    header-actions {
      grid-area: rightB;
    }
  }

  /* Single column layout if there are no columns within */
  .header__columns:not(:has(.header__column)) {
    grid-template-columns: 1fr;
  }

  /* Check for hover support to avoid unnecessary expensive recalculations when tapping on mobile */
  @media (hover: hover) {
    /* Column-specific dimming effect when any interactive element is hovered
        Multiple selectors for performance: each simple :has() check is faster than one complex selector with multiple conditions */
    .header__column:has(header-menu:hover),
    .header__column:has(.header-actions__action:hover),
    .header__column:has(.header__icon--menu:hover) {
      header-menu:not(:hover),
      .header-actions__action:not(:hover),
      .header__icon--menu:not(:hover) {
        opacity: var(--opacity-subdued-text);
        transition: opacity var(--animation-speed) var(--animation-easing);
      }
    }
  }

  /* Ensure smooth transitions for all interactive elements */
  header-menu,
  .header-actions__action,
  .header__icon--menu {
    transition: opacity var(--animation-speed) var(--animation-easing);
  }

  /* Header action button styles */
  .header-actions__action {
    --button-color: var(--color-foreground);
    color: var(--button-color);
    cursor: pointer;
    display: flex;
    justify-content: center;

    &:hover {
      --button-color: var(--color-foreground);
    }
  }

  .header-actions__action:not(.account-button) .svg-wrapper {
    height: var(--button-size);
    width: var(--button-size);
  }

  .header-actions__action:not(.account-button) svg {
    width: var(--icon-size-md);
    height: var(--icon-size-md);
  }

  .header:has(#Details-menu-drawer-container[open]) {
    contain: style;
  }

  .header.header--compact {
    --header-padding: var(--padding-2xs);
  }

  .header__columns {
    --padding-block-start: var(--header-padding);
    --padding-block-end: var(--header-padding);
  }

  .header:not(.header--compact) .header__row--bottom {
    --header-padding: var(--padding-xs);
  }

  .header--collapse-row-paddings {
    .header__row--top .header__columns {
      --padding-block-end: 0px;
    }

    .header__row--bottom .header__columns {
      --padding-block-start: 0px;
    }
  }

  /* When the header is transparent, add a margin to a potential header-section below it */
  .header-section:has(.header[transparent]) + .shopify-section {
    margin-top: var(--header-height);
  }

  /* When the header is transparent, and when there is no header-section below it, offset the first main-section with
     * the height of the header
     */

  main > .shopify-section:first-child .section:not(.disable-section-top-offset) {
    &.spacing-style,
    .spacing-style {
      --section-top-offset: calc(var(--header-height) * var(--transparent-header-offset-boolean));

      /* Any nested sections should not be offset */
      :is(.spacing-style, .inherit-spacing) {
        --section-top-offset: 0px;
      }
    }

    /* Make sticky content immediately stick to the top of the page */
    .sticky-content {
      margin-top: calc(var(--header-height) * var(--transparent-header-offset-boolean) * -1);
    }
  }

  /* Megamenu push-down spacer — expands below the header to push hero content down */
  .megamenu-pusher {
    height: var(--megamenu-push-height, 0px);
    overflow: hidden;
    transition: height var(--submenu-animation-speed, 0.35s) var(--ease-out-cubic, cubic-bezier(0.4, 0, 0.2, 1));
  }

  /* Optimize layout performance for hidden menus */
  .header-menu .menu-list__submenu {
    content-visibility: auto;
    contain-intrinsic-size: 0px 500px;
  }

  /* Force visibility when open/animating and in overflow submenu to prevent layout issues */
  .header-menu details[open] .menu-list__submenu,
  .header-menu .menu-list__submenu[data-active],
  .header-menu .menu-list__list-item[slot='overflow'] .menu-list__submenu {
    content-visibility: visible;
  }

  /* Dropdown Localization Styles */
  .dropdown-localization__button {
    display: flex;
    position: relative;
    align-items: center;
    gap: 4px;
    font-family: var(--menu-localization-font);
    font-size: var(--menu-localization-font-size);
    font-weight: var(--menu-top-level-font-weight);
    padding-inline: var(--padding-2xs);
    margin-inline: calc(-1 * var(--padding-2xs));
  }

  .dropdown-localization__button .svg-wrapper.icon-caret {
    height: var(--icon-size-xs);
    width: var(--icon-size-xs);
    right: var(--margin-xs);
    top: calc(50% - var(--padding-2xs));
    flex-shrink: 0;
    transition: transform var(--animation-speed) var(--animation-easing);
  }

  .dropdown-localization__button .icon-flag {
    width: var(--menu-localization-font-size, var(--icon-size-sm));
    height: var(--menu-localization-font-size, var(--icon-size-sm));
    clip-path: circle(50%); /* stylelint-disable-line */
    background-position: center;
    background-size: cover;
    margin-inline-end: 4px;
    position: relative;
  }

  .dropdown-localization__button .icon-flag::after {
    content: '';
    position: absolute;
    inset: 0;
    box-shadow: inset 0 0 var(--size-shadow) var(--color-shadow);
    border-radius: 50%;
  }

  .dropdown-localization__button[aria-expanded='true'] .icon-caret svg {
    transform: rotate(180deg);
  }

  .dropdown-localization__button,
  .dropdown-localization__button:hover {
    box-shadow: none;
    background-color: transparent;
    border-color: transparent;
  }

  dropdown-localization-component .localization-form__list {
    max-height: 20.5rem;
  }

  .localization-wrapper {
    position: fixed;
    z-index: var(--layer-raised);
    border-radius: var(--style-border-radius-popover);
    transition-property: display, opacity, translate;
    transition-duration: 0.3s;
    transition-timing-function: var(--ease-out-quad);
    transition-behavior: allow-discrete;
    translate: 0 20px;
    opacity: 0;
  }

  .localization-wrapper:not([hidden]) {
    translate: 0 0;
    opacity: 1;
  }

  @starting-style {
    .localization-wrapper:not([hidden]) {
      translate: 0 20px;
      opacity: 0;
    }
  }

  dropdown-localization-component {
    position: relative;
    background-color: transparent;
  }

  dropdown-localization-component .country-filter {
    position: relative;
    padding: 8px;
  }

  dropdown-localization-component .country-filter__input {
    border: none;
  }

  dropdown-localization-component .localization-form__list-item {
    margin-inline: 8px;
  }

  dropdown-localization-component .localization-wrapper {
    box-shadow: var(--shadow-popover);
    border: var(--style-border-popover);
    background-color: var(--color-background);
    max-height: 27.5rem;
    position: absolute;
    top: calc(100% + 10px);
    z-index: calc(var(--layer-header-menu) + 1);
  }

  dropdown-localization-component .localization-wrapper.right-bound {
    right: 0;
    left: unset;
  }

  dropdown-localization-component .localization-wrapper.left-bound {
    left: -8px;
    right: unset;
  }

  /* Additional specificity due to dropdown-localization-component getting a low score */
  dropdown-localization-component .language-selector.language-selector {
    padding: 10px 8px 10px 16px;
  }

  dropdown-localization-component .localization-form__currency {
    width: max-content;
    opacity: 0;
    visibility: hidden;
    transition: none;
  }

  dropdown-localization-component .localization-form__select:hover {
    background-color: rgb(var(--color-primary-hover-rgb) / var(--opacity-8));
  }

  dropdown-localization-component
    :is(
      .localization-form__list-item:hover,
      .localization-form__list-item[aria-selected='true'],
      .localization-form__list-item[aria-current='true']
    )
    .localization-form__currency {
    opacity: 1;
    color: var(--color-foreground-muted);
    transition: opacity var(--animation-speed-slow) var(--animation-easing);
    visibility: visible;
  }

  .dropdown-localization .language-selector:where(:not(.top-shadow)) {
    font-weight: var(--menu-top-level-font-weight);
  }

  .dropdown-localization:not(dropdown-localization-component) .language-selector {
    font-family: var(--menu-localization-font);
    font-size: var(--menu-localization-font-size);
  }


  /* ===== NALIBLU: header ===== */

  /* Fondo unificado #FAF6F1 + línea divisoria pegada al header sticky.
     El color visible real NO lo pinta el fondo de #header-component: lo pinta
     .header__underlay-closed/-open, un div hijo position:absolute;inset:0 que
     dibuja un linear-gradient() con las variables --color-scheme-top-row /
     --color-scheme-bottom-row. Esas variables se definen inline en el propio
     <header-component style="..."> a partir de color_scheme_top (ajustes del
     tema), así que un "background" normal aquí queda tapado por ese gradiente.
     Hay que sobreescribir esas mismas variables, con !important para ganarle
     al valor inline. */
  #header-component {
    --color-scheme-top-row: #FAF6F1 !important;
    --color-scheme-bottom-row: #FAF6F1 !important;
    background: #FAF6F1;
    border-bottom: 1px solid #e0dbd2;
  }

  /* Menú centrado: logo izq | menú centrado | iconos der (layout por defecto
     del tema) — esta regla NO hace nada que el propio CSS nativo no haga ya
     (ver la regla ".header__columns:has(.header__column--center header-menu)"
     más arriba en este mismo archivo, que fija --header-left/--header-right
     a "minmax(max-content, 1fr)"). Aquí se sobreescribía con "1fr" a secas,
     sin el minmax — eso permitía que la columna del logo se encogiera por
     debajo de su ancho real entre ~820-1000px (el rango donde el menú
     "menu-style" sigue activo porque overflow-list aún muestra sus 2
     elementos mínimos, pero la cabecera entera no tiene sitio real), y como
     el logo en sí no se encoge visualmente, se salía de su celda y quedaba
     superpuesto a "Inicio"/"Tienda". Quitada del todo: con el minmax nativo,
     a partir de 1280px se comporta exactamente igual que antes (no cambia
     nada ahí), y en móvil no aplica (ya estaba dentro de min-width: 750px). */

/* =====================================================
   NALIBLU — Selector idioma minimalista integrado
   ===================================================== */

/* Contenedor del selector */
#header-component .dropdown-localization {
  display: flex !important;
  align-items: center !important;
  gap: 2px !important;
  background: transparent !important;
  position: relative !important;
}

@media screen and (max-width: 749px) {
  #header-component .dropdown-localization {
    display: none !important;
  }
}

/* Selector visible: Español */
#header-component .dropdown-localization .language-selector,
#header-component .dropdown-localization .localization-form__select,
#header-component .dropdown-localization select {
  appearance: none !important;
  -webkit-appearance: none !important;

  background: transparent !important;
  background-color: transparent !important;
  border: none !important;
  box-shadow: none !important;

  color: #3a2e24 !important;
  font-size: 16px !important;
  line-height: 1 !important;

  padding: 0 18px 0 0 !important;
  margin: 0 !important;

  min-height: auto !important;
  height: auto !important;
  width: auto !important;

  cursor: pointer !important;
}

/* Flechita más cerca del idioma */
#header-component .dropdown-localization::after {
  content: "⌄";
  position: absolute;
  right: 0;
  top: 50%;
  transform: translateY(-48%);
  color: #3a2e24;
  font-size: 16px;
  line-height: 1;
  pointer-events: none;
}

/* Elimina flechas/iconos nativos que separan demasiado */
#header-component .dropdown-localization svg,
#header-component .dropdown-localization .svg-wrapper,
#header-component .dropdown-localization .icon-caret {
  display: none !important;
}

/* Hover/focus del selector visible */
#header-component .dropdown-localization:hover,
#header-component .dropdown-localization:focus-within,
#header-component .dropdown-localization .language-selector:hover,
#header-component .dropdown-localization .language-selector:focus,
#header-component .dropdown-localization .localization-form__select:hover,
#header-component .dropdown-localization .localization-form__select:focus,
#header-component .dropdown-localization select:hover,
#header-component .dropdown-localization select:focus {
  background: transparent !important;
  background-color: transparent !important;
  border: none !important;
  box-shadow: none !important;
  color: #3a2e24 !important;
}

/* =====================================================
   NALIBLU — Selector idioma sin flecha
   ===================================================== */

#header-component .dropdown-localization,
#header-component .dropdown-localization .language-selector,
#header-component .dropdown-localization .localization-form,
#header-component .dropdown-localization .localization-form__select,
#header-component .dropdown-localization select {
  background: transparent !important;
  background-color: transparent !important;
  border: none !important;
  border-color: transparent !important;
  box-shadow: none !important;
  color: #3a2e24 !important;
}

/* Elimina flecha nativa y deja el texto limpio */
#header-component .dropdown-localization select,
#header-component .dropdown-localization .language-selector,
#header-component .dropdown-localization .localization-form__select {
  appearance: none !important;
  -webkit-appearance: none !important;
  -moz-appearance: none !important;

  background-image: none !important;
  padding: 0 !important;
  margin: 0 !important;

  min-height: auto !important;
  height: auto !important;
  line-height: 1 !important;
  width: auto !important;

  cursor: pointer !important;
}

/* Elimina cualquier flecha extra que hayamos creado antes */
#header-component .dropdown-localization::after,
#header-component .dropdown-localization::before,
#header-component .dropdown-localization svg,
#header-component .dropdown-localization .svg-wrapper,
#header-component .dropdown-localization .icon-caret {
  display: none !important;
  content: none !important;
}

/* Hover/focus limpio */
#header-component .dropdown-localization:hover,
#header-component .dropdown-localization:focus-within,
#header-component .dropdown-localization select:hover,
#header-component .dropdown-localization select:focus,
#header-component .dropdown-localization .language-selector:hover,
#header-component .dropdown-localization .language-selector:focus,
#header-component .dropdown-localization .localization-form__select:hover,
#header-component .dropdown-localization .localization-form__select:focus {
  background: transparent !important;
  background-color: transparent !important;
  border: none !important;
  box-shadow: none !important;
  color: #3a2e24 !important;
}
/* END_SECTION:header */
/* START_SECTION:layered-slideshow (INDEX:34) */
/* ===== Naliblu: fade slideshow (replaces book/layered effect) ===== */

  .layered-slideshow-section {
    position: relative;
    border-bottom: 1px solid #e0dbd2;
  }

  layered-slideshow-component {
    display: block;
    width: 100%;
  }

  .layered-slideshow__container {
    --radius: calc(var(--corner-radius, 1) * 1rem);
    --border-color: var(--color-background);
    width: 100%;
    position: relative;
    container-type: inline-size;
    border-radius: var(--radius);
    overflow: hidden;
  }

  .layered-slideshow__container:not([size='auto']) {
    height: 100%;
  }

  .layered-slideshow__container[size='auto'] {
    height: auto;
  }

  @media screen and (min-width: 750px) {
    layered-slideshow-component {
      min-height: var(--layered-min-height-desktop, 0px);
    }
  }

  /* Dot navigation — bottom-right, above arrows */
  .layered-slideshow__tablist {
    position: absolute;
    bottom: 56px;
    right: 20px;
    left: auto;
    display: flex;
    gap: 7px;
    pointer-events: none;
    z-index: var(--layer-raised);
  }

  .layered-slideshow__tablist button {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    border: none;
    background: rgba(0, 0, 0, 0.22);
    pointer-events: all;
    cursor: pointer;
    padding: 0;
    flex-shrink: 0;
    outline: none;
    transition: background 0.2s ease, transform 0.2s ease;
  }

  .layered-slideshow__tablist button[aria-selected='true'] {
    background: rgba(0, 0, 0, 0.8);
    cursor: default;
    transform: scale(1.3);
  }

  .layered-slideshow__tablist button:focus-visible {
    outline: 2px solid #000;
    outline-offset: 3px;
  }

  /* Stacked panels */
  .layered-slideshow__panels {
    position: relative;
    width: 100%;
    height: 100%;
  }

  .layered-slideshow__panel {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    border-radius: var(--radius);
    overflow: hidden;
    pointer-events: none;
    z-index: 0;
  }

  .layered-slideshow__panel:not([inert]) {
    pointer-events: auto;
    z-index: 1;
  }

  .layered-slideshow__panel-content {
    position: absolute;
    inset: 0;
    border: var(--border-width) solid var(--border-color);
    border-radius: var(--radius);
    overflow: hidden;
    width: 100%;
    height: 100%;
    box-sizing: border-box;
  }

  .layered-slideshow__panel-content :is(img, video, svg) {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
  }

  .layered-slideshow__video-poster {
    z-index: 1;
  }

  .layered-slideshow__video {
    z-index: 0;
  }

  .layered-slideshow__panel:not([inert]) .layered-slideshow__video-poster {
    opacity: 0;
  }

  .layered-slideshow__content {
    height: 100%;
    position: relative;
    z-index: 1;
  }

  .layered-slideshow__content > * {
    margin: auto;
  }

  .layered-slideshow__content.background-transparent {
    background-color: transparent;
  }

  /* Fade transition */
  @media (prefers-reduced-motion: no-preference) {
    .layered-slideshow__panel {
      opacity: 0;
      transition: opacity 0.6s ease;
    }

    .layered-slideshow__panel:not([inert]) {
      opacity: 1;
    }

    .layered-slideshow__video-poster {
      transition: opacity 0.3s ease;
    }

    .layered-slideshow__content {
      opacity: 0;
      transform: translateY(0.5lh);
      transition: opacity 0.48s, transform 0.48s;
    }

    .layered-slideshow__panel:not([inert]) .layered-slideshow__content {
      opacity: 1;
      transform: translateY(0);
      transition-delay: 0.24s;
    }
  }

  @media (prefers-reduced-motion: reduce) {
    .layered-slideshow__panel[inert] {
      visibility: hidden;
    }

    .layered-slideshow__panel:not([inert]) {
      visibility: visible;
    }
  }

  /* Disable transitions during instant tab changes */
  .layered-slideshow__container[data-instant-transitions] .layered-slideshow__panel,
  .layered-slideshow__container[data-instant-transitions] .layered-slideshow__content {
    transition: none;
  }

  /* Mobile */
  @media screen and (max-width: 749px) {
    .layered-slideshow__container:not([size='auto']) {
      min-height: var(--layered-panel-height-mobile, 260px);
      height: var(--layered-panel-height-mobile, 260px);
    }

    .layered-slideshow__tablist {
      right: 14px;
      bottom: 52px;
    }
  }

  /* Navigation arrows — bottom-right, same height as dots */
  .layered-slideshow__arrows {
    position: absolute;
    bottom: 14px;
    right: 20px;
    display: flex;
    gap: 6px;
    z-index: var(--layer-raised);
  }

  .layered-slideshow__arrow {
    width: 30px;
    height: 30px;
    border-radius: 50%;
    border: 1.5px solid rgba(var(--color-foreground-rgb), 0.35);
    background: rgba(var(--color-background-rgb), 0.55);
    color: rgb(var(--color-foreground-rgb));
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    transition: background 0.15s ease, border-color 0.15s ease;
  }

  .layered-slideshow__arrow:hover {
    background: rgba(var(--color-background-rgb), 0.9);
    border-color: rgba(var(--color-foreground-rgb), 0.7);
  }

  .layered-slideshow__arrow .svg-wrapper,
  .layered-slideshow__arrow svg {
    width: 13px;
    height: 13px;
    display: flex;
  }

  @media screen and (max-width: 749px) {
    .layered-slideshow__arrows {
      right: 14px;
      bottom: 14px;
    }
  }

  /* ===== NALIBLU: split layout (izq texto 46% · der imagen 54%) ===== */

  /* 0. Altura del carrusel — la sección tiene el ajuste "height" en "auto",
     lo que hace que .layered-slideshow__container[size='auto'] use
     height:auto (regla del tema, ver más arriba en este archivo) y tome su
     altura del CONTENIDO DE TEXTO, no de la foto — con el texto siendo
     bastante más bajo que ancho, el panel salía muy panorámico (~400-450px
     de alto con todo el ancho de la pantalla), obligando a
     background-size:cover a recortar mucho la foto verticalmente para
     rellenar ese hueco tan ancho y bajo.
     Se fuerza aquí una altura fija y más generosa (mismo selector que la
     regla del tema, para poder pisarla) — con menos diferencia entre ancho
     y alto del panel, cover necesita recortar mucho menos de cada foto. */
  @media screen and (min-width: 750px) {
    .layered-slideshow__container[size='auto'] {
      height: 640px;
    }
  }

  /* Mobile: altura en px fijo (540px) rompía en iPhones "normales" (~375-
     390px de ancho) porque esa misma altura, aplicada a un ancho más
     estrecho que el iPhone Pro Max (~430px) con el que se calibró, da una
     proporción alto/ancho más extrema (375/540 ≈ 0.69 vs 430/540 ≈ 0.80)
     — object-fit: cover tiene que ampliar más la foto para cubrir ese
     hueco relativamente más alto, recortando de más. aspect-ratio en vez
     de height fijo mantiene la MISMA proporción (y por tanto el mismo
     nivel de recorte/zoom) en cualquier ancho de iPhone; max-height evita
     que se dispare en anchos grandes cerca del breakpoint de 749px. */
  @media screen and (max-width: 749px) {
    .layered-slideshow__container[size='auto'] {
      /* La causa real de "no cambia nada": este elemento tiene
         container-type: inline-size (regla de más arriba, para el resto
         del tema) — combinado con eso, aspect-ratio no tenía NINGÚN
         efecto aquí, confirmado forzándolo por JS con !important desde
         Chrome en vivo (no cambiaba el alto) mientras que forzar `height`
         directo sí funcionaba al instante. Todos los intentos anteriores
         con aspect-ratio (430/540 → .../750 → .../1500) nunca hicieron
         nada — por eso "seguía igual" pase lo que pusiera. Alto fijo en
         px, que sí funciona; ya no escala con el ancho exacto de cada
         iPhone como se buscaba originalmente, pero es preferible a que no
         haga nada en absoluto. */
      /* 580px se veía demasiado alto. "Le falta un poquito" (tu captura)
         corresponde a la altura rota de antes (~291-300px reales, cuando
         aspect-ratio no hacía nada) — ahí "Cesto" casi cabía (necesita
         294px) pero "Detalles con alma" (la más alta, 326px) se cortaba
         claramente, que era justo el bug original que arrancó todo esto.
         No puedo bajar hasta ~300-320 sin reproducir ese corte. 410px es
         el mínimo con margen limpio para que quepan las 5 (la más alta,
         Detalles, termina a 326px) sin tocar los puntos de abajo. Ajuste
         fino a 405px (margen ~17px en "Detalles con alma"). */
      height: 405px !important;
    }
  }

  /* 1. Ocultar solo vídeo/poster — la imagen (nativa del editor, o la de
     respaldo mientras no se asigne una, o el placeholder del tema si ni
     eso aplica) ahora SÍ se muestra: es la propia foto de fondo, ver
     regla .layered-slideshow__image más abajo. */
  .layered-slideshow__panel-content > video,
  .layered-slideshow__video-poster {
    display: none !important;
  }

  /* Imagen a sangre en todo el slide — nativa del editor (block.settings.
     image_1) si hay una asignada, si no la de respaldo definida en
     blocks/_layered-slide.liquid, si tampoco el placeholder del tema. */
  .layered-slideshow__image {
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    z-index: 0;
  }

  /* 2. Sin borde en panel-content */
  .layered-slideshow__panel-content {
    border: none !important;
  }

  /* 3. Desktop: split layout */
  @media screen and (min-width: 750px) {
    .layered-slideshow__panel-content {
      display: flex !important;
      flex-direction: row !important;
      align-items: stretch !important;
      background: #EADACB !important;
    }

    /* Columna izquierda: texto — padding aumentado ~20% */
    .layered-slideshow__content {
      width: 46% !important;
      flex-shrink: 0 !important;
      height: auto !important;
      padding: 80px 32px 80px 56px !important;
      display: flex !important;
      flex-direction: column !important;
      justify-content: center !important;
      background: transparent !important;
      box-sizing: border-box;
      position: relative;
      z-index: 1;
    }

    .layered-slideshow__content > * {
      margin: 0 !important;
    }

    /* Degradado de legibilidad sobre la foto (que ahora es la propia
       .layered-slideshow__image, ver más arriba) — capa aparte, ya no
       apilado en el mismo background-image que la foto, para poder usar
       una imagen <img> nativa/editable debajo. Valores concretos por
       slide en el bloque {% style %} de más abajo (necesita Liquid/
       asset_url para el caso de respaldo, que {% stylesheet %} no admite). */
    .layered-slideshow__panel-content::after {
      content: '';
      position: absolute;
      inset: 0;
      z-index: 0;
    }
  }

  /* 4. Mobile: la imagen vuelve a ser a sangre completa (hereda la regla
     universal .layered-slideshow__image de más arriba, sin overrides aquí)
     y el texto+botón se superponen encima, en la esquina superior-
     izquierda — la zona clara/vacía que tiene cada foto ahí (pared o mesa,
     antes de llegar al objeto principal). Nada de esto afecta a desktop,
     que sigue con su layout de columnas de siempre (regla "3" más arriba). */
  @media screen and (max-width: 749px) {
    /* Línea fina visible en el borde inferior de algunos slides (p.ej.
       "Kits Naliblu"): .layered-slideshow-section tiene un border-bottom
       fijo de 1px que existe en los 5 slides, pero solo se nota donde el
       color del borde de la foto no se camufla bien con ese beige. Quitado
       solo en mobile (en desktop no se reportó el problema y se deja tal
       cual). */
    .layered-slideshow-section {
      border-bottom: none;
    }

    .layered-slideshow__panel-content {
      background: #EADACB !important;
    }

    /* Sin degradado global: el contraste del texto lo da el fondo
       semitransparente de .layered-slideshow__content (ver abajo), no un
       oscurecimiento de toda la foto. */
    .layered-slideshow__panel-content::after {
      content: none;
    }

    /* Tarjeta flotante semitransparente (crema) con el texto encima de la
       foto — posición y ancho por defecto; cada slide la ajusta ligeramente
       más abajo según su propia zona clara (ver bloque nth-child). */
    .layered-slideshow__content {
      position: absolute !important;
      inset: auto auto auto 0 !important;
      top: 24px !important;
      left: 20px !important;
      /* Ancho adaptable al texto en vez de un % fijo adivinado: fit-content
         encoge la tarjeta a lo que su contenido necesita realmente, y
         max-width (58% aquí, cada slide ajusta el suyo más abajo) actúa
         solo como tope de seguridad para no invadir la zona con foto. Antes
         había además un max-width:240px en px fijos que en la práctica
         anulaba casi todos los cambios de % que se iban probando — quitado. */
      width: fit-content !important;
      max-width: 58%;
      height: auto !important;
      padding: 16px 16px 24px !important;
      background: linear-gradient(135deg, rgba(250, 246, 241, 0.42) 0%, rgba(250, 246, 241, 0.20) 100%) !important;
      backdrop-filter: none;
      -webkit-backdrop-filter: none;
      border: 1px solid rgba(255, 255, 255, 0.55);
      box-shadow: 0 8px 30px rgba(59, 42, 28, 0.08);
      border-radius: 16px;
      display: flex !important;
      flex-direction: column !important;
      justify-content: flex-start !important;
      align-items: flex-start !important;
      box-sizing: border-box;
      z-index: 1;
    }

    .layered-slideshow__content > * {
      margin: 0 !important;
    }

    /* Sin text-shadow: con el fondo ahora casi opaco (0.88) + blur(10px),
       el contraste ya no depende de una sombra oscura — y con los nuevos
       colores de texto (todos oscuros: #B44C21/#3B2A1C/#5E4B3B) una sombra
       oscura debajo ensuciaría el texto en vez de ayudar. */

    /* Ajuste por slide, según las 3 referencias (caru1/caru2/caru3): la
       zona clara de cada foto varía ligeramente en alto y ancho.
       1 = Kits Naliblu (puerta): zona clara más alta y ancha, casi toda la
           mitad izquierda de la foto.
       2 = Detalles con alma (caja): zona algo más estrecha, la caja
           personalizada empieza a aparecer más pronto.
       3 = Cesto de los tesoros (cesto): zona más estrecha y algo más baja,
           el cesto ocupa buena parte del lado izquierdo también. */
    /* Anchos: base 58% (Jugar y aprender / Crecer con calma). Los otros 3
       llevan un pelín más para que una palabra/símbolo concreto no salte
       de línea solo — pedido explícito, ajuste fino, no cambia zona/top. */
    .layered-slideshow__panel:nth-child(1) .layered-slideshow__content {
      top: 24px !important;
      max-width: 70%;
    }

    .layered-slideshow__panel:nth-child(2) .layered-slideshow__content {
      top: 24px !important;
      max-width: 59%;
    }

    .layered-slideshow__panel:nth-child(3) .layered-slideshow__content {
      top: 20px !important;
      /* 58% se quedaba corto solo en iPhones muy pequeños (~320-350px):
         "Descubrir materiales →" no cabía entera y la flecha saltaba de
         línea sola. Subido a 66% + nowrap de seguridad en el botón, solo
         para este slide. */
      max-width: 66%;
    }

    .layered-slideshow__panel:nth-child(3) .layered-slideshow__content .button,
    .layered-slideshow__panel:nth-child(3) .layered-slideshow__content a.button {
      white-space: nowrap;
    }

    .layered-slideshow__panel:nth-child(4) .layered-slideshow__content {
      max-width: 62%;
    }
  }

  /* 5. Tipografía: título */
  .layered-slideshow__content h2,
  .layered-slideshow__content h3 {
    font-size: 2rem !important;
    font-weight: 500 !important;
    color: #faf6f1 !important;
    line-height: 1.2 !important;
    max-width: 380px;
    /* Reparte el texto de forma más uniforme entre líneas en vez de
       llenar cada línea al máximo — evita que una palabra o el emoji
       final se quede solo en su propia línea ("y", "que", "💡"...). Si el
       navegador no lo soporta, simplemente no hace nada (no rompe nada). */
    text-wrap: balance;
  }

  /* Mobile solo (desktop no se toca, sigue con su degradado oscuro de
     siempre). Etiqueta y descripción son ambas <p> (sin clase propia que
     las distinga) — se usan :first-of-type/:last-of-type dentro de la
     tarjeta, que en las 5 slides siguen el mismo orden: etiqueta (p) →
     subtítulo (h2/h3) → descripción (p) → botón (a). */
  @media screen and (max-width: 749px) {
    /* Etiqueta: quitado el fondo pill terracota — vuelve a ser solo
       texto, único elemento en mayúsculas. Los 3 textos comparten el
       mismo text-shadow (glow claro) para leerse bien sobre la foto
       ahora que la tarjeta es mucho más transparente. */
    .layered-slideshow__content p:first-of-type {
      display: block;
      background: none !important;
      color: #4F5B43 !important;
      padding: 0 !important;
      border-radius: 0;
      font-size: 11px !important;
      font-weight: 700 !important;
      letter-spacing: 0.12em;
      text-transform: uppercase;
    }

    .layered-slideshow__content h2,
    .layered-slideshow__content h3 {
      color: #2E2015 !important;
      text-transform: none !important;
    }

    .layered-slideshow__content p:last-of-type {
      color: #3B2A1C !important;
      font-weight: 500 !important;
      text-transform: none !important;
    }

    .layered-slideshow__content p:first-of-type,
    .layered-slideshow__content h2,
    .layered-slideshow__content h3,
    .layered-slideshow__content p:last-of-type {
      text-shadow: 0 0 12px rgba(250, 246, 241, 0.7);
    }
  }

  /* 5b. Colores de texto de los bloques text (custom-color es la clase que activa var(--color)) */
  .layered-slideshow__content .custom-color,
  .layered-slideshow__content .custom-color * {
    color: var(--color) !important;
  }

  /* 5c. Fallback para párrafos sin custom-color */
  .layered-slideshow__content p {
    color: rgba(250, 246, 241, 0.9);
  }

  /* 6. Botón: esquema invertido — por defecto relleno de verde salvia con
     texto marfil; al hover, relleno marfil con texto salvia. El contorno
     cambia de tono en cada estado para seguir siendo visible sobre cada
     fondo (un borde salvia sobre fondo salvia, o marfil sobre marfil,
     se volvería invisible). */
  .layered-slideshow__content .button,
  .layered-slideshow__content a.button {
    background: #A8A791 !important;
    color: #3B2A1C !important;
    border: 1.5px solid rgba(250, 246, 241, 0.5) !important;
    border-radius: 24px !important;
    padding: 10px 22px !important;
    font-size: 0.875rem !important;
    box-shadow: none !important;
    text-decoration: none;
    margin-top: 6px;
    transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease !important;
  }

  .layered-slideshow__content .button:hover,
  .layered-slideshow__content a.button:hover {
    background: #FAF6F1 !important;
    color: #7F7F6A !important;
    border-color: rgba(127, 127, 106, 0.4) !important;
    text-decoration: none;
  }

  /* 6b. Pantallas muy estrechas (iPhone "estándar" ~375-390px, no solo el
     Pro Max ~430px con el que se ajustó el resto): con el mismo tamaño de
     fuente/espaciado de arriba, un slide con texto largo (cualquiera
     comparable o más largo que el de "Cesto de los tesoros" — la
     descripción más larga de las 5) llenaba casi toda la altura de la
     tarjeta y apretaba el botón contra los puntos de paginación. Genérico
     para los 5 slides, no depende de cuál sea: solo reduce fuente/gap/
     padding para que quepa más contenido en menos alto, sin tocar el
     top/width propios de cada slide (nth-child de más arriba).
     Sin max-height/overflow: un intento anterior de "cinturón de
     seguridad" con max-height + overflow:hidden calculó mal el margen y
     acabó recortando contenido real (la última línea de la descripción,
     y el botón entero al ser el último hijo) en varios slides — quitado.
     Con el texto/gap/padding ya reducidos aquí, la tarjeta no necesita
     tope de altura: el contenido real de los 5 slides actuales cabe con
     margen antes de llegar a los puntos de paginación. */
  @media screen and (max-width: 400px) {
    .layered-slideshow__content {
      padding: 12px 12px 20px !important;
    }

    .layered-slideshow__content .group-block-content {
      --gap: 8px !important;
    }

    .layered-slideshow__content h2,
    .layered-slideshow__content h3 {
      font-size: 1.4rem !important;
      line-height: 1.25 !important;
    }

    .layered-slideshow__content p {
      font-size: 0.78rem !important;
      line-height: 1.35 !important;
    }

    .layered-slideshow__content .button,
    .layered-slideshow__content a.button {
      padding: 7px 16px !important;
      font-size: 0.8rem !important;
      margin-top: 2px !important;
    }
  }

  /* 7. Puntos → esquina inferior IZQUIERDA del carrusel, alineados con el
     borde izquierdo del bloque de texto (no con --page-margin genérico:
     .layered-slideshow__content tiene su propio padding-left de 56px, ver
     regla "3. Desktop: split layout" más arriba — hay que igualar ESE
     valor, no el margen de página general, para que quede a plomo con
     "KITS NALIBLU" / el título / el botón).
     Técnica de centrado robusta: "left: <punto> + transform: translateX(-50%)"
     centra el ELEMENTO (su propio centro, sea cual sea su ancho) exacto en
     <punto> — así puntos y flechas quedan siempre alineados entre sí pase
     lo que pase con el número de puntos (5 ahora, podría cambiar).
     <punto> = padding-left del texto (56px) + medio ancho de las flechas
     (66px de ancho → 33px), así el borde izquierdo de las flechas queda
     exactamente en esos 56px, igual que el texto. */
  .layered-slideshow__tablist {
    position: absolute !important;
    left: calc(56px + 33px) !important;
    right: auto !important;
    top: auto !important;
    bottom: 56px !important;
    transform: translateX(-50%) !important;
  }

  /* Inactivos: versión suave del nuevo verde salvia (antes terracota suave) */
  .layered-slideshow__tablist button {
    background: rgba(127, 127, 106, 0.28) !important;
  }

  /* Activo: verde-oliva intermedio (antes salvia, antes terracota) */
  .layered-slideshow__tablist button[aria-selected='true'] {
    background: #A8A791 !important;
  }

  .layered-slideshow__tablist button:focus-visible {
    outline-color: #7F7F6A !important;
  }

  /* 8. Flechas → esquina inferior izquierda del carrusel, mismo eje de
     centrado que los puntos (ver comentario del bloque "7"). */
  .layered-slideshow__arrows {
    left: calc(56px + 33px) !important;
    right: auto !important;
    top: auto !important;
    bottom: 18px !important;
    transform: translateX(-50%) !important;
  }

  /* Reposo: círculo relleno de verde-oliva intermedio + icono marrón oscuro */
  .layered-slideshow__arrow {
    background: #A8A791 !important;
    border: 1.5px solid rgba(250, 246, 241, 0.5) !important;
    color: #3B2A1C !important;
  }

  /* Hover: fondo marfil + icono salvia */
  .layered-slideshow__arrow:hover {
    background: #FAF6F1 !important;
    border-color: rgba(127, 127, 106, 0.4) !important;
    color: #7F7F6A !important;
  }

  /* 9. Mobile: puntos y flechas juntos en la esquina inferior DERECHA,
     puntos encima de las flechas, mismo eje de centrado que en desktop
     (ver comentario del bloque "7" — misma técnica "left + translateX(-50%)",
     pero calculando el punto de centrado desde la derecha con
     calc(100% - margen - medio ancho de las flechas) en vez de sumar
     desde la izquierda). Antes las flechas estaban a la derecha y los
     puntos a la izquierda, separados. */
  @media screen and (max-width: 749px) {
    .layered-slideshow__tablist {
      left: calc(100% - 14px - 33px) !important;
      right: auto !important;
      bottom: 52px !important;
      top: auto !important;
      transform: translateX(-50%) !important;
    }

    .layered-slideshow__arrows {
      left: calc(100% - 14px - 33px) !important;
      right: auto !important;
      bottom: 14px !important;
      top: auto !important;
      transform: translateX(-50%) !important;
    }
  }

  /* 10. (Fondo de Destacados movido a product-list.liquid, la propia sección) */

  /* 11. Barra de categorías — wrapper de Shopify también a #FAF6F1, para que
     coincida exactamente con el fondo interno de .category-bar (evita
     cualquier resquicio de color distinto en los bordes). */
  #shopify-section-category_bar_naliblu {
    background: #FAF6F1 !important;
  }

  /* 13. SOLO PC (≥750px): réplica del encuadre de MÓVIL — tarjeta crema
     semitransparente flotando sobre la foto a sangre, con el texto oscuro
     dentro, en vez de la columna izquierda sobre degradado oscuro.
     ⚠️ Bloque independiente a propósito: NO comparte reglas con móvil ni
     modifica ninguna regla anterior (móvil costó mucho de cuadrar y no se
     toca). Todo va dentro de min-width: 750px y, al estar al final del
     archivo, pisa las reglas de PC de más arriba (bloque "3" y degradado
     por slide del bloque 12) con la misma especificidad o más. Valores de fondo/
     borde/sombra/colores copiados de los de móvil (bloques "4" y "5"). */
  @media screen and (min-width: 750px) {
    /* Sin degradado oscuro sobre la foto (en móvil tampoco lo hay). */
    .layered-slideshow__panel .layered-slideshow__panel-content::after {
      content: none;
    }

    /* Tarjeta flotante: arriba del todo (5px del borde superior del slide)
       y a la izquierda, alineada con puntos y flechas (56px). Sin transform
       propio: el fundido de entrada del tema ya usa transform en el panel
       activo (con más especificidad) y anulaba cualquier translateY de aquí
       — por eso un centrado con top:50% + translateY(-50%) dejaba la caja
       empezando a media altura y cortada por abajo. */
    .layered-slideshow__panel .layered-slideshow__content {
      position: absolute !important;
      top: 5px !important;
      left: 56px !important;
      width: fit-content !important;
      max-width: min(40%, 480px);
      height: auto !important;
      /* Relleno interior reducido a la mitad (antes 28px 28px 32px):
         cajas más compactas alrededor de título → botón. */
      padding: 14px 14px 16px !important;
      background: linear-gradient(135deg, rgba(250, 246, 241, 0.42) 0%, rgba(250, 246, 241, 0.2) 100%) !important;
      border: 1px solid rgba(255, 255, 255, 0.55);
      box-shadow: 0 8px 30px rgba(59, 42, 28, 0.08);
      border-radius: 16px;
      display: flex !important;
      flex-direction: column !important;
      justify-content: flex-start !important;
      align-items: flex-start !important;
      box-sizing: border-box;
      z-index: 1;
    }

    /* Texto oscuro, mismo tratamiento que en móvil. */
    .layered-slideshow__panel .layered-slideshow__content p:first-of-type {
      display: block;
      background: none !important;
      color: #4F5B43 !important;
      padding: 0 !important;
      border-radius: 0;
      font-size: 12px !important;
      font-weight: 700 !important;
      letter-spacing: 0.12em;
      text-transform: uppercase;
    }

    .layered-slideshow__panel .layered-slideshow__content h2,
    .layered-slideshow__panel .layered-slideshow__content h3 {
      color: #2E2015 !important;
      text-transform: none !important;
    }

    .layered-slideshow__panel .layered-slideshow__content p:last-of-type {
      color: #3B2A1C !important;
      font-weight: 500 !important;
      text-transform: none !important;
    }

    .layered-slideshow__panel .layered-slideshow__content p:first-of-type,
    .layered-slideshow__panel .layered-slideshow__content h2,
    .layered-slideshow__panel .layered-slideshow__content h3,
    .layered-slideshow__panel .layered-slideshow__content p:last-of-type {
      text-shadow: 0 0 12px rgba(250, 246, 241, 0.7);
    }

    /* Saltos de línea fijos solo de PC (ver 14): el <br> escrito en el
       título se reactiva aquí, y ese título pierde el tope de 380px para
       que la primera línea quepa entera (si no, el navegador añadiría
       saltos propios). Solo aplica a títulos que llevan <br>. */
    .layered-slideshow__panel .layered-slideshow__content :is(h2, h3) br {
      display: inline;
    }

    .layered-slideshow__panel .layered-slideshow__content :is(h2, h3):has(br) {
      max-width: none;
      text-wrap: wrap;
    }

    /* Puntos + flechas → esquina inferior DERECHA en PC (antes izquierda),
       a 56px del borde (simétrico con el margen izquierdo de las cajas).
       Misma técnica de centrado que el resto del archivo: left en el punto
       central de las flechas (66px de ancho → 33px) + translateX(-50%).
       Selector con el contenedor delante para ganar a las reglas "7"/"8". */
    .layered-slideshow__container .layered-slideshow__tablist,
    .layered-slideshow__container .layered-slideshow__arrows {
      left: calc(100% - 56px - 33px) !important;
      right: auto !important;
    }

    /* Todo el ancho del slide menos 56px a cada lado: la primera línea
       cabe también en pantallas de PC estrechas (~750-1000px). */
    .layered-slideshow__panel .layered-slideshow__content:has(:is(h2, h3) br) {
      max-width: calc(100% - 112px);
    }
  }

  /* 14. <br> en títulos del slideshow = salto SOLO de PC. Por defecto (y por
     tanto en móvil) se anula, así el móvil se ve exactamente igual que sin
     él; el bloque 13 lo reactiva en ≥750px. Uso: templates/index.json,
     slide "Jugar y aprender": "Para imaginar, experimentar <br>y
     sorprenderse 💡" → en PC, 2 líneas cortando antes de "y". */
  .layered-slideshow__content :is(h2, h3) br {
    display: none;
  }
/* END_SECTION:layered-slideshow */
/* START_SECTION:product-list (INDEX:54) */
/* ===== NALIBLU: Destacados — fondo marfil #FAF6F1 =====
     Movido aquí (a la propia sección) desde layered-slideshow.liquid, donde
     vivía "prestado". Apunta por ID al wrapper de Shopify de esta sección
     concreta (product_list_fa6P9H) para no afectar a otros usos de
     product-list.liquid en el resto del sitio — pero el ID real que
     Shopify pone en el HTML es "shopify-section-{prefijo-de-plantilla}__
     product_list_fa6P9H" (prefijo tipo "template--30608536961351", propio
     de cada tienda/entorno), no "shopify-section-product_list_fa6P9H" a
     secas. Un selector de ID exacto con ese sufijo NUNCA hacía match — se
     confirmó inspeccionando el HTML servido en local — así que todas las
     reglas de aquí abajo llevaban sin aplicarse desde que se escribieron.
     Se usa [id$='...'] (termina en) en vez de exacto, para no depender de
     ese prefijo dinámico. */
  [id$='__product_list_fa6P9H'] .section-background,
  [id$='__product_list_fa6P9H'] .section-resource-list,
  [id$='__product_list_fa6P9H'] {
    background: #FAF6F1 !important;
  }

  /* ===== NALIBLU: tarjetas de producto de Destacados =====
     El ratio "portrait" y el border_radius de la galería ya se ajustan por
     settings (templates/index.json); aquí solo reforzamos lo que esos
     settings no cubren: separación clara entre imagen/título/subtítulo/precio
     y la proporción esbelta de la tarjeta en su conjunto. */
  [id$='__product_list_fa6P9H'] .product-card__content {
    gap: 4px;
  }

  /* Título de producto en negrita — el bloque usa el preset tipográfico
     "rte" (font-weight: 400 de fábrica), no configurable por settings (el
     campo "weight" del bloque solo se activa con preset "custom"), así
     que se fuerza aquí. La clase real que renderiza Shopify para este
     bloque es "text-block--{prefijo-de-bloque}__product_title_YXxMTj"
     (el ID del bloque lleva un prefijo delante del nombre, distinto del
     prefijo de plantilla de la sección), confirmado inspeccionando el HTML
     servido — por eso el selector exacto/contains anterior (sin el "__" de
     por medio) nunca hacía match. Aquí se busca solo la parte estable,
     "__product_title_YXxMTj". */
  [id$='__product_list_fa6P9H'] [class*='__product_title_YXxMTj'],
  [id$='__product_list_fa6P9H'] [class*='__product_title_YXxMTj'] p {
    font-weight: 700 !important;
  }

  /* Tarjeta ~25% más pequeña: en vez de tocar el número de columnas de la
     cuadrícula (arriesga dejar una celda vacía, ya que solo hay 4
     productos), se reduce el ancho de la tarjeta dentro de su propia celda
     y se centra — así imagen, texto y espaciado interno encogen juntos de
     forma proporcional, en desktop y en móvil por igual. */
  [id$='__product_list_fa6P9H'] .resource-list__item {
    max-width: 75%;
    margin-inline: auto;
  }

  [id$='__product_list_fa6P9H'] product-card .card-gallery {
    overflow: hidden;
  }

  [id$='__product_list_fa6P9H'] .product-grid-view-zoom-out--details {
    display: none;
  }

  /* Mismo problema de prefijo que el título de arriba: se busca solo la
     parte estable del nombre de clase del subtítulo. */
  [id$='__product_list_fa6P9H'] [class*='__product_subtitulo_KzP2Lm'] {
    color: rgba(58, 46, 36, 0.6) !important;
    font-style: italic;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
  }

  [id$='__product_list_fa6P9H'] [data-block-id*='price'] {
    font-weight: 600;
  }

  /* Botón "Ver todos los kits" — mismo tratamiento visual que los botones del
     carrusel (layered-slideshow.liquid): salvia sólido con texto marfil por
     defecto, se invierte a marfil con texto salvia al hover. */
  .naliblu-favoritos-cta-wrap {
    display: flex;
    justify-content: center;
    margin-block-start: 36px;
  }

  .naliblu-favoritos-cta.button {
    background: #A8A791 !important;
    color: #3B2A1C !important;
    border: 1.5px solid rgba(250, 246, 241, 0.5) !important;
    border-radius: 24px !important;
    padding: 10px 26px !important;
    font-size: 0.875rem !important;
    box-shadow: none !important;
    text-decoration: none;
    transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease !important;
  }

  .naliblu-favoritos-cta.button:hover {
    background: #FAF6F1 !important;
    color: #7F7F6A !important;
    border-color: rgba(127, 127, 106, 0.4) !important;
    text-decoration: none;
  }

  /* ===== NALIBLU: "Ver todo" de "También te puede gustar" en /cart =====
     Mismo terracota que le pusimos al "Ver todo" del panel de búsqueda —
     el ajuste style_class:"link" del bloque no expone color propio, así
     que se fuerza aquí. Selector por atributo (contains), no exacto, por
     el mismo motivo de siempre: el ID de bloque real lleva un prefijo
     delante que no se puede predecir. */
  [id$='__product_list_NNFgcy'] [class*='product_list_button_eibbma'] {
    color: #B44C21 !important;
  }

  /* ===== NALIBLU: layout de "También te puede gustar" en /cart =====
     Estructura copiada tal cual de la ficha de producto (inspeccionado en
     vivo): content_direction vuelve a ser "column" en templates/cart.json
     — imagen y título son los ÚNICOS dos hijos en flujo normal, cada uno
     se centra a SÍ MISMO (la imagen por su propio margin:auto + ancho
     fijo en el <img>, el título por su clase text-block--align-center),
     nunca por align-items del contenedor padre (que en producto es
     "normal", no "center" — confirmado, el centrado no depende de él).
     "Ver todo" se saca del flujo con position:absolute, así puede seguir
     siendo un 3er bloque en el JSON sin descuadrar el centrado de los
     otros dos ni un pixel — position:relative en el contenedor padre
     (.section-resource-list__header) para anclarlo ahí dentro. */
  [id$='__product_list_NNFgcy'] .section-resource-list__header {
    position: relative;
  }

  /* bottom:0 (no top:50%) a propósito: el título es el ÚLTIMO hijo del
     contenedor, así que su borde inferior coincide con el borde inferior
     del contenedor — anclar aquí alinea el botón con el título, no con la
     imagen de arriba. */
  [id$='__product_list_NNFgcy'] [class*='product_list_button_eibbma'] {
    position: absolute;
    right: 0;
    bottom: 0;
  }
/* END_SECTION:product-list */
/* START_BLOCK:_announcement (INDEX:69) */
.text-block:not(.text-block--full-width).rte,
  .text-block:not(.text-block--full-width).paragraph {
    /* Safari doesn't support pretty, so fallback to balance */
    text-wrap: balance;
    text-wrap: pretty;
  }

  .text-block:not(.text-block--full-width).h1,
  .text-block:not(.text-block--full-width).h2,
  .text-block:not(.text-block--full-width).h3,
  .text-block:not(.text-block--full-width).h4,
  .text-block:not(.text-block--full-width).h5,
  .text-block:not(.text-block--full-width).h6 {
    text-wrap: balance;
  }

  /* Hide underline unless text is using paragraph styles. */
  .text-block:is(.h1, .h2, .h3, .h4, .h5, .h6) a {
    text-decoration-color: transparent;
  }

  .text-block h1,
  .text-block.h1 > * {
    margin-block: var(--font-h1--spacing);
  }

  .text-block h2,
  .text-block.h2 > * {
    margin-block: var(--font-h2--spacing);
  }

  .text-block h3,
  .text-block.h3 > * {
    margin-block: var(--font-h3--spacing);
  }

  .text-block h4,
  .text-block.h4 > * {
    margin-block: var(--font-h4--spacing);
  }

  .text-block h5,
  .text-block.h5 > * {
    margin-block: var(--font-h5--spacing);
  }

  .text-block h6,
  .text-block.h6 > * {
    margin-block: var(--font-h6--spacing);
  }

  .text-block > *:first-child {
    margin-block-start: 0;
  }

  .text-block > *:last-child {
    margin-block-end: 0;
  }

  .text-block--align-center,
  .text-block--align-center > * {
    margin-inline: auto;
  }

  .text-block--align-right,
  .text-block--align-right > * {
    margin-inline-start: auto;
  }

  .announcement-bar__cta-group {
    white-space: nowrap;
  }

  .announcement-bar__cta {
    display: inline;
    background: none;
    padding: 0;
    margin: 0;
    font: inherit;
    color: inherit;
    text-decoration: none;
    border: none;
    border-bottom: 1px solid currentcolor;
    line-height: 1.3;
    cursor: pointer;
  }
/* END_BLOCK:_announcement */
/* START_BLOCK:_header-logo (INDEX:97) */
.header-logo {
    display: flex;
    height: 100%;
    font-size: var(--font-size--md);
    font-family: var(--font-family);
    font-weight: var(--font-weight);
    font-style: var(--font-style);
    color: var(--color-foreground);
    justify-content: center;
    align-items: center;
    text-decoration: none;

    &[data-hidden-on-home-page] {
      display: none;

      #header-component:is(
          [sticky='always']:not([data-scroll-direction='none']),
          [sticky='scroll-up'][data-scroll-direction='up']
        )
        & {
        display: flex;
      }
    }

    @media screen and (max-width: 749px) {
      padding: 0;
    }

    @media screen and (min-width: 750px) {
      flex-shrink: 0;
    }

    &:hover {
      text-decoration: none;
    }
  }

  .header-logo__image {
    object-fit: contain;
    height: var(--header-logo-image-height-mobile);
    width: var(--header-logo-image-width-mobile);

    @media screen and (min-width: 750px) {
      height: var(--header-logo-image-height);
      width: var(--header-logo-image-width);
    }
  }

  .header-logo:has(.header-logo__image-container--inverse) .header-logo__image-container--original {
    display: var(--header-logo-display, block);
  }

  .header-logo__image-container--inverse {
    display: var(--header-logo-inverse-display, none);
  }
/* END_BLOCK:_header-logo */
/* START_BLOCK:_header-menu (INDEX:98) */
.header__drawer {
    --header-drawer-min-height: 60px;
    display: flex;
    min-height: var(--header-drawer-min-height);
    align-items: center;
  }

  #header-component[data-menu-style='drawer'] .header__drawer {
    display: flex;
    min-height: var(--header-drawer-min-height);
  }

  @media screen and (min-width: 750px) {
    #header-component[data-menu-style='menu'] .header__drawer {
      display: none;
      min-height: 0;
    }
  }

  .header--compact .header__drawer {
    min-height: var(--minimum-touch-target);
  }

  .menu-list--mobile {
    &.menu-list {
      display: grid;
    }

    & .menu-list__list {
      width: max-content;
      margin-inline: auto;
      gap: var(--menu-horizontal-gap);
    }

    & li {
      width: max-content;
      padding-block: var(--padding-sm);
    }

    & li:first-of-type {
      padding-inline-start: var(--menu-horizontal-gap);
    }

    & li:last-of-type {
      padding-inline-end: var(--menu-horizontal-gap);
    }

    & a {
      color: var(--color-foreground);
    }
  }

  .menu-list__scroll-container {
    position: relative;
    overflow-x: auto;
    mask-image: linear-gradient(to right, transparent, #000 20px, #000 calc(100% - 20px), transparent);
    padding-block: var(--padding-2xs);
  }

  .menu-list {
    --menu-horizontal-gap: var(--gap-xl);
    --menu-vertical-gap: var(--gap-xl);

    display: flex;
    height: 100%;
  }

  .menu-list__list {
    display: flex;
    justify-content: var(--grid-area-alignment);
  }

  .menu-list__list-item {
    flex-shrink: 0;
    white-space: nowrap;
    display: flex;
    align-items: center;
    height: 100%;
  }

  .menu-list__list-item[aria-hidden='true'] {
    visibility: hidden;
  }

  .menu-list__link {
    font-family: var(--menu-top-level-font-family);
    font-style: var(--menu-top-level-font-style);
    font-weight: var(--menu-top-level-font-weight);
    font-size: var(--menu-top-level-font-size);
    line-height: var(--menu-top-level-font-line-height);
    text-transform: var(--menu-top-level-font-case);
    color: var(--menu-top-level-font-color);
    text-decoration: none;
    display: flex;
    flex-direction: column;
    justify-content: center;
    cursor: pointer;
    height: 100%;
    margin-block: 0;

    &::after {
      content: '';
      position: absolute;
      display: none;
      top: var(--header-padding);
      height: var(--box-height);
      left: 0;
      right: 0;
    }

    &[data-safety-box='true']::after {
      display: block;
    }

    &:hover,
    &:focus {
      color: var(--menu-top-level-font-color);
    }

    @media screen and (min-width: 750px) {
      font-size: var(--menu-top-level-font-size-desktop);
    }
  }

  /* ===== NALIBLU: colores del menú principal =====
     Global para las 3 variantes de este bloque (mega-menú, navigation_bar,
     drawer móvil se cubre aparte en header-drawer.liquid).
     Inactivos: verde salvia #7F7F6A, siempre (incluso en hover/subdued).
     Activo (link.active/current): mismo color de siempre, solo negrita. */
  .menu-list__link:not(.menu-list__link--active):not([aria-current='page']),
  .menu-list__item:not([aria-current='page']) {
    color: #7F7F6A !important;
  }

  /* Hover: mismo patrón que la lupa/cuenta/carrito (.header-actions__action) —
     no cambian de color al hacer hover; en su lugar, el resto de hermanos se
     atenúan con opacity mientras el hovereado se queda al 100%. Usamos
     opacity (no color) para no pelear con el !important de arriba. */
  .menu-list__link,
  .menu-list__item {
    transition: opacity var(--animation-speed) var(--animation-easing);
  }

  @media (hover: hover) {
    .menu-list:has(.menu-list__list-item:hover) .menu-list__link:not(:hover),
    .menu-list--mobile:has(.menu-list__item:hover) .menu-list__item:not(:hover) {
      opacity: var(--opacity-subdued-text);
    }
  }

  .menu-list__link--active,
  .menu-list__link[aria-current='page'],
  .menu-list__item[aria-current='page'] {
    font-weight: 700 !important;
  }

  .menu-list__link-title {
    padding-inline: calc(var(--gap-xl) / 2);
  }
  [slot='overflow'] .menu-list__link-title {
    padding-inline: 0;
  }

  .menu-list__list-item:not([slot='overflow']) {
    flex-direction: column;
  }
  .menu-list__list-item:not([slot='overflow'])::after {
    content: '';
    width: 100%;
    height: var(--header-padding);
    margin-bottom: calc(-1 * var(--header-padding));
  }

  [slot='overflow'] > .menu-list__link::after {
    content: none;
  }

  /*
    High specificity selectors to subdue non-hovered links without javascript.
    If the need for js-generated `hovered` and `focused` classes arises for another reason we can simplify these.
  */
  .menu-list:where(:has(.menu-list__list-item:hover)),
  .menu-list:where(:has(.menu-list__list-item:focus-within)),
  .menu-list:where(:has(.menu-list__list-item:not([aria-hidden='true']) .menu-list__link--active)) {
    .menu-list__link {
      color: rgb(var(--menu-top-level-font-color-rgb) / var(--opacity-subdued-text));
    }
  }

  /* stylelint-disable-next-line selector-max-specificity */
  .menu-list:not(:has(.menu-list__list-item:hover)) .menu-list__link--active,
  .menu-list .menu-list__list-item:where(:hover, :focus-within) .menu-list__link,
  .menu-list .menu-list__list-item[slot='overflow'] .menu-list__link[aria-expanded='true'] {
    color: var(--menu-top-level-font-color);
  }

  .overflow-menu::part(list) {
    /* Make sure focus outline is not cut off by overflow hidden */
    --focus-outline-size: calc(var(--focus-outline-offset) + var(--focus-outline-width));

    gap: 0;
    margin-inline: calc(-1 * var(--menu-horizontal-gap) / 2);
  }

  .overflow-menu {
    background-color: transparent;
    padding: var(--focus-outline-size);
    margin: calc(-1 * var(--focus-outline-size));
  }

  /** mega menu **/
  .menu-list__submenu,
  .overflow-menu::part(overflow) {
    --submenu-padding-block-start: var(--padding-3xl);
    --submenu-padding-block-end: var(--padding-3xl);

    background-color: transparent;
  }

  .header__row[style*='--border-bottom-width: 0px'] {
    .menu-list__submenu.color-scheme-matches-parent,
    .overflow-menu.color-scheme-matches-parent::part(overflow) {
      --submenu-padding-block-start: 0px;
    }
  }

  .menu-list__list-item:where(:not([slot='overflow'])) > .menu-list__submenu,
  .overflow-menu::part(overflow) {
    --submenu-content-opacity: 0;
    --submenu-content-animation: opacity calc(var(--submenu-animation-speed) * 0.75) var(--animation-easing);

    visibility: hidden;
    position: absolute;
    width: 100%;
    left: 0;
    top: calc(100% - 1px + var(--border-bottom-width) - (var(--full-open-header-height) - var(--submenu-height)));
    z-index: var(--layer-header-menu);
    padding-inline: var(--padding-inline);
    /* Clip path starts at header height so it doesn't mess with the pointer events in the header */
    clip-path: rect(var(--header-height) 100% var(--full-open-header-height) 0); /* stylelint-disable-line */
    transition: clip-path var(--submenu-animation-speed) var(--ease-out-cubic); /* stylelint-disable-line */
  }

  [data-submenu-overlap-bottom-row] {
    .menu-list__list-item:where(:not([slot='overflow'])) > .menu-list__submenu,
    .overflow-menu::part(overflow) {
      clip-path: rect(var(--top-row-height) 100% var(--full-open-header-height) 0); /* stylelint-disable-line */
    }
  }

  /* Show the submenus on hover */
  .menu-list__list-item:has([aria-expanded='true']) > .menu-list__submenu,
  /* Show the overflow menu when a menu item is hovered */
  .overflow-menu:has([slot="overflow"] [aria-expanded='true'])::part(overflow-list),
  /* Keep the submenus open when they are hovered */
  .menu-list__submenu:is(:hover),
  .overflow-menu::part(overflow):hover {
    --submenu-content-opacity: 1;

    visibility: visible;
  }

  .overflow-menu::part(overflow) {
    --menu-top-level-font-size: var(--font-size--xlarge);

    display: grid;
    grid-template-columns: var(--full-page-grid-with-margins);
  }

  .overflow-menu::part(overflow-list) {
    position: relative;
    display: grid;
    grid-template-columns: minmax(auto, 200px) 1fr;
    grid-template-areas: 'left right';
    grid-template-rows: max-content;
    grid-gap: 0;
    grid-column: 2;
  }

  .menu-list__list-item:is([slot='overflow']) {
    --menu-top-level-font-color: var(--color-foreground);
    --menu-top-level-font-color-rgb: var(--color-foreground-rgb);

    display: contents;
    white-space: normal;

    .menu-list__link {
      grid-area: left;
      grid-row: auto;
      height: min-content;
      font-size: var(--font-size--xl);
      transition: var(--submenu-content-animation);
    }

    .menu-list__submenu {
      visibility: hidden;
      grid-row: 1;
      grid-area: right;
      grid-row-end: span calc(var(--overflow-count) + 1);
      padding-inline-start: var(--menu-horizontal-gap);
    }

    .menu-list__submenu-inner {
      transform: none;
      grid-column: unset;
      padding-block: 0;
    }

    .menu-list__link[aria-expanded='true'] + .menu-list__submenu {
      visibility: visible;
    }
  }

  .header-menu {
    height: 100%;
  }

  .menu-list__submenu-inner {
    position: relative;
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
  }

  .menu-list__submenu-inner,
  .overflow-menu::part(overflow-list) {
    padding-block-start: var(--submenu-padding-block-start);
    padding-block-end: var(--submenu-padding-block-end);
    padding-inline: var(--section-padding-inline);
    opacity: var(--submenu-content-opacity);
    transition: var(--submenu-content-animation);
    transform: translateY(calc(var(--full-open-header-height) - var(--submenu-height)));

    /* Make overflow menu scrollable when content exceeds viewport */
    max-height: calc(80vh - var(--header-height));
    overflow-y: auto;
    overflow-x: hidden;
    scrollbar-width: thin;
    scrollbar-color: rgb(var(--color-foreground-rgb) / var(--opacity-40)) transparent;
  }

  .mega-menu__link {
    font-family: var(--menu-child-font-family);
    font-style: var(--menu-child-font-style);
    font-weight: var(--menu-child-font-weight);
    font-size: var(--menu-child-font-size);
    line-height: var(--menu-child-font-line-height);
    text-transform: var(--menu-child-font-case);
    color: var(--menu-child-font-color);
    white-space: normal;
    text-decoration: none;
    display: inline-flex;
    padding: var(--padding-2xs) 0;

    &:hover {
      color: var(--menu-child-active-font-color);
    }
  }

  .mega-menu__link--parent {
    font-family: var(--menu-parent-font-family);
    font-style: var(--menu-parent-font-style);
    font-weight: var(--menu-parent-font-weight);
    font-size: var(--menu-parent-font-size);
    line-height: var(--menu-parent-font-line-height);
    text-transform: var(--menu-parent-font-case);
    color: var(--menu-parent-font-color);

    &:hover {
      color: var(--menu-parent-active-font-color);
    }
  }

  @media screen and (max-width: 989px) {
    .mega-menu__content-list-item--hidden-tablet {
      display: none;
    }
  }

  .mega-menu__link:has(.mega-menu__link-image) {
    display: flex;
    flex-direction: column;
    padding-inline: 0;
    padding-block: var(--padding-sm) 0;
  }

  .mega-menu__link-image {
    width: 100%;
    position: relative;
    aspect-ratio: 16 / 9;
    margin-bottom: var(--padding-sm);
    object-fit: cover;
    border-radius: var(--menu-image-border-radius);
  }

  /* Fix alignment for collection image mode links without images */

  /* Target only top-level links (direct children of column > div) in collection image mode */
  .mega-menu__grid:has(.mega-menu__link-image)
    .mega-menu__column
    > div
    > .mega-menu__link:not(:has(.mega-menu__link-image)) {
    display: flex;
    flex-direction: column;
    padding-inline: 0;
    padding-block: var(--padding-sm) 0;
  }

  .mega-menu__grid:has(.mega-menu__link-image)
    .mega-menu__column
    > div
    > .mega-menu__link:not(:has(.mega-menu__link-image))::before {
    content: '';
    display: block;
    width: 100%;
    aspect-ratio: 16 / 9;
    margin-bottom: var(--padding-sm);
    background-color: var(--color-foreground-muted);
    opacity: 0.1;
    border-radius: var(--menu-image-border-radius);
  }

  .mega-menu__grid {
    display: grid;
    grid-template-columns: repeat(var(--menu-columns-tablet), minmax(0, 1fr));
    gap: var(--menu-vertical-gap) var(--menu-horizontal-gap);
    width: 100%;

    @media screen and (min-width: 990px) {
      grid-template-columns: repeat(var(--menu-columns-desktop), minmax(0, 1fr));
    }
  }

  .mega-menu__column {
    grid-column: span 1;
  }

  .mega-menu__column--span-2 {
    grid-column: span 2;
  }

  .mega-menu__column--span-3 {
    grid-column: span 3;
  }

  .mega-menu__column--span-4 {
    grid-column: span 4;
  }

  .mega-menu__column--wide-collection-image {
    grid-column: span 1;

    @media screen and (min-width: 990px) {
      grid-column: span 2;
    }
  }

  .mega-menu__submenu .mega-menu__column--wide-collection-image {
    grid-column: span 1;
  }

  .mega-menu__content-list {
    display: grid;
    justify-content: end;
    gap: var(--menu-vertical-gap) var(--menu-horizontal-gap);
  }

  .mega-menu__content-list--products {
    grid-template-columns: repeat(var(--menu-content-columns-tablet), minmax(0, 1fr));

    @media screen and (min-width: 990px) {
      grid-template-columns: repeat(var(--menu-content-columns-desktop), minmax(0, 1fr));
    }
  }

  .mega-menu__content-list--collections {
    grid-template-columns: repeat(var(--menu-content-columns-tablet), minmax(0, 300px));

    @media screen and (min-width: 990px) {
      grid-template-columns: repeat(var(--menu-content-columns-desktop), minmax(0, 300px));
    }
  }

  .mega-menu__list {
    display: grid;
    grid-template-columns: subgrid;
    grid-column: span var(--menu-columns-tablet);
    gap: var(--menu-vertical-gap) var(--menu-horizontal-gap);

    @media screen and (min-width: 990px) {
      grid-column: span var(--menu-columns-desktop);
    }
  }

  .mega-menu__content {
    grid-column: span var(--menu-content-columns-tablet) / -1;

    @media screen and (min-width: 990px) {
      grid-column: span var(--menu-content-columns-desktop) / -1;
    }
  }

  .menu-list__list-item[slot='overflow'] .section {
    grid-template-columns: 1fr;
  }

  .menu-list__list-item[slot='overflow'] .section .mega-menu__grid {
    grid-column: 1;
  }

  .mega-menu__content-list li {
    white-space: normal;
  }

  /* mega more menu */
  .mega-menu__more-list {
    --menu-child-font-size: var(--font-size--xl);

    width: 200px;
  }

  .mega-menu__submenu {
    /* preserves the inherited grid layout when this submenu wrapper is used */
    display: contents;
  }
/* END_BLOCK:_header-menu */
/* START_SNIPPET:background-media (INDEX:168) */
@media (prefers-reduced-motion: reduce) {
    video-background-component video {
      display: none;
    }
  }
/* END_SNIPPET:background-media */
/* START_SNIPPET:button (INDEX:172) */
.link {
    text-decoration: none;
    text-decoration-color: currentcolor;

    &:hover {
      color: var(--color-primary-hover);
      text-decoration-color: transparent;
    }
  }
/* END_SNIPPET:button */
/* START_SNIPPET:buy-buttons-styles (INDEX:173) */
.buy-buttons-block {
    --buy-button-preferred-width: 185px;

    width: 100%;
  }

  .product-form-buttons {
    display: flex;
    flex-wrap: wrap;
  }

  .product-form-buttons:not(:has(.quantity-rules)) {
    gap: calc(var(--gap-sm) / 2);

    @media screen and (min-width: 750px) {
      gap: var(--gap-sm);
    }
  }

  .product-form-buttons
    > *:not(.quantity-selector-wrapper, .quantity-rules, .quantity-label, .volume-pricing, .product-form-text__error, .nb-personalizacion) {
    flex: 1 1 var(--buy-button-preferred-width, 0);
    min-width: fit-content;
  }

  .product-form-buttons--stacked
    > *:not(.quantity-selector-wrapper, .quantity-rules, .quantity-label, .volume-pricing, .product-form-text__error, .nb-personalizacion) {
    flex-basis: 51%;
  }

  /* El formulario de personalización (.nb-personalizacion) ya NO vive
     dentro de esta fila: blocks/buy-buttons.liquid lo pinta justo antes de
     .product-form-buttons (sigue dentro del <form>). Antes era un hijo más
     de este flex, colocado arriba con order:-1 + flex-basis:100%, y era lo
     único que diferenciaba la fila cantidad+botón de las fichas con
     personalización de las demás.

     Móvil: misma fila en TODAS las fichas — cantidad a la izquierda (sin
     encogerse), botón ocupando el resto, y el mismo hueco que en
     escritorio (el nativo era la mitad, ~5,6px, y se veían pegados).
     Escritorio sin cambios. */
  @media screen and (max-width: 749px) {
    .product-form-buttons:not(:has(.quantity-rules)) {
      gap: var(--gap-sm);
    }

    .product-form-buttons > .quantity-selector-wrapper {
      flex-shrink: 0;
    }

    .product-form-buttons > :has(> add-to-cart-component):not(.quantity-selector-wrapper) {
      flex: 1 1 0;
      min-width: 0;
    }
  }

  .product-form-buttons button {
    width: 100%;
    padding-block: var(--padding-lg);
  }

  .quantity-selector {
    flex-grow: 0;
    flex-shrink: 0;
    height: var(--height-buy-buttons);
  }

  .quantity-label {
    flex: 1 0 100%;
    width: 100%;
    font-size: var(--font-size--sm);
    margin-block-end: var(--gap-xs);
  }

  .quantity-label__cart-count {
    color: var(--color-foreground-secondary);
  }

  .quantity-rules {
    display: flex;
    flex-wrap: wrap;
    gap: 0;
    row-gap: calc(var(--gap-xs) / 2);
    flex: 1 0 100%;
    width: 100%;
    font-size: var(--font-size--xs);
    color: var(--color-foreground-secondary);
    margin-block-start: var(--gap-xs);
    margin-block-end: var(--gap);
  }

  .product-form-buttons:has(~ .volume-pricing .volume-pricing__title) .quantity-rules {
    margin-block-end: var(--gap-md);
  }

  .quantity-rules__item {
    position: relative;
    display: inline-block;
    color: rgb(var(--color-foreground-rgb) / var(--opacity-subdued-text));
  }

  .quantity-rules__item:not(:last-child) {
    padding-right: var(--padding-xl);
    margin-right: var(--margin-2xs);
  }

  .quantity-rules__item:not(:last-child)::after {
    content: '•';
    position: absolute;
    inset-inline-end: 0.5rem;
    top: 50%;
    transform: translateY(-50%);
    font-size: 0.5em;
    line-height: 0;
  }

  .add-to-cart-button {
    height: var(--height-buy-buttons);
    text-transform: var(--button-text-case-primary);
  }

  .add-to-cart-button.button-secondary {
    text-transform: var(--button-text-case-secondary);
  }

  .product-form-text__error {
    display: flex;
    flex: 1 0 100%;
    align-items: flex-start;
    gap: var(--gap-xs);
    margin-block-end: var(--gap-xs);
  }

  .product__pickup-availabilities {
    width: 100%;
  }

  .pickup-availability__column {
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
  }

  .pickup-availability__row {
    display: flex;
    gap: var(--padding-xs);
  }

  .pickup-availability__dialog-row {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
  }

  .pickup-availability__header-container {
    padding-block-end: var(--padding-2xl);
  }

  .pickup-location__wrapper {
    display: flex;
    flex-direction: column;
    padding-block: var(--padding-2xl);
    border-top: 1px solid var(--color-border);
    gap: var(--padding-xs);
  }

  .pickup-location__address-wrapper {
    display: flex;
    flex-direction: column;
    gap: var(--padding-md);
  }

  .pickup-location__dialog {
    padding: var(--padding-2xl);
    position: fixed;
    border-radius: 0;
    width: var(--sidebar-width);
    max-width: 95vw;
    height: 100%;
    margin: 0 0 0 auto;
    border: var(--style-border-drawer);
    box-shadow: var(--shadow-drawer);
    background-color: var(--color-background);
  }

  .pickup-location__dialog:modal {
    max-height: 100dvh;
  }

  .pickup-location__text-sm {
    font-size: var(--font-size--sm);
    margin: 0;
  }

  .pickup-location__text-xs {
    font-size: var(--font-size--xs);
    margin: 0;
  }

  .pickup-location__button {
    width: fit-content;
    color: var(--color-primary);
    font-size: var(--font-size--xs);
    font-family: var(--font-body--family);
    padding: 0;
    cursor: pointer;
    margin-block: var(--margin-xs);
  }

  .pickup-location__button:hover {
    color: var(--color-primary-hover);
  }

  .pickup-location__h4 {
    margin: 0;
  }

  .pickup-location__text-bold {
    font-size: var(--font-size--md);
    font-weight: 600;
    margin: 0;
  }

  .pickup-location__availability-wrapper {
    display: flex;
    align-items: center;
    gap: var(--gap-xs);
    font-family: var(--font-paragraph--family);
  }

  .pickup-location__address {
    font-style: normal;
  }

  .pickup-location__close-button {
    top: calc(var(--padding-2xl) - (var(--icon-size-xs) / 2));
    right: calc(var(--padding-2xl) - var(--icon-size-xs));
  }

  .volume-pricing {
    display: block;
    width: 100%;
    margin-bottom: var(--gap);
  }

  .volume-pricing:not(:has(.volume-pricing__title)) {
    margin-top: 0;
    margin-bottom: 0;
  }

  .volume-pricing__title {
    display: block;
    margin-block-end: var(--gap-sm);
    font-size: var(--font-size--sm);
    font-weight: var(--font-body--weight);
    color: var(--color-foreground);
  }

  .volume-pricing__table {
    width: 100%;
  }

  .volume-pricing__row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding-block: var(--padding-sm);
    padding-inline: var(--padding-md);
    font-size: var(--font-size--sm);
  }

  .volume-pricing__row--even {
    background: rgb(var(--color-foreground-rgb) / var(--opacity-5));
  }

  .volume-pricing__row--odd {
    background: var(--color-background);
  }

  .volume-pricing__collapsible-wrapper {
    block-size: 0;
    overflow-y: clip;
    opacity: 0;
    interpolate-size: allow-keywords;
    transition: opacity var(--animation-speed-slow) var(--animation-easing),
      block-size var(--animation-speed-slow) var(--animation-easing);
  }

  .volume-pricing__toggle {
    width: 100%;
    padding-bottom: 0;
    padding-inline: 0;
    text-align: left;
    color: var(--color-foreground-secondary);
    font-size: var(--font-size--xs);
    cursor: default;
    margin-block-start: 0;
    pointer-events: none;
  }

  button.volume-pricing__toggle {
    /* Need the extra specificity to override .product-form-buttons button */
    padding-block: var(--padding-sm);
  }

  .volume-pricing__toggle-text {
    cursor: pointer;
    display: inline-block;
    pointer-events: auto;
  }

  .volume-pricing__show-less {
    display: none;
  }

  .volume-pricing--expanded .volume-pricing__collapsible-wrapper {
    opacity: 1;
    block-size: auto;

    @starting-style {
      block-size: 0;
      opacity: 0;
      overflow-y: clip;
    }
  }

  .volume-pricing--expanded .volume-pricing__show-more {
    display: none;
  }

  .volume-pricing--expanded .volume-pricing__show-less {
    display: inline;
  }

  /* Accelerated checkout styles — co-located here so they compile on pages
     where the quick-add modal can display buy buttons (e.g. collection pages). */
  .accelerated-checkout-block[data-shopify-visual-preview] {
    width: 300px;
  }

  more-payment-options-link {
    font-size: smaller;
  }

  more-payment-options-link a {
    --button-color: var(--color-primary);
  }

  more-payment-options-link a:hover {
    --button-color: var(--color-primary-hover);
  }

  .shopify-payment-button__more-options[aria-hidden='true'] {
    display: none;
  }

  /* ===== Nota informativa de la ficha (custom.nota_info) — blocks/buy-buttons.liquid =====
     Fondo = verde oliva claro de la tarjeta de newsletter del footer; borde
     izquierdo y enlace = verde oliva oscuro (variables globales en
     snippets/theme-styles-variables.liquid). */
  .product-note {
    display: block;
    margin-top: 16px;
    padding: 16px 20px;
    background: var(--nb-olive-light);
    border-left: 4px solid var(--nb-olive-dark);
    border-radius: 12px;
  }

  .product-note__text {
    margin: 0;
    font-style: normal;
    font-size: 16px;
    line-height: 1.5;
    color: #3B2A1C;
  }

  .product-note__link {
    display: inline-block;
    margin-top: 8px;
    font-weight: 700;
    color: var(--nb-olive-dark);
    text-decoration: underline;
    text-underline-offset: 2px;
  }

  .product-note__link:hover {
    text-decoration: none;
  }

  @media screen and (min-width: 750px) {
    .product-note__text {
      font-size: 17px;
    }
  }

  /* ===== Personalización de producto (metaobjetos) — blocks/buy-buttons.liquid ===== */
  /* Fondo del formulario y color de sus etiquetas como variables: los
     reutiliza el botón CTA "Personaliza" de la ficha
     (blocks/nb-product-cta.liquid). Mismos valores de siempre. */
  :root {
    --nb-personalization-bg: #F1E4D3;
    --nb-personalization-label-color: #3B2A1C;
  }

  .nb-personalizacion {
    background: var(--nb-personalization-bg);
    border-radius: 16px;
    padding: 32px;
    margin-block-end: var(--gap-sm, 16px);
  }

  .nb-personalizacion__row {
    display: flex;
    flex-wrap: wrap;
    gap: 20px;
  }

  .nb-field {
    display: flex;
    flex-direction: column;
    gap: 8px;
    flex: 1 1 calc(50% - 10px);
    min-width: 0;
  }

  .nb-field label {
    color: var(--nb-personalization-label-color);
    font-weight: 600;
    font-size: 14px;
  }

  .nb-field input,
  .nb-field select,
  .nb-field textarea {
    box-sizing: border-box;
    font-family: var(--font-body--family);
    /* 16px mínimo: por debajo de eso, iOS Safari hace zoom automático al
       enfocar el campo (mismo problema ya documentado y resuelto para los
       filtros de Tienda) — ese zoom es lo que saca el scroll lateral al
       entrar en cualquier campo del formulario. */
    font-size: 16px;
    line-height: 1.4;
    color: #3B2A1C;
    background: #FAF6F1;
    border: 1.5px solid #d4c4b0;
    border-radius: 10px;
    padding: 12px 14px;
  }

  .nb-field input,
  .nb-field select {
    min-height: 46px;
  }

  .nb-field input::placeholder,
  .nb-field textarea::placeholder {
    color: #7F7F6A;
  }

  .nb-field textarea {
    resize: vertical;
  }

  /* El <select> nativo trae su propia flecha pegada al borde y una altura
     que no siempre respeta el padding vertical del resto de campos (varía
     según el sistema operativo). Se anula la apariencia nativa y se dibuja
     una flecha propia, con el mismo padding-right (14px) que usan
     visualmente los iconos nativos de calendario/reloj en los campos
     date/time, para que los cuatro tipos de campo queden alineados. */
  .nb-field select {
    appearance: none;
    -webkit-appearance: none;
    -moz-appearance: none;
    padding-right: 38px;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%233B2A1C' stroke-width='1.5' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 14px center;
    background-size: 10px 6px;
  }

  .nb-field input:focus,
  .nb-field select:focus,
  .nb-field textarea:focus {
    outline: none;
    border-color: #B44C21;
    box-shadow: 0 0 0 3px rgba(180, 76, 33, 0.12);
  }

  .nb-field__error {
    color: #C0392B;
    font-size: 13px;
  }

  @media screen and (max-width: 749px) {
    .nb-personalizacion__row {
      flex-direction: column;
    }

    .nb-field {
      flex: 1 1 100%;
    }
  }
/* END_SNIPPET:buy-buttons-styles */
/* START_SNIPPET:card-gallery (INDEX:174) */
.card-gallery {
    overflow: hidden;
    container-type: inline-size; /* Make card-gallery a container */
    container-name: card-gallery-container; /* Optional: name the container */
    /* Recorte cuadrado uniforme para todas las tarjetas de producto de
       listados/categorías, independiente del ajuste "Proporción de imagen"
       de cada sección. El zoom (1.15) reduce el fondo vacío alrededor de
       productos fotografiados más "alejados", sin tocar el layout de la
       tarjeta (el recorte lo absorbe overflow: hidden de aquí mismo). */
    aspect-ratio: 1 / 1;
  }

  .card-gallery .product-media__image {
    object-fit: cover;
    object-position: center;
    transform: scale(1.15);
  }

  .card-gallery__placeholder svg {
    height: 100%;
    width: 100%;
  }

  .card-gallery svg {
    aspect-ratio: var(--gallery-aspect-ratio, var(--ratio));
  }

  .product-card-gallery__title-placeholder {
    padding: var(--padding-md);
    font-size: var(--font-size--2xl);
    line-height: var(--line-height--display-loose);
    word-break: break-word;
    color: var(--color-foreground);
    background-color: rgb(var(--color-foreground-rgb) / var(--opacity-5));
    aspect-ratio: var(--gallery-aspect-ratio);
    border-radius: var(--product-corner-radius);
    display: -webkit-box;
    -webkit-box-orient: vertical;
    overflow: hidden;
    text-overflow: ellipsis;
  }

  .product-card-gallery__title-placeholder a {
    color: var(--color-foreground);
  }

  @media screen and (min-width: 750px) {
    .product-grid[data-product-card-size='extra-large'] .product-card-gallery__title-placeholder {
      padding: var(--padding-3xl);
      font-size: var(--font-size--3xl);
    }

    .product-grid[data-product-card-size='large'] .product-card-gallery__title-placeholder {
      padding: var(--padding-2xl);
      font-size: var(--font-size--2xl);
    }

    .product-grid[data-product-card-size='medium'] .product-card-gallery__title-placeholder {
      padding: var(--padding-xl);
      font-size: var(--font-size--xl);
    }

    .product-grid[data-product-card-size='small'] .product-card-gallery__title-placeholder {
      padding: var(--padding-sm);
      font-size: var(--font-size--lg);
    }

    .product-grid[data-product-card-size='extra-large']
      .card-gallery.card-gallery--badge-top-right
      .product-card-gallery__title-placeholder {
      padding-right: calc(var(--padding-3xl) + 50px);
    }

    .product-grid[data-product-card-size='large']
      .card-gallery.card-gallery--badge-top-right
      .product-card-gallery__title-placeholder {
      padding-right: calc(var(--padding-2xl) + 50px);
    }

    .product-grid[data-product-card-size='medium']
      .card-gallery.card-gallery--badge-top-right
      .product-card-gallery__title-placeholder {
      padding-right: calc(var(--padding-xl) + 50px);
    }

    .product-grid[data-product-card-size='small']
      .card-gallery.card-gallery--badge-top-right
      .product-card-gallery__title-placeholder {
      padding-right: calc(var(--padding-sm) + 50px);
    }

    .product-grid[data-product-card-size='extra-large']
      .card-gallery.card-gallery--badge-top-left
      .product-card-gallery__title-placeholder {
      padding-top: calc(var(--padding-3xl) + 40px);
    }

    .product-grid[data-product-card-size='large']
      .card-gallery.card-gallery--badge-top-left
      .product-card-gallery__title-placeholder {
      padding-top: calc(var(--padding-2xl) + 40px);
    }

    .product-grid[data-product-card-size='medium']
      .card-gallery.card-gallery--badge-top-left
      .product-card-gallery__title-placeholder {
      padding-top: calc(var(--padding-xl) + 40px);
    }

    .product-grid[data-product-card-size='small']
      .card-gallery.card-gallery--badge-top-left
      .product-card-gallery__title-placeholder {
      padding-top: calc(var(--padding-sm) + 40px);
    }

    .product-grid[data-product-card-size='extra-large']
      .card-gallery.card-gallery--badge-bottom-left
      .product-card-gallery__title-placeholder {
      padding-bottom: calc(var(--padding-3xl) + 40px);
    }

    .product-grid[data-product-card-size='large']
      .card-gallery.card-gallery--badge-bottom-left
      .product-card-gallery__title-placeholder {
      padding-bottom: calc(var(--padding-2xl) + 40px);
    }

    .product-grid[data-product-card-size='medium']
      .card-gallery.card-gallery--badge-bottom-left
      .product-card-gallery__title-placeholder {
      padding-bottom: calc(var(--padding-xl) + 40px);
    }

    .product-grid[data-product-card-size='small']
      .card-gallery.card-gallery--badge-bottom-left
      .product-card-gallery__title-placeholder {
      padding-bottom: calc(var(--padding-sm) + 40px);
    }
  }

  @media screen and (max-width: 749px) {
    .product-card-gallery__title-placeholder {
      font-size: var(--font-size--xl);
      padding: var(--padding-md);
    }

    .product-grid[data-product-card-size]
      .card-gallery.card-gallery--badge-top-right
      .product-card-gallery__title-placeholder {
      padding-right: calc(var(--padding-sm) + 50px);
    }

    .product-grid[data-product-card-size]
      .card-gallery.card-gallery--badge-top-left
      .product-card-gallery__title-placeholder {
      padding-top: calc(var(--padding-sm) + 40px);
    }

    .product-grid[data-product-card-size]
      .card-gallery.card-gallery--badge-bottom-left
      .product-card-gallery__title-placeholder {
      padding-bottom: calc(var(--padding-sm) + 40px);
    }
  }

  [product-grid-view='zoom-out'] .card-gallery .product-card-gallery__title-placeholder {
    /* stylelint-disable-next-line declaration-no-important */
    padding: var(--padding-xs) !important;
    font-size: var(--font-size--xs);
  }

  [product-grid-view='zoom-out'] .card-gallery .slideshow-control {
    min-width: auto;
  }

  ul[product-grid-view='zoom-out'] .product-grid__card .card-gallery {
    display: block;
  }

  [product-grid-view='zoom-out']
    .card-gallery
    > :is(quick-add-component, .product-badges, slideshow-component > slideshow-controls) {
    display: none;
  }

  ul[product-grid-view='zoom-out'] .card-gallery > img {
    display: block;
  }

  .card-gallery slideshow-arrows .slideshow-control {
    /* Align icons with quick-add button */
    padding-inline: var(--padding-xl);

    @container (max-width: 249px) {
      padding-inline: 0 var(--padding-sm);
    }
  }

  /*
   * Card galleries preview the next or previous images on 'pointerenter', so we
   * try to kick load them beforehand (they are lazy loaded otherwise).
   */
  .card-gallery
    :is(
      slideshow-slide:has(+ slideshow-slide[aria-hidden='false']),
      slideshow-slide[aria-hidden='false'] + slideshow-slide
    ) {
    content-visibility: auto;

    slideshow-component[actioned] & {
      content-visibility: visible;
    }
  }
/* END_SNIPPET:card-gallery */
/* START_SNIPPET:cart-bubble (INDEX:175) */
.cart-bubble {
    --cart-padding: 0.2em;

    position: relative;
    width: 20px;
    aspect-ratio: 1;
    border-radius: 50%;
    border-width: 0;
    display: flex;
    line-height: normal;
    align-items: center;
    justify-content: center;
    color: var(--color-primary-button-text);
    padding-inline: var(--cart-padding);
  }

  .cart-bubble[data-maintain-ratio] {
    aspect-ratio: 1;
  }

  .cart-bubble[data-maintain-ratio] .cart-bubble__background {
    border-radius: var(--style-border-radius-50);
  }

  .cart-bubble__background {
    position: absolute;
    inset: 0;
    background-color: var(--color-primary-button-background);
    border-radius: var(--style-border-radius-lg);
  }

  .cart-bubble__text {
    font-size: var(--font-size--3xs);
    z-index: var(--layer-flat);
    line-height: 1;
    display: flex;
    align-items: center;
    justify-content: center;
  }
/* END_SNIPPET:cart-bubble */
/* START_SNIPPET:cart-items-component (INDEX:176) */
.cart-items-component {
    width: 100%;
    height: 100%;
    display: flex;
    flex-direction: column;
  }

  @media screen and (prefers-reduced-motion: no-preference) {
    html:active-view-transition-type(empty-cart-drawer) {
      .cart-items-component {
        view-transition-name: cart-drawer-content;
      }
    }

    html:active-view-transition-type(empty-cart-page) {
      .cart-items-component {
        view-transition-name: cart-page-content;
      }
    }
  }

  ::view-transition-old(cart-page-content) {
    animation: cart-page-content-old var(--animation-speed-fast) var(--animation-easing) forwards;
  }

  @keyframes cart-page-content-old {
    from {
      opacity: 1;
    }
    to {
      opacity: 0;
      filter: blur(4px);
    }
  }

  ::view-transition-old(cart-drawer-content) {
    transform-origin: 50% 33%;
    animation: cart-contents-old var(--spring-d280-b0-duration) var(--spring-d280-b0-easing) forwards;
  }

  ::view-transition-new(cart-drawer-content) {
    transform-origin: top center;
    animation: cart-contents-new var(--spring-d280-b0-duration) var(--spring-d280-b0-easing) forwards;
  }

  @keyframes cart-contents-old {
    to {
      scale: 0.92;
      opacity: 0;
    }
  }

  @keyframes cart-contents-new {
    from {
      scale: 1.05;
      translate: 0 128px;
      filter: blur(1px);
      opacity: 0;
    }
  }
/* END_SNIPPET:cart-items-component */
/* START_SNIPPET:cart-products (INDEX:177) */
.cart-items {
    --cart-item-media-width-min: 2.5rem;
    --cart-item-media-width-max: 7.5rem;

    container-name: cart-items;
    container-type: inline-size;
    width: 100%;
  }

  .cart-items-disabled {
    pointer-events: none;
  }

  .cart-page--empty .cart-items__wrapper {
    display: flex;
    flex-direction: column;
    align-items: center;
    margin-block-start: 0;
    text-align: center;
  }

  .cart-drawer:not(:has(.cart-form)) .cart-items__wrapper {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
  }

  .cart-items__table {
    width: 100%;
    border-spacing: 0;
  }

  .cart-items__table * {
    margin: 0;
  }

  .cart-items__table-row {
    --cart-item-price-width: 6rem;

    display: grid;
    grid-template-columns: clamp(2.5rem, 15cqi, 7.5rem) minmax(0, 1fr) minmax(var(--cart-item-price-width), auto);
    grid-template-areas:
      'media details price'
      'media quantity price'
      'media error error';
    column-gap: var(--gap-md);
    align-items: start;
    padding-bottom: var(--cart-items-gap);
    margin-bottom: var(--margin-lg);
  }

  /* Tarjeta de producto en el cart drawer: caja con fondo beige claro y
     esquinas redondeadas, para que no quede flotando suelta sobre el
     fondo crema del panel — mismo tono que .nb-personalizacion en
     snippets/buy-buttons-styles.liquid. */
  .cart-drawer .cart-items__table-row {
    background-color: #F1E4D3;
    border-radius: 14px;
    padding: var(--padding-lg);
  }

  /* Selector de cantidad (+/-) en terracota, píldora, con el contorno
     resaltado en terracota al pasar el cursor por encima. */
  .cart-drawer .quantity-selector {
    border-radius: 999px;
  }

  .cart-drawer .quantity-selector:hover,
  .cart-drawer .quantity-selector:focus-within {
    border-color: #B44C21;
  }

  .cart-drawer .quantity-selector .quantity-minus,
  .cart-drawer .quantity-selector .quantity-plus {
    color: #B44C21;
    border-radius: 999px;
  }

  /* Cart drawer: separate grid areas for variants and unit price */
  .cart-drawer .cart-items__table-row--full-width-variants {
    grid-template-columns: clamp(2.5rem, 15cqi, 7.5rem) minmax(0, 1fr) auto;
    grid-template-rows: repeat(4, min-content) 1fr;
    grid-template-areas:
      'media details price'
      'media variants variants'
      'media unit_price unit_price'
      'media quantity quantity'
      'media error error';

    .cart-items__details {
      display: contents;
    }

    .cart-items__product-info {
      grid-area: details;
    }

    .cart-items__variants-wrapper {
      grid-area: variants;

      &:empty {
        display: none;
      }

      p {
        margin: 0;
      }
    }

    .cart-items__unit-price-wrapper {
      grid-area: unit_price;
      font-size: var(--font-size--sm);
    }

    .cart-items__price {
      min-width: auto;
      width: max-content;
    }
  }

  .cart-items__table-row.cart-items__nested-line td:first-child {
    width: 60%;
    justify-self: right;
  }

  html:active-view-transition-type(page-navigation) .cart-items__table-row {
    /* stylelint-disable-next-line declaration-no-important */
    view-transition-name: none !important;
  }

  .cart-items__table-row.removing {
    overflow: hidden;
    animation: removeRow calc(var(--animation-speed) * 2) var(--animation-easing) forwards;
    animation-delay: var(--animation-speed);
  }

  @keyframes removeRow {
    0% {
      height: var(--row-height);
    }

    100% {
      opacity: 0;
      height: 0;
      padding-bottom: 0;
      margin-bottom: 0;
      border-color: transparent;
    }
  }

  .cart-items__table-row:last-child {
    padding-bottom: 0;
  }

  .cart-items--dividers .cart-items__table-row {
    border-bottom: 1px solid var(--color-border);
    margin-bottom: var(--cart-items-gap);
  }

  .cart-items--dividers .cart-items__table-row:has(+ .cart-items__nested-line) {
    border-bottom: none;
    margin-bottom: 0;
  }

  .cart-items--dividers .cart-items__table-row:last-of-type {
    border-block-end: none;
    padding-block-end: 0;
    margin-bottom: 0;
  }

  .cart-items__details {
    grid-area: details;
    color: rgb(var(--color-foreground-rgb) / var(--opacity-70));
  }

  .cart-items__details > * + *,
  .cart-items__bundle li {
    margin-block-start: var(--margin-3xs);
  }

  .cart-items__details * {
    font-size: var(--font-size--sm);
  }

  .cart-items__details a {
    text-decoration: none;
  }

  .cart-items__title {
    font-size: var(--font-size--md);
    color: var(--color-foreground);
    text-transform: var(--product-title-case);
    display: block;
    margin-block-start: calc((var(--font-size--md) - 1lh) / 2);
  }

  .cart-items__variants {
    display: block;
  }


  .cart-items__variant {
    display: inline;
  }

  .cart-items__variant dt,
  .cart-items__variant dd {
    display: inline;
    margin: 0;
  }

  .cart-items__quantity {
    grid-area: quantity;
    margin-block-start: var(--margin-xs);
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: var(--gap-xs);
    width: fit-content;
  }

  .cart-items__quantity-controls {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: var(--gap-xs);
    width: fit-content;
  }

  .cart-items__quantity-controls > .volume-pricing-info {
    margin-inline-start: calc(-1 * var(--minimum-touch-target) - var(--gap-xs));
  }

  .cart-items__quantity .quantity-selector {
    display: inline-flex;
    font-size: var(--font-size--sm);
    height: auto;
  }

  .cart-items__remove {
    background-color: transparent;
    color: var(--color-foreground);
    width: var(--minimum-touch-target);
    height: var(--minimum-touch-target);
    justify-content: center;
    box-shadow: none;
    padding: 0;
  }

  .cart-items__media {
    grid-area: media;
    padding: 0;
  }

  .cart-items__price {
    grid-area: price;
    min-height: unset;
    min-width: var(--cart-item-price-width);
    text-align: end;
    display: block;
    font-size: var(--font-size--sm);
    line-height: var(--line-height);
  }


  .cart-items__price-unit {
    font-size: var(--font-size--xs);
    padding-block-start: var(--padding-2xs);
  }

  .cart-items__media-container {
    display: flex;
    aspect-ratio: var(--ratio);
    position: relative;
    width: 100%;
    overflow: hidden;
  }

  .cart-items__media-image {
    aspect-ratio: inherit;
    object-fit: cover;
    object-position: center center;
    width: 100%;
    height: auto;
  }

  .cart-items__empty-button {
    margin-top: var(--margin-md);
    padding-inline: var(--padding-4xl);
    padding-block: var(--padding-lg);
    /* Terracota + píldora, igual que "Ver tu pedido" del email o el CTA
       del hero de la home — el negro venía del esquema de color por
       defecto del tema (ningún esquema define terracota como color de
       botón primario, mismo motivo ya documentado para el botón de
       "Añadir al carrito" en product-style-overrides.liquid). */
    --button-background-color: #B44C21 !important;
    --button-color: #FFFFFF !important;
    --button-border-color: #B44C21 !important;
    border-radius: 999px !important;
  }

  .cart-items__empty-button:hover {
    --button-background-color: #9C4019 !important;
    --button-border-color: #9C4019 !important;
  }

  /* Error message */
  .cart-items__error {
    display: flex;
    align-items: flex-start;
    width: 100%;
    grid-area: error;
    margin-block-start: var(--margin-xs);
    opacity: 1;
    overflow: hidden;
    transform: translateY(0);
    transition: opacity var(--drawer-animation-speed) var(--animation-easing),
      transform var(--drawer-animation-speed) var(--animation-easing);

    @starting-style {
      opacity: 0;
      transform: translateY(-0.5rem);
    }
  }

  .cart-item__error {
    display: flex;
    align-items: flex-start;
    width: 100%;
    font-size: var(--font-size--sm);
    padding-block: var(--padding-2xs);
  }

  .cart-item__error .svg-wrapper {
    flex-shrink: 0;
    width: var(--icon-size-xs);
    height: var(--icon-size-xs);
    margin-inline: var(--margin-3xs) var(--margin-xs);
    margin-block-start: var(--margin-3xs);
  }

  @container cart-items (min-width: 720px) {
    /* Cart page: original layout */
    .cart-items__table-row {
      --cart-item-price-width: 6rem;

      grid-template-columns: 7.5rem 1fr 1fr minmax(var(--cart-item-price-width), auto);
      grid-template-rows: min-content 1fr;
      grid-template-areas:
        'media details quantity price'
        'media details error error';
    }

    .cart-items__quantity,
    .cart-items__price {
      grid-area: initial;
    }

    .cart-items__quantity {
      margin-top: 0;
    }

    .cart-items__price {
      min-height: var(--minimum-touch-target);
      display: flex;
      flex-direction: column;
      align-items: flex-end;
    }

    /* Cart drawer: separate areas for variants and unit price */
    .cart-drawer .cart-items__table-row--full-width-variants {
      grid-template-rows: min-content min-content min-content 1fr;
      grid-template-areas:
        'media details quantity price'
        'media variants variants variants'
        'media unit_price unit_price unit_price'
        'media error error error';

      .cart-items__quantity,
      .cart-items__price {
        grid-area: initial;
      }
    }
  }

  .cart__subtotal-container,
  .cart__total-container {
    display: flex;
    flex-direction: column;
  }

  .cart__total-container {
    row-gap: var(--gap-2xs);

    &.cart__total-container--has-installments {
      row-gap: var(--gap-xs);
    }
  }

  .cart__subtotal-container:empty {
    display: none;
  }

  .cart__summary-totals {
    display: flex;
    flex-direction: column;
    gap: var(--gap-xl);
    width: 100%;
    border-block-start: none;

    &:has(> :first-child:not(.cart__subtotal-container, .cart__total-container)) {
      padding-block-start: 0;
      border-block-start: none;
    }

    @media screen and (min-width: 750px) {
      padding-block-start: 0;
    }
  }

  .cart__subtotal-container,
  .cart__subtotal-container * {
    font-size: var(--font-size--sm);
  }

  .cart__total {
    font-weight: var(--font-weight-bold);
  }

  .cart__total-label {
    font-size: var(--font-size--sm);
  }

  .cart__total-value {
    font-size: var(--font-size--xl);

    @media screen and (max-width: 749px) {
      font-size: var(--font-size--lg);
    }
  }

  .cart-primary-typography {
    font-family: var(--cart-primary-font-family);
    font-style: var(--cart-primary-font-style);
    font-weight: var(--cart-primary-font-weight);
  }

  .cart-secondary-typography {
    font-family: var(--cart-secondary-font-family);
    font-style: var(--cart-secondary-font-style);
    font-weight: var(--cart-secondary-font-weight);
  }

  .cart__ctas {
    width: 100%;
    display: grid;
    gap: var(--checkout-button-gap);
    grid-auto-flow: row;
    grid-template-columns: 1fr;
  }

  .cart__additional-checkout-buttons {
    width: 100%;
  }

  shopify-accelerated-checkout-cart {
    --shopify-accelerated-checkout-inline-alignment: center;
    --shopify-accelerated-checkout-button-border-radius: var(--style-border-radius-buttons-primary);
    --shopify-accelerated-checkout-row-gap: var(--checkout-button-gap, 10px);
  }

  /* Remove animation */
  .remove-icon-bottom,
  .remove-icon-top {
    transition: transform var(--animation-speed) var(--animation-easing);
  }

  .cart-items__remove:hover .remove-icon-top {
    transform: translate(calc(-1 * var(--icon-stroke-width)), var(--icon-stroke-width)) rotate(-15deg);
  }

  .cart-items__remove:is(:hover, :active) .remove-icon-bottom {
    transform: translateY(var(--icon-stroke-width));
  }

  .cart-items__table-row.removing .remove-icon-bottom {
    transform: translateY(0);
  }

  .cart-items__table-row.removing .remove-icon-top {
    animation: removeButtonClickedIconTop var(--animation-speed) var(--animation-easing) forwards;
  }

  @keyframes removeButtonClickedIconTop {
    50% {
      transform: translate(0, calc(-1 * var(--icon-stroke-width)));
    }

    100% {
      transform: translate(0, 0);
    }
  }

  .cart-items__properties {
    display: block;
    margin-block-start: var(--margin-2xs);
  }

  .cart-items__property {
    display: block;
  }

  .cart-items__properties dt,
  .cart-items__properties dd {
    display: inline;
    margin: 0;
    overflow-wrap: break-word;
  }

  @media screen and (min-width: 750px) {
    .cart-items .quantity-selector {
      --quantity-selector-width: 105px;
      height: var(--button-size-md);
      width: var(--quantity-selector-width);
    }

    .cart-items .quantity-selector button {
      width: var(--button-size-md);
      height: var(--button-size-md);
    }

    .cart-items .quantity-selector input {
      max-width: calc(var(--quantity-selector-width) - var(--button-size-md) * 2);
    }
  }

  @media screen and (prefers-reduced-motion: no-preference) {
    html:active-view-transition-type(empty-cart-drawer) {
      .cart-items__empty-button,
      .cart__checkout-button {
        view-transition-name: cart-drawer-primary-action;

        & > .button-text {
          view-transition-name: cart-drawer-primary-action-text;
        }
      }
    }
  }

  ::view-transition-old(cart-drawer-primary-action-text),
  ::view-transition-new(cart-drawer-primary-action-text) {
    height: 100%;
    object-fit: none;
    overflow: clip;
    overflow-clip-margin: 1em;
  }

  ::view-transition-old(cart-drawer-primary-action-text) {
    animation: cart-drawer-primary-action-text var(--animation-speed) var(--animation-easing) reverse forwards;
  }
  ::view-transition-new(cart-drawer-primary-action-text) {
    animation: cart-drawer-primary-action-text var(--animation-speed) var(--animation-easing) forwards;
  }

  ::view-transition-old(cart-drawer-primary-action),
  ::view-transition-new(cart-drawer-primary-action) {
    height: 100%;
  }

  ::view-transition-group(cart-drawer-primary-action-text),
  ::view-transition-group(cart-drawer-primary-action) {
    animation-duration: var(--spring-d300-b0-duration);
    animation-timing-function: var(--spring-d300-b0-easing);
  }

  @keyframes cart-drawer-primary-action-text {
    from {
      filter: blur(3px);
      opacity: 0;
    }
    to {
      filter: none;
      opacity: 1;
    }
  }
/* END_SNIPPET:cart-products */
/* START_SNIPPET:gift-card-recipient-form-styles (INDEX:192) */
.recipient-form {
    --options-border-radius: var(--variant-picker-button-radius);
    --options-border-width: var(--variant-picker-button-border-width);

    display: flex;
    flex-direction: column;
    padding-bottom: var(--padding-2xl);
  }

  .recipient-form__send-to {
    padding: 0;
    margin-block-end: var(--margin-xs);
  }

  .gift-card-form-option {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--gap-sm);
    padding: 0;
    border: none;
  }

  .gift-card-form-option__button-label {
    display: flex;
    align-items: center;
    position: relative;
    padding-block: var(--padding-sm);
    padding-inline: var(--padding-lg);
    border: var(--style-border-width) solid var(--color-variant-border);
    border-radius: var(--options-border-radius);
    border-width: var(--options-border-width);
    overflow: clip;
    justify-content: center;
    min-width: auto;
    background-color: var(--color-variant-background);
    color: var(--color-variant-text);
    transition: background-color var(--animation-speed) var(--animation-easing),
      border-color var(--animation-speed) var(--animation-easing);

    &:hover {
      background-color: var(--color-variant-hover-background);
      border-color: var(--color-variant-hover-border);
      color: var(--color-variant-hover-text);
    }
  }

  .gift-card-form-option__button-label:has(:focus-visible) {
    --variant-picker-stroke-color: var(--color-foreground);

    border-color: var(--color-foreground);
    outline: var(--focus-outline-width) solid var(--color-foreground);
    outline-offset: var(--focus-outline-offset);
  }

  .gift-card-form-option__button-label:has(:checked) {
    color: var(--color-selected-variant-text);
    background-color: var(--color-selected-variant-background);
    border-color: var(--color-selected-variant-border);
    transition: background-color var(--animation-speed) var(--animation-easing),
      border-color var(--animation-speed) var(--animation-easing);

    &:hover {
      background-color: var(--color-selected-variant-hover-background);
      border-color: var(--color-selected-variant-hover-border);
      color: var(--color-selected-variant-hover-text);
    }
  }

  .gift-card-form-option__button-label input {
    position: absolute;
    inset: 0;
    opacity: 0;
    margin: 0;
    cursor: pointer;
    width: 100%;
    height: 100%;
  }

  .recipient-fields {
    display: flex;
    flex-direction: column;
    gap: var(--gap-sm);
    transition: opacity 0.3s var(--animation-easing);
    padding-block-start: var(--padding-xl);
  }

  .recipient-fields[hidden] {
    display: none;
  }

  .field--send-on {
    display: flex;
    flex-direction: column;
  }

  .recipient-form__message {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: var(--gap-sm);
    margin-top: var(--margin-sm);
  }

  .recipient-form-field-label {
    position: absolute;
    left: var(--padding-sm);
    bottom: var(--padding-sm);
    font-style: italic;
    color: var(--color-input-text);
  }

  .recipient-fields__textarea {
    min-height: 5.5rem;
    overflow-y: auto;

    /* Space for the character count */
    padding-bottom: calc(var(--padding-sm) * 3);
    scroll-padding-bottom: calc(var(--padding-sm) * 3);
  }

  .recipient-fields__input {
    flex-grow: 1;
    transition: background-color var(--animation-speed) ease, border-color var(--animation-speed) ease;
    padding: var(--input-padding);
    background-color: var(--color-input-background);
    color: var(--color-input-text);
    text-align: left;
    font-size: var(--font-paragraph--size);
    border: var(--style-border-width-inputs) solid var(--color-input-border);
    border-radius: var(--style-border-radius-inputs);

    &:autofill {
      background-color: var(--color-input-background);
      color: var(--color-input-text);
    }

    &:is(:focus, :hover) {
      background-color: var(--color-input-hover-background);
    }

    &:is(:focus) {
      outline-color: var(--color-input-background);
    }
  }

  /* Date picker calendar icon
   * Safari doesn't show the icon and Firefox correctly applies the color from the input field.
   * Webkit browsers need the mask-image trick to use the correct icon color.
   */
  .field--send-on .recipient-fields__input::-webkit-calendar-picker-indicator {
    cursor: pointer;
    mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='currentColor' viewBox='0 0 24 24' %3E%3Cg%3E%3Cpath d='M9 11H7v2h2v-2zm4 0h-2v2h2v-2zm4 0h-2v2h2v-2zm2-7h-1V2h-2v2H8V2H6v2H5c-1.11 0-1.99.9-1.99 2L3 20c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 16H5V9h14v11z'%3E%3C/path%3E%3C/g%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-image: none;
    background-color: currentColor;
    mask-type: match-source;
  }

  /* For Webkit browsers - text cursor for input area */
  .field--send-on .recipient-fields__input::-webkit-datetime-edit {
    cursor: text;
  }

  .field--send-on .recipient-fields__input::-webkit-datetime-edit-year-field,
  .field--send-on .recipient-fields__input::-webkit-datetime-edit-month-field,
  .field--send-on .recipient-fields__input::-webkit-datetime-edit-day-field {
    /* Override the disabled color */
    color: var(--color-input-text);
  }

  /* Fallback for other browsers */
  .field--send-on .recipient-fields__input {
    cursor: text;
  }

  /* For Firefox - entire field is clickable, so show pointer */
  @supports (-moz-appearance: none) {
    .field--send-on .recipient-fields__input {
      cursor: pointer;
    }
  }
/* END_SNIPPET:gift-card-recipient-form-styles */
/* START_SNIPPET:group (INDEX:195) */
.group-block__link {
    position: absolute;
    inset: 0;
  }

  .group-block__link ~ :is(.group-block-content, .group-block__media-wrapper) {
    pointer-events: none;

    :is(a, button, input, textarea, select) {
      pointer-events: auto;
    }
  }

  /* Needs the .group-block__link ~ to be specific enough to take effect. */
  .group-block__link ~ .group-block-content--design-mode {
    pointer-events: auto;
  }
/* END_SNIPPET:group */
/* START_SNIPPET:header-actions (INDEX:196) */
.header {
    --account-offset-top: calc(
      var(--header-group-height) + (var(--header-height) * var(--transparent-header-offset-boolean))
    );

    &[data-sticky-state='active'] {
      --account-offset-top: calc(var(--header-height) - 1px);
    }
  }

  .account-button {
    /* Remove the background color from the color scheme, we want to inherit the color of the header */
    background: transparent;
  }

  .account-button__icon,
  .account-button__text {
    color: var(--color-account-icon);
    transition: color var(--header-content-transition-timing);
    -webkit-font-smoothing: antialiased;
  }

  shopify-account {
    --shopify-account-font-heading: var(--font-heading--family);
    --shopify-account-font-heading-weight: var(--font-heading--weight);
    --shopify-account-font-body: var(--font-body--family);
    --shopify-account-font-body-weight: var(--font-body--weight);
    --shopify-account-radius-base: var(--style-border-radius-popover);
    --shopify-account-radius-button: var(--style-border-radius-buttons-primary);
    --shopify-account-radius-button-small: var(--style-border-radius-buttons-primary);
    --shopify-account-radius-input: var(--style-border-radius-buttons-primary);
    --shopify-account-color-background: var(--color-background);
    --shopify-account-color-text: var(--color-foreground);
    --shopify-account-color-accent: var(--color-primary-button-background);
    --shopify-account-color-accent-text: var(--color-primary-button-text);
    --shopify-account-dialog-position-top: var(--account-offset-top);

    &:not(:defined) {
      min-width: 44px;
      height: 44px;
      display: flex;
      justify-content: center;
      align-items: center;
      /* Match the line height of the other buttons */
      line-height: normal;
    }
  }

  .account-button__fallback {
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background-color: var(--shopify-account-color-accent, #0a142f);
  }

  .account-button--text shopify-account {
    color: inherit;
  }

  .cart-drawer {
    --cart-drawer-padding: var(--padding-xl) var(--padding-xl);
    --cart-drawer-padding-desktop: var(--padding-xl) var(--padding-2xl);

    @media screen and (min-width: 750px) {
      margin-inline-end: calc(var(--gap-xs) * -1);
    }
  }

  @media screen and (min-width: 750px) {
    .cart-drawer--text {
      display: flex;
      align-items: center;
    }
  }

  .cart-drawer__dialog {
    position: fixed;
    overflow: hidden;
    border-radius: 0;
    width: 100%;
    height: 100%;
    margin: 0 0 0 auto;
    padding: 0;
    border-left: var(--style-border-drawer);
    border-top: 4px solid #B44C21;
    box-shadow: var(--shadow-drawer);
    background-color: #FAF6F1;

    @media screen and (min-width: 750px) {
      width: var(--sidebar-width);
      max-width: 95vw;
    }
  }

  /* Needed to ensure the drawer is full height */
  .cart-drawer__dialog:modal {
    max-height: 100dvh;
    overflow-y: hidden;
  }

  .cart-drawer__inner {
    height: 100%;
    overflow: hidden;
  }

  .cart-drawer__content {
    height: calc(100% - var(--header-height));
    display: flex;
    flex-direction: column;
    padding: 0;
    background-color: #FAF6F1;
    flex-grow: 1;
    overflow-y: auto;
  }

  .cart-drawer__heading {
    display: flex;
    align-items: center;
    gap: var(--gap-xs);
    margin-bottom: 0;
  }

  .cart-drawer__close-button {
    margin-right: calc(var(--padding-sm) * -1);
    top: var(--margin-sm);

    @media screen and (max-width: 749px) {
      top: var(--margin-2xs);
    }
  }

  .cart-drawer--empty .cart-drawer__content {
    text-align: center;
    min-height: auto;
  }

  .cart-drawer--empty .cart-drawer__heading {
    margin-bottom: var(--margin-md);
  }

  .cart-drawer__items .cart-items__table-row {
    padding-bottom: var(--gap-xl);
    border-bottom: var(--style-border-width) solid var(--color-border);
    margin-bottom: var(--gap-xl);
  }

  .cart-drawer__items .cart-items__table-row:has(+ .cart-items__nested-line) {
    border-bottom: none;
    margin-bottom: 0;
  }

  .cart-drawer__items .cart-items__table-row:last-child {
    border-bottom: none;
  }

  .cart-drawer__summary {
    --cart-drawer-summary-padding: var(--padding-lg);

    position: sticky;
    bottom: 0;
    z-index: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--gap-xl);
    padding: var(--cart-drawer-summary-padding);
    margin-top: auto;
    background-color: #FAF6F1;
    /* stylelint-disable-next-line color-named */
    mask-image: linear-gradient(to bottom, transparent, black var(--cart-drawer-summary-padding));

    @media screen and (min-width: 750px) {
      --cart-drawer-summary-padding: var(--padding-2xl);
    }
  }

  .cart-drawer__dialog[cart-summary-sticky='false'] .cart-drawer__summary {
    position: static;
    mask-image: none;
  }

  .cart-drawer__dialog[cart-summary-sticky='false'] .cart-drawer__items {
    overflow: unset;
  }

  .cart-actions summary {
    padding-inline: 0;
    padding-block: var(--padding-sm);
    line-height: 1.2;
    min-height: var(--minimum-touch-target);
  }

  .cart-drawer__summary .cart__summary-totals:not(:has(.cart__subtotal-container:empty)) {
    border-block-start: var(--style-border-width) solid var(--color-border);
    padding-block-start: var(--padding-2xl);
  }

  .cart-drawer__summary .cart-note {
    @media screen and (min-width: 750px) {
      margin-block-start: var(--margin-3xs);
    }
  }

  .cart-drawer__heading--empty {
    display: flex;
    justify-content: center;
  }

  .cart-drawer__items {
    display: flex;
    flex-direction: column;
    padding-inline: var(--cart-drawer-padding);
    padding-block-start: var(--padding-lg);
    overflow-y: auto;

    @media screen and (min-width: 750px) {
      padding-inline: var(--cart-drawer-padding-desktop);
    }
  }

  /* La línea divisoria gris ya no hace falta: cada producto es ahora su
     propia tarjeta con fondo propio (ver cart-products.liquid). El
     padding-bottom que tenía esta regla (para separar de la línea) se
     quita porque ahora el espaciado interno de la caja lo pone
     cart-products.liquid — aquí solo queda el margin-bottom, que separa
     una tarjeta de la siguiente por fuera de la caja. */
  .cart-drawer__items .cart-items__table-row {
    margin-bottom: var(--gap-xl);
  }

  .cart-drawer__items .cart-items__table-row:last-child {
    padding-block-end: 0;
    margin-block-end: 0;
  }

  .cart-drawer--empty .cart-drawer__inner {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    height: 100dvh;
    margin-top: 0;
  }

  .cart-drawer:not(:has(.cart-form)) .cart-drawer__content {
    justify-content: center;
  }

  .cart-drawer__header {
    background-color: #FAF6F1;
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    padding: var(--cart-drawer-padding);
    border-bottom: var(--style-border-width) solid none;
    position: sticky;
    top: 0;
    z-index: 1;

    @media screen and (min-width: 750px) {
      padding-inline: var(--cart-drawer-padding-desktop);
    }
  }

  .cart-drawer--empty .cart-drawer__header {
    justify-content: right;
    border-bottom: none;
    padding-bottom: 0;
  }

  .cart-drawer--empty .cart-drawer__heading {
    text-align: center;
  }

  header-actions {
    display: flex;

    @media screen and (max-width: 749px) {
      justify-self: flex-end;
    }
  }

  @media screen and (min-width: 750px) {
    .header-actions--text {
      gap: var(--gap-xl);
    }

    .header-actions__text-style {
      font-size: var(--header-actions-font-size);
      font-family: var(--header-actions-font-family);
      font-weight: var(--header-actions-font-weight);
      text-transform: var(--header-actions-text-case);
    }
  }

  #header-component[data-menu-style='drawer'] header-actions {
    justify-self: flex-end;
  }

  .header__column--right header-actions {
    margin-inline-start: calc(var(--gap-md) * -1);
  }

  .header-actions__cart-icon {
    --cart-bubble-size: 20px;
    --cart-bubble-top: 4.5px;
    --cart-bubble-right: 2.5px;

    position: relative;
  }

  .header-actions__cart-icon .cart-bubble {
    position: absolute;
    width: var(--cart-bubble-size, 20px);
    top: var(--cart-bubble-top);
    right: var(--cart-bubble-right);
  }

  @media screen and (min-width: 750px) {
    .header-actions__cart-icon--text.header-actions__cart-icon .cart-bubble {
      position: relative;
      top: 0;
    }
  }

  .cart-drawer__heading .cart-bubble {
    width: fit-content;
    border-radius: var(--style-border-radius-buttons-primary);
    aspect-ratio: auto;
    padding: var(--cart-padding);
  }

  .cart-drawer__heading .cart-bubble[data-maintain-ratio] {
    width: min(1lh, 22px);
    height: min(1lh, 22px);
  }

  .header-actions__cart-icon .cart-bubble__text,
  .cart-drawer__heading .cart-bubble__text {
    font-family: var(--font-paragraph--family);
    font-weight: var(--font-paragraph--weight);
  }

  .header-actions__cart-icon.header-actions__cart-icon--has-cart svg {
    /* Create donut mask where the cart bubble sits */
    mask: radial-gradient(
      calc(var(--cart-bubble-size) + 2px) at calc(100% - var(--cart-bubble-right)) var(--cart-bubble-top),
      transparent 45.45%,
      #fff 45.45%,
      #fff 100%
    );
  }

  .cart-drawer__heading .cart-bubble .cart-bubble__background {
    background-color: #B44C21;
  }

  .cart-drawer__heading .cart-bubble__text {
    color: #FFFFFF;
    font-size: clamp(var(--font-size--3xs), 0.75em, var(--font-size--xs));
  }

  .cart-bubble.cart-bubble--animating .cart-bubble__background {
    animation: grow var(--animation-speed) var(--animation-easing);
  }

  .cart-bubble--animating .cart-bubble__text {
    --start-y: -1em;
    --start-opacity: 1;
    /* Set initial transform state before animation starts */
    transform: translate(0, var(--start-y, -1em));
    opacity: var(--start-opacity, 1);
    animation: move-and-fade var(--animation-speed) var(--animation-easing);
  }

  cart-icon:has(.cart-bubble__text-count:empty) {
    --cart-bubble-size: 10px;
    --cart-bubble-top: 9px;
    --cart-bubble-right: 9px;

    .svg-wrapper {
      --cart-bubble-top: 4px;
      --cart-bubble-right: 4px;
    }
  }

  @media screen and (min-width: 750px) {
    cart-icon.header-actions__cart-icon--text:has(.cart-bubble__text-count:empty) {
      --cart-bubble-right: 2.5px;
    }
  }

  @media screen and (prefers-reduced-motion: no-preference) {
    html:active-view-transition-type(empty-cart-drawer) {
      .cart-drawer__close-button {
        view-transition-name: cart-drawer-close-button;
      }
    }
  }

  :active-view-transition {
    .cart-drawer__header,
    .cart-drawer__content {
      background: transparent;
    }
  }

  ::view-transition-old(cart-drawer-content) {
    transform-origin: 50% 33%;
    animation: cart-contents-old var(--spring-d280-b0-duration) var(--spring-d280-b0-easing) forwards;
  }

  ::view-transition-new(cart-drawer-content) {
    transform-origin: top center;
    animation: cart-contents-new var(--spring-d280-b0-duration) var(--spring-d280-b0-easing) forwards;
  }

  @keyframes cart-contents-old {
    to {
      scale: 0.92;
      opacity: 0;
    }
  }

  @keyframes cart-contents-new {
    from {
      scale: 1.05;
      translate: 0 128px;
      filter: blur(1px);
      opacity: 0;
    }
  }
  .header-actions__text {
    display: flex;
    align-items: center;
  }

  @media screen and (min-width: 750px) {
    .header-actions__cart-icon--text {
      display: flex;
      align-items: center;
      gap: var(--gap-xs);
    }

    .header__column--right .header-actions--text {
      margin-inline-start: 0;
    }
  }
/* END_SNIPPET:header-actions */
/* START_SNIPPET:header-drawer (INDEX:197) */
.header__icon--menu {
    position: initial;
  }

  .menu-drawer-container .header__icon--summary {
    color: var(--color-foreground);
    display: flex;
    justify-content: center;
    align-items: center;
    padding: var(--padding-lg);
  }

  .header__icon--summary .header-drawer-icon {
    margin: auto;
    width: var(--icon-size-xs);
    height: var(--icon-size-xs);
  }

  .menu-drawer__featured-content {
    z-index: var(--layer-base);
    container-type: inline-size;
  }

  .menu-drawer__featured-content--childlist {
    z-index: var(--layer-flat);
  }

  .menu-drawer__featured-content-list {
    display: flex;
    gap: 1em;
    overflow-x: auto;
    padding-block-end: var(--padding-lg);
  }

  .menu-drawer__featured-content-list-item {
    flex: 0 0 auto;
  }

  .menu-drawer__featured-content-list-item--product {
    width: 35cqi;
  }

  .menu-drawer__featured-content-list-item--collection img.resource-card__image {
    width: 80cqi;
  }

  .menu-drawer__featured-content-list-item:first-child {
    margin-inline-start: var(--margin-xl);
  }

  .menu-drawer__featured-content-list-item:last-child {
    margin-inline-end: var(--margin-xl);
  }

  .menu-drawer__navigation {
    padding: 0;

    @media screen and (min-width: 750px) {
      margin-top: var(--drawer-header-desktop-top);
    }
  }

  details:not(.menu-open) .header__icon--menu .header-drawer-icon--close {
    display: none;
  }

  details.menu-open .header__icon--menu .header-drawer-icon--close {
    @media screen and (min-width: 750px) {
      display: none;
    }
  }

  details.menu-open .header__icon--menu .header-drawer-icon--open {
    display: none;

    @media screen and (min-width: 750px) {
      display: flex;
    }
  }

  .menu-drawer {
    position: fixed;
    transform: translateX(-100%);
    visibility: hidden;
    height: var(--drawer-height);
    width: var(--drawer-width);
    max-width: var(--drawer-max-width);
    z-index: var(--layer-menu-drawer);
    left: 0;
    top: 0;
    padding: 0;
    background-color: var(--color-background);
    overflow: auto;
    display: flex;
    border-right: var(--style-border-drawer);
    box-shadow: var(--shadow-drawer);
    flex-direction: column;

    @media screen and (min-width: 750px) {
      width: 25rem;
    }
  }

  /* When opening a submenu we don't want the first-level menu to be scrollable, so we reset the overflow  */
  .menu-drawer.menu-drawer--has-submenu-opened {
    overflow: initial;
  }

  .menu-drawer__backdrop {
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100dvh;
    backdrop-filter: brightness(0.75);
    z-index: var(--layer-heightened);
    opacity: 0;
    transition: opacity var(--drawer-animation-speed) ease;

    .menu-open & {
      opacity: 1;
    }
  }

  .menu-drawer,
  details[open] > .menu-drawer__submenu {
    transition: transform var(--drawer-animation-speed) ease, visibility var(--drawer-animation-speed) ease,
      opacity var(--drawer-animation-speed) ease;
  }

  .menu-open > .menu-drawer,
  .menu-open > .menu-drawer__submenu:not(.menu-drawer__menu--childlist) {
    transform: translateX(0);
    visibility: visible;
    opacity: 1;
    display: flex;
    flex-direction: column;
  }

  .menu-drawer__inner-container {
    position: relative;
    height: 100%;
  }

  .menu-drawer__navigation-container {
    display: grid;
    grid-template-rows: 1fr auto;
    align-content: space-between;
    overflow-y: auto;
    height: 100%;
  }

  .menu-drawer__inner-submenu {
    display: flex;
    flex-direction: column;
    height: 100%;
    overflow-y: auto;

    @media screen and (min-width: 750px) {
      margin-top: var(--drawer-header-desktop-top);
    }
  }

  .menu-drawer__nav-buttons {
    display: flex;
    justify-content: space-between;
    align-items: center;
  }

  .menu-drawer__menu {
    --menu-drawer-inline-padding: calc(var(--padding-sm) + 7px);

    list-style: none;
    padding-inline: var(--drawer-padding);
    margin-inline: 0;
    margin-block-start: 0;
  }

  .menu-drawer__menu--grid {
    display: grid;
    width: 100%;
    grid-template-columns: 1fr 1fr;
    gap: var(--padding-sm);
    padding-inline-end: var(--menu-drawer-inline-padding);
    padding-block-start: var(--padding-xs);
  }

  .menu-drawer__menu--childlist:not(.menu-drawer__menu--grid) {
    flex-grow: 1;
  }

  .menu-drawer__menu.has-submenu,
  .menu-drawer__menu--childlist:not(:has(.menu-drawer__animated-element)) {
    margin-block-end: var(--margin-xs);

    @media screen and (min-width: 750px) {
      margin-block-end: 2.5rem;
    }
  }

  .menu-drawer__list-item--divider {
    border-block-end: 1px solid var(--color-border);
  }

  .menu-drawer__list-item--deep:not(.menu-drawer__list-item--divider) .menu-drawer__menu {
    margin-block-start: -0.3rem;
  }

  .menu-drawer__list-item--flat.menu-drawer__list-item--divider .menu-drawer__menu {
    margin-block-start: -0.4rem;
  }

  .menu-drawer__menu-container--divider {
    border-block-end: 1px solid var(--color-border);
  }

  .menu-drawer__menu > .menu-drawer__list-item {
    display: flex;
    min-height: calc(2 * var(--padding-lg) + var(--icon-size-xs));
  }

  .menu-drawer__list-item--deep .menu-drawer__list-item,
  .menu-drawer__list-item--flat .menu-drawer__list-item {
    min-height: auto;
  }

  .menu-drawer__menu .menu-drawer__list-item--flat {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    margin-block-end: var(--margin-md);
  }

  .menu-drawer__menu--childlist .menu-drawer__list-item--flat {
    margin-block-end: var(--margin-sm);

    @media screen and (min-width: 750px) {
      margin-block-end: var(--margin-lg);
    }
  }

  .menu-drawer__menu--childlist .menu-drawer__list-item--flat.menu-drawer__list-item--divider {
    margin-block-end: 0;
  }

  .menu-drawer__list-item--flat .menu-drawer__menu--childlist {
    width: 100%;
    padding-inline: 0;
  }

  .menu-drawer-container[open] .menu-drawer__animated-element {
    animation: menu-drawer-nav-open var(--drawer-animation-speed) ease-in-out;
    animation-delay: calc(var(--drawer-animation-speed) + (var(--menu-drawer-animation-index) - 1) * 0.1s);
    animation-fill-mode: backwards;
  }

  .menu-drawer__menu accordion-custom .details-content--no-animation {
    animation: none;
    visibility: visible;
    opacity: 1;
    transform: translateX(0);
    transition: none;
  }

  .menu-drawer__menu details,
  .menu-drawer__menu-item,
  .menu-drawer__menu accordion-custom {
    width: 100%;
  }

  .menu-drawer__list-item--divider .menu-drawer__menu-item:not(.menu-drawer__menu-item--child) {
    min-height: calc(2 * var(--padding-lg) + var(--icon-size-xs));
  }

  .menu-drawer__menu-item--mainlist {
    min-height: calc(2 * var(--padding-lg) + var(--icon-size-xs));
    font-family: var(--menu-top-level-font-family);
    font-style: var(--menu-top-level-font-style);
    font-weight: var(--menu-top-level-font-weight);
    font-size: var(--menu-top-level-font-size);
    line-height: var(--menu-top-level-font-line-height);
    text-transform: var(--menu-top-level-font-case);
    color: var(--menu-top-level-font-color);
    justify-content: space-between;

    &:hover {
      color: var(--menu-top-level-font-color);
    }
  }

  /* ===== NALIBLU: colores del menú principal (móvil) =====
     Mismos criterios que el menú desktop: inactivos en verde salvia
     #7F7F6A siempre, activo mantiene su color pero en negrita. */
  .menu-drawer__menu-item--mainlist:not([aria-current='page']) {
    color: #7F7F6A !important;
  }

  /* Hover: mismo patrón "atenuar hermanos" que lupa/cuenta/carrito — opacity
     en vez de cambio de color, para no pelear con el !important de arriba. */
  .menu-drawer__menu-item--mainlist {
    transition: opacity var(--animation-speed) var(--animation-easing);
  }

  @media (hover: hover) {
    .menu-drawer__menu:has(.menu-drawer__menu-item--mainlist:hover)
      .menu-drawer__menu-item--mainlist:not(:hover) {
      opacity: var(--opacity-subdued-text);
    }
  }

  .menu-drawer__menu-item--mainlist[aria-current='page'] {
    font-weight: 700 !important;
  }

  .menu-drawer__menu-item--parent {
    font-family: var(--menu-parent-font-family);
    font-style: var(--menu-parent-font-style);
    font-weight: var(--menu-parent-font-weight);
    font-size: var(--menu-parent-font-size);
    line-height: var(--menu-parent-font-line-height);
    text-transform: var(--menu-parent-font-case);
    color: var(--menu-parent-font-color);

    &:hover {
      color: var(--menu-parent-font-color);
    }
  }

  .menu-drawer__menu-item--child {
    font-family: var(--menu-child-font-family);
    font-style: var(--menu-child-font-style);
    font-weight: var(--menu-child-font-weight);
    font-size: var(--menu-child-font-size);
    line-height: var(--menu-child-font-line-height);
    text-transform: var(--menu-child-font-case);
    color: var(--menu-child-font-color);

    &:hover {
      color: var(--menu-child-font-color);
    }
  }

  .menu-drawer__menu--childlist summary.menu-drawer__menu-item {
    display: flex;
    width: 100%;
    padding-inline-end: 0;
  }

  .menu-drawer__list-item--deep .menu-drawer__menu,
  .menu-drawer__menu--grandchildlist {
    padding-inline: 0;
  }

  .menu-drawer__list-item--deep .menu-drawer__menu {
    padding-block-end: 0.5rem;
  }

  .menu-drawer__list-item--deep.menu-drawer__list-item--divider .menu-drawer__menu {
    padding-block-end: 0.3rem;
  }

  .menu-drawer__list-item--flat.menu-drawer__list-item--divider .menu-drawer__menu--grandchildlist {
    padding-block-end: 0.5rem;
  }

  .menu-drawer__menu-item {
    display: flex;
    padding: var(--padding-2xs) 0;
    position: relative;
    text-decoration: none;
    justify-content: space-between;
    align-items: center;
  }

  .menu-drawer__menu-item:has(> .menu-drawer__link-image) {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: flex-start;
    row-gap: var(--padding-3xs);
    padding: 0;
  }

  .menu-drawer__link-image {
    width: 100%;
    position: relative;
    aspect-ratio: 16 / 9;
    object-fit: cover;
  }

  /* Fix alignment for collection image mode links without images in drawer */

  /* Target menu items in grids that have images */
  .menu-drawer__menu--grid:has(.menu-drawer__link-image) .menu-drawer__menu-item:not(:has(> .menu-drawer__link-image)) {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: flex-start;
    row-gap: var(--padding-3xs);
    padding: 0;
  }

  .menu-drawer__menu--grid:has(.menu-drawer__link-image)
    .menu-drawer__menu-item:not(:has(> .menu-drawer__link-image))::before {
    content: '';
    display: block;
    width: 100%;
    aspect-ratio: 16 / 9;
    background-color: var(--color-foreground-muted);
    opacity: 0.1;
    border-radius: var(--menu-image-border-radius);
  }

  .menu-drawer__close-button {
    position: relative;
    right: auto;
    top: auto;
    width: fit-content;
    height: fit-content;
    color: inherit;
    padding: var(--padding-lg);
  }

  .menu-drawer__back-button {
    display: flex;
    width: 100%;
    padding: var(--padding-md) var(--padding-xl);
    border: none;
    align-items: center;
    color: var(--color-foreground);
    background-color: transparent;
    text-align: left;
    text-decoration: none;
    white-space: nowrap;
    overflow-x: hidden;
    line-height: 1.2;
    box-shadow: none;
  }

  .menu-drawer__menu-item-text {
    overflow: hidden;
    text-overflow: ellipsis;
  }

  /** Styles when the country selector is hidden */
  .menu-drawer .language-selector:not(.menu-drawer__submenu *) {
    width: fit-content;
    padding-inline-start: 0;

    .localization-form__select {
      text-align: left;
    }
  }

  .menu-drawer__menu-item > .svg-wrapper {
    width: fit-content;
    height: fit-content;
    margin: 0;
    padding-block: var(--padding-lg);
    padding-inline-start: var(--padding-xl);
    flex-shrink: 0;
  }

  .menu-drawer__list-item--divider .menu-drawer__menu-item > .svg-wrapper {
    padding-block: var(--padding-md);
  }

  .menu-drawer svg {
    width: var(--icon-size-xs);
    height: var(--icon-size-xs);
  }

  .menu-drawer__submenu {
    position: absolute;
    width: 100%;
    top: 0;
    height: 100dvh;
    left: 0;
    background-color: var(--color-background);
    z-index: var(--layer-flat);
    transform: translateX(-5%);
    visibility: hidden;
    overflow-y: auto;
    opacity: 0;
  }

  .menu-drawer__back-button > .svg-wrapper {
    margin-right: var(--padding-md);
    width: var(--icon-size-xs);
    height: var(--icon-size-xs);
  }

  .menu-drawer__utility-links {
    display: flex;
    flex-direction: column;
    padding: 0;
    margin-block: auto var(--padding-sm);
    margin-inline-start: var(--padding-xl);
    background-color: rgb(var(--color-foreground) 0.03);
  }

  .menu-drawer__account {
    display: inline-flex;
    align-items: center;
    gap: var(--gap-xs);
    text-decoration: none;
    height: 44px;
    font-size: 1.4rem;
    color: rgb(var(--color-foreground));
  }

  .menu-drawer__account svg {
    height: var(--icon-size-sm);
    width: var(--icon-size-sm);
  }

  .menu-drawer__account shop-user-avatar {
    --shop-avatar-size: 2.4rem;

    margin-right: 0.55rem;
    margin-left: -0.45rem;
  }

  .menu-drawer__link-image,
  .menu-drawer__featured-product-image,
  .menu-drawer__featured-collection-image,
  .menu-drawer__featured-collection-link::before {
    border-radius: var(--menu-image-border-radius);
  }

  @keyframes menu-drawer-nav-open {
    0% {
      visibility: hidden;
      opacity: 0;
      transform: translateX(-0.5rem);
    }

    100% {
      visibility: visible;
      opacity: 1;
      transform: translateX(0);
    }
  }

  @keyframes menu-drawer-subnav-open {
    0% {
      visibility: visible;
      opacity: 1;
      transform: translateX(0);
    }

    100% {
      visibility: hidden;
      opacity: 0;
      transform: translateX(-1rem);
    }
  }

  /* Drawer Localization Styles */
  .drawer-localization__button .icon-flag {
    width: var(--menu-localization-font-size, var(--icon-size-sm));
    height: var(--menu-localization-font-size, var(--icon-size-sm));
    clip-path: circle(50%); /* stylelint-disable-line */
    background-position: center;
    background-size: cover;
    margin-inline-end: 4px;
    position: relative;
  }

  .drawer-localization__button .icon-flag::after {
    content: '';
    position: absolute;
    inset: 0;
    box-shadow: inset 0 0 var(--size-shadow) var(--color-shadow);
    border-radius: 50%;
  }

  .drawer-localization .country-filter {
    padding-block: 8px;
  }

  .drawer-localization .drawer-localization__button {
    display: flex;
    padding: 0;
    position: relative;
    text-decoration: none;
    height: 44px;

    &:hover {
      color: var(--color-foreground);
    }
  }

  .drawer-localization .drawer-localization__button .icon-caret {
    width: fit-content;
    height: fit-content;
    margin: 0;
    padding: var(--padding-xl) var(--padding-xl) var(--padding-xl) var(--padding-xs);
  }

  .menu-drawer__localization:not(drawer-localization-component) .language-selector {
    font-family: var(--menu-localization-font);
    font-size: var(--menu-localization-font-size);
  }

  .menu-drawer__localization .language-selector.h5 {
    padding-inline-start: 0;
  }

  .drawer-localization {
    display: contents;
    color: var(--color-foreground);
  }

  .drawer-localization localization-form-component {
    position: relative;
    height: 100%;
  }

  .drawer-localization .mobile-localization,
  .drawer-localization .drawer-localization__button--label {
    display: flex;
    gap: var(--gap-xs);
    margin-block: 0;
    align-items: center;
  }

  .drawer-localization__button--label.h6 {
    font-family: var(--menu-localization-font);
  }

  .drawer-localization img {
    width: var(--icon-size-sm);
  }

  .drawer-localization .localization-button__icon,
  .drawer-localization .localization-button__icon svg {
    width: var(--icon-size-xs);
    height: var(--icon-size-xs);
  }

  .drawer-localization summary.is-disabled {
    pointer-events: none;
  }

  .drawer-localization .localization-wrapper {
    width: 100%;
  }

  .drawer-localization .localization-form {
    display: flex;
    flex-direction: column;
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
  }

  .drawer-localization .localization-form > * {
    padding-inline: var(--padding-xl);
  }

  .drawer-localization .language-selector .svg-wrapper.icon-caret {
    transform: translateY(-50%) rotate(0deg);
  }

  .drawer-localization .language-selector .svg-wrapper.icon-caret svg {
    transform: none;
  }

  /* ===== NALIBLU: drawer ===== */

  /* Fondo igual que el header */
  .menu-drawer {
    background-color: #FAF6F1 !important;
  }

  /* Selector de idioma: arriba-derecha, flotando sobre el contenido */
  .menu-drawer__utility-links {
    position: static;
  }

  .menu-drawer .menu-drawer__localization:not(drawer-localization-component *) {
    position: absolute;
    top: 0;
    right: 0;
    padding: 14px 16px;
    background: transparent;
    display: flex;
    align-items: center;
    z-index: 10;
  }

  /* "ES" ligeramente más grande en el drawer */
  .menu-drawer .naliblu-lang__code {
    font-size: 1.25rem;
  }

  /* El dropdown del idioma se abre hacia abajo normalmente */
  .menu-drawer .menu-drawer__localization .naliblu-lang__menu {
    top: 100%;
    left: auto;
    right: 0;
    transform: none;
  }
/* END_SNIPPET:header-drawer */
/* START_SNIPPET:localization-form (INDEX:206) */
/* Localization */
  localization-form-component {
    display: flex;
    width: var(--width, auto);

    @media screen and (min-width: 750px) {
      position: relative;
    }
  }

  localization-form-component[data-show-filter='false'] .country-selector-form__wrapper {
    padding-block-start: var(--padding-xs);
  }

  .localization-form {
    width: 100%;
  }

  localization-form-component .button:is(:not(.country-filter__reset-button)) {
    --button-color: var(--color-primary);
    --button-background-color: var(--language-button-background-color, var(--color-background));
    --button-border-color: var(--language-button-border-color, var(--color-border));

    text-decoration-color: transparent;
    text-decoration-thickness: 0.075em;
    text-underline-offset: 0.125em;
    transition: text-decoration-color var(--animation-speed) var(--animation-easing);
  }

  localization-form-component .button:is(:not(.country-filter__reset-button)):hover,
  .localization-form__list-item:hover,
  .localization-form__list-item:focus {
    --button-color: var(--color-primary-hover);

    background-color: rgb(var(--color-primary-hover-rgb) / var(--opacity-8));
  }

  .localization-form__list-item[aria-current='true'] {
    --button-color: var(--color-primary-active);

    background-color: rgb(var(--color-primary-hover-rgb) / var(--opacity-10));
  }

  .localization-form__list-item-disabled {
    pointer-events: none;
  }

  .localization-form__list-item:focus-visible {
    outline: none;
  }

  localization-form-component .localization-selector {
    display: flex;
    align-items: center;
    gap: var(--margin-2xs);
  }

  localization-form-component .country-filter__search-icon {
    left: 8px;
    right: auto;
    color: var(--color-foreground-muted);
    pointer-events: none;
  }

  .country-filter__search-icon .svg-wrapper svg {
    width: var(--icon-size-sm);
    height: var(--icon-size-sm);
  }

  .disclosure {
    width: 100%;
  }

  .localization-form__list {
    position: relative;
    width: 100%;
    padding-block: 0 var(--padding-xs);
    font-size: var(--font-size-lg);
    scroll-padding: var(--padding-xs) 0;
    overflow-y: auto;
    white-space: nowrap;

    /* Hide scrollbar which would cause extra right padding in Safari */
    scrollbar-width: none;

    &::-webkit-scrollbar {
      display: none;
    }
  }

  .localization-form__list-item:not([hidden]) {
    margin-block-end: var(--margin-3xs);
    display: flex;
    gap: var(--margin-sm);
    padding: 8px;
    border-radius: 8px;
    line-height: var(--font-line-height-md);
    align-items: center;
    text-align: start;
    cursor: pointer;
    transition: background-color var(--animation-speed) var(--animation-easing);

    .country {
      flex: 1;
      color: var(--color-foreground);
    }

    &:hover {
      background-color: rgb(var(--color-foreground-rgb) / var(--opacity-8));
    }

    &[aria-current='true'] {
      .country {
        font-weight: 500;
      }
    }
  }

  .localization-form__list-item#no-results-message {
    grid-template-columns: 1fr;
    text-align: center;
    color: rgb(var(--color-foreground-rgb) / var(--opacity-subdued-text));
  }

  .is-searching .localization-form__list-item .country {
    color: rgb(var(--color-foreground-rgb) / var(--opacity-80));
  }

  .localization-form__list-item .country mark {
    font-weight: 500;
    background: none;
    color: var(--color-foreground);
  }

  .country-filter {
    position: relative;
    padding: var(--padding-xs);
    border-bottom: var(--style-border-width) solid transparent;
    transition: border-color var(--animation-values);
  }

  .country-filter.is-scrolled {
    border-color: var(--color-border);
  }

  .country-selector-form__wrapper {
    overflow-y: auto;
    max-height: 100%;
    flex-grow: 1;
  }

  .language-selector {
    display: flex;
    gap: var(--gap-xs);
    padding: var(--padding-md) var(--padding-lg);
    position: relative;
    align-items: center;
    justify-content: space-between;
    width: 100%;
  }

  .language-selector__label {
    flex-shrink: 0;
    color: rgb(var(--color-foreground-rgb) / var(--opacity-subdued-text));
  }

  .localization-form__select {
    border: none;
    color: var(--color-foreground);
    appearance: none;
    background-color: var(--color-input-background);
    padding-block: var(--padding-3xs);
    padding-inline: var(--padding-xs) calc(var(--icon-size-xs) + var(--padding-xs));
    text-align: right;
    cursor: pointer;
    max-width: 40vw;
    text-overflow: ellipsis;
    field-sizing: content;

    &:focus-visible {
      outline: var(--focus-outline-width) solid currentcolor;
    }

    &:focus {
      outline: none;
    }
  }

  #header-component[transparent] localization-form-component .localization-form .localization-form__select {
    background-color: transparent;
  }

  .localization-form__select option {
    background-color: var(--color-input-background);
    color: var(--color-input-text);
  }

  .language-selector .svg-wrapper.icon-caret {
    width: var(--icon-size-xs);
    height: var(--icon-size-xs);
    position: absolute;
    right: 12px;
    top: 50%;
    transform: translateY(-50%);
    display: flex;
    align-items: center;
  }

  .language-selector--collapse-space {
    padding-inline-end: var(--padding-2xs);
  }

  .language-selector--collapse-space .localization-form__select {
    padding-inline-end: var(--icon-size-xs);
  }

  .language-selector--collapse-space .svg-wrapper.icon-caret {
    right: 0;
  }

  .localization-form .icon-checkmark {
    width: var(--icon-size-xs);
    height: var(--icon-size-xs);
  }

  .localization-form .svg-wrapper.icon-checkmark {
    visibility: hidden;
  }

  .localization-form__list-item[aria-current='true'] .svg-wrapper.icon-checkmark {
    visibility: visible;
  }

  .country-filter__input {
    width: 100%;
    height: 44px;
    font-size: var(--font-size-lg);
    padding: var(--padding-md) var(--padding-lg) var(--padding-md) calc(var(--margin-md) + var(--padding-xl));
    border: 1px solid var(--color-foreground);
    color: var(--color-input-text);
    background-color: var(--color-input-background);
    outline-offset: -1px;

    @media screen and (min-width: 750px) {
      height: 36px;
    }
  }

  .country-filter__input::placeholder {
    color: inherit;
  }

  .country-filter .field {
    position: relative;
  }

  .country-filter .field__label {
    font-size: var(--font-size-lg);
    left: var(--margin-2xl);
    top: var(--margin-xl);
    pointer-events: none;
    position: absolute;
  }

  .country-filter__input:focus ~ .field__label,
  .country-filter__input:not(:placeholder-shown) ~ .field__label,
  .country-filter__input:-webkit-autofill ~ .field__label {
    font-size: var(--font-size-xs);
    top: var(--margin-xs);
  }

  .country-filter .field__button:not([hidden]) {
    display: flex;
    height: fit-content;
    position: absolute;
    padding: 0;
    right: 8px;
    top: 50%;
    transform: translateY(-50%);
    align-items: center;
    background-color: transparent;
    color: var(--color-input-text);
    border: 0;
  }

  input[type='search']::-webkit-search-cancel-button {
    appearance: none;
  }

  .country-selector__close-button {
    display: none;
  }

  /* --- Naliblu: selector de idioma personalizado --- */
  .naliblu-lang { position: relative; }

  @media screen and (max-width: 749px) {
    .naliblu-lang { margin-right: 16px; }
  }

  .naliblu-lang__trigger {
    display: flex; align-items: center; gap: 6px;
    background: none; border: none; cursor: pointer;
    color: var(--color-foreground); padding: 4px 0;
    font-size: inherit; font-family: inherit; line-height: 1;
  }

  .naliblu-lang__trigger:focus-visible {
    outline: 2px solid currentColor; outline-offset: 2px; border-radius: 4px;
  }

  .naliblu-lang__code {
    font-size: 0.8rem; font-weight: 600; letter-spacing: 0.06em;
  }

  .naliblu-lang__caret {
    font-size: 0.75rem; line-height: 1; flex-shrink: 0;
    transition: transform 0.22s ease;
    display: inline-block;
  }

  .naliblu-lang[data-open] .naliblu-lang__caret { transform: rotate(180deg); }

  /* Mismo fondo que el popup de suscripción (--np-bg en newsletter-popup.liquid),
     para que ambos elementos usen exactamente el mismo verde claro. */
  .naliblu-lang__menu {
    position: absolute;
    top: 100%;
    left: 50%;
    right: auto;
    transform: translateX(-50%);
    min-width: 150px;
    background: #DEDED3;
    border: 1px solid rgba(70, 58, 44, 0.15);
    border-radius: 14px;
    box-shadow: 0 8px 28px rgba(30,45,25,0.18);
    padding: 6px;
    z-index: 300;
  }

  .naliblu-lang__menu[hidden] { display: none; }

  /* Texto en tinta oscura (misma --np-ink del popup), ya que el fondo ahora
     es claro. */
  .naliblu-lang__option {
    display: flex; align-items: center; gap: 10px;
    width: 100%; background: none; border: none;
    cursor: pointer; padding: 9px 13px; border-radius: 10px;
    text-align: left; font-family: inherit; font-size: 0.82rem;
    color: #463a2c; transition: background 0.14s ease;
  }

  /* Overlays de hover/activo en tinta oscura semitransparente (antes blanco,
     pensado para fondo oscuro). */
  .naliblu-lang__option:hover { background: rgba(70, 58, 44, 0.08); }

  .naliblu-lang__option--active {
    background: rgba(70, 58, 44, 0.12); font-weight: 600;
  }

  .naliblu-lang__iso {
    font-size: 0.7rem; font-weight: 700;
    letter-spacing: 0.07em; color: rgba(70, 58, 44, 0.62); min-width: 22px;
  }

  .naliblu-lang__name { color: #463a2c; }
/* END_SNIPPET:localization-form */
/* START_SNIPPET:newsletter-popup (INDEX:215) */
@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@400;500;600&family=Karla:wght@300;400;500;600&display=swap');

  /* El propio .dialog-modal[open] del tema (base.css) anima `margin-top` de
     var(--padding-sm) a 0 (@keyframes elementSlideInTop). Esto pisa cualquier
     `margin: auto` que intentemos usar para centrar el <dialog>, sea cual sea
     su "position". Por eso NO centramos el <dialog> con margin: lo convertimos
     en un contenedor fijo a pantalla completa (position:fixed; inset:0),
     transparente, que centra por flexbox a su hijo real (.newsletter-popup__inner,
     la tarjeta visible). El centrado flex no depende del margin del <dialog>,
     así que es inmune a esa animación. Además anulamos esa animación aquí para
     que no interfiera con el layout mientras se abre/cierra.  */
  .newsletter-popup__content {
    --np-bg: #DEDED3;
    --np-ink: #463a2c;
    --np-line: rgba(70, 58, 44, .15);
    --np-input: #fbf7f2;
    --np-accent: #B44C21;

    position: fixed;
    inset: 0;
    margin: 0;
    /* dvh/dvw en vez de vh/vw: en móvil, "100vh" se calcula contra el
       viewport MÁS GRANDE posible (con la barra de direcciones oculta),
       más alto que lo que realmente se ve cuando la barra está visible —
       puede dejar el diálogo (aunque sea position:fixed) más alto que la
       pantalla real. dvh/dvw se recalculan en vivo según el viewport
       visible de verdad en cada momento. */
    width: 100dvw;
    height: 100dvh;
    max-width: 100dvw;
    max-height: 100dvh;
    padding: 24px;
    background: transparent;
    border: none !important;
    box-shadow: none !important;
    animation: none !important;

    /* Oculto por defecto de forma explícita: replica el `dialog:not([open])
       { display:none }` nativo del navegador, que un `display` de autor sin
       condicionar a [open] pisaría sin querer (los estilos de autor ganan
       siempre a los del user-agent, da igual la especificidad). Solo se
       centra por flex cuando el <dialog> está realmente abierto (ver regla
       [open] más abajo). */
    display: none;
  }

  .newsletter-popup__content[open] {
    display: flex;
    align-items: center;
    justify-content: center;
  }

  .newsletter-popup__content.dialog-closing {
    animation: none !important;
  }

  /* La tarjeta visible: fondo, bordes redondeados, tamaño real ajustado al
     contenido (no a la pantalla). Es un hijo centrado por flex dentro del
     <dialog> a pantalla completa de arriba. */
  .newsletter-popup__inner {
    position: relative;
    width: 100%;
    max-width: 560px;
    max-height: 100%;
    overflow-y: auto;
    background: var(--np-bg);
    /* Fondo claro (#DEDED3) de nuevo -> texto en tinta oscura otra vez. */
    color: var(--np-ink);
    font-family: 'Karla', system-ui, sans-serif;
    text-align: center;
    border-radius: 20px;
    box-shadow: var(--shadow-popover);
    padding: 48px 44px 44px;
  }

  /* Círculo con contorno visible siempre (antes solo aparecía al :hover, y
     en desktop ni eso se apreciaba con claridad) — mismo aspecto en móvil
     y escritorio. */
  .newsletter-popup__close {
    position: absolute;
    top: 18px;
    right: 18px;
    width: 34px;
    height: 34px;
    display: grid;
    place-items: center;
    border: 1.5px solid rgba(70, 58, 44, .18);
    background: rgba(70, 58, 44, .04);
    color: var(--np-ink);
    cursor: pointer;
    border-radius: 50%;
    transition: background .15s ease, border-color .15s ease;
  }

  .newsletter-popup__close:hover {
    background: rgba(70, 58, 44, .1);
    border-color: rgba(70, 58, 44, .3);
  }

  .newsletter-popup__copy {
    max-width: 420px;
    margin: 0 auto 28px;
  }

  .newsletter-popup__copy h2 {
    font-family: 'Cormorant Garamond', serif;
    font-weight: 500;
    font-size: 32px;
    line-height: 1.1;
    margin: 0 0 12px;
  }

  .newsletter-popup__copy p {
    margin: 0;
    font-size: 15px;
    line-height: 1.55;
    color: rgba(70, 58, 44, .62);
  }

  .newsletter-popup__form {
    display: flex;
    align-items: center;
    gap: 10px;
    background: var(--np-input);
    border: 1px solid var(--np-line);
    border-radius: 999px;
    padding: 7px 8px 7px 24px;
    max-width: 400px;
    margin: 0 auto;
    position: relative;
  }

  .newsletter-popup__form input[type='email'] {
    flex: 1;
    min-width: 0;
    border: none;
    background: transparent;
    outline: none;
    -webkit-appearance: none;
    appearance: none;
    box-shadow: none;
    -webkit-text-fill-color: var(--np-ink);
    font-family: 'Karla', sans-serif;
    font-size: 15px;
    color: var(--np-ink);
  }

  .newsletter-popup__form button {
    flex: none;
    width: 46px;
    height: 46px;
    border-radius: 999px;
    border: none;
    background: var(--np-accent);
    color: #fbf6f0;
    cursor: pointer;
    display: grid;
    place-items: center;
    transition: transform .15s ease;
  }

  .newsletter-popup__form button:hover {
    transform: translateX(2px);
  }

  .newsletter-popup__message {
    position: absolute;
    top: 100%;
    left: 24px;
    margin: 6px 0 0;
    font-size: 12.5px;
  }

  .newsletter-popup__message--error {
    color: #b23b1f;
  }

  .newsletter-popup__cta {
    display: inline-block;
    border-radius: 999px;
    padding: 15px 40px;
    background: var(--np-accent);
    color: #fbf6f0;
    font-family: 'Karla', sans-serif;
    font-size: 13.5px;
    font-weight: 600;
    letter-spacing: .6px;
    text-decoration: none;
    text-transform: uppercase;
    transition: opacity .15s ease;
  }

  .newsletter-popup__cta:hover {
    opacity: .88;
  }

  /* En móvil el centrado ya lo da el flex del .newsletter-popup__content de
     arriba (a pantalla completa en todos los tamaños): aquí solo ajustamos
     padding/tipografía de la tarjeta para que quede compacta. */
  @media screen and (max-width: 749px) {
    .newsletter-popup__content {
      padding: 16px;
    }

    .newsletter-popup__inner {
      /* Más padding superior que el círculo de cerrar (top:18px + 34px alto
         = hasta 52px), para que el título de la vista "Gracias" nunca quede
         debajo de la X. */
      padding: 64px 26px 32px;
    }

    .newsletter-popup__copy h2 {
      font-size: 26px;
    }

    .newsletter-popup__form {
      max-width: none;
    }

    /* Evita el zoom automático de iOS al enfocar el input (font-size < 16px),
       que es lo que provoca el texto duplicado/fantasma durante el zoom. */
    .newsletter-popup__form input[type='email'] {
      font-size: 16px;
    }
  }
/* END_SNIPPET:newsletter-popup */
/* START_SNIPPET:predictive-search-styles (INDEX:224) */
/* ===== Naliblu: paleta de marca en el panel de búsqueda =====
     Por defecto el panel usa settings.popover_color_scheme = scheme-1
     (blanco #ffffff / negro #000000cf, ver config/settings_schema.json y
     settings_data.json) — es un ajuste GLOBAL compartido también por el
     cajón del carrito y el quick-add, así que no se cambia ahí para no
     afectarlos; se sobreescribe solo aquí, dentro de .search-modal.
     Colores de la paleta oficial (documentados en CLAUDE.md): crema
     #FAF6F1 (fondo), marrón oscuro #3B2A1C (texto), terracota #B44C21
     (acentos/CTA). Como "Productos"/"Borrar"/nombre de producto ya usan
     var(--color-foreground) de forma nativa, redefinir la variable basta
     para que hereden el marrón oscuro sin tocarlos uno a uno. */
  .search-modal {
    --color-background: #FAF6F1;
    --color-foreground: #3B2A1C;
  }

  /* El precio usa el snippet compartido 'price', que fija el color otra
     vez en sus hijos (.price__regular, etc.) además del elemento
     <product-price> — hay que forzarlo también en los descendientes,
     mismo motivo/técnica que ya se usó para el precio de la ficha de
     producto. */
  .search-modal product-price,
  .search-modal product-price * {
    color: #B44C21 !important;
  }

  /* Botón "Ver todo": quitar el negro del tema por defecto, terracota +
     píldora completa (999px), igual que el resto de botones de marca del
     sitio (que usan ese radio explícito, no el de 14px del ajuste
     genérico button_border_radius_primary del tema). */
  .search-modal .predictive-search__search-button {
    --button-background-color: #B44C21 !important;
    --button-color: #FFFFFF !important;
    border-radius: 999px !important;
  }

  /* Tarjetas de producto del buscador (resource-card.liquid, vía
     predictive-search-products-list.liquid) con las mismas esquinas
     redondeadas que las tarjetas de producto de Tienda/home (14px,
     --product-corner-radius por defecto vale 8px en este componente).
     Va con !important porque el valor por defecto se fija inline en
     <predictive-search-component style="--product-corner-radius:...">,
     y una variable inline solo se puede ganar con !important desde una
     hoja de estilos. */
  .search-modal .predictive-search {
    --product-corner-radius: 14px !important;
  }

  /* Shared predictive search styles (used by both predictive-search and predictive-search-empty sections) */
  .predictive-search-dropdown {
    display: flex;
    flex-direction: column;
    position: relative;
    top: 0;
    left: 0;
    right: 0;
    z-index: var(--layer-base);
  }

  .predictive-search-results__title {
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: var(--font-size--body-md);
    font-weight: 500;
    margin-block: var(--margin-sm) var(--margin-xs);
    width: 100%;
    text-transform: var(--title-case);

    &:first-of-type {
      margin-block-start: 0;
    }

    @media screen and (max-width: 749px) {
      margin-block: var(--margin-lg) var(--margin-sm);
    }
  }

  .predictive-search-results__no-results {
    animation-delay: 100ms;
    transition: opacity var(--animation-speed-medium) var(--animation-timing-fade-in);
  }

  .predictive-search-results__no-results:last-child {
    margin-block: var(--margin-lg);
    text-align: center;
  }

  /* Predictive search section styles */
  input[type='search']::-webkit-search-decoration {
    -webkit-appearance: none; /* stylelint-disable-line */
  }

  .search-action .predictive-search {
    z-index: calc(var(--layer-header-menu) + 2);
  }

  .search-action .search-modal .predictive-search {
    z-index: var(--layer-window-overlay);
  }

  .header__column--right .predictive-search-form__content-wrapper {
    right: 0;
    left: unset;
  }

  .search-modal .predictive-search-form__content-wrapper {
    width: 100%;

    @media screen and (min-width: 750px) {
      height: fit-content;
    }
  }
  .dialog-modal .predictive-search-form__header-inner {
    @media screen and (min-width: 750px) {
      border: 0;
    }
  }

  .search-modal__content .predictive-search-form__content {
    max-height: var(--modal-max-height);
  }

  .predictive-search:has(.predictive-search-dropdown) .search-input {
    outline-color: transparent;
  }

  .predictive-search:has(.predictive-search-dropdown) .predictive-search-form__header-inner:focus-within {
    border-top-color: transparent;
    border-right-color: transparent;
    border-left-color: transparent;

    @media screen and (max-width: 749px) {
      border-bottom-color: transparent;
    }
  }

  .predictive-search:has(.predictive-search-dropdown[aria-expanded='true'])
    .predictive-search-form__header-inner:focus-within {
    border-top-color: transparent;
    border-right-color: transparent;
    border-left-color: transparent;
    border-radius: var(--search-border-radius);

    @media screen and (max-width: 749px) {
      border-radius: var(--style-border-radius-inputs);
    }
  }

  .dialog-modal .predictive-search-form__header {
    border: 0;
    border-radius: 0;
    background-color: var(--color-background);
    border-bottom: var(--style-border-width) solid var(--color-border);

    @media screen and (min-width: 750px) {
      padding: var(--padding-2xs) var(--padding-2xs) 0;
      border-bottom: var(--search-border-width) solid var(--color-border);
    }

    @media screen and (max-width: 749px) {
      transition: box-shadow 0.2s ease;
      box-shadow: none;
    }
  }

  .search-action .predictive-search:has(.predictive-search-dropdown) .predictive-search-form__header:focus-within {
    border-radius: var(--search-border-radius) var(--search-border-radius) 0 0;
    transition: box-shadow var(--animation-speed) var(--animation-easing);
    background-color: var(--color-background);

    @media screen and (max-width: 749px) {
      border-radius: var(--style-border-radius-inputs) var(--style-border-radius-inputs) 0 0;
    }
  }

  @media screen and (max-width: 749px) {
    .dialog-modal .predictive-search__close-modal-button {
      padding-inline-start: var(--margin-xs);
      margin-inline-start: 0;
    }
  }

  .dialog-modal[open] {
    @media screen and (max-width: 749px) {
      border-radius: 0;
    }
  }

  .dialog-modal .predictive-search-form__header:has(.predictive-search-form__header-inner:focus-within) {
    @media screen and (min-width: 750px) {
      border-bottom-color: transparent;
    }
  }

  @media screen and (max-width: 749px) {
    .dialog-modal {
      .predictive-search__reset-button-icon {
        display: none;
      }

      .predictive-search__reset-button-text {
        display: block;
      }

      .predictive-search-form__content {
        /* The parent has overflow auto, we want to prevent a double scrollbar during animation */
        max-height: 100%;
      }

      .predictive-search-form__content-wrapper {
        box-shadow: none;
      }

      .predictive-search-form__header {
        box-shadow: none;
      }

      .predictive-search-form__footer {
        padding-block: var(--padding-2xl);
      }
    }
  }

  .predictive-search-results__pill {
    font-weight: 500;
    white-space: nowrap;
    color: var(--color-foreground);
    transition: background-color var(--animation-speed-medium) var(--animation-timing-hover),
      box-shadow var(--animation-speed-medium) var(--animation-timing-bounce),
      transform var(--animation-speed-medium) var(--animation-timing-bounce);
    margin: 2px;

    &:hover {
      transform: scale(1.03);
      box-shadow: 0 2px 5px rgb(0 0 0 / var(--opacity-8));
    }
  }

  .predictive-search-results__pill mark {
    background-color: transparent;
    font-weight: 200;
    color: rgb(var(--color-foreground-rgb) / var(--opacity-80));
  }

  .predictive-search-results__pill:focus,
  .predictive-search-results__pill:hover,
  .predictive-search-results__card--query:is([aria-selected='true'], :focus-within) .predictive-search-results__pill {
    --pill-background-color: rgb(var(--color-foreground-rgb) / var(--opacity-8));

    background-color: var(--pill-background-color);
    outline: var(--border-width-sm) solid var(--color-border);
    border: var(--border-width-sm);
    text-decoration: none;
  }

  .predictive-search-results__wrapper.predictive-search-results__wrapper-queries {
    margin-bottom: var(--margin-lg);
    padding-inline: var(--padding-xl);
    gap: var(--gap-2xs);
  }

  .predictive-search-results__card {
    --title-font-size: var(--font-size--md);
    --title-margin-block: var(--margin-xs);

    flex: 0 0 auto;
    scroll-snap-align: start;
    scroll-margin-block: calc(var(--title-font-size) + var(--title-margin-block) + var(--padding-sm))
      calc(var(--padding-xl) + var(--button-padding-block) * 2);
    transition: transform var(--animation-speed-medium) var(--animation-timing-default),
      background-color var(--animation-speed-medium) var(--animation-timing-hover),
      border-color var(--animation-speed-medium) var(--animation-timing-hover);

    &:nth-last-child(3) {
      scroll-snap-align: end;
    }

    &:active {
      transform: scale(0.97);
      transition: transform 100ms var(--animation-timing-active);
    }
  }

  .recently-viewed-wrapper .predictive-search-results__card {
    opacity: 1;
    transform: translateY(0);
    transition: opacity 0.25s cubic-bezier(0.4, 0, 0.2, 1), transform 0.25s cubic-bezier(0.4, 0, 0.2, 1);
  }

  .recently-viewed-wrapper.removing .predictive-search-results__card {
    opacity: 0;
    transform: translateY(-10px);
    pointer-events: none;
  }

  .predictive-search-results__card--product,
  .recently-viewed-wrapper .predictive-search-results__card--product {
    &:active {
      transform: scale(0.97);
      transition: transform 100ms var(--animation-timing-active);
    }

    &:hover {
      background-color: var(--card-bg-hover);
      border-radius: var(--product-corner-radius);
      padding: calc(var(--padding-2xs) + 2px);
      margin: calc((var(--padding-2xs) + 2px) * -1);
    }

    &:is([aria-selected='true'].keyboard-focus, &:focus-visible, &:has(.resource-card:focus-visible)) {
      background-color: var(--card-bg-hover);
      padding: calc(var(--padding-2xs) + 1px);
      margin: calc((var(--padding-2xs) + 1px) * -1);
      outline: var(--border-width-sm) solid var(--color-border);
      border-radius: calc(var(--product-corner-radius) + 1px);
      border-color: var(--card-border-focus);
    }
  }

  .predictive-search-results__card:not(.predictive-search-results__card--product) {
    padding: var(--padding-sm);
    border: var(--border-width-sm) solid var(--color-border);
    border-radius: var(--card-corner-radius);
    width: 60cqi;
    content-visibility: visible;

    @media screen and (min-width: 750px) {
      width: 27.5cqi;
    }

    &:hover {
      border-color: var(--card-border-hover);
      background-color: var(--card-bg-hover);
    }

    &[aria-selected='true'].keyboard-focus {
      border-color: var(--card-border-hover);
      background-color: var(--card-bg-hover);
    }

    &:active {
      transform: scale(0.97);
      transition: transform var(--animation-speed-medium) var(--animation-timing-active);
    }
  }

  @keyframes search-element-scale-in {
    0% {
      transform: scale(0.95);
      opacity: 0;
    }

    40% {
      opacity: 1;
    }

    100% {
      transform: scale(1);
      opacity: 1;
    }
  }

  @keyframes search-element-scale-out {
    0% {
      transform: scale(1);
      opacity: 1;
    }

    100% {
      transform: scale(0.95);
      opacity: 0;
    }
  }

  @keyframes search-element-slide-in-top {
    from {
      margin-top: calc(var(--modal-top-margin) + var(--padding-sm));
      opacity: 0;
    }

    to {
      margin-top: var(--modal-top-margin);
      opacity: 1;
    }
  }

  @keyframes search-element-slide-out-top {
    from {
      margin-top: var(--modal-top-margin);
      opacity: 1;
    }

    to {
      margin-top: calc(var(--modal-top-margin) + var(--padding-sm));
      opacity: 0;
    }
  }

  @keyframes content-slide {
    from {
      transform: translateY(var(--slide-from, 0));
      opacity: var(--slide-opacity-from, 1);
    }

    to {
      transform: translateY(var(--slide-to, 0));
      opacity: var(--slide-opacity-to, 1);
    }
  }

  .predictive-search-results__list {
    --slide-width: 27.5%;
    --slideshow-gap: var(--gap-md);

    /* Make space for the outline to be visible */
    padding-block-start: var(--border-width-sm);
  }

  .predictive-search-results__list slideshow-arrows {
    @media screen and (max-width: 749px) {
      display: none;
    }
  }

  .predictive-search-results__no-results,
  .predictive-search-results__wrapper,
  .predictive-search-results__wrapper-products .predictive-search-results__card {
    animation: search-element-slide-up var(--animation-speed-medium) var(--animation-timing-bounce) backwards;
  }

  slideshow-slide .resource-card {
    /* stylelint-disable-next-line declaration-no-important */
    animation-delay: 0ms !important;
  }

  .predictive-search-results__list,
  .predictive-search-results__wrapper {
    animation-duration: var(--animation-speed-medium);
  }

  .predictive-search-results__wrapper-queries {
    animation-delay: 50ms;
  }

  .predictive-search-results__list:nth-of-type(2) {
    animation-delay: 150ms;
  }

  .predictive-search-results__list:nth-of-type(3) {
    animation-delay: 200ms;
  }

  .predictive-search-results__list:nth-of-type(4) {
    animation-delay: 250ms;
  }

  .predictive-search-results__list:last-child {
    margin-block-end: 0;
  }

  [data-resource-type] {
    /* stylelint-disable-next-line declaration-no-important */
    animation-delay: 0ms !important;
  }

  .predictive-search-results__no-results.removing,
  .predictive-search-results__wrapper.removing {
    animation: search-element-slide-down var(--animation-speed-medium) var(--animation-timing-fade-out) forwards;
  }

  .predictive-search-results__card.removing {
    animation: fadeOut var(--animation-speed-medium) var(--animation-timing-fade-out) forwards;
  }

  .predictive-search-results__wrapper {
    transition: opacity var(--animation-speed-medium) var(--animation-timing-fade-in);
  }

  @keyframes search-element-slide-up {
    from {
      opacity: 0;
      transform: translateY(8px);
    }

    to {
      opacity: 1;
      transform: translateY(0);
    }
  }

  @keyframes search-element-slide-down {
    from {
      opacity: 1;
      transform: translateY(0);
    }

    to {
      opacity: 0;
      transform: translateY(8px);
    }
  }

  .predictive-search-results__card--query {
    transition: transform var(--animation-speed-medium) var(--animation-timing-bounce);
    transform-origin: center;

    &:active {
      transform: scale(0.97);
    }
  }

  /* Products list styles */
  .predictive-search-results__products {
    padding-inline: var(--padding-xl);
  }

  .recently-viewed-wrapper {
    display: grid;
    grid-template-rows: auto auto;
    max-height: 1000px;
    opacity: 1;
    overflow: visible;
    transition: max-height 0.35s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.25s cubic-bezier(0.4, 0, 0.2, 1);
    transform-origin: top center;
    transform: translateY(0);
  }

  .recently-viewed-wrapper.removing {
    max-height: 0;
    opacity: 0;
    transform: translateY(-10px);
    transition: max-height 0.35s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.25s cubic-bezier(0.4, 0, 0.2, 1),
      transform 0.25s cubic-bezier(0.4, 0, 0.2, 1);
    pointer-events: none;
  }

  .predictive-search-results__clear.button-unstyled {
    color: var(--color-foreground);
    opacity: 0.68;
    transition: opacity var(--animation-speed-medium) var(--animation-easing);
    padding: 0;
    margin-left: var(--margin-sm);

    &:hover {
      opacity: 1;
    }
  }

  .recently-viewed-wrapper.removing .predictive-search-results__card {
    transition: none;
    transform: none;
    opacity: 1;
  }

  .recently-viewed-wrapper > * {
    transition: opacity 0.25s cubic-bezier(0.4, 0, 0.2, 1);
  }

  .predictive-search-results__wrapper-products .predictive-search-results__card:nth-child(1) {
    animation-delay: 30ms;
  }

  .predictive-search-results__wrapper-products .predictive-search-results__card:nth-child(2) {
    animation-delay: 60ms;
  }

  .predictive-search-results__wrapper-products .predictive-search-results__card:nth-child(3) {
    animation-delay: 90ms;
  }

  .predictive-search-results__wrapper-products .predictive-search-results__card:nth-child(4) {
    animation-delay: 120ms;
  }

  .predictive-search-results__wrapper-products .predictive-search-results__card:nth-child(n + 5) {
    animation-delay: 150ms;
  }

  .predictive-search-results__wrapper-products {
    animation-delay: 50ms;
  }

  /* Resource carousel styles */
  .predictive-search-results__wrapper {
    display: flex;
    overflow-x: auto;
    overflow-y: hidden;
    padding-block-end: var(--padding-sm);
    padding-inline: 0;
    scroll-snap-type: x mandatory;
    scroll-padding: 0 var(--padding-xl);
    scrollbar-width: none;
    -ms-overflow-style: none;

    &::-webkit-scrollbar {
      display: none;
    }
  }

  .predictive-search-results__wrapper slideshow-slides {
    --gutter-slide-width: var(--padding-xl);

    /* Add padding to prevent hover animations from being clipped in slideshow
       15px accommodates:
       - Scale effect (9px on each side from 1.03 scale)
       - Lift effect (4px upward movement)
       - Shadow (15px spread with -5px offset)
       Using 16px for better alignment with our spacing scale */
    padding-block: var(--padding-xl);
    margin-block: calc(-1 * var(--padding-xl));
    gap: var(--gap-md);
  }

  .predictive-search-results__resource-header {
    display: flex;
    padding-inline: var(--padding-xl);
    justify-content: space-between;
    align-items: center;
    height: 32px;
  }

  .predictive-search-results__resource-header .svg-wrapper {
    width: var(--icon-size-xs);
  }

  .predictive-search-results__wrapper-products {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    padding-block-end: var(--padding-sm);
    gap: var(--gap-md);
    transition: height var(--animation-speed-medium) var(--animation-easing);

    @container (min-width: 550px) {
      grid-template-columns: repeat(4, 1fr);
    }
  }

  .predictive-search-results__wrapper-products:last-child {
    padding-block-end: var(--padding-lg);

    @media screen and (min-width: 750px) {
      padding-block-end: var(--padding-sm);
    }
  }

  .predictive-search-results__resource-header .predictive-search-results__title {
    margin-block-end: 0;
  }

  .predictive-search-results__resource-header:has(slideshow-controls) .predictive-search-results__title {
    margin-block-end: 0;
  }

  .predictive-search-results__resource-header slideshow-controls {
    @media screen and (max-width: 749px) {
      display: none;
    }
  }
/* END_SNIPPET:predictive-search-styles */
/* START_SNIPPET:product-badges-styles (INDEX:227) */
.product-badges {
    --badge-inset: max(var(--padding-xs), calc((var(--border-radius) + var(--padding-xs)) * (1 - cos(45deg))));

    position: absolute;
    z-index: var(--layer-flat);
  }

  .product-badges--bottom-left {
    bottom: calc(var(--badge-inset) + var(--padding-block-start));
    left: calc(var(--badge-inset) + var(--padding-inline-start));
  }

  .product-badges--top-left {
    top: calc(var(--badge-inset) + var(--padding-block-start));
    left: calc(var(--badge-inset) + var(--padding-inline-start));
  }

  .product-badges--top-right {
    top: calc(var(--badge-inset) + var(--padding-block-start));
    right: calc(var(--badge-inset) + var(--padding-inline-start));
  }

  .product-badges--bottom-right {
    bottom: calc(var(--badge-inset) + var(--padding-block-start));
    right: calc(var(--badge-inset) + var(--padding-inline-start));
  }

  .product-badges__badge {
    --badge-font-size: var(--font-size--xs);

    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    color: var(--color-foreground);
    background: var(--color-background);
    font-size: var(--badge-font-size);
    font-family: var(--badge-font-family);
    font-weight: var(--badge-font-weight);
    text-transform: var(--badge-text-transform);
    border-radius: var(--badge-border-radius);
  }

  .product-badges__badge--rectangle {
    padding-block: var(--badge-rectangle-padding-block);
    padding-inline: var(--badge-rectangle-padding-inline);
  }
/* END_SNIPPET:product-badges-styles */
/* START_SNIPPET:product-card (INDEX:229) */
.product-card__placeholder-image svg {
    height: 100%;
  }

  .product-card__content slideshow-component {
    --cursor: pointer;
  }

  @media screen and (max-width: 749px) {
    .product-card slideshow-arrows .slideshow-control {
      display: none;
    }
  }
/* END_SNIPPET:product-card */
/* START_SNIPPET:product-media-gallery-content-styles (INDEX:232) */
media-gallery:where(.media-gallery--grid) .media-gallery__grid {
    display: none;
  }

  media-gallery.media-gallery--grid .media-gallery__grid .product-media-container {
    /* Needed for safari to stretch to full grid height */
    height: 100%;
  }

  @media screen and (min-width: 750px) {
    .media-gallery--two-column .media-gallery__grid {
      grid-template-columns: repeat(2, 1fr);
    }

    /* Display grid view as a carousel on mobile, grid on desktop */
    media-gallery:is(.media-gallery--grid) slideshow-component {
      display: none;
    }

    media-gallery:where(.media-gallery--grid) .media-gallery__grid {
      display: grid;
    }
  }

  .product-media-container__zoom-button {
    position: absolute;
    width: 100%;
    height: 100%;
    z-index: var(--layer-flat);
    cursor: zoom-in;
    background-color: transparent;

    &:hover {
      background-color: transparent;
    }
  }

  slideshow-slide.product-media-container--tallest {
    content-visibility: visible;
  }

  .product-media__drag-zoom-wrapper {
    aspect-ratio: inherit;
    min-height: inherit;
    min-width: inherit;
    display: inherit;
    flex: inherit;
  }

  .media-gallery__mobile-controls {
    grid-area: auto;
  }

  .product-media-container--zoomable.product-media-container--image {
    cursor: zoom-in;
  }
/* END_SNIPPET:product-media-gallery-content-styles */
/* START_SNIPPET:product-media (INDEX:234) */
.product-media {
    aspect-ratio: var(--gallery-aspect-ratio, var(--ratio));
    min-height: 0;
    min-width: 0;
  }

  .product-media__image {
    object-position: var(--focal-point, center center);
  }

  /*** Media border-radius feature ****/
  @media screen and (min-width: 750px) {
    .media-gallery--carousel slideshow-container,
    .media-gallery--grid .product-media > * {
      border-radius: var(--media-radius, 0);
      overflow: hidden;
    }

    /* When the CAROUSEL is on the LEFT side */
    .product-information:not(.product-information--media-right)
      .media-gallery--carousel.media-gallery--extend
      slideshow-container {
      border-top-left-radius: 0;
      border-bottom-left-radius: 0;
    }

    /* When the CAROUSEL is on the RIGHT side */
    .product-information.product-information--media-right
      .media-gallery--carousel.media-gallery--extend
      slideshow-container {
      border-top-right-radius: 0;
      border-bottom-right-radius: 0;
    }

    /* When the GRID is on the LEFT side */
    .product-information:not(.product-information--media-right) {
      /* One column */
      .media-gallery--grid.media-gallery--extend:not(.media-gallery--two-column) .product-media > *,
      /* Two column, small first image */
      .media-gallery--grid.media-gallery--extend.media-gallery--two-column:not(.media-gallery--large-first-image)
        .product-media-container:nth-of-type(odd)
        .product-media
        > *,
      /* Two column, large first image */
      .media-gallery--grid.media-gallery--extend.media-gallery--two-column.media-gallery--large-first-image
        .product-media-container:is(:first-of-type, :nth-of-type(even))
        .product-media
        > * {
        border-top-left-radius: 0;
        border-bottom-left-radius: 0;
      }
    }

    /* When the GRID is on the RIGHT side */
    .product-information.product-information--media-right {
      /* One column */
      .media-gallery--grid.media-gallery--extend:not(.media-gallery--two-column) .product-media > *,
      /* Two column, small first image */
      .media-gallery--grid.media-gallery--extend.media-gallery--two-column:not(.media-gallery--large-first-image)
        .product-media-container:nth-of-type(even)
        .product-media
        > *,
      /* Two column, large first image */
      .media-gallery--grid.media-gallery--extend.media-gallery--two-column.media-gallery--large-first-image
        .product-media-container:is(:first-of-type, :nth-of-type(odd))
        .product-media
        > * {
        border-top-right-radius: 0;
        border-bottom-right-radius: 0;
      }
    }
  }
/* END_SNIPPET:product-media */
/* START_SNIPPET:quick-add-modal-styles (INDEX:239) */
#quick-add-dialog {
    display: contents;
  }

  @media screen and (min-width: 750px) {
    .quick-add-modal {
      width: var(--quick-add-modal-width);
      height: var(--quick-add-modal-height);
      max-width: none;
    }
  }

  .quick-add-modal {
    padding: 0;
    border: var(--style-border-popover);
    overflow: hidden;
    box-shadow: 0 5px 30px rgb(0 0 0 / var(--opacity-15));

    @media screen and (max-width: 749px) {
      position: fixed;
      margin: auto 0 0 0;
      min-height: unset;
      max-width: 100%;
      border-radius: 0;
      overflow: clip;
      height: fit-content;
    }
  }

  .quick-add-modal[open] {
    @media screen and (max-width: 750px) {
      border-top-left-radius: var(--style-border-radius-popover);
      border-top-right-radius: var(--style-border-radius-popover);
    }
  }

  .quick-add-modal[open] {
    @media screen and (min-width: 750px) {
      display: flex;
    }
  }

  .quick-add-modal .view-more-details__wrapper {
    @media screen and (max-width: 749px) {
      display: none;
    }
  }

  .quick-add-modal[open] {
    animation: modalSlideInTop var(--animation-speed) var(--animation-easing) forwards;
  }

  .quick-add-modal.dialog-closing {
    animation: modalSlideOutTop var(--animation-speed) var(--animation-easing) forwards;
  }

  .quick-add-modal__close {
    position: absolute;
    top: var(--margin-2xs);
    right: var(--margin-2xs);
    transition: transform 0.15s var(--animation-timing-bounce);
    z-index: var(--layer-raised);
    overflow: visible;
    transform-origin: center;
  }

  .quick-add-modal__close:active {
    transform: scale(0.99) translateY(1px);
  }

  .quick-add-modal__close {
    &:focus-visible {
      outline: none;
    }

    &:focus-visible::after {
      content: '';
      position: absolute;
      inset: 0;
      border-radius: calc(var(--style-border-radius-popover) - var(--margin-2xs));
      outline: var(--focus-outline-width) solid currentColor;
    }
  }

  .quick-add-modal__content {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    grid-template-rows: 100% 1fr;
    position: relative;
    overflow-y: auto;
    max-height: 100vh;
    flex-grow: 1;

    @media screen and (max-width: 749px) {
      grid-template-columns: repeat(4, 1fr);
      grid-template-rows: auto;
      padding-inline: var(--padding-xl);
      padding-block: var(--padding-xl);
      gap: var(--gap-lg);
      flex: 1;
      min-height: 0;
      overflow-y: auto;
      height: auto; /* Prevent a bug in Safari where height:fit-content is not respected */
      max-height: 100vh;
    }
  }

  .quick-add-modal__content .media-gallery--grid .media-gallery__grid {
    grid-template-columns: 1fr;
  }

  .quick-add-modal__content .media-gallery--grid.media-gallery--two-column .product-media-container:first-child {
    grid-column: auto;
  }

  .quick-add-modal__content {
    /* One column */
    .media-gallery--grid:not(.media-gallery--two-column) .product-media > *,
      /* Two column, small first image */
      .media-gallery--grid.media-gallery--two-column:not(.media-gallery--large-first-image)
      .product-media-container:nth-of-type(odd)
      .product-media > *,
      /* Two column, large first image */
      .media-gallery--grid.media-gallery--two-column.media-gallery--large-first-image
        .product-media-container:is(:first-of-type, :nth-of-type(even))
        .product-media > *,
        /* Carousel */
      .media-gallery--carousel slideshow-container {
      border-top-left-radius: 0;
      border-bottom-left-radius: 0;
    }
  }

  .quick-add-modal__content .view-more-details__wrapper {
    display: flex;
    justify-content: flex-start;
    width: 100%;
  }

  .view-more-details__wrapper .view-more-details {
    display: flex;
    align-items: center;
    width: fit-content;
  }

  .quick-add-modal__content .product-header {
    @media screen and (max-width: 749px) {
      display: flex;
      flex-direction: column;
      grid-column: 2 / -1;
      grid-row: 1;
      padding-right: var(--padding-2xl);
    }
  }

  .quick-add-modal__content .product-header a:not(product-price *) {
    @media screen and (max-width: 749px) {
      font-size: var(--font-size--md);
      font-weight: 500;
      color: inherit;
      width: fit-content;
    }
  }

  .quick-add-modal__content variant-picker,
  .quick-add-modal__content product-form-component {
    @media screen and (max-width: 749px) {
      grid-column: 1 / -1;
    }
  }

  .quick-add-modal__content .product-media-container__zoom-button {
    cursor: default;
  }

  .quick-add-modal__content .product-details {
    grid-column: 4 / -1;
    grid-row: 1 / span 2;
    display: flex;
    flex-direction: column;
    justify-content: stretch;
    height: 100%;
    min-height: 0;
    overflow-y: auto;
    position: relative;

    dialog[open] & {
      animation: fadeSlideIn 0.3s var(--animation-timing-fade-in) both;
      animation-delay: 0.1s;
    }

    @media screen and (max-width: 749px) {
      grid-column: 2 / span 2;
      grid-row: span 1;
      max-height: 100%;
      height: 100%;
    }
  }

  @property --quick-add-modal-mask-start {
    syntax: '<length>';
    initial-value: 0px;
    inherits: false;
  }

  @property --quick-add-modal-mask-end {
    syntax: '<length>';
    initial-value: 0px;
    inherits: true;
  }

  @keyframes detect-scroll {
    from,
    to {
      --can-scroll: ;
    }
  }

  @supports (animation-timeline: scroll(self)) {
    dialog[open] .quick-add-modal__content .product-details {
      mask-image: linear-gradient(to bottom, transparent 0%, #000 var(--quick-add-modal-mask-start), #000 100%);
      animation: 0.3s var(--animation-timing-fade-in) 0.1s both fadeSlideIn, scrollStart 1s linear both,
        scrollEnd 1s linear both, detect-scroll 1ms linear none;
      animation-timeline: auto, scroll(self), scroll(self), scroll(self);
      animation-range: normal, 0px 48px, calc(100% - 48px) 100%, 0% 100%;
    }
  }

  @keyframes scrollStart {
    from {
      --quick-add-modal-mask-start: 0px;
    }
    to {
      --quick-add-modal-mask-start: 48px;
    }
  }

  @keyframes scrollEnd {
    from {
      --quick-add-modal-mask-end: 0px;
    }
    to {
      --quick-add-modal-mask-end: 48px;
    }
  }

  .quick-add-modal__content .product-details > .group-block {
    flex-grow: 1;
    width: auto;
  }

  .quick-add-modal__content > * {
    min-height: 0;
  }

  .quick-add-modal__content .product-details :is(.view-product-title, .buy-buttons-block) {
    flex: 0 0 auto;
  }
  .quick-add-modal__content .product-details :is(.buy-buttons-block) {
    margin-top: auto;
    position: sticky;
    bottom: 0;
    padding-bottom: var(--padding-3xl);
    background-color: var(--color-background);
    z-index: var(--layer-raised);

    &::before {
      --quick-add-modal-mask-end-progressive-enhanced: 0px;

      position: absolute;
      content: '';
      display: block;
      inset: auto 0 100% 0;
      pointer-events: none;
      height: min(var(--gap-2xl), var(--gap));
      background-color: inherit;
      mask-image: linear-gradient(
        to top,
        #000 0%,
        #000 calc(var(--gap-2xs)),
        transparent calc(100% - var(--quick-add-modal-mask-end-progressive-enhanced)),
        transparent
      );
    }
  }

  .quick-add-modal__content .product-details .buy-buttons-block:has(gift-card-recipient-form) {
    position: static;
    padding-bottom: 0;
    flex-grow: 1;
    display: flex;
    flex-direction: column;
  }

  .quick-add-modal__content .product-details .buy-buttons-block:has(gift-card-recipient-form) > product-form-component {
    flex-grow: 1;
    display: flex;
    flex-direction: column;
  }

  .quick-add-modal__content .product-details .buy-buttons-block:has(gift-card-recipient-form) form {
    flex-grow: 1;
    display: flex;
    flex-direction: column;
  }

  .quick-add-modal__content .product-details .buy-buttons-block:has(gift-card-recipient-form)::before {
    display: none;
  }

  .quick-add-modal__content .product-details .buy-buttons-block__bar {
    display: block;
    position: sticky;
    bottom: 0;
    margin-top: auto;
    padding-block: var(--gap-md) var(--padding-3xl);
    background-color: var(--color-background);
    z-index: var(--layer-raised);

    &::before {
      --quick-add-modal-mask-end-progressive-enhanced: 0px;

      position: absolute;
      content: '';
      display: block;
      inset: auto 0 100% 0;
      pointer-events: none;
      height: min(var(--gap-2xl), var(--gap));
      background-color: inherit;
      mask-image: linear-gradient(
        to top,
        #000 0%,
        #000 calc(var(--gap-2xs)),
        transparent calc(100% - var(--quick-add-modal-mask-end-progressive-enhanced)),
        transparent
      );
    }
  }

  @supports (animation-timeline: scroll(self)) {
    .quick-add-modal__content .product-details :is(.buy-buttons-block)::before,
    .quick-add-modal__content .product-details .buy-buttons-block__bar::before {
      --mask-if-scroll: var(--can-scroll) var(--quick-add-modal-mask-end);
      --mask-if-no-scroll: 48px;
      --quick-add-modal-mask-end-progressive-enhanced: var(--mask-if-scroll, var(--mask-if-no-scroll));
      height: calc(var(--gap-2xs) + 48px);
    }
  }

  .quick-add-modal__content .product-details .variant-picker {
    flex: 0 0 auto;

    padding-block: min(var(--gap-2xl), var(--gap));
    margin-block-end: calc(var(--focus-outline-offset) + var(--focus-outline-width));
  }

  .quick-add-modal__content .variant-option--swatches {
    padding-inline-start: var(--padding-2xs);
  }

  .quick-add-modal__content .variant-option--swatches legend {
    margin-inline-start: calc(-1 * var(--padding-2xs));
  }

  .quick-add-modal__content:not(:has(.product-information__media)) .product-details {
    grid-column: 1 / -1;
  }

  .quick-add-modal__content .view-product-title {
    display: flex;
    padding-block: 0;
    margin-block-end: 12px;

    /* Prevent overlap between title and close button */
    padding-inline-end: calc(var(--padding-2xl) + calc(var(--minimum-touch-target) / 2));
  }

  .quick-add-modal__content .view-product-title a {
    color: inherit;
    text-decoration: none;
    text-align: left;
    font-size: var(--font-size--2xl);
    font-weight: 600;
    line-height: 1.2;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    overflow: hidden;
    text-overflow: ellipsis;
    transition: color 0.2s var(--animation-easing);
  }

  .quick-add-modal__content .product-details product-price {
    --text-align: left;
  }

  .quick-add-modal__content .product-details product-price.text-block--align-center {
    margin-inline: 0;
  }

  .quick-add-modal__content .product-details product-price.text-center {
    --text-align: left;
  }

  .quick-add-modal__content .product-details product-price > * {
    text-align: left;
  }

  .quick-add-modal__content
    .product-details
    *:not(
      .group-block,
      .group-block-content,
      .buy-buttons-block,
      .buy-buttons-block *,
      .view-product-title,
      .view-product-title *,
      variant-picker,
      variant-picker *,
      product-price,
      product-price *,
      product-inventory,
      product-inventory *,
      .view-more-details__wrapper,
      .view-more-details__wrapper *
    ) {
    @media screen and (min-width: 750px) {
      /* stylelint-disable-next-line declaration-no-important */
      display: none !important;
    }
  }

  .quick-add-modal__content
    .group-block:not(
      :has(
          .buy-buttons-block,
          .buy-buttons-block *,
          .view-product-title,
          .view-product-title *,
          variant-picker,
          variant-picker *,
          product-price,
          product-price *,
          product-inventory,
          product-inventory *,
          .view-more-details__wrapper,
          .view-more-details__wrapper *
        ),
      .buy-buttons-block
    ) {
    display: none;
  }

  @media screen and (min-width: 750px) {
    .quick-add-modal__content .group-block-content {
      gap: 0;
    }

    .quick-add-modal__content .media-gallery__grid {
      gap: min(var(--gap-2xs), var(--image-gap));
      border-radius: var(--style-border-radius-popover, 0);
    }

    .quick-add-modal__content .media-gallery--grid .product-media img {
      border-radius: 0;
    }
  }

  .quick-add-modal__content .product-details > .group-block {
    padding-block: var(--padding-3xl) 0;
  }

  .quick-add-modal__content :where(.product-details > .group-block > .group-block-content > *) {
    padding-inline: var(--padding-3xl);
  }

  .quick-add-modal__content slideshow-slide:not([aria-hidden='false']) {
    content-visibility: auto;
  }

  .quick-add-modal__content .product-information__media {
    width: 100%;
    grid-column: 1 / span 1;
    grid-row: 1;
    position: relative;
    top: 0;
    animation: fadeIn 0.4s var(--animation-timing-fade-in) both;

    @media screen and (min-width: 750px) {
      position: sticky;
      grid-column: 1 / 4;
      width: var(--quick-add-modal-gallery-width);
      overflow-y: auto;
      -ms-overflow-style: none;
      scrollbar-width: none;
    }

    &::-webkit-scrollbar {
      display: none;
    }
  }

  .quick-add-modal__content .product-information__media media-gallery {
    pointer-events: none;

    @media screen and (min-width: 750px) {
      position: absolute;
      inset: 0;
    }
  }

  .quick-add-modal media-gallery {
    padding: 0;
  }

  .quick-add-modal__content .product-information__media slideshow-arrows {
    display: none;
  }

  .quick-add-modal__content .product-information__media slideshow-container {
    display: block;
  }

  .quick-add-modal__content .product-information__media slideshow-slides {
    display: flex;
    flex-direction: column;
    gap: var(--gap-2xs);
    overflow: visible;
    scroll-snap-type: none;
  }

  .quick-add-modal__content .product-information__media slideshow-slide {
    width: 100%;
    flex: none;
    scroll-snap-align: unset;
    position: relative;
    transform: none;
    opacity: 1;
    visibility: visible;
    transition: opacity 0.3s var(--animation-easing);
  }

  .quick-add-modal__content .product-information__media slideshow-slide[aria-hidden='true'] {
    @media screen and (max-width: 749px) {
      display: none;
    }
  }

  .quick-add-modal__content .product-information__media slideshow-slide:nth-child(1) {
    animation: fadeSlideIn 0.3s var(--animation-timing-fade-in) both;
  }

  .quick-add-modal__content .product-information__media slideshow-slide:nth-child(2) {
    animation: fadeSlideIn 0.3s var(--animation-timing-fade-in) both;
    animation-delay: 0.05s;
  }

  .quick-add-modal__content .product-information__media slideshow-slide:nth-child(3) {
    animation: fadeSlideIn 0.3s var(--animation-timing-fade-in) both;
    animation-delay: 0.1s;
  }

  .quick-add-modal__content .product-information__media :is(slideshow-controls, slideshow-controls[thumbnails]) {
    display: none;
  }

  .quick-add-modal__content .sticky-content,
  .quick-add-modal__content .sticky-content--desktop {
    top: 0;
  }

  .quick-add-modal__content .text-block.rte:not(product-price),
  .quick-add-modal__content .view-more-details__wrapper {
    display: none;
  }

  @keyframes fadeSlideIn {
    from {
      opacity: 0;
      transform: translateY(10px);
    }

    to {
      opacity: 1;
      transform: translateY(0);
    }
  }
/* END_SNIPPET:quick-add-modal-styles */
/* START_SNIPPET:quick-add-styles (INDEX:241) */
/* Quick Add */
  .quick-add {
    --quick-add-offset: var(--padding-sm);
    --quick-add-right: calc(var(--quick-add-offset) + var(--padding-inline-end));
    --quick-add-bottom: calc(var(--quick-add-offset) + var(--padding-block-end));

    position: absolute;
    inset: 0;
    z-index: var(--layer-raised);
    pointer-events: none;

    @media screen and (min-width: 750px) {
      --quick-add-offset: var(--padding-md);
    }
  }

  .quick-add .variant-option__button-label input[data-option-available='false'] {
    cursor: not-allowed;
  }

  .quick-add[class*='color-scheme-'] {
    background-color: #0000;
  }

  product-card:is(:hover, :focus-within) .quick-add__button {
    opacity: 1;
  }

  .quick-add__button {
    display: var(--quick-add-mobile-display, none);
    align-items: center;
    background: linear-gradient(var(--color-background) 0 100%) padding-box;
    padding: 0;
    border-radius: 50px;
    border: 2px solid hsl(0 0% 0% / 0.15);
    height: var(--button-size-md);
    cursor: pointer;
    opacity: var(--quick-add-mobile-opacity, 0);
    overflow: hidden;
    color: var(--color-foreground);
    pointer-events: all;
    position: absolute;
    right: max(var(--quick-add-right), calc((var(--border-radius) + var(--quick-add-right)) * (1 - cos(45deg))));
    bottom: max(var(--quick-add-bottom), calc((var(--border-radius) + var(--quick-add-bottom)) * (1 - cos(45deg))));
    backdrop-filter: blur(20px) saturate(180%);

    &:hover {
      scale: 1.03;

      /* Hover stabilizer: extends hit area to maintain hover state */
      &::before {
        content: '';
        position: absolute;
        inset: -10px;
        z-index: -1;
      }
    }

    &:active {
      scale: 0.99;
    }

    .quick-add[stay-visible] & {
      display: grid;
    }

    @media screen and (min-width: 750px) {
      display: var(--quick-add-display, flex);
      opacity: 0;
    }
  }

  .quick-add__button.add-to-cart-button {
    height: var(--button-size-md);
  }

  .quick-add__button .add-to-cart-text {
    background: var(--color-background);
    overflow: hidden;
    border-radius: 50px;
    height: 100%;
    gap: 0;
  }

  .quick-add__button .svg-wrapper .checkmark-burst {
    width: 22px;
    height: 22px;
  }

  .quick-add__button .add-to-cart-icon {
    /* account for border width */
    height: 100%;
    width: calc(var(--button-size-md) - 4px);
  }

  .quick-add__button .add-to-cart-text__content {
    display: grid;
    grid-template-columns: 0fr;

    & > span {
      min-width: 0;

      span {
        padding-right: var(--padding-sm);
        opacity: 0;
        display: inline-block;
        filter: blur(2px);
        translate: 0.5ch 0;
      }
    }
  }

  .quick-add__button[data-added='true'] .add-to-cart-text {
    animation-name: atc-fade-out;
  }

  .quick-add__button[data-added='true'] .add-to-cart-text--added {
    translate: 0 0;
    animation-name: atc-fade-in;
  }

  .quick-add__product-form-component {
    height: 100%;
  }

  .quick-add__product-form-component .shopify-product-form {
    display: flex;
    justify-content: flex-end;
    align-items: flex-end;
    container-type: inline-size;
    height: 100%;
  }

  .quick-add-modal .product-media {
    width: 100%;
    height: 100%;
  }

  .quick-add-modal deferred-media {
    display: none;
  }

  .quick-add-modal .media-gallery--carousel slideshow-component {
    --cursor: default;
  }

  .quick-add__button:is(:hover, :focus-visible) {
    .add-to-cart-text__content {
      grid-template-columns: 1fr;

      span span {
        opacity: 1;
        translate: 0 0;
        filter: blur(0);
      }
    }
  }

  @media (prefers-reduced-motion: reduce) {
    .quick-add__button .add-to-cart-text__content {
      grid-template-columns: 1fr;

      span span {
        opacity: 1;
        translate: 0 0;
        filter: blur(0);
      }
    }
  }

  @media (prefers-reduced-motion: no-preference) {
    .quick-add__button {
      transition-property: scale, translate, opacity;
      transition-duration: var(--animation-speed);
      transition-timing-function: var(--ease-out-cubic);
    }

    .quick-add__button:is(:hover, :focus-visible) {
      .add-to-cart-text__content,
      .add-to-cart-text__content span span {
        transition-delay: var(--animation-speed);
      }
    }

    .quick-add__button .add-to-cart-text__content {
      transition-property: grid-template-columns;
      transition-duration: var(--animation-speed);
      transition-timing-function: var(--ease-out-cubic);

      span span {
        transition-property: opacity, filter, translate;
        transition-duration: var(--animation-speed-slow);
        transition-timing-function: var(--ease-out-quad);
      }
    }
  }
/* END_SNIPPET:quick-add-styles */
/* START_SNIPPET:resource-card (INDEX:243) */
.resource-card {
    --resource-card-secondary-image-opacity: 0;
    --resource-card-primary-image-opacity: calc(1 - var(--resource-card-secondary-image-opacity));

    display: flex;
    flex-direction: column;
    row-gap: var(--padding-xs);
    position: relative;
    text-decoration: none;
    height: 100%;
    opacity: 0;
    animation: fadeIn var(--animation-speed-medium) var(--animation-timing-fade-in) forwards;
  }

  .resource-card__link {
    position: absolute;
    inset: 0;
    z-index: 1;
  }

  .resource-card__content {
    display: flex;
    flex-direction: column;
    color: var(--color-foreground);
    gap: var(--padding-3xs);

    .price {
      font-weight: 500;
    }

    .volume-pricing-note {
      display: block;
      margin-top: var(--padding-3xs);
      font-family: var(--font-body--family);
      font-weight: normal;
      font-size: min(0.85em, var(--font-paragraph--size));
      line-height: normal;
      letter-spacing: normal;
      text-transform: none;
      color: rgb(var(--color-foreground-rgb) / var(--opacity-subdued-text));
    }
  }

  .resource-card[data-resource-type='article'] .resource-card__content,
  .resource-card[data-resource-type='page'] .resource-card__content {
    gap: var(--padding-xs);
  }

  .resource-card__image {
    aspect-ratio: var(--resource-card-aspect-ratio, auto);
    object-fit: cover;
    border-radius: var(--resource-card-corner-radius);
    opacity: var(--resource-card-primary-image-opacity);
  }

  .resource-card__image--secondary {
    position: absolute;
    top: 0;
    opacity: var(--resource-card-secondary-image-opacity);
    border-radius: var(--resource-card-corner-radius);
  }

  .resource-card__media:empty {
    display: none;
  }

  .resource-card__image-placeholder {
    padding: var(--padding-sm);
    font-size: var(--font-size--lg);
    line-height: var(--line-height--display-loose);
    word-break: break-word;
    background-color: rgb(var(--color-foreground-rgb) / var(--opacity-5));
    aspect-ratio: var(--resource-card-aspect-ratio, auto);
    border-radius: var(--resource-card-corner-radius);
    color: var(--color-foreground);
  }

  .resource-card__title {
    margin-block: 0;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    overflow: hidden;
    line-height: 1.3;
    word-break: break-word;
    overflow-wrap: break-word;
  }

  .resource-card__title.paragraph {
    line-height: 1.3;
  }

  .resource-card--overlay {
    height: 100%;

    &::before {
      content: '';
      position: absolute;
      inset: 50% 0 0;
      background: var(--gradient-image-overlay);
      border-radius: var(--resource-card-corner-radius);
      pointer-events: none;
      z-index: var(--layer-flat);
    }
  }

  .resource-card--overlay .resource-card__image {
    height: 100%;
  }

  .resource-card--overlay .resource-card__content {
    position: absolute;
    inset: auto 0 0;
    padding: var(--padding-lg) var(--padding-lg) var(--padding-sm);
    z-index: var(--layer-raised);
  }

  .resource-card--overlay .resource-card__title {
    color: var(--color-white);
  }

  /* Collection images */
  .resource-card__image-wrapper {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: var(--gap-2xs);
  }

  .resource-card__collection-image {
    aspect-ratio: 1 / 1;
    object-fit: cover;
    border-radius: calc(var(--card-corner-radius) - (var(--padding-xs) / 2));
  }

  .resource-card__subtext {
    color: rgb(var(--color-foreground-rgb) / var(--opacity-subdued-text));
    margin-block-start: 0;
  }

  .resource-card__subtext.paragraph {
    font-size: var(--font-size--body-sm);
    line-height: var(--line-height--body-tight);
    color: rgb(var(--color-foreground-rgb) / var(--opacity-subdued-text));
  }

  .resource-card:has(.resource-card__image--secondary) {
    &:hover,
    &:focus {
      --resource-card-secondary-image-opacity: 1;
    }
  }
/* END_SNIPPET:resource-card */
/* START_SNIPPET:search-modal (INDEX:248) */
/* Search modal style */
  .search-modal {
    --search-border-radius: var(--style-border-radius-popover);
    --search-border-width: var(--style-border-width);
  }

  .search-modal__content {
    /* Approx set the top so when the content is at max height, the modal is centered */
    --modal-top-margin: calc(50dvh - var(--modal-max-height) / 2 - 2rem);
    --modal-width: 66dvw;

    padding: 0;
    border: var(--style-border-popover);

    @media screen and (min-width: 750px) {
      width: var(--modal-width);
      margin-block-start: var(--modal-top-margin);
      overflow: hidden;
    }
  }

  /* Hide the default dialog backdrop on small screens */
  @media screen and (max-width: 749px) {
    .search-modal__content::backdrop {
      display: none;
    }
  }

  .dialog-modal[open].search-modal__content {
    transform-origin: bottom center;
    animation: search-element-slide-in-bottom 300ms var(--ease-out-quad) forwards;
    border-radius: var(--search-border-radius);
    box-shadow: var(--shadow-popover);

    @media screen and (max-width: 749px) {
      border-radius: 0;
    }
  }

  .dialog-modal.search-modal__content.dialog-closing {
    animation: search-element-slide-out-bottom 200ms var(--ease-out-quad) forwards;
  }

  .search-modal__content[open] {
    display: flex;
  }

  .search-modal__content :is(.predictive-search-dropdown, .predictive-search-form__content-wrapper) {
    position: relative;
  }

  .dialog-modal
    .predictive-search-form__header:has(
      .predictive-search__reset-button:not(.predictive-search__reset-button[hidden])
    )::before {
    content: '';
    position: absolute;
    right: calc(var(--padding-sm) + var(--minimum-touch-target));
    top: 0;
    bottom: 0;
    width: var(--border-width-sm);
    background-color: var(--color-border);
  }

  .dialog-modal
    .predictive-search-form__header:has(.predictive-search__reset-button:not(.predictive-search__reset-button[hidden]))
    > .predictive-search__close-modal-button {
    &::before {
      content: none;
    }
  }

  @media screen and (min-width: 750px) {
    .dialog-modal
      .predictive-search-form__header:has(
        .predictive-search__reset-button:not(.predictive-search__reset-button[hidden])
      )::before {
      right: calc(var(--padding-2xl) * 2);
    }
  }

  predictive-search-component {
    --resource-card-corner-radius: var(--product-corner-radius);

    display: flex;
    width: 100%;
    position: relative;
    margin-inline: auto;
    align-items: center;
    background-color: var(--color-background);
    z-index: var(--layer-heightened);
  }

  .predictive-search-form__footer {
    display: none;
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;

    @media screen and (min-width: 750px) {
      --to-top-gradient-background: linear-gradient(
        to top,
        rgb(var(--color-background-rgb) / var(--opacity-90)),
        rgb(var(--color-background-rgb) / var(--opacity-80)),
        rgb(var(--color-background-rgb) / var(--opacity-40)),
        transparent
      );

      padding-block: var(--padding-xs) var(--padding-lg);
      background-image: var(--to-top-gradient-background);
    }
  }

  predictive-search-component:has([data-search-results]):not(:has(.predictive-search-results__no-results))
    .predictive-search-form__footer {
    display: block;
  }

  .predictive-search-form {
    position: relative;
    width: 100%;
    align-self: flex-start;
  }

  .predictive-search-form__content {
    max-height: 50dvh;
    overflow-y: auto;
    background-color: var(--color-background);

    /* Firefox */
    scrollbar-width: none;

    /* Webkit browsers */
    &::-webkit-scrollbar {
      display: none;
    }
  }

  .predictive-search-form__content-wrapper {
    position: absolute;
    top: 100%;
    width: 100%;
    left: 0;
    z-index: var(--layer-raised);
    display: flex;
    flex-direction: column;
    border-radius: 0 0 var(--search-border-radius) var(--search-border-radius);
    transition: box-shadow var(--animation-speed) var(--animation-easing);
    transform: translateZ(0);
    will-change: transform, opacity;
    overflow: hidden;

    @media screen and (max-width: 749px) {
      border-radius: 0;
    }

    @media screen and (min-width: 750px) {
      max-height: var(--modal-max-height);
    }
  }

  /* Add new rule to apply bottom padding only when search button exists */
  .predictive-search-form__content-wrapper:has([data-search-results]):not(:has(.predictive-search-results__no-results))
    > .predictive-search-form__content {
    padding-block-end: var(--padding-6xl);
  }

  .predictive-search-form__header-inner {
    background: var(--color-background);
    border: var(--search-border-width) solid var(--color-border);
    color: var(--color-foreground);
    border-radius: var(--style-border-radius-popover);
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;

    @media screen and (max-width: 749px) {
      border-radius: var(--style-border-radius-inputs);
      border: none;
    }
  }

  .predictive-search-form__header-inner:focus-within {
    outline-offset: var(--focus-outline-offset);

    @media screen and (min-width: 750px) {
      outline: var(--focus-outline-width) solid var(--color-primary);
    }
  }

  .predictive-search-form__header {
    display: flex;
    position: sticky;
    top: 0;
    z-index: var(--layer-heightened);
    width: 100%;
    align-items: center;
    background-color: var(--color-input-background);
    border: var(--search-border-width) solid var(--color-border);
    border-radius: var(--style-border-radius-inputs);

    @media screen and (max-width: 749px) {
      padding: var(--padding-2xs) var(--padding-sm);
    }
  }

  .predictive-search-form__header:focus-within,
  .predictive-search-form__header-inner:focus-within,
  .predictive-search-form__header-inner:has(.search-input:is(:focus, :focus-visible)) {
    outline: none;
    box-shadow: none;
    /* stylelint-disable-next-line declaration-no-important */
    border-color: var(--color-border) !important;
  }

  input.search-input {
    border-radius: var(--style-border-radius-inputs);
    padding-block: var(--padding-sm);
    font-size: var(--font-size--md);
    width: 100%;
    color: var(--color-foreground);
    padding-inline: calc(var(--margin-lg) + var(--icon-size-lg)) 0;
    background: transparent;
    text-overflow: ellipsis;
    overflow: hidden;
    outline: none;
    border: 0;
  }

  .search-input::placeholder {
    color: rgb(var(--color-foreground-rgb) / var(--opacity-subdued-text));
  }

  .search-input,
  .search-input:is(:focus, :focus-visible, :focus-within),
  .predictive-search-form__header *:is(:focus, :focus-visible) {
    outline: none;
    box-shadow: none;
  }

  .search-input:hover {
    background-color: transparent;
  }

  .predictive-search__icon {
    position: absolute;
    left: var(--margin-xl);
    top: auto;
    width: var(--icon-size-lg);
    height: var(--icon-size-lg);
    color: rgb(var(--color-foreground-rgb) / var(--opacity-60));

    @media screen and (min-width: 750px) {
      left: var(--margin-md);
    }
  }

  .predictive-search__icon > svg {
    width: var(--icon-size-md);
    height: var(--icon-size-md);
  }

  .predictive-search__reset-button {
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: var(--minimum-touch-target);
    height: var(--minimum-touch-target);
    padding: 0;
    margin-inline-end: var(--margin-md);
    background: transparent;
    color: var(--color-foreground);
    opacity: 0.68;
    transition: opacity var(--animation-speed-medium) var(--animation-timing-fade-out),
      visibility var(--animation-speed-medium) var(--animation-timing-fade-out);

    &:hover {
      color: var(--color-foreground);
    }

    &:active {
      transform: scale(0.9);
      transition: transform 100ms var(--animation-timing-active);
    }

    @media screen and (min-width: 750px) {
      margin-inline-end: var(--margin-2xs);
    }
  }

  .predictive-search__reset-button[hidden] {
    opacity: 0;
    pointer-events: none;
    visibility: hidden;
  }

  .predictive-search__reset-button-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: var(--icon-size-lg);
    height: var(--icon-size-lg);
    transition: background-color var(--animation-speed-medium) ease-in-out,
      transform var(--animation-speed-medium) var(--animation-timing-bounce);
    border-radius: 50%;

    &:hover {
      background-color: rgb(var(--color-primary-hover-rgb) / var(--opacity-8));
    }
  }

  .predictive-search__reset-button:active .predictive-search__reset-button-icon {
    transform: scale(0.85);
    transition-timing-function: var(--animation-timing-active);
    transition-duration: 100ms;
  }

  .predictive-search__reset-button svg {
    width: var(--icon-size-md);
    height: var(--icon-size-md);
  }

  .predictive-search__reset-button-text {
    display: none;
  }

  .predictive-search__search-button {
    margin: auto;
    z-index: var(--layer-raised);
    transition: transform var(--animation-speed-medium) var(--animation-timing-bounce),
      box-shadow var(--animation-speed-medium) var(--animation-timing-hover);
    transform-origin: center;

    &:hover {
      transform: translateY(-2px);
      box-shadow: 0 4px 8px rgb(0 0 0 / var(--opacity-5));
    }

    &:active {
      transform: scale(0.97);
      transition: transform 100ms var(--animation-timing-active);
      box-shadow: none;
    }
  }

  .predictive-search__close-modal-button {
    --button-color: var(--color-foreground);
    --button-background-color: transparent;

    display: flex;
    justify-content: center;
    align-items: center;
    width: var(--minimum-touch-target);
    height: var(--minimum-touch-target);
    margin-inline-start: var(--margin-sm);
    padding: 0;
    box-shadow: none;

    &:active {
      transform: scale(0.8);
      transition: transform 100ms var(--animation-timing-active);
    }

    .svg-wrapper,
    svg {
      width: var(--icon-size-xs);
      height: var(--icon-size-xs);
    }
  }

  .predictive-search__close-modal-button:hover {
    --button-color: var(--color-foreground);
    --button-background-color: transparent;
  }
/* END_SNIPPET:search-modal */
/* START_SNIPPET:search (INDEX:249) */
.search-action {
    --search-border-radius: var(--style-border-radius-inputs);
    --search-border-width: var(--style-border-width-inputs);

    display: flex;
  }

  @media screen and (max-width: 749px) {
    .search-action--hidden-on-drawer {
      display: none;
    }
  }

  @media screen and (min-width: 750px) {
    [data-menu-style='drawer'] .search-action--hidden-on-drawer {
      display: none;
    }

    [data-menu-style='menu'] .search-action--hidden-on-menu {
      display: none;
    }
  }

  [data-menu-style='menu'] .header__column--left .search-action {
    @media screen and (min-width: 750px) {
      margin-inline: calc(var(--padding-lg) * -1);
    }
  }

  .header__column--right .search-action {
    @media screen and (min-width: 750px) {
      margin-inline: calc(var(--gap-md) * -1) calc(var(--gap-xs) * -1);
    }
  }

  @media screen and (min-width: 750px) {
    .header__column--right .search-action--text {
      margin-inline: 0;
    }

    [data-menu-style='menu'] .header__column--left .search-action--text {
      margin-inline: 0;
    }
  }
/* END_SNIPPET:search */
/* START_SNIPPET:skip-to-content-link (INDEX:252) */
.skip-to-content-link {
    position: absolute;
    left: -99999px;
  }

  .skip-to-content-link:focus {
    z-index: var(--layer-temporary);
    overflow: auto;
    width: auto;
    height: auto;
    padding: var(--padding-lg) var(--padding-4xl);
    left: var(--margin-lg);
    top: var(--margin-lg);
    background-color: var(--color-background);
    box-shadow: 0 0 0 var(--focus-outline-offset) var(--color-background);
  }
/* END_SNIPPET:skip-to-content-link */
/* START_SNIPPET:slideshow-arrow (INDEX:254) */
.slideshow-control--large {
    .icon-caret {
      --icon-stroke-width: 1px;
    }

    .icon-caret {
      --icon-stroke-width: 1px;
    }

    .svg-wrapper,
    svg {
      width: var(--slideshow-controls-icon);
      height: var(--slideshow-controls-icon);
    }
  }

  /* Slideshow control shape styles */
  .slideshow-control.slideshow-control--shape-square,
  .slideshow-control.slideshow-control--shape-circle {
    display: flex;
    align-items: center;
    justify-content: center;
    aspect-ratio: 1 / 1;
    background-color: var(--color-primary-button-background);
    color: var(--color-primary-button-text);
  }

  .slideshow-control.slideshow-control--shape-circle {
    border-radius: 50%;
  }

  .slideshow-control.slideshow-control--shape-square {
    border-radius: 0;
  }

  .slideshow-control .icon-caret {
    rotate: -90deg;
  }
/* END_SNIPPET:slideshow-arrow */
/* START_SNIPPET:slideshow-arrows (INDEX:255) */
slideshow-arrows {
    --cursor-previous: w-resize;
    --cursor-next: e-resize;

    position: absolute;
    inset: 0;
    display: flex;
    z-index: var(--layer-heightened);
    pointer-events: none;
    mix-blend-mode: difference;
    align-items: flex-end;

    &[position='left'] {
      justify-content: flex-start;
      padding-inline: var(--padding-xs);
    }

    &[position='right'] {
      justify-content: flex-end;
      padding-inline: var(--padding-xs);
    }

    &[position='center'] {
      justify-content: space-between;
      align-items: center;
    }
  }

  slideshow-arrows:has(.slideshow-control--shape-square),
  slideshow-arrows:has(.slideshow-control--shape-circle) {
    mix-blend-mode: normal;
  }

  slideshow-component[disabled='true'] slideshow-arrows {
    display: none;
  }

  slideshow-arrows .slideshow-control {
    pointer-events: auto;
    opacity: 0;
    min-height: var(--minimum-touch-target);
    min-width: var(--minimum-touch-target);
    padding: 0 var(--padding-xs);
    color: var(--color-white);
  }

  slideshow-arrows .slideshow-control.slideshow-control--style-none {
    display: none;
  }
/* END_SNIPPET:slideshow-arrows */
/* START_SNIPPET:slideshow-styles (INDEX:258) */
/*
   * Slideshow Component
   */
  slideshow-component {
    --cursor: grab;
    --slide-offset: 6px;

    position: relative;
    display: flex;
    flex-direction: column;
    timeline-scope: var(--slideshow-timeline);
  }

  .slideshow--single-media {
    --cursor: default;
  }

  a slideshow-component {
    --cursor: pointer;
  }

  slideshow-component [data-placeholder='true'] * {
    cursor: grab;
  }

  /*
   * Slideshow Slides
   */
  slideshow-slides {
    width: 100%;
    position: relative;
    display: flex;
    overflow-x: scroll;
    scroll-snap-type: x mandatory;
    scroll-behavior: smooth;
    scrollbar-color: transparent transparent;
    scrollbar-width: none;
    gap: var(--slideshow-gap, 0);
    cursor: var(--cursor);
    min-height: var(--slide-min-height);
    align-items: var(--slideshow-align-items, normal);

    @media (prefers-reduced-motion) {
      scroll-behavior: auto;
    }

    &::-webkit-scrollbar {
      width: 0;
    }

    &::-webkit-scrollbar-track {
      background: transparent;
    }

    &::-webkit-scrollbar-thumb {
      background: transparent;
      border: none;
    }

    @media screen and (min-width: 750px) {
      min-height: var(--slide-min-height-desktop);
    }
  }

  .slideshow--stretch-content slideshow-slides > * {
    height: auto;
  }

  slideshow-component[disabled='true'] slideshow-slides {
    overflow: hidden;
  }

  /**
   * By default, slideshows have overflow: hidden (no compositor layer).
   * When the slideshow enters the viewport, JavaScript adds [in-viewport] which enables scrolling.
   */
  slideshow-component:not([in-viewport]) slideshow-slides {
    overflow: hidden;
  }

  slideshow-component[mobile-disabled] slideshow-slides {
    @media screen and (max-width: 749px) {
      overflow: hidden;
    }
  }

  slideshow-slides[gutters*='start'] {
    padding-inline-start: var(--gutter-slide-width, 0);
    scroll-padding-inline-start: var(--gutter-slide-width, 0);
  }

  slideshow-slides[gutters*='end'] {
    padding-inline-end: var(--gutter-slide-width, 0);
  }

  slideshow-component[dragging] {
    --cursor: grabbing;

    * {
      pointer-events: none;
    }
  }

  slideshow-component[dragging] slideshow-arrows {
    display: none;
  }

  slideshow-container {
    width: 100%;
    display: block;
    position: relative;
    grid-area: container;
    container-type: inline-size;
    background-color: var(--color-background);
  }

  /*
   * Be specific about HTML children structure to avoid targeting nested slideshows.
   * Ensure that the content is 'visible' while scrolling instead of 'auto' to avoid issues in Safari.
   */
  slideshow-component:is([dragging], [transitioning], :hover) > slideshow-container > slideshow-slides > slideshow-slide {
    content-visibility: visible;
  }

  @keyframes slide-reveal {
    0% {
      translate: calc(var(--slideshow-slide-offset, 6) * 1rem) 0;
      opacity: 0;
    }

    50% {
      opacity: 1;
    }

    100% {
      translate: calc(var(--slideshow-slide-offset, 6) * -1rem) 0;
      opacity: 0;
    }
  }

  /*
   * Slideshow Slide
   */
  slideshow-slide {
    position: relative;
    scroll-snap-align: center;
    width: var(--slide-width, 100%);
    max-height: 100%;
    flex-shrink: 0;
    view-timeline-name: var(--slideshow-timeline);
    view-timeline-axis: inline;
    content-visibility: auto;
    contain-intrinsic-size: auto none;
    border-radius: var(--corner-radius, 0);
    overflow: hidden;

    slideshow-component[actioned] &,
    &[aria-hidden='false'] {
      content-visibility: visible;
    }

    slideshow-component slideshow-slide:not([aria-hidden='false']) {
      content-visibility: hidden;
    }

    &[hidden]:not([reveal]) {
      display: none;
    }

    /* Make inactive slides appear clickable */
    &[aria-hidden='true'] {
      cursor: pointer;
    }
  }

  slideshow-slide .shopify-model-viewer-ui__controls-area.shopify-model-viewer-ui__controls-area {
    bottom: var(--padding-sm);
    right: var(--padding-sm);
  }

  slideshow-component.slideshow--content-below-media slideshow-slide {
    display: grid;
  }

  .slideshow--content-below-media slideshow-slide :is(.slide__image-container, .slide__content) {
    position: static;
  }

  .slideshow--content-below-media slideshow-slide {
    grid-template-rows: var(--grid-template-rows);

    @media screen and (min-width: 750px) {
      grid-template-rows: var(--grid-template-rows-desktop);
    }
  }
/* END_SNIPPET:slideshow-styles */
/* START_SNIPPET:text (INDEX:268) */
:root {
    --text-align-default: left;
  }

  [style*='--horizontal-alignment: center'] .text-block {
    --text-align-default: center;
  }

  [style*='--horizontal-alignment: flex-end'] .text-block {
    --text-align-default: right;
  }

  [style*='--horizontal-alignment: flex-start'] > .text-block {
    --text-align-default: left;
  }

  [style*='--horizontal-alignment: center'] > .text-block {
    --text-align-default: center;
  }

  [style*='--horizontal-alignment: flex-end'] > .text-block {
    --text-align-default: right;
  }

  .text-block {
    width: var(--width);
    max-width: 100%;
    display: flex;
    flex-direction: column;
    align-items: var(--horizontal-alignment);
  }

  .text-block > * {
    width: var(--width);
    max-inline-size: min(100%, var(--max-width, 100%));
    text-align: var(--text-align, var(--text-align-default));
    text-wrap: var(--text-wrap);
  }

  .text-block:not(.text-block--full-width).rte,
  .text-block:not(.text-block--full-width).paragraph {
    /* Safari doesn't support pretty, so fallback to balance */
    text-wrap: balance;
    text-wrap: pretty;
  }

  .text-block:not(.text-block--full-width):is(.h1, .h2, .h3, .h4, .h5, .h6) {
    text-wrap: balance;
  }

  /* Hide underline unless text is using paragraph styles. */
  .text-block:is(.h1, .h2, .h3, .h4, .h5, .h6) a {
    text-decoration-color: transparent;
  }

  .text-block h1,
  .text-block.h1 > * {
    margin-block: var(--font-h1--spacing);
  }

  .text-block h2,
  .text-block.h2 > * {
    margin-block: var(--font-h2--spacing);
  }

  .text-block h3,
  .text-block.h3 > * {
    margin-block: var(--font-h3--spacing);
  }

  .text-block h4,
  .text-block.h4 > * {
    margin-block: var(--font-h4--spacing);
  }

  .text-block h5,
  .text-block.h5 > * {
    margin-block: var(--font-h5--spacing);
  }

  .text-block h6,
  .text-block.h6 > * {
    margin-block: var(--font-h6--spacing);
  }

  .text-block p,
  .text-block.p > * {
    margin-block: var(--font-paragraph--spacing);
  }

  .text-block > *:first-child {
    margin-block-start: 0;
  }

  .text-block > *:last-child {
    margin-block-end: 0;
  }

  .text-block--align-center,
  .text-block--align-center > * {
    margin-inline: auto;
  }

  .text-block--align-right,
  .text-block--align-right > * {
    margin-inline-start: auto;
  }

  .text-block--background {
    background-color: var(--text-background-color);
    border-radius: var(--text-corner-radius);

    /* To avoid text being cropped when using a border radius we add a minimum padding. */
    padding-block-start: max(var(--text-padding), var(--padding-block-start, 0));
    padding-block-end: max(var(--text-padding), var(--padding-block-end, 0));
    padding-inline-start: max(var(--text-padding), var(--padding-inline-start, 0));
    padding-inline-end: max(var(--text-padding), var(--padding-inline-end, 0));
  }

  .custom-color,
  .custom-color > :is(h1, h2, h3, h4, h5, h6, p, *) {
    color: var(--color);
  }
/* END_SNIPPET:text */
