.elementor-kit-6{--e-global-color-primary:#0F3D6E;--e-global-color-secondary:#1FB3B3;--e-global-color-text:#46535f;--e-global-color-accent:#F5D871;--e-global-color-navydeep:#0A2D52;--e-global-color-tealdark:#108383;--e-global-color-buttersoft:#FBEEC0;--e-global-color-paleteal:#E8F4F3;--e-global-color-clay:#B04D34;--e-global-color-ink:#1c2733;--e-global-color-white:#FFFFFF;--e-global-typography-primary-font-family:"Montserrat";--e-global-typography-primary-font-weight:800;--e-global-typography-secondary-font-family:"Montserrat";--e-global-typography-secondary-font-weight:700;--e-global-typography-text-font-family:"Open Sans";--e-global-typography-text-font-weight:400;--e-global-typography-accent-font-family:"Montserrat";--e-global-typography-accent-font-weight:700;color:var( --e-global-color-primary );font-family:"Open Sans", Sans-serif;}.elementor-kit-6 button,.elementor-kit-6 input[type="button"],.elementor-kit-6 input[type="submit"],.elementor-kit-6 .elementor-button{background-color:var( --e-global-color-primary );box-shadow:0px 0px 0px 0px rgba(0,0,0,0.5);border-radius:0px 0px 0px 0px;padding:17px 30px 17px 30px;}.elementor-kit-6 e-page-transition{background-color:#FFBC7D;}.elementor-kit-6 a{color:var( --e-global-color-primary );font-family:var( --e-global-typography-primary-font-family ), Sans-serif;font-weight:var( --e-global-typography-primary-font-weight );}.elementor-kit-6 button:hover,.elementor-kit-6 button:focus,.elementor-kit-6 input[type="button"]:hover,.elementor-kit-6 input[type="button"]:focus,.elementor-kit-6 input[type="submit"]:hover,.elementor-kit-6 input[type="submit"]:focus,.elementor-kit-6 .elementor-button:hover,.elementor-kit-6 .elementor-button:focus{color:var( --e-global-color-primary );box-shadow:0px 0px 0px 0px rgba(33, 33, 33, 0.6);border-radius:0px 0px 0px 0px;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1240px;}.e-con{--container-max-width:1240px;}.elementor-widget:not(:last-child){--kit-widget-spacing:20px;}.elementor-element{--widgets-spacing:20px 20px;--widgets-spacing-row:20px;--widgets-spacing-column:20px;}{}h1.entry-title{display:var(--page-title-display);}.site-header .site-branding{flex-direction:column;align-items:stretch;}.site-header{padding-inline-end:0px;padding-inline-start:0px;}.site-footer .site-branding{flex-direction:column;align-items:stretch;}@media(max-width:980px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:1024px;}.e-con{--container-max-width:1024px;}}@media(max-width:767px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:767px;}.e-con{--container-max-width:767px;}}
/* Start custom CSS */.hidden{display:none !important;}

/* ===== EYEBROW — small uppercase label with a leading dash (Heading widget). Colour modifiers: --navy --butter --white; dash: --dash-butter ===== */
.eyebrow{font-family:'Montserrat',sans-serif;font-weight:700;font-size:13px;letter-spacing:.16em;text-transform:uppercase;display:inline-flex;align-items:center;gap:12px;color:#108383;}
.eyebrow .elementor-heading-title{color:inherit;font:inherit;letter-spacing:inherit;text-transform:inherit;display:inline-flex;align-items:center;gap:12px;}
.eyebrow .elementor-heading-title::before{content:'';width:30px;height:3px;background:currentColor;display:inline-block;}
.eyebrow--navy,.eyebrow--navy .elementor-heading-title{color:#0F3D6E;}
.eyebrow--butter,.eyebrow--butter .elementor-heading-title{color:#F5D871;}
.eyebrow--white,.eyebrow--white .elementor-heading-title{color:#FFFFFF;}
.eyebrow--dash-butter .elementor-heading-title::before{background:#F5D871;}

/* ===== HOVER BAR — bar grows under the button on hover. `hover-bar` + one `bar-*` on a Button/Form widget, or a container around one ===== */
.hover-bar .elementor-button{position:relative;overflow:hidden;}
.hover-bar .elementor-button::after{content:"";position:absolute;left:0;bottom:0;height:6px;width:100%;background:var(--bar-color,var(--e-global-color-secondary,#1FB3B3));transform:scaleX(0);transform-origin:left;transition:transform .3s ease;}
.hover-bar .elementor-button:hover::after{transform:scaleX(1);}
.bar-teal{--bar-color:var(--e-global-color-secondary,#1FB3B3);}
.bar-butter{--bar-color:var(--e-global-color-accent,#F5D871);}
.bar-navy{--bar-color:var(--e-global-color-primary,#0F3D6E);}

/* ===== PILLAR cards — card container: pillar-{navy|teal|tealdark|yellow} = left-bar colour (+ pillar-raised); widgets: pillar-{name|head|body|link} (+ pillar-link-tight / -plain) ===== */
.e-con.pillar-navy,.e-con.pillar-teal,.e-con.pillar-tealdark,.e-con.pillar-yellow{position:relative;overflow:hidden;transition:transform .3s ease,box-shadow .3s ease;}
.e-con.pillar-navy::before,.e-con.pillar-teal::before,.e-con.pillar-tealdark::before,.e-con.pillar-yellow::before{content:"";position:absolute;top:0;left:0;bottom:0;width:8px;z-index:1;transition:width .3s ease;}
.e-con.pillar-navy::before{background:var(--e-global-color-primary,#0F3D6E);}
.e-con.pillar-teal::before{background:var(--e-global-color-secondary,#1FB3B3);}
.e-con.pillar-tealdark::before{background:#108383;}
.e-con.pillar-yellow::before{background:var(--e-global-color-accent,#F5D871);}
.e-con.pillar-navy:hover,.e-con.pillar-teal:hover,.e-con.pillar-tealdark:hover,.e-con.pillar-yellow:hover{transform:translateY(-6px);box-shadow:0 25px 50px -15px rgba(15,61,110,.18);}
.e-con.pillar-navy:hover::before,.e-con.pillar-teal:hover::before,.e-con.pillar-tealdark:hover::before,.e-con.pillar-yellow:hover::before{width:14px;}
.e-con.pillar-raised{box-shadow:0 16px 36px -22px rgba(10,45,82,.32);}
.e-con.pillar-raised:hover{box-shadow:0 25px 50px -15px rgba(15,61,110,.20);}
.pillar-name,.pillar-head,.pillar-link{position:relative;z-index:1;}
.pillar-body{position:relative;z-index:1;flex:1 1 auto;}
.elementor-widget.pillar-link{line-height:1;}   /* keeps the 16px line box — card heights depend on it */
.elementor-widget.pillar-link .elementor-heading-title{font-family:'Montserrat',sans-serif;font-weight:700;font-size:14px;letter-spacing:.08em;text-transform:uppercase;color:var(--e-global-color-primary,#0F3D6E);display:inline-flex;align-items:center;gap:8px;padding-top:20px;margin-top:22px;border-top:1px solid #E2E7EB;transition:color .2s ease;}
.elementor-widget.pillar-link .elementor-heading-title::after{content:"→";transition:transform .25s ease;}
.pillar-navy:hover .pillar-link .elementor-heading-title,.pillar-teal:hover .pillar-link .elementor-heading-title,.pillar-tealdark:hover .pillar-link .elementor-heading-title,.pillar-yellow:hover .pillar-link .elementor-heading-title{color:#108383;}
.pillar-navy:hover .pillar-link .elementor-heading-title::after,.pillar-teal:hover .pillar-link .elementor-heading-title::after,.pillar-tealdark:hover .pillar-link .elementor-heading-title::after,.pillar-yellow:hover .pillar-link .elementor-heading-title::after{transform:translateX(6px);}
.elementor-widget.pillar-link.pillar-link-tight .elementor-heading-title{margin-top:0;border-top-color:#C9C9C8;}
.elementor-widget.pillar-link.pillar-link-plain .elementor-heading-title{padding-top:0;margin-top:0;border-top:0;}
/* pillar-static — informational card: keeps the colour bar + resting shadow, no hover lift / shadow grow / bar widen */
.e-con.pillar-static:hover{transform:none;box-shadow:none;}
.e-con.pillar-static.pillar-raised:hover{box-shadow:0 16px 36px -22px rgba(10,45,82,.32);}
.e-con.pillar-static:hover::before{width:8px;}
/* …and its pillar-link reacts only to the LINK being hovered (colour only; no arrow slide), not to the card being hovered */
.pillar-static:hover .pillar-link .elementor-heading-title{color:var(--e-global-color-primary,#0F3D6E);}
.pillar-static:hover .pillar-link .elementor-heading-title::after{transform:none;}
.pillar-static .pillar-link .elementor-heading-title:has(a:hover){color:#108383;}

/* ===== EDGE BLEEDS — a colour band continues from the panel to the viewport edge. Give the section native Overflow: Hidden ===== */
.e-con.bleed-right-teal{position:relative;}
.e-con.bleed-right-teal::after{content:"";position:absolute;left:100%;right:auto;top:0;bottom:0;width:60vw;background:#108383;z-index:-1;}
/* Statement box that holds the About page's Vision / Mission copy. The width is a kit concern, not a
   page one: both boxes must be the SAME width and centred in the VIEWPORT (not in the 1240 container),
   because that is what makes the two text columns line up and gives each box an identical run of colour
   from its own edge in to the text. Pair with bleed-left-teal or bleed-right-navydeep. */
.e-con.vm-statement{width:min(860px,calc(100% - 56px));margin-left:auto;margin-right:auto;}

.e-con.bleed-left-teal{position:relative;}
.e-con.bleed-left-teal::before{content:"";position:absolute;right:100%;left:auto;top:0;bottom:0;width:60vw;background:#108383;}
/* navy counterpart of bleed-right-teal, for the About Mission box */
.e-con.bleed-right-navydeep{position:relative;}
.e-con.bleed-right-navydeep::after{content:"";position:absolute;left:100%;right:auto;top:0;bottom:0;width:60vw;background:var(--e-global-color-navydeep);}

/* panel itself extends to the left viewport edge (colour = the container's own background); stacks at ≤980px */
.e-con.bleed-left-panel{position:absolute;left:0;top:0;width:calc((100vw - 1240px)/2 + 56px + 600px);padding-left:max(56px,calc((100vw - 1240px)/2 + 56px));z-index:1;}
@media (max-width:980px){.e-con.bleed-left-panel{position:static;width:auto;padding:40px 24px;}}

/* ===== ACCENT SQUARES + BACKDROPS ===== */
.e-con.square-butter{position:relative;}
.e-con.square-butter::before{content:"";position:absolute;left:-18px;top:62px;width:44px;height:44px;background:#F5D871;z-index:3;}
.e-con.backdrop-square-butter{position:relative;}
.e-con.backdrop-square-butter::before{content:"";position:absolute;left:-10px;top:calc(100% - 70px);width:80px;height:80px;background:#F5D871;z-index:-1;}
.e-con.backdrop-teal{position:relative;}
.e-con.backdrop-teal::before{content:"";position:absolute;left:0;bottom:0;width:74%;height:78%;background:var(--e-global-color-secondary,#1FB3B3);z-index:0;}
.e-con.backdrop-teal > .elementor-element,.e-con.backdrop-teal > .e-con-inner > .elementor-element{position:relative;z-index:1;}

/* ===== HOVER LIFT — card rises on hover (-shadow adds a soft shadow) ===== */
.e-con.hover-lift{transition:transform .25s ease;}
.e-con.hover-lift:hover{transform:translateY(-6px);}
.e-con.hover-lift-shadow{transition:transform .3s ease,box-shadow .3s ease;}
.e-con.hover-lift-shadow:hover{transform:translateY(-6px);box-shadow:0 22px 44px -22px rgba(15,61,110,.22);}

/* ===== SHAPES ===== */
.e-con.cover-3x4{aspect-ratio:3/4;min-height:0;box-shadow:0 18px 40px -20px rgba(10,45,82,.55);}
.e-con.square-photo{aspect-ratio:1/1;overflow:hidden;}
.list-diamond .elementor-icon-list-icon i,.list-diamond .elementor-icon-list-icon svg{transform:rotate(45deg);transform-origin:center;}
.pill-paleteal .elementor-heading-title{display:inline-block;background:#E8F4F3;padding:5px 10px;}

/* ===== QUOTE MARK — large faint “ behind a card's content ===== */
.e-con.quote-mark{position:relative;overflow:hidden;}
.e-con.quote-mark::before{content:'“';position:absolute;left:34px;top:6px;font-family:Georgia,serif;font-size:150px;color:rgba(255,255,255,.09);line-height:1;z-index:0;}
.quote-mark .elementor-heading-title{position:relative;z-index:1;}

/* ===== ARROW CORNER — ⇒ at a heading's top-right corner ===== */
.arrow-corner::after{content:"⇒";position:absolute;top:-14px;right:-18px;font-size:22px;}

/* ===== TEXT EFFECTS (spans inside headings/text) ===== */
.highlight-butter{background-image:linear-gradient(180deg,transparent 56%,#F5D871 56% 94%,transparent 94%);background-repeat:no-repeat;background-position:left center;background-size:0% 100%;padding:0 .06em;-webkit-box-decoration-break:clone;box-decoration-break:clone;animation:highlight-butter-sweep linear both;animation-timeline:view();animation-range:entry 12% cover 42%;}
@keyframes highlight-butter-sweep{to{background-size:100% 100%;}}
@supports not (animation-timeline:view()){.highlight-butter{background-size:100% 100%;}}
.highlight-teal{background-image:linear-gradient(180deg,transparent 56%,#1FB3B3 56% 94%,transparent 94%);background-repeat:no-repeat;background-position:left center;background-size:0% 100%;padding:0 .06em;-webkit-box-decoration-break:clone;box-decoration-break:clone;animation:highlight-butter-sweep linear both;animation-timeline:view();animation-range:entry 12% cover 42%;}
@supports not (animation-timeline:view()){.highlight-teal{background-size:100% 100%;}}
.wipe-butter{font-style:normal;font-weight:800;background-image:linear-gradient(90deg,#F5D871 0 50%,#FFFFFF 50% 100%);background-size:200% 100%;background-position:100% 0;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent;animation:wipe-butter .75s cubic-bezier(.6,0,.2,1) .9s both;}
@keyframes wipe-butter{to{background-position:0 0;}}
.text-navy{color:#0F3D6E;}
.single-line .elementor-heading-title{white-space:nowrap;}

/* ===== FORM — fields in one row, underline inputs, navy button (stacks ≤782px) ===== */
.form-inline-underline .elementor-form-fields-wrapper{display:grid!important;grid-template-columns:1fr 1fr auto;gap:30px;align-items:end}
.form-inline-underline .elementor-form-fields-wrapper .elementor-field-group{width:auto!important;max-width:none!important;min-width:0!important;margin:0!important;padding:0!important}
.form-inline-underline .elementor-field-group.elementor-field-type-submit{align-self:end}
.form-inline-underline .elementor-field-label{font-family:'Montserrat',sans-serif!important;font-weight:700!important;font-size:11.5px!important;letter-spacing:0.13em!important;text-transform:uppercase!important;color:#0F3D6E!important;margin-bottom:9px!important;padding:0!important}
.form-inline-underline input.elementor-field{background:transparent!important;border:none!important;border-bottom:3px solid #0F3D6E!important;border-radius:0!important;padding:8px 2px!important;font-family:'Open Sans',sans-serif!important;font-size:18px!important;color:#0F3D6E!important;height:auto!important;box-shadow:none!important;width:100%!important}
.form-inline-underline input.elementor-field::placeholder{color:#9c8f5e!important}
.form-inline-underline .elementor-button{position:relative;overflow:hidden;background:#0F3D6E!important;color:#fff!important;font-family:'Montserrat',sans-serif!important;font-weight:700!important;font-size:14px!important;letter-spacing:0.06em!important;text-transform:uppercase!important;border:none!important;border-radius:0!important;padding:17px 30px!important;min-height:0;width:auto}
.form-inline-underline .elementor-button,.form-inline-underline .elementor-button:hover,.form-inline-underline .elementor-button:focus{box-shadow:none!important}
@media(max-width:782px){.form-inline-underline .elementor-form-fields-wrapper{grid-template-columns:1fr}}

/* ===== MENU — menu-expanded (Nav Menu: sub-menus always open as a nested list; no hover/tap to reveal) =====
   Always applies to the hamburger dropdown; applies to the main menu only when the widget never collapses
   (Layout → Breakpoint: None, e.g. a footer menu) so a header keeps its desktop hover dropdowns.
   Updates with the WP menu automatically. Style sub-items with the widget's own Dropdown controls. */
.menu-expanded nav.elementor-nav-menu--dropdown .sub-menu,.menu-expanded.elementor-nav-menu--dropdown-none .elementor-nav-menu--main .sub-menu{display:block!important;position:static!important;width:auto!important;min-width:0!important;margin:0!important;box-shadow:none!important;transform:none!important;opacity:1!important;visibility:visible!important}
.menu-expanded nav.elementor-nav-menu--dropdown .sub-arrow,.menu-expanded.elementor-nav-menu--dropdown-none .elementor-nav-menu--main .sub-arrow{display:none!important}
.menu-expanded nav.elementor-nav-menu--dropdown .sub-menu{background-color:transparent!important}
.menu-expanded nav.elementor-nav-menu--dropdown .elementor-sub-item,.menu-expanded.elementor-nav-menu--dropdown-none .elementor-nav-menu--main .elementor-sub-item{border-left-width:0!important;border-inline-start-width:0!important}
.menu-expanded.elementor-nav-menu--dropdown-none .elementor-nav-menu--layout-horizontal .elementor-nav-menu{align-items:flex-start}
.menu-expanded.elementor-nav-menu--dropdown-none .elementor-nav-menu--layout-horizontal .menu-item-has-children{flex-direction:column}
@media(max-width:767px){.menu-expanded.elementor-nav-menu--dropdown-none.elementor-nav-menu__align-center .elementor-nav-menu--layout-horizontal .menu-item-has-children{align-items:center}}

/* ===== MENU — menu-cols-2 (Nav Menu with Breakpoint: None): ≤1199px the top-level items flow into up to 2 balanced, left-aligned
   columns; a parent keeps its sub-items with it; re-balances automatically as the WP menu changes. Columns are min 116px
   (≈ the longest label, "Civic Engagement" 124px — it may run 8px into the gap), so below ~360px they stack into one column in the same order.
   1199, not the 1024 tablet breakpoint: between them the one-row menu orphaned its last item. Pair with menu-expanded. ===== */
@media(max-width:1199px){.menu-cols-2.elementor-nav-menu--dropdown-none .elementor-nav-menu--main>.elementor-nav-menu{display:block!important;width:100%;columns:116px 2;column-gap:48px}.menu-cols-2.elementor-nav-menu--dropdown-none .elementor-nav-menu--main>.elementor-nav-menu>li{break-inside:avoid;flex-direction:column;align-items:flex-start!important}}
@media(max-width:767px){.menu-cols-2.elementor-nav-menu--dropdown-none .elementor-nav-menu--main>.elementor-nav-menu{column-gap:28px}}

/* ===== TOPIC COLOURS — one source for every report-topic colour (card covers, Our Reports filter pills, report-page topic pill).
   Light topics (expanded-learning, college-career) take navy text wherever they're used. ===== */
:root{--topic-public-opinion-research:linear-gradient(155deg,#0A2A4A,#05131f);--topic-district-governance-finance:linear-gradient(155deg,#2A6BB4,#123F70);--topic-student-achievement:linear-gradient(155deg,#149595,#0A5555);--topic-expanded-learning-student-supports:linear-gradient(155deg,#D3E0DE,#A6BEBB);--topic-college-career-readiness:linear-gradient(155deg,#F7DE84,#E6B92F);}

/* ===== REPORT CARDS — card template #516 (.rcard) in ANY report grid: the Reports page post-widget (#reports-grid) or a
   Loop Grid with class `report-cards`. Moved here from the Reports page CSS (was #reports-grid only) so cards look identical
   everywhere. :is() keeps the original id-level specificity (needed to beat the template's native cover gradient). ===== */
:is(#reports-grid,.report-cards) .rcard-cov .elementor-shortcode{font-family:Montserrat,sans-serif;font-weight:700;font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:#F5D871;}
:is(#reports-grid,.report-cards) .rcard:has(.topic-public-opinion-research) .rcard-cov{background:var(--topic-public-opinion-research);}
:is(#reports-grid,.report-cards) .rcard:has(.topic-district-governance-finance) .rcard-cov{background:var(--topic-district-governance-finance);}
:is(#reports-grid,.report-cards) .rcard:has(.topic-student-achievement) .rcard-cov{background:var(--topic-student-achievement);}
:is(#reports-grid,.report-cards) .rcard:has(.topic-expanded-learning-student-supports) .rcard-cov{background:var(--topic-expanded-learning-student-supports);}
:is(#reports-grid,.report-cards) .rcard:has(.topic-college-career-readiness) .rcard-cov{background:var(--topic-college-career-readiness);}
:is(#reports-grid,.report-cards) .rcard:has(.topic-expanded-learning-student-supports) .rcard-cov .elementor-heading-title,:is(#reports-grid,.report-cards) .rcard:has(.topic-college-career-readiness) .rcard-cov .elementor-heading-title{color:#0F3D6E!important;}
:is(#reports-grid,.report-cards) .rcard:has(.topic-expanded-learning-student-supports) .rcard-cov .elementor-shortcode,:is(#reports-grid,.report-cards) .rcard:has(.topic-college-career-readiness) .rcard-cov .elementor-shortcode{color:#0A2D52!important;}
:is(#reports-grid,.report-cards) .rcard{gap:10px;}
/* Report data tables (.rtable, report body module) scroll inside their own box on narrow screens instead of widening the page */
.rtable{overflow-x:auto;-webkit-overflow-scrolling:touch;}

/* ===== FILTER BAR — class `filter-bar` on the container holding a BPFWE Search Bar + Filter widget (Our Reports):
   one row (search 60% with a "Keyword Search" label, filter fills the rest), 52px controls, underlined Clear link.
   ≤880px tighter gaps; ≤767px stacks. Replaces the old #rp_filterbar page CSS (2026-09-25 cleanup).
   Selectors use :is(.filter-bar,#_) — matches the class but with id-level specificity, so it outranks the BPFWE plugin's
   and Elementor's own form styles exactly as the old #id page CSS did (same trick for topic-pills and form-roomy). ===== */
:is(.filter-bar,#_){display:flex;flex-wrap:nowrap;align-items:flex-end;justify-content:flex-start;gap:0 22px;padding-bottom:0;}
:is(.filter-bar,#_) .elementor-widget{margin-bottom:0!important;}
:is(.filter-bar,#_) .elementor-widget .elementor-widget-container{padding-bottom:0!important;margin-bottom:0!important;}
:is(.filter-bar,#_) .elementor-widget-search-bar-widget{flex:0 0 60%;max-width:60%;width:60%!important;}
:is(.filter-bar,#_) .elementor-widget-filter-widget{flex:1 1 0!important;min-width:0;width:auto!important;}
:is(.filter-bar,#_) .elementor-widget-search-bar-widget .elementor-widget-container{position:relative;padding-top:30px;width:100%;}
:is(.filter-bar,#_) .elementor-widget-search-bar-widget .elementor-widget-container::before{content:"Keyword Search";position:absolute;top:0;left:0;font-family:Montserrat,sans-serif;font-weight:800;font-size:14px;color:var(--e-global-color-primary);}
:is(.filter-bar,#_) form.search-post,:is(.filter-bar,#_) form.search-post .search-container{width:100%;}
:is(.filter-bar,#_) form.search-post .search-container{display:flex;align-items:stretch;}
:is(.filter-bar,#_) form.search-post input[type=text]{flex:1 1 auto;min-width:0;height:52px;border:1.5px solid #E2E7EB;border-right:none;padding:0 16px;font-size:15px;background:#fff;}
:is(.filter-bar,#_) form.search-post button[type=submit]{height:52px;background:var(--e-global-color-primary);color:#fff!important;border:none;font-family:Montserrat,sans-serif;font-weight:700;font-size:13px;letter-spacing:.06em;text-transform:uppercase;padding:0 22px;cursor:pointer;}
:is(.filter-bar,#_) form.search-post button[type=submit]:hover{background:var(--e-global-color-tealdark);}
:is(.filter-bar,#_) .filter-container{width:auto!important;}
:is(.filter-bar,#_) form.form-tax{display:flex!important;flex-wrap:nowrap;align-items:flex-end;justify-content:flex-start;gap:0 14px;width:100%!important;margin:0;grid-template-columns:none!important;}
:is(.filter-bar,#_) .flex-wrapper{display:flex;flex-direction:column;flex:0 0 auto!important;width:auto!important;margin:0;}
:is(.filter-bar,#_) .filter-title{font-family:Montserrat,sans-serif;font-weight:800;font-size:14px;color:var(--e-global-color-primary);margin-bottom:8px;text-align:left;}
:is(.filter-bar,#_) .bpfwe-taxonomy-wrapper{height:52px;margin:0;}
:is(.filter-bar,#_) select{width:100%;min-width:0;height:52px;border:1.5px solid #E2E7EB;padding:0 14px;font-size:15px;color:var(--e-global-color-text);background:#fff;font-family:'Open Sans',sans-serif;}
:is(.filter-bar,#_) button.reset-form{flex:0 0 auto;white-space:nowrap;background:none!important;border:none!important;box-shadow:none!important;color:var(--e-global-color-tealdark)!important;font-family:Montserrat,sans-serif;font-weight:700;font-size:13px;letter-spacing:.04em;text-transform:uppercase;padding:0!important;margin:0 0 16px 4px!important;height:auto!important;width:auto!important;min-width:0!important;cursor:pointer;text-decoration:underline;text-underline-offset:3px;}
:is(.filter-bar,#_) button.reset-form:hover{color:var(--e-global-color-primary)!important;}
@media(max-width:880px){:is(.filter-bar,#_){gap:16px;}}
@media(max-width:767px){:is(.filter-bar,#_){flex-wrap:wrap;gap:16px 0;}:is(.filter-bar,#_) .elementor-widget-search-bar-widget,:is(.filter-bar,#_) .elementor-widget-filter-widget{flex:1 1 100%!important;max-width:100%!important;width:100%!important;}}

/* ===== TOPIC PILLS — class `topic-pills` on a BPFWE Filter widget (taxonomy, single-select) = clickable colour key.
   Pill colours = TOPIC COLOURS (same as the card covers). Selected = outline; hover preview only on hover-capable devices
   (touch :hover sticks after a tap). The deselect-on-second-tap behaviour is gpsn-reports.js, hooked on #rp_topicfilter. ===== */
:is(.topic-pills,#_){margin-top:12px;border-bottom:1px solid #E2E7EB;padding-bottom:26px;}
:is(.topic-pills,#_) .form-tax{display:flex!important;grid-template-columns:none!important;margin:0;}
:is(.topic-pills,#_) .filter-title{display:none;}
:is(.topic-pills,#_) button.reset-form,:is(.topic-pills,#_) .low-group-trigger{display:none!important;}
:is(.topic-pills,#_) .bpfwe-taxonomy-wrapper{margin:0;}
:is(.topic-pills,#_) ul{display:flex;flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none;}
:is(.topic-pills,#_) li{margin:0;padding:0;}
:is(.topic-pills,#_) li label{background:none!important;padding:0!important;margin:0;display:inline-flex;align-items:center;cursor:pointer;}
:is(.topic-pills,#_) li label input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none;margin:0;}
:is(.topic-pills,#_) li .label-text{font-family:Montserrat,sans-serif;font-weight:700;font-size:11px;letter-spacing:.04em;text-transform:uppercase;line-height:1;padding:9px 14px;color:#fff;background:var(--e-global-color-primary);}
:is(.topic-pills,#_) li:has(input[id^="public-opinion-research"]) .label-text{background:var(--topic-public-opinion-research);color:#fff;}
:is(.topic-pills,#_) li:has(input[id^="district-governance-finance"]) .label-text{background:var(--topic-district-governance-finance);color:#fff;}
:is(.topic-pills,#_) li:has(input[id^="student-achievement"]) .label-text{background:var(--topic-student-achievement);color:#fff;}
:is(.topic-pills,#_) li:has(input[id^="expanded-learning-student-supports"]) .label-text{background:var(--topic-expanded-learning-student-supports);color:var(--e-global-color-primary);}
:is(.topic-pills,#_) li:has(input[id^="college-career-readiness"]) .label-text{background:var(--topic-college-career-readiness);color:var(--e-global-color-primary);}
:is(.topic-pills,#_) li:has(input:checked) .label-text{outline:2px solid var(--e-global-color-ink);outline-offset:2px;}
@media (hover:hover){:is(.topic-pills,#_) li label:hover .label-text{outline:2px solid var(--e-global-color-ink);outline-offset:2px;}}

/* ===== FORM — form-roomy (Elementor Form widget): 20px between fields, roomy 14/16 inputs, teal focus border + soft ring,
   16/28 button (pairs with hover-bar). Was #ct_form page CSS on Contact. ===== */
:is(.form-roomy,#_) .elementor-field-group{margin-bottom:20px;}
:is(.form-roomy,#_) input,:is(.form-roomy,#_) textarea{padding:14px 16px;}
:is(.form-roomy,#_) input:focus,:is(.form-roomy,#_) textarea:focus{border-color:var(--e-global-color-tealdark)!important;box-shadow:0 0 0 3px rgba(16,131,131,.13);}
:is(.form-roomy,#_) .elementor-button{position:relative;overflow:hidden;padding:16px 28px;}
/* map-frame (Google Maps widget): full-width block iframe with the light-grey hairline border. Was .ct-map on Contact. */
.map-frame iframe{display:block;width:100%;border:1px solid #E2E7EB;}

/* ===== READ MORE (bios) — pairs with Custom Code snippet "[More] Code" (#341, site-wide JS): put `[more]` in a text widget
   with class `mem-bio`; the text after it is hidden behind a "Read More" toggle. Was About page CSS. ===== */
.mem-bio .mem-rest{opacity:0;}
.mem-more{font-family:'Montserrat',sans-serif;font-weight:700;font-size:13px;color:var(--e-global-color-tealdark);text-decoration:underline;text-underline-offset:2px;cursor:pointer;white-space:nowrap;margin-left:2px;}
.mem-more:hover{color:var(--e-global-color-primary);}

/* ===== COVER FALLBACK — class `cover-fallback` on a container shown (Display Condition: Featured Image = Not Set) in place of a
   report's cover image. Report-cover proportions; background = the report's TOPIC COLOUR (read from the gpsn_term shortcode's
   topic- class inside it); year + topic lines like the report cards; light topics switch to navy text + dark logo.
   Fully automatic — built from the report's own title/year/topic. Used in Home's Latest Report (#773). ===== */
.e-con.cover-fallback{aspect-ratio:1400/1812;background:var(--e-global-color-primary);}
.cover-fallback:has(.topic-public-opinion-research){background:var(--topic-public-opinion-research);}
.cover-fallback:has(.topic-district-governance-finance){background:var(--topic-district-governance-finance);}
.cover-fallback:has(.topic-student-achievement){background:var(--topic-student-achievement);}
.cover-fallback:has(.topic-expanded-learning-student-supports){background:var(--topic-expanded-learning-student-supports);}
.cover-fallback:has(.topic-college-career-readiness){background:var(--topic-college-career-readiness);}
.cover-fallback .elementor-shortcode{font-family:Montserrat,sans-serif;font-weight:700;font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--e-global-color-accent);line-height:1.4;}
.cover-fallback .rc-year{display:block;}
.cover-fallback .rc-cat{display:block;margin-top:5px;font-weight:800;}
.cover-fallback:is(:has(.topic-expanded-learning-student-supports),:has(.topic-college-career-readiness)) .elementor-heading-title{color:var(--e-global-color-primary)!important;}
.cover-fallback:is(:has(.topic-expanded-learning-student-supports),:has(.topic-college-career-readiness)) .elementor-shortcode{color:var(--e-global-color-navydeep);}
.cover-fallback:is(:has(.topic-expanded-learning-student-supports),:has(.topic-college-career-readiness)) img{filter:brightness(0);opacity:.78;}

/* ===== REPORT CARD (cover) — class `report-card` on the card container of loop template "GPSN Report — Card (cover)".
   Everything else is native (layout, padding 22/16/14, cover widths 216/170/112, hover lift + shadow, link, fallback cover
   #843). The kit only adds what depends on the report's topic: the card background (TOPIC COLOURS, read from the
   gpsn_term shortcode's topic- class in the label), the label style, navy text on light topics, and the
   "View report" colour while the whole card is hovered. The older card (#516, `.rcard`) keeps its own REPORT CARDS block. ===== */
/* BPFWE (Our Reports) sets `.post-wrapper a{display:inline-block}`, which beats the card link's native Elementor flex; hand it back to Elementor's own --display. */
.e-con.report-card{display:var(--display);background:var(--e-global-color-primary);}
.e-con.report-card:has(.topic-public-opinion-research){background:var(--topic-public-opinion-research);}
.e-con.report-card:has(.topic-district-governance-finance){background:var(--topic-district-governance-finance);}
.e-con.report-card:has(.topic-student-achievement){background:var(--topic-student-achievement);}
.e-con.report-card:has(.topic-expanded-learning-student-supports){background:var(--topic-expanded-learning-student-supports);}
.e-con.report-card:has(.topic-college-career-readiness){background:var(--topic-college-career-readiness);}
.report-card .rc-cat{display:block;font-family:Montserrat,sans-serif;font-weight:800;font-size:10px;line-height:1.3;letter-spacing:.14em;text-transform:uppercase;color:var(--e-global-color-accent);}
@media(max-width:767px){.report-card .rc-cat{font-size:9px;}}
.report-card .rc-go .elementor-heading-title{transition:color .2s ease;}
.report-card:hover .rc-go .elementor-heading-title{color:var(--e-global-color-accent)!important;}
.report-card:is(:has(.topic-expanded-learning-student-supports),:has(.topic-college-career-readiness)) .rc-cat,.report-card:is(:has(.topic-expanded-learning-student-supports),:has(.topic-college-career-readiness)) .rc-yr .elementor-heading-title{color:var(--e-global-color-navydeep)!important;}
.report-card:is(:has(.topic-expanded-learning-student-supports),:has(.topic-college-career-readiness)) .elementor-widget-heading:not(.rc-yr) .elementor-heading-title{color:var(--e-global-color-primary)!important;}
.report-card:is(:has(.topic-expanded-learning-student-supports),:has(.topic-college-career-readiness)):hover .rc-go .elementor-heading-title{color:var(--e-global-color-tealdark)!important;}

/* ===== ANCHOR TARGETS — `anchor-target` on any section a same-page jump link points at.
   Gives the landing section breathing room instead of butting it against the viewport top.
   Used by the About page jump nav (#mission-vision / #our-board / #our-team). ===== */
:is(.anchor-target,#_){scroll-margin-top:40px;}

/* ===== REPORT CARD (neutral) — class `report-card-v2` on the card container of loop template #862
   "GPSN Report — Card (neutral)". Client asked for one neutral card background for every report, with the
   topic colour kept as a subtle accent rather than a field. The kit adds only what depends on the topic:
   a 6px left accent bar and the category pill, which reuses the Our Reports filter-pill type and padding
   exactly (their words: "consistent with the search filters"). Everything else — layout, padding, cover
   widths, hover lift and shadow, the card link, fallback cover #841 — is native per-breakpoint in #862.
   The full-bleed card `report-card` (#844) and the older `.rcard` (#516) are both kept, unused. ===== */
/* BPFWE (Our Reports) sets `.post-wrapper a{display:inline-block}`, which beats the card link's native Elementor flex; hand it back to Elementor's own --display. */
.e-con.report-card-v2{display:var(--display);position:relative;overflow:hidden;}
/* topic accent bar, left edge (navy when a report has no topic) */
.report-card-v2::before{content:"";position:absolute;left:0;top:0;bottom:0;width:10px;background:var(--e-global-color-primary);z-index:1;}
.report-card-v2:has(.topic-public-opinion-research)::before{background:var(--topic-public-opinion-research);}
.report-card-v2:has(.topic-district-governance-finance)::before{background:var(--topic-district-governance-finance);}
.report-card-v2:has(.topic-student-achievement)::before{background:var(--topic-student-achievement);}
.report-card-v2:has(.topic-expanded-learning-student-supports)::before{background:var(--topic-expanded-learning-student-supports);}
.report-card-v2:has(.topic-college-career-readiness)::before{background:var(--topic-college-career-readiness);}
/* category pill — same family, size, tracking and padding as :is(.topic-pills,#_) li .label-text */
.report-card-v2 .rc-cat{display:inline-block;font-family:Montserrat,sans-serif;font-weight:700;font-size:11px;letter-spacing:.04em;text-transform:uppercase;line-height:1;padding:9px 14px;color:#fff;background:var(--e-global-color-primary);}
.report-card-v2 .rc-cat.topic-public-opinion-research{background:var(--topic-public-opinion-research);color:#fff;}
.report-card-v2 .rc-cat.topic-district-governance-finance{background:var(--topic-district-governance-finance);color:#fff;}
.report-card-v2 .rc-cat.topic-student-achievement{background:var(--topic-student-achievement);color:#fff;}
.report-card-v2 .rc-cat.topic-expanded-learning-student-supports{background:var(--topic-expanded-learning-student-supports);color:var(--e-global-color-primary);}
.report-card-v2 .rc-cat.topic-college-career-readiness{background:var(--topic-college-career-readiness);color:var(--e-global-color-primary);}
/* "View report →" picks up teal while the whole card is hovered */
.report-card-v2 .rc-go .elementor-heading-title{transition:color .2s ease;}
.report-card-v2:hover .rc-go .elementor-heading-title{color:var(--e-global-color-tealdark)!important;}
@media(max-width:767px){.report-card-v2 .rc-cat{font-size:10px;padding:7px 11px;}}

/* ===== CATEGORY INDEX — class `cat-index` plus one `cat-` on each block of the Categories
   section on Our Reports (198). A 4px left rule in that topic's colour, from the same --topic-* variables
   the report cards and the filter pills use, so the three read as one system. Descriptive only — the topic
   pills above stay the control (2026-09-30: click-through deferred; it needs gpsn-reports.js to drive the
   BPFWE radio). ===== */
.cat-index{position:relative;}
.cat-index::before{content:"";position:absolute;left:0;top:0;bottom:0;width:10px;background:var(--e-global-color-primary);}
.cat-index.cat-public-opinion-research::before{background:var(--topic-public-opinion-research);}
.cat-index.cat-district-governance-finance::before{background:var(--topic-district-governance-finance);}
.cat-index.cat-student-achievement::before{background:var(--topic-student-achievement);}
.cat-index.cat-expanded-learning-student-supports::before{background:var(--topic-expanded-learning-student-supports);}
.cat-index.cat-college-career-readiness::before{background:var(--topic-college-career-readiness);}

/* ===== APPLICATION STATE — LA Leads! Apply / Nominate buttons and the closed-applications notice.
   The state comes from WP admin → LA Leads → Application Settings; the mu-plugin
   gpsn-la-leads-apply.php puts apps-open/apps-closed and noms-open/noms-closed on <body>.
   Put `when-apps-open` on anything that should show only while applications are open, and
   `when-apps-closed` on anything that should show only while they are closed (same for noms-).
   Written with :is(...,#_) so it carries id-level specificity and beats Elementor's own display
   rules without !important. ===== */
body.apps-closed :is(.when-apps-open,#_){display:none;}
body.apps-open   :is(.when-apps-closed,#_){display:none;}
body.noms-closed :is(.when-noms-open,#_){display:none;}
body.noms-open   :is(.when-noms-closed,#_){display:none;}/* End custom CSS */