/*==================================
            GENERALES
==================================*/
/* =========================
   Base tipográfica global
   ========================= */
html, body {
    font-family: 'Montserrat', system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
    font-weight: 400;
    color: var(--color-texto);
    background: var(--color-fondo);
    overflow-x: hidden;
    max-width: 100%;
}

/* Headings con la misma familia (por si algún estilo externo los pisa) */
h1, h2, h3, h4, h5, h6 {
    font-family: 'Montserrat', system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
}



/*================================== COLORES ==================================*/

:root {
    /* =========================
       AZULES (Branding)
       ========================= */
    --azul-primario: #155290;        /* Azul institucional */
    --azul-secundario: #09B1FF;      /* Azul acento / enlaces */
    --azul-claro: #6DA5D0;           /* Azul grisáceo claro */

    /* =========================
       NEUTROS
       ========================= */
    --gris-primario: #707070;        /* Texto principal */

    /* =========================
       ACENTO
       ========================= */
    --amarillo-acento: #FFCC00;      /* Llamadas a la acción / alertas */

    /* =========================
       USOS GENERALES
       ========================= */
    --color-texto: var(--gris-primario);
    --color-fondo: #ffffff;
    --color-borde: #e0e0e0;
    --color-link: var(--azul-secundario);
}


/*================================== FONTS ==================================*/

/* =========================
   Montserrat – Regular
   ========================= */
@font-face {
    font-family: 'Montserrat';
    src: url('fonts/Montserrat-Regular.ttf') format('truetype');
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}

/* =========================
   Montserrat – Bold
   ========================= */
@font-face {
    font-family: 'Montserrat';
    src: url('fonts/Montserrat-Bold.ttf') format('truetype');
    font-weight: 700;
    font-style: normal;
    font-display: swap;
}

/* =========================
   Montserrat – ExtraBold
   ========================= */
@font-face {
    font-family: 'Montserrat';
    src: url('fonts/Montserrat-ExtraBold.ttf') format('truetype');
    font-weight: 800;
    font-style: normal;
    font-display: swap;
}

/* =========================
   Retro Signature
   ========================= */

@font-face {
    font-family: 'Retrosigna';
    src: url('fonts/RetroSignature.otf') format('opentype');
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}


/*================================== SECCIONES ==================================*/

/*================================== SECCIÓN INICIO (HERO) ==================================*/

.hero-rivera{
    position: relative;
    min-height: 92vh;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;

    background-image: var(--hero-bg);
    background-size: cover;
    background-position: center right; /* lo principal a la derecha */
    background-repeat: no-repeat;
    overflow: hidden;
}

/* Overlay oscuro */
.hero-rivera::before{
    content:"";
    position:absolute;
    inset:0;
    background: rgba(0,0,0,.35);
    z-index: 0;
}

/* Overlay degradado azul institucional */
.hero-rivera::after{
    content:"";
    position:absolute;
    inset:0;
    background: linear-gradient(
            to top,
            rgba(21,82,144,.85) 0%,
            rgba(21,82,144,.35) 45%,
            rgba(21,82,144,0) 75%
    );
    z-index: 0;
}

/* NAVBAR “pastilla” */
.hero-nav{
    position: relative;
    z-index: 2;
    padding: 18px 18px 0 18px;
}

.hero-nav__pill{
    border-radius: 999px;
    background: rgba(255,255,255,.12);
    border: 1px solid rgba(255,255,255,.18);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    padding: 14px 18px;

    box-shadow: 0 20px 40px rgba(0,0,0,.25);

    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: nowrap;
}

/* Logo */
.hero-logo{
    height: 44px;
    width: auto;
}

/* Links desktop */
.hero-nav__links .nav-link{
    color: rgba(255,255,255,.85);
    font-weight: 600;
    letter-spacing: .08em;
    font-size: .92rem;
    padding: .35rem .75rem;
}
.hero-nav__links .nav-link:hover{ color:#fff; }
.hero-nav__links .nav-link.active{ color:#fff; }

/* Right controls wrapper */
.hero-nav__right{
    flex: 0 0 auto;
    white-space: nowrap;
}

/* Botón resultados */
.hero-btn-results{
    border-radius: 999px;
    font-weight: 800;
    letter-spacing: .10em;
    padding: .75rem 1.2rem;
    font-size: .95rem;
    white-space: nowrap;
    color: var(--azul-primario, #155290) !important;
}

/* Kebab (3 puntos verticales) */
.hero-kebab{
    width: 44px;
    height: 44px;
    border-radius: 14px;
    background: rgba(255,255,255,.12);
    border: 1px solid rgba(255,255,255,.18);

    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    gap: 5px;

    padding: 0;
    flex: 0 0 auto;
}
.hero-kebab:hover{ background: rgba(255,255,255,.18); }

.hero-kebab__dot{
    width: 4px;
    height: 4px;
    border-radius: 999px;
    background: rgba(255,255,255,.92);
    display: block;
}

/* Offcanvas look */
.hero-offcanvas{
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
}

/* CONTENIDO */
.hero-content{
    position: relative;
    z-index: 2;
    flex: 1;
    display: flex;
    align-items: center;
    padding-top: 32px;
    padding-bottom: 64px;
}

.hero-copy{
    max-width: 680px;
}

/* Animación */
.hero-copy > *{
    animation: heroFadeUp .9s ease-out both;
}
.hero-copy > *:nth-child(1){ animation-delay: .05s; }
.hero-copy > *:nth-child(2){ animation-delay: .15s; }
.hero-copy > *:nth-child(3){ animation-delay: .25s; }
.hero-copy > *:nth-child(4){ animation-delay: .35s; }

@keyframes heroFadeUp{
    from{ opacity:0; transform: translateY(14px); }
    to{ opacity:1; transform: translateY(0); }
}

.hero-kicker{
    color: rgba(255,255,255,.80);
    letter-spacing: .35em;
    font-weight: 500;
    text-transform: uppercase;
    font-size: .95rem;
    margin-bottom: 14px;
}

.hero-title{
    margin: 0 0 14px 0;
    line-height: .95;
}

.hero-title__big{
    display:block;
    color:#fff;
    font-weight: 800;        /* Montserrat ExtraBold */
    letter-spacing: .01em;   /* más impacto */
    font-size: clamp(3.2rem, 6vw, 5.4rem);
}

.hero-title__big--italic{
    font-style: italic;
    letter-spacing: .02em;
}

.hero-desc{
    color: rgba(255,255,255,.88);
    max-width: 620px;
    margin: 0 0 22px 0;
    font-size: 1.05rem;
    line-height: 1.45;
    text-shadow: 0 6px 18px rgba(0,0,0,.35);
}

/* CTA */
.hero-btn-cta{
    border-radius: 999px;
    background: #fff;
    color: var(--azul-primario, #155290) !important;
    font-weight: 900;
    letter-spacing: .12em;
    padding: .95rem 1.35rem;
    text-transform: uppercase;
    border: 0;
}
.hero-btn-cta:hover{
    background: rgba(255,255,255,.92);
    color: var(--azul-primario, #155290) !important;
}
.hero-arrow{
    margin-left: .35rem;
    font-weight: 900;
}


@media (max-width: 991.98px){

    .hero-nav{ padding: 14px 14px 0 14px; }

    .hero-nav__pill{
        padding: 10px 12px;
        gap: 10px;
    }

    .navbar-brand{
        flex: 0 0 auto;
        max-width: 50%;
        overflow: hidden;
        margin-right: 6px;
    }

    /* Logo más pequeño */
    .hero-logo{ height: 26px; }

    /* Botón resultados más pequeño */
    .hero-btn-results{
        padding: .52rem .80rem;
        font-size: .82rem;
        letter-spacing: .10em;
        line-height: 1;
    }

    /* Kebab un poco más compacto */
    .hero-kebab{
        width: 40px;
        height: 40px;
        border-radius: 14px;
    }

    /* Ajuste de encuadre en móvil */
    .hero-rivera{
        background-position: 65% center;
    }

    .hero-content{ padding-top: 22px; }
    .hero-desc{ font-size: 1rem; }
}

/* OFF CANVAS HERO */
.hero-offcanvas{
    /* ancho más angosto (ajusta a gusto) */
    --bs-offcanvas-width: 320px;

    background: rgba(255,255,255,.70);
    border-left: 1px solid rgba(0,0,0,.08);

    /* efecto “termina en círculo” abajo */
    border-bottom-left-radius: 999px;
    border-bottom-right-radius: 999px;

    /* opcional: un poquito de radio arriba para suavizar */
    border-top-left-radius: 22px;
    border-top-right-radius: 22px;

    overflow: hidden;
}

/* En pantallas muy chicas */
@media (max-width: 360px){
    .hero-offcanvas{ --bs-offcanvas-width: 285px; }
}

/* Header */
.hero-offcanvas .offcanvas-header{
    border-bottom: 1px solid rgba(0,0,0,.08);
}

.hero-offcanvas .offcanvas-title{
    color: var(--azul-primario);
    font-weight: 800;
    letter-spacing: .08em;
}

/* Botón cerrar */
.hero-offcanvas .btn-close{
    opacity: .7;
}
.hero-offcanvas .btn-close:hover{
    opacity: 1;
}

/* Links */
.hero-offcanvas .nav-link{
    color: var(--azul-primario);
    font-weight: 700;
    letter-spacing: .18em;
    text-transform: uppercase;

    padding: 14px 0;
    border-bottom: 1px solid rgba(21,82,144,.15);
}

.hero-offcanvas .nav-link:hover{
    color: var(--azul-secundario);
}

/* Botón dentro */
.hero-offcanvas .hero-btn-results{
    background: #fff;
    border: 1px solid rgba(21,82,144,.25);
    color: var(--azul-primario) !important;
}


/* Contenedor del menú */
.hero-offcanvas .offcanvas-body{
    display: flex;
    flex-direction: column;
    align-items: center;      /* centra horizontal */
    text-align: center;       /* centra texto */
}

/* Lista del menú */
.hero-offcanvas .navbar-nav{
    width: 100%;
    align-items: center;
}

/* Cada item */
.hero-offcanvas .nav-item{
    width: 100%;
}

/* Links */
.hero-offcanvas .nav-link{
    text-align: center;
    width: 100%;
}


/* OFFCANVAS HEADER - REGRESAR */
.hero-offcanvas-header{
    justify-content: flex-start;
    padding: 18px 20px;
    border-bottom: 1px solid rgba(21,82,144,.15);
}

.offcanvas-back{
    background: none;
    border: 0;
    padding: 0;

    font-family: 'Montserrat', sans-serif;
    font-weight: 800;
    font-size: .95rem;
    letter-spacing: .12em;
    text-transform: uppercase;

    color: var(--azul-primario);
    display: inline-flex;
    align-items: center;
    gap: 6px;

    cursor: pointer;
}

.offcanvas-back:hover{
    color: var(--azul-secundario);
}

.offcanvas-back-arrow{
    font-size: 1.1em;
    line-height: 1;
    transform: translateY(1px);
}

.offcanvas-back:active{
    opacity: .6;
}

/* CONTROL DE IMAGEN DE FONDO */

/* Desktop */
@media (min-width: 992px){
    .hero-rivera{
        --bg-x: 68%;
        --bg-y: 45%;
    }
}

/* Mobile */
@media (max-width: 991.98px){
    .hero-rivera{
        --bg-x: 76%;
        --bg-y: 55%;
    }
}

/*==================================
            SECCIÓN OPINIONES
==================================*/

#section_opiniones {
  background: var(--azul-primario);
  padding-top: 80px;
  padding-bottom: 80px;
}

#titulo_nuestros_pacientes {
  font-family: 'Retrosigna';
  color: var(--azul-claro);
  text-align: center;

  font-size: clamp(60px, 12vw, 260px);
  white-space: nowrap;
  line-height: 1;
  margin-top: -20px;
}

.card-transparente {
  background: transparent;
  border: none;
  box-shadow: none;
}

@media (max-width: 767px) {
  .carousel-item .col-md-4 {
    flex: 0 0 100%;
    max-width: 100%;
  }
}

/* Desktop */
.carousel-desktop {
  display: block;

  .carousel-control-prev {
    left: -120px;
  }

  .carousel-control-next {
    right: -100px;
  }
}

.carousel-mobile {
  display: none;
}

/* Móvil */
@media (max-width: 768px) {
  .carousel-desktop {
    display: none;
  }

  .carousel-mobile {
    display: block;
  }

  .carousel-control-prev {
    left: -23px;
  }

  .carousel-control-next {
    right: -23px;
  }
}

/*==================================
            SECCIÓN CIFRAS
==================================*/

#section_cifras_que_respaldan {
  padding-top: 80px;
  padding-bottom: 80px;

  img {
    max-width: 100%;
    height: auto;
  }

}

#titulo_nuestro_compromiso {
  font-family: 'Retrosigna';
  color: var(--azul-primario);
  text-align: center;

  font-size: clamp(60px, 12vw, 260px);
  white-space: nowrap;
  line-height: 1;
  margin-top: -20px;
}

.cifras_que_respaldan_desktop {
  display: block;
}

.cifras_que_respaldan_mobile {
  display: none;
}

.contador {
  font-size: clamp(2rem, 5vw, 3rem);
}

.contador_mobile {
  font-size: clamp(2.5rem, 5vw, 3rem);
}

/* Móvil */

@media (max-width: 768px) {
  .cifras_que_respaldan_desktop {
    display: none;
  }

  .cifras_que_respaldan_mobile {
    display: block;
  }

}

/*==================================
            SECCIÓN SOMOS
==================================*/

#section_somos {
  padding-top: 80px;
  padding-bottom: 80px;

  position: relative;
  width: 100%;
  padding: 100px 0;
  overflow: hidden;
}

#titulo_somos {
    font-size: clamp(3rem, 5vw, 3.5rem);
}

.somos-bg {
  position: absolute;
  inset: 0;
  margin: auto;
  width: 90%;
  max-width: 1400px;
  z-index: 1;
}

.somos-container {
  position: relative;
  z-index: 2;
  max-width: 1200px;
  margin: auto;
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 40px;
  padding: 0 20px;
}

.somos-text h2 {
  font-size: 2.2rem;
  font-weight: 800;
  color: var(--gris-primario);
  margin-bottom: 15px;
  text-align: center;
}

.somos-text p {
  font-size: .8rem;
  line-height: 1.6;
}

.somos-text.left {
  text-align: justify;
}

.somos-text.right {
  text-align: justify;
}

.microscopio-image img {
  max-width: 260px;
  width: 100%;
  height: 110%;
  display: block;
  margin: auto;
}

.microscopio-image-mobile {
  max-width: 250px;
  width: 100%;
  height: 100%;
  display: block;
  margin: auto;
  padding-bottom: 30px;
}

.somos_desktop {
  display: block;
}

.somos_mobile {
  display: none;
}

@media (max-width: 768px) {
  .somos_desktop {
    display: none;
  }

  .somos_mobile {
    display: block;
  }

}

.titulos_mobile {
  color: rgba(112,112,112,.22);
  font-weight:800;
  text-align:center;
  font-size: clamp(3rem, 5vw, 3.5rem);
}

/*==================================
            NUESTROS PERFILES
==================================*/

/* SECTION BASE */
#section_nuestros_perfiles{
    position: relative;
    padding-top: 200px;   /* espacio reservado para el título */
    padding-bottom: 100px;

    background:
      radial-gradient(
        circle at 70% 82%,
        #285d94 0%,
        #081a35 55%,
        #081a35 100%
    );

    overflow: hidden;
}

/* TÍTULO EN CAPA SUPERIOR */
.perfiles-title-wrapper{
    position: absolute;
    top: 70px;
    left: 0;
    width: 100%;
    z-index: 10;
    text-align: center;
    pointer-events: none;
}

#section_nuestros_perfiles .perfiles-title{
    margin: 0 auto;
    max-width: 900px;
    color: #fff;
    font-size: clamp(1.4rem, 1.8vw, 2rem);
    font-weight: 300;
    line-height: 1.2;
}
#section_nuestros_perfiles .perfiles-title b{
    font-weight: 800;
}

/* CARDS */
.card_perfiles{
    background-color: #06213E;
    border-radius: 18px;
    width: 100%;
    overflow: hidden;
    transition: box-shadow .3s ease;
}

@media (min-width: 1400px){
    .card_perfiles{
        aspect-ratio: 1.25 / 1;
        min-height: 320px;
    }
}

@media (min-width: 992px) and (max-width: 1399.98px){
    .card_perfiles{
        aspect-ratio: auto;
        min-height: 400px;
    }
}


@media (max-width: 991.98px){
    .card_perfiles{
        aspect-ratio: auto;
        min-height: 360px;
    }
}

.nuestros_perfiles_desktop {
  display: flex;
}

.nuestros_perfiles_mobile {
  display: none;
}

@media (max-width: 768px) {
  .nuestros_perfiles_desktop {
    display: none;
  }

  .nuestros_perfiles_mobile {
    padding-bottom: 80px;
    display: block;
  }

}

.titulos_mobile {
  color: rgba(112,112,112,.22);
  font-weight:800;
  text-align:center;
  font-size: clamp(3rem, 5vw, 3.5rem);
}

.card_perfiles:hover{
    box-shadow:
      0 0 0 2px #00b4ff,
      0 0 18px rgba(0,180,255,.55);
}

.card_perfiles .card-body{
    padding: 1.6rem 1.8rem;
    display: flex;
    flex-direction: column;
    gap: .6rem;
}

.card_perfiles img{
    width: 48px;
    height: auto;
    margin-bottom: .8rem;
}

.card_perfiles h5{
    color: #fff;
    font-weight: 800;
    margin: 0;
}

.card_perfiles p{
    color: #fff;
    font-size: .7rem;
    line-height: 1.35;
    margin: 0;
}

/* IMAGEN */
.perfiles-img{
    width: 100%;
    max-height: 720px;
    object-fit: cover;
    display: block;
}

.perfiles-title-wrapper-mobile{
    position: absolute;
    top: 70px;
    left: 0;
    width: 100%;
    z-index: 10;
    text-align: center;
    pointer-events: none;
}

#section_nuestros_perfiles .perfiles-title-mobile{
  color: white;
    margin: 0 auto;
    max-width: 900px;
    color: #fff;
    font-size: clamp(1.1rem, 1.8vw, 2rem);
    font-weight: 300;
    line-height: 1.2;
}
#section_nuestros_perfiles .perfiles-title-mobile b{
    font-weight: 800;
}

.col-bg {
  position: relative;
  min-height: 600px;
  padding-bottom: 140px;
  background-image: url('../img/nuestros_perfiles/IMAGEN_NUESTROS_PERFILES.png');
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}

#carousel_perfiles_mobile {
  position: absolute;
  bottom: -140px;
  left: 50%;
  transform: translateX(-50%);
  width: 85%;
}

.card_perfiles_mobile {
  background-color: #0b2a4a;
  border: 2px solid #00b4ff;
  border-radius: 10px;
  min-height: 280px;
  padding: 8px;
  box-shadow: 0 20px 45px rgba(0,0,0,.35);

  .card-body {
  border-radius: 6px;
  color: white;
  }
}

.card_perfiles_mobile img {
  width: 40px;
  margin-bottom: 10px;
}

.card_perfiles_mobile h5 {
  font-weight: 700;
  margin-bottom: 10px;
}

.card_perfiles_mobile p {
  font-size: 0.8rem;
  opacity: 0.9;
}

.carousel-control-prev,
.carousel-control-next {
  width: 44px;
  height: 44px;
  top: 50%;
  transform: translateY(-50%);
  opacity: 1;
}

.carousel-control-prev-icon,
.carousel-control-next-icon {
  background-image: none;
  background-color: #0b2a4a;
  border: 2px solid #00b4ff;
  border-radius: 50%;
  width: 44px;
  height: 44px;
  position: relative;
}

.carousel-control-prev {
  left: -22px;
}

.carousel-control-next {
  right: -22px;
}

.carousel-control-prev-icon::before,
.carousel-control-next-icon::before {
  content: '';
  position: absolute;
  inset: 0;
  background-repeat: no-repeat;
  background-position: center;
  background-size: 12px;
}

.carousel-control-prev-icon::before {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='white' viewBox='0 0 16 16'%3E%3Cpath d='M11 1 3 8l8 7'/%3E%3C/svg%3E");
}

.carousel-control-next-icon::before {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='white' viewBox='0 0 16 16'%3E%3Cpath d='M5 1l8 7-8 7'/%3E%3C/svg%3E");
}

/*==================================
            SERVICIOS
==================================*/

.services-rivera{ background:#fff; }

/* ===== Head ===== */
.services-rivera__head{
    padding: 60px 18px 18px;
    text-align: center;
}
.services-rivera__title{
    margin: 0;
    font-weight: 800;
    letter-spacing: .28em;
    color: rgba(112,112,112,.22);
    font-size: clamp(3.2rem, 8vw, 6rem);
    line-height: 1;
}
.services-rivera__subtitle{
    margin: 14px auto 0;
    padding-bottom: 20px;
    max-width: 720px;
    font-weight: 500;
    color: #222;
    font-size: 1.15rem;
    line-height: 1.35;
}

/* ===== Desktop Grid ===== */
.services-rivera__grid{ width: 100%; }

.services-card{
    position: relative;
    display: block;
    width: 100%;
    aspect-ratio: 1 / 1;
    overflow: hidden;
    text-decoration: none;
    color: #fff;

    /* Defaults */
    --svc-text-bottom: 72px;
    --svc-title-size: clamp(3.2rem, 4vw, 3.8rem);
    --svc-desc-size: 1rem;
}

@supports not (aspect-ratio: 1 / 1){
    .services-card{ height: 0; padding-top: 100%; }
    .services-card > *{ position: absolute; inset: 0; }
}

.services-card__bg{
    position: absolute;
    inset: 0;
    background-image: var(--bg);
    background-size: cover;
    background-position: center;
    transform: scale(1.01);
    transition: transform .35s ease;
}

.services-card__overlay{
    position: absolute;
    inset: 0;
    pointer-events: none;
}
.services-card__overlay--base{ background: rgba(0,0,0,.25); opacity: 1; }
.services-card__overlay--blue{
    background: rgba(23,33,80,.25);
    opacity: 0;
    transition: opacity .25s ease;
}

.services-card__content{
    position: absolute;
    left: 22px;
    right: 22px;
    bottom: var(--svc-text-bottom);
    z-index: 2;
}

.services-card__name{
    display: block;
    font-weight: 800;
    letter-spacing: .06em;
    text-transform: uppercase;
    font-size: var(--svc-title-size);
    line-height: 1.05;
    text-shadow: 0 10px 30px rgba(0,0,0,.35);
}

.services-card__desc{
    display: block;
    margin-top: 12px;
    font-weight: 500;
    letter-spacing: .01em;
    line-height: 1.35;
    font-size: var(--svc-desc-size);

    /* Default: limita lectura (luego en XL cambiamos a 50%) */
    max-width: 520px;

    opacity: 0;
    transform: translateY(8px);
    transition: opacity .25s ease, transform .25s ease;
}

/* Hover desktop */
@media (hover:hover) and (pointer:fine){
    .services-card:hover .services-card__bg{ transform: scale(1.06); }
    .services-card:hover .services-card__overlay--blue{ opacity: 1; }
    .services-card:hover .services-card__desc{ opacity: 1; transform: translateY(0); }
}

/* Tablet */
@media (max-width: 991.98px){
    .services-card{ --svc-text-bottom: 54px; }
}

/* Mobile (para el grid desktop, NO el slider) */
@media (max-width: 575.98px){
    .services-rivera__head{ padding: 54px 14px 14px; }
    .services-rivera__subtitle{ font-size: 1.05rem; }

    .services-card__content{ left: 14px; right: 14px; bottom: 18px; }
    .services-card__desc{ display: none; }
}

/* Desktop grande (>=801px) */
@media (min-width: 801px){
    .services-card{
        --svc-text-bottom: 120px;
        --svc-title-size: clamp(2.8rem, 3.4vw, 3.2rem);
        --svc-desc-size: 1.15rem;
    }
    .services-card__content{ left: 32px; right: 32px; }
}

/* Desktop XL (>=1200px): áreas como tu referencia (80% título, 50% desc) */
@media (min-width: 1200px){
    .services-card__name{
        inline-size: 80%;
        max-inline-size: 80%;
        line-height: 1.02;
        font-size: clamp(2.6rem, 2.3vw + 1rem, 4.2rem);
    }
    .services-card__desc{
        inline-size: 50%;
        max-inline-size: 50%;
        font-size: clamp(1rem, .6vw + .65rem, 1.2rem);
        max-width: none; /* ya controla por 50% */
    }
}

/* ===== Mobile slider visibility ===== */
.services-rivera--mobile{ display: none; }

@media (max-width: 800px){
    /* Oculta grid + head desktop */
    #servicios.services-rivera .services-rivera__grid{ display: none; }
    #servicios.services-rivera > .services-rivera__head{ display: none; }

    /* Muestra slider */
    .services-rivera--mobile{ display: block; }
}

/* ===== Mobile Slider ===== */
.services-mobile__carousel{
    padding-bottom: 44px;
    margin-bottom: -44px;
}

.services-mcard{
    position: relative;
    width: 100%;
    height: 66vh;
    min-height: 540px;
    overflow: hidden;
    text-decoration: none;
    color: #fff;

    display: flex;
    align-items: center; /* centro vertical del texto */
}

@media (max-width: 420px){
    .services-mcard{ height: 68vh; min-height: 510px; }
}

.services-mcard__bg{
    position: absolute;
    inset: 0;
    background-image: var(--bg);
    background-size: cover;
    background-position: center;
    transform: scale(1.01);
}

.services-mcard__overlay{
    position: absolute;
    inset: 0;
    pointer-events: none;
}
.services-mcard__overlay--base{ background: rgba(0,0,0,.22); opacity: 1; }

/* overlay azul fijo al 50% */
.services-mcard__overlay--blue{ background: rgba(23,33,80,.50); opacity: 1; }

.services-mcard__content{
    position: relative;
    width: 100%;
    padding-left: 62px;  /* evita empalme con flechas */
    padding-right: 62px; /* evita empalme con flechas */
    z-index: 2;
    text-align: left;
}

.services-mcard__name{
    display: block;
    font-weight: 800;
    letter-spacing: .06em;
    text-transform: uppercase;
    line-height: 1.02;
    font-size: clamp(1.55rem, 5.2vw, 2.15rem);
    text-shadow: 0 10px 26px rgba(0,0,0,.35);
}
.services-mcard__desc{
    display: block;
    margin-top: 10px;
    font-weight: 500;
    letter-spacing: .01em;
    line-height: 1.35;
    font-size: clamp(.95rem, 3.2vw, 1.05rem);
    max-width: 520px;
    opacity: .98;
}

/* Slider arrows + dots + full-bleed (solo en móvil) */
@media (max-width: 800px){
    .services-rivera--mobile .carousel-control-prev,
    .services-rivera--mobile .carousel-control-next{
        width: 44px;
        opacity: 1;
    }
    .services-rivera--mobile .carousel-control-prev{ left: 5px; }
    .services-rivera--mobile .carousel-control-next{ right: 5px; }

    .services-rivera--mobile .carousel-control-prev-icon,
    .services-rivera--mobile .carousel-control-next-icon{
        filter: drop-shadow(0 10px 18px rgba(0,0,0,.45));
        transform: scale(0.95);
    }
}

.services-mobile__dots{ bottom: 30px; }
.services-mobile__dots [data-bs-target]{
    width: 7px;
    height: 7px;
    border-radius: 999px;
    margin: 0 4px;
}

/* Full-bleed sin aire lateral en slider */
.services-rivera--mobile .container-fluid{
    padding-left: 0 !important;
    padding-right: 0 !important;
}

/* Media queries para dispositivos con pantallas más grandes*/

@media (min-width: 1800px){

    .services-card__name{
        inline-size: 80%;
        font-size: clamp(3.2rem, 5.2cqw, 4.4rem);
        line-height: 1.02;
    }

    .services-card__desc{
        inline-size: 50%;
        font-size: clamp(1.05rem, 2.1cqw, 1.25rem);
    }
}

@media (min-width: 2400px){

    .services-card__name{
        inline-size: 80%;
        font-size: clamp(3.8rem, 6.2cqw, 5.4rem);
        line-height: 1.01;
    }

    .services-card__desc{
        inline-size: 50%;
        font-size: clamp(1.15rem, 2.4cqw, 1.45rem);
    }
}


@media (min-width: 3200px){

    .services-card__name{
        inline-size: 80%;
        font-size: clamp(4.6rem, 7.4cqw, 6.6rem);
        line-height: 1;
    }

    .services-card__desc{
        inline-size: 50%;
        font-size: clamp(1.25rem, 2.8cqw, 1.7rem);
    }
}

/*==================================
            MEMBRESÍA
==================================*/

#section_membresia {
  padding-top: 80px;
  padding-bottom: 80px;

  background: linear-gradient(
  135deg,
  #0b3d6e 0%,
  #155c9a 35%,
  #2b8fc4 70%,
  #6fc5e8 100%
);
}

.membresia_desktop {
  display: block;
}

.membresia_mobile {
  display: none;
}

@media (max-width: 768px) {
  .membresia_desktop {
    display: none;
  }

  .membresia_mobile {
    display: block;
  }

}

#img_membresia {
  width: 300px;
  height: 150px;
}

#img_tarjeta {
  width: 500px;
  height: 550px;
}

#img_icono_check {
  width: 30px;
  height: 30px;
}

.item-beneficio {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  margin-bottom: 18px;
  color: white;
  font-size: 18px;
}

.item-beneficio img {
  width: 26px;
  height: auto;
  margin-top: 2px;
}

.item-beneficio span {
  line-height: 1.4;
}

.btn-membresia {
  display: inline-flex;
  align-items: center;
  gap: 12px;

  margin-top: 25px;
  padding: 12px 26px;

  background-color: #ffffff;
  color: #0d4c8b;

  font-weight: 600;
  font-size: 14px;
  letter-spacing: 1px;
  text-decoration: none;

  border-radius: 30px;
  transition: all 0.25s ease;
}

.btn-membresia .flecha {
  font-size: 18px;
  transition: transform 0.25s ease;
}

.btn-membresia:hover {
  background-color: #f2f6fa;
  color: #0b3f73;
}

.btn-membresia:hover .flecha {
  transform: translateX(5px);
}

#img_tarjeta_mobile {
  max-width: 95%;
  height: auto;
  transform-origin: center center;
  position: relative;
  left: 2%;
  top: -4%;
  display: block;
  margin: 0 auto;
}

#img_membresia_mobile {
  width: 300px;
  height: 150px;
  display: block;
  margin: 0 auto;
}

/* =========================================
   PARCHE + NUESTROS PERFILES – Ajuste de flechas
========================================= */

.carousel-control-prev-icon,
.carousel-control-next-icon {
    background-image: none !important; /* limpiar overrides */
    width: 2rem !important;
    height: 2rem !important;
}

/* Restaurar los SVG default de Bootstrap */
.carousel-control-prev-icon {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 16 16'%3E%3Cpath d='M11.354 1.646a.5.5 0 0 1 0 .708L6.707 7l4.647 4.646a.5.5 0 0 1-.708.708l-5-5a.5.5 0 0 1 0-.708l5-5a.5.5 0 0 1 .708 0z'/%3E%3C/svg%3E") !important;
}

.carousel-control-next-icon {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 16 16'%3E%3Cpath d='M4.646 1.646a.5.5 0 0 1 .708 0l5 5a.5.5 0 0 1 0 .708l-5 5a.5.5 0 1 1-.708-.708L9.293 7 4.646 2.354a.5.5 0 0 1 0-.708z'/%3E%3C/svg%3E") !important;
}

/* Quitar bordes, fondos, sombras custom */
.carousel-control-prev-icon,
.carousel-control-next-icon {
    background-color: transparent !important;
    border: none !important;
    border-radius: 0 !important;
    box-shadow: none !important;
}

/* Quitar los pseudo-elementos personalizados */
.carousel-control-prev-icon::before,
.carousel-control-next-icon::before {
    content: none !important;
}


#section_nuestros_perfiles .carousel-control-prev {
    left: -40px;
}

#section_nuestros_perfiles .carousel-control-next {
    right: -40px;
}

/* =========================================
   SERVICIOS + FIX MOBILE – Flechas clicables
========================================= */

#servicios_mobile .carousel {
    position: relative; /* garantizamos contexto para los controles */
}

#servicios_mobile .carousel-control-prev,
#servicios_mobile .carousel-control-next {
    width: 44px;
    opacity: 1;
    z-index: 30;          /* por encima de la tarjeta y del texto */
    pointer-events: auto; /* aseguramos que reciben el tap */
}

/* Acercamos un poco las flechas hacia los lados */
#servicios_mobile .carousel-control-prev {
    left: 4px;
}

#servicios_mobile .carousel-control-next {
    right: 4px;
}

/* Opcional: que los íconos se vean un poco más presentes */
#servicios_mobile .carousel-control-prev-icon,
#servicios_mobile .carousel-control-next-icon {
    filter: drop-shadow(0 10px 18px rgba(0,0,0,.45));
    transform: scale(0.95);
}

/*==================================
            SUCURSALES
==================================*/

.sucursales{ background:#fff; }

/* ===== Head ===== */
.sucursales__head{
    padding: 60px 18px 18px;
    text-align: center;
}

.sucursales__title{
    padding-bottom: 30px;
    margin: 0;
    font-weight: 800;
    letter-spacing: .28em;
    color: rgba(112,112,112,.22);
    font-size: clamp(3.2rem, 8vw, 6rem);
    line-height: 1;

}

.sucursales__title_mobile {
  font-weight: 800;
    letter-spacing: 0.28em;
    color: rgba(112,112,112,.22);
    text-align: center;
    white-space: nowrap;
    font-size: clamp(2.5rem, 8vw, 6rem);
    max-width: 100%;
    overflow: hidden;
}

.sucursales__subtitle{
    margin: 14px auto 0;
    padding-bottom: 20px;
    max-width: 720px;
    font-weight: 500;
    color: #222;
    font-size: 1.15rem;
    line-height: 1.35;
}

.sucursales__subtitle_mobile {
  margin: 14px auto 0;
  padding-bottom: 20px;
  max-width: 720px;
  font-weight: 500;
  color: #222;
  font-size: .9rem;
  line-height: 1.35;
}

/* ===== Desktop Grid ===== */
.sucursales__grid{ width: 100%; }

.sucursales-card{
    cursor: pointer;
    position: relative;
    display: block;
    width: 100%;
    aspect-ratio: 1 / 1;
    overflow: hidden;
    text-decoration: none;
    color: #fff;

    /* Defaults */
    --svc-text-bottom: 72px;
    --svc-title-size: clamp(3.2rem, 4vw, 3.8rem);
    --svc-desc-size: 1rem;
}

@supports not (aspect-ratio: 1 / 1){
    .sucursales-card{ height: 0; padding-top: 100%; }
    .sucursales-card > *{ position: absolute; inset: 0; }
}

.sucursales-card__bg{
    position: absolute;
    inset: 0;
    background-image: var(--bg);
    background-size: cover;
    background-position: center;
    transform: scale(1.01);
    transition: transform .35s ease;
}

.sucursales-card__overlay{
    position: absolute;
    inset: 0;
    pointer-events: none;
}
.sucursales-card__overlay--base{ background: rgba(0,0,0,.25); opacity: 1; }
.sucursales-card__overlay--blue{
    background: rgba(23,33,80,.25);
    opacity: 0;
    transition: opacity .25s ease;
}

.sucursales-card__content{
    position: absolute;
    left: 22px;
    right: 22px;
    bottom: var(--svc-text-bottom);
    z-index: 2;
}

.sucursales-card__name{
    display: block;
    font-weight: 800;
    letter-spacing: .06em;
    text-transform: uppercase;
    font-size: var(--svc-title-size);
    line-height: 1.05;
    text-shadow: 0 10px 30px rgba(0,0,0,.35);
}

.sucursales-card__desc{
    display: block;
    margin-top: 12px;
    font-weight: 500;
    letter-spacing: .01em;
    line-height: 1.35;
    font-size: var(--svc-desc-size);

    /* Default: limita lectura (luego en XL cambiamos a 50%) */
    max-width: 520px;

    opacity: 0;
    transform: translateY(8px);
    transition: opacity .25s ease, transform .25s ease;
}

/* Hover desktop */
@media (hover:hover) and (pointer:fine){
    .sucursales-card:hover .sucursales-card__bg{ transform: scale(1.06); }
    .sucursales-card:hover .sucursales-card__overlay--blue{ opacity: 1; }
    .sucursales-card:hover .sucursales-card__desc{ opacity: 1; transform: translateY(0); }
}

/* Tablet */
@media (max-width: 991.98px){
    .sucursales-card{ --svc-text-bottom: 54px; }
}

/* Mobile (para el grid desktop, NO el slider) */
@media (max-width: 575.98px){
    .sucursales__head{ padding: 54px 14px 14px; }
    .sucursales-rivera__subtitle{ font-size: 1.05rem; }

    .sucursales__content{ left: 14px; right: 14px; bottom: 18px; }
    .sucursales__desc{ display: none; }
}

/* Desktop grande (>=801px) */
@media (min-width: 801px){
    .sucursales-card{
        --svc-text-bottom: 120px;
        --svc-title-size: clamp(2.8rem, 3.4vw, 3.2rem);
        --svc-desc-size: 1.15rem;
    }
    .sucursales-card__content{ left: 32px; right: 32px; }
}

/* Desktop XL (>=1200px): áreas como tu referencia (80% título, 50% desc) */
@media (min-width: 1200px){
    .sucursales-card__name{
        inline-size: 80%;
        max-inline-size: 80%;
        line-height: 1.02;
        font-size: clamp(2.6rem, 2.3vw + 1rem, 4.2rem);
    }
    .sucursales-card__desc{
        inline-size: 50%;
        max-inline-size: 50%;
        font-size: clamp(1rem, .6vw + .65rem, 1.2rem);
        max-width: none; /* ya controla por 50% */
    }
}

/* ===== Mobile slider visibility ===== */
.sucursales--mobile{ display: none; }

@media (max-width: 768px){
    /* Oculta grid + head desktop */
    #section_sucursales.sucursales .sucursales__grid{ display: none; }
    #section_sucursales.sucursales > .sucursales__head{ display: none; }

    /* Muestra slider */
    .sucursales--mobile{ display: block; }
}

/* ===== Mobile Slider ===== */
.sucursales-mobile__carousel{
    padding-bottom: 44px;
    margin-bottom: -44px;
}

.sucursales-mcard{
    position: relative;
    width: 100%;
    height: 66vh;
    min-height: 540px;
    overflow: hidden;
    text-decoration: none;
    color: #fff;

    display: flex;
    align-items: center; /* centro vertical del texto */
}

@media (max-width: 420px){
    .sucursales-mcard{ height: 68vh; min-height: 510px; }
}

.sucursales-mcard__bg{
    position: absolute;
    inset: 0;
    background-image: var(--bg);
    background-size: cover;
    background-position: center;
    transform: scale(1.01);
}

.sucursales-mcard__overlay{
    position: absolute;
    inset: 0;
    pointer-events: none;
}
.sucursales-mcard__overlay--base{ background: rgba(0,0,0,.22); opacity: 1; }

/* overlay azul fijo al 50% */
.sucursales-mcard__overlay--blue{ background: rgba(23,33,80,.50); opacity: 1; }

.sucursales-mcard__content{
    position: relative;
    width: 100%;
    padding-left: 62px;  /* evita empalme con flechas */
    padding-right: 62px; /* evita empalme con flechas */
    z-index: 2;
    text-align: left;
}

.sucursales-mcard__name{
    display: block;
    font-weight: 800;
    letter-spacing: .06em;
    text-transform: uppercase;
    line-height: 1.02;
    font-size: clamp(1.55rem, 5.2vw, 2.15rem);
    text-shadow: 0 10px 26px rgba(0,0,0,.35);
}
.sucursales-mcard__desc{
    display: block;
    margin-top: 10px;
    font-weight: 500;
    letter-spacing: .01em;
    line-height: 1.35;
    font-size: clamp(.95rem, 3.2vw, 1.05rem);
    max-width: 520px;
    opacity: .98;
}

/* Slider arrows + dots + full-bleed (solo en móvil) */
@media (max-width: 800px){
    .sucursales--mobile .carousel-control-prev,
    .sucursales--mobile .carousel-control-next{
        width: 44px;
        opacity: 1;
    }
    .sucursales--mobile .carousel-control-prev{ left: 5px; }
    .sucursales--mobile .carousel-control-next{ right: 5px; }

    .sucursales--mobile .carousel-control-prev-icon,
    .sucursales--mobile .carousel-control-next-icon{
        filter: drop-shadow(0 10px 18px rgba(0,0,0,.45));
        transform: scale(0.95);
    }
}

.sucursales-mobile__dots{ bottom: 30px; }
.sucursales-mobile__dots [data-bs-target]{
    width: 7px;
    height: 7px;
    border-radius: 999px;
    margin: 0 4px;
}

/* Full-bleed sin aire lateral en slider */
.sucursales--mobile .container-fluid{
    padding-left: 0 !important;
    padding-right: 0 !important;
}

/* Media queries para dispositivos con pantallas más grandes*/

@media (min-width: 1800px){

    .sucursales-card__name{
        inline-size: 80%;
        font-size: clamp(3.2rem, 5.2cqw, 4.4rem);
        line-height: 1.02;
    }

    .sucursales-card__desc{
        inline-size: 50%;
        font-size: clamp(1.05rem, 2.1cqw, 1.25rem);
    }
}

@media (min-width: 2400px){

    .sucursales-card__name{
        inline-size: 80%;
        font-size: clamp(3.8rem, 6.2cqw, 5.4rem);
        line-height: 1.01;
    }

    .sucursales-card__desc{
        inline-size: 50%;
        font-size: clamp(1.15rem, 2.4cqw, 1.45rem);
    }
}


@media (min-width: 3200px){

    .sucursales-card__name{
        inline-size: 80%;
        font-size: clamp(4.6rem, 7.4cqw, 6.6rem);
        line-height: 1;
    }

    .sucursales-card__desc{
        inline-size: 50%;
        font-size: clamp(1.25rem, 2.8cqw, 1.7rem);
    }
}

.icono_reloj {
  width: 20px;
  height: 20px;
}

.icono_maps {
  width: 20px;
  height: 25px;
}

/* =========================================
   SUCURSALES + FIX MOBILE – Flechas clicables
========================================= */

#sucursales_mobile .carousel {
    position: relative; /* garantizamos contexto para los controles */
}

#sucursales_mobile .carousel-control-prev,
#sucursales_mobile .carousel-control-next {
    width: 44px;
    opacity: 1;
    z-index: 30;          /* por encima de la tarjeta y del texto */
    pointer-events: auto; /* aseguramos que reciben el tap */
}

/* Acercamos un poco las flechas hacia los lados */
#sucursales_mobile .carousel-control-prev {
    left: 4px;
}

#sucursales_mobile .carousel-control-next {
    right: 4px;
}

/* Opcional: que los íconos se vean un poco más presentes */
#sucursales_mobile .carousel-control-prev-icon,
#sucursales_mobile .carousel-control-next-icon {
    filter: drop-shadow(0 10px 18px rgba(0,0,0,.45));
    transform: scale(0.95);
}

/*==================================
            RIVERA KIDS
==================================*/

#section_riverakids {
  padding-top: 80px;
  padding-bottom: 80px;
}

.img_riverakids {
  width: 500px;
  height: 500px;
}

.texto_riverakids {
  color: black;
}

.titulo_riverakids {
  color: var(--azul-primario);
  font-size: clamp(1.8rem, 2.8cqw, 1rem);
  font-weight: 600;
}

.subtitulo_riverakids {
  color: var(--azul-claro);
  font-size: clamp(1.4rem, 2.8cqw, 1rem);
  font-weight: 600;
  font-style: italic;
}

.logo_riverakids {
  width: 160px;
  height: 80px;
}

  .swiper {
    width: 100%;
    padding-top: 50px;
    padding-bottom: 50px;
  }

  .swiper-slide {
    background-position: center;
    background-size: cover;
    width: 450px;
    height: 450px;
  }

  .swiper-slide img {
    display: block;
    width: 100%;
  }

  .riverakids_desktop {
    display: block;
  }

  .riverakids_mobile {
    display: none;
  }

  @media (max-width: 768px) {
    .riverakids_desktop {
      display: none;
    }

    .riverakids_mobile {
      display: block;
    }

  }

  .img_riverakids_mobile {
    padding-left: 5px;
    max-width: 80%;
    height: auto;
    display: block;
  }

  .titulo_riverakids_mobile {
    padding-top: 25px;
    color: var(--azul-primario);
    font-size: clamp(1.3rem, 2.8cqw, 1rem);
    font-weight: 600;
  }

  .subtitulo_riverakids_mobile {
    margin-left: -40px;
    color: var(--azul-claro);
    font-size: clamp(1.3rem, 2.8cqw, 1rem);
    font-weight: 600;
    font-style: italic;
  }

  .logo_riverakids_mobile {
    width: 170px;
    height: 80px;
  }

  #carouselExample .carousel-control-prev {
  left: 8px;
}

#carouselExample .carousel-control-next {
  right: 8px;
}

/*==================================
            F.A.Q.
==================================*/

#section_faq {
  padding-top: 80px;
  padding-bottom: 20px;
}

.faq_desktop {
  display: block;
}

.faq_mobile {
  display: none;
}

@media (max-width: 768px) {
  .faq_desktop {
    display: none;
  }

  .faq_mobile {
    display: block;
  }

}

.title_faq {
  padding-bottom: 30px;
  margin: 0;
  font-weight: 800;
  color: rgba(112,112,112,.22);
  font-size: clamp(3.2rem, 8vw, 6rem);
  line-height: 1;
}

.subtitle_faq {
  margin: 0;
  font-weight: 600;
  color: rgba(112,112,112,.22);
  font-size: clamp(2rem, 8vw, 1rem);
  letter-spacing: .1em;
  line-height: 1;
}

.accordion {
  overflow: visible;
}

.accordion-item {
  border: none;
  background: transparent;
}

.accordion-header {
  margin: 10px 0;
}

.accordion-button {
  background-color: #6fa7d1;
  font-size: clamp(1rem, 2.5vw, 1.3rem);
  color: #fff;
  padding: 18px 30px;
  font-weight: 600;
  text-align: center;
  justify-content: center;
  box-shadow: none;
  border-radius: 999px !important;

  max-width: 460px;
  margin: 0 auto;
}

.accordion-item:first-of-type .accordion-button,
.accordion-item:last-of-type .accordion-button,
.accordion-button:not(.collapsed) {
  border-radius: 999px !important;
}

.accordion-button::after {
  display: none;
}

.accordion-button:hover {
  background-color: #5c95c0;
}

.accordion-body {
  max-width: 460px;
  margin: 8px auto 0;
  padding: 18px 25px;
  border-radius: 20px;
  background-color: #fff;
}

.title_faq_mobile {
  padding-bottom: 30px;
  margin: 0;
  font-weight: 800;
  color: rgba(112,112,112,.22);
  font-size: clamp(6rem, 8vw, 6rem);
  line-height: 1;
}

.subtitle_faq_mobile {
  margin: 0;
  font-weight: 600;
  color: rgba(112,112,112,.22);
  font-size: clamp(1.8rem, 8vw, 1rem);
  letter-spacing: .1em;
  line-height: 1;
}

/*==================================
            CONTACTO
==================================*/

.contacto-rivera{
    background:#ffffff;
    padding: 80px 0 70px;
}

/* Columna izquierda (texto) */
.contacto-title{
    color: var(--azul-primario);
    font-weight: 800;
    font-size: clamp(1.9rem, 2.4vw, 2.4rem);
    line-height: 1.25;
    margin-bottom: 18px;
}

.contacto-lead{
    font-size: 1rem;
    line-height: 1.5;
    max-width: 360px;
    color: #333333;
}

/* Formulario */
.contacto-form{
    max-width: 580px;
    margin-left: auto;
}

/* Etiquetas */
.contacto-form-label{
    font-weight: 600;
    font-size: .95rem;
    color: #333333;
}

/* Inputs "pastilla" */
.contacto-input{
    display: block;
    width: 100%;
    background: #e3e3e3;
    border-radius: 999px;
    border: none;
    padding: 10px 18px;
    font-size: .95rem;
    line-height: 1.4;
    outline: none;
}

.contacto-textarea{
    display: block;
    width: 100%;
    background: #e3e3e3;
    border-radius: 18px;
    border: none;
    padding: 14px 18px;
    font-size: .95rem;
    line-height: 1.4;
    resize: vertical;
    min-height: 170px;
    outline: none;
}

/* Evitar highlight azul de borde por defecto en algunos navegadores */
.contacto-input:focus,
.contacto-textarea:focus{
    box-shadow: 0 0 0 2px rgba(21,82,144,.18);
}

/* Botón */
.contacto-submit{
    border-radius: 999px;
    background: #6DA5D0;
    color: #ffffff;
    font-weight: 700;
    font-size: .95rem;
    letter-spacing: .06em;
    padding: 10px 34px;
    border: none;
    text-transform: none;
    box-shadow: 0 10px 24px rgba(0,0,0,.20);
}

.contacto-submit:hover{
    background: #5c94c0;
    color: #ffffff;
}

/* Responsivo */

@media (max-width: 991.98px){
    .contacto-rivera{
        padding-top: 60px;
    }

    .contacto-form{
        margin-left: 0;
        max-width: none;
    }
}

@media (max-width: 767.98px){
    .contacto-title{
        text-align: center;
    }
    .contacto-lead{
        text-align: center;
        margin-left: auto;
        margin-right: auto;
        margin-bottom: 28px;
    }

    .contacto-form-label{
        text-align: left !important;
        margin-bottom: 6px;
    }

    .contacto-submit{
        margin-top: 10px;
        width: auto;
    }
}

@media (max-width: 767.98px){
    #contacto .container {
        padding-left: 28px;
        padding-right: 28px;
    }

    .contacto-title,
    .contacto-lead {
        padding-left: 8px;
        padding-right: 8px;
    }

    .contacto-form-label {
        padding-left: 4px;
    }
}

/*==================================
            FOOTER RIVERA
==================================*/

.footer-rivera{
    background:#ffffff;
    padding: 40px 0 32px;
    font-family: 'Montserrat', system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
}

/* Enlaces superiores */
.footer-links{
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 0;
    row-gap: 10px;
    flex-wrap: wrap;
    margin-bottom: 18px;
}

.footer-link{
    position: relative;
    padding: 0 28px;
    font-weight: 600;
    letter-spacing: .14em;
    font-size: .88rem;
    text-transform: uppercase;
    text-decoration: none;
    color: #333333;
    white-space: nowrap;
}

/* Líneas verticales entre enlaces (no en el primero) */
.footer-link + .footer-link::before{
    content: "";
    position: absolute;
    left: 0;
    top: 50%;
    transform: translateY(-50%);
    height: 22px;
    width: 1px;
    background: #d3d3d3;
}

.footer-link:hover{
    color: var(--azul-primario);
}

/* Redes sociales */
.footer-social{
    display:flex;
    justify-content:center;
    align-items:center;
    gap: 18px;
    margin-bottom: 14px;
}

.footer-social-link i{
    font-size: 1.1rem;
    color: #6DA5D0; /* azul claro como en el diseño */
    transition: transform .2s ease, opacity .2s ease;
}

.footer-social-link:hover i{
    transform: translateY(-1px);
    opacity: .85;
}

/* Texto final */
.footer-copy{
    text-align:center;
    font-size: .78rem;
    color:#555555;
    line-height:1.5;
}

.footer-powered{
    display:inline-block;
    margin-top: 2px;
    font-size: .75rem;
    letter-spacing:.18em;
    text-transform:uppercase;
    color:#777777;
}

/* ===== Responsivo ===== */
@media (max-width: 767.98px){

    .footer-rivera{
        padding-top: 32px;
        padding-bottom: 26px;
    }

    .footer-links{
        flex-direction: column;
    }

    .footer-link{
        padding: 2px 0;
        font-size: .85rem;
    }

    /* quitar las líneas en mobile */
    .footer-link + .footer-link::before{
        display:none;
    }

    .footer-social{
        margin-top: 6px;
        margin-bottom: 10px;
    }
}

/* Estilo del link "POWERED BY PIXELSWEB" */
.footer-powered a{
    color: #777777;
    text-decoration: none;
    font-weight: 600;
    transition: color .25s ease;
    letter-spacing: .18em;
}

.footer-powered a:hover{
    color: #444444;
    text-decoration: none;
}

@media (max-width: 576px){
    .services-rivera__title{
        font-size: 2.2rem;
    }

    .sucursales__title_mobile{
        font-size: 2rem;
    }
}


/* ===== ICONOS NAVBAR (DESKTOP) ===== */
.hero-social a i {
    color: #fff;
}

.hero-social a:hover i {
    color: #69b7ff;
}

/* ===== ICONOS NAVBAR (MOBILE OFFCANVAS) ===== */

.offcanvas-body .bi-facebook,
.offcanvas-body .bi-instagram,
.offcanvas-body .bi-youtube {
    color: #fff !important;  /* o var(--azul-primario) si lo quieres azul */
    transition: color .2s ease;
}

.offcanvas-body a:hover i {
    color: #69b7ff !important;
}




/* Ocultar botón RESULTADOS en resoluciones menores de 390px */
@media (max-width: 420px) {
    /* Barra superior (pastilla) */
    .hero-nav__right .hero-btn-results {
        display: none !important;
    }

    /* Menú offcanvas: aseguramos que siga visible */
    .hero-offcanvas .hero-btn-results {
        display: block !important;
        width: 100%; /* por si quieres mantenerlo full width */
    }
}