/* Container for 2 synced rows */
            .steps { margin-bottom: 1rem; }

            /* Top row = your existing arrows (kept as-is) */
            .step-menu {
                display: flex;
                flex-wrap: wrap;
                padding: 0;
                list-style: none;
                justify-content: center;
                margin: 0 0 .25rem 0;
            }
            .step-menu li {
                position: relative;
                flex: 1 1 auto;
                min-width: 120px;
                max-width: 160px;   /* match date row to keep columns aligned */
                text-align: center;
                background: #e9ecef;
                color: #6c757d;
                font-weight: 600;
                padding: .8rem 1rem 1rem 2rem;
                margin: .25rem;
                transition: all .3s ease;
                z-index: 1;
            }
            .step-menu li:before {
                content: '';
                position: absolute;
                border: 27px solid transparent;
                border-left-color: #fff;
                top:0; right: -60px;
            }
            .step-menu li:after {
                content: '';
                position: absolute;
                border: 26px solid transparent;
                border-left-color: #ddd;
                top:0; right: -50px;
            }

            /* keep your special paddings so arrows look right */
            .step-menu li:nth-child(1){ z-index:700; margin-left:0; padding-left:50px; }
            .step-menu li:nth-child(2){ z-index:600; }
            .step-menu li:nth-child(3){ z-index:500; }
            .step-menu li:nth-child(4){ z-index:400; }
            .step-menu li:nth-child(5){ z-index:300; }
            .step-menu li:nth-child(6){ z-index:200; }
            .step-menu li:nth-child(7){ z-index:100; padding-right:10px; }
            .step-menu li:nth-child(7):after,
            .step-menu li:nth-child(7):before { border:none; }

            /* State colours (same as you had) */
            .step-menu li.current  { background:#97846E; color:#EADFD7; }
            .step-menu li.current:after { border-left-color:#97846E; }
            .step-menu li.pending  { background:#e9ecef; color:#055160; }
            .step-menu li.pending:after { border-left-color:#e9ecef; }
            .step-menu li.complete { background:#d1e7dd; color:#0f5132; }
            .step-menu li.complete:after { border-left-color:#d1e7dd; }
            .step-menu li.upcoming { background:#dee2e6; color:#495057; }
            .step-menu li.upcoming:after { border-left-color:#dee2e6; }

            /* Bottom row = dates */
            .step-dates{
                display:flex;
                flex-wrap:wrap;
                padding:0;
                list-style:none;
                justify-content:center;
                margin: 0;
            }
            .step-dates li{
                flex: 1 1 auto;
                min-width: 120px;
                max-width: 160px;   /* == step-menu li */
                text-align:center;
                margin: .25rem;
                padding: .25rem 1rem .5rem 1rem; /* mirror left pad so column widths match */
                font-size: .95rem;
                line-height: 1.2;
                white-space: nowrap;
            }
            .step-dates li:nth-child(1){ padding-left:50px; }
            .step-dates li:nth-child(7){ padding-right:10px; }

            /* Date colours by state */
            .step-dates li.complete { color:#0f5132; }
            .step-dates li.current  { color:#7c6a57; font-weight:600; }
            .step-dates li.pending,
            .step-dates li.upcoming { color:#6c757d; }

            /* Mobile: stack nicely */
            @media (max-width: 1399px) {
                .step-menu li, .step-dates li { flex: 1 1 100%; max-width: 100%; }
                .step-menu li, .step-dates li { padding-left: 1rem; padding-right: 1rem; }

                .step-menu li::before,
                .step-menu li::after {
                    content: none !important;   /* removes the generated box */
                    /* fallback (older browsers): */
                    display: none !important;
                    border: 0 !important;
                }
            }

            .step-menu li.complete.current {
                background-color: #d1e7dd; /* keep the 'complete' green */
                color: #0f5132;
                box-shadow: 0 0 0.5rem rgba(99, 90, 74, .35);
                border: 2px solid #97846E; /* subtle emphasis */
            }

            /* inline date under each arrow on mobile */
            .date-inline { display:block; }

            @media (max-width: 1399px) {
                .step-menu li {
                    flex: 1 1 100%;
                    margin: 0.5rem 0;
                }
            }

            /* Countdown container */
            .countdown{
                --number-color: #635A4A;
                --text-color: #D9CCC1;
                --dot-color: #635A4A;
                --dot-color-remaining: #D9CCC1;
                --dot-color-active: green;
                font-family: system-ui, sans-serif;
                display: grid;
                grid-template-columns: repeat(4, 1fr);
                gap: 1rem;
                width: min(40rem, 100%);
                margin-inline: auto;
                container: inline-size;
                > .part {
                    aspect-ratio: 1/1;
                    display: grid;
                    place-items: center;
                    > .remaining {
                        grid-area: 1/1;
                        color: hsl(0 0% 100%);
                        display: grid;
                        text-align: center;
                        font-size: 3cqi;
                        >.number {
                            color: var(--number-color);
                            line-height: 5rem;
                        }
                        >.text {
                            color: var(--text-color);
                            text-transform: uppercase;
                            font-size: 0.2em;
                            font-weight: bold;
                        }
                    }
                    > .dot-container {
                        grid-area: 1/1;
                        height: 100%;
                        width: 4%;
                        rotate: calc(360deg / var(--dots) * var(--dot-idx));
                        > .dot {
                            width: 100%;
                            aspect-ratio: 1/1;
                            background-color: var(--dot-color);
                            border-radius: 50%;
                            transition: background-color .25s;
                            &[data-active=true]{
                                background-color: var(--dot-color-remaining);
                                &[data-lastactive=true]{
                                    background-color: var(--dot-color-active);
                                }
                            }
                        }
                    }
                }
            }

            /* Timeline base */
            .timeline {
                position: relative;
                padding: 1rem 0;
            }
            .timeline::before {
                content: '';
                position: absolute;
                top: 0; bottom: 0; left: 50%;
                width: 2px; background: #e9ecef;
                transform: translateX(-50%);
            }

            .timeline-item {
                position: relative;
                display: flex;
                margin: 1rem 0;
            }
            .timeline-badge {
                position: absolute;
                left: 50%; transform: translate(-50%, 0);
                z-index: 2;
                background: #fff; border: 2px solid #dee2e6; color: #6c757d;
                width: 38px; height: 38px; border-radius: 50%;
                display: grid; place-items: center;
            }
            .timeline-panel {
                width: 46%;
                background: #fff;
                border: 1px solid #e9ecef;
                border-radius: 0;
                padding: .75rem .9rem;
                box-shadow: 0 2px 6px rgba(16,24,40,.04);
            }

            /* Left/right alternation on xl+ */
            @media (min-width: 1200px) {
                .timeline-item:nth-child(odd)  .timeline-panel { margin-right: auto; }
                .timeline-item:nth-child(even) .timeline-panel { margin-left:  auto; }
            }

            /* Pinned accent */
            .timeline-item.pinned .timeline-badge {
                border-color: #f7e7a7;
                background: #fff8dc;
                color: #856404;
            }

            /* Mobile: single column, line on the left */
            @media (max-width: 1199.98px) {
                .timeline::before { left: 20px; transform: none; }
                .timeline-badge { left: 20px; transform: none; }
                .timeline-panel { width: 100%; margin-left: 56px; }
            }
            /* base */
            .timeline-panel {
                border-left: 3px solid transparent;
                background: #fff;
            }

            /* incoming (council -> you) */
            .timeline-panel.type-incoming {
                border-left-color: var(--bs-primary);
                background-image: linear-gradient(to right, rgba(13,110,253,.06), rgba(13,110,253,0));
            }

            /* outgoing (you -> council) */
            .timeline-panel.type-outgoing {
                border-left-color: var(--bs-success);
                background-image: linear-gradient(to right, rgba(25,135,84,.07), rgba(25,135,84,0));
            }

            /* notes */
            .timeline-panel.type-note {
                border-left-color: var(--bs-warning);
                background-image: linear-gradient(to right, rgba(255,193,7,.10), rgba(255,193,7,0));
            }

            /* optional: tint the badge ring to match (if you added type-* to .timeline-item too) */
            .timeline-item.type-incoming .timeline-badge { border-color: rgba(13,110,253,.35); }
            .timeline-item.type-outgoing .timeline-badge { border-color: rgba(25,135,84,.35); }
            .timeline-item.type-note     .timeline-badge { border-color: rgba(255,193,7,.45); }