@charset "UTF-8";
/*-----------------------------------------------
1.   T Y P O G R A P H Y 
------------------------------------------------*/
@import url("https://fonts.googleapis.com/css?family=Open+Sans:300,400,600,700");
@font-face {
  font-family: "MontserratBlack";
  src: url("../fonts/textfonts/MontserratBlack.ttf") format("truetype");
  font-weight: normal;
  font-style: normal;
}
@font-face {
  font-family: "MontserratBlackItalic";
  src: url("../fonts/textfonts/MontserratBlackItalic.ttf") format("truetype");
  font-weight: normal;
  font-style: normal;
}
@font-face {
  font-family: "MontserratBlack";
  src: url("../fonts/textfonts/MontserratBlack.ttf") format("truetype");
  font-weight: normal;
  font-style: normal;
}
@font-face {
  font-family: "MontserratBold";
  src: url("../fonts/textfonts/MontserratBold.ttf") format("truetype");
  font-weight: normal;
  font-style: normal;
}
@font-face {
  font-family: "MontserratExtraLight";
  src: url("../fonts/textfonts/MontserratExtraLight.ttf") format("truetype");
  font-weight: normal;
  font-style: normal;
}
@font-face {
  font-family: "MontserratExtraLightItalic";
  src: url("../fonts/textfonts/MontserratExtraLightItalic.ttf") format("truetype");
  font-weight: normal;
  font-style: normal;
}
@font-face {
  font-family: "MontserratLight";
  src: url("../fonts/textfonts/MontserratLight.ttf") format("truetype");
  font-weight: normal;
  font-style: normal;
}
@font-face {
  font-family: "MontserratLightItalic";
  src: url("../fonts/textfonts/MontserratLightItalic.ttf") format("truetype");
  font-weight: normal;
  font-style: normal;
}
@font-face {
  font-family: "MontserratRegular";
  src: url("../fonts/textfonts/MontserratRegular.ttf") format("truetype");
  font-weight: normal;
  font-style: normal;
}
@font-face {
  font-family: "MontserratRegular";
  src: url("../fonts/textfonts/MontserratRegular.ttf") format("truetype");
  font-weight: normal;
  font-style: normal;
}
@font-face {
  font-family: "MontserratThin";
  src: url("../fonts/textfonts/MontserratThin.ttf") format("truetype");
  font-weight: normal;
  font-style: normal;
}
@font-face {
  font-family: "AvenirLTStdLight";
  src: url("../fonts/textfonts/AvenirLTStdLight.eot");
  src: url("../fonts/textfonts/AvenirLTStdLight.eot?#iefix") format("embedded-opentype"), url("../fonts/textfonts/AvenirLTStdLight.woff") format("woff"), url("../fonts/textfonts/AvenirLTStdLight.ttf") format("truetype"), url("../fonts/textfonts/AvenirLTStdLight.svg#AvenirLTStdLight") format("svg");
  font-weight: normal;
  font-style: normal;
}
.text-primary {
  color: #00adb5 !important;
}

.text-secundary, .text-grey__dark, .text-secondary {
  color: #23262A !important;
}

.text-light {
  color: #393E46 !important;
}

.text-white-light {
  color: rgba(255, 255, 255, 0.85);
}

.text-tertiary {
  color: #F6364F;
}

.bg-white {
  background-color: #FFFFFF !important;
}

.bg-primary {
  background-color: #00adb5 !important;
}

.bg-secundary {
  background-color: #23262A !important;
}

.bg-secundary-light-1 {
  background-color: rgb(41.9545454545, 45.5506493506, 50.3454545455);
}

.btn.lp {
  border-radius: 2rem;
  padding: 0.6rem 2rem;
  font-weight: bold;
  overflow: hidden;
  z-index: 1;
}
.btn.lp.btn-primary {
  background-color: #00adb5;
  border-color: #00adb5;
  position: relative;
  box-sizing: border-box;
  border-width: 2px;
}
.btn.lp.btn-primary:hover, .btn.lp.btn-primary:active, .btn.lp.btn-primary:active {
  background-color: #FFFFFF;
  border-color: #00adb5;
  color: #23262A;
  transition: all 0.5s ease;
}
.btn.lp.btn-primary:hover:after, .btn.lp.btn-primary:active:after, .btn.lp.btn-primary:active:after {
  left: 0.25rem;
  color: #00adb5;
}
.btn.lp.btn-primary:hover:before, .btn.lp.btn-primary:active:before, .btn.lp.btn-primary:active:before {
  left: -15%;
  width: 130%;
  z-index: -1;
}
.btn.lp.btn-primary:active {
  background-color: rgb(0, 197.3729281768, 206.5);
  border-color: rgb(0, 197.3729281768, 206.5);
}
.btn.lp.btn-primary:focus {
  box-shadow: 0 0 0 0.2rem rgba(0, 173, 181, 0.5);
}
.btn.lp.btn-primary:before {
  content: "";
  position: absolute;
  width: 0;
  background: #FFFFFF;
  height: 100%;
  top: 0;
  left: 50%;
  transform: skew(45deg, 0);
  transition: all 0.6s ease;
}
.btn.lp.btn-primary:after {
  font-family: "Font Awesome 5 Free";
  font-weight: 900;
  content: "\f138";
  position: relative;
  left: 0.75rem;
  top: 0.1rem;
  transition: all 0.4s ease;
}
.btn.lp.btn-tertiary {
  background-color: #F6364F;
  border-color: #F6364F;
  position: relative;
  box-sizing: border-box;
  border-width: 2px;
  color: #FFFFFF;
}
.btn.lp.btn-tertiary:hover, .btn.lp.btn-tertiary:active, .btn.lp.btn-tertiary:active {
  background-color: #FFFFFF;
  border-color: #F6364F;
  color: #23262A;
  transition: all 0.5s ease;
}
.btn.lp.btn-tertiary:hover:after, .btn.lp.btn-tertiary:active:after, .btn.lp.btn-tertiary:active:after {
  left: 0.25rem;
  color: #F6364F;
}
.btn.lp.btn-tertiary:hover:before, .btn.lp.btn-tertiary:active:before, .btn.lp.btn-tertiary:active:before {
  left: -15%;
  width: 130%;
  z-index: -1;
}
.btn.lp.btn-tertiary:active {
  background-color: rgb(247.0928571429, 78.4071428571, 100.3714285714);
  border-color: rgb(247.0928571429, 78.4071428571, 100.3714285714);
}
.btn.lp.btn-tertiary:focus {
  box-shadow: 0 0 0 0.2rem rgba(246, 54, 79, 0.5);
}
.btn.lp.btn-tertiary:before {
  content: "";
  position: absolute;
  width: 0;
  background: #FFFFFF;
  height: 100%;
  top: 0;
  left: 50%;
  transform: skew(45deg, 0);
  transition: all 0.6s ease;
}
.btn.lp.btn-tertiary:after {
  font-family: "Font Awesome 5 Free";
  font-weight: 900;
  content: "\f138";
  position: relative;
  left: 0.75rem;
  top: 0.1rem;
  transition: all 0.4s ease;
}

@media (max-width: 767.98px) {
  .flex-center-full {
    padding-top: 3rem;
  }
}
@media (min-width: 768px) {
  .flex-center-full {
    display: flex;
    justify-content: center;
    align-items: center;
  }
}
.swiper-container {
  width: 100%;
}

#contact-info {
  padding: 0.5rem 1rem;
  font-size: 1rem;
  letter-spacing: 0.01em;
  box-shadow: 0 2px 12px rgba(0, 173, 181, 0.08);
  background: rgba(0, 173, 181, 0.98);
}
#contact-info a {
  text-decoration: underline dotted;
}
#contact-info .fa-lg {
  opacity: 0.85;
}
#navigation-menu .nav-link-bug {
  color: rgba(255, 255, 255, 0.75) !important;
  transition: all 0.2s ease;
  font-weight: 500;
  display: flex;
  align-items: center;
}
#navigation-menu .nav-link-bug i {
  margin-right: 6px;
  opacity: 0.95;
  color: #d37381;
  font-size: 1rem;
}
#navigation-menu .nav-link-bug:hover i {
  color: #fff;
}
#navigation-menu .nav-link-bug:hover {
  color: #fff !important;
  text-shadow: 0 0 8px rgba(255, 255, 255, 0.5);
}

@media (min-width: 0) {
  section .social-network li a i {
    color: #FFFFFF;
    font-size: 1.25rem;
    padding: 0.6rem 1rem;
    opacity: 0.8;
    transition: all 0.4s ease-in-out;
  }
  section .social-network li a i:hover {
    opacity: 1;
    transform: scale(1.3) rotate(360deg);
  }
  #details-contact {
    color: #393E46;
    display: none !important;
  }
  #navigation-menu .jd-white {
    opacity: 0;
    transform: scale(0);
    transition: all 0.6s ease-in-out;
    width: 0;
  }
  #navigation-menu .navbar-toggler {
    padding: 0;
    border: none;
    line-height: 1;
    background-color: transparent;
    border-radius: 0;
    outline: 0;
  }
  #navigation-menu.stick-menu {
    transition: all 0.55s ease;
    background-color: #1f2225;
    border-bottom: 2px solid #f75b6f;
    width: 100% !important;
  }
  #navigation-menu.stick-menu .jd-white {
    width: auto;
    opacity: 1;
    transform: scale(1);
    left: 45%;
  }
  #navigation-menu .icon-menu-custom:before {
    font-family: "Font Awesome 5 Free";
    content: "\f0c9";
    font-weight: 900;
    font-size: 2rem;
    color: #FFFFFF;
    transition: all 0.4s ease;
    position: relative;
    left: 0.3rem;
  }
  #navigation-menu .icon-menu-custom.icon-close:before {
    content: "\f00d";
  }
  #navigation-menu .navbar-nav .nav-item.active {
    border-radius: 0.5rem;
  }
  #navigation-menu .navbar-nav .nav-item.active:hover .nav-link {
    background-color: #00adb5;
  }
  #navigation-menu .navbar-nav .nav-item.active .nav-link {
    background-color: rgb(0, 158.3762430939, 165.7);
  }
  #navigation-menu .navbar-nav .nav-item .nav-link {
    padding: 1rem 1.5rem;
    display: flex;
    justify-content: space-between;
    border-radius: 0.5rem;
  }
  #navigation-menu .navbar-nav .nav-item .nav-link:hover {
    color: #FFFFFF;
    background-color: rgb(58.1818181818, 63.1688311688, 69.8181818182);
  }
  #navigation-menu .navbar-nav .nav-item .nav-link:hover:after {
    transform: rotateZ(180deg);
  }
  #navigation-menu .navbar-nav .nav-item .nav-link:after {
    font-family: "Font Awesome 5 Free";
    content: "\f105";
    font-weight: 900;
    transition: all 0.4s ease;
  }
  #navigation-menu .navbar-nav .nav-item .nav-link.active {
    background-color: rgb(0, 158.3762430939, 165.7);
  }
}
@media (min-width: 768px) {
  #navigation-menu .navbar-nav .nav-item.active {
    border-radius: 1.5rem;
  }
  #navigation-menu .navbar-nav .nav-item .nav-link {
    padding: 0.2rem 1.2rem;
    border-radius: 0.72rem;
  }
  #navigation-menu .navbar-nav .nav-item .nav-link:after {
    content: "";
  }
}
.text-slide-container h1 {
  font-size: 2rem;
  line-height: 1.2;
}

.text-slide-container h2 {
  font-size: 1.5rem;
  line-height: 1.2;
}

.text-slide-container .lead {
  font-size: 1rem;
}

.hero-stack-chips span {
  font-size: 0.95rem;
  padding: 0.3rem 0.8rem;
}

@media (min-width: 992px) {
  .text-slide-container h1 {
    font-size: 3.5rem;
    line-height: 1.1;
  }
  .text-slide-container h2 {
    font-size: 2.8rem;
    line-height: 1.1;
  }
  .text-slide-container .lead {
    font-size: 1.5rem;
  }
  .hero-stack-chips span {
    font-size: 1rem;
    padding: 0.4rem 1.1rem;
  }
}
@media (max-width: 768px) {
  .hide-mobile {
    display: none !important;
  }
  #navigation-menu div.jd-white {
    display: block !important;
  }
}
.swiper-container .swiper-slide.img {
  background-size: cover;
  background-position: center center;
  text-align: center;
  top: -1px;
}
.swiper-container .swiper-slide.image1 {
  background-image: url("../images/slides/slide_boilerplate.jpg");
}
.swiper-container .swiper-slide.image2 {
  background-image: url("../images/slides/slide_pc_desktop.jpg");
}
.swiper-container .swiper-slide.img:before, .swiper-container .swiper-slide.image1:before, .swiper-container .swiper-slide.image2:before {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: -1;
  background: rgba(35, 38, 42, 0.89);
}
.swiper-container .swiper-slide.video-slide:before {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: -1;
  background: linear-gradient(135deg, rgba(35, 38, 42, 0.64) 0%, rgba(35, 38, 42, 0.85) 100%);
}
.swiper-container .swiper-slide.video-slide {
  overflow: hidden;
  background-color: #000;
}
.swiper-container .swiper-slide.video-slide .bg-video {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  z-index: -2;
}
.swiper-container .swiper-slide.video-slide:before {
  z-index: -1;
}
.swiper-container .swiper-button-prev, .swiper-container .swiper-button-next {
  width: 3rem;
  height: 3rem;
  display: flex;
  justify-content: center;
  font-size: 1.5rem;
  align-items: center;
  color: #FFFFFF;
  border-radius: 50%;
  background: rgba(35, 38, 42, 0.65);
  transition: all 0.4s ease-in-out;
  border: 2px solid rgba(0, 0, 0, 0);
  outline: 0;
}
.swiper-container .swiper-button-prev:hover, .swiper-container .swiper-button-next:hover {
  color: #00adb5;
  background: rgba(35, 38, 42, 0.85);
  border: 2px solid rgba(255, 255, 255, 0.1);
}
.swiper-container .swiper-button-prev:before {
  font-family: "Font Awesome 5 Free";
  font-weight: 900;
  content: "\f053";
}
.swiper-container .swiper-button-next:before {
  font-family: "Font Awesome 5 Free";
  font-weight: 900;
  content: "\f054";
}
.swiper-container .swiper-pagination .swiper-pagination-bullet {
  width: 1.25rem;
  height: 1.25rem;
  margin: 0 0.5rem;
  background: rgba(0, 173, 181, 0.9);
  border: 2px solid rgba(255, 255, 255, 0.2);
}

@media (min-width: 0) {
  .swiper-container .swiper-slide {
    /* 
    Font base = 13px;   450px height.
    rem= 450px / 13px = 34
    */
    height: 38rem;
  }
  .swiper-container .swiper-slide .container .text-left {
    text-align: left;
  }
}
@media (min-width: 0) and (max-width: 767.98px) {
  .swiper-container .swiper-slide .container .text-mobile-small {
    font-size: 1.75rem !important;
    line-height: 1.3;
  }
}
@media (min-width: 0) {
  .swiper-container:after {
    content: "";
    position: absolute;
    width: 120px;
    height: 52px;
    right: 1rem;
    bottom: 10px;
    display: block;
    background: url(../images/jd_firma.png) no-repeat center;
    background-size: contain;
    z-index: 999;
  }
}
@media (min-width: 1200px) {
  .swiper-container .swiper-slide {
    height: 44rem;
  }
  .hero-logo-jd {
    left: calc((100% - var(--jd-container-max-md)) / 2);
  }
}
@media (min-width: 768px) {
  .swiper-container .swiper-slide {
    height: 37.5rem;
  }
}
@media (min-width: 992px) {
  .swiper-container .swiper-slide {
    height: 37.5rem;
  }
  .swiper-container:after {
    content: "";
    position: absolute;
    width: 182px;
    height: 56px;
    bottom: 35px;
    display: block;
    background: url(../images/jd_firma.png) no-repeat center;
    background-size: contain;
    z-index: 999;
  }
}
/* === Logo flotante sobre el hero === */
#headerSlider {
  position: relative; /* necesario para posicionar elementos absolutos dentro */
}

.hero-logo-jd {
  position: absolute;
  top: 1.5rem;
  /* lo importante: lo alineamos al borde izquierdo del container */
  /* ajústalo según la altura que quieras */
  z-index: 6;
  padding: 0.35rem 0.9rem;
  border-radius: 999px;
  background: transparent;
}
.hero-logo-jd img {
  display: block;
  width: 72px;
  height: auto;
}
@media (max-width: 768px) {
  .hero-logo-jd img {
    width: 45px;
  }
}
.hero-logo-jd::before {
  content: "";
  position: absolute;
  display: block;
  width: 93px;
  height: 93px;
  /* background: red; */
  border-radius: 50%;
  border: 1.5px solid rgba(255, 255, 255, 0.32);
  transform: translate(-50%, -50%);
  top: 50%;
  left: 50%;
}
@media (max-width: 768px) {
  .hero-logo-jd::before {
    width: 60px;
    height: 60px;
  }
}

/* Ajustes en pantallas pequeñas */
@media (max-width: 768px) {
  .hero-logo-jd {
    top: 1rem;
    left: 50%;
    transform: translateX(-50%);
    padding: 0.25rem 0.7rem;
  }
}
/* ======================
   CTAs flotantes slider header
   ====================== */
/* El contenedor del slider debe ser relativo para posicionar los CTAs */
#headerSlider {
  position: relative;
}

/* Contenedor de los dos botones (desktop: pegados a la derecha, centrados verticalmente) */
.header-slider-cta {
  position: absolute;
  top: 1.75rem;
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  z-index: 5;
}

/* Botón base: pill, borde blanco, glassy */
.header-slider-cta-btn {
  border-radius: 40px;
  border: 1px solid rgba(255, 255, 255, 0.9);
  color: #ffffff;
  background: rgba(0, 0, 0, 0.18);
  padding: 0.55rem 1.4rem;
  font-size: 1.1rem;
  font-weight: 200;
  font-family: "AvenirLTStdLight";
  letter-spacing: 0.5px;
  display: inline-flex;
  align-items: center;
  height: 34px;
  justify-content: center;
  text-decoration: none;
  backdrop-filter: blur(14px);
  box-shadow: 0 16px 45px rgba(0, 0, 0, 0.55);
  transition: all 0.18s ease-out;
  white-space: nowrap;
}
@media (max-width: 575.98px) {
  .header-slider-cta-btn {
    font-size: 0.92rem;
    padding: 0.42rem 1rem;
  }
}

.header-slider-cta-btn.transparent {
  background: transparent !important;
  color: #fff !important;
  font-size: 1.18rem;
  font-weight: 600;
  letter-spacing: 0.5px;
  border: 2px solid rgba(255, 255, 255, 0.25);
  border-radius: 2rem;
  padding: 0.75rem 1.7rem;
  transition: background 0.2s, color 0.2s, border 0.2s;
}
@media (max-width: 575.98px) {
  .header-slider-cta-btn.transparent {
    font-size: 0.92rem;
    padding: 0.42rem 1rem;
  }
}
.header-slider-cta-btn.transparent:hover, .header-slider-cta-btn.transparent:focus {
  background: rgba(255, 255, 255, 0.1);
  color: #fff;
  border-color: #fff;
  text-decoration: none;
}

.hero-stack-chips {
  margin-top: 0.75rem;
  display: flex;
  justify-content: start;
  flex-wrap: wrap;
  gap: 0.4rem;
}

.hero-stack-chips span {
  padding: 0.25rem 0.7rem;
  border-radius: 999px;
  border: 1px solid rgba(255, 255, 255, 0.18);
  background: rgba(0, 0, 0, 0.25);
  font-size: 1rem;
  color: #fff;
}

.header-slider-cta-btn i {
  font-size: 0.9rem;
}

.header-slider-cta-btn:hover {
  text-decoration: none;
  color: #ffffff;
  background: rgba(255, 255, 255, 0.14);
  transform: translateY(-1px);
  box-shadow: 0 20px 55px rgba(0, 0, 0, 0.7);
}

/* Variante outline (Descargar CV): se queda casi transparente */
.header-slider-cta-outline {
  background: rgba(0, 0, 0, 0.1);
}

/* Variante primaria (Contáctame): relleno degradado pero manteniendo borde blanco */
.header-slider-cta-primary {
  background: linear-gradient(135deg, #ff3660, #dd6978);
  box-shadow: 0 18px 50px rgba(255, 54, 96, 0.55);
}

.header-slider-cta-primary:hover {
  background: linear-gradient(135deg, #ff4b73, #ff9864);
}

/* Responsivo: en tablet/móvil los traemos hacia abajo y centrados */
@media (max-width: 991.98px) {
  .header-slider-cta-btn {
    width: 100%;
    max-width: 260px;
  }
}
@media (max-width: 770px) {
  .header-slider-cta-btn {
    font-size: 0.82rem;
    padding: 0.45rem 1.1rem;
  }
  .text-slide-container {
    position: relative;
    top: 3.5rem;
  }
}
.text-slide-container {
  position: relative;
  z-index: 1;
  padding: 2.2rem 2.5rem 2rem 2.5rem;
  width: 90%;
  left: 1rem;
  top: 2.75rem;
}
@media (max-width: 767.98px) {
  .text-slide-container {
    padding: 1.1rem 1rem 1rem 1rem;
  }
}
.text-slide-container::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: rgba(28, 32, 38, 0.32);
  border-radius: 1.5rem;
  /* box-shadow: 0 8px 32px rgba(0, 0, 0, 0.18); */
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  z-index: -1;
  pointer-events: none;
  transition: background 0.3s;
  width: 72%;
}
.flip-logo-jd {
  perspective: 900px;
  cursor: pointer;
  outline: none;
  overflow: visible;
}
.flip-logo-jd .flip-inner {
  position: relative;
  width: 72px;
  height: 72px;
  transition: transform 0.7s cubic-bezier(0.4, 2, 0.3, 1);
  transform-style: preserve-3d;
  overflow: visible;
}
.flip-logo-jd .flip-front, .flip-logo-jd .flip-back {
  position: absolute;
  width: 100%;
  height: 100%;
  backface-visibility: hidden;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
}
.flip-logo-jd .flip-front img, .flip-logo-jd .flip-back img {
  object-fit: cover;
}
.flip-logo-jd .flip-back {
  overflow: hidden;
  transform: rotateY(180deg);
  background: #fff;
}
.flip-logo-jd.flipped .flip-inner {
  transform: rotateY(180deg);
}

@media (max-width: 768px) {
  .flip-logo-jd .flip-inner {
    width: 45px;
    height: 45px;
  }
}
@media (max-width: 980px) {
  .header-slider-cta {
    gap: 0.55rem;
    display: flex;
  }
}
@media (min-width: 770px) and (max-width: 980px) {
  .text-slide-container {
    top: 1rem;
  }
  .text-slide-container::before {
    content: "";
    width: 90%;
  }
}
body {
  font-family: "AvenirLTStdLight", Open Sans, sans-serif, Arial;
  background: #F6F6F6;
}

html, body {
  position: relative;
}

.numbers_bg {
  position: relative;
  overflow: hidden;
  min-height: 320px;
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.18);
}
.numbers_bg .numbers-bg-video {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  z-index: 1;
  filter: brightness(0.45) blur(0.5px) grayscale(0.08);
  pointer-events: none;
}
.numbers_bg .numbers-bg-overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: linear-gradient(120deg, rgba(20, 28, 38, 0.82) 60%, rgba(0, 0, 0, 0.55) 100%);
  z-index: 2;
  pointer-events: none;
}
.numbers_bg .counter-container {
  position: relative;
  z-index: 3;
  /* color: rgba(255, 255, 255, 0.1); */
  text-shadow: 0 2px 12px rgba(0, 0, 0, 0.78), 0 1px 0 #222;
  margin-bottom: 0;
  border: 1px solid rgba(255, 255, 255, 0.05);
}
.numbers_bg .numbers_bg .counter,
.numbers_bg .counter {
  font-weight: 300 !important;
  font-family: "Open Sans", Arial, sans-serif;
  letter-spacing: 0.01em;
}
.numbers_bg .counter-shadow {
  text-shadow: 0 4px 18px rgba(0, 0, 0, 0.45), 0 1px 0 #222;
}
.numbers_bg .counter-line {
  background-color: #00adb5;
  width: 70px;
  height: 4px;
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  opacity: 0.85;
}
.numbers_bg i {
  color: #00adb5;
  text-shadow: 0 2px 8px rgba(0, 0, 0, 0.45);
}
.numbers_bg h6, .numbers_bg .h2, .numbers_bg .display-4 {
  color: #fff !important;
}

.welcome-media {
  position: relative;
}
.welcome-media img {
  display: block;
  width: 100%;
  border-radius: 1rem;
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.18);
  transition: filter 0.4s;
}
.welcome-media::before {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: 1rem;
  background: linear-gradient(120deg, rgba(20, 28, 38, 0.58) 60%, rgba(0, 0, 0, 0.22) 100%);
  opacity: 0.55;
  pointer-events: none;
  transition: opacity 0.75s;
  z-index: 2;
}
.welcome-media:hover::before {
  opacity: 0;
}

nav#navigation-menu:before {
  content: "";
  position: absolute;
  top: -33px;
  left: 0;
  width: calc(10% - 50px);
  height: 14px;
  border-bottom-right-radius: 25px;
  z-index: -1;
  background: #293336;
  clip-path: polygon(0 0, 100% 0, 88% 36px, 100% 100%, 0 100%);
}

@media (max-width: 575.98px) {
  nav#navigation-menu:before {
    width: 70%;
    min-width: 80px;
    top: -18px;
    height: 12px;
    border-bottom-right-radius: 22px;
  }
}
/* ============================
   SECCIÓN: TECNOLOGÍAS EN LAS QUE CONFÍO
   ============================ */
.costs {
  position: relative;
  overflow: hidden;
}

/* Aseguramos que el contenido esté por encima del fondo */
.costs .container {
  position: relative;
  z-index: 2;
}

/* Título más contundente */
.costs-title {
  font-size: 2.3rem;
  font-weight: 800;
  letter-spacing: -0.03em;
}

/* Bloque interno para darle aire vertical */
.costs-inner {
  padding-top: 3.5rem;
  padding-bottom: 3.5rem;
}

/* Pastillas de tecnologías (texto) */
.tech-text-pills {
  max-width: 620px;
}

.tech-pill {
  display: inline-flex;
  align-items: center;
  padding: 0.22rem 0.7rem;
  margin: 0 0.25rem 0.35rem 0;
  border-radius: 999px;
  font-size: 0.78rem;
  font-weight: 600;
  background: rgba(15, 23, 42, 0.85);
  color: #e5e7eb;
  border: 1px solid rgba(148, 163, 184, 0.5);
}

/* GRID de logos (AWS, DO, DB, Docker, etc.) */
.tech-logo-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  gap: 0.75rem;
  max-width: 640px;
}

.tech-logo-item {
  display: flex;
  align-items: center;
  padding: 0.55rem 0.8rem;
  border-radius: 14px;
  background: rgba(15, 23, 42, 0.75);
  border: 1px solid rgba(148, 163, 184, 0.35);
  backdrop-filter: blur(6px);
}

.tech-logo-item i {
  width: 26px;
  height: 26px;
  object-fit: contain;
  margin-right: 0.5rem;
  filter: drop-shadow(0 0 6px rgba(15, 23, 42, 0.7));
}

.tech-logo-item span {
  font-size: 0.85rem;
  font-weight: 600;
  color: #e5e7eb;
}

/* ============================
   RESPONSIVE
   ============================ */
/* Desktop grande */
@media (min-width: 992px) {
  .costs-title {
    font-size: 2.5rem;
  }
}
/* Tablet / mobile */
@media (max-width: 991.98px) {
  .costs-inner {
    padding-top: 3rem;
    padding-bottom: 3rem;
  }
  .costs-title {
    font-size: 2rem;
    text-align: center;
  }
  .costs .text-white-50 {
    text-align: center;
  }
  .tech-text-pills {
    margin-left: auto;
    margin-right: auto;
    text-align: center;
  }
  .tech-logo-grid {
    margin-left: auto;
    margin-right: auto;
  }
  .tech-logo-item {
    justify-content: center;
  }
  .costs-inner .btn {
    display: inline-flex;
    justify-content: center;
    margin-left: auto;
    margin-right: auto;
  }
}
/* Mobile pequeño */
@media (max-width: 575.98px) {
  .costs-inner {
    padding-top: 2.5rem;
    padding-bottom: 2.5rem;
  }
  .tech-logo-grid {
    grid-template-columns: repeat(auto-fit, minmax(130px, 1fr));
  }
  .tech-pill {
    font-size: 0.75rem;
  }
  .tech-logo-item span {
    font-size: 0.8rem;
  }
}
.tech-stack-section {
  padding: 4rem 0;
  color: #fff;
  background: linear-gradient(to bottom, rgba(0, 0, 0, 0.55), rgba(0, 0, 0, 0.75)), url("/static/images/tu-fondo-tech.jpg") center/cover no-repeat;
}

.tech-stack-section .tech-title {
  font-size: 2.4rem;
  font-weight: 700;
  text-align: center;
  margin-bottom: 0.5rem;
}

.tech-stack-section .tech-subtitle {
  text-align: center;
  font-size: 1rem;
  opacity: 0.85;
  margin-bottom: 2.5rem;
}

.tech-icons-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
  gap: 1.75rem;
  max-width: 900px;
  margin: 20px auto;
}
.tech-icons-grid .tech-icon-item {
  background: rgba(0, 0, 0, 0.35);
  border-radius: 16px;
  padding: 1.25rem 0.75rem;
  text-align: center;
  backdrop-filter: blur(6px);
  border: 1px solid rgba(255, 255, 255, 0.08);
  transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease, background 0.2s ease;
  opacity: 0;
  transform: translateY(20px);
  transition: opacity 1.5s ease-out, transform 1.8s ease-out;
  display: flex;
  flex-direction: column;
  justify-content: space-around;
}
.tech-icons-grid .tech-icon-item.is-visible {
  opacity: 1;
  transform: translateY(0);
}
.tech-icons-grid .tech-icon-item:hover {
  transform: translateY(-4px);
  background: rgba(0, 0, 0, 0.55);
  border-color: rgba(255, 255, 255, 0.2);
  box-shadow: 0 10px 28px rgba(0, 0, 0, 0.35);
}
.tech-icons-grid .tech-icon-item i {
  font-size: 2.4rem;
  display: block;
  margin-bottom: 0.5rem;
}
.tech-icons-grid .tech-icon-item span {
  font-size: 0.95rem;
  font-weight: 500;
  letter-spacing: 0.02em;
}

/* Ajustes responsive suaves */
@media (max-width: 768px) {
  .tech-stack-section {
    padding: 3rem 0;
  }
  .tech-stack-section .tech-title {
    font-size: 2rem;
  }
  .tech-icons-grid {
    gap: 1.25rem;
  }
  .tech-icon-item i {
    font-size: 2rem;
  }
}
.costs {
  position: relative;
  overflow: hidden;
  min-height: 420px;
}
.costs .costs-bg-video {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  z-index: 1;
  filter: brightness(0.44) blur(0.5px) grayscale(0.08);
  pointer-events: none;
}
.costs .costs-bg-overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: linear-gradient(120deg, rgba(20, 28, 38, 0.42) 60%, rgba(0, 0, 0, 0.35) 100%);
  z-index: 2;
  pointer-events: none;
}
.costs .container {
  position: relative;
  z-index: 3;
}
.costs .costs-inner, .costs .tech-title, .costs .tech-subtitle, .costs .tech-icons-grid {
  color: #fff !important;
  text-shadow: 0 2px 12px rgba(0, 0, 0, 0.38), 0 1px 0 #222;
}
.costs .tech-title {
  letter-spacing: -0.03em;
  text-shadow: 0 4px 18px rgba(0, 0, 0, 0.45), 0 1px 0 #222;
}
.costs .lp-home-subtitle {
  font-family: "AvenirLTStdLight", Open Sans, sans-serif, Arial;
  font-size: 1.5rem;
  color: rgba(255, 255, 255, 0.54);
}
.costs .tech-icon-item {
  background: rgba(0, 0, 0, 0.35);
  border: 1px solid rgba(255, 255, 255, 0.08);
  backdrop-filter: blur(6px);
  color: #fff;
  text-shadow: 0 2px 8px rgba(0, 0, 0, 0.45);
}
.costs .tech-icon-item span {
  color: #fff;
  font-weight: 600;
  text-shadow: 0 2px 8px rgba(0, 0, 0, 0.45);
}

@media (min-width: 768px) and (max-width: 991.98px) {
  .welcome-section .welcome-bio-card {
    margin-bottom: 1.5rem;
  }
  .welcome-section .welcome-media-stack {
    flex-direction: row;
  }
  .welcome-section .welcome-media-stack .video-container {
    width: 70%;
  }
  .welcome-section .welcome-media-footer {
    height: 100%;
    margin-top: 0;
    width: 100%;
    flex-grow: 0;
    display: flex;
    flex-shrink: 1;
    max-height: 350px;
    margin-left: 10px;
  }
  .welcome-section .welcome-media-footer .jd-terminal-wrapper {
    margin-top: 0;
    width: 100%;
  }
  .welcome-section .container .row {
    flex-direction: column-reverse;
  }
}
@media (max-width: 767.98px) {
  .costs {
    min-height: 320px;
  }
  .costs .costs-inner {
    padding-top: 2rem;
    padding-bottom: 2rem;
  }
}
@media (max-width: 767.98px) {
  .numbers_bg {
    min-height: 220px;
    border-radius: 0;
  }
  .numbers_bg .counter-container {
    padding: 1.2rem 0.2rem;
  }
  .numbers_bg .counter-line {
    width: 45px;
  }
}
@media (max-width: 575.98px) {
  .numbers_bg {
    border-radius: 0;
  }
}
@media (min-width: 0) {
  html.html-jd {
    font-size: 13px;
  }
  section .text-area-bg-dark {
    font-size: 1.35rem;
    font-family: "AvenirLTStdLight", "Open Sans", Arial, sans-serif;
    font-weight: 300;
  }
  section .txt-title {
    text-transform: uppercase;
  }
  section#welcome .video-container {
    display: inline-block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    border-radius: 20px;
    border: 3px solid #e5efef;
  }
  section#welcome .video-container .btn-play {
    position: absolute;
    display: flex;
    text-decoration: none;
    justify-content: center;
    align-items: center;
    width: 7rem;
    height: 7rem;
    background-color: rgba(255, 255, 255, 0.8);
    border-radius: 50%;
    transform: translate(-50%, -50%);
    left: 50%;
    top: 50%;
    background-clip: padding-box;
    border: 0 solid transparent;
    transition: all 0.5s ease;
  }
  section#welcome .video-container .btn-play:hover {
    border: 10px solid rgba(255, 255, 255, 0.7);
    background-color: #00adb5;
  }
  section#welcome .video-container .btn-play:hover i {
    color: #FFFFFF;
  }
  section#welcome .video-container .btn-play i {
    font-size: 2rem;
    border: none;
    color: #00adb5;
  }
  section#welcome .video-container img {
    transition: all 1.5s ease;
  }
  section#welcome .video-container:hover img {
    transform: scale(1.15) translateX(1rem);
  }
  section#welcome .ie11 section#welcome .video-container img {
    width: 100%;
    border: 3px solid red;
  }
  section#howToHelp {
    position: relative;
  }
  section#howToHelp:before {
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    opacity: 0.5;
    background-color: #23262A;
  }
  section.numeric .numbers_bg {
    background: url("../images/sections/numbers_sm.jpg") no-repeat center center;
    background-size: cover;
    position: relative;
    padding-bottom: 2rem;
  }
  section.numeric .numbers_bg:before {
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    background-color: rgba(255, 255, 255, 0.88);
  }
  section.numeric .counter-container:hover .counter-line {
    transform: translateX(-50%) rotate(180deg);
    background-color: #F6364F;
  }
  section.numeric .counter-container .symbol {
    font-style: normal;
  }
  section.numeric .counter-container .counter-line {
    background-color: #00adb5;
    width: 100px;
    height: 4px;
    position: absolute;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
    transition: all 0.5s ease-in-out;
  }
  section.costs {
    position: relative;
  }
  section.costs:before {
    content: "";
    background-color: rgba(35, 38, 42, 0.75);
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
  }
  section.contact .addon {
    position: absolute;
    width: 2.5rem;
    bottom: 0;
    height: 2.5rem;
    left: 50%;
    transform: translateX(-50%) translateY(50%) rotate(45deg);
    background-color: #00adb5;
  }
  section.contact .container ul.list-unstyled div a {
    color: #6c757d;
  }
  section.contact .container ul.list-unstyled > li:not(.parsley-custom-error-message):not(.parsley-required) .social-icon {
    top: -19px;
    position: relative;
    background: #fff;
    padding-top: 10px;
    border-radius: 50px 50px;
  }
  section.contact .container ul.list-unstyled > li:not(.parsley-custom-error-message):not(.parsley-required) {
    border-bottom: 4px solid rgba(57, 62, 70, 0.05);
    border-radius: 8px;
    background: #fff;
    margin-bottom: 8px;
    padding-left: 1rem;
  }
  section.contact .container ul.list-unstyled > li:not(.parsley-custom-error-message):not(.parsley-required).w-45 {
    width: 100%;
  }
  section.contact .container ul.list-unstyled > li:not(.parsley-custom-error-message):not(.parsley-required):hover > i {
    transition: all 0.4s ease;
    color: #F6364F !important;
  }
  section.contact .container li.repo-container .repos a {
    width: 50%;
  }
  section.contact .container li.repo-container .repos a span {
    color: #6c757d;
  }
  section.contact .container li.repo-container .repos a:hover {
    text-decoration: none;
    cursor: pointer;
    color: #F6364F;
  }
  section.contact .container li.repo-container .repos a .repo-ico {
    font-size: 1.45em;
  }
  section.contact .container .contact-container {
    padding-top: 2rem;
    padding-bottom: 2rem;
  }
  section.contact .container .form-container {
    border-left: 0;
    padding-top: 2rem;
    padding-bottom: 2rem;
  }
  section.contact .container .form-container .form-group > label {
    font-size: 0.9rem;
  }
  section.contact .container .form-container .form-control#date {
    background: #FFFFFF;
  }
  section.contact .container .form-container .form-control#time {
    background: #FFFFFF;
  }
  section.contact .container .form-container .lbl-number {
    line-height: 16px;
  }
  section.contact .container .input-group-cita {
    cursor: pointer;
    margin-bottom: 0;
  }
  section.contact .container .picker__box {
    border: 5px solid #00adb5;
  }
  section.contact .container .picker__box .picker__header {
    position: relative;
    margin-top: 0.45em;
  }
  section.contact .container .picker__box select.picker__select--year, section.contact .container .picker__box select.picker__select--month {
    padding: 0;
    border-radius: 5px;
    height: 3rem;
    font-size: 1.5rem;
  }
  section.contact .container .picker__box .picker__nav--prev:before {
    content: " ";
    border-right: 0.75em solid #00adb5;
  }
  section.contact .container .picker__box .picker__nav--next:before {
    content: " ";
    border-left: 0.75em solid #00adb5;
  }
  section.contact .container .picker__box .picker__list {
    padding: 0.75em 0 0.75em;
  }
  section.contact .container .picker__box .picker--focused .picker__list-item--highlighted, section.contact .container .picker__box .picker__list-item--highlighted:hover, section.contact .container .picker__box .picker__list-item:hover {
    cursor: pointer;
    color: #FFFFFF;
    background: #00adb5;
  }
  section.contact .container .picker__box li.picker__list-item.picker__list-item--highlighted.picker__list-item--viewset {
    background: #00adb5;
    color: #FFFFFF;
  }
  section.contact .container .picker__box button.picker__button--clear {
    border: 1px solid #F6364F;
    border-radius: 4px;
  }
  section.contact .container .picker__box button.picker__button--clear:hover {
    background: #F6364F;
    border-color: #F6364F;
    cursor: pointer;
    color: #fff;
    outline: 0;
  }
  section.contact .container .picker__day.picker__day--infocus.picker__day--today.picker__day--selected.picker__day--highlighted {
    background: #00adb5;
  }
  section.contact .container .picker__day.picker__day--infocus.picker__day--today.picker__day--selected.picker__day--highlighted:before {
    content: " ";
    position: absolute;
    top: 2px;
    right: 2px;
    width: 0;
    height: 0;
    border-top: 0.5em solid #F6364F;
    border-left: 0.5em solid transparent;
  }
  footer .diagonal {
    position: relative;
  }
  footer .diagonal:before {
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    left: -100%;
    right: -100%;
    background-color: #00adb5;
  }
  footer .info ul {
    border-bottom: 1px solid #00adb5;
    box-shadow: 0 2px #393E46;
  }
  footer .info ul li a {
    padding: 1rem;
    color: rgba(255, 255, 255, 0.75);
    text-decoration: none;
    display: block;
  }
  footer .info ul li a:last-child {
    padding-right: 0;
  }
}
@media (min-width: 768px) {
  section.costs h2 {
    font-size: 2.5rem;
    line-height: 1.35;
  }
  section.contact .container ul.list-unstyled > li:not(.parsley-custom-error-message):not(.parsley-required).w-45 {
    width: 48%;
  }
  section.contact .container ul.list-unstyled > li:not(.parsley-custom-error-message):not(.parsley-required).w-45.sec {
    margin-left: 14px;
  }
  section.contact .container .contact-container {
    padding-right: 30px;
  }
  section.contact .container .form-container {
    border-left: 1px dashed rgba(0, 173, 181, 0.55);
    padding-left: 30px;
  }
  footer .diagonal:before {
    left: -300%;
    right: -23px;
    background-color: #00adb5;
    transform: skewX(20deg);
  }
}
@media (min-width: 992px) {
  html {
    font-size: 16px;
  }
  section#howToHelp {
    min-height: 400px;
  }
}
@media (min-width: 1200px) {
  .with-addons {
    position: relative;
    overflow: hidden;
  }
  .with-addons.add-left::before {
    content: "";
    position: absolute;
    left: 1.5rem;
    top: 0rem;
    /* transform: translateY(-50%); */
    width: 100px;
    height: 80px;
    background-image: url(../images/addons/addon_personas_trabajando.png);
    background-size: contain;
    background-repeat: no-repeat;
    opacity: 0.4;
    z-index: 0;
    pointer-events: none;
  }
  .with-addons.add-right::after {
    content: "";
    position: absolute;
    right: 1.5rem;
    top: 2.75rem;
    /* transform: translateY(-50%); */
    width: 160px;
    height: 50%;
    background-image: url(../images/addons/addon_persona_creando_ideas.png);
    background-size: contain;
    background-repeat: no-repeat;
    opacity: 0.4;
    z-index: 0;
    pointer-events: none;
    display: block;
  }
}
@media (max-width: 1200px) {
  .welcome-media img {
    object-fit: cover;
  }
}
/* ONNOFF SWITCH */
.switch {
  position: relative;
  display: inline-block;
  width: 52px;
  height: 24px;
}

/* Hide default HTML checkbox */
.switch input {
  display: none;
}

/* The slider */
.slider {
  position: absolute;
  cursor: pointer;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-color: #ccc;
  -webkit-transition: 0.4s;
  transition: 0.4s;
}

.slider:before {
  position: absolute;
  content: "";
  height: 20px;
  width: 20px;
  left: 3px;
  bottom: 2px;
  background-color: white;
  -webkit-transition: 0.4s;
  transition: 0.4s;
}

input:checked + .slider {
  background-color: rgb(0, 172, 185);
}

input:focus + .slider {
  box-shadow: 0 0 1px rgb(0, 172, 185);
}

input:checked + .slider:before {
  -webkit-transform: translateX(26px);
  -ms-transform: translateX(26px);
  transform: translateX(26px);
}

/* Rounded sliders */
.slider.round {
  border-radius: 34px;
}

.slider.round:before {
  border-radius: 50%;
}

/* TODO: / onnOff Switch */
/* ============================
   FORM CONTACTO – Card moderna
   ============================ */
.form-container .card-form-contact {
  background: #ffffff;
  border-radius: 18px;
  padding: 2.25rem 2rem;
  box-shadow: 0 18px 45px rgba(15, 23, 42, 0.1);
  border: 1px solid rgba(148, 163, 184, 0.25);
}

/* Titular del formulario */
.form-container .card-form-contact h2.font-weight-bold {
  font-size: 2rem;
  line-height: 1.4;
}

/* Labels */
.form-container .card-form-contact label {
  font-size: 0.8rem;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  font-weight: 700;
  color: #64748b;
  margin-bottom: 0.3rem;
}

/* Inputs */
.form-container .card-form-contact .form-control {
  border-radius: 999px;
  border: 1px solid #cbd5e1;
  padding: 0.55rem 0.95rem;
  font-size: 0.95rem;
  transition: border-color 0.18s ease, box-shadow 0.18s ease, background 0.18s ease;
}

/* Textarea un poco menos “píldora” */
.form-container .card-form-contact textarea.form-control {
  border-radius: 14px;
  min-height: 160px;
  resize: vertical;
}

/* Focus state */
.form-container .card-form-contact .form-control:focus {
  border-color: #0ea5e9;
  box-shadow: 0 0 0 0.14rem rgba(14, 165, 233, 0.25);
  background: #f9fafb;
}

/* Helper text */
.form-container .card-form-contact .form-text {
  font-size: 0.78rem;
  color: #94a3b8;
}

/* Separación vertical entre grupos */
.form-container .card-form-contact .form-group {
  margin-bottom: 1rem;
}

/* Botón principal */
.form-container .card-form-contact .btn-primary,
.form-container .card-form-contact .btn-danger {
  border-radius: 999px;
  padding: 0.7rem 1.9rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  font-size: 0.95rem;
}

/* Centrar el CTA */
.form-container .card-form-contact .submit-row {
  text-align: center;
}

/* ============================
   Toggle reunión inicial
   ============================ */
.meeting-toggle-wrapper {
  margin-top: 0.9rem;
  padding: 0.75rem 0.9rem;
  border-radius: 999px;
  background: #f8fafc;
  border: 1px dashed #cbd5e1;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
}

/* Switch estilo iOS simple */
.meeting-switch {
  position: relative;
  width: 44px;
  height: 24px;
}

.meeting-switch input {
  opacity: 0;
  width: 0;
  height: 0;
}

.meeting-switch .slider {
  position: absolute;
  cursor: pointer;
  inset: 0;
  background-color: #e2e8f0;
  border-radius: 999px;
  transition: background-color 0.2s ease;
}

.meeting-switch .slider::before {
  content: "";
  position: absolute;
  height: 18px;
  width: 18px;
  left: 4px;
  top: 3px;
  border-radius: 999px;
  background-color: #ffffff;
  box-shadow: 0 2px 4px rgba(15, 23, 42, 0.3);
  transition: transform 0.2s ease;
}

/* Checked */
.meeting-switch input:checked + .slider {
  background-color: #0ea5e9;
}

.meeting-switch input:checked + .slider::before {
  transform: translateX(16px);
}

/* Campo de fecha/hora cuando se activa el switch */
.meeting-datetime {
  margin-top: 0.8rem;
}

.jd-icon-reunion-container {
  position: absolute;
  height: 100%;
  display: flex;
  align-items: center;
  right: 0.5rem;
  justify-content: center;
}
.jd-icon-reunion-container .jd-icon-reunion {
  border: 1px solid transparent;
  background: none;
}

/*============================
   Responsive
============================ */
@media (max-width: 767.98px) {
  .form-container .card-form-contact {
    padding: 1.6rem 1.2rem;
  }
  .meeting-toggle-wrapper {
    flex-direction: column;
    align-items: flex-start;
  }
}
/* Tarjetas */
.wf-step {
  background: rgba(255, 255, 255, 0.7);
  backdrop-filter: blur(6px);
  padding: 25px;
  border-bottom: 1px solid #f2f2f2;
  border-radius: 12px;
  border-right: 1px solid rgba(0, 0, 0, 0.05);
  transition: all 0.25s ease;
  border-left: 1px solid rgba(0, 0, 0, 0.05);
  border-top: 1px solid rgba(0, 0, 0, 0.05);
}

/* Hover Pro */
.wf-step:hover {
  transform: translateY(-6px);
  box-shadow: 0 12px 25px rgba(0, 0, 0, 0.08);
  border-bottom: 3px solid #0cc0c4; /* tu turquesa */
}

/* ICONOS */
.wf-icon {
  background: rgba(12, 192, 196, 0.12);
  width: 60px;
  height: 60px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 12px;
  transition: 0.3s ease;
}

.wf-icon i {
  font-size: 1.5rem;
  color: #0cc0c4;
}

.wf-step:hover .wf-icon {
  background: rgba(12, 192, 196, 0.18);
}

/* Titulos y textos */
.wf-title {
  font-weight: 700;
  font-size: 1.1rem;
  margin-bottom: 5px;
}

.wf-text {
  color: #666;
  font-size: 0.95rem;
  line-height: 1.4;
}

/* Extra: Frase final */
.workflow-section small {
  color: #7a7a7a;
  font-size: 0.95rem;
}

.jd-skills-number-container {
  justify-content: space-between;
}

.video-bg-section .bg-video {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  z-index: 1;
  filter: brightness(0.55) blur(0.5px);
  pointer-events: none;
}
.video-bg-section .video-overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: linear-gradient(120deg, rgba(20, 28, 38, 0.42) 70%, rgba(0, 0, 0, 0.55) 100%);
  z-index: 2;
  pointer-events: none;
}
.video-bg-section .metrics-content {
  position: relative;
  z-index: 3;
  width: 100%;
  padding: 2.5rem 1.5rem;
  color: #fff;
  text-shadow: 0 2px 12px rgba(0, 0, 0, 0.38), 0 1px 0 #222;
}
.video-bg-section .metric-block {
  color: #fff;
  text-shadow: 0 2px 12px rgba(0, 0, 0, 0.38), 0 1px 0 #222;
  background: rgba(255, 255, 255, 0.09);
  border-radius: 1.2rem;
  padding: 1.2rem 0.5rem 1rem 0.5rem;
  margin-bottom: 1.2rem;
  height: 100%;
  /* box-shadow: 0 4px 18px rgba(255, 255, 255, 0.14); */
  transition: background 0.2s;
}
.video-bg-section .metric-block i.icon-numeros {
  color: #f75b6f;
  text-shadow: 0 2px 8px rgba(0, 0, 0, 0.45);
  font-size: 2.1rem;
  margin-bottom: 0.5rem;
}
.video-bg-section .metric-block small {
  color: #e0e0e0;
  font-weight: 500;
  text-shadow: 0 1px 8px rgba(0, 0, 0, 0.45);
}
.video-bg-section .metric-block small.text-muted {
  color: rgba(255, 255, 255, 0.78) !important;
  font-size: 1rem;
}

.video-bg-section {
  border-radius: 24px;
  overflow: hidden;
  box-shadow: 0 18px 45px rgba(15, 23, 42, 0.35);
  position: relative;
  margin-bottom: 3rem;
}

.video-bg-section .bg-video {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: grayscale(0.1) contrast(1.05) saturate(1.1);
  transform: scale(1.09);
  transition: transform 0.8s ease;
}

.video-bg-section .video-overlay {
  position: absolute;
  inset: 0;
  background: radial-gradient(circle at top left, rgba(15, 23, 42, 0.76), rgba(15, 23, 42, 0.85));
}

.video-bg-section:hover .bg-video {
  transform: scale(1.09);
}

.skill-metrics.metrics-content {
  position: relative;
  z-index: 2;
  width: 100%;
  padding: 1.5rem 1.25rem;
}

.metric-block {
  padding: 0.75rem 0.5rem;
}

.metric-block i {
  font-size: 1.5rem;
}

.metric-block .h4 {
  font-size: 1.7rem;
  font-weight: 700;
}

.metric-block small {
  display: block;
  margin-top: 0.25rem;
  font-size: 0.78rem;
  line-height: 1.4;
  color: rgba(226, 232, 240, 0.9); /* casi blanco */
}

/* Responsive */
@media (max-width: 991.98px) {
  .video-bg-section {
    margin-top: 1.5rem;
    min-height: 230px;
  }
  .skill-metrics.metrics-content {
    padding: 1rem 0;
  }
  .skill-metrics.metrics-content .skill-metrics.metrics-content {
    padding: 1rem 0;
  }
  .skill-metrics.metrics-content .metric-block i {
    font-size: 1.5rem;
  }
  .skill-metrics.metrics-content .metric-block div {
    font-size: 1.5rem;
  }
  .skill-metrics.metrics-content .metric-block small {
    line-height: 1rem;
    font-size: 0.85rem;
  }
  .skill-metrics .col-6 {
    margin-bottom: 0.75rem;
  }
}
@media (prefers-reduced-motion: reduce) {
  .video-bg-section .bg-video {
    animation: none;
  }
}
.metrics-grid {
  display: grid;
  grid-template-columns: auto;
  grid-template-rows: 1fr;
  gap: 1.5rem;
  height: 100%;
  max-height: 350px;
  width: 100%;
}
.metrics-grid .metric-block {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-height: 120px;
  /* background: rgba(0, 0, 0, 0.44); */
  border-radius: 1.2rem;
  box-shadow: 0 4px 18px rgba(0, 0, 0, 0);
  border: 1px solid rgba(255, 255, 255, 0.2);
}
.metrics-grid .metric-block:nth-child(1) {
  grid-area: 1/1/2/2;
}
.metrics-grid .metric-block:nth-child(2) {
  grid-area: 1/2/2/3;
}
.metrics-grid .metric-block:nth-child(3) {
  grid-area: 2/1/3/2;
}
.metrics-grid .metric-block:nth-child(4) {
  grid-area: 2/2/3/3;
}

@media (max-width: 767.98px) {
  .metrics-grid {
    display: grid;
    grid-template-columns: auto;
    grid-template-rows: auto;
    gap: 0.8rem;
    width: 100%;
    min-height: 260px;
    margin: 0 auto;
  }
  .metrics-grid .metric-block {
    min-height: 90px;
    aspect-ratio: 1/1;
    width: 100%;
    margin-bottom: 0;
    padding: 0.7rem 0.3rem;
    font-size: 0.98rem;
  }
}
@media (min-width: 768px) and (max-width: 991.98px) {
  .jd-section div.container {
    width: 90% !important;
    max-width: 90%;
  }
}
/* ============================
   SECCIÓN PROYECTOS REALES
   ============================ */
.projects-section {
  position: relative;
}
.projects-section .swiper-slide {
  height: auto !important;
  min-height: 1px;
}
.projects-section .projects-section {
  background: linear-gradient(180deg, #f8fafc 0%, #f1f5f9 100%);
}
.projects-section .projects-surface {
  border-radius: 24px;
  background: #ffffff;
  box-shadow: 0 18px 45px rgba(15, 23, 42, 0.12);
}
.projects-section {
  /* Cabecera */
}
.projects-section .projects-title {
  font-weight: 800;
  letter-spacing: -0.03em;
  color: #0f172a;
}
.projects-section .projects-subtitle {
  font-size: 0.98rem;
  color: #64748b;
}
.projects-section {
  /* Grid de proyectos */
}
.projects-section .project-grid {
  margin-top: 0.5rem;
}
.projects-section {
  /* Card base */
}
.projects-section .project-card {
  border-radius: 18px;
  transition: transform 0.18s ease, box-shadow 0.18s ease;
}
.projects-section .project-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 20px 50px rgba(15, 23, 42, 0.16);
}
.projects-section {
  /* Texto dentro de cada card */
}
.projects-section .project-title {
  font-size: 1.15rem;
  font-weight: 700;
  color: #0f172a;
}
.projects-section .card-title-descripcion {
  font-size: 1rem;
  font-weight: 700;
  margin-top: 0.5rem;
  margin-bottom: 0.5rem;
  text-decoration: underline;
}
.projects-section .project-meta {
  font-size: 1rem;
}
.projects-section .project-points {
  font-size: 1.05rem;
  color: #334155;
  margin-bottom: 0;
}
.projects-section .project-points li + li {
  margin-top: 0.2rem;
}
.projects-section .badges-container {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  align-items: center;
  justify-content: flex-start;
}
.projects-section {
  /* Badges de tecnologías */
}
.projects-section .badge-tech {
  font-size: 1rem;
  font-weight: 600;
  border-radius: 999px;
  padding: 0.25rem 0.6rem;
  background: #e0f2fe;
  color: #0369a1;
}
.projects-section .actions-project-container {
  flex-direction: row;
}
@media (max-width: 568px) {
  .projects-section .actions-project-container {
    flex-direction: column;
    gap: 0.5rem;
    align-items: inherit !important;
  }
}
.projects-section {
  /* Botón "Ver capturas" */
}
.projects-section .project-gallery-trigger {
  font-size: 1rem;
  border-radius: 999px;
}
.projects-section .project-gallery-trigger i {
  font-size: 0.9rem;
}
.projects-section .project-gallery-disabled {
  opacity: 0.5;
  cursor: not-allowed;
}
.projects-section {
  /* Texto de aviso al final */
}
.projects-section .projects-surface .small.text-muted {
  font-size: 0.78rem;
}
.projects-section button.project-gallery-trigger {
  font-size: 1rem;
  border-radius: 0.72rem;
}
.projects-section a.btn-addtext-to-form-opc1 {
  font-size: 1rem;
  border-radius: 0.72rem;
}

/* ============================
   MODAL + CARRUSEL DE CAPTURAS
   ============================ */
/* Ajuste general del modal */
#projectGalleryModal .modal-content {
  border-radius: 16px;
  overflow: hidden;
}

#projectGalleryModal .modal-header {
  border-bottom: 1px solid #e2e8f0;
  align-items: center;
}

#projectGalleryModal .modal-title {
  font-weight: 600;
  color: #0f172a;
}

/* Imagen dentro del carrusel */
.project-gallery-img {
  max-height: 70vh;
  object-fit: contain;
  background: #020617;
}

/* Indicadores un poco más visibles */
#projectGalleryCarousel .carousel-indicators li {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background-color: rgba(148, 163, 184, 0.8);
}

#projectGalleryCarousel .carousel-indicators .active {
  background-color: #0ea5e9;
}

/* ==========================================================================
   NUEVO: Estilos para la descripción de la imagen en la galería
   ========================================================================== */
/* 1. Contenedor de la imagen */
/* Asegura que el panel de descripción se posicione correctamente dentro de la imagen */
.project-image-wrapper {
  position: relative;
  overflow: hidden; /* Oculta el panel cuando está fuera de la vista */
  border-radius: 8px; /* Opcional: suaviza los bordes de la imagen */
}

/* 2. Panel de descripción (el cambio principal está aquí) */
.image-description-panel {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  background: rgba(13, 15, 20, 0.9); /* Fondo sólido oscuro y traslúcido */
  backdrop-filter: blur(8px); /* Efecto "glass" para un look premium */
  -webkit-backdrop-filter: blur(8px);
  color: #f1f5f9; /* Un blanco más suave que el blanco puro */
  padding: 1.25rem 1.5rem;
  /* Estado inicial: oculto y desplazado hacia abajo */
  transform: translateY(100%);
  opacity: 0;
  transition: transform 0.35s cubic-bezier(0.25, 0.8, 0.25, 1), opacity 0.35s ease;
  pointer-events: none; /* No interactuable cuando está oculto */
}

/* 3. Estado visible del panel */
.image-description-panel.is-visible {
  transform: translateY(0);
  opacity: 1;
  pointer-events: auto;
  border-top: 5px solid #00adb5;
  border-top-right-radius: 0;
  border-top-left-radius: 0;
  border-bottom-left-radius: 12px;
  border-bottom-right-radius: 12px;
}

/* 4. Párrafo dentro del panel */
.image-description-panel p {
  font-size: 1.25rem;
  line-height: 1.6;
  margin: 0;
}
@media (max-width: 567.98px) {
  .image-description-panel p {
    font-size: 1rem;
  }
}

/* 5. Botón de información */
.btn-image-info {
  position: absolute;
  top: 1rem;
  right: 1rem;
  z-index: 999;
  width: 38px;
  height: 38px;
  border-radius: 50%;
  border: 2px solid rgba(255, 255, 255, 0.9);
  backdrop-filter: blur(5px);
  -webkit-backdrop-filter: blur(5px);
  color: white;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: all 0.3s ease;
  background: #F6364F;
  /* Contenedor para los iconos para poder animarlos */
}
.btn-image-info .icon-container {
  position: relative;
  width: 1em;
  height: 1em;
  transition: transform 0.4s cubic-bezier(0.68, -0.55, 0.27, 1.55);
}
.btn-image-info i {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  transition: opacity 0.3s ease;
  font-size: 1rem;
}
.btn-image-info .fa-times {
  opacity: 0;
}

/* 6. Estado activo del botón */
.btn-image-info.active {
  background: var(--jd-primary);
  border-color: var(--jd-primary);
}
.btn-image-info.active .icon-container {
  transform: rotate(270deg); /* Gira el contenedor */
}
.btn-image-info.active .fa-info-circle {
  opacity: 0;
}
.btn-image-info.active .fa-times {
  opacity: 1;
}

.btn-image-info:hover:not(.active) {
  transform: scale(1.1);
  background: rgba(13, 15, 20, 0.8);
}

#projectGalleryModal {
  /* Imagen dentro del carrusel */
}
#projectGalleryModal .project-gallery-img {
  border-radius: 8px;
  max-height: 75vh;
  object-fit: contain;
}

/* === INICIO: AJUSTE DE POSICIÓN DE INDICADORES === */
/* Reposiciona toda la lista de indicadores para evitar que el panel de descripción los tape */
#projectGalleryModal .carousel-control-next, #projectGalleryModal .carousel-control-prev {
  width: 40px;
  height: 40px;
  top: 50%;
  background: rgba(1, 1, 1, 0.85);
  z-index: 9999;
  transform: translateY(-50%);
  border-radius: 50px;
}
#projectGalleryModal .carousel-indicators {
  top: 1rem; /* Sube los indicadores desde su posición por defecto */
  transition: bottom 0.35s ease; /* Anima el cambio de posición */
  margin-right: 6%;
  margin-left: 6%;
}

/* === FIN: AJUSTE DE POSICIÓN DE INDICADORES === */
.carousel-inner {
  border: 3px solid #6b787a;
  border-radius: 10px;
  background: #000000;
}

/* ============================
   NUEVO: Estilos para el video dentro del carrusel
   ============================ */
/* Imagen dentro del carrusel */
.project-gallery-img {
  border-radius: 8px;
  max-height: 75vh;
  object-fit: contain;
}

/* NUEVO: Estilos para el video dentro del carrusel */
.project-gallery-video {
  border-radius: 8px;
  max-height: 75vh;
  background-color: #000; /* Fondo negro por si el video no carga */
}

#projectGalleryModal .modal-title {
  line-height: 1.2;
}

/* NUEVO: Estilo para el icono de tipo de medio en el header del modal */
#projectGalleryMediaIcon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background-color: rgba(0, 173, 181, 0.15);
  color: #00adb5;
  padding: 4px 8px;
  border-radius: 12px;
  font-weight: 600;
  line-height: 1;
  vertical-align: middle;
  width: 30px;
  height: 30px;
}
#projectGalleryMediaIcon i {
  font-size: 22px;
}

/* ============================
   RESPONSIVE
   ============================ */
/* Desktop / pantallas grandes */
@media (min-width: 992px) {
  .projects-title {
    font-size: 3.5rem;
  }
  .projects-subtitle {
    font-size: 1.25rem;
  }
  .project-title {
    font-size: 1.45rem;
  }
  .project-points {
    font-size: 1rem;
  }
}
/* Mobile pequeño (≤ 575.98px) */
@media (max-width: 575.98px) {
  .project-points {
    font-size: 0.85rem;
  }
  .projects-surface {
    padding: 1.5rem 1rem;
  }
  .projects-title {
    font-size: 1.6rem;
  }
  .projects-surface .small.text-muted {
    font-size: 0.72rem;
  }
  .projects-slider .project-grid > .col-12.col-md-6 {
    width: 100%;
    max-width: 100%;
    flex: 0 0 100%;
  }
}
@media (max-width: 767.98px) {
  .project-grid {
    display: flex;
    flex-wrap: wrap;
  }
  .project-grid > .col-12.col-md-6 {
    width: 50%;
    max-width: 50%;
    flex: 0 0 50%;
  }
}
/* Tablet y mobile (≤ 991.98px) */
@media (max-width: 991.98px) {
  .projects-surface {
    padding: 1.8rem 1.3rem;
  }
  .projects-subtitle {
    font-size: 0.9rem;
  }
  .project-title {
    font-size: 1.03rem;
  }
  .project-meta {
    font-size: 0.9rem;
  }
  .project-points {
    font-size: 0.88rem;
  }
  .project-grid .col-12.col-md-6 {
    margin-bottom: 1rem;
  }
}
/* Controles del carrusel de proyectos */
.projects-slider {
  position: relative;
  padding-bottom: 2.5rem; /* espacio para la paginación */
}

.projects-section {
  /* Flechas del carrusel de proyectos más hacia los extremos */
}
.projects-section .projects-prev,
.projects-section .projects-next {
  color: #0f172a;
  width: 30px;
  height: 30px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.9);
  box-shadow: 0 6px 18px rgba(15, 23, 42, 0.18);
  top: 50%;
  transform: translateY(-50%);
}
.projects-section {
  /* Moverlas hacia fuera del contenido */
}
.projects-section .projects-prev {
  left: 0; /* prueba -20, -24 o -28 si quieres más fuera */
}
.projects-section .projects-next {
  right: 0; /* idem: ajusta si quieres más separación */
}
.projects-section {
  /* Íconos centrados dentro del botón */
}
.projects-section .projects-prev::after,
.projects-section .projects-next::after {
  font-size: 0.9rem;
}
.projects-section .projects-pagination {
  margin-top: 1rem;
}
.projects-section {
  /* En móviles ocultamos flechas y dejamos solo bullets */
}
@media (max-width: 575.98px) {
  .projects-section .projects-prev,
  .projects-section .projects-next {
    display: none;
  }
}
.projects-section {
  /* Botón "Ver capturas" – estilo profesional */
}
.projects-section .project-gallery-trigger {
  font-size: 0.8rem;
  border-radius: 999px;
  background: #f8fafc;
  border: 1px solid #F6364F;
  color: #0f172a;
  box-shadow: none;
  transition: all 0.6s ease;
}
.projects-section {
  /* Hover / focus: ligero realce azul, sin sombras rojas */
}
.projects-section .project-gallery-trigger:hover,
.projects-section .project-gallery-trigger:focus {
  background: #F6364F;
  border-color: #F6364F;
  color: #EEEEEE;
  box-shadow: 0 0 0 0.15rem rgba(56, 189, 248, 0.25);
  outline: none;
}
.projects-section {
  /* Estado disabled (cuando no hay imágenes) */
}
.projects-section .project-gallery-trigger.project-gallery-disabled,
.projects-section .project-gallery-trigger:disabled {
  background: #f1f5f9;
  border-color: #cbd5e1;
  color: #94a3b8;
  box-shadow: none;
  cursor: not-allowed;
}

/* ===========================
   SKILLS – Mejora tipografía desktop
   ============================ */
/* Un poco más de respiro general */
#skills.skills-section .skills-surface {
  border-radius: 18px;
}

/* TITULAR Y RESUMEN (solo escritorio grande) */
@media (min-width: 992px) {
  #skills .skills-surface h2 {
    font-size: 2.6rem; /* antes display-4, pero lo reforzamos */
    line-height: 1.15;
    margin-bottom: 1rem;
  }
  #skills .skills-surface .lead {
    font-size: 1.1rem;
    line-height: 1.7;
  }
  /* Columna de texto un poco más ancha para que respire */
  #skills .skills-surface .col-lg-7 {
    max-width: 60%;
  }
}
/* Botones de filtros un poco más grandes y legibles */
#skills .skill-filters .btn {
  font-size: 0.85rem;
  padding: 0.4rem 0.9rem;
  border-radius: 999px;
  margin-top: 0.5rem;
}

@media (min-width: 1200px) {
  #skills .skill-filters .btn {
    font-size: 0.9rem;
    padding: 0.45rem 1.1rem;
    margin-top: 0.5rem;
    margin-bottom: 0.5rem;
    border-color: #0e979f;
  }
}
/* ===========================
   CARDS DE SKILLS
   ============================ */
#skills .skill-grid .card {
  border-radius: 14px;
}

#skills .skill-grid .card-body {
  padding: 1.4rem 1.1rem;
}

/* Iconos + títulos más grandes en desktop */
@media (min-width: 992px) {
  #skills .skill-grid .card-body i {
    font-size: 2.4rem; /* antes 2x */
    margin-bottom: 0.75rem;
  }
  #skills .skill-grid .card-body h6 {
    font-size: 1rem;
    margin-bottom: 0.35rem;
  }
  #skills .skill-grid .card-body small {
    font-size: 0.9rem;
    line-height: 1.5;
    display: block;
  }
}
/* Hover suave para dar sensación “premium” */
#skills .skill-grid .card {
  transition: transform 0.18s ease, box-shadow 0.18s ease;
}

#skills .skill-grid .card:hover {
  transform: translateY(-4px);
  box-shadow: 0 14px 30px rgba(0, 0, 0, 0.1);
}

.tech-icons-grid .tech-icon-item .zoho-crm-skill {
  background-image: url("../images/skills/zoho-skill.png");
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
  display: block;
  width: 100%;
  height: 55px;
}

/* ===========================
   BADGES RESUMEN (línea inferior)
   ============================ */
#skills .skill-badges .badge {
  font-size: 0.8rem;
  padding: 0.4rem 0.65rem;
  border-radius: 999px;
}

@media (min-width: 992px) {
  #skills .skill-badges .badge {
    font-size: 0.85rem;
    padding: 0.45rem 0.8rem;
  }
}
/* Un poco de espacio extra respecto a las cards */
#skills .skill-badges {
  margin-top: 0.75rem;
}

/* ===========================
   Ajustes para pantallas pequeñas
   (no agrandar demasiado)
   ============================ */
@media (max-width: 575.98px) {
  #skills .skills-surface .lead {
    font-size: 0.95rem;
  }
  #skills .skill-grid .card-body i {
    font-size: 2rem;
  }
  #skills .skill-grid .card-body h6 {
    font-size: 0.95rem;
  }
  #skills .skill-grid .card-body small {
    font-size: 0.8rem;
  }
}
/* ===========================
   SKILLS – Bloque resumen (arriba)
   ============================ */
.skills-summary {
  background: rgba(255, 255, 255, 0.85);
  border-radius: 0;
  padding: 1.1rem 1.4rem;
  border-left: 2px solid #00adb5;
  box-shadow: 0 10px 25px rgba(15, 23, 42, 0.06);
  font-size: 0.98rem;
  line-height: 1.7;
}

/* En desktop subimos un poco el tamaño */
@media (min-width: 992px) {
  .skills-summary {
    font-size: 1.05rem;
    padding: 1.2rem 1.6rem;
  }
}
/* Labels (Frontend:, Backend:, etc) alineados y más marcados */
.skills-summary strong {
  display: inline-block;
  min-width: 8.2rem; /* ajusta si quieres más ancho */
  font-weight: 700;
}

/* Para que no se vea tan “corridito” en screens grandes */
@media (min-width: 1200px) {
  .skills-summary strong {
    min-width: 8.8rem;
  }
}
/* ===========================
   SKILLS – Texto de las tarjetas
   ============================ */
/* Base */
#skills .skill-grid .card-body small {
  display: block;
  font-size: 0.85rem;
  line-height: 1.5;
}

/* Desktop: un poquito más grande */
@media (min-width: 992px) {
  #skills .skill-grid .card-body small {
    font-size: 0.95rem; /* súbelo a 1rem si lo quieres aún más grande */
  }
}
/* Mobile muy pequeño: sin exagerar para que no se rompa */
@media (max-width: 575.98px) {
  #skills .skill-grid .card-body small {
    font-size: 0.82rem;
  }
}
@media (min-width: 992px) {
  #skills .skill-grid .card-body small {
    font-size: 1rem;
  }
}
/* ========== TERMINAL WELCOME JD ========== */
.jd-terminal-wrapper {
  margin-top: 1.5rem;
  border-radius: 18px;
  background: linear-gradient(145deg, rgba(10, 15, 25, 0.96), rgba(15, 20, 35, 0.98));
  box-shadow: 0 18px 35px rgba(0, 0, 0, 0.35);
  overflow: hidden;
  color: #e6edf3;
  font-family: "Fira Code", "JetBrains Mono", Menlo, Consolas, monospace;
  /* 🔑 CONFIRMAR: Esta línea permite animar todos los cambios */
  transition: all 0.3s ease-in-out;
  height: 180px; /* altura base desktop */
  /* “Ventana” mac */
}
.jd-terminal-wrapper .jd-terminal-mac {
  display: flex;
  flex-direction: column;
  height: 100%;
  /* 🔑 AÑADIR/MODIFICAR ESTA LÍNEA para animar la altura */
  transition: height 0.3s ease-in-out;
  /* Cabecera estilo Mac */
}
.jd-terminal-wrapper .jd-terminal-mac .jd-terminal-header {
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  padding: 6px 10px;
  background: linear-gradient(180deg, #2b3038, #20242c);
  border-bottom: 1px solid rgba(255, 255, 255, 0.05);
  font-size: 11px;
  letter-spacing: 0.03em;
  color: #9fa6b8;
}
.jd-terminal-wrapper .jd-terminal-mac .jd-terminal-header .jd-terminal-buttons {
  display: flex;
  align-items: center;
  gap: 6px;
}

.jd-term-btn {
  width: 11px;
  height: 11px;
  border-radius: 50%;
  border: none;
  padding: 0;
  cursor: pointer;
  box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.3);
  transition: transform 0.12s ease, box-shadow 0.12s ease, opacity 0.15s;
}

.jd-term-btn-close {
  background: #ff5f57;
}

.jd-term-btn-min {
  background: #febc2e;
}

.jd-term-btn-max {
  background: #28c840;
}

.jd-term-btn:hover {
  transform: translateY(-0.5px);
  box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.55);
}

.jd-terminal-title {
  text-align: center;
  font-size: 11px;
  opacity: 0.85;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.jd-terminal-drag {
  justify-self: end;
  width: 30px;
  height: 12px;
  border-radius: 999px;
  background: radial-gradient(circle at 30% 30%, rgba(255, 255, 255, 0.12), transparent 55%);
  opacity: 0.3;
}

/* Área de contenido (con scroll) */
.jd-terminal-body {
  flex: 1;
  padding: 10px 14px;
  font-size: 12px;
  line-height: 1.5;
  color: #d8dee9;
  background: radial-gradient(circle at 0 0, rgba(95, 167, 255, 0.1), transparent 60%), radial-gradient(circle at 100% 100%, rgba(255, 94, 148, 0.13), transparent 55%), #171b22;
  overflow-y: auto;
  scrollbar-width: thin;
  scrollbar-color: #3b4252 transparent;
}

/* Scrollbar (WebKit) */
.jd-terminal-body::-webkit-scrollbar {
  width: 6px;
}

.jd-terminal-body::-webkit-scrollbar-track {
  background: transparent;
}

.jd-terminal-body::-webkit-scrollbar-thumb {
  background: #3b4252;
  border-radius: 999px;
}

/* Líneas de la terminal */
.jd-terminal-line {
  white-space: pre-wrap;
  word-break: break-word;
}

/* prompt tipo terminal */
.jd-term-prompt {
  color: #7ee787; /* verde suave estilo GitHub Codespaces */
  margin-right: 4px;
}

/* caret animado */
.jd-term-caret {
  display: inline-block;
  margin-left: 1px;
  color: #e5e9f0;
  animation: jd-terminal-caret-blink 1s steps(1, end) infinite;
}

@keyframes jd-terminal-caret-blink {
  0%, 50% {
    opacity: 1;
  }
  50.01%, 100% {
    opacity: 0;
  }
}
/* Link “repo” dentro de la terminal */
.jd-term-link {
  color: #9cdcff;
  text-decoration: none;
  border-bottom: 1px dashed rgba(156, 220, 255, 0.6);
  padding-bottom: 1px;
}

.jd-term-link:hover {
  color: #e6f7ff;
  border-bottom-style: solid;
}

/* Estado minimizado: solo se ve la cabecera */
.jd-terminal-wrapper.jd-terminal-minimized {
  width: 300px; /* Ancho más pequeño */
  height: auto;
  bottom: 20px;
  right: 20px;
  z-index: 100;
  transition: width 0.5s cubic-bezier(0.4, 0, 0.2, 1), box-shadow 0.3s, border-radius 0.3s;
  height: 32px; /* Solo queda visible la altura de la cabecera */
  /* Opcional: Ocultar el cuerpo y mantener solo la cabecera */
}
.jd-terminal-wrapper.jd-terminal-minimized .jd-terminal-mac {
  overflow: hidden;
}

.jd-term-btn-min {
  cursor: pointer;
  transition: box-shadow 0.15s, transform 0.15s;
}

.jd-term-btn-min:active {
  box-shadow: 0 0 0 2px #febc2e;
  transform: scale(0.92);
}

.jd-terminal-line {
  /* ... otras propiedades ... */
  white-space: pre-wrap; /* Mantiene el formato (espacios) y permite que la línea salte */
}

/* CSS Adicional para que se vea como link de terminal */
.jd-terminal-line .jd-terminal-link {
  color: #12bac3; /* Color verde brillante para destacar */
  text-decoration: underline;
  cursor: pointer;
  white-space: pre-wrap; /* Mantiene la pre-formato (padEnd) */
}

/* Opcional: efecto al pasar el ratón */
.jd-terminal-line .jd-terminal-link:hover {
  color: #ffffff;
}

.jd-terminal-body .jd-terminal-line {
  /* Estilo para el número del repositorio */
}
.jd-terminal-body .jd-terminal-line .jd-repo-number {
  color: #f27474;
  font-weight: bold;
}

/* Estado “max”: un poco más alto, simulando agrandar ventana */
.jd-terminal-wrapper.jd-terminal-max {
  height: 280px;
}
/* Animación de titileo */
@keyframes term-blink {
  0%, 100% {
    opacity: 1;
  }
  50% {
    opacity: 0;
  }
}
/* Aplicar la animación al cursor en pausa */
.jd-term-caret-blinking {
  animation: term-blink 1s step-end infinite;
}

/* Asegúrate de que el cursor ▌ normal no titile si no está en pausa */
.jd-term-caret {
  /* Mantiene el color y fuente */
  display: inline-block;
  width: 1ch;
  /* ... */
}

@keyframes term-blink {
  0%, 100% {
    opacity: 1;
  }
  50% {
    opacity: 0;
  }
}
.jd-term-caret-blinking {
  animation: term-blink 1s step-end infinite;
}

/* Responsive tweaks */
@media (max-width: 991px) {
  .jd-terminal-wrapper {
    height: 160px;
  }
  .jd-terminal-wrapper .jd-terminal-mac {
    height: 100%;
  }
  .jd-terminal-title {
    font-size: 10px;
  }
}
@media (max-width: 768px) {
  .jd-terminal-wrapper.jd-terminal-max {
    height: 230px;
  }
  .jd-terminal-body {
    font-size: 11px;
    padding: 8px 10px;
  }
}
@media (max-width: 576px) {
  .jd-terminal-mac {
    height: 140px;
  }
  .jd-terminal-wrapper.jd-terminal-max .jd-terminal-mac {
    height: 190px;
  }
}
.jd-tooltip-wrapper {
  display: inline-flex;
  align-items: center;
}
.jd-tooltip-wrapper.jd-tooltip-absolute {
  position: absolute;
}
.jd-tooltip-wrapper.jd-tooltip-relative {
  position: relative;
}
.jd-tooltip-wrapper.bottom--2-5-rem {
  bottom: -2.5rem;
}
.jd-tooltip-wrapper.top-1-rem {
  top: 1rem;
}
.jd-tooltip-wrapper.right-0-75-rem {
  right: 0.75rem;
}

/* ------------------ BOTÓN TRIGGER ------------------ */
/* ------------------ BOTÓN TRIGGER (DISEÑO MEJORADO) ------------------ */
.jd-tooltip-trigger {
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
  color: #f0f4f8;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  border: 1px solid rgba(255, 255, 255, 0.15);
  cursor: pointer;
  font-size: 14px;
  font-weight: 600;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.25s cubic-bezier(0.16, 1, 0.3, 1);
}
.jd-tooltip-trigger.small-icon {
  width: 22px;
  height: 22px;
  font-size: 12px;
}
.jd-tooltip-trigger.jd-tooltip-grey {
  background: rgba(45, 55, 72, 0.6);
}
.jd-tooltip-trigger.jd-tooltip-red {
  background: #F6364F;
}
.jd-tooltip-trigger:hover {
  transform: scale(1.15);
  background: rgba(30, 41, 59, 0.85);
  border-color: rgba(255, 255, 255, 0.3);
  box-shadow: 0 4px 15px rgba(0, 0, 0, 0.2);
}

/* ------------------ PANEL (ANIMACIÓN MEJORADA) ------------------ */
.jd-tooltip-panel {
  position: fixed;
  z-index: 99999;
  min-width: 260px;
  max-width: 310px;
  background: #0d0f14;
  color: #d9e1e8;
  border-radius: 8px;
  box-shadow: 0 12px 40px rgba(0, 0, 0, 0.45);
  padding: 12px 20px;
  border: 1px solid rgba(148, 163, 184, 0.35);
  /* Estado inicial: invisible y sin interacción */
  visibility: hidden;
  opacity: 0;
  pointer-events: none;
  /* Estado inicial para animación: más alejado y escalado */
  transform: translateY(12px) scale(0.95);
  /* Animación más suave y con una curva de desaceleración elegante */
  transition: opacity 0.7s cubic-bezier(0.16, 1, 0.7, 1), transform 0.7s cubic-bezier(0.16, 1, 0.3, 1), visibility 0s linear 0.7s;
}

/* CUANDO ESTÁ VISIBLE */
.jd-tooltip-visible {
  visibility: visible;
  opacity: 1;
  pointer-events: auto;
  /* Llega suave */
  transform: translateY(0) scale(1);
  /* Eliminar retardo de visibilidad */
  transition-delay: 0s;
}

/* ------------------ HEADER ------------------ */
.jd-tooltip-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 8px;
  border-bottom: 1px dashed rgba(255, 255, 255, 0.2);
}
.jd-tooltip-header .jd-tooltip-title {
  font-weight: bold;
  font-size: 16px;
}
.jd-tooltip-header .jd-tooltip-close {
  background: transparent;
  border: none;
  color: #78e0f8;
  cursor: pointer;
  font-size: 16px;
  font-weight: bold;
  top: -0.5rem;
  position: relative;
}
.jd-tooltip-header .jd-tooltip-close:hover {
  color: #9df3ff;
  transform: scale(1.2);
  transition: transform 0.38s cubic-bezier(0.16, 1, 0.3, 1);
}

/* ------------------ BODY ------------------ */
.jd-tooltip-body {
  line-height: 1.5;
  font-size: 13px;
  font-family: "Open Sans";
  font-weight: 300;
}

/* ------------------ FOOTER ------------------ */
.jd-tooltip-footer {
  margin-top: 10px;
  font-size: 13px;
  color: #9ba7b4;
}

/* ------------------ FLECHA ------------------ */
/* AUTO-POSICIÓN DESDE JS */
.jd-pos-top .jd-tooltip-arrow {
  bottom: -6px;
  left: calc(50% - 6px);
}

.jd-pos-bottom .jd-tooltip-arrow {
  top: -6px;
  left: calc(50% - 6px);
}

.jd-pos-left .jd-tooltip-arrow {
  right: -6px;
  top: calc(50% - 6px);
}

.jd-pos-right .jd-tooltip-arrow {
  left: -6px;
  top: calc(50% - 6px);
}

/* Flecha general */
.jd-tooltip-arrow {
  position: absolute;
  width: 0;
  height: 0;
}

/* 🔽 Flecha cuando el tooltip está encima del botón (arrow abajo) */
.jd-tooltip-panel.jd-pos-top .jd-tooltip-arrow {
  bottom: -8px;
  left: 20px;
  border-left: 8px solid transparent;
  border-right: 8px solid transparent;
  /* cuerpo real de la flecha */
  border-top: 8px solid #0d0f14;
  /* borde */
}

/* 🔼 Flecha cuando el tooltip está debajo del botón (arrow arriba) */
.jd-tooltip-panel.jd-pos-bottom .jd-tooltip-arrow {
  top: -8px;
  left: 20px;
  border-left: 8px solid transparent;
  border-right: 8px solid transparent;
  border-bottom: 8px solid #0d0f14;
}

/* ◀ Flecha izquierda */
.jd-tooltip-panel.jd-pos-right .jd-tooltip-arrow {
  left: -8px;
  top: 20px;
  border-top: 8px solid transparent;
  border-bottom: 8px solid transparent;
  border-left: 8px solid #0d0f14;
}

/* ▶ Flecha derecha */
.jd-tooltip-panel.jd-pos-left .jd-tooltip-arrow {
  right: -8px;
  top: 20px;
  border-top: 8px solid transparent;
  border-bottom: 8px solid transparent;
  border-right: 8px solid #0d0f14;
}

/* Ajustes para cada orientación */
.jd-pos-bottom .jd-tooltip-arrow {
  top: -6px;
}

.jd-pos-top .jd-tooltip-arrow {
  bottom: -6px;
}

.jd-pos-left .jd-tooltip-arrow {
  right: -6px;
}

.jd-pos-right .jd-tooltip-arrow {
  left: -6px;
}

/* ============================
   COMPONENTE ACORDEÓN REUTILIZABLE
   ============================ */
.jd-accordion-section.dark .projects-surface {
  padding: 0;
}
.jd-accordion-section.dark .container > div {
  padding: 0;
}
.jd-accordion-section.dark .jd-accordion-header {
  border-bottom: 1px solid rgba(0, 0, 0, 0.08);
  height: 0;
  padding-bottom: 0;
  margin-bottom: 0;
}
.jd-accordion-section.dark .jd-accordion-header .jd-acordion-btn-container {
  top: 0;
  z-index: 999;
}
.jd-accordion-section.dark .jd-accordion-header .jd-acordion-btn-container .jd-accordion-toggle {
  height: 32px;
  background: #343a40;
  color: #ffffff;
  top: -2.15rem;
  right: 2.75rem;
}
.jd-accordion-section.dark .jd-accordion-header .jd-acordion-btn-container .jd-accordion-toggle span {
  height: inherit;
  line-height: 32px;
}

.jd-accordion-toggle {
  font-size: 0.9rem;
  font-weight: 600;
  color: #4b5563;
  background: #f1f5f9;
  border: 1px solid #e2e8f0;
  border-radius: 999px;
  padding: 0.4rem 1rem;
  transition: background 0.2s ease, color 0.2s ease;
}
.jd-accordion-toggle:hover {
  background: #e2e8f0;
  color: #0f172a;
}
.jd-accordion-toggle i {
  transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

.jd-accordion-body {
  display: grid;
  grid-template-rows: 1fr; /* Para animar la altura desde 'auto' */
  transition: grid-template-rows 0.5s cubic-bezier(0.4, 0, 0.2, 1);
  /* El hijo directo debe tener overflow hidden */
}
.jd-accordion-body > .jd-accordion-content-wrapper {
  overflow: hidden;
}

.jd-acordion-title-section {
  position: relative;
}
.jd-acordion-title-section::before {
  content: "";
  position: absolute;
  border-top-right-radius: 3px;
  border-top-left-radius: 1px;
  left: -20px;
  border: 0px solid transparent;
  display: block;
  border-color: transparent;
  width: 5px;
  height: 100%;
  background: #00adb5;
  transition: all 1.5s ease-in-out;
  opacity: 1;
  pointer-events: none;
}
.jd-acordion-title-section::after {
  content: "...";
  padding-left: 0;
  color: transparent;
  transition: all 1.5s ease-in-out;
}

/* --- ESTADO CONTRAÍDO --- */
.jd-accordion-section.is-collapsed .jd-acordion-title-section::before {
  content: "";
  pointer-events: auto;
  background: #F6364F;
}
.jd-accordion-section.is-collapsed .jd-acordion-title-section::after {
  content: "...";
  padding-left: 1rem;
  color: #F6364F;
  transition: all 1.5s ease-in-out;
}
.jd-accordion-section.is-collapsed .jd-accordion-body {
  grid-template-rows: 0fr; /* La magia para animar la altura a 0 */
}
.jd-accordion-section.is-collapsed .jd-accordion-toggle i {
  transform: rotate(180deg); /* La flecha apunta hacia arriba */
}

/* Botón base */
.jd-accordion-toggle {
  display: inline-flex;
  align-items: center;
  padding: 10px 18px;
  border-radius: 999px;
  font-weight: 600;
  background: rgba(255, 255, 255, 0.15);
  backdrop-filter: blur(8px);
  border: 1px solid rgba(255, 255, 255, 0.25);
  color: #333;
  cursor: pointer;
  transition: all 0.25s ease;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05);
}

/* Hover moderno */
.jd-accordion-toggle:hover {
  background: rgba(255, 255, 255, 0.3);
  box-shadow: 0 6px 14px rgba(0, 0, 0, 0.15);
  transform: translateY(-1px);
}

/* Texto */
.jd-acc-label {
  margin-right: 8px;
  font-size: 0.95rem;
}

/* SVG */
.jd-acc-arrow {
  transition: transform 0.3s ease;
  color: #00adb5; /* turquesa consistente con tu paleta */
  transform: rotate(180deg);
  width: 25px;
  height: 25px;
}

/* Cuando el acordeón está colapsado (rota la flecha) */
.jd-accordion-toggle.active .jd-acc-arrow {
  transform: rotate(0deg);
}

.jd-accordion-body.collapsed {
  max-height: 0;
  overflow: hidden;
  opacity: 0;
}

@media (max-width: 991px) {
  .jd-accordion-header > .row {
    flex-wrap: nowrap;
  }
}
h1.introjs-tooltip-title {
  font-family: "AvenirLTStdLight", Open Sans, sans-serif, Arial;
  width: 100%;
  display: block;
  font-size: 1.2rem;
  margin-bottom: 0.75rem;
  text-align: center;
}

.introjs-tooltip-header {
  display: flex;
  flex-direction: column;
}

.introjs-tooltip .introjs-tooltiptext {
  font-family: "AvenirLTStdLight", Open Sans, sans-serif, Arial;
}

.introjs-tooltiptext {
  padding: 0 0 !important;
}

.introjs-tooltip-header {
  position: relative;
  padding-left: 0 !important;
  padding-right: 0 !important;
  padding-top: 10px;
  min-height: 1.5em;
}

.introjs-skipbutton {
  /* display: inline-block; */
  position: relative !important;
  width: 90px !important;
  height: 33px !important;
  font-weight: 100 !important;
  color: white !important;
  background: #ff4b73;
  text-align: center;
  right: inherit !important;
  display: flex !important;
  align-items: center;
  top: 0.5rem !important;
  justify-content: center;
  align-self: baseline;
  margin-bottom: 12px !important;
  text-shadow: none !important;
}

.introjs-button, .introjs-skipbutton {
  border-radius: 40px !important;
  padding: 7px 18px !important;
  font-size: 14px !important;
  transition: all 0.25s ease !important;
  border: none !important;
  text-shadow: none !important;
}

.introjs-button.introjs-donebutton,
.introjs-button.introjs-nextbutton {
  background: #00adb5 !important;
  color: #fff !important;
}

.introjs-button.introjs-nextbutton:hover,
.introjs-button.introjs-donebutton:hover {
  background: #01959c !important;
}

.introjs-button.introjs-prevbutton,
.introjs-button.introjs-skipbutton {
  background: #df6576 !important;
  color: #fff !important;
}

.introjs-button.introjs-prevbutton:hover,
.introjs-button.introjs-skipbutton:hover {
  background: #c14a5f !important;
}

:root {
  --jd-container-max: 1120px;
  --jd-container-max-md: 960px;
  --jd-container-max-992: 90%;
  --jd-container-max-min: 100%;
}

.jd-accordion-section .jd-accordion-header .row {
  flex-direction: column-reverse;
}
.jd-accordion-section .jd-accordion-body {
  margin-top: 1rem;
}
.jd-accordion-section .container > div {
  padding: 0 1.5rem 1.5rem;
}
.jd-accordion-section .jd-accordion-toggle {
  position: relative;
  padding: 0.25rem 1rem;
}

.introjs-tooltip {
  padding: 0.7rem 1.5rem;
}

/* Mobile First Media Queries (min-width) */
@media (min-width: 320px) {
  .jd-accordion-section .jd-accordion-toggle {
    position: relative;
    border-radius: 18px;
    padding: 5px 14px;
    border: 2px solid #028d95;
    right: calc((100% - var(--jd-container-min)) / 2);
  }
  .jd-section h2 {
    font-size: 1.75rem;
  }
  .jd-section.with-dots-square-blue-right::after {
    width: 35px;
    height: 35px;
  }
  .jd-section.with-dots-square-left::before {
    width: 35px;
    height: 35px;
  }
  .jd-section h6 {
    font: 1rem;
  }
  .swiper-container .header-slider-cta {
    width: auto;
    flex-direction: row;
    left: 50%;
    transform: translateX(-50%);
    top: inherit;
    bottom: 3.75rem;
  }
  .swiper-container .text-slide-container::before {
    width: 100%;
  }
  .skills-section .jd-accordion-header .jd-acordion-btn-container {
    text-align: end;
  }
}
@media (min-width: 480px) {
  .jd-section.with-dots-square-blue-right::after {
    width: 35px;
    height: 35px;
  }
  .jd-section.with-dots-square-left::before {
    width: 35px;
    height: 35px;
  }
}
@media (min-width: 576px) {
  .jd-accordion-section .jd-accordion-body {
    margin-top: 0;
  }
}
@media (min-width: 600px) {
  .jd-section h2 {
    font-size: 2.25rem;
  }
}
@media (min-width: 768px) {
  .jd-accordion-section .jd-accordion-header .jd-acordion-btn-container {
    position: relative;
  }
  .jd-accordion-section .jd-accordion-header .row {
    flex-direction: row;
  }
  .jd-accordion-section .container > div {
    padding: 3rem 3rem 3rem;
  }
  .jd-section.with-dots-square-blue-right::after {
    width: 45px;
    height: 45px;
  }
  .jd-section.with-dots-square-left::before {
    width: 45px;
    height: 45px;
  }
  .swiper-container .hero-logo-jd {
    left: calc((100% - var(--jd-container-max-992)) / 2);
  }
  .swiper-container:after {
    right: calc((100% - var(--jd-container-max-992)) / 2);
  }
  .swiper-container .text-slide-container::before {
    width: 95%;
  }
}
@media (min-width: 992px) {
  .jd-section h2 {
    font-size: 2.75rem;
  }
  .jd-section.with-dots-square-blue-right::after {
    width: 55px;
    height: 55px;
  }
  .jd-section.with-dots-square-left::before {
    width: 55px;
    height: 55px;
  }
  .swiper-container .hero-logo-jd {
    /* lo importante: lo alineamos al borde izquierdo del container */
    left: calc((100% - var(--jd-container-max-md)) / 2);
  }
  .swiper-container:after {
    right: calc((100% - var(--jd-container-max-md)) / 2);
  }
  .swiper-container .header-slider-cta {
    right: calc((100% - var(--jd-container-max-md)) / 2);
    flex-direction: column;
    left: inherit;
    transform: translateX(0);
    top: 1.5rem;
    bottom: inherit;
  }
  .swiper-container .text-slide-container::before {
    width: 75%;
  }
}
@media (min-width: 1200px) {
  .jd-section.with-dots-square-blue-right::after {
    width: 70px;
    height: 70px;
  }
  .jd-section.with-dots-square-left::before {
    width: 70px;
    height: 70px;
  }
  .swiper-container .hero-logo-jd {
    /* lo importante: lo alineamos al borde izquierdo del container */
    left: calc((100% - var(--jd-container-max)) / 2);
  }
  .swiper-container:after {
    right: calc((100% - var(--jd-container-max)) / 2);
  }
  .swiper-container .header-slider-cta {
    right: calc((100% - var(--jd-container-max)) / 2);
  }
}
/* Desktop First Media Queries (max-width) */
/* El orden correcto es de mayor a menor para max-width */
@media (max-width: 568px) {
  .workflow-section .workflow-steps > div .wf-step {
    padding: 1rem 0 0 1rem;
  }
}
/* ===========================
   SECCIÓN WELCOME / BIO JD
   =========================== */
.welcome-section {
  position: relative;
  overflow: hidden;
}

.addon-bg-degradado {
  position: absolute;
  inset: 0;
  background: radial-gradient(circle at top left, rgba(0, 173, 181, 0.12) 0, transparent 55%), radial-gradient(circle at bottom right, rgba(246, 54, 79, 0.13) 0, transparent 60%);
  pointer-events: none;
  z-index: 0;
}

.with-dots-square-left::before {
  content: "";
  position: absolute;
  background-image: url(/static/images/addons/dots-square-blue.svg);
  background-repeat: no-repeat;
  background-size: cover;
  opacity: 1;
  display: block;
  width: 100px;
  height: 100px;
  bottom: 24px;
  left: 1.25rem;
}

.with-dots-square-blue-right::after {
  content: "";
  position: absolute;
  background-image: url(/static/images/addons/dots-square.svg);
  background-repeat: no-repeat;
  background-size: cover;
  opacity: 1;
  display: block;
  transform: translateY(50%);
  top: 0%;
  right: 0;
}

.welcome-section .container {
  position: relative;
  z-index: 1;
}

/* Columna izquierda mejorada */
.welcome-media {
  border-radius: 1.5rem;
  overflow: hidden;
  box-shadow: 0 18px 40px rgba(0, 0, 0, 0.35);
  position: relative;
}

.welcome-media img {
  display: block;
  width: 100%;
  height: 100%;
}

/* Botón play adaptado */
.btn-play-welcome {
  width: 70px;
  height: 70px;
  border-radius: 50%;
  background: rgba(0, 0, 0, 0.6);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  box-shadow: 0 15px 35px rgba(0, 0, 0, 0.6);
  transition: transform 0.2s ease, box-shadow 0.2s ease, background 0.2s ease;
}

.btn-play-welcome i {
  font-size: 1.6rem;
}

.btn-play-welcome:hover {
  text-decoration: none;
  transform: translate(-50%, -50%) scale(1.03);
  background: #00838a;
  box-shadow: 0 20px 45px rgba(0, 0, 0, 0.75);
}

/* Label superior del video */
.welcome-media-label {
  position: absolute;
  left: 1.25rem;
  bottom: 1.1rem;
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  color: #fff;
  font-size: 0.82rem;
  text-shadow: 0 2px 8px rgba(0, 0, 0, 0.75);
}

/* Tarjeta bio derecha */
.welcome-bio-card {
  background: rgba(255, 255, 255, 0.96);
  border-radius: 1.5rem;
  padding: 1.8rem 1.9rem 1.7rem;
  box-shadow: 0 18px 45px rgba(15, 23, 42, 0.18);
  border: 1px solid rgba(226, 232, 240, 0.9);
  position: relative;
  overflow: hidden;
  justify-content: space-between;
  display: flex;
  flex-direction: column;
}
.welcome-bio-card .lp-titulo-home {
  font-size: 1.25rem;
}
.welcome-bio-card .welcome-list .lp-parrafo-home {
  font-size: 1rem;
}
.welcome-bio-card .lp-parrafo-home {
  font-size: 1rem;
}
.welcome-bio-card .lp-skills-home {
  font-size: 0.9rem;
}

.welcome-bio-card::before {
  content: "";
  position: absolute;
  width: 220px;
  height: 220px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(0, 173, 181, 0.13), transparent 65%);
  top: -80px;
  right: -80px;
  pointer-events: none;
}

.welcome-bio-card::after {
  content: "";
  position: absolute;
  width: 260px;
  height: 260px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(246, 54, 79, 0.1), transparent 70%);
  bottom: -120px;
  left: -90px;
  pointer-events: none;
}

/* Contenido por encima de las shapes */
.welcome-bio-card > * {
  position: relative;
  z-index: 1;
}

/* Pill superior */
.welcome-pill {
  display: inline-flex;
  align-items: center;
  padding: 0.25rem 0.85rem;
  border-radius: 999px;
  background: #fff;
  border: 1px solid rgba(0, 173, 181, 0.45);
  font-size: 0.78rem;
  font-weight: 600;
  color: #00838a;
  letter-spacing: 0.03em;
  text-transform: uppercase;
}

/* Títulos */
.welcome-title {
  font-size: 2.1rem;
  font-weight: 800;
  letter-spacing: -0.03em;
  color: #23262A;
}

.welcome-subtitle {
  font-size: 0.98rem;
  color: #6b7280;
}

/* Meta info */
.welcome-meta {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0.35rem;
  margin-bottom: 0.75rem;
}

.welcome-meta-item {
  display: flex;
  align-items: flex-start;
  font-size: 0.9rem;
  color: #4b5563;
}

.welcome-meta-item i {
  color: #00adb5;
  margin-right: 0.45rem;
  margin-top: 0.1rem;
}

/* Texto principal */
.welcome-body {
  font-size: 0.95rem;
  color: #374151;
}

/* Bloque diferencial Zoho/WozTell */
.welcome-highlight {
  background: #f3f4f6;
  border-radius: 0;
  padding: 0.9rem 1rem;
  border-left: 2px solid #00adb5;
}

.welcome-highlight .welcome-list {
  padding-left: 1.1rem;
  color: #4b5563;
  text-align: left;
}

.welcome-highlight .welcome-list li + li {
  margin-top: 0.2rem;
}

/* CTA row */
.welcome-cta-row {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  margin-top: 1rem;
}

/* Chips finales */
.welcome-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  font-size: 0.78rem;
}

.welcome-tags span {
  padding: 0.25rem 0.7rem;
  border-radius: 999px;
  background: #f3f4f6;
  color: #4b5563;
}

.welcome-media-footer {
  position: relative;
}

/* Que las columnas grandes se estiren a la misma altura */
.welcome-section .row.align-items-stretch > [class*=col-lg].d-flex {
  align-items: stretch;
}

/* Contenedor vertical para video + franja */
.welcome-media-stack {
  display: flex;
  flex-direction: column;
  justify-content: space-between; /* vídeo arriba, franja abajo */
  width: 100%;
  height: 100%;
}

/* El vídeo ocupa la parte superior (crece lo que pueda) */
.welcome-media {
  flex: 1 1 auto;
}

/* Contenedor vertical para vídeo grande + franja */
.welcome-media-stack {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  width: 100%;
  height: 100%;
}

/* El vídeo rellena la franja */
.welcome-footer-video {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover; /* rellena sin deformar */
}

/* =======================
     RESPONSIVE WELCOME
     ======================= */
/* Ajustes responsive para que no se vea exagerado en móvil */
@media (max-width: 991.98px) {
  .welcome-bio-card {
    margin-top: 0.5rem;
  }
  .welcome-title {
    font-size: 1.7rem;
    text-align: left;
  }
  .welcome-subtitle,
  .welcome-body {
    text-align: left;
  }
  .welcome-media-stack {
    height: auto;
    justify-content: flex-start; /* apila normal */
  }
  .welcome-media-footer {
    height: auto;
    margin-top: 0.7rem;
  }
  /* En tablet/móvil, que la columna se comporte normal */
  .welcome-section .row.align-items-stretch > [class*=col-].d-flex {
    display: block;
  }
}
@media (max-width: 767.98px) {
  .welcome-section {
    padding-top: 2.5rem;
  }
  .welcome-bio-card {
    padding: 1.4rem 1.3rem 1.4rem;
    border-radius: 1.2rem;
  }
  .welcome-title {
    font-size: 1.55rem;
  }
  .welcome-meta {
    gap: 0.25rem;
  }
  .btn-play-welcome {
    width: 60px;
    height: 60px;
  }
  .welcome-media-label {
    left: 0.8rem;
    right: 0.8rem;
  }
  .welcome-media-footer {
    height: auto;
    border-radius: 1rem;
    padding: 0;
    flex-direction: column;
    align-items: flex-start;
  }
  .welcome-media-footer .footer-item {
    white-space: normal;
  }
}
@media (max-width: 540px) {
  .projects-section {
    margin-bottom: 1rem;
  }
  /* Aquí van SOLO los estilos para móviles */
  .with-dots-square-left::before {
    width: 50px;
    height: 50px;
    bottom: -1.75rem;
    left: 1.25rem;
  }
  .with-dots-square-blue-right::after {
    width: 50px;
    transform: translateY(50%);
    height: 50px;
    top: -2.75rem;
    right: 1rem;
  }
}

/*# sourceMappingURL=data:application/json;charset=utf-8,%7B%22version%22:3,%22sourceRoot%22:%22%22,%22sources%22:%5B%22scss/_vars.scss%22,%22scss/_typography.scss%22,%22scss/_commons.scss%22,%22scss/_libs.scss%22,%22scss/_header.scss%22,%22scss/_slides.scss%22,%22scss/_homePage.scss%22,%22scss/_contactJDForm.scss%22,%22scss/_metodologia_trabajo.scss%22,%22scss/_videos_slide_container.scss%22,%22scss/_projects_section.scss%22,%22scss/_skills_habilidades_tech.scss%22,%22scss/lib/_terminal_landing.scss%22,%22scss/components/tooltip/_jd_tooltip.scss%22,%22scss/components/acordion/_jd_acordion.scss%22,%22scss/lib/_introJS.scss%22,%22scss/_responsive_elements.scss%22,%22scss/addons/_addons_home.scss%22%5D,%22names%22:%5B%5D,%22mappings%22:%22;AA6BA;AAAA;AAAA;AC5BQ;AAMR;EACI;EACA;EACA;EACA;;AAIJ;EACI;EACA;EACA;EACA;;AAIJ;EACI;EACA;EACA;EACA;;AAIJ;EACI;EACA;EACA;EACA;;AAIJ;EACI;EACA;EACA;EACA;;AAIJ;EACI;EACA;EACA;EACA;;AAIJ;EACI;EACA;EACA;EACA;;AAIJ;EACI;EACA;EACA;EACA;;AAIJ;EACI;EACA;EACA;EACA;;AAIJ;EACI;EACA;EACA;EACA;;AAIJ;EACI;EACA;EACA;EACA;;AAMJ;EACI;EACA;EACA;EAIA;EACA;;ACnGJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI,OFDQ;;;AEMZ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAEJ;EACI;;;AAMJ;EACI;EACA;EACA;EACA;EACA;;AAEA;EACI,kBF1CE;EE2CF,cF3CE;EE4CF;EACA;EACA;;AAEA;EACI,kBFhCJ;EEiCI,cFlDF;EEmDE,OFhDA;EEiDA;;AAEA;EACI;EACA,OFxDN;;AE4DE;EACI;EACA;EACA;;AAGR;EACI;EACA;;AAEJ;EACI;;AAIJ;EACI;EACA;EACA;EACA,YF9DJ;EE+DI;EACA;EACA;EACA;EACA;;AAIJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;;AAIR;EACI,kBF9FG;EE+FH,cF/FG;EEgGH;EACA;EACA;EACA,OFxFA;;AE0FA;EACI,kBF3FJ;EE4FI,cFvGD;EEwGC,OF3GA;EE4GA;;AAEA;EACI;EACA,OF7GL;;AEiHC;EACI;EACA;EACA;;AAGR;EACI;EACA;;AAEJ;EACI;;AAIJ;EACI;EACA;EACA;EACA,YFzHJ;EE0HI;EACA;EACA;EACA;EACA;;AAIJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;;;AAOZ;EACI;IACI;;;AAGR;EACE;IACE;IACA;IACA;;;AC/KJ;EACI;;;ACDJ;EACI;EACA;EACA;EACA;EACA;;AACA;EAAI;;AACJ;EAAS;;AAkBT;EACI;EACA;EACA;EACA;EACA;;AAEA;EACI;EACA;EACA;EACC;;AAID;EACI;;AAFR;EAII;EACA;;;AAYZ;EAEI;IACI,OJrCA;IIsCA;IACA;IACA;IACA;;EAEA;IACI;IACA;;EAKR;IACI,OJ7DK;II8DL;;EAOA;IACI;IACA;IACA;IACA;;EAIJ;IACI;IACA;IACA;IACA;IACA;IACA;;EAIJ;IACI;IACA;IAEA;IACA;;EAGA;IACI;IACA;IACA;IACA;;EAMJ;IACI;IACA;IACA;IACA;IACA,OJpGR;IIqGQ;IACA;IACA;;EAMA;IACI;;EASJ;IACI;;EAEI;IACI,kBJ5IlB;;EI+IU;IACI;;EAKR;IACI;IACA;IACA;IACA;;EAEA;IACI,OJ3IhB;II4IgB;;EAEA;IACI;;EAGR;IACI;IACA;IACA;IACA;;EAGJ;IACI;;;AAUxB;EAQgB;IACI;;EAGJ;IACI;IACA;;EACA;IACI;;;AAUxB;EACE;EACA;;;AAEF;EACE;EACA;;;AAEF;EACE;;;AAEF;EACE;EACA;;;AAIF;EACE;IACE;IACA;;EAEF;IACE;IACA;;EAEF;IACE;;EAEF;IACE;IACA;;;AAKJ;EACI;IACI;;EAIA;IAEI;;;AC7PJ;EACI;EACA;EACA;EACA;;AAEJ;EACI,kBACA;;AAEJ;EACI,kBACA;;AAKJ;EAGI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAIJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EAEA;;AAGJ;EACI;EACA;;AAGA;EACI;EACA;EACA;EACA;EACA;EACA;EACA;;AAIJ;EACI;;AAMZ;EACI;EACA;EACA;EACA;EACA;EACA;EACA,OLtDA;EKuDA;EACA;EACA;EACA;EACA;;AAEA;EACI,OL/EF;EKgFE;EACA;;AAGR;EACI;EACA;EACA;;AAGJ;EACI;EACA;EACA;;AAKA;EACI;EACA;EACA;EACA;EACA;;;AAMZ;EAGQ;AACI;AAAA;AAAA;AAAA;IAIA;;EAMI;IACI;;;AAGJ;EACA;IACI;IACA;;;AArBpB;EA2BQ;IACI;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;;;AAOZ;EAGQ;IACI;;EAGR;IACI;;;AAIR;EAGQ;IACI;;;AAQZ;EAGQ;IACI;;EAEJ;IACI;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;;;AAaZ;AACA;EACI;;;AAIJ;EACI;EACA;AAED;AAEC;EACA;EACA;EACA;EACA;;AAKA;EACI;EACA;EACA;;AAEA;EALJ;IAMQ;;;AAIR;EACI;EACA;EACA;EACA;EACA;AACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EAbJ;IAcQ;IACA;;;;AAQZ;AACA;EACI;IACI;IACA;IACA;IACA;;;AAmBR;AAAA;AAAA;AAIA;AACA;EACI;;;AAGJ;AACA;EACI;EACA;EACA;EACA;EACA;EACA;;;AAIJ;AACA;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAEA;;AAEA;EArBJ;IAsBQ;IACA;;;;AAOJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAGA;;AAEA;EAbJ;IAcQ;IACA;;;AAEJ;EACI;EACA;EACA;EACA;;;AAKZ;EACI;EACA;EACA;EACA;EACA;;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;;;AAIJ;EACI;;;AAGJ;EACI;EACA;EACA;EACA;EACA;;;AAGJ;AACA;EACI;;;AAGJ;AACA;EACI;EACA;;;AAGJ;EACI;;;AAGJ;AACA;EASI;IACI;IACA;;;AAIR;EAUI;IACI;IACA;;EAGJ;IACI;IACA;;;AAIR;EACI;EACA;EACA;EACA;EACA;EACA;;AAEA;EARJ;IASQ;;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAUR;EACE;EACA;EACA;EACA;;AACA;EACE;EACA;EACA;EACA;EACA;EACA;;AAEF;EACE;EACA;EACA;EACA;EACA;EAEA;EACA;EACA;;AAEF;EAGE;;AAEF;EACE;EACA;EACA;;AAEF;EACE;;;AAIJ;EACI;IACI;IACA;;;AAIR;EACI;IAEI;IACA;;;AAMR;EACE;IACE;;EAEF;IACE;IACA;;;ACjiBJ;EACI;EACA,YNUgB;;;AMRpB;EACI;;;AAGJ;EACI;EACA;EACA;EAEA;;AAEA;EACI;EACA;EAAQ;EAAS;EAAa;EAC9B;EACA;EACA;EACA;;AAEJ;EACI;EACA;EAAQ;EAAS;EAAa;EAC9B;EACA;EACA;;AAEJ;EACI;EACA;AACA;EACA;EACA;EACA;;AAGJ;AAAA;EAEA;EACA;EACA;;AAGA;EACI;;AAEJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EAEA;;AAEJ;EACI;EACA;;AAEJ;EACI;;;AAOR;EACE;;AAEA;EACE;EACA;EACA;EACA;EACA;;AAIF;EACE;EACA;EACA;EACA;EAEA;EACA;EACA;EACA;EACA;;AAIF;EACE;;;AAMJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAgBJ;EACE;IACE;IACA;IACA;IACA;IACA;;;AAKJ;AAAA;AAAA;AAGA;EACE;EACA;;;AAGF;AACA;EACE;EACA;;;AAGF;AACA;EACE;EACA;EACA;;;AAGF;AACA;EACE;EACA;;;AAGF;AACA;EACE;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;AACA;EACE;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;;;AAGF;AAAA;AAAA;AAIA;AACA;EACE;IACE;;;AAIJ;AACA;EACE;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;;EAGF;IACE;IACA;IACA;;EAGF;IACE;IACA;;EAGF;IACE;;EAGF;IACE;IACA;IACA;IACA;;;AAIJ;AACA;EACE;IACE;IACA;;EAGF;IACE;;EAGF;IACE;;EAGF;IACE;;;AAKJ;EACE;EACA;EACA;;;AAQF;EACE;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;;AAEE;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EAIA;EACA;EACA;EAEA;EACA;EACA;;AAGA;EACI;EACA;;AAGJ;EACI;EACA;EACA;EACA;;AAEJ;EACI;EACA;EACA;;AAEJ;EACI;EACA;EACA;;;AAKZ;AACA;EACE;IACE;;EAGF;IACE;;EAGF;IACE;;EAGF;IACE;;;AAKJ;EACE;EACA;EACA;;AAEA;EACE;EACA;EAAQ;EAAS;EAAa;EAC9B;EACA;EACA;EACA;;AAYF;EACE;EACA;EAAQ;EAAS;EAAa;EAC9B;EACA;EACA;;AAEF;EACE;EACA;;AAEF;EACE;EACA;;AAEF;EACE;EACA;;AAEF;EACE;EACA;EACA;;AAEF;EACE;EACA;EACA;EACA;EACA;;AAEF;EACE;EACA;EACA;;;AAIJ;EAEQ;IACI;;EAEJ;IACI;;EAEA;IACI;;EAGR;IACI;IACA;IACA;IACA;IACA;IACA;IACA;IACA;;EAEA;IACI;IACA;;EAIJ;IACI;;;AAOhB;EACE;IACE;;EACA;IACE;IACA;;;AAkBN;EACI;IACI;IACA;;EACA;IACI;;EAEJ;IACI;;;AAIZ;EACI;IACI;;;AAKR;EACI;IACI;;EAKA;IACI;IACA;IACA;;EAEJ;IACI;;EAQJ;IACI;IACA;IACA;IACA;IACA;IACA;;EAGA;IACI;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IAEA;IACA;IACA;IACA;IACA;IACA;;EAEA;IACI;IACA,kBN5jBV;;EM8jBU;IACI,ON9iBhB;;EMijBQ;IACI;IACA;IACA,ONrkBV;;EM0kBE;IACI;;EAGA;IACI;;EAYJ;IACI;IACA;;EAQZ;IACI;;EAEA;IACI;IACA;IACA;IACA;IACA;IACA;IACA;IACA,kBN7mBJ;;EMunBJ;IACI;IACA;IACA;IACA;;EACA;IACI;IACA;IACA;IACA;IACA;IACA;IACA;;EAKA;IACI;IACA,kBNvoBT;;EM0oBC;IACI;;EAEJ;IACI,kBNppBN;IMqpBM;IACA;IACA;IACA;IACA;IACA;IACA;;EAMZ;IACI;;EACA;IACI;IACA;IACA;IACA;IACA;IACA;IACA;;EAOJ;IACI;IACA;IACA;IACA;IACA;IACA;IACA,kBNxrBF;;EM6rBM;IACI;;EAIA;IACI;IACA;IACA;IACA;IACA;;EAPR;IAUI;IACA;IACA;IACA;IACA;;EAEA;IACI;;EAIA;IACI;IACA;;EAQR;IACI;;EACA;IACI;;EAGJ;IACI;IACA;IACA,ON5tBhB;;EM8tBY;IACI;;EAMhB;IACI;IACA;;EAGJ;IACI;IACA;IACA;;EAGI;IACI;;EAKJ;IACI,YNlvBhB;;EMovBY;IACI,YNrvBhB;;EM0vBQ;IACI;;EAIR;IACI;IACA;;EAIJ;IACI;;EACA;IACI;IACA;;EAEJ;IACI;IACA;IACA;IACA;;EAIJ;IACI;IACA;;EAEJ;IACI;IACA;;EAKJ;IACI;;EAEJ;IACI;IACA,ONnyBZ;IMoyBY,YNrzBV;;EMuzBM;IACI,YNxzBV;IMyzBU,ONxyBZ;;EM4yBQ;IACI;IACA;;EACA;IACI,YNrzBZ;IMszBY,cNtzBZ;IMuzBY;IACA;IACA;;EAIZ;IACI,YN10BN;;EM20BM;IACI;IACA;IACA;IACA;IACA;IACA;IACA;IACA;;EASZ;IACI;;EACA;IACI;IACA;IACA;IACA;IACA;IACA;IACA,kBNr2BN;;EM02BE;IACI;IACA;;EAEI;IACI;IACA;IACA;IACA;;EACA;IACI;;;AAW5B;EAIQ;IACI;IACA;;EAUQ;IACI;;EAEA;IACI;;EAKhB;IACI;;EAEJ;IACI;IACA;;EAQJ;IACI;IACA;IACA,kBNx6BN;IMy6BM;;;AAOhB;EACI;IACI;;EAKA;IACI;;;AAKZ;EACI;IACI;IACA;;EAII;IACI;IACA;IACA;IACA;AACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;;EAMJ;IACI;IACA;IACA;IACA;AACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;;;AAKhB;EACI;IACI;;;ACl/BR;AACA;EACI;EACA;EACA;EACA;;;AAEJ;AACA;EAAe;;;AACf;AACA;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAEJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAEJ;EACE;;;AAEF;EACE;;;AAEF;EACE;EACA;EACA;;;AAEF;AACA;EACE;;;AAEF;EACE;;;AAEF;AASA;AAAA;AAAA;AAIA;EACE;EACA;EACA;EACA;EACA;;;AAGF;AACA;EACE;EACA;;;AAGF;AACA;EACE;EACA;EACA;EACA;EACA;EACA;;;AAGF;AACA;EACE;EACA;EACA;EACA;EACA;;;AAGF;AACA;EACE;EACA;EACA;;;AAGF;AACA;EACE;EACA;EACA;;;AAGF;AACA;EACE;EACA;;;AAGF;AACA;EACE;;;AAGF;AACA;AAAA;EAEE;EACA;EACA;EACA;EACA;;;AAGF;AACA;EACE;;;AAGF;AAAA;AAAA;AAIA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;AACA;EACE;EACA;EACA;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;AACA;EACE;;;AAGF;EACE;;;AAGF;AACA;EACE;;;AAGF;EACI;EACA;EACA;EACA;EACA;EACA;;AACF;EACE;EACA;;;AAIJ;AAAA;AAAA;AAIA;EACE;IACE;;EAGF;IACE;IACA;;;AChOJ;AACA;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGJ;AACA;EACI;EACA;EACA;;;AAGJ;AACA;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGJ;EACI;EACA;;;AAGJ;EACI;;;AAGJ;AACA;EACI;EACA;EACA;;;AAGJ;EACI;EACA;EACA;;;AAIJ;AACA;EACI;EACA;;;AC3DJ;EACE;;;AAKE;EACI;EACA;EAAQ;EAAS;EAAa;EAC9B;EACA;EACA;EACA;;AAEJ;EACI;EACA;EAAQ;EAAS;EAAa;EAC9B;EACA;EACA;;AAEJ;EACI;EACA;EACA;EACA;EACA;EACA;;AAEJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;AACA;EACA;;AAEJ;EACI,OTvBW;ESwBX;EACA;EACA;;AAEJ;EACI;EACA;EACA;;AAEA;EACA;EACA;;;AAIR;EACI;EACA;EACA;EACA;EACA;;;AAGJ;EACE;EACA;EACA;EACA;EACA;EACA;EACC;EACD;;;AAGF;EACE;EACA;EACA;;;AAKF;EACG;;;AAGH;EACE;EACA;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;;;AAGF;AACA;EACE;IACE;IACA;;EAGF;IACE;;EACA;IACE;;EAGA;IACE;;EAEF;IACE;;EAEF;IACE;IACA;;EAKN;IACE;;;AAKJ;EACE;IACE;;;AAKJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;;AAEF;EACE;EACA;EACA;EACA;EACA;AACA;EACA;EACA;EACA;;AAIF;EAA6B;;AAC7B;EAA6B;;AAC7B;EAA6B;;AAC7B;EAA6B;;;AAI/B;EACE;IACE;IACA;IACA;IACA;IACA;IACA;IACA;;EAEF;IACE;IACA;IACA;IACA;IACA;IACA;;;AAIJ;EAEM;IACI;IACA;;;ACjNV;AAAA;AAAA;AAGA;EACI;;AACA;EACA;EACA;;AAGA;EACA;;AAGA;EACA;EACA;EACA;;AAdJ;AAiBI;;AAEA;EACE;EACA;EACA;;AAGF;EACA;EACA;;AA3BJ;AA8BI;;AACA;EACA;;AAhCJ;AAmCI;;AACA;EACA;EACA;;AAGA;EACA;EACA;;AA3CJ;AA8CI;;AACA;EACA;EACA;EACA;;AAGA;EACE;EACA;EACA;EACA;EACA;;AAIF;EACE;;AAGF;EACE;EACA;EACA;;AAIF;EACA;;AAGA;EACI;EACA;EACA;EACA;EACA;;AAlFR;AAsFI;;AACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGA;EACE;;AACA;EAFF;IAGI;IACA;IACA;;;AArGR;AAyGI;;AACA;EACA;EACA;;AAGA;EACA;;AAGA;EACA;EACA;;AArHJ;AAwHI;;AACA;EACA;;AAGA;EACI;EACA;;AAGJ;EACI;EACA;;;AAOR;AAAA;AAAA;AAIA;AACA;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;AACA;EACE;EACA;EACA;;;AAGF;AACA;EACE;EACA;EACA;EACA;;;AAGF;EACE;;;AAaF;AAAA;AAAA;AAIA;AACA;AACA;EACI;EACA;EACA;;;AAGJ;AACA;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AAEA;EACA;EACA;EACA;EACA;;;AAGJ;AACA;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGJ;AACA;EACI;EACA;EACA;;AACA;EAJJ;IAKM;;;;AAIN;AACA;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AAEA;;AACA;EACI;EACA;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;;AAGJ;EACI;;;AAIR;AACA;EACI;EACA;;AAEA;EACI;;AAGJ;EACI;;AAEJ;EACI;;;AAIR;EACI;EACA;;;AAKF;AACE;;AACA;EACI;EACA;EACA;;;AAIR;AACA;AAEE;EAKE;EACA;EACA;EACA;EACA;EACA;EACA;;AAEF;EACI;EACA;EACA;EACA;;;AAGN;AACA;EACI;EACA;EACA;;;AAEJ;AAAA;AAAA;AAGA;AACA;EACI;EACA;EACA;;;AAGJ;AACA;EACI;EACA;EACA;;;AAGJ;EACI;;;AAGJ;AACA;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;;AAYN;AAAA;AAAA;AAIA;AACA;EACE;IACE;;EAGF;IACE;;EAGF;IACE;;EAGF;IACE;;;AAIJ;AACA;EACE;IACE;;EAGF;IACE;;EAIF;IACE;;EAIF;IACE;;EAIA;IACI;IACA;IACA;;;AAKR;EACE;IACE;IACA;;EAEF;IACE;IACA;IACA;;;AAIJ;AACA;EACE;IACE;;EAOF;IACE;;EAGF;IACE;;EAGF;IACE;;EAGF;IACE;;EAGF;IACE;;;AAQJ;AACA;EACE;EACA;;;AAEF;AACI;;AACA;AAAA;EAEI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAXR;AAcI;;AACA;EACA;;AAGA;EACA;;AApBJ;AAuBI;;AACA;AAAA;EAEA;;AAGA;EACA;;AA9BJ;AAiCI;;AACA;EACI;AAAA;IAEI;;;AArCZ;AAyCI;;AACA;EACI;EACA;EACA;EACA;EACA;EACA;EACA;;AAjDR;AAoDI;;AACA;AAAA;EAEI,YVhiBG;EUiiBH,cVjiBG;EUkiBH,OV9hBO;EU+hBP;EACA;;AA3DR;AA8DI;;AACA;AAAA;EAEI;EACA;EACA;EACA;EACA;;;AC1jBR;AAAA;AAAA;AAIA;AACA;EACI;;;AAGJ;AACA;EACI;IACI;IACA;IACA;;EAGJ;IACI;IACA;;AAGJ;EACA;IACI;;;AAIR;AACA;EACI;EACA;EACA;EACA;;;AAGJ;EACI;IACI;IACA;IACA;IACA;IACA;;;AAIR;AAAA;AAAA;AAIA;EACI;;;AAGJ;EACI;;;AAGJ;AACA;EACI;IACI;IACA;;EAGJ;IACI;IACA;;EAGJ;IACI;IACA;IACA;;;AAIR;AACA;EACI;;;AAGJ;EACI;EACA;;;AAIF;EACI;EACJ;EACE;EACA;EACA;EACA;EACA;;;AAIJ;AAAA;AAAA;AAIA;EACI;EACA;EACA;;;AAGJ;EACI;IACI;IACA;;;AAIR;AACA;EACI;;;AAGJ;AAAA;AAAA;AAAA;AAKA;EAKI;IACI;;EAGJ;IACI;;EAGJ;IACI;;EAGJ;IACI;;;AAaR;AAAA;AAAA;AAIA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;AACA;EACE;IACE;IACA;;;AAIJ;AACA;EACE;EACA;EACA;;;AAGF;AACA;EACE;IACE;;;AAKJ;AAAA;AAAA;AAIA;AACA;EACE;EACA;EACA;;;AAGF;AACA;EACE;IACE;;;AAIJ;AACA;EACE;IACE;;;AAMJ;EACE;IACE;;;AC/NJ;AAEA;EACI;EACA;EACA;EACA;EACA;EACA;EACA;AACJ;EACI;EACA;AAEA;;AACA;EACI;EACA;EACA;AACA;EACA;AAEA;;AACA;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;EACA;EACA;;;AAMhB;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGJ;EACI;;;AAGJ;EACI;;;AAGJ;EACI;;;AAGJ;EACI;EACA;;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;;;AAGJ;AACA;EACI;EACA;EACA;EACA;EACA;EACA;EAGA;EACA;EACA;;;AAGJ;AACA;EACI;;;AAGJ;EACI;;;AAGJ;EACI;EACA;;;AAGJ;AACA;EACI;EACA;;;AAGJ;AACA;EACI;EACA;;;AAGJ;AACA;EACI;EACA;EACA;EACA;;;AAGJ;EACI;IACI;;EAEJ;IACI;;;AAIR;AACA;EACI;EACA;EACA;EACA;;;AAGJ;EACI;EACA;;;AAKJ;AAoBA;EAEI;EACA;EAEA;EACA;EACA;EACA;EACA;AACA;;AACA;EAEI;;;AAKR;EACI;EACA;;;AAEJ;EACI;EACA;;;AAEJ;AACI;EACA;;;AAEJ;AACA;EACI;EACA;EACA;EACA;;;AAGJ;AACA;EACI;;;AAIA;AACI;;AACA;EACI;EACA;;;AAOZ;AACA;EACI;;AASJ;AACA;EACI;IACI;;EAEJ;IACI;;;AAIR;AACA;EACI;;;AAGJ;AACA;AACI;EACA;EACA;AACA;;;AAEJ;EACI;IACI;;EAEJ;IACI;;;AAIR;EACI;;;AAsCJ;AACA;EACI;IACI;;EACA;IACI;;EAOR;IACI;;;AAIR;EACI;IACI;;EAMJ;IACI;IACA;;;AAIR;EACI;IACI;;EAGJ;IACI;;;ACnWR;EACI;EACA;;AAEA;EACI;;AAEJ;EACI;;AAEJ;EACI;;AAEJ;EACI;;AAEJ;EACI;;;AAIR;AAsDA;AACA;EAEI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;EACA;EACA;;AAGJ;EACI;;AAEJ;EACI,Yb3FG;;Aa8FP;EAEI;EACA;EACA;EACA;;;AAKR;AACA;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AAEA;EACA;EACA;EACA;AAEA;EACA;AAEA;EACA,YACI;;;AAQR;AACA;EACI;EACA;EACA;AAEA;EACA;AAEA;EACA;;;AAIJ;AACA;EACI;EACA;EACA;EACA;EACA;;AAEA;EACI;EACA;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;;AAEA;EACI;EACA;EACA;;;AAKZ;AACA;EACI;EACA;EACA;EACA;;;AAIJ;AACA;EACI;EACA;EACA;;;AAIJ;AACA;AACA;EACI;EACA;;;AAGJ;EACI;EACA;;;AAGJ;EACI;EACA;;;AAGJ;EACI;EACA;;;AA8BJ;AACA;EACI;EACA;EACA;;;AAGJ;AACA;EACI;EACA;EACA;EACA;AAEA;EACA;AAEA;;;AAIJ;AACA;EACI;EACA;EACA;EACA;EAEA;;;AAKJ;AACA;EACI;EACA;EACA;EACA;EAEA;;;AAKJ;AACA;EACI;EACA;EACA;EACA;EAEA;;;AAoBJ;AACA;EAAmC;;;AACnC;EAAgC;;;AAChC;EAAiC;;;AACjC;EAAkC;;;AC/UlC;AAAA;AAAA;AAKQ;EACI;;AAEJ;EACI;;AAEJ;EACI;EACA;EACA;EACA;;AAEA;EACI;EACA;;AACA;EACI;EACA;EACA;EACA;EACA;;AACA;EACI;EACA;;;AAQxB;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;EACA;;AAGJ;EACI;;;AAIR;EACI;EACA;EACA;AAEA;;AACA;EACI;;;AAIR;EACI;;AACA;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEJ;EACI;EACA;EACA;EACA;;;AAKR;AAGQ;EACI;EAEA;EACA,YdzFD;;Ac2FH;EACI;EACA;EACA,Od9FD;Ec+FC;;AAGR;EACI;;AAGJ;EACI;;;AAKR;AACA;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGJ;AACA;EACI;EACA;EACA;;;AAGJ;AACA;EACI;EACA;;;AAGJ;AACA;EACI;EACA;EACA;EACA;EACA;;;AAGJ;AACA;EACI;;;AAEJ;EACI;EACA;EACA;;;AAcJ;EAEQ;IACI;;;ACrLZ;EACI;EACA;EACA;EACA;EACA;EACA;;;AAEJ;EACI;EACA;;;AAKA;EACI;;;AAGR;EACI;;;AAEJ;EACI;EACA;EACA;EACA;EACA;;;AAGJ;AACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAIJ;EACI;EACA;EACA;EACA;EACA;EACA;;;AAGJ;AAAA;EAEI;EACA;;;AAEJ;AAAA;EAEI;;;AAGJ;AAAA;EAEI;EACA;;;AAEJ;AAAA;EAEI;;;AC7EJ;EACI;EACA;EACA;EACA;;;AASI;EACI;;AAGR;EACI;;AAMA;EACI;;AAGR;EAEI;EACA;;;AAIR;EACI;;;AAGJ;AACA;EAIQ;IACI;IACA;IACA;IACA;IACA;;EAKJ;IACI;;EAIA;IACI;IACA;;EAIJ;IACI;IACA;;EAGR;IACI;;EAKJ;IACI;IACA;IACA;IACA;IACA;IACA;;EAGA;IACI;;EAOJ;IACI;;;AAoBhB;EAKY;IACI;IACA;;EAIJ;IACI;IACA;;;AAUhB;EAOQ;IACI;;;AAKZ;EAGQ;IACI;;;AAKZ;EAIY;IACI;;EAEJ;IACI;;EAOJ;IACI;;EAOJ;IACI;IACA;;EAIJ;IACI;IACA;;EAKR;IACI;;EAGJ;IACI;;EAIA;IACI;;;AAYhB;EAGQ;IACI;;EAGA;IACI;IACA;;EAIJ;IACI;IACA;;EAKR;AACI;IACA;;EAGJ;IACI;;EAGJ;IACI;IACA;IACA;IACA;IACA;IACA;;EAIA;IACI;;;AAMhB;EAIY;IACI;IACA;;EAIJ;IACI;IACA;;EAKR;AACI;IACA;;EAGJ;IACI;;EAEJ;IACI;;;AAkBZ;AACA;AAwCA;EAKgB;IACI;;;AClWpB;AAAA;AAAA;AA4BA;EACI;EACA;;;AAGJ;EACI;EACA;EACA,YACI;EAEJ;EACA;;;AAIA;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAIJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGR;EACI;EACA;;;AAEJ;AACA;EACI;EACA;EACA;EACA;;;AAGJ;EACI;EACA;EACA;;;AAEJ;AACA;EACI;EACA;EACA;EACA,YApEgB;EAqEhB,OA3EW;EA4EX;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGJ;EACI;;;AAGJ;EACI;EACA;EACA,YA7GkB;EA8GlB;;;AAGJ;AACA;EACI;EACA;EACA;EACA;EACA;EACA;EACA,OA1GW;EA2GX;EACA;;;AAGJ;AACA;EACI,YAhHmB;EAiHnB;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;EACA;;AAEA;EACI;;AAGA;EACI;;AAGR;EACI;;AAEJ;EACI;;;AAIR;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGJ;AACA;EACI;EACA;;;AAGJ;AACA;EACI;EACA;EACA;EACA;EACA,YAjLW;EAkLX;EACA;EACA;EACA,OApMkB;EAqMlB;EACA;;;AAGJ;AACA;EACI;EACA;EACA;EACA,OAnMgB;;;AAsMpB;EACI;EACA,OAtMkB;;;AAyMtB;AACA;EACI;EACA;EACA;EACA;;;AAGJ;EACI;EACA;EACA;EACA,OAxNe;;;AA2NnB;EACI,OAvOa;EAwOb;EACA;;;AAGJ;AACA;EACI;EACA,OAlOc;;;AAqOlB;AACA;EACI,YA1Oe;EA2Of;EACA;EACA;;;AAGJ;EACI;EACA,OAjPe;EAkPf;;;AAGJ;EACI;;;AAGJ;AACA;EACI;EACA;EACA;EACA;;;AAGJ;AACA;EACI;EACA;EACA;EACA;;;AAGJ;EACI;EACA;EACA,YA7Qe;EA8Qf,OA7Qe;;;AAgRnB;EACI;;;AAGJ;AACA;EACI;;;AAGJ;AACA;EACI;EACA;EACA;EACA;EACA;;;AAGJ;AACA;EACI;;;AAGJ;AACA;EACI;EACA;EACA;EACA;EACA;;;AAGJ;AACA;EACI;EACA;EACA;EACA;;;AAGJ;AAAA;AAAA;AAGA;AACA;EACI;IACI;;EAEJ;IACI;IACA;;EAEJ;AAAA;IAEI;;EAGJ;IACI;IACA;;EAGJ;IACI;IACA;;AAGJ;EACA;IACI;;;AAIR;EACI;IACI;;EAEJ;IACI;IACA;;EAEJ;IACI;;EAEJ;IACI;;EAEJ;IACI;IACA;;EAEJ;IACI;IACA;;EAGJ;IACI;IACA;IACA;IACA;IACA;;EAEJ;IACI;;;AAIR;EACI;IACI;;AAEJ;EAEI;IACI;IACA;IACA;IACA;;EAIJ;IACI;IACA;IACA;IACA;IACA%22,%22file%22:%22styles.css%22%7D */
