/* Climate Policy Rollbacks — page-specific styles */

        /* Timeline */
        .timeline {
            position: relative;
            padding-left: 2.5rem;
            margin-top: 1rem;
        }
        .timeline::before {
            content: '';
            position: absolute;
            left: 8px;
            top: 0;
            bottom: 0;
            width: 2px;
            background: var(--clr-border);
        }
        .tl-year {
            font-size: 0.72rem;
            font-weight: 700;
            letter-spacing: 0.1em;
            text-transform: uppercase;
            color: var(--clr-primary);
            padding: 1.2rem 0 0.6rem;
            position: relative;
            border-left: 2px solid var(--clr-primary);
            margin-left: -2.5rem;
            padding-left: 2.5rem;
        }
        .tl-item {
            position: relative;
            padding: 0.8rem 0 1.2rem;
            cursor: pointer;
            transition: background 0.2s;
            border-radius: 8px;
            padding-right: 0.5rem;
        }
        .tl-item:hover {
            background: var(--clr-bg);
        }
        .tl-dot {
            position: absolute;
            left: -2.15rem;
            top: 1.15rem;
            width: 10px;
            height: 10px;
            border-radius: 50%;
            background: var(--clr-danger);
            border: 2px solid white;
            box-shadow: 0 0 0 2px var(--clr-border);
            z-index: 1;
        }
        .tl-date {
            font-size: 0.7rem;
            font-weight: 600;
            color: var(--clr-text-muted);
            letter-spacing: 0.04em;
            margin-bottom: 0.2rem;
        }
        .tl-summary {
            font-size: 0.95rem;
            font-weight: 600;
            color: var(--clr-text);
            line-height: 1.4;
        }
        .tl-summary::after {
            content: ' +';
            color: var(--clr-text-muted);
            font-weight: 400;
            font-size: 0.85rem;
        }
        .tl-item.open .tl-summary::after {
            content: ' \2212';
        }
        .tl-detail {
            max-height: 0;
            overflow: hidden;
            transition: max-height 0.4s ease, opacity 0.3s ease, margin 0.3s ease;
            opacity: 0;
            margin-top: 0;
        }
        .tl-item.open .tl-detail {
            max-height: 500px;
            opacity: 1;
            margin-top: 0.6rem;
        }
        .tl-detail p {
            font-size: 0.85rem;
            color: var(--clr-dark-text);
            line-height: 1.7;
            margin-bottom: 0.4rem;
        }
        .tl-detail .tl-why {
            font-size: 0.82rem;
            color: var(--clr-danger-dark);
            line-height: 1.6;
            margin-top: 0.5rem;
            padding-left: 0.8rem;
            border-left: 2px solid var(--clr-danger-border);
        }
        .tl-detail .tl-why strong {
            color: var(--clr-danger-deeper);
        }
        .tl-detail a {
            font-size: 0.78rem;
            font-weight: 600;
            color: var(--clr-primary);
        }
        .tl-kicker {
            font-size: 0.8rem;
            font-weight: 600;
            font-style: italic;
            color: var(--clr-text-secondary);
            margin-top: 0.5rem;
        }
        /* Flip-flop scrollable carousel */
        .ff-carousel-wrap {
            position: relative;
            margin-top: 1.2rem;
            overflow-x: auto;
            overflow-y: hidden;
            cursor: grab;
            -webkit-overflow-scrolling: touch;
            scrollbar-width: thin;
            scrollbar-color: var(--clr-border-mid) transparent;
        }
        .ff-carousel-wrap:active { cursor: grabbing; }
        .ff-carousel-wrap::-webkit-scrollbar { height: 6px; }
        .ff-carousel-wrap::-webkit-scrollbar-track { background: transparent; }
        .ff-carousel-wrap::-webkit-scrollbar-thumb { background: var(--clr-border-mid); border-radius: 3px; }
        .ff-carousel-wrap::-webkit-scrollbar-thumb:hover { background: var(--clr-text-muted); }
        .ff-carousel {
            display: flex;
            gap: 1.2rem;
            padding: 0.5rem 0 1.2rem;
            width: max-content;
        }
        .flipflop-card {
            flex: 0 0 340px;
            background: var(--clr-white);
            border-radius: 12px;
            box-shadow: 0 2px 12px rgba(0,0,0,0.06);
            overflow: hidden;
        }
        .flipflop-header {
            display: flex;
            align-items: center;
            justify-content: space-between;
            padding: 0.8rem 1.1rem 0.4rem;
        }
        .flipflop-header h3 {
            font-size: 0.92rem;
            font-weight: 600;
            color: var(--clr-text);
            margin: 0;
        }
        .ff-who {
            font-size: 0.62rem;
            font-weight: 700;
            letter-spacing: 0.06em;
            text-transform: uppercase;
            padding: 0.15rem 0.5rem;
            border-radius: 99px;
            background: var(--clr-bg-subtle);
            color: var(--clr-text-secondary);
        }
        .flipflop-pair {
            display: flex;
            flex-direction: column;
        }
        .flipflop-side {
            padding: 0.7rem 1.1rem;
            font-size: 0.82rem;
            line-height: 1.55;
        }
        .flipflop-side.then-side {
            background: var(--clr-danger-bg);
            border-left: 3px solid var(--clr-danger);
            color: var(--clr-danger-deep);
        }
        .flipflop-side.now-side {
            background: var(--clr-success-bg);
            border-left: 3px solid var(--clr-success);
            color: var(--clr-success-text);
        }
        .flipflop-side .ff-label {
            font-size: 0.65rem;
            font-weight: 700;
            letter-spacing: 0.06em;
            text-transform: uppercase;
            margin-bottom: 0.15rem;
        }
        .flipflop-side.then-side .ff-label { color: var(--clr-danger); }
        .flipflop-side.now-side .ff-label { color: var(--clr-success); }
        .ff-arrow {
            text-align: center;
            font-size: 1rem;
            color: var(--clr-text-muted);
            padding: 0.1rem 0;
        }
        .flipflop-kicker {
            font-size: 0.78rem;
            font-weight: 600;
            font-style: italic;
            color: var(--clr-text-secondary);
            padding: 0.5rem 1.1rem 0.4rem;
        }
        .flipflop-footer {
            padding: 0.3rem 1.1rem 0.8rem;
            font-size: 0.72rem;
            color: var(--clr-text-secondary);
            line-height: 1.5;
        }
        .flipflop-footer a {
            color: var(--clr-primary);
            font-weight: 600;
        }

        @media (max-width: 768px) {
            .timeline { padding-left: 2rem; }
            .tl-dot { left: -1.65rem; }
            .tl-year { margin-left: -2rem; padding-left: 2rem; }
            aside { width: 100% !important; position: static !important; order: -1; }
            .flipflop-card { flex: 0 0 280px; }
            .ff-carousel { animation-duration: var(--marquee-duration, 90s); }
        }
