/* site palette */
html:root {
    --bg: #F7FBFA;
    --surface: #FFFFFF;
    --surface-alt: #EEF6F5;
    --text: #1A2F2C;
    --text-muted: #5A726E;
    --border: #D8E4E2;
    --primary: #136C5F;
    --primary-hover: #0E4E44;
    --on-primary: #FFFFFF;
    --primary-text: #136C5F;
    --accent: #40CD5A;
    --on-accent: #111111;
    --accent-text: #238435;
    --dark-band: #10413A;
    --on-dark: #FFFFFF;
    --on-dark-muted: #B6C3C1;
    --brand-btn-bg: #FFFFFF;
    --brand-btn-text: #10413A;
    --section-alt-bg: linear-gradient(168deg, #EEF6F5 0%, #F3F9F8 100%);
    --dark-band-bg: linear-gradient(146deg, #10413A 0%, #12544A 100%);
    --brand-band-bg: #136C5F;
    --hero-bg: linear-gradient(146deg, #10413A 0%, #12544A 100%);
}

html:root {
    --bs-primary: #136C5F;
    --bs-primary-rgb: 19, 108, 95;
    --bs-link-color: #136C5F;
    --bs-link-color-rgb: 19, 108, 95;
    --bs-link-hover-color: #0E4E44;
    --mdb-primary: #136C5F;
    --mdb-primary-rgb: 19, 108, 95;
}

.btn-primary {
    --bs-btn-bg: var(--primary);
    --bs-btn-border-color: var(--primary);
    --bs-btn-color: var(--on-primary);
    --bs-btn-hover-bg: var(--primary-hover);
    --bs-btn-hover-border-color: var(--primary-hover);
    --bs-btn-hover-color: var(--on-primary);
    --bs-btn-active-bg: var(--primary-hover);
    --bs-btn-active-border-color: var(--primary-hover);
    --bs-btn-active-color: var(--on-primary);
    background-color: var(--primary);
    border-color: var(--primary);
    color: var(--on-primary);
}

.btn-primary:hover,
.btn-primary:focus,
.btn-primary:active {
    background-color: var(--primary-hover);
    border-color: var(--primary-hover);
    color: var(--on-primary);
}

.btn-outline-primary {
    --bs-btn-color: var(--primary-text);
    --bs-btn-border-color: var(--primary);
    --bs-btn-hover-bg: var(--primary);
    --bs-btn-hover-border-color: var(--primary);
    --bs-btn-hover-color: var(--on-primary);
    color: var(--primary-text);
    border-color: var(--primary);
}

.btn-outline-primary:hover {
    background-color: var(--primary);
    color: var(--on-primary);
}

.text-primary,
.link-primary {
    color: var(--primary-text) !important;
}

.bg-primary,
.text-bg-primary,
.badge.bg-primary {
    color: var(--on-primary) !important;
}

/* /site palette */

*,
*::before,
*::after {
    box-sizing: border-box;
}

body {
    font-family: 'Asap', sans-serif;
    background-color: var(--bg);
    color: var(--text);
    margin: 0;
    -webkit-font-smoothing: antialiased;
}

.text-muted {
    color: var(--text-muted) !important;
}

.hm-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background-color: var(--primary);
    color: var(--on-primary);
    border-radius: 9999px;
    padding: 14px 34px;
    font-weight: 700;
    font-family: 'Asap', sans-serif;
    text-decoration: none;
    border: none;
    cursor: pointer;
    transition: background-color 200ms ease, color 200ms ease;
}

.hm-btn:hover {
    background-color: var(--primary-hover);
    color: var(--on-primary);
}

.hm-btn-alt {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background-color: transparent;
    color: var(--primary-text);
    border: 1.5px solid var(--primary);
    border-radius: 9999px;
    padding: 12px 32px;
    font-weight: 700;
    font-family: 'Asap', sans-serif;
    text-decoration: none;
    cursor: pointer;
    transition: background-color 200ms ease, color 200ms ease, border-color 200ms ease;
}

.hm-btn-alt:hover {
    background-color: var(--surface-alt);
    color: var(--primary-hover);
}

.hm-card {
    background-color: var(--surface);
    color: var(--text);
    border: 1px solid var(--border);
    border-radius: 3px;
    box-shadow: 0 8px 24px rgba(16, 65, 58, 0.06);
    padding: 24px;
    display: flex;
    flex-direction: column;
    transition: transform 260ms ease, box-shadow 260ms ease;
}

.hm-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 14px 28px rgba(16, 65, 58, 0.09);
}

.hm-media {
    aspect-ratio: 16 / 9;
    flex-shrink: 0;
    border-radius: 0;
    border: 1px solid var(--border);
    overflow: hidden;
    position: relative;
}

.hm-media img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.hm-eyebrow {
    font-family: 'Asap', sans-serif;
    font-size: 13px;
    font-weight: 800;
    line-height: 1.4;
    letter-spacing: 0.12em;
    color: var(--primary);
    text-transform: uppercase;
    margin-bottom: 8px;
}

.hm-title {
    font-family: 'Asap', sans-serif;
    font-size: 36px;
    font-weight: 700;
    line-height: 1.25;
    letter-spacing: -0.015em;
    color: var(--text);
    text-transform: none;
    margin-bottom: 16px;
}

.hm-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-family: 'Asap', sans-serif;
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    padding: 4px 10px;
    border-radius: 2px;
    background-color: var(--surface-alt);
    color: var(--primary-text);
}

.hm-icon {
    width: 54px;
    height: 54px;
    border-radius: 2px;
    background-color: var(--primary);
    color: var(--on-primary);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 24px;
    flex-shrink: 0;
}

.hm-section {
    background-color: var(--bg);
    padding: 100px 0;
}

.hm-section-alt {
    background: var(--section-alt-bg, var(--surface-alt));
    padding: 100px 0;
}

.hm-section-dark {
    background: var(--dark-band-bg, var(--dark-band));
    color: var(--on-dark);
    padding: 100px 0;
}

.hm-section-brand {
    background: var(--brand-band-bg, var(--primary));
    color: var(--on-primary);
    padding: 100px 0;
}

.hm-on-dark {
    color: var(--on-dark);
}

.hm-section-dark .hm-title,
.hm-on-dark .hm-title {
    color: var(--on-dark);
}

.hm-section-dark .hm-eyebrow,
.hm-on-dark .hm-eyebrow {
    color: var(--on-dark);
}

.hm-section-dark p,
.hm-on-dark p {
    color: var(--on-dark-muted);
}

.hm-section-dark .text-muted,
.hm-on-dark .text-muted {
    color: var(--on-dark-muted) !important;
}

.hm-section-dark .hm-btn-alt,
.hm-on-dark .hm-btn-alt {
    border-color: var(--on-dark);
    color: var(--on-dark);
}

.hm-section-dark .hm-btn-alt:hover,
.hm-on-dark .hm-btn-alt:hover {
    background-color: rgba(255, 255, 255, 0.1);
    color: var(--on-dark);
}

.hm-section-dark .hm-card,
.hm-on-dark .hm-card {
    background-color: var(--surface);
    color: var(--text);
    border-color: var(--border);
}

.hm-section-dark .hm-card .hm-title,
.hm-on-dark .hm-card .hm-title {
    color: var(--text);
}

.hm-section-dark .hm-card p,
.hm-on-dark .hm-card p {
    color: var(--text-muted);
}

.hm-section-dark .hm-card .text-muted,
.hm-on-dark .hm-card .text-muted {
    color: var(--text-muted) !important;
}

.hm-section-brand .hm-btn {
    background-color: var(--brand-btn-bg, #FFFFFF);
    color: var(--brand-btn-text, #10413A);
}

.hm-section-brand .hm-btn:hover {
    background-color: var(--surface-alt, #EEF6F5);
    color: var(--brand-btn-text, #10413A);
}

.hm-section-brand .hm-btn-alt {
    border-color: var(--on-primary);
    color: var(--on-primary);
}

.hm-section-brand .hm-btn-alt:hover {
    background-color: rgba(255, 255, 255, 0.15);
    color: var(--on-primary);
}

@media (max-width: 768px) {

    .hm-section,
    .hm-section-alt,
    .hm-section-dark,
    .hm-section-brand {
        padding: 64px 0;
    }

    .hm-title {
        font-size: 26px;
    }

    .hm-card {
        padding: 18px;
    }
}

/* ===== header ===== */
.sf-header {
    position: sticky;
    top: 0;
    z-index: 1040;
    background-color: var(--surface, #FFFFFF);
    box-shadow: 0 2px 12px rgba(16, 65, 58, 0.08);
}

.sf-header .sf-header-topbar {
    background-color: var(--primary, #136C5F);
    color: var(--on-primary, #FFFFFF);
    font-size: 13px;
    letter-spacing: 0.01em;
}

.sf-header .sf-topbar-link {
    color: var(--on-primary, #FFFFFF);
    text-decoration: none;
    transition: opacity 0.2s ease;
}

.sf-header .sf-topbar-link:hover,
.sf-header .sf-topbar-link:focus {
    color: var(--surface-alt, #EEF6F5);
    opacity: 0.9;
    text-decoration: none;
}

.sf-header .sf-topbar-item {
    color: var(--on-primary, #FFFFFF);
}

.sf-header .sf-topbar-divider {
    display: inline-block;
    width: 1px;
    height: 14px;
    background-color: rgba(255, 255, 255, 0.3);
}

.sf-header .sf-main-nav {
    background-color: var(--surface, #FFFFFF);
    border-bottom: 1px solid var(--border, #D8E4E2);
    padding: 0.75rem 0;
}

.sf-header .sf-brand {
    text-decoration: none;
    color: var(--text, #1A2F2C);
}

.sf-header .sf-logo-img {
    width: 44px;
    height: 44px;
    max-width: 48px;
    object-fit: contain;
    display: block;
}

.sf-header .sf-brand-text {
    font-family: 'Asap', sans-serif;
    font-size: 20px;
    font-weight: 800;
    color: var(--text, #1A2F2C);
    letter-spacing: -0.01em;
    line-height: 1.2;
}

.sf-header .sf-brand-accent {
    color: var(--primary, #136C5F);
}

.sf-header .sf-nav-link {
    font-family: 'Asap', sans-serif;
    font-size: 15px;
    font-weight: 600;
    color: var(--text, #1A2F2C);
    padding: 0.5rem 0.9rem;
    transition: color 0.2s ease;
    border-radius: 4px;
}

.sf-header .sf-nav-link:hover,
.sf-header .sf-nav-link:focus {
    color: var(--primary, #136C5F);
}

.sf-header .sf-dropdown-menu {
    background-color: var(--surface, #FFFFFF);
    border: 1px solid var(--border, #D8E4E2);
    border-radius: 4px;
    box-shadow: 0 10px 26px rgba(16, 65, 58, 0.1);
    padding: 0.5rem 0;
    min-width: 220px;
    margin-top: 0.5rem;
}

.sf-header .sf-dropdown-item {
    font-family: 'Asap', sans-serif;
    font-size: 14px;
    font-weight: 600;
    color: var(--text, #1A2F2C);
    padding: 0.6rem 1.2rem;
    display: flex;
    align-items: center;
    transition: background-color 0.2s ease, color 0.2s ease;
}

.sf-header .sf-dropdown-item:hover,
.sf-header .sf-dropdown-item:focus {
    background-color: var(--surface-alt, #EEF6F5);
    color: var(--primary, #136C5F);
}

.sf-header .sf-header-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    background-color: var(--dark-band, #10413A);
    color: var(--on-dark, #FFFFFF);
    font-family: 'Asap', sans-serif;
    font-size: 14px;
    font-weight: 600;
    padding: 10px 24px;
    border-radius: 9999px;
    text-decoration: none;
    transition: background-color 0.2s ease, transform 0.2s ease;
    border: none;
    white-space: nowrap;
}

.sf-header .sf-header-btn:hover,
.sf-header .sf-header-btn:focus {
    background-color: var(--primary-hover, #0E4E44);
    color: var(--on-dark, #FFFFFF);
    text-decoration: none;
    transform: translateY(-1px);
}

.sf-header .sf-navbar-toggler {
    border: 1px solid var(--border, #D8E4E2);
    background-color: var(--surface-alt, #EEF6F5);
    padding: 6px 10px;
    border-radius: 4px;
    color: var(--text, #1A2F2C);
}

.sf-header .sf-navbar-toggler:focus {
    box-shadow: 0 0 0 2px var(--primary, #136C5F);
}

.sf-header .sf-toggler-icon {
    font-size: 24px;
    display: block;
    color: var(--primary, #136C5F);
}

@media (max-width: 991px) {
    .sf-header .sf-main-nav {
        padding: 0.5rem 0;
    }

    .sf-header .sf-brand-text {
        font-size: 18px;
    }

    .sf-header .sf-nav-list {
        padding-top: 1rem;
    }

    .sf-header .sf-nav-link {
        padding: 0.6rem 0.5rem;
    }

    .sf-header .sf-dropdown-menu {
        box-shadow: none;
        border: 1px solid var(--border, #D8E4E2);
        margin-left: 0.5rem;
        margin-bottom: 0.5rem;
        background-color: var(--surface-alt, #EEF6F5);
    }

    .sf-header .sf-header-btn {
        width: 100%;
        margin-bottom: 0.75rem;
    }
}

/* ===== keep_the_important_tracks_in_view ===== */
.hero-focus-block {
    position: relative;
    background-color: var(--bg, #F7FBFA);
    padding-top: 100px;
    padding-bottom: 50px;
    overflow: hidden
}

.hero-focus-block .hero-video-layer {
    height: calc(100% - 90px);
    z-index: 1;
    overflow: hidden
}

.hero-focus-block .hero-video-element {
    object-fit: cover;
    width: 100%;
    height: 100%
}

.hero-focus-block .hero-video-overlay {
    background: linear-gradient(146deg, rgba(16, 65, 58, 0.85) 0%, rgba(18, 84, 74, 0.80) 100%);
    z-index: 2
}

.hero-focus-block .hero-content-container {
    z-index: 3
}

.hero-focus-block .hero-text-wrap {
    max-width: 820px;
    padding-bottom: 30px
}

.hero-focus-block .hero-lead-line {
    font-family: 'Asap', sans-serif;
    font-size: 15px;
    font-weight: 600;
    letter-spacing: 0.04em;
    color: var(--accent, #40CD5A);
    text-transform: none
}

.hero-focus-block .hero-title {
    font-family: 'Asap', sans-serif;
    font-size: 52px;
    font-weight: 800;
    line-height: 1.15;
    letter-spacing: -0.02em;
    color: #FFFFFF;
    overflow-wrap: anywhere
}

.hero-focus-block .hero-subhead {
    font-family: 'Asap', sans-serif;
    font-size: 18px;
    font-weight: 400;
    line-height: 1.6;
    color: var(--on-dark-muted, #B6C3C1);
    overflow-wrap: anywhere
}

.hero-focus-block .hero-btn-group {
    margin-top: 8px
}

.hero-focus-block .hero-cards-row {
    position: relative;
    margin-top: 20px
}

.hero-focus-block .hero-card {
    background: var(--surface, #FFFFFF);
    border: 1px solid var(--border, #D8E4E2);
    border-radius: 3px;
    box-shadow: 0 12px 32px rgba(16, 65, 58, 0.12);
    display: flex;
    flex-direction: column;
    transition: transform 260ms ease, box-shadow 260ms ease
}

.hero-focus-block .hero-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 14px 28px rgba(16, 65, 58, 0.18)
}

.hero-focus-block .hero-card-icon {
    width: 54px;
    height: 54px;
    background-color: var(--primary, #136C5F);
    color: var(--on-primary, #FFFFFF);
    border-radius: 2px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 24px;
    flex-shrink: 0
}

.hero-focus-block .hero-card-title {
    font-family: 'Asap', sans-serif;
    font-size: 20px;
    font-weight: 700;
    line-height: 1.3;
    color: var(--text, #1A2F2C);
    overflow-wrap: anywhere
}

.hero-focus-block .hero-card-desc {
    font-family: 'Asap', sans-serif;
    font-size: 15px;
    font-weight: 400;
    line-height: 1.55;
    color: var(--text-muted, #5A726E);
    flex-grow: 1;
    overflow-wrap: anywhere
}

@media (max-width:991.98px) {
    .hero-focus-block {
        padding-top: 72px
    }

    .hero-focus-block .hero-title {
        font-size: 38px
    }

    .hero-focus-block .hero-subhead {
        font-size: 16px
    }
}

@media (max-width:767.98px) {
    .hero-focus-block {
        padding-top: 54px;
        padding-bottom: 40px
    }

    .hero-focus-block .hero-video-layer {
        height: 60%
    }

    .hero-focus-block .hero-title {
        font-size: 18px !important;
        line-height: 1.25 !important;
        hyphens: auto
    }

    .hero-focus-block .hero-lead-line {
        font-size: 12px !important
    }

    .hero-focus-block .hero-subhead {
        font-size: 14px !important;
        line-height: 1.45 !important;
        hyphens: auto
    }

    .hero-focus-block .hero-card-title {
        font-size: 14px !important;
        line-height: 1.35 !important;
        hyphens: auto
    }

    .hero-focus-block .hero-card-desc {
        font-size: 13px !important;
        line-height: 1.45 !important
    }

    .hero-focus-block .hero-cards-row {
        margin-top: 12px
    }
}

/* ===== press_mentions ===== */
.press-mentions-block {
    padding: 90px 0;
    overflow: hidden;
}

.press-mentions-block__header {
    max-width: 780px;
    margin-left: auto;
    margin-right: auto;
}

.press-mentions-block .hm-title {
    color: var(--text);
    font-weight: 700;
}

.press-mentions-block__lead {
    color: var(--text-muted);
    font-size: 1.05rem;
    line-height: 1.6;
}

.press-mentions-block__filter-btn {
    background: var(--surface);
    color: var(--text);
    border: 1px solid var(--border);
    border-radius: 9999px;
    padding: 8px 20px;
    font-size: 0.875rem;
    font-weight: 600;
    cursor: pointer;
    transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}

.press-mentions-block__filter-btn:hover {
    background: var(--surface-alt);
    border-color: var(--primary);
    color: var(--primary-text);
}

.press-mentions-block__filter-btn.is-active {
    background: var(--primary);
    border-color: var(--primary);
    color: var(--on-primary);
}

.press-mentions-block__card {
    border: 1px solid var(--border);
    border-radius: 4px;
    box-shadow: 0 4px 16px rgba(16, 65, 58, 0.05);
    transition: transform 0.26s ease, box-shadow 0.26s ease;
}

.press-mentions-block__card:hover {
    transform: translateY(-3px);
    box-shadow: 0 12px 24px rgba(16, 65, 58, 0.09);
}

.press-mentions-block__icon-badge {
    width: 42px;
    height: 42px;
    background: var(--primary);
    color: var(--on-primary);
    border-radius: 2px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.25rem;
}

.press-mentions-block__pub-title {
    font-size: 1.15rem;
    font-weight: 700;
    color: var(--text);
    line-height: 1.35;
}

.press-mentions-block__pub-meta {
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--text-muted);
}

.press-mentions-block__quote {
    font-size: 0.95rem;
    line-height: 1.55;
    color: var(--text-muted);
    font-style: italic;
    margin: 0;
}

@media (max-width: 767px) {
    .press-mentions-block {
        padding: 56px 0;
    }

    .press-mentions-block .hm-title {
        font-size: 16px;
        hyphens: auto;
    }

    .press-mentions-block__pub-title {
        font-size: 14px;
        hyphens: auto;
    }

    .press-mentions-block__quote {
        font-size: 0.875rem;
    }
}

/* ===== us_vs_typical_approach ===== */
.sfa-comparison-block {
    padding: 100px 0;
    position: relative;
}

.sfa-comparison-lead {
    font-size: 17px;
    line-height: 1.6;
    color: var(--text-muted);
}

.sfa-table-card {
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: 3px;
    box-shadow: 0 8px 24px rgba(16, 65, 58, 0.05);
    overflow: hidden;
}

.sfa-table {
    border-collapse: collapse;
    text-align: left;
}

.sfa-table thead th {
    padding: 18px 24px;
    font-size: 14px;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    border-bottom: 2px solid var(--border);
}

.sfa-table thead .sfa-col-dimension {
    background: var(--surface);
    color: var(--text);
    width: 28%;
}

.sfa-table thead .sfa-col-us {
    background: var(--primary);
    color: var(--on-primary);
    width: 38%;
}

.sfa-table thead .sfa-col-them {
    background: var(--surface-alt);
    color: var(--text);
    width: 34%;
}

.sfa-table tbody tr {
    border-bottom: 1px solid var(--border);
    transition: background-color 0.2s ease;
}

.sfa-table tbody tr:last-child {
    border-bottom: none;
}

.sfa-table tbody tr:hover {
    background-color: rgba(238, 246, 245, 0.5);
}

.sfa-cell-dimension {
    padding: 24px;
    background: var(--surface);
    vertical-align: top;
}

.sfa-dimension-title {
    font-weight: 700;
    font-size: 16px;
    color: var(--text);
    margin-bottom: 4px;
    overflow-wrap: anywhere;
}

.sfa-dimension-sub {
    font-size: 13px;
    color: var(--text-muted);
    display: block;
    line-height: 1.4;
    overflow-wrap: anywhere;
}

.sfa-cell-us {
    padding: 24px;
    background: rgba(19, 108, 95, 0.03);
    vertical-align: top;
    border-left: 2px solid var(--primary);
    border-right: 1px solid var(--border);
}

.sfa-cell-them {
    padding: 24px;
    background: var(--surface);
    vertical-align: top;
}

.sfa-icon-check {
    font-size: 18px;
    color: var(--primary);
    flex-shrink: 0;
}

.sfa-icon-cross {
    font-size: 18px;
    color: #a45353;
    flex-shrink: 0;
}

.sfa-val-title {
    font-size: 15px;
    color: var(--text);
    margin-bottom: 4px;
    line-height: 1.35;
    overflow-wrap: anywhere;
}

.sfa-val-desc {
    font-size: 14px;
    line-height: 1.55;
    color: var(--text-muted);
    display: block;
    overflow-wrap: anywhere;
}

.sfa-table-cta {
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: 3px;
}

.sfa-cta-heading {
    font-weight: 700;
    font-size: 16px;
    color: var(--text);
}

.sfa-cta-sub {
    font-size: 14px;
    color: var(--text-muted);
}

@media (max-width: 767px) {
    .sfa-comparison-block {
        padding: 64px 0;
    }

    .sfa-table thead {
        display: none;
    }

    .sfa-table,
    .sfa-table tbody,
    .sfa-table tr,
    .sfa-table td {
        display: block;
        width: 100%;
    }

    .sfa-table tbody tr {
        border-bottom: 2px solid var(--border);
        margin-bottom: 20px;
        background: var(--surface);
    }

    .sfa-cell-dimension {
        padding: 16px 16px 12px 16px;
        border-bottom: 1px dashed var(--border);
        background: var(--surface-alt);
    }

    .sfa-cell-us {
        padding: 16px;
        border-left: 4px solid var(--primary);
        border-right: none;
        border-bottom: 1px dashed var(--border);
        position: relative;
    }

    .sfa-cell-us::before {
        content: "SessionFocus Atlas:";
        display: block;
        font-size: 11px;
        font-weight: 800;
        letter-spacing: 0.08em;
        text-transform: uppercase;
        color: var(--primary);
        margin-bottom: 8px;
    }

    .sfa-cell-them {
        padding: 16px;
        border-left: 4px solid var(--border);
        position: relative;
    }

    .sfa-cell-them::before {
        content: "Typical Contractor:";
        display: block;
        font-size: 11px;
        font-weight: 800;
        letter-spacing: 0.08em;
        text-transform: uppercase;
        color: var(--text-muted);
        margin-bottom: 8px;
    }

    .sfa-table-cta {
        text-align: center;
    }
}

/* ===== questions_for_any_contractor ===== */
.contractor-questions-section {
    padding: 80px 0;
    position: relative;
    overflow: hidden;
}

.contractor-questions-section .contractor-questions-eyebrow {
    display: inline-block;
    color: #EEF6F5;
    letter-spacing: 0.14em;
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    margin-bottom: 12px;
}

.contractor-questions-section .contractor-questions-title {
    color: #FFFFFF;
    font-size: 34px;
    font-weight: 700;
    line-height: 1.25;
    letter-spacing: -0.015em;
    margin-bottom: 16px;
}

.contractor-questions-section .contractor-questions-lead {
    color: #EEF6F5;
    font-size: 17px;
    line-height: 1.6;
    margin: 0 auto;
    max-width: 760px;
}

.contractor-questions-section .contractor-question-card {
    background-color: #FFFFFF;
    border: 1px solid #D8E4E2;
    border-radius: 3px;
    box-shadow: 0 8px 24px rgba(16, 65, 58, 0.08);
    transition: transform 0.25s ease, box-shadow 0.25s ease;
}

.contractor-questions-section .contractor-question-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 14px 28px rgba(16, 65, 58, 0.16);
}

.contractor-questions-section .contractor-step-num {
    font-size: 20px;
    font-weight: 800;
    color: #136C5F;
    letter-spacing: -0.02em;
    line-height: 1;
}

.contractor-questions-section .contractor-card-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    background-color: #EEF6F5;
    color: #136C5F;
    border-radius: 3px;
    font-size: 20px;
}

.contractor-questions-section .contractor-card-title {
    font-size: 19px;
    font-weight: 700;
    line-height: 1.35;
    color: #1A2F2C;
}

.contractor-questions-section .contractor-card-text {
    font-size: 14px;
    line-height: 1.6;
    color: #5A726E;
}

.contractor-questions-section .contractor-criteria {
    padding-top: 14px;
    border-top: 1px solid #EEF6F5;
}

.contractor-questions-section .contractor-criteria-label {
    font-size: 12px;
    font-weight: 600;
    line-height: 1.45;
    color: #1A2F2C;
}

.contractor-questions-section .contractor-criteria i {
    color: #136C5F !important;
    font-size: 16px;
    flex-shrink: 0;
}

@media (max-width: 767px) {
    .contractor-questions-section {
        padding: 56px 0;
    }

    .contractor-questions-section .contractor-questions-title {
        font-size: 24px;
    }

    .contractor-questions-section .contractor-questions-lead {
        font-size: 15px;
    }

    .contractor-questions-section .contractor-card-title {
        font-size: 17px;
    }
}

/* ===== what_is_included_and_what_is_not ===== */
.sfa-scope-section {
    background-color: var(--bg);
    overflow: hidden;
}

.sfa-scope-section .sfa-section-lead {
    font-size: 1.125rem;
    line-height: 1.6;
    color: var(--text-muted);
    max-width: 720px;
    margin-left: auto;
    margin-right: auto;
}

.sfa-scope-section .sfa-scope-card {
    background-color: var(--surface);
    border: 1px solid var(--border);
    border-radius: 4px;
    padding: 32px 28px;
    box-shadow: 0 8px 24px rgba(16, 65, 58, 0.05);
    transition: transform 0.25s ease, box-shadow 0.25s ease;
}

.sfa-scope-section .sfa-scope-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 14px 28px rgba(16, 65, 58, 0.09);
}

.sfa-scope-section .sfa-status-icon {
    width: 48px;
    height: 48px;
    border-radius: 4px;
    font-size: 1.35rem;
    flex-shrink: 0;
}

.sfa-scope-section .sfa-status-positive {
    background-color: var(--primary);
    color: var(--on-primary);
}

.sfa-scope-section .sfa-status-neutral {
    background-color: var(--surface-alt);
    color: var(--text);
    border: 1px solid var(--border);
}

.sfa-scope-section .sfa-card-title {
    font-size: 1.375rem;
    font-weight: 700;
    color: var(--text);
    line-height: 1.3;
}

.sfa-scope-section .sfa-card-desc {
    font-size: 0.95rem;
    line-height: 1.55;
    color: var(--text-muted);
}

.sfa-scope-section .sfa-badge-neutral {
    background-color: var(--surface-alt);
    color: var(--text);
    border: 1px solid var(--border);
}

.sfa-scope-section .sfa-checklist li {
    font-size: 0.9375rem;
    line-height: 1.55;
    color: var(--text);
}

.sfa-scope-section .sfa-checklist li strong {
    color: var(--text);
}

.sfa-scope-section .sfa-icon-accent {
    color: var(--primary);
    font-size: 1.25rem;
    flex-shrink: 0;
}

.sfa-scope-section .sfa-icon-excluded {
    color: var(--text-muted);
    font-size: 1.25rem;
    flex-shrink: 0;
}

.sfa-scope-section .sfa-card-footer {
    border-top: 1px solid var(--border);
}

.sfa-scope-section .sfa-meta-info {
    font-size: 0.8125rem;
    font-weight: 700;
    letter-spacing: 0.03em;
    color: var(--text-muted);
    text-transform: uppercase;
}

.sfa-scope-section .sfa-meta-info i {
    font-size: 1.05rem;
    color: var(--primary);
}

@media (max-width: 767.98px) {
    .sfa-scope-section .sfa-scope-card {
        padding: 22px 18px;
    }

    .sfa-scope-section .sfa-card-title {
        font-size: 1.2rem;
    }

    .sfa-scope-section .sfa-section-lead {
        font-size: 1rem;
    }

    .sfa-scope-section .sfa-card-footer .d-flex {
        flex-direction: column;
        align-items: flex-start !important;
    }

    .sfa-scope-section .sfa-card-footer a {
        width: 100%;
        text-align: center;
    }
}

/* ===== the_cost_of_inaction ===== */
.inaction-cost-block {
    overflow-x: hidden;
    box-sizing: border-box;
}

.inaction-cost-block .inaction-cost-lead {
    color: var(--on-dark-muted);
    font-size: 1.05rem;
    line-height: 1.6;
}

.inaction-cost-block .inaction-card {
    background-color: var(--surface);
    border: 1px solid var(--border);
    border-radius: 4px;
    box-shadow: 0 8px 24px rgba(16, 65, 58, 0.08);
}

.inaction-cost-block .inaction-card-title {
    font-size: 1.25rem;
    font-weight: 700;
    color: var(--text);
}

.inaction-cost-block .inaction-icon-box {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    border-radius: 4px;
    background-color: var(--primary);
    color: var(--on-primary);
    font-size: 1.25rem;
}

.inaction-cost-block .inaction-icon-box-accent {
    background-color: #8C2A2A;
}

.inaction-cost-block .inaction-label {
    font-size: 0.92rem;
    font-weight: 600;
    color: var(--text);
}

.inaction-cost-block .inaction-value-pill {
    font-size: 0.85rem;
    font-weight: 700;
    color: var(--primary);
    background-color: var(--surface-alt);
    border: 1px solid var(--border);
    padding: 3px 10px;
    border-radius: 9999px;
    white-space: nowrap;
}

.inaction-cost-block .form-range {
    cursor: pointer;
    accent-color: var(--primary);
}

.inaction-cost-block .inaction-scale-note {
    font-size: 0.75rem;
    color: var(--text-muted);
    margin-top: 4px;
}

.inaction-cost-block .inaction-helper-note {
    border-color: var(--border) !important;
    color: var(--text-muted);
}

.inaction-cost-block .inaction-metric-item {
    background-color: var(--surface-alt);
    border: 1px solid var(--border);
    border-radius: 4px;
}

.inaction-cost-block .inaction-metric-name {
    font-size: 0.95rem;
    font-weight: 700;
    color: var(--text);
}

.inaction-cost-block .inaction-metric-stat {
    font-size: 1.35rem;
    font-weight: 800;
    letter-spacing: -0.02em;
}

.inaction-cost-block .inaction-metric-desc {
    font-size: 0.8rem;
    color: var(--text-muted);
    line-height: 1.4;
}

.inaction-cost-block .inaction-action-box {
    border-color: var(--border) !important;
}

.inaction-cost-block .inaction-action-text strong {
    font-size: 0.95rem;
    color: var(--text);
}

.inaction-cost-block .inaction-action-text span {
    color: var(--text-muted);
}

@media (max-width: 767px) {
    .inaction-cost-block .inaction-card {
        padding: 1.25rem !important;
    }

    .inaction-cost-block .hm-title {
        font-size: 1.35rem;
        line-height: 1.3;
    }

    .inaction-cost-block .inaction-metric-stat {
        font-size: 1.2rem;
    }
}

/* ===== explore_focus_maps ===== */
.focus-maps-section {
    padding-top: 96px;
    padding-bottom: 96px;
}

.focus-maps-section .focus-maps-header {
    max-width: 680px;
}

.focus-maps-section .focus-maps-subtitle {
    color: var(--text-muted, #5A726E);
    font-size: 16px;
    line-height: 1.6;
    overflow-wrap: anywhere;
}

.focus-maps-section .focus-map-card {
    background: var(--surface, #FFFFFF);
    border: 1px solid var(--border, #D8E4E2);
    border-radius: 3px;
    overflow: hidden;
    transition: transform 0.26s ease, box-shadow 0.26s ease;
}

.focus-maps-section .focus-map-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 14px 28px rgba(16, 65, 58, 0.09);
}

.focus-maps-section .focus-map-thumb {
    aspect-ratio: 16 / 10;
    overflow: hidden;
    background: var(--surface-alt, #EEF6F5);
}

.focus-maps-section .focus-map-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.35s ease;
}

.focus-maps-section .focus-map-card:hover .focus-map-thumb img {
    transform: scale(1.03);
}

.focus-maps-section .focus-map-content {
    padding: 24px 20px 20px;
}

.focus-maps-section .focus-map-badge {
    background: var(--surface-alt, #EEF6F5);
    color: var(--primary-text, #136C5F);
    border: 1px solid var(--border, #D8E4E2);
    border-radius: 2px;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    padding: 3px 8px;
    display: inline-block;
}

.focus-maps-section .focus-map-title {
    font-size: 19px;
    line-height: 1.35;
    font-weight: 700;
    margin: 0;
    overflow-wrap: anywhere;
}

.focus-maps-section .focus-map-title-link {
    color: var(--text, #1A2F2C);
    text-decoration: none;
    transition: color 0.2s ease;
}

.focus-maps-section .focus-map-title-link:hover,
.focus-maps-section .focus-map-title-link:focus {
    color: var(--primary-hover, #0E4E44);
}

.focus-maps-section .focus-map-desc {
    font-size: 14px;
    line-height: 1.55;
    color: var(--text-muted, #5A726E);
    overflow-wrap: anywhere;
}

.focus-maps-section .focus-map-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: var(--primary, #136C5F);
    color: var(--on-primary, #FFFFFF);
    border-radius: 9999px;
    padding: 12px 20px;
    font-size: 14px;
    font-weight: 700;
    text-decoration: none;
    border: none;
    transition: background-color 0.2s ease, color 0.2s ease, transform 0.2s ease;
}

.focus-maps-section .focus-map-btn:hover,
.focus-maps-section .focus-map-btn:focus {
    background: var(--primary-hover, #0E4E44);
    color: var(--on-primary, #FFFFFF);
}

@media (max-width: 767px) {
    .focus-maps-section {
        padding-top: 64px;
        padding-bottom: 64px;
    }

    .focus-maps-section .focus-map-title {
        font-size: 18px;
    }

    .focus-maps-section .focus-map-content {
        padding: 18px 16px 16px;
    }
}

/* ===== session_workflows ===== */
.session-workflows-grid-block {
    padding: 100px 0;
    position: relative;
}

.session-workflows-grid-block .sfa-section-lead {
    font-size: 1.0625rem;
    line-height: 1.6;
    color: var(--text-muted);
    margin: 0 auto;
    max-width: 720px;
}

.session-workflows-grid-block .sfa-workflow-card {
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: 3px;
    box-shadow: 0 8px 24px rgba(16, 65, 58, 0.05);
    overflow: hidden;
    transition: transform 0.25s ease, box-shadow 0.25s ease;
}

.session-workflows-grid-block .sfa-workflow-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 14px 28px rgba(16, 65, 58, 0.1);
}

.session-workflows-grid-block .sfa-workflow-media {
    aspect-ratio: 16 / 10;
    overflow: hidden;
    background-color: var(--dark-band);
    position: relative;
}

.session-workflows-grid-block .sfa-workflow-thumb {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.3s ease;
}

.session-workflows-grid-block .sfa-workflow-card:hover .sfa-workflow-thumb {
    transform: scale(1.03);
}

.session-workflows-grid-block .sfa-workflow-body {
    padding: 24px 20px;
}

.session-workflows-grid-block .sfa-workflow-title {
    font-size: 1.125rem;
    font-weight: 700;
    line-height: 1.35;
    letter-spacing: -0.01em;
    margin-bottom: 12px;
    min-height: 3rem;
}

.session-workflows-grid-block .sfa-title-link {
    color: var(--text);
    text-decoration: none;
    transition: color 0.2s ease;
    display: inline;
    overflow-wrap: anywhere;
}

.session-workflows-grid-block .sfa-title-link:hover,
.session-workflows-grid-block .sfa-title-link:focus {
    color: var(--primary-hover);
}

.session-workflows-grid-block .sfa-workflow-desc {
    font-size: 0.9375rem;
    line-height: 1.55;
    color: var(--text-muted);
    margin-bottom: 0;
    overflow-wrap: anywhere;
}

.session-workflows-grid-block .sfa-card-btn {
    border-radius: 9999px;
    padding: 10px 20px;
    font-size: 0.875rem;
    font-weight: 700;
    text-decoration: none;
    transition: background-color 0.2s ease, color 0.2s ease;
}

.session-workflows-grid-block .sfa-card-btn:hover,
.session-workflows-grid-block .sfa-card-btn:focus {
    background-color: var(--primary-hover);
    color: var(--on-primary);
}

.session-workflows-grid-block .sfa-all-btn {
    border-radius: 9999px;
    padding: 12px 32px;
    font-size: 0.9375rem;
    font-weight: 700;
    text-decoration: none;
    transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}

@media (max-width: 767.98px) {
    .session-workflows-grid-block {
        padding: 64px 0;
    }

    .session-workflows-grid-block .sfa-workflow-title {
        min-height: auto;
        font-size: 1rem;
    }

    .session-workflows-grid-block .sfa-workflow-body {
        padding: 20px 16px;
    }
}

/* ===== featured_session_cases ===== */
.session-cases-section {
    padding: 100px 0;
}

.session-cases-section .session-cases-subtitle {
    color: var(--text-muted);
    font-size: 16px;
    line-height: 1.6;
    margin: 0 auto;
    max-width: 720px;
}

.session-cases-section .session-case-card {
    background-color: var(--surface);
    border: 1px solid var(--border);
    border-radius: 3px;
    padding: 20px;
    box-shadow: 0 8px 24px rgba(16, 65, 58, 0.05);
    transition: transform 260ms ease, box-shadow 260ms ease;
}

.session-cases-section .session-case-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 14px 28px rgba(16, 65, 58, 0.1);
}

.session-cases-section .session-case-media {
    width: 100%;
    aspect-ratio: 16 / 10;
    overflow: hidden;
    border-radius: 2px;
    background-color: var(--surface-alt);
}

.session-cases-section .session-case-media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 300ms ease;
}

.session-cases-section .session-case-card:hover .session-case-media img {
    transform: scale(1.03);
}

.session-cases-section .session-case-meta {
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.08em;
    color: var(--text-muted);
    text-transform: uppercase;
}

.session-cases-section .session-case-heading {
    font-size: 19px;
    font-weight: 700;
    line-height: 1.35;
    letter-spacing: -0.01em;
}

.session-cases-section .session-case-link {
    color: var(--text);
    text-decoration: none;
    overflow-wrap: anywhere;
    transition: color 200ms ease;
}

.session-cases-section .session-case-link:hover {
    color: var(--primary);
}

.session-cases-section .session-case-desc {
    color: var(--text-muted);
    font-size: 14px;
    line-height: 1.55;
    margin-bottom: 16px;
    overflow-wrap: anywhere;
}

.session-cases-section .session-case-btn {
    border-radius: 9999px;
    padding: 10px 18px;
    font-size: 14px;
    font-weight: 700;
    text-decoration: none;
}

.session-cases-section .session-cases-browse-btn {
    border-radius: 9999px;
    padding: 14px 34px;
    font-weight: 700;
    text-decoration: none;
}

@media (max-width: 767px) {
    .session-cases-section {
        padding: 64px 0;
    }

    .session-cases-section .session-case-heading {
        font-size: 17px;
    }
}

/* ===== knowledge_base_articles ===== */
.articles-grid-section {
    padding: 64px 0
}

.articles-grid-subtitle {
    max-width: 680px;
    color: var(--text-muted);
    font-size: 16px;
    line-height: 1.6
}

.articles-grid-card {
    border: 1px solid var(--border);
    border-radius: 3px;
    background: var(--surface);
    box-shadow: 0 8px 24px rgba(16, 65, 58, 0.06);
    transition: transform 260ms ease, box-shadow 260ms ease;
    overflow: hidden
}

.articles-grid-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 14px 28px rgba(16, 65, 58, 0.09)
}

.articles-grid-media-wrapper {
    width: 100%;
    aspect-ratio: 16/10;
    overflow: hidden
}

.articles-grid-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 300ms ease
}

.articles-grid-card:hover .articles-grid-img {
    transform: scale(1.03)
}

.articles-grid-date-tag {
    position: absolute;
    bottom: 10px;
    left: 10px;
    background: var(--primary);
    color: var(--on-primary);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.04em;
    padding: 4px 10px;
    border-radius: 2px;
    z-index: 2;
    line-height: 1.4
}

.articles-grid-content {
    padding-top: 16px
}

.articles-grid-meta {
    font-size: 12px;
    font-weight: 700;
    color: var(--text-muted);
    letter-spacing: 0.04em;
    text-transform: uppercase
}

.articles-grid-meta-item {
    display: inline-flex;
    align-items: center;
    gap: 4px
}

.articles-grid-meta-divider {
    color: var(--border)
}

.articles-grid-card-title {
    font-size: 17px;
    font-weight: 700;
    line-height: 1.35;
    margin-bottom: 8px
}

.articles-grid-title-link {
    color: var(--text);
    text-decoration: none;
    transition: color 200ms ease
}

.articles-grid-title-link:hover {
    color: var(--primary-hover);
    text-decoration: underline;
    text-underline-offset: 4px
}

.articles-grid-card-text {
    font-size: 14px;
    color: var(--text-muted);
    line-height: 1.5;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden
}

.articles-grid-action-btn {
    padding: 10px 18px;
    font-size: 14px;
    border-radius: 9999px;
    text-decoration: none
}

@media (min-width:768px) {
    .articles-grid-section {
        padding: 100px 0
    }

    .articles-grid-card-title {
        font-size: 19px
    }
}

@media (max-width:767px) {
    .articles-grid-section h2 {
        font-size: 16px;
        line-height: 1.3;
        hyphens: auto
    }

    .articles-grid-section h3 {
        font-size: 14px;
        line-height: 1.35;
        hyphens: auto
    }

    .articles-grid-card {
        margin-bottom: 8px
    }
}

/* ===== contact_and_consultation ===== */
.sfa-contact-section {
    padding: 90px 0;
    background-color: var(--bg);
    color: var(--text);
}

.sfa-contact-info-panel {
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: 3px;
    padding: 32px 28px;
    box-shadow: 0 8px 24px rgba(16, 65, 58, 0.05);
}

.sfa-contact-desc {
    font-size: 16px;
    line-height: 1.6;
    color: var(--text-muted);
}

.sfa-icon-holder {
    width: 44px;
    height: 44px;
    background: var(--primary);
    color: var(--on-primary);
    border-radius: 2px;
    font-size: 20px;
    flex-shrink: 0;
}

.sfa-info-label {
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--text-muted);
    margin-bottom: 2px;
}

.sfa-info-val {
    font-size: 15px;
    font-weight: 600;
    color: var(--text);
    overflow-wrap: anywhere;
}

.sfa-link {
    text-decoration: none;
    color: var(--primary-text);
    transition: color 0.2s ease;
}

.sfa-link:hover,
.sfa-link:focus {
    color: var(--primary-hover);
    text-decoration: underline;
}

.sfa-hours-box {
    background: var(--surface-alt);
    border-radius: 2px;
    border-left: 3px solid var(--primary);
}

.sfa-hours-title {
    font-size: 13px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--primary-text);
}

.sfa-hours-sub {
    font-size: 13px;
    line-height: 1.5;
    color: var(--text-muted);
}

.sfa-form-card {
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: 3px;
    padding: 36px 32px;
    box-shadow: 0 8px 24px rgba(16, 65, 58, 0.05);
}

.sfa-card-title {
    font-size: 24px;
    font-weight: 700;
    color: var(--text);
    line-height: 1.3;
}

.sfa-form-sub {
    font-size: 15px;
    line-height: 1.5;
    color: var(--text-muted);
}

.sfa-field-label {
    display: block;
    font-size: 13px;
    font-weight: 600;
    color: var(--text);
    margin-bottom: 6px;
}

.sfa-text-input {
    background-color: var(--surface-alt);
    border: 1px solid var(--border);
    border-radius: 3px;
    color: var(--text);
    font-size: 15px;
    padding: 12px 14px;
    box-shadow: none;
    transition: border-color 0.2s ease, background-color 0.2s ease;
}

.sfa-text-input:focus {
    background-color: var(--surface);
    border-color: var(--primary);
    color: var(--text);
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--primary) 18%, transparent);
    outline: none;
}

.sfa-text-input::placeholder {
    color: var(--text-muted);
    opacity: 0.85;
}

.sfa-checkbox {
    width: 18px;
    height: 18px;
    border: 1px solid var(--border);
    background-color: var(--surface-alt);
    border-radius: 2px;
}

.sfa-checkbox:checked {
    background-color: var(--primary);
    border-color: var(--primary);
}

.sfa-checkbox:focus {
    box-shadow: 0 0 0 2px color-mix(in srgb, var(--primary) 25%, transparent);
}

.sfa-consent-label {
    font-size: 13px;
    line-height: 1.45;
    color: var(--text-muted);
    cursor: pointer;
}

.sfa-policy-link {
    color: var(--primary-text);
    text-decoration: underline;
    font-weight: 600;
}

.sfa-policy-link:hover,
.sfa-policy-link:focus {
    color: var(--primary-hover);
}

.sfa-submit-btn {
    border-radius: 9999px;
    background: var(--primary);
    color: var(--on-primary);
    font-weight: 700;
    font-size: 15px;
    padding: 14px 34px;
    border: none;
    transition: background-color 0.2s ease;
}

.sfa-submit-btn:hover,
.sfa-submit-btn:focus {
    background: var(--primary-hover);
    color: var(--on-primary);
}

@media (max-width: 767px) {
    .sfa-contact-section {
        padding: 56px 0;
    }

    .sfa-contact-info-panel,
    .sfa-form-card {
        padding: 24px 18px;
    }

    .sfa-card-title {
        font-size: 18px;
        hyphens: auto;
    }

    .sfa-submit-btn {
        width: 100%;
    }
}

/* ===== footer ===== */
#sessionfocus-footer.sf-footer {
    background-color: var(--dark-band, #10413A);
    color: var(--on-dark, #FFFFFF);
    padding-top: 56px;
    padding-bottom: 0;
    overflow-x: hidden;
}

#sessionfocus-footer .sf-disclaimer-wrapper {
    margin-bottom: 48px;
}

#sessionfocus-footer .sf-disclaimer-card {
    background-color: rgba(19, 108, 95, 0.18);
    border: 1px solid rgba(64, 205, 90, 0.35);
    border-left: 4px solid var(--accent, #40CD5A);
    border-radius: 4px;
    padding: 22px 24px;
}

#sessionfocus-footer .sf-disclaimer-header {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 10px;
}

#sessionfocus-footer .sf-disclaimer-badge-icon {
    font-size: 20px;
    color: var(--accent, #40CD5A);
    line-height: 1;
    flex-shrink: 0;
}

#sessionfocus-footer .sf-disclaimer-badge-title {
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--on-dark, #FFFFFF);
}

#sessionfocus-footer .sf-disclaimer-text {
    font-size: 14px;
    line-height: 1.6;
    color: var(--on-dark-muted, #B6C3C1);
    margin-bottom: 0;
    overflow-wrap: anywhere;
}

#sessionfocus-footer .sf-main-content {
    padding-bottom: 56px;
}

#sessionfocus-footer .sf-logo-wrap {
    margin-bottom: 16px;
}

#sessionfocus-footer .sf-footer-logo {
    width: 44px;
    height: 44px;
    object-fit: contain;
}

#sessionfocus-footer .sf-brand-title {
    font-size: 18px;
    font-weight: 800;
    color: var(--on-dark, #FFFFFF);
    letter-spacing: -0.01em;
}

#sessionfocus-footer .sf-brand-desc {
    font-size: 14px;
    line-height: 1.6;
    color: var(--on-dark-muted, #B6C3C1);
    margin-bottom: 0;
    max-width: 290px;
}

#sessionfocus-footer .sf-col-title {
    display: block;
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: var(--accent, #40CD5A);
    margin-bottom: 18px;
}

#sessionfocus-footer .sf-links-list {
    list-style: none;
    padding-left: 0;
    margin-bottom: 0;
    display: flex;
    flex-direction: column;
    gap: 10px;
}

#sessionfocus-footer .sf-link {
    color: var(--on-dark-muted, #B6C3C1);
    text-decoration: none;
    font-size: 14px;
    line-height: 1.5;
    transition: color 0.2s ease;
    overflow-wrap: anywhere;
}

#sessionfocus-footer .sf-link:hover,
#sessionfocus-footer .sf-link:focus {
    color: var(--on-dark, #FFFFFF);
    text-decoration: underline;
    text-underline-offset: 4px;
}

#sessionfocus-footer .sf-contact-block {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

#sessionfocus-footer .sf-contact-item {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    font-size: 14px;
    line-height: 1.5;
}

#sessionfocus-footer .sf-contact-icon {
    font-size: 18px;
    color: var(--accent, #40CD5A);
    line-height: 1.3;
    flex-shrink: 0;
}

#sessionfocus-footer .sf-contact-text {
    color: var(--on-dark-muted, #B6C3C1);
    overflow-wrap: anywhere;
}

#sessionfocus-footer .sf-bottom-bar {
    background-color: var(--primary, #136C5F);
    padding: 18px 0;
    color: var(--on-primary, #FFFFFF);
    border-top: 1px solid rgba(255, 255, 255, 0.1);
}

#sessionfocus-footer .sf-bottom-flex {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 14px;
}

#sessionfocus-footer .sf-copyright-text {
    font-size: 13px;
    font-weight: 500;
    color: var(--on-primary, #FFFFFF);
    line-height: 1.4;
}

#sessionfocus-footer .sf-legal-links {
    display: inline-flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 10px;
}

#sessionfocus-footer .sf-legal-link {
    font-size: 13px;
    font-weight: 500;
    color: var(--on-primary, #FFFFFF);
    text-decoration: none;
    transition: opacity 0.2s ease, text-decoration 0.2s ease;
}

#sessionfocus-footer .sf-legal-link:hover,
#sessionfocus-footer .sf-legal-link:focus {
    opacity: 0.85;
    text-decoration: underline;
    text-underline-offset: 3px;
}

#sessionfocus-footer .sf-legal-divider {
    color: rgba(255, 255, 255, 0.6);
    font-size: 11px;
}

@media (max-width: 767px) {
    #sessionfocus-footer.sf-footer {
        padding-top: 40px;
    }

    #sessionfocus-footer .sf-disclaimer-wrapper {
        margin-bottom: 32px;
    }

    #sessionfocus-footer .sf-disclaimer-card {
        padding: 16px 18px;
    }

    #sessionfocus-footer .sf-main-content {
        padding-bottom: 40px;
    }

    #sessionfocus-footer .sf-bottom-flex {
        flex-direction: column;
        align-items: flex-start;
        gap: 12px;
    }

    #sessionfocus-footer .sf-legal-links {
        width: 100%;
        justify-content: flex-start;
    }
}

/* ===== PAGE: pro-tools-guide ===== */
.pt-guide-block{padding:80px 0;}.pt-guide-lead{font-size:1.15rem;line-height:1.6;color:var(--text);font-weight:500;}.pt-guide-subtext{max-width:680px;}.pt-guide-image-card{background:var(--surface);border:1px solid var(--border);border-radius:3px;overflow:hidden;box-shadow:0 8px 24px rgba(16,65,58,0.06);}.pt-guide-media-frame{aspect-ratio:16/11;width:100%;background:var(--surface-alt);}.pt-guide-media-frame img{width:100%;height:100%;object-fit:cover;display:block;}.pt-guide-badge-strip{border-top:1px solid var(--border);background:var(--surface);}.pt-workflow-nav{overflow-x:auto;padding-bottom:6px;}.pt-step-btn{border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:9999px;padding:8px 18px;font-size:0.875rem;font-weight:600;display:inline-flex;align-items:center;gap:8px;cursor:pointer;transition:all 0.2s ease;white-space:nowrap;}.pt-step-btn:hover{background:var(--surface-alt);border-color:var(--primary);color:var(--primary);}.pt-step-btn.active{background:var(--primary);border-color:var(--primary);color:var(--on-primary);}.pt-step-num{display:inline-block;font-size:0.75rem;font-weight:800;opacity:0.85;}.pt-step-btn.active .pt-step-num{opacity:1;}.pt-stage-display{border:1px solid var(--border);background:var(--surface);border-radius:3px;box-shadow:0 8px 24px rgba(16,65,58,0.06);}.pt-map-schematic{background:var(--surface-alt);border:1px solid var(--border);border-radius:3px;padding:16px;display:flex;flex-direction:column;gap:10px;}.pt-schematic-track{background:var(--surface);border:1px solid var(--border);border-radius:3px;padding:12px 14px;transition:all 0.25s ease;font-size:0.875rem;}.pt-schematic-track.pinned{border-left:4px solid var(--primary);}.pt-schematic-track.active-work{border-left:4px solid var(--accent-text);background:#ffffff;box-shadow:0 2px 8px rgba(19,108,95,0.08);}.pt-schematic-track.folded{border-left:4px solid var(--border);opacity:0.8;}.square-icon{width:54px;height:54px;border-radius:2px;background:var(--primary);color:var(--on-primary);display:inline-flex;align-items:center;justify-content:center;font-size:24px;}.pt-disclaimer-card{background:var(--surface);border:1px solid var(--border);border-radius:3px;}@media(max-width:767px){.pt-guide-block{padding:48px 0;}.pt-step-btn{font-size:0.8rem;padding:6px 12px;}.pt-workflow-nav{justify-content:flex-start !important;flex-wrap:nowrap !important;overflow-x:auto;-webkit-overflow-scrolling:touch;}}

/* ===== PAGE: focus-maps ===== */
.focus-maps-header .hm-title {
  color: var(--text);
  font-size: 2.25rem;
  font-weight: 700;
  line-height: 1.25;
}

.focus-maps-listing .hm-title {
  color: var(--text);
  font-size: 2rem;
  font-weight: 700;
  line-height: 1.25;
}

.focus-filter-bar {
  margin-top: 1rem;
}

.focus-filter-btn {
  border: 1px solid var(--border);
  background: var(--surface);
  color: var(--text);
  padding: 8px 20px;
  border-radius: 9999px;
  font-size: 0.875rem;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.2s ease;
}

.focus-filter-btn:hover,
.focus-filter-btn.active {
  background: var(--primary);
  color: var(--on-primary);
  border-color: var(--primary);
}

.focus-divider-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1px;
  background-color: var(--border);
  border: 1px solid var(--border);
  border-radius: 3px;
  overflow: hidden;
}

.focus-grid-item {
  background-color: var(--surface);
  padding: 24px;
  display: flex;
  flex-direction: column;
  text-align: center;
  transition: background-color 0.2s ease;
}

.focus-grid-item:hover {
  background-color: var(--surface-alt);
}

.focus-item-media-wrap {
  width: 100%;
  aspect-ratio: 3 / 2;
  overflow: hidden;
  border-radius: 2px;
  background-color: var(--border);
}

.focus-grid-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.3s ease;
}

.focus-grid-item:hover .focus-grid-img {
  transform: scale(1.03);
}

.focus-item-title {
  font-size: 1.15rem;
  font-weight: 700;
  line-height: 1.35;
  margin: 0;
}

.focus-title-link {
  color: var(--text);
  text-decoration: none;
  transition: color 0.2s ease;
}

.focus-title-link:hover {
  color: var(--primary);
}

.focus-item-desc {
  font-size: 0.925rem;
  line-height: 1.55;
}

.focus-detail-link {
  display: inline-flex;
  align-items: center;
  color: var(--primary-text);
  font-size: 0.9rem;
  font-weight: 700;
  text-decoration: underline;
  text-underline-offset: 4px;
  transition: color 0.2s ease;
}

.focus-detail-link:hover {
  color: var(--primary-hover);
}

.focus-request-card {
  background-color: var(--surface);
  border: 1px solid var(--border);
  border-radius: 3px;
  box-shadow: 0 8px 24px rgba(16, 65, 58, 0.05);
}

.focus-input {
  border: 1px solid var(--border);
  background-color: var(--surface);
  color: var(--text);
  padding: 10px 14px;
  border-radius: 4px;
}

.focus-input:focus {
  border-color: var(--primary);
  box-shadow: 0 0 0 3px rgba(19, 108, 95, 0.15);
  outline: none;
}

.focus-input::placeholder {
  color: var(--text-muted);
  opacity: 0.85;
}

@media (max-width: 991px) {
  .focus-divider-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 767px) {
  .focus-divider-grid {
    grid-template-columns: 1fr;
  }
  .focus-maps-header .hm-title {
    font-size: 1.625rem;
  }
  .focus-maps-listing .hm-title {
    font-size: 1.5rem;
  }
  .focus-grid-item {
    padding: 18px;
  }
}

/* ===== PAGE: session-workflows ===== */
.sf-category-header .sf-filter-pills {
  margin-top: 1.5rem;
}

.sf-category-header .sf-filter-btn {
  background: var(--surface);
  border: 1px solid var(--border);
  color: var(--text);
  font-weight: 600;
  font-size: 0.9rem;
  padding: 8px 20px;
  border-radius: 9999px;
  cursor: pointer;
  transition: all 0.2s ease;
}

.sf-category-header .sf-filter-btn:hover {
  border-color: var(--primary);
  color: var(--primary);
  background: var(--surface-alt);
}

.sf-category-header .sf-filter-btn.active {
  background: var(--primary);
  border-color: var(--primary);
  color: var(--on-primary);
}

.sf-workflows-block .sf-rows-wrapper {
  max-width: 1140px;
  margin: 0 auto;
}

.sf-workflows-block .sf-wide-row {
  display: grid;
  grid-template-columns: 220px 1fr auto;
  gap: 2rem;
  align-items: center;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 3px;
  padding: 24px;
  box-shadow: 0 4px 18px rgba(16, 65, 58, 0.04);
  transition: transform 0.26s ease, box-shadow 0.26s ease;
}

.sf-workflows-block .sf-wide-row:hover {
  transform: translateY(-3px);
  box-shadow: 0 12px 28px rgba(16, 65, 58, 0.08);
}

.sf-workflows-block .sf-row-media {
  width: 100%;
  max-width: 220px;
}

.sf-workflows-block .sf-media-link {
  display: block;
  width: 100%;
  aspect-ratio: 3 / 4;
  overflow: hidden;
  border-radius: 2px;
  background: var(--surface-alt);
}

.sf-workflows-block .sf-media-link img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.35s ease;
}

.sf-workflows-block .sf-wide-row:hover .sf-media-link img {
  transform: scale(1.04);
}

.sf-workflows-block .sf-row-content {
  text-align: center;
  padding: 0 12px;
}

.sf-workflows-block .sf-row-title {
  font-size: 1.25rem;
  line-height: 1.35;
  font-weight: 700;
}

.sf-workflows-block .sf-title-link {
  color: var(--text);
  transition: color 0.2s ease;
}

.sf-workflows-block .sf-title-link:hover {
  color: var(--primary);
}

.sf-workflows-block .sf-link-underlined {
  color: var(--primary);
  font-weight: 600;
  font-size: 0.95rem;
  text-decoration: underline;
  text-underline-offset: 4px;
  display: inline-block;
  transition: color 0.2s ease;
}

.sf-workflows-block .sf-link-underlined:hover {
  color: var(--primary-hover);
}

.sf-workflows-block .sf-row-action {
  display: flex;
  justify-content: center;
  align-items: center;
  min-width: 160px;
}

@media (max-width: 991px) {
  .sf-workflows-block .sf-wide-row {
    grid-template-columns: 180px 1fr auto;
    gap: 1.5rem;
    padding: 20px;
  }
  .sf-workflows-block .sf-row-media {
    max-width: 180px;
  }
}

@media (max-width: 767px) {
  .sf-workflows-block .sf-wide-row {
    grid-template-columns: 1fr;
    text-align: center;
    gap: 1.25rem;
    padding: 20px 16px;
  }

  .sf-workflows-block .sf-row-media {
    max-width: 240px;
    margin: 0 auto;
  }

  .sf-workflows-block .sf-row-content {
    padding: 0;
  }

  .sf-workflows-block .sf-row-action {
    width: 100%;
    margin-top: 0.5rem;
  }

  .sf-workflows-block .sf-row-action .hm-btn {
    width: 100%;
    text-align: center;
    justify-content: center;
  }
}

/* ===== PAGE: session-cases ===== */
.sc-category-header .sc-stat-card {
  background-color: var(--surface);
  border: 1px solid var(--border);
  border-radius: 3px;
}
.sc-category-header .sc-badge-icon {
  width: 40px;
  height: 40px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background-color: var(--primary);
  color: var(--on-primary);
  border-radius: 2px;
  font-size: 18px;
}
.sc-category-header .sc-framework-card {
  background-color: var(--surface);
  border: 1px solid var(--border);
  border-radius: 3px;
  box-shadow: 0 8px 24px rgba(16, 65, 58, 0.05);
}
.sc-category-header .sc-checklist li span {
  color: var(--text);
  font-size: 14px;
  line-height: 1.5;
}
.sc-cases-list .sc-section-desc {
  max-width: 680px;
}
.sc-cases-list .sc-filter-btn {
  border: 1px solid var(--border);
  background: var(--surface);
  color: var(--text);
  padding: 8px 18px;
  border-radius: 9999px;
  font-size: 14px;
  font-weight: 600;
  transition: all 0.2s ease;
}
.sc-cases-list .sc-filter-btn:hover {
  border-color: var(--primary);
  color: var(--primary-text);
}
.sc-cases-list .sc-filter-btn.active {
  background: var(--primary);
  color: var(--on-primary);
  border-color: var(--primary);
}
.sc-cases-list .sc-media-square {
  aspect-ratio: 1 / 1;
  width: 100%;
  overflow: hidden;
  border-radius: 2px;
}
.sc-cases-list .sc-media-square img {
  object-fit: cover;
  transition: transform 0.3s ease;
}
.sc-cases-list .hm-card:hover .sc-media-square img {
  transform: scale(1.02);
}
.sc-cases-list .sc-card-link {
  color: var(--text);
  text-decoration: none;
  transition: color 0.2s ease;
}
.sc-cases-list .sc-card-link:hover {
  color: var(--primary);
  text-decoration: underline;
}
.sc-cases-list .sc-card-title {
  font-size: 26px;
  font-weight: 700;
  line-height: 1.3;
}
.sc-cases-list .sc-grid-title {
  font-size: 20px;
  font-weight: 700;
  line-height: 1.35;
}
.sc-cases-list .sc-meta-tag {
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--text-muted);
}
.sc-cases-list .sc-zone-breakdown {
  background-color: var(--surface-alt);
  border: 1px solid var(--border);
  border-radius: 2px;
}
.sc-cases-list .sc-zone-label {
  font-size: 12px;
  font-weight: 800;
  color: var(--primary);
  letter-spacing: 0.06em;
}
.sc-cases-list .sc-zone-text {
  line-height: 1.4;
}
.sc-cases-list .sc-featured-card {
  border-radius: 3px;
  padding: 24px;
  background: var(--surface);
  border: 1px solid var(--border);
  box-shadow: 0 8px 24px rgba(16, 65, 58, 0.06);
  transition: transform 0.26s ease, box-shadow 0.26s ease;
}
.sc-cases-list .sc-featured-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 14px 28px rgba(16, 65, 58, 0.09);
}
.sc-cases-list .sc-grid-card {
  border-radius: 3px;
  padding: 24px;
  background: var(--surface);
  border: 1px solid var(--border);
  box-shadow: 0 8px 24px rgba(16, 65, 58, 0.06);
  transition: transform 0.26s ease, box-shadow 0.26s ease;
}
.sc-cases-list .sc-grid-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 14px 28px rgba(16, 65, 58, 0.09);
}
@media (max-width: 767px) {
  .sc-cases-list .sc-card-title {
    font-size: 18px;
  }
  .sc-cases-list .sc-grid-title {
    font-size: 16px;
  }
  .sc-cases-list .sc-featured-card,
  .sc-cases-list .sc-grid-card {
    padding: 16px;
  }
  .sc-cases-list .sc-filter-btn {
    width: 100%;
    text-align: center;
  }
}

/* ===== PAGE: knowledge-base ===== */
.kb-header-block .kb-header-desc{color:var(--text-muted);font-size:1.125rem;line-height:1.6;margin-left:auto;margin-right:auto;max-width:720px}.kb-header-block .kb-controls-wrap{max-width:680px;margin:0 auto}.kb-header-block .kb-search-box{max-width:540px;margin-left:auto;margin-right:auto}.kb-header-block .kb-search-icon{left:18px;top:50%;transform:translateY(-50%);color:var(--primary);font-size:1.25rem;pointer-events:none;z-index:2}.kb-header-block .kb-search-input{padding:12px 18px 12px 46px;border-radius:9999px;border:1px solid var(--border);background-color:var(--surface);color:var(--text);font-size:0.95rem;transition:border-color .2s ease,box-shadow .2s ease}.kb-header-block .kb-search-input:focus{background-color:var(--surface);border-color:var(--primary);box-shadow:0 0 0 3px rgba(19,108,95,.15);color:var(--text)}.kb-header-block .kb-search-input::placeholder{color:var(--text-muted);opacity:.85}.kb-header-block .kb-filter-pill{cursor:pointer;border:1px solid var(--border);background-color:var(--surface);color:var(--text);font-size:0.8125rem;font-weight:600;padding:7px 18px;border-radius:9999px;transition:all .2s ease}.kb-header-block .kb-filter-pill:hover{border-color:var(--primary);color:var(--primary-hover)}.kb-header-block .kb-filter-pill.active{background-color:var(--primary);border-color:var(--primary);color:var(--on-primary)}.kb-articles-block .kb-list-lead{font-size:0.95rem}.kb-articles-block .kb-article-card{background-color:var(--surface);border:1px solid var(--border);border-radius:3px;box-shadow:0 8px 24px rgba(16,65,58,.04);transition:transform .26s ease,box-shadow .26s ease;overflow:hidden}.kb-articles-block .kb-article-card:hover{transform:translateY(-3px);box-shadow:0 14px 28px rgba(16,65,58,.09)}.kb-articles-block .kb-media-wrap{width:100%;aspect-ratio:4/3}.kb-articles-block .kb-article-img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .35s ease}.kb-articles-block .kb-article-card:hover .kb-article-img{transform:scale(1.03)}.kb-articles-block .kb-category-tag{top:12px;left:12px;background-color:var(--primary);color:var(--on-primary);font-size:0.75rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;padding:4px 10px;border-radius:2px;z-index:2}.kb-articles-block .kb-card-content{padding:20px 18px 18px;width:100%}.kb-articles-block .kb-featured-card .kb-card-content{padding:24px 22px 20px}.kb-articles-block .kb-meta-row{color:var(--text-muted);font-size:0.8125rem;line-height:1.4}.kb-articles-block .kb-article-title{font-size:1.15rem;font-weight:700;line-height:1.35;overflow-wrap:anywhere}.kb-articles-block .kb-featured-card .kb-article-title{font-size:1.35rem;font-weight:800}.kb-articles-block .kb-title-link{color:var(--text);text-decoration:none;transition:color .2s ease}.kb-articles-block .kb-title-link:hover{color:var(--primary)}.kb-articles-block .kb-article-summary{color:var(--text-muted);font-size:0.875rem;line-height:1.55;overflow-wrap:anywhere}.kb-articles-block .kb-featured-card .kb-article-summary{font-size:0.925rem}.kb-articles-block .kb-action-btn{border-radius:9999px;padding:10px 20px;font-size:0.875rem;font-weight:700;border:none;background-color:var(--primary);color:var(--on-primary);text-decoration:none;transition:background-color .2s ease,color .2s ease}.kb-articles-block .kb-action-btn:hover{background-color:var(--primary-hover);color:var(--on-primary)}.kb-articles-block .kb-newsletter-panel{background-color:var(--surface-alt);border-color:var(--border)!important}.kb-articles-block .kb-email-field{background-color:var(--surface);border:1px solid var(--border);color:var(--text);padding:12px 18px;border-radius:9999px 0 0 9999px}.kb-articles-block .kb-email-field:focus{background-color:var(--surface);border-color:var(--primary);color:var(--text);box-shadow:none}.kb-articles-block .kb-email-field::placeholder{color:var(--text-muted);opacity:.85}.kb-articles-block .kb-subscribe-btn{border-radius:0 9999px 9999px 0;white-space:nowrap}.kb-articles-block .form-check-input:checked{background-color:var(--primary);border-color:var(--primary)}@media (max-width:767px){.kb-articles-block .kb-featured-row .col-12,.kb-articles-block .kb-compact-grid .col-12{width:100%}.kb-articles-block .kb-article-title{font-size:1.05rem}.kb-articles-block .kb-featured-card .kb-article-title{font-size:1.15rem}.kb-articles-block .kb-email-field{border-radius:9999px;margin-bottom:10px}.kb-articles-block .kb-subscribe-btn{border-radius:9999px;width:100%}.kb-articles-block .input-group{display:flex;flex-direction:column}}

/* ===== PAGE: faq ===== */
.faq-matrix-section {
  background-color: var(--bg);
  color: var(--text);
}

.faq-matrix-section .faq-matrix-lead {
  max-width: 680px;
  color: var(--text-muted);
  font-size: 1.05rem;
  line-height: 1.6;
}

.faq-matrix-section .faq-control-panel {
  background-color: var(--surface);
  border: 1px solid var(--border);
  border-radius: 4px;
  box-shadow: 0 4px 16px rgba(16, 65, 58, 0.04);
}

.faq-matrix-section .faq-search-wrapper {
  position: relative;
  display: flex;
  align-items: center;
  width: 100%;
}

.faq-matrix-section .faq-search-icon {
  position: absolute;
  left: 14px;
  font-size: 1.15rem;
  color: var(--text-muted);
  pointer-events: none;
}

.faq-matrix-section .faq-search-input {
  width: 100%;
  height: 44px;
  padding: 8px 38px 8px 42px;
  font-family: inherit;
  font-size: 0.95rem;
  color: var(--text);
  background-color: var(--surface-alt);
  border: 1px solid var(--border);
  border-radius: 9999px;
  transition: border-color 0.2s ease, box-shadow 0.2s ease, background-color 0.2s ease;
}

.faq-matrix-section .faq-search-input::placeholder {
  color: var(--text-muted);
  opacity: 0.9;
}

.faq-matrix-section .faq-search-input:focus {
  outline: none;
  background-color: var(--surface);
  border-color: var(--primary);
  box-shadow: 0 0 0 3px rgba(19, 108, 95, 0.15);
}

.faq-matrix-section .faq-search-clear {
  position: absolute;
  right: 12px;
  background: none;
  border: none;
  padding: 4px;
  color: var(--text-muted);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
}

.faq-matrix-section .faq-search-clear:hover {
  color: var(--text);
}

.faq-matrix-section .faq-filter-chip {
  background-color: var(--surface-alt);
  color: var(--text);
  border: 1px solid var(--border);
  border-radius: 9999px;
  padding: 8px 18px;
  font-size: 0.85rem;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.2s ease;
}

.faq-matrix-section .faq-filter-chip:hover {
  background-color: var(--primary);
  color: var(--on-primary);
  border-color: var(--primary);
}

.faq-matrix-section .faq-filter-chip.is-active {
  background-color: var(--primary);
  color: var(--on-primary);
  border-color: var(--primary);
}

.faq-matrix-section .faq-card {
  background-color: var(--surface);
  border: 1px solid var(--border);
  border-radius: 3px;
  padding: 24px;
  box-shadow: 0 6px 18px rgba(16, 65, 58, 0.04);
  transition: transform 0.26s ease, box-shadow 0.26s ease, border-color 0.26s ease;
}

.faq-matrix-section .faq-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 14px 28px rgba(16, 65, 58, 0.08);
  border-color: var(--primary);
}

.faq-matrix-section .faq-card-num {
  font-size: 0.85rem;
  font-weight: 700;
  color: var(--text-muted);
  letter-spacing: 0.06em;
}

.faq-matrix-section .faq-question-title {
  font-size: 1.15rem;
  line-height: 1.4;
  font-weight: 700;
  color: var(--text);
}

.faq-matrix-section .faq-answer-text {
  font-size: 0.925rem;
  line-height: 1.6;
  color: var(--text-muted);
}

.faq-matrix-section .faq-meta-tag {
  font-size: 0.8rem;
  font-weight: 600;
  color: var(--text-muted);
  display: inline-flex;
  align-items: center;
}

.faq-matrix-section .faq-card-link {
  font-size: 0.85rem;
  font-weight: 700;
  color: var(--primary-text);
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  transition: color 0.2s ease;
}

.faq-matrix-section .faq-card-link:hover {
  color: var(--primary-hover);
  text-decoration: underline;
}

.faq-matrix-section .faq-no-results-icon {
  width: 58px;
  height: 58px;
  border-radius: 50%;
  background-color: var(--surface-alt);
  color: var(--primary);
  font-size: 1.5rem;
}

.faq-matrix-section .faq-support-strip {
  background-color: var(--surface-alt);
  border: 1px solid var(--border);
  border-radius: 4px;
}

@media (max-width: 767px) {
  .faq-matrix-section .faq-question-title {
    font-size: 1rem;
  }
  .faq-matrix-section .faq-answer-text {
    font-size: 0.875rem;
  }
  .faq-matrix-section .faq-filter-group {
    justify-content: flex-start !important;
  }
  .faq-matrix-section .faq-support-strip .hm-btn {
    width: 100%;
  }
}

/* ===== PAGE: about ===== */
.about-block .about-primary-img {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  border: 1px solid var(--border);
  box-shadow: 0 8px 24px rgba(16, 65, 58, 0.08);
}
.about-block .about-badge-card {
  position: absolute;
  bottom: -20px;
  right: 20px;
  background: var(--surface);
  border: 1px solid var(--border);
  box-shadow: 0 10px 24px rgba(16, 65, 58, 0.12);
  border-radius: 2px;
}
.about-block .about-badge-card .hm-icon {
  width: 44px;
  height: 44px;
  background: var(--primary);
  flex-shrink: 0;
}
.about-block .about-badge-title {
  font-size: 14px;
  color: var(--text);
  line-height: 1.2;
}
.about-block .about-badge-sub {
  font-size: 12px;
  color: var(--text-muted);
}
.about-block .about-checklist li {
  font-size: 15px;
  color: var(--text);
  line-height: 1.5;
}
.about-block .about-icon-check {
  color: var(--primary);
  flex-shrink: 0;
  margin-top: 2px;
}
.about-block .about-card {
  background: var(--surface-alt);
  border: 1px solid var(--border);
  border-radius: 3px;
  padding: 28px 20px;
  transition: transform 0.25s ease, box-shadow 0.25s ease;
}
.about-block .about-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 10px 24px rgba(16, 65, 58, 0.08);
}
.about-block .about-card-badge {
  width: 48px;
  height: 48px;
  background: var(--primary);
  border-radius: 2px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.about-block .about-interactive-box {
  background: var(--surface-alt);
  border: 1px solid var(--border);
  border-radius: 3px;
}
.about-block .about-tab-btn {
  border: 1px solid var(--border);
  background: var(--surface);
  color: var(--text-muted);
  font-size: 14px;
  font-weight: 600;
  padding: 8px 18px;
  border-radius: 9999px;
  cursor: pointer;
  transition: all 0.2s ease;
}
.about-block .about-tab-btn:hover {
  color: var(--text);
  border-color: var(--primary);
}
.about-block .about-tab-btn.active {
  background: var(--primary);
  color: var(--on-primary);
  border-color: var(--primary);
}
.about-block .about-stage-display {
  border-radius: 2px;
}
.about-block .about-cta-panel {
  background: var(--dark-band);
  border-radius: 3px;
}
.about-block .about-btn-white {
  background: #FFFFFF;
  color: #10413A;
  font-weight: 700;
  padding: 12px 30px;
  border-radius: 9999px;
  text-decoration: none;
  display: inline-block;
  transition: background-color 0.2s ease, color 0.2s ease;
}
.about-block .about-btn-white:hover {
  background: #EEF6F5;
  color: #0E4E44;
}
.about-block .max-w-700 {
  max-width: 700px;
}
@media (min-width: 768px) {
  .about-block .border-start-md {
    border-left: 1px solid var(--border);
  }
}
@media (max-width: 767px) {
  .about-block .about-badge-card {
    position: static;
    margin-top: 16px;
    width: 100%;
  }
  .about-block .about-tab-nav {
    width: 100%;
  }
  .about-block .about-tab-btn {
    flex: 1 1 auto;
    text-align: center;
    padding: 8px 12px;
  }
}

/* ===== PAGE: contact ===== */
.sfa-contact-section{color:var(--text);overflow:hidden}.sfa-contact-section .sfa-contact-lead{color:var(--text-muted);font-size:16px;line-height:1.6;margin-bottom:0}.sfa-contact-section .sfa-info-card{background:var(--surface);border:1px solid var(--border);border-radius:3px;padding:20px;box-shadow:0 4px 14px rgba(16,65,58,0.04);transition:transform 0.25s ease,box-shadow 0.25s ease}.sfa-contact-section .sfa-info-card:hover{transform:translateY(-2px);box-shadow:0 8px 20px rgba(16,65,58,0.08)}.sfa-contact-section .sfa-info-icon{width:46px;height:46px;min-width:46px;background:var(--primary);color:var(--on-primary);border-radius:2px;display:flex;align-items:center;justify-content:center;font-size:22px}.sfa-contact-section .sfa-info-label{font-size:15px;font-weight:700;color:var(--text);line-height:1.3}.sfa-contact-section .sfa-info-value{font-size:14px;color:var(--text-muted);line-height:1.5;overflow-wrap:anywhere}.sfa-contact-section .sfa-info-link{font-size:14px;color:var(--primary-text);text-decoration:none;font-weight:600;line-height:1.5;overflow-wrap:anywhere;transition:color 0.2s ease}.sfa-contact-section .sfa-info-link:hover{color:var(--primary-hover);text-decoration:underline}.sfa-contact-section .sfa-operating-hours{background:var(--surface-alt);border:1px solid var(--border);border-radius:3px}.sfa-contact-section .sfa-clock-icon{color:var(--primary-text);font-size:18px}.sfa-contact-section .sfa-hours-title{font-size:14px;font-weight:700;color:var(--text);letter-spacing:0.02em}.sfa-contact-section .sfa-hours-desc{font-size:13px;color:var(--text-muted);line-height:1.5}.sfa-contact-section .sfa-form-card{background:var(--surface);border:1px solid var(--border);border-radius:3px;padding:32px 28px;box-shadow:0 8px 24px rgba(16,65,58,0.06)}.sfa-contact-section .sfa-field-wrap{display:flex;flex-direction:column;gap:6px}.sfa-contact-section .sfa-field-label{font-size:14px;font-weight:600;color:var(--text);margin-bottom:0}.sfa-contact-section .sfa-required{color:var(--primary-text);font-weight:700}.sfa-contact-section .sfa-input,.sfa-contact-section .sfa-select,.sfa-contact-section .sfa-textarea{background-color:var(--surface-alt);border:1px solid var(--border);color:var(--text);border-radius:3px;padding:12px 14px;font-size:14px;line-height:1.5;transition:border-color 0.2s ease,box-shadow 0.2s ease}.sfa-contact-section .sfa-input::placeholder,.sfa-contact-section .sfa-textarea::placeholder{color:var(--text-muted);opacity:0.8}.sfa-contact-section .sfa-input:focus,.sfa-contact-section .sfa-select:focus,.sfa-contact-section .sfa-textarea:focus{background-color:var(--surface);border-color:var(--primary);box-shadow:0 0 0 3px rgba(19,108,95,0.15);outline:none;color:var(--text)}.sfa-contact-section .sfa-consent-check{display:flex;align-items:flex-start;gap:10px;padding-left:0;margin-top:4px}.sfa-contact-section .sfa-checkbox{margin-left:0;margin-top:3px;width:18px;height:18px;min-width:18px;border:1px solid var(--border);border-radius:3px;background-color:var(--surface-alt);cursor:pointer}.sfa-contact-section .sfa-checkbox:checked{background-color:var(--primary);border-color:var(--primary)}.sfa-contact-section .sfa-consent-label{font-size:13px;color:var(--text-muted);line-height:1.5;cursor:pointer}.sfa-contact-section .sfa-consent-link{color:var(--primary-text);text-decoration:underline;font-weight:600}.sfa-contact-section .sfa-consent-link:hover{color:var(--primary-hover)}.sfa-contact-section .sfa-submit-btn{border-radius:9999px;padding:14px 28px;font-weight:700;font-size:15px;letter-spacing:0.02em;border:none;cursor:pointer;background-color:var(--primary);color:var(--on-primary);transition:background-color 0.2s ease,transform 0.2s ease}.sfa-contact-section .sfa-submit-btn:hover{background-color:var(--primary-hover);color:var(--on-primary);transform:translateY(-1px)}@media(max-width:767px){.sfa-contact-section .sfa-form-card{padding:24px 16px}.sfa-contact-section .sfa-info-card{padding:16px}.sfa-contact-section h2.hm-title{font-size:22px}.sfa-contact-section h3.sfa-info-label{font-size:14px}}

/* ===== PAGE: privacy ===== */
.privacy-policy-section .privacy-sidebar { border: 1px solid var(--border); border-radius: 3px; background-color: var(--surface); box-shadow: 0 8px 24px rgba(16, 65, 58, 0.05); top: 96px; z-index: 10; }
.privacy-policy-section .privacy-search-box .form-control { border-color: var(--border); font-size: 14px; color: var(--text); padding: 10px 14px; }
.privacy-policy-section .privacy-search-box .form-control:focus { box-shadow: none; border-color: var(--primary); }
.privacy-policy-section .privacy-search-box .input-group-text { border-color: var(--border); }
.privacy-policy-section .privacy-nav-btn { background: transparent; border: 1px solid transparent; border-radius: 3px; padding: 10px 14px; color: var(--text-muted); font-size: 14px; font-weight: 600; width: 100%; transition: all 0.2s ease; display: flex; align-items: center; }
.privacy-policy-section .privacy-nav-btn:hover { background-color: var(--surface-alt); color: var(--primary-text); }
.privacy-policy-section .privacy-nav-btn.active { background-color: var(--surface-alt); color: var(--primary-text); border-color: var(--border); border-left: 3px solid var(--primary); }
.privacy-policy-section .privacy-card { border: 1px solid var(--border); border-radius: 3px; background-color: var(--surface); box-shadow: 0 6px 18px rgba(16, 65, 58, 0.04); scroll-margin-top: 110px; }
.privacy-policy-section .privacy-card p { color: var(--text-muted); line-height: 1.65; }
.privacy-policy-section .privacy-list { color: var(--text-muted); padding-left: 20px; margin-bottom: 0; line-height: 1.6; }
.privacy-policy-section .privacy-list li { margin-bottom: 8px; }
.privacy-policy-section .privacy-subcard { background-color: var(--surface-alt); border: 1px solid var(--border); border-radius: 3px; }
.privacy-policy-section .privacy-sidebar-footer a { font-size: 14px; }
@media (max-width: 767px) { .privacy-policy-section .privacy-sidebar { position: static !important; margin-bottom: 24px; } .privacy-policy-section .privacy-card { padding: 20px 16px !important; } }

/* ===== PAGE: terms ===== */
.terms-section { background-color: var(--bg); color: var(--text); }
.terms-section .terms-sidebar { position: sticky; top: 100px; }
.terms-section .terms-nav-card { background: var(--surface); border: 1px solid var(--border); border-radius: 3px; box-shadow: 0 8px 24px rgba(16, 65, 58, 0.05); }
.terms-section .terms-nav-title { font-size: 19px; font-weight: 700; color: var(--text); line-height: 1.3; }
.terms-section .terms-nav-note { font-size: 13px; color: var(--text-muted); line-height: 1.5; }
.terms-section .terms-nav-item { font-size: 14px; font-weight: 600; color: var(--text); text-decoration: none; padding: 10px 14px; border-radius: 4px; background: var(--surface-alt); border: 1px solid var(--border); transition: all 0.2s ease; }
.terms-section .terms-nav-item:hover, .terms-section .terms-nav-item.active { background: var(--primary); color: var(--on-primary); border-color: var(--primary); transform: translateX(3px); }
.terms-section .terms-nav-item:hover i, .terms-section .terms-nav-item.active i { color: var(--on-primary); }
.terms-section .terms-help-box { background: var(--surface-alt); border: 1px solid var(--border); border-radius: 3px; }
.terms-section .terms-content-header { border-bottom: 1px solid var(--border); padding-bottom: 24px; }
.terms-section .terms-article-block { background: var(--surface); border: 1px solid var(--border); border-radius: 3px; box-shadow: 0 8px 24px rgba(16, 65, 58, 0.04); }
.terms-section .terms-section-index { display: inline-flex; align-items: center; justify-content: center; width: 34px; height: 34px; background: var(--surface-alt); color: var(--primary); font-size: 14px; font-weight: 800; border-radius: 2px; border: 1px solid var(--border); }
.terms-section .terms-section-title { font-size: 21px; font-weight: 700; color: var(--text); line-height: 1.3; }
.terms-section .terms-styled-list { list-style: none; padding-left: 0; margin-bottom: 0; }
.terms-section .terms-styled-list li { font-size: 15px; color: var(--text); line-height: 1.6; }
.terms-section .terms-inner-box { background: var(--surface-alt); border: 1px solid var(--border); border-radius: 3px; }
.terms-section .terms-box-title { font-size: 16px; font-weight: 700; color: var(--text); margin-bottom: 8px; }
.terms-section .terms-inline-link { color: var(--primary-text); font-weight: 600; text-decoration: underline; text-underline-offset: 3px; transition: color 0.2s ease; }
.terms-section .terms-inline-link:hover { color: var(--primary-hover); }
.terms-section .terms-cta-strip { background: var(--surface-alt); border: 1px solid var(--border); border-radius: 3px; }
@media (max-width: 991px) {
  .terms-section .terms-sidebar { position: static; margin-bottom: 24px; }
}
@media (max-width: 767px) {
  .terms-section .terms-article-block { padding: 20px 16px; }
  .terms-section .terms-section-title { font-size: 18px; }
  .terms-section .terms-inner-box { margin-bottom: 12px; }
}

/* ===== PAGE: disclaimer ===== */
.disclaimer-content-section{background-color:var(--bg);color:var(--text);font-family:var(--typography-font-family);overflow:hidden}.disclaimer-content-section .disclaimer-intro{font-size:1.0625rem;line-height:1.6;max-width:760px;margin-left:auto;margin-right:auto}.disclaimer-content-section .hm-card{background:var(--surface);border:1px solid var(--border);border-radius:3px;box-shadow:0 8px 24px rgba(16,65,58,0.04);transition:transform 260ms ease,box-shadow 260ms ease}.disclaimer-content-section .hm-card:hover{transform:translateY(-2px);box-shadow:0 12px 28px rgba(16,65,58,0.08)}.disclaimer-content-section .disclaimer-icon-badge{width:46px;height:46px;background-color:var(--primary);border-radius:2px}.disclaimer-content-section .disclaimer-highlight-box{background-color:var(--surface-alt);border:1px solid var(--border);border-left:4px solid var(--primary);border-radius:3px}.disclaimer-content-section .hm-btn{background-color:var(--primary);color:var(--on-primary);border-radius:9999px;padding:12px 28px;text-decoration:none;border:none;transition:background-color 200ms ease,color 200ms ease}.disclaimer-content-section .hm-btn:hover{background-color:var(--primary-hover);color:var(--on-primary)}@media(max-width:767px){.disclaimer-content-section .hm-title{font-size:1.625rem;line-height:1.3}.disclaimer-content-section .hm-card{padding:1.5rem}.disclaimer-content-section .disclaimer-highlight-box{padding:1.5rem}}

.comment-card.main-comment-card {
    background: #FFFFFF;
    border: 1px solid #D8E4E2;
    border-radius: 3px;
    padding: 28px;
    box-shadow: 0 8px 24px rgba(16, 65, 58, 0.06);
    transition: transform 260ms ease, box-shadow 260ms ease;
    font-family: 'Asap', sans-serif;
    color: #1A2F2C
}

.comment-card.main-comment-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 14px 28px rgba(16, 65, 58, 0.09)
}

.avatar-initials {
    width: 46px;
    height: 46px;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-weight: 700;
    font-size: 16px;
    line-height: 1;
    letter-spacing: 0.02em;
    flex-shrink: 0;
    user-select: none;
    object-fit: cover
}

.avatar-initials--primary {
    background-color: #136C5F;
    color: #FFFFFF;
    border: 2px solid #D8E4E2
}

.avatar-initials img {
    width: 100%;
    height: 100%;
    border-radius: 50%;
    object-fit: cover;
    display: block
}

.comment-author {
    font-size: 17px;
    font-weight: 700;
    line-height: 1.3;
    color: #1A2F2C;
    letter-spacing: -0.01em
}

.comment-role {
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: #5A726E
}

.comment-role-wrapper {
    margin-top: 2px
}

.meta-separator {
    color: #D8E4E2;
    font-size: 10px
}

.comment-time {
    font-size: 13px;
    font-weight: 400;
    color: #5A726E
}

.comment-badge {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 12px;
    font-weight: 700;
    color: #136C5F;
    background: #EEF6F5;
    padding: 6px 12px;
    border-radius: 9999px;
    border: 1px solid #D8E4E2
}

.comment-badge i {
    font-size: 15px
}

.comment-body {
    padding-left: 0
}

.comment-text {
    font-size: 15px;
    line-height: 1.6;
    color: #5A726E;
    margin-bottom: 0
}

.comment-footer {
    border-color: #D8E4E2 !important
}

.comment-action-btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    background: transparent;
    border: 1px solid transparent;
    border-radius: 9999px;
    padding: 6px 14px;
    color: #5A726E;
    font-size: 13px;
    font-weight: 600;
    font-family: 'Asap', sans-serif;
    cursor: pointer;
    transition: all 200ms ease
}

.comment-action-btn:hover {
    background: #EEF6F5;
    color: #136C5F;
    border-color: #D8E4E2
}

.comment-action-btn:focus-visible {
    outline: 2px solid #136C5F;
    outline-offset: 2px
}

.like-count {
    font-weight: 700;
    color: #1A2F2C
}

.comment-metrics {
    font-size: 12px;
    font-weight: 700;
    color: #5A726E;
    letter-spacing: 0.04em
}

.comment-metrics i {
    font-size: 15px;
    color: #136C5F
}

@media (max-width:767.98px) {
    .comment-card.main-comment-card {
        padding: 20px
    }

    .comment-header {
        flex-direction: column;
        align-items: flex-start !important;
        gap: 12px
    }

    .comment-badge {
        align-self: flex-start
    }

    .comment-footer {
        flex-direction: column;
        align-items: flex-start !important;
        gap: 12px
    }

    .comment-metrics {
        width: 100%;
        justify-content: flex-start
    }
}

.reply-thread {
    border-left: 2px solid #D8E4E2;
    margin-top: 12px;
    margin-bottom: 16px
}

.comment-card.reply-comment-card {
    background: #EEF6F5;
    border: 1px solid #D8E4E2;
    border-radius: 3px;
    padding: 20px;
    font-family: 'Asap', sans-serif;
    color: #1A2F2C;
    transition: border-color 200ms ease
}

.comment-card.reply-comment-card:hover {
    border-color: #136C5F
}

.avatar-initials--reply {
    width: 38px;
    height: 38px;
    background-color: #10413A;
    color: #FFFFFF;
    border: 1px solid #D8E4E2;
    font-size: 14px;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-weight: 700;
    line-height: 1;
    letter-spacing: 0.02em;
    flex-shrink: 0;
    user-select: none;
    object-fit: cover
}

.avatar-initials--reply img {
    width: 100%;
    height: 100%;
    border-radius: 50%;
    object-fit: cover;
    display: block
}

.reply-comment-card .comment-author {
    font-size: 15px;
    font-weight: 700;
    line-height: 1.3;
    color: #1A2F2C
}

.comment-role--staff {
    color: #136C5F
}

.verified-staff-tag {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: #10413A;
    background: #FFFFFF;
    border: 1px solid #D8E4E2;
    padding: 4px 10px;
    border-radius: 9999px
}

.staff-dot {
    width: 6px;
    height: 6px;
    background: #40CD5A;
    border-radius: 50%
}

.reply-mention {
    color: #136C5F;
    font-weight: 700;
    background: #FFFFFF;
    padding: 2px 8px;
    border-radius: 3px;
    border: 1px solid #D8E4E2;
    font-size: 13px;
    display: inline-block;
    margin-right: 4px
}

.reply-comment-card .comment-text {
    font-size: 14px;
    line-height: 1.6;
    color: #5A726E;
    margin-bottom: 0
}

.reply-status {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-size: 12px;
    font-weight: 700;
    color: #238435
}

.reply-status i {
    font-size: 15px;
    color: #238435
}

@media (max-width:767.98px) {
    .comment-card.reply-comment-card {
        padding: 16px
    }

    .reply-thread {
        border-left-width: 1.5px;
        padding-left: 10px !important;
        margin-left: 4px !important
    }
}


/* ===== PAGE TEMPLATE: focus-maps ===== */
.fm-detail-hero {
    background: var(--hero-bg, linear-gradient(146deg, #10413A 0%, #12544A 100%));
    padding-top: 56px;
    padding-bottom: 56px;
}

.fm-detail-hero .fm-breadcrumbs {
    font-size: 13px;
    color: var(--on-dark-muted, #B6C3C1);
}

.fm-detail-hero .fm-crumb-link {
    color: var(--on-dark-muted, #B6C3C1);
    text-decoration: none;
    transition: color 0.2s ease;
}

.fm-detail-hero .fm-crumb-link:hover,
.fm-detail-hero .fm-crumb-link:focus {
    color: var(--on-dark, #FFFFFF);
    text-decoration: underline;
}

.fm-detail-hero .fm-crumb-divider {
    color: rgba(255, 255, 255, 0.4);
}

.fm-detail-hero .fm-crumb-current {
    color: var(--on-dark, #FFFFFF);
    font-weight: 600;
    max-width: 320px;
}

.fm-detail-hero .fm-hero-title {
    font-family: 'Asap', sans-serif;
    font-size: 44px;
    font-weight: 800;
    line-height: 1.2;
    color: #FFFFFF;
    overflow-wrap: anywhere;
}

.fm-detail-hero .fm-hero-subtitle {
    font-family: 'Asap', sans-serif;
    font-size: 17px;
    line-height: 1.6;
    color: var(--on-dark-muted, #B6C3C1);
    overflow-wrap: anywhere;
}

.fm-framed-section .fm-frame {
    background-color: var(--surface, #FFFFFF);
    border: 3px solid var(--border, #D8E4E2);
    border-radius: 12px;
    box-shadow: 0 16px 40px rgba(16, 65, 58, 0.07);
    overflow: hidden;
}

.fm-framed-section .fm-frame-inner {
    padding: 48px 40px;
}

.fm-framed-section .fm-key-facts {
    row-gap: 8px;
}

.fm-framed-section .fm-chip {
    display: inline-flex;
    align-items: center;
    background-color: rgba(19, 108, 95, 0.1);
    color: var(--primary, #136C5F);
    font-family: 'Asap', sans-serif;
    font-size: 13px;
    font-weight: 700;
    padding: 6px 14px;
    border-radius: 9999px;
    border: 1px solid rgba(19, 108, 95, 0.2);
    white-space: nowrap;
}

.fm-framed-section .fm-chip--neutral {
    background-color: var(--surface-alt, #EEF6F5);
    color: var(--text-muted, #5A726E);
    border-color: var(--border, #D8E4E2);
}

.fm-framed-section .fm-section-title {
    font-family: 'Asap', sans-serif;
    font-size: 28px;
    font-weight: 700;
    color: var(--text, #1A2F2C);
    line-height: 1.3;
    overflow-wrap: anywhere;
}

.fm-framed-section .fm-accent-line {
    width: 54px;
    height: 4px;
    background-color: var(--primary, #136C5F);
    border-radius: 2px;
}

.fm-framed-section .fm-single-media-wrap {
    width: 100%;
    border-radius: 10px;
    overflow: hidden;
    border: 1px solid var(--border, #D8E4E2);
    aspect-ratio: 16 / 9;
}

.fm-framed-section .fm-main-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.fm-framed-section .fm-prose-text p {
    font-family: 'Asap', sans-serif;
    font-size: 16px;
    line-height: 1.65;
    color: var(--text-muted, #5A726E);
    overflow-wrap: anywhere;
}

.fm-framed-section .fm-frame-divider {
    border: 0;
    border-top: 1px dashed var(--border, #D8E4E2);
    opacity: 1;
}

.fm-framed-section .fm-spec-card {
    background-color: var(--surface-alt, #EEF6F5);
    border: 1px solid var(--border, #D8E4E2);
    border-radius: 4px;
    padding: 24px;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.fm-framed-section .fm-spec-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 20px rgba(16, 65, 58, 0.08);
}

.fm-framed-section .fm-spec-icon-box {
    width: 44px;
    height: 44px;
    background-color: var(--primary, #136C5F);
    color: var(--on-primary, #FFFFFF);
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 3px;
    font-size: 22px;
}

.fm-framed-section .fm-spec-title {
    font-family: 'Asap', sans-serif;
    font-size: 18px;
    font-weight: 700;
    color: var(--text, #1A2F2C);
    overflow-wrap: anywhere;
}

.fm-framed-section .fm-spec-desc {
    font-family: 'Asap', sans-serif;
    font-size: 14px;
    line-height: 1.55;
    color: var(--text-muted, #5A726E);
    overflow-wrap: anywhere;
}

.fm-framed-section .fm-checklist-block {
    background-color: var(--surface-alt, #EEF6F5);
    border: 1px solid var(--border, #D8E4E2);
    border-radius: 6px;
    padding: 28px 24px;
}

.fm-framed-section .fm-check-glyph {
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background-color: var(--primary, #136C5F);
    color: var(--on-primary, #FFFFFF);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 16px;
    flex-shrink: 0;
    margin-top: 2px;
}

.fm-framed-section .fm-check-title {
    font-family: 'Asap', sans-serif;
    font-size: 16px;
    font-weight: 700;
    color: var(--text, #1A2F2C);
    overflow-wrap: anywhere;
}

.fm-framed-section .fm-check-desc {
    font-family: 'Asap', sans-serif;
    font-size: 14px;
    line-height: 1.55;
    color: var(--text-muted, #5A726E);
    overflow-wrap: anywhere;
}

.fm-framed-section .fm-form-panel {
    background-color: var(--surface-alt, #EEF6F5);
    border: 1px solid var(--border, #D8E4E2);
    border-radius: 6px;
}

.fm-framed-section .fm-label {
    font-family: 'Asap', sans-serif;
    font-size: 14px;
    font-weight: 700;
    color: var(--text, #1A2F2C);
    margin-bottom: 6px;
}

.fm-framed-section .fm-input {
    background-color: #FFFFFF;
    border: 1px solid var(--border, #D8E4E2);
    color: var(--text, #1A2F2C);
    border-radius: 4px;
    padding: 10px 14px;
    font-size: 15px;
}

.fm-framed-section .fm-input:focus {
    border-color: var(--primary, #136C5F);
    box-shadow: 0 0 0 3px rgba(19, 108, 95, 0.15);
}

.fm-framed-section .fm-input::placeholder {
    color: #8C9E9B;
    opacity: 1;
}

.fm-framed-section .fm-consent-label {
    font-size: 13px;
    color: var(--text-muted, #5A726E);
    line-height: 1.4;
}

.fm-framed-section .fm-policy-link {
    color: var(--primary, #136C5F);
    text-decoration: underline;
    text-underline-offset: 3px;
}

.fm-framed-section .fm-badge-counter {
    background-color: var(--surface-alt, #EEF6F5);
    border: 1px solid var(--border, #D8E4E2);
    color: var(--text, #1A2F2C);
    font-size: 13px;
    font-weight: 700;
    padding: 4px 12px;
    border-radius: 9999px;
}

.fm-framed-section .fm-empty-comments {
    background-color: var(--surface-alt, #EEF6F5);
    border: 1px dashed var(--border, #D8E4E2);
    border-radius: 4px;
}

.fm-framed-section .fm-empty-icon {
    font-size: 32px;
    color: var(--primary, #136C5F);
}

.fm-framed-section .fm-empty-text {
    font-size: 14px;
    color: var(--text-muted, #5A726E);
}

.fm-framed-section .fm-comment-form-wrap {
    background-color: var(--surface-alt, #EEF6F5);
    border: 1px solid var(--border, #D8E4E2);
    border-radius: 6px;
}

.fm-framed-section .fm-comment-form-title {
    font-family: 'Asap', sans-serif;
    font-size: 18px;
    font-weight: 700;
    color: var(--text, #1A2F2C);
}

.comment-card {
    background-color: #FFFFFF;
    border: 1px solid var(--border, #D8E4E2);
    border-radius: 4px;
    padding: 20px;
}

.avatar-initials {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 700;
    font-size: 14px;
    flex-shrink: 0;
}

.avatar-initials--primary {
    background-color: var(--primary, #136C5F);
    color: #FFFFFF;
}

.avatar-initials--reply {
    background-color: var(--dark-band, #10413A);
    color: #FFFFFF;
}

.comment-author {
    font-family: 'Asap', sans-serif;
    font-size: 15px;
    font-weight: 700;
    color: var(--text, #1A2F2C);
}

.comment-role {
    font-size: 12px;
    color: var(--text-muted, #5A726E);
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.comment-time {
    font-size: 12px;
    color: var(--text-muted, #5A726E);
}

.comment-badge {
    font-size: 12px;
    font-weight: 600;
    color: var(--accent-text, #238435);
    display: inline-flex;
    align-items: center;
    gap: 4px;
}

.comment-text {
    font-size: 14px;
    line-height: 1.6;
    color: var(--text, #1A2F2C);
    margin-bottom: 0;
    overflow-wrap: anywhere;
}

.comment-action-btn {
    background: none;
    border: 1px solid var(--border, #D8E4E2);
    border-radius: 9999px;
    padding: 4px 12px;
    font-size: 12px;
    color: var(--text, #1A2F2C);
    display: inline-flex;
    align-items: center;
    gap: 5px;
    cursor: pointer;
    transition: background-color 0.2s ease, border-color 0.2s ease;
}

.comment-action-btn:hover {
    background-color: var(--surface-alt, #EEF6F5);
    border-color: var(--primary, #136C5F);
}

.comment-action-btn.active {
    background-color: var(--primary, #136C5F);
    color: #FFFFFF;
    border-color: var(--primary, #136C5F);
}

.comment-metrics {
    font-size: 12px;
    color: var(--text-muted, #5A726E);
}

.fm-cta-banner {
    background: linear-gradient(168deg, #EEF6F5 0%, #F3F9F8 100%);
    border-top: 1px solid var(--border, #D8E4E2);
    border-bottom: 1px solid var(--border, #D8E4E2);
}

.fm-cta-banner .fm-cta-desc {
    font-family: 'Asap', sans-serif;
    font-size: 16px;
    color: var(--text-muted, #5A726E);
    line-height: 1.6;
    max-width: 640px;
    margin-left: auto;
    margin-right: auto;
}

.fm-related-section .fm-related-card {
    border: 1px solid var(--border, #D8E4E2);
    border-radius: 4px;
    background: #FFFFFF;
    box-shadow: 0 8px 24px rgba(16, 65, 58, 0.06);
    padding: 20px;
    transition: transform 0.26s ease, box-shadow 0.26s ease;
}

.fm-related-section .fm-related-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 14px 28px rgba(16, 65, 58, 0.12);
}

.fm-related-section .fm-related-media {
    width: 100%;
    aspect-ratio: 16 / 9;
    overflow: hidden;
    border-radius: 3px;
}

.fm-related-section .fm-related-thumb {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.fm-related-section .fm-related-tag {
    font-size: 11px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: var(--primary, #136C5F);
}

.fm-related-section .fm-related-title {
    font-family: 'Asap', sans-serif;
    font-size: 18px;
    font-weight: 700;
    color: var(--text, #1A2F2C);
    line-height: 1.35;
    overflow-wrap: anywhere;
}

.fm-related-section .fm-related-text {
    font-size: 14px;
    color: var(--text-muted, #5A726E);
    line-height: 1.55;
    overflow-wrap: anywhere;
}

@media (max-width: 991px) {
    .fm-detail-hero .fm-hero-title {
        font-size: 32px;
    }

    .fm-framed-section .fm-frame-inner {
        padding: 32px 24px;
    }
}

@media (max-width: 767px) {
    .fm-detail-hero {
        padding-top: 36px;
        padding-bottom: 36px;
    }

    .fm-detail-hero .fm-hero-title {
        font-size: 18px !important;
        line-height: 1.25 !important;
        hyphens: auto;
    }

    .fm-detail-hero .fm-hero-subtitle {
        font-size: 14px !important;
        line-height: 1.45 !important;
        hyphens: auto;
    }

    .fm-framed-section .fm-frame {
        border-width: 2px;
        border-radius: 6px;
    }

    .fm-framed-section .fm-frame-inner {
        padding: 24px 16px;
    }

    .fm-framed-section .fm-section-title {
        font-size: 16px !important;
        line-height: 1.3 !important;
        hyphens: auto;
    }

    .fm-framed-section .fm-spec-title {
        font-size: 14px !important;
        line-height: 1.35 !important;
    }

    .fm-framed-section .fm-check-item {
        flex-direction: row;
    }

    .fm-framed-section .fm-check-title {
        font-size: 14px !important;
    }

    .fm-framed-section .fm-check-desc {
        font-size: 13px !important;
    }

    .fm-related-section .fm-related-title {
        font-size: 14px !important;
        line-height: 1.35 !important;
    }

    .comment-card {
        padding: 14px;
    }

    .comment-footer {
        flex-direction: column;
        align-items: flex-start !important;
        gap: 8px;
    }
}

/* ===== PAGE TEMPLATE: session-workflows ===== */
.sf-header {
    position: sticky;
    top: 0;
    z-index: 1040;
    background-color: var(--surface, #FFFFFF);
    box-shadow: 0 2px 12px rgba(16, 65, 58, 0.08);
}

.sf-header .sf-header-topbar {
    background-color: var(--primary, #136C5F);
    color: var(--on-primary, #FFFFFF);
    font-size: 13px;
    letter-spacing: 0.01em;
}

.sf-header .sf-topbar-link {
    color: var(--on-primary, #FFFFFF);
    text-decoration: none;
    transition: opacity 0.2s ease;
}

.sf-header .sf-topbar-link:hover,
.sf-header .sf-topbar-link:focus {
    color: var(--surface-alt, #EEF6F5);
    opacity: 0.9;
    text-decoration: none;
}

.sf-header .sf-topbar-item {
    color: var(--on-primary, #FFFFFF);
}

.sf-header .sf-topbar-divider {
    display: inline-block;
    width: 1px;
    height: 14px;
    background-color: rgba(255, 255, 255, 0.3);
}

.sf-header .sf-main-nav {
    background-color: var(--surface, #FFFFFF);
    border-bottom: 1px solid var(--border, #D8E4E2);
    padding: 0.75rem 0;
}

.sf-header .sf-brand {
    text-decoration: none;
    color: var(--text, #1A2F2C);
}

.sf-header .sf-logo-img {
    width: 44px;
    height: 44px;
    max-width: 48px;
    object-fit: contain;
    display: block;
}

.sf-header .sf-brand-text {
    font-family: 'Asap', sans-serif;
    font-size: 20px;
    font-weight: 800;
    color: var(--text, #1A2F2C);
    letter-spacing: -0.01em;
    line-height: 1.2;
}

.sf-header .sf-brand-accent {
    color: var(--primary, #136C5F);
}

.sf-header .sf-nav-link {
    font-family: 'Asap', sans-serif;
    font-size: 15px;
    font-weight: 600;
    color: var(--text, #1A2F2C);
    padding: 0.5rem 0.9rem;
    transition: color 0.2s ease;
    border-radius: 4px;
}

.sf-header .sf-nav-link:hover,
.sf-header .sf-nav-link:focus {
    color: var(--primary, #136C5F);
}

.sf-header .sf-dropdown-menu {
    background-color: var(--surface, #FFFFFF);
    border: 1px solid var(--border, #D8E4E2);
    border-radius: 4px;
    box-shadow: 0 10px 26px rgba(16, 65, 58, 0.1);
    padding: 0.5rem 0;
    min-width: 220px;
    margin-top: 0.5rem;
}

.sf-header .sf-dropdown-item {
    font-family: 'Asap', sans-serif;
    font-size: 14px;
    font-weight: 600;
    color: var(--text, #1A2F2C);
    padding: 0.6rem 1.2rem;
    display: flex;
    align-items: center;
    transition: background-color 0.2s ease, color 0.2s ease;
}

.sf-header .sf-dropdown-item:hover,
.sf-header .sf-dropdown-item:focus {
    background-color: var(--surface-alt, #EEF6F5);
    color: var(--primary, #136C5F);
}

.sf-header .sf-header-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    background-color: var(--dark-band, #10413A);
    color: var(--on-dark, #FFFFFF);
    font-family: 'Asap', sans-serif;
    font-size: 14px;
    font-weight: 600;
    padding: 10px 24px;
    border-radius: 9999px;
    text-decoration: none;
    transition: background-color 0.2s ease, transform 0.2s ease;
    border: none;
    white-space: nowrap;
}

.sf-header .sf-header-btn:hover,
.sf-header .sf-header-btn:focus {
    background-color: var(--primary-hover, #0E4E44);
    color: var(--on-dark, #FFFFFF);
    text-decoration: none;
    transform: translateY(-1px);
}

.sf-header .sf-navbar-toggler {
    border: 1px solid var(--border, #D8E4E2);
    background-color: var(--surface-alt, #EEF6F5);
    padding: 6px 10px;
    border-radius: 4px;
    color: var(--text, #1A2F2C);
}

.sf-header .sf-navbar-toggler:focus {
    box-shadow: 0 0 0 2px var(--primary, #136C5F);
}

.sf-header .sf-toggler-icon {
    font-size: 24px;
    display: block;
    color: var(--primary, #136C5F);
}

.wf-hero {
    background: var(--hero-bg, linear-gradient(146deg, #10413A 0%, #12544A 100%));
    padding: 60px 0 70px;
}

.wf-hero .wf-breadcrumbs {
    font-size: 14px;
}

.wf-hero .wf-breadcrumb-link {
    color: var(--on-dark-muted, #B6C3C1);
    text-decoration: none;
    transition: color 0.2s ease;
}

.wf-hero .wf-breadcrumb-link:hover {
    color: var(--on-dark, #FFFFFF);
}

.wf-hero .wf-breadcrumb-sep {
    color: var(--on-dark-muted, #B6C3C1);
    font-size: 12px;
}

.wf-hero .wf-breadcrumb-current {
    color: var(--accent, #40CD5A);
    font-weight: 600;
}

.wf-hero .wf-hero-title {
    font-size: 42px;
    font-weight: 800;
    line-height: 1.2;
    color: var(--on-dark, #FFFFFF);
    overflow-wrap: anywhere;
}

.wf-hero .wf-hero-subtitle {
    font-size: 18px;
    line-height: 1.6;
    color: var(--on-dark-muted, #B6C3C1);
    max-width: 820px;
    overflow-wrap: anywhere;
}

.wf-detail-content .wf-takeaways-box {
    background-color: var(--surface-alt, #EEF6F5);
    border: 1px solid var(--border, #D8E4E2);
    border-left: 5px solid var(--primary, #136C5F);
    border-radius: 4px;
}

.wf-detail-content .wf-takeaways-title {
    font-size: 24px;
    font-weight: 700;
    color: var(--text, #1A2F2C);
}

.wf-detail-content .wf-takeaways-intro {
    font-size: 16px;
    line-height: 1.6;
    color: var(--text, #1A2F2C);
}

.wf-detail-content .wf-takeaway-item {
    background: var(--surface, #FFFFFF);
    border: 1px solid var(--border, #D8E4E2);
    border-radius: 4px;
    padding: 20px;
}

.wf-detail-content .wf-takeaway-num {
    display: inline-block;
    font-size: 24px;
    font-weight: 800;
    color: var(--primary, #136C5F);
    line-height: 1;
    margin-bottom: 8px;
}

.wf-detail-content .wf-takeaway-heading {
    font-size: 17px;
    color: var(--text, #1A2F2C);
}

.wf-detail-content .wf-takeaway-text {
    font-size: 14px;
    line-height: 1.5;
    color: var(--text-muted, #5A726E);
}

.wf-detail-content .wf-section-heading-wrap .wf-accent-line {
    width: 60px;
    height: 4px;
    background-color: var(--accent, #40CD5A);
    border-radius: 2px;
}

.wf-detail-content .wf-lead {
    font-size: 18px;
    line-height: 1.6;
    color: var(--text, #1A2F2C);
}

.wf-detail-content .wf-prose p {
    font-size: 16px;
    line-height: 1.65;
    color: var(--text-muted, #5A726E);
    margin-bottom: 1rem;
}

.wf-detail-content .wf-prose h3 {
    font-size: 22px;
    font-weight: 700;
    color: var(--text, #1A2F2C);
}

.wf-detail-content .wf-image-composition {
    position: relative;
    padding: 12px;
}

.wf-detail-content .wf-offset-backdrop {
    position: absolute;
    top: 0;
    left: 0;
    width: calc(100% - 24px);
    height: calc(100% - 24px);
    background-color: var(--surface-alt, #EEF6F5);
    border: 2px dashed var(--border, #D8E4E2);
    border-radius: 4px;
    z-index: 1;
}

.wf-detail-content .wf-main-media {
    position: relative;
    z-index: 2;
    margin-top: 16px;
    margin-left: 16px;
    box-shadow: 0 12px 28px rgba(16, 65, 58, 0.12);
    border: 1px solid var(--border, #D8E4E2);
    border-radius: 3px;
    background: #000000;
}

.wf-detail-content .wf-hero-single-img {
    width: 100%;
    max-height: 480px;
    object-fit: cover;
    display: block;
}

.wf-key-facts-section .wf-fact-row {
    background-color: var(--surface, #FFFFFF);
    border: 1px solid var(--border, #D8E4E2);
    border-radius: 3px;
    transition: transform 0.2s ease;
}

.wf-key-facts-section .wf-fact-row:hover {
    transform: translateX(4px);
}

.wf-key-facts-section .wf-fact-index {
    width: 32px;
    height: 32px;
    background-color: var(--primary, #136C5F);
    color: var(--on-primary, #FFFFFF);
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-weight: 700;
    font-size: 14px;
    flex-shrink: 0;
}

.wf-key-facts-section .wf-fact-label {
    font-weight: 700;
    color: var(--text, #1A2F2C);
    margin-right: 6px;
}

.wf-key-facts-section .wf-fact-value {
    color: var(--text-muted, #5A726E);
}

.wf-cta-banner {
    background: var(--section-alt-bg, #EEF6F5);
    border-top: 1px solid var(--border, #D8E4E2);
    border-bottom: 1px solid var(--border, #D8E4E2);
}

.wf-cta-banner .wf-cta-subtext {
    font-size: 18px;
    line-height: 1.6;
    color: var(--text-muted, #5A726E);
}

.wf-related-section .wf-related-card {
    padding: 24px 20px;
    background-color: var(--surface, #FFFFFF);
    border: 1px solid var(--border, #D8E4E2);
    border-radius: 3px;
    transition: transform 0.25s ease, box-shadow 0.25s ease;
}

.wf-related-section .wf-related-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 10px 24px rgba(16, 65, 58, 0.1);
}

.wf-related-section .wf-related-icon {
    width: 48px;
    height: 48px;
    background-color: var(--primary, #136C5F);
    color: var(--on-primary, #FFFFFF);
    border-radius: 3px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 22px;
}

.wf-related-section .wf-related-title {
    font-size: 18px;
    font-weight: 700;
    line-height: 1.35;
}

.wf-related-section .wf-related-link {
    color: var(--text, #1A2F2C);
    text-decoration: none;
    transition: color 0.2s ease;
}

.wf-related-section .wf-related-link:hover {
    color: var(--primary, #136C5F);
}

.wf-related-section .wf-related-desc {
    font-size: 14px;
    line-height: 1.5;
    color: var(--text-muted, #5A726E);
}

.wf-related-section .wf-inline-link {
    font-size: 14px;
    font-weight: 700;
    color: var(--primary, #136C5F);
    text-decoration: none;
}

.wf-related-section .wf-inline-link:hover {
    text-decoration: underline;
    text-underline-offset: 3px;
}

.wf-booking-section .wf-booking-box {
    border: 1px solid var(--border, #D8E4E2);
    border-radius: 4px;
    box-shadow: 0 12px 32px rgba(16, 65, 58, 0.08);
}

.wf-booking-section .wf-form-label {
    font-size: 14px;
    font-weight: 600;
    color: var(--text, #1A2F2C);
    margin-bottom: 4px;
}

.wf-booking-section .wf-input {
    background-color: #FFFFFF;
    border: 1px solid var(--border, #D8E4E2);
    color: var(--text, #1A2F2C);
    border-radius: 3px;
    padding: 10px 14px;
    font-size: 15px;
}

.wf-booking-section .wf-input:focus {
    border-color: var(--primary, #136C5F);
    box-shadow: 0 0 0 2px rgba(19, 108, 95, 0.2);
}

.wf-booking-section .wf-input::placeholder {
    color: #8C9E9B;
    opacity: 1;
}

.wf-booking-section .wf-consent-label {
    font-size: 13px;
    color: var(--text-muted, #5A726E);
    line-height: 1.4;
}

.wf-booking-section .wf-privacy-link {
    color: var(--primary, #136C5F);
    text-decoration: underline;
}

.wf-discussion-section .wf-empty-comments {
    background: var(--surface-alt, #EEF6F5);
    border: 1px dashed var(--border, #D8E4E2);
    border-radius: 4px;
}

.wf-discussion-section .wf-empty-icon {
    font-size: 32px;
    color: var(--primary, #136C5F);
    display: block;
}

.wf-discussion-section .comment-card {
    background: var(--surface, #FFFFFF);
    border: 1px solid var(--border, #D8E4E2);
    border-radius: 3px;
    padding: 20px;
    margin-bottom: 16px;
}

.wf-discussion-section .avatar-initials {
    width: 44px;
    height: 44px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 700;
    font-size: 15px;
    color: #FFFFFF;
    background-color: var(--primary, #136C5F);
}

.wf-discussion-section .avatar-initials--reply {
    background-color: var(--dark-band, #10413A);
}

.wf-discussion-section .comment-author {
    font-size: 16px;
    font-weight: 700;
    color: var(--text, #1A2F2C);
}

.wf-discussion-section .comment-role {
    font-size: 12px;
    text-transform: uppercase;
    font-weight: 700;
    color: var(--text-muted, #5A726E);
    letter-spacing: 0.05em;
}

.wf-discussion-section .comment-time {
    font-size: 12px;
    color: var(--text-muted, #5A726E);
}

.wf-discussion-section .comment-badge {
    font-size: 12px;
    font-weight: 700;
    background-color: var(--surface-alt, #EEF6F5);
    color: var(--primary, #136C5F);
    padding: 4px 10px;
    border-radius: 9999px;
    display: inline-flex;
    align-items: center;
    gap: 4px;
}

.wf-discussion-section .comment-text {
    font-size: 15px;
    line-height: 1.6;
    color: var(--text, #1A2F2C);
}

.wf-discussion-section .comment-action-btn {
    background: transparent;
    border: 1px solid var(--border, #D8E4E2);
    padding: 4px 12px;
    border-radius: 9999px;
    font-size: 13px;
    font-weight: 600;
    color: var(--text, #1A2F2C);
    display: inline-flex;
    align-items: center;
    gap: 6px;
    cursor: pointer;
    transition: background-color 0.2s ease, color 0.2s ease;
}

.wf-discussion-section .comment-action-btn:hover {
    background-color: var(--surface-alt, #EEF6F5);
    color: var(--primary, #136C5F);
}

.wf-discussion-section .comment-action-btn.active {
    background-color: var(--primary, #136C5F);
    color: #FFFFFF;
    border-color: var(--primary, #136C5F);
}

.wf-discussion-section .comment-metrics {
    font-size: 12px;
    color: var(--text-muted, #5A726E);
}

.wf-discussion-section .reply-thread {
    border-left: 2px solid var(--border, #D8E4E2);
    margin-top: 12px;
}

.wf-discussion-section .reply-mention {
    font-weight: 700;
    color: var(--primary, #136C5F);
}

.wf-discussion-section .wf-comment-form-box {
    border: 1px solid var(--border, #D8E4E2);
    border-radius: 4px;
}

#sessionfocus-footer.sf-footer {
    background-color: var(--dark-band, #10413A);
    color: var(--on-dark, #FFFFFF);
    padding-top: 56px;
    padding-bottom: 0;
    overflow-x: hidden;
}

#sessionfocus-footer .sf-disclaimer-wrapper {
    margin-bottom: 48px;
}

#sessionfocus-footer .sf-disclaimer-card {
    background-color: rgba(19, 108, 95, 0.18);
    border: 1px solid rgba(64, 205, 90, 0.35);
    border-left: 4px solid var(--accent, #40CD5A);
    border-radius: 4px;
    padding: 22px 24px;
}

#sessionfocus-footer .sf-disclaimer-header {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 10px;
}

#sessionfocus-footer .sf-disclaimer-badge-icon {
    font-size: 20px;
    color: var(--accent, #40CD5A);
    line-height: 1;
    flex-shrink: 0;
}

#sessionfocus-footer .sf-disclaimer-badge-title {
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--on-dark, #FFFFFF);
}

#sessionfocus-footer .sf-disclaimer-text {
    font-size: 14px;
    line-height: 1.6;
    color: var(--on-dark-muted, #B6C3C1);
    margin-bottom: 0;
    overflow-wrap: anywhere;
}

#sessionfocus-footer .sf-main-content {
    padding-bottom: 56px;
}

#sessionfocus-footer .sf-logo-wrap {
    margin-bottom: 16px;
}

#sessionfocus-footer .sf-footer-logo {
    width: 44px;
    height: 44px;
    object-fit: contain;
}

#sessionfocus-footer .sf-brand-title {
    font-size: 18px;
    font-weight: 800;
    color: var(--on-dark, #FFFFFF);
    letter-spacing: -0.01em;
}

#sessionfocus-footer .sf-brand-desc {
    font-size: 14px;
    line-height: 1.6;
    color: var(--on-dark-muted, #B6C3C1);
    margin-bottom: 0;
    max-width: 290px;
}

#sessionfocus-footer .sf-col-title {
    display: block;
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: var(--accent, #40CD5A);
    margin-bottom: 18px;
}

#sessionfocus-footer .sf-links-list {
    list-style: none;
    padding-left: 0;
    margin-bottom: 0;
    display: flex;
    flex-direction: column;
    gap: 10px;
}

#sessionfocus-footer .sf-link {
    color: var(--on-dark-muted, #B6C3C1);
    text-decoration: none;
    font-size: 14px;
    line-height: 1.5;
    transition: color 0.2s ease;
    overflow-wrap: anywhere;
}

#sessionfocus-footer .sf-link:hover,
#sessionfocus-footer .sf-link:focus {
    color: var(--on-dark, #FFFFFF);
    text-decoration: underline;
    text-underline-offset: 4px;
}

#sessionfocus-footer .sf-contact-block {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

#sessionfocus-footer .sf-contact-item {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    font-size: 14px;
    line-height: 1.5;
}

#sessionfocus-footer .sf-contact-icon {
    font-size: 18px;
    color: var(--accent, #40CD5A);
    line-height: 1.3;
    flex-shrink: 0;
}

#sessionfocus-footer .sf-contact-text {
    color: var(--on-dark-muted, #B6C3C1);
    overflow-wrap: anywhere;
}

#sessionfocus-footer .sf-bottom-bar {
    background-color: var(--primary, #136C5F);
    padding: 18px 0;
    color: var(--on-primary, #FFFFFF);
    border-top: 1px solid rgba(255, 255, 255, 0.1);
}

#sessionfocus-footer .sf-bottom-flex {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 14px;
}

#sessionfocus-footer .sf-copyright-text {
    font-size: 13px;
    font-weight: 500;
    color: var(--on-primary, #FFFFFF);
    line-height: 1.4;
}

#sessionfocus-footer .sf-legal-links {
    display: inline-flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 10px;
}

#sessionfocus-footer .sf-legal-link {
    font-size: 13px;
    font-weight: 500;
    color: var(--on-primary, #FFFFFF);
    text-decoration: none;
    transition: opacity 0.2s ease, text-decoration 0.2s ease;
}

#sessionfocus-footer .sf-legal-link:hover,
#sessionfocus-footer .sf-legal-link:focus {
    opacity: 0.85;
    text-decoration: underline;
    text-underline-offset: 3px;
}

#sessionfocus-footer .sf-legal-divider {
    color: rgba(255, 255, 255, 0.6);
    font-size: 11px;
}

@media (max-width: 991px) {
    .sf-header .sf-main-nav {
        padding: 0.5rem 0;
    }

    .sf-header .sf-brand-text {
        font-size: 18px;
    }

    .sf-header .sf-nav-list {
        padding-top: 1rem;
    }

    .sf-header .sf-nav-link {
        padding: 0.6rem 0.5rem;
    }

    .sf-header .sf-dropdown-menu {
        box-shadow: none;
        border: 1px solid var(--border, #D8E4E2);
        margin-left: 0.5rem;
        margin-bottom: 0.5rem;
        background-color: var(--surface-alt, #EEF6F5);
    }

    .sf-header .sf-header-btn {
        width: 100%;
        margin-bottom: 0.75rem;
    }
}

@media (max-width: 767px) {
    .wf-hero {
        padding: 40px 0 46px;
    }

    .wf-hero .wf-hero-title {
        font-size: 18px !important;
        line-height: 1.25 !important;
        hyphens: auto;
    }

    .wf-hero .wf-hero-subtitle {
        font-size: 14px !important;
        line-height: 1.45 !important;
        hyphens: auto;
    }

    .wf-detail-content .wf-takeaways-box {
        padding: 16px !important;
    }

    .wf-detail-content .wf-takeaways-title {
        font-size: 16px !important;
    }

    .wf-detail-content .wf-image-composition {
        padding: 4px;
    }

    .wf-detail-content .wf-offset-backdrop {
        display: none;
    }

    .wf-detail-content .wf-main-media {
        margin-top: 0;
        margin-left: 0;
    }

    .wf-key-facts-section .wf-fact-row {
        flex-direction: column;
        align-items: flex-start;
        gap: 6px;
    }

    .wf-cta-banner .wf-cta-subtext {
        font-size: 14px !important;
    }

    #sessionfocus-footer.sf-footer {
        padding-top: 40px;
    }

    #sessionfocus-footer .sf-disclaimer-wrapper {
        margin-bottom: 32px;
    }

    #sessionfocus-footer .sf-disclaimer-card {
        padding: 16px 18px;
    }

    #sessionfocus-footer .sf-main-content {
        padding-bottom: 40px;
    }

    #sessionfocus-footer .sf-bottom-flex {
        flex-direction: column;
        align-items: flex-start;
        gap: 12px;
    }

    #sessionfocus-footer .sf-legal-links {
        width: 100%;
        justify-content: flex-start;
    }
}

/* ===== PAGE TEMPLATE: session-cases ===== */
.sf-header {
    position: sticky;
    top: 0;
    z-index: 1040;
    background-color: var(--surface, #FFFFFF);
    box-shadow: 0 2px 12px rgba(16, 65, 58, 0.08);
}

.sf-header .sf-header-topbar {
    background-color: var(--primary, #136C5F);
    color: var(--on-primary, #FFFFFF);
    font-size: 13px;
    letter-spacing: 0.01em;
}

.sf-header .sf-topbar-link {
    color: var(--on-primary, #FFFFFF);
    text-decoration: none;
    transition: opacity 0.2s ease;
}

.sf-header .sf-topbar-link:hover,
.sf-header .sf-topbar-link:focus {
    color: var(--surface-alt, #EEF6F5);
    opacity: 0.9;
    text-decoration: none;
}

.sf-header .sf-topbar-item {
    color: var(--on-primary, #FFFFFF);
}

.sf-header .sf-topbar-divider {
    display: inline-block;
    width: 1px;
    height: 14px;
    background-color: rgba(255, 255, 255, 0.3);
}

.sf-header .sf-main-nav {
    background-color: var(--surface, #FFFFFF);
    border-bottom: 1px solid var(--border, #D8E4E2);
    padding: 0.75rem 0;
}

.sf-header .sf-brand {
    text-decoration: none;
    color: var(--text, #1A2F2C);
}

.sf-header .sf-logo-img {
    width: 44px;
    height: 44px;
    max-width: 48px;
    object-fit: contain;
    display: block;
}

.sf-header .sf-brand-text {
    font-family: 'Asap', sans-serif;
    font-size: 20px;
    font-weight: 800;
    color: var(--text, #1A2F2C);
    letter-spacing: -0.01em;
    line-height: 1.2;
}

.sf-header .sf-brand-accent {
    color: var(--primary, #136C5F);
}

.sf-header .sf-nav-link {
    font-family: 'Asap', sans-serif;
    font-size: 15px;
    font-weight: 600;
    color: var(--text, #1A2F2C);
    padding: 0.5rem 0.9rem;
    transition: color 0.2s ease;
    border-radius: 4px;
}

.sf-header .sf-nav-link:hover,
.sf-header .sf-nav-link:focus {
    color: var(--primary, #136C5F);
}

.sf-header .sf-dropdown-menu {
    background-color: var(--surface, #FFFFFF);
    border: 1px solid var(--border, #D8E4E2);
    border-radius: 4px;
    box-shadow: 0 10px 26px rgba(16, 65, 58, 0.1);
    padding: 0.5rem 0;
    min-width: 220px;
    margin-top: 0.5rem;
}

.sf-header .sf-dropdown-item {
    font-family: 'Asap', sans-serif;
    font-size: 14px;
    font-weight: 600;
    color: var(--text, #1A2F2C);
    padding: 0.6rem 1.2rem;
    display: flex;
    align-items: center;
    transition: background-color 0.2s ease, color 0.2s ease;
}

.sf-header .sf-dropdown-item:hover,
.sf-header .sf-dropdown-item:focus {
    background-color: var(--surface-alt, #EEF6F5);
    color: var(--primary, #136C5F);
}

.sf-header .sf-header-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    background-color: var(--dark-band, #10413A);
    color: var(--on-dark, #FFFFFF);
    font-family: 'Asap', sans-serif;
    font-size: 14px;
    font-weight: 600;
    padding: 10px 24px;
    border-radius: 9999px;
    text-decoration: none;
    transition: background-color 0.2s ease, transform 0.2s ease;
    border: none;
    white-space: nowrap;
}

.sf-header .sf-header-btn:hover,
.sf-header .sf-header-btn:focus {
    background-color: var(--primary-hover, #0E4E44);
    color: var(--on-dark, #FFFFFF);
    text-decoration: none;
    transform: translateY(-1px);
}

.sf-header .sf-navbar-toggler {
    border: 1px solid var(--border, #D8E4E2);
    background-color: var(--surface-alt, #EEF6F5);
    padding: 6px 10px;
    border-radius: 4px;
    color: var(--text, #1A2F2C);
}

.sf-header .sf-navbar-toggler:focus {
    box-shadow: 0 0 0 2px var(--primary, #136C5F);
}

.sf-header .sf-toggler-icon {
    font-size: 24px;
    display: block;
    color: var(--primary, #136C5F);
}

.hero-focus-block {
    position: relative;
    background: var(--hero-bg, linear-gradient(146deg, #10413A 0%, #12544A 100%));
    padding-top: 64px;
    padding-bottom: 56px;
    color: var(--on-dark, #FFFFFF);
}

.hero-focus-block .sf-case-breadcrumb {
    font-size: 13px;
    font-weight: 500;
}

.hero-focus-block .sf-breadcrumb-link {
    color: var(--on-dark-muted, #B6C3C1);
    text-decoration: none;
    transition: color 0.2s ease;
}

.hero-focus-block .sf-breadcrumb-link:hover {
    color: var(--accent, #40CD5A);
}

.hero-focus-block .hero-lead-line {
    font-family: 'Asap', sans-serif;
    font-size: 14px;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--accent, #40CD5A);
}

.hero-focus-block .hero-title {
    font-family: 'Asap', sans-serif;
    font-size: 42px;
    font-weight: 800;
    line-height: 1.2;
    color: #FFFFFF;
    overflow-wrap: anywhere;
}

.hero-focus-block .hero-subhead {
    font-family: 'Asap', sans-serif;
    font-size: 18px;
    font-weight: 400;
    line-height: 1.6;
    color: var(--on-dark-muted, #B6C3C1);
    overflow-wrap: anywhere;
    max-width: 820px;
}

.case-detail-wrapper {
    background-color: var(--bg, #F7FBFA);
}

.case-sticky-panel {
    position: sticky;
    top: 96px;
}

.case-summary-card {
    background: var(--surface, #FFFFFF);
    border: 1px solid var(--border, #D8E4E2);
    border-radius: 3px;
    padding: 24px;
    box-shadow: 0 4px 18px rgba(16, 65, 58, 0.05);
}

.case-aside-title {
    font-size: 22px;
    font-weight: 700;
    color: var(--text, #1A2F2C);
    line-height: 1.3;
    overflow-wrap: anywhere;
}

.case-aside-text {
    font-size: 15px;
    line-height: 1.6;
    color: var(--text-muted, #5A726E);
    overflow-wrap: anywhere;
}

.case-meta-group .case-meta-label {
    font-size: 13px;
    font-weight: 600;
    color: var(--text-muted, #5A726E);
}

.case-meta-group .case-meta-value {
    font-size: 14px;
    font-weight: 700;
    color: var(--text, #1A2F2C);
}

.case-cta-box {
    background: var(--surface-alt, #EEF6F5);
    border: 1px solid var(--border, #D8E4E2);
    border-radius: 3px;
    padding: 24px;
}

.case-cta-icon {
    width: 48px;
    height: 48px;
    background-color: var(--primary, #136C5F);
    color: var(--on-primary, #FFFFFF);
    border-radius: 2px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 24px;
}

.case-cta-title {
    font-size: 18px;
    font-weight: 700;
    color: var(--text, #1A2F2C);
}

.case-cta-desc {
    font-size: 14px;
    line-height: 1.55;
    color: var(--text-muted, #5A726E);
}

.case-content-body .case-section-header {
    display: flex;
    align-items: center;
    gap: 12px;
}

.case-content-body .case-section-num {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    background-color: var(--primary, #136C5F);
    color: var(--on-primary, #FFFFFF);
    font-weight: 800;
    font-size: 14px;
    border-radius: 2px;
    flex-shrink: 0;
}

.case-content-body .case-heading {
    font-size: 28px;
    font-weight: 700;
    color: var(--text, #1A2F2C);
    line-height: 1.3;
    margin-bottom: 0;
    overflow-wrap: anywhere;
}

.case-content-body .case-paragraph {
    font-size: 16px;
    line-height: 1.65;
    color: var(--text-muted, #5A726E);
    overflow-wrap: anywhere;
}

.case-single-media-wrap {
    border-radius: 12px;
    overflow: hidden;
    border: 1px solid var(--border, #D8E4E2);
    background-color: var(--surface, #FFFFFF);
    padding: 8px;
}

.case-main-img {
    width: 100%;
    height: 360px;
    object-fit: cover;
    border-radius: 8px;
    display: block;
}

.case-img-caption {
    font-size: 13px;
    padding: 4px 6px 0 6px;
}

.case-callout-panel {
    background-color: var(--surface-alt, #EEF6F5);
    border-left: 4px solid var(--primary, #136C5F);
    border-radius: 2px;
}

.case-callout-heading {
    font-size: 17px;
    font-weight: 700;
    color: var(--text, #1A2F2C);
}

.case-rule-list {
    list-style: none;
}

.case-check-icon {
    color: var(--primary, #136C5F);
    font-size: 18px;
    flex-shrink: 0;
}

.case-rule-item span {
    font-size: 15px;
    line-height: 1.55;
    color: var(--text, #1A2F2C);
}

.case-facts-card {
    background-color: var(--surface, #FFFFFF);
    border: 1px solid var(--border, #D8E4E2);
    border-radius: 3px;
}

.case-facts-list dt {
    font-size: 14px;
}

.case-facts-list dd {
    font-size: 15px;
    color: var(--text-muted, #5A726E);
}

.case-form-card {
    background-color: var(--surface, #FFFFFF);
    border: 1px solid var(--border, #D8E4E2);
    border-radius: 3px;
}

.case-form-card .form-control {
    background-color: var(--surface-alt, #EEF6F5);
    border: 1px solid var(--border, #D8E4E2);
    color: var(--text, #1A2F2C);
    border-radius: 3px;
    padding: 10px 14px;
    font-size: 14px;
}

.case-form-card .form-control:focus {
    background-color: #FFFFFF;
    border-color: var(--primary, #136C5F);
    box-shadow: 0 0 0 2px rgba(19, 108, 95, 0.2);
}

.case-form-card .form-control::placeholder {
    color: #8C9E9B;
    opacity: 1;
}

.case-related-item {
    background-color: var(--surface, #FFFFFF);
    border: 1px solid var(--border, #D8E4E2);
    border-radius: 3px;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.case-related-item:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 20px rgba(16, 65, 58, 0.08);
}

.case-related-thumb-holder {
    width: 80px;
    height: 60px;
    overflow: hidden;
    border-radius: 4px;
}

.case-related-thumb {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.case-related-category {
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.06em;
    color: var(--primary, #136C5F);
}

.case-related-title {
    font-size: 16px;
    font-weight: 700;
    color: var(--text, #1A2F2C);
    line-height: 1.3;
}

.case-related-desc {
    font-size: 13px;
    line-height: 1.45;
    color: var(--text-muted, #5A726E);
}

.case-related-arrow {
    font-size: 20px;
    color: var(--primary, #136C5F);
}

.comment-card {
    background-color: var(--surface, #FFFFFF);
    border: 1px solid var(--border, #D8E4E2);
    border-radius: 3px;
    padding: 20px;
}

.reply-thread {
    border-left: 2px solid var(--border, #D8E4E2);
}

.avatar-initials {
    width: 44px;
    height: 44px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 700;
    font-size: 15px;
    flex-shrink: 0;
}

.avatar-initials--primary {
    background-color: var(--primary, #136C5F);
    color: var(--on-primary, #FFFFFF);
}

.avatar-initials--reply {
    background-color: var(--dark-band, #10413A);
    color: var(--on-dark, #FFFFFF);
}

.comment-author {
    font-size: 15px;
    font-weight: 700;
    color: var(--text, #1A2F2C);
}

.comment-role {
    font-size: 12px;
    font-weight: 600;
    color: var(--text-muted, #5A726E);
}

.comment-time {
    font-size: 12px;
    color: var(--text-muted, #5A726E);
}

.comment-badge {
    font-size: 12px;
    font-weight: 600;
    color: var(--primary, #136C5F);
    display: inline-flex;
    align-items: center;
    gap: 4px;
}

.comment-text {
    font-size: 14px;
    line-height: 1.6;
    color: var(--text, #1A2F2C);
    margin-bottom: 0;
}

.comment-action-btn {
    background: transparent;
    border: 1px solid var(--border, #D8E4E2);
    border-radius: 9999px;
    padding: 4px 12px;
    font-size: 12px;
    font-weight: 600;
    color: var(--text, #1A2F2C);
    display: inline-flex;
    align-items: center;
    gap: 6px;
    cursor: pointer;
    transition: all 0.2s ease;
}

.comment-action-btn:hover,
.comment-action-btn.active {
    background-color: var(--primary, #136C5F);
    border-color: var(--primary, #136C5F);
    color: #FFFFFF;
}

.comment-metrics {
    font-size: 12px;
    color: var(--text-muted, #5A726E);
}

#sessionfocus-footer.sf-footer {
    background-color: var(--dark-band, #10413A);
    color: var(--on-dark, #FFFFFF);
    padding-top: 56px;
    padding-bottom: 0;
    overflow-x: hidden;
}

#sessionfocus-footer .sf-disclaimer-wrapper {
    margin-bottom: 48px;
}

#sessionfocus-footer .sf-disclaimer-card {
    background-color: rgba(19, 108, 95, 0.18);
    border: 1px solid rgba(64, 205, 90, 0.35);
    border-left: 4px solid var(--accent, #40CD5A);
    border-radius: 4px;
    padding: 22px 24px;
}

#sessionfocus-footer .sf-disclaimer-header {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 10px;
}

#sessionfocus-footer .sf-disclaimer-badge-icon {
    font-size: 20px;
    color: var(--accent, #40CD5A);
    line-height: 1;
    flex-shrink: 0;
}

#sessionfocus-footer .sf-disclaimer-badge-title {
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--on-dark, #FFFFFF);
}

#sessionfocus-footer .sf-disclaimer-text {
    font-size: 14px;
    line-height: 1.6;
    color: var(--on-dark-muted, #B6C3C1);
    margin-bottom: 0;
    overflow-wrap: anywhere;
}

#sessionfocus-footer .sf-main-content {
    padding-bottom: 56px;
}

#sessionfocus-footer .sf-logo-wrap {
    margin-bottom: 16px;
}

#sessionfocus-footer .sf-footer-logo {
    width: 44px;
    height: 44px;
    object-fit: contain;
}

#sessionfocus-footer .sf-brand-title {
    font-size: 18px;
    font-weight: 800;
    color: var(--on-dark, #FFFFFF);
    letter-spacing: -0.01em;
}

#sessionfocus-footer .sf-brand-desc {
    font-size: 14px;
    line-height: 1.6;
    color: var(--on-dark-muted, #B6C3C1);
    margin-bottom: 0;
    max-width: 290px;
}

#sessionfocus-footer .sf-col-title {
    display: block;
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: var(--accent, #40CD5A);
    margin-bottom: 18px;
}

#sessionfocus-footer .sf-links-list {
    list-style: none;
    padding-left: 0;
    margin-bottom: 0;
    display: flex;
    flex-direction: column;
    gap: 10px;
}

#sessionfocus-footer .sf-link {
    color: var(--on-dark-muted, #B6C3C1);
    text-decoration: none;
    font-size: 14px;
    line-height: 1.5;
    transition: color 0.2s ease;
    overflow-wrap: anywhere;
}

#sessionfocus-footer .sf-link:hover,
#sessionfocus-footer .sf-link:focus {
    color: var(--on-dark, #FFFFFF);
    text-decoration: underline;
    text-underline-offset: 4px;
}

#sessionfocus-footer .sf-contact-block {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

#sessionfocus-footer .sf-contact-item {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    font-size: 14px;
    line-height: 1.5;
}

#sessionfocus-footer .sf-contact-icon {
    font-size: 18px;
    color: var(--accent, #40CD5A);
    line-height: 1.3;
    flex-shrink: 0;
}

#sessionfocus-footer .sf-contact-text {
    color: var(--on-dark-muted, #B6C3C1);
    overflow-wrap: anywhere;
}

#sessionfocus-footer .sf-bottom-bar {
    background-color: var(--primary, #136C5F);
    padding: 18px 0;
    color: var(--on-primary, #FFFFFF);
    border-top: 1px solid rgba(255, 255, 255, 0.1);
}

#sessionfocus-footer .sf-bottom-flex {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 14px;
}

#sessionfocus-footer .sf-copyright-text {
    font-size: 13px;
    font-weight: 500;
    color: var(--on-primary, #FFFFFF);
    line-height: 1.4;
}

#sessionfocus-footer .sf-legal-links {
    display: inline-flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 10px;
}

#sessionfocus-footer .sf-legal-link {
    font-size: 13px;
    font-weight: 500;
    color: var(--on-primary, #FFFFFF);
    text-decoration: none;
    transition: opacity 0.2s ease, text-decoration 0.2s ease;
}

#sessionfocus-footer .sf-legal-link:hover,
#sessionfocus-footer .sf-legal-link:focus {
    opacity: 0.85;
    text-decoration: underline;
    text-underline-offset: 3px;
}

#sessionfocus-footer .sf-legal-divider {
    color: rgba(255, 255, 255, 0.6);
    font-size: 11px;
}

@media (max-width: 991.98px) {
    .sf-header .sf-main-nav {
        padding: 0.5rem 0;
    }

    .sf-header .sf-brand-text {
        font-size: 18px;
    }

    .sf-header .sf-nav-list {
        padding-top: 1rem;
    }

    .sf-header .sf-nav-link {
        padding: 0.6rem 0.5rem;
    }

    .sf-header .sf-dropdown-menu {
        box-shadow: none;
        border: 1px solid var(--border, #D8E4E2);
        margin-left: 0.5rem;
        margin-bottom: 0.5rem;
        background-color: var(--surface-alt, #EEF6F5);
    }

    .sf-header .sf-header-btn {
        width: 100%;
        margin-bottom: 0.75rem;
    }

    .case-sticky-panel {
        position: static;
    }

    .hero-focus-block .hero-title {
        font-size: 32px;
    }
}

@media (max-width: 767.98px) {
    .hero-focus-block {
        padding-top: 36px;
        padding-bottom: 36px;
    }

    .hero-focus-block .hero-title {
        font-size: 18px !important;
        line-height: 1.25 !important;
        hyphens: auto;
    }

    .hero-focus-block .hero-subhead {
        font-size: 14px !important;
        line-height: 1.45 !important;
        hyphens: auto;
    }

    .case-content-body .case-heading {
        font-size: 16px !important;
        line-height: 1.3 !important;
        hyphens: auto;
    }

    .case-aside-title {
        font-size: 16px !important;
        line-height: 1.3 !important;
        hyphens: auto;
    }

    .case-cta-title {
        font-size: 14px !important;
        line-height: 1.3 !important;
        hyphens: auto;
    }

    .case-main-img {
        height: 220px;
    }

    .case-related-item {
        flex-direction: column;
        align-items: flex-start !important;
    }

    .case-related-thumb-holder {
        width: 100%;
        height: 140px;
    }

    #sessionfocus-footer.sf-footer {
        padding-top: 40px;
    }

    #sessionfocus-footer .sf-disclaimer-wrapper {
        margin-bottom: 32px;
    }

    #sessionfocus-footer .sf-disclaimer-card {
        padding: 16px 18px;
    }

    #sessionfocus-footer .sf-main-content {
        padding-bottom: 40px;
    }

    #sessionfocus-footer .sf-bottom-flex {
        flex-direction: column;
        align-items: flex-start;
        gap: 12px;
    }

    #sessionfocus-footer .sf-legal-links {
        width: 100%;
        justify-content: flex-start;
    }
}

/* ===== PAGE TEMPLATE: knowledge-base ===== */
.sf-header {
    position: sticky;
    top: 0;
    z-index: 1040;
    background-color: var(--surface, #FFFFFF);
    box-shadow: 0 2px 12px rgba(16, 65, 58, 0.08);
}

.sf-header .sf-header-topbar {
    background-color: var(--primary, #136C5F);
    color: var(--on-primary, #FFFFFF);
    font-size: 13px;
    letter-spacing: 0.01em;
}

.sf-header .sf-topbar-link {
    color: var(--on-primary, #FFFFFF);
    text-decoration: none;
    transition: opacity 0.2s ease;
}

.sf-header .sf-topbar-link:hover,
.sf-header .sf-topbar-link:focus {
    color: var(--surface-alt, #EEF6F5);
    opacity: 0.9;
    text-decoration: none;
}

.sf-header .sf-topbar-item {
    color: var(--on-primary, #FFFFFF);
}

.sf-header .sf-topbar-divider {
    display: inline-block;
    width: 1px;
    height: 14px;
    background-color: rgba(255, 255, 255, 0.3);
}

.sf-header .sf-main-nav {
    background-color: var(--surface, #FFFFFF);
    border-bottom: 1px solid var(--border, #D8E4E2);
    padding: 0.75rem 0;
}

.sf-header .sf-brand {
    text-decoration: none;
    color: var(--text, #1A2F2C);
}

.sf-header .sf-logo-img {
    width: 44px;
    height: 44px;
    max-width: 48px;
    object-fit: contain;
    display: block;
}

.sf-header .sf-brand-text {
    font-family: 'Asap', sans-serif;
    font-size: 20px;
    font-weight: 800;
    color: var(--text, #1A2F2C);
    letter-spacing: -0.01em;
    line-height: 1.2;
}

.sf-header .sf-brand-accent {
    color: var(--primary, #136C5F);
}

.sf-header .sf-nav-link {
    font-family: 'Asap', sans-serif;
    font-size: 15px;
    font-weight: 600;
    color: var(--text, #1A2F2C);
    padding: 0.5rem 0.9rem;
    transition: color 0.2s ease;
    border-radius: 4px;
}

.sf-header .sf-nav-link:hover,
.sf-header .sf-nav-link:focus,
.sf-header .sf-nav-link.active {
    color: var(--primary, #136C5F);
}

.sf-header .sf-dropdown-menu {
    background-color: var(--surface, #FFFFFF);
    border: 1px solid var(--border, #D8E4E2);
    border-radius: 4px;
    box-shadow: 0 10px 26px rgba(16, 65, 58, 0.1);
    padding: 0.5rem 0;
    min-width: 220px;
    margin-top: 0.5rem;
}

.sf-header .sf-dropdown-item {
    font-family: 'Asap', sans-serif;
    font-size: 14px;
    font-weight: 600;
    color: var(--text, #1A2F2C);
    padding: 0.6rem 1.2rem;
    display: flex;
    align-items: center;
    transition: background-color 0.2s ease, color 0.2s ease;
}

.sf-header .sf-dropdown-item:hover,
.sf-header .sf-dropdown-item:focus {
    background-color: var(--surface-alt, #EEF6F5);
    color: var(--primary, #136C5F);
}

.sf-header .sf-header-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    background-color: var(--dark-band, #10413A);
    color: var(--on-dark, #FFFFFF);
    font-family: 'Asap', sans-serif;
    font-size: 14px;
    font-weight: 600;
    padding: 10px 24px;
    border-radius: 9999px;
    text-decoration: none;
    transition: background-color 0.2s ease, transform 0.2s ease;
    border: none;
    white-space: nowrap;
}

.sf-header .sf-header-btn:hover,
.sf-header .sf-header-btn:focus {
    background-color: var(--primary-hover, #0E4E44);
    color: var(--on-dark, #FFFFFF);
    text-decoration: none;
    transform: translateY(-1px);
}

.sf-header .sf-navbar-toggler {
    border: 1px solid var(--border, #D8E4E2);
    background-color: var(--surface-alt, #EEF6F5);
    padding: 6px 10px;
    border-radius: 4px;
    color: var(--text, #1A2F2C);
}

.sf-header .sf-navbar-toggler:focus {
    box-shadow: 0 0 0 2px var(--primary, #136C5F);
}

.sf-header .sf-toggler-icon {
    font-size: 24px;
    display: block;
    color: var(--primary, #136C5F);
}

.kb-article-hero {
    padding: 60px 0 45px 0;
    background: var(--dark-band-bg, linear-gradient(146deg, #10413A 0%, #12544A 100%));
}

.kb-article-hero .kb-breadcrumb {
    background: transparent;
    padding: 0;
}

.kb-article-hero .breadcrumb-item a {
    color: var(--on-dark-muted, #B6C3C1);
    text-decoration: none;
    font-size: 14px;
}

.kb-article-hero .breadcrumb-item a:hover {
    color: var(--on-dark, #FFFFFF);
    text-decoration: underline;
}

.kb-article-hero .breadcrumb-item.active {
    color: var(--accent, #40CD5A);
    font-size: 14px;
}

.kb-article-hero .breadcrumb-item+.breadcrumb-item::before {
    color: var(--on-dark-muted, #B6C3C1);
}

.kb-article-hero .kb-hero-title {
    font-size: 40px;
    font-weight: 800;
    line-height: 1.2;
    color: var(--on-dark, #FFFFFF);
    overflow-wrap: anywhere;
}

.kb-article-hero .kb-hero-subtitle {
    font-size: 18px;
    line-height: 1.6;
    color: var(--on-dark-muted, #B6C3C1);
    overflow-wrap: anywhere;
}

.kb-article-hero .kb-hero-meta {
    font-size: 14px;
    color: var(--on-dark-muted, #B6C3C1);
}

.kb-article-hero .kb-meta-val {
    color: var(--on-dark, #FFFFFF);
    font-weight: 600;
}

.kb-article-hero .kb-meta-icon {
    color: var(--accent, #40CD5A);
    font-size: 17px;
}

.kb-article-hero .kb-meta-sep {
    color: rgba(255, 255, 255, 0.4);
}

.kb-detail-page {
    background-color: var(--bg, #F7FBFA);
}

.kb-detail-page .kb-single-frame {
    border: 1px solid var(--border, #D8E4E2);
    background: var(--surface, #FFFFFF);
    padding: 8px;
    border-radius: 2px;
}

.kb-detail-page .kb-main-image {
    width: 100%;
    height: auto;
    max-height: 480px;
    object-fit: cover;
    display: block;
}

.kb-detail-page .kb-image-caption {
    font-size: 13px;
    font-style: italic;
}

.kb-detail-page .kb-takeaways-box {
    background-color: var(--surface-alt, #EEF6F5);
    border: 1px solid var(--border, #D8E4E2);
    border-left: 5px solid var(--primary, #136C5F);
    padding: 28px 24px;
    border-radius: 2px;
    box-shadow: 0 4px 14px rgba(16, 65, 58, 0.04);
}

.kb-detail-page .kb-takeaways-title {
    font-size: 22px;
    font-weight: 700;
    color: var(--text, #1A2F2C);
}

.kb-detail-page .kb-takeaways-list {
    list-style: none;
    padding-left: 0;
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.kb-detail-page .kb-takeaway-item {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    font-size: 15px;
    color: var(--text, #1A2F2C);
    line-height: 1.55;
}

.kb-detail-page .kb-takeaway-bullet {
    color: var(--primary, #136C5F);
    font-size: 18px;
    margin-top: 2px;
    flex-shrink: 0;
}

.kb-detail-page .kb-fact-card {
    background: var(--surface, #FFFFFF);
    border: 1px solid var(--border, #D8E4E2);
    border-radius: 2px;
    padding: 20px 16px;
    text-align: center;
    box-shadow: 0 4px 12px rgba(16, 65, 58, 0.05);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 6px;
}

.kb-detail-page .kb-fact-icon {
    width: 44px;
    height: 44px;
    background-color: var(--primary, #136C5F);
    color: var(--on-primary, #FFFFFF);
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 2px;
    font-size: 22px;
    margin-bottom: 4px;
}

.kb-detail-page .kb-fact-val {
    font-size: 19px;
    font-weight: 800;
    color: var(--text, #1A2F2C);
}

.kb-detail-page .kb-fact-label {
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--text-muted, #5A726E);
    font-weight: 700;
}

.kb-detail-page .kb-toc-box {
    background: var(--surface, #FFFFFF);
    border: 1px solid var(--border, #D8E4E2);
    padding: 22px 24px;
    border-radius: 2px;
}

.kb-detail-page .kb-toc-heading {
    font-size: 18px;
    font-weight: 700;
    color: var(--text, #1A2F2C);
}

.kb-detail-page .kb-toc-list {
    list-style: none;
    padding-left: 0;
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.kb-detail-page .kb-toc-link {
    color: var(--primary-text, #136C5F);
    text-decoration: none;
    font-size: 15px;
    font-weight: 600;
    display: inline-flex;
    align-items: center;
    transition: color 0.2s ease, text-decoration 0.2s ease;
}

.kb-detail-page .kb-toc-link:hover,
.kb-detail-page .kb-toc-link:focus {
    color: var(--primary-hover, #0E4E44);
    text-decoration: underline;
    text-underline-offset: 3px;
}

.kb-detail-page .kb-prose-body {
    color: var(--text, #1A2F2C);
    font-size: 16px;
    line-height: 1.7;
}

.kb-detail-page .kb-prose-body h2 {
    font-size: 28px;
    font-weight: 700;
    color: var(--text, #1A2F2C);
    margin-bottom: 1rem;
    overflow-wrap: anywhere;
}

.kb-detail-page .kb-prose-body p {
    margin-bottom: 1.25rem;
    color: var(--text-muted, #5A726E);
    overflow-wrap: anywhere;
}

.kb-detail-page .kb-quote {
    background: var(--surface-alt, #EEF6F5);
    border-left: 4px solid var(--accent, #40CD5A);
    padding: 18px 22px;
    font-style: italic;
    color: var(--text, #1A2F2C);
    border-radius: 2px;
}

.kb-detail-page .kb-points-list {
    list-style: disc;
    padding-left: 20px;
    color: var(--text-muted, #5A726E);
}

.kb-detail-page .kb-points-list li {
    margin-bottom: 8px;
}

.kb-detail-page .kb-points-list strong {
    color: var(--text, #1A2F2C);
}

.kb-detail-page .kb-author-card {
    background: var(--surface, #FFFFFF);
    border: 1px solid var(--border, #D8E4E2);
    padding: 26px;
    border-radius: 2px;
    box-shadow: 0 6px 18px rgba(16, 65, 58, 0.05);
}

.kb-detail-page .kb-author-img {
    width: 88px;
    height: 88px;
    border-radius: 50%;
    object-fit: cover;
    border: 2px solid var(--primary, #136C5F);
    flex-shrink: 0;
}

.kb-detail-page .kb-author-name {
    font-size: 20px;
    font-weight: 700;
    color: var(--text, #1A2F2C);
}

.kb-detail-page .kb-author-role {
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--primary, #136C5F);
}

.kb-detail-page .kb-author-bio {
    font-size: 14px;
    line-height: 1.6;
    color: var(--text-muted, #5A726E);
    overflow-wrap: anywhere;
}

.kb-detail-page .kb-tags-title {
    font-size: 14px;
    font-weight: 700;
    color: var(--text, #1A2F2C);
    margin-right: 6px;
}

.kb-detail-page .kb-split-cta-strip {
    background: var(--surface-alt, #EEF6F5);
    border: 1px solid var(--border, #D8E4E2);
    padding: 30px 28px;
    border-radius: 2px;
}

.kb-detail-page .kb-cta-title {
    font-size: 22px;
    font-weight: 700;
    color: var(--text, #1A2F2C);
    overflow-wrap: anywhere;
}

.kb-detail-page .kb-cta-desc {
    font-size: 15px;
    color: var(--text-muted, #5A726E);
    overflow-wrap: anywhere;
}

.kb-detail-page .kb-related-item {
    background: var(--surface, #FFFFFF);
    border: 1px solid var(--border, #D8E4E2);
    border-radius: 2px;
    padding: 14px 18px;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.kb-detail-page .kb-related-item:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 20px rgba(16, 65, 58, 0.08);
}

.kb-detail-page .kb-related-thumb {
    width: 120px;
    height: 80px;
    object-fit: cover;
    border-radius: 2px;
    border: 1px solid var(--border, #D8E4E2);
}

.kb-detail-page .kb-related-category {
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--primary, #136C5F);
    display: block;
    margin-bottom: 2px;
}

.kb-detail-page .kb-related-link {
    color: var(--text, #1A2F2C);
    font-size: 16px;
    font-weight: 700;
    text-decoration: none;
    line-height: 1.35;
    overflow-wrap: anywhere;
    transition: color 0.2s ease;
}

.kb-detail-page .kb-related-link:hover,
.kb-detail-page .kb-related-link:focus {
    color: var(--primary, #136C5F);
    text-decoration: underline;
    text-underline-offset: 3px;
}

.kb-detail-page .kb-newsletter-card {
    background: var(--dark-band-bg, linear-gradient(146deg, #10413A 0%, #12544A 100%));
    border-radius: 3px;
    color: var(--on-dark, #FFFFFF);
}

.kb-detail-page .kb-newsletter-heading {
    font-size: 20px;
    font-weight: 700;
    color: var(--on-dark, #FFFFFF);
}

.kb-detail-page .kb-newsletter-sub {
    font-size: 14px;
    color: var(--on-dark-muted, #B6C3C1);
}

.kb-detail-page .kb-newsletter-input {
    background: #FFFFFF;
    color: #1A2F2C;
    border: 1px solid var(--border, #D8E4E2);
    border-radius: 9999px;
    font-size: 14px;
    padding: 10px 18px;
}

.kb-detail-page .kb-newsletter-input::placeholder {
    color: #8A9E9B;
    opacity: 1;
}

.kb-detail-page .kb-consent-label {
    font-size: 12px;
    color: var(--on-dark-muted, #B6C3C1);
    line-height: 1.4;
}

.kb-detail-page .kb-consent-link {
    color: var(--accent, #40CD5A);
    text-decoration: underline;
}

.kb-detail-page .comment-card {
    background: var(--surface, #FFFFFF);
    border: 1px solid var(--border, #D8E4E2);
    border-radius: 3px;
    padding: 20px 22px;
    box-shadow: 0 4px 14px rgba(16, 65, 58, 0.04);
}

.kb-detail-page .avatar-initials {
    width: 42px;
    height: 42px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 700;
    font-size: 14px;
    flex-shrink: 0;
}

.kb-detail-page .avatar-initials--primary {
    background-color: var(--primary, #136C5F);
    color: var(--on-primary, #FFFFFF);
}

.kb-detail-page .avatar-initials--reply {
    background-color: var(--dark-band, #10413A);
    color: var(--on-dark, #FFFFFF);
}

.kb-detail-page .comment-author {
    font-size: 16px;
    font-weight: 700;
    color: var(--text, #1A2F2C);
}

.kb-detail-page .comment-role {
    font-size: 12px;
    color: var(--primary, #136C5F);
    font-weight: 600;
}

.kb-detail-page .comment-role--staff {
    color: var(--accent-text, #238435);
    font-weight: 700;
}

.kb-detail-page .meta-separator {
    color: var(--border, #D8E4E2);
    font-size: 10px;
}

.kb-detail-page .comment-time {
    font-size: 12px;
    color: var(--text-muted, #5A726E);
}

.kb-detail-page .comment-badge {
    background-color: var(--surface-alt, #EEF6F5);
    border: 1px solid var(--border, #D8E4E2);
    color: var(--primary, #136C5F);
    font-size: 12px;
    font-weight: 700;
    padding: 4px 10px;
    border-radius: 9999px;
    display: inline-flex;
    align-items: center;
    gap: 4px;
}

.kb-detail-page .verified-staff-tag {
    background: rgba(64, 205, 90, 0.15);
    color: var(--accent-text, #238435);
    font-size: 11px;
    font-weight: 700;
    padding: 3px 8px;
    border-radius: 4px;
    display: inline-flex;
    align-items: center;
    gap: 4px;
}

.kb-detail-page .staff-dot {
    width: 6px;
    height: 6px;
    background-color: var(--accent, #40CD5A);
    border-radius: 50%;
    display: inline-block;
}

.kb-detail-page .comment-text {
    font-size: 14px;
    line-height: 1.6;
    color: var(--text, #1A2F2C);
    margin-bottom: 0;
    overflow-wrap: anywhere;
}

.kb-detail-page .reply-mention {
    font-weight: 700;
    color: var(--primary, #136C5F);
    margin-right: 4px;
}

.kb-detail-page .comment-action-btn {
    background: transparent;
    border: 1px solid var(--border, #D8E4E2);
    color: var(--text-muted, #5A726E);
    font-size: 12px;
    font-weight: 600;
    padding: 4px 10px;
    border-radius: 9999px;
    display: inline-flex;
    align-items: center;
    gap: 5px;
    cursor: pointer;
    transition: all 0.2s ease;
}

.kb-detail-page .comment-action-btn:hover,
.kb-detail-page .comment-action-btn.active {
    background-color: var(--primary, #136C5F);
    color: var(--on-primary, #FFFFFF);
    border-color: var(--primary, #136C5F);
}

.kb-detail-page .comment-metrics,
.kb-detail-page .reply-status {
    font-size: 12px;
    color: var(--text-muted, #5A726E);
}

.kb-detail-page .reply-thread {
    border-left: 2px solid var(--border, #D8E4E2);
    margin-top: -12px;
    margin-bottom: 24px;
}

.kb-detail-page .kb-comment-form-wrap {
    background: var(--surface, #FFFFFF);
    border: 1px solid var(--border, #D8E4E2);
    border-radius: 3px;
    box-shadow: 0 4px 14px rgba(16, 65, 58, 0.04);
}

.kb-detail-page .kb-form-title {
    font-size: 20px;
    font-weight: 700;
    color: var(--text, #1A2F2C);
}

.kb-detail-page .kb-form-label {
    font-size: 13px;
    font-weight: 700;
    color: var(--text, #1A2F2C);
}

.kb-detail-page .kb-form-input {
    background: #FFFFFF;
    color: var(--text, #1A2F2C);
    border: 1px solid var(--border, #D8E4E2);
    border-radius: 3px;
    font-size: 14px;
    padding: 9px 12px;
}

.kb-detail-page .kb-form-input:focus {
    border-color: var(--primary, #136C5F);
    box-shadow: 0 0 0 2px rgba(19, 108, 95, 0.18);
    color: var(--text, #1A2F2C);
}

.kb-detail-page .kb-form-input::placeholder {
    color: #8A9E9B;
    opacity: 1;
}

#sessionfocus-footer.sf-footer {
    background-color: var(--dark-band, #10413A);
    color: var(--on-dark, #FFFFFF);
    padding-top: 56px;
    padding-bottom: 0;
    overflow-x: hidden;
}

#sessionfocus-footer .sf-disclaimer-wrapper {
    margin-bottom: 48px;
}

#sessionfocus-footer .sf-disclaimer-card {
    background-color: rgba(19, 108, 95, 0.18);
    border: 1px solid rgba(64, 205, 90, 0.35);
    border-left: 4px solid var(--accent, #40CD5A);
    border-radius: 4px;
    padding: 22px 24px;
}

#sessionfocus-footer .sf-disclaimer-header {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 10px;
}

#sessionfocus-footer .sf-disclaimer-badge-icon {
    font-size: 20px;
    color: var(--accent, #40CD5A);
    line-height: 1;
    flex-shrink: 0;
}

#sessionfocus-footer .sf-disclaimer-badge-title {
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--on-dark, #FFFFFF);
}

#sessionfocus-footer .sf-disclaimer-text {
    font-size: 14px;
    line-height: 1.6;
    color: var(--on-dark-muted, #B6C3C1);
    margin-bottom: 0;
    overflow-wrap: anywhere;
}

#sessionfocus-footer .sf-main-content {
    padding-bottom: 56px;
}

#sessionfocus-footer .sf-logo-wrap {
    margin-bottom: 16px;
}

#sessionfocus-footer .sf-footer-logo {
    width: 44px;
    height: 44px;
    object-fit: contain;
}

#sessionfocus-footer .sf-brand-title {
    font-size: 18px;
    font-weight: 800;
    color: var(--on-dark, #FFFFFF);
    letter-spacing: -0.01em;
}

#sessionfocus-footer .sf-brand-desc {
    font-size: 14px;
    line-height: 1.6;
    color: var(--on-dark-muted, #B6C3C1);
    margin-bottom: 0;
    max-width: 290px;
}

#sessionfocus-footer .sf-col-title {
    display: block;
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: var(--accent, #40CD5A);
    margin-bottom: 18px;
}

#sessionfocus-footer .sf-links-list {
    list-style: none;
    padding-left: 0;
    margin-bottom: 0;
    display: flex;
    flex-direction: column;
    gap: 10px;
}

#sessionfocus-footer .sf-link {
    color: var(--on-dark-muted, #B6C3C1);
    text-decoration: none;
    font-size: 14px;
    line-height: 1.5;
    transition: color 0.2s ease;
    overflow-wrap: anywhere;
}

#sessionfocus-footer .sf-link:hover,
#sessionfocus-footer .sf-link:focus {
    color: var(--on-dark, #FFFFFF);
    text-decoration: underline;
    text-underline-offset: 4px;
}

#sessionfocus-footer .sf-contact-block {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

#sessionfocus-footer .sf-contact-item {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    font-size: 14px;
    line-height: 1.5;
}

#sessionfocus-footer .sf-contact-icon {
    font-size: 18px;
    color: var(--accent, #40CD5A);
    line-height: 1.3;
    flex-shrink: 0;
}

#sessionfocus-footer .sf-contact-text {
    color: var(--on-dark-muted, #B6C3C1);
    overflow-wrap: anywhere;
}

#sessionfocus-footer .sf-bottom-bar {
    background-color: var(--primary, #136C5F);
    padding: 18px 0;
    color: var(--on-primary, #FFFFFF);
    border-top: 1px solid rgba(255, 255, 255, 0.1);
}

#sessionfocus-footer .sf-bottom-flex {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 14px;
}

#sessionfocus-footer .sf-copyright-text {
    font-size: 13px;
    font-weight: 500;
    color: var(--on-primary, #FFFFFF);
    line-height: 1.4;
}

#sessionfocus-footer .sf-legal-links {
    display: inline-flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 10px;
}

#sessionfocus-footer .sf-legal-link {
    font-size: 13px;
    font-weight: 500;
    color: var(--on-primary, #FFFFFF);
    text-decoration: none;
    transition: opacity 0.2s ease, text-decoration 0.2s ease;
}

#sessionfocus-footer .sf-legal-link:hover,
#sessionfocus-footer .sf-legal-link:focus {
    opacity: 0.85;
    text-decoration: underline;
    text-underline-offset: 3px;
}

#sessionfocus-footer .sf-legal-divider {
    color: rgba(255, 255, 255, 0.6);
    font-size: 11px;
}

@media (max-width: 991px) {
    .sf-header .sf-main-nav {
        padding: 0.5rem 0;
    }

    .sf-header .sf-brand-text {
        font-size: 18px;
    }

    .sf-header .sf-nav-list {
        padding-top: 1rem;
    }

    .sf-header .sf-nav-link {
        padding: 0.6rem 0.5rem;
    }

    .sf-header .sf-dropdown-menu {
        box-shadow: none;
        border: 1px solid var(--border, #D8E4E2);
        margin-left: 0.5rem;
        margin-bottom: 0.5rem;
        background-color: var(--surface-alt, #EEF6F5);
    }

    .sf-header .sf-header-btn {
        width: 100%;
        margin-bottom: 0.75rem;
    }

    .kb-article-hero .kb-hero-title {
        font-size: 30px;
    }
}

@media (max-width: 767px) {
    .kb-article-hero {
        padding: 40px 0 30px 0;
    }

    .kb-article-hero .kb-hero-title {
        font-size: 18px !important;
        line-height: 1.25 !important;
        hyphens: auto;
    }

    .kb-article-hero .kb-hero-subtitle {
        font-size: 14px !important;
        line-height: 1.45 !important;
        hyphens: auto;
    }

    .kb-detail-page .kb-prose-body h2 {
        font-size: 16px !important;
        line-height: 1.3 !important;
        hyphens: auto;
    }

    .kb-detail-page .kb-takeaways-title {
        font-size: 16px !important;
        hyphens: auto;
    }

    .kb-detail-page .kb-toc-heading,
    .kb-detail-page .kb-cta-title,
    .kb-detail-page .kb-newsletter-heading,
    .kb-detail-page .kb-form-title {
        font-size: 15px !important;
        hyphens: auto;
    }

    .kb-detail-page .kb-fact-val {
        font-size: 16px;
    }

    .kb-detail-page .kb-takeaways-box,
    .kb-detail-page .kb-comment-form-wrap,
    .kb-detail-page .kb-split-cta-strip {
        padding: 18px 16px;
    }

    #sessionfocus-footer.sf-footer {
        padding-top: 40px;
    }

    #sessionfocus-footer .sf-disclaimer-wrapper {
        margin-bottom: 32px;
    }

    #sessionfocus-footer .sf-disclaimer-card {
        padding: 16px 18px;
    }

    #sessionfocus-footer .sf-main-content {
        padding-bottom: 40px;
    }

    #sessionfocus-footer .sf-bottom-flex {
        flex-direction: column;
        align-items: flex-start;
        gap: 12px;
    }

    #sessionfocus-footer .sf-legal-links {
        width: 100%;
        justify-content: flex-start;
    }
}

/* mobile-text-guard */
@media (max-width: 767px) {
  h1, h2, h3, h4, h5, h6, p, li, dt, dd, blockquote, figcaption, td, th, label {
    overflow-wrap: anywhere;
  }
  a, button, .btn {
    overflow-wrap: anywhere;
    white-space: normal;
  }
  img, video, iframe {
    max-width: 100%;
  }
}

/* =====================================================================
   2026-10 fixes: header menu, hero readability on mobile, card grids,
   button hover contrast, button text wrapping
   ===================================================================== */

/* --- header: dropdown + mobile menu (behaviour lives in frontend/site.js) --- */
.sf-header .sf-dropdown .dropdown-toggle::after {
    transition: transform 0.2s ease;
}

.sf-header .sf-dropdown .dropdown-toggle.show::after {
    transform: rotate(180deg);
}

@media (min-width: 992px) {
    /* invisible bridge over the gap between the link and the menu, so hover doesn't drop */
    .sf-header .sf-dropdown-menu::before {
        content: "";
        position: absolute;
        left: 0;
        right: 0;
        top: -0.75rem;
        height: 0.75rem;
    }
}

@media (min-width: 992px) and (hover: hover) {
    .sf-header .sf-dropdown:hover > .sf-dropdown-menu {
        display: block;
    }
}

@media (max-width: 991.98px) {
    .sf-header .navbar-collapse {
        max-height: calc(100vh - 76px);
        overflow-y: auto;
    }

    /* inside the burger menu the submenu pushes the next items down instead of covering them */
    .sf-header .sf-dropdown-menu {
        position: static !important;
        inset: auto !important;
        transform: none !important;
        float: none;
        min-width: 0;
        margin: 0.25rem 0 0.75rem 0.5rem;
    }
}

/* --- hero blocks: readable text on phones --- */
.category-hero-section .lead.text-white-50 {
    color: rgba(255, 255, 255, 0.86) !important;
}

@media (max-width: 767.98px) {
    html body .category-hero-section .hero-title,
    html body .hero-focus-block .hero-title,
    html body .fm-detail-hero .fm-hero-title,
    html body .wf-hero .wf-hero-title,
    html body .kb-article-hero .kb-hero-title {
        font-size: 28px !important;
        line-height: 1.2 !important;
        font-weight: 800;
        color: #FFFFFF;
        hyphens: manual !important;
        overflow-wrap: break-word !important;
        text-shadow: 0 1px 12px rgba(0, 0, 0, 0.25);
    }

    html body .category-hero-section .lead,
    html body .hero-focus-block .hero-subhead,
    html body .fm-detail-hero .fm-hero-subtitle,
    html body .wf-hero .wf-hero-subtitle,
    html body .kb-article-hero .kb-hero-subtitle {
        font-size: 16px !important;
        line-height: 1.6 !important;
        color: rgba(255, 255, 255, 0.9) !important;
        hyphens: manual !important;
        overflow-wrap: break-word !important;
    }

    html body .hero-focus-block .hero-lead-line,
    html body .category-hero-section .hm-eyebrow {
        font-size: 12.5px !important;
        letter-spacing: 0.08em;
    }

    /* the video/photo behind the hero is busier on a small screen: darken it more */
    .hero-focus-block .hero-video-overlay {
        background: linear-gradient(160deg, rgba(9, 44, 39, 0.94) 0%, rgba(14, 66, 58, 0.9) 100%);
    }

    .category-hero-section {
        background-image: linear-gradient(160deg, rgba(9, 44, 39, 0.95) 0%, rgba(14, 66, 58, 0.93) 100%), url('../site-files/photos/pics/audio-session-mixing-console-desk.png') !important;
    }

    html body .fm-detail-hero .fm-breadcrumbs,
    html body .fm-detail-hero .fm-crumb-link,
    html body .wf-hero .wf-breadcrumb-link,
    html body .kb-article-hero .breadcrumb-item a,
    html body .hero-focus-block .sf-breadcrumb-link {
        color: rgba(255, 255, 255, 0.82);
    }

    /* hero buttons: same width, one per row */
    .hero-focus-block .hero-btn-group .hm-btn,
    .hero-focus-block .hero-btn-group .hm-btn-alt,
    .wf-hero .hm-btn,
    .wf-hero .hm-btn-alt {
        width: 100%;
        justify-content: center;
    }
}

/* --- buttons: never split a word in the middle (mobile text guard did that) --- */
.hm-btn,
.hm-btn-alt,
.sf-header-btn,
.about-btn-white,
.about-tab-btn,
.kb-action-btn,
.kb-subscribe-btn,
.sfa-submit-btn,
.sf-filter-btn,
.focus-filter-btn,
.kb-filter-pill,
.pt-step-btn {
    overflow-wrap: normal !important;
    word-break: normal !important;
    hyphens: none !important;
    text-align: center;
}

@media (max-width: 767px) {
    button,
    .btn {
        overflow-wrap: normal;
        word-break: normal;
    }
}

/* --- buttons on dark backgrounds: hover must not melt into the panel --- */
.hm-section-dark .hm-btn:hover,
.hm-section-dark .hm-btn:focus-visible,
.hm-on-dark .hm-btn:hover,
.hm-on-dark .hm-btn:focus-visible,
.hero-focus-block .hero-btn-group .hm-btn:hover,
.hero-focus-block .hero-btn-group .hm-btn:focus-visible {
    background-color: #FFFFFF;
    color: var(--dark-band, #10413A);
}

.hm-section-dark .hm-btn-alt:hover,
.hm-section-dark .hm-btn-alt:focus-visible,
.hm-on-dark .hm-btn-alt:hover,
.hm-on-dark .hm-btn-alt:focus-visible,
.hero-focus-block .hero-btn-group .hm-btn-alt:hover,
.hero-focus-block .hero-btn-group .hm-btn-alt:focus-visible {
    background-color: #FFFFFF;
    border-color: #FFFFFF;
    color: var(--dark-band, #10413A);
}

/* cards sitting inside dark bands keep the normal light-surface hover */
.hm-section-dark .hm-card .hm-btn:hover,
.hm-on-dark .hm-card .hm-btn:hover {
    background-color: var(--primary-hover, #0E4E44);
    color: var(--on-primary, #FFFFFF);
}

.hm-section-dark .hm-card .hm-btn-alt:hover,
.hm-on-dark .hm-card .hm-btn-alt:hover {
    background-color: var(--surface-alt, #EEF6F5);
    border-color: var(--primary, #136C5F);
    color: var(--primary-hover, #0E4E44);
}

/* about.html CTA panel: the outline button had white text forced by .text-white,
   so on hover (light background) the label disappeared */
.about-block .about-cta-panel .hm-btn-alt:hover,
.about-block .about-cta-panel .hm-btn-alt:focus-visible {
    background-color: #FFFFFF;
    border-color: #FFFFFF !important;
    color: var(--dark-band, #10413A) !important;
}

.about-block .about-btn-white:hover,
.about-block .about-btn-white:focus-visible {
    background: var(--accent, #40CD5A);
    color: #0B2F2A;
}

/* about.html stage tabs: hovering the active (green) tab turned its text dark green */
.about-block .about-tab-btn.active:hover,
.about-block .about-tab-btn.active:focus-visible {
    background: var(--primary-hover, #0E4E44);
    border-color: var(--primary-hover, #0E4E44);
    color: var(--on-primary, #FFFFFF);
}

/* --- session-workflows.html: article cards, two per row --- */
.sf-workflows-block .sf-wf-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 24px;
    max-width: 1140px;
    margin: 0 auto;
}

.sf-workflows-block .sf-wf-card {
    padding: 0;
    overflow: hidden;
    text-align: center;
    height: 100%;
}

.sf-workflows-block .sf-wf-media {
    position: relative;
    display: block;
    aspect-ratio: 4 / 3;
    overflow: hidden;
    background: var(--surface-alt, #EEF6F5);
}

.sf-workflows-block .sf-wf-media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.35s ease;
}

.sf-workflows-block .sf-wf-card:hover .sf-wf-media img {
    transform: scale(1.03);
}

.sf-workflows-block .sf-wf-tag {
    position: absolute;
    top: 12px;
    left: 12px;
    background: var(--primary, #136C5F);
    color: var(--on-primary, #FFFFFF);
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    padding: 4px 10px;
    border-radius: 2px;
}

.sf-workflows-block .sf-wf-body {
    display: flex;
    flex-direction: column;
    align-items: center;
    flex: 1 1 auto;
    padding: 24px 22px 22px;
}

.sf-workflows-block .sf-wf-kicker {
    color: var(--text-muted, #5A726E);
    font-size: 0.8125rem;
    font-weight: 600;
    letter-spacing: 0.02em;
    margin-bottom: 8px;
}

.sf-workflows-block .sf-wf-title {
    font-size: 1.35rem;
    font-weight: 800;
    line-height: 1.35;
    margin-bottom: 10px;
}

.sf-workflows-block .sf-wf-title .sf-title-link {
    color: var(--text, #1A2F2C);
    text-decoration: none;
}

.sf-workflows-block .sf-wf-title .sf-title-link:hover {
    color: var(--primary, #136C5F);
}

.sf-workflows-block .sf-wf-text {
    color: var(--text-muted, #5A726E);
    font-size: 0.95rem;
    line-height: 1.6;
    margin-bottom: 20px;
}

.sf-workflows-block .sf-wf-btn {
    margin-top: auto;
    width: 100%;
    gap: 8px;
    padding: 12px 24px;
}

@media (max-width: 767.98px) {
    .sf-workflows-block .sf-wf-grid {
        grid-template-columns: 1fr;
        gap: 18px;
    }

    .sf-workflows-block .sf-wf-title {
        font-size: 1.15rem;
    }

    .sf-workflows-block .sf-wf-body {
        padding: 20px 16px 18px;
    }
}

/* --- pro tools guide: stage navigation --- */
@media (max-width: 767.98px) {
    .pt-workflow-nav {
        flex-direction: column !important;
        flex-wrap: nowrap !important;
        overflow: visible !important;
    }

    .pt-workflow-nav .pt-step-btn {
        width: 100%;
        justify-content: flex-start;
        text-align: left;
        white-space: normal;
        border-radius: 10px;
        padding: 10px 14px;
        font-size: 0.9rem;
    }

    .pt-stage-nav {
        flex-direction: column;
        align-items: stretch !important;
    }

    .pt-stage-nav .hm-btn,
    .pt-stage-nav .hm-btn-alt {
        width: 100%;
        white-space: nowrap;
        justify-content: center;
    }
}

/* =====================================================================
   Focus Map components: main question + chain, featured case panel
   ===================================================================== */
.fmc-head {
    max-width: 800px;
    margin-bottom: 44px;
}

.fmc-lead {
    color: var(--text-muted, #5A726E);
    font-size: 17px;
    line-height: 1.65;
}

.fmc-chain {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 24px;
    padding: 0;
}

.fmc-step {
    position: relative;
    display: flex;
}

/* connector arrow between steps */
.fmc-step:not(:last-child)::after {
    content: "";
    position: absolute;
    top: 50px;
    right: -17px;
    width: 10px;
    height: 10px;
    border-top: 2px solid var(--primary, #136C5F);
    border-right: 2px solid var(--primary, #136C5F);
    transform: rotate(45deg);
    z-index: 1;
}

.fmc-link {
    display: grid;
    grid-template-columns: 48px minmax(0, 1fr);
    grid-template-rows: auto auto 1fr;
    column-gap: 16px;
    row-gap: 4px;
    align-content: start;
    width: 100%;
    padding: 22px 22px 20px;
    background: var(--surface, #FFFFFF);
    border: 1px solid var(--border, #D8E4E2);
    border-top: 3px solid var(--primary, #136C5F);
    border-radius: 3px;
    color: var(--text, #1A2F2C);
    text-decoration: none;
    box-shadow: 0 8px 24px rgba(16, 65, 58, 0.05);
    transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease;
}

.fmc-link:hover,
.fmc-link:focus-visible {
    transform: translateY(-3px);
    border-color: var(--primary, #136C5F);
    box-shadow: 0 14px 28px rgba(16, 65, 58, 0.1);
    color: var(--text, #1A2F2C);
}

.fmc-icon {
    grid-column: 1;
    grid-row: 1 / span 3;
    align-self: start;
}

.fmc-num,
.fmc-name,
.fmc-desc {
    grid-column: 2;
}

.fmc-num {
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.1em;
    color: var(--primary, #136C5F);
}

.fmc-icon {
    width: 48px;
    height: 48px;
    border-radius: 2px;
    background: var(--primary, #136C5F);
    color: var(--on-primary, #FFFFFF);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 20px;
}

.fmc-step:nth-child(5) .fmc-icon {
    background: var(--dark-band, #10413A);
}

.fmc-step:nth-child(6) .fmc-icon {
    background: var(--surface-alt, #EEF6F5);
    color: var(--primary, #136C5F);
    border: 1px dashed #9FBDB8;
}

.fmc-name {
    font-size: 17px;
    font-weight: 800;
    line-height: 1.25;
}

.fmc-desc {
    margin-top: 4px;
    font-size: 14px;
    line-height: 1.55;
    color: var(--text-muted, #5A726E);
}

/* three per row: no arrow after the last card of the first row */
@media (min-width: 768px) {
    .fmc-step:nth-child(3)::after {
        display: none;
    }
}

@media (max-width: 767.98px) {
    .fmc-head {
        margin-bottom: 28px;
    }

    .fmc-lead {
        font-size: 16px;
    }

    .fmc-chain {
        grid-template-columns: 1fr;
        gap: 14px;
    }

    .fmc-step:not(:last-child)::after,
    .fmc-step:nth-child(3)::after {
        display: block;
        top: auto;
        bottom: -12px;
        right: auto;
        left: 32px;
        transform: rotate(135deg);
    }

    .fmc-link {
        display: grid;
        grid-template-columns: 40px 1fr;
        column-gap: 14px;
        row-gap: 4px;
        align-items: center;
        padding: 16px;
    }

    .fmc-num {
        grid-column: 2;
        grid-row: 1;
    }

    .fmc-icon {
        grid-column: 1;
        grid-row: 1 / span 2;
    }

    .fmc-name {
        grid-column: 2;
        grid-row: 2;
    }

    .fmc-desc {
        grid-column: 1 / -1;
        margin-top: 6px;
    }
}

/* --- featured case --- */
.fcase-section .fcase-lead {
    font-size: 17px;
    line-height: 1.65;
    color: rgba(255, 255, 255, 0.86);
}

.fcase-facts {
    display: grid;
    gap: 12px;
    margin: 0 0 28px;
}

.fcase-fact {
    padding: 12px 16px;
    border-left: 3px solid var(--accent, #40CD5A);
    background: rgba(255, 255, 255, 0.07);
    border-radius: 0 3px 3px 0;
}

.fcase-fact dt {
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--accent, #40CD5A);
    margin-bottom: 4px;
}

.fcase-fact dd {
    margin: 0;
    color: #FFFFFF;
    font-weight: 600;
}

.fcase-groups {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.fcase-group-chip {
    display: inline-block;
    padding: 3px 10px;
    border: 1px solid rgba(255, 255, 255, 0.3);
    border-radius: 9999px;
    font-size: 13px;
    font-weight: 600;
    color: #FFFFFF;
}

.fcase-map {
    background: var(--surface, #FFFFFF);
    color: var(--text, #1A2F2C);
    border: 1px solid var(--border, #D8E4E2);
    border-radius: 4px;
    box-shadow: 0 24px 48px rgba(6, 30, 26, 0.18);
    overflow: hidden;
    text-align: left;
}

.fcase-map-head {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 14px 18px;
    background: var(--surface-alt, #EEF6F5);
    border-bottom: 1px solid var(--border, #D8E4E2);
}

.fcase-map-title {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 15px;
    font-weight: 800;
    color: var(--text, #1A2F2C);
}

.fcase-task {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 4px 12px;
    border: 1px solid var(--border, #D8E4E2);
    border-radius: 9999px;
    background: #FFFFFF;
    font-size: 13px;
    font-weight: 700;
    color: var(--primary, #136C5F);
}

.fcase-group {
    padding: 14px 18px;
    border-bottom: 1px solid var(--border, #D8E4E2);
}

.fcase-group:last-child {
    border-bottom: 0;
}

.fcase-label {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 10px;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--text-muted, #5A726E);
}

.fcase-pinned .fcase-label {
    color: var(--primary, #136C5F);
}

.fcase-lanes,
.fcase-chips {
    list-style: none;
    margin: 0;
    padding: 0;
}

.fcase-lanes {
    display: grid;
    gap: 6px;
}

.fcase-lane {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 9px 12px;
    background: #FFFFFF;
    border: 1px solid var(--border, #D8E4E2);
    border-left: 4px solid var(--border, #D8E4E2);
    border-radius: 3px;
    font-size: 14px;
    font-weight: 600;
    color: var(--text, #1A2F2C);
}

.fcase-lane i {
    color: var(--primary, #136C5F);
}

.fcase-pinned .fcase-lane {
    border-left-color: var(--primary, #136C5F);
    background: #F2FAF8;
}

.fcase-expanded .fcase-lane {
    border-left-color: var(--accent, #40CD5A);
}

.fcase-expanded .fcase-sub {
    margin-left: 24px;
    padding: 6px 12px;
    font-size: 13px;
    font-weight: 500;
    color: var(--text-muted, #5A726E);
}

.fcase-state {
    margin-left: auto;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--accent-text, #238435);
}

.fcase-support .fcase-lane {
    padding: 6px 12px;
    font-size: 13px;
    border-left-color: #9DB8B3;
}

.fcase-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.fcase-chip {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 6px 12px;
    background: var(--surface-alt, #EEF6F5);
    border: 1px dashed #B5CAC6;
    border-radius: 3px;
    font-size: 13.5px;
    font-weight: 600;
    color: var(--text-muted, #5A726E);
}

@media (max-width: 767.98px) {
    .fcase-section .fcase-lead {
        font-size: 16px;
    }

    .fcase-group,
    .fcase-map-head {
        padding: 12px 14px;
    }
}

/* =====================================================================
   Pro Tools brand page (/guides/pro-tools-session-focus/)
   ===================================================================== */
.pt-guide-page .pt-guide-block {
    padding: 72px 0;
}

.pt-guide-page .pt-guide-block + .pt-guide-block {
    border-top: 1px solid var(--border, #D8E4E2);
}

.pt-facts {
    padding: 0;
}

.pt-fact {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 6px 14px;
    border: 1px solid rgba(255, 255, 255, 0.28);
    border-radius: 9999px;
    background: rgba(255, 255, 255, 0.07);
    color: #FFFFFF;
    font-size: 14px;
    font-weight: 600;
}

.pt-fact-key {
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--accent, #40CD5A);
}

/* featured workflow: the seven steps read as one flow */
.pt-flow {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 12px 0;
    margin: 0 0 28px;
    padding: 0;
    overflow: visible !important;
}

.pt-flow-item {
    display: flex;
    align-items: center;
}

.pt-flow-item:not(:last-child)::after {
    content: "";
    width: 9px;
    height: 9px;
    margin: 0 12px 0 8px;
    border-top: 2px solid var(--primary, #136C5F);
    border-right: 2px solid var(--primary, #136C5F);
    transform: rotate(45deg);
    opacity: 0.7;
}

/* session map: vertical map with folder blocks + fixed focus rail */
.sm-layout {
    display: grid;
    grid-template-columns: 300px minmax(0, 1fr);
    gap: 28px;
    align-items: start;
}

.sm-rail {
    position: sticky;
    top: 132px;
}

.sm-rail-inner {
    padding: 20px;
    background: var(--dark-band, #10413A);
    color: #FFFFFF;
    border-radius: 4px;
    box-shadow: 0 16px 36px rgba(16, 65, 58, 0.18);
}

.sm-rail-title {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 14px;
    font-size: 16px;
    font-weight: 800;
}

.sm-rail-key {
    display: block;
    margin-bottom: 6px;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--accent, #40CD5A);
}

.sm-rail-task {
    margin-bottom: 16px;
    padding: 10px 12px;
    background: rgba(255, 255, 255, 0.08);
    border-radius: 3px;
    font-weight: 700;
}

.sm-pins {
    display: grid;
    gap: 6px;
    margin: 0 0 16px;
    padding: 0;
}

.sm-pin {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px 10px;
    background: #FFFFFF;
    color: var(--text, #1A2F2C);
    border-left: 4px solid var(--accent, #40CD5A);
    border-radius: 3px;
    font-size: 14px;
    font-weight: 700;
}

.sm-pin i {
    color: var(--primary, #136C5F);
}

.sm-meter {
    display: flex;
    align-items: baseline;
    flex-wrap: wrap;
    gap: 4px 8px;
    margin-bottom: 14px;
    padding: 12px 0;
    border-top: 1px solid rgba(255, 255, 255, 0.15);
    border-bottom: 1px solid rgba(255, 255, 255, 0.15);
}

.sm-meter-num {
    font-size: 22px;
    font-weight: 800;
}

.sm-meter-label {
    font-size: 13px;
    color: rgba(255, 255, 255, 0.78);
}

.sm-controls {
    display: grid;
    gap: 8px;
}

.sm-ctrl {
    display: flex;
    align-items: center;
    gap: 8px;
    width: 100%;
    padding: 9px 14px;
    border: 1px solid rgba(255, 255, 255, 0.35);
    border-radius: 9999px;
    background: transparent;
    color: #FFFFFF;
    font-size: 14px;
    font-weight: 700;
    text-align: left;
    cursor: pointer;
    transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}

.sm-ctrl:hover,
.sm-ctrl:focus-visible {
    background: #FFFFFF;
    border-color: #FFFFFF;
    color: var(--dark-band, #10413A);
}

.sm-ctrl.is-active {
    background: var(--accent, #40CD5A);
    border-color: var(--accent, #40CD5A);
    color: #0B2F2A;
}

.sm-map {
    display: grid;
    gap: 10px;
    padding: 14px;
    background: var(--surface, #FFFFFF);
    border: 1px solid var(--border, #D8E4E2);
    border-radius: 4px;
    box-shadow: 0 8px 24px rgba(16, 65, 58, 0.05);
}

.sm-pinned-strip {
    position: sticky;
    top: 132px;
    z-index: 2;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px 8px;
    padding: 8px 12px;
    background: #F2FAF8;
    border: 1px solid #A9D3C9;
    border-left: 4px solid var(--primary, #136C5F);
    border-radius: 3px;
    box-shadow: 0 6px 14px rgba(16, 65, 58, 0.08);
}

/* hide lanes scrolling through the gap between the sticky header and the pinned strip */
.sm-pinned-strip::before {
    content: "";
    position: absolute;
    left: -16px;
    right: -16px;
    bottom: 100%;
    height: 20px;
    background: var(--surface, #FFFFFF);
}

.sm-strip-key {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin-right: 4px;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--primary, #136C5F);
}

.sm-strip-track {
    padding: 3px 10px;
    background: #FFFFFF;
    border: 1px solid var(--border, #D8E4E2);
    border-radius: 2px;
    font-size: 13px;
    font-weight: 700;
    color: var(--text, #1A2F2C);
}

.sm-folder {
    background: #FFFFFF;
    border: 1px solid var(--border, #D8E4E2);
    border-left: 5px solid #B5CAC6;
    border-radius: 3px;
}

.sm-folder--critical {
    border-left-color: var(--accent, #40CD5A);
}

.sm-folder--support {
    border-left-color: #8FB3AC;
}

.sm-folder--collapsed:not([open]) {
    background: var(--surface-alt, #EEF6F5);
}

.sm-folder-head,
.sm-sub-head {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px 10px;
    padding: 12px 14px;
    list-style: none;
    font-weight: 700;
    cursor: pointer;
}

.sm-folder-head::-webkit-details-marker,
.sm-sub-head::-webkit-details-marker {
    display: none;
}

.sm-folder-head::marker,
.sm-sub-head::marker {
    content: "";
}

.sm-folder-head:focus-visible,
.sm-sub-head:focus-visible {
    outline: 2px solid var(--primary, #136C5F);
    outline-offset: -2px;
}

.sm-folder-icon {
    font-size: 18px;
    color: var(--primary, #136C5F);
}

.sm-folder-name {
    font-size: 15.5px;
    color: var(--text, #1A2F2C);
}

.sm-role {
    padding: 3px 8px;
    background: var(--surface-alt, #EEF6F5);
    border-radius: 2px;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--text-muted, #5A726E);
}

.sm-folder--critical .sm-role {
    background: rgba(64, 205, 90, 0.16);
    color: var(--accent-text, #238435);
}

.sm-count {
    margin-left: auto;
    font-size: 13px;
    font-weight: 600;
    color: var(--text-muted, #5A726E);
    white-space: nowrap;
}

.sm-caret {
    color: var(--text-muted, #5A726E);
    transition: transform 0.2s ease;
}

details[open] > summary .sm-caret {
    transform: rotate(180deg);
}

.sm-folder-body {
    display: grid;
    gap: 8px;
    padding: 0 14px 14px;
}

.sm-sub {
    background: #FBFDFD;
    border: 1px solid var(--border, #D8E4E2);
    border-radius: 3px;
}

.sm-sub-head {
    padding: 9px 12px;
    font-size: 14px;
}

.sm-sub-head .sm-folder-name {
    font-size: 14px;
}

.sm-lanes {
    display: grid;
    gap: 5px;
    margin: 0;
    padding: 0 12px 12px;
}

.sm-folder-body > .sm-lanes {
    padding: 0;
}

.sm-lane {
    display: grid;
    grid-template-columns: 150px minmax(0, 1fr);
    align-items: center;
    gap: 12px;
    height: 40px;
    padding: 0 10px;
    background: #FFFFFF;
    border: 1px solid var(--border, #D8E4E2);
    border-radius: 2px;
    font-size: 13px;
    font-weight: 600;
    color: var(--text, #1A2F2C);
}

.sm-lane--small {
    height: 26px;
    font-size: 12px;
}

.sm-lane-name {
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
}

.sm-wave {
    height: 70%;
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='24' viewBox='0 0 120 24'%3E%3Cpath d='M2 9v6M6 6v12M10 10v4M14 4v16M18 8v8M22 11v2M26 7v10M30 3v18M34 9v6M38 6v12M42 10v4M46 5v14M50 9v6M54 2v20M58 8v8M62 11v2M66 6v12M70 4v16M74 9v6M78 7v10M82 10v4M86 5v14M90 8v8M94 3v18M98 9v6M102 11v2M106 6v12M110 4v16M114 9v6M118 7v10' stroke='%23136C5F' stroke-width='2' stroke-linecap='round' opacity='.5'/%3E%3C/svg%3E") left center / auto 100% repeat-x;
}

.sm-more {
    padding: 2px 4px 0;
    font-size: 12.5px;
    font-style: italic;
    color: var(--text-muted, #5A726E);
}

/* product boundary */
.pt-boundary {
    max-width: 920px;
    margin: 0 auto;
    padding: 32px;
    background: var(--surface, #FFFFFF);
    border: 1px solid var(--border, #D8E4E2);
    border-left: 5px solid var(--primary, #136C5F);
    border-radius: 4px;
    box-shadow: 0 8px 24px rgba(16, 65, 58, 0.05);
}

.pt-boundary-head {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 16px;
}

.pt-boundary-head i {
    font-size: 28px;
    color: var(--primary, #136C5F);
}

.pt-boundary p {
    margin-bottom: 12px;
    font-size: 16.5px;
    line-height: 1.65;
    color: var(--text, #1A2F2C);
}

.pt-boundary .pt-boundary-note {
    margin-top: 6px;
    padding-top: 14px;
    border-top: 1px solid var(--border, #D8E4E2);
    font-size: 14px;
    color: var(--text-muted, #5A726E);
}

@media (max-width: 991.98px) {
    .sm-layout {
        grid-template-columns: 1fr;
    }

    .sm-rail {
        position: static;
    }

    .sm-controls {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .sm-pinned-strip {
        top: 112px;
    }
}

@media (max-width: 767.98px) {
    .pt-guide-page .pt-guide-block {
        padding: 48px 0;
    }

    .pt-flow {
        flex-direction: column;
        flex-wrap: nowrap;
        gap: 0;
    }

    .pt-flow-item {
        flex-direction: column;
        width: 100%;
    }

    .pt-flow-item:not(:last-child)::after {
        margin: 6px 0 8px;
        transform: rotate(135deg);
    }

    .sm-controls {
        grid-template-columns: 1fr;
    }

    .sm-pinned-strip {
        top: 74px;
    }

    .sm-map {
        padding: 10px;
    }

    .sm-lane {
        grid-template-columns: 112px minmax(0, 1fr);
        gap: 8px;
    }

    .sm-folder-head,
    .sm-sub-head {
        padding: 10px 12px;
    }

    .sm-count {
        margin-left: 0;
    }

    .pt-boundary {
        padding: 22px 18px;
    }

    .pt-boundary p {
        font-size: 15.5px;
    }

    .pt-hero-actions .hm-btn,
    .pt-hero-actions .hm-btn-alt {
        width: 100%;
        justify-content: center;
    }
}

/* heading sizes inside cards on the brand page (.hm-title was overriding .h3/.h4/.h5) */
.pt-guide-page .hm-title.h5 {
    font-size: 1.3rem;
    line-height: 1.3;
}

.pt-guide-page .hm-title.h4 {
    font-size: 1.65rem;
    line-height: 1.3;
}

.pt-guide-page .hm-title.h3 {
    font-size: 1.75rem;
}

@media (max-width: 767.98px) {
    .pt-guide-page .hm-title.h4 {
        font-size: 1.35rem;
    }
}

/* knowledge-base articles: "Subscribe" sits on a dark card, keep its hover visible */
.kb-detail-page .kb-newsletter-card .hm-btn:hover,
.kb-detail-page .kb-newsletter-card .hm-btn:focus-visible {
    background-color: #FFFFFF;
    color: var(--dark-band, #10413A);
}

/* below 1200px: slimmer side padding so button labels stay on one line */
@media (max-width: 1199.98px) {
    .hm-btn,
    .hm-btn-alt {
        padding-left: 20px;
        padding-right: 20px;
    }
}

@media (max-width: 575.98px) {
    .hm-btn,
    .hm-btn-alt {
        padding-left: 18px;
        padding-right: 18px;
    }

    .hm-btn.w-100,
    .hm-btn-alt.w-100 {
        font-size: 15px;
    }
}

/* about.html: three nested padded boxes left too little room on phones */
@media (max-width: 575.98px) {
    .about-block .about-interactive-box,
    .about-block .about-stage-display {
        padding: 16px !important;
    }
}

/* buttons next to text in a flex row were squeezed into two lines */
.sfa-table-cta .hm-btn {
    flex-shrink: 0;
    white-space: nowrap;
}

.sf-thx-actions {
    flex-wrap: wrap;
    justify-content: center;
}

.sf-thx-actions .hm-btn,
.sf-thx-actions .hm-btn-alt {
    white-space: nowrap;
}

/* home focus-map cards: card padding + inner padding left the button too narrow */
.focus-maps-section .focus-map-content {
    padding-left: 4px;
    padding-right: 4px;
}

/* focus-map articles: anchored sections land below the sticky header */
.fm-section-title[id] {
    scroll-margin-top: 140px;
}

/* any element opened by an #anchor: keep it clear of the sticky header */
:target {
    scroll-margin-top: 140px;
}

@media (max-width: 767.98px) {
    :target,
    .fm-section-title[id] {
        scroll-margin-top: 90px;
    }
}
