/* ============================================================
   L2 — Castillito Accesorios Bebés
   Theme: Toluca  ·  archivo: /static/css/l2-custom-v3.css

   Cargar en layouts/layout.tpl, al final del <head>, después
   del bloque de settings.css_code:

   <link rel="stylesheet"
         href="{{ 'css/l2-custom-v3.css' | static_url }}"
         media="print" onload="this.media='all'">

   ⚠️ Los estáticos se sirven por CloudFront y la URL no lleva
   versión, así que sobrescribir el archivo NO alcanza: el CDN
   sigue devolviendo la copia vieja. Cada vez que cambies algo,
   subí el número del nombre (v4, v5...) y actualizá el layout.
   ============================================================ */


/* ============================================================
   1 · BARRA DE MENÚ DESKTOP  —  centrado + relieve
   ============================================================ */

.js-menu-and-banners-row{
  /* Capa de indirección: si algo hay que forzar se toca acá,
     no en 30 reglas.

     El theme trae el verde como color de nav y el azul como
     accent. Acá van invertidos: menú azul en reposo, verde al
     pasar el mouse. Sin hex clavados, así que si cambian la
     paleta desde el admin esto acompaña. */
  --l2-nav-bg:     var(--nav-desktop-background);

  /* 88% del accent + 12% de negro: el mismo azul de la marca
     pero más profundo, para que no se lave sobre el fondo claro */
  --l2-nav-fg:     color-mix(in srgb, var(--accent-color) 88%, #000);

  --l2-nav-accent: var(--nav-desktop-foreground);   /* verde — hover / activo */

  --l2-nav-hairline: var(--main-foreground-opacity-10);
  --l2-nav-wash:     var(--main-foreground-opacity-08);

  /* Resalte de fondo del item con mouse encima */
  --l2-nav-hi: color-mix(in srgb, var(--l2-nav-accent) 14%, transparent);
}

/* ---------- la barra ---------- */
.js-menu-and-banners-row .nav-desktop{
  background: var(--l2-nav-bg);
  border-top: 1px solid var(--l2-nav-hairline);
  border-bottom: 1px solid var(--l2-nav-hairline);
  /* Sombra propia y no var(--shadow-distance): el token del theme
     es "0 0 5px", sin offset vertical, y sin offset no hay relieve. */
  box-shadow: 0 1px 2px var(--main-foreground-opacity-05),
              0 4px 14px -6px var(--main-foreground-opacity-10);
  position: relative;
  z-index: 30;
}

/* ---------- centrado seguro ---------- */
.js-menu-and-banners-row .nav-desktop-list{
  display: flex;
  align-items: stretch;
  flex-wrap: nowrap;
  margin: 0;
  padding: 0 var(--gutter-half);
  list-style: none;

  justify-content: center;
  justify-content: safe center;  /* si desborda cae a flex-start: no corta items */
}

/* ---------- items principales ---------- */
.js-menu-and-banners-row .nav-main-item > .nav-list-link,
.js-menu-and-banners-row .nav-main-item > .nav-item-container > .nav-list-link{
  position: relative;
  display: flex;
  align-items: center;
  padding: 15px var(--gutter) 14px;
  color: var(--l2-nav-fg);
  font-family: var(--body-font);
  font-size: var(--font-small);
  font-weight: 700;
  letter-spacing: .075em;
  text-transform: uppercase;
  line-height: 1.25;
  white-space: nowrap;
  text-decoration: none;
  background-color: transparent;
  transition: color .18s ease, background-color .18s ease;
}

/* subrayado que crece desde el centro */
.js-menu-and-banners-row .nav-main-item > .nav-list-link::after,
.js-menu-and-banners-row .nav-main-item > .nav-item-container > .nav-list-link::after{
  content:"";
  position:absolute;
  left: var(--gutter); right: var(--gutter); bottom: 8px;
  height: 2px;
  border-radius: 2px;
  background: var(--l2-nav-accent);
  transform: scaleX(0);
  transform-origin: center;
  transition: transform .26s cubic-bezier(.4,0,.2,1);
}

/* HOVER: verde + resalte de fondo + subrayado */
.js-menu-and-banners-row .nav-main-item:hover > .nav-list-link,
.js-menu-and-banners-row .nav-main-item:hover > .nav-item-container > .nav-list-link{
  color: var(--l2-nav-accent);
  background-color: var(--l2-nav-hi);
}
.js-menu-and-banners-row .nav-main-item:hover > .nav-list-link::after,
.js-menu-and-banners-row .nav-main-item:hover > .nav-item-container > .nav-list-link::after,
.js-menu-and-banners-row .nav-main-item > .nav-list-link.selected::after,
.js-menu-and-banners-row .nav-main-item > .nav-item-container > .nav-list-link.selected::after{
  transform: scaleX(1);
}

/* ACTIVO: mismo verde, resalte más suave que el hover */
.js-menu-and-banners-row .nav-main-item > .nav-list-link.selected,
.js-menu-and-banners-row .nav-main-item > .nav-item-container > .nav-list-link.selected{
  color: var(--l2-nav-accent);
  background-color: color-mix(in srgb, var(--l2-nav-accent) 7%, transparent);
}

/* flechita en los que abren dropdown */
.js-menu-and-banners-row .nav-main-item.item-with-subitems > .nav-item-container > .nav-list-link::before{
  content:"";
  width:5px; height:5px;
  margin-right:7px;
  border-right:1.6px solid currentColor;
  border-bottom:1.6px solid currentColor;
  transform: rotate(45deg) translateY(-1px);
  opacity:.5;
  transition: opacity .18s ease, transform .18s ease;
}
.js-menu-and-banners-row .nav-main-item.item-with-subitems:hover > .nav-item-container > .nav-list-link::before{
  opacity:.95;
  transform: rotate(45deg) translateY(1px);
}

/* ---------- dropdown ---------- */
.js-menu-and-banners-row .desktop-dropdown{
  background: var(--l2-nav-bg);
  border: 1px solid var(--l2-nav-hairline);
  border-radius: calc(var(--border-radius) * 3);   /* escala con el radio del theme */
  box-shadow: 0 18px 44px -14px var(--main-foreground-opacity-20),
              0 4px 10px -4px var(--main-foreground-opacity-10);
  padding: var(--gutter-double) calc(var(--gutter) + 7px);
  margin-top: 2px;

  /* El theme fija max-height por JS (inline). Con columnas angostas
     el contenido lo supera y, en multicolumna, el sobrante no
     scrollea: se desborda creando columnas nuevas hacia el costado
     que quedan cortadas y sin poder clickearse. */
  max-height: none !important;
}

/* Sin max-width el <ul> ocupa los ~1900px del viewport y columns
   reparte eso en cajas gigantes: el texto usa 250px y el resto
   queda vacío DENTRO de cada columna. Por eso se veían separadas.
   Achicar el column-gap no alcanza; hay que acotar el ancho.
   Selector con 3 clases para ganarle a cualquier width del theme. */
.js-menu-and-banners-row .desktop-dropdown .desktop-list-subitems{
  list-style: none;
  margin: 0;                   /* arranca a la izquierda, sin aire adelante */
  padding: 0;
  width: 100%;
  max-width: 1080px;           /* ← subir/bajar acá si queda apretado o suelto */
  columns: 4;                  /* 4 columnas → menos alto → no desborda */
  column-gap: var(--gutter);   /* 15px */
}
.js-menu-and-banners-row .desktop-dropdown .desktop-list-subitems > li{
  break-inside: avoid;
  page-break-inside: avoid;
  margin-bottom: 2px;
}

/* subitems */
.js-menu-and-banners-row .desktop-dropdown .nav-list-link{
  display:block;
  padding: 6px 10px;
  border-radius: var(--border-radius);
  color: var(--l2-nav-fg);
  font-family: var(--body-font);
  font-size: var(--font-small);
  font-weight: 500;
  letter-spacing: .01em;
  text-transform: none;
  text-decoration: none;
  transition: background-color .16s ease, color .16s ease, transform .16s ease;
}
.js-menu-and-banners-row .desktop-dropdown .nav-list-link:hover{
  background: var(--l2-nav-hi);
  color: var(--l2-nav-accent);
  transform: translateX(3px);
}
.js-menu-and-banners-row .desktop-dropdown .nav-list-link.selected{
  color: var(--l2-nav-accent);
  font-weight: 700;
}

/* cabecera de grupo dentro del dropdown */
.js-menu-and-banners-row .desktop-dropdown .item-with-subitems > .nav-item-container > .nav-list-link{
  font-size: var(--font-smallest);
  font-weight: 700;
  letter-spacing: .09em;
  text-transform: uppercase;
  opacity: .62;
  padding-bottom: 3px;
  margin-top: 12px;
}
.js-menu-and-banners-row .desktop-dropdown .item-with-subitems > .nav-item-container > .nav-list-link:hover{
  opacity: 1;
  background: transparent;
  transform: none;
}

/* lista anidada con guía a la izquierda */
.js-menu-and-banners-row .desktop-dropdown .list-subitems .list-subitems{
  list-style:none;
  margin: 2px 0 10px;
  padding-left: 11px;
  border-left: 1px solid var(--l2-nav-hairline);
}

/* ---------- flechas de scroll ---------- */
.js-menu-and-banners-row .nav-desktop-list-arrow{
  display:flex;
  align-items:center;
  padding: 0 6px;
  opacity:.35;
  transition: opacity .18s ease;
}
.js-menu-and-banners-row .nav-desktop-list-arrow:hover{opacity:.85}

/* ---------- accesibilidad ---------- */
.js-menu-and-banners-row .nav-list-link:focus-visible{
  outline: 2px solid var(--l2-nav-accent);
  outline-offset: -3px;
  border-radius: var(--border-radius-half);
}


/* ============================================================
   2 · CONTADOR REGRESIVO DEL HOME
   Markup en snipplets/l2-countdown.tpl
   ============================================================ */

.l2-countdown{
  /* Usa los colores del badge "OFERTA" de las fichas, así el reloj
     queda hermanado con los sellos de promo. */
  --l2-cd-bg:   var(--label-background);
  --l2-cd-fg:   var(--label-foreground);
  --l2-cd-chip: color-mix(in srgb, var(--label-foreground) 14%, transparent);

  display:none;                 /* lo enciende el JS: evita el flash */
  background: var(--l2-cd-bg);
  color: var(--l2-cd-fg);
  font-family: var(--body-font);
  padding: 18px var(--gutter);
  text-align: center;
}
.l2-countdown.is-on{display:block}

.l2-countdown__msg{
  font-family: var(--heading-font);
  font-size: var(--font-big);
  font-weight: var(--title-font-weight);
  line-height:1.35;
  margin:0 0 12px;
  letter-spacing:.01em;
}

.l2-countdown__clock{display:flex;justify-content:center;gap:8px}

.l2-countdown__unit{
  background: var(--l2-cd-chip);
  border-radius: calc(var(--border-radius) * 2);
  padding:8px 4px;
  min-width:62px;
}
.l2-countdown__num{
  display:block;
  font-size: var(--h3);
  font-weight:700;
  line-height:1;
  font-variant-numeric: tabular-nums;   /* sin esto los dígitos bailan en cada tick */
}
.l2-countdown__lbl{
  display:block;
  font-size: var(--font-smallest);
  text-transform:uppercase;
  letter-spacing:.09em;
  opacity:.75;
  margin-top:5px;
}

@media (max-width:480px){
  .l2-countdown{padding:14px 12px}
  .l2-countdown__msg{font-size: var(--font-base)}
  .l2-countdown__unit{min-width:0;flex:1;padding:7px 2px}
  .l2-countdown__num{font-size: var(--h5)}
}


/* ============================================================
   3 · MOVIMIENTO REDUCIDO
   ============================================================ */

@media (prefers-reduced-motion: reduce){
  .js-menu-and-banners-row .nav-list-link,
  .js-menu-and-banners-row .nav-list-link::after,
  .js-menu-and-banners-row .nav-list-link::before{transition:none !important}
}