/*
Theme Name: FAPHB
Theme URI: https://faphb.org/
Author: FAPHB
Description: Thème institutionnel et accessible de la Fédération des Associations des Personnes Handicapées du Bénin.
Template: welowe
Version: 1.0.0
Text Domain: welowe-child
*/

:root {
  --faphb-green: #08783e;
  --faphb-green-dark: #04572c;
  --faphb-yellow: #f4c400;
  --faphb-red: #c62828;
  --faphb-ink: #17221c;
  --faphb-muted: #56635b;
  --faphb-surface: #f5f8f6;
  --faphb-white: #ffffff;
  --faphb-focus: #0b57d0;
}

html {
  scroll-behavior: smooth;
}

body {
  color: var(--faphb-ink);
  font-size: 17px;
  line-height: 1.65;
}

a {
  text-decoration-thickness: .09em;
  text-underline-offset: .16em;
}

a:not([class]) {
  color: var(--faphb-green-dark);
  text-decoration: underline;
}

:where(a, button, input, select, textarea, [tabindex]):focus-visible {
  outline: 3px solid var(--faphb-focus) !important;
  outline-offset: 3px;
}

html { scroll-padding-top: 7rem; }
:where(.faphb-footer, .faphb-post__body, .faphb-pagination, .faphb-video-library__heading) a {
  display: inline-flex;
  min-height: 24px;
  align-items: center;
}
.faphb-form-notice--error ul { margin: .65rem 0 0; padding-left: 1.25rem; }
.faphb-form-notice--error a { color: inherit; font-weight: 750; text-decoration: underline; }
.faphb-contact-form [aria-invalid="true"] { border-color: #a31414; box-shadow: 0 0 0 3px rgba(163,20,20,.16); }
#main-content[tabindex="-1"]:focus { outline: none; }
.faphb-network-list button small,
.faphb-map-credit,
.faphb-org-node span,
.faphb-actions-grid .faphb-card__number { color: #4b5a51; }

.faphb-skip-link {
  position: fixed;
  z-index: 999999;
  top: 1rem;
  left: 1rem;
  padding: .8rem 1rem;
  transform: translateY(-180%);
  border-radius: .25rem;
  background: var(--faphb-white);
  color: var(--faphb-ink);
  font-weight: 700;
  box-shadow: 0 4px 16px rgba(0, 0, 0, .25);
}

.faphb-skip-link:focus {
  transform: translateY(0);
}

::selection {
  background: var(--faphb-yellow);
  color: var(--faphb-ink);
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }

  *,
  *::before,
  *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
  }

  .faphb-slide { clip-path: none !important; transform: none !important; }
}

/* Departmental networks map */
.faphb-networks-hero { position: relative; overflow: hidden; padding-block: clamp(4.5rem,8vw,7rem); background-image:linear-gradient(90deg,rgba(1,42,23,.96) 0%,rgba(3,70,39,.86) 48%,rgba(3,81,45,.56) 100%),url('assets/images/hero-terrain-faphb.jpeg'); background-position:center,center 42%; background-size:cover; color:#fff; }
.faphb-networks-hero::after { position:absolute; right:-7rem; top:-11rem; width:34rem; height:34rem; border:3.5rem solid rgba(244,196,0,.13); border-radius:50%; content:""; }
.faphb-networks-hero .faphb-container { position:relative; z-index:1; }
.faphb-networks-hero h1 { max-width:15ch; margin:0 0 1.1rem; color:#fff; font-size:clamp(2.7rem,5vw,4.6rem); line-height:1; }
.faphb-networks-hero p:not(.faphb-eyebrow) { max-width:62ch; color:rgba(255,255,255,.84); font-size:1.08rem; }
.faphb-networks-hero__stat { display:flex; align-items:center; gap:1rem; margin-top:2rem; }
.faphb-networks-hero__stat strong { color:#f4c400; font-size:3.5rem; line-height:1; }
.faphb-networks-hero__stat span { padding-left:1rem; border-left:1px solid rgba(255,255,255,.3); color:#fff; font-weight:700; line-height:1.35; }
.faphb-networks-map-section { background:#f3f7f4; }
.faphb-networks-layout { display:grid; grid-template-columns:minmax(330px,.85fr) minmax(420px,1.15fr); gap:clamp(2rem,6vw,5.5rem); align-items:start; }
.faphb-benin-map { position:relative; width:min(100%,470px); margin-inline:auto; padding:1.5rem; border:1px solid #d9e5dd; border-radius:1.25rem; background:radial-gradient(circle at 50% 45%,#fff 0,#edf5ef 75%); box-shadow:0 25px 55px rgba(3,47,26,.1); }
.faphb-benin-map img { display:block; width:100%; max-height:690px; object-fit:contain; }
.faphb-map-marker { position:absolute; z-index:2; left:var(--map-x); top:var(--map-y); display:grid; justify-items:center; padding:0; border:0; background:transparent; color:#082e1c; transform:translate(-50%,-50%); cursor:pointer; }
.faphb-map-marker > span { width:1rem; height:1rem; border:3px solid #fff; border-radius:50%; background:#8e201f; box-shadow:0 0 0 4px rgba(142,32,31,.22),0 3px 10px rgba(0,0,0,.3); transition:transform .2s ease,background .2s ease; }
.faphb-map-marker small { margin-top:.35rem; padding:.15rem .38rem; border-radius:.25rem; background:rgba(255,255,255,.9); font-size:.68rem; font-weight:850; box-shadow:0 2px 8px rgba(0,0,0,.12); }
.faphb-map-marker:hover > span,.faphb-map-marker:focus-visible > span,.faphb-map-marker.is-active > span { background:#f4c400; transform:scale(1.35); }
.faphb-map-marker:focus-visible { outline:3px solid #082e1c; outline-offset:5px; border-radius:.2rem; }
.faphb-networks-panel__intro { min-height:190px; padding:1.6rem; border-radius:1rem; background:linear-gradient(135deg,#073c23,#075e35); color:#fff; }
.faphb-networks-panel__intro > span { display:block; margin-bottom:.7rem; color:#f4c400; font-size:.75rem; font-weight:850; letter-spacing:.1em; text-transform:uppercase; }
.faphb-networks-panel__intro strong { display:block; max-width:24ch; margin-bottom:.65rem; font-size:clamp(1.35rem,2vw,1.8rem); line-height:1.2; }
.faphb-networks-panel__intro p { margin:0; color:rgba(255,255,255,.78); }
.faphb-network-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.65rem; margin-top:1rem; }
.faphb-network-list button { display:grid; grid-template-columns:auto 1fr auto; gap:.7rem; align-items:center; width:100%; padding:.85rem; border:1px solid #d8e4dc; border-radius:.65rem; background:#fff; color:#173c29; text-align:left; cursor:pointer; transition:border-color .2s ease,transform .2s ease,box-shadow .2s ease; }
.faphb-network-list button:hover,.faphb-network-list button:focus-visible,.faphb-network-list button.is-active { border-color:#d49c00; transform:translateY(-2px); box-shadow:0 8px 20px rgba(3,47,26,.09); }
.faphb-network-list button:focus-visible { outline:3px solid rgba(7,100,58,.28); outline-offset:2px; }
.faphb-network-list button strong,.faphb-network-list button small { display:block; }
.faphb-network-list button strong { font-size:.9rem; }
.faphb-network-list button small { margin-top:.12rem; color:#718077; font-size:.68rem; line-height:1.25; }
.faphb-network-list__pin { width:.65rem; height:.65rem; border-radius:50%; background:#08743f; box-shadow:0 0 0 3px #dceee3; }
.faphb-map-credit { margin:.8rem 0 0; color:#77857d; font-size:.72rem; text-align:center; }
.faphb-networks-cta { padding-block:clamp(3rem,6vw,5rem); background:#f4c400; }
.faphb-networks-cta .faphb-container { display:flex; justify-content:space-between; align-items:center; gap:2rem; }
.faphb-networks-cta h2 { max-width:25ch; margin:0; color:#082e1c; font-size:clamp(1.8rem,3vw,2.7rem); line-height:1.1; }
.faphb-networks-cta .faphb-button { flex:none; background:#073c23; color:#fff; }
@media (max-width:900px) { .faphb-networks-layout { grid-template-columns:1fr; } .faphb-benin-map { width:min(100%,430px); } }
@media (max-width:620px) { .faphb-network-list { grid-template-columns:1fr; } .faphb-benin-map { padding:.75rem; } .faphb-map-marker small { font-size:.58rem; } .faphb-networks-cta .faphb-container { display:grid; } }
@media (prefers-reduced-motion:reduce) { .faphb-map-marker > span,.faphb-network-list button { transition:none; } }

/* Accessibility statement */
.faphb-access-hero { padding-block:clamp(3.5rem,7vw,6.5rem); background:linear-gradient(125deg,#022f1a,#087044); color:#fff; }
.faphb-access-hero__inner { display:grid; grid-template-columns:minmax(0,.95fr) minmax(420px,1.05fr); gap:clamp(2.5rem,6vw,5.5rem); align-items:center; }
.faphb-access-hero h1 { max-width:14ch; margin:0 0 1.2rem; color:#fff; font-size:clamp(2.8rem,5.5vw,5rem); line-height:1; }
.faphb-access-hero p:not(.faphb-eyebrow) { max-width:62ch; color:rgba(255,255,255,.88); font-size:1.08rem; }
.faphb-access-hero__actions { display:flex; flex-wrap:wrap; gap:.8rem; margin-top:1.7rem; }
.faphb-access-hero figure { position:relative; min-height:470px; margin:0; overflow:hidden; border-radius:1rem; box-shadow:0 25px 60px rgba(0,0,0,.3); }
.faphb-access-hero figure::after { position:absolute; inset:50% 0 0; background:linear-gradient(transparent,rgba(1,35,19,.88)); content:""; }
.faphb-access-hero figure img { width:100%; height:100%; min-height:470px; object-fit:cover; }
.faphb-access-hero figcaption { position:absolute; z-index:1; right:1.4rem; bottom:1.2rem; left:1.4rem; color:#fff; font-weight:750; }
.faphb-access-status { background:#f4f8f5; }
.faphb-access-status__grid { display:grid; grid-template-columns:1.2fr .8fr; gap:clamp(2rem,6vw,5rem); align-items:center; }
.faphb-access-status h2,.faphb-access-features h2,.faphb-access-limits h2 { color:var(--faphb-green-dark); font-size:clamp(2rem,4vw,3.2rem); line-height:1.1; }
.faphb-access-status__card { padding:2rem; border:1px solid #c9d9cf; border-radius:1rem; background:#fff; box-shadow:0 20px 45px rgba(4,49,28,.09); }
.faphb-access-status__card > span { color:#4b5a51; font-size:.75rem; font-weight:850; letter-spacing:.1em; text-transform:uppercase; }
.faphb-access-status__card > strong { display:block; margin:.65rem 0 .35rem; color:#8e201f; font-size:1.7rem; line-height:1.2; }
.faphb-access-status__card p { margin:0; color:#405047; font-weight:700; }
.faphb-access-status__card > div { height:9px; margin:1.5rem 0 .8rem; overflow:hidden; border-radius:99px; background:#dce7e0; }
.faphb-access-status__card > div span { display:block; width:82%; height:100%; border-radius:inherit; background:linear-gradient(90deg,#08783e,#f4c400); }
.faphb-access-status__card small { color:#4b5a51; }
.faphb-access-features__grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1rem; }
.faphb-access-features__grid article { padding:1.5rem; border:1px solid #d7e3db; border-radius:.75rem; background:#fff; box-shadow:0 10px 25px rgba(4,49,28,.05); }
.faphb-access-features__grid article > span { display:grid; width:52px; height:52px; place-items:center; margin-bottom:1.1rem; border-radius:14px; background:#e5f2e9; color:#07572f; font-weight:900; }
.faphb-access-features__grid h3 { margin-bottom:.55rem; color:#063e22; font-size:1.15rem; }
.faphb-access-features__grid p { margin:0; color:#4b5a51; font-size:.92rem; }
.faphb-access-principles { padding-block:clamp(4rem,7vw,6.5rem); background:#032f1a; color:#fff; }
.faphb-access-principles__inner { display:grid; grid-template-columns:.85fr 1.15fr; gap:clamp(2rem,7vw,6rem); align-items:start; }
.faphb-access-principles h2 { max-width:14ch; color:#fff; font-size:clamp(2.1rem,4vw,3.5rem); line-height:1.08; }
.faphb-access-principles p { color:rgba(255,255,255,.82); }
.faphb-access-principles ol { display:grid; gap:.75rem; margin:0; padding:0; list-style:none; }
.faphb-access-principles li { display:grid; grid-template-columns:auto 1fr; gap:1rem; padding:1rem; border:1px solid rgba(255,255,255,.18); border-radius:.65rem; background:rgba(255,255,255,.06); }
.faphb-access-principles li > span { color:#f4c400; font-weight:900; }
.faphb-access-principles li strong { color:#fff; font-size:1.1rem; }
.faphb-access-principles li p { margin:.2rem 0 0; font-size:.9rem; }
.faphb-access-limits__grid { display:grid; grid-template-columns:.85fr 1.15fr; gap:clamp(2rem,6vw,5rem); align-items:center; }
.faphb-access-limits figure { min-height:490px; margin:0; overflow:hidden; border-radius:1rem; }
.faphb-access-limits img { width:100%; height:100%; min-height:490px; object-fit:cover; }
.faphb-access-limits ul { display:grid; gap:.65rem; padding-left:1.2rem; }
.faphb-access-feedback { padding-block:clamp(4rem,7vw,6rem); background:#f4c400; }
.faphb-access-feedback__inner { display:grid; grid-template-columns:1fr 1fr; gap:clamp(2rem,6vw,5rem); align-items:center; }
.faphb-access-feedback h2 { max-width:15ch; margin:0 0 1rem; color:#082e1c; font-size:clamp(2.2rem,4vw,3.5rem); line-height:1.08; }
.faphb-access-feedback__contacts { display:grid; gap:.7rem; }
.faphb-access-feedback__contacts a { display:grid; grid-template-columns:auto 1fr; column-gap:.9rem; align-items:center; min-height:76px; padding:1rem; border-radius:.65rem; background:#073c23; color:#fff!important; text-decoration:none; }
.faphb-access-feedback__contacts a > span { grid-row:1/3; font-size:1.35rem; }
.faphb-access-feedback__contacts strong,.faphb-access-feedback__contacts small { display:block; }
.faphb-access-feedback__contacts small { color:rgba(255,255,255,.82); }
.faphb-access-tech { padding-block:2rem; background:#e8f0eb; }
.faphb-access-tech .faphb-container { display:grid; gap:.3rem; }
.faphb-access-tech p { margin:0; color:#405047; font-size:.88rem; }
@media (max-width:900px) { .faphb-access-hero__inner,.faphb-access-status__grid,.faphb-access-principles__inner,.faphb-access-limits__grid,.faphb-access-feedback__inner { grid-template-columns:1fr; } .faphb-access-features__grid { grid-template-columns:repeat(2,1fr); } }
@media (max-width:620px) { .faphb-access-features__grid { grid-template-columns:1fr; } .faphb-access-hero figure,.faphb-access-hero figure img,.faphb-access-limits figure,.faphb-access-limits img { min-height:330px; } .faphb-access-hero__actions { align-items:stretch; flex-direction:column; } }

/* Dedicated actions page */
.faphb-actions-hero { position:relative; overflow:hidden; padding-block:clamp(5rem,9vw,8rem); background-image:linear-gradient(90deg,rgba(2,43,24,.97),rgba(3,65,36,.82) 53%,rgba(3,65,36,.32)),url('assets/images/hero-autonomisation.webp'); background-position:center; background-size:cover; color:#fff; }
.faphb-actions-hero h1 { max-width:14ch; margin:0 0 1.2rem; color:#fff; font-size:clamp(3rem,6vw,5.4rem); line-height:.98; }
.faphb-actions-hero p:not(.faphb-eyebrow) { max-width:62ch; color:rgba(255,255,255,.88); font-size:1.12rem; }
.faphb-actions-hero__links { display:flex; flex-wrap:wrap; gap:.8rem; margin-top:1.7rem; }
.faphb-actions-overview { padding-block:clamp(4rem,7vw,6rem); background:#f4c400; color:#082e1c; }
.faphb-actions-overview__grid { display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); gap:clamp(3rem,8vw,7rem); align-items:center; }
.faphb-actions-overview__heading { padding-right:clamp(0rem,3vw,3rem); border-right:1px solid rgba(8,46,28,.28); }
.faphb-actions-overview__heading .faphb-eyebrow { margin-bottom:1rem; color:#714f00; }
.faphb-actions-overview h2 { max-width:13ch; margin:0; color:#082e1c; font-size:clamp(2.5rem,4.5vw,4.2rem); line-height:1.02; letter-spacing:-.025em; }
.faphb-actions-overview__content > p { max-width:58ch; margin:0; color:#173c29; font-size:clamp(1rem,1.35vw,1.16rem); font-weight:600; line-height:1.7; text-transform:none; letter-spacing:normal; }
.faphb-actions-overview__stats { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1rem; margin-top:2rem; }
.faphb-actions-overview__stats p { min-height:150px; margin:0; padding:1.25rem; border:1px solid rgba(8,46,28,.2); border-radius:.7rem; background:rgba(255,255,255,.3); }
.faphb-actions-overview__stats strong,.faphb-actions-overview__stats span { display:block; }
.faphb-actions-overview__stats strong { color:#082e1c; font-size:clamp(2.4rem,4vw,3.5rem); line-height:1; }
.faphb-actions-overview__stats span { margin-top:.75rem; color:#213c2d; font-size:.82rem; font-weight:800; line-height:1.35; text-transform:none; letter-spacing:normal; }
.faphb-actions-domains { background:#f4f8f5; }
.faphb-actions-domains__grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1rem; }
.faphb-actions-domains__grid article { position:relative; padding:1.6rem; border:1px solid #d6e3da; border-radius:.8rem; background:#fff; box-shadow:0 12px 28px rgba(3,49,27,.06); }
.faphb-actions-domains__grid article > span { position:absolute; top:1.2rem; right:1.2rem; color:#6a796f; font-size:.78rem; font-weight:850; }
.faphb-actions-domains__grid article > div { display:grid; width:54px; height:54px; place-items:center; margin-bottom:1.2rem; border-radius:15px; background:#e3f1e7; color:#07572f; font-size:1.35rem; font-weight:900; }
.faphb-actions-domains__grid article:nth-child(2n) > div { background:#fff1c4; color:#735700; }
.faphb-actions-domains__grid h3 { color:#063e22; font-size:1.25rem; }
.faphb-actions-domains__grid p { color:#4b5a51; font-size:.92rem; }
.faphb-actions-domains__grid ul { display:grid; gap:.35rem; margin:1rem 0 0; padding-left:1.15rem; color:#33463b; font-size:.83rem; }
.faphb-actions-story { padding-block:clamp(4rem,7vw,6.5rem); }
.faphb-actions-story--reverse { background:#edf4ef; }
.faphb-actions-story__grid { display:grid; grid-template-columns:1fr 1fr; gap:clamp(2rem,7vw,6rem); align-items:center; }
.faphb-actions-story--reverse figure { order:2; }
.faphb-actions-story figure { position:relative; min-height:520px; margin:0; overflow:hidden; border-radius:1rem; box-shadow:0 22px 50px rgba(3,49,27,.15); }
.faphb-actions-story img { width:100%; height:100%; min-height:520px; object-fit:cover; }
.faphb-actions-story figcaption { position:absolute; right:1rem; bottom:1rem; left:1rem; padding:.75rem 1rem; border-radius:.5rem; background:rgba(2,47,26,.9); color:#fff; font-weight:750; }
.faphb-actions-story h2 { color:var(--faphb-green-dark); font-size:clamp(2rem,4vw,3.3rem); line-height:1.08; }
.faphb-actions-story ul { display:grid; gap:.45rem; padding-left:1.2rem; }
.faphb-text-link { display:inline-flex; min-height:44px; align-items:center; gap:.45rem; margin-top:1rem; color:var(--faphb-green-dark); font-weight:850; }
.faphb-actions-results { padding-block:clamp(4rem,7vw,6rem); background:#032f1a; color:#fff; }
.faphb-actions-results header { max-width:760px; margin-bottom:2.5rem; }
.faphb-actions-results h2 { color:#fff; font-size:clamp(2.2rem,4vw,3.6rem); }
.faphb-actions-results ol { display:grid; grid-template-columns:repeat(4,1fr); gap:1rem; margin:0; padding:0; list-style:none; }
.faphb-actions-results li { padding:1.3rem; border:1px solid rgba(255,255,255,.18); border-radius:.65rem; background:rgba(255,255,255,.06); }
.faphb-actions-results li > span { display:grid; width:38px; height:38px; place-items:center; margin-bottom:1rem; border-radius:50%; background:#f4c400; color:#082e1c; font-weight:900; }
.faphb-actions-results strong { color:#fff; font-size:1.1rem; }
.faphb-actions-results li p { margin:.4rem 0 0; color:rgba(255,255,255,.82); font-size:.88rem; }
.faphb-actions-partner { padding-block:clamp(4rem,7vw,6rem); background:#8e201f; color:#fff; }
.faphb-actions-partner__inner { display:grid; grid-template-columns:.9fr 1.1fr; gap:clamp(2rem,6vw,5rem); align-items:center; }
.faphb-actions-partner figure { min-height:390px; margin:0; overflow:hidden; border-radius:1rem; }
.faphb-actions-partner img { width:100%; height:100%; min-height:390px; object-fit:cover; }
.faphb-actions-partner h2 { max-width:16ch; color:#fff; font-size:clamp(2.2rem,4vw,3.5rem); line-height:1.08; }
.faphb-actions-partner p { color:rgba(255,255,255,.84); }
.faphb-actions-partner__inner > div > div { display:flex; flex-wrap:wrap; align-items:center; gap:1rem; margin-top:1.5rem; }
.faphb-actions-partner__inner > div > div > a:not(.faphb-button) { color:#fff; font-weight:800; }
@media (max-width:900px) { .faphb-actions-overview__grid,.faphb-actions-story__grid,.faphb-actions-partner__inner { grid-template-columns:1fr; } .faphb-actions-overview__heading { padding-right:0; padding-bottom:2rem; border-right:0; border-bottom:1px solid rgba(8,46,28,.28); } .faphb-actions-domains__grid { grid-template-columns:repeat(2,1fr); } .faphb-actions-results ol { grid-template-columns:repeat(2,1fr); } .faphb-actions-story--reverse figure { order:0; } }
@media (max-width:620px) { .faphb-actions-domains__grid,.faphb-actions-results ol,.faphb-actions-overview__stats { grid-template-columns:1fr; } .faphb-actions-overview__stats p { min-height:0; } .faphb-actions-story figure,.faphb-actions-story img,.faphb-actions-partner figure,.faphb-actions-partner img { min-height:330px; } .faphb-actions-hero__links { align-items:stretch; flex-direction:column; } }

.faphb-home {
  overflow: hidden;
}

.faphb-slider {
  position: relative;
  min-height: 720px;
  overflow: hidden;
  background: #032f1a;
  color: var(--faphb-white);
}

.faphb-slide {
  position: absolute;
  inset: 0;
  z-index: 0;
  display: grid;
  min-height: 720px;
  visibility: hidden;
  opacity: 0;
  background-image: linear-gradient(90deg, rgba(2, 34, 19, .96) 0%, rgba(2, 34, 19, .82) 43%, rgba(2, 34, 19, .2) 78%), var(--slide-image);
  background-position: center;
  background-size: cover;
  clip-path: ellipse(0% 115% at 0% 50%);
  transform: scale(1.018);
  transition: opacity .28s ease, visibility .28s ease;
}

.faphb-slide.is-active {
  z-index: 1;
  visibility: visible;
  opacity: 1;
  animation: faphb-wave-reveal .72s cubic-bezier(.22,.72,.2,1) both;
}

.faphb-slide::after { position: absolute; z-index: 0; top: -15%; bottom: -15%; left: -22%; width: 18%; transform: rotate(7deg); background: linear-gradient(90deg,transparent,rgba(113,213,233,.2),rgba(255,255,255,.32),transparent); filter: blur(7px); content: ""; opacity: 0; pointer-events: none; }
.faphb-slide.is-active::after { animation: faphb-wave-shimmer .85s ease-out both; }

@keyframes faphb-wave-reveal {
  0% { clip-path: ellipse(0% 115% at 0% 50%); transform: scale(1.025); }
  58% { clip-path: ellipse(88% 125% at 18% 50%); }
  100% { clip-path: ellipse(155% 135% at 28% 50%); transform: scale(1); }
}

@keyframes faphb-wave-shimmer {
  0% { left: -22%; opacity: 0; }
  22% { opacity: 1; }
  100% { left: 118%; opacity: 0; }
}

.faphb-slide__inner {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
  padding-block: 6rem 8rem;
}

.faphb-slide__content {
  max-width: 720px;
}

.faphb-slide.is-active .faphb-slide__content { animation: faphb-slide-content-in .48s .16s ease-out both; }

@keyframes faphb-slide-content-in {
  from { opacity: 0; transform: translate3d(28px,12px,0); }
  to { opacity: 1; transform: translate3d(0,0,0); }
}

.faphb-slide h1,
.faphb-slide h2 {
  max-width: 13ch;
  margin: 0 0 1.35rem;
  color: var(--faphb-white);
  font-size: clamp(2.7rem, 6vw, 5.3rem);
  line-height: .98;
  letter-spacing: -.045em;
}

.faphb-slide__content > p:not(.faphb-eyebrow) {
  max-width: 62ch;
  margin-bottom: 2rem;
  color: rgba(255,255,255,.9);
  font-size: clamp(1.05rem, 1.8vw, 1.24rem);
}

.faphb-slider__controls {
  position: absolute;
  z-index: 4;
  right: 0;
  bottom: 2rem;
  left: 0;
  display: flex;
  align-items: center;
  gap: .75rem;
}

.faphb-slider__arrow,
.faphb-slider__pause {
  min-width: 44px;
  min-height: 44px;
  border: 1px solid rgba(255,255,255,.55);
  border-radius: 50%;
  background: rgba(3,47,26,.7);
  color: #fff;
  font-weight: 800;
}

.faphb-slider__pause {
  width: auto;
  padding-inline: 1rem;
  border-radius: 2rem;
}

.faphb-slider__dots {
  display: flex;
  gap: .55rem;
}

.faphb-slider__dots button {
  width: 11px;
  height: 11px;
  padding: 0;
  border: 2px solid #fff;
  border-radius: 50%;
  background: transparent;
}

.faphb-slider__dots button.is-active {
  background: var(--faphb-yellow);
  border-color: var(--faphb-yellow);
}

.faphb-impact {
  position: relative;
  z-index: 5;
  padding-block: clamp(2.5rem,5vw,4.5rem);
  overflow: hidden;
  background: linear-gradient(125deg,#032f1a 0%,#075f37 100%);
  color: #fff;
}

.faphb-impact::before { position: absolute; top: -160px; right: -90px; width: 420px; height: 420px; border: 1px solid rgba(255,255,255,.1); border-radius: 50%; content: ""; }
.faphb-impact__inner { position: relative; display: grid; grid-template-columns: minmax(240px,.62fr) minmax(0,1.38fr); gap: clamp(2rem,5vw,4rem); align-items: center; }
.faphb-impact__heading .faphb-eyebrow { color: var(--faphb-yellow); }
.faphb-impact__heading h2 { max-width: 14ch; margin: 0; color: #fff; font-size: clamp(1.8rem,3vw,2.75rem); line-height: 1.08; }

.faphb-impact__grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: .8rem;
}

.faphb-impact__grid > div {
  display: flex;
  min-height: 175px;
  align-items: flex-start;
  justify-content: space-between;
  flex-direction: column;
  padding: 1.35rem;
  border: 1px solid rgba(255,255,255,.14);
  border-radius: .65rem;
  background: rgba(255,255,255,.08);
  backdrop-filter: blur(5px);
  transition: transform .22s ease,background .22s ease;
}

.faphb-impact__grid > div:hover { transform: translateY(-5px); background: rgba(255,255,255,.13); }
.faphb-impact__icon { display: grid; width: 42px; height: 42px; place-items: center; border-radius: 13px; background: var(--faphb-yellow); color: var(--faphb-green-dark); }
.faphb-impact__icon svg { width: 23px; height: 23px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.faphb-impact__grid p { display: grid; margin: 1.1rem 0 0; }
.faphb-impact strong { color: #fff; font-size: clamp(2.1rem,3vw,3rem); line-height: 1; }
.faphb-impact__grid p span { margin-top: .45rem; color: rgba(255,255,255,.72); font-size: .82rem; font-weight: 700; line-height: 1.3; }

.faphb-about__grid {
  display: grid;
  grid-template-columns: minmax(320px,.9fr) minmax(0,1.1fr);
  gap: clamp(3rem,7vw,7rem);
  align-items: center;
}

.faphb-about__visual {
  position: relative;
  display: flex;
  min-height: 500px;
  flex-direction: column;
  justify-content: flex-end;
  padding: 2.5rem;
  overflow: hidden;
  border-radius: .5rem;
  background: linear-gradient(145deg, var(--faphb-green-dark), var(--faphb-green));
  color: #fff;
}

.faphb-about__visual::before,
.faphb-about__visual::after {
  position: absolute;
  border: 2rem solid rgba(244,196,0,.2);
  border-radius: 50%;
  content: "";
}
.faphb-about__visual::before { width: 26rem; height: 26rem; top: -9rem; right: -8rem; }
.faphb-about__visual::after { width: 12rem; height: 12rem; top: 5rem; left: -5rem; }
.faphb-about__visual span,.faphb-about__visual strong { position: relative; z-index: 1; }
.faphb-about__visual span { color: var(--faphb-yellow); font-size: 4rem; font-weight: 900; }
.faphb-about__visual strong { max-width: 18ch; font-size: 1.6rem; line-height: 1.2; }
.faphb-lead { color: var(--faphb-green-dark); font-size: 1.22rem; font-weight: 600; }
.faphb-checks { display: grid; gap: .7rem; padding: 0; list-style: none; }
.faphb-checks li { position: relative; padding-left: 1.9rem; font-weight: 700; }
.faphb-checks li::before { position: absolute; left: 0; color: var(--faphb-green); content: "✓"; font-weight: 900; }

.faphb-card { transition: transform .25s ease, box-shadow .25s ease; }
.faphb-card:hover { transform: translateY(-6px); box-shadow: 0 20px 48px rgba(10,45,27,.15); }
.faphb-card a { color: var(--faphb-green-dark); font-weight: 800; }

.faphb-president { position: relative; padding-block: clamp(4rem,7vw,6.5rem); overflow: hidden; background: linear-gradient(120deg,#022d19,#075b34); color: #fff; }
.faphb-president::after { position: absolute; top: -180px; right: -130px; width: 520px; height: 520px; border: 1px solid rgba(255,255,255,.1); border-radius: 50%; content: ""; }
.faphb-president__message { position: relative; z-index: 1; display: grid; grid-template-columns: minmax(250px,.64fr) minmax(0,1.36fr); gap: clamp(2rem,6vw,6rem); align-items: center; }
.faphb-president__portrait { position: relative; margin: 0; overflow: hidden; border: 1px solid rgba(255,255,255,.22); border-radius: 1rem; background: #e9e8e4; box-shadow: 0 24px 50px rgba(0,0,0,.22); }
.faphb-president__portrait::after { position: absolute; right: 0; bottom: 0; left: 0; height: 32%; background: linear-gradient(transparent,rgba(2,38,21,.78)); content: ""; pointer-events: none; }
.faphb-president__portrait img { display: block; width: 100%; height: 470px; object-fit: cover; object-position: center top; }
.faphb-president__portrait figcaption { position: absolute; z-index: 1; right: 1rem; bottom: .9rem; left: 1rem; color: rgba(255,255,255,.9); font-size: .82rem; font-weight: 700; line-height: 1.35; }
.faphb-president__content { min-width: 0; }
.faphb-president__heading { padding-top: .5rem; }
.faphb-president__heading .faphb-eyebrow { color: var(--faphb-yellow); }
.faphb-president__heading h2 { max-width: 20ch; margin: 0; color: #fff; font-size: clamp(1.8rem,3vw,2.8rem); line-height: 1.12; }
.faphb-president__quote { position: relative; padding-top: 2.2rem; }
.faphb-president__mark { position: absolute; top: -2rem; left: -.15rem; color: rgba(255,204,0,.3); font-family: Georgia,serif; font-size: 9rem; line-height: 1; }
.faphb-president__quote blockquote { position: relative; max-width: 64ch; margin: 0 0 1.25rem; color: #fff; font-size: clamp(1.15rem,2vw,1.45rem); font-weight: 650; line-height: 1.65; }
.faphb-president__quote > p { max-width: 68ch; color: rgba(255,255,255,.72); line-height: 1.7; }
.faphb-president__signature { display: flex; align-items: center; gap: 1.2rem; padding-top: 1.7rem; border-top: 1px solid rgba(255,255,255,.16); }
.faphb-president__line { width: 42px; height: 3px; flex: 0 0 42px; background: var(--faphb-yellow); }
.faphb-president__signature > div { display: grid; margin-right: auto; }
.faphb-president__signature strong { color: #fff; font-size: 1.05rem; }
.faphb-president__signature small { color: rgba(255,255,255,.65); }
.faphb-president__signature > a { color: var(--faphb-yellow); font-weight: 800; text-decoration: none; }

.faphb-whatsapp { position: fixed; z-index: 100; right: 1.25rem; bottom: 1.25rem; display: inline-flex; min-height: 52px; align-items: center; gap: .6rem; padding: .65rem 1rem; border: 2px solid #fff; border-radius: 999px; background: #168b48; color: #fff !important; box-shadow: 0 10px 30px rgba(0,0,0,.24); font-weight: 850; text-decoration: none; transition: transform .2s ease,background .2s ease; }
.faphb-whatsapp:hover { transform: translateY(-3px); background: #0d7038; }
.faphb-whatsapp:focus-visible { outline: 3px solid var(--faphb-yellow); outline-offset: 3px; }
.faphb-whatsapp > span:first-child { font-size: 1.15rem; }

.faphb-donate-hero { padding-block: clamp(3.5rem,6vw,6rem); background: linear-gradient(125deg,#022f1a,#07643a); color: #fff; }
.faphb-donate-hero__inner { display: grid; grid-template-columns: minmax(0,.88fr) minmax(440px,1.12fr); gap: clamp(2.5rem,6vw,5rem); align-items: center; }
.faphb-donate-hero h1 { max-width: 11ch; margin: 0 0 1.2rem; color: #fff; font-size: clamp(3rem,6vw,5.3rem); line-height: .98; }
.faphb-donate-hero__content > p:not(.faphb-eyebrow) { max-width: 58ch; color: rgba(255,255,255,.82); font-size: 1.1rem; line-height: 1.7; }
.faphb-donate-hero__actions { display: flex; flex-wrap: wrap; gap: .8rem; margin-top: 1.7rem; }
.faphb-donate-trust { display: flex; flex-wrap: wrap; gap: .55rem 1rem; margin-top: 1.4rem; color: rgba(255,255,255,.78); font-size: .82rem; font-weight: 750; }
.faphb-donate-trust { margin-bottom: 0; padding: 0; list-style: none; }
.faphb-donate-trust li { display: inline-flex; align-items: center; gap: .45rem; }
.faphb-donate-trust li::before { color: var(--faphb-yellow); content: "✓"; font-weight: 900; }
.faphb-donate-trust span::first-letter { color: var(--faphb-yellow); }
.faphb-donate-hero__visual { position: relative; min-height: 520px; margin: 0; overflow: hidden; border-radius: 1rem; box-shadow: 0 25px 60px rgba(0,0,0,.28); }
.faphb-donate-hero__visual::after { position: absolute; inset: 50% 0 0; background: linear-gradient(transparent,rgba(1,35,19,.88)); content: ""; }
.faphb-donate-hero__visual img { width: 100%; height: 100%; min-height: 520px; object-fit: cover; }
.faphb-donate-hero__visual figcaption { position: absolute; z-index: 1; right: 1.6rem; bottom: 1.5rem; left: 1.6rem; display: grid; color: #fff; }
.faphb-donate-hero__visual figcaption strong { font-size: 1.35rem; }
.faphb-donate-hero__visual figcaption span { color: rgba(255,255,255,.78); }
.faphb-donate-use { background: #fff; }
.faphb-donate-choice { position: relative; z-index: 2; padding-block: clamp(3.5rem,7vw,6rem); background: #f5f8f6; }
.faphb-donate-choice__heading { max-width: 760px; margin-bottom: 2rem; }
.faphb-donate-choice__heading h2 { margin: 0 0 .8rem; color: var(--faphb-green-dark); font-size: clamp(2rem,4vw,3.25rem); line-height: 1.1; }
.faphb-donate-choice__heading p:last-child { max-width: 61ch; color: var(--faphb-muted); }
.faphb-donate-choice__grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 1rem; }
.faphb-donate-choice__card { display: grid; min-height: 250px; align-content: start; justify-items: start; padding: 1.6rem; border: 1px solid #d5e2da; border-radius: .8rem; background: #fff; color: var(--faphb-ink); box-shadow: 0 12px 30px rgba(4,49,28,.06); cursor: pointer; font: inherit; text-align: left; transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease, background .22s ease; }
.faphb-donate-choice__card:hover,.faphb-donate-choice__card:focus-visible,.faphb-donate-choice__card.is-selected { border-color: var(--faphb-green); background: #fbfefc; box-shadow: 0 20px 40px rgba(4,79,39,.14); transform: translateY(-5px); }
.faphb-donate-choice__icon { display: grid; width: 52px; height: 52px; place-items: center; margin-bottom: 1.3rem; border-radius: 16px; background: #e4f1e8; color: var(--faphb-green-dark); font-size: 1.45rem; font-weight: 900; }
.faphb-donate-choice__card:nth-child(2) .faphb-donate-choice__icon { background: #fff1d8; color: #8a6200; }
.faphb-donate-choice__card:nth-child(3) .faphb-donate-choice__icon { background: #f8e3e2; color: #9f2725; }
.faphb-donate-choice__card strong { color: var(--faphb-green-dark); font-size: 1.18rem; }
.faphb-donate-choice__card small { min-height: 3.2em; margin-top: .45rem; color: var(--faphb-muted); font-size: .92rem; line-height: 1.55; }
.faphb-donate-choice__select { display: inline-flex; gap: .5rem; align-items: center; margin-top: auto; padding-top: 1.2rem; color: var(--faphb-green-dark); font-size: .9rem; font-weight: 850; }
.faphb-donate-choice__select b { font-size: 1.2rem; transition: transform .2s ease; }
.faphb-donate-choice__card:hover .faphb-donate-choice__select b,.faphb-donate-choice__card.is-selected .faphb-donate-choice__select b { transform: translateX(4px); }
.faphb-donate-choice__notice { min-height: 1.65em; margin: 1.1rem 0 0; color: var(--faphb-green-dark); font-size: .93rem; font-weight: 700; }
.faphb-donate-impact { display: grid; grid-template-columns: repeat(3,1fr); gap: 1.25rem; }
.faphb-donate-impact article { padding: 2rem; border: 1px solid #dbe6df; border-top: 5px solid var(--faphb-green); border-radius: .6rem; background: #f7faf8; box-shadow: 0 12px 30px rgba(4,49,28,.07); }
.faphb-donate-impact article:nth-child(2) { border-top-color: var(--faphb-red); }
.faphb-donate-impact article:nth-child(3) { border-top-color: #c59600; }
.faphb-donate-impact__icon { display: grid; width: 52px; height: 52px; place-items: center; margin-bottom: 1.3rem; border-radius: 15px; background: var(--faphb-green-dark); color: #fff; font-size: 1.35rem; }
.faphb-donate-impact article > span { color: var(--faphb-red); font-size: .76rem; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.faphb-donate-impact h3 { color: var(--faphb-green-dark); }
.faphb-donate-ways { padding-block: clamp(4rem,7vw,6rem); background: #eef5f0; }
.faphb-donate-ways__inner { display: grid; grid-template-columns: minmax(260px,.75fr) minmax(0,1.25fr); gap: clamp(2rem,7vw,6rem); align-items: center; }
.faphb-donate-ways h2 { max-width: 13ch; color: var(--faphb-green-dark); font-size: clamp(2.2rem,4vw,3.5rem); }
.faphb-donate-ways__list { display: grid; gap: .8rem; }
.faphb-donate-ways__list article { display: flex; gap: 1.2rem; align-items: flex-start; padding: 1.35rem; border: 1px solid #d3e1d8; border-radius: .55rem; background: #fff; }
.faphb-donate-ways__list article > span { display: grid; width: 44px; height: 44px; flex: 0 0 44px; place-items: center; border-radius: 50%; background: #e5f2e9; color: var(--faphb-green-dark); font-weight: 900; }
.faphb-donate-ways__list h3 { margin: 0; color: var(--faphb-green-dark); }
.faphb-donate-ways__list p { margin: .25rem 0 0; color: var(--faphb-muted); }
.faphb-donate-process { background: #fff; }
.faphb-donate-process ol { display: grid; grid-template-columns: repeat(3,1fr); gap: 1rem; margin: 0; padding: 0; list-style: none; counter-reset: none; }
.faphb-donate-process li { position: relative; display: flex; gap: 1rem; padding: 1.5rem; border-bottom: 3px solid #dce8e0; }
.faphb-donate-process li > span { display: grid; width: 42px; height: 42px; flex: 0 0 42px; place-items: center; border-radius: 50%; background: var(--faphb-yellow); color: var(--faphb-green-dark); font-weight: 900; }
.faphb-donate-process h3 { margin: .35rem 0 .4rem; color: var(--faphb-green-dark); font-size: 1.15rem; }
.faphb-donate-process p { margin: 0; color: var(--faphb-muted); }
.faphb-donate-contact { padding-block: clamp(4rem,7vw,6rem); background: #8e201f; color: #fff; }
.faphb-donate-contact__inner { display: grid; grid-template-columns: 1.2fr .8fr; gap: clamp(2rem,7vw,6rem); align-items: center; }
.faphb-donate-contact__heading { max-width: 760px; margin-bottom: 2rem; }
.faphb-donate-contact h2 { max-width: 18ch; color: #fff; font-size: clamp(2.2rem,4vw,3.5rem); }
.faphb-donate-contact__heading > p:last-child { max-width: 67ch; color: rgba(255,255,255,.82); }
.faphb-donate-bank-grid { display: grid; grid-template-columns: repeat(2,1fr); gap: 1rem; }
.faphb-donate-bank { padding: 1.5rem; border: 1px solid rgba(255,255,255,.22); border-radius: .8rem; background: rgba(255,255,255,.09); box-shadow: 0 14px 34px rgba(46,8,8,.18); }
.faphb-donate-bank__top { display: grid; gap: .25rem; margin-bottom: 1.25rem; padding-bottom: 1rem; border-bottom: 1px solid rgba(255,255,255,.18); }
.faphb-donate-bank__top span { color: #ffe072; font-size: .75rem; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
.faphb-donate-bank__top strong { color: #fff; font-size: 1.25rem; }
.faphb-donate-bank dl { display: grid; gap: .85rem; margin: 0; }
.faphb-donate-bank dl > div { display: grid; gap: .2rem; }
.faphb-donate-bank dt { color: rgba(255,255,255,.7); font-size: .77rem; font-weight: 750; letter-spacing: .06em; text-transform: uppercase; }
.faphb-donate-bank dd { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; margin: 0; color: #fff; font-size: .95rem; font-weight: 700; overflow-wrap: anywhere; }
.faphb-donate-bank code { padding: .2rem .35rem; border-radius: .25rem; background: rgba(0,0,0,.18); color: #fff; font: 700 .88rem/1.45 ui-monospace,SFMono-Regular,Consolas,monospace; overflow-wrap: anywhere; }
.faphb-donate-bank button { padding: .28rem .55rem; border: 1px solid rgba(255,255,255,.5); border-radius: .25rem; background: transparent; color: #fff; font: inherit; font-size: .78rem; font-weight: 800; cursor: pointer; }
.faphb-donate-bank button:hover { background: #fff; color: #8e201f; }
.faphb-donate-contact__footer { display: flex; align-items: center; justify-content: space-between; gap: 2rem; margin-top: 1.5rem; padding-top: 1.5rem; border-top: 1px solid rgba(255,255,255,.2); }
.faphb-donate-contact__footer > div:first-child { display: grid; gap: .25rem; max-width: 620px; }
.faphb-donate-contact__footer > div:first-child span { color: rgba(255,255,255,.8); font-size: .92rem; }
.faphb-donate-contact__actions { display: grid; gap: .8rem; }
.faphb-donate-contact__assurance { display: flex; flex-wrap: wrap; gap: .5rem 1rem; color: rgba(255,255,255,.78); font-size: .9rem; font-weight: 750; }
.faphb-donate-contact__assurance span::before { margin-right: .45rem; color: #ffe072; content: "✓"; }
.faphb-donate-contact__method { display: flex; align-items: center; gap: .8rem; padding: .85rem; border: 1px solid rgba(255,255,255,.2); border-radius: .5rem; background: rgba(255,255,255,.08); color: #fff !important; text-decoration: none; }
.faphb-donate-contact__method > span { display: grid; width: 38px; height: 38px; flex: 0 0 38px; place-items: center; border-radius: 50%; background: rgba(255,255,255,.14); }
.faphb-donate-contact__method > div { display: grid; }
.faphb-donate-contact__method small { color: rgba(255,255,255,.65); }
.faphb-donate-contact__method strong { overflow-wrap: anywhere; }
.faphb-donate-faq { padding-block: clamp(4rem,7vw,6rem); background: #f6f3ee; }
.faphb-donate-faq__inner { display: grid; grid-template-columns: minmax(250px,.65fr) minmax(0,1.35fr); gap: clamp(2rem,7vw,6rem); }
.faphb-donate-faq h2 { color: var(--faphb-green-dark); font-size: clamp(2.2rem,4vw,3.4rem); }
.faphb-donate-faq details { border-bottom: 1px solid #cfdad3; }
.faphb-donate-faq summary { padding: 1.2rem 2rem 1.2rem 0; color: var(--faphb-green-dark); font-size: 1.08rem; font-weight: 850; cursor: pointer; }
.faphb-donate-faq details p { margin-top: 0; color: var(--faphb-muted); }

.faphb-album-hero { position: relative; overflow: hidden; padding-block: clamp(4.5rem,9vw,7.5rem); background-image:linear-gradient(90deg,rgba(2,47,26,.96) 0%,rgba(4,80,45,.84) 55%,rgba(4,80,45,.45) 100%),url('assets/images/hero-equipe-faphb.jpg'); background-position:center,center 40%; background-size:cover; color: #fff; }
.faphb-album-hero::after { position: absolute; right: -9rem; bottom: -12rem; width: 35rem; height: 35rem; border: 3.5rem solid rgba(244,196,0,.13); border-radius: 50%; content: ""; }
.faphb-album-hero > div { position: relative; z-index: 1; }
.faphb-album-hero h1 { max-width: 14ch; margin: 0 0 1.15rem; color: #fff; font-size: clamp(2.7rem,6vw,5rem); line-height: .98; }
.faphb-album-hero p:not(.faphb-eyebrow) { max-width: 62ch; margin-bottom: 2rem; color: rgba(255,255,255,.85); font-size: 1.12rem; }
.faphb-album-hero .faphb-button { width: auto; }
.faphb-album-gallery { background: #f5f8f6; }
.faphb-album-gallery__heading { display: flex; align-items: end; justify-content: space-between; gap: 2rem; margin-bottom: 2.5rem; }
.faphb-album-gallery__heading h2 { margin: 0; color: var(--faphb-green-dark); font-size: clamp(2rem,4vw,3.2rem); line-height: 1.1; }
.faphb-album-gallery__heading > p { margin: 0; color: var(--faphb-muted); font-size: .95rem; }
.faphb-album-gallery__heading strong { color: var(--faphb-green-dark); font-size: 1.45rem; }
.faphb-album-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 1rem; }
.faphb-album-card { position: relative; min-height: 215px; padding: 0; overflow: hidden; border: 0; border-radius: .65rem; background: #dce6df; cursor: pointer; }
.faphb-album-card img { display: block; width: 100%; height: 100%; min-height: 215px; object-fit: cover; transition: transform .35s ease,filter .35s ease; }
.faphb-album-card > span { position: absolute; inset: 0; display: flex; align-items: end; justify-content: space-between; padding: 1rem; background: linear-gradient(transparent 45%,rgba(1,38,20,.84)); color: #fff; opacity: 0; transition: opacity .25s ease; }
.faphb-album-card > span b { font-size: .85rem; }
.faphb-album-card > span i { display: grid; width: 35px; height: 35px; place-items: center; border-radius: 50%; background: var(--faphb-yellow); color: var(--faphb-green-dark); font-size: 1.15rem; font-style: normal; }
.faphb-album-card:hover img,.faphb-album-card:focus-visible img { filter: saturate(1.08); transform: scale(1.06); }
.faphb-album-card:hover > span,.faphb-album-card:focus-visible > span { opacity: 1; }
.faphb-album-empty { padding: 2rem; border-radius: .6rem; background: #fff; text-align: center; }
.faphb-album-open { overflow: hidden; }
.faphb-album-modal { position: fixed; z-index: 1000; inset: 0; display: grid; place-items: center; padding: 1rem; }
.faphb-album-modal[hidden] { display: none; }
.faphb-album-modal__backdrop { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; background: transparent; cursor: default; }
.faphb-album-modal__content { position: relative; z-index: 1; display: grid; max-width: min(1100px,100%); max-height: calc(100vh - 2rem); gap: .65rem; }
.faphb-album-modal__content img { max-width: 100%; max-height: calc(100vh - 6rem); margin-inline: auto; border-radius: .35rem; object-fit: contain; }
.faphb-album-modal__content p { margin: 0; color: #fff; font-size: .9rem; text-align: center; }
.faphb-album-modal__close { position: absolute; z-index: 2; top: .6rem; right: .6rem; display: grid; width: 42px; height: 42px; place-items: center; border: 0; border-radius: 50%; background: #fff; color: var(--faphb-green-dark); font-size: 1.8rem; line-height: 1; cursor: pointer; }
.faphb-album-modal__nav { position: absolute; z-index: 2; top: calc(50% - 26px); display: grid; width: 52px; height: 52px; place-items: center; padding: 0; border: 0; border-radius: 50%; background: #fff; color: var(--faphb-green-dark); box-shadow: 0 4px 16px rgba(0,0,0,.2); font-size: 3rem; font-weight: 400; line-height: .7; cursor: pointer; }
.faphb-album-modal__nav:hover { background: var(--faphb-yellow); }
.faphb-album-modal__nav--previous { left: 1rem; }
.faphb-album-modal__nav--next { right: 1rem; }

.faphb-org-hero { position: relative; overflow: hidden; padding-block: clamp(4.5rem,9vw,7.5rem); background-image:linear-gradient(90deg,rgba(2,47,26,.97) 0%,rgba(3,66,37,.86) 52%,rgba(3,66,37,.38) 100%),url('assets/images/hero-plaidoyer.webp'); background-position:center; background-size:cover; color: #fff; }
.faphb-org-hero::after { position: absolute; right: -8rem; bottom: -10rem; width: 34rem; height: 34rem; border: 3rem solid rgba(244,196,0,.14); border-radius: 50%; content: ""; }
.faphb-org-hero > div { position: relative; z-index: 1; }
.faphb-org-hero h1 { max-width: 17ch; margin: 0 0 1.15rem; color: #fff; font-size: clamp(2.6rem,5.5vw,4.6rem); line-height: 1; }
.faphb-org-hero p:not(.faphb-eyebrow) { max-width: 65ch; color: rgba(255,255,255,.85); font-size: 1.12rem; }
.faphb-org-section { background: #f5f8f6; }
.faphb-org-heading { max-width: 740px; margin-bottom: 2.6rem; }
.faphb-org-heading h2 { margin: 0 0 .85rem; color: var(--faphb-green-dark); font-size: clamp(2rem,4vw,3.2rem); line-height: 1.1; }
.faphb-org-heading p:last-child { color: var(--faphb-muted); }
.faphb-org-chart { display: grid; justify-items: center; }
.faphb-org-node { width: min(100%,270px); padding: 1.05rem 1.2rem; border: 1px solid #cbdad1; border-radius: .65rem; background: #fff; color: var(--faphb-green-dark); box-shadow: 0 10px 25px rgba(4,49,28,.07); text-align: center; }
.faphb-org-node span { display: block; margin-bottom: .25rem; color: #7d8b83; font-size: .72rem; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
.faphb-org-node strong { display: block; font-size: 1.05rem; line-height: 1.3; }
.faphb-org-node--assembly { border-color: #d6a600; background: #fff8df; }
.faphb-org-node--board { border-color: var(--faphb-green); background: #e9f5ed; }
.faphb-org-node--executive { width: min(100%,340px); border-color: #8e201f; background: #fff0ed; }
.faphb-org-line { width: 2px; height: 28px; background: #a8bcb0; }
.faphb-org-advisory { display: grid; grid-template-columns: repeat(2,minmax(0,260px)); gap: 1rem; width: min(100%,620px); margin-top: 1rem; }
.faphb-org-advisory .faphb-org-node { width: auto; min-height: 74px; display: grid; place-items: center; }
.faphb-org-node--support { border-left: 4px solid #d49c00; }
.faphb-org-branches { display: grid; grid-template-columns: repeat(4,1fr); gap: 1rem; width: 100%; margin-top: 1.7rem; padding-top: 1.7rem; border-top: 2px solid #b6cbbd; }
.faphb-org-branches article { position: relative; display: grid; align-content: start; gap: .85rem; }
.faphb-org-branches article::before { position: absolute; top: -1.7rem; left: 50%; width: 2px; height: 1.7rem; background: #b6cbbd; content: ""; }
.faphb-org-branches .faphb-org-node { width: auto; min-height: 115px; display: grid; place-items: center; }
.faphb-org-branches ul { display: grid; gap: .45rem; margin: 0; padding: 0; list-style: none; }
.faphb-org-branches li { padding: .6rem .75rem; border-radius: .4rem; background: #e7f1ea; color: #405047; font-size: .86rem; line-height: 1.35; text-align: center; }
.faphb-org-territory { display: grid; justify-items: center; width: min(100%,730px); margin-top: 2.5rem; padding-top: 2.5rem; border-top: 2px solid #b6cbbd; }
.faphb-org-node--territory { width: min(100%,640px); border-color: #08783e; background: linear-gradient(135deg,#075f34,#03331c); color: #fff; }
.faphb-org-node--territory span { color: #ffe072; }
.faphb-org-territory__arrow { margin: .75rem 0; color: var(--faphb-green-dark); font-size: 1.7rem; font-weight: 900; }
.faphb-org-node--local { width: min(100%,350px); border-color: #d49c00; background: #fff8df; }

/* Progressive reveal of the organisation chart. Content stays visible without JS. */
.faphb-org-chart.is-animated .faphb-org-node,
.faphb-org-chart.is-animated .faphb-org-branches li,
.faphb-org-chart.is-animated .faphb-org-line,
.faphb-org-chart.is-animated .faphb-org-branches article::before,
.faphb-org-chart.is-animated .faphb-org-branches,
.faphb-org-chart.is-animated .faphb-org-territory {
  opacity: 0;
}
.faphb-org-chart.is-visible .faphb-org-node,
.faphb-org-chart.is-visible .faphb-org-branches li,
.faphb-org-chart.is-visible .faphb-org-branches,
.faphb-org-chart.is-visible .faphb-org-territory {
  animation: faphb-org-rise .65s cubic-bezier(.2,.75,.25,1) both;
  animation-delay: var(--org-delay,0ms);
}
.faphb-org-chart.is-visible .faphb-org-line,
.faphb-org-chart.is-visible .faphb-org-branches article::before {
  animation: faphb-org-draw .45s ease-out both;
  animation-delay: var(--org-delay,0ms);
  transform-origin: top;
}
.faphb-org-chart .faphb-org-node {
  transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}
.faphb-org-chart .faphb-org-node:hover {
  transform: translateY(-5px);
  border-color: #d49c00;
  box-shadow: 0 16px 34px rgba(4,49,28,.14);
}
.faphb-org-chart.is-visible .faphb-org-territory__arrow { animation: faphb-org-arrow 1.5s ease-in-out 2.2s infinite; }
@keyframes faphb-org-rise { from { opacity: 0; transform: translateY(20px) scale(.97); } to { opacity: 1; transform: none; } }
@keyframes faphb-org-draw { from { opacity: 0; transform: scaleY(0); } to { opacity: 1; transform: scaleY(1); } }
@keyframes faphb-org-arrow { 0%,100% { transform: translateY(0); } 50% { transform: translateY(6px); } }
@media (prefers-reduced-motion: reduce) {
  .faphb-org-chart.is-animated .faphb-org-node,
  .faphb-org-chart.is-animated .faphb-org-branches li,
  .faphb-org-chart.is-animated .faphb-org-line,
  .faphb-org-chart.is-animated .faphb-org-branches article::before,
  .faphb-org-chart.is-animated .faphb-org-branches,
  .faphb-org-chart.is-animated .faphb-org-territory { opacity: 1; animation: none; transform: none; }
  .faphb-org-chart .faphb-org-node { transition: none; }
  .faphb-org-chart.is-visible .faphb-org-territory__arrow { animation: none; }
}

.faphb-contact-hero { padding-block: clamp(3rem,6vw,5.5rem); background: linear-gradient(130deg,#032f1a,#086b3d); color: #fff; }
.faphb-contact-hero__inner { display: grid; grid-template-columns: minmax(0,.9fr) minmax(420px,1.1fr); gap: clamp(2rem,6vw,5rem); align-items: center; }
.faphb-contact-hero h1 { max-width: 11ch; margin: 0 0 1.2rem; color: #fff; font-size: clamp(3.2rem,6vw,5.6rem); line-height: .98; }
.faphb-contact-hero__content > p:not(.faphb-eyebrow) { max-width: 58ch; color: rgba(255,255,255,.84); font-size: 1.12rem; line-height: 1.7; }
.faphb-contact-hero__actions { display: flex; flex-wrap: wrap; gap: .8rem; margin-top: 1.8rem; }
.faphb-contact-hero__visual { position: relative; min-height: 500px; margin: 0; overflow: hidden; border-radius: 1rem; box-shadow: 0 24px 55px rgba(0,0,0,.25); }
.faphb-contact-hero__visual::after { position: absolute; inset: 55% 0 0; background: linear-gradient(transparent,rgba(2,36,20,.8)); content: ""; }
.faphb-contact-hero__visual img { width: 100%; height: 100%; min-height: 500px; object-fit: cover; }
.faphb-contact-hero__visual figcaption { position: absolute; z-index: 1; right: 1.5rem; bottom: 1.3rem; left: 1.5rem; color: #fff; font-weight: 750; }
.faphb-contact-cards { display: grid; grid-template-columns: repeat(4,1fr); gap: 1rem; }
.faphb-contact-cards article { padding: 1.6rem; border: 1px solid #d8e4dc; border-radius: .65rem; background: #fff; box-shadow: 0 12px 30px rgba(5,52,30,.07); }
.faphb-contact-cards article > span:first-child { display: grid; width: 48px; height: 48px; place-items: center; border-radius: 50%; background: #e7f3eb; color: var(--faphb-green-dark); font-size: 1.25rem; font-weight: 900; }
.faphb-contact-cards h3 { margin: 1rem 0 .45rem; color: var(--faphb-green-dark); }
.faphb-contact-cards p { color: var(--faphb-muted); }
.faphb-contact-cards a { color: var(--faphb-green-dark); font-weight: 800; overflow-wrap: anywhere; }
.faphb-contact-form-section { padding-block: clamp(4rem,7vw,6rem); background: #f5f8f6; }
.faphb-contact-form-section__inner { display: grid; grid-template-columns: minmax(260px,.72fr) minmax(0,1.28fr); gap: clamp(2rem,6vw,5rem); align-items: start; }
.faphb-contact-form-section__intro h2 { max-width: 14ch; color: var(--faphb-green-dark); font-size: clamp(2.2rem,4vw,3.5rem); }
.faphb-contact-form-section__intro ul { display: grid; gap: .55rem; padding-left: 1.2rem; }
.faphb-contact-form-wrap { padding: clamp(1.5rem,4vw,2.5rem); border: 1px solid #d6e1da; border-radius: .8rem; background: #fff; box-shadow: 0 18px 45px rgba(5,51,29,.09); }
.faphb-form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.faphb-contact-form p { margin: 0 0 1rem; }
.faphb-contact-form label { display: block; margin-bottom: .35rem; color: var(--faphb-green-dark); font-weight: 750; }
.faphb-contact-form :where(input:not([type="checkbox"]),select,textarea) { width: 100%; min-height: 48px; padding: .7rem .8rem; border: 1px solid #aebfb4; border-radius: .35rem; background: #fff; color: var(--faphb-ink); font: inherit; }
.faphb-contact-form textarea { min-height: 150px; resize: vertical; }
.faphb-contact-form :where(input,select,textarea):focus { border-color: var(--faphb-focus); box-shadow: 0 0 0 3px rgba(11,87,208,.16); }
.faphb-form-consent { display: flex; align-items: flex-start; gap: .65rem; }
.faphb-form-consent input { width: 22px; height: 22px; flex: 0 0 22px; margin-top: .2rem; }
.faphb-form-consent label { color: var(--faphb-muted); font-size: .92rem; font-weight: 500; }
.faphb-honeypot { position: absolute !important; width: 1px !important; height: 1px !important; overflow: hidden !important; clip: rect(0,0,0,0) !important; }
.faphb-form-notice { margin-bottom: 1.25rem; padding: .9rem 1rem; border-left: 4px solid; border-radius: .3rem; }
.faphb-form-notice--success { border-color: #168447; background: #e5f5eb; color: #07542b; }
.faphb-form-notice--error { border-color: #bd2828; background: #fdeaea; color: #7c1616; }
.faphb-contact-location { padding-block: clamp(4rem,7vw,6rem); background: #eef5f0; }
.faphb-contact-location__inner { display: grid; grid-template-columns: minmax(280px,.72fr) minmax(0,1.28fr); gap: clamp(2rem,5vw,4rem); align-items: center; }
.faphb-contact-location h2 { max-width: 15ch; color: var(--faphb-green-dark); font-size: clamp(2.2rem,4vw,3.5rem); }
.faphb-contact-location address { margin: 1.5rem 0; padding-left: 1rem; border-left: 4px solid var(--faphb-yellow); font-style: normal; }
.faphb-contact-map { min-height: 470px; overflow: hidden; border: 8px solid #fff; border-radius: .8rem; box-shadow: 0 18px 45px rgba(4,51,29,.14); }
.faphb-contact-map iframe { width: 100%; height: 470px; border: 0; }
.faphb-contact-map__consent { display: flex; min-height: 454px; align-items: center; justify-content: center; flex-direction: column; gap: .7rem; padding: 2rem; background: linear-gradient(145deg,#e9f1ec,#d9e7de); text-align: center; }
.faphb-contact-map__consent > span { display: grid; width: 60px; height: 60px; place-items: center; border-radius: 50%; background: var(--faphb-green-dark); color: #fff; font-size: 1.6rem; }
.faphb-contact-map__consent strong { color: var(--faphb-green-dark); font-size: 1.25rem; }
.faphb-contact-map__consent p { margin: 0; }
.faphb-contact-map__consent > a { color: var(--faphb-green-dark); font-size: .85rem; font-weight: 750; }
.faphb-contact-final { padding-block: 3rem; background: #952429; color: #fff; }
.faphb-contact-final__inner { display: flex; align-items: center; justify-content: space-between; gap: 2rem; }
.faphb-contact-final h2 { margin: 0; color: #fff; font-size: clamp(2rem,3.5vw,3rem); }
.faphb-contact-final p { margin-bottom: 0; color: rgba(255,255,255,.78); }

.faphb-actions-feature { display: grid; grid-template-columns: minmax(0,.88fr) minmax(420px,1.12fr); gap: clamp(2rem,5vw,5rem); align-items: center; margin-bottom: 3rem; }
.faphb-actions-feature__content .faphb-section__heading { margin-bottom: 1.25rem; }
.faphb-actions-feature__content > p { max-width: 58ch; color: #45534a; font-size: 1.05rem; }
.faphb-actions-feature__lead { max-width: 48ch; color: var(--faphb-green-dark); font-size: clamp(1.15rem,2vw,1.35rem); font-weight: 700; line-height: 1.5; }
.faphb-text-link { display: inline-flex; gap: .55rem; align-items: center; margin-top: .8rem; color: var(--faphb-green-dark); font-weight: 850; text-decoration: none; }
.faphb-text-link span { transition: transform .2s ease; }
.faphb-text-link:hover span { transform: translateX(5px); }
.faphb-actions-feature__visual { position: relative; min-height: 480px; margin: 0; overflow: hidden; border-radius: 1.2rem; background: var(--faphb-green-dark); box-shadow: 0 28px 65px rgba(4,55,29,.18); }
.faphb-actions-feature__visual::before { position: absolute; z-index: 1; inset: 0; background: linear-gradient(180deg,transparent 50%,rgba(2,42,22,.82)); content: ""; pointer-events: none; }
.faphb-actions-feature__visual img { width: 100%; height: 100%; min-height: 480px; object-fit: cover; }
.faphb-actions-feature__visual figcaption { position: absolute; z-index: 2; right: 0; bottom: 0; left: 0; display: grid; gap: .25rem; padding: 1.5rem 1.75rem; color: #fff; }
.faphb-actions-feature__visual figcaption strong { font-size: 1.15rem; }
.faphb-actions-feature__visual figcaption span { color: rgba(255,255,255,.82); }
.faphb-actions-intro { display: flex; align-items: center; gap: 1rem; margin-bottom: 1.4rem; color: var(--faphb-green-dark); font-size: .82rem; font-weight: 850; letter-spacing: .11em; text-transform: uppercase; }
.faphb-actions-intro::after { width: 100%; height: 1px; background: #cbdad1; content: ""; }
.faphb-actions-grid { position: relative; }
.faphb-actions-grid .faphb-card { position: relative; display: flex; min-height: 350px; flex-direction: column; overflow: hidden; border-top: 0; }
.faphb-actions-grid .faphb-card::after { position: absolute; top: -36px; right: -28px; width: 90px; height: 90px; border-radius: 50%; background: rgba(0,121,68,.06); content: ""; }
.faphb-card__top { display: flex; align-items: center; justify-content: space-between; margin-bottom: 1.6rem; }
.faphb-card__icon { display: grid; width: 58px; height: 58px; place-items: center; border-radius: 16px; background: var(--faphb-green-dark); color: #fff; box-shadow: 0 9px 20px rgba(4,55,29,.18); }
.faphb-card__icon svg { width: 30px; height: 30px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.faphb-actions-grid .faphb-card__number { margin: 0; color: #a6b4ab; font-size: 1rem; letter-spacing: .08em; }
.faphb-card__kicker { margin-bottom: .55rem; color: var(--faphb-red); font-size: .76rem; font-weight: 850; letter-spacing: .1em; text-transform: uppercase; }
.faphb-actions-grid .faphb-card p { color: #526057; line-height: 1.65; }
.faphb-actions-grid .faphb-card > a { display: inline-flex; gap: .45rem; align-items: center; margin-top: auto; padding-top: 1rem; text-decoration: none; }
.faphb-actions-grid .faphb-card > a span { transition: transform .2s ease; }
.faphb-actions-grid .faphb-card > a:hover span { transform: translateX(4px); }
.faphb-actions-grid .faphb-card:nth-child(2) .faphb-card__icon { background: #a72d27; }
.faphb-actions-grid .faphb-card:nth-child(3) .faphb-card__icon { background: #d49c00; color: #16251c; }
.faphb-actions-grid .faphb-card:nth-child(4) .faphb-card__icon { background: #176c50; }

.faphb-programs { background: #fff; }
.faphb-programs__heading { max-width: 850px; }
.faphb-programs__heading > p:last-child { max-width: 65ch; color: #526057; font-size: 1.08rem; }
.faphb-programs__visual { position: relative; min-height: 520px; margin: 0; overflow: hidden; border-radius: 1.2rem; background: #082f1d; box-shadow: 0 25px 60px rgba(5,48,28,.16); }
.faphb-programs__visual::after { position: absolute; inset: 0; background: linear-gradient(90deg,rgba(2,45,25,.76) 0%,transparent 58%),linear-gradient(0deg,rgba(2,35,19,.8),transparent 45%); content: ""; }
.faphb-programs__visual img { width: 100%; height: 100%; min-height: 520px; object-fit: cover; }
.faphb-programs__visual figcaption { position: absolute; z-index: 1; bottom: 5.5rem; left: clamp(1.5rem,4vw,3.5rem); display: grid; max-width: 510px; gap: .35rem; color: #fff; }
.faphb-programs__visual figcaption strong { font-size: clamp(1.4rem,2.5vw,2.1rem); line-height: 1.15; }
.faphb-programs__visual figcaption span { color: rgba(255,255,255,.84); font-size: 1.05rem; }
.faphb-programs__grid { position: relative; z-index: 2; display: grid; grid-template-columns: repeat(3,1fr); gap: 1.3rem; margin: -3rem clamp(1rem,3vw,2.5rem) 0; }
.faphb-programs__grid article { display: flex; min-height: 330px; flex-direction: column; padding: 2.2rem; border-radius: .65rem; background: linear-gradient(160deg,#075f34,#03331c); color: rgba(255,255,255,.84); box-shadow: 0 18px 42px rgba(3,43,24,.2); }
.faphb-programs__grid article:nth-child(2) { background: linear-gradient(160deg,#8e241f,#c2352e); }
.faphb-programs__grid article:nth-child(3) { background: linear-gradient(160deg,#5c4900,#8f7200); }
.faphb-programs__meta { display: flex; align-items: center; justify-content: space-between; margin-bottom: 3.5rem; }
.faphb-programs__meta span { color: var(--faphb-yellow); font-size: .82rem; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.faphb-programs__meta strong { color: rgba(255,255,255,.38); font-size: 1.15rem; }
.faphb-programs__grid h3 { color: #fff; font-size: 1.5rem; }
.faphb-programs__grid article > p { line-height: 1.65; }
.faphb-programs__grid article > a { display: inline-flex; gap: .45rem; align-items: center; margin-top: auto; color: #fff; font-weight: 850; text-decoration: none; }
.faphb-programs__grid article > a span { color: var(--faphb-yellow); transition: transform .2s ease; }
.faphb-programs__grid article > a:hover span { transform: translateX(4px); }

.faphb-section--dark { background: #032f1a; color: rgba(255,255,255,.82); }
.faphb-section--dark h2 { color: #fff; }

.faphb-post--empty { grid-column: 1/-1; padding-block: 3rem; text-align: center; }
.faphb-post--empty span { color: var(--faphb-red); font-weight: 800; text-transform: uppercase; }

.faphb-partners { padding-block: 4rem; background: #fff; text-align: center; }
.faphb-partners h2 { color: var(--faphb-green-dark); }
.faphb-partners .faphb-eyebrow { justify-content: center; }
.faphb-partners__list { display: flex; flex-wrap: wrap; justify-content: center; gap: 1rem; margin-top: 2rem; }
.faphb-partners__list span { padding: 1rem 1.4rem; border: 1px solid #dce5df; border-radius: .3rem; color: var(--faphb-muted); font-weight: 800; }

.faphb-partners__logos { display: grid; grid-template-columns: repeat(auto-fit,minmax(140px,1fr)); gap: 1rem; align-items: stretch; margin-top: 2.5rem; }
.faphb-partners__logos > img,.faphb-partners__logos > a { width: 100%; min-width: 0; height: 105px; padding: 1rem; border: 1px solid #dce5df; border-radius: .35rem; background: #fff; object-fit: contain; }
.faphb-partners__logos > a { display: grid; place-items: center; transition: transform .2s ease,box-shadow .2s ease; }
.faphb-partners__logos > a:hover { transform: translateY(-4px); box-shadow: 0 12px 28px rgba(5,50,29,.12); }
.faphb-partners__logos > a img { width: 100%; height: 100%; object-fit: contain; }
.faphb-section__action { margin: 2rem 0 0; text-align: center; }
.faphb-button--green { border-color: var(--faphb-green); background: var(--faphb-green); color: #fff; }
.faphb-button--green:hover { border-color: var(--faphb-green-dark); background: var(--faphb-green-dark); color: #fff; }

.faphb-cta { padding-block: clamp(2.5rem,4vw,4rem); background: #f6f2ed; color: #fff; }
.faphb-cta__inner { display: grid; min-height: 340px; grid-template-columns: minmax(0,.92fr) minmax(0,1.08fr); overflow: hidden; border-radius: 1.2rem; background: #a51f24; box-shadow: 0 28px 70px rgba(91,20,23,.2); }
.faphb-cta__content { position: relative; z-index: 1; display: flex; align-items: flex-start; justify-content: center; flex-direction: column; padding: clamp(1.6rem,3vw,2.6rem); background: linear-gradient(135deg,#7f111b 0%,#b8252c 52%,#d34438 100%); }
.faphb-cta__content::after { position: absolute; right: -46px; bottom: -70px; width: 210px; height: 210px; border: 1px solid rgba(255,255,255,.16); border-radius: 50%; content: ""; pointer-events: none; }
.faphb-cta h2 { max-width: 18ch; margin: 0 0 .8rem; color: #fff; font-size: clamp(1.8rem,3vw,2.75rem); line-height: 1.06; }
.faphb-cta .faphb-eyebrow { color: #fff; }
.faphb-cta__content > p:not(.faphb-eyebrow) { max-width: 55ch; margin: 0 0 1.25rem; color: rgba(255,255,255,.86); font-size: .98rem; line-height: 1.5; }
.faphb-cta__actions { display: flex; flex-wrap: wrap; gap: 1.3rem; align-items: center; }
.faphb-cta__link { display: inline-flex; gap: .45rem; align-items: center; color: #fff; font-weight: 800; text-decoration: none; }
.faphb-cta__link span { color: var(--faphb-yellow); transition: transform .2s ease; }
.faphb-cta__link:hover span { transform: translateX(5px); }
.faphb-cta__visual { position: relative; min-height: 340px; margin: 0; overflow: hidden; }
.faphb-cta__visual::before { position: absolute; z-index: 1; inset: 0; background: linear-gradient(90deg,rgba(127,17,27,.24),transparent 35%); content: ""; pointer-events: none; }
.faphb-cta__visual img { width: 100%; height: 100%; min-height: 340px; object-fit: cover; object-position: 55% center; }

.faphb-footer__top { background: var(--faphb-yellow); color: var(--faphb-ink); }
.faphb-footer__top-inner { display: flex; min-height: 150px; align-items: center; justify-content: space-between; gap: 2rem; }
.faphb-footer__top p { display: grid; margin: 0; }
.faphb-footer__top strong { color: var(--faphb-green-dark); font-size: clamp(1.5rem,3vw,2.25rem); }
.faphb-footer__top .faphb-button { border-color: var(--faphb-green-dark); background: var(--faphb-green-dark); color: #fff; }
.faphb-footer__grid { grid-template-columns: 1.4fr .7fr 1fr .8fr; }
.faphb-footer__brand { display: inline-flex; align-items: center; gap: .8rem; margin-bottom: 1.2rem; color: #fff !important; font-size: 1.7rem; font-weight: 900; text-decoration: none; }
.faphb-footer__brand img { width: 62px; height: 62px; border-radius: 50%; object-fit: contain; background: #fff; }
.faphb-footer__motto { color: var(--faphb-yellow); font-weight: 800; }
.faphb-footer__grid ul { display: grid; gap: .65rem; padding: 0; list-style: none; }
.faphb-footer__social { display: grid; gap: .65rem; margin-top: 1.2rem; }
.faphb-social-button { display: flex; min-height: 44px; align-items: center; gap: .7rem; padding: .55rem .8rem; border: 1px solid rgba(255,255,255,.16); border-radius: .45rem; background: rgba(255,255,255,.06); color: #fff !important; font-weight: 750; text-decoration: none; transition: transform .2s ease,background .2s ease; }
.faphb-social-button:hover { transform: translateX(4px); background: rgba(255,255,255,.13); }
.faphb-social-button > span { display: grid; width: 28px; height: 28px; place-items: center; border-radius: 50%; color: #fff; font-family: Arial,sans-serif; font-size: .78rem; font-weight: 900; }
.faphb-social-button--facebook > span { background: #1877f2; font-size: 1rem; }
.faphb-social-button--linkedin > span { background: #0a66c2; }
.faphb-social-button--youtube > span { background: #e21b24; font-size: .65rem; }
.faphb-footer__bottom > .faphb-container { display: flex; justify-content: space-between; gap: 1rem; }
.faphb-footer__bottom a { color: var(--faphb-yellow); }
.faphb-footer__powered { text-align: center; }
.faphb-footer__legal { border-top: 1px solid rgba(255,255,255,.12); }
.faphb-footer__legal > .faphb-container { display: flex; flex-wrap: wrap; justify-content: center; gap: .7rem 1.5rem; padding-block: 1rem; }
.faphb-footer__legal a { color: rgba(255,255,255,.78); font-size: .86rem; }

.faphb-header {
  position: relative;
  z-index: 50;
  border-bottom: 1px solid #e3ebe6;
  background: var(--faphb-white);
}

.faphb-topbar { background: var(--faphb-green-dark); color: rgba(255,255,255,.9); font-size: .82rem; }
.faphb-topbar__inner { display: flex; min-height: 38px; align-items: center; justify-content: space-between; gap: 1.5rem; }
.faphb-topbar__contacts { display: flex; flex-wrap: wrap; gap: 1.5rem; }
.faphb-topbar a { color: #fff; text-decoration: none; }
.faphb-topbar a:hover { color: var(--faphb-yellow); }
.faphb-topbar__contacts span,.faphb-topbar__hours span { margin-right: .35rem; color: var(--faphb-yellow); }

.faphb-container.faphb-header__inner {
  display: flex;
  width: min(1380px, calc(100% - 3rem));
  min-height: 92px;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
}

.faphb-brand {
  display: inline-flex;
  max-width: 520px;
  align-items: center;
  gap: .85rem;
  color: var(--faphb-green-dark);
  text-decoration: none;
}

.faphb-brand__mark {
  display: grid;
  width: 52px;
  height: 52px;
  flex: 0 0 52px;
  place-items: center;
  border-radius: 50% 50% 50% 12%;
  background: var(--faphb-green);
  color: var(--faphb-yellow);
  font-size: 1.8rem;
  font-weight: 900;
}

.faphb-brand__logo { width: 60px; height: 60px; flex: 0 0 60px; border-radius: 50%; object-fit: contain; background: #fff; }

.faphb-brand__text {
  display: grid;
  line-height: 1.15;
}

.faphb-brand__text strong {
  font-size: 1.5rem;
}

.faphb-brand__text small {
  display: block;
  max-width: 280px;
  margin-top: .25rem;
  color: var(--faphb-muted);
  font-size: .78rem;
  line-height: 1.3;
  white-space: normal;
}

.faphb-menu {
  display: flex;
  align-items: center;
  gap: .2rem;
  margin: 0;
  padding: .35rem;
  border: 1px solid #e0e9e3;
  border-radius: 999px;
  background: #f7faf8;
  list-style: none;
}

.faphb-menu a {
  display: flex;
  min-height: 42px;
  align-items: center;
  padding: .48rem .66rem;
  border-radius: 999px;
  color: var(--faphb-ink);
  font-weight: 700;
  font-size: .82rem;
  text-decoration: none;
  white-space: nowrap;
  transition: color .2s ease,background .2s ease;
}

.faphb-menu a:hover {
  background: #e3f0e8;
  color: var(--faphb-green-dark);
  text-decoration: none;
}

.faphb-menu .current-menu-item > a,.faphb-menu .current_page_item > a { background: var(--faphb-green-dark); color: #fff; }
.faphb-menu > .menu-item-has-children { position: relative; }
.faphb-menu > .menu-item-has-children > a::after { margin-left: .4rem; content: "⌄"; font-size: .8em; }
.faphb-menu .sub-menu { position: absolute; z-index: 80; top: 100%; left: 0; display: grid; min-width: 190px; margin: 0; padding: .45rem; border: 1px solid #d7e2db; border-radius: .6rem; background: #fff; box-shadow: 0 14px 35px rgba(4,49,28,.16); list-style: none; opacity: 0; pointer-events: none; transform: translateY(0); transition: opacity .18s ease; }
.faphb-menu .menu-item-has-children:hover > .sub-menu,.faphb-menu .menu-item-has-children:focus-within > .sub-menu { opacity: 1; pointer-events: auto; transform: translateY(0); }
.faphb-menu .sub-menu a { min-height:38px; padding:.42rem .6rem; border-radius:.35rem; font-size:.79rem; white-space:normal; }
.faphb-nav { margin-left: auto; }
.faphb-header__tools { display: flex; align-items: center; gap: .65rem; }
.faphb-header__donate { display: inline-flex; min-height: 46px; align-items: center; gap: .45rem; padding: .65rem 1.15rem; border-radius: 999px; background: linear-gradient(135deg,#b51f29,#dd4739); color: #fff !important; box-shadow: 0 9px 20px rgba(181,31,41,.22); font-weight: 850; text-decoration: none; white-space: nowrap; transition: transform .2s ease,box-shadow .2s ease; }
.faphb-header__donate:hover { transform: translateY(-2px); box-shadow: 0 13px 25px rgba(181,31,41,.3); }
.faphb-menu-toggle { display: none; }
.faphb-search-toggle { display: grid; width: 44px; height: 44px; place-items: center; padding: 0; border: 1px solid #cddbd2; border-radius: 50%; background: #fff; color: var(--faphb-green-dark); font-size: 1.55rem; cursor: pointer; }
.faphb-header-search { position: absolute; z-index: 60; top: calc(100% - 8px); right: max(1.5rem,calc((100% - 1380px)/2)); width: min(470px,calc(100% - 2rem)); padding: 1.1rem; border: 1px solid #cbd8d0; border-radius: .6rem; background: #fff; box-shadow: 0 18px 50px rgba(0,0,0,.2); }
.faphb-header-search label,.faphb-search-page__form label { display: block; margin-bottom: .35rem; color: var(--faphb-green-dark); font-weight: 800; }
.faphb-header-search > div,.faphb-search-page__form > div { display: flex; gap: .55rem; }
.faphb-header-search input,.faphb-search-page__form input { width: 100%; min-width: 0; min-height: 46px; padding: .65rem .75rem; border: 1px solid #aebfb4; border-radius: .35rem; font: inherit; }
.faphb-header-search button { padding-inline: 1rem; border: 0; border-radius: .35rem; background: var(--faphb-green-dark); color: #fff; font-weight: 800; }

.faphb-search-page__form { max-width: 760px; margin-bottom: 2.5rem; }

.faphb-video-hero { position: relative; overflow: hidden; padding-block: clamp(4.5rem,9vw,7.5rem); background-image:linear-gradient(90deg,rgba(2,43,25,.97) 0%,rgba(3,72,42,.84) 55%,rgba(3,72,42,.4) 100%),url('assets/images/hero-autonomisation.webp'); background-position:center; background-size:cover; color: #fff; }
.faphb-video-hero::after { position: absolute; top: -15rem; right: -11rem; width: 37rem; height: 37rem; border: 3rem solid rgba(244,196,0,.13); border-radius: 50%; content: ""; }
.faphb-video-hero > div { position: relative; z-index: 1; }
.faphb-video-hero h1 { max-width: 12ch; margin: 0 0 1.1rem; color: #fff; font-size: clamp(2.7rem,6vw,5rem); line-height: .98; }
.faphb-video-hero p:not(.faphb-eyebrow) { max-width: 61ch; margin-bottom: 2rem; color: rgba(255,255,255,.86); font-size: 1.12rem; }
.faphb-video-hero .faphb-button { width: auto; }
.faphb-video-library { background: #f5f8f6; }
.faphb-video-library__heading { display: flex; align-items: end; justify-content: space-between; gap: 1.5rem; margin-bottom: 2.5rem; }
.faphb-video-library__heading h2 { margin: 0; color: var(--faphb-green-dark); font-size: clamp(2rem,4vw,3.2rem); line-height: 1.1; }
.faphb-video-library__heading > a,.faphb-video-card a { color: var(--faphb-green-dark); font-weight: 850; }
.faphb-video-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 1.25rem; }
.faphb-video-card { overflow: hidden; border: 1px solid #d7e3db; border-radius: .75rem; background: #fff; box-shadow: 0 12px 30px rgba(4,49,28,.07); }
.faphb-video-card__frame { position: relative; width: 100%; aspect-ratio: 16 / 9; padding: 0; overflow: hidden; border: 0; background: #062b1a; cursor: pointer; }
.faphb-video-card__frame img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .3s ease,filter .3s ease; }
.faphb-video-card__frame::after { position: absolute; inset: 0; background: linear-gradient(0deg,rgba(0,0,0,.32),transparent 60%); content: ""; }
.faphb-video-card__frame span { position: absolute; z-index: 1; top: 50%; left: 50%; display: grid; width: 62px; height: 62px; place-items: center; border: 3px solid #fff; border-radius: 50%; background: rgba(5,91,54,.9); color: #fff; font-size: 1.35rem; transform: translate(-50%,-50%); transition: background .2s ease,transform .2s ease; }
.faphb-video-card__frame:hover img,.faphb-video-card__frame:focus-visible img { filter: saturate(1.1); transform: scale(1.05); }
.faphb-video-card__frame:hover span,.faphb-video-card__frame:focus-visible span { background: #c62828; transform: translate(-50%,-50%) scale(1.08); }
.faphb-video-card > div:last-child { padding: 1.25rem; }
.faphb-video-card h2 { margin: 0 0 .55rem; color: var(--faphb-green-dark); font-size: 1.18rem; line-height: 1.25; }
.faphb-video-card p { min-height: 4.8em; margin: 0 0 1rem; color: var(--faphb-muted); font-size: .94rem; }
.faphb-video-card__link { padding: 0; border: 0; background: transparent; color: var(--faphb-green-dark); font: inherit; font-weight: 850; cursor: pointer; text-decoration: underline; text-underline-offset: .15em; }
.faphb-video-open { overflow: hidden; }
.faphb-video-modal { position: fixed; z-index: 1000; inset: 0; display: grid; place-items: center; padding: 1rem; }
.faphb-video-modal[hidden] { display: none; }
.faphb-video-modal__backdrop { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; background: transparent; }
.faphb-video-modal__content { position: relative; z-index: 1; width: min(1180px,100%); }
.faphb-video-modal__frame { aspect-ratio: 16 / 9; overflow: hidden; border-radius: .5rem; background: #000; box-shadow: 0 24px 70px rgba(0,0,0,.45); }
.faphb-video-modal__frame iframe { width: 100%; height: 100%; border: 0; }
.faphb-video-modal__close { position: absolute; z-index: 2; top: .65rem; right: .65rem; display: grid; width: 44px; height: 44px; place-items: center; border: 0; border-radius: 50%; background: #fff; color: var(--faphb-green-dark); font-size: 1.8rem; line-height: 1; cursor: pointer; }
.faphb-video-modal__content p { margin: .65rem 0 0; color: #fff; font-size: .92rem; font-weight: 700; text-align: center; }
.faphb-search-results { display: grid; grid-template-columns: repeat(3,1fr); gap: 1rem; }
.faphb-search-results article { padding: 1.5rem; border: 1px solid #d7e3db; border-radius: .55rem; background: #fff; box-shadow: 0 10px 28px rgba(5,50,29,.07); }
.faphb-search-results h2 { margin: 0 0 .7rem; font-size: 1.35rem; }
.faphb-search-results h2 a { color: var(--faphb-green-dark); }
.faphb-search-results article > a { color: var(--faphb-green-dark); font-weight: 800; }
.faphb-search-empty { padding: 2rem; border-radius: .6rem; background: #f1f6f3; text-align: center; }

.faphb-water-trail { position: fixed; z-index: 9998; inset: 0; width: 100%; height: 100%; pointer-events: none; }
.faphb-reduce-motion .faphb-water-trail { display: none; }

.faphb-a11y { position: fixed; z-index: 110; left: 1.25rem; bottom: 1.25rem; }
.faphb-a11y__toggle { display: grid; width: 54px; height: 54px; place-items: center; border: 2px solid #fff; border-radius: 50%; background: #073b78; color: #fff; box-shadow: 0 10px 30px rgba(0,0,0,.25); font-weight: 900; cursor: pointer; }
.faphb-a11y__panel { position: absolute; bottom: 66px; left: 0; width: min(390px,calc(100vw - 2rem)); max-height: calc(100vh - 110px); padding: 1.25rem; overflow-x: hidden; overflow-y: auto; border: 1px solid #cad7cf; border-radius: .75rem; background: #fff; color: #17221c; box-shadow: 0 20px 60px rgba(0,0,0,.26); font-size: 16px; line-height: 1.45; }
.faphb-a11y__heading { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.faphb-a11y__heading strong { min-width: 0; color: var(--faphb-green-dark); font-size: 1.15rem; line-height: 1.25; overflow-wrap: anywhere; }
.faphb-a11y__heading button { display: grid; width: 40px; height: 40px; flex: 0 0 40px; place-items: center; padding: 0; border: 1px solid #d4ded8; border-radius: 50%; background: #f4f8f5; color: #17221c; font-size: 1.45rem; line-height: 1; cursor: pointer; }
.faphb-a11y__panel > p { margin: .55rem 0 1rem; font-size: .92rem; }
.faphb-a11y__label { display: block; margin: .85rem 0 .4rem; color: #526057; font-size: .75rem; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
.faphb-a11y__controls { display: grid; grid-template-columns: 1fr 1fr; gap: .55rem; }
.faphb-a11y__controls button,.faphb-a11y__speech button,.faphb-a11y__reset { min-width: 0; min-height: 48px; padding: .6rem .65rem; border: 1px solid #bdccc2; border-radius: .35rem; background: #f4f8f5; color: #17221c; font-size: .9rem; font-weight: 750; line-height: 1.25; overflow-wrap: anywhere; white-space: normal; cursor: pointer; }
.faphb-a11y__controls button.is-active { border-color: var(--faphb-green-dark); background: var(--faphb-green-dark); color: #fff; }
.faphb-a11y__speech { display: grid; grid-template-columns: 1.4fr 1fr 1fr; gap: .45rem; margin-top: .8rem; }
.faphb-a11y__speech button:first-child { background: #073b78; color: #fff; }
.faphb-a11y__reset { width: 100%; margin-top: .55rem; }
.faphb-a11y__status { min-height: 1.4em; margin-bottom: 0 !important; color: #405047; overflow-wrap: anywhere; }

.faphb-large-text { font-size: 120%; }
.faphb-underlined-links a { text-decoration: underline !important; text-decoration-thickness: 2px !important; }
.faphb-high-contrast body,.faphb-high-contrast #page { background: #000 !important; color: #fff !important; }
.faphb-high-contrast :where(section,header,footer,article,aside,div) { border-color: #fff; }
.faphb-high-contrast :where(p,h1,h2,h3,h4,h5,h6,li,strong,small,span:not([aria-hidden])) { color: inherit !important; }
.faphb-high-contrast a { color: #ffeb3b !important; }
.faphb-high-contrast button { border-color: #fff !important; }
.faphb-reduce-motion *,.faphb-reduce-motion *::before,.faphb-reduce-motion *::after { scroll-behavior: auto !important; animation: none !important; transition: none !important; }

.faphb-article-audio { display: flex; flex-wrap: wrap; align-items: center; gap: .65rem; margin-bottom: 2rem; padding: 1rem; border: 1px solid #cedbd3; border-radius: .5rem; background: #f2f7f4; }
.faphb-article-audio strong { margin-right: .5rem; color: var(--faphb-green-dark); }
.faphb-article-audio button { min-height: 42px; padding: .5rem .8rem; border: 1px solid var(--faphb-green-dark); border-radius: .35rem; background: #fff; color: var(--faphb-green-dark); font-weight: 750; cursor: pointer; }
.faphb-article-audio button:first-of-type { background: var(--faphb-green-dark); color: #fff; }
.faphb-article-audio [data-speech-status] { width: 100%; color: var(--faphb-muted); font-size: .9rem; }
.faphb-single__image img { width: 100%; height: auto; border-radius: .6rem; }

.faphb-container {
  width: min(1180px, calc(100% - 2rem));
  margin-inline: auto;
}

.faphb-hero {
  position: relative;
  display: grid;
  min-height: 680px;
  align-items: center;
  padding-block: clamp(5rem, 10vw, 9rem);
  background:
    linear-gradient(90deg, rgba(3, 50, 27, .96) 0%, rgba(3, 50, 27, .88) 52%, rgba(3, 50, 27, .48) 100%),
    var(--faphb-green-dark);
  color: var(--faphb-white);
}

.faphb-hero::after {
  position: absolute;
  right: -6rem;
  bottom: -8rem;
  width: 28rem;
  height: 28rem;
  border: 3rem solid rgba(244, 196, 0, .16);
  border-radius: 50%;
  content: "";
}

.faphb-hero__content {
  position: relative;
  z-index: 1;
  max-width: 760px;
}

.faphb-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: .65rem;
  margin: 0 0 1rem;
  color: var(--faphb-yellow);
  font-size: .9rem;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.faphb-eyebrow::before {
  width: 2rem;
  height: 3px;
  background: currentColor;
  content: "";
}

.faphb-hero h1 {
  max-width: 13ch;
  margin: 0 0 1.25rem;
  color: var(--faphb-white);
  font-size: clamp(2.6rem, 7vw, 5.4rem);
  line-height: .98;
  letter-spacing: -.045em;
}

.faphb-hero__intro {
  max-width: 64ch;
  margin-bottom: 2rem;
  color: rgba(255, 255, 255, .9);
  font-size: clamp(1.08rem, 2vw, 1.25rem);
}

.faphb-actions {
  display: flex;
  flex-wrap: wrap;
  gap: .8rem;
}

.faphb-button {
  display: inline-flex;
  min-height: 52px;
  align-items: center;
  justify-content: center;
  padding: .8rem 1.3rem;
  border: 2px solid var(--faphb-yellow);
  border-radius: .3rem;
  background: var(--faphb-yellow);
  color: var(--faphb-ink);
  font-weight: 800;
  text-decoration: none;
}

.faphb-button:hover {
  border-color: var(--faphb-white);
  background: var(--faphb-white);
  color: var(--faphb-green-dark);
}

.faphb-button--outline {
  border-color: rgba(255, 255, 255, .8);
  background: transparent;
  color: var(--faphb-white);
}

.faphb-section {
  padding-block: clamp(4rem, 8vw, 7rem);
}

.faphb-section--soft {
  background: var(--faphb-surface);
}

.faphb-section__heading {
  max-width: 720px;
  margin-bottom: 2.5rem;
}

.faphb-section h2 {
  margin: 0 0 1rem;
  color: var(--faphb-green-dark);
  font-size: clamp(2rem, 4vw, 3.25rem);
  line-height: 1.1;
}

.faphb-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1.25rem;
}

.faphb-card {
  padding: clamp(1.4rem, 3vw, 2rem);
  border-top: 5px solid var(--faphb-green);
  border-radius: .35rem;
  background: var(--faphb-white);
  box-shadow: 0 14px 40px rgba(10, 45, 27, .09);
}

.faphb-card__number {
  display: block;
  margin-bottom: 1.4rem;
  color: var(--faphb-red);
  font-size: .9rem;
  font-weight: 800;
}

.faphb-card h3 {
  margin: 0 0 .75rem;
  color: var(--faphb-ink);
  font-size: 1.25rem;
}

.faphb-network {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(280px, .9fr);
  gap: clamp(2rem, 6vw, 5rem);
  align-items: center;
}

.faphb-network__stat {
  padding: 2.5rem;
  border-radius: .5rem;
  background: var(--faphb-green-dark);
  color: var(--faphb-white);
}

.faphb-network__stat strong {
  display: block;
  color: var(--faphb-yellow);
  font-size: clamp(4rem, 9vw, 7rem);
  line-height: 1;
}

.faphb-posts {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.25rem;
}

.faphb-post {
  overflow: hidden;
  border: 1px solid #dce5df;
  border-radius: .35rem;
  background: var(--faphb-white);
}

.faphb-post__body { padding: 1.5rem; }
.faphb-post__image { display: block; aspect-ratio: 16/9; overflow: hidden; background: #e8efea; }
.faphb-post__image img { width: 100%; height: 100%; object-fit: cover; transition: transform .35s ease; }
.faphb-post:hover .faphb-post__image img { transform: scale(1.04); }

/* Institutional, legal and participation pages */
.faphb-institution__hero { position:relative; overflow:hidden; padding-block:clamp(4.5rem,8vw,7rem); background:linear-gradient(115deg,rgba(2,47,26,.98),rgba(5,105,59,.88)),url('assets/images/hero-equipe-faphb.jpg') center/cover; color:#fff; }
.faphb-institution__hero::after { position:absolute; right:-90px; bottom:-170px; width:430px; height:430px; border:70px solid rgba(244,196,0,.14); border-radius:50%; content:""; }
.faphb-institution__hero .faphb-container { position:relative; z-index:1; }
.faphb-institution__hero h1 { max-width:15ch; margin:.35rem 0 1rem; color:#fff; font-size:clamp(2.7rem,5.5vw,5rem); line-height:1; }
.faphb-institution__hero p:last-child { max-width:67ch; margin:0; color:rgba(255,255,255,.88); font-size:1.1rem; }
.faphb-institution__grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1.2rem; }
.faphb-institution__grid article { position:relative; padding:clamp(1.5rem,3vw,2.2rem); overflow:hidden; border:1px solid #d5e2da; border-radius:1rem; background:#fff; box-shadow:0 14px 35px rgba(3,49,27,.07); }
.faphb-institution__grid article > span { position:absolute; top:1rem; right:1.2rem; color:#b9c8bf; font-size:2.3rem; font-weight:900; line-height:1; }
.faphb-institution__grid h2 { max-width:80%; margin:0 0 .9rem; color:var(--faphb-green-dark); font-size:clamp(1.4rem,2.3vw,2rem); }
.faphb-institution__grid p { color:#4b5a51; }
.faphb-institution__grid ul { display:grid; gap:.55rem; margin:1.2rem 0 0; padding:1.1rem 1.1rem 0; border-top:1px solid #dce7e0; color:#30443a; }
.faphb-institution__grid li::marker { color:var(--faphb-green); }
.faphb-institution__cta { padding-block:clamp(3rem,5vw,4.5rem); background:var(--faphb-yellow); }
.faphb-institution__cta .faphb-container { display:flex; align-items:center; justify-content:space-between; gap:2rem; }
.faphb-institution__cta h2 { margin:0; color:#082e1c; font-size:clamp(1.8rem,3vw,2.7rem); }
.faphb-institution__cta .faphb-button { flex:none; border-color:#073c23; background:#073c23; color:#fff; }
@media (max-width:760px) { .faphb-institution__grid { grid-template-columns:1fr; } .faphb-institution__cta .faphb-container { align-items:flex-start; flex-direction:column; } }

/* Editorial news showcase on the home page */
.faphb-home-news { position:relative; padding-block:clamp(2.25rem,4vw,3.25rem); background:linear-gradient(180deg,#fff 0%,#f1f6f3 100%); }
.faphb-home-news::before { position:absolute; top:0; left:0; width:34%; height:5px; background:linear-gradient(90deg,var(--faphb-green),var(--faphb-yellow)); content:""; }
.faphb-home-news__heading { display:flex; justify-content:space-between; align-items:end; gap:2rem; margin-bottom:1.2rem; }
.faphb-home-news__heading h2 { margin:0 0 .4rem; color:var(--faphb-green-dark); font-size:clamp(2rem,3.5vw,3.2rem); line-height:1.04; }
.faphb-home-news__heading div > p:last-child { max-width:62ch; margin:0; color:var(--faphb-muted); }
.faphb-home-news__heading > a { display:inline-flex; min-height:46px; align-items:center; flex:none; gap:.55rem; padding:.65rem 1rem; border:1px solid #b9ccc0; border-radius:999px; color:var(--faphb-green-dark); font-weight:850; text-decoration:none; }
.faphb-home-news__heading > a:hover { border-color:var(--faphb-green); background:#e5f2e9; }
.faphb-home-news .faphb-posts { grid-template-columns:repeat(3,minmax(0,1fr)); gap:1rem; }
.faphb-home-news .faphb-post { display:flex; min-height:0; flex-direction:column; border:0; border-radius:.8rem; box-shadow:0 16px 38px rgba(3,49,27,.1); }
.faphb-home-news .faphb-post:first-child { background:#073c23; color:#fff; }
.faphb-home-news .faphb-post__image { height:138px; aspect-ratio:auto; }
.faphb-home-news .faphb-post__body { display:flex; min-width:0; flex-direction:column; justify-content:center; padding:1.05rem 1.2rem; }
.faphb-home-news .faphb-post:first-child .faphb-post__body { padding:1.05rem 1.2rem; }
.faphb-post__meta { display:flex; flex-wrap:wrap; align-items:center; gap:.45rem .75rem; margin-bottom:.7rem; }
.faphb-post__meta span { color:#8e201f; font-size:.7rem; font-weight:900; letter-spacing:.08em; text-transform:uppercase; }
.faphb-post__meta time { color:#5a6a60; font-size:.78rem; font-weight:700; }
.faphb-home-news .faphb-post h3 { margin:0 0 .65rem; font-size:1.16rem; line-height:1.25; }
.faphb-home-news .faphb-post h3 a { color:#173c29; text-decoration:none; }
.faphb-home-news .faphb-post p { display:-webkit-box; margin:0; overflow:hidden; color:#526057; font-size:.84rem; line-height:1.55; -webkit-box-orient:vertical; -webkit-line-clamp:2; }
.faphb-home-news .faphb-post__read { display:inline-flex; min-height:34px; align-items:center; gap:.4rem; margin-top:1rem; color:var(--faphb-green-dark); font-size:.82rem; font-weight:850; }
.faphb-home-news .faphb-post:first-child :where(h3 a,.faphb-post__read) { color:#fff; }
.faphb-home-news .faphb-post:first-child h3 { font-size:clamp(1.35rem,2vw,1.8rem); }
.faphb-home-news .faphb-post:first-child p { color:rgba(255,255,255,.8); -webkit-line-clamp:2; }
.faphb-home-news .faphb-post:first-child .faphb-post__meta span { color:#ffe072; }
.faphb-home-news .faphb-post:first-child .faphb-post__meta time { color:rgba(255,255,255,.75); }
@media (max-width:900px) { .faphb-home-news .faphb-posts { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:650px) { .faphb-home-news__heading { display:grid; } .faphb-home-news .faphb-posts { grid-template-columns:1fr; } .faphb-home-news .faphb-post__image { height:170px; } }

/* Scrolling Sustainable Development Goals ribbon */
.faphb-sdgs { overflow:hidden; padding-block:clamp(3rem,5vw,4.5rem); background:#f2f6f3; }
.faphb-sdgs__heading { display:flex; justify-content:space-between; align-items:end; gap:2rem; margin-bottom:1.8rem; }
.faphb-sdgs__heading h2 { margin:0; color:var(--faphb-green-dark); font-size:clamp(1.8rem,3vw,2.8rem); }
.faphb-sdgs__heading > p { max-width:48ch; margin:0; color:var(--faphb-muted); }
.faphb-sdgs__track { display:flex; width:max-content; animation:faphb-sdgs-scroll 48s linear infinite; }
.faphb-sdgs__track:hover,.faphb-sdgs__track:focus-visible { animation-play-state:paused; }
.faphb-sdgs__track:focus-visible { outline:3px solid var(--faphb-focus); outline-offset:4px; }
.faphb-sdgs__group { display:flex; flex:none; gap:.75rem; padding-right:.75rem; }
.faphb-sdgs__sprite { position:absolute; width:0; height:0; overflow:hidden; }
.faphb-sdgs__group > span { position:relative; display:grid; grid-template-columns:60px 1fr; grid-template-rows:52px auto; align-items:center; flex:0 0 205px; min-height:112px; overflow:hidden; border-radius:.55rem; background:var(--sdg); color:#fff; box-shadow:0 9px 22px rgba(3,47,26,.13); }
.faphb-sdgs__group b { position:absolute; top:.4rem; left:.5rem; color:#fff; font-size:.9rem; line-height:1; }
.faphb-sdgs__group svg { grid-row:1/3; width:43px; height:43px; margin-left:.65rem; color:#fff; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }
.faphb-sdgs__group small { align-self:stretch; display:flex; align-items:center; padding:.55rem .75rem .65rem; border-left:1px solid rgba(255,255,255,.38); color:#fff; font-size:.72rem; font-weight:850; line-height:1.25; text-transform:uppercase; }
@keyframes faphb-sdgs-scroll { to { transform:translateX(-50%); } }
@media (max-width:700px) { .faphb-sdgs__heading { display:grid; } .faphb-sdgs__group > span { flex-basis:175px; min-height:105px; grid-template-columns:52px 1fr; } .faphb-sdgs__group svg { width:36px; height:36px; margin-left:.55rem; } }
@media (prefers-reduced-motion:reduce) { .faphb-sdgs__track { width:auto; animation:none; } .faphb-sdgs__group { flex-wrap:wrap; justify-content:center; padding-inline:1rem; } .faphb-sdgs__group[aria-hidden="true"] { display:none; } }
.faphb-posts--archive { align-items: stretch; }
.faphb-posts--archive .faphb-post { display: flex; flex-direction: column; }
.faphb-posts--archive .faphb-post__body { display: flex; flex: 1; flex-direction: column; }
.faphb-posts--archive h2 { margin: .65rem 0; font-size: 1.3rem; line-height: 1.25; }
.faphb-posts--archive h2 a { color: var(--faphb-green-dark); }
.faphb-read-more { margin-top: auto; color: var(--faphb-green-dark); font-weight: 800; }
.faphb-page-hero { position:relative; padding-block: clamp(4rem,8vw,7rem); background-image:linear-gradient(90deg,rgba(2,47,26,.97) 0%,rgba(4,87,49,.84) 55%,rgba(4,87,49,.42) 100%),url('assets/images/hero-plaidoyer.webp'); background-position:center; background-size:cover; color: #fff; }
.faphb-page-hero h1 { margin: 0 0 1rem; color: #fff; font-size: clamp(2.8rem,6vw,5rem); }
.faphb-page-hero p:last-child { max-width: 62ch; font-size: 1.15rem; }
.faphb-pagination { padding-bottom: 4rem; text-align: center; }
.faphb-pagination .page-numbers { display: inline-grid; min-width: 42px; min-height: 42px; place-items: center; margin: .2rem; border: 1px solid #dce5df; border-radius: .25rem; }
.faphb-pagination .current { background: var(--faphb-green); color: #fff; }
.faphb-prose { max-width: 840px; }
.faphb-prose h1:first-child { display: none; }
.faphb-prose h2 { margin-top: 2.2rem; color: var(--faphb-green-dark); font-size: clamp(1.6rem,3vw,2.25rem); }
.faphb-prose p,.faphb-prose li { font-size: 1.08rem; }
.faphb-prose ul { display: grid; gap: .55rem; }

.faphb-post time {
  color: var(--faphb-muted);
  font-size: .9rem;
}

.faphb-post h3 {
  margin: .65rem 0;
  font-size: 1.25rem;
}

.faphb-post h3 a {
  color: var(--faphb-green-dark);
}

.faphb-footer {
  background: #032f1a;
  color: rgba(255, 255, 255, .82);
}

.faphb-footer__grid {
  display: grid;
  grid-template-columns: 1.4fr .7fr 1fr .8fr;
  gap: clamp(1.5rem, 4vw, 3.5rem);
  padding-block: 4rem;
}

.faphb-footer h2,
.faphb-footer__title {
  display: block;
  margin: 0 0 1rem;
  color: var(--faphb-white);
  font-size: 1.25rem;
}

.faphb-footer a {
  color: var(--faphb-yellow);
}

.faphb-footer address {
  font-style: normal;
}

.faphb-footer ul {
  margin: 0;
  padding-left: 1.1rem;
}

.faphb-footer__bottom {
  padding-block: 1.25rem;
  border-top: 1px solid rgba(255, 255, 255, .15);
  font-size: .9rem;
}

@media (max-width: 1220px) {
  .faphb-brand__text small { display: none; }
  .faphb-menu a { padding-inline: .55rem; font-size: .8rem; }
}

@media (max-width: 980px) {
  .faphb-container.faphb-header__inner { flex-wrap: wrap; }
  .faphb-menu-toggle { display: inline-flex; min-height: 44px; align-items: center; gap: .45rem; margin-left: auto; padding: .55rem .8rem; border: 1px solid #cad8d0; border-radius: .4rem; background: #fff; color: var(--faphb-green-dark); font-weight: 800; }
  .faphb-header__tools { margin-left: 0; }
  .faphb-nav { display: none; width: 100%; order: 4; margin: 0; }
  .faphb-nav.is-open { display: block; }
  .faphb-menu { display: grid; grid-template-columns: repeat(3,1fr); margin: .5rem 0 1rem; border-radius: .6rem; }
  .faphb-menu a { text-align: center; }
  .faphb-menu .sub-menu { position: static; display: grid; margin: 0 .35rem .35rem; box-shadow: none; opacity: 1; pointer-events: auto; transform: none; }
  .faphb-video-grid { grid-template-columns: repeat(2,1fr); }
  .faphb-search-results { grid-template-columns: repeat(2,1fr); }
}

@media (max-width: 900px) {
  .faphb-contact-hero__inner,.faphb-contact-location__inner { grid-template-columns: 1fr; }
  .faphb-contact-form-section__inner { grid-template-columns: 1fr; }
  .faphb-contact-cards { grid-template-columns: repeat(2,1fr); }
  .faphb-contact-hero__visual,.faphb-contact-hero__visual img { min-height: 430px; }
  .faphb-president__message { grid-template-columns: minmax(230px,.55fr) minmax(0,1.45fr); gap: 2rem; }
  .faphb-president__portrait img { height: 400px; }
  .faphb-donate-hero__inner,.faphb-donate-contact__inner,.faphb-donate-ways__inner,.faphb-donate-faq__inner { grid-template-columns: 1fr; }
  .faphb-donate-impact { grid-template-columns: 1fr; }
  .faphb-donate-choice__grid { grid-template-columns: 1fr; }
  .faphb-donate-choice__card { min-height: 0; }
  .faphb-donate-bank-grid { grid-template-columns: 1fr; }
  .faphb-donate-contact__footer { align-items: flex-start; flex-direction: column; }
  .faphb-org-branches { grid-template-columns: repeat(2,1fr); }
  .faphb-donate-process ol { grid-template-columns: 1fr; }
  .faphb-album-grid { grid-template-columns: repeat(3,1fr); }
  .faphb-donate-hero__visual,.faphb-donate-hero__visual img { min-height: 430px; }
  .faphb-actions-feature { grid-template-columns: 1fr; }
  .faphb-actions-feature__visual { min-height: 420px; }
  .faphb-actions-feature__visual img { min-height: 420px; }
  .faphb-grid,
  .faphb-posts {
    grid-template-columns: repeat(2, 1fr);
  }

  .faphb-programs__grid { grid-template-columns: 1fr; margin: -2rem 1rem 0; }
  .faphb-programs__visual,.faphb-programs__visual img { min-height: 450px; }
  .faphb-partners__logos { grid-template-columns: repeat(3,1fr); }
  .faphb-impact__inner { grid-template-columns: 1fr; }
  .faphb-impact__heading h2 { max-width: 20ch; }
  .faphb-impact__grid { grid-template-columns: repeat(2,1fr); }
  .faphb-about__grid { grid-template-columns: 1fr; }
  .faphb-footer__grid { grid-template-columns: repeat(2,1fr); }
  .faphb-cta__inner { min-height: auto; grid-template-columns: 1fr; }
  .faphb-cta__visual,.faphb-cta__visual img { min-height: 280px; }
}

@media (max-width: 640px) {
  .faphb-donate-hero__visual,.faphb-donate-hero__visual img { min-height: 340px; }
  .faphb-donate-choice__card { padding: 1.35rem; }
  .faphb-donate-bank { padding: 1.2rem; }
  .faphb-donate-contact__footer { gap: 1rem; }
  .faphb-donate-contact__footer .faphb-donate-contact__actions { width: 100%; }
  .faphb-org-hero { padding-block: 4rem; }
  .faphb-org-advisory,.faphb-org-branches { grid-template-columns: 1fr; }
  .faphb-org-branches { padding-top: 0; border-top: 0; }
  .faphb-org-branches article::before { display: none; }
  .faphb-org-branches .faphb-org-node { min-height: 0; }
  .faphb-donate-hero__actions { align-items: stretch; flex-direction: column; }
  .faphb-album-hero { padding-block: 4rem; }
  .faphb-album-gallery__heading { display: block; margin-bottom: 1.8rem; }
  .faphb-album-gallery__heading > p { margin-top: .7rem; }
  .faphb-album-grid { grid-template-columns: repeat(2,1fr); gap: .7rem; }
  .faphb-album-card,.faphb-album-card img { min-height: 150px; }
  .faphb-album-card > span { opacity: 1; padding: .7rem; }
  .faphb-album-card > span b { font-size: .72rem; }
  .faphb-album-modal__nav { width: 44px; height: 44px; font-size: 2.5rem; }
  .faphb-album-modal__nav--previous { left: .4rem; }
  .faphb-album-modal__nav--next { right: .4rem; }
  .faphb-contact-cards { grid-template-columns: 1fr; }
  .faphb-form-grid { grid-template-columns: 1fr; gap: 0; }
  .faphb-contact-hero__visual,.faphb-contact-hero__visual img { min-height: 340px; }
  .faphb-contact-map,.faphb-contact-map iframe { min-height: 360px; height: 360px; }
  .faphb-contact-final__inner { align-items: flex-start; flex-direction: column; }
  .faphb-president { padding-block: 3rem; }
  .faphb-president__message { grid-template-columns: 1fr; gap: 1.5rem; }
  .faphb-president__portrait { max-width: 360px; }
  .faphb-president__portrait img { height: 390px; }
  .faphb-president__signature { align-items: flex-start; flex-wrap: wrap; }
  .faphb-president__signature > a { width: 100%; }
  .faphb-whatsapp { width: 52px; justify-content: center; padding: 0; }
  .faphb-whatsapp__label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
  .faphb-cta { padding-block: 2rem; }
  .faphb-cta__inner { border-radius: .8rem; }
  .faphb-cta__visual,.faphb-cta__visual img { min-height: 250px; }
  .faphb-programs__visual,.faphb-programs__visual img { min-height: 390px; }
  .faphb-programs__visual figcaption { right: 1.4rem; bottom: 2.5rem; left: 1.4rem; }
  .faphb-programs__grid { margin: 1rem 0 0; }
  .faphb-actions-feature__visual { min-height: 360px; border-radius: .8rem; }
  .faphb-actions-feature__visual img { min-height: 360px; }
  .faphb-slider,.faphb-slide { min-height: 670px; }
  .faphb-slide { background-image: linear-gradient(90deg,rgba(2,34,19,.96),rgba(2,34,19,.72)),var(--slide-image); background-position: 62% center; }
  .faphb-slide__inner { align-items: flex-end; padding-block: 4rem 7.5rem; }
  .faphb-slide h1,.faphb-slide h2 { font-size: clamp(2.45rem,11vw,3.3rem); }
  .faphb-slider__pause { margin-left: auto; }
  .faphb-impact__grid { grid-template-columns: 1fr 1fr; }
  .faphb-impact__grid > div { min-height: 150px; padding: 1.1rem; }
  .faphb-impact strong { font-size: 1.8rem; }
  .faphb-about__visual { min-height: 360px; }
  .faphb-partners__logos { grid-template-columns: repeat(2,1fr); }
  .faphb-topbar__inner { align-items: flex-start; flex-direction: column; gap: .3rem; padding-block: .55rem; }
  .faphb-topbar__contacts { gap: .35rem 1rem; }
  .faphb-footer__top-inner,.faphb-footer__bottom > .faphb-container { align-items: flex-start; flex-direction: column; padding-block: 1.5rem; }
  .faphb-footer__grid { grid-template-columns: 1fr; }
  .faphb-hero {
    min-height: auto;
  }

  .faphb-grid,
  .faphb-posts,
  .faphb-network,
  .faphb-footer__grid {
    grid-template-columns: 1fr;
  }

  .faphb-header__inner {
    min-height: auto;
    gap: .75rem;
    padding-block: 1rem;
  }

  .faphb-menu {
    grid-template-columns: 1fr;
    gap: .3rem;
    border: 0;
    border-radius: .5rem;
    background: transparent;
  }

  .faphb-header__donate { width: 100%; justify-content: center; }
  .faphb-header__tools { width: 100%; }
  .faphb-header__tools .faphb-header__donate { width: auto; flex: 1; }
  .faphb-header-search > div,.faphb-search-page__form > div { flex-direction: column; }
  .faphb-search-results { grid-template-columns: 1fr; }
  .faphb-video-library__heading { display: block; margin-bottom: 1.8rem; }
  .faphb-video-library__heading > a { display: inline-block; margin-top: .8rem; }
  .faphb-video-grid { grid-template-columns: 1fr; }
  .faphb-video-card p { min-height: 0; }

  .faphb-a11y__controls,.faphb-a11y__speech { grid-template-columns: 1fr; }

  .faphb-button {
    width: 100%;
  }
}
