/**
 * Minimal layout shell while Bootstrap CSS is deferred (CWV / CLS guard).
 * Full Bootstrap still loads via cms_defer_stylesheet + preload.
 */
.container,
.container-fluid,
.site-container {
    width: 100%;
    padding-right: 0.75rem;
    padding-left: 0.75rem;
    margin-right: auto;
    margin-left: auto;
    box-sizing: border-box;
}
@media (min-width: 576px) {
    .container { max-width: 540px; }
}
@media (min-width: 768px) {
    .container { max-width: 720px; }
}
@media (min-width: 992px) {
    .container { max-width: 960px; }
}
@media (min-width: 1200px) {
    .container { max-width: 1140px; }
}
@media (min-width: 1400px) {
    .container { max-width: 1320px; }
}
.row {
    display: flex;
    flex-wrap: wrap;
    margin-right: -0.75rem;
    margin-left: -0.75rem;
}
.row > * {
    box-sizing: border-box;
    flex-shrink: 0;
    width: 100%;
    max-width: 100%;
    padding-right: 0.75rem;
    padding-left: 0.75rem;
}
.col { flex: 1 0 0%; }
.col-6 { flex: 0 0 auto; width: 50%; }
.col-12 { flex: 0 0 auto; width: 100%; }
@media (min-width: 768px) {
    .col-md-3 { flex: 0 0 auto; width: 25%; }
    .col-md-4 { flex: 0 0 auto; width: 33.33333333%; }
    .col-md-6 { flex: 0 0 auto; width: 50%; }
    .col-md-8 { flex: 0 0 auto; width: 66.66666667%; }
    .col-md-9 { flex: 0 0 auto; width: 75%; }
}
@media (min-width: 992px) {
    .col-lg-3 { flex: 0 0 auto; width: 25%; }
    .col-lg-4 { flex: 0 0 auto; width: 33.33333333%; }
    .col-lg-6 { flex: 0 0 auto; width: 50%; }
    .col-lg-8 { flex: 0 0 auto; width: 66.66666667%; }
    .col-lg-9 { flex: 0 0 auto; width: 75%; }
}
.g-4,
.gy-4 { --bs-gutter-y: 1.5rem; }
.g-4,
.gx-4 { --bs-gutter-x: 1.5rem; }
.d-none { display: none !important; }
@media (min-width: 992px) {
    .d-lg-block { display: block !important; }
    .d-lg-flex { display: flex !important; }
    .d-lg-none { display: none !important; }
}
.visually-hidden,
.visually-hidden-focusable:not(:focus):not(:focus-within) {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
}

/* Hero LCP shell — mirrors theme-base so paint is not blocked on deferred CSS */
.block-hero {
    position: relative;
    display: flex;
    align-items: center;
    color: var(--theme-hero-text, #fff);
    overflow: hidden;
    background: linear-gradient(
        135deg,
        var(--theme-hero-bg-end, var(--theme-secondary, #1a2a3a)),
        var(--theme-hero-bg-start, var(--theme-primary, #0d6efd))
    );
}
.block-hero--height-small { min-height: min(42vh, 360px); }
.block-hero--height-medium { min-height: min(62vh, 560px); }
.block-hero--height-large { min-height: min(78vh, 720px); }
.block-hero--height-fullscreen { min-height: 100vh; min-height: 100dvh; }
.block-hero-media {
    position: absolute;
    inset: 0;
    z-index: 0;
}
.block-hero-media img,
.block-hero-media video,
.block-hero-video,
.block-hero-video-fallback {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}
.block-hero-overlay {
    position: absolute;
    inset: 0;
    z-index: 1;
    pointer-events: none;
}
.block-hero-inner {
    position: relative;
    z-index: 2;
    width: 100%;
}
