@import url('https://fonts.googleapis.com/css2?family=Manrope:wght@400;600;800&display=swap');

body {
    /* Use Manrope for consistency with the app, with a good system font fallback */
    font-family: 'Manrope', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
    -webkit-text-size-adjust: 100%; /* For older WebKit browsers */
    text-size-adjust: 100%; /* Standard property for modern browsers */
    line-height: 1.6;
    color: #343a40; /* Softer black for text */
    background-color: #FFFFFF; /* Fallback color, start of gradient */
    background-image: linear-gradient(to bottom, #FFFFFF, #F0F8FF, #FFFFF0);
    margin: 0;
    padding: 0;
}

.container {
    max-width: 800px;
    margin: 40px auto;
    padding: 20px 40px;
    background-color: #fff;
    border-radius: 12px; /* Softer corners */
    position: relative; /* Needed for the language switcher positioning */
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.07); /* More subtle, modern shadow */
}

/* Ajustes para móvil en el contenedor principal */
@media (max-width: 768px) {
    .container {
        margin-top: 20px;
        margin-bottom: 0; /* Eliminamos el margen inferior para juntar las secciones */
        padding: 20px; /* Reducimos el padding lateral para dar más espacio al contenido */
    }
}

header {
    padding-bottom: 20px;
    margin-bottom: 10px;
    text-align: center;
    border-bottom: 1px solid #dee2e6; /* A slightly more visible but clean separator */
}

header h1 {
    font-size: 2.8em; /* Slightly larger */
    font-weight: 800; /* Bolder weight from Manrope */
    color: #212529; /* Darker, more impactful color */
    margin: 0;
}

header .logo {
    font-weight: 600;
    font-size: 1.2em;
    color: #6c757d; /* Muted grey for the brand name */
    margin-bottom: 10px;
    letter-spacing: 0.5px; /* A bit of spacing for style */
}

h2 {
    font-size: 1.8em;
    font-weight: 700;
    color: #212529;
    /* Remove the full-width border for a cleaner look */
    /* border-bottom: 1px solid #eee; */
    padding-bottom: 10px;
    margin-top: 40px;
}

p, li {
    font-size: 1.1em;
    color: #495057; /* Slightly lighter than main text for readability */
}

a {
    color: #0056b3; /* A more corporate, deep blue */
    text-decoration: none;
    font-weight: 600; /* Make links stand out a bit more */
    transition: color 0.2s ease-in-out;
}

a:hover {
    color: #003d82; /* Darken on hover */
    text-decoration: none; /* Keep it clean */
}

.email-link {
    font-weight: bold;
    color: #c82333; /* A slightly deeper red */
}

.last-updated {
    color: #6c757d;
    font-size: 0.9em;
    margin-top: -20px;
    margin-bottom: 30px;
    text-align: center;
}

footer {
    text-align: center;
    margin-top: 40px;
    padding-top: 20px;
    border-top: 1px solid #dee2e6;
    color: #6c757d;
    font-size: 0.9em;
}

footer a {
    margin: 0 10px;
    font-weight: 400; /* Footer links can be normal weight */
    color: #495057;
}

/* Language Selector Dropdown */
.lang-selector {
    position: absolute;
    top: 20px;
    right: 25px;
}

.lang-selector-button {
    background: none;
    border: none;
    cursor: pointer;
    padding: 5px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
}

.lang-selector-button:hover {
    background-color: #f1f3f5;
}

.globe-icon {
    width: 24px;
    height: 24px;
    color: #495057;
}

.lang-selector-dropdown {
    display: none; /* Hidden by default */
    position: absolute;
    right: 0;
    top: 40px;
    background-color: #fff;
    border-radius: 8px;
    box-shadow: 0 4px 12px rgba(0,0,0,0.1);
    z-index: 10;
    overflow: hidden;
    min-width: 150px;
}

.lang-selector-dropdown.show {
    display: block; /* Shown with JS */
}

.lang-option {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 12px 16px;
    font-size: 1em;
    color: #343a40;
    text-decoration: none;
}

.lang-option:hover {
    background-color: #f8f9fa;
    color: #0056b3;
}

.flag-icon {
    width: 24px;
    height: auto;
    border-radius: 3px;
}

/* Contenedor principal del móvil */
.mobile-frame {
    width: 300px; /* Ancho del marco del móvil */
    height: 600px; /* Alto del marco del móvil */
    border: 5px solid #333; /* Color y grosor del borde */
    border-radius: 30px; /* Esquinas redondeadas del móvil */
    background-color: #000; /* Fondo del móvil */
    position: relative; /* Para posicionar el notch y la imagen */
    overflow: hidden; /* Asegura que la imagen no se salga del marco */
    box-shadow: 0 5px 15px rgba(0,0,0,0.3); /* Sombra para darle profundidad */
    margin: 20px auto; /* Centrar para el ejemplo */
}

/* Ajuste para móvil: eliminar el margen inferior del marco del móvil */
@media (max-width: 768px) {
    .mobile-frame {
        /* Eliminamos el margen inferior para que no cree un hueco tan grande antes de la siguiente sección */
        margin-bottom: 0;
    }
}

/* Área de la pantalla donde va la imagen */
.screen-area {
    width: calc(100% - 10px); /* Ajusta al tamaño de la pantalla, restando bordes internos */
    height: calc(100% - 10px);
    position: absolute;
    top: 5px; /* Margen interno desde el borde del móvil */
    left: 5px;
    border-radius: 20px; /* Bordes redondeados de la pantalla */
    overflow: hidden; /* Muy importante para que la imagen no se salga */
}

/* La imagen dentro de la pantalla */
.frame-image {
    width: calc(100%-5px);
    height: calc(100%-5px); /* Ajusta al tamaño de la pantalla, restando borde;
    object-fit: cover; /* Ajusta la imagen para cubrir el área sin distorsionarla */
    display: block; /* Elimina espacio extra debajo de la imagen */
}

/* Estilo para la muesca (notch) - Opcional */
.notch {
    width: 100px; /* Ancho del notch */
    height: 20px; /* Alto del notch */
    background-color: #333;
    border-radius: 0 0 10px 10px; /* Esquinas inferiores redondeadas */
    position: absolute;
    top: 10px; /* Posicionar en la parte superior */
    left: 50%;
    transform: translateX(-50%); /* Centrar */
    z-index: 2; /* Asegurarse de que esté por encima de la imagen */
}

.dynamic-island { /* O .notch si mantienes ese nombre de clase */
    width: 100px; /* Ancho de la píldora (ajusta a tu gusto) */
    height: 10px; /* Alto de la píldora (ajusta a tu gusto) */
    background-color: #000; /* Suele ser negro para mimetizarse con la pantalla */
    border-radius: 15px; /* La mitad del alto para que sea una píldora perfecta */
    position: absolute;
    top: 10px; /* Distancia desde la parte superior del marco */
    left: 50%;
    transform: translateX(-50%); /* Centrar horizontalmente */
    z-index: 3; /* Asegurarse de que esté por encima de la imagen y la pantalla */
    /* Opcional: añadir una pequeña sombra para simular profundidad */
    box-shadow: 0 0 5px rgba(0,0,0,0.5);
}

/* Estilos para el estado inicial (plegado) */
.faq-answer {
    max-height: 0; /* Oculta el contenido */
    opacity: 0; /* Lo hace invisible */
    overflow: hidden; /* Muy importante para que el contenido se corte y no sea visible */
    transition: max-height 0.3s ease-in-out, opacity 0.3s ease-in-out; /* Transición suave */
    padding-top: 0; /* Asegura que no haya padding visible cuando está cerrado */
}

/* Estilos para el estado abierto */
.faq-answer.show {
    max-height: 500px !important; /* Suficientemente alto para mostrar el contenido. Ajusta si es muy largo. */
    opacity: 1 !important; /* Lo hace visible */
    padding-top: 1rem !important; /* Añade padding después de abrirlo */
}

/* Estilos para la flecha */
.faq-question .arrow {
    transform: rotate(0deg); /* Flecha hacia abajo por defecto */
    transition: transform 0.3s ease-in-out; /* Transición suave para la rotación */
}

/* Estilos para la flecha cuando el acordeón está abierto */
.faq-question.active .arrow {
    transform: rotate(180deg); /* Flecha hacia arriba cuando está activo */
}

/* Estilos adicionales para el botón de la pregunta si quieres algún feedback visual al hacer hover/focus */
.faq-question:hover {
    color: #5a67d8; /* Ejemplo: color morado al pasar el ratón */
}

.custom-shadow {
    box-shadow: 0px 4px 20px rgba(0, 0, 0, 0.05);
}
/* --- Masonry Gallery (Estilo Collage con Superposición) --- */
.masonry-gallery {
    max-width: 1200px; /* Aumentamos el ancho para que quepan más columnas */
    margin: 60px auto; /* Espacio arriba/abajo y centrado */
    padding: 0 20px; /* Padding lateral para que no toque los bordes */
    text-align: center; /* Centrar el h2 de la sección */
}

/* Reducir el margen superior en móviles para eliminar el espacio en blanco excesivo */
@media (max-width: 768px) {
    .masonry-gallery {
        /* Reducimos el margen vertical para que se vea más compacto en móvil */
        margin: 30px auto;
    }
}

.masonry-gallery h2 {
    /* Estilos estandarizados para que coincida con otros h2 */
    font-size: 1.8em;
    font-weight: 700;
    color: #212529;
    /* Mantenemos un margen inferior generoso para evitar el solapamiento con el collage */
    margin-bottom: 40px;
    /* El resto de estilos como margin-top y padding-bottom los hereda del h2 general */
}

.masonry-container {
    /* Layout para Escritorio (4 columnas para imágenes más pequeñas) */
    column-count: 4;
    column-gap: 0; /* El espacio lo controlaremos con márgenes y transforms */
}

.masonry-item {
    display: inline-block; /* Necesario para que el layout de columnas funcione bien */
    width: 95%; /* Un poco menos del 100% para que el gap se vea */
    margin: 0 auto 15px auto; /* Centrado en su columna y con espacio inferior */
    break-inside: avoid; /* ¡CLAVE! Evita que una imagen se parta entre columnas */
    border-radius: 8px;
    overflow: hidden;
    box-shadow: 0 6px 20px rgba(0, 0, 0, 0.15);
    background-color: #f8f9fa; /* Fondo claro por si alguna imagen tarda en cargar */
    position: relative; /* Necesario para que z-index funcione */
    transition: transform 0.3s ease-in-out, box-shadow 0.3s ease-in-out;
}

.masonry-item img {
    width: 100%;
    height: auto; /* Mantiene la proporción original de la imagen (9:16) */
    display: block; /* Elimina espacio extra debajo de la imagen */
}

/* --- Efecto Collage con Superposición y Rotación (Solo en Escritorio Grande) --- */
@media (min-width: 1025px) {
    .masonry-item:nth-child(4n+1) {
        transform: rotate(-2.5deg) translateY(10px);
    }
    .masonry-item:nth-child(4n+2) {
        transform: rotate(1.5deg) translateY(-15px);
        margin-top: -25px; /* Superposición vertical */
    }
    .masonry-item:nth-child(4n+3) {
        transform: rotate(2deg) translateY(5px);
        margin-top: -40px; /* Superposición vertical */
    }
    .masonry-item:nth-child(4n+4) {
        transform: rotate(-1deg) translateY(-10px);
        margin-top: -20px; /* Superposición vertical */
    }

    .masonry-item:hover {
        transform: scale(1.08) rotate(0deg) !important; /* Agrandar y enderezar al pasar el ratón */
        z-index: 10;
        box-shadow: 0 10px 30px rgba(0, 0, 0, 0.25);
    }
}

/* Layout para Tablet y Móvil (simplificado a 2 columnas sin efectos) */
@media (max-width: 1024px) {
    .masonry-container {
        column-count: 2;
        column-gap: 10px; /* Volvemos a poner gap en pantallas pequeñas */
    }
    .masonry-item {
        width: 100%; /* Ocupa toda la columna */
        transform: none !important; /* Quitar rotaciones y traslaciones */
        margin-top: 0 !important; /* Quitar superposiciones */
    }
}