/**
 * Site-wide typography — Poppins, consistent scale, CMS content normalization
 */
:root {
    --site-font-family: "Poppins", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    --site-font-size: 15px;
    --site-line-height: 1.73;
    --site-color-text: #4b4b4b;
    --site-color-heading: #212121;
    --site-color-accent: #0168a3;

    --site-fs-xs: 12px;
    --site-fs-sm: 13px;
    --site-fs-base: 15px;
    --site-fs-md: 16px;
    --site-fs-lg: 18px;
    --site-fs-xl: 20px;
    --site-fs-2xl: 24px;
    --site-fs-3xl: 26px;
    --site-fs-4xl: 30px;
    --site-fs-5xl: 36px;
}

html {
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

body,
button,
input,
select,
textarea {
    font-family: var(--site-font-family);
}

/* CMS / rich text (Summernote, paste from Word, etc.) */
.single-description,
.single-description p,
.single-blog-page .blog-content,
.single-blog-page .single-description,
.cms-content,
.event-single-page .single-description,
.event-details,
table.table {
    font-family: var(--site-font-family);
    font-size: var(--site-font-size);
    line-height: var(--site-line-height);
    color: var(--site-color-text);
}

.single-description h1,
.single-description h2,
.single-description h3,
.single-description h4,
.single-description h5,
.single-description h6,
.cms-content h1,
.cms-content h2,
.cms-content h3,
.cms-content h4,
.cms-content h5,
.cms-content h6 {
    font-family: var(--site-font-family);
    font-weight: 600;
    color: var(--site-color-heading);
    line-height: 1.35;
    margin-bottom: 0.75em;
}

.single-description h1,
.cms-content h1 { font-size: var(--site-fs-4xl); }
.single-description h2,
.cms-content h2 { font-size: var(--site-fs-3xl); }
.single-description h3,
.cms-content h3 { font-size: var(--site-fs-2xl); }
.single-description h4,
.cms-content h4 { font-size: var(--site-fs-xl); }
.single-description h5,
.cms-content h5 { font-size: var(--site-fs-lg); }
.single-description h6,
.cms-content h6 { font-size: var(--site-fs-md); }

.single-description p,
.cms-content p {
    margin-bottom: 1em;
    color: var(--site-color-text);
}

/* Description often wrapped in <p> while HTML lives inside */
.single-description > p {
    font-size: inherit;
    line-height: inherit;
}

.single-description [style*="font-family"],
.single-description font,
.cms-content [style*="font-family"],
.cms-content font {
    font-family: inherit !important;
}

.single-blog-page .blog-content h4 {
    font-family: var(--site-font-family);
}

/* Breadcrumb & section headings — align with theme */
.breadcrumb-title {
    font-family: var(--site-font-family);
    font-size: var(--site-fs-5xl);
    font-weight: 600;
}

.section-heading h3 {
    font-family: var(--site-font-family);
    font-size: var(--site-fs-3xl);
    font-weight: 600;
}

/* Navigation — remove inline size overrides */
.navbar-default .navbar-nav > li > a,
.navbar-default .navbar-nav > li > a.dropdown-toggle {
    font-family: var(--site-font-family);
    font-size: var(--site-fs-md);
}

.navbar-nav li ul.dropdown-menu li a {
    font-family: var(--site-font-family);
    font-size: var(--site-fs-sm);
}

/* Search results */
.search-results__title {
    font-family: var(--site-font-family);
    font-size: var(--site-fs-2xl);
    font-weight: 600;
    line-height: 1.4;
    margin: 0;
}

.search-results__title a {
    color: var(--site-color-accent);
}

.search-results__excerpt {
    font-size: var(--site-font-size);
    line-height: var(--site-line-height);
}

/* Home page carousel */
.home-hero__title {
    font-family: var(--site-font-family);
    font-size: var(--site-fs-4xl);
    font-weight: 600;
    color: #000;
}

.carousel-slide__title {
    font-family: var(--site-font-family);
    font-size: var(--site-fs-lg);
    font-weight: 600;
}

/* Event / seminer detail meta */
.event-date-time p,
.detail-meta-text {
    font-family: var(--site-font-family);
    font-size: var(--site-font-size);
    font-weight: 600;
}

/* Auth forms */
.form_login,
.form_login .container_login,
.form_login input,
.form_login label,
.form_login button {
    font-family: var(--site-font-family);
}

/* Footer & calendar widgets */
.footer-section,
.site-footer,
.site-footer *:not(.fa):not([class*="flaticon"]):not([class^="fc-"]) {
    font-family: var(--site-font-family);
}

.site-footer__calendar-wrap .fc,
#calendar.fc {
    font-family: var(--site-font-family);
}

/* Bootstrap alerts / buttons inherit site font */
.alert,
.btn,
.form-control {
    font-family: var(--site-font-family);
}

/* Nav toolbar (login, language switch) */
.nav-toolbar-btn,
.nav-lang-select {
    font-family: var(--site-font-family) !important;
    font-size: var(--site-fs-sm) !important;
}

/* Home — latest publications (ignore CMS/HTML formatting in titles) */
.blog-section .blog-content h4 a.publication-card-title,
.blog-section .blog-content h4 a.publication-card-title * {
    font-family: var(--site-font-family) !important;
    font-size: var(--site-fs-lg) !important;
    font-weight: 600 !important;
    font-style: normal !important;
    line-height: 1.35 !important;
    color: var(--site-color-heading) !important;
    text-decoration: none !important;
    text-transform: none !important;
    letter-spacing: normal !important;
}

.blog-section .blog-content h4 a.publication-card-title:hover,
.blog-section .blog-content h4 a.publication-card-title:hover * {
    color: var(--site-color-accent) !important;
}
