/* site palette */
html:root {
    --bg: #F9F7F0;
    --surface: #FFFFFF;
    --surface-alt: #F4E5E7;
    --text: #252115;
    --text-muted: #6D6655;
    --border: #E4E1D8;
    --primary: #6B2932;
    --primary-hover: #511F26;
    --on-primary: #FFFFFF;
    --primary-text: #6B2932;
    --accent: #D5CBB7;
    --on-accent: #111111;
    --accent-text: #806E4A;
    --dark-band: #2F1216;
    --on-dark: #FFFFFF;
    --on-dark-muted: #C3C0B6;
    --brand-btn-bg: #FFFFFF;
    --brand-btn-text: #2F1216;
    --section-alt-bg: linear-gradient(161deg, #F4E5E7 0%, #F7F0EC 100%);
    --dark-band-bg: linear-gradient(154deg, #2F1216 0%, #4A1C22 100%);
    --brand-band-bg: #6B2932;
    --hero-bg: linear-gradient(154deg, #2F1216 0%, #4A1C22 100%);
}

html:root {
    --bs-primary: #6B2932;
    --bs-primary-rgb: 107, 41, 50;
    --bs-link-color: #6B2932;
    --bs-link-color-rgb: 107, 41, 50;
    --bs-link-hover-color: #511F26;
    --mdb-primary: #6B2932;
    --mdb-primary-rgb: 107, 41, 50;
}

.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: 'Nunito', sans-serif;
    background-color: var(--bg);
    color: var(--text);
    line-height: 1.6;
    margin: 0;
    text-rendering: optimizeLegibility;
    -webkit-font-smoothing: antialiased;
}

a,
button {
    transition: all 0.35s cubic-bezier(0.16, 1, 0.3, 1);
}

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

.fr-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-family: 'Nunito', sans-serif;
    font-size: 0.9375rem;
    font-weight: 700;
    line-height: 1;
    letter-spacing: 0.01em;
    background-color: var(--primary);
    color: var(--on-primary);
    border: none;
    border-radius: 12px;
    padding: 14px 28px;
    box-shadow: 0 8px 20px -4px rgba(107, 41, 50, 0.35);
    text-decoration: none;
    cursor: pointer;
}

.fr-btn:hover,
.fr-btn:focus {
    background-color: var(--primary-hover);
    color: var(--on-primary);
    transform: translateY(-3px) scale(1.02);
    box-shadow: 0 16px 28px -6px rgba(107, 41, 50, 0.45);
}

.fr-btn-alt {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-family: 'Nunito', sans-serif;
    font-size: 0.9375rem;
    font-weight: 700;
    line-height: 1;
    letter-spacing: 0.01em;
    background-color: transparent;
    color: var(--primary-text);
    border: 1.5px solid var(--primary);
    border-radius: 12px;
    padding: 12px 26px;
    text-decoration: none;
    cursor: pointer;
}

.fr-btn-alt:hover,
.fr-btn-alt:focus {
    background-color: rgba(107, 41, 50, 0.05);
    color: var(--primary-hover);
    border-color: var(--primary-hover);
    transform: translateY(-2px);
}

.fr-card {
    background-color: var(--surface);
    color: var(--text);
    border: 1px solid var(--border);
    border-radius: 16px;
    box-shadow: 0 20px 40px -15px rgba(107, 41, 50, 0.08);
    padding: 24px;
    display: flex;
    flex-direction: column;
    position: relative;
    transition: transform 0.35s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.35s cubic-bezier(0.16, 1, 0.3, 1);
}

.fr-card:hover {
    transform: translateY(-6px);
    box-shadow: 0 34px 68px -10px rgba(47, 18, 22, 0.22), 0 16px 32px -6px rgba(107, 41, 50, 0.14);
}

.fr-card .fr-btn,
.fr-card .fr-btn-alt {
    margin-top: auto;
}

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

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

.fr-eyebrow {
    display: inline-block;
    font-size: 0.8125rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--accent-text);
    margin-bottom: 8px;
}

.fr-title {
    font-family: 'Nunito', sans-serif;
    font-size: 2.125rem;
    font-weight: 700;
    line-height: 1.25;
    letter-spacing: -0.02em;
    color: var(--text);
    margin-top: 0;
    margin-bottom: 1rem;
}

.fr-badge {
    display: inline-flex;
    align-items: center;
    background-color: var(--surface-alt);
    color: var(--primary);
    border: 1px solid rgba(107, 41, 50, 0.15);
    border-radius: 9999px;
    padding: 6px 14px;
    font-size: 0.75rem;
    font-weight: 700;
    line-height: 1.2;
    letter-spacing: 0.02em;
}

.fr-icon {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 48px;
    height: 48px;
    flex-shrink: 0;
}

.fr-icon-back {
    position: absolute;
    top: 4px;
    left: 4px;
    width: 44px;
    height: 44px;
    border-radius: 12px;
    background-color: var(--surface-alt);
    z-index: 0;
}

.fr-icon-front {
    position: relative;
    z-index: 1;
    width: 44px;
    height: 44px;
    border-radius: 12px;
    background-color: var(--surface);
    border: 1px solid var(--border);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--primary);
}

.fr-icon-front svg {
    width: 22px;
    height: 22px;
}

.fr-section {
    padding: 4.5rem 0;
    background-color: var(--bg);
    position: relative;
}

.fr-section-alt {
    padding: 4.5rem 0;
    background: var(--section-alt-bg, var(--surface-alt));
    border-top: 1px solid var(--border);
    border-bottom: 1px solid var(--border);
    position: relative;
}

.fr-section-dark {
    padding: 5rem 0;
    background: var(--dark-band-bg, var(--dark-band));
    color: var(--on-dark);
    position: relative;
}

.fr-section-brand {
    padding: 4.5rem 0;
    background-color: var(--brand-band-bg, var(--primary));
    color: var(--on-primary);
    position: relative;
}

.fr-section-brand .fr-btn {
    background-color: var(--brand-btn-bg);
    color: var(--brand-btn-text);
}

.fr-section-brand .fr-btn:hover {
    background-color: var(--bg);
    color: var(--brand-btn-text);
}

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

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

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

.fr-section-dark h1,
.fr-section-dark h2,
.fr-section-dark h3,
.fr-section-dark h4,
.fr-section-dark h5,
.fr-section-dark h6,
.fr-section-dark a,
.fr-on-dark h1,
.fr-on-dark h2,
.fr-on-dark h3,
.fr-on-dark h4,
.fr-on-dark h5,
.fr-on-dark h6,
.fr-on-dark a {
    color: var(--on-dark);
}

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

.fr-section-dark .fr-eyebrow,
.fr-on-dark .fr-eyebrow {
    color: var(--accent-text);
}

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

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

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

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

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

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

@media (max-width: 768px) {

    .fr-section,
    .fr-section-alt,
    .fr-section-brand {
        padding: 3rem 0;
    }

    .fr-section-dark {
        padding: 3.5rem 0;
    }

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

/* ===== header ===== */
.vw-site-header {
    background-color: #121824;
    border-bottom: 1px solid #232d3f;
    transition: box-shadow .3s ease;
    z-index: 1030
}

.vw-site-header.vw-header-scrolled {
    box-shadow: 0 12px 28px -6px rgba(0, 0, 0, .5)
}

.vw-site-header .vw-header-nav {
    padding: 14px 0
}

.vw-site-header .vw-brand {
    text-decoration: none
}

.vw-site-header .vw-logo-img {
    width: 40px;
    height: 40px;
    max-width: 40px;
    object-fit: contain;
    flex-shrink: 0
}

.vw-site-header .vw-brand-title {
    color: #ffffff;
    font-size: 1.125rem;
    font-weight: 800;
    letter-spacing: -.015em;
    line-height: 1.2
}

.vw-site-header .vw-brand-sub {
    color: #94a3b8;
    font-size: .8125rem;
    font-weight: 600
}

.vw-site-header .vw-nav-link {
    color: #cbd5e1;
    font-size: .9375rem;
    font-weight: 600;
    padding: .5rem .75rem;
    border-radius: 8px;
    transition: color .2s ease, background-color .2s ease
}

.vw-site-header .vw-nav-link:hover,
.vw-site-header .vw-nav-link:focus {
    color: #38bdf8
}

.vw-site-header .vw-dropdown-toggle::after {
    display: none
}

.vw-site-header .vw-chevron-icon {
    width: 16px;
    height: 16px;
    flex-shrink: 0;
    transition: transform .2s ease
}

.vw-site-header .vw-dropdown-toggle[aria-expanded="true"] .vw-chevron-icon {
    transform: rotate(180deg)
}

.vw-site-header .vw-dropdown-menu {
    background-color: #182030;
    border: 1px solid #29354b;
    border-radius: 12px;
    padding: 8px;
    box-shadow: 0 16px 36px rgba(0, 0, 0, .45);
    min-width: 260px;
    margin-top: 8px
}

.vw-site-header .vw-dropdown-item {
    padding: 10px 12px;
    border-radius: 8px;
    text-decoration: none;
    transition: background-color .2s ease
}

.vw-site-header .vw-dropdown-item:hover,
.vw-site-header .vw-dropdown-item:focus {
    background-color: #232d42
}

.vw-site-header .vw-dropdown-heading {
    display: block;
    color: #ffffff;
    font-size: .875rem;
    font-weight: 700
}

.vw-site-header .vw-dropdown-caption {
    display: block;
    color: #94a3b8;
    font-size: .75rem;
    margin-top: 2px
}

.vw-site-header .vw-toggler {
    border: 1px solid #283449;
    border-radius: 8px;
    padding: 8px 10px;
    background-color: #182030;
    color: #f8fafc;
    box-shadow: none
}

.vw-site-header .vw-toggler:focus {
    box-shadow: 0 0 0 2px #38bdf8
}

.vw-site-header .vw-toggler-icon {
    width: 22px;
    height: 22px;
    display: block
}

.vw-site-header .vw-cta-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background-color: var(--primary, #6B2932);
    color: var(--on-primary, #ffffff);
    border-radius: 10px;
    padding: 10px 22px;
    font-size: .875rem;
    font-weight: 700;
    text-decoration: none;
    border: 1px solid transparent;
    transition: background-color .25s ease, transform .2s ease, box-shadow .25s ease;
    box-shadow: 0 6px 16px -2px rgba(107, 41, 50, .4)
}

vw-site-header .vw-cta-button:hover,
.vw-site-header .vw-cta-button:focus {
    background-color: var(--primary-hover, #511F26);
    color: #ffffff;
    transform: translateY(-2px);
    box-shadow: 0 10px 22px -3px rgba(107, 41, 50, .55)
}

@media (min-width:992px) {
    .vw-site-header .vw-brand {
        position: absolute;
        left: 50%;
        top: 50%;
        transform: translate(-50%, -50%);
        z-index: 10
    }

    .vw-site-header .vw-nav-left {
        padding-right: 140px
    }

    .vw-site-header .vw-nav-right {
        padding-left: 140px
    }
}

@media (min-width:992px) and (max-width:1199.98px) {
    .vw-site-header .vw-nav-link {
        font-size: .85rem;
        padding-left: .5rem;
        padding-right: .5rem
    }

    .vw-site-header .vw-nav-left {
        padding-right: 110px
    }

    .vw-site-header .vw-nav-right {
        padding-left: 110px
    }

    .vw-site-header .vw-brand-sub {
        display: none
    }
}

@media (max-width:991.98px) {
    .vw-site-header .vw-header-nav .navbar-collapse {
        background-color: #121824;
        border: 1px solid #232d3f;
        border-radius: 14px;
        padding: 16px;
        margin-top: 14px;
        box-shadow: 0 18px 40px rgba(0, 0, 0, .5)
    }

    .vw-site-header .vw-nav-left,
    .vw-site-header .vw-nav-right {
        width: 100%
    }

    .vw-site-header .vw-nav-link {
        padding: 10px 12px;
        border-radius: 8px;
        width: 100%
    }

    .vw-site-header .vw-nav-link:hover,
    .vw-site-header .vw-nav-link:focus {
        background-color: #1a2232
    }

    .vw-site-header .vw-dropdown-menu {
        background-color: #182030;
        border: 1px solid #29354b;
        margin-top: 6px;
        box-shadow: none;
        width: 100%
    }

    .vw-site-header .vw-cta-button {
        width: 100%
    }
}

/* ===== hero ===== */
.vw-hero-section {
    background-color: var(--bg);
    padding: 5rem 0 4rem 0;
}

.vw-hero-decor-orb-1 {
    position: absolute;
    width: 440px;
    height: 440px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(213, 203, 183, 0.45) 0%, rgba(244, 229, 231, 0) 70%);
    top: -100px;
    left: -100px;
    pointer-events: none;
    z-index: 0;
}

.vw-hero-decor-orb-2 {
    position: absolute;
    width: 520px;
    height: 520px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(107, 41, 50, 0.08) 0%, rgba(249, 247, 240, 0) 70%);
    right: -120px;
    bottom: 80px;
    pointer-events: none;
    z-index: 0;
}

.vw-hero-content {
    position: relative;
    z-index: 2;
}

.vw-hero-kicker-dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background-color: var(--primary);
    display: inline-block;
}

.vw-hero-headline {
    font-size: clamp(2rem, 4vw, 3.25rem);
    font-weight: 800;
    line-height: 1.15;
    letter-spacing: -0.025em;
    color: var(--text);
}

.vw-hero-accent-text {
    color: var(--primary);
    border-bottom: 3px solid var(--accent);
    padding-bottom: 2px;
}

.vw-hero-subhead {
    font-size: 1.125rem;
    line-height: 1.65;
    color: var(--text-muted);
    max-width: 600px;
}

.vw-hero-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background-color: var(--primary);
    color: var(--on-primary);
    border-radius: 12px;
    padding: 14px 28px;
    font-weight: 700;
    text-decoration: none;
    transition: transform 0.25s ease, background-color 0.25s ease, box-shadow 0.25s ease;
    box-shadow: 0 8px 20px -4px rgba(107, 41, 50, 0.35);
}

.vw-hero-btn:hover {
    background-color: var(--primary-hover);
    color: var(--on-primary);
    transform: translateY(-2px);
}

.vw-hero-btn-alt {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background-color: transparent;
    color: var(--primary);
    border: 1.5px solid var(--primary);
    border-radius: 12px;
    padding: 13px 26px;
    font-weight: 700;
    text-decoration: none;
    transition: transform 0.25s ease, background-color 0.25s ease;
}

.vw-hero-btn-alt:hover {
    background-color: rgba(107, 41, 50, 0.08);
    color: var(--primary-hover);
    border-color: var(--primary-hover);
    transform: translateY(-2px);
}

.vw-hero-form-card {
    background-color: var(--surface);
    border: 1px solid var(--border);
    border-radius: 16px;
    box-shadow: 0 16px 36px -10px rgba(47, 18, 22, 0.08);
}

.vw-form-badge {
    display: inline-block;
    background-color: var(--surface-alt);
    color: var(--primary);
    font-size: 0.75rem;
    font-weight: 700;
    padding: 4px 10px;
    border-radius: 9999px;
}

.vw-form-caption {
    font-size: 0.8125rem;
    color: var(--text-muted);
    font-weight: 600;
}

.vw-form-input {
    background-color: #FFFFFF;
    border: 1px solid var(--border);
    color: var(--text);
    border-radius: 10px;
    padding: 11px 16px;
    font-size: 0.9375rem;
}

.vw-form-input:focus {
    border-color: var(--primary);
    box-shadow: 0 0 0 3px rgba(107, 41, 50, 0.15);
    background-color: #FFFFFF;
    color: var(--text);
}

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

.vw-form-submit {
    border: none;
    background-color: var(--primary);
    color: var(--on-primary);
    padding: 11px 16px;
    border-radius: 10px;
    font-size: 0.9375rem;
    font-weight: 700;
    transition: background-color 0.2s ease, transform 0.2s ease;
}

.vw-form-submit:hover {
    background-color: var(--primary-hover);
    color: var(--on-primary);
    transform: translateY(-1px);
}

.vw-form-consent-label {
    font-size: 0.75rem;
    color: var(--text-muted);
    line-height: 1.4;
}

.vw-consent-link {
    color: var(--primary);
    text-decoration: underline;
}

.vw-consent-link:hover {
    color: var(--primary-hover);
}

.vw-form-checkbox {
    border-color: var(--border);
}

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

.vw-hero-visual-wrapper {
    position: relative;
    z-index: 1;
    padding: 12px;
}

.vw-hero-backdrop-layer {
    position: absolute;
    inset: 0 0 24px 24px;
    background: var(--surface-alt);
    border-radius: 28px;
    z-index: 0;
}

.vw-hero-image-frame {
    position: relative;
    z-index: 1;
    border-radius: 24px;
    overflow: hidden;
    border: 1px solid var(--border);
    box-shadow: 0 24px 48px -12px rgba(47, 18, 22, 0.15);
    aspect-ratio: 1 / 1;
    background-color: var(--surface);
}

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

.vw-hero-floating-badge {
    position: absolute;
    bottom: 0;
    left: 0;
    z-index: 3;
    background-color: var(--dark-band);
    color: var(--on-dark);
    border-radius: 14px;
    padding: 12px 18px;
    box-shadow: 0 16px 32px -8px rgba(47, 18, 22, 0.35);
    border: 1px solid rgba(255, 255, 255, 0.15);
}

.vw-pulse-marker {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background-color: #4ADE80;
    box-shadow: 0 0 8px #4ADE80;
    display: inline-block;
}

.vw-badge-title {
    font-size: 0.8125rem;
    font-weight: 700;
    color: #FFFFFF;
}

.vw-badge-sub {
    display: block;
    font-size: 0.6875rem;
    color: var(--on-dark-muted);
    margin-top: 2px;
}

.vw-stat-card {
    background-color: var(--surface);
    border: 1px solid var(--border);
    border-radius: 16px;
    padding: 20px 16px;
    box-shadow: 0 12px 28px -10px rgba(47, 18, 22, 0.06);
    transition: transform 0.25s ease;
}

.vw-stat-card:hover {
    transform: translateY(-4px);
}

.vw-stat-metric {
    font-size: 2rem;
    font-weight: 800;
    color: var(--primary);
    line-height: 1.1;
    margin-bottom: 4px;
}

.vw-stat-label {
    font-size: 0.8125rem;
    font-weight: 600;
    color: var(--text-muted);
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

@media (max-width: 767px) {
    .vw-hero-section {
        padding: 3rem 0;
    }

    .vw-hero-headline {
        font-size: 1.75rem;
        hyphens: auto;
    }

    .vw-hero-subhead {
        font-size: 1rem;
    }

    .vw-hero-backdrop-layer {
        inset: 0 0 12px 12px;
    }
}

/* ===== choose-concern ===== */
.vw-concern-section {
    padding-top: 5rem;
    padding-bottom: 5rem;
    overflow: hidden;
}

.vw-concern-section .vw-concern-strip {
    background: rgba(255, 255, 255, 0.12);
    border: 1px solid rgba(255, 255, 255, 0.25);
    border-radius: 8px;
    padding: 6px 18px;
}

.vw-concern-section .vw-concern-intro {
    max-width: 720px;
    color: var(--on-dark-muted);
    font-size: 1.05rem;
    line-height: 1.6;
}

.vw-concern-section .vw-concern-tab {
    background: rgba(255, 255, 255, 0.1);
    border: 1.5px solid rgba(255, 255, 255, 0.2);
    border-radius: 12px;
    color: #FFFFFF;
    padding: 14px 18px;
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: 12px;
    text-align: left;
    cursor: pointer;
    transition: all 0.3s ease;
}

.vw-concern-section .vw-concern-tab:hover {
    background: rgba(255, 255, 255, 0.2);
    border-color: rgba(255, 255, 255, 0.45);
    color: #FFFFFF;
    transform: translateY(-2px);
}

.vw-concern-section .vw-concern-tab.active {
    background: #FFFFFF;
    border-color: #FFFFFF;
    color: #252115;
    box-shadow: 0 12px 28px -6px rgba(0, 0, 0, 0.3);
}

.vw-concern-section .vw-concern-tab-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    border-radius: 8px;
    background: rgba(255, 255, 255, 0.15);
    flex-shrink: 0;
    color: currentColor;
}

.vw-concern-section .vw-concern-tab.active .vw-concern-tab-icon {
    background: #F4E5E7;
    color: var(--primary);
}

.vw-concern-section .vw-svg-icon {
    width: 20px;
    height: 20px;
}

.vw-concern-section .vw-concern-tab-title {
    font-weight: 700;
    font-size: 0.95rem;
    line-height: 1.3;
    overflow-wrap: anywhere;
}

.vw-concern-section .vw-display-card {
    background: #FFFFFF;
    border: 1px solid var(--border);
    border-radius: 16px;
    padding: 28px;
    box-shadow: 0 20px 40px -15px rgba(0, 0, 0, 0.25);
    color: #252115;
}

.vw-concern-section .vw-meta-item {
    font-size: 0.8125rem;
    font-weight: 700;
    color: var(--text-muted);
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.vw-concern-section .vw-display-title {
    font-size: 1.5rem;
    font-weight: 800;
    color: #252115;
    line-height: 1.3;
    margin-bottom: 0.5rem;
}

.vw-concern-section .vw-display-desc {
    font-size: 0.95rem;
    color: #6D6655;
    line-height: 1.6;
}

.vw-concern-section .vw-subhead {
    font-size: 0.875rem;
    font-weight: 800;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--primary-text);
}

.vw-concern-section .vw-pill-box {
    background: #F9F7F0;
    border: 1px solid var(--border);
    border-radius: 10px;
    padding: 12px 14px;
    font-size: 0.875rem;
    color: #252115;
    line-height: 1.45;
    height: 100%;
    display: flex;
    align-items: flex-start;
    gap: 8px;
}

.vw-concern-section .vw-pill-bullet {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--primary);
    margin-top: 5px;
    flex-shrink: 0;
}

.vw-concern-section .vw-stages-timeline {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.vw-concern-section .vw-stage-item {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    background: #F4E5E7;
    border: 1px solid var(--border);
    border-radius: 10px;
    padding: 10px 14px;
    font-size: 0.875rem;
    color: #252115;
    line-height: 1.45;
}

.vw-concern-section .vw-stage-num {
    font-weight: 800;
    font-size: 0.8125rem;
    color: var(--primary);
    background: #FFFFFF;
    border-radius: 6px;
    padding: 2px 6px;
    flex-shrink: 0;
    line-height: 1.2;
}

.vw-concern-section .vw-case-media {
    border-radius: 12px;
    overflow: hidden;
    aspect-ratio: 16 / 9;
    max-height: 220px;
    background: #2F1216;
}

.vw-concern-section .vw-case-link {
    display: block;
    width: 100%;
    height: 100%;
}

.vw-concern-section .vw-case-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.35s ease;
}

.vw-concern-section .vw-case-card:hover .vw-case-img {
    transform: scale(1.03);
}

.vw-concern-section .vw-case-title {
    font-size: 1.25rem;
    font-weight: 700;
    line-height: 1.35;
}

.vw-concern-section .vw-case-title-link {
    color: #252115;
    text-decoration: none;
    transition: color 0.2s ease;
}

.vw-concern-section .vw-case-title-link:hover {
    color: var(--primary);
}

.vw-concern-section .vw-case-desc {
    font-size: 0.9rem;
    color: #6D6655;
    line-height: 1.5;
}

.vw-concern-section .vw-display-card .fr-btn {
    background: var(--primary);
    color: #FFFFFF;
    border: none;
    border-radius: 10px;
    padding: 12px 20px;
    font-weight: 700;
    text-decoration: none;
    display: inline-block;
    transition: all 0.3s ease;
}

.vw-concern-section .vw-display-card .fr-btn:hover {
    background: var(--primary-hover);
    color: #FFFFFF;
    transform: translateY(-2px);
}

@media (max-width: 767px) {
    .vw-concern-section {
        padding-top: 3.5rem;
        padding-bottom: 3.5rem;
    }

    .vw-concern-section .fr-title {
        font-size: 1.35rem;
    }

    .vw-concern-section .vw-display-title {
        font-size: 1.2rem;
    }

    .vw-concern-section .vw-case-title {
        font-size: 1.1rem;
    }

    .vw-concern-section .vw-display-card {
        padding: 18px;
    }

    .vw-concern-section .vw-stages-timeline {
        gap: 8px;
    }

    .vw-concern-section .vw-stage-item {
        flex-direction: column;
        gap: 4px;
    }
}

/* ===== problem-solution ===== */
.vw-problem-solution {
    position: relative;
    padding: 5rem 0;
    background-color: var(--bg);
    overflow: hidden
}

.vw-problem-solution .vw-title-strip {
    background: var(--surface);
    border: 1px solid var(--border);
    padding: 8px 24px;
    border-radius: 8px;
    box-shadow: 0 6px 16px -4px rgba(107, 41, 50, 0.08)
}

.vw-problem-solution .vw-section-lead {
    max-width: 720px;
    font-size: 1.0625rem;
    line-height: 1.65;
    color: var(--text-muted)
}

.vw-problem-solution .vw-card-depth-wrapper {
    position: relative;
    display: flex;
    flex-direction: column
}

.vw-problem-solution .vw-offset-plane {
    position: absolute;
    top: 12px;
    left: 12px;
    right: -12px;
    bottom: -12px;
    border-radius: 28px;
    z-index: 0;
    pointer-events: none;
    transition: transform .35s cubic-bezier(0.16, 1, 0.3, 1)
}

.vw-problem-solution .vw-offset-pain {
    background-color: #EFEBE4;
    border: 1px solid var(--border)
}

.vw-problem-solution .vw-offset-solution {
    background-color: var(--surface-alt);
    border: 1px solid rgba(107, 41, 50, 0.18)
}

.vw-problem-solution .vw-compare-card {
    position: relative;
    z-index: 1;
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: 20px;
    padding: 32px;
    box-shadow: 0 20px 40px -15px rgba(107, 41, 50, 0.08);
    transition: transform .35s cubic-bezier(0.16, 1, 0.3, 1), box-shadow .35s cubic-bezier(0.16, 1, 0.3, 1)
}

.vw-problem-solution .vw-compare-card:hover {
    transform: translateY(-6px);
    box-shadow: 0 34px 68px -10px rgba(47, 18, 22, 0.18)
}

.vw-problem-solution .vw-icon-plate {
    position: relative;
    width: 44px;
    height: 44px;
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0
}

.vw-problem-solution .vw-icon-plate-pain {
    background: #F7F4EE;
    border: 1px solid var(--border);
    color: var(--text-muted)
}

.vw-problem-solution .vw-icon-plate-solution {
    background: var(--surface-alt);
    border: 1px solid rgba(107, 41, 50, 0.2);
    color: var(--primary)
}

.vw-problem-solution .vw-icon-svg {
    width: 22px;
    height: 22px
}

.vw-problem-solution .vw-column-title {
    font-size: 1.375rem;
    font-weight: 700;
    color: var(--text);
    letter-spacing: -0.015em
}

.vw-problem-solution .vw-badge-pain {
    background: #EFECE5;
    color: var(--text-muted);
    border: 1px solid var(--border)
}

.vw-problem-solution .vw-badge-solution {
    background: var(--surface-alt);
    color: var(--primary);
    border: 1px solid rgba(107, 41, 50, 0.2)
}

.vw-problem-solution .vw-item-row {
    background: rgba(249, 247, 240, 0.6);
    border: 1px solid rgba(228, 225, 216, 0.7);
    transition: background .25s ease, border-color .25s ease
}

.vw-problem-solution .vw-item-row:hover {
    background: #FFFFFF;
    border-color: rgba(107, 41, 50, 0.25)
}

.vw-problem-solution .vw-marker-box {
    width: 28px;
    height: 28px;
    border-radius: 8px;
    display: flex;
    align-items: center;
    justify-content: center
}

.vw-problem-solution .vw-marker-box svg {
    width: 16px;
    height: 16px
}

.vw-problem-solution .vw-marker-pain {
    background: #EFECE5;
    color: var(--text-muted)
}

.vw-problem-solution .vw-marker-solution {
    background: var(--surface-alt);
    color: var(--primary)
}

.vw-problem-solution .vw-item-title {
    font-size: 1.0625rem;
    font-weight: 700;
    color: var(--text)
}

.vw-problem-solution .vw-item-desc {
    font-size: 0.9375rem;
    line-height: 1.55;
    color: var(--text-muted)
}

.vw-problem-solution .vw-card-footer {
    border-color: var(--border)
}

.vw-problem-solution .vw-meta-label {
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--text-muted)
}

.vw-problem-solution .vw-meta-value {
    font-size: 0.875rem;
    font-weight: 700;
    color: var(--text)
}

.vw-problem-solution .vw-meta-highlight {
    color: var(--primary)
}

.vw-problem-solution .js-view-filter {
    font-size: 0.875rem;
    padding: 8px 18px;
    border-radius: 10px;
    transition: all .25s ease
}

.vw-problem-solution .js-view-filter.active {
    background: var(--primary);
    color: var(--on-primary);
    border-color: var(--primary)
}

.vw-problem-solution .vw-reference-banner {
    background: linear-gradient(161deg, #F4E5E7 0%, #F7F0EC 100%);
    border: 1px solid var(--border);
    box-shadow: 0 12px 28px -8px rgba(107, 41, 50, 0.08)
}

.vw-problem-solution .vw-media-frame {
    aspect-ratio: 16/11;
    overflow: hidden;
    border-radius: 12px;
    border: 1px solid var(--border)
}

.vw-problem-solution .vw-banner-img {
    height: 100%;
    object-fit: cover;
    transition: transform .35s ease
}

.vw-problem-solution .vw-media-frame:hover .vw-banner-img {
    transform: scale(1.05)
}

.vw-problem-solution .vw-banner-title {
    font-size: 1.25rem;
    font-weight: 700;
    line-height: 1.3
}

.vw-problem-solution .vw-banner-title a {
    color: var(--text);
    transition: color .2s ease
}

.vw-problem-solution .vw-banner-title a:hover {
    color: var(--primary)
}

.vw-problem-solution .vw-banner-summary {
    font-size: 0.9375rem;
    line-height: 1.6;
    color: var(--text-muted)
}

.vw-problem-solution .vw-banner-date {
    font-size: 0.8125rem;
    font-weight: 600;
    color: var(--accent-text)
}

@media (max-width:767px) {
    .vw-problem-solution {
        padding: 3.5rem 0
    }

    .vw-problem-solution .vw-offset-plane {
        display: none
    }

    .vw-problem-solution .vw-compare-card {
        padding: 20px;
        border-radius: 16px
    }

    .vw-problem-solution .vw-column-title {
        font-size: 1.125rem
    }

    .vw-problem-solution .vw-item-title {
        font-size: 0.9375rem
    }

    .vw-problem-solution .vw-item-desc {
        font-size: 0.875rem
    }

    .vw-problem-solution .vw-reference-banner {
        padding: 20px
    }

    .vw-problem-solution .vw-media-frame {
        aspect-ratio: 16/9;
        margin-bottom: 12px
    }
}

/* ===== included-excluded ===== */
.vw-scope-section {
    padding: 5rem 0;
    position: relative;
}

.vw-scope-section .vw-scope-strip {
    display: inline-block;
    background: var(--surface);
    border: 1px solid var(--border);
    padding: 8px 24px;
    border-radius: 8px;
    box-shadow: 0 6px 16px -4px rgba(107, 41, 50, 0.08);
}

.vw-scope-section .vw-scope-strip .fr-eyebrow {
    color: var(--accent-text);
    font-weight: 700;
    font-size: 0.8125rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.vw-scope-section .vw-scope-title {
    color: var(--text);
    margin-top: 8px;
    margin-bottom: 12px;
    font-weight: 800;
    line-height: 1.25;
}

.vw-scope-section .vw-scope-lead {
    color: var(--text-muted);
    max-width: 780px;
    margin: 0 auto 1.75rem auto;
    font-size: 1.0625rem;
    line-height: 1.6;
}

.vw-scope-section .vw-filter-btn {
    border-radius: 9999px;
    padding: 8px 18px;
    font-size: 0.875rem;
    transition: all 0.25s ease;
}

.vw-scope-section .vw-filter-btn.active {
    background: var(--primary);
    color: var(--on-primary);
    border-color: var(--primary);
}

.vw-scope-section .vw-scope-card {
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: 16px;
    box-shadow: 0 20px 40px -15px rgba(107, 41, 50, 0.08);
    transition: transform 0.35s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.35s cubic-bezier(0.16, 1, 0.3, 1);
}

.vw-scope-section .vw-scope-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 28px 56px -12px rgba(47, 18, 22, 0.16);
}

.vw-scope-section .vw-card-title {
    font-size: 1.25rem;
    font-weight: 700;
    color: var(--text);
    line-height: 1.35;
}

.vw-scope-section .vw-card-summary {
    color: var(--text-muted);
    font-size: 0.9375rem;
    line-height: 1.55;
    margin: 1rem 0 1.5rem 0;
}

.vw-scope-section .vw-icon-chip {
    width: 38px;
    height: 38px;
    border-radius: 10px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.vw-scope-section .vw-icon-chip svg {
    width: 20px;
    height: 20px;
}

.vw-scope-section .vw-icon-check {
    background: rgba(107, 41, 50, 0.1);
    color: var(--primary-text);
    border: 1px solid rgba(107, 41, 50, 0.2);
}

.vw-scope-section .vw-icon-cross {
    background: rgba(47, 18, 22, 0.08);
    color: var(--dark-band);
    border: 1px solid rgba(47, 18, 22, 0.18);
}

.vw-scope-section .vw-badge-affirmative {
    background: #F4E5E7;
    color: var(--primary-text);
    border: 1px solid rgba(107, 41, 50, 0.18);
    font-size: 0.75rem;
    font-weight: 700;
    padding: 4px 10px;
    border-radius: 9999px;
}

.vw-scope-section .vw-badge-prohibitive {
    background: #EDEAE1;
    color: var(--accent-text);
    border: 1px solid var(--border);
    font-size: 0.75rem;
    font-weight: 700;
    padding: 4px 10px;
    border-radius: 9999px;
}

.vw-scope-section .vw-item-list {
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
}

.vw-scope-section .vw-bullet-marker {
    width: 24px;
    height: 24px;
    border-radius: 6px;
    background: rgba(107, 41, 50, 0.12);
    color: var(--primary-text);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    margin-top: 2px;
}

.vw-scope-section .vw-bullet-marker svg {
    width: 14px;
    height: 14px;
}

.vw-scope-section .vw-bullet-prohibit {
    background: rgba(109, 102, 85, 0.15);
    color: var(--text-muted);
}

.vw-scope-section .vw-item-heading {
    color: var(--text);
    font-size: 0.9375rem;
    font-weight: 700;
    margin-bottom: 2px;
}

.vw-scope-section .vw-item-desc {
    color: var(--text-muted);
    font-size: 0.875rem;
    line-height: 1.5;
    display: block;
}

.vw-scope-section .vw-footer-note {
    font-size: 0.8125rem;
    color: var(--text-muted);
    font-weight: 600;
}

.vw-scope-section .vw-detail-link {
    font-size: 0.8125rem;
    padding: 6px 14px;
    border-radius: 8px;
    text-decoration: none;
    white-space: nowrap;
}

.vw-scope-section .vw-reassurance-box {
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: 20px;
    box-shadow: 0 12px 32px -8px rgba(47, 18, 22, 0.08);
}

.vw-scope-section .vw-reassurance-heading {
    color: var(--text);
    font-weight: 700;
    font-size: 1.25rem;
}

.vw-scope-section .vw-reassurance-text {
    color: var(--text-muted);
    font-size: 0.9375rem;
    max-width: 680px;
    margin: 0 auto;
    line-height: 1.6;
}

@media (max-width: 767px) {
    .vw-scope-section {
        padding: 3.5rem 0;
    }

    .vw-scope-section .vw-scope-title {
        font-size: 1.5rem;
    }

    .vw-scope-section .vw-scope-lead {
        font-size: 0.9375rem;
    }

    .vw-scope-section .vw-card-title {
        font-size: 1.125rem;
    }

    .vw-scope-section .vw-reassurance-heading {
        font-size: 1.125rem;
    }

    .vw-scope-section .vw-card-footer>div {
        flex-direction: column;
        align-items: flex-start !important;
    }

    .vw-scope-section .vw-reassurance-box {
        padding: 1.5rem !important;
    }
}

/* ===== common-mistakes ===== */
.common-mistakes-block {
    background: var(--dark-band-bg, linear-gradient(154deg, #2F1216 0%, #4A1C22 100%));
    position: relative;
    overflow: hidden;
}

.common-mistakes-block__title-strip {
    display: inline-block;
    background: #FFFFFF;
    border: 1px solid #E4E1D8;
    padding: 8px 24px;
    border-radius: 8px;
    box-shadow: 0 6px 16px -4px rgba(107, 41, 50, 0.08);
}

.common-mistakes-block__title-strip .fr-eyebrow {
    color: var(--accent-text, #806E4A);
    font-weight: 700;
    font-size: 0.8125rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    margin: 0;
}

.common-mistakes-block__heading {
    color: var(--on-dark, #FFFFFF);
    font-weight: 800;
}

.common-mistakes-block__subhead {
    color: var(--on-dark-muted, #C3C0B6);
    font-size: 1.05rem;
}

.common-mistakes-block__interactive-deck {
    background: rgba(255, 255, 255, 0.03);
    border: 1px solid rgba(255, 255, 255, 0.12);
    border-radius: 20px;
    padding: 28px;
    backdrop-filter: blur(8px);
}

.common-mistakes-block__tab-bar {
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
    padding-bottom: 16px;
}

.common-mistakes-block__tab-btn {
    background: transparent;
    border: 1px solid rgba(255, 255, 255, 0.18);
    border-radius: 10px;
    padding: 10px 16px;
    color: var(--on-dark-muted, #C3C0B6);
    display: inline-flex;
    align-items: center;
    gap: 8px;
    transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1);
    font-size: 0.875rem;
    text-align: left;
}

.common-mistakes-block__tab-btn:hover {
    background: rgba(255, 255, 255, 0.08);
    color: var(--on-dark, #FFFFFF);
    border-color: rgba(255, 255, 255, 0.3);
}

.common-mistakes-block__tab-btn.active {
    background: var(--primary, #6B2932);
    color: #FFFFFF;
    border-color: var(--primary, #6B2932);
    box-shadow: 0 6px 16px rgba(107, 41, 50, 0.4);
}

.common-mistakes-block__tab-num {
    font-weight: 800;
    opacity: 0.75;
    font-size: 0.8rem;
}

.common-mistakes-block__tab-text {
    font-weight: 600;
}

.common-mistakes-block__panel-content {
    color: var(--on-dark, #FFFFFF);
}

.common-mistakes-block__severity {
    color: #F4E5E7;
    font-size: 0.75rem;
    letter-spacing: 0.05em;
}

.common-mistakes-block__panel-title {
    font-size: 1.35rem;
    line-height: 1.3;
    font-weight: 700;
    color: #FFFFFF;
}

.common-mistakes-block__panel-desc {
    color: var(--on-dark-muted, #C3C0B6);
    line-height: 1.6;
}

.common-mistakes-block__side-box {
    border-radius: 12px;
    padding: 18px;
    height: 100%;
    border: 1px solid rgba(255, 255, 255, 0.1);
}

.common-mistakes-block__side-box--danger {
    background: rgba(107, 41, 50, 0.3);
    color: #F7DCDA;
    border-color: rgba(220, 53, 69, 0.35);
}

.common-mistakes-block__side-box--success {
    background: rgba(213, 203, 183, 0.15);
    color: #F9F7F0;
    border-color: rgba(213, 203, 183, 0.35);
}

.common-mistakes-block__case-card {
    background: var(--surface, #FFFFFF);
    border-radius: 16px;
    border: 1px solid var(--border, #E4E1D8);
    box-shadow: 0 20px 40px -15px rgba(107, 41, 50, 0.08);
    overflow: hidden;
    transition: transform 0.35s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.35s cubic-bezier(0.16, 1, 0.3, 1);
}

.common-mistakes-block__case-card:hover {
    transform: translateY(-6px);
    box-shadow: 0 34px 68px -10px rgba(47, 18, 22, 0.22);
}

.common-mistakes-block__media-holder {
    width: 100%;
    height: 240px;
    overflow: hidden;
    background: #F4E5E7;
}

.common-mistakes-block__media-holder img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.4s ease;
}

.common-mistakes-block__case-card:hover .common-mistakes-block__media-holder img {
    transform: scale(1.04);
}

.common-mistakes-block__stat-chip {
    position: absolute;
    top: 14px;
    right: 14px;
    z-index: 2;
}

.common-mistakes-block__card-body {
    padding: 24px;
}

.common-mistakes-block__meta-dot {
    color: var(--border, #E4E1D8);
}

.common-mistakes-block__meta-text {
    font-size: 0.8125rem;
    font-weight: 600;
    color: var(--text-muted, #6D6655);
}

.common-mistakes-block__card-title a {
    color: var(--text-primary, #252115);
    font-weight: 700;
    font-size: 1.25rem;
    line-height: 1.35;
    transition: color 0.2s ease;
}

.common-mistakes-block__card-title a:hover {
    color: var(--primary, #6B2932);
}

.common-mistakes-block__card-desc {
    color: var(--text-muted, #6D6655);
    font-size: 0.9375rem;
    line-height: 1.6;
}

@media (max-width: 767px) {
    .common-mistakes-block__heading {
        font-size: 16px;
        hyphens: auto;
    }

    .common-mistakes-block__panel-title {
        font-size: 14px;
        hyphens: auto;
    }

    .common-mistakes-block__card-title a {
        font-size: 14px;
        hyphens: auto;
    }

    .common-mistakes-block__interactive-deck {
        padding: 18px;
    }

    .common-mistakes-block__tab-btn {
        width: 100%;
    }

    .common-mistakes-block__media-holder {
        height: 190px;
    }

    .common-mistakes-block__card-body {
        padding: 18px;
    }
}

/* ===== stages-points ===== */
.stages-points-block {
    padding: 5rem 0;
    position: relative;
    background: var(--bg);
    overflow: hidden
}

.stages-points-block .stages-strip-wrap {
    display: inline-block
}

.stages-points-block .stages-title-strip {
    display: inline-block;
    background: var(--surface);
    border: 1px solid var(--border);
    padding: 8px 24px;
    border-radius: 8px;
    box-shadow: 0 6px 16px -4px rgba(107, 41, 50, 0.08)
}

.stages-points-block .stages-main-title {
    color: var(--text);
    font-weight: 800;
    letter-spacing: -0.02em;
    margin-top: 12px;
    margin-bottom: 14px;
    overflow-wrap: anywhere
}

.stages-points-block .stages-lead-text {
    color: var(--text-muted);
    font-size: 1.0625rem;
    line-height: 1.65;
    max-width: 760px;
    margin: 0 auto;
    overflow-wrap: anywhere
}

.stages-points-block .stages-nav-shell {
    background: var(--surface-alt);
    border: 1px solid var(--border);
    border-radius: 16px;
    padding: 8px
}

.stages-points-block .stages-tab-btn {
    background: transparent;
    border: none;
    border-radius: 12px;
    padding: 10px 20px;
    font-weight: 700;
    font-size: .9375rem;
    color: var(--text);
    display: inline-flex;
    align-items: center;
    gap: 10px;
    cursor: pointer;
    transition: all .25s ease
}

.stages-points-block .stages-tab-btn:hover {
    background: rgba(255, 255, 255, .6);
    color: var(--primary-text)
}

.stages-points-block .stages-tab-btn.active {
    background: var(--surface);
    color: var(--primary);
    box-shadow: 0 6px 18px -4px rgba(107, 41, 50, .12)
}

.stages-points-block .stages-tab-num {
    display: inline-block;
    font-size: .75rem;
    font-weight: 800;
    padding: 2px 8px;
    border-radius: 6px;
    background: var(--surface-alt);
    color: var(--primary)
}

.stages-points-block .stages-tab-btn.active .stages-tab-num {
    background: var(--primary);
    color: var(--on-primary)
}

.stages-points-block .stages-tab-label {
    letter-spacing: -.01em
}

.stages-points-block .stages-panels-container {
    position: relative;
    margin-top: 1rem
}

.stages-points-block .stages-panel {
    display: none;
    position: relative
}

.stages-points-block .stages-panel.active {
    display: block
}

.stages-points-block .stages-spatial-wrapper {
    position: relative;
    padding: 16px 0 0 16px
}

.stages-points-block .stages-back-sheet {
    position: absolute;
    inset: 0 16px 16px 0;
    background: var(--surface-alt);
    border-radius: 28px;
    border: 1px solid var(--border);
    z-index: 1
}

.stages-points-block .stages-card {
    position: relative;
    z-index: 2;
    background: var(--surface);
    border-radius: 16px;
    border: 1px solid var(--border);
    box-shadow: 0 20px 40px -15px rgba(107, 41, 50, .08);
    padding: 36px;
    min-height: 100%
}

.stages-points-block .stages-stat-chip {
    position: absolute;
    top: 20px;
    right: 24px;
    background: var(--dark-band);
    color: var(--on-dark);
    border-radius: 10px;
    padding: 6px 14px;
    box-shadow: 0 10px 20px -5px rgba(47, 18, 22, .25);
    z-index: 3
}

.stages-points-block .stages-chip-title {
    font-size: .75rem;
    font-weight: 700;
    letter-spacing: .02em;
    text-transform: uppercase
}

.stages-points-block .stages-timestamp {
    font-size: .8125rem;
    font-weight: 600;
    color: var(--text-muted)
}

.stages-points-block .stages-card-heading {
    color: var(--text);
    font-weight: 700;
    font-size: 1.45rem;
    line-height: 1.3;
    margin-bottom: 12px;
    overflow-wrap: anywhere
}

.stages-points-block .stages-text {
    color: var(--text-muted);
    font-size: 1rem;
    line-height: 1.65;
    margin-bottom: 20px;
    overflow-wrap: anywhere
}

.stages-points-block .stages-icon-marker {
    width: 22px;
    height: 22px;
    min-width: 22px;
    border-radius: 50%;
    background: var(--surface-alt);
    color: var(--primary);
    display: flex;
    align-items: center;
    justify-content: center;
    margin-top: 2px
}

.stages-points-block .stages-check-svg {
    width: 14px;
    height: 14px
}

.stages-points-block .stages-check-text {
    font-size: .9375rem;
    line-height: 1.55;
    color: var(--text)
}

.stages-points-block .stages-check-text strong {
    color: var(--text);
    font-weight: 700
}

.stages-points-block .stages-metric-card {
    background: linear-gradient(161deg, #F4E5E7 0%, #F7F0EC 100%);
    border: 1px solid var(--border);
    border-radius: 16px;
    padding: 28px
}

.stages-points-block .stages-metric-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 18px;
    padding-bottom: 12px;
    border-bottom: 1px solid rgba(107, 41, 50, .12)
}

.stages-points-block .stages-metric-tag {
    font-weight: 700;
    font-size: .875rem;
    color: var(--primary-text);
    text-transform: uppercase;
    letter-spacing: .03em
}

.stages-points-block .stages-metric-status {
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: 9999px;
    padding: 3px 10px;
    font-size: .75rem;
    font-weight: 700;
    color: var(--text)
}

.stages-points-block .stages-metric-list {
    list-style: none;
    padding: 0;
    margin: 0
}

.stages-points-block .stages-metric-list li {
    display: flex;
    flex-direction: column;
    gap: 3px;
    padding: 8px 0;
    border-bottom: 1px solid rgba(228, 225, 216, .8)
}

.stages-points-block .stages-metric-list li:last-child {
    border-bottom: none
}

.stages-points-block .stages-metric-label {
    font-size: .8125rem;
    color: var(--text-muted);
    font-weight: 600
}

.stages-points-block .stages-metric-val {
    font-size: .9375rem;
    color: var(--text);
    font-weight: 700
}

@media (max-width:767px) {
    .stages-points-block {
        padding: 3rem 0
    }

    .stages-points-block .stages-spatial-wrapper {
        padding: 0
    }

    .stages-points-block .stages-back-sheet {
        display: none
    }

    .stages-points-block .stages-card {
        padding: 20px;
        margin-top: 0
    }

    .stages-points-block .stages-stat-chip {
        position: static;
        display: inline-block;
        margin-bottom: 14px
    }

    .stages-points-block .stages-main-title {
        font-size: 16px !important;
        hyphens: auto
    }

    .stages-points-block .stages-card-heading {
        font-size: 14px !important;
        hyphens: auto
    }

    .stages-points-block .stages-tab-btn {
        width: 100%;
        justify-content: flex-start
    }

    .stages-points-block .stages-cta-wrap .fr-btn,
    .stages-points-block .stages-cta-wrap .fr-btn-alt {
        width: 100%;
        text-align: center
    }
}

/* ===== articles-grid ===== */
.articles-grid-block {
    position: relative;
    overflow: hidden;
    padding-top: 5rem;
    padding-bottom: 5rem;
}

.articles-grid-block .articles-grid-strip {
    display: inline-block;
    background: var(--surface);
    border: 1px solid var(--border);
    padding: 8px 24px;
    border-radius: 8px;
    box-shadow: 0 6px 16px -4px rgba(107, 41, 50, 0.08);
    margin-bottom: 16px;
}

.articles-grid-block .articles-grid-eyebrow {
    color: var(--accent-text);
    font-weight: 700;
    font-size: 0.8125rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    margin: 0;
}

.articles-grid-block .articles-grid-title {
    color: var(--text);
    font-size: 2.125rem;
    font-weight: 700;
    line-height: 1.25;
    margin-bottom: 1rem;
}

.articles-grid-block .articles-grid-subtitle {
    color: var(--text-muted);
    max-width: 680px;
    margin: 0 auto;
    font-size: 1.05rem;
    line-height: 1.6;
}

.articles-grid-block .articles-grid-featured-wrap {
    position: relative;
}

.articles-grid-block .articles-grid-offset-plane {
    position: absolute;
    inset: 16px -12px -16px 12px;
    background: var(--surface-alt);
    border-radius: 28px;
    z-index: 1;
    pointer-events: none;
    border: 1px solid var(--border);
}

.articles-grid-block .articles-grid-featured-card {
    position: relative;
    z-index: 2;
    background: var(--surface);
    border-radius: 20px;
    border: 1px solid var(--border);
    box-shadow: 0 20px 40px -15px rgba(107, 41, 50, 0.08);
    overflow: hidden;
    transition: transform 0.35s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.35s cubic-bezier(0.16, 1, 0.3, 1);
}

.articles-grid-block .articles-grid-featured-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 28px 56px -12px rgba(47, 18, 22, 0.16);
}

.articles-grid-block .articles-grid-featured-media-box {
    position: relative;
    border-radius: 14px;
    overflow: hidden;
    height: 100%;
    min-height: 280px;
}

.articles-grid-block .articles-grid-media {
    display: block;
    width: 100%;
    height: 100%;
    overflow: hidden;
}

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

.articles-grid-block .articles-grid-featured-card:hover .articles-grid-img,
.articles-grid-block .articles-grid-card:hover .articles-grid-img {
    transform: scale(1.03);
}

.articles-grid-block .articles-grid-stat-chip {
    position: absolute;
    top: 12px;
    right: 12px;
    z-index: 3;
    background: var(--dark-band);
    color: var(--on-dark);
    border-radius: 8px;
    padding: 6px 12px;
    box-shadow: 0 8px 16px -4px rgba(47, 18, 22, 0.3);
}

.articles-grid-block .articles-grid-chip-label {
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.03em;
    text-transform: uppercase;
}

.articles-grid-block .articles-grid-featured-heading {
    font-size: 1.5rem;
    font-weight: 700;
    line-height: 1.35;
    margin-bottom: 0.85rem;
    color: var(--text);
}

.articles-grid-block .articles-grid-featured-heading a {
    color: var(--text);
    text-decoration: none;
    transition: color 0.25s ease;
}

.articles-grid-block .articles-grid-featured-heading a:hover {
    color: var(--primary);
}

.articles-grid-block .articles-grid-featured-excerpt {
    color: var(--text-muted);
    font-size: 0.95rem;
    line-height: 1.6;
    margin-bottom: 1.5rem;
}

.articles-grid-block .articles-grid-card {
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: 16px;
    box-shadow: 0 14px 30px -10px rgba(107, 41, 50, 0.06);
    transition: transform 0.35s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.35s cubic-bezier(0.16, 1, 0.3, 1);
}

.articles-grid-block .articles-grid-card:hover {
    transform: translateY(-6px);
    box-shadow: 0 28px 56px -12px rgba(47, 18, 22, 0.14);
}

.articles-grid-block .articles-grid-card-media-wrap {
    position: relative;
    border-radius: 12px;
    overflow: hidden;
    height: 210px;
    margin-bottom: 1.25rem;
    flex-shrink: 0;
}

.articles-grid-block .articles-grid-card-heading {
    font-size: 1.15rem;
    font-weight: 700;
    line-height: 1.35;
    margin-bottom: 0.75rem;
    color: var(--text);
}

.articles-grid-block .articles-grid-card-heading a {
    color: var(--text);
    text-decoration: none;
    transition: color 0.25s ease;
}

.articles-grid-block .articles-grid-card-heading a:hover {
    color: var(--primary);
}

.articles-grid-block .articles-grid-card-excerpt {
    color: var(--text-muted);
    font-size: 0.875rem;
    line-height: 1.55;
    margin-bottom: 1rem;
}

.articles-grid-block .articles-grid-author-meta {
    font-size: 0.8125rem;
    font-weight: 600;
    color: var(--accent-text);
}

.articles-grid-block .articles-grid-badge {
    background: var(--surface-alt);
    color: var(--primary);
    border: 1px solid rgba(107, 41, 50, 0.15);
    border-radius: 9999px;
    padding: 4px 10px;
    font-size: 0.75rem;
    font-weight: 700;
}

.articles-grid-block .articles-grid-meta-item {
    font-size: 0.8125rem;
    color: var(--text-muted);
    display: inline-flex;
    align-items: center;
    gap: 4px;
}

.articles-grid-block .articles-grid-meta-icon {
    width: 14px;
    height: 14px;
    stroke: var(--text-muted);
}

.articles-grid-block .articles-grid-meta-divider {
    color: var(--border);
    font-size: 0.8125rem;
}

.articles-grid-block .articles-grid-action-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    background: var(--primary);
    color: var(--on-primary);
    border-radius: 10px;
    padding: 10px 18px;
    font-weight: 700;
    font-size: 0.875rem;
    text-decoration: none;
    transition: all 0.25s ease;
    border: 1px solid var(--primary);
}

.articles-grid-block .articles-grid-action-btn:hover {
    background: var(--primary-hover);
    color: var(--on-primary);
    border-color: var(--primary-hover);
    transform: translateY(-2px);
}

.articles-grid-block .articles-grid-btn-icon {
    width: 16px;
    height: 16px;
    stroke: currentColor;
    transition: transform 0.25s ease;
}

.articles-grid-block .articles-grid-action-btn:hover .articles-grid-btn-icon {
    transform: translateX(3px);
}

.articles-grid-block .articles-grid-footer-btn {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: transparent;
    color: var(--primary);
    border: 1.5px solid var(--primary);
    border-radius: 12px;
    padding: 12px 26px;
    font-weight: 700;
    font-size: 0.9375rem;
    text-decoration: none;
    transition: all 0.25s ease;
}

.articles-grid-block .articles-grid-footer-btn:hover {
    background: rgba(107, 41, 50, 0.08);
    color: var(--primary-hover);
    border-color: var(--primary-hover);
    transform: translateY(-2px);
}

@media (max-width: 767px) {
    .articles-grid-block {
        padding-top: 3rem;
        padding-bottom: 3rem;
    }

    .articles-grid-block .articles-grid-title {
        font-size: 16px !important;
        hyphens: auto;
    }

    .articles-grid-block .articles-grid-featured-heading {
        font-size: 14px !important;
        hyphens: auto;
    }

    .articles-grid-block .articles-grid-card-heading {
        font-size: 14px !important;
        hyphens: auto;
    }

    .articles-grid-block .articles-grid-offset-plane {
        display: none;
    }

    .articles-grid-block .articles-grid-featured-media-box {
        min-height: 200px;
        height: 200px;
    }

    .articles-grid-block .articles-grid-footer-btn {
        width: 100%;
        justify-content: center;
    }
}

/* ===== tools-grid ===== */
.tools-grid-block {
    padding: 4.5rem 0;
    position: relative;
    overflow: hidden
}

.tools-grid-block__header {
    max-width: 760px;
    margin: 0 auto 3rem auto
}

.tools-grid-block__strip {
    display: inline-block;
    background: var(--surface, #ffffff);
    border: 1px solid var(--border, #E4E1D8);
    padding: 6px 20px;
    border-radius: 8px;
    box-shadow: 0 6px 16px -4px rgba(107, 41, 50, 0.08);
    margin-bottom: 14px
}

.tools-grid-block__eyebrow {
    color: var(--accent-text, #806E4A);
    font-weight: 700;
    font-size: 0.8125rem;
    letter-spacing: 0.08em;
    text-transform: uppercase
}

.tools-grid-block__title {
    color: var(--text, #252115);
    font-size: 2rem;
    line-height: 1.25;
    font-weight: 800;
    letter-spacing: -0.02em;
    margin-bottom: 0.75rem
}

.tools-grid-block__lead {
    color: var(--text-muted, #6D6655);
    font-size: 1.0625rem;
    line-height: 1.6;
    margin: 0
}

.tools-grid-block__card {
    display: flex;
    flex-direction: column;
    background: var(--surface, #ffffff);
    border: 1px solid var(--border, #E4E1D8);
    border-radius: 16px;
    box-shadow: 0 20px 40px -15px rgba(107, 41, 50, 0.08);
    overflow: hidden;
    transition: all 0.35s cubic-bezier(0.16, 1, 0.3, 1)
}

.tools-grid-block__card:hover {
    transform: translateY(-6px);
    box-shadow: 0 34px 68px -10px rgba(47, 18, 22, 0.22), 0 16px 32px -6px rgba(107, 41, 50, 0.14)
}

.tools-grid-block__media-frame {
    position: relative;
    width: 100%;
    height: 190px;
    overflow: hidden;
    background: var(--surface-alt, #F4E5E7)
}

.tools-grid-block__image-link {
    display: block;
    width: 100%;
    height: 100%
}

.tools-grid-block__thumb {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.4s ease
}

.tools-grid-block__card:hover .tools-grid-block__thumb {
    transform: scale(1.05)
}

.tools-grid-block__chip {
    position: absolute;
    top: 12px;
    right: 12px;
    background: var(--surface-alt, #F4E5E7);
    color: var(--primary, #6B2932);
    border: 1px solid rgba(107, 41, 50, 0.18);
    border-radius: 9999px;
    padding: 4px 10px;
    font-size: 0.75rem;
    font-weight: 700;
    line-height: 1
}

.tools-grid-block__body {
    display: flex;
    flex-direction: column;
    flex-grow: 1;
    padding: 24px
}

.tools-grid-block__meta {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
    font-size: 0.8125rem;
    color: var(--text-muted, #6D6655);
    margin-bottom: 12px
}

.tools-grid-block__meta-dot {
    opacity: 0.6
}

.tools-grid-block__item-title {
    color: var(--text, #252115);
    font-size: 1.1875rem;
    line-height: 1.35;
    font-weight: 700;
    margin-bottom: 10px
}

.tools-grid-block__title-link {
    color: var(--text, #252115);
    text-decoration: none;
    transition: color 0.25s ease
}

.tools-grid-block__title-link:hover {
    color: var(--primary, #6B2932)
}

.tools-grid-block__summary {
    color: var(--text-muted, #6D6655);
    font-size: 0.9375rem;
    line-height: 1.55;
    margin-bottom: 1.5rem;
    flex-grow: 1
}

.tools-grid-block__action {
    margin-top: auto
}

.tools-grid-block__btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    width: 100%;
    background: var(--primary, #6B2932);
    color: var(--on-primary, #ffffff);
    border: none;
    border-radius: 10px;
    padding: 10px 18px;
    font-weight: 700;
    font-size: 0.875rem;
    text-decoration: none;
    transition: all 0.3s ease
}

.tools-grid-block__btn:hover {
    background: var(--primary-hover, #511F26);
    color: var(--on-primary, #ffffff);
    transform: translateY(-2px)
}

.tools-grid-block__btn-icon {
    width: 16px;
    height: 16px;
    flex-shrink: 0
}

.tools-grid-block__footer {
    margin-top: 3.5rem
}

.tools-grid-block__all-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    background: transparent;
    color: var(--primary, #6B2932);
    border: 1.5px solid var(--primary, #6B2932);
    border-radius: 12px;
    padding: 12px 28px;
    font-weight: 700;
    font-size: 0.9375rem;
    text-decoration: none;
    transition: all 0.3s ease
}

.tools-grid-block__all-btn:hover {
    background: rgba(107, 41, 50, 0.06);
    color: var(--primary-hover, #511F26);
    border-color: var(--primary-hover, #511F26);
    transform: translateY(-2px)
}

@media (max-width:767px) {
    .tools-grid-block {
        padding: 3rem 0
    }

    .tools-grid-block__header {
        margin-bottom: 2rem
    }

    .tools-grid-block__title {
        font-size: 16px
    }

    .tools-grid-block__item-title {
        font-size: 14px
    }

    .tools-grid-block__media-frame {
        height: 200px
    }

    .tools-grid-block__body {
        padding: 18px
    }

    .tools-grid-block__footer {
        margin-top: 2.25rem
    }
}

/* ===== footer ===== */
.vw-footer {
    background: var(--dark-band-bg, linear-gradient(154deg, #2F1216 0%, #4A1C22 100%));
    color: var(--on-dark, #FFFFFF);
    border-top: 1px solid rgba(255, 255, 255, 0.12);
    padding: 80px 0 36px 0;
    position: relative;
    overflow: hidden;
}

.vw-footer::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 2px;
    background: linear-gradient(90deg, rgba(213, 203, 183, 0.15) 0%, rgba(213, 203, 183, 0.6) 50%, rgba(213, 203, 183, 0.15) 100%);
}

.vw-footer__top {
    padding-bottom: 56px;
}

.vw-footer__badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 6px 14px;
    background: rgba(255, 255, 255, 0.08);
    border: 1px solid rgba(255, 255, 255, 0.16);
    border-radius: 9999px;
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--accent, #D5CBB7);
    margin-bottom: 18px;
}

.vw-footer__badge-dot {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background-color: var(--accent, #D5CBB7);
    box-shadow: 0 0 6px rgba(213, 203, 183, 0.8);
}

.vw-footer__brand-name {
    font-size: 1.4rem;
    font-weight: 800;
    line-height: 1.3;
    letter-spacing: -0.02em;
    color: #FFFFFF;
    margin-bottom: 14px;
}

.vw-footer__lead {
    font-size: 0.9375rem;
    line-height: 1.65;
    color: var(--on-dark-muted, #C3C0B6);
    margin: 0;
    max-width: 380px;
}

.vw-footer__column-title {
    font-size: 1.125rem;
    font-weight: 700;
    line-height: 1.3;
    letter-spacing: -0.01em;
    color: #FFFFFF;
    margin-bottom: 22px;
    position: relative;
    padding-bottom: 10px;
}

.vw-footer__column-title::after {
    content: '';
    position: absolute;
    left: 0;
    bottom: 0;
    width: 28px;
    height: 2px;
    background-color: var(--accent, #D5CBB7);
    border-radius: 2px;
}

.vw-footer__nav-list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.vw-footer__nav-item {
    margin: 0;
}

.vw-footer__nav-link {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 0.9375rem;
    color: var(--on-dark-muted, #C3C0B6);
    text-decoration: none;
    transition: color 0.25s ease, transform 0.25s ease;
}

.vw-footer__link-icon {
    width: 14px;
    height: 14px;
    color: var(--accent, #D5CBB7);
    flex-shrink: 0;
    transition: transform 0.25s ease;
}

.vw-footer__nav-link:hover {
    color: #FFFFFF;
    transform: translateX(4px);
}

.vw-footer__nav-link:hover .vw-footer__link-icon {
    transform: translateX(2px);
}

.vw-footer__contact-list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.vw-footer__contact-item {
    display: flex;
    align-items: flex-start;
    gap: 14px;
}

.vw-footer__icon-box {
    width: 40px;
    height: 40px;
    border-radius: 10px;
    background: rgba(255, 255, 255, 0.06);
    border: 1px solid rgba(255, 255, 255, 0.14);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--accent, #D5CBB7);
    flex-shrink: 0;
    margin-top: 2px;
}

.vw-footer__svg-icon {
    width: 18px;
    height: 18px;
}

.vw-footer__contact-content {
    display: flex;
    flex-direction: column;
    min-width: 0;
}

.vw-footer__contact-label {
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: var(--accent, #D5CBB7);
    margin-bottom: 2px;
}

.vw-footer__contact-val {
    font-size: 0.9375rem;
    line-height: 1.5;
    color: #FFFFFF;
    overflow-wrap: anywhere;
}

.vw-footer__contact-link {
    font-size: 0.9375rem;
    line-height: 1.5;
    color: #FFFFFF;
    text-decoration: none;
    overflow-wrap: anywhere;
    transition: color 0.25s ease;
}

.vw-footer__contact-link:hover {
    color: var(--accent, #D5CBB7);
    text-decoration: underline;
}

.vw-footer__bottom {
    border-top: 1px solid rgba(255, 255, 255, 0.08);
    padding-top: 28px;
}

.vw-footer__copyright {
    font-size: 0.875rem;
    color: var(--on-dark-muted, #C3C0B6);
    line-height: 1.5;
}

.vw-footer__legal-nav {
    display: inline-flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 10px;
}

.vw-footer__legal-link {
    font-size: 0.875rem;
    color: var(--on-dark-muted, #C3C0B6);
    text-decoration: none;
    transition: color 0.25s ease;
}

.vw-footer__legal-link:hover {
    color: #FFFFFF;
    text-decoration: underline;
}

.vw-footer__legal-sep {
    font-size: 0.75rem;
    color: rgba(255, 255, 255, 0.25);
}

@media (max-width: 767px) {
    .vw-footer {
        padding: 56px 0 28px 0;
    }

    .vw-footer__top {
        padding-bottom: 36px;
    }

    .vw-footer__brand-name {
        font-size: 1.25rem;
    }

    .vw-footer__column-title {
        font-size: 1rem;
        margin-bottom: 16px;
    }

    .vw-footer__legal-nav {
        justify-content: center;
        margin-top: 12px;
    }

    .vw-footer__bottom {
        padding-top: 20px;
    }
}

/* ===== PAGE: about ===== */
.about-fieldbook { position: relative; padding: 5rem 0 4rem; overflow: hidden; } .about-strip-wrapper { display: inline-block; background: #FFFFFF; border: 1px solid var(--border); padding: 6px 18px; border-radius: 8px; box-shadow: 0 6px 16px -4px rgba(107, 41, 50, 0.08); } .about-lead { font-size: 1.125rem; line-height: 1.7; color: var(--text-muted); } .about-spatial-panel { position: relative; padding-top: 16px; padding-left: 16px; } .about-plane-backdrop { position: absolute; top: 0; left: 0; right: 16px; bottom: 16px; background: var(--surface-alt); border-radius: 28px; border: 1px solid var(--border); z-index: 1; } .about-plane-content { position: relative; z-index: 2; background: var(--surface); border-radius: 16px; border: 1px solid var(--border); padding: 32px; box-shadow: 0 20px 40px -15px rgba(107, 41, 50, 0.08); } .about-stat-pill { background: #2F1216; color: #FFFFFF; font-size: 0.75rem; font-weight: 700; padding: 6px 12px; border-radius: 9999px; } .about-heading { font-size: 1.5rem; font-weight: 700; color: var(--text); line-height: 1.35; margin-bottom: 1rem; } .about-text { font-size: 1rem; line-height: 1.6; color: var(--text-muted); margin-bottom: 1rem; } .about-media-stack { position: relative; padding: 16px; height: 100%; display: flex; align-items: center; justify-content: center; } .about-media-shadow-layer { position: absolute; inset: 0 0 16px 16px; background: var(--surface-alt); border-radius: 28px; border: 1px solid var(--border); z-index: 1; } .about-media-card { position: relative; z-index: 2; background: #FFFFFF; border-radius: 16px; border: 1px solid var(--border); padding: 12px; box-shadow: 0 20px 40px -15px rgba(107, 41, 50, 0.08); width: 100%; } .about-media-card .fr-media { border-radius: 12px; overflow: hidden; aspect-ratio: 16 / 10; width: 100%; } .about-media-card .fr-media img { width: 100%; height: 100%; object-fit: cover; display: block; } .about-media-caption { padding: 12px 6px 4px; border-top: 1px solid var(--border); margin-top: 8px; } .about-caption-label { font-size: 0.8125rem; font-weight: 700; color: var(--text); } .about-principle-card { border: 1px solid var(--border); border-radius: 16px; padding: 28px; background: var(--surface); box-shadow: 0 12px 28px -10px rgba(107, 41, 50, 0.06); transition: transform 0.35s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.35s cubic-bezier(0.16, 1, 0.3, 1); } .about-principle-card:hover { transform: translateY(-4px); box-shadow: 0 24px 48px -12px rgba(107, 41, 50, 0.14); } .about-icon-layer { position: relative; width: 48px; height: 48px; } .about-icon-back { position: absolute; top: 4px; left: 4px; width: 44px; height: 44px; border-radius: 12px; background: var(--surface-alt); z-index: 1; } .about-icon-front { position: relative; z-index: 2; width: 44px; height: 44px; border-radius: 12px; background: #FFFFFF; border: 1px solid var(--border); display: flex; align-items: center; justify-content: center; color: var(--primary); } .about-card-title { font-size: 1.25rem; font-weight: 700; color: var(--text); margin-bottom: 0.75rem; } .about-card-text { font-size: 0.9375rem; line-height: 1.6; color: var(--text-muted); margin-bottom: 0; } .about-audience-band { padding: 5rem 0; border-top: 1px solid var(--border); border-bottom: 1px solid var(--border); } .about-subtitle { font-size: 1rem; color: var(--text-muted); } .about-cohort-card { border: 1px solid var(--border); border-radius: 16px; padding: 28px; background: var(--surface); display: flex; flex-direction: column; height: 100%; box-shadow: 0 12px 28px -10px rgba(107, 41, 50, 0.06); } .about-role-tag { font-size: 0.75rem; font-weight: 700; letter-spacing: 0.05em; color: var(--accent-text); } .about-inline-link { font-size: 0.875rem; font-weight: 700; color: var(--primary); text-decoration: none; transition: color 0.2s ease, transform 0.2s ease; display: inline-flex; align-items: center; } .about-inline-link:hover { color: var(--primary-hover); transform: translateX(3px); } .about-action-band { padding: 4.5rem 0; background: linear-gradient(154deg, #2F1216 0%, #4A1C22 100%); } .about-lead-dark { font-size: 1.0625rem; line-height: 1.65; color: var(--on-dark-muted); } @media (max-width: 767px) { .about-fieldbook { padding: 3rem 0 2.5rem; } .about-lead { font-size: 1rem; } .about-spatial-panel { padding-top: 8px; padding-left: 8px; } .about-plane-backdrop { right: 8px; bottom: 8px; border-radius: 18px; } .about-plane-content { padding: 20px; border-radius: 14px; } .about-media-stack { padding: 8px; } .about-media-shadow-layer { inset: 0 0 8px 8px; border-radius: 18px; } .about-heading { font-size: 1.25rem; } .about-card-title { font-size: 1.125rem; } .about-principle-card, .about-cohort-card { padding: 20px; } .about-audience-band { padding: 3rem 0; } .about-action-band { padding: 3rem 0; } }

/* ===== PAGE: contact ===== */
.vw-contact-section {
  position: relative;
  background-color: var(--bg);
  color: var(--text);
  overflow: hidden;
}
.vw-contact-section .vw-title-strip {
  background: var(--surface);
  border: 1px solid var(--border);
  padding: 8px 24px;
  border-radius: 8px;
  box-shadow: 0 6px 16px -4px rgba(107, 41, 50, 0.08);
}
.vw-contact-section .vw-lead-desc {
  max-width: 680px;
  color: var(--text-muted);
  font-size: 1.0625rem;
  line-height: 1.6;
}
.vw-contact-section .vw-contact-card {
  border: 1px solid var(--border);
  background: var(--surface);
  border-radius: 16px;
  box-shadow: 0 20px 40px -15px rgba(107, 41, 50, 0.08);
  transition: transform 0.35s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.35s cubic-bezier(0.16, 1, 0.3, 1);
}
.vw-contact-section .vw-contact-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 28px 56px -12px rgba(47, 18, 22, 0.16);
}
.vw-contact-section .vw-card-backplane {
  position: absolute;
  top: 8px;
  left: 8px;
  right: -8px;
  bottom: -8px;
  background: var(--surface-alt);
  border-radius: 20px;
  z-index: 0;
  pointer-events: none;
  opacity: 0.7;
}
.vw-contact-section .vw-icon-layered {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 48px;
  height: 48px;
}
.vw-contact-section .vw-icon-back {
  position: absolute;
  top: 4px;
  left: 4px;
  width: 44px;
  height: 44px;
  border-radius: 12px;
  background: var(--surface-alt);
  z-index: 0;
}
.vw-contact-section .vw-icon-front {
  position: relative;
  z-index: 1;
  width: 44px;
  height: 44px;
  border-radius: 12px;
  background: var(--surface);
  border: 1px solid var(--border);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--primary);
}
.vw-contact-section .vw-svg {
  width: 22px;
  height: 22px;
}
.vw-contact-section .vw-mini-svg {
  width: 16px;
  height: 16px;
  color: var(--primary);
}
.vw-contact-section .vw-card-heading {
  font-size: 1.15rem;
  font-weight: 700;
  color: var(--text);
  line-height: 1.35;
}
.vw-contact-section .vw-card-text {
  color: var(--text-muted);
  font-size: 0.95rem;
  line-height: 1.5;
  word-break: break-word;
}
.vw-contact-section .vw-contact-link {
  color: var(--primary);
  text-decoration: none;
  font-size: 0.95rem;
  transition: color 0.2s ease;
}
.vw-contact-section .vw-contact-link:hover {
  color: var(--primary-hover);
  text-decoration: underline;
}
.vw-contact-section .vw-link-label {
  color: var(--text-muted);
  font-size: 0.85rem;
}
.vw-contact-section .vw-form-wrapper {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 20px;
  box-shadow: 0 28px 56px -12px rgba(47, 18, 22, 0.16);
}
.vw-contact-section .vw-form-backplane {
  position: absolute;
  top: 12px;
  left: 12px;
  right: -12px;
  bottom: -12px;
  background: var(--surface-alt);
  border-radius: 24px;
  z-index: 0;
  pointer-events: none;
  opacity: 0.8;
}
.vw-contact-section .vw-form-heading {
  font-size: 1.5rem;
  font-weight: 700;
  color: var(--text);
  line-height: 1.3;
}
.vw-contact-section .vw-form-subtext {
  color: var(--text-muted);
  font-size: 0.95rem;
  line-height: 1.5;
}
.vw-contact-section .vw-operational-note {
  font-size: 0.8125rem;
  color: var(--accent-text);
  font-weight: 600;
}
.vw-contact-section .vw-input-label {
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--text);
  margin-bottom: 6px;
  display: block;
}
.vw-contact-section .vw-form-input {
  background-color: #FFFFFF;
  border: 1px solid var(--border);
  color: var(--text);
  border-radius: 10px;
  padding: 10px 14px;
  font-size: 0.95rem;
  transition: border-color 0.25s ease, box-shadow 0.25s ease;
}
.vw-contact-section .vw-form-input:focus {
  background-color: #FFFFFF;
  border-color: var(--primary);
  color: var(--text);
  box-shadow: 0 0 0 3px rgba(107, 41, 50, 0.15);
  outline: none;
}
.vw-contact-section .vw-form-input::placeholder {
  color: #8C8474;
  opacity: 1;
}
.vw-contact-section .vw-form-textarea {
  resize: vertical;
  min-height: 110px;
}
.vw-contact-section .vw-form-check {
  padding-left: 1.8rem;
}
.vw-contact-section .vw-checkbox {
  width: 1.15rem;
  height: 1.15rem;
  margin-top: 0.2rem;
  border: 1px solid var(--border);
  border-radius: 4px;
  cursor: pointer;
}
.vw-contact-section .vw-checkbox:checked {
  background-color: var(--primary);
  border-color: var(--primary);
}
.vw-contact-section .vw-check-label {
  font-size: 0.875rem;
  color: var(--text);
  line-height: 1.5;
  cursor: pointer;
}
.vw-contact-section .vw-inline-privacy-link {
  color: var(--primary);
  text-decoration: underline;
  font-weight: 600;
}
.vw-contact-section .vw-inline-privacy-link:hover {
  color: var(--primary-hover);
}
.vw-contact-section .vw-submit-btn {
  background: var(--primary);
  color: var(--on-primary);
  border: none;
  border-radius: 12px;
  padding: 14px 28px;
  font-weight: 700;
  box-shadow: 0 8px 20px -4px rgba(107, 41, 50, 0.35);
  transition: all 0.35s cubic-bezier(0.16, 1, 0.3, 1);
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.vw-contact-section .vw-submit-btn:hover {
  background: var(--primary-hover);
  color: var(--on-primary);
  transform: translateY(-2px);
  box-shadow: 0 16px 28px -6px rgba(107, 41, 50, 0.45);
}
.vw-contact-section .vw-security-caption {
  font-size: 0.8125rem;
  color: var(--text-muted);
  font-weight: 600;
}
@media (max-width: 767px) {
  .vw-contact-section .vw-card-backplane,
  .vw-contact-section .vw-form-backplane {
    display: none;
  }
  .vw-contact-section .vw-card-heading {
    font-size: 1.05rem;
  }
  .vw-contact-section .vw-form-heading {
    font-size: 1.25rem;
  }
  .vw-contact-section .vw-form-wrapper {
    padding: 1.5rem !important;
  }
  .vw-contact-section .vw-submit-btn {
    width: 100%;
  }
}

/* ===== PAGE: minitab-guide ===== */
.vw-scenario-block {
  background-color: var(--bg);
  position: relative;
}
.vw-contents-block {
  background: var(--section-alt-bg);
  border-top: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
}
.vw-title-strip {
  display: inline-block;
  background: var(--surface);
  border: 1px solid var(--border);
  padding: 6px 18px;
  border-radius: 8px;
  box-shadow: 0 4px 12px -2px rgba(107, 41, 50, 0.08);
}
.vw-kicker {
  color: var(--accent-text);
  font-weight: 700;
  font-size: 0.8125rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
.vw-heading {
  color: var(--text-primary);
}
.vw-spatial-card {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 16px;
  box-shadow: var(--shadow-ambient-light);
  position: relative;
}
.vw-side-panel {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 16px;
  box-shadow: var(--shadow-ambient-light);
}
.vw-status-indicator {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background-color: var(--primary);
  display: inline-block;
}
.vw-badge {
  background-color: var(--surface-alt);
  color: var(--primary);
  border: 1px solid rgba(107, 41, 50, 0.15);
  font-weight: 700;
  font-size: 0.75rem;
}
.vw-data-matrix {
  background: var(--bg);
  border: 1px solid var(--border);
}
.vw-metric-tile {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 8px;
}
.vw-alert-panel {
  background-color: #FFF5F5;
}
.vw-critical-callout {
  background-color: var(--surface-alt);
  border: 1px solid rgba(107, 41, 50, 0.2);
}
.vw-boundary-box {
  background: var(--bg);
  border: 1px solid var(--border);
}
.vw-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--border);
  display: inline-block;
  transition: all 0.2s ease;
}
.vw-dot.active {
  background: var(--primary);
  width: 18px;
  border-radius: 4px;
}
.vw-icon-plate {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  border-radius: 10px;
  background: var(--surface-alt);
  color: var(--primary);
  flex-shrink: 0;
}
.vw-guide-card {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 16px;
  box-shadow: var(--shadow-ambient-light);
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.vw-guide-card:hover {
  transform: translateY(-4px);
  box-shadow: var(--shadow-floating-depth);
}
.vw-comparison-table-wrapper {
  background: var(--surface);
  border: 1px solid var(--border);
  box-shadow: var(--shadow-ambient-light);
}
.vw-disclosure-card {
  background: var(--surface);
  border: 1px solid var(--border);
}
@media (max-width: 767px) {
  .vw-scenario-block .js-scenario-nav button {
    flex: 1 1 calc(50% - 8px);
    font-size: 0.75rem;
  }
  .vw-guide-card {
    margin-bottom: 8px;
  }
}

/* ===== PAGE: knowledge-base ===== */
.vw-kb-section{padding:5rem 0;background-color:var(--bg);position:relative;overflow:hidden}.vw-title-strip{display:inline-block;background:var(--surface);border:1px solid var(--border);padding:8px 24px;border-radius:8px;box-shadow:0 6px 16px -4px rgba(107,41,50,0.08);max-width:100%}.vw-kicker{color:var(--accent-text);font-weight:700;font-size:0.8125rem;letter-spacing:0.08em;text-transform:uppercase;display:inline-block}.vw-section-heading{color:var(--text);font-size:2.125rem;font-weight:800;line-height:1.25;letter-spacing:-0.02em;margin:0;overflow-wrap:anywhere}.vw-section-lead{color:var(--text-muted);font-size:1.125rem;line-height:1.65;max-width:780px;margin:0}.vw-controls-wrapper{background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:20px;box-shadow:0 12px 32px -8px rgba(47,18,22,0.06)}.vw-search-box{position:relative;display:flex;align-items:center}.vw-search-icon{position:absolute;left:14px;color:var(--text-muted);display:flex;align-items:center;pointer-events:none}.vw-svg-icon{width:18px;height:18px}.vw-input{background-color:var(--bg);border:1px solid var(--border);color:var(--text);padding:10px 14px 10px 42px;border-radius:10px;font-size:0.9375rem;transition:border-color 0.2s ease,box-shadow 0.2s ease}.vw-input:focus{background-color:var(--surface);color:var(--text);border-color:var(--primary);box-shadow:0 0 0 3px rgba(107,41,50,0.15)}.vw-input::placeholder{color:var(--text-muted);opacity:0.9}.vw-filter-btn{background:var(--bg);color:var(--text-muted);border:1px solid var(--border);padding:8px 16px;border-radius:9999px;font-size:0.8125rem;font-weight:700;line-height:1;transition:all 0.2s ease;cursor:pointer;white-space:normal}.vw-filter-btn:hover{background:var(--surface-alt);color:var(--primary);border-color:rgba(107,41,50,0.25)}.vw-filter-btn.active{background:var(--primary);color:var(--on-primary);border-color:var(--primary);box-shadow:0 4px 12px rgba(107,41,50,0.25)}.vw-articles-grid{margin-top:0}.vw-card-col{transition:transform 0.2s ease}.vw-article-card{background:var(--surface);border:1px solid var(--border);border-radius:16px;overflow:hidden;box-shadow:0 12px 24px -10px rgba(107,41,50,0.08);transition:transform 0.3s cubic-bezier(0.16,1,0.3,1),box-shadow 0.3s cubic-bezier(0.16,1,0.3,1)}.vw-article-card:hover{transform:translateY(-4px);box-shadow:0 24px 48px -12px rgba(47,18,22,0.18)}.vw-card-media-wrapper{position:relative;width:100%;aspect-ratio:16/9;overflow:hidden;background-color:var(--surface-alt)}.vw-media-link{display:block;width:100%;height:100%}.vw-card-img{width:100%;height:100%;object-fit:cover;transition:transform 0.4s ease}.vw-article-card:hover .vw-card-img{transform:scale(1.04)}.vw-chip{position:absolute;top:10px;right:10px;background:#2F1216;color:#FFFFFF;font-size:0.6875rem;font-weight:700;letter-spacing:0.02em;padding:4px 10px;border-radius:8px;box-shadow:0 4px 10px rgba(47,18,22,0.3);z-index:2;pointer-events:none}.vw-card-body{padding:20px;text-align:left}.vw-meta-row{font-size:0.75rem;color:var(--text-muted);font-weight:600}.vw-meta-item{display:inline-flex;align-items:center}.vw-meta-dot{color:var(--accent-text);font-size:0.75rem}.vw-card-title{font-size:1.125rem;font-weight:700;line-height:1.35;margin-bottom:8px;overflow-wrap:anywhere}.vw-title-link{color:var(--text);text-decoration:none;transition:color 0.2s ease}.vw-title-link:hover{color:var(--primary)}.vw-card-excerpt{color:var(--text-muted);font-size:0.875rem;line-height:1.55;margin:0 0 16px 0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis}.vw-card-footer{border-top:1px solid var(--border)}.vw-arrow-link{color:var(--primary-text);font-size:0.8125rem;font-weight:700;text-decoration:none;transition:color 0.2s ease,transform 0.2s ease}.vw-arrow-icon{width:16px;height:16px;transition:transform 0.2s ease}.vw-arrow-link:hover{color:var(--primary-hover)}.vw-arrow-link:hover .vw-arrow-icon{transform:translateX(3px)}.vw-empty-card{background:var(--surface);border:1px solid var(--border);border-radius:16px;box-shadow:0 8px 24px rgba(47,18,22,0.06)}.vw-empty-title{color:var(--text);font-size:1.25rem;font-weight:700}.vw-empty-desc{color:var(--text-muted);font-size:0.9375rem}.vw-reset-btn{background:var(--primary);color:var(--on-primary);border:none;padding:10px 22px;border-radius:10px;font-weight:700;font-size:0.875rem;cursor:pointer;transition:background 0.2s ease}.vw-reset-btn:hover{background:var(--primary-hover);color:var(--on-primary)}.vw-pagination-list{margin:0;padding:0}.vw-page-btn{min-width:40px;height:40px;padding:0 12px;border-radius:10px;background:var(--surface);border:1px solid var(--border);color:var(--text);font-weight:700;font-size:0.875rem;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:all 0.2s ease}.vw-page-btn:hover{background:var(--surface-alt);color:var(--primary);border-color:rgba(107,41,50,0.2)}.vw-page-btn.active{background:var(--primary);color:var(--on-primary);border-color:var(--primary);box-shadow:0 4px 12px rgba(107,41,50,0.25)}.vw-page-btn:disabled{opacity:0.4;cursor:not-allowed;background:var(--bg);color:var(--text-muted);border-color:var(--border)}@media (max-width:767px){.vw-kb-section{padding:3rem 0}.vw-section-heading{font-size:16px;line-height:1.3;hyphens:auto}.vw-card-title{font-size:14px;line-height:1.3;hyphens:auto}.vw-section-lead{font-size:0.9375rem;line-height:1.5}.vw-controls-wrapper{padding:14px}.vw-card-body{padding:16px}.vw-card-col{width:100%}}

/* ===== PAGE: analysis-tools ===== */
.vw-tools-guide{padding:5rem 0;position:relative;overflow:hidden}.vw-elevated-strip{display:inline-block;background:var(--surface,#ffffff);border:1px solid var(--border,#E4E1D8);padding:6px 18px;border-radius:8px;box-shadow:0 6px 16px -4px rgba(107,41,50,0.08);margin-bottom:14px}.vw-tools-title-wrap{max-width:620px}.vw-tools-intro-text{max-width:500px;color:var(--text-muted,#6D6655);font-size:1.05rem;line-height:1.6}.vw-timeline-container{position:relative;padding-left:0;margin-top:2.5rem}.vw-timeline-track{position:absolute;top:10px;bottom:10px;left:210px;width:2px;background:linear-gradient(180deg,rgba(107,41,50,0.3) 0%,rgba(107,41,50,0.15) 100%);z-index:1}.vw-timeline-list{display:flex;flex-direction:column;gap:1.5rem}.vw-timeline-item{display:grid;grid-template-columns:190px 42px minmax(0,1fr);align-items:flex-start;position:relative;min-width:0}.vw-timeline-meta{text-align:right;padding-top:1.25rem;display:flex;flex-direction:column;align-items:flex-end;gap:6px}.vw-timeline-date{font-size:0.875rem;font-weight:700;color:var(--text-primary,#252115);line-height:1.4}.vw-timeline-author{font-size:0.8125rem;color:var(--text-muted,#6D6655)}.vw-timeline-node{position:relative;display:flex;justify-content:center;padding-top:1.5rem;z-index:2}.vw-timeline-dot{width:16px;height:16px;border-radius:50%;background:var(--surface,#ffffff);border:3px solid var(--primary,#6B2932);box-shadow:0 0 0 4px rgba(107,41,50,0.15);transition:all .3s ease}.vw-timeline-item:hover .vw-timeline-dot{background:var(--primary,#6B2932);box-shadow:0 0 0 6px rgba(107,41,50,0.25);transform:scale(1.15)}.vw-timeline-card-wrapper{min-width:0}.vw-timeline-card-wrapper .fr-card{display:flex;flex-direction:column;border-radius:16px;background:var(--surface,#ffffff);border:1px solid var(--border,#E4E1D8);box-shadow:0 12px 30px -10px rgba(107,41,50,0.08);overflow:hidden;transition:transform .35s cubic-bezier(0.16,1,0.3,1),box-shadow .35s cubic-bezier(0.16,1,0.3,1);height:100%}.vw-timeline-card-wrapper .fr-card:hover{transform:translateY(-4px);box-shadow:0 24px 48px -10px rgba(47,18,22,0.18)}.vw-card-media-link{display:block;position:relative;width:100%;aspect-ratio:16/9;overflow:hidden;background:var(--surface-alt,#F4E5E7)}.vw-card-img{width:100%;height:100%;object-fit:cover;transition:transform .5s cubic-bezier(0.16,1,0.3,1)}.vw-timeline-card-wrapper .fr-card:hover .vw-card-img{transform:scale(1.04)}.vw-card-content{display:flex;flex-direction:column;flex-grow:1;padding:1.5rem 1.75rem;text-align:left}.vw-card-title{font-size:1.375rem;font-weight:700;line-height:1.35;margin-bottom:0.75rem;overflow-wrap:anywhere}.vw-title-link{color:var(--text-primary,#252115);text-decoration:none;transition:color .25s ease}.vw-title-link:hover{color:var(--primary,#6B2932);text-decoration:none}.vw-card-excerpt{color:var(--text-muted,#6D6655);font-size:0.95rem;line-height:1.6;margin-bottom:1.25rem}.vw-card-footer{padding-top:1rem;border-top:1px solid rgba(228,225,216,0.6)}.vw-card-metric{font-size:0.8125rem;font-weight:700;color:var(--accent-text,#806E4A);letter-spacing:0.02em}.vw-arrow-icon{width:16px;height:16px;flex-shrink:0;transition:transform .25s ease}.fr-btn-alt:hover .vw-arrow-icon{transform:translateX(4px)}@media (max-width:991px){.vw-timeline-track{left:160px}.vw-timeline-item{grid-template-columns:140px 42px minmax(0,1fr)}}@media (max-width:767px){.vw-tools-guide{padding:3.5rem 0}.vw-tools-intro-text{max-width:100%}.vw-timeline-track{left:15px}.vw-timeline-item{grid-template-columns:1fr;display:flex;flex-direction:column;padding-left:36px}.vw-timeline-node{position:absolute;left:-2px;top:0;padding-top:1.5rem}.vw-timeline-meta{text-align:left;align-items:flex-start;padding-top:0.75rem;margin-bottom:0.75rem;flex-direction:row;flex-wrap:wrap;gap:8px 12px}.vw-card-content{padding:1.25rem 1rem}.vw-card-title{font-size:1.15rem}}

/* ===== PAGE: faq ===== */
.faq-page-section {
  position: relative;
  background-color: var(--bg, #F9F7F0);
  color: var(--text, #252115);
  overflow: hidden;
}

.faq-page-section .faq-elevated-strip {
  background: var(--surface, #FFFFFF);
  border: 1px solid var(--border, #E4E1D8);
  border-radius: 12px;
  padding: 10px 28px;
  box-shadow: 0 6px 16px -4px rgba(107, 41, 50, 0.08);
  display: inline-flex;
}

.faq-page-section .faq-kicker {
  color: var(--accent-text, #806E4A);
  font-size: 0.8125rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.faq-page-section .faq-lead-text {
  max-width: 720px;
  color: var(--text-muted, #6D6655);
  font-size: 1.0625rem;
  line-height: 1.6;
}

.faq-page-section .faq-search-wrapper {
  position: relative;
  width: 100%;
}

.faq-page-section .faq-search-input {
  background: var(--surface, #FFFFFF);
  border: 1px solid var(--border, #E4E1D8);
  border-radius: 12px;
  padding: 14px 20px 14px 48px;
  color: var(--text, #252115);
  font-size: 0.95rem;
  box-shadow: 0 8px 20px -6px rgba(107, 41, 50, 0.06);
  transition: all 0.25s ease;
}

.faq-page-section .faq-search-input:focus {
  border-color: var(--primary, #6B2932);
  outline: none;
  box-shadow: 0 0 0 3px rgba(107, 41, 50, 0.15);
  background: var(--surface, #FFFFFF);
  color: var(--text, #252115);
}

.faq-page-section .faq-search-input::placeholder {
  color: var(--text-muted, #6D6655);
  opacity: 0.85;
}

.faq-page-section .faq-search-icon {
  position: absolute;
  left: 16px;
  top: 50%;
  transform: translateY(-50%);
  color: var(--text-muted, #6D6655);
  display: flex;
  align-items: center;
  pointer-events: none;
}

.faq-page-section .faq-svg-icon {
  width: 20px;
  height: 20px;
}

.faq-page-section .faq-filters-bar {
  margin-top: 12px;
}

.faq-page-section .faq-filter-btn {
  border: 1px solid var(--border, #E4E1D8);
  background: var(--surface, #FFFFFF);
  color: var(--text, #252115);
  cursor: pointer;
  transition: all 0.25s ease;
  font-family: inherit;
  padding: 8px 16px;
  border-radius: 9999px;
  font-size: 0.8125rem;
  font-weight: 700;
}

.faq-page-section .faq-filter-btn:hover {
  background: var(--surface-alt, #F4E5E7);
  color: var(--primary, #6B2932);
  border-color: rgba(107, 41, 50, 0.25);
}

.faq-page-section .faq-filter-btn.active {
  background: var(--primary, #6B2932);
  color: var(--on-primary, #FFFFFF);
  border-color: var(--primary, #6B2932);
  box-shadow: 0 4px 12px -2px rgba(107, 41, 50, 0.3);
}

.faq-page-section .faq-accordion-group {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.faq-page-section .faq-accordion-item {
  transition: opacity 0.3s ease, transform 0.3s ease;
}

.faq-page-section .faq-accordion-item.d-none {
  display: none !important;
}

.faq-page-section .faq-item-card {
  background: var(--surface, #FFFFFF);
  border: 1px solid var(--border, #E4E1D8);
  border-radius: 16px;
  overflow: hidden;
  box-shadow: 0 8px 24px -8px rgba(107, 41, 50, 0.06);
  transition: box-shadow 0.3s ease, border-color 0.3s ease;
}

.faq-page-section .faq-item-card:hover {
  border-color: rgba(107, 41, 50, 0.22);
  box-shadow: 0 14px 32px -8px rgba(107, 41, 50, 0.12);
}

.faq-page-section .faq-question-btn {
  background: transparent;
  border: none;
  padding: 22px 28px;
  color: var(--text, #252115);
  font-family: inherit;
  font-size: 1.05rem;
  font-weight: 700;
  cursor: pointer;
  gap: 16px;
  transition: color 0.25s ease, background 0.25s ease;
}

.faq-page-section .faq-question-btn:hover {
  color: var(--primary, #6B2932);
  background: rgba(244, 229, 231, 0.25);
}

.faq-page-section .faq-question-btn[aria-expanded="true"] {
  color: var(--primary, #6B2932);
  background: rgba(244, 229, 231, 0.35);
}

.faq-page-section .faq-question-text {
  line-height: 1.4;
  flex: 1 1 auto;
}

.faq-page-section .faq-chevron-box {
  width: 32px;
  height: 32px;
  border-radius: 8px;
  background: var(--surface-alt, #F4E5E7);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--primary, #6B2932);
  flex-shrink: 0;
  transition: transform 0.3s ease, background-color 0.3s ease;
}

.faq-page-section .faq-chevron-svg {
  width: 16px;
  height: 16px;
}

.faq-page-section .faq-question-btn[aria-expanded="true"] .faq-chevron-box {
  transform: rotate(180deg);
  background: var(--primary, #6B2932);
  color: var(--on-primary, #FFFFFF);
}

.faq-page-section .faq-answer-collapse {
  display: none;
  border-top: 1px solid var(--border, #E4E1D8);
}

.faq-page-section .faq-answer-collapse.show {
  display: block;
}

.faq-page-section .faq-answer-body {
  padding: 22px 28px;
  font-size: 0.95rem;
  line-height: 1.65;
  color: var(--text, #252115);
}

.faq-page-section .faq-text-link {
  color: var(--primary, #6B2932);
  text-decoration: underline;
  text-underline-offset: 3px;
  font-weight: 600;
  transition: color 0.2s ease;
}

.faq-page-section .faq-text-link:hover {
  color: var(--primary-hover, #511F26);
}

.faq-page-section .faq-callout-panel {
  position: relative;
  border-radius: 20px;
}

.faq-page-section .faq-callout-bg-plane {
  position: absolute;
  inset: 8px -8px -8px 8px;
  background: var(--surface-alt, #F4E5E7);
  border-radius: 20px;
  z-index: 0;
  border: 1px solid var(--border, #E4E1D8);
}

.faq-page-section .faq-callout-content {
  position: relative;
  z-index: 1;
  background: var(--surface, #FFFFFF);
  border: 1px solid var(--border, #E4E1D8);
  border-radius: 20px;
  box-shadow: 0 16px 36px -10px rgba(107, 41, 50, 0.1);
}

.faq-page-section .faq-empty-state {
  background: var(--surface, #FFFFFF);
  border: 1px dashed var(--border, #E4E1D8);
  border-radius: 16px;
  padding: 40px 20px;
}

.faq-page-section .faq-empty-icon-holder {
  width: 56px;
  height: 56px;
  border-radius: 50%;
  background: var(--surface-alt, #F4E5E7);
  color: var(--primary, #6B2932);
  display: flex;
  align-items: center;
  justify-content: center;
}

.faq-page-section .faq-empty-svg {
  width: 28px;
  height: 28px;
}

@media (max-width: 767px) {
  .faq-page-section .faq-question-btn {
    padding: 18px 20px;
    font-size: 0.95rem;
  }

  .faq-page-section .faq-answer-body {
    padding: 18px 20px;
    font-size: 0.9rem;
  }

  .faq-page-section .faq-callout-bg-plane {
    display: none;
  }

  .faq-page-section .faq-callout-content {
    padding: 24px 18px !important;
    text-align: center;
  }

  .faq-page-section .faq-callout-content .text-md-end {
    text-align: center !important;
    margin-top: 16px;
  }
}

/* ===== PAGE: privacy ===== */
.privacy-page-section{background:var(--bg);position:relative;overflow:hidden}.privacy-sidebar{position:sticky;top:32px}.privacy-nav-card{border:1px solid var(--border);border-radius:16px;background:var(--surface);box-shadow:var(--shadow-ambient-light)}.privacy-meta-card{border:1px solid var(--border);border-radius:16px;background:var(--surface);box-shadow:var(--shadow-ambient-light)}.privacy-nav-link{display:flex;align-items:center;gap:10px;padding:10px 14px;border-radius:8px;color:var(--text);text-decoration:none;font-weight:600;font-size:0.9rem;transition:all .25s ease}.privacy-nav-link svg{color:var(--text-muted);transition:transform .25s ease,color .25s ease;flex-shrink:0}.privacy-nav-link:hover{background:var(--surface-alt);color:var(--primary-text)}.privacy-nav-link:hover svg{color:var(--primary-text);transform:translateX(3px)}.privacy-nav-link.active{background:var(--surface-alt);color:var(--primary-text);border-left:3px solid var(--primary)}.privacy-nav-link.active svg{color:var(--primary-text)}.privacy-card{border:1px solid var(--border);border-radius:16px;background:var(--surface);box-shadow:var(--shadow-ambient-light);transition:transform .3s ease,box-shadow .3s ease}.privacy-card:hover{box-shadow:var(--shadow-floating-depth)}.privacy-subcard{background:var(--surface-alt);border:1px solid var(--border);border-radius:12px;height:100%}.privacy-callout{background:var(--surface-alt);border-left:4px solid var(--primary);border-radius:8px}.privacy-checklist{list-style:none;padding-left:0;margin-bottom:0}.privacy-checklist li{color:var(--text);font-size:0.95rem;line-height:1.5}@media (max-width:767px){.privacy-sidebar{position:static;margin-bottom:24px}.privacy-card{padding:20px}.privacy-nav-link{font-size:0.85rem;padding:8px 10px}.privacy-page-section h2{font-size:1.15rem;hyphens:auto}.privacy-page-section h3{font-size:1rem;hyphens:auto}}

/* ===== PAGE: terms ===== */
.terms-content-section { background-color: var(--bg); color: var(--text); position: relative; }
.terms-content-section .terms-sidebar-wrapper { position: sticky; top: 96px; z-index: 10; }
.terms-content-section .terms-nav-card { background: var(--surface); border: 1px solid var(--border); border-radius: 16px; box-shadow: 0 20px 40px -15px rgba(107, 41, 50, 0.08); }
.terms-content-section .terms-sidebar-title { font-size: 1.25rem; font-weight: 700; color: #252115; line-height: 1.3; }
.terms-content-section .terms-sidebar-desc { font-size: 0.875rem; color: #6D6655; line-height: 1.5; }
.terms-content-section .terms-search-box .form-control { background-color: #FFFFFF; border: 1px solid var(--border); color: #252115; font-size: 0.875rem; padding: 10px 14px; border-radius: 8px 0 0 8px; }
.terms-content-section .terms-search-box .form-control:focus { border-color: var(--primary); box-shadow: 0 0 0 2px rgba(107, 41, 50, 0.15); color: #252115; background-color: #FFFFFF; }
.terms-content-section .terms-search-reset-btn { border-radius: 0 8px 8px 0; padding: 0 14px; display: inline-flex; align-items: center; justify-content: center; background-color: var(--primary); color: var(--on-primary); border: none; }
.terms-content-section .terms-btn-icon { width: 16px; height: 16px; }
.terms-content-section .terms-filter-status { font-size: 0.75rem; font-weight: 600; color: #806E4A; }
.terms-content-section .terms-toc-list { list-style: none; padding-left: 0; display: flex; flex-direction: column; gap: 8px; }
.terms-content-section .terms-toc-link { display: block; font-size: 0.875rem; font-weight: 600; color: #6D6655; padding: 8px 12px; border-radius: 8px; text-decoration: none; transition: all 0.25s ease; border-left: 3px solid transparent; }
.terms-content-section .terms-toc-link:hover { color: var(--primary); background: rgba(107, 41, 50, 0.05); }
.terms-content-section .terms-toc-link.active { color: var(--primary); background: rgba(107, 41, 50, 0.08); border-left-color: var(--primary); }
.terms-content-section .terms-meta-row { font-size: 0.785rem; }
.terms-content-section .terms-meta-label { font-weight: 600; color: #6D6655; }
.terms-content-section .terms-meta-val { font-weight: 700; color: #252115; }
.terms-content-section .terms-article-card { background: var(--surface); border: 1px solid var(--border); border-radius: 16px; padding: 32px; box-shadow: 0 20px 40px -15px rgba(107, 41, 50, 0.08); transition: transform 0.3s ease, box-shadow 0.3s ease; scroll-margin-top: 100px; }
.terms-content-section .terms-article-card:hover { transform: translateY(-3px); box-shadow: 0 28px 56px -12px rgba(47, 18, 22, 0.12); }
.terms-content-section .terms-article-card.terms-card-hidden { display: none !important; }
.terms-content-section .terms-icon-layer { position: relative; width: 48px; height: 48px; flex-shrink: 0; display: inline-flex; align-items: center; justify-content: center; }
.terms-content-section .terms-icon-plate { position: absolute; top: 4px; left: 4px; width: 44px; height: 44px; border-radius: 12px; background: #F4E5E7; z-index: 0; }
.terms-content-section .terms-icon-core { position: relative; z-index: 1; width: 44px; height: 44px; border-radius: 12px; background: #FFFFFF; border: 1px solid var(--border); display: flex; align-items: center; justify-content: center; color: var(--primary); }
.terms-content-section .terms-svg-symbol { width: 22px; height: 22px; }
.terms-content-section .terms-section-heading { font-size: 1.375rem; font-weight: 700; color: #252115; line-height: 1.3; }
.terms-content-section .terms-body-text { font-size: 0.975rem; line-height: 1.7; color: #252115; }
.terms-content-section .terms-body-text p { margin-bottom: 1rem; color: #252115; }
.terms-content-section .terms-inline-link { color: var(--primary); text-decoration: underline; font-weight: 600; text-underline-offset: 2px; transition: color 0.2s ease; }
.terms-content-section .terms-inline-link:hover { color: var(--primary-hover); }
.terms-content-section .terms-checklist { list-style: none; padding-left: 0; margin-top: 1rem; }
.terms-content-section .terms-check-item { display: flex; align-items: flex-start; gap: 12px; margin-bottom: 10px; font-size: 0.925rem; color: #252115; }
.terms-content-section .terms-check-icon { width: 18px; height: 18px; color: var(--primary); flex-shrink: 0; margin-top: 3px; }
.terms-content-section .terms-interactive-feedback { background: linear-gradient(161deg, #F4E5E7 0%, #F7F0EC 100%); border: 1px solid var(--border); border-radius: 16px; }
.terms-content-section .terms-feedback-title { font-size: 1.15rem; font-weight: 700; color: #252115; }
.terms-content-section .terms-feedback-text { font-size: 0.9rem; color: #6D6655; line-height: 1.5; }
.terms-content-section .terms-cta-btn { background: var(--primary); color: var(--on-primary); text-decoration: none; border-radius: 12px; padding: 12px 24px; font-weight: 700; font-size: 0.9rem; transition: background-color 0.25s ease, transform 0.2s ease; }
.terms-content-section .terms-cta-btn:hover { background: var(--primary-hover); color: var(--on-primary); transform: translateY(-2px); }
@media (max-width: 991px) { .terms-content-section .terms-sidebar-wrapper { position: static; margin-bottom: 24px; } }
@media (max-width: 767px) { .terms-content-section .terms-article-card { padding: 20px 16px; } .terms-content-section .terms-section-heading { font-size: 1.125rem; } .terms-content-section .terms-sidebar-title { font-size: 1.125rem; } .terms-content-section .terms-feedback-title { font-size: 1rem; } .terms-content-section .terms-interactive-feedback { padding: 20px 16px; } }

/* ===== PAGE: disclaimer ===== */
.disclaimer-page { position: relative; background: var(--bg); overflow: hidden; }
.disclaimer-page .disclaimer-header-wrap { position: relative; z-index: 2; }
.disclaimer-page .disclaimer-strip { display: inline-block; background: var(--surface); border: 1px solid var(--border); padding: 6px 18px; border-radius: 8px; box-shadow: 0 6px 16px -4px rgba(107, 41, 50, 0.08); }
.disclaimer-page .disclaimer-lead { font-size: 1.0625rem; line-height: 1.6; max-width: 720px; overflow-wrap: anywhere; }
.disclaimer-page .disclaimer-nav-card { background: var(--surface); border: 1px solid var(--border); border-radius: 16px; padding: 24px; box-shadow: 0 16px 32px -8px rgba(107, 41, 50, 0.06); position: sticky; top: 96px; }
.disclaimer-page .disclaimer-nav-title { font-size: 1.25rem; font-weight: 700; color: var(--text); line-height: 1.3; }
.disclaimer-page .disclaimer-nav-desc { font-size: 0.875rem; line-height: 1.5; }
.disclaimer-page .disclaimer-nav-menu { display: flex; flex-direction: column; gap: 8px; }
.disclaimer-page .disclaimer-nav-item { width: 100%; display: flex; align-items: center; text-align: left; background: transparent; border: 1px solid transparent; border-radius: 10px; padding: 10px 12px; font-weight: 600; font-size: 0.9375rem; color: var(--text); transition: all 0.25s ease; cursor: pointer; }
.disclaimer-page .disclaimer-nav-item:hover { background: var(--surface-alt); border-color: rgba(107, 41, 50, 0.15); color: var(--primary); }
.disclaimer-page .disclaimer-nav-item.active { background: var(--surface-alt); border-color: rgba(107, 41, 50, 0.25); color: var(--primary); box-shadow: 0 4px 12px -2px rgba(107, 41, 50, 0.1); }
.disclaimer-page .disclaimer-item-label { overflow-wrap: anywhere; }
.disclaimer-page .fr-icon { position: relative; width: 32px; height: 32px; min-width: 32px; display: inline-flex; align-items: center; justify-content: center; }
.disclaimer-page .fr-icon-plate { position: absolute; inset: 2px -2px -2px 2px; border-radius: 8px; background: rgba(107, 41, 50, 0.12); z-index: 0; }
.disclaimer-page .fr-icon-core { position: relative; z-index: 1; width: 30px; height: 30px; border-radius: 8px; background: var(--surface); border: 1px solid var(--border); display: flex; align-items: center; justify-content: center; color: var(--primary); }
.disclaimer-page .fr-icon-core svg { width: 16px; height: 16px; }
.disclaimer-page .disclaimer-inquiry-box { background: var(--surface-alt); border: 1px solid rgba(107, 41, 50, 0.18); border-radius: 12px; padding: 18px; }
.disclaimer-page .disclaimer-inquiry-badge { display: inline-block; font-size: 0.75rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.05em; color: var(--primary); margin-bottom: 8px; }
.disclaimer-page .disclaimer-content-deck { position: relative; min-height: 480px; }
.disclaimer-page .disclaimer-panel { display: none; position: relative; }
.disclaimer-page .disclaimer-panel.active { display: block; animation: disclaimerFadeIn 0.35s cubic-bezier(0.16, 1, 0.3, 1); }
@keyframes disclaimerFadeIn { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: translateY(0); } }
.disclaimer-page .disclaimer-card-backplane { position: absolute; inset: 12px -12px -12px 12px; border-radius: 24px; background: var(--surface-alt); border: 1px solid var(--border); z-index: 0; }
.disclaimer-page .disclaimer-card-front { position: relative; z-index: 1; background: var(--surface); border: 1px solid var(--border); border-radius: 16px; padding: 32px; box-shadow: 0 20px 40px -15px rgba(107, 41, 50, 0.08); }
.disclaimer-page .disclaimer-meta-chip { display: inline-flex; align-items: center; font-size: 0.75rem; font-weight: 700; color: var(--text-muted); background: var(--bg); border: 1px solid var(--border); border-radius: 9999px; padding: 4px 12px; }
.disclaimer-page .disclaimer-card-title { font-size: 1.5rem; font-weight: 700; color: var(--text); line-height: 1.3; margin-bottom: 16px; overflow-wrap: anywhere; }
.disclaimer-page .disclaimer-text { font-size: 1rem; line-height: 1.65; color: var(--text); margin-bottom: 16px; overflow-wrap: anywhere; }
.disclaimer-page .disclaimer-inline-link { color: var(--primary); font-weight: 600; text-decoration: underline; text-underline-offset: 3px; }
.disclaimer-page .disclaimer-inline-link:hover { color: var(--primary-hover); }
.disclaimer-page .disclaimer-highlight-box { background: var(--surface-alt); border-left: 4px solid var(--primary); border-radius: 4px 10px 10px 4px; padding: 18px 20px; }
.disclaimer-page .disclaimer-highlight-title { font-size: 1rem; font-weight: 700; color: var(--primary); margin-bottom: 6px; }
.disclaimer-page .disclaimer-highlight-text { font-size: 0.9375rem; line-height: 1.55; color: var(--text); }
.disclaimer-page .disclaimer-point-list { display: flex; flex-direction: column; gap: 12px; }
.disclaimer-page .disclaimer-point-item { display: flex; align-items: flex-start; gap: 10px; font-size: 0.9375rem; line-height: 1.55; color: var(--text); }
.disclaimer-page .disclaimer-point-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--primary); margin-top: 8px; flex-shrink: 0; }
@media (max-width: 767px) { .disclaimer-page .disclaimer-nav-card { position: static; margin-bottom: 16px; padding: 18px; } .disclaimer-page .disclaimer-card-front { padding: 22px 18px; } .disclaimer-page .disclaimer-card-backplane { inset: 8px -8px -8px 8px; border-radius: 18px; } .disclaimer-page .disclaimer-card-title { font-size: 1.25rem; } }

.spatial-comment-card {
    position: relative;
    margin-bottom: 2rem;
}

.spatial-comment-backdrop {
    position: absolute;
    inset: 12px -12px -12px 12px;
    background: #F4E5E7;
    border-radius: 20px;
    border: 1px solid #E4E1D8;
    z-index: 1;
    pointer-events: none;
}

.spatial-comment-surface {
    position: relative;
    z-index: 2;
    background: #FFFFFF;
    border-radius: 16px;
    border: 1px solid #E4E1D8;
    padding: 1.75rem;
    box-shadow: 0 20px 40px -15px rgba(107, 41, 50, 0.08);
    transition: all 0.35s cubic-bezier(0.16, 1, 0.3, 1);
}

.spatial-comment-surface:hover {
    transform: translateY(-3px);
    box-shadow: 0 28px 56px -12px rgba(47, 18, 22, 0.16), 0 12px 24px -8px rgba(107, 41, 50, 0.1);
}

.avatar-initials {
    width: 48px;
    height: 48px;
    min-width: 48px;
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 700;
    font-size: 1.125rem;
    line-height: 1;
    user-select: none;
    object-fit: cover;
    box-shadow: 0 4px 10px rgba(107, 41, 50, 0.15);
}

.avatar-initials--primary {
    background: #6B2932;
    color: #FFFFFF;
}

.comment-author-name {
    font-size: 1.125rem;
    font-weight: 700;
    color: #252115;
    letter-spacing: -0.01em;
}

.comment-role-badge {
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.02em;
    text-transform: uppercase;
    color: #806E4A;
    background: #F9F7F0;
    padding: 2px 8px;
    border-radius: 6px;
    border: 1px solid #E4E1D8;
}

.comment-timestamp {
    font-size: 0.8125rem;
    color: #6D6655;
}

.spatial-status-chip {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    background: #2F1216;
    color: #FFFFFF;
    border-radius: 8px;
    padding: 6px 12px;
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.02em;
    box-shadow: 0 4px 12px rgba(47, 18, 22, 0.15);
}

.spatial-status-chip .chip-icon {
    color: #D5CBB7;
}

.comment-body .comment-text {
    font-size: 1rem;
    line-height: 1.65;
    color: #252115;
}

.border-top-divider {
    border-top: 1px solid #E4E1D8;
}

.comment-action-btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    background: #F9F7F0;
    color: #6B2932;
    border: 1px solid #E4E1D8;
    border-radius: 8px;
    padding: 6px 14px;
    font-size: 0.875rem;
    font-weight: 700;
    cursor: pointer;
    transition: all 0.25s cubic-bezier(0.16, 1, 0.3, 1);
}

.comment-action-btn:hover {
    background: #6B2932;
    color: #FFFFFF;
    border-color: #6B2932;
    transform: translateY(-2px);
    box-shadow: 0 6px 16px -4px rgba(107, 41, 50, 0.3);
}

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

.like-counter {
    font-variant-numeric: tabular-nums;
}

.comment-metric-hint {
    font-size: 0.8125rem;
    font-weight: 600;
    color: #6D6655;
    letter-spacing: 0.02em;
}

.spatial-reply-container {
    position: relative;
}

.spatial-reply-stem {
    position: absolute;
    left: -18px;
    top: 0;
    bottom: 24px;
    width: 2px;
    background: #E4E1D8;
    border-radius: 9999px;
}

.spatial-reply-stem::after {
    content: '';
    position: absolute;
    top: 24px;
    left: 0;
    width: 16px;
    height: 2px;
    background: #E4E1D8;
}

.spatial-reply-card {
    position: relative;
    z-index: 2;
}

.spatial-reply-surface {
    background: #FDFCF9;
    border-radius: 12px;
    border: 1px solid #E4E1D8;
    padding: 1.25rem 1.5rem;
    box-shadow: 0 10px 24px -10px rgba(107, 41, 50, 0.06);
    transition: all 0.35s cubic-bezier(0.16, 1, 0.3, 1);
}

.spatial-reply-surface:hover {
    background: #FFFFFF;
    transform: translateY(-2px);
    box-shadow: 0 16px 32px -8px rgba(47, 18, 22, 0.1);
    border-color: rgba(107, 41, 50, 0.25);
}

.avatar-initials {
    width: 40px;
    height: 40px;
    min-width: 40px;
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 700;
    font-size: 0.9375rem;
    line-height: 1;
    user-select: none;
    object-fit: cover;
}

.avatar-initials--reply {
    background: #2F1216;
    color: #FFFFFF;
    box-shadow: 0 4px 10px rgba(47, 18, 22, 0.2);
}

.spatial-reply-surface .comment-author-name {
    font-size: 1rem;
    font-weight: 700;
    color: #252115;
    letter-spacing: -0.01em;
}

.comment-context-badge {
    font-size: 0.6875rem;
    font-weight: 700;
    letter-spacing: 0.03em;
    text-transform: uppercase;
    color: #6B2932;
    background: #F4E5E7;
    padding: 2px 6px;
    border-radius: 4px;
    border: 1px solid rgba(107, 41, 50, 0.15);
}

.spatial-reply-surface .comment-timestamp {
    font-size: 0.75rem;
    color: #6D6655;
}

.spatial-reply-surface .comment-text {
    font-size: 0.9375rem;
    line-height: 1.55;
    color: #252115;
}

.spatial-reply-surface .border-top-divider {
    border-top: 1px solid #E4E1D8;
}

.comment-action-btn--compact {
    padding: 4px 10px;
    font-size: 0.8125rem;
}

.comment-reply-indicator {
    font-size: 0.75rem;
    font-weight: 600;
    color: #806E4A;
    letter-spacing: 0.02em;
}


/* ===== PAGE TEMPLATE: knowledge-base-list ===== */
.vw-detail-hero {
    background: var(--dark-band-bg, linear-gradient(154deg, #2F1216 0%, #4A1C22 100%));
    padding: 4.5rem 0 3.5rem 0;
    position: relative;
    border-bottom: 1px solid rgba(255, 255, 255, 0.1)
}

.vw-detail-hero-orb {
    position: absolute;
    width: 480px;
    height: 480px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(213, 203, 183, 0.12) 0%, rgba(47, 18, 22, 0) 70%);
    top: -140px;
    right: -100px;
    pointer-events: none
}

.vw-detail-main-title {
    font-size: clamp(1.85rem, 3.5vw, 2.75rem);
    font-weight: 800;
    color: #FFFFFF;
    line-height: 1.2;
    letter-spacing: -0.02em;
    overflow-wrap: anywhere
}

.vw-detail-subhead {
    font-size: 1.125rem;
    line-height: 1.65;
    color: var(--on-dark-muted, #C3C0B6);
    max-width: 760px;
    margin-left: auto;
    margin-right: auto;
    overflow-wrap: anywhere
}

.vw-hero-meta-strip {
    font-size: 0.875rem;
    color: var(--on-dark-muted, #C3C0B6)
}

.vw-detail-meta-text {
    color: var(--on-dark-muted, #C3C0B6);
    font-size: 0.8125rem;
    font-weight: 600
}

.vw-author-chip-avatar {
    width: 24px;
    height: 24px;
    border-radius: 50%;
    background-color: var(--accent, #D5CBB7);
    color: var(--dark-band, #2F1216);
    font-size: 0.75rem;
    font-weight: 800;
    display: inline-flex;
    align-items: center;
    justify-content: center
}

.vw-meta-val {
    color: #FFFFFF;
    font-weight: 600
}

.vw-meta-divider {
    color: rgba(255, 255, 255, 0.3)
}

.vw-detail-inline-icon {
    width: 16px;
    height: 16px;
    color: var(--accent, #D5CBB7)
}

.vw-detail-layout-section {
    background-color: var(--bg, #F9F7F0);
    padding: 4rem 0 5rem 0
}

.vw-sticky-sidebar {
    position: sticky;
    top: 90px
}

.vw-sidebar-card {
    background-color: var(--surface, #FFFFFF);
    border: 1px solid var(--border, #E4E1D8);
    border-radius: 16px;
    padding: 24px;
    box-shadow: var(--shadow-ambient-light, 0 20px 40px -15px rgba(107, 41, 50, 0.08))
}

.vw-sidebar-header {
    border-bottom: 1px solid var(--border, #E4E1D8);
    padding-bottom: 12px;
    margin-bottom: 16px
}

.vw-sidebar-title {
    font-size: 1.125rem;
    font-weight: 700;
    color: var(--text, #252115);
    line-height: 1.3
}

.vw-toc-list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 8px
}

.vw-toc-link {
    display: block;
    padding: 8px 12px;
    border-radius: 8px;
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--text-muted, #6D6655);
    text-decoration: none;
    transition: background-color .2s ease, color .2s ease, transform .2s ease;
    overflow-wrap: anywhere
}

.vw-toc-link:hover {
    background-color: var(--surface-alt, #F4E5E7);
    color: var(--primary, #6B2932);
    transform: translateX(3px)
}

.vw-toc-link.active {
    background-color: var(--surface-alt, #F4E5E7);
    color: var(--primary, #6B2932);
    font-weight: 700;
    border-left: 3px solid var(--primary, #6B2932)
}

.vw-facts-grid {
    display: flex;
    flex-direction: column;
    gap: 12px
}

.vw-fact-tile {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px;
    background-color: var(--surface-alt, #F4E5E7);
    border: 1px solid rgba(107, 41, 50, 0.1);
    border-radius: 10px
}

.vw-fact-icon-box {
    width: 36px;
    height: 36px;
    border-radius: 8px;
    background: #FFFFFF;
    border: 1px solid var(--border, #E4E1D8);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--primary, #6B2932);
    flex-shrink: 0
}

.vw-fact-icon {
    width: 18px;
    height: 18px
}

.vw-fact-info {
    display: flex;
    flex-direction: column;
    min-width: 0
}

.vw-fact-label {
    font-size: 0.75rem;
    font-weight: 700;
    color: var(--text-muted, #6D6655);
    text-transform: uppercase;
    letter-spacing: 0.04em
}

.vw-fact-val {
    font-size: 0.875rem;
    font-weight: 800;
    color: var(--text, #252115);
    overflow-wrap: anywhere
}

.vw-sidebar-cta-card {
    background: var(--dark-band-bg, linear-gradient(154deg, #2F1216 0%, #4A1C22 100%));
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: 16px;
    padding: 24px;
    color: #FFFFFF;
    box-shadow: 0 16px 32px -8px rgba(47, 18, 22, 0.3)
}

.vw-cta-card-icon {
    width: 48px;
    height: 48px;
    margin: 0 auto 16px auto;
    border-radius: 12px;
    background: rgba(255, 255, 255, 0.1);
    border: 1px solid rgba(255, 255, 255, 0.2);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--accent, #D5CBB7)
}

.vw-sidebar-svg {
    width: 22px;
    height: 22px
}

.vw-sidebar-cta-title {
    font-size: 1.125rem;
    font-weight: 700;
    color: #FFFFFF;
    margin-bottom: 8px
}

.vw-sidebar-cta-desc {
    font-size: 0.8125rem;
    line-height: 1.5;
    color: var(--on-dark-muted, #C3C0B6);
    margin-bottom: 16px
}

.vw-article-container {
    background-color: var(--surface, #FFFFFF);
    border: 1px solid var(--border, #E4E1D8);
    border-radius: 20px;
    padding: 36px;
    box-shadow: var(--shadow-ambient-light, 0 20px 40px -15px rgba(107, 41, 50, 0.08))
}

.vw-article-featured-media {
    border: 1px solid var(--border, #E4E1D8);
    border-radius: 0;
    overflow: hidden;
    background-color: var(--surface-alt, #F4E5E7)
}

.vw-article-main-img {
    width: 100%;
    height: auto;
    aspect-ratio: 16/9;
    object-fit: cover;
    display: block;
    border-radius: 0
}

.vw-article-media-caption {
    background-color: var(--surface, #FFFFFF);
    border-top: 1px solid var(--border, #E4E1D8);
    padding: 10px 16px;
    font-size: 0.8125rem;
    color: var(--text-muted, #6D6655)
}

.vw-caption-title {
    font-weight: 600
}

.vw-caption-tag {
    font-weight: 700;
    color: var(--primary, #6B2932)
}

.vw-elevated-strip-holder {
    display: block
}

.vw-elevated-strip {
    display: inline-block;
    background: #FFFFFF;
    border: 1px solid var(--border, #E4E1D8);
    padding: 6px 18px;
    border-radius: 8px;
    box-shadow: 0 6px 14px -4px rgba(107, 41, 50, 0.08)
}

.vw-article-h2 {
    font-size: 1.625rem;
    font-weight: 800;
    color: var(--text, #252115);
    line-height: 1.3;
    letter-spacing: -0.015em
}

.vw-article-lead {
    font-size: 1.125rem;
    line-height: 1.75;
    font-weight: 600;
    color: var(--text, #252115)
}

.vw-article-node p {
    font-size: 1rem;
    line-height: 1.7;
    color: var(--text-muted, #6D6655);
    margin-bottom: 1.25rem
}

.vw-styled-list {
    list-style: disc;
    padding-left: 1.5rem;
    display: flex;
    flex-direction: column;
    gap: 10px
}

.vw-list-item {
    font-size: 0.9375rem;
    line-height: 1.6;
    color: var(--text, #252115)
}

.vw-pull-quote-block {
    position: relative;
    background: linear-gradient(161deg, #F4E5E7 0%, #F7F0EC 100%);
    border: 1px solid var(--border, #E4E1D8);
    border-left: 4px solid var(--primary, #6B2932);
    border-radius: 12px;
    padding: 28px 32px;
    overflow: hidden
}

.vw-quote-text {
    font-size: 1.2rem;
    font-weight: 700;
    font-style: italic;
    line-height: 1.55;
    color: var(--primary, #6B2932)
}

.vw-quote-author {
    font-size: 0.875rem
}

.vw-quote-dot {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background-color: var(--primary, #6B2932);
    display: inline-block
}

.vw-quote-author-name {
    font-weight: 800;
    color: var(--text, #252115)
}

.vw-quote-author-role {
    color: var(--text-muted, #6D6655);
    font-weight: 600
}

.vw-related-card {
    background: var(--surface, #FFFFFF);
    border: 1px solid var(--border, #E4E1D8);
    border-radius: 14px;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    transition: transform .25s ease, box-shadow .25s ease
}

.vw-related-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 18px 36px -10px rgba(47, 18, 22, 0.12)
}

.vw-related-thumb-wrapper {
    position: relative;
    aspect-ratio: 16/9;
    overflow: hidden;
    background-color: var(--surface-alt, #F4E5E7);
    border-bottom: 1px solid var(--border, #E4E1D8)
}

.vw-related-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    border-radius: 0
}

.vw-related-badge {
    position: absolute;
    top: 12px;
    left: 12px;
    background: rgba(47, 18, 22, 0.85);
    color: #FFFFFF;
    font-size: 0.6875rem;
    font-weight: 700;
    padding: 4px 10px;
    border-radius: 6px;
    backdrop-filter: blur(4px)
}

.vw-related-card-body {
    padding: 20px;
    display: flex;
    flex-direction: column;
    flex-grow: 1
}

.vw-related-date,
.vw-related-author {
    font-size: 0.75rem;
    color: var(--text-muted, #6D6655);
    font-weight: 600
}

.vw-related-dot {
    font-size: 0.75rem;
    color: var(--text-muted, #6D6655)
}

.vw-related-title {
    font-size: 1.0625rem;
    font-weight: 700;
    line-height: 1.35;
    margin: 0
}

.vw-related-link {
    color: var(--text, #252115);
    text-decoration: none;
    transition: color .2s ease
}

.vw-related-link:hover {
    color: var(--primary, #6B2932)
}

.vw-related-excerpt {
    font-size: 0.875rem;
    line-height: 1.55;
    color: var(--text-muted, #6D6655)
}

.vw-related-cta {
    align-self: flex-start;
    font-size: 0.8125rem;
    padding: 8px 16px;
    text-decoration: none
}

.vw-accordion {
    display: flex;
    flex-direction: column;
    gap: 12px
}

.vw-accordion-item {
    border: 1px solid var(--border, #E4E1D8);
    border-radius: 12px;
    background-color: var(--surface, #FFFFFF);
    overflow: hidden;
    transition: border-color .2s ease
}

.vw-accordion-item.active {
    border-color: var(--primary, #6B2932)
}

.vw-accordion-trigger {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 16px 20px;
    background: transparent;
    border: none;
    text-align: left;
    cursor: pointer
}

.vw-accordion-title {
    font-size: 1rem;
    font-weight: 700;
    color: var(--text, #252115)
}

.vw-accordion-icon {
    width: 20px;
    height: 20px;
    flex-shrink: 0;
    color: var(--primary, #6B2932);
    transition: transform .25s ease
}

.vw-accordion-item.active .vw-accordion-icon {
    transform: rotate(180deg)
}

.vw-accordion-content {
    max-height: 0;
    overflow: hidden;
    transition: max-height .3s cubic-bezier(0, 1, 0, 1);
    background-color: var(--surface-alt, #F4E5E7)
}

.vw-accordion-item.active .vw-accordion-content {
    max-height: 600px;
    transition: max-height .3s cubic-bezier(1, 0, 1, 0)
}

.vw-accordion-body {
    padding: 16px 20px;
    font-size: 0.9375rem;
    line-height: 1.6;
    color: var(--text, #252115)
}

.vw-author-box-card {
    background: linear-gradient(161deg, #F4E5E7 0%, #F7F0EC 100%);
    border: 1px solid var(--border, #E4E1D8);
    border-radius: 16px;
    padding: 28px
}

.vw-author-avatar-holder {
    position: relative;
    flex-shrink: 0
}

.vw-author-big-avatar {
    width: 72px;
    height: 72px;
    border-radius: 50%;
    background-color: var(--primary, #6B2932);
    color: #FFFFFF;
    font-size: 1.5rem;
    font-weight: 800;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 8px 18px -4px rgba(107, 41, 50, 0.3)
}

.vw-author-status-dot {
    position: absolute;
    bottom: 2px;
    right: 2px;
    width: 14px;
    height: 14px;
    border-radius: 50%;
    background-color: #22C55E;
    border: 2px solid #FFFFFF
}

.vw-author-name {
    font-size: 1.25rem;
    font-weight: 800;
    color: var(--text, #252115)
}

.vw-author-role {
    font-size: 0.8125rem;
    font-weight: 700;
    color: var(--accent-text, #806E4A);
    text-transform: uppercase;
    letter-spacing: 0.04em
}

.vw-author-bio {
    font-size: 0.9375rem;
    line-height: 1.6;
    color: var(--text-muted, #6D6655)
}

.vw-takeaways-card {
    background-color: var(--surface, #FFFFFF);
    border: 2px solid var(--primary, #6B2932);
    border-radius: 16px;
    padding: 32px;
    box-shadow: 0 16px 36px -12px rgba(107, 41, 50, 0.12)
}

.vw-takeaway-icon-plate {
    width: 40px;
    height: 40px;
    border-radius: 10px;
    background-color: var(--surface-alt, #F4E5E7);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--primary, #6B2932);
    flex-shrink: 0
}

.vw-takeaway-svg {
    width: 20px;
    height: 20px
}

.vw-takeaway-heading {
    font-size: 1.25rem;
    font-weight: 800;
    color: var(--primary, #6B2932)
}

.vw-takeaway-list {
    display: flex;
    flex-direction: column;
    gap: 18px
}

.vw-takeaway-item {
    align-items: flex-start
}

.vw-takeaway-num {
    font-size: 1.125rem;
    font-weight: 900;
    color: var(--accent-text, #806E4A);
    line-height: 1.3;
    flex-shrink: 0;
    min-width: 24px
}

.vw-takeaway-sub {
    display: block;
    font-size: 0.9375rem;
    font-weight: 800;
    color: var(--text, #252115);
    margin-bottom: 2px
}

.vw-takeaway-p {
    font-size: 0.875rem;
    line-height: 1.55;
    color: var(--text-muted, #6D6655)
}

.vw-bottom-form-block {
    background-color: var(--surface-alt, #F4E5E7);
    border: 1px solid var(--border, #E4E1D8);
    border-radius: 16px;
    padding: 32px
}

.vw-form-title {
    font-size: 1.375rem;
    font-weight: 800;
    color: var(--text, #252115)
}

.vw-form-intro {
    font-size: 0.875rem;
    max-width: 540px;
    margin-left: auto;
    margin-right: auto
}

.vw-label {
    font-size: 0.8125rem;
    font-weight: 700;
    color: var(--text, #252115);
    margin-bottom: 6px
}

.vw-input {
    background-color: #FFFFFF;
    border: 1px solid var(--border, #E4E1D8);
    color: var(--text, #252115);
    border-radius: 10px;
    padding: 10px 14px;
    font-size: 0.9375rem
}

.vw-input:focus {
    background-color: #FFFFFF;
    color: var(--text, #252115);
    border-color: var(--primary, #6B2932);
    box-shadow: 0 0 0 3px rgba(107, 41, 50, 0.15)
}

.vw-input::placeholder {
    color: var(--text-muted, #6D6655);
    opacity: 0.8
}

.vw-textarea {
    resize: vertical
}

.vw-consent-box {
    display: flex;
    align-items: flex-start;
    gap: 8px
}

.vw-checkbox {
    border-color: var(--border, #E4E1D8);
    margin-top: 3px
}

.vw-checkbox:checked {
    background-color: var(--primary, #6B2932);
    border-color: var(--primary, #6B2932)
}

.vw-consent-text {
    font-size: 0.75rem;
    line-height: 1.45;
    color: var(--text-muted, #6D6655)
}

.vw-privacy-anchor {
    color: var(--primary, #6B2932);
    text-decoration: underline
}

.vw-privacy-anchor:hover {
    color: var(--primary-hover, #511F26)
}

.vw-submit-btn {
    padding: 12px 24px;
    font-size: 0.9375rem;
    font-weight: 700
}

@media (max-width:991.98px) {
    .vw-sticky-sidebar {
        position: static
    }

    .vw-article-container {
        padding: 24px
    }
}

@media (max-width:767.98px) {
    .vw-detail-hero {
        padding: 3rem 0 2.5rem 0
    }

    .vw-detail-layout-section {
        padding: 2.5rem 0 3.5rem 0
    }

    .vw-article-container {
        padding: 16px;
        border-radius: 14px
    }

    .vw-article-h2 {
        font-size: 1.25rem
    }

    .vw-pull-quote-block {
        padding: 20px 18px
    }

    .vw-quote-text {
        font-size: 1rem
    }

    .vw-takeaways-card {
        padding: 20px 16px
    }

    .vw-bottom-form-block {
        padding: 20px 16px
    }
}

/* ===== PAGE TEMPLATE: analysis-tools-list ===== */
.vw-article-hero {
    background: var(--dark-band-bg, linear-gradient(154deg, #2F1216 0%, #4A1C22 100%));
    border-bottom: 1px solid rgba(255, 255, 255, 0.12);
}

.vw-article-hero .vw-hero-kicker-dot {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background-color: var(--accent, #D5CBB7);
}

.vw-article-hero .vw-hero-kicker-text {
    font-size: 0.8125rem;
    font-weight: 700;
    color: var(--on-dark-muted, #C3C0B6);
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.vw-article-hero .vw-article-title {
    color: #FFFFFF;
    font-size: clamp(1.75rem, 3.5vw, 2.75rem);
    font-weight: 800;
    line-height: 1.2;
    letter-spacing: -0.025em;
    overflow-wrap: anywhere;
}

.vw-article-hero .vw-article-subtitle {
    color: var(--on-dark-muted, #C3C0B6);
    font-size: 1.125rem;
    line-height: 1.6;
    max-width: 760px;
    margin: 0 auto;
    overflow-wrap: anywhere;
}

.vw-article-hero .vw-article-meta-row {
    color: var(--on-dark-muted, #C3C0B6);
    font-size: 0.875rem;
}

.vw-article-hero .vw-meta-label {
    color: #FFFFFF;
}

.vw-article-hero .vw-meta-bullet {
    color: var(--accent, #D5CBB7);
}

.vw-framed-article-block {
    background-color: var(--bg, #F9F7F0);
    padding: 4rem 0 5rem 0;
}

.vw-framed-article-block .vw-content-outer-frame {
    background: var(--surface, #FFFFFF);
    border: 2px solid var(--border, #E4E1D8);
    border-radius: 28px;
    box-shadow: 0 20px 40px -15px rgba(107, 41, 50, 0.08);
    padding: 3rem;
}

.vw-framed-article-block .vw-featured-image-container {
    border-radius: 16px;
    overflow: hidden;
    border: 1px solid var(--border, #E4E1D8);
    aspect-ratio: 16 / 9;
    background-color: var(--surface-alt, #F4E5E7);
}

.vw-framed-article-block .vw-featured-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.vw-framed-article-block .vw-section-heading {
    font-size: 1.75rem;
    color: var(--text-primary, #252115);
    line-height: 1.3;
    font-weight: 800;
    margin-top: 0.5rem;
    overflow-wrap: anywhere;
}

.vw-framed-article-block .vw-facts-definition-list {
    background: var(--section-alt-bg, linear-gradient(161deg, #F4E5E7 0%, #F7F0EC 100%));
    border: 1px solid var(--border, #E4E1D8);
    border-radius: 16px;
    padding: 1.5rem;
}

.vw-framed-article-block .vw-fact-term {
    font-size: 0.75rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--text-muted, #6D6655);
    font-weight: 700;
    margin-bottom: 0.25rem;
}

.vw-framed-article-block .vw-fact-description {
    font-size: 1rem;
    font-weight: 700;
    color: var(--text-primary, #252115);
    margin-bottom: 0;
    overflow-wrap: anywhere;
}

.vw-framed-article-block .vw-frame-divider {
    border: 0;
    height: 1px;
    background: var(--border, #E4E1D8);
    opacity: 1;
}

.vw-framed-article-block .vw-article-toc-box {
    background-color: var(--surface, #FFFFFF);
    border: 1px solid var(--border, #E4E1D8);
    border-radius: 16px;
    padding: 1.5rem 2rem;
    box-shadow: 0 8px 24px -6px rgba(47, 18, 22, 0.05);
}

.vw-framed-article-block .vw-toc-icon {
    color: var(--primary, #6B2932);
}

.vw-framed-article-block .vw-toc-svg {
    width: 22px;
    height: 22px;
}

.vw-framed-article-block .vw-toc-heading {
    font-size: 1.125rem;
    font-weight: 700;
    color: var(--text-primary, #252115);
}

.vw-framed-article-block .vw-toc-list {
    padding-left: 1.25rem;
    margin-top: 0.75rem;
}

.vw-framed-article-block .vw-toc-item {
    margin-bottom: 0.5rem;
}

.vw-framed-article-block .vw-toc-link {
    color: var(--primary, #6B2932);
    font-weight: 600;
    text-decoration: none;
    transition: color 0.2s ease;
}

.vw-framed-article-block .vw-toc-link:hover,
.vw-framed-article-block .vw-toc-link:focus {
    color: var(--primary-hover, #511F26);
    text-decoration: underline;
}

.vw-framed-article-block .vw-article-p {
    font-size: 1.0625rem;
    line-height: 1.7;
    color: var(--text-primary, #252115);
    margin-bottom: 1.25rem;
    overflow-wrap: anywhere;
}

.vw-framed-article-block .vw-article-cta-box {
    background: var(--dark-band-bg, linear-gradient(154deg, #2F1216 0%, #4A1C22 100%));
    border-radius: 20px;
    color: #FFFFFF;
    border: 1px solid rgba(255, 255, 255, 0.15);
    box-shadow: 0 16px 36px -10px rgba(47, 18, 22, 0.3);
}

.vw-framed-article-block .vw-cta-heading {
    font-size: 1.35rem;
    font-weight: 800;
    color: #FFFFFF;
    line-height: 1.3;
    overflow-wrap: anywhere;
}

.vw-framed-article-block .vw-cta-text {
    font-size: 0.9375rem;
    line-height: 1.6;
    color: var(--on-dark-muted, #C3C0B6);
    overflow-wrap: anywhere;
}

.vw-framed-article-block .vw-form-label {
    font-size: 0.8125rem;
    font-weight: 700;
    color: #FFFFFF;
}

.vw-framed-article-block .vw-form-input {
    background-color: #FFFFFF;
    border: 1px solid var(--border, #E4E1D8);
    color: var(--text-primary, #252115);
    border-radius: 10px;
    padding: 10px 14px;
    font-size: 0.9375rem;
}

.vw-framed-article-block .vw-form-input:focus {
    border-color: var(--accent, #D5CBB7);
    box-shadow: 0 0 0 3px rgba(213, 203, 183, 0.3);
    color: var(--text-primary, #252115);
    background-color: #FFFFFF;
}

.vw-framed-article-block .vw-form-input::placeholder {
    color: var(--text-muted, #6D6655);
    opacity: 0.8;
}

.vw-framed-article-block .vw-form-checkbox {
    border-color: rgba(255, 255, 255, 0.4);
}

.vw-framed-article-block .vw-form-checkbox:checked {
    background-color: var(--primary, #6B2932);
    border-color: var(--primary, #6B2932);
}

.vw-framed-article-block .vw-form-consent-label {
    font-size: 0.75rem;
    color: var(--on-dark-muted, #C3C0B6);
    line-height: 1.4;
}

.vw-framed-article-block .vw-consent-link {
    color: #FFFFFF;
    text-decoration: underline;
}

.vw-framed-article-block .vw-consent-link:hover {
    color: var(--accent, #D5CBB7);
}

.vw-framed-article-block .vw-form-submit {
    background-color: var(--primary, #6B2932);
    color: #FFFFFF;
    border: none;
    padding: 12px 20px;
    border-radius: 10px;
    font-weight: 700;
    transition: background-color 0.2s ease, transform 0.2s ease;
}

.vw-framed-article-block .vw-form-submit:hover {
    background-color: var(--primary-hover, #511F26);
    transform: translateY(-1px);
}

.vw-framed-article-block .vw-key-takeaways-panel {
    background-color: var(--surface-alt, #F4E5E7);
    border-left: 4px solid var(--primary, #6B2932);
    border-radius: 14px;
}

.vw-framed-article-block .vw-takeaways-title {
    font-size: 1.125rem;
    font-weight: 800;
    color: var(--primary, #6B2932);
    overflow-wrap: anywhere;
}

.vw-framed-article-block .vw-takeaways-list {
    padding-left: 1.25rem;
    margin-top: 0.5rem;
}

.vw-framed-article-block .vw-takeaway-item {
    font-size: 0.9375rem;
    color: var(--text-primary, #252115);
    margin-bottom: 0.5rem;
    line-height: 1.5;
    overflow-wrap: anywhere;
}

.vw-framed-article-block .vw-article-pullquote {
    border-top: 2px solid var(--accent, #D5CBB7);
    border-bottom: 2px solid var(--accent, #D5CBB7);
    background: rgba(244, 229, 231, 0.3);
    border-radius: 12px;
}

.vw-framed-article-block .vw-quote-body p {
    font-size: 1.25rem;
    font-style: italic;
    font-weight: 600;
    line-height: 1.5;
    color: var(--primary, #6B2932);
    overflow-wrap: anywhere;
}

.vw-framed-article-block .vw-quote-caption {
    font-size: 0.875rem;
    font-weight: 700;
    color: var(--text-muted, #6D6655);
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.vw-framed-article-block .vw-structured-list-box {
    background: var(--surface, #FFFFFF);
    border: 1px solid var(--border, #E4E1D8);
    border-radius: 12px;
}

.vw-framed-article-block .vw-box-subheading {
    font-size: 1.125rem;
    font-weight: 700;
    color: var(--text-primary, #252115);
}

.vw-framed-article-block .vw-procedure-ordered-list {
    padding-left: 1.25rem;
}

.vw-framed-article-block .vw-procedure-step {
    font-size: 0.9375rem;
    color: var(--text-primary, #252115);
    line-height: 1.5;
    overflow-wrap: anywhere;
}

.vw-framed-article-block .vw-related-items-section {
    border-top: 1px solid var(--border, #E4E1D8);
}

.vw-framed-article-block .vw-related-card {
    background-color: var(--surface, #FFFFFF);
    border: 1px solid var(--border, #E4E1D8);
    border-radius: 16px;
    overflow: hidden;
    transition: transform 0.25s ease, box-shadow 0.25s ease;
}

.vw-framed-article-block .vw-related-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 16px 32px -8px rgba(47, 18, 22, 0.12);
}

.vw-framed-article-block .vw-card-media-wrap {
    aspect-ratio: 16 / 9;
    background-color: var(--surface-alt, #F4E5E7);
    overflow: hidden;
}

.vw-framed-article-block .vw-card-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.vw-framed-article-block .vw-card-title {
    font-size: 1.125rem;
    font-weight: 700;
    line-height: 1.35;
    color: var(--text-primary, #252115);
    overflow-wrap: anywhere;
}

.vw-framed-article-block .vw-card-desc {
    font-size: 0.875rem;
    color: var(--text-muted, #6D6655);
    line-height: 1.5;
    overflow-wrap: anywhere;
}

.vw-framed-article-block .vw-card-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    border: 1.5px solid var(--primary, #6B2932);
    color: var(--primary, #6B2932);
    background-color: transparent;
    border-radius: 10px;
    padding: 8px 16px;
    font-size: 0.875rem;
    font-weight: 700;
    text-decoration: none;
    transition: background-color 0.2s ease, color 0.2s ease;
}

.vw-framed-article-block .vw-card-btn:hover,
.vw-framed-article-block .vw-card-btn:focus {
    background-color: var(--primary, #6B2932);
    color: #FFFFFF;
}

@media (max-width: 767px) {
    .vw-framed-article-block .vw-content-outer-frame {
        padding: 1.5rem 1rem;
        border-radius: 18px;
    }

    .vw-article-hero .vw-article-title {
        font-size: 1.625rem;
        hyphens: auto;
    }

    .vw-framed-article-block .vw-section-heading {
        font-size: 1.35rem;
        hyphens: auto;
    }

    .vw-framed-article-block .vw-article-cta-box {
        padding: 1.5rem 1rem !important;
    }

    .vw-framed-article-block .vw-quote-body p {
        font-size: 1.0625rem;
    }
}

/* 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%;
  }
}

/* ===== Featured Case Scenario Compare ===== */
.vw-scenario-compare {
    gap: 12px;
}
.vw-scenario-window {
    background: rgba(107, 41, 50, 0.06);
    border: 1px solid rgba(107, 41, 50, 0.15);
    border-radius: 10px;
    padding: 14px 18px;
    min-width: 160px;
}
.vw-scenario-window--alert {
    background: rgba(107, 41, 50, 0.12);
    border-color: rgba(107, 41, 50, 0.3);
}
.vw-scenario-window-label {
    font-weight: 700;
    font-size: 0.95rem;
    color: var(--primary, #6B2932);
    margin-bottom: 6px;
}
.vw-scenario-window-detail {
    font-size: 0.85rem;
    color: var(--text, #252115);
    line-height: 1.6;
}
.vw-scenario-arrow {
    color: var(--primary, #6B2932);
    font-weight: 600;
    margin-right: 4px;
}
.vw-review-question {
    background: linear-gradient(135deg, rgba(107, 41, 50, 0.06) 0%, rgba(213, 203, 183, 0.18) 100%);
    border-left: 3px solid var(--primary, #6B2932);
    border-radius: 0 8px 8px 0;
    padding: 12px 16px;
}
.vw-review-question-label {
    font-weight: 700;
    font-size: 0.85rem;
    color: var(--primary, #6B2932);
    text-transform: uppercase;
    letter-spacing: 0.03em;
    display: block;
    margin-bottom: 4px;
}
.vw-review-question-text {
    font-size: 0.9rem;
    color: var(--text, #252115);
    font-style: italic;
}

/* ===== Footer Independence Disclaimer ===== */
.vw-footer__disclaimer {
    margin-top: 28px;
    padding: 20px 24px;
    border: 1px solid rgba(255, 255, 255, 0.12);
    border-radius: 10px;
    background: rgba(255, 255, 255, 0.04);
}
.vw-footer__disclaimer-title {
    font-size: 0.8rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: rgba(255, 255, 255, 0.65);
    margin-bottom: 8px;
}
.vw-footer__disclaimer-text {
    font-size: 0.8rem;
    line-height: 1.65;
    color: rgba(255, 255, 255, 0.45);
    margin: 0;
}
@media (max-width: 767px) {
    .vw-footer__disclaimer {
        padding: 16px 18px;
    }
}

/* ===== Comparison cards (replaces table on all viewports) ===== */
.vw-compare-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 14px;
}
.vw-compare-card {
    background: var(--surface, #FFFFFF);
    border: 1px solid var(--border, #E4E1D8);
    border-radius: 10px;
    padding: 16px 18px;
}
.vw-compare-card-title {
    font-weight: 700;
    font-size: 0.85rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--primary, #6B2932);
    margin-bottom: 10px;
    padding-bottom: 8px;
    border-bottom: 1px solid var(--border, #E4E1D8);
}
.vw-compare-card-row {
    display: flex;
    flex-direction: column;
    gap: 2px;
    padding: 6px 0;
}
.vw-compare-card-row + .vw-compare-card-row {
    border-top: 1px dashed var(--border, #E4E1D8);
}
.vw-compare-card-label {
    font-weight: 700;
    font-size: 0.78rem;
    color: var(--text-muted, #6D6655);
    text-transform: uppercase;
    letter-spacing: 0.03em;
}
.vw-compare-card-value {
    font-size: 0.9rem;
    line-height: 1.5;
    color: var(--text, #252115);
}
@media (max-width: 767px) {
    .vw-compare-grid {
        grid-template-columns: 1fr;
        gap: 12px;
    }
    .vw-compare-card {
        padding: 14px 16px;
    }
}
