/* FIDA Core components. Colours come from the theme (CSS variables); the fallbacks below keep the plugin usable alone. */
:root {
	--fida-indigo: #3d3d94;
	--fida-indigo-dark: #26265f;
	--fida-tint: #eeeef8;
	--fida-ink: #1d1d2b;
	--fida-muted: #51516b;
	--fida-line: rgba(61, 61, 148, .18);
	--fida-accent: #e3a72f;
	--fida-accent-ink: #2b2100;
	--fida-livelihood: #8a4b0f;
	--fida-nutrition: #2f6b2f;
	--fida-climate: #0b6b67;
	--fida-market: #a1340a;
	--fida-wash: #14609e;
	--fida-heading: "Literata", Georgia, "Times New Roman", serif;
	--fida-body: "Public Sans", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
}
.fida-theme--livelihood-sustainability, .fida-tag--livelihood-sustainability { --t: var(--fida-livelihood); }
.fida-theme--nutritional-assurance, .fida-tag--nutritional-assurance { --t: var(--fida-nutrition); }
.fida-theme--climate-resilience, .fida-tag--climate-resilience { --t: var(--fida-climate); }
.fida-theme--market-empowerment, .fida-tag--market-empowerment { --t: var(--fida-market); }
.fida-theme--wash, .fida-tag--wash { --t: var(--fida-wash); }

/* Cards and lists */
ul.fida-themes, ul.fida-models, ul.fida-projects, ul.fida-stories, ul.fida-publications, ul.fida-news, ul.fida-people, ul.fida-opportunities, ul.fida-childpages, ul.fida-partners, ul.fida-counters, ul.fida-sdg, ul.fida-chips, ul.fida-social {
	list-style: none; margin: 0; padding: 0;
}
ul.fida-themes, ul.fida-models, ul.fida-projects, ul.fida-stories, ul.fida-publications, ul.fida-news, ul.fida-people, ul.fida-opportunities, ul.fida-childpages {
	display: grid; gap: 1.25rem; grid-template-columns: repeat(auto-fill, minmax(min(100%, 17rem), 1fr));
}
.fida-card { background: #fff; border: 1px solid var(--fida-line); border-radius: 3px; padding: 1.25rem; display: flex; flex-direction: column; gap: .5rem; }
.fida-card > img, .fida-card > a > img { width: 100%; height: auto; display: block; margin: -1.25rem -1.25rem .5rem; width: calc(100% + 2.5rem); max-width: none; }
.fida-card__title { font-family: var(--fida-heading); font-size: 1.2rem; line-height: 1.3; margin: 0; }
.fida-card__title a { color: inherit; text-decoration: none; }
.fida-card__title a:hover { text-decoration: underline; }
.fida-card p { margin: 0; }
.fida-theme { border-top: 4px solid var(--t, var(--fida-indigo)); }
.fida-theme__icon { color: var(--t, var(--fida-indigo)); display: inline-flex; }
.fida-more { margin-top: auto; display: inline-flex; align-items: center; gap: .4rem; font-weight: 600; color: var(--fida-indigo); text-decoration: none; }
.fida-more:hover { text-decoration: underline; }
.fida-more .fida-icon { width: 1.1rem; height: 1.1rem; }
.fida-model__image { margin: -1.25rem -1.25rem .5rem !important; }

/* Buttons and links */
.fida-button, .wp-block-button.fida-btn-accent .wp-block-button__link {
	display: inline-block; background: var(--fida-indigo); color: #fff; border: 0; border-radius: 3px; padding: .7rem 1.2rem; font: 600 1rem/1.2 var(--fida-body); text-decoration: none; cursor: pointer;
}
.fida-button--accent, .wp-block-button.fida-btn-accent .wp-block-button__link { background: var(--fida-accent); color: var(--fida-accent-ink); }
.fida-link { color: var(--fida-indigo); }
:where(.fida-button, .fida-carousel__btn, .fida-more, .fida-card a, .fida-page):focus-visible { outline: 3px solid var(--fida-accent); outline-offset: 2px; }

/* Counters */
ul.fida-counters { display: grid; gap: 1.5rem 2rem; grid-template-columns: repeat(auto-fit, minmax(10rem, 15rem)); margin: 1rem 0; }
.fida-counters li { display: flex; flex-direction: column; gap: .25rem; }
.fida-counter { font-family: var(--fida-heading); font-weight: 600; font-size: clamp(2.2rem, 5vw, 3.4rem); line-height: 1; color: var(--fida-indigo); font-variant-numeric: lining-nums tabular-nums; }
.fida-counter__label { font-size: .95rem; color: var(--fida-muted); max-width: 16rem; }
.fida-band--indigo .fida-counter { color: #fff; }
.fida-band--indigo .fida-counter__label { color: rgba(255, 255, 255, .85); }

/* Project cards and directory */
.fida-project__meta { font-size: .85rem; color: var(--fida-muted); display: flex; gap: .5rem; align-items: center; flex-wrap: wrap; }
.fida-facts { margin: 0; display: grid; gap: .25rem; font-size: .92rem; }
.fida-facts div { display: grid; grid-template-columns: 4.5rem 1fr; gap: .5rem; }
.fida-facts dt { color: var(--fida-muted); }
.fida-facts dd { margin: 0; }
.fida-tags { display: flex; flex-wrap: wrap; gap: .35rem; margin-top: auto !important; }
.fida-tag { font-size: .78rem; padding: .15rem .55rem; border-radius: 999px; border: 1px solid var(--t, var(--fida-indigo)); color: var(--t, var(--fida-indigo)); background: #fff; }
.fida-badge { font-size: .75rem; padding: .1rem .5rem; border-radius: 3px; background: var(--fida-tint); color: var(--fida-indigo); font-weight: 600; }
.fida-badge--ongoing { background: #dff3e0; color: #1d4d1d; }
.fida-filters { display: grid; gap: .75rem 1rem; grid-template-columns: repeat(auto-fit, minmax(11rem, 1fr)); align-items: end; padding: 1rem; background: var(--fida-tint); border-radius: 3px; margin-bottom: 1rem; }
.fida-filter { margin: 0; display: grid; gap: .25rem; }
.fida-filter label { font-size: .85rem; font-weight: 600; }
.fida-filter select, .fida-filter input[type="search"] { width: 100%; padding: .5rem; border: 1px solid #8f8fb6; border-radius: 3px; background: #fff; font: inherit; }
.fida-filter--search { grid-column: 1 / -1; }
.fida-count { color: var(--fida-muted); margin: .5rem 0 1rem; }
.fida-pagination { display: flex; gap: .4rem; flex-wrap: wrap; margin-top: 1.5rem; }
.fida-page { min-width: 2.5rem; text-align: center; padding: .45rem .7rem; border: 1px solid var(--fida-line); border-radius: 3px; text-decoration: none; color: var(--fida-indigo); }
.fida-page.is-current { background: var(--fida-indigo); color: #fff; border-color: var(--fida-indigo); }

/* Carousel (CSS scroll-snap, controls optional) */
.fida-carousel { position: relative; }
.fida-carousel__track { list-style: none; margin: 0; padding: 0 0 .75rem; display: flex; gap: 1.25rem; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: thin; }
.fida-carousel__track > li { flex: 0 0 min(88%, 21rem); scroll-snap-align: start; }
.fida-carousel__controls { display: flex; gap: .5rem; justify-content: flex-end; margin-bottom: .5rem; }
.fida-carousel__btn { width: 2.5rem; height: 2.5rem; border: 1px solid var(--fida-indigo); background: #fff; color: var(--fida-indigo); border-radius: 3px; font-size: 1.1rem; cursor: pointer; }
.fida-carousel__btn:hover { background: var(--fida-indigo); color: #fff; }
.fida-hero__slides .fida-carousel__track > li { flex-basis: 100%; }

/* Images and placeholders */
.fida-image { margin: 0; overflow: hidden; background: var(--fida-tint); }
.fida-image img { width: 100%; height: 100%; object-fit: cover; display: block; }
.fida-image--placeholder { display: grid; place-items: center; text-align: center; padding: 1rem; 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); }
.fida-image--placeholder figcaption { display: grid; gap: .25rem; font-size: .85rem; }
.fida-image--placeholder code { font-size: .75rem; opacity: .8; }
.fida-placeholder { box-sizing: border-box; margin: 1rem 0; padding: .75rem 1rem; border: 2px dashed #b88a00; background: #fff8e1; color: #4d3a00; border-radius: 3px; font-size: .95rem; }
.fida-placeholder strong { margin-right: .35rem; }

/* Partners */
.fida-partner-group { margin: 0 0 2rem; }
.fida-partner-group h3 { font-family: var(--fida-heading); font-size: 1.15rem; margin: 0 0 .75rem; }
ul.fida-partners { display: grid; gap: .75rem; grid-template-columns: repeat(auto-fill, minmax(13rem, 1fr)); }
.fida-partner { border: 1px solid var(--fida-line); padding: .85rem 1rem; background: #fff; border-radius: 3px; }
.fida-partner a { color: inherit; text-decoration: none; }
.fida-partner img { max-width: 100%; height: 3rem; object-fit: contain; }
.fida-partner__name { font-weight: 600; }
.fida-partner p { margin: .35rem 0 0; }

/* Map */
.fida-map { display: grid; gap: 2rem; grid-template-columns: minmax(0, 1fr); align-items: start; }
@media (min-width: 52rem) { .fida-map { grid-template-columns: minmax(16rem, 24rem) 1fr; } }
.fida-map__figure { margin: 0; }
.fida-map__figure svg { width: 100%; height: auto; }
.fida-map__figure figcaption { font-size: .8rem; color: var(--fida-muted); }
.fida-map__p { stroke: #fff; stroke-width: 3; stroke-linejoin: round; }
.fida-map__p--punjab { fill: var(--fida-indigo); }
.fida-map__p--kp { fill: var(--fida-climate); }
.fida-map__p--balochistan { fill: var(--fida-livelihood); }
.fida-map__t { fill: #fff; font: 600 14px var(--fida-body); text-anchor: middle; }
.fida-province h3 { font-family: var(--fida-heading); font-size: 1.15rem; margin: 0 0 .5rem; }
.fida-province__count { font: 400 .9rem var(--fida-body); color: var(--fida-muted); margin-left: .5rem; }
.fida-province { border-left: 4px solid var(--fida-indigo); padding-left: 1rem; margin-bottom: 1.25rem; }
.fida-province--khyber-pakhtunkhwa { border-color: var(--fida-climate); }
.fida-province--balochistan { border-color: var(--fida-livelihood); }
ul.fida-chips { display: flex; flex-wrap: wrap; gap: .4rem; }
.fida-chips li { padding: .2rem .65rem; background: var(--fida-tint); border-radius: 999px; font-size: .9rem; }

/* Timeline */
ol.fida-timeline { list-style: none; margin: 1.5rem 0; padding: 0 0 0 1.5rem; border-left: 3px solid var(--fida-indigo); display: grid; gap: 1.5rem; }
.fida-timeline li { position: relative; }
.fida-timeline li::before { content: ""; position: absolute; left: calc(-1.5rem - 8px); top: .55rem; width: 13px; height: 13px; background: #fff; border: 3px solid var(--fida-indigo); border-radius: 50%; }
.fida-timeline__year { font: 600 1.6rem var(--fida-heading); color: var(--fida-indigo); }
.fida-timeline p { margin: .15rem 0 0; max-width: 40rem; }

/* Misc */
.fida-sdg { display: grid; gap: .5rem; }
.fida-sdg__n { display: inline-grid; place-items: center; width: 1.9rem; height: 1.9rem; background: var(--fida-indigo); color: #fff; border-radius: 3px; font-weight: 700; margin-right: .5rem; }
ul.fida-social { display: flex; gap: 1rem; flex-wrap: wrap; }
.fida-contact { font-style: normal; line-height: 1.8; }
.fida-lang { display: inline-flex; gap: .75rem; list-style: none; margin: 0; padding: 0; font-size: .9rem; }
.fida-lang [aria-disabled="true"] { opacity: .65; }
.fida-story blockquote { margin: 0; font-family: var(--fida-heading); font-style: italic; border-left: 3px solid var(--fida-accent); padding-left: .75rem; }
.fida-person img { border-radius: 3px; }
.fida-empty { color: var(--fida-muted); }
.screen-reader-text { border: 0; clip: rect(1px, 1px, 1px, 1px); clip-path: inset(50%); height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute; width: 1px; word-wrap: normal !important; }
@media (prefers-reduced-motion: reduce) { .fida-carousel__track { scroll-behavior: auto; } }
[dir="rtl"] .fida-timeline, [dir="rtl"] ol.fida-timeline { border-left: 0; border-right: 3px solid var(--fida-indigo); padding: 0 1.5rem 0 0; }
[dir="rtl"] .fida-timeline li::before { left: auto; right: calc(-1.5rem - 8px); }
[dir="rtl"] .fida-province { border-left: 0; border-right: 4px solid var(--fida-indigo); padding: 0 1rem 0 0; }

ul.fida-models { grid-template-columns: repeat(auto-fit, minmax(min(100%, 14.5rem), 1fr)); }
.fida-card__title abbr { text-decoration: none; }
ul.fida-counters--dense .fida-counter, .fida-counters--dense .fida-counter { font-size: clamp(1.9rem, 3.2vw, 2.6rem); }
ul.fida-counters--dense { grid-template-columns: repeat(auto-fit, minmax(9rem, 13rem)); }
