.cke_editable {
    font-size: 15px;
    line-height: 1.65;
}

.cke_editable .nsp-divider {
    border: 0;
    border-top: 2px solid #0d6efd;
    opacity: .85;
}

.nsp-section-heading {
    max-width: 960px;
}

.nsp-section-heading .nsp-heading-title {
    margin-top: .5rem;
    margin-bottom: .75rem;
    overflow-wrap: anywhere;
    text-wrap: balance;
}

.nsp-section-heading .nsp-heading-eyebrow {
    display: inline-block;
}

.nsp-heading-rule {
    width: 72px;
    height: 3px;
    background: var(--bs-primary, #0d6efd);
    border-radius: 999px;
}

.nsp-heading-kicker-line {
    display: inline-block;
    flex: 0 0 48px;
    width: 48px;
    height: 3px;
    border-radius: 999px;
}

.nsp-heading-left-accent,
.nsp-heading-underline,
.nsp-heading-eyebrow-line,
.nsp-heading-minimal {
    margin-right: auto;
}

.nsp-heading-centered-rule,
.nsp-heading-boxed {
    margin-right: auto;
    margin-left: auto;
}

.nsp-heading-boxed {
    background: var(--bs-body-bg, #fff);
}

.nsp-heading-minimal .nsp-heading-title {
    margin-top: 0;
}

.nsp-heading-minimal .nsp-heading-subtitle {
    max-width: 760px;
}

.cke_editable .nsp-text-shadow-soft {
    text-shadow: 0 2px 8px rgba(0, 0, 0, .25);
}

.nsp-decorative-text {
    letter-spacing: .08em;
    text-transform: uppercase;
}

.cke_editable .nsp-grid-cell,
.cke_editable .nsp-card-grid .card {
    min-height: 100%;
}

.cke_editable .nsp-card-grid .card {
    overflow: hidden;
}

.cke_editable .nsp-card-grid .card-img-top {
    aspect-ratio: 16 / 9;
    object-fit: cover;
}

.cke_editable .nsp-card-icon {
    width: 48px;
    height: 48px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: rgba(13, 110, 253, .08);
    font-size: 24px;
}

.cke_editable img.img-fluid {
    max-width: 100%;
    height: auto;
}

.cke_editable .carousel-item img {
    min-height: 240px;
    object-fit: cover;
}

/* Bootstrap 5 ratio fallback for admin pages that still use the Bootstrap 4 shell. */
.nsp-bs5-block.ratio {
    position: relative;
    width: 100%;
}

.nsp-bs5-block.ratio::before,
.nsp-video-block .ratio::before {
    display: block;
    padding-top: var(--nsp-aspect-ratio, 56.25%);
    content: "";
}

.nsp-bs5-block.ratio.ratio-16x9,
.nsp-video-block .ratio.ratio-16x9 {
    --nsp-aspect-ratio: 56.25%;
}

.nsp-bs5-block.ratio > iframe,
.nsp-video-block .ratio > iframe {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    border: 0;
}

.nsp-bs5-block { --nsp-primary: #0d6efd; --nsp-accent: #0d6efd; --nsp-accent-rgb: 13, 110, 253; --nsp-accent-end: #6f42c1; --nsp-accent-contrast: #fff; }
.nsp-bs5-block.nsp-variant-primary { --nsp-accent: #0d6efd; --nsp-accent-rgb: 13, 110, 253; --nsp-accent-end: #6f42c1; --nsp-accent-contrast: #fff; }
.nsp-bs5-block.nsp-variant-secondary { --nsp-accent: #6c757d; --nsp-accent-rgb: 108, 117, 125; --nsp-accent-end: #343a40; --nsp-accent-contrast: #fff; }
.nsp-bs5-block.nsp-variant-success { --nsp-accent: #198754; --nsp-accent-rgb: 25, 135, 84; --nsp-accent-end: #0f766e; --nsp-accent-contrast: #fff; }
.nsp-bs5-block.nsp-variant-danger { --nsp-accent: #dc3545; --nsp-accent-rgb: 220, 53, 69; --nsp-accent-end: #9f1239; --nsp-accent-contrast: #fff; }
.nsp-bs5-block.nsp-variant-warning { --nsp-accent: #ffc107; --nsp-accent-rgb: 255, 193, 7; --nsp-accent-end: #fd7e14; --nsp-accent-contrast: #212529; }
.nsp-bs5-block.nsp-variant-info { --nsp-accent: #0dcaf0; --nsp-accent-rgb: 13, 202, 240; --nsp-accent-end: #0d6efd; --nsp-accent-contrast: #212529; }
.nsp-bs5-block.nsp-variant-light { --nsp-accent: #f8f9fa; --nsp-accent-rgb: 248, 249, 250; --nsp-accent-end: #dee2e6; --nsp-accent-contrast: #212529; }
.nsp-bs5-block.nsp-variant-dark { --nsp-accent: #212529; --nsp-accent-rgb: 33, 37, 41; --nsp-accent-end: #000; --nsp-accent-contrast: #fff; }
.nsp-bs5-block.text-white.nsp-variant-dark { --nsp-accent: #f8f9fa; --nsp-accent-rgb: 248, 249, 250; --nsp-accent-end: #adb5bd; --nsp-accent-contrast: #212529; }
.nsp-bs5-block .nsp-accent-text { color: var(--nsp-accent) !important; }
.nsp-bs5-block .nsp-accent-bg { background-color: var(--nsp-accent) !important; }
.nsp-bs5-block .nsp-accent-border { border-color: var(--nsp-accent) !important; }
.nsp-bs5-block .nsp-accent-surface { color: var(--nsp-accent-contrast) !important; background-color: var(--nsp-accent) !important; }
.nsp-bs5-block.nsp-spacing-auto { padding-top: clamp(.75rem, 2vw, 1.5rem) !important; padding-bottom: clamp(.75rem, 2vw, 1.5rem) !important; }
.nsp-bs5-block.nsp-spacing-compact { padding-top: clamp(.5rem, 1.25vw, 1rem) !important; padding-bottom: clamp(.5rem, 1.25vw, 1rem) !important; }
.nsp-bs5-block.nsp-spacing-comfortable { padding-top: clamp(1rem, 2.5vw, 2rem) !important; padding-bottom: clamp(1rem, 2.5vw, 2rem) !important; }
.nsp-bs5-block.nsp-spacing-spacious { padding-top: clamp(2rem, 5vw, 4rem) !important; padding-bottom: clamp(2rem, 5vw, 4rem) !important; }
.nsp-custom-grid:not(.bg-light):not(.bg-dark):not(.nsp-bg-soft):not(.nsp-bg-gradient) + .nsp-custom-grid:not(.bg-light):not(.bg-dark):not(.nsp-bg-soft):not(.nsp-bg-gradient) { padding-top: 0 !important; }
.nsp-bs5-block.nsp-bg-soft { background: #f4f8fc; }
.nsp-bs5-block.nsp-bg-gradient { background: linear-gradient(135deg, rgb(var(--nsp-accent-rgb)), var(--nsp-accent-end)); }
.nsp-bs5-block .accordion-button:not(.collapsed) { color: var(--nsp-accent); background-color: rgba(var(--nsp-accent-rgb), .12); box-shadow: inset 0 calc(-1 * var(--bs-accordion-border-width, 1px)) 0 var(--nsp-accent); }
.nsp-bs5-block .accordion-button:focus { border-color: var(--nsp-accent); box-shadow: 0 0 0 .25rem rgba(var(--nsp-accent-rgb), .2); }
.nsp-bs5-tabs .nav-link.active { color: var(--nsp-accent); border-top-color: var(--nsp-accent); }
.nsp-bs5-tabs .nav-link:focus,
.nsp-bs5-tabs .nav-link:hover { color: var(--nsp-accent); }
.nsp-bs5-block.carousel .carousel-indicators [data-bs-target] { background-color: var(--nsp-accent); }
.nsp-bs5-block .nsp-accent-quote { border-left: 3px solid var(--nsp-accent); padding-left: 1rem; }
.nsp-bs5-block.nsp-video-block > .ratio { box-shadow: 0 .25rem .75rem rgba(var(--nsp-accent-rgb), .16); }
.nsp-bs5-block.nsp-divider-block .nsp-divider { border-top-width: 3px; }
.nsp-bs5-block.nsp-button-block,
.nsp-bs5-block.nsp-divider-block { padding-right: 1rem; padding-left: 1rem; }
.nsp-bs5-block .nsp-avatar { object-fit: cover; }
.nsp-bs5-block .nsp-team-photo { aspect-ratio: 1 / 1; object-fit: cover; }
.nsp-bs5-block .nsp-gallery-image { aspect-ratio: 4 / 3; object-fit: cover; transition: transform .2s ease; }
.nsp-bs5-block .nsp-gallery-image:hover { transform: scale(1.025); }
.nsp-bs5-block.nsp-custom-grid .nsp-grid-cell { min-height: 72px; overflow-wrap: anywhere; }
.cke_editable .nsp-custom-grid .nsp-grid-cell { position: relative; cursor: text; outline: none; box-shadow: none; transition: background-color .15s ease, box-shadow .15s ease; }
.cke_editable .nsp-custom-grid .nsp-grid-cell:hover,
.cke_editable .nsp-custom-grid .nsp-grid-cell:focus-within { background: rgba(11,92,168,.045); box-shadow: inset 3px 0 0 rgba(11,92,168,.55); }
.cke_editable .nsp-custom-grid .nsp-grid-cell::before { content: "Editable column"; position: absolute; z-index: 4; top: 4px; right: 4px; padding: 2px 6px; border-radius: 4px; background: rgba(11,92,168,.9); color: #fff; font: 10px/1.25 Arial,sans-serif; pointer-events: none; opacity: 0; transition: opacity .15s ease; }
.cke_editable .nsp-custom-grid .nsp-grid-cell:hover::before,
.cke_editable .nsp-custom-grid .nsp-grid-cell:focus-within::before { opacity: .85; }
.cke_editable [data-nsp-protected="true"] { position: relative; cursor: pointer; outline: 2px solid rgba(11,92,168,.35); outline-offset: 3px; transition: outline-color .15s ease, box-shadow .15s ease; }
.cke_editable [data-nsp-protected="true"]:hover { outline-color: #0b5ca8; box-shadow: 0 0 0 5px rgba(11,92,168,.1); }
.cke_editable [data-nsp-protected="true"]::before { content: "Protected block - double-click to edit"; position: absolute; z-index: 5; top: 4px; right: 4px; padding: 3px 7px; border-radius: 4px; background: rgba(11,92,168,.92); color: #fff; font: 11px/1.25 Arial,sans-serif; pointer-events: none; }
.cke_editable figure[data-nsp-media-config] img { max-width: 100%; }
.nsp-bs5-block.nsp-hero { position: relative; isolation: isolate; overflow: hidden; background-color: var(--bs-primary, #0d6efd); }
.nsp-bs5-block.nsp-hero-variant-primary { --nsp-hero-rgb: 13, 110, 253; --nsp-hero-end-rgb: 111, 66, 193; }
.nsp-bs5-block.nsp-hero-variant-secondary { --nsp-hero-rgb: 108, 117, 125; --nsp-hero-end-rgb: 52, 58, 64; }
.nsp-bs5-block.nsp-hero-variant-success { --nsp-hero-rgb: 25, 135, 84; --nsp-hero-end-rgb: 15, 118, 110; }
.nsp-bs5-block.nsp-hero-variant-danger { --nsp-hero-rgb: 220, 53, 69; --nsp-hero-end-rgb: 159, 18, 57; }
.nsp-bs5-block.nsp-hero-variant-warning { --nsp-hero-rgb: 255, 193, 7; --nsp-hero-end-rgb: 253, 126, 20; }
.nsp-bs5-block.nsp-hero-variant-info { --nsp-hero-rgb: 13, 202, 240; --nsp-hero-end-rgb: 13, 110, 253; }
.nsp-bs5-block.nsp-hero-variant-light { --nsp-hero-rgb: 248, 249, 250; --nsp-hero-end-rgb: 222, 226, 230; }
.nsp-bs5-block.nsp-hero-variant-dark { --nsp-hero-rgb: 33, 37, 41; --nsp-hero-end-rgb: 0, 0, 0; }
.nsp-bs5-block.nsp-hero.nsp-bg-soft { background-color: #f4f8fc; }
.nsp-bs5-block.nsp-hero.nsp-bg-gradient { background: linear-gradient(135deg, rgb(var(--nsp-hero-rgb)), rgb(var(--nsp-hero-end-rgb))); }
.nsp-bs5-block.nsp-hero .nsp-hero-media { position: absolute; z-index: -2; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.nsp-bs5-block.nsp-hero .nsp-hero-overlay { position: absolute; z-index: -1; inset: 0; pointer-events: none; }
.nsp-bs5-block.nsp-hero .nsp-hero-overlay-default { background: linear-gradient(135deg, rgba(var(--nsp-hero-rgb), .76), rgba(15, 23, 42, .84)); }
.nsp-bs5-block.nsp-hero .nsp-hero-overlay-soft { background: rgba(244, 248, 252, .88); }
.nsp-bs5-block.nsp-hero .nsp-hero-overlay-light { background: rgba(255, 255, 255, .72); }
.nsp-bs5-block.nsp-hero .nsp-hero-overlay-dark { background: rgba(0, 0, 0, .80); }
.nsp-bs5-block.nsp-hero .nsp-hero-overlay-gradient { background: linear-gradient(135deg, rgba(var(--nsp-hero-rgb), .84), rgba(var(--nsp-hero-end-rgb), .82)); }
.nsp-bs5-block.nsp-hero .nsp-hero-content { max-width: 860px; }
.nsp-bs5-block.nsp-hero .nsp-hero-action { min-width: 10rem; }
.nsp-bs5-block.nsp-hero.text-white .btn-dark { border-color: rgba(255, 255, 255, .75); }
.nsp-bs5-block .min-vh-50 { min-height: 50vh; }
.nsp-timeline-list { position: relative; display: grid; gap: 1.5rem; max-width: 860px; margin: auto; }
.nsp-timeline-list::before { content: ''; position: absolute; top: 0; bottom: 0; left: 24px; width: 2px; background: rgba(var(--nsp-accent-rgb), .35); }
.nsp-timeline-item { position: relative; display: grid; grid-template-columns: 50px 1fr; gap: 1rem; align-items: start; }
.nsp-timeline-marker { position: relative; z-index: 1; display: grid; place-items: center; width: 50px; height: 50px; border-radius: 50%; background: var(--nsp-accent); color: var(--nsp-accent-contrast); font-weight: 700; }
.nsp-editor-draft-status { margin-top: 4px; color: #64748b; font-size: 12px; text-align: right; }
.nsp-editor-draft-notice { margin-bottom: 8px; }
@media (max-width: 575.98px) {
    .nsp-bs5-block.nsp-spacing-spacious { padding-top: 3rem !important; padding-bottom: 3rem !important; }
    .nsp-section-heading .nsp-heading-title { font-size: clamp(1.75rem, 8vw, 2.5rem); }
    .nsp-heading-boxed { padding: 1.5rem !important; }
}
