/*
Theme Name: Lamic Theme Tailwind
Version: 6.0 (Visual Consistency)
*/

/* --- DESIGN TOKENS --- */
:root {
    --lamic-blue: #0056B3;
    --lamic-dark: #1D2534;
    --lamic-gray: #5D5C65;
    --lamic-bg: #F8F9FA;
    --radius-sm: 0.75rem;
    /* 12px — buttons, badges, small elements */
    --radius-md: 1rem;
    /* 16px — cards, containers */
    --radius-lg: 1.5rem;
    /* 24px — large cards, sections */
    --radius-xl: 2rem;
    /* 32px — hero panels, desktop bento */
    --transition-base: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

/* --- TIPOGRAFÍA MAESTRA --- */
body,
h1,
h2,
h3,
h4,
h5,
h6,
p,
a,
span,
button,
input,
li,
summary {
    font-family: 'Montserrat', sans-serif !important;
}

/* Clases de utilidad para colores */
.text-lamic-blue {
    color: var(--lamic-blue);
}

.text-lamic-dark {
    color: var(--lamic-dark);
}

.text-lamic-gray {
    color: var(--lamic-gray);
}

/* --- TRANSICIONES GLOBALES --- */
* {
    scroll-behavior: smooth;
}

section {
    transition: opacity 0.5s ease;
}

/* --- SCROLL REVEAL ANIMATION --- */
.reveal {
    opacity: 0;
    transform: translateY(24px);
    transition: opacity 0.7s cubic-bezier(0.16, 1, 0.3, 1),
        transform 0.7s cubic-bezier(0.16, 1, 0.3, 1);
}

.reveal.visible {
    opacity: 1;
    transform: translateY(0);
}

/* Staggered children reveal */
.reveal-child {
    opacity: 0;
    transform: translateY(16px);
    transition: opacity 0.5s cubic-bezier(0.16, 1, 0.3, 1),
        transform 0.5s cubic-bezier(0.16, 1, 0.3, 1);
}

.reveal-child.visible {
    opacity: 1;
    transform: translateY(0);
}

/* --- BENTO GRID --- */
.card-movilidad {
    height: 100%;
    min-height: 400px;
}

.card-ortesis,
.card-internacion {
    height: 100%;
    min-height: 250px;
}

/* --- CARD HOVER ANIMATIONS --- */
.branch-card {
    transition: var(--transition-base);
}

.branch-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1);
}

/* --- FAQ ACCORDION (using <details>) --- */
details summary {
    transition: color 0.2s ease;
}

details[open] summary {
    color: var(--lamic-blue);
}

details .pt-3 {
    animation: fadeSlideDown 0.3s ease-out;
}

@keyframes fadeSlideDown {
    from {
        opacity: 0;
        transform: translateY(-8px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* Legacy FAQ classes (backward compat) */
.faq-content {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.3s ease-out, padding 0.3s ease;
}

.faq-item.active .faq-content {
    max-height: 300px;
    padding-top: 1rem;
}

.faq-item.active .faq-icon {
    transform: rotate(180deg);
}

/* --- MOBILE SCROLL-SNAP (Slide-style) --- */
@media (max-width: 1023px) {
    .snap-container {
        scroll-snap-type: y proximity;
        overflow-y: auto;
        -webkit-overflow-scrolling: touch;
    }

    .snap-section,
    .snap-section-auto {
        scroll-snap-align: start;
        scroll-margin-top: 0.5rem;
    }
}

/* Links within page smooth scroll */
a[href^="#"] {
    scroll-behavior: smooth;
}