/**
 * Shared responsive overrides for CUT school guide pages.
 */

@media (max-width: 1200px) {
    .portal-layout,
    .content-grid {
        grid-template-columns: 1fr !important;
        padding-left: 30px !important;
        padding-right: 30px !important;
    }

    .main-nav {
        padding-left: 30px !important;
        padding-right: 30px !important;
    }

    .header-section {
        margin-left: 30px !important;
        margin-right: 30px !important;
    }
}

@media (max-width: 992px) {
    .top-utility,
    .brand-bar {
        padding-left: 20px !important;
        padding-right: 20px !important;
    }

    .portal-nav {
        display: none !important;
    }

    .discovery-strip {
        flex-direction: column !important;
        align-items: stretch !important;
        gap: 16px !important;
        padding: 18px 20px !important;
    }

    .search-wrapper,
    .search-container {
        width: 100% !important;
        max-width: none !important;
    }

    .programs-grid {
        grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)) !important;
    }
}

@media (max-width: 768px) {
    body {
        background-attachment: scroll !important;
        padding-bottom: 72px !important;
    }

    .top-utility {
        height: auto !important;
        min-height: 40px;
        flex-wrap: wrap !important;
        gap: 8px 12px !important;
        padding: 10px 16px !important;
        justify-content: center !important;
    }

    .contact-info {
        flex-wrap: wrap !important;
        justify-content: center !important;
        gap: 8px 14px !important;
        font-size: 0.6rem !important;
    }

    .social-links {
        margin-left: 0 !important;
        flex-wrap: wrap !important;
        justify-content: center !important;
        gap: 8px !important;
    }

    .brand-bar {
        height: auto !important;
        min-height: 56px;
        flex-wrap: wrap !important;
        gap: 10px !important;
        padding: 12px 16px !important;
        justify-content: center !important;
    }

    .brand-group {
        flex-wrap: wrap !important;
        justify-content: center !important;
        text-align: center !important;
    }

    .uni-brand {
        font-size: 0.82rem !important;
        line-height: 1.3 !important;
        word-break: break-word;
    }

    .top-logo img {
        height: 34px !important;
    }

    .header-section {
        margin: 12px 16px 18px !important;
        padding: 18px 16px 14px !important;
        border-radius: 16px !important;
    }

    .header-section h1 {
        font-size: 1.45rem !important;
        line-height: 1.25 !important;
        word-break: break-word;
    }

    .header-section p {
        font-size: 0.68rem !important;
        letter-spacing: 2px !important;
    }

    .main-nav {
        position: static !important;
        margin: 0 auto 20px !important;
        padding-left: 16px !important;
        padding-right: 16px !important;
        top: auto !important;
    }

    .nav-glass {
        flex-direction: column !important;
        align-items: stretch !important;
        gap: 12px !important;
        padding: 16px !important;
        border-radius: 18px !important;
    }

    .nav-links,
    .nav-glass > .nav-links,
    .nav-glass ul.nav-links {
        flex-direction: column !important;
        align-items: stretch !important;
        width: 100% !important;
        gap: 8px !important;
        margin: 0 !important;
        padding: 0 !important;
        list-style: none !important;
    }

    .nav-links li {
        width: 100% !important;
    }

    .nav-links a,
    .nav-cta {
        width: 100% !important;
        justify-content: center !important;
        text-align: center !important;
        box-sizing: border-box !important;
    }

    .nav-cta {
        margin-top: 4px !important;
    }

    .portal-layout,
    .content-grid {
        grid-template-columns: 1fr !important;
        gap: 18px !important;
        padding-left: 16px !important;
        padding-right: 16px !important;
    }

    .content-grid > aside,
    .content-grid > main {
        min-width: 0 !important;
    }

    .white-card,
    .glass-module,
    .resource-card {
        padding: 18px !important;
        border-radius: 16px !important;
        margin-bottom: 18px !important;
    }

    .subject-hero {
        padding: 22px 18px !important;
        margin-bottom: 20px !important;
        border-radius: 18px !important;
    }

    .subject-hero h1,
    .subject-hero h2 {
        font-size: 1.45rem !important;
        line-height: 1.25 !important;
        word-break: break-word;
    }

    .subject-hero > div[style*="display: flex"] {
        flex-direction: column !important;
        align-items: flex-start !important;
        gap: 14px !important;
    }

    .discovery-strip,
    .discovery-hero-marked {
        padding: 16px !important;
        border-radius: 16px !important;
    }

    .discovery-title h2 {
        font-size: 1rem !important;
    }

    .programs-grid,
    .resources-grid,
    .database-grid,
    .books-grid {
        grid-template-columns: 1fr !important;
    }

    .programs-mini-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }

    .prog-card span {
        font-size: 0.58rem !important;
    }

    .database-item,
    .book-item,
    .resource-item,
    .quick-link-item {
        min-width: 0 !important;
        word-break: break-word;
    }

    .nav-btn,
    a[style*="display: inline-flex"][style*="BACK TO HOME"],
    a[style*="display:inline-flex"][style*="Back to Home"],
    div[style*="margin-bottom: 30px"] > a,
    div[style*="display: flex"][style*="gap: 12px"] > a {
        width: 100% !important;
        max-width: 100% !important;
        justify-content: center !important;
        box-sizing: border-box !important;
    }

    div[style*="margin-bottom: 30px"],
    div[style*="display: flex"][style*="flex-wrap"] {
        flex-direction: column !important;
        align-items: stretch !important;
        gap: 10px !important;
    }

    .floating-action-button {
        left: 16px !important;
        right: 16px !important;
        bottom: 16px !important;
        justify-content: center !important;
        padding: 12px 18px !important;
        font-size: 0.75rem !important;
    }

    .librarian-photo-frame.lg {
        max-width: 100% !important;
    }

    img {
        max-width: 100% !important;
        height: auto !important;
    }

    table {
        display: block !important;
        overflow-x: auto !important;
        white-space: nowrap !important;
        max-width: 100% !important;
    }
}

@media (max-width: 480px) {
    .top-utility,
    .brand-bar {
        padding-left: 12px !important;
        padding-right: 12px !important;
    }

    .header-section {
        margin: 10px 12px 14px !important;
        padding: 14px 12px 12px !important;
    }

    .header-section h1 {
        font-size: 1.2rem !important;
    }

    .main-nav {
        padding-left: 12px !important;
        padding-right: 12px !important;
    }

    .portal-layout,
    .content-grid {
        padding-left: 12px !important;
        padding-right: 12px !important;
    }

    .programs-mini-grid,
    .programs-grid {
        grid-template-columns: 1fr !important;
    }

    .prog-card {
        padding: 12px 10px !important;
    }

    .social-links a {
        padding: 6px 10px !important;
        font-size: 0.75rem !important;
    }

    .tool-chip {
        font-size: 0.65rem !important;
        padding: 10px !important;
    }

    .reg-gold-btn {
        white-space: normal !important;
        text-align: center !important;
        width: 100% !important;
    }
}

/* School guides hub (index.php) */
@media (max-width: 768px) {
    header {
        flex-direction: column !important;
        align-items: stretch !important;
        gap: 12px !important;
        padding: 14px 16px !important;
    }

    .brand-container {
        justify-content: center !important;
        text-align: center !important;
    }

    .brand-text h1 {
        font-size: 1.05rem !important;
    }

    .creative-nav {
        flex-wrap: wrap !important;
        justify-content: center !important;
        border-radius: 16px !important;
        padding: 6px !important;
        gap: 6px !important;
    }

    .creative-nav a {
        flex: 1 1 calc(50% - 6px) !important;
        min-width: 120px !important;
        padding: 10px 12px !important;
        font-size: 0.68rem !important;
        text-align: center !important;
    }

    .welcome-header {
        margin: 16px 12px !important;
        padding: 20px 16px !important;
    }

    .welcome-content {
        flex-direction: column !important;
        align-items: stretch !important;
        gap: 16px !important;
        text-align: center !important;
    }

    .welcome-text h1 {
        font-size: 1.45rem !important;
    }

    .welcome-text p {
        max-width: none !important;
        font-size: 0.9rem !important;
    }

    .welcome-stats {
        flex-direction: column !important;
        width: 100% !important;
    }

    .stat-item {
        width: 100% !important;
        min-width: 0 !important;
    }

    .content-area {
        width: 94% !important;
        margin: 16px auto 24px !important;
        grid-template-columns: 1fr !important;
        grid-auto-rows: auto !important;
        gap: 16px !important;
    }

    .bento-card {
        min-height: 220px !important;
    }
}

@media (max-width: 480px) {
    .creative-nav a {
        flex: 1 1 100% !important;
    }

    .welcome-text h1 {
        font-size: 1.25rem !important;
    }
}
