/* Scoped to the Civic project family. Reuses the theme's Stonewaller headings,
   system body font, navy/blue, brand red, rounded cards and pill buttons. */
.aa-civic { --civic-blue:#003087; --civic-navy:#002868; --civic-red:#a32318; --civic-ink:#0a142f; --civic-muted:#475569; --civic-line:#dbe2ea; color:var(--civic-ink); background:#fff; }
.aa-civic *, .aa-civic *::before, .aa-civic *::after { box-sizing:border-box; }
.aa-civic-wrap { width:min(1280px, calc(100% - 40px)); margin-inline:auto; }
.aa-civic h1, .aa-civic h2, .aa-civic h3 { color:var(--civic-blue); line-height:1.12; font-weight:400; overflow-wrap:break-word; }
.aa-civic h1 { font-size:clamp(2.8rem,5.4vw,4.25rem); margin:0 0 1.5rem; }
.aa-civic h2 { font-size:clamp(2.15rem,3.7vw,3.25rem); margin:0 0 1.25rem; }
.aa-civic h3 { font-size:1.65rem; margin:0 0 .9rem; }
.aa-civic p { margin:0 0 1.15rem; line-height:1.75; }
.aa-civic a { text-underline-offset:4px; }
.aa-civic a:focus-visible, .aa-civic button:focus-visible, .aa-civic summary:focus-visible, .aa-civic input:focus-visible, .aa-civic [tabindex]:focus-visible { outline:3px solid #bd6600; outline-offset:5px; }
.aa-civic [id] { scroll-margin-top:2rem; }
.aa-civic-skip { position:absolute; top:auto; left:-10000px; z-index:100; padding:1rem; background:#fff; color:var(--civic-blue); }
.aa-civic-skip:focus { position:fixed; left:1rem; top:1rem; }
.aa-civic-breadcrumbs { padding-block:1.5rem; font-size:.85rem; color:var(--civic-muted); }
.aa-civic-breadcrumbs nav { display:flex; flex-wrap:wrap; align-items:center; gap:.55rem; }
.aa-civic-breadcrumbs a { color:inherit; text-decoration:underline; }
.aa-civic-hero { padding:3rem 0 4.5rem; background:linear-gradient(130deg,#f7f9fc,#fff 72%); border-bottom:1px solid #edf0f4; }
.aa-civic-hero-grid { display:grid; grid-template-columns:minmax(0,1.35fr) minmax(0,1fr); gap:clamp(2rem,5vw,5rem); align-items:center; }
.aa-civic-eyebrow { font-family:inherit; font-size:.75rem; font-weight:800; letter-spacing:.1em; text-transform:uppercase; color:var(--civic-red); }
.aa-civic-lead { font-size:clamp(1.2rem,1.7vw,1.45rem); line-height:1.5 !important; color:var(--civic-blue); max-width:38rem; }
.aa-civic-intro { color:var(--civic-muted); max-width:43rem; }
.aa-civic-actions { display:flex; flex-wrap:wrap; gap:.8rem; margin:1.7rem 0 1rem; }
.aa-civic-button { display:inline-flex; align-items:center; justify-content:center; gap:.8rem; min-height:48px; padding:.85rem 1.4rem; border:2px solid var(--civic-red); border-radius:999px; color:#fff !important; background:var(--civic-red); font-size:.95rem; font-family:inherit; font-weight:700; line-height:1.4; text-align:center; text-decoration:none !important; transition:background-color .15s ease,border-color .15s ease; }
.aa-civic-button:hover { background:#7d1b12; border-color:#7d1b12; }
.aa-civic-button-outline { color:var(--civic-blue) !important; background:transparent; border-color:var(--civic-blue); }
.aa-civic-button-outline:hover { background:#edf3fc; border-color:var(--civic-blue); }
.aa-civic-small { color:var(--civic-muted); font-size:.83rem; }
.aa-civic-hero-media { margin:0; overflow:hidden; border-radius:1.5rem; border:1px solid var(--civic-line); background:#fff; box-shadow:0 18px 45px -30px #00286866; }
.aa-civic-hero-media img { display:block; width:100%; height:auto; aspect-ratio:4/3; object-fit:cover; }
.aa-civic-hero-media figcaption { padding:1.1rem 1.4rem; color:var(--civic-blue); font-size:.85rem; font-weight:700; }
.aa-civic-section { padding-block:5rem; }
.aa-civic-section-heading { max-width:50rem; margin-bottom:2.4rem; }
.aa-civic-section-heading > p:last-child { color:var(--civic-muted); font-size:1.05rem; }
.aa-civic-grid { display:grid; gap:1.5rem; }
.aa-civic-approach-grid { grid-template-columns:repeat(6,minmax(0,1fr)); }
.aa-civic-approach-card { grid-column:span 2; padding:1.75rem; }
.aa-civic-approach-card:nth-child(n+4) { grid-column:span 3; }
.aa-civic-card { overflow:hidden; border:1px solid var(--civic-line); border-radius:.8rem; background:#fff; box-shadow:0 4px 10px -7px #0a142f33; }
.aa-civic-card p { color:var(--civic-muted); }
.aa-civic-icon { display:grid; place-items:center; width:3rem; height:3rem; border-radius:.75rem; background:#edf3fc; color:var(--civic-blue); font-size:1.25rem; margin-bottom:1.4rem; }
.aa-civic-approach-card p { margin-bottom:0; font-size:.95rem; }
.aa-civic-nyc { background:var(--civic-blue); color:#fff; }
.aa-civic-nyc-grid { display:grid; grid-template-columns:minmax(0,1.2fr) minmax(0,1fr); gap:clamp(2rem,6vw,6rem); align-items:center; }
.aa-civic-nyc h2 { color:#fff; font-size:clamp(3rem,5.5vw,4.75rem); }
.aa-civic-nyc .aa-civic-eyebrow { color:#d9e7ff; }
.aa-civic-nyc p { color:#edf3ff; }
.aa-civic-nyc-intro { font-size:1.12rem; }
.aa-civic-nyc .aa-civic-button { margin-top:1rem; }
.aa-civic-button-light { background:#fff; border-color:#fff; color:var(--civic-blue) !important; }
.aa-civic-button-light:hover { background:#e8effa; border-color:#e8effa; }
.aa-civic-nyc-list { padding:2rem; border:1px solid #ffffff40; border-radius:1rem; background:#ffffff0c; }
.aa-civic-nyc-list h3 { color:#fff; font-size:2rem; }
.aa-civic-nyc-list ul { display:grid; gap:1rem; padding:0 0 0 1.2rem; margin:1.2rem 0 0; list-style:disc; }
.aa-civic-nyc-list li { padding-inline-start:.25rem; line-height:1.6; }
.aa-civic-nyc-mark { display:block; font-size:2.3rem; color:#fff; margin-bottom:1.4rem; }
.aa-civic-resource-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
.aa-civic-resource-card { display:flex; flex-direction:column; }
.aa-civic-resource-card h3 { font-size:1.6rem; line-height:1.2; }
.aa-civic-resource-card h3 a { color:inherit; text-decoration:none; }
.aa-civic-resource-card h3 a:hover { color:var(--civic-red); text-decoration:underline; }
.aa-civic-card-body { display:flex; flex:1; flex-direction:column; padding:1.5rem; }
.aa-civic-card-body p { font-size:.95rem; }
.aa-civic-meta { display:block; color:var(--civic-muted) !important; font-size:.8rem !important; font-weight:600; margin-bottom:.7rem !important; }
.aa-civic-text-link { display:inline-flex; align-items:center; gap:.5rem; color:var(--civic-red); font-weight:700; margin-top:auto; padding-top:.6rem; }
.aa-civic-video-image, .aa-civic-article-image { position:relative; display:block; }
.aa-civic-video-image img, .aa-civic-article-image img { display:block; width:100%; height:auto; aspect-ratio:16/9; object-fit:cover; }
.aa-civic-play { position:absolute; left:50%; top:50%; transform:translate(-50%,-50%); display:grid; place-items:center; width:3.5rem; height:3.5rem; border-radius:50%; color:var(--civic-blue); background:#fff; box-shadow:0 3px 18px #0004; }
.aa-civic-soft { background:#f7f9fc; border-block:1px solid #edf0f4; }
.aa-civic-support { background:var(--civic-navy); }
.aa-civic-support-grid { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:3rem; }
.aa-civic-support h2 { color:#fff; max-width:42rem; }
.aa-civic-support p { color:#eef3fc; max-width:49rem; margin-bottom:0; }
.aa-civic-support .aa-civic-eyebrow { color:#d5e3ff; margin-bottom:1rem; }
.aa-civic-support .aa-civic-button { border-color:#fff; }
.aa-civic-nonpartisan { padding-block:2rem; background:#f7f9fc; border-top:1px solid #e2e8f0; }
.aa-civic-nonpartisan p { max-width:66rem; margin:0; color:var(--civic-muted); font-size:.88rem; line-height:1.8; }
/* Guide content remains editable in the WordPress project editor. */
.aa-civic-guide { padding-block:1rem 4rem; }
.aa-civic-guide a { color:var(--civic-blue); text-decoration:underline; }
.aa-vg-nav { display:flex; flex-wrap:wrap; gap:.65rem 1.4rem; padding:1rem 0 1.5rem; border-bottom:1px solid var(--civic-line); font-size:.9rem; }
.aa-vg-hero { display:grid; grid-template-columns:minmax(0,1.4fr) minmax(0,1fr); gap:3rem; padding:3rem 0; }
.aa-civic-guide .aa-vg-title { font-size:clamp(3rem,5vw,4.25rem); }
.aa-vg-eyebrow, .aa-vg-tag { color:var(--civic-red); font-size:.75rem; font-weight:800; letter-spacing:.1em; text-transform:uppercase; }
.aa-vg-muted, .aa-vg-source { color:var(--civic-muted); }
.aa-vg-source { font-size:.84rem; margin-top:1.5rem !important; }
.aa-vg-buttons { display:flex; flex-wrap:wrap; gap:.8rem; margin:1.5rem 0 1rem; }
.aa-civic-guide .aa-vg-button, .aa-civic-guide button { display:inline-block; color:#fff; background:var(--civic-red); border:2px solid var(--civic-red); border-radius:999px; padding:.75rem 1.2rem; font-family:inherit; font-size:.95rem; font-weight:700; line-height:1.5; text-decoration:none; cursor:pointer; }
.aa-civic-guide .aa-vg-secondary { background:#fff; color:var(--civic-blue); border-color:var(--civic-blue); }
.aa-vg-date-card { border-radius:1rem; padding:2rem; background:var(--civic-blue); color:#fff; align-self:center; }
.aa-vg-date-card .aa-vg-eyebrow, .aa-vg-date-card h3, .aa-vg-date-card a { color:#fff; }
.aa-vg-big { font-family:'Stonewaller',sans-serif; font-size:clamp(3.5rem,6vw,5rem); line-height:1.15; margin:1rem 0; }
.aa-vg-notice { padding:1.25rem 1.5rem; border-inline-start:4px solid var(--civic-blue); background:#edf3fc; line-height:1.7; }
.aa-vg-quick { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); margin:2rem 0 3rem; border:1px solid var(--civic-line); border-radius:.75rem; overflow:hidden; }
.aa-vg-quick a { padding:1.2rem; font-weight:700; border:1px solid #edf0f4; }
.aa-vg-quick small { display:block; color:var(--civic-muted); font-weight:400; margin-top:.5rem; }
.aa-civic-guide section { padding-block:3rem; border-top:1px solid var(--civic-line); }
.aa-vg-section-top { display:flex; flex-wrap:wrap; align-items:baseline; justify-content:space-between; gap:1rem; }
.aa-vg-pill { font-size:.8rem; padding:.35rem .75rem; border:1px solid var(--civic-line); border-radius:999px; }
.aa-vg-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1.5rem; }
.aa-vg-two { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:2rem; }
.aa-vg-card { padding:1.6rem; border:1px solid var(--civic-line); border-radius:.8rem; background:#fff; }
.aa-vg-card ul, .aa-civic-guide ol { padding-left:1.4rem; list-style:revert; line-height:1.8; margin-bottom:1.5rem; }
.aa-civic-guide .aa-vg-table-wrap { overflow-x:auto; margin:1.5rem 0; border:1px solid var(--civic-line); border-radius:.75rem; }
.aa-civic-guide table { width:100%; border-collapse:collapse; font-size:.95rem; }
.aa-civic-guide caption { text-align:left; padding:1rem; font-weight:700; background:#f7f9fc; }
.aa-civic-guide th, .aa-civic-guide td { padding:1rem; text-align:left; vertical-align:top; border-bottom:1px solid var(--civic-line); line-height:1.6; }
.aa-civic-guide th { background:#edf3fc; color:var(--civic-blue); }
.aa-civic-guide td:first-child { font-weight:700; }
.aa-civic-guide details { padding:1.2rem 0; border-bottom:1px solid var(--civic-line); }
.aa-civic-guide summary { display:list-item; cursor:pointer; color:var(--civic-blue); font-weight:700; font-size:1.1rem; padding:.25rem 0; }
.aa-civic-guide details p { margin:1rem 0; max-width:60rem; }
.aa-vg-checklist label { display:flex; align-items:baseline; gap:.8rem; padding:.85rem 0; border-bottom:1px solid var(--civic-line); cursor:pointer; line-height:1.6; }
.aa-vg-checklist input { flex:none; width:1.2rem; height:1.2rem; accent-color:var(--civic-red); }
.aa-vg-help { background:var(--civic-navy); color:#fff; padding:2rem; margin:2rem 0; border-radius:1rem; }
.aa-vg-help h2, .aa-vg-help a, .aa-vg-help .aa-vg-eyebrow { color:#fff; }
.aa-vg-sources { padding:2rem 0; border-top:1px solid var(--civic-line); color:var(--civic-muted); font-size:.9rem; }
@media (max-width:1023px) {
    .aa-civic-resource-grid, .aa-civic-approach-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .aa-civic-approach-card, .aa-civic-approach-card:nth-child(n+4) { grid-column:auto; }
    .aa-civic-approach-card:last-child { grid-column:span 2; }
    .aa-civic-hero-grid { gap:2rem; }
    .aa-civic-support-grid { grid-template-columns:1fr; gap:1.5rem; }
    .aa-civic-support-grid > a { justify-self:start; }
    .aa-vg-quick, .aa-vg-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:767px) {
    .aa-civic-hero-grid, .aa-civic-nyc-grid, .aa-vg-hero, .aa-vg-two { grid-template-columns:1fr; }
    .aa-civic-section { padding-block:3.5rem; }
    .aa-civic-hero { padding:1.5rem 0 3rem; }
    .aa-civic-hero-media { max-width:32rem; }
    .aa-civic-hero-media img { aspect-ratio:16/9; }
    .aa-civic-nyc-list { padding:1.5rem; }
    .aa-civic-guide th, .aa-civic-guide td { padding:.75rem; }
    .aa-vg-hero { gap:1.5rem; }
}
@media (max-width:639px) {
    .aa-civic-resource-grid, .aa-civic-approach-grid, .aa-vg-grid, .aa-vg-quick { grid-template-columns:1fr; }
    .aa-civic-approach-card:last-child { grid-column:auto; }
    .aa-civic-approach-card { padding:1.5rem; }
    .aa-civic-button { width:100%; }
    .aa-civic-actions { align-items:stretch; }
    .aa-civic-guide table { font-size:.85rem; }
    .aa-civic-guide th, .aa-civic-guide td { padding:.6rem; overflow-wrap:anywhere; }
}
@media (prefers-reduced-motion:reduce) {
    .aa-civic *, .aa-civic *::before, .aa-civic *::after { animation:none !important; transition:none !important; scroll-behavior:auto !important; }
}
@media print {
    body > header, body > footer, .aa-civic-breadcrumbs, .aa-vg-nav, .aa-vg-buttons, .aa-civic-guide button, .aa-vg-quick, #pointer-dot, #pointer-ring, #chatbot-container { display:none !important; }
    .aa-civic-guide { width:100%; padding:0; }
    .aa-civic-guide section { padding-block:1rem; }
    .aa-vg-date-card, .aa-vg-help { background:#fff; color:#000; border:1px solid #777; break-inside:avoid; }
    .aa-vg-date-card *, .aa-vg-help * { color:#000 !important; }
    .aa-civic-guide details::details-content { content-visibility:visible; }
    .aa-civic-guide .aa-vg-table-wrap { overflow:visible; }
}
