/* FCBZ 1.4.0: responsive adjustments for this shortcode only.
   Desktop visual rules in homepage.css are retained. No Avada option is written. */
.fcbz-home { min-width:0; max-width:100%; white-space:normal; word-break:normal; -webkit-text-size-adjust:100%; text-size-adjust:100%; }
.fcbz-home :where(section,article,figure,div,nav,header,footer) { min-width:0; }
.fcbz-home .fcbz-mobile-menu { display:none; }
.fcbz-home .fcbz-mobile-summary { list-style:none; cursor:pointer; -webkit-tap-highlight-color:transparent; }
.fcbz-home .fcbz-mobile-summary::-webkit-details-marker { display:none; }
.fcbz-home .fcbz-mobile-summary::marker { content:""; }
.fcbz-home .fcbz-mobile-summary svg { width:24px; height:24px; flex:none; }
.fcbz-home .fcbz-menu-icon-close { display:none; }
.fcbz-home .fcbz-mobile-menu[open] .fcbz-menu-icon-open { display:none; }
.fcbz-home .fcbz-mobile-menu[open] .fcbz-menu-icon-close { display:block; }

@media (max-width:1024px) {
  /* Only ancestors containing the complete FCBZ homepage lose their mobile
     builder padding. :has works without JS; the class is a fallback. */
  body.fcbz-homepage-page :is(#main,#content,.fusion-row,.fusion-fullwidth,.fusion-builder-row,.fusion-layout-column,.fusion-column-wrapper,.fusion-text):has(.fcbz-home[data-fcbz-full-home]),
  body.fcbz-homepage-page .fcbz-home-host {
    box-sizing:border-box!important; width:100%!important; max-width:100%!important; min-width:0!important;
    margin:0!important; padding:0!important; flex-basis:auto!important;
    height:auto!important; min-height:0!important; white-space:normal!important;
  }
  .fcbz-home .fcbz-header-inner { min-height:88px; gap:12px; flex-wrap:nowrap!important; }
  .fcbz-home .fcbz-brand { flex:1 1 auto; min-width:0; margin-right:auto; }
  .fcbz-home .fcbz-brand img { width:112px; height:78px; max-width:100%; object-fit:contain; }
  .fcbz-home .fcbz-donate { flex:none; min-height:46px; padding:11px 16px; font-size:14px; }
  .fcbz-home .fcbz-donate svg { display:none; }
  .fcbz-home .fcbz-nav,
  .fcbz-home:not([data-fcbz-ready]) .fcbz-nav { display:none!important; }
  .fcbz-home .fcbz-mobile-menu { display:block; position:static; flex:none; margin:0; padding:0; border:0; }
  .fcbz-home .fcbz-mobile-summary { display:flex; align-items:center; justify-content:center; width:46px; height:46px; margin:0; padding:10px; border:1px solid var(--line); border-radius:9px; color:var(--ink); background:#fff; }
  .fcbz-home .fcbz-mobile-menu[open] .fcbz-mobile-summary { background:var(--mint); border-color:var(--green); }
  .fcbz-home .fcbz-mobile-nav { position:absolute; top:100%; left:0; right:0; display:flex; flex-direction:column; gap:0; padding:12px max(20px,env(safe-area-inset-left)) 18px; background:#fff; border-top:1px solid var(--line); border-bottom:1px solid var(--line); box-shadow:0 12px 20px #12314814; max-height:calc(100vh - 100px); max-height:calc(100svh - 100px); overflow-y:auto; overscroll-behavior:contain; z-index:40; }
  .fcbz-home .fcbz-mobile-nav a { display:flex; align-items:center; min-height:48px; padding:10px 6px; font:650 16px/1.45 var(--font); color:var(--ink); text-decoration:none; border-bottom:1px solid #edf1ed; }
  .fcbz-home .fcbz-mobile-nav a:last-child { border-bottom:0; }
  .fcbz-home .fcbz-mobile-nav a:hover { color:var(--green); background:var(--mint); }
  .fcbz-home .fcbz-hero-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .fcbz-home .fcbz-program-grid,
  .fcbz-home .fcbz-news-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:22px; }
  .fcbz-home .fcbz-programs .fcbz-head { flex-direction:column; align-items:flex-start; gap:12px; }
  .fcbz-home .fcbz-card .fcbz-btn { white-space:normal; max-width:100%; overflow-wrap:anywhere; }
}


@media (min-width:768px) and (max-width:1024px) {
  .fcbz-home :is(h1,h2,h3) { font-family:var(--font)!important; font-weight:780!important; font-style:normal!important; text-transform:none!important; letter-spacing:-.035em!important; color:var(--ink)!important; }
  .fcbz-home h1 { font-size:clamp(42px,5.3vw,56px)!important; line-height:1.12!important; letter-spacing:-.055em!important; margin:0!important; }
  .fcbz-home h2 { font-size:clamp(29px,3.2vw,36px)!important; line-height:1.16!important; margin:0!important; }
  .fcbz-home h3 { font-size:22px!important; line-height:1.22!important; }
  .fcbz-home .fcbz-method-grid h3 { font-size:20px!important; }
  .fcbz-home .fcbz-value h3 { font-size:18px!important; }
  .fcbz-home .fcbz-news .fcbz-card h3 { font-size:20px!important; line-height:1.3!important; }
  .fcbz-home .fcbz-final h2 { color:#fff!important; }
}


/* Phone layout: readable type, explicit spacing, no forced equal card heights.
   Rules below never apply to a desktop viewport. The real theme host IDs in
   :is() deliberately raise the specificity against Avada Text Block rules;
   the body alternative also matches a standalone preview. All rules still
   require our .fcbz-home root. */
@media (max-width:767px) {
  :is(body, #main #content) .fcbz-home {
    --muted:#344f5f;
    font:400 18px/1.5 var(--font)!important;
    letter-spacing:normal!important;
    white-space:normal!important;
    overflow-wrap:break-word;
    -webkit-text-size-adjust:100%;
    text-size-adjust:100%;
  }
  :is(body, #main #content) .fcbz-home .fcbz-wrap { width:calc(100% - 36px)!important; max-width:620px!important; margin:0 auto!important; padding:0!important; }
  :is(body, #main #content) .fcbz-home :is(h1,h2,h3,p) {
    padding:0!important; font-family:var(--font)!important; font-style:normal!important;
    text-transform:none!important; white-space:normal!important; word-break:normal!important;
    height:auto!important; min-height:0!important; max-height:none!important;
  }
  :is(body, #main #content) .fcbz-home :is(h1,h2,h3) { font-weight:780!important; color:var(--ink)!important; letter-spacing:-.035em!important; text-wrap:balance; }
  :is(body, #main #content) .fcbz-home h1 { font-size:clamp(44px,12vw,54px)!important; line-height:1.03!important; letter-spacing:-.05em!important; margin:0!important; }
  :is(body, #main #content) .fcbz-home h2 { font-size:clamp(30px,8.1vw,34px)!important; line-height:1.13!important; margin:0!important; }
  :is(body, #main #content) .fcbz-home h3 { font-size:24px!important; line-height:1.2!important; margin:0!important; }
  :is(body, #main #content) .fcbz-home p { font-size:18px!important; line-height:1.5!important; margin:0!important; font-weight:400; letter-spacing:normal!important; }
  :is(body, #main #content) .fcbz-home p+p { margin-top:12px!important; }
  :is(body, #main #content) .fcbz-home p:empty { display:none!important; }
  /* Only formatting breaks in structural containers are suppressed. Textual
     breaks in titles, paragraphs and the original logo remain untouched. */
  :is(body, #main #content) .fcbz-home :is(.fcbz-wrap,.fcbz-head,.fcbz-actions,.fcbz-hero-copy,.fcbz-card-body,.fcbz-audience-body,.fcbz-logo-track,.fcbz-logo-content,.fcbz-header-inner,.fcbz-value,.fcbz-footer-links)>br { display:none!important; }
  :is(body, #main #content) .fcbz-home :is(.fcbz-head,.fcbz-actions,.fcbz-card-body,.fcbz-audience-body,.fcbz-header-inner)>p:has(>.fcbz-btn:only-child) { display:contents!important; }
  :is(body, #main #content) .fcbz-home .fcbz-section { padding:28px 0!important; margin:0!important; height:auto!important; min-height:0!important; scroll-margin-top:90px; }
  :is(body, #main #content) .fcbz-home .fcbz-head { flex-direction:column; align-items:flex-start!important; gap:10px!important; margin:0 0 18px!important; padding:0!important; }
  :is(body, #main #content) .fcbz-home .fcbz-head>div { width:100%; }
  :is(body, #main #content) .fcbz-home .fcbz-intro { margin-top:12px!important; font-size:18px!important; }
  :is(body, #main #content) .fcbz-home .fcbz-kicker { font:750 14px/1.4 var(--font)!important; letter-spacing:.025em!important; margin:0 0 8px!important; }
  :is(body, #main #content) .fcbz-home .fcbz-btn { min-height:50px!important; height:auto!important; max-width:100%; padding:12px 16px!important; gap:8px!important; font:750 17px/1.35 var(--font)!important; white-space:normal!important; text-align:center; overflow-wrap:break-word; letter-spacing:0!important; }
  :is(body, #main #content) .fcbz-home .fcbz-link { max-width:100%; min-height:44px; font:700 17px/1.4 var(--font)!important; gap:8px!important; overflow-wrap:break-word; white-space:normal!important; letter-spacing:0!important; }
  :is(body, #main #content) .fcbz-home :is(.fcbz-btn,.fcbz-link) svg { flex:0 0 18px; width:18px; height:18px; }
  :is(body, #main #content) .fcbz-home .fcbz-header-inner { gap:10px!important; min-height:78px!important; padding:0!important; }
  :is(body, #main #content) .fcbz-home .fcbz-brand { flex:1 1 0!important; margin:0!important; }
  :is(body, #main #content) .fcbz-home .fcbz-brand img { width:101px; height:70px; }
  :is(body, #main #content) .fcbz-home .fcbz-donate { min-height:46px!important; padding:11px 14px!important; font-size:16px!important; white-space:nowrap!important; }
  :is(body, #main #content) .fcbz-home .fcbz-mobile-summary { width:46px; height:46px; }
  :is(body, #main #content) .fcbz-home .fcbz-mobile-nav { padding:6px 18px 10px!important; }
  :is(body, #main #content) .fcbz-home .fcbz-mobile-nav a { min-height:50px; font-size:18px!important; line-height:1.4!important; }

  /* Keep the primary actions near the headline. The full photograph is kept,
     but its container has no artificial minimum height or empty caption area. */
  :is(body, #main #content) .fcbz-home .fcbz-hero { padding:22px 0 28px!important; margin:0!important; height:auto!important; min-height:0!important; }
  :is(body, #main #content) .fcbz-home .fcbz-hero-grid { display:grid; grid-template-columns:minmax(0,1fr)!important; gap:0!important; align-items:start!important; }
  :is(body, #main #content) .fcbz-home .fcbz-hero-copy { display:contents; }
  :is(body, #main #content) .fcbz-home .fcbz-hero .fcbz-kicker { order:1; margin-bottom:12px!important; font-size:15px!important; text-transform:none; letter-spacing:0!important; }
  :is(body, #main #content) .fcbz-home .fcbz-hero h1 { order:2; }
  :is(body, #main #content) .fcbz-home .fcbz-underline::after { bottom:-5px; height:9px; border-bottom-width:4px; }
  :is(body, #main #content) .fcbz-home .fcbz-hero-subtitle { order:3; font-size:21px!important; line-height:1.4!important; margin:16px 0 0!important; max-width:none; }
  :is(body, #main #content) .fcbz-home .fcbz-hero .fcbz-actions { order:4; display:grid; grid-template-columns:minmax(0,1fr)!important; gap:8px!important; width:100%; margin:18px 0 0!important; }
  :is(body, #main #content) .fcbz-home .fcbz-hero .fcbz-actions .fcbz-btn { width:100%; margin:0!important; flex:none; min-width:0; }
  :is(body, #main #content) .fcbz-home .fcbz-hero-art { order:5; width:100%; max-width:420px; margin:18px auto 0!important; height:auto!important; min-height:0!important; align-self:start; }
  :is(body, #main #content) .fcbz-home .fcbz-hero-art>img { width:100%; height:auto!important; aspect-ratio:1; object-fit:contain; border-radius:16px; }
  :is(body, #main #content) .fcbz-home .fcbz-hero-art::after { display:none; }
  :is(body, #main #content) .fcbz-home .fcbz-hero-desc { order:6; margin:16px 0 0!important; max-width:none; font-size:18px!important; }
  :is(body, #main #content) .fcbz-home .fcbz-wave { display:none; }

  :is(body, #main #content) .fcbz-home :is(.fcbz-audience-grid,.fcbz-community-grid,.fcbz-method-grid,.fcbz-program-grid,.fcbz-news-grid,.fcbz-final-grid) { grid-template-columns:minmax(0,1fr)!important; align-items:start!important; grid-auto-rows:auto!important; gap:16px!important; }
  :is(body, #main #content) .fcbz-home :is(.fcbz-card,.fcbz-audience,.fcbz-value) { min-height:0!important; height:auto!important; margin:0!important; align-self:start; }
  :is(body, #main #content) .fcbz-home .fcbz-audience>img { width:100%; height:auto!important; aspect-ratio:auto!important; object-fit:contain; }
  :is(body, #main #content) .fcbz-home .fcbz-audience-body { padding:0 18px 18px!important; flex:0 1 auto!important; }
  :is(body, #main #content) .fcbz-home .fcbz-round-icon { width:48px; height:48px; margin:-23px 0 8px!important; border-width:3px; }
  :is(body, #main #content) .fcbz-home .fcbz-round-icon svg { width:25px; height:25px; }
  :is(body, #main #content) .fcbz-home .fcbz-audience h3 { margin:0 0 10px!important; }
  :is(body, #main #content) .fcbz-home .fcbz-audience strong { font-size:18px!important; line-height:1.4!important; }
  :is(body, #main #content) .fcbz-home .fcbz-audience p { margin:10px 0 16px!important; }
  :is(body, #main #content) .fcbz-home .fcbz-audience .fcbz-btn { width:100%; margin:0!important; }
  :is(body, #main #content) .fcbz-home .fcbz-smallnote { display:block; font:400 15px/1.45 var(--font)!important; margin-top:8px!important; }
  :is(body, #main #content) .fcbz-home .fcbz-community p { margin:12px 0 0!important; }
  :is(body, #main #content) .fcbz-home .fcbz-community .fcbz-link { margin-top:10px!important; }
  :is(body, #main #content) .fcbz-home .fcbz-community-art { margin:0!important; }
  :is(body, #main #content) .fcbz-home .fcbz-community-art img { width:100%; height:auto!important; aspect-ratio:auto!important; object-fit:contain; border-radius:16px; }
  :is(body, #main #content) .fcbz-home .fcbz-community-art::after { display:none; }
  :is(body, #main #content) .fcbz-home .fcbz-method { text-align:left!important; }
  :is(body, #main #content) .fcbz-home .fcbz-method-intro { margin:12px 0 16px!important; }
  :is(body, #main #content) .fcbz-home .fcbz-method-grid { gap:0!important; margin:0!important; }
  :is(body, #main #content) .fcbz-home .fcbz-method-grid article { padding:16px 0!important; margin:0!important; border-top-width:1px; }
  :is(body, #main #content) .fcbz-home .fcbz-method-grid article:last-child { padding-bottom:0!important; }
  :is(body, #main #content) .fcbz-home .fcbz-method-grid h3 { font-size:23px!important; margin:8px 0!important; }
  :is(body, #main #content) .fcbz-home .fcbz-step { font-size:14px!important; letter-spacing:.02em!important; }
  :is(body, #main #content) .fcbz-home .fcbz-card-body { padding:18px!important; flex:0 1 auto!important; min-height:0!important; height:auto!important; }
  :is(body, #main #content) .fcbz-home .fcbz-card p { margin:10px 0 16px!important; }
  :is(body, #main #content) .fcbz-home .fcbz-card .fcbz-btn { width:100%; margin:0!important; }
  :is(body, #main #content) .fcbz-home .fcbz-tag { font:750 14px/1.4 var(--font)!important; letter-spacing:.015em!important; margin:0 0 8px!important; }
  :is(body, #main #content) .fcbz-home .fcbz-programs .fcbz-card-photo { margin:0!important; height:auto!important; min-height:0!important; aspect-ratio:auto!important; background:transparent; }
  :is(body, #main #content) .fcbz-home .fcbz-programs .fcbz-card-photo>img { width:100%; height:auto!important; aspect-ratio:auto!important; object-fit:contain; }
  :is(body, #main #content) .fcbz-home .fcbz-programs .fcbz-card-photo>.fcbz-photo-science { aspect-ratio:16/9!important; object-fit:cover; object-position:50% 30%; }
  :is(body, #main #content) .fcbz-home .fcbz-values-grid { grid-template-columns:minmax(0,1fr)!important; gap:0!important; }
  :is(body, #main #content) .fcbz-home .fcbz-value { display:grid; grid-template-columns:30px minmax(0,1fr); column-gap:12px!important; row-gap:6px!important; padding:16px 0!important; border-bottom:1px solid #e8e0d0; }
  :is(body, #main #content) .fcbz-home .fcbz-value:first-child { padding-top:0!important; }
  :is(body, #main #content) .fcbz-home .fcbz-value:last-child { border:0; padding-bottom:0!important; }
  :is(body, #main #content) .fcbz-home .fcbz-value-icon { grid-column:1; grid-row:1 / 3; width:28px; height:28px; margin:0!important; }
  :is(body, #main #content) .fcbz-home .fcbz-value h3 { grid-column:2; font-size:22px!important; margin:0!important; }
  :is(body, #main #content) .fcbz-home .fcbz-value p { grid-column:2; margin:0!important; }
  :is(body, #main #content) .fcbz-home .fcbz-value strong { font-size:18px!important; line-height:1.5!important; margin:0 0 3px!important; }

  :is(body, #main #content) .fcbz-home .fcbz-controls { width:auto; align-self:flex-end; gap:8px!important; }
  :is(body, #main #content) .fcbz-home .fcbz-control { width:46px; height:46px; flex:none; }
  :is(body, #main #content) .fcbz-home .fcbz-logo-track { grid-auto-columns:calc((100% - 12px)/2); grid-template-rows:repeat(2,100px); gap:12px!important; margin:0!important; scroll-padding-inline:3px; }
  :is(body, #main #content) .fcbz-home .fcbz-logo-card { height:100px!important; margin:0!important; padding:0!important; }
  :is(body, #main #content) .fcbz-home .fcbz-logo-content { padding:12px!important; min-height:0!important; height:100%!important; }
  :is(body, #main #content) .fcbz-home .fcbz-logo-content img { width:100%; max-width:160px; height:70px; object-fit:contain; }
  :is(body, #main #content) .fcbz-home .fcbz-logo-fallback { font-size:15px!important; line-height:1.3!important; }
  :is(body, #main #content) .fcbz-home .fcbz-partner-invite { margin:16px 0!important; gap:12px!important; text-align:left; }
  :is(body, #main #content) .fcbz-home .fcbz-partner-invite .fcbz-btn { width:100%; }
  :is(body, #main #content) .fcbz-home .fcbz-partner-directory { margin:16px 0 0!important; padding:6px 0!important; }
  :is(body, #main #content) .fcbz-home .fcbz-partner-directory summary { font-size:17px!important; line-height:1.4!important; padding:12px 0!important; }
  :is(body, #main #content) .fcbz-home .fcbz-directory-tools { flex-direction:column; align-items:stretch; gap:8px!important; margin:12px 0!important; }
  :is(body, #main #content) .fcbz-home .fcbz-search { font-size:18px!important; line-height:1.4!important; width:100%; max-width:100%; min-height:50px; }
  :is(body, #main #content) .fcbz-home .fcbz-directory-count { white-space:normal; font-size:16px!important; }
  :is(body, #main #content) .fcbz-home .fcbz-directory-list { grid-template-columns:minmax(0,1fr); margin-top:12px!important; }
  :is(body, #main #content) .fcbz-home .fcbz-directory-list li { font-size:17px!important; line-height:1.4!important; padding:12px 0!important; }
  :is(body, #main #content) .fcbz-home .fcbz-news .fcbz-card-photo>img { width:100%; height:auto!important; aspect-ratio:16/9; object-fit:cover; }
  :is(body, #main #content) .fcbz-home .fcbz-news time { font-size:15px!important; margin:0 0 8px!important; }
  :is(body, #main #content) .fcbz-home .fcbz-news .fcbz-card h3 { font-size:24px!important; line-height:1.22!important; }
  :is(body, #main #content) .fcbz-home .fcbz-news .fcbz-link { margin:0!important; }
  :is(body, #main #content) .fcbz-home .fcbz-news-fallback { height:auto; min-height:0; padding:18px; font-size:22px; }
  :is(body, #main #content) .fcbz-home .fcbz-news-fallback span { font-size:16px; }
  :is(body, #main #content) .fcbz-home .fcbz-final { padding:32px 0!important; min-height:0!important; height:auto!important; }
  :is(body, #main #content) .fcbz-home .fcbz-final h2 { color:#fff!important; }
  :is(body, #main #content) .fcbz-home .fcbz-final p { margin-top:12px!important; }
  :is(body, #main #content) .fcbz-home .fcbz-final strong { margin-top:16px!important; font-size:21px!important; }
  :is(body, #main #content) .fcbz-home .fcbz-hashtag { font-size:18px; margin-top:8px!important; }
  :is(body, #main #content) .fcbz-home .fcbz-final-action { text-align:left; }
  :is(body, #main #content) .fcbz-home .fcbz-final-action .fcbz-btn { width:100%; }
  :is(body, #main #content) .fcbz-home .fcbz-final-action p { margin-top:8px!important; font-size:16px!important; }
  :is(body, #main #content) .fcbz-home .fcbz-footer { padding:26px 0 20px!important; }
  :is(body, #main #content) .fcbz-home .fcbz-footer-grid { flex-direction:column; gap:18px!important; }
  :is(body, #main #content) .fcbz-home .fcbz-footer-brand img { width:135px; height:auto; }
  :is(body, #main #content) .fcbz-home .fcbz-footer-brand p { font-size:17px!important; margin-top:12px!important; }
  :is(body, #main #content) .fcbz-home .fcbz-footer-links { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); width:100%; gap:0 16px!important; font-size:16px!important; }
  :is(body, #main #content) .fcbz-home .fcbz-footer-links a { min-height:44px; line-height:1.4; }
  :is(body, #main #content) .fcbz-home .fcbz-footer-meta { flex-direction:column; gap:8px!important; font-size:14px!important; line-height:1.5; margin-top:18px!important; padding-top:16px!important; }
  /* Network errors must not leave a large empty photograph-sized rectangle. */
  :is(body, #main #content) .fcbz-home .fcbz-media-unavailable { display:none!important; }
  :is(body, #main #content) .fcbz-home .fcbz-photo-companies.fcbz-photo-failed,
  :is(body, #main #content) .fcbz-home .fcbz-photo-initiatives.fcbz-photo-failed { display:none!important; }
  :is(body, #main #content) .fcbz-home .fcbz-audience:has(>.fcbz-photo-failed) .fcbz-audience-body { padding-top:18px!important; }
  :is(body, #main #content) .fcbz-home .fcbz-audience:has(>.fcbz-photo-failed) .fcbz-round-icon { margin-top:0!important; }
}
@media (min-width:480px) and (max-width:767px) {
  :is(body, #main #content) .fcbz-home .fcbz-hero .fcbz-actions { grid-template-columns:repeat(2,minmax(0,1fr))!important; }
}
@media (max-width:359px) {
  :is(body, #main #content) .fcbz-home .fcbz-wrap { width:calc(100% - 32px)!important; }
  :is(body, #main #content) .fcbz-home .fcbz-header-inner { gap:8px!important; }
  :is(body, #main #content) .fcbz-home .fcbz-brand img { width:94px; height:66px; }
  :is(body, #main #content) .fcbz-home .fcbz-donate { padding-inline:12px!important; }
  :is(body, #main #content) .fcbz-home h1 { font-size:42px!important; }
}
@media (max-width:600px) {
  .admin-bar .fcbz-home .fcbz-header { top:0; }
}
