/* =====================================================
   EDUVOYAGE — Responsive Breakpoints
   ===================================================== */

/* ─── Extra Large (≤ 1400px) ─── */
@media (max-width: 1400px) {
    .dropdown-mega .dropdown-menu-mega { width: 560px; }
}

/* ─── Large Desktop (≤ 1200px) ─── */
@media (max-width: 1200px) {
    .hero-title { font-size: 46px; }
    .section-title { font-size: 32px; }
    .cta-title { font-size: 32px; }
    .dropdown-mega .dropdown-menu-mega { width: 100%; min-width: 500px; }

    /* Show mobile offcanvas, hide desktop collapse */
    .navbar-collapse { display: none !important; }
}

/* ─── Tablet Landscape (≤ 992px) ─── */
@media (max-width: 992px) {
    .hero-section { min-height: 70vh; }
    .hero-title { font-size: 38px; }
    .hero-subtitle { font-size: 16px; }
    .stat-number { font-size: 30px; }
    .section-padding { padding: 60px 0; }
    .section-title { font-size: 28px; }
    .search-card { padding: 24px 20px; }

    /* Steps go vertical */
    .steps-timeline { flex-direction: column; gap: 20px; align-items: flex-start; padding-left: 36px; }
    .steps-timeline::before { top: 0; bottom: 0; left: 65px; width: 3px; height: auto; right: auto; }
    .step-item { display: flex; align-items: center; gap: 16px; text-align: left; }
    .step-number { margin: 0; flex-shrink: 0; width: 50px; height: 50px; font-size: 18px; }

    .btn-apply-now { display: none; } /* hidden on mid-size, shown in offcanvas */
    .footer-title { margin-top: 10px; }
    .cta-section { padding: 60px 0; }
    .cta-title { font-size: 28px; }
    .footer-cta-strip { padding: 30px 0; }

    /* Sections 5-10 tablet */
    .uni-card-header { padding: 12px 16px; }
    .uni-card-name { font-size: 14px; }
    .trust-strip { padding: 16px 20px; }
    .trust-item { font-size: 13px; }
    .carousel-control-prev { left: -10px; }
    .carousel-control-next { right: -10px; }
    .cta-icon-wrap { width: 60px; height: 60px; font-size: 28px; }

    /* Country detail tablet */
    .country-hero { min-height: 260px; }
    .country-hero-title { font-size: 30px; }
    .country-hero-flag { font-size: 40px; }
    .detail-sidebar { position: static; }
    .key-facts-grid { grid-template-columns: repeat(2, 1fr); }

    /* Course pages tablet */
    .course-hero-title { font-size: 28px; }
    .course-hero-icon { width: 52px; height: 52px; font-size: 24px; }
    .clsc-icon { width: 44px; height: 44px; font-size: 18px; }

    /* University pages tablet */
    .ulc-logo { width: 48px; height: 48px; }
    .ulc-name { font-size: 14px; }
    .uni-grid.list-view .ulc-top { flex: 0 0 220px; }
    .uni-grid.list-view .ulc-details { gap: 12px; }

    /* University detail tablet */
    .uni-hero { min-height: 280px; }
    .uni-hero-title { font-size: 28px; }
    .uni-hero-logo { width: 64px; height: 64px; }
    .facility-grid { grid-template-columns: repeat(3, 1fr); }

    /* Exams + Scholarships tablet */
    .exam-hero-title { font-size: 28px; }
    .exam-hero-icon { width: 52px; height: 52px; font-size: 24px; }
    .sch-hero-title { font-size: 26px; }

    /* Blog tablet */
    .blog-detail-title { font-size: 28px; }
    .bfc-title { font-size: 20px; }
    .blog-sidebar { position: static; }
    .blog-content { font-size: 15px; }
    .blog-author-card { flex-direction: column; align-items: center; text-align: center; }

    /* About / Contact / Apply tablet */
    .about-hero-title { font-size: 32px; }
    .about-img-placeholder { height: 280px; font-size: 56px; }
    .counter-number { font-size: 36px; }
    .counter-suffix { font-size: 26px; }
    .apply-hero-title { font-size: 28px; }
    .wizard-card { padding: 24px; }

    /* Auth + Dashboard tablet */
    .auth-card { padding: 28px; }
    .sd-sidebar { position: static; }
    .sd-tab-title { font-size: 20px; }
}

/* ─── Tablet Portrait (≤ 768px) ─── */
@media (max-width: 768px) {
    body { font-size: 14px; }
    .hero-section { min-height: 65vh; }
    .hero-title { font-size: 32px; }
    .hero-subtitle { font-size: 15px; }
    .hero-content { padding: 50px 0 40px; }
    .hero-stats { gap: 16px !important; }
    .stat-number { font-size: 28px; }
    .stat-label { font-size: 11px; }

    .search-section { margin-top: -30px; }
    .search-card .form-label { display: none; }
    .section-padding { padding: 50px 0; }
    .section-title { font-size: 26px; }
    .section-subtitle { font-size: 14px; }
    .section-header { margin-bottom: 35px; }

    .page-banner { padding: 40px 0 30px; }
    .page-banner h1 { font-size: 28px; }
    .top-bar { display: none !important; }

    .cta-buttons .btn { display: block; width: 100%; margin: 8px 0 !important; }

    .section-tabs a { padding: 12px 14px; font-size: 13px; }
    .filter-card { margin-bottom: 20px; position: static; }

    .site-footer { padding: 40px 0 0; }
    .footer-cta-strip .newsletter-form { flex-direction: column; }
    .footer-cta-strip .newsletter-form .form-control,
    .footer-cta-strip .newsletter-form .btn { width: 100%; }

    .auth-card { margin: 30px 16px; padding: 30px 24px; }

    .search-overlay { padding-top: 10vh; }

    /* Homepage responsive */
    .hero-badge { font-size: 12px; padding: 6px 16px; }
    .search-chips { display: none !important; }
    .destination-meta { flex-wrap: wrap; gap: 6px !important; }
    .course-name { font-size: 14px; }
    .course-badges .badge { font-size: 10px; }

    /* Sections 5-10 tablet portrait */
    .feature-box { padding: 20px 14px; }
    .feature-icon { width: 64px; height: 64px; font-size: 28px; }
    .carousel-control-prev,
    .carousel-control-next { display: none; }
    .testimonial-card .review-text { font-size: 14px; padding-left: 20px; }
    .blog-card .card-body { padding: 16px; }
    .cta-icon-wrap { display: none; }

    /* Listing pages tablet */
    .filter-card { position: static; }
    .clc-banner { height: 150px; }
    .clc-name { font-size: 15px; }
    .clc-overview { font-size: 12px; }
    .results-header { flex-direction: column; gap: 8px; }
    .page-banner h1 { font-size: 28px; }

    /* Country detail 768px */
    .country-hero { min-height: 220px; padding-bottom: 30px; }
    .country-hero-title { font-size: 26px; }
    .country-hero-flag { font-size: 36px; }
    .content-heading { font-size: 20px; }
    .uni-mini-card .btn { display: none; }
    .section-tabs a { padding: 12px 14px; font-size: 13px; }

    /* Course pages 768px */
    .course-hero { padding: 40px 0 30px; }
    .course-hero-title { font-size: 24px; }
    .course-hero-icon { width: 44px; height: 44px; font-size: 20px; }
    .clsc-stats { gap: 14px; }
    .clsc-stat strong { font-size: 16px; }
    .country-chip-card { padding: 12px 8px; }
    .ccc-flag { font-size: 26px; }
    .uni-course-table { font-size: 12px; }
    .fee-highlight { padding: 12px 16px; }
    .fh-value { font-size: 18px; }

    /* University pages 768px */
    .uni-grid.list-view .uni-card-col { flex: 0 0 100%; max-width: 100%; }
    .uni-grid.list-view .uni-list-card { flex-direction: column; }
    .uni-grid.list-view .ulc-top { flex: none; margin-right: 0; margin-bottom: 12px; }
    .uni-grid.list-view .ulc-badges { margin-bottom: 12px; }
    .uni-grid.list-view .ulc-details { flex-direction: column; gap: 6px; }
    .view-toggle { display: none; }
    .ulc-detail-item { font-size: 12px; }

    /* University detail 768px */
    .uni-hero { min-height: 240px; padding-bottom: 30px; }
    .uni-hero-title { font-size: 24px; }
    .uni-hero-logo { width: 56px; height: 56px; }
    .uni-hero-sub { font-size: 13px; }
    .uni-gallery .gallery-item img { height: 140px; }
    .facility-grid { grid-template-columns: repeat(2, 1fr); }
    .share-btn { width: 36px; height: 36px; font-size: 14px; }
    .accreditation-badge { padding: 8px 12px; font-size: 13px; }

    /* Exams + Scholarships 768px */
    .exam-hero { padding: 40px 0 30px; }
    .exam-hero-title { font-size: 24px; }
    .exam-card-icon { width: 52px; height: 52px; font-size: 22px; }
    .exam-card-name { font-size: 16px; }
    .sch-hero { padding: 40px 0 30px; }
    .sch-hero-title { font-size: 22px; }
    .sch-list-card { padding: 16px; }
    .sch-card-name { font-size: 15px; }

    /* Blog 768px */
    .blog-featured-card .row { flex-direction: column; }
    .bfc-image { min-height: 200px; }
    .bfc-body { padding: 20px; }
    .bfc-title { font-size: 18px; }
    .blog-detail-title { font-size: 24px; }
    .blog-category-tabs { top: 60px; }
    .blog-card-image { height: 170px; }
    .blog-content h2 { font-size: 21px; }
    .blog-content h3 { font-size: 18px; }

    /* About / Contact / Apply 768px */
    .about-hero { padding: 40px 0 35px; }
    .about-hero-title { font-size: 28px; }
    .about-hero-sub { font-size: 15px; }
    .about-img-float { right: 0; bottom: -16px; }
    .about-img-placeholder { height: 240px; font-size: 48px; }
    .counter-number { font-size: 30px; }
    .counter-suffix { font-size: 22px; }
    .counter-label { font-size: 12px; }
    .about-counter-section { padding: 40px 0; }
    .mv-card { padding: 24px; }
    .team-avatar { width: 64px; height: 64px; font-size: 22px; }
    .contact-form-card { padding: 24px; }
    .apply-hero { padding: 40px 0 30px; }
    .apply-hero-title { font-size: 24px; }
    .wizard-step-dot small { display: none; }
    .wizard-step-dot span { width: 32px; height: 32px; font-size: 13px; }

    /* Auth + Dashboard 768px */
    .auth-section { padding: 24px 0; }
    .sd-menu { display: none; }
    .sd-mobile-tabs { display: block; }
    .sd-stat-num { font-size: 22px; }
    .sd-wish-card { padding: 10px; }
    .sd-wish-logo { width: 40px; height: 40px; }

    /* Pagination responsive */
    .pagination { gap: 2px; }
    .page-link { padding: 8px 14px; font-size: 13px; }

    /* Modal responsive */
    .modal-dialog { max-width: calc(100% - 32px); margin: 16px auto; }
    .modal-body { padding: 20px; }
    .modal-header { padding: 16px 20px; }
    .modal-footer { padding: 12px 20px; }

    /* Dashboard responsive */
    .dashboard-layout { flex-direction: column; }
    .dashboard-sidebar-panel { width: 100%; position: static; }
    .dash-stat-cards { grid-template-columns: repeat(2, 1fr); }
}

/* ─── Mobile (≤ 576px) ─── */
@media (max-width: 576px) {
    .hero-section { min-height: 60vh; }
    .hero-title { font-size: 28px; }
    .hero-subtitle { font-size: 14px; }
    .hero-content { padding: 40px 0 30px; }
    .hero-buttons .btn { width: 100%; margin-bottom: 10px; padding: 11px 24px; font-size: 14px; }

    .search-card { padding: 18px 14px; border-radius: var(--radius-lg); }
    .search-card .col-lg-3 { margin-bottom: 4px; }
    .section-padding { padding: 40px 0; }
    .section-title { font-size: 22px; }
    .section-badge { font-size: 11px; padding: 4px 14px; }

    .destination-card .destination-img { height: 170px; }
    .course-card { padding: 24px 16px; }
    .feature-box { padding: 20px 10px; }
    .feature-icon { width: 60px; height: 60px; font-size: 26px; }
    .blog-card .card-img-top { height: 170px; }
    .testimonial-card { padding: 22px; }
    .cta-title { font-size: 24px; }
    .cta-subtitle { font-size: 15px; }

    /* Homepage mobile */
    .hero-badge { font-size: 11px; padding: 5px 12px; margin-bottom: 16px; }
    .hero-shape { display: none; }
    .hero-stat-divider { display: none !important; }
    .course-card { padding: 20px 14px; }
    .course-icon { width: 52px; height: 52px; font-size: 22px; }
    .course-name { font-size: 13px; }
    .course-duration { font-size: 11px; }
    .course-uni-count { font-size: 11px; }
    .course-link { font-size: 13px; }
    .dest-meta-item { font-size: 11px; }
    .destination-body { padding: 16px; }
    .destination-name { font-size: 17px; }
    .destination-text { font-size: 13px; margin-bottom: 8px; }

    /* Sections 5-10 mobile */
    .feature-box { padding: 16px 10px; }
    .feature-title { font-size: 15px; }
    .feature-desc { font-size: 13px; }
    .trust-strip { padding: 14px 12px; flex-direction: column; }
    .trust-item { font-size: 12px; }
    .step-v-number { width: 38px; height: 38px; font-size: 16px; }
    .step-v-title { font-size: 15px; }
    .step-v-desc { font-size: 13px; }
    .testimonial-card { padding: 20px 16px; }
    .testimonial-card .review-text { font-size: 13px; }
    .student-photo, .student-photo-placeholder { width: 44px; height: 44px; }
    .student-photo-placeholder { font-size: 18px; }
    .blog-img-placeholder { height: 160px; font-size: 32px; }
    .blog-meta { font-size: 11px; gap: 10px; }
    .blog-excerpt { font-size: 13px; }

    /* Listing pages mobile */
    .clc-banner { height: 140px; }
    .clc-flag { font-size: 26px; }
    .clc-body { padding: 16px; }
    .clc-name { font-size: 15px; }
    .clc-course-tag { font-size: 10px; padding: 2px 8px; }
    .clc-info-row { font-size: 12px; gap: 10px; }
    .filter-card { padding: 18px; }
    .filter-group label { font-size: 12px; }
    .filter-group .form-check-label { font-size: 13px; }
    .page-banner { padding: 40px 0 30px; }
    .page-banner h1 { font-size: 24px; }
    .page-banner p { font-size: 14px; }

    /* Country detail mobile */
    .country-hero { min-height: 200px; padding-bottom: 24px; }
    .country-hero-title { font-size: 22px; }
    .country-hero-sub { font-size: 13px; }
    .country-hero-flag { font-size: 32px; }
    .key-facts-grid { grid-template-columns: repeat(2, 1fr); gap: 8px; }
    .key-fact { padding: 10px; }
    .key-fact i { font-size: 16px; }
    .kf-label { font-size: 10px; }
    .key-fact strong { font-size: 13px; }
    .content-section { padding-bottom: 24px; margin-bottom: 24px; }
    .content-heading { font-size: 18px; }
    .content-text { font-size: 14px; }
    .uni-mini-card { padding: 12px; }
    .uni-mini-logo { width: 36px; height: 36px; }
    .uni-mini-name { font-size: 13px; }
    .course-mini-card { padding: 10px; }
    .cmc-icon { width: 28px; height: 28px; font-size: 12px; }
    .cmc-name { font-size: 13px; }
    .sidebar-form-card form { padding: 16px; }
    .quick-facts-list li { padding: 8px 16px; font-size: 13px; }
    .section-tabs a { padding: 10px 12px; font-size: 12px; }
    .fee-table { font-size: 12px; }

    /* Course pages mobile */
    .course-hero-title { font-size: 20px; }
    .course-hero-icon { width: 40px; height: 40px; font-size: 18px; }
    .course-hero .badge { font-size: 10px !important; }
    .course-list-card { padding: 18px; }
    .clsc-icon { width: 40px; height: 40px; font-size: 16px; }
    .clsc-name { font-size: 14px; }
    .clsc-stats { gap: 12px; }
    .clsc-stat strong { font-size: 15px; }
    .clsc-stat span { font-size: 10px; }
    .clsc-desc { font-size: 12px; }
    .country-chip-card { padding: 10px 6px; }
    .ccc-flag { font-size: 22px; }
    .country-chip-card strong { font-size: 12px; }
    .country-chip-card small { font-size: 10px; }
    .fee-highlight { padding: 10px 14px; }
    .fh-value { font-size: 16px; }

    /* University pages mobile */
    .uni-list-card { padding: 16px; }
    .ulc-logo { width: 42px; height: 42px; }
    .ulc-name { font-size: 13px; }
    .ulc-country { font-size: 12px; }
    .ulc-badges { gap: 4px; }
    .ulc-badges .ranking-badge { font-size: 10px; padding: 2px 8px; }
    .ulc-badges .type-badge { font-size: 10px; }
    .ulc-detail-item { font-size: 12px; }
    .ulc-actions { flex-direction: column; gap: 10px; align-items: stretch; }
    .ulc-actions .form-check-inline { margin: 0; }
    .ulc-view-btn { text-align: center; }

    /* University detail mobile */
    .uni-hero { min-height: 200px; padding-bottom: 24px; }
    .uni-hero-title { font-size: 20px; }
    .uni-hero-logo { width: 48px; height: 48px; border-width: 2px; }
    .uni-hero-sub { font-size: 12px; }
    .uni-hero .ranking-badge { font-size: 10px; }
    .uni-gallery .gallery-item img { height: 120px; }
    .gallery-overlay { display: none; }
    .facility-grid { grid-template-columns: repeat(2, 1fr); gap: 6px; }
    .facility-item { padding: 8px 10px; font-size: 12px; }
    .review-card { padding: 16px; }
    .review-text { font-size: 13px; }
    .share-btn { width: 34px; height: 34px; font-size: 13px; }
    .sim-uni-logo { width: 28px; height: 28px; }
    .accreditation-badge { padding: 6px 10px; font-size: 12px; }

    /* Exams + Scholarships mobile */
    .exam-hero-title { font-size: 20px; }
    .exam-hero-icon { width: 44px; height: 44px; font-size: 20px; }
    .exam-card { padding: 18px; }
    .exam-card-icon { width: 48px; height: 48px; font-size: 20px; }
    .exam-card-name { font-size: 15px; }
    .exam-card-desc { font-size: 12px; }
    .sch-hero-title { font-size: 20px; }
    .sch-list-card { padding: 14px; }
    .sch-card-name { font-size: 14px; }
    .sch-amount-badge { font-size: 12px; padding: 3px 10px; }
    .sch-detail-item { font-size: 12px; }
    .sch-card-eligibility { font-size: 12px; }

    /* Blog mobile */
    .blog-detail-title { font-size: 22px; }
    .blog-detail-meta { font-size: 12px; gap: 10px; }
    .blog-card-image { height: 150px; }
    .blog-card-body { padding: 16px; }
    .blog-card-title { font-size: 15px; }
    .blog-card-excerpt { font-size: 12px; }
    .blog-content { font-size: 14px; line-height: 1.75; }
    .blog-content h2 { font-size: 19px; }
    .blog-content h3 { font-size: 16px; }
    .blog-author-card { padding: 18px; gap: 14px; }
    .bac-avatar { width: 52px; height: 52px; font-size: 18px; }
    .brc-image { height: 110px; }
    .blog-share { flex-direction: column; align-items: flex-start; }
    .blog-cat-tab { font-size: 12px; padding: 5px 12px; }

    /* About / Contact / Apply mobile */
    .about-hero-title { font-size: 24px; }
    .about-img-placeholder { height: 200px; font-size: 40px; }
    .about-img-float { position: relative; right: 0; bottom: 0; margin-top: 12px; display: inline-block; }
    .counter-number { font-size: 26px; }
    .counter-suffix { font-size: 18px; }
    .counter-label { font-size: 11px; }
    .team-card { padding: 20px; }
    .team-avatar { width: 56px; height: 56px; font-size: 20px; }
    .why-card { padding: 20px; }
    .contact-info-card { padding: 20px; }
    .contact-form-card { padding: 18px; }
    .contact-wa-card { flex-wrap: wrap; }
    .apply-hero-title { font-size: 22px; }
    .wizard-card { padding: 18px; }
    .wizard-step-title { font-size: 17px; }
    .wizard-step-dot span { width: 28px; height: 28px; font-size: 12px; }

    /* Auth + Dashboard mobile */
    .auth-card { padding: 22px 18px; }
    .auth-title { font-size: 20px; }
    .sd-section { padding: 16px 0 40px; }
    .sd-profile-card { padding: 20px 16px 14px; }
    .sd-avatar { width: 56px; height: 56px; font-size: 20px; }
    .sd-card { padding: 14px; }
    .sd-tab-title { font-size: 18px; }
    .sd-stat-card { padding: 12px; }
    .sd-stat-num { font-size: 20px; }
    .sd-stat-label { font-size: 11px; }
    .sd-notif-item.unread { margin: 0 -14px; padding: 10px 14px; }

    /* Navbar */
    .brand-name { font-size: 18px; }
    .brand-tagline { display: none !important; }
    .brand-icon { width: 36px; height: 36px; font-size: 18px; }

    /* Floating buttons */
    .whatsapp-float { width: 48px; height: 48px; font-size: 24px; bottom: 16px; left: 16px; }
    .whatsapp-tooltip { display: none; }
    .scroll-top-btn { width: 40px; height: 40px; font-size: 18px; bottom: 16px; right: 16px; }

    /* Footer */
    .footer-bottom { text-align: center; }
    .footer-bottom .col-md-6 { margin-bottom: 6px; }
    .footer-bottom-links .sep { margin: 0 5px; }
    .footer-title { font-size: 14px; }

    /* Pagination mobile */
    .pagination { flex-wrap: wrap; justify-content: center; }
    .page-link { padding: 6px 10px; font-size: 12px; min-width: 34px; text-align: center; }
    .page-item:first-child .page-link,
    .page-item:last-child .page-link { padding: 6px 12px; }

    /* Modal mobile */
    .modal-dialog { margin: 8px; }
    .modal-body { padding: 16px; }
    .modal-xl, .modal-lg { max-width: calc(100vw - 16px); }

    /* Dashboard mobile */
    .dash-stat-cards { grid-template-columns: 1fr; }
    .dash-welcome { padding: 20px; }
    .dash-welcome h4 { font-size: 18px; }
    .dash-table { overflow-x: auto; }
    .doc-upload-card { padding: 16px; }
}

/* ─── Extra Small (≤ 400px) ─── */
@media (max-width: 400px) {
    .hero-title { font-size: 24px; }
    .search-card { padding: 14px 12px; }
    .container { padding-left: 16px; padding-right: 16px; }
    #mobileMenu { width: 280px; }
}

/* ─── Landscape phones ─── */
@media (max-height: 500px) and (orientation: landscape) {
    .hero-section { min-height: 100vh; }
    .hero-content { padding: 20px 0; }
    .hero-title { font-size: 28px; }
}

/* ─── Print ─── */
@media print {
    .main-navbar, .top-bar, .whatsapp-float, .scroll-top-btn,
    .footer-cta-strip, .search-overlay, #mobileMenu,
    .compare-bar, .toast-container { display: none !important; }
    .site-footer { padding: 20px 0; }
    body { font-size: 12pt; color: #000; }
}
