/* First Light 0.5.84: site-wide visual consistency refinement. */
:root{
  --fls77-navy:#0B1644;
  --fls77-blue:#4D67AF;
  --fls77-pink:#EF8394;
  --fls77-ink:#243150;
  --fls77-surface:#F6F7FA;
  --fls77-white:#FFFFFF;
  --fls77-line:rgba(11,22,68,.13);
  --fls77-card-radius:24px;
  --fls77-card-gap:22px;
  --fls77-rail-width:400px;
}

/* Shared action language. Keep the existing brand colors while making sizing and alignment predictable. */
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,
  .fls-donation__submit,.wp-block-button__link,.gform_button,
  input[type="submit"],button[type="submit"]
){
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  width:auto;
  max-width:100%;
  min-height:52px!important;
  padding:14px 26px!important;
  line-height:1.15!important;
  text-align:center!important;
  text-decoration:none!important;
  vertical-align:middle;
}

/* Top-level photographic heroes keep their drama without overwhelming the page. */
body.fls-v0561-top-level .fls-v0561-background-hero>.fl-row-content-wrap{
  min-height:0!important;
  padding:clamp(48px,5vw,68px) 24px!important;
}
body.fls-v0561-top-level .fls-v0561-background-hero .fls-hero{
  min-height:0!important;
}
body.fls-v0561-top-level .fls-v0561-background-hero .fls-stack-heading{
  max-width:720px!important;
  font-size:clamp(2.9rem,5.2vw,5.5rem)!important;
  line-height:.98!important;
  letter-spacing:-.035em!important;
}

/* Top-level content pages use a tighter version of the same white-card reading rhythm. */
body.fls-v0577-reading-page.fls-v0561-top-level{
  --fls77-card-gap:10px;
}
body.fls-v0577-reading-page.fls-v0561-top-level .fls-v0577-reading-main .fls-v0558-section,
body.fls-v0577-reading-page.fls-v0561-top-level-our_story .fls-v0577-reading-main .fls-v0558-section{
  margin:0 0 var(--fls77-card-gap)!important;
}

/*
 * Our Story is the reference reading experience. All managed content pages that
 * have supporting photography are progressively normalized into this same
 * left-content/right-image system by v0577-site-consistency.js.
 */
body.fls-v0577-reading-page .fls-v0558-body-row>.fl-row-content-wrap{
  padding:clamp(54px,6vw,82px) 24px!important;
}
body.fls-v0577-reading-page .fls-v0558-body-row>.fl-row-content-wrap>.fl-row-content{
  width:100%!important;
  max-width:1240px!important;
}
.fls-v0577-reading-layout{
  width:100%;
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(320px,var(--fls77-rail-width));
  grid-template-areas:"main rail";
  gap:clamp(34px,5vw,68px);
  align-items:start;
}
.fls-v0577-reading-main{
  grid-area:main;
  min-width:0;
}
.fls-v0577-reading-rail{
  grid-area:rail;
  position:sticky;
  top:calc(var(--fls-sticky-header-height,88px) + 28px);
  align-self:start;
  min-width:0;
  display:flex;
  justify-content:center;
  padding-top:2px;
}

/* Flatten old template-family columns inside the canonical reading column. */
.fls-v0577-reading-main .fl-col-group{
  display:block!important;
  width:100%!important;
  max-width:none!important;
}
.fls-v0577-reading-main .fl-col{
  display:block!important;
  float:none!important;
  width:100%!important;
  max-width:none!important;
  min-height:0!important;
  margin:0!important;
}
.fls-v0577-reading-main .fl-col>.fl-col-content{
  min-height:0!important;
  padding:0!important;
  margin:0!important;
  background:transparent!important;
  border:0!important;
  box-shadow:none!important;
}
.fls-v0577-reading-main :is(.sticky,[class*="sticky"]){
  position:static!important;
  top:auto!important;
}
.fls-v0577-reading-main .fls-v0577-empty-column{
  display:none!important;
}

/* One white-card treatment for editorial content. The cards themselves never stick. */
body.fls-v0577-reading-page .fls-v0558-section,
body.fls-v0558-page:not(.fls-v0561-top-level):not(.fls-page-donate) .fls-v0558-section{
  position:static!important;
  top:auto!important;
  width:100%!important;
  max-width:none!important;
  margin:0 0 var(--fls77-card-gap)!important;
  padding:0!important;
  background:var(--fls77-white)!important;
  border:1px solid var(--fls77-line)!important;
  border-radius:var(--fls77-card-radius)!important;
  box-shadow:none!important;
  overflow:hidden!important;
  transform:none!important;
}
body.fls-v0577-reading-page .fls-v0558-section>.fl-module-content,
body.fls-v0558-page:not(.fls-v0561-top-level):not(.fls-page-donate) .fls-v0558-section>.fl-module-content{
  margin:0!important;
  padding:0!important;
}
body.fls-v0577-reading-page .fls-v0558-section .fls-info-box,
body.fls-v0558-page:not(.fls-v0561-top-level):not(.fls-page-donate) .fls-v0558-section .fls-info-box{
  position:relative!important;
  width:100%!important;
  margin:0!important;
  padding:clamp(28px,3vw,40px)!important;
  background:transparent!important;
  border:0!important;
  border-radius:0!important;
  box-shadow:none!important;
  transform:none!important;
  overflow:visible!important;
}
body.fls-v0577-reading-page .fls-v0558-section .fls-info-box:before,
body.fls-v0558-page:not(.fls-v0561-top-level):not(.fls-page-donate) .fls-v0558-section .fls-info-box:before{
  content:none!important;
}
body.fls-v0577-reading-page .fls-v0558-section:hover,
body.fls-v0577-reading-page .fls-v0558-section .fls-info-box:hover,
body.fls-v0558-page:not(.fls-v0561-top-level):not(.fls-page-donate) .fls-v0558-section:hover,
body.fls-v0558-page:not(.fls-v0561-top-level):not(.fls-page-donate) .fls-v0558-section .fls-info-box:hover{
  transform:none!important;
  box-shadow:none!important;
}

/* Keep nested content rhythm consistent without turning every paragraph into another floating card. */
body.fls-v0577-reading-page .fls-v0558-section .fls-stack-kicker,
body.fls-v0558-page:not(.fls-v0561-top-level):not(.fls-page-donate) .fls-v0558-section .fls-stack-kicker{
  margin:0 0 10px!important;
}
body.fls-v0577-reading-page .fls-v0558-section .fls-stack-heading,
body.fls-v0558-page:not(.fls-v0561-top-level):not(.fls-page-donate) .fls-v0558-section .fls-stack-heading{
  margin-top:0!important;
  margin-bottom:16px!important;
}
body.fls-v0577-reading-page .fls-v0558-section .fls-stack-item,
body.fls-v0558-page:not(.fls-v0561-top-level):not(.fls-page-donate) .fls-v0558-section .fls-stack-item{
  margin-top:20px!important;
  padding:20px 0 0!important;
  background:transparent!important;
  border:0!important;
  border-top:1px solid var(--fls77-line)!important;
  border-radius:0!important;
  box-shadow:none!important;
}
body.fls-v0577-reading-page .fls-v0558-section .fls-stack-item:before,
body.fls-v0558-page:not(.fls-v0561-top-level):not(.fls-page-donate) .fls-v0558-section .fls-stack-item:before{
  content:none!important;
}

/* The round supporting image owns the sticky behavior, never a content box. */
.fls-v0577-reading-rail .fls-v0558-supporting-photo{
  position:static!important;
  top:auto!important;
  width:100%!important;
  max-width:var(--fls77-rail-width)!important;
  margin:0!important;
  padding:0!important;
  align-self:auto!important;
}
.fls-v0577-reading-rail .fls-v0558-supporting-photo>.fl-module-content{
  margin:0!important;
  padding:0!important;
}
.fls-v0577-reading-rail .fls-v0558-supporting-photo .pp-photo-container{margin:0 auto!important}

/* Remove inherited sticky-card behavior from legacy partner/impact columns. */
body.fls-v0558-page :is(.fls-v0558-grid-column,.fls-v0558-proof-column,.fls-v0558-split-column){
  position:static!important;
  top:auto!important;
}

/* Footer CTA repair. The previous 120px constraint wrapped Get Support into a malformed tall pill. */
.fl-theme-builder-footer :is(.fl-module-pp-button,.pp-button-wrap){
  width:auto!important;
  max-width:none!important;
}
.fl-theme-builder-footer 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:50px!important;
  height:auto!important;
  padding:13px 22px!important;
  line-height:1.1!important;
  white-space:nowrap!important;
  overflow:visible!important;
  text-align:center!important;
}
.fl-theme-builder-footer a.pp-button :is(.pp-button-text,.pp-button-icon){
  white-space:nowrap!important;
}
.fl-theme-builder-footer .fl-col-content{
  overflow:visible!important;
}

/* Shared image and content spacing safeguards. */
body.fls-v0558-page .fls-v0558-body-row img{
  max-width:100%;
}
body.fls-v0558-page .fls-stack-actions{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:12px;
}

@media(max-width:960px){
  .fls-v0577-reading-layout{
    grid-template-columns:1fr;
    grid-template-areas:"rail" "main";
    gap:32px;
  }
  .fls-v0577-reading-rail{
    position:static;
    top:auto;
    justify-content:flex-start;
  }
  .fls-v0577-reading-rail .fls-v0558-supporting-photo{
    max-width:360px!important;
  }
  body.fls-v0561-top-level .fls-v0561-background-hero>.fl-row-content-wrap{
    min-height:0!important;
    padding:52px 24px!important;
  }
}

@media(max-width:680px){
  body.fls-v0577-reading-page .fls-v0558-body-row>.fl-row-content-wrap{
    padding:40px 20px 52px!important;
  }
  .fls-v0577-reading-layout{
    gap:26px;
  }
  .fls-v0577-reading-rail{
    justify-content:center;
  }
  .fls-v0577-reading-rail .fls-v0558-supporting-photo{
    width:min(100%,320px)!important;
    max-width:320px!important;
  }
  body.fls-v0577-reading-page .fls-v0558-section .fls-info-box,
  body.fls-v0558-page:not(.fls-v0561-top-level):not(.fls-page-donate) .fls-v0558-section .fls-info-box{
    padding:24px 22px!important;
  }
  body.fls-v0561-top-level .fls-v0561-background-hero>.fl-row-content-wrap{
    padding:44px 20px!important;
  }
  .fl-theme-builder-footer a.pp-button{
    min-width:136px!important;
  }
}

@media(prefers-reduced-motion:reduce){
  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,
    .fls-donation__submit,.wp-block-button__link,.gform_button,
    input[type="submit"],button[type="submit"]
  ){
    transition:none!important;
    transform:none!important;
  }
}
