/**
 * AXPC component styles — rebuilt 1:1 from the production scrape.
 * Consumes the :root tokens in style.css (--axpc-*). Mobile-first;
 * Elementor breakpoints mirrored at 768 / 1025. Colors resolved from Kit:
 * primary #EF5823, secondary #135778, text #3A526A, accent #05ACCF, light #F8F8F8.
 */

/* ============================ Base shell ============================ */
.site-main--sections { max-width: none; padding: 0; margin: 0; }
/* Elementor's default container padding (10% / 15% / 20% top and bottom, 5% sides) is measured against the boxed
   inner width (90% of the page), so it lands at 9% / 13.5% / 18% of a section's own width. */
:root { --axpc-pad-block: 18%; }
@media (min-width: 768px) { :root { --axpc-pad-block: 13.5%; } }
@media (min-width: 1025px) { :root { --axpc-pad-block: 9%; } }
img { max-width: 100%; height: auto; }

.axpc-section { position: relative; background-size: cover; background-position: center; }
.axpc-section__inner { width: 100%; max-width: var(--axpc-container); margin-inline: auto; padding-inline: var(--axpc-gutter); }
.axpc-section--narrow .axpc-section__inner { max-width: 780px; }
.axpc-section--pt-md { padding-top: var(--axpc-space-md); } .axpc-section--pb-md { padding-bottom: var(--axpc-space-md); }
.axpc-section--pt-lg { padding-top: var(--axpc-space-lg); } .axpc-section--pb-lg { padding-bottom: var(--axpc-space-lg); }
.axpc-section--align-center { text-align: center; }
.axpc-section__title { font-family: var(--axpc-font-display); font-size: var(--axpc-fs-h2); color: var(--axpc-secondary); margin: 0 0 var(--axpc-space-md); }
@media (min-width: 1025px) { .axpc-section--pt-lg { padding-top: calc(var(--axpc-space-lg) * 1.4); } .axpc-section--pb-lg { padding-bottom: calc(var(--axpc-space-lg) * 1.4); } }

/* ============================ Buttons ============================ */
.axpc-btn { display: inline-block; font-family: var(--axpc-font-body); font-weight: 700; font-size: 1.1rem; line-height: 1.5; color: #fff; background: var(--axpc-secondary); border: 0; border-radius: 0; padding: 1rem; text-decoration: none; cursor: pointer; transition: background-color .2s, color .2s; }
/* The starter theme's a:visited (purple) and a:focus (navy) outrank a bare class, so every state is set here. Hover and
   focus turn the button white with navy text, as the Elementor kit's buttons did. */
.axpc-btn:visited { color: #fff; }
.axpc-btn:hover, .axpc-btn:focus { background: #fff; color: var(--axpc-secondary); }
.axpc-btn--primary { background: var(--axpc-primary); }
.axpc-btn--primary:hover, .axpc-btn--primary:focus { background: var(--axpc-secondary); color: #fff; }
.axpc-btn--secondary { background: var(--axpc-secondary); }
@media (min-width: 768px) { .axpc-btn { padding: 1rem 1.5rem; } }
@media (min-width: 1025px) { .axpc-btn { font-size: 1.25rem; padding: 1.5rem 2rem; } }

/* ============================ Header ============================ */
/* Production (Elementor 222): no logo, a transparent 1rem-padded bar holding only the menu icon, pulled 7rem over
   every page's hero; once scrolled it turns #F8F8F8 with a soft shadow and a slate icon. */
.site-header { position: sticky; top: 0; z-index: 100; background: transparent; margin-bottom: -7rem; transition: background-color 1s ease, box-shadow 1s ease; }
.site-header__inner { display: flex; align-items: center; justify-content: flex-end; padding: 1rem; }
.site-header__toggle { height: 40px; }
.site-header__toggle { background: none; border: 0; cursor: pointer; padding: 0; line-height: 0; }
.site-header__bars { display: block; width: auto; height: 2rem; fill: var(--axpc-text); transition: fill 1s ease; }
.axpc-hero-dark .site-header__bars { fill: #fff; }
.site-header.is-stuck { background: #F8F8F8; box-shadow: 0 0 5px rgba(0,0,0,.15); }
.site-header.is-stuck .site-header__bars { fill: var(--axpc-text); }

/* Menu (production's popup 225): a 360px slate panel sliding in from the right over the page (no dimming), a soft
   shadow, the close mark top right, then the four links with their icons, 4rem 2rem in (5rem on a computer). */
.axpc-navpanel { position: fixed; top: 0; right: 0; bottom: 0; z-index: 200; width: 360px; max-width: 100%; box-sizing: border-box; background: var(--axpc-text); box-shadow: 2px 8px 5px rgba(0,0,0,.15); padding: 4rem 2rem; transform: translateX(100%); transition: transform .4s ease; }
@media (min-width: 1025px) { .axpc-navpanel { padding: 5rem 2rem; } }
.axpc-navpanel[hidden] { display: none; }
.axpc-navpanel.is-open { transform: translateX(0); }
.axpc-navpanel__close { position: absolute; top: 20px; right: 20px; width: 24px; height: 24px; padding: 0; background: none; border: 0; color: #fff; cursor: pointer; line-height: 0; }
.axpc-navpanel__close svg { width: 100%; height: 100%; }
.axpc-navpanel__list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 2rem; }
.axpc-navpanel__list a { display: flex; align-items: center; color: #fff; font-family: var(--axpc-font-body); font-weight: 700; font-size: 1.1rem; line-height: 1.5; text-decoration: none; transition: color .3s; }
@media (min-width: 1025px) { .axpc-navpanel__list a { font-size: 1.25rem; } }
.axpc-navpanel__list a:hover { color: #F8F8F8; }
.axpc-navpanel__icon { flex: 0 0 1.5rem; width: 1.5rem; height: 1.5rem; margin-right: calc(1rem + 11px); color: #F8F8F8; line-height: 0; }
.axpc-navpanel__icon svg { width: 100%; height: 100%; fill: currentColor; }

/* ============================ Footer ============================ */
/* Override the _s base `.site-footer{padding:2em 1em}` so bands are full-bleed. */
.site-footer { padding: 0; margin: 0; }
/* Newsletter band (Elementor 17 › 92de38a): a 750px box, the h4 title, then the form 24px + 2rem below it. */
.site-footer__newsletter { background: var(--axpc-text); color: #fff; padding: var(--axpc-pad-block) 5%; }
.site-footer__newsletter-inner { max-width: 750px; margin: 0 auto; padding: 0; text-align: center; }
.site-footer__nl-title { font-family: var(--axpc-font-display); font-weight: 500; font-size: var(--axpc-fs-h4); line-height: 1; color: #fff; margin: 0; }
/* White band (f6e9f3c): the AXPC line in orange and Privacy Policy, in a 75% box on a computer. */
.site-footer__bottom { background: #fff; text-align: center; padding: var(--axpc-pad-block) 5%; }
.site-footer__bottom > * { max-width: 855px; margin-inline: auto; }
.site-footer__initiative { margin: 0 auto var(--axpc-widget-gap, 24px); font-family: var(--axpc-font-body); font-weight: 500; font-size: 1rem; line-height: 1; color: var(--axpc-primary); }
.site-footer__privacy { display: inline-block; vertical-align: top; font-family: var(--axpc-font-body); color: var(--axpc-text); text-decoration: none; font-weight: 500; font-size: 1rem; line-height: 1.5; }
.site-footer__privacy:hover { color: var(--axpc-primary); }

/* Gravity Forms — newsletter (footer + state), from the UAEL styler on production: white rounded inputs, white
   labels, an outlined white SIGN UP NOW. */
.axpc-gform { margin-top: var(--axpc-widget-gap, 24px); padding-top: 2rem; font-family: var(--axpc-font-body); }
.axpc-gform .gform_wrapper { max-width: 750px; margin: 0 auto; }
.axpc-gform .gform_wrapper.gravity-theme .gform_fields { display: flex; flex-wrap: wrap; gap: 16px 2%; }
.axpc-gform .gform_wrapper.gravity-theme .gform_validation_container { display: none !important; }
.axpc-gform .gform_wrapper.gravity-theme .gfield { flex: 0 0 100%; text-align: left; margin: 0 0 16px; }
@media (min-width: 641px) { .axpc-gform .gform_wrapper.gravity-theme .gfield--width-half, .axpc-gform .gform_wrapper.gravity-theme .gf_left_half, .axpc-gform .gform_wrapper.gravity-theme .gf_right_half { flex-basis: 49%; } }
.axpc-gform .gform_wrapper.gravity-theme .gfield_label { color: #fff; font-family: var(--axpc-font-body); font-weight: 400; font-size: 1rem; line-height: 1.5; display: block; margin: 0 0 16px; }
.axpc-gform .gform_wrapper.gravity-theme input[type="text"], .axpc-gform .gform_wrapper.gravity-theme input[type="email"], .axpc-gform .gform_wrapper.gravity-theme input[type="tel"], .axpc-gform .gform_wrapper.gravity-theme input[type="number"], .axpc-gform .gform_wrapper.gravity-theme .ginput_container input { width: 100%; background: #fff; border: 0; border-radius: 14px; padding: 12px 10px; color: var(--axpc-text); font-family: var(--axpc-font-body); font-size: 1rem; line-height: 1.5; box-sizing: border-box; }
.axpc-gform .gform_wrapper.gravity-theme .gform_footer { display: flex; justify-content: center; text-align: center; margin: 6px 0 0; padding: 16px 0; }
.axpc-gform .gform_wrapper.gravity-theme .gform_button, .axpc-gform .gform_wrapper.gravity-theme input[type="submit"] { background: transparent; color: #fff; border: 2px solid #fff; border-radius: 3px; padding: 16px 32px; margin: 0 0 8px; font-family: var(--axpc-font-body); font-weight: 500; font-size: 1rem; line-height: 1.5; text-transform: uppercase; cursor: pointer; transition: background-color .2s, color .2s; }
.axpc-gform .gform_wrapper.gravity-theme .gform_button:hover, .axpc-gform .gform_wrapper.gravity-theme input[type="submit"]:hover { background: #fff; color: var(--axpc-text); }
/* Gravity Forms AJAX submit iframe is hidden plumbing — never show it (it renders with a default 2px inset border otherwise). */
.axpc-gform iframe, iframe.gform_ajax_frame, iframe[name^="gform_ajax_frame"] { display: none !important; }

/* ============================ HOME ============================ */
/* Elementor stacks a container's widgets 24px apart. */
:root { --axpc-widget-gap: 24px; }
.axpc-home h1, .axpc-home h2, .axpc-home h3 { font-weight: 500; }

/* 1. Hero (b095e4f): flag bg center-left + slate→transparent overlay; padding, an 8rem spacer (4rem ≤1024) and the
   graphic at 80% of the 1140 box (100% on a phone). The header's -7rem pulls it 40px up under the menu bar. */
.axpc-home-hero { position: relative; background-color: var(--axpc-secondary); background-size: cover; background-position: center left; background-repeat: no-repeat; min-height: 20rem; display: block; padding: calc(var(--axpc-pad-block) + 4rem + var(--axpc-widget-gap)) 5% var(--axpc-pad-block); }
@media (min-width: 1025px) { .axpc-home-hero { padding-top: calc(var(--axpc-pad-block) + 8rem + var(--axpc-widget-gap)); } }
.axpc-home-hero::before { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, var(--axpc-text) 15%, rgba(58,82,106,0) 100%); opacity: .8; }
.axpc-home-hero__inner { position: relative; z-index: 1; max-width: 1140px; margin: 0 auto; text-align: center; }
.axpc-home-hero__graphic { width: 80%; height: auto; margin: 0 auto; display: block; }
@media (max-width: 767px) { .axpc-home-hero__graphic { width: 100%; } }

/* 2. Orange band (ec28297, 800px box) */
.axpc-home-intro { background: var(--axpc-primary); color: #fff; text-align: center; padding: var(--axpc-pad-block) 5%; }
.axpc-home-intro__inner { max-width: 800px; margin: 0 auto; }
.axpc-home-intro__title { font-family: var(--axpc-font-display); font-size: var(--axpc-fs-h2); margin: 0 0 var(--axpc-widget-gap); line-height: 1; color: #fff; }
.axpc-home-intro__text { font-family: var(--axpc-font-heading-bold); font-weight: 500; font-size: var(--axpc-fs-h5); line-height: 1.5; margin: 0 0 var(--axpc-widget-gap); }
@media (max-width: 767px) { .axpc-home-intro__text { line-height: 1.4; } }

/* 3. Make your voice heard + action cards (b380584 / 9fd7f24): two cards a row, 30% of the 958px box (629px on a
   tablet), 3rem apart (2rem on a tablet), full width on a phone. */
.axpc-home-actions { text-align: center; padding: var(--axpc-pad-block) 5%; }
.axpc-home-actions .axpc-section__inner { max-width: 1140px; padding-inline: 0; }
.axpc-home-actions .axpc-section__title { color: var(--axpc-secondary); font-size: var(--axpc-fs-h2); line-height: 1; margin: 0 0 var(--axpc-widget-gap); }
.axpc-actioncards { --card: 100%; display: flex; flex-wrap: wrap; justify-content: center; gap: 3rem 1rem; margin: 0 auto; padding: 2rem 0 4rem; }
.axpc-actioncard { position: relative; flex: 0 0 var(--card); box-sizing: border-box; min-height: 200px; background: var(--axpc-light); border: 4px solid var(--axpc-secondary); border-radius: 2rem; padding: 15%; display: flex; align-items: center; justify-content: center; text-decoration: none; transition: transform .2s, box-shadow .2s; }
@media (min-width: 768px) {
	.axpc-actioncards { --card: calc(629px * .3); gap: 2rem; padding: 1rem; max-width: calc(2 * var(--card) + 2rem + 2rem); }
	.axpc-actioncard { padding: 2.5%; }
}
@media (min-width: 1025px) {
	.axpc-actioncards { --card: calc(958px * .3); gap: 3rem; padding: 2rem 1rem; max-width: calc(2 * var(--card) + 3rem + 2rem); }
	.axpc-actioncard { min-height: 250px; padding: 5%; }
}
.axpc-actioncard:hover { transform: scale(1.02); box-shadow: 0 0 10px rgba(0,0,0,.5); }
.axpc-actioncard--orange { border-color: var(--axpc-primary); }
.axpc-actioncard__icon { position: absolute; top: -2rem; left: 50%; transform: translateX(-50%); width: 4rem; height: 4rem; box-sizing: border-box; padding: 1rem; border-radius: 50%; background: var(--axpc-secondary); color: #fff; display: flex; align-items: center; justify-content: center; }
.axpc-actioncard--icon-orange .axpc-actioncard__icon { background: var(--axpc-primary); }
.axpc-actioncard__icon svg { width: 2rem; height: 2rem; fill: currentColor; }
@media (max-width: 1024px) { .axpc-actioncard__icon { top: -1.5rem; width: 3rem; height: 3rem; padding: .75rem; } .axpc-actioncard__icon svg { width: 1.5rem; height: 1.5rem; } }
.axpc-actioncard__label { font-family: var(--axpc-font-body); font-weight: 700; font-size: 1.1rem; line-height: 1.5; color: var(--axpc-secondary); text-align: center; }
@media (min-width: 1025px) { .axpc-actioncard__label { font-size: 1.25rem; } }

/* 4. Cyan callout band (f5deccf): 2rem padding (1rem sides ≤1024), heading + 50px arrow; the heading takes 60% on a
   phone, so it wraps. */
.axpc-cyanband { background: var(--axpc-accent); text-align: center; padding: 2rem 1rem; transition: transform .3s; }
@media (min-width: 1025px) { .axpc-cyanband { padding: 2rem; } }
.axpc-cyanband:hover { transform: scale(1.05); }
.axpc-cyanband__link { display: inline-flex; align-items: center; justify-content: center; gap: var(--axpc-widget-gap); color: #fff; text-decoration: none; }
.axpc-cyanband__title { font-family: var(--axpc-font-display); font-weight: 500; font-size: var(--axpc-fs-h3); line-height: 1; color: #fff; margin: 0; }
.axpc-cyanband__arrow { flex: 0 0 50px; width: 50px; height: 50px; color: #fff; line-height: 0; margin-bottom: -12px; }
.axpc-cyanband__arrow svg { width: 100%; height: 100%; }
@media (max-width: 767px) { .axpc-cyanband__link { gap: 0; } .axpc-cyanband__title { flex: 0 0 60%; text-align: left; } }

/* 6. Video (shared with state) — production: container padding 0, content-width 100% → full-bleed */
.axpc-videoblock { max-width: none; margin: 0; padding: 0; }
.axpc-video { position: relative; aspect-ratio: 16 / 9; background: #000; cursor: pointer; overflow: hidden; }
.axpc-video__poster { width: 100%; height: 100%; object-fit: cover; display: block; }
.axpc-video__play { position: absolute; inset: 0; margin: auto; width: 3rem; height: 3rem; padding: 0; border: 0; background: none; color: var(--axpc-primary); cursor: pointer; line-height: 0; }
.axpc-video__play svg { width: 100%; height: 100%; fill: currentColor; }
@media (min-width: 768px) { .axpc-video__play { width: 4rem; height: 4rem; } }
@media (min-width: 1025px) { .axpc-video__play { width: 5rem; height: 5rem; } }
.axpc-video iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }

/* ============================ THE MIDTERMS ============================ */
/* Hero (362 › a96510e): Frame-48 bottom-left under a white→transparent overlay at 80%; the title 10rem down
   (8rem on a tablet, 5rem on a phone), left-aligned in the 1140 box. */
.axpc-mt-hero { position: relative; background-color: var(--axpc-secondary); background-size: cover; background-position: bottom left; background-repeat: no-repeat; min-height: 20rem; padding: var(--axpc-pad-block) 5%; }
.axpc-mt-hero::before { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, #fff 15%, rgba(255,255,255,0) 100%); opacity: .8; }
.axpc-mt-hero__inner { position: relative; z-index: 1; max-width: 1140px; margin-inline: auto; width: 100%; }
.axpc-mt-hero__title { width: 80%; font-family: var(--axpc-font-display); font-weight: 500; font-size: var(--axpc-fs-h1); color: var(--axpc-secondary); margin: 5rem 0 0; line-height: 1; }
@media (min-width: 768px) { .axpc-mt-hero__title { width: 60%; margin-top: 8rem; } }
@media (min-width: 1025px) { .axpc-mt-hero__title { width: 50%; margin-top: 10rem; } }
/* Intro (a9a5a4a): 800px box, 5rem 1rem 2.5rem (4rem 2rem 2rem ≤1024). */
.axpc-mt-intro { text-align: center; padding: 4rem 2rem 2rem; }
@media (min-width: 1025px) { .axpc-mt-intro { padding: 5rem 1rem 2.5rem; } }
.axpc-mt-intro__inner { max-width: 800px; margin: 0 auto; }
.axpc-mt-intro__title { font-family: var(--axpc-font-display); font-weight: 500; font-size: var(--axpc-fs-h2); line-height: 1; color: var(--axpc-primary); margin: 0 0 var(--axpc-widget-gap); }
.axpc-mt-intro__lead { font-family: var(--axpc-font-heading-bold); font-weight: 500; font-size: var(--axpc-fs-h5); line-height: 1.5; color: var(--axpc-secondary); margin: 0; }
@media (max-width: 767px) { .axpc-mt-intro__lead { line-height: 1.4; } }
/* Numbered points (f3b2083): 900px box, 2.5rem 1rem 5rem (2rem 2rem 4rem ≤1024); each row 1rem padded, a 50px
   badge 2rem from its text, centred on it. */
.axpc-mt-pointsblock { padding: 2rem 2rem 4rem; }
@media (min-width: 1025px) { .axpc-mt-pointsblock { padding: 2.5rem 1rem 5rem; } }
.axpc-mt-points { max-width: 900px; margin: 0 auto; }
.axpc-mt-point { display: flex; align-items: center; gap: 2rem; padding: 1rem; }
.axpc-mt-point__num { flex: 0 0 50px; width: 50px; height: 50px; line-height: 0; }
.axpc-mt-point__num svg { width: 100%; height: 100%; }
.axpc-mt-point__text { font-family: var(--axpc-font-body); font-size: 1.1rem; font-weight: 700; line-height: 1.5; color: var(--axpc-secondary); margin: 8px 0; }
@media (min-width: 1025px) { .axpc-mt-point__text { font-size: 1.25rem; } }
.axpc-mt-cta { text-align: center; padding: 0 1rem 1rem; margin-top: calc(var(--axpc-widget-gap) - 1rem); }
/* Orange "Consider Voting Early" band (9bb2ecb): 750px box (625px on a tablet). */
.axpc-mt-early { background: var(--axpc-primary); color: #fff; text-align: center; padding: var(--axpc-pad-block) 5%; }
.axpc-mt-early__inner { max-width: 750px; margin: 0 auto; }
@media (min-width: 768px) and (max-width: 1024px) { .axpc-mt-early__inner { max-width: 625px; } }
.axpc-mt-early__title { font-family: var(--axpc-font-display); font-weight: 500; font-size: var(--axpc-fs-h2); line-height: 1; color: #fff; margin: 0 0 var(--axpc-widget-gap); }
.axpc-mt-early__text { font-family: var(--axpc-font-heading-bold); font-size: 24px; font-weight: 300; line-height: 1.5; margin: 0 0 var(--axpc-widget-gap); }
@media (max-width: 767px) { .axpc-mt-early__text { line-height: 1.4; } }

/* ============================ SINGLE STATE ============================ */
/* Hero (46 › 39d1e62): Frame-46 under a secondary→transparent overlay at 80%, 6rem 1rem 5rem (6rem 2rem 4rem on a
   tablet, 8rem 1rem 2rem on a phone); the state's shape in white at 8rem, then its name. */
.axpc-state__hero { position: relative; text-align: center; background-color: var(--axpc-text); background-size: auto; background-position: 0 0; background-repeat: repeat; color: #fff; padding: 8rem 1rem 2rem; }
@media (min-width: 768px) { .axpc-state__hero { padding: 6rem 2rem 4rem; } }
@media (min-width: 1025px) { .axpc-state__hero { padding: 6rem 1rem 5rem; } }
.axpc-state__hero::before { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, var(--axpc-secondary) 15%, rgba(0,0,0,0) 100%); opacity: .8; }
.axpc-state__hero-inner { position: relative; z-index: 1; max-width: 1140px; margin-inline: auto; }
.axpc-state__hero-img { width: 100%; max-width: 8rem; height: auto; margin: 0 auto var(--axpc-widget-gap); display: block; filter: brightness(0) invert(1); }
.axpc-state__title { font-family: var(--axpc-font-display); font-weight: 500; font-size: var(--axpc-fs-h1); color: #fff; margin: 0; line-height: 1; }
/* Why energy (fb27d24): orange, a 700px box; the title 5.2rem with its kicker at half size; reasons 1.5rem (1.1rem
   ≤1024) Poppins bold, 32px apart with a white rule between. */
.axpc-state__why { background: var(--axpc-primary); color: #fff; text-align: center; padding: var(--axpc-pad-block) 5%; }
.axpc-state__why-inner { max-width: 700px; margin: 0 auto; }
.axpc-state__why-title { color: #fff; font-family: var(--axpc-font-display); font-weight: 500; font-size: 5.2rem; line-height: 1; margin: 0 0 var(--axpc-widget-gap); }
.axpc-state__why-kicker { display: block; font-size: 50%; line-height: 1em; }
.axpc-state__reasons { list-style: none; margin: 0; padding: 0; }
.axpc-state__reason { font-family: var(--axpc-font-body); font-weight: 700; font-size: 1.1rem; line-height: 1.5; margin-bottom: 32px; }
.axpc-state__reason:last-child { margin-bottom: 0; }
/* Production's list puts each reason in an inline box 10px in, so a line wraps a little sooner. */
.axpc-state__reason-text { margin-left: 10px; }
.axpc-state__reason + .axpc-state__reason { border-top: 1.5px solid #fff; padding-top: 32px; }
@media (min-width: 1025px) { .axpc-state__reason { font-size: 1.5rem; } }
/* Election day heading (cc491e6): the section's top padding, 2.5% below; the h5 then an 80px orange rule. */
.axpc-state__plan-head { text-align: center; padding: var(--axpc-pad-block) 5% 2.25%; }
.axpc-state__plan-title { font-family: var(--axpc-font-heading-bold); font-weight: 500; font-size: var(--axpc-fs-h5); line-height: 1.5; color: var(--axpc-secondary); margin: 0 0 1px; }
@media (max-width: 767px) { .axpc-state__plan-title { line-height: 1.4; } }
.axpc-state__plan-divider { width: 80px; height: 0; border: 0; border-top: 4px solid var(--axpc-primary); margin: 15px auto; }
/* Voting plan cards (9fdb573): the home page's action cards, 2.5% above and the section's padding below. */
.axpc-plan { padding: 2.25% 5% var(--axpc-pad-block); }
.axpc-plan .axpc-actioncards { padding: 0; }
@media (min-width: 768px) { .axpc-plan .axpc-actioncards { max-width: calc(2 * var(--card) + 2rem); } }
@media (min-width: 1025px) { .axpc-plan .axpc-actioncards { max-width: calc(2 * var(--card) + 3rem); } }

/* ============================ SINGLE CANDIDATE ============================ */
/* 216 › 5548db7: 5rem 1rem padding (4rem 2rem ≤1024) in the 1140 box; columns 33% / 66% (stacked on a phone),
   each 1rem padded with its widgets 24px apart. */
.axpc-cand { display: flex; flex-wrap: wrap; max-width: 1140px; margin: 0 auto; padding: 4rem 2rem; box-sizing: content-box; }
@media (min-width: 1025px) { .axpc-cand { padding: 5rem 1rem; } }
.axpc-cand__left, .axpc-cand__right { flex: 0 0 100%; box-sizing: border-box; padding: 1rem; display: flex; flex-direction: column; gap: var(--axpc-widget-gap); }
@media (min-width: 768px) { .axpc-cand__left { flex-basis: 33%; } .axpc-cand__right { flex-basis: 66%; } }
.axpc-cand__photo { width: 100%; height: 15rem; object-fit: cover; object-position: center; border: 4px solid var(--axpc-secondary); display: block; box-sizing: border-box; }
@media (min-width: 1025px) { .axpc-cand__photo { height: 20rem; } }
.axpc-cand__social { display: flex; justify-content: center; gap: var(--axpc-widget-gap); }
.axpc-cand__social a { color: var(--axpc-secondary); line-height: 0; height: 40px; }
.axpc-cand__social svg { height: 2rem; width: 2rem; fill: currentColor; }
.axpc-cand__website { text-align: center; margin: 0; font-family: var(--axpc-font-body); font-weight: 700; font-size: 1.1rem; line-height: 1.5; }
@media (min-width: 1025px) { .axpc-cand__website { font-size: 1.25rem; } }
.axpc-cand__website a { color: var(--axpc-primary); text-decoration: none; }
.axpc-cand__name { font-family: var(--axpc-font-heading-bold); font-weight: 500; font-size: var(--axpc-fs-h5); line-height: 1.5; color: var(--axpc-secondary); margin: 0; }
.axpc-cand__office { font-family: var(--axpc-font-heading-cond); font-weight: 500; font-size: var(--axpc-fs-h6); line-height: 1.5; text-transform: uppercase; color: var(--axpc-primary); margin: 0; }
.axpc-cand__bio { font-family: var(--axpc-font-body); font-size: 1rem; line-height: 1.5; color: var(--axpc-text); }
.axpc-cand__quote { font-family: var(--axpc-font-body); font-weight: 700; font-style: italic; font-size: 1.1rem; line-height: 1.5rem; color: var(--axpc-secondary); margin: 0; }
@media (min-width: 1025px) { .axpc-cand__quote { font-size: 1.25rem; } }
.axpc-cand__donate.axpc-btn { padding: 1rem 2rem; }
@media (max-width: 767px) { .axpc-cand__donate.axpc-btn { display: block; text-align: center; } .axpc-cand__name { line-height: 1.4; } }

/* ============================ Rich text ============================ */
.axpc-richtext { max-width: 780px; margin: 0 auto; }
.axpc-richtext h6 { font-family: var(--axpc-font-heading-cond); font-size: var(--axpc-fs-h6); text-transform: uppercase; }

/* ============================ PRIVACY POLICY ============================ */
/* Title band (277 › 6d0dec5): slate, 10% / 5% top and bottom and 2% sides (20% / 5% / 5% on a phone), measured
   against the boxed width; the title 3rem down in the 1140 box. */
.axpc-policy__hero { background: var(--axpc-text); padding: 9.6% 2% 4.8%; }
@media (max-width: 767px) { .axpc-policy__hero { padding: 18% 5% 4.5%; } }
.axpc-policy__hero-inner { max-width: 1140px; margin: 0 auto; }
.axpc-policy__title { font-family: var(--axpc-font-display); font-weight: 500; font-size: var(--axpc-fs-h2); line-height: 1; color: #fff; margin: 3rem 0 0; }
/* The policy (d4384f7 › text editor): Poppins 16/24 in slate, condensed h6 headings, indented lists. */
.axpc-policy__body { padding: var(--axpc-pad-block) 5%; }
.axpc-policy__text { max-width: 1140px; margin: 0 auto; font-family: var(--axpc-font-body); font-size: 1rem; line-height: 1.5; color: var(--axpc-text); }
.axpc-policy__text p { margin: 16px 0 24px; }
.axpc-policy__text ul { margin: 0 0 24px 48px; padding: 0 0 0 40px; }
.axpc-policy__text li { margin: 0; }
.axpc-policy__text h6 { font-family: var(--axpc-font-heading-cond); font-size: var(--axpc-fs-h6); font-weight: 700; line-height: 1.5; text-transform: uppercase; margin: 8px 0; }
.axpc-policy__text a { color: royalblue; text-decoration: none; }
