:root {
  --navy: #082c5c;
  --navy-2: #0d3d77;
  --gold: #e6a51e;
  --gold-deep: #c8870b;
  --ink: #10284b;
  --cream: #fffaf0;
  --sand: #f5efe3;
  --white: #ffffff;
  --muted: #60718a;
  --line: rgba(8,44,92,.13);
  --shadow: 0 18px 48px rgba(8,44,92,.12);
  --radius: 22px;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin:0; font-family:'DM Sans',system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif; color:var(--ink); background:var(--white); line-height:1.6; }
img { display:block; width:100%; }
a { color:inherit; }
button,input,select,textarea { font:inherit; }
.skip-link { position:absolute; left:-999px; top:10px; background:var(--navy); color:#fff; padding:.7rem 1rem; z-index:999; }
.skip-link:focus { left:10px; }
.site-header { position:sticky; top:0; z-index:50; min-height:82px; display:flex; align-items:center; justify-content:space-between; gap:1.5rem; padding:0 4vw; background:rgba(255,255,255,.97); border-bottom:1px solid var(--line); backdrop-filter:blur(10px); }
.brand { display:flex; align-items:center; gap:.65rem; text-decoration:none; min-width:max-content; }
.brand-mark { width:53px; color:var(--gold); }
.brand-mark svg { width:100%; overflow:visible; }
.brand-mark .sun-arc,.brand-mark .sun-ray,.brand-mark .wave { fill:none; stroke:currentColor; stroke-width:3; stroke-linecap:round; }
.brand-mark .wave { color:var(--navy); }
.brand-copy { display:grid; line-height:1.02; }
.brand-copy strong { font-family:'Allura',cursive; font-size:2.25rem; font-weight:400; color:var(--navy); }
.brand-copy small { font-weight:700; color:var(--navy); letter-spacing:.02em; }
.nav { display:flex; align-items:center; gap:1.45rem; font-size:.94rem; font-weight:700; }
.nav a { text-decoration:none; position:relative; }
.nav a:not(.nav-cta)::after { content:''; position:absolute; left:0; right:100%; bottom:-7px; height:2px; background:var(--gold); transition:right .2s ease; }
.nav a:hover::after,.nav a:focus-visible::after { right:0; }
.nav-cta { background:var(--navy); color:#fff; padding:.72rem 1rem; border-radius:12px; }
.menu-toggle { display:none; border:0; background:transparent; color:var(--navy); font-size:1.7rem; }
.hero { position:relative; min-height:640px; display:grid; align-items:center; background-image:url('/assets/tiny-sunset-hero.jpg'); background-size:cover; background-position:center 58%; overflow:hidden; }
.hero-overlay { position:absolute; inset:0; background:linear-gradient(90deg,rgba(255,250,240,.96) 0%,rgba(255,250,240,.90) 29%,rgba(255,250,240,.40) 56%,rgba(8,44,92,.08) 100%); }
.hero-inner { position:relative; z-index:2; width:min(720px,88vw); margin-left:max(6vw,40px); padding:7rem 0 8rem; }
.eyebrow { text-transform:uppercase; letter-spacing:.13em; font-weight:800; font-size:.82rem; color:var(--navy); margin:0 0 .65rem; }
.hero h1 { margin:0; font-size:clamp(3rem,6vw,5.7rem); line-height:.93; letter-spacing:-.04em; color:var(--navy); }
.hero h1 span { font-family:'Allura',cursive; font-size:1.12em; font-weight:400; letter-spacing:0; }
.hero h1::after { content:''; display:block; width:180px; height:5px; margin:.7rem 0 1.25rem; background:var(--gold); border-radius:4px; transform:rotate(-1deg); }
.hero-lead { margin:0 0 .45rem; font-size:clamp(1.25rem,2vw,1.55rem); font-weight:800; color:var(--navy); }
.hero-copy { max-width:620px; font-size:1.08rem; margin:0; }
.hero-actions { display:flex; gap:.8rem; margin-top:1.55rem; flex-wrap:wrap; }
.btn { display:inline-flex; align-items:center; justify-content:center; min-height:48px; padding:.78rem 1.25rem; border-radius:10px; text-decoration:none; font-weight:800; border:2px solid transparent; cursor:pointer; }
.btn-gold { background:var(--gold); color:var(--navy); box-shadow:0 9px 20px rgba(230,165,30,.22); }
.btn-gold:hover { background:#efb531; }
.btn-outline { background:rgba(255,255,255,.70); color:var(--navy); border-color:var(--navy); }
.hero-bottom { position:absolute; left:0; right:0; bottom:-1px; height:42px; background:var(--white); clip-path:polygon(0 75%,100% 0,100% 100%,0 100%); }
.section { width:min(1180px,90vw); margin:0 auto; padding:5.6rem 0; }
.section-soft { width:100%; max-width:none; padding-left:max(5vw,24px); padding-right:max(5vw,24px); background:linear-gradient(180deg,#fffaf3 0%,#f8f2e8 100%); }
.intro { display:grid; grid-template-columns:1.05fr .95fr; align-items:center; gap:4.5rem; }
.script-heading { font-family:'Allura',cursive; font-size:clamp(2.4rem,4vw,3.8rem); line-height:1; color:var(--navy); margin:0 0 .3rem; }
.script-heading::after { content:''; display:block; width:125px; height:3px; margin-top:.15rem; background:var(--gold); transform:rotate(-1deg); border-radius:3px; }
h2 { margin:.1rem 0 1rem; font-size:clamp(2rem,3.2vw,3.1rem); line-height:1.08; color:var(--navy); letter-spacing:-.025em; }
.lead { font-size:1.19rem; color:#2b4261; }
.accent-line { font-weight:800; color:var(--navy); margin-top:1.2rem; }
.text-link { display:inline-block; margin-top:.8rem; color:var(--navy); font-weight:800; text-decoration-color:var(--gold); text-decoration-thickness:2px; text-underline-offset:4px; }
.feature-photo { margin:0; }
.feature-photo img { aspect-ratio:4/3; object-fit:cover; object-position:center; border-radius:var(--radius); box-shadow:var(--shadow); }
.feature-photo figcaption { color:var(--muted); font-size:.82rem; padding:.55rem .3rem 0; }
.candidate-photo-card { margin:0; }
.candidate-portrait { width:100%; aspect-ratio:4/5; object-fit:cover; object-position:center 38%; border-radius:var(--radius); box-shadow:var(--shadow); border:1px solid rgba(69,35,104,.12); }
.candidate-photo-card figcaption { color:var(--muted); font-size:.82rem; padding:.55rem .3rem 0; }
.section-heading { width:min(820px,100%); margin:0 auto 2.25rem; text-align:center; }
.section-heading .script-heading::after { margin-left:auto; margin-right:auto; }
.section-heading.narrow { width:min(700px,100%); }
.section-heading p:last-child { color:var(--muted); font-size:1.05rem; }
.priority-grid { width:min(1180px,100%); margin:0 auto; display:grid; grid-template-columns:repeat(4,1fr); gap:1rem; }
.priority-card { background:#fff; border:1px solid rgba(8,44,92,.08); border-radius:18px; padding:1.45rem 1.35rem 1.55rem; box-shadow:0 10px 30px rgba(8,44,92,.07); }
.priority-icon { width:58px; height:58px; display:grid; place-items:center; border-radius:50%; background:#fff6df; margin-bottom:1rem; }
.priority-icon svg { width:40px; height:40px; fill:none; stroke:var(--gold-deep); stroke-width:3; stroke-linecap:round; stroke-linejoin:round; }
.priority-card h3 { margin:0 0 .55rem; color:var(--navy); font-size:1.25rem; line-height:1.15; }
.priority-card p { margin:0; color:#50627a; font-size:.96rem; }
.community .section-heading { margin-bottom:2rem; }
.photo-grid { display:grid; grid-template-columns:1.35fr 1fr 1fr; gap:1rem; }
.photo-grid figure { margin:0; overflow:hidden; border-radius:18px; box-shadow:var(--shadow); min-height:320px; }
.photo-grid img { width:100%; height:100%; object-fit:cover; }
.photo-grid .photo-large img { object-position:center 55%; }
.vote-strip { display:grid; grid-template-columns:1.1fr 1.25fr auto; align-items:center; gap:2rem; padding:1.35rem max(5vw,24px); background:var(--navy); color:#fff; }
.vote-strip div { display:grid; }
.vote-label { color:#f7c75b; font-size:.78rem; font-weight:800; text-transform:uppercase; letter-spacing:.12em; }
.vote-strip strong { font-size:1.55rem; }
.vote-strip p { margin:0; color:#e7eef7; }
.vote-strip a { color:#f8c657; font-weight:800; }
.involved { display:grid; grid-template-columns:1.08fr .92fr; align-items:center; gap:4rem; }
.involved-copy { max-width:650px; margin-left:auto; }
.mini-list { display:flex; flex-wrap:wrap; gap:.65rem; margin-top:1.4rem; }
.mini-list span { background:#fff; border:1px solid rgba(8,44,92,.11); padding:.55rem .8rem; border-radius:999px; font-weight:700; font-size:.9rem; }
.involved-cta { margin-top:1.25rem; }
.involved-photo { margin:0; }
.involved-photo img { aspect-ratio:4/3; object-fit:cover; border-radius:var(--radius); box-shadow:var(--shadow); }
.contact { display:grid; grid-template-columns:.9fr 1.1fr; gap:4.5rem; align-items:start; }
.contact-copy { position:sticky; top:120px; }
.site-address { color:var(--navy); font-size:1.35rem; font-weight:800; border-top:2px solid var(--gold); display:inline-block; padding-top:.65rem; }
.contact-form { background:#fff; border:1px solid var(--line); border-radius:20px; padding:1.6rem; box-shadow:var(--shadow); display:grid; gap:1rem; }
.contact-form label { display:grid; gap:.35rem; color:var(--navy); font-weight:700; font-size:.9rem; }
.form-row { display:grid; grid-template-columns:1fr 1fr; gap:1rem; }
.contact-form input,.contact-form select,.contact-form textarea { width:100%; border:1px solid #ccd5df; border-radius:9px; padding:.78rem .85rem; color:#1b2d45; background:#fff; outline:none; }
.contact-form input:focus,.contact-form select:focus,.contact-form textarea:focus { border-color:var(--gold); box-shadow:0 0 0 3px rgba(230,165,30,.13); }
.btn-full { width:100%; border:0; }
.hidden { display:none; }
.privacy-note { margin:0; color:var(--muted); font-size:.8rem; text-align:center; }
.privacy-note a { color:var(--navy); }
.site-footer { background:#071f40; color:#fff; padding:2.1rem max(5vw,24px) 1rem; }
.footer-top { display:flex; align-items:center; justify-content:space-between; gap:2rem; padding-bottom:1.3rem; border-bottom:1px solid rgba(255,255,255,.18); }
.footer-brand { font-family:'Allura',cursive; font-size:2.35rem; text-decoration:none; }
.footer-brand span { font-family:'DM Sans',sans-serif; font-size:.8rem; font-weight:700; margin-left:.35rem; }
.footer-links { display:flex; gap:1.1rem; flex-wrap:wrap; }
.footer-links a { color:#e9f0f7; text-decoration:none; font-size:.9rem; }
.footer-bottom { display:flex; justify-content:space-between; gap:2rem; color:#cbd6e3; font-size:.78rem; padding-top:1rem; }
.footer-bottom p { margin:0; }
.page-shell { min-height:72vh; display:grid; place-items:center; padding:5rem 5vw; background:linear-gradient(180deg,#fffaf2,#f6efe4); text-align:center; }
.page-card { width:min(760px,100%); background:#fff; border-radius:22px; padding:3rem; box-shadow:var(--shadow); }
.page-card .script-heading::after { margin-left:auto; margin-right:auto; }
.page-card p { color:#50627a; }
.page-card .btn { margin-top:1rem; }
@media (max-width: 1020px) {
  .nav { gap:.9rem; font-size:.86rem; }
  .priority-grid { grid-template-columns:repeat(2,1fr); }
  .photo-grid { grid-template-columns:1.25fr 1fr; }
  .photo-grid figure:last-child { grid-column:1 / -1; min-height:280px; }
  .vote-strip { grid-template-columns:1fr 1.25fr; }
  .vote-strip a { grid-column:1 / -1; }
}
@media (max-width: 820px) {
  .site-header { min-height:74px; }
  .brand-copy strong { font-size:1.9rem; }
  .brand-copy small { font-size:.72rem; }
  .menu-toggle { display:block; }
  .nav { position:absolute; left:0; right:0; top:74px; display:none; flex-direction:column; align-items:stretch; gap:0; padding:1rem 5vw 1.3rem; background:#fff; box-shadow:0 18px 28px rgba(8,44,92,.12); }
  .nav.open { display:flex; }
  .nav a { padding:.75rem 0; }
  .nav-cta { text-align:center; margin-top:.35rem; }
  .hero { min-height:620px; background-position:64% center; }
  .hero-overlay { background:linear-gradient(90deg,rgba(255,250,240,.97) 0%,rgba(255,250,240,.88) 60%,rgba(255,250,240,.20) 100%); }
  .hero-inner { margin-left:6vw; padding:5rem 0 7rem; }
  .intro,.involved,.contact { grid-template-columns:1fr; gap:2.4rem; }
  .intro .feature-photo,.candidate-photo-card { order:-1; }
  .candidate-portrait { max-height:620px; object-position:center 34%; }
  .involved-copy { margin-left:0; }
  .contact-copy { position:static; }
  .photo-grid { grid-template-columns:1fr 1fr; }
  .vote-strip { grid-template-columns:1fr; gap:.7rem; }
  .vote-strip a { grid-column:auto; }
}
@media (max-width: 580px) {
  .site-header { padding:0 4vw; }
  .brand-mark { width:42px; }
  .brand-copy strong { font-size:1.65rem; }
  .brand-copy small { font-size:.66rem; }
  .hero { min-height:660px; background-position:70% center; }
  .hero-overlay { background:linear-gradient(180deg,rgba(255,250,240,.96) 0%,rgba(255,250,240,.84) 58%,rgba(255,250,240,.26) 100%); }
  .hero-inner { width:88vw; margin:0 auto; padding:4.6rem 0 9rem; }
  .hero h1 { font-size:clamp(2.65rem,13vw,4rem); }
  .hero-actions { flex-direction:column; align-items:stretch; }
  .section { width:90vw; padding:4.2rem 0; }
  .section-soft { width:100%; padding:4.2rem 5vw; }
  .priority-grid { grid-template-columns:1fr; }
  .photo-grid { grid-template-columns:1fr; }
  .photo-grid figure,.photo-grid figure:last-child { grid-column:auto; min-height:250px; }
  .candidate-portrait { aspect-ratio:4/5; object-position:center 32%; }
  .form-row { grid-template-columns:1fr; }
  .footer-top,.footer-bottom { flex-direction:column; align-items:flex-start; gap:.8rem; }
  .footer-brand span { display:block; margin-left:0; margin-top:-.2rem; }
}