@import url('https://fonts.googleapis.com/css2?family=Cinzel:wght@400;500;600;700;900&family=Manrope:wght@400;500;600;700;800&display=swap');

/* ===================== shared brand variables ===================== */
#ptfpm-project-page, .ptfpm-grid, .ptfpm-donate {
	--ptfpm-green: #178754;
	--ptfpm-bright: #35C77B;
	--ptfpm-deep: #0C4A2C;
	--ptfpm-black: #0E0E0E;
	--ptfpm-muted: #68706A;
	--ptfpm-soft: #F5F8F5;
	font-family: 'Manrope', Arial, sans-serif;
	color: var(--ptfpm-black);
}
#ptfpm-project-page *, .ptfpm-grid *, .ptfpm-donate * { box-sizing: border-box; }
#ptfpm-project-page h1, #ptfpm-project-page h2, #ptfpm-project-page h3, #ptfpm-project-page p { margin: 0; }

/* ===================== single project page ===================== */
#ptfpm-project-page .ptfpm-hero {
	min-height: 580px; display: flex; align-items: center; position: relative;
	background: #0E0E0E; overflow: hidden;
}
#ptfpm-project-page .ptfpm-hero-bg {
	position: absolute; inset: 0; background-position: center; background-size: cover;
}
#ptfpm-project-page .ptfpm-hero-content {
	position: relative; z-index: 2; width: 100%; max-width: 1080px;
	margin: auto; padding: 90px 30px;
}
#ptfpm-project-page .ptfpm-hero-content--split {
	max-width: 1180px;
	display: grid; grid-template-columns: 1.3fr 1fr; gap: 50px; align-items: center;
}
#ptfpm-project-page .ptfpm-hero-donate { width: 100%; max-width: 400px; justify-self: end; }
#ptfpm-project-page .ptfpm-tag {
	display: inline-block; padding: 8px 14px; border: 1px solid rgba(255,255,255,.25);
	border-radius: 50px; color: var(--ptfpm-bright); font-size: 10px; font-weight: 800;
	letter-spacing: .14em; text-transform: uppercase; margin-bottom: 20px;
}
#ptfpm-project-page .ptfpm-hero h1 {
	max-width: 750px; color: #fff; font-family: Georgia, serif;
	font-size: clamp(40px,6vw,68px); line-height: 1.08; font-weight: 600;
}
#ptfpm-project-page .ptfpm-hero h1 span { color: var(--ptfpm-bright); }
#ptfpm-project-page .ptfpm-hero p {
	max-width: 650px; margin-top: 22px; color: rgba(255,255,255,.78);
	font-size: 16px; line-height: 1.8;
}
#ptfpm-project-page .ptfpm-intro,
#ptfpm-project-page .ptfpm-cta { padding: 85px 25px; text-align: center; }
#ptfpm-project-page .ptfpm-intro-inner,
#ptfpm-project-page .ptfpm-cta-inner { max-width: 780px; margin: auto; }
#ptfpm-project-page .ptfpm-label {
	display: block; color: var(--ptfpm-green); font-size: 11px; font-weight: 800;
	letter-spacing: .14em; text-transform: uppercase; margin-bottom: 17px;
}
#ptfpm-project-page h2 {
	font-family: Georgia, serif; font-size: clamp(30px,4vw,45px);
	line-height: 1.2; font-weight: 600;
}
#ptfpm-project-page h2 span { color: var(--ptfpm-green); }
#ptfpm-project-page .ptfpm-intro p,
#ptfpm-project-page .ptfpm-cta p {
	margin-top: 20px; color: var(--ptfpm-muted); font-size: 15px; line-height: 1.85;
}
#ptfpm-project-page .ptfpm-video { padding: 85px 25px; }
#ptfpm-project-page .ptfpm-video-wrap {
	max-width: 1080px; margin: 0 auto;
	position: relative; width: 100%;
	padding-top: 56.25%; /* 16:9 */
	border-radius: 20px; overflow: hidden;
	background: #000;
}
#ptfpm-project-page .ptfpm-video-wrap iframe,
#ptfpm-project-page .ptfpm-video-wrap video {
	position: absolute; inset: 0;
	width: 100%; height: 100%;
	border: 0; display: block; object-fit: cover;
}
#ptfpm-project-page .ptfpm-photos { padding: 0 25px 85px; }
#ptfpm-project-page .ptfpm-photo-grid {
	max-width: 1080px; margin: auto;
	display: grid; grid-template-columns: 1.35fr 1fr 1fr; gap: 15px;
}
#ptfpm-project-page .ptfpm-photo { height: 350px; border-radius: 20px; overflow: hidden; }
#ptfpm-project-page .ptfpm-photo img { width: 100%; height: 100%; object-fit: cover; display: block; }
#ptfpm-project-page .ptfpm-story { padding: 90px 25px; background: var(--ptfpm-soft); }
#ptfpm-project-page .ptfpm-story-grid {
	display: grid; grid-template-columns: .8fr 1.3fr; gap: 80px;
	max-width: 1080px; margin: auto;
}
#ptfpm-project-page .ptfpm-story h3 { font-family: Georgia, serif; font-size: 23px; margin-bottom: 13px; }
#ptfpm-project-page .ptfpm-story-block { padding-bottom: 35px; margin-bottom: 35px; border-bottom: 1px solid rgba(14,14,14,.12); }
#ptfpm-project-page .ptfpm-story-block:last-child { border: 0; margin: 0; }
#ptfpm-project-page .ptfpm-story p { font-size: 15px; line-height: 1.85; color: var(--ptfpm-muted); }
#ptfpm-project-page .ptfpm-impact { padding: 90px 25px; background: #0E0E0E; text-align: center; }
#ptfpm-project-page .ptfpm-impact h2 { max-width: 800px; margin: auto; color: #fff; }
#ptfpm-project-page .ptfpm-impact h2 span { color: var(--ptfpm-bright); }
#ptfpm-project-page .ptfpm-impact p { max-width: 620px; margin: 20px auto; color: rgba(255,255,255,.62); line-height: 1.8; font-size: 14px; }
#ptfpm-project-page .ptfpm-stat { display: inline-block; margin-top: 20px; padding: 18px 30px; border: 1px solid rgba(53,199,123,.25); border-radius: 15px; }
#ptfpm-project-page .ptfpm-stat strong { display: block; font-size: 28px; color: var(--ptfpm-bright); }
#ptfpm-project-page .ptfpm-stat span { font-size: 11px; color: #aaa; text-transform: uppercase; letter-spacing: .1em; }
#ptfpm-project-page .ptfpm-btn {
	display: inline-block; margin-top: 25px; padding: 14px 25px; border-radius: 50px;
	background: var(--ptfpm-green); color: #fff; font-weight: 800; font-size: 13px; text-decoration: none;
}
@media (max-width: 900px) {
	#ptfpm-project-page .ptfpm-hero-content--split { grid-template-columns: 1fr; gap: 34px; }
	#ptfpm-project-page .ptfpm-hero-donate { max-width: 460px; justify-self: stretch; }
}
@media (max-width: 700px) {
	#ptfpm-project-page .ptfpm-hero { min-height: 540px; }
	#ptfpm-project-page .ptfpm-hero-content { padding: 75px 20px; }
	#ptfpm-project-page .ptfpm-hero h1 { font-size: 40px; }
	#ptfpm-project-page .ptfpm-intro, #ptfpm-project-page .ptfpm-story, #ptfpm-project-page .ptfpm-cta { padding: 65px 20px; }
	#ptfpm-project-page .ptfpm-video { padding: 65px 15px; }
	#ptfpm-project-page .ptfpm-photos { padding: 0 15px 65px; }
	#ptfpm-project-page .ptfpm-photo-grid, #ptfpm-project-page .ptfpm-story-grid { grid-template-columns: 1fr; }
	#ptfpm-project-page .ptfpm-photo { height: 270px; }
}

/* ===================== projects grid (cards) ===================== */
.ptfpm-grid {
	display: grid;
	grid-template-columns: repeat(var(--ptfpm-cols, 3), minmax(0, 1fr));
	gap: 28px;
}
.ptfpm-card {
	display: flex; flex-direction: column; text-decoration: none; color: inherit;
	background: #fff;
	border: 1px solid rgba(14,14,14,.12); border-radius: 18px;
	overflow: hidden;
	transition: transform .25s ease, box-shadow .25s ease;
}
.ptfpm-card:hover {
	transform: translateY(-5px);
	box-shadow: 0 24px 40px -22px rgba(14,14,14,.22);
}
.ptfpm-card-photo{
	position:relative !important;
	aspect-ratio:4/3 !important;
	min-height:200px;
	overflow:hidden !important;
	background-image:var(--ptfpm-photo-src,none),linear-gradient(155deg,var(--ptfpm-green),var(--ptfpm-deep)) !important;
	background-size:cover !important;
	background-position:center !important;
	background-repeat:no-repeat !important;
	width:100%;
	display:block;
}
.ptfpm-tag{
	position:absolute !important;top:12px !important;left:12px !important;z-index:2 !important;
	display:inline-block !important;width:auto !important;height:auto !important;
	padding:5px 11px !important;border-radius:999px !important;
	background:rgba(255,255,255,.92) !important;
	color:var(--ptfpm-black) !important;
	font-size:10.5px !important;font-weight:800 !important;line-height:normal !important;
	letter-spacing:.06em;text-transform:uppercase;
	border:none !important;box-shadow:none !important;
}
.ptfpm-card-body {
	padding: 20px 20px 22px;
	display: flex; flex-direction: column; gap: 8px;
	flex: 1;
}
.ptfpm-location {
	display: flex; align-items: center; gap: 6px;
	font-size: 12px; font-weight: 700;
	color: var(--ptfpm-green);
	text-transform: uppercase; letter-spacing: .04em;
}
.ptfpm-location svg{
	width:13px !important;height:13px !important;max-width:13px !important;
	flex:none !important;display:inline-block !important;
	color:var(--ptfpm-green) !important;fill:none !important;stroke:var(--ptfpm-green) !important;
}
.ptfpm-card-title {
	font-family: 'Cinzel', Georgia, serif;
	font-weight: 600; font-size: 18px; line-height: 1.4;
	color: var(--ptfpm-black);
}
.ptfpm-card-desc {
	font-size: 13.5px; line-height: 1.6;
	color: rgba(14,14,14,.68);
	flex: 1;
}
.ptfpm-card-stat {
	display: flex; align-items: center; gap: 6px;
	margin-top: 4px; padding-top: 12px;
	border-top: 1px solid rgba(14,14,14,.12);
	font-size: 12.5px; font-weight: 700;
	color: var(--ptfpm-black);
}
.ptfpm-card-stat svg{
	width:14px !important;height:14px !important;max-width:14px !important;
	flex:none !important;display:inline-block !important;
	color:var(--ptfpm-green) !important;fill:var(--ptfpm-green) !important;
}
@media (max-width: 980px) {
	.ptfpm-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 620px) {
	.ptfpm-grid { grid-template-columns: minmax(0, 1fr); gap: 20px; }
}


/* ===================== donation widget ===================== */
.ptfpm-donate{
	--green:#178754;--bright:#35C77B;--deep:#0C4A2C;
	--black:#0E0E0E;--muted:#68706A;--soft:#F5F8F5;
	font-family:'Manrope',Arial,sans-serif;color:var(--black);
	padding:70px 20px;position:relative;overflow:hidden;
}
.ptfpm-donate *{box-sizing:border-box}
.ptfpm-donate h2,.ptfpm-donate h3,.ptfpm-donate p{margin:0}
.ptfpm-donate::before{
	content:'';position:absolute;top:50%;left:50%;
	width:640px;height:640px;border-radius:50%;
	background:radial-gradient(circle,rgba(53,199,123,.14) 0%,rgba(53,199,123,0) 70%);
	transform:translate(-50%,-50%);pointer-events:none;
}
.ptfpm-donate-card{
	position:relative;max-width:680px;margin:0 auto;
	background:#fff;border-radius:28px;padding:56px 48px;
	box-shadow:0 25px 70px rgba(12,74,44,.10);
	overflow:hidden;
	opacity:0;transform:translateY(24px);
	transition:opacity .7s ease, transform .7s ease;
}
.ptfpm-donate-card.in-view{opacity:1;transform:translateY(0)}
.ptfpm-donate-leaf{
	position:absolute;top:-40px;right:-40px;width:220px;height:220px;
	opacity:.05;pointer-events:none;color:var(--green);
}
.ptfpm-donate-inner{position:relative;text-align:center}
.ptfpm-donate-label{
	display:block;color:var(--green) !important;font-size:11px;font-weight:800;
	letter-spacing:.14em;text-transform:uppercase;margin-bottom:16px;
}
.ptfpm-donate-heading{
	font-family:Georgia,serif;font-size:clamp(26px,3.6vw,34px);
	line-height:1.3;font-weight:600;margin-bottom:16px;
}
.ptfpm-donate-sub{
	max-width:480px;margin:0 auto 32px;color:var(--muted);
	font-size:14.5px;line-height:1.8;
}
.ptfpm-donate-amounts{
	display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:14px;
}
.ptfpm-amount-btn{
	-webkit-appearance:none;appearance:none;box-sizing:border-box;
	padding:16px 8px;border-radius:14px;border:1.5px solid rgba(14,14,14,.12) !important;
	background:#fff !important;color:var(--black) !important;font-weight:700;font-size:15px;
	cursor:pointer;transition:all .15s ease;font-family:inherit;line-height:normal;
	text-decoration:none;box-shadow:none;
}
.ptfpm-amount-btn:hover,.ptfpm-amount-btn:focus,.ptfpm-amount-btn:visited{
	border-color:var(--green) !important;color:var(--black) !important;background:#fff !important;
}
.ptfpm-amount-btn.active,.ptfpm-amount-btn.active:hover,.ptfpm-amount-btn.active:focus{
	border-color:var(--green) !important;background:rgba(23,135,84,.06) !important;color:var(--green) !important;
	box-shadow:inset 0 0 0 1.5px var(--green) !important;
}
.ptfpm-donate-custom{
	display:flex;align-items:center;gap:6px;padding:0 18px;margin-bottom:26px;
	border:1.5px solid rgba(14,14,14,.12);border-radius:14px;background:#fff;
	transition:border-color .15s ease;
}
.ptfpm-donate-custom:focus-within{border-color:var(--green)}
.ptfpm-donate-custom span{color:var(--muted) !important;font-weight:700}
.ptfpm-donate-custom-input{
	-webkit-appearance:none;appearance:none;box-shadow:none;
	border:none !important;outline:none;width:100%;padding:15px 6px;
	font-size:15px;background:transparent !important;font-family:inherit;font-weight:600;
	color:var(--black) !important;
}
.ptfpm-donate-btn,.ptfpm-donate-btn:hover,.ptfpm-donate-btn:focus,.ptfpm-donate-btn:visited{
	-webkit-appearance:none;appearance:none;box-sizing:border-box;text-decoration:none;
	display:inline-flex;align-items:center;justify-content:center;gap:9px;
	width:100%;padding:18px 20px;border-radius:16px;border:none !important;cursor:pointer;
	background:linear-gradient(135deg,var(--green),var(--bright)) !important;
	color:#fff !important;font-weight:800;font-size:15.5px;line-height:normal;
	font-family:inherit;transition:transform .15s ease, box-shadow .15s ease;
	box-shadow:0 12px 28px rgba(23,135,84,.28);
}
.ptfpm-donate-btn:hover{transform:translateY(-2px);box-shadow:0 16px 34px rgba(23,135,84,.36)}
.ptfpm-donate-btn svg{width:18px;height:18px;flex:none;color:#fff !important;stroke:#fff !important}
.ptfpm-donate-btn-label{color:#fff !important}
.ptfpm-donate-error{
	display:none;margin-top:12px;font-size:13px;color:#c0392b;font-weight:600;
}
.ptfpm-donate-trust{
	display:flex;flex-wrap:wrap;justify-content:center;gap:22px;margin-top:22px;
}
.ptfpm-trust-item{
	display:flex;align-items:center;gap:7px;font-size:12.5px;color:var(--muted);
}
.ptfpm-trust-item svg{width:15px;height:15px;color:var(--green) !important;flex:none}
.ptfpm-donate-success{display:none;text-align:center;padding:10px 0 4px}
.ptfpm-success-icon{
	width:64px;height:64px;border-radius:50%;background:rgba(23,135,84,.1);
	display:flex;align-items:center;justify-content:center;margin:0 auto 20px;
}
.ptfpm-success-icon svg{width:30px;height:30px;color:var(--green)}
.ptfpm-donate-success h3{
	font-family:Georgia,serif;font-size:24px;font-weight:600;margin-bottom:10px;
}
.ptfpm-donate-success p{color:var(--muted);font-size:14.5px;line-height:1.7}

/* compact variant — the mini "Quick Donate" card inside the hero */
.ptfpm-donate--compact{padding:0}
.ptfpm-donate--compact::before{display:none}
.ptfpm-donate--compact .ptfpm-donate-card{
	max-width:100%;padding:30px 26px;border-radius:20px;
	box-shadow:0 25px 60px rgba(0,0,0,.35);
}
.ptfpm-donate--compact .ptfpm-donate-label--compact{font-size:11px;margin-bottom:14px}
.ptfpm-donate--compact .ptfpm-donate-amounts{grid-template-columns:repeat(2,1fr);gap:8px;margin-bottom:12px}
.ptfpm-donate--compact .ptfpm-amount-btn{padding:12px 6px;font-size:14px;border-radius:12px}
.ptfpm-donate--compact .ptfpm-donate-custom{margin-bottom:16px;padding:0 14px}
.ptfpm-donate--compact .ptfpm-donate-custom-input{padding:12px 4px;font-size:14px}
.ptfpm-donate--compact .ptfpm-donate-btn{padding:14px 16px;font-size:14px;border-radius:13px}
.ptfpm-donate--compact .ptfpm-donate-trust--compact{margin-top:14px;justify-content:flex-start}
.ptfpm-donate--compact .ptfpm-trust-item{font-size:11px}

@media(max-width:560px){
	.ptfpm-donate{padding:50px 16px}
	.ptfpm-donate-card{padding:38px 22px;border-radius:22px}
	.ptfpm-donate-amounts{grid-template-columns:repeat(2,1fr)}
}
