/*
 * Alignment fixes on top of the original design (requested 2026-10-19).
 * The original grids used auto-fit columns that left orphaned items
 * (e.g. stats wrapping 3 + 1). These rules keep rows full or centered.
 * Doubled classes raise specificity above the original rules and the
 * inline-style rules generated from the static markup.
 */

/* ---------- Huios: stats (Home, Incubators, Give) ---------- */
#site .grid-4.grid-4 {
	max-width: 1120px !important;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 24px;
}
@media (max-width: 1024px) {
	#site .grid-4.grid-4 { max-width: 640px !important; grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 40px; }
}
@media (max-width: 600px) {
	#site .grid-4.grid-4 { grid-template-columns: 1fr; }
}

/* ---------- Huios: card grids → full rows, last row centered ---------- */
#site .grid-3.grid-3,
#site .grid-7.grid-7,
#site .nd-autofit.nd-autofit {
	display: flex !important;
	flex-wrap: wrap;
	justify-content: center;
	align-items: stretch;
}
#site .grid-3.grid-3 { gap: 20px; }
#site .grid-7.grid-7 { gap: 16px; }

#site .grid-3.grid-3 > *,
#site .grid-3.grid-3 > .elementor-widget > *,
#site .grid-3.grid-3 > .elementor-widget > .elementor-widget-container > * {
	flex: 0 0 calc((100% - 40px) / 3);
	min-width: 0;
}
#site .grid-7.grid-7 > *,
#site .grid-7.grid-7 > .elementor-widget > *,
#site .grid-7.grid-7 > .elementor-widget > .elementor-widget-container > * {
	flex: 0 0 calc((100% - 48px) / 4);
	min-width: 0;
}
#site .nd-autofit.nd-autofit > *,
#site .nd-autofit.nd-autofit > .elementor-widget > *,
#site .nd-autofit.nd-autofit > .elementor-widget > .elementor-widget-container > * {
	flex: 0 0 calc((100% - 48px) / 3);
	min-width: 0;
}

@media (max-width: 1100px) {
	#site .grid-7.grid-7 > *,
	#site .grid-7.grid-7 > .elementor-widget > *,
	#site .grid-7.grid-7 > .elementor-widget > .elementor-widget-container > * { flex-basis: calc((100% - 32px) / 3); }
}
@media (max-width: 900px) {
	#site .grid-3.grid-3 > *,
	#site .grid-3.grid-3 > .elementor-widget > *,
	#site .grid-3.grid-3 > .elementor-widget > .elementor-widget-container > *,
	#site .nd-autofit.nd-autofit > *,
	#site .nd-autofit.nd-autofit > .elementor-widget > *,
	#site .nd-autofit.nd-autofit > .elementor-widget > .elementor-widget-container > * { flex-basis: calc((100% - 24px) / 2); }
}
@media (max-width: 800px) {
	#site .grid-7.grid-7 > *,
	#site .grid-7.grid-7 > .elementor-widget > *,
	#site .grid-7.grid-7 > .elementor-widget > .elementor-widget-container > * { flex-basis: calc((100% - 16px) / 2); }
}
@media (max-width: 600px) {
	#site .grid-3.grid-3 > *,
	#site .grid-3.grid-3 > .elementor-widget > *,
	#site .grid-3.grid-3 > .elementor-widget > .elementor-widget-container > *,
	#site .grid-7.grid-7 > *,
	#site .grid-7.grid-7 > .elementor-widget > *,
	#site .grid-7.grid-7 > .elementor-widget > .elementor-widget-container > *,
	#site .nd-autofit.nd-autofit > *,
	#site .nd-autofit.nd-autofit > .elementor-widget > *,
	#site .nd-autofit.nd-autofit > .elementor-widget > .elementor-widget-container > * { flex-basis: 100%; }
}

/* ---------- Huios: "There's a Place for You" cards — buttons level ---------- */
#site .info-card.info-card {
	display: flex;
	flex-direction: column;
}
#site .info-card.info-card .btn {
	margin-top: auto;
	align-self: center;
	white-space: nowrap;
}
@media (max-width: 1100px) {
	#site .info-card.info-card { padding-left: 20px; padding-right: 20px; }
	#site .info-card.info-card .btn { padding-left: 20px; padding-right: 20px; letter-spacing: 2px; }
}

/* ---------- Huios: hero glow no longer causes sideways scroll on phones ---------- */
#site .hero.hero { overflow-x: clip; }

/* ---------- Keegan: latest writing — 3 across until phones ---------- */
@media (min-width: 769px) and (max-width: 1024px) {
	#site .writing-grid.writing-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

/* ---------- Keegan: social buttons ----------
 * Same as the original whenever all four fit on one line. When they have to
 * wrap (theme.js adds .nd-wrap2), they form an even 2 × 2 instead of 3 + 1. */
#site .social-links.nd-wrap2 {
	display: inline-grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
}
#site .social-links.nd-wrap2 .social-link { justify-content: center; }
