/* Foregrounds and fixed-lightness tones keep arbitrary brand choices readable. */
.public-site .navbar { padding-top: 12px; padding-bottom: 12px; }
@media (max-width: 575px) {
    .public-site .navbar { padding-top: 9px; padding-bottom: 9px; }
}
body.public-site.home-overlay > .topbar { position: absolute; inset: 0 0 auto; z-index: 1001; background: #00000028; color: #fff; }
.public-site.home-overlay .site-header { position: fixed; inset: 0 0 auto; transition: background .25s ease, box-shadow .25s ease; }
.public-site.home-overlay .site-header.is-scrolled { top: 0; }
.public-site.home-overlay .site-header:not(.is-scrolled) { background: transparent; border-bottom-color: transparent; backdrop-filter: none; box-shadow: none; }
.public-site.home-overlay .site-header:not(.is-scrolled) .brand,
.public-site.home-overlay .site-header:not(.is-scrolled) .nav-link { color: #fff; }
.public-site.home-overlay .site-header:not(.is-scrolled) .nav-link:hover { background: #ffffff18; color: #fff; }
.public-site.home-overlay .site-header:not(.is-scrolled) .theme-toggle { background: #00000030; color: #fff; border-color: #ffffff66; }
.public-site.home-overlay .site-header:not(.is-scrolled) .navbar-toggler { border-color: #ffffff66; }
.public-site.home-overlay .site-header:not(.is-scrolled) .navbar-toggler-icon { filter: brightness(0) invert(1); }
.public-site.home-overlay .site-header:not(.is-scrolled) :focus-visible { outline-color: #fff !important; }
.public-site.home-overlay .hero-slider .carousel-item { min-height: max(650px, 100vh); min-height: max(650px, 100svh); }
.public-site.home-overlay .hero-slide-content { padding-top: calc(var(--header-stack-height, 145px) + 128px); }
.public-site.home-overlay .hero-slide-shade::after { content: ''; position: absolute; inset: 0 0 auto; height: 180px; background: linear-gradient(rgb(0 0 0 / .18), transparent); pointer-events: none; }
@media (max-width: 991px) {
    .public-site.home-overlay .site-header .navbar-collapse { max-height: 65vh; overflow-y: auto; }
    .public-site.home-overlay .site-header:not(.is-scrolled) .navbar-collapse { background: hsl(var(--secondary-hue) var(--secondary-saturation) 10%); border-radius: 12px; padding: 12px; margin-top: 12px; }
}
.public-site .view-all-button { display: inline-flex; align-items: center; justify-content: space-between; gap: 22px; flex-shrink: 0; min-height: 50px; padding: 7px 8px 7px 22px; border: 1px solid rgb(var(--secondary-rgb) / .2); border-radius: 999px; background: var(--brand-secondary); color: var(--on-secondary); font-size: .85rem; font-weight: 700; text-decoration: none; box-shadow: 0 6px 16px rgb(var(--secondary-rgb) / .13); transition: transform .22s ease, box-shadow .22s ease; }
.public-site .view-all-arrow { display: grid; place-items: center; width: 36px; height: 36px; flex-shrink: 0; border-radius: 50%; background: var(--brand-primary); color: var(--on-primary); font-size: 1.25rem; line-height: 1; transition: transform .22s ease; }
[data-bs-theme='dark'] .public-site .view-all-button { border-color: rgb(255 255 255 / .25); box-shadow: 0 6px 16px #00000030; }
@media (hover: hover) and (pointer: fine) {
    .public-site .view-all-button:hover { transform: translateY(-3px); box-shadow: 0 10px 24px rgb(var(--secondary-rgb) / .24); }
    .public-site .view-all-button:hover .view-all-arrow { transform: rotate(45deg); }
}
@media (prefers-reduced-motion: reduce) {
    .public-site .view-all-button:hover, .public-site .view-all-button:hover .view-all-arrow { transform: none; }
}
.public-site {
    --bs-body-font-family: var(--public-font-family);
    font-family: var(--public-font-family);
    --brand-ink: hsl(var(--secondary-hue) calc(var(--secondary-saturation) * .65) 18%);
    --brand-light-accent: hsl(var(--primary-hue) var(--primary-saturation) 76%);
    --ink: var(--brand-ink);
}
.public-site button, .public-site input, .public-site select, .public-site textarea { font-family: inherit; }
.public-site .navbar .nav-link,
.public-site .navbar .nav-link.active,
.public-site .card-body > .eyebrow,
.public-site .card-action span,
.public-site .page-heading h1,
.public-site .theme-toggle,
.public-site .skip-link { color: var(--brand-ink); }
.public-site .topbar,
.public-site .btn-primary,
.public-site .btn-primary:hover,
.public-site .btn-primary:focus-visible,
.public-site .hero-slider-arrow:hover { background: var(--brand-primary); color: var(--on-primary); border-color: var(--brand-primary); }
.public-site .cta-panel { background: var(--brand-primary); color: var(--on-primary); border-color: var(--brand-primary); }
.public-site .cta-panel h2, .public-site .cta-panel .eyebrow { color: var(--on-primary); }
.public-site .cta-panel .btn-light,
.public-site .cta-panel .btn-light:hover,
.public-site .brand-mark,
.public-site .brand-mark span { background: var(--brand-secondary); color: var(--on-secondary); }
.public-site .row > :nth-child(odd) > .stat-card strong { color: var(--brand-ink); }
.public-site .row > :nth-child(even) > .stat-card strong,
.public-site .hero-slide-tagline, .public-site .hero-slide-kicker,
.public-site .site-footer .eyebrow, .public-site .footer-links a:hover { color: var(--brand-light-accent); }
.public-site .hero-slide-shade {
    background: linear-gradient(90deg, rgb(0 0 0 / .68), rgb(0 0 0 / .48) 35%, rgb(0 0 0 / .25) 65%, rgb(0 0 0 / .15));
    pointer-events: none;
}
.public-site .site-footer { background: radial-gradient(ellipse at 90% 10%, hsl(var(--secondary-hue) var(--secondary-saturation) 26% / .27), transparent 50%), linear-gradient(120deg, hsl(var(--secondary-hue) var(--secondary-saturation) 14%), hsl(var(--secondary-hue) var(--secondary-saturation) 8%)); }
.public-site .active > .page-link { background: var(--brand-secondary); border-color: var(--brand-secondary); color: var(--on-secondary); }
.public-site ::selection { background: var(--brand-primary); color: var(--on-primary); }
.public-site .btn-outline-dark:hover,
[data-bs-theme='dark'] .public-site .btn-outline-dark:hover { background: var(--brand-secondary); color: var(--on-secondary); }
[data-bs-theme='dark'] .public-site { --ink: hsl(var(--secondary-hue) calc(var(--secondary-saturation) * .3) 94%); }
[data-bs-theme='dark'] .public-site :focus-visible,
.public-site .hero-slider :focus-visible { outline-color: var(--brand-light-accent) !important; }
[data-bs-theme='dark'] .public-site .skip-link { color: var(--brand-ink); }
[data-bs-theme='dark'] .public-site .topbar,
[data-bs-theme='dark'] .public-site .cta-panel h2,
[data-bs-theme='dark'] .public-site .cta-panel .eyebrow { color: var(--on-primary); }
[data-bs-theme='dark'] .public-site .row > :nth-child(n) > .stat-card strong { color: var(--brand-light-accent); }
[data-bs-theme='dark'] .public-site .active > .page-link { background: var(--brand-primary); border-color: var(--brand-primary); color: var(--on-primary); }
@media (max-width: 575px) {
    .public-site.home-overlay .hero-slide-content { padding-top: calc(var(--header-stack-height, 145px) + 96px); }
    .public-site .hero-slide-shade { background: linear-gradient(90deg, rgb(0 0 0 / .65), rgb(0 0 0 / .38) 55%, rgb(0 0 0 / .22)); }
}
