/* Canonical article/post layout CSS. Synced separately from components. */

.ws-layout-section { overflow: visible !important; }

.ws-layout-shell {
    max-width: var(--container, 1200px);
    margin: 0 auto;
    padding: 0 20px;
    position: relative;
    z-index: 1;
}

.ws-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 320px;
    gap: clamp(32px, 4vw, 60px);
    align-items: start;
}

.ws-content { min-width: 0; }

.ws-content .post-content {
    max-width: 100% !important;
    padding: 0 !important;
}

.ws-content .post-content h2,
.ws-content .post-content h3 {
    scroll-margin-top: calc(var(--header-sticky-offset, 96px) + 12px);
}

.ws-sidebar {
    position: sticky;
    top: 100px;
    align-self: start;
    margin-top: 0 !important;
    padding-top: 0;
    padding-bottom: clamp(24px, 3vw, 40px);
}

.ws-sidebar > *:first-child { margin-top: 0 !important; }

.ws-card {
    margin-bottom: 20px;
    padding: 20px;
    border: var(--cms-pc-border);
    border-radius: var(--cms-ds-radius-lg);
    background: var(--cms-pc-bg);
    box-shadow: 0 1px 6px rgba(0,0,0,.05);
}

.ws-card--flat {
    background: var(--color-bg-alt);
    box-shadow: none;
}

.ws-label {
    display: block;
    margin: 0 0 14px;
    font-family: var(--font-body);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .07em;
    text-transform: uppercase;
    color: var(--color-accent);
}

.ws-toc-list,
.ws-toc-children {
    list-style: none;
    margin: 0;
    padding: 0;
}

.ws-toc-children { margin: 2px 0 4px; }

.ws-toc-group { margin: 0; }

.ws-toc-group + .ws-toc-group { margin-top: 2px; }

.ws-toc-row {
    display: flex;
    align-items: flex-start;
    gap: 8px;
}

.ws-toc-link {
    display: block;
    flex: 1 1 auto;
    min-width: 0;
    margin-left: -10px;
    padding: 4px 0 4px 10px;
    border-left: 2px solid transparent;
    font-family: var(--font-body);
    font-size: 13px;
    line-height: 1.5;
    color: var(--color-text-muted);
    text-decoration: none;
    transition: color .2s, border-color .2s;
}

.ws-toc-link:hover,
.ws-toc-link.active {
    color: var(--color-accent);
    border-left-color: var(--color-accent);
}

.ws-toc-link.active { font-weight: 600; }

.ws-toc-toggle {
    display: inline-flex;
    flex: 0 0 auto;
    width: 24px;
    height: 24px;
    margin-top: 2px;
    align-items: center;
    justify-content: center;
    border: 0;
    border-radius: var(--cms-ds-radius-full);
    background: transparent;
    color: var(--color-text-muted);
    cursor: pointer;
    transition: background .2s, color .2s, transform .2s;
}

.ws-toc-toggle:hover {
    background: var(--color-bg-alt);
    color: var(--color-accent);
}

.ws-toc-toggle svg {
    width: 14px;
    height: 14px;
    transition: transform .2s ease;
}

.ws-toc-group.is-open .ws-toc-toggle svg { transform: rotate(180deg); }

.ws-toc-h3 { margin: 0; }

.ws-toc-h3 .ws-toc-link {
    padding-left: 22px;
    font-size: 12px;
}

.ws-sidebar .cms-post-card--minimal:last-child {
    border-bottom: none !important;
    padding-bottom: 0 !important;
}

.ws-related-list {
    display: flex;
    flex-direction: column;
    gap: 0;
}

.ws-related-list .cms-post-card--minimal {
    display: grid !important;
    grid-template-columns: 72px minmax(0, 1fr);
    align-items: center;
    gap: 12px;
    padding: 12px 0;
    min-height: 96px;
    transform: none !important;
}

.ws-related-list .cms-post-card--minimal:hover {
    transform: none !important;
}

.ws-related-list .cms-post-card__thumb {
    width: 72px;
    height: 72px;
    border-radius: 12px;
}

.ws-related-list .cms-post-card__thumb .cms-post-card__media,
.ws-related-list .cms-post-card__thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    margin: 0 !important;
    border-radius: inherit;
}

.ws-related-list .cms-post-card__minimal-copy {
    min-width: 0;
}

.ws-related-list .cms-post-card__title--minimal {
    margin: 0;
    font-size: 13.5px;
    line-height: 1.32;
}

.ws-related-list .cms-post-card__title-link {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.ws-related-list .cms-post-card--minimal:hover .cms-post-card__title-link {
    color: var(--color-accent) !important;
}

.ws-related-list .cms-post-card__meta--minimal {
    gap: 8px;
    margin-top: 6px;
    font-size: 11.5px;
    line-height: 1.35;
}

.ws-author {
    display: flex;
    gap: 16px;
    align-items: flex-start;
    margin-top: clamp(32px, 4vw, 48px);
}

.ws-author__media {
    flex-shrink: 0;
}

.ws-author__avatar {
    display: block;
    width: 64px;
    height: 64px;
    border: 2px solid var(--color-border);
    border-radius: 50%;
    object-fit: cover;
}

.ws-author__body { min-width: 0; }

.ws-author__name {
    display: block;
    margin: 0 0 6px;
    font-family: var(--font-heading);
    font-size: 16px;
    font-weight: 700;
    color: var(--color-text);
    text-decoration: none;
}

.ws-author__bio {
    margin: 0;
    font-family: var(--font-body);
    font-size: 14px;
    line-height: 1.6;
    color: var(--color-text-muted);
}

.page-post--standard .post-layout-shell {
    max-width: 820px;
    margin: 0 auto;
}

.page-post--standard .post-layout-shell--overlap {
    position: relative;
    z-index: 2;
    margin-top: -40px;
    padding: 40px;
    border-radius: var(--radius-lg, 12px);
    background: var(--color-bg, #fff);
    box-shadow: 0 2px 20px rgba(0,0,0,.06);
}

.page-post--standard .post-layout-author {
    max-width: 820px;
    margin: 0 auto;
    padding: 0 20px;
}

.page-post--standard .post-related-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: clamp(16px, 2vw, 24px);
}

.post-box-hero-shell {
    max-width: calc(var(--container, 1200px) - 80px);
    margin: 40px auto;
    overflow: hidden;
    border-radius: var(--radius-lg, 12px);
}

.post-box-content {
    max-width: 820px;
    margin: 0 auto;
    padding: 0 20px;
}

.post-box-content--overlap {
    position: relative;
    z-index: 2;
    margin-top: -40px;
    padding: 40px;
    border-radius: var(--radius-lg, 12px);
    background: var(--color-bg, #fff);
    box-shadow: 0 2px 20px rgba(0,0,0,.06);
}

.post-box-author {
    display: flex;
    max-width: 820px;
    margin: 0 auto;
    padding: 24px 20px;
    align-items: center;
    gap: 16px;
}

.post-box-author__avatar {
    width: 60px;
    height: 60px;
    border-radius: 50%;
    object-fit: cover;
}

.post-box-author__name {
    color: var(--color-text);
    font-family: var(--font-heading);
    font-size: 16px;
    font-weight: 600;
    text-decoration: none;
}

.post-box-author__bio {
    display: -webkit-box;
    margin: 4px 0 0;
    overflow: hidden;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    color: var(--color-text-muted);
    font-family: var(--font-body);
    font-size: 13px;
    line-height: 1.5;
}

@media (max-width: 900px) {
    .cms-ds-grid--cols-3,
    .cms-ds-grid--cols-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .ws-layout { grid-template-columns: 1fr !important; }
    .ws-sidebar {
        position: static;
        padding-top: 0;
        padding-bottom: 0;
    }
    .listing-grid,
    .listing-layout--grid-2col .listing-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .page-post--standard .post-related-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .listing-layout--list-horizontal .listing-grid,
    .listing-layout--list-full .listing-grid,
    .listing-layout--minimal-list .listing-grid {
        grid-template-columns: 1fr;
    }
}

.cms-mobile-reading-panel__close {
    display: none;
}

@media (max-width: 900px) {
    .page-post--with-sidebar .ws-layout-shell:has(.cms-mobile-reading-enhanced) {
        z-index: auto;
    }

    .ws-layout.cms-mobile-reading-enhanced .cms-mobile-reading-panels {
        display: none;
        position: fixed !important;
        z-index: 10061;
        top: auto !important;
        right: auto;
        bottom: calc(4.65rem + env(safe-area-inset-bottom));
        left: 50%;
        width: min(32rem, calc(100vw - 1rem));
        max-height: none;
        margin: 0;
        padding: 0;
        overflow: visible;
        align-self: auto !important;
        transform: translateX(-50%);
    }

    .ws-layout.cms-mobile-reading-enhanced .cms-mobile-reading-panels.is-mobile-open {
        display: block;
    }

    .ws-layout.cms-mobile-reading-enhanced .cms-mobile-reading-panels > [data-cms-mobile-reading-panel] {
        position: relative;
        display: none;
        max-height: calc(min(68dvh, 34rem) + 2px);
        margin: 0;
        padding: 1rem;
        overflow-y: auto;
        overscroll-behavior: contain;
        border: 1px solid color-mix(in srgb, var(--color-accent) 28%, var(--color-border));
        border-radius: 20px;
        background: color-mix(in srgb, var(--color-bg) 96%, transparent);
        box-shadow: 0 22px 58px color-mix(in srgb, var(--color-text) 28%, transparent);
        backdrop-filter: blur(18px);
        -webkit-backdrop-filter: blur(18px);
    }

    .ws-layout.cms-mobile-reading-enhanced .cms-mobile-reading-panels > [data-cms-mobile-reading-panel].is-mobile-open {
        display: block;
    }

    .page-post--with-sidebar .cms-mobile-reading-controls.is-enhanced {
        display: flex;
        z-index: 10060;
    }

    .cms-mobile-reading-panel__close {
        position: absolute;
        top: .65rem;
        right: .7rem;
        display: inline-grid;
        width: 2.5rem;
        height: 2.5rem;
        place-items: center;
        padding: 0;
        border: 0;
        border-radius: 999px;
        background: color-mix(in srgb, var(--color-text) 7%, transparent);
        color: var(--color-text);
        font-size: 1.25rem;
        line-height: 1;
        cursor: pointer;
    }

    .ws-layout.cms-mobile-reading-enhanced .ws-toc-toggle {
        width: 2.25rem;
        height: 2.25rem;
        margin-top: 0;
    }

    .ws-layout.cms-mobile-reading-enhanced .ws-toc-toggle svg {
        width: 1rem;
        height: 1rem;
    }
}

@media (max-width: 768px) {
    .page-post--standard .post-layout-shell--overlap {
        margin-top: -24px;
        padding: 24px 18px;
    }
    .page-post--standard .post-layout-author {
        padding: 0 16px;
    }
}

@media (max-width: 640px) {
    .cms-ds-container,
    .cms-ds-container--narrow { width: min(100% - 32px, var(--cms-ds-container)); }
    .cms-ds-grid--cols-2,
    .cms-ds-grid--cols-3,
    .cms-ds-grid--cols-4 { grid-template-columns: 1fr; }
    .listing-grid,
    .listing-layout--grid-2col .listing-grid {
        grid-template-columns: 1fr;
    }
    .page-post--standard .post-related-grid {
        grid-template-columns: 1fr;
    }
}

.cms-post-std__breadcrumb-wrap {
    padding-top: clamp(80px, 10vw, 120px);
    padding-bottom: 16px;
    background: var(--color-bg-alt);
}

.cms-post-std__inner {
    max-width: 800px;
    margin: 0 auto;
    padding: 0 24px;
}

.cms-post-std__breadcrumb {
    font-family: var(--font-body);
    font-size: 13px;
    color: var(--color-text-muted);
}

.cms-post-std__breadcrumb-link { color: inherit; text-decoration: none; transition: color 0.2s ease; }

.cms-post-std__breadcrumb-link:hover { color: var(--color-accent); }

.cms-post-std__sep { margin: 0 8px; }

.cms-post-std__header {
    max-width: 800px;
    margin: 0 auto;
    padding: 0 24px clamp(24px, 3vw, 40px);
    text-align: center;
}

.cms-post-std__category-pill {
    display: inline-block;
    margin-bottom: 16px;
    padding: 5px 16px;
    border-radius: var(--radius-full);
    background: color-mix(in srgb, var(--color-accent) 10%, transparent);
    color: var(--color-accent);
    font-family: var(--font-body);
    font-size: 12px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    text-decoration: none;
}

.cms-post-std__title {
    margin: 0 0 20px;
    font-family: var(--font-heading);
    font-size: clamp(1.8rem, 4vw, 3rem);
    font-weight: 700;
    line-height: 1.2;
    color: var(--color-text);
}

.cms-post-std__meta {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    flex-wrap: wrap;
    font-family: var(--font-body);
    font-size: 14px;
    color: var(--color-text-muted);
}

.cms-post-std__avatar {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    object-fit: cover;
}

.cms-post-std__meta-main {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}

.cms-post-std__author-link,
.cms-post-std__author-name {
    font-weight: 600;
    color: var(--color-text);
    text-decoration: none;
}

.cms-post-std__author-link:hover { color: var(--color-accent); }

.cms-post-std__figure {
    max-width: 960px;
    margin: 0 auto clamp(32px, 4vw, 56px);
    padding: 0 24px;
}

.cms-post-std__content-wrap {
    max-width: 800px;
    margin: 0 auto;
    padding: 0 24px;
}

.cms-post-std__content {
    max-width: 800px;
    margin: 0 auto;
}

.cms-post-std__author-box { margin-top: clamp(40px, 5vw, 64px); }

.cms-post-std__related {
    padding: var(--spacing-section) 0;
    background: var(--color-bg);
    border-top: 1px solid var(--color-border);
}

.cms-post-std__related-inner {
    max-width: var(--container);
    margin: 0 auto;
    padding: 0 24px;
}

.cms-post-std__related-title {
    margin: 0 0 clamp(24px, 3vw, 40px);
    font-family: var(--font-heading);
    font-size: clamp(1.4rem, 2.5vw, 2rem);
    font-weight: 700;
    color: var(--color-text);
}

.cms-post-std__related-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: clamp(16px, 2vw, 24px);
}

@media (max-width: 900px) {
    .cms-post-std__related-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 600px) {
    .cms-post-std__related-grid { grid-template-columns: 1fr; }
}

.cms-table-modal { position:fixed; inset:0; z-index:10040; display:flex; align-items:center; justify-content:center; padding:24px; background:rgba(15,23,42,.44); backdrop-filter:blur(4px); }

.cms-table-modal[hidden] { display:none !important; }

.cms-table-modal__dialog { display:flex; flex-direction:column; width:min(1600px, calc(100vw - 20px)); max-height:min(92vh, 1100px); overflow:hidden; border-radius:20px; background:var(--color-bg); box-shadow:0 24px 60px rgba(15,23,42,.22); }

.cms-table-modal__topbar { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:16px 18px; border-bottom:1px solid var(--color-border); background:color-mix(in srgb, var(--color-bg) 92%, var(--color-bg-alt) 8%); }

.cms-table-modal__title { color:var(--color-text); font:600 14px/1.4 var(--font-body); }

.cms-table-modal__close { width:40px; height:40px; border:none; border-radius:999px; background:var(--color-bg); color:var(--color-text); cursor:pointer; box-shadow:0 6px 16px rgba(15,23,42,.08); }

.cms-table-modal__body { overflow:auto; padding:18px; background:var(--color-bg); }

.cms-table-modal__body :is(.pc-table-shell, .tb-shell) { border-radius:16px; box-shadow:none; }

.cms-table-modal__body :is(.pc-table-shell, .tb-shell)::before, .cms-table-modal__body :is(.pc-table-shell, .tb-shell)::after { content:""; position:absolute; top:0; bottom:0; width:18px; pointer-events:none; opacity:0; transition:opacity .18s ease; z-index:5; }

.cms-table-modal__body :is(.pc-table-shell, .tb-shell)::before { left:0; background:linear-gradient(to right, rgba(255,255,255,.96), rgba(255,255,255,0)); }

.cms-table-modal__body :is(.pc-table-shell, .tb-shell)::after { right:0; background:linear-gradient(to left, rgba(255,255,255,.96), rgba(255,255,255,0)); }

.cms-table-modal__body :is(.pc-table-shell.has-left-shadow, .tb-shell.has-left-shadow)::before, .cms-table-modal__body :is(.pc-table-shell.has-right-shadow, .tb-shell.has-right-shadow)::after { opacity:1; }

.cms-table-modal__body :is(.pc-table-scroll, .tb-wrap) { overflow-x:auto; overflow-y:hidden; -webkit-overflow-scrolling:touch; overscroll-behavior-x:contain; scrollbar-width:thin; scrollbar-color:rgba(148, 163, 184, 0.85) transparent; }

.cms-table-modal__body :is(.pc-table-scroll, .tb-wrap)::-webkit-scrollbar { height:10px; }

.cms-table-modal__body :is(.pc-table-scroll, .tb-wrap)::-webkit-scrollbar-track { background:transparent; }

.cms-table-modal__body :is(.pc-table-scroll, .tb-wrap)::-webkit-scrollbar-thumb { background:rgba(148, 163, 184, 0.75); border:2px solid transparent; border-radius:999px; background-clip:padding-box; }

.cms-table-modal__body :is(.pc-table-scroll table, .tb-wrap table) { display:table !important; width:100%; min-width:max-content; margin:0 !important; border-collapse:separate; border-spacing:0; table-layout:auto; font-family:var(--font-body); font-size:15px; }

.cms-table-modal__body :is(.pc-table-scroll th, .tb-wrap th) { position:sticky; top:0; z-index:2; min-width:136px; padding:13px 18px; background:var(--color-accent); color:#fff; text-align:left; font-weight:600; line-height:1.35; white-space:normal; word-break:normal; overflow-wrap:anywhere; }

.cms-table-modal__body :is(.pc-table-scroll td, .tb-wrap td) { min-width:136px; padding:13px 18px; color:var(--color-text-muted); vertical-align:top; line-height:1.6; border-bottom:1px solid var(--color-border, rgba(0,0,0,0.08)); background:var(--color-bg, #fff); white-space:normal; word-break:normal; overflow-wrap:anywhere; }

.cms-table-modal__body .pc-table-shell[data-density="balanced"] .pc-table-scroll :is(th,td) { min-width:118px; }

.cms-table-modal__body .pc-table-shell[data-density="compact"] .pc-table-scroll :is(th,td) { min-width:102px; font-size:14px; }

.cms-table-modal__body :is(.tb-wrap tbody tr:last-child td, .pc-table-scroll tbody tr:last-child td) { border-bottom:none; }

.cms-table-modal__body :is(.pc-table-shell[data-sticky-first="1"] .pc-table-scroll th:first-child, .pc-table-shell[data-sticky-first="1"] .pc-table-scroll td:first-child, .tb-wrap th:first-child, .tb-wrap td:first-child) { position:sticky; left:0; min-width:170px; box-shadow:1px 0 0 var(--color-border, rgba(0,0,0,0.08)); }

.cms-table-modal__body :is(.pc-table-shell[data-sticky-first="1"] .pc-table-scroll th:first-child, .tb-wrap th:first-child) { z-index:6; background:color-mix(in srgb, var(--color-accent) 92%, #000 8%); }

.cms-table-modal__body :is(.pc-table-shell[data-sticky-first="1"] .pc-table-scroll td:first-child, .tb-wrap td:first-child) { z-index:3; background:color-mix(in srgb, var(--color-bg) 92%, var(--color-bg-alt) 8%); color:var(--color-text); font-weight:600; }

.cms-pc-sb {
    --cms-pc-sb-font-size: 16px;
    --cms-pc-sb-line-height: 1.8;
    --cms-pc-sb-text: var(--color-text);
    --cms-pc-sb-muted: var(--color-text-muted);
}

.cms-pc-sb--dark {
    --cms-pc-sb-text: var(--color-dark-text);
    --cms-pc-sb-muted: var(--color-dark-text-muted);
}

.cms-pc-sb--style-editorial {
    --cms-pc-sb-font-size: 17px;
}

.cms-pc-sb__grid { display:grid; grid-template-columns:1fr 340px; gap:clamp(32px, 4vw, 64px); max-width:var(--container, 1200px); margin:0 auto; padding:0 20px; align-items:start; }

.cms-pc-sb__content { min-width:0; }

.cms-pc-sb .post-sidebar-slot { position:sticky; top:100px; min-width:0; }

.cms-pc-sb__content :is(h2,h3,h4) { color:var(--cms-pc-sb-text); font-family:var(--font-heading); font-weight:600; line-height:1.3; }

.cms-pc-sb__content h2 { margin:48px 0 16px; font-size:clamp(22px, 3vw, 28px); }

.cms-pc-sb__content h2:first-child { margin-top:0; }

.cms-pc-sb__content h3 { margin:36px 0 12px; font-size:clamp(18px, 2.5vw, 22px); }

.cms-pc-sb__content h4 { margin:28px 0 8px; font-size:17px; }

.cms-pc-sb__content p { margin:0 0 20px; color:var(--cms-pc-sb-muted); font-family:var(--font-body); font-size:var(--cms-pc-sb-font-size); line-height:var(--cms-pc-sb-line-height); }

.cms-pc-sb__content p:last-child { margin-bottom:0; }

.cms-pc-sb__content a { color:var(--color-accent); text-decoration:underline; text-underline-offset:3px; transition:color 0.2s; }

.cms-pc-sb__content a:hover { color:var(--color-accent-hover, var(--color-accent)); }

.cms-pc-sb__content blockquote { margin:32px 0; padding:4px 0 4px 24px; border-left:3px solid var(--color-accent); color:var(--cms-pc-sb-text); font-size:18px; font-style:italic; line-height:1.7; }

.cms-pc-sb__content blockquote p { margin-bottom:0; color:inherit; font-size:inherit; }

.cms-pc-sb__content :is(ul,ol) { margin:0 0 20px; padding-left:24px; }

.cms-pc-sb__content li { margin-bottom:6px; color:var(--cms-pc-sb-muted); font-family:var(--font-body); font-size:var(--cms-pc-sb-font-size); line-height:var(--cms-pc-sb-line-height); }

.cms-pc-sb__content img { display:block; width:100%; height:auto; margin:32px 0; border-radius:var(--radius, 8px); }

.cms-pc-sb__content table { width:100%; margin:32px 0; border-collapse:collapse; font-family:var(--font-body); font-size:15px; }

.cms-pc-sb__content th { padding:12px 16px; background:var(--color-accent); color:#fff; text-align:left; font-weight:600; }

.cms-pc-sb__content td { padding:10px 16px; color:var(--cms-pc-sb-muted); border-bottom:1px solid var(--color-border, rgba(0,0,0,0.08)); }

.cms-pc-sb__content tr:last-child td { border-bottom:none; }

.cms-pc-sb__content hr { border:none; height:1px; margin:40px 0; background:var(--color-border, rgba(0,0,0,0.08)); }

.cms-pc-sb--firstletter .cms-pc-sb__content > p:first-of-type::first-letter { float:left; margin:6px 8px 0 0; color:var(--color-accent); font-family:var(--font-heading); font-size:3.5em; font-weight:700; line-height:0.8; }

.cms-pc-sb--code .cms-pc-sb__content pre { margin:24px 0; padding:20px 24px; overflow-x:auto; border-radius:var(--radius,8px); background:var(--color-bg-alt,#f5f5f5); font-size:14px; line-height:1.6; }

.cms-pc-sb--code .cms-pc-sb__content code { font-family:'JetBrains Mono','Fira Code',monospace; font-size:0.9em; }

.cms-pc-sb--code .cms-pc-sb__content :is(p code, li code) { padding:2px 6px; border-radius:4px; background:var(--color-bg-alt,#f5f5f5); }

.cms-pc-sb--code .cms-pc-sb__content :is(.info-box,.warning-box) { margin:24px 0; padding:16px 20px; border-radius:var(--radius,8px); font-size:15px; line-height:1.6; }

.cms-pc-sb--code .cms-pc-sb__content .info-box { border-left:4px solid var(--color-accent); background:var(--color-bg-alt,#f5f5f5); }

.cms-pc-sb--code .cms-pc-sb__content .warning-box { border-left:4px solid #e67e22; background:rgba(230,126,34,0.06); }

.cms-pc-nar {
    --cms-pc-nar-text: var(--color-text);
    --cms-pc-nar-muted: var(--color-text-muted);
}

.cms-pc-nar--dark {
    --cms-pc-nar-text: var(--color-dark-text);
    --cms-pc-nar-muted: var(--color-dark-text-muted);
}

.cms-pc-nar__content { max-width:600px; margin:0 auto; padding:0 20px; }

.cms-pc-nar__content :is(h2,h3,h4) { color:var(--cms-pc-nar-text); font-family:var(--font-heading); font-weight:600; }

.cms-pc-nar__content h2 { margin:56px 0 20px; font-size:clamp(24px,3vw,32px); line-height:1.25; letter-spacing:-0.02em; }

.cms-pc-nar__content h2:first-child { margin-top:0; }

.cms-pc-nar__content h3 { margin:44px 0 16px; font-size:clamp(20px,2.5vw,24px); line-height:1.3; letter-spacing:-0.01em; }

.cms-pc-nar__content h4 { margin:36px 0 12px; font-size:19px; }

.cms-pc-nar__content p { margin:0 0 28px; color:var(--cms-pc-nar-muted); font-family:var(--font-body); font-size:18px; line-height:2em; }

.cms-pc-nar__content p:last-child { margin-bottom:0; }

.cms-pc-nar__content a { color:var(--color-accent); text-decoration:underline; text-underline-offset:3px; text-decoration-thickness:1px; transition:color 0.2s; }

.cms-pc-nar__content a:hover { color:var(--color-accent-hover, var(--color-accent)); }

.cms-pc-nar__content blockquote { margin:40px 0; padding:8px 0 8px 28px; border-left:3px solid var(--color-accent); color:var(--cms-pc-nar-text); font-size:20px; font-style:italic; line-height:1.7; letter-spacing:-0.01em; }

.cms-pc-nar__content blockquote p { margin-bottom:0; color:inherit; font-size:inherit; line-height:inherit; }

.cms-pc-nar__content :is(ul,ol) { margin:0 0 28px; padding-left:24px; }

.cms-pc-nar__content li { margin-bottom:8px; color:var(--cms-pc-nar-muted); font-family:var(--font-body); font-size:18px; line-height:2em; }

.cms-pc-nar__content img { display:block; width:100%; height:auto; margin:40px 0; border-radius:var(--radius,8px); }

.cms-pc-nar__content table { width:100%; margin:36px 0; border-collapse:collapse; font-family:var(--font-body); font-size:16px; }

.cms-pc-nar__content th { padding:12px 16px; background:var(--color-accent); color:#fff; text-align:left; font-weight:600; }

.cms-pc-nar__content td { padding:10px 16px; color:var(--cms-pc-nar-muted); border-bottom:1px solid var(--color-border, rgba(0,0,0,0.08)); }

.cms-pc-nar__content tr:last-child td { border-bottom:none; }

.cms-pc-nar__content hr { max-width:120px; height:1px; margin:48px auto; border:none; background:var(--color-border, rgba(0,0,0,0.08)); }

.cms-pc-nar__content pre { margin:28px 0; padding:20px 24px; overflow-x:auto; border-radius:var(--radius,8px); background:var(--color-bg-alt,#f5f5f5); font-size:15px; line-height:1.6; }

.cms-pc-nar__content code { font-family:'JetBrains Mono','Fira Code',monospace; font-size:0.88em; }

.cms-pc-nar__content :is(p code, li code) { padding:2px 6px; border-radius:4px; background:var(--color-bg-alt,#f5f5f5); }

@media (max-width: 968px) {
    .cms-pc-sb__grid { grid-template-columns: 1fr; }
    .cms-pc-sb .post-sidebar-slot { display: none; }
    .cms-pc-sb__content h2 { margin-top: 36px; }
    .cms-pc-sb__content blockquote { margin: 24px 0; font-size: 16px; }
}

@media (max-width: 768px) {
    .cms-pc-std__content { padding: 0 10px; }
    .cms-pc-std--overlap .cms-pc-std__content { margin-top: -24px; padding: 24px 18px; }
    .cms-pc-std--breakout .cms-pc-std__content > img,
    .cms-pc-std--breakout .cms-pc-std__content > p > img:only-child,
    .cms-pc-std--breakout .cms-pc-std__content > figure > img,
    .cms-pc-std--breakout .cms-pc-std__content > .wp-block-image img,
    .cms-pc-std--breakout .cms-pc-std__content > .medias-wrapper > img,
    .cms-pc-std--breakout .cms-pc-std__content > .cms-content-figure img { width: 100%; max-width: 100%; margin-left: 0; margin-right: 0; }
    .cms-pc-std__content .pc-table-shell { margin-left: -12px; margin-right: -12px; border-radius: var(--radius, 8px); }
    .cms-pc-std__content .pc-table-expand { display: none !important; }
    .cms-pc-std__content h2 { margin-top: 36px; }
    .cms-pc-std__content blockquote { margin: 24px 0; font-size: 16px; }
    .cms-pc-std__content .pc-table-scroll :is(th,td) { min-width: 116px; padding: 10px 12px; font-size: 13px; }
    .cms-pc-std__content .pc-table-shell[data-density="balanced"] .pc-table-scroll :is(th,td) { min-width: 102px; }
    .cms-pc-std__content .pc-table-shell[data-density="compact"] .pc-table-scroll :is(th,td) { min-width: 90px; }
    .cms-pc-std__content .pc-table-shell[data-sticky-first="1"] .pc-table-scroll :is(th:first-child, td:first-child) { min-width: 124px; }
    .cms-pc-nar__content p { margin-bottom: 24px; font-size: 17px; line-height: 1.85em; }
    .cms-pc-nar__content h2 { margin-top: 40px; }
    .cms-pc-nar__content blockquote { margin: 28px 0; font-size: 18px; }
    .cms-pc-nar__content li { font-size: 17px; line-height: 1.85em; }
}

/* Post Author */
.cms-pa-in { --cms-pa-in-text: var(--color-text); --cms-pa-in-muted: var(--color-text-muted); }

.cms-pa-in--dark { --cms-pa-in-text: var(--color-dark-text); --cms-pa-in-muted: var(--color-dark-text-muted); }

.cms-pa-in__row { display:flex; align-items:center; gap:10px; max-width:var(--container,1200px); margin:0 auto; color:var(--cms-pa-in-muted); font-family:var(--font-body); font-size:14px; line-height:1; }

.cms-pa-in__avatar { width:36px; height:36px; border-radius:50%; object-fit:cover; flex-shrink:0; }

.cms-pa-in__name { color:var(--cms-pa-in-text); font-weight:700; }

.cms-pa-in__sep { color:var(--cms-pa-in-muted); user-select:none; }

.cms-table-modal{position:fixed;inset:0;z-index:10040;display:flex;align-items:center;justify-content:center;padding:24px;background:rgba(15,23,42,.44);backdrop-filter:blur(4px)}

.cms-table-modal[hidden]{display:none !important}

.cms-table-modal__dialog{display:flex;flex-direction:column;width:min(1600px,calc(100vw - 20px));max-height:min(92vh,1100px);overflow:hidden;border-radius:20px;background:var(--color-bg);box-shadow:0 24px 60px rgba(15,23,42,.22)}

.cms-table-modal__topbar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 18px;border-bottom:1px solid var(--color-border);background:color-mix(in srgb,var(--color-bg) 92%,var(--color-bg-alt) 8%)}

.cms-table-modal__title{font:600 14px/1.4 var(--font-body);color:var(--color-text)}

.cms-table-modal__close{width:40px;height:40px;border:none;border-radius:999px;background:var(--color-bg);color:var(--color-text);cursor:pointer;box-shadow:0 6px 16px rgba(15,23,42,.08)}

.cms-table-modal__body{padding:18px;overflow:auto;background:var(--color-bg)}

.cms-table-modal__body .cms-content-table__shell{border-radius:16px;box-shadow:none}

.cms-table-modal__body .cms-content-table__expand-btn{display:none !important}

.cms-table-modal__body .cms-content-table__table{width:100%;min-width:max-content}

.cms-table-modal__body .cms-content-table__table th,.cms-table-modal__body .cms-content-table__table td{min-width:var(--cms-content-table-modal-cell-min)}

/* COMPARATIVE_SERP_LAYOUT_FIX_20260527: wide SERP comparators + aligned matrix rows. */
@media (min-width: 1080px) {
  .ws-layout .cms-pc-std__content > :is(.cms-content-rankcmp, .cms-content-matrix),
  .ws-layout .cms-pc-std__content > .writer-component-card:has(> :is(.cms-content-rankcmp, .cms-content-matrix)) {
    --cms-comparison-breakout: clamp(352px, 30vw, 400px);
    position: relative !important;
    z-index: 5 !important;
    width: min(calc(100vw - 48px), calc(100% + var(--cms-comparison-breakout))) !important;
    max-width: min(calc(100vw - 48px), calc(100% + var(--cms-comparison-breakout))) !important;
    margin-right: calc(var(--cms-comparison-breakout) * -1) !important;
  }
}

.page-post--full-width .fw-post-section .cms-section__inner {
  max-width: none !important;
  padding-right: clamp(16px, 4vw, 56px) !important;
  padding-left: clamp(16px, 4vw, 56px) !important;
}

.fw-post-layout {
  width: min(100%, 1280px);
  margin: 0 auto;
}

.fw-post-toc {
  margin: 0 0 clamp(28px, 4vw, 52px);
  padding: clamp(14px, 2vw, 22px);
  border: 1px solid color-mix(in srgb, var(--color-accent, #0fbd74) 16%, var(--color-border, #dbe7e1));
  border-radius: var(--radius-lg, 22px);
  background:
    radial-gradient(circle at top right, color-mix(in srgb, var(--color-accent, #0fbd74) 9%, transparent), transparent 38%),
    var(--color-bg-alt, #f4fbf7);
}

.fw-post-toc__toggle {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  width: 100%;
  padding: 0;
  border: 0;
  background: transparent;
  color: inherit;
  text-align: left;
  cursor: pointer;
}

.fw-post-toc__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
}

.fw-post-toc__head .ws-label {
  margin-bottom: 0;
}

.fw-post-toc__title {
  display: block;
  margin: 0;
  color: var(--color-text, #10231f);
  font: 900 clamp(24px, 3vw, 38px)/1.05 var(--font-heading, sans-serif);
  letter-spacing: -.035em;
}

.fw-post-toc__icon {
  display: inline-grid;
  place-items: center;
  flex: 0 0 auto;
  width: 32px;
  height: 32px;
  border-radius: 999px;
  background: var(--color-accent, #0fbd74);
  color: #fff;
  font: 900 17px/1 var(--font-body, sans-serif);
  box-shadow: 0 6px 14px color-mix(in srgb, var(--color-accent, #0fbd74) 18%, transparent);
}

.fw-post-toc__nav {
  margin-top: 18px;
}

.fw-post-toc__nav[hidden] {
  display: none !important;
}

.fw-post-toc__list {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
  counter-reset: none !important;
}

.fw-post-toc__group,
.cms-pc-std__content .fw-post-toc__group {
  margin: 0 !important;
  padding: 12px 14px !important;
  border: 1px solid color-mix(in srgb, var(--color-border, #dbe7e1) 86%, transparent) !important;
  border-radius: 18px !important;
  background: var(--color-bg, #fff) !important;
  list-style: none !important;
}

.fw-post-toc__group::before {
  content: none !important;
}

.fw-post-toc a {
  display: inline-flex;
  color: var(--color-text, #10231f);
  font: 850 14px/1.35 var(--font-body, sans-serif);
  text-decoration: none;
}

.fw-post-toc a:hover {
  color: var(--color-accent, #0fbd74);
}

.fw-post-toc__group > ol {
  display: grid;
  gap: 8px;
  margin: 12px 0 0 !important;
  padding: 0 !important;
  list-style: none !important;
}

.fw-post-toc__group > ol > li {
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  list-style: none !important;
}

.fw-post-toc__group > ol > li::before {
  content: none !important;
}

.fw-post-toc__group > ol a {
  color: var(--color-text-muted, #5d6f67);
  font-size: 12.75px;
  font-weight: 750;
}

.page-post--full-width .cms-pc-std__content {
  max-width: 100% !important;
  padding-right: clamp(10px, 3vw, 42px) !important;
  padding-left: clamp(10px, 3vw, 42px) !important;
}

@media (min-width: 769px) {
  .page-post--with-sidebar .ws-content .cms-pc-std__content {
    max-width: none !important;
    padding: 0 20px 0 0 !important;
  }
}

.page-post--full-width .fw-post-content {
  width: 100%;
}

.page-post--full-width .fw-post-author {
  max-width: 920px;
  margin: clamp(34px, 5vw, 64px) auto 0;
}

@media (max-width: 980px) {
  .fw-post-toc__list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 640px) {
  .fw-post-toc__head {
    display: block;
  }

  .fw-post-toc__head .ws-label {
    margin-bottom: 10px;
  }

  .fw-post-toc__list {
    grid-template-columns: 1fr;
  }
}

/* CONTENT_SURFACES_20260604 */
html {
  scroll-behavior: smooth;
}

.cms-surface-section .fw-post-layout {
  width: min(1180px, calc(100vw - 32px));
  margin: 0 auto;
}

.cms-surface-content {
  width: 100%;
}

.cms-surface-body {
  width: 100%;
}

.cms-surface-section {
  scroll-behavior: smooth;
}

.cms-surface-body [id] {
  scroll-margin-top: 112px;
}

.cms-surface-nav {
  width: 100%;
  margin: 0 0 clamp(22px, 3vw, 36px);
  padding: 8px 10px;
  border: 1px solid color-mix(in srgb, var(--color-border, #dbe7e1) 72%, transparent);
  border-radius: 12px;
  background: color-mix(in srgb, var(--color-bg, #fff) 92%, var(--color-accent, #0fbd74) 8%);
  box-shadow: 0 10px 24px color-mix(in srgb, var(--color-text, #0f172a) 7%, transparent);
}

.cms-surface-nav__label {
  display: block;
  margin: 0 0 7px;
  padding: 0 2px;
  color: var(--color-text, #0f172a);
  font: 800 0.78rem/1.2 var(--font-body, sans-serif);
  letter-spacing: 0;
}

.cms-surface-nav__track {
  display: flex;
  gap: 7px;
  overflow-x: auto;
  padding: 0;
  scrollbar-width: none;
}

.cms-surface-nav__track::-webkit-scrollbar {
  display: none;
}

.cms-surface-nav__link {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  min-height: 30px;
  padding: 6px 10px;
  border: 1px solid color-mix(in srgb, var(--color-border, #dbe7e1) 70%, transparent);
  border-radius: 8px;
  background: var(--color-bg, #fff);
  color: var(--color-text, #0f172a);
  font: 740 0.8rem/1.15 var(--font-body, sans-serif);
  text-decoration: none !important;
  white-space: nowrap;
  box-shadow: 0 1px 0 color-mix(in srgb, var(--color-text, #0f172a) 4%, transparent);
  transition: color 0.16s ease, background 0.16s ease, border-color 0.16s ease;
}

.cms-surface-nav__link:hover,
.cms-surface-nav__link:focus-visible,
.cms-surface-nav__link.is-active {
  border-color: color-mix(in srgb, var(--color-accent, #0fbd74) 42%, transparent);
  background: color-mix(in srgb, var(--color-bg, #fff) 88%, var(--color-accent, #0fbd74) 12%);
  color: var(--color-accent, #0fbd74);
  outline: none;
}

.cms-surface-hub-section {
  position: relative;
}

.cms-surface-hub {
  width: 100%;
}

@media (max-width: 768px) {
  .cms-surface-section .fw-post-layout {
    width: min(100%, calc(100vw - 24px));
  }

  .cms-surface-nav {
    margin-bottom: 16px;
  }

  .cms-surface-nav {
    padding: 7px;
    border-radius: 11px;
  }

  .cms-surface-nav__label {
    margin-bottom: 6px;
    font-size: 0.76rem;
  }

  .cms-surface-nav__track {
    gap: 5px;
  }

  .cms-surface-nav__link {
    min-height: 30px;
    padding: 6px 9px;
    font-size: 0.77rem;
  }
}

/* ARTICLE_IMAGE_PORTRAIT_20260604: portrait editorial images should not be
   cropped or stretched full-width on desktop. Component/card/logo images are
   intentionally excluded. */
@media (min-width: 769px) {
  .cms-pc-std__content > .cms-content-figure--portrait,
  .cms-pc-sb__content > .cms-content-figure--portrait,
  .post-content > .cms-content-figure--portrait,
  .article-content > .cms-content-figure--portrait,
  .prose > .cms-content-figure--portrait {
    width: 50%;
    max-width: 560px;
    margin-right: auto;
    margin-left: auto;
  }

  .cms-content-figure--portrait .cms-img-deco,
  .cms-content-figure--portrait .cms-img-deco__inner {
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
    aspect-ratio: auto !important;
  }

  .cms-content-figure--portrait .cms-img-deco__img,
  .cms-pc-std__content .cms-content-figure--portrait .cms-img-deco__img,
  .post-content .cms-content-figure--portrait .cms-img-deco__img,
  .article-content .cms-content-figure--portrait .cms-img-deco__img,
  .prose .cms-content-figure--portrait .cms-img-deco__img {
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
    object-fit: contain !important;
  }
}

/* ARTICLE_IMAGE_INFOGRAPHIC_FIT_20260612: infographics must keep their full
   visual visible. Do not crop them into the decorative image aspect ratio. */
.cms-content-figure--infographic .cms-img-deco,
.cms-content-figure--infographic .cms-img-deco__inner {
  width: 100% !important;
  max-width: 100% !important;
  height: auto !important;
  min-height: 0 !important;
  aspect-ratio: auto !important;
}

.cms-content-figure--infographic .cms-img-deco__img,
.cms-pc-std__content .cms-content-figure--infographic .cms-img-deco__img,
.cms-pc-sb__content .cms-content-figure--infographic .cms-img-deco__img,
.post-content .cms-content-figure--infographic .cms-img-deco__img,
.article-content .cms-content-figure--infographic .cms-img-deco__img,
.prose .cms-content-figure--infographic .cms-img-deco__img {
  display: block !important;
  width: 100% !important;
  max-width: 100% !important;
  height: auto !important;
  min-height: 0 !important;
  object-fit: contain !important;
}

/* WP_IMPORTED_TABLE_MOBILE_SAFE_20260530
   Mobile fix for imported WordPress tables wrapped in figure.wp-block-table.
   Keep append-only: preserves existing site-specific table styling and only
   prevents mobile column crushing on post pages. */
@media (max-width: 680px) {
  :is(.cms-pc-std__content, .cms-pc-sb__content, .article-content, .post-content) {
    padding-left: min(12px, 3.5vw);
    padding-right: min(12px, 3.5vw);
  }
  .cms-pc-std--overlap .cms-pc-std__content {
    padding: 12px 12px 24px;
  }
  :is(.cms-pc-std__content, .cms-pc-sb__content, .article-content, .post-content) figure.wp-block-table {
    width: calc(100% + 16px);
    max-width: calc(100% + 16px);
    margin: 22px -8px;
    padding: 0;
    overflow: visible;
  }
  :is(.cms-pc-std__content, .cms-pc-sb__content, .article-content, .post-content) figure.wp-block-table :is(.pc-table-shell, .tb-shell) {
    width: 100%;
    max-width: 100%;
    margin: 0;
  }
  :is(.cms-pc-std__content, .cms-pc-sb__content, .article-content, .post-content) figure.wp-block-table :is(.pc-table-scroll, .tb-wrap) {
    overflow-x: auto;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
  }
  :is(.cms-pc-std__content, .cms-pc-sb__content, .article-content, .post-content) figure.wp-block-table :is(.pc-table-scroll, .tb-wrap) table {
    width: max-content !important;
    min-width: 640px !important;
    max-width: none !important;
    table-layout: auto !important;
  }
  :is(.cms-pc-std__content, .cms-pc-sb__content, .article-content, .post-content) figure.wp-block-table :is(.pc-table-scroll, .tb-wrap) :is(th, td) {
    min-width: 180px !important;
    white-space: normal !important;
  }
}

.fw-post-toc__head .ws-label {
  margin-bottom: 0;
}

.fw-post-toc__title {
  display: block;
  margin: 0;
  color: var(--color-text, #10231f);
  font: 900 clamp(24px, 3vw, 38px)/1.05 var(--font-heading, sans-serif);
  letter-spacing: -.035em;
}

.fw-post-toc__icon {
  display: inline-grid;
  place-items: center;
  flex: 0 0 auto;
  width: 32px;
  height: 32px;
  border-radius: 999px;
  background: var(--color-accent, #0fbd74);
  color: #fff;
  font: 900 17px/1 var(--font-body, sans-serif);
  box-shadow: 0 6px 14px color-mix(in srgb, var(--color-accent, #0fbd74) 18%, transparent);
}

.fw-post-toc__nav {
  margin-top: 18px;
}

.fw-post-toc__nav[hidden] {
  display: none !important;
}

.fw-post-toc__list {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
  counter-reset: none !important;
}

.fw-post-toc__group,
.cms-pc-std__content .fw-post-toc__group {
  margin: 0 !important;
  padding: 12px 14px !important;
  border: 1px solid color-mix(in srgb, var(--color-border, #dbe7e1) 86%, transparent) !important;
  border-radius: 18px !important;
  background: var(--color-bg, #fff) !important;
  list-style: none !important;
}

.fw-post-toc__group::before {
  content: none !important;
}

.fw-post-toc a {
  display: inline-flex;
  color: var(--color-text, #10231f);
  font: 850 14px/1.35 var(--font-body, sans-serif);
  text-decoration: none;
}

.fw-post-toc a:hover {
  color: var(--color-accent, #0fbd74);
}

.fw-post-toc__group > ol {
  display: grid;
  gap: 8px;
  margin: 12px 0 0 !important;
  padding: 0 !important;
  list-style: none !important;
}

.fw-post-toc__group > ol > li {
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  list-style: none !important;
}

.fw-post-toc__group > ol > li::before {
  content: none !important;
}

.fw-post-toc__group > ol a {
  color: var(--color-text-muted, #5d6f67);
  font-size: 12.75px;
  font-weight: 750;
}

.page-post--full-width .cms-pc-std__content {
  max-width: 100% !important;
  padding-right: clamp(10px, 3vw, 42px) !important;
  padding-left: clamp(10px, 3vw, 42px) !important;
}

.page-post--full-width .fw-post-content {
  width: 100%;
}

.page-post--full-width .fw-post-author {
  max-width: 920px;
  margin: clamp(34px, 5vw, 64px) auto 0;
}

@media (max-width: 980px) {
  .fw-post-toc__list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 640px) {
  .fw-post-toc__head {
    display: block;
  }

  .fw-post-toc__head .ws-label {
    margin-bottom: 10px;
  }

  .fw-post-toc__list {
    grid-template-columns: 1fr;
  }
}
/* CONTENT_SURFACE_OVERFLOW_GUARDS_20260610 */
.cms-surface-nav,
.cms-surface-nav__track,
.cms-related-carousel,
.cms-related-carousel__viewport,
.cms-related-carousel__rail {
  box-sizing: border-box;
  max-width: 100%;
  min-width: 0;
}

.cms-surface-nav__track,
.cms-related-carousel__rail {
  overscroll-behavior-inline: contain;
}

/* ARTICLE_IMAGE_INFOGRAPHIC_FIT_20260612: infographics must keep their full
   visual visible. Do not crop them into the decorative image aspect ratio. */
.cms-content-figure--infographic .cms-img-deco,
.cms-content-figure--infographic .cms-img-deco__inner {
  width: 100% !important;
  max-width: 100% !important;
  height: auto !important;
  min-height: 0 !important;
  aspect-ratio: auto !important;
}

.cms-content-figure--infographic .cms-img-deco__img,
.cms-pc-std__content .cms-content-figure--infographic .cms-img-deco__img,
.cms-pc-sb__content .cms-content-figure--infographic .cms-img-deco__img,
.post-content .cms-content-figure--infographic .cms-img-deco__img,
.article-content .cms-content-figure--infographic .cms-img-deco__img,
.prose .cms-content-figure--infographic .cms-img-deco__img {
  display: block !important;
  width: 100% !important;
  max-width: 100% !important;
  height: auto !important;
  min-height: 0 !important;
  object-fit: contain !important;
}

/* ARTICLE_TABLE_SURFACE_V2_20260730
   Native tables use the existing shell / scroll split: the shell carries the
   card edge, while the inner element remains the horizontal scroll container.
   Do not put overflow:hidden on the shell: its expand control and the modal
   clone must remain functional. */
:is(.cms-pc-std__content, .cms-pc-sb__content, .article-content, .post-content, .prose, .cms-table-modal__body)
  :is(.pc-table-shell, .tb-shell) {
  --cms-article-table-radius: var(--radius-lg, 16px);
  --cms-article-table-border: color-mix(in srgb, var(--color-border, #e5e7eb) 88%, var(--color-accent, #0f766e) 12%);
  --cms-article-table-row: var(--color-bg, #fff);
  --cms-article-table-row-alt: color-mix(in srgb, var(--color-bg-alt, #f8fafc) 72%, var(--color-bg, #fff) 28%);
  position: relative;
  margin: 22px 0 !important;
  overflow: visible !important;
  border: 1px solid var(--cms-article-table-border) !important;
  border-radius: var(--cms-article-table-radius) !important;
  background: var(--cms-article-table-row) !important;
  box-shadow: 0 10px 26px rgba(15, 23, 42, .045) !important;
}

:is(.cms-pc-std__content, .cms-pc-sb__content, .article-content, .post-content, .prose, .cms-table-modal__body)
  :is(.pc-table-scroll, .tb-wrap) {
  overflow-x: auto !important;
  overflow-y: hidden !important;
  border-radius: calc(var(--cms-article-table-radius, var(--radius-lg, 16px)) - 1px) !important;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior-x: contain;
}

:is(.cms-pc-std__content, .cms-pc-sb__content, .article-content, .post-content, .prose, .cms-table-modal__body)
  :is(.pc-table-scroll, .tb-wrap) > table:not(.cms-content-table__table) {
  margin: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}

:is(.cms-pc-std__content, .cms-pc-sb__content, .article-content, .post-content, .prose, .cms-table-modal__body)
  :is(.pc-table-scroll, .tb-wrap) > table:not(.cms-content-table__table) :is(th, td) {
  border-inline: 0 !important;
  border-bottom: 1px solid color-mix(in srgb, var(--cms-article-table-border, var(--color-border, #e5e7eb)) 84%, transparent) !important;
}

:is(.cms-pc-std__content, .cms-pc-sb__content, .article-content, .post-content, .prose, .cms-table-modal__body)
  :is(.pc-table-scroll, .tb-wrap) > table:not(.cms-content-table__table) thead tr {
  background: color-mix(in srgb, var(--color-accent, #0f766e) 88%, #0f172a 12%) !important;
}

:is(.cms-pc-std__content, .cms-pc-sb__content, .article-content, .post-content, .prose, .cms-table-modal__body)
  :is(.pc-table-scroll, .tb-wrap) > table:not(.cms-content-table__table) th {
  background: transparent !important;
  border-bottom-color: color-mix(in srgb, #fff 26%, transparent) !important;
}

:is(.cms-pc-std__content, .cms-pc-sb__content, .article-content, .post-content, .prose, .cms-table-modal__body)
  :is(.pc-table-scroll, .tb-wrap) > table:not(.cms-content-table__table) tbody tr {
  --cms-article-table-current-row: var(--cms-article-table-row);
  background: var(--cms-article-table-current-row) !important;
}

:is(.cms-pc-std__content, .cms-pc-sb__content, .article-content, .post-content, .prose, .cms-table-modal__body)
  :is(.pc-table-scroll, .tb-wrap) > table:not(.cms-content-table__table) tbody tr:nth-child(even) {
  --cms-article-table-current-row: var(--cms-article-table-row-alt);
}

:is(.cms-pc-std__content, .cms-pc-sb__content, .article-content, .post-content, .prose, .cms-table-modal__body)
  :is(.pc-table-scroll, .tb-wrap) > table:not(.cms-content-table__table) tbody td {
  background: var(--cms-article-table-current-row) !important;
}

/* Keep a sticky label column without turning it into a third row colour. */
:is(.cms-pc-std__content, .cms-pc-sb__content, .article-content, .post-content, .prose, .cms-table-modal__body)
  :is(.pc-table-shell, .tb-shell) :is(.pc-table-scroll, .tb-wrap) > table:not(.cms-content-table__table) :is(th, td):first-child {
  box-shadow: none !important;
}

:is(.cms-pc-std__content, .cms-pc-sb__content, .article-content, .post-content, .prose, .cms-table-modal__body)
  :is(.pc-table-shell, .tb-shell) :is(.pc-table-scroll, .tb-wrap) > table:not(.cms-content-table__table) th:first-child {
  background: transparent !important;
}

:is(.cms-pc-std__content, .cms-pc-sb__content, .article-content, .post-content, .prose, .cms-table-modal__body)
  :is(.pc-table-shell, .tb-shell) :is(.pc-table-scroll, .tb-wrap) > table:not(.cms-content-table__table) td:first-child {
  background: var(--cms-article-table-current-row) !important;
}

@media (max-width: 768px) {
  :is(.cms-pc-std__content, .cms-pc-sb__content, .article-content, .post-content, .prose, .cms-table-modal__body)
    :is(.pc-table-shell, .tb-shell) {
    --cms-article-table-radius: 14px;
  }
}

/* ARTICLE_TABLE_SURFACE_V2_REFINEMENT_20260730
   A compact radius and one explicit sticky-column separator keep wide tables
   scannable without recreating a spreadsheet grid. */
:is(.cms-pc-std__content, .cms-pc-sb__content, .article-content, .post-content, .prose, .cms-table-modal__body)
  :is(.pc-table-shell, .tb-shell) {
  --cms-article-table-radius: 16px;
  --cms-article-table-head: color-mix(in srgb, var(--color-accent, #0f766e) 88%, #0f172a 12%);
}

:is(.cms-pc-std__content, .cms-pc-sb__content, .article-content, .post-content, .prose, .cms-table-modal__body)
  :is(.pc-table-scroll, .tb-wrap) {
  scrollbar-width: thin;
  scrollbar-color: color-mix(in srgb, var(--color-accent, #0f766e) 72%, #94a3b8 28%) color-mix(in srgb, var(--color-bg-alt, #f8fafc) 76%, transparent);
  scrollbar-gutter: stable;
}

:is(.cms-pc-std__content, .cms-pc-sb__content, .article-content, .post-content, .prose, .cms-table-modal__body)
  :is(.pc-table-scroll, .tb-wrap)::-webkit-scrollbar {
  height: 12px;
}

:is(.cms-pc-std__content, .cms-pc-sb__content, .article-content, .post-content, .prose, .cms-table-modal__body)
  :is(.pc-table-scroll, .tb-wrap)::-webkit-scrollbar-track {
  background: color-mix(in srgb, var(--color-bg-alt, #f8fafc) 76%, transparent);
  border-top: 1px solid color-mix(in srgb, var(--cms-article-table-border, var(--color-border, #e5e7eb)) 68%, transparent);
}

:is(.cms-pc-std__content, .cms-pc-sb__content, .article-content, .post-content, .prose, .cms-table-modal__body)
  :is(.pc-table-scroll, .tb-wrap)::-webkit-scrollbar-thumb {
  border: 3px solid transparent;
  border-radius: 999px;
  background: linear-gradient(90deg, color-mix(in srgb, var(--color-accent, #0f766e) 84%, #fff 16%), var(--color-accent, #0f766e));
  background-clip: padding-box;
}

:is(.cms-pc-std__content, .cms-pc-sb__content, .article-content, .post-content, .prose, .cms-table-modal__body)
  :is(.pc-table-scroll, .tb-wrap) > table:not(.cms-content-table__table) :is(th, td) {
  padding: 14px 16px !important;
}

:is(.cms-pc-std__content, .cms-pc-sb__content, .article-content, .post-content, .prose, .cms-table-modal__body)
  :is(.pc-table-scroll, .tb-wrap) > table:not(.cms-content-table__table) thead tr {
  background: var(--cms-article-table-head) !important;
}

/* The sticky header must be opaque and above the horizontally moving labels. */
:is(.cms-pc-std__content, .cms-pc-sb__content, .article-content, .post-content, .prose, .cms-table-modal__body)
  :is(.pc-table-shell, .tb-shell) :is(.pc-table-scroll, .tb-wrap) > table:not(.cms-content-table__table) th:first-child {
  position: sticky !important;
  top: 0 !important;
  left: 0 !important;
  z-index: 7 !important;
  background: var(--cms-article-table-head) !important;
}

/* Only the sticky first column retains a vertical separator. */
:is(.cms-pc-std__content, .cms-pc-sb__content, .article-content, .post-content, .prose, .cms-table-modal__body)
  :is(.pc-table-shell, .tb-shell) :is(.pc-table-scroll, .tb-wrap) > table:not(.cms-content-table__table) :is(th, td):first-child {
  border-inline-end: 1px solid color-mix(in srgb, var(--cms-article-table-border, var(--color-border, #e5e7eb)) 92%, transparent) !important;
}

@media (max-width: 768px) {
  :is(.cms-pc-std__content, .cms-pc-sb__content, .article-content, .post-content, .prose, .cms-table-modal__body)
    :is(.pc-table-shell, .tb-shell) {
    --cms-article-table-radius: 12px;
  }

  :is(.cms-pc-std__content, .cms-pc-sb__content, .article-content, .post-content, .prose, .cms-table-modal__body)
    :is(.pc-table-scroll, .tb-wrap) > table:not(.cms-content-table__table) :is(th, td) {
    padding: 12px 13px !important;
  }
}

/* ARTICLE_TABLE_SURFACE_V2_FULL_WIDTH_20260730
   A non-overflowing table must use its complete card width. Reserving a
   scrollbar gutter created a visible right-side gap on ordinary tables. */
:is(.cms-pc-std__content, .cms-pc-sb__content, .article-content, .post-content, .prose, .cms-table-modal__body)
  :is(.pc-table-shell, .tb-shell) > :is(.pc-table-scroll, .tb-wrap) {
  width: 100% !important;
  max-width: 100% !important;
  box-sizing: border-box;
  scrollbar-gutter: auto;
}
