/** Generated from the legacy catalogue; owner: core. */
/**
 * JS-CMS Components Stylesheet
 * Base styles for all content components.
 * Colors/fonts are overridden via site-vars.css (generated by Builder).
 */

/* ---------------------------------------------------------------------------
   CSS Custom Properties (defaults — overridden by site-vars.css)
   --------------------------------------------------------------------------- */
:root {
    --cms-primary: #0f766e;
    --cms-primary-light: #eff6ff;
    --cms-primary-dark: #1d4ed8;
    --cms-secondary: #64748b;
    --cms-accent: #f59e0b;
    --cms-success: #10b981;
    --cms-warning: #f59e0b;
    --cms-danger: #ef4444;
    --cms-info: #3b82f6;

    --cms-text: #1e293b;
    --cms-text-light: #64748b;
    --cms-text-muted: #94a3b8;
    --cms-bg: #ffffff;
    --cms-bg-alt: #f8fafc;
    --cms-border: #e2e8f0;

    --cms-font: system-ui, -apple-system, sans-serif;
    --cms-font-heading: var(--cms-font);
    --cms-font-mono: 'Fira Code', 'Consolas', monospace;

    --cms-radius: 8px;
    --cms-radius-lg: 12px;
    --cms-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
    --cms-shadow-lg: 0 4px 12px rgba(0, 0, 0, 0.1);

    --cms-spacing: 1.5rem;
    --cms-spacing-lg: 2.5rem;
    --cms-max-width: 1200px;

    --cms-ds-container: var(--container, var(--cms-max-width));
    --cms-ds-container-narrow: var(--container-narrow, 768px);
    --cms-ds-section-pad-none: 0px;
    --cms-ds-section-pad-sm: calc(var(--spacing-section, 80px) * 0.4);
    --cms-ds-section-pad-md: calc(var(--spacing-section, 80px) * 0.65);
    --cms-ds-section-pad-lg: var(--spacing-section, 80px);
    --cms-ds-section-pad-xl: calc(var(--spacing-section, 80px) * 1.4);
    --cms-ds-gap-sm: clamp(12px, 1.4vw, 18px);
    --cms-ds-gap-md: clamp(18px, 2vw, 28px);
    --cms-ds-gap-lg: clamp(28px, 3vw, 44px);
    --cms-ds-radius-md: var(--radius, var(--cms-radius));
    --cms-ds-radius-lg: var(--radius-lg, var(--cms-radius-lg));
    --cms-ds-radius-full: var(--radius-full, 999px);
    --cms-ds-card-pad: calc(clamp(16px, 2vw, 24px) * var(--style-card-padding-scale, 1));
    --cms-ds-card-bg: var(--color-bg, var(--cms-bg));
    --cms-ds-card-bg-alt: var(--color-bg-alt, var(--cms-bg-alt));
    --cms-ds-card-bg-dark: var(--color-dark-bg, #1C1917);
    --cms-ds-card-border: var(--color-border, var(--cms-border));
    --cms-ds-card-shadow: var(--shadow, var(--cms-shadow));
    --cms-ds-text: var(--color-text, var(--cms-text));
    --cms-ds-muted: var(--color-text-muted, var(--cms-text-light));
    --cms-ds-accent: var(--color-accent, var(--cms-primary));
}


[x-cloak] {
    display: none !important;
}


[data-cms-menu-panel][hidden] {
    display: none !important;
}


[data-cms-menu-panel].is-open[x-cloak] {
    display: block !important;
}


.cms-ds-container {
    width: min(100% - 48px, var(--cms-ds-container));
    margin-inline: auto;
}


.cms-ds-container--narrow {
    width: min(100% - 48px, var(--cms-ds-container-narrow));
}


.cms-ds-grid {
    display: grid;
    gap: var(--cms-ds-gap-md);
}


.cms-ds-grid--cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }


.cms-ds-grid--cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }


.cms-ds-grid--cols-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }


.cms-ds-stack {
    display: flex;
    flex-direction: column;
    gap: var(--cms-ds-gap-md);
}


.cms-ds-card {
    --cms-pc-bg: var(--cms-ds-card-bg);
    --cms-pc-border: var(--style-card-border-width, 1px) solid var(--cms-ds-card-border);
    --cms-pc-radius: var(--cms-ds-radius-lg);
    --cms-pc-text: var(--cms-ds-text);
    --cms-pc-muted: var(--cms-ds-muted);
    --cms-pc-border-color: var(--cms-ds-card-border);
    --cms-pc-overlay-bg: var(--cms-ds-card-bg-dark);
    --cms-gc-bg: var(--cms-ds-card-bg);
    --cms-gc-border: var(--style-card-border-width, 1px) solid var(--cms-ds-card-border);
    --cms-gc-radius: var(--cms-ds-radius-lg);
    --cms-gc-text: var(--cms-ds-text);
    --cms-gc-muted: var(--cms-ds-muted);
    --cms-gc-border-color: var(--cms-ds-card-border);
    --cms-gc-overlay-bg: var(--cms-ds-card-bg-dark);
}


.cms-ds-card--bg-alt {
    --cms-pc-bg: var(--cms-ds-card-bg-alt);
    --cms-gc-bg: var(--cms-ds-card-bg-alt);
}


.cms-ds-card--bg-dark,
.cms-ds-card--dark {
    --cms-pc-bg: var(--cms-ds-card-bg-dark);
    --cms-pc-text: #fff;
    --cms-pc-muted: rgba(255,255,255,.7);
    --cms-pc-border-color: rgba(255,255,255,.14);
    --cms-pc-border: var(--style-card-border-width, 1px) solid rgba(255,255,255,.14);
    --cms-gc-bg: var(--cms-ds-card-bg-dark);
    --cms-gc-text: #fff;
    --cms-gc-muted: rgba(255,255,255,.7);
    --cms-gc-border-color: rgba(255,255,255,.14);
    --cms-gc-border: var(--style-card-border-width, 1px) solid rgba(255,255,255,.14);
}


.cms-ds-card--bg-transparent,
.cms-ds-card--appearance-flat {
    --cms-pc-bg: transparent;
    --cms-pc-border: none;
    --cms-pc-radius: 0;
    --cms-gc-bg: transparent;
    --cms-gc-border: none;
    --cms-gc-radius: 0;
}


/* ---------------------------------------------------------------------------
   Summary Box ("En résumé")
   --------------------------------------------------------------------------- */
.cms-summary {
    background: var(--cms-primary-light);
    border-radius: var(--cms-radius-lg);
    padding: var(--cms-spacing);
}


.cms-summary__title {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-family: var(--cms-font-heading);
    font-size: 1.1rem;
    font-weight: 700;
    color: var(--cms-primary-dark);
    margin: 0 0 0.75rem;
}


.cms-summary__title::before {
    content: '';
    display: inline-block;
    width: 20px;
    height: 20px;
    background: var(--cms-primary);
    mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2'%3E%3Cpath d='M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2'/%3E%3C/svg%3E");
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2'%3E%3Cpath d='M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2'/%3E%3C/svg%3E");
}


.cms-summary__list {
    margin: 0;
    padding-left: 1.25rem;
}


.cms-summary__list li {
    margin-bottom: 0.4rem;
}


/* ---------------------------------------------------------------------------
   FAQ
   --------------------------------------------------------------------------- */
.cms-faq {
    border-radius: var(--cms-radius-lg);
}


.cms-faq__title {
    font-family: var(--cms-font-heading);
    font-size: 1.25rem;
    font-weight: 700;
    margin: 0 0 1rem;
}


.cms-faq__item {
    border-bottom: 1px solid var(--cms-border);
    padding: 0;
}


.cms-faq__item:last-child {
    border-bottom: none;
}


.cms-faq__question {
    display: flex;
    justify-content: space-between;
    align-items: center;
    width: 100%;
    padding: 1rem 0;
    background: none;
    border: none;
    font-family: var(--cms-font);
    font-size: 1rem;
    font-weight: 600;
    color: var(--cms-text);
    cursor: pointer;
    text-align: left;
}


.cms-faq__question::after {
    content: '+';
    font-size: 1.25rem;
    color: var(--cms-primary);
    transition: transform 0.2s;
    flex-shrink: 0;
    margin-left: 1rem;
}


.cms-faq__item.is-open .cms-faq__question::after {
    content: '−';
}


.cms-faq__answer {
    display: none;
    padding: 0 0 1rem;
    color: var(--cms-text-light);
}


.cms-faq__item.is-open .cms-faq__answer {
    display: block;
}


/* ---------------------------------------------------------------------------
   Short Blocks (Astuce, Note, Définition, À savoir, Attention)
   --------------------------------------------------------------------------- */
.cms-inline-accent {
    border: 0;
    border-left: 3px solid var(--color-accent, var(--cms-primary));
    border-radius: 0;
    box-shadow: none;
    background: transparent;
    padding: 14px 18px;
    margin: 24px 0;
}


.cms-inline-accent__eyebrow {
    display: block;
    margin: 0 0 10px;
    font-family: var(--font-body, var(--cms-font));
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.07em;
    text-transform: uppercase;
    color: var(--cms-inline-accent-color, var(--color-accent, var(--cms-primary)));
}


.cms-inline-accent__content {
    font-family: var(--font-body, var(--cms-font));
    font-size: 14px;
    line-height: 1.7;
    color: var(--color-text-muted, var(--cms-text-light));
}


.cms-inline-accent__content p {
    margin: 0;
    font-family: var(--font-body, var(--cms-font));
    font-size: 14px;
    line-height: 1.7;
    color: var(--color-text-muted, var(--cms-text-light));
}


.cms-short {
    --cms-inline-accent-color: var(--color-accent, var(--cms-primary));
}


.cms-short--warning {
    --cms-inline-accent-color: #f59e0b;
}


.cms-paa__question {
    font-family: var(--cms-font-heading);
    font-size: 1.1rem;
    font-weight: 700;
    margin: 0 0 0.75rem;
    color: var(--cms-primary-dark);
}


.cms-paa__answer {
    color: var(--cms-text);
}


/* ---------------------------------------------------------------------------
   Expert Opinion
   --------------------------------------------------------------------------- */
.cms-expert {
    padding: var(--cms-spacing);
    background: var(--cms-bg);
    border: 1px solid var(--cms-border);
    border-radius: var(--cms-radius-lg);
    box-shadow: var(--cms-shadow);
}


.cms-expert__quote {
    font-size: 1.05rem;
    font-style: italic;
    color: var(--cms-text);
    margin: 0 0 1rem;
    padding-left: 1rem;
    border-left: 3px solid var(--cms-primary);
    line-height: 1.8;
}


.cms-expert__author {
    display: flex;
    align-items: center;
    gap: 0.75rem;
}


.cms-expert__avatar {
    width: 48px;
    height: 48px;
    border-radius: 50%;
    object-fit: cover;
}


.cms-expert__name {
    font-weight: 700;
    color: var(--cms-text);
}


.cms-expert__role {
    font-size: 0.875rem;
    color: var(--cms-text-muted);
}


/* ---------------------------------------------------------------------------
   Video Embed
   --------------------------------------------------------------------------- */
.cms-video {
    border-radius: var(--cms-radius-lg);
    overflow: hidden;
}


.cms-video__wrapper {
    position: relative;
    padding-bottom: 56.25%; /* 16:9 */
    height: 0;
    overflow: hidden;
}


.cms-video__wrapper iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    border: none;
}


.cms-video__caption {
    padding: 0.75rem 0 0;
    font-size: 0.875rem;
    color: var(--cms-text-muted);
    text-align: center;
}


/* ---------------------------------------------------------------------------
   Image / Infographic Figure
   --------------------------------------------------------------------------- */
.cms-figure {
    text-align: center;
}


.cms-figure__image {
    max-width: 100%;
    height: auto;
    border-radius: var(--cms-radius);
}


.cms-figure__caption {
    margin-top: 0.75rem;
    font-size: 0.875rem;
    color: var(--cms-text-muted);
    font-style: italic;
}


.cms-figure--infographic {
    background: var(--cms-bg-alt);
    padding: var(--cms-spacing);
    border-radius: var(--cms-radius-lg);
}


/* ---------------------------------------------------------------------------
   Simulator / Tool
   --------------------------------------------------------------------------- */
.cms-simulator {
    padding: var(--cms-spacing);
    background: var(--cms-bg);
    border: 2px solid var(--cms-primary);
    border-radius: var(--cms-radius-lg);
}


.cms-simulator__title {
    font-family: var(--cms-font-heading);
    font-size: 1.15rem;
    font-weight: 700;
    color: var(--cms-primary-dark);
    margin: 0 0 1rem;
}


.cms-simulator__body {
    /* Custom tool content goes here */
}


/* Shared form styles for tools */
.cms-simulator input,
.cms-simulator select {
    display: block;
    width: 100%;
    padding: 0.6rem 0.75rem;
    border: 1px solid var(--cms-border);
    border-radius: var(--cms-radius);
    font-family: var(--cms-font);
    font-size: 0.95rem;
    margin-bottom: 0.75rem;
    box-sizing: border-box;
}


.cms-simulator input:focus,
.cms-simulator select:focus {
    outline: none;
    border-color: var(--cms-primary);
    box-shadow: 0 0 0 3px var(--cms-primary-light);
}


.cms-simulator label {
    display: block;
    font-weight: 600;
    font-size: 0.9rem;
    margin-bottom: 0.3rem;
}


.cms-simulator button,
.cms-simulator .btn {
    display: inline-block;
    padding: 0.7rem 1.5rem;
    background: var(--cms-primary);
    color: #fff;
    border: none;
    border-radius: var(--cms-radius);
    font-family: var(--cms-font);
    font-size: 0.95rem;
    font-weight: 600;
    cursor: pointer;
    transition: background 0.15s;
}


.cms-simulator button:hover,
.cms-simulator .btn:hover {
    background: var(--cms-primary-dark);
}


.cms-simulator__result {
    margin-top: 1rem;
    padding: var(--cms-spacing);
    background: var(--cms-primary-light);
    border-radius: var(--cms-radius);
    font-size: 1.1rem;
    font-weight: 700;
    text-align: center;
    color: var(--cms-primary-dark);
}


/* ---------------------------------------------------------------------------
   Chart
   --------------------------------------------------------------------------- */
.cms-chart {
    padding: var(--cms-spacing);
    background: var(--cms-bg);
    border: 1px solid var(--cms-border);
    border-radius: var(--cms-radius-lg);
}


.cms-chart__title {
    font-family: var(--cms-font-heading);
    font-weight: 700;
    margin: 0 0 1rem;
}


.cms-chart__canvas {
    width: 100%;
    max-height: 400px;
}


.cms-chart__caption {
    margin-top: 0.75rem;
    font-size: 0.875rem;
    color: var(--cms-text-muted);
    text-align: center;
}


/* ---------------------------------------------------------------------------
   Responsive
   --------------------------------------------------------------------------- */
@media (max-width: 768px) {

    .cms-expert__author {
        flex-direction: column;
        text-align: center;
    }}


/* YouTube Lite (lazy-load thumbnails — WP imports + new component) */
.yt-lite,
.video-embed-wrapper {
    position: relative;
    display: block;
    cursor: pointer;
    width: 100%;
    padding-bottom: 56.25%;
    margin: 1.5rem 0;
    background: #000;
    overflow: hidden;
    border-radius: 0.75rem;
}


.yt-lite img,
.video-embed-wrapper img {
    position: absolute !important;
    top: 0;
    left: 0;
    width: 100% !important;
    height: 100% !important;
    object-fit: cover;
    margin: 0 !important;
    border-radius: 0 !important;
    z-index: 1;
}


.yt-lite iframe,
.video-embed-wrapper iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    border: none;
    margin: 0;
    border-radius: 0;
}


/* Play button (shared by yt-lite + video-embed) */
.yt-play-button,
.video-play-icon {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 68px;
    height: 48px;
    border: none;
    background: rgba(0, 0, 0, 0.45);
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: background 0.2s;
    z-index: 2;
}


.yt-play-button svg {
    width: 26px;
    height: 26px;
    fill: #fff;
}


.video-play-icon::after {
    content: '';
    position: absolute;
    top: 50%;
    left: 55%;
    transform: translate(-50%, -50%);
    border-style: solid;
    border-width: 10px 0 10px 18px;
    border-color: transparent transparent transparent #fff;
}


.yt-play-button:hover,
.video-play-icon:hover {
    background: var(--cms-accent, #D97706);
}


/* SVG play icon (from WP yt-lite) */
.yt-lite svg.yt-play-icon {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 68px;
    height: 48px;
    z-index: 2;
    opacity: 0.9;
    transition: opacity 0.2s;
}


.yt-lite:hover svg.yt-play-icon { opacity: 1; }


.bloc_resume_post_title,
.cms-summary__title {
    font-family: var(--cms-font-serif, 'Playfair Display', serif);
    font-size: 1.25rem;
    font-weight: 600;
    color: var(--cms-accent, #D97706);
    margin: 0 0 0.75rem;
    padding: 0;
}


.bloc_resume_post h2 {
    font-size: 1.25rem;
    font-weight: 600;
    color: var(--cms-accent, #D97706);
    margin: 0 0 0.75rem;
    padding: 0;
    border: none;
}


.bloc_resume_post ul,
.cms-summary__list {
    list-style: none;
    margin: 0;
    padding: 0;
}


.bloc_resume_post_list,
.bloc_resume_post ul {
    list-style: none;
    margin: 0;
    padding: 0;
}


.bloc_resume_post_list li,
.bloc_resume_post li,
.cms-summary__list li {
    font-size: 0.9rem;
    padding: 0 0 0.75rem;
    line-height: 1.5;
    color: var(--cms-text, #44403C);
    list-style: none !important;
}


.tc-fw {
    max-width: var(--container, 1200px);
    margin: 0 auto;
}


.tc-fw__title {
    margin: 0 0 8px;
    font-family: var(--font-heading);
    font-size: clamp(22px, 2.8vw, 30px);
    font-weight: 600;
    line-height: 1.3;
    color: var(--color-text);
    text-align: center;
}


.tc-fw__desc {
    max-width: 600px;
    margin: 0 auto 32px;
    font-family: var(--font-body);
    font-size: 15px;
    line-height: 1.6;
    color: var(--color-text-muted);
    text-align: center;
}


.tc-fw--dark .tc-fw__title,
.tc-std--dark .tc-std__title,
.tc-split--dark .tc-split__title { color: var(--color-dark-text); }


.tc-fw--dark .tc-fw__desc,
.tc-std--dark .tc-std__desc,
.tc-split--dark .tc-split__desc { color: var(--color-dark-text-muted); }


.tc-std__card {
    max-width: var(--container, 1200px);
    margin: 0 auto;
    background: var(--color-bg);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg, 12px);
    padding: clamp(28px, 4vw, 48px);
    position: relative;
    overflow: hidden;
}


.tc-std--white-card .tc-std__card { background: #fff; }


.tc-std__title {
    margin: 0 0 8px;
    font-family: var(--font-heading);
    font-size: clamp(22px, 2.8vw, 30px);
    font-weight: 600;
    line-height: 1.3;
    color: var(--color-text);
}


.tc-std__desc {
    max-width: 640px;
    margin: 0 0 28px;
    font-family: var(--font-body);
    font-size: 15px;
    line-height: 1.6;
    color: var(--color-text-muted);
}


.tc-split__wrap {
    max-width: var(--container, 1200px);
    margin: 0 auto;
    display: flex;
    gap: clamp(32px, 4vw, 56px);
    align-items: flex-start;
}


.tc-split__info {
    flex: 1 1 35%;
    min-width: 0;
    position: sticky;
    top: 100px;
}


.tc-split__title {
    margin: 0 0 16px;
    font-family: var(--font-heading);
    font-size: clamp(24px, 3vw, 36px);
    font-weight: 600;
    line-height: 1.2;
    color: var(--color-text);
}


.tc-split__desc {
    margin: 0 0 24px;
    font-family: var(--font-body);
    font-size: 15px;
    line-height: 1.7;
    color: var(--color-text-muted);
}


.tc-split__tool {
    flex: 1 1 60%;
    min-width: 0;
    background: var(--color-bg);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg, 12px);
    padding: clamp(24px, 3vw, 40px);
}


.tc-split--white-card .tc-split__tool { background: #fff; }


@media (max-width: 860px) {
    .tc-split__wrap { flex-direction: column; }
    .tc-split__info { position: static; }}


.short_bloc p,
.cms-short p {
    margin: 0;
    color: var(--color-text-muted, var(--cms-text-light));
    line-height: 1.7;
    font-size: 14px;
}


.short_bloc_title,
.cms-short__title,
.cms-inline-accent__eyebrow {
    display: block;
    width: 100%;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: .07em;
    text-transform: uppercase;
    color: var(--cms-inline-accent-color, var(--color-accent, var(--cms-primary)));
    margin-bottom: 10px;
}


.short_bloc.answer::before {
    content: "📌 Réponse rapide";
    display: block;
    font-size: 0.95rem;
    font-weight: 600;
    color: var(--cms-accent, #D97706);
    margin-bottom: 0.35rem;
}


/* Related inline block (WP imports) */
.related-inline-block {
    background: var(--cms-light-bg, #FAF5F2);
    border-radius: 0.75rem;
    padding: 1rem 1.5rem;
    margin: 1.5rem 0 2rem;
    border: 1px solid #e7e5e4;
}


.related-inline-block a {
    color: var(--cms-accent, #D97706);
    font-weight: 500;
}


.related-inline-block a:hover {
    text-decoration: underline;
}


.cms-form-feedback {
    display: none;
    position: relative;
    margin-top: 14px;
    padding: 14px 44px 14px 16px;
    border-radius: 14px;
    border: 1px solid transparent;
    font: 600 14px/1.5 var(--font-body, inherit);
    box-shadow: 0 16px 34px rgba(15, 23, 42, 0.12);
    transition: opacity 280ms cubic-bezier(0.22, 1, 0.36, 1), transform 280ms cubic-bezier(0.22, 1, 0.36, 1), filter 280ms cubic-bezier(0.22, 1, 0.36, 1);
    transform: translateY(10px) scale(0.985);
    filter: blur(4px);
    opacity: 0;
    will-change: opacity, transform, filter;
}


.cms-form-feedback::before {
    content: attr(data-message);
    display: block;
    white-space: normal;
}


.cms-form-feedback.is-visible {
    display: block;
    transform: translateY(0) scale(1);
    filter: blur(0);
    opacity: 1;
}


.cms-form-feedback.is-hiding {
    transform: translateY(-4px) scale(0.985);
    filter: blur(4px);
    opacity: 0;
}


.cms-form-feedback.is-loading {
    color: var(--color-text);
    background: linear-gradient(135deg, rgba(15, 23, 42, 0.04), rgba(148, 163, 184, 0.14));
    border-color: rgba(148, 163, 184, 0.28);
}


.cms-form-feedback.is-success {
    color: #fff;
    background: linear-gradient(135deg, #198754, #157347);
    border-color: rgba(255, 255, 255, 0.18);
}


.cms-form-feedback.is-error {
    color: #fff;
    background: linear-gradient(135deg, #dc3545, #b02a37);
    border-color: rgba(255, 255, 255, 0.14);
}


form.is-submitting button[type="submit"],
form.is-submitting input[type="submit"] {
    opacity: 0.72;
    cursor: wait;
}


.cms-form-feedback__close {
    position: absolute;
    top: 8px;
    right: 8px;
    width: 28px;
    height: 28px;
    border: none;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(255, 255, 255, 0.14);
    color: inherit;
    cursor: pointer;
    font-size: 18px;
    line-height: 1;
    transition: background 140ms ease, transform 140ms ease, opacity 140ms ease;
}


.cms-form-feedback__close:hover {
    background: rgba(255, 255, 255, 0.24);
    transform: scale(1.04);
}


.cms-consent-banner {
    position: fixed;
    left: 20px;
    right: 20px;
    bottom: 20px;
    z-index: 1200;
    opacity: 0;
    transform: translateY(16px);
    transition: opacity 220ms ease, transform 220ms ease;
}


.cms-consent-banner.is-visible {
    opacity: 1;
    transform: translateY(0);
}


.cms-consent-banner__card {
    max-width: 1080px;
    margin: 0 auto;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    position: relative;
    padding: 22px 24px;
    border: 1px solid rgba(255, 255, 255, 0.12);
    border-radius: 24px;
    background: linear-gradient(135deg, rgba(15, 23, 42, 0.98), rgba(27, 36, 52, 0.96));
    color: #fff;
    box-shadow: 0 24px 80px rgba(15, 23, 42, 0.34);
    backdrop-filter: blur(18px);
}


.cms-consent-banner__close {
    position: absolute;
    top: 12px;
    right: 14px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    border: 0;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.10);
    color: rgba(255, 255, 255, 0.74);
    font-size: 22px;
    line-height: 1;
    cursor: pointer;
    transition: background 140ms ease, color 140ms ease, transform 140ms ease;
}


.cms-consent-banner__close:hover {
    background: rgba(255, 255, 255, 0.16);
    color: #fff;
    transform: translateY(-1px);
}


.cms-consent-banner__copy {
    max-width: 760px;
}


.cms-consent-banner__eyebrow {
    margin: 0 0 10px;
    font: 700 11px/1 var(--font-body, inherit);
    letter-spacing: .12em;
    text-transform: uppercase;
    color: rgba(255,255,255,0.68);
}


.cms-consent-banner__title {
    margin: 0 0 10px;
    font: 700 clamp(20px, 2.1vw, 27px)/1.15 var(--font-heading, inherit);
    color: #fff;
}


.cms-consent-banner__text {
    max-width: 72ch;
    margin: 0;
    font: 400 14.5px/1.7 var(--font-body, inherit);
    color: rgba(255,255,255,0.78);
}


.cms-consent-banner__actions,
.cms-consent-modal__footer {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 12px;
    flex-wrap: wrap;
}


.cms-consent-modal__footer .cms-consent-btn--primary {
    margin-top: 6px;
}


.cms-consent-banner__actions {
    min-width: 360px;
}


.cms-consent-btn {
    appearance: none;
    border: 1px solid transparent;
    border-radius: 999px;
    padding: 12px 18px;
    font: 600 14px/1 var(--font-body, inherit);
    cursor: pointer;
    transition: transform 140ms ease, opacity 140ms ease, background 140ms ease, border-color 140ms ease;
}


.cms-consent-btn:hover {
    transform: translateY(-1px);
}


.cms-consent-btn--primary {
    background: var(--color-primary, var(--color-accent, #D97706));
    color: #fff;
}


.cms-consent-btn--hero {
    min-width: 172px;
    padding: 15px 24px;
    font-size: 15px;
    font-weight: 800;
    box-shadow: 0 16px 36px color-mix(in srgb, var(--color-primary, var(--color-accent, #D97706)) 38%, transparent);
}


.cms-consent-btn--soft {
    background: rgba(255,255,255,0.12);
    color: #fff;
}


.cms-consent-btn--ghost {
    background: transparent;
    border-color: rgba(255,255,255,0.2);
    color: rgba(255,255,255,0.86);
}


.cms-consent-btn--link {
    padding: 8px 4px;
    border: 0;
    background: transparent;
    color: rgba(255, 255, 255, 0.48);
    font-size: 12px;
    font-weight: 500;
    text-decoration: underline;
    text-underline-offset: 3px;
    box-shadow: none;
}


.cms-consent-btn--link:hover {
    color: rgba(255, 255, 255, 0.72);
}


.cms-consent-modal__footer .cms-consent-btn--link {
    color: var(--color-text-muted, #78716C);
}


.cms-consent-modal {
    position: fixed;
    inset: 0;
    z-index: 10080;
    opacity: 0;
    pointer-events: none;
    transition: opacity 180ms ease;
}


.cms-consent-modal.is-visible {
    opacity: 1;
    pointer-events: auto;
}


.cms-consent-modal__backdrop {
    position: absolute;
    inset: 0;
    background: rgba(15, 23, 42, 0.58);
    backdrop-filter: blur(6px);
}


.cms-consent-modal__dialog {
    position: relative;
    width: min(720px, calc(100vw - 32px));
    margin: min(8vh, 64px) auto 0;
    padding: 28px;
    border-radius: 28px;
    background: #fff;
    box-shadow: 0 28px 90px rgba(15, 23, 42, 0.24);
}


.cms-consent-modal__header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 20px;
}


.cms-consent-modal__title {
    margin: 0;
    font: 700 28px/1.15 var(--font-heading, inherit);
    color: var(--color-text, #1C1917);
}


.cms-consent-modal__close {
    appearance: none;
    width: 40px;
    height: 40px;
    border: 0;
    border-radius: 999px;
    background: rgba(15, 23, 42, 0.06);
    color: var(--color-text, #1C1917);
    font-size: 24px;
    cursor: pointer;
}


.cms-consent-modal__body {
    display: grid;
    gap: 14px;
}


.cms-consent-toggle {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 14px;
    align-items: center;
    padding: 16px 18px;
    border: 1px solid var(--color-border, #E7E5E4);
    border-radius: 18px;
    background: var(--color-bg-alt, #F8F7F4);
}


.cms-consent-toggle.is-locked {
    opacity: 0.82;
}


.cms-consent-toggle--recommended {
    border-color: color-mix(in srgb, var(--color-primary, var(--color-accent, #D97706)) 32%, var(--color-border, #E7E5E4));
    background: color-mix(in srgb, var(--color-primary, var(--color-accent, #D97706)) 8%, var(--color-bg-alt, #F8F7F4));
}


.cms-consent-toggle__copy {
    display: grid;
    gap: 6px;
}


.cms-consent-toggle__copy strong {
    font: 700 15px/1.3 var(--font-body, inherit);
    color: var(--color-text, #1C1917);
}


.cms-consent-toggle__copy small {
    font: 400 13px/1.6 var(--font-body, inherit);
    color: var(--color-text-muted, #78716C);
}


.cms-consent-toggle input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}


.cms-consent-toggle__switch {
    width: 54px;
    height: 32px;
    border-radius: 999px;
    background: #cbd5e1;
    position: relative;
    transition: background 160ms ease;
}


.cms-consent-toggle__switch::after {
    content: '';
    position: absolute;
    top: 4px;
    left: 4px;
    width: 24px;
    height: 24px;
    border-radius: 50%;
    background: #fff;
    box-shadow: 0 2px 10px rgba(15, 23, 42, 0.14);
    transition: transform 160ms ease;
}


.cms-consent-toggle input:checked + .cms-consent-toggle__switch {
    background: var(--color-primary, var(--color-accent, #D97706));
}


.cms-consent-toggle input:checked + .cms-consent-toggle__switch::after {
    transform: translateX(22px);
}


.cms-cookie-preferences-btn {
    appearance: none;
    background: none;
    border: 0;
    padding: 0;
    margin: 0;
    font: inherit;
    cursor: pointer;
}


[data-consent-embed] {
    position: relative;
}


.cms-consent-embed {
    position: relative;
    width: 100%;
    min-height: 240px;
    overflow: hidden;
    border: 1px solid var(--color-border, #E7E5E4);
    border-radius: var(--radius-lg, 16px);
    background:
        radial-gradient(circle at top left, color-mix(in srgb, var(--color-accent, #D97706) 14%, transparent) 0%, transparent 42%),
        linear-gradient(135deg, var(--color-bg-alt, #F8F7F4), #fff);
}


.cms-consent-embed__placeholder {
    display: grid;
    place-items: center;
    min-height: inherit;
    padding: 24px;
    text-align: center;
}


.cms-consent-embed__panel {
    max-width: 560px;
    display: grid;
    gap: 12px;
}


.cms-consent-embed__eyebrow {
    margin: 0;
    font: 700 11px/1 var(--font-body, inherit);
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--color-text-muted, #78716C);
}


.cms-consent-embed__title {
    margin: 0;
    font: 700 18px/1.35 var(--font-heading, inherit);
    color: var(--color-text, #1C1917);
}


.cms-consent-embed__text {
    margin: 0;
    font: 400 14px/1.7 var(--font-body, inherit);
    color: var(--color-text-muted, #78716C);
}


.cms-consent-embed iframe {
    width: 100%;
    height: 100%;
    border: 0;
    display: block;
}


.cms-consent-embed iframe.cms-consent-frame--fill {
    position: absolute;
    inset: 0;
}


.cms-consent-embed iframe.cms-consent-frame--cover {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 120vw;
    height: 120vh;
    min-width: 120%;
    min-height: 120%;
    transform: translate(-50%, -50%);
    pointer-events: none;
}


@media (max-width: 768px) {
    .cms-consent-banner {
        left: 12px;
        right: 12px;
        bottom: 12px;
    }

    .cms-consent-banner__card,
    .cms-consent-modal__dialog {
        padding: 18px;
        border-radius: 22px;
    }

    .cms-consent-banner__card {
        align-items: stretch;
        flex-direction: column;
    }

    .cms-consent-banner__actions,
    .cms-consent-modal__footer {
        justify-content: stretch;
        min-width: 0;
    }

    .cms-consent-banner__actions .cms-consent-btn--hero {
        order: 1;
    }

    .cms-consent-banner__actions .cms-consent-btn--soft {
        order: 2;
    }

    .cms-consent-banner__actions .cms-consent-btn--link {
        order: 3;
    }

    .cms-consent-btn {
        width: 100%;
    }}


/* ---------------------------------------------------------------------------
   Testimonials Cards 3 Columns
   --------------------------------------------------------------------------- */
.cms-testi3 {
    --cms-testi3-card-bg: var(--color-bg);
    --cms-testi3-card-border: var(--color-border);
    --cms-testi3-text: var(--color-text);
    --cms-testi3-muted: var(--color-text-muted);
    width: 100%;
}


.cms-testi3--dark {
    --cms-testi3-card-bg: rgba(255,255,255,0.05);
    --cms-testi3-card-border: rgba(255,255,255,0.08);
    --cms-testi3-text: var(--color-dark-text);
    --cms-testi3-muted: var(--color-dark-text-muted);
}


.cms-testi3__grid {
    max-width: var(--container, 1200px);
    margin: 0 auto;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: clamp(16px, 2vw, 24px);
}


.cms-testi3__card {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 16px;
    padding: clamp(24px, 3vw, 32px);
    border-radius: var(--radius-lg, 12px);
    border: 1px solid var(--cms-testi3-card-border, var(--color-border));
    background: var(--cms-testi3-card-bg, var(--color-bg));
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}


.cms-testi3__card:hover {
    transform: translateY(-3px);
    box-shadow: 0 8px 24px rgba(0,0,0,0.06);
}


.cms-testi3__quote-mark {
    position: absolute;
    top: 20px;
    right: 24px;
    opacity: 0.08;
}


.cms-testi3__quote-mark svg {
    width: 48px;
    height: 48px;
}


.cms-testi3__stars {
    display: flex;
    gap: 2px;
}


.cms-testi3__text {
    margin: 0;
    flex: 1;
    font-family: var(--font-body, var(--cms-font));
    font-size: clamp(14px, 1.3vw, 16px);
    font-style: italic;
    line-height: 1.65;
    color: var(--cms-testi3-text, var(--color-text));
}


.cms-testi3__author {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 2px;
}


.cms-testi3__name {
    margin: 0;
    font-family: var(--font-body, var(--cms-font));
    font-size: 14px;
    font-weight: 600;
    color: var(--cms-testi3-text, var(--color-text));
}


.cms-testi3__role {
    margin: 2px 0 0;
    font-family: var(--font-body, var(--cms-font));
    font-size: 12px;
    color: var(--cms-testi3-muted, var(--color-text-muted));
}


@media (max-width: 768px) {
    .cms-testi3__grid {
        grid-template-columns: 1fr;
        max-width: 500px;
    }}


.testi-sl,
.testi-sf,
.testi-mq,
.testi-sc {
    --cms-testi-text: var(--color-text);
    --cms-testi-muted: var(--color-text-muted);
    --cms-testi-card-bg: var(--color-bg);
    --cms-testi-card-border: var(--color-border);
    --cms-testi-dot: rgba(0,0,0,0.15);
    --cms-testi-fade-bg: var(--color-bg-section, #f8f9fa);
    width: 100%;
}


.testi-sl--dark,
.testi-sf--dark,
.testi-mq--dark,
.testi-sc--dark {
    --cms-testi-text: var(--color-dark-text);
    --cms-testi-muted: var(--color-dark-text-muted);
    --cms-testi-card-bg: rgba(255,255,255,0.05);
    --cms-testi-card-border: rgba(255,255,255,0.08);
    --cms-testi-dot: rgba(255,255,255,0.2);
    --cms-testi-fade-bg: var(--color-dark-bg, #1a1a2e);
}


.testi-sl { overflow: hidden; }


.testi-sl__inner { position: relative; max-width: 700px; margin: 0 auto; text-align: center; }


.testi-sl__mark { margin-bottom: 16px; opacity: 0.1; }


.testi-sl__mark svg { width: 48px; height: 48px; }


.testi-sl__track { position: relative; min-height: 200px; }


.testi-sl__slide { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; gap: 20px; opacity: 0; pointer-events: none; transition: opacity 0.5s ease; }


.testi-sl__slide--active { position: relative; opacity: 1; pointer-events: auto; }


.testi-sl__stars { display: flex; justify-content: center; gap: 3px; }


.testi-sl__text { margin: 0; color: var(--cms-testi-text); font-family: var(--font-heading); font-size: clamp(18px, 2.5vw, 26px); font-style: italic; font-weight: 500; line-height: 1.55; }


.testi-sl__author-wrap { display: flex; flex-direction: column; align-items: center; gap: 2px; }


.testi-sl__name { margin: 0; color: var(--cms-testi-text); font-family: var(--font-body); font-size: 15px; font-weight: 600; text-align: left; }


.testi-sl__role { margin: 2px 0 0; color: var(--cms-testi-muted); font-family: var(--font-body); font-size: 12px; text-align: left; }


.testi-sl__dots { display: flex; justify-content: center; gap: 8px; margin-top: 28px; }


.testi-sl__dot { width: 10px; height: 10px; padding: 0; border: none; border-radius: 50%; background: var(--cms-testi-dot); cursor: pointer; transition: background 0.3s ease, transform 0.3s ease; }


.testi-sl__dot--active { background: var(--color-accent); transform: scale(1.2); }


.testi-sf__inner { display: flex; flex-direction: column; align-items: center; gap: 24px; max-width: 800px; margin: 0 auto; text-align: center; }


.testi-sf__mark { opacity: 0.12; }


.testi-sf__mark svg { width: 56px; height: 56px; }


.testi-sf__stars { display: flex; justify-content: center; gap: 4px; }


.testi-sf__text { margin: 0; color: var(--cms-testi-text); font-family: var(--font-heading); font-size: clamp(20px, 3vw, 32px); font-style: italic; font-weight: 500; line-height: 1.5; }


.testi-sf__author-wrap { display: flex; flex-direction: column; align-items: center; gap: 4px; margin-top: 8px; }


.testi-sf__avatar { display: none; }


.testi-sf__name { margin: 0; color: var(--cms-testi-text); font-family: var(--font-body); font-size: 16px; font-weight: 600; }


.testi-sf__role { margin: 2px 0 0; color: var(--cms-testi-muted); font-family: var(--font-body); font-size: 13px; }


@keyframes cms-testi-marquee-scroll {
    0% { transform: translateX(0); }
    100% { transform: translateX(-50%); }
}


.testi-mq { position: relative; overflow: hidden; padding: 0; }


.testi-mq::before,
.testi-mq::after { content: ''; position: absolute; top: 0; bottom: 0; z-index: 2; width: 80px; pointer-events: none; }


.testi-mq::before { left: 0; background: linear-gradient(to right, var(--cms-testi-fade-bg), transparent); }


.testi-mq::after { right: 0; background: linear-gradient(to left, var(--cms-testi-fade-bg), transparent); }


.testi-mq__track { display: flex; width: max-content; animation: cms-testi-marquee-scroll 30s linear infinite; }


.testi-mq:hover .testi-mq__track { animation-play-state: paused; }


.testi-mq__card { display: flex; flex: 0 0 340px; flex-direction: column; gap: 12px; margin-right: 20px; padding: clamp(20px, 2.5vw, 28px); border: 1px solid var(--cms-testi-card-border); border-radius: var(--radius-lg, 12px); background: var(--cms-testi-card-bg); }


.testi-mq__stars { display: flex; gap: 2px; }


.testi-mq__text { flex: 1; margin: 0; color: var(--cms-testi-text); font-family: var(--font-body); font-size: 14px; font-style: italic; line-height: 1.6; }


.testi-mq__author { display: flex; flex-direction: column; align-items: flex-start; gap: 2px; }


.testi-mq__avatar { display: none; }


.testi-mq__name { margin: 0; color: var(--cms-testi-text); font-family: var(--font-body); font-size: 13px; font-weight: 600; }


.testi-mq__role { margin: 2px 0 0; color: var(--cms-testi-muted); font-family: var(--font-body); font-size: 11px; }


.testi-sc__wrap { position: relative; max-width: 560px; height: 276px; margin: 0 auto; }


.testi-sc--count-1 .testi-sc__wrap { height: 240px; }


.testi-sc--count-2 .testi-sc__wrap { height: 252px; }


.testi-sc--count-3 .testi-sc__wrap { height: 264px; }


.testi-sc__card { position: absolute; top: 0; right: 0; left: 0; display: flex; flex-direction: column; gap: 16px; padding: clamp(28px, 3vw, 36px); border: 1px solid var(--cms-testi-card-border); border-radius: var(--radius-lg, 12px); background: var(--cms-testi-card-bg); box-shadow: 0 4px 16px rgba(0,0,0,0.06); transition: transform 0.6s cubic-bezier(0.23,1,0.32,1), opacity 0.6s ease; will-change: transform, opacity; }


.testi-sc__card[data-card="0"] { z-index: 4; transform: translateY(0) scale(1); opacity: 1; }


.testi-sc__card[data-card="1"] { z-index: 3; transform: translateY(12px) scale(.97); opacity: .7; }


.testi-sc__card[data-card="2"] { z-index: 2; transform: translateY(24px) scale(.94); opacity: .4; }


.testi-sc__card[data-card="3"] { z-index: 1; transform: translateY(36px) scale(.91); opacity: .4; }


.testi-sc__card.testi-sc__card--dismissed { transform: translateX(-120%) rotate(-8deg); opacity: 0; pointer-events: none; }


.testi-sc__card.testi-sc__card--promoted { transform: translateY(0) scale(1); opacity: 1; }


.testi-sc__quote-mark { position: absolute; top: 20px; right: 24px; opacity: 0.08; }


.testi-sc__quote-mark svg { width: 44px; height: 44px; }


.testi-sc__stars { display: flex; gap: 2px; }


.testi-sc__text { flex: 1; margin: 0; color: var(--cms-testi-text); font-family: var(--font-body); font-size: clamp(15px, 1.4vw, 17px); font-style: italic; line-height: 1.65; }


.testi-sc__author { display: flex; flex-direction: column; align-items: flex-start; gap: 2px; }


.testi-sc__avatar { display: none; }


.testi-sc__name { margin: 0; color: var(--cms-testi-text); font-family: var(--font-body); font-size: 14px; font-weight: 600; }


.testi-sc__role { margin: 2px 0 0; color: var(--cms-testi-muted); font-family: var(--font-body); font-size: 12px; }


@media (max-width: 768px) {
    .testi-sc__wrap { max-width: 100%; }}


/* ---------------------------------------------------------------------------
   Banner CTA Stacked
   --------------------------------------------------------------------------- */
.cms-bcta-stacked {
    position: relative;
    width: 100%;
    overflow-x: clip;
    box-sizing: border-box;
    padding: 80px 20px;
    text-align: center;
    background: var(--color-dark-bg);
}


.cms-bcta-stacked--bg-dark { background: var(--color-dark-bg); }


.cms-bcta-stacked--bg-accent { background: var(--color-accent); }


.cms-bcta-stacked--bg-accent2 { background: var(--color-accent2); }


.cms-bcta-stacked--bg-accent3 { background: var(--color-accent-soft, var(--color-accent)); }


.cms-bcta-stacked--bg-accent4 { background: var(--color-accent2-soft, var(--color-accent2)); }


.cms-bcta-stacked--with-image { padding-bottom: 140px; }


.cms-bcta-stacked__container {
    width: 100%;
    max-width: 680px;
    margin: 0 auto;
    box-sizing: border-box;
}


.cms-bcta-stacked__title {
    margin: 0 0 16px;
    font-family: var(--font-heading, var(--cms-font-heading));
    font-size: clamp(32px, 6vw, 56px);
    font-weight: 700;
    line-height: 1.1;
    color: #fff;
}


.cms-bcta-stacked__subtitle {
    max-width: 600px;
    margin: 0 auto 32px;
    font-family: var(--font-body, var(--cms-font));
    font-size: 1.05rem;
    line-height: 1.6;
    color: rgba(255, 255, 255, 0.7);
}


.cms-bcta-stacked__actions {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    gap: 14px;
    margin-bottom: 0;
}


.cms-bcta-stacked--with-image .cms-bcta-stacked__actions { margin-bottom: 40px; }


.cms-bcta-stacked__image-wrap {
    position: relative;
    z-index: 2;
    width: 100%;
    max-width: 800px;
    margin: 0 auto -60px;
    box-sizing: border-box;
}


.cms-bcta-stacked__image {
    display: block;
    width: 100%;
    height: 400px;
    border-radius: var(--radius-lg, 16px);
    object-fit: cover;
    box-shadow: var(--shadow-lg);
}


@media (max-width: 768px) {
    .cms-bcta-stacked {
        padding: 48px 16px;
    }

    .cms-bcta-stacked--with-image { padding-bottom: 100px; }

    .cms-bcta-stacked__actions {
        flex-direction: column;
        align-items: center;
    }

    .cms-bcta-stacked__image {
        height: 240px;
    }}


/* ---------------------------------------------------------------------------
   Steps Cards Scroll
   --------------------------------------------------------------------------- */
.cms-steps-cs {
    width: 100%;
    padding: 0 24px;
}


.cms-steps-cs__list {
    max-width: 720px;
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    gap: clamp(20px, 3vw, 32px);
}


.cms-steps-cs__card {
    display: flex;
    gap: clamp(16px, 2vw, 24px);
    align-items: flex-start;
    padding: clamp(24px, 3vw, 36px);
    border-radius: var(--radius-lg, 12px);
    border: 1px solid var(--cms-steps-cs-border, var(--color-border));
    background: var(--cms-steps-cs-bg, var(--color-bg));
    box-shadow: 0 2px 8px rgba(0,0,0,0.04);
    opacity: 0;
    transition: opacity .7s ease, transform .7s ease, box-shadow 0.3s ease;
    will-change: transform, opacity;
}


.cms-steps-cs--dark { --cms-steps-cs-bg: rgba(255,255,255,0.05); --cms-steps-cs-border: rgba(255,255,255,0.08); --cms-steps-cs-text: var(--color-dark-text); --cms-steps-cs-muted: var(--color-dark-text-muted); }


.cms-steps-cs__card--from-left { transform: translateX(-60px); }


.cms-steps-cs__card--from-right { transform: translateX(60px); }


.cms-steps-cs__card.is-visible { opacity: 1; transform: translateX(0); }


.cms-steps-cs__card:nth-child(2) { transition-delay: .15s; }


.cms-steps-cs__card:nth-child(3) { transition-delay: .3s; }


.cms-steps-cs__card:nth-child(4) { transition-delay: .45s; }


.cms-steps-cs__card:nth-child(5) { transition-delay: .6s; }


.cms-steps-cs__card:nth-child(6) { transition-delay: .75s; }


.cms-steps-cs__card:hover {
    transform: translateY(-3px) !important;
    box-shadow: 0 8px 24px rgba(0,0,0,0.08);
}


.cms-steps-cs__badge {
    width: 48px;
    height: 48px;
    min-width: 48px;
    border-radius: 50%;
    background: var(--color-accent);
    color: #fff;
    font-family: var(--font-heading, var(--cms-font-heading));
    font-size: 20px;
    font-weight: 700;
    display: flex;
    align-items: center;
    justify-content: center;
    line-height: 1;
}


.cms-steps-cs__body {
    flex: 1;
    min-width: 0;
}


.cms-steps-cs__title {
    margin: 0 0 8px;
    font-family: var(--font-heading, var(--cms-font-heading));
    font-size: clamp(17px, 2vw, 22px);
    font-weight: 600;
    line-height: 1.3;
    color: var(--cms-steps-cs-text, var(--color-text));
}


.cms-steps-cs__desc {
    margin: 0;
    font-family: var(--font-body, var(--cms-font));
    font-size: clamp(14px, 1.3vw, 16px);
    line-height: 1.65;
    color: var(--cms-steps-cs-muted, var(--color-text-muted));
}


.cms-steps-cs__image {
    margin-top: 16px;
    border-radius: var(--radius, 8px);
    overflow: hidden;
}


.cms-steps-cs__image img {
    width: 100%;
    height: 180px;
    object-fit: cover;
    display: block;
}


@media (max-width: 768px) {
    .cms-steps-cs__card {
        flex-direction: column;
    }}


@keyframes cmsHeroFcBounce {
    0%, 20%, 50%, 80%, 100% { transform: translateX(-50%) translateY(0); }
    40% { transform: translateX(-50%) translateY(-8px); }
    60% { transform: translateX(-50%) translateY(-4px); }
}


.cms-hero-fc {
    position: relative;
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    background: var(--cms-post-cocon-hero-bg, var(--color-accent));
}


.cms-hero-fc__bg {
    position: absolute;
    inset: 0;
    background-size: cover;
    background-position: center;
    z-index: 1;
    filter: saturate(0.85) brightness(0.95);
    transition: transform 0.18s ease-out;
}


.cms-hero-fc__overlay {
    position: absolute;
    inset: 0;
    z-index: 2;
    background: linear-gradient(180deg, rgba(20,15,10,0.3) 0%, rgba(20,15,10,0.55) 100%);
}


.cms-hero-fc__content {
    position: relative;
    z-index: 3;
    max-width: 800px;
    width: 100%;
    padding: 40px 24px;
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
}


.cms-hero-fc__title {
    margin: 0 0 20px;
    font-family: var(--font-heading);
    font-size: clamp(40px, 8vw, 80px);
    font-weight: 500;
    line-height: 1.1;
    letter-spacing: -0.01em;
    color: #fff;
}


.cms-hero-fc__subtitle {
    margin: 0 0 40px;
    max-width: 540px;
    font-family: var(--font-body);
    font-size: clamp(15px, 1.8vw, 18px);
    line-height: 1.7;
    font-weight: 400;
    color: rgba(255,255,255,0.75);
}


.cms-hero-fc__cta {
    display: flex;
    justify-content: center;
}


.cms-hero-fc__scroll {
    position: absolute;
    bottom: 36px;
    left: 50%;
    transform: translateX(-50%);
    z-index: 3;
    opacity: 0.5;
    animation: cmsHeroFcBounce 2.5s ease infinite;
}


.cms-hero-fc a:hover {
    background: rgba(255,255,255,0.15) !important;
    border-color: #fff !important;
}


.cms-steps-nl {
    width: 100%;
    padding: 0 24px;
    box-sizing: border-box;
}


.cms-steps-nl__list {
    max-width: 720px;
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    gap: 0;
}


.cms-steps-nl__item {
    display: flex;
    gap: clamp(20px, 3vw, 36px);
    position: relative;
    opacity: 0;
    transform: translateY(30px);
    transition: opacity .6s ease, transform .6s ease;
}


.cms-steps-nl--dark { --cms-steps-nl-text: var(--color-dark-text); --cms-steps-nl-muted: var(--color-dark-text-muted); --cms-steps-nl-line: rgba(255,255,255,0.12); }


.cms-steps-nl__item.is-visible { opacity: 1; transform: translateY(0); }


.cms-steps-nl__item:nth-child(2) { transition-delay: .1s; }


.cms-steps-nl__item:nth-child(3) { transition-delay: .2s; }


.cms-steps-nl__item:nth-child(4) { transition-delay: .3s; }


.cms-steps-nl__item:nth-child(5) { transition-delay: .4s; }


.cms-steps-nl__item:nth-child(6) { transition-delay: .5s; }


.cms-steps-nl__left {
    display: flex;
    flex-direction: column;
    align-items: center;
    position: relative;
    min-width: 48px;
}


.cms-steps-nl__number {
    width: 48px;
    height: 48px;
    min-height: 48px;
    border-radius: 50%;
    background: var(--color-accent);
    color: #fff;
    font-family: var(--font-heading);
    font-size: 18px;
    font-weight: 700;
    display: flex;
    align-items: center;
    justify-content: center;
    line-height: 1;
    position: relative;
    z-index: 1;
}


.cms-steps-nl__number svg {
    width: 18px;
    height: 18px;
}


.cms-steps-nl__line {
    width: 2px;
    flex: 1;
    background: var(--cms-steps-nl-line, var(--color-border));
    margin: 8px 0;
}


.cms-steps-nl__item:last-child .cms-steps-nl__line {
    display: none;
}


.cms-steps-nl__content {
    padding: 8px 0 clamp(28px, 4vw, 48px);
    flex: 1;
}


.cms-steps-nl__item:last-child .cms-steps-nl__content {
    padding-bottom: 0;
}


.cms-steps-nl__title {
    margin: 0 0 8px;
    font-family: var(--font-heading);
    font-size: clamp(17px, 2vw, 22px);
    font-weight: 600;
    line-height: 1.3;
    color: var(--cms-steps-nl-text, var(--color-text));
}


.cms-steps-nl__desc {
    margin: 0;
    font-family: var(--font-body);
    font-size: clamp(14px, 1.3vw, 16px);
    line-height: 1.65;
    color: var(--cms-steps-nl-muted, var(--color-text-muted));
}


.cms-hero-min {
    width: 100%;
    position: relative;
    overflow: hidden;
    display: flex;
    align-items: center;
    background: var(--cms-hero-min-bg, var(--color-bg));
}


.cms-hero-min__bg {
    position: absolute;
    inset: -6% 0;
    z-index: 1;
}


.cms-hero-min__overlay {
    position: absolute;
    inset: 0;
    z-index: 2;
    background: linear-gradient(135deg, rgba(0,0,0,0.76) 0%, rgba(0,0,0,0.45) 45%, rgba(0,0,0,0.25) 100%);
}


.cms-hero-min__content {
    max-width: var(--container);
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    position: relative;
    z-index: 3;
    width: 100%;
    text-align: var(--cms-hero-min-text-align, center);
    align-items: var(--cms-hero-min-align, center);
    padding: var(--cms-hero-min-padding, 0);
}


.cms-hero-min__title {
    margin: 0;
    max-width: 800px;
    font-family: var(--font-heading);
    font-size: clamp(32px, 6vw, 64px);
    font-weight: 600;
    line-height: 1.15;
    color: var(--cms-hero-min-text, var(--color-text));
}


.cms-hero-min__subtitle {
    margin: 20px 0 0;
    max-width: 680px;
    font-family: var(--font-body);
    font-size: clamp(16px, 1.8vw, 19px);
    line-height: 1.7;
    color: var(--cms-hero-min-muted, var(--color-text-muted));
}


.cms-hero-min__cta {
    margin-top: 36px;
}


.cms-hero-split {
    width: 100%;
    overflow-x: clip;
    overflow-y: hidden;
    position: relative;
    background: var(--cms-hero-split-bg, var(--color-bg));
    display: flex;
    align-items: center;
}


.cms-hero-split__shell {
    width: 100%;
    max-width: var(--container);
    margin: 0 auto;
    padding: clamp(60px, 10vw, 120px) 24px;
    box-sizing: border-box;
    display: flex;
    align-items: center;
    gap: clamp(24px, 4vw, 48px);
}


.cms-hero-split__text {
    flex: 1 1 55%;
    min-width: 0;
}


.cms-hero-split__title {
    margin: 0 0 20px;
    font-family: var(--font-heading);
    font-size: clamp(28px, 5vw, 56px);
    font-weight: 600;
    line-height: 1.15;
    color: var(--cms-hero-split-text, var(--color-text));
}


.cms-hero-split__subtitle {
    margin: 0 0 36px;
    max-width: 560px;
    font-family: var(--font-body);
    font-size: clamp(16px, 1.8vw, 19px);
    line-height: 1.7;
    color: var(--cms-hero-split-muted, var(--color-text-muted));
}


.cms-hero-split__actions {
    display: flex;
    gap: 16px;
    flex-wrap: wrap;
}


.cms-hero-split__media {
    flex: 1 1 42%;
    min-width: 0;
    overflow: hidden;
}


.cms-hero-split__image {
    width: 100%;
    display: block;
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-lg);
    object-fit: cover;
    aspect-ratio: 4/3;
}


.cms-steps-pb {
    width: 100%;
    padding: 0 24px;
    box-sizing: border-box;
}


.cms-steps-pb--dark { --cms-steps-pb-text: var(--color-dark-text); --cms-steps-pb-muted: var(--color-dark-text-muted); --cms-steps-pb-track: rgba(255,255,255,0.1); --cms-steps-pb-dot: rgba(255,255,255,0.2); --cms-steps-pb-dot-border: var(--color-dark-bg, #1a1a2e); }


.cms-steps-pb__wrap {
    max-width: min(1040px, var(--container, 1200px));
    margin: 0 auto;
}


.cms-steps-pb__bar {
    position: relative;
    height: 4px;
    background: var(--cms-steps-pb-track, var(--color-border));
    border-radius: 2px;
    margin-bottom: clamp(36px, 5vw, 56px);
}


.cms-steps-pb__fill {
    position: absolute;
    top: 0;
    left: 0;
    height: 100%;
    width: 0;
    background: var(--color-accent);
    border-radius: 2px;
    transition: width 0.5s ease;
}


.cms-steps-pb__dots {
    position: absolute;
    top: 50%;
    left: 0;
    right: 0;
    transform: translateY(-50%);
    display: flex;
    justify-content: space-between;
}


.cms-steps-pb__dot {
    width: 16px;
    height: 16px;
    border-radius: 50%;
    background: var(--cms-steps-pb-dot, #d1d5db);
    border: 3px solid var(--cms-steps-pb-dot-border, var(--color-bg, #fff));
    transition: background 0.4s ease, transform 0.4s ease, box-shadow 0.4s ease;
    position: relative;
    z-index: 1;
}


.cms-steps-pb__dot--active {
    background: var(--color-accent);
    transform: scale(1.3);
    box-shadow: 0 0 0 4px color-mix(in srgb, var(--color-accent) 25%, transparent);
}


.cms-steps-pb__steps {
    display: flex;
    flex-direction: column;
    gap: clamp(32px, 4vw, 48px);
}


.cms-steps-pb__step {
    display: flex;
    gap: clamp(16px, 2vw, 24px);
    align-items: flex-start;
    opacity: 0;
    transform: translateY(30px);
    transition: opacity .6s ease, transform .6s ease;
}


.cms-steps-pb__step--active { opacity: 1; transform: translateY(0); }


.cms-steps-pb__step:nth-child(2) { transition-delay: .1s; }


.cms-steps-pb__step:nth-child(3) { transition-delay: .2s; }


.cms-steps-pb__step:nth-child(4) { transition-delay: .3s; }


.cms-steps-pb__step:nth-child(5) { transition-delay: .4s; }


.cms-steps-pb__step:nth-child(6) { transition-delay: .5s; }


.steps-ng {
    width: 100%;
    padding: 0 24px;
}


.steps-ng__grid {
    max-width: var(--container, 1200px);
    margin: 0 auto;
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: clamp(16px, 2vw, 24px);
}


.steps-ng__card {
    background: var(--color-bg);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg, 12px);
    padding: clamp(24px, 3vw, 32px);
    display: flex;
    flex-direction: column;
    gap: 16px;
    overflow: hidden;
    opacity: 0;
    transform: translateY(30px);
    transition: opacity .6s ease, transform .6s ease, box-shadow .3s ease;
}


.steps-ng--dark .steps-ng__card {
    background: rgba(255,255,255,0.05);
    border-color: rgba(255,255,255,0.08);
}


.steps-ng__card.is-visible { opacity: 1; transform: translateY(0); }


.steps-ng__card:nth-child(2) { transition-delay: .1s; }


.steps-ng__card:nth-child(3) { transition-delay: .2s; }


.steps-ng__card:nth-child(4) { transition-delay: .3s; }


.steps-ng__card:nth-child(5) { transition-delay: .4s; }


.steps-ng__card:hover {
    transform: translateY(-3px);
    box-shadow: 0 8px 24px rgba(0,0,0,0.06);
}


.steps-ng__top {
    display: flex;
    align-items: center;
    gap: 14px;
}


.steps-ng__number {
    width: 48px;
    height: 48px;
    min-width: 48px;
    border-radius: 50%;
    background: var(--color-accent);
    color: #fff;
    font-family: var(--font-heading);
    font-size: 20px;
    font-weight: 700;
    display: flex;
    align-items: center;
    justify-content: center;
    line-height: 1;
}


.steps-ng__icon { font-size: 28px; line-height: 1; }


.steps-ng__title {
    font-family: var(--font-heading);
    font-size: clamp(16px, 1.8vw, 20px);
    font-weight: 600;
    color: var(--color-text);
    margin: 0;
    line-height: 1.3;
}


.steps-ng--dark .steps-ng__title { color: var(--color-dark-text); }


.steps-ng__desc {
    font-family: var(--font-body);
    font-size: clamp(13px, 1.2vw, 15px);
    color: var(--color-text-muted);
    line-height: 1.6;
    margin: 0;
}


.steps-ng--dark .steps-ng__desc { color: var(--color-dark-text-muted); }


.steps-ng__image {
    border-radius: var(--radius, 8px);
    overflow: hidden;
    margin-top: 4px;
}


.steps-ng__image img {
    width: 100%;
    height: 180px;
    object-fit: cover;
    display: block;
}


.steps-tl {
    width: 100%;
    padding: 0 24px;
}


.steps-tl__wrap {
    max-width: var(--container, 1200px);
    margin: 0 auto;
    position: relative;
}


.steps-tl__grid {
    display: grid;
    grid-auto-flow: column;
    grid-auto-columns: minmax(0, 1fr);
    gap: 0;
    position: relative;
}


.steps-tl__grid::before {
    content: "";
    position: absolute;
    top: 19px;
    left: 50px;
    right: 50px;
    height: 2px;
    background: var(--color-border);
    z-index: 0;
}


.steps-tl--dark .steps-tl__grid::before { background: rgba(255,255,255,0.15); }


.steps-tl__item {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    position: relative;
    z-index: 1;
    opacity: 0;
    transform: translateY(20px);
    transition: opacity .6s ease, transform .6s ease;
}


.steps-tl__item.is-visible { opacity: 1; transform: translateY(0); }


.steps-tl__item:nth-child(2) { transition-delay: .12s; }


.steps-tl__item:nth-child(3) { transition-delay: .24s; }


.steps-tl__item:nth-child(4) { transition-delay: .36s; }


.steps-tl__item:nth-child(5) { transition-delay: .48s; }


.steps-tl__dot {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background: var(--color-accent);
    color: #fff;
    font-family: var(--font-heading);
    font-size: 16px;
    font-weight: 700;
    display: flex;
    align-items: center;
    justify-content: center;
    line-height: 1;
    border: 4px solid var(--color-bg);
    box-shadow: 0 0 0 2px var(--color-accent);
    margin-bottom: 20px;
    transition: transform .3s ease;
}


.steps-tl--dark .steps-tl__dot { border-color: rgba(255,255,255,0.1); }


.steps-tl__dot--pulse { animation: steps-tl-pulse 1.5s ease-in-out 2; }


.steps-tl__item:hover .steps-tl__dot { transform: scale(1.15); }


.steps-tl__icon { font-size: 18px; margin-bottom: 8px; }


.steps-tl__title {
    font-family: var(--font-heading);
    font-size: clamp(14px, 1.5vw, 18px);
    font-weight: 600;
    color: var(--color-text);
    margin: 0 0 6px;
    line-height: 1.3;
    padding: 0 8px;
}


.steps-tl--dark .steps-tl__title { color: var(--color-dark-text); }


.steps-tl__desc {
    font-family: var(--font-body);
    font-size: clamp(12px, 1.1vw, 14px);
    color: var(--color-text-muted);
    line-height: 1.55;
    margin: 0;
    padding: 0 8px;
    max-width: 220px;
}


.steps-tl--dark .steps-tl__desc { color: var(--color-dark-text-muted); }


@keyframes steps-tl-pulse {
    0% { box-shadow: 0 0 0 2px var(--color-accent); }
    50% { box-shadow: 0 0 0 6px color-mix(in srgb, var(--color-accent) 30%, transparent); }
    100% { box-shadow: 0 0 0 2px var(--color-accent); }
}


@media (max-width: 768px) {
    .steps-ng__grid { grid-template-columns: 1fr; }
    .steps-tl__grid {
        display: flex;
        flex-direction: column;
        gap: 0;
        padding-left: 32px;
    }
    .steps-tl__grid::before {
        top: 20px;
        bottom: 20px;
        left: 19px;
        right: auto;
        width: 2px;
        height: auto;
    }
    .steps-tl__item {
        flex-direction: row;
        align-items: flex-start;
        text-align: left;
        gap: 16px;
        padding-bottom: clamp(24px, 3vw, 36px);
    }
    .steps-tl__item:last-child { padding-bottom: 0; }
    .steps-tl__dot {
        margin-bottom: 0;
        margin-left: -32px;
        min-width: 40px;
    }
    .steps-tl__content {
        flex: 1;
        padding-top: 6px;
    }
    .steps-tl__title,
    .steps-tl__desc {
        padding: 0;
        max-width: none;
    }}


.cms-steps-pb__number {
    width: 40px;
    height: 40px;
    min-width: 40px;
    border-radius: 50%;
    background: var(--color-accent);
    color: #fff;
    font-family: var(--font-heading);
    font-size: 16px;
    font-weight: 700;
    display: flex;
    align-items: center;
    justify-content: center;
    line-height: 1;
    opacity: 0.4;
    transition: opacity 0.4s ease;
}


.cms-steps-pb__number svg {
    width: 18px;
    height: 18px;
    display: block;
}


.cms-steps-pb__step--active .cms-steps-pb__number {
    opacity: 1;
}


.cms-steps-pb__content {
    flex: 1;
    min-width: 0;
}


.cms-steps-pb__title {
    margin: 0 0 8px;
    font-family: var(--font-heading);
    font-size: clamp(17px, 2vw, 22px);
    font-weight: 600;
    line-height: 1.3;
    color: var(--cms-steps-pb-text, var(--color-text));
}


.cms-steps-pb__desc {
    margin: 0;
    font-family: var(--font-body);
    font-size: clamp(14px, 1.3vw, 16px);
    line-height: 1.65;
    color: var(--cms-steps-pb-muted, var(--color-text-muted));
}


.cms-hero-lt {
    width: 100%;
    overflow: hidden;
    background: var(--cms-hero-lt-bg, var(--color-bg));
}


.cms-hero-lt__shell {
    max-width: var(--container);
    margin: 0 auto;
    padding: clamp(60px, 10vw, 120px) 24px;
    display: flex;
    align-items: center;
    gap: clamp(24px, 4vw, 48px);
    flex-wrap: wrap;
    width: 100%;
}


.cms-hero-lt__text {
    flex: 1 1 55%;
    min-width: 300px;
}


.cms-hero-lt__title {
    margin: 0 0 clamp(20px, 3vw, 36px);
    font-family: var(--font-heading);
    font-size: clamp(48px, 10vw, 120px);
    font-weight: 700;
    line-height: 0.95;
    letter-spacing: -0.02em;
    color: var(--cms-hero-lt-text, var(--color-text));
}


.cms-hero-lt__subtitle {
    margin: 0 0 32px;
    max-width: 460px;
    font-family: var(--font-body);
    font-size: clamp(15px, 1.5vw, 18px);
    line-height: 1.7;
    color: var(--cms-hero-lt-muted, var(--color-text-muted));
}


.cms-hero-lt__actions {
    display: flex;
}


.cms-hero-lt__media {
    flex: 1 1 40%;
    min-width: 260px;
    position: relative;
}


.cms-hero-lt__image {
    width: 100%;
    height: auto;
    display: block;
    border-radius: var(--radius-lg);
    object-fit: cover;
    max-height: 560px;
    margin-top: -20px;
    margin-right: -40px;
}


.cms-footer-cta {
    --cms-ftr-cta-banner-shadow: 0 8px 32px rgba(0,0,0,0.15);
    --cms-ftr-cta-bg: var(--color-dark-bg);
    --cms-ftr-cta-text: var(--color-dark-text, #fff);
    --cms-ftr-cta-muted: var(--color-dark-text-muted, rgba(255,255,255,0.7));
    --cms-ftr-cta-border: rgba(255,255,255,0.08);
}


.cms-footer-cta--light {
    --cms-ftr-cta-bg: var(--color-bg);
    --cms-ftr-cta-text: var(--color-text);
    --cms-ftr-cta-muted: var(--color-text-muted);
    --cms-ftr-cta-border: var(--color-border);
}


.cms-footer-cta__banner-wrap {
    position: relative;
    z-index: 2;
    max-width: var(--container);
    margin: 0 auto;
    padding: 0 24px;
}


.cms-footer-cta__banner {
    background: var(--color-accent);
    border-radius: var(--radius-lg);
    padding: 48px 40px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 32px;
    flex-wrap: wrap;
    margin-bottom: -48px;
    position: relative;
    z-index: 2;
    box-shadow: var(--cms-ftr-cta-banner-shadow);
}


.cms-footer-cta__banner-copy {
    flex: 1;
    min-width: 280px;
}


.cms-footer-cta__banner-title {
    margin: 0 0 8px;
    font-family: var(--font-heading);
    font-size: 26px;
    font-weight: 700;
    color: #fff;
}


.cms-footer-cta__banner-text {
    margin: 0;
    font-size: 15px;
    line-height: 1.6;
    color: rgba(255,255,255,0.85);
}


.cms-footer-cta__banner-link {
    display: inline-flex;
    align-items: center;
    padding: 14px 32px;
    background: #fff;
    color: var(--color-accent);
    font-family: var(--font-body);
    font-size: 15px;
    font-weight: 600;
    border-radius: var(--radius-full);
    text-decoration: none;
    white-space: nowrap;
    transition: opacity 0.2s, transform 0.2s;
    box-shadow: 0 2px 8px rgba(0,0,0,0.1);
}


.cms-footer-cta__banner-link:hover {
    opacity: 0.9;
    transform: translateY(-1px);
}


.cms-footer-cta__footer {
    background: var(--cms-ftr-cta-bg, var(--color-dark-bg));
    color: var(--cms-ftr-cta-text, #fff);
    padding: 96px 0 0;
    font-family: var(--font-body);
}


.cms-footer-cta__grid {
    max-width: var(--container);
    margin: 0 auto;
    padding: 0 24px 40px;
    display: grid;
    grid-template-columns: 1.3fr 1fr 1fr;
    gap: 40px;
}


.cms-footer-cta__logo {
    height: 43px;
    width: auto;
    margin-bottom: 14px;
}


.cms-footer-cta__brand {
    margin-bottom: 14px;
    font-family: var(--font-heading);
    font-size: 20px;
    font-weight: 700;
}


.cms-footer-cta__description {
    margin: 0 0 20px;
    font-size: 14px;
    line-height: 1.7;
    color: var(--cms-ftr-cta-muted, rgba(255,255,255,0.7));
}


.cms-footer-cta__social {
    display: flex;
    gap: 10px;
}


.cms-footer-cta__social-link {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    border-radius: var(--radius-full);
    border: 1px solid var(--cms-ftr-cta-border, rgba(255,255,255,0.15));
    color: var(--cms-ftr-cta-muted, rgba(255,255,255,0.7));
    text-decoration: none;
    transition: color 0.2s, border-color 0.2s;
}


.cms-footer-cta__social-link:hover,
.cms-footer-cta__link:hover,
.cms-footer-cta__legal-link:hover {
    color: var(--color-accent);
    border-color: var(--color-accent);
}


.cms-footer-cta__heading {
    margin: 0 0 18px;
    font-family: var(--font-heading);
    font-size: 14px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: var(--cms-ftr-cta-text, #fff);
}


.cms-footer-cta__list {
    list-style: none;
    margin: 0;
    padding: 0;
}


.cms-footer-cta__list-item {
    margin-bottom: 10px;
}


.cms-footer-cta__link,
.cms-footer-cta__address,
.cms-footer-cta__copyright,
.cms-footer-cta__legal-link {
    font-size: 14px;
    line-height: 1.6;
    color: var(--cms-ftr-cta-muted, rgba(255,255,255,0.7));
    text-decoration: none;
    transition: color 0.2s, border-color 0.2s;
}


.cms-footer-cta__separator {
    max-width: var(--container);
    margin: 0 auto;
    padding: 0 24px;
    border-top: 1px solid var(--cms-ftr-cta-border, rgba(255,255,255,0.15));
}


.cms-footer-cta__bottom {
    max-width: var(--container);
    margin: 0 auto;
    padding: 24px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: 16px;
}


.cms-footer-cta__copyright,
.cms-footer-cta__legal-link {
    font-size: 13px;
}


.cms-footer-cta__legal {
    display: flex;
    gap: 24px;
    flex-wrap: wrap;
}


.cms-footer-mega {
    --cms-ftr-mega-bg: var(--color-dark-bg);
    --cms-ftr-mega-text: var(--color-dark-text, #fff);
    --cms-ftr-mega-muted: var(--color-dark-text-muted, rgba(255,255,255,0.7));
    --cms-ftr-mega-border: rgba(255,255,255,0.08);
    background: var(--cms-ftr-mega-bg, var(--color-dark-bg));
    color: var(--cms-ftr-mega-text, #fff);
    font-family: var(--font-body);
}


.cms-footer-mega--light {
    --cms-ftr-mega-bg: var(--color-bg);
    --cms-ftr-mega-text: var(--color-text);
    --cms-ftr-mega-muted: var(--color-text-muted);
    --cms-ftr-mega-border: var(--color-border);
}


.cms-footer-mega__main {
    padding: 56px 0 40px;
}


.cms-footer-mega__grid {
    max-width: var(--container);
    margin: 0 auto;
    padding: 0 24px;
    display: grid;
    gap: 40px;
}


.cms-footer-mega__grid--cols-0 { grid-template-columns: 1.5fr 1fr 1fr; }


.cms-footer-mega__grid--cols-1 { grid-template-columns: 1.5fr repeat(1, 1fr) 1fr 1fr; }


.cms-footer-mega__grid--cols-2 { grid-template-columns: 1.5fr repeat(2, 1fr) 1fr 1fr; }


.cms-footer-mega__grid--cols-3 { grid-template-columns: 1.5fr repeat(3, 1fr) 1fr 1fr; }


.cms-footer-mega__grid--cols-4 { grid-template-columns: 1.5fr repeat(4, 1fr) 1fr 1fr; }


.cms-footer-mega__grid--cols-5 { grid-template-columns: 1.5fr repeat(5, 1fr) 1fr 1fr; }


.cms-footer-mega__logo {
    height: 43px;
    width: auto;
    margin-bottom: 16px;
}


.cms-footer-mega__brand {
    margin-bottom: 16px;
    font-family: var(--font-heading);
    font-size: 22px;
    font-weight: 700;
}


.cms-footer-mega__description {
    margin: 0;
    font-size: 14px;
    line-height: 1.7;
    color: var(--cms-ftr-mega-muted, rgba(255,255,255,0.7));
}


.cms-footer-mega__heading {
    margin: 0 0 18px;
    font-family: var(--font-heading);
    font-size: 13px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: var(--cms-ftr-mega-text, #fff);
}


.cms-footer-mega__list {
    list-style: none;
    margin: 0;
    padding: 0;
}


.cms-footer-mega__list-item {
    margin-bottom: 10px;
}


.cms-footer-mega__link,
.cms-footer-mega__address,
.cms-footer-mega__copyright,
.cms-footer-mega__legal-link {
    font-size: 14px;
    color: var(--cms-ftr-mega-muted, rgba(255,255,255,0.7));
    text-decoration: none;
    line-height: 1.6;
    transition: color 0.2s, border-color 0.2s;
}


.cms-footer-mega__link:hover,
.cms-footer-mega__legal-link:hover,
.cms-footer-mega__social-link:hover {
    color: var(--color-accent);
    border-color: var(--color-accent);
}


.cms-footer-mega__social {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}


.cms-footer-mega__social-link {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    border-radius: var(--radius-full);
    border: 1px solid var(--cms-ftr-mega-border, rgba(255,255,255,0.15));
    color: var(--cms-ftr-mega-muted, rgba(255,255,255,0.7));
    text-decoration: none;
    transition: color 0.2s, border-color 0.2s;
}


.cms-footer-mega__separator {
    max-width: var(--container);
    margin: 0 auto;
    padding: 0 24px;
    border-top: 1px solid var(--cms-ftr-mega-border, rgba(255,255,255,0.15));
}


.cms-footer-mega__bottom {
    max-width: var(--container);
    margin: 0 auto;
    padding: 20px 24px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: 16px;
}


.cms-footer-mega__bottom-right {
    display: flex;
    align-items: center;
    gap: 24px;
    flex-wrap: wrap;
}


.cms-footer-mega__copyright,
.cms-footer-mega__legal-link,
.cms-footer-mega__lang {
    font-size: 13px;
}


.cms-footer-mega__lang {
    color: var(--cms-ftr-mega-muted, rgba(255,255,255,0.7));
    padding: 4px 12px;
    border: 1px solid var(--cms-ftr-mega-border, rgba(255,255,255,0.15));
    border-radius: var(--radius);
}


@media (max-width: 480px) {
    .cms-steps-nl__left {
        min-width: 44px;
    }

    .cms-steps-nl__number {
        width: 40px;
        height: 40px;
        min-height: 40px;
        font-size: 16px;
    }}


@media (max-width: 768px) {
    .cms-hero-lt__shell {
        flex-direction: column;
    }

    .cms-hero-lt__image {
        margin-top: 0;
        margin-right: 0;
    }

    .cms-hero-split__shell {
        flex-direction: column;
        text-align: center;
        padding: clamp(76px, 14vw, 112px) 20px clamp(40px, 9vw, 64px);
        gap: 24px;
    }

    .cms-hero-split__text,
    .cms-hero-split__media {
        flex: 1 1 auto;
        width: 100%;
    }

    .cms-hero-split__media img {
        aspect-ratio: 16/9;
        max-height: 300px;
    }

    .cms-hero-split__text[data-reveal] {
        order: -1;
    }

    .cms-steps-pb__bar {
        display: none;
    }

    .cms-footer-cta__banner {
        flex-direction: column;
        text-align: center;
        padding: 32px 24px;
    }

    .cms-footer-cta__grid {
        grid-template-columns: 1fr;
        gap: 28px;
    }

    .cms-footer-cta__bottom {
        flex-direction: column;
        text-align: center;
    }}


.cms-header-topbar {
    display: block;
    background: var(--cms-header-topbar-bg, var(--color-dark-bg));
    color: var(--cms-header-topbar-text, #fff);
    height: 36px;
    font-family: var(--font-body);
    font-size: 12px;
    line-height: 36px;
}


.cms-header-topbar--dark {
    --cms-header-topbar-bg: var(--color-dark-bg);
    --cms-header-topbar-text: #fff;
}


.cms-header-topbar--accent {
    --cms-header-topbar-bg: var(--color-accent);
    --cms-header-topbar-text: #fff;
}


.cms-header-topbar__inner {
    max-width: var(--container);
    margin: 0 auto;
    padding: 0 24px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    height: 100%;
}


.cms-header-topbar__phone,
.cms-header-topbar__social {
    display: flex;
    align-items: center;
}


.cms-header-topbar__phone { gap: 6px; }


.cms-header-topbar__social { gap: 12px; }


.cms-header-topbar__link,
.cms-header-topbar__social-link { color: inherit; text-decoration: none; transition: opacity 0.2s; }


.cms-header-topbar__link { opacity: 0.85; }


.cms-header-topbar__social-link { opacity: 0.7; display: flex; align-items: center; }


.cms-header-topbar__link:hover,
.cms-header-topbar__social-link:hover { opacity: 1; }


.cms-header-std {
    z-index: 50;
    color: var(--cms-hstd-text, var(--color-text));
    background: var(--cms-hstd-bg, var(--color-bg));
    border-bottom: var(--cms-hstd-border, 1px solid var(--color-border));
    transition: background .3s, box-shadow .3s, border-color .3s;
}


.cms-header-std--light {
    --cms-hstd-bg: var(--color-bg);
    --cms-hstd-text: var(--color-text);
    --cms-hstd-link: var(--color-text-muted);
    --cms-hstd-drop-bg: var(--color-bg);
    --cms-hstd-drop-text: var(--color-text);
}


.cms-header-std--dark {
    --cms-hstd-bg: var(--color-dark-bg);
    --cms-hstd-text: #fff;
    --cms-hstd-link: rgba(255,255,255,.7);
    --cms-hstd-drop-bg: var(--color-dark-bg);
    --cms-hstd-drop-text: rgba(255,255,255,.85);
    --cms-hstd-border: 1px solid rgba(255,255,255,.08);
}


.cms-header-std--transparent {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    --cms-hstd-bg: transparent;
    --cms-hstd-text: #fff;
    --cms-hstd-link: rgba(255,255,255,.85);
    --cms-hstd-drop-bg: rgba(0,0,0,.85);
    --cms-hstd-drop-text: rgba(255,255,255,.9);
    --cms-hstd-border: none;
}


.cms-header-std--transparent.cms-header-std--with-topbar { top: 36px; }


.cms-header-std--contained {
    width: calc(100% - 32px);
    max-width: var(--container);
    border: none;
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-lg);
}


.cms-header-std--contained.cms-header-std--fixed {
    position: absolute;
    top: 12px;
    left: 50%;
    transform: translateX(-50%);
}


.cms-header-std--contained.cms-header-std--fixed.cms-header-std--with-topbar { top: 48px; }


.cms-header-std--bottom {
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
}


.cms-header-std--bottom.cms-header-std--contained {
    bottom: 12px;
    left: 50%;
    right: auto;
    transform: translateX(-50%);
}


.cms-header-std--shell {
    position: relative;
    border: inherit;
    border-radius: inherit;
    background: inherit;
    box-shadow: inherit;
}


.cms-header-nav-typo {
    font-family: var(--font-body);
    font-size: 15px;
    font-weight: 500;
    letter-spacing: 0;
    text-transform: none;
}


.cms-header-nav-typo--heading { font-family: var(--font-heading); }


.cms-header-nav-typo--w-400 { font-weight: 400; }


.cms-header-nav-typo--w-500 { font-weight: 500; }


.cms-header-nav-typo--w-600 { font-weight: 600; }


.cms-header-nav-typo--w-700 { font-weight: 700; }


.cms-header-nav-typo--uppercase { text-transform: uppercase; letter-spacing: .04em; }


.cms-header-std__bar {
    max-width: var(--cms-header-std-bar-width, var(--container));
    margin: 0 auto;
    min-height: 72px;
    padding: 0 24px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
}


.cms-header-std__bar--full { --cms-header-std-bar-width: 100%; }


.cms-header-std__logo {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    min-width: 0;
    color: inherit;
    text-decoration: none;
}


.cms-header-std__logo-img {
    width: auto;
    height: var(--cms-header-std-logo-height, 40px);
    max-height: 72px;
    display: block;
}


.cms-header-std__logo-mark {
    width: 42px;
    height: 42px;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: var(--color-accent);
    color: #fff;
    font-family: var(--font-heading);
    font-size: 18px;
    font-weight: 700;
}


.cms-header-std__logo-text {
    font-family: var(--font-heading);
    font-size: 20px;
    font-weight: 700;
    line-height: 1.1;
}


.cms-header-std__nav {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 18px;
    flex: 1 1 auto;
}


.cms-header-std__item {
    position: relative;
    display: flex;
    align-items: center;
}


.cms-header-std__item--has-children::after {
    content: "";
    position: absolute;
    left: -10px;
    right: -10px;
    top: 100%;
    height: 16px;
}


.cms-header-std__link {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: var(--cms-hstd-link, var(--color-text));
    text-decoration: none;
    transition: color 0.2s ease;
    white-space: nowrap;
}


.cms-header-std__link:hover,
.cms-header-std__link.is-active { color: var(--color-accent) !important; }


.cms-header-std__link--button { background: none; border: none; padding: 0; cursor: pointer; }


.cms-header-std__dropdown {
    position: absolute;
    top: calc(100% + 4px);
    left: -10px;
    min-width: 220px;
    padding: 12px;
    border-radius: var(--radius-lg);
    background: var(--cms-hstd-drop-bg, var(--color-bg));
    color: var(--cms-hstd-drop-text, var(--color-text));
    border: 1px solid var(--color-border);
    box-shadow: var(--shadow-lg);
    display: flex;
    flex-direction: column;
    gap: 4px;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity 0.16s ease, visibility 0.16s ease;
    z-index: 60;
}


.cms-header-std__item--has-children {
    position: relative;
}


.cms-header-std__item--has-children:hover > .cms-header-std__dropdown,
.cms-header-std__item--has-children:focus-within > .cms-header-std__dropdown {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
}


.cms-header-std__dropdown--align-center {
    left: 50%;
    right: auto;
    transform: translateX(-50%);
}


.cms-header-std__dropdown-link {
    display: block;
    padding: 10px 12px;
    border-radius: var(--radius);
    color: inherit;
    text-decoration: none;
    font-family: var(--font-body);
    font-size: 14px;
    transition: background 0.2s ease, color 0.2s ease;
}


.cms-header-std__dropdown-link:hover {
    background: color-mix(in srgb, var(--color-accent) 10%, transparent);
    color: var(--color-accent);
}


.cms-header-std__cta {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 12px 22px;
    border-radius: var(--radius-full);
    background: var(--color-accent);
    color: #fff;
    text-decoration: none;
    font-family: var(--font-body);
    font-size: 15px;
    font-weight: 600;
    transition: transform 0.2s ease, opacity 0.2s ease;
}


.cms-header-std__cta:hover { opacity: 0.92; transform: translateY(-1px); }


.cms-header-std__burger {
    display: none;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    flex: 0 0 44px;
    border: none;
    background: none;
    color: inherit;
    cursor: pointer;
}


@media (max-width: 1024px) {
    .cms-header-std__dropdown {
        display: none !important;
    }}


/* ---------------------------------------------------------------------------
   Features Grid — Cards Image Top
   --------------------------------------------------------------------------- */
.cms-fg-imgtop__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
    max-width: var(--container, 1200px);
    margin: 0 auto;
    padding: 0 20px;
    box-sizing: border-box;
}


.cms-fg-imgtop__card {
    background: var(--cms-fg-imgtop-card-bg, var(--color-bg));
    border: 1px solid var(--cms-fg-imgtop-card-border, rgba(0,0,0,0.06));
    border-radius: var(--radius-lg, 12px);
    overflow: hidden;
    box-shadow: 0 1px 3px rgba(0,0,0,0.06);
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}


.cms-fg-imgtop__card:hover {
    transform: translateY(-4px);
    box-shadow: 0 8px 24px rgba(0,0,0,0.1);
}


.cms-fg-imgtop__image,
.cms-fg-imgtop__placeholder {
    width: 100%;
    aspect-ratio: 4 / 3;
    display: block;
}


.cms-fg-imgtop__image {
    object-fit: cover;
}


.cms-fg-imgtop__placeholder {
    background: var(--cms-fg-imgtop-placeholder-bg, var(--color-bg-alt, #f5f5f5));
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 32px;
}


.cms-fg-imgtop__body {
    padding: clamp(20px, 2.5vw, 28px);
}


.cms-fg-imgtop__link {
    text-decoration: none;
    color: inherit;
}


.cms-fg-imgtop__title {
    font-family: var(--font-heading);
    font-size: 18px;
    font-weight: 600;
    color: var(--cms-fg-imgtop-text, var(--color-text));
    margin: 0 0 8px;
    line-height: 1.3;
}


.cms-fg-imgtop__desc {
    font-family: var(--font-body);
    font-size: 15px;
    line-height: 1.6;
    color: var(--cms-fg-imgtop-muted, var(--color-text-muted));
    margin: 0;
}


/* ---------------------------------------------------------------------------
   Text Image — With List
   --------------------------------------------------------------------------- */
.cms-ti-list__wrap {
    display: flex;
    gap: clamp(32px, 5vw, 64px);
    align-items: center;
    max-width: var(--container, 1200px);
    margin: 0 auto;
    padding: 0 20px;
    box-sizing: border-box;
}


.cms-ti-list--image-left .cms-ti-list__wrap {
    flex-direction: row-reverse;
}


.cms-ti-list--dark {
    --cms-ti-list-text: var(--color-dark-text);
    --cms-ti-list-muted: var(--color-dark-text-muted);
    --cms-ti-list-icon-bg: rgba(255,255,255,0.1);
}


.cms-ti-list__text,
.cms-ti-list__image-col {
    flex: 1 1 50%;
    min-width: 0;
}


.cms-ti-list__title {
    font-family: var(--font-heading);
    font-size: clamp(24px, 3vw, 36px);
    font-weight: 600;
    line-height: 1.2;
    color: var(--cms-ti-list-text, var(--color-text));
    margin: 0 0 24px;
}


.cms-ti-list__intro {
    font-family: var(--font-body);
    font-size: 16px;
    line-height: 1.7;
    color: var(--cms-ti-list-muted, var(--color-text-muted));
    margin: 0 0 24px;
}


.cms-ti-list__intro p {
    margin: 0 0 16px;
}


.cms-ti-list__intro p:last-child {
    margin-bottom: 0;
}


.cms-ti-list__item {
    display: flex;
    gap: 12px;
    align-items: flex-start;
    margin-bottom: 20px;
}


.cms-ti-list__item:last-child {
    margin-bottom: 0;
}


.cms-ti-list__icon {
    flex-shrink: 0;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: var(--cms-ti-list-icon-bg, color-mix(in srgb, var(--color-accent) 12%, transparent));
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 14px;
    line-height: 1;
    margin-top: 2px;
}


.cms-ti-list__item-title {
    font-family: var(--font-heading);
    font-size: 15px;
    font-weight: 600;
    color: var(--cms-ti-list-text, var(--color-text));
    margin: 0 0 3px;
    line-height: 1.3;
}


.cms-ti-list__item-desc {
    font-family: var(--font-body);
    font-size: 14px;
    line-height: 1.5;
    color: var(--cms-ti-list-muted, var(--color-text-muted));
    margin: 0;
}


.cms-ti-list__cta {
    margin-top: 28px;
}


.cms-ti-list__image-col .cms-img-deco--none {
    box-shadow: 0 8px 30px rgba(0,0,0,0.12);
}


/* ---------------------------------------------------------------------------
   Text Image — Overlap
   --------------------------------------------------------------------------- */
.cms-ti-overlap__wrap {
    display: flex;
    gap: clamp(32px, 5vw, 64px);
    align-items: center;
    max-width: var(--container, 1200px);
    margin: 0 auto;
    padding: 0 20px;
    box-sizing: border-box;
}


.cms-ti-overlap--image-left .cms-ti-overlap__wrap {
    flex-direction: row-reverse;
}


.cms-ti-overlap--dark {
    --cms-ti-overlap-text: var(--color-dark-text);
    --cms-ti-overlap-muted: var(--color-dark-text-muted);
    --cms-ti-overlap-card-bg: rgba(255,255,255,0.05);
    --cms-ti-overlap-secondary-border: var(--color-dark-bg, #1a1a2e);
}


.cms-ti-overlap__text {
    flex: 1 1 42%;
    min-width: 0;
}


.cms-ti-overlap__title {
    font-family: var(--font-heading);
    font-size: clamp(28px, 3.5vw, 42px);
    font-weight: 600;
    line-height: 1.15;
    color: var(--cms-ti-overlap-text, var(--color-text));
    margin: 0 0 20px;
}


.cms-ti-overlap__content {
    font-family: var(--font-body);
    font-size: 16px;
    line-height: 1.7;
    color: var(--cms-ti-overlap-muted, var(--color-text-muted));
}


.cms-ti-overlap__content p {
    margin: 0 0 16px;
}


.cms-ti-overlap__content p:last-child {
    margin-bottom: 0;
}


.cms-ti-overlap__card {
    margin-top: 24px;
    padding: 20px 24px;
    background: var(--cms-ti-overlap-card-bg, var(--color-bg));
    border-left: 3px solid var(--color-accent);
    border-radius: 0 var(--radius-md, 8px) var(--radius-md, 8px) 0;
    box-shadow: 0 2px 12px rgba(0,0,0,0.06);
}


.cms-ti-overlap__card-text {
    font-family: var(--font-body);
    font-size: 15px;
    font-style: italic;
    line-height: 1.6;
    color: var(--cms-ti-overlap-text, var(--color-text));
    margin: 0;
}


.cms-ti-overlap__cta {
    margin-top: 28px;
}


.cms-ti-overlap__images {
    flex: 1 1 58%;
    min-width: 0;
    position: relative;
    min-height: 440px;
    display: flex;
    justify-content: flex-end;
    align-items: flex-start;
}


.cms-ti-overlap__img-main {
    width: 88%;
    position: relative;
    z-index: 1;
}


.cms-ti-overlap__img-main .cms-img-deco--none {
    box-shadow: 0 12px 40px rgba(0,0,0,0.15);
}


.cms-ti-overlap__img-secondary {
    width: 55%;
    border-radius: var(--radius-lg, 12px);
    box-shadow: 0 8px 30px rgba(0,0,0,0.18);
    object-fit: cover;
    aspect-ratio: 4 / 3;
    display: block;
    position: absolute;
    bottom: -20px;
    right: 0;
    z-index: 2;
    border: 4px solid var(--cms-ti-overlap-secondary-border, var(--color-bg, #fff));
}


/* ---------------------------------------------------------------------------
   Case Study — Mini Grid
   --------------------------------------------------------------------------- */
.cms-cs-grid__wrap {
    max-width: var(--container, 1200px);
    margin: 0 auto;
    padding: 0 20px;
    box-sizing: border-box;
    display: grid;
    grid-template-columns: repeat(var(--cms-cs-grid-cols, 3), 1fr);
    gap: clamp(16px, 2vw, 24px);
}


.cms-cs-grid--cols-1 { --cms-cs-grid-cols: 1; }


.cms-cs-grid--cols-2 { --cms-cs-grid-cols: 2; }


.cms-cs-grid--cols-3 { --cms-cs-grid-cols: 3; }


.cms-cs-grid--dark {
    --cms-cs-grid-text: var(--color-dark-text);
    --cms-cs-grid-muted: var(--color-dark-text-muted);
    --cms-cs-grid-card-bg: rgba(255,255,255,0.04);
    --cms-cs-grid-card-border: rgba(255,255,255,0.08);
}


.cms-cs-grid__card {
    background: var(--cms-cs-grid-card-bg, var(--color-bg));
    border: 1px solid var(--cms-cs-grid-card-border, var(--color-border));
    border-radius: var(--radius-lg, 12px);
    overflow: hidden;
    display: flex;
    flex-direction: column;
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}


.cms-cs-grid__card:hover {
    transform: translateY(-4px);
    box-shadow: var(--shadow-hover);
}


.cms-cs-grid__card:hover img {
    transform: scale(1.05);
}


.cms-cs-grid__img {
    overflow: hidden;
    aspect-ratio: 16/10;
}


.cms-cs-grid__img .cms-img-deco {
    height: 100%;
}


.cms-cs-grid__img img {
    transition: transform 0.5s ease;
}


.cms-cs-grid__body {
    padding: clamp(20px, 2.5vw, 28px);
    flex: 1;
    display: flex;
    flex-direction: column;
}


.cms-cs-grid__title {
    font-family: var(--font-heading);
    font-size: clamp(16px, 1.5vw, 20px);
    font-weight: 600;
    color: var(--cms-cs-grid-text, var(--color-text));
    margin: 0 0 10px;
    line-height: 1.3;
}


.cms-cs-grid__desc {
    font-family: var(--font-body);
    font-size: 14px;
    line-height: 1.6;
    color: var(--cms-cs-grid-muted, var(--color-text-muted));
    margin: 0 0 16px;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}


.cms-cs-grid__stats {
    display: flex;
    gap: 0;
    margin-top: auto;
    padding-top: 16px;
    border-top: 1px solid var(--cms-cs-grid-card-border, var(--color-border));
}


.cms-cs-grid__stat {
    flex: 1;
    text-align: center;
    padding: 0 8px;
    border-right: 1px solid var(--cms-cs-grid-card-border, var(--color-border));
}


.cms-cs-grid__stat:last-child {
    border-right: none;
}


.cms-cs-grid__stat-val {
    font-family: var(--font-heading);
    font-size: 18px;
    font-weight: 700;
    color: var(--color-accent);
    line-height: 1.2;
    margin: 0 0 2px;
}


.cms-cs-grid__stat-lbl {
    font-family: var(--font-body);
    font-size: 10px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    color: var(--cms-cs-grid-muted, var(--color-text-muted));
    margin: 0;
}


/* ---------------------------------------------------------------------------
   FAQ — Accordion
   --------------------------------------------------------------------------- */
.cms-faq-acc {
    width: 100%;
    --cms-faq-acc-text: var(--color-text);
    --cms-faq-acc-muted: var(--color-text-muted);
    --cms-faq-acc-border: var(--color-border);
}


.cms-faq-acc--dark {
    --cms-faq-acc-text: var(--color-dark-text);
    --cms-faq-acc-muted: var(--color-dark-text-muted);
    --cms-faq-acc-border: rgba(255,255,255,0.1);
}


.cms-faq-acc__list {
    max-width: var(--container, 1200px);
    margin: 0 auto;
    list-style: none;
    padding: 0;
}


.cms-faq-acc__item {
    border-bottom: 1px solid var(--cms-faq-acc-border, var(--color-border));
}


.cms-faq-acc__trigger {
    width: 100%;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 16px;
    padding: 20px 0;
    background: none;
    border: none;
    cursor: pointer;
    text-align: left;
    font-family: var(--font-heading);
    font-size: 18px;
    font-weight: 700;
    color: var(--cms-faq-acc-text, var(--color-text));
    line-height: 1.4;
}


.cms-faq-acc__trigger:hover {
    color: var(--color-accent);
}


.cms-faq-acc__chevron {
    flex-shrink: 0;
    width: 20px;
    height: 20px;
    transition: transform 0.3s ease;
    color: var(--cms-faq-acc-muted, var(--color-text-muted));
}


.cms-faq-acc__chevron--open {
    transform: rotate(180deg);
}


.cms-faq-acc__answer {
    overflow: hidden;
    font-family: var(--font-body);
    font-size: 15px;
    line-height: 1.7;
    color: var(--cms-faq-acc-muted, var(--color-text-muted));
    padding-bottom: 20px;
}


.cms-faq-acc__answer p {
    margin: 0 0 12px;
}


.cms-faq-acc__answer p:last-child {
    margin-bottom: 0;
}


/* ---------------------------------------------------------------------------
   Stats
   --------------------------------------------------------------------------- */
.cms-stats-ml {
    width: 100%;
}


.cms-stats-ml--light {
    --cms-stats-ml-pipe: var(--color-border);
    --cms-stats-ml-muted: var(--color-text-muted);
}


.cms-stats-ml--dark {
    --cms-stats-ml-pipe: rgba(255,255,255,0.15);
    --cms-stats-ml-muted: var(--color-dark-text-muted);
}


.cms-stats-ml__row {
    display: flex;
    justify-content: center;
    align-items: center;
    flex-wrap: wrap;
    gap: 0;
    max-width: var(--container, 1200px);
    margin: 0 auto;
}


.cms-stats-ml__item {
    display: flex;
    align-items: baseline;
    gap: clamp(6px, 1vw, 10px);
    padding: 8px clamp(20px, 3vw, 36px);
    white-space: nowrap;
}


.cms-stats-ml__pipe {
    width: 1px;
    height: 28px;
    background: var(--cms-stats-ml-pipe, var(--color-border));
    flex-shrink: 0;
}


.cms-stats-ml__value {
    font-family: var(--font-heading);
    font-size: clamp(22px, 3vw, 32px);
    font-weight: 700;
    line-height: 1;
    color: var(--color-accent);
}


.cms-stats-ml__label {
    font-family: var(--font-body);
    font-size: clamp(13px, 1.2vw, 15px);
    color: var(--cms-stats-ml-muted, var(--color-text-muted));
}


.cms-stats-ib {
    width: 100%;
}


.cms-stats-ib--light {
    --cms-stats-ib-divider: var(--color-border);
    --cms-stats-ib-muted: var(--color-text-muted);
}


.cms-stats-ib--dark {
    --cms-stats-ib-divider: rgba(255,255,255,0.15);
    --cms-stats-ib-muted: var(--color-dark-text-muted);
}


.cms-stats-ib__grid {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 0;
    max-width: var(--container, 1200px);
    margin: 0 auto;
}


.cms-stats-ib__item {
    flex: 1;
    padding: 16px clamp(12px, 3vw, 40px);
    text-align: center;
}


.cms-stats-ib__item + .cms-stats-ib__item {
    border-left: 1px solid var(--cms-stats-ib-divider, var(--color-border));
}


.cms-stats-ib__value {
    margin: 0 0 6px;
    font-family: var(--font-heading);
    font-size: clamp(32px, 5vw, 48px);
    font-weight: 700;
    line-height: 1.1;
    color: var(--color-accent);
}


.cms-stats-ib__label {
    margin: 0;
    font-family: var(--font-body);
    font-size: clamp(12px, 1.2vw, 14px);
    font-weight: 500;
    color: var(--cms-stats-ib-muted, var(--color-text-muted));
    text-transform: uppercase;
    letter-spacing: 0.05em;
}


.cms-stats-ib__desc {
    margin: 4px 0 0;
    font-family: var(--font-body);
    font-size: 12px;
    color: var(--cms-stats-ib-muted, var(--color-text-muted));
    opacity: 0.7;
}


/* ---------------------------------------------------------------------------
   Content Bento
   --------------------------------------------------------------------------- */
.cms-cb--light {
    --cms-cb-text: var(--color-text);
    --cms-cb-muted: var(--color-text-muted);
    --cms-cb-surface: var(--color-bg);
    --cms-cb-surface-alt: var(--color-bg-alt, #f5f5f4);
    --cms-cb-border: var(--color-border);
    --cms-cb-track: color-mix(in srgb, var(--color-accent) 10%, transparent);
    --cms-cb-dark-surface: var(--color-dark-bg, #1c1917);
    --cms-cb-dark-border: transparent;
    --cms-cb-dark-muted: rgba(255,255,255,0.7);
    --cms-cb-dark-icon-bg: rgba(255,255,255,0.1);
}


.cms-cb--dark {
    --cms-cb-text: var(--color-dark-text);
    --cms-cb-muted: var(--color-dark-text-muted);
    --cms-cb-surface: rgba(255,255,255,0.05);
    --cms-cb-surface-alt: rgba(255,255,255,0.08);
    --cms-cb-border: rgba(255,255,255,0.08);
    --cms-cb-track: rgba(255,255,255,0.1);
    --cms-cb-dark-surface: rgba(0,0,0,0.3);
    --cms-cb-dark-border: transparent;
    --cms-cb-dark-muted: rgba(255,255,255,0.7);
    --cms-cb-dark-icon-bg: rgba(255,255,255,0.1);
}


.cms-cb__grid {
    display: grid;
    grid-auto-rows: minmax(var(--cms-cb-row-min, 190px), auto);
    gap: clamp(14px, 1.6vw, 22px);
    max-width: var(--container, 1200px);
    margin: 0 auto;
}


.cms-cb__cell--a { grid-area: a; }


.cms-cb__cell--b { grid-area: b; }


.cms-cb__cell--c { grid-area: c; }


.cms-cb__cell--d { grid-area: d; }


.cms-cb__cell--e { grid-area: e; }


.cms-cb__cell--f { grid-area: f; }


.cms-cb__cell--g { grid-area: g; }


.cms-cb__cell--h { grid-area: h; }


.cms-cb__cell {
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: flex-start;
    overflow: hidden;
    padding: clamp(24px, 3vw, 36px);
    border: 1px solid var(--cms-cb-border);
    border-radius: var(--radius-lg, 12px);
    background: var(--cms-cb-surface);
    transition: transform 0.3s ease, box-shadow 0.3s ease, border-color 0.3s ease;
    box-sizing: border-box;
}


.cms-cb__cell:hover {
    transform: translateY(-4px);
    box-shadow: var(--shadow-hover, 0 8px 30px rgba(0,0,0,0.12));
    border-color: color-mix(in srgb, var(--color-accent) 30%, transparent);
}


.cms-cb__cell--bg-default { background: var(--cms-cb-surface); }


.cms-cb__cell--bg-alt { background: var(--cms-cb-surface-alt); }


.cms-cb__cell--bg-accent {
    background: var(--color-accent);
    border-color: transparent;
}


.cms-cb__cell--bg-accent:hover {
    border-color: transparent;
}


.cms-cb__cell--bg-accent .cms-cb__title,
.cms-cb__cell--bg-accent .cms-cb__stat-value { color: #fff; }


.cms-cb__cell--bg-accent .cms-cb__desc,
.cms-cb__cell--bg-accent .cms-cb__stat-label,
.cms-cb__cell--bg-accent .cms-cb__list-item { color: rgba(255,255,255,0.85); }


.cms-cb__cell--bg-accent .cms-cb__icon-wrap,
.cms-cb__cell--bg-accent .cms-cb__icon-lg { background: rgba(255,255,255,0.2); }


.cms-cb__cell--bg-dark {
    background: var(--cms-cb-dark-surface);
    border-color: var(--cms-cb-dark-border);
}


.cms-cb__cell--bg-dark:hover {
    border-color: rgba(255,255,255,0.15);
}


.cms-cb__cell--bg-dark .cms-cb__title,
.cms-cb__cell--bg-dark .cms-cb__stat-value { color: #fff; }


.cms-cb__cell--bg-dark .cms-cb__desc,
.cms-cb__cell--bg-dark .cms-cb__stat-label,
.cms-cb__cell--bg-dark .cms-cb__list-item { color: var(--cms-cb-dark-muted); }


.cms-cb__cell--bg-dark .cms-cb__icon-wrap,
.cms-cb__cell--bg-dark .cms-cb__icon-lg { background: var(--cms-cb-dark-icon-bg); }


.cms-cb__cell--accent {
    border-left: 3px solid var(--color-accent);
}


.cms-cb__icon-wrap,
.cms-cb__icon-lg {
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--color-accent);
}


.cms-cb__icon-wrap {
    width: 44px;
    height: 44px;
    margin-bottom: 16px;
    border-radius: var(--radius, 8px);
    background: color-mix(in srgb, var(--color-accent) 12%, transparent);
    flex-shrink: 0;
}


.cms-cb__icon-lg {
    width: 64px;
    height: 64px;
    margin-bottom: 14px;
    border-radius: var(--radius-lg, 12px);
    background: color-mix(in srgb, var(--color-accent) 10%, transparent);
    font-size: 32px;
    line-height: 1;
}


.cms-cb__icon-wrap svg,
.cms-cb__icon-lg svg {
    width: 22px;
    height: 22px;
    display: block;
}


.cms-cb__title {
    margin: 0 0 8px;
    color: var(--cms-cb-text);
    font-family: var(--font-heading);
    font-size: clamp(16px, 1.5vw, 20px);
    font-weight: 600;
    line-height: 1.3;
}


.cms-cb__desc {
    margin: 0;
    color: var(--cms-cb-muted);
    font-family: var(--font-body);
    font-size: 14px;
    line-height: 1.6;
}


.cms-cb__desc--spaced {
    margin-top: 6px;
}


.cms-cb__cell--icon-large,
.cms-cb__cell--stat,
.cms-cb__cell--circle {
    align-items: center;
    text-align: center;
}


.cms-cb__stat-value {
    margin: 0 0 6px;
    color: var(--color-accent);
    font-family: var(--font-heading);
    font-size: clamp(28px, 4vw, 44px);
    font-weight: 700;
    line-height: 1.1;
}


.cms-cb__stat-label {
    margin: 0;
    color: var(--cms-cb-muted);
    font-family: var(--font-body);
    font-size: clamp(12px, 1.1vw, 14px);
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}


.cms-cb__cell--image {
    min-height: 220px;
    padding: 0;
    border: none;
    background: transparent;
}


.cms-cb__cell--image:hover {
    border: none;
}


.cms-cb__cell--image .cms-img-deco,
.cms-cb__cell--image > img {
    position: absolute;
    inset: 0;
}


.cms-cb__cell--image .cms-img-deco img,
.cms-cb__cell--image > img {
    border-radius: var(--radius-lg, 12px);
    transition: transform 0.5s ease;
}


.cms-cb__cell--image:hover img {
    transform: scale(1.05);
}


.cms-cb__overlay {
    position: absolute;
    inset: 0;
    z-index: 2;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    padding: clamp(18px, 2vw, 28px);
    border-radius: var(--radius-lg, 12px);
    background: linear-gradient(180deg, transparent 36%, rgba(0,0,0,0.74) 100%);
}


.cms-cb__overlay .cms-cb__title { color: #fff; }


.cms-cb__overlay .cms-cb__desc { color: rgba(255,255,255,0.85); }


.cms-cb__progress-header {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    width: 100%;
    margin-bottom: 10px;
    gap: 10px;
}


.cms-cb__progress-label {
    color: var(--cms-cb-text);
    font-family: var(--font-body);
    font-size: 14px;
    font-weight: 600;
}


.cms-cb__progress-pct {
    color: var(--color-accent);
    font-family: var(--font-heading);
    font-size: 18px;
    font-weight: 700;
}


.cms-cb__progress-track {
    width: 100%;
    height: 8px;
    margin-bottom: 16px;
    overflow: hidden;
    border-radius: var(--radius-full, 50px);
    background: var(--cms-cb-track);
}


.cms-cb__progress-bar {
    width: 0;
    height: 100%;
    border-radius: var(--radius-full, 50px);
    background: var(--color-accent);
    transition: width 1.2s cubic-bezier(0.22, 1, 0.36, 1);
}


.cms-cb__circle-wrap {
    position: relative;
    width: 100px;
    height: 100px;
    margin-bottom: 12px;
}


.cms-cb__circle-svg {
    transform: rotate(-90deg);
}


.cms-cb__circle-bg {
    fill: none;
    stroke: var(--cms-cb-track);
    stroke-width: 6;
}


.cms-cb__circle-fg {
    fill: none;
    stroke: var(--color-accent);
    stroke-width: 6;
    stroke-linecap: round;
    transition: stroke-dashoffset 1.2s cubic-bezier(0.22, 1, 0.36, 1);
}


.cms-cb__circle-value {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--color-accent);
    font-family: var(--font-heading);
    font-size: 22px;
    font-weight: 700;
}


.cms-cb__list {
    margin: 12px 0 0;
    padding: 0;
    list-style: none;
}


.cms-cb__list-item {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    padding: 6px 0;
    color: var(--cms-cb-muted);
    font-family: var(--font-body);
    font-size: 14px;
    line-height: 1.5;
}


.cms-cb__list-check {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 18px;
    height: 18px;
    margin-top: 1px;
    flex-shrink: 0;
    border-radius: 50%;
    background: color-mix(in srgb, var(--color-accent) 12%, transparent);
}


.cms-cb__list-check svg {
    width: 10px;
    height: 10px;
    color: var(--color-accent);
}


.cms-cb--layout-2x2 .cms-cb__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-template-areas: "a b" "c d";
}


.cms-cb--layout-tall-left .cms-cb__grid {
    grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.85fr);
    grid-template-areas: "a b" "a c";
}


.cms-cb--layout-tall-right .cms-cb__grid {
    grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.15fr);
    grid-template-areas: "a c" "b c";
}


.cms-cb--layout-wide-bottom .cms-cb__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-template-areas: "a b" "c c";
}


.cms-cb--layout-sidebar-stack .cms-cb__grid {
    grid-template-columns: minmax(0, 1.2fr) minmax(0, 0.8fr);
    grid-template-areas: "a b" "a c" "a d";
    --cms-cb-row-min: 165px;
}


.cms-cb--layout-3-col .cms-cb__grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    grid-template-areas: "a b c";
}


.cms-cb--layout-wide-top .cms-cb__grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    grid-template-areas: "a a a" "b c d";
}


.cms-cb--layout-wide-bottom-3 .cms-cb__grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    grid-template-areas: "a b c" "d d d";
}


.cms-cb--layout-featured-left .cms-cb__grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    grid-template-areas: "a a b" "a a c";
    --cms-cb-row-min: 170px;
}


.cms-cb--layout-featured-right .cms-cb__grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    grid-template-areas: "a a b b" "c c b b";
}


.cms-cb--layout-mosaic .cms-cb__grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    grid-template-areas: "a b c" "a d e";
}


.cms-cb--layout-mosaic-right .cms-cb__grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    grid-template-areas: "a b c" "d e c";
}


.cms-cb--layout-mosaic-wide .cms-cb__grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    grid-template-areas: "a a b b" "c c c c" "d d e e";
    --cms-cb-row-min: 170px;
}


.cms-cb--layout-3x2 .cms-cb__grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    grid-template-areas: "a b c" "d e f";
}


.cms-cb--layout-4-col .cms-cb__grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    grid-template-areas: "a b c d";
}


.cms-cb--layout-dashboard .cms-cb__grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    grid-template-areas: "a a b b" "c d e f";
}


.cms-cb--layout-balanced-5 .cms-cb__grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    grid-template-areas: "a a b c" "a a d e";
}


.cms-cb--layout-editorial-band .cms-cb__grid {
    grid-template-columns: repeat(6, minmax(0, 1fr));
    grid-template-areas: "a a a b b b" "c c d d e e";
    --cms-cb-row-min: 165px;
}


.cms-cb--layout-offset-showcase .cms-cb__grid {
    grid-template-columns: repeat(6, minmax(0, 1fr));
    grid-template-areas: "a a b b c c" ". d d e e ." ;
    --cms-cb-row-min: 175px;
}


/* ---------------------------------------------------------------------------
   Team
   --------------------------------------------------------------------------- */
.cms-team-gc {
    width: 100%;
    padding: 0 24px;
    box-sizing: border-box;
}


.cms-team-gc--light {
    --cms-team-gc-bg: var(--color-bg);
    --cms-team-gc-border: var(--color-border);
    --cms-team-gc-text: var(--color-text);
    --cms-team-gc-muted: var(--color-text-muted);
}


.cms-team-gc--dark {
    --cms-team-gc-bg: rgba(255,255,255,0.05);
    --cms-team-gc-border: rgba(255,255,255,0.08);
    --cms-team-gc-text: var(--color-dark-text);
    --cms-team-gc-muted: var(--color-dark-text-muted);
}


.cms-team-gc__grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
    gap: clamp(16px, 2vw, 24px);
    max-width: var(--container, 1200px);
    margin: 0 auto;
}


.cms-team-gc__card {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 12px;
    padding: clamp(24px, 3vw, 32px);
    border: 1px solid var(--cms-team-gc-border, var(--color-border));
    border-radius: var(--radius-lg, 12px);
    background: var(--cms-team-gc-bg, var(--color-bg));
    text-align: center;
    text-decoration: none;
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}


.cms-team-gc__card:hover {
    transform: translateY(-4px);
    box-shadow: 0 8px 24px rgba(0,0,0,0.08);
}


.cms-team-gc__avatar {
    width: 100px;
    height: 100px;
    flex-shrink: 0;
}


.cms-team-gc__avatar .cms-person-avatar {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100px;
    height: 100px;
    overflow: hidden;
    border-radius: var(--radius-lg, 12px);
    background: color-mix(in srgb, var(--color-accent) 12%, transparent);
    color: var(--color-accent);
    font-size: 28px;
    font-weight: 700;
    letter-spacing: 0.06em;
}


.cms-team-gc__avatar img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}


.cms-team-gc__name {
    margin: 0;
    color: var(--cms-team-gc-text, var(--color-text));
    font-family: var(--font-heading);
    font-size: 18px;
    font-weight: 700;
    line-height: 1.3;
}


.cms-team-gc__role {
    margin: 0;
    color: var(--color-accent);
    font-family: var(--font-body);
    font-size: 13px;
    font-weight: 500;
}


.cms-team-gc__bio {
    margin: 0;
    color: var(--cms-team-gc-muted, var(--color-text-muted));
    font-family: var(--font-body);
    font-size: 14px;
    line-height: 1.6;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}


/* ---------------------------------------------------------------------------
   Content Cards
   --------------------------------------------------------------------------- */
.cms-cc-horiz {
    width: 100%;
    padding: 0 24px;
    box-sizing: border-box;
}


.cms-cc-horiz--light {
    --cms-cc-horiz-text: var(--color-text);
    --cms-cc-horiz-muted: var(--color-text-muted);
    --cms-cc-horiz-border: var(--color-border);
}


.cms-cc-horiz--dark {
    --cms-cc-horiz-text: var(--color-dark-text);
    --cms-cc-horiz-muted: var(--color-dark-text-muted);
    --cms-cc-horiz-border: rgba(255,255,255,0.08);
}


.cms-cc-horiz__list {
    display: flex;
    flex-direction: column;
    max-width: var(--container, 1200px);
    margin: 0 auto;
}


.cms-cc-horiz__card {
    display: grid;
    grid-template-columns: 40% 1fr;
    gap: clamp(16px, 3vw, 32px);
    align-items: center;
    padding: clamp(16px, 2vw, 24px) 0;
    border-bottom: 1px solid var(--cms-cc-horiz-border, var(--color-border));
    text-decoration: none;
    transition: opacity 0.2s ease;
}


.cms-cc-horiz__card:first-child {
    padding-top: 0;
}


.cms-cc-horiz__card:last-child {
    border-bottom: none;
}


.cms-cc-horiz__card:hover {
    opacity: 0.85;
}


.cms-cc-horiz__img-wrap {
    overflow: hidden;
    border-radius: var(--radius-lg, 12px);
    aspect-ratio: 16 / 10;
}


.cms-cc-horiz__img-wrap img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.5s ease;
}


.cms-cc-horiz__card:hover .cms-cc-horiz__img-wrap img {
    transform: scale(1.03);
}


.cms-cc-horiz__body {
    display: flex;
    flex-direction: column;
    gap: 8px;
}


.cms-cc-horiz__title {
    margin: 0;
    color: var(--cms-cc-horiz-text, var(--color-text));
    font-family: var(--font-heading);
    font-size: clamp(18px, 2vw, 22px);
    font-weight: 700;
    line-height: 1.3;
    transition: color 0.3s ease;
}


.cms-cc-horiz__card:hover .cms-cc-horiz__title {
    color: var(--color-accent);
}


.cms-cc-horiz__desc {
    margin: 0;
    color: var(--cms-cc-horiz-muted, var(--color-text-muted));
    font-family: var(--font-body);
    font-size: 15px;
    line-height: 1.6;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}


.cms-cc-horiz__arrow {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: var(--color-accent);
    font-family: var(--font-body);
    font-size: 14px;
    font-weight: 600;
}


/* ---------------------------------------------------------------------------
   Newsletter
   --------------------------------------------------------------------------- */
.cms-nl-card {
    display: flex;
    justify-content: center;
    width: 100%;
    padding: 0 24px;
    box-sizing: border-box;
}


.cms-nl-card--dark {
    --cms-nl-card-bg: var(--color-dark-bg);
    --cms-nl-card-btn-bg: var(--color-accent);
    --cms-nl-card-btn-color: #fff;
    --cms-nl-card-btn-hover-bg: var(--color-accent2);
}


.cms-nl-card--accent {
    --cms-nl-card-bg: var(--color-accent);
    --cms-nl-card-btn-bg: #fff;
    --cms-nl-card-btn-color: var(--color-accent);
    --cms-nl-card-btn-hover-bg: var(--color-accent3);
}


.cms-nl-card__inner {
    position: relative;
    overflow: hidden;
    width: 100%;
    max-width: 600px;
    padding: clamp(32px, 4vw, 48px);
    border-radius: var(--radius-lg, 12px);
    background: var(--cms-nl-card-bg);
    box-shadow: var(--shadow-lg, 0 8px 32px rgba(0,0,0,0.12));
    text-align: center;
}


.cms-nl-card__title {
    margin: 0 0 8px;
    color: #fff;
    font-family: var(--font-heading);
    font-size: clamp(22px, 3vw, 28px);
    font-weight: 700;
    line-height: 1.3;
}


.cms-nl-card__subtitle {
    margin: 0 0 24px;
    color: rgba(255,255,255,0.7);
    font-family: var(--font-body);
    font-size: 15px;
    line-height: 1.6;
}


.cms-nl-card__form {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    gap: 10px;
    margin-bottom: 14px;
}


.cms-nl-card__input {
    flex: 1;
    min-width: 200px;
    padding: 14px 18px;
    border: 1px solid rgba(255,255,255,0.2);
    border-radius: var(--radius-full, 50px);
    outline: none;
    background: rgba(255,255,255,0.1);
    color: #fff;
    font-family: var(--font-body);
    font-size: 15px;
    transition: border-color 0.3s ease;
}


.cms-nl-card__input:focus {
    border-color: rgba(255,255,255,0.5);
}


.cms-nl-card__input::placeholder {
    color: rgba(255,255,255,0.5);
}


.cms-nl-card__btn {
    padding: 14px 28px;
    border: none;
    border-radius: var(--radius-full, 50px);
    background: var(--cms-nl-card-btn-bg);
    color: var(--cms-nl-card-btn-color);
    cursor: pointer;
    white-space: nowrap;
    font-family: var(--font-body);
    font-size: 15px;
    font-weight: 600;
    transition: background 0.3s ease, color 0.3s ease;
}


.cms-nl-card__btn:hover {
    background: var(--cms-nl-card-btn-hover-bg);
    color: #fff;
}


.cms-nl-card__disclaimer {
    margin: 0;
    color: rgba(255,255,255,0.5);
    font-family: var(--font-body);
    font-size: 13px;
}


.cms-nl-card .newsletter-msg {
    display: none;
    margin-top: 12px;
    font-family: var(--font-body);
    font-size: 14px;
}


/* ---------------------------------------------------------------------------
   Newsletter Centered
   --------------------------------------------------------------------------- */
.cms-nl-center {
    width: 100%;
    padding: 0 24px;
    box-sizing: border-box;
}


.cms-nl-center--light {
    --cms-nl-center-text: var(--color-text);
    --cms-nl-center-muted: var(--color-text-muted);
    --cms-nl-center-input-bg: var(--color-bg);
    --cms-nl-center-input-border: var(--color-border);
    --cms-nl-center-icon-bg: color-mix(in srgb, var(--color-accent) 10%, transparent);
}


.cms-nl-center--dark {
    --cms-nl-center-text: var(--color-dark-text);
    --cms-nl-center-muted: var(--color-dark-text-muted);
    --cms-nl-center-input-bg: rgba(255,255,255,0.08);
    --cms-nl-center-input-border: rgba(255,255,255,0.15);
    --cms-nl-center-icon-bg: rgba(255,255,255,0.08);
}


.cms-nl-center__inner {
    max-width: 560px;
    margin: 0 auto;
    text-align: center;
}


.cms-nl-center__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 56px;
    height: 56px;
    margin: 0 auto 20px;
    border-radius: 50%;
    background: var(--cms-nl-center-icon-bg);
    color: var(--color-accent);
}


.cms-nl-center__title {
    margin: 0 0 8px;
    color: var(--cms-nl-center-text);
    font-family: var(--font-heading);
    font-size: clamp(22px, 3vw, 30px);
    font-weight: 700;
    line-height: 1.3;
}


.cms-nl-center__subtitle {
    margin: 0 0 28px;
    color: var(--cms-nl-center-muted);
    font-family: var(--font-body);
    font-size: 16px;
    line-height: 1.6;
}


.cms-nl-center__form {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    gap: 10px;
    margin-bottom: 14px;
}


.cms-nl-center__input {
    flex: 1;
    min-width: 220px;
    max-width: 340px;
    padding: 14px 18px;
    border: 1px solid var(--cms-nl-center-input-border);
    border-radius: var(--radius-full, 50px);
    outline: none;
    background: var(--cms-nl-center-input-bg);
    color: var(--cms-nl-center-text);
    font-family: var(--font-body);
    font-size: 15px;
    transition: border-color 0.3s ease;
}


.cms-nl-center__input:focus {
    border-color: var(--color-accent);
}


.cms-nl-center__input::placeholder {
    color: var(--cms-nl-center-muted);
}


.cms-nl-center__btn {
    padding: 14px 28px;
    border: none;
    border-radius: var(--radius-full, 50px);
    background: var(--color-accent);
    color: #fff;
    cursor: pointer;
    white-space: nowrap;
    font-family: var(--font-body);
    font-size: 15px;
    font-weight: 600;
    transition: background 0.3s ease;
}


.cms-nl-center__btn:hover {
    background: var(--color-accent2);
}


.cms-nl-center__disclaimer {
    margin: 0;
    color: var(--cms-nl-center-muted);
    font-family: var(--font-body);
    font-size: 13px;
}


.cms-nl-center .newsletter-msg {
    display: none;
    margin-top: 12px;
    font-family: var(--font-body);
    font-size: 14px;
}


/* ---------------------------------------------------------------------------
   Newsletter Inline
   --------------------------------------------------------------------------- */
.cms-nl-inline {
    width: 100%;
    padding: 0 24px;
    box-sizing: border-box;
}


.cms-nl-inline--light {
    --cms-nl-inline-text: var(--color-text);
    --cms-nl-inline-muted: var(--color-text-muted);
    --cms-nl-inline-input-bg: var(--color-bg);
    --cms-nl-inline-input-border: var(--color-border);
}


.cms-nl-inline--dark {
    --cms-nl-inline-text: var(--color-dark-text);
    --cms-nl-inline-muted: var(--color-dark-text-muted);
    --cms-nl-inline-input-bg: rgba(255,255,255,0.08);
    --cms-nl-inline-input-border: rgba(255,255,255,0.15);
}


.cms-nl-inline__inner {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    gap: 12px;
    max-width: var(--container, 1200px);
    margin: 0 auto;
}


.cms-nl-inline__input {
    flex: 1 1 280px;
    min-width: 240px;
    max-width: 400px;
    padding: 14px 18px;
    border: 1px solid var(--cms-nl-inline-input-border);
    border-radius: var(--radius-full, 50px);
    outline: none;
    background: var(--cms-nl-inline-input-bg);
    color: var(--cms-nl-inline-text);
    font-family: var(--font-body);
    font-size: 15px;
    transition: border-color 0.3s ease;
}


.cms-nl-inline__input:focus {
    border-color: var(--color-accent);
}


.cms-nl-inline__input::placeholder {
    color: var(--cms-nl-inline-muted);
}


.cms-nl-inline__btn {
    flex: 0 0 auto;
    padding: 14px 28px;
    border: none;
    border-radius: var(--radius-full, 50px);
    background: var(--color-accent);
    color: #fff;
    cursor: pointer;
    white-space: nowrap;
    font-family: var(--font-body);
    font-size: 15px;
    font-weight: 600;
    transition: background 0.3s ease;
}


.cms-nl-inline__btn:hover {
    background: var(--color-accent2);
}


.cms-nl-inline .newsletter-msg {
    display: none;
    width: 100%;
    margin-top: 8px;
    text-align: center;
    font-family: var(--font-body);
    font-size: 14px;
}


/* ---------------------------------------------------------------------------
   Stats Cards Grid
   --------------------------------------------------------------------------- */
.cms-stats-cg--light {
    --cms-stats-cg-card-bg: var(--color-bg);
    --cms-stats-cg-card-border: var(--color-border);
    --cms-stats-cg-text: var(--color-text);
    --cms-stats-cg-muted: var(--color-text-muted);
}


.cms-stats-cg--dark {
    --cms-stats-cg-card-bg: rgba(255,255,255,0.05);
    --cms-stats-cg-card-border: rgba(255,255,255,0.08);
    --cms-stats-cg-text: var(--color-dark-text);
    --cms-stats-cg-muted: var(--color-dark-text-muted);
}


.cms-stats-cg__grid {
    display: grid;
    grid-template-columns: repeat(var(--cms-stats-cg-cols, 4), 1fr);
    gap: clamp(16px, 2vw, 24px);
    max-width: var(--container, 1200px);
    margin: 0 auto;
}


.cms-stats-cg--cols-1 { --cms-stats-cg-cols: 1; }


.cms-stats-cg--cols-2 { --cms-stats-cg-cols: 2; }


.cms-stats-cg--cols-3 { --cms-stats-cg-cols: 3; }


.cms-stats-cg--cols-4 { --cms-stats-cg-cols: 4; }


.cms-stats-cg__card {
    padding: clamp(24px, 3vw, 36px);
    border: 1px solid var(--cms-stats-cg-card-border);
    border-radius: var(--radius-lg, 12px);
    background: var(--cms-stats-cg-card-bg);
    text-align: center;
    box-shadow: 0 1px 3px rgba(0,0,0,0.04);
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}


.cms-stats-cg__card:hover {
    transform: translateY(-4px);
    box-shadow: 0 8px 24px rgba(0,0,0,0.08);
}


.cms-stats-cg__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 48px;
    height: 48px;
    margin: 0 auto 16px;
    border-radius: var(--radius, 8px);
    background: var(--color-accent);
    color: #fff;
    font-size: 24px;
    opacity: 0.9;
}


.cms-stats-cg__value {
    margin: 0 0 8px;
    color: var(--color-accent);
    font-family: var(--font-heading);
    font-size: clamp(28px, 4vw, 42px);
    font-weight: 700;
    line-height: 1.1;
}


.cms-stats-cg__label {
    margin: 0;
    color: var(--cms-stats-cg-text);
    font-family: var(--font-body);
    font-size: clamp(13px, 1.2vw, 15px);
    font-weight: 600;
}


.cms-stats-cg__desc {
    margin: 6px 0 0;
    color: var(--cms-stats-cg-muted);
    font-family: var(--font-body);
    font-size: 12px;
    line-height: 1.4;
}


/* ---------------------------------------------------------------------------
   Team Featured
   --------------------------------------------------------------------------- */
.cms-team-feat {
    width: 100%;
    padding: 0 24px;
    box-sizing: border-box;
}


.cms-team-feat--light {
    --cms-team-feat-text: var(--color-text);
    --cms-team-feat-muted: var(--color-text-muted);
}


.cms-team-feat--dark {
    --cms-team-feat-text: var(--color-dark-text);
    --cms-team-feat-muted: var(--color-dark-text-muted);
}


.cms-team-feat__container {
    display: flex;
    flex-direction: column;
    gap: clamp(40px, 5vw, 64px);
    max-width: var(--container, 1200px);
    margin: 0 auto;
}


.cms-team-feat__member {
    display: grid;
    grid-template-columns: 200px 1fr;
    gap: clamp(24px, 4vw, 48px);
    align-items: start;
}


.cms-team-feat__avatar {
    width: 200px;
    height: 200px;
    flex-shrink: 0;
}


.cms-team-feat__avatar .cms-person-avatar {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 200px;
    height: 200px;
    overflow: hidden;
    border-radius: var(--radius-lg, 12px);
    background: color-mix(in srgb, var(--color-accent) 12%, transparent);
    color: var(--color-accent);
    font-size: 48px;
    font-weight: 700;
    letter-spacing: 0.06em;
}


.cms-team-feat__avatar img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}


.cms-team-feat__info {
    display: flex;
    flex-direction: column;
    gap: 12px;
}


.cms-team-feat__name {
    margin: 0;
    color: var(--cms-team-feat-text);
    font-family: var(--font-heading);
    font-size: clamp(24px, 3vw, 32px);
    font-weight: 700;
    line-height: 1.2;
}


.cms-team-feat__role {
    margin: 0;
    color: var(--color-accent);
    font-family: var(--font-body);
    font-size: 15px;
    font-weight: 600;
}


.cms-team-feat__bio {
    margin: 0;
    color: var(--cms-team-feat-muted);
    font-family: var(--font-body);
    font-size: 16px;
    line-height: 1.7;
}


.cms-team-feat__social {
    display: flex;
    gap: 12px;
    margin-top: 4px;
}


.cms-team-feat__social a {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: color-mix(in srgb, var(--color-accent) 10%, transparent);
    color: var(--color-accent);
    text-decoration: none;
    transition: background 0.2s ease, color 0.2s ease;
}


.cms-team-feat__social a:hover {
    background: var(--color-accent);
    color: #fff;
}


/* ---------------------------------------------------------------------------
   Team Circles
   --------------------------------------------------------------------------- */
.cms-team-circ {
    width: 100%;
    padding: 0 24px;
    box-sizing: border-box;
}


.cms-team-circ--light {
    --cms-team-circ-text: var(--color-text);
}


.cms-team-circ--dark {
    --cms-team-circ-text: var(--color-dark-text);
}


.cms-team-circ__grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
    gap: clamp(24px, 3vw, 40px);
    max-width: var(--container, 1200px);
    margin: 0 auto;
}


.cms-team-circ__item {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 12px;
    text-align: center;
    text-decoration: none;
}


.cms-team-circ__avatar {
    width: 100px;
    height: 100px;
    flex-shrink: 0;
    transition: transform 0.3s ease;
}


.cms-team-circ__item:hover .cms-team-circ__avatar {
    transform: scale(1.05);
}


.cms-team-circ__avatar .cms-person-avatar {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100px;
    height: 100px;
    overflow: hidden;
    border-radius: 50%;
    background: color-mix(in srgb, var(--color-accent) 12%, transparent);
    color: var(--color-accent);
    font-size: 28px;
    font-weight: 700;
    letter-spacing: 0.06em;
}


.cms-team-circ__avatar img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}


.cms-team-circ__name {
    margin: 0;
    color: var(--cms-team-circ-text);
    font-family: var(--font-heading);
    font-size: 16px;
    font-weight: 600;
    line-height: 1.3;
}


.cms-team-circ__role {
    margin: 0;
    color: var(--color-accent);
    font-family: var(--font-body);
    font-size: 13px;
    font-weight: 500;
}


/* ---------------------------------------------------------------------------
   Team Carousel
   --------------------------------------------------------------------------- */
.cms-team-car--light {
    --cms-team-car-bg: var(--color-bg);
    --cms-team-car-border: var(--color-border);
    --cms-team-car-text: var(--color-text);
    --cms-team-car-muted: var(--color-text-muted);
}


.cms-team-car--dark {
    --cms-team-car-bg: rgba(255,255,255,0.05);
    --cms-team-car-border: rgba(255,255,255,0.08);
    --cms-team-car-text: var(--color-dark-text);
    --cms-team-car-muted: var(--color-dark-text-muted);
}


.cms-team-car__card {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 12px;
    height: 100%;
    box-sizing: border-box;
    padding: clamp(24px, 3vw, 32px);
    border: 1px solid var(--cms-team-car-border);
    border-radius: var(--radius-lg, 12px);
    background: var(--cms-team-car-bg);
    text-align: center;
    text-decoration: none;
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}


.cms-team-car__card:hover {
    transform: translateY(-4px);
    box-shadow: 0 8px 24px rgba(0,0,0,0.08);
}


.cms-team-car__avatar {
    width: 100px;
    height: 100px;
    flex-shrink: 0;
}


.cms-team-car__avatar .cms-person-avatar {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100px;
    height: 100px;
    overflow: hidden;
    border-radius: var(--radius-lg, 12px);
    background: color-mix(in srgb, var(--color-accent) 12%, transparent);
    color: var(--color-accent);
    font-size: 28px;
    font-weight: 700;
    letter-spacing: 0.06em;
}


.cms-team-car__avatar img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}


.cms-team-car__name {
    margin: 0;
    color: var(--cms-team-car-text);
    font-family: var(--font-heading);
    font-size: 18px;
    font-weight: 700;
    line-height: 1.3;
}


.cms-team-car__role {
    margin: 0;
    color: var(--color-accent);
    font-family: var(--font-body);
    font-size: 13px;
    font-weight: 500;
}


.cms-team-car__bio {
    margin: 0;
    color: var(--cms-team-car-muted);
    font-family: var(--font-body);
    font-size: 14px;
    line-height: 1.6;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}


/* ---------------------------------------------------------------------------
   Content Cards Editorial Grid
   --------------------------------------------------------------------------- */
.cms-cc-edgrid {
    width: 100%;
    padding: 0 24px;
    box-sizing: border-box;
}


.cms-cc-edgrid--light {
    --cms-cc-edgrid-bg: var(--color-bg);
    --cms-cc-edgrid-border: var(--color-border);
    --cms-cc-edgrid-text: var(--color-text);
    --cms-cc-edgrid-muted: var(--color-text-muted);
}


.cms-cc-edgrid--dark {
    --cms-cc-edgrid-bg: rgba(255,255,255,0.05);
    --cms-cc-edgrid-border: rgba(255,255,255,0.08);
    --cms-cc-edgrid-text: var(--color-dark-text);
    --cms-cc-edgrid-muted: var(--color-dark-text-muted);
}


.cms-cc-edgrid__grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
    gap: clamp(16px, 2vw, 24px);
    max-width: var(--container, 1200px);
    margin: 0 auto;
}


.cms-cc-edgrid__card {
    display: block;
    overflow: hidden;
    border: 1px solid var(--cms-cc-edgrid-border);
    border-radius: var(--radius-lg, 12px);
    background: var(--cms-cc-edgrid-bg);
    text-decoration: none;
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}


.cms-cc-edgrid__card:hover {
    transform: translateY(-4px);
    box-shadow: 0 8px 24px rgba(0,0,0,0.08);
}


.cms-cc-edgrid__img-wrap {
    width: 100%;
    overflow: hidden;
    aspect-ratio: 3 / 4;
}


.cms-cc-edgrid__img-wrap img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.5s ease;
}


.cms-cc-edgrid__card:hover .cms-cc-edgrid__img-wrap img {
    transform: scale(1.05);
}


.cms-cc-edgrid__body {
    padding: clamp(16px, 2vw, 24px);
}


.cms-cc-edgrid__title {
    margin: 0 0 8px;
    color: var(--cms-cc-edgrid-text);
    font-family: var(--font-heading);
    font-size: 18px;
    font-weight: 700;
    line-height: 1.3;
    transition: color 0.3s ease;
}


.cms-cc-edgrid__card:hover .cms-cc-edgrid__title {
    color: var(--color-accent);
}


.cms-cc-edgrid__desc {
    margin: 0;
    color: var(--cms-cc-edgrid-muted);
    font-family: var(--font-body);
    font-size: 14px;
    line-height: 1.6;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}


/* ---------------------------------------------------------------------------
   Content Cards Carousel
   --------------------------------------------------------------------------- */
.cms-cc-car--light {
    --cms-cc-car-bg: var(--color-bg);
    --cms-cc-car-border: var(--color-border);
    --cms-cc-car-text: var(--color-text);
    --cms-cc-car-muted: var(--color-text-muted);
}


.cms-cc-car--dark {
    --cms-cc-car-bg: rgba(255,255,255,0.05);
    --cms-cc-car-border: rgba(255,255,255,0.08);
    --cms-cc-car-text: var(--color-dark-text);
    --cms-cc-car-muted: var(--color-dark-text-muted);
}


.cms-cc-car__card {
    display: block;
    height: 100%;
    overflow: hidden;
    box-sizing: border-box;
    border: 1px solid var(--cms-cc-car-border);
    border-radius: var(--radius-lg, 12px);
    background: var(--cms-cc-car-bg);
    text-decoration: none;
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}


.cms-cc-car__card:hover {
    transform: translateY(-4px);
    box-shadow: 0 8px 24px rgba(0,0,0,0.08);
}


.cms-cc-car__img-wrap {
    width: 100%;
    overflow: hidden;
    aspect-ratio: 3 / 4;
}


.cms-cc-car__img-wrap img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.5s ease;
}


.cms-cc-car__card:hover .cms-cc-car__img-wrap img {
    transform: scale(1.05);
}


.cms-cc-car__body {
    padding: clamp(12px, 1.5vw, 20px);
}


.cms-cc-car__title {
    margin: 0 0 6px;
    color: var(--cms-cc-car-text);
    font-family: var(--font-heading);
    font-size: 16px;
    font-weight: 700;
    line-height: 1.3;
    transition: color 0.3s ease;
}


.cms-cc-car__card:hover .cms-cc-car__title {
    color: var(--color-accent);
}


.cms-cc-car__desc {
    margin: 0;
    color: var(--cms-cc-car-muted);
    font-family: var(--font-body);
    font-size: 13px;
    line-height: 1.5;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}


/* ---------------------------------------------------------------------------
   Banner CTA Card
   --------------------------------------------------------------------------- */
.cms-bcta-card {
    position: relative;
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100%;
    padding: 80px 20px;
    background-color: var(--color-bg-alt);
    overflow: hidden;
}


.cms-bcta-card--bg-dark { --cms-bcta-card-surface: var(--color-dark-bg); }


.cms-bcta-card--bg-accent { --cms-bcta-card-surface: var(--color-accent); }


.cms-bcta-card--bg-accent2 { --cms-bcta-card-surface: var(--color-accent2); }


.cms-bcta-card--bg-accent3 { --cms-bcta-card-surface: var(--color-accent-soft, var(--color-accent)); }


.cms-bcta-card--bg-accent4 { --cms-bcta-card-surface: var(--color-accent2-soft, var(--color-accent2)); }


.cms-bcta-card--backdrop {
    background-color: var(--color-dark-bg);
}


.cms-bcta-card__backdrop-img,
.cms-bcta-card__inner-img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}


.cms-bcta-card__backdrop-img {
    opacity: .85;
}


.cms-bcta-card__inner {
    position: relative;
    overflow: hidden;
    width: 100%;
    max-width: 700px;
    padding: 48px 40px;
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-lg);
    background-color: var(--cms-bcta-card-surface, var(--color-dark-bg));
    text-align: center;
    transition: transform 0.3s ease;
}


.cms-bcta-card__inner--image {
    background-color: var(--color-dark-bg);
}


.cms-bcta-card__inner--image::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 1;
    background: rgba(0, 0, 0, 0.55);
}


.cms-bcta-card__inner--image > *:not(.cms-bcta-card__inner-img) {
    position: relative;
    z-index: 2;
}


.cms-bcta-card__inner:hover {
    transform: translateY(-4px);
}


.cms-bcta-card__title {
    margin: 0 0 12px;
    color: #fff;
    font-family: var(--font-heading);
    font-size: clamp(22px, 3vw, 32px);
    font-weight: 700;
    line-height: 1.25;
}


.cms-bcta-card__subtitle {
    max-width: 560px;
    margin: 0 auto 28px;
    color: rgba(255, 255, 255, 0.7);
    font-size: 1rem;
    line-height: 1.6;
}


.cms-bcta-card__actions {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    gap: 12px;
}


/* ---------------------------------------------------------------------------
   Banner CTA Minimal
   --------------------------------------------------------------------------- */
.cms-bcta-min {
    position: relative;
    overflow: hidden;
    width: 100%;
    padding: clamp(48px, 6vw, 80px) 24px;
    background: var(--cms-bcta-min-bg, var(--color-dark-bg));
}


.cms-bcta-min--bg-dark,
.cms-bcta-split--bg-dark .cms-bcta-split__text,
.cms-bcta-overlay--bg-dark,
.cms-bcta-imgbar--bg-dark .cms-bcta-imgbar__bar { --cms-bcta-min-bg: var(--color-dark-bg); background-color: var(--color-dark-bg); }


.cms-bcta-min--bg-accent,
.cms-bcta-split--bg-accent .cms-bcta-split__text,
.cms-bcta-overlay--bg-accent,
.cms-bcta-imgbar--bg-accent .cms-bcta-imgbar__bar { --cms-bcta-min-bg: var(--color-accent); background-color: var(--color-accent); }


.cms-bcta-min--bg-accent2,
.cms-bcta-split--bg-accent2 .cms-bcta-split__text,
.cms-bcta-overlay--bg-accent2,
.cms-bcta-imgbar--bg-accent2 .cms-bcta-imgbar__bar { --cms-bcta-min-bg: var(--color-accent2); background-color: var(--color-accent2); }


.cms-bcta-min--bg-accent3,
.cms-bcta-split--bg-accent3 .cms-bcta-split__text,
.cms-bcta-overlay--bg-accent3,
.cms-bcta-imgbar--bg-accent3 .cms-bcta-imgbar__bar { --cms-bcta-min-bg: var(--color-accent-soft, var(--color-accent)); background-color: var(--color-accent-soft, var(--color-accent)); }


.cms-bcta-min--bg-accent4,
.cms-bcta-split--bg-accent4 .cms-bcta-split__text,
.cms-bcta-overlay--bg-accent4,
.cms-bcta-imgbar--bg-accent4 .cms-bcta-imgbar__bar { --cms-bcta-min-bg: var(--color-accent2-soft, var(--color-accent2)); background-color: var(--color-accent2-soft, var(--color-accent2)); }


.cms-bcta-min__pattern {
    position: absolute;
    inset: 0;
    z-index: 0;
    pointer-events: none;
    opacity: 1;
    background-image: var(--cms-bcta-min-pattern-image);
    background-repeat: repeat;
}


.cms-bcta-min--pattern-dots .cms-bcta-min__pattern {
    background-image: radial-gradient(circle, rgba(255,255,255,.5) 1px, transparent 1.5px);
    background-size: 20px 20px;
}


.cms-bcta-min--pattern-grid .cms-bcta-min__pattern {
    background-image: linear-gradient(rgba(255,255,255,.18) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.18) 1px, transparent 1px);
    background-size: 40px 40px;
    opacity: .35;
}


.cms-bcta-min--pattern-diagonal .cms-bcta-min__pattern {
    background-image: repeating-linear-gradient(135deg, rgba(255,255,255,.18) 0 1px, transparent 1px 16px);
}


.cms-bcta-min--pattern-waves .cms-bcta-min__pattern {
    background-image: radial-gradient(ellipse at center, rgba(255,255,255,.24) 0 1px, transparent 1px);
    background-size: 80px 24px;
}


.cms-bcta-min__pattern--noise {
    opacity: 0.03;
    background-size: 256px 256px;
}


.cms-bcta-min__blob {
    position: absolute;
    z-index: 0;
    pointer-events: none;
    border-radius: 999px;
    background: var(--color-accent);
    filter: blur(clamp(40px, 7vw, 96px));
    opacity: 0.08;
}


.cms-bcta-min__blob--soft {
    background: rgba(255, 255, 255, 0.1);
}


.cms-bcta-min__blob--one {
    top: -15%;
    left: -5%;
    width: clamp(150px, 30vw, 350px);
    height: clamp(150px, 30vw, 350px);
}


.cms-bcta-min__blob--two {
    right: -8%;
    bottom: -20%;
    width: clamp(120px, 25vw, 300px);
    height: clamp(120px, 25vw, 300px);
    opacity: 0.06;
}


.cms-bcta-min__inner {
    position: relative;
    z-index: 1;
    max-width: var(--container);
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    text-align: left;
}


.cms-bcta-min--center .cms-bcta-min__inner {
    align-items: center;
    text-align: center;
}


.cms-bcta-min__title {
    max-width: 650px;
    margin: 0 0 14px;
    color: #fff;
    font-family: var(--font-heading);
    font-size: clamp(22px, 3.5vw, 36px);
    font-weight: 600;
    line-height: 1.2;
}


.cms-bcta-min__subtitle {
    max-width: 550px;
    margin: 0 0 28px;
    color: rgba(255, 255, 255, 0.75);
    font-family: var(--font-body);
    font-size: clamp(14px, 1.5vw, 17px);
    line-height: 1.6;
}


.cms-bcta-min__actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-start;
    gap: 12px;
}


.cms-bcta-min--center .cms-bcta-min__actions {
    justify-content: center;
}


/* ---------------------------------------------------------------------------
   Banner CTA Split
   --------------------------------------------------------------------------- */
.cms-bcta-split {
    display: flex;
    width: 100%;
    min-height: clamp(300px, 40vh, 450px);
    overflow: hidden;
}


.cms-bcta-split__text,
.cms-bcta-split__image {
    flex: 1 1 50%;
}


.cms-bcta-split__text {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: clamp(40px, 6vw, 80px) clamp(24px, 4vw, 60px);
    background: var(--cms-bcta-split-bg, var(--color-dark-bg));
}


.cms-bcta-split__content {
    width: 100%;
    max-width: 480px;
}


.cms-bcta-split__title {
    margin: 0 0 14px;
    color: #fff;
    font-family: var(--font-heading);
    font-size: clamp(22px, 3.5vw, 36px);
    font-weight: 600;
    line-height: 1.2;
}


.cms-bcta-split__subtitle {
    margin: 0 0 28px;
    color: rgba(255, 255, 255, 0.75);
    font-family: var(--font-body);
    font-size: clamp(14px, 1.5vw, 17px);
    line-height: 1.6;
}


.cms-bcta-split__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
}


.cms-bcta-split__image {
    min-height: 300px;
    overflow: hidden;
}


.cms-bcta-split__image-el,
.cms-bcta-overlay__bg-img,
.cms-bcta-imgbar__image-el {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}


/* ---------------------------------------------------------------------------
   Banner CTA Overlay
   --------------------------------------------------------------------------- */
.cms-bcta-overlay {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-height: clamp(300px, 45vh, 500px);
    overflow: hidden;
    background: var(--cms-bcta-overlay-bg, var(--color-dark-bg));
}


.cms-bcta-overlay__video,
.cms-bcta-overlay__bg,
.cms-bcta-overlay__scrim {
    position: absolute;
    inset: 0;
}


.cms-bcta-overlay__video {
    z-index: 1;
    overflow: hidden;
}


.cms-bcta-overlay__placeholder {
    position: absolute;
    inset: 0;
    background: rgba(12, 17, 24, 0.24);
}


.cms-bcta-overlay__video-el {
    position: absolute;
    top: 50%;
    left: 50%;
    width: auto;
    height: auto;
    min-width: 100%;
    min-height: 100%;
    object-fit: cover;
    transform: translate(-50%, -50%);
}


.cms-bcta-overlay__bg {
    z-index: 1;
    overflow: hidden;
}


.cms-bcta-overlay__bg--behind-video {
    z-index: 0;
}


.cms-bcta-overlay__scrim {
    z-index: 2;
    background: linear-gradient(to top, rgba(0, 0, 0, 0.65) 0%, rgba(0, 0, 0, 0.35) 50%, rgba(0, 0, 0, 0.25) 100%);
}


.cms-bcta-overlay__content {
    position: relative;
    z-index: 3;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    width: 100%;
    max-width: var(--container);
    padding: 60px 24px;
    text-align: left;
}


.cms-bcta-overlay--center .cms-bcta-overlay__content {
    align-items: center;
    text-align: center;
}


.cms-bcta-overlay__title {
    max-width: 700px;
    margin: 0 0 16px;
    color: #fff;
    font-family: var(--font-heading);
    font-size: clamp(24px, 4vw, 40px);
    font-weight: 600;
    line-height: 1.2;
}


.cms-bcta-overlay__subtitle {
    max-width: 600px;
    margin: 0 0 28px;
    color: rgba(255, 255, 255, 0.8);
    font-family: var(--font-body);
    font-size: clamp(15px, 1.8vw, 18px);
    line-height: 1.6;
}


.cms-bcta-overlay__actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-start;
    gap: 16px;
}


.cms-bcta-overlay--center .cms-bcta-overlay__actions {
    justify-content: center;
}


/* ---------------------------------------------------------------------------
   Banner CTA Image Bar
   --------------------------------------------------------------------------- */
.cms-bcta-imgbar {
    position: relative;
    overflow: hidden;
}


.cms-bcta-imgbar__image {
    width: 100%;
    height: clamp(250px, 50vh, 500px);
    overflow: hidden;
}


.cms-bcta-imgbar__bar {
    width: 100%;
    padding: 32px 0;
    background: var(--cms-bcta-imgbar-bg, var(--color-dark-bg));
}


.cms-bcta-imgbar__inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: clamp(20px, 3vw, 40px);
    max-width: var(--container);
    margin: 0 auto;
    padding: 0 24px;
}


.cms-bcta-imgbar__content {
    flex: 1 1 60%;
    min-width: 0;
}


.cms-bcta-imgbar__title {
    margin: 0;
    color: #fff;
    font-family: var(--font-heading);
    font-size: clamp(20px, 3vw, 32px);
    font-weight: 600;
    line-height: 1.25;
}


.cms-bcta-imgbar__subtitle {
    max-width: 500px;
    margin: 8px 0 0;
    color: rgba(255, 255, 255, 0.75);
    font-family: var(--font-body);
    font-size: clamp(14px, 1.5vw, 16px);
    line-height: 1.6;
}


.cms-bcta-imgbar__actions {
    display: flex;
    flex: 0 0 auto;
    flex-wrap: wrap;
    align-items: center;
    gap: 12px;
}


/* ---------------------------------------------------------------------------
   Newsletter Split Image
   --------------------------------------------------------------------------- */
.cms-nl-split {
    width: 100%;
    padding: 0 24px;
}


.cms-nl-split__inner {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: clamp(32px, 4vw, 64px);
    align-items: center;
    max-width: var(--container, 1200px);
    margin: 0 auto;
}


.cms-nl-split__title {
    margin: 0 0 8px;
    font-family: var(--font-heading);
    font-size: clamp(22px, 3vw, 30px);
    font-weight: 700;
    line-height: 1.3;
}


.cms-nl-split__subtitle {
    margin: 0 0 24px;
    font-family: var(--font-body);
    font-size: 16px;
    line-height: 1.6;
}


.cms-nl-split__form {
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin-bottom: 14px;
}


.cms-nl-split__row {
    display: flex;
    gap: 10px;
}


.cms-nl-split__input {
    flex: 1;
    padding: 14px 18px;
    border-radius: var(--radius-full, 50px);
    outline: none;
    transition: border-color 0.3s ease;
    font-family: var(--font-body);
    font-size: 15px;
}


.cms-nl-split__input:focus {
    border-color: var(--color-accent);
}


.cms-nl-split__btn {
    padding: 14px 28px;
    border: none;
    border-radius: var(--radius-full, 50px);
    background: var(--color-accent);
    color: #fff;
    cursor: pointer;
    white-space: nowrap;
    transition: background 0.3s ease;
    font-family: var(--font-body);
    font-size: 15px;
    font-weight: 600;
}


.cms-nl-split__btn:hover {
    background: var(--color-accent2);
}


.cms-nl-split__disclaimer,
.cms-nl-split .newsletter-msg {
    font-family: var(--font-body);
    font-size: 13px;
}


.cms-nl-split .newsletter-msg {
    display: none;
    margin-top: 8px;
}


.cms-nl-split--light .cms-nl-split__title { color: var(--color-text); }


.cms-nl-split--light .cms-nl-split__subtitle,
.cms-nl-split--light .cms-nl-split__disclaimer,
.cms-nl-split--light .cms-nl-split__input::placeholder { color: var(--color-text-muted); }


.cms-nl-split--light .cms-nl-split__input {
    color: var(--color-text);
    background: var(--color-bg);
    border: 1px solid var(--color-border);
}


.cms-nl-split--dark .cms-nl-split__title { color: var(--color-dark-text); }


.cms-nl-split--dark .cms-nl-split__subtitle,
.cms-nl-split--dark .cms-nl-split__disclaimer,
.cms-nl-split--dark .cms-nl-split__input::placeholder { color: var(--color-dark-text-muted); }


.cms-nl-split--dark .cms-nl-split__input {
    color: var(--color-dark-text);
    background: rgba(255, 255, 255, 0.08);
    border: 1px solid rgba(255, 255, 255, 0.15);
}


/* ---------------------------------------------------------------------------
   Stats Counter Animate
   --------------------------------------------------------------------------- */
.cms-stats-ca {
    width: 100%;
}


.cms-stats-ca__grid {
    display: grid;
    grid-template-columns: repeat(var(--cms-stats-ca-cols, 4), minmax(0, 1fr));
    gap: clamp(16px, 2vw, 24px);
    max-width: var(--container, 1200px);
    margin: 0 auto;
}


.cms-stats-ca--cols-1 { --cms-stats-ca-cols: 1; }


.cms-stats-ca--cols-2 { --cms-stats-ca-cols: 2; }


.cms-stats-ca--cols-3 { --cms-stats-ca-cols: 3; }


.cms-stats-ca--cols-4 { --cms-stats-ca-cols: 4; }


.cms-stats-ca__card {
    padding: clamp(24px, 3vw, 36px);
    border-radius: var(--radius-lg, 12px);
    text-align: center;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.04);
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}


.cms-stats-ca__card:hover {
    transform: translateY(-4px);
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08);
}


.cms-stats-ca__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 48px;
    height: 48px;
    margin: 0 auto 16px;
    border-radius: var(--radius, 8px);
    background: var(--color-accent);
    color: #fff;
    font-size: 24px;
    opacity: 0.9;
}


.cms-stats-ca__value {
    margin: 0 0 8px;
    color: var(--color-accent);
    font-family: var(--font-heading);
    font-size: clamp(28px, 4vw, 42px);
    font-weight: 700;
    line-height: 1.1;
}


.cms-stats-ca__label {
    margin: 0;
    font-family: var(--font-body);
    font-size: clamp(13px, 1.2vw, 15px);
    font-weight: 600;
}


.cms-stats-ca__desc {
    margin: 6px 0 0;
    font-family: var(--font-body);
    font-size: 12px;
    line-height: 1.4;
}


.cms-stats-ca--light .cms-stats-ca__card {
    background: var(--color-bg);
    border: 1px solid var(--color-border);
}


.cms-stats-ca--light .cms-stats-ca__label { color: var(--color-text); }


.cms-stats-ca--light .cms-stats-ca__desc { color: var(--color-text-muted); }


.cms-stats-ca--dark .cms-stats-ca__card {
    background: rgba(255, 255, 255, 0.05);
    border: 1px solid rgba(255, 255, 255, 0.08);
}


.cms-stats-ca--dark .cms-stats-ca__label { color: var(--color-dark-text); }


.cms-stats-ca--dark .cms-stats-ca__desc { color: var(--color-dark-text-muted); }


/* ---------------------------------------------------------------------------
   Stats Bento
   --------------------------------------------------------------------------- */
.cms-stats-bento__grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    grid-auto-rows: minmax(160px, auto);
    grid-auto-flow: dense;
    gap: clamp(12px, 1.5vw, 20px);
    max-width: var(--container, 1200px);
    margin: 0 auto;
}


.cms-stats-bento__card {
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: center;
    overflow: hidden;
    padding: clamp(24px, 3vw, 36px);
    border-radius: var(--radius-lg, 12px);
    transition: transform 0.3s ease, box-shadow 0.3s ease, border-color 0.3s ease;
}


.cms-stats-bento__card:hover {
    transform: translateY(-4px);
    box-shadow: var(--shadow-hover, 0 8px 30px rgba(0, 0, 0, 0.12));
}


.cms-stats-bento__card--col2 { grid-column: span 2; }


.cms-stats-bento__card--row2 { grid-row: span 2; }


.cms-stats-bento__card--accent { border-left: 3px solid var(--color-accent); }


.cms-stats-bento__card--stat { text-align: center; }


.cms-stats-bento__value {
    margin: 0 0 6px;
    color: var(--color-accent);
    font-family: var(--font-heading);
    font-size: clamp(28px, 4vw, 44px);
    font-weight: 700;
    line-height: 1.1;
}


.cms-stats-bento__label {
    margin: 0;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    font-family: var(--font-body);
    font-size: clamp(12px, 1.1vw, 14px);
    font-weight: 500;
}


.cms-stats-bento__desc {
    margin: 6px 0 0;
    font-family: var(--font-body);
    font-size: 13px;
    line-height: 1.5;
}


.cms-stats-bento__card--stat-accent {
    background: var(--color-accent) !important;
    border-color: transparent !important;
}


.cms-stats-bento__card--stat-accent .cms-stats-bento__value { color: #fff; }


.cms-stats-bento__card--stat-accent .cms-stats-bento__label { color: rgba(255, 255, 255, 0.8) !important; }


.cms-stats-bento__card--stat-accent .cms-stats-bento__desc { color: rgba(255, 255, 255, 0.7) !important; }


.cms-stats-bento__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    margin-bottom: 14px;
    border-radius: var(--radius, 8px);
    background: color-mix(in srgb, var(--color-accent) 12%, transparent);
    font-size: 20px;
    line-height: 1;
}


.cms-stats-bento__title {
    margin: 0 0 8px;
    font-family: var(--font-heading);
    font-size: clamp(16px, 1.5vw, 20px);
    font-weight: 600;
    line-height: 1.3;
}


.cms-stats-bento__text-desc {
    margin: 0;
    font-family: var(--font-body);
    font-size: 14px;
    line-height: 1.6;
}


.cms-stats-bento__card--image {
    min-height: 200px;
    padding: 0;
    background: transparent !important;
    border: none !important;
}


.cms-stats-bento__card--image .cms-img-deco,
.cms-stats-bento__card--image .bento__img-bare {
    position: absolute;
    inset: 0;
}


.cms-stats-bento__card--image .cms-img-deco img,
.cms-stats-bento__card--image .bento__img-bare img {
    border-radius: var(--radius-lg, 12px);
    transition: transform 0.5s ease;
}


.cms-stats-bento__card--image:hover img {
    transform: scale(1.05);
}


.cms-stats-bento__overlay {
    position: absolute;
    inset: 0;
    z-index: 2;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    padding: clamp(16px, 2vw, 28px);
    border-radius: var(--radius-lg, 12px);
    background: linear-gradient(180deg, transparent 40%, rgba(0, 0, 0, 0.7) 100%);
}


.cms-stats-bento__overlay .cms-stats-bento__title {
    margin-bottom: 4px;
    color: #fff;
}


.cms-stats-bento__overlay .cms-stats-bento__text-desc {
    color: rgba(255, 255, 255, 0.8) !important;
}


.cms-stats-bento__quote-mark {
    margin: 0 0 8px;
    color: var(--color-accent);
    opacity: 0.3;
    font-family: var(--font-heading);
    font-size: 48px;
    line-height: 1;
}


.cms-stats-bento__quote-text {
    margin: 0 0 12px;
    font-family: var(--font-body);
    font-size: clamp(14px, 1.3vw, 16px);
    font-style: italic;
    line-height: 1.6;
}


.cms-stats-bento__quote-author {
    margin: 0;
    font-family: var(--font-body);
    font-size: 13px;
    font-weight: 600;
}


.cms-stats-bento--light .cms-stats-bento__card {
    background: var(--color-bg);
    border: 1px solid var(--color-border);
}


.cms-stats-bento--light .cms-stats-bento__card:hover {
    border-color: color-mix(in srgb, var(--color-accent) 30%, transparent);
}


.cms-stats-bento--light .cms-stats-bento__title,
.cms-stats-bento--light .cms-stats-bento__quote-text { color: var(--color-text); }


.cms-stats-bento--light .cms-stats-bento__label,
.cms-stats-bento--light .cms-stats-bento__desc,
.cms-stats-bento--light .cms-stats-bento__text-desc,
.cms-stats-bento--light .cms-stats-bento__quote-author { color: var(--color-text-muted); }


.cms-stats-bento--dark .cms-stats-bento__card {
    background: rgba(255, 255, 255, 0.05);
    border: 1px solid rgba(255, 255, 255, 0.08);
}


.cms-stats-bento--dark .cms-stats-bento__card:hover {
    border-color: rgba(255, 255, 255, 0.15);
}


.cms-stats-bento--dark .cms-stats-bento__title,
.cms-stats-bento--dark .cms-stats-bento__quote-text { color: var(--color-dark-text); }


.cms-stats-bento--dark .cms-stats-bento__label,
.cms-stats-bento--dark .cms-stats-bento__desc,
.cms-stats-bento--dark .cms-stats-bento__text-desc,
.cms-stats-bento--dark .cms-stats-bento__quote-author { color: var(--color-dark-text-muted); }


/* ---------------------------------------------------------------------------
   Footer Minimal
   --------------------------------------------------------------------------- */
.cms-ftr-min {
    border-top: 1px solid var(--cms-ftr-min-border);
    background: var(--cms-ftr-min-bg);
    color: var(--cms-ftr-min-text);
    font-family: var(--font-body);
}


.cms-ftr-min--light {
    --cms-ftr-min-bg: var(--color-bg);
    --cms-ftr-min-text: var(--color-text);
    --cms-ftr-min-muted: var(--color-text-muted);
    --cms-ftr-min-border: var(--color-border);
}


.cms-ftr-min--dark {
    --cms-ftr-min-bg: var(--color-dark-bg);
    --cms-ftr-min-text: var(--color-dark-text);
    --cms-ftr-min-muted: var(--color-dark-text-muted);
    --cms-ftr-min-border: rgba(255,255,255,0.08);
}


.cms-ftr-min__row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 24px;
    max-width: var(--container);
    margin: 0 auto;
    padding: 24px;
}


.cms-ftr-min__brand,
.cms-ftr-min__legal,
.cms-ftr-min__social {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 16px;
}


.cms-ftr-min__logo { height: 43px; width: auto; }


.cms-ftr-min__brand-text { font-family: var(--font-heading); font-size: 16px; font-weight: 700; }


.cms-ftr-min__copyright,
.cms-ftr-min__link,
.cms-ftr-min__social-link {
    color: var(--cms-ftr-min-muted);
    text-decoration: none;
    transition: color 0.2s, border-color 0.2s;
}


.cms-ftr-min__copyright,
.cms-ftr-min__link { font-size: 13px; }


.cms-ftr-min__link:hover,
.cms-ftr-min__social-link:hover { color: var(--color-accent); }


.cms-ftr-min__social-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    border-radius: var(--radius-full);
}


/* ---------------------------------------------------------------------------
   Footer Centered
   --------------------------------------------------------------------------- */
.cms-ftr-ctr {
    padding: 64px 24px 32px;
    font-family: var(--font-body);
    text-align: center;
    background: var(--cms-ftr-ctr-bg);
    color: var(--cms-ftr-ctr-text);
}


.cms-ftr-ctr--light {
    --cms-ftr-ctr-bg: var(--color-bg);
    --cms-ftr-ctr-text: var(--color-text);
    --cms-ftr-ctr-muted: var(--color-text-muted);
    --cms-ftr-ctr-border: var(--color-border);
}


.cms-ftr-ctr--dark {
    --cms-ftr-ctr-bg: var(--color-dark-bg);
    --cms-ftr-ctr-text: var(--color-dark-text);
    --cms-ftr-ctr-muted: var(--color-dark-text-muted);
    --cms-ftr-ctr-border: rgba(255,255,255,0.08);
}


.cms-ftr-ctr__inner { max-width: 640px; margin: 0 auto; }


.cms-ftr-ctr__logo { height: 43px; width: auto; margin-bottom: 20px; }


.cms-ftr-ctr__brand { margin-bottom: 20px; font-family: var(--font-heading); font-size: 24px; font-weight: 700; }


.cms-ftr-ctr__desc { margin: 0 0 32px; color: var(--cms-ftr-ctr-muted); font-size: 15px; line-height: 1.7; }


.cms-ftr-ctr__nav,
.cms-ftr-ctr__social,
.cms-ftr-ctr__legal {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
}


.cms-ftr-ctr__nav { gap: 8px 24px; margin-bottom: 32px; }


.cms-ftr-ctr__social { gap: 12px; margin-bottom: 32px; }


.cms-ftr-ctr__legal { gap: 20px; margin-bottom: 12px; }


.cms-ftr-ctr__nav-link,
.cms-ftr-ctr__legal-link {
    color: inherit;
    text-decoration: none;
    transition: color 0.2s;
}


.cms-ftr-ctr__nav-link { font-size: 14px; font-weight: 500; }


.cms-ftr-ctr__legal-link,
.cms-ftr-ctr__copyright { font-size: 13px; color: var(--cms-ftr-ctr-muted); }


.cms-ftr-ctr__nav-link:hover,
.cms-ftr-ctr__legal-link:hover,
.cms-ftr-ctr__social-link:hover { color: var(--color-accent); border-color: var(--color-accent); }


.cms-ftr-ctr__social-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    border-radius: var(--radius-full);
    border: 1px solid var(--cms-ftr-ctr-border);
    color: var(--cms-ftr-ctr-muted);
    text-decoration: none;
    transition: color 0.2s, border-color 0.2s;
}


.cms-ftr-ctr__divider { border-top: 1px solid var(--cms-ftr-ctr-border); margin-bottom: 24px; }


/* ---------------------------------------------------------------------------
   Footer Columns 3
   --------------------------------------------------------------------------- */
.cms-ftr-col3 {
    padding-top: 56px;
    font-family: var(--font-body);
    background: var(--cms-ftr-col3-bg);
    color: var(--cms-ftr-col3-text);
}


.cms-ftr-col3--light {
    --cms-ftr-col3-bg: var(--color-bg);
    --cms-ftr-col3-text: var(--color-text);
    --cms-ftr-col3-muted: var(--color-text-muted);
    --cms-ftr-col3-border: var(--color-border);
}


.cms-ftr-col3--dark {
    --cms-ftr-col3-bg: var(--color-dark-bg);
    --cms-ftr-col3-text: var(--color-dark-text);
    --cms-ftr-col3-muted: var(--color-dark-text-muted);
    --cms-ftr-col3-border: rgba(255,255,255,0.08);
}


.cms-ftr-col3__grid {
    display: grid;
    grid-template-columns: 1.2fr 1fr 1fr;
    gap: 40px;
    max-width: var(--container);
    margin: 0 auto;
    padding: 0 24px 40px;
}


.cms-ftr-col3__logo { height: 43px; width: auto; margin-bottom: 14px; }


.cms-ftr-col3__brand-text { margin-bottom: 14px; font-family: var(--font-heading); font-size: 20px; font-weight: 700; }


.cms-ftr-col3__desc { margin: 0; color: var(--cms-ftr-col3-muted); font-size: 14px; line-height: 1.7; }


.cms-ftr-col3__heading {
    margin: 0 0 20px;
    color: var(--cms-ftr-col3-text);
    font-family: var(--font-heading);
    font-size: 14px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 1px;
}


.cms-ftr-col3__list { list-style: none; margin: 0; padding: 0; }


.cms-ftr-col3__item { margin-bottom: 10px; }


.cms-ftr-col3__link,
.cms-ftr-col3__text,
.cms-ftr-col3__legal-link,
.cms-ftr-col3__copyright {
    color: var(--cms-ftr-col3-muted);
    font-size: 14px;
    text-decoration: none;
    transition: color 0.2s, border-color 0.2s;
}


.cms-ftr-col3__text { line-height: 1.6; }


.cms-ftr-col3__legal-link,
.cms-ftr-col3__copyright { font-size: 13px; }


.cms-ftr-col3__link:hover,
.cms-ftr-col3__legal-link:hover,
.cms-ftr-col3__social-link:hover { color: var(--color-accent); border-color: var(--color-accent); }


.cms-ftr-col3__social {
    display: flex;
    gap: 10px;
    margin-top: 20px;
}


.cms-ftr-col3__social-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    border-radius: var(--radius-full);
    border: 1px solid var(--cms-ftr-col3-border);
    color: var(--cms-ftr-col3-muted);
    text-decoration: none;
    transition: color 0.2s, border-color 0.2s;
}


.cms-ftr-col3__divider-wrap { max-width: var(--container); margin: 0 auto; padding: 0 24px; }


.cms-ftr-col3__divider { border-top: 1px solid var(--cms-ftr-col3-border); }


.cms-ftr-col3__bottom { max-width: var(--container); margin: 0 auto; padding: 24px; text-align: center; }


.cms-ftr-col3__legal { display: flex; justify-content: center; gap: 24px; flex-wrap: wrap; margin-bottom: 12px; }


/* ---------------------------------------------------------------------------
   Header Minimal
   --------------------------------------------------------------------------- */
.cms-hdr-min {
    z-index: 50;
    background: var(--cms-hdr-min-bg, var(--color-bg));
    color: var(--cms-hdr-min-text, var(--color-text));
    transition: background 0.3s, box-shadow 0.3s, border-color 0.3s;
    border-bottom: var(--cms-hdr-min-border, transparent);
}


.cms-hdr-min--light {
    --cms-hdr-min-bg: var(--color-bg);
    --cms-hdr-min-text: var(--color-text);
    --cms-hdr-min-link: var(--color-text-muted);
    --cms-hdr-min-border: 1px solid var(--color-border);
}


.cms-hdr-min--dark {
    --cms-hdr-min-bg: var(--color-dark-bg);
    --cms-hdr-min-text: #fff;
    --cms-hdr-min-link: rgba(255,255,255,.7);
    --cms-hdr-min-border: 1px solid rgba(255,255,255,.08);
}


.cms-hdr-min--transparent {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    --cms-hdr-min-bg: transparent;
    --cms-hdr-min-text: #fff;
    --cms-hdr-min-link: rgba(255,255,255,.85);
    --cms-hdr-min-border: transparent;
}


.cms-hdr-min--shell {
    border-radius: inherit;
    background: inherit;
    border: inherit;
    box-shadow: inherit;
}


.cms-hdr-min--contained {
    width: calc(100% - 32px);
    max-width: var(--container);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-lg);
    border: none;
}


.cms-hdr-min--contained.cms-hdr-min--transparent,
.cms-hdr-min--contained.cms-hdr-min--light,
.cms-hdr-min--contained.cms-hdr-min--dark {
    left: 50%;
    transform: translateX(-50%);
}


.cms-hdr-min--bottom {
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
}


.cms-hdr-min--bottom.cms-hdr-min--contained {
    bottom: 12px;
    left: 50%;
    right: auto;
    transform: translateX(-50%);
}


.cms-hdr-min__inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    max-width: var(--container);
    height: 60px;
    margin: 0 auto;
    padding: 0 24px;
}


.cms-hdr-min__inner--full {
    max-width: 100%;
}


.cms-hdr-min__logo {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    color: inherit;
    text-decoration: none;
}


.cms-hdr-min__logo-img {
    width: auto;
    height: 43px;
}


.cms-hdr-min__logo-mark {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    border-radius: 6px;
    background: var(--color-accent);
    color: #fff;
    font-family: var(--font-body);
    font-size: 13px;
    font-weight: 700;
}


.cms-hdr-min__logo-text {
    font-family: var(--font-heading);
    font-size: 1.1rem;
    font-weight: 700;
}


.cms-hdr-min__burger {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    border: none;
    background: none;
    cursor: pointer;
    color: inherit;
    font-family: var(--font-body);
    font-size: 13px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 1.5px;
}


/* ---------------------------------------------------------------------------
   Header Minimal Split Overlays
   --------------------------------------------------------------------------- */
.cms-hdr-min-split {
    position: fixed;
    inset: 0;
    z-index: 9980;
    overflow-x: hidden;
    overflow-y: auto;
    background: rgba(15, 15, 20, 0.97);
}


.cms-hdr-min-split__close {
    position: absolute;
    top: 20px;
    right: 24px;
    z-index: 9981;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 48px;
    height: 48px;
    border: none;
    background: none;
    color: rgba(255,255,255,0.7);
    cursor: pointer;
    transition: color 0.2s;
}


.cms-hdr-min-split__close:hover {
    color: #fff;
}


.cms-hdr-min-split__layout {
    display: flex;
    width: 100%;
    min-height: 100%;
    overflow-x: hidden;
}


.cms-hdr-min-split__layout--2col {
    align-items: center;
}


.cms-hdr-min-split__layout--3col {
    align-items: stretch;
}


.cms-hdr-min-split__image-col {
    width: 25%;
    overflow: hidden;
}


.cms-hdr-min-split__image {
    width: 100%;
    height: 100%;
    object-fit: cover;
    opacity: 0.7;
}


.cms-hdr-min-split__nav-col {
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 60px 48px;
}


.cms-hdr-min-split__nav-col--wide {
    width: 55%;
    min-width: 0;
    box-sizing: border-box;
    padding-left: 64px;
}


.cms-hdr-min-split__layout--3col .cms-hdr-min-split__nav-col {
    width: 40%;
}


.cms-hdr-min-split__meta-col {
    width: 35%;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: flex-start;
    gap: 32px;
    padding: 60px 48px;
    border-left: 1px solid rgba(255,255,255,0.06);
}


.cms-hdr-min-split__meta-col--narrow {
    width: 45%;
    min-width: 0;
    box-sizing: border-box;
}


.cms-hdr-min-split__nav {
    display: flex;
    flex-direction: column;
    gap: 16px;
}


.cms-hdr-min-split__toggle,
.cms-hdr-min-split__link {
    display: inline-flex;
    align-items: center;
    gap: 14px;
    padding: 0;
    border: none;
    background: none;
    color: rgba(255,255,255,0.85);
    cursor: pointer;
    text-align: left;
    text-decoration: none;
    transition: color 0.2s;
    font-family: var(--font-heading);
    font-size: clamp(24px, 4vw, 40px);
    font-weight: 500;
    line-height: 1.3;
}


.cms-hdr-min-split__toggle:hover,
.cms-hdr-min-split__link:hover,
.cms-hdr-min-split__toggle.is-active,
.cms-hdr-min-split__link.is-active {
    color: var(--color-accent);
}


.cms-hdr-min-split__chevron {
    transition: transform 0.3s;
}


.cms-hdr-min-split__chevron.is-open {
    transform: rotate(180deg);
}


.cms-hdr-min-split__children {
    padding: 8px 0 0 8px;
}


.cms-hdr-min-split__child-link {
    display: block;
    padding: 6px 0;
    color: rgba(255,255,255,0.4);
    text-decoration: none;
    transition: color 0.2s;
    font-family: var(--font-body);
    font-size: 16px;
}


.cms-hdr-min-split__child-link:hover {
    color: var(--color-accent);
}


.cms-hdr-min-split__brand-logo {
    width: auto;
    max-width: 100%;
    height: 48px;
    opacity: 0.9;
}


.cms-hdr-min-split__brand-fallback {
    display: flex;
    align-items: center;
    gap: 14px;
}


.cms-hdr-min-split__brand-mark {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    border-radius: 10px;
    background: var(--color-accent);
    color: #fff;
    font-family: var(--font-body);
    font-size: 20px;
    font-weight: 700;
}


.cms-hdr-min-split__brand-name {
    color: rgba(255,255,255,0.9);
    font-family: var(--font-heading);
    font-size: 1.6rem;
    font-weight: 700;
}


.cms-hdr-min-split__meta-links {
    display: flex;
    flex-direction: column;
    gap: 12px;
    font-family: var(--font-body);
    font-size: 14px;
}


.cms-hdr-min-split__meta-link {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    max-width: 100%;
    overflow-wrap: anywhere;
    color: rgba(255,255,255,0.5);
    text-decoration: none;
    transition: color 0.2s;
}


.cms-hdr-min-split__meta-link:hover {
    color: var(--color-accent);
}


.cms-hdr-min-split__cta {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: fit-content;
    padding: 14px 36px;
    border-radius: var(--radius-full);
    background: var(--color-accent);
    color: #fff;
    text-decoration: none;
    transition: opacity 0.2s;
    font-family: var(--font-body);
    font-size: 15px;
    font-weight: 600;
}


.cms-hdr-min-split__cta:hover {
    opacity: 0.85;
}


/* ---------------------------------------------------------------------------
   Footer Columns 4
   --------------------------------------------------------------------------- */
.cms-ftr-col4 {
    padding-top: 64px;
    overflow-x: hidden;
    font-family: var(--font-body);
    background: var(--cms-ftr-col4-bg);
    color: var(--cms-ftr-col4-text);
}


.cms-ftr-col4--light {
    --cms-ftr-col4-bg: var(--color-bg);
    --cms-ftr-col4-text: var(--color-text);
    --cms-ftr-col4-muted: var(--color-text-muted);
    --cms-ftr-col4-border: var(--color-border);
}


.cms-ftr-col4--dark {
    --cms-ftr-col4-bg: var(--color-dark-bg);
    --cms-ftr-col4-text: var(--color-dark-text);
    --cms-ftr-col4-muted: var(--color-dark-text-muted);
    --cms-ftr-col4-border: rgba(255,255,255,0.08);
}


.cms-ftr-col4__grid {
    display: grid;
    grid-template-columns: 1.5fr 1fr 1fr 1fr;
    gap: 48px;
    width: 100%;
    max-width: var(--container);
    margin: 0 auto;
    padding: 0 24px 48px;
    box-sizing: border-box;
}


.cms-ftr-col4__logo { height: 43px; width: auto; max-width: 100%; margin-bottom: 16px; }


.cms-ftr-col4__brand-text { margin-bottom: 16px; font-family: var(--font-heading); font-size: 22px; font-weight: 700; }


.cms-ftr-col4__desc { margin: 0 0 24px; color: var(--cms-ftr-col4-muted); font-size: 14px; line-height: 1.7; }


.cms-ftr-col4__social { display: flex; gap: 12px; }


.cms-ftr-col4__social-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    border-radius: var(--radius-full);
    border: 1px solid var(--cms-ftr-col4-border);
    color: var(--cms-ftr-col4-muted);
    text-decoration: none;
    transition: color 0.2s, border-color 0.2s;
}


.cms-ftr-col4__social-link:hover,
.cms-ftr-col4__link:hover,
.cms-ftr-col4__legal-link:hover { color: var(--color-accent); border-color: var(--color-accent); }


.cms-ftr-col4__heading {
    margin: 0 0 20px;
    color: var(--cms-ftr-col4-text);
    font-family: var(--font-heading);
    font-size: 14px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 1px;
}


.cms-ftr-col4__list { list-style: none; margin: 0; padding: 0; }


.cms-ftr-col4__item { margin-bottom: 12px; }


.cms-ftr-col4__link,
.cms-ftr-col4__text,
.cms-ftr-col4__legal-link,
.cms-ftr-col4__copyright {
    color: var(--cms-ftr-col4-muted);
    font-size: 14px;
    text-decoration: none;
    transition: color 0.2s, border-color 0.2s;
}


.cms-ftr-col4__link--break { overflow-wrap: anywhere; }


.cms-ftr-col4__text { line-height: 1.6; }


.cms-ftr-col4__legal-link,
.cms-ftr-col4__copyright { font-size: 13px; }


.cms-ftr-col4__divider-wrap {
    width: 100%;
    max-width: var(--container);
    margin: 0 auto;
    padding: 0 24px;
    box-sizing: border-box;
}


.cms-ftr-col4__divider { border-top: 1px solid var(--cms-ftr-col4-border); }


.cms-ftr-col4__bottom {
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: 16px;
    width: 100%;
    max-width: var(--container);
    margin: 0 auto;
    padding: 24px;
    box-sizing: border-box;
}


.cms-ftr-col4__legal { display: flex; gap: 24px; flex-wrap: wrap; }


@media (max-width: 767px) {
    .cms-header-topbar { display: none !important; }}


@media (max-width: 1100px) {
    .cms-header-std__nav { display: none; }
    .cms-header-std__burger { display: inline-flex; }}


@media (max-width: 1024px) {
    .cms-fg-imgtop__grid { grid-template-columns: repeat(2, 1fr); }}


@media (max-width: 900px) {
    .cms-cs-grid__wrap { grid-template-columns: repeat(2, 1fr); }
    .cms-cb--layout-4-col .cms-cb__grid,
    .cms-cb--layout-dashboard .cms-cb__grid,
    .cms-cb--layout-balanced-5 .cms-cb__grid,
    .cms-cb--layout-editorial-band .cms-cb__grid,
    .cms-cb--layout-offset-showcase .cms-cb__grid,
    .cms-cb--layout-featured-left .cms-cb__grid,
    .cms-cb--layout-featured-right .cms-cb__grid,
    .cms-cb--layout-mosaic-wide .cms-cb__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        grid-template-areas: none !important;
    }}


@media (max-width: 600px) {
    .cms-cs-grid__wrap { grid-template-columns: 1fr; max-width: 480px; }
    .cms-cc-edgrid__grid { grid-template-columns: 1fr; max-width: 400px; }
    .cms-nl-inline__inner { align-items: stretch; }
    .cms-nl-inline__input { flex-basis: 100%; max-width: 100%; }
    .cms-nl-inline__btn { width: 100%; justify-content: center; }
    .cms-stats-cg__grid { grid-template-columns: 1fr; }
    .cms-stats-ca__grid { grid-template-columns: 1fr; }
    .cms-stats-bento__grid { grid-template-columns: 1fr; }
    .cms-stats-bento__card--col2 { grid-column: span 1; }
    .cms-ftr-min__row { flex-direction: column; text-align: center; }
    .cms-ftr-col3__grid { grid-template-columns: 1fr; gap: 28px; }
    .cms-hdr-min { top: 0 !important; left: 0 !important; right: 0 !important; width: 100% !important; max-width: 100% !important; transform: none !important; border-radius: 0 !important; }
    .cms-hdr-min__inner { height: 54px; padding: 0 18px; }
    .cms-hdr-min__logo-img { max-height: 34px; width: auto; }
    .cms-hdr-min__burger { gap: 8px; font-size: 12px; letter-spacing: 1.2px; }
    .cms-hdr-min-split__nav-col--wide,
    .cms-hdr-min-split__layout--3col .cms-hdr-min-split__nav-col { width: 100%; box-sizing: border-box; padding: 80px 24px 40px; }
    .cms-hdr-min-split__meta-col,
    .cms-hdr-min-split__image-col { display: none; }
    .cms-ftr-col4__grid { grid-template-columns: 1fr; gap: 32px; padding: 0 18px 40px; }
    .cms-ftr-col4__bottom { flex-direction: column; text-align: center; padding: 24px 18px; }
    .cms-cb__grid {
        grid-template-columns: 1fr;
    }}


/* Comparison */
.cms-cmp-cl {
    --cms-cmp-cl-template: 1.5fr minmax(0, 1fr) minmax(0, 1fr);
    --cms-cmp-cl-text: var(--color-text);
    --cms-cmp-cl-muted: var(--color-text-muted);
    --cms-cmp-cl-row-bg: var(--color-bg-alt, #f9fafb);
    --cms-cmp-cl-row-hover: rgba(0,0,0,0.02);
    --cms-cmp-cl-card-bg: var(--color-bg);
    --cms-cmp-cl-border: var(--color-border);
    --cms-cmp-cl-hl-bg: color-mix(in srgb, var(--color-accent) 8%, var(--color-bg));
    --cms-cmp-cl-hl-border: color-mix(in srgb, var(--color-accent) 30%, transparent);
    --cms-cmp-cl-hl-cell-bg: color-mix(in srgb, var(--color-accent) 4%, transparent);
}


.cms-cmp-cl--cols-1 { --cms-cmp-cl-template: 1.5fr minmax(0,1fr); }


.cms-cmp-cl--cols-2 { --cms-cmp-cl-template: 1.5fr minmax(0,1fr) minmax(0,1fr); }


.cms-cmp-cl--cols-3 { --cms-cmp-cl-template: 1.5fr minmax(0,1fr) minmax(0,1fr) minmax(0,1fr); }


.cms-cmp-cl--cols-4 { --cms-cmp-cl-template: 1.5fr minmax(0,1fr) minmax(0,1fr) minmax(0,1fr) minmax(0,1fr); }


.cms-cmp-cl--dark {
    --cms-cmp-cl-text: var(--color-dark-text);
    --cms-cmp-cl-muted: var(--color-dark-text-muted);
    --cms-cmp-cl-row-bg: rgba(255,255,255,0.03);
    --cms-cmp-cl-row-hover: rgba(255,255,255,0.06);
    --cms-cmp-cl-card-bg: rgba(255,255,255,0.05);
    --cms-cmp-cl-border: rgba(255,255,255,0.08);
    --cms-cmp-cl-hl-bg: rgba(255,255,255,0.08);
}


.cms-cmp-cl__wrap {
    max-width: var(--container, 1200px);
    margin: 0 auto;
    padding: 0 20px;
}


.cms-cmp-cl__header,
.cms-cmp-cl__row {
    display: grid;
    grid-template-columns: var(--cms-cmp-cl-template);
    gap: 0;
}


.cms-cmp-cl__header {
    margin-bottom: 4px;
}


.cms-cmp-cl__header-label {
    padding: 16px;
}


.cms-cmp-cl__header-option {
    margin: 0 2px;
    padding: 20px 16px;
    text-align: center;
    background: var(--cms-cmp-cl-card-bg);
    border: 1px solid var(--cms-cmp-cl-border);
    border-radius: var(--radius, 8px) var(--radius, 8px) 0 0;
}


.cms-cmp-cl__header-option--hl {
    background: var(--cms-cmp-cl-hl-bg);
    border-color: var(--cms-cmp-cl-hl-border);
    border-bottom: 2px solid var(--color-accent);
}


.cms-cmp-cl__option-title {
    margin: 0;
    color: var(--cms-cmp-cl-text);
    font-family: var(--font-heading);
    font-size: clamp(16px, 1.5vw, 20px);
    font-weight: 700;
}


.cms-cmp-cl__option-badge {
    display: inline-block;
    margin-bottom: 8px;
    padding: 2px 10px;
    border-radius: var(--radius-full, 50px);
    background: var(--color-accent);
    color: #fff;
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
}


.cms-cmp-cl__row {
    border-bottom: 1px solid var(--cms-cmp-cl-border);
    transition: background 0.2s ease;
}


.cms-cmp-cl__row:nth-child(even) {
    background: var(--cms-cmp-cl-row-bg);
}


.cms-cmp-cl__row:hover {
    background: var(--cms-cmp-cl-row-hover);
}


.cms-cmp-cl__feature,
.cms-cmp-cl__cell {
    padding: 14px 16px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--cms-cmp-cl-text);
    font-family: var(--font-body);
    font-size: 14px;
}


.cms-cmp-cl__feature {
    justify-content: flex-start;
    font-weight: 500;
}


.cms-cmp-cl__cell--hl {
    background: var(--cms-cmp-cl-hl-cell-bg);
}


.cms-cmp-cl__check {
    color: var(--color-accent);
    font-size: 18px;
    font-weight: 700;
}


.cms-cmp-cl__cross {
    color: var(--cms-cmp-cl-muted);
    opacity: 0.4;
    font-size: 18px;
}


.cms-cmp-ca {
    --cms-cmp-ca-columns: 2;
    --cms-cmp-ca-text: var(--color-text);
    --cms-cmp-ca-muted: var(--color-text-muted);
    --cms-cmp-ca-card-bg: var(--color-bg);
    --cms-cmp-ca-border: var(--color-border);
}


.cms-cmp-ca--cols-1 { --cms-cmp-ca-columns: 1; }


.cms-cmp-ca--cols-2 { --cms-cmp-ca-columns: 2; }


.cms-cmp-ca--cols-3 { --cms-cmp-ca-columns: 3; }


.cms-cmp-ca--dark {
    --cms-cmp-ca-text: var(--color-dark-text);
    --cms-cmp-ca-muted: var(--color-dark-text-muted);
    --cms-cmp-ca-card-bg: rgba(255,255,255,0.05);
    --cms-cmp-ca-border: rgba(255,255,255,0.08);
}


.cms-cmp-ca__grid {
    display: grid;
    grid-template-columns: repeat(var(--cms-cmp-ca-columns), minmax(0, 1fr));
    gap: 24px;
    max-width: var(--container, 1200px);
    margin: 0 auto;
    padding: 0 20px;
    align-items: start;
}


.cms-cmp-ca__card {
    --cms-cmp-ca-accent: var(--color-accent);
    padding: clamp(24px, 3vw, 36px);
    border: 1px solid var(--cms-cmp-ca-border);
    border-left: 5px solid var(--cms-cmp-ca-accent);
    border-radius: var(--radius-lg, 12px);
    background: var(--cms-cmp-ca-card-bg);
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}


.cms-cmp-ca__card--accent-2 { --cms-cmp-ca-accent: var(--color-accent2, #6c5ce7); }


.cms-cmp-ca__card--accent-3 { --cms-cmp-ca-accent: var(--color-accent3, var(--color-accent)); }


.cms-cmp-ca__card:hover {
    transform: translateY(-4px);
    box-shadow: var(--shadow-hover, 0 8px 24px rgba(0,0,0,0.1));
}


.cms-cmp-ca__title {
    margin: 0 0 10px;
    color: var(--cms-cmp-ca-text);
    font-family: var(--font-heading);
    font-size: clamp(18px, 2vw, 22px);
    font-weight: 700;
    line-height: 1.3;
}


.cms-cmp-ca__desc {
    margin: 0 0 16px;
    color: var(--cms-cmp-ca-muted);
    font-family: var(--font-body);
    font-size: 15px;
    line-height: 1.7;
}


.cms-cmp-ca__list {
    list-style: none;
    padding: 0;
    margin: 0;
}


.cms-cmp-ca__list li {
    position: relative;
    padding: 5px 0 5px 22px;
    color: var(--cms-cmp-ca-text);
    font-family: var(--font-body);
    font-size: 14px;
    line-height: 1.5;
}


.cms-cmp-ca__list li::before {
    content: '';
    position: absolute;
    left: 0;
    top: 11px;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--cms-cmp-ca-accent);
    opacity: 0.7;
}


.cms-cmp-ca__badge {
    display: inline-block;
    margin-bottom: 12px;
    padding: 4px 12px;
    border-radius: var(--radius-sm, 4px);
    color: var(--cms-cmp-ca-accent);
    background: color-mix(in srgb, var(--cms-cmp-ca-accent) 10%, transparent);
    font-size: 0.7rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
}


.cms-cmp-tbl {
    --cms-cmp-tbl-text: var(--color-text);
    --cms-cmp-tbl-muted: var(--color-text-muted);
    --cms-cmp-tbl-bg: var(--color-bg);
    --cms-cmp-tbl-header-bg: var(--color-bg-alt, #f8f9fa);
    --cms-cmp-tbl-border: var(--color-border);
    --cms-cmp-tbl-hl-bg: color-mix(in srgb, var(--color-accent) 4%, transparent);
    --cms-cmp-tbl-check: var(--color-accent);
    --cms-cmp-tbl-cross: var(--color-text-muted);
    --cms-cmp-tbl-hover: rgba(0,0,0,0.015);
    --cms-cmp-tbl-hover-hl: color-mix(in srgb, var(--color-accent) 7%, transparent);
    --cms-cmp-tbl-min-width: 620px;
}


.cms-cmp-tbl--cols-1 { --cms-cmp-tbl-min-width: 340px; }


.cms-cmp-tbl--cols-2 { --cms-cmp-tbl-min-width: 480px; }


.cms-cmp-tbl--cols-3 { --cms-cmp-tbl-min-width: 620px; }


.cms-cmp-tbl--cols-4 { --cms-cmp-tbl-min-width: 760px; }


.cms-cmp-tbl--cols-5 { --cms-cmp-tbl-min-width: 900px; }


.cms-cmp-tbl--dark {
    --cms-cmp-tbl-text: var(--color-dark-text);
    --cms-cmp-tbl-muted: var(--color-dark-text-muted);
    --cms-cmp-tbl-bg: rgba(255,255,255,0.03);
    --cms-cmp-tbl-header-bg: rgba(255,255,255,0.06);
    --cms-cmp-tbl-border: rgba(255,255,255,0.08);
    --cms-cmp-tbl-hl-bg: rgba(255,255,255,0.05);
    --cms-cmp-tbl-cross: rgba(255,255,255,0.25);
    --cms-cmp-tbl-hover: rgba(255,255,255,0.03);
    --cms-cmp-tbl-hover-hl: rgba(255,255,255,0.07);
}


.cms-cmp-tbl__wrap {
    max-width: var(--container, 1200px);
    margin: 0 auto;
    padding: 0 20px;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}


.cms-cmp-tbl__table {
    width: 100%;
    min-width: var(--cms-cmp-tbl-min-width);
    border-collapse: separate;
    border-spacing: 0;
    overflow: hidden;
    border: 1px solid var(--cms-cmp-tbl-border);
    border-radius: var(--radius-lg, 12px);
    background: var(--cms-cmp-tbl-bg);
    font-family: var(--font-body);
    font-size: 14px;
}


.cms-cmp-tbl__table thead th {
    padding: 18px 16px;
    background: var(--cms-cmp-tbl-header-bg);
    border-bottom: 2px solid var(--cms-cmp-tbl-border);
    color: var(--cms-cmp-tbl-text);
    text-align: center;
    vertical-align: bottom;
    font-family: var(--font-heading);
    font-size: 16px;
    font-weight: 700;
}


.cms-cmp-tbl__table thead th:first-child {
    min-width: 180px;
    text-align: left;
}


.cms-cmp-tbl__hl {
    background: var(--cms-cmp-tbl-hl-bg);
}


.cms-cmp-tbl__badge {
    display: inline-block;
    margin-bottom: 6px;
    padding: 3px 10px;
    border-radius: var(--radius-sm, 4px);
    background: var(--color-accent);
    color: #fff;
    font-size: 0.65rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
}


.cms-cmp-tbl__table tbody td,
.cms-cmp-tbl__table tfoot td {
    padding: 12px 16px;
    color: var(--cms-cmp-tbl-text);
    text-align: center;
    vertical-align: middle;
    line-height: 1.5;
}


.cms-cmp-tbl__table tbody td {
    border-bottom: 1px solid var(--cms-cmp-tbl-border);
}


.cms-cmp-tbl__table tbody td:first-child,
.cms-cmp-tbl__table tfoot td:first-child {
    text-align: left;
}


.cms-cmp-tbl__table tbody td:first-child {
    color: var(--cms-cmp-tbl-muted);
    font-weight: 500;
}


.cms-cmp-tbl__table tbody tr:last-child td {
    border-bottom: none;
}


.cms-cmp-tbl__table tbody tr:hover td {
    background: var(--cms-cmp-tbl-hover);
}


.cms-cmp-tbl__table tbody tr:hover .cms-cmp-tbl__hl {
    background: var(--cms-cmp-tbl-hover-hl);
}


.cms-cmp-tbl__check {
    color: var(--cms-cmp-tbl-check);
    font-size: 16px;
    font-weight: 700;
}


.cms-cmp-tbl__cross {
    color: var(--cms-cmp-tbl-cross);
    font-size: 16px;
}


.cms-cmp-tbl__table tfoot td {
    padding: 16px;
    border-top: 2px solid var(--cms-cmp-tbl-border);
    font-family: var(--font-heading);
    font-size: clamp(18px, 2vw, 22px);
    font-weight: 700;
}


.cms-cmp-tbl__table tfoot td:first-child {
    color: var(--cms-cmp-tbl-muted);
    font-family: var(--font-body);
    font-size: 14px;
    font-weight: 500;
}


.cms-cmp-sbs {
    --cms-cmp-sbs-columns: 2;
    --cms-cmp-sbs-text: var(--color-text);
    --cms-cmp-sbs-muted: var(--color-text-muted);
    --cms-cmp-sbs-card-bg: var(--color-bg);
    --cms-cmp-sbs-border: var(--color-border);
    --cms-cmp-sbs-check: var(--color-accent);
    --cms-cmp-sbs-cross: var(--color-text-muted);
}


.cms-cmp-sbs--cols-1 { --cms-cmp-sbs-columns: 1; }


.cms-cmp-sbs--cols-2 { --cms-cmp-sbs-columns: 2; }


.cms-cmp-sbs--cols-3 { --cms-cmp-sbs-columns: 3; }


.cms-cmp-sbs--dark {
    --cms-cmp-sbs-text: var(--color-dark-text);
    --cms-cmp-sbs-muted: var(--color-dark-text-muted);
    --cms-cmp-sbs-card-bg: rgba(255,255,255,0.05);
    --cms-cmp-sbs-border: rgba(255,255,255,0.08);
    --cms-cmp-sbs-cross: rgba(255,255,255,0.3);
}


.cms-cmp-sbs__grid {
    display: grid;
    grid-template-columns: repeat(var(--cms-cmp-sbs-columns), minmax(0, 1fr));
    gap: 24px;
    max-width: var(--container, 1200px);
    margin: 0 auto;
    padding: 0 20px;
    align-items: start;
}


.cms-cmp-sbs__card {
    --cms-cmp-sbs-accent: var(--color-accent);
    position: relative;
    overflow: hidden;
    padding: clamp(24px, 3vw, 36px);
    border: 1px solid var(--cms-cmp-sbs-border);
    border-radius: var(--radius-lg, 12px);
    background: var(--cms-cmp-sbs-card-bg);
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}


.cms-cmp-sbs__card--accent-2 { --cms-cmp-sbs-accent: var(--color-accent2, #6c5ce7); }


.cms-cmp-sbs__card--accent-3 { --cms-cmp-sbs-accent: var(--color-accent3, var(--color-accent)); }


.cms-cmp-sbs__card::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 4px;
    background: var(--cms-cmp-sbs-accent);
}


.cms-cmp-sbs__card:hover {
    transform: translateY(-4px);
    box-shadow: var(--shadow-hover, 0 8px 24px rgba(0,0,0,0.1));
}


.cms-cmp-sbs__card--highlight {
    transform: translateY(-4px);
    border-color: var(--cms-cmp-sbs-accent);
    box-shadow: 0 4px 16px rgba(0,0,0,0.08);
}


.cms-cmp-sbs__card--highlight::before {
    height: 6px;
}


.cms-cmp-sbs__badge {
    display: inline-block;
    margin-bottom: 12px;
    padding: 4px 12px;
    border-radius: var(--radius-sm, 4px);
    background: var(--cms-cmp-sbs-accent);
    color: #fff;
    font-size: 0.7rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
}


.cms-cmp-sbs__title {
    margin: 0 0 16px;
    color: var(--cms-cmp-sbs-text);
    font-family: var(--font-heading);
    font-size: clamp(18px, 2vw, 22px);
    font-weight: 700;
    line-height: 1.3;
}


.cms-cmp-sbs__list {
    list-style: none;
    padding: 0;
    margin: 0 0 20px;
}


.cms-cmp-sbs__item {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    padding: 6px 0;
    color: var(--cms-cmp-sbs-text);
    font-family: var(--font-body);
    font-size: 14px;
    line-height: 1.5;
}


.cms-cmp-sbs__item::before {
    flex-shrink: 0;
    font-size: 15px;
    line-height: 1.4;
    font-weight: 700;
}


.cms-cmp-sbs__item--check::before {
    content: '✓';
    color: var(--cms-cmp-sbs-check);
}


.cms-cmp-sbs__item--cross::before {
    content: '✗';
    color: var(--cms-cmp-sbs-cross);
}


.cms-cmp-sbs__price {
    margin: 0 0 20px;
    color: var(--cms-cmp-sbs-text);
    font-family: var(--font-heading);
    font-size: clamp(22px, 2.5vw, 28px);
    font-weight: 700;
    line-height: 1.2;
}


.cms-cmp-vs {
    --cms-cmp-vs-text: var(--color-text);
    --cms-cmp-vs-muted: var(--color-text-muted);
    --cms-cmp-vs-card-bg: var(--color-bg);
    --cms-cmp-vs-card-border: var(--color-border);
}


.cms-cmp-vs--dark {
    --cms-cmp-vs-text: var(--color-dark-text);
    --cms-cmp-vs-muted: var(--color-dark-text-muted);
    --cms-cmp-vs-card-bg: rgba(255,255,255,0.05);
    --cms-cmp-vs-card-border: rgba(255,255,255,0.08);
}


.cms-cmp-vs__wrap {
    position: relative;
    display: flex;
    align-items: stretch;
    gap: 0;
    max-width: var(--container, 1200px);
    margin: 0 auto;
    padding: 0 20px;
}


.cms-cmp-vs__card {
    --cms-cmp-vs-accent: var(--color-accent);
    position: relative;
    display: flex;
    flex: 1 1 50%;
    flex-direction: column;
    padding: clamp(28px, 3.5vw, 44px);
    border: 1px solid var(--cms-cmp-vs-card-border);
    background: var(--cms-cmp-vs-card-bg);
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}


.cms-cmp-vs__card--accent-2 { --cms-cmp-vs-accent: var(--color-accent2, #6c5ce7); }


.cms-cmp-vs__card:first-child {
    border-right: none;
    border-radius: var(--radius-lg, 12px) 0 0 var(--radius-lg, 12px);
}


.cms-cmp-vs__card:last-child {
    border-left: none;
    border-radius: 0 var(--radius-lg, 12px) var(--radius-lg, 12px) 0;
}


.cms-cmp-vs__card:hover {
    transform: translateY(-4px);
    box-shadow: var(--shadow-hover, 0 8px 24px rgba(0,0,0,0.1));
    z-index: 2;
}


.cms-cmp-vs__card::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 4px;
    background: var(--cms-cmp-vs-accent);
    border-radius: var(--radius-lg, 12px) var(--radius-lg, 12px) 0 0;
}


.cms-cmp-vs__card:first-child::before {
    border-radius: var(--radius-lg, 12px) 0 0 0;
}


.cms-cmp-vs__card:last-child::before {
    border-radius: 0 var(--radius-lg, 12px) 0 0;
}


.cms-cmp-vs__badge {
    position: absolute;
    top: 50%;
    left: 50%;
    z-index: 5;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 52px;
    height: 52px;
    transform: translate(-50%, -50%);
    border-radius: 50%;
    background: var(--color-accent);
    box-shadow: 0 4px 16px rgba(0,0,0,0.15);
    color: #fff;
    font-family: var(--font-heading);
    font-size: 16px;
    font-weight: 800;
}


.cms-cmp-vs__title {
    margin: 0 0 12px;
    color: var(--cms-cmp-vs-text);
    font-family: var(--font-heading);
    font-size: clamp(20px, 2.5vw, 28px);
    font-weight: 700;
    line-height: 1.2;
}


.cms-cmp-vs__desc {
    margin: 0 0 20px;
    color: var(--cms-cmp-vs-muted);
    font-family: var(--font-body);
    font-size: 15px;
    line-height: 1.7;
}


.cms-cmp-vs__list {
    list-style: none;
    padding: 0;
    margin: 0;
}


.cms-cmp-vs__list li {
    position: relative;
    padding: 6px 0 6px 24px;
    color: var(--cms-cmp-vs-text);
    font-family: var(--font-body);
    font-size: 14px;
    line-height: 1.5;
}


.cms-cmp-vs__list li::before {
    content: '✓';
    position: absolute;
    left: 0;
    color: var(--cms-cmp-vs-accent);
    font-weight: 700;
}


@media (max-width: 1024px) {
    .cms-cmp-sbs__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }}


@media (max-width: 768px) {
    .cms-cmp-cl__header,
    .cms-cmp-cl__row {
        grid-template-columns: 1.2fr repeat(2, minmax(0, 1fr));
    }
    .cms-cmp-cl__feature,
    .cms-cmp-cl__cell {
        padding: 10px 8px;
        font-size: 13px;
    }
    .cms-cmp-ca__grid,
    .cms-cmp-sbs__grid {
        grid-template-columns: 1fr;
        max-width: 520px;
    }
    .cms-cmp-tbl__wrap {
        margin: 0 -20px;
        padding: 0 20px;
    }
    .cms-cmp-vs__wrap {
        flex-direction: column;
    }
    .cms-cmp-vs__card:first-child {
        border-right: 1px solid var(--cms-cmp-vs-card-border);
        border-bottom: none;
        border-radius: var(--radius-lg, 12px) var(--radius-lg, 12px) 0 0;
    }
    .cms-cmp-vs__card:last-child {
        border-left: 1px solid var(--cms-cmp-vs-card-border);
        border-radius: 0 0 var(--radius-lg, 12px) var(--radius-lg, 12px);
    }}


/* Text Block */
.cms-tb-co {
    --cms-tb-co-text: var(--color-text);
    --cms-tb-co-muted: var(--color-text-muted);
    --cms-tb-co-callout-bg: var(--color-bg-alt, #f8f8f7);
    --cms-tb-co-callout-border: var(--color-border);
    width: 100%;
    padding: clamp(40px, 5vw, 72px) 24px;
}


.cms-tb-co--dark {
    --cms-tb-co-text: var(--color-dark-text);
    --cms-tb-co-muted: var(--color-dark-text-muted);
    --cms-tb-co-callout-bg: rgba(255,255,255,0.05);
    --cms-tb-co-callout-border: rgba(255,255,255,0.08);
}


.cms-tb-co__container { max-width: var(--container, 1200px); margin: 0 auto; }


.cms-tb-co__title { margin: 0 0 clamp(16px, 2vw, 24px); color: var(--cms-tb-co-text); font-family: var(--font-heading); font-size: clamp(24px, 3vw, 36px); font-weight: 700; line-height: 1.2; }


.cms-tb-co__grid { display: grid; grid-template-columns: 1fr 360px; gap: clamp(24px, 4vw, 48px); align-items: start; }


.cms-tb-co__content { color: var(--cms-tb-co-muted); font-family: var(--font-body); font-size: clamp(15px, 1.3vw, 17px); line-height: 1.8; }


.cms-tb-co__content p { margin: 0 0 1em; }


.cms-tb-co__content p:last-child { margin-bottom: 0; }


.cms-tb-co__content a { color: var(--color-accent); text-decoration: underline; text-underline-offset: 3px; }


.cms-tb-co__content :is(h2,h3,h4) { margin: 1.5em 0 0.5em; color: var(--cms-tb-co-text); font-family: var(--font-heading); line-height: 1.3; }


.cms-tb-co__content :is(ul,ol) { margin: 0.5em 0 1em; padding-left: 1.5em; }


.cms-tb-co__callout { position: sticky; top: 100px; padding: clamp(20px, 2.5vw, 28px); border: 1px solid var(--cms-tb-co-callout-border); border-left: 4px solid var(--color-accent); border-radius: var(--radius-lg, 12px); background: var(--cms-tb-co-callout-bg); }


.cms-tb-co__callout-icon { display:flex; align-items:center; justify-content:center; width:36px; height:36px; margin-bottom:12px; border-radius:50%; background:color-mix(in srgb, var(--color-accent) 12%, transparent); }


.cms-tb-co__callout-icon svg { width:18px; height:18px; color: var(--color-accent); }


.cms-tb-co__callout-text { margin:0; color: var(--cms-tb-co-text); font-family: var(--font-body); font-size: 15px; line-height: 1.7; }


.cms-tb-co__callout-text p { margin:0 0 0.8em; }


.cms-tb-co__callout-text p:last-child { margin-bottom:0; }


.cms-tb-center {
    --cms-tb-center-text: var(--color-text);
    --cms-tb-center-muted: var(--color-text-muted);
    --cms-tb-center-quote: var(--color-text-muted);
    width: 100%;
    padding: clamp(40px, 5vw, 72px) 24px;
}


.cms-tb-center--dark {
    --cms-tb-center-text: var(--color-dark-text);
    --cms-tb-center-muted: var(--color-dark-text-muted);
    --cms-tb-center-quote: rgba(255,255,255,0.7);
}


.cms-tb-center__container { max-width: 800px; margin: 0 auto; text-align: center; }


.cms-tb-center__title { margin: 0 0 clamp(16px, 2vw, 24px); color: var(--cms-tb-center-text); font-family: var(--font-heading); font-size: clamp(28px, 3.5vw, 42px); font-weight: 700; line-height: 1.2; }


.cms-tb-center__content { color: var(--cms-tb-center-muted); text-align: left; font-family: var(--font-body); font-size: clamp(15px, 1.3vw, 18px); line-height: 1.8; }


.cms-tb-center__content p { margin: 0 0 1em; }


.cms-tb-center__content p:last-child { margin-bottom: 0; }


.cms-tb-center__content a { color: var(--color-accent); text-decoration: underline; text-underline-offset: 3px; }


.cms-tb-center__content :is(h2,h3,h4) { margin: 1.5em 0 0.5em; color: var(--cms-tb-center-text); font-family: var(--font-heading); line-height: 1.3; }


.cms-tb-center__content :is(ul,ol) { margin: 0.5em 0 1em; padding-left: 1.5em; }


.cms-tb-center__content blockquote { margin: 1em 0; padding-left: 1em; border-left: 3px solid var(--color-accent); color: var(--cms-tb-center-quote); font-style: italic; }


.cms-tb-split {
    --cms-tb-split-text: var(--color-text);
    --cms-tb-split-muted: var(--color-text-muted);
    --cms-tb-split-quote: var(--color-text-muted);
    width: 100%;
    padding: clamp(40px, 5vw, 72px) 24px;
    box-sizing: border-box;
}


.cms-tb-split--dark {
    --cms-tb-split-text: var(--color-dark-text);
    --cms-tb-split-muted: var(--color-dark-text-muted);
    --cms-tb-split-quote: rgba(255,255,255,0.7);
}


.cms-tb-split__grid { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(24px, 4vw, 64px); align-items: start; max-width: var(--container, 1200px); margin: 0 auto; }


.cms-tb-split__title { position: sticky; top: 100px; margin: 0; color: var(--cms-tb-split-text); font-family: var(--font-heading); font-size: clamp(32px, 4.5vw, 56px); font-weight: 700; line-height: 1.1; }


.cms-tb-split__content { color: var(--cms-tb-split-muted); font-family: var(--font-body); font-size: clamp(15px, 1.3vw, 17px); line-height: 1.8; }


.cms-tb-split__content p { margin: 0 0 1em; }


.cms-tb-split__content p:last-child { margin-bottom: 0; }


.cms-tb-split__content a { color: var(--color-accent); text-decoration: underline; text-underline-offset: 3px; }


.cms-tb-split__content :is(h2,h3,h4) { margin: 1.5em 0 0.5em; color: var(--cms-tb-split-text); font-family: var(--font-heading); line-height: 1.3; }


.cms-tb-split__content :is(ul,ol) { margin: 0.5em 0 1em; padding-left: 1.5em; }


.cms-tb-split__content blockquote { margin: 1em 0; padding-left: 1em; border-left: 3px solid var(--color-accent); color: var(--cms-tb-split-quote); font-style: italic; }


/* FAQ */
.cms-faq-ac {
    --cms-faq-ac-text: var(--color-text);
    --cms-faq-ac-muted: var(--color-text-muted);
    --cms-faq-ac-card-bg: var(--color-bg);
    --cms-faq-ac-card-border: var(--color-border);
}


.cms-faq-ac--dark {
    --cms-faq-ac-text: var(--color-dark-text);
    --cms-faq-ac-muted: var(--color-dark-text-muted);
    --cms-faq-ac-card-bg: rgba(255,255,255,0.05);
    --cms-faq-ac-card-border: rgba(255,255,255,0.08);
}


.cms-faq-ac__list { display:flex; flex-direction:column; gap:12px; list-style:none; max-width:var(--container, 1200px); margin:0 auto; padding:0; }


.cms-faq-ac__card { overflow:hidden; border:1px solid var(--cms-faq-ac-card-border); border-radius:var(--radius-lg, 12px); background:var(--cms-faq-ac-card-bg); transition:box-shadow 0.3s ease; }


.cms-faq-ac__card:hover { box-shadow:0 4px 16px rgba(0,0,0,0.06); }


.cms-faq-ac__trigger { display:flex; align-items:center; justify-content:space-between; gap:16px; width:100%; padding:20px 24px; border:none; background:none; cursor:pointer; text-align:left; color:var(--cms-faq-ac-text); font-family:var(--font-heading); font-size:18px; font-weight:700; line-height:1.4; }


.cms-faq-ac__trigger:hover { color: var(--color-accent); }


.cms-faq-ac__chevron { flex-shrink:0; width:20px; height:20px; color:var(--cms-faq-ac-muted); transition:transform 0.3s ease; }


.cms-faq-ac__chevron.is-open { transform: rotate(180deg); }


.cms-faq-ac__answer { overflow:hidden; padding:0 24px 20px; color:var(--cms-faq-ac-muted); font-family:var(--font-body); font-size:15px; line-height:1.7; }


.cms-faq-ac__answer p { margin:0 0 12px; }


.cms-faq-ac__answer p:last-child { margin-bottom:0; }


.cms-faq-search {
    --cms-faq-search-text: var(--color-text);
    --cms-faq-search-muted: var(--color-text-muted);
    --cms-faq-search-border: var(--color-border);
    --cms-faq-search-input-bg: var(--color-bg);
    --cms-faq-search-input-border: var(--color-border);
}


.cms-faq-search--dark {
    --cms-faq-search-text: var(--color-dark-text);
    --cms-faq-search-muted: var(--color-dark-text-muted);
    --cms-faq-search-border: rgba(255,255,255,0.1);
    --cms-faq-search-input-bg: rgba(255,255,255,0.06);
    --cms-faq-search-input-border: rgba(255,255,255,0.15);
}


.cms-faq-search__inner { max-width: var(--container, 1200px); margin:0 auto; }


.cms-faq-search__bar { position:relative; max-width:560px; margin-bottom:32px; }


.cms-faq-search__icon { position:absolute; left:16px; top:50%; width:18px; height:18px; transform:translateY(-50%); color:var(--cms-faq-search-muted); pointer-events:none; }


.cms-faq-search__input { width:100%; padding:14px 16px 14px 44px; border:1px solid var(--cms-faq-search-input-border); border-radius:var(--radius-lg, 12px); outline:none; background:var(--cms-faq-search-input-bg); color:var(--cms-faq-search-text); font-family:var(--font-body); font-size:15px; transition:border-color 0.3s ease; }


.cms-faq-search__input:focus { border-color: var(--color-accent); }


.cms-faq-search__input::placeholder { color: var(--cms-faq-search-muted); }


.cms-faq-search__list { list-style:none; padding:0; margin:0; }


.cms-faq-search__item { border-bottom:1px solid var(--cms-faq-search-border); transition:opacity 0.3s ease, max-height 0.3s ease; }


.cms-faq-search__item[hidden] { display:none; }


.cms-faq-search__trigger { display:flex; align-items:center; justify-content:space-between; gap:16px; width:100%; padding:20px 0; border:none; background:none; cursor:pointer; text-align:left; color:var(--cms-faq-search-text); font-family:var(--font-heading); font-size:18px; font-weight:700; line-height:1.4; }


.cms-faq-search__trigger:hover { color: var(--color-accent); }


.cms-faq-search__chevron { flex-shrink:0; width:20px; height:20px; color:var(--cms-faq-search-muted); transition:transform 0.3s ease; }


.cms-faq-search__chevron.is-open { transform: rotate(180deg); }


.cms-faq-search__answer { overflow:hidden; padding-bottom:20px; color:var(--cms-faq-search-muted); font-family:var(--font-body); font-size:15px; line-height:1.7; }


.cms-faq-search__answer p { margin:0 0 12px; }


.cms-faq-search__answer p:last-child { margin-bottom:0; }


.cms-faq-2c {
    --cms-faq-2c-text: var(--color-text);
    --cms-faq-2c-muted: var(--color-text-muted);
    --cms-faq-2c-border: var(--color-border);
}


.cms-faq-2c--dark {
    --cms-faq-2c-text: var(--color-dark-text);
    --cms-faq-2c-muted: var(--color-dark-text-muted);
    --cms-faq-2c-border: rgba(255,255,255,0.1);
}


.cms-faq-2c__grid { display:grid; grid-template-columns:1fr 1fr; gap:32px 48px; max-width:var(--container, 1200px); margin:0 auto; }


.cms-faq-2c__list { list-style:none; padding:0; margin:0; }


.cms-faq-2c__item { border-bottom:1px solid var(--cms-faq-2c-border); }


.cms-faq-2c__trigger { display:flex; align-items:center; justify-content:space-between; gap:16px; width:100%; padding:18px 0; border:none; background:none; cursor:pointer; text-align:left; color:var(--cms-faq-2c-text); font-family:var(--font-heading); font-size:17px; font-weight:700; line-height:1.4; }


.cms-faq-2c__trigger:hover { color:var(--color-accent); }


.cms-faq-2c__chevron { flex-shrink:0; width:18px; height:18px; color:var(--cms-faq-2c-muted); transition:transform 0.3s ease; }


.cms-faq-2c__chevron.is-open { transform: rotate(180deg); }


.cms-faq-2c__answer { overflow:hidden; padding-bottom:18px; color:var(--cms-faq-2c-muted); font-family:var(--font-body); font-size:15px; line-height:1.7; }


.cms-faq-2c__answer p { margin:0 0 12px; }


.cms-faq-2c__answer p:last-child { margin-bottom:0; }


.cms-faq-grid {
    --cms-faq-grid-text: var(--color-text);
    --cms-faq-grid-muted: var(--color-text-muted);
    --cms-faq-grid-card-bg: var(--color-bg);
    --cms-faq-grid-card-border: var(--color-border);
}


.cms-faq-grid--dark {
    --cms-faq-grid-text: var(--color-dark-text);
    --cms-faq-grid-muted: var(--color-dark-text-muted);
    --cms-faq-grid-card-bg: rgba(255,255,255,0.05);
    --cms-faq-grid-card-border: rgba(255,255,255,0.08);
}


.cms-faq-grid__list { display:grid; grid-template-columns:repeat(2, 1fr); gap:clamp(16px, 2vw, 24px); list-style:none; max-width:var(--container, 1200px); margin:0 auto; padding:0; }


.cms-faq-grid__card { padding:clamp(20px, 3vw, 28px); border:1px solid var(--cms-faq-grid-card-border); border-radius:var(--radius-lg, 12px); background:var(--cms-faq-grid-card-bg); transition:box-shadow 0.3s ease; }


.cms-faq-grid__card:hover { box-shadow:0 4px 16px rgba(0,0,0,0.06); }


.cms-faq-grid__question { margin:0 0 10px; color:var(--cms-faq-grid-text); font-family:var(--font-heading); font-size:17px; font-weight:700; line-height:1.4; }


.cms-faq-grid__answer { color:var(--cms-faq-grid-muted); font-family:var(--font-body); font-size:15px; line-height:1.7; }


.cms-faq-grid__answer p { margin:0 0 10px; }


.cms-faq-grid__answer p:last-child { margin-bottom:0; }


@media (max-width: 768px) {
    .cms-tb-co__grid,
    .cms-faq-2c__grid,
    .cms-faq-grid__list {
        grid-template-columns: 1fr;
    }
    .cms-tb-co__callout,
    .cms-tb-split__title {
        position: static;
    }
    .cms-tb-split {
        padding: clamp(28px, 6vw, 40px) 20px;
    }
    .cms-tb-split__grid {
        grid-template-columns: 1fr;
        gap: 20px;
    }
    .cms-tb-split__title {
        font-size: clamp(28px, 7vw, 36px);
    }}


/* Features Grid */
.cms-fg-c3 {
    --cms-fg-c3-text: var(--color-text);
    --cms-fg-c3-muted: var(--color-text-muted);
    --cms-fg-c3-card-bg: var(--color-bg);
    --cms-fg-c3-card-border: rgba(0,0,0,0.06);
    --cms-fg-c3-icon-bg: color-mix(in srgb, var(--color-accent) 12%, transparent);
    --cms-fg-c3-image-aspect: 1 / 1;
}


.cms-fg-c3__grid { display:grid; grid-template-columns:repeat(3, 1fr); gap:24px; max-width:var(--container, 1200px); margin:0 auto; padding:0 20px; }


.cms-fg-c3__card { padding:clamp(24px, 3vw, 36px); border:1px solid var(--cms-fg-c3-card-border); border-radius:var(--radius-lg, 12px); background:var(--cms-fg-c3-card-bg); box-shadow:0 1px 3px rgba(0,0,0,0.06); transition:transform 0.3s ease, box-shadow 0.3s ease; }


.cms-fg-c3__card:hover { transform:translateY(-4px); box-shadow:0 8px 24px rgba(0,0,0,0.1); }


.cms-fg-c3__media { display:flex; align-items:center; justify-content:center; width:52px; height:52px; margin-bottom:16px; overflow:hidden; line-height:1; background:var(--cms-fg-c3-icon-bg); }


.cms-fg-c3__media--icon { border-radius:50%; font-size:20px; }


.cms-fg-c3__media--image { width:100%; height:auto; min-height:0; border-radius:var(--radius, 10px); aspect-ratio:var(--cms-fg-c3-image-aspect); background:transparent; }


.cms-fg-c3__media img { width:100%; height:100%; object-fit:cover; display:block; }


.cms-fg-c3__body { padding:0; }


.cms-fg-c3__title { margin:0 0 8px; color:var(--cms-fg-c3-text); font-family:var(--font-heading); font-size:18px; font-weight:600; line-height:1.3; }


.cms-fg-c3__desc { margin:0; color:var(--cms-fg-c3-muted); font-family:var(--font-body); font-size:15px; line-height:1.6; }


.cms-fg-c3__link { text-decoration:none; color:inherit; }


.cms-fg-c3--media-image .cms-fg-c3__card { padding:0; overflow:hidden; }


.cms-fg-c3--media-image .cms-fg-c3__media--image {
    margin:0;
    border-radius:0;
    width:100%;
}


.cms-fg-c3--media-image .cms-fg-c3__body { padding:clamp(20px, 2.6vw, 28px); }


.cms-fg-alt {
    --cms-fg-alt-text: var(--color-text);
    --cms-fg-alt-muted: var(--color-text-muted);
    --cms-fg-alt-border: var(--color-border);
    --cms-fg-alt-icon-bg: color-mix(in srgb, var(--color-accent) 12%, transparent);
    --cms-fg-alt-detail-bg: color-mix(in srgb, var(--color-bg-alt, #f8fafc) 86%, white);
    --cms-fg-alt-image-aspect: 1 / 1;
}


.cms-fg-alt__list { max-width:var(--container, 1200px); margin:0 auto; padding:0 20px; }


.cms-fg-alt__item { padding:clamp(28px, 4vw, 44px) 0; border-bottom:1px solid var(--cms-fg-alt-border); }


.cms-fg-alt__item:last-child { border-bottom:none; }


.cms-fg-alt__row { display:flex; align-items:center; gap:clamp(24px, 4vw, 48px); }


.cms-fg-alt--media-right .cms-fg-alt__row { flex-direction:row-reverse; }


.cms-fg-alt__row--interactive { cursor:pointer; }


.cms-fg-alt__media-col { flex:0 0 auto; }


.cms-fg-alt__icon { display:flex; align-items:center; justify-content:center; width:clamp(56px, 7vw, 72px); height:clamp(56px, 7vw, 72px); border-radius:50%; background:var(--cms-fg-alt-icon-bg); font-size:clamp(24px, 3vw, 32px); line-height:1; overflow:hidden; transition:transform 0.3s ease; }


.cms-fg-alt__image { width:clamp(72px, 10vw, 112px); aspect-ratio:var(--cms-fg-alt-image-aspect); overflow:hidden; border-radius:var(--radius-lg, 14px); background:var(--cms-fg-alt-icon-bg); box-shadow:0 6px 24px rgba(0,0,0,0.08); transition:transform 0.3s ease, box-shadow 0.3s ease; }


.cms-fg-alt__image img { width:100%; height:100%; object-fit:cover; display:block; }


.cms-fg-alt__item:hover .cms-fg-alt__icon, .cms-fg-alt__item:hover .cms-fg-alt__image, .cms-fg-alt__item.is-open .cms-fg-alt__icon, .cms-fg-alt__item.is-open .cms-fg-alt__image { transform:scale(1.04); }


.cms-fg-alt__text { flex:1; min-width:0; }


.cms-fg-alt__title { margin:0 0 8px; color:var(--cms-fg-alt-text); font-family:var(--font-heading); font-size:clamp(18px, 2.2vw, 24px); font-weight:600; line-height:1.3; }


.cms-fg-alt__title a { color:inherit; text-decoration:none; }


.cms-fg-alt__title a:hover { color:var(--color-accent); }


.cms-fg-alt__desc { margin:0; color:var(--cms-fg-alt-muted); font-family:var(--font-body); font-size:clamp(14px, 1.3vw, 16px); line-height:1.65; }


.cms-fg-alt__hint { display:inline-flex; align-items:center; gap:8px; margin-top:12px; color:var(--color-accent); font-size:13px; font-weight:600; }


.cms-fg-alt__hint::after { content:'↗'; font-size:12px; transition:transform 0.25s ease; }


.cms-fg-alt__item.is-open .cms-fg-alt__hint::after, .cms-fg-alt__item:hover .cms-fg-alt__hint::after { transform:translate(2px, -2px); }


.cms-fg-alt__detail { max-height:0; opacity:0; overflow:hidden; transform:translateY(8px); margin-top:0; transition:max-height 0.45s ease, opacity 0.35s ease, transform 0.35s ease, margin-top 0.35s ease; }


.cms-fg-alt__detail-card { padding:22px 24px; border:1px solid var(--cms-fg-alt-border); border-radius:var(--radius-lg, 14px); background:var(--cms-fg-alt-detail-bg); box-shadow:0 12px 32px rgba(0,0,0,0.06); }


.cms-fg-alt__detail-title { margin:0 0 8px; color:var(--cms-fg-alt-text); font-family:var(--font-heading); font-size:16px; font-weight:600; }


.cms-fg-alt__detail-body { margin:0; white-space:pre-line; color:var(--cms-fg-alt-muted); font-family:var(--font-body); font-size:14px; line-height:1.7; }


@media (hover:hover) { .cms-fg-alt--expand .cms-fg-alt__item:hover .cms-fg-alt__detail { max-height:320px; opacity:1; transform:translateY(0); margin-top:18px; }}


.cms-fg-alt--expand .cms-fg-alt__item.is-open .cms-fg-alt__detail, .cms-fg-alt--expand .cms-fg-alt__item:focus-within .cms-fg-alt__detail { max-height:320px; opacity:1; transform:translateY(0); margin-top:18px; }


.cms-fg-i2 {
    --cms-fg-i2-text: var(--color-text);
    --cms-fg-i2-muted: var(--color-text-muted);
    --cms-fg-i2-card-bg: var(--color-bg);
    --cms-fg-i2-card-border: rgba(0,0,0,0.06);
    --cms-fg-i2-icon-bg: color-mix(in srgb, var(--color-accent) 12%, transparent);
}


.cms-fg-i2__grid { display:grid; grid-template-columns:repeat(2, 1fr); gap:20px; max-width:var(--container, 1200px); margin:0 auto; padding:0 20px; }


.cms-fg-i2__card { display:flex; align-items:flex-start; gap:16px; padding:clamp(20px, 2.5vw, 28px); border:1px solid var(--cms-fg-i2-card-border); border-radius:var(--radius-lg, 12px); background:var(--cms-fg-i2-card-bg); box-shadow:0 1px 3px rgba(0,0,0,0.04); transition:transform 0.3s ease, box-shadow 0.3s ease; }


.cms-fg-i2__card:hover { transform:translateY(-2px); box-shadow:0 6px 20px rgba(0,0,0,0.08); }


.cms-fg-i2__icon { display:flex; align-items:center; justify-content:center; flex-shrink:0; width:40px; height:40px; border-radius:50%; background:var(--cms-fg-i2-icon-bg); font-size:20px; line-height:1; }


.cms-fg-i2__icon svg { width:20px; height:20px; display:block; }


.cms-fg-i2__content { flex:1; min-width:0; }


.cms-fg-i2__title { margin:0 0 6px; color:var(--cms-fg-i2-text); font-family:var(--font-heading); font-size:16px; font-weight:600; line-height:1.3; }


.cms-fg-i2__desc { margin:0; color:var(--cms-fg-i2-muted); font-family:var(--font-body); font-size:14px; line-height:1.6; }


.cms-fg-i2__link { color:inherit; text-decoration:none; }


.cms-fg-li {
    --cms-fg-li-text: var(--color-text);
    --cms-fg-li-muted: var(--color-text-muted);
    --cms-fg-li-icon-bg: color-mix(in srgb, var(--color-accent) 12%, transparent);
}


.cms-fg-li__wrap { display:flex; align-items:center; gap:clamp(32px, 4vw, 60px); max-width:var(--container, 1200px); margin:0 auto; padding:0 20px; }


.cms-fg-li--image-right .cms-fg-li__wrap { flex-direction:row-reverse; }


.cms-fg-li__image-col, .cms-fg-li__list-col { flex:1 1 50%; min-width:0; }


.cms-fg-li__image-col .cms-img-deco--none { box-shadow:0 8px 30px rgba(0,0,0,0.10); }


.cms-fg-li__item { display:flex; align-items:flex-start; gap:14px; margin-bottom:24px; }


.cms-fg-li__item:last-child { margin-bottom:0; }


.cms-fg-li__icon { display:flex; align-items:center; justify-content:center; flex-shrink:0; width:32px; height:32px; margin-top:2px; border-radius:50%; background:var(--cms-fg-li-icon-bg); font-size:16px; line-height:1; }


.cms-fg-li__icon svg { width:18px; height:18px; display:block; }


.cms-fg-li__item-title { margin:0 0 4px; color:var(--cms-fg-li-text); font-family:var(--font-heading); font-size:16px; font-weight:600; line-height:1.3; }


.cms-fg-li__item-desc { margin:0; color:var(--cms-fg-li-muted); font-family:var(--font-body); font-size:14px; line-height:1.6; }


.cms-fg-li__cta { margin-top:32px; }


.cms-fg-sa {
    --cms-fg-sa-text: var(--color-text);
    --cms-fg-sa-muted: var(--color-text-muted);
    --cms-fg-sa-icon-bg: color-mix(in srgb, var(--color-accent) 12%, transparent);
}


.cms-fg-sa__list { display:flex; flex-direction:column; gap:clamp(48px, 6vw, 80px); max-width:var(--container, 1200px); margin:0 auto; }


.cms-fg-sa__item { display:flex; align-items:center; gap:clamp(32px, 5vw, 64px); }


.cms-fg-sa__item--reverse { flex-direction:row-reverse; }


.cms-fg-sa__text, .cms-fg-sa__image { flex:1 1 50%; min-width:0; }


.cms-fg-sa__title-row { display:flex; align-items:center; gap:14px; margin:0 0 14px; }


.cms-fg-sa__icon { display:flex; align-items:center; justify-content:center; flex:0 0 48px; width:48px; height:48px; border-radius:50%; background:var(--cms-fg-sa-icon-bg); color:var(--color-accent); }


.cms-fg-sa__icon svg { width:22px; height:22px; display:block; }


.cms-fg-sa__title { margin:0; color:var(--cms-fg-sa-text); font-family:var(--font-heading); font-size:clamp(22px, 2.5vw, 30px); font-weight:600; line-height:1.25; }


.cms-fg-sa__desc { margin:0; color:var(--cms-fg-sa-muted); font-family:var(--font-body); font-size:16px; line-height:1.7; }


.cms-fg-sa__desc p { margin:0 0 12px; }


.cms-fg-sa__desc p:last-child { margin-bottom:0; }


.cms-fg-sa__cta { margin-top:24px; }


.cms-fg-num {
    --cms-fg-num-text: var(--color-text);
    --cms-fg-num-muted: var(--color-text-muted);
}


.cms-fg-num__list { display:grid; grid-template-columns:repeat(2, 1fr); gap:clamp(24px, 3vw, 40px); max-width:var(--container, 1200px); margin:0 auto; padding:0 20px; }


.cms-fg-num__item { display:flex; align-items:flex-start; gap:clamp(16px, 2vw, 24px); }


.cms-fg-num__number { min-width:clamp(50px, 8vw, 80px); color:var(--color-accent); opacity:0.85; font-family:var(--font-heading); font-size:clamp(40px, 6vw, 64px); font-weight:800; line-height:1; }


.cms-fg-num__content { flex:1; min-width:0; padding-top:clamp(6px, 1vw, 12px); }


.cms-fg-num__title { margin:0 0 8px; color:var(--cms-fg-num-text); font-family:var(--font-heading); font-size:clamp(17px, 2vw, 22px); font-weight:600; line-height:1.3; }


.cms-fg-num__title a { color:inherit; text-decoration:none; }


.cms-fg-num__title a:hover { color:var(--color-accent); }


.cms-fg-num__desc { margin:0; color:var(--cms-fg-num-muted); font-family:var(--font-body); font-size:clamp(14px, 1.2vw, 15px); line-height:1.65; }


@media (max-width: 1024px) {
    .cms-fg-c3__grid { grid-template-columns: repeat(2, 1fr); }
    .cms-fg-num__list { grid-template-columns: 1fr 1fr; }}


@media (max-width: 768px) {
    .cms-fg-c3__grid,
    .cms-fg-i2__grid,
    .cms-fg-num__list { grid-template-columns: 1fr; }
    .cms-fg-alt__row { flex-direction: row; align-items: flex-start; }
    .cms-fg-alt__icon { width: 48px; height: 48px; font-size: 22px; }
    .cms-fg-alt__image { width: 64px; }
    .cms-fg-li__wrap,
    .cms-fg-sa__item,
    .cms-fg-sa__item--reverse { flex-direction: column !important; }
    .cms-fg-li__image-col,
    .cms-fg-li__list-col,
    .cms-fg-sa__text,
    .cms-fg-sa__image { flex: 1 1 auto; width: 100%; }
    .cms-fg-num__number { font-size: 40px; min-width: 50px; }}


.cms-fg-car {
    --cms-fg-car-text: var(--color-text);
    --cms-fg-car-muted: var(--color-text-muted);
    --cms-fg-car-card-bg: var(--color-bg);
    --cms-fg-car-card-border: rgba(0,0,0,0.06);
    --cms-fg-car-icon-bg: color-mix(in srgb, var(--color-accent) 12%, transparent);
}


.cms-fg-car__card { box-sizing:border-box; height:100%; padding:clamp(24px, 3vw, 36px); border:1px solid var(--cms-fg-car-card-border); border-radius:var(--radius-lg, 12px); background:var(--cms-fg-car-card-bg); box-shadow:0 1px 3px rgba(0,0,0,0.06); transition:transform 0.3s ease, box-shadow 0.3s ease; }


.cms-fg-car__card:hover { transform:translateY(-4px); box-shadow:0 8px 24px rgba(0,0,0,0.1); }


.cms-fg-car__icon { display:flex; align-items:center; justify-content:center; width:40px; height:40px; margin-bottom:16px; border-radius:50%; background:var(--cms-fg-car-icon-bg); font-size:20px; line-height:1; }


.cms-fg-car__title { margin:0 0 8px; color:var(--cms-fg-car-text); font-family:var(--font-heading); font-size:18px; font-weight:600; line-height:1.3; }


.cms-fg-car__desc { margin:0; color:var(--cms-fg-car-muted); font-family:var(--font-body); font-size:15px; line-height:1.6; }


.cms-fg-car__link { color:inherit; text-decoration:none; }


.cms-fg-imgtop--dark {
    --cms-fg-imgtop-text: var(--color-dark-text);
    --cms-fg-imgtop-muted: var(--color-dark-text-muted);
    --cms-fg-imgtop-card-bg: rgba(255,255,255,0.05);
    --cms-fg-imgtop-card-border: rgba(255,255,255,0.08);
    --cms-fg-imgtop-placeholder-bg: rgba(255,255,255,0.08);
}


.cms-fg-c3--dark {
    --cms-fg-c3-text: var(--color-dark-text);
    --cms-fg-c3-muted: var(--color-dark-text-muted);
    --cms-fg-c3-card-bg: rgba(255,255,255,0.05);
    --cms-fg-c3-card-border: rgba(255,255,255,0.08);
    --cms-fg-c3-icon-bg: rgba(255,255,255,0.1);
}


.cms-fg-c3--aspect-square { --cms-fg-c3-image-aspect: 1 / 1; }


.cms-fg-c3--aspect-16-9 { --cms-fg-c3-image-aspect: 16 / 9; }


.cms-fg-alt--dark {
    --cms-fg-alt-text: var(--color-dark-text);
    --cms-fg-alt-muted: var(--color-dark-text-muted);
    --cms-fg-alt-border: rgba(255,255,255,0.08);
    --cms-fg-alt-icon-bg: rgba(255,255,255,0.1);
    --cms-fg-alt-detail-bg: rgba(255,255,255,0.05);
}


.cms-fg-alt--aspect-16-9 { --cms-fg-alt-image-aspect: 16 / 9; }


.cms-fg-i2--dark {
    --cms-fg-i2-text: var(--color-dark-text);
    --cms-fg-i2-muted: var(--color-dark-text-muted);
    --cms-fg-i2-card-bg: rgba(255,255,255,0.05);
    --cms-fg-i2-card-border: rgba(255,255,255,0.08);
    --cms-fg-i2-icon-bg: rgba(255,255,255,0.1);
}


.cms-fg-li--dark {
    --cms-fg-li-text: var(--color-dark-text);
    --cms-fg-li-muted: var(--color-dark-text-muted);
    --cms-fg-li-icon-bg: rgba(255,255,255,0.1);
}


.cms-fg-sa--dark {
    --cms-fg-sa-text: var(--color-dark-text);
    --cms-fg-sa-muted: var(--color-dark-text-muted);
    --cms-fg-sa-icon-bg: rgba(255,255,255,0.08);
}


.cms-fg-num--dark {
    --cms-fg-num-text: var(--color-dark-text);
    --cms-fg-num-muted: var(--color-dark-text-muted);
}


.cms-fg-car--dark {
    --cms-fg-car-text: var(--color-dark-text);
    --cms-fg-car-muted: var(--color-dark-text-muted);
    --cms-fg-car-card-bg: rgba(255,255,255,0.05);
    --cms-fg-car-card-border: rgba(255,255,255,0.08);
    --cms-fg-car-icon-bg: rgba(255,255,255,0.1);
}


/* Case Study */
.cms-cs-split {
    --cms-cs-split-text: var(--color-text);
    --cms-cs-split-muted: var(--color-text-muted);
    --cms-cs-split-card-bg: var(--color-bg, #fff);
    --cms-cs-split-card-border: var(--color-border, #e5e7eb);
    --cms-cs-split-stat-bg: color-mix(in srgb, var(--color-accent) 6%, transparent);
}


.cms-cs-split--dark {
    --cms-cs-split-text: var(--color-dark-text);
    --cms-cs-split-muted: var(--color-dark-text-muted);
    --cms-cs-split-card-bg: rgba(255,255,255,0.04);
    --cms-cs-split-card-border: rgba(255,255,255,0.08);
    --cms-cs-split-stat-bg: rgba(255,255,255,0.06);
}


.cms-cs-split__card { display:flex; max-width:var(--container,1200px); margin:0 auto; overflow:hidden; border:1px solid var(--cms-cs-split-card-border); border-radius:var(--radius-lg,12px); background:var(--cms-cs-split-card-bg); transition:transform .3s ease, box-shadow .3s ease; }


.cms-cs-split__card:hover { transform:translateY(-4px); box-shadow:0 12px 40px rgba(0,0,0,.10); }


.cms-cs-split__image-col { position:relative; flex:0 0 40%; min-height:400px; }


.cms-cs-split__image-col .cms-img-deco { height:100%; }


.cms-cs-split__content { display:flex; flex:1 1 60%; flex-direction:column; justify-content:center; padding:clamp(28px,3.5vw,48px); }


.cms-cs-split__title { margin:0 0 16px; color:var(--cms-cs-split-text); font-family:var(--font-heading); font-size:clamp(22px,2.8vw,32px); font-weight:600; line-height:1.2; }


.cms-cs-split__desc { margin:0 0 24px; color:var(--cms-cs-split-muted); font-family:var(--font-body); font-size:15px; line-height:1.7; }


.cms-cs-split__stats { display:flex; flex-wrap:wrap; gap:clamp(8px,1.2vw,14px); margin:0 0 24px; }


.cms-cs-split__stat { flex:1 1 0; min-width:90px; padding:clamp(12px,1.5vw,18px) clamp(10px,1.2vw,14px); border-radius:var(--radius,8px); background:var(--cms-cs-split-stat-bg); text-align:center; }


.cms-cs-split__stat-value { margin:0 0 4px; color:var(--color-accent); font-family:var(--font-heading); font-size:clamp(18px,2.2vw,26px); font-weight:700; line-height:1.2; }


.cms-cs-split__stat-label { margin:0; color:var(--cms-cs-split-muted); font-family:var(--font-body); font-size:11px; font-weight:600; text-transform:uppercase; letter-spacing:.5px; }


.cms-cs-split__quote { margin:0 0 24px; padding-left:16px; border-left:3px solid var(--color-accent); color:var(--cms-cs-split-muted); font-family:var(--font-body); font-size:14px; font-style:italic; line-height:1.6; }


.cms-cs-split__quote-author { display:block; margin-top:8px; color:var(--cms-cs-split-text); font-size:13px; font-style:normal; font-weight:600; }


.cms-cs-split__cta { margin-top:auto; padding-top:4px; }


.cms-cs-ovr__card { position:relative; display:flex; flex-direction:column; justify-content:flex-end; max-width:var(--container,1200px); min-height:clamp(400px,50vh,560px); margin:0 auto; overflow:hidden; isolation:isolate; border-radius:var(--radius-lg,12px); transition:transform .3s ease, box-shadow .3s ease; }


.cms-cs-ovr__card:hover { transform:translateY(-4px); box-shadow:0 16px 48px rgba(0,0,0,.18); }


.cms-cs-ovr__bg { position:absolute; inset:0; z-index:0; border-radius:inherit; overflow:hidden; }


.cms-cs-ovr__bg img { display:block; position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }


.cms-cs-ovr__gradient { position:absolute; inset:0; z-index:1; pointer-events:none; border-radius:inherit; background:linear-gradient(to top,rgba(8,14,24,.88) 0%,rgba(8,14,24,.66) 42%,rgba(8,14,24,.22) 72%,rgba(8,14,24,.08) 100%); }


.cms-cs-ovr__content { position:relative; z-index:2; padding:clamp(28px,4vw,48px); }


.cms-cs-ovr__title { max-width:640px; margin:0 0 14px; color:#fff; font-family:var(--font-heading); font-size:clamp(24px,3vw,38px); font-weight:600; line-height:1.2; }


.cms-cs-ovr__desc { max-width:580px; margin:0 0 24px; color:rgba(255,255,255,.75); font-family:var(--font-body); font-size:15px; line-height:1.7; }


.cms-cs-ovr__bottom { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:clamp(16px,2vw,24px); }


.cms-cs-ovr__stats { display:flex; gap:0; }


.cms-cs-ovr__stat { padding:0 clamp(14px,2vw,24px); border-right:1px solid rgba(255,255,255,.2); text-align:center; }


.cms-cs-ovr__stat:first-child { padding-left:0; }


.cms-cs-ovr__stat:last-child { padding-right:0; border-right:none; }


.cms-cs-ovr__stat-value { margin:0 0 4px; color:#fff; font-family:var(--font-heading); font-size:clamp(20px,2.5vw,30px); font-weight:700; line-height:1.2; }


.cms-cs-ovr__stat-label { margin:0; color:rgba(255,255,255,.75); font-family:var(--font-body); font-size:11px; font-weight:600; text-transform:uppercase; letter-spacing:.5px; }


.cms-cs-osc__track { display:flex; gap:20px; overflow-x:auto; padding:0 max(20px, calc((100vw - var(--container,1200px)) / 2)) 16px; scroll-snap-type:x mandatory; -webkit-overflow-scrolling:touch; scrollbar-width:thin; scrollbar-color:var(--color-accent) transparent; }


.cms-cs-osc__track::-webkit-scrollbar { height:6px; }


.cms-cs-osc__track::-webkit-scrollbar-track { background:transparent; }


.cms-cs-osc__track::-webkit-scrollbar-thumb { background:var(--color-accent); border-radius:3px; }


.cms-cs-osc__card { position:relative; display:flex; flex-shrink:0; flex-direction:column; justify-content:flex-end; min-width:clamp(340px, 70vw, 600px); min-height:clamp(350px,45vh,480px); overflow:hidden; border-radius:var(--radius-lg,12px); scroll-snap-align:start; transition:transform .3s ease; }


.cms-cs-osc__card:hover { transform:translateY(-4px); }


.cms-cs-osc__bg { position:absolute; inset:0; z-index:0; }


.cms-cs-osc__bg img { display:block; width:100%; height:100%; object-fit:cover; }


.cms-cs-osc__gradient { position:absolute; inset:0; z-index:1; background:linear-gradient(to top,rgba(0,0,0,.82) 0%,rgba(0,0,0,.5) 40%,rgba(0,0,0,.1) 70%,rgba(0,0,0,.03) 100%); }


.cms-cs-osc__content { position:relative; z-index:2; padding:clamp(20px,3vw,36px); }


.cms-cs-osc__title { margin:0 0 10px; color:#fff; font-family:var(--font-heading); font-size:clamp(20px,2.5vw,28px); font-weight:600; line-height:1.2; }


.cms-cs-osc__desc { display:-webkit-box; overflow:hidden; margin:0 0 16px; color:rgba(255,255,255,.75); font-family:var(--font-body); font-size:14px; line-height:1.6; -webkit-line-clamp:3; -webkit-box-orient:vertical; }


.cms-cs-osc__stats { display:flex; gap:0; margin-bottom:12px; }


.cms-cs-osc__stat { padding:0 clamp(10px,1.5vw,16px); border-right:1px solid rgba(255,255,255,.2); text-align:center; }


.cms-cs-osc__stat:first-child { padding-left:0; }


.cms-cs-osc__stat:last-child { padding-right:0; border-right:none; }


.cms-cs-osc__stat-value { margin:0 0 2px; color:#fff; font-family:var(--font-heading); font-size:clamp(18px,2vw,24px); font-weight:700; line-height:1.2; }


.cms-cs-osc__stat-label { margin:0; color:rgba(255,255,255,.75); font-family:var(--font-body); font-size:10px; font-weight:600; text-transform:uppercase; letter-spacing:.5px; }


.cms-cs-osl { position:relative; max-width:var(--container,1200px); margin:0 auto; overflow:hidden; border-radius:var(--radius-lg,12px); }


.cms-cs-osl__track { display:flex; transition:transform 0.5s ease; }


.cms-cs-osl__slide { position:relative; display:flex; flex-direction:column; justify-content:flex-end; min-width:100%; min-height:clamp(400px,50vh,560px); }


.cms-cs-osl__bg { position:absolute; inset:0; z-index:0; }


.cms-cs-osl__bg img { display:block; width:100%; height:100%; object-fit:cover; }


.cms-cs-osl__gradient { position:absolute; inset:0; z-index:1; background:linear-gradient(to top,rgba(0,0,0,.82) 0%,rgba(0,0,0,.55) 40%,rgba(0,0,0,.15) 70%,rgba(0,0,0,.05) 100%); }


.cms-cs-osl__content { position:relative; z-index:2; padding:clamp(28px,4vw,48px); }


.cms-cs-osl__title { max-width:640px; margin:0 0 14px; color:#fff; font-family:var(--font-heading); font-size:clamp(24px,3vw,38px); font-weight:600; line-height:1.2; }


.cms-cs-osl__desc { max-width:580px; margin:0 0 24px; color:rgba(255,255,255,.75); font-family:var(--font-body); font-size:15px; line-height:1.7; }


.cms-cs-osl__bottom { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:clamp(16px,2vw,24px); }


.cms-cs-osl__stats { display:flex; gap:0; }


.cms-cs-osl__stat { padding:0 clamp(14px,2vw,24px); border-right:1px solid rgba(255,255,255,.2); text-align:center; }


.cms-cs-osl__stat:first-child { padding-left:0; }


.cms-cs-osl__stat:last-child { padding-right:0; border-right:none; }


.cms-cs-osl__stat-value { margin:0 0 4px; color:#fff; font-family:var(--font-heading); font-size:clamp(20px,2.5vw,30px); font-weight:700; line-height:1.2; }


.cms-cs-osl__stat-label { margin:0; color:rgba(255,255,255,.75); font-family:var(--font-body); font-size:11px; font-weight:600; text-transform:uppercase; letter-spacing:.5px; }


.cms-cs-osl__arrows { position:absolute; left:50%; bottom:24px; z-index:3; display:flex; gap:12px; transform:translateX(-50%); }


.cms-cs-osl__arrow { display:flex; align-items:center; justify-content:center; width:44px; height:44px; border:1px solid rgba(255,255,255,.3); border-radius:50%; background:rgba(255,255,255,.15); color:#fff; font-size:14px; cursor:pointer; backdrop-filter:blur(8px); transition:all .25s ease; }


.cms-cs-osl__arrow:hover { background:rgba(255,255,255,.35); border-color:rgba(255,255,255,.5); }


.cms-cs-test {
    --cms-cs-test-text: var(--color-text);
    --cms-cs-test-muted: var(--color-text-muted);
    --cms-cs-test-card-bg: var(--color-bg);
    --cms-cs-test-card-border: var(--color-border);
    --cms-cs-test-stat-bg: color-mix(in srgb, var(--color-accent) 6%, transparent);
}


.cms-cs-test--dark {
    --cms-cs-test-text: var(--color-dark-text);
    --cms-cs-test-muted: var(--color-dark-text-muted);
    --cms-cs-test-card-bg: rgba(255,255,255,0.04);
    --cms-cs-test-card-border: rgba(255,255,255,0.08);
    --cms-cs-test-stat-bg: rgba(255,255,255,0.06);
}


.cms-cs-test__card { max-width:var(--container,1200px); margin:0 auto; padding:clamp(36px,5vw,64px); border:1px solid var(--cms-cs-test-card-border); border-radius:var(--radius-lg,12px); background:var(--cms-cs-test-card-bg); text-align:center; transition:transform .3s ease, box-shadow .3s ease; }


.cms-cs-test__card:hover { transform:translateY(-4px); box-shadow:var(--shadow-hover); }


.cms-cs-test__mark { margin:0 0 16px; color:var(--color-accent); opacity:.25; font-family:var(--font-heading); font-size:72px; line-height:1; }


.cms-cs-test__quote { max-width:760px; margin:0 auto 28px; color:var(--cms-cs-test-text); font-family:var(--font-body); font-size:clamp(18px,2.2vw,24px); font-style:italic; line-height:1.6; }


.cms-cs-test__author { display:flex; align-items:center; justify-content:center; gap:16px; margin-bottom:32px; }


.cms-cs-test__avatar { width:56px; height:56px; border:3px solid color-mix(in srgb, var(--color-accent) 20%, transparent); border-radius:50%; object-fit:cover; }


.cms-cs-test__author-info { text-align:left; }


.cms-cs-test__author-name { margin:0; color:var(--cms-cs-test-text); font-family:var(--font-heading); font-size:16px; font-weight:600; }


.cms-cs-test__author-role { margin:2px 0 0; color:var(--color-accent); font-family:var(--font-body); font-size:13px; }


.cms-cs-test__project { margin:0 0 8px; color:var(--color-accent); font-family:var(--font-body); font-size:13px; font-weight:600; text-transform:uppercase; letter-spacing:1.5px; }


.cms-cs-test__title { margin:0 0 24px; color:var(--cms-cs-test-text); font-family:var(--font-heading); font-size:clamp(16px,1.5vw,20px); font-weight:600; }


.cms-cs-test__stats { display:flex; justify-content:center; flex-wrap:wrap; gap:clamp(12px,2vw,24px); margin-bottom:28px; }


.cms-cs-test__stat { min-width:100px; padding:16px 24px; border-radius:var(--radius,8px); background:var(--cms-cs-test-stat-bg); text-align:center; }


.cms-cs-test__stat-value { margin:0 0 4px; color:var(--color-accent); font-family:var(--font-heading); font-size:clamp(20px,2.5vw,28px); font-weight:700; line-height:1.2; }


.cms-cs-test__stat-label { margin:0; color:var(--cms-cs-test-muted); font-family:var(--font-body); font-size:11px; font-weight:600; text-transform:uppercase; letter-spacing:.5px; }


@media (max-width:768px) {
    .cms-cs-split__card { flex-direction:column; }
    .cms-cs-split__image-col { flex:1 1 auto; width:100%; min-height:240px; }
    .cms-cs-split__stats,
    .cms-cs-test__stats { display:grid; grid-template-columns:repeat(2,1fr); }
    .cms-cs-ovr__bottom,
    .cms-cs-osl__bottom { flex-direction:column; align-items:flex-start; }
    .cms-cs-ovr__stats,
    .cms-cs-osl__stats { flex-wrap:wrap; gap:12px 0; }
    .cms-cs-osl__arrow { display:none; }}


@media (max-width:600px) {
    .cms-cs-ovr__stats { display:grid; grid-template-columns:repeat(2,1fr); gap:16px; }
    .cms-cs-ovr__stat { padding:0; border-right:none; text-align:left; }}


.cms-pa-ch { --cms-pa-ch-text: var(--color-text); --cms-pa-ch-muted: var(--color-text-muted); --cms-pa-ch-card-bg: var(--color-bg-alt,#f9fafb); }


.cms-pa-ch--dark { --cms-pa-ch-text: var(--color-dark-text); --cms-pa-ch-muted: var(--color-dark-text-muted); --cms-pa-ch-card-bg: rgba(255,255,255,0.05); }


.cms-pa-ch__card { display:flex; align-items:flex-start; gap:20px; max-width:var(--container,1200px); margin:0 auto; padding:24px; border-left:3px solid var(--color-accent); border-radius:var(--radius-lg,12px); background:var(--cms-pa-ch-card-bg); }


.cms-pa-ch__avatar { width:80px; height:80px; border-radius:50%; object-fit:cover; flex-shrink:0; }


.cms-pa-ch__info { flex:1; min-width:0; }


.cms-pa-ch__name { margin:0 0 8px 0; color:var(--cms-pa-ch-text); font-family:var(--font-heading); font-size:18px; font-weight:700; }


.cms-pa-ch__bio { display:-webkit-box; overflow:hidden; margin:0 0 12px 0; color:var(--cms-pa-ch-muted); font-family:var(--font-body); font-size:14px; line-height:1.6; -webkit-line-clamp:3; -webkit-box-orient:vertical; }


.cms-pa-ch__social { display:flex; gap:12px; }


.cms-pa-ch__social a { display:inline-flex; align-items:center; justify-content:center; width:32px; height:32px; border-radius:50%; color:var(--cms-pa-ch-muted); transition:color 0.2s ease, background 0.2s ease; }


.cms-pa-ch__social a:hover { color:var(--color-accent); }


.cms-pa-ch__social svg { width:16px; height:16px; fill:currentColor; }


/* Post Nav */
.cms-pn-mn { --cms-pn-mn-muted: var(--color-text-muted); }


.cms-pn-mn--dark { --cms-pn-mn-muted: var(--color-dark-text-muted); }


.cms-pn-mn__row { display:flex; align-items:center; justify-content:space-between; max-width:var(--container,1200px); margin:0 auto; font-family:var(--font-body); font-size:14px; }


.cms-pn-mn__link { color:var(--cms-pn-mn-muted); text-decoration:none; transition:color 0.2s ease; }


.cms-pn-mn__link:hover { color:var(--color-accent); }


.cms-pn-mn__link--next { margin-left:auto; }


.cms-pn-ar { --cms-pn-ar-text: var(--color-text); --cms-pn-ar-muted: var(--color-text-muted); --cms-pn-ar-border: var(--color-border); }


.cms-pn-ar--dark { --cms-pn-ar-text: var(--color-dark-text); --cms-pn-ar-muted: var(--color-dark-text-muted); --cms-pn-ar-border: rgba(255,255,255,0.1); }


.cms-pn-ar__wrap { display:flex; max-width:var(--container,1200px); margin:0 auto; border-top:1px solid var(--cms-pn-ar-border); border-bottom:1px solid var(--cms-pn-ar-border); }


.cms-pn-ar__side { flex:1; min-width:0; }


.cms-pn-ar__side + .cms-pn-ar__side { border-left:1px solid var(--cms-pn-ar-border); }


.cms-pn-ar__link { display:flex; align-items:center; gap:12px; padding:20px 0; color:var(--cms-pn-ar-text); text-decoration:none; transition:color 0.2s ease; }


.cms-pn-ar__side--next .cms-pn-ar__link { justify-content:flex-end; padding-left:24px; text-align:right; }


.cms-pn-ar__side--prev .cms-pn-ar__link { padding-right:24px; }


.cms-pn-ar__link:hover { color:var(--color-accent); }


.cms-pn-ar__arrow { flex-shrink:0; width:20px; height:20px; fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }


.cms-pn-ar__text { min-width:0; }


.cms-pn-ar__label { display:block; margin-bottom:4px; color:var(--cms-pn-ar-muted); font-family:var(--font-body); font-size:12px; font-weight:600; text-transform:uppercase; letter-spacing:0.5px; }


.cms-pn-ar__title { display:block; overflow:hidden; white-space:nowrap; text-overflow:ellipsis; font-family:var(--font-heading); font-size:15px; font-weight:600; }


.cms-pn-cd { --cms-pn-cd-text: var(--color-text); --cms-pn-cd-muted: var(--color-text-muted); --cms-pn-cd-border: var(--color-border); --cms-pn-cd-card-bg: var(--color-bg-alt,#f9fafb); }


.cms-pn-cd--dark { --cms-pn-cd-text: var(--color-dark-text); --cms-pn-cd-muted: var(--color-dark-text-muted); --cms-pn-cd-border: rgba(255,255,255,0.1); --cms-pn-cd-card-bg: rgba(255,255,255,0.05); }


.cms-pn-cd__grid { display:grid; grid-template-columns:1fr 1fr; gap:24px; max-width:var(--container,1200px); margin:0 auto; }


.cms-pn-cd__card { display:flex; align-items:center; gap:16px; padding:16px; border:1px solid var(--cms-pn-cd-border); border-radius:var(--radius-lg,12px); background:var(--cms-pn-cd-card-bg); color:var(--cms-pn-cd-text); text-decoration:none; transition:box-shadow 0.25s ease, transform 0.25s ease; }


.cms-pn-cd__card:hover { transform:translateY(-2px); box-shadow:0 8px 30px rgba(0,0,0,0.08); }


.cms-pn-cd__card--next { flex-direction:row-reverse; text-align:right; }


.cms-pn-cd__thumb { width:100px; height:80px; border-radius:var(--radius-md,8px); object-fit:cover; flex-shrink:0; }


.cms-pn-cd__info { flex:1; min-width:0; }


.cms-pn-cd__label { display:block; margin-bottom:6px; color:var(--cms-pn-cd-muted); font-family:var(--font-body); font-size:12px; font-weight:600; text-transform:uppercase; letter-spacing:0.5px; }


.cms-pn-cd__title { display:-webkit-box; overflow:hidden; font-family:var(--font-heading); font-size:15px; font-weight:600; line-height:1.4; -webkit-line-clamp:2; -webkit-box-orient:vertical; }


@media (max-width: 640px) {
    .cms-pn-ar__wrap { flex-direction: column; }
    .cms-pn-ar__side + .cms-pn-ar__side { border-top:1px solid var(--cms-pn-ar-border); border-left:none; }
    .cms-pn-ar__side--next .cms-pn-ar__link { justify-content:flex-start; padding-left:0; text-align:left; }
    .cms-pn-cd__grid { grid-template-columns:1fr; }
    .cms-pn-cd__card--next { flex-direction:row; text-align:left; }}


@media (max-width: 480px) {
    .cms-pa-ch__card { flex-direction:column; align-items:center; text-align:center; }
    .cms-pa-ch__social { justify-content:center; }}


/* Post TOC */
.ptoc-inline {
    --ptoc-text: var(--color-text);
    --ptoc-muted: var(--color-text-muted);
    --ptoc-border: var(--color-border);
    --ptoc-bg: color-mix(in srgb, var(--color-accent) 4%, var(--color-bg-alt, #f8f8f8));
    width: 100%;
    margin-bottom: 32px;
    padding: 20px 24px;
    border: 1px solid var(--ptoc-border);
    border-radius: var(--radius-lg, 12px);
    background: var(--ptoc-bg);
}


.ptoc-inline--dark {
    --ptoc-text: var(--color-dark-text);
    --ptoc-muted: var(--color-dark-text-muted);
    --ptoc-border: rgba(255,255,255,0.1);
    --ptoc-bg: rgba(255,255,255,0.05);
}


.ptoc-title {
    margin: 0 0 12px;
    padding: 0;
    color: var(--ptoc-text);
    font-family: var(--font-heading);
    font-size: 14px;
    font-weight: 700;
    letter-spacing: .6px;
    text-transform: uppercase;
}


.ptoc-list { list-style: none; margin: 0; padding: 0; }


.ptoc-list li { margin: 0; padding: 0; }


.ptoc-list a {
    display: block;
    padding: 5px 0;
    color: var(--ptoc-muted);
    font-family: var(--font-body);
    font-size: 14px;
    line-height: 1.5;
    text-decoration: none;
    transition: color 0.2s ease, padding-left 0.2s ease;
}


.ptoc-list a:hover,
.ptoc-list a.active {
    color: var(--color-accent);
}


.ptoc-list a.active { font-weight: 600; }


.ptoc-list .ptoc-h3 a { padding-left: 20px; font-size: 13px; }


.ptoc-inline summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    list-style: none;
    cursor: pointer;
}


.ptoc-inline summary::-webkit-details-marker { display: none; }


.ptoc-inline summary::marker { content: ''; display: none; }


.ptoc-inline .ptoc-chevron {
    width: 16px;
    height: 16px;
    color: var(--ptoc-muted);
    transition: transform 0.25s ease;
}


.ptoc-inline details[open] summary .ptoc-chevron { transform: rotate(180deg); }


.ptoc-floating__btn {
    position: fixed;
    right: 24px;
    bottom: 24px;
    z-index: 9999;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    border: 0;
    border-radius: 50%;
    background: var(--color-accent);
    box-shadow: 0 4px 16px rgba(0,0,0,0.18);
    cursor: pointer;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}


.ptoc-floating__btn:hover { transform: scale(1.08); box-shadow: 0 6px 20px rgba(0,0,0,0.25); }


.ptoc-floating__btn svg { width: 20px; height: 20px; color: #fff; }


.ptoc-floating__panel {
    --ptoc-text: var(--color-text);
    --ptoc-muted: var(--color-text-muted);
    --ptoc-border: var(--color-border);
    --ptoc-bg: var(--color-bg, #fff);
    position: fixed;
    right: 24px;
    bottom: 80px;
    z-index: 9999;
    width: 300px;
    max-height: 60vh;
    overflow-y: auto;
    padding: 20px;
    border: 1px solid var(--ptoc-border);
    border-radius: var(--radius-lg, 12px);
    background: var(--ptoc-bg);
    box-shadow: 0 8px 32px rgba(0,0,0,0.2);
    opacity: 0;
    visibility: hidden;
    transform: translateY(12px);
    transition: opacity 0.25s ease, visibility 0.25s ease, transform 0.25s ease;
}


.ptoc-floating__panel--dark {
    --ptoc-text: var(--color-dark-text);
    --ptoc-muted: var(--color-dark-text-muted);
    --ptoc-border: rgba(255,255,255,0.1);
    --ptoc-bg: var(--color-dark-bg, #1a1a2e);
}


.ptoc-floating__panel.ptoc-open {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}


.ptoc-panel-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 12px;
}


.ptoc-close {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    border: 1px solid var(--ptoc-border);
    border-radius: 50%;
    background: transparent;
    color: var(--ptoc-muted);
    cursor: pointer;
    transition: background 0.2s ease;
}


.ptoc-close:hover { background: rgba(0,0,0,0.05); }


.ptoc-floating__panel--dark .ptoc-close:hover { background: rgba(255,255,255,0.1); }


.ptoc-floating__panel .ptoc-title { margin: 0; }


.ptoc-floating__panel .ptoc-list a { font-size: 13px; }


.ptoc-floating__panel .ptoc-list .ptoc-h3 a { font-size: 12px; }


.ptoc-sidebar {
    --ptoc-text: var(--color-text);
    --ptoc-muted: var(--color-text-muted);
    position: sticky;
    top: 100px;
}


.ptoc-sidebar--dark {
    --ptoc-text: var(--color-dark-text);
    --ptoc-muted: var(--color-dark-text-muted);
}


.ptoc-sidebar-inner {
    padding-left: 16px;
    border-left: 2px solid var(--color-accent);
}


.ptoc-sidebar .ptoc-title { margin: 0 0 12px; font-size: 13px; }


.ptoc-sidebar .ptoc-list a { padding: 4px 0; font-size: 13px; }


.ptoc-sidebar .ptoc-list .ptoc-h3 a { padding-left: 20px; font-size: 12px; }


@media(min-width: 769px) {
    .ptoc-inline details { pointer-events: none; }
    .ptoc-inline details > .ptoc-list { display: block !important; }
    .ptoc-inline .ptoc-chevron { display: none; }}


@media(max-width: 768px) {
    .ptoc-inline { padding: 16px 18px; }
    .ptoc-inline details:not([open]) .ptoc-list { display: none; }
    .ptoc-inline details,
    .ptoc-inline summary {
        pointer-events: auto;
    }
    .ptoc-inline .ptoc-title { margin: 0; }
    .ptoc-floating__btn {
        right: 16px;
        bottom: 16px;
    }
    .ptoc-floating__panel {
        right: 16px;
        bottom: 72px;
        width: calc(100vw - 32px);
        max-width: 300px;
    }
    .ptoc-sidebar {
        position: static;
        margin-bottom: 24px;
    }}


/* Text Image Remaining */
.cms-ti-dsplit {
  width: 100%;
  --cms-ti-dsplit-bg: var(--color-dark-bg, #1a1a2e);
  --cms-ti-dsplit-text: #fff;
  --cms-ti-dsplit-muted: rgba(255,255,255,0.7);
}


.cms-ti-dsplit__wrap {
  display: flex;
  min-height: clamp(400px, 50vh, 600px);
  overflow: hidden;
}


.cms-ti-dsplit--image-left .cms-ti-dsplit__wrap {
  flex-direction: row-reverse;
}


.cms-ti-dsplit__text {
  flex: 1 1 50%;
  background: var(--cms-ti-dsplit-bg, var(--color-dark-bg, #1a1a2e));
  display: flex;
  align-items: center;
  justify-content: center;
  padding: clamp(40px, 5vw, 80px) clamp(28px, 4vw, 60px);
  position: relative;
  overflow: hidden;
}


.cms-ti-dsplit__inner {
  position: relative;
  z-index: 1;
  max-width: 480px;
  width: 100%;
}


.cms-ti-dsplit__title {
  font-family: var(--font-heading);
  font-size: clamp(24px, 3vw, 36px);
  font-weight: 600;
  line-height: 1.2;
  color: var(--cms-ti-dsplit-text, #fff);
  margin: 0 0 20px;
}


.cms-ti-dsplit__content {
  font-family: var(--font-body);
  font-size: 16px;
  line-height: 1.7;
  color: var(--cms-ti-dsplit-muted, rgba(255,255,255,0.7));
}


.cms-ti-dsplit__content p {
  margin: 0 0 14px;
}


.cms-ti-dsplit__content p:last-child {
  margin-bottom: 0;
}


.cms-ti-dsplit__items {
  margin-top: 24px;
}


.cms-ti-dsplit__item {
  display: flex;
  gap: 12px;
  align-items: flex-start;
  margin-bottom: 16px;
}


.cms-ti-dsplit__item:last-child {
  margin-bottom: 0;
}


.cms-ti-dsplit__item-icon {
  flex-shrink: 0;
  width: 24px;
  height: 24px;
  border-radius: 50%;
  background: rgba(255,255,255,0.1);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 12px;
  line-height: 1;
  margin-top: 2px;
}


.cms-ti-dsplit__item-text {
  font-family: var(--font-body);
  font-size: 15px;
  color: var(--cms-ti-dsplit-muted, rgba(255,255,255,0.7));
  line-height: 1.5;
}


.cms-ti-dsplit__item-text strong {
  color: var(--cms-ti-dsplit-text, #fff);
  font-weight: 600;
}


.cms-ti-dsplit__cta {
  margin-top: 32px;
}


.cms-ti-dsplit__image-col {
  flex: 1 1 50%;
  min-height: 300px;
}


.cms-ti-dsplit__image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}


.cms-ti-std__wrap {
  display: flex;
  gap: clamp(32px, 5vw, 64px);
  align-items: center;
  max-width: var(--container, 1200px);
  margin: 0 auto;
  padding: 0 20px;
}


.cms-ti-std--image-left .cms-ti-std__wrap {
  flex-direction: row-reverse;
}


.cms-ti-std--dark {
  --cms-ti-std-text: var(--color-dark-text);
  --cms-ti-std-muted: var(--color-dark-text-muted);
}


.cms-ti-std__text,
.cms-ti-std__image-col {
  flex: 1 1 50%;
  min-width: 0;
}


.cms-ti-std__title {
  font-family: var(--font-heading);
  font-size: clamp(24px, 3vw, 36px);
  font-weight: 600;
  line-height: 1.2;
  color: var(--cms-ti-std-text, var(--color-text));
  margin: 0 0 20px;
}


.cms-ti-std__content {
  font-family: var(--font-body);
  font-size: 16px;
  line-height: 1.7;
  color: var(--cms-ti-std-muted, var(--color-text-muted));
}


.cms-ti-std__content p {
  margin: 0 0 16px;
}


.cms-ti-std__content p:last-child {
  margin-bottom: 0;
}


.cms-ti-std__cta {
  margin-top: 28px;
}


.cms-ti-std__image-col .cms-img-deco--none {
  box-shadow: 0 8px 30px rgba(0,0,0,0.12);
}


.cms-ti-parallax__wrap {
  display: flex;
  max-width: var(--container, 1200px);
  margin: 0 auto;
  min-height: 500px;
  overflow: hidden;
  border-radius: var(--radius-lg, 12px);
}


.cms-ti-parallax--image-left .cms-ti-parallax__wrap {
  flex-direction: row-reverse;
}


.cms-ti-parallax--dark {
  --cms-ti-parallax-text: var(--color-dark-text);
  --cms-ti-parallax-muted: var(--color-dark-text-muted);
}


.cms-ti-parallax__text {
  flex: 1 1 45%;
  min-width: 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: clamp(36px, 5vw, 72px) clamp(28px, 4vw, 56px);
}


.cms-ti-parallax__title {
  font-family: var(--font-heading);
  font-size: clamp(26px, 3.2vw, 40px);
  font-weight: 600;
  line-height: 1.2;
  color: var(--cms-ti-parallax-text, var(--color-text));
  margin: 0 0 24px;
}


.cms-ti-parallax__content {
  font-family: var(--font-body);
  font-size: 16px;
  line-height: 1.7;
  color: var(--cms-ti-parallax-muted, var(--color-text-muted));
}


.cms-ti-parallax__content p {
  margin: 0 0 16px;
}


.cms-ti-parallax__content p:last-child {
  margin-bottom: 0;
}


.cms-ti-parallax__cta {
  margin-top: 28px;
}


.cms-ti-parallax__image-col {
  flex: 1 1 55%;
  min-width: 0;
  position: relative;
}


.cms-ti-parallax__image {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}


.cms-ti-covl__wrap {
  max-width: var(--container, 1200px);
  margin: 0 auto;
  padding: 0 20px;
  position: relative;
  min-height: 480px;
  display: flex;
  align-items: stretch;
}


.cms-ti-covl--dark {
  --cms-ti-covl-text: var(--color-dark-text);
  --cms-ti-covl-muted: var(--color-dark-text-muted);
  --cms-ti-covl-card-bg: rgba(30,30,50,0.95);
  --cms-ti-covl-card-shadow: 0 12px 40px rgba(0,0,0,0.4);
}


.cms-ti-covl__image-col {
  flex: 0 0 60%;
  position: relative;
  margin-left: 250px;
}


.cms-ti-covl--image-left .cms-ti-covl__image-col {
  order: -1;
  margin-left: 0;
  margin-right: 250px;
}


.cms-ti-covl__image-col .cms-img-deco {
  height: 100%;
  min-height: 400px;
}


.cms-ti-covl__card {
  position: absolute;
  z-index: 2;
  left: -60px;
  bottom: clamp(24px, 4vw, 48px);
  width: clamp(320px, 40%, 440px);
  background: var(--cms-ti-covl-card-bg, var(--color-bg, #fff));
  border-radius: var(--radius-lg, 12px);
  padding: clamp(28px, 3vw, 40px);
  box-shadow: var(--cms-ti-covl-card-shadow, 0 12px 40px rgba(0,0,0,0.12));
}


.cms-ti-covl--image-left .cms-ti-covl__card {
  left: auto;
  right: -60px;
}


.cms-ti-covl__title {
  font-family: var(--font-heading);
  font-size: clamp(22px, 2.8vw, 32px);
  font-weight: 600;
  line-height: 1.2;
  color: var(--cms-ti-covl-text, var(--color-text));
  margin: 0 0 16px;
}


.cms-ti-covl__content {
  font-family: var(--font-body);
  font-size: 15px;
  line-height: 1.7;
  color: var(--cms-ti-covl-muted, var(--color-text-muted));
}


.cms-ti-covl__content p {
  margin: 0 0 12px;
}


.cms-ti-covl__content p:last-child {
  margin-bottom: 0;
}


.cms-ti-covl__cta {
  margin-top: 24px;
}


@media (max-width: 1024px) {
  .cms-ti-covl__image-col {
    margin-left: 120px;
  }
  .cms-ti-covl--image-left .cms-ti-covl__image-col {
    margin-left: 0;
    margin-right: 120px;
  }}


@media (max-width: 768px) {
  .cms-ti-dsplit__wrap,
  .cms-ti-std__wrap {
    flex-direction: column !important;
  }
  .cms-ti-dsplit__text,
  .cms-ti-dsplit__image-col,
  .cms-ti-std__text,
  .cms-ti-std__image-col {
    flex: 1 1 auto;
    width: 100%;
  }
  .cms-ti-dsplit__image-col {
    min-height: 250px;
  }
  .cms-ti-parallax__wrap {
    flex-direction: column-reverse !important;
    min-height: auto;
    border-radius: 0;
  }
  .cms-ti-parallax__text {
    flex: 1 1 auto;
    width: 100%;
    padding: clamp(28px, 4vw, 48px) 20px;
  }
  .cms-ti-parallax__image-col {
    flex: 1 1 auto;
    width: 100%;
    height: 300px;
    position: relative;
  }
  .cms-ti-parallax__image {
    background-attachment: scroll;
  }
  .cms-ti-covl__wrap {
    flex-direction: column;
    min-height: auto;
  }
  .cms-ti-covl__image-col {
    flex: 1 1 auto;
    width: 100%;
    order: 0;
    margin-left: 0;
    margin-right: 0;
  }
  .cms-ti-covl__image-col .cms-img-deco {
    min-height: 260px;
  }
  .cms-ti-covl__card {
    position: relative;
    left: auto;
    right: auto;
    bottom: auto;
    width: calc(100% - 24px);
    margin: -40px auto 0;
  }}


/* Hero Post */
.cms-hero-post-centered {
    position: relative;
    width: 100%;
    min-height: var(--cms-hero-post-centered-height, 100vh);
    padding: var(--cms-hero-post-centered-pad, 0);
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    background: var(--color-dark-bg);
}


.cms-hero-post-centered__bg {
    position: absolute;
    inset: 0;
    z-index: 1;
    filter: saturate(0.85) brightness(0.95);
}


.cms-hero-post-centered__overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(20, 15, 10, 0.3) 0%, rgba(20, 15, 10, 0.55) 100%);
    z-index: 2;
}


.cms-hero-post-centered__content {
    position: relative;
    z-index: 3;
    max-width: 800px;
    width: 100%;
    padding: 40px 24px;
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
}


.cms-hero-post-centered--left .cms-hero-post-centered__content {
    max-width: min(var(--container, 1200px), calc(100% - 48px));
    text-align: left;
    align-items: flex-start;
}


.cms-hero-post-centered--editorial .cms-hero-post-centered__content {
    padding: 64px 24px 72px;
}


.cms-hero-post-centered__badge,
.cms-hero-post-min__badge,
.cms-hero-post-split__badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin: 0 0 20px 0;
    padding: 6px 14px;
    border-radius: 999px;
    background: rgba(212,175,55,0.18);
    border: 1px solid rgba(212,175,55,0.35);
    color: #fff;
    font-family: var(--font-body);
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}


.cms-hero-post-centered__title {
    font-family: var(--font-heading);
    font-size: clamp(40px, 8vw, 80px);
    font-weight: 500;
    line-height: 1.1;
    color: #fff;
    margin: 0 0 20px 0;
    letter-spacing: -0.01em;
}


.cms-hero-post-centered--editorial .cms-hero-post-centered__title {
    max-width: 760px;
    font-size: clamp(34px, 5.2vw, 58px);
    line-height: 1.06;
}


.cms-hero-post-centered__subtitle {
    font-family: var(--font-body);
    font-size: clamp(15px, 1.8vw, 18px);
    line-height: 1.7;
    color: rgba(255,255,255,0.75);
    margin: 0 0 24px 0;
    max-width: 580px;
    font-weight: 400;
}


.cms-hero-post-centered--editorial .cms-hero-post-centered__subtitle {
    max-width: 640px;
    font-size: clamp(14px, 1.45vw, 17px);
    line-height: 1.74;
    color: rgba(255,255,255,0.78);
}


.cms-hero-post-centered__meta,
.cms-hero-post-min__meta,
.cms-hero-post-split__meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 8px;
    font-family: var(--font-body);
    font-size: 13px;
    line-height: 1.5;
    color: rgba(255,255,255,0.72);
    text-transform: uppercase;
    letter-spacing: 0.06em;
}


.cms-hero-post-centered__sep,
.cms-hero-post-min__sep,
.cms-hero-post-split__sep {
    opacity: .45;
}


.cms-hero-post-centered--left .cms-hero-post-centered__meta {
    justify-content: flex-start;
}


.cms-hero-post-centered__scroll {
    position: absolute;
    bottom: 36px;
    left: 50%;
    transform: translateX(-50%);
    z-index: 3;
    opacity: .5;
    animation: heroPostCenteredBounce 2.5s ease infinite;
}


@keyframes heroPostCenteredBounce {
    0%, 20%, 50%, 80%, 100% { transform: translateX(-50%) translateY(0); }
    40% { transform: translateX(-50%) translateY(-8px); }
    60% { transform: translateX(-50%) translateY(-4px); }
}


.cms-hero-post-min {
    width: 100%;
    background: var(--cms-hero-post-min-bg, var(--color-bg));
    min-height: 200px;
    display: flex;
    align-items: center;
    justify-content: center;
}


.cms-hero-post-min__inner {
    max-width: var(--container, 1200px);
    width: 100%;
    padding: clamp(40px, 5vw, 72px) 24px;
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
}


.cms-hero-post-min__title {
    font-family: var(--font-heading);
    font-size: clamp(26px, 3.5vw, 44px);
    font-weight: 700;
    line-height: 1.2;
    color: var(--cms-hero-post-min-text, var(--color-text));
    margin: 0 0 20px 0;
    max-width: 800px;
}


.cms-hero-post-min__meta {
    color: var(--cms-hero-post-min-muted, var(--color-text-muted));
    padding-bottom: 24px;
    border-bottom: 1px solid var(--cms-hero-post-min-border, var(--color-border));
}


.cms-hero-post-min__author,
.cms-hero-post-split__author {
    display: inline-flex;
    align-items: center;
    gap: 6px;
}


.cms-hero-post-min__avatar,
.cms-hero-post-split__avatar {
    width: 28px;
    height: 28px;
    border-radius: 50%;
    object-fit: cover;
}


.cms-hero-post-split {
    width: 100%;
    background: var(--cms-hero-post-split-bg, var(--color-bg));
    overflow: hidden;
    position: relative;
    min-height: var(--cms-hero-post-split-height, auto);
}


.cms-hero-post-split__grid {
    display: flex;
    align-items: center;
    max-width: var(--container, 1200px);
    margin: 0 auto;
    min-height: inherit;
}


.cms-hero-post-split__text {
    flex: 1 1 50%;
    min-width: 0;
    padding: clamp(48px, 6vw, 80px) clamp(24px, 4vw, 64px);
    display: flex;
    flex-direction: column;
    justify-content: center;
}


.cms-hero-post-split__title {
    font-family: var(--font-heading);
    font-size: clamp(26px, 3.5vw, 44px);
    font-weight: 700;
    line-height: 1.15;
    color: var(--cms-hero-post-split-text, var(--color-text));
    margin: 0 0 20px 0;
}


.cms-hero-post-split__meta {
    justify-content: flex-start;
    color: var(--cms-hero-post-split-muted, var(--color-text-muted));
}


.cms-hero-post-split__image {
    flex: 1 1 50%;
    min-width: 0;
    overflow: hidden;
}


.cms-hero-post-split__img {
    width: 100%;
    height: 100%;
    min-height: 400px;
    display: block;
    object-fit: cover;
    border-radius: var(--radius-lg, 12px) 0 0 var(--radius-lg, 12px);
}


@media (max-width: 768px) {
    .cms-hero-post-split__grid {
        flex-direction: column !important;
    }
    .cms-hero-post-split__text {
        flex: 1 1 auto !important;
        width: 100% !important;
        padding: 40px 24px !important;
        order: 2;
        text-align: center;
    }
    .cms-hero-post-split__image {
        flex: 1 1 auto !important;
        width: 100% !important;
        max-height: 300px;
        order: 1;
    }
    .cms-hero-post-split__meta {
        justify-content: center;
    }}


/* Hero Advanced */
.cms-hero-cwm {
    width: 100%;
    position: relative;
    z-index: 2;
    overflow: visible;
    background: var(--cms-hero-cwm-bg, var(--color-dark-bg));
    min-height: var(--cms-hero-cwm-height, 80vh);
    padding: var(--cms-hero-cwm-pad, 0);
    display: flex;
    align-items: center;
    margin-bottom: var(--cms-hero-cwm-overflow-margin, 0);
}


.cms-hero-cwm__overlay {
    position: absolute;
    inset: 0;
    background: var(--cms-hero-cwm-overlay, transparent);
    z-index: 1;
}


.cms-hero-cwm__shell {
    position: relative;
    z-index: 3;
    max-width: var(--container);
    width: 100%;
    margin: 0 auto;
    padding: 40px 24px;
    display: flex;
    align-items: center;
    gap: clamp(24px, 4vw, 48px);
}


.cms-hero-cwm__text {
    flex: 1 1 100%;
    min-width: 0;
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
}


.cms-hero-cwm__text--split {
    flex-basis: 55%;
    text-align: left;
    align-items: flex-start;
}


.cms-hero-cwm__title {
    font-family: var(--font-heading);
    font-size: clamp(36px, 6vw, 72px);
    font-weight: 700;
    line-height: 1.08;
    color: var(--cms-hero-cwm-text, #fff);
    margin: 0 0 20px 0;
    max-width: 800px;
}


.cms-hero-cwm__subtitle {
    font-family: var(--font-body);
    font-size: clamp(16px, 1.8vw, 20px);
    line-height: 1.7;
    color: var(--cms-hero-cwm-muted, rgba(255,255,255,0.7));
    margin: 0 0 36px 0;
    max-width: 640px;
}


.cms-hero-cwm__actions {
    display: flex;
    gap: 16px;
    flex-wrap: wrap;
    justify-content: center;
}


.cms-hero-cwm__text--split .cms-hero-cwm__actions {
    justify-content: flex-start;
}


.cms-hero-cwm__media {
    flex: 1 1 42%;
    min-width: 0;
    position: relative;
    z-index: 4;
    align-self: center;
}


.cms-hero-cwm__media-inner {
    transition: transform .4s ease, box-shadow .4s ease;
}


.cms-hero-cwm__media-inner:hover {
    transform: translateY(-6px);
    box-shadow: var(--shadow-hover);
}


.cms-hero-cwm__image {
    width: 100%;
    display: block;
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-lg);
    aspect-ratio: 4 / 3;
    object-fit: cover;
}


.cms-hero-post-overlay {
    position: relative;
    width: 100%;
    min-height: var(--cms-hero-post-overlay-height, clamp(350px,45vh,500px));
    display: flex;
    align-items: flex-end;
    overflow: hidden;
    background: var(--color-dark-bg, #111);
}


.cms-hero-post-overlay__bg {
    position: absolute;
    inset: -6% 0;
    z-index: 1;
}


.cms-hero-post-overlay__shade {
    position: absolute;
    inset: 0;
    background: linear-gradient(to top, rgba(0,0,0,0.85) 0%, rgba(0,0,0,0.5) 40%, rgba(0,0,0,0.1) 70%, transparent 100%);
    z-index: 2;
}


.cms-hero-post-overlay__inner {
    position: relative;
    z-index: 3;
    max-width: var(--container, 1200px);
    width: 100%;
    margin: 0 auto;
}


.cms-hero-post-overlay__content {
    max-width: 700px;
    padding: 32px 40px 48px;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
}


.cms-hero-post-overlay__badge {
    display: inline-block;
    padding: 4px 12px;
    border-radius: var(--radius-full,20px);
    background: var(--color-accent);
    color: #fff;
    font-size: 12px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .5px;
    margin-bottom: 16px;
}


.cms-hero-post-overlay__title {
    font-family: var(--font-heading);
    font-size: clamp(26px, 3.8vw, 44px);
    font-weight: 700;
    line-height: 1.15;
    color: #fff;
    margin: 0 0 16px 0;
}


.cms-hero-post-overlay__meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    font-family: var(--font-body);
    font-size: 14px;
    color: rgba(255,255,255,0.8);
}


.cms-hero-post-overlay__sep { opacity: .5; }


.cms-hero-post-overlay__author {
    display: inline-flex;
    align-items: center;
    gap: 4px;
}


.cms-hero-post-overlay__avatar {
    width: 28px;
    height: 28px;
    border-radius: 50%;
    object-fit: cover;
}


.cms-hero-oc {
    position: relative;
    width: 100%;
    overflow: visible;
    margin-bottom: var(--cms-hero-oc-margin, 0);
    z-index: 2;
}


.cms-hero-oc__bg {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 140px;
    background: var(--cms-hero-oc-bg, var(--color-dark-bg));
    z-index: 0;
}


.cms-hero-oc:not(.cms-hero-oc--overflow) .cms-hero-oc__bg {
    bottom: 0;
}


.cms-hero-oc__bg-image,
.cms-hero-oc__bg-overlay {
    position: absolute;
    inset: 0;
}


.cms-hero-oc__bg-image {
}


.cms-hero-oc__bg-overlay {
    background: var(--cms-hero-oc-overlay, transparent);
}


.cms-hero-oc__inner {
    position: relative;
    z-index: 3;
    max-width: var(--container);
    margin: 0 auto;
    padding: clamp(80px, 12vw, 160px) 24px 0;
    text-align: center;
}


.cms-hero-oc__title {
    font-family: var(--font-heading);
    font-size: clamp(36px, 7vw, 72px);
    font-weight: 600;
    line-height: 1.1;
    color: var(--cms-hero-oc-text, #fff);
    margin: 0 auto 16px;
    max-width: 900px;
}


.cms-hero-oc__subtitle {
    font-family: var(--font-body);
    font-size: clamp(16px, 2vw, 20px);
    line-height: 1.6;
    color: var(--cms-hero-oc-muted, rgba(255,255,255,0.7));
    margin: 0 auto 32px;
    max-width: 700px;
}


.cms-hero-oc__actions {
    display: flex;
    gap: 16px;
    flex-wrap: wrap;
    justify-content: center;
    margin-bottom: clamp(40px, 6vw, 60px);
}


.cms-hero-oc__cards {
    display: grid;
    grid-template-columns: repeat(var(--cms-hero-oc-cols, 3), 1fr);
    gap: clamp(12px, 2vw, 24px);
    padding-bottom: 40px;
}


.cms-hero-oc__card {
    border-radius: var(--radius-lg);
    overflow: hidden;
    box-shadow: var(--shadow-lg);
    background: var(--color-bg);
    transition: transform .3s ease, box-shadow .3s ease;
}


.cms-hero-oc__card:hover {
    transform: translateY(-4px);
    box-shadow: var(--shadow-hover);
}


.cms-hero-oc__card-image {
    width: 100%;
    aspect-ratio: 4/3;
    object-fit: cover;
    display: block;
}


.cms-hero-oc__card-title {
    padding: 16px 20px;
    font-family: var(--font-body);
    font-size: 14px;
    font-weight: 600;
    color: var(--color-text);
}


@media (max-width: 900px) {
    .cms-hero-oc__cards {
        grid-template-columns: repeat(2, 1fr) !important;
    }}


@media (max-width: 768px) {
    .cms-hero-cwm {
        margin-bottom: 0 !important;
        min-height: auto !important;
    }
    .cms-hero-cwm__shell {
        flex-direction: column !important;
    }
    .cms-hero-cwm__text,
    .cms-hero-cwm__text--split {
        text-align: center !important;
        align-items: center !important;
        flex: 1 1 100% !important;
    }
    .cms-hero-cwm__media {
        width: 100% !important;
        max-width: 360px !important;
        margin: 0 auto !important;
    }
    .cms-hero-post-overlay__content {
        max-width: 100% !important;
        padding: 24px 20px 32px !important;
    }}


@media (max-width: 560px) {
    .cms-hero-oc__cards {
        grid-template-columns: 1fr !important;
    }}


/* Hero Core */
.cms-hero-centered {
    position: relative;
    width: 100%;
    min-height: var(--cms-hero-centered-height, 100vh);
    padding: var(--cms-hero-centered-pad, 0);
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    background: var(--cms-hero-centered-bg, var(--color-dark-bg));
}


.cms-hero-centered__bg {
    position: absolute;
    inset: -6% 0;
    z-index: 1;
}


.cms-hero-centered__overlay {
    position: absolute;
    inset: 0;
    background: var(--cms-hero-centered-overlay, transparent);
    z-index: 2;
}


.cms-hero-centered__content {
    position: relative;
    z-index: 3;
    max-width: var(--container);
    width: 100%;
    padding: 40px 24px;
    text-align: var(--cms-hero-centered-align, center);
    display: flex;
    flex-direction: column;
    align-items: var(--cms-hero-centered-items, center);
}


.cms-hero-centered__title {
    font-family: var(--font-heading);
    font-size: clamp(40px, 8vw, 80px);
    font-weight: 500;
    line-height: 1.1;
    color: var(--cms-hero-centered-text, #fff);
    margin: 0 0 20px 0;
    max-width: 900px;
}


.cms-hero-centered__subtitle {
    font-family: var(--font-body);
    font-size: clamp(16px, 2vw, 20px);
    line-height: 1.6;
    color: var(--cms-hero-centered-subtitle, rgba(255,255,255,0.8));
    margin: 0 0 36px 0;
    max-width: 700px;
}


.cms-hero-centered__actions {
    display: flex;
    gap: 16px;
    flex-wrap: wrap;
    justify-content: center;
}


.cms-hero-centered--align-left .cms-hero-centered__actions {
    justify-content: flex-start;
}


.cms-hero-centered__scroll,
.cms-hero-fc__scroll {
    position: absolute;
    bottom: 32px;
    left: 50%;
    transform: translateX(-50%);
    z-index: 3;
    animation: heroBounce 2s ease infinite;
}


@keyframes heroBounce {
    0%, 20%, 50%, 80%, 100% { transform: translateX(-50%) translateY(0); }
    40% { transform: translateX(-50%) translateY(-10px); }
    60% { transform: translateX(-50%) translateY(-5px); }
}


.cms-hero-fc {
    min-height: var(--cms-hero-fc-height, 100vh);
    padding: var(--cms-hero-fc-pad, 0);
}


.cms-hero-fc__bg { overflow: hidden; }


.cms-hero-scb {
    width: 100%;
    background: var(--cms-hero-scb-section, var(--color-bg));
    overflow: hidden;
    position: relative;
}


.cms-hero-scb__shell {
    max-width: var(--container);
    margin: 0 auto;
    padding: clamp(40px, 6vw, 80px) 24px;
    display: flex;
    align-items: stretch;
    gap: clamp(20px, 3vw, 32px);
}


.cms-hero-scb__block {
    flex: 1 1 52%;
    min-width: 0;
    background: var(--cms-hero-scb-block, var(--color-accent));
    border-radius: var(--radius-lg);
    padding: clamp(32px, 4vw, 48px);
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 24px;
    position: relative;
    overflow: hidden;
}


.cms-hero-scb__badges {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
}


.cms-hero-scb__badge-item {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-family: var(--font-body);
    font-size: 13px;
    font-weight: 600;
    color: #fff;
    background: rgba(255,255,255,0.18);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    padding: 8px 16px;
    border-radius: var(--radius-full);
    letter-spacing: .3px;
}


.cms-hero-scb__title {
    font-family: var(--font-heading);
    font-size: clamp(36px, 7vw, 72px);
    font-weight: 700;
    line-height: 1.08;
    color: #fff;
    margin: 0;
    letter-spacing: -0.02em;
}


.cms-hero-scb__subtitle {
    font-family: var(--font-body);
    font-size: clamp(16px, 1.8vw, 19px);
    line-height: 1.7;
    color: rgba(255,255,255,0.8);
    margin: 0;
    max-width: 520px;
}


.cms-hero-scb__actions {
    display: flex;
    gap: 14px;
    flex-wrap: wrap;
    margin-top: 8px;
}


.cms-hero-scb__media {
    flex: 1 1 44%;
    min-width: 0;
    display: flex;
    align-items: stretch;
}


.cms-hero-scb__video-wrap {
    width: 100%;
    border-radius: var(--radius-lg);
    overflow: hidden;
    background: var(--color-border);
    position: relative;
}


.cms-hero-scb__video,
.cms-hero-scb__image {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
}


.cms-hero-scb__image {
    min-height: 400px;
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-lg);
}


@media (max-width: 768px) {
    .cms-hero-scb__shell {
        flex-direction: column !important;
    }}


/* Hero Split Variants */
.cms-hero-sov {
    width: 100%;
    background: var(--cms-hero-sov-bg, var(--color-dark-bg));
    overflow: visible;
    position: relative;
    z-index: 2;
    margin-bottom: var(--cms-hero-sov-margin, 0);
}


.cms-hero-sov__shell,
.cms-hero-sp__shell {
    max-width: var(--container);
    margin: 0 auto;
    padding: clamp(60px, 10vw, 120px) 24px clamp(60px, 8vw, 100px);
    display: flex;
    align-items: center;
    gap: clamp(24px, 4vw, 48px);
}


.cms-hero-sov__text,
.cms-hero-sp__text {
    flex: 1 1 55%;
    min-width: 0;
}


.cms-hero-sov__stats,
.cms-hero-sp__stats {
    display: flex;
    gap: clamp(16px, 3vw, 32px);
    margin-bottom: 28px;
    flex-wrap: wrap;
}


.cms-hero-sov__stat,
.cms-hero-sp__stat {
    font-family: var(--font-body);
    display: flex;
    flex-direction: column;
    gap: 2px;
}


.cms-hero-sov__stat-value,
.cms-hero-sp__stat-value {
    font-size: clamp(20px, 3vw, 32px);
    font-weight: 800;
    color: var(--color-accent);
    line-height: 1.1;
}


.cms-hero-sov__stat-label,
.cms-hero-sp__stat-label {
    font-size: 12px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 1.5px;
    color: var(--cms-hero-sov-muted, var(--color-text-muted));
}


.cms-hero-sp__stat-label { color: var(--cms-hero-sp-muted, var(--color-text-muted)); }


.cms-hero-sov__title,
.cms-hero-sp__title {
    font-family: var(--font-heading);
    font-size: clamp(32px, 5.5vw, 64px);
    font-weight: 800;
    line-height: 1.08;
    margin: 0 0 20px 0;
}


.cms-hero-sov__title { color: var(--cms-hero-sov-text, var(--color-text)); }


.cms-hero-sp__title { color: var(--cms-hero-sp-text, var(--color-text)); }


.cms-hero-sov__subtitle,
.cms-hero-sp__subtitle {
    font-family: var(--font-body);
    font-size: clamp(16px, 1.8vw, 19px);
    line-height: 1.7;
    margin: 0 0 36px 0;
    max-width: 520px;
}


.cms-hero-sov__subtitle { color: var(--cms-hero-sov-muted, var(--color-text-muted)); }


.cms-hero-sp__subtitle { color: var(--cms-hero-sp-muted, var(--color-text-muted)); }


.cms-hero-sov__actions,
.cms-hero-sp__actions {
    display: flex;
    gap: 16px;
    flex-wrap: wrap;
}


.cms-hero-sov__media,
.cms-hero-sp__image {
    flex: 1 1 42%;
    min-width: 0;
    position: relative;
    z-index: 3;
}


.cms-hero-sov__media-inner {
    transition: transform .4s ease;
}


.cms-hero-sov__image {
    width: 100%;
    display: block;
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-lg);
    object-fit: cover;
    aspect-ratio: 4/3;
    max-height: 540px;
}


.cms-hero-sp {
    width: 100%;
    background: var(--cms-hero-sp-bg, var(--color-dark-bg));
    overflow: visible;
    position: relative;
    z-index: 2;
    margin-bottom: var(--cms-hero-sp-margin, 0);
}


.cms-hero-sp__image {
    display: flex;
    justify-content: center;
    margin-bottom: var(--cms-hero-sp-image-margin, 0);
}


.cms-hero-sp__image-inner {
    position: relative;
    width: 100%;
    max-width: 520px;
}


.cms-hero-sp__img {
    width: 100%;
    display: block;
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-lg);
    object-fit: cover;
    aspect-ratio: 3 / 4;
}


@media (max-width: 768px) {
    .cms-hero-sov__shell,
    .cms-hero-sp__shell {
        flex-direction: column-reverse !important;
    }
    .cms-hero-sov,
    .cms-hero-sp {
        margin-bottom: 0 !important;
    }
    .cms-hero-sp__image {
        min-width: 100% !important;
        flex: 1 1 100% !important;
        margin-bottom: 0 !important;
    }
    .cms-hero-sp__image-inner {
        max-width: 320px !important;
    }
    .cms-hero-sp__img {
        aspect-ratio: 3 / 4 !important;
        max-height: 400px !important;
    }}


/* Hero Author / Glow */
.cms-hero-author {
    background: var(--cms-hero-author-bg, var(--color-bg));
    padding: clamp(72px,9vw,116px) 24px;
}


.cms-hero-author__wrap {
    max-width: var(--container, 1200px);
    margin: 0 auto;
    display: grid;
    grid-template-columns: minmax(110px, 156px) minmax(0, 1fr);
    align-items: center;
    gap: clamp(28px, 4vw, 56px);
}


.cms-hero-author--reversed .cms-hero-author__wrap { direction: rtl; }


.cms-hero-author__avatar,
.cms-hero-author__text { direction: ltr; }


.cms-hero-author__avatar img {
    width: clamp(104px, 12vw, 148px);
    height: clamp(104px, 12vw, 148px);
    border-radius: 50%;
    object-fit: cover;
    display: block;
    border: 3px solid var(--cms-hero-author-ring, var(--color-border));
    outline: 3px solid var(--cms-hero-author-accent-ring, var(--color-accent));
    outline-offset: 3px;
}


.cms-hero-author__text { min-width: 0; max-width: 900px; }


.cms-hero-author__kicker {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    font-family: var(--font-body);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .16em;
    text-transform: uppercase;
    color: var(--cms-hero-author-kicker, var(--color-text-muted));
    margin: 0 0 18px;
}


.cms-hero-author__kicker::before {
    content: "";
    width: 34px;
    height: 1px;
    background: currentColor;
    opacity: .75;
}


.cms-hero-author__name {
    font-family: var(--font-heading);
    font-size: clamp(34px, 4.8vw, 58px);
    font-weight: 800;
    line-height: 1.04;
    color: var(--cms-hero-author-text, var(--color-text));
    margin: 0 0 14px;
    text-wrap: balance;
}


.cms-hero-author__role {
    font-family: var(--font-body);
    font-size: 14px;
    font-weight: 600;
    line-height: 1.5;
    color: var(--cms-hero-author-muted, var(--color-text-muted));
    margin: 0 0 14px;
}


.cms-hero-author__bio {
    font-family: var(--font-body);
    font-size: clamp(14px, 1.25vw, 16px);
    line-height: 1.82;
    color: var(--cms-hero-author-muted, var(--color-text-muted));
    margin: 0;
    max-width: 840px;
    text-wrap: pretty;
}


.cms-hero-glow {
    position: relative;
    width: 100%;
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    background: var(--color-dark-bg);
}


.cms-hero-glow__bg {
    position: absolute;
    inset: 0;
    opacity: .08;
}


.cms-hero-glow__orb {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -55%);
    width: clamp(300px, 50vw, 600px);
    height: clamp(300px, 50vw, 600px);
    background: var(--color-accent);
    border-radius: var(--radius-full);
    filter: blur(clamp(80px, 12vw, 160px));
    opacity: .25;
    pointer-events: none;
    animation: heroGlowPulse 4s ease-in-out infinite alternate;
}


.cms-hero-glow__orb--secondary {
    transform: translate(-45%, -50%);
    width: clamp(200px, 30vw, 400px);
    height: clamp(200px, 30vw, 400px);
    filter: blur(clamp(60px, 10vw, 120px));
    opacity: .15;
    animation-delay: 1s;
}


.cms-hero-glow__content {
    position: relative;
    z-index: 2;
    max-width: var(--container);
    width: 100%;
    padding: 60px 24px;
    text-align: var(--cms-hero-glow-align, center);
    display: flex;
    flex-direction: column;
    align-items: var(--cms-hero-glow-items, center);
}


.cms-hero-glow__title {
    font-family: var(--font-heading);
    font-size: clamp(40px, 8vw, 80px);
    font-weight: 600;
    line-height: 1.1;
    color: #fff;
    margin: 0 0 24px 0;
    max-width: 900px;
    letter-spacing: -0.02em;
}


.cms-hero-glow__highlight {
    font-family: var(--font-accent);
    color: var(--color-accent);
    font-weight: 700;
    font-size: 1.15em;
    position: relative;
    display: inline;
    text-shadow: 0 0 40px var(--color-accent), 0 0 80px var(--color-accent);
}


.cms-hero-glow__subtitle {
    font-family: var(--font-body);
    font-size: clamp(16px, 2vw, 20px);
    line-height: 1.7;
    color: rgba(255,255,255,0.7);
    margin: 0 0 40px 0;
    max-width: 650px;
}


.cms-hero-glow__actions {
    display: flex;
    gap: 16px;
    flex-wrap: wrap;
    justify-content: center;
}


.cms-hero-glow--align-left .cms-hero-glow__actions { justify-content: flex-start; }


@keyframes heroGlowPulse {
    0% { opacity: .2; transform: translate(-50%, -55%) scale(1); }
    100% { opacity: .35; transform: translate(-50%, -55%) scale(1.08); }
}


@media (max-width: 640px) {
    .cms-hero-author__wrap {
        grid-template-columns: 1fr;
        justify-items: center;
        text-align: center;
        direction: ltr;
    }
    .cms-hero-author__text,
    .cms-hero-author__bio { max-width: 100%; }
    .cms-hero-author__kicker { justify-content: center; }
    .cms-hero-author__kicker::before { display: none; }}


/* Hero no-inline modifiers */
.cms-hero-min__bg-img,
.cms-hero-post-centered__bg-img,
.cms-hero-post-overlay__bg-img,
.cms-hero-oc__bg-img,
.cms-hero-centered__bg-img,
.cms-hero-fc__bg-img,
.cms-hero-glow__bg-img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
}


.cms-hero-min {
    --cms-hero-min-bg: var(--color-bg);
    --cms-hero-min-text: var(--color-text);
    --cms-hero-min-muted: var(--color-text-muted);
    min-height: auto;
    padding: 80px 24px;
}


.cms-hero-min--bg-dark,
.cms-hero-min--bg-image,
.cms-hero-min--bg-accent,
.cms-hero-min--with-image {
    --cms-hero-min-text: #fff;
    --cms-hero-min-muted: rgba(255,255,255,0.78);
}


.cms-hero-min--bg-dark,
.cms-hero-min--bg-image { --cms-hero-min-bg: var(--color-dark-bg); }


.cms-hero-min--bg-accent { --cms-hero-min-bg: var(--color-accent); }


.cms-hero-min--with-image { padding: 0; }


.cms-hero-min--height-full { min-height: 100vh; }


.cms-hero-min--height-large { min-height: 80vh; }


.cms-hero-min--height-medium { min-height: 60vh; }


.cms-hero-min--height-small { min-height: clamp(280px,35vh,360px); }


.cms-hero-min--height-auto.cms-hero-min--with-image { min-height: clamp(360px,48vh,560px); }


.cms-hero-min--align-left .cms-hero-min__content { text-align: left; align-items: flex-start; }


.cms-hero-min--with-image .cms-hero-min__content { padding: clamp(56px, 8vw, 104px) 24px; }


.cms-hero-centered {
    --cms-hero-centered-bg: var(--color-dark-bg);
    --cms-hero-centered-text: #fff;
    --cms-hero-centered-subtitle: rgba(255,255,255,0.8);
    --cms-hero-centered-overlay: transparent;
    min-height: 100vh;
    padding: 0;
}


.cms-hero-centered--bg-light { --cms-hero-centered-bg: var(--color-bg); --cms-hero-centered-text: var(--color-text); --cms-hero-centered-subtitle: var(--color-text-muted); }


.cms-hero-centered--bg-accent { --cms-hero-centered-bg: var(--color-accent); }


.cms-hero-centered--height-large { min-height: 80vh; }


.cms-hero-centered--height-medium { min-height: 60vh; }


.cms-hero-centered--height-auto { min-height: auto; padding: 120px 0; }


.cms-hero-centered--overlay-gradient { --cms-hero-centered-text: #fff; --cms-hero-centered-subtitle: rgba(255,255,255,0.8); --cms-hero-centered-overlay: linear-gradient(to top, rgba(0,0,0,0.7) 0%, rgba(0,0,0,0.2) 50%, transparent 100%); }


.cms-hero-centered--overlay-dark { --cms-hero-centered-text: #fff; --cms-hero-centered-subtitle: rgba(255,255,255,0.8); --cms-hero-centered-overlay: rgba(0,0,0,0.55); }


.cms-hero-centered--overlay-light { --cms-hero-centered-text: var(--color-text); --cms-hero-centered-subtitle: var(--color-text-muted); --cms-hero-centered-overlay: rgba(255,255,255,0.4); }


.cms-hero-centered--align-left .cms-hero-centered__content { text-align: left; align-items: flex-start; }


.cms-hero-fc { min-height: 100vh; padding: 0; }


.cms-hero-fc--height-large { min-height: 85vh; }


.cms-hero-fc--height-medium { min-height: 70vh; }


.cms-hero-fc--height-auto { min-height: auto; padding: 140px 0; }


.cms-hero-post-centered { min-height: 100vh; padding: 0; }


.cms-hero-post-centered--height-large { min-height: 85vh; }


.cms-hero-post-centered--height-medium { min-height: 70vh; }


.cms-hero-post-centered--height-small { min-height: 60vh; }


.cms-hero-post-centered--height-auto { min-height: auto; padding: 140px 0; }


.cms-hero-post-overlay { min-height: clamp(350px,45vh,500px); }


.cms-hero-post-overlay--height-full { min-height: 100vh; }


.cms-hero-post-overlay--height-large { min-height: 80vh; }


.cms-hero-post-overlay--height-medium { min-height: 60vh; }


.cms-hero-post-overlay--height-small { min-height: clamp(280px,35vh,360px); }


.cms-hero-oc { margin-bottom: 0; }


.cms-hero-oc--overflow { margin-bottom: -100px; }


.cms-hero-oc__bg { background: var(--color-dark-bg); }


.cms-hero-oc--overlay-gradient .cms-hero-oc__bg-overlay { background: linear-gradient(to bottom, rgba(0,0,0,0.3) 0%, rgba(0,0,0,0.65) 100%); }


.cms-hero-oc--overlay-dark .cms-hero-oc__bg-overlay { background: rgba(0,0,0,0.55); }


.cms-hero-oc--overlay-light .cms-hero-oc__bg-overlay { background: rgba(255,255,255,0.4); }


.cms-hero-oc__cards { grid-template-columns: repeat(3, 1fr); }


.cms-hero-oc--cols-1 .cms-hero-oc__cards { grid-template-columns: 1fr; }


.cms-hero-oc--cols-2 .cms-hero-oc__cards { grid-template-columns: repeat(2, 1fr); }


.cms-hero-oc--cols-4 .cms-hero-oc__cards { grid-template-columns: repeat(4, 1fr); }


.cms-hero-lt,
.cms-hero-split {
    --cms-hero-lt-bg: var(--color-bg);
    --cms-hero-lt-text: var(--color-text);
    --cms-hero-lt-muted: var(--color-text-muted);
    --cms-hero-split-bg: var(--color-bg);
    --cms-hero-split-text: var(--color-text);
    --cms-hero-split-muted: var(--color-text-muted);
}


.cms-hero-lt--bg-dark,
.cms-hero-split--bg-dark {
    --cms-hero-lt-bg: var(--color-dark-bg);
    --cms-hero-lt-text: #fff;
    --cms-hero-lt-muted: rgba(255,255,255,0.6);
    --cms-hero-split-bg: var(--color-dark-bg);
    --cms-hero-split-text: #fff;
    --cms-hero-split-muted: rgba(255,255,255,0.7);
}


.cms-hero-lt--bg-accent,
.cms-hero-split--bg-accent {
    --cms-hero-lt-bg: var(--color-accent);
    --cms-hero-lt-text: #fff;
    --cms-hero-lt-muted: rgba(255,255,255,0.6);
    --cms-hero-split-bg: var(--color-accent);
    --cms-hero-split-text: #fff;
    --cms-hero-split-muted: rgba(255,255,255,0.7);
}


.cms-hero-lt--height-full,
.cms-hero-split--height-full { min-height: 100vh; }


.cms-hero-lt--height-large,
.cms-hero-split--height-large { min-height: 80vh; }


.cms-hero-lt--height-medium,
.cms-hero-split--height-medium { min-height: 60vh; }


.cms-hero-scb { background: var(--color-bg); }


.cms-hero-scb--bg-dark { background: var(--color-dark-bg); }


.cms-hero-scb__block { background: var(--color-accent); }


.cms-hero-sov { --cms-hero-sov-bg: var(--color-dark-bg); --cms-hero-sov-text: var(--color-dark-text); --cms-hero-sov-muted: var(--color-dark-text-muted); margin-bottom: 0; }


.cms-hero-sov--bg-light { --cms-hero-sov-bg: var(--color-bg); --cms-hero-sov-text: var(--color-text); --cms-hero-sov-muted: var(--color-text-muted); }


.cms-hero-sov--bg-accent { --cms-hero-sov-bg: var(--color-accent); --cms-hero-sov-text: #fff; --cms-hero-sov-muted: rgba(255,255,255,0.8); }


.cms-hero-sov--overflow { margin-bottom: -80px; }


.cms-hero-sp { --cms-hero-sp-bg: var(--color-dark-bg); --cms-hero-sp-text: var(--color-dark-text); --cms-hero-sp-muted: var(--color-dark-text-muted); margin-bottom: 0; }


.cms-hero-sp--bg-light { --cms-hero-sp-bg: var(--color-bg); --cms-hero-sp-text: var(--color-text); --cms-hero-sp-muted: var(--color-text-muted); }


.cms-hero-sp--bg-accent { --cms-hero-sp-bg: var(--color-accent); --cms-hero-sp-text: #fff; --cms-hero-sp-muted: rgba(255,255,255,0.8); }


.cms-hero-sp--overflow { margin-bottom: -90px; }


.cms-hero-sp--overflow .cms-hero-sp__image { margin-bottom: -120px; }


.cms-hero-author {
    --cms-hero-author-bg: var(--color-bg);
    --cms-hero-author-text: var(--color-text);
    --cms-hero-author-muted: var(--color-text-muted);
    --cms-hero-author-kicker: var(--color-text-muted);
    --cms-hero-author-ring: var(--color-border);
    --cms-hero-author-accent-ring: var(--color-accent);
}


.cms-hero-author--bg-dark,
.cms-hero-author--bg-accent {
    --cms-hero-author-text: var(--color-dark-text, #fff);
    --cms-hero-author-muted: rgba(255,255,255,0.76);
    --cms-hero-author-kicker: rgba(255,255,255,0.70);
    --cms-hero-author-ring: rgba(255,255,255,0.15);
}


.cms-hero-author--bg-dark { --cms-hero-author-bg: var(--color-dark-bg, #1C1917); }


.cms-hero-author--bg-accent { --cms-hero-author-bg: var(--color-accent); }


.cms-hero-author--bg-alt { --cms-hero-author-bg: var(--color-bg-alt, #f9fafb); }


.cms-hero-author--bg-transparent { --cms-hero-author-bg: transparent; }


.cms-hero-glow--align-left .cms-hero-glow__content { text-align: left; align-items: flex-start; }


.cms-hero-sg-track {
    --cms-hero-sg-bg: var(--color-bg);
    --cms-hero-sg-text: var(--color-text);
    --cms-hero-sg-muted: var(--color-text-muted);
}


.cms-hero-sg-track--bg-dark,
.cms-hero-sg-track--bg-accent {
    --cms-hero-sg-text: #fff;
    --cms-hero-sg-muted: rgba(255,255,255,0.6);
}


.cms-hero-sg-track--bg-dark { --cms-hero-sg-bg: var(--color-dark-bg); }


.cms-hero-sg-track--bg-accent { --cms-hero-sg-bg: var(--color-accent); }


/* Hero Scroll Grow */
.cms-hero-sg-track {
    position: relative;
    height: 250vh;
    background: var(--cms-hero-sg-bg, var(--color-bg));
}


.cms-hero-sg {
    position: sticky;
    top: 0;
    width: 100%;
    height: 100vh;
    overflow: hidden;
    background: var(--cms-hero-sg-bg, var(--color-bg));
}


.cms-hero-sg__container {
    position: relative;
    max-width: var(--container);
    margin: 0 auto;
    padding: 0 24px;
    height: 100%;
    display: flex;
    align-items: center;
}


.cms-hero-sg__text {
    width: 48%;
    max-width: 48%;
    position: relative;
    z-index: 1;
}


.cms-hero-sg__title {
    font-family: var(--font-heading);
    font-size: clamp(32px,5vw,60px);
    font-weight: 600;
    line-height: 1.12;
    color: var(--cms-hero-sg-text, var(--color-text));
    margin: 0 0 20px;
}


.cms-hero-sg__subtitle {
    font-family: var(--font-body);
    font-size: clamp(16px,1.8vw,19px);
    line-height: 1.7;
    color: var(--cms-hero-sg-muted, var(--color-text-muted));
    margin: 0 0 32px;
    max-width: 500px;
}


.cms-hero-sg__actions {
    display: flex;
    gap: 16px;
    flex-wrap: wrap;
}


.cms-hero-sg__img-wrap {
    position: absolute;
    right: 24px;
    top: 50%;
    transform: translateY(-50%);
    width: 42%;
    height: 70vh;
    border-radius: var(--radius-lg);
    overflow: hidden;
    box-shadow: var(--shadow-lg);
    z-index: 2;
    will-change: width,left,height,border-radius;
}


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


@media (max-width: 768px) {
    .cms-hero-sg-track { height: auto !important; }
    .cms-hero-sg { position: relative !important; height: auto !important; padding: 60px 0 !important; }
    .cms-hero-sg__container { flex-direction: column !important; }
    .cms-hero-sg__text { width: 100% !important; max-width: 100% !important; margin-bottom: 30px; }
    .cms-hero-sg__img-wrap {
        position: relative !important;
        width: 100% !important;
        right: auto !important;
        top: auto !important;
        transform: none !important;
        height: 300px !important;
    }}


/* POST_CARD_DS_BRIDGE_20260525: restore design-system variables for post/generic cards. */
:root {
  --cms-ds-card-bg: var(--color-bg, var(--cms-bg, #fff));
  --cms-ds-card-bg-alt: var(--color-bg-alt, var(--cms-bg-alt, #f8fafc));
  --cms-ds-card-bg-dark: var(--color-dark-bg, #1C1917);
  --cms-ds-card-border: var(--color-border, var(--cms-border, #e2e8f0));
  --cms-ds-card-shadow: var(--shadow, var(--cms-shadow, 0 1px 3px rgba(0,0,0,.1)));
  --cms-ds-text: var(--color-text, var(--cms-text, #1e293b));
  --cms-ds-muted: var(--color-text-muted, var(--cms-text-light, #64748b));
  --cms-ds-radius-lg: var(--radius-lg, var(--cms-radius-lg, 16px));
  --cms-ds-radius-full: var(--radius-full, 999px);
}


.cms-generic-card{display:flex;flex-direction:column;overflow:hidden;border:var(--cms-gc-border);border-radius:var(--cms-gc-radius);background:var(--cms-gc-bg);transition:transform .3s ease,box-shadow .3s ease}


.cms-generic-card:hover{transform:translateY(-4px)}


.cms-generic-card:hover .cms-generic-card__media{transform:scale(1.05)}


.cms-generic-card:hover .cms-generic-card__title{color:var(--color-accent)}


.cms-generic-card--horizontal{flex-direction:row}


.cms-generic-card--minimal{display:block;padding:16px 0;border:none;border-bottom:1px solid var(--cms-gc-border-color);border-radius:0;background:transparent;transition:background .2s ease}


.cms-generic-card--overlay{position:relative;display:block;aspect-ratio:4/5;border:none;border-radius:var(--radius-lg);background:var(--cms-gc-overlay-bg,transparent)}


.cms-generic-card__frame{overflow:hidden;aspect-ratio:16/9}


.cms-generic-card__split-media{width:35%;flex-shrink:0;overflow:hidden}


.cms-generic-card__thumb{flex-shrink:0;overflow:hidden;width:80px;height:80px;border-radius:var(--radius-md,8px)}


.cms-generic-card__media{display:block;width:100%;height:100%;object-fit:cover;transition:transform .5s ease}


.cms-generic-card__media--fill{position:absolute;inset:0}


.cms-generic-card__overlay{position:absolute;inset:0;background:linear-gradient(180deg,transparent 30%,rgba(0,0,0,.78) 100%)}


.cms-generic-card__content{display:flex;flex:1;flex-direction:column;gap:8px;padding:clamp(16px,2vw,24px)}


.cms-generic-card__content--horizontal{justify-content:center}


.cms-generic-card__content--overlay{position:absolute;right:0;bottom:0;left:0;z-index:1;padding:clamp(16px,2.5vw,28px)}


.cms-generic-card__label{font:600 12px/1.3 var(--font-body);letter-spacing:.5px;text-transform:uppercase;color:var(--color-accent)}


.cms-generic-card__pill{display:inline-block;width:fit-content;margin-bottom:8px;padding:4px 12px;border-radius:var(--radius-full);background:var(--color-accent);color:#fff;font:600 11px/1.3 var(--font-body);letter-spacing:.5px;text-transform:uppercase}


.cms-generic-card__title{margin:0;font:600 clamp(15px,1.4vw,19px)/1.22 var(--font-heading);color:var(--cms-gc-text)}


.cms-generic-card__title--minimal{font-size:15px;line-height:1.3}


.cms-generic-card__title--overlay{color:#fff;font-size:clamp(15px,1.85vw,20px)}


.cms-generic-card__desc{margin:0;font:400 14px/1.6 var(--font-body);color:var(--cms-gc-muted)}


.cms-generic-card__desc--overlay{font-size:13px;line-height:1.5;color:rgba(255,255,255,.75)}


.cms-generic-card__desc--clamp{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;flex:1}


.cms-generic-card__desc--ellipsis{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}


.cms-generic-card__minimal-row{display:flex;align-items:center;justify-content:space-between;gap:12px}


.cms-generic-card__minimal-copy{flex:1;min-width:0}


.cms-generic-card__count{flex-shrink:0;padding:4px 12px;border-radius:var(--radius-full);background:color-mix(in srgb,var(--color-accent) 10%,transparent);color:var(--color-accent);font:600 13px/1.3 var(--font-body)}


.cms-generic-card__footer-count{margin-top:auto;padding-top:12px;border-top:1px solid var(--cms-gc-border-color);color:var(--color-accent);font:600 13px/1.3 var(--font-body)}


@media (max-width:600px) {.cms-generic-card--horizontal{flex-direction:column}.cms-generic-card--horizontal .cms-generic-card__split-media{width:100%;aspect-ratio:16/9}}


/* Helpers Small */
.cms-btn-group{display:flex;flex-wrap:wrap;gap:14px;justify-content:flex-start;align-items:center}


.cms-btn-group--center{justify-content:center}


.cms-btn-group--end{justify-content:flex-end}


.cms-btn-group--between{justify-content:space-between}


.cms-parallax-wrap{position:relative;z-index:0}


.cms-parallax-wrap__sticky{position:sticky;top:0}


/* Carousel Helper */

.cms-carousel{position:relative;width:100%;max-width:var(--container,1200px);margin:0 auto;padding:0 76px 8px;box-sizing:border-box;overflow:visible}


.cms-carousel__viewport{overflow:hidden;margin:0;padding:6px 12px 10px;box-sizing:border-box}


.cms-carousel{--carousel-per-view:3;--carousel-gap:24px}


.cms-carousel--per-view-1{--carousel-per-view:1}


.cms-carousel--per-view-2{--carousel-per-view:2}


.cms-carousel--per-view-3{--carousel-per-view:3}


.cms-carousel--per-view-4{--carousel-per-view:4}


.cms-carousel--gap-sm{--carousel-gap:16px}


.cms-carousel--gap-md{--carousel-gap:24px}


.cms-carousel--gap-lg{--carousel-gap:32px}


.cms-carousel__track{display:flex;gap:var(--carousel-gap);transition:transform .5s cubic-bezier(.25,.1,.25,1);will-change:transform}


.cms-carousel__controls{position:static;display:block;--cms-carousel-arrow-bg:rgba(0,0,0,.06);--cms-carousel-arrow-hover-bg:rgba(0,0,0,.1);--cms-carousel-arrow-color:var(--color-text);--cms-carousel-dot-bg:color-mix(in srgb,var(--color-text-muted) 42%,transparent);--cms-carousel-dot-active-bg:var(--color-accent)}


.cms-carousel__controls--dark{--cms-carousel-arrow-bg:rgba(255,255,255,.15);--cms-carousel-arrow-hover-bg:rgba(255,255,255,.25);--cms-carousel-arrow-color:var(--color-dark-text);--cms-carousel-dot-bg:color-mix(in srgb,var(--color-dark-text) 26%,transparent);--cms-carousel-dot-active-bg:var(--color-dark-text)}


.cms-carousel__prev,.cms-carousel__next{position:absolute;top:50%;z-index:2;display:flex;align-items:center;justify-content:center;width:44px;height:44px;border:none;border-radius:50%;background:var(--cms-carousel-arrow-bg);color:var(--cms-carousel-arrow-color);cursor:pointer;transition:background .2s ease,opacity .2s ease;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);opacity:1;pointer-events:auto;transform:translateY(-50%)}


.cms-carousel__prev{left:20px}


.cms-carousel__next{right:14px}


.cms-carousel__dots{display:flex;justify-content:center;align-items:center;gap:4px;margin-top:24px;padding:2px 0 4px}


.cms-carousel:hover .cms-carousel__prev,.cms-carousel:hover .cms-carousel__next{opacity:1;pointer-events:auto}


.cms-carousel__prev:hover,.cms-carousel__next:hover{background:var(--cms-carousel-arrow-hover-bg)}


.cms-carousel__prev[disabled],.cms-carousel__next[disabled]{opacity:.3;cursor:default;pointer-events:none}


.cms-carousel__dot{position:relative;display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;min-width:28px;min-height:28px;margin:0;padding:0;border:none;border-radius:999px;background:transparent;cursor:pointer;transition:transform .2s ease}


.cms-carousel__dot::before{content:"";width:10px;height:10px;border-radius:50%;background:var(--cms-carousel-dot-bg);transition:background .2s ease,transform .2s ease}


.cms-carousel__dot:hover::before,.cms-carousel__dot:focus-visible::before{transform:scale(1.2)}


.cms-carousel__dot:focus-visible{outline:2px solid color-mix(in srgb,var(--cms-carousel-dot-active-bg) 55%,var(--color-bg));outline-offset:2px}


.cms-carousel__dot--active::before{background:var(--cms-carousel-dot-active-bg) !important;transform:scale(1.2)}


@media (max-width:640px) {.cms-carousel{padding:0 0 8px !important}.cms-carousel .cms-carousel__viewport{padding:6px 0 10px !important}.cms-carousel__controls{display:flex;align-items:center;justify-content:center;gap:12px;margin-top:12px}.cms-carousel__dots{order:2;margin-top:0;padding:0}.cms-carousel__prev,.cms-carousel__next{position:static !important;display:inline-flex !important;flex:0 0 auto;width:42px;height:42px;opacity:1 !important;pointer-events:auto !important;transform:none !important}.cms-carousel__prev{order:1}.cms-carousel__next{order:3}}


@media (hover:none) and (pointer:coarse) and (min-width:641px) {.cms-carousel__prev,.cms-carousel__next{display:none !important}}


.cms-floating-badge{z-index:10;max-width:220px;padding:14px 18px;border-radius:var(--radius-lg);background:var(--color-bg);box-shadow:var(--shadow-lg)}


.cms-floating-badge__row{display:flex;align-items:center;gap:10px;margin-bottom:6px}


.cms-floating-badge__icon-chip{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:32px;height:32px;border-radius:var(--radius-full);background:color-mix(in srgb,var(--color-accent) 12%,transparent);font-size:16px}


.cms-floating-badge__value{font:700 24px/1 var(--font-heading);color:var(--color-text)}


.cms-floating-badge__value--accent{color:var(--color-accent)}


.cms-floating-badge__text{margin:0;color:var(--color-text-muted);font-family:var(--font-body)}


.cms-floating-badge__text--muted{font-size:12px;line-height:1.4}


.cms-floating-badge__text--small{margin-top:4px;font-size:11px;line-height:1.3}


.cms-floating-badge__text--tiny{font-size:10px;line-height:1.2}


.cms-floating-badge__stars{display:flex;align-items:center;gap:4px;margin-bottom:6px}


.cms-floating-badge__quote-mark{margin-bottom:6px;opacity:.3}


.cms-floating-badge__quote-text{margin:0 0 8px;font:italic 13px/1.5 var(--font-body);color:var(--color-text)}


.cms-floating-badge__author{font:600 11px/1.3 var(--font-body);color:var(--color-text-muted)}


.cms-floating-badge--label{display:inline-flex;align-items:center;gap:8px;padding:10px 18px;border-radius:var(--radius-full);box-shadow:var(--shadow)}


.cms-floating-badge__label-icon{font-size:16px}


.cms-floating-badge__label-text{white-space:nowrap;font:600 13px/1.3 var(--font-body);color:var(--color-text)}


.cms-floating-badge__check-row{display:flex;align-items:center;gap:8px;margin-bottom:6px}


.cms-floating-badge__check-text{font:400 13px/1.3 var(--font-body);color:var(--color-text)}


.cms-floating-badge--users{display:flex;align-items:center;gap:10px;padding:10px 18px 10px 10px;border-radius:var(--radius-full)}


.cms-floating-badge__avatars{display:flex}


.cms-floating-badge__avatar{width:28px;height:28px;margin-left:-8px;border:2px solid var(--color-bg);border-radius:50%;background:color-mix(in srgb,var(--color-accent) 20%,var(--color-bg-alt))}


.cms-floating-badge__avatar:first-child{margin-left:0}


.cms-floating-badge__avatar--2{background:color-mix(in srgb,var(--color-accent) 35%,var(--color-bg-alt))}


.cms-floating-badge__avatar--3{background:color-mix(in srgb,var(--color-accent) 50%,var(--color-bg-alt))}


.cms-floating-badge__count{font:700 16px/1 var(--font-heading);color:var(--color-text)}


.cms-floating-badge--award{text-align:center;max-width:180px}


.cms-floating-badge__award-icon{margin-bottom:6px;font-size:28px}


.cms-floating-badge__award-title{font:700 14px/1.2 var(--font-heading);color:var(--color-text)}


.cms-floating-badge__award-subtitle{margin-top:4px;font:400 11px/1.3 var(--font-body);color:var(--color-text-muted)}


.cms-short--warning{--cms-inline-accent-color:#f59e0b}


/* Video Section */
.cms-video-bo{position:relative;display:flex;align-items:center;justify-content:center;width:100%;min-height:50vh;overflow:hidden;cursor:pointer;}


.cms-video-bo__bg,.cms-video-bo__overlay{position:absolute;inset:0}


.cms-video-bo__bg{z-index:0}


.cms-video-bo__bg img{display:block;width:100%;height:100%;object-fit:cover}


.cms-video-bo__bg::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at top left,color-mix(in srgb,var(--color-accent) 14%,transparent) 0%,transparent 42%),linear-gradient(135deg,rgba(12,17,24,.72),rgba(12,17,24,.34))}


.cms-video-bo__overlay{z-index:1;background:rgba(0,0,0,.55)}


.cms-video-bo__content{position:relative;z-index:2;display:flex;flex-direction:column;align-items:center;gap:20px;padding:clamp(48px,6vw,80px) 24px;text-align:center}


.cms-video-bo__play{display:flex;align-items:center;justify-content:center;width:88px;height:88px;border:2px solid rgba(255,255,255,.3);border-radius:50%;background:rgba(255,255,255,.15);backdrop-filter:blur(8px);transition:background .3s ease,transform .3s ease}


.cms-video-bo:hover .cms-video-bo__play{background:var(--color-accent);border-color:var(--color-accent);transform:scale(1.1)}


.cms-video-bo__play svg{width:32px;height:32px;fill:#fff;margin-left:4px}


.cms-video-bo__title{margin:0;font:700 clamp(24px,3vw,40px)/1.2 var(--font-heading);color:#fff}


.cms-video-bo__subtitle{max-width:600px;margin:0;font:400 clamp(15px,1.3vw,18px)/1.7 var(--font-body);color:rgba(255,255,255,.8)}


.cms-video-fw{width:100%;padding:0 24px;--cms-video-fw-text:var(--color-text);--cms-video-fw-muted:var(--color-text-muted)}


.cms-video-fw--dark{--cms-video-fw-text:var(--color-dark-text);--cms-video-fw-muted:var(--color-dark-text-muted)}


.cms-video-fw__container{max-width:var(--container,1200px);margin:0 auto}


.cms-video-fw__title{margin:0 0 8px;text-align:center;font:700 clamp(24px,3vw,36px)/1.2 var(--font-heading);color:var(--cms-video-fw-text)}


.cms-video-fw__subtitle{max-width:700px;margin:0 auto clamp(24px,3vw,40px);text-align:center;font:400 clamp(15px,1.3vw,18px)/1.7 var(--font-body);color:var(--cms-video-fw-muted)}


.cms-video-fw__wrapper{position:relative;width:100%;aspect-ratio:16/9;border-radius:var(--radius-lg,12px);overflow:hidden;background:#000;cursor:pointer}


.cms-video-fw__thumb{display:block;width:100%;height:100%;object-fit:cover}


.cms-video-fw__placeholder{position:absolute;inset:0;display:grid;place-items:center;padding:24px;text-align:center;background:radial-gradient(circle at top left,color-mix(in srgb,var(--color-accent) 14%,transparent) 0%,transparent 42%),linear-gradient(135deg,rgba(255,255,255,.06),rgba(255,255,255,.18))}


.cms-video-fw__play{position:absolute;top:50%;left:50%;display:flex;align-items:center;justify-content:center;width:72px;height:72px;border-radius:50%;background:rgba(0,0,0,.6);backdrop-filter:blur(4px);transform:translate(-50%,-50%);transition:background .3s ease,transform .3s ease;pointer-events:none}


.cms-video-fw__wrapper:hover .cms-video-fw__play{background:var(--color-accent);transform:translate(-50%,-50%) scale(1.1)}


.cms-video-fw__play svg{width:28px;height:28px;fill:#fff;margin-left:3px}


.cms-video-it{width:100%;padding:0 24px;--cms-video-it-text:var(--color-text);--cms-video-it-muted:var(--color-text-muted)}


.cms-video-it--dark{--cms-video-it-text:var(--color-dark-text);--cms-video-it-muted:var(--color-dark-text-muted)}


.cms-video-it__grid{max-width:var(--container,1200px);margin:0 auto;display:grid;grid-template-columns:1fr 1fr;gap:clamp(24px,4vw,48px);align-items:center}


.cms-video-it__text{display:flex;flex-direction:column;gap:16px}


.cms-video-it__title{margin:0;font:700 clamp(24px,3vw,36px)/1.2 var(--font-heading);color:var(--cms-video-it-text)}


.cms-video-it__subtitle{margin:0;font:400 clamp(15px,1.3vw,18px)/1.7 var(--font-body);color:var(--cms-video-it-muted)}


.cms-video-it__cta{margin-top:8px}


.cms-video-it__wrapper{position:relative;width:100%;aspect-ratio:16/9;border-radius:var(--radius-lg,12px);overflow:hidden;background:#000;cursor:pointer;box-shadow:0 8px 32px rgba(0,0,0,.12)}


.cms-video-it__thumb{display:block;width:100%;height:100%;object-fit:cover}


.cms-video-it__placeholder{position:absolute;inset:0;display:grid;place-items:center;padding:24px;text-align:center;background:radial-gradient(circle at top left,color-mix(in srgb,var(--color-accent) 14%,transparent) 0%,transparent 42%),linear-gradient(135deg,rgba(255,255,255,.04),rgba(255,255,255,.18))}


.cms-video-it__play{position:absolute;top:50%;left:50%;display:flex;align-items:center;justify-content:center;width:64px;height:64px;border-radius:50%;background:rgba(0,0,0,.6);backdrop-filter:blur(4px);transform:translate(-50%,-50%);transition:background .3s ease,transform .3s ease;pointer-events:none}


.cms-video-it__wrapper:hover .cms-video-it__play{background:var(--color-accent);transform:translate(-50%,-50%) scale(1.1)}


.cms-video-it__play svg{width:24px;height:24px;fill:#fff;margin-left:3px}


@media (max-width:768px) {.cms-video-it__grid{grid-template-columns:1fr}.cms-video-it__text{text-align:center;align-items:center}}


/* Hero Media Sliders */
.cms-hero-video {
    position: relative;
    width: 100%;
    min-height: 100vh;
    padding: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    background: var(--color-dark-bg);
}


.cms-hero-video--bg-dark { background: var(--color-dark-bg); }


.cms-hero-video--bg-accent { background: var(--color-accent); }


.cms-hero-video--bg-light { background: var(--color-bg); }


.cms-hero-video--height-large { min-height: 80vh; }


.cms-hero-video--height-medium { min-height: 60vh; }


.cms-hero-video--height-auto {
    min-height: auto;
    padding: 120px 0;
}


.cms-hero-video__media,
.cms-hero-video__fallback,
.cms-hero-video__overlay {
    position: absolute;
    inset: 0;
}


.cms-hero-video__media { z-index: 1; overflow: hidden; }


.cms-hero-video__fallback {
    z-index: 0;
    overflow: hidden;
}


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


.cms-hero-video__overlay { background: rgba(0,0,0,0.55); z-index: 2; }


.cms-hero-video--overlay-gradient .cms-hero-video__overlay { background: linear-gradient(to top, rgba(0,0,0,0.7) 0%, rgba(0,0,0,0.3) 50%, rgba(0,0,0,0.2) 100%); }


.cms-hero-video--overlay-light .cms-hero-video__overlay { background: rgba(255,255,255,0.4); }


.cms-hero-video--overlay-none .cms-hero-video__overlay { background: transparent; }


.cms-hero-video__placeholder { position: absolute; inset: 0; background: rgba(12,17,24,0.24); }


.cms-hero-video__mp4 {
    position: absolute;
    top: 50%;
    left: 50%;
    min-width: 100%;
    min-height: 100%;
    width: auto;
    height: auto;
    transform: translate(-50%, -50%);
    object-fit: cover;
}


.cms-hero-video__content {
    position: relative;
    z-index: 3;
    max-width: var(--container);
    width: 100%;
    padding: 40px 24px;
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
}


.cms-hero-video--align-left .cms-hero-video__content {
    text-align: left;
    align-items: flex-start;
}


.cms-hero-video__title {
    font-family: var(--font-heading);
    font-size: clamp(40px, 8vw, 80px);
    font-weight: 500;
    line-height: 1.1;
    color: #fff;
    margin: 0 0 20px 0;
    max-width: 900px;
}


.cms-hero-video__subtitle {
    font-family: var(--font-body);
    font-size: clamp(16px, 2vw, 20px);
    line-height: 1.6;
    color: rgba(255,255,255,0.8);
    margin: 0 0 36px 0;
    max-width: 700px;
}


.cms-hero-video__actions,
.cms-hero-slider__actions {
    display: flex;
    gap: 16px;
    flex-wrap: wrap;
    justify-content: center;
}


.cms-hero-video--text-default .cms-hero-video__title { color: var(--color-text); }


.cms-hero-video--subtitle-default .cms-hero-video__subtitle { color: var(--color-text-muted); }


.cms-hero-video--align-left .cms-hero-video__actions,
.cms-hero-slider--align-left .cms-hero-slider__actions { justify-content: flex-start; }


.cms-hero-slider {
    position: relative;
    width: 100%;
    min-height: 100vh;
    padding: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    background: var(--color-dark-bg);
}


.cms-hero-slider--height-large { min-height: 80vh; }


.cms-hero-slider--height-medium { min-height: 60vh; }


.cms-hero-slider--height-auto { min-height: auto; padding: 120px 0; }


.cms-hero-slider__slide {
    position: absolute;
    inset: 0;
    opacity: 0;
    transition: opacity 1s ease;
    z-index: 0;
}


.cms-hero-slider__slide.is-active { opacity: 1; z-index: 1; }


.cms-hero-slider__bg,
.cms-hero-slider__overlay {
    position: absolute;
    inset: 0;
}


.cms-hero-slider__bg {
    overflow: hidden;
}


.cms-hero-slider__bg-img,
.cms-hero-sf__bg-img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}


.cms-hero-slider__overlay { background: rgba(0,0,0,0.55); }


.cms-hero-slider--overlay-gradient .cms-hero-slider__overlay { background: linear-gradient(to top, rgba(0,0,0,0.7) 0%, rgba(0,0,0,0.2) 50%, transparent 100%); }


.cms-hero-slider--overlay-light .cms-hero-slider__overlay { background: rgba(255,255,255,0.4); }


.cms-hero-slider--overlay-none .cms-hero-slider__overlay { background: transparent; }


.cms-hero-slider__viewport {
    position: relative;
    z-index: 2;
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 40px 24px;
}


.cms-hero-slider__copy {
    max-width: var(--container);
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
}


.cms-hero-slider--align-left .cms-hero-slider__copy {
    text-align: left;
    align-items: flex-start;
}


.cms-hero-slider__title {
    font-family: var(--font-heading);
    font-size: clamp(36px, 7vw, 72px);
    font-weight: 500;
    line-height: 1.1;
    color: #fff;
    margin: 0 0 16px 0;
    max-width: 900px;
}


.cms-hero-slider__subtitle {
    font-family: var(--font-body);
    font-size: clamp(16px, 2vw, 20px);
    line-height: 1.6;
    color: rgba(255,255,255,0.7);
    margin: 0 0 32px 0;
    max-width: 700px;
}


.cms-hero-slider__dots {
    position: absolute;
    bottom: 32px;
    left: 50%;
    transform: translateX(-50%);
    z-index: 10;
    display: flex;
    gap: 10px;
}


.cms-hero-slider__dot {
    width: 12px;
    height: 12px;
    border-radius: 50%;
    border: 2px solid #fff;
    background: transparent;
    cursor: pointer;
    padding: 0;
    transition: background .3s;
}


.cms-hero-slider__dot.is-active { background: #fff; }


.cms-hero-sf {
    position: relative;
    width: 100%;
    height: 100vh;
    overflow: hidden;
    background: var(--color-dark-bg);
}


.cms-hero-sf--height-large { height: 85vh; }


.cms-hero-sf--height-medium { height: 65vh; }


.cms-hero-sf--height-auto { height: 80vh; }


.cms-hero-sf__track {
    display: flex;
    width: 100%;
    height: 100%;
    transition: transform .8s cubic-bezier(0.65, 0, 0.35, 1);
    transform: translateX(0);
}


.cms-hero-sf__slide {
    flex: 0 0 100%;
    width: 100%;
    height: 100%;
    position: relative;
}


.cms-hero-sf__bg,
.cms-hero-sf__overlay {
    position: absolute;
    inset: 0;
}


.cms-hero-sf__bg {
    overflow: hidden;
}


.cms-hero-sf__overlay { background: rgba(0,0,0,0.55); }


.cms-hero-sf--overlay-gradient .cms-hero-sf__overlay { background: linear-gradient(to top, rgba(0,0,0,0.75) 0%, rgba(0,0,0,0.15) 50%, rgba(0,0,0,0.1) 100%); }


.cms-hero-sf--overlay-light .cms-hero-sf__overlay { background: rgba(255,255,255,0.4); }


.cms-hero-sf--overlay-none .cms-hero-sf__overlay { background: transparent; }


.cms-hero-sf__copy {
    position: absolute;
    bottom: clamp(100px, 12vw, 140px);
    left: 0;
    width: 100%;
    padding: 0 clamp(24px, 5vw, 80px);
    z-index: 2;
}


.cms-hero-sf__eyebrow {
    font-family: var(--font-body);
    font-size: clamp(14px, 1.5vw, 17px);
    color: rgba(255,255,255,0.7);
    margin: 0 0 12px 0;
    text-transform: uppercase;
    letter-spacing: 2px;
    font-weight: 600;
}


.cms-hero-sf__title {
    font-family: var(--font-heading);
    font-size: clamp(36px, 6vw, 72px);
    font-weight: 700;
    line-height: 1.05;
    color: #fff;
    margin: 0;
    max-width: 800px;
    letter-spacing: -0.02em;
}


.cms-hero-sf__nav {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    z-index: 10;
    display: flex;
    background: rgba(0,0,0,0.3);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    border-top: 1px solid rgba(255,255,255,0.1);
}


.cms-hero-sf__nav-btn {
    flex: 1;
    padding: 20px clamp(12px, 2vw, 28px);
    background: transparent;
    border: none;
    border-bottom: 3px solid transparent;
    cursor: pointer;
    text-align: left;
    transition: all .3s;
    position: relative;
}


.cms-hero-sf__nav-btn.is-active { border-bottom-color: var(--color-accent); }


.cms-hero-sf__nav-label {
    display: block;
    font-family: var(--font-heading);
    font-size: clamp(13px, 1.3vw, 16px);
    font-weight: 600;
    color: rgba(255,255,255,0.5);
    transition: color .3s;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}


.cms-hero-sf__nav-btn.is-active .cms-hero-sf__nav-label { color: #fff; }


.cms-hero-sf__nav-location {
    display: block;
    font-family: var(--font-body);
    font-size: 12px;
    color: rgba(255,255,255,0.35);
    margin-top: 4px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}


.cms-hero-sf__progress {
    position: absolute;
    bottom: 0;
    left: 0;
    height: 3px;
    background: var(--color-accent);
    z-index: 11;
    width: 0;
    pointer-events: none;
}


@media (max-width: 768px) {
    .cms-hero-video__media { display: none !important; }
    .cms-hero-video__fallback { z-index: 1 !important; }}


@media (max-width: 640px) {
    .cms-hero-sf__nav {
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }
    .cms-hero-sf__nav-btn { min-width: 140px; }}


/* Helpers Layout Core */
.cms-section {
    position: relative;
    overflow: hidden;
    color: var(--cms-section-text, var(--color-text));
    padding-top: var(--cms-section-pad-top, var(--spacing-section));
    padding-bottom: var(--cms-section-pad-bottom, var(--spacing-section));
}


.cms-section--bg-default { --cms-section-canvas-bg: var(--color-bg); --cms-section-text: var(--color-text); }


.cms-section--bg-transparent { --cms-section-canvas-bg: transparent; background: var(--cms-section-canvas-bg); --cms-section-text: var(--color-text); }


.cms-section--bg-alt { --cms-section-canvas-bg: var(--color-bg-alt); background: var(--cms-section-canvas-bg); --cms-section-text: var(--color-text); }


.cms-section--bg-neutral { --cms-section-canvas-bg: #f3f4f6; background: var(--cms-section-canvas-bg); --cms-section-text: var(--color-text); }


.cms-section--bg-dark { --cms-section-canvas-bg: var(--color-dark-bg); background: var(--cms-section-canvas-bg); --cms-section-text: var(--color-dark-text, #fff); }


.cms-section--bg-accent { --cms-section-canvas-bg: var(--color-accent); background: var(--cms-section-canvas-bg); --cms-section-text: #fff; }


.cms-section--bg-accent2 { --cms-section-canvas-bg: var(--color-accent2, var(--color-accent)); background: var(--cms-section-canvas-bg); --cms-section-text: #fff; }


.cms-section--bg-accent3 { --cms-section-canvas-bg: var(--color-accent-soft, var(--color-bg-alt)); background: var(--cms-section-canvas-bg); --cms-section-text: var(--color-text); }


.cms-section--bg-accent4 { --cms-section-canvas-bg: var(--color-accent2-soft, var(--color-bg-alt)); background: var(--cms-section-canvas-bg); --cms-section-text: var(--color-text); }


.cms-section--bg-image { --cms-section-canvas-bg: transparent; background: var(--cms-section-canvas-bg); --cms-section-text: #fff; }


.cms-section--bg-gradient {
    --cms-section-canvas-bg: transparent;
    --cms-section-gradient: linear-gradient(135deg, color-mix(in srgb, var(--color-accent) 8%, transparent) 0%, var(--color-bg-alt) 100%);
}


.cms-section--bg-dark,
.cms-section--bg-accent,
.cms-section--bg-accent2,
.cms-section--bg-image {
    --cms-section-split-bg: var(--cms-section-canvas-bg);
}


.cms-section--overlay-gradient { --cms-section-overlay: linear-gradient(180deg, rgba(0,0,0,.3) 0%, rgba(0,0,0,.7) 100%); }


.cms-section--overlay-dark { --cms-section-overlay: rgba(0,0,0,.6); }


.cms-section--overlay-light { --cms-section-overlay: rgba(255,255,255,.4); }


.cms-section--overlay-accent { --cms-section-overlay: color-mix(in srgb, var(--color-accent) 80%, transparent); }


.cms-section--pattern-dots {
    --cms-section-pattern-image: radial-gradient(circle, currentColor 1px, transparent 1.5px);
    --cms-section-pattern-size: 20px 20px;
    --cms-section-pattern-opacity: .08;
}


.cms-section--pattern-grid {
    --cms-section-pattern-image: linear-gradient(currentColor 1px, transparent 1px), linear-gradient(90deg, currentColor 1px, transparent 1px);
    --cms-section-pattern-size: 40px 40px;
    --cms-section-pattern-opacity: .05;
}


.cms-section--pattern-diagonal {
    --cms-section-pattern-image: repeating-linear-gradient(135deg, currentColor 0 1px, transparent 1px 16px);
    --cms-section-pattern-size: 16px 16px;
    --cms-section-pattern-opacity: .05;
}


.cms-section--pattern-waves {
    --cms-section-pattern-image: radial-gradient(ellipse at center, currentColor 0 1px, transparent 1px);
    --cms-section-pattern-size: 60px 20px;
    --cms-section-pattern-opacity: .06;
}


.cms-section--pattern-noise {
    --cms-section-pattern-image: radial-gradient(circle at 20% 30%, currentColor 0 1px, transparent 1px), radial-gradient(circle at 70% 80%, currentColor 0 1px, transparent 1px);
    --cms-section-pattern-size: 48px 48px;
    --cms-section-pattern-opacity: .035;
}


.cms-section--pad-none { --cms-section-pad-top: var(--cms-ds-section-pad-none); --cms-section-pad-bottom: var(--cms-ds-section-pad-none); }


.cms-section--pad-sm { --cms-section-pad-top: var(--cms-ds-section-pad-sm); --cms-section-pad-bottom: var(--cms-ds-section-pad-sm); }


.cms-section--pad-md { --cms-section-pad-top: var(--cms-ds-section-pad-md); --cms-section-pad-bottom: var(--cms-ds-section-pad-md); }


.cms-section--pad-lg { --cms-section-pad-top: var(--cms-ds-section-pad-lg); --cms-section-pad-bottom: var(--cms-ds-section-pad-lg); }


.cms-section--pad-xl { --cms-section-pad-top: var(--cms-ds-section-pad-xl); --cms-section-pad-bottom: var(--cms-ds-section-pad-xl); }


.cms-section__cta-bottom {
    margin-top: clamp(32px, 4vw, 48px);
    text-align: center;
}


.cms-section-cta-mobile {
    display: none;
    margin-top: clamp(24px, 3vw, 32px);
    text-align: center;
}


@media (max-width: 639px) {
    .cms-section-cta-mobile { display: block !important; }}


.cms-section__separator {
    line-height: 0;
    color: var(--cms-section-sep-color, currentColor);
    margin-bottom: -1px;
}


.cms-section__separator--bg-default { --cms-section-sep-color: var(--color-bg); }


.cms-section__separator--bg-alt { --cms-section-sep-color: var(--color-bg-alt); }


.cms-section__separator--bg-dark { --cms-section-sep-color: var(--color-dark-bg); }


.cms-section__separator--bg-accent { --cms-section-sep-color: var(--color-accent); }


.cms-section__separator--bg-accent2 { --cms-section-sep-color: var(--color-accent2, var(--color-accent)); }


.cms-section__separator--bottom { margin-top: -1px; }


.cms-section__separator-svg {
    display: block;
    width: 100%;
}


.cms-section__separator-svg--wave,
.cms-section__separator-svg--wave-multi,
.cms-section__separator-svg--round { height: clamp(40px, 5vw, 80px); }


.cms-section__separator-svg--angle,
.cms-section__separator-svg--curve,
.cms-section__separator-svg--wave-soft,
.cms-section__separator-svg--arrow { height: clamp(30px, 4vw, 60px); }


.cms-section__separator-svg--zigzag,
.cms-section__separator-svg--tilt,
.cms-section__separator-svg--step { height: clamp(20px, 3vw, 40px); }


.cms-section__split-bg,
.cms-section__image,
.cms-section__gradient,
.cms-section__overlay,
.cms-section__pattern,
.cms-section__blob {
    position: absolute;
    z-index: 0;
}


.cms-section__split-bg {
    top: 0;
    left: 0;
    right: 0;
    height: var(--cms-section-split-height, 50%);
    background: var(--cms-section-split-bg, var(--color-bg));
    clip-path: var(--cms-section-split-clip, none);
}


.cms-section__image,
.cms-section__gradient,
.cms-section__overlay,
.cms-section__pattern {
    inset: 0;
}


.cms-section__image-el {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}


.cms-section__gradient { background: var(--cms-section-gradient, transparent); }


.cms-section__overlay { background: var(--cms-section-overlay, transparent); }


.cms-section__pattern {
    pointer-events: none;
    opacity: var(--cms-section-pattern-opacity, 1);
    background-image: var(--cms-section-pattern-image, none);
    background-repeat: repeat;
    background-size: var(--cms-section-pattern-size, auto);
}


.cms-section__blob {
    pointer-events: none;
    border-radius: 50%;
    background: var(--color-accent);
    z-index: 0;
}


.cms-section__blob--one {
    top: -10%;
    left: -5%;
    width: clamp(200px, 40vw, 500px);
    height: clamp(200px, 40vw, 500px);
    opacity: .06;
    filter: blur(clamp(60px, 10vw, 120px));
}


.cms-section__blob--two {
    bottom: -15%;
    right: -10%;
    width: clamp(150px, 30vw, 400px);
    height: clamp(150px, 30vw, 400px);
    opacity: .04;
    filter: blur(clamp(50px, 8vw, 100px));
}


.cms-section__blob--three {
    top: 40%;
    right: 20%;
    width: clamp(100px, 20vw, 250px);
    height: clamp(100px, 20vw, 250px);
    opacity: .03;
    background: var(--color-accent3, var(--color-accent));
    filter: blur(clamp(40px, 8vw, 80px));
}


.cms-section__inner {
    position: relative;
    z-index: 1;
    margin: 0 auto;
}


.cms-section__inner--contained {
    max-width: var(--container);
    padding: 0 20px;
}


.cms-section__inner--narrow {
    max-width: 800px;
    padding: 0 20px;
}


.cms-section__inner--full {
    max-width: 100%;
    padding: 0 clamp(20px, 4vw, 60px);
}


.ws-layout-section {
  position: relative;
  overflow: visible !important;
  background: var(--cms-layout-section-bg, unset);
  color: var(--color-text);
  padding-top: var(--spacing-section);
  padding-bottom: var(--spacing-section);
}


.ws-layout-shell {
  max-width: var(--container);
  margin: 0 auto;
  padding: 0 20px;
  position: relative;
  z-index: 1;
}


.cms-bg-shape {
    position: absolute;
    pointer-events: none;
    z-index: 0;
    width: var(--cms-bg-shape-w);
    height: var(--cms-bg-shape-h);
}


.cms-bg-shape[data-shape-size="0"] { --cms-bg-shape-w: clamp(200px, 30vw, 400px); --cms-bg-shape-h: clamp(100px, 20vw, 400px); }


.cms-bg-shape[data-shape-size="1"] { --cms-bg-shape-w: clamp(175px, 30vw, 350px); --cms-bg-shape-h: clamp(88px, 20vw, 350px); }


.cms-bg-shape[data-shape-size="2"] { --cms-bg-shape-w: clamp(225px, 30vw, 450px); --cms-bg-shape-h: clamp(112px, 20vw, 450px); }


.cms-bg-shape[data-shape-size="3"] { --cms-bg-shape-w: clamp(190px, 30vw, 380px); --cms-bg-shape-h: clamp(95px, 20vw, 380px); }


.cms-bg-shape[data-shape-size="4"] { --cms-bg-shape-w: clamp(210px, 30vw, 420px); --cms-bg-shape-h: clamp(105px, 20vw, 420px); }


.cms-bg-shape--secondary[data-shape-size="0"] { --cms-bg-shape-w: clamp(125px, 20vw, 250px); --cms-bg-shape-h: clamp(125px, 20vw, 250px); }


.cms-bg-shape--secondary[data-shape-size="1"] { --cms-bg-shape-w: clamp(100px, 20vw, 200px); --cms-bg-shape-h: clamp(100px, 20vw, 200px); }


.cms-bg-shape--secondary[data-shape-size="2"] { --cms-bg-shape-w: clamp(150px, 20vw, 300px); --cms-bg-shape-h: clamp(150px, 20vw, 300px); }


.cms-bg-shape--secondary[data-shape-size="3"] { --cms-bg-shape-w: clamp(110px, 20vw, 220px); --cms-bg-shape-h: clamp(110px, 20vw, 220px); }


.cms-bg-shape--secondary[data-shape-size="4"] { --cms-bg-shape-w: clamp(140px, 20vw, 280px); --cms-bg-shape-h: clamp(140px, 20vw, 280px); }


.cms-bg-shape--tr-lg { top: -15%; right: -8%; }


.cms-bg-shape--bl-sm { bottom: -12%; left: -10%; }


.cms-bg-shape--tl-lg { top: -10%; left: -12%; }


.cms-bg-shape--br-sm { bottom: -18%; right: -6%; }


.cms-bg-shape--br-lg { bottom: -10%; right: -12%; }


.cms-bg-shape--tl-sm { top: -15%; left: -8%; }


.cms-bg-shape--bl-lg { bottom: -12%; left: -6%; }


.cms-bg-shape--tr-sm { top: -10%; right: -12%; }


.cms-bg-shape--circle,
.cms-bg-shape--frame { border-radius: 50%; background: rgba(255,255,255,0.03); }


.cms-bg-shape--circle.cms-bg-shape--secondary,
.cms-bg-shape--frame.cms-bg-shape--secondary { background: color-mix(in srgb, var(--color-accent) 8%, transparent); }


.cms-bg-shape--accent,
.cms-bg-shape--offset {
    border-radius: var(--radius-lg);
    background: rgba(255,255,255,0.025);
    transform: rotate(-12deg);
}


.cms-bg-shape--accent.cms-bg-shape--secondary,
.cms-bg-shape--offset.cms-bg-shape--secondary {
    background: color-mix(in srgb, var(--color-accent) 6%, transparent);
    transform: rotate(8deg);
}


.cms-bg-shape--dots {
    background: radial-gradient(circle, rgba(255,255,255,0.06) 2px, transparent 2px);
    background-size: 18px 18px;
}


.cms-bg-shape--dots.cms-bg-shape--secondary {
    background: radial-gradient(circle, color-mix(in srgb, var(--color-accent) 10%, transparent) 2px, transparent 2px);
    background-size: 16px 16px;
}


.cms-bg-shape--stripes {
    opacity: .06;
    background: repeating-linear-gradient(45deg, #fff 0px, #fff 2px, transparent 2px, transparent 14px);
}


.cms-bg-shape--stripes.cms-bg-shape--secondary {
    opacity: .08;
    background: repeating-linear-gradient(-45deg, var(--color-accent) 0px, var(--color-accent) 2px, transparent 2px, transparent 14px);
}


.cms-bg-shape--crosshatch {
    opacity: .05;
    background: repeating-linear-gradient(0deg, #fff 0px, #fff 1px, transparent 1px, transparent 14px), repeating-linear-gradient(90deg, #fff 0px, #fff 1px, transparent 1px, transparent 14px);
}


.cms-bg-shape--crosshatch.cms-bg-shape--secondary {
    opacity: .06;
    background: repeating-linear-gradient(0deg, var(--color-accent) 0px, var(--color-accent) 1px, transparent 1px, transparent 12px), repeating-linear-gradient(90deg, var(--color-accent) 0px, var(--color-accent) 1px, transparent 1px, transparent 12px);
}


.cms-bg-shape--border {
    border-radius: var(--radius);
    background: rgba(255,255,255,0.04);
}


.cms-bg-shape--border.cms-bg-shape--secondary {
    background: color-mix(in srgb, var(--color-accent) 6%, transparent);
}


.cms-img-deco {
    position: relative;
    aspect-ratio: var(--cms-img-deco-aspect, 4/3);
}


.cms-img-deco--aspect-square { --cms-img-deco-aspect: 1/1; }


.cms-img-deco--aspect-4-3 { --cms-img-deco-aspect: 4/3; }


.cms-img-deco--aspect-3-4 { --cms-img-deco-aspect: 3/4; }


.cms-img-deco--aspect-16-9 { --cms-img-deco-aspect: 16/9; }


.cms-img-deco--aspect-9-16 { --cms-img-deco-aspect: 9/16; }


.cms-img-deco--aspect-21-9 { --cms-img-deco-aspect: 21/9; }


.cms-img-deco--aspect-auto { --cms-img-deco-aspect: auto; }


.cms-img-deco--accent-accent { --cms-img-deco-color: var(--color-accent); }


.cms-img-deco--accent-accent-soft { --cms-img-deco-color: var(--color-accent-soft, var(--color-accent)); }


.cms-img-deco--accent-accent2 { --cms-img-deco-color: var(--color-accent2); }


.cms-img-deco--accent-accent2-soft { --cms-img-deco-color: var(--color-accent2-soft, var(--color-accent2)); }


.cms-img-deco--size-0 { --cms-img-deco-circle: 80px; --cms-img-deco-pattern: 100px; --cms-img-deco-accent: 45%; }


.cms-img-deco--size-1 { --cms-img-deco-circle: 64px; --cms-img-deco-pattern: 80px; --cms-img-deco-accent: 35%; }


.cms-img-deco--size-2 { --cms-img-deco-circle: 100px; --cms-img-deco-pattern: 120px; --cms-img-deco-accent: 50%; }


.cms-img-deco--size-3 { --cms-img-deco-circle: 72px; --cms-img-deco-pattern: 90px; --cms-img-deco-accent: 40%; }


.cms-img-deco--size-4 { --cms-img-deco-circle: 90px; --cms-img-deco-pattern: 110px; --cms-img-deco-accent: 55%; }


.cms-img-deco__inner {
    position: relative;
    z-index: 1;
    width: 100%;
    height: 100%;
    border-radius: var(--radius-lg);
    overflow: hidden;
}


.cms-img-deco__inner--surface {
    box-shadow: 0 8px 40px color-mix(in srgb, var(--cms-img-deco-color) 20%, transparent);
}


.cms-img-deco__img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: var(--radius-lg);
}


.cms-img-deco__shape {
    position: absolute;
    z-index: 0;
}


.cms-img-deco__shape--corner { border-radius: var(--radius-lg); }


.cms-img-deco--accent .cms-img-deco__shape--corner {
    width: var(--cms-img-deco-accent);
    height: var(--cms-img-deco-accent);
    background: color-mix(in srgb, var(--cms-img-deco-color) 12%, transparent);
}


.cms-img-deco--circle .cms-img-deco__shape--corner {
    width: var(--cms-img-deco-circle);
    height: var(--cms-img-deco-circle);
    border-radius: 50%;
    background: color-mix(in srgb, var(--cms-img-deco-color) 15%, transparent);
}


.cms-img-deco--dots .cms-img-deco__shape--corner,
.cms-img-deco--stripes .cms-img-deco__shape--corner,
.cms-img-deco--crosshatch .cms-img-deco__shape--corner {
    width: var(--cms-img-deco-pattern);
    height: var(--cms-img-deco-pattern);
}


.cms-img-deco--dots .cms-img-deco__shape--corner {
    background: radial-gradient(circle, var(--cms-img-deco-color) 1.5px, transparent 1.5px);
    background-size: 12px 12px;
    opacity: .25;
}


.cms-img-deco--stripes .cms-img-deco__shape--corner {
    opacity: .2;
    background: repeating-linear-gradient(45deg, var(--cms-img-deco-color) 0px, var(--cms-img-deco-color) 2px, transparent 2px, transparent 10px);
}


.cms-img-deco--crosshatch .cms-img-deco__shape--corner {
    opacity: .15;
    background: repeating-linear-gradient(0deg, var(--cms-img-deco-color) 0px, var(--cms-img-deco-color) 1px, transparent 1px, transparent 10px), repeating-linear-gradient(90deg, var(--cms-img-deco-color) 0px, var(--cms-img-deco-color) 1px, transparent 1px, transparent 10px);
}


.cms-img-deco--tl .cms-img-deco__shape--corner { top: -20px; left: -20px; }


.cms-img-deco--tr .cms-img-deco__shape--corner { top: -20px; right: -20px; }


.cms-img-deco--bl .cms-img-deco__shape--corner { bottom: -20px; left: -20px; }


.cms-img-deco--br .cms-img-deco__shape--corner { bottom: -20px; right: -20px; }


.cms-img-deco--accent.cms-img-deco--tl .cms-img-deco__shape--corner,
.cms-img-deco--accent.cms-img-deco--tr .cms-img-deco__shape--corner,
.cms-img-deco--accent.cms-img-deco--bl .cms-img-deco__shape--corner,
.cms-img-deco--accent.cms-img-deco--br .cms-img-deco__shape--corner { transform: translate(10px, 10px); }


.cms-img-deco__shape--offset {
    inset: 12px -12px -12px 12px;
    background: color-mix(in srgb, var(--cms-img-deco-color) 10%, transparent);
    border-radius: var(--radius-lg);
}


.cms-img-deco--tl .cms-img-deco__shape--offset { inset: -12px 12px 12px -12px; }


.cms-img-deco--bl .cms-img-deco__shape--offset { inset: 12px 12px -12px -12px; }


.cms-img-deco--tr .cms-img-deco__shape--offset { inset: -12px -12px 12px 12px; }


.cms-img-deco__shape--border {
    background: color-mix(in srgb, var(--cms-img-deco-color) 15%, transparent);
    border-radius: var(--radius);
}


.cms-img-deco--left .cms-img-deco__shape--border { top: 8%; left: -14px; width: 28px; height: 84%; }


.cms-img-deco--right .cms-img-deco__shape--border { top: 8%; right: -14px; width: 28px; height: 84%; }


.cms-img-deco--top .cms-img-deco__shape--border { left: 8%; top: -14px; height: 28px; width: 84%; }


.cms-img-deco--bottom .cms-img-deco__shape--border { left: 8%; bottom: -14px; height: 28px; width: 84%; }


.cms-img-deco__shape--frame {
    inset: 10px -10px -10px 10px;
    border-radius: var(--radius-lg);
    border: 2px solid color-mix(in srgb, var(--cms-img-deco-color) 15%, transparent);
}


.cms-img-deco--frame-offset .cms-img-deco__shape--frame {
    inset: 12px -12px -12px 12px;
    border-width: 3px;
    border-color: color-mix(in srgb, var(--cms-img-deco-color) 20%, transparent);
}


.cms-img-deco--outline-offset .cms-img-deco__shape--frame {
    inset: 8px -8px -8px 8px;
    border-color: color-mix(in srgb, var(--cms-img-deco-color) 20%, transparent);
}


.cms-img-deco--clip-angle .cms-img-deco__inner {
    clip-path: polygon(0 0, 100% 0, 100% calc(100% - 24px), calc(100% - 24px) 100%, 0 100%);
}


.cms-callout {
    margin: 24px 0;
    padding: 20px 24px;
    border-left: 3px solid var(--cms-callout-border, var(--color-accent));
    background: var(--cms-callout-bg, color-mix(in srgb, var(--color-accent) 8%, transparent));
    border-radius: var(--radius-lg);
    color: var(--cms-callout-text, var(--color-text));
}


.cms-callout--info {
    --cms-callout-border: #3B82F6;
    --cms-callout-bg: rgba(59,130,246,.08);
}


.cms-callout--tip {
    --cms-callout-border: #10B981;
    --cms-callout-bg: rgba(16,185,129,.08);
}


.cms-callout--warning {
    --cms-callout-border: #F59E0B;
    --cms-callout-bg: rgba(245,158,11,.1);
}


.cms-callout--quote {
    --cms-callout-border: var(--color-accent);
    --cms-callout-bg: color-mix(in srgb, var(--color-accent) 8%, transparent);
}


.cms-callout--dark {
    --cms-callout-text: var(--color-dark-text);
    --cms-callout-title: var(--color-dark-text);
}


.cms-callout--dark.cms-callout--info { --cms-callout-bg: rgba(59,130,246,.14); }


.cms-callout--dark.cms-callout--tip { --cms-callout-bg: rgba(16,185,129,.14); }


.cms-callout--dark.cms-callout--warning { --cms-callout-bg: rgba(245,158,11,.16); }


.cms-callout--dark.cms-callout--quote { --cms-callout-bg: color-mix(in srgb, var(--color-accent) 12%, transparent); }


.cms-callout--quote { font-style: italic; }


.cms-callout__head {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 10px;
}


.cms-callout__icon,
.cms-callout__icon--float {
    font-size: 18px;
    line-height: 1;
    flex-shrink: 0;
}


.cms-callout__icon--float {
    float: left;
    margin-right: 10px;
    margin-top: 2px;
}


.cms-callout__title {
    font-family: var(--font-heading);
    font-size: 15px;
    font-weight: 700;
    color: var(--cms-callout-title, var(--color-text));
    line-height: 1.3;
    margin: 0 0 10px;
}


.cms-callout__head .cms-callout__title { margin: 0; }


.cms-callout__body {
    font-family: var(--font-body);
    font-size: 15px;
    line-height: 1.7;
    color: var(--cms-callout-text, var(--color-text));
}


.cms-btn--sm {
    --cms-btn-padding: 8px 20px;
    --cms-btn-font-size: 13px;
}


.cms-btn--md {
    --cms-btn-padding: 12px 28px;
    --cms-btn-font-size: 15px;
}


.cms-btn--lg {
    --cms-btn-padding: 16px 36px;
    --cms-btn-font-size: 17px;
}


.cms-btn--filled {
    --cms-btn-bg: var(--color-accent);
    --cms-btn-color: #fff;
    --cms-btn-border: var(--color-accent);
    --cms-btn-hover-bg: var(--color-accent2);
    --cms-btn-hover-color: #fff;
    --cms-btn-hover-border: var(--color-accent2);
}


.cms-btn--outline {
    --cms-btn-bg: transparent;
    --cms-btn-color: var(--color-accent);
    --cms-btn-border: var(--color-accent);
    --cms-btn-hover-bg: var(--color-accent);
    --cms-btn-hover-color: #fff;
    --cms-btn-hover-border: var(--color-accent);
}


.cms-btn--ghost {
    --cms-btn-bg: transparent;
    --cms-btn-color: var(--color-accent);
    --cms-btn-border: transparent;
    --cms-btn-hover-bg: color-mix(in srgb, var(--color-accent) 8%, transparent);
    --cms-btn-hover-color: var(--color-accent);
    --cms-btn-hover-border: transparent;
}


.cms-btn--text {
    --cms-btn-bg: transparent;
    --cms-btn-color: var(--color-accent);
    --cms-btn-border: transparent;
    --cms-btn-hover-bg: transparent;
    --cms-btn-hover-color: var(--color-accent2);
    --cms-btn-hover-border: transparent;
}


.cms-btn--on-dark.cms-btn--filled {
    --cms-btn-bg: var(--color-accent);
    --cms-btn-border: var(--color-accent);
    --cms-btn-hover-bg: var(--color-accent2);
    --cms-btn-hover-border: var(--color-accent2);
}


.cms-btn--on-dark.cms-btn--outline {
    --cms-btn-bg: transparent;
    --cms-btn-color: #fff;
    --cms-btn-border: rgba(255,255,255,.3);
    --cms-btn-hover-bg: #fff;
    --cms-btn-hover-color: var(--color-dark-bg);
    --cms-btn-hover-border: #fff;
}


.cms-btn--on-dark.cms-btn--ghost,
.cms-btn--on-dark.cms-btn--text {
    --cms-btn-bg: transparent;
    --cms-btn-color: rgba(255,255,255,.86);
    --cms-btn-border: transparent;
    --cms-btn-hover-bg: rgba(255,255,255,.1);
    --cms-btn-hover-color: #fff;
    --cms-btn-hover-border: transparent;
}


.cms-btn--on-accent.cms-btn--filled {
    --cms-btn-bg: #fff;
    --cms-btn-color: var(--color-accent);
    --cms-btn-border: #fff;
    --cms-btn-hover-bg: var(--color-accent3);
    --cms-btn-hover-color: #fff;
    --cms-btn-hover-border: var(--color-accent3);
}


.cms-btn--on-accent.cms-btn--outline {
    --cms-btn-bg: transparent;
    --cms-btn-color: #fff;
    --cms-btn-border: rgba(255,255,255,.4);
    --cms-btn-hover-bg: #fff;
    --cms-btn-hover-color: var(--color-accent);
    --cms-btn-hover-border: #fff;
}


.cms-btn--on-accent.cms-btn--ghost,
.cms-btn--on-accent.cms-btn--text {
    --cms-btn-bg: transparent;
    --cms-btn-color: #fff;
    --cms-btn-border: transparent;
    --cms-btn-hover-bg: rgba(255,255,255,.15);
    --cms-btn-hover-color: rgba(255,255,255,.78);
    --cms-btn-hover-border: transparent;
}


.cms-btn--text,
.cms-btn--textual {
    border-color: transparent;
    border-radius: 0;
    padding: 0;
}


.cms-btn--text:hover,
.cms-btn--textual:hover { text-decoration: underline; }


.cms-shell {
    margin: var(--cms-shell-margin, 0);
    border-radius: var(--cms-shell-radius, 18px);
    overflow: var(--cms-shell-overflow, hidden);
    border: 1px solid var(--cms-shell-border-color, var(--color-border));
    background: var(--cms-shell-bg, var(--color-bg));
    color: var(--cms-shell-color, var(--color-text));
    box-shadow: var(--cms-shell-shadow, none);
}


.cms-shell--section { --cms-shell-margin: 0 clamp(10px, 2vw, 15px) 24px; }


.cms-shell--header { --cms-shell-margin: 12px clamp(10px, 2vw, 15px) 24px; }


.cms-shell--hero { --cms-shell-margin: 0 clamp(10px, 2vw, 15px) 24px; }


.cms-shell--footer { --cms-shell-margin: 24px clamp(10px, 2vw, 15px) 15px; }


.cms-shell--bg-default {
    --cms-shell-bg: var(--color-bg);
    --cms-shell-color: var(--color-text);
    --cms-shell-border-color: var(--color-border);
}


.cms-shell--bg-alt {
    --cms-shell-bg: var(--color-bg-alt);
    --cms-shell-color: var(--color-text);
    --cms-shell-border-color: var(--color-border);
}


.cms-shell--bg-dark,
.cms-shell--bg-image {
    --cms-shell-bg: var(--color-dark-bg);
    --cms-shell-color: var(--color-dark-text);
    --cms-shell-border-color: rgba(255,255,255,.1);
}


.cms-shell--bg-accent,
.cms-shell--bg-accent2 {
    --cms-shell-bg: var(--color-accent);
    --cms-shell-color: #fff;
    --cms-shell-border-color: rgba(255,255,255,.14);
}


.cms-shell--bg-accent2 { --cms-shell-bg: var(--color-accent2, var(--color-accent)); }


.cms-shell--bg-accent3 {
    --cms-shell-bg: var(--color-accent-soft, var(--color-bg-alt));
    --cms-shell-color: var(--color-text);
    --cms-shell-border-color: var(--color-border);
}


.cms-shell--bg-accent4 {
    --cms-shell-bg: var(--color-accent2-soft, var(--color-bg-alt));
    --cms-shell-color: var(--color-text);
    --cms-shell-border-color: var(--color-border);
}


.cms-shell--shadow-soft { --cms-shell-shadow: 0 18px 40px rgba(15,23,42,.06); }


.cms-shell--shadow-none { --cms-shell-shadow: none; }


.cms-shell--overflow-visible { --cms-shell-overflow: visible; }


.cms-shell--overflow-hidden { --cms-shell-overflow: hidden; }


.cms-shell--radius-sm { --cms-shell-radius: var(--radius-sm, 10px); }


.cms-shell--radius-md { --cms-shell-radius: var(--radius, 14px); }


.cms-shell--radius-lg { --cms-shell-radius: var(--radius-lg, 18px); }


.cms-shell--radius-xl { --cms-shell-radius: 28px; }


.cms-floating-badge {
    position: absolute;
}


.cms-floating-badge--animated {
    animation: cms-floating-badge-float 3s ease-in-out infinite;
}


.cms-floating-badge--tl { top: -16px; left: -12px; }


.cms-floating-badge--tr { top: -16px; right: -12px; }


.cms-floating-badge--bl { bottom: -16px; left: -12px; }


.cms-floating-badge--br { bottom: -16px; right: -12px; }


@keyframes cms-floating-badge-float {
    0%,100% { transform: translateY(0); }
    50% { transform: translateY(-8px); }
}


/* Writer enrichment blocks */
.wbl-block {
    font-family: var(--font-body);
    color: var(--color-text);
    line-height: 1.65;
    margin: 2rem 0;
    box-sizing: border-box;
}


.wbl-block,
.wbl-block *,
.wbl-block *::before,
.wbl-block *::after {
    box-sizing: inherit;
}


.wbl-resume {
    background: color-mix(in srgb, var(--color-accent) 7%, #fff);
    border: 1px solid color-mix(in srgb, var(--color-accent) 18%, #fff);
    border-left: 4px solid var(--color-accent);
    border-radius: var(--radius);
    padding: 1.4rem 1.5rem;
}


.wbl-resume__header {
    display: flex;
    align-items: center;
    gap: .6rem;
    margin-bottom: 1rem;
}


.wbl-resume__icon {
    flex-shrink: 0;
    width: 22px;
    height: 22px;
    color: var(--color-accent);
}


.wbl-resume__title {
    font-family: var(--font-heading);
    font-size: 1.02rem;
    font-weight: 700;
    color: var(--color-accent);
    margin: 0;
}


.wbl-resume__body ul {
    margin: 0;
    padding-left: 1.2rem;
    list-style: none;
}


.wbl-resume__body ul li {
    position: relative;
    margin: 0;
    padding: .38rem 0 .38rem .22rem;
    font-size: .98rem;
    line-height: 1.7;
    color: var(--color-text-muted);
}


.wbl-resume__body ul li::before {
    content: "";
    position: absolute;
    left: -1rem;
    top: 1rem;
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--color-accent);
}


.wbl-resume__body p {
    margin: 0;
    font-size: .98rem;
    line-height: 1.7;
    color: var(--color-text-muted);
}


.wbl-short {
    display: flex;
    align-items: flex-start;
    gap: .85rem;
    background: var(--color-bg-alt);
    border: 1px solid var(--color-border);
    border-radius: var(--radius);
    padding: 1rem 1.25rem;
}


.wbl-short__icon {
    flex-shrink: 0;
    width: 20px;
    height: 20px;
    margin-top: 2px;
    color: var(--color-accent);
}


.wbl-short__body {
    flex: 1;
    min-width: 0;
}


.wbl-short__label {
    display: block;
    font-family: var(--font-heading);
    font-size: .78rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .05em;
    color: var(--color-accent);
    margin-bottom: .2rem;
}


.wbl-short__body p {
    margin: 0;
    font-size: .95rem;
    color: var(--color-text-muted);
}


.wbl-paa {
    background: var(--color-bg);
    border: 1px solid var(--color-border);
    border-radius: var(--radius);
    overflow: hidden;
}


.wbl-paa__summary {
    display: flex;
    align-items: center;
    gap: .65rem;
    padding: 1rem 1.25rem;
    font-family: var(--font-heading);
    font-size: 1rem;
    font-weight: 600;
    color: var(--color-text);
    cursor: pointer;
    list-style: none;
    user-select: none;
    transition: background-color .15s ease;
}


.wbl-paa__summary::-webkit-details-marker {
    display: none;
}


.wbl-paa__summary::before {
    content: "";
    flex-shrink: 0;
    width: 20px;
    height: 20px;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%2364748b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
    background-size: contain;
    background-repeat: no-repeat;
    transition: transform .2s ease;
}


.wbl-paa[open] .wbl-paa__summary::before {
    transform: rotate(180deg);
}


.wbl-paa__summary:hover {
    background: var(--color-bg-alt);
}


.wbl-paa__summary:focus-visible {
    outline: 2px solid var(--color-accent);
    outline-offset: -2px;
}


.wbl-paa__answer {
    padding: 0 1.25rem 1.1rem calc(1.25rem + 20px + .65rem);
    border-top: 1px solid var(--color-border);
}


.wbl-paa__answer p {
    margin: .7rem 0 0;
    font-size: .95rem;
    color: var(--color-text-muted);
}


.wbl-faq {
    background: var(--color-bg-alt);
    border: 1px solid var(--color-border);
    border-radius: var(--radius);
    padding: 1.35rem;
}


.wbl-faq__title {
    font-family: var(--font-heading);
    font-size: 1.3rem;
    font-weight: 700;
    color: var(--color-text);
    margin: 0 0 1rem;
}


.wbl-faq-item + .wbl-faq-item {
    margin-top: 1rem;
    padding-top: 1rem;
    border-top: 1px solid var(--color-border);
}


.wbl-faq-item__question {
    font-family: var(--font-heading);
    font-size: 1rem;
    font-weight: 600;
    color: var(--color-text);
    margin: 0 0 .45rem;
}


.wbl-faq-item__answer {
    margin: 0;
    font-size: .95rem;
    line-height: 1.7;
    color: var(--color-text-muted);
}


@media (max-width: 768px) {
    .wbl-resume,
    .wbl-short,
    .wbl-faq {
        padding: 1rem;
    }
    .wbl-paa__summary {
        padding: .95rem 1rem;
        font-size: .96rem;
    }
    .wbl-paa__answer {
        padding: 0 1rem 1rem calc(1rem + 20px + .65rem);
    }}


@media (max-width: 767px) {
    .cms-hero-post-centered--left .cms-hero-post-centered__content {
        max-width: calc(100% - 24px);
        padding: 40px 12px 56px;
    }
    .cms-hero-post-centered--editorial .cms-hero-post-centered__title {
        font-size: clamp(30px, 9vw, 42px);
    }}


/* Global flat icon contract: block icons are SVG, primary-colored, never raw text labels. */
.cms-fg-c3__media--icon,
.fg-cards3__icon,
.cms-fg-car__icon,
.fg-carousel__icon,
.cms-fg-alt__icon,
.fg-alt__icon,
.cms-fg-i2__icon,
.fg-icon2c__icon,
.cms-fg-li__icon,
.fg-listimg__icon,
.cms-fg-sa__icon,
.fg-svcalt__icon,
.cms-ti-list__icon,
.ti-list__icon,
.cms-ti-dsplit__item-icon,
.ti-dsplit__item-icon,
.cms-cb__icon-wrap,
.cms-cb__icon-lg,
.cb__icon-wrap,
.cb__icon-lg,
.cms-stats-cg__icon,
.stats-cg__icon,
.cms-stats-ca__icon,
.stats-ca__icon,
.cms-stats-bento__icon,
.bento__icon {
    color: var(--color-accent);
}


.cms-fg-c3__media--icon svg,
.fg-cards3__icon svg,
.cms-fg-car__icon svg,
.fg-carousel__icon svg,
.cms-fg-alt__icon svg,
.fg-alt__icon svg,
.cms-fg-i2__icon svg,
.fg-icon2c__icon svg,
.cms-fg-li__icon svg,
.fg-listimg__icon svg,
.cms-fg-sa__icon svg,
.fg-svcalt__icon svg,
.cms-ti-list__icon svg,
.ti-list__icon svg,
.cms-ti-dsplit__item-icon svg,
.ti-dsplit__item-icon svg,
.cms-cb__icon-wrap svg,
.cms-cb__icon-lg svg,
.cb__icon-wrap svg,
.cb__icon-lg svg,
.cms-stats-cg__icon svg,
.stats-cg__icon svg,
.cms-stats-ca__icon svg,
.stats-ca__icon svg,
.cms-stats-bento__icon svg,
.bento__icon svg,
.cms-steps-cs__badge svg,
.steps-cs__badge svg,
.steps-tl__dot svg,
.steps-ng__number svg,
.cms-steps-nl__number svg,
.steps-nl__number svg,
.cms-steps-pb__number svg {
    display: block;
    width: 1em;
    height: 1em;
}


.cms-fg-c3__media--icon svg,
.fg-cards3__icon svg,
.cms-fg-car__icon svg,
.fg-carousel__icon svg,
.cms-fg-alt__icon svg,
.fg-alt__icon svg {
    width: 22px;
    height: 22px;
}


/* Service detail pages generated from Manager corporate service pages. */
.page-content .service-detail {
    max-width: var(--container, 1120px);
    margin: 0 auto;
    padding: clamp(36px, 6vw, 80px) 20px;
}


.page-content .service-detail + .service-detail {
    border-top: 1px solid color-mix(in srgb, var(--color-accent) 12%, transparent);
}


.service-detail__eyebrow {
    display: inline-flex;
    margin: 0 0 14px;
    padding: 6px 12px;
    border-radius: 999px;
    background: color-mix(in srgb, var(--color-accent) 12%, transparent);
    color: var(--color-accent);
    font-size: .78rem;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
}


.service-detail h2 {
    max-width: 860px;
    margin: 0 0 18px;
    color: var(--color-heading, var(--color-text));
    font-family: var(--font-heading);
    font-size: clamp(28px, 4vw, 48px);
    line-height: 1.08;
}


.service-detail p,
.service-detail li {
    max-width: 820px;
    color: var(--color-text-muted);
    font-size: clamp(1rem, 1.3vw, 1.1rem);
    line-height: 1.75;
}


.service-detail ul,
.service-detail ol {
    display: grid;
    gap: 10px;
    margin: 22px 0 0;
    padding-left: 1.2rem;
}


.service-detail__cards {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
    margin-top: 28px;
}


.service-detail__cards article {
    padding: 22px;
    border: 1px solid color-mix(in srgb, var(--color-accent) 14%, transparent);
    border-radius: var(--radius-lg, 18px);
    background: color-mix(in srgb, var(--color-accent) 6%, var(--color-bg));
}


.service-detail__cards strong,
.service-detail__cards span {
    display: block;
}


.service-detail__cards strong {
    margin-bottom: 8px;
    color: var(--color-heading, var(--color-text));
}


.service-detail details {
    max-width: 860px;
    padding: 18px 0;
    border-bottom: 1px solid var(--color-border, rgba(0,0,0,.12));
}


.service-detail summary {
    cursor: pointer;
    color: var(--color-heading, var(--color-text));
    font-weight: 700;
}


.service-detail__cta {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-top: 14px;
    padding: 14px 22px;
    border-radius: 999px;
    background: var(--color-accent);
    color: var(--color-accent-contrast, #fff);
    font-weight: 700;
    text-decoration: none;
}


@media (max-width: 760px) {
    .service-detail__cards {
        grid-template-columns: 1fr;
    }}


.cms-steps-stack {
    position: relative;
}


.cms-steps-stack__item {
    position: sticky;
    top: 80px;
    z-index: 1;
    margin-bottom: 40px;
}


.cms-steps-stack__item--offset-1 { top: 100px; z-index: 2; }


.cms-steps-stack__item--offset-2 { top: 120px; z-index: 3; }


.cms-steps-stack__item--offset-3 { top: 140px; z-index: 4; }


.cms-steps-stack__item--offset-4 { top: 160px; z-index: 5; }


.cms-steps-stack__item--offset-5 { top: 180px; z-index: 6; }


.cms-steps-stack__card {
    display: flex;
    gap: 24px;
    align-items: flex-start;
    padding: clamp(24px, 4vw, 40px);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    background: var(--color-bg);
    box-shadow: var(--shadow-lg);
}


.cms-steps-stack__card--with-image { flex-wrap: wrap; }


.cms-steps-stack--dark .cms-steps-stack__card {
    border-color: rgba(255,255,255,.08);
    background: rgba(255,255,255,.06);
}


.cms-steps-stack__badge {
    display: flex;
    flex-shrink: 0;
    width: 48px;
    height: 48px;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: var(--color-accent);
    color: #fff;
    font-family: var(--font-heading);
    font-size: 20px;
    font-weight: 700;
}


.cms-steps-stack__badge svg {
    width: 1em;
    height: 1em;
}


.cms-steps-stack__body {
    flex: 1;
    min-width: 200px;
}


.cms-steps-stack__title {
    margin: 0 0 8px;
    color: var(--color-text);
    font-family: var(--font-heading);
    font-size: clamp(18px, 2.5vw, 24px);
    font-weight: 700;
    line-height: 1.3;
}


.cms-steps-stack__desc {
    margin: 0;
    color: var(--color-text-muted);
    font-family: var(--font-body);
    font-size: 15px;
    line-height: 1.6;
}


.cms-steps-stack--dark .cms-steps-stack__title { color: var(--color-dark-text); }


.cms-steps-stack--dark .cms-steps-stack__desc { color: var(--color-dark-text-muted); }


.cms-steps-stack__media {
    flex: 0 0 clamp(150px, 30%, 250px);
    overflow: hidden;
    border-radius: var(--radius);
}


.cms-steps-stack__media img {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 16 / 9;
    object-fit: cover;
}


.cms-steps-stack__spacer--1 { height: 20px; }


.cms-steps-stack__spacer--2 { height: 40px; }


.cms-steps-stack__spacer--3 { height: 60px; }


.cms-steps-stack__spacer--4 { height: 80px; }


.cms-steps-stack__spacer--5 { height: 100px; }


@media (max-width: 768px) {
    .cms-steps-stack__item {
        position: relative !important;
        top: auto !important;
    }}


.bloc_resume_post_list,
.bloc_resume_post ul,
.cms-summary__list {
    display: flex;
    flex-direction: column;
    gap: 10px;
    list-style: none !important;
    margin: 0 !important;
    padding: 0 !important;
}


.bloc_resume_post_list li,
.bloc_resume_post li,
.cms-summary__list li {
    position: relative;
    list-style: none !important;
    margin: 0 !important;
    padding: 0 0 0 24px !important;
    font: 400 14px/1.6 var(--font-body);
    color: var(--color-text);
}


.bloc_resume_post_list li::marker,
.bloc_resume_post li::marker,
.cms-summary__list li::marker { content: ""; }


.bloc_resume_post_list li::before,
.bloc_resume_post li::before,
.cms-summary__list li::before {
    content: "✓";
    position: absolute;
    left: 0;
    top: 0;
    color: var(--color-accent);
    font-weight: 700;
}


.faq-wrapper {
    display: flex;
    flex-direction: column;
    gap: 0;
    margin: 0;
}


.faq-item {
    margin: 0 !important;
    padding: 14px 0;
    border-bottom: 1px solid var(--color-border);
    background: transparent !important;
}


.faq-item:first-child { padding-top: 0; }


.faq-item:last-child { padding-bottom: 0; border-bottom: 0; }


.short_bloc {
    margin: 28px 0;
    padding: 16px 20px;
    border: 0;
    border-left: 3px solid var(--color-accent);
    border-radius: 0;
    box-shadow: none;
    background: transparent;
}


.short_bloc_title {
    display: block;
    margin: 0 0 10px;
    font: 700 10px/1.2 var(--font-body);
    letter-spacing: .07em;
    text-transform: uppercase;
    color: var(--color-accent);
}


/* Utility/legal pages */
.cms-utility-hero {
    position: relative;
    overflow: hidden;
    background:
        radial-gradient(circle at 18% 20%, color-mix(in srgb, var(--color-accent) 28%, transparent) 0, transparent 34%),
        linear-gradient(135deg, var(--color-dark-bg, #101820) 0%, color-mix(in srgb, var(--color-dark-bg, #101820) 86%, #000) 100%);
    color: var(--color-dark-text, #fff);
    padding: clamp(110px, 14vw, 180px) 0 clamp(58px, 8vw, 96px);
    margin: 0 0 clamp(44px, 6vw, 72px);
}


.cms-utility-hero::after {
    content: "";
    position: absolute;
    inset: auto -8% -45% 42%;
    height: 70%;
    background: radial-gradient(circle, color-mix(in srgb, var(--color-accent2, var(--color-accent)) 20%, transparent), transparent 68%);
    pointer-events: none;
}


.cms-utility-hero__inner {
    position: relative;
    z-index: 1;
    width: min(var(--container, 1180px), calc(100% - 40px));
    margin: 0 auto;
}


.cms-utility-hero__label {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 8px 14px;
    border-radius: 999px;
    background: rgba(255,255,255,.1);
    border: 1px solid rgba(255,255,255,.18);
    font: 700 12px/1 var(--font-body);
    letter-spacing: .08em;
    text-transform: uppercase;
    color: color-mix(in srgb, var(--color-accent) 72%, #fff);
}


.cms-utility-hero__title {
    max-width: 900px;
    margin: 18px 0 14px;
    font-family: var(--font-heading);
    font-size: clamp(2.35rem, 5vw, 4.8rem);
    line-height: .98;
    font-weight: 760;
    color: var(--color-dark-text, #fff);
}


.cms-utility-hero__subtitle {
    max-width: 760px;
    margin: 0;
    font: 400 clamp(1rem, 1.6vw, 1.15rem)/1.8 var(--font-body);
    color: var(--color-dark-text-muted, rgba(255,255,255,.74));
}


@keyframes cmsChecklistStepArrow {
  0%, 100% { transform: translateY(0); opacity: .55; }
  50% { transform: translateY(3px); opacity: 1; }
}


/* POST_FULL_WIDTH_LAYOUT_20260527: no-sidebar article layout for component labs. */

/* POST_SIDEBAR_RELATED_LIST_FIX_20260529: keep "À lire aussi" cards compact in article sidebars. */
.post-with-sidebar__related-list {
  display: flex !important;
  flex-direction: column !important;
  gap: 0 !important;
}


/* TEMPLATE_MEDIA_BACKGROUND_FALLBACKS_20260529
   Defensive layer: some rebuilt component bundles missed the background-image
   declarations while PHP components still emit CSS variables. Keep this block
   append-only and sync it with tools/scripts/sync-components-css-safe.js. */
.cms-hero-centered__bg {
  background-image: var(--cms-hero-centered-image);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}


.cms-bcta-overlay__bg {
  background-image: var(--cms-bcta-overlay-image);
  background-position: center;
  background-size: cover;
  background-repeat: no-repeat;
}


.cms-bcta-stacked__image {
  background-image: var(--cms-bcta-stacked-image);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}


.cms-hero-min__bg {
  background-image: var(--cms-hero-min-bg-image);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}


.cms-bcta-split__image {
  background-image: var(--cms-bcta-split-image);
  background-position: center;
  background-size: cover;
  background-repeat: no-repeat;
}


.cms-bcta-imgbar__image {
  background-image: var(--cms-bcta-imgbar-image);
  background-position: center;
  background-size: cover;
  background-repeat: no-repeat;
}


.cms-ti-parallax__image {
  background-image: var(--cms-ti-parallax-image);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}


.cms-hero-post-centered__bg {
  background-image: var(--cms-hero-post-centered-image);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}


.cms-hero-post-overlay__bg {
  background-image: var(--cms-hero-post-overlay-image);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}


.cms-hero-oc__bg-image {
  background-image: var(--cms-hero-oc-image);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}


.cms-hero-fc__bg {
  background-image: var(--cms-hero-fc-image);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}


.cms-hero-glow__bg {
  background-image: var(--cms-hero-glow-image);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}


.cms-hero-video__fallback {
  background-image: var(--cms-hero-video-image);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}


.cms-hero-slider__bg {
  background-image: var(--cms-hero-slider-image);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}


.cms-hero-sf__bg {
  background-image: var(--cms-hero-sf-image);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}


/* ARTICLE_V2_MOBILE_BASELINE_20260605
   Shared mobile defaults for post pages. Keep at EOF so it overrides older
   generated component blocks without changing site-specific home/listing CSS. */
@media (max-width: 800px) {
  .page-post .cms-section__inner--contained,
  .page-post .cms-section__inner--narrow,
  .page-post .cms-section__inner--full {
    padding-left: 10px !important;
    padding-right: 10px !important;
  }

  .page-post .ws-layout-section > div[style] {
    padding-left: 10px !important;
    padding-right: 10px !important;
  }

  .page-post .ws-layout-shell {
    padding-left: 10px !important;
    padding-right: 10px !important;
  }}


.cms-obfuscated-link,
.cms-legal-link {
  appearance: none;
  border: 0;
  background: transparent;
  padding: 0;
  margin: 0;
  font: inherit;
  line-height: inherit;
  color: inherit;
  text-align: inherit;
  text-decoration: inherit;
  cursor: pointer;
}


:is(
  .cms-footer-mega,
  .cms-footer-cta,
  .cms-ftr-col3,
  .cms-ftr-col4
) :is(.cms-obfuscated-link, .cms-legal-link) {
  display: inline-flex;
  align-items: baseline;
  width: auto;
  min-width: 0;
  min-height: 0;
  border-radius: 0;
  box-shadow: none;
  background: transparent;
  color: inherit;
  font: inherit;
  letter-spacing: inherit;
  text-transform: inherit;
}

/* CONTENT_CARD_FULL_CLICK_FIX_20260608
   Cards with data-cms-card-link are fully clickable while keeping nested links
   and buttons native. */
[data-cms-card-link] {
  cursor: pointer;
}


[data-cms-card-link]:focus-visible {
  outline: 3px solid color-mix(in srgb, var(--color-accent, #0f766e) 48%, transparent);
  outline-offset: 3px;
}


/* SITE_CORE_SERVICE_HEADING_OVERFLOW_GUARD_20260717
   Service themes may use a large display size in their final stylesheet. Keep
   the text track shrinkable and long, unbroken words inside the viewport. */
.page-service-detail [class*="service-detail-hero__grid"] {
  grid-template-columns: minmax(0, 1fr) minmax(20rem, .72fr) !important;
}


.page-service-detail [class*="service-detail-hero__grid"] > * {
  min-width: 0;
}


.page-service-detail section[class*="service-detail-hero"] h1 {
  width: 100%;
  max-width: 100% !important;
  font-size: 3.5rem !important;
  line-height: .96 !important;
  letter-spacing: 0 !important;
  white-space: normal !important;
  overflow-wrap: anywhere;
  word-break: normal;
  hyphens: auto;
  text-wrap: balance;
}


@media (max-width: 980px) {
  .page-service-detail [class*="service-detail-hero__grid"] {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  .page-service-detail section[class*="service-detail-hero"] h1 {
    font-size: 3.25rem !important;
  }}


@media (max-width: 640px) {
  .page-service-detail section[class*="service-detail-hero"] h1 {
    font-size: 2.25rem !important;
    line-height: 1.02 !important;
  }}
