/* FIDA Core 1.1 components: interactive map, hero slider, partner carousel, leadership page, share buttons.
   Colours come from the variables declared in fida-core.css and the theme. */

/* ---------- Interactive district map ---------- */
.fida-map { display: grid; gap: 1.5rem 2rem; grid-template-columns: minmax(0, 1fr); align-items: start; }
.fida-map--full { grid-template-columns: minmax(0, 1fr); }
@media (min-width: 62rem) { .fida-map--full { grid-template-columns: minmax(0, 1.55fr) minmax(18rem, 1fr); } }
.fida-map--mini, .fida-map--province { grid-template-columns: minmax(0, 1fr); }
@media (min-width: 52rem) { .fida-map--mini { grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); } .fida-map--province { grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); } }
.fida-map__stage { min-width: 0; }
.fida-map__viewport { position: relative; background: #f7f7fc; border: 1px solid var(--fida-line); border-radius: 3px; overflow: hidden; }
.fida-map__svg { display: block; width: 100%; height: auto; max-height: 78vh; touch-action: pan-y; user-select: none; -webkit-user-select: none; }
.fida-map--mini .fida-map__svg, .fida-map--province .fida-map__svg { max-height: 30rem; }
.fm-o { fill: #e1e1ee; stroke: #fff; stroke-width: 1; vector-effect: non-scaling-stroke; }
.fm-o:hover { fill: #d2d2e6; }
.fm-d { stroke: #fff; stroke-width: 1.4; vector-effect: non-scaling-stroke; cursor: default; transition: filter .15s; }
.fm-d--punjab { fill: var(--fida-indigo); }
.fm-d--khyber-pakhtunkhwa { fill: var(--fida-climate); }
.fm-d--balochistan { fill: var(--fida-livelihood); }
.fm-d.is-approx { stroke: #ffe39a; stroke-dasharray: 5 3; }
.fm-d.is-dim { fill: #e1e1ee; pointer-events: none; }
.is-enhanced .fm-d { cursor: pointer; }
.fm-d:hover { filter: brightness(1.3); }
.fm-d:focus { outline: none; }
.fm-d:focus-visible { stroke: var(--fida-accent); stroke-width: 3.5; stroke-dasharray: none; }
.fm-d.is-selected { stroke: var(--fida-accent); stroke-width: 3.5; stroke-dasharray: none; filter: none; }
.fm-pv { fill: none; stroke: var(--fida-indigo-dark); stroke-width: 1.5; stroke-linejoin: round; vector-effect: non-scaling-stroke; pointer-events: none; }
.fm-l { fill: var(--fida-indigo-dark); font: 700 30px/1 var(--fida-body); text-anchor: middle; paint-order: stroke; stroke: #fff; stroke-width: 7px; stroke-linejoin: round; pointer-events: none; letter-spacing: .02em; }
.fm-l--s { font-size: 20px; font-weight: 600; fill: var(--fida-muted); }
.fm-l--d { font-size: 13px; font-weight: 600; fill: #fff; stroke: rgba(0, 0, 0, .55); stroke-width: 3px; }
.fida-map--province .fm-l--d { font-size: 15px; }
.fida-map[data-zoom="hi"] .fm-l:not(.fm-l--d) { opacity: 0; }
.fida-map__controls { position: absolute; top: .6rem; right: .6rem; display: grid; gap: .35rem; z-index: 2; }
.fida-map__controls[hidden], .fida-map__hint[hidden], .fida-map__tip[hidden] { display: none; }
.fida-map__zoom { min-width: 2.75rem; min-height: 2.75rem; padding: 0 .5rem; border: 1px solid var(--fida-indigo); background: #fff; color: var(--fida-indigo); border-radius: 3px; font: 700 1.2rem/1 var(--fida-body); cursor: pointer; }
.fida-map__zoom--reset { font-size: .85rem; font-weight: 600; }
.fida-map__zoom:hover:not(:disabled) { background: var(--fida-indigo); color: #fff; }
.fida-map__zoom:disabled { opacity: .5; cursor: default; }
.fida-map__zoom:focus-visible, .fida-map__clear:focus-visible, .fida-map__rowbtn:focus-visible { outline: 3px solid var(--fida-accent); outline-offset: 2px; }
.fida-map__hint { position: absolute; left: .6rem; bottom: .5rem; margin: 0; max-width: 70%; padding: .25rem .5rem; background: rgba(255, 255, 255, .92); color: var(--fida-muted); font-size: .8rem; border-radius: 3px; pointer-events: none; }
.fida-map__tip { position: absolute; z-index: 3; max-width: 16rem; padding: .3rem .6rem; background: var(--fida-indigo-dark); color: #fff; font-size: .85rem; line-height: 1.3; border-radius: 3px; pointer-events: none; white-space: nowrap; }
.fida-map.is-dragging .fida-map__svg { cursor: grabbing; }
.fida-map__legend { list-style: none; margin: .75rem 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: .4rem 1.25rem; font-size: .88rem; color: var(--fida-ink); }
.fida-map__legend li { display: inline-flex; align-items: center; gap: .45rem; }
.fm-sw { display: inline-block; width: 1rem; height: 1rem; border-radius: 2px; background: #e1e1ee; border: 1px solid rgba(38, 38, 95, .3); flex: none; }
.fm-sw--punjab { background: var(--fida-indigo); }
.fm-sw--khyber-pakhtunkhwa { background: var(--fida-climate); }
.fm-sw--balochistan { background: var(--fida-livelihood); }
.fm-sw--approx { background: #fff; border: 2px dashed var(--fida-muted); }
.fida-map__panel { background: #fff; border: 1px solid var(--fida-line); border-top: 4px solid var(--fida-indigo); border-radius: 3px; padding: 1.25rem; min-height: 14rem; }
.fida-map__panel:focus { outline: 3px solid var(--fida-accent); outline-offset: 2px; }
.fida-map__panel-title { font-family: var(--fida-heading); font-size: 1.35rem; margin: 0 0 .35rem; }
.fida-map__panel-sub { font-size: 1rem; margin: 1rem 0 .35rem; }
.fida-map__panel-prov { display: flex; align-items: center; gap: .4rem; margin: 0 0 .5rem; color: var(--fida-muted); font-weight: 600; }
.fida-map__panel p { margin: 0 0 .6rem; }
.fida-map__note { font-size: .88rem; background: #fff8e1; border-left: 4px solid #b88a00; padding: .5rem .7rem; color: #4d3a00; }
.fida-map__projects { margin: 0 0 .75rem; padding-inline-start: 1.1rem; }
.fida-map__projects li { margin-bottom: .25rem; }
.fida-map__clear { margin-top: .75rem; background: transparent; border: 1px solid var(--fida-indigo); color: var(--fida-indigo); padding: .45rem .9rem; border-radius: 3px; font: 600 .9rem var(--fida-body); cursor: pointer; }
.fida-map__clear:hover { background: var(--fida-indigo); color: #fff; }
.fida-map__text { grid-column: 1 / -1; }
.fida-map__text h3 { font-family: var(--fida-heading); font-size: 1.2rem; margin: .5rem 0 .75rem; }
.fida-tablewrap { overflow-x: auto; }
.fida-map__table { width: 100%; border-collapse: collapse; font-size: .95rem; }
.fida-map__table :where(th, td) { text-align: start; padding: .5rem .7rem; border-bottom: 1px solid var(--fida-line); vertical-align: top; }
.fida-map__table thead th { background: var(--fida-tint); font-size: .85rem; }
.fida-map__table tbody th { font-weight: 600; }
.fida-map__table tr.is-active { background: #fff8e1; }
.fida-map__rowbtn { background: none; border: 0; padding: 0; font: inherit; font-weight: 600; color: var(--fida-indigo); text-decoration: underline; text-underline-offset: .2em; cursor: pointer; text-align: start; }
.fida-map__attrib { grid-column: 1 / -1; margin: 0; font-size: .8rem; color: var(--fida-muted); max-width: 70ch; }
.fida-map__side--mini { display: grid; gap: .75rem; align-content: center; }
.fida-map__lede { margin: 0 0 .25rem; font-size: 1.1rem; }
.fida-provcard { display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding: .9rem 1.1rem; background: #fff; border: 1px solid var(--fida-line); border-left: 6px solid var(--fida-indigo); border-radius: 3px; color: var(--fida-ink); text-decoration: none; }
.fida-provcard--khyber-pakhtunkhwa { border-left-color: var(--fida-climate); }
.fida-provcard--balochistan { border-left-color: var(--fida-livelihood); }
.fida-provcard:hover { box-shadow: 0 6px 18px rgba(38, 38, 95, .12); }
.fida-provcard__name { font: 600 1.1rem var(--fida-heading); }
.fida-provcard__meta { color: var(--fida-muted); font-size: .9rem; }
.fida-map__side--mini .fida-button { justify-self: start; }
ul.fida-provcards { list-style: none; margin: 0; padding: 0; display: grid; gap: 1.25rem; grid-template-columns: repeat(auto-fit, minmax(min(100%, 17rem), 1fr)); }
.fida-provcard2 { border-top: 5px solid var(--fida-indigo); }
.fida-provcard2--khyber-pakhtunkhwa { border-top-color: var(--fida-climate); }
.fida-provcard2--balochistan { border-top-color: var(--fida-livelihood); }
.fida-provcard2__stat { color: var(--fida-muted); }
ul.fida-keyfigures { list-style: none; margin: 1rem 0; padding: 0; display: grid; gap: .75rem; grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr)); }
ul.fida-keyfigures .fida-placeholder { margin: 0; }
.fida-map--province .fida-map__text--list { align-self: center; }
@media (prefers-reduced-motion: reduce) { .fm-d { transition: none; } }

/* ---------- Home hero slider (1.2): the whole photograph is always visible ---------- */
/* ---- Home hero (1.2.1): frosted caption panel, round controls, curved edge, vertical Follow FIDA tab ---- */
.fida-hero2 { --fida-curve: clamp(1.75rem, 4.2vw, 4.5rem); --fida-hero-pad: max(1.25rem, calc((100vw - 70rem) / 2)); position: relative; background: #fff; color: var(--fida-indigo-dark); margin: 0; overflow: hidden; display: flex; flex-direction: column; }
.fida-hero2__slides { display: grid; order: 1; }
.fida-hero2__slide { grid-area: 1 / 1; position: relative; display: flex; flex-direction: column; opacity: 0; visibility: hidden; transition: opacity .6s ease, visibility .6s; }
.fida-hero2__slide.is-active { opacity: 1; visibility: visible; }
.fida-hero2__stage { position: relative; flex: 0 0 auto; width: 100%; aspect-ratio: 16 / 9; max-height: min(80vh, 46rem); background: var(--fida-indigo-dark); overflow: hidden; display: grid; place-items: center; }
.fida-hero2__stage--plain { background: linear-gradient(120deg, #26265f 0%, #3d3d94 70%); }
.fida-hero2__backdrop { position: absolute; inset: -8%; background-size: cover; background-position: center; filter: blur(26px) saturate(1.15); }
.fida-hero2__backdrop::after { content: ""; position: absolute; inset: 0; background: rgba(38, 38, 95, .42); }
.fida-hero2__img { position: absolute; inset: 0 0 var(--fida-curve) 0; z-index: 1; display: block; width: 100%; height: calc(100% - var(--fida-curve)); max-width: none; object-fit: contain; }
.fida-hero2__slide--fill .fida-hero2__img { inset: 0; height: 100%; object-fit: cover; }
.fida-hero2__stage .fida-image { width: 100%; height: 100%; aspect-ratio: auto !important; margin: 0 !important; max-width: none !important; border: 0; }
.fida-hero2__curve { position: absolute; inset-inline: 0; bottom: -1px; z-index: 2; width: 100%; height: var(--fida-curve); display: block; fill: #fff; pointer-events: none; }
/* Caption: a white card under the picture by default (mobile, "Below the image", no script); a frosted panel on the picture on wide screens. */
.fida-hero2__caption { position: relative; z-index: 3; background: #fff; color: var(--fida-indigo-dark); padding: 1.1rem 1.25rem 1.5rem; }
.fida-hero2__title { color: var(--fida-indigo-dark); font-family: var(--fida-heading); font-size: clamp(1.3rem, 5.4vw, 1.7rem); font-weight: 800; letter-spacing: .01em; text-transform: uppercase; line-height: 1.15; margin: 0 0 .65rem; max-width: 56rem; }
.fida-hero2__caption p { color: #2a2a4d; margin: 0 0 1.15rem; font-size: 1.02rem; max-width: 44rem; }
.fida-hero2__cta { display: inline-flex; align-items: center; gap: .9rem; background: var(--fida-indigo-dark); color: #fff; font-weight: 700; text-decoration: none; padding: .4rem .4rem .4rem 1.4rem; padding-inline: 1.4rem .4rem; border-radius: 999px; line-height: 1.3; transition: background .2s; }
.fida-hero2__cta:hover { background: var(--fida-indigo); color: #fff; }
.fida-hero2__cta-ico { display: grid; place-items: center; width: 2.4rem; height: 2.4rem; border: 2px solid #fff; border-radius: 50%; }
.fida-hero2__cta:focus-visible { outline: 3px solid var(--fida-accent); outline-offset: 0; box-shadow: 0 0 0 5px var(--fida-indigo-dark); }
[dir="rtl"] .fida-hero2__cta-ico svg { transform: scaleX(-1); }
/* Controls */
.fida-hero2__controls { order: 2; display: flex; align-items: center; gap: .65rem; background: #fff; padding: .25rem 1.25rem 1rem; position: relative; z-index: 4; }
.fida-hero2:not(.is-enhanced) .fida-hero2__controls { display: none; }
.fida-hero2__btn { width: 3rem; height: 3rem; padding: 0; border: 0; background: var(--fida-indigo-dark); color: #fff; border-radius: 50%; cursor: pointer; display: inline-grid; place-items: center; box-shadow: 0 2px 8px rgba(0, 0, 0, .28); transition: background .2s; }
.fida-hero2__btn:hover { background: var(--fida-indigo); }
.fida-hero2__btn:focus-visible, .fida-hero2__dot:focus-visible { outline: 3px solid var(--fida-accent); outline-offset: 0; box-shadow: 0 0 0 5px var(--fida-indigo-dark); }
.fida-hero2__btn--prev svg { transform: scaleX(-1); }
[dir="rtl"] .fida-hero2__btn--prev svg { transform: none; }
[dir="rtl"] .fida-hero2__btn--next svg { transform: scaleX(-1); }
.fida-hero2__ico-play, .fida-hero2__ico-pause { display: grid; place-items: center; line-height: 0; }
[data-state="playing"] > .fida-hero2__ico-play, [data-state="paused"] > .fida-hero2__ico-pause { display: none; }
.fida-hero2__dots { list-style: none; margin: 0; margin-inline-start: .35rem; padding: .3rem .6rem; display: flex; gap: .35rem; background: var(--fida-indigo-dark); border-radius: 999px; }
.fida-hero2__dot { width: 1.5rem; height: 1.5rem; padding: 0; border: 0; border-radius: 50%; background: transparent; cursor: pointer; position: relative; }
.fida-hero2__dot::before { content: ""; position: absolute; inset: .4rem; border-radius: 50%; border: 2px solid #fff; background: transparent; }
.fida-hero2__dot.is-active::before { background: var(--fida-accent); border-color: var(--fida-accent); }
/* Follow FIDA: a white vertical tab on the edge on wide screens, a slim row under the controls otherwise. */
.fida-hero2__social { order: 3; position: relative; z-index: 4; display: flex; align-items: center; gap: .75rem; background: #fff; border-block-start: 1px solid #dcdcec; padding: .6rem 1.25rem; }
.fida-hero2__social ul { list-style: none; margin: 0; padding: 0; display: flex; gap: .5rem; }
.fida-hero2__follow { font: 700 .78rem/1 var(--fida-body); letter-spacing: .08em; text-transform: uppercase; color: var(--fida-indigo-dark); }
.fida-hero2__social a { display: grid; place-items: center; width: 2.5rem; height: 2.5rem; border-radius: 50%; border: 1px solid var(--fida-indigo); color: var(--fida-indigo); background: #fff; transition: background .2s, color .2s; }
.fida-hero2__social a:hover { background: var(--fida-accent); color: #2b2100; border-color: var(--fida-accent); }
.fida-hero2__social a:focus-visible { outline: 3px solid var(--fida-indigo-dark); outline-offset: 2px; }
@media (max-width: 40rem) { .fida-hero2__dots { display: none; } }
@media (min-width: 64rem) {
	.fida-hero2__caption { padding: 1.6rem var(--fida-hero-pad) 2rem; }
	.fida-hero2__slide.is-overlay .fida-hero2__stage { flex: 1 1 auto; aspect-ratio: auto; max-height: none; min-height: min(56.25vw, 80vh, 46rem); }
	.fida-hero2__title { font-size: clamp(1.6rem, 2.6vw, 2.6rem); }
	.fida-hero2__slide.is-overlay .fida-hero2__caption { position: absolute; bottom: 5.5rem; inset-inline-start: 0; box-sizing: border-box; width: min(46%, calc(var(--fida-hero-pad) + 32rem)); padding: 2rem 2.5rem 2rem var(--fida-hero-pad); padding-inline: var(--fida-hero-pad) 2.5rem; border-start-end-radius: 1.75rem; border-end-end-radius: 1.75rem; box-shadow: 0 6px 24px rgba(20, 20, 60, .18); }
	.fida-hero2__slide--right.is-overlay .fida-hero2__caption { inset-inline-start: auto; inset-inline-end: 3.9rem; width: min(46%, 34rem); padding-inline: 2.5rem; border-radius: 0; border-start-start-radius: 1.75rem; border-end-start-radius: 1.75rem; }
	.fida-hero2__slide.is-overlay .fida-hero2__title { font-size: clamp(1.5rem, 2.3vw, 2.4rem); }
	.fida-hero2__controls { position: absolute; inset-inline-end: clamp(1rem, 4vw, 3rem); bottom: 1.25rem; background: transparent; padding: 0; }
	.fida-hero2__social { position: absolute; inset-inline-end: 0; top: clamp(1rem, 4vh, 2.5rem); flex-direction: column; gap: .7rem; padding: 1rem .55rem; border: 0; border-start-start-radius: 1rem; border-end-start-radius: 1rem; box-shadow: 0 4px 18px rgba(20, 20, 60, .22); }
	.fida-hero2__social ul { flex-direction: column; }
	.fida-hero2__follow { writing-mode: vertical-rl; transform: rotate(180deg); }
	[dir="rtl"] .fida-hero2__follow { transform: none; }
}
@supports ((-webkit-backdrop-filter: blur(1px)) or (backdrop-filter: blur(1px))) {
	@media (min-width: 64rem) {
		.fida-hero2__slide.is-overlay .fida-hero2__caption { background: rgba(255, 255, 255, .86); -webkit-backdrop-filter: blur(14px) saturate(1.2); backdrop-filter: blur(14px) saturate(1.2); }
	}
}
[dir="rtl"] .fida-hero2__curve { transform: scaleX(-1); }
[dir="rtl"] .fida-flip { display: inline-block; transform: scaleX(-1); }
@media (prefers-reduced-motion: reduce) { .fida-hero2__slide, .fida-hero2__cta, .fida-hero2__btn, .fida-hero2__social a { transition: none; } }

/* ---------- Unlocking potential: statistic cards ---------- */
ul.fida-unlock { list-style: none; margin: 0; padding: 0; display: grid; gap: 1.25rem; grid-template-columns: repeat(auto-fit, minmax(min(100%, 18rem), 1fr)); }
.fida-statcard { border-radius: 3px; overflow: hidden; }
.fida-statcard__link { display: flex; flex-direction: column; justify-content: space-between; gap: 1.25rem; height: 100%; padding: 1.75rem; text-decoration: none; color: inherit; min-height: 15rem; }
.fida-statcard.is-indigo { background: var(--fida-indigo); color: #fff; }
.fida-statcard.is-teal { background: var(--fida-climate); color: #fff; }
.fida-statcard.is-gold { background: var(--fida-accent); color: var(--fida-accent-ink); }
.fida-statcard__fig { display: flex; flex-direction: column; gap: .15rem; }
.fida-statcard .fida-counter { color: inherit; font-size: clamp(2.6rem, 5vw, 4rem); }
.fida-statcard__label { font-size: 1.05rem; font-weight: 600; }
.fida-statcard__cta { display: inline-flex; align-items: center; gap: .45rem; font-weight: 700; margin-top: auto; text-decoration: underline; text-underline-offset: .25em; }
.fida-statcard__cta .fida-icon { width: 1.2rem; height: 1.2rem; }
.fida-statcard__link:hover .fida-statcard__cta { text-decoration-thickness: 3px; }
.fida-statcard__link:focus-visible { outline: 3px solid var(--fida-accent); outline-offset: -6px; }
.fida-statcard.is-gold .fida-statcard__link:focus-visible { outline-color: var(--fida-indigo-dark); }

/* ---------- What we do: tile carousel ---------- */
.fida-tiles .fida-carousel__track { gap: 1.25rem; padding-bottom: 1rem; }
.fida-tile { flex: 0 0 min(84%, 19rem); scroll-snap-align: start; display: flex; flex-direction: column; background: #fff; border: 1px solid var(--fida-line); border-top: 5px solid var(--t, var(--fida-indigo)); border-radius: 3px; overflow: hidden; }
@media (min-width: 40rem) { .fida-tile { flex-basis: calc((100% - 1.25rem) / 2); } }
@media (min-width: 64rem) { .fida-tile { flex-basis: calc((100% - 3.75rem) / 4); } }
.fida-tile--livelihood-sustainability { --t: var(--fida-livelihood); }
.fida-tile--nutritional-assurance { --t: var(--fida-nutrition); }
.fida-tile--climate-resilience { --t: var(--fida-climate); }
.fida-tile--market-empowerment { --t: var(--fida-market); }
.fida-tile--wash { --t: var(--fida-wash); }
.fida-tile__imglink { display: block; }
.fida-tile__img { aspect-ratio: 4 / 3 !important; }
.fida-tile__body { display: flex; flex-direction: column; gap: .5rem; padding: 1.1rem 1.25rem 1.25rem; flex: 1; }
.fida-tile__title { font-family: var(--fida-heading); font-size: 1.2rem; margin: 0; color: var(--t, var(--fida-indigo-dark)); }
.fida-tile__title a { color: inherit; text-decoration: none; }
.fida-tile__title a:hover { text-decoration: underline; }
.fida-tile__body p { margin: 0; font-size: .95rem; }
.fida-carousel__btn:disabled { opacity: .4; cursor: default; }
.fida-carousel__btn:disabled:hover { background: #fff; color: var(--fida-indigo); }
div.fida-carousel__track:focus-visible, ul.fida-carousel__track:focus-visible { outline: 3px solid var(--fida-accent); outline-offset: 2px; }

/* ---------- Latest from us ---------- */
ul.fida-latest { list-style: none; margin: 0; padding: 0; display: grid; gap: 1.25rem; grid-template-columns: repeat(auto-fit, minmax(min(100%, 15rem), 1fr)); }
.fida-latest__item { padding: 0; overflow: hidden; gap: .6rem; }
.fida-latest__item > :not(.fida-latest__img) { margin-inline: 1.1rem; }
.fida-latest__item > :last-child { margin-bottom: 1.1rem; }
.fida-latest__img { display: block; aspect-ratio: 16 / 9; overflow: hidden; background: var(--fida-tint); }
.fida-latest__img img { width: 100%; height: 100%; object-fit: cover; display: block; margin: 0; max-width: none; }
.fida-latest__meta { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; margin-top: 1rem !important; }
.fida-pill { font-size: .75rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; padding: .2rem .55rem; border-radius: 3px; background: var(--fida-indigo); color: #fff; }
.fida-pill--story { background: var(--fida-nutrition); }
.fida-pill--publication { background: var(--fida-livelihood); }
.fida-latest__loc { font-size: .85rem; color: var(--fida-muted); }
.fida-latest__loc::before { content: "\2022"; margin-right: .5rem; }
.fida-latest__date { font-size: .85rem; color: var(--fida-muted); }
.fida-tags--top { margin: 0 0 .25rem !important; }

/* ---------- Newsletter band ---------- */
.fida-newsletter { display: grid; gap: 1.5rem 3rem; grid-template-columns: minmax(0, 1fr); align-items: center; max-width: 70rem; margin-inline: auto; }
@media (min-width: 52rem) { .fida-newsletter { grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); } }
.fida-newsletter h2 { margin: 0 0 .5rem; }
.fida-newsletter p { margin: 0; }
.fida-newsletter .fida-placeholder { margin-top: 0; }

/* ---------- Share buttons ---------- */
.fida-share { display: flex; flex-wrap: wrap; align-items: center; gap: .6rem 1rem; margin: 1.25rem 0; padding: .75rem 0; border-block: 1px solid var(--fida-line); }
.fida-share__label { font-weight: 700; color: var(--fida-indigo-dark); }
.fida-share ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: .5rem; }
.fida-share a { display: inline-flex; align-items: center; gap: .45rem; padding: .45rem .8rem; border: 1px solid var(--fida-indigo); border-radius: 999px; color: var(--fida-indigo); text-decoration: none; font-weight: 600; font-size: .9rem; min-height: 2.5rem; }
.fida-share a:hover { background: var(--fida-indigo); color: #fff; }
.fida-share a:focus-visible { outline: 3px solid var(--fida-accent); outline-offset: 2px; }
.fida-ico { flex: none; }
ul.fida-socialicons { list-style: none; margin: 0; padding: 0; display: flex; gap: .6rem; flex-wrap: wrap; }
.fida-socialicons a { display: inline-grid; place-items: center; width: 2.75rem; height: 2.75rem; border: 1px solid currentColor; border-radius: 50%; color: inherit; }
.fida-socialicons a:hover { background: #fff; color: var(--fida-indigo-dark); }
.fida-socialicons a:focus-visible { outline: 3px solid var(--fida-accent); outline-offset: 2px; }
.fida-offices ul { list-style: none; margin: 0; padding: 0; display: grid; gap: .75rem; }
.fida-offices .fida-placeholder { margin: 0; }

/* ---------- Header: FIDA sites menu ---------- */
.fida-sites { position: relative; }
.fida-sites__btn { list-style: none; cursor: pointer; display: inline-flex; align-items: center; gap: .4rem; padding: .3rem .25rem; font-weight: 600; color: #fff; }
.fida-sites__btn::-webkit-details-marker { display: none; }
.fida-sites[open] .fida-sites__caret { transform: rotate(180deg); }
.fida-sites__list { position: absolute; right: 0; top: calc(100% + .4rem); z-index: 60; min-width: 15rem; margin: 0; padding: .4rem; list-style: none; background: #fff; border: 1px solid rgba(61, 61, 148, .25); border-top: 4px solid var(--fida-indigo); box-shadow: 0 10px 30px rgba(38, 38, 95, .18); }
.fida-sites__list a { display: block; padding: .5rem .7rem; color: var(--fida-indigo-dark); text-decoration: none; font-weight: 600; }
.fida-sites__list a:hover { background: var(--fida-tint); text-decoration: underline; }
.fida-sites__ph { padding: .5rem .7rem; font-size: .8rem; color: #4d3a00; background: #fff8e1; }

/* ---------- Partner carousel ---------- */
.fida-partnercar { margin: 0; }
.fida-partnercar__filters { display: flex; flex-wrap: wrap; gap: .5rem; margin-bottom: 1rem; }
.fida-partnercar__tab { border: 1px solid var(--fida-indigo); background: #fff; color: var(--fida-indigo); padding: .45rem .95rem; border-radius: 999px; font: 600 .88rem var(--fida-body); cursor: pointer; min-height: 2.5rem; }
.fida-partnercar__tab:hover { background: var(--fida-tint); }
.fida-partnercar__tab.is-active { background: var(--fida-indigo); color: #fff; }
.fida-partnercar__tab:focus-visible { outline: 3px solid var(--fida-accent); outline-offset: 2px; }
.fida-partnercar__bar { display: flex; justify-content: space-between; align-items: center; gap: 1rem; margin-bottom: .75rem; }
.fida-partnercar__controls { display: flex; gap: .5rem; }
.fida-partnercar:not(.is-enhanced) .fida-partnercar__bar, .fida-partnercar:not(.is-enhanced) .fida-partnercar__filters { display: none; }
.fida-partnercar__status { margin: 0; font-size: .85rem; color: var(--fida-muted); }
.fida-partnercar .fida-carousel__btn { width: 2.75rem; height: 2.75rem; }
.fida-partnercar__track { --per: 2; --gap: 1rem; display: flex; gap: var(--gap); overflow-x: auto; scroll-snap-type: x mandatory; padding: .25rem .25rem 1rem; scrollbar-width: thin; }
@media (min-width: 40rem) { .fida-partnercar__track { --per: 3; } }
@media (min-width: 64rem) { .fida-partnercar__track { --per: 5; } }
.fida-partnercar__track:focus-visible { outline: 3px solid var(--fida-accent); outline-offset: 2px; }
.fida-partnercar__item { flex: 0 0 calc((100% - (var(--per) - 1) * var(--gap)) / var(--per)); scroll-snap-align: start; min-width: 0; }
.fida-partnercar__item[hidden] { display: none; }
.fida-partner__card { display: flex; flex-direction: column; align-items: center; gap: .7rem; height: 100%; padding: 1.1rem .8rem; background: #fff; border: 1px solid var(--fida-line); border-radius: 3px; color: var(--fida-ink); text-decoration: none; text-align: center; box-sizing: border-box; }
a.fida-partner__card:hover { box-shadow: 0 6px 18px rgba(38, 38, 95, .14); border-color: var(--fida-indigo); }
a.fida-partner__card:focus-visible { outline: 3px solid var(--fida-accent); outline-offset: 2px; }
.fida-partner__zone { display: grid; place-items: center; width: 100%; height: 7.25rem; }
.fida-partner__logo { display: grid; place-items: center; background: #fff; border: 1px solid var(--fida-line); overflow: hidden; box-sizing: border-box; }
.fida-partner__logo--circle { width: 6.75rem; height: 6.75rem; border-radius: 50%; padding: 15%; }
.fida-partner__logo--square { width: 6.5rem; height: 6.5rem; border-radius: 10px; padding: 8%; }
.fida-partner__logo--rectangle { width: min(100%, 11rem); height: 5.5rem; border-radius: 8px; padding: 8% 6%; }
.fida-partner__img { display: block; width: 100%; height: 100%; max-width: 100%; max-height: 100%; object-fit: contain; }
.fida-partner__logo.is-placeholder { padding: 0; border: 0; background: transparent; }
.fida-partner__mono { display: grid; place-items: center; width: 100%; height: 100%; background: var(--fida-indigo); color: #fff; font: 600 1.35rem/1 var(--fida-heading); letter-spacing: .02em; border: 3px solid var(--fida-accent); box-sizing: border-box; }
.fida-partner__logo--circle.is-placeholder .fida-partner__mono { border-radius: 50%; }
.fida-partner__logo--square.is-placeholder .fida-partner__mono { border-radius: 10px; }
.fida-partner__logo--rectangle.is-placeholder .fida-partner__mono { border-radius: 8px; }
.fida-partner__name { font-weight: 600; font-size: .95rem; line-height: 1.3; }
.fida-partner__note { font-size: .72rem; padding: .1rem .45rem; background: #fff8e1; border: 1px dashed #b88a00; color: #4d3a00; border-radius: 3px; }
.fida-partner__tags { display: flex; gap: .35rem; flex-wrap: wrap; justify-content: center; }
ul.fida-partnergrid { list-style: none; margin: 0; padding: 0; display: grid; gap: 1rem; grid-template-columns: repeat(auto-fill, minmax(min(100%, 12.5rem), 1fr)); }
ul.fida-partnergrid .fida-partner { padding: 0; border: 0; background: none; }

/* ---------- Leadership and governance ---------- */
.fida-lbanner { display: grid; grid-template-columns: minmax(0, 1fr); background: var(--fida-indigo); color: #fff; overflow: hidden; border-radius: 3px; }
@media (min-width: 52rem) { .fida-lbanner { grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); } }
.fida-lbanner__text { position: relative; display: flex; flex-direction: column; justify-content: center; gap: .75rem; padding: clamp(1.75rem, 5vw, 3.5rem); min-height: 14rem; }
.fida-lbanner__text > :not(.fida-motif) { position: relative; z-index: 1; }
.fida-motif { position: absolute; inset: 0; width: 100%; height: 100%; color: rgba(255, 255, 255, .16); z-index: 0; }
.fida-lbanner__kicker { margin: 0; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; font-size: .85rem; color: var(--fida-accent); }
.fida-lbanner__statement { margin: 0; font: 600 clamp(1.4rem, 2.8vw, 2.1rem)/1.25 var(--fida-heading); color: #fff; max-width: 28ch; }
.fida-lbanner__photo { min-height: 14rem; }
.fida-lbanner__img { height: 100%; min-height: 14rem; width: 100%; aspect-ratio: auto !important; border: 0; }
ul.fida-gov { list-style: none; margin: 0; padding: 0; display: grid; gap: 1.25rem; grid-template-columns: repeat(auto-fit, minmax(min(100%, 10rem), 1fr)); }
.fida-gov__card { display: flex; flex-direction: column; gap: .35rem; padding: 1.25rem; background: #fff; border: 1px solid var(--fida-line); border-top: 5px solid var(--fida-accent); border-radius: 3px; }
.fida-gov__value { font: 600 clamp(2rem, 4vw, 2.8rem)/1.1 var(--fida-heading); color: var(--fida-indigo); }
.fida-gov__value--ph { font: 600 .85rem/1.3 var(--fida-body); color: #4d3a00; background: #fff8e1; border: 2px dashed #b88a00; padding: .45rem .6rem; border-radius: 3px; align-self: flex-start; }
.fida-gov__label { color: var(--fida-muted); font-weight: 600; }
.fida-portrait { display: block; aspect-ratio: 4 / 5; overflow: hidden; background: var(--fida-tint); width: 100%; box-sizing: border-box; }
.fida-portrait img { width: 100%; height: 100%; object-fit: cover; display: block; }
.fida-portrait--ph { display: grid; place-content: center; gap: .3rem; text-align: center; padding: .75rem; border: 2px dashed #8f8fb6; background: repeating-linear-gradient(135deg, var(--fida-tint), var(--fida-tint) 14px, #e4e4f4 14px, #e4e4f4 28px); color: var(--fida-indigo-dark); font-size: .8rem; }
.fida-portrait--ph strong { font-size: .78rem; }
.fida-portrait--mono { display: grid; place-items: center; background: var(--fida-indigo); color: #fff; font: 600 clamp(2rem, 6vw, 3rem) var(--fida-heading); letter-spacing: .05em; }
.fida-spot { display: grid; gap: 1.5rem; grid-template-columns: repeat(auto-fit, minmax(min(100%, 24rem), 1fr)); }
.fida-spot__card { display: grid; gap: 1.25rem; grid-template-columns: minmax(0, 11rem) minmax(0, 1fr); align-items: start; padding: 1.25rem; background: #fff; border: 1px solid var(--fida-line); border-left: 6px solid var(--fida-indigo); border-radius: 3px; }
.fida-spot__card--ceo { border-left-color: var(--fida-accent); }
@media (max-width: 36rem) { .fida-spot__card { grid-template-columns: minmax(0, 1fr); } .fida-spot__photo { max-width: 14rem; } }
.fida-spot__slotimg { aspect-ratio: 4 / 5 !important; }
.fida-spot__role { margin: 0; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; font-size: .8rem; color: var(--fida-indigo); }
.fida-spot__name { margin: .15rem 0 .75rem; font: 600 1.4rem var(--fida-heading); }
.fida-spot__ph { color: #4d3a00; font-size: 1rem; }
.fida-spot__quote { margin: 0 0 .75rem; font: italic 1.15rem/1.45 var(--fida-heading); border-left: 3px solid var(--fida-accent); padding-left: .85rem; }
.fida-spot__body .fida-placeholder { margin: 0 0 .6rem; }
.fida-team__tabs { display: flex; flex-wrap: wrap; gap: .5rem; margin-bottom: 1rem; }
.fida-team__tab { border: 1px solid var(--fida-indigo); background: #fff; color: var(--fida-indigo); padding: .45rem .95rem; border-radius: 999px; font: 600 .88rem var(--fida-body); cursor: pointer; min-height: 2.5rem; }
.fida-team__tab.is-active { background: var(--fida-indigo); color: #fff; }
.fida-team__tab:focus-visible, .fida-person2__btn:focus-visible, .fida-dialog__close:focus-visible, .fida-oc__node:focus-visible, .fida-oc__person:focus-visible { outline: 3px solid var(--fida-accent); outline-offset: 2px; }
.fida-team__status { margin: 0 0 .5rem; font-size: .85rem; color: var(--fida-muted); min-height: 1.2em; }
ul.fida-team__grid { list-style: none; margin: 0; padding: 0; display: grid; gap: 1rem; grid-template-columns: repeat(auto-fill, minmax(min(100%, 9.5rem), 1fr)); }
.fida-person2[hidden] { display: none; }
.fida-person2__btn { display: flex; flex-direction: column; gap: .35rem; width: 100%; padding: 0; border: 0; background: none; text-align: start; font: inherit; color: inherit; cursor: pointer; }
.fida-person2__btn .fida-portrait { border-radius: 3px; transition: box-shadow .15s; }
.fida-person2__btn:hover .fida-portrait { box-shadow: 0 8px 22px rgba(38, 38, 95, .25); }
.fida-person2__name { font: 600 1.05rem/1.25 var(--fida-heading); margin-top: .35rem; display: block; }
.fida-person2__role { color: var(--fida-muted); font-size: .9rem; display: block; }
.fida-person2__more { color: var(--fida-indigo); font-weight: 700; font-size: .85rem; text-decoration: underline; text-underline-offset: .2em; }
.fida-person2--ph .fida-person2__name, .fida-person2--ph .fida-person2__role { color: #4d3a00; }
.fida-person2--ph { display: flex; flex-direction: column; gap: .35rem; }
.fida-team__empty { color: var(--fida-muted); grid-column: 1 / -1; }
html.fida-lock { overflow: hidden; }
dialog.fida-dialog { border: 0; padding: 0; width: min(54rem, calc(100vw - 1.5rem)); max-width: none; max-height: calc(100vh - 2rem); border-radius: 3px; box-shadow: 0 24px 60px rgba(29, 29, 43, .45); color: var(--fida-ink); background: #fff; overflow: auto; }
dialog.fida-dialog::backdrop { background: rgba(29, 29, 43, .62); }
.fida-dialog__inner { position: relative; display: grid; gap: 1.5rem; grid-template-columns: minmax(0, 1fr); padding: 1.5rem; }
@media (min-width: 42rem) { .fida-dialog__inner { grid-template-columns: minmax(0, 15rem) minmax(0, 1fr); padding: 2rem; } }
.fida-dialog__photo .fida-portrait, .fida-dialog__photo img { width: 100%; max-width: 15rem; aspect-ratio: 4 / 5; object-fit: cover; display: block; border-radius: 3px; }
.fida-dialog__close { position: absolute; top: .5rem; right: .5rem; width: 2.75rem; height: 2.75rem; border: 1px solid var(--fida-indigo); background: #fff; color: var(--fida-indigo); border-radius: 3px; font-size: 1.6rem; line-height: 1; cursor: pointer; }
.fida-dialog__close:hover { background: var(--fida-indigo); color: #fff; }
.fida-dialog__group { margin: 0; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; font-size: .78rem; color: var(--fida-indigo); }
.fida-dialog__title { margin: .2rem 2.5rem .15rem 0; font: 600 1.6rem/1.2 var(--fida-heading); }
.fida-dialog__role { margin: 0 0 .75rem; color: var(--fida-muted); font-weight: 600; }
.fida-dialog__facts { margin: 0 0 1rem; display: grid; grid-template-columns: max-content 1fr; gap: .2rem 1rem; }
.fida-dialog__facts dt { color: var(--fida-muted); }
.fida-dialog__facts dd { margin: 0; font-weight: 600; }
.fida-dialog__areas h4 { margin: 0 0 .4rem; font-size: 1rem; }
.fida-dialog__bio { margin-top: 1rem; }
.fida-dialog__bio p { margin: 0 0 .75rem; }
.fida-dialog__li { margin: .5rem 0 0; }

/* Organisation chart */
.fida-oc__visual[hidden] { display: none; }
.fida-oc__stage { position: relative; padding: .5rem 0 1rem; overflow: hidden; }
.fida-oc__lines { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; z-index: 0; overflow: visible; }
.fida-oc__edge { fill: none; stroke: var(--fida-indigo); stroke-width: 2.2; stroke-linecap: round; opacity: .5; transition: opacity .2s; }
.fida-oc__edge.is-on { stroke: var(--fida-accent); stroke-width: 3.4; opacity: 1; }
.fida-oc__edge.is-off { opacity: .12; }
.fida-oc__rows { position: relative; z-index: 1; display: grid; gap: clamp(2.5rem, 5vw, 3.75rem); }
.fida-oc__row { display: flex; justify-content: center; flex-wrap: wrap; gap: 1rem 1.25rem; }
.fida-oc__node { display: flex; flex-direction: column; align-items: center; gap: .3rem; min-width: 10.5rem; max-width: 15rem; padding: .85rem 1rem .8rem; background: #fff; color: var(--fida-ink); border: 2px solid var(--fida-indigo); border-radius: 14px; font: 600 .95rem/1.25 var(--fida-body); text-align: center; cursor: pointer; transition: opacity .2s, box-shadow .2s; }
.fida-oc__node:hover { box-shadow: 0 6px 18px rgba(38, 38, 95, .25); }
.fida-oc__dot { width: .8rem; height: .8rem; border-radius: 50%; background: var(--fida-indigo); box-shadow: 0 0 0 3px #fff, 0 0 0 5px var(--fida-accent); margin-bottom: .2rem; }
.fida-oc__count { font-size: .78rem; font-weight: 500; color: var(--fida-muted); }
.fida-oc__node--l0 { background: var(--fida-indigo-dark); color: #fff; border-color: var(--fida-indigo-dark); }
.fida-oc__node--l1 { background: var(--fida-indigo); color: #fff; border-color: var(--fida-indigo); }
.fida-oc__node--l2 { background: var(--fida-tint); border-color: var(--fida-indigo); }
.fida-oc__node--l0 .fida-oc__dot, .fida-oc__node--l1 .fida-oc__dot { background: var(--fida-accent); box-shadow: 0 0 0 3px rgba(255, 255, 255, .9); }
.fida-oc__node--l0 .fida-oc__count, .fida-oc__node--l1 .fida-oc__count { color: rgba(255, 255, 255, .85); }
.fida-oc__node.is-selected { outline: 4px solid var(--fida-accent); outline-offset: 2px; }
.fida-oc__node.is-dim { opacity: .45; }
.fida-oc__hint { margin: .5rem 0 1rem; color: var(--fida-muted); font-size: .88rem; }
.fida-oc__panel { background: #fff; border: 1px solid var(--fida-line); border-top: 4px solid var(--fida-indigo); border-radius: 3px; padding: 0 1.25rem; min-height: 0; }
.fida-oc__panel:not(:empty) { padding: 1.1rem 1.25rem; }
.fida-oc__panel:focus { outline: 3px solid var(--fida-accent); outline-offset: 2px; }
.fida-oc__ptitle { margin: 0 0 .4rem; font: 600 1.25rem var(--fida-heading); }
.fida-oc__psub { margin: .75rem 0 .3rem; font-size: 1rem; }
.fida-oc__rel { margin: 0 0 .35rem; color: var(--fida-muted); font-size: .92rem; }
.fida-oc__people { margin: 0; padding-inline-start: 1.1rem; }
.fida-oc__person { background: none; border: 0; padding: 0; font: inherit; font-weight: 700; color: var(--fida-indigo); text-decoration: underline; text-underline-offset: .2em; cursor: pointer; }
.fida-oc__text { margin-top: 1rem; border: 1px solid var(--fida-line); border-radius: 3px; padding: .5rem 1rem; background: #fff; }
.fida-oc__text summary { cursor: pointer; font-weight: 700; padding: .35rem 0; }
.fida-oc__text ul { margin: .25rem 0; padding-inline-start: 1.25rem; }
.fida-oc__text li { margin: .35rem 0; }
.fida-oc__desc, .fida-oc__also { color: var(--fida-muted); font-size: .92rem; }
.fida-accordion { display: grid; gap: .6rem; }
.fida-accordion__item { background: #fff; border: 1px solid var(--fida-line); border-radius: 3px; }
.fida-accordion__item summary { cursor: pointer; padding: 1rem 1.25rem; font: 600 1.1rem var(--fida-heading); list-style: none; display: flex; justify-content: space-between; align-items: center; gap: 1rem; }
.fida-accordion__item summary::-webkit-details-marker { display: none; }
.fida-accordion__item summary::after { content: "+"; font: 700 1.5rem/1 var(--fida-body); color: var(--fida-indigo); flex: none; }
.fida-accordion__item[open] summary::after { content: "\2212"; }
.fida-accordion__item summary:focus-visible { outline: 3px solid var(--fida-accent); outline-offset: -3px; }
.fida-accordion__body { padding: 0 1.25rem 1.25rem; }
.fida-accordion__body .fida-placeholder { margin-top: 0; }
@media (prefers-reduced-motion: reduce) { .fida-oc__edge, .fida-oc__node, .fida-person2__btn .fida-portrait { transition: none; } }

/* Scrollers must be the containing block for visually hidden text, otherwise it extends the page width. */
.fida-carousel__track, .fida-partnercar__track, .fida-partnergrid, .fida-team__grid { position: relative; }
.fida-hero2 { overflow: hidden; }
.fida-hero2__media .fida-image { margin: 0 !important; max-width: 100% !important; }
/* 1.2: logos are always contained in their frame, whatever the global image rules say */
.fida-partner__logo > .fida-partner__img { width: 100% !important; height: 100% !important; max-width: 100% !important; max-height: 100% !important; object-fit: contain !important; }
.fida-partner__logo:not(.is-placeholder) { grid-template-columns: minmax(0, 1fr); grid-template-rows: minmax(0, 1fr); }
.fida-partner__logo > .fida-partner__img { min-width: 0; min-height: 0; }
