.btn-icon {
    margin-right: 0.5rem;
}
/* Estilos para la transición de las FAQs */
.faq-item {
    overflow: hidden;
    transition: max-height 0.4s ease-in-out, opacity 0.4s ease-in-out;
    max-height: 500px;
    opacity: 1;
}
.faq-hidden {
    max-height: 0;
    opacity: 0;
    margin-top: 0 !important;
    margin-bottom: 0 !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
    border-width: 0 !important;
    pointer-events: none;
    visibility: hidden;
    transition: max-height 0.4s ease-in-out, opacity 0.4s ease-in-out, visibility 0s linear 0.4s;
}
.faq-item:not(.faq-hidden) {
    visibility: visible;
    transition: max-height 0.4s ease-in-out, opacity 0.4s ease-in-out;
}

/* Estilo para la sección de apps con imagen de fondo */
.apps-background {
    background-image: url('https://findmysafe.com/images/apps.svg');
    background-size: cover;
    position: relative;
}
.apps-overlay::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-color: rgba(0, 0, 0, 0.5);
    z-index: 1;
}
.apps-content {
    position: relative;
    z-index: 2;
}

/* Estilos para los modales y dropdowns */
#login-modal.hidden, #language-modal.hidden, #home-country-code-dropdown.hidden {
    display: none;
}
/* Estilo para las banderas SVG/IMG */
.flag-icon {
    width: 1.5rem; /* 24px */
    height: 1.5rem; /* 24px */
    border-radius: 50%;
    object-fit: cover;
    box-shadow: 0 0 0 1px rgba(0,0,0,0.1);
    vertical-align: middle;
}
.language-option-modal .flag-icon, .country-option-modal .flag-icon { /* Banderas dentro del modal/dropdown */
    width: 1.25rem; /* 20px */
    height: 1.25rem; /* 20px */
}
/* Estilo para la opción activa en modales/dropdowns */
.language-option-modal.active, .country-option-modal.active {
    background-color: #e8f0f7; /* brandBlue-50 */
}
.language-option-modal.active span, .country-option-modal.active span {
    font-weight: 600; /* semibold */
}

/* Estilos para animación al hacer scroll */
.animate-on-scroll {
    opacity: 0;
    transform: translateY(30px); /* Empieza ligeramente abajo */
    transition: opacity 0.6s ease-out, transform 0.6s ease-out;
    transition-delay: 0.2s; /* Pequeño retraso para que no sea tan inmediato */
}
.animate-on-scroll.is-visible {
    opacity: 1;
    transform: translateY(0);
}
/* Estilos para animación de elementos hijos con delay */
.animate-children > * {
    opacity: 0;
    transform: translateY(20px);
    transition: opacity 0.5s ease-out, transform 0.5s ease-out;
}
.animate-children.is-visible > * {
    opacity: 1;
    transform: translateY(0);
}
/* Aplicar delays escalonados a los hijos */
.animate-children.is-visible > *:nth-child(1) { transition-delay: 0.1s; }
.animate-children.is-visible > *:nth-child(2) { transition-delay: 0.2s; }
.animate-children.is-visible > *:nth-child(3) { transition-delay: 0.3s; }
.animate-children.is-visible > *:nth-child(4) { transition-delay: 0.4s; }