:root {
      --azul: #224194;
      --azul-oscuro: #101c3d;
      --arena: #d9b979;
      --blanco: #ffffff;
      --texto: #172033;
      --fondo: #111827;
      --blanco-hueso: #E6D5BE;
      --blanco-gris: #F4F1EC;
      --negro: #000000;
    }

    * {
      box-sizing: border-box;
      margin: 0;
      padding: 0;
    }

    html {
      scroll-behavior: smooth;
    }

    body {
      font-family: "Montserrat", sans-serif;
      color: var(--texto);
      background: var(--blanco);
    }

    img {
      max-width: 100%;
      display: block;
    }

    a {
      text-decoration: none;
    }

    .hero {
      min-height: 100vh;
      padding: 55px 6% 45px;
      color: var(--blanco);
      display: flex;
      flex-direction: column;
      justify-content: space-between;
      background:
        linear-gradient(rgba(5, 12, 28, .58), rgba(5, 12, 28, .72)),
        url("imagenes/samai-portada.png") center/cover no-repeat;
    }

    .hero-top {
      display: flex;
      justify-content: space-between;
      align-items: center;
      gap: 30px;
    }

    .logo {
      width: 150px;
    }

    .hero-contacto {
      color: var(--blanco);
      font-weight: 600;
      border-bottom: 1px solid rgba(255,255,255,.55);
      padding-bottom: 5px;
    }

    .hero-content {
      width: min(1120px, 100%);
      margin: auto;
      text-align: center;
      padding: 70px 0 45px;
    }

    .eyebrow {
      font-size: 15px;
      font-weight: 700;
      margin-bottom: 24px;
    }

    h1 {
      max-width: 1150px;
      margin: auto;
      font-size: clamp(42px, 6vw, 82px);
      line-height: 1.08;
      letter-spacing: -2px;
    }

    .hero-description {
      max-width: 990px;
      margin: 35px auto;
      font-size: clamp(17px, 1.7vw, 22px);
      line-height: 1.6;
    }

    .cta {
      display: inline-block;
      padding: 18px 32px;
      border-radius: 999px;
      background: var(--azul);
      color: var(--blanco);
      font-weight: 700;
      transition: transform .25s ease, background .25s ease;
    }

    .cta:hover {
      transform: translateY(-3px);
      background: #18347f;
    }

    .datos {
      width: min(1250px, 100%);
      margin: 0 auto;
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      justify-content: center;
      border-top: 1px solid rgba(255,255,255,.28);
    }

    .dato {
      padding: 26px 20px 10px;
      border-right: 1px solid rgba(255,255,255,.22);
    }

    .dato:last-child {
      border-right: 0;
    }

    .dato small {
      display: block;
      color: var(--arena);
      font-weight: 700;
      margin-bottom: 8px;
      text-transform: uppercase;
      letter-spacing: 1px;
    }

    .dato strong {
      display: block;
      font-size: 18px;
      line-height: 1.4;
    }

    section {
      padding: 100px 7%;
    }

    .section-inner {
      width: min(1180px, 100%);
      margin: auto;
    }

    .section-label {
      color: var(--azul);
      font-size: 14px;
      font-weight: 800;
      letter-spacing: 2px;
      text-transform: uppercase;
      margin-bottom: 18px;
    }

    h2 {
      max-width: 900px;
      font-size: clamp(34px, 4vw, 58px);
      line-height: 1.12;
      letter-spacing: -1.5px;
    }

    .intro {
      max-width: 820px;
      margin-top: 25px;
      font-size: 18px;
      line-height: 1.75;
    }

    .beneficios {
      background: var(--blanco-hueso);
    }

    .beneficios-grid {
      margin-top: 55px;
      display: grid;
      grid-template-columns: repeat(4, 1fr);
      gap: 18px;
    }

    .beneficio {
      background: var(--blanco);
      padding: 35px 28px;
      min-height: 220px;
      border-radius: 18px;
    }

    .beneficio-numero {
      color: var(--azul);
      font-size: 38px;
      font-weight: 800;
      margin-bottom: 20px;
    }

    .beneficio h3 {
      font-size: 20px;
      margin-bottom: 12px;
    }

    .beneficio p {
      line-height: 1.6;
      color: #596174;
    }

    .samai-intro-grid{
        display:grid;
        grid-template-columns:55% 45%;
        gap:70px;
        align-items:center;
    }

    .samai-intro-texto{
        max-width:720px;
    }

    .samai-intro-imagen{
        display:flex;
        justify-content:flex-end;
    }

    .samai-intro-imagen img{
        width:100%;
        max-width:620px;
        height:auto;
        object-fit:contain;
        border-radius:28px;
        display: block;
    }

    @media (max-width:991px){

    .samai-intro-grid{
        grid-template-columns:1fr;
        gap:40px;
    }

    .samai-intro-imagen{
        justify-content:center;
    }

    .samai-intro-imagen img{
        max-width:100%;
        height:auto;
    }

    }

    .ubicacion-grid {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 55px;
      align-items: center;
    }

    .ubicacion-img {
      border-radius: 24px;
      min-height: 580px;
      background-image: url("https://samai.weinversiones.com/imagenes/costa-oaxaca.png");
      background-position: center;
      background-size: cover;
      background-repeat: no-repeat;
    }

    .lista {
      margin: 30px 0;
      display: grid;
      gap: 18px;
    }

    .lista-item {
      padding-bottom: 17px;
      border-bottom: 1px solid #d9dce4;
      display: flex;
      justify-content: space-between;
      gap: 25px;
    }

    .lista-item strong {
      color: var(--azul);
      font-size: 22px;
    }

    .earth-center{
        width:100%;
        display:flex;
        justify-content:center;
        align-items:center;
        margin-top:30px;
    }
    
    .btn-earth{
        display:flex;
        width:fit-content;
        margin:0 auto;
        align-items:center;
        justify-content:center;
        gap:10px;
        margin-top:30px;
        padding:18px 34px;
        background:#224194;
        color:#ffffff !important;
        border-radius:999px;
        font-family:"Montserrat",sans-serif;
        font-size:16px;
        font-weight:700;
        text-decoration:none;
        transition:all .3s ease;
        /*box-shadow:0 12px 25px rgba(34,65,148,.25);*/
    }
    
    .btn-earth:hover{
        background:#18347f;
        transform:translateY(-3px) scale(1.03);
        box-shadow:0 18px 40px rgba(34,65,148,.35);
    }
    
    .btn-earth img{
        width:22px;
        height:22px;
    }

    .earth-center .btn-earth{
        margin:0;
    }
    
    .mapa{
        margin-top:60px;
    }
    
    .mapa iframe{
        width:100%;
        height:550px;
        border:0;
        border-radius:24px;
    }

    .caracteristicas-samai{
      background:var(--blanco);
    }

    .caracteristicas-layout{
        display:grid;
        grid-template-columns:1fr 1fr;
        gap:55px;
        align-items:center;
        margin-top:55px;
    }

    .caracteristicas-imagen{
        width:100%;
        height:520px;
        object-fit:cover;
        border-radius:24px;
    }

    .caracteristicas-titulo{
        font-size:30px;
        margin-bottom:30px;
    }

    .caracteristicas-grid{
        display:grid;
        grid-template-columns:repeat(2, 1fr);
        gap:24px;
    }

    .caracteristica-card{
        background:#ffffff;
        border-radius:20px;
        padding:30px;
        border:1px solid rgba(34,65,148,.06);

        box-shadow:
            0 8px 25px rgba(15,23,42,.05),
            0 2px 6px rgba(15,23,42,.03);

        transition:.35s ease;
    }

    .caracteristica-card h3{
        margin:12px 0 14px;
        font-size:30px;
        font-weight:700;
    }

    .caracteristica-card p:last-child{
        color:#596174;
        line-height:1.6;
    }

    .caracteristica-card:hover{
        transform:translateY(-6px);

        box-shadow:
            0 18px 45px rgba(15,23,42,.10),
            0 8px 18px rgba(34,65,148,.08);
    }

    @media (max-width:900px){
        .caracteristicas-layout{
            grid-template-columns:1fr;
        }

        .caracteristicas-grid{
            grid-template-columns:1fr 1fr;
        }
    }

    @media (max-width:580px){
        .caracteristicas-grid{
            grid-template-columns:1fr;
        }

        .caracteristicas-imagen{
            height:380px;
        }
    }

    .oportunidad {
      background: var(--blanco-hueso);
      text-align: center;
    }

    .oportunidad h2 {
      margin: auto;
    }

    .oportunidad p {
      max-width: 780px;
      margin: 25px auto 35px;
      font-size: 18px;
      line-height: 1.7;
      color: var(--fondo);
    }

    .testimonios{
        background: var(--blanco);
        overflow:hidden;
        position:relative;
    }

    .testimonios h2{
        max-width:850px;
        margin-bottom:45px;
    }

    .testimonios-carrusel{
        display:flex;
        gap:24px;
        overflow-x:auto;
        scroll-behavior:smooth;
        scroll-snap-type:x mandatory;
        -webkit-overflow-scrolling:touch;
        scrollbar-width:none;
        background:var(--blanco);
        padding:10px 0 24px;
    }

    .testimonios-carrusel:active{
        cursor:grabbing;
    }

    .testimonios-carrusel::-webkit-scrollbar{
        display:none;
    }

    .testimonio-card{
        position:relative;
        flex:0 0 calc((100% - 48px) / 3);
        min-width:0;
        height:500px;
        border-radius:24px;
        overflow:hidden;
        scroll-snap-align:start;
        scroll-snap-stop:always;
    }

    .testimonio-card img{
        position:absolute;
        inset:0;
        width:100%;
        height:100%;
        object-fit:cover;
        transition:transform .45s ease;
    }

    .testimonio-card::after{
        content:"";
        position:absolute;
        inset:0;
    }

    .testimonio-card:hover img{
        transform:scale(1.04);
    }

    .testimonio-overlay{
        position:absolute;
        left:0;
        right:0;
        bottom:0;
        z-index:2;
        padding:32px;
        color:var(--blanco);
    }

    .testimonio-overlay h3{
        margin-bottom:12px;
        color:var(--blanco);
        font-size:21px;
        line-height:1.2;
        text-transform:uppercase;
    }

    .testimonio-overlay p{
        color:rgba(255,255,255,.86);
        line-height:1.65;
    }

    .testimonios-encabezado{
        display:flex;
        justify-content:space-between;
        align-items:end;
        margin-bottom:40px;
    }

    .testimonios-controles{
      position:absolute;
      top:58%;
      left:30px;
      width: calc(100% - 60px);
      transform:translateY(-50%);
      display:flex;
      justify-content:space-between;
      align-items:center;
      pointer-events:none;
      z-index:10;
    }

    .testimonio-flecha{
        width:52px;
        height:52px;
        border-radius:50%;
        border:none;
        background:var(--azul);
        color:white;
        font-size:22px;
        cursor:pointer;
        transition:.25s;
        pointer-events: auto;
    }

    .testimonio-flecha:hover{
        transform:translateY(-2px);
    }

    .testimonios-indicadores{
        display:flex;
        justify-content:center;
        gap:12px;
        margin-top:25px;
    }

    .testimonio-indicador{
        width:10px;
        height:10px;
        border-radius:50%;
        background:#cfd5e3;
        border:none;
        cursor:pointer;
        transition:.3s;
    }

    .testimonio-indicador.activo{
        width:32px;
        border-radius:20px;
        background:var(--azul);
    }

    @media (max-width:900px){
        .testimonio-card{
            flex-basis:calc((100% - 24px) / 2);
        }
    }

    @media (max-width:580px){
        .testimonios-carrusel{
            gap:16px;
            padding-right:7%;
        }

        .testimonio-card{
            flex:0 0 86%;
            height:460px;
        }

        .testimonio-overlay{
            padding:26px;
        }
        .testimonios-controles {
            display: none;
        }
    }

    .calculadora-financiamiento{
        background:var(--blanco);
    }

    .calculadora-encabezado{
        max-width:850px;
        margin-bottom:55px;
    }

    .calculadora-contenido{
        display:grid;
        grid-template-columns:1fr 1fr;
        gap:40px;
        align-items:stretch;
    }

    .calculadora-controles,
    .resultado-financiamiento{
        padding:40px;
        border-radius:24px;
        background:var(--blanco);
        border:1px solid rgba(34,65,148,.08);
        box-shadow:0 18px 50px rgba(16,28,61,.08);
    }

    .calculadora-controles label{
        display:block;
        margin-bottom:12px;
        font-weight:700;
    }

    .campo-moneda{
        display:flex;
        align-items:center;
        border:1px solid #cfd4df;
        border-radius:12px;
        overflow:hidden;
    }

    .campo-moneda span{
        padding:16px 0 16px 18px;
        color:var(--azul);
        font-size:22px;
        font-weight:800;
    }

    .campo-moneda input{
        width:100%;
        margin:0;
        border:0;
        outline:0;
        padding:16px 18px 16px 8px;
        font-size:22px;
        font-weight:700;
        background:transparent;
    }

    .calculadora-ayuda{
        margin-top:10px;
        color:#687083;
        font-size:14px;
        line-height:1.5;
    }

    .calculadora-subtitulo{
        margin:32px 0 14px;
        font-weight:700;
    }

    .plazos-financiamiento{
        display:grid;
        grid-template-columns:1fr 1fr;
        gap:14px;
    }

    .boton-plazo{
        padding:16px;
        border:1px solid rgba(34,65,148,.25);
        border-radius:12px;
        background:var(--blanco);
        color:var(--azul);
        font-family:"Montserrat",sans-serif;
        font-size:16px;
        font-weight:700;
        cursor:pointer;
        transition:.25s ease;
    }

    .boton-plazo:hover{
        border-color:var(--azul);
        transform:translateY(-2px);
    }

    .boton-plazo.activo{
        background:var(--azul);
        color:var(--blanco);
        border-color:var(--azul);
    }

    .boton-calcular{
        width:100%;
        margin-top:25px;
        border:0;
        cursor:pointer;
        font-family:"Montserrat",sans-serif;
    }

    .resultado-financiamiento{
        opacity:0;
        transform:translateY(20px);
        pointer-events:none;
        transition:
            opacity .45s ease,
            transform .45s ease;
    }

    .resultado-financiamiento.visible{
        opacity:1;
        transform:translateY(0);
        pointer-events:auto;
    }

    .mensualidad-principal{
        padding:28px 0;
        margin-bottom:20px;
        border-bottom:1px solid #dde1ea;
    }

    .mensualidad-principal span{
        display:block;
        margin-bottom:8px;
        color:#687083;
    }

    .mensualidad-principal strong{
        display:block;
        color:var(--azul);
        font-size:clamp(34px,4vw,52px);
        line-height:1.1;
    }

    .resultado-detalles{
        display:grid;
        grid-template-columns:1fr 1fr;
        gap:16px;
    }

    .resultado-item{
        padding:18px;
        border-radius:14px;
        background:var(--blanco);
        border:1px solid rgba(34,65,148,.08);
        box-shadow:
            0 8px 25px rgba(15,23,42,.05),
            0 2px 6px rgba(15,23,42,.03);
    }

    .resultado-item span{
        display:block;
        margin-bottom:8px;
        color:#687083;
        font-size:14px;
    }

    .resultado-item strong{
        color:var(--texto);
        font-size:18px;
    }

    .resultado-cta{
        display:block;
        margin-top:25px;
        text-align:center;
    }

    .resultado-nota{
        margin-top:18px;
        color:#747b8c;
        font-size:12px;
        line-height:1.6;
    }

    .precio-anterior{
        margin-bottom:6px;
        color:#7b8190;
        font-size:22px;
        font-weight:600;
        text-decoration:line-through;
    }

    .precio-anterior.oculto{
        display:none;
    }

    @media (max-width:900px){
        .calculadora-contenido{
            grid-template-columns:1fr;
        }
    }

    @media (max-width:580px){
        .calculadora-controles,
        .resultado-financiamiento{
            padding:25px 20px;
        }

        .plazos-financiamiento,
        .resultado-detalles{
            grid-template-columns:1fr;
        }
    }

    .cta-final{
        background: var(--blanco);
        text-align: center;
    }

    .cta-final .section-inner{
        max-width: 900px;
        margin: 0 auto;
    }

    .cta-final .intro{
        max-width: 760px;
        margin: 28px auto 42px;
    }

    .cta-final .cta{
        display: inline-flex;
    }

    .formulario {
      background: var(--blanco);
    }

    .form-grid {
      display: grid;
      grid-template-columns: .85fr 1.15fr;
      gap: 70px;
      align-items: center;
    }

    form {
      background: var(--blanco);
      padding: 40px;
      border-radius: 22px;
      box-shadow: 0 18px 60px rgba(16,28,61,.10);
    }

    label {
      display: block;
      font-weight: 700;
      margin-bottom: 8px;
    }

    input,
    select,
    textarea {
      width: 100%;
      margin-bottom: 20px;
      padding: 15px;
      font: inherit;
      border: 1px solid #cfd4df;
      border-radius: 10px;
    }

    button {
      width: 100%;
      border: 0;
      cursor: pointer;
      font: inherit;
    }

    footer {
      padding: 35px 7%;
      background: var(--fondo);
      color: var(--blanco-gris);
      text-align: center;
      font-size: 14px;
    }

    .whatsapp {
      position: fixed;
      right: 24px;
      bottom: 24px;
      width: 62px;
      height: 62px;
      display: grid;
      place-items: center;
      border-radius: 50%;
      background: #25d366;
      color: white;
      font-weight: 800;
      box-shadow: 0 10px 30px rgba(0,0,0,.25);
      z-index: 20;
    }

    @media (max-width: 900px) {
      .hero {
        min-height: auto;
        padding: 30px 22px 35px;
      }

      .hero-top {
        align-items: flex-start;
      }

      .logo {
        width: 115px;
      }

      .hero-content {
        padding: 100px 0 70px;
      }

      h1 {
        letter-spacing: -1px;
      }

      .datos {
        grid-template-columns: 1fr 1fr;
      }

      .dato {
        border-bottom: 1px solid rgba(255,255,255,.22);
      }

      section {
        padding: 75px 24px;
      }

      .beneficios-grid {
        grid-template-columns: 1fr 1fr;
      }

      .ubicacion-grid,
      .form-grid {
        grid-template-columns: 1fr;
      }

      .ubicacion-img {
        min-height: 390px;
      }
    }

    @media (max-width: 580px) {
      .hero {
        background-position: center;
      }

      .hero-contacto {
        font-size: 13px;
      }

      .datos,
      .beneficios-grid {
        grid-template-columns: 1fr;
      }

      .dato {
        border-right: 0;
      }

      form {
        padding: 26px 20px;
      }

      .lista-item {
        align-items: flex-start;
        flex-direction: column;
        gap: 6px;
      }
    }