/* =========================================================
   HEADER
   ========================================================= */

.header {
  position: relative;
  width: 100%;
  z-index: 1000;
  background: #fff;

  --header-purple: #38206f;
  --header-purple-light: #4b2a86;
  --header-green: #18a84a;
  --header-red: #ef3e3e;
  --header-text: #292929;
  --header-muted: #6f6f6f;
  --header-border: #eeeeee;
}

/* =========================================================
   TOP BAR
   ========================================================= */

.header-top {
  background: #f8f8fa;
  border-bottom: 1px solid var(--header-border);
  font-size: 13px;
}

.header-top-inner {
  min-height: 38px;

  display: flex;
  align-items: center;
  justify-content: space-between;

  gap: 20px;
}

.header-slogan {
  color: var(--header-muted);
  white-space: nowrap;
}

.header-contact {
  display: flex;
  align-items: center;
  justify-content: flex-end;

  gap: 24px;

  width: 100%;
}

.header-contact-item {
  display: inline-flex;
  align-items: center;
  gap: 8px;

  color: var(--header-purple);
  text-decoration: none;

  white-space: nowrap;

  transition: all 0.2s ease;
}

.header-contact-item:hover {
  color: var(--header-purple-light);
}

.header-contact-item i {
  font-size: 15px;
}

.header-contact-item.whatsapp i {
  color: var(--header-green);
  font-size: 18px;
}

.header-sucursales {
  padding-left: 22px;
  border-left: 1px solid #d8d8d8;
}

/* =========================================================
   HEADER PRINCIPAL
   ========================================================= */

.header-main {
  background: #fff;

  border-bottom: 1px solid var(--header-border);

  box-shadow: 0 4px 15px rgba(0, 0, 0, 0.06);
}

.header-main-inner {
  min-height: 88px;

  display: flex;
  align-items: center;

  gap: 26px;
}

/* =========================================================
   LOGO
   ========================================================= */

.header-logo {
  flex: 0 0 auto;

  display: flex;
  align-items: center;
}

.header-logo a {
  display: flex;
  align-items: center;
}

.header-logo img {
  display: block;

  width: auto;
  max-width: 175px;
  max-height: 64px;

  object-fit: contain;
}

/* =========================================================
   NAV
   ========================================================= */

.header-nav {
  padding: 0 !important;

  flex: 0 0 auto;
}

.header-nav .navbar-nav {
  display: flex;
  align-items: center;

  gap: 6px;
}

.header-nav .nav-link {
  position: relative;

  padding: 12px 17px !important;

  color: var(--header-purple);

  font-size: 18px;
  font-weight: 600;

  transition:
    color 0.2s ease,
    background-color 0.2s ease;
}

.header-nav .nav-link:hover {
  color: var(--header-purple-light);
}

.header-nav .nav-link::after {
  transition: transform 0.2s ease;
  display: none;
}

.header-nav .dropdown-menu {
  margin-top: 10px;

  min-width: 220px;

  padding: 8px;

  border: 0;
  border-radius: 10px;

  box-shadow: 0 8px 30px rgba(0, 0, 0, 0.12);
}

.header-nav .dropdown-item {
  padding: 10px 13px;

  border-radius: 7px;

  color: var(--header-text);

  font-size: 14px;
}

.header-nav .dropdown-item:hover {
  background: #f4f1fa;
  color: var(--header-purple);
}

/* =========================================================
   NAV - RESPONSIVE
   ========================================================= */

/* =========================================================
   DESKTOP
   ========================================================= */

@media (min-width: 992px) {
  /* -------------------------------------------------------
     QUIÉNES SOMOS
     ------------------------------------------------------- */

  #menu-quienes-somos-wrapper {
    position: relative;
  }

  #menu-quienes-somos-wrapper > .dropdown-menu {
    position: absolute;

    top: 100%;
    left: 0;

    margin-top: 10px;

    display: none;

    z-index: 1000;
  }

  #menu-quienes-somos-wrapper:hover > .dropdown-menu {
    display: block;
  }

  /* -------------------------------------------------------
     DEPARTAMENTOS
     ------------------------------------------------------- */

  #menu-tienda {
    position: relative;
  }

  #menu-tienda > .dropdown-menu {
    position: absolute;

    top: 100%;
    left: 0;

    margin-top: 10px;

    display: none;

    z-index: 1000;
  }

  #menu-tienda:hover > .dropdown-menu {
    display: block;
  }

  /* -------------------------------------------------------
     CATEGORÍAS
     ------------------------------------------------------- */

  #menu-tienda .dropdown-submenu {
    position: relative;
  }
  #menu-tienda .dropdown-submenu > .dropdown-menu {
    position: absolute;

    top: -8px;
    left: 100%;

    margin: 0;

    min-width: 280px;

    display: none;

    z-index: 1100;
  }

  #menu-tienda .dropdown-submenu:hover > .dropdown-menu {
    display: block;
  }

  @media (min-width: 992px) {
    #menu-tienda .dropdown-submenu::after {
      content: "";

      position: absolute;

      top: 0;
      right: -12px;

      width: 12px;
      height: 100%;

      display: block;
    }
  }
  /* -------------------------------------------------------
     FLECHA DE CATEGORÍAS
     ------------------------------------------------------- */

  #menu-tienda .dropdown-submenu > .dropdown-item {
    display: flex;

    align-items: center;

    justify-content: space-between;

    gap: 20px;
  }

  #menu-tienda .dropdown-submenu > .dropdown-item .menu-arrow {
    font-size: 10px;

    flex-shrink: 0;
  }
}

/* =========================================================
   MÓVIL Y TABLET
   ========================================================= */

@media (max-width: 991.98px) {
  /* -------------------------------------------------------
     NAV PRINCIPAL
     ------------------------------------------------------- */

  .header-nav {
    position: static !important;
  }

  #navbarSupportedContent {
    display: none;

    position: absolute;

    top: 100%;
    left: 0;

    width: 100%;

    background: #fff;

    z-index: 9999;

    max-height: calc(100vh - 80px);

    overflow-y: auto;

    box-shadow: 0 8px 25px rgba(0, 0, 0, 0.12);
  }

  #navbarSupportedContent.menu-mobile-open {
    display: block;
  }

  /* -------------------------------------------------------
     LISTA PRINCIPAL
     ------------------------------------------------------- */

  #navbarSupportedContent .navbar-nav {
    display: block;

    width: 100%;

    padding: 8px 0;
  }

  #navbarSupportedContent .nav-item {
    width: 100%;
  }

  #navbarSupportedContent .nav-link {
    width: 100%;

    padding: 14px 20px !important;

    display: flex;

    align-items: center;

    justify-content: space-between;
  }

  /* -------------------------------------------------------
     QUIÉNES SOMOS
     ------------------------------------------------------- */

  #menu-quienes-somos-wrapper > .dropdown-menu {
    position: static !important;

    display: none;

    width: 100%;

    margin: 0;

    padding: 0 0 5px 15px;

    border: 0;

    border-radius: 0;

    box-shadow: none;
  }

  #menu-quienes-somos-wrapper.menu-dropdown-open > .dropdown-menu {
    display: block;
  }

  /* -------------------------------------------------------
     DEPARTAMENTOS
     ------------------------------------------------------- */

  #menu-tienda > .dropdown-menu {
    position: static !important;

    display: none;

    width: 100%;

    margin: 0;

    padding: 0 0 5px 15px;

    border: 0;

    border-radius: 0;

    box-shadow: none;
  }

  #menu-tienda.menu-dropdown-open > .dropdown-menu {
    display: block;
  }

  /* -------------------------------------------------------
     DEPARTAMENTO
     ------------------------------------------------------- */

  #menu-tienda .dropdown-submenu > .dropdown-item {
    display: flex;

    align-items: center;

    justify-content: space-between;

    gap: 15px;

    margin-top: 0;
  }

  /* -------------------------------------------------------
     CATEGORÍAS
     ------------------------------------------------------- */

  #menu-tienda .dropdown-submenu > .dropdown-menu {
    position: static !important;

    display: none;

    width: 100%;

    margin: 0;

    padding: 0 0 0 15px;

    border: 0;

    border-radius: 0;

    box-shadow: none;
  }

  #menu-tienda .dropdown-submenu.menu-submenu-open > .dropdown-menu {
    display: block;
  }

  /* -------------------------------------------------------
     FLECHA CATEGORÍAS
     ------------------------------------------------------- */

  #menu-tienda .dropdown-submenu .menu-arrow {
    transition: transform 0.2s ease;
  }

  #menu-tienda .dropdown-submenu.menu-submenu-open .menu-arrow {
    transform: rotate(90deg);
  }
}

/* =========================================================
   ACCIONES
   ========================================================= */

.header-actions {
  display: flex;
  align-items: center;

  gap: 8px;

  margin-left: auto;
}

.header-action {
  position: relative;

  width: 42px;
  height: 42px;

  display: flex;
  align-items: center;
  justify-content: center;

  color: #292929;
  text-decoration: none;

  border-radius: 50%;

  transition: all 0.2s ease;
}

.header-action:hover {
  color: var(--header-purple);
  background: #f5f2fa;
}

.header-action i {
  font-size: 20px;
}

.header-badge {
  position: absolute;

  top: -1px;
  right: -1px;

  min-width: 18px;
  height: 18px;

  padding: 0 5px;

  display: flex;
  align-items: center;
  justify-content: center;

  border-radius: 50%;

  background: var(--header-red);
  color: #fff;

  font-size: 10px;
  font-weight: 700;

  line-height: 1;
}

/* =========================================================
   BUSCADOR
   ========================================================= */

.header-search {
  flex: 0 1 330px;

  margin-left: 8px;
}

.header-search .input-group {
  height: 42px;
}

.header-search .form-control {
  height: 42px;

  border: 1px solid #d7d7d7;
  border-right: 0;

  border-radius: 6px 0 0 6px;

  box-shadow: none;

  font-size: 15px;
}

.header-search .form-control:focus {
  border-color: var(--header-purple);

  box-shadow: 0 0 0 0.15rem rgba(56, 32, 111, 0.08);
}

.header-search-button {
  width: 52px;

  border: 1px solid var(--header-green);

  background: var(--header-green);
  color: #fff;

  border-radius: 0 6px 6px 0 !important;

  transition: background-color 0.2s ease;
}

.header-search-button:hover {
  background: #148f3f;
  color: #fff;
}

.header-search-button i {
  font-size: 16px;
}

/* =========================================================
   RESULTADOS BUSCADOR
   ========================================================= */

.header-search-results-wrapper {
  position: relative;
  z-index: 1100;
}

.header-search-results {
  position: absolute;

  right: 0;

  width: 100%;

  max-height: 50vh;

  overflow-y: auto;
}

/* =========================================================
   BOTÓN MENÚ MÓVIL
   ========================================================= */

.header-mobile-menu {
  flex: 0 0 auto;

  width: 42px;
  height: 42px;

  border: 0;
  background: transparent;

  color: var(--header-text);

  font-size: 22px;
}

.header-mobile-menu:hover {
  color: var(--header-purple);
}

/* =========================================================
   MENÚ EXTENDIDO
   ========================================================= */

.header-extended-wrapper {
  position: relative;
  z-index: 1200;
}

.header-extended {
  position: absolute;

  top: 0;
  left: 0;

  width: 100%;

  border-radius: 0 0 10px 10px;

  box-shadow: 0 12px 35px rgba(0, 0, 0, 0.12);
}

.header-extended .list-group-item {
  cursor: pointer;

  padding: 9px 12px;

  border-radius: 5px !important;

  border: 0;

  font-size: 13px;

  transition: all 0.2s ease;
}

.header-extended .list-group-item:hover {
  background: #f3f0f8;
  color: var(--header-purple);
}

/* =========================================================
   TABLET
   ========================================================= */

@media (max-width: 1199.98px) {
  .header-main-inner {
    gap: 18px;
  }

  .header-logo img {
    max-width: 155px;
  }

  .header-nav .nav-link {
    padding-left: 11px !important;
    padding-right: 11px !important;

    font-size: 15px;
  }

  .header-search {
    flex-basis: 270px;
  }

  .header-contact {
    gap: 15px;
  }
}

/* =========================================================
   TABLET / MÓVIL
   ========================================================= */

@media (max-width: 991.98px) {
  .header-top-inner {
    min-height: 36px;
  }

  .header-contact {
    justify-content: center;
  }

  .header-contact-item {
    font-size: 12px;
  }

  .header-contact-item span {
    display: none;
  }

  .header-sucursales {
    display: none;
  }

  .header-main-inner {
    min-height: 76px;

    gap: 12px;

    flex-wrap: wrap;

    padding-top: 8px;
    padding-bottom: 8px;
  }

  .header-logo {
    margin-right: auto;
  }

  .header-logo img {
    max-width: 150px;
    max-height: 58px;
  }

  .header-nav {
    display: none;
  }

  .header-actions {
    margin-left: 0;

    gap: 2px;
  }

  .header-action {
    width: 38px;
    height: 38px;
  }

  .header-action i {
    font-size: 19px;
  }

  .header-search {
    order: 10;

    flex: 1 0 100%;

    margin: 3px 0 0;
  }

  .header-search .input-group,
  .header-search .form-control {
    height: 44px;
  }
}

/* =========================================================
   MÓVIL
   ========================================================= */

@media (max-width: 575.98px) {
  .header-top {
    overflow: hidden;
    display: none;
  }

  .header-top-inner {
    justify-content: center;
  }

  .header-contact {
    gap: 24px;
  }

  .header-contact-item i {
    font-size: 17px;
  }

  .header-main-inner {
    padding-left: 5px;
    padding-right: 5px;

    gap: 8px;
  }

  .header-mobile-menu {
    width: 38px;
    height: 38px;
  }

  .header-logo img {
    max-width: 135px;
    max-height: 52px;
  }

  .header-actions {
    gap: 0;
  }

  .header-action {
    width: 36px;
    height: 36px;
  }

  .header-action i {
    font-size: 18px;
  }

  .header-badge {
    top: -2px;
    right: -2px;

    min-width: 16px;
    height: 16px;

    font-size: 9px;
  }

  .header-search .form-control {
    font-size: 14px;
  }
}

h1,
h2,
h3,
h4,
h5,
h6 {
  color: var(--color-principal) !important;
}

.caja {
  overflow: hidden;
  position: relative;
  display: inline-block;
}

.img-producto {
  min-height: 30vh;
  min-height: 25vh;
  background-size: contain;
  background-position: center;
  background-repeat: no-repeat;
  cursor: pointer;
  -webkit-transition: all 0.5s;
  -moz-transition: all 0.5s;
  -o-transition: all 0.5s;
  transition: all 0.5s;
  transform: scale(0.8);
}

.cuadro-producto {
  margin-top: 15px;
  transition: all 0.3s;
  min-height: 460px;
  border-radius: 1em;
}

.cuadro-producto:hover .img-producto {
  -ms-transform: scale(1);
  -moz-transform: scale(1);
  -webkit-transform: scale(1);
  -o-transform: scale(1);
  transform: scale(1);
}

.cuadro-producto:hover {
  margin: 5px 10px 10px !important;
  /* box-shadow: rgba(149, 157, 165, 0.2) 0px 8px 24px; */
  box-shadow: rgba(100, 100, 111, 0.2) 0px 7px 29px 0px;
  padding-bottom: 20px;
}

.banner {
  padding: 2.5em;
  height: 100%;
  min-height: 100%;
  background-repeat: no-repeat;
  background-size: cover;
}

.banner h1,
.banner h4 {
  color: white !important;
  font-weight: bolder;
  text-shadow:
    0px 4px 3px rgba(0, 0, 0, 0.4),
    0px 8px 13px rgba(0, 0, 0, 0.1),
    0px 18px 23px rgba(0, 0, 0, 0.1);
}

.boton {
  display: inline-block;
  margin: 15px auto;
  padding: 10px 20px;
  border: 2px solid var(--color-principal);
  color: var(--color-principal);
  transition: 0.25s ease;
}

.boton:hover {
  border-radius: 25px;
}

#titulo {
  background-image: url("../img/header.jpg");
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover;
  min-height: 10vh;
  width: 100%;
  padding: 2em 1em;
}

#titulo h1 {
  text-shadow:
    2px 7px 5px rgba(0, 0, 0, 0.3),
    0px -4px 10px rgba(255, 255, 255, 0.3);
  letter-spacing: 5px;
}

.mercadopago-button {
  width: 100%;
  font-size: 1.25em !important;
  margin-top: 1em !important;
}

form label {
  font-weight: bold;
}

.slick-prev:before,
.slick-next:before {
  color: var(--color-principal) !important;
  font-size: 30px !important;
}

.slick-prev {
  left: -35px !important;
}

.slick-next {
  right: -35px !important;
}

#contador {
  display: flex;
}
#contador .cuadro {
  width: 25%;
  float: left;
  min-width: 50px;
}

#contador .digito {
  text-align: center;
  font-size: 2ch;
  font-weight: bold;
  color: white;
  border-radius: 0.5em;
  margin: 0 0.25em;
  padding: 0.25em 0;
}

#contador .cuadro:nth-child(1) .digito {
  background-image: linear-gradient(to right, #007e51, #2e865b);
}

#contador .cuadro:nth-child(2) .digito {
  background-image: linear-gradient(to right, #4c8f5f, #53a05a);
}

#contador .cuadro:nth-child(3) .digito {
  background-image: linear-gradient(to right, #4aa94f, #5cb34d);
}

#contador .cuadro:nth-child(4) .digito {
  background-image: linear-gradient(to right, #6bb44b, #78b749);
}

#barra-contador .superior,
#contador .texto {
  text-align: center;
  font-weight: 600;
  font-size: 1em;
}
#contador .cuadro .texto {
  text-align: center;
}
/* End contador */

#carrito {
  position: absolute;
  top: 230px;
  right: 2em;
  border-radius: 50%;
  width: 60px;
  height: 60px;
  align-items: center;
  display: flex;
  justify-content: center;
  z-index: 999;
}

#carrito-productos {
  position: absolute;
  width: 25px;
  height: 25px;
  border-radius: 50%;
  color: white;
  top: -0.5em;
  right: -0.5em;
  font-weight: bold;
}

@media (max-width: 991px) {
  .logo {
    justify-content: space-around;
  }
}

#barra-contador {
  padding: 1em 0.5em;
}

#texto-contador {
  text-shadow: 0px 2px 5px rgba(0, 0, 0, 0.6);
  font-weight: 600;
  font-size: 2em;
}

/* =========================================================
   BANNERS PARA HOME
   ========================================================= */

/* =========================================================
   CONTENEDOR PRINCIPAL
   ========================================================= */

#home-banners {
  position: relative;
  width: 100%;
  min-height: 180px;
}

#banners-container {
  width: 100%;
  max-width: 1300px;
  margin: 1em auto;
}

/* =========================================================
   LOADER
   ========================================================= */

.banners-loader {
  display: flex;
  align-items: center;
  justify-content: center;

  width: 100%;
  min-height: 180px;

  opacity: 1;
  visibility: visible;

  transition:
    opacity 0.35s ease,
    visibility 0.35s ease;
}

.banners-loader.hidden {
  height: 0;
  min-height: 0;

  opacity: 0;
  visibility: hidden;

  overflow: hidden;
}

.banners-loader-content {
  display: flex;
  align-items: center;

  gap: 12px;

  color: #777;
  font-size: 0.9rem;
}

.banners-loader .spinner-border {
  width: 1.5rem;
  height: 1.5rem;

  border-width: 2px;
}

/* =========================================================
   GRID GENERAL
   ========================================================= */

.banners-home-grid {
  width: 100%;
}

/* =========================================================
   ZONA SUPERIOR
   ========================================================= */

/*
 * Desktop:
 *
 * ┌──────────────────────────────────┬──────────────┐
 * │                                  │              │
 * │                                  │      #7      │
 * │          CARRUSEL                │              │
 * │          PRINCIPAL               ├──────────────┤
 * │                                  │              │
 * │                                  │      #8      │
 * │                                  │              │
 * └──────────────────────────────────┴──────────────┘
 *
 * 75% / 25%
 */

.banners-home-top {
  display: grid;

  grid-template-columns:
    minmax(0, 3fr)
    minmax(0, 1fr);

  gap: 10px;

  width: 100%;
}

/* =========================================================
   BANNER PRINCIPAL
   ========================================================= */

/*
 * Este aspect-ratio determina la altura
 * de toda la zona superior.
 *
 * El bloque lateral ocupará exactamente
 * esa misma altura.
 */

.banner-main {
  position: relative;

  width: 100%;
  min-width: 0;

  overflow: hidden;

  aspect-ratio: 16 / 8.7;

  border-radius: 0.5rem;
}

/* =========================================================
   SWIPER PRINCIPAL
   ========================================================= */

.banners-main-swiper {
  position: relative;

  width: 100%;
  height: 100%;

  overflow: hidden;

  border-radius: 0.5rem;
}

.banners-main-swiper .swiper-wrapper {
  width: 100%;
  height: 100%;
}

.banners-main-swiper .swiper-slide {
  position: relative;

  width: 100%;
  height: 100%;

  overflow: hidden;
}

/* =========================================================
   BANNERS LATERALES
   ========================================================= */

/*
 * MUY IMPORTANTE:
 *
 * Los dos banners laterales comparten
 * exactamente la altura del banner principal.
 *
 * 50% + espacio + 50%
 *
 * Ejemplo:
 *
 * Carrusel = 600px
 *
 * #7 = 295px
 * espacio = 10px
 * #8 = 295px
 *
 * 295 + 10 + 295 = 600px
 */

.banners-home-side {
  display: grid;

  grid-template-rows:
    minmax(0, 1fr)
    minmax(0, 1fr);

  gap: 10px;

  width: 100%;
  height: 100%;

  min-width: 0;
  min-height: 0;
}

.banner-side-item {
  position: relative;

  width: 100%;
  height: 100%;

  min-width: 0;
  min-height: 0;

  overflow: hidden;

  border-radius: 0.5rem;
}

/* =========================================================
   BANNERS INFERIORES
   ========================================================= */

.banners-home-bottom {
  display: grid;

  grid-template-columns: repeat(4, minmax(0, 1fr));

  gap: 10px;

  width: 100%;

  margin-top: 10px;
}

.banner-bottom-item {
  position: relative;

  width: 100%;

  min-width: 0;

  overflow: hidden;

  aspect-ratio: 16 / 7;

  border-radius: 0.5rem;
}

/* =========================================================
   ELEMENTO GENERAL DEL BANNER
   ========================================================= */

.banner-item {
  position: relative;

  width: 100%;
  height: 100%;

  overflow: hidden;

  isolation: isolate;
}

.banner-item a {
  display: block;

  width: 100%;
  height: 100%;

  text-decoration: none;
}

.banner-item img {
  display: block;

  width: 100%;
  height: 100%;

  object-fit: cover;

  border: 0;

  transition: transform 0.45s ease;
}

/* =========================================================
   HOVER
   ========================================================= */

.banner-item::after {
  content: "";

  position: absolute;

  inset: 0;

  background: rgba(15, 20, 25, 0.06);

  opacity: 0;

  pointer-events: none;

  transition: opacity 0.3s ease;
}

.banner-item:hover::after {
  opacity: 1;
}

.banner-item:hover img {
  transform: scale(1.015);
}

/* =========================================================
   PAGINACIÓN DEL CARRUSEL
   ========================================================= */

/*
 * Los indicadores aparecen debajo del banner
 * principal, sobre la parte inferior de la imagen.
 */

.banners-main-swiper .swiper-pagination {
  position: absolute;

  left: 0;
  bottom: 12px;

  width: 100%;

  display: flex;
  align-items: center;
  justify-content: center;

  gap: 6px;

  z-index: 20;
}

.banners-main-swiper .swiper-pagination-bullet {
  width: 8px;
  height: 8px;

  margin: 0 !important;

  opacity: 0.75;

  background: #ffffff;

  border-radius: 50%;

  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.35);

  transition:
    width 0.25s ease,
    height 0.25s ease,
    opacity 0.25s ease,
    transform 0.25s ease;
}

.banners-main-swiper .swiper-pagination-bullet-active {
  width: 20px;

  opacity: 1;

  border-radius: 10px;

  transform: scale(1.02);
}

/* =========================================================
   TABLET
   ========================================================= */

@media (max-width: 991.98px) {
  #banners-container {
    max-width: 100%;
  }

  .banners-home-top {
    grid-template-columns:
      minmax(0, 2fr)
      minmax(0, 1fr);

    gap: 8px;
  }

  .banners-home-side {
    gap: 8px;
  }

  .banners-home-bottom {
    grid-template-columns: repeat(2, minmax(0, 1fr));

    gap: 8px;

    margin-top: 8px;
  }

  .banner-bottom-item {
    aspect-ratio: 16 / 8;
  }

  .banners-main-swiper .swiper-pagination {
    bottom: 9px;
  }
}

/* =========================================================
   MÓVIL
   ========================================================= */

@media (max-width: 767.98px) {
  /*
   * En móvil la zona superior deja de ser
   * 75% / 25% y pasa a ser vertical.
   */

  .banners-home-top {
    display: flex;

    flex-direction: column;

    gap: 8px;
  }

  /* -------------------------------------------------------
     CARRUSEL PRINCIPAL
     ------------------------------------------------------- */

  .banner-main {
    width: 100%;

    aspect-ratio: 16 / 9;
  }

  /* -------------------------------------------------------
     LATERALES
     ------------------------------------------------------- */

  /*
   * Los banners 7 y 8 pasan a estar
   * uno junto al otro.
   */

  .banners-home-side {
    display: grid;

    grid-template-columns: repeat(2, minmax(0, 1fr));

    grid-template-rows: none;

    gap: 8px;

    width: 100%;
    height: auto;
  }

  .banner-side-item {
    width: 100%;
    height: auto;

    aspect-ratio: 16 / 9;
  }

  /* -------------------------------------------------------
     BANNERS INFERIORES
     ------------------------------------------------------- */

  .banners-home-bottom {
    grid-template-columns: repeat(2, minmax(0, 1fr));

    gap: 8px;

    margin-top: 8px;
  }

  .banner-bottom-item {
    aspect-ratio: 16 / 9;
  }

  /* -------------------------------------------------------
     PAGINACIÓN
     ------------------------------------------------------- */

  .banners-main-swiper .swiper-pagination {
    bottom: 8px;

    gap: 5px;
  }

  .banners-main-swiper .swiper-pagination-bullet {
    width: 7px;
    height: 7px;
  }

  .banners-main-swiper .swiper-pagination-bullet-active {
    width: 17px;
  }
}

/* =========================================================
   MÓVIL PEQUEÑO
   ========================================================= */

@media (max-width: 575.98px) {
  .banners-home-top {
    gap: 6px;
  }

  .banners-home-side {
    gap: 6px;
  }

  .banners-home-bottom {
    gap: 6px;

    margin-top: 6px;
  }

  .banners-main-swiper .swiper-pagination {
    bottom: 6px;
  }
}

/* =========================================================
   ACCESIBILIDAD
   ========================================================= */

@media (prefers-reduced-motion: reduce) {
  .banner-item img {
    transition: none;
  }

  .banner-item::after {
    transition: none;
  }

  .banners-main-swiper .swiper-pagination-bullet {
    transition: none;
  }
}

/* =========================================================
   FIN DE BANNERS PARA HOME
   ========================================================= */

/* =========================================================
   HOME / COMPONENTES E-COMMERCE
   MUEBLERÍAS INNOVA HOGAR
   ========================================================= */

:root {
  --innova-color: #54722d;
  --innova-color-light: #8dbf4c;

  --innova-color-2: #432774;
  --innova-color-2-light: #6f40c0;

  --innova-red: #d71920;
  --innova-red-dark: #b51218;

  --innova-text: #14213d;
  --innova-muted: #6f7682;

  --innova-border: #e5e8ed;

  --innova-bg: #f7f8fa;

  --innova-white: #ffffff;

  --innova-radius: 18px;

  --innova-shadow: 0 8px 30px rgba(7, 29, 87, 0.07);

  --innova-shadow-hover: 0 16px 40px rgba(7, 29, 87, 0.14);
}

/* =========================================================
   CONTENEDOR
   ========================================================= */

.home-container {
  width: min(1440px, calc(100% - 40px));

  margin-left: auto;
  margin-right: auto;
}

/* =========================================================
   SECCIONES
   ========================================================= */

.home-interes {
  position: relative;

  padding: 48px 0;
}

.home-interes {
  background: var(--innova-bg);
}

/* =========================================================
   ENCABEZADOS
   ========================================================= */

.section-heading {
  display: flex;

  align-items: flex-end;

  justify-content: space-between;

  gap: 30px;

  margin-bottom: 28px;
}

.section-kicker {
  display: block;

  margin-bottom: 5px;

  font-size: 11px;

  font-weight: 700;

  letter-spacing: 0.14em;

  text-transform: uppercase;

  color: var(--innova-red);
}

.section-heading h2 {
  margin: 0;

  color: var(--innova-color);

  font-size: clamp(26px, 3vw, 36px);

  line-height: 1.1;

  font-weight: 750;

  letter-spacing: -0.025em;
}

.section-link {
  display: inline-flex;

  align-items: center;

  gap: 9px;

  color: var(--innova-color);

  font-size: 14px;

  font-weight: 700;

  text-decoration: none;

  transition:
    color 0.2s ease,
    gap 0.2s ease;
}

.section-link:hover {
  color: var(--innova-red);

  gap: 13px;

  text-decoration: none;
}

/* =========================================================
   FLECHAS
   ========================================================= */

.slider-arrow {
  position: absolute;

  z-index: 5;

  top: 50%;

  transform: translateY(-50%);

  width: 46px;

  height: 46px;

  display: flex;

  align-items: center;

  justify-content: center;

  border: 1px solid var(--innova-border);

  border-radius: 50%;

  background: rgba(255, 255, 255, 0.96);

  color: var(--innova-color);

  box-shadow: 0 8px 25px rgba(7, 29, 87, 0.14);

  cursor: pointer;

  transition:
    transform 0.2s ease,
    background 0.2s ease,
    color 0.2s ease,
    opacity 0.2s ease;
}

.slider-arrow:hover {
  background: var(--innova-color);

  color: #ffffff;

  transform: translateY(-50%) scale(1.06);
}

.slider-arrow-prev {
  left: -23px;
}

.slider-arrow-next {
  right: -23px;
}

.slider-arrow.is-hidden {
  opacity: 0;

  pointer-events: none;
}

/* =========================================================
   PRODUCTOS
   ========================================================= */

.productos-slider {
  position: relative;
}

.productos-track {
  display: flex;

  gap: 20px;

  overflow-x: auto;

  scroll-behavior: smooth;

  scrollbar-width: none;

  padding: 5px 6px 12px;

  scroll-snap-type: x mandatory;
}

.productos-track::-webkit-scrollbar {
  display: none;
}

/* =========================================================
   TARJETA
   ========================================================= */

.producto-card {
  position: relative;

  flex: 0 0 calc((100% - 100px) / 6);

  min-width: 320px;

  overflow: hidden;

  border: 1px solid var(--innova-border);

  border-radius: var(--innova-radius);

  background: #ffffff;

  scroll-snap-align: start;

  box-shadow: 0 3px 14px rgba(7, 29, 87, 0.035);

  transition:
    transform 0.3s ease,
    box-shadow 0.3s ease,
    border-color 0.3s ease;
}

.producto-card:hover {
  transform: translateY(-5px);

  border-color: #d9deea;

  box-shadow: var(--innova-shadow-hover);
}

/* =========================================================
   IMAGEN
   ========================================================= */

.producto-image {
  position: relative;

  display: block;

  width: 100%;

  height: 245px;

  overflow: hidden;

  background: #ffffff;
}

.producto-image img {
  width: 100%;

  height: 100%;

  display: block;

  object-fit: contain;

  padding: 14px;

  transition: transform 0.5s cubic-bezier(0.2, 0.7, 0.2, 1);
}

.producto-card:hover .producto-image img {
  transform: scale(1.055);
}

/* =========================================================
   CONTENIDO
   ========================================================= */

.producto-content {
  padding: 16px 17px 17px;
}

/* =========================================================
   BADGE
   ========================================================= */

.producto-badge {
  display: inline-flex;

  align-items: center;

  padding: 5px 9px;

  border-radius: 7px;

  background-color: #18a84a;

  font-size: 10px;

  font-weight: 800;

  letter-spacing: 0.02em;

  text-transform: uppercase;
}

/* =========================================================
   TITULO
   ========================================================= */

.producto-title {
  height: 45px;

  overflow: hidden;

  margin: 11px 0 7px;

  font-size: 15px;

  line-height: 1.45;

  font-weight: 650;
}

.producto-title a {
  color: var(--innova-color);

  text-decoration: none;
}

.producto-title a:hover {
  color: var(--innova-red);
}

/* =========================================================
   MARCA
   ========================================================= */

.producto-brand {
  height: 19px;

  overflow: hidden;

  margin-bottom: 13px;

  color: var(--innova-muted);

  font-size: 11px;

  font-weight: 700;

  text-transform: uppercase;

  letter-spacing: 0.05em;
}

/* =========================================================
   PRECIO
   ========================================================= */

.producto-price-label {
  margin-bottom: 2px;

  color: #8a9099;

  font-size: 11px;
}

.producto-price {
  color: var(--innova-color);

  font-size: 22px;

  line-height: 1.2;

  font-weight: 800;

  letter-spacing: -0.025em;
}

/* =========================================================
   ACCIONES
   ========================================================= */

.producto-actions {
  display: flex;

  align-items: center;

  gap: 8px;

  margin-top: 16px;
}

.producto-view {
  flex: 1;

  display: flex;

  align-items: center;

  justify-content: center;

  gap: 7px;

  min-height: 38px;

  padding: 0 10px;

  border-radius: 9px;

  background: var(--innova-color);

  color: #ffffff;

  font-size: 12px;

  font-weight: 700;

  text-decoration: none;

  transition:
    background 0.2s ease,
    transform 0.2s ease;
}

.producto-view:hover {
  background: var(--innova-color-light);

  color: #ffffff;

  text-decoration: none;
}

.producto-cart {
  width: 38px;

  height: 38px;

  display: flex;

  align-items: center;

  justify-content: center;

  flex: 0 0 38px;

  border-radius: 9px;

  background: #f0f7f3;

  color: #13a05b;

  text-decoration: none;

  transition:
    background 0.2s ease,
    color 0.2s ease,
    transform 0.2s ease;
}

.producto-cart:hover {
  background: #13a05b;

  color: #ffffff;

  transform: translateY(-2px);
}

/* =========================================================
   FLECHAS PRODUCTOS
   ========================================================= */

.productos-slider .slider-arrow {
  top: 43%;
}

/* =========================================================
   RESPONSIVE
   ========================================================= */

@media (max-width: 1300px) {
  .producto-card {
    flex-basis: calc((100% - 60px) / 4);
  }
}

@media (max-width: 992px) {
  .home-container {
    width: min(100% - 30px, 960px);
  }

  .producto-card {
    flex-basis: calc((100% - 40px) / 3);
  }
}

@media (max-width: 768px) {
  .home-interes {
    padding: 35px 0;
  }

  .section-heading {
    margin-bottom: 20px;
  }

  .section-heading h2 {
    font-size: 26px;
  }

  .section-kicker {
    font-size: 10px;
  }

  .producto-card {
    flex-basis: 72vw;

    min-width: 240px;
  }

  .producto-image {
    height: 260px;
  }

  .slider-arrow {
    width: 40px;

    height: 40px;
  }

  .slider-arrow-prev {
    left: -10px;
  }

  .slider-arrow-next {
    right: -10px;
  }

  .section-link {
    display: none;
  }
}

@media (max-width: 480px) {
  .home-container {
    width: calc(100% - 24px);
  }

  .section-heading h2 {
    font-size: 23px;
  }

  .producto-card {
    flex-basis: 82vw;
  }

  .producto-image {
    height: 250px;
  }
}

/* =========================================================
   TIENDA
   MUEBLERÍAS INNOVA HOGAR
   ========================================================= */

.departamentos-page {
  --innova-color: #54722d;
  --innova-color-light: #8dbf4c;

  --innova-color-2: #432774;
  --innova-color-2-light: #6f40c0;

  --departamentos-text: #252525;
  --departamentos-muted: #737373;

  --departamentos-border: #e5e5e5;

  --departamentos-bg: #f7f7f7;

  --departamentos-white: #ffffff;

  --departamentos-radius: 18px;

  --departamentos-shadow: 0 5px 25px rgba(67, 39, 116, 0.06);

  --departamentos-shadow-hover: 0 16px 40px rgba(67, 39, 116, 0.13);

  min-height: 100vh;

  padding: 55px 0 80px;

  background: var(--departamentos-bg);
}

/* =========================================================
   CONTENEDOR
   ========================================================= */

.departamentos-container {
  width: min(1440px, calc(100% - 40px));

  margin-left: auto;
  margin-right: auto;
}

/* =========================================================
   HEADER
   ========================================================= */

.departamentos-header {
  margin-bottom: 28px;
}

.departamentos-kicker {
  display: block;

  margin-bottom: 7px;

  color: var(--innova-color);

  font-size: 11px;

  font-weight: 800;

  letter-spacing: 0.16em;

  text-transform: uppercase;
}

.departamentos-header h1 {
  margin: 0;

  color: var(--innova-color-2);

  font-size: clamp(30px, 4vw, 44px);

  line-height: 1.08;

  font-weight: 800;

  letter-spacing: -0.035em;
}

.departamentos-header p {
  max-width: 650px;

  margin: 12px 0 0;

  color: var(--departamentos-muted);

  font-size: 15px;

  line-height: 1.6;
}

/* =========================================================
   BUSCADOR
   ========================================================= */

.departamentos-search {
  display: flex;

  gap: 10px;

  margin-bottom: 38px;
}

.departamentos-search-input {
  position: relative;

  flex: 1;
}

.departamentos-search-input i {
  position: absolute;

  top: 50%;

  left: 18px;

  transform: translateY(-50%);

  color: var(--innova-color-2);

  font-size: 15px;
}

.departamentos-search-input input {
  width: 100%;

  height: 54px;

  padding: 0 20px 0 48px;

  border: 1px solid var(--departamentos-border);

  border-radius: 12px;

  outline: none;

  background: var(--departamentos-white);

  color: var(--departamentos-text);

  font-size: 14px;

  transition:
    border-color 0.2s ease,
    box-shadow 0.2s ease;
}

.departamentos-search-input input::placeholder {
  color: #a0a0a0;
}

.departamentos-search-input input:focus {
  border-color: var(--innova-color-2);

  box-shadow: 0 0 0 4px rgba(67, 39, 116, 0.08);
}

.departamentos-search-button {
  min-width: 130px;

  height: 54px;

  padding: 0 25px;

  border: 0;

  border-radius: 12px;

  background: var(--innova-color-2);

  color: #ffffff;

  font-size: 14px;

  font-weight: 700;

  cursor: pointer;

  transition:
    background 0.2s ease,
    transform 0.2s ease,
    box-shadow 0.2s ease;
}

.departamentos-search-button:hover {
  background: var(--innova-color-2-light);

  box-shadow: 0 8px 20px rgba(67, 39, 116, 0.18);

  transform: translateY(-1px);
}

/* =========================================================
   LAYOUT
   ========================================================= */

.departamentos-layout {
  display: grid;

  grid-template-columns: 260px minmax(0, 1fr);

  gap: 30px;

  align-items: start;
}

/* =========================================================
   SIDEBAR
   ========================================================= */

.departamentos-sidebar {
  position: sticky;

  top: 25px;

  padding: 22px;

  border: 1px solid var(--departamentos-border);

  border-radius: var(--departamentos-radius);

  background: var(--departamentos-white);

  box-shadow: var(--departamentos-shadow);
}

.filtros-header {
  display: flex;

  align-items: center;

  justify-content: space-between;

  gap: 10px;

  padding-bottom: 18px;

  border-bottom: 1px solid var(--departamentos-border);
}

.filtros-header h2 {
  margin: 0;

  color: var(--innova-color-2);

  font-size: 17px;

  font-weight: 750;
}

.filtros-header a {
  color: var(--innova-color);

  font-size: 11px;

  font-weight: 700;

  text-decoration: none;

  transition: color 0.2s ease;
}

.filtros-header a:hover {
  color: var(--innova-color-light);
}

/* =========================================================
   FILTRO
   ========================================================= */

.filtro {
  padding: 20px 0;

  border-bottom: 1px solid var(--departamentos-border);
}

.filtro:last-of-type {
  border-bottom: 0;
}

.filtro > label:first-child {
  display: block;

  margin-bottom: 10px;

  color: var(--departamentos-text);

  font-size: 12px;

  font-weight: 750;
}

.filtro select {
  width: 100%;

  height: 42px;

  padding: 0 12px;

  border: 1px solid var(--departamentos-border);

  border-radius: 9px;

  background: var(--departamentos-white);

  color: var(--departamentos-text);

  font-size: 12px;

  outline: none;

  transition:
    border-color 0.2s ease,
    box-shadow 0.2s ease;
}

.filtro select:focus {
  border-color: var(--innova-color);

  box-shadow: 0 0 0 3px rgba(84, 114, 45, 0.08);
}

/* =========================================================
   PRECIO
   ========================================================= */

.precio-inputs {
  display: grid;

  grid-template-columns: 1fr 1fr;

  gap: 8px;
}

.precio-inputs > div {
  position: relative;
}

.precio-inputs span {
  position: absolute;

  top: 50%;

  left: 9px;

  transform: translateY(-50%);

  color: var(--departamentos-muted);

  font-size: 11px;
}

.precio-inputs input {
  width: 100%;

  height: 40px;

  padding-left: 22px;

  border: 1px solid var(--departamentos-border);

  border-radius: 8px;

  color: var(--departamentos-text);

  font-size: 11px;

  outline: none;
}

.precio-inputs input:focus {
  border-color: var(--innova-color);

  box-shadow: 0 0 0 3px rgba(84, 114, 45, 0.07);
}

/* =========================================================
   RADIO
   ========================================================= */

.filtro-radio {
  display: flex !important;

  align-items: center;

  gap: 9px;

  margin-bottom: 10px;

  color: var(--departamentos-muted);

  font-size: 12px;

  cursor: pointer;
}

.filtro-radio input {
  accent-color: var(--innova-color);
}

/* =========================================================
   BOTÓN FILTROS
   ========================================================= */

.filtros-button {
  width: 100%;

  height: 43px;

  margin-top: 18px;

  border: 0;

  border-radius: 9px;

  background: var(--innova-color);

  color: #ffffff;

  font-size: 12px;

  font-weight: 700;

  cursor: pointer;

  transition:
    background 0.2s ease,
    transform 0.2s ease,
    box-shadow 0.2s ease;
}

.filtros-button:hover {
  background: var(--innova-color-light);

  box-shadow: 0 8px 20px rgba(84, 114, 45, 0.18);

  transform: translateY(-1px);
}

/* =========================================================
   TOOLBAR
   ========================================================= */

.departamentos-toolbar {
  display: flex;

  align-items: center;

  justify-content: space-between;

  gap: 20px;

  margin-bottom: 20px;
}

.productos-count {
  color: var(--departamentos-muted);

  font-size: 12px;
}

.productos-count strong {
  color: var(--innova-color-2);
}

.orden-form {
  display: flex;

  align-items: center;

  gap: 9px;
}

.orden-form label {
  color: var(--departamentos-muted);

  font-size: 11px;
}

.orden-form select {
  height: 38px;

  padding: 0 12px;

  border: 1px solid var(--departamentos-border);

  border-radius: 8px;

  background: var(--departamentos-white);

  color: var(--departamentos-text);

  font-size: 11px;

  outline: none;
}

.orden-form select:focus {
  border-color: var(--innova-color-2);
}

/* =========================================================
   GRID
   ========================================================= */

.departamentos-grid {
  display: grid;

  grid-template-columns: repeat(4, minmax(0, 1fr));

  gap: 18px;
}

/* =========================================================
   CARD
   ========================================================= */

.departamentos-card {
  overflow: hidden;

  border: 1px solid var(--departamentos-border);

  border-radius: 16px;

  background: var(--departamentos-white);

  box-shadow: 0 3px 15px rgba(67, 39, 116, 0.035);

  transition:
    transform 0.28s ease,
    box-shadow 0.28s ease,
    border-color 0.28s ease;
}

.departamentos-card:hover {
  transform: translateY(-5px);

  border-color: rgba(84, 114, 45, 0.25);

  box-shadow: var(--departamentos-shadow-hover);
}

/* =========================================================
   IMAGEN
   ========================================================= */

.departamentos-card-image {
  position: relative;

  display: flex;

  align-items: center;

  justify-content: center;

  height: 260px;

  overflow: hidden;

  background: #ffffff;
}

.departamentos-card-image img {
  width: 100%;

  height: 100%;

  padding: 15px;

  object-fit: contain;

  transition: transform 0.45s cubic-bezier(0.2, 0.7, 0.2, 1);
}

.departamentos-card:hover .departamentos-card-image img {
  transform: scale(1.055);
}

/* =========================================================
   BADGE DISPONIBILIDAD
   ========================================================= */

.stock-badge {
  position: absolute;

  z-index: 2;

  top: 13px;

  left: 13px;

  padding: 5px 9px;

  border-radius: 6px;

  background: rgba(141, 191, 76, 0.14);

  color: var(--innova-color);

  font-size: 9px;

  font-weight: 800;

  text-transform: uppercase;

  letter-spacing: 0.04em;
}

.stock-badge.stock-out {
  background: #ffe5e5;

  color: #dc2626;
}

/* =========================================================
   CONTENIDO
   ========================================================= */

.departamentos-card-content {
  padding: 16px;
}

.departamentos-card-category {
  margin-bottom: 7px;

  color: var(--innova-color);

  font-size: 9px;

  font-weight: 800;

  letter-spacing: 0.08em;

  text-transform: uppercase;
}

.departamentos-card h2 {
  height: 44px;

  overflow: hidden;

  margin: 0 0 7px;

  font-size: 14px;

  line-height: 1.55;

  font-weight: 650;
}

.departamentos-card h2 a {
  color: var(--innova-color-2);

  text-decoration: none;

  transition: color 0.2s ease;
}

.departamentos-card h2 a:hover {
  color: var(--innova-color-2-light);
}

/* =========================================================
   MARCA
   ========================================================= */

.departamentos-card-brand {
  height: 17px;

  overflow: hidden;

  margin-bottom: 12px;

  color: var(--departamentos-muted);

  font-size: 10px;

  font-weight: 700;

  text-transform: uppercase;

  letter-spacing: 0.06em;
}

/* =========================================================
   PRECIO
   ========================================================= */

.precio-label {
  display: block;

  color: #929292;

  font-size: 10px;
}

.departamentos-card-price {
  margin-top: 2px;

  color: var(--innova-color-2);

  font-size: 22px;

  line-height: 1.25;

  font-weight: 800;

  letter-spacing: -0.025em;
}

/* =========================================================
   STOCK
   ========================================================= */

.departamentos-card-stock {
  display: flex;

  align-items: center;

  gap: 5px;

  margin-top: 8px;

  color: var(--innova-color);

  font-size: 10px;

  font-weight: 650;
}

.departamentos-card-stock.agotado {
  color: #888888;
}

/* =========================================================
   ACCIONES
   ========================================================= */

.departamentos-card-actions {
  display: flex;

  gap: 7px;

  margin-top: 15px;
}

.departamentos-card-view {
  flex: 1;

  display: flex;

  align-items: center;

  justify-content: center;

  gap: 7px;

  height: 38px;

  border-radius: 8px;

  background: var(--innova-color-2);

  color: #ffffff;

  font-size: 10px;

  font-weight: 700;

  text-decoration: none;

  transition:
    background 0.2s ease,
    transform 0.2s ease;
}

.departamentos-card-view:hover {
  background: var(--innova-color-2-light);

  color: #ffffff;

  text-decoration: none;

  transform: translateY(-1px);
}

.departamentos-card-cart {
  flex: 0 0 38px;

  width: 38px;

  height: 38px;

  display: flex;

  align-items: center;

  justify-content: center;

  border-radius: 8px;

  background: rgba(141, 191, 76, 0.13);

  color: var(--innova-color);

  text-decoration: none;

  transition:
    background 0.2s ease,
    color 0.2s ease,
    transform 0.2s ease;
}

.departamentos-card-cart:hover {
  background: var(--innova-color);

  color: #ffffff;

  transform: translateY(-1px);
}

/* =========================================================
   SIN RESULTADOS
   ========================================================= */

.departamentos-empty {
  display: flex;

  flex-direction: column;

  align-items: center;

  justify-content: center;

  min-height: 400px;

  padding: 50px;

  border: 1px solid var(--departamentos-border);

  border-radius: 18px;

  background: #ffffff;

  text-align: center;
}

.departamentos-empty-icon {
  width: 70px;

  height: 70px;

  display: flex;

  align-items: center;

  justify-content: center;

  margin-bottom: 20px;

  border-radius: 50%;

  background: rgba(67, 39, 116, 0.08);

  color: var(--innova-color-2);

  font-size: 24px;
}

.departamentos-empty h2 {
  margin: 0;

  color: var(--innova-color-2);

  font-size: 22px;
}

.departamentos-empty p {
  max-width: 400px;

  margin: 10px 0 20px;

  color: var(--departamentos-muted);

  font-size: 13px;

  line-height: 1.6;
}

.departamentos-empty-button {
  display: inline-flex;

  align-items: center;

  justify-content: center;

  height: 42px;

  padding: 0 20px;

  border-radius: 9px;

  background: var(--innova-color);

  color: #ffffff;

  font-size: 12px;

  font-weight: 700;

  text-decoration: none;

  transition: background 0.2s ease;
}

.departamentos-empty-button:hover {
  background: var(--innova-color-light);

  color: #ffffff;

  text-decoration: none;
}

/* =========================================================
   PAGINACIÓN
   ========================================================= */

.departamentos-pagination {
  display: flex;

  justify-content: center;

  align-items: center;

  gap: 7px;

  margin-top: 40px;
}

.departamentos-pagination a {
  width: 38px;

  height: 38px;

  display: flex;

  align-items: center;

  justify-content: center;

  border: 1px solid var(--departamentos-border);

  border-radius: 8px;

  background: #ffffff;

  color: var(--departamentos-text);

  font-size: 12px;

  font-weight: 650;

  text-decoration: none;

  transition:
    background 0.2s ease,
    color 0.2s ease,
    border-color 0.2s ease,
    transform 0.2s ease;
}

.departamentos-pagination a:hover {
  border-color: var(--innova-color);

  color: var(--innova-color);

  transform: translateY(-1px);
}

.departamentos-pagination a.active {
  border-color: var(--innova-color-2);

  background: var(--innova-color-2);

  color: #ffffff;
}

.departamentos-pagination .pagination-arrow {
  color: var(--innova-color-2);
}

/* =========================================================
   TABLET GRANDE
   ========================================================= */

@media (max-width: 1200px) {
  .departamentos-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

/* =========================================================
   TABLET
   ========================================================= */

@media (max-width: 992px) {
  .departamentos-layout {
    grid-template-columns: 220px minmax(0, 1fr);

    gap: 20px;
  }

  .departamentos-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .departamentos-card-image {
    height: 240px;
  }
}

/* =========================================================
   MOBILE
   ========================================================= */

@media (max-width: 768px) {
  .departamentos-page {
    padding: 35px 0 60px;
  }

  .departamentos-container {
    width: calc(100% - 24px);
  }

  .departamentos-header h1 {
    font-size: 30px;
  }

  .departamentos-search {
    gap: 7px;
  }

  .departamentos-search-button {
    min-width: 85px;

    padding: 0 15px;
  }

  .departamentos-layout {
    display: block;
  }

  .departamentos-sidebar {
    position: relative;

    top: auto;

    margin-bottom: 25px;
  }

  .departamentos-toolbar {
    align-items: flex-start;

    flex-direction: column;

    gap: 12px;
  }

  .orden-form {
    width: 100%;
  }

  .orden-form select {
    flex: 1;
  }

  .departamentos-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));

    gap: 12px;
  }

  .departamentos-card-image {
    height: 210px;
  }

  .departamentos-card-content {
    padding: 13px;
  }

  .departamentos-card h2 {
    font-size: 13px;
  }

  .departamentos-card-price {
    font-size: 19px;
  }
}

/* =========================================================
   MOBILE PEQUEÑO
   ========================================================= */

@media (max-width: 480px) {
  .departamentos-header h1 {
    font-size: 27px;
  }

  .departamentos-search {
    flex-direction: column;
  }

  .departamentos-search-button {
    width: 100%;
  }

  .departamentos-grid {
    grid-template-columns: 1fr;
  }

  .departamentos-card-image {
    height: 270px;
  }

  .departamentos-card h2 {
    height: auto;

    max-height: 44px;
  }
}

/* =========================================================
   DEPARTAMENTOS
========================================================= */

.home-departamentos {
  padding: 70px 0;
  background: #fff;
}

/* =========================================================
   ENCABEZADO
========================================================= */

.home-departamentos .section-heading {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  margin-bottom: 35px;
}

.home-departamentos .section-kicker {
  display: block;
  margin-bottom: 8px;
  font-size: 0.85rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: #777;
}

.home-departamentos .section-heading h2 {
  margin: 0;
  font-size: 2.2rem;
  font-weight: 700;
  line-height: 1.15;
  color: #231f20;
}

/* =========================================================
   CONTENEDOR DEL SLIDER
========================================================= */

.departamentos-slider {
  position: relative;
  display: flex;
  align-items: center;
  width: 100%;
}

/* =========================================================
   TRACK
========================================================= */

.departamentos-track {
  display: flex;
  gap: 18px;
  width: 100%;
  overflow-x: auto;
  scroll-behavior: smooth;
  scrollbar-width: none;
  padding: 5px 2px 10px;
}

.departamentos-track::-webkit-scrollbar {
  display: none;
}

/* =========================================================
   ITEM
========================================================= */

.departamento-item {
  flex: 0 0 150px;

  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;

  min-height: 150px;
  padding: 22px 15px;

  background: #fff;
  border: 1px solid #e9e9e9;
  border-radius: 14px;

  text-decoration: none;

  transition:
    transform 0.25s ease,
    box-shadow 0.25s ease,
    border-color 0.25s ease;
}

.departamento-item:hover {
  transform: translateY(-5px);
  border-color: #ddd;
  box-shadow: 0 10px 25px rgba(0, 0, 0, 0.08);
}

/* =========================================================
   ICONO
========================================================= */

.departamento-icon {
  display: flex;
  align-items: center;
  justify-content: center;

  width: 65px;
  height: 65px;

  margin-bottom: 15px;

  border-radius: 50%;

  background: #f5f5f5;

  color: #231f20;

  font-size: 25px;

  transition:
    background 0.25s ease,
    color 0.25s ease,
    transform 0.25s ease;
}

.departamento-item:hover .departamento-icon {
  background: #231f20;
  color: #fff;
  transform: scale(1.05);
}

/* =========================================================
   NOMBRE
========================================================= */

.departamento-name {
  display: block;

  width: 100%;

  color: #231f20;

  font-size: 0.95rem;
  font-weight: 600;
  line-height: 1.25;

  text-align: center;
}

/* =========================================================
   FLECHAS
========================================================= */

.slider-arrow {
  position: absolute;
  z-index: 5;

  display: flex;
  align-items: center;
  justify-content: center;

  width: 44px;
  height: 44px;

  padding: 0;

  border: 0;
  border-radius: 50%;

  background: #fff;
  color: #231f20;

  box-shadow: 0 5px 20px rgba(0, 0, 0, 0.12);

  cursor: pointer;

  transition:
    background 0.2s ease,
    color 0.2s ease,
    transform 0.2s ease;
}

.slider-arrow:hover {
  background: #231f20;
  color: #fff;
  transform: scale(1.05);
}

.slider-arrow i {
  font-size: 14px;
}

.departamentos-prev {
  left: -22px;
}

.departamentos-next {
  right: -22px;
}

/* =========================================================
   RESPONSIVE
========================================================= */

@media (max-width: 991.98px) {
  .home-departamentos {
    padding: 55px 0;
  }

  .home-departamentos .section-heading h2 {
    font-size: 2rem;
  }

  .departamento-item {
    flex-basis: 140px;
    min-height: 140px;
  }

  .departamentos-prev {
    left: 5px;
  }

  .departamentos-next {
    right: 5px;
  }
}

@media (max-width: 767.98px) {
  .home-departamentos {
    padding: 45px 0;
  }

  .home-departamentos .section-heading {
    margin-bottom: 25px;
  }

  .home-departamentos .section-heading h2 {
    font-size: 1.7rem;
  }

  .departamento-item {
    flex-basis: 130px;
    min-height: 135px;
    padding: 18px 12px;
  }

  .departamento-icon {
    width: 58px;
    height: 58px;
    margin-bottom: 12px;
    font-size: 22px;
  }

  .departamento-name {
    font-size: 0.9rem;
  }
}

@media (max-width: 575.98px) {
  .home-departamentos {
    padding: 40px 0;
  }

  .home-departamentos .section-kicker {
    font-size: 0.75rem;
  }

  .home-departamentos .section-heading h2 {
    font-size: 1.5rem;
  }

  .departamentos-track {
    gap: 12px;
  }

  .departamento-item {
    flex-basis: 115px;
    min-height: 120px;
    padding: 15px 10px;
    border-radius: 12px;
  }

  .departamento-icon {
    width: 52px;
    height: 52px;
    margin-bottom: 10px;
    font-size: 20px;
  }

  .departamento-name {
    font-size: 0.82rem;
  }

  .slider-arrow {
    width: 38px;
    height: 38px;
  }

  .slider-arrow i {
    font-size: 12px;
  }

  .departamentos-prev {
    left: -5px;
  }

  .departamentos-next {
    right: -5px;
  }
}

/* ============================================================
   PRODUCTO
============================================================ */

.producto-page {
  padding: 30px 0 80px;
  background: #fff;
}

/* ============================================================
   BREADCRUMB
============================================================ */

.producto-breadcrumb {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 30px;

  font-size: 13px;
  color: #777;
}

.producto-breadcrumb a {
  color: #555;
  text-decoration: none;
  transition: color 0.2s ease;
}

.producto-breadcrumb a:hover {
  color: var(--color-principal);
}

.producto-breadcrumb span:last-child {
  color: #999;
}

/* ============================================================
   LAYOUT
============================================================ */

.producto-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(380px, 0.85fr);
  gap: 70px;
  align-items: start;
}

/* =========================================
   GALERÍA DEL PRODUCTO
   ========================================= */

.producto-galeria {
  width: 100%;
  min-width: 0;
}

.producto-gallery-inner {
  width: 100%;
  min-width: 0;
  display: flex;
  position: relative;
}

/* =========================================
   IMAGEN PRINCIPAL
   ========================================= */

.producto-imagen-principal {
  position: relative;
  width: 100%;
  flex: 1 1 auto;
  min-width: 0;

  background: #f8f8f8;
  border-radius: 14px;

  display: flex;
  align-items: center;
  justify-content: center;

  overflow: hidden;
}

/* El enlace debe ocupar todo el espacio */

.producto-imagen-principal > a {
  display: flex;
  width: 100%;
  height: 100%;

  align-items: center;
  justify-content: center;
}

/* Imagen */

.producto-imagen-principal img {
  display: block;

  width: 100%;
  height: auto;

  max-width: 100%;
  max-height: 560px;

  object-fit: contain;
}

/* =========================================
   BOTÓN VER IMAGEN
   ========================================= */

.producto-zoom {
  position: absolute;

  right: 18px;
  bottom: 18px;

  z-index: 5;

  display: flex;
  align-items: center;
  gap: 8px;

  padding: 10px 16px;

  background: rgba(255, 255, 255, 0.95);
  border-radius: 30px;

  color: #555;
  font-size: 13px;

  box-shadow: 0 4px 18px rgba(0, 0, 0, 0.08);

  cursor: pointer;

  transition: all 0.25s ease;
}

.producto-zoom:hover {
  background: #fff;
  transform: translateY(-2px);
  box-shadow: 0 7px 22px rgba(0, 0, 0, 0.12);
}

.producto-zoom i {
  color: #333;
}

/* =========================================
   RESPONSIVE
   ========================================= */

@media (max-width: 991.98px) {
  .producto-gallery-inner {
    width: 100%;
  }

  .producto-imagen-principal {
    width: 100%;
  }

  .producto-imagen-principal img {
    max-height: 500px;
  }
}

@media (max-width: 575.98px) {
  .producto-imagen-principal {
    border-radius: 10px;
  }

  .producto-imagen-principal img {
    max-height: 400px;
  }

  .producto-zoom {
    right: 10px;
    bottom: 10px;

    padding: 8px 12px;
    font-size: 12px;
  }
}

/* ============================================================
   MINIATURAS
============================================================ */

.producto-miniaturas {
  display: flex;
  flex-direction: column;
  gap: 12px;

  max-height: 650px;
  overflow-y: auto;
  overflow-x: hidden;

  padding: 2px;

  scrollbar-width: thin;
}

.producto-miniatura {
  width: 82px;
  height: 82px;

  padding: 5px;

  background: #fff;
  border: 1px solid #e4e4e4;
  border-radius: 8px;

  cursor: pointer;

  display: flex;
  align-items: center;
  justify-content: center;

  transition:
    border-color 0.2s ease,
    box-shadow 0.2s ease,
    transform 0.2s ease;
}

.producto-miniatura:hover {
  border-color: #aaa;
  transform: translateY(-1px);
}

.producto-miniatura.active {
  border-color: var(--color-principal);
  box-shadow: 0 0 0 2px rgba(0, 0, 0, 0.04);
}

.producto-miniatura img {
  width: 100%;
  height: 100%;

  object-fit: contain;

  display: block;
}

/* ============================================================
   IMAGEN PRINCIPAL
============================================================ */

.producto-imagen-principal {
  position: relative;

  width: 100%;
  min-height: 560px;

  background: #fafafa;
  border-radius: 14px;

  display: flex;
  align-items: center;
  justify-content: center;

  overflow: hidden;
}

.producto-imagen-principal a {
  width: 100%;
  height: 100%;

  display: flex;
  align-items: center;
  justify-content: center;
}

.producto-imagen-principal img {
  width: 100%;
  height: 560px;

  object-fit: contain;

  display: block;

  transition: opacity 0.2s ease;
}

.producto-zoom {
  position: absolute;

  right: 18px;
  bottom: 18px;

  padding: 8px 12px;

  background: rgba(255, 255, 255, 0.92);
  border-radius: 20px;

  font-size: 12px;
  color: #555;

  pointer-events: none;
}

.producto-zoom i {
  margin-right: 5px;
}

/* ============================================================
   INFORMACIÓN
============================================================ */

.producto-info {
  padding: 5px 0;
}

.producto-meta {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;

  margin-bottom: 14px;
}

.producto-categoria {
  font-size: 12px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.08em;

  color: var(--color-principal);
}

.producto-marca {
  padding-left: 10px;

  border-left: 1px solid #ddd;

  font-size: 13px;
  color: #777;
}

.producto-titulo {
  margin: 0;

  font-size: clamp(28px, 3vw, 42px);
  line-height: 1.12;
  font-weight: 600;

  color: #222;
}

.producto-sku {
  margin-top: 12px;

  font-size: 12px;
  color: #999;
}

.producto-separador {
  width: 100%;
  height: 1px;

  margin: 25px 0;

  background: #e8e8e8;
}

/* ============================================================
   PRECIO
============================================================ */

.producto-precio {
  font-size: 36px;
  line-height: 1;

  font-weight: 700;

  color: var(--color-secundario);
}

/* ============================================================
   STOCK
============================================================ */

.producto-disponibilidad {
  margin-top: 16px;
}

.producto-stock {
  display: inline-flex;
  align-items: center;
  gap: 7px;

  font-size: 14px;
  font-weight: 600;
}

.producto-stock.disponible {
  color: #238636;
}

.producto-stock.agotado {
  color: #777;
}

/* ============================================================
   BOTÓN
============================================================ */

.producto-compra {
  margin-top: 25px;
}

.producto-btn-carrito {
  width: 100%;

  min-height: 56px;

  border: 0;
  border-radius: 8px;

  padding: 14px 24px;

  background: var(--color-secundario);
  color: #fff;

  font-size: 16px;
  font-weight: 600;

  cursor: pointer;

  transition:
    transform 0.2s ease,
    box-shadow 0.2s ease,
    opacity 0.2s ease;
}

.producto-btn-carrito:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.12);
}

.producto-btn-carrito i {
  margin-right: 8px;
}

/* ============================================================
   AGOTADO
============================================================ */

.producto-agotado-mensaje {
  display: flex;
  gap: 14px;

  margin-top: 25px;
  padding: 18px;

  border: 1px solid #e5e5e5;
  border-radius: 10px;

  background: #fafafa;

  color: #555;
}

.producto-agotado-mensaje > i {
  font-size: 22px;
  color: #888;
}

.producto-agotado-mensaje strong {
  display: block;
  margin-bottom: 5px;
}

.producto-agotado-mensaje p {
  margin: 0;

  font-size: 13px;
  line-height: 1.5;
}

/* ============================================================
   DETALLES
============================================================ */

.producto-detalles {
  margin-top: 28px;

  border-top: 1px solid #e8e8e8;
}

.producto-detalle {
  display: flex;
  align-items: center;
  gap: 15px;

  padding: 17px 0;

  border-bottom: 1px solid #e8e8e8;
}

.producto-detalle > i {
  width: 25px;

  font-size: 18px;
  color: #555;

  text-align: center;
}

.producto-detalle strong,
.producto-detalle span {
  display: block;
}

.producto-detalle strong {
  margin-bottom: 3px;

  font-size: 13px;
}

.producto-detalle span {
  font-size: 12px;
  color: #888;
}

/* ============================================================
   DESCRIPCIÓN
============================================================ */

.producto-descripcion {
  margin-top: 80px;

  padding-top: 45px;

  border-top: 1px solid #e6e6e6;
}

.producto-descripcion-header span {
  display: block;

  margin-bottom: 7px;

  font-size: 12px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.08em;

  color: var(--color-principal);
}

.producto-descripcion-header h2 {
  margin: 0;

  font-size: 28px;
  font-weight: 600;

  color: #222;
}

.producto-descripcion-contenido {
  max-width: 900px;

  margin-top: 25px;

  font-size: 15px;
  line-height: 1.8;

  color: #555;
}

.producto-descripcion-contenido img {
  max-width: 100%;
  height: auto;
}

/* ============================================================
   RESPONSIVE
============================================================ */

@media (max-width: 991.98px) {
  .producto-layout {
    grid-template-columns: 1fr;
    gap: 45px;
  }

  .producto-imagen-principal {
    min-height: 500px;
  }

  .producto-imagen-principal img {
    height: 500px;
  }

  .producto-info {
    max-width: 700px;
  }
}

@media (max-width: 767.98px) {
  .producto-page {
    padding-top: 20px;
  }

  .producto-breadcrumb {
    margin-bottom: 20px;

    font-size: 11px;
  }

  .producto-gallery-inner {
    display: flex;
    flex-direction: column;
    gap: 12px;
  }

  .producto-imagen-principal {
    order: 1;

    min-height: 380px;

    border-radius: 10px;
  }

  .producto-imagen-principal img {
    height: 380px;
  }

  .producto-miniaturas {
    order: 2;

    width: 100%;

    flex-direction: row;

    overflow-x: auto;
    overflow-y: hidden;

    max-height: none;

    padding-bottom: 5px;
  }

  .producto-miniatura {
    flex: 0 0 72px;

    width: 72px;
    height: 72px;
  }

  .producto-titulo {
    font-size: 29px;
  }

  .producto-precio {
    font-size: 32px;
  }

  .producto-descripcion {
    margin-top: 50px;
    padding-top: 35px;
  }
}

@media (max-width: 575.98px) {
  .producto-page .container {
    padding-left: 15px;
    padding-right: 15px;
  }

  .producto-imagen-principal {
    min-height: 330px;
  }

  .producto-imagen-principal img {
    height: 330px;
  }

  .producto-zoom {
    right: 10px;
    bottom: 10px;

    font-size: 11px;
  }

  .producto-meta {
    margin-top: 5px;
  }

  .producto-separador {
    margin: 20px 0;
  }

  .producto-btn-carrito {
    min-height: 52px;
  }
}

/* =========================================================
   CARRITO
   ========================================================= */

#tabla-carrito {
  background: #f7f7f7;
  padding: 1px 0 50px;
}

/* CONTENEDOR PRINCIPAL */

#tabla-carrito > .container.card {
  max-width: 1320px;
  margin-top: 40px !important;
  margin-bottom: 40px !important;
  padding: 0;
  border: 1px solid #e5e5e5;
  border-radius: 12px;
  background: #fff;
  box-shadow: 0 8px 30px rgba(0, 0, 0, 0.04);
  overflow: hidden;
}

/* =========================================================
   ENCABEZADO
   ========================================================= */

#tabla-carrito .row.bg-light {
  margin: 0;
  padding: 18px 25px !important;
  background: #fafafa !important;
  border-bottom: 1px solid #e8e8e8;
  color: #222;
  font-size: 13px;
  letter-spacing: 0.5px;
}

#tabla-carrito .row.bg-light > div {
  font-weight: 600 !important;
}

/* =========================================================
   PRODUCTO
   ========================================================= */

#tabla-carrito .card-body {
  padding: 30px 25px;
}

/* Imagen */

#tabla-carrito .card-body img {
  width: 58px !important;
  height: 58px !important;
  object-fit: cover;
  border-radius: 8px;
  border: 1px solid #eee;
  background: #fff;
  padding: 2px;
}

/* Link del producto */

#tabla-carrito .card-body a.text-dark {
  color: #252525 !important;
  text-decoration: none;
  transition: color 0.2s ease;
}

#tabla-carrito .card-body a.text-dark:hover {
  color: #8b5e3c !important;
}

/* Nombre */

#tabla-carrito .card-body p {
  color: #292929;
  font-size: 15px;
  line-height: 1.5;
}

#tabla-carrito .card-body small {
  display: inline-block;
  margin-top: 4px;
  color: #888;
  font-size: 12px;
}

/* =========================================================
   CANTIDAD
   ========================================================= */

#tabla-carrito .ajustar-cantidad {
  width: 65px;
  height: 38px;
  margin: auto;
  border: 1px solid #ddd;
  border-radius: 7px;
  text-align: center;
  color: #333;
  background: #fff;
  box-shadow: none;
}

#tabla-carrito .ajustar-cantidad:focus {
  border-color: #222;
  box-shadow: 0 0 0 2px rgba(0, 0, 0, 0.06);
}

/* =========================================================
   PRECIOS
   ========================================================= */

#tabla-carrito .card-body .row.mb-2 > div:nth-child(4),
#tabla-carrito .card-body .row.mb-2 > div:nth-child(5) {
  display: flex;
  align-items: center;
  color: #333;
  font-size: 15px;
}

#tabla-carrito .card-body .row.mb-2 > div:nth-child(5) {
  font-weight: 600;
}

/* =========================================================
   BOTÓN ELIMINAR
   ========================================================= */

#tabla-carrito .eliminar-carrito {
  width: 40px;
  height: 40px;
  padding: 0;
  border: 0;
  border-radius: 7px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: #f3f3f3;
  color: #777;
  transition: all 0.2s ease;
}

#tabla-carrito .eliminar-carrito:hover {
  background: #e63946;
  color: #fff;
  transform: translateY(-1px);
}

/* =========================================================
   CUPÓN
   ========================================================= */

#tabla-carrito #frm-cupon {
  margin: 0;
}

#tabla-carrito #cupon {
  height: 40px;
  border: 1px solid #ddd;
  border-radius: 7px 0 0 7px;
  box-shadow: none;
  font-size: 14px;
  padding-left: 14px;
}

#tabla-carrito #cupon:focus {
  border-color: #999;
  box-shadow: none;
}

#tabla-carrito #frm-cupon .btn-warning {
  height: 40px;
  border: 0;
  background: #222;
  color: #fff;
  font-size: 13px;
  padding: 0 18px;
}

#tabla-carrito #frm-cupon .btn-warning:hover {
  background: #000;
}

#tabla-carrito #btn-eliminar-cupon {
  height: 40px;
  border: 0;
  background: #e63946;
  color: #fff;
  font-weight: 500;
}

/* Texto aplicar cupón */

#tabla-carrito .row.my-3 p {
  color: #555;
  font-size: 14px;
}

/* =========================================================
   RESUMEN
   ========================================================= */

#tabla-carrito .row.mt-2.mb-3 {
  margin-left: 0;
  margin-right: 0;
}

#tabla-carrito .row.mt-2.mb-3 h4 {
  font-size: 18px;
  color: #333;
  font-weight: 400;
}

#tabla-carrito .row.mt-2.mb-3 b {
  font-weight: 600;
  color: #222;
}

/* TOTAL */

#tabla-carrito .row.mt-2.mb-3 + .row.mt-2.mb-3 {
  padding-top: 8px;
  border-top: 1px solid #eee;
}

#tabla-carrito .row.mt-2.mb-3 + .row.mt-2.mb-3 h4 {
  font-size: 21px;
  font-weight: 500;
}

#tabla-carrito .row.mt-2.mb-3 + .row.mt-2.mb-3 b {
  font-size: 23px;
}

/* =========================================================
   COMPRAR
   ========================================================= */

#tabla-carrito #btn-pagar-todo {
  height: 48px;
  border: 0;
  border-radius: 7px;
  background: #222 !important;
  color: #fff;
  font-size: 16px;
  font-weight: 500;
  letter-spacing: 0.2px;
  transition: all 0.25s ease;
}

#tabla-carrito #btn-pagar-todo:hover {
  background: #000 !important;
  transform: translateY(-1px);
  box-shadow: 0 7px 18px rgba(0, 0, 0, 0.12);
}

/* =========================================================
   CUPONES APLICADOS
   ========================================================= */

#tabla-carrito #aplicados {
  margin-top: 8px;
  font-size: 13px;
}

/* =========================================================
   RESPONSIVE
   ========================================================= */

@media (max-width: 767.98px) {
  #tabla-carrito {
    padding-bottom: 30px;
  }

  #tabla-carrito > .container.card {
    margin: 20px 12px !important;
    border-radius: 10px;
  }

  /* Ocultamos encabezado de escritorio */

  #tabla-carrito .row.bg-light {
    display: none;
  }

  #tabla-carrito .card-body {
    padding: 20px 15px;
  }

  /* Producto */

  #tabla-carrito .card-body .row.mb-2 {
    display: grid;
    grid-template-columns: 65px 1fr 45px;
    gap: 10px;
    align-items: center;
  }

  #tabla-carrito .card-body .row.mb-2 > div {
    width: auto;
  }

  /* Imagen */

  #tabla-carrito .card-body .row.mb-2 > div:first-child {
    grid-row: span 2;
  }

  #tabla-carrito .card-body img {
    width: 58px !important;
    height: 58px !important;
  }

  /* Nombre */

  #tabla-carrito .card-body .row.mb-2 > div:nth-child(2) {
    grid-column: 2 / 4;
  }

  #tabla-carrito .card-body .row.mb-2 > div:nth-child(2) p {
    white-space: normal !important;
  }

  /* Cantidad */

  #tabla-carrito .card-body .row.mb-2 > div:nth-child(3) {
    grid-column: 2;
    text-align: left !important;
  }

  #tabla-carrito .ajustar-cantidad {
    margin: 0;
  }

  /* Precio */

  #tabla-carrito .card-body .row.mb-2 > div:nth-child(4)::before {
    content: "Precio";
    display: block;
    color: #999;
    font-size: 11px;
    margin-bottom: 3px;
  }

  /* Total */

  #tabla-carrito .card-body .row.mb-2 > div:nth-child(5)::before {
    content: "Total";
    display: block;
    color: #999;
    font-size: 11px;
    margin-bottom: 3px;
  }

  #tabla-carrito .card-body .row.mb-2 > div:nth-child(4),
  #tabla-carrito .card-body .row.mb-2 > div:nth-child(5) {
    font-size: 14px;
  }

  /* Eliminar */

  #tabla-carrito .card-body .row.mb-2 > div:nth-child(6) {
    grid-column: 3;
    grid-row: 2;
    text-align: right;
  }

  /* CUPÓN */

  #tabla-carrito .row.my-3 {
    margin-top: 30px !important;
    display: block;
  }

  #tabla-carrito .row.my-3 > div {
    width: 100%;
    text-align: left !important;
  }

  #tabla-carrito .row.my-3 .col-md-8 {
    margin-bottom: 10px;
  }

  /* RESUMEN */

  #tabla-carrito .row.mt-2.mb-3 {
    display: flex;
    align-items: center;
  }

  #tabla-carrito .row.mt-2.mb-3 .col-md-4:first-child {
    display: none;
  }

  #tabla-carrito .row.mt-2.mb-3 .col-md-4 {
    width: 65%;
    text-align: left !important;
  }

  #tabla-carrito .row.mt-2.mb-3 .col-md-3 {
    width: 35%;
    text-align: right;
  }

  #tabla-carrito .row.mt-2.mb-3 h4 {
    font-size: 16px;
  }

  /* TOTAL */

  #tabla-carrito .row.mt-2.mb-3 + .row.mt-2.mb-3 h4 {
    font-size: 19px;
  }

  #tabla-carrito .row.mt-2.mb-3 + .row.mt-2.mb-3 b {
    font-size: 20px;
  }

  /* BOTÓN */

  #tabla-carrito .row:last-child {
    margin-top: 25px;
  }

  #tabla-carrito .row:last-child .col-md-9 {
    display: none;
  }

  #tabla-carrito .row:last-child .col-md-3 {
    width: 100%;
  }

  #tabla-carrito #btn-pagar-todo {
    width: 100%;
    height: 50px;
  }
}

/* =========================================================
   CHECKOUT / PAGAR
   ========================================================= */

body {
  background: #f7f7f7;
}

/* CONTENEDOR PRINCIPAL */

.container.my-5 {
  max-width: 1100px;
}

/* =========================================================
   TARJETAS
   ========================================================= */

.container.my-5 > .row > .col-md-6 > .card {
  border: 1px solid #e2e2e2;
  border-radius: 10px;
  background: #fff;
  box-shadow: 0 5px 20px rgba(0, 0, 0, 0.035);
  overflow: hidden;
}

/* =========================================================
   CABECERAS
   ========================================================= */

.container.my-5 .card-header {
  background: #fff;
  border-bottom: 1px solid #e5e5e5;
  padding: 17px 20px;
  color: #252525;
  font-size: 15px;
  font-weight: 500;
}

/* =========================================================
   FORMULARIO
   ========================================================= */

#frm-continuar {
  padding: 25px 20px;
}

/* TÍTULOS DE SECCIÓN */

#frm-continuar h6 {
  margin: 5px 0 12px;
  color: #292929;
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.4px;
  position: relative;
  padding-bottom: 9px;
}

#frm-continuar h6::after {
  content: "";
  display: block;
  width: 30px;
  height: 2px;
  background: #222;
  position: absolute;
  bottom: 0;
  left: 0;
}

/* SEPARACIÓN ENTRE SECCIONES */

#frm-continuar .row.mt-3.mb-2 {
  margin-top: 25px !important;
}

/* =========================================================
   LABELS
   ========================================================= */

#frm-continuar label {
  display: block;
  margin-bottom: 6px;
  color: #333;
  font-size: 13px;
  font-weight: 500;
}

/* =========================================================
   INPUTS
   ========================================================= */

#frm-continuar .form-control,
#frm-continuar .custom-select {
  height: 39px;
  border: 1px solid #ddd;
  border-radius: 6px;
  background: #fff;
  color: #333;
  font-size: 14px;
  box-shadow: none;
  transition: all 0.2s ease;
}

#frm-continuar .form-control {
  padding: 8px 12px;
}

#frm-continuar .form-control:hover,
#frm-continuar .custom-select:hover {
  border-color: #bbb;
}

#frm-continuar .form-control:focus,
#frm-continuar .custom-select:focus {
  border-color: #222;
  box-shadow: 0 0 0 2px rgba(0, 0, 0, 0.05);
  outline: none;
}

/* ESTADO BLOQUEADO */

#frm-continuar #estado {
  background: #f5f5f5;
  color: #666;
  cursor: not-allowed;
}

/* =========================================================
   CHECKBOX
   ========================================================= */

#frm-continuar .form-check {
  padding-left: 1.6rem;
}

#frm-continuar .form-check-input {
  width: 16px;
  height: 16px;
  margin-top: 2px;
}

#frm-continuar .form-check-label {
  font-size: 13px;
  color: #444;
  font-weight: 400;
}

#frm-continuar .form-check-label a {
  color: #333 !important;
  text-decoration: none;
}

#frm-continuar .form-check-label a:hover {
  text-decoration: underline;
}

/* =========================================================
   FACTURACIÓN
   ========================================================= */

.facturacion-items {
  margin-top: 5px !important;
  padding: 15px;
  border: 1px solid #eee;
  border-radius: 7px;
  background: #fafafa;
}

/* Radios */

.facturacion-items .form-check-inline {
  margin-right: 20px;
}

.facturacion-items .form-check-label {
  display: inline;
}

/* =========================================================
   BOTÓN CONTINUAR
   ========================================================= */

#btn-continuar {
  width: 100%;
  height: 45px;
  margin-top: 10px;
  border: 0;
  border-radius: 6px;
  background: #222 !important;
  color: #fff !important;
  font-size: 14px;
  font-weight: 500;
  letter-spacing: 0.2px;
  transition: all 0.25s ease;
}

#btn-continuar:hover {
  background: #000 !important;
  transform: translateY(-1px);
  box-shadow: 0 6px 16px rgba(0, 0, 0, 0.12);
}

/* =========================================================
   RESUMEN DEL CARRITO
   ========================================================= */

.container.my-5 > .row > .col-md-6:last-child .card {
  position: sticky;
  top: 25px;
}

/* Encabezados */

.container.my-5 .col-md-6:last-child .card-header {
  font-size: 15px;
}

/* =========================================================
   TABLA DEL CARRITO
   ========================================================= */

.container.my-5 .col-md-6:last-child .card-body {
  padding: 20px;
}

/* Encabezado de columnas */

.container.my-5 .col-md-6:last-child .row.mb-2:first-child {
  padding-bottom: 12px;
  border-bottom: 1px solid #eee;
  color: #555;
  font-size: 12px;
}

/* Texto encabezados */

.container.my-5 .col-md-6:last-child .row.mb-2:first-child b {
  font-weight: 600;
}

/* Producto */

.container.my-5 .col-md-6:last-child .row.mb-2.px-0.g-0 {
  align-items: center;
}

/* Imagen */

.container.my-5 .col-md-6:last-child img {
  width: 48px !important;
  height: 48px !important;
  object-fit: cover;
  border: 1px solid #eee !important;
  border-radius: 7px;
  padding: 2px;
  background: #fff;
}

/* Cantidad / precio / total */

.container.my-5 .col-md-6:last-child .row.mb-2.px-0.g-0 {
  color: #333;
  font-size: 13px;
}

.container.my-5 .col-md-6:last-child .row.mb-2.px-0.g-0 > div {
  padding-top: 8px;
  padding-bottom: 8px;
}

/* TOTAL */

.container.my-5 .col-md-6:last-child .row.mb-2.px-0.g-0 > div:last-child {
  font-weight: 600;
}

/* =========================================================
   RESPONSIVE
   ========================================================= */

@media (max-width: 767.98px) {
  .container.my-5 {
    margin-top: 20px !important;
    margin-bottom: 20px !important;
    padding-left: 12px;
    padding-right: 12px;
  }

  .container.my-5 > .row {
    margin-left: 0;
    margin-right: 0;
  }

  .container.my-5 > .row > .col-md-6 {
    padding-left: 0;
    padding-right: 0;
    margin-bottom: 20px;
  }

  /* El resumen deja de ser sticky */

  .container.my-5 > .row > .col-md-6:last-child .card {
    position: static;
  }

  /* Formulario */

  #frm-continuar {
    padding: 20px 15px;
  }

  /* Inputs */

  #frm-continuar .form-control,
  #frm-continuar .custom-select {
    height: 42px;
  }

  /* Títulos */

  #frm-continuar h6 {
    font-size: 12px;
  }

  /* Carrito */

  .container.my-5 .col-md-6:last-child .card-body {
    padding: 15px;
  }

  /* Encabezados */

  .container.my-5 .col-md-6:last-child .row.mb-2:first-child {
    font-size: 11px;
  }

  /* Imagen */

  .container.my-5 .col-md-6:last-child img {
    width: 45px !important;
    height: 45px !important;
  }

  /* Producto */

  .container.my-5 .col-md-6:last-child .row.mb-2.px-0.g-0 {
    font-size: 12px;
  }

  /* Botón */

  #btn-continuar {
    height: 48px;
  }
}

/* =========================================================
   SUBMENÚ DE CATEGORÍAS - DESKTOP
   ========================================================= */

@media (min-width: 992px) {
  #menu-tienda .dropdown-submenu {
    position: relative;
  }

  /*
   * Submenú lateral
   */
  #menu-tienda .dropdown-submenu > .dropdown-menu {
    position: absolute;
    top: -8px;
    left: 100%;

    min-width: 280px;

    margin: 0 !important;
    padding: 8px;

    display: none;

    z-index: 9999;
  }

  /*
   * Mostrar mientras el cursor esté sobre
   * el departamento o cualquiera de sus hijos
   */
  #menu-tienda .dropdown-submenu:hover > .dropdown-menu,
  #menu-tienda .dropdown-submenu:focus-within > .dropdown-menu {
    display: block;
  }

  /*
   * PUENTE INVISIBLE
   *
   * Evita que el hover se pierda mientras
   * el cursor viaja del departamento al submenú.
   */
  #menu-tienda .dropdown-submenu::after {
    content: "";
    position: absolute;

    top: 0;
    right: -20px;

    width: 20px;
    height: 100%;

    display: block;
  }

  /*
   * Flecha
   */
  #menu-tienda .dropdown-submenu > .dropdown-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
  }

  #menu-tienda .dropdown-submenu > .dropdown-item .menu-arrow {
    font-size: 10px;
    flex-shrink: 0;
  }
}

/* =========================================================
   MENÚ PRINCIPAL - NUEVA ESTRUCTURA
   ========================================================= */

.header-main-inner {
  position: relative;
}

.header-nav {
  display: block;
  padding: 0 !important;
  flex: 0 0 auto;
}

.header-nav .navbar-collapse {
  display: block;
}

.header-nav .navbar-nav {
  display: flex;
  align-items: center;
  gap: 6px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.header-nav .nav-item {
  position: relative;
}

.header-nav .nav-link {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 12px 17px !important;
  border: 0;
  background: transparent;
  color: var(--header-purple);
  font-size: 18px;
  font-weight: 600;
  line-height: 1.2;
  text-decoration: none;
  white-space: nowrap;
  cursor: pointer;
  transition: color .2s ease, background-color .2s ease;
}

.header-nav .nav-link:hover,
.header-nav .nav-link:focus-visible,
.header-nav .nav-item.menu-open > .nav-link {
  color: var(--header-purple-light);
}

.header-nav .nav-link::after {
  display: none !important;
}

.menu-trigger-arrow {
  font-size: 11px;
  transition: transform .2s ease;
}

.nav-item.menu-open > .nav-link .menu-trigger-arrow {
  transform: rotate(180deg);
}

.menu-panel {
  position: absolute;
  top: calc(100% + 10px);
  left: 0;
  display: none;
  z-index: 1200;
  min-width: 230px;
  padding: 8px;
  border: 0;
  border-radius: 11px;
  background: #fff;
  box-shadow: 0 12px 32px rgba(0, 0, 0, .14);
}

.nav-item.menu-open > .menu-panel {
  display: block;
}

.menu-panel-small {
  min-width: 230px;
}

.menu-panel-departamentos {
  width: 245px;
}

.menu-panel-link,
.menu-department-link,
.menu-category-link {
  display: flex;
  align-items: center;
  min-height: 42px;
  color: var(--header-text);
  text-decoration: none;
  font-size: 14px;
  line-height: 1.25;
  border-radius: 7px;
  transition: background-color .18s ease, color .18s ease;
}

.menu-panel-link {
  padding: 10px 13px;
}

.menu-panel-link:hover,
.menu-panel-link:focus-visible,
.menu-department-link:hover,
.menu-department-link:focus-visible,
.menu-category-link:hover,
.menu-category-link:focus-visible {
  background: #f4f1fa;
  color: var(--header-purple);
}

.menu-department {
  position: relative;
}

.menu-department-row {
  display: flex;
  align-items: stretch;
  width: 100%;
}

.menu-department-link {
  flex: 1 1 auto;
  min-width: 0;
  padding: 10px 12px;
  text-transform: uppercase;
}

.menu-submenu-toggle {
  flex: 0 0 38px;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 0;
  border-radius: 7px;
  background: transparent;
  color: var(--header-text);
  cursor: pointer;
  transition: background-color .18s ease, color .18s ease;
}

.menu-submenu-toggle:hover,
.menu-submenu-toggle:focus-visible,
.menu-department.active .menu-submenu-toggle {
  background: #f4f1fa;
  color: var(--header-purple);
}

.menu-submenu-toggle i {
  font-size: 10px;
  transition: transform .2s ease;
}

.menu-department.active .menu-submenu-toggle i {
  transform: rotate(90deg);
}

.menu-submenu {
  position: absolute;
  top: -8px;
  left: calc(100% + 8px);
  display: none;
  width: 280px;
  padding: 8px;
  border-radius: 11px;
  background: #fff;
  box-shadow: 0 12px 32px rgba(0, 0, 0, .14);
  z-index: 1300;
}

.menu-department.active > .menu-submenu {
  display: block;
}

.menu-category-link {
  padding: 9px 13px;
}

.menu-empty {
  display: block;
  padding: 10px 13px;
  color: var(--header-muted);
  font-size: 14px;
}

/* Puente invisible para que el cursor pueda pasar del primer panel
   al submenú sin perder el estado activo en escritorio. */
@media (min-width: 992px) {
  .menu-department.has-submenu::after {
    content: "";
    position: absolute;
    top: 0;
    right: -16px;
    width: 16px;
    height: 100%;
  }
}

/* =========================================================
   MENÚ MÓVIL / TABLET
   ========================================================= */

@media (max-width: 991.98px) {
  .header-nav {
    display: block !important;
    position: static !important;
    width: 0;
    flex: 0 0 0;
  }

  .header-nav .navbar-collapse {
    position: absolute;
    top: 100%;
    left: 0;
    display: none;
    width: 100%;
    max-height: calc(100vh - 76px);
    overflow-y: auto;
    padding: 8px 0 14px;
    background: #fff;
    border-top: 1px solid var(--header-border);
    box-shadow: 0 12px 30px rgba(0, 0, 0, .14);
    z-index: 1200;
  }

  .header-nav .navbar-collapse.menu-mobile-open {
    display: block;
  }

  .header-nav .navbar-nav {
    display: block;
    width: 100%;
    padding: 0;
  }

  .header-nav .nav-item {
    width: 100%;
  }

  .header-nav .nav-link {
    width: 100%;
    min-height: 50px;
    justify-content: space-between;
    padding: 14px 20px !important;
    font-size: 17px;
    text-align: left;
    border-radius: 0;
  }

  .header-nav .nav-item:not(.nav-has-menu) .nav-link:hover,
  .header-nav .nav-item:not(.nav-has-menu) .nav-link:focus-visible {
    background: #f7f4fb;
  }

  .menu-panel,
  .menu-panel-small,
  .menu-panel-departamentos {
    position: static;
    display: none;
    width: 100%;
    min-width: 0;
    margin: 0;
    padding: 0 12px 8px 20px;
    border: 0;
    border-radius: 0;
    box-shadow: none;
  }

  .nav-item.menu-open > .menu-panel {
    display: block;
  }

  .menu-panel-link,
  .menu-department-link,
  .menu-category-link {
    min-height: 46px;
    font-size: 15px;
  }

  .menu-panel-link {
    padding: 11px 14px;
  }

  .menu-department-row {
    border-radius: 7px;
    background: #fff;
  }

  .menu-department-link {
    padding: 11px 12px;
  }

  .menu-submenu-toggle {
    flex-basis: 46px;
  }

  .menu-submenu {
    position: static;
    display: none;
    width: 100%;
    margin: 0;
    padding: 0 0 4px 16px;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
  }

  .menu-department.active > .menu-submenu {
    display: block;
  }

  .menu-category-link {
    padding: 9px 13px;
    color: var(--header-muted);
  }
}
