
:root {
    --sn-font-body: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    --sn-font-heading: "Plus Jakarta Sans", Inter, ui-sans-serif, sans-serif;
    --sn-font-ui: Manrope, Inter, ui-sans-serif, sans-serif;
    --sn-body-size: 15px;
    --sn-nav-size: 12px;
    --sn-logo-size: 32px;
    --sn-container: 1260px;
    --sn-radius: 14px;
    --sn-shadow: 0 14px 38px rgba(7,27,49,.07);
    --sn-shadow-sm: 0 7px 22px rgba(7,27,49,.055);
}

body {
    font-size:var(--sn-body-size);
    line-height: 1.68;
    color: #243247;
}

h1, h2, h3, h4, h5, h6 {
    font-family: var(--sn-font-heading);
    font-weight: 600;
    letter-spacing: -.025em;
    line-height: 1.2;
}

.site-header,
.site-footer,
.primary-navigation,
.sn-button,
.utility-bar,
.post-meta,
.category-label,
.eyebrow,
.widget,
.breadcrumbs {
    font-family: var(--sn-font-ui);
}

.utility-bar { font-size:11px; }
.utility-bar__inner { min-height: 34px; }

.main-header__inner {
    min-height: 82px;
    grid-template-columns: minmax(205px, 245px) minmax(0, 1fr) auto;
    gap: 22px;
}

.branding-wrap { display: flex; align-items: center; }
.custom-logo-link { display: inline-flex; align-items: center; max-width: 220px; }
.custom-logo { width: 100%; max-width: 220px; max-height: 54px; object-fit: contain; }

.primary-menu { gap: clamp(20px, 2.2vw, 34px); }
.primary-menu > li > a {
    padding: 31px 0 27px;
    font-size:12px;
    font-weight: 600;
    letter-spacing: .005em;
    text-transform: none;
    white-space: nowrap;
}
.primary-menu > li > a::after { bottom: 20px; height: 2px; }
.primary-menu .sub-menu { top: calc(100% - 12px); min-width: 190px; }
.primary-menu .sub-menu a { font-size:12px; font-weight: 600; }

.header-actions { gap: 10px; }
.search-toggle { width: 40px; height: 40px; }
.sn-button--compact { min-height: 40px; padding: 9px 16px; font-size:12px; }

.section-heading h2 { font-size:clamp(21px, 1.75vw, 25px); font-weight: 600; }
.category-heading h2 { font-size:clamp(21px, 1.9vw, 26px); }
.story-card__title { font-size:15px; font-weight: 600; line-height: 1.4; }
.archive-grid .story-card__title { font-size:17px; }

.hero-main { min-height: 470px; }
.hero-main h1 { font-size:clamp(26px, 4vw, 26px); font-weight: 600; line-height: 1.16; }
.hero-side-card h2 { font-size:clamp(20px, 2vw, 26px); font-weight: 600; }
.hero-main__content { max-width: 540px; }

.archive-main { padding-top: 34px; }
.archive-header {
    padding: clamp(28px, 4.5vw, 46px);
    margin-bottom: 28px;
    border-radius: 8px 24px 8px 24px;
}
.archive-header h1 {
    max-width: 760px;
    margin-bottom: 12px;
    font-size:clamp(26px, 4vw, 26px);
    font-weight: 600;
    line-height: 1.18;
}
.archive-description { font-size:15px; line-height: 1.7; }

.article-header-wrap { max-width: 1120px; }
.article-header {
    max-width: 850px;
    margin: 28px auto 30px;
}
.article-header h1 {
    max-width: 850px;
    margin: 0 auto 18px;
    font-size:clamp(26px, 4.2vw, 26px);
    font-weight: 600;
    line-height: 1.16;
    letter-spacing: -.035em;
}
.article-deck {
    max-width: 760px;
    font-family: var(--sn-font-body);
    font-size:clamp(16px, 1.7vw, 19px);
    line-height: 1.65;
}
.article-content { font-size:17px; line-height: 1.82; }
.article-content h2 { font-size:clamp(25px, 2.6vw, 26px); font-weight: 600; }
.article-content h3 { font-size:clamp(21px, 2.1vw, 25px); font-weight: 600; }
.article-content h4 { font-size:20px; font-weight: 600; }
.article-content blockquote { font-size:19px; }

.page-header h1 { font-size:clamp(26px, 4.5vw, 26px); font-weight: 600; }
.error-card h1 { font-size:clamp(26px, 4vw, 26px); }

.content-with-sidebar { grid-template-columns: minmax(0, 1fr) 300px; gap: 34px; }
.widget { padding: 20px; border-radius: 10px 18px 10px 18px; }
.widget-title { font-size:16px; font-weight: 600; }
.widget ul { padding-left: 0; list-style: none; }
.widget li { font-size:13px; line-height: 1.55; }

.site-footer {
    margin-top: 46px;
    padding-top: 44px;
    border-top: 1px solid var(--sn-border);
    background: #f7f9fb;
}
.footer-grid { grid-template-columns: 1.2fr .8fr 1fr 1fr; gap: 36px; }
.footer-brand .custom-logo-link { max-width: 190px; }
.footer-brand p, .footer-column p, .footer-menu a { font-size:12px; line-height: 1.7; }
.footer-title { font-size:14px; font-weight: 600; }
.footer-bottom { padding: 20px 0; font-size:11px; }

.sn-ad-slot {
    margin-top: 24px;
    margin-bottom: 24px;
    overflow: hidden;
    text-align: center;
}
.sn-ad-slot .widget,
.sn-ad-slot .sn-ad-widget { margin: 0; padding: 0; border: 0; background: transparent; box-shadow: none; }
.sn-ad-slot img, .sn-ad-slot iframe { max-width: 100%; height: auto; }
.sn-ad-slot--article { margin: 32px 0; padding: 18px; border: 1px solid var(--sn-border); background: #fafbfc; }
.sn-ad-slot--sidebar { margin-top: 0; }
.sn-ad-slot--footer { margin-top: 36px; }

.breadcrumbs { font-size:11px; }
.category-label { font-size:9px; font-weight: 600; }
.post-meta { font-size:10px; }
.eyebrow { font-size:10px; font-weight: 600; }

@media (max-width: 1210px) {
    .main-header__inner { grid-template-columns: minmax(190px, 215px) minmax(0, 1fr) auto; gap: 16px; }
    .custom-logo-link, .custom-logo { max-width: 195px; }
    .primary-menu { gap: 18px; }
    .primary-menu > li > a { font-size:11.5px; }
}

@media (max-width: 1080px) {
    .utility-bar__right > a:not(.utility-social) { display: none; }
    .main-header__inner { min-height: 74px; grid-template-columns: 1fr auto auto; }
    .mobile-menu-toggle { display: grid; order: 3; }
    .primary-navigation { position: fixed; top: 0; right: 0; z-index: 120; width: min(380px, 88vw); height: 100dvh; padding: 92px 26px 32px; background: #fff; box-shadow: -20px 0 50px rgba(7,27,49,.14); transform: translateX(105%); transition: transform .3s ease; overflow-y: auto; }
    .primary-navigation.is-open { transform: translateX(0); }
    .primary-menu { flex-direction: column; align-items: stretch; gap: 0; }
    .primary-menu > li { border-bottom: 1px solid var(--sn-border); }
    .primary-menu > li > a { padding: 15px 0; font-size:13px; }
    .primary-menu > li > a::after { display: none; }
    .primary-menu .sub-menu { position: static; min-width: 0; padding: 0 0 10px 14px; border: 0; box-shadow: none; opacity: 1; visibility: visible; transform: none; }
    .header-actions { justify-self: end; }
    .content-with-sidebar { grid-template-columns: 1fr; }
    .site-sidebar { position: static; grid-template-columns: repeat(2, minmax(0,1fr)); }
}

@media (max-width: 760px) {
    .main-header__inner { min-height: 68px; }
    .custom-logo-link, .custom-logo { max-width: 178px; max-height: 48px; }
    .hero-main h1 { font-size:clamp(26px, 9vw, 26px); }
    .archive-header h1 { font-size:clamp(26px, 9vw, 26px); }
    .article-header { margin-top: 20px; }
    .article-header h1 { font-size:clamp(26px, 9vw, 26px); }
    .article-deck { font-size:16px; }
    .article-content { font-size:16px; }
    .footer-grid { grid-template-columns: 1fr 1fr; gap: 28px 22px; }
    .footer-brand, .footer-newsletter { grid-column: 1 / -1; }
    .site-sidebar { grid-template-columns: 1fr; }
}

@media (max-width: 520px) {
    .footer-grid { grid-template-columns: 1fr; }
    .footer-brand, .footer-newsletter { grid-column: auto; }
    .header-actions { display: none; }
    .sn-container { width: min(calc(100% - 24px), var(--sn-container)); }
}
