/* ==========================================================================
   Website Prodi - Unified Typography Overrides
   Focus: Sleek, Modern, Elegant, and Balanced Proportions (Not too large)
   ========================================================================== */

/* Unify CSS variables for themes that support them */
:root {
    --font-body: 'Inter', sans-serif ;
    --font-heading: 'Plus Jakarta Sans', sans-serif ;
}

/* --------------------------------------------------------------------------
   1. BASE TYPOGRAPHY (Body & Headings)
   -------------------------------------------------------------------------- */
body.frontend-body {
    font-family: 'Inter', sans-serif ;
    font-size: 0.925rem ;
    line-height: 1.6 ;
    letter-spacing: -0.01em ;
}


/* Base Headings */
h1, h2, h3, h4, h5, h6,
.h1, .h2, .h3, .h4, .h5, .h6 {
    font-family: 'Plus Jakarta Sans', sans-serif ;
    font-weight: 700 ;
}


/* Proportional Heading Scale */
h1, .h1 {
    font-size: clamp(1.8rem, 4vw, 2.2rem) ;
    line-height: 1.25 ;
    letter-spacing: -0.02em ;
}

h2, .h2 {
    font-size: clamp(1.45rem, 3vw, 1.8rem) ;
    line-height: 1.3 ;
    letter-spacing: -0.02em ;
}

h3, .h3 {
    font-size: clamp(1.25rem, 2.5vw, 1.45rem) ;
    line-height: 1.35 ;
    letter-spacing: -0.01em ;
}

h4, .h4 {
    font-size: clamp(1.1rem, 2vw, 1.25rem) ;
    line-height: 1.4 ;
    font-weight: 600 ;
}

h5, .h5 {
    font-size: 1.05rem ;
    line-height: 1.45 ;
    font-weight: 600 ;
}

h6, .h6 {
    font-size: 0.925rem ;
    line-height: 1.5 ;
    font-weight: 600 ;
}

p {
    font-size: 0.925rem ;
    line-height: 1.6 ;
}

/* Bootstrap Display overrides */
.display-4 {
    font-size: clamp(1.8rem, 4vw, 2.4rem) ;
    font-weight: 800 ;
    letter-spacing: -0.02em ;
}

.display-5 {
    font-size: clamp(1.5rem, 3vw, 1.95rem) ;
    font-weight: 800 ;
    letter-spacing: -0.02em ;
}

/* --------------------------------------------------------------------------
   2. HEADER & NAVIGATION OVERRIDES
   -------------------------------------------------------------------------- */
.elegant-brand-title {
    font-family: 'Plus Jakarta Sans', sans-serif ;
    font-size: clamp(1.05rem, 1.8vw, 1.25rem) ;
    font-weight: 800 ;
    line-height: 1.2 ;
    letter-spacing: -0.02em ;
}

.elegant-brand-subtitle {
    font-family: 'Inter', sans-serif ;
    font-size: 0.725rem ;
    font-weight: 500 ;
    line-height: 1.3 ;
}

.main-nav-link, .nav-link {
    font-family: 'Plus Jakarta Sans', sans-serif ;
    font-size: 0.85rem ;
    font-weight: 600 ;
    letter-spacing: 0.3px ;
}

.dropdown-item {
    font-family: 'Inter', sans-serif ;
    font-size: 0.825rem ;
    font-weight: 500 ;
}

.top-menu-link {
    font-size: 0.725rem ;
    font-weight: 600 ;
    letter-spacing: 1px ;
}

/* --------------------------------------------------------------------------
   3. HERO SECTIONS OVERRIDES
   -------------------------------------------------------------------------- */
.hero-title, .lux-hero-title {
    font-family: 'Plus Jakarta Sans', sans-serif ;
    font-size: clamp(1.8rem, 4.5vw, 2.6rem) ;
    line-height: 1.2 ;
    font-weight: 800 ;
    letter-spacing: -0.02em ;
    color: #ffffff ;
}

.hero-subtitle, .lux-hero-desc {
    font-family: 'Inter', sans-serif ;
    font-size: clamp(0.9rem, 1.5vw, 1.05rem) ;
    line-height: 1.65 ;
    font-weight: 400 ;
    opacity: 0.9 ;
    color: rgba(255, 255, 255, 0.9) ;
}

/* --------------------------------------------------------------------------
   4. SECTION & CONTENT ELEMENT OVERRIDES
   -------------------------------------------------------------------------- */
.section-title, .lux-section-title {
    font-family: 'Plus Jakarta Sans', sans-serif ;
    font-size: clamp(1.35rem, 2.5vw, 1.7rem) ;
    font-weight: 800 ;
    letter-spacing: -0.01em ;
}

.section-badge {
    font-family: 'Plus Jakarta Sans', sans-serif ;
    font-size: 0.725rem ;
    font-weight: 700 ;
    letter-spacing: 1.5px ;
}

/* Cards (News, Events, Lecturers) */
.card-title, .news-immersive-title, .news-ultimate-card .card-title {
    font-family: 'Plus Jakarta Sans', sans-serif ;
    font-size: 1.05rem ;
    line-height: 1.45 ;
    font-weight: 700 ;
    letter-spacing: -0.01em ;
}

.card-text, .news-immersive-card p, .news-ultimate-card p {
    font-size: 0.85rem ;
    line-height: 1.55 ;
}

/* Testimonial Typography */
.lux-testimonial-text {
    font-family: 'Inter', sans-serif ;
    font-size: 0.925rem ;
    line-height: 1.65 ;
    font-style: normal ;
}

.lux-event-card h4, .event-card h4 {
    font-size: 1.15rem ;
    font-weight: 700 ;
}

/* Stats Element sizes */
.stat-number {
    font-family: 'Plus Jakarta Sans', sans-serif ;
    font-size: clamp(1.4rem, 2.8vw, 1.75rem) ;
    font-weight: 800 ;
    letter-spacing: -0.02em ;
}

.stat-label {
    font-family: 'Inter', sans-serif ;
    font-size: 0.7rem ;
    font-weight: 600 ;
    letter-spacing: 1px ;
}

/* Page Header Premium Title */
.page-header-premium h1, .page-header-premium .display-4 {
    font-size: clamp(1.6rem, 3.5vw, 2.1rem) ;
    font-weight: 800 ;
    letter-spacing: -0.02em ;
}

.page-header-premium p {
    font-size: 0.95rem ;
    opacity: 0.85 ;
}

.breadcrumb-item, .breadcrumb-item a {
    font-family: 'Plus Jakarta Sans', sans-serif ;
    font-size: 0.725rem ;
    font-weight: 600 ;
    letter-spacing: 0.8px ;
}

/* Footer elements overrides */
.footer-heading {
    font-family: 'Plus Jakarta Sans', sans-serif ;
    font-size: 0.8rem ;
    font-weight: 700 ;
    letter-spacing: 1.5px ;
}

footer p, footer a, footer li {
    font-size: 0.85rem ;
    line-height: 1.6 ;
}

/* --------------------------------------------------------------------------
   5. TABLE BORDERS AND GRIDLINES IN USER CONTENT
   -------------------------------------------------------------------------- */
table:not(.table) {
    border-collapse: collapse ;
    margin-bottom: 1.5rem ;
    border: 1px solid #cbd5e1 ;
    width: 100% ;
}

table:not(.table) th,
table:not(.table) td {
    border: 1px solid #cbd5e1 ;
    padding: 0.75rem 1rem ;
    vertical-align: middle ;
}

/* Clean Header Style Hierarchy (defaults) */
table:not(.table) th {
    background-color: #f8fafc;
    color: #0f172a;
    font-weight: 700;
}

/* Dark Mode support */
html.dark table:not(.table) {
    border: 1px solid #475569 ;
}

html.dark table:not(.table) th,
html.dark table:not(.table) td {
    border: 1px solid #475569 ;
    color: #cbd5e1 ;
}

html.dark table:not(.table) th {
    background-color: #1e293b;
    color: #f8fafc;
}


