/* IFG WordPress Overrides
 * Compensates for default block-theme behaviours that interfere with the IFG layout.
 */

/* --- Overflow / height (all templates) --- */
.wp-site-blocks,
.wp-block-group,
.entry-content,
.wp-block-post-content,
.page-content,
.site-content{
  overflow:visible !important;
  max-height:none !important;
  height:auto !important;
}

/* --- IFG landing pages: shell (class-based so template body classes are not required) --- */
.wp-site-blocks:has(.ifg-hero),
.wp-site-blocks:has(.ifg-membership),
.wp-site-blocks:has(.ifg-board),
.wp-site-blocks:has(.ifg-imprint){
  padding-left:0 !important;
  padding-right:0 !important;
  gap:0 !important;
}

.wp-site-blocks:has(.ifg-hero) .wp-block-template-part,
.wp-site-blocks:has(.ifg-membership) .wp-block-template-part,
.wp-site-blocks:has(.ifg-board) .wp-block-template-part,
.wp-site-blocks:has(.ifg-imprint) .wp-block-template-part{
  margin-top:0 !important;
  margin-bottom:0 !important;
}

main.wp-block-group:has(.ifg-hero),
main.wp-block-group:has(.ifg-membership),
main.wp-block-group:has(.ifg-board),
main.wp-block-group:has(.ifg-imprint){
  --wp--style--block-gap:0 !important;
  gap:0 !important;
}

/* --- IFG section IDs (front page + sub-pages using same parts) --- */
:is(
  #home,
  #about,
  #focus,
  #structure,
  #topics,
  #principles,
  #board,
  #advisors,
  #membership,
  #donate,
  #contact,
  #imprint
) .wp-block-group{
  --wp--style--block-gap:0 !important;
}

/* --- Grid enforcement (beat is-layout-flow stacking) --- */
.about-grid.wp-block-group,
.focus-grid.wp-block-group,
.structure-cols.wp-block-group,
.topics-grid.wp-block-group,
.principles-grid.wp-block-group,
.board-grid.wp-block-group,
.advisors-grid.wp-block-group,
.mem-wrap.wp-block-group,
.donate-split.wp-block-group,
.contact-grid.wp-block-group,
.imprint-grid.wp-block-group,
.hero-stats.wp-block-group,
.footer-top.wp-block-group{
  display:grid !important;
}

.hero-btns.wp-block-group{
  display:flex !important;
}

.ifg-bullet-item.wp-block-group,
.why-item.wp-block-group,
.ci-item.wp-block-group{
  display:flex !important;
}

/* --- Typography: match _base.css / section files over theme.json --- */
:is(#about, #focus, #structure, #principles, #board, #advisors, #membership, #donate, #contact, #imprint) .container > .wp-block-heading,
:is(#about, #focus, #structure, #principles, #board, #advisors, #membership, #donate, #contact, #imprint) .container > h2.wp-block-heading{
  font-size:clamp(1.6rem, 3vw, 2.2rem) !important;
  font-weight:700 !important;
  line-height:1.25 !important;
  color:var(--ifg-navy) !important;
}

#topics .container > .wp-block-heading,
#topics .container > h2.wp-block-heading{
  font-size:clamp(1.6rem, 3vw, 2.2rem) !important;
  font-weight:700 !important;
  line-height:1.25 !important;
  color:#fff !important;
}

#home .wp-block-heading,
#home h1.wp-block-heading{
  font-size:clamp(2rem, 5vw, 3.2rem) !important;
  font-weight:700 !important;
  line-height:1.15 !important;
  color:#fff !important;
}

.struct-box .wp-block-heading,
.ifg-card-sand > .wp-block-heading{
  font-size:1rem !important;
  font-weight:600 !important;
  color:var(--ifg-navy) !important;
}

.focus-card .wp-block-heading,
.principle-card .wp-block-heading,
.topic-card .wp-block-heading,
.advisor-card .wp-block-heading,
.board-card .wp-block-heading{
  font-size:.95rem !important;
  font-weight:600 !important;
  line-height:1.3 !important;
}

#topics .topic-card .wp-block-heading{
  color:#fff !important;
  margin-bottom:.4rem !important;
}

.donate-form .wp-block-heading{
  font-size:1.05rem !important;
  color:var(--ifg-navy) !important;
  margin-bottom:1.25rem !important;
}

.why-item .wp-block-heading,
.ci-item .wp-block-heading{
  font-size:.9rem !important;
  font-weight:600 !important;
  color:var(--ifg-navy) !important;
  margin-bottom:.2rem !important;
}

.imprint-block .wp-block-heading{
  font-size:.85rem !important;
  font-weight:600 !important;
  text-transform:uppercase !important;
  letter-spacing:.5px !important;
}

.imprint-note p,
.imprint-note .wp-block-paragraph{
  font-size:.82rem !important;
  color:var(--muted) !important;
  line-height:1.6 !important;
}

footer .footer-col .wp-block-heading,
footer .footer-col h4.wp-block-heading{
  font-size:.82rem !important;
  font-weight:600 !important;
  color:rgba(255, 255, 255, .9) !important;
  text-transform:uppercase !important;
  letter-spacing:.5px !important;
  margin-bottom:.75rem !important;
}

/* --- Paragraph margins inside cards / stats (were divs in reference) --- */
.hero-stat p,
.hero-stat .num,
.hero-stat .lbl,
.focus-card p,
.principle-card p,
.topic-card p,
.advisor-card p,
.board-card p,
.struct-box p,
.ifg-bullet-item p,
.why-item p,
.ci-item p,
.imprint-block p,
.ifg-callout-box p,
.ifg-sidebar-note p,
.ifg-board-intro,
.ifg-contact-intro,
.ifg-donate-hint,
.imprint-note p,
.footer-brand p{
  margin:0 !important;
}

/* Preserve intentional body copy spacing in section columns */
:is(#about, #focus, #structure, #principles, #board, #advisors, #membership, #donate, #contact, #imprint) .container > p:not(.section-label):not(.lead):not(.ifg-board-intro):not(.ifg-contact-intro):not(.ifg-donate-hint),
.struct-box > p,
.ifg-card-sand > .ifg-bullet-list ~ p,
.tab-panel > .ifg-board-intro{
  margin-bottom:.75rem !important;
}

#home .tagline{
  margin-bottom:2rem !important;
}

.section-label{
  margin-bottom:.75rem !important;
}

.lead.ifg-lead-spaced{
  margin-bottom:2rem !important;
}

.lead.ifg-lead-spaced-lg{
  margin-bottom:2.5rem !important;
}

#topics .lead{
  margin-bottom:2rem !important;
}

/* --- Footer block wrapper (template part uses groups, not outer footer tag in part file) --- */
footer .wp-block-group{
  --wp--style--block-gap:0 !important;
}

footer .footer-brand p{
  margin-top:.75rem !important;
}

/* --- Round 2: full grid/flex templates (mirror section CSS) --- */
#home .hero-btns{
  display:flex !important;
  flex-wrap:wrap !important;
  gap:1rem !important;
}

#home .hero-stats,
#home .hero-stats.is-layout-grid{
  display:grid !important;
  grid-template-columns:repeat(3,1fr) !important;
  gap:1px !important;
  background:rgba(255,255,255,.1) !important;
  border:1px solid rgba(255,255,255,.1) !important;
  border-radius:8px !important;
  margin-top:3rem !important;
  overflow:hidden !important;
}

.about-grid,
.about-grid.is-layout-grid{
  display:grid !important;
  grid-template-columns:1fr 1fr !important;
  gap:4rem !important;
  align-items:start !important;
}

.focus-grid,
.focus-grid.is-layout-grid{
  display:grid !important;
  grid-template-columns:repeat(auto-fit,minmax(180px,1fr)) !important;
  gap:1.25rem !important;
  margin-top:2rem !important;
}

.structure-cols,
.structure-cols.is-layout-grid{
  display:grid !important;
  grid-template-columns:1fr 1fr !important;
  gap:2rem !important;
  margin-top:2rem !important;
}

.topics-grid,
.topics-grid.is-layout-grid{
  display:grid !important;
  grid-template-columns:repeat(auto-fit,minmax(280px,1fr)) !important;
  gap:1.25rem !important;
  margin-top:2rem !important;
}

.principles-grid,
.principles-grid.is-layout-grid{
  display:grid !important;
  grid-template-columns:repeat(auto-fit,minmax(220px,1fr)) !important;
  gap:1.25rem !important;
  margin-top:2rem !important;
}

.board-grid,
.board-grid.is-layout-grid{
  display:grid !important;
  grid-template-columns:repeat(auto-fit,minmax(170px,1fr)) !important;
  gap:1.25rem !important;
}

.advisors-grid,
.advisors-grid.is-layout-grid{
  display:grid !important;
  grid-template-columns:repeat(auto-fit,minmax(190px,1fr)) !important;
  gap:1.25rem !important;
  margin-top:2rem !important;
}

.mem-wrap,
.mem-wrap.is-layout-grid,
.donate-split,
.donate-split.is-layout-grid,
.contact-grid,
.contact-grid.is-layout-grid{
  display:grid !important;
  grid-template-columns:1fr 1fr !important;
  gap:3rem !important;
  align-items:start !important;
}

.mem-wrap.is-layout-grid,
.donate-split.is-layout-grid{
  margin-top:2rem !important;
}

.imprint-grid,
.imprint-grid.is-layout-grid{
  display:grid !important;
  grid-template-columns:repeat(auto-fit,minmax(240px,1fr)) !important;
  gap:2rem !important;
  margin-top:2rem !important;
}

.footer-top,
.footer-top.is-layout-grid{
  display:grid !important;
  grid-template-columns:2fr 1fr 1fr 1fr !important;
  gap:2rem !important;
  margin-bottom:2rem !important;
}

/* Grid/flex items: do not re-grid card cells */
.hero-stat.wp-block-group,
.focus-card.wp-block-group,
.principle-card.wp-block-group,
.topic-card.wp-block-group,
.advisor-card.wp-block-group,
.board-card.wp-block-group,
.struct-box.wp-block-group,
.imprint-block.wp-block-group,
.footer-brand.wp-block-group,
.footer-col.wp-block-group{
  display:block !important;
  min-width:0 !important;
}

/* CTA buttons: prevent theme core/button padding bleed */
#home a.btn-hp,
#home a.btn-ho{
  display:inline-block !important;
  padding:.75rem 1.75rem !important;
  font-size:.95rem !important;
  line-height:1.4 !important;
  box-sizing:border-box !important;
  border-radius:4px !important;
  font-weight:600 !important;
  text-decoration:none !important;
}

/* Stack flow-layout section headers without extra block-gap */
section[id] > .container.is-layout-flow > .wp-block-heading,
section[id] > .container.is-layout-flow > .wp-block-paragraph,
section[id] > .container.is-layout-flow > .wp-block-html{
  margin-block-start:0 !important;
}

@media(max-width:768px){
  .about-grid,
  .about-grid.is-layout-grid,
  .structure-cols,
  .structure-cols.is-layout-grid,
  .mem-wrap,
  .mem-wrap.is-layout-grid,
  .donate-split,
  .donate-split.is-layout-grid,
  .contact-grid,
  .contact-grid.is-layout-grid{
    grid-template-columns:1fr !important;
  }

  #home .hero-stats,
  #home .hero-stats.is-layout-grid{
    grid-template-columns:1fr !important;
  }

  .footer-top,
  .footer-top.is-layout-grid{
    grid-template-columns:1fr !important;
  }
}
