/* ============================================================
   ESTILOS COMPARTIDOS - Defiéndeme Tú
   Este archivo lo usan TODAS las páginas del sitio (index.html,
   servicios.html, cae.html, despidos-sector-publico.html,
   pension-seguridad-social.html). Si cambias un color o estilo
   aquí, se actualiza en todas partes.

   SISTEMA DE DISEÑO (versión "azul y oro")
   - Azul oscuro: color dominante del sitio (nav, pie de página,
     títulos, nombre "Defiéndeme Tú"). Transmite seriedad jurídica
     y confianza.
   - Oro: color de acento, para botones de conversión, enlaces
     destacados y detalles puntuales (úsalo con moderación, como
     el filo dorado de un sello).
   - Blanco invierno: fondo general del sitio (frío, limpio, hace
     que las tarjetas blancas resalten con nitidez).
   - Naranja: segundo acento, para insignias, "próximamente" y
     detalles puntuales que necesiten distinguirse del oro (por
     ejemplo, la tira de cápsulas en video de la portada).
   - Paleta extendida: 5 tonos apagados que combinan con el azul
     y el oro. Se usan como "color de identidad" de cada página
     (ver sección IDENTIDAD DE COLOR POR PÁGINA más abajo).
   - Firma visual: en vez de un borde grueso de color en cada
     tarjeta, hay un filete fino de 4px arriba (como la cinta de
     un membrete) y un borde general muy sutil.
   - Tipografía de títulos: Playfair Display (elegante, jurídica).
   - Tipografía de texto: Inter (legible, moderna).
   ============================================================ */

@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:wght@600;700;800&family=Inter:wght@400;500;600;700&display=swap');

:root {
    /* Paleta principal: azul oscuro y oro */
    --color-principal: #0E2340;       /* Azul oscuro dominante */
    --color-principal-suave: #1B3B63; /* Variante más clara (gradientes, hover) */
    --color-acento: #C9A227;          /* Oro de conversión */
    --color-acento-oscuro: #A6841C;   /* Oro hover */

    /* Segundo acento: naranja, para insignias y detalles puntuales
       (por ejemplo la tira de cápsulas en video). */
    --color-naranja: #E07A2C;
    --color-naranja-oscuro: #C2621C;

    /* Paleta extendida (5 tonos apagados que combinan con el azul
       y el oro). Cada uno está pensado como filete superior de
       las tarjetas de una página, pero puedes usarlos en cualquier
       parte donde quieras una nota de color adicional. */
    --color-arena: #C3A97E;    /* Arena dorado suave - identidad de Inicio */
    --color-salvia: #6C8A78;   /* Verde salvia apagado - identidad de Servicios */
    --color-dorado: #C9A227;   /* Oro - identidad de CAE */
    --color-vino: #7A4A45;     /* Vino apagado - identidad de Despidos Sector Público */
    --color-piedra: #7C8A99;   /* Gris piedra apagado - identidad de Pensiones y Seguridad Social */

    /* Texto y fondos */
    --color-texto: #2B2B2B;
    --color-texto-suave: #63666A;
    --color-fondo-marfil: #F5F7FA;    /* Blanco invierno: fondo general del sitio */
    --color-borde-suave: #E2E6EC;

    /* Color de identidad "por defecto": lo usan las tarjetas cuando
       el body no tiene ninguna clase pagina-* (ver más abajo). */
    --color-identidad-pagina: var(--color-acento);

    /* Radio de borde compartido: antes 20px (muy redondeado / "burbuja"),
       ahora 14px para un aire más sobrio. Un solo lugar para ajustarlo
       en todo el sitio. */
    --radio-tarjeta: 14px;

    /* Tipografía */
    --fuente-titulos: 'Playfair Display', serif;
    --fuente-texto: 'Inter', sans-serif;
}

/* ========== IDENTIDAD DE COLOR POR PÁGINA ==========
   Cada página agrega una clase a su <body> (pagina-inicio,
   pagina-servicios, etc.). Esa clase redefine la variable
   --color-identidad-pagina, y las tarjetas del sitio (más abajo)
   usan esa variable como color del filete superior. Para cambiar
   el color de las tarjetas de una página, solo tienes que cambiar
   qué tono apunta --color-identidad-pagina aquí abajo — no hace
   falta tocar el CSS de las tarjetas. */
body.pagina-inicio     { --color-identidad-pagina: var(--color-arena); }
body.pagina-servicios  { --color-identidad-pagina: var(--color-salvia); }
body.pagina-cae        { --color-identidad-pagina: var(--color-dorado); }
body.pagina-despidos   { --color-identidad-pagina: var(--color-vino); }
body.pagina-pension    { --color-identidad-pagina: var(--color-piedra); }

* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

body {
    background-color: var(--color-fondo-marfil);
    font-family: var(--fuente-texto);
    color: var(--color-texto);
    /* Evita la barra de scroll horizontal que puede aparecer por el
       truco de "ancho completo de viewport" de .tira-videos-ventana. */
    overflow-x: hidden;
}

h1, h2, h3, h4, h5, h6 {
    font-family: var(--fuente-titulos);
}

/* Los campos de formulario y botones no heredan la fuente por defecto
   en los navegadores, así que se la asignamos explícitamente. */
input, textarea, select, button {
    font-family: inherit;
}

/* Corrige que el menú sticky tape los títulos al hacer clic en el menú */
h2[id], section[id] {
    scroll-margin-top: 90px;
}

/* ========== NAVEGACIÓN ========== */
.navegacion {
    background-color: var(--color-principal);
    position: sticky;
    top: 0;
    box-shadow: 0 1px 0 rgba(255, 255, 255, 0.06), 0 8px 20px rgba(0, 0, 0, 0.18);
    z-index: 1000;
}

.contenedor-nav {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 20px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    height: 72px;
}

.logo {
    color: white;
    font-family: var(--fuente-titulos);
    font-size: 21px;
    font-weight: 700;
    text-decoration: none;
    letter-spacing: 0.3px;
    white-space: nowrap;
}

.menu {
    display: flex;
    list-style: none;
    gap: 16px;
    align-items: center;
}

.menu a {
    color: rgba(255, 255, 255, 0.88);
    text-decoration: none;
    font-size: 12px;
    font-weight: 500;
    letter-spacing: 0.3px;
    text-transform: uppercase;
    transition: 0.3s;
    white-space: nowrap;
}

.menu a:hover {
    color: var(--color-acento);
}

/* Separador sutil que distingue visualmente la navegación general
   (Inicio, Sobre Nosotros, etc.) del grupo de áreas especializadas. */
.separador-menu {
    width: 1px;
    height: 20px;
    background-color: rgba(255, 255, 255, 0.18);
    flex-shrink: 0;
}

/* Agrupa las 3 áreas especializadas (CAE, Despidos, Pensiones) como un
   solo bloque orgánico dentro del menú, con menos espacio entre ellas
   que el resto de los enlaces, reforzando que van juntas. */
.grupo-especiales {
    display: flex;
    align-items: center;
    gap: 8px;
}

/* Botones del menú que llevan a páginas dedicadas (CAE, Despidos, Pensiones) */
.menu a.enlace-destacado {
    color: var(--color-acento);
    border: 1px solid var(--color-acento);
    padding: 6px 12px;
    border-radius: 30px;
    font-size: 11.5px;
}

.menu a.enlace-destacado:hover {
    background-color: var(--color-acento);
    color: var(--color-principal);
}

.boton-hamburguesa {
    display: none;
    background: none;
    border: none;
    color: white;
    font-size: 28px;
    cursor: pointer;
}

/* ========== PORTADA (HERO) ========== */
.portada {
    /* Imagen de fondo corporativa con velo semitransparente en tinta,
       para que el texto blanco resalte con buena lectura.
       Puedes reemplazar la URL por tu propia foto cuando la tengas. */
    background-image: linear-gradient(rgba(10, 22, 26, 0.88), rgba(18, 38, 43, 0.82)), url('https://images.unsplash.com/photo-1589829545856-d10d557cf95f?auto=format&fit=crop&w=1920&q=80');
    background-size: cover;
    background-position: center;
    background-color: var(--color-principal); /* color de respaldo mientras carga la imagen */
    color: white;
    padding: 130px 20px 110px;
    text-align: center;
    min-height: 420px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
}

.portada h1 {
    font-size: 52px;
    font-weight: 700;
    margin-bottom: 18px;
    letter-spacing: 0.3px;
}

.portada h1::after {
    /* Filete dorado bajo el titular: firma visual del sitio, como el
       trazo de un sello notarial. Se repite en .titulo-seccion y
       .sobre-nosotros h2 más abajo, para dar coherencia a todas las
       páginas. */
    content: '';
    display: block;
    width: 64px;
    height: 3px;
    background-color: var(--color-acento);
    margin: 22px auto 0;
}

.portada p {
    font-family: var(--fuente-texto);
    font-size: 18px;
    font-weight: 300;
    max-width: 600px;
    color: rgba(255, 255, 255, 0.85);
}

.portada-imagen {
    width: 180px;
    height: 180px;
    object-fit: cover;
    border-radius: 50%;
    border: 3px solid var(--color-acento);
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.35);
    margin-bottom: 24px;
}

@media (max-width: 480px) {
    .portada-imagen {
        width: 130px;
        height: 130px;
    }
}

/* ========== SOBRE NOSOTROS ========== */
.sobre-nosotros {
    background-color: white;
    padding: 64px 48px;
    border-radius: var(--radio-tarjeta);
    margin: 50px 0;
    box-shadow: 0 18px 40px rgba(18, 38, 43, 0.07);
    border: 1px solid var(--color-borde-suave);
}

.sobre-nosotros h2 {
    color: var(--color-principal);
    font-size: 34px;
    margin-bottom: 22px;
}

.sobre-nosotros p {
    color: var(--color-texto-suave);
    font-size: 16px;
    line-height: 1.85;
    margin-bottom: 15px;
    max-width: 760px;
}

.lista-ventajas {
    list-style: none;
    margin-top: 24px;
    display: flex;
    flex-wrap: wrap;
    gap: 10px 32px;
}

.lista-ventajas li {
    color: var(--color-principal);
    font-size: 15px;
    padding: 6px 0;
    font-weight: 600;
}

.lista-ventajas li::marker {
    color: var(--color-acento);
}

/* ========== CONTENEDOR PRINCIPAL ========== */
.contenedor {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 20px;
}

.titulo-seccion {
    text-align: center;
    color: var(--color-principal);
    font-size: 34px;
    margin: 50px 0 0;
}

/* ========== TARJETAS DE SERVICIOS ========== */
.contenedor-tarjetas {
    display: flex;
    gap: 24px;
    padding: 44px 0 24px;
    justify-content: center;
    flex-wrap: wrap;
}

.tarjeta {
    background-color: white;
    width: 280px;
    padding: 34px 26px 28px;
    border-radius: var(--radio-tarjeta);
    border: 1px solid var(--color-borde-suave);
    border-top: 4px solid var(--color-identidad-pagina);
    box-shadow: 0 14px 30px rgba(18, 38, 43, 0.06);
    text-align: center;
    transition: transform 0.35s ease, box-shadow 0.35s ease;
    display: flex;
    flex-direction: column;
}

.tarjeta:hover {
    transform: translateY(-6px);
    box-shadow: 0 22px 40px rgba(18, 38, 43, 0.12);
}

.tarjeta h3 {
    color: var(--color-principal);
    font-size: 21px;
    margin-bottom: 14px;
}

.tarjeta p {
    color: var(--color-texto-suave);
    font-size: 14px;
    line-height: 1.7;
    flex-grow: 1;
}

.tarjeta .boton {
    margin-top: 22px;
    align-self: center;
}

.contenedor-boton-servicios {
    text-align: center;
    padding: 10px 0 44px;
}

/* ========== ÁREAS ESPECIALIZADAS (destacadas en el inicio) ==========
   Estas 3 tarjetas (CAE, Despidos Sector Público, Pensiones y Seguridad
   Social) son las áreas núcleo del estudio, así que en el inicio tienen
   un trato más protagónico que una tarjeta genérica: son más grandes,
   completamente clickeables (llevan directo a su página) y cada una usa
   el color de identidad de su página respectiva como filete superior. */
.subtitulo-servicios {
    text-align: center;
    color: var(--color-texto-suave);
    font-size: 15px;
    line-height: 1.7;
    max-width: 640px;
    margin: 14px auto 0;
}

.tarjetas-especiales {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 24px;
    padding: 44px 0 20px;
}

@media (max-width: 980px) {
    .tarjetas-especiales {
        grid-template-columns: repeat(2, 1fr);
    }
}

.tarjeta-especial {
    background-color: white;
    padding: 34px 26px 28px;
    border-radius: var(--radio-tarjeta);
    border: 1px solid var(--color-borde-suave);
    border-top: 5px solid var(--color-identidad-tarjeta, var(--color-acento));
    box-shadow: 0 16px 34px rgba(18, 38, 43, 0.08);
    text-decoration: none;
    display: flex;
    flex-direction: column;
    transition: transform 0.35s ease, box-shadow 0.35s ease;
}

/* Cuarta tarjeta ("Ver todos los servicios"): mismo formato que las
   demás pero con acento naranja para distinguirla como el catálogo
   completo, no un área específica. */
.tarjeta-especial--catalogo {
    background-color: var(--color-principal);
    border-top: 5px solid var(--color-naranja);
}

.tarjeta-especial--catalogo h3,
.tarjeta-especial--catalogo p {
    color: white;
}

.tarjeta-especial--catalogo p {
    opacity: 0.8;
}

.tarjeta-especial--catalogo .ver-mas {
    color: var(--color-naranja);
}

.tarjeta-especial:hover {
    transform: translateY(-8px);
    box-shadow: 0 26px 46px rgba(18, 38, 43, 0.16);
}

.tarjeta-especial .icono-especial {
    font-size: 34px;
    margin-bottom: 16px;
}

.tarjeta-especial h3 {
    color: var(--color-principal);
    font-size: 21px;
    margin-bottom: 12px;
}

.tarjeta-especial p {
    color: var(--color-texto-suave);
    font-size: 14.5px;
    line-height: 1.7;
    flex-grow: 1;
}

.tarjeta-especial .ver-mas {
    margin-top: 20px;
    color: var(--color-identidad-tarjeta, var(--color-acento));
    font-size: 13px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

/* ========== TIRA DE CÁPSULAS EN VIDEO (portada) ==========
   Franja horizontal que avanza sola, pensada para alojar más adelante
   cápsulas informativas en video. Por ahora muestra tarjetas de marcador
   de posición ("Próximamente"); cuando tengas los videos, reemplaza el
   contenido de cada .tira-video-placeholder por un <video controls>
   o un <iframe> (por ejemplo, embebido de YouTube), manteniendo la
   clase .tira-video para que conserve el tamaño y el estilo de tarjeta. */
.tira-videos {
    padding: 10px 0 50px;
}

.tira-videos-encabezado {
    text-align: center;
    margin-bottom: 26px;
}

.tira-videos-encabezado h2 {
    color: var(--color-principal);
    font-size: 28px;
}

.tira-videos-encabezado p {
    color: var(--color-texto-suave);
    font-size: 14.5px;
    margin-top: 8px;
}

/* Ventana visible de la tira: oculta el desborde de la pista que se
   mueve por dentro. Se extiende hasta los bordes del viewport para que
   la animación se sienta como una franja continua, no encajonada. */
.tira-videos-ventana {
    overflow: hidden;
    width: 100vw;
    position: relative;
    left: 50%;
    right: 50%;
    margin-left: -50vw;
    margin-right: -50vw;
    -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 6%, #000 94%, transparent 100%);
    mask-image: linear-gradient(90deg, transparent 0, #000 6%, #000 94%, transparent 100%);
}

/* La pista contiene las tarjetas duplicadas una vez (mismo set de
   tarjetas repetido) para poder animar un bucle infinito sin salto:
   al desplazar exactamente el 50% del ancho, la segunda mitad calza
   perfectamente con el inicio de la primera. */
.tira-videos-pista {
    display: flex;
    gap: 22px;
    width: max-content;
    animation: desplazar-tira 32s linear infinite;
    padding: 0 20px;
}

.tira-videos-ventana:hover .tira-videos-pista {
    animation-play-state: paused;
}

@keyframes desplazar-tira {
    from { transform: translateX(0); }
    to   { transform: translateX(-50%); }
}

.tira-video {
    flex: 0 0 auto;
    width: 260px;
    background-color: white;
    border-radius: var(--radio-tarjeta);
    border: 1px solid var(--color-borde-suave);
    box-shadow: 0 14px 30px rgba(14, 35, 64, 0.08);
    overflow: hidden;
}

.tira-video-placeholder {
    height: 150px;
    background: linear-gradient(135deg, var(--color-principal), var(--color-principal-suave));
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
}

.tira-video-play {
    width: 46px;
    height: 46px;
    border-radius: 50%;
    background-color: rgba(255, 255, 255, 0.16);
    border: 2px solid rgba(255, 255, 255, 0.7);
    display: flex;
    align-items: center;
    justify-content: center;
    color: white;
    font-size: 16px;
}

.tira-video-insignia {
    position: absolute;
    top: 10px;
    right: 10px;
    background-color: var(--color-naranja);
    color: white;
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.4px;
    padding: 4px 9px;
    border-radius: 30px;
}

.tira-video-info {
    padding: 14px 16px 16px;
}

.tira-video-info h4 {
    color: var(--color-principal);
    font-family: var(--fuente-texto);
    font-size: 14px;
    font-weight: 600;
    margin-bottom: 4px;
}

.tira-video-info p {
    color: var(--color-texto-suave);
    font-size: 12.5px;
    line-height: 1.5;
}

@media (max-width: 480px) {
    .tira-video {
        width: 210px;
    }
}

/* ========== BOTONES ========== */
.boton {
    background-color: var(--color-principal);
    color: white;
    padding: 13px 32px;
    border: none;
    border-radius: 6px;
    cursor: pointer;
    font-size: 14px;
    font-weight: 600;
    letter-spacing: 0.4px;
    text-transform: uppercase;
    transition: background-color 0.3s ease, transform 0.2s ease;
    text-decoration: none;
    display: inline-block;
}

.boton:hover {
    background-color: var(--color-principal-suave);
    transform: translateY(-1px);
}

/* ========== FORMULARIO ========== */
.formulario {
    background-color: white;
    padding: 46px 26px;
    border-radius: var(--radio-tarjeta);
    border: 1px solid var(--color-borde-suave);
    margin: 50px 0;
    max-width: 600px;
    margin-left: auto;
    margin-right: auto;
    box-shadow: 0 18px 40px rgba(18, 38, 43, 0.06);
}

.formulario h2 {
    color: var(--color-principal);
    margin-bottom: 8px;
    text-align: center;
    font-size: 30px;
}

.formulario h2::after {
    content: '';
    display: block;
    width: 48px;
    height: 2px;
    background-color: var(--color-acento);
    margin: 16px auto 26px;
}

.grupo-formulario {
    margin-bottom: 20px;
    display: flex;
    flex-direction: column;
}

.grupo-formulario label {
    margin-bottom: 8px;
    color: var(--color-texto);
    font-weight: 600;
    font-size: 14px;
}

.grupo-formulario input,
.grupo-formulario textarea {
    padding: 12px 14px;
    border: 1px solid var(--color-borde-suave);
    border-radius: 6px;
    font-size: 15px;
    background-color: var(--color-fondo-marfil);
}

.grupo-formulario input:focus,
.grupo-formulario textarea:focus {
    outline: none;
    border-color: var(--color-acento);
    background-color: white;
    box-shadow: 0 0 0 3px rgba(169, 129, 46, 0.14);
}

.grupo-formulario select {
    padding: 12px;
    border: 1px solid var(--color-borde-suave);
    border-radius: 6px;
    font-size: 15px;
    background-color: var(--color-fondo-marfil);
}

.grupo-formulario select:focus {
    outline: none;
    border-color: var(--color-acento);
    background-color: white;
    box-shadow: 0 0 0 3px rgba(169, 129, 46, 0.14);
}

/* Botón de envío: siempre en bronce, es la acción de conversión principal */
.boton-enviar {
    background-color: var(--color-acento);
    width: 100%;
    padding: 16px;
    font-size: 15px;
    font-weight: 700;
    border: none;
    transition: background-color 0.3s ease;
}

.boton-enviar:hover {
    background-color: var(--color-acento-oscuro);
}

/* ========== PIE DE PÁGINA ========== */
.pie-pagina {
    background-color: var(--color-principal);
    color: rgba(255, 255, 255, 0.82);
    text-align: center;
    padding: 34px 20px;
    margin-top: 64px;
    font-size: 14px;
    line-height: 1.8;
}

.pie-pagina strong {
    color: white;
    font-family: var(--fuente-titulos);
    font-size: 17px;
    letter-spacing: 0.3px;
}

/* ========== PÁGINAS DE DETALLE (servicios, cae, despidos) ========== */
.pagina-detalle {
    background-color: white;
    padding: 54px 44px;
    border-radius: var(--radio-tarjeta);
    border: 1px solid var(--color-borde-suave);
    margin: 44px 0;
    box-shadow: 0 18px 40px rgba(18, 38, 43, 0.06);
}

.pagina-detalle h1 {
    color: var(--color-principal);
    font-size: 36px;
    margin-bottom: 20px;
}

.pagina-detalle h2 {
    color: var(--color-principal);
    font-size: 24px;
    margin: 32px 0 15px;
}

.pagina-detalle p {
    color: var(--color-texto-suave);
    font-size: 16px;
    line-height: 1.8;
    margin-bottom: 15px;
}

.bloque-servicio {
    border-top: 1px solid var(--color-borde-suave);
    padding-top: 28px;
    margin-top: 38px;
}

.bloque-servicio:first-of-type {
    border-top: none;
    padding-top: 0;
    margin-top: 0;
}

.volver {
    display: inline-block;
    margin: 30px 0 10px;
}

/* ========== ENCABEZADO DE PÁGINA (servicios, despidos, etc.) ========== */
.encabezado-pagina {
    padding: 54px 0 12px;
    text-align: center;
}

.encabezado-pagina h1 {
    color: var(--color-principal);
    font-size: 36px;
    margin-bottom: 16px;
}

.encabezado-pagina h1::after {
    content: '';
    display: block;
    width: 56px;
    height: 3px;
    background-color: var(--color-acento);
    margin: 18px auto 0;
}

.encabezado-pagina p {
    color: var(--color-texto-suave);
    font-size: 16px;
    line-height: 1.75;
    max-width: 720px;
    margin: 18px auto 0;
}

/* ========== TARJETAS DE SERVICIO (grilla seleccionable) ========== */
.grid-servicios {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: 26px;
    padding: 44px 0 24px;
    /* Al desplegarse una tarjeta, la fila en la que está crece en altura,
       y eso empuja hacia abajo a las filas siguientes (comportamiento
       normal de CSS Grid: cada fila se ajusta a su contenido más alto). */
    align-items: start;
}

/* En "Nuestros Servicios" (servicios.html) queremos siempre 2 columnas
   fijas, en vez del auto-fit responsive genérico de arriba. */
body.pagina-servicios .grid-servicios {
    grid-template-columns: repeat(2, 1fr);
}

@media (max-width: 640px) {
    body.pagina-servicios .grid-servicios {
        grid-template-columns: 1fr;
    }
}

.tarjeta-servicio {
    background-color: white;
    border-radius: var(--radio-tarjeta);
    border: 1px solid var(--color-borde-suave);
    border-top: 4px solid var(--color-identidad-pagina);
    box-shadow: 0 14px 30px rgba(18, 38, 43, 0.06);
    overflow: hidden;
    cursor: pointer;
    transition: transform 0.35s ease, box-shadow 0.35s ease;
    display: flex;
    flex-direction: column;
    text-align: left;
}

.tarjeta-servicio:hover,
.tarjeta-servicio:focus-visible {
    transform: translateY(-6px);
    box-shadow: 0 22px 40px rgba(18, 38, 43, 0.14);
    outline: none;
}

/* Espacio para la foto ilustrativa de cada tarjeta.
   Para poner tu propia imagen, reemplaza el <div class="imagen-placeholder">
   por un <img src="tu-foto.jpg" class="imagen-placeholder" alt="..."> */
.tarjeta-servicio .imagen-placeholder {
    height: 148px;
    width: 100%;
    background: linear-gradient(135deg, var(--color-principal), var(--color-principal-suave));
    display: flex;
    align-items: center;
    justify-content: center;
    color: white;
    font-size: 36px;
}

.tarjeta-servicio img.imagen-placeholder {
    object-fit: cover;
}

.contenido-tarjeta-servicio {
    padding: 22px 22px 24px;
}

/* Fila con el título y el indicador "+" de desplegar/contraer */
.cabecera-tarjeta-servicio {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 10px;
}

.contenido-tarjeta-servicio h3 {
    color: var(--color-principal);
    font-size: 18px;
    margin-bottom: 9px;
}

.contenido-tarjeta-servicio > p {
    color: var(--color-texto-suave);
    font-size: 14px;
    line-height: 1.65;
}

/* El símbolo "+" que indica que la tarjeta se puede desplegar. Gira 45°
   (se convierte visualmente en una "x") cuando la tarjeta está abierta. */
.indicador-desplegable {
    flex-shrink: 0;
    color: var(--color-acento);
    font-size: 20px;
    font-weight: 700;
    line-height: 1;
    transition: transform 0.3s ease;
}

.tarjeta-servicio.abierta .indicador-desplegable {
    transform: rotate(45deg);
}

/* Contenido que aparece al desplegar la tarjeta: información general del
   servicio y el botón que lleva al formulario. Está oculto por defecto
   con max-height: 0 y se revela agrandando el max-height (así la
   transición queda animada en vez de aparecer de golpe). */
.detalle-servicio {
    max-height: 0;
    overflow: hidden;
    opacity: 0;
    transition: max-height 0.4s ease, opacity 0.3s ease, margin-top 0.4s ease;
    margin-top: 0;
}

.tarjeta-servicio.abierta .detalle-servicio {
    max-height: 600px;
    opacity: 1;
    margin-top: 16px;
}

.detalle-servicio p {
    color: var(--color-texto-suave);
    font-size: 14px;
    line-height: 1.7;
    margin-bottom: 16px;
    padding-top: 16px;
    border-top: 1px solid var(--color-borde-suave);
}

.detalle-servicio .boton-ir-formulario {
    width: 100%;
    text-align: center;
}

/* Mensaje de estado ("Enviando...", "¡Enviado!", error) que aparece bajo
   el botón de enviar en los formularios de contacto. */
.estado-envio {
    margin-top: 12px;
    font-size: 14px;
    font-weight: 600;
    text-align: center;
    min-height: 20px;
}

/* ========== FORMULARIO DE CONSULTA POR SERVICIO ========== */
.formulario-consulta {
    background-color: white;
    padding: 44px 32px;
    border-radius: var(--radio-tarjeta);
    border: 1px solid var(--color-borde-suave);
    margin: 24px 0 44px;
    max-width: 650px;
    margin-left: auto;
    margin-right: auto;
    scroll-margin-top: 90px;
    box-shadow: 0 18px 40px rgba(18, 38, 43, 0.06);
}

.formulario-consulta h2 {
    color: var(--color-principal);
    text-align: center;
    font-size: 25px;
    margin-bottom: 6px;
}

.formulario-consulta .subtitulo-formulario {
    text-align: center;
    color: #999;
    font-size: 14px;
    margin-bottom: 28px;
}

.grupo-si-no {
    margin-bottom: 20px;
}

.grupo-si-no > label.etiqueta-pregunta {
    display: block;
    color: var(--color-texto);
    font-weight: 600;
    font-size: 14px;
    margin-bottom: 8px;
}

.opciones-si-no {
    display: flex;
    gap: 25px;
}

.opciones-si-no label {
    display: flex;
    align-items: center;
    gap: 6px;
    color: #444;
    font-size: 15px;
    font-weight: normal;
    cursor: pointer;
}

.opciones-si-no input[type="radio"] {
    width: 16px;
    height: 16px;
    cursor: pointer;
    accent-color: var(--color-acento);
}

/* ========== MEDIA QUERIES (RESPONSIVE) ========== */

/* Tablets y celulares grandes (768px o menos) */
@media (max-width: 768px) {
    .portada {
        padding: 90px 20px 70px;
    }

    .portada h1 {
        font-size: 34px;
    }

    .portada p {
        font-size: 16px;
    }

    .sobre-nosotros {
        padding: 40px 26px;
    }

    .tarjeta {
        width: 100%;
        max-width: 400px;
    }

    .tarjetas-especiales {
        grid-template-columns: 1fr;
    }

    .boton {
        width: 100%;
        text-align: center;
    }

    .boton-hamburguesa {
        display: block;
    }

    .menu {
        display: none;
        position: absolute;
        top: 72px;
        left: 0;
        width: 100%;
        background-color: var(--color-principal);
        flex-direction: column;
        text-align: center;
        padding: 14px 0;
        gap: 4px;
    }

    .menu.activo {
        display: flex;
    }

    .menu li {
        padding: 10px 0;
        width: 100%;
    }

    .menu a.enlace-destacado {
        display: inline-block;
    }

    /* En mobile el separador no aporta nada (el menú ya es vertical) */
    .separador-menu {
        display: none;
    }

    /* El grupo de áreas especializadas también se apila en columna,
       manteniendo un poco más de aire entre cada botón */
    .grupo-especiales {
        flex-direction: column;
        gap: 10px;
        width: 100%;
    }
}

/* Celulares pequeños (480px o menos) */
@media (max-width: 480px) {
    .portada {
        padding: 60px 15px;
    }

    .portada h1 {
        font-size: 27px;
    }

    .portada p {
        font-size: 14px;
    }

    .contenedor {
        padding: 0 10px;
    }

    .tarjeta {
        width: 100%;
        padding: 24px 18px;
    }

    .tarjeta h3 {
        font-size: 19px;
    }

    .tarjeta p {
        font-size: 13px;
    }

    .boton {
        padding: 12px 20px;
        font-size: 13px;
    }

    .formulario {
        padding: 26px 18px;
        margin: 24px 0;
    }

    .formulario h2 {
        font-size: 23px;
    }

    .pagina-detalle {
        padding: 32px 22px;
    }

    .pagina-detalle h1 {
        font-size: 27px;
    }

    .encabezado-pagina h1 {
        font-size: 27px;
    }

    .formulario-consulta {
        padding: 28px 20px;
    }
}
