.editorial-index,
.editorial-article {
    background: radial-gradient(circle at 8% 4%, rgba(47,155,102,.08), transparent 26%), #f7faf8;
    color: #14211c;
}

.editorial-index-hero,
.editorial-hero {
    color: #fff;
    background: linear-gradient(145deg, #06110e, #0c2d22 58%, #154d37);
}

.editorial-index-hero { padding: 92px 0 72px; }
.editorial-hero { padding: 44px 0 78px; }

.editorial-index-hero-grid,
.editorial-hero-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.2fr) minmax(320px, .8fr);
    align-items: center;
    gap: clamp(36px, 7vw, 88px);
}

.editorial-index-hero h1,
.editorial-heading h1 {
    max-width: 930px;
    margin: 20px 0;
    color: #fff;
    font-size: clamp(2.7rem, 6vw, 5rem);
    line-height: 1.03;
    letter-spacing: -.045em;
}

.editorial-index-hero p,
.editorial-deck {
    max-width: 790px;
    margin: 0;
    color: rgba(255,255,255,.75);
    font-size: 1.08rem;
    line-height: 1.85;
}

.editorial-index-count {
    display: grid;
    gap: 7px;
    padding: 25px;
    border: 1px solid rgba(255,255,255,.15);
    border-radius: 22px;
    background: rgba(255,255,255,.07);
    backdrop-filter: blur(14px);
}

.editorial-index-count span { color: #8ce0af; font-weight: 900; }
.editorial-index-count strong { font-size: 3.5rem; line-height: 1; }
.editorial-index-count p { margin: 0; font-size: .9rem; }

.editorial-featured-wrap { padding-bottom: 18px; }

.editorial-featured {
    display: grid;
    grid-template-columns: minmax(320px, .95fr) minmax(0, 1.05fr);
    min-height: 520px;
    overflow: hidden;
    border: 1px solid #dce5e1;
    border-radius: 28px;
    background: #fff;
    box-shadow: 0 24px 70px rgba(18,54,40,.1);
}

.editorial-featured-cover,
.editorial-card-cover {
    display: block;
    overflow: hidden;
    text-decoration: none;
    background: #0d2b21;
}

.editorial-featured-cover { min-height: 520px; }
.editorial-featured-cover img,
.editorial-card-cover img,
.editorial-cover img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
}

.editorial-featured-copy {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: flex-start;
    padding: clamp(34px, 6vw, 72px);
}

.editorial-featured-copy h2 {
    margin: 17px 0 18px;
    font-size: clamp(2rem, 4vw, 3.4rem);
    line-height: 1.08;
    letter-spacing: -.035em;
}

.editorial-featured-copy h2 a,
.editorial-card h3 a { color: inherit; text-decoration: none; }
.editorial-featured-copy p { margin: 0 0 28px; color: #61706a; line-height: 1.85; }
.editorial-library { padding-top: 52px; }

.editorial-card-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 22px;
}

.editorial-card {
    min-width: 0;
    overflow: hidden;
    border: 1px solid #dce5e1;
    border-radius: 22px;
    background: #fff;
    box-shadow: 0 14px 38px rgba(18,54,40,.07);
    transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease;
}

.editorial-card:hover {
    transform: translateY(-5px);
    border-color: #9ccdb2;
    box-shadow: 0 24px 55px rgba(18,54,40,.12);
}

.editorial-card-cover { aspect-ratio: 16 / 9; border-bottom: 1px solid #dce5e1; }

.editorial-cover-fallback {
    position: relative;
    height: 100%;
    min-height: 100%;
    display: grid;
    place-content: center;
    gap: 10px;
    overflow: hidden;
    padding: 28px;
    text-align: center;
    color: #fff;
    background: linear-gradient(145deg, #071611, #123d2d 62%, #2f9b66);
}

.editorial-cover-fallback::before,
.editorial-cover-fallback::after {
    content: "";
    position: absolute;
    border-radius: 999px;
    background: rgba(255,255,255,.08);
}

.editorial-cover-fallback::before { width: 220px; height: 220px; top: -115px; inset-inline-end: -70px; }
.editorial-cover-fallback::after { width: 150px; height: 150px; bottom: -75px; inset-inline-start: -45px; }
.editorial-cover-fallback span,
.editorial-cover-fallback strong,
.editorial-cover-fallback small { position: relative; z-index: 1; }
.editorial-cover-fallback span { color: #91e3b4; font-size: .8rem; font-weight: 900; letter-spacing: .14em; }
.editorial-cover-fallback strong { font-size: 3.4rem; letter-spacing: -.06em; }
.editorial-cover-fallback small { color: rgba(255,255,255,.72); font-weight: 800; }

.editorial-card-body {
    display: flex;
    min-height: 300px;
    flex-direction: column;
    padding: 24px;
}

.editorial-card-meta,
.editorial-labels {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.editorial-card-meta { color: #2b835a; font-size: .78rem; font-weight: 900; }
.editorial-card-meta span { padding: 6px 9px; border-radius: 999px; background: #eaf7ef; }
.editorial-card h3 { margin: 17px 0 12px; font-size: 1.35rem; line-height: 1.42; }
.editorial-card p { margin: 0; color: #65716c; line-height: 1.75; }
.editorial-read-link { display: inline-flex; gap: 8px; margin-top: auto; padding-top: 22px; color: #218457; font-weight: 900; text-decoration: none; }
.editorial-empty { grid-column: 1 / -1; padding: 50px; border: 1px dashed #b7c9c0; border-radius: 20px; background: #fff; text-align: center; }

.editorial-progress {
    position: fixed;
    top: 0;
    inset-inline: 0;
    z-index: 9999;
    height: 4px;
    pointer-events: none;
    background: rgba(255,255,255,.12);
}
.editorial-progress span { display: block; width: 0; height: 100%; background: #38b978; transition: width .08s linear; }

.editorial-breadcrumb {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 9px;
    margin-bottom: 42px;
    color: rgba(255,255,255,.62);
    font-size: .86rem;
}
.editorial-breadcrumb a { color: #8de3b1; text-decoration: none; }
.editorial-labels span { padding: 7px 11px; border: 1px solid rgba(141,227,177,.2); border-radius: 999px; background: rgba(141,227,177,.08); color: #93e4b5; font-size: .78rem; font-weight: 900; }

.editorial-meta { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 34px; }
.editorial-meta span { min-width: 118px; display: grid; gap: 4px; padding: 13px 15px; border: 1px solid rgba(255,255,255,.13); border-radius: 14px; background: rgba(255,255,255,.055); color: rgba(255,255,255,.63); font-size: .76rem; }
.editorial-meta strong { color: #fff; font-size: 1rem; }

.editorial-cover {
    aspect-ratio: 4 / 3;
    overflow: hidden;
    margin: 0;
    border: 1px solid rgba(255,255,255,.16);
    border-radius: 26px;
    box-shadow: 0 34px 80px rgba(0,0,0,.32);
}
.editorial-cover .editorial-cover-fallback strong { font-size: clamp(4.5rem, 9vw, 8rem); }

.editorial-body-section { padding-top: 72px; }
.editorial-layout { display: grid; grid-template-columns: 280px minmax(0, 820px); gap: clamp(30px, 6vw, 72px); justify-content: center; align-items: start; }
.editorial-sidebar { position: sticky; top: 96px; }
.editorial-toc { padding: 22px; border: 1px solid #dce5e1; border-radius: 19px; background: rgba(255,255,255,.96); box-shadow: 0 16px 40px rgba(18,54,40,.07); }
.editorial-toc > strong { display: block; margin: 9px 0 18px; font-size: 1.08rem; }
.editorial-toc nav { display: grid; gap: 6px; }
.editorial-toc nav a { display: grid; grid-template-columns: 30px minmax(0,1fr); gap: 9px; align-items: start; padding: 9px; border-radius: 10px; color: #46534d; font-size: .82rem; line-height: 1.45; text-decoration: none; }
.editorial-toc nav a:hover { color: #176f49; background: #edf8f1; }
.editorial-toc nav a span { width: 27px; height: 27px; display: grid; place-items: center; border-radius: 8px; background: #e7f4ec; color: #218457; font-size: .68rem; font-weight: 900; }
.editorial-copy-link { width: 100%; min-height: 43px; margin-top: 20px; border: 1px solid #bad8c8; border-radius: 10px; background: #fff; color: #216f4d; font: inherit; font-weight: 900; cursor: pointer; }
.editorial-toc > small { display: block; margin-top: 7px; color: #218457; }
.editorial-prose { min-width: 0; }

.editorial-section-card {
    scroll-margin-top: 110px;
    margin-bottom: 28px;
    padding: clamp(26px, 4vw, 46px);
    border: 1px solid #dce5e1;
    border-radius: 22px;
    background: #fff;
    box-shadow: 0 14px 40px rgba(18,54,40,.055);
}
.editorial-section-card.is-summary { border-color: #9fd1b6; background: linear-gradient(145deg, #f2fff7, #fff 68%); }
.editorial-section-card > header { display: grid; grid-template-columns: 48px minmax(0,1fr); gap: 16px; align-items: start; margin-bottom: 24px; }
.editorial-section-card > header > span { width: 48px; height: 48px; display: grid; place-items: center; border-radius: 13px; background: #e5f5ec; color: #218457; font-size: .78rem; font-weight: 900; }
.editorial-section-card h2 { margin: 2px 0 0; font-size: clamp(1.55rem, 3vw, 2.15rem); line-height: 1.25; letter-spacing: -.022em; }
.editorial-section-copy { display: grid; gap: 16px; }
.editorial-section-copy p,
.editorial-section-card > p { margin: 0; color: #34413b; font-size: 1.03rem; line-height: 2; }

.editorial-reference-list { display: grid; gap: 12px; }
.editorial-reference-list article { display: grid; grid-template-columns: 44px minmax(0,1fr); gap: 14px; padding: 16px; border: 1px solid #e0e8e4; border-radius: 14px; background: #f9fbfa; }
.editorial-reference-list article > span { width: 40px; height: 40px; display: grid; place-items: center; border-radius: 10px; background: #143d2d; color: #fff; font-size: .75rem; font-weight: 900; }
.editorial-reference-list article div { display: grid; gap: 7px; }
.editorial-reference-list a { color: #218457; font-weight: 900; text-decoration: none; }

.editorial-cta { display: flex; align-items: center; justify-content: space-between; gap: 24px; margin-top: 38px; padding: clamp(28px, 5vw, 48px); border-radius: 24px; background: linear-gradient(135deg, #071611, #174733); color: #fff; }
.editorial-cta h2 { margin: 10px 0; color: #fff; }
.editorial-cta p { max-width: 590px; margin: 0; color: rgba(255,255,255,.7); line-height: 1.75; }
.editorial-related { border-top: 1px solid #dce5e1; background: #f0f5f2; }

.article-cover-fields { grid-column: 1 / -1; display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 16px; padding: 20px; border: 1px solid #dce5e1; border-radius: 15px; background: #f8fbf9; }
.article-cover-fields .article-cover-preview { grid-column: 1 / -1; overflow: hidden; max-width: 520px; aspect-ratio: 16 / 9; border-radius: 13px; background: #0c2d22; }
.article-cover-fields .article-cover-preview img { width: 100%; height: 100%; object-fit: cover; }
.article-cover-fields .article-cover-help { grid-column: 1 / -1; margin: 0; color: #67736e; font-size: .84rem; }

@media (max-width: 1050px) {
    .editorial-index-hero-grid,
    .editorial-hero-grid,
    .editorial-featured { grid-template-columns: 1fr; }
    .editorial-featured-cover { min-height: 390px; }
    .editorial-card-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
    .editorial-cover { max-width: 720px; width: 100%; }
    .editorial-layout { grid-template-columns: 1fr; }
    .editorial-sidebar { position: static; }
    .editorial-toc nav { grid-template-columns: repeat(2, minmax(0,1fr)); }
}

@media (max-width: 680px) {
    .editorial-index-hero,
    .editorial-hero { padding-top: 58px; }
    .editorial-index-hero h1,
    .editorial-heading h1 { font-size: 2.55rem; }
    .editorial-card-grid { grid-template-columns: 1fr; }
    .editorial-featured { min-height: auto; }
    .editorial-featured-cover { min-height: 280px; }
    .editorial-featured-copy { padding: 28px; }
    .editorial-cover { aspect-ratio: 16 / 10; }
    .editorial-meta { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); }
    .editorial-toc nav { grid-template-columns: 1fr; }
    .editorial-section-card { padding: 22px; border-radius: 18px; }
    .editorial-section-card > header { grid-template-columns: 40px minmax(0,1fr); }
    .editorial-section-card > header > span { width: 40px; height: 40px; }
    .editorial-cta { align-items: stretch; flex-direction: column; }
    .article-cover-fields { grid-template-columns: 1fr; }
    .article-cover-fields .article-cover-preview,
    .article-cover-fields .article-cover-help { grid-column: auto; }
}

/* DSS ARTICLE MENU HERO REFINEMENT START */

/*
 * Focused refinement only:
 * - keeps the existing menu items, routes, and order
 * - improves desktop spacing and button proportions
 * - reduces the article opening headline
 * - keeps mobile navigation behavior untouched
 */

@media (min-width: 1101px) {
    .navbar {
        border-bottom: 1px solid rgba(255, 255, 255, .10);
        background: rgba(4, 20, 15, .92);
        box-shadow: 0 8px 28px rgba(0, 0, 0, .10);
        backdrop-filter: blur(16px);
        -webkit-backdrop-filter: blur(16px);
    }

    .navbar .container.nav-wrap {
        width: min(1440px, calc(100% - 42px));
        min-height: 72px;
        height: auto;
        padding-block: 8px;
        gap: 15px;
    }

    .navbar .logo {
        flex: 0 0 auto;
        margin-inline-end: 4px;
    }

    .navbar .logo img {
        width: 126px;
        max-width: 126px;
        max-height: 46px;
        object-fit: contain;
    }

    .navbar .nav-links {
        flex: 1 1 auto;
        justify-content: center;
        gap: clamp(11px, 1.05vw, 18px);
        margin: 0;
        font-size: .82rem;
    }

    .navbar .nav-links a {
        position: relative;
        padding: 11px 0;
        color: rgba(255, 255, 255, .84);
        font-weight: 750;
        line-height: 1;
        white-space: nowrap;
        transition:
            color .18s ease,
            opacity .18s ease;
    }

    .navbar .nav-links a::after {
        content: "";
        position: absolute;
        inset-inline: 0;
        bottom: 3px;
        height: 2px;
        border-radius: 999px;
        background: #43c985;
        transform: scaleX(0);
        transform-origin: center;
        transition: transform .18s ease;
    }

    .navbar .nav-links a:hover,
    .navbar .nav-links a.active,
    .navbar .nav-links a[aria-current="page"] {
        color: #ffffff;
    }

    .navbar .nav-links a:hover::after,
    .navbar .nav-links a.active::after,
    .navbar .nav-links a[aria-current="page"]::after {
        transform: scaleX(1);
    }

    .navbar .nav-actions {
        flex: 0 0 auto;
        display: flex;
        align-items: center;
        gap: 7px;
        margin-inline-start: 4px;
    }

    .navbar .nav-actions form {
        margin: 0;
    }

    .navbar .nav-actions .btn,
    .navbar .nav-actions button {
        min-height: 39px;
        padding: 9px 13px;
        border-radius: 9px;
        font-size: .76rem;
        line-height: 1.1;
        font-weight: 800;
        white-space: nowrap;
    }

    .navbar .nav-consultation-cta {
        padding-inline: 17px;
    }
}

/*
 * Professional article opening:
 * the previous 5rem maximum created too many title lines.
 */

.editorial-article .editorial-hero {
    padding: 112px 0 62px;
}

.editorial-article .editorial-breadcrumb {
    max-width: 980px;
    margin-bottom: 28px;
    font-size: .78rem;
    line-height: 1.5;
}

.editorial-article .editorial-hero-grid {
    grid-template-columns:
        minmax(0, 1.14fr)
        minmax(300px, .66fr);
    gap: clamp(34px, 5.2vw, 72px);
    align-items: center;
}

.editorial-article .editorial-heading {
    min-width: 0;
}

.editorial-article .editorial-heading h1 {
    max-width: 760px;
    margin: 19px 0 17px;
    font-size: clamp(2.45rem, 4vw, 3.85rem);
    line-height: 1.075;
    letter-spacing: -.034em;
    text-wrap: balance;
}

.editorial-article .editorial-deck {
    max-width: 720px;
    font-size: .98rem;
    line-height: 1.78;
}

.editorial-article .editorial-labels span {
    padding: 7px 11px;
    font-size: .74rem;
}

.editorial-article .editorial-meta {
    gap: 9px;
    margin-top: 27px;
}

.editorial-article .editorial-meta span {
    min-width: 104px;
    padding: 10px 12px;
    border-radius: 12px;
    font-size: .70rem;
}

.editorial-article .editorial-meta strong {
    font-size: .92rem;
}

.editorial-article .editorial-cover {
    width: 100%;
    max-width: 365px;
    justify-self: end;
    border-radius: 22px;
}

.editorial-article
.editorial-cover
.editorial-cover-fallback strong {
    font-size: clamp(3.8rem, 6.4vw, 6rem);
}

/* Keep the articles library opening consistent. */

.editorial-index .editorial-index-hero {
    padding: 128px 0 68px;
}

.editorial-index .editorial-index-hero h1 {
    max-width: 790px;
    font-size: clamp(2.45rem, 4.4vw, 4.15rem);
    line-height: 1.06;
}

/* Smaller desktop screens: reduce crowding without hiding links. */

@media (min-width: 1101px) and (max-width: 1320px) {
    .navbar .container.nav-wrap {
        width: min(1280px, calc(100% - 26px));
        gap: 10px;
    }

    .navbar .logo img {
        width: 108px;
        max-width: 108px;
    }

    .navbar .nav-links {
        gap: 10px;
        font-size: .74rem;
    }

    .navbar .nav-actions {
        gap: 5px;
    }

    .navbar .nav-actions .btn,
    .navbar .nav-actions button {
        padding-inline: 10px;
        font-size: .70rem;
    }

    .navbar .nav-consultation-cta {
        padding-inline: 13px;
    }

    .editorial-article .editorial-heading h1 {
        max-width: 700px;
        font-size: clamp(2.35rem, 3.85vw, 3.55rem);
    }

    .editorial-article .editorial-cover {
        max-width: 335px;
    }
}

@media (max-width: 1050px) {
    .editorial-article .editorial-hero {
        padding-top: 88px;
    }

    .editorial-article .editorial-heading h1 {
        max-width: 850px;
        font-size: clamp(2.35rem, 6vw, 3.7rem);
    }

    .editorial-article .editorial-cover {
        max-width: 620px;
        justify-self: start;
        aspect-ratio: 16 / 9;
    }
}

@media (max-width: 680px) {
    .editorial-article .editorial-hero {
        padding: 72px 0 46px;
    }

    .editorial-article .editorial-breadcrumb {
        margin-bottom: 22px;
        font-size: .72rem;
    }

    .editorial-article .editorial-heading h1 {
        margin-block: 16px;
        font-size: clamp(2.05rem, 10.2vw, 2.75rem);
        line-height: 1.1;
    }

    .editorial-article .editorial-deck {
        font-size: .93rem;
        line-height: 1.72;
    }

    .editorial-index .editorial-index-hero {
        padding: 84px 0 52px;
    }

    .editorial-index .editorial-index-hero h1 {
        font-size: clamp(2.1rem, 10vw, 2.9rem);
    }
}

/* DSS ARTICLE MENU HERO REFINEMENT END */

