    /*
     * Public Page v2 - Contribua Eleitoral (Stage 18)
     * Single stylesheet for landing /{slug}, checkout /{slug}/doar, status /doacoes/{ref}
     * Design system: Inter + Sora, paletas do CampaignTheme preservadas via --campaign-*.
     */

    /* ============================================================
     * 1. Tokens e reset leve
     * ============================================================ */
    :root {
        --v2-bg: #fafafb;
        --v2-paper: #ffffff;
        --v2-ink: #0f172a;
        --v2-ink-soft: #1f2937;
        --v2-muted: #64748b;
        --v2-muted-2: #94a3b8;
        --v2-border: #e2e8f0;
        --v2-border-strong: #cbd5e1;
        --v2-success: #15803d;
        --v2-danger: #b42318;
        --v2-warning: #b45309;
        --v2-info: #1f4f76;

        --v2-radius-sm: 10px;
        --v2-radius-md: 16px;
        --v2-radius-lg: 24px;
        --v2-radius-pill: 999px;

        --v2-shadow-sm: 0 1px 2px rgba(15, 23, 42, .06);
        --v2-shadow-md: 0 8px 24px rgba(15, 23, 42, .08);
        --v2-shadow-lg: 0 20px 48px rgba(15, 23, 42, .12);

        --v2-focus: 0 0 0 3px color-mix(in srgb, var(--campaign-dark, #0092ca) 35%, transparent);

        /* Paletas do CampaignTheme sao injetadas inline pela view na tag <style>
         * com fallback defensivo aqui: */
        --campaign-dark: #0092ca;
        --campaign-light: #5fb8dc;
        --campaign-surface: #F2F2F2;
        --campaign-name: #0b3b5c;
    }

    *, *::before, *::after { box-sizing: border-box; }
    html {
        text-size-adjust: 100%;
        -webkit-text-size-adjust: 100%;
        width: 100%;
    }

    body.v2-body {
        margin: 0;
        width: 100%;
        min-width: 100%;
        background: var(--v2-bg);
        color: var(--v2-ink);
        font-family: 'Inter', system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, sans-serif;
        font-size: 16px;
        line-height: 1.55;
        -webkit-font-smoothing: antialiased;
        -moz-osx-font-smoothing: grayscale;
        overflow-x: hidden;
        display: block;
    }

    body.v2-is-submitting {
        overflow: hidden;
    }

    a { color: var(--campaign-dark); text-decoration: none; }
    a:hover { text-decoration: underline; }

    img { max-width: 100%; display: block; }

    button {
        font-family: inherit;
        font-size: inherit;
        cursor: pointer;
        border: 0;
        background: transparent;
        color: inherit;
    }

    :focus-visible {
        outline: none;
        box-shadow: var(--v2-focus);
        border-radius: var(--v2-radius-sm);
    }

    /* ============================================================
     * 2. Header / Footer do layout
     * ============================================================ */
    .v2-header {
        width: 100%;
        background: var(--v2-paper);
        border-bottom: 1px solid var(--v2-border);
        padding: 14px 20px;
        display: flex;
        align-items: center;
        justify-content: center;
        position: sticky;
        top: 0;
        z-index: 40;
    }

    .v2-logo {
        display: inline-flex;
        align-items: center;
        justify-content: center;
    }

    .v2-logo img { height: 36px; width: auto; }

    .v2-logo--themed .v2-logo-svg {
        display: block;
        height: 36px;
        width: auto;
    }

    .v2-logo-fill-dark {
        fill: var(--campaign-dark, #283f7f);
        fill-rule: evenodd;
    }

    .v2-logo-fill-light {
        fill: var(--campaign-light, #0ca9d8);
        fill-rule: evenodd;
    }

    .v2-main { width: 100%; padding: 20px 0 0; min-height: calc(100vh - 120px); }

    .v2-preview-banner {
        width: 100%;
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 10px;
        flex-wrap: wrap;
        padding: 10px 16px;
        border-bottom: 1px solid color-mix(in srgb, var(--v2-warning) 35%, #fff);
        background: color-mix(in srgb, var(--v2-warning) 14%, #fff);
        color: color-mix(in srgb, var(--v2-warning) 85%, #111827);
        font-size: 13px;
        line-height: 1.35;
        text-align: center;
    }

    .v2-preview-banner strong {
        font-weight: 800;
    }

    @media (max-width: 768px) {
        .v2-preview-banner {
            font-size: 12px;
            padding: 9px 12px;
        }
    }

    .v2-footer {
        width: 100%;
        margin-top: 40px;
        background: #0f172a;
        color: #cbd5e1;
        padding: 28px 20px;
    }

    .v2-footer-inner {
        max-width: 1200px;
        margin: 0 auto;
        text-align: center;
    }

    .v2-footer-text { font-size: 14px; margin: 0 0 6px; color: #e2e8f0; }
    .v2-footer-meta { font-size: 13px; margin: 0; color: #94a3b8; }
    .v2-footer-meta a { color: #cbd5e1; }

    /* ============================================================
     * 3. Utilitarios
     * ============================================================ */
    .v2-container {
        width: min(1400px, 92%);
        margin-inline: auto;
    }

    .v2-tabular { font-variant-numeric: tabular-nums; }

    .v2-chip {
        display: inline-flex;
        align-items: center;
        gap: 6px;
        padding: 6px 12px;
        border-radius: var(--v2-radius-pill);
        background: color-mix(in srgb, var(--campaign-surface) 85%, #fff);
        border: 1px solid var(--v2-border);
        color: var(--v2-ink-soft);
        font-size: 13px;
        font-weight: 600;
        line-height: 1.2;
    }

    .v2-pill {
        display: inline-flex;
        align-items: center;
        gap: 8px;
        padding: 8px 14px;
        border-radius: var(--v2-radius-pill);
        background: rgba(255, 255, 255, .95);
        color: #0f172a;
        font-size: 12px;
        font-weight: 800;
        text-transform: uppercase;
        letter-spacing: .04em;
        backdrop-filter: blur(4px);
    }

    .v2-pill::before {
        content: "";
        width: 9px; height: 9px;
        border-radius: 50%;
        background: var(--pill-dot, var(--v2-success));
        box-shadow: 0 0 0 4px rgba(255, 255, 255, .55);
    }

    .v2-card {
        background: var(--v2-paper);
        border-radius: var(--v2-radius-lg);
        box-shadow: var(--v2-shadow-md);
        padding: 22px;
    }

    /* ============================================================
     * 4. LANDING - /{slug}
     * ============================================================ */
    .v2-landing {
        padding-bottom: 90px;
    }

    .v2-landing > .v2-container {
        width: 100%;
        max-width: 1440px;
        padding-inline: clamp(16px, 4vw, 56px);
    }

    .v2-layout {
        display: grid;
        /* col-9 / col-3 ate o breakpoint grande sobrescrever. */
        grid-template-columns: minmax(0, 3fr) minmax(300px, 420px);
        gap: 24px;
        align-items: start;
        min-width: 0;
    }

    @media (min-width: 1280px) {
        .v2-container {
            width: min(1800px, 80%);
        }

        .v2-landing > .v2-container {
            width: 100%;
            max-width: 1800px;
            padding-inline: clamp(24px, 3vw, 72px);
        }

        .v2-layout {
            /* Equivalente a col-9 (75%) + col-3 (25%) do Bootstrap. */
            grid-template-columns: minmax(0, 3fr) minmax(320px, 440px);
            gap: 28px;
        }

        .v2-footer-inner {
            max-width: 1800px;
        }
    }

    .v2-sidebar {
        position: sticky;
        top: 84px;
        display: grid;
        gap: 18px;
        min-width: 0;
    }

    .v2-main-col,
    .v2-card {
        min-width: 0;
    }

    /* Hero */
    .v2-hero {
        position: relative;
        overflow: hidden;
        border-radius: var(--v2-radius-lg);
        background: linear-gradient(135deg, color-mix(in srgb, var(--campaign-dark) 82%, #0f172a), var(--campaign-light));
        aspect-ratio: 1600 / 600;
    }

    .v2-hero-img {
        width: 100%; height: 100%;
        object-fit: cover;
        object-position: center 30%;
        display: block;
    }

    .v2-hero-status {
        position: absolute;
        top: 14px; right: 14px;
        z-index: 2;
    }

    .v2-hero-overlay {
        position: absolute;
        inset: auto 0 0 0;
        height: 60%;
        background: linear-gradient(180deg, rgba(0, 0, 0, 0), rgba(0, 0, 0, .45));
    }

    .v2-no-hero-accent {
        height: 22px;
        border-radius: var(--v2-radius-lg);
        background: linear-gradient(90deg, color-mix(in srgb, var(--campaign-dark) 30%, #fff), color-mix(in srgb, var(--campaign-light) 30%, #fff));
    }

    .v2-main-col--no-hero .v2-identity {
        margin-top: 10px;
    }

    /* Identity card */
    .v2-identity {
        margin-top: -56px;
        position: relative;
        z-index: 3;
        padding: 28px 32px 28px;
    }

    .v2-identity-top {
        display: grid;
        grid-template-columns: 168px 1fr;
        gap: 24px;

    }

    .v2-avatar {
        width: 168px;
        height: 168px;
        border-radius: 50%;
        overflow: hidden;
        border: 4px solid var(--v2-paper);
        box-shadow: var(--v2-shadow-lg);
        background: #fff;
    }

    .v2-avatar img { width: 100%; height: 100%; object-fit: cover; }

    .v2-name {
        margin: 0 0 6px;
        font-family: 'Sora', 'Inter', sans-serif;
        font-weight: 700;
        font-size: clamp(1.9rem, 1.3rem + 2vw, 2.8rem);
        line-height: 1.15;
        color: var(--campaign-name);
        letter-spacing: -.015em;
    }

    .v2-headline {
        margin: 0 0 12px;
        color: var(--v2-muted);
        font-size: 15px;
        line-height: 1.55;
    }

    .v2-badges {
        display: flex;
        gap: 8px;
        flex-wrap: wrap;
        margin-top: 6px;
    }

    .v2-social-box {
        margin-top: 8px;
        display: flex;
        align-items: center;
        gap: 8px;
        flex-wrap: wrap;
    }

    .v2-social-link {
        width: 34px;
        height: 34px;
        border-radius: 999px;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        border: 1px solid var(--v2-border);
        background: #fff;
        text-decoration: none;
        transition: transform .15s ease, border-color .15s ease, box-shadow .15s ease;
    }

    .v2-social-link:hover {
        transform: translateY(-1px);
        border-color: var(--campaign-dark);
        box-shadow: var(--v2-shadow-sm);
    }

    .v2-social-link img {
        width: 22px;
        height: 22px;
        object-fit: contain;
        display: block;
    }

    /* Stats / progresso */
    .v2-stats {
        margin-top: 18px;
        padding: 22px;
        display: grid;
        gap: 18px;
    }

    .v2-stats-grid {
        display: grid;
        grid-template-columns: repeat(3, 1fr);
        gap: 14px;
    }

    .v2-stat-label {
        display: block;
        font-size: 12px;
        text-transform: uppercase;
        letter-spacing: .06em;
        color: var(--v2-muted);
        font-weight: 600;
        margin-bottom: 4px;
    }

    .v2-stat-value {
        display: block;
        font-family: 'Sora', sans-serif;
        font-weight: 700;
        font-size: clamp(1.25rem, .95rem + 1vw, 1.75rem);
        color: var(--v2-ink);
        line-height: 1.1;
        font-variant-numeric: tabular-nums;
    }

    .v2-progress-wrapper {
        position: relative;
        padding-top: 20px;
    }

    .v2-progress-track {
        width: 100%;
        height: 12px;
        background: color-mix(in srgb, var(--campaign-surface) 80%, #e2e8f0);
        border-radius: var(--v2-radius-pill);
        overflow: hidden;
        position: relative;
    }

    .v2-progress-fill {
        height: 100%;
        background: linear-gradient(90deg, var(--campaign-dark), var(--campaign-light));
        border-radius: var(--v2-radius-pill);
        transition: width 800ms cubic-bezier(.4, 0, .2, 1);
        width: 0;
    }

    .v2-progress-meta {
        display: flex;
        justify-content: space-between;
        font-size: 12px;
        color: var(--v2-muted);
        margin-top: 6px;
        font-weight: 600;
    }

    /* Donate card */
    .v2-donate {
        padding: 22px;
    }

    .v2-donate-title {
        margin: 0 0 14px;
        font-family: 'Sora', sans-serif;
        font-weight: 700;
        font-size: 1.1rem;
        color: var(--campaign-name);
    }

    .v2-amount-grid {
        display: grid;
        grid-template-columns: repeat(2, 1fr);
        gap: 10px;
    }

    .v2-amount {
        position: relative;
        display: flex;
        align-items: center;
        justify-content: center;
        min-height: 56px;
        padding: 10px;
        border-radius: var(--v2-radius-md);
        background: var(--v2-paper);
        border: 1.5px solid var(--v2-border);
        color: var(--v2-ink);
        font-family: 'Sora', sans-serif;
        font-weight: 700;
        font-size: 1.05rem;
        font-variant-numeric: tabular-nums;
        text-decoration: none;
        transition: transform .15s ease, border-color .15s ease, background .15s ease, color .15s ease;
    }

    .v2-amount:hover {
        border-color: var(--campaign-dark);
        text-decoration: none;
        transform: translateY(-1px);
        box-shadow: var(--v2-shadow-sm);
    }

    .v2-amount.is-featured {
        grid-column: span 2;
        background: var(--campaign-dark);
        color: #fff;
        border-color: var(--campaign-dark);
        min-height: 64px;
        font-size: 1.2rem;
    }

    .v2-amount.is-featured .v2-amount-ribbon {
        position: absolute;
        top: -10px;
        right: 12px;
        background: #facc15;
        color: #0f172a;
        font-family: 'Inter', sans-serif;
        font-weight: 700;
        font-size: 11px;
        text-transform: uppercase;
        letter-spacing: .05em;
        padding: 4px 10px;
        border-radius: var(--v2-radius-pill);
        box-shadow: var(--v2-shadow-sm);
    }

    .v2-amount-other {
        margin-top: 10px;
        display: flex;
        align-items: center;
        justify-content: center;
        width: 100%;
        min-height: 44px;
        padding: 10px;
        border-radius: var(--v2-radius-md);
        background: transparent;
        border: 1.5px dashed var(--v2-border-strong);
        color: var(--v2-muted);
        font-weight: 600;
        text-decoration: none;
    }

    .v2-amount-other:hover { color: var(--campaign-dark); border-color: var(--campaign-dark); text-decoration: none; }

    .v2-donate-cta {
        display: flex;
        align-items: center;
        justify-content: center;
        width: 100%;
        min-height: 54px;
        margin-top: 14px;
        padding: 12px 16px;
        background: var(--campaign-dark);
        color: #fff;
        border-radius: var(--v2-radius-md);
        font-family: 'Sora', sans-serif;
        font-weight: 700;
        font-size: 1.05rem;
        text-decoration: none;
        box-shadow: var(--v2-shadow-md);
    }

    .v2-donate-cta:hover { filter: brightness(1.05); text-decoration: none; color: #fff; }

    .v2-other-flip {
        margin-top: 10px;
        perspective: 1200px;
    }

    .v2-other-flip-inner {
        position: relative;
        width: 100%;
        min-height: 54px;
        transform-style: preserve-3d;
        transition: transform .48s cubic-bezier(.22, .61, .36, 1), min-height .32s ease;
    }

    .v2-other-flip.is-flipped .v2-other-flip-inner {
        transform: rotateY(180deg);
        min-height: 172px;
    }

    .v2-other-face {
        width: 100%;
        min-height: 44px;
        border-radius: var(--v2-radius-md);
        backface-visibility: hidden;
        -webkit-backface-visibility: hidden;
    }

    .v2-other-face--front {
        display: flex;
        align-items: center;
        justify-content: center;
        padding: 10px;
        border-radius: 12px;
        border: 1.5px dashed var(--v2-border-strong);
        color: var(--v2-muted);
        font-weight: 600;
        background: transparent;
    }

    .v2-other-face--back {
        position: absolute;
        inset: 0;
        transform: rotateY(180deg);
        border: 1.5px solid var(--v2-border);
        background: var(--v2-paper);
        display: grid;
        grid-template-columns: 1fr;
        gap: 6px;
        align-items: center;
        padding: 10px 10px 12px;
    }

    .v2-other-face--front:hover {
        color: var(--campaign-dark);
        border-color: var(--campaign-dark);
    }

    .v2-other-label {
        grid-column: 1 / -1;
        font-size: 12px;
        color: var(--v2-muted);
        margin-bottom: 6px;
        line-height: 1;
    }

    .v2-other-input-wrap {
        display: flex;
        align-items: center;
        gap: 8px;
        border: 1px solid var(--v2-border);
        border-radius: 10px;
        padding: 10px 12px;
        min-height: 46px;
    }

    .v2-other-input-wrap:focus-within {
        border-color: var(--v2-border-strong);
        box-shadow: none;
    }

    .v2-other-prefix {
        font-weight: 700;
        color: var(--v2-ink-soft);
    }

    .v2-other-input-wrap input {
        width: 100%;
        min-width: 0;
        border: 0;
        outline: none;
        background: transparent;
        color: var(--v2-ink);
        font-weight: 600;
        font-size: 16px;
    }

    .v2-other-input-wrap input:focus,
    .v2-other-input-wrap input:focus-visible {
        outline: none;
        box-shadow: none !important;
    }

    .v2-other-hint {
        margin: 0;
        font-size: 11px;
        color: var(--v2-muted);
        line-height: 1.25;
    }

    .v2-other-error {
        margin: 0;
        font-size: 12px;
        color: var(--v2-danger);
        font-weight: 600;
        line-height: 1.25;
    }

    .v2-other-cancel {
        border-radius: 10px;
        border: 1px solid var(--v2-border);
        min-height: 42px;
        padding: 0 10px;
        width: 100%;
        font-size: 13px;
        font-weight: 600;
        color: var(--v2-muted);
        background: #fff;
    }

    .v2-other-cancel:hover {
        color: var(--v2-ink-soft);
        border-color: var(--campaign-dark);
    }

    .v2-donate-closed {
        padding: 14px 16px;
        border-radius: var(--v2-radius-md);
        background: color-mix(in srgb, var(--v2-danger) 8%, #fff);
        border: 1px solid color-mix(in srgb, var(--v2-danger) 25%, #fff);
        color: var(--v2-danger);
        font-size: 14px;
        font-weight: 600;
    }

    /* Trust strip */
    .v2-trust {
        margin-top: 12px;
        display: grid;
        grid-template-columns: 1fr 1fr 1fr;
        gap: 8px;
        padding: 12px;
        border-radius: var(--v2-radius-md);
        background: color-mix(in srgb, var(--campaign-surface) 60%, #fff);
    }

    .v2-trust-item {
        display: flex;
        flex-direction: column;
        align-items: center;
        text-align: center;
        gap: 4px;
        font-size: 11px;
        color: var(--v2-ink-soft);
        font-weight: 600;
        line-height: 1.2;
    }

    .v2-trust-icon {
        width: 20px; height: 20px;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        color: var(--campaign-dark);
    }

    .v2-trust--single {
        grid-template-columns: 1fr;
    }

    .v2-trust-item--full {
        flex-direction: row;
        justify-content: center;
        align-items: center;
        text-align: center;
        font-size: 13px;
        padding: 4px 10px;
        width: 100%;
    }

    .v2-trust-item--full .v2-trust-icon {
        width: 22px;
        height: 22px;
    }

    /* Share card */
    .v2-share { padding: 22px; }

    .v2-share-title {
        margin: 0 0 12px;
        font-family: 'Sora', sans-serif;
        font-weight: 700;
        font-size: 1rem;
        color: var(--campaign-name);
    }

    .v2-share-row {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 8px;
    }

    .v2-share-btn {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        gap: 8px;
        min-height: 44px;
        padding: 10px 12px;
        border-radius: var(--v2-radius-md);
        background: var(--v2-paper);
        border: 1.5px solid var(--v2-border);
        color: var(--v2-ink);
        font-weight: 600;
        font-size: 14px;
        text-decoration: none;
        transition: border-color .15s ease, background .15s ease;
    }

    .v2-share-btn:hover { border-color: var(--campaign-dark); text-decoration: none; }

    .v2-share-btn.is-whatsapp {
        background: var(--v2-paper);
        color: var(--v2-ink);
        border-color: var(--v2-border);
    }

    .v2-share-btn.is-whatsapp:hover { color: var(--v2-ink); }

    .v2-share-url {
        display: block;
        width: 100%;
        max-width: 100%;
        min-width: 0;
        box-sizing: border-box;
        margin-top: 10px;
        padding: 10px 12px;
        border: 1px solid var(--v2-border);
        border-radius: var(--v2-radius-sm);
        background: #f8fafc;
        color: var(--v2-muted);
        font-size: 13px;
        font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
        overflow: hidden;
        overflow-wrap: anywhere;
        word-break: break-word;
        white-space: normal;
    }

    .v2-share-feedback {
        display: none;
        margin-top: 8px;
        padding: 6px 10px;
        border-radius: var(--v2-radius-sm);
        background: color-mix(in srgb, var(--v2-success) 10%, #fff);
        color: var(--v2-success);
        font-size: 12px;
        font-weight: 600;
    }

    .v2-share-feedback.is-visible { display: block; }

    .v2-qr-details { margin-top: 12px; }

    .v2-qr-summary {
        display: inline-flex;
        align-items: center;
        gap: 6px;
        cursor: pointer;
        font-size: 13px;
        color: var(--campaign-dark);
        font-weight: 600;
        list-style: none;
    }

    .v2-qr-summary::-webkit-details-marker { display: none; }

    .v2-qr-canvas {
        margin-top: 10px;
        padding: 12px;
        background: #fff;
        border: 1px solid var(--v2-border);
        border-radius: var(--v2-radius-md);
        display: flex;
        justify-content: center;
    }

    /* Presentation */
    .v2-presentation {
        padding: 22px;
        margin-top: 18px;
    }

    .v2-presentation-title {
        display: inline-block;
        margin: 0 0 14px;
        font-family: 'Sora', sans-serif;
        font-weight: 700;
        font-size: 1.22rem;
        color: var(--campaign-name);
        position: relative;
        padding-bottom: 8px;
    }

    .v2-presentation-title::after {
        content: "";
        position: absolute;
        left: 0;
        bottom: 0;
        width: 48px;
        height: 3px;
        background: var(--campaign-dark);
        border-radius: 2px;
    }

    .v2-video-wrapper {
        position: relative;
        aspect-ratio: 16 / 9;
        max-width: 75%;
        margin-bottom: 16px;
        border-radius: var(--v2-radius-md);
        overflow: hidden;
        background: #dbe6ef;
    }

    .v2-video-wrapper iframe {
        position: absolute; inset: 0;
        width: 100%; height: 100%;
        border: 0;
    }

    .v2-presentation-body {
        font-size: 18px;
        line-height: 1.75;
        color: var(--v2-ink-soft);
        font-weight: 400;
        font-family: 'Inter', system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, sans-serif;
        max-width: 90%;
    }

    .v2-presentation-body :where(p, ul, ol, li, a, span, div, blockquote) {
        font-family: 'Inter', system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, sans-serif;
        font-weight: 400 !important;
    }

    .v2-presentation-body p {
        margin: 0 0 14px;
        font-weight: 400;
        line-height: 1.65;
    }

    .v2-presentation-body p:last-child {
        margin-bottom: 0;
    }

    .v2-presentation-body ul,
    .v2-presentation-body ol {
        margin: 0 0 14px;
        padding-left: 1.35em;
        font-weight: 400;
    }

    .v2-presentation-body li {
        margin: 0 0 6px;
        font-weight: 400;
    }

    .v2-presentation-body h2,
    .v2-presentation-body h3,
    .v2-presentation-body h4 {
        margin: 0 0 12px;
        color: var(--v2-ink);
        font-family: 'Inter', system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, sans-serif;
        font-weight: 300;
    }

    .v2-presentation-body strong,
    .v2-presentation-body b {
        font-weight: 800 !important;
    }

    .v2-presentation-body blockquote {
        margin: 0 0 14px;
        padding: 8px 14px;
        border-left: 3px solid var(--campaign-light);
        color: color-mix(in srgb, var(--v2-ink-soft) 88%, #fff);
        font-weight: 400;
    }

    .v2-presentation-body img { border-radius: var(--v2-radius-md); margin: 10px 0; }
    .v2-presentation-body img,
    .v2-presentation-body iframe,
    .v2-presentation-body video,
    .v2-presentation-body embed,
    .v2-presentation-body object {
        max-width: 100%;
    }

    .v2-presentation-body iframe,
    .v2-presentation-body video {
        width: 100%;
        border: 0;
        border-radius: var(--v2-radius-md);
    }

    /* FAQ */
    .v2-faq {
        padding: 22px;
        margin-top: 18px;
    }

    .v2-faq-title {
        margin: 0 0 14px;
        font-family: 'Sora', sans-serif;
        font-weight: 700;
        font-size: 1.15rem;
        color: var(--campaign-name);
    }

    .v2-faq-item {
        border-bottom: 1px solid var(--v2-border);
    }

    .v2-faq-item:last-child { border-bottom: 0; }

    .v2-faq-item summary {
        list-style: none;
        cursor: pointer;
        padding: 16px 8px;
        font-weight: 600;
        color: var(--v2-ink);
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 12px;
    }

    .v2-faq-item summary::-webkit-details-marker { display: none; }

    .v2-faq-item summary::after {
        content: "+";
        font-size: 20px;
        font-weight: 400;
        color: var(--campaign-dark);
        flex-shrink: 0;
        transition: transform .2s ease;
    }

    .v2-faq-item[open] summary::after { content: "\2212"; }

    .v2-faq-answer {
        padding: 0 8px 16px;
        color: var(--v2-muted);
        line-height: 1.65;
    }

    /* Donors */
    .v2-donors {
        /* Mantem o card de doadores somente na coluna principal para nao
           passar por baixo da sidebar sticky (doacao/compartilhamento). */
        grid-column: 1 / 2;
        padding: 22px;
        margin-top: 18px;
    }

    .v2-donors-title {
        margin: 0 0 14px;
        font-family: 'Sora', sans-serif;
        font-weight: 700;
        font-size: 2rem;
        color: #8d9bad;
    }

    .v2-donors-block.is-protected {
        -webkit-user-select: none;
        -moz-user-select: none;
        user-select: none;
    }

    .v2-donors-table-wrap {
        border-radius: 8px;
        overflow: hidden;
        background: #fff;
    }

    .v2-donors-table {
        width: 100%;
        border-collapse: collapse;
        table-layout: auto;
    }

    .v2-donors-table thead th {
        background: #fff;
        color: #6f7f92;
        font-size: 11px;
        text-transform: none;
        letter-spacing: 0;
        text-align: left;
        padding: 12px 12px;
        border-bottom: 1px solid #2b3645;
        font-weight: 700;
    }

    .v2-donors-table tbody td {
        padding: 12px 12px;
        border-bottom: 1px solid #d3d8df;
        vertical-align: middle;
        color: #5d6d7e;
        font-size: 11px;
    }

    .v2-donors-table tbody tr:last-child td {
        border-bottom: 1px solid #2b3645;
    }

    .v2-donor-name {
        font-size: inherit;
        font-weight: 600;
        color: inherit;
        line-height: 1.2;
    }

    .v2-donor-amount {
        font-size: inherit;
        color: inherit;
        font-variant-numeric: tabular-nums;
    }

    .v2-donor-cpf,
    .v2-donor-method,
    .v2-donor-date {
        font-size: inherit;
        color: inherit;
        line-height: 1.25;
    }

    .v2-donor-cpf-wrap {
        display: inline-flex;
        align-items: center;
        gap: 6px;
    }

    .v2-cpf-toggle {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        width: 26px;
        height: 26px;
        border: 1px solid #cfd6df;
        background: #fff;
        border-radius: 50%;
        color: #587094;
        font-size: 11px;
        line-height: 1;
        cursor: pointer;
    }

    .v2-cpf-toggle:hover {
        border-color: #7f96b5;
        color: #2f4b71;
    }

    .v2-donors .dataTables_wrapper .dataTables_length,
    .v2-donors .dataTables_wrapper .dataTables_filter {
        margin-bottom: 10px;
        color: #23374d;
        font-size: 11px;
    }

    .v2-donors .dataTables_wrapper .dataTables_length select {
        border: 1px solid #c7d0db;
        border-radius: 6px;
        background: #fff;
        font-size: 11px;
    }

    .v2-donors .dataTables_wrapper .dataTables_info,
    .v2-donors .dataTables_wrapper .dataTables_paginate {
        margin-top: 10px;
        color: #3f5268;
        font-size: 11px;
    }

    .v2-donors .dataTables_wrapper .dataTables_paginate .paginate_button {
        border-radius: 4px !important;
        font-size: 11px;
    }

    .v2-donors table.dataTable > tbody > tr.child td.child,
    .v2-donors table.dataTable > tbody > tr.child ul.dtr-details,
    .v2-donors table.dataTable > tbody > tr.child ul.dtr-details > li,
    .v2-donors table.dataTable > tbody > tr.child span.dtr-title,
    .v2-donors table.dataTable > tbody > tr.child span.dtr-data {
        font-size: 11px !important;
        line-height: 1.35;
    }

    .v2-empty {
        padding: 16px;
        border-radius: var(--v2-radius-md);
        background: #f8fafc;
        color: var(--v2-muted);
        text-align: center;
    }

    /* Sticky mobile bar */
    .v2-sticky {
        display: none;
        position: fixed;
        left: 0; right: 0;
        bottom: 0;
        z-index: 30;
        padding: 10px 14px calc(10px + env(safe-area-inset-bottom, 0px));
        background: color-mix(in srgb, var(--v2-paper) 96%, transparent);
        backdrop-filter: blur(10px);
        border-top: 1px solid var(--v2-border);
        box-shadow: 0 -8px 24px rgba(15, 23, 42, .06);
        align-items: center;
        gap: 12px;
    }

    .v2-sticky.is-visible { display: flex; }

    .v2-sticky-cta {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        min-height: 46px;
        padding: 10px 20px;
        background: var(--campaign-dark);
        color: #fff;
        border-radius: var(--v2-radius-md);
        font-family: 'Sora', sans-serif;
        font-weight: 700;
        text-decoration: none;
        flex-shrink: 0;
    }

    .v2-sticky-cta:hover { color: #fff; text-decoration: none; }

    /* Modal - preview/arrecadacao ainda nao iniciada */
    .v2-preview-modal {
        position: fixed;
        inset: 0;
        z-index: 2200;
        display: grid;
        place-items: center;
        padding: 20px;
    }

    .v2-preview-modal[hidden] {
        display: none;
    }

    .v2-preview-modal__backdrop {
        position: absolute;
        inset: 0;
        background: rgba(12, 22, 38, 0.6);
        backdrop-filter: blur(2px);
    }

    .v2-preview-modal__box {
        position: relative;
        width: min(560px, calc(100vw - 32px));
        border-radius: 18px;
        background: #fff;
        border: 1px solid var(--v2-border);
        box-shadow: var(--v2-shadow-lg);
        padding: 22px 22px 18px;
    }

    .v2-preview-modal__title {
        margin: 0 0 10px;
        font-family: 'Sora', sans-serif;
        font-size: clamp(1.1rem, 2.6vw, 1.35rem);
        font-weight: 700;
        color: var(--campaign-name);
        line-height: 1.25;
    }

    .v2-preview-modal__text {
        margin: 0;
        color: var(--v2-muted);
        line-height: 1.6;
        font-size: 0.98rem;
    }

    .v2-preview-modal__btn {
        margin-top: 16px;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        min-height: 42px;
        padding: 10px 16px;
        border: 1px solid transparent;
        border-radius: 10px;
        background: var(--campaign-dark);
        color: #fff;
        font-family: 'Sora', sans-serif;
        font-weight: 700;
        cursor: pointer;
    }

    .v2-preview-modal__btn:hover {
        filter: brightness(1.05);
    }

    body.v2-preview-modal-open {
        overflow: hidden;
    }

    /* ============================================================
     * 5. CHECKOUT - /{slug}/doar
     * ============================================================ */
    .v2-checkout {
        padding-bottom: 40px;
    }

    .v2-submit-loading {
        position: fixed;
        inset: 0;
        z-index: 3000;
        display: flex;
        align-items: center;
        justify-content: center;
        background: rgba(15, 23, 42, 0.55);
        backdrop-filter: blur(2px);
    }

    .v2-submit-loading[hidden] {
        display: none;
    }

    .v2-submit-loading__box {
        min-width: 180px;
        padding: 18px 22px;
        border-radius: var(--v2-radius-md);
        background: #fff;
        color: var(--v2-ink);
        display: inline-flex;
        align-items: center;
        justify-content: center;
        gap: 10px;
        box-shadow: var(--v2-shadow-lg);
        font-family: 'Sora', sans-serif;
        font-size: 1rem;
        font-weight: 700;
    }

    .v2-checkout-grid {
        display: grid;
        grid-template-columns: minmax(0, 1.8fr) minmax(300px, 1fr);
        gap: 24px;
        align-items: start;
    }

    .v2-checkout-summary {
        position: sticky;
        top: 84px;
        padding: 22px;
    }

    .v2-checkout-summary h3 {
        margin: 0 0 14px;
        font-family: 'Sora', sans-serif;
        font-size: 1rem;
        font-weight: 700;
    }

    .v2-checkout-summary dl {
        margin: 0;
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 8px 14px;
        font-size: 14px;
    }

    .v2-checkout-summary dt { color: var(--v2-muted); font-weight: 600; }
    .v2-checkout-summary dd { margin: 0; color: var(--v2-ink); font-weight: 600; }

    .v2-checkout-summary .v2-checkout-total {
        grid-column: span 2;
        margin-top: 8px;
        padding-top: 12px;
        border-top: 1px solid var(--v2-border);
        display: flex;
        align-items: baseline;
        justify-content: space-between;
    }

    .v2-checkout-summary .v2-checkout-total strong {
        font-family: 'Sora', sans-serif;
        font-size: 1.5rem;
        color: var(--campaign-dark);
        font-variant-numeric: tabular-nums;
    }

    .v2-stepper {
        display: flex;
        gap: 8px;
        margin-bottom: 20px;
        padding: 10px;
        background: var(--v2-paper);
        border-radius: var(--v2-radius-md);
        box-shadow: var(--v2-shadow-sm);
        overflow-x: auto;
    }

    .v2-step {
        flex: 1;
        min-width: 120px;
        display: flex;
        flex-direction: column;
        gap: 2px;
        padding: 8px 12px;
        border-radius: var(--v2-radius-sm);
        color: var(--v2-muted);
        font-size: 13px;
        text-decoration: none;
        transition: background .15s ease, color .15s ease;
    }

    .v2-step:hover { background: color-mix(in srgb, var(--campaign-surface) 70%, #fff); text-decoration: none; color: var(--v2-ink); }

    .v2-step-number {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        width: 22px; height: 22px;
        border-radius: 50%;
        background: var(--v2-border);
        color: var(--v2-ink);
        font-size: 12px;
        font-weight: 700;
        font-family: 'Sora', sans-serif;
    }

    .v2-step.is-current {
        background: color-mix(in srgb, var(--campaign-dark) 12%, #fff);
        color: var(--campaign-dark);
    }

    .v2-step.is-current .v2-step-number,
    .v2-step.is-done .v2-step-number {
        background: var(--campaign-dark);
        color: #fff;
    }

    .v2-step-label { font-weight: 600; }

    .v2-section {
        scroll-margin-top: 100px;
        padding: 22px;
        margin-bottom: 18px;
        position: relative;
        transition: opacity 220ms ease, filter 220ms ease;
    }

    .v2-section.is-locked {
        opacity: 0.55;
        filter: grayscale(30%);
        pointer-events: none;
        user-select: none;
    }

    .v2-section.is-locked > *:not(.v2-section-lock) {
        visibility: visible;
    }

    .v2-section.is-hidden {
        display: none !important;
    }

    .v2-section-lock {
        position: absolute;
        inset: 0;
        display: flex;
        align-items: center;
        justify-content: center;
        padding: 18px;
        text-align: center;
        font-size: 13px;
        font-weight: 600;
        color: #5c6b7a;
        background: linear-gradient(180deg, rgba(255,255,255,0.75), rgba(255,255,255,0.9));
        border-radius: inherit;
        z-index: 2;
        pointer-events: none;
    }

    .v2-section:not(.is-locked) .v2-section-lock {
        display: none;
    }

    .v2-section h2 {
        margin: 0 0 16px;
        font-family: 'Sora', sans-serif;
        font-weight: 700;
        font-size: 1.15rem;
        display: flex;
        align-items: center;
        gap: 10px;
    }

    .v2-section h2 .v2-step-number { flex-shrink: 0; }

    .v2-methods {
        display: grid;
        grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
        gap: 10px;
        margin-top: 12px;
    }

    .v2-method {
        display: flex;
        flex-direction: column;
        gap: 4px;
        padding: 14px;
        border: 1.5px solid var(--v2-border);
        border-radius: var(--v2-radius-md);
        background: var(--v2-paper);
        text-align: left;
        cursor: pointer;
        transition: border-color .15s ease, background .15s ease;
    }

    .v2-method:hover { border-color: var(--campaign-dark); }

    .v2-method.is-selected {
        border-color: var(--campaign-dark);
        background: color-mix(in srgb, var(--campaign-dark) 6%, #fff);
    }

    .v2-method strong { font-family: 'Sora', sans-serif; font-size: 1rem; color: var(--v2-ink); }
    .v2-method span { font-size: 13px; color: var(--v2-muted); }

    .v2-method-min-alert {
        margin-top: 10px;
        padding: 10px 12px;
        border-radius: var(--v2-radius-sm);
        border: 1px solid color-mix(in srgb, var(--v2-warning) 35%, #fff);
        background: color-mix(in srgb, var(--v2-warning) 12%, #fff);
        color: #8a4b00;
        font-size: 13px;
        font-weight: 600;
    }

    .v2-field { margin-bottom: 14px; }

    .v2-field > label {
        display: block;
        margin-bottom: 6px;
        font-size: 13px;
        font-weight: 600;
        color: var(--v2-ink-soft);
    }

    .v2-field input[type="text"],
    .v2-field input[type="email"],
    .v2-field input[type="date"],
    .v2-field input[type="tel"],
    .v2-field textarea,
    .v2-field select {
        width: 100%;
        padding: 10px 12px;
        border: 1.5px solid var(--v2-border);
        border-radius: var(--v2-radius-sm);
        background: var(--v2-paper);
        color: var(--v2-ink);
        font-size: 15px;
        font-family: inherit;
        transition: border-color .15s ease;
    }

    .v2-field input:focus,
    .v2-field textarea:focus,
    .v2-field select:focus {
        outline: none;
        border-color: var(--campaign-dark);
        box-shadow: var(--v2-focus);
    }

    .v2-field-error {
        display: none;
        margin-top: 4px;
        font-size: 12px;
        color: var(--v2-danger);
        font-weight: 600;
    }

    .v2-field.is-invalid input,
    .v2-field.is-invalid textarea,
    .v2-field.is-invalid select { border-color: var(--v2-danger); }
    .v2-field.is-invalid .v2-field-error { display: block; }

    .v2-address-block {
        position: relative;
    }

    .v2-address-loading {
        display: none;
        position: absolute;
        inset: 0;
        align-items: center;
        justify-content: center;
        gap: 10px;
        background: rgba(255, 255, 255, 0.78);
        backdrop-filter: blur(2px);
        border-radius: var(--v2-radius-sm);
        z-index: 3;
        font-size: 13px;
        font-weight: 600;
        color: var(--v2-ink-soft);
    }

    .v2-address-block.is-loading .v2-address-loading {
        display: flex;
    }

    .v2-address-block.is-loading .v2-row,
    .v2-address-block.is-loading .v2-row-3 {
        pointer-events: none;
        user-select: none;
    }

    .v2-spinner {
        width: 18px;
        height: 18px;
        border: 2.5px solid var(--v2-border-strong);
        border-top-color: var(--campaign-dark);
        border-radius: 50%;
        animation: v2-spin .7s linear infinite;
        display: inline-block;
    }

    @keyframes v2-spin {
        to { transform: rotate(360deg); }
    }

    .v2-row {
        display: grid;
        grid-template-columns: repeat(2, 1fr);
        gap: 12px;
    }

    .v2-row-3 {
        display: grid;
        grid-template-columns: repeat(3, 1fr);
        gap: 12px;
    }

    .v2-checkbox {
        display: flex;
        gap: 10px;
        align-items: flex-start;
        font-size: 14px;
        color: var(--v2-ink-soft);
        line-height: 1.55;
        padding: 10px 0;
    }

    .v2-checkbox input { margin-top: 3px; flex-shrink: 0; width: 18px; height: 18px; accent-color: var(--campaign-dark); }

    .v2-policy {
        display: grid;
        grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
        gap: 10px;
        padding: 14px;
        border-radius: var(--v2-radius-md);
        background: color-mix(in srgb, var(--campaign-surface) 60%, #fff);
        font-size: 13px;
        color: var(--v2-ink-soft);
        line-height: 1.5;
        margin: 12px 0;
    }

    .v2-policy strong { display: block; color: var(--v2-ink); margin-bottom: 4px; }

    .v2-error-banner {
        padding: 12px 14px;
        border-radius: var(--v2-radius-md);
        background: color-mix(in srgb, var(--v2-danger) 10%, #fff);
        border: 1px solid color-mix(in srgb, var(--v2-danger) 30%, #fff);
        color: var(--v2-danger);
        font-size: 14px;
        font-weight: 600;
        margin-bottom: 16px;
    }

    /* Compact amount block (checkout, apos selecao na landing) */
    .v2-amount-compact {
        display: grid;
        grid-template-columns: minmax(0, 1fr) minmax(0, auto);
        gap: 16px;
        align-items: end;
        padding: 14px;
        border: 1px solid var(--v2-border);
        border-radius: var(--v2-radius-md);
        background: var(--campaign-surface, #f8fafc);
        margin-bottom: 18px;
    }

    .v2-amount-compact-main { min-width: 0; }

    .v2-amount-compact-label {
        display: block;
        font-size: 12px;
        font-weight: 700;
        letter-spacing: .05em;
        text-transform: uppercase;
        color: var(--v2-muted);
        margin-bottom: 6px;
    }

    .v2-amount-badges {
        display: flex;
        flex-wrap: wrap;
        gap: 6px;
        justify-content: flex-end;
        max-width: 280px;
    }

    .v2-amount-badge {
        appearance: none;
        border: 1px solid var(--v2-border);
        background: #fff;
        color: var(--v2-ink);
        font-family: 'Sora', sans-serif;
        font-weight: 600;
        font-size: 13px;
        padding: 6px 10px;
        border-radius: 999px;
        cursor: pointer;
        transition: background .15s ease, border-color .15s ease, color .15s ease;
        font-variant-numeric: tabular-nums;
    }

    .v2-amount-badge:hover { border-color: var(--campaign-dark); color: var(--campaign-dark); }

    .v2-amount-badge[aria-pressed="true"] {
        background: var(--campaign-dark);
        border-color: var(--campaign-dark);
        color: #fff;
    }

    .v2-section-heading {
        font-family: 'Sora', sans-serif;
        font-size: 1.05rem;
        font-weight: 700;
        color: var(--v2-ink);
        margin: 4px 0 10px;
        display: flex;
        align-items: center;
        gap: 10px;
    }

    .v2-amount-input-wrap {
        display: flex;
        align-items: center;
        gap: 8px;
        padding: 14px 16px;
        border: 1.5px solid var(--v2-border);
        border-radius: var(--v2-radius-md);
        background: var(--v2-paper);
        margin-top: 12px;
    }

    .v2-amount-input-wrap .v2-amount-prefix {
        font-family: 'Sora', sans-serif;
        font-weight: 600;
        color: var(--v2-muted);
        font-size: 1.1rem;
    }

    .v2-amount-input-wrap input {
        border: 0;
        outline: 0;
        background: transparent;
        font-family: 'Sora', sans-serif;
        font-weight: 700;
        font-size: 1.5rem;
        color: var(--v2-ink);
        width: 100%;
        font-variant-numeric: tabular-nums;
    }

    .v2-amount-input-wrap.is-compact {
        padding: 8px 12px;
        background: #fff;
        border-radius: var(--v2-radius-sm);
    }

    .v2-amount-input-wrap.is-compact .v2-amount-prefix {
        font-size: 1rem;
        color: var(--v2-muted);
    }

    .v2-amount-input-wrap.is-compact input {
        font-size: 1.75rem;
        color: var(--campaign-dark);
    }

    .v2-submit {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        width: 100%;
        min-height: 54px;
        padding: 14px;
        background: var(--campaign-dark);
        color: #fff;
        border: 0;
        border-radius: var(--v2-radius-md);
        font-family: 'Sora', sans-serif;
        font-weight: 700;
        font-size: 1.05rem;
        cursor: pointer;
        box-shadow: var(--v2-shadow-md);
        margin-top: 10px;
    }

    .v2-submit:hover { filter: brightness(1.05); }
    .v2-submit:disabled { opacity: .6; cursor: not-allowed; }

    .v2-back {
        display: inline-flex;
        align-items: center;
        gap: 6px;
        margin-top: 12px;
        padding: 8px 14px;
        border-radius: var(--v2-radius-pill);
        color: var(--v2-muted);
        font-size: 13px;
        font-weight: 600;
        text-decoration: none;
    }

    .v2-back:hover { color: var(--campaign-dark); }

    /* ============================================================
     * 6. STATUS - /doacoes/{ref}
     * ============================================================ */
    .v2-status { padding-bottom: 40px; }

    .v2-status-header {
        padding: 24px;
        text-align: center;
    }

    .v2-status-pill {
        display: inline-flex;
        align-items: center;
        gap: 8px;
        padding: 8px 16px;
        border-radius: var(--v2-radius-pill);
        font-weight: 700;
        font-size: 14px;
        margin-bottom: 12px;
    }

    .v2-status-pill.is-paid {
        background: color-mix(in srgb, var(--v2-success) 12%, #fff);
        color: var(--v2-success);
    }

    .v2-status-pill.is-processing {
        background: color-mix(in srgb, var(--v2-warning) 12%, #fff);
        color: var(--v2-warning);
    }

    .v2-status-pill.is-failed {
        background: color-mix(in srgb, var(--v2-danger) 12%, #fff);
        color: var(--v2-danger);
    }

    .v2-status-pill.is-awaiting {
        background: color-mix(in srgb, var(--v2-info) 12%, #fff);
        color: var(--v2-info);
    }

    .v2-status-ref {
        font-family: ui-monospace, Menlo, monospace;
        color: var(--v2-muted);
        font-size: 14px;
    }

    .v2-status-grid {
        display: grid;
        grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr);
        gap: 18px;
        margin-top: 18px;
    }

    .v2-pix-qr {
        width: 100%;
        max-width: 260px;
        aspect-ratio: 1;
        border-radius: var(--v2-radius-md);
        border: 1px solid var(--v2-border);
        padding: 10px;
        background: #fff;
        margin: 0 auto 14px;
    }

    .v2-copy-code {
        display: block;
        width: 100%;
        padding: 10px 12px;
        border: 1px solid var(--v2-border);
        border-radius: var(--v2-radius-sm);
        background: #f8fafc;
        color: var(--v2-muted);
        font-family: ui-monospace, Menlo, monospace;
        font-size: 12px;
        word-break: break-all;
        margin-bottom: 10px;
    }

    .v2-timeline {
        display: grid;
        gap: 12px;
        margin: 16px 0;
    }

    .v2-timeline-step {
        display: grid;
        grid-template-columns: 32px 1fr;
        gap: 12px;
        align-items: start;
        padding: 12px;
        border-radius: var(--v2-radius-md);
        background: #f8fafc;
        border: 1px solid var(--v2-border);
    }

    .v2-timeline-step.is-current {
        background: color-mix(in srgb, var(--campaign-dark) 8%, #fff);
        border-color: var(--campaign-dark);
    }

    .v2-timeline-step.is-done {
        background: color-mix(in srgb, var(--v2-success) 8%, #fff);
        border-color: color-mix(in srgb, var(--v2-success) 40%, #fff);
    }

    .v2-timeline-num {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        width: 32px; height: 32px;
        border-radius: 50%;
        background: var(--v2-border);
        color: var(--v2-ink);
        font-family: 'Sora', sans-serif;
        font-weight: 700;
        font-size: 13px;
    }

    .v2-timeline-step.is-current .v2-timeline-num { background: var(--campaign-dark); color: #fff; }
    .v2-timeline-step.is-done .v2-timeline-num { background: var(--v2-success); color: #fff; }

    .v2-timeline-body strong { display: block; color: var(--v2-ink); font-size: 14px; }
    .v2-timeline-body span { display: block; color: var(--v2-muted); font-size: 13px; margin-top: 2px; line-height: 1.5; }

    .v2-status-actions {
        display: flex;
        gap: 10px;
        flex-wrap: wrap;
        margin-top: 20px;
        justify-content: center;
    }

    .v2-btn-primary,
    .v2-btn-secondary {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        min-height: 44px;
        padding: 10px 18px;
        border-radius: var(--v2-radius-md);
        font-weight: 700;
        font-family: 'Sora', sans-serif;
        text-decoration: none;
    }

    .v2-btn-primary {
        background: var(--campaign-dark);
        color: #fff;
    }

    .v2-btn-primary:hover { filter: brightness(1.05); color: #fff; text-decoration: none; }

    .v2-btn-secondary {
        background: transparent;
        color: var(--v2-ink);
        border: 1.5px solid var(--v2-border);
    }

    .v2-btn-secondary:hover { border-color: var(--campaign-dark); color: var(--campaign-dark); text-decoration: none; }

    /* Status v2 - complementos */
    .v2-success-banner {
        background: #edf8f0;
        border: 1px solid #c9e7d3;
        color: #1e6b3b;
        border-radius: var(--v2-radius-md);
        padding: 14px 16px;
        margin-bottom: 14px;
        font-size: 14px;
        font-weight: 600;
    }

    .v2-status-header-top {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 12px;
        flex-wrap: wrap;
        margin-bottom: 12px;
    }

    .v2-status-header.is-paid { border-left: 4px solid var(--v2-success, #1e6b3b); }
    .v2-status-header.is-processing { border-left: 4px solid #a16207; }
    .v2-status-header.is-failed { border-left: 4px solid #a52323; }
    .v2-status-header.is-awaiting { border-left: 4px solid var(--campaign-dark); }

    .v2-status-title {
        font-family: 'Sora', sans-serif;
        font-size: clamp(1.5rem, 3.2vw, 2rem);
        font-weight: 700;
        color: var(--v2-ink);
        margin: 6px 0 8px;
        line-height: 1.2;
    }

    .v2-status-lead {
        color: var(--v2-muted);
        font-size: 15px;
        line-height: 1.6;
        margin: 0 auto;
        max-width: 62ch;
    }

    .v2-status-main { display: grid; gap: 16px; }

    .v2-status-summary {
        position: sticky;
        top: 16px;
        align-self: start;
        padding: 22px;
    }

    .v2-status-summary h3 {
        font-family: 'Sora', sans-serif;
        font-size: 1rem;
        color: var(--v2-ink);
        margin: 0 0 14px;
        text-transform: uppercase;
        letter-spacing: .04em;
    }

    .v2-status-summary dl {
        display: grid;
        grid-template-columns: max-content 1fr;
        gap: 8px 14px;
        margin: 0;
        font-size: 14px;
    }

    .v2-status-summary dt { color: var(--v2-muted); font-weight: 600; }
    .v2-status-summary dd { margin: 0; color: var(--v2-ink); font-weight: 600; }

    .v2-status-summary .v2-checkout-total {
        grid-column: 1 / -1;
        display: flex;
        justify-content: space-between;
        align-items: baseline;
        margin-top: 10px;
        padding-top: 12px;
        border-top: 1px solid var(--v2-border);
        font-family: 'Sora', sans-serif;
    }

    .v2-status-summary .v2-checkout-total strong {
        font-size: 1.5rem;
        font-weight: 700;
        color: var(--campaign-dark);
        font-variant-numeric: tabular-nums;
    }

    .v2-pix-qr {
        display: flex;
        justify-content: center;
        padding: 12px 0;
    }

    .v2-pix-qr img {
        max-width: 260px;
        width: 100%;
        height: auto;
        border-radius: var(--v2-radius-md);
        border: 1px solid var(--v2-border);
        padding: 10px;
        background: #fff;
    }

    .v2-pix-code {
        margin-top: 14px;
        display: grid;
        gap: 8px;
    }

    .v2-pix-code label {
        font-size: 13px;
        font-weight: 600;
        color: var(--v2-ink);
    }

    .v2-pix-code textarea {
        width: 100%;
        border: 1px solid var(--v2-border);
        border-radius: var(--v2-radius-sm);
        padding: 10px 12px;
        font-family: 'SFMono-Regular', Consolas, 'Liberation Mono', monospace;
        font-size: 12px;
        line-height: 1.5;
        color: var(--v2-ink);
        background: #f8fafc;
        resize: none;
    }

    .v2-pix-code textarea:focus {
        outline: none;
        border-color: var(--campaign-dark);
        box-shadow: var(--v2-focus);
    }

    .v2-pix-feedback {
        display: none;
        color: #1e6b3b;
        font-size: 13px;
        font-weight: 700;
    }

    .v2-pix-feedback.is-visible { display: inline-block; }

    .v2-pix-expire {
        margin: 12px 0 0;
        padding: 10px 14px;
        border-radius: var(--v2-radius-sm);
        background: #f4f7fb;
        color: #415164;
        font-size: 13px;
    }

    .v2-receipts {
        display: flex;
        flex-wrap: wrap;
        gap: 10px;
    }

    .v2-muted { color: var(--v2-muted); font-size: 14px; line-height: 1.6; margin: 0; }

    .v2-legal {
        margin-top: 8px;
        border: 1px solid var(--v2-border);
        border-radius: var(--v2-radius-md);
        padding: 10px 16px;
        background: #fff;
    }

    .v2-legal summary {
        cursor: pointer;
        font-weight: 600;
        color: var(--v2-ink);
        padding: 8px 0;
        list-style: none;
    }

    .v2-legal summary::-webkit-details-marker { display: none; }

    .v2-legal summary::after {
        content: "+";
        float: right;
        font-family: 'Sora', sans-serif;
        color: var(--campaign-dark);
        font-size: 18px;
    }

    .v2-legal[open] summary::after { content: "\2212"; }

    .v2-legal dl {
        display: grid;
        grid-template-columns: max-content 1fr;
        gap: 6px 14px;
        margin: 10px 0 0;
        font-size: 13px;
        color: var(--v2-muted);
    }

    .v2-legal dt { color: var(--v2-ink); font-weight: 600; }
    .v2-legal dd { margin: 0; line-height: 1.5; }

    /* ============================================================
     * 7. Responsivo
     * ============================================================ */
    @media (max-width: 1120px) {
        .v2-layout { grid-template-columns: 1fr; }
        .v2-sidebar { position: static; }
        .v2-donors { grid-column: 1 / -1; }
    }

    @media (max-width: 960px) {
        .v2-checkout-grid { grid-template-columns: 1fr; }
        .v2-checkout-summary { position: static; }
        .v2-status-grid { grid-template-columns: 1fr; }
    }


    @media (max-width: 640px) {
        .v2-landing > .v2-container { padding-inline: 8px; }
        .v2-main { padding-top: 12px; }
        .v2-hero { aspect-ratio: 16 / 7; max-height: none; }
        .v2-hero-img { object-position: center 22%; }
        .v2-identity { padding: 18px 16px 16px; margin-top: -28px; }
        .v2-identity-top { grid-template-columns: 1fr; gap: 10px; text-align: center; }
        .v2-avatar { width: 128px; height: 128px; margin: -60px auto 0; }
        .v2-badges { justify-content: center; }
        .v2-social-box { justify-content: center; }
        .v2-stats {
            margin-top: 14px;
            padding: 16px;
            gap: 12px;
            border-radius: 18px;
            box-shadow: 0 8px 22px rgba(15, 23, 42, .07);
        }
        .v2-stats-grid {
            grid-template-columns: repeat(3, minmax(0, 1fr));
            gap: 8px;
            text-align: center;
            align-items: start;
        }
        .v2-stat-label {
            font-size: 10px;
            letter-spacing: .05em;
            margin-bottom: 3px;
        }
        .v2-stat-value {
            font-size: 1rem;
            line-height: 1.15;
        }
        .v2-progress-wrapper {
            padding-top: 8px;
        }
        .v2-progress-track {
            height: 8px;
            background: #edf1f5;
        }
        .v2-progress-fill {
            border-radius: 999px;
        }
        .v2-progress-meta {
            margin-top: 7px;
            font-size: 11px;
            font-weight: 500;
        }
        .v2-donate,
        .v2-share,
        .v2-presentation,
        .v2-faq,
        .v2-donors,
        .v2-section,
        .v2-status-header { padding: 18px; }
        .v2-row,
        .v2-row-3 { grid-template-columns: 1fr; }
        .v2-landing { padding-bottom: 80px; }
        .v2-amount-compact { grid-template-columns: 1fr; align-items: stretch; }
        .v2-amount-badges { justify-content: flex-start; max-width: none; }
        .v2-other-flip.is-flipped .v2-other-flip-inner { min-height: 178px; }
        .v2-donors-title { font-size: 1.35rem; }
        .v2-video-wrapper,
        .v2-presentation-body { max-width: 100%; }
    }

    /* Reduced motion */
    @media (prefers-reduced-motion: reduce) {
        *, *::before, *::after {
            transition-duration: .001ms !important;
            animation-duration: .001ms !important;
        }
        .v2-progress-fill { transition: none; }
    }
