* {
    border-width: 0;
    border-style: solid;
    padding: 0;
    margin: 0;
    text-decoration: none;
    list-style: none;
    box-sizing: border-box;
}

.seccion {
    width: 100%;
    margin: 0 auto;
}

section,
main,
.container-portfolio,
.form-container {
    padding: 60px 20px;
    /* espaciado arriba y abajo */
}

/* Solo en PC grande se limita a 1200px y se centra */
@media (min-width: 1200px) {
    .seccion {
        max-width: 1200px;
    }
}

/*comando de espacio de contenido*/

h1,
h5 {
    
    font-weight: 700;
    /* más grueso */
    letter-spacing: -0.5px;
    /* compacta el título */
}

h2,
h3 {
    font-weight: 600;
}

p,
li,
a {
    
    font-weight: 400;
    /* lectura ligera */
    line-height: 1.6;
    /* mejora legibilidad */
}

a {
    color: #0e4db9;
}

.section-destacada {
    background-color: #a3d2ca;
}

p {
    margin: 1em 0;
    line-height: 1.6;
}

@media (max-width: 767px) {
    p {
        margin-top: 3px !important;
        margin-bottom: 45px !important;
        line-height: 1.6;
    }
}

body {
      background-color: #f1fff8;
    color: #2e3a59;
    font-family: "Poppins", sans-serif;
     box-sizing: border-box;
    /* Eliminados margin/padding, ya están en el reset */
}

/* ================================================= */
/* SOLUCIÓN DE ENCUADRE Y ESCALA PARA PANTALLAS GRANDES */
/* ================================================= */

/* Se activa en pantallas medianas/grandes (Monitores estándar de PC) */
@media (min-width: 1400px) {
    body {
        zoom: 120%; /* Aumenta el tamaño de todo un 20% para rellenar la pantalla */
        max-width: 100%;
        margin: 0 auto;
    }
}

/* Se activa en pantallas muy grandes o de alta resolución (Monitores Full HD / 2K) */
@media (min-width: 1700px) {
    body {
        zoom: 135%; /* Incrementa la escala a un 35% para que no se vea lejos ni pequeño */
    }
}

/* ================================================================== */
/* ESCALAS LÓGICAS Y UNIFICADAS PARA EVITAR CHOQUES (DESDE 4K HASTA 8K) */
/* ================================================================== */

/* Monitores 4K (Se aplica desde 2100px hasta antes de llegar a 8K) */
@media (min-width: 2100px) {
    body {
        zoom: 212%; /* Tu escala calibrada para 4K */
       
        margin: 0 auto; /* Centra el diseño */
    }
}

/* Monitores y Televisores 8K (Se activa SOLO a partir de 7000px) */
@media (min-width: 7000px) {
    body {
        zoom: 520%; /* Escala corregida y real para rellenar el lienzo 8K */
        max-width: 1440px; /* Mantiene exactamente el mismo encuadre de caja */
        margin: 0 auto; /* Lo mantiene perfectamente centrado */
    }
}
/* Scroll y Contenedores */
html {
    scroll-behavior: smooth;
}

#services,
#pricing,
#equipo,
#Agendar,
#nosotros {
    scroll-margin-top: 4px;
    /* Ajuste para nav fijo/sticky */
}

.container {
    max-width: 1200px;
    width: 100%;
    margin: 0 auto;
    padding: 0 5%;
    box-sizing: border-box;
}

/* Media Query para Párrafos Móviles */
@media (max-width: 767px) {
    p {
        margin-top: 3px !important;
        margin-bottom: 45px !important;
    }
}

/* ====== HEADER ====== */

header,
footer {
    
    color: #fff;
    text-align: center;
    padding: 20px 0;
}

/* ---------------------------------------------------- */
/* 1. Estilos del Contenedor (Header) */
/* ---------------------------------------------------- */
/* ================================================= */
/* 1. Estilos del Contenedor Principal (header) */
/* ================================================= */
header {
    width: 100%;
    position: relative;
    overflow: hidden;
    display: block;
    padding-bottom: 30px;
    
    /* CORRECCIÓN CLAVE: 
     Cambiamos 'dvh' (Dynamic Viewport Height) a 'svh' (Small Viewport Height).
     Esto evita que la altura salte cuando la barra de navegación móvil 
     se oculta/muestra, manteniendo la altura fija. 
     
     MIN: 500px, PREFERIDO: 78svh (Estable), MAX: 690px */
    height: clamp(500px, 100svh, 690px);
}

#btn-subir {
    display: none; /* Oculto por defecto */
    position: fixed;
    bottom: 30px;
    right: 30px;
    z-index: 999;
    width: 50px;
    height: 50px;
    border: none;
    outline: none;
    background-color: #000000; /* Puedes cambiarlo al color de tu marca */
    color: white;
    cursor: pointer;
    border-radius: 50%;
    box-shadow: 0 4px 15px rgba(0,0,0,0.3);
    transition: all 0.3s ease;
    /* Centrar el icono */
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0; /* Para la animación de aparición */
    visibility: hidden;
}

/* Icono dentro del botón */
#btn-subir svg {
    width: 24px;
    height: 24px;
}

/* Cuando se activa con JS */
#btn-subir.mostrar {
    opacity: 1;
    visibility: visible;
    display: flex;
}

/* Efecto al pasar el mouse (PC) o tocar (Móvil) */
#btn-subir:hover {
    background-color: #333;
    transform: translateY(-5px); /* Pequeño salto hacia arriba */
}

/* ================================================= */
/* 2. Estilos de la Imagen (<img>) */
/* ================================================= */
.header-img {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    
    /* Asegura que la imagen cubra todo el espacio sin distorsionarse */
    object-fit: cover;
    object-position: center;
    
    /* Envía la imagen al fondo, por debajo del overlay y el texto */
    z-index: -1;
}


/* ================================================= */
/* 3. Estilos del Overlay Oscuro (header::before) */
/* ================================================= */
header::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    
    /* Crea el degradado oscuro semi-transparente */
    background: linear-gradient(#0c090999, #0009);
    opacity: 0.5;
    
    /* Se coloca entre la imagen (-1) y el contenido (generalmente 1 o superior) */
    z-index: 0;
    pointer-events: none;
}

/* ---------------------------------------------------- */
/* 4. Estilos del Contenido (Texto) */
/* ---------------------------------------------------- */
/* Mantenemos el estilo de posición para el contenido */
header .banner-text,
header .text-header,
header .img-header {
    position: relative;
    /* Asegura que el contenido esté por encima del overlay (z-index: 0) */
    z-index: 1;
}

/* ====== NAVBAR MÓVIL/ESTÁTICO ====== */
nav {
    /* Se cambió a position: fixed; si quieres que se mantenga visible al hacer scroll.
     Si quieres que se desplace con el contenido, usa position: absolute/relative.
     Mantenido como `position: absolute` para respetar tu estilo original en móvil/inicio. */
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    background-color: #79aea3;
    z-index: 1000;
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 10px 20px;
    
}

.logo {
    width: 30px;
    margin-left: 20px;
}

.bar-btn {
    font-size: 25px;
    color: #fff;
    margin-right: 20px;
    cursor: pointer;
}

/* ====== HEADER ====== */


/* Botón hamburguesa */

.bar-btn {
    font-size: 25px;
    color: #fff;
    margin-right: 20px;
    cursor: pointer;
}

/* ====== MENÚ RESPONSIVE ====== */

@media (max-width: 768px) {
    
    
    #check:checked+.bar-btn i::before {
        content: "\f00d";
    }
}

/* ===== MENÚ ABIERTO EN MÓVIL ===== */

@media (max-width: 768px) {
    
    /* Cambia el icono a X */
    #check:checked+.bar-btn i::before {
        content: "\f00d";
    }
}

/* Enlaces del menú */


/* Checkbox oculto */

#check {
    display: none;
}

/* Animación suave de aparición */


/* ===== MENÚ ABIERTO (solo en móvil) ===== */

@media (max-width: 768px) {
    
    /* Cambia el icono a X */
    #check:checked+.bar-btn i::before {
        content: "\f00d";
    }
}


/* Asegúrate de que los contenedores no se desborden */

/* tamaño del título en escritorio */

#nosotros h2 {
    font-size: 36px;
    /* antes podía estar más grande */
    font-weight: 600;
    /* opcional */
    text-align: center;
    /* opcional */
    margin-bottom: 20px;
    /* espacio debajo */
}

@media only screen and (max-device-width: 767px) {
    #nosotros h2 {
        font-size: 24px;
    }
    
    #nosotros p {
        font-size: 13px;
        margin: 0 -1px;
        line-height: 1.6;
        /* Espaciado entre líneas para mejor lectura */
        --tw-text-opacity: 1;
        color: rgba(107, 114, 128, var(--tw-text-opacity));
    }
    
    #nosotros {
        padding: 10px;
        /* Espacio interno general del contenedor */
    }
}

/* ====== BANNER ====== */

.banner-text {
    display: flex;
    flex-direction: column;
    text-align: center;
    z-index: 1;
    padding: 0 20px;
}

.text-header {
    max-width: 600px;
}

.text-header h1,
h5 {
    font-size: 55px;
    color: #fff;
    margin: 0;
    line-height: 1.2;
}

@media (max-width: 768px) {
    .text-header {
        padding: 0 15px;
        margin-top: 80px; /* separación moderada */
    }
}
@media (max-width: 480px) {
    .text-header {
        margin-top: 30px; /* mucho más arriba */
    }
}

@media (max-width: 768px) {
    .text-header {
        width: 100%;
        max-width: 90%;
        margin: 0 auto;
        /* Centra horizontalmente */
        text-align: center;
        /* Centra el texto */
        
    }
    
    nav {
        position: absolute;
    }
@media (max-width: 768px) {
    /* Regla para el texto de bienvenida y títulos en el encabezado */
    .text-header h1, 
    .text-header h5 {
        font-size: 2rem; /* Tamaño de fuente ligeramente menor, más legible en móvil */
        line-height: 1.2;
        letter-spacing: normal; /* Eliminamos el espaciado grande para móvil */
        
        /* CORRECCIÓN CRÍTICA: Eliminamos el margen negativo para que no se salga */
        margin-left: 0; 
        
        /* Aseguramos que ocupe todo el ancho y esté centrado */
        width: 100%;
        text-align: center;
        box-sizing: border-box; /* Previene desbordamiento si agregas padding */
    }
    
    /* Si tienes más títulos que necesitan ajustarse, aplica reglas similares */
    /* .text-header p, .text-header a.btn-a, etc., también deberían estar centrados si es necesario */
}
}

/* Tamaño base: escritorio */

.text-header p {
    color: #fff;
    font-size: 22px;
    margin-top: 40px;
}

/* Tamaño para móvil */

@media (max-width: 768px) {
    .text-header p {
        font-size: 18px;
    }
}

.btn-a {
    display: inline-block;
    margin-top: 10px;
    padding: 10px 25px;
    border-radius: 25px;
    color: #fff;
    background: rgba(0, 4, 255, 0.61);
    opacity: 0;
    transform: translateY(19px);
    animation: revealUp 0.9s forwards;
}

/* IMAGEN DECORATIVA */

.img-header img {
    width: 100%;
    /* ocupa ancho disponible */
    max-width: 600px;
    /* nunca más grande de 600px */
    height: auto;
    /* mantiene proporción */
}

.btn-a:hover {
    background-color: #404be0;
}

.img-header {
    margin-right: 0px;
    margin-top: 5px;
    display: none;
}

.img-header img {
    width: 250px;
}


@media (min-width: 758px) {
    
    
    .footer-social a {
        margin-left: 90px;
    }
    
    .icons-about {
        display: flex;
        justify-content: space-between;
        /* separación uniforme entre tarjetas */
        gap: 20px;
        margin-top: 20px;
        align-items: stretch;
        /* todas las tarjetas con misma altura */
        flex-wrap: nowrap;
        /* evita que bajen a otra línea */
    }
    
    .icon-about {
        flex: 1;
        /* todas ocupan el mismo espacio */
        min-width: 250px;
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: flex-start;
        text-align: center;
        padding: 20px;
        background: #ffffff;
        border-radius: 15px;
        box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1);
        border: 1px solid #e0e0e0;
        transition: transform 0.3s, box-shadow 0.3s;
    }
    
    .icon-about:hover {
        transform: translateY(-5px);
        box-shadow: 0 8px 20px rgba(0, 0, 0, 0.15);
    }
    
    .icon-about img {
        width: 90px;
        margin-bottom: 10px;
    }
    
    .icon-text {
        display: flex;
        flex-direction: column;
        justify-content: flex-start;
        margin: 0;
    }
    
    .icon-text h3 {
        margin-bottom: 10px;
        text-align: center;
        font-size: 1.2rem;
    }
    
    .icon-text p {
        text-align: center;
        font-size: 0.95rem;
        line-height: 1.4;
        color: #333;
        word-wrap: break-word;
        /* asegura que el texto no se salga */
    }
    
    .logo {
        margin-left: 100px;
    }
    
    nav {
        height: 100px;
        margin: 0 auto;
    }
    
    .bar-btn {
        display: none;
    }
    
    
    header {
        height: 100cap;
        /* Puedes mantener 90vh para escritorio, o un valor fijo si prefieres */
        min-height: 30px;
        /* Asegura una altura mínima en escritorio */
        max-height: 690px;
        /* Asegura una altura máxima en escritorio */
        width: auto;
        min-width: none;
    }
    
    /* Ajustamos el .banner-text para que no se estire verticalmente y no empuje la onda */
    .banner-text {
        position: absolute;
        /* Quitamos el position: absolute de la solución anterior */
        /* top: 40px;
         left: 50px;
         Esto se vuelve problemático con el zoom */
        display: flex;
        /* Aseguramos que sea flex para alinear */
        flex-direction: row;
        justify-content: space-between;
        align-items: center;
        /* Centrado verticalmente */
        width: 90%;
        /* Ancho controlado */
        max-width: 1200px;
        /* Ancho máximo */
        height: 100%;
        /* Permite que el contenido se ajuste a la altura del header */
        padding: 0 20px;
        box-sizing: border-box;
        /* Incluye padding en el ancho/alto */
    }
    
    .text-header {
        margin-right: 0;
        transform: none;
        align-self: center;
        /* Esto centra el bloque de texto verticalmente */
        /* CAMBIO AQUÍ: Aseguramos que el texto dentro de text-header esté alineado a la izquierda */
        text-align: left;
    }
    
    .text-header h1,
    h5 {
        font-size: 55px;
        line-height: 60px;
        /* CAMBIO AQUÍ: Aseguramos que el h1 esté alineado a la izquierda en escritorio */
        text-align: left;
    }
    
    .text-header p {
        margin-top: 20px;
        /* CAMBIO AQUÍ: Aseguramos que el p esté alineado a la izquierda en escritorio */
        /* para que el texto contraste */
    }
    
    .img-header {
        margin-left: 20px;
        margin-top: 0 30px;
        /* Puedes ajustar este valor si la imagen está muy arriba */
        display: block;
        background-color: transparent;
        align-self: center;
        /* Centra la imagen verticalmente dentro de banner-text */
    }
    
    .img-header img {
        width: 6200px;
        min-height: 100%;
        /* Altura mínima para asegurar que el contenido quepa */
        max-height: 30%;
        /* Altura máxima para evitar que se estire demasiado en pantallas grandes o zoom */
        margin-top: 30%;
        
        /* El alto se ajusta automáticamente para mantener la proporción */
        display: block;
        /* Útil para evitar pequeños espacios debajo de las imágenes */
        max-width: 300px;
        height: auto;
    }
}

/* ====== SECCIÓN NOSOTROS ====== */

.about {
    text-align: center;
    padding: 30px 0;
    /* corregido */
}

.about h2 {
    font-size: 45px;
    margin-bottom: 25px;
    text-transform: uppercase;
}

.about p {
    font-size: 18px;
    font-weight: 400;
    margin: 35px;
}

.icon-about {
    display: flex;
    align-items: center;
    gap: 15px;
    margin: 20px;
}

.icon-about img {
    width: 70px;
}

.icon-text {
    text-align: left;
    margin-left: -17px;
}

.icon-text p {
    margin: 0;
}

/* 👇 Cuando la pantalla es de 768px o menos (móvil) */

@media (max-width: 768px) {
    .icon-about {
        flex-direction: column;
        /* icono arriba, texto abajo */
        text-align: center;
        /* centrar texto */
    }
    
    .icon-text {
        margin-left: 0;
        /* quitar desplazamiento */
        text-align: center;
        /* centrar texto */
    }
}

@media (min-width: 800px) {
    .btn-b {
        padding: 8px 40px;
        /* más pequeño en escritorio */
        font-size: 12px;
    }
    
    .about {
        padding: 90px 0px;
    }
    
    .icons-about {
        flex-direction: row;
        justify-content: center;
    }
}

/*perfil*/

.service {
    padding: 30px 0px;
}

/* contenedor */

.services-container {
    display: flex;
    flex-direction: column;
}

/* Contenedor general */

.services-container {
    display: flex;
    flex-direction: column;
    /* móvil: todo en columna */
    gap: 20px;
}

/* Cards individuales */

.service-card {
    display: flex;
    flex-wrap: wrap;
    gap: 20px;
    justify-content: center;
}

/* Cards: tamaño por defecto */

.service-card .card {
    flex: 1 1 100%;
    max-width: 350px;
}

/* Texto de la sección */

.services-text {
    order: -1;
    /* siempre arriba en móviles */
    width: 100%;
    text-align: center;
    background: rgba(255, 255, 255, 0.35);
    color: #2c3e50;
    padding: 20px;
    border-radius: 16px;
}

/* Desktop: dos cards por fila y texto a la izquierda */

@media (min-width: 768px) {
    .services-container {
        flex-direction: row;
        justify-content: flex-start;
        align-items: flex-start;
    }
    
    /* Texto a la izquierda */
    .services-text {
        order: 0;
        /* se coloca a la izquierda */
        flex: 1 1 40%;
        text-align: left;
    }
    
    /* Cards a la derecha */
    .service-card {
        flex: 1 1 60%;
        display: flex;
        flex-wrap: wrap;
        gap: 20px;
        margin-top: 41px;
    }
    
    /* Cada card ocupa 45% para 2 por fila */
    .service-card .card {
        flex: 1 1 45%;
        max-width: 45%;
    }
}

@media (min-width: 768px) {
    .services-container {
        flex-direction: row;
        justify-content: center;
        align-items: flex-start;
    }
    
    .service-card {
        flex: 1 1 90%;
        justify-content: flex-start;
        display: flex;
        flex-wrap: wrap;
        gap: 20px;
    }
    
    .services-text {
        flex: 1 1 40%;
        text-align: left;
        background: rgba(255, 255, 255, 0.35);
        /* Transparente sobre azul */
        color: #2c3e50;
        /* Gris azulado oscuro */
        padding: 20px;
        border-radius: 16px;
    }
    
    .service {
        background-position: center center;
        background-repeat: no-repeat;
        background-size: cover;
        padding: 70px 0px;
    }
    
   /* ====== .service CORREGIDO PARA RENDIMIENTO ====== */
.service {
    /* Eliminamos la imagen de fondo, dejando solo el degradado si es necesario. */
    background: linear-gradient(135deg,
                                rgba(26, 115, 232, 0.7),
                                rgba(74, 144, 226, 0.3));
    
    position: relative; /* Clave: Contiene la imagen absoluta */
    padding: 70px 0;
    color: #fff;
    text-align: center;
    margin-top: 7rem;
    overflow: hidden;
}

/* 1. POSICIONAMIENTO DE LA IMAGEN DE FONDO (HTML) */
.service-bg-img {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover; /* Cubre el área */
    z-index: -2; /* Va detrás del contenido y del degradado */
}

/* 2. ASEGURAR QUE EL DEGRADADO FUNCIONE */
/* Como eliminamos el degradado del background principal, lo ponemos en un pseudo-elemento */
.service::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    /* Replicamos el degradado que estaba en el background principal */
    background: linear-gradient(135deg,
                                rgba(26, 115, 232, 0.7),
                                rgba(74, 144, 226, 0.3));
    z-index: -1; /* Va encima de la imagen (-2) */
    pointer-events: none;
}

/* 3. MANTENER EL CONTENIDO VISIBLE */
/* Aseguramos que el contenido principal (texto, cards) flote sobre el fondo */
.service .container {
    position: relative;
    z-index: 1; 
}


}
/* Ocultar la imagen de fondo y el degradado en dispositivos con menos de 768px de ancho */
@media (max-width: 768px) {
    
    /* Oculta la imagen de fondo (la que insertamos en el HTML) */
    .service-bg-img {
        display: none !important; 
    }
    
    /* Oculta la capa de degradado (el pseudo-elemento ::before) */
    .service::before {
        display: none !important;
    }
    
   
}

/* 🎯 Móvil */

@media (max-width: 767px) {
    .services-text {
        text-align: center;
    }
    
    .services-text h2 {
        font-size: 22px;
        margin-bottom: 15px;
        color: #2f327d;
        /* Azul profundo */
        text-align: center;
    }
    
    /* Tarjetas estilo móvil */
    .services-text p {
        border-radius: 16px;
        padding: 18px 20px;
        margin: 12px 0;
        font-size: 15px;
        line-height: 1.5;
        text-align: left;
        position: relative;
        box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
        color: #2c3e50;
    }
    
    .services-text p:nth-child(2) {
        background: #e8d9ff;
    }
    
    /* Lila */
    .services-text p:nth-child(3) {
        background: #d9f0ff;
    }
    
    /* Azul pastel */
    .services-text p:nth-child(4) {
        background: #fff6d9;
    }
    
    /* Amarillo pastel */
    /* Amarillo pastel */
    /* Íconos */
    .services-text p::before {
        content: attr(data-icon);
        font-size: 22px;
        margin-right: 10px;
        display: inline-block;
    }
    
    /* Botón */
    .services-text .btn-c {
        margin-top: 15px;
        background: #004aad;
        /* Azul oscuro */
        color: #fff;
        padding: 12px 20px;
        border-radius: 25px;
        display: inline-block;
        text-decoration: none;
        font-weight: bold;
        box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
        transition: background 0.3s ease;
    }
}

/* ------------- CUADRO TRANSLÚCIDO FUNCIONAL PARA SERVICES ------------- */

.service {
    /* si quieres que la sección tenga imagen + velo */
    position: relative;
    color: #2c3e50;
}

/* caja de texto dentro de la sección de servicios */

.service .services-text {
    flex: 1 1 80%;
    margin-left: auto;
    /* empuja la caja al lado derecho */
    max-width: 520px;
    padding: 24px;
    border-radius: 12px;
    background: rgba(255, 255, 255, 0.5);
    /* fondo claro translúcido para legibilidad */
    color: #2c3e50;
    box-shadow: 0 6px 20px rgba(0, 0, 0, 0.12);
    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);
    z-index: 2;
    text-align: left;
    margin-top: 60px;
}

/* versión alternativa: si prefieres fondo oscuro (letras blancas) */

/* .service .services-text {
     background: rgba(0,0,0,0.45);
     color: #fff;
}
 */

/*card*/

/* 🚫 Ocultar solo en móvil */

@media (max-width: 767px) {
    .service-card {
        display: none;
    }
}

.card {
    background-color: #e8f5f1;
    width: 230px;
    border-radius: 15px;
    padding: 20px;
    text-align: center;
}

.card ul li a:hover {
    transform: scale(1.2);
}

/* 🎯 Versión escritorio */

@media (min-width: 769px) {
    .services-text h2 {
        font-size: 40px;
        margin-bottom: 15px;
        position: static;
        /* se queda en su lugar normal */
    }
}

.services-text p {
    font-size: 18px;
    line-height: 1.4;
}

.btn-c {
    display: inline-block;
    margin-top: 25px;
    padding: 10px 25px;
    background: transparent;
    color: #0011ff;
    border: 2px solid #fff;
    border-radius: 15px;
    transition: 0.3s ease;
}

.btn-c:hover {
    background-color: #fff;
    color: #2209ff;
}

/*indicadores de guia de atencion */

.card-img {
    width: 120px;
    /* tamaño de la foto */
    height: 120px;
    border-radius: 50%;
    /* redonda */
    object-fit: cover;
    /* recorta la imagen si no es cuadrada */
    margin-bottom: 15px;
    /* espacio con iconos */
}

.services-text {
    text-align: center;
    max-width: 600px;
    color: #fff;
    margin-top: 26px;
}

/* ====== PORTAFOLIO MODIFICADO ====== */

.portfolio {
    padding: 50px 0px;
}

.container-portfolio {
    display: flex;
    flex-direction: column;
    align-items: center;
}

.container-portfolio h2 {
    font-size: 29px;
    margin-bottom: 40px;
    
    margin-top: 40px;
    text-align: center;
}

@media (min-width: 768px) {
    .container-portfolio h2 {
        margin-top: 40px;
        text-align: center;
        font-size: 46px !important;
    }
}

.p-txt {
    text-align: center;
    margin: 0px 0px 30px 0px;
}

/* === CONTENEDOR GENERAL DE CADA CARD === */
.content-portfolio {
    /* === FLEXBOX Y ALINEACIÓN (Para evitar sobrecarga y desbordamiento) === */
    display: flex;
    align-items: center;
    justify-content: space-between;
    /* Distribuye el espacio entre los elementos */
    flex-wrap: wrap;
    /* ✨ CLAVE: Permite que los elementos se envuelvan en pantallas pequeñas */
    text-align: left;
    
    /* ✨ Espaciado usando REM */
    gap: 1.875rem;
    /* 30px */
    margin: 2.5rem auto;
    /* 40px auto */
    padding: 1.25rem 1.875rem;
    /* 20px 30px */
    
    /* === DIMENSIONES Y MODELO DE CAJA === */
    
    /* ✨ max-width usando REM */
    max-width: 74.625rem;
    /* 1194px */
    
    /* CLAVE: min-width: 0 para evitar que Flexbox fuerce el desbordamiento */
    min-width: 0;
    
    /* ✨ min-height usando REM */
    min-height: 13.75rem;
    /* 220px */
    
    box-sizing: border-box;
    
    /* === ESTILOS VISUALES === */
    /* ✨ border y border-radius usando REM */
    border: 0.125rem solid #fff;
    /* 2px */
    border-radius: 1.25rem;
    /* 20px */
    background-color: rgba(255, 255, 255, 0.1);
    /* box-shadow: Los valores de sombra se suelen mantener en px/rem. Usamos REM. */
    box-shadow: 0 0.5rem 1.25rem rgba(0, 0, 0, 0.1);
    /* 0 8px 20px */
}

/* Hover para destacar card */

.content-portfolio:hover {
    
    box-shadow: 0 15px 30px rgba(0, 0, 0, 0.2);
    background-color: rgba(255, 255, 255, 0.2);
}

/* === TEXTO Y BOTONES DENTRO DE LA CARD === */

.text-portfolio {
    flex: 1;
    min-width: 0;
    /* evita que el texto expanda la tarjeta */
}

.text-portfolio h3 {
    font-size: 26px;
    margin-bottom: 15px;
    color: #1255ab;
}

.text-portfolio p {
    font-size: 16px;
    line-height: 1.5;
    margin-bottom: 20px;
    color: #333;
}

.text-portfolio p a {
    color: #8200cc;
    text-decoration: underline;
}


.btn-b:hover {
    background: linear-gradient(to bottom, #ff0099, #b300ff);
    transform: scale(1.05);
}

.img-01 {
    width: 25px;
    height: 180px;
    object-fit: cover;
    border-radius: 15px;
    flex-shrink: 0;
}

/* ================= CONTENEDOR ================= */

/* Cards invertidas */
.content-portfolio.reverse {
    flex-direction: row-reverse;
}



/* ================= IMAGEN ================= */

.content-portfolio .img-01 {
    width: 100%;
    max-width: 450px;
    
    object-fit: cover;
    border-radius: 15px;
    flex-shrink: 0;
}



/* ================= TEXTO ================= */

.text-portfolio {
    flex: 1;
}


/* === IMAGEN (FLUIDA – SIN SALTOS) - ESTILOS BASE === */

.content-portfolio .img-01 {
    width: 100%;
    object-fit: cover;
    /* ✨ border-radius usando REM para escalar con el texto */
    border-radius: 0.9375rem;
    /* 15px */
}

/* ================= ESCRITORIO Y TABLET (min-width: 48em) ================= */

/* Usando EM para los Media Queries es la mejor práctica */
@media (min-width: 48em) {
    /* 768px / 16 = 48em */
    
    /* Aplicamos la regla CLAMP solo a partir de tablet */
    .content-portfolio .img-01 {
        /* ✨ CLAMP usando REM: Mejor accesibilidad y escalabilidad */
        max-width: clamp(17.5rem, 38vw, 26.25rem);
    }
    
    /* REVERSE AJUSTE */
    .content-portfolio.reverse .img-01 {
        /* ✨ Margen usando REM */
        margin-left: 2.5rem;
        /* 40px */
        margin-right: 0;
    }
}

@media (min-width: 85.375em) {
    
    /* 1366px / 16 = 85.375em */
    .content-portfolio.reverse .img-01 {
        /* ✨ Margen usando REM */
        margin-left: 3.125rem;
        /* 50px */
    }
}



/* ================================================= */
/* === 1. ESTILOS BASE Y ANIMACIÓN (OPTIMIZADO GPU) === */
/* ================================================= */

.content-portfolio {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 40px;
    margin-bottom: 80px;
    flex-wrap: wrap;
    
    /* --- ESTADO INICIAL --- */
    opacity: 0;
    transform: translate3d(0, 40px, 0);
    /* Mantiene aceleración GPU */
    
    /* --- TRANSICIÓN --- */
    transition: opacity 0.6s ease-out, transform 0.6s ease-out;
    /* Un poco más rápido para evitar lag */
    
    /* --- ⚡️ TRUCOS DE RENDIMIENTO (SOLUCIÓN PANTALLA BLANCA) ⚡️ --- */
    will-change: opacity, transform;
    /* Avisa al navegador */
    backface-visibility: hidden;
    /* Evita parpadeos en Chrome/Safari */
    transform-style: preserve-3d;
    /* Mejora el renderizado 3D */
    perspective: 1000px;
    /* Da profundidad y ayuda a la GPU */
}

/* Estado cuando entra en vista */
.content-portfolio.visible {
    opacity: 1;
  transform: translate3d(0, 0, 0);
    /* Vuelve a posición original */
}

/* ================================================= */
/* === 2. OPTIMIZACIÓN DE IMÁGENES === */
/* ================================================= */



/* ================================================= */
/* === 3. PRECIO (OVERLAY) - Optimizado === */
/* ================================================= */

.price-overlay {
    position: absolute;
    bottom: 15px;
    right: 15px;
    z-index: 10;
    
    /* Usar colores sólidos o menos transparentes es más fácil de renderizar */
    background: rgba(46, 204, 113, 0.95);
    color: white;
    font-weight: bold;
    padding: 8px 15px;
    border-radius: 8px;
    
    /* Sombras más simples consumen menos GPU */
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.2);
    
    backface-visibility: hidden;
    /* Evita parpadeo sobre la imagen */
}

/* ================================================= */
/* === 4. AJUSTES PARA MÓVIL (Mantenido) === */
/* ================================================= */

@media (max-width: 47.9375em) {
    .content-portfolio {
        flex-direction: column;
        text-align: center;
        gap: 1.25rem;
        margin: 1.25rem 0.625rem;
        padding: 0.9375rem;
    }
    
    .content-portfolio.reverse {
        flex-direction: column;
    }
    
    .content-portfolio .img-01 {
        max-width: none;
        width: 80%;
        margin: 0 auto;
    }
}

/*ageda miento de ciat*/

/* de cuadre del imagen y text*/

/* Contenedor del formulario */

.form-container {
    background: #fff;
    border-radius: 12px;
    padding: 30px;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1);
    max-width: 500px;
    margin: auto;
}

input,
select,
textarea {
    border: 1px solid #a3d2ca;
    border-radius: 6px;
    padding: 10px;
    width: 100%;
}

button[type="submit"] {
    background: #4a90e2;
    color: white;
    padding: 12px 20px;
    border-radius: 8px;
    border: none;
    font-weight: 600;
    transition: 0.3s;
}

button[type="submit"]:hover {
    background: #2e3a59;
}

/* comando*/

/* Onda arriba */

/* Onda arriba */

/* Onda arriba */
/* Ajustar el contenido para que no quede tapado */

/* Efecto: subir + opacidad */

@keyframes revealUp {
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* Clases para escalonar la aparición */

.delay-1 {
    opacity: 0;
    transform: translateY(19px);
    animation: revealUp 0.9s forwards;
    animation-delay: 0.25s;
}

.about {
    text-align: center;
    padding: 30px 0;
    /* corregido */
    margin-top: 50px;
    /* <--- AÑADE ESTO: Empujará la sección "Nosotros" hacia abajo */
    /* Puedes ajustar '50px' al valor que necesites para la separación. */
}

.about h2 {
    font-size: 45px;
    margin-bottom: 25px;
    text-transform: uppercase;
}

/* ... (resto de tu CSS) ... */

/* Puedes también ajustar el padding-bottom del header si sientes que el espacio entre el header y "Nosotros" es muy poco. */

/* Por ejemplo, en tu header: */

header {
    /* ... tus estilos actuales ... */
    padding-bottom: 30px;
    /* Puedes añadir un padding-bottom para darle más espacio si es necesario */
}


/* ======== TESTIMONIOS – PSICOLOGÍA ======== */

@media (max-width: 767px) {
    .services-container {
        flex-direction: column;
        align-items: center;
        gap: 25px;
        /* espacio entre cada bloque */
    }
    
    .service-card {
        flex-direction: column;
        align-items: center;
    }
    
    .card {
        width: 90%;
        /* ocupa casi todo el ancho */
        max-width: 350px;
        /* límite para que no se estire demasiado */
        padding: 25px 20px;
        /* más aire dentro */
        font-size: 16px;
        /* texto un poco más grande */
        line-height: 1.6;
        /* mejor legibilidad */
        justify-content: center;
    }
    
    .card-body {
        display: flex;
        flex-direction: column;
        justify-content: center;
        align-items: center;
        text-align: center;
    }
    
    .services-text {
        margin-top: 30px;
        font-size: 16px;
        text-align: center;
    }
    
    .services-text h2 {
        font-size: 26px;
        /* más pequeño en móvil */
        margin-bottom: 15px;
    }
}

/* Solo en móvil */

@media (max-width: 768px) {
    .accordion {
        width: 90%;
        margin: 0 auto;
    }
    
    .accordion-item {
        border-bottom: 1px solid #ddd;
    }
    
    .accordion-header {
        width: 100%;
        padding: 15px;
        background: #f9f9f9;
        border: none;
        outline: none;
        font-size: 18px;
        font-weight: bold;
        display: flex;
        justify-content: space-between;
        align-items: center;
        cursor: pointer;
    }
    
    .accordion-header .arrow {
        transition: transform 0.3s ease;
    }
    
    .accordion-header.active .arrow {
        transform: rotate(180deg);
    }
    
    .accordion-content {
        max-height: 0;
        overflow: hidden;
        padding: 0 15px;
        font-size: 15px;
        color: #444;
        line-height: 1.6;
        transition: max-height 0.3s ease, padding 0.3s ease;
    }
    
    .accordion-content.show {
        max-height: 200px;
        /* Ajusta según la cantidad de texto */
        padding: 10px 15px;
    }
}

/* ====== SECCIÓN ABOUT (Versión Móvil y Tablets Pequeñas, hasta 800px) ====== */

@media (min-width: 768px) and (max-width: 870px) {
    .about {
        padding: 30px 15px;
        margin-top: 0;
        background-color: #f5f9ff;
        display: flex;
        flex-direction: column;
        align-items: center;
        text-align: center;
    }
    
    .about h2 {
        font-size: 27px !important;
        margin-bottom: 20px;
        color: #1a73e8;
        line-height: 1.2;
    }
    
    .about p {
        font-size: 16px;
        color: #333;
        line-height: 1.6;
        margin-bottom: 25px;
        padding: 0 12px;
    }
    
    /* 🔹 Contenedor de los iconos */
    .icons-about {
        display: flex;
        flex-wrap: wrap;
        /* permite 2 arriba y 1 abajo */
        gap: 18px;
        width: 100%;
        position: relative;
    }
    
    /* 🔹 Cada cuadro */
    .icon-about {
        max-width: 343px;
        background: #ffffff;
        border-radius: 16px;
        padding: 22px;
        width: calc(50% - 10px);
        /* dos cuadros arriba, mismo tamaño */
        justify-content: center;
        /* centra horizontalmente */
        align-items: center;
        /* centra verticalmente (si aplica altura) */
        min-height: 220px;
        /* 👈 iguala la altura de todos */
        box-shadow: 0 4px 12px rgba(70, 63, 63, 0.08);
        text-align: center;
        transition: transform 0.2s ease;
        display: flex;
        flex-direction: column;
        justify-content: center;
        /* centra contenido verticalmente */
        align-items: center;
        /* centra horizontalmente */
    }
    
    /* 🔹 El tercer cuadro abajo alineado a la izquierda */
    .icon-about:nth-child(3) {
        width: calc(50% - 10px);
        margin-right: 412px;
        /* lo empuja a la izquierda */
    }
    
    .icon-about:hover {
        transform: translateY(-4px);
    }
    
    .icon-about img {
        width: 70px !important;
        margin-bottom: 14px;
    }
    
    .icon-text h3 {
        font-size: 19px;
        margin-bottom: 8px;
        color: #2c3e50;
        margin-left: 14px;
    }
    
    .icon-text p {
        font-size: 15px;
        color: #555;
        line-height: 1.5;
        margin-left: 7px;
    }
}

@media (max-width: 767px) {
    .about {
        padding: 30px 15px;
        margin-top: auto;
        /* azul muy claro */
    }
    
    .about h2 {
        font-size: 29px !important;
        margin-bottom: 20px;
        text-align: center;
        color: #1a73e8;
    }
    
    .about p {
        font-size: 15px;
        text-align: center;
        margin-bottom: 25px;
        color: #333;
        line-height: 1.6;
    }
    
    .icons-about {
        display: flex;
        flex-direction: column;
        gap: 18px;
    }
    
    .icon-about {
        background: #ffffff;
        border-radius: 16px;
        padding: 20px;
        box-shadow: 0 4px 12px rgba(70, 63, 63, 0.08);
        text-align: center;
    }
    
    .icon-about img {
        width: 64px !important;
        margin-bottom: 12px;
    }
    
    .icon-text h3 {
        font-size: 18px;
        margin-bottom: 8px;
        color: #2c3e50;
    }
    
    .icon-text p {
        font-size: 14px;
        color: #555;
        line-height: 1.5;
    }
}

/* ====== SECCIÓN PRECIOS ====== */

.pricing {
    padding: 80px 20px;
    /* 👈 mismo espacio vertical que otras secciones */
    /* azul claro de fondo */
    text-align: center;
}

.pricing h2 {
    font-size: 36px;
    color: #1252a6;
    margin-bottom: 15px;
}

@media (max-width: 767px) {
    .pricing h2 {
        font-size: 29px !important;
    }
}

.pricing p {
    margin-bottom: 50px;
    /* 👈 separa bien el subtítulo de las tarjetas */
    font-size: 17px;
    color: #444;
    max-width: 700px;
    /* 👈 ancho de texto controlado */
    margin-left: auto;
    margin-right: auto;
}

.pricing-cards {
    display: flex;
    justify-content: center;
    gap: 30px;
    /* 👈 más aire entre tarjetas */
    flex-wrap: wrap;
    /* 👈 se apilan en móvil */
}

.pricing .card {
    background: #fff;
    border-radius: 16px;
    padding: 35px 25px;
    /* 👈 aire interno igual que otras secciones */
    width: 310px;
    box-shadow: 0 6px 18px rgba(0, 0, 0, 0.1);
    transition: transform 0.3s ease;
}

.pricing .card:hover {
    transform: translateY(-8px);
}

.pricing .card.featured {
    border: 2px solid #1a73e8;
    transform: scale(1.05);
}

.price {
    font-size: 28px;
    color: #1a73e8;
    margin: 20px 0;
}

.price span {
    font-size: 14px;
    color: #666;
}

.card ul {
    list-style: none;
    padding: 0;
    margin: 25px 0;
    text-align: left;
}

.card ul li {
    margin: 10px 0;
    font-size: 15px;
    color: #333;
}

.btn {
    display: inline-block;
    background: #1a73e8;
    color: #fff;
    padding: 12px 25px;
    border-radius: 25px;
    text-decoration: none;
    font-weight: bold;
    transition: background 0.3s ease;
}

.btn:hover {
    background-color: #1252a6;
}

/* ====== SECCIÓN AGENDA ====== */

.agenda-section {
    padding: 100px 20px;
    display: flex;
    justify-content: center;
    align-items: center;
}

.agenda-container {
    display: flex;
    justify-content: center;
    align-items: flex-start;
    gap: 60px;
    max-width: 1100px;
    margin: 0 auto;
}

/* Texto/frase */

.agenda-text {
    flex: 1;
    text-align: left;
    color: #2c3e50;
    padding: 20px;
}

.agenda-text h2 {
    color: #1a73e8;
    font-size: 34px;
    margin-bottom: 15px;
}

.agenda-text p {
    font-size: 18px;
    line-height: 1.6;
    font-style: italic;
    color: #444;
}

/* Formulario */

.form-container {
    flex: 1;
    max-width: 500px;
    padding: 40px 30px;
    background: #fff;
    border-radius: 20px;
    box-shadow: 0 8px 30px rgba(0, 0, 0, 0.12);
    animation: slideUp 0.8s ease-out;
}

.form-container h2 {
    color: #1a73e8;
    font-size: 28px;
    text-align: center;
    margin-bottom: 25px;
}

.form-group {
    display: flex;
    flex-direction: column;
    margin-bottom: 14px;
}

.form-group label {
    gap: 1px;
    /* 🔹 reduce el espacio entre el checkbox y el texto */
    font-size: 14.5px;
    line-height: 1.5;
}

.form-group input[type="checkbox"] {
    width: 18px;
    height: 18px;
    accent-color: #1a73e8;
    /* color azul estilo Google */
}

.form-group label {
    margin-bottom: 6px;
    font-size: 15px;
}

.form-container input,
.form-container select,
.form-container textarea {
    padding: 12px 15px;
    border: 1px solid #d0d7e2;
    border-radius: 12px;
    font-size: 15px;
    background: #fafbff;
    /* ✨ OPTIMIZACIÓN: Solo transiciona propiedades de bajo coste */
    transition: border-color 0.3s ease, box-shadow 0.3s ease;
}

/* Ejemplo de cómo cambiarán las propiedades transicionadas al enfocar */
.form-container input:focus,
.form-container select:focus,
.form-container textarea:focus {
    border-color: #007bff;
    /* Color azul al enfocar */
    box-shadow: 0 0 0 3px rgba(0, 123, 255, 0.25);
    /* Sombra suave para enfoque */
    outline: none;
    /* Elimina el foco nativo del navegador */
}

.form-container input:focus,
.form-container select:focus,
.form-container textarea:focus {
    border-color: #1a73e8;
    box-shadow: 0 0 0 3px rgba(26, 115, 232, 0.15);
    outline: none;
    background: #fff;
}

/* Botón */

.form-container button {
    margin-top: 10px;
    background: #1a73e8;
    color: #fff;
    padding: 14px;
    font-size: 16px;
    font-weight: 600;
    border: none;
    border-radius: 25px;
    cursor: pointer;
    width: 100%;
    will-change: background, transform;
    transition: background 0.3s ease, transform 0.2s ease;
}

.form-container button:hover {
    background: #1558b0;
    transform: translateY(-2px);
}

/* Responsive */

@media (max-width: 767px) {
    .agenda-container {
        flex-direction: column;
        gap: 30px;
    }
    
    .agenda-text {
        text-align: center;
    }
    
    .agenda-text h2 {
        font-size: 24px;
    }
    
    .agenda-text p {
        font-size: 16px;
    }
    
    .form-container {
        padding: 25px 20px;
        border-radius: 16px;
    }
}

/* ====== FOOTER ====== */

.site-footer {
    background: #1a73e8;
    color: #fff;
    padding: 50px 20px 20px;
    margin-top: 27px;
}

.footer-container {
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
    max-width: 1200px;
    margin: 0 auto;
    gap: 40px;
}

.footer-container h3,
.footer-container h4 {
    margin-bottom: 15px;
    font-weight: 600;
}

.footer-about p {
    max-width: 300px;
    line-height: 1.6;
}

.footer-links ul {
    list-style: none;
    padding: 0;
}

.footer-links li {
    margin-bottom: 8px;
}

.footer-links a {
    text-decoration: none;
    color: #fff;
    transition: color 0.3s ease;
}

.footer-links a:hover {
    color: #dfe9ff;
}

.footer-social a {
    margin-right: 12px;
    display: inline-block;
    transition: transform 0.3s ease;
}

.footer-social a:hover {
    transform: scale(1.1);
}

.footer-bottom {
    text-align: center;
    
    font-size: 14px;
    border-top: 1px solid rgba(255, 255, 255, 0.2);
    padding-top: 15px;
}

/* Responsive */

@media (max-width: 767px) {
    .footer-container {
        flex-direction: column;
        text-align: center;
        gap: 30px;
    }
    
    .footer-about p {
        margin: 0 auto;
    }
}

/* ====== FOOTER ====== */

.site-footer {
    background: #000000;
    /* Fondo negro */
    padding: 40px 20px;
    
    color: #ffffff;
    /* Texto principal blanco */
}

/* Contenedor de columnas */

.footer-container {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    /* Escritorio: 3 columnas */
    gap: 20px;
    max-width: 1200px;
    margin: 0 auto;
}

/* Columna 1: About */

.footer-about h3 {
    margin-bottom: 10px;
    font-size: 20px;
    color: #1a73e8;
    /* Azul oscuro para buen contraste */
}

.footer-about p {
    line-height: 1.5;
    font-size: 14px;
    color: #ffffff;
    /* Blanco para leer sobre fondo negro */
}

/* Columna 2: Links */

.footer-links h4,
.footer-social h4 {
    margin-bottom: 10px;
    font-size: 18px;
    color: #1a73e8;
    /* Azul oscuro */
}

.footer-links ul {
    list-style: none;
    padding: 0;
}

.footer-links ul li {
    margin: 8px 0;
}

.footer-links ul li a {
    text-decoration: none;
    /* Blanco para enlaces */
    transition: color 0.3s;
}

.footer-links ul li a:hover {
    color: #1a73e8;
    /* Azul al pasar el mouse */
}

/* Columna 3: Redes sociales */

.footer-social {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.footer-social a {
    display: flex;
    align-items: center;
    gap: 8px;
    text-decoration: none;
    font-size: 16px;
    color: #ffffff;
    /* Blanco para iconos y texto */
    transition: transform 0.3s, color 0.3s;
}

.footer-social i {
    font-size: 22px;
}

/* Colores oficiales de redes */

.footer-social a.facebook i {
    color: #1877f2;
}

.footer-social a.instagram i {
    color: #e1306c;
}

.footer-social a.whatsapp i {
    color: #25d366;
}

.footer-social a:hover {
    transform: translateX(5px);
    color: #0b47b5;
    /* Azul más intenso al pasar el mouse */
}

/* Parte inferior */

.footer-bottom {
    text-align: center;
    padding: 15px 0;
    margin-top: 20px;
    border-top: 1px solid #ddd;
    font-size: 14px;
    color: #ffffff;
    /* Blanco para buen contraste */
}

/* ====== RESPONSIVE ====== */

@media (max-width: 768px) {
    .footer-container {
        grid-template-columns: 1fr;
        /* Apilar columnas en móvil */
        text-align: center;
    }
    
    /* Enlaces en columna centrada */
    .footer-links ul {
        display: flex;
        flex-direction: column;
        align-items: inherit;
        gap: 10px;
    }
    
    /* Redes sociales centradas */
    .footer-social {
        flex-direction: column;
        align-items: baseline;
        gap: 15px;
        flex-wrap: wrap;
        max-width: 100%;
        /* Evita que se salga */
    }
    
    .footer-social a {
        flex-direction: row;
        align-items: center;
        justify-content: center;
        font-size: 16px;
        white-space: nowrap;
        /* Evita que WhatsApp se rompa */
    }
    
    .footer-social i {
        font-size: 24px;
    }
}

.testimony__course {
    color: #032a5e;
    /* Azul oscuro para buen contraste */
    font-weight: 600;
    /* Opcional: resaltar un poco */
}

.testimony__subtitle {
    color: #000000;
    /* Negro para el nombre o texto principal */
}

/* LinkedIn separado de otras redes */

.footer-social .linkedin {
    display: flex;
    align-items: center;
    gap: 8px;
    text-decoration: none;
    font-size: 16px;
    color: #0e76a8;
    /* azul LinkedIn */
    margin-bottom: 20px;
    /* separación con los otros iconos */
}

.footer-social .linkedin i {
    font-size: 22px;
}

/* Hover */

.footer-social .linkedin:hover {
    color: #084d7a;
    transform: translateX(5px);
}

/* Otros iconos de redes sociales */

.footer-social a:not(.linkedin) {
    display: flex;
    align-items: center;
    gap: 8px;
    white-space: 40px;
    /* blanco sobre fondo negro */
    transition: transform 0.3s, color 0.3s;
}

.footer-social a:not(.linkedin):hover {
    color: #0b47b5;
    transform: translateX(5px);
}

.logo-container {
    display: flex;
    align-items: center;
    justify-content: center;
    background: transparent;
    padding: 0;
    margin: 0;
}

/* Parte inferior */

/* ===== Estilos base ===== */

.headline {
    font-weight: 700;
    letter-spacing: 0.02em;
}

.top1 {
    color: #ffffff;
    font-size: 15px;
}

.top2 {
    color: #fef6e4;
    font-size: 14px;
}

.logo-container img.logo {
    width: 60px;
    height: auto;
    object-fit: contain;
    margin: 6px 0;
    margin-top: 30px;
    vertical-align: middle;
}

/* ===== Logo solo en escritorio ===== */

@media (min-width: 769px) {
    .logo-container img.logo {
        width: 60px;
        height: auto;
        object-fit: contain;
        margin: 6px 0;
        margin-top: 9px;
        margin-left: 50px;
        vertical-align: middle;
    }
}

.brand {
    display: flex;
    align-items: center;
    gap: 8px;
    
    font-weight: 600;
    margin-top: 5px;
}

.psicolo {
    color: #f0dc2bff;
    font-size: 14px;
    letter-spacing: 0.03em;
}

.dotonline {
    color: #fff7d6;
    font-size: 14px;
    letter-spacing: 0.03em;
    margin-left: -8px;
}

.small-online {
    font-size: 11px;
    color: #1100ff;
    text-decoration: underline;
    text-underline-offset: 3px;
    margin-left: 3px;
    font-weight: 700;
}

/* ===== 📱 Móviles (texto más pequeño y centrado) ===== */

@media (max-width: 733px) {
    .logo-card {
        display: flex;
        flex-direction: column;
        align-items: center;
        text-align: center;
        transform: scale(1);
        margin-top: 4px;
    }
    
    .logo-container img.logo {
        width: 70px;
        margin-top: 5px;
    }
    
    .top1 {
        font-size: 13px;
    }
    
    .top2 {
        font-size: 12px;
    }
    
    .psicolo,
    .dotonline {
        font-size: 12px;
    }
    
    .small-online {
        font-size: 9px;
    }
    
    header,
    nav {
        display: flex;
        align-items: center;
        justify-content: space-between;
        flex-wrap: nowrap;
    }
}

/* ===== 📱 Horizontal pequeño (acostado) ===== */

@media (max-height: 500px) and (orientation: landscape) {
    .logo-card {
        transform: scale(0.95);
        line-height: 1.2;
        margin-top: 5px;
    }
    
    .logo-container img.logo {
        width: 60px;
        margin-top: 5px;
    }
    
    .top1 {
        font-size: 12px;
    }
    
    .top2 {
        font-size: 11px;
    }
    
    .psicolo,
    .dotonline {
        font-size: 11px;
    }
    
    .small-online {
        font-size: 8px;
    }
    
    header,
    nav {
        flex-wrap: wrap;
        justify-content: center;
    }
}

.site-footer {
    background: #DAEAD9;
    padding: 60px 20px 30px;
    
}

.footer-container {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
    gap: 30px;
    max-width: 1200px;
    margin: auto;
}

.footer-container h3,
.footer-container h4 {
    color: #082449;
    margin-bottom: 15px;
}

.footer-about p {
    line-height: 1.5;
    color: #121212;
    margin-top: -10px;
}

.footer-links ul {
    list-style: none;
    padding: 0;
    margin: 0;
}

.footer-links li {
    margin-bottom: 8px;
}

.footer-links a {
    text-decoration: none;
    color: #333;
    transition: color 0.3s;
}

.footer-links a:hover {
    color: #0e4db9;
}

.footer-social a {
    display: flex;
    align-items: center;
    gap: 8px;
    text-decoration: none;
    color: #333;
    margin-bottom: 10px;
    transition: color 0.3s;
}

.footer-social a:hover {
    color: #1a73e8;
}

.footer-location p {
    font-size: 1rem;
    color: #333;
    text-align: left; /* Asegura alineación a la izquierda */
    margin-left: -32px; /* Tu diseño original para PC */
    line-height: 1.5;  /* Mejora la lectura en móviles */
}

/* Cuando la pantalla sea más angosta (celulares) */
@media (max-width: 768px) {
    .footer-location p {
        margin-left: 0;       /* Quitamos el margen negativo para que no se salga */
        padding-left: 15px;   /* Un pequeño margen interno para que no pegue al borde */
        font-size: 0.95rem;   /* Ajuste ligero de tamaño para pantallas pequeñas */
    }
}

/* Para teléfonos extremadamente delgados */
@media (max-width: 320px) {
    .footer-location p {
        padding-left: 10px;
        font-size: 0.9rem;
    }
}

.footer-location a {
    color: #1a73e8;
    text-decoration: none;
    font-weight: 600;
}

.footer-location a:hover {
    text-decoration: underline;
}

/* Línea inferior del footer */

.footer-bottom {
    text-align: center;
    margin-top: 40px;
    padding-top: 20px;
    border-top: 1px solid #ddd;
    font-size: 0.9rem;
    color: #555;
}

/* Adaptación móvil */

@media (max-width: 768px) {
    .footer-location p {
        font-size: 1rem;
        color: #333;
        
    }
    
    .site-footer {
        padding: 40px 15px 20px;
    }
    
    .footer-container {
        grid-template-columns: 1fr;
        text-align: initial;
    }
    
    .footer-social a {
        justify-content: initial;
    }
}

.footer-logo-text {
    display: flex;
    align-items: center;
    /* Centra verticalmente el texto con el logo */
    justify-content: center;
    /* Centra todo horizontalmente */
    gap: 1px;
    /* Espacio entre logo y texto */
    margin-left: -30px;
}

.logo-footer {
    width: 120px;
    /* Ajusta el tamaño del logo */
    height: auto;
}

.footer-logo-text h3 {
    font-size: 1.4em;
    /* Tamaño del texto */
    font-weight: bold;
    color: #333;
    /* Color del texto */
    margin: 0;
    margin-left: 30px;
    /* Elimina espacio extra */
}

/* En pantallas pequeñas */

@media (max-width: 600px) {
    .footer-logo-text {
        flex-direction: column;
        /* Logo arriba, texto abajo en móvil */
    }
    
    .logo-footer {
        width: 140px;
        margin-left: 26px;
    }
}

/* BOTÓN PRINCIPAL (reemplaza o mejora el .btn-a) */

.btn-principal {
    display: inline-block;
    background-color: #2ecc71;
    /* Verde jade, coherente con tu header */
    color: #fff;
    padding: 12px 28px;
    border-radius: 30px;
    font-size: 1rem;
    font-weight: 600;
    letter-spacing: 0.5px;
    box-shadow: 0 4px 12px rgba(46, 204, 113, 0.4);
    transition: all 0.3s ease;
}

.btn-principal:hover {
    background-color: #27ae60;
    transform: translateY(-2px);
    box-shadow: 0 6px 16px rgba(39, 174, 96, 0.5);
}

/* TITULARES GLOBALES */

h1,
h2,
h3,
h4 {
    
    color: #1255ab;
}

/* Jerarquía visual */

h2 {
    font-size: 2rem;
    color: #1255ab;
    /* verde jade para secciones */
    margin-bottom: 20px;
}

h3 {
    font-size: 1.4rem;
    color: #555;
    margin-bottom: 10px;
}

/* En móviles */

@media (max-width: 768px) {
    
    h1,
    h5,
    h4 {
        font-size: 2.2rem;
    }
    
    h2 {
        font-size: 1.6rem;
    }
    
    h3 {
        font-size: 1.2rem;
    }
}

/* ======== BOTÓN ======== */

.btn-b {
    display: inline-block;
    background: linear-gradient(90deg, #4a90e2, #50e3c2);
    color: white;
    padding: 12px 24px;
    border-radius: 25px;
    font-weight: 600;
    text-decoration: none;
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.2);
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.btn-b:hover {
    transform: scale(1.05);
    box-shadow: 0 8px 20px rgba(0, 0, 0, 0.25);
}



/* === CONTENEDOR GENERAL === */

.assessments-section {
    max-width: 1334px;
    margin: 0 auto;
    padding: 40px 20px;
    overflow: hidden;
    box-sizing: border-box;
}

/* === CONTENEDOR INTERNO === */

.assessments-container {
    display: flex;
    flex-direction: column;
    /* Imagen arriba, texto abajo por defecto */
    align-items: center;
    text-align: center;
    gap: 30px;
}

/* === IMAGEN === */

.assessments-image img {
    width: 100%;
    max-width: 420px;
    height: auto;
    border-radius: 10px;
    object-fit: cover;
}

/* === TEXTO === */

.assessments-text {
    max-width: 500px;
    padding: 0 10px;
}

.assessments-text h1 {
    font-size: 1.6rem;
    margin-bottom: 15px;
    line-height: 1.3;
}

.assessments-text span {
    color: #146137;
}

.assessments-text p {
    font-size: 1rem;
    color: #555;
    line-height: 1.6;
}

/* === SOLO MÓVIL (hasta 600px) === */

@media (max-width: 600px) {
    
    /* Reorganiza para que el texto quede arriba y la imagen abajo */
    .assessments-container {
        display: flex;
        flex-direction: column;
        /* Texto arriba, imagen abajo */
        align-items: center;
        justify-content: center;
        text-align: center;
        gap: 25px;
    }
    
    .assessments-text {
        order: 1;
        padding: 0 10px;
        max-width: 90%;
    }
    
    .assessments-image {
        order: 2;
    }
    
    .assessments-text h1 {
        font-size: 1.4rem;
        margin-bottom: 10px;
    }
    
    .assessments-text p {
        font-size: 1rem;
        line-height: 1.5;
    }
    
    .assessments-image img {
        max-width: 320px;
        margin-top: 10px;
    }
    
    .about-title {
        font-size: 29px;
        margin-bottom: 40px;
        text-align: center;
        margin-top: 8px;
    }
    
    .assessments-container {
        flex-direction: column;
        align-items: center;
        justify-content: center;
        text-align: center;
        gap: 25px;
    }
    
    .assessments-text {
        padding: 0 10px;
        max-width: 90%;
    }
    
    .assessments-text h1 {
        font-size: 1.3rem;
        margin-bottom: 10px;
    }
    
    .assessments-text p {
        font-size: 0.9rem;
        line-height: 1.5;
    }
    
    .assessments-image img {
        max-width: 320px;
        margin-top: 10px;
    }
    
    .about-title {
        font-size: 29px;
        margin-bottom: 40px;
        text-align: center;
        margin-top: 8px;
    }
    
    .team-carousel-dots {
        display: flex;
        justify-content: center;
        gap: 30px;
        margin-left: -4px;
        margin-top: 35px;
    }
}

/* === TABLET NORMAL (601px a 767px) === */

@media (min-width: 601px) and (max-width: 767px) {
    .assessments-container {
        flex-direction: column;
        /* Imagen arriba, texto abajo */
        text-align: center;
        gap: 40px;
    }
    
    .assessments-image img {
        max-width: 520px;
    }
    
    .assessments-text {
        max-width: 600px;
        font-size: 1.05rem;
    }
    
    .assessments-text h1 {
        font-size: 1.8rem;
    }
    
    .about-title {
        text-align: center;
        font-size: 46px !important;
        font-weight: 600;
        margin-bottom: 2rem;
        color: #1a73e8;
    }
}

/* === TABLET HORIZONTAL (768px a 900px) → lado a lado pero adaptado === */

@media (min-width: 768px) and (max-width: 1024px) {
    .assessments-container {
        flex-direction: row;
        /* Texto e imagen lado a lado */
        justify-content: space-between;
        align-items: center;
        text-align: left;
        gap: 25px;
        flex-wrap: nowrap;
        margin-top: -30px;
    }
    
    .about-title {
        text-align: center;
        font-size: 46px !important;
        font-weight: 600;
        margin-bottom: 2rem;
        color: #505bff;
    }
    
    .assessments-text {
        flex: 1;
        max-width: 47%;
        padding-right: 10px;
    }
    
    .img-duracion {
        margin-top: -24px;
        margin-left: -6px;
    }
    
    .img-psicologico {
        margin-top: 147px;
        margin-left: 23px;
    }
    
    .assessments-image {
        flex: 1;
        display: flex;
        justify-content: flex-end;
    }
    
    .assessments-image img {
        width: 100%;
        max-width: 131%;
        height: auto;
    }
    
    .text-duracion {
        margin-left: 30px;
    }
    
    .assessments-text h1 {
        font-size: 1.5rem;
        margin-top: 89px;
        line-height: 2rem;
    }
    
    .assessments-text p {
        font-size: 15px;
        line-height: 24px;
    }
}

/* === ESCRITORIO (desde 1025px en adelante) === */

@media (min-width: 1025px) {
    .agenda-section {
        padding: 100px 20px;
        display: flex;
        justify-content: center;
        align-items: center;
        margin-top: 150px;
    }
    
    .assessments-container {
        flex-direction: row;
        justify-content: center;
        align-items: center;
        text-align: left;
        gap: 60px;
        margin-top: 9rem;
    }
    
    .assessments-text p {
        padding-top: 1.25rem;
        
        font-size: 19px;
    }
    
    .assessments-text {
        flex: 1;
        padding-left: 11px;
        max-width: 600px;
    }
    
    .assessments-image {
        flex: 1;
        display: flex;
        justify-content: flex-end;
    }
    
    .assessments-image img {
        width: 100%;
        max-width: 600px;
        height: auto;
    }
    
    .assessments-text h1 {
        font-weight: 600;
        font-size: 32px;
        line-height: 2rem;
        
    }
    
    .member-info {
        flex: 1 1 100px;
        /* crece o se encoje según el espacio disponible */
        min-width: 250px;
        /* tamaño mínimo del contenedor */
        display: flex;
        /* activa flexbox */
        flex-direction: column;
        /* organiza los elementos en columna */
        gap: 22px;
        /* espacio entre cada elemento hijo */
    }
    
    .about-title {
        text-align: center;
        font-size: 46px !important;
        font-weight: 600;
        /* Negrita media */
        margin-bottom: 2rem;
        /* Espaciado con lo que sigue */
        color: #1252a6;
        /* Mantén un tono coherente con tu diseño */
    }
}

/* ===== Animación al aparecer ===== */

.icon-about {
    opacity: 0;
    transform: translateY(50px);
    transition: opacity 0.8s ease-out, transform 0.8s ease-out;
}

.icon-about.visible {
    opacity: 1;
    transform: translateY(0);
}

.icon-about:nth-child(1) {
    transition-delay: 0.1s;
}

.icon-about:nth-child(2) {
    transition-delay: 0.2s;
}

.icon-about:nth-child(3) {
    transition-delay: 0.3s;
}

/* ===== Lista con indicadores numerados ===== */

.assessments-list {
    list-style: none;
    padding: 0;
    margin: 0;
}

.assessments-list li {
    position: relative;
    padding-left: 40px;
    /* espacio para el número */
    margin-bottom: 20px;
    font-size: 1rem;
    line-height: 1.6;
    color: #555;
    
    transform: translateY(40px);
    transition: opacity 0.8s ease-out, transform 0.8s ease-out;
}

.assessments-list li.visible {
    opacity: 1;
    transform: translateY(0);
}

.assessments-list li .indicator {
    position: absolute;
    left: 0;
    top: 0;
    width: 28px;
    height: 28px;
    background-color: #2ecc71;
    color: white;
    border-radius: 50%;
    text-align: center;
    line-height: 28px;
    font-weight: bold;
    font-size: 0.9rem;
}

/* Estilo Base */
.faq-container {
    max-width: 900px;
    margin: 40px auto;
    
}

.faq-title {
    text-align: center;
    margin-bottom: 30px;
    font-size: 2.5em;
    color: #333;
}

/* Estilo de la Tarjeta FAQ */
.faq-item {
    margin-bottom: 15px;
    background-color: #ffffff;
    border-radius: 10px;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
    /* Sombra para efecto de elevación */
    overflow: hidden;
}

/* Estilo del Botón de Pregunta */
.faq-question {
    display: flex;
    /* Para alinear el texto y el icono */
    justify-content: space-between;
    align-items: center;
    background-color: #ffffff;
    color: #156539;
    /* Color de tu marca */
    cursor: pointer;
    padding: 20px 25px;
    width: 100%;
    text-align: left;
    border: none;
    border-bottom: 1px solid #eee;
    outline: none;
    font-size: 1.1em;
    font-weight: 600;
    transition: all 0.3s ease;
}

.faq-item.active .faq-question {
    background-color: #156539;
    /* Fondo verde cuando está activo */
    color: #ffffff;
    /* Letras blancas cuando está activo */
}

/* Icono de flecha (usa un pseudo-elemento) */
.faq-question::after {
    content: "+";
    font-size: 1.5em;
    transition: transform 0.3s ease;
}

.faq-item.active .faq-question::after {
    content: "−";
    /* El signo cambia a menos cuando está abierto */
    transform: rotate(180deg);
}

/* Estilo de la Respuesta */
.faq-answer {
    background-color: #f7fcf9;
    padding: 0 25px;
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.4s ease-in-out, padding 0.4s ease-in-out;
    color: #555;
    font-size: 1em;
    line-height: 1.5;
}

.faq-item.active .faq-answer {
    max-height: 400px;
    /* Suficiente altura para que se despliegue */
    padding: 15px 25px;
}

.image-container {
    position: relative;
    display: inline-block;
}

.price-overlay {
    position: absolute;
    bottom: 10px;
    right: 10px;
    background: rgba(46, 204, 113, 0.9);
    /* color verde suave */
    color: white;
    font-weight: bold;
    padding: 8px 12px;
    border-radius: 10px;
    font-size: 16px;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.15);
    transition: transform 0.3s ease, background 0.3s ease;
}

/* efecto al pasar el mouse */

.image-container:hover .price-overlay {
    transform: scale(1.05);
    background: rgba(39, 174, 96, 1);
}

/* En móvil el precio pasa debajo del texto */

@media (max-width: 767px) {
    .price-overlay {
        position: static;
        display: block;
        margin: 10px auto;
        text-align: center;
        background: rgba(230, 244, 255, 0.9);
        color: #1355aa;
    }
}

/* ======================================================= 🔹 DESACTIVAR TODAS LAS ANIMACIONES EN DISPOSITIVOS LENTOS 🔹 Mantener el contenido visible sin efectos ======================================================= */

/* ------------------------------
   BOTÓN + TEXTO (BLOG + FLECHA)
-------------------------------*/

.juegos-wrapper {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    position: relative;
}

.dropdown-toggle {
    margin: 0;
    padding: 0;
    background: none;
    border: none;
    font-size: 14px;
    line-height: 1;
    cursor: pointer;
    color: white;
    display: inline-flex;
    align-items: center;
}

/* Contenedor principal */

.has-dropdown {
    position: relative;
}

/* ------------------------------
   DROPDOWN BASE
-------------------------------*/

.dropdown {
    list-style: none;
    background: #2e56cc;
    border-radius: 8px;
    box-shadow: 0 3px 12px rgba(0, 0, 0, 0.15);
    position: absolute;
    left: 0;
    top: calc(100% + 10px);
    opacity: 1;
    max-height: 0;
    overflow: hidden;
    pointer-events: none;
    transition: opacity 0.25s ease, max-height 0.25s ease;
    z-index: 999999;
}

.dropdown li a {
    display: block;
    padding: 12px 18px;
    white-space: nowrap;
}

/* ------------------------------
   ESCRITORIO (>= 769px)
-------------------------------*/

@media (min-width: 769px) {
    .dropdown.open {
        opacity: 1;
        max-height: 500px;
        pointer-events: auto;
        padding: 10px 0;
    }
}

/* ------------------------------
   MÓVIL (<= 768px)
-------------------------------*/

@media (max-width: 768px) {
    .dropdown {
        position: static;
        background: #2e56cc;
        border-radius: 0;
        box-shadow: none;
        opacity: 1;
        max-height: none;
        pointer-events: auto;
        display: none;
        padding: 0;
    }
    
    .dropdown.open {
        display: block !important;
    }
    
    .dropdown li a {
        padding: 12px;
        display: block;
    }
}

/* Para que el dropdown no sea cortado */

.blog-presentacion {
    padding: 50px 20px;
  
    text-align: center;
}

.titulo-blog h2 {
    font-size: 2.2rem;
    font-weight: 700;
    margin-bottom: 10px;
}

.titulo-blog p {
    color: #666;
    margin-bottom: 40px;
}

.blog-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 25px;
}

.blog-card {
    background: #fff;
    padding: 20px;
    border-radius: 14px;
    box-shadow: 0 3px 20px rgba(0, 0, 0, 0.06);
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.blog-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 8px 25px rgba(0, 0, 0, 0.1);
}

.blog-card img {
    width: 100%;
    border-radius: 12px;
    margin-bottom: 15px;
}

.blog-card h3 {
    font-size: 1.3rem;
    font-weight: 600;
}

.blog-card p {
    color: #555;
    margin: 10px 0 20px;
}

.btn-blog {
    display: inline-block;
    padding: 10px 20px;
    background: #3366ff;
    color: white;
    border-radius: 8px;
    text-decoration: none;
    font-weight: 600;
}

.btn-blog:hover {
    background: #254eda;
}

.price-overlay {
    font-weight: bold;
    padding: 5px 10px;
    border-radius: 8px;
    display: inline-block;
    transition: all 0.3s ease;
}

.price-overlay.animar {
    transform: scale(1.2);
    background-color: #a5a728;
    transition: all 0.3s ease;
}

#descuento {
    width: 100%;
    transition: 0.3s;
}

#moneda {
    width: 100%;
    padding: 8px;
    border-radius: 5px;
    transition: 0.3s;
}

/* Estilos Generales y Reseteo */
.carrusel-reseñas::-webkit-scrollbar {
    display: none;
}

.carrusel-reseñas {
    -ms-overflow-style: none;
    scrollbar-width: none;
    scroll-behavior: smooth;
}

/* Estilos globales de la sección (Desktop/Base) */
.titulo-principal {
    color: #1252a6;
    font-size: 2.3rem;
    margin-bottom: 10px;
}

.color-destacado {
    color: #156539;
}

.subtitulo {
    color: #444;
    margin-bottom: 20px;
    font-size: 1.1rem;
}

/* Estilos de Calificación Total */
.calificacion-total {
    margin-bottom: 40px;
    border-bottom: 2px solid #ddd;
    padding-bottom: 20px;
}

.estrellas {
    font-size: 2.2rem;
    color: #ffc107;
    line-height: 1;
}

.texto-calificacion {
    font-size: 1.4rem;
    color: #333;
    font-weight: 600;
    margin-top: 5px;
}

.detalle-calificacion {
    font-size: 1rem;
    color: #666;
    font-weight: 400;
}

/* Estilos del Carrusel */
.carrusel-wrapper {
    position: relative;
    max-width: 900px;
    margin: 0 auto;
}

.carrusel-reseñas {
    display: flex;
    overflow-x: scroll;
    width: 100%;
    margin: 0 auto;
    padding: 20px 0;
    scroll-snap-type: x mandatory;
}

/* === REGLA CRÍTICA PARA QUE NO SALGA OVALADO === */
.perfil-img {
    width: 50px;
    height: 50px;
    /* Asegura que la altura sea igual a la anchura (cuadrado perfecto) */
    border-radius: 50%;
    /* Lo convierte en un círculo perfecto */
    margin-right: 15px;
    
    /* FUERZA a la imagen a cubrir el área, incluso si tiene que recortar bordes */
    object-fit: cover;
}

/* Estilos de la tarjeta */
.perfil-info {
    display: flex;
    align-items: center;
    margin-bottom: 15px;
}

.reseña-card:nth-child(odd) .perfil-img {
    border: 2px solid #1252a6;
}

.reseña-card:nth-child(even) .perfil-img {
    border: 2px solid #156539;
}

/* ... [Resto del CSS de botones y enlaces] ... */

/* ********** ADAPTACIÓN PARA MÓVILES ********** */
@media (max-width: 768px) {
    /* ... [Ocultar botones de escritorio, mostrar botones móviles] ... */
    
    /* Aumenta el tamaño de la imagen en móvil */
    .perfil-img {
        width: 60px;
        /* 60px de ancho */
        height: 60px;
        /* 60px de alto (mantiene el cuadrado para que sea redondo) */
        margin-right: 15px;
    }
    
    /* ... [Resto del CSS móvil] ... */
}

/* Estilos de la Tarjeta de Reseña (Desktop) */
.reseña-card {
    flex: 0 0 auto;
    width: 300px;
    margin: 0 10px;
    background: white;
    padding: 20px;
    border-radius: 12px;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
    text-align: left;
    scroll-snap-align: center;
}

.perfil-info {
    display: flex;
    align-items: center;
    margin-bottom: 15px;
}

/* El borde se alterna entre azul y verde */
.reseña-card:nth-child(odd) .perfil-img {
    border: 2px solid #1252a6;
}

.reseña-card:nth-child(even) .perfil-img {
    border: 2px solid #156539;
}

.nombre-usuario {
    font-weight: 600;
    color: #333;
    display: block;
}

.estrellas-reseña {
    color: #ffc107;
    font-size: 1rem;
}

.fecha-reseña {
    font-size: 0.9rem;
    color: #888;
    margin-bottom: 10px;
}

.texto-reseña {
    color: #555;
    border-left: 3px solid #e0e0e0;
    padding-left: 10px;
}

.texto-sin-opinion {
    font-style: italic;
}

/* Estilos de los Botones de Navegación (Desktop) */
.carrusel-btn {
    
    top: 50%;
    
    background: #1252a6;
    color: white;
    border: none;
    border-radius: 50%;
    width: 40px;
    height: 40px;
    font-size: 1.5rem;
    cursor: pointer;
    z-index: 10;
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.2);
    transition: all 0.3s;
    display: block;
    /* Visible en desktop */
}

#prev-btn {
    left: -50px;
}

#next-btn {
    right: -50px;
}

.carrusel-btn:hover {
    background-color: #156539;
    transform: translateY(-50%) scale(1.1);
}

/* Controles Móviles: Ocultos por defecto */
.controles-movil {
    display: none;
    text-align: center;
    margin-top: 20px;
}

.carrusel-btn-movil {
    background-color: #1252a6;
    color: white;
    border: none;
    padding: 10px 20px;
    border-radius: 30px;
    font-size: 1rem;
    cursor: pointer;
    margin: 0 5px;
    transition: background-color 0.3s;
}

.carrusel-btn-movil:hover {
    background-color: #156539;
}

/* Estilos del Botón de Google */
.boton-reseña {
    display: inline-block;
    background-color: #1252a6;
    color: white;
    padding: 12px 28px;
    border-radius: 50px;
    font-size: 1rem;
    font-weight: 500;
    text-decoration: none;
    box-shadow: 0 4px 10px rgba(26, 115, 232, 0.3);
    transition: all 0.3s ease;
    margin-top: 40px;
}

.boton-reseña:hover {
    background-color: #1558b0;
    transform: scale(1.05);
}

/* ********** ADAPTACIÓN PARA MÓVILES (Max 768px) ********** */
@media (max-width: 768px) {
    
    /* Oculta los botones de escritorio y muestra los de móvil */
    .carrusel-btn {
        display: none;
    }
    
    .controles-movil {
        display: block;
        /* Muestra los botones de control juntos */
    }
    
    /* Ajuste de la sección y tipografía */
    #reseñas {
        padding: 40px 10px;
    }
    
    .titulo-principal {
        font-size: 1.8rem;
    }
    
    .subtitulo {
        font-size: 1rem;
    }
    
    /* Adaptación de las tarjetas (más ancho) */
    .reseña-card {
        width: 85vw;
        margin: 0 10px;
    }
    
    /* Ajuste de las fotos de perfil (más grandes en móvil) */
    .perfil-img {
        width: 60px;
        height: 60px;
        margin-right: 15px;
    }
}




/*carrusel profecional*/

/* ================================================= */
/* ESTILOS BASE Y ESCRITORIO (CARRUSEL 3D) */
/* ================================================= */

.team-layout {
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: 40px;
    /* Más espacio entre carrusel y info */
    margin: 60px auto;
    max-width: 1200px;
    padding: 0 20px;
}

/* Contenedor del Carrusel (Base 3D) */
.team-carousel-container {
    flex: 1 1 500px;
    min-width: 300px;
    height: 480px;
    perspective: 1000px;
    display: flex;
    justify-content: center;
    align-items: center;
    position: relative;
}

/* Pista de Carrusel (Base 3D) */
.team-carousel-track {
    transform-style: preserve-3d;
    transition: transform 0.8s ease;
    position: relative;
    width: 100%;
    height: 100%;
    display: flex;
    
    align-items: center;
}

/* Tarjeta (Base 3D) */
.team-carousel-card {
    position: absolute;
    width: 280px;
    height: 400px;
    border-radius: 20px;
    overflow: hidden;
    box-shadow: 0 20px 40px rgba(0, 0, 0, 0.15);
    transition: all 0.8s ease;
    cursor: pointer;
}

.team-carousel-card img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* Transformaciones 3D - Escritorio */
.team-carousel-card.center {
    z-index: 10;
    transform: scale(1.1) translateZ(0);
}

.team-carousel-card.left-1 {
    z-index: 5;
    transform: translateX(-220px) scale(0.9) translateZ(-100px);
    opacity: 0.9;
    filter: grayscale(100%);
}

.team-carousel-card.right-1 {
    z-index: 5;
    transform: translateX(220px) scale(0.9) translateZ(-100px);
    opacity: 0.9;
    filter: grayscale(100%);
}

.team-carousel-card.left-2 {
    z-index: 1;
    transform: translateX(-440px) scale(0.8) translateZ(-300px);
    opacity: 0.7;
    filter: grayscale(100%);
}

.team-carousel-card.right-2 {
    z-index: 1;
    transform: translateX(440px) scale(0.8) translateZ(-300px);
    opacity: 0.7;
    filter: grayscale(100%);
}

.team-carousel-card.hidden {
    opacity: 0;
    pointer-events: none;
}


/* Flechas de navegación */
.team-carousel-arrow {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    background: rgba(8, 42, 123, 0.7);
    color: white;
    width: 45px;
    height: 45px;
    border-radius: 50%;
    border: none;
    font-size: 1.5rem;
    cursor: pointer;
    z-index: 20;
    transition: all 0.3s ease;
}

.team-carousel-arrow:hover {
    transform: translateY(-50%) scale(1.1);
    background: rgba(0, 0, 0, 0.8);
}

.team-carousel-arrow.left {
    left: 10px;
}

.team-carousel-arrow.right {
    right: 10px;
}

/* Puntos de navegación */
.team-carousel-dots {
    display: flex;
    justify-content: center;
    gap: 12px;
    margin-top: 30px;
}

.team-carousel-dot {
    width: 14px;
    height: 14px;
    border-radius: 50%;
    background: rgba(8, 42, 123, 0.3);
    cursor: pointer;
    transition: all 0.3s ease;
}

.team-carousel-dot.active {
    background: rgb(8, 42, 123);
    transform: scale(1.3);
}

/* Información del miembro (Mejor espaciado) */
.member-info {
    flex: 1 1 400px;
    min-width: 250px;
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.member-info h2 {
    font-size: 1.8rem;
    margin: 0;
    color: #0b2a75;
}

.member-info p {
    margin: 5px 0;
    color: #333;
    line-height: 1.5;
    /* Mejor legibilidad */
}

.member-contacto {
    font-size: 1rem;
    color: #555;
    margin-top: 15px;
    font-style: italic;
}

/* ================================================= */
/* 📱 MEDIA QUERY: AJUSTES MÓVILES (max-width: 900px) */
/* ================================================= */

@media screen and (max-width: 900px) {
    .team-layout {
        flex-direction: column;
        align-items: center;
        margin: 40px auto;
        gap: 30px;
        padding: 0 10px;
        /* Reducir padding horizontal en móvil */
    }
    
    /* 1. Contenedor del Carrusel (Diseño de Tarjeta 2D) */
    .team-carousel-container {
        height: 400px;
        width: 95%;
        min-width: unset;
        border-radius: 15px;
        box-shadow: 0 10px 20px rgba(0, 0, 0, 0.1);
        /* Sombra para destacarlo */
        background-color: #fff;
        perspective: none;
        /* Desactiva el 3D */
    }
    
    /* 2. Reestablecer el Track a 2D */
    .team-carousel-track {
        transform-style: flat;
    }
    
    /* 3. Transformar Tarjeta: Ocultar no centrales, Aplanar la central */
    .team-carousel-card {
        width: 90%;
        height: 90%;
        /* Posicionamiento absoluto y centrado */
        left: 50%;
        top: 50%;
        box-shadow: none;
        transition: opacity 0.3s ease, transform 0.3s ease;
        /* Transición más rápida */
    }
    
    /* Aplana y Centra TODAS las tarjetas */
    .team-carousel-card:not(.center),
    .team-carousel-card.left-1,
    .team-carousel-card.right-1,
    .team-carousel-card.left-2,
    .team-carousel-card.right-2,
    .team-carousel-card.hidden {
        transform: translate(-50%, -50%) !important;
        /* Aplanar y centrar */
        opacity: 0 !important;
        /* Ocultar todas las no centrales */
        pointer-events: none;
    }
    
    /* Asegura que SOLO la tarjeta activa esté visible y destacada */
    .team-carousel-card.center {
        z-index: 10;
        opacity: 1 !important;
        transform: translate(-50%, -50%) scale(1.05) !important;
        /* Ligero destaque */
    }
    
    /* 4. Información del Miembro: Centrado y más espacio */
    .member-info {
        width: 95%;
        min-width: unset;
        text-align: center;
        padding: 15px;
        align-items: center;
        /* Centra los elementos hijos (H2, P) */
    }
    
    .member-info p {
        text-align: center;
        line-height: 1.6;
    }
}




/* ================================================= */
/* CORRECCIÓN DE LA ONDA SUPERIOR (wave-top) */
/* ================================================= */

.wave-top {
    position: absolute;
    bottom: -7px;
    left: 0;
    
    /* ✅ Solución clave 1: Ancho al 100% para evitar desborde */
    width: 100%;
    
    overflow: hidden;
    /* Mantenemos esto para evitar que la forma se salga del borde superior/inferior si se estira mucho */
    z-index: 1;
    display: block;
}

/* 💡 ESTILO PARA ESTIRAR VISUALMENTE LA ONDA SIN DESBORDAR */
.wave-top svg {
    display: block;
    /* Asegura el correcto manejo de la transformación */
    
    /* ✅ Solución clave 2: Estirar la onda (1.2 es un ejemplo, ajusta el valor) */
    /* La onda se estira un 20% más sin forzar el ancho del contenedor padre. */
    transform: scaleX(1.2);
    
    /* 💡 OPCIONAL: Mover la onda al centro para compensar el estiramiento */
    transform-origin: bottom center;
}

.wave-top path {
    fill: #f1fff8;
    stroke: none;
}



@media screen and (max-width: 900px) {
    .team-carousel-card img {
        object-fit: cover;
        object-position: top center;
    }
}

/* Botón destacado Agendar Cita */

.nav-menu .btn-agendar {
    background: linear-gradient(135deg, #1a73e8, #4a90e2);
    /* degradado azul */
    color: #fff !important;
    padding: 10px 22px;
    border-radius: 35px;
    font-weight: 600;
    letter-spacing: 0.5px;
    border: 2px solid #ffffff;
    /* borde blanco inicial */
    box-shadow: 0 4px 12px rgba(26, 115, 232, 0.3);
    transition: background 0.3s ease, border 0.3s ease, box-shadow 0.3s ease;
    display: inline-block;
}

/* ===== NAV GENERAL ===== */

nav {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    padding: 10px 20px;
    
}

/* Botón hamburguesa */
.bar-btn {
    display: none;
    font-size: 28px;
    color: white;
    cursor: pointer;
}

/* ===== MENU EN ESCRITORIO ===== */

.nav-menu {
    display: flex;
    align-items: center;
    gap: 25px;
    list-style: none;
    margin: 0;
    padding: 0;
}

.nav-menu li {
    list-style: none;
}

.nav-menu li a {
    color: #fff;
    font-size: 16px;
    font-weight: 600;
    text-decoration: none;
    padding: 8px 10px;
    transition: 0.3s;
}

.nav-menu li a:hover {
    color: #4bff54;
}

/* ===== MODO MOVIL ===== */

#check {
    display: none;
}

@media (max-width: 900px) {
    
    nav {
        flex-wrap: nowrap;
    }
    
    .bar-btn {
        display: block;
        z-index: 10001;
    }
    
    .nav-menu {
        position: absolute;
        top: 100px;
        left: -100%;
        width: 250px;
        height: auto;
        flex-direction: column;
        justify-content: center;
        align-items: flex-start;
        background: #2617fa;
        padding: 20px;
        border-radius: 0 15px 15px 0;
        transition: 0.4s ease;
        z-index: 10000;
    }
    
    .nav-menu li {
        width: 100%;
        margin: 15px 0;
    }
    
    .nav-menu li a {
        display: block;
        width: 100%;
        font-size: 17px;
    }
    
    /* ACTIVAR MENÚ */
    #check:checked~.nav-menu {
        left: 0;
        
    }
    
    /* Los logos no se aprietan */
    .logo-container {
        max-width: 60%;
    }
}

@media (max-width: 768px) {
    
    .nav-menu {
        gap: 0;
        
    }
    
    
    
    
}

/* ===== TABLET HORIZONTAL ===== */

@media (max-width: 1100px) and (min-width: 901px) {
    .nav-menu {
        gap: 10px;
        
    }
    
    .nav-menu li a {
        font-size: 14px;
    }
    
}

header,
.nav-container,
.nav-menu {
    overflow: visible !important;
}





/* Estilo base del botón */
.btn-scroll-top {
  position: fixed;
  /* CAMBIO: Lo subimos a 100px o 120px para que quede por encima de las cookies */
  bottom: 110px; 
  right: 30px;
  background-color: #2563eb; 
  color: #ffffff;
  border: none;
  border-radius: 50%;
  width: 48px;
  height: 48px;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.2);
  /* RECOMENDACIÓN: Asegúrate de que este número sea más alto que el z-index de las cookies */
  z-index: 9999; 
  
  /* Estado inicial: oculto */
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.3s ease, visibility 0.3s ease, transform 0.2s ease;
}

/* Clase activa que pondremos con JavaScript */
.btn-scroll-top.show {
  opacity: 1;
  visibility: visible;
}

/* Pequeña animación al pasar el mouse */
.btn-scroll-top:hover {
  background-color: #1d4ed8;
  /* CAMBIO: Como modificamos la posición con translateY, es mejor usar un leve escalado 
     para que no altere el flujo ni choque con el aviso si el usuario baja el mouse rápido */
  transform: scale(1.08); 
}
