/* ========================================================================== 
   Publication Schedules — modern full-width page
   ========================================================================== */
body.page-template-page-publications-schedule .publication-schedule-wrap,
body.page-template-page-publications-schedule .publication-schedule-primary,
body.page-template-page-publications-schedule #primary,
body.page-template-page-publications-schedule #main,
body.page-template-page-publications-schedule .publication-schedule-page {
    width: 100%;
    max-width: none;
    margin-left: 0;
    margin-right: 0;
    float: none;
}

body.page-template-page-publications-schedule .publication-schedule-wrap {
    padding-left: 0;
    padding-right: 0;
}

.publication-schedule-page,
.publication-schedule-page * {
    box-sizing: border-box;
}

.publication-schedule-page h1,
.publication-schedule-page h2,
.publication-schedule-page h3,
.publication-schedule-page h4,
.publication-schedule-page p,
.publication-schedule-page th,
.publication-schedule-page td,
.publication-schedule-page span,
.publication-schedule-page a {
    text-align: left;
    word-spacing: normal;
}

.schedule-hero,
.schedule-intro-grid,
.schedule-section,
.schedule-continuous,
.schedule-note {
    width: calc(100% - 48px);
    max-width: 1180px;
    margin-left: auto;
    margin-right: auto;
}

.schedule-hero {
    padding: 86px 0 44px;
    text-align: center;
}

.schedule-hero .schedule-eyebrow,
.schedule-kicker {
    display: inline-block;
    color: #2776b9;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .11em;
    line-height: 1.3;
    text-transform: uppercase;
}

.schedule-hero h1 {
    max-width: 1180px;
    margin: 18px auto 18px;
    color: #143f68;
    font-size: 50px;
    font-weight: 700;
    line-height: 1.08;
    letter-spacing: -.035em;
    text-align: center;
}

.schedule-hero p {
    max-width: 760px;
    margin: 0 auto;
    color: #5d7082;
    font-size: 18px;
    line-height: 1.65;
    text-align: center;
}

.publication-schedule-page .schedule-hero-actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    width: 100%;
    gap: 12px;
    margin-top: 30px;
}

.schedule-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-height: 46px;
    padding: 0 20px;
    border-radius: 7px;
    font-size: 14px;
    font-weight: 650;
    line-height: 1.2;
    text-decoration: none;
    transition: background .18s ease, border-color .18s ease, color .18s ease, transform .18s ease, box-shadow .18s ease;
}

.schedule-button-primary,
.schedule-button-primary:link,
.schedule-button-primary:visited {
    background: #123f6d;
    border: 1px solid #123f6d;
    color: #fff;
}

.schedule-button-secondary,
.schedule-button-secondary:link,
.schedule-button-secondary:visited {
    background: #fff;
    border: 1px solid #b9ccdc;
    color: #153f6b;
}

@media (hover:hover) and (pointer:fine) {
    .schedule-button-primary:hover {
        background: #185383;
        border-color: #185383;
        color: #fff;
        transform: translateY(-1px);
        box-shadow: 0 8px 18px rgba(18,63,109,.16);
    }
    .schedule-button-secondary:hover {
        background: #f4f8fb;
        border-color: #8faec5;
    }
}

.schedule-intro-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0;
    margin-top: 22px;
    margin-bottom: 80px;
    overflow: hidden;
    border: 1px solid #d7e2eb;
    border-radius: 12px;
    background: #fff;
    box-shadow: 0 16px 36px rgba(17,57,91,.05);
}

.schedule-intro-grid article {
    position: relative;
    padding: 28px 30px 30px;
    border-right: 1px solid #e1e9ef;
}

.schedule-intro-grid article:last-child {
    border-right: 0;
}

.schedule-intro-heading {
    display: flex;
    align-items: center;
    gap: 14px;
    margin-bottom: 14px;
}
.schedule-step {
    display: inline-flex;
    flex: 0 0 42px;
    align-items: center;
    justify-content: center;
    width: 42px;
    height: 42px;
    border-radius: 999px;
    background: #eef6fb;
    color: #2776b9;
    font-size: 15px;
    font-weight: 700;
    letter-spacing: .03em;
}

.schedule-intro-grid h2 {
    margin: 0;
    color: #153f6b;
    font-size: 20px;
    font-weight: 650;
    line-height: 1.3;
}

.schedule-intro-grid p {
    margin: 0;
    color: #607286;
    font-size: 16px;
    line-height: 1.6;
}

.schedule-section {
    margin-bottom: 92px;
}

.schedule-section-heading {
    max-width: 790px;
    margin: 0 auto 38px;
    text-align: center;
}

.schedule-section-heading .schedule-kicker {
    text-align: center;
}

.schedule-section-heading h2 {
    margin: 12px 0 12px;
    color: #153f6b;
    font-size: 38px;
    font-weight: 700;
    line-height: 1.15;
    letter-spacing: -.025em;
    text-align: center;
}

.schedule-section-heading p {
    margin: 0;
    color: #607286;
    font-size: 16px;
    line-height: 1.65;
    text-align: center;
}

.schedule-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 28px;
}

.schedule-card {
    --schedule-accent: #2776b9;
    --schedule-accent-rgb: 39,118,185;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-content: start;
    overflow: hidden;
    border: 0;
    border-top: 3px solid var(--schedule-accent);
    border-bottom: 1px solid #d8e3ec;
    border-radius: 0;
    background: #fff;
    box-shadow: none;
}

.schedule-card.schedule-cyan { --schedule-accent:#1e91b8; --schedule-accent-rgb:30,145,184; }
.schedule-card.schedule-green { --schedule-accent:#1e9b68; --schedule-accent-rgb:30,155,104; }
.schedule-card.schedule-orange { --schedule-accent:#d66a2a; --schedule-accent-rgb:214,106,42; }
.schedule-card.schedule-gold { --schedule-accent:#b88912; --schedule-accent-rgb:184,137,18; }
.schedule-card.schedule-red { --schedule-accent:#c64444; --schedule-accent-rgb:198,68,68; }

.schedule-card-header {
    grid-column: 1 / -1;
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 18px;
    min-height: 132px;
    padding: 21px 6px 19px;
    background: transparent;
    border-bottom: 1px solid rgba(var(--schedule-accent-rgb), .16);
}

.schedule-card-header > div {
    min-width: 0;
}

.schedule-card-label {
    display: block;
    margin-bottom: 8px;
    color: var(--schedule-accent);
    font-size: 10px;
    font-weight: 700;
    line-height: 1.2;
    letter-spacing: .09em;
    text-transform: uppercase;
}

.schedule-card h3 {
    margin: 0 0 7px;
    color: #153f6b;
    font-size: 20px;
    font-weight: 700;
    line-height: 1.3;
}

.schedule-card-header p {
    max-width: 360px;
    margin: 0;
    color: #66788a;
    font-size: 13px;
    line-height: 1.5;
}

.schedule-next-release {
    flex: 0 0 auto;
    display: inline-flex;
    flex-direction: column;
    gap: 3px;
    min-width: 102px;
    padding: 9px 11px;
    border: 1px solid rgba(var(--schedule-accent-rgb), .22);
    border-radius: 8px;
    background: #fff;
    color: #6a7987;
    font-size: 10px;
    font-weight: 600;
    line-height: 1.2;
    text-transform: uppercase;
    letter-spacing: .05em;
}

.schedule-next-release strong {
    color: var(--schedule-accent);
    font-size: 16px;
    line-height: 1.1;
    letter-spacing: 0;
    text-transform: none;
}

.schedule-year-block {
    min-width: 0;
    padding: 18px 6px 22px;
}

.schedule-year-block + .schedule-year-block {
    border-left: 1px solid #e2e9ef;
}

.schedule-year-block h4 {
    margin: 0 0 10px;
    color: #153f6b;
    font-size: 14px;
    font-weight: 700;
    line-height: 1.2;
}

.schedule-table-wrap {
    width: 100%;
    overflow: hidden;
    border: 0;
    border-top: 1px solid #e0e8ee;
    border-bottom: 1px solid #e0e8ee;
    border-radius: 0;
}

.schedule-table {
    width: 100%;
    margin: 0;
    border-collapse: collapse;
    table-layout: fixed;
    background: #fff;
}

.schedule-table th,
.schedule-table td {
    padding: 7px 8px;
    border: 0;
    border-bottom: 1px solid #edf1f4;
    color: #536779;
    font-size: 11.5px;
    line-height: 1.25;
    vertical-align: middle;
}

.schedule-table thead th {
    background: #f6f9fb;
    color: #718191;
    font-size: 9.5px;
    font-weight: 700;
    letter-spacing: .055em;
    text-transform: uppercase;
}

.schedule-table tbody th {
    color: #153f6b;
    font-weight: 650;
}

.schedule-table tbody tr:last-child th,
.schedule-table tbody tr:last-child td {
    border-bottom: 0;
}

.schedule-table tr.is-past th,
.schedule-table tr.is-past td {
    color: #9aa6b0;
}

.schedule-table tr.is-next th,
.schedule-table tr.is-next td {
    background: rgba(var(--schedule-accent-rgb), .085);
    color: #153f6b;
    font-weight: 650;
}

.schedule-table tr.is-next td:last-child {
    color: var(--schedule-accent);
}

.schedule-next-tag {
    display: inline-block;
    margin-left: 5px;
    padding: 2px 5px;
    border-radius: 999px;
    background: var(--schedule-accent);
    color: #fff;
    font-size: 8px;
    font-weight: 700;
    line-height: 1.2;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.schedule-continuous {
    display: grid;
    grid-template-columns: minmax(0, 1.25fr) minmax(0, .75fr);
    gap: 42px;
    align-items: center;
    margin-bottom: 92px;
    padding: 38px 42px;
    border-radius: 13px;
    background: #173f63;
    box-shadow: 0 18px 36px rgba(15,50,80,.12);
}

.schedule-continuous .schedule-kicker {
    color: #8ed9ff;
}

.schedule-continuous h2 {
    margin: 10px 0 10px;
    color: #fff;
    font-size: 32px;
    font-weight: 700;
    line-height: 1.2;
}

.schedule-continuous p {
    max-width: 690px;
    margin: 0;
    color: #e1ecf4;
    font-size: 15px;
    line-height: 1.65;
}

.schedule-frequency-grid {
    display: grid;
    gap: 10px;
}

.schedule-frequency-grid > div {
    padding: 17px 18px;
    border: 1px solid rgba(255,255,255,.16);
    border-radius: 9px;
    background: rgba(255,255,255,.07);
}

.schedule-frequency-grid strong,
.schedule-frequency-grid span {
    display: block;
}

.schedule-frequency-grid strong {
    color: #fff;
    font-size: 17px;
    font-weight: 700;
}

.schedule-frequency-grid span {
    margin-top: 4px;
    color: #c9dce9;
    font-size: 12px;
    line-height: 1.45;
}

.schedule-special-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0;
    border-bottom: 1px solid #dbe5ed;
}

.schedule-special-card {
    --special-accent:#2776b9;
    --special-rgb:39,118,185;
    min-width: 0;
    padding: 28px 28px 30px;
    border: 0;
    border-right: 1px solid #dbe5ed;
    border-top: 3px solid var(--special-accent);
    border-radius: 0;
    background: transparent;
}

.schedule-special-card:last-child { border-right: 0; }
.schedule-special-purple { --special-accent:#2874a6; --special-rgb:40,116,166; }
.schedule-special-teal { --special-accent:#1c8e83; --special-rgb:28,142,131; }

.schedule-special-label {
    display: block;
    margin-bottom: 9px;
    color: var(--special-accent);
    font-size: 10px;
    font-weight: 700;
    line-height: 1.25;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.schedule-special-card h3 {
    margin: 0 0 9px;
    color: #153f6b;
    font-size: 21px;
    font-weight: 700;
    line-height: 1.3;
}

.schedule-special-card > p {
    min-height: 68px;
    margin: 0 0 18px;
    color: #607286;
    font-size: 13.5px;
    line-height: 1.6;
}

.schedule-chip-year {
    margin-top: 16px;
    padding-top: 16px;
    border-top: 1px solid #e5ebf0;
}

.schedule-chip-year > strong {
    display: block;
    margin-bottom: 10px;
    color: #153f6b;
    font-size: 14px;
}

.schedule-chip-year > span {
    display: block;
    margin: 10px 0 6px;
    color: #6d7e8d;
    font-size: 10.5px;
    font-weight: 650;
    line-height: 1.35;
    text-transform: uppercase;
    letter-spacing: .04em;
}

.schedule-date-chips {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 6px;
}

.schedule-date-chips span {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 31px;
    padding: 5px 6px;
    border: 1px solid rgba(var(--special-rgb), .16);
    border-radius: 6px;
    background: rgba(var(--special-rgb), .045);
    color: #435b70;
    font-size: 10.5px;
    font-weight: 600;
    line-height: 1.2;
    text-align: center;
}

.schedule-date-chips-compact {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.schedule-note {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 35px;
    align-items: center;
    margin-bottom: 84px;
    padding: 33px 36px;
    border: 0;
    border-top: 1px solid #d8e3eb;
    border-bottom: 1px solid #d8e3eb;
    border-radius: 0;
    background: #f8fafc;
}

.schedule-note h2 {
    margin: 8px 0 7px;
    color: #153f6b;
    font-size: 25px;
    font-weight: 700;
    line-height: 1.25;
}

.schedule-note p {
    max-width: 720px;
    margin: 0;
    color: #607286;
    font-size: 14px;
    line-height: 1.6;
}

.schedule-note-actions {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 11px;
}

.schedule-text-link,
.schedule-text-link:link,
.schedule-text-link:visited {
    color: #2776b9;
    font-size: 13px;
    font-weight: 650;
    text-decoration: none;
}

.schedule-text-link:hover {
    text-decoration: underline;
    text-underline-offset: 3px;
}

@media (max-width: 1100px) {
    .schedule-grid {
        grid-template-columns: 1fr;
    }

    .schedule-card-header {
        min-height: 0;
    }

    .schedule-special-grid {
        grid-template-columns: 1fr 1fr;
    }

    .schedule-special-card:last-child {
        grid-column: 1 / -1;
    }
}

@media (max-width: 820px) {
    .schedule-hero,
    .schedule-intro-grid,
    .schedule-section,
    .schedule-continuous,
    .schedule-note {
        width: calc(100% - 32px);
    }

    .schedule-hero {
        padding-top: 58px;
    }

    .schedule-hero h1 {
        font-size: 39px;
    }

    .schedule-intro-grid {
        grid-template-columns: 1fr;
        margin-bottom: 62px;
    }

    .schedule-intro-grid article {
        border-right: 0;
        border-bottom: 1px solid #e1e9ef;
    }

    .schedule-intro-grid article:last-child {
        border-bottom: 0;
    }

    .schedule-section {
        margin-bottom: 70px;
    }

    .schedule-section-heading h2 {
        font-size: 32px;
    }

    .schedule-continuous {
        grid-template-columns: 1fr;
        gap: 24px;
        margin-bottom: 70px;
        padding: 31px 28px;
    }

    .schedule-special-grid {
        grid-template-columns: 1fr;
    }

    .schedule-special-card:last-child {
        grid-column: auto;
    }

    .schedule-special-card > p {
        min-height: 0;
    }

    .schedule-note {
        grid-template-columns: 1fr;
    }

    .schedule-note-actions {
        align-items: flex-start;
    }
}

@media (max-width: 620px) {
    .schedule-hero,
    .schedule-intro-grid,
    .schedule-section,
    .schedule-continuous,
    .schedule-note {
        width: calc(100% - 24px);
    }

    .schedule-hero {
        padding-top: 46px;
        padding-bottom: 30px;
    }

    .schedule-hero h1 {
        margin-top: 14px;
        font-size: 33px;
        line-height: 1.12;
    }

    .schedule-hero p {
        font-size: 16px;
        line-height: 1.55;
    }

    .schedule-hero-actions {
        flex-direction: column;
        align-items: stretch;
    }

    .schedule-button {
        width: 100%;
        min-height: 48px;
    }

    .schedule-intro-grid article {
        padding: 23px 22px 24px;
    }

    .schedule-card {
        grid-template-columns: 1fr;
    }

    .schedule-card-header {
        grid-column: auto;
        flex-direction: column;
        gap: 13px;
        padding: 21px 20px 19px;
    }

    .schedule-next-release {
        width: 100%;
        min-width: 0;
        flex-direction: row;
        justify-content: space-between;
        align-items: center;
    }

    .schedule-year-block {
        padding: 18px 16px 20px;
    }

    .schedule-year-block + .schedule-year-block {
        border-left: 0;
        border-top: 1px solid #e2e9ef;
    }

    .schedule-table th,
    .schedule-table td {
        padding: 8px 7px;
        font-size: 11px;
    }

    .schedule-next-tag {
        display: block;
        width: fit-content;
        margin: 3px 0 0;
    }

    .schedule-continuous h2 {
        font-size: 27px;
    }

    .schedule-special-card {
        padding: 23px 20px 25px;
    }

    .schedule-date-chips,
    .schedule-date-chips-compact {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .schedule-note {
        margin-bottom: 58px;
        padding: 27px 22px;
    }

    .schedule-note-actions {
        width: 100%;
    }

    .schedule-text-link {
        align-self: center;
    }
}

/* ==========================================================================
   Publications Schedule — align specialised schedule columns
   ========================================================================== */
/* Keep the first year heading on a shared baseline across the three desktop
   cards. The descriptions vary in length, so reserve the same natural space
   for them rather than letting each schedule begin at a different height. */
/* At the two-column breakpoint, align the first pair while allowing the
   full-width third card to use its natural content height. */
@media (min-width: 821px) and (max-width: 1100px) {
    .publication-schedule-page .schedule-special-card:last-child > p {
        min-height: 0;
    }
}

/* Mobile cards are independent, so no artificial vertical space is needed. */
@media (max-width: 820px) {
    .publication-schedule-page .schedule-special-card > p {
        min-height: 0;
    }
}

/* ==========================================================================
   Publications Schedule — exact alignment for specialised calendars
   ========================================================================== */
/* The three specialised cards contain different amounts of copy and a
   different number of date chips. Align the key year baselines explicitly on
   wide screens: equal title/intro space aligns 2026, and equal first-year
   space aligns 2027. */
@media (min-width: 1101px) {
    .publication-schedule-page .schedule-special-grid {
        align-items: stretch;
    }

    .publication-schedule-page .schedule-special-card {
        display: flex;
        flex-direction: column;
    }

    .publication-schedule-page .schedule-special-card .schedule-special-label {
        min-height: 13px;
        margin-bottom: 9px;
    }

    .publication-schedule-page .schedule-special-card > h3 {
        min-height: 55px;
        margin-bottom: 9px;
    }

    .publication-schedule-page .schedule-special-card > p {
        min-height: 108px;
        margin-bottom: 0;
    }

    /* First year block (2026).  Monthly inflation has the most content, so
       reserve that same height in all three cards. */
    .publication-schedule-page .schedule-special-card > .schedule-chip-year:first-of-type {
        min-height: 244px;
        box-sizing: border-box;
        margin-top: 16px;
    }

    /* Remove any inherited extra spacing that can move the second year. */
    .publication-schedule-page .schedule-special-card > .schedule-chip-year:nth-of-type(2) {
        margin-top: 16px;
    }
}

/* At the two-column breakpoint only the first two cards share a row. Align
   those two without creating a large blank area in the full-width third card. */
@media (min-width: 821px) and (max-width: 1100px) {
    .publication-schedule-page .schedule-special-card:not(:last-child) > h3 {
        min-height: 55px;
    }

    .publication-schedule-page .schedule-special-card:not(:last-child) > p {
        min-height: 108px;
        margin-bottom: 0;
    }

    .publication-schedule-page .schedule-special-card:not(:last-child) > .schedule-chip-year:first-of-type {
        min-height: 164px;
        box-sizing: border-box;
    }
}

@media (max-width: 820px) {
    .publication-schedule-page .schedule-special-card > h3,
    .publication-schedule-page .schedule-special-card > p,
    .publication-schedule-page .schedule-special-card > .schedule-chip-year:first-of-type {
        min-height: 0;
    }
}

/* ========================================================================== 
   Publication Schedule — force true full-width page shell
   ========================================================================== */
body.publication-schedule-body .wrap.publication-schedule-wrap,
body.publication-schedule-body #content .wrap.publication-schedule-wrap,
body.publication-schedule-body #primary.publication-schedule-primary,
body.publication-schedule-body #primary.publication-schedule-primary #main,
body.publication-schedule-body article.publication-schedule-page {
    display: block;
    float: none;
    width: 100%;
    max-width: none;
    margin-left: 0;
    margin-right: 0;
    padding-left: 0;
    padding-right: 0;
}

/*
 * Hide only the page-content sidebar.
 *
 * Do NOT hide `.widget-area` globally here: the normal site header and
 * navigation/search also use that class.
 */
body.publication-schedule-body #content #secondary,
body.publication-schedule-body #content aside.sidebar {
    display: none;
}



/* Publications Schedule — restrained regional accent */
.publication-schedule-page .schedule-region-asia {
    color: #2f8f83;
    font-weight: inherit;
}

/* Final dark-panel typography override — defeat legacy theme heading colours */
body.publication-schedule-body .publication-schedule-page .schedule-continuous .schedule-kicker {
    color: #8ed9ff;
    text-align: left;
    word-spacing: normal;
}

body.publication-schedule-body .publication-schedule-page .schedule-continuous h2,
body.publication-schedule-body .publication-schedule-page .schedule-continuous h2#continuous-title {
    color: #ffffff;
    text-align: left;
    word-spacing: normal;
    letter-spacing: normal;
}

body.publication-schedule-body .publication-schedule-page .schedule-continuous p {
    color: #e8f0f6;
    text-align: left;
    word-spacing: normal;
}

body.publication-schedule-body .publication-schedule-page .schedule-continuous .schedule-frequency-grid strong {
    color: #ffffff;
}

body.publication-schedule-body .publication-schedule-page .schedule-continuous .schedule-frequency-grid span {
    color: #d9e8f2;
}


/* ==========================================================================
   CEI — Publication Schedule final refinement
   Functional first: tighter scale, clearer dates, fewer competing cards.
   ========================================================================== */
.schedule-hero {
    padding-top: 56px;
    padding-bottom: 42px;
}
.schedule-hero h1 {
    max-width: 820px;
    color: #153b5c;
    font-size: clamp(40px, 4.5vw, 52px);
    line-height: 1.05;
    letter-spacing: -.03em;
}
.schedule-hero p {
    max-width: 760px;
    color: #3f4f5e;
    font-size: 17px;
    line-height: 1.68;
    text-align: left;
}

/* Intro guidance: compact editorial columns. */
.schedule-intro-grid {
    gap: 0;
    border-top: 1px solid #d9e3ea;
    border-bottom: 1px solid #d9e3ea;
}
.schedule-intro-grid article {
    padding: 22px 26px;
    border: 0;
    background: transparent;
}
.schedule-intro-grid article + article {
    border-left: 1px solid #d9e3ea;
}
.schedule-intro-grid h2 {
    color: #153b5c;
    font-size: 18px;
}
.schedule-intro-grid p {
    color: #5d6f7d;
    font-size: 16px;
    line-height: 1.6;
    text-align: left;
}

.schedule-section {
    padding-top: 60px;
    padding-bottom: 60px;
}
.schedule-section-heading {
    margin-bottom: 24px;
}
.schedule-section-heading h2 {
    color: #153b5c;
    font-size: 31px;
    line-height: 1.18;
}
.schedule-section-heading p {
    color: #5d6f7d;
    font-size: 16px;
    line-height: 1.65;
    text-align: center;
}

/* Core release cards: simplify framing while preserving category accents. */
.schedule-grid {
    gap: 18px;
}
.schedule-card {
    border: 1px solid #d9e3ea;
    border-top: 2px solid var(--schedule-accent);
    border-radius: 6px;
    background: #fff;
    box-shadow: none;
}
.schedule-card-header {
    padding: 21px 22px 16px;
}
.schedule-card h3 {
    color: #153b5c;
    font-size: 19px;
}
.schedule-card-header p {
    color: #5d6f7d;
    font-size: 15px;
    line-height: 1.6;
    text-align: left;
}

/* Date chips: quiet utility treatment, next release remains distinct. */
.schedule-date-chips {
    gap: 7px;
}
.schedule-date-chips span,
.schedule-chip-year {
    border-radius: 4px;
    box-shadow: none;
}
.schedule-next-release {
    border-radius: 5px;
    box-shadow: none;
}

/* Continuous/high-frequency block: one supporting panel. */
.schedule-continuous {
    padding: 34px;
    border-radius: 6px;
    box-shadow: none;
}
.schedule-continuous h2 {
    font-size: 28px;
}
.schedule-continuous p {
    font-size: 16px;
    line-height: 1.65;
    text-align: left;
}
.schedule-frequency-grid {
    gap: 0;
    border-top: 1px solid rgba(255,255,255,.18);
    border-bottom: 1px solid rgba(255,255,255,.18);
}
.schedule-frequency-grid > div {
    padding: 16px 18px;
    border: 0;
    background: transparent;
}
.schedule-frequency-grid > div + div {
    border-left: 1px solid rgba(255,255,255,.18);
}

/* Special publications: reduce the coloured-card effect. */
.schedule-special-grid {
    gap: 0;
    border-top: 1px solid #d9e3ea;
    border-bottom: 1px solid #d9e3ea;
}
.schedule-special-card {
    padding: 24px 26px;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}
.schedule-special-card + .schedule-special-card {
    border-left: 1px solid #d9e3ea;
}
.schedule-special-card h3 {
    color: #153b5c;
    font-size: 19px;
}
.schedule-special-card > p {
    color: #5d6f7d;
    font-size: 16px;
    line-height: 1.6;
    text-align: left;
}

/* Final note is a utility callout, not a large marketing card. */
.schedule-note {
    margin-top: 44px;
    padding: 26px 0;
    border: 0;
    border-top: 1px solid #d9e3ea;
    border-bottom: 1px solid #d9e3ea;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}
.schedule-note h2 {
    color: #153b5c;
    font-size: 24px;
}
.schedule-note p {
    color: #5d6f7d;
    font-size: 16px;
    line-height: 1.6;
    text-align: left;
}

@media (max-width: 767px) {
    .schedule-hero {
        padding-top: 40px;
        padding-bottom: 32px;
    }
    .schedule-hero h1 {
        font-size: 35px;
    }
    .schedule-section {
        padding-top: 46px;
        padding-bottom: 46px;
    }
    .schedule-intro-grid article + article,
    .schedule-special-card + .schedule-special-card,
    .schedule-frequency-grid > div + div {
        border-left: 0;
        border-top: 1px solid #d9e3ea;
    }
    .schedule-frequency-grid > div + div {
        border-top-color: rgba(255,255,255,.18);
    }
}


/* CEI — hero alignment standardisation */
.schedule-hero { text-align:center; }
.schedule-hero h1,
.schedule-hero > p,
.schedule-hero p {
    margin-left:auto;
    margin-right:auto;
    text-align:center;
}
.schedule-hero-actions,
.schedule-hero .schedule-actions { justify-content:center; }


/* CEI — calmer editorial hero weight */
@media (min-width: 768px) {
    .schedule-hero h1 {
        font-weight: 400;
        line-height: 1.05;
    }
}
@media (max-width: 767px) {
    .schedule-hero h1 {
        font-weight: 400;
    }
}


/* Final CTA consistency: exact schedule actions */
.schedule-hero-actions .schedule-button,
.schedule-note-actions .schedule-button {
    width: 220px;
    min-width: 220px;
    min-height: 42px;
    box-sizing: border-box;
}
.schedule-note-actions {
    flex-direction: row;
    align-items: center;
    justify-content: flex-end;
    gap: 12px;
}
.schedule-note-actions .schedule-button-secondary,
.schedule-note-actions .schedule-button-secondary:link,
.schedule-note-actions .schedule-button-secondary:visited {
    background: #fff;
    color: #153f6b;
    border: 1px solid #b9ccdc;
}
.schedule-button span[aria-hidden="true"] { display: none; }
@media (max-width: 720px) {
    .schedule-hero-actions .schedule-button,
    .schedule-note-actions .schedule-button { width: 100%; min-width: 0; }
    .schedule-note-actions { flex-direction: column; align-items: stretch; }
}

/* CEI — keep the publication schedule hero title on one line on desktop */
@media (min-width: 900px) {
    body.publication-schedule-body .publication-schedule-page .schedule-hero h1 {
        max-width: none;
        width: max-content;
        white-space: nowrap;
    }
}

/* ==========================================================================
   CEI 2026-10-01 — Publication schedule isolated layout correction
   Keep shared #primary rules untouched. Neutralise the legacy 240px sidebar
   offset only on this page, then center the schedule content within the viewport.
   ========================================================================== */
body.publication-schedule-body #primary.publication-schedule-primary {
    float: none;
    width: 100%;
    max-width: none;
    margin: 0;
    padding-right: 0;
    text-align: initial;
}

body.publication-schedule-body #primary.publication-schedule-primary #main,
body.publication-schedule-body article.publication-schedule-page {
    width: 100%;
    max-width: none;
    margin: 0;
    padding: 0;
}

body.publication-schedule-body .schedule-hero,
body.publication-schedule-body .schedule-intro-grid,
body.publication-schedule-body .schedule-section,
body.publication-schedule-body .schedule-continuous,
body.publication-schedule-body .schedule-note {
    width: calc(100% - 48px);
    max-width: 1180px;
    margin-left: auto;
    margin-right: auto;
}

body.publication-schedule-body .schedule-grid,
body.publication-schedule-body .schedule-card,
body.publication-schedule-body .schedule-table-wrap,
body.publication-schedule-body .schedule-table {
    width: 100%;
    max-width: none;
}

@media (max-width: 767px) {
    body.publication-schedule-body .schedule-hero,
    body.publication-schedule-body .schedule-intro-grid,
    body.publication-schedule-body .schedule-section,
    body.publication-schedule-body .schedule-continuous,
    body.publication-schedule-body .schedule-note {
        width: calc(100% - 30px);
    }
}


/* ========================================================================== 
   CEI 2026-10-01 — Publication Schedule final width authority
   Scope width ownership to the page component itself so generic theme shells
   cannot narrow the schedule page if body-class/container routing changes.
   ========================================================================== */
html body .publication-schedule-page {
    display: block;
    float: none;
    width: 100%;
    max-width: none;
    margin-left: 0;
    margin-right: 0;
    padding-left: 0;
    padding-right: 0;
}

html body .publication-schedule-page > .schedule-hero,
html body .publication-schedule-page > .schedule-intro-grid,
html body .publication-schedule-page > .schedule-section,
html body .publication-schedule-page > .schedule-continuous,
html body .publication-schedule-page > .schedule-note,
html body .publication-schedule-page .schedule-hero,
html body .publication-schedule-page .schedule-intro-grid,
html body .publication-schedule-page .schedule-section,
html body .publication-schedule-page .schedule-continuous,
html body .publication-schedule-page .schedule-note {
    width: min(1180px, calc(100% - 48px));
    max-width: 1180px;
    margin-left: auto;
    margin-right: auto;
    box-sizing: border-box;
}

html body .publication-schedule-page .schedule-grid,
html body .publication-schedule-page .schedule-card,
html body .publication-schedule-page .schedule-table-wrap,
html body .publication-schedule-page .schedule-table {
    width: 100%;
    max-width: none;
}

/* Keep the hero editorially readable without making the whole page narrow. */
html body .publication-schedule-page .schedule-hero h1 {
    width: auto;
    max-width: 980px;
    margin-left: auto;
    margin-right: auto;
    white-space: normal;
    text-wrap: balance;
}

@media (max-width: 767px) {
    html body .publication-schedule-page > .schedule-hero,
    html body .publication-schedule-page > .schedule-intro-grid,
    html body .publication-schedule-page > .schedule-section,
    html body .publication-schedule-page > .schedule-continuous,
    html body .publication-schedule-page > .schedule-note,
    html body .publication-schedule-page .schedule-hero,
    html body .publication-schedule-page .schedule-intro-grid,
    html body .publication-schedule-page .schedule-section,
    html body .publication-schedule-page .schedule-continuous,
    html body .publication-schedule-page .schedule-note {
        width: calc(100% - 30px);
    }
}


/* ==========================================================================
   CEI 2026-10-01 — Publication schedule legacy sidebar reservation removal
   The old theme globally reserves 240px for #secondary even when this template
   does not render a page sidebar. Own the page shell here instead.
   ========================================================================== */
html body.page-template-page-publications-schedule .site-content,
html body.publication-schedule-body .site-content,
html body:has(article.publication-schedule-page) .site-content {
    width: 100%;
    max-width: none;
}

html body.page-template-page-publications-schedule .publication-schedule-wrap,
html body.publication-schedule-body .publication-schedule-wrap,
html body:has(article.publication-schedule-page) .publication-schedule-wrap {
    display: block;
    width: 100%;
    max-width: none;
    margin: 0;
    padding: 0;
}

html body.page-template-page-publications-schedule .site-content #primary.publication-schedule-primary,
html body.publication-schedule-body .site-content #primary.publication-schedule-primary,
html body:has(article.publication-schedule-page) .site-content #primary.publication-schedule-primary {
    display: block;
    float: none;
    width: 100%;
    max-width: none;
    margin: 0;
    padding: 0;
}

html body.page-template-page-publications-schedule #content > #secondary,
html body.publication-schedule-body #content > #secondary,
html body:has(article.publication-schedule-page) #content > #secondary {
    display: none;
}


/* ==========================================================================
   CEI 2026-10-01 — Publication Schedule source-level legacy shell removal
   The template no longer renders the legacy #primary/content-area wrapper.
   Own the page directly so old sidebar/widget column rules cannot apply.
   ========================================================================== */
html body .publication-schedule-wrap,
html body .publication-schedule-primary,
html body .publication-schedule-page {
    display: block;
    float: none;
    clear: both;
    width: 100%;
    max-width: none;
    margin-left: 0;
    margin-right: 0;
    padding-left: 0;
    padding-right: 0;
}

html body .site-content:has(.publication-schedule-page) {
    display: block;
    width: 100%;
    max-width: none;
    margin-left: 0;
    margin-right: 0;
    padding-left: 0;
    padding-right: 0;
}

html body .publication-schedule-page .schedule-hero,
html body .publication-schedule-page .schedule-intro-grid,
html body .publication-schedule-page .schedule-section,
html body .publication-schedule-page .schedule-continuous,
html body .publication-schedule-page .schedule-note {
    width: min(1180px, calc(100% - 48px));
    max-width: 1180px;
    margin-left: auto;
    margin-right: auto;
}

@media (max-width: 767px) {
    html body .publication-schedule-page .schedule-hero,
    html body .publication-schedule-page .schedule-intro-grid,
    html body .publication-schedule-page .schedule-section,
    html body .publication-schedule-page .schedule-continuous,
    html body .publication-schedule-page .schedule-note {
        width: calc(100% - 30px);
    }
}

/* ==========================================================
   CEI 2026-10-01 — Continuous panel text-colour ownership fix
   Do not depend on the legacy publication-schedule-body class.
   ========================================================== */
html body .publication-schedule-page .schedule-continuous h2,
html body .publication-schedule-page .schedule-continuous h2#continuous-title {
    color: #ffffff;
    -webkit-text-fill-color: #ffffff;
}

html body .publication-schedule-page .schedule-continuous .schedule-kicker {
    color: #8ed9ff;
    -webkit-text-fill-color: #8ed9ff;
}

html body .publication-schedule-page .schedule-continuous p {
    color: #e8f0f6;
    -webkit-text-fill-color: #e8f0f6;
}

html body .publication-schedule-page .schedule-continuous .schedule-frequency-grid strong {
    color: #ffffff;
    -webkit-text-fill-color: #ffffff;
}

html body .publication-schedule-page .schedule-continuous .schedule-frequency-grid span {
    color: #d9e8f2;
    -webkit-text-fill-color: #d9e8f2;
}

/* CEI 2026-10-01 — Continuous-panel heading source-owner fallback. */
#continuous-title {
    color: #fff;
    -webkit-text-fill-color: #fff;
}


/* Research & Insights — release schedule hierarchy and legibility. */
.publication-schedule-page .schedule-section-heading h2 { letter-spacing: -.025em; line-height: 1.2; }
.publication-schedule-page .schedule-year-block h4 { letter-spacing: -.015em; line-height: 1.3; }
.publication-schedule-page .schedule-next-release { line-height: 1.55; }
.publication-schedule-page .schedule-next-release strong { font-weight: 700; }
.publication-schedule-page .schedule-table-wrap { max-width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; }
.publication-schedule-page .schedule-table th, .publication-schedule-page .schedule-table td { line-height: 1.5; font-variant-numeric: tabular-nums; vertical-align: middle; }
.publication-schedule-page .schedule-table thead th { font-weight: 700; }
.publication-schedule-page .schedule-card p, .publication-schedule-page .schedule-note p { line-height: 1.6; }
.publication-schedule-page a:focus-visible, .publication-schedule-page button:focus-visible { outline: 2px solid #2876a6; outline-offset: 3px; }
@media (max-width: 767px) {
 .publication-schedule-page .schedule-table th, .publication-schedule-page .schedule-table td { font-size: 13.5px; line-height: 1.5; }
 .publication-schedule-page .schedule-year-block h4 { line-height: 1.28; }
 .publication-schedule-page .schedule-section-heading h2 { line-height: 1.24; }
}
