/* ============================================
   RESPONSIVE CSS - Mobile-First Design
   ============================================ */

/* ============================================
   MOBILE OPTIMIZATIONS (Base)
   ============================================ */

@media (max-width: 1024px) {
    .container {
        max-width: 100%;
    }

    .grid-cols-3 {
        grid-template-columns: repeat(2, 1fr);
    }

    .grid-cols-4 {
        grid-template-columns: repeat(2, 1fr);
    }

    section {
        padding: var(--space-12) 0;
    }
}

/* ============================================
   TABLET - LANDSCAPE MODE (768px - 1024px)
   ============================================ */

@media (max-width: 768px) {
    /* ---- Container & Layout ---- */
    .container {
        padding: 0 var(--space-4);
    }

    /* ---- Header & Navigation ---- */
    .header {
        position: fixed;
        top: 0;
        left: 0;
        right: 0;
        z-index: var(--z-fixed);
    }

    .nav-container {
        padding: var(--space-3) 0;
    }

    .logo {
        height: 50px;
    }

    .hamburger {
        display: flex !important;
    }

    .nav-menu {
        position: fixed;
        top: 70px;
        left: -100%;
        width: 100%;
        height: calc(100vh - 70px);
        background-color: var(--white);
        flex-direction: column;
        padding: var(--space-6) var(--space-4);
        gap: 0;
        transition: left var(--transition-base);
        z-index: var(--z-dropdown);
        box-shadow: var(--shadow-lg);
        overflow-y: auto;
    }

    .nav-menu.active {
        left: 0;
    }

    .nav-menu a {
        padding: var(--space-4) var(--space-4);
        border-bottom: 1px solid var(--border);
        font-size: var(--text-base);
        width: 100%;
        display: block;
    }

    .nav-menu a::after {
        display: none;
    }

    .nav-menu a:hover {
        background-color: var(--bg-secondary);
    }

    /* ---- Typography ---- */
    h1 {
        font-size: var(--text-3xl);
    }

    h2 {
        font-size: var(--text-2xl);
    }

    h3 {
        font-size: var(--text-xl);
    }

    p {
        font-size: var(--text-base);
    }

    /* ---- Hero Section ---- */
    .hero {
        padding: 100px var(--space-4) 60px;
        margin-top: 70px;
    }

    .hero-content h1 {
        font-size: var(--text-3xl);
        margin-bottom: var(--space-4);
    }

    .hero-content p {
        font-size: var(--text-lg);
        margin-bottom: var(--space-6);
    }

    .hero-buttons {
        flex-direction: column;
        gap: var(--space-3);
    }

    .hero-buttons .btn {
        width: 100%;
    }

    /* ---- Sections ---- */
    section {
        padding: var(--space-12) 0;
    }

    .section-header {
        margin-bottom: var(--space-12);
    }

    /* ---- Grid Layouts ---- */
    .grid-cols-1 {
        grid-template-columns: 1fr;
    }

    .grid-cols-2 {
        grid-template-columns: 1fr;
    }

    .grid-cols-3 {
        grid-template-columns: 1fr;
    }

    .grid-cols-4 {
        grid-template-columns: repeat(2, 1fr);
    }

    .grid-gap-8 {
        gap: var(--space-6);
    }

    /* ---- Cards ---- */
    .card {
        padding: var(--space-4);
    }

    /* ---- Buttons ---- */
    .btn {
        padding: var(--space-3) var(--space-4);
        font-size: var(--text-base);
    }

    .btn-lg {
        padding: var(--space-4) var(--space-6);
    }

    .btn-xl {
        padding: var(--space-4) var(--space-8);
    }

    .btn-block {
        display: block;
        width: 100%;
    }

    /* ---- Forms ---- */
    .form-group {
        margin-bottom: var(--space-4);
    }

    input,
    select,
    textarea {
        padding: var(--space-3) var(--space-4);
        font-size: 16px; /* Prevents iOS zoom */
    }

    /* ---- Footer ---- */
    .footer-content {
        grid-template-columns: 1fr;
        gap: var(--space-6);
    }

    .footer-section h4 {
        margin-top: var(--space-4);
    }

    /* ---- Utility Spacing ---- */
    .mt-8 {
        margin-top: var(--space-6);
    }

    .mb-8 {
        margin-bottom: var(--space-6);
    }

    .py-8 {
        padding-top: var(--space-6);
        padding-bottom: var(--space-6);
    }

    /* ---- Flex Direction ---- */
    .flex-col {
        flex-direction: column;
    }

    /* ---- Display Adjustments ---- */
    .hide-mobile {
        display: none !important;
    }

    .show-mobile {
        display: block !important;
    }
}

/* ============================================
   SMALL PHONES (480px - 768px)
   ============================================ */

@media (max-width: 480px) {
    /* ---- Global ---- */
    .container {
        padding: 0 var(--space-3);
    }

    /* ---- Typography ---- */
    h1 {
        font-size: var(--text-2xl);
        line-height: 1.2;
    }

    h2 {
        font-size: var(--text-xl);
    }

    h3 {
        font-size: var(--text-lg);
    }

    p {
        font-size: var(--text-sm);
    }

    /* ---- Logo & Header ---- */
    .logo {
        height: 45px;
    }

    .nav-container {
        padding: var(--space-2) 0;
    }

    /* ---- Hero ---- */
    .hero {
        padding: 80px var(--space-3) 40px;
        margin-top: 65px;
    }

    .hero::before {
        width: 400px;
        height: 400px;
        right: -30%;
        top: -30%;
    }

    .hero-content h1 {
        font-size: var(--text-2xl);
        margin-bottom: var(--space-3);
    }

    .hero-content p {
        font-size: var(--text-base);
        margin-bottom: var(--space-4);
    }

    .hero-buttons {
        gap: var(--space-2);
    }

    /* ---- Sections ---- */
    section {
        padding: var(--space-8) 0;
    }

    .section-header {
        margin-bottom: var(--space-8);
    }

    .section-header h2 {
        margin-bottom: var(--space-2);
    }

    /* ---- Grid ---- */
    .grid-cols-4 {
        grid-template-columns: 1fr;
    }

    .grid-gap-8 {
        gap: var(--space-4);
    }

    .grid-gap-6 {
        gap: var(--space-3);
    }

    /* ---- Cards ---- */
    .card {
        padding: var(--space-3);
        margin-bottom: var(--space-4);
    }

    .card-header {
        margin-bottom: var(--space-3);
        padding-bottom: var(--space-3);
    }

    /* ---- Buttons ---- */
    .btn {
        padding: var(--space-2) var(--space-3);
        font-size: var(--text-sm);
        width: 100%;
        margin-bottom: var(--space-2);
    }

    .btn-lg {
        padding: var(--space-3) var(--space-4);
        font-size: var(--text-base);
    }

    .btn-block {
        width: 100%;
    }

    /* ---- Forms ---- */
    label {
        font-size: var(--text-sm);
        margin-bottom: var(--space-2);
    }

    input,
    select,
    textarea {
        padding: var(--space-2) var(--space-3);
        font-size: 16px; /* Important for iOS */
        border-radius: var(--radius-sm);
    }

    textarea {
        min-height: 100px;
    }

    /* ---- Footer ---- */
    footer {
        padding: var(--space-8) 0 var(--space-4);
    }

    .footer-content {
        gap: var(--space-4);
    }

    .footer-section h4 {
        font-size: var(--text-base);
        margin-top: var(--space-3);
    }

    .footer-section p {
        font-size: var(--text-xs);
    }

    .footer-bottom {
        padding-top: var(--space-4);
        font-size: var(--text-xs);
    }

    /* ---- Spacing Utilities ---- */
    .mt-4 {
        margin-top: var(--space-2);
    }

    .mb-4 {
        margin-bottom: var(--space-2);
    }

    .mt-8 {
        margin-top: var(--space-4);
    }

    .mb-8 {
        margin-bottom: var(--space-4);
    }

    .pt-8 {
        padding-top: var(--space-4);
    }

    .pb-8 {
        padding-bottom: var(--space-4);
    }

    /* ---- Gap Utilities ---- */
    .gap-4 {
        gap: var(--space-2);
    }

    .gap-6 {
        gap: var(--space-3);
    }

    .gap-8 {
        gap: var(--space-4);
    }

    /* ---- Visibility ---- */
    .hide-sm {
        display: none !important;
    }

    .show-sm {
        display: block !important;
    }
}

/* ============================================
   EXTRA SMALL DEVICES (< 375px)
   ============================================ */

@media (max-width: 375px) {
    h1 {
        font-size: 1.5rem;
    }

    h2 {
        font-size: 1.25rem;
    }

    h3 {
        font-size: 1rem;
    }

    .container {
        padding: 0 var(--space-2);
    }

    .hero {
        padding: 60px var(--space-2) 30px;
    }

    .card {
        padding: var(--space-2);
    }

    .btn {
        padding: var(--space-2) var(--space-3);
        font-size: var(--text-xs);
    }
}

/* ============================================
   LANDSCAPE MODE - SMALL DEVICES
   ============================================ */

@media (max-height: 600px) and (orientation: landscape) {
    .hero {
        padding: 40px var(--space-4) 30px;
    }

    .hero-content h1 {
        font-size: var(--text-2xl);
        margin-bottom: var(--space-2);
    }

    .hero-content p {
        display: none;
    }

    section {
        padding: var(--space-6) 0;
    }

    .card {
        padding: var(--space-3);
    }

    .hero-buttons {
        gap: var(--space-2);
    }

    .btn {
        padding: var(--space-2) var(--space-3);
        font-size: var(--text-sm);
    }
}

/* ============================================
   TABLET - PORTRAIT (768px - 1024px)
   ============================================ */

@media (min-width: 768px) and (max-width: 1024px) {
    .container {
        max-width: 750px;
        padding: 0 var(--space-4);
    }

    h1 {
        font-size: var(--text-4xl);
    }

    h2 {
        font-size: var(--text-3xl);
    }

    .grid-cols-2 {
        grid-template-columns: 1fr;
    }

    .grid-cols-3 {
        grid-template-columns: repeat(2, 1fr);
    }

    .grid-cols-4 {
        grid-template-columns: repeat(2, 1fr);
    }

    section {
        padding: var(--space-16) 0;
    }
}

/* ============================================
   DESKTOP - LARGE (1440px+)
   ============================================ */

@media (min-width: 1440px) {
    .container {
        max-width: 1320px;
    }

    section {
        padding: var(--space-24) 0;
    }

    h1 {
        font-size: 4rem;
    }
}

/* ============================================
   PRINT STYLES
   ============================================ */

@media print {
    .header,
    footer,
    .hamburger,
    .nav-menu,
    .btn-primary,
    .btn-secondary,
    .modal,
    .modal-overlay,
    .notification {
        display: none !important;
    }

    body {
        font-size: 12pt;
        color: #000;
        background: #fff;
    }

    a {
        color: #000;
        text-decoration: underline;
    }

    .container {
        max-width: 100%;
        padding: 0;
    }

    section {
        page-break-inside: avoid;
        padding: 12pt 0;
    }

    h1, h2, h3, h4 {
        page-break-after: avoid;
    }

    p, img {
        page-break-inside: avoid;
    }

    .card {
        page-break-inside: avoid;
        box-shadow: none;
        border: 1px solid #000;
    }
}

/* ============================================
   HIGH DPI / RETINA DISPLAYS
   ============================================ */

@media (-webkit-min-device-pixel-ratio: 2),
       (min-resolution: 192dpi) {
    img {
        image-rendering: -webkit-optimize-contrast;
    }
}

/* ============================================
   REDUCED MOTION / ACCESSIBILITY
   ============================================ */

@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;
    }

    .header {
        transition: none;
    }

    .btn {
        transition: none;
    }
}

/* ============================================
   DARK COLOR SCHEME SUPPORT
   ============================================ */

@media (prefers-color-scheme: dark) {
    /* Can be implemented for dark mode in future */
}

/* ============================================
   TOUCH DEVICE OPTIMIZATIONS
   ============================================ */

@media (hover: none) and (pointer: coarse) {
    .btn {
        padding: var(--space-4) var(--space-6);
        font-size: var(--text-lg);
    }

    .card {
        padding: var(--space-6);
    }

    a {
        padding: var(--space-2) 0;
        display: inline-block;
    }

    input,
    select,
    textarea {
        font-size: 16px; /* Prevents zoom on iOS */
    }
}

/* ============================================
   CONTAINER QUERIES (Modern CSS)
   ============================================ */

@supports (container-type: inline-size) {
    .card {
        container-type: inline-size;
    }

    @container (max-width: 400px) {
        .card {
            padding: var(--space-2);
        }
    }
}

/* ============================================
   HIDDEN CLASSES
   ============================================ */

.hide {
    display: none !important;
}

.show {
    display: block !important;
}

.sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border-width: 0;
}

/* Keyboard navigation focus indicators */
.keyboard-nav :focus {
    outline: 2px solid var(--primary);
    outline-offset: 2px;
}

/* ============================================
   ENHANCED MOBILE OPTIMIZATIONS - ALL PAGES
   ============================================ */

@media (max-width: 1024px) {
    /* Improved Header for all pages */
    .header {
        position: fixed;
        width: 100%;
        background: rgba(255, 255, 255, 0.98);
        backdrop-filter: blur(10px);
        -webkit-backdrop-filter: blur(10px);
    }

    .nav-container {
        padding: 0.75rem var(--space-4);
    }

    .logo {
        height: 45px;
    }

    /* Fixed mobile menu animation */
    .nav-menu {
        position: fixed;
        top: 70px;
        right: -100%;
        width: 85%;
        max-width: 350px;
        height: calc(100vh - 70px);
        background: var(--white);
        flex-direction: column;
        align-items: flex-start;
        padding: 2rem 1.5rem;
        box-shadow: -10px 0 30px rgba(0, 0, 0, 0.15);
        transition: right 0.4s cubic-bezier(0.4, 0, 0.2, 1);
        z-index: 999;
        overflow-y: auto;
        border-radius: 20px 0 0 20px;
    }

    .nav-menu.active {
        right: 0;
    }

    .nav-menu a {
        width: 100%;
        padding: 1rem 0;
        font-size: 1.1rem;
        border-bottom: 1px solid rgba(0, 0, 0, 0.08);
        color: var(--text-primary);
    }

    .nav-menu a:last-child {
        border-bottom: none;
    }

    .nav-menu .btn-primary {
        width: 100%;
        margin-top: 1rem;
        text-align: center;
        padding: 0.9rem;
    }

    /* Overlay when menu is open */
    .nav-overlay {
        display: none;
        position: fixed;
        top: 70px;
        left: 0;
        right: 0;
        bottom: 0;
        background: rgba(0, 0, 0, 0.5);
        z-index: 998;
    }

    .nav-overlay.active {
        display: block;
    }
}

/* ============================================
   TABLET OPTIMIZATIONS (768px - 1024px)
   ============================================ */

@media (min-width: 768px) and (max-width: 1024px) {
    /* Homepage */
    .services-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: var(--space-4);
    }

    .why-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: var(--space-4);
    }

    .trust-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: var(--space-4);
        margin-top: -3rem;
    }

    /* About page */
    .facilities-grid {
        grid-template-columns: repeat(3, 1fr);
        gap: var(--space-4);
    }

    .story-highlights {
        grid-template-columns: repeat(2, 1fr);
        gap: var(--space-4);
    }

    /* Services page */
    .services-detailed .services-grid {
        grid-template-columns: 1fr;
    }

    .service-detail-card {
        grid-template-columns: 1fr 1fr;
        margin-bottom: var(--space-4);
    }

    /* Doctors page */
    .doctor-profile-grid {
        grid-template-columns: 1fr 1.5fr;
        gap: var(--space-4);
    }

    .doctor-quick-info {
        grid-template-columns: repeat(2, 1fr);
    }

    /* Articles page */
    .articles-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: var(--space-4);
    }

    .featured-grid {
        grid-template-columns: 1fr 1fr;
        gap: var(--space-4);
    }

    /* Contact page */
    .contact-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: var(--space-4);
    }

    .appointment-grid {
        grid-template-columns: 1.5fr 1fr;
        gap: var(--space-4);
    }

    .faq-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: var(--space-4);
    }

    .location-details {
        grid-template-columns: repeat(2, 1fr);
        gap: var(--space-4);
    }
}

/* ============================================
   MOBILE OPTIMIZATIONS (max-width: 767px)
   ============================================ */

@media (max-width: 767px) {
    /* Typography improvements */
    h1 {
        font-size: 2rem;
        line-height: 1.2;
    }

    h2 {
        font-size: 1.75rem;
    }

    h3 {
        font-size: 1.25rem;
    }

    p {
        font-size: 0.95rem;
        line-height: 1.5;
    }

    /* Container padding */
    .container {
        padding: 0 1.25rem;
    }

    /* Section spacing */
    section {
        padding: 3rem 0;
    }

    .section-header {
        margin-bottom: 2rem;
    }

    /* ===== HOMEPAGE ===== */
    .hero {
        padding: 6rem 0 3rem;
        min-height: auto;
    }

    .hero h1 {
        font-size: 2rem;
    }

    .hero p {
        font-size: 1rem;
        margin-bottom: 1.5rem;
    }

    .hero-buttons {
        flex-direction: column;
        gap: 0.75rem;
    }

    .hero-buttons .btn {
        width: 100%;
    }

    .trust-grid {
        margin-top: -2rem;
        grid-template-columns: 1fr;
        gap: 1rem;
    }

    .trust-card {
        padding: 1.5rem;
    }

    .services-grid {
        grid-template-columns: 1fr;
        gap: 1.5rem;
    }

    .service-card {
        padding: 1.5rem;
    }

    .why-grid {
        grid-template-columns: 1fr;
        gap: 1.5rem;
    }

    .why-card {
        padding: 1.5rem;
    }

    .testimonials-grid {
        grid-template-columns: 1fr;
        gap: 1.5rem;
    }

    .testimonial-card {
        padding: 1.5rem;
    }

    .final-cta h2 {
        font-size: 1.5rem;
    }

    /* ===== ABOUT PAGE ===== */
    .page-header {
        padding: 6rem 0 2.5rem;
        margin-top: 70px;
    }

    .page-header h1 {
        font-size: 1.75rem;
    }

    .page-header p {
        font-size: 0.95rem;
    }

    .story-section {
        padding: 2.5rem 0;
    }

    .story-content p {
        font-size: 0.95rem;
    }

    .story-highlights {
        grid-template-columns: 1fr;
        gap: 1rem;
    }

    .highlight {
        padding: 1.5rem;
    }

    .highlight h3 {
        font-size: 2rem;
    }

    .values-grid {
        grid-template-columns: 1fr;
        gap: 1.5rem;
    }

    .value-card {
        padding: 1.5rem;
    }

    .team-grid {
        grid-template-columns: 1fr;
        gap: 1.5rem;
    }

    .team-card {
        padding: 1.5rem;
    }

    .team-image {
        width: 120px;
        height: 120px;
    }

    .facilities-grid {
        grid-template-columns: 1fr;
        gap: 1rem;
    }

    .facility-card {
        padding: 1.5rem;
    }

    /* ===== SERVICES PAGE ===== */
    .services-nav {
        top: 70px;
        padding: 0.75rem 0;
    }

    .service-categories {
        gap: 0.5rem;
        padding: 0.25rem 0;
    }

    .category-btn {
        padding: 0.5rem 1rem;
        font-size: 0.85rem;
        white-space: nowrap;
    }

    .services-detailed {
        padding: 2rem 0;
    }

    .service-detail-card {
        grid-template-columns: 1fr;
        margin-bottom: 1.5rem;
        border-radius: var(--radius-lg);
    }

    .service-image {
        height: 200px;
    }

    .service-content {
        padding: 1.5rem;
    }

    .service-content h3 {
        font-size: 1.25rem;
    }

    .service-features {
        flex-direction: column;
        gap: 0.5rem;
    }

    .service-features span {
        width: 100%;
        font-size: 0.85rem;
    }

    .comparison-section {
        padding: 2rem 0;
        overflow-x: auto;
    }

    .comparison-table {
        min-width: 600px;
    }

    .payment-grid {
        grid-template-columns: 1fr;
        gap: 1rem;
    }

    .payment-card {
        padding: 1.5rem;
    }

    /* ===== DOCTORS PAGE ===== */
    .doctors-profiles {
        padding: 2rem 0;
    }

    .doctor-profile-card {
        margin-bottom: 2rem;
    }

    .doctor-profile-grid {
        grid-template-columns: 1fr;
        gap: 0;
    }

    .doctor-image-section {
        padding: 1.5rem;
    }

    .doctor-image {
        height: 250px;
    }

    .doctor-quick-info {
        grid-template-columns: 1fr;
        gap: 0.5rem;
        margin-top: 1rem;
    }

    .quick-info-item {
        padding: 0.75rem;
    }

    .doctor-details-section {
        padding: 1.5rem;
    }

    .doctor-header h2 {
        font-size: 1.5rem;
    }

    .specialization-grid {
        gap: 0.5rem;
    }

    .specialization-tag {
        width: 100%;
        font-size: 0.85rem;
    }

    .doctor-actions {
        flex-direction: column;
        gap: 0.75rem;
    }

    .doctor-actions .btn {
        width: 100%;
    }

    .doctor-testimonials {
        padding: 2rem 0;
    }

    .testimonial-slide {
        padding: 1.5rem;
    }

    /* ===== ARTICLES PAGE ===== */
    .featured-article-section {
        padding: 2rem 0;
    }

    .featured-grid {
        grid-template-columns: 1fr;
    }

    .featured-image {
        height: 250px;
    }

    .featured-content {
        padding: 1.5rem;
    }

    .featured-content h2 {
        font-size: 1.25rem;
    }

    .articles-grid-section {
        padding: 2rem 0;
    }

    .articles-grid {
        grid-template-columns: 1fr;
        gap: 1.5rem;
    }

    .article-card {
        margin-bottom: 0;
    }

    .article-image {
        height: 200px;
    }

    .article-content {
        padding: 1.5rem;
    }

    .article-content h3 {
        font-size: 1.15rem;
    }

    .article-meta {
        flex-direction: column;
        gap: 0.25rem;
    }

    .categories-section {
        padding: 2rem 0;
    }

    .categories-grid {
        grid-template-columns: 1fr;
        gap: 1rem;
    }

    .category-card {
        padding: 1.5rem;
    }

    /* Modal improvements for mobile */
    .article-modal {
        width: 95%;
        max-height: 85vh;
    }

    .modal-header {
        padding: 1rem 1.25rem;
    }

    .modal-header h3 {
        font-size: 1.1rem;
    }

    .modal-content {
        padding: 1.25rem;
    }

    .article-hero-image {
        height: 200px;
    }

    /* ===== CONTACT PAGE ===== */
    .contact-info-section {
        padding: 2rem 0;
    }

    .contact-grid {
        grid-template-columns: 1fr;
        gap: 1rem;
    }

    .contact-card {
        flex-direction: column;
        text-align: center;
        padding: 1.5rem;
    }

    .contact-icon {
        margin: 0 auto 1rem;
    }

    .appointment-section {
        padding: 2rem 0;
    }

    .appointment-grid {
        grid-template-columns: 1fr;
        gap: 1.5rem;
    }

    .appointment-form-container {
        padding: 1.5rem;
    }

    .form-grid {
        grid-template-columns: 1fr;
        gap: 1rem;
    }

    .form-group input,
    .form-group select,
    .form-group textarea {
        padding: 0.75rem;
        font-size: 16px; /* Prevents zoom on iOS */
    }

    .checkbox {
        flex-direction: row !important;
        align-items: center;
        gap: 0.5rem;
    }

    .checkbox input {
        width: auto;
    }

    .checkbox label {
        font-size: 0.85rem;
    }

    .info-card {
        padding: 1.5rem;
    }

    .process-steps {
        gap: 1rem;
    }

    .step {
        gap: 0.75rem;
    }

    .step-number {
        width: 35px;
        height: 35px;
        font-size: 0.9rem;
    }

    .step-content h4 {
        font-size: 1rem;
    }

    .step-content p {
        font-size: 0.85rem;
    }

    .emergency-btn {
        font-size: 0.9rem;
    }

    .map-section {
        padding: 2rem 0;
    }

    .map-placeholder {
        height: 300px;
    }

    .location-details {
        grid-template-columns: 1fr;
        gap: 1rem;
    }

    .faq-section {
        padding: 2rem 0;
    }

    .faq-grid {
        grid-template-columns: 1fr;
        gap: 1rem;
    }

    .faq-item {
        padding: 1.25rem;
    }

    .faq-item h4 {
        font-size: 1rem;
    }

    .faq-item p {
        font-size: 0.9rem;
    }

    /* CTA Sections */
    .cta-section {
        padding: 2.5rem 0;
    }

    .cta-section h2 {
        font-size: 1.25rem;
    }

    .cta-section p {
        font-size: 0.9rem;
        margin-bottom: 1.5rem;
    }

    .cta-buttons {
        flex-direction: column;
        gap: 0.75rem;
    }

    .cta-buttons .btn {
        width: 100%;
    }

    /* Footer improvements */
    .footer {
        padding: 2.5rem 0 1rem;
    }

    .footer-grid {
        grid-template-columns: 1fr;
        gap: 2rem;
        text-align: center;
    }

    .footer-section h4::after {
        left: 50%;
        transform: translateX(-50%);
    }

    .footer-section ul {
        display: flex;
        flex-direction: column;
        align-items: center;
    }

    .footer-section ul li {
        text-align: center;
    }

    .footer-section ul li a {
        justify-content: center;
    }

    .social-links {
        justify-content: center;
    }

    .contact-info {
        align-items: center;
    }

    .contact-item {
        justify-content: center;
        text-align: center;
    }

    .hours-info {
        text-align: center;
    }

    .footer-bottom {
        padding-top: 1rem;
    }

    .footer-bottom p {
        font-size: 0.8rem;
        line-height: 1.5;
    }

    .footer-bottom a {
        display: inline-block;
        margin: 0.25rem 0.5rem;
    }

    .footer-bottom a::after {
        display: none;
    }

    /* Back to top button */
    .back-to-top {
        bottom: 1rem;
        right: 1rem;
        width: 45px;
        height: 45px;
        font-size: 1rem;
    }
}

/* ============================================
   SMALL PHONES (max-width: 375px)
   ============================================ */

@media (max-width: 375px) {
    .container {
        padding: 0 1rem;
    }

    h1 {
        font-size: 1.75rem;
    }

    h2 {
        font-size: 1.5rem;
    }

    h3 {
        font-size: 1.15rem;
    }

    .btn {
        padding: 0.7rem 1.25rem;
        font-size: 0.9rem;
    }

    .btn-large {
        padding: 0.8rem 1.5rem;
    }

    .page-header {
        padding: 5rem 0 2rem;
    }

    .page-header h1 {
        font-size: 1.5rem;
    }

    .hero h1 {
        font-size: 1.75rem;
    }

    .trust-card {
        padding: 1.25rem;
    }

    .trust-icon {
        width: 60px;
        height: 60px;
        font-size: 1.25rem;
    }

    .service-card,
    .why-card,
    .testimonial-card {
        padding: 1.25rem;
    }

    .service-icon {
        font-size: 2.25rem;
    }

    .facility-icon {
        width: 60px;
        height: 60px;
        font-size: 1.25rem;
    }

    .doctor-image {
        height: 200px;
    }

    .featured-image {
        height: 200px;
    }

    .article-image {
        height: 180px;
    }

    .modal-header {
        padding: 0.75rem 1rem;
    }

    .modal-content {
        padding: 1rem;
    }

    .article-hero-image {
        height: 150px;
    }
}

/* ============================================
   LANDSCAPE MODE FOR SMALL DEVICES
   ============================================ */

@media (max-height: 600px) and (orientation: landscape) {
    .hero {
        min-height: auto;
        padding: 5rem 0 2rem;
    }

    .hero p {
        display: block;
        font-size: 0.9rem;
    }

    .nav-menu {
        padding: 3rem 1.5rem 1.5rem;
    }

    .modal {
        max-height: 95vh;
    }

    .modal-content {
        max-height: calc(95vh - 80px);
    }
}

/* ============================================
   TOUCH DEVICE OPTIMIZATIONS
   ============================================ */

@media (hover: none) and (pointer: coarse) {
    .btn,
    .nav-menu a,
    .service-card,
    .why-card,
    .facility-card {
        cursor: pointer;
        -webkit-tap-highlight-color: transparent;
    }

    .btn:active {
        transform: scale(0.98);
    }

    input,
    select,
    textarea {
        font-size: 16px !important; /* Prevents zoom on iOS */
    }

    .hamburger {
        padding: 0.5rem;
        margin: -0.5rem;
    }
}