.text-shadow-outline {
  text-shadow: 
    -1px -1px 0 #000,  
     1px -1px 0 #000,
    -1px  1px 0 #000,
     1px  1px 0 #000;
}

.text-shadow-outline-light {
  text-shadow: 
    -1px -1px 6px #00000031,  
     1px -1px 6px #00000031,
    -1px  1px 6px #00000031,
     1px  1px 6px #00000031;
}

.rts-btn.btn-sm, .btn-group-sm > .rts-btn.btn {
  padding: 0.5rem 0.75rem;
  font-size: 1.25rem !important;
}

.rts-btn.mw-none {
  max-width: none !important;
}

.mh-stretch {
  max-height: stretch !important;
  max-height: -webkit-fill-available !important;
}

.etapas-imagen img {
  max-height: 250px;
  object-fit: cover;
  object-position: top;
}

.text-justify {
  text-align: justify;
}

.simulador-form {
  margin: 0;
  border-radius: 10px;
}

.contact-form.simulador-form .form-inner .single-input {
  border-radius: 10px;
}

.simulador-form .rts-btn.btn-primary {
  border-radius: 10px;
}

.resultado-test-container {
  padding: 60px 0;
}

.switch-price {
  cursor: pointer;
}

.switch-price:hover {
  background-color: #fff !important;
}

.valor-icono {
  cursor: pointer;
}

.cursor-pointer {
  cursor: pointer;
}

/* SCROLL BAR */
.custom-scroll {
  scrollbar-color: var(--sb-color, #333333) transparent;
  scrollbar-width: thin;
}

.custom-scroll::-webkit-scrollbar {
  width: 8px;
  height: 8px;
}

.custom-scroll::-webkit-scrollbar-track {
  background: transparent;
}

.custom-scroll::-webkit-scrollbar-thumb {
  background-color: var(--sb-color, #333333);
  border-radius: 4px;
}

.custom-scroll::-webkit-scrollbar-thumb:hover {
  background-color: var(--sbh-color, #333333); 
}

/*Phone wrapper*/
.phone-wrapper {
  position: relative;
  width: 100%;
  max-width: 450px;
  display: block;

  .phone-frame {
    position: relative;
    width: 100%;
    height: auto;
    z-index: 2;
    pointer-events: none;
  }

  .phone-video {
    position: absolute;
    z-index: 1;
    
    top: 3.2%;      /* Distancia desde el top frame al inicio de la pantalla */
    left: 10%;     /* Distancia desde el left frame al inicio de la pantalla */
    width: 80%;     /* Ancho del área de la pantalla con relación al ancho total de la imágen */
    height: 93.6%;  /* Alto del área de la pantalla con relación al alto total de la imágen */
    
    object-fit: cover; 
    border-radius: 40px;

    pointer-events: auto; 
    cursor: pointer;
  }

  .video-btn-area {
    position: absolute;
    z-index: 3;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    display: flex;
    justify-content: center;
    align-items: center;

    .play-icon {
      position: absolute;
      top: 50%;
      left: 53%;
      transform: translate(-50%, -50%);
    }
  }
}

/* BOTONES VIVOS */
@keyframes microOscilacion {
  0%, 85%, 100% {
    transform: translate3d(0, 0, 0) rotate(0deg);
  }
  88% {
    transform: translate3d(-1px, -1px, 0) rotate(-0.5deg);
  }
  91% {
    transform: translate3d(1px, 1px, 0) rotate(0.5deg);
  }
  94% {
    transform: translate3d(-1px, 1px, 0) rotate(-0.3deg);
  }
  97% {
    transform: translate3d(1px, -1px, 0) rotate(0.3deg);
  }
}

.boton-vivo {
  display: inline-block;
  will-change: transform;
  
  /* Si JS no carga, por defecto el delay es 0s */
  animation: microOscilacion 4s ease-in-out infinite;
  animation-delay: var(--delay-aleatorio, 0s); 
}

.boton-vivo.ya-clicado {
  animation: none !important;
}

.box-shadow-none {
    box-shadow: none !important;
    transition: box-shadow 0.1s ease-in-out;
}

.social-icon-wrapper {
    display: inline-flex;
    justify-content: center;
    align-items: center;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background-color: #FFF;
    text-decoration: none;
    transition: background-color 0.3s ease;
}

.social-icon-wrapper i {
    color: var(--bs-naranja);
    font-size: 22px;
}

.social-icon-wrapper:hover {
    background-color: rgba(255, 255, 255,0.75);
}

/* NUEVO DISEÑO DE CARDS */
.joy-card {
  border: 3px solid #fff !important;
  color: #fff;
  box-shadow: 3px 7px 6px #0000008e !important;
  transition: .20s ease !important;
}

.joy-card.selected {
  box-shadow: none !important;
  transform: translate(0px, 6px) !important;
  opacity: 90%;
  border: none !important;
}

.joy-card:not(.selected):hover {
  transform: translate(2px, -6px) !important;
  box-shadow: 3px 14px 6px #0000004b !important;
}

.joy-card.naranja-logo {
  border-color: var(--bs-naranja-logo) !important;
}

.joy-card.azul-logo {
  border-color: var(--bs-azul-logo) !important;
}

.joy-card.rosa-logo {
  border-color: var(--bs-rosa-logo) !important;
}

.joy-card.border-none {
  border: none !important;
}

a.joy-card:hover {
  color: #fff;
}

.class-wrapper.one .wrapper-inner.joy-card.selected {
  background-color: color-mix(in srgb, var(--color-primary), #000000 15%);
}

.invert-svg {
  filter: invert(100%);
}

@keyframes drawMarker {
  from {
    clip-path: inset(0 100% 0 0); /* Hides everything from the right edge */
  }
  to {
    clip-path: inset(0 0 0 0); /* Fully reveals the element */
  }
}

.subrayado-1, 
.subrayado-2,
.subrayado-3 {
  position: relative;
  display: inline-block;
}

/* =========================================
   1. Subrayado tipo marcador irregular
   ========================================= */
.subrayado-1::after {
  content: '';
  position: absolute;
  left: 35%;
  bottom: -7px; /* Ajuste vertical */
  width: 65%;
  height: 12px; /* Grosor mayor para el trazo irregular */
  
  background-color: var(--bs-naranja-logo);

  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 12' preserveAspectRatio='none'%3E%3Cpath d='M0 8c3-3 8-6 15-5 7 1 12 5 19 4s11-4 18-3c7 1 12 5 19 4s11-4 18-3c7 1 11 5 11 4' stroke='black' stroke-width='3' stroke-linecap='round' stroke-linejoin='round' fill='none'/%3E%3Cpath d='M0 6c3-3 8-6 15-5 7 1 12 5 19 4s11-4 18-3c7 1 12 5 19 4s11-4 18-3c7 1 11 5 11 4' stroke='black' stroke-width='4' stroke-linecap='round' stroke-linejoin='round' fill='none'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 12' preserveAspectRatio='none'%3E%3Cpath d='M0 8c3-3 8-6 15-5 7 1 12 5 19 4s11-4 18-3c7 1 12 5 19 4s11-4 18-3c7 1 11 5 11 4' stroke='black' stroke-width='3' stroke-linecap='round' stroke-linejoin='round' fill='none'/%3E%3Cpath d='M0 6c3-3 8-6 15-5 7 1 12 5 19 4s11-4 18-3c7 1 12 5 19 4s11-4 18-3c7 1 11 5 11 4' stroke='black' stroke-width='4' stroke-linecap='round' stroke-linejoin='round' fill='none'/%3E%3C/svg%3E");

  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-size: 100% 100%;
  mask-size: 100% 100%;
  
  /* Mantener la ligera rotación para mayor naturalidad */
  transform: rotate(-1.5deg);

  animation: drawMarker 0.4s ease-out forwards;
}

/* =========================================
   2. Subrayado doble línea irregular
   ========================================= */
.subrayado-2::after {
  content: '';
  position: absolute;
  left: 0;
  bottom: -2px; /* Ajuste vertical */
  width: 100%;
  height: 6px; /* Altura del "bloque" de doble línea */

  background-color: var(--bs-rosa-logo);

  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 8' preserveAspectRatio='none'%3E%3Cpath d='M0,2 Q25,3 50,2 T100,2' stroke='%23E43374' stroke-width='1.5' fill='none' stroke-linecap='round' vector-effect='non-scaling-stroke'/%3E%3Cpath d='M0,6 Q30,5 60,6 T100,6' stroke='%23E43374' stroke-width='1.5' fill='none' stroke-linecap='round' vector-effect='non-scaling-stroke'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 8' preserveAspectRatio='none'%3E%3Cpath d='M0,2 Q25,3 50,2 T100,2' stroke='%23E43374' stroke-width='1.5' fill='none' stroke-linecap='round' vector-effect='non-scaling-stroke'/%3E%3Cpath d='M0,6 Q30,5 60,6 T100,6' stroke='%23E43374' stroke-width='1.5' fill='none' stroke-linecap='round' vector-effect='non-scaling-stroke'/%3E%3C/svg%3E");

  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-size: 100% 100%;
  mask-size: 100% 100%;
  
  /* Inclinación opuesta para mayor naturalidad */
  transform: rotate(1deg);

  animation: drawMarker 0.4s ease-out forwards;
}

/* =========================================
   3. Subrayado tipo lápiz (una línea fina)
   ========================================= */
.subrayado-3::after {
  content: '';
  position: absolute;
  left: 0;
  bottom: -20px;
  width: 100%;
  height: 8px; 
  
  background-color: #4A4A4A; 
  z-index: -1;

  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 10' preserveAspectRatio='none'%3E%3Cpath d='M0,5 Q15,7 30,4 T60,6 T100,5' stroke='black' stroke-width='1.5' fill='none' stroke-linecap='round' vector-effect='non-scaling-stroke'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 10' preserveAspectRatio='none'%3E%3Cpath d='M0,5 Q15,7 30,4 T60,6 T100,5' stroke='black' stroke-width='1.5' fill='none' stroke-linecap='round' vector-effect='non-scaling-stroke'/%3E%3C/svg%3E");
  
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-size: 100% 100%;
  mask-size: 100% 100%;

  transform: rotate(0.5deg);

  animation: drawMarker 0.4s ease-out forwards;
}

.subrayado-3.bot-5::after {
  bottom: -5px !important;
}

.category-wrapper:hover .hover-bg-azul-fuerte {
  background-color: var(--bs-azul-fuerte) !important;
  color: #FFF;
}

.hover-bg-azul-fuerte:hover {
  background-color: var(--bs-azul-fuerte) !important;
}

.category-wrapper:hover .hover-bg-azul-logo {
  background-color: var(--bs-azul-logo) !important;
  color: #000;

  img {
    filter: invert(100%);
  }
}

.hover-bg-azul-logo:hover {
  background-color: var(--bs-azul-logo) !important;
}

.category-wrapper:hover .hover-bg-rosa-claro {
  background-color: var(--bs-rosa-claro) !important;
  color: #000;

  img {
    filter: invert(100%);
  }
}

.hover-bg-rosa-claro:hover {
  background-color: var(--bs-rosa-claro) !important;

  img {
    filter: invert(100%);
  }
}

.category-wrapper:hover .hover-bg-naranja {
  background-color: var(--bs-naranja) !important;
  color: #FFF;
}

.hover-bg-naranja:hover {
  background-color: var(--bs-naranja) !important;
}

.category-wrapper:hover .hover-bg-naranja-logo {
  background-color: var(--bs-naranja-logo) !important;
  color: #000;

  img {
    filter: invert(100%);
  }
}

.hover-bg-naranja-logo:hover {
  background-color: var(--bs-naranja-logo) !important;
}

.category-wrapper:hover .hover-bg-verde-chillon {
  background-color: var(--bs-verde) !important;
  color: #000;

  img {
    filter: invert(100%);
  }
}

.hover-bg-verde-chillon:hover {
  background-color: var(--bs-verde) !important;
}

.category-wrapper:hover .hover-bg-verde {
  background-color: var(--color-primary-5) !important;
  color: #000;

  img {
    filter: invert(100%);
  }
}

.hover-bg-verde:hover {
  background-color: var(--color-primary-5) !important;
}

.bg-verde {
  background-color: var(--color-primary-5) !important;
}

.ff-visby {
  font-family: var(--bs-body-font-family) !important;
}

.superscript {
  vertical-align: super;
  font-size: 70%;
  line-height: 0;
}

.banner-bg-grid-shape {
  position: absolute;
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  background: url(../images/banner/bg-grid.png);
  background-size: cover;
  background-repeat: repeat;
  z-index: -2;
}


.pulse-animation {
  animation: pulse 1.5s ease-in-out infinite;
  transform-origin: center;
}

@keyframes pulse {
  0% {
    transform: scale(1);
  }
  50% {
    transform: scale(1.08);
  }
  100% {
    transform: scale(1);
  }
}

.header-middleline-container {
  box-sizing: border-box;
}

.header-middleline {
  line-height: 1;
}

.header-middleline::before,
.header-middleline::after {
  content: "";
  flex: 1;
  border-bottom: var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important;
  transform: translateY(1px);
}

.faqs-accordion {
  border-radius: 10px !important;
  border: none;
}

.faqs-accordion .accordion-item {
  margin-top: 10px;
  margin-bottom: 10px;
  border-radius: 10px;
  border: none;
}

.faqs-accordion .accordion-item .accordion-header {
  margin-bottom: 10px;
  border-radius: 10px;
}

.faqs-accordion .accordion-item .accordion-body {
  margin-top: 10px;
  margin-bottom: 25px;
  border-radius: 10px;
  border: 1px solid rgba(var(--bs-azul-logo-rgb), 0.95);
}

.faqs-accordion .accordion-item .accordion-button {
  margin-bottom: 10px;
  font-size: inherit !important;
  padding: 1.5rem;
  background-color: rgba(var(--bs-azul-logo-rgb), 0.55);
  color: var(--bs-dark);
}

.faqs-accordion .accordion-item .accordion-button:not(.collapsed) {
  background-color: rgba(var(--bs-azul-logo-rgb), 0.95);
  border: 1px solid var(--bs-dark);
}

.faqs-nav.nav-pills .nav-link.active, .nav-pills .show > .nav-link {
  background-color: var(--color-primary);
  color: var(--bs-dark) !important;
  border: 1px solid var(--bs-dark);
}

.faqs-nav .nav-link {
  color: var(--color-primary);
  border: 1px solid var(--color-primary);
}

.faqs-nav .nav-link:not(.active):hover, .nav-link:focus {
  color: var(--color-primary);
}

.boceto-dimensions {
  width: 50px;
}

.boceto-dimensions.fill-naranja path {
  fill: var(--bs-naranja) !important;
}

.boceto-dimensions.fill-amarillo path {
  fill: var(--bs-amarillo) !important;
}

.boceto-dimensions.fill-naranja-logo path {
  fill: var(--bs-naranja-logo) !important;
}

.boceto-dimensions.fill-azul-logo path {
  fill: var(--bs-azul-logo) !important;
}

.boceto-dimensions.fill-rosa-logo path {
  fill: var(--bs-rosa-logo) !important;
}

.text-stroke {
  -webkit-text-stroke: 1px black;
}

.class-wrapper.mane-height .wrapper-inner {
  height: 170px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}

.bg-azul-clarito-rev {
  background-color: rgba(71, 213, 223, 0.141);
}

.section-title-img {
  width: 100%;
  display: flex;
  justify-content: center;
  align-items: center;
}

.section-title-img img {
  width: 35%;
  height: auto;
  object-fit: contain;
}

.wrapper-modalidades-card {
  display: flex !important;
  flex-direction: column !important;
  justify-content: center !important;
  align-items: center !important;
}

.wrapper-mane-card {
  display: flex !important;
  flex-direction: row !important;
  justify-content: start !important;
  align-items: center !important;
}

.wrapper-mane-card .icon, .wrapper-modalidades-card .icon {
  width: 100px !important;
  height: 100% !important;
  font-size: 100px;
  margin-right: 20px !important;
  vertical-align: bottom;
}

.wrapper-mane-card .icon i, .wrapper-modalidades-card .icon i {
  vertical-align: bottom;
}

.wrapper-mane-card .title, .wrapper-modalidades-card .title {
  font-size: 45pt;
  line-height: 45pt;
}

.testimonials-wrapper-style-3 .content {
  height: 250px;
  overflow: auto;
}

.swal2-popup {
  font-size: 1.5rem !important;
}

.author-image {
  border-radius: 50%;
  overflow: hidden;
}

.author-image img {
  width: 50px;
  height: 50px;
  object-fit: cover;
}

@media(width <= 1024px) {
  .rts-footer-area .footer-one-main-wrapper .footer-single-wized.left-logo.tablet-full-width {
    flex-basis: 100% !important;
  }
  
  .rts-footer-area .container {
    padding-left: 40px;
    padding-right: 40px;
  }
}

.section-title.section-title-enhanced {
    background-color: var(--bs-rosa-logo);
    width: fit-content;
    padding: 15px 25px 15px 25px;
    border-radius: 5rem;
    margin: 0 auto;
    color: #f9f8f8;
}

/* STATIC BOB */
.static-bob {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px rgba(0, 0, 0, 0);

  -webkit-animation-name: hvr-bob-float, hvr-bob;
  animation-name: hvr-bob-float, hvr-bob;
  -webkit-animation-duration: .3s, 1.5s;
  animation-duration: .3s, 1.5s;
  -webkit-animation-delay: 0s, .3s;
  animation-delay: 0s, .3s;
  -webkit-animation-timing-function: ease-out, ease-in-out;
  animation-timing-function: ease-out, ease-in-out;
  -webkit-animation-iteration-count: 1, infinite;
  animation-iteration-count: 1, infinite;
  -webkit-animation-fill-mode: forwards;
  animation-fill-mode: forwards;
  -webkit-animation-direction: normal, alternate;
  animation-direction: normal, alternate;
}

.hvr-shadow-white:hover, .hvr-shadow-white:focus, .hvr-shadow-white:active {
  box-shadow: 0 10px 15px -7px rgb(0, 255, 255) !important
}