/* Shared GSD design system. The standalone signage player keeps its own UI. */
body.gsd-public, body.gsd-portal {
    color-scheme: light;
    --gsd-text: #172b43;
    --gsd-muted: #596a7c;
    --gsd-accent: #244e76;
    --gsd-accent-2: #173b5d;
    --gsd-cta: #172b43;
    --gsd-cta-text: #fff;
    --gsd-border: #dfe6ee;
    --gsd-surface: #fff;
    --gsd-surface-2: #f5f7fa;
    --gsd-shadow: 0 12px 40px #172b4308;
    background: #f5f7fa;
    color: #172b43;
    font-family: Inter, "Segoe UI", sans-serif;
    line-height: 1.65;
}
body.gsd-public::before, body.gsd-public::after,
body.gsd-portal::before, body.gsd-portal::after { display: none; }
.gsd-shell { min-height: 100vh; display: flex; flex-direction: column; }
.gsd-main { flex: 1; }
.gsd-shell a { text-underline-offset: 4px; }
.gsd-shell a:not(.btn):not(.admin-sidebar-link) { color: #244e76; }
.gsd-shell .text-muted { color: #596a7c !important; }
.gsd-shell :focus-visible { outline: 3px solid #789fc4; outline-offset: 4px; }
body:is(.gsd-public, .gsd-portal) .gsd-shell > header { position: sticky; top: 0; z-index: 40; }
body:is(.gsd-public, .gsd-portal) .gsd-nav { background: #ffffffed; backdrop-filter: blur(16px); padding: 15px 0; border-bottom: 1px solid #dfe6ee; transition: box-shadow .25s; }
body.gsd-scrolled .gsd-nav { box-shadow: 0 7px 25px #172b430a; }
body:is(.gsd-public, .gsd-portal) .gsd-brand-title, body:is(.gsd-public, .gsd-portal) .gsd-wordmark-g, body:is(.gsd-public, .gsd-portal) .gsd-wordmark-sd, body:is(.gsd-public, .gsd-portal) .gsd-wordmark-digital { color: #172b43; text-shadow: none; letter-spacing: -.6px; }
body:is(.gsd-public, .gsd-portal) .gsd-brand-logo { height: 40px; width: 44px; object-fit: contain; }
body:is(.gsd-public, .gsd-portal) .gsd-brand-slogan { color: #677b8e; letter-spacing: .03em; }
body:is(.gsd-public, .gsd-portal) .gsd-nav .nav-link { color: #506278 !important; font-size: 13px; font-weight: 500; transition: background .2s, color .2s; }
body:is(.gsd-public, .gsd-portal) .gsd-nav .nav-link:hover, body:is(.gsd-public, .gsd-portal) .gsd-nav .nav-link[aria-current="page"] { color: #172b43 !important; background: #edf2f7; }
body:is(.gsd-public, .gsd-portal) .gsd-main { padding-top: 40px; }
body:is(.gsd-public, .gsd-portal) .gsd-main h1, body:is(.gsd-public, .gsd-portal) .gsd-main h2, body:is(.gsd-public, .gsd-portal) .gsd-main h3 { color: #172b43; font-weight: 650; }
body:is(.gsd-public, .gsd-portal) .gsd-main h1 { letter-spacing: -.045em; }
body:is(.gsd-public, .gsd-portal) .gsd-main h2 { letter-spacing: -.035em; }
body:is(.gsd-public, .gsd-portal) .btn { box-shadow: none; background-image: none; transition: background .2s, border-color .2s, box-shadow .2s, transform .2s; }
body:is(.gsd-public, .gsd-portal) .btn-primary { color: #fff !important; background: #172b43 !important; border: 1px solid #172b43 !important; }
body:is(.gsd-public, .gsd-portal) .btn-primary:hover { background: #2b4b6b !important; border-color: #2b4b6b !important; box-shadow: 0 5px 15px #172b4315; }
body:is(.gsd-public, .gsd-portal) .btn-secondary, body:is(.gsd-public, .gsd-portal) .btn-outline-secondary { color: #244e76 !important; background: #fff !important; border: 1px solid #ccd7e2 !important; }
body:is(.gsd-public, .gsd-portal) .btn-secondary:hover, body:is(.gsd-public, .gsd-portal) .btn-outline-secondary:hover { background: #edf2f7 !important; border-color: #98afc4 !important; }
body:is(.gsd-public, .gsd-portal) .btn-primary::before, body:is(.gsd-public, .gsd-portal) .btn-primary::after { display: none; }
body:is(.gsd-public, .gsd-portal) .btn:active { transform: translateY(1px); }
body:is(.gsd-public, .gsd-portal) .form-control, body:is(.gsd-public, .gsd-portal) .form-select { background-color: #fff; color: #172b43; border: 1px solid #cad4df; box-shadow: none; font-size: 14px; }
body:is(.gsd-public, .gsd-portal) .form-control:focus, body:is(.gsd-public, .gsd-portal) .form-select:focus { background-color: #fff; color: #172b43; border-color: #547fa9; box-shadow: 0 0 0 3px #406d9920; }
body:is(.gsd-public, .gsd-portal) .form-control::placeholder { color: #8292a2; }
body:is(.gsd-public, .gsd-portal) .form-label { color: #344b63; font-size: 13px; }
body:is(.gsd-public, .gsd-portal) .form-check-input:checked { background-color: #244e76; border-color: #244e76; }
body:is(.gsd-public, .gsd-portal) .gsd-card, body:is(.gsd-public, .gsd-portal) .gsd-public-card, body:is(.gsd-public, .gsd-portal) .gsd-public-section,
body:is(.gsd-public, .gsd-portal) .gsd-legal-page, body:is(.gsd-public, .gsd-portal) .admin-panel, body:is(.gsd-public, .gsd-portal) .admin-metric { background: #fff; color: #172b43; border: 1px solid #e0e7ee; border-radius: 16px; box-shadow: 0 8px 30px #223b5705; }
body:is(.gsd-public, .gsd-portal) .gsd-card { padding: 32px; }
body:is(.gsd-public, .gsd-portal) .gsd-public-hero { padding: 54px 0 76px; gap: 64px; align-items: center; }
body:is(.gsd-public, .gsd-portal) .gsd-public-hero-copy h1 { font-size: clamp(2.2rem, 4.3vw, 4.25rem); letter-spacing: -.055em; line-height: 1.08; max-width: 650px; margin: 22px 0; }
body:is(.gsd-public, .gsd-portal) .gsd-public-hero-copy p { max-width: 520px; color: #596a7c; font-size: 17px; line-height: 1.8; }
body:is(.gsd-public, .gsd-portal) .gsd-public-kicker, body:is(.gsd-public, .gsd-portal) .admin-eyebrow { background: transparent; border: 0; padding: 0; color: #507391; font-size: 10px; letter-spacing: .18em; text-transform: uppercase; font-weight: 700; box-shadow: none; }
body:is(.gsd-public, .gsd-portal) .gsd-public-kicker::before { background: #c7a45b; box-shadow: none; }
body:is(.gsd-public, .gsd-portal) .gsd-public-actions { margin-top: 30px; gap: 12px; }
body:is(.gsd-public, .gsd-portal) .gsd-public-actions .btn { font-size: 14px; padding: 13px 22px; }
body:is(.gsd-public, .gsd-portal) .gsd-public-proof { margin-top: 26px; gap: 10px; }
body:is(.gsd-public, .gsd-portal) .gsd-public-proof span { background: transparent; color: #5d7184; border: 0; border-radius: 0; padding: 0 12px 0 0; font-size: 12px; box-shadow: none; }
body:is(.gsd-public, .gsd-portal) .gsd-public-proof strong { color: #344f68; }
body:is(.gsd-public, .gsd-portal) .gsd-public-stats { margin: 0 0 64px; border-radius: 14px; border: 1px solid #dce5ee; box-shadow: none; background: #fff; }
body:is(.gsd-public, .gsd-portal) .gsd-public-stats > div { padding: 28px; border-color: #e4eaf0; }
body:is(.gsd-public, .gsd-portal) .gsd-public-stats strong { color: #172b43; font-size: clamp(20px,2.1vw,29px); font-weight: 600; letter-spacing: -.04em; }
body:is(.gsd-public, .gsd-portal) .gsd-public-stats span { color: #677b8e; font-size: 12px; margin-top: 6px; }
body:is(.gsd-public, .gsd-portal) .gsd-public-section { margin-top: 32px; padding: 40px; animation: none; }
body:is(.gsd-public, .gsd-portal) .gsd-section-heading { max-width: 720px; margin-bottom: 28px; }
body:is(.gsd-public, .gsd-portal) .gsd-section-subtitle { color: #596a7c; font-size: 15px; line-height: 1.8; }
body:is(.gsd-public, .gsd-portal) .gsd-public-grid { gap: 22px; }
body:is(.gsd-public, .gsd-portal) .gsd-public-card { padding: 28px; transition: transform .25s, box-shadow .25s, border-color .25s; }
body.gsd-public .gsd-public-card:hover { transform: translateY(-4px); border-color: #b8cada; box-shadow: 0 14px 34px #223b570a; }
body:is(.gsd-public, .gsd-portal) .gsd-public-card h3 { font-size: 20px; font-weight: 600; letter-spacing: -.025em; }
body:is(.gsd-public, .gsd-portal) .gsd-public-card p { color: #596a7c; font-size: 14px; }
body:is(.gsd-public, .gsd-portal) .gsd-service-icon, body:is(.gsd-public, .gsd-portal) .gsd-step-number { color: #355c7b; background: #edf3f7; border: 1px solid #dfe8ef; box-shadow: none; border-radius: 12px; font-size: 14px; }
body:is(.gsd-public, .gsd-portal) .gsd-plan-featured { border-color: #a9bdcf; background: #f8fafc; box-shadow: none; }
body:is(.gsd-public, .gsd-portal) .gsd-plan-featured::before, body:is(.gsd-public, .gsd-portal) .gsd-plan-featured::after { display: none; }
body:is(.gsd-public, .gsd-portal) .gsd-plan-price, body:is(.gsd-public, .gsd-portal) .gsd-price-main { color: #172b43; font-weight: 650; letter-spacing: -.04em; }
body:is(.gsd-public, .gsd-portal) .gsd-testimonial-band, body:is(.gsd-public, .gsd-portal) .gsd-final-cta { background: #172b43; color: #d8e4ed; border: 0; border-radius: 18px; padding: 40px; box-shadow: none; }
body:is(.gsd-public, .gsd-portal) .gsd-testimonial-band h2, body:is(.gsd-public, .gsd-portal) .gsd-final-cta h2 { color: #fff; }
body:is(.gsd-public, .gsd-portal) .gsd-final-cta p { color: #c0cfdd; }
body:is(.gsd-public, .gsd-portal) .gsd-final-cta .btn-primary { background: #fff !important; color: #172b43 !important; border-color: #fff !important; }
body:is(.gsd-public, .gsd-portal) .gsd-showcase-card-main { padding: 18px; background: #eaf0f6; border: 1px solid #d8e2ec; border-radius: 22px; box-shadow: 0 24px 54px #203b5812; }
body:is(.gsd-public, .gsd-portal) .gsd-showcase-topbar { background: transparent; }
body:is(.gsd-public, .gsd-portal) .gsd-showcase-topbar span { background: #b0c1d0; box-shadow: none; }
body:is(.gsd-public, .gsd-portal) .gsd-screen-frame { transform: none; border-radius: 12px; padding: 12px; background: #172b43; box-shadow: 0 15px 30px #172b4318; transition: transform .35s ease; }
body:is(.gsd-public, .gsd-portal) .gsd-screen-frame:hover { transform: translateY(-4px); }
body:is(.gsd-public, .gsd-portal) .gsd-screen-frame::after, body:is(.gsd-public, .gsd-portal) .gsd-screen-media::before { display: none; }
body:is(.gsd-public, .gsd-portal) .gsd-screen-slide::before { background: #eaf0f6; }
body:is(.gsd-public, .gsd-portal) .gsd-screen-slide { color: #172b43; }
body:is(.gsd-public, .gsd-portal) .gsd-screen-ticker { color: #c9d6e1; background: #172b43; font-size: 10px; letter-spacing: .04em; }
body:is(.gsd-public, .gsd-portal) .gsd-screen-live { background: #244e76; color: #fff; }
body:is(.gsd-public, .gsd-portal) .gsd-footer { margin-top: 48px; background: #f5f7fa; border-top: 1px solid #dce5ee; color: #677b8e; padding: 32px 0; }
body:is(.gsd-public, .gsd-portal) .gsd-footer a { color: #536b80 !important; font-size: 12px; }
body:is(.gsd-public, .gsd-portal) .accordion { --bs-accordion-bg: #fff; --bs-accordion-color: #172b43; --bs-accordion-border-color: #dfe6ee; --bs-accordion-active-bg: #edf3f7; --bs-accordion-active-color: #172b43; }
body:is(.gsd-public, .gsd-portal) .accordion-item, body:is(.gsd-public, .gsd-portal) .accordion-button, body:is(.gsd-public, .gsd-portal) .accordion-body { background: #fff; color: #172b43; border-color: #dfe6ee; }
body:is(.gsd-public, .gsd-portal) .accordion-button:not(.collapsed) { background: #edf3f7; color: #172b43; box-shadow: none; }
body:is(.gsd-public, .gsd-portal) .accordion-button { font-weight: 600; padding: 22px; }
body:is(.gsd-public, .gsd-portal) .table { --bs-table-bg: #fff; --bs-table-color: #344b63; --bs-table-striped-bg: #f6f8fb; --bs-table-striped-color: #344b63; --bs-table-hover-bg: #edf3f7; --bs-table-hover-color: #172b43; border-color: #e4eaf0; }
body:is(.gsd-public, .gsd-portal) .table th { background: #f5f7fa; color: #526b82; font-size: 11px; font-weight: 650; letter-spacing: .06em; text-transform: uppercase; }
body:is(.gsd-public, .gsd-portal) .table.table-striped > tbody > tr:nth-of-type(odd) > * { background: #f6f8fb; color: #344b63; box-shadow: none; }
body:is(.gsd-public, .gsd-portal) .table td { color: #344b63; font-size: 13px; }
body:is(.gsd-public, .gsd-portal) .alert-info { color: #315774; background: #edf4f9; border-color: #d7e5f0; }
body:is(.gsd-public, .gsd-portal) .alert-warning { color: #735a2b; background: #fcf7eb; border-color: #eee2c3; }
body:is(.gsd-public, .gsd-portal) .gsd-desktop-header, body:is(.gsd-public, .gsd-portal) .gsd-desktop-hero { background: #fff; border: 1px solid #e0e7ee; border-radius: 16px; box-shadow: none; }
body.gsd-portal .gsd-desktop-grid .gsd-tile, body.gsd-portal .gsd-desktop-grid .gsd-action { border-radius: 14px; box-shadow: none; color: #172b43; transition: transform .25s, border-color .25s; }
body.gsd-portal .gsd-desktop-grid .gsd-tile:hover, body.gsd-portal .gsd-desktop-grid .gsd-action:hover { transform: translateY(-3px); border-color: #9cb5ca; background: #fff; }
body.gsd-portal .gsd-tile-title, body.gsd-portal .gsd-action-title { color: #244e76; }
body.gsd-portal .admin-metric, body.gsd-portal .admin-panel { box-shadow: none; border-color: #dfe6ee; border-radius: 14px; }
body.gsd-portal .admin-metric strong { color: #244e76; }
body:is(.gsd-public, .gsd-portal) .admin-sidebar { background: #fdfefe; }
body:is(.gsd-public, .gsd-portal) .admin-sidebar-group { --category-color: #355c7b; --category-tint: #edf3f7; --category-line: #dce6ef; }
body:is(.gsd-public, .gsd-portal) .admin-sidebar-group > p { background: transparent; border: 0; letter-spacing: .12em; font-size: 10px; }
body:is(.gsd-public, .gsd-portal) .admin-sidebar-link { transition: background .2s; }
body:is(.gsd-public, .gsd-portal) .admin-sidebar-link[aria-current="page"] { color: #172b43; background: #eaf0f6; box-shadow: inset 3px 0 #355c7b; }
body:is(.gsd-public, .gsd-portal) .gsd-step-active { background: #244e76; border-color: #244e76; box-shadow: 0 0 0 5px #244e7610; }
body:is(.gsd-public, .gsd-portal) .gsd-check-card { border-color: #dce5ee; background: #fff; color: #172b43; border-radius: 12px; }
body:is(.gsd-public, .gsd-portal) .gsd-check-card:has(input:checked) { background: #edf3f7; border-color: #789ab7; }
/* Only opt in to reveal after JS is ready; content remains available without JS. */
body.gsd-public .gsd-screen-slide::before { background: #172b43; }
body.gsd-public .gsd-screen-slide { justify-items: start; align-content: center; padding: 38px 26px; }
body.gsd-public .gsd-screen-ad-title { color: #fff; font-weight: 600; font-size: clamp(22px,2.5vw,34px); letter-spacing: -.04em; line-height: 1.2; text-align: left; }
body.gsd-public .gsd-screen-ad-copy { color: #c2d3e1; font-weight: 400; text-align: left; font-size: 13px; }
body.gsd-public .gsd-screen-site { color: #a3bbcf; font-size: 10px; font-weight: 400; background: transparent; }
body.gsd-public .gsd-screen-ticker { background: #24435f; color: #dce8f2; }
body.gsd-public .gsd-screen-live { font-size: 9px; font-weight: 500; letter-spacing: .08em; color: #b9d2e5; background: #ffffff10; }
body.gsd-public .gsd-showcase-topbar span { background: #b0c1d0; }
body.gsd-public .gsd-screen-ticker { background-image: none !important; }
body.gsd-portal .gsd-portal-dashboard { background: #fff; }
body.gsd-portal .gsd-portal-kicker { background: #edf3f7; color: #355c7b; border: 1px solid #dfe8ef; }
body.gsd-public .gsd-scroll-reveal { opacity: 1; transform: none; }
body.gsd-public.gsd-motion .gsd-scroll-reveal { transition: opacity .65s ease, transform .65s cubic-bezier(.2,.7,.3,1); }
body.gsd-public.gsd-motion .gsd-scroll-reveal:not(.gsd-in-view) { opacity: 0; transform: translateY(18px); }
body.gsd-public .gsd-text-word { animation: none !important; opacity: 1 !important; transform: none !important; }
@media (max-width: 991px) {
    body:is(.gsd-public, .gsd-portal) .gsd-public-hero { gap: 32px; padding: 24px 0 40px; }
    body:is(.gsd-public, .gsd-portal) .gsd-public-hero-copy h1 { font-size: clamp(2.2rem,6vw,3.3rem); }
    body:is(.gsd-public, .gsd-portal) .gsd-public-section { padding: 28px; }
    body:is(.gsd-public, .gsd-portal) .gsd-public-stats { margin-bottom: 36px; }
}
@media (max-width: 767px) {
    body:is(.gsd-public, .gsd-portal) .gsd-main { padding-top: 24px; }
    body:is(.gsd-public, .gsd-portal) .gsd-public-hero { grid-template-columns: 1fr; }
    body:is(.gsd-public, .gsd-portal) .gsd-public-section, body:is(.gsd-public, .gsd-portal) .gsd-card { padding: 22px; }
    body:is(.gsd-public, .gsd-portal) .gsd-public-stats { grid-template-columns: 1fr 1fr; }
    body:is(.gsd-public, .gsd-portal) .gsd-public-stats > div { padding: 20px; border-bottom: 1px solid #e4eaf0; }
    body:is(.gsd-public, .gsd-portal) .gsd-testimonial-band, body:is(.gsd-public, .gsd-portal) .gsd-final-cta { padding: 28px; }
    body:is(.gsd-public, .gsd-portal) .gsd-brand-slogan { display: none; }
    body:is(.gsd-public, .gsd-portal) .gsd-screen-frame { aspect-ratio: 16 / 11; }
    body:is(.gsd-public, .gsd-portal) .gsd-footer { margin-top: 24px; }
}
@media (prefers-reduced-motion: reduce) {
    body.gsd-public.gsd-motion .gsd-scroll-reveal:not(.gsd-in-view) { opacity: 1; transform: none; }
    .gsd-shell *, .gsd-shell *::before, .gsd-shell *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
    .gsd-screen-slide:first-child { opacity: 1; transform: none; }
}

/* Full horizontal brand mark, including its DIGITAL wordmark. */
body:is(.gsd-public, .gsd-portal) .gsd-brand-logo { width: 138px; height: 66px; object-fit: contain; flex-shrink: 0; }
body:is(.gsd-public, .gsd-portal) .gsd-brand { gap: 10px; }
body:is(.gsd-public, .gsd-portal) .gsd-brand-slogan { max-width: 110px; white-space: normal; font-size: 10px; line-height: 1.5; }
body.gsd-admin-shell .admin-sidebar-brand > a { flex-direction: column; align-items: flex-start; gap: 0; }
body.gsd-admin-shell .admin-sidebar-brand img { width: 148px; height: 72px; object-fit: contain; }
@media (max-width: 767px) { body:is(.gsd-public, .gsd-portal) .gsd-brand-logo { width: 120px; height: 58px; } }
