/*!
 * 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-testimonials .carousel-item{min-height:240px}.cb-testimonials .card{background-color:var(--cb-surface);border:1px solid rgba(var(--cb-primary-rgb),.12)!important;border-radius:var(--cb-radius);box-shadow:0 .75rem 2rem rgb(8 21 41 / .08)!important}.cb-testimonials .card-body{padding:2.5rem 2rem}.cb-testimonials .blockquote::before{content:"\201C";display:block;font-family:Georgia,"Times New Roman",serif;font-size:3.5rem;line-height:.5;color:rgba(var(--cb-primary-rgb),.25);margin-bottom:.75rem}.cb-testimonials .blockquote p{line-height:1.6}.cb-testimonials .blockquote-footer{margin-top:1.25rem;font-size:1rem}.cb-testimonials .carousel-indicators{position:static;margin:1.5rem 0 0}.cb-testimonials .carousel-indicators [data-bs-target]{width:10px;height:10px;border-radius:50%;border:0;background-color:rgba(var(--cb-primary-rgb),.3);opacity:1}.cb-testimonials .carousel-indicators .active{background-color:var(--cb-primary)}.cb-testimonials .carousel-control-prev,.cb-testimonials .carousel-control-next{width:3rem;align-items:center}.cb-testimonials .carousel-control-prev-icon,.cb-testimonials .carousel-control-next-icon{filter:invert(1) grayscale(100);background-color:rgba(var(--cb-primary-rgb),.12);background-size:45%;border-radius:50%;width:2.75rem;height:2.75rem}.cb-footer.bg-dark{background-color:var(--cb-surface-dark)!important}.cb-page-main img{max-width:100%;height:auto}