/* Shared, opt-in form and disclosure primitives for the remaining page family. */
.campaign-page { overflow:clip; }
.campaign-page [id] { scroll-margin-top:35px; }
.campaign-page .eyebrow { font-size:14px; font-weight:650; letter-spacing:.12em; text-transform:uppercase; margin-bottom:26px; color:var(--olive); }
.campaign-page h3 { font-size:clamp(30px,3vw,44px); margin-bottom:22px; }
.campaign-page .actions { flex-wrap:wrap; }
.campaign-page .photo { object-fit:cover; }
.campaign-page a:where(:not(.inline-link):not(.text-link):not(.routing-slip):not(.host-material-action)) { text-decoration:underline; text-underline-offset:.2em; }
.correspondence-sheet { padding:clamp(24px,4vw,58px); background:var(--white); box-shadow:9px 12px 0 var(--stone); border:1px solid var(--rule-strong); min-width:0; }
.correspondence-sheet h2 { font-size:clamp(36px,4vw,55px); }
.form-fields { display:grid; gap:24px; }
.field { min-width:0; }
.field > label, .field legend { display:block; font-size:17px; font-weight:600; margin-bottom:8px; line-height:1.45; }
.field input:not([type=checkbox]), .field select, .field textarea { width:100%; min-height:49px; border:1px solid var(--olive); border-radius:0; padding:12px; background:var(--white); color:var(--ink); font:17px/1.45 var(--font-body); }
.field textarea { resize:vertical; }
.field input:focus-visible,.field select:focus-visible,.field textarea:focus-visible { outline:2px solid var(--navy); outline-offset:4px; }
.field input[aria-invalid=true],.field textarea[aria-invalid=true],.field select[aria-invalid=true] { border:2px solid var(--red); }
.field small { display:block; font-size:14px; line-height:1.5; margin-top:6px; }
.field small:empty,.field-error:empty { display:none; }
.field-error { display:block; font-size:15px; font-weight:600; color:var(--red); margin-top:7px; }
.optional-word,.required-word { font-size:13px; font-weight:400; }
.field fieldset,.wizard-step { border:0; margin:0; padding:0; min-width:0; }
.field .check { display:flex; gap:12px; align-items:flex-start; padding:10px 0; font-size:17px; line-height:1.45; cursor:pointer; }
.check input { accent-color:var(--red); width:22px; height:22px; flex:none; margin:1px 0 0; }
.action-button,.plain-button { border:0; border-radius:0; padding:15px 25px; min-height:48px; cursor:pointer; font-size:17px; font-weight:600; line-height:1.4; }
.action-button { background:var(--red); color:var(--white); box-shadow:3px 4px 0 var(--stone); }
.action-button:hover { background:var(--navy); }
.action-button:disabled { opacity:.65; cursor:wait; }
.plain-button { background:transparent; color:var(--navy); text-decoration:underline; text-underline-offset:5px; }
.form-notice,.review-notice { font-size:14px; line-height:1.5; margin-block:24px!important; }
.review-notice { border-left:3px solid var(--gold); padding-left:14px; }
.form-status:not(:empty) { padding:20px 0; border-block:2px solid var(--red); margin-bottom:24px; font-size:17px; }
.form-status:focus { outline:2px solid var(--navy); outline-offset:7px; }
.form-status h3 { font-size:34px; }
.form-status ul { padding-left:24px; }
.trap { position:absolute; left:-10000px; width:1px; height:1px; overflow:hidden; }
.campaign-page [hidden] { display:none!important; }
.faq { border-top:1px solid var(--rule-strong); }
.faq details { border-bottom:1px solid var(--rule-strong); }
.faq summary { padding:25px 40px 25px 0; font-family:var(--font-display); font-size:clamp(23px,2.4vw,31px); line-height:1.3; cursor:pointer; }
.faq details > div { padding:0 28px 30px 0; max-width:65ch; }
.faq .text-link { font-size:20px; }
@media(max-width:760px){.correspondence-sheet{box-shadow:5px 7px 0 var(--stone)}.campaign-page .eyebrow{font-size:12px}.campaign-page h1{font-size:clamp(45px,10vw,76px)}.campaign-page h2{font-size:clamp(36px,8.2vw,57px)}.campaign-page h3{font-size:32px}.form-fields{gap:22px}.campaign-page .text-link{margin-left:-15px;padding-inline:15px}}
