/* ============================================================
   Responsive — Mobile First
   ============================================================ */

/* ---------- Small devices (default mobile first) ---------- */
@media (max-width: 575.98px) {
    .hero { padding: 5rem 1rem 3rem; min-height: 90vh; }
    .hero-title { font-size: 2.1rem; }
    .hero-text { font-size: 1rem; }
    .hero-cta { flex-direction: column; align-items: stretch; }
    .hero-cta .btn { width: 100%; }
    section { padding: 3.5rem 0; }
    .contact-card { padding: 1.75rem 1.25rem; }
    .premium-card { padding: 2rem 1.5rem; }
    .ministry-card { padding: 2rem 1.25rem; }
    .doctrine-accordion .accordion-button { font-size: 0.98rem; padding: 1rem 1rem; }
    .doctrine-accordion .doctrine-number { width: 30px; height: 30px; font-size: 0.85rem; margin-right: 0.65rem; }
    .doctrine-accordion .accordion-body { padding: 1.25rem; }
    .whatsapp-float { width: 54px; height: 54px; font-size: 1.65rem; bottom: 20px; right: 20px; }
    .back-to-top { bottom: 84px; right: 22px; width: 42px; height: 42px; font-size: 1.05rem; }
    .map-wrapper iframe { height: 320px; }
    .cta-banner { padding: 3.5rem 0; }
    .section-title { font-size: 1.9rem; }
}

/* ---------- Tablet ---------- */
@media (min-width: 576px) and (max-width: 991.98px) {
    .hero-title { font-size: 3rem; }
    section { padding: 4rem 0; }
    .contact-card { padding: 2.25rem; }
    #mainNavbar .navbar-nav { padding: 1rem 0; }
    #mainNavbar .navbar-nav .nav-link { padding: 0.6rem 0; }
    #mainNavbar .navbar-nav .nav-item.ms-lg-3 { margin-top: 0.75rem; }
}

/* ---------- Mobile menu styling ---------- */
@media (max-width: 991.98px) {
    .navbar-collapse {
        background-color: rgba(13, 59, 102, 0.98);
        padding: 1rem;
        margin-top: 0.75rem;
        border-radius: var(--radius-sm);
    }
    .navbar-dark .navbar-nav .nav-link::after { display: none; }
    .navbar-dark .navbar-nav .nav-link {
        border-bottom: 1px solid rgba(255, 255, 255, 0.08);
        text-align: center;
    }
    .navbar-dark .navbar-nav .nav-link:last-of-type { border-bottom: none; }
}

/* ---------- Desktop ---------- */
@media (min-width: 992px) {
    .hero { min-height: 100vh; }
    section { padding: 6rem 0; }
}

/* ---------- Large screens ---------- */
@media (min-width: 1400px) {
    .container { max-width: 1280px; }
    .hero-title { font-size: 5rem; }
}

/* ---------- Print ---------- */
@media print {
    .navbar, .whatsapp-float, .back-to-top, footer, .hero-cta { display: none !important; }
    body { color: #000; background: #fff; }
}

/* ---------- Reduced motion ---------- */
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
        scroll-behavior: auto !important;
    }
}
