/* Vote Guard Academy preview - Vote Guard red/blue brand (colors taken from the prototype) */
:root{--vg-red:#ba252b;--vg-red-focus:#d23237;--vg-blue:#174f85;--vg-navy:#102f51;--vg-ink:#18334e;
--vg-bg:#f7f8fa;--vg-panel:#ffffff;--vg-line:#d7e0e9;--vg-tint:#eef3f7;--vg-muted:#4f6377}
*{box-sizing:border-box}
html{font-size:20px}
body{margin:0;overflow-x:hidden;background:var(--vg-bg);color:var(--vg-ink);font:1rem/1.6 Arial,Helvetica,sans-serif}
a{color:var(--vg-blue);text-underline-offset:4px}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--vg-red-focus);outline-offset:3px}
.skip{position:absolute;left:12px;top:-100px;background:#fff;padding:8px}.skip:focus{top:12px}
.election-label{background:var(--vg-navy);color:#fff;padding:10px 16px;text-align:center;font-weight:700;font-size:.9rem}
header{background:#fff;border-bottom:4px solid var(--vg-red)}
.bar{max-width:1100px;margin:auto;padding:12px 16px;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px}
.brand img{display:block;width:240px;max-width:60vw;height:auto}
.whoami{margin:0;font-size:.85rem}
nav ul{list-style:none;margin:0 auto;padding:0 16px 10px;max-width:1100px;display:flex;flex-wrap:wrap;gap:6px 18px}
nav a{font-weight:700;text-decoration:none;font-size:.9rem;display:inline-block;padding:6px 0}
nav a[aria-current=page]{color:var(--vg-red);text-decoration:underline}
main{max-width:1100px;margin:auto;padding:24px 16px 48px}
h1{font-size:2rem;line-height:1.15;margin:.4em 0}h2{font-size:1.5rem;margin:1.4em 0 .5em}h3{font-size:1.2rem;margin:.2em 0}
.eyebrow{letter-spacing:2px;text-transform:uppercase;font-size:.75rem;font-weight:700;color:#a9c9e6}
.lede{font-size:1.2rem}
.cards{list-style:none;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px}
.card{background:var(--vg-panel);border:1px solid var(--vg-line);border-radius:12px;padding:18px}
.tag{display:inline-block;font-size:.8rem;font-weight:700;padding:2px 10px;border-radius:999px;background:var(--vg-tint);border:1px solid var(--vg-line)}
.tag.pending,.tag.draft,.tag.changes_requested{background:#fff4e5;border-color:#e0b46b}
.tag.reviewed,.tag.approved{background:#e7f4ea;border-color:#7cb88a}
.tag.owner_endorsed{background:#e8f0fa;border-color:#8fb0d6}
.synthetic{background:#fdecec;border:2px solid var(--vg-red);border-radius:8px;padding:12px 16px}
.synthetic-inline{font-size:.85rem;color:var(--vg-red)}
.warning,.note{background:var(--vg-tint);border-left:6px solid var(--vg-blue);padding:12px 16px}
.error{background:#fdecec;border-left:6px solid var(--vg-red);padding:12px 16px}
.result{background:#edf3f8;border-left:6px solid var(--vg-blue);padding:12px 16px}
blockquote.source{margin:12px 0;padding:10px 16px;border-left:4px solid var(--vg-line);background:#fff}
blockquote.source cite{display:block;font-size:.8rem;color:var(--vg-muted)}
label{display:block;font-weight:700;margin:14px 0 6px}
.choice{display:flex;gap:10px;align-items:flex-start;margin:8px 0}.choice label{margin:0;font-weight:400}
.choice input{width:24px;height:24px;margin-top:4px;flex:none}
input[type=text],select,textarea{width:100%;max-width:100%;font:inherit;padding:10px;border:1px solid #b7c7d5;border-radius:7px;background:#fff;color:var(--vg-ink)}
fieldset{border:1px solid var(--vg-line);border-radius:10px;margin:14px 0;padding:12px 16px;background:#fff}
legend{font-weight:700;padding:0 6px}
.hint{margin:0 0 6px;font-size:.85rem;color:var(--vg-muted)}
button,.button{display:inline-block;margin-top:14px;background:var(--vg-red);color:#fff;border:0;border-radius:8px;padding:12px 20px;font:inherit;font-weight:700;text-decoration:none;cursor:pointer;min-height:44px}
button.secondary{background:#fff;color:var(--vg-blue);border:2px solid var(--vg-blue)}
table{width:100%;border-collapse:collapse;margin:12px 0;background:#fff;display:block;overflow-x:auto}
th,td{text-align:left;border-bottom:1px solid #cdd8e2;padding:10px;vertical-align:top}th{background:#eaf0f5}
caption{text-align:left;font-weight:700;padding:6px 0}
.logo-large{width:100%;max-width:520px;height:auto}
footer{background:#0d2945;color:#dce6ef;padding:24px 16px;text-align:center;font-size:.85rem}
footer p{max-width:900px;margin:8px auto}footer .credit{font-size:.75rem;opacity:.85}
.demo-banner{background:#fff4e5;color:#5a3b00;border-bottom:1px solid #e0b46b;padding:8px 16px;text-align:center;font-size:.85rem}
/* Illustrations: proportions always preserved (height:auto, no cropping) */
.media{margin:0}
.media img{display:block;width:100%;height:auto;border-radius:12px;background:var(--vg-tint)}
.media figcaption{font-size:.75rem;color:var(--vg-muted);margin-top:6px}
.full-bleed{width:100vw;margin-left:calc(50% - 50vw);margin-top:-24px}
.hero-band{background:var(--vg-navy);color:#fff;padding:32px 16px 36px}
.hero-band a{color:#bedbf6}.hero-band a.button{color:#fff}
.hero-band .media figcaption{color:#c9d8e6}
.hero-grid{max-width:1100px;margin:auto;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:28px;align-items:center}
.hero-text h1{margin-top:.2em}
.page-hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:24px;align-items:center;margin-bottom:12px}
.hero-media img,.page-media img,.cards .card{animation:vg-rise .6s ease-out both}
.cards .card:nth-child(2){animation-delay:.06s}.cards .card:nth-child(3){animation-delay:.12s}.cards .card:nth-child(n+4){animation-delay:.18s}
@keyframes vg-rise{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.card{transition:box-shadow .2s ease,transform .2s ease}
.card:hover{box-shadow:0 6px 18px rgba(16,47,81,.12);transform:translateY(-2px)}
@media (max-width:760px){.hero-grid,.page-hero{grid-template-columns:1fr}.hero-band{padding:24px 16px}}
@media (max-width:600px){html{font-size:19px}h1{font-size:1.6rem}main{padding:16px}.full-bleed{margin-top:-16px}}
@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}.card:hover{transform:none}}
