/* CollegeFactbook - Custom Styles */

/* ── Local font faces ── */

@font-face {
    font-family: 'Material Symbols Outlined';
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url('/fonts/material-symbols-outlined.woff2') format('woff2');
}

@font-face {
    font-family: 'Inter';
    font-style: normal;
    font-weight: 400 700;
    font-display: swap;
    src: url('/fonts/inter-latin.woff2') format('woff2');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
    font-family: 'Plus Jakarta Sans';
    font-style: normal;
    font-weight: 500 800;
    font-display: swap;
    src: url('/fonts/plus-jakarta-sans-latin.woff2') format('woff2');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* Material Symbols icon class */
.material-symbols-outlined {
    font-family: 'Material Symbols Outlined';
    font-weight: normal;
    font-style: normal;
    font-size: 24px;
    line-height: 1;
    letter-spacing: normal;
    text-transform: none;
    display: inline-block;
    white-space: nowrap;
    word-wrap: normal;
    direction: ltr;
    -webkit-font-feature-settings: 'liga';
    font-feature-settings: 'liga';
    -webkit-font-smoothing: antialiased;
    overflow: hidden;
    width: 1em;
    height: 1em;
}

/* Glass morphism pill (used in hero sections) */
.glass-pill {
    background: rgba(255, 255, 255, 0.1);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    border: 1px solid rgba(255, 255, 255, 0.2);
}

/* Hero gradient */
.hero-gradient {
    background: linear-gradient(135deg, #1f3b61 0%, #0b6e66 100%);
}

.hero-dark {
    background-color: #0f4c5c;
}

/* Stat cards in hero (dark background) */
.stat-card-hero {
    background: rgba(255, 255, 255, 0.1);
    backdrop-filter: blur(8px);
    border: 1px solid rgba(255, 255, 255, 0.1);
}

/* Ad slots */
.ad-slot {
    margin: 1rem auto;
    text-align: center;
}

/* Comparison bar indicator */
.comparison-bar {
    height: 8px;
    border-radius: 9999px;
    transition: width 0.6s ease;
}

/* Smooth scroll for anchor links */
html {
    scroll-behavior: smooth;
}

/* Search results dropdown animation */
#search-results:not(.hidden) {
    animation: slideDown 0.15s ease-out;
}

@keyframes slideDown {
    from {
        opacity: 0;
        transform: translateY(-4px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* FAQ accordion animation */
.faq-content {
    transition: max-height 0.3s ease;
}

/* Tab active state underline */
.tab-active {
    border-bottom: 2px solid #0d9488;
    color: #115e59;
}

/* Chart container */
.chart-container {
    position: relative;
    width: 100%;
    height: 256px;
}

/* Leaflet map z-index fix */
#campus-map { z-index: 0; }

/* Majors index: mobile-friendly table and filters */
.major-table { font-size: 1rem; }

@media (min-width: 48rem) {
    .major-filter-control { font-size: 0.875rem !important; }
    .major-table { font-size: 0.875rem; }
    .major-table th { font-size: 0.625rem; }
    .major-table td { padding-left: 1.5rem; padding-right: 1.5rem; }
}

/* Hide table columns on mobile, show on desktop */
.hide-mobile { display: none; }
@media (min-width: 48rem) {
    .hide-mobile { display: table-cell; }
}

/* Force tables to fit within container on mobile */
.overflow-x-auto { overflow-x: hidden; }
table {
    table-layout: fixed;
    width: 100%;
}
table td, table th {
    overflow: hidden;
    text-overflow: ellipsis;
    word-wrap: break-word;
}
@media (min-width: 48rem) {
    .overflow-x-auto { overflow-x: auto; }
    table { table-layout: auto; }
}

/* ===== Share Bar ===== */
.share-bar {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-shrink: 0;
}

.share-label {
    font-size: 0.8rem;
    color: #64748b;
    font-weight: 500;
    margin-right: 0.125rem;
}

.share-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    border: none;
    border-radius: 50%;
    cursor: pointer;
    text-decoration: none;
    transition: transform 0.2s, box-shadow 0.2s, opacity 0.2s;
    line-height: 1;
}

.share-btn:hover {
    transform: translateY(-2px);
    box-shadow: 0 3px 8px rgba(0,0,0,0.15);
    opacity: 0.9;
}

.share-facebook { background: #1877F2; color: white; }
.share-x { background: #000000; color: white; }
.share-linkedin { background: #0A66C2; color: white; }
.share-email { background: #0d9488; color: white; }

.share-bar svg { flex-shrink: 0; }

@media (max-width: 768px) {
    .share-label { display: none; }
    .share-btn { width: 30px; height: 30px; }
    .share-btn svg { width: 14px; height: 14px; }
}

/* Print styles */
@media print {
    nav, footer, .ad-slot, .share-bar, #search-container, .glass-pill, #mobile-menu, noscript, [href="#main-content"] {
        display: none !important;
    }
    main {
        padding: 0 !important;
    }
}
