/**
 * CMS theme visual styles — driven by body classes + CSS variables from theme_settings.
 */

/* —— Buttons & CTAs —— */
.hero-btn,
.hero-section .btn-slide,
.hero-section .apply-now-button,
.page-hero-cms a.inline-flex {
    border-radius: var(--usl-btn-radius, 0.65rem);
    box-shadow: var(--usl-btn-shadow, 0 4px 20px rgba(0, 0, 0, 0.15));
}

.usl-btn-flat .hero-btn--primary,
.usl-btn-flat .hero-section .apply-now-button {
    box-shadow: none;
}

.usl-btn-flat .hero-btn--primary:hover,
.usl-btn-flat .hero-section .apply-now-button:hover {
    box-shadow: none;
    filter: brightness(1.08);
}

/* —— Navigation —— */
.usl-nav-elevated .usl-main-nav {
    box-shadow: 0 4px 24px rgba(15, 23, 42, 0.1) !important;
}

.usl-nav-bordered .usl-main-nav {
    border-bottom: 3px solid var(--usl-primary, #1e3a8a) !important;
    box-shadow: none !important;
}

.usl-nav-dark .usl-main-nav {
    background: var(--usl-primary-dark, #0f172a) !important;
    color: #fff;
}

.usl-nav-dark .usl-main-nav a,
.usl-nav-dark .usl-main-nav .nav-link {
    color: #f1f5f9 !important;
}

.usl-nav-glass .usl-main-nav {
    background: color-mix(in srgb, var(--usl-nav-bg, #fff) 88%, transparent) !important;
    backdrop-filter: blur(12px) !important;
    -webkit-backdrop-filter: blur(12px) !important;
    border-bottom: 1px solid rgba(255, 255, 255, 0.2);
    box-shadow: 0 2px 16px rgba(15, 23, 42, 0.06) !important;
}

/* —— Homepage hero overlay modes —— */
.usl-overlay-radial .hero-section .hero-media-stack .hero-overlay {
    background: radial-gradient(
        ellipse 85% 75% at 50% 45%,
        var(--usl-hero-overlay-2, rgba(30, 58, 138, 0.55)) 0%,
        var(--usl-hero-overlay-1, rgba(15, 23, 42, 0.9)) 55%,
        var(--usl-hero-overlay-3, rgba(15, 23, 42, 0.95)) 100%
    );
}

.usl-overlay-vignette .hero-section .hero-media-stack .hero-overlay {
    background:
        radial-gradient(ellipse 120% 100% at 50% 50%, transparent 25%, var(--usl-hero-overlay-1) 100%),
        linear-gradient(
            var(--usl-hero-overlay-angle, 115deg),
            var(--usl-hero-overlay-1) 0%,
            var(--usl-hero-overlay-2) 50%,
            var(--usl-hero-overlay-3) 100%
        );
}

.usl-overlay-flat .hero-section .hero-media-stack .hero-overlay {
    background: var(--usl-hero-overlay-2, rgba(30, 58, 138, 0.75));
}

/* —— Hero title typography —— */
.usl-hero-title-solid .hero-slide .slide-heading .slide-title:not(.university-line),
.usl-hero-title-solid .hero-slide .slide-text h1 .slide-title:not(.university-line) {
    background: none !important;
    -webkit-background-clip: unset !important;
    background-clip: unset !important;
    -webkit-text-fill-color: #ffffff !important;
    color: #ffffff !important;
    animation: heroFadeUp 1s ease-out !important;
    text-shadow: 0 2px 12px rgba(0, 0, 0, 0.45);
}

.usl-hero-title-outline .hero-slide .slide-heading .slide-title:not(.university-line),
.usl-hero-title-outline .hero-slide .slide-text h1 .slide-title:not(.university-line) {
    background: none !important;
    -webkit-text-fill-color: transparent !important;
    color: transparent !important;
    -webkit-text-stroke: 1.5px rgba(255, 255, 255, 0.95);
    text-stroke: 1.5px rgba(255, 255, 255, 0.95);
    animation: heroFadeUp 1s ease-out !important;
}

.usl-hero-title-academic .hero-slide .slide-heading .slide-title:not(.university-line),
.usl-hero-title-academic .hero-slide .slide-text h1 .slide-title:not(.university-line) {
    background: none !important;
    -webkit-text-fill-color: #ffffff !important;
    color: #ffffff !important;
    font-weight: 900 !important;
    letter-spacing: 0.14em !important;
    text-transform: uppercase !important;
    animation: heroFadeUp 1s ease-out !important;
    text-shadow: 0 3px 0 var(--usl-primary-dark, #0f172a), 0 6px 20px rgba(0, 0, 0, 0.4);
}

.usl-hero-title-serif .hero-slide .slide-heading .slide-title:not(.university-line),
.usl-hero-title-serif .hero-slide .slide-text h1 .slide-title:not(.university-line) {
    font-family: Georgia, 'Times New Roman', serif !important;
    font-weight: 700 !important;
    background: none !important;
    -webkit-text-fill-color: #ffffff !important;
    color: #ffffff !important;
    letter-spacing: 0.03em !important;
    animation: heroFadeUp 1s ease-out !important;
}

/* —— Page hero banner shapes —— */
.usl-page-hero-compact .page-hero-cms {
    padding-top: 3rem !important;
    padding-bottom: 3rem !important;
}

.usl-page-hero-angled .page-hero-cms {
    clip-path: polygon(0 0, 100% 0, 100% 92%, 0 100%);
    padding-bottom: 4.5rem !important;
}

.usl-page-hero-soft .page-hero-cms {
    border-radius: 0 0 1.5rem 1.5rem;
    margin-left: 1rem;
    margin-right: 1rem;
    max-width: calc(100% - 2rem);
    margin-inline: auto;
}

@media (max-width: 768px) {
    .usl-page-hero-soft .page-hero-cms {
        margin-left: 0.5rem;
        margin-right: 0.5rem;
        max-width: calc(100% - 1rem);
    }
}

/* —— Stat cards —— */
.usl-stat-glass .hero-stat {
    background: rgba(255, 255, 255, 0.12);
    border-color: rgba(255, 255, 255, 0.22);
    backdrop-filter: blur(14px);
}

.usl-stat-solid .hero-stat {
    background: var(--usl-primary, #1e3a8a);
    border-color: transparent;
}

/* —— Prevent horizontal page scroll —— */
html {
    overflow-x: hidden;
    max-width: 100%;
}

body {
    overflow-x: hidden;
    max-width: 100%;
    width: 100%;
}

main,
footer,
.usl-main-nav,
.top-bar {
    max-width: 100%;
}

img,
video,
iframe,
svg,
table {
    max-width: 100%;
}

.usl-main-nav > .container {
    max-width: 100%;
    overflow-x: clip;
}

.usl-main-nav > .container > div {
    min-width: 0;
    max-width: 100%;
}
