/* =========================================================
   MEDICURE Hospital — Responsive Stylesheet
   Mobile-first refinements and breakpoints
   ========================================================= */

/* Large desktop (≤ 1200px) */
@media (max-width: 1200px) {
    .container {
        padding: 0 20px;
    }

    .hero-grid,
    .about-grid {
        gap: 48px;
    }

    .quick-grid,
    .dept-grid,
    .why-grid {
        gap: 18px;
    }

    .footer-grid {
        gap: 28px;
    }
}

/* Tablet landscape / small laptop (≤ 992px) */
@media (max-width: 992px) {
    .section {
        padding: 72px 0;
    }

    .hero {
        padding: 56px 0 88px;
    }

    .hero-grid,
    .about-grid {
        grid-template-columns: 1fr;
        gap: 40px;
    }

    .hero-image-wrap {
        aspect-ratio: 16 / 11;
        max-height: 480px;
    }

    .hero-decor.one,
    .hero-decor.two {
        display: none;
    }

    .quick-actions {
        margin-top: -40px;
    }

    .quick-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .dept-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .why-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .blog-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .footer-grid {
        grid-template-columns: 1.4fr 1fr 1fr;
        row-gap: 36px;
    }

    .footer-grid .footer-col:nth-child(4),
    .footer-grid .footer-col:nth-child(5) {
        grid-column: span 1;
    }

    .nav-menu {
        display: none;
    }

    .nav-toggle {
        display: inline-flex;
    }

    .emergency-pill {
        display: none;
    }

    .doctor-detail {
        grid-template-columns: 1fr;
        gap: 32px;
    }

    .doctor-detail-photo {
        max-width: 380px;
        margin: 0 auto;
    }

    .contact-grid {
        grid-template-columns: 1fr;
        gap: 32px;
    }
}

/* Tablet portrait (≤ 768px) */
@media (max-width: 768px) {
    .section {
        padding: 56px 0;
    }

    .section-header {
        margin-bottom: 40px;
    }

    .topbar {
        font-size: 0.78rem;
        padding: 8px 0;
    }

    .topbar-inner {
        justify-content: center;
        gap: 12px;
    }

    .topbar-left {
        display: none;
    }

    .topbar-right {
        gap: 14px;
    }

    .topbar-item.call-top {
        display: inline-flex;
    }

    .topbar-item.wa-top {
        display: none;
    }

    .nav {
        padding: 12px 0;
    }

    .logo img {
        height: 44px;
    }

    .nav-actions .btn {
        display: none;
    }

    .hero {
        padding: 40px 0 64px;
    }

    .hero-text p {
        font-size: 1rem;
    }

    .hero-ctas .btn {
        flex: 1 1 calc(50% - 7px);
        justify-content: center;
    }

    .quick-actions {
        margin-top: 0;
    }

    .quick-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 12px;
    }

    .quick-card {
        padding: 20px;
        gap: 12px;
        flex-direction: column;
        align-items: flex-start;
    }

    .quick-icon {
        width: 40px;
        height: 40px;
    }

    .quick-card h3 {
        font-size: 0.98rem;
    }

    .quick-card p {
        font-size: 0.8rem;
    }

    .doctors-grid {
        grid-template-columns: 1fr;
        gap: 20px;
    }

    .doctor-card .doctor-photo {
        aspect-ratio: 16 / 10;
    }

    .visual-banner {
        padding: 80px 0;
    }

    .gallery-grid {
        grid-template-columns: 1fr 1fr;
        grid-template-rows: auto;
        height: auto;
    }

    .gallery-grid .g-item:nth-child(1) {
        grid-column: span 2;
        grid-row: auto;
        aspect-ratio: 16 / 9;
    }

    .gallery-grid .g-item {
        aspect-ratio: 1 / 1;
    }

    .blog-grid {
        grid-template-columns: 1fr;
        gap: 18px;
    }

    .form-row {
        grid-template-columns: 1fr;
        gap: 0;
        margin-bottom: 0;
    }

    .form-card {
        padding: 24px;
    }

    .footer-grid {
        grid-template-columns: 1fr 1fr;
        gap: 28px;
    }

    .footer-brand {
        grid-column: span 2;
    }

    .footer-bottom {
        flex-direction: column;
        text-align: center;
    }

    .sticky-action-bar {
        display: flex;
    }

    body {
        padding-bottom: 78px;
    }
}

/* Mobile (≤ 576px) */
@media (max-width: 576px) {
    body {
        font-size: 15px;
    }

    .container {
        padding: 0 18px;
    }

    .section {
        padding: 48px 0;
    }

    .hero {
        padding: 32px 0 56px;
    }

    .hero-text h1 {
        font-size: 1.85rem;
    }

    .hero-text p {
        font-size: 0.98rem;
        margin-bottom: 26px;
    }

    .hero-ctas {
        flex-direction: column;
        gap: 12px;
    }

    .hero-ctas .btn {
        flex: 1 1 100%;
    }

    .hero-badge {
        max-width: 220px;
        padding: 12px 14px;
        bottom: 14px;
        left: 14px;
    }

    .hero-badge-icon {
        width: 36px;
        height: 36px;
    }

    .hero-badge-text strong {
        font-size: 0.85rem;
    }

    .hero-badge-text span {
        font-size: 0.72rem;
    }

    .quick-grid {
        grid-template-columns: 1fr;
    }

    .quick-card {
        flex-direction: row;
    }

    .dept-grid {
        grid-template-columns: 1fr;
    }

    .why-grid {
        grid-template-columns: 1fr;
    }

    .doctor-actions {
        flex-direction: column;
    }

    .doctor-actions .btn {
        width: 100%;
    }

    .doctor-detail-actions {
        flex-direction: column;
    }

    .doctor-detail-actions .btn {
        width: 100%;
    }

    .lightbox-prev,
    .lightbox-next {
        width: 40px;
        height: 40px;
    }

    .lightbox-prev {
        left: 10px;
    }

    .lightbox-next {
        right: 10px;
    }

    .cta-buttons {
        flex-direction: column;
        width: 100%;
    }

    .cta-buttons .btn {
        width: 100%;
    }

    .footer-grid {
        grid-template-columns: 1fr;
    }

    .footer-brand {
        grid-column: span 1;
    }

    .footer-bottom .footer-links {
        flex-wrap: wrap;
        justify-content: center;
        gap: 14px;
    }

    .sticky-action-bar {
        padding: 8px;
    }

    .sticky-action-bar a {
        font-size: 0.74rem;
        padding: 8px;
    }

    .page-hero {
        padding: 56px 0 40px;
    }

    .page-hero h1 {
        font-size: 1.85rem;
    }
}

/* Tiny phones (≤ 400px) */
@media (max-width: 400px) {
    .container {
        padding: 0 14px;
    }

    .logo img {
        height: 38px;
    }

    .topbar {
        font-size: 0.74rem;
    }

    .topbar-item.call-top span {
        display: none;
    }

    .hero-text h1 {
        font-size: 1.65rem;
    }

    .btn {
        padding: 12px 20px;
        font-size: 0.88rem;
    }

    .quick-card {
        padding: 16px;
    }

    .doctor-body {
        padding: 22px;
    }

    .form-card {
        padding: 20px;
    }

    .nav-toggle {
        width: 40px;
        height: 40px;
    }
}

/* Reveal animation delay helpers */
.reveal[data-delay="1"] {
    transition-delay: 80ms;
}

.reveal[data-delay="2"] {
    transition-delay: 160ms;
}

.reveal[data-delay="3"] {
    transition-delay: 240ms;
}

.reveal[data-delay="4"] {
    transition-delay: 320ms;
}