/*
 * First Light Style Controls
 *
 * The baseline site presentation remains in the versioned First Light CSS layers.
 * Saved admin overrides are injected after this handle so they win the cascade
 * without rewriting Beaver Builder data or mutating the historical stylesheets.
 */
:root{
  --fls-brand-navy:#0B1644;
  --fls-brand-blue:#4D67AF;
  --fls-brand-pink:#EF8394;
  --fls-brand-ink:#243150;
  --fls-brand-cream:#FAF7F5;
  --fls-brand-surface:#F6F7FA;
  --fls-brand-white:#FFFFFF;
  --fls-brand-line:rgba(11,22,68,.14);
}

/* Approved Figma button system. Saved Style Controls overrides still load after this. */
body:not(.wp-admin) :is(
  a.fl-button,.fl-button,
  a.pp-button,.pp-button,
  a.uabb-button,.uabb-button,
  .fls-button,
  .fls-stack-action-primary,
  .fls-stack-action-secondary,
  .wp-block-button__link
){
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:46px;
  padding:10px 23px;
  border-radius:999px;
  font-family:var(--fls-support-font,"Open Sans",sans-serif);
  font-size:16px;
  font-weight:600;
  line-height:1.2;
  text-decoration:none;
  box-shadow:none;
}

body:not(.wp-admin) :is(.fls-button,.fls-stack-action-primary,.fl-button-primary){
  border:1px solid var(--fls-brand-pink,#EF8394);
  background:var(--fls-brand-pink,#EF8394);
  color:var(--fls-brand-navy,#0B1644);
}

body:not(.wp-admin) :is(.fls-stack-action-secondary,.fl-button-secondary){
  border:1px solid var(--fls-brand-navy,#0B1644);
  background:transparent;
  color:var(--fls-brand-navy,#0B1644);
}

body:not(.wp-admin) :is(
  .fls-v0561-background-hero,
  .fls-v0558-hero-row,
  .fls-home-give,
  .fls-ref-dark
) :is(.fls-stack-action-secondary,.fl-button-secondary){
  border-color:#fff;
  color:#fff;
}

/* 0.5.120: shared First Light type hierarchy, aligned to the homepage and approved mockups. */
:root{
  --fls-display-font:"Lusitana",serif;
  --fls-support-font:"Open Sans",sans-serif;
}

body:not(.wp-admin) :is(.fl-page-content,.fl-builder-content,main) :is(
  h1,h2,h3,h4,h5,h6,
  .fl-heading-text,
  .pp-heading-content,
  .pp-infobox-title,
  .fls-stack-heading,
  .fls-stack-kicker-heading,
  .fls-stack-subheading
){
  font-family:var(--fls-display-font)!important;
  font-style:normal;
  font-weight:400;
}

/* 0.5.137: semantic kicker-headings are real headings; do not let the generic kicker support-font rule override them. */
body:not(.wp-admin) :is(.fl-page-content,.fl-builder-content,main) :is(
  .fls-stack-kicker:not(.fls-stack-kicker-heading),
  .pp-infobox-title-prefix,
  .fls-meta,
  label,
  legend
){
  font-family:var(--fls-support-font)!important;
  font-style:normal!important;
}

body:not(.wp-admin) :is(.fl-page-content,.fl-builder-content,main) :is(
  p,li,
  .fls-stack-copy,
  .pp-infobox-description
){
  font-family:var(--fls-support-font)!important;
}

body:not(.wp-admin) :is(.fl-page-content,.fl-builder-content,main) :is(
  h1,h2,h3,h4,h5,h6,
  .fl-heading-text,
  .pp-heading-content,
  .pp-infobox-title,
  .fls-stack-heading,
  .fls-stack-subheading
) :is(em,i),
body:not(.wp-admin) .fls-serif-accent{
  font-family:var(--fls-display-font)!important;
  font-style:italic!important;
  font-weight:400!important;
}

/* 0.5.130 accessibility: shared contrast, focus and target-size safeguards. */
body:not(.wp-admin) :is(.fls-stack-copy,.fls-stack-editable,.fls-functional-detail) a:not(.fls-button):not(.fl-button):not(.pp-button):not(.uabb-button){
  text-decoration:underline;
  text-underline-offset:3px;
  text-decoration-thickness:1px;
}

body:not(.wp-admin) #menu-first-light-primary a[href$="/donate/"],
body:not(.wp-admin) #menu-first-light-primary a[href$="/donate/"] .menu-item-text{
  color:var(--fls-brand-navy,#0B1644)!important;
}

body:not(.wp-admin) #menu-first-light-primary a,
body:not(.wp-admin) #menu-first-light-primary .pp-menu-toggle{
  min-height:24px;
}

body:not(.wp-admin) #menu-first-light-primary .pp-menu-toggle{
  min-width:24px;
}

body:not(.wp-admin) :is(.fl-page-footer-wrap,.fl-theme-builder-footer) a:not(.pp-button):not(.fl-button):not(.uabb-button){
  display:inline-flex;
  min-height:24px;
  align-items:center;
  color:rgba(255,255,255,.88)!important;
}

body:not(.wp-admin) .fl-theme-builder-footer a.pp-button:not(.donate-button){
  color:var(--fls-brand-navy,#0B1644)!important;
}

body:not(.wp-admin) .fl-theme-builder-footer a.pp-button:not(.donate-button) :is(.pp-button-1-text,.pp-button-text){
  color:inherit!important;
}

body:not(.wp-admin) .fl-theme-builder-footer a.pp-button.donate-button{
  color:#fff!important;
}

/*
 * 0.5.210: footer buttons are a true sitewide component.
 *
 * The homepage loads the legacy v0577 presentation chain, which made the shared
 * Beaver Themer footer buttons larger and bolder. Interior pages intentionally
 * use a reduced visual bundle, so the same footer fell back to PowerPack's old
 * 14px / 400-weight module settings. Keep the homepage treatment as the source
 * of truth here because Style Controls is deliberately loaded on every page.
 * Scope these rules to the shared footer Dual Button Beaver module itself.
 */
body:not(.wp-admin) .fl-node-p61y4vslzhiq{
  width:auto!important;
  max-width:none!important;
}

body:not(.wp-admin) .fl-node-p61y4vslzhiq a.pp-button{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  width:auto!important;
  min-width:144px!important;
  max-width:100%!important;
  min-height:52px!important;
  height:auto!important;
  padding:14px 26px!important;
  border-radius:999px!important;
  font-family:var(--fls-support-font,"Open Sans",sans-serif)!important;
  font-size:16px!important;
  font-weight:800!important;
  line-height:1.15!important;
  white-space:nowrap!important;
  overflow:visible!important;
  text-align:center!important;
  text-decoration:none!important;
}

body:not(.wp-admin) .fl-node-p61y4vslzhiq a.pp-button :is(.pp-button-1-text,.pp-button-text){
  color:inherit!important;
  font-family:inherit!important;
  font-size:inherit!important;
  font-weight:inherit!important;
  line-height:inherit!important;
  white-space:nowrap!important;
}

body:not(.wp-admin) .fl-node-p61y4vslzhiq .pp-dual-button-content{
  overflow:visible!important;
}

body:not(.wp-admin) main a[href*="google.com"]{
  display:inline-flex;
  min-height:24px;
  align-items:center;
}

/*
 * 0.5.211: pointer/touch clicks should not leave controls looking selected.
 *
 * Keep keyboard focus visible through :focus-visible, but suppress the legacy
 * :focus ring and mobile tap highlight created by mouse/touch interaction.
 * Form fields are intentionally excluded so active inputs remain obvious.
 */
body:not(.wp-admin) :is(
  a,
  button,
  summary,
  [role="button"],
  [tabindex]:not([tabindex="-1"]):not(input):not(textarea):not(select)
){
  -webkit-tap-highlight-color:transparent;
}

body:not(.wp-admin) :is(
  a,
  button,
  summary,
  [role="button"],
  [tabindex]:not([tabindex="-1"]):not(input):not(textarea):not(select)
):focus:not(:focus-visible){
  outline:none!important;
  box-shadow:none!important;
}

/*
 * 0.5.212: reusable sticky-image utility for Beaver Builder.
 *
 * Add "fls-sticky-image" under Advanced > CSS Class on an image/photo module
 * (or another wrapper that owns the image). This utility controls only sticky
 * positioning. It deliberately does not change width, height, crop, border,
 * radius, alignment, or any image-specific presentation.
 */
body:not(.wp-admin) .fls-sticky-image{
  position:sticky!important;
  top:var(--fls-sticky-image-top,112px)!important;
  align-self:flex-start;
}

/* Sticky side imagery should return to normal document flow on tablet/mobile. */
@media(max-width:900px){
  body:not(.wp-admin) .fls-sticky-image{
    position:relative!important;
    top:auto!important;
    align-self:auto;
  }
}

/*
 * 0.5.213: canonical single News & Event presentation.
 *
 * Featured imagery belongs behind the hero under a dark navy overlay, not as a
 * second oversized image below the header. The article canvas remains neutral
 * white. CTA/button elements inside article content keep at least 40px of
 * breathing room below them before the next piece of content.
 */
body:not(.wp-admin) .fls-news-single .fls-news-single-header{
  position:relative;
  isolation:isolate;
  background-color:var(--fls-news-navy,var(--fls-brand-navy,#0B1644))!important;
  background-image:
    linear-gradient(rgba(11,22,68,.84),rgba(11,22,68,.90)),
    var(--fls-news-single-feature-image,none)!important;
  background-repeat:no-repeat!important;
  background-position:center!important;
  background-size:cover!important;
}

body:not(.wp-admin) .fls-news-single .fls-news-single-header::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  pointer-events:none;
  background:transparent;
}

body:not(.wp-admin) .fls-news-single .fls-news-single-header .fls-news-back{
  color:rgba(255,255,255,.88)!important;
}

body:not(.wp-admin) .fls-news-single .fls-news-single-header .fls-news-eyebrow{
  color:var(--fls-news-pink,var(--fls-brand-pink,#EF8394))!important;
}

body:not(.wp-admin) .fls-news-single .fls-news-single-header h1{
  color:#fff!important;
}

body:not(.wp-admin) .fls-news-single .fls-news-single-header :is(.fls-news-single-meta,.fls-news-single-deck){
  color:rgba(255,255,255,.94)!important;
}

body:not(.wp-admin) .fls-news-single > article{
  background:#fff!important;
}

body:not(.wp-admin) .fls-news-single .fls-news-single-body{
  background:#fff!important;
}

body:not(.wp-admin) .fls-news-single .fls-news-single-body :is(
  .wp-block-button,
  .fl-button-wrap,
  .pp-button-wrap,
  [class*="button-wrap"]
){
  margin-bottom:40px!important;
}

body:not(.wp-admin) .fls-news-single .fls-news-single-body a.fls-news-button{
  margin-bottom:40px!important;
}

/*
 * 0.5.214: article-content CTAs use the global .fls-button class.
 * Give the containing content block the spacing so the next heading/section
 * begins at least 40px below the visible button edge.
 */
body:not(.wp-admin) .fls-news-single .fls-news-single-body :is(p,div):has(> a.fls-button){
  margin-bottom:40px!important;
}

body:not(.wp-admin) .fls-news-single .fls-news-single-body > a.fls-button{
  margin-bottom:40px!important;
}

