/*!
 * CoreSystem Frontend Theme — frontend.css
 *
 * Loaded after vanilla Bootstrap 5.3 (bootstrap.min.css). Four layers:
 *   1. Design tokens (--cb-*)  — themeable contract for ContentBuilder blocks
 *   2. Bootstrap bridge        — maps Bootstrap variables onto the tokens
 *   3. Marketing typography    — heading scale for public landing pages
 *   4. cb structure layer      — base styling for ContentBuilder sections
 *
 * Per-channel theme config (core_theme_config) overrides the :root token
 * defaults via an inline <style> rendered by ThemeCssVariableRenderer —
 * the inline block is emitted after this stylesheet's <link>, so the
 * cascade lets channel values win without extra specificity.
 */
 :root{--cb-primary:#1a6fb5;--cb-primary-rgb:26, 111, 181;--cb-accent:#1b9e3e;--cb-surface:#ffffff;--cb-surface-dark:#081529;--cb-gradient-from:#1f7ac2;--cb-gradient-to:#0f5a9c;--cb-text-light:#ffffff;--cb-text-dark:#212529;--cb-overlay-dark:rgba(8, 21, 41, .6);--cb-overlay-darker:rgba(8, 21, 41, .78);--cb-overlay-light:rgba(255, 255, 255, .6);--cb-heading-weight:700;--cb-radius:.75rem}:root{--bs-primary:var(--cb-primary);--bs-primary-rgb:var(--cb-primary-rgb);--bs-link-color-rgb:var(--cb-primary-rgb);--bs-link-hover-color-rgb:var(--cb-primary-rgb)}.btn-primary{--bs-btn-bg:var(--cb-primary);--bs-btn-border-color:var(--cb-primary);--bs-btn-hover-bg:color-mix(in srgb, var(--cb-primary) 85%, black);--bs-btn-hover-border-color:color-mix(in srgb, var(--cb-primary) 80%, black);--bs-btn-active-bg:color-mix(in srgb, var(--cb-primary) 80%, black);--bs-btn-active-border-color:color-mix(in srgb, var(--cb-primary) 75%, black);--bs-btn-disabled-bg:var(--cb-primary);--bs-btn-disabled-border-color:var(--cb-primary);--bs-btn-focus-shadow-rgb:var(--cb-primary-rgb)}.btn-outline-primary{--bs-btn-color:var(--cb-primary);--bs-btn-border-color:var(--cb-primary);--bs-btn-hover-bg:var(--cb-primary);--bs-btn-hover-border-color:var(--cb-primary);--bs-btn-active-bg:var(--cb-primary);--bs-btn-active-border-color:var(--cb-primary);--bs-btn-disabled-color:var(--cb-primary);--bs-btn-disabled-border-color:var(--cb-primary);--bs-btn-focus-shadow-rgb:var(--cb-primary-rgb)}.text-primary{color:var(--cb-primary)!important}h1,.h1{font-size:clamp(2.2rem, 4.5vw, 3.2rem);font-weight:var(--cb-heading-weight)}h2,.h2{font-size:clamp(1.8rem, 3.5vw, 2.5rem);font-weight:var(--cb-heading-weight)}h3,.h3{font-size:clamp(1.5rem, 3vw, 2rem);font-weight:var(--cb-heading-weight)}h4,.h4{font-size:clamp(1.25rem, 2.2vw, 1.5rem)}h5,.h5{font-size:1.15rem}h6,.h6{font-size:1rem}.lead{font-size:1.15rem}.py-6{padding-top:5rem!important;padding-bottom:5rem!important}.cb-row-fullbleed{width:100vw;position:relative;left:50%;right:50%;margin-left:-50vw;margin-right:-50vw}.cb-grid-row.text-white :is(h1,h2,h3,h4,h5,h6,p,li,blockquote,figcaption,strong,b,a:not(.btn)){color:var(--cb-text-light)}.cb-grid-row.text-dark :is(h1,h2,h3,h4,h5,h6,p,li,blockquote,figcaption,strong,b,a:not(.btn)){color:var(--cb-text-dark)}.cb-hero h1{font-size:clamp(2rem, 4vw, 2.8rem);font-weight:700;line-height:1.1}.cb-icon-box{text-align:center;padding:1.5rem 1rem}.cb-icon-box>:last-child{margin-bottom:0}.cb-footer.bg-dark{background-color:var(--cb-surface-dark)!important}.cb-page-main img{max-width:100%;height:auto}