/*
====================================================
 Custom CSS - DiPuertas
====================================================
*/

/*--------------------------------------------------
  FUENTE PARAGON BLACK
--------------------------------------------------*/
@font-face {
  font-family: "Paragon Black";
  src: url("../webfonts/0ad69fcd21393cfd848cee736baeb71c.eot");
  src: url("../webfonts/0ad69fcd21393cfd848cee736baeb71c.eot?#iefix") format("embedded-opentype"),
       url("../webfonts/Paragon/Paragon_Cleaners_Black.woff") format("woff"),
       url("../webfonts/Paragon/Paragon_Cleaners_Black.woff2") format("woff2"),
       url("../webfonts/Paragon/Paragon_Cleaners_Black.ttf") format("truetype"),
       url("../webfonts/0ad69fcd21393cfd848cee736baeb71c.svg#Paragon Black") format("svg");
  font-weight: normal;
  font-style: normal;
  font-display: swap;
}

/*--------------------------------------------------
  VARIABLES DE COLOR
--------------------------------------------------*/
:root {
  --color-default: #fafafa;
  --color-primary: #bd0303;
  --color-secondary: #161718;

  --color-basic: rgb(152, 152, 152);
  --color-clasica: rgb(221, 42, 27);
  --color-diseno: rgb(251, 225, 21);
  --color-rustika: rgb(97, 53, 3);
  --color-elegantdimas: rgb(171, 147, 116);
  --color-plane: rgb(242, 126, 0);
  --color-luxury: rgb(20, 21, 21);
  --color-urban-pivaotante: rgb(0, 167, 89);
}

/*--------------------------------------------------
  BOTONES POR L�0�1NEA
--------------------------------------------------*/
.btn-lineabasic { background: var(--color-basic); color:#fff !important; }
.btn-lineaclasica { background: var(--color-clasica); color:#fff !important; }
.btn-lineadiseno { background: var(--color-diseno); color:#fff !important; }
.btn-linearustika { background: var(--color-rustika); color:#fff !important; }
.btn-lineaelegantdimas { background: var(--color-elegantdimas); color:#fff !important; }
.btn-lineaplane { background: var(--color-plane); color:#fff !important; }
.btn-linealuxury { background: var(--color-luxury); color:#fff !important; }

/*--------------------------------------------------
  LAYOUT BASE
--------------------------------------------------*/
html, body {
  height: 100%;
}

body {
  background: #fff;
  overflow-x: hidden;
}

#app-container {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
}

#main-content {
  padding-top: 120px;
}

/* Ocultar scrollbar */
body::-webkit-scrollbar {
  display: none;
}

/* A�0�9ade un pseudo-elemento invisible para el offset
Esto evita que omita el navbar al navegar por la pagina index*/
section[id] {
  scroll-margin-top: 100px; /* Ajusta seg��n la altura de tu header */
}

/*--------------------------------------------------
#  Typography 
--------------------------------------------------*/

body, ul, li, p, a, label, input, div {
  font-family: 'Roboto', sans-serif;
  font-size: 18px !important;
  font-weight: 300 !important;
}

.h1 {
  font-family: 'Roboto', sans-serif;
  font-size: 48px !important;
  font-weight: 200 !important;
}
.h2 {
  font-family: 'Roboto', sans-serif;
  font-size: 30px !important;
  font-weight: 300;
}
.h3 {
  font-family: 'Roboto', sans-serif;
  font-size: 22px !important;
}

/*--------------------------------------------------
#  GEneral 
--------------------------------------------------*/

.logo { font-weight: 500 !important;}
.text-warning {  color: #ede861 !important;}
.text-muted { color: #bcbcbc !important;}
.text-success { color: #bd0303 !important;}
.text-light { color: #cfd6e1 !important;}
.bg-dark { background-color: #212934 !important;}
.bg-light { background-color: #e9eef5 !important;}
.bg-black { background-color: #1d242d !important;}
.bg-success { background-color: #bd0303 !important;}
.section-alt {
    background-color: #f7f7f7;
}
.btn-success {
  background-color: #bd0303 !important;
  border-color: #bd0303 !important;
}

.btn-see-more {
  padding: 10px;
}

.btn-success:active:focus,.show>.btn-success.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(236, 103, 103, 0.5)}

.btn-check:focus+.btn-success,.btn-success:focus{color:#fff;background-color:#bd0303;border-color:#bd0303;box-shadow:0 0 0 .25rem rgba(236, 103, 103, 0.5)}

.pagination .page-link:hover {color: #000;}
.pagination .page-link:hover, .pagination .page-link.active {
  background-color: #000000;
  color: #fff;
}


/* Hero Carousel */
#custom-zay-hero-carousel { background: #efefef !important;}

#custom-zay-hero-carousel .h1 {
    font-family: 'Paragon Black', sans-serif !important;
}

/* Brand */
.brand-img {
  filter: grayscale(100%);
  opacity: 0.5;
  transition: .5s;
}
.brand-img:hover {
  filter: grayscale(0%);
  opacity: 1;
}

/* Carousel Hero */
#custom-zay-hero-carousel .carousel-indicators li {
  background-color: #bd0303;
  overflow: hidden;
}
#custom-zay-hero-carousel .carousel-control-next i,
#custom-zay-hero-carousel .carousel-control-prev i {
  color: #bd0303 !important;
  font-size: 2.8em !important;
}
/* Carousel Brand */
.custom-carousel .h1 {
  font-size: .5em !important;
  color: #000 !important;
}

/*--------------------------------------------------
  HEADER / NAVBAR NUEVO
--------------------------------------------------*/
.header {
  background: rgba(255, 255, 255, 0.95);
  padding: 10px 0;
  position: fixed;
  top: 0;
  width: 100%;
  z-index: 1000;
  transition: all 0.3s;
}

.header .logo img {
  max-height: 66px; /* Tamaño para desktop */
  margin-left: 1rem;
  transition: all 0.3s ease; /* Animacion suave */
}


@media (max-width: 767.98px) {
  .header .logo img {
    max-height: 35px;
    max-width: 140px; /* Ancho mas pequeño en movil */
  }
  .gallery{
    margin-top: 50px;
  }
}

@media (max-width: 480px) {
  .header .logo img {
    max-height: 30px;
    max-width: 120px;
  }
}

.header .header-social-links {
  padding-right: 15px;
}

.header .header-social-links a {
  color: rgb(62 60 60);
  padding-left: 15px;
  display: inline-block;
  line-height: 0px;
  transition: 0.3s;
  font-size: 16px;
}

.header-social-links a.facebook:hover {
  color: #1877f2;
}

.header-social-links a.instagram:hover {
  color: #e4405f;
}

@media (max-width: 575px) {
  .header .header-social-links a {
    padding-left: 5px;
  }
}


.navbar a.active.linea-basic { color: var(--color-basic) !important; }
.navbar a.active.linea-clasica { color: var(--color-clasica) !important; }
.navbar a.active.linea-rustika { color: var(--color-rustika) !important; }
.navbar a.active.linea-diseno { color: var(--color-diseno) !important; }
.navbar a.active.linea-elegant { color: var(--color-elegantdimas) !important; }
.navbar a.active.linea-plane { color: var(--color-plane) !important; }
.navbar a.active.linea-luxury { color: var(--color-luxury) !important; }


/*--------------------------------------------------------------
# Desktop Navigation
--------------------------------------------------------------*/
@media (min-width: 1280px) {
  .navbar {
    padding: 0;
  }

  .navbar ul {
    margin: 0;
    padding: 0;
    display: flex;
    list-style: none;
    align-items: center;
  }

  .navbar li {
    position: relative;
  }

  .navbar a,
  .navbar a:focus {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 10px 0 10px 30px;
    font-family: "Paragon Black", sans-serif;
    letter-spacing: 1px;
    font-size: 13px;
    font-weight: 400;
    color: rgb(62 60 60);
    white-space: nowrap;
    transition: 0.3s;
    text-decoration: none;
  }

  .navbar a i,
  .navbar a:focus i {
    font-size: 12px;
    line-height: 0;
    margin-left: 5px;
  }

  .navbar a:hover,
  .navbar .active,
  .navbar .active:focus,
  .navbar li:hover>a {
    color: #b40000;
  }

  .navbar .dropdown ul {
    display: block;
    position: absolute;
    left: 14px;
    top: calc(100% + 30px);
    margin: 0;
    padding: 10px 0;
    z-index: 99;
    opacity: 0;
    visibility: hidden;
    background: var(--color-default);
    transition: 0.3s;
    border-radius: 4px;
  }

  .navbar .dropdown ul li {
    min-width: 200px;
  }

  .navbar .dropdown ul a {
    padding: 10px 20px;
    font-size: 15px;
    text-transform: none;
    font-weight: 400;
  }

  .navbar .dropdown ul a i {
    font-size: 12px;
  }

  .navbar .dropdown ul a:hover,
  .navbar .dropdown ul .active:hover,
  .navbar .dropdown ul li:hover>a {
    color: #b40000;
  }

  .navbar .dropdown:hover>ul {
    opacity: 1;
    top: 100%;
    visibility: visible;
  }

  .navbar .dropdown .dropdown ul {
    top: 0;
    left: calc(100% - 30px);
    visibility: hidden;
  }

  .navbar .dropdown .dropdown:hover>ul {
    opacity: 1;
    top: 0;
    left: 100%;
    visibility: visible;
  }
  
  .gallery{
    margin-top: 46px !important;
  }
}

@media (min-width: 1280px) and (max-width: 1366px) {
  .navbar .dropdown .dropdown ul {
    left: -90%;
  }

  .navbar .dropdown .dropdown:hover>ul {
    left: -100%;
  }
}

@media (min-width: 1280px) {

  .mobile-nav-show,
  .mobile-nav-hide {
    display: none;
  }
}

/*--------------------------------------------------------------
# Mobile Navigation
--------------------------------------------------------------*/
@media (max-width: 1279px) {
  .navbar {
    position: fixed;
    top: 0;
    right: -100%;
    width: 100%;
    max-width: 400px;
    bottom: 0;
    transition: 0.3s;
    z-index: 9997;
  }

  .navbar ul {
    position: absolute;
    inset: 0;
    padding: 50px 0 10px 0;
    margin: 0;
    background: var(--color-default);
    overflow-y: auto;
    transition: 0.3s;
    z-index: 9998;
  }

  .navbar a,
  .navbar a:focus {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 10px 20px;
    font-family: "Paragon Black", sans-serif;
    font-size: 13px;
    text-decoration:none;
    font-weight: 400;
    color: rgb(62 60 60);
    letter-spacing: 1px;
    white-space: nowrap;
    transition: 0.3s;
  }

  .navbar a i,
  .navbar a:focus i {
    font-size: 12px;
    line-height: 0;
    margin-left: 5px;
  }

  .navbar a:hover,
  .navbar .active,
  .navbar .active:focus,
  .navbar li:hover>a {
    color: #3e3c3c;
  }

  .navbar .dropdown ul,
  .navbar .dropdown .dropdown ul {
    position: static;
    display: none;
    padding: 10px 0;
    margin: 0px 20px;
    transition: all 0.5s ease-in-out;
  }

  .navbar .dropdown>.dropdown-active,
  .navbar .dropdown .dropdown>.dropdown-active {
    display: block;
  }

  .mobile-nav-show {
    color: #3e3c3c;
    font-size: 28px;
    cursor: pointer;
    line-height: 0;
    transition: 0.5s;
    z-index: 9999;
    margin: 0 10px 0 10px;
  }

  .mobile-nav-hide {
    color: #fff;
    font-size: 32px;
    cursor: pointer;
    line-height: 0;
    transition: 0.5s;
    position: fixed;
    right: 20px;
    top: 20px;
    z-index: 9999;
  }

  .mobile-nav-active {
    overflow: hidden;
  }

  .mobile-nav-active .navbar {
    right: 0;
  }

  .mobile-nav-active .navbar:before {
    content: "";
    position: fixed;
    inset: 0;
    background: rgba(22, 23, 24, 0.8);
    z-index: 9996;
  }
}

/* FOOTER NORMAL */

#custom_footer {
  position: relative;
  margin-top: auto;
  background: #212934;
  width: 100%;
}
/* Footer */
#custom_footer * { font-size: 0.99em !important;}

#custom_footer .border-light { border-color: #2d343f !important;}


.glightbox-clean .gclose {
  top: 25px !important;
}


/*Habilitar si se a�0�9ade nav Catalogos*/
/*#custom_nav_bottom {*/
/*  top: 40px !important;*/
/*}*/

@supports (padding-top: env(safe-area-inset-top)) {
  body {
    padding-top: calc(40px + env(safe-area-inset-top)) !important;
  }
}



/*--------------------------------------------------------------
# Mobile Navigation FIX (Vista m��vil/tablet)
--------------------------------------------------------------*/
@media (max-width: 991.98px) {

  .g-home {
    height: calc(100vh - 100px) !important;
    min-height: 400px !important;
  }

  #custom-zay-hero-carousel .carousel-indicators li {
    margin-top: -70px;
    background-color: #bd0303;
  }

  #custom-zay-hero-carousel,
  .carousel-inner {
    width: 100%;
    height: 100%;
    position: relative;
  }

  .carousel-item {
    min-height: 100%;
    width: 100%;
    padding: 20px 0;
  }

  .carousel-item>.container>.row {
    height: 100%;
    width: 95%;
    padding: 0;
    margin: auto;
    display: flex;
    flex-direction: column;
    justify-content: space-around;
    align-items: center;
  }

  .carousel-item .col-lg-6:first-child {
    order: 1;
    height: 65%;
    width: 90%;
    padding: 10px 0;
    display: flex;
    align-items: center;
    justify-content: center;
  }

  .carousel-item .col-lg-6.mb-0.d-flex.align-items-center {
    order: 2;
    height: 35%;
    width: 90%;
    padding: 10px;
    text-align: center;
    justify-content: center;
  }

}

@media (max-width: 412px) {
  .carousel-item {
    margin-top: 80px;
  }

  .carousel-item .col-lg-6.mb-0.d-flex.align-items-center {
    order: 2;
    height: 35%;
    width: 100%;
    padding: 10px;
    text-align: center;
    justify-content: center;
  }

  .h1 {
    font-family: 'Paragon Black', sans-serif !important;
    font-size: 36px !important;
  }

  .h2 {    
    font-size: 24px !important;
  }

  #custom_footer * {
    font-size: 0.93rem !important;
  }
}

@media (min-width: 992px) {
  #main-content {
    padding-top: 100px;
    position: relative;
  }
  
  #custom-zay-hero-carousel .carousel-item {min-height: 30rem !important;}
  
  .justify-content-lg-end {
    justify-content: center !important;
  }

}

@media (min-width: 576px) {
  .custom-carousel .h1 { font-size: 1em !important;}
}


/* Evita que Swiper interfiera con el desplazamiento/zoom en el eje X */
.swiper-container,
.swiper-wrapper {
  touch-action: pan-y !important;
}

/*--------------------------------------------------------------
# Gallery Section
--------------------------------------------------------------*/
.gallery {
  background: #efefef;
  padding: 20px 0px 20px 0px;
  margin-top: 20px;
}

.gallery .gallery-item {
  position: relative;
  overflow: hidden;
  border-radius: 10px;
}

.img-fluid{
  height: auto !important;
}

.gallery .gallery-item img {
  transition: 0.3s;
}

.gallery .gallery-links {
  position: absolute;
  inset: 0;
  opacity: 0;
  transition: all ease-in-out 0.3s;
  background: rgba(0, 0, 0, 0.6);
  z-index: 3;
}

.gallery .gallery-links .preview-link,
.gallery .gallery-links .details-link {
  font-size: 20px;
  color: rgba(255, 255, 255, 0.5);
  transition: 0.3s;
  line-height: 1.2;
  margin: 30px 8px 0 8px;
}

.gallery .gallery-links .preview-link:hover,
.gallery .gallery-links .details-link:hover {
  color: #fff;
}

.gallery .gallery-links .details-link {
  font-size: 30px;
  line-height: 0;
}

.gallery .gallery-item:hover .gallery-links {
  opacity: 1;
}

.gallery .gallery-item:hover .preview-link,
.gallery .gallery-item:hover .details-link {
  margin-top: 0;
}

.gallery .gallery-item:hover img {
  transform: scale(1.1);
}

.glightbox-clean .gslide-description {
  background: #222425;
}

.glightbox-clean .gslide-title {
  color: rgba(255, 255, 255, 0.8);
  margin: 0;
}

.name-color {
  margin-top: 10px;
}


/*--------------------------------------------------
    COLORES
---------------------------------------------------*/
.gallery-item {
    position: relative;
    overflow: hidden;
    border-radius: 8px;
    box-shadow: 0 2px 8px rgba(0,0,0,0.1);
    transition: transform 0.3s ease, box-shadow 0.3s ease;
    background: white;
}

.gallery-item:hover {
    transform: translateY(-5px);
    box-shadow: 0 8px 20px rgba(0,0,0,0.15);
}

.gallery-item img {
    width: 100%;
    height: 250px;
    object-fit: cover;
}

.name-color {
    padding: 1rem;
    text-align: center;
    background: white;
}

.name-color h4 {
    font-size: 1rem;
    margin: 0;
    color: #212934;
}

.gallery-links {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0,0,0,0.7);
    opacity: 0;
    transition: opacity 0.3s ease;
}

.gallery-item:hover .gallery-links {
    opacity: 1;
}

.preview-link {
    color: white;
    font-size: 2rem;
    text-decoration: none;
}

.preview-link:hover {
    color: #198754;
}

/* Estilos para colores RAL */
.ral-color-item {
    text-align: center;
    padding: 0.5rem;
    background: white;
    border-radius: 8px;
    box-shadow: 0 2px 6px rgba(0,0,0,0.1);
    transition: transform 0.2s ease;
    cursor: pointer;
}

.ral-color-item:hover {
    transform: scale(1.05);
    box-shadow: 0 4px 12px rgba(0,0,0,0.15);
}

.ral-color-swatch {
    width: 100%;
    height: 80px;
    border-radius: 6px;
    margin-bottom: 0.5rem;
    border: 1px solid #dee2e6;
}

.ral-color-code {
    font-weight: bold;
    color: #212934;
    font-size: 0.9rem;
}

.ral-color-name {
    font-size: 0.85rem;
    color: #6c757d;
}

/* Tabs sticky */
.sticky-top {
    backdrop-filter: blur(10px);
    background-color: rgba(255, 255, 255, 0.95) !important;
}

@media (max-width: 768px) {
    .gallery-item img {
        height: 200px;
    }
    
    .sticky-top {
        top: 0 !important;
    }
}

/*--------------------------------------------------
  BOT�0�7N CONTACTO SPINNER
--------------------------------------------------*/

#contactSubmit .btn-spinner {
    display: none;
}
#contactSubmit .btn-spinner.d-none {
    display: none !important;
}
#contactSubmit .btn-text.d-none {
    display: none !important;
}

/*--------------------------------------------------
  TOASTS
--------------------------------------------------*/

.toast.bg-success {
    background-color: #198754 !important;
    border-color: #146c43 !important;
}

.toast.bg-danger {
    background-color: #dc3545 !important;
    border-color: #b02a37 !important;
}

/* Mejora visual opcional */
.toast {
    box-shadow: 0 0.5rem 1rem rgba(0,0,0,0.15) !important;
    border: 1px solid transparent !important;
}


/*--------------------------------------------------------------
# Back to top button
---------------------------------- */

/* Estilos del bot��n Volver Arriba */
#back-top {
    position: fixed;
    bottom: 30px;
    right: 30px;
    z-index: 999;
    opacity: 0;
    transition: opacity 0.3s ease;
}

#back-top a {
    display: block;
    width: 50px;
    height: 50px;
    background: #b31a1a; /* Color Primario de Bootstrap: success */
    color: white;
    border-radius: 50%;
    text-align: center;
    line-height: 50px;
    font-size: 24px;
    text-decoration: none;
    box-shadow: 0 5px 15px rgba(25, 135, 84, 0.3);
    transition: all 0.3s ease;
}

#back-top a:hover {
    background: #7f1515;
    transform: translateY(-3px);
    box-shadow: 0 8px 20px rgba(25, 135, 84, 0.4);
}

/* arrow icon (span tag) */
#back-top i {
  margin-top: 11px;
  font-size: 28px;
}
    
/* Mejoras para m��vil */
@media (max-width: 768px) {
    #back-top {
        bottom: 20px;
        right: 20px;
    }
    
    #back-top a {
        width: 45px;
        height: 45px;
        line-height: 45px;
        font-size: 20px;
    }
}

@media only screen
and (min-width : 320px)
and (max-width : 480px) {
  #back-top {
      position: fixed;
      bottom: 70px;
      right: 30px;
  }
  #back-top a {
      width: 40px;
      height: 40px;
  }
  #back-top i {
      margin-top: 7px;
      font-size: 20px;
  }
}
    
/* Animaci��n de aparici��n para elementos (usada en el footer) */
.fade-in-up {
    animation: fadeInUp 0.6s ease forwards; /* 'forwards' mantiene el estado final */
    opacity: 0; /* Aseguramos que inicie oculto */
}

@keyframes fadeInUp {
    from {
        opacity: 0;
        transform: translateY(30px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}   

/* Estilo para los botones outline-light */
.btn-outline-light:hover {
    background-color: #0d6efd;
    color: #fff;
}


/*--------------------------------------------------------------
# Preloader
--------------------------------------------------------------*/
#preloader {
  display: flex;
  position: fixed;
  inset: 0;
  width: 100%;
  height: 100vh;
  z-index: 99999;
}

#preloader:before,
#preloader:after {
  content: "";
  background-color: var(--color-secondary)  !important;
  position: absolute;
  inset: 0;
  width: 50%;
  height: 100%;
  transition: all 0.3s ease 0s;
  z-index: -1;
}

#preloader:after {
  left: auto;
  right: 0;
}

#preloader .line {
  position: relative;
  overflow: hidden;
  margin: auto;
  width: 1px;
  height: 280px;
  transition: all 0.8s ease 0s;
}

#preloader .line:before {
  content: "";
  position: absolute;
  background-color: #fff  !important;
  left: 0;
  top: 50%;
  width: 1px;
  height: 0%;
  transform: translateY(-50%);
  animation: lineincrease 1000ms ease-in-out 0s forwards;
}

#preloader .line:after {
  content: "";
  position: absolute;
  background-color: #999  !important;
  left: 0;
  top: 0;
  width: 1px;
  height: 100%;
  transform: translateY(-100%);
  animation: linemove 1200ms linear 0s infinite;
  animation-delay: 2000ms;
}

#preloader.loaded .line {
  opacity: 0;
  height: 100% !important;
}

#preloader.loaded .line:after {
  opacity: 0;
}

#preloader.loaded:before,
#preloader.loaded:after {
  animation: preloaderfinish 300ms ease-in-out 500ms forwards;
}

/* FIX COLORES PRELOADER */
#preloader .line:before {
  background-color: #ffffff !important;
  background-image: none !important;
}

#preloader .line:after {
  background-color: #999999 !important;
  background-image: none !important;
}


/* SORTEO */
.promo-popover{
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translate(-50%,-50%);
    
    width: min(580px, 90vw);
    max-height: 85vh;
    
    border-radius: 16px;
    overflow: hidden;
    z-index: 10000;
    box-shadow: 0 12px 40px rgba(0,0,0,.35);
    background-color: #0b2a35;
}

/* La imagen como elemento */
.promo-bg-img{
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    z-index: 1;
}

/* Contenedor de la imagen para dar espacio */
.promo-header-container {
    text-align: center;
    margin-bottom: 1.5rem; /* Reemplaza al mb-4 de Bootstrap si no lo usas */
    width: 100%;
}

/* La imagen propiamente dicha */
.promo-header-img {
    display: block;
    margin: 0 auto;
    max-width: 80%;      /* Evita que toque los bordes del popover */
    height: auto;        /* Mantiene la proporción original */
    max-height: 120px;   /* Ajusta este valor según el alto que quieras que ocupe */
    object-fit: contain; /* Asegura que no se deforme */
}

/* Ajuste  para móviles */
@media (max-width: 480px) {
    .promo-header-img {
        max-width: 90%;
        max-height: 100px;
    }
}

.promo-overlay{
    position: absolute;
    inset: 0;
    background: rgba(0,0,0,.45);
    z-index: 2;
}

.promo-close{
    position: absolute;
    top: 10px;
    right: 14px;
    z-index: 4;                        /* encima de todo */
    background: rgba(255,255,255,.15);
    border: 0;
    width: 38px;
    height: 38px;
    border-radius: 999px;
    color: #fff;
    font-size: 22px;
    line-height: 38px;
    cursor: pointer;
    backdrop-filter: blur(4px);
}

.promo-content{
    position: relative;
    z-index: 3;                        /* encima de imagen y overlay */
    height: 100%;
    padding: clamp(16px, 3vw, 32px);
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    text-align: center;
    gap: 14px;
}

/* Resto del CSS igual... */
.promo-title{
    color:#fff;
    font-weight: 800;
    font-size: clamp(22px, 3.2vw, 40px);
    line-height: 1.12;
    margin: 0;
    text-shadow: 0 2px 10px rgba(0,0,0,.35);
    max-width: 18ch;
}

.promo-subtitle {
    color: #fff;
    font-weight: 800;
    font-size: clamp(15px, 1.2vw, 36px);
    line-height: 1.12;
    margin: 0;
    text-shadow: 0 2px 10px rgba(0, 0, 0, .35);
    max-width: 33ch;
}
.promo-text{
    color: rgba(255,255,255,.92);
    font-size: clamp(14px, 1.7vw, 18px);
    line-height: 1.45;
    margin: 0;
    max-width: 62ch;
    text-shadow: 0 2px 10px rgba(0,0,0,.25);
}

.promo-actions{
    margin-top: 6px;
}

.promo-btn{
    display:inline-block;
    background:#f05656;
    color:#fff;
    padding: 12px 18px;
    border-radius: 10px;
    text-decoration:none;
    font-weight: 700;
    font-size: 16px;
    box-shadow: 0 10px 18px rgba(240,86,86,.35);
}
.promo-btn:hover{ filter: brightness(0.95); }

/* FIN SORTEO */

@keyframes lineincrease {
  0% {
    height: 0%;
  }

  100% {
    height: 100%;
  }
}

@keyframes linemove {
  0% {
    transform: translateY(200%);
  }

  100% {
    transform: translateY(-100%);
  }
}

@keyframes preloaderfinish {
  0% {
    width: 50%;
  }

  100% {
    width: 0%;
  }
}