/* ============================================================
   Praja Sarathi Foundation — brand overrides for EcoNest theme
   Palette: Mustard Yellow + Olive Green (client brand)
   Loaded AFTER main.css
   ============================================================ */

:root {
	/* main.css defaults: #85BF18 / #99EF68 / #FFE175 / #004540 */
	--theme-color: #E0B030;        /* mustard yellow — primary accent  */
	--theme-shade-color: #F2CE63;  /* light mustard — hovers/shades    */
	--theme-color-2: #F7E7B4;      /* pale mustard — soft highlights   */
	--theme-color-3: #2A3D1F;      /* deep olive green — dark surfaces */
	--body-color: #5a6648;
	/* Client brand type: place Lulu files in assets/theme/fonts/lulu/ (see README there) */
	--lulu-font: "Lulu", "Laila", "Albert Sans", sans-serif;
	--outfit-font: "Lulu", "Laila", "Outfit", sans-serif;
	--albert-sans-font: "Lulu", "Laila", "Albert Sans", sans-serif;
	--dm-sans-font: "Lulu", "Laila", "DM Sans", sans-serif;
	/* Override Bootstrap's default blue links */
	--bs-link-color: #2A3D1F;
	--bs-link-color-rgb: 42, 61, 31;
	--bs-link-hover-color: #C99417;
	--bs-link-hover-color-rgb: 201, 148, 23;
}

body,
h1, h2, h3, h4, h5, h6,
.common-title h1,
.common-title h2,
.common-title h3,
.ps-brand-name,
.ps-hero-content h1,
.ps-hero-content .subtitle,
.ps-programs-head h2,
.ps-programs-kicker,
.ps-programs-lede,
.ps-programs-all,
.main-menu ul li a {
	font-family: var(--lulu-font) !important;
}

/*
 * Lulu/Laila have tall metrics — EcoNest’s tight leading (often lh < font-size)
 * makes multi-line headings collide. Floor line-height for display titles.
 * Leave single-digit counters / date stamps alone (event-date, achievements, etc.).
 */
h1, h2, h3, h4, h5, h6 {
	line-height: 1.3;
}

.common-title h1,
.common-title h2,
.common-title h3,
.breadcrumb-title h2,
.hero-content-1 .title h1,
.hero-content-2 .title h1,
.hero-content-3 .title h1,
.hero-content-4 .common-title h1,
.hero-content-5 .title h1,
.ps-hero-content h1,
.event-card-2 .card-content .event-card-title h2,
.event-card-3 .card-content .event-card-title h2,
.event-card-middle h2,
.major-partners .partners-title h3,
.major-partners .partners-title-2 h3,
.details-subtitle h4 {
	line-height: 1.25 !important;
}

/* Theme had lh 20/14/8px on 28/24/20px type — lines overlapped with Lulu */
.work-process-cards .work-process-card .card-content h4 {
	max-width: 240px;
	font-size: 28px;
	line-height: 1.3 !important;
	margin: 0 0 12px;
}

@media (max-width: 1399px) {
	.work-process-cards .work-process-card .card-content h4 {
		font-size: 24px;
		line-height: 1.3 !important;
	}
}

@media (max-width: 991px) {
	.work-process-cards .work-process-card .card-content h4 {
		font-size: 22px;
		line-height: 1.3 !important;
	}
}

/* Links: olive by default, mustard on hover — never browser/Bootstrap blue */
a,
a:link,
a:visited {
	color: var(--theme-color-3);
	text-decoration: none;
}

a:hover,
a:focus,
a:active {
	color: #C99417;
	text-decoration: none;
}

/* Breathing room between page content and footer */
main {
	margin-bottom: 72px;
}

.service-card .service-content a,
.service-card .service-content a:visited {
	color: var(--theme-color-3);
}

.service-card .service-content a:hover {
	color: #C99417;
}

/* Keep footer / dark surfaces light */
.footer-section a,
.footer-section a:visited,
.footer-widget a,
.footer-widget a:visited,
.about-widget .social-links a,
.about-widget .social-links a:visited {
	color: rgba(255, 255, 255, 0.85);
}

.footer-section a:hover,
.footer-widget a:hover,
.footer-widget ul li a:hover {
	color: var(--theme-color-2);
}

.about-widget .social-links a:hover {
	color: var(--theme-color-3);
}

/* ---------- Brand mark (circular seal + wordmark) ---------- */
.ps-brand {
	display: flex;
	align-items: center;
	gap: 12px;
	text-decoration: none;
}

.ps-brand img {
	width: 58px;
	height: 58px;
	border-radius: 50%;
	object-fit: cover;
	box-shadow: 0 2px 10px rgba(42, 61, 31, 0.25);
	flex-shrink: 0;
}

.ps-brand .ps-brand-text {
	display: flex;
	flex-direction: column;
	line-height: 1.15;
}

.ps-brand .ps-brand-name {
	font-family: "Outfit", sans-serif;
	font-size: 24px;
	font-weight: 700;
	color: var(--theme-color-3);
	letter-spacing: 0.2px;
}

.ps-brand .ps-brand-name b {
	color: #C99417;
	font-weight: 800;
}

.ps-brand .ps-brand-tagline {
	font-family: "Noto Sans Telugu", "DM Sans", sans-serif;
	font-size: 11.5px;
	font-weight: 600;
	color: #6B7A4F;
	margin-top: 3px;
}

/* light variant for footer / off-canvas on dark backgrounds */
.ps-brand.is-light .ps-brand-name { color: #ffffff; }
.ps-brand.is-light .ps-brand-name b { color: var(--theme-color); }
.ps-brand.is-light .ps-brand-tagline { color: rgba(255, 255, 255, 0.75); }

.header-section .logo-wrap,
.header-section-4 .logo-wrap {
	overflow: visible;
	position: relative;
	z-index: 5;
}

.header-section .logo-wrap .ps-brand img,
.header-section-4 .logo-wrap .ps-brand img {
	width: 52px;
	height: 52px;
}

.header-section .header-bottom,
.header-section-4 .header-bottom {
	padding-top: 14px;
	padding-bottom: 14px;
	overflow: visible;
}

.header-section-4 .header-bottom {
	position: relative;
	z-index: 210;
}

@media (max-width: 575px) {
	.ps-brand img { width: 46px; height: 46px; }
	.ps-brand .ps-brand-name { font-size: 19px; }
	.ps-brand .ps-brand-tagline { font-size: 10px; }
}

/* ---------- Telugu type helper ---------- */
.ps-telugu {
	font-family: "Noto Sans Telugu", "DM Sans", sans-serif;
	font-weight: 600;
}

/* ---------- Gallery page ---------- */
.ps-gallery-item {
	position: relative;
	display: block;
	overflow: hidden;
	border-radius: 16px;
	margin-bottom: 24px;
}

.ps-gallery-item img {
	width: 100%;
	height: 280px;
	object-fit: cover;
	display: block;
	transition: transform 0.5s ease;
}

.ps-gallery-item:hover img { transform: scale(1.06); }

.ps-gallery-item .ps-gallery-label {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	padding: 32px 18px 14px;
	background: linear-gradient(to top, rgba(42, 61, 31, 0.85), transparent);
	color: #fff;
	font-family: "Outfit", sans-serif;
	font-size: 15px;
	font-weight: 600;
	letter-spacing: 0.3px;
}

/* ---------- Small polish ---------- */
.hero-content-4 h1 { text-wrap: balance; }

/* donate page: bank details card */
.ps-bank-card {
	background: #FBF6E7;
	border: 1px solid #EBDCAE;
	border-radius: 16px;
	padding: 30px;
}

.ps-bank-card h4 {
	color: var(--theme-color-3);
	margin-bottom: 18px;
}

.ps-bank-card ul { list-style: none; margin: 0; padding: 0; }

.ps-bank-card ul li {
	display: flex;
	justify-content: space-between;
	gap: 16px;
	padding: 10px 0;
	border-bottom: 1px dashed #E3D49F;
	font-family: "DM Sans", sans-serif;
	font-size: 15.5px;
}

.ps-bank-card ul li:last-child { border-bottom: none; }
.ps-bank-card ul li span:first-child { color: #6B7A4F; }
.ps-bank-card ul li span:last-child { font-weight: 700; color: var(--theme-color-3); text-align: right; }

.ps-bank-note {
	margin-top: 16px;
	padding: 14px 18px;
	background: rgba(224, 176, 48, 0.14);
	border-left: 4px solid var(--theme-color);
	border-radius: 6px;
	font-size: 14.5px;
	color: #55632F;
}

/* partner text strip instead of fake logos */
.ps-partner-strip {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 14px 40px;
	padding: 10px 0;
}

.ps-partner-strip span {
	font-family: "Outfit", sans-serif;
	font-size: 22px;
	font-weight: 600;
	color: #8A9370;
	letter-spacing: 0.5px;
}

/* pull-quote (Gandhi quote, founder message) */
.ps-quote {
	background: #FBF6E7;
	border-left: 5px solid var(--theme-color);
	border-radius: 0 16px 16px 0;
	padding: 28px 32px;
	font-family: "Outfit", sans-serif;
	font-size: 19px;
	font-style: italic;
	color: var(--theme-color-3);
	line-height: 1.6;
}

.ps-quote cite {
	display: block;
	margin-top: 14px;
	font-size: 15px;
	font-style: normal;
	font-weight: 700;
	color: #C99417;
}

/* Header logo wrap: seal + wordmark */
.logo-wrap .ps-brand { max-width: 280px; }

/* Full-width header — logo | centered nav | actions */
.header-section .header-bottom > .container-fluid,
.header-section-4 .header-bottom > .container-fluid {
	max-width: 100%;
	padding-left: clamp(16px, 2.2vw, 40px);
	padding-right: clamp(16px, 2.2vw, 40px);
}

.header-section .header-bottom-layout.ps-header-bar,
.header-section-4 .header-bottom-layout.ps-header-bar {
	display: grid;
	grid-template-columns: minmax(120px, 1fr) auto minmax(120px, 1fr);
	align-items: center;
	width: 100%;
	gap: 12px 20px;
}

.ps-header-logo {
	justify-self: start;
	display: flex;
	align-items: center;
}

.ps-header-nav {
	justify-self: center;
	grid-column: 2;
	min-width: 0;
}

.ps-header-actions {
	justify-self: end;
	display: flex;
	align-items: center;
	justify-content: flex-end;
	gap: 14px;
	flex: initial;
}

.header-section .main-menu > ul,
.header-section-4 .main-menu > ul {
	display: flex;
	flex-wrap: nowrap;
	align-items: center;
	justify-content: center;
	gap: 2px;
	margin: 0;
	padding: 0;
}

.header-section .main-menu ul li a,
.header-section-4 .main-menu ul li a {
	padding: 6px 10px;
	font-size: 15px;
	white-space: nowrap;
}

@media (min-width: 1600px) {
	.header-section .main-menu ul li a,
	.header-section-4 .main-menu ul li a {
		padding: 6px 14px;
		font-size: 16px;
	}
}

@media (min-width: 1200px) and (max-width: 1399px) {
	.header-section .header-info,
	.header-section-4 .header-info {
		display: none !important;
	}
	.header-section .main-menu ul li a,
	.header-section-4 .main-menu ul li a {
		padding: 5px 8px;
		font-size: 14px;
	}
}

@media (max-width: 1199.98px) {
	.header-section .header-bottom-layout.ps-header-bar,
	.header-section-4 .header-bottom-layout.ps-header-bar {
		grid-template-columns: 1fr auto;
	}
	.ps-header-actions {
		grid-column: 2;
	}
}

/* Contact map full-bleed */
.contact-map iframe { display: block; width: 100%; min-height: 420px; }

/* Volunteer / program thumbs — equal card heights */
.volunteer-card {
	height: 100%;
	display: flex;
	flex-direction: column;
}

.volunteer-card > a {
	display: flex;
	flex-direction: column;
	flex: 1 1 auto;
	height: 100%;
}

.volunteer-card a .thumb,
.volunteer-card .thumb {
	overflow: hidden;
	border-radius: 10px;
	aspect-ratio: 2 / 3;
	width: 100%;
	background: #efe9d8;
}

.volunteer-card a .thumb img,
.volunteer-card .thumb img,
.event-thumb img,
.blog-card-2 .thumb img,
.breadcrumb-thumb img,
.hero-section-4 .thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center top;
	display: block;
	border-radius: 10px;
}

/* Keep theme fixed height for program carousel cards (do not use height:100%) */
.service-card-3 .thumb img {
	width: 100%;
	height: 265px !important;
	max-height: 265px;
	object-fit: cover;
	object-position: center top;
	display: block;
	border-radius: 10px;
}

.volunteer-card .thumb img[alt="Dr. Ashwin Kumar"],
.volunteer-card .thumb img[alt="Ashwin Kumar D"] {
	object-position: center 18%;
}

.volunteer-card a .author-info {
	margin-top: auto;
}

/* Softer cream page backgrounds */
.bg-cream,
.breadcrumb-section.bg-cream { background-color: #FFF8E7; }

/* Top-bar donate — simple underlined text link */
.top-bar-content {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 18px;
	flex-wrap: wrap;
}

.ps-top-donate-link {
	font-family: "Outfit", sans-serif;
	font-size: 14px;
	font-weight: 600;
	color: inherit;
	text-decoration: underline;
	text-underline-offset: 3px;
	text-decoration-thickness: 1px;
	letter-spacing: 0.2px;
	white-space: nowrap;
	transition: opacity 0.2s ease, color 0.2s ease;
}

.ps-top-donate-link:hover {
	opacity: 0.85;
	color: var(--theme-color);
	text-decoration-thickness: 2px;
}

/* Compact standard page header / breadcrumb */
.ps-page-hero {
	background: linear-gradient(135deg, #FFF8E7 0%, #F3E8C4 55%, #E8F0DC 100%);
	border-bottom: 1px solid rgba(42, 61, 31, 0.08);
	padding: 28px 0 32px;
	margin-bottom: 48px;
}

.ps-page-hero .container-fluid {
	max-width: 100%;
	padding-left: clamp(16px, 2.2vw, 40px);
	padding-right: clamp(16px, 2.2vw, 40px);
}

.ps-page-hero-inner {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 16px 28px;
	flex-wrap: wrap;
}

.ps-page-hero h1 {
	margin: 0;
	font-family: "Outfit", sans-serif;
	font-size: clamp(26px, 3vw, 36px);
	font-weight: 700;
	line-height: 1.3;
	color: var(--theme-color-3);
	max-width: 720px;
}

.ps-breadcrumb ol {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 6px;
	font-family: "DM Sans", sans-serif;
	font-size: 14px;
	line-height: 1.4;
}

.ps-breadcrumb li {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	color: #6B7A4F;
}

.ps-breadcrumb li:not(:last-child)::after {
	content: "/";
	margin-left: 6px;
	color: rgba(42, 61, 31, 0.35);
	font-weight: 500;
}

.ps-breadcrumb a {
	color: var(--theme-color-3);
	text-decoration: none;
	font-weight: 500;
	transition: color 0.2s ease;
}

.ps-breadcrumb a:hover {
	color: #C99417;
	text-decoration: underline;
	text-underline-offset: 3px;
}

.ps-breadcrumb li[aria-current="page"] {
	color: #C99417;
	font-weight: 600;
}

@media (max-width: 767px) {
	.ps-page-hero { padding: 22px 0 24px; margin-bottom: 32px; }
	.ps-page-hero-inner { flex-direction: column; align-items: flex-start; gap: 10px; }
	.ps-page-hero + .ps-blog-intro {
		margin-top: -32px;
		padding-top: 48px;
	}
}

/* ---------- Branded preloader (logo only) ---------- */
#preloader {
	background: #ffffff;
}

.preloader.ps-preloader {
	width: auto;
	text-align: center;
	display: flex;
	align-items: center;
	justify-content: center;
}

.ps-preloader-logo {
	width: 96px;
	height: 96px;
	border-radius: 50%;
	object-fit: cover;
	background: #fff;
	animation: ps-spin 1.2s linear infinite;
}

@keyframes ps-spin {
	to { transform: rotate(360deg); }
}

/* Service card titles — template caps h4 at 118px which orphans words */
.service-card .service-top {
	align-items: flex-start;
	gap: 12px;
}

.service-card .service-top h4 {
	max-width: none;
	width: auto;
	flex: 1 1 auto;
	font-size: 24px;
	line-height: 1.25;
	white-space: normal;
	text-wrap: balance;
}

.service-card .service-top i {
	flex-shrink: 0;
}

/* ---------- Home About redesign ---------- */
.ps-about-home {
	background: #fff;
}

.ps-about-home-media {
	border-radius: 20px;
	overflow: hidden;
	box-shadow: 0 24px 48px rgba(42, 61, 31, 0.12);
}

.ps-about-home-media img {
	width: 100%;
	height: 100%;
	min-height: 420px;
	object-fit: cover;
	display: block;
}

.ps-about-home-copy h2 {
	font-family: "Outfit", sans-serif;
	font-size: clamp(28px, 3.2vw, 40px);
	font-weight: 700;
	line-height: 1.3;
	color: var(--theme-color-3);
	margin: 10px 0 18px;
	max-width: 18ch;
}

.ps-about-home-copy .lead {
	font-family: "Outfit", sans-serif;
	font-size: 18px;
	font-weight: 600;
	color: var(--theme-color-3);
	margin-bottom: 12px;
}

.ps-about-home-copy > p {
	font-family: "DM Sans", sans-serif;
	font-size: 16px;
	line-height: 1.7;
	color: #5c6750;
	margin-bottom: 14px;
	max-width: 36em;
}

.ps-about-home-contact {
	display: flex;
	flex-wrap: wrap;
	gap: 10px 22px;
	margin: 22px 0 26px;
}

.ps-about-home-contact a {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-family: "Outfit", sans-serif;
	font-size: 15px;
	font-weight: 600;
	color: var(--theme-color-3);
	text-decoration: none;
}

.ps-about-home-contact a i {
	color: #C99417;
}

.ps-about-home-contact a:hover {
	color: #C99417;
	text-decoration: underline;
	text-underline-offset: 3px;
}

.ps-impact-strip {
	margin-top: 56px;
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 16px;
	background: linear-gradient(135deg, #2A3D1F 0%, #3A5230 100%);
	border-radius: 18px;
	padding: 28px 18px;
}

.ps-impact-item {
	text-align: center;
	padding: 8px 10px;
	border-right: 1px solid rgba(255, 255, 255, 0.12);
}

.ps-impact-item:last-child {
	border-right: 0;
}

.ps-impact-num {
	display: block;
	font-family: "Outfit", sans-serif;
	font-size: clamp(28px, 3vw, 40px);
	font-weight: 700;
	line-height: 1.1;
	color: #E0B030;
	margin-bottom: 6px;
}

.ps-impact-label {
	display: block;
	font-family: "DM Sans", sans-serif;
	font-size: 14px;
	font-weight: 500;
	color: rgba(255, 255, 255, 0.86);
}

.ps-impact-note {
	margin: 14px 0 0;
	text-align: center;
	font-size: 13px;
	color: #6B7A4F;
}

@media (max-width: 991px) {
	.ps-about-home-media img { min-height: 300px; }
	.ps-about-home-copy h2 { max-width: none; }
	.ps-impact-strip {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 8px;
		padding: 20px 12px;
	}
	.ps-impact-item {
		border-right: 0;
		border-bottom: 1px solid rgba(255, 255, 255, 0.1);
		padding: 16px 8px;
	}
	.ps-impact-item:nth-child(3),
	.ps-impact-item:nth-child(4) {
		border-bottom: 0;
	}
}

@media (max-width: 575px) {
	.ps-impact-strip { grid-template-columns: 1fr 1fr; }
}

/* ---------- Home hero slider ---------- */
.ps-hero-slider {
	position: relative;
	background: #1E3320;
}

.ps-hero-slider .hero-slider-social {
	position: absolute;
	left: auto;
	right: 28px;
	top: 50%;
	transform: translateY(-50%);
	z-index: 30;
}

.ps-hero-slider .hero-slider-social .social-links {
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.ps-hero-slider .hero-slider-social .social-links a {
	width: 42px;
	height: 42px;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	background: rgba(255, 255, 255, 0.16);
	color: #fff;
	backdrop-filter: blur(4px);
	transition: background 0.25s ease, color 0.25s ease;
}

.ps-hero-slider .hero-slider-social .social-links a:hover {
	background: var(--theme-color);
	color: var(--theme-color-3);
}

.ps-hero-swiper {
	width: 100%;
}

.ps-hero-slide {
	min-height: clamp(520px, 78vh, 760px);
	background-size: cover;
	background-position: center center;
	position: relative;
	display: flex;
	align-items: center;
}

.ps-hero-overlay {
	position: absolute;
	inset: 0;
	background: linear-gradient(
		105deg,
		rgba(30, 51, 32, 0.88) 0%,
		rgba(30, 51, 32, 0.62) 42%,
		rgba(30, 51, 32, 0.22) 72%,
		rgba(30, 51, 32, 0.08) 100%
	);
	z-index: 1;
}

.ps-hero-slide .container {
	position: relative;
	z-index: 2;
}

.ps-hero-content {
	max-width: 640px;
	padding: 80px 0 100px;
	color: #fff;
}

.ps-hero-content .subtitle {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	margin-bottom: 18px;
	font-family: "Outfit", sans-serif;
	font-size: 15px;
	font-weight: 600;
	letter-spacing: 0.4px;
	color: var(--theme-color);
}

.ps-hero-content .subtitle img {
	width: 22px;
	height: 22px;
	filter: brightness(0) saturate(100%) invert(77%) sepia(42%) saturate(700%) hue-rotate(5deg);
}

.ps-hero-content h1 {
	font-family: "Outfit", sans-serif;
	font-size: clamp(36px, 5vw, 58px);
	font-weight: 700;
	line-height: 1.25;
	color: #fff;
	margin-bottom: 18px;
	text-wrap: balance;
}

.ps-hero-content p {
	font-family: "DM Sans", sans-serif;
	font-size: clamp(16px, 1.6vw, 19px);
	line-height: 1.7;
	color: rgba(255, 255, 255, 0.88);
	max-width: 520px;
	margin-bottom: 28px;
}

.ps-hero-btns {
	display: flex;
	flex-wrap: wrap;
	gap: 14px;
}

/* Outline CTAs on dark hero photography */
.e-primary-btn.is-outline {
	background: transparent;
	border: 1.5px solid rgba(42, 61, 31, 0.35);
	color: var(--theme-color-3);
}

.ps-hero-btns .e-primary-btn.is-outline {
	background: transparent;
	border: 1.5px solid rgba(255, 255, 255, 0.7);
	color: #fff;
}

.ps-hero-btns .e-primary-btn.is-outline .icon-wrap {
	background: rgba(255, 255, 255, 0.95);
	color: var(--theme-color-3);
}

.ps-hero-btns .e-primary-btn.is-outline:hover {
	background: #fff;
	color: var(--theme-color-3);
	border-color: #fff;
}

.ps-hero-btns .e-primary-btn.is-outline:hover .icon-wrap {
	background: var(--theme-color-3);
	color: #fff;
}

.ps-hero-pagination {
	position: absolute !important;
	left: 50% !important;
	bottom: 28px !important;
	transform: translateX(-50%);
	width: auto !important;
	z-index: 20;
	display: flex;
	gap: 8px;
}

.ps-hero-pagination .swiper-pagination-bullet {
	width: 10px;
	height: 10px;
	background: rgba(255, 255, 255, 0.45);
	opacity: 1;
	transition: width 0.3s ease, background 0.3s ease;
}

.ps-hero-pagination .swiper-pagination-bullet-active {
	width: 28px;
	border-radius: 999px;
	background: var(--theme-color);
}

.ps-hero-nav {
	position: absolute;
	right: 40px;
	bottom: 36px;
	z-index: 20;
	display: flex;
	gap: 10px;
}

@media (min-width: 992px) {
	/* Keep nav arrows clear of the right-side social stack */
	.ps-hero-nav {
		right: 92px;
	}
}

.ps-hero-prev,
.ps-hero-next {
	width: 48px;
	height: 48px;
	border: 0;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.14);
	color: #fff;
	backdrop-filter: blur(6px);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	transition: background 0.25s ease, color 0.25s ease, transform 0.25s ease;
}

.ps-hero-prev:hover,
.ps-hero-next:hover {
	background: var(--theme-color);
	color: var(--theme-color-3);
	transform: translateY(-2px);
}

@media (max-width: 991px) {
	.ps-hero-slider .hero-slider-social { display: none; }
	.ps-hero-content { padding: 70px 0 110px; max-width: 100%; }
	.ps-hero-overlay {
		background: linear-gradient(
			180deg,
			rgba(30, 51, 32, 0.78) 0%,
			rgba(30, 51, 32, 0.55) 55%,
			rgba(30, 51, 32, 0.4) 100%
		);
	}
}

@media (max-width: 575px) {
	.ps-hero-nav { right: 16px; bottom: 72px; }
	.ps-hero-prev,
	.ps-hero-next { width: 42px; height: 42px; }
	.ps-hero-pagination { bottom: 20px !important; }
}

/* ---- Blog / News pages ---- */
/* Keep cream band continuous under page-hero while preserving spacing */
.ps-page-hero + .ps-blog-intro {
	margin-top: -48px;
	padding-top: 64px;
}

.ps-blog-intro {
	padding: 48px 0 8px;
	background: #FFF8E7;
}

.ps-blog-section {
	padding: 40px 0 80px;
	background: #fff;
}

.ps-blog-layout {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(260px, 320px);
	gap: 40px 48px;
	align-items: start;
}

.ps-blog-aside .ps-article-sidebar {
	position: sticky;
	top: 110px;
}

.ps-blog-filter-note {
	font-family: "Albert Sans", sans-serif;
	font-size: 0.95rem;
	color: #5a6648;
	margin: 0 0 24px;
}

.ps-blog-filter-note a {
	color: #C99417;
	font-weight: 600;
}

.ps-blog-empty {
	padding: 40px 0;
	color: #5a6648;
}

.ps-blog-card-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 28px;
	margin-top: 32px;
}

.ps-blog-featured-card + .ps-blog-card-grid {
	margin-top: 36px;
}

.ps-blog-cats {
	list-style: none;
	margin: 0;
	padding: 0;
}

.ps-blog-cats li + li {
	margin-top: 6px;
}

.ps-blog-cats a {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	padding: 10px 12px;
	border-radius: 8px;
	font-family: "Outfit", sans-serif;
	font-size: 14px;
	font-weight: 500;
	color: var(--theme-color-3, #2A3D1F);
	text-decoration: none;
	transition: background 0.2s ease, color 0.2s ease;
}

.ps-blog-cats a em {
	font-style: normal;
	font-size: 12px;
	font-weight: 600;
	color: #6B7A4F;
	background: rgba(42, 61, 31, 0.06);
	padding: 2px 8px;
	border-radius: 999px;
}

.ps-blog-cats a:hover,
.ps-blog-cats a.is-active {
	background: rgba(224, 176, 48, 0.18);
	color: var(--theme-color-3, #2A3D1F);
}

.ps-blog-cats a.is-active em {
	background: var(--theme-color, #E0B030);
	color: var(--theme-color-3, #2A3D1F);
}

.ps-article-hero-title {
	font-family: "Outfit", sans-serif;
	font-size: clamp(1.65rem, 3.5vw, 2.5rem);
	font-weight: 700;
	color: #fff;
	line-height: 1.3;
	margin: 12px 0 0;
	max-width: 820px;
}

@media (max-width: 991px) {
	.ps-blog-layout {
		grid-template-columns: 1fr;
		gap: 36px;
	}
	.ps-blog-aside .ps-article-sidebar {
		position: static;
	}
	.ps-blog-card-grid {
		grid-template-columns: 1fr;
	}
	.ps-blog-featured-card {
		grid-template-columns: 1fr;
	}
}

.ps-blog-intro-title {
	font-family: "Outfit", sans-serif;
	font-size: clamp(1.75rem, 3vw, 2.35rem);
	font-weight: 700;
	color: var(--theme-color-3, #2A3D1F);
	max-width: 640px;
	margin-bottom: 12px;
}

.ps-blog-intro-text {
	color: #5a6648;
	max-width: 620px;
	margin: 0;
	line-height: 1.65;
}

.ps-blog-cat {
	display: inline-block;
	font-family: "Outfit", sans-serif;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	background: var(--theme-color, #E0B030);
	color: var(--theme-color-3, #2A3D1F);
	padding: 5px 10px;
	border-radius: 4px;
}

.ps-blog-meta {
	display: flex;
	flex-wrap: wrap;
	gap: 14px;
	font-size: 13px;
	color: #6B7A4F;
	margin-bottom: 14px;
}

.ps-blog-meta i { margin-right: 5px; color: var(--theme-color, #E0B030); }
.ps-blog-meta-light { color: rgba(255,255,255,0.88); }
.ps-blog-meta-light i { color: var(--theme-color, #E0B030); }

.ps-blog-featured-card {
	display: grid;
	grid-template-columns: 1.05fr 1fr;
	gap: 0;
	background: #fff;
	border-radius: 16px;
	overflow: hidden;
	box-shadow: 0 12px 40px rgba(42, 61, 31, 0.1);
	border: 1px solid rgba(42, 61, 31, 0.08);
}

.ps-blog-featured-media {
	position: relative;
	display: block;
	min-height: 320px;
	overflow: hidden;
}

.ps-blog-featured-media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.45s ease;
}

.ps-blog-featured-media:hover img { transform: scale(1.04); }

.ps-blog-featured-media .ps-blog-cat {
	position: absolute;
	top: 18px;
	left: 18px;
}

.ps-blog-featured-body {
	padding: 36px 40px;
	display: flex;
	flex-direction: column;
	justify-content: center;
}

.ps-blog-featured-body h3 {
	font-family: "Outfit", sans-serif;
	font-size: clamp(1.35rem, 2.2vw, 1.85rem);
	font-weight: 700;
	line-height: 1.35;
	margin-bottom: 14px;
}

.ps-blog-featured-body h3 a {
	color: var(--theme-color-3, #2A3D1F);
	text-decoration: none;
}

.ps-blog-featured-body h3 a:hover { color: var(--theme-color, #E0B030); }

.ps-blog-featured-body p {
	color: #5a6648;
	line-height: 1.7;
	margin-bottom: 22px;
}

.ps-blog-card {
	background: #fff;
	border-radius: 14px;
	overflow: hidden;
	height: 100%;
	display: flex;
	flex-direction: column;
	border: 1px solid rgba(42, 61, 31, 0.08);
	box-shadow: 0 8px 28px rgba(42, 61, 31, 0.06);
	transition: transform 0.25s ease, box-shadow 0.25s ease;
}

.ps-blog-card:hover {
	transform: translateY(-4px);
	box-shadow: 0 16px 36px rgba(42, 61, 31, 0.12);
}

.ps-blog-card-thumb {
	position: relative;
	display: block;
	aspect-ratio: 16 / 10;
	overflow: hidden;
}

.ps-blog-card-thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.4s ease;
}

.ps-blog-card:hover .ps-blog-card-thumb img { transform: scale(1.05); }

.ps-blog-card-thumb .ps-blog-cat {
	position: absolute;
	top: 14px;
	left: 14px;
}

.ps-blog-card-body {
	padding: 22px 22px 26px;
	flex: 1;
	display: flex;
	flex-direction: column;
}

.ps-blog-card-body h4 {
	font-family: "Outfit", sans-serif;
	font-size: 1.15rem;
	font-weight: 700;
	line-height: 1.35;
	margin-bottom: 10px;
}

.ps-blog-card-body h4 a {
	color: var(--theme-color-3, #2A3D1F);
	text-decoration: none;
}

.ps-blog-card-body h4 a:hover { color: var(--theme-color, #E0B030); }

.ps-blog-card-body p {
	font-size: 14px;
	color: #5a6648;
	line-height: 1.65;
	margin-bottom: 14px;
	flex: 1;
}

.ps-blog-read-link {
	font-family: "Outfit", sans-serif;
	font-size: 14px;
	font-weight: 600;
	color: var(--theme-color-3, #2A3D1F);
	text-decoration: none;
}

.ps-blog-read-link i {
	margin-left: 6px;
	transition: transform 0.2s ease;
}

.ps-blog-read-link:hover { color: var(--theme-color, #E0B030); }
.ps-blog-read-link:hover i { transform: translateX(4px); }

.ps-blog-pagination { margin-top: 48px; }

.ps-blog-pagination .page-link {
	color: var(--theme-color-3, #2A3D1F);
	border-color: rgba(42, 61, 31, 0.15);
}

.ps-blog-pagination .page-item.active .page-link {
	background: var(--theme-color-3, #2A3D1F);
	border-color: var(--theme-color-3, #2A3D1F);
}

.ps-blog-cta {
	padding: 0 0 80px;
}

.ps-blog-cta-inner {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	background: var(--theme-color-3, #2A3D1F);
	color: #fff;
	padding: 32px 36px;
	border-radius: 16px;
}

.ps-blog-cta-inner h3 {
	font-family: "Outfit", sans-serif;
	font-size: 1.4rem;
	margin-bottom: 6px;
	color: #fff;
}

.ps-blog-cta-inner p {
	margin: 0;
	opacity: 0.85;
	max-width: 480px;
}

.ps-blog-cta-actions {
	display: flex;
	align-items: center;
	gap: 12px;
	flex-wrap: wrap;
}

.ps-blog-social {
	width: 42px;
	height: 42px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border-radius: 50%;
	background: rgba(255,255,255,0.12);
	color: #fff;
	text-decoration: none;
	transition: background 0.2s;
}

.ps-blog-social:hover {
	background: var(--theme-color, #E0B030);
	color: var(--theme-color-3, #2A3D1F);
}

/* Article detail — sit below page-hero gap (do not pull flush) */
.ps-article-hero { margin-top: 0; }

.ps-article-hero-media {
	position: relative;
	border-radius: 16px;
	overflow: hidden;
	min-height: 340px;
	max-height: 480px;
}

.ps-article-hero-media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	min-height: 340px;
}

.ps-article-hero-overlay {
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(30,51,32,0.15) 0%, rgba(30,51,32,0.82) 100%);
}

.ps-article-hero-caption {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	padding: 36px 40px;
}

.ps-article-hero-caption h1 {
	font-family: "Outfit", sans-serif;
	font-size: clamp(1.65rem, 3.5vw, 2.5rem);
	font-weight: 700;
	color: #fff;
	line-height: 1.3;
	margin: 12px 0 0;
	max-width: 820px;
}

.ps-article-section { padding-top: 48px; padding-bottom: 40px; }

.ps-article-lead {
	font-size: 1.15rem;
	line-height: 1.75;
	color: var(--theme-color-3, #2A3D1F);
	font-weight: 500;
	margin-bottom: 28px;
	padding-bottom: 24px;
	border-bottom: 1px solid rgba(42, 61, 31, 0.1);
}

.ps-article-content {
	font-size: 1.02rem;
	line-height: 1.85;
	color: #3d4a36;
}

.ps-article-content p { margin-bottom: 1.25rem; }

.ps-article-content p.lead {
	font-size: 1.12rem;
	font-weight: 500;
	color: var(--theme-color-3, #2A3D1F);
}

.ps-article-content a {
	color: var(--theme-color-3, #2A3D1F);
	text-decoration: underline;
	text-underline-offset: 3px;
}

.ps-article-content a:hover { color: var(--theme-color, #E0B030); }

.ps-article-tags {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 10px;
	margin-top: 36px;
	padding-top: 28px;
	border-top: 1px solid rgba(42, 61, 31, 0.1);
}

.ps-article-tags-label {
	font-family: "Outfit", sans-serif;
	font-weight: 700;
	font-size: 13px;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	color: #6B7A4F;
	margin-right: 4px;
}

.ps-article-tag {
	font-size: 13px;
	padding: 6px 12px;
	border-radius: 999px;
	background: #FFF8E7;
	color: var(--theme-color-3, #2A3D1F);
	border: 1px solid rgba(42, 61, 31, 0.1);
}

.ps-article-share {
	display: flex;
	align-items: center;
	gap: 14px;
	margin-top: 24px;
}

.ps-article-share span {
	font-weight: 600;
	font-size: 14px;
	color: #6B7A4F;
}

.ps-article-share a {
	width: 38px;
	height: 38px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border-radius: 50%;
	background: var(--theme-color-3, #2A3D1F);
	color: #fff;
	text-decoration: none;
	transition: background 0.2s;
}

.ps-article-share a:hover { background: var(--theme-color, #E0B030); color: var(--theme-color-3, #2A3D1F); }

.ps-article-nav { margin-top: 32px; }

.ps-sidebar-card {
	background: #fff;
	border: 1px solid rgba(42, 61, 31, 0.08);
	border-radius: 14px;
	padding: 24px;
	margin-bottom: 24px;
	box-shadow: 0 6px 20px rgba(42, 61, 31, 0.05);
}

.ps-sidebar-card h4 {
	font-family: "Outfit", sans-serif;
	font-size: 1.1rem;
	font-weight: 700;
	color: var(--theme-color-3, #2A3D1F);
	margin-bottom: 12px;
}

.ps-sidebar-card p {
	font-size: 14px;
	color: #5a6648;
	line-height: 1.65;
	margin-bottom: 16px;
}

.ps-sidebar-donate {
	background: linear-gradient(145deg, #FFF8E7 0%, #fff 100%);
	border-color: rgba(224, 176, 48, 0.35);
}

.ps-recent-posts {
	list-style: none;
	margin: 0;
	padding: 0;
}

.ps-recent-posts li + li { margin-top: 14px; padding-top: 14px; border-top: 1px solid rgba(42, 61, 31, 0.08); }

.ps-recent-post {
	display: flex;
	gap: 12px;
	align-items: center;
	text-decoration: none;
}

.ps-recent-post img {
	width: 64px;
	height: 64px;
	object-fit: cover;
	border-radius: 8px;
	flex-shrink: 0;
}

.ps-recent-post strong {
	display: block;
	font-family: "Outfit", sans-serif;
	font-size: 14px;
	line-height: 1.35;
	color: var(--theme-color-3, #2A3D1F);
}

.ps-recent-post small {
	display: block;
	font-size: 12px;
	color: #6B7A4F;
	margin-top: 4px;
}

.ps-recent-post:hover strong { color: var(--theme-color, #E0B030); }

@media (max-width: 991px) {
	.ps-blog-featured-card { grid-template-columns: 1fr; }
	.ps-blog-featured-media { min-height: 240px; }
	.ps-blog-featured-body { padding: 28px 24px; }
	.ps-article-hero-caption { padding: 24px 20px; }
}

@media (max-width: 575px) {
	.ps-blog-cta-inner { padding: 24px 20px; }
	.ps-blog-cta-inner h3 { font-size: 1.2rem; }
}

/* Font Awesome Pro webfonts are present; Free CSS omits light + some Pro glyphs */
@font-face {
	font-family: "Font Awesome 6 Pro";
	font-style: normal;
	font-weight: 300;
	font-display: block;
	src: url("../vendor/webfonts/fa-light-300.woff2") format("woff2"),
	     url("../vendor/webfonts/fa-light-300.ttf") format("truetype");
}

.fa-light,
.fal {
	font-family: "Font Awesome 6 Pro";
	font-weight: 300;
}

/* Glyphs present in Pro webfonts but missing from Free CSS icon map */
.fa-hands-holding-heart:before {
	content: "\f4c3";
}
.fa-badge-check:before {
	content: "\f336";
}
.fa-phone-arrow-up-right:before {
	content: "\e224";
}
.fa-arrow-up-right:before {
	content: "\e09f";
}

/*
 * Link colors: prefer olive over Bootstrap blue, but never force
 * !important on all anchors — that made hero outline CTAs / socials
 * dark-on-dark and broke button hover (olive text on olive fill).
 */
a:any-link {
	color: var(--theme-color-3);
}
a:any-link:hover,
a:any-link:focus {
	color: #C99417;
}

/* Primary buttons: cream fill + olive label; white label on hover fill */
.e-primary-btn:any-link,
.e-primary-btn:any-link:visited {
	color: var(--theme-color-3);
}
.e-primary-btn:any-link:hover,
.e-primary-btn:any-link:focus {
	color: #fff;
}
.e-primary-btn.is-hover-white:any-link:hover,
.e-primary-btn.is-hover-white:any-link:focus {
	color: var(--theme-color-3);
}

/* Outline on light pages stays olive; hero outlines are white (below) */
.e-primary-btn.is-outline:any-link,
.e-primary-btn.is-outline:any-link:visited,
.e-primary-btn.is-outline:any-link:hover,
.e-primary-btn.is-outline:any-link:focus {
	color: var(--theme-color-3);
}

/* Dark surfaces — light links */
.ps-hero-slider .hero-slider-social .social-links a:any-link,
.ps-hero-slider .hero-slider-social .social-links a:any-link:visited {
	color: #fff;
}
.ps-hero-slider .hero-slider-social .social-links a:any-link:hover,
.ps-hero-slider .hero-slider-social .social-links a:any-link:focus {
	color: var(--theme-color-3);
}

.ps-hero-btns .e-primary-btn.is-outline:any-link,
.ps-hero-btns .e-primary-btn.is-outline:any-link:visited {
	color: #fff;
}
.ps-hero-btns .e-primary-btn.is-outline:any-link:hover,
.ps-hero-btns .e-primary-btn.is-outline:any-link:focus {
	color: var(--theme-color-3);
}

.footer-section a:any-link,
.footer-widget a:any-link,
.about-widget .social-links a:any-link,
.ps-blog-cta-inner a:any-link,
.ps-blog-social:any-link {
	color: rgba(255, 255, 255, 0.85);
}
.footer-section a:any-link:hover,
.footer-section a:any-link:focus,
.footer-widget a:any-link:hover,
.footer-widget a:any-link:focus,
.ps-blog-cta-inner a:any-link:hover,
.ps-blog-social:any-link:hover {
	color: var(--theme-color-2);
}

/* Footer / dark CTA solid buttons stay olive-on-cream */
.footer-section .e-primary-btn:any-link,
.footer-section .e-primary-btn:any-link:visited,
.ps-blog-cta-inner .e-primary-btn:any-link,
.ps-blog-cta-inner .e-primary-btn:any-link:visited {
	color: var(--theme-color-3);
}
.footer-section .e-primary-btn:any-link:hover,
.ps-blog-cta-inner .e-primary-btn:any-link:hover {
	color: #fff;
}

/* ============================================================
   Our Programs — editorial bento (replaces glass project-cards)
   ============================================================ */
.ps-programs {
	background:
		radial-gradient(ellipse 70% 50% at 100% 0%, rgba(224, 176, 48, 0.12), transparent 55%),
		radial-gradient(ellipse 50% 40% at 0% 100%, rgba(42, 61, 31, 0.06), transparent 50%),
		#FFF8E7;
	padding: 96px 0 100px;
	overflow: hidden;
}

.ps-programs-head {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 24px 40px;
	margin-bottom: 44px;
	flex-wrap: wrap;
}

.ps-programs-kicker {
	font-family: "Outfit", sans-serif;
	font-size: 13px;
	font-weight: 600;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: #C99417;
	margin: 0 0 10px;
}

.ps-programs-head h2 {
	font-family: "Outfit", sans-serif;
	font-weight: 700;
	font-size: clamp(2rem, 3.2vw, 2.75rem);
	line-height: 1.25;
	color: var(--theme-color-3);
	margin: 0 0 12px;
}

.ps-programs-lede {
	font-family: "Albert Sans", sans-serif;
	font-size: 1.05rem;
	line-height: 1.55;
	color: var(--body-color);
	max-width: 34rem;
	margin: 0;
}

.ps-programs-all {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	font-family: "Outfit", sans-serif;
	font-weight: 600;
	font-size: 15px;
	color: var(--theme-color-3) !important;
	white-space: nowrap;
	padding-bottom: 4px;
	border-bottom: 2px solid var(--theme-color);
	transition: color 0.25s ease, border-color 0.25s ease, gap 0.25s ease;
}

.ps-programs-all:hover,
.ps-programs-all:focus {
	color: #C99417 !important;
	border-color: #C99417;
	gap: 14px;
}

.ps-programs-grid {
	display: grid;
	grid-template-columns: repeat(6, minmax(0, 1fr));
	gap: 22px;
}

.ps-program {
	grid-column: span 2;
	display: flex;
	flex-direction: column;
	background: #fff;
	border-radius: 4px;
	overflow: hidden;
	text-decoration: none !important;
	color: var(--theme-color-3) !important;
	box-shadow: 0 1px 0 rgba(42, 61, 31, 0.06);
	border: 1px solid rgba(42, 61, 31, 0.08);
	transform: translateY(0);
	transition:
		transform 0.35s cubic-bezier(0.22, 1, 0.36, 1),
		box-shadow 0.35s ease,
		border-color 0.35s ease;
}

.ps-program:nth-child(1),
.ps-program:nth-child(2) {
	grid-column: span 3;
}

.ps-program:any-link,
.ps-program:any-link:visited,
.ps-program:any-link:hover,
.ps-program:any-link:focus {
	color: var(--theme-color-3) !important;
}

.ps-program:hover,
.ps-program:focus-visible {
	transform: translateY(-6px);
	box-shadow: 0 18px 40px rgba(42, 61, 31, 0.12);
	border-color: rgba(224, 176, 48, 0.45);
}

.ps-program-media {
	position: relative;
	aspect-ratio: 16 / 10;
	overflow: hidden;
	background: #d9d2bc;
}

.ps-program:nth-child(n+3) .ps-program-media {
	aspect-ratio: 4 / 3;
}

.ps-program-media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center top;
	display: block;
	transform: scale(1);
	transition: transform 0.55s cubic-bezier(0.22, 1, 0.36, 1);
}

.ps-program:hover .ps-program-media img,
.ps-program:focus-visible .ps-program-media img {
	transform: scale(1.06);
}

.ps-program-media::after {
	content: "";
	position: absolute;
	inset: auto 0 0;
	height: 42%;
	background: linear-gradient(to top, rgba(42, 61, 31, 0.35), transparent);
	pointer-events: none;
	opacity: 0.85;
}

.ps-program-body {
	display: flex;
	flex-direction: column;
	flex: 1;
	padding: 22px 22px 24px;
	border-top: 3px solid transparent;
	transition: border-color 0.3s ease;
}

.ps-program:hover .ps-program-body,
.ps-program:focus-visible .ps-program-body {
	border-top-color: var(--theme-color);
}

.ps-program-num {
	font-family: "Outfit", sans-serif;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.12em;
	color: #C99417;
	margin-bottom: 8px;
}

.ps-program-body h3 {
	font-family: "Outfit", sans-serif;
	font-weight: 700;
	font-size: clamp(1.15rem, 1.4vw, 1.35rem);
	line-height: 1.3;
	color: var(--theme-color-3);
	margin: 0 0 10px;
}

.ps-program-body p {
	font-family: "Albert Sans", sans-serif;
	font-size: 0.95rem;
	line-height: 1.55;
	color: var(--body-color);
	margin: 0 0 18px;
	flex: 1;
}

.ps-program-cta {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-family: "Outfit", sans-serif;
	font-size: 14px;
	font-weight: 600;
	color: var(--theme-color-3);
	margin-top: auto;
	transition: gap 0.25s ease, color 0.25s ease;
}

.ps-program:hover .ps-program-cta,
.ps-program:focus-visible .ps-program-cta {
	color: #C99417;
	gap: 12px;
}

@media (max-width: 991px) {
	.ps-programs {
		padding: 72px 0 80px;
	}
	.ps-programs-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 18px;
	}
	.ps-program,
	.ps-program:nth-child(1),
	.ps-program:nth-child(2) {
		grid-column: span 1;
	}
	.ps-program:nth-child(n+3) .ps-program-media,
	.ps-program-media {
		aspect-ratio: 16 / 10;
	}
}

@media (max-width: 575px) {
	.ps-programs-head {
		margin-bottom: 28px;
	}
	.ps-programs-grid {
		grid-template-columns: 1fr;
	}
	.ps-program-body {
		padding: 18px 18px 20px;
	}
}

/* Testimonials: theme dims non-active slides to 0.3 — reads as a white wash
   when Swiper hasn't marked an active slide. Keep cards fully opaque. */
.testimonial-slider-active .swiper-slide,
.testimonial-slider-active .swiper-slide.swiper-slide-active {
	opacity: 1;
}
.testimonial-slider-active .swiper {
	overflow: hidden;
}
.testimonial-card .thumb img {
	display: block;
	width: 100%;
	height: 100%;
	min-height: 220px;
	object-fit: cover;
	object-position: center top;
}

/* ============================================================
   Contact page — compact two-column layout
   ============================================================ */
.ps-contact {
	padding: 56px 0 72px;
	background: #fff;
}

.ps-contact-grid {
	display: grid;
	grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.15fr);
	gap: 40px 56px;
	align-items: start;
}

.ps-contact-kicker {
	font-family: "Outfit", sans-serif;
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: #C99417;
	margin: 0 0 10px;
}

.ps-contact-aside h2 {
	font-family: "Outfit", sans-serif;
	font-weight: 700;
	font-size: clamp(1.65rem, 2.4vw, 2.1rem);
	line-height: 1.3;
	color: var(--theme-color-3);
	margin: 0 0 12px;
}

.ps-contact-lede {
	font-family: "Albert Sans", sans-serif;
	font-size: 1rem;
	line-height: 1.55;
	color: var(--body-color);
	margin: 0 0 28px;
	max-width: 28rem;
}

.ps-contact-channels {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 18px;
}

.ps-contact-channels li {
	display: flex;
	gap: 14px;
	align-items: flex-start;
}

.ps-contact-icon {
	width: 40px;
	height: 40px;
	border-radius: 50%;
	flex: none;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background: rgba(224, 176, 48, 0.16);
	color: var(--theme-color-3);
	font-size: 15px;
}

.ps-contact-channels strong {
	display: block;
	font-family: "Outfit", sans-serif;
	font-size: 13px;
	font-weight: 600;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: #C99417;
	margin-bottom: 4px;
}

.ps-contact-channels p {
	margin: 0;
	font-family: "Albert Sans", sans-serif;
	font-size: 0.98rem;
	line-height: 1.5;
	color: var(--theme-color-3);
}

.ps-contact-channels a:any-link {
	color: var(--theme-color-3);
}
.ps-contact-channels a:any-link:hover {
	color: #C99417;
}

.ps-contact-social {
	display: flex;
	align-items: center;
	gap: 12px;
	margin-top: 32px;
	padding-top: 24px;
	border-top: 1px solid rgba(42, 61, 31, 0.1);
}

.ps-contact-social > span {
	font-family: "Outfit", sans-serif;
	font-size: 13px;
	font-weight: 600;
	color: var(--body-color);
	margin-right: 4px;
}

.ps-contact-social a:any-link {
	width: 38px;
	height: 38px;
	border-radius: 50%;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background: var(--theme-color-3);
	color: #fff !important;
	transition: background 0.2s ease, transform 0.2s ease;
}

.ps-contact-social a:any-link:hover {
	background: #C99417;
	color: #fff !important;
	transform: translateY(-2px);
}

.ps-contact-form-panel {
	background: #FFF8E7;
	border: 1px solid rgba(42, 61, 31, 0.08);
	border-radius: 6px;
	padding: 28px 28px 30px;
}

.ps-contact-form-panel h3 {
	font-family: "Outfit", sans-serif;
	font-weight: 700;
	font-size: 1.35rem;
	color: var(--theme-color-3);
	margin: 0 0 6px;
}

.ps-contact-form-panel > p {
	font-family: "Albert Sans", sans-serif;
	font-size: 0.95rem;
	color: var(--body-color);
	margin: 0 0 22px;
}

.ps-contact-form .ps-hp {
	position: absolute;
	left: -9999px;
	opacity: 0;
	height: 0;
	width: 0;
	pointer-events: none;
}

.ps-contact-fields {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 14px 16px;
	margin-bottom: 20px;
}

.ps-field {
	display: flex;
	flex-direction: column;
	gap: 6px;
	margin: 0;
}

.ps-field-full {
	grid-column: 1 / -1;
}

.ps-field span {
	font-family: "Outfit", sans-serif;
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--theme-color-3);
}

.ps-field input,
.ps-field textarea {
	width: 100%;
	border: 1px solid rgba(42, 61, 31, 0.15);
	border-radius: 4px;
	background: #fff;
	padding: 12px 14px;
	font-family: "Albert Sans", sans-serif;
	font-size: 0.98rem;
	color: var(--theme-color-3);
	transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.ps-field textarea {
	resize: vertical;
	min-height: 120px;
}

.ps-field input:focus,
.ps-field textarea:focus {
	outline: none;
	border-color: var(--theme-color);
	box-shadow: 0 0 0 3px rgba(224, 176, 48, 0.22);
}

.ps-contact-map {
	line-height: 0;
	border-top: 1px solid rgba(42, 61, 31, 0.08);
}

.ps-contact-map iframe {
	display: block;
	width: 100%;
	height: 320px;
	border: 0;
}

@media (max-width: 991px) {
	.ps-contact {
		padding: 40px 0 56px;
	}
	.ps-contact-grid {
		grid-template-columns: 1fr;
		gap: 32px;
	}
	.ps-contact-form-panel {
		padding: 24px;
	}
}

@media (max-width: 575px) {
	.ps-contact-fields {
		grid-template-columns: 1fr;
	}
	.ps-contact-map iframe {
		height: 260px;
	}
}

/* ---------- About page redesign ---------- */
.ps-page-hero + .ps-about-story {
	margin-top: -16px;
}

.ps-about-kicker {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	margin: 0 0 14px;
	font-family: "Outfit", sans-serif;
	font-size: 15px;
	font-weight: 600;
	letter-spacing: 0.3px;
	color: #C99417;
}

.ps-about-kicker img {
	width: 22px;
	height: 22px;
	flex-shrink: 0;
}

.ps-about-kicker.is-light {
	color: var(--theme-color);
}

.ps-about-kicker.is-light img {
	filter: brightness(0) saturate(100%) invert(77%) sepia(42%) saturate(700%) hue-rotate(5deg);
}

.ps-about-story {
	padding: 56px 0 88px;
	background:
		radial-gradient(ellipse 70% 50% at 0% 20%, rgba(232, 240, 220, 0.65) 0%, transparent 70%),
		radial-gradient(ellipse 50% 40% at 100% 80%, rgba(247, 231, 180, 0.35) 0%, transparent 65%),
		#fff;
}

.ps-about-story-grid {
	display: grid;
	grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);
	gap: clamp(28px, 4vw, 56px);
	align-items: center;
}

.ps-about-story-media {
	border-radius: 22px;
	overflow: hidden;
	box-shadow: 0 28px 56px rgba(42, 61, 31, 0.14);
	position: relative;
}

.ps-about-story-media::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, transparent 70%, rgba(42, 61, 31, 0.18) 100%);
	pointer-events: none;
}

.ps-about-story-media img {
	display: block;
	width: 100%;
	height: 100%;
	min-height: 440px;
	object-fit: cover;
	transition: transform 0.7s ease;
}

.ps-about-story-media:hover img {
	transform: scale(1.03);
}

.ps-about-story-copy h2 {
	font-family: "Outfit", sans-serif;
	font-size: clamp(30px, 3.4vw, 42px);
	font-weight: 700;
	line-height: 1.3;
	color: var(--theme-color-3);
	margin: 0 0 18px;
	max-width: 14ch;
	text-wrap: balance;
}

.ps-about-lead {
	font-family: "Outfit", sans-serif;
	font-size: 18px;
	font-weight: 600;
	line-height: 1.55;
	color: var(--theme-color-3);
	margin: 0 0 14px;
	max-width: 34em;
}

.ps-about-story-copy > p:not(.ps-about-kicker):not(.ps-about-lead) {
	font-family: "DM Sans", sans-serif;
	font-size: 16px;
	line-height: 1.75;
	color: #5c6750;
	margin: 0 0 14px;
	max-width: 38em;
}

.ps-about-story-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	margin-top: 26px;
}

.ps-about-mission {
	position: relative;
	padding: 80px 0;
	background:
		linear-gradient(135deg, rgba(30, 51, 32, 0.94) 0%, rgba(42, 61, 31, 0.92) 55%, rgba(58, 82, 48, 0.9) 100%),
		url("../img/bg/ps/ps-bg-fields.png") center / cover no-repeat;
	color: #fff;
	overflow: hidden;
}

.ps-about-mission::before {
	content: "";
	position: absolute;
	inset: 0;
	background:
		radial-gradient(circle at 15% 20%, rgba(224, 176, 48, 0.16) 0%, transparent 40%),
		radial-gradient(circle at 90% 80%, rgba(242, 206, 99, 0.1) 0%, transparent 35%);
	pointer-events: none;
}

.ps-about-mission .container {
	position: relative;
	z-index: 1;
}

.ps-about-mission-head {
	max-width: 720px;
	margin-bottom: 36px;
}

.ps-about-mission-head h2 {
	font-family: "Outfit", sans-serif;
	font-size: clamp(28px, 3.2vw, 40px);
	font-weight: 700;
	line-height: 1.3;
	color: #fff;
	margin: 0 0 16px;
	text-wrap: balance;
}

.ps-about-mission-lede {
	font-family: "DM Sans", sans-serif;
	font-size: 17px;
	line-height: 1.75;
	color: rgba(255, 255, 255, 0.88);
	margin: 0;
	max-width: 40em;
}

.ps-about-focus {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 14px 18px;
}

.ps-about-focus li {
	display: flex;
	align-items: flex-start;
	gap: 12px;
	padding: 10px 4px;
	font-family: "DM Sans", sans-serif;
	font-size: 15px;
	font-weight: 500;
	line-height: 1.45;
	color: rgba(255, 255, 255, 0.94);
}

.ps-about-focus li i {
	flex-shrink: 0;
	margin-top: 2px;
	width: 22px;
	height: 22px;
	border-radius: 50%;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-size: 11px;
	color: var(--theme-color-3);
	background: var(--theme-color);
}

.ps-about-purpose {
	padding: 88px 0;
	background:
		linear-gradient(180deg, #FFFBF2 0%, #F7F3E8 48%, #EEF3E6 100%);
}

.ps-about-purpose-grid {
	display: grid;
	grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.85fr);
	gap: clamp(32px, 5vw, 64px);
	align-items: start;
}

.ps-about-vision h2 {
	font-family: "Outfit", sans-serif;
	font-size: clamp(28px, 3.2vw, 40px);
	font-weight: 700;
	line-height: 1.3;
	color: var(--theme-color-3);
	margin: 0 0 18px;
	max-width: 16ch;
	text-wrap: balance;
}

.ps-about-vision > p:not(.ps-about-kicker) {
	font-family: "DM Sans", sans-serif;
	font-size: 17px;
	line-height: 1.75;
	color: #5c6750;
	margin: 0;
	max-width: 36em;
}

.ps-about-value-list {
	list-style: none;
	margin: 8px 0 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 0;
}

.ps-about-value-list li {
	position: relative;
	padding: 16px 0 16px 22px;
	border-bottom: 1px solid rgba(42, 61, 31, 0.12);
	font-family: "Outfit", sans-serif;
	font-size: 18px;
	font-weight: 600;
	color: var(--theme-color-3);
	line-height: 1.35;
}

.ps-about-value-list li:first-child {
	border-top: 1px solid rgba(42, 61, 31, 0.12);
}

.ps-about-value-list li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 50%;
	transform: translateY(-50%);
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: var(--theme-color);
}

.ps-about-founder {
	padding: 88px 0 40px;
	background: #fff;
}

.ps-about-founder-grid {
	display: grid;
	grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
	gap: clamp(28px, 4vw, 56px);
	align-items: center;
}

.ps-about-founder-media {
	margin: 0;
	border-radius: 22px;
	overflow: hidden;
	box-shadow: 0 24px 48px rgba(42, 61, 31, 0.12);
	background: #F3E8C4;
}

.ps-about-founder-media img {
	display: block;
	width: 100%;
	aspect-ratio: 4 / 5;
	object-fit: cover;
	object-position: center top;
}

.ps-about-founder-media figcaption {
	padding: 18px 22px 20px;
	background: linear-gradient(135deg, #2A3D1F 0%, #3A5230 100%);
	color: #fff;
	text-align: center;
}

.ps-about-founder-media figcaption strong {
	display: block;
	font-family: "Outfit", sans-serif;
	font-size: 18px;
	font-weight: 700;
	margin-bottom: 4px;
}

.ps-about-founder-media figcaption span {
	font-family: "DM Sans", sans-serif;
	font-size: 14px;
	color: rgba(255, 255, 255, 0.78);
}

.ps-about-founder-copy h2 {
	font-family: "Outfit", sans-serif;
	font-size: clamp(28px, 3.2vw, 40px);
	font-weight: 700;
	line-height: 1.3;
	color: var(--theme-color-3);
	margin: 0 0 18px;
	max-width: 16ch;
	text-wrap: balance;
}

.ps-about-founder-copy > p:not(.ps-about-kicker) {
	font-family: "DM Sans", sans-serif;
	font-size: 16px;
	line-height: 1.75;
	color: #5c6750;
	margin: 0 0 14px;
	max-width: 40em;
}

.ps-about-founder-copy .ps-quote {
	margin-top: 28px;
}

@media (max-width: 991px) {
	.ps-about-story {
		padding: 40px 0 64px;
	}
	.ps-about-story-grid,
	.ps-about-purpose-grid,
	.ps-about-founder-grid {
		grid-template-columns: 1fr;
	}
	.ps-about-story-copy h2,
	.ps-about-vision h2,
	.ps-about-founder-copy h2 {
		max-width: none;
	}
	.ps-about-story-media img {
		min-height: 300px;
	}
	.ps-about-focus {
		grid-template-columns: 1fr 1fr;
	}
	.ps-about-mission,
	.ps-about-purpose,
	.ps-about-founder {
		padding: 64px 0;
	}
	.ps-about-founder {
		padding-bottom: 24px;
	}
	.ps-about-founder-media {
		max-width: 420px;
		margin-inline: auto;
	}
}

@media (max-width: 575px) {
	.ps-about-focus {
		grid-template-columns: 1fr;
	}
	.ps-about-story-actions {
		flex-direction: column;
		align-items: stretch;
	}
	.ps-about-story-actions .e-primary-btn {
		justify-content: center;
	}
}

/* ---------- Header / Programs dropdown above hero ---------- */
.header-section,
.header-section-4 {
	position: relative;
	z-index: 200;
	overflow: visible;
}

.header-section .header-bottom,
.header-section-4 .header-bottom,
.header-section .header-bottom-layout,
.header-section-4 .header-bottom-layout,
.header-section .header-left,
.header-section-4 .header-left-2,
.header-section .main-menu,
.header-section-4 .main-menu {
	overflow: visible;
}

.header-section .main-menu ul .has-dropdown,
.header-section-4 .main-menu ul .has-dropdown {
	position: relative;
	z-index: 210;
}

.header-section .main-menu ul .has-dropdown .sub-menu,
.header-section-4 .main-menu ul .has-dropdown .sub-menu {
	z-index: 220;
	min-width: 220px;
}

.ps-hero-slider {
	position: relative;
	z-index: 1;
}

/* ---------- Donate message (no bank details) ---------- */
.ps-donate-message {
	background: #fff;
	border: 1px solid rgba(42, 61, 31, 0.1);
	border-left: 4px solid var(--theme-color);
	border-radius: 4px;
	padding: 28px 28px 24px;
	box-shadow: 0 1px 0 rgba(42, 61, 31, 0.05);
}

.ps-donate-quote {
	font-family: var(--lulu-font);
	font-size: 1.25rem;
	font-weight: 600;
	line-height: 1.45;
	color: var(--theme-color-3);
	margin: 0 0 14px;
}

.ps-donate-message > p {
	margin: 0 0 12px;
	color: var(--body-color);
	font-size: 1.05rem;
	line-height: 1.55;
}

.ps-donate-phone {
	margin-top: 18px !important;
	margin-bottom: 0 !important;
}

.ps-donate-phone a {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	font-family: var(--lulu-font);
	font-size: 1.2rem;
	font-weight: 700;
	color: var(--theme-color-3) !important;
}

.ps-donate-phone a:hover {
	color: #C99417 !important;
}

