/* ============================================================
   EDITORIAL UNAL — Layout normalizado del Home  (unal-home.css)
   ------------------------------------------------------------
   Garantiza que TODAS las secciones de la home queden:
     • Centradas horizontalmente.
     • Con el mismo gutter lateral (espacio entre contenido y
       bordes del viewport).

   Relación de anchos:
     --unal-home-gutter  → espacio mínimo desde el borde del
                           viewport al contenido (responsive).
     --unal-home-content → ancho máximo del área de contenido.

   Secciones del home:
     • Secciones custom (unal-hero, unal-home-search…): fondo
       full-bleed, contenido centrado vía __inner.
     • Sliders de producto (unal-related-slider): sin fondo
       propio, limitados al mismo ancho de contenido.
     • Banner Slider Mageplaza: override del padding heredado.
   ============================================================ */

/* ── Variables de layout del home ───────────────────────────
   clamp(mín, fluido, máx):
     375 px  → 1rem  = 16 px
     640 px  → 16 px (límite inferior)
     1024 px → ~26 px
     1280 px → 2rem  = 32 px  (límite superior = --unal-gutter)
   ──────────────────────────────────────────────────────────── */
:root {
    --unal-home-gutter:  clamp(1rem, 2.5vw, 2rem);   /* 16 px – 32 px */
    --unal-home-content: 1280px;                       /* ancho de contenido */
}

/* ══════════════════════════════════════════════════════════
   1. SECCIONES CUSTOM DEL HOME
      Sobrescribe el padding: X 20px hardcodeado en los
      inline <style> de cada template.
   ══════════════════════════════════════════════════════════ */
.unal-home-search {
    background: hsl(30 22% 97%);
}

.unal-hero,
.unal-home-search,
.unal-formats,
.unal-promo,
.unal-trust,
.unal-convoc,
.unal-areas,
.unal-podcast,
.unal-videos {
    padding-left:  var(--unal-home-gutter) !important;
    padding-right: var(--unal-home-gutter) !important;
}

/* ── 1a. Contenedores internos: ancho máximo uniforme ───────
   Hero  (820 px) y home-search (880 px) se dejan en su
   propio ancho porque son texto/formulario, no grillas.
   Se usa !important para ganar sobre los inline <style>
   de cada template (que se cargan después del <head>).      */
.unal-formats__inner,
.unal-promo__inner,
.unal-trust__inner,
.unal-convoc__inner,
.unal-areas__inner,
.unal-podcast__inner,
.unal-videos__inner {
    max-width:    var(--unal-home-content) !important;
    margin-left:  auto !important;
    margin-right: auto !important;
}

/* ── 1b. Grids internos: respetar el nuevo __inner ──────────
   Algunos templates definen max-width directo en el grid;
   se eliminan para que queden contenidos por __inner.       */
.unal-formats__grid {
    max-width: 100%;
}

/* ══════════════════════════════════════════════════════════
   2. PRODUCT SLIDERS — Mageplaza (unal-related-slider)
      En unal-styles.css tienen padding: 0 15px.
      Aquí los centramos y los igualamos al resto del home.
   ══════════════════════════════════════════════════════════ */
.unal-related-slider {
    /* Gutter igual al de las secciones custom */
    padding-left:  var(--unal-home-gutter) !important;
    padding-right: var(--unal-home-gutter) !important;

    /* Ancho total = contenido + 2 gutters → contenido alineado
       con el __inner de las secciones de fondo completo.    */
    max-width:    calc(var(--unal-home-content) + 2 * var(--unal-home-gutter));
    margin-left:  auto !important;
    margin-right: auto !important;
    box-sizing:   border-box;
}

/* El <hr> divisor usaba margin negativo (-15px) para tocar
   bordes; con el nuevo gutter se actualiza el compensador.  */
.unal-related-slider__divider {
    margin-left:  calc(-1 * var(--unal-home-gutter)) !important;
    margin-right: calc(-1 * var(--unal-home-gutter)) !important;
}

/* ══════════════════════════════════════════════════════════
   3. BANNER SLIDER — Mageplaza BannerSlider
      Template: bannerslider.phtml
      Estructura real del HTML renderizado:
        <div class="hero [bg]">
          <div id="bannerslider-list-items-{id}" class="owl-carousel">
            <div class="item ads"> … </div>
          </div>
        </div>

      div.hero = contenedor inmediato del carousel.
      Se centra y se le da el mismo gutter que el resto del home.
      Se usa .column.main como ancestro para no afectar otros
      div.hero que pudiera haber en otras páginas.
   ══════════════════════════════════════════════════════════ */

/* Widget inline (CMS {{block class="Mageplaza\BannerSlider\Block\Widget"}})
   ─ SIN padding lateral: las imágenes van borde a borde del contenedor.
   ─ El ancho máximo + centrado siguen aplicando para limitar el bloque.
   ─ Los botones owl-prev/owl-next quedan en los extremos reales del carousel. */
.column.main > .hero,
.column.main .hero {
    max-width:    calc(var(--unal-home-content) + 2 * var(--unal-home-gutter));
    margin-left:  auto  !important;
    margin-right: auto  !important;
    padding-left:  0    !important;   /* sin padding → carousel a borde completo */
    padding-right: 0    !important;
    box-sizing:    border-box;
    overflow:      visible;           /* permite que los botones sobresalgan */
}

/* ── Owl-nav al borde del carousel ─────────────────────────
   El carousel (owl-carousel) ocupa el 100% de .hero (sin padding),
   por lo que left:0 / right:0 coincide con el borde visual del slider. */
.column.main .hero .owl-nav .owl-prev { left:  0 !important; }
.column.main .hero .owl-nav .owl-next { right: 0 !important; }

/* ── Product sliders: compensar el gutter en los botones ───
   El track tiene padding = --unal-home-gutter; los botones al borde
   del track deben usar el valor negativo igual al gutter para que
   aparezcan en la orilla visible del contenedor.              */
.unal-related-slider .owl-carousel .owl-nav .owl-prev {
    left:  calc(-1 * var(--unal-home-gutter)) !important;
}
.unal-related-slider .owl-carousel .owl-nav .owl-next {
    right: calc(-1 * var(--unal-home-gutter)) !important;
}

/* ── Owl-dots: puntos de navegación debajo del banner ──────
   Sustituyen a las flechas owl-nav; se muestran sobre la parte
   inferior del slider (posición absoluta centrada).           */
.column.main .hero .owl-carousel {
    position: relative; /* ancla los dots absolutos */
}
.column.main .hero .owl-dots {
    /* Forzar posición, visibilidad y z-index por encima del CSS del módulo */
    position: absolute !important;
    bottom: 20px !important;
    left: 0 !important;
    right: 0 !important;
    width: 100% !important;
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
    gap: 10px !important;
    z-index: 20 !important;
    margin: 0 !important;
    padding: 0 !important;
    /* Sombra sobre el contenedor para visibilidad en cualquier fondo */
    filter: drop-shadow(0 1px 3px rgba(0, 0, 0, .6));
}
.column.main .hero .owl-dot {
    background: transparent !important;
    border: none !important;
    padding: 5px !important;
    box-shadow: none !important;
    line-height: 0 !important;
    outline: none !important;
}
.column.main .hero .owl-dot span {
    display: block !important;
    width: 12px !important;
    height: 12px !important;
    border-radius: 50% !important;
    background: rgba(255, 255, 255, .40) !important;
    border: 2px solid #fff !important;
    transition: background .2s, transform .2s !important;
    margin: 0 !important;
}
.column.main .hero .owl-dot.active span,
.column.main .hero .owl-dot:hover span {
    background: #fff !important;
    transform: scale(1.25) !important;
}

/* Bloque inyectado por layout (#mageplaza-bannerslider-*) */
div[id^="mageplaza-bannerslider"] {
    padding-left:  var(--unal-home-gutter) !important;
    padding-right: var(--unal-home-gutter) !important;
    box-sizing:    border-box;
}
div[id^="mageplaza-bannerslider"] > .carousel-container {
    max-width:    var(--unal-home-content) !important;
    margin-left:  auto !important;
    margin-right: auto !important;
}

/* ══════════════════════════════════════════════════════════
   4. RESPONSIVE — ajustes finos en pantallas pequeñas
   ══════════════════════════════════════════════════════════ */
@media (max-width: 600px) {
    /* En móvil los chips del home-search hacen scroll horizontal;
       el gutter mínimo de 1rem ya los acomoda.              */
    .unal-home-search__chips {
        padding-left:  0 !important;   /* el gutter del padre alcanza */
        padding-right: 0 !important;
    }
}
