      :root {
        --font-sans: "DM Sans", sans-serif;

        --color-dark-blue: #001c42;
        --color-dark-blue-light: #003164;
        --color-dark-blue-lighter: #003d7c;
        --color-blue: #1e88e2;
        --color-blue-dark: #176eb3;
        --color-orange: #ee812e;
        --color-orange-hover: #f59e0b;
        --color-gray: #b2afb2;
        --color-light: #f8f9fa;
        --color-text: #616161;
        --color-text-light: #ababab;
        --color-white: #ffffff;
        --color-black: #000000;
        --color-border: #e5e7eb;
        --color-green: #22c55e;
        --color-green-hover: #16a34a;
        --color-amber: #f59e0b;

        --max-width: 1300px;
        --shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.1),
          0 2px 4px -2px rgba(0, 0, 0, 0.1);
        --shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.1),
          0 4px 6px -4px rgba(0, 0, 0, 0.1);
        --shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, 0.1),
          0 8px 10px -6px rgba(0, 0, 0, 0.1);
        --shadow-2xl: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
      }

      /* --- RESET & BASE STYLES --- */
      *,
      *::before,
      *::after {
        box-sizing: border-box;
        margin: 0;
        padding: 0;
      }

      html {
        scroll-behavior: smooth;
        font-size: 15px;
        background: var(--color-dark-blue);
      }

      body {
        background-color: var(--color-light);
        font-family: var(--font-sans);
        color: var(--color-text);
        line-height: 1.6;
      }

      h1,
      h2,
      h3,
      h4,
      h5,
      h6 {
        color: var(--color-dark-blue);
        font-weight: 700;
        line-height: 1.15;
      }

      h1{
        letter-spacing: -0.055em;
      }

      h2 {
        letter-spacing: -0.035em;
      }
      h3,
      h4,
      h5,
      h6 {
        letter-spacing: -0.01em;
      }

      p {
        margin-bottom: 1rem;
      }
      p:last-child {
        margin-bottom: 0;
      }
      a {
        color: var(--color-blue);
        text-decoration: none;
      }
      img {
        max-width: 100%;
        height: auto;
        display: block;
      }
      ul {
        list-style: none;
      }

      /* --- UTILITY & LAYOUT --- */
      .container {
        max-width: var(--max-width);
        margin-left: auto;
        margin-right: auto;
        padding-left: 1rem;
        padding-right: 1rem;
      }

      .section {
        padding-top: 3rem;
        padding-bottom: 3rem;
      }

      .section--white {
        background-color: var(--color-white);
      }
      .section--light-gray {
        background-color: #f3f3f3;
      }

      .section-header {
        margin-bottom: 1.5rem;
        max-width: 48rem;
        margin-left: auto;
        margin-right: auto;
      }

      .section-header--center {
        text-align: center;
      }

      .section-header__subtitle {
        color: var(--color-text-light);
        font-weight: 600;
        margin-bottom: 0.5rem;
        letter-spacing: 0.035em;
        text-transform: uppercase;
        font-size: 0.85rem;
      }

      .section-header__title {
font-size: 1.5rem;
font-size: clamp(1.5rem, 1.34rem + 0.7999999999999998vw, 2.3rem);
        font-weight: 800;
        margin-bottom: 0.5em;
      }

      .section-header__title span {
        color: var(--color-orange);
      }
      .section-header__description {
        margin-top: 1rem;
      }

      /* --- BUTTON --- */
      .button {
        display: inline-flex;
        align-items: center;
        gap: 0.5rem;
        font-weight: 500;
        border-radius: 9999px;
        text-align: center;
        transition: all 0.3s ease;
        cursor: pointer;
        border: none;
        padding: 0.35em 0.65em 0.45em 1.2em;
        letter-spacing: -0.02em;
        background-color: var(--color-orange);
        color: var(--color-white);
        box-shadow: 0 0 10px rgba(238 129 46 / 0.5);
        font-size: 0.85rem;
        font-size: clamp(
          0.85rem,
          0.8099999999999999rem + 0.2000000000000001vw,
          1.05rem
        );
      }

      .button--primary:hover {
       
        transform: scale(1.05);
        box-shadow: var(--shadow-lg);
      }

      .button--large {
        font-size: 2rem;
        font-size: clamp(
          0.95rem,
          0.9299999999999999rem + 0.10000000000000009vw,
          1.05rem
        );
      }

      .button__icon-wrapper {
        background-color: rgba(255, 255, 255, 1);
        border-radius: 9999px;
        padding: 0.15em;
        display: flex;
      }

      .button__icon {
        width: 1.2em;
        height: 1.2em;
        color: var(--color-orange);
        stroke: currentColor;
        stroke-width: 2;
      }

      /* --- HEADER --- */
      .header {
        position: fixed;
        top: 0;
        left: 0;
        right: 0;
        z-index: 50;
        transition: background-color 0.3s ease, box-shadow 0.3s ease;
        background-color: transparent;
        /* CLS: altura mínima para que no cambie con scroll */
        min-height: 64px;
      }

      .header--scrolled {
        background-color: var(--color-white);
        box-shadow: 0 3px 40px rgba(0 0 0 / 0.075);
      }

      .header__container {
        display: flex;
        justify-content: space-between;
        align-items: center;
        padding-top: 0.85em;
        padding-bottom: 0.85rem;
      }

      .header__logo-wrapper {
        /* CLS: reservar un bloque fijo para el logo */
        display: flex;
        align-items: center;
        justify-content: flex-start;
        height: 32px;
      }

.header__logo { height: 2em; width: auto; font-size: 1rem; font-size: clamp(1rem, 0.91rem + 0.44999999999999996vw, 1.45rem); }
      /* --- HERO --- */
      .hero {
        position: relative;
        background-color: var(--color-dark-blue);
        color: var(--color-white);
        overflow: hidden;
      }

      .hero__bg,
      .hero__bg-gradient {
        position: absolute;
        top: 0;
        left: 0;
        right: 0;
        bottom: 0;
      }

      .hero__bg {
        background-image: url("../img/hero3.jpg");
        background-size: cover;
        background-position: center center;
        mask-image: linear-gradient(to right, transparent 10%, black 60%);
        -webkit-mask-image: linear-gradient(
          to right,
          transparent 10%,
          black 60%
        );
        /* Fondo base para evitar parpadeo mientras carga la imagen */
        background-color: #021835;
      }

     
      @media (max-width: 999px) {
  .hero__bg {
 background-image: url("../img/hero3-mobile.jpg"); 
           background-size: cover; 
  } 
 .hero__title{
 padding-right: 20% !important;
  }
}

      @media (max-width: 690px) {

 .hero__title{
 padding-right: 30% !important;
  }

}

      .hero__bg--blurry {
        filter: blur(2px);
        mask-image: none;
        -webkit-mask-image: none;
      }

      .hero__bg-gradient {
        background: linear-gradient(
          to right,
          rgba(0, 28, 66, 0.95) 0%,
          rgba(0, 28, 66, 0.75) 50%,
          rgba(0, 28, 66, 0.5) 100%
        );
      }

      .hero__main {
        position: relative;
        z-index: 1;
      }

      .hero__container {
        display: flex;
        align-items: center;
        min-height: 87vh;
        padding-top: 10rem;
        padding-bottom: 5rem;
      }

      .hero__content {
        max-width: 40rem;
        text-align: left;
      }

      .hero__title {
font-size: 1.65rem;
font-size: clamp(1.65rem, 1.2799999999999998rem + 1.8500000000000003vw, 3.5rem);
        font-weight: 600;
        line-height: 1.1;
        margin-bottom: 0.5em;
        color: var(--color-white);
      }

      .hero__title--highlight {
        color: var(--color-orange);
      }

      .hero__subtitle {
        font-size: 0.9rem;
        font-size: clamp(
          0.9rem,
          0.86rem + 0.2000000000000001vw,
          1.1rem
        );
        color: rgba(255, 255, 255, 0.8);
        margin-bottom: 1.75em;
        max-width: 42rem;
        line-height: 1.65;
      }

      .features-list {
        display: flex;
        flex-direction: column;
        gap: 0.75rem;
      }

      .features-list__item {
        font-size: 0.9rem;
        display: flex;
        align-items: center;
        gap: 0.5rem;
        color: rgba(255, 255, 255, 0.8);
      }

      .features-list__icon {
        width: 1.2rem;
        height: 1.2rem;
        color: var(--color-orange);
        flex-shrink: 0;
      }

      /* --- MARQUEE --- */
      @keyframes marquee {
        0% {
          transform: translateX(0%);
        }
        100% {
          transform: translateX(-100%);
        }
      }

      .marquee {
        display: block;
        position: absolute;
        bottom: 0;
        left: 0;
        right: 0;
        padding-top: 0.5rem;
        padding-bottom: 0.5rem;
        background-color: rgba(0, 0, 0, 0.1);
        backdrop-filter: blur(4px);
        -webkit-backdrop-filter: blur(4px);
      }

      .marquee:hover .marquee__inner {
        animation-play-state: paused;
      }

      .marquee__inner-wrapper {
        display: flex;
        white-space: nowrap;
      }

      .marquee__inner {
        animation: marquee 60s linear infinite;
        display: flex;
        min-width: 100%;
        flex-shrink: 0;
        align-items: center;
        justify-content: space-around;
        gap: 0.35rem;
        padding: 0.25rem 0;
      }

      .marquee__item {
        background-color: rgba(255, 255, 255, 0.2);
        color: var(--color-white);
        font-weight: 400;
        padding: 0.25em 1em;
        border-radius: 9999px;
        cursor: default;
        font-size: 0.7rem;
        font-size: clamp(
          0.7rem,
          0.6599999999999999rem + 0.2000000000000001vw,
          0.9rem
        );
      }

      /* --- HOW IT WORKS --- */
      .how-it-works__steps {
        position: relative;
        display: grid;
        grid-template-columns: 1fr;
        gap: 2rem;
      }

      .how-it-works__line-desktop {
        display: none;
        position: absolute;
        top: 2rem;
        left: 0;
        width: 100%;
        height: 2px;
        background-image: linear-gradient(
          to right,
          var(--color-border) 50%,
          transparent 50%
        );
        background-size: 20px 2px;
      }

      .how-it-works__step {
        position: relative;
        text-align: center;
        padding-left: 1rem;
        padding-right: 1rem;
      }

      .how-it-works__step-icon-wrapper {
        position: relative;
        display: inline-block;
        background-color: var(--color-white);
        padding: 0 1rem;
        z-index: 1;
      }

      .how-it-works__step-number {
        display: flex;
        align-items: center;
        justify-content: center;
        height: 1.75em;
        width: 1.75em;
        border-radius: 50%;
        background: linear-gradient(
          to bottom right,
          var(--color-orange),
          var(--color-amber)
        );
        color: var(--color-white);
        font-weight: 700;
        font-size: 1.5rem;
        font-size: clamp(
          1.5rem,
          1.37rem + 0.6499999999999999vw,
          2.15rem
        );
        box-shadow: 0 1px 15px rgba(238 129 46 / 0.5);
        margin-left: auto;
        margin-right: auto;
      }

      .how-it-works__step-title {
        font-size: 1.1rem;
        font-size: clamp(
          1.1rem,
          1.084rem + 0.07999999999999985vw,
          1.18rem
        );
        font-weight: 700;
        margin-bottom: 0.5em;
        margin-top: 1.5em;
      }

      .how-it-works__step-description {
        max-width: 20rem;
        margin-left: auto;
        margin-right: auto;
      }

      /* --- SERVICES --- */
      .services-grid {
        display: grid;
        grid-template-columns: 1fr;
        gap: 1rem;
      }

      .service-card {
        display: block;
        border-radius: 1rem;
        overflow: hidden;
        box-shadow: var(--shadow-lg);
        transition: all 0.3s ease;
      }
      .service-card:hover {
        box-shadow: var(--shadow-2xl);
      }

      .service-card__inner {
        position: relative;
        height: 300px;
      }
      .service-card__image {
        width: 100%;
        height: 100%;
        object-fit: cover;
        transition: transform 0.3s ease;
      }
      .service-card:hover .service-card__image {
        transform: scale(1.05);
      }

      .service-card__overlay {
        position: absolute;
        inset: 0;
        background: linear-gradient(to top, rgba(0, 0, 0, 0.8), transparent);
      }
      .service-card__content {
        position: absolute;
        bottom: 0;
        left: 0;
        right: 0;
        padding: 1.5rem;
        color: var(--color-white);
      }
      .service-card__title {
        font-size: 1.05rem;
        font-weight: 600 !important;
        color: var(--color-white);
      }
      .service-card__description-wrapper {
        transition: all 0.3s ease-in-out;
        max-height: 0;
        opacity: 0;
        overflow: hidden;
      }
      .service-card:hover .service-card__description-wrapper,
      .service-card.is-active .service-card__description-wrapper {
        max-height: 10rem;
        opacity: 1;
        margin-top: 0.5rem;
      }
      .service-card__description {
        font-size: 0.875rem;
        margin-bottom: 0.5rem;
        color: rgba(255, 255, 255, 0.9);
      }
      .service-card__more-info {
        font-weight: 500;
        color: var(--color-orange);
        display: inline-flex;
        align-items: center;
        gap: 0.25rem;
        font-size: 0.8rem;
      }
      .service-card__more-info svg {
        width: 0.85rem;
        height: 0.85rem;
      }

      /* --- BENEFITS & LOCATIONS (Shared Grid) --- */
      .benefits-grid,
      .locations-grid {
        display: grid;
        grid-template-columns: 1fr;
        gap: 1.5rem;
        align-items: center;
      }

      .benefits-grid__content,
      .locations-grid__content {
        order: 2;
      }
      .benefits-grid__image-wrapper,
      .locations-grid__image-wrapper {
        order: 1;
        border-radius: 1rem;
        overflow: hidden;
        box-shadow: var(--shadow-xl);
        aspect-ratio: 1 / 0.75;
      }
      .benefits-grid__image,
      .locations-grid__image {
        width: 100%;
        height: 100%;
        object-fit: cover;
      }

      .benefits-list {
        display: flex;
        flex-direction: column;
        gap: 0.75rem;
      }
      .benefits-list__item {
        display: flex;
        align-items: center;
        gap: 1rem;
      }
      .benefits-list__icon-wrapper {
        background-color: rgba(238, 129, 46, 0.1);
        padding: 0.65rem;
        border-radius: 50%;
        display: flex;
      }
      .benefits-list__icon-wrapper svg {
        width: 1rem;
        height: 1rem;
        color: var(--color-orange);
      }
      .benefits-list__text {
        font-size: 1rem;
        font-weight: 500;
      }

      .locations-grid__description {
        font-size: 1.125rem;
        margin-bottom: 2.5rem;
        max-width: 36rem;
      }
      .locations-list {
        display: grid;
        grid-template-columns: repeat(2, 1fr);
        gap: 0.75rem 1rem;
      }
      .locations-list__item {
        display: flex;
        align-items: center;
        gap: 0.5rem;
        font-weight: 500;
      }
      .locations-list__icon {
        width: 1rem;
        height: 1rem;
        color: var(--color-orange);
        flex-shrink: 0;
      }

      /* --- TESTIMONIALS --- */
      .testimonials {
        overflow: hidden;
      }
      .testimonials .container {
        padding-left: 1rem;
        padding-right: 1rem;
      }
      .testimonials .section-header {
        padding-left: 1.5rem;
        padding-right: 1.5rem;
      }
      .testimonials__subtitle {
        color: var(--color-text-light);
      }

      /* PERF + UX: usamos Keen Slider sin padding lateral en el contenedor.
         La separación entre slides la da 'spacing' en la config JS, así evitamos cortes. */

      .testimonial-card {
        background-color: var(--color-white);
        padding: 1.5rem;
        border-radius: 0.5rem;
        box-shadow: 0 1px 1px rgba(0 0 0 / 10%);
        height: 100%;
        display: flex;
        flex-direction: column;
        transition: all 0.3s ease;
        cursor: grab; /* UX drag */
      }

      .testimonial-card:active {
        cursor: grabbing;
      }

      .testimonial-card__stars {
        display: flex;
        margin-bottom: 1rem;
      }
      .testimonial-card__stars svg {
        width: 1rem;
        height: 1rem;
        color: var(--color-amber);
      }
      .testimonial-card__quote {
        font-size: 0.95rem;
        margin-bottom: 1.5rem;
        flex-grow: 1;
      }
      .testimonial-card__author {
        display: flex;
        align-items: center;
        margin-top: auto;
      }
      .testimonial-card__avatar {
        height: 2.5rem;
        width: 2.5rem;
        border-radius: 50%;
        object-fit: cover;
        margin-right: 0.5rem;
        border: 1px solid var(--color-orange);
        padding: 2px;
      }
      .testimonial-card__name {
        font-weight: 500;
        font-size: 1rem;
        color: var(--color-dark-blue);
      }
      .testimonials__navigation {
        display: flex;
        justify-content: center;
        gap: 1rem;
        margin-top: 1rem;
      }
      .testimonials__nav-button {
        background-color: var(--color-white);
        color: var(--color-dark-blue);
        border-radius: 50%;
        height: 2rem;
        width: 2rem;
        transition: all 0.3s ease;
        border: none;
        cursor: pointer;
        box-shadow: var(--shadow-md);
        display: flex;
        align-items: center;
        justify-content: center;
      }

      .testimonials__nav-button svg {
        width: 1rem;
        height: 1rem;
      }

      .testimonials__nav-button:hover {
        background-color: #f3f4f6;
        transform: scale(1.1);
      }

      /* --- FAQ --- */
      .faq-container {
        display: grid;
        grid-template-columns: 1fr;
        gap: 0;
      }
      .faq-item {
        border: 1px solid var(--color-border);
        border-radius: 0.75rem;
        overflow: hidden;
        margin-bottom: 1rem;
      }
      .faq-item__question {
        width: 100%;
        display: flex;
        justify-content: space-between;
        align-items: center;
        text-align: left;
        padding: 0.9rem 0.75rem;
        font-weight: 600;
        font-size: 0.95rem;
        color: var(--color-dark-blue);
        background: none;
        border: none;
        cursor: pointer;
      }
      .faq-item__icon {
        width: 1.25rem;
        height: 1.25rem;
        color: var(--color-orange);
      }
      .faq-item__icon svg {
        width: 100%;
        height: 100%;
        stroke-width: 2px;
      }
      .faq-item__icon--minus {
        display: none;
      }

      .faq-item__answer {
        display: grid;
        grid-template-rows: 0fr;
        opacity: 0;
        transition: grid-template-rows 0.3s ease-in-out,
          opacity 0.3s ease-in-out;
      }
      .faq-item__answer > div {
        overflow: hidden;
      }
      .faq-item__answer p {
        padding: 0 1.25rem 1.25rem;
      }

      .faq-item--open .faq-item__answer {
        grid-template-rows: 1fr;
        opacity: 1;
      }
      .faq-item--open .faq-item__icon--plus {
        display: none;
      }
      .faq-item--open .faq-item__icon--minus {
        display: block;
      }

      /* --- FOOTER --- */
      .footer {
        background-color: var(--color-dark-blue);
        color: var(--color-white);
        overflow: hidden;
        position: relative;
      }
      .footer__container {
        position: relative;
        z-index: 10;
      }

      .footer__title {
        font-size: 2.35rem;
        font-weight: 600;
        margin-bottom: 1rem;
        color: var(--color-white);
      }
      .footer__subtitle {
        color: rgba(255, 255, 255, 0.8);
        margin-bottom: 1.5rem;
        max-width: 42rem;
        margin-left: auto;
        margin-right: auto;
      }
      .footer__bottom {
        border-top: 1px solid rgba(255 255 255 / 0.1);
        padding: 0.85rem 0 1rem 0;
        display: flex;
        flex-direction: column;
        justify-content: space-between;
        align-items: center;
        gap: 1rem;
        color: rgba(255 255 255 / 0.5);
      }
      .footer__copyright {
        font-size: 0.725rem;
        font-size: clamp(
          0.725rem,
          0.695rem + 0.15000000000000002vw,
          0.875rem
        );
        text-align: center;
        margin-bottom: 0;
      }
      .footer__socials {
        display: flex;
        align-items: center;
        gap: 0.5rem;
      }
      .footer__social-link {
        color: #fff;
        transition: color 0.3s ease;
        width: 2.25em;
        height: 2.25em;
        border-radius: 9999px;
        font-size: 1rem;
        display: flex;
        align-items: center;
        border: 1px solid rgba(255 255 255 / 0.25);
        justify-content: center;
      }

      .footer__social-link svg {
        width: 1em;
        margin-top: -0.06em;
        height: 1em;
      }

      .footer__social-link:hover {
        color: var(--color-orange);
      }

      /* --- FAB --- */
      .fab {
        position: fixed;
        bottom: 1rem;
        right: 1rem;
        background-color: var(--color-green);
        color: var(--color-white);
        border-radius: 50%;
        box-shadow: 0 0 15px 4px rgba(34, 197, 94, 0.5);
        transition: transform 0.3s ease, background-color 0.3s ease;
        z-index: 50;
        width: 3em;
        height: 3em;
        display: flex;
        align-items: center;
        justify-content: center;
        font-size: 1rem;
        font-size: clamp(1rem, 0.95rem + 0.25vw, 1.25rem);
      }
      .fab:hover {
        background-color: var(--color-green-hover);
        transform: scale(1.1);
      }
      .fab__icon {
        width: 1.45em;
        height: 1.45em;
      }

      /* --- RESPONSIVE STYLES --- */
      @media (min-width: 640px) {
    
        .features-list {
          flex-direction: row;
          gap: 2rem;
        }
        .footer__bottom {
          flex-direction: row;
        }
        .footer__copyright {
          text-align: left;
        }

        .services-grid {
          grid-template-columns: 1fr 1fr;
          gap: 1.5rem;
        }
      }

      @media (max-width: 999px) {
        #benefits.section {
          padding-bottom: 0;
        }

        .section-header {
          max-width: 100%;
        }
      }

      @media (min-width: 999px) {
        .section-header {
          margin-bottom: 2rem;
        }

        .benefits-grid__image-wrapper,
        .locations-grid__image-wrapper {
          aspect-ratio: 1 / 1;
        }

        .section {
          padding-top: 5rem;
          padding-bottom: 5rem;
        }

        .hero__container {
          min-height: 100vh;
        }

        .marquee {
          display: block;
        }
        .how-it-works__steps {
          grid-template-columns: repeat(3, 1fr);
        }
        .how-it-works__line-desktop {
          display: block;
        }
        .benefits-grid,
        .locations-grid {
          grid-template-columns: repeat(2, 1fr);
          gap: 3rem;
        }
        .benefits-grid__content {
          order: 2;
        }
        .benefits-grid__image-wrapper {
          order: 1;
        }
        .benefits-grid__title {
          font-size: 3rem;
        }
        .locations-grid__content {
          order: 1;
        }
        .locations-grid__image-wrapper {
          order: 2;
        }
        .locations-grid__title {
          font-size: 3rem;
        }
        .faq-container {
          grid-template-columns: repeat(2, 1fr);
          gap: 2rem;
        }
        .faq-container__column {
          display: flex;
          flex-direction: column;
        }
        .faq-item {
          margin-bottom: 1rem;
        }

        html {
          font-size: 16px;
        }
      }

      @media (min-width: 1240px) {
        .services-grid {
          grid-template-columns: 1fr 1fr 1fr 1fr;
        }
      }