/* Extend the selected light composition with its existing type, colors, and glass treatments. */
.campaign-masthead{height:auto;min-height:var(--nav-h);margin-bottom:0;pointer-events:auto;background:var(--hero-bg)}
.js .campaign-masthead{top:0}
.navigation-layout{display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:5rem;padding-block:.5rem}
.campaign-masthead .wordmark .surname{font-size:1.65rem}
.campaign-masthead .wordmark .given{font-size:.6rem}
.campaign-masthead .wordmark .office{font-size:.55rem}
.nav-home{font:700 1.65rem/1 var(--font-display);text-decoration:none;display:grid;gap:.3rem}
.nav-home span{font:600 .6rem/1 var(--font-text);text-transform:uppercase;letter-spacing:.2em}
.campaign-masthead .site-nav{margin:0;padding:.25rem .6rem;gap:1rem;font-size:.9375rem}
.campaign-masthead.is-floating{background:var(--glass-solid);box-shadow:var(--shadow-float)}
@supports (backdrop-filter:blur(1px)){.campaign-masthead.is-floating{background:var(--glass-bg);backdrop-filter:blur(16px)}}
.desktop-nav,.desktop-cta{display:none!important}
.mobile-menu{position:relative;margin-left:auto;font-size:1rem}
.mobile-menu summary{cursor:pointer;display:flex;align-items:center;gap:1rem;min-height:2.75rem;padding:.5rem 1rem;border:1px solid var(--plum-400);border-radius:var(--radius-button);background:var(--glass-bg);list-style:none}
.mobile-menu summary::-webkit-details-marker{display:none}
.mobile-menu[open] summary span{transform:rotate(45deg)}
.mobile-menu nav{position:absolute;z-index:30;top:calc(100% + .5rem);right:0;width:min(18rem,calc(100vw - 2*var(--gutter)));display:grid;padding:.75rem;background:var(--glass-solid);border:1px solid var(--border);border-radius:var(--radius-float);box-shadow:var(--shadow-float)}
.mobile-menu nav a{padding:.6rem .8rem;min-height:2.75rem;text-decoration:none}
.mobile-menu nav a:hover,.mobile-menu nav a[aria-current]{background:var(--plum-100);border-radius:.5rem}
.nav-cta{display:flex;align-items:center;gap:.5rem;font-size:.9375rem;font-weight:600;text-decoration:none;min-height:2.75rem}
.vote-banner{background:var(--plum-50);border-bottom:1px solid var(--border);font-size:.9375rem}
.vote-banner .wrap{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding-block:.65rem}
.dismiss-banner{font:1.5rem/1 var(--font-text);background:transparent;border:0;color:var(--brand);min-width:2.75rem;min-height:2.75rem;cursor:pointer}
.hero-inner{padding-top:var(--space-7)}
.hero-identity{gap:1.4rem}
.hero-headline{font-size:clamp(1.6rem,2.2vw,2rem);max-width:27ch;line-height:1.18}
.hero-subhead{font-size:var(--type-body);max-width:42ch;line-height:1.5}
.button-row{display:flex;flex-wrap:wrap;align-items:center;gap:1rem}
.button-row .button{font-size:1rem}
.about-copy{gap:1.3rem}
.credentials-band{background:var(--hero-bg-end);border-top:1px solid rgb(59 48 72/.12);padding-block:1.5rem}
.credentials-band p{font-size:.9375rem;font-weight:600;line-height:1.8;color:var(--brand)}
.campaign-priority-list{margin-top:2rem}
.campaign-priority-list a{color:inherit}
.campaign-priority-list .text-link{font-size:.9375rem;margin-top:auto}
.more-priorities{margin-top:2rem;margin-bottom:1rem;max-width:none;font-size:1rem;color:var(--on-band-muted)}
.more-priorities a,.priorities>.wrap>.text-link{color:var(--on-band)}
.home-leadership,.home-involvement{max-width:var(--container)}
.home-leadership .content-section,.home-involvement .content-section{max-width:none;margin-bottom:1.5rem}
.page-heading{padding-block:2rem 2.5rem;background:linear-gradient(var(--hero-bg),var(--hero-bg-end))}
.page-heading .wrap{display:grid;gap:1.2rem}
.page-heading h1{max-width:24ch;font-size:clamp(2.15rem,4.3vw,3.5rem);line-height:1.13;letter-spacing:-.03em}
.page-lede{max-width:none;font-size:var(--type-lede);line-height:1.5}
.breadcrumbs{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem;font-size:.875rem;line-height:1.5;margin-bottom:.5rem;color:var(--text-muted)}
.content-layout{display:grid;gap:3rem;padding-block:3rem 4rem}
.content-main{min-width:0;max-width:none}
.content-section{margin-bottom:3rem;scroll-margin-top:6.5rem}
.content-section:last-child{margin-bottom:0}
.content-section h2{font-size:clamp(1.65rem,2.5vw,2.25rem);max-width:32ch;margin-bottom:1.3rem}
.prose>p,.content-section>p{margin-bottom:1.1rem}
.plan-list{padding-left:1.5rem;margin:1.2rem 0;display:grid;gap:1.2rem}
.plan-list li{padding-left:.35rem}
.plan-list li::marker{color:var(--brand);font-weight:600}
.review-note{font-size:.8125rem;color:var(--brand);background:var(--plum-50);border-left:3px solid var(--plum-400);padding:.4rem .7rem;margin-top:.5rem;max-width:50ch}
.placeholder{padding:.75rem;border:1px dashed var(--plum-400);border-radius:.4rem;background:var(--plum-50);color:var(--brand);overflow-wrap:anywhere}
.priority-sidebar nav{border-top:1px solid var(--border);padding-top:1.5rem;display:grid;gap:.4rem}
.priority-sidebar h2{font-size:1.35rem;margin-bottom:.7rem}
.priority-sidebar a{font-size:1rem;padding:.5rem .7rem;text-decoration:none;border-left:2px solid transparent}
.priority-sidebar a:hover,.priority-sidebar a[aria-current]{background:var(--plum-50);border-left-color:var(--brand)}
.content-main .campaign-priority-list{grid-template-columns:1fr;gap:1.6rem}
.content-main .campaign-priority-list li{border-color:var(--border);padding-top:1.4rem}
.content-main .campaign-priority-list p{color:var(--text);max-width:none}
.content-main .campaign-priority-list li::before{background:var(--plum-400)}
.content-main .campaign-priority-list h3{font-size:1.5rem}
.faq-item{border-top:1px solid var(--border);padding-block:1.2rem}
.faq-item:last-child{border-bottom:1px solid var(--border)}
.faq-item summary{font-weight:600;font-size:1.2rem;cursor:pointer;min-height:2.75rem;padding-right:1rem}
.faq-item .prose{padding-top:1.2rem}
.bio-photo{max-width:35rem;margin-bottom:2.5rem;background:var(--hero-bg-end);border-radius:var(--radius-float);overflow:hidden}
.bio-photo .community{position:relative;width:100%}
.bio-photo .community img{height:auto;aspect-ratio:3/2;mask-image:none;-webkit-mask-image:none}
.bio-photo .reference-label{position:static;padding:.75rem 1rem;margin:0;background:var(--hero-bg-end)}
.cta-band{background:linear-gradient(var(--hero-bg-end),var(--hero-bg));padding-block:2.5rem}
.cta-band h2{font-size:1.7rem;margin-bottom:1.5rem}
.footer-details{display:flex;flex-wrap:wrap;justify-content:center;gap:.75rem 1.5rem;padding-bottom:1rem;text-align:center}
.footer-details .placeholder{background:none;border:0;padding:0;font-size:.8125rem}
.text-button{font:inherit;min-height:2.75rem;padding:.4rem 0;background:none;border:0;color:var(--brand);text-decoration:underline;cursor:pointer}
.dates-table{overflow-x:auto;margin-bottom:1.3rem}
.dates-table table{width:100%;border-collapse:collapse;text-align:left;font-size:1rem}
.dates-table caption{text-align:left;margin-bottom:.7rem;font-weight:600;color:var(--text-muted)}
.dates-table th,.dates-table td{padding:1rem .75rem;border-bottom:1px solid var(--border);vertical-align:top}
.dates-table thead th{background:var(--plum-50)}
.dates-table tbody th{width:33%;font-weight:600}
.form-mode{padding:1rem;background:var(--plum-50);border-left:3px solid var(--plum-400);font-size:.9375rem}
.campaign-form,.editor-copy,.photo-editor{display:grid;gap:1.2rem}
.form-grid{display:grid;gap:1.2rem}
.form-field{display:grid;gap:.5rem}
label,legend{font-weight:600;font-size:1rem}
input,select,textarea{width:100%;min-width:0;font:inherit;color:var(--text);padding:.75rem;border:1px solid var(--plum-400);border-radius:.5rem;background:var(--white)}
select,input{min-height:3rem}
textarea{resize:vertical}
fieldset{min-width:0;padding:1rem;border:1px solid var(--border);border-radius:.5rem;display:grid;gap:.75rem}
legend{padding-inline:.4rem}
.check{display:flex;align-items:flex-start;flex-wrap:wrap;gap:.5rem;font-weight:400;line-height:1.5}
.check input{width:1.1rem;height:1.1rem;min-height:0;flex:none;margin:.2rem 0 0;accent-color:var(--brand)}
.campaign-form>.button,.copy-form .button{justify-self:start;padding-inline:1.4rem}
.form-status{padding:1rem;background:var(--plum-50);border-radius:.5rem;font-weight:600}
.form-status:empty{display:none}
.editor-layout{display:grid;gap:3rem;padding-block:3rem}
.editor-copy>section{display:grid;gap:1.2rem;margin-block:1rem}
.editor-copy h2{font-size:1.75rem}
.copy-form{display:grid;gap:.6rem;padding-bottom:1.25rem;border-bottom:1px solid var(--border)}
.save-row{display:flex;flex-wrap:wrap;align-items:center;gap:1rem;font-size:.9375rem}
.save-row .button{font-size:1rem;min-height:2.75rem}
.photo-editor{align-content:start}
.photo-form{display:grid;gap:1rem;padding-bottom:2rem;border-bottom:1px solid var(--border)}
.photo-editor .portrait,.photo-editor .community{position:relative;width:100%;aspect-ratio:3/2;background:var(--hero-bg)}
.photo-editor .photo img{mask-image:none;-webkit-mask-image:none}
.legacy-editor{border-top:1px solid var(--border);padding-top:1.5rem}
.legacy-editor summary{cursor:pointer;font-weight:600;min-height:2.75rem}
.legacy-editor .copy-form{margin-top:1.25rem}
@media(min-width:40rem){.form-grid{grid-template-columns:1fr 1fr}.content-main .campaign-priority-list{grid-template-columns:1fr 1fr}}
@media(min-width:48rem){.hero-inner{padding-block:3.5rem;min-height:43rem}.hero-identity{max-width:49%}.hero-subhead{max-width:40ch}.with-sidebar{grid-template-columns:minmax(0,1fr) 15rem}.priority-sidebar nav{position:sticky;top:7rem}.editor-layout{grid-template-columns:minmax(0,7fr) minmax(0,5fr)}}
@media(min-width:72rem){.desktop-nav,.desktop-cta{display:flex!important}.mobile-menu{display:none}.navigation-layout{gap:.8rem}.campaign-masthead .site-nav{gap:.8rem}.desktop-cta{border-radius:.6rem;background:var(--plum-100);padding:.5rem .7rem;white-space:nowrap}}
@media(max-width:22rem){.button-row .button{width:100%}.page-heading h1{font-size:2rem}.dates-table th,.dates-table td{padding:.75rem .4rem}}

/* Typography refinements: retain the plum palette and existing font families. */
.campaign-masthead .wordmark .surname{text-transform:uppercase;font-size:1.3rem;letter-spacing:.02em}
.campaign-masthead .wordmark .office{font-size:1.3rem;font-weight:700;letter-spacing:.02em;white-space:nowrap}
.nav-home{font-size:1.3rem;letter-spacing:.02em}
.nav-home span{font-size:1.3rem;font-weight:700;letter-spacing:.02em;white-space:nowrap}
.wordmark.wordmark-hero .given{font-size:.32em;font-weight:700;letter-spacing:.13em}
.wordmark.wordmark-hero .office{font-size:.29em;font-weight:700;letter-spacing:.12em;padding-top:.55em}
main .label{font-size:clamp(1rem,1.1vw,1.125rem);font-weight:700;letter-spacing:.11em;line-height:1.45}
main .content-section>h2{font-size:clamp(1.65rem,2.4vw,2.25rem);line-height:1.2;letter-spacing:-.02em}
main .section-heading h2{line-height:1.15}
.faq-item summary{font-size:1.125rem;line-height:1.45}

.footer-credit{margin:0;padding:0 0 1.75rem;text-align:center}
.footer-credit-link{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;flex-wrap:wrap;font-size:var(--type-caption,.8125rem);line-height:1.4;color:var(--text-muted);text-decoration:none}
.footer-credit-link:hover{color:var(--brand);text-decoration:underline}
.footer-credit-logo{display:block;height:20px;width:auto;opacity:.72}
.footer-credit-link:hover .footer-credit-logo{opacity:.9}

/* Survey page: responsive Google Form embed and the related-link line on the cell and parks pages. */
.survey-embed{max-width:760px}
.survey-frame{display:block;width:100%;max-width:760px;height:2000px;border:0;background:#fff}
.survey-open{margin-top:1rem}
.related-link{margin-top:2rem;font-weight:600}
@media(max-width:40rem){.survey-frame{height:2400px}}

/* Prominent navigation with generous targets and a clear current-page state. */
.campaign-masthead .site-nav{gap:.15rem;font-size:1rem;font-weight:600;line-height:1.25}
.campaign-masthead .site-nav a{padding:.7rem .55rem;min-height:2.75rem;border-radius:.5rem;text-decoration:none;white-space:nowrap;border-bottom:2px solid transparent}
.campaign-masthead .site-nav a:hover,.campaign-masthead .site-nav a[aria-current="page"]{background:var(--plum-100);color:var(--brand);border-bottom-color:var(--brand)}
.campaign-masthead a:focus-visible,.mobile-menu summary:focus-visible,footer a:focus-visible{outline:3px solid var(--brand);outline-offset:3px}
.mobile-menu summary{font-weight:700;font-size:1.05rem;border-color:var(--brand)}
.mobile-menu nav a{font-size:1.05rem;font-weight:600;padding:.8rem 1rem}
/* Homepage hero v2 (approved Oct 7, 2026): plum ballot strip above the nav, compact lockup, full-width fluid headline,
   primary Get Involved CTA, survey link, short sign-up form, and four action tiles. */
.vote-banner{background:#5a2d5f;color:#fff;border-bottom:0;font-size:.9375rem;font-weight:600}
.vote-banner p{margin:0}
.vote-banner strong{font-weight:800}
.vote-banner a{color:#fff;font-weight:800;text-decoration:underline;text-underline-offset:.2em;white-space:nowrap}
.vote-banner .wrap{padding-block:.4rem}
.vote-banner .dismiss-banner{color:#fff}
.vote-banner a:focus-visible,.vote-banner button:focus-visible{outline:3px solid #fff;outline-offset:2px}
.nav-cta.nav-cta-solid{flex:none;padding:.55rem 1rem;border-radius:.6rem;background:#5a2d5f;color:#fff;font-weight:700;white-space:nowrap;text-decoration:none}
.nav-cta.nav-cta-solid:hover{background:#3d2b3d}
.nav-cta.nav-cta-solid:focus-visible{outline:3px solid var(--brand);outline-offset:3px}
.mobile-menu{margin-left:auto}
.campaign-home .hero-inner{display:flex;flex-direction:column;align-items:stretch;gap:1rem;min-height:0;padding-block:1rem 2rem}
.campaign-home .hero-identity{max-width:none;gap:.5rem}
.campaign-home .wordmark-hero{font-size:3.5rem}
.campaign-home .hero-message{display:flex;flex-direction:column;align-items:flex-start;gap:.9rem;width:100%;max-width:none}
.campaign-home .hero-headline{max-width:none;margin:0;font-size:clamp(2rem,1.2rem + 3.6vw,4rem);font-weight:800;line-height:1.06;letter-spacing:-.025em;color:var(--brand);text-wrap:balance}
.campaign-home .hero-subhead{max-width:none;margin:0;font-size:clamp(1.0625rem,.95rem + .6vw,1.375rem);line-height:1.45;text-wrap:pretty}
.hero-ctas .button{font-size:1.0625rem}
.hero-survey{margin:0;font-weight:600}
.hero-survey a{color:var(--brand);text-underline-offset:.2em}
.nowrap{white-space:nowrap}
.hero-signup{gap:.6rem;width:100%;max-width:44rem;padding:.9rem 1rem;border-radius:var(--radius-float);background:rgb(255 255 255/.82);box-shadow:var(--shadow-float)}
.hero-signup-row{display:grid;gap:.6rem;grid-template-columns:1fr 1fr}
.hero-signup-row .form-field{gap:.25rem}
.hero-signup-row label{font-size:.875rem}
.hero-signup-row input{min-height:2.75rem;padding:.5rem .7rem}
.hero-signup-row .button{grid-column:1/-1;min-height:2.75rem;font-size:1rem;padding-inline:1.4rem}
.hero-signup .check{font-size:.9375rem}
/* Phone: photo first as a ~200px band that fades into the stone ground. */
.campaign-home .portrait{order:0;height:200px;aspect-ratio:auto}
.campaign-home .portrait .reference-photo,.campaign-home .portrait .uploaded-photo{object-position:50% 22%;-webkit-mask-image:linear-gradient(to bottom,#000 55%,transparent);mask-image:linear-gradient(to bottom,#000 55%,transparent)}
.action-tiles{background:var(--hero-bg-end);padding-block:1.25rem}
.action-tile-list{display:grid;grid-template-columns:1fr 1fr;gap:.75rem;margin:0 auto;padding-block:0;list-style:none}
.action-tile{display:flex;align-items:center;justify-content:space-between;gap:.5rem;height:100%;min-height:4rem;padding:.85rem 1rem;border-radius:var(--radius-float);background:#fff;border:1px solid var(--border);color:var(--brand);font-weight:700;font-size:1.0625rem;line-height:1.25;text-decoration:none;box-shadow:0 2px 8px rgb(23 19 28/.06)}
.action-tile:hover{border-color:var(--brand);background:var(--plum-50)}
.action-tile:focus-visible{outline:3px solid var(--brand);outline-offset:3px}
.action-tile .icon{flex:none;width:1.25rem;height:1.25rem;transform:rotate(-135deg)}
@media(min-width:40rem){.hero-signup-row{grid-template-columns:1fr 1fr auto;align-items:end}.hero-signup-row .button{grid-column:auto}}
@media(min-width:48rem){
  .campaign-home .hero{display:block}
  .campaign-home .wordmark-hero{font-size:4.5rem}
  .campaign-home .hero-inner{padding-block:1.5rem 2.25rem;gap:1.1rem}
  .campaign-home .hero-identity{min-height:clamp(9rem,15vw,12rem);justify-content:center}
  .campaign-home .portrait{position:absolute;inset:0 0 auto auto;width:58%;height:clamp(19rem,30vw,26rem)}
  .campaign-home .portrait .reference-photo,.campaign-home .portrait .uploaded-photo{
    -webkit-mask-image:linear-gradient(to right,transparent,#000 40%),linear-gradient(to bottom,#000 55%,transparent);-webkit-mask-composite:source-in;
    mask-image:linear-gradient(to right,transparent,#000 40%),linear-gradient(to bottom,#000 55%,transparent);mask-composite:intersect}
  .campaign-home .hero-headline,.campaign-home .hero-subhead{text-shadow:0 0 18px var(--hero-bg),0 0 4px var(--hero-bg)}
  .action-tile-list{grid-template-columns:repeat(4,minmax(0,1fr))}
}
@media(max-width:47.99rem){.vote-banner{font-size:.8125rem;line-height:1.35}.vote-banner .wrap{padding-block:.3rem}.vote-banner .dismiss-banner{min-height:2.5rem}.campaign-home .hero-inner{padding-block:.25rem 1.5rem;gap:.75rem}.campaign-home .hero-identity .label{font-size:.875rem}.hero-ctas{gap:.6rem}.hero-ctas .button{font-size:1rem;padding-inline:1rem .35rem;gap:.6rem}.hero-ctas .button .icon{width:1.1rem;height:1.1rem;padding:.35rem}}
@media(max-width:26rem){.navigation-layout{gap:.5rem}.mobile-menu summary{gap:.5rem;padding:.5rem .75rem}.nav-cta.nav-cta-solid{padding:.5rem .7rem;font-size:.875rem}.nav-home,.nav-home span{font-size:1.1rem}}
/* Site-wide fluid headings: full available width, balanced wrapping, no overflow at any window size. */
main h1,main h2,main h3{text-wrap:balance;overflow-wrap:break-word;hyphens:manual}
.page-heading h1{max-width:none;font-size:clamp(2rem,1.3rem + 3vw,3.5rem)}
.page-lede{max-width:none;font-size:clamp(1.125rem,1rem + .5vw,1.375rem);text-wrap:pretty}
.content-section h2,main .content-section>h2{max-width:none;font-size:clamp(1.6rem,1.2rem + 1.6vw,2.25rem)}
main .section-heading h2,.cta-band h2,#about-title{max-width:none;font-size:clamp(1.75rem,1.2rem + 2.2vw,2.75rem)}
.content-main .campaign-priority-list h3{font-size:clamp(1.25rem,1.1rem + .6vw,1.5rem)}
@media(max-width:22rem){.page-heading h1{font-size:clamp(1.75rem,8vw,2rem)}.navigation-layout{gap:.35rem}.mobile-menu summary{padding:.5rem .6rem;gap:.35rem}.nav-cta.nav-cta-solid{padding:.45rem .55rem;font-size:.8125rem}.campaign-masthead .wordmark .surname,.campaign-masthead .wordmark .office,.nav-home,.nav-home span{font-size:1rem}.hero-ctas .button{width:auto}}
/* Vote section: two equal columns that fill the container. The eyebrow lines up with the first card's top edge and the
   How to Vote button with the last card's bottom edge (cards stretch to the text column's height); the disclaimer sits
   under the cards as a caption. Phones stack heading, cards, then caption. */
.elections .section-heading{align-items:flex-start}
.elections .section-heading>p:not(.label){max-width:none}
.elections .section-heading .button{margin-top:auto}
.elections .election-links{gap:var(--space-3)}
.elections .election-note{margin:calc(var(--space-3) - var(--space-6)) 0 0;font-size:var(--type-caption)}
@media(min-width:48rem){
  .elections.split{grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-3) var(--col-gap);align-items:stretch}
  .elections .section-heading{grid-area:1/1}
  .elections .election-links{grid-area:1/2}
  .elections .election-link{flex:1 1 0;min-height:5.25rem}
  .elections .election-note{grid-area:2/2;margin:0}
}
/* Prose headings span the full content width; body copy keeps its readable 52rem measure. Long headings use
   text-wrap:pretty (fill the line, avoid a lone last word) instead of balance, which split them into two short lines. */
.content-layout .content-main{max-width:none}
.content-main>.faq-item,.content-main>.related-link,.content-section>:not(h2){max-width:none}
.page-heading h1,.content-section>h2,main .section-heading h2,.cta-band h2,#about-title{text-wrap:pretty}
/* "A mayor who reads the plans before the vote." spans the content width and wraps naturally when narrower. */
.home-leadership .content-section{max-width:none}
.home-leadership .content-section>:not(h2){max-width:none}
.home-leadership .content-section h2{max-width:none}
/* Answer-first summaries. */
.answer-summary{margin:0 0 1.75rem;padding:1rem 1.25rem;border-left:4px solid #B8A0C0;background:#F6EFF3;color:#3D2B3D;font-size:1.125rem;line-height:1.55;max-width:none}
.answer-summary-band{padding-block:1.75rem 0}
.answer-summary-band .answer-summary{margin:0}
/* Homepage hero, split layout: the full portrait at its natural aspect ratio beside the copy (stacked on mobile). */
.campaign-home .hero-split .hero-inner{display:grid;grid-template-columns:minmax(0,1fr);gap:1.25rem;align-items:center;padding-block:1.25rem 2rem;min-height:0}
.campaign-home .hero-split .hero-text{display:flex;flex-direction:column;gap:1rem;min-width:0}
.hero-portrait{margin:0;justify-self:center;width:min(80%,18rem)}
.hero-portrait .photo-placeholder{display:block}
.hero-portrait img{display:block;width:100%;height:auto;aspect-ratio:2/3;object-fit:contain;border-radius:var(--radius-float,1rem);box-shadow:0 18px 40px -18px rgb(43 31 56/.45);-webkit-mask-image:none;mask-image:none}
.campaign-home .hero-split .hero-headline,.campaign-home .hero-split .hero-subhead{text-shadow:none}
@media(min-width:48rem){
  .campaign-home .hero-split .hero-inner{grid-template-columns:minmax(0,1fr) minmax(15rem,40%);gap:clamp(1.5rem,3vw,3.5rem);padding-block:2rem 2.75rem}
  .campaign-home .hero-split .hero-text{order:1}
  .hero-portrait{order:2;width:100%;max-width:min(26rem,calc((100vh - 13rem) * .688));justify-self:end;align-self:start;margin-top:1.5rem}
}
/* Home "why I'm running" section and Meet Jennifer: the dogs photo shown whole at its natural 4:3 ratio (no cover crop). */
.photo-whole .reference-photo,.photo-whole .uploaded-photo{height:auto;aspect-ratio:4/3;object-fit:contain;object-position:50% 50%;-webkit-mask-image:none;mask-image:none}
.photo-whole .photo-placeholder{height:auto}
.bio-photo .community.photo-whole img{aspect-ratio:4/3;border-radius:var(--radius-float,1rem)}
.about-split{padding-block:2rem 2.5rem}
.about-split::after{display:none}
.about-split .about-layout{display:grid;grid-template-columns:minmax(0,1fr);gap:1.5rem;align-items:center;padding-bottom:0}
.about-split .community{position:relative;inset:auto;width:100%;order:0;margin:0}
.about-split .community img{width:100%;border-radius:var(--radius-float,1rem);box-shadow:0 18px 40px -18px rgb(43 31 56/.45)}
.about-split .about-copy{grid-column:auto;margin:0;justify-self:stretch}
@media(min-width:48rem){.about-split{padding-block:3rem 3.5rem}.about-split .community{position:relative;inset:auto;width:100%}}
@media(min-width:64rem){.about-split .about-layout{grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:clamp(2rem,4vw,4rem);align-items:start}.about-split .community{position:sticky;top:7rem;margin-top:2.25rem}}
/* Photo scale v3 (Oct 9, 2026): larger photos at natural ratio; real text wrap on desktop, full-width photo then text on mobile. */
.hero-portrait{width:100%;max-width:36rem}
@media(min-width:48rem){.campaign-home .hero-split .hero-inner{grid-template-columns:minmax(0,1fr) minmax(0,44%)}.hero-portrait{width:100%;max-width:none;justify-self:stretch}}
@media(min-width:64rem){
  .campaign-home .hero-split .hero-inner{grid-template-columns:minmax(0,1fr) minmax(0,44%);gap:clamp(2rem,4vw,4rem);align-items:center}
  .hero-portrait{width:100%;max-width:none;justify-self:stretch;align-self:center;margin-top:0}
}
.about-split .about-layout{display:block}
.about-split .about-layout::after{content:"";display:block;clear:both}
.about-split .community{margin:0 0 1.75rem}
@media(min-width:48rem) and (max-width:63.99rem){.about-split .community{width:min(100%,40rem);margin-inline:auto}}
@media(min-width:64rem){
  .about-split .about-layout{display:block}
  .about-split .community{float:left;position:relative;top:auto;width:54%;margin:.35rem clamp(2rem,3.5vw,3rem) 1.25rem 0;shape-outside:margin-box}
  .about-split .about-copy{display:block;max-width:none}
  #about.about-split .about-copy h2{max-width:none;font-size:clamp(1.9rem,2.6vw,2.4rem);margin:.4rem 0 1rem}
}
#about.about-split .about-copy > p:not(.label){margin:0 0 1rem}
#about.about-split .about-copy .label{margin:0 0 .4rem}
.bio-photo{max-width:none;width:100%;margin:0 0 1.75rem;background:none}
.bio-photo .community.photo-whole img{box-shadow:0 18px 40px -18px rgb(43 31 56/.45)}
@media(min-width:48rem) and (max-width:63.99rem){.bio-photo{width:min(100%,40rem);margin-inline:auto}}
@media(min-width:64rem){
  .content-main{display:flow-root}
  .bio-photo{float:left;width:50%;margin:.35rem clamp(2rem,3.5vw,3rem) 1.25rem 0;shape-outside:margin-box}
  .bio-photo + .content-section{display:block;max-width:none}
  .bio-photo + .content-section ~ .content-section{clear:both}
}
/* Above-the-fold hero v4 (Oct 9, 2026): purple blazer portrait at natural 2:3, sized to the first screen. */
.hero-portrait img{aspect-ratio:2/3}
@media(max-width:47.99rem){
  .campaign-home .hero-split .hero-inner{gap:1rem;padding-top:.75rem}
  .hero-portrait{width:auto;max-width:100%;justify-self:center}
  .hero-portrait img{width:auto;max-width:100%;height:min(48svh,calc((100vw - 2.5rem) * 1.5))}
}
@media(min-width:48rem){
  .campaign-home .hero-split .hero-inner{grid-template-columns:minmax(0,1fr) auto;align-items:start;padding-block:1.25rem 2rem;gap:clamp(1.5rem,3.5vw,3.5rem)}
  .hero-portrait{width:auto;max-width:none;justify-self:end;align-self:start;margin-top:0}
  .hero-portrait img{width:auto;height:min(calc(100svh - 10.5rem),46rem);max-width:none}
}
@media(min-width:48rem) and (max-width:63.99rem){.hero-portrait img{height:min(calc(100svh - 10.5rem),30rem)}}
@media(min-width:64rem){
  .campaign-home .wordmark-hero{font-size:3.75rem}
  .campaign-home .hero-split .hero-text{gap:.85rem;padding-top:clamp(.5rem,4svh,2.5rem)}
  .campaign-home .hero-split .hero-headline{font-size:clamp(2.75rem,1.2rem + 2.6vw,3.6rem)}
}
/* Credentials grid v5 (Oct 9, 2026): six on-brand cards, 3 cols desktop, 2 tablet, 1 mobile. */
.credentials-band{background:#E6D5E0;border-top:0;padding-block:clamp(2rem,4vw,3rem)}
.cred-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr;gap:1rem}
@media(min-width:40rem){.cred-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(min-width:64rem){.cred-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:1.25rem}}
.cred-card{display:flex;gap:1rem;align-items:flex-start;margin:0;padding:1.25rem 1.35rem;background:#fff;border:1px solid #B8A0C0;border-radius:var(--radius-float,1rem);box-shadow:0 10px 24px -18px rgb(61 43 61/.45)}
.cred-icon{flex:none;width:2.6rem;height:2.6rem;padding:.55rem;border-radius:999px;background:#E6D5E0;fill:none;stroke:#3D2B3D;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.cred-label{margin:0 0 .25rem;font-size:.8rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:#3D2B3D;line-height:1.3}
.credentials-band .cred-detail{margin:0;font-size:1rem;font-weight:500;line-height:1.5;color:#3D2B3D;white-space:pre-line}
.visually-hidden{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
/* Marketing footer: ballot CTA band, then one centered column for brand, link groups, contacts, legal lines and credit. */
footer{background:#E6D5E0;color:#3D2B3D;text-align:center;border-top:4px solid #B8A0C0}
footer a{color:#3D2B3D}
footer a:focus-visible{outline:3px solid #3D2B3D;outline-offset:3px}
.footer-cta{background:#3D2B3D;color:#fff}
.footer-cta-inner{display:flex;flex-direction:column;align-items:center;gap:.9rem;padding-block:2.25rem}
.footer-cta .label{margin:0;color:#E6D5E0}
.footer-cta h2{margin:0;max-width:none;color:#fff;font-size:clamp(1.5rem,3vw,2.1rem);line-height:1.15}
.footer-cta .button-row{display:flex;flex-wrap:wrap;justify-content:center;gap:.75rem;margin:0}
footer .footer-cta .button{background:#fff;color:#3D2B3D;border-color:#fff;box-shadow:none}
footer .footer-cta .button:hover{background:#E6D5E0}
footer .footer-cta .button-quiet{background:transparent;color:#fff;border:2px solid #B8A0C0}
footer .footer-cta .button-quiet:hover{background:rgb(255 255 255/.1)}
footer .footer-cta a:focus-visible{outline-color:#fff}
.footer-body{display:flex;flex-direction:column;align-items:center;gap:1.75rem;padding-block:2.5rem 1.5rem}
.footer-brand{display:flex;flex-direction:column;align-items:center;gap:.6rem}
.footer-mark{width:3.5rem;height:3.5rem}
footer .wordmark{color:#3D2B3D}
.footer-place{margin:0;font-size:.8125rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase}
.footer-groups{display:flex;flex-direction:column;align-items:center;gap:1.25rem;width:100%;padding-block:1.5rem;border-block:1px solid #B8A0C0}
.footer-group{display:flex;flex-direction:column;align-items:center;gap:.25rem;max-width:none}
.footer-heading{margin:0;font:700 .8125rem/1.2 var(--font-text);letter-spacing:.14em;text-transform:uppercase;color:#3D2B3D}
.footer-group ul{display:flex;flex-wrap:wrap;justify-content:center;gap:0 1.25rem;margin:0;padding:0;list-style:none}
.footer-group a{display:inline-flex;align-items:center;min-height:2.75rem;padding-inline:.2rem;font-weight:600;text-decoration:none}
.footer-group a:hover,.footer-group a[aria-current="page"]{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:.3em}
.footer-contacts{display:flex;flex-wrap:wrap;justify-content:center;gap:1rem 2.5rem;font-style:normal}
.footer-contact{display:flex;flex-direction:column;align-items:center;gap:.2rem;min-width:0}
.footer-contact-label{font-size:.75rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:#3D2B3D}
.footer-contact-value{font-size:1rem;font-weight:600;line-height:1.4;text-decoration:none;overflow-wrap:anywhere}
.footer-contact-value:hover{text-decoration:underline;text-underline-offset:.2em}
.footer-legal{display:flex;flex-direction:column;align-items:center;gap:.5rem;font-size:.9375rem;line-height:1.4}
.footer-legal p{margin:0}
.footer-attribution{padding:.4rem .9rem;border:1px solid #3D2B3D;font-weight:700}
footer .footer-credit{display:flex;justify-content:center;width:100%;margin:0 auto;padding:0 var(--gutter) 1.75rem}
footer .footer-credit-link{color:#3D2B3D}
footer .footer-credit-logo{opacity:1}
.survey-form{display:grid;gap:1.25rem}
.survey-topic>legend{font-size:1.125rem}
.survey-question{border:0;padding:0;gap:.5rem}
