/* =============================================================================
   Carrie Low for Civil Court Judge — theme stylesheet (Victory Court framework)
   Hello Elementor child theme. Every selector is prefixed `pf-` so nothing
   collides with Elementor, Gravity Forms or plugins.

   Tokens are sampled from Carrie_Low_Logo.svg and the palm card.
   Elementor widgets get their look by adding these classes in
   Advanced → CSS Classes (see README.md → "Class reference").
   ============================================================================= */
:root{
  --pf-navy:#1b2655;
  --pf-navy-2:#223270;
  --pf-red:#d4202a;
  --pf-red-dk:#a5141d;
  --pf-sky:#7fb7e4;
  --pf-ice:#eef5fc;
  --pf-ink:#212e5c;
  --pf-white:#ffffff;
  --pf-line:rgba(27,38,85,.16);
  --pf-font:"avenir-next-lt-pro",'Helvetica Neue',Arial,sans-serif;
  --pf-serif:Georgia,'Times New Roman',serif;
  --pf-frame:#d6202b;
  --pf-container:1200px;
  --pf-gutter:24px;
  --pf-promo-h:44px;
  --pf-header-h:84px;
  --pf-r-card:16px;
  --pf-r-input:10px;
  --pf-r-pill:999px;
  --pf-shadow-card:0 18px 50px rgba(27,38,85,.18);
  --pf-admin-bar:0px;
}
html.pf-promo-closed{--pf-promo-h:0px}
html.pf-no-promo{--pf-promo-h:0px}
html.pf-scrolled{--pf-header-h:76px}
body.admin-bar{--pf-admin-bar:32px}
@media (max-width:782px){body.admin-bar{--pf-admin-bar:46px}}

html{scroll-behavior:smooth;scroll-padding-top:calc(var(--pf-header-h) + var(--pf-promo-h) + var(--pf-admin-bar) + 12px)}
body{font-family:var(--pf-font);font-weight:400;font-size:17px;line-height:1.65;color:var(--pf-ink);background:var(--pf-white)}
body.pf-nav-open{overflow:hidden}
.pf-sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.pf-site-top *,.pf-overlay *,.pf-footer *,.pf-take-action *,.pf-btn{box-sizing:border-box}
.pf-container{width:min(var(--pf-container),calc(100% - 2*var(--pf-gutter)));margin-inline:auto}
:where(.pf-site-top,.pf-overlay,.pf-footer,.pf-take-action) :focus-visible{outline:3px solid var(--pf-sky);outline-offset:3px;border-radius:4px}

/* Elementor: headings/text inside pf sections inherit the brand font */
.elementor-widget-heading .elementor-heading-title,.elementor-widget-text-editor,.elementor-widget-button .elementor-button,.elementor-widget-icon-list .elementor-icon-list-text,.elementor-widget-icon-box .elementor-icon-box-title,.elementor-widget-icon-box .elementor-icon-box-description{font-family:var(--pf-font)}

/* ---------- buttons (rounded everywhere) ---------- */
.pf-btn,.pf-btn.elementor-widget-button .elementor-button{display:inline-flex;align-items:center;justify-content:center;gap:10px;height:50px;padding:0 28px;border-radius:var(--pf-r-pill);border:2px solid transparent;font:800 14.5px/1 var(--pf-font);letter-spacing:.07em;text-transform:uppercase;-webkit-text-stroke:.018em currentColor;paint-order:stroke fill;text-decoration:none;cursor:pointer;transition:background-color .18s,color .18s,border-color .18s,transform .18s;white-space:nowrap}
.pf-btn:active{transform:translateY(1px)}
.pf-btn .pf-arrow,.pf-btn.elementor-widget-button .elementor-button-icon svg,.pf-btn.elementor-widget-button .elementor-button-icon i{width:18px;height:18px;flex:none;transition:transform .18s}
.pf-btn:hover .pf-arrow,.pf-btn.elementor-widget-button .elementor-button:hover .elementor-button-icon{transform:translateX(4px)}
.pf-btn.elementor-widget-button .elementor-button-icon{display:inline-flex;transition:transform .18s}
.pf-btn-red,.pf-btn-red.elementor-widget-button .elementor-button{background:var(--pf-red);border-color:var(--pf-red);color:#fff}
.pf-btn-red:hover,.pf-btn-red.elementor-widget-button .elementor-button:hover{background:var(--pf-red-dk);border-color:var(--pf-red-dk);color:#fff}
.pf-btn-navy,.pf-btn-navy.elementor-widget-button .elementor-button{background:var(--pf-navy);border-color:var(--pf-navy);color:#fff}
.pf-btn-navy:hover,.pf-btn-navy.elementor-widget-button .elementor-button:hover{background:var(--pf-navy-2);border-color:var(--pf-navy-2);color:#fff}
.pf-btn-outline-white,.pf-btn-outline-white.elementor-widget-button .elementor-button{border-color:#fff;color:#fff;background:transparent}
.pf-btn-outline-white:hover,.pf-btn-outline-white.elementor-widget-button .elementor-button:hover{background:#fff;color:var(--pf-navy)}
.pf-btn-outline-navy,.pf-btn-outline-navy.elementor-widget-button .elementor-button{border-color:var(--pf-navy);color:var(--pf-navy);background:transparent}
.pf-btn-outline-navy:hover,.pf-btn-outline-navy.elementor-widget-button .elementor-button:hover{background:var(--pf-navy);color:#fff}
.pf-btn.elementor-widget-button .elementor-button-content-wrapper{display:inline-flex;align-items:center;gap:10px}

/* ---------- promo bar + sticky header ---------- */
.pf-site-top{position:sticky;top:var(--pf-admin-bar);z-index:100}
.pf-promo{background:var(--pf-red);color:#fff;height:var(--pf-promo-h);display:flex;align-items:center;justify-content:center;position:relative;font:800 13px/1 var(--pf-font);letter-spacing:.08em;text-transform:uppercase}
.pf-promo a{color:#fff;text-decoration:none;display:inline-flex;align-items:center;gap:8px;padding:0 44px}
.pf-promo a span{border-bottom:2px solid rgba(255,255,255,.55);padding-bottom:2px}
.pf-promo a:hover span{border-bottom-color:#fff}
.pf-promo a svg{width:14px;height:14px;flex:none}
.pf-promo .pf-promo-short{display:none}
.pf-promo-close{position:absolute;right:12px;top:50%;transform:translateY(-50%);width:32px;height:32px;border:0;background:transparent;color:#fff;cursor:pointer;display:grid;place-items:center;border-radius:50%;padding:0}
.pf-promo-close:hover{background:rgba(0,0,0,.15)}
.pf-promo-close svg{width:16px;height:16px}
html.pf-promo-closed .pf-promo{display:none}

.pf-header{background:var(--pf-navy);height:var(--pf-header-h);transition:height .25s ease,box-shadow .2s}
html.pf-scrolled .pf-header{box-shadow:0 10px 30px rgba(0,0,0,.28)}
.pf-header .pf-container{height:100%;display:flex;align-items:center;justify-content:space-between;gap:24px}
.pf-brand{display:flex;align-items:flex-start;height:100%;text-decoration:none;position:relative;z-index:5}
.pf-brand img{height:calc((var(--pf-header-h) - 12px)/0.8875);margin-top:12px;width:auto;transition:height .25s ease,margin-top .25s ease}

.pf-nav{display:flex;align-items:center;gap:6px;margin:0;padding:0;list-style:none;height:100%}
.pf-nav li{position:relative;display:flex;align-items:center;height:100%}
.pf-nav a{display:inline-flex;align-items:center;gap:6px;height:44px;padding:0 14px;border-radius:var(--pf-r-pill);color:#fff;text-decoration:none;font:700 14px/1 var(--pf-font);letter-spacing:.06em;text-transform:uppercase}
.pf-nav a:hover,.pf-nav li:focus-within > a{color:var(--pf-sky)}
.pf-nav .menu-item-has-children > a::after{content:'';width:7px;height:7px;border:solid currentColor;border-width:0 2.5px 2.5px 0;transform:translateY(-2px) rotate(45deg);margin-left:4px;transition:transform .18s}
.pf-nav .menu-item-has-children:hover > a::after,.pf-nav .menu-item-has-children:focus-within > a::after{transform:translateY(2px) rotate(-135deg)}
.pf-nav .sub-menu{position:absolute;top:calc(100% + 6px);left:6px;min-width:230px;background:var(--pf-navy-2);border-radius:12px;padding:8px;list-style:none;margin:0;box-shadow:0 18px 40px rgba(0,0,0,.35);opacity:0;visibility:hidden;transform:translateY(6px);transition:opacity .16s,transform .16s,visibility .16s;display:block}
.pf-nav li:hover > .sub-menu,.pf-nav li:focus-within > .sub-menu{opacity:1;visibility:visible;transform:translateY(0)}
.pf-nav .sub-menu li{height:auto;display:block}
.pf-nav .sub-menu a{display:block;height:auto;padding:12px 14px;border-radius:8px;font-size:13px}
.pf-nav .sub-menu a:hover{background:rgba(255,255,255,.1);color:var(--pf-sky)}
.pf-header-actions{display:flex;align-items:center;gap:14px}
.pf-socials{display:flex;align-items:center;gap:6px;margin:0;padding:0;list-style:none}
.pf-socials a{width:40px;height:40px;display:grid;place-items:center;border-radius:50%;color:#fff;text-decoration:none;transition:background-color .18s,color .18s}
.pf-socials a:hover{background:rgba(255,255,255,.12);color:var(--pf-sky)}
.pf-socials svg{height:18px;width:auto;fill:currentColor}
.pf-socials-navy a{color:var(--pf-navy);background:var(--pf-ice)}
.pf-socials-navy a:hover{background:var(--pf-navy);color:#fff}
.pf-header .pf-btn{height:46px;padding:0 24px;font-size:14.5px}
.pf-hamburger{display:none;width:48px;height:48px;border:0;background:transparent;color:#fff;cursor:pointer;place-items:center;border-radius:50%;padding:0}
.pf-hamburger svg{width:28px;height:28px}
.pf-hamburger:hover{background:rgba(255,255,255,.12)}

/* ---------- mobile overlay nav ---------- */
.pf-overlay{position:fixed;inset:0;z-index:200;background:#fff;color:var(--pf-navy);display:flex;flex-direction:column;align-items:center;justify-content:center;padding:80px 24px 40px;opacity:0;visibility:hidden;transition:opacity .22s,visibility .22s;overflow-y:auto}
body.pf-nav-open .pf-overlay{opacity:1;visibility:visible}
.pf-overlay-close{position:absolute;top:calc(18px + var(--pf-admin-bar));right:18px;width:48px;height:48px;border:0;background:transparent;color:var(--pf-navy);cursor:pointer;display:grid;place-items:center;border-radius:50%;padding:0}
.pf-overlay-close:hover{background:var(--pf-ice)}
.pf-overlay-close svg{width:26px;height:26px}
.pf-overlay-brand img{height:64px;margin-bottom:28px}
.pf-overlay-links,.pf-overlay-links ul{list-style:none;margin:0;padding:0;text-align:center}
.pf-overlay-links{margin-bottom:30px}
.pf-overlay-links .sub-menu{display:contents}
.pf-overlay-links a{display:block;padding:10px 12px;color:var(--pf-navy);text-decoration:none;font:800 clamp(24px,7vw,32px)/1.2 var(--pf-font);letter-spacing:-.01em}
.pf-overlay-links a:hover{color:var(--pf-blue)}
.pf-overlay-cta{display:flex;flex-direction:column;gap:12px;width:min(360px,100%);margin-bottom:26px}
.pf-overlay-cta .pf-btn{width:100%;height:54px;font-size:16px}
.pf-overlay .pf-socials a{width:48px;height:48px;color:var(--pf-navy);background:var(--pf-ice)}
.pf-overlay .pf-socials svg{height:22px}

/* ---------- section scaffolding (Elementor containers carry these classes) ---------- */
.pf-sec-title .elementor-heading-title,.pf-sec-title:not(.elementor-widget){font-weight:900;font-size:clamp(36px,4.8vw,58px);letter-spacing:-.02em;line-height:.95;text-transform:uppercase;color:var(--pf-navy);margin:0}
.pf-sec-title{position:relative;padding-top:0}
/* 2.0: the framework's triple-stripe motif is retired; the accent is the rounded bar (::after) below the title */
.pf-sec-title.elementor-widget-heading{margin-bottom:0}
.pf-sec-sub,.pf-sec-sub.elementor-widget-text-editor{font-size:18px;line-height:1.55;color:var(--pf-ink);margin-top:16px;max-width:760px}
.pf-on-dark .elementor-heading-title,.pf-on-dark.pf-sec-title .elementor-heading-title{color:#fff}
.pf-on-dark.pf-sec-sub,.pf-on-dark.pf-sec-sub.elementor-widget-text-editor{color:rgba(255,255,255,.82)}
.pf-h3 .elementor-heading-title{font-weight:900;font-size:clamp(26px,2.6vw,34px);letter-spacing:-.02em;line-height:1.05;text-transform:uppercase;color:var(--pf-navy)}

/* ---------- hero ---------- */
.pf-hero{background-color:#f4f1ea}
.pf-join-card{background:#fff;border-radius:var(--pf-r-card);box-shadow:var(--pf-shadow-card)}
.pf-join-card .elementor-widget-heading .elementor-heading-title{font-weight:900;font-size:clamp(34px,4vw,44px);letter-spacing:-.02em;text-transform:uppercase;line-height:.98;color:var(--pf-navy)}
.pf-join-card .pf-lede,.pf-join-card .pf-lede.elementor-widget-text-editor{font-size:16px;line-height:1.55;color:var(--pf-ink)}
.pf-hero-mobile-photo img{width:100%;height:auto}

/* ---------- endorsement band ---------- */
.pf-endorse{background:var(--pf-navy);color:#fff}
.pf-endorse-lockup{line-height:1;margin:0}
.pf-endorse-lockup .small{display:block;font-weight:700;font-size:14px;letter-spacing:.14em;text-transform:uppercase;opacity:.9;margin-bottom:6px;color:#fff}
.pf-endorse-lockup .big{display:block;font-weight:900;font-size:clamp(24px,2.4vw,30px);letter-spacing:-.01em;text-transform:uppercase;line-height:1.05;color:#fff}
.pf-checks .elementor-icon-list-items{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:18px 60px}
.pf-checks .elementor-icon-list-item{display:flex;align-items:center;gap:14px;margin:0!important;padding:0!important;white-space:nowrap}
.pf-checks .elementor-icon-list-item::after{display:none!important}
.pf-checks .elementor-icon-list-icon{flex:none;width:30px;height:30px;display:grid;place-items:center}
.pf-checks .elementor-icon-list-icon i,.pf-checks .elementor-icon-list-icon svg{color:#fff;fill:#fff;font-size:16px;width:16px;height:16px}
.pf-checks .elementor-icon-list-text{color:#fff;font-family:var(--pf-serif);font-weight:700;font-size:17.5px;line-height:1.3;padding:0}

/* ---------- about ---------- */
.pf-about-photo{position:relative}
.pf-about-photo::before{content:'';position:absolute;inset:22px -22px -22px 22px;background:var(--pf-sky);border-radius:var(--pf-r-card)}
.pf-about-photo img{position:relative;border-radius:var(--pf-r-card);width:100%;aspect-ratio:4/5;object-fit:cover}
.pf-bio p,.pf-bio.elementor-widget-text-editor p{font-size:17.5px;line-height:1.7;margin-bottom:20px;color:var(--pf-ink)}
.pf-bio p:last-child{margin-bottom:0}
.pf-kw-red{color:var(--pf-red);font-weight:700}
.pf-kw-navy{color:var(--pf-navy);font-weight:700}

/* ---------- Take Action chooser (shortcode) ---------- */
.pf-take-action{position:relative}
.pf-anchors{position:relative;height:0}
.pf-anchors span{position:absolute;top:0}
.pf-icon{display:grid;place-items:center}
.pf-icon i{font-size:24px;line-height:1}
.pf-icon svg{width:24px;height:24px;fill:currentColor}
.pf-icon-go{display:grid;place-items:center}
.pf-icon-go svg{width:100%;height:100%}

/* Layout B — tiles */
.pf-tiles{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin:0 0 80px;padding:0;list-style:none} /* 1.2.3: room for the quick bar + clear air under it at the scroll-to-panel landing */
.pf-tiles li{display:flex;margin:0}
.pf-tile{flex:1;width:100%;position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:14px;padding:24px 24px 22px;border:2px solid var(--pf-line);border-radius:18px;background:#fff;text-align:left;cursor:pointer;color:var(--pf-ink);text-decoration:none;font:inherit;transition:border-color .18s,background-color .18s,color .18s,transform .18s}
.pf-tile:hover{border-color:var(--pf-navy);transform:translateY(-2px)}
.pf-tile .pf-icon{width:52px;height:52px;border-radius:50%;background:var(--pf-navy);color:#fff}
.pf-choice-body{display:flex;flex-direction:column;gap:6px;min-width:0}
.pf-tile-title,.pf-tile-desc{display:block}
.pf-tile .pf-tile-title{margin:0;font-weight:800;font-size:20px;color:var(--pf-navy);letter-spacing:-.01em;line-height:1.15;font-family:var(--pf-font)}
.pf-tile .pf-tile-desc{margin:0;font-size:14.5px;line-height:1.45;color:rgba(27,38,85,.8)}
.pf-tile .pf-sel{position:absolute;top:18px;right:18px;width:26px;height:26px;border-radius:50%;border:2px solid var(--pf-line);display:grid;place-items:center;color:#fff}
.pf-tile .pf-sel svg{width:15px;height:15px;opacity:0}
.pf-tile.is-selected{background:var(--pf-navy);border-color:var(--pf-navy);color:#fff}
.pf-tile.is-selected .pf-tile-title,.pf-tile.is-selected .pf-tile-desc{color:#fff}
.pf-tile.is-selected .pf-icon{background:var(--pf-red)}
.pf-tile.is-selected .pf-sel{background:var(--pf-sky);border-color:var(--pf-sky)}
.pf-tile.is-selected .pf-sel svg{opacity:1}
.pf-tile .pf-icon-go{position:absolute;top:18px;right:18px;width:26px;height:26px}
.pf-tile-vote .pf-icon{background:var(--pf-sky);color:var(--pf-navy)}
.pf-tile-vote .pf-icon-go{color:var(--pf-navy)}
.pf-tile-vote:hover{background:var(--pf-ice)}
.pf-tile-donate{background:var(--pf-red);border-color:var(--pf-red);color:#fff}
.pf-tile-donate .pf-tile-title,.pf-tile-donate .pf-tile-desc{color:#fff}
.pf-tile-donate .pf-icon{background:#fff;color:var(--pf-red)}
.pf-tile-donate .pf-icon-go{color:#fff}
.pf-tile-donate:hover{background:var(--pf-red-dk);border-color:var(--pf-red-dk)}

/* Layout C — choice list beside the form */
.pf-chooser-grid{display:grid;grid-template-columns:4fr 7fr;gap:56px;align-items:start}
.pf-choice-list{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:10px;position:sticky;top:calc(var(--pf-header-h) + var(--pf-promo-h) + var(--pf-admin-bar) + 28px)}
.pf-choice-list li{margin:0}
.pf-choice{display:grid;grid-template-columns:44px 1fr auto;gap:16px;align-items:center;width:100%;text-align:left;padding:18px 20px;border:0;border-left:5px solid transparent;border-radius:14px;background:#fff;cursor:pointer;color:var(--pf-ink);text-decoration:none;font:inherit;box-shadow:inset 0 0 0 1.5px var(--pf-line);transition:background-color .18s,box-shadow .18s}
.pf-choice:hover{background:var(--pf-ice)}
.pf-choice .pf-icon{width:44px;height:44px;border-radius:12px;background:var(--pf-ice);color:var(--pf-navy)}
.pf-choice .pf-choice-body{gap:2px}
.pf-choice .pf-tile-title{margin:0;font-weight:800;font-size:17px;color:var(--pf-navy);line-height:1.2;font-family:var(--pf-font)}
.pf-choice .pf-tile-desc{margin:0;font-size:13.5px;line-height:1.4;color:rgba(27,38,85,.75)}
.pf-choice .pf-step{font-weight:800;font-size:12px;color:rgba(27,38,85,.45)}
.pf-choice.is-selected{background:var(--pf-ice);border-left-color:var(--pf-blue);box-shadow:inset 0 0 0 1.5px var(--pf-navy)}
.pf-choice.is-selected .pf-icon{background:var(--pf-navy);color:#fff}
.pf-choice.is-selected .pf-step{color:var(--pf-blue)}
.pf-choice-vote .pf-icon{background:var(--pf-sky)}
.pf-choice-donate .pf-icon{background:var(--pf-red);color:#fff}
.pf-choice .pf-icon-go{width:20px;height:20px;color:var(--pf-red)}
.pf-choice-vote .pf-icon-go{color:var(--pf-navy)}

/* panels (both layouts) */
.pf-panel{display:none}
.pf-layout-tiles .pf-panel.is-active{display:grid;grid-template-columns:4fr 7fr;gap:56px;align-items:start}
.pf-layout-list .pf-panel.is-active{display:block}
.pf-layout-list .pf-panel .pf-panel-intro{margin-bottom:24px}
.pf-panel-intro{position:sticky;top:calc(var(--pf-header-h) + var(--pf-promo-h) + var(--pf-admin-bar) + 28px)}
.pf-layout-list .pf-panel-intro{position:static}
.pf-panel-intro h3,.pf-panel-intro h1{font-weight:900;font-size:clamp(26px,2.6vw,34px);letter-spacing:-.02em;line-height:1.05;text-transform:uppercase;margin:0 0 16px;color:var(--pf-navy);font-family:var(--pf-font)}
.pf-panel-intro p{font-size:16.5px;line-height:1.6;margin:0 0 1em}
.pf-panel-intro img{margin-top:26px;width:100%;max-width:340px;height:auto;display:block}
.pf-form-card{background:var(--pf-ice);border-radius:var(--pf-r-card);padding:40px}

/* ---------- Gravity Forms (form theme: "Gravity Forms 2.5 Theme" = .gravity-theme) ---------- */
/* layout mirrors Gravity Forms' own grid so the forms hold their shape even if GF's stylesheet is dequeued */
.gform_wrapper.gravity-theme .gform_fields{display:grid;grid-template-columns:repeat(12,1fr);grid-column-gap:14px;grid-row-gap:16px}
.gform_wrapper.gravity-theme .gfield{grid-column:1/-1;min-width:0}
.gform_wrapper.gravity-theme .gfield--width-half{grid-column:span 6}
.gform_wrapper.gravity-theme .gfield--width-third{grid-column:span 4}
.gform_wrapper.gravity-theme .gfield--width-quarter{grid-column:span 3}
.gform_wrapper.gravity-theme fieldset.gfield{border:0;margin:0;padding:0;min-width:0}
.gform_wrapper.gravity-theme legend.gfield_label{display:block;padding:0;float:none;width:100%}
.gform_wrapper.gravity-theme .ginput_complex{display:flex;flex-wrap:wrap;gap:8px 14px}
.gform_wrapper.gravity-theme .ginput_complex .ginput_full{flex:0 0 100%}
.gform_wrapper.gravity-theme .ginput_complex .ginput_left,.gform_wrapper.gravity-theme .ginput_complex .ginput_right{flex:0 0 calc(50% - 7px);min-width:0}
.gform_wrapper.gravity-theme .ginput_complex span{display:flex;flex-direction:column}
.gform_wrapper.gravity-theme .gform_hidden,.gform_wrapper.gravity-theme .gfield--type-hidden{display:none}
.gform_wrapper.gravity-theme .gfield_label,.gform_wrapper.gravity-theme .gform-field-label{font-family:var(--pf-font);font-weight:700;font-size:14px;color:var(--pf-navy);margin-bottom:7px;line-height:1.3}
.gform_wrapper.gravity-theme .gfield_required{color:var(--pf-red);padding-left:2px}
.gform_wrapper.gravity-theme .gfield_required_text{display:none}
.gform_wrapper.gravity-theme .gfield_description{font-family:var(--pf-font);font-size:12.5px;color:rgba(27,38,85,.7);line-height:1.5;padding-top:6px}
.gform_wrapper.gravity-theme input[type=text],.gform_wrapper.gravity-theme input[type=email],.gform_wrapper.gravity-theme input[type=tel],.gform_wrapper.gravity-theme input[type=number],.gform_wrapper.gravity-theme select,.gform_wrapper.gravity-theme textarea{width:100%;height:52px;padding:0 16px;border:1.5px solid var(--pf-line);border-radius:var(--pf-r-input);background:#fff;font:500 16px var(--pf-font);color:var(--pf-navy);transition:border-color .15s,box-shadow .15s;appearance:none;-webkit-appearance:none}
.gform_wrapper.gravity-theme textarea{height:auto;min-height:120px;padding:14px 16px;line-height:1.5;resize:vertical}
.gform_wrapper.gravity-theme select{background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24'><path fill='none' stroke='%231b2655' stroke-width='3' stroke-linecap='round' stroke-linejoin='round' d='M6 9l6 6 6-6'/></svg>");background-repeat:no-repeat;background-position:right 16px center;padding-right:40px}
.gform_wrapper.gravity-theme input::placeholder,.gform_wrapper.gravity-theme textarea::placeholder{color:rgba(27,38,85,.45)}
.gform_wrapper.gravity-theme input:focus,.gform_wrapper.gravity-theme select:focus,.gform_wrapper.gravity-theme textarea:focus{outline:none;border-color:var(--pf-navy);box-shadow:0 0 0 4px rgba(127,183,228,.45)}
.gform_wrapper.gravity-theme .ginput_complex label,.gform_wrapper.gravity-theme .ginput_complex legend{font-family:var(--pf-font);font-size:12px;font-weight:600;color:rgba(27,38,85,.7);padding-top:5px}
.gform_wrapper.gravity-theme .ginput_container_address span{margin-bottom:6px}
/* checkboxes + radios */
.gform_wrapper.gravity-theme .gfield_checkbox,.gform_wrapper.gravity-theme .gfield_radio{display:grid;grid-template-columns:1fr 1fr;gap:10px 16px}
.gform_wrapper.gravity-theme .gchoice{display:flex;align-items:flex-start;gap:10px}
.gform_wrapper.gravity-theme .gchoice label{font-family:var(--pf-font);font-size:15px;color:var(--pf-ink);line-height:1.4;max-width:none;padding:1px 0 0}
.gform_wrapper.gravity-theme .gchoice input[type=checkbox],.gform_wrapper.gravity-theme .gchoice input[type=radio],.gform_wrapper.gravity-theme .ginput_container_consent input[type=checkbox]{appearance:none;-webkit-appearance:none;flex:none;width:22px;height:22px;margin:1px 0 0;border:2px solid var(--pf-navy-2);border-radius:6px;background:#fff;display:inline-grid;place-items:center;cursor:pointer;transition:background-color .15s,border-color .15s;vertical-align:top}
.gform_wrapper.gravity-theme .gchoice input[type=radio]{border-radius:50%}
.gform_wrapper.gravity-theme .gchoice input:checked,.gform_wrapper.gravity-theme .ginput_container_consent input:checked{background:var(--pf-navy);border-color:var(--pf-navy)}
.gform_wrapper.gravity-theme .gchoice input[type=checkbox]:checked::after,.gform_wrapper.gravity-theme .ginput_container_consent input:checked::after{content:'';width:6px;height:11px;border:solid #fff;border-width:0 3px 3px 0;transform:translateY(-1px) rotate(45deg)}
.gform_wrapper.gravity-theme .gchoice input[type=radio]:checked::after{content:'';width:8px;height:8px;border-radius:50%;background:#fff}
.gform_wrapper.gravity-theme .gchoice input:focus-visible{outline:3px solid var(--pf-sky);outline-offset:2px}
/* consent + opt-in fine print */
.gform_wrapper.gravity-theme .ginput_container_consent{display:flex;gap:12px;align-items:flex-start}
.gform_wrapper.gravity-theme .ginput_container_consent label,.gform_wrapper.gravity-theme .gfield--type-consent .gfield_consent_description,.gform_wrapper.gravity-theme .pf-optin .gfield_description{font-family:var(--pf-font);font-size:12.5px;line-height:1.5;color:rgba(27,38,85,.75);border:0;padding:0;max-height:none;overflow:visible}
.gform_wrapper.gravity-theme .pf-optin .gfield_checkbox{grid-template-columns:1fr}
.gform_wrapper.gravity-theme .pf-optin .gfield_label{display:none}
/* sign size radio → cards */
.gform_wrapper.gravity-theme .pf-size-cards .gfield_radio{gap:14px}
.gform_wrapper.gravity-theme .pf-size-cards .gchoice{position:relative;display:flex;align-items:center;justify-content:center;gap:12px;padding:18px 16px;border:2px solid var(--pf-line);border-radius:14px;background:#fff;transition:border-color .15s,box-shadow .15s}
.gform_wrapper.gravity-theme .pf-size-cards .gchoice:hover{border-color:var(--pf-navy-2)}
.gform_wrapper.gravity-theme .pf-size-cards .gchoice:has(input:checked){border-color:var(--pf-navy);box-shadow:0 0 0 4px rgba(127,183,228,.45)}
.gform_wrapper.gravity-theme .pf-size-cards .gchoice label{font-weight:700;color:var(--pf-navy)}
/* submit */
.gform_wrapper.gravity-theme .gform_footer{margin-top:22px;padding:0}
.gform_wrapper.gravity-theme .gform_footer .gform_button,.gform_wrapper.gravity-theme .gform_footer .gform-button{height:54px;width:100%;border:0;border-radius:var(--pf-r-pill);background:var(--pf-red);color:#fff;font:800 15px/1 var(--pf-font);letter-spacing:.07em;text-transform:uppercase;-webkit-text-stroke:.018em currentColor;paint-order:stroke fill;cursor:pointer;transition:background-color .18s;padding:0 32px}
.gform_wrapper.gravity-theme .gform_footer .gform_button:hover{background:var(--pf-red-dk)}
.gform_wrapper.gravity-theme .gform_footer .gform_button{display:inline-flex;align-items:center;justify-content:center;gap:10px}
.gform_wrapper.gravity-theme .gform_footer .gform_button svg{width:18px;height:18px;flex:none;transition:transform .18s}
.gform_wrapper.gravity-theme .gform_footer .gform_button:hover svg{transform:translateX(4px)}
.gform_wrapper.gravity-theme .gform_ajax_spinner{margin-left:12px}
/* validation — calm, not alarming (1.2.5). !important where GF's stylesheet
   can load after this one (bare-template pages) or re-style on ajax re-render. */
.gform_wrapper.gravity-theme .gform_validation_errors{border:1.5px solid rgba(212,32,42,.25)!important;background:#fdf3f3!important;border-radius:12px!important;box-shadow:none!important;outline:none!important;padding:14px 20px!important;margin:0 0 6px}
.gform_wrapper.gravity-theme .gform_validation_errors > h2{font:600 14.5px/1.5 var(--pf-font)!important;color:var(--pf-red-dk)!important;margin:0;letter-spacing:0;text-transform:none}
.gform_wrapper.gravity-theme .gform_validation_errors .gform-icon{display:none!important}
.gform_wrapper.gravity-theme .gfield_error .gfield_label,.gform_wrapper.gravity-theme .gfield_error legend.gfield_label,.gform_wrapper.gravity-theme .gfield_error .gform-field-label{color:var(--pf-navy)!important}
.gform_wrapper.gravity-theme .gfield_error input,.gform_wrapper.gravity-theme .gfield_error select,.gform_wrapper.gravity-theme .gfield_error textarea{border-color:rgba(212,32,42,.4)!important;background-color:#fffcfc!important}
.gform_wrapper.gravity-theme .gfield_error input:focus,.gform_wrapper.gravity-theme .gfield_error select:focus,.gform_wrapper.gravity-theme .gfield_error textarea:focus{border-color:var(--pf-navy)!important;background-color:#fff!important;box-shadow:0 0 0 4px rgba(127,183,228,.45)!important}
.gform_wrapper.gravity-theme .gfield_validation_message,.gform_wrapper.gravity-theme .validation_message{font:600 12.5px/1.5 var(--pf-font)!important;color:rgba(165,20,29,.9)!important;background:none!important;border:0!important;padding:6px 0 0!important;letter-spacing:.01em}
.gform_confirmation_message{font-family:var(--pf-font);font-size:17px;line-height:1.6;color:var(--pf-navy);background:var(--pf-ice);border-radius:var(--pf-r-card);padding:28px 30px}
.gform_confirmation_message h3{font-weight:900;text-transform:uppercase;letter-spacing:-.01em;margin:0 0 8px;color:var(--pf-navy)}

/* ---------- donate band ---------- */
.pf-donate{background:var(--pf-navy-2);color:#fff}
.pf-donate .pf-sec-sub{color:rgba(255,255,255,.82)}
.pf-amounts{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.pf-amount.elementor-widget-button .elementor-button{display:flex;align-items:center;justify-content:center;width:100%;height:64px;border-radius:var(--pf-r-pill);border:2px solid #fff;background:transparent;color:#fff;font:800 22px/1 var(--pf-font);letter-spacing:-.01em;transition:background-color .18s,color .18s,border-color .18s;padding:0}
.pf-amount.elementor-widget-button .elementor-button:hover{background:var(--pf-sky);border-color:var(--pf-sky);color:var(--pf-navy)}
.pf-amount-other.elementor-widget-button .elementor-button{background:var(--pf-red);border-color:var(--pf-red);font-size:16px}
.pf-amount-other.elementor-widget-button .elementor-button:hover{background:var(--pf-red-dk);border-color:var(--pf-red-dk);color:#fff}
.pf-amounts .elementor-widget-button{width:100%}

/* ---------- vote page ---------- */
.pf-page-title{background:var(--pf-navy-2);color:#fff}
.pf-page-title .pf-sec-title .elementor-heading-title{color:#fff;font-size:clamp(34px,4.6vw,54px)}
.pf-page-title .pf-sec-sub{color:rgba(255,255,255,.8);font-size:16px}
.pf-dates{background:var(--pf-ice);border:1.5px solid var(--pf-line);border-radius:var(--pf-r-card);overflow:hidden}
.pf-dates > .e-con-inner > .e-con,.pf-dates > .e-con{border-left:1.5px solid var(--pf-line)}
.pf-dates > .e-con-inner > .e-con:first-child,.pf-dates > .e-con:first-child{border-left:0}
.pf-date .label{display:block;font-weight:800;font-size:13px;letter-spacing:.1em;text-transform:uppercase;color:var(--pf-red);margin-bottom:6px}
.pf-date .val{display:block;font-weight:800;font-size:20px;color:var(--pf-navy);letter-spacing:-.01em;line-height:1.2}
.pf-date .sub{display:block;font-size:13.5px;color:rgba(27,38,85,.7);margin-top:4px}
.pf-vote-card{position:relative;background:#fff;border:1.5px solid var(--pf-navy-2);border-radius:14px;padding:28px 56px 26px 28px;min-height:150px;transition:background-color .18s,border-color .18s}
.pf-vote-card .elementor-icon-box-wrapper{display:block;text-align:left}
.pf-vote-card .elementor-icon-box-icon{position:absolute;right:22px;top:26px;margin:0}
.pf-vote-card .elementor-icon-box-icon .elementor-icon{color:var(--pf-red);font-size:20px;transition:color .18s,transform .18s}
.pf-vote-card .elementor-icon-box-icon .elementor-icon svg{width:20px;height:20px;fill:var(--pf-red)}
.pf-vote-card .elementor-icon-box-title{font-weight:800;font-size:20px;letter-spacing:-.01em;margin:0 0 8px;line-height:1.2;color:var(--pf-navy)}
.pf-vote-card .elementor-icon-box-title a{color:inherit;text-decoration:none}
.pf-vote-card .elementor-icon-box-title a::after{content:'';position:absolute;inset:0;border-radius:14px}
.pf-vote-card .elementor-icon-box-description{font-size:14.5px;line-height:1.5;color:var(--pf-ink);margin:0}
.pf-vote-card:hover{background:var(--pf-navy-2);border-color:var(--pf-navy-2)}
.pf-vote-card:hover .elementor-icon-box-title,.pf-vote-card:hover .elementor-icon-box-description{color:#fff}
.pf-vote-card:hover .elementor-icon-box-icon .elementor-icon{color:var(--pf-sky);transform:translateX(3px)}
.pf-vote-card:hover .elementor-icon-box-icon .elementor-icon svg{fill:var(--pf-sky)}
.pf-boe a{color:var(--pf-navy);font-weight:700;text-decoration-thickness:1.5px;text-underline-offset:3px}
.pf-boe a:hover{color:var(--pf-red)}

/* ---------- inner page prose (privacy policy, contact copy) ---------- */
.pf-prose,.pf-prose.elementor-widget-text-editor{max-width:780px}
.pf-prose h2{font-weight:800;font-size:26px;letter-spacing:-.01em;margin:40px 0 14px;color:var(--pf-navy)}
.pf-prose h2:first-child{margin-top:0}
.pf-prose h3{font-weight:800;font-size:19px;margin:26px 0 10px;color:var(--pf-navy)}
.pf-prose p,.pf-prose li{font-size:16.5px;line-height:1.7}
.pf-prose ul{padding-left:22px}
.pf-prose a{color:var(--pf-blue);font-weight:600;text-decoration-thickness:1.5px;text-underline-offset:3px}
.pf-prose a:hover{color:var(--pf-blue-dk)}
.pf-prose .pf-meta{font-size:14px;color:rgba(27,38,85,.7)}
.pf-contact-side h3{font-weight:800;font-size:15px;letter-spacing:.02em;margin:28px 0 6px;color:var(--pf-navy)}
.pf-contact-side p{font-size:16px;line-height:1.6}
.pf-contact-side .pf-lede{font-size:17px}
.pf-contact-side .pf-lede a{color:var(--pf-blue);font-weight:700;text-decoration-thickness:1.5px;text-underline-offset:3px}

/* ---------- footer ---------- */
.pf-footer{background:var(--pf-navy);color:#fff;padding:64px 0 34px}
.pf-footer-top{display:flex;align-items:center;justify-content:space-between;gap:32px;flex-wrap:wrap;padding-bottom:40px;border-bottom:1px solid rgba(255,255,255,.14)}
.pf-footer-top .pf-footer-logo{height:72px;width:auto}
.pf-footer-nav,.pf-footer-nav ul{display:flex;gap:6px 26px;flex-wrap:wrap;list-style:none;margin:0;padding:0}
.pf-footer-nav .sub-menu{display:contents}
.pf-footer-nav a{color:#fff;text-decoration:none;font:700 13px/1 var(--pf-font);letter-spacing:.07em;text-transform:uppercase;display:inline-block;padding:10px 0}
.pf-footer-nav a:hover{color:var(--pf-sky)}
.pf-footer-mid{display:flex;flex-direction:column;align-items:center;gap:22px;padding:40px 0 34px}
.pf-paidfor{display:inline-block;border:2px solid #fff;padding:9px 16px;font:700 11.5px/1 var(--pf-font);letter-spacing:.1em;text-transform:uppercase;color:#fff}
.pf-footer-bottom{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;font-size:13px;color:rgba(255,255,255,.75)}
.pf-footer-bottom .pf-legal{font:700 11.5px/1.4 var(--pf-font);letter-spacing:.09em;text-transform:uppercase}
.pf-footer-bottom a{color:rgba(255,255,255,.9);text-decoration:none;font-weight:700;font-size:11.5px;letter-spacing:.09em;text-transform:uppercase}
.pf-footer-bottom a:hover{color:var(--pf-sky)}
.pf-footer-legal{display:flex;gap:18px;flex-wrap:wrap;align-items:center}
.pf-credit{display:inline-flex;align-items:center;gap:10px}
.pf-credit img{height:22px;width:auto;display:block}


/* ---------- Elementor container hooks (grid layouts inside flex containers) ---------- */
.e-con.pf-amounts{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.e-con.pf-amounts > .elementor-widget{width:100%;margin:0}
.e-con.pf-vote-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.e-con.pf-vote-grid > .elementor-widget{width:100%;margin:0}
.e-con.pf-dates > .e-con{border-left:1.5px solid var(--pf-line)}
.e-con.pf-dates > .e-con:first-child{border-left:0}
.e-con.pf-endorse > .e-con-inner{align-items:center}
.pf-take-action-section .elementor-widget-shortcode{width:100%}
.pf-hero > .e-con-inner{min-height:inherit}
@media (max-width:1024px){
  .e-con.pf-vote-grid{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:767px){
  .e-con.pf-amounts{grid-template-columns:repeat(2,1fr)}
  .e-con.pf-vote-grid{grid-template-columns:1fr}
  .e-con.pf-dates > .e-con{border-left:0;border-top:1.5px solid var(--pf-line)}
  .e-con.pf-dates > .e-con:first-child{border-top:0}
}

/* ---------- motion: one load moment, three scroll reveals, response-to-action ---------- */
@media (prefers-reduced-motion:no-preference){
  .pf-join-card{animation:pf-rise .7s cubic-bezier(.2,.7,.2,1) .12s both}
  @keyframes pf-rise{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:none}}
  html.pf-js .pf-sec-title::after{transform:scaleX(0);transition:transform .6s cubic-bezier(.2,.7,.2,1)}
  html.pf-js .pf-sec-title.in-view::after{transform:scaleX(1)}
  html.pf-js .pf-checks .elementor-icon-list-icon i,html.pf-js .pf-checks .elementor-icon-list-icon svg{opacity:0;transform:scale(.4);transition:opacity .35s ease,transform .35s cubic-bezier(.2,.7,.2,1)}
  html.pf-js .pf-endorse.in-view .elementor-icon-list-item:nth-child(1) .elementor-icon-list-icon i,html.pf-js .pf-endorse.in-view .elementor-icon-list-item:nth-child(1) .elementor-icon-list-icon svg{opacity:1;transform:none;transition-delay:.15s}
  html.pf-js .pf-endorse.in-view .elementor-icon-list-item:nth-child(2) .elementor-icon-list-icon i,html.pf-js .pf-endorse.in-view .elementor-icon-list-item:nth-child(2) .elementor-icon-list-icon svg{opacity:1;transform:none;transition-delay:.4s}
  html.pf-js .pf-endorse.in-view .elementor-icon-list-item:nth-child(3) .elementor-icon-list-icon i,html.pf-js .pf-endorse.in-view .elementor-icon-list-item:nth-child(3) .elementor-icon-list-icon svg{opacity:1;transform:none;transition-delay:.65s}
  html.pf-js .pf-about-photo::before{transform:translate(-22px,-22px);transition:transform .8s cubic-bezier(.2,.7,.2,1) .15s}
  html.pf-js .pf-about-photo.in-view::before{transform:none}
  .pf-panel.is-active{animation:pf-panel .28s cubic-bezier(.2,.7,.2,1) both}
  @keyframes pf-panel{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
  .pf-overlay-links li{opacity:0;transform:translateY(12px);transition:opacity .32s ease,transform .32s cubic-bezier(.2,.7,.2,1)}
  body.pf-nav-open .pf-overlay-links li{opacity:1;transform:none}
  body.pf-nav-open .pf-overlay-links li:nth-child(1){transition-delay:.08s}
  body.pf-nav-open .pf-overlay-links li:nth-child(2){transition-delay:.13s}
  body.pf-nav-open .pf-overlay-links li:nth-child(3){transition-delay:.18s}
  body.pf-nav-open .pf-overlay-links li:nth-child(4){transition-delay:.23s}
  body.pf-nav-open .pf-overlay-links li:nth-child(5){transition-delay:.28s}
  body.pf-nav-open .pf-overlay-links li:nth-child(n+6){transition-delay:.33s}
  .pf-overlay-cta,.pf-overlay .pf-socials,.pf-overlay-brand{opacity:0;transform:translateY(12px);transition:opacity .32s ease,transform .32s cubic-bezier(.2,.7,.2,1)}
  body.pf-nav-open .pf-overlay-brand{opacity:1;transform:none;transition-delay:.02s}
  body.pf-nav-open .pf-overlay-cta{opacity:1;transform:none;transition-delay:.32s}
  body.pf-nav-open .pf-overlay .pf-socials{opacity:1;transform:none;transition-delay:.38s}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .pf-site-top *,.pf-overlay *,.pf-take-action *{transition:none!important;animation:none!important}
}

/* ---------- responsive ---------- */
@media (max-width:1140px){
  .pf-nav a{padding:0 10px;font-size:13px}
  .pf-header .pf-socials{display:none}
}
@media (max-width:1040px){
  :root{--pf-header-h:76px}
  .pf-nav,.pf-header-actions .pf-btn-outline-white,.pf-header-actions .pf-btn-outline-navy,.pf-header .pf-socials{display:none}
  .pf-hamburger{display:grid}
  .pf-brand img{height:60px}
  .pf-tiles{grid-template-columns:repeat(2,1fr)}
  .pf-chooser-grid{grid-template-columns:1fr;gap:28px}
  .pf-choice-list{position:static}
  .pf-layout-tiles .pf-panel.is-active{grid-template-columns:1fr;gap:36px}
  .pf-panel-intro{position:static}
  .pf-about-photo{max-width:520px}
  .pf-amounts{grid-template-columns:repeat(3,1fr)}
}
@media (max-width:900px){
  .pf-checks .elementor-icon-list-items{flex-direction:column;align-items:flex-start;width:max-content;max-width:100%;margin:0 auto;gap:18px}
  .pf-checks .elementor-icon-list-item{white-space:normal}
}
@media (max-width:767px){
  :root{--pf-promo-h:40px}
  .pf-promo{font-size:11.5px;letter-spacing:.06em}
  .pf-promo a{padding:0 44px} /* 1.0.7: symmetric, so the text truly centers (was 44/12 to dodge the X, which shifted it left) */
  .pf-promo .pf-promo-long{display:none}
  .pf-promo .pf-promo-short{display:inline}
  .pf-hero{background-image:none!important;background-color:var(--pf-ice)!important}
  .pf-hero-mobile-photo{margin:0 calc(50% - 50vw);width:100vw;max-width:100vw}
  .pf-join-card{margin-top:-72px;position:relative;z-index:1}
  .pf-tiles{grid-template-columns:1fr;gap:10px;margin-bottom:80px} /* 1.2.3: title clears the quick bar comfortably at the landing */
  .pf-tile{display:grid;grid-template-columns:44px 1fr;column-gap:14px;align-items:center;padding:14px 52px 14px 14px}
  .pf-tile .pf-icon{width:44px;height:44px}
  .pf-tile .pf-icon i{font-size:20px}
  .pf-tile .pf-choice-body{gap:2px}
  .pf-tile .pf-tile-title{font-size:16.5px}
  .pf-tile .pf-tile-desc{font-size:13px}
  .pf-tile .pf-sel,.pf-tile .pf-icon-go{top:50%;transform:translateY(-50%)}
  .pf-form-card{padding:26px 20px}
  .pf-panel-intro img{max-width:240px;margin-top:18px}
  .gform_wrapper.gravity-theme .gfield_checkbox,.gform_wrapper.gravity-theme .gfield_radio{grid-template-columns:1fr}
  .gform_wrapper.gravity-theme .gfield--width-half{grid-column:1/-1}
  .gform_wrapper.gravity-theme .ginput_complex .ginput_left,.gform_wrapper.gravity-theme .ginput_complex .ginput_right{flex-basis:100%}
  .pf-amounts{grid-template-columns:repeat(2,1fr)}
  .pf-amount.elementor-widget-button .elementor-button{height:56px;font-size:19px}
  .pf-vote-card{min-height:0;padding:22px 52px 22px 22px}
  .pf-footer{text-align:center}
  .pf-footer-top{flex-direction:column;align-items:center;gap:26px}
  .pf-footer-nav,.pf-footer-nav ul{justify-content:center}
  .pf-footer-bottom{flex-direction:column;align-items:center;gap:14px}
  .pf-footer-legal,.pf-credit{justify-content:center}
  .pf-about-photo::before{inset:14px -14px -14px 14px}
}
@media (max-width:480px){
  .pf-paidfor,.pf-footer-bottom .pf-legal,.pf-footer-bottom a{letter-spacing:.06em;font-size:11px}
  .pf-credit{flex-direction:column;gap:8px}
  .pf-header .pf-btn{height:42px;padding:0 18px;font-size:13.5px}
}

/* 1.0.1: Hello Elementor reset sets white-space:nowrap on <button>; tiles are buttons */
.pf-tile,.pf-tile *{white-space:normal}
/* 1.0.1: Elementor 4 .e-con>.elementor-widget{width:var(--container-widget-width);max-width:100%} outranks the bleed rule */
@media (max-width:767px){.e-con .pf-hero-mobile-photo.elementor-widget,.e-con>.e-con-inner>.pf-hero-mobile-photo.elementor-widget{width:100vw;max-width:100vw;margin:0 calc(50% - 50vw)}}

/* ============================== 1.0.3 ==============================
   - .pf-choice is a <button>: same Hello reset nowrap bug the tiles had (1.0.1)
   - checkmark glyphs hard-centered in their boxes
   - endorse band: subtle crimson->deep gradient so the large flat field
     doesn't read washed-out/pink (flat brand red stays underneath)
   - Take Action chooser: staggered entrance for the 4 options
   - hero: >=1440px switches to full-height, right-anchored art with a
     seamless flat extension (new 2592px image's left edge is uniform) */
.pf-choice,.pf-choice *{white-space:normal}
.pf-checks .elementor-icon-list-icon{display:flex!important;align-items:center!important;justify-content:center!important;text-align:center;line-height:0}
.pf-checks .elementor-icon-list-icon i{display:block;line-height:1;margin:0 auto}
.pf-checks .elementor-icon-list-icon svg{display:block;margin:0!important}
.pf-endorse,.e-con.pf-endorse{background-image:linear-gradient(135deg,#1b2655 0%,#223270 100%)}
@media (prefers-reduced-motion:no-preference){
  html.pf-js .pf-tiles li,html.pf-js .pf-choice-list li{opacity:0;transform:translateY(18px);transition:opacity .5s ease,transform .5s cubic-bezier(.2,.7,.2,1)}
  html.pf-js .pf-take-action.in-view .pf-tiles li,html.pf-js .pf-take-action.in-view .pf-choice-list li{opacity:1;transform:none}
  html.pf-js .pf-take-action.in-view .pf-tiles li:nth-child(1),html.pf-js .pf-take-action.in-view .pf-choice-list li:nth-child(1){transition-delay:.05s}
  html.pf-js .pf-take-action.in-view .pf-tiles li:nth-child(2),html.pf-js .pf-take-action.in-view .pf-choice-list li:nth-child(2){transition-delay:.16s}
  html.pf-js .pf-take-action.in-view .pf-tiles li:nth-child(3),html.pf-js .pf-take-action.in-view .pf-choice-list li:nth-child(3){transition-delay:.27s}
  html.pf-js .pf-take-action.in-view .pf-tiles li:nth-child(4),html.pf-js .pf-take-action.in-view .pf-choice-list li:nth-child(4){transition-delay:.38s}
  html.pf-js .pf-take-action.in-view .pf-tiles .pf-tile:not(.is-selected){animation:pf-nudge 5s ease 2.2s 1}
  @keyframes pf-nudge{0%,92%,100%{transform:none}94%{transform:translateY(-3px)}97%{transform:translateY(0)}}
}
/* 1.0.5 (supersedes the 1.0.3 >=1440px rule): keep the judge clear of the
   Join the Team card at EVERY width. The hero is a fixed 700px tall, so the
   art renders 2268px wide (2560 x 700/790) with the head centered ~1306px in.
   The 50vw/75vw terms park the head midway between the card's right edge
   (~max(564px, 50vw - 60px)) and the viewport edge; the 100% term takes over
   on ultra-wide screens (right-anchor) so the image's non-uniform right edge
   never leaves a seam. The uniform #aea594 left edge extends seamlessly
   whenever the art shifts right. */
/* 2.0.0: the framework's >=768px hero-art positioning block was removed - the Carrie hero
   uses a flat background with an inline transparent portrait, no bg art. */

/* 1.0.3: hover bridge — keeps the dropdown open while the pointer crosses the new gap */
.pf-nav .sub-menu::before{content:'';position:absolute;left:0;right:0;top:-16px;height:16px}

/* ============================== 1.0.4 ==============================
   - THE pink overlay: Hello Elementor reset.css paints [type="button"] and
     [type="submit"] :hover/:focus with background rgb(204,51,102). The tiles,
     choices, GF submit and the small close buttons are exactly those, and a
     tapped button KEEPS :focus on mobile - hence the lingering pink. Every
     interactive state now declares its own background (this file loads after
     the reset, so equal specificity wins).
   - mobile: the three stacked gaps (take-action sub->tiles, endorse->checks,
     donate sub->amounts) come from desktop-sized Elementor margins/gaps -
     tightened at <=767px.
   - mobile: tile/choice descriptions hidden (titles speak for themselves),
     titles up a step.
   - hide_desc="yes" (shortcode att / widget switcher) adds .pf-no-desc to
     hide the descriptions on desktop/tablet too. */
.pf-tile,.pf-choice{-webkit-tap-highlight-color:transparent}
.pf-tile:hover,.pf-tile:focus,.pf-tile:active{background:#fff}
.pf-tile-vote:hover,.pf-tile-vote:focus,.pf-tile-vote:active{background:var(--pf-ice)}
.pf-tile-donate:focus,.pf-tile-donate:active{background:var(--pf-red)}
.pf-tile-donate:hover{background:var(--pf-red-dk)}
.pf-tile.is-selected:hover,.pf-tile.is-selected:focus,.pf-tile.is-selected:active{background:var(--pf-navy)}
.pf-choice:focus,.pf-choice:active{background:#fff}
.pf-choice:hover{background:var(--pf-ice)}
.pf-choice.is-selected:hover,.pf-choice.is-selected:focus,.pf-choice.is-selected:active{background:var(--pf-ice)}
.pf-tile:focus-visible,.pf-choice:focus-visible{outline:2px solid var(--pf-sky);outline-offset:2px}
.gform_wrapper.gravity-theme .gform_footer .gform_button:focus,.gform_wrapper.gravity-theme .gform_footer .gform_button:active{background:var(--pf-red)}
.gform_wrapper.gravity-theme .gform_footer .gform_button:hover{background:var(--pf-red-dk)}
.pf-promo-close:focus,.pf-promo-close:active{background:rgba(0,0,0,.15)}
.pf-hamburger:focus,.pf-hamburger:active{background:var(--pf-ice);color:var(--pf-navy)}
.pf-overlay-close:focus,.pf-overlay-close:active{background:var(--pf-ice);color:var(--pf-navy)}

/* optional: no descriptions anywhere */
.pf-no-desc .pf-tile-desc{display:none}
.pf-no-desc .pf-tile .pf-tile-title{font-size:23px}
.pf-no-desc .pf-choice .pf-tile-title{font-size:19px}

@media (max-width:767px){
  /* Elementor page CSS gives the take-action widget a 44px desktop top margin */
  .elementor-widget-pinto-take-action>.elementor-widget-container{margin-top:14px!important}
  /* endorse lockup -> checkmarks: container gap 48px on desktop */
  .pf-endorse>.e-con-inner{gap:18px!important}
  /* donate heading/sub -> amount buttons: container gap 56px on desktop */
  .pf-donate>.e-con-inner{gap:24px!important}
  /* self-explanatory options: drop the blurbs, let the titles carry it */
  .pf-tile .pf-tile-desc,.pf-choice .pf-tile-desc{display:none}
  .pf-tile .pf-tile-title,.pf-no-desc .pf-tile .pf-tile-title{font-size:19px}
  .pf-choice .pf-tile-title,.pf-no-desc .pf-choice .pf-tile-title{font-size:18px}
}

/* ============================== 1.0.5 ==============================
   (hero reposition lives up in the old >=1440px block, now >=768px)
   Chip In hover artifact: the pf-btn/pf-btn-red classes sit on the Elementor
   WIDGET wrapper, which a container stretches full-width - so the wrapper was
   painted as a 100%-wide pill with the real content-width <a> pill on top.
   Hovering the wrapper's dead zone darkened only the wrapper. Fix: strip the
   wrapper's own chrome and stretch the <a> to fill it - one pill, one hover. */
.pf-btn.elementor-widget-button,.pf-btn.elementor-widget-button:hover{height:auto;padding:0;border:0;background:transparent}
.pf-btn.elementor-widget-button .elementor-button{width:100%}

/* ============================== 1.0.6 ==============================
   (hero face-centering constants retuned up in the >=768px hero block)
   Sign-size cards: each radio+label group was centered as a unit, so the two
   options' radios never lined up. Left-align the row and lead each card with
   its actual sign mockup (choice 1 = small yard sign, choice 2 = large
   4ft x 2ft rally-style sign). */
.gform_wrapper.gravity-theme .pf-size-cards .gchoice{justify-content:flex-start;gap:14px;padding:14px 18px}
.gform_wrapper.gravity-theme .pf-size-cards .gchoice::before{content:'';flex:none;width:92px;height:62px;background:center/contain no-repeat}
.gform_wrapper.gravity-theme .pf-size-cards .gchoice:nth-child(1)::before{background-image:url(../img/carrie-sign-yard.png)}
.gform_wrapper.gravity-theme .pf-size-cards .gchoice:nth-child(2)::before{background-image:url(../img/carrie-sign-2x4.png)}
@media (max-width:480px){
  .gform_wrapper.gravity-theme .pf-size-cards .gchoice{gap:10px;padding:12px 14px}
  .gform_wrapper.gravity-theme .pf-size-cards .gchoice::before{width:72px;height:50px}
}

/* ============================== 1.0.7 ==============================
   - promo bar text truly centered on mobile (padding made symmetric, up in
     the <=767px block)
   - footer identity: the left-aligned logo read as a second header. Footer
     top now stacks centered at every width - bigger logo, centered nav,
     slightly bigger centered socials.
   - sign-size field description taken down a step */
.pf-footer-top{flex-direction:column;align-items:center;justify-content:center;gap:28px;text-align:center}
.pf-footer-top .pf-footer-logo{height:96px}
.pf-footer-nav,.pf-footer-nav ul{justify-content:center}
.pf-footer .pf-socials{gap:10px}
.pf-footer .pf-socials a{width:48px;height:48px}
.pf-footer .pf-socials svg{height:22px}
.gform_wrapper.gravity-theme .pf-size-cards .gfield_description{font-size:11px;letter-spacing:.01em;color:rgba(27,38,85,.55);padding-top:8px}

/* ============================== 1.0.8 ==============================
   - Vote page: the key-dates strip (pf-dates) moved into the navy hero
     (Elementor data surgery on page 12) so the white cards below are pure
     actions. On-dark treatment: translucent panel, sky labels, white dates.
   - homepage: take-action widget's 44px Elementor top margin trimmed on
     desktop/tablet too (mobile got 14px in 1.0.4). */
.pf-page-title .pf-dates{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.18);margin-top:14px}
.pf-page-title .pf-dates > .e-con-inner > .e-con,.pf-page-title .e-con.pf-dates > .e-con{border-color:rgba(255,255,255,.18)}
.pf-page-title .pf-date .label{color:var(--pf-sky)}
.pf-page-title .pf-date .val{color:#fff;font-size:22px}
.pf-page-title .pf-date .sub{color:rgba(255,255,255,.66)}
@media (min-width:768px){
  .elementor-widget-pinto-take-action>.elementor-widget-container{margin-top:24px!important}
}

/* ============================== 1.0.9 ==============================
   - pf-btn-inline: a pf-btn widget button that stays content-width and
     centers (the 1.0.5 fix stretches widget buttons full width by default) -
     used by the "Find Your Poll Site" CTA in the Vote hero.
   - vote plan panel: the homepage Take Action "Vote" option can open an
     in-page panel (widget setting) - key dates stack + 4 BOE action links.
   - custom pinto-yard-sign glyph replaces fa-sign (FA Free has no yard sign). */
.pf-btn-inline.elementor-widget-button{display:flex;justify-content:center}
.pf-btn-inline.elementor-widget-button .elementor-button{width:auto;min-width:260px}

.pf-vote-plan .pf-dates-stack{display:flex;flex-direction:column;gap:18px;padding-bottom:24px;margin-bottom:24px;border-bottom:1.5px solid var(--pf-line)}
.pf-vote-plan .pf-date{margin:0}
.pf-vote-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.pf-vote-action{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:14px 16px;background:#fff;border:1.5px solid var(--pf-line);border-radius:12px;font:700 14px/1.3 var(--pf-font);color:var(--pf-navy);text-decoration:none;transition:border-color .15s,box-shadow .15s}
.pf-vote-action:hover{border-color:var(--pf-navy);box-shadow:0 4px 14px rgba(27,38,85,.08)}
.pf-vote-action svg{width:16px;height:16px;flex:none;color:var(--pf-red)}
.pf-vote-more{display:inline-flex;align-items:center;gap:8px;margin-top:20px;font:700 13.5px/1 var(--pf-font);letter-spacing:.02em;color:var(--pf-navy);text-decoration:none;border-bottom:2px solid var(--pf-sky);padding-bottom:3px}
.pf-vote-more:hover{color:var(--pf-red)}
.pf-vote-more svg{width:15px;height:15px}
@media (max-width:600px){
  .pf-vote-actions{grid-template-columns:1fr}
}

/* ============================== 1.1.0 ==============================
   - action blue #199AD6: red now belongs to Donate alone. GF submits
     (Sign Up / Sign Me Up / Request My Sign / contact), the
     Vote hero poll-site button (pf-btn-blue), the Vote tile icon circle,
     and the donate amount hover all move to blue.
   - sticky quick-action bar (.pf-quickbar): rendered by the Take Action
     shortcode, slides in under the sticky header once the chooser scrolls
     out of view (pinto.js .is-on). Its option buttons are [type=button] -
     every state declares a background (the Hello reset pink again).
   - footer credit text is now a Customizer setting (credit_text). */
:root{--pf-blue:#026aac;--pf-blue-dk:#02507f}

/* blue CTAs (Donate keeps red) */
.gform_wrapper.gravity-theme .gform_footer .gform_button{background:var(--pf-blue)}
.gform_wrapper.gravity-theme .gform_footer .gform_button:focus,.gform_wrapper.gravity-theme .gform_footer .gform_button:active{background:var(--pf-blue)}
.gform_wrapper.gravity-theme .gform_footer .gform_button:hover{background:var(--pf-blue-dk)}
.pf-btn-blue,.pf-btn-blue.elementor-widget-button .elementor-button{background:var(--pf-blue);border-color:var(--pf-blue);color:#fff}
.pf-btn-blue:hover,.pf-btn-blue.elementor-widget-button .elementor-button:hover{background:var(--pf-blue-dk);border-color:var(--pf-blue-dk);color:#fff}
.pf-tile-vote .pf-icon,.pf-choice-vote .pf-icon{background:var(--pf-blue);color:#fff}
.pf-amount.elementor-widget-button .elementor-button:hover{background:var(--pf-blue);border-color:var(--pf-blue);color:#fff}

/* sticky quick-action bar */
.pf-quickbar{position:fixed;left:0;right:0;top:calc(var(--pf-admin-bar) + var(--pf-promo-h) + var(--pf-header-h));z-index:99;background:#fff;box-shadow:0 14px 34px rgba(27,38,85,.16);transform:translateY(-110%);visibility:hidden;transition:transform .34s cubic-bezier(.2,.7,.2,1),visibility .34s}
.pf-quickbar.is-on{transform:none;visibility:visible}
@media (prefers-reduced-motion:reduce){.pf-quickbar{transition:none}}
.pf-quickbar-row{display:flex;align-items:center;justify-content:center;gap:18px;padding:9px 0}
.pf-quickbar-label{font:800 11px/1 var(--pf-font);letter-spacing:.12em;text-transform:uppercase;color:rgba(27,38,85,.5)}
.pf-quickbar-btns{display:flex;align-items:center;gap:8px}
.pf-qb{display:inline-flex;align-items:center;justify-content:center;height:38px;padding:0 18px;border-radius:var(--pf-r-pill);border:1.5px solid var(--pf-line);background:#fff;color:var(--pf-navy);font:700 13px/1 var(--pf-font);letter-spacing:.01em;text-decoration:none;cursor:pointer;white-space:nowrap;transition:background-color .15s,border-color .15s,color .15s}
.pf-qb:hover,.pf-qb:focus,.pf-qb:active{background:#fff;border-color:var(--pf-navy)}
.pf-qb.is-selected,.pf-qb.is-selected:hover,.pf-qb.is-selected:focus,.pf-qb.is-selected:active{background:var(--pf-navy);border-color:var(--pf-navy);color:#fff}
.pf-qb-vote,.pf-qb-vote:focus,.pf-qb-vote:active{background:var(--pf-blue);border-color:var(--pf-blue);color:#fff}
.pf-qb-vote:hover{background:var(--pf-blue-dk);border-color:var(--pf-blue-dk);color:#fff}
.pf-qb-donate,.pf-qb-donate:focus,.pf-qb-donate:active{background:var(--pf-red);border-color:var(--pf-red);color:#fff}
.pf-qb-donate:hover{background:var(--pf-red-dk);border-color:var(--pf-red-dk);color:#fff}
.pf-qb:focus-visible{outline:2px solid var(--pf-sky);outline-offset:2px}
@media (max-width:640px){
  .pf-quickbar-label{display:none}
  .pf-quickbar .pf-container{width:calc(100% - 16px)}
  .pf-quickbar-row{padding:8px 0}
  .pf-quickbar-btns{gap:5px;max-width:100%;overflow-x:auto;padding:2px}
  .pf-qb{height:34px;padding:0 10px;font-size:10.5px;letter-spacing:0}
}

/* ============================== 1.1.1 ==============================
   - selected-tile check circle + "All dates" underline join the #199AD6
     action blue (sky stays for text/hovers on navy, focus outlines, the
     endorse check boxes on red, and the big photo backdrop - contrast).
   - html.pf-qb-on (set by pinto.js while the quick bar is showing) grows
     scroll-padding so native anchor jumps (#donate) clear the bar; panel
     clicks scroll to the chosen panel's title via scrollToPanel(). */
.pf-tile.is-selected .pf-sel{background:var(--pf-blue);border-color:var(--pf-blue)}
.pf-vote-more{border-bottom-color:var(--pf-blue)}
html.pf-qb-on{--pf-qb-h:60px}

/* ============================== 1.1.2 ==============================
   - --pf-qb-h: single source of truth for the quick bar's presence (pinto.js
     toggles html.pf-qb-on). Scroll padding AND the sticky panel intro /
     choice list now include it, so the traveling h3 titles tuck under the
     bar instead of being cut by it - and every offset keeps deriving from
     the header/promo/admin vars, so promo bar on, x'd out, or disabled all
     stay correct automatically.
   - quick bar pills: Hello's reset paints button:hover/:focus color:#fff
     (with the pink) - the pills' bare text went white-on-white. Every state
     now declares its color too. */
:root{--pf-qb-h:0px}
html{scroll-padding-top:calc(var(--pf-header-h) + var(--pf-promo-h) + var(--pf-admin-bar) + 12px + var(--pf-qb-h))}
.pf-panel-intro{top:calc(var(--pf-header-h) + var(--pf-promo-h) + var(--pf-admin-bar) + 28px + var(--pf-qb-h));transition:top .34s cubic-bezier(.2,.7,.2,1)}
.pf-choice-list{top:calc(var(--pf-header-h) + var(--pf-promo-h) + var(--pf-admin-bar) + 28px + var(--pf-qb-h));transition:top .34s cubic-bezier(.2,.7,.2,1)}
@media (prefers-reduced-motion:reduce){.pf-panel-intro,.pf-choice-list{transition:none}}
.pf-qb:hover,.pf-qb:focus,.pf-qb:active{color:var(--pf-navy)}
.pf-qb-vote:hover,.pf-qb-vote:focus,.pf-qb-vote:active,.pf-qb-donate:hover,.pf-qb-donate:focus,.pf-qb-donate:active,.pf-qb.is-selected:hover,.pf-qb.is-selected:focus,.pf-qb.is-selected:active{color:#fff}

/* ============================== 1.1.3 ==============================
   Staged chrome: the promo bar tucks away (html.pf-promo-tucked, set by
   pinto.js) once the hero / page-title band scrolls past - separate moment
   from the quick bar's slide-in, so the two never move at once. The promo
   animates HEIGHT (cross-browser, no custom-property animation) on the same
   curve as everything else; the quick bar transitions its top so it tracks
   the rising header. Quick bar ships without the Donate pill by default
   (quickbar_donate="yes" / widget switcher brings it back). */
html.pf-promo-tucked{--pf-promo-h:0px}
html.pf-promo-tucked .pf-promo{visibility:hidden}
.pf-promo{overflow:hidden;transition:height .34s cubic-bezier(.2,.7,.2,1),visibility .34s}
.pf-quickbar{transition:transform .34s cubic-bezier(.2,.7,.2,1),visibility .34s,top .34s cubic-bezier(.2,.7,.2,1)}
@media (prefers-reduced-motion:reduce){
  .pf-promo,.pf-quickbar{transition:none}
}

/* ============================== 1.1.4 ==============================
   Thank-you pages ([pinto_thank_you] + page-templates/thank-you.php):
   personalized headline, check pill, donate pitch, Anedot amount card.
   ?fname= is injected client-side (pinto.js) so pages stay cacheable. */
.pf-thankyou{background:var(--pf-ice);padding:84px 0 96px}
.pf-thankyou *{box-sizing:border-box}
.pf-thankyou-grid{display:grid;grid-template-columns:7fr 5fr;gap:64px;align-items:center}
.pf-thankyou h1{margin:0 0 18px;font:900 clamp(38px,5vw,62px)/0.98 var(--pf-font);letter-spacing:-.02em;text-transform:uppercase;color:var(--pf-navy)}
.pf-ty-pill{display:inline-flex;align-items:center;gap:10px;margin:0 0 26px;background:#fff;border:1.5px solid var(--pf-line);border-radius:var(--pf-r-pill);padding:11px 20px 11px 12px;font:700 14.5px/1 var(--pf-font);color:var(--pf-ink);box-shadow:0 8px 22px rgba(27,38,85,.08)}
.pf-ty-check{width:24px;height:24px;border-radius:50%;background:var(--pf-blue);color:#fff;display:grid;place-items:center;flex:none}
.pf-ty-check svg{width:13px;height:13px}
.pf-thankyou h2{margin:0 0 10px;font:800 clamp(20px,2.2vw,26px)/1.25 var(--pf-font);letter-spacing:-.01em;color:var(--pf-navy)}
.pf-ty-text{font-size:17px;line-height:1.65;color:var(--pf-ink);margin:0 0 28px;max-width:560px}
.pf-ty-text a{color:var(--pf-blue);font-weight:700;text-decoration:none}
.pf-ty-text a:hover{text-decoration:underline}
.pf-ty-card{background:#fff;border:1.5px solid var(--pf-line);border-radius:var(--pf-r-card);padding:34px 30px;box-shadow:0 18px 50px rgba(27,38,85,.10)}
.pf-ty-card-label{font:800 12px/1 var(--pf-font);letter-spacing:.14em;text-transform:uppercase;color:rgba(27,38,85,.55);margin:0 0 18px;text-align:center}
.pf-ty-amounts{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}
.pf-ty-amounts a{display:flex;align-items:center;justify-content:center;height:58px;border-radius:var(--pf-r-pill);border:2px solid var(--pf-blue);background:var(--pf-blue);color:#fff;font:800 20px/1 var(--pf-font);letter-spacing:-.01em;text-decoration:none;transition:background-color .18s,color .18s,border-color .18s}
.pf-ty-amounts a:hover{background:var(--pf-blue-dk);border-color:var(--pf-blue-dk);color:#fff}
.pf-ty-amounts a.pf-ty-other{background:var(--pf-red);border-color:var(--pf-red);font-size:15.5px}
.pf-ty-amounts a.pf-ty-other:hover{background:var(--pf-red-dk);border-color:var(--pf-red-dk)}
.pf-ty-note{margin:16px 0 0;text-align:center;font-size:12.5px;color:rgba(27,38,85,.5)}
@media (max-width:900px){
  .pf-thankyou{padding:48px 0 64px}
  .pf-thankyou-grid{grid-template-columns:1fr;gap:38px}
}

/* ============================== 1.1.5 ==============================
   - thank-you amount card went white with #199AD6 filled pills (edited in
     the 1.1.4 block above); Other Amount stays red.
   - homepage donate amounts OPTION: add the class pf-amounts-blue to the
     amounts container (Elementor > Advanced > CSS Classes, next to
     pf-amounts) to switch the white-outline pills to filled #199AD6.
     Remove the class to go back. Other Amount stays red either way. */
.pf-amounts-blue .pf-amount.elementor-widget-button .elementor-button{background:var(--pf-blue);border-color:var(--pf-blue);color:#fff}
.pf-amounts-blue .pf-amount.elementor-widget-button .elementor-button:hover{background:var(--pf-blue-dk);border-color:var(--pf-blue-dk);color:#fff}
/* Other Amount goes outline in the blue style: red ring, white text, fills red on hover */
.pf-amounts-blue .pf-amount-other.elementor-widget-button .elementor-button{background:transparent;border-color:var(--pf-red);color:#fff}
.pf-amounts-blue .pf-amount-other.elementor-widget-button .elementor-button:hover{background:var(--pf-red);border-color:var(--pf-red);color:#fff}

/* 1.1.7: default text-link color is the action blue; red stays reserved for donate buttons */

/* ============================== 1.2.0 ==============================
   Dedicated /get-involved and /request-a-sign pages ([pinto_panel]):
   nav, then the exact homepage panel layout (h1 styled like the chooser
   h3), footer. */
.pf-panel-page{background:#fff;padding:72px 0 96px}
@media (max-width:767px){
  .pf-panel-page{padding:36px 0 64px}
}
/* GF prints its theme CSS AFTER pinto.css on bare-template pages (opposite of
   Elementor pages) - the (Required) suppression needs to win either order */
.gform_wrapper.gravity-theme .gfield_required_text{display:none!important}

/* ============================== 1.2.4 ==============================
   .pf-underline (Elementor > Advanced > CSS Classes, on any text widget):
   pinto.js draws a gently curved, round-capped #199AD6 stroke under the text,
   animated in like a hand annotation when it scrolls into view. */
.pf-annotate{display:block;width:min(320px,80%);height:10px;margin-top:12px;overflow:visible}
.pf-annotate path{stroke:var(--pf-blue);stroke-width:5;fill:none;stroke-linecap:round}
@media (prefers-reduced-motion:no-preference){
  html.pf-js .pf-underline .pf-annotate path{stroke-dasharray:1;stroke-dashoffset:1;transition:stroke-dashoffset .9s cubic-bezier(.55,0,.3,1) .2s}
  html.pf-js .pf-underline.in-view .pf-annotate path{stroke-dashoffset:0}
}

/* ============================== 1.2.7 ==============================
   Sign-size cards: the WHOLE card selects the size (users clicked the card,
   not the radio, and thought it was broken) - the label stretches over the
   card via ::after, so any click lands on it. */
.gform_wrapper.gravity-theme .pf-size-cards .gchoice{cursor:pointer}
.gform_wrapper.gravity-theme .pf-size-cards .gchoice label::after{content:'';position:absolute;inset:0;border-radius:14px;cursor:pointer}

/* ============================== 1.2.8 ==============================
   Links inside form consent/opt-in fine print (e.g. Privacy Policy) match the
   surrounding muted text - just underlined, not a stop color. */
.gform_wrapper.gravity-theme .pf-optin .gfield_description a,.gform_wrapper.gravity-theme .gfield--type-consent .gfield_consent_description a,.gform_wrapper.gravity-theme .ginput_container_consent label a,.gform_wrapper.gravity-theme .gchoice label a{color:inherit;font-weight:inherit;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:2px}
.gform_wrapper.gravity-theme .pf-optin .gfield_description a:hover,.gform_wrapper.gravity-theme .gfield--type-consent .gfield_consent_description a:hover,.gform_wrapper.gravity-theme .ginput_container_consent label a:hover,.gform_wrapper.gravity-theme .gchoice label a:hover{color:var(--pf-navy)}
/* 1.2.9: GP Advanced Phone Field (intl-tel-input; the dropdown is appended to <body> as .iti--container, outside .gform_wrapper). The flag selector is a <button>, so Hello Elementor's reset painted it #c36 on hover/focus/open. Sky tint + palette dropdown. */
.gform_wrapper .iti,.iti.iti--container{--iti-hover-color:rgba(127,183,228,.22);--iti-border-color:var(--pf-line);--iti-arrow-color:var(--pf-navy);--iti-dialcode-color:rgba(27,38,85,.6);--iti-dropdown-bg:#fff}
.gform_wrapper .iti .iti__selected-country{background:transparent!important;color:var(--pf-navy)!important;border-radius:var(--pf-r-input) 0 0 var(--pf-r-input);transition:background-color .15s;-webkit-tap-highlight-color:transparent}
.gform_wrapper .iti .iti__selected-country:hover,.gform_wrapper .iti .iti__selected-country:focus,.gform_wrapper .iti .iti__selected-country:focus-visible,.gform_wrapper .iti .iti__selected-country:active,.gform_wrapper .iti .iti__selected-country[aria-expanded=true]{background:rgba(127,183,228,.22)!important;color:var(--pf-navy)!important;outline:none}
.gform_wrapper .iti .iti__country-list,.iti.iti--container .iti__country-list{border:1.5px solid var(--pf-line);border-radius:var(--pf-r-input);box-shadow:0 14px 34px rgba(27,38,85,.14);font-family:var(--pf-font);color:var(--pf-ink)}
.gform_wrapper .iti .iti__country,.iti.iti--container .iti__country{padding:8px 12px}
.gform_wrapper .iti .iti__country.iti__highlight,.iti.iti--container .iti__country.iti__highlight{background:rgba(127,183,228,.22)}
.gform_wrapper .iti .iti__search-input,.iti.iti--container .iti__search-input{font:500 15px var(--pf-font);color:var(--pf-navy);border-bottom:1.5px solid var(--pf-line)}

/* ============================== 2.0.0 — CARRIE LOW ==============================
   Brand fork: white sticky header, Georgia display serif over Avenir Next body,
   desktop red site frame, flat off-white hero with the transparent portrait,
   slogan highlight chips, endorsements grid/carousel, overlapping about photos,
   camera-icon photo captions. Framework internals keep the pf-/pinto_ names. */

/* ---------- type: Georgia for display headings ---------- */
.pf-sec-title .elementor-heading-title,.pf-sec-title:not(.elementor-widget){font-family:var(--pf-serif);font-weight:700;letter-spacing:-.01em;line-height:1.04}
.pf-h3 .elementor-heading-title,.pf-panel-intro h3,.pf-panel-intro h1{font-family:var(--pf-serif);font-weight:700;letter-spacing:-.005em;line-height:1.12}
.pf-join-card .elementor-widget-heading .elementor-heading-title{font-family:var(--pf-serif);font-weight:700;letter-spacing:-.01em;line-height:1.04}
.pf-endorse-lockup .big{font-family:var(--pf-serif);font-weight:700;letter-spacing:0}
.pf-prose h2,.pf-prose h3,.gform_confirmation_message h3{font-family:var(--pf-serif);font-weight:700}
.pf-thankyou h1{font-family:var(--pf-serif);font-weight:700;letter-spacing:-.01em}
.pf-thankyou h2{font-family:var(--pf-serif);font-weight:700}

/* ---------- white sticky header ---------- */
.pf-header{background:#fff;box-shadow:0 1px 0 var(--pf-line)}
html.pf-scrolled .pf-header{box-shadow:0 10px 30px rgba(27,38,85,.14)}
.pf-nav a{color:var(--pf-navy)}
.pf-nav a:hover,.pf-nav li:focus-within > a{color:var(--pf-blue)}
.pf-nav .sub-menu{background:#fff;border:1px solid var(--pf-line);box-shadow:0 18px 40px rgba(27,38,85,.16)}
.pf-nav .sub-menu a{color:var(--pf-navy)}
.pf-nav .sub-menu a:hover{background:var(--pf-ice);color:var(--pf-blue)}
.pf-header .pf-socials a{color:var(--pf-navy)}
.pf-header .pf-socials a:hover{background:var(--pf-ice);color:var(--pf-blue)}
.pf-hamburger{color:var(--pf-navy)}
.pf-hamburger:hover,.pf-hamburger:focus,.pf-hamburger:active{background:var(--pf-ice)}

/* ---------- desktop red site frame (Customizer → Footer → red border) ---------- */
/* the frame is a complete, always-on viewport border; the sticky chrome (promo/header/
   quick bar) rides BELOW its top edge, so the frame stays closed on scroll and the
   white header is never covered */
body.pf-frame::after{content:'';position:fixed;inset:0;border:var(--pf-frame-w,10px) solid var(--pf-frame,#d6202b);pointer-events:none;z-index:640;display:none}
@media (min-width:1025px){
  body.pf-frame.pf-frame-d::after{display:block}
  body.pf-frame.pf-frame-d .pf-site-top{top:calc(var(--pf-admin-bar) + var(--pf-frame-w,10px))}
  body.pf-frame.pf-frame-d .pf-quickbar{top:calc(var(--pf-admin-bar) + var(--pf-promo-h) + var(--pf-header-h) + var(--pf-frame-w,10px))}
  body.pf-frame.pf-frame-d .pf-panel-intro,body.pf-frame.pf-frame-d .pf-choice-list{top:calc(var(--pf-header-h) + var(--pf-promo-h) + var(--pf-admin-bar) + 28px + var(--pf-qb-h,0px) + var(--pf-frame-w,10px))}
}
@media (min-width:768px) and (max-width:1024px){
  body.pf-frame.pf-frame-t::after{display:block}
  body.pf-frame.pf-frame-t .pf-site-top{top:calc(var(--pf-admin-bar) + var(--pf-frame-w,10px))}
  body.pf-frame.pf-frame-t .pf-quickbar{top:calc(var(--pf-admin-bar) + var(--pf-promo-h) + var(--pf-header-h) + var(--pf-frame-w,10px))}
}
@media (max-width:767px){
  body.pf-frame.pf-frame-m::after{display:block}
  body.pf-frame.pf-frame-m .pf-site-top{top:calc(var(--pf-admin-bar) + var(--pf-frame-w,10px))}
  body.pf-frame.pf-frame-m .pf-quickbar{top:calc(var(--pf-admin-bar) + var(--pf-promo-h) + var(--pf-header-h) + var(--pf-frame-w,10px))}
}

/* ---------- hero: slogan chips + transparent portrait ---------- */
.pf-slogan .elementor-heading-title,h1.pf-slogan,h2.pf-slogan{font-family:var(--pf-font);font-weight:800;-webkit-text-stroke:.034em currentColor;paint-order:stroke fill;font-size:clamp(27px,2.9vw,40px);line-height:1.22;letter-spacing:.012em;text-transform:uppercase;color:var(--pf-navy);margin:0}
.pf-slogan .hl{display:inline;background:var(--pf-blue);color:#fff;padding:.05em .18em .07em;-webkit-box-decoration-break:clone;box-decoration-break:clone}
.pf-slogan.pf-on-dark .elementor-heading-title{color:#fff}
.pf-hero-photo{display:flex;align-items:flex-end;justify-content:center}
.pf-hero-photo img{display:block;width:100%;max-width:600px;height:auto;filter:drop-shadow(0 26px 44px rgba(27,38,85,.26))}
.pf-hero-halo{position:relative}
.pf-hero-halo::before{content:'';position:absolute;left:50%;bottom:-8%;transform:translateX(-50%);width:132%;aspect-ratio:1;border-radius:50%;background:radial-gradient(closest-side,rgba(127,183,228,.42),rgba(127,183,228,0) 72%)}
.pf-hero-halo img{position:relative}
.pf-hero > .e-con-inner > .e-con{min-width:0}

/* ---------- about: two overlapping photos ---------- */
.pf-about-duo{position:relative}
.pf-about-duo::before{content:'';position:absolute;inset:24px -24px -24px 24px;background:var(--pf-sky);border-radius:var(--pf-r-card)}
.pf-about-duo .pf-duo-a img{position:relative;border-radius:var(--pf-r-card);width:100%;aspect-ratio:4/5;object-fit:cover;display:block}
.pf-about-duo .pf-duo-b{position:absolute;right:-30px;bottom:-40px;width:52%;z-index:2;margin:0}
.pf-about-duo .pf-duo-b img{width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:14px;border:6px solid #fff;box-shadow:0 22px 44px rgba(27,38,85,.30);display:block;transform:rotate(2.5deg)}
@media (prefers-reduced-motion:no-preference){
  html.pf-js .pf-about-duo::before{transform:translate(-22px,-22px);transition:transform .8s cubic-bezier(.2,.7,.2,1) .15s}
  html.pf-js .pf-about-duo.in-view::before{transform:none}
  html.pf-js .pf-about-duo .pf-duo-b{opacity:0;transform:translateY(18px);transition:opacity .5s ease .45s,transform .5s cubic-bezier(.2,.7,.2,1) .45s}
  html.pf-js .pf-about-duo.in-view .pf-duo-b{opacity:1;transform:none}
}
@media (max-width:1040px){
  .pf-about-duo{max-width:520px}
  .pf-about-duo .pf-duo-b{right:-10px;bottom:-28px}
}

/* ---------- photo captions with the camera glyph ---------- */
.pf-cam-caption .widget-image-caption,figcaption.pf-cam-caption{display:flex;align-items:center;justify-content:center;gap:7px;font-style:italic;font-size:14px;color:rgba(27,38,85,.62);margin-top:10px}
.pf-cam-caption .widget-image-caption::before,figcaption.pf-cam-caption::before{content:'';display:inline-block;flex:none;width:1.05em;height:1.05em;background-color:currentColor;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M9.4 4 7.6 6H4a2 2 0 0 0-2 2v11a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-3.6l-1.8-2H9.4zM12 18.5a4.9 4.9 0 1 1 0-9.8 4.9 4.9 0 0 1 0 9.8zm0-2a2.9 2.9 0 1 0 0-5.8 2.9 2.9 0 0 0 0 5.8z'/%3E%3C/svg%3E") center / contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M9.4 4 7.6 6H4a2 2 0 0 0-2 2v11a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-3.6l-1.8-2H9.4zM12 18.5a4.9 4.9 0 1 1 0-9.8 4.9 4.9 0 0 1 0 9.8zm0-2a2.9 2.9 0 1 0 0-5.8 2.9 2.9 0 0 0 0 5.8z'/%3E%3C/svg%3E") center / contain no-repeat}
.pf-band-img img{width:100%;height:auto;display:block}

/* ---------- endorsements ([pinto_endorsements] / Endorsements widget) ---------- */
.pf-endos{position:relative}
.pf-endos-track{display:flex;gap:34px;justify-content:center;flex-wrap:wrap;margin:0;padding:0;list-style:none}
.pf-endos-carousel .pf-endos-track{flex-wrap:nowrap;justify-content:flex-start;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;padding:6px 6px 18px;scrollbar-width:none}
.pf-endos-carousel .pf-endos-track::-webkit-scrollbar{display:none}
.pf-endo{flex:none;width:196px;display:flex;flex-direction:column;align-items:center;text-align:center;scroll-snap-align:start;text-decoration:none}
.pf-endo-circle{width:164px;height:164px;border-radius:50%;background:#fff;border:3px solid var(--pf-navy);padding:7px;display:block;box-shadow:0 12px 28px rgba(27,38,85,.12);transition:transform .2s,box-shadow .2s}
.pf-endo-circle img{width:100%;height:100%;border-radius:50%;object-fit:cover;display:block}
.pf-endo-contain .pf-endo-circle img{object-fit:contain;padding:10%;box-sizing:border-box;border-radius:50%}
.pf-endo-link{display:flex;flex-direction:column;align-items:center;text-align:center;width:100%;text-decoration:none}
a.pf-endo-link:hover .pf-endo-circle{transform:translateY(-4px);box-shadow:0 18px 36px rgba(27,38,85,.18)}
.pf-endo-title{margin:18px 0 3px;font:700 11.5px/1.3 var(--pf-font);letter-spacing:.1em;text-transform:uppercase;color:rgba(27,38,85,.55)}
.pf-endo-name{margin:18px 0 0;font:700 16px/1.3 var(--pf-font);color:var(--pf-navy)}
.pf-endo-title:empty{display:none}
.pf-endo-title + .pf-endo-name{margin-top:0}
.pf-endos-nav{position:absolute;top:76px;width:46px;height:46px;border-radius:50%;border:1.5px solid var(--pf-line);background:#fff;color:var(--pf-navy);display:none;place-items:center;cursor:pointer;z-index:2;transition:background-color .15s,border-color .15s,opacity .15s;padding:0}
.pf-endos-nav svg{width:20px;height:20px}
.pf-endos-nav:hover,.pf-endos-nav:focus{background:var(--pf-ice);border-color:var(--pf-navy);color:var(--pf-navy)}
.pf-endos-nav[disabled]{opacity:.35;cursor:default}
.pf-endos-prev{left:-10px}
.pf-endos-next{right:-10px}
.pf-endos-prev svg{transform:rotate(180deg)}
.pf-endos-carousel .pf-endos-nav{display:grid}
.pf-endos-dots{display:none;justify-content:center;gap:8px;margin-top:10px}
.pf-endos-carousel .pf-endos-dots{display:flex}
.pf-endos-dots button{width:9px;height:9px;border-radius:50%;border:0;padding:0;background:rgba(27,38,85,.22);cursor:pointer;transition:background-color .15s,transform .15s}
.pf-endos-dots button.is-on{background:var(--pf-navy);transform:scale(1.25)}
.pf-endos-dots button:hover,.pf-endos-dots button:focus,.pf-endos-dots button:active{background:var(--pf-navy);color:transparent}
@media (prefers-reduced-motion:no-preference){
  html.pf-js .pf-endos .pf-endo{opacity:0;transform:translateY(16px);transition:opacity .5s ease,transform .5s cubic-bezier(.2,.7,.2,1)}
  html.pf-js .pf-endos.in-view .pf-endo{opacity:1;transform:none}
  html.pf-js .pf-endos.in-view .pf-endo:nth-child(2){transition-delay:.1s}
  html.pf-js .pf-endos.in-view .pf-endo:nth-child(3){transition-delay:.2s}
  html.pf-js .pf-endos.in-view .pf-endo:nth-child(4){transition-delay:.3s}
  html.pf-js .pf-endos.in-view .pf-endo:nth-child(n+5){transition-delay:.4s}
}
@media (max-width:767px){
  .pf-endos-track{gap:22px}
  .pf-endo{width:150px}
  .pf-endo-circle{width:128px;height:128px;border-width:2.5px}
  .pf-endos-nav{display:none!important}
  .pf-endo-name{font-size:14.5px}
  .pf-endo-title{font-size:10.5px}
}

/* GF asterisk legend: the asterisks speak for themselves */
.gform_wrapper .gform_required_legend{display:none!important}
/* hero form spacing */
.pf-hero-form{width:100%;max-width:560px}
.pf-hero-form .gform_wrapper.gravity-theme .gform_footer{margin-top:16px}

/* bio links match the action blue */
.pf-bio a{color:var(--pf-blue);font-weight:700;text-decoration-thickness:1.5px;text-underline-offset:3px}
.pf-bio a:hover{color:var(--pf-blue-dk)}

/* centered section titles (e.g. Proudly Endorsed): no stripe, no stripe padding */
.pf-sec-title-center{padding-top:0}
.pf-sec-title-center::before{display:none}

/* ============================== 2.1.0 — CARRIE LOW round 2 ==============================
   Georgia headings in Title Case (no forced caps), rounded accent bar instead of the
   old stripes, white footer, navy palm-card checkboxes, logo overhang, endorsement
   image-mask toggles, Customizer-driven site frame. */

/* Georgia headings: no all-caps */
.pf-sec-title .elementor-heading-title,.pf-sec-title:not(.elementor-widget){text-transform:none;letter-spacing:-.005em;line-height:1.06}
.pf-h3 .elementor-heading-title,.pf-panel-intro h3,.pf-panel-intro h1{text-transform:none}
.pf-join-card .elementor-widget-heading .elementor-heading-title{text-transform:none}
.pf-endorse-lockup .big{text-transform:none}
.pf-thankyou h1{text-transform:none}
.gform_confirmation_message h3{text-transform:none}

/* accent bar under section titles (replaces the stripes) */
.pf-sec-title::after{content:'';display:block;width:64px;height:5px;border-radius:99px;background:var(--pf-blue);margin-top:16px;transform-origin:left center}
.pf-sec-title.elementor-widget-heading .elementor-heading-title{display:block}
.pf-on-dark.pf-sec-title::after{background:var(--pf-sky)}
.pf-endorse .pf-sec-title::after{background:#fff}
.pf-sec-title-center::after{margin-left:auto;margin-right:auto;transform-origin:center}

/* white footer: the logo lives on white, per the brand */
.pf-footer{background:#fff;color:var(--pf-ink);border-top:1px solid var(--pf-line)}
.pf-footer-top{border-bottom:1px solid var(--pf-line)}
.pf-footer-nav a{color:var(--pf-navy)}
.pf-footer-nav a:hover{color:var(--pf-blue)}
.pf-footer .pf-socials a{color:var(--pf-navy);background:var(--pf-ice)}
.pf-footer .pf-socials a:hover{background:var(--pf-navy);color:#fff}
.pf-paidfor{border-color:var(--pf-navy);color:var(--pf-navy)}
.pf-footer-bottom{color:rgba(27,38,85,.7)}
.pf-footer-bottom .pf-legal{color:rgba(27,38,85,.7)}
.pf-footer-bottom a{color:var(--pf-navy)}
.pf-footer-bottom a:hover{color:var(--pf-blue)}

/* endorse band: palm-card checkboxes (navy fill, white border + check) and no lockup column */
.pf-checks .elementor-icon-list-icon{background:transparent;border:3px solid #2e86c8;border-radius:0;position:relative;overflow:visible}
.pf-checks .elementor-icon-list-item{justify-content:center}

/* endorsement image toggles: plain (unmasked) images and/or no ring */
.pf-endos-nomask .pf-endo-circle{border-radius:0;background:transparent;padding:0;box-shadow:none}
.pf-endos-nomask .pf-endo-circle img{border-radius:0;object-fit:contain}
.pf-endos-noring .pf-endo-circle{border:0}
.pf-endos-nomask.pf-endos-noring .pf-endo-circle{box-shadow:none}

/* logo overhang is a desktop treatment: compact centered logo on small headers */
@media (max-width:1040px){
  .pf-brand{align-items:center}
}
/* accent bar on dark page-title bands */
.pf-page-title .pf-sec-title::after{background:var(--pf-sky)}

/* ============================== 2.2.0 — CARRIE LOW round 3 ============================== */

/* 8) logo style option (Customizer → Carrie Low → Header Logo):
   contained = fits inside the bar with breathing room; overhang = hangs below,
   the blue banner straddling the header's bottom edge (12px air above). */
body.pf-logo-contained .pf-brand{align-items:center}
body.pf-logo-contained .pf-brand img{height:calc(var(--pf-header-h) - 24px);margin-top:0}
@media (max-width:1040px){
  .pf-brand img{margin-top:0}
}

/* 14) white overlay: Volunteer pill needs the navy outline on white */
.pf-overlay .pf-btn-outline-white{border-color:var(--pf-navy);color:var(--pf-navy);background:transparent}
.pf-overlay .pf-btn-outline-white:hover{background:var(--pf-navy);color:#fff}
.pf-overlay .pf-socials a:hover{background:var(--pf-navy);color:#fff}

/* 12) navy endorse band: center the checks row and give it presence */
.pf-endorse > .e-con-inner{justify-content:center}

/* 10) carousel: hide any right-edge remainder while the exact-fit widths load */
.pf-endos-carousel .pf-endos-track{padding-left:0;padding-right:0}

/* ============================== 2.3.0 — CARRIE LOW round 4 ============================== */

/* 8) sticky/scrolled header keeps the logo CONTAINED (overhang only at the top of the page) */
html.pf-scrolled .pf-brand{align-items:center}
html.pf-scrolled .pf-brand img{height:calc(var(--pf-header-h) - 24px);margin-top:0}

/* 10) carousel arrows live in side gutters, clear of the images */
.pf-endos-carousel{padding:0 64px}
.pf-endos-prev{left:6px}
.pf-endos-next{right:6px}
@media (max-width:767px){
  .pf-endos-carousel{padding:0}
}

/* 12) palm-card check glyph: oversized white check overflowing the box's top-right */
.pf-checks .elementor-icon-list-icon{width:30px;height:30px}
.pf-checks .elementor-icon-list-icon i,.pf-checks .elementor-icon-list-icon svg{position:absolute;left:5px;top:-11px;width:34px!important;height:34px!important;font-size:34px!important;fill:#fff;color:#fff;filter:drop-shadow(0 2px 3px rgba(0,0,0,.30))}
.pf-checks .elementor-icon-list-item{gap:16px}
.pf-checks .elementor-icon-list-items{gap:18px 60px}
.pf-checks .elementor-icon-list-text{font-size:19px}

/* 17) take-action list: every option carries the same white card, Donate included */
a.pf-choice,.pf-choice.pf-tile-donate{background:#fff;color:var(--pf-ink);box-shadow:inset 0 0 0 1.5px var(--pf-line)}
.pf-choice.pf-tile-donate .pf-tile-title{color:var(--pf-navy)}
.pf-choice.pf-tile-donate:hover,a.pf-choice:hover{background:var(--pf-ice)}
.pf-choice.pf-tile-donate .pf-icon{background:var(--pf-red);color:#fff}

/* ============================== 2.4.0 — mobile palm-card hero ==============================
   Phones: headshot first, full-bleed, melting into navy via a gradient (palm-card
   treatment); slogan + sign-up form sit on the navy, flowing straight into the navy
   checks band below. */
@media (max-width:767px){
  .pf-hero{background-image:none!important;background-color:var(--pf-navy)!important;padding-top:0!important}
  .pf-hero > .e-con-inner > .e-con:first-child{order:2}
  .pf-hero > .e-con-inner > .e-con:last-child{order:1}
  .e-con .pf-hero-photo.elementor-widget,.e-con>.e-con-inner>.pf-hero-photo.elementor-widget{width:100vw;max-width:100vw;margin:0 calc(50% - 50vw)}
  .pf-hero-photo{position:relative;background:linear-gradient(180deg,#f4f1ea 0%,#e2e5ec 42%,var(--pf-navy) 100%)}
  .pf-hero-photo::after{content:'';position:absolute;left:0;right:0;bottom:0;height:34%;background:linear-gradient(180deg,rgba(27,38,85,0) 0%,var(--pf-navy) 90%);pointer-events:none}
  .pf-hero-photo img{max-width:400px;filter:none}
  .pf-hero-halo::before{display:none}
  .pf-hero .pf-slogan .elementor-heading-title{color:#fff}
  .pf-hero-form .gform_wrapper.gravity-theme .gfield_label,.pf-hero-form .gform_wrapper.gravity-theme .gform-field-label{color:#fff}
  .pf-hero-form .gform_wrapper.gravity-theme .gfield_required{color:var(--pf-sky)}
  .pf-hero-form .gform_wrapper.gravity-theme .gfield_description{color:rgba(255,255,255,.65)}
  .pf-hero-form .gform_wrapper.gravity-theme input:focus{border-color:var(--pf-sky)}
}

/* ============================== 2.4.1 — mobile fixes ==============================
   23) hero photo: robust full-bleed with no vw units (can't exceed the viewport);
       html clip as a hard stop against any horizontal pan on iOS.
   12) endorse checks: left-aligned rows in a centered block, palm-card style. */
@media (max-width:767px){
  html{overflow-x:clip}
  .pf-hero-photo{width:calc(100% + 48px)!important;max-width:none!important;margin-left:-24px!important;margin-right:-24px!important}
  /* checks: checkbox left of text, rows left-aligned, whole group centered in the band */
  .pf-checks .elementor-icon-list-items{grid-template-columns:1fr!important;width:max-content;max-width:100%;margin:0 auto;gap:18px!important;justify-items:start}
  .pf-checks .elementor-icon-list-item{justify-content:flex-start!important;gap:14px}
  .pf-checks .elementor-icon-list-icon{width:26px;height:26px}
  .pf-checks .elementor-icon-list-icon i,.pf-checks .elementor-icon-list-icon svg{width:17px;height:17px;font-size:17px}
  .pf-checks .elementor-icon-list-text{font-size:17px}
}

/* ============================== 2.4.2 ==============================
   25) mobile hero: kill the 36px navy top padding so the photo's light top
       meets the header (no navy strip above her).
   12) palm-card check sizing per box size. */
@media (max-width:767px){
  .pf-hero > .e-con-inner{padding-top:0!important}
  .pf-checks .elementor-icon-list-icon i,.pf-checks .elementor-icon-list-icon svg{left:4px;top:-10px;width:31px!important;height:31px!important;font-size:31px!important}
}

/* 2.4.3: native anchor jumps (#donate etc.) clear the frame's tucked chrome too */
body.pf-frame.pf-frame-d,body.pf-frame.pf-frame-t,body.pf-frame.pf-frame-m{scroll-padding-top:calc(var(--pf-header-h) + var(--pf-promo-h) + var(--pf-admin-bar) + 12px + var(--pf-qb-h,0px) + var(--pf-frame-w,10px))}

/* ============================== 2.5.0 ==============================
   28) photo caption right-aligned; 29b) caps buttons everywhere CTAs live;
   31) Meet Carrie alternating rows; misc. */
.pf-cam-caption .widget-image-caption,figcaption.pf-cam-caption{justify-content:flex-end;padding-right:24px}
@media (max-width:767px){.pf-cam-caption .widget-image-caption,figcaption.pf-cam-caption{padding-right:16px}}

.pf-amount-other.elementor-widget-button .elementor-button,.pf-ty-amounts a.pf-ty-other{text-transform:uppercase;letter-spacing:.06em;font-size:14px}
.pf-btn.elementor-widget-button .elementor-button-text{letter-spacing:inherit}
.pf-header .pf-btn{font-size:13.5px}
@media (max-width:480px){.pf-header .pf-btn{font-size:12.5px;padding:0 16px}}

/* single about photo (Meet Carrie rows): sky backdrop; .pf-about-photo-flip mirrors it to bottom-left */
.pf-about-photo-flip::before{inset:22px 22px -22px -22px}
@media (prefers-reduced-motion:no-preference){
  html.pf-js .pf-about-photo-flip::before{transform:translate(22px,-22px)}
  html.pf-js .pf-about-photo-flip.in-view::before{transform:none}
}
/* alternating row: photo first when stacked */
@media (max-width:1024px){
  .pf-alt-row > .e-con-inner > .e-con:last-child{order:-1}
  .pf-alt-row .pf-about-photo{max-width:520px;margin:0 auto}
}

/* ============================== 2.6.0 ==============================
   30) sticky desktop header 92px so the contained logo lands at 68px (was 60);
       phones keep the 60px logo at every width (the <=480 step-down made it
       "grow" on scroll). 32) blue CTAs hover to brand navy instead of a darker
       blue that read as off-palette. 33) Take Action subtitle: the hero's blue
       highlight chip replaces the marker underline. */
:root{--pf-blue-hover:var(--pf-navy)}
.gform_wrapper.gravity-theme .gform_footer .gform_button:hover,.gform_wrapper.gravity-theme .gform_footer .gform-button:hover{background:var(--pf-blue-hover)}
.pf-btn-blue:hover,.pf-btn-blue.elementor-widget-button .elementor-button:hover,.pf-qb-vote:hover,.pf-ty-amounts a:hover,.pf-amounts-blue .pf-amount.elementor-widget-button .elementor-button:hover{background:var(--pf-blue-hover);border-color:var(--pf-blue-hover);color:#fff}
.pf-prose a:hover,.pf-bio a:hover{color:var(--pf-navy)}
@media (max-width:767px){
  /* the phone hero is navy - a navy hover would vanish into it */
  .pf-hero-form .gform_wrapper.gravity-theme .gform_footer .gform_button:hover{background:var(--pf-blue)}
}

.pf-sec-sub.pf-lead,.pf-sec-sub.pf-lead.elementor-widget-text-editor{font-size:19px;line-height:1.7;color:var(--pf-navy)}
.pf-lead .hl{display:inline;background:var(--pf-blue);color:#fff;font-weight:700;padding:.1em .34em .12em;-webkit-box-decoration-break:clone;box-decoration-break:clone}

/* 2.6.1 — 26) stacked chooser (choice list static, <=1040): room under the list so
   the panel title clears the 56px quick bar with Pinto-like breathing room once the
   jump tucks the list under the header (list→title = 28px gap + this) */
@media (max-width:1040px){
  .pf-layout-list .pf-choice-list{margin-bottom:68px}
}
