/* ============================================== */
/* CHECKBOX */
/* ============================================== */

input[type="checkbox"] {
  -webkit-appearance: checkbox;
  -moz-appearance: checkbox;
  appearance: checkbox;
}

/* ============================================== */
/* MAP */
/* ============================================== */

#mapa-overlay {
  position: absolute;
  inset: 0;
  background: rgba(255,255,255,.25);
  display: flex;
  align-items: center;
  justify-content: center;
  pointer-events: none; /* deja pasar clicks al mapa */
  z-index: 500;
  font-weight: bold;
  color: #333;
  text-align: center;
}

#mapa-overlay h4{
  position: absolute;
  top: 0;
  right: 10px;
  background: var(--color-gre);
  padding: 5px 10px;
  border-radius: 5px;
  color: white;
}

.map-activated {
    display: none !important; 
}

#map{
  height:100vh;
  width:100%;
  border-radius:10px;
  overflow:hidden;
  z-index: 1;
}

#map:fullscreen {
  width: 100vw;
  height: 90vh;
}


@media screen and (max-width: 768px){
  #map{
    width:100%;
  }

  #mapa-container{
    position: relative;
  }

  #mapa-container:after{
    content: "";
    position: absolute;
    z-index: 2;
    top: 0;
    background: rgba(0, 0, 0, 0.2);
    right: 0;
    width: 60px;
    height: 100vh;
  }
  
  #mapa-container:before{
    content: "";
    position: absolute;
    width: 60px;
    height: 60px;
    z-index: 3;
    top:45%;
    right: 0;
    border-radius: 5px;
    background-image: url("./../../images/body/arrows.svg");
    background-repeat: no-repeat;
  }

  #mapa-overlay h4,
  .leaflet-control-container{
    display: none;
  }
}

/* ============================================== */
/* PRELOADER */
/* ============================================== */

.preloader {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background:var(--color-sky);
  z-index: 9999999999;
  height: 100%;
  width: 100%;
  overflow: hidden !important;
}

.icon-logo{
  width: 100px;
  height: 100px;
  margin:-50px 0 0 -50px;
  top: 45%;
  left: 50%;

  position: absolute;
  background: url("./../../images/logo/logo_icon.svg") no-repeat 50% 50%;
  -webkit-transition: all 0.4s ease-in-out;
  -moz-transition: all 0.4s ease-in-out;
  -o-transition: all 0.4s ease-in-out;
  -ms-transition: all 0.4s ease-in-out;
  transition: all 0.4s ease-in-out;

  -webkit-transform-style: preserve-3d;
  -moz-transform-style: preserve-3d;
  -o-transform-style: preserve-3d;
  -ms-transform-style: preserve-3d;
  transform-style: preserve-3d;

}

.icon-logo > div {
  display: block;
  position: absolute;
  width: 100%;
  height: 100%;
  background-position: center center;

  -webkit-backface-visibility: hidden;
  -moz-backface-visibility: hidden;
  -o-backface-visibility: hidden;
  -ms-backface-visibility: hidden;
  backface-visibility: hidden;
}

.icon-logo-back {
  background: url("./../../images/logo/logo_icon_back.svg");
}

.icon-logo{

    -webkit-animation: cacas 1s infinite;
       -moz-animation: cacas 1s infinite;
         -o-animation: cacas 1s infinite;
            animation: cacas 1s infinite;

}

@keyframes cacas {
    0% {transform: rotate3d(0,1,0,180deg);}
    100% { transform: rotate3d(0,1,0,-180deg);}
}

.icon-logo.salida {
    animation: cacas 0.8s ease-out forwards;
}



/* ============================================== */
/* MODAL */
/* ============================================== */

.modal {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 11;
  background: rgba(0, 0, 0, 0.8);
  display: flex;
  justify-content: center;
  align-items: center;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity 0.3s ease, visibility 0.3s ease;
  overflow-y: auto;
}

.modal.open {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}

.modal-content {
  background: white;
  padding: 40px;
  width: 90%;
  max-width: 500px;
  max-height: 90vh;
  border-radius: 20px;
  border: 1px solid var(--color-90);
  animation: fadeIn 0.3s ease-in-out;
  display: flex;
  flex-direction: column;
}

.modal.modal_product .modal-content {
  max-width: 768px;
}

.modal .icon-close{
  position: absolute;
  top:-30px;
  right:-30px;
  border-radius: 50%;
  z-index: 12;
}

.no-scroll {
  overflow: hidden;
}

.video-wrapper {
  position: relative;
  width: 100%;
  padding-top: 56.25%; /* relación 16:9 */
  border-radius: 12px;
}

.video-wrapper iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  border: 0;
}


@media screen and (max-width: 768px) {
  .modal-content{
    padding: 20px;
    max-height: 480px;
    overflow-y: scroll;
  }
  .modal .icon-close{
    top:10px;
    right:10px;
  }
}


/* ============================================== */
/* BTN */
/* ============================================== */

.btn      {  background: var(--color-80); font-weight:600;  }
.btn:hover{  background: var(--color-60);   }

.btn.c-pri    {  background: var(--color-pri); color: var(--color-0); }
.btn.c-sec    {  background: var(--color-sec); color: var(--color-0); }
.btn.c-ter    {  background: var(--color-ter); color: var(--color-0); }
.btn.c-blu    {  background: var(--color-blu); color: var(--color-0); }
.btn.c-com    {  background: var(--color-com); color: var(--color-0); }

.btn.c-pri:hover{  background: var(--color-pri-h); color: var(--color-0); }
.btn.c-sec:hover{  background: var(--color-sec-h); color: var(--color-0); }
.btn.c-ter:hover{  background: var(--color-ter-h); color: var(--color-0); }
.btn.c-blu:hover{  background: var(--color-blu-h); color: var(--color-0); }
.btn.c-com:hover{  background: var(--color-com-h); color: var(--color-0); }

.btn.link        {  color: var(--color-60);  }
.btn.link::before{  background: var(--color-60);  }

.btn-margin{
  margin:0 0 10px 18px;
}

/* ============================================== */
/* BG HERO */
/* ============================================== */

.bg-hero-2,
.bg-hero-3 {
  width: 100%;
  background-size: contain;
  background-repeat: no-repeat;
}

.bg-hero-2 {
  background-image: url('./../../images/hero/bg-hero-2.png');
  background-position: top center;
}

.bg-hero-3 {
  background-image: url('./../../images/hero/bg-hero-3.png');
  background-position: bottom center;
}

/* ============================================== */
/* NOTICIAS */
/* ============================================== */

.noticias .label_noticias {
  display: none;
}

.noticias li:first-child .label_noticias {
  display: block;
  position: relative;
  top: 0;
  left: 0;
  padding: 5px 10px;
  font-size: 0.9rem;
  color: white;
  background: var(--color-pri);
}


/* ============================================== */
/* MENU LIST */
/* ============================================== */

.menu-list.link li{
  padding: 0;
}

.menu-list.link li a{
  display: block;
  padding: 5px 10px;
  color: rgba(255, 255, 255, 0.8);
  border-bottom: 1px solid var(--color-gre);
}

.menu-list.link li a:hover{
  color: rgba(255, 255, 255, 1);
}

.final-footer{
  padding: 20px 30px !important;
  border-radius: 20px 20px 0 0;
}

.icon-check li::before{
  background-color: var(--color-ter);
  border-radius: 50%;
}

.menu-list.number {
  list-style: none;
  padding-left: 0;
  counter-reset: item;
  margin: 0;
}

.menu-list.number li {
  counter-increment: item;
  position: relative;
  padding-left: 60px;
}

.menu-list.number li::before {
  content: counter(item) ".";
  position: absolute;
  left: 20px;
  top: 10px;
  background: var(--color-ter);
  color: white;
  padding: 2px 6px;
  border-radius: 4px;
  font-weight: bold;
}

.menu-art li{
  display: block;
  width: 100%;
}

.menu-art li :is(p,a) {
  padding:10px 20px;
  margin: 0;
}

.menu-art li a{
  display: block;
  color: var(--color-50);
  transition:all 350ms ease;
}

.menu-art li a:hover{
  color: var(--color-bla);
}

.menu-art li:not(:last-child) a {
  border-bottom: 1px solid var(--color-sky);
}

/* ============================================== */
/* SIN SESION */
/* ============================================== */

.sin_sesion {
  color: white;
  padding: 5px 10px;
  background: var(--color-pri);
  position: fixed;
  left: 20px;
  bottom: 10px;
  border-radius: 10px;
  z-index: 2;
}

/* ============================================== */
/* TEASER */
/* ============================================== */

.teaser-hero {
  border-radius: 20px;
  overflow: hidden;
  position: relative;
  aspect-ratio: 8 / 12;
  border: 2px solid white;
}

.teaser-hero a {
  position: absolute;
  bottom:7%;
  left: 50%;              /* lo llevas al centro */
  transform: translateX(-50%); /* lo corriges para que quede centrado */
  width: 80%;
  z-index: 2;
  text-align: center;     /* opcional si el contenido dentro del botón debe centrarse */
}

.teaser-hero img{
  transform: scale(1);
  transition: all 350ms ease;
}

.distri::before {
  content: "";
  position: absolute;
  top: 45%;
  opacity: 0;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 20%;
  aspect-ratio: 1 / 2;
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
  z-index: 3;
  transition: all 350ms ease;
}
.distri::before {
  background-image: url("./../../images/body/pin.png");
}
.distri:hover::before {
  top: 50%;
  opacity: 1;
}
.teaser-hero:hover img{
  transform: scale(1.05);
}

@media (max-width: 1080px) {
  .teaser-hero {
    aspect-ratio: 0;
    border: none;
    border-radius: 0;
  }
  .teaser-hero a {
    position: relative;
    bottom:0;
    left: 0;
    transform: none;
    width: 100%;
  }
  .distri::before,
  .teaser-hero img{
    display: none;
  }
}

/* ============================================== */
/* TABLE */
/* ============================================== */

table th {
  background: var(--color-blu);
  border: 1px solid var(--color-blu);
}
table td{
  border-bottom: 1px solid var(--color-blu);
  border-top: 1px solid var(--color-blu);
  border-left: none;
  border-right: none;
}
table tr:nth-child(odd) {
  background: var(--color-sky);
  border-left: 1px solid var(--color-lig);
  border-right: 1px solid var(--color-lig);
}
table tr:nth-child(even) {
  background: var(--color-lig);
  border-left: 1px solid var(--color-lig);
  border-right: 1px solid var(--color-lig);
}

@media only screen and (max-width: 1080px){
  table td {
    border-bottom: 0;
    border-top: 1px solid var(--color-sky);
  }

  tfoot td:last-child,
  table td:first-child{
    border-top: 0;
  }

  tfoot tr{
    margin-bottom: 0;
    border-radius: 0 !important;
  }

  tfoot tr:last-child{
    border-radius: 0 0 10px 10px !important;
  }

   tfoot tr:first-child{
    border-radius: 10px 10px 0 0 !important;
  }

  table td::before {
    font-size: 0.9rem !important;
    text-transform: capitalize !important;
    font-weight: 600 !important;
  }
  table td:last-child {
    border-bottom: 0;
  }

  table tr {
    border-radius: 10px;
  }

  table tr:nth-child(odd) {
    background: white;
  }
}

/* ============================================== */
/* BOX COST */
/* ============================================== */

.box-cost{
  padding: 20px;
  width: auto;
  background: white;
  border-top: 1px solid var(--color-blu);
  border-bottom: 1px solid var(--color-blu);
}

.box-cost > div{
  align-items: center;
}

.box-cost p{
  max-width: 133px;
  width: 100%;
  padding: 5px 10px;
  border-radius: 10px;
  background: var(--color-sky);
}

.box-cost div:last-child p{
  background: #ccf5b8;
  color:#117c21;
}

.box-cost :is(h5,p){
  text-align: right;
}

/* ============================================== */
/* ALERTS */
/* ============================================== */

.warning,
.success {
  padding: 10px 15px;
  border-radius: 5px;
  display: block;
  margin-bottom: 10px;
  font-family: var(--f-family);
}

.warning {
  background: #FFCCCC;
  border: 1px solid #F7A7A7;
  color: #4F2222;
}

.success {
  background: #A3EF97;
  border: 1px solid #7FD072;
  color: #284F22;
}

.alert-distribuidor{
  width: auto;
  overflow: hidden;
  padding:15px 20px;
  background: #D4E4F9;
  border:1px solid #B0C3ED;
  padding:15px 20px;
  border-radius: 10px;
  margin-bottom: 20px;
}

.alert-distribuidor :is(h4,p,small){color:#3D5E88;}


/* ============================================== */
/* TEASER */
/* ============================================== */

.teaser_number{
  display: flex;
  justify-content: center;
  align-items: center;
  width: 40px;
  height: 40px;
  color: white;
  border-radius: 5px;
  background: var(--color-ter);
}

.teaser{
  display: grid;
  gap: 10px;
  grid-template-columns: repeat(3, 1fr);
}

.teaser.new-distr{
  grid-template-columns: repeat(4, 1fr);
}

.teaser li{
  position: relative;
  background: var(--color-sky);
  border-radius: 10px;
  padding: 20px;
}

.teaser > li:not(:last-child)::after {
  content: "";
  position: absolute;
  width: 150px;
  height: 50px;
  z-index: 3;
  top: 10px;
  right:10px;
  background: url("./../../images/body/arrow.svg") center/contain no-repeat;
}

.teaser.new-distr > li:not(:last-child)::after {
  width: 50px;
  height: 20px;
  right: 20px;
  top:30px;
}


@media screen and (max-width: 768px) {
  .teaser.new-distr{
    grid-template-columns: repeat(1, 1fr);
  }


  .teaser{  grid-template-columns: repeat(1, 1fr); }
  .teaser > li::after{
    display: none;
  }
}

/* ============================================== */
/* CHECKMARK */
/* ============================================== */

.checkmark {
  background-color: rgba(255, 255, 255, .5);
  border: 1px solid rgba(0, 0, 0, .2);
}

.check input:checked ~ .checkmark {
  background-color: var(--color-ter);
}

.check input[type="checkbox"]:checked ~ .checkmark::after,
.check input[type="radio"]:checked ~ .checkmark::after {
  border: solid var(--color-0);
  border-width: 0 3px 3px 0;
}

label.check{
  font-size: 1rem;
}

/* ============================================== */
/* CUSTOM ICON */
/* ============================================== */

:root {
  /* Tamaños de íconos */
  --icon-size-ch: 24px;
  --icon-wrap-ch: 48px;

  /* Tamaño ícono grande */
  --icon-size-big: 40px;
  --icon-wrap-big: 60px;
}

.v-custom {
  position: relative;
  padding: 0;
  min-width: var(--icon-wrap-c);
  min-height: var(--icon-wrap-c);
  transition: all 0.25s ease-in-out;
}

.v-custom::before {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  width: var(--icon-size-ch);
  height: var(--icon-size-ch);
  background-size: calc(var(--icon-size-ch) * 10);
  overflow: hidden;
}


/* Íconos grandes */
.v-custom.i-big {
  min-width: var(--icon-wrap-big);
  min-height: var(--icon-wrap-big);
}
.v-custom.i-big::before{
  width: var(--icon-size-big);
  height: var(--icon-size-big);
  background-size: calc(var(--icon-size-big) * 10);
}

.v-custom.i-big::before { background-image: url("../../images/body/sprite_local.svg"); }

.v-custom.icon-1::before { background-position: calc(-0 * var(--icon-size-ch)) 0; }
.v-custom.icon-2::before { background-position: calc(-1 * var(--icon-size-ch)) 0; }
.v-custom.icon-3::before { background-position: calc(-2 * var(--icon-size-ch)) 0; }
.v-custom.icon-4::before { background-position: calc(-3 * var(--icon-size-ch)) 0; }
.v-custom.icon-5::before { background-position: calc(-4 * var(--icon-size-ch)) 0; }
.v-custom.icon-6::before { background-position: calc(-5 * var(--icon-size-ch)) 0; }

.v-custom.i-big.icon-7::before { background-position: calc(-6 * var(--icon-size-big)) 0; }
.v-custom.i-big.icon-8::before { background-position: calc(-7 * var(--icon-size-big)) 0; }
.v-custom.i-big.icon-9::before { background-position: calc(-8 * var(--icon-size-big)) 0; }
.v-custom.i-big.icon-10::before { background-position: calc(-9 * var(--icon-size-big)) 0; }

/* ============================================== */
/* DISTRIBUIDORES MAPA */
/* ============================================== */

.mw-20 {
  width: 15px;
  height: 20px;
}

.estado-item{
  padding: 10px;
  border-radius: 10px;
  background: var(--color-sky);
  width: 100%;
  box-sizing: border-box;
  margin-bottom: 1px;
  border: 1px solid var(--color-blu);
}

.ciudad-item{
  background: #DCE4F7;
  padding: 5px;
  border-radius: 5px;
  margin-bottom: 1px;
}

.ciudad-item p{
  color: var(--color-tit);
}

/* Buscador */
.buscador-ciudad {
  width: 100%;
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.buscador-ciudad .input {
  padding: 12px 20px;
}

/* Contador de items */
.count {
  background: var(--color-blu);
  color: white;
  font-size: 12px;
  font-weight: 600;
  padding: 5px;
  border-radius: 5px;
  text-align: center;
  display: block;
  width: 40px !important;
}

/* Lista de subdistribuidores */
.sub-list li{
  border: 1px solid var(--color-blu);
}

.ciudad-contenido li{
  padding: 5px;
}
.ciudad-contenido li:hover{
  cursor: pointer;
}
.ciudad-contenido li:not(:last-child) {
  border-bottom: 1px solid var(--color-blu);
}

/* Popups Leaflet */
.leaflet-popup-content-wrapper {
  border-radius: 10px !important;
  background: white !important;
  box-shadow: 0 2px 10px rgba(0,0,0,0.15);
}

.leaflet-popup-content p {
  margin: 0 !important;
}

/* Botones dentro de popup */
.popup-btns {
  display: flex;
  gap: 8px;
  margin-top: 10px;
}

.ciudades-list{
  margin-top: 10px;
}

/* ============================================== */
/* ASESOR */
/* ============================================== */

.img-perfil {
  width: 65px;
  height: 65px;
  border-radius: 50%;      /* hace el círculo */
  object-fit: cover;       /* recorta y centra la imagen */
  object-position: center; /* asegura el centrado */
  display: block;          /* evita espacio extra */
}


/* ============================================== */
/* SECTION & ASIDE  */
/* ============================================== */

.sticky {
  position: sticky;
  top: 65px;
  z-index: 2;
}

/* ============================================== */
/* ACCORDION */
/* ============================================== */

.accordion li{ 
  display: block; 
  width: 100%; 
  position: relative; 
  overflow: hidden;
}

.accordion li:not(:last-child) {
  border-bottom: 1px dotted var(--color-blu); 
}


.img-articulo {
  width: 100%;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  position: relative;
  border-radius: 5px;
}

.p-tiny{
  font-size: 0.85rem;
}

.img-articulo img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}


.accordion li:hover {
  cursor: pointer;
}

.accordion li h4.link,
.accordion li a {
  display: block;
  padding: 15px 20px;
  transition: all 250ms ease;
}

.accordion li h4 {
  margin: 0;
}

.accordion li h4.link:hover {
  background: var(--color-sky);
}

.accordion li.open {
  background: var(--color-sky);
}

/* Chevron icon */
.accordion > li::before {
  content: '';
  position: absolute;
  top: 19px;
  right: 10px;
  width: 24px;
  height: 24px;
  transform: rotate(0deg);
  transition: all 250ms ease;
  border-radius: 50%;

  background-color: var(--color-blu);
  background-image: url("./../../images/icons/sprite_white.svg");
  background-repeat: no-repeat;
  background-size: calc(var(--Icon-size-c) * 10) auto;
  background-position: calc(-8 * var(--Icon-size-c)) calc(-3 * var(--Icon-size-c));
}

.accordion li.open::before {
  transform: rotate(-90deg);
}

/* Full width for all elements */
.accordion .link,
.accordion .submenu,
.accordion li a {
  width: 100%;
}

.accordion li a {
  color: var(--color-tex);
}

.accordion li a:hover{
  transform: translateX(5px);
  color: var(--color-bla);
}

/* Hide submenu by default */
.accordion .submenu {
  display: none;
}

/* ============================================== */
/* QUILL */
/* ============================================== */


.ql-size-small {
  font-size: 0.85em;
}

.ql-size-large {
  font-size: 1.4em;
}

.ql-size-huge {
  font-size: 2em;
}

.ql-align-center {
  text-align: center;
}
.ql-align-right {
  text-align: right;
}
.ql-align-justify {
  text-align: justify;
}

.content-text ol {
  margin: 20px 0 20px 25px;
  list-style: decimal;
}

.content-text strong{
  color: var(--color-tit);
}

.content-text ol li {
  list-style: decimal;
  margin-bottom: 6px;
}

.content-text ul {
  margin: 20px 0 20px 25px;
  list-style: disc;
}

.content-text ul li {
  list-style: disc;
}






