/* Candidate donor experience. Kept separate from initiative/admin styles for
   the first page-by-page review; current form IDs and workflows are retained. */
:root{--ink:#18243a;--blue:#285797;--red:#da2042;--cream:#faf8f4;--muted:#59677a;--line:#dde4ed}
body.candidate-page{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif;color:var(--ink)}
.candidate-page .preview-ribbon{background:#edf1f7;color:#43556d;font-size:.75rem;letter-spacing:.08em;line-height:1.5}




.candidate-page .candidate-hero{max-width:1408px;padding:54px 5% 0;grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:72px;row-gap:28px}
.candidate-page .eyebrow{font-size:.75rem;line-height:1.6;letter-spacing:.12em;color:var(--blue)}
.candidate-page h1{font-size:clamp(48px,5.8vw,80px);letter-spacing:-.045em;line-height:1.05;margin:24px 0}
.candidate-page .hero-line{font-size:clamp(32px,3.4vw,44px);line-height:1.16;letter-spacing:-.025em;margin-bottom:24px}
.candidate-page .hero-intro{font-size:1.125rem;line-height:1.8;max-width:480px;color:var(--muted)}
.candidate-page .hero-photo figcaption{font-size:.875rem;line-height:1.6;letter-spacing:normal;bottom:18px;left:18px;right:18px;background:#13243ba8;border-radius:5px;padding:7px 10px}
.candidate-page .hero-bottom{font-size:.75rem;line-height:1.7;letter-spacing:.1em;padding:18px 0 32px}
.candidate-preview-return{max-width:1280px;margin:20px auto 0;padding:14px 24px;background:#edf2fa;border-radius:8px;display:flex;justify-content:flex-end;align-items:center;gap:16px;flex-wrap:wrap;font-size:.875rem;color:#435974}
.candidate-preview-return a{border-left:1px solid #a2b0c4;padding-left:16px;font-weight:650;text-underline-offset:3px}
.candidate-page .campaign-body{max-width:1408px;margin:54px auto 70px;padding:0 5%;grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:72px;row-gap:0}
.candidate-page .campaign-message h2{font-size:32px;line-height:1.2;letter-spacing:-.035em;margin:18px 0 24px}
.candidate-page .campaign-message>p:not(.eyebrow):not(.lead){font-family:inherit;font-size:1.125rem;line-height:1.8;color:var(--muted)}
.candidate-page .campaign-message .lead{font-size:1.25rem;line-height:1.7;letter-spacing:normal;color:var(--ink)}
.candidate-page .campaign-inline-checkout{position:static;min-width:0}
.candidate-page .campaign-inline-checkout .donor-form-panel{padding:28px;border:1px solid var(--line);border-top:4px solid var(--blue);border-radius:12px;background:#fff;box-shadow:0 7px 30px #14254205;overflow-wrap:anywhere}
.candidate-page .campaign-inline-checkout .donor-form-panel>.eyebrow{margin:0 0 18px;font-size:.75rem;line-height:1.6}
.candidate-page .campaign-inline-checkout .donor-form-panel p,.candidate-page .campaign-inline-checkout .donor-form-panel label,.candidate-page .campaign-inline-checkout .donor-form-panel legend,.candidate-page .campaign-inline-checkout .donor-form-panel button{font-size:1rem;line-height:1.6}
.candidate-page .campaign-inline-checkout .donor-form-panel small{font-size:.875rem;line-height:1.6}
.candidate-page .campaign-inline-checkout .donor-form-panel .donor-mode{font-size:.875rem;line-height:1.6;color:var(--muted);background:#f3f5f9;padding:12px 14px;border:0;border-radius:8px;margin:0 0 20px}
.candidate-page .campaign-inline-checkout .donation-step-status{font-size:1rem;font-weight:650;color:var(--blue);margin:0 0 20px}
.candidate-page .campaign-inline-checkout .donor-form-panel h2{font-size:25px;line-height:1.3;letter-spacing:-.025em;margin:0 0 24px}
.candidate-page .campaign-inline-checkout .donation-frequency-fieldset legend h2{font-size:1rem;font-weight:650;letter-spacing:normal;margin:0}
.candidate-page .campaign-inline-checkout fieldset{margin:24px 0;min-width:0}
.candidate-page .campaign-inline-checkout legend{margin-bottom:12px}
.candidate-page .campaign-inline-checkout .frequency-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;min-width:0}
.candidate-page .campaign-inline-checkout .frequency-choice{margin:0;min-width:0;min-height:48px;display:flex;align-items:center;justify-content:center;padding:10px 4px;border:1px solid #ccd7e6;border-radius:7px;background:#fff;font-weight:600;box-shadow:none}
.candidate-page .campaign-inline-checkout .tier-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.candidate-page .campaign-inline-checkout .tier-choice{min-height:64px;padding:12px 6px;border:1px solid #ccd7e6;border-radius:8px;background:#fff;margin:0;box-shadow:none;min-width:0}
.candidate-page .campaign-inline-checkout .tier-choice strong{font-size:23px;line-height:1.35;white-space:nowrap;overflow-wrap:normal;letter-spacing:-.025em}
.candidate-page .campaign-inline-checkout .tier-choice small{font-size:.875rem;line-height:1.5}
.candidate-page .campaign-inline-checkout .donation-custom-choice{padding:14px;gap:8px}
.candidate-page .campaign-inline-checkout .donation-custom-choice input[type=text]{font-size:1rem;min-height:48px}
.candidate-page .campaign-inline-checkout .frequency-choice:has(input:checked),.candidate-page .campaign-inline-checkout .tier-choice:has(input:checked),.candidate-page .campaign-inline-checkout .optional-gift .frequency-options label:has(input:checked),.candidate-page .campaign-inline-checkout .payment-choice:has(input:checked){border-color:#f23088;outline:2px solid #f23088;outline-offset:0;background:#fff5fa;color:var(--ink)}
.candidate-page .campaign-inline-checkout .frequency-choice:has(input:focus-visible),.candidate-page .campaign-inline-checkout .tier-choice:has(input:focus-visible),.candidate-page .campaign-inline-checkout .optional-gift .frequency-options label:has(input:focus-visible),.candidate-page .campaign-inline-checkout .payment-choice:has(input:focus-visible){outline:3px solid #cf2870;outline-offset:3px}
.candidate-page .campaign-inline-checkout .donor-form-panel button{border-radius:8px;min-height:48px;background:var(--blue);background-image:none;border-color:var(--blue);padding:12px 16px;font-weight:650}
.candidate-page .campaign-inline-checkout .donor-form-panel button.secondary{background:#fff;background-image:none;color:var(--blue);border:1px solid #cbd7e5}
.candidate-page #campaign-amount-next,.candidate-page #donation-details-next,.candidate-page #donation-submit{width:100%}
.candidate-page #donation-giving-back{margin:0 0 20px}
.candidate-page .campaign-inline-checkout .donor-field-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.candidate-page .campaign-inline-checkout .donor-form-panel input:not([type=radio]):not([type=checkbox]),.candidate-page .campaign-inline-checkout .donor-form-panel select{min-width:0;width:100%;min-height:48px;font-size:1rem;line-height:1.5;border:1px solid #c8d2df;border-radius:7px;padding:12px 14px;background:#fff;color:var(--ink);box-shadow:none}
.candidate-page .campaign-inline-checkout .donor-form-panel input:focus-visible,.candidate-page .campaign-inline-checkout .donor-form-panel select:focus-visible{outline:3px solid #cf2870;outline-offset:3px}
.candidate-page .campaign-inline-checkout .check-label{font-size:.875rem;line-height:1.8;align-items:flex-start;gap:10px}
.candidate-page .campaign-inline-checkout .check-label input{flex:none;width:22px;height:22px;min-height:22px;margin-top:3px;accent-color:var(--blue)}
.candidate-page .campaign-inline-checkout .optional-gift{background:#f6f8fc;border:1px solid #d8e1ed;border-radius:9px;padding:16px;margin:24px 0}
.candidate-page .campaign-inline-checkout .optional-gift .frequency-options{display:flex;flex-wrap:wrap;gap:8px}
.candidate-page .campaign-inline-checkout .optional-gift .frequency-options label{border-radius:7px;min-height:44px;padding:8px 10px;margin:0;font-size:.875rem;border-color:#ccd7e6}
.candidate-page .campaign-inline-checkout .optional-gift p{font-size:.875rem;line-height:1.7}
.candidate-page .campaign-inline-checkout .payment-choice{min-height:78px;border-radius:8px;padding:16px 10px}
.candidate-page .campaign-inline-checkout .payment-choice:has(input:checked)::after{color:#f23088}
.candidate-page .campaign-inline-checkout #donation-methods-help,.candidate-page .campaign-inline-checkout #donation-payment-status,.candidate-page .campaign-inline-checkout .donation-compliance,.candidate-page .campaign-inline-checkout #donation-step-giving>p.muted{font-size:.875rem;line-height:1.7;color:var(--muted)}
.candidate-payment-review{margin:24px 0;border:1px solid var(--line);border-radius:9px;padding:18px;background:#f8fafc}.candidate-payment-review h3{font-size:18px;letter-spacing:-.02em;margin:0 0 14px}.candidate-payment-review dl{margin:0}.candidate-payment-review dl>div{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;margin:12px 0;font-size:.875rem;line-height:1.6}.candidate-payment-review dt{color:var(--muted)}.candidate-payment-review dd{font-weight:650;margin:0;white-space:nowrap}.candidate-payment-review .review-total{border-top:1px solid var(--line);padding-top:14px;margin-top:18px;font-size:1rem}.candidate-payment-review .review-total dt{color:var(--ink);font-weight:700}.candidate-page .candidate-payment-review p{font-size:.875rem!important;line-height:1.7;margin:16px 0 0}
.candidate-page #donation-summary{position:absolute;width:1px;height:1px;margin:0;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.candidate-page #donation-message:empty{display:none}.candidate-page #donation-message:not(:empty){padding:12px;border-radius:7px;background:#f2f5fa}
.candidate-page .community-section .crowd-sharing{border-top:1px solid var(--line);padding-top:28px;margin-top:28px}.candidate-page .community-section .crowd-sharing h2{font-size:30px;line-height:1.25;letter-spacing:-.035em;margin:18px 0}.candidate-page .community-section .crowd-sharing p{font-size:1rem;line-height:1.7;color:var(--muted)}
.candidate-page .share-channel-choices{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.candidate-page .share-channel-choices .share-channel-icon{display:flex;flex-direction:column;gap:6px;width:100%;height:auto;min-height:76px;flex:none;border:1px solid #cbd6e4;border-radius:8px;padding:10px 6px;background:#fff;box-shadow:none}
.candidate-page .share-channel-icon svg{width:24px;height:24px;flex:none}.candidate-page .share-channel-icon::after{font-size:.875rem;line-height:1.4;font-weight:600}
.candidate-page .share-channel-icon[aria-label='Invite by email']::after{content:'Email'}.candidate-page .share-channel-icon[aria-label='Invite by text']::after{content:'Text'}.candidate-page .share-facebook::after{content:'Facebook'}.candidate-page .share-linkedin::after{content:'LinkedIn'}.candidate-page .share-instagram::after{content:'Instagram'}.candidate-page .share-x::after{content:'X'}.candidate-page .share-whatsapp::after{content:'WhatsApp'}.candidate-page .share-tiktok::after{content:'TikTok'}.candidate-page .share-channel-icon[aria-label='Copy invitation text and link']::after{content:'Copy Link'}
.candidate-page .story-source{font-size:1rem;line-height:1.6}.candidate-page .closing-line{padding:42px 6%}.candidate-page .closing-line p{font-size:38px;line-height:1.2}.candidate-page footer{font-size:.875rem;line-height:1.6}
@media(max-width:950px){.candidate-page .candidate-hero,.candidate-page .campaign-body{column-gap:36px}}
@media(max-width:700px){
 .candidate-page .preview-ribbon{display:none}



 .candidate-page .candidate-hero{grid-template-columns:minmax(0,1fr);padding:30px 20px 0;gap:24px}.candidate-page .candidate-hero h1{font-size:clamp(40px,12vw,48px)!important;letter-spacing:-.04em!important;line-height:1.06;margin:0}
 .candidate-page .hero-line{font-size:2rem;line-height:1.16;letter-spacing:-.025em;margin:0}
 .candidate-page .hero-intro{font-size:1.0625rem;line-height:1.8;max-width:100%}.candidate-page .hero-bottom{padding:0 0 26px}
 .candidate-page .hero-photo figcaption{font-size:.875rem;left:16px;right:16px;bottom:16px}
 .candidate-preview-return{margin:0;border-radius:0;padding:12px 20px;gap:8px 12px;font-size:.875rem}
 .candidate-page .campaign-body{display:flex;margin:32px auto 40px;padding:0 20px;gap:30px}
 .candidate-page .campaign-message h2{font-size:28px}.candidate-page .campaign-message>p:not(.eyebrow):not(.lead){font-size:1.0625rem;line-height:1.8}.candidate-page .campaign-message .lead{font-size:1.1875rem;line-height:1.7}
 .candidate-page .campaign-inline-checkout .donor-form-panel{padding:24px 18px}.candidate-page .campaign-inline-checkout .donor-form-panel h2{font-size:24px}.candidate-page .campaign-inline-checkout .donation-frequency-fieldset legend h2{font-size:1rem}
 .candidate-page .campaign-inline-checkout .tier-choice strong{font-size:20px}.candidate-page .campaign-inline-checkout .tier-choice{min-height:62px}.candidate-page .campaign-inline-checkout .donor-field-row{grid-template-columns:minmax(0,1fr)}
 .candidate-page .campaign-story>.community-section{margin:0;width:100%}.candidate-page .community-section .crowd-sharing h2{font-size:28px}.candidate-page .closing-line p{font-size:32px}
}
@media(max-width:360px){.candidate-page .campaign-inline-checkout .donor-form-panel{padding:22px 12px}.candidate-page .campaign-inline-checkout .tier-choice strong{font-size:18px}.candidate-page .campaign-inline-checkout .frequency-choice{font-size:.875rem}}
@media(prefers-reduced-motion:reduce){.candidate-page *{scroll-behavior:auto!important}}
/* Shared workspace navigation styles must not pin a private preview notice. */
.candidate-page .candidate-preview-return{position:static;top:auto;z-index:auto;align-self:stretch}
.candidate-page .campaign-inline-checkout{scroll-margin-top:0}


/* Preserve the existing branded blue-to-white header and both logo states. */
.candidate-page .candidate-header{--ink:#152643;--blue:#174d85;--red:#ee2340;font-family:Arial,Helvetica,sans-serif}

.candidate-donor-agreements{border-top:1px solid var(--line);padding-top:22px;margin:26px 0}.candidate-donor-agreements h3{font-size:18px;line-height:1.4;letter-spacing:-.02em;margin:0 0 14px}.candidate-page .candidate-donor-agreements .donation-compliance{font-size:.875rem;line-height:1.7;margin:0 0 20px;color:var(--ink)}.candidate-donor-agreements .check-label{margin:18px 0}.candidate-donor-agreements a{text-underline-offset:3px}
/* Rounded blue checkboxes; pink remains reserved for financial choice tiles. */
.candidate-page .campaign-inline-checkout .donor-form-panel input[type=checkbox]{appearance:none;-webkit-appearance:none;display:inline-grid;place-content:center;width:22px;height:22px;min-height:22px;flex:0 0 22px;padding:0;border:2px solid var(--blue);border-radius:5px;background:#fff;color:#fff;cursor:pointer;vertical-align:middle;box-shadow:none}
.candidate-page .campaign-inline-checkout .donor-form-panel input[type=checkbox]::before{content:'';width:6px;height:11px;border:solid currentColor;border-width:0 2px 2px 0;transform:translateY(-1px) rotate(45deg);opacity:0}
.candidate-page .campaign-inline-checkout .donor-form-panel input[type=checkbox]:checked{background:var(--blue);border-color:var(--blue)}
.candidate-page .campaign-inline-checkout .donor-form-panel input[type=checkbox]:checked::before{opacity:1}
.candidate-page .campaign-inline-checkout .donor-form-panel input[type=checkbox]:focus-visible{outline:3px solid var(--blue);outline-offset:3px}
.candidate-page .campaign-inline-checkout .donor-form-panel input[type=checkbox]:disabled{opacity:.55;cursor:not-allowed}
@media(forced-colors:active){.candidate-page .campaign-inline-checkout .donor-form-panel input[type=checkbox]{appearance:auto;-webkit-appearance:checkbox;forced-color-adjust:auto}.candidate-page .campaign-inline-checkout .donor-form-panel input[type=checkbox]::before{content:none}}

/* Compact email/text/link tools near the introduction; full channels remain below. */
.candidate-page .candidate-quick-share{width:100%;margin:22px 0}.candidate-page .candidate-quick-share>p{font-size:1rem;line-height:1.6;color:var(--muted)}.candidate-page .candidate-quick-share .share-channel-icon{min-height:86px}.candidate-page .candidate-quick-share .share-channel-icon::after{font-size:1rem}
@media(max-width:700px){.candidate-page .candidate-quick-share{order:6;margin:0}.candidate-page .candidate-hero>.hero-bottom{order:7}}
.candidate-page .share-channel-icon[aria-label='Copy donation link']::after{content:'Copy Link'}

.candidate-page .share-story-frame{width:100%;max-width:760px;height:auto;border-radius:12px;overflow:hidden;margin:24px 0}.candidate-page .share-story-photo{display:block;width:100%;height:auto;aspect-ratio:auto;object-fit:contain}

/* Keep the final organization link with the shared-future closing statement. */
.candidate-page .closing-line{display:flex;flex-direction:column;align-items:flex-start;gap:20px}
.candidate-page .closing-line .story-source{display:inline-flex;align-items:center;min-height:44px;margin:0;padding:6px 0;font-size:1rem;font-weight:600;line-height:1.6;color:#b7cee8;border-bottom:1px solid #b7cee8;text-decoration:none}
.candidate-page .closing-line .story-source:hover{color:#fff;border-color:#fff}
.candidate-page .closing-line .story-source:focus-visible{outline:3px solid #b7cee8;outline-offset:5px}

/* One visible wall invitation: under checkout on desktop, after sharing on phones. */
.candidate-page .hope-community-mobile{display:none}
.candidate-page .hope-community-desktop{margin-top:28px;padding-top:24px}
@media(max-width:700px){.candidate-page .hope-community-desktop{display:none}.candidate-page .hope-community-mobile{display:block}}

/* Keep the story and sharing content flowing independently of checkout height.
   The final empty row absorbs any extra height from a longer donation step. */
@media(min-width:701px){
 .candidate-page .campaign-body{grid-template-rows:max-content max-content max-content 1fr}
 .candidate-page .campaign-body>.campaign-inline-checkout,
 .candidate-page .campaign-story>.campaign-inline-checkout{grid-column:2;grid-row:1 / span 4;align-self:start}
}
