/* Freshy Fundraise — front-end styles
   Palette: coral #FF6A4D, deep navy #1B2A4A, mint #2EC4B6, cream #FFF7F1 */

.ff-wrap { max-width: 1140px; margin: 0 auto; padding: 24px 16px; }

.ff-btn {
	display: inline-block;
	background: #FF6A4D;
	color: #fff;
	font-weight: 700;
	padding: 12px 22px;
	border-radius: 999px;
	border: none;
	cursor: pointer;
	text-decoration: none;
	text-align: center;
	transition: transform .15s ease, box-shadow .15s ease, background .15s ease;
	box-shadow: 0 6px 18px rgba(255,106,77,.25);
}
.ff-btn:hover { background: #ff5636; transform: translateY(-2px); box-shadow: 0 10px 22px rgba(255,106,77,.32); color:#fff; }
.ff-btn-block { display:block; width:100%; }
.ff-btn-primary { font-size: 1.05rem; padding: 14px 22px; }

/* Category grid */
.ff-category-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
	gap: 14px;
	margin-bottom: 30px;
}
.ff-category-card {
	background: #fff;
	border: 1px solid #eee0d8;
	border-radius: 16px;
	padding: 20px 14px;
	text-align: center;
	cursor: pointer;
	transition: border-color .2s ease, transform .2s ease, box-shadow .2s ease;
	font: inherit;
}
.ff-category-card:hover,
.ff-category-card:focus-visible {
	border-color: #FF6A4D;
	transform: translateY(-4px);
	box-shadow: 0 10px 24px rgba(27,42,74,.1);
	outline: none;
}
.ff-category-card.is-active { border-color: #FF6A4D; background: #FFF1EC; }
.ff-cat-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 46px; height: 46px;
	border-radius: 50%;
	background: #FFF1EC;
	margin-bottom: 10px;
}
.ff-cat-icon svg { width: 24px; height: 24px; fill: none; stroke: #FF6A4D; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.ff-cat-name { display:block; font-weight: 700; color: #1B2A4A; margin-bottom: 4px; }
.ff-cat-count { display:block; font-size: .8rem; color: #8b8b95; }

/* Campaign grid */
.ff-campaign-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 22px; }
.ff-campaign-card {
	background: #fff;
	border-radius: 18px;
	overflow: hidden;
	border: 1px solid #f0e8e2;
	box-shadow: 0 8px 20px rgba(27,42,74,.06);
	display: flex;
	flex-direction: column;
}
.ff-campaign-img {
	height: 160px;
	background: linear-gradient(135deg,#FF6A4D,#FFB199) center/cover;
	position: relative;
}
.ff-campaign-tag {
	position: absolute; top: 12px; left: 12px;
	background: rgba(27,42,74,.85);
	color: #fff; font-size: .72rem; font-weight: 700;
	padding: 5px 10px; border-radius: 999px;
}
.ff-campaign-body { padding: 18px; display:flex; flex-direction:column; gap:10px; flex:1; }
.ff-campaign-body h3 { margin: 0; font-size: 1.05rem; color: #1B2A4A; }
.ff-campaign-body p { margin: 0; color: #666; font-size: .9rem; flex:1; }
.ff-progress { background: #f1ece7; border-radius: 999px; height: 8px; overflow: hidden; }
.ff-progress-fill { height: 100%; background: linear-gradient(90deg,#FF6A4D,#2EC4B6); border-radius: 999px; transition: width .6s ease; }
.ff-campaign-stats { display:flex; align-items:baseline; justify-content:space-between; font-size: .85rem; color:#444; }
.ff-campaign-stats strong { color:#1B2A4A; font-size:1rem; }
.ff-percent { color: #2EC4B6; font-weight: 700; }
.ff-empty { grid-column: 1/-1; text-align:center; color:#888; padding: 30px 0; }

/* Stats bar */
.ff-stats-bar { display:flex; flex-wrap:wrap; gap: 24px; justify-content:center; text-align:center; margin: 20px 0 36px; }
.ff-stats-bar div { min-width: 140px; }
.ff-stats-bar strong { display:block; font-size: 1.8rem; color:#1B2A4A; }
.ff-stats-bar span { color:#888; font-size:.85rem; }

/* Form */
.ff-notice { padding: 14px 18px; border-radius: 12px; margin-bottom: 20px; font-weight: 600; }
.ff-notice-success { background:#e6f9f2; color:#0f7a5c; border:1px solid #b7ecd9; }
.ff-notice-error { background:#fdeceb; color:#b3261e; border:1px solid #f6c6c2; }

.ff-form { background:#fff; border-radius: 20px; padding: 28px; border:1px solid #f0e8e2; box-shadow: 0 10px 30px rgba(27,42,74,.06); }
.ff-form-grid { display:grid; grid-template-columns: 1fr 1fr; gap: 18px; margin-bottom: 20px; }
.ff-form-field.ff-span-2 { grid-column: 1 / -1; }
.ff-form-field label { display:block; font-weight:700; color:#1B2A4A; margin-bottom:6px; font-size:.92rem; }
.ff-form-field input,
.ff-form-field select,
.ff-form-field textarea {
	width: 100%;
	border: 1.5px solid #e6ded7;
	border-radius: 10px;
	padding: 11px 13px;
	font: inherit;
	color: #1B2A4A;
	background: #fffdfb;
	transition: border-color .15s ease, box-shadow .15s ease;
}
.ff-form-field input:focus,
.ff-form-field select:focus,
.ff-form-field textarea:focus {
	outline: none;
	border-color: #FF6A4D;
	box-shadow: 0 0 0 3px rgba(255,106,77,.15);
}
.ff-form-note { text-align:center; color:#888; font-size:.85rem; margin-top:14px; }

@media (max-width: 640px) {
	.ff-form-grid { grid-template-columns: 1fr; }
	.ff-form { padding: 20px; }
}

/* ---------- Full homepage shortcode ([freshy_fundraise_home]) ---------- */
.ff-home h1, .ff-home h2, .ff-home h3,
.ff-page-template h1, .ff-page-template h2, .ff-page-template h3 { font-family: 'Fraunces', Georgia, 'Times New Roman', serif; color:#1B2A4A; font-weight:600; }
.ff-hero { background: linear-gradient(180deg,#FFF7F1,#fff); padding: 50px 16px 30px; }
.ff-hero-inner { max-width: 1140px; margin:0 auto; display:grid; gap:34px; grid-template-columns:1fr; align-items:center; }
@media(min-width:900px){ .ff-hero-inner{ grid-template-columns: 1.15fr 1fr; } }
.ff-eyebrow { display:flex; align-items:center; gap:8px; font-weight:700; color:#8b8b95; font-size:.85rem; margin-bottom:14px; }
.ff-dot { width:8px; height:8px; border-radius:50%; background:#2EC4B6; animation: ffPulse 1.8s infinite; }
@keyframes ffPulse { 0%,100%{opacity:1;} 50%{opacity:.35;} }
.ff-hero-copy h1 { font-size: clamp(2rem,4.5vw,2.8rem); line-height:1.1; margin:0 0 18px; max-width:16ch; }
.ff-hero-copy h1 em { font-style: italic; color:#FF6A4D; }
.ff-hero-copy p { color:#5B6178; font-size:1.05rem; max-width:46ch; margin-bottom:22px; }
.ff-hero-ctas { display:flex; flex-wrap:wrap; gap:12px; }
.ff-hero-stat .ff-stats-bar { background:#fff; border:1px solid #f0e8e2; border-radius:22px 22px 0 0; padding:26px; box-shadow:0 20px 45px -22px rgba(27,42,74,.25); margin:0; }
.ff-hero-stat .ff-stats-bar strong{ font-family:'Fraunces',serif; }

/* Progress rings shown under the hero stat card when there are 3+ live campaigns */
.ff-ring-row { display:flex; gap:18px; justify-content:center; background:#fff; border:1px solid #f0e8e2; border-top:none; padding:0 26px 6px; }
.ff-ring { position:relative; width:64px; height:64px; flex-shrink:0; }
.ff-ring svg { transform:rotate(-90deg); }
.ff-ring circle { fill:none; stroke-width:6; }
.ff-ring-track { stroke:#F1EBE4; }
.ff-ring-fill { stroke:#FF6A4D; stroke-linecap:round; transition:stroke-dashoffset 1.2s cubic-bezier(.3,.8,.3,1); }
.ff-ring-label { position:absolute; inset:0; display:flex; align-items:center; justify-content:center; font-size:.72rem; font-weight:800; color:#1B2A4A; }
.ff-ring-caps { display:flex; gap:18px; justify-content:center; background:#fff; border:1px solid #f0e8e2; border-top:none; border-radius:0 0 22px 22px; padding:0 26px 20px; box-shadow:0 20px 45px -22px rgba(27,42,74,.25); }
.ff-ring-caps span { width:64px; flex-shrink:0; text-align:center; font-size:.68rem; color:#8b8b95; font-weight:700; }

.ff-section { max-width:1140px; margin:0 auto; padding:54px 16px; }
.ff-section h2 { font-size:clamp(1.5rem,3vw,2rem); margin-bottom:10px; }
.ff-section-sub { color:#5B6178; margin:0 0 26px; }
.ff-steps-section { background:#FFF7F1; border-radius:28px; }
.ff-steps { display:grid; gap:20px; grid-template-columns:1fr; }
@media(min-width:780px){ .ff-steps{ grid-template-columns:repeat(3,1fr); } }
.ff-step { background:#fff; border:1px solid #f0e8e2; border-radius:16px; padding:26px 22px; }
.ff-step-num { font-size:1.9rem; color:#FF6A4D; font-weight:700; font-family:'Fraunces',serif; }
.ff-step h3 { font-family:'Manrope',sans-serif !important; font-size:1.05rem; margin:10px 0 6px; font-weight:700 !important; }
.ff-step p { color:#5B6178; font-size:.92rem; margin:0; }
.ff-form-section { background:#fff; }

/* Bento variety: the first category card in the grid spans two columns */
.ff-category-card.ff-feature { grid-column: span 2; flex-direction:row; align-items:center; gap:16px; text-align:left; }
.ff-category-card.ff-feature .ff-cat-icon { margin:0; }
@media(max-width:520px){ .ff-category-card.ff-feature { grid-column: span 2; } }
