/* =====================================================================
   Block: logo-cards
   Grid of org logos. card style = white card + name + Learn More pill;
   bare style = logo only, centered.
   ===================================================================== */
.logo-cards { padding-block: var(--cmcf-section-pad); }

.logo-cards--heading {
	font-family: var(--cmcf-font-heading);
	font-size: var(--cmcf-fs-h1);
	color: var(--cmcf-primary);
	text-align: center;
	margin: 0 0 40px;
}
.cmcf-bg-lime  .logo-cards--heading { color: var(--cmcf-deep); }
.cmcf-bg-green .logo-cards--heading { color: var(--cmcf-white); }

.logo-cards--grid {
	display: grid;
	gap: 25px var(--cmcf-gap);   /* design: 25px row pitch gap between card rows */
	align-items: stretch;
}
.logo-cards--cols-5 { grid-template-columns: repeat(5, 1fr); }
.logo-cards--cols-4 { grid-template-columns: repeat(4, 1fr); }
.logo-cards--cols-3 { grid-template-columns: repeat(3, 1fr); }
.logo-cards--cols-2 { grid-template-columns: repeat(2, 1fr); }

/* Card style ----------------------------------------------------------
   Design geometry (Our Giving grantees): card is a FIXED 302px box —
   131px logo tile / 1px divider / 170px info area — regardless of name
   length; row gap 25px (row pitch 327). */
.logo-cards--card {
	display: flex;
	flex-direction: column;
	align-items: center;
	background: var(--cmcf-white);
	padding: 0 16px;
}
@media (min-width: 861px) {
	.logo-cards--card { height: 302px; }
}
.logo-cards--logo-wrap {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	flex: 0 0 131px;
	min-height: 0;
	margin: 0;
	padding: 14px 4px;
}
.logo-cards--card .logo-cards--logo {
	max-width: 100%;
	max-height: 100%;
	width: auto;
	height: auto;
	object-fit: contain;
}
.logo-cards--divider {
	width: calc(100% + 32px);
	height: 1px;
	border: 0;
	background: var(--cmcf-secondary);
	margin: 0 -16px 14px;
	flex: 0 0 1px;
}
.logo-cards--name {
	font-family: var(--cmcf-font-body);
	font-size: 14px;
	color: var(--cmcf-black);
	text-align: center;
	margin: 0 0 12px;
	line-height: 1.35;
}
.logo-cards--cta {
	margin-top: auto;                       /* pin CTA to card bottom */
	padding: 12px 22px;
}

/* Bare style --------------------------------------------------------- */
.logo-cards--bare {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 90px;
}
.logo-cards--bare .logo-cards--logo {
	max-width: 100%;
	max-height: 90px;
	width: auto;
	height: auto;
	object-fit: contain;
}

@media (max-width: 1100px) {
	.logo-cards--cols-5 { grid-template-columns: repeat(3, 1fr); }
	.logo-cards--cols-4 { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 860px) {
	.logo-cards--cols-5,
	.logo-cards--cols-4,
	.logo-cards--cols-3 { grid-template-columns: repeat(2, 1fr); }
	.logo-cards--cols-2 { grid-template-columns: 1fr; }
}
@media (max-width: 520px) {
	.logo-cards--grid { grid-template-columns: 1fr !important; }
}
