/* Journey — stage-by-stage pages, intake, province/city overlays. */

.cw-journey { padding: 32px 0 80px; }

.cw-crumbs { font-size: .85rem; color: #667085; margin-bottom: 16px; }
.cw-crumbs ol { list-style: none; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: 6px; }
.cw-crumbs li + li::before { content: "›"; margin-right: 6px; color: #98a2b3; }
.cw-crumbs a { color: #0F2A44; text-decoration: none; }
.cw-crumbs a:hover { text-decoration: underline; }

.cw-eyebrow {
    text-transform: uppercase; letter-spacing: .08em; font-size: .78rem;
    color: #667085; margin: 0 0 8px; font-weight: 600;
}

.cw-journey-hero { padding: 32px 0 36px; border-bottom: 1px solid #eaecf0; background: #ffffff; }
.cw-journey-hero .cw-stat-strip { background: transparent; }
.cw-journey-hero h1 { font-family: "Source Serif 4", serif; font-size: clamp(2rem, 3.5vw, 2.75rem); margin: 0 0 16px; line-height: 1.15; color: #0F2A44; }
.cw-journey-hero .cw-dek { font-size: 1.1rem; line-height: 1.55; color: #344054; max-width: 760px; margin: 0 0 20px; }

.cw-journey-hero__cta { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 24px; }

.cw-btn {
    display: inline-flex; align-items: center; justify-content: center;
    padding: 12px 20px; border-radius: 999px; font-weight: 600; font-size: .95rem;
    text-decoration: none; border: 1px solid transparent; cursor: pointer; transition: all .15s ease;
}
.cw-btn--primary { background: #0F2A44; color: #fff; }
.cw-btn--primary:hover { background: #1B3A5C; }
.cw-btn--ghost { background: transparent; color: #0F2A44; border-color: #d0d5dd; }
.cw-btn--ghost:hover { background: #f9fafb; }

.cw-journey-hero__summary {
    margin-top: 20px; padding: 16px 20px; background: #f0f7ff;
    border-left: 3px solid #D4A23E; border-radius: 8px;
}

.cw-byline__role { color: #667085; font-weight: 400; }
.cw-byline__meth { color: #0F2A44; text-decoration: underline; font-size: .82rem; }
.cw-byline__meth:hover { color: #D4A23E; }

/* Stat strip — hero
 * Self-contained visual: works on light OR dark parent backgrounds.
 * Generous gap + radius + shadow prevents visual bleed into adjacent sections.
 */
.cw-stat-strip {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: 14px;
    margin: 36px 0 20px;
}
.cw-stat {
    padding: 22px 24px;
    background: #fffbf3;
    border: 1px solid #f3d08a;
    border-left: 4px solid #D4A23E;
    border-radius: 12px;
    box-shadow: 0 1px 3px rgba(10, 37, 64, 0.06), 0 8px 24px -12px rgba(10, 37, 64, 0.08);
}
.cw-stat__v {
    display: block; font-family: "Source Serif 4", serif; font-size: 1.95rem;
    font-weight: 700; color: #0F2A44; line-height: 1.1;
    font-variant-numeric: tabular-nums; letter-spacing: -.01em;
}
.cw-stat__l { display: block; margin-top: 8px; color: #475467; font-size: .88rem; line-height: 1.45; }

@media (max-width: 720px) {
    .cw-stat-strip { grid-template-columns: 1fr; gap: 10px; margin: 28px 0 16px; }
    .cw-stat { padding: 18px 20px; }
    .cw-stat__v { font-size: 1.65rem; }
}

.cw-section-dek { color: #475467; font-size: 1rem; line-height: 1.55; max-width: 760px; margin: 0 0 24px; }

/* What's new callouts */
.cw-whats-new { padding: 48px 0; border-top: 1px solid #eaecf0; }
.cw-whats-new h2 { font-family: "Source Serif 4", serif; font-size: 1.75rem; margin: 0 0 24px; color: #0F2A44; }
.cw-whats-new__grid { display: grid; gap: 14px; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); }

.cw-callout {
    padding: 18px 22px; border-radius: 10px; background: #fff;
    border-left: 3px solid #d0d5dd;
}
.cw-callout h3 { margin: 0 0 8px; font-size: 1rem; color: #0F2A44; }
.cw-callout p  { margin: 0; color: #475467; line-height: 1.55; font-size: .92rem; }
.cw-callout--new { border-left-color: #3b82c9; background: #eff6fc; }
.cw-callout--limit { border-left-color: #D4A23E; background: #fffbf3; }
.cw-callout--deadline { border-left-color: #d97706; background: #fff8e7; }
.cw-callout--landmine { border-left-color: #9c2a2a; background: #fdf2f2; }

/* Timeline */
.cw-timeline { list-style: none; padding: 0; margin: 0; display: grid; gap: 0; }
.cw-timeline__node {
    display: grid; grid-template-columns: 64px 1fr; gap: 20px;
    padding: 20px 0; position: relative;
    border-bottom: 1px solid #eaecf0;
}
.cw-timeline__node:last-child { border-bottom: 0; }
.cw-timeline__node::before {
    content: ""; position: absolute; left: 31px; top: 62px; bottom: -1px;
    width: 2px; background: linear-gradient(to bottom, #D4A23E 0%, #eaecf0 100%);
}
.cw-timeline__node:last-child::before { display: none; }
.cw-timeline__num {
    display: inline-flex; align-items: center; justify-content: center;
    width: 44px; height: 44px; border-radius: 50%;
    background: #0F2A44; color: #fff; font-weight: 700; font-size: .95rem;
    font-variant-numeric: tabular-nums;
    position: relative; z-index: 1;
    box-shadow: 0 0 0 3px #fff, 0 0 0 4px #eaecf0;
}
.cw-timeline__node[data-active="true"] .cw-timeline__num { background: #D4A23E; }
.cw-timeline__body { padding-top: 6px; }
.cw-timeline__head { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; flex-wrap: wrap; }
.cw-timeline__head h3 { margin: 0; font-size: 1.15rem; }
.cw-timeline__head h3 a { color: #0F2A44; text-decoration: none; }
.cw-timeline__head h3 a:hover { text-decoration: underline; }
.cw-timeline__duration {
    font-size: .78rem; font-weight: 600; color: #0F2A44;
    padding: 3px 10px; border: 1px solid #d0d5dd; border-radius: 999px;
    background: #fff; white-space: nowrap;
}
.cw-timeline__dek { color: #475467; line-height: 1.55; margin: 8px 0 12px; }
.cw-timeline__meta { display: grid; gap: 6px; font-size: .9rem; }
.cw-timeline__decision, .cw-timeline__mistake { color: #344054; line-height: 1.5; }
.cw-timeline__lbl {
    display: inline-block; font-size: .7rem; font-weight: 700; letter-spacing: .06em;
    color: #667085; text-transform: uppercase; margin-right: 8px; min-width: 110px;
}
.cw-timeline__mistake .cw-timeline__lbl { color: #9c2a2a; }

/* Stacking diagram */
.cw-journey-stacking { padding: 48px 0; border-top: 1px solid #eaecf0; }
.cw-journey-stacking h2 { font-family: "Source Serif 4", serif; font-size: 1.75rem; margin: 0 0 16px; color: #0F2A44; }
.cw-stacking { display: grid; gap: 22px; }
.cw-stacking__row { display: grid; grid-template-columns: 1fr; gap: 10px; }
.cw-stacking__label strong { display: block; color: #0F2A44; font-size: 1.05rem; }
.cw-stacking__label span { display: block; color: #667085; font-size: .88rem; margin-top: 2px; }
.cw-stacking__bar {
    display: flex; height: 40px; border-radius: 8px; overflow: hidden;
    box-shadow: inset 0 0 0 1px rgba(10,37,64,.1);
}
.cw-stacking__seg {
    display: block; position: relative; height: 100%; min-width: 2px;
    transition: filter .15s ease;
}
.cw-stacking__seg:hover { filter: brightness(1.1); }
.cw-stacking__tt {
    position: absolute; bottom: calc(100% + 8px); left: 50%;
    transform: translateX(-50%) translateY(6px);
    padding: 6px 10px; background: #0F2A44; color: #fff;
    font-size: .78rem; line-height: 1.35; border-radius: 6px;
    white-space: nowrap; opacity: 0; pointer-events: none;
    transition: opacity .15s ease, transform .15s ease;
    z-index: 5;
}
.cw-stacking__seg:hover .cw-stacking__tt,
.cw-stacking__seg:focus .cw-stacking__tt { opacity: 1; transform: translateX(-50%) translateY(0); }
.cw-stacking__legend {
    display: flex; flex-wrap: wrap; gap: 12px 20px; margin-top: 8px;
    font-size: .82rem; color: #475467;
}
.cw-stacking__key { display: inline-flex; align-items: center; gap: 6px; }
.cw-stacking__swatch { display: inline-block; width: 14px; height: 14px; border-radius: 3px; }

/* Side-rail nav
 * Inline horizontal pills above content at ALL screen sizes. No fixed
 * positioning — earlier fixed-left behavior overlapped content at 1100–1440px.
 * Simpler, always reliable, scroll-spy still works.
 */
.cw-side-rail {
    position: static;
    padding: 14px 18px; background: #fff;
    border: 1px solid #eaecf0; border-radius: 12px;
    box-shadow: 0 1px 3px rgba(10, 37, 64, 0.04);
    margin: 20px 0 28px;
}
.cw-side-rail__title {
    margin: 0 0 8px; font-size: .7rem; font-weight: 700; letter-spacing: .1em;
    text-transform: uppercase; color: #667085;
}
.cw-side-rail ul {
    list-style: none; padding: 0; margin: 0;
    display: flex; flex-wrap: wrap; gap: 4px 2px;
}
.cw-side-rail li a {
    display: inline-block; padding: 6px 10px; border-radius: 6px;
    color: #344054; text-decoration: none; font-size: .85rem; font-weight: 500;
    border: 1px solid transparent;
    transition: background .15s ease, color .15s ease, border-color .15s ease;
}
.cw-side-rail li a:hover { background: #f9fafb; color: #0F2A44; }
.cw-side-rail li a.is-active {
    background: #fffbf3; color: #0F2A44; border-color: #f3d08a; font-weight: 600;
}

/* (Fixed left-margin rail removed — caused overlap on mid-width viewports.
 * Side-rail now renders as inline horizontal pills at all widths.) */

@media (prefers-reduced-motion: reduce) {
    .cw-side-rail li a { transition: none; }
}

/* Decision-flow tree */
.cw-journey-flows { padding: 48px 0; border-top: 1px solid #eaecf0; }
.cw-journey-flows h2 { font-family: "Source Serif 4", serif; font-size: 1.75rem; margin: 0 0 16px; color: #0F2A44; }
.cw-flow {
    margin-bottom: 48px; padding: 28px; background: #fafbfc;
    border: 1px solid #eaecf0; border-radius: 16px;
}
.cw-flow:last-child { margin-bottom: 0; }
.cw-flow h3 { font-family: "Source Serif 4", serif; font-size: 1.3rem; margin: 0 0 6px; color: #0F2A44; }
.cw-flow__dek { margin: 0 0 24px; color: #475467; line-height: 1.55; max-width: 720px; }

.cw-flow__tree { display: flex; flex-direction: column; align-items: stretch; gap: 0; }
.cw-flow__node, .cw-flow__answer {
    display: flex; flex-direction: column; align-items: stretch;
    position: relative;
}
.cw-flow__branch {
    display: inline-flex; align-items: center;
    align-self: flex-start; margin: 10px 0 10px 16px;
    padding: 3px 12px; font-size: .72rem; font-weight: 700; letter-spacing: .06em;
    text-transform: uppercase; color: #fff; background: #0F2A44;
    border-radius: 999px;
}
.cw-flow__answer .cw-flow__branch { background: #D4A23E; }
.cw-flow__card {
    padding: 14px 18px; background: #fff; border: 1px solid #d0d5dd;
    border-radius: 10px; color: #0F2A44; line-height: 1.5;
    position: relative;
}
.cw-flow__card--question {
    font-weight: 600; background: #fff; border-left: 3px solid #0F2A44;
}
.cw-flow__card--answer {
    background: #fffbf3; border-color: #f3d08a; border-left: 3px solid #D4A23E;
    padding: 16px 20px;
}
.cw-flow__card--answer strong { display: block; font-size: 1.05rem; color: #0F2A44; margin-bottom: 6px; }
.cw-flow__card--answer p { margin: 0; color: #344054; font-size: .92rem; line-height: 1.55; }

/* Children indent + connector line */
.cw-flow__children {
    display: flex; flex-direction: column; align-items: stretch;
    padding-left: 24px; margin-top: 4px;
    border-left: 2px dashed #d0d5dd;
    margin-left: 16px;
}
@media (min-width: 820px) {
    .cw-flow__children {
        flex-direction: row; gap: 20px; padding-left: 0; border-left: 0;
        margin-left: 0; margin-top: 16px;
        align-items: stretch;
    }
    .cw-flow__children > .cw-flow__node,
    .cw-flow__children > .cw-flow__answer {
        flex: 1 1 0; min-width: 0;
        border-top: 2px dashed #d0d5dd; padding-top: 16px;
    }
    .cw-flow__children > .cw-flow__node::before,
    .cw-flow__children > .cw-flow__answer::before {
        content: ""; position: absolute; top: -2px; left: 50%;
        width: 2px; height: 16px; background: #d0d5dd;
        transform: translateX(-1px); display: none;
    }
    .cw-flow__children .cw-flow__branch { margin-top: 0; }
}

/* Featured province row */
.cw-province-grid--featured { grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); margin-bottom: 16px; }
.cw-province-card--large { padding: 24px; background: #fffbf3; border-color: #f3d08a; }
.cw-province-card--large strong { font-size: 1.2rem; margin-bottom: 4px; }
.cw-province-card__stat { color: #0F2A44; font-weight: 500; font-size: .92rem; }
.cw-province-card__cta { color: #D4A23E; font-weight: 600; font-size: .85rem; margin-top: 4px; }
.cw-province-card span { font-size: .86rem; }

/* Landmines */
.cw-landmines { padding: 48px 0; border-top: 1px solid #eaecf0; }
.cw-landmines h2 { font-family: "Source Serif 4", serif; font-size: 1.75rem; margin: 0 0 16px; color: #0F2A44; }
.cw-landmines__list { list-style: none; padding: 0; margin: 0; counter-reset: none; display: grid; gap: 14px; }
.cw-landmine {
    display: grid; grid-template-columns: 48px 1fr; gap: 16px;
    padding: 20px 22px; background: #fdf2f2; border-left: 3px solid #9c2a2a;
    border-radius: 10px;
}
.cw-landmine__rank {
    display: inline-flex; align-items: center; justify-content: center;
    width: 36px; height: 36px; border-radius: 50%;
    background: #9c2a2a; color: #fff; font-weight: 700; font-size: .95rem;
}
.cw-landmine h3 { margin: 0 0 4px; font-size: 1.05rem; color: #0F2A44; }
.cw-landmine__cost { margin: 0 0 8px; color: #9c2a2a; font-weight: 600; font-size: .86rem; }
.cw-landmine p { margin: 0; color: #344054; line-height: 1.55; font-size: .95rem; }

/* Hub FAQ */
.cw-hub-faq { padding: 48px 0; border-top: 1px solid #eaecf0; max-width: 820px; }
.cw-hub-faq h2 { font-family: "Source Serif 4", serif; font-size: 1.75rem; margin: 0 0 20px; color: #0F2A44; }
.cw-hub-faq .cw-faq-item { border: 1px solid #eaecf0; border-radius: 10px; margin-bottom: 10px; background: #fff; }
.cw-hub-faq .cw-faq-item summary {
    padding: 16px 20px; cursor: pointer; font-weight: 600; color: #0F2A44;
    list-style: none; position: relative; font-size: 1rem;
}
.cw-hub-faq .cw-faq-item summary::-webkit-details-marker { display: none; }
.cw-hub-faq .cw-faq-item summary::after { content: "+"; position: absolute; right: 20px; top: 14px; font-size: 1.4rem; font-weight: 400; color: #667085; }
.cw-hub-faq .cw-faq-item[open] summary::after { content: "−"; }
.cw-hub-faq .cw-faq-item p { padding: 0 20px 18px; margin: 0; color: #344054; line-height: 1.6; }

/* Sources */
.cw-sources { padding: 48px 0; border-top: 1px solid #eaecf0; }
.cw-sources h2 { font-family: "Source Serif 4", serif; font-size: 1.75rem; margin: 0 0 16px; color: #0F2A44; }
.cw-sources__group { margin-bottom: 24px; }
.cw-sources__group h3 {
    font-size: .82rem; text-transform: uppercase; letter-spacing: .08em;
    color: #667085; margin: 0 0 10px; font-weight: 700;
}
.cw-sources__group ul { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 6px 20px; }
.cw-sources__group li a {
    display: block; padding: 8px 0; color: #0F2A44; text-decoration: none;
    border-bottom: 1px dashed #eaecf0; font-size: .92rem; line-height: 1.45;
}
.cw-sources__group li a:hover { color: #D4A23E; border-bottom-color: #D4A23E; }

/* Related journeys (cross-link block) */
.cw-related-journeys { padding: 48px 0; border-top: 1px solid #eaecf0; }
.cw-related-journeys h2 { font-family: "Source Serif 4", serif; font-size: 1.75rem; margin: 0 0 14px; color: #0F2A44; }
.cw-related-journeys__grid {
    display: grid; gap: 14px;
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
}
.cw-related-journey {
    display: flex; flex-direction: column; gap: 8px;
    padding: 22px 24px; border: 1px solid #eaecf0; border-radius: 12px;
    background: #fff; text-decoration: none; color: #0F2A44;
    transition: border-color .15s ease, transform .15s ease;
}
.cw-related-journey:hover { border-color: #D4A23E; transform: translateY(-1px); }
.cw-related-journey strong { font-size: 1.05rem; color: #0F2A44; }
.cw-related-journey > span { color: #475467; font-size: .9rem; line-height: 1.5; }
.cw-related-journey__cta {
    margin-top: 6px !important; color: #D4A23E !important; font-weight: 600 !important; font-size: .85rem !important;
}
.cw-related-journey--soon { opacity: .55; cursor: default; }
.cw-related-journey--soon:hover { border-color: #eaecf0; transform: none; }

/* Take this with you */
.cw-takeaway { padding: 48px 0; border-top: 1px solid #eaecf0; }
.cw-takeaway h2 { font-family: "Source Serif 4", serif; font-size: 1.75rem; margin: 0 0 20px; color: #0F2A44; }
.cw-takeaway__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 14px; }
.cw-takeaway__card {
    display: flex; flex-direction: column; gap: 8px;
    padding: 22px 24px; border: 1px solid #eaecf0; border-radius: 12px;
    background: #fff; text-decoration: none; color: #0F2A44;
    text-align: left; font-family: inherit; cursor: pointer;
    transition: border-color .15s ease, transform .15s ease;
}
.cw-takeaway__card:hover { border-color: #D4A23E; transform: translateY(-1px); }
.cw-takeaway__card strong { font-size: 1.05rem; }
.cw-takeaway__card span { color: #475467; font-size: .9rem; line-height: 1.5; }
.cw-takeaway__card--print { background: #fffbf3; border-color: #f3d08a; }

/* Checklist */
.cw-checklist { padding: 32px 0; max-width: 860px; }
.cw-checklist__group { margin-bottom: 40px; }
.cw-checklist__group h2 { font-family: "Source Serif 4", serif; font-size: 1.4rem; color: #0F2A44; margin: 0 0 16px; padding-bottom: 8px; border-bottom: 2px solid #D4A23E; display: inline-block; }
.cw-checklist__items { list-style: none; padding: 0; margin: 0; display: grid; gap: 8px; }
.cw-checklist__item {
    padding: 12px 16px; border: 1px solid #eaecf0; border-radius: 10px; background: #fff;
    transition: background .12s ease, border-color .12s ease;
}
.cw-checklist__item:has(input:checked) {
    background: #f9fafb; border-color: #d0d5dd;
}
.cw-checklist__item:has(input:checked) .cw-checklist__label {
    text-decoration: line-through; color: #98a2b3;
}
.cw-checklist__item label {
    display: flex; gap: 12px; cursor: pointer; align-items: flex-start;
    line-height: 1.5;
}
.cw-checklist__item input[type="checkbox"] {
    margin-top: 3px; width: 18px; height: 18px; accent-color: #D4A23E; cursor: pointer;
}
.cw-checklist__label { color: #344054; font-size: .98rem; }
.cw-checklist__why { display: block; margin-top: 6px; margin-left: 30px; font-size: .84rem; color: #667085; font-style: italic; line-height: 1.45; }

/* Changelog */
.cw-changelog { padding: 32px 0; max-width: 760px; }
.cw-changelog__entry {
    position: relative; padding: 20px 24px 20px 72px;
    margin-bottom: 16px; background: #fff;
    border: 1px solid #eaecf0; border-radius: 12px;
}
.cw-changelog__date {
    position: absolute; top: 20px; left: 20px;
    font-weight: 700; color: #D4A23E; font-size: .82rem; text-transform: uppercase; letter-spacing: .04em;
    writing-mode: vertical-rl; text-orientation: mixed;
    white-space: nowrap;
}
@media (max-width: 680px) {
    .cw-changelog__entry { padding: 48px 20px 20px; }
    .cw-changelog__date { position: static; writing-mode: initial; display: block; margin-bottom: 10px; }
}
.cw-changelog__changes { list-style: none; padding: 0; margin: 0; display: grid; gap: 6px; }
.cw-changelog__changes li {
    padding-left: 20px; position: relative; color: #344054; line-height: 1.55; font-size: .95rem;
}
.cw-changelog__changes li::before {
    content: "+"; position: absolute; left: 0; top: 0;
    color: #D4A23E; font-weight: 700;
}

/* Print stylesheet
 * Journey hub should render as a clean one-page takeaway.
 * Strip navigation, CTAs, interactive elements; preserve content + structure. */
@media print {
    body { background: #fff !important; color: #000 !important; font-size: 11pt; }
    .cw-site-header, .cw-site-footer, .cw-side-rail,
    .cw-journey-hero__cta, .cw-journey-hero__summary,
    .cw-takeaway, .cw-disclosure .cw-btn,
    .cw-btn, .cw-calc-chips,
    [data-cw-calc], .cw-intake,
    .cw-stage-card__num, .cw-timeline__num::before { display: none !important; }

    .cw-journey-hero { padding: 0 !important; border: 0 !important; }
    .cw-journey-hero h1 { font-size: 22pt !important; }
    .cw-journey-hero .cw-dek { font-size: 11pt !important; max-width: none !important; }

    .cw-stat-strip { grid-template-columns: repeat(3, 1fr) !important; gap: 8pt !important; }
    .cw-stat { padding: 8pt !important; box-shadow: none !important; background: #f8f4e8 !important; }
    .cw-stat__v { font-size: 14pt !important; }

    section { break-inside: avoid; padding: 16pt 0 !important; border-top: 1px solid #ccc !important; }
    h2 { font-size: 14pt !important; page-break-after: avoid; }
    h3 { font-size: 11.5pt !important; page-break-after: avoid; }
    .cw-section-dek { font-size: 10pt !important; color: #333 !important; }

    /* Unfold all details for print */
    details, details[open] { display: block !important; }
    details summary { font-weight: 600; margin-bottom: 4pt; }
    details summary::after { display: none !important; }
    details p { display: block !important; }

    /* Links: show URL after anchor text */
    a[href]:after { content: " (" attr(href) ")"; font-size: 8pt; color: #666; }
    a[href^="#"]:after, a[href^="/"]:after { content: ""; }

    .cw-landmine { background: #fafafa !important; border-left: 2pt solid #999 !important; }
    .cw-stacking__bar { background: #eee !important; }
}

/* Disclosure */
.cw-disclosure {
    padding: 28px 32px; margin-top: 40px;
    background: #f9fafb; border: 1px solid #eaecf0; border-radius: 14px;
}
.cw-disclosure h2 {
    font-size: .82rem; text-transform: uppercase; letter-spacing: .08em;
    color: #667085; margin: 0 0 10px; font-weight: 700;
    font-family: Inter, sans-serif;
}
.cw-disclosure p { margin: 0; color: #344054; line-height: 1.55; font-size: .92rem; }

@media (prefers-reduced-motion: reduce) {
    .cw-stacking__seg { transition: none; }
    .cw-stacking__tt { transition: none; }
}

.cw-journey-stages { padding: 48px 0; }
.cw-journey-stages h2,
.cw-journey-provinces h2,
.cw-journey-programs h2 { font-family: "Source Serif 4", serif; font-size: 1.75rem; margin: 0 0 24px; color: #0F2A44; }

.cw-stage-grid { list-style: none; padding: 0; margin: 0; display: grid; gap: 16px; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); counter-reset: stage; }
.cw-stage-card {
    position: relative; padding: 28px 24px 24px; background: #fff; border: 1px solid #eaecf0;
    border-radius: 12px; transition: transform .15s ease, box-shadow .15s ease;
}
.cw-stage-card:hover { transform: translateY(-2px); box-shadow: 0 6px 20px rgba(10,37,64,.08); }
.cw-stage-card__num {
    position: absolute; top: -12px; left: 20px; background: #D4A23E; color: #fff;
    font-weight: 700; font-size: .8rem; padding: 4px 10px; border-radius: 999px; letter-spacing: .04em;
}
.cw-stage-card h3 { margin: 0 0 8px; font-size: 1.1rem; }
.cw-stage-card h3 a { color: #0F2A44; text-decoration: none; }
.cw-stage-card h3 a:hover { text-decoration: underline; }
.cw-stage-card p { margin: 0; font-size: .95rem; line-height: 1.5; color: #475467; }
.cw-stage-card[data-active="true"] { border-color: #D4A23E; background: #fffbf3; }

.cw-journey-provinces { padding: 32px 0; border-top: 1px solid #eaecf0; }
.cw-province-grid { display: grid; gap: 12px; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); }
.cw-province-card {
    display: flex; flex-direction: column; gap: 8px; padding: 20px;
    border: 1px solid #eaecf0; border-radius: 10px; text-decoration: none; color: #0F2A44;
    transition: border-color .15s ease, background .15s ease;
}
.cw-province-card:hover { border-color: #0F2A44; background: #f9fafb; }
.cw-province-card strong { font-size: 1.05rem; }
.cw-province-card span { color: #667085; font-size: .88rem; }
.cw-province-card--soon { opacity: .55; pointer-events: none; }

.cw-journey-glossary { padding: 48px 0; border-top: 1px solid #eaecf0; }
.cw-journey-glossary h2 { font-family: "Source Serif 4", serif; font-size: 1.75rem; margin: 0 0 24px; color: #0F2A44; }
.cw-glossary-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 8px; }
.cw-glossary-item { padding: 14px 18px; background: #fff; border: 1px solid #eaecf0; border-radius: 10px; }
.cw-glossary-item summary { cursor: pointer; font-weight: 600; color: #0F2A44; list-style: none; position: relative; padding-right: 24px; }
.cw-glossary-item summary::-webkit-details-marker { display: none; }
.cw-glossary-item summary::after { content: "+"; position: absolute; right: 0; top: 0; color: #667085; font-size: 1.2rem; }
.cw-glossary-item[open] summary::after { content: "−"; }
.cw-glossary-item p { margin: 12px 0 4px; color: #475467; line-height: 1.55; font-size: .92rem; }

.cw-journey-programs { padding: 48px 0; border-top: 1px solid #eaecf0; }
.cw-program-grid { display: grid; gap: 16px; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); }
.cw-program-card { padding: 24px; border: 1px solid #eaecf0; border-radius: 12px; background: #fff; }
.cw-program-card h3 { margin: 0 0 10px; font-size: 1.1rem; }
.cw-program-card h3 a { color: #0F2A44; text-decoration: none; }
.cw-program-card h3 a:hover { text-decoration: underline; }
.cw-program-card p { margin: 0; color: #475467; line-height: 1.5; }
.cw-flag { display: inline-block; margin-top: 10px; padding: 3px 8px; font-size: .72rem; background: #fff4e5; color: #92400e; border-radius: 4px; font-weight: 600; }

/* Intake */
.cw-intake { max-width: 720px; margin: 0 auto; padding: 40px 0 80px; }
.cw-intake h1 { font-family: "Source Serif 4", serif; font-size: 2rem; margin: 0 0 16px; color: #0F2A44; }
.cw-intake .cw-dek { color: #475467; margin-bottom: 32px; }
.cw-intake__q { border: 0; padding: 0; margin: 0 0 24px; }
.cw-intake__q legend { font-size: 1.25rem; font-weight: 600; color: #0F2A44; margin-bottom: 20px; display: block; }
.cw-intake__n { display: inline-block; padding: 4px 10px; background: #0F2A44; color: #fff; font-size: .72rem; font-weight: 700; letter-spacing: .04em; border-radius: 999px; margin-right: 10px; vertical-align: middle; }
.cw-intake__opts { display: flex; flex-direction: column; gap: 8px; }
.cw-intake__opts--multi { gap: 6px; }
.cw-intake__opt {
    display: flex; align-items: center; gap: 12px; padding: 14px 18px;
    border: 1px solid #eaecf0; border-radius: 10px; cursor: pointer;
    transition: all .12s ease; background: #fff;
}
.cw-intake__opt:hover { border-color: #0F2A44; background: #f9fafb; }
.cw-intake__opt input { margin: 0; accent-color: #0F2A44; }
.cw-intake__opt input:checked ~ span { font-weight: 600; }
.cw-intake__opt:has(input:checked) { border-color: #D4A23E; background: #fffbf3; }
.cw-intake__nav { display: flex; gap: 10px; margin-top: 24px; justify-content: flex-end; flex-wrap: wrap; }
.cw-intake__nav [data-intake-back] { margin-right: auto; }
.cw-intake__result {
    margin-top: 32px; padding: 32px; background: #0F2A44; color: #fff; border-radius: 16px;
}
.cw-intake__result h2 { margin: 0 0 12px; font-family: "Source Serif 4", serif; color: #fff; }
.cw-intake__result h3 { color: #f3d08a; margin: 24px 0 10px; font-size: 1rem; text-transform: uppercase; letter-spacing: .06em; }
.cw-intake__result a { color: #f3d08a; }

/* Stage page */
.cw-article-head { padding: 32px 0 24px; border-bottom: 1px solid #eaecf0; }
.cw-article-head h1 { font-family: "Source Serif 4", serif; font-size: clamp(1.75rem, 3vw, 2.5rem); margin: 0 0 12px; color: #0F2A44; line-height: 1.15; }
.cw-article-head .cw-dek { font-size: 1.05rem; color: #344054; max-width: 760px; margin: 0 0 16px; line-height: 1.55; }

.cw-stage-body { padding: 32px 0; max-width: 820px; }
.cw-stage-block { margin-bottom: 40px; }
.cw-stage-block h2 { font-family: "Source Serif 4", serif; font-size: 1.5rem; margin: 0 0 16px; color: #0F2A44; }
.cw-stage-block--do ol { padding-left: 20px; margin: 0; }
.cw-stage-block--do li { margin-bottom: 14px; line-height: 1.55; color: #344054; }
.cw-stage-block--avoid ul { padding-left: 20px; margin: 0; }
.cw-stage-block--avoid li { margin-bottom: 12px; line-height: 1.55; color: #344054; }

.cw-calc--inline {
    margin: 16px 0 24px; padding: 24px; border: 1px solid #eaecf0;
    border-radius: 14px; background: #fafbfc;
}
.cw-calc--inline .cw-calc__inputs {
    display: grid; gap: 20px 16px;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    align-items: start;
    margin-bottom: 24px;
}
/* Labels use a flex-column with fixed reservations for label text and hint.
 * Reserving 2.6em for text (2 lines) and 1.1em for hint means single-line
 * labels and empty-hint cells occupy the same vertical footprint as their
 * siblings, so every input aligns across the grid regardless of hint
 * presence or label wrap. */
.cw-calc--inline label {
    display: flex;
    flex-direction: column;
    font-size: .88rem; color: #344054; font-weight: 500;
}
.cw-calc--inline .cw-calc__label-row {
    display: flex; align-items: flex-start;
    min-height: 2.6em;
    line-height: 1.3;
    margin-bottom: 8px;
}
.cw-calc--inline input, .cw-calc--inline select {
    padding: 10px 12px; border: 1px solid #d0d5dd; border-radius: 8px; font-size: 1rem; background: #fff;
    font-family: inherit; width: 100%; box-sizing: border-box; height: 44px;
}
.cw-calc--inline input:focus, .cw-calc--inline select:focus {
    outline: none; border-color: #D4A23E; box-shadow: 0 0 0 3px rgba(201, 154, 59, 0.18);
}
.cw-calc--inline .cw-hint {
    font-size: .78rem; color: #667085; font-weight: 400; line-height: 1.35;
    min-height: 1.1em; margin-top: 8px;
}

/* Results: improve contrast and visual hierarchy */
.cw-calc--inline .cw-calc__results {
    padding: 20px 0 4px; border-top: 1px solid #e4e7ec; margin-top: 8px;
}
.cw-calc--inline .cw-calc__results h3 { font-family: "Source Serif 4", serif; font-size: 1.15rem; margin: 0 0 14px; color: #0F2A44; }
.cw-calc--inline .cw-calc__result-row {
    display: flex; justify-content: space-between; align-items: baseline; gap: 16px;
    padding: 12px 0; border-top: 1px solid #e4e7ec;
}
.cw-calc--inline .cw-calc__result-row:first-of-type { border-top: 0; }
.cw-calc--inline .cw-calc__result-label { color: #344054; font-size: .95rem; line-height: 1.4; }
.cw-calc--inline .cw-calc__result-value { font-weight: 600; color: #0F2A44; font-variant-numeric: tabular-nums; font-size: 1.05rem; }

/* Primary result: make it genuinely prominent, not just colour */
.cw-calc--inline .cw-calc__result-row:first-of-type {
    padding: 16px 20px; margin-bottom: 6px; border-radius: 10px;
    background: #fffbf3; border: 1px solid #f3d08a; border-top: 0;
}
.cw-calc--inline .cw-calc__result-row:first-of-type .cw-calc__result-label {
    font-weight: 600; color: #0F2A44; font-size: 1rem;
}
.cw-calc--inline .cw-calc__result-value--primary {
    font-family: "Source Serif 4", serif; font-size: 1.75rem; color: #D4A23E;
    letter-spacing: -.01em;
}
.cw-calc--inline .cw-calc__results h3 { font-family: "Source Serif 4", serif; font-size: 1.1rem; margin: 0 0 12px; color: #0F2A44; }
.cw-calc--inline .cw-calc__result-row {
    display: flex; justify-content: space-between; align-items: baseline; gap: 12px;
    padding: 10px 0; border-top: 1px solid #eaecf0;
}
.cw-calc--inline .cw-calc__result-row:first-of-type { border-top: 0; }
.cw-calc--inline .cw-calc__result-label { color: #475467; font-size: .92rem; }
.cw-calc--inline .cw-calc__result-value { font-weight: 600; color: #0F2A44; font-variant-numeric: tabular-nums; font-size: 1rem; }
.cw-calc--inline .cw-calc__result-value--primary {
    font-family: "Source Serif 4", serif; font-size: 1.5rem; color: #D4A23E;
}

.cw-province-calc { padding: 32px 0; border-top: 1px solid #eaecf0; }
.cw-province-calc h2 { font-family: "Source Serif 4", serif; font-size: 1.5rem; color: #0F2A44; margin: 0 0 16px; }

.cw-calc-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.cw-calc-chip {
    display: inline-block; padding: 8px 14px; border: 1px solid #d0d5dd; border-radius: 999px;
    text-decoration: none; color: #0F2A44; font-size: .9rem; background: #fff;
    transition: all .12s ease;
}
.cw-calc-chip:hover { border-color: #0F2A44; background: #f9fafb; }

.cw-form-card { padding: 20px; border: 1px solid #eaecf0; border-radius: 10px; margin-bottom: 12px; background: #fafbfc; }
.cw-form-card h3 { margin: 0 0 8px; font-size: 1rem; color: #0F2A44; }
.cw-form-card p { margin: 0 0 10px; color: #475467; line-height: 1.5; }
.cw-form-card a { color: #0F2A44; font-weight: 600; text-decoration: none; }
.cw-form-card a:hover { text-decoration: underline; }

.cw-stage-faq .cw-faq-item {
    border: 1px solid #eaecf0; border-radius: 10px; margin-bottom: 10px; background: #fff;
}
.cw-stage-faq .cw-faq-item summary {
    padding: 16px 20px; cursor: pointer; font-weight: 600; color: #0F2A44;
    list-style: none; position: relative; font-size: 1rem;
}
.cw-stage-faq .cw-faq-item summary::-webkit-details-marker { display: none; }
.cw-stage-faq .cw-faq-item summary::after {
    content: "+"; position: absolute; right: 20px; top: 16px; font-size: 1.35rem;
    font-weight: 400; color: #667085; transition: transform .15s ease;
}
.cw-stage-faq .cw-faq-item[open] summary::after { content: "−"; }
.cw-stage-faq .cw-faq-item p { padding: 0 20px 18px; margin: 0; color: #344054; line-height: 1.6; }

.cw-stage-next { margin-top: 48px; padding: 24px; background: #f0f7ff; border-radius: 12px; }
.cw-stage-next p { margin: 0 0 6px; color: #667085; font-size: .8rem; text-transform: uppercase; letter-spacing: .06em; font-weight: 600; }
.cw-stage-next a { font-family: "Source Serif 4", serif; font-size: 1.35rem; color: #0F2A44; text-decoration: none; font-weight: 600; }
.cw-stage-next a:hover { text-decoration: underline; }

/* Province/city pages */
.cw-province-highlights { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 16px; margin: 32px 0; }
.cw-highlight { padding: 20px 24px; background: #fffbf3; border: 1px solid #f3d08a; border-radius: 12px; }
.cw-highlight__v { display: block; font-family: "Source Serif 4", serif; font-size: 1.75rem; color: #0F2A44; font-weight: 700; line-height: 1.1; }
.cw-highlight__l { display: block; margin-top: 6px; color: #667085; font-size: .85rem; text-transform: uppercase; letter-spacing: .04em; font-weight: 600; }

.cw-province-programs, .cw-province-municipal, .cw-province-regional, .cw-province-federal { padding: 32px 0; border-top: 1px solid #eaecf0; }
.cw-province-programs h2, .cw-province-municipal h2, .cw-province-regional h2, .cw-province-federal h2 { font-family: "Source Serif 4", serif; font-size: 1.5rem; color: #0F2A44; margin: 0 0 20px; }

.cw-program-detail { margin-bottom: 32px; padding-bottom: 24px; border-bottom: 1px solid #eaecf0; }
.cw-program-detail:last-child { border-bottom: 0; }
.cw-program-detail h3 { font-size: 1.15rem; margin: 0 0 10px; color: #0F2A44; }
.cw-program-detail h4 { font-size: .85rem; text-transform: uppercase; letter-spacing: .06em; color: #667085; margin: 16px 0 8px; }
.cw-program-detail p { color: #344054; line-height: 1.55; }
.cw-program-detail ul { padding-left: 20px; color: #344054; }
.cw-program-detail ul li { margin-bottom: 6px; line-height: 1.5; }
.cw-form-link { margin-top: 14px !important; padding: 12px 16px; background: #f9fafb; border-radius: 8px; font-size: .95rem; }
.cw-form-link a { color: #0F2A44; font-weight: 600; }

.cw-muni-card { padding: 20px; border: 1px solid #eaecf0; border-radius: 10px; margin-bottom: 12px; }
.cw-muni-card h3 { margin: 0 0 8px; font-size: 1.1rem; }
.cw-muni-card h3 a { color: #0F2A44; text-decoration: none; }
.cw-muni-card h3 a:hover { text-decoration: underline; }
.cw-muni-card p { margin: 0; color: #475467; line-height: 1.5; }

.cw-regional-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 12px; }
.cw-regional-card { padding: 16px 20px; background: #fafbfc; border-radius: 10px; border: 1px solid #eaecf0; }
.cw-regional-card h4 { margin: 0 0 8px; font-size: 1rem; color: #0F2A44; }
.cw-regional-card p { margin: 0; color: #475467; font-size: .9rem; line-height: 1.5; }

.cw-program-body { padding: 32px 0; max-width: 820px; }

/* Journey index */
.cw-journey-index { list-style: none; padding: 0; margin: 24px 0; }
.cw-journey-index li { padding: 16px 20px; border: 1px solid #eaecf0; border-radius: 10px; margin-bottom: 8px; }
.cw-journey-index a { color: #0F2A44; text-decoration: none; font-weight: 600; font-size: 1.1rem; }

@media (max-width: 640px) {
    /* ---- Shared across every journey view ---- */
    .cw-journey { padding: 20px 0 60px; }

    /* Article head is used by stage, province, city, program, checklist, changelog */
    .cw-article-head { padding: 20px 0 18px; }
    .cw-article-head h1 { font-size: 1.55rem; line-height: 1.2; }
    .cw-article-head .cw-dek { font-size: .98rem; line-height: 1.55; }
    .cw-eyebrow { font-size: .72rem; }

    /* Byline wraps and tightens everywhere */
    .cw-byline { font-size: .8rem; flex-wrap: wrap; gap: 4px 10px; }
    .cw-byline__sep { display: none; }

    /* Breadcrumbs */
    .cw-crumbs { font-size: .8rem; margin-bottom: 12px; }

    /* Stage page */
    .cw-stage-body { padding: 20px 0; }
    .cw-stage-block { margin-bottom: 28px; }
    .cw-stage-block h2 { font-size: 1.25rem; margin-bottom: 12px; }
    .cw-stage-block--do ol, .cw-stage-block--avoid ul { padding-left: 18px; }
    .cw-stage-block--do li, .cw-stage-block--avoid li { margin-bottom: 10px; font-size: .95rem; }
    .cw-stage-faq .cw-faq-item summary { padding: 12px 16px; font-size: .95rem; }
    .cw-stage-faq .cw-faq-item summary::after { right: 14px; top: 10px; }
    .cw-stage-faq .cw-faq-item p { padding: 0 16px 14px; font-size: .92rem; }
    .cw-form-card { padding: 16px; }
    .cw-form-card h3 { font-size: .98rem; }
    .cw-stage-next { padding: 18px; margin-top: 28px; }
    .cw-stage-next a { font-size: 1.15rem; }

    /* Province / city page */
    .cw-province-highlights { grid-template-columns: 1fr; gap: 10px; margin: 18px 0 24px; }
    .cw-highlight { padding: 14px 18px; }
    .cw-highlight__v { font-size: 1.4rem; }
    .cw-highlight__l { font-size: .78rem; }
    .cw-province-programs, .cw-province-municipal,
    .cw-province-regional, .cw-province-federal,
    .cw-province-calc { padding: 24px 0; }
    .cw-province-programs h2, .cw-province-municipal h2,
    .cw-province-regional h2, .cw-province-federal h2,
    .cw-province-calc h2 { font-size: 1.25rem; margin-bottom: 14px; }
    .cw-program-detail { margin-bottom: 22px; padding-bottom: 18px; }
    .cw-program-detail h3 { font-size: 1rem; }
    .cw-program-detail h4 { font-size: .78rem; margin: 12px 0 6px; }
    .cw-program-detail p, .cw-program-detail ul { font-size: .92rem; }
    .cw-form-link { padding: 10px 12px; font-size: .88rem; }
    .cw-muni-card { padding: 14px 16px; }
    .cw-regional-grid { grid-template-columns: 1fr; gap: 8px; }
    .cw-regional-card { padding: 14px 16px; }

    /* Program deep-dive page */
    .cw-program-body { padding: 20px 0; }

    /* Checklist */
    .cw-checklist { padding: 20px 0; }
    .cw-checklist__group { margin-bottom: 28px; }
    .cw-checklist__group h2 { font-size: 1.2rem; }
    .cw-checklist__item { padding: 10px 14px; }
    .cw-checklist__label { font-size: .94rem; }
    .cw-checklist__why { font-size: .8rem; margin-left: 28px; }

    /* Changelog */
    .cw-changelog { padding: 20px 0; }
    .cw-changelog__entry { padding: 16px; margin-bottom: 12px; }
    .cw-changelog__changes li { font-size: .92rem; padding-left: 16px; }

    /* Intake */
    .cw-intake { padding: 24px 0 60px; }
    .cw-intake h1 { font-size: 1.55rem; }
    .cw-intake .cw-dek { font-size: .95rem; margin-bottom: 24px; }
    .cw-intake__q { margin-bottom: 20px; }
    .cw-intake__q legend { font-size: 1.05rem; margin-bottom: 14px; }
    .cw-intake__n { font-size: .66rem; padding: 3px 8px; }
    .cw-intake__opt { padding: 12px 14px; font-size: .95rem; }
    .cw-intake__result { padding: 22px; margin-top: 24px; }

    /* Inline calculator: single column labels */
    .cw-calc--inline { padding: 16px; }
    .cw-calc--inline .cw-calc__inputs { grid-template-columns: 1fr; gap: 14px; }
    .cw-calc--inline .cw-calc__label-row { min-height: auto; margin-bottom: 6px; }
    .cw-calc--inline .cw-calc__result-value--primary { font-size: 1.45rem; }
    .cw-calc--inline .cw-calc__result-row { padding: 10px 0; }
    .cw-calc--inline .cw-calc__result-row:first-of-type { padding: 14px 16px; }

    /* Hub-specific hero tweaks */
    .cw-journey-hero { padding: 20px 0 24px; }
    .cw-journey-hero h1 { font-size: 1.75rem; }
    .cw-journey-hero .cw-dek { font-size: .98rem; }

    .cw-intake__nav { gap: 8px; }
    .cw-btn { padding: 11px 16px; font-size: .9rem; }

    /* Container: tighter horizontal padding on very small screens */
    .cw-container { padding-left: 16px; padding-right: 16px; }

    /* Tighten every section on mobile */
    .cw-whats-new, .cw-journey-stages, .cw-journey-provinces,
    .cw-journey-programs, .cw-journey-flows, .cw-journey-stacking,
    .cw-landmines, .cw-hub-faq, .cw-journey-glossary,
    .cw-sources, .cw-takeaway { padding: 28px 0; }
    .cw-journey-hero { padding-bottom: 20px; }

    /* Decision flow: collapse indent aggressively on mobile.
     * Desktop has nested 24+16=40px per depth which compounds.
     * Mobile reduces to 10+6=16px per depth for usable cards.
     * Flow card padding drops to fit narrow columns. */
    .cw-flow { padding: 16px; margin-bottom: 28px; border-radius: 12px; }
    .cw-flow h3 { font-size: 1.15rem; }
    .cw-flow__dek { font-size: .92rem; margin-bottom: 16px; }
    .cw-flow__card { padding: 12px 14px; font-size: .94rem; }
    .cw-flow__card--answer { padding: 14px 16px; }
    .cw-flow__card--answer strong { font-size: 1rem; }
    .cw-flow__card--answer p { font-size: .88rem; }
    .cw-flow__children { padding-left: 10px; margin-left: 6px; }
    .cw-flow__branch { margin: 8px 0 8px 6px; font-size: .66rem; padding: 2px 9px; }

    /* Timeline connector realigned for smaller mobile badge (34px) */
    .cw-timeline__node::before { left: 16px; width: 2px; }

    /* Stat strip already handled at 720px breakpoint, tighten further under 400px */
    .cw-stat { padding: 16px 18px; }
    .cw-stat__v { font-size: 1.55rem; }

    /* Stacking tooltip: wrap instead of overflow */
    .cw-stacking__tt { white-space: normal; max-width: 200px; width: max-content; }
    .cw-stacking__bar { height: 36px; }
    .cw-stacking__label strong { font-size: .98rem; }
    .cw-stacking__label span { font-size: .82rem; }
    .cw-stacking__legend { font-size: .76rem; gap: 8px 12px; }

    /* Glossary: single column, tighter */
    .cw-glossary-grid { grid-template-columns: 1fr; gap: 6px; }
    .cw-glossary-item { padding: 12px 16px; }
    .cw-glossary-item summary { font-size: .95rem; }
    .cw-glossary-item p { font-size: .88rem; }

    /* CTAs: stack full-width on narrow screens */
    .cw-journey-hero__cta { gap: 8px; margin-top: 18px; }
    .cw-journey-hero__cta .cw-btn { width: 100%; justify-content: center; }

    /* H2s get a hair smaller */
    .cw-whats-new h2, .cw-journey-stages h2, .cw-journey-provinces h2,
    .cw-journey-programs h2, .cw-journey-flows h2, .cw-journey-stacking h2,
    .cw-landmines h2, .cw-hub-faq h2, .cw-journey-glossary h2,
    .cw-sources h2, .cw-takeaway h2 { font-size: 1.35rem; margin-bottom: 14px; }
    .cw-section-dek { font-size: .92rem; }

    /* Side-rail: horizontal scroll instead of wrap, save vertical space */
    .cw-side-rail { padding: 12px 14px; margin: 12px 0 20px; }
    .cw-side-rail__title { font-size: .66rem; margin-bottom: 6px; }
    .cw-side-rail ul {
        flex-wrap: nowrap; overflow-x: auto; -webkit-overflow-scrolling: touch;
        gap: 6px; padding-bottom: 2px;
        scrollbar-width: none;
    }
    .cw-side-rail ul::-webkit-scrollbar { display: none; }
    .cw-side-rail li { flex: 0 0 auto; }
    .cw-side-rail li a { padding: 5px 10px; font-size: .8rem; white-space: nowrap; }

    /* Timeline: shrink the number badge and margin */
    .cw-timeline__node { grid-template-columns: 44px 1fr; gap: 12px; padding: 14px 0; }
    .cw-timeline__num { width: 34px; height: 34px; font-size: .82rem; }
    .cw-timeline__node::before { left: 23px; top: 48px; }
    .cw-timeline__head h3 { font-size: 1rem; }
    .cw-timeline__duration { font-size: .72rem; padding: 2px 8px; }
    .cw-timeline__lbl { min-width: auto; display: block; margin-bottom: 2px; }

    /* Callouts tighter */
    .cw-callout { padding: 14px 16px; }
    .cw-callout h3 { font-size: .95rem; }
    .cw-callout p { font-size: .88rem; }
    .cw-whats-new__grid { gap: 10px; }

    /* Landmines */
    .cw-landmine { padding: 16px; grid-template-columns: 36px 1fr; gap: 12px; }
    .cw-landmine__rank { width: 30px; height: 30px; font-size: .85rem; }
    .cw-landmine h3 { font-size: .98rem; }
    .cw-landmine p { font-size: .9rem; }

    /* Stacking */
    .cw-stacking__bar { height: 32px; }
    .cw-stacking__tt { white-space: normal; max-width: 180px; font-size: .72rem; }

    /* Provinces — ensure cards fit mobile cleanly */
    .cw-province-grid { grid-template-columns: 1fr 1fr; gap: 8px; }
    .cw-province-grid--featured { grid-template-columns: 1fr; }
    .cw-province-card { padding: 14px 16px; }
    .cw-province-card--large { padding: 20px; }

    /* Programs */
    .cw-program-grid { gap: 10px; }
    .cw-program-card { padding: 18px 20px; }

    /* Hub FAQ */
    .cw-hub-faq .cw-faq-item summary { padding: 14px 18px; font-size: .95rem; }
    .cw-hub-faq .cw-faq-item summary::after { right: 16px; top: 12px; }
    .cw-hub-faq .cw-faq-item p { padding: 0 18px 14px; font-size: .92rem; }

    /* Takeaway cards: stack */
    .cw-takeaway__grid { grid-template-columns: 1fr; }
    .cw-takeaway__card { padding: 18px 20px; }

    /* Sources list */
    .cw-sources__group ul { grid-template-columns: 1fr; gap: 2px; }
}

@media (prefers-reduced-motion: reduce) {
    .cw-stage-card, .cw-province-card, .cw-intake__opt, .cw-btn { transition: none !important; }
}
