/* ---------- Age groups section (plugin: AgeGroupsPlugin) ---------- */

.age-groups {
	padding: var(--s12) 0;
	position: relative;
	background: var(--color-surface);
}

.age-groups .container {
	width: 100%;
	max-width: 1180px;
	margin: 0 auto;
	padding: 0 var(--s3);
}

.age-groups .section-head {
	/* max-width: 640px; */
	margin: 0 auto var(--s8);
	text-align: center;
}

.age-groups .section-head .kicker {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-weight: 800;
	font-size: .82rem;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--orange);
	margin-bottom: var(--s2);
}

.age-groups .kicker .dot {
	width: 10px;
	height: 10px;
	border-radius: 50%;
	background: var(--yellow);
	display: inline-block;
}

.age-groups .section-head h2 {
	font-family: var(--font-display);
	font-size: clamp(1.8rem, 3.6vw, 2.6rem);
	line-height: 1.15;
	margin: 0 0 var(--s2);
	color: var(--color-text);
}

.age-groups .section-head p {
	color: var(--color-text-muted);
	font-size: 1.06rem;
	text-wrap: balance;
	max-width: 640px;
	margin: 0 auto;
}

/* ---------- Bento grid ---------- */

.age-bento {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	grid-auto-rows: minmax(215px, 1fr);
	gap: var(--s2);
}

/* slot wrappers (one per child plugin) are the grid items */
.age-bento .age-slot {
	display: flex;
}

.age-bento .age-slot .age-tile {
	flex: 1;
	width: 100%;
}

.age-bento .g1 {
	grid-column: 1;
	grid-row: 1 / span 2;
}

.age-bento .g2 {
	grid-column: 2;
	grid-row: 1;
}

.age-bento .g3 {
	grid-column: 3;
	grid-row: 1;
}

.age-bento .g4 {
	grid-column: 2;
	grid-row: 2;
}

.age-bento .g5 {
	grid-column: 3;
	grid-row: 2;
}

/* ---------- Tiles ---------- */

.age-tile {
	position: relative;
	overflow: hidden;
	border-radius: var(--r-lg);
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	padding: var(--s4);
	min-height: 215px;
	text-decoration: none;
	color: var(--slate);
	box-shadow: var(--shadow-sm);
	transition: transform .3s cubic-bezier(.34, 1.56, .64, 1), box-shadow .3s ease;
}

.age-tile:hover {
	transform: translateY(-6px);
	box-shadow: var(--shadow-md);
}

.age-tile:hover .bubble--a {
	transform: scale(1.2) translateY(10px);
}

.age-tile:hover .bubble--b {
	transform: scale(1.2) translateY(-10px);
}

.age-tile--pink {
	background: var(--pink);
}

.age-tile--yellow {
	background: var(--yellow);
}

.age-tile--mint {
	background: var(--mint);
}

.age-tile--peach {
	background: var(--peach);
}

.age-tile--rose {
	background: var(--rose);
}

.age-tile-in {
	position: relative;
	z-index: 1;
	display: flex;
	flex-direction: column;
	gap: 8px;
}

.age-tile h3 {
	font-family: var(--font-display);
	font-size: 1.4rem;
	margin: 0;
}

.age-tile p {
	margin: 0;
	font-size: .96rem;
	color: var(--slate-80);
}

.age-tile .pill-row {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-top: 6px;
}

/* white pills read cleanly on the colored fills */
.age-tile .pill {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	border-radius: 999px;
	padding: 6px 13px;
	font-size: .85rem;
	font-weight: 700;
	background: rgba(255, 255, 255, .65);
	color: var(--slate);
}

.age-tile .pill i[class^="icon-"] {
	font-size: 14px;
	line-height: 1;
}

/* decorative bubbles */
.age-tile .bubble {
	position: absolute;
	border-radius: 50%;
	z-index: 0;
	pointer-events: none;
	background: rgba(255, 255, 255, .3);
	transition: all .3s cubic-bezier(.34, 1.56, .64, 1);
}

.age-tile .bubble--a {
	width: 140px;
	height: 140px;
	top: -40px;
	right: -30px;
}

.age-tile .bubble--b {
	width: 70px;
	height: 70px;
	bottom: -20px;
	left: -20px;
}

/* color-specific bubbles */
.age-tile--pink .bubble--a {
	width: 220px;
	height: 220px;
	top: -35px;
	right: -55px;
}

.age-tile--pink .bubble--b {
	bottom: -25px;
	left: -15px;
}

.age-tile--yellow .bubble--a {
	top: -30px;
	right: -25px;
}

.age-tile--yellow .bubble--b {
	bottom: -5px;
	left: -40px;
}

.age-tile--mint .bubble--a {
	top: -42px;
	right: -52px;
}

.age-tile--mint .bubble--b {
	bottom: -30px;
	left: -10px;
}

.age-tile--peach .bubble--a {
	top: -58px;
	right: -38px;
}

.age-tile--peach .bubble--b {
	bottom: -15px;
	left: -35px;
}

.age-tile--rose .bubble--a {
	top: -45px;
	right: -32px;
}

.age-tile--rose .bubble--b {
	bottom: -32px;
	left: -22px;
}

/* ---------- Age number ---------- */

.age-num {
	font-family: var(--font-display);
	font-weight: 800;
	font-size: 3rem;
	line-height: 1;
	color: var(--slate);
	display: flex;
	align-items: baseline;
	gap: 8px;
}

.age-num small {
	font-size: 1rem;
	font-weight: 700;
	color: var(--slate-80);
}

/* first (large) tile emphasis */
.age-bento .g1 .age-tile {
	padding: var(--s6) var(--s4);
}

.age-bento .g1 h3 {
	font-size: 2rem;
}

.age-bento .g1 .age-num {
	font-size: 4rem;
}

/* ---------- Responsive ---------- */

@media (max-width: 900px) {
	.age-bento {
		grid-template-columns: repeat(2, 1fr);
		grid-auto-rows: minmax(190px, auto);
	}

	.age-bento .g1 {
		grid-column: 1 / -1;
		grid-row: auto;
		min-height: 220px;
	}

	.age-bento .g1 .age-tile {
		padding: var(--s4);
	}

	.age-bento .g2,
	.age-bento .g3,
	.age-bento .g4,
	.age-bento .g5 {
		grid-column: auto;
		grid-row: auto;
	}
}

@media (max-width: 560px) {
	.age-bento {
		grid-template-columns: 1fr;
	}

	.age-bento .g1,
	.age-bento .g2,
	.age-bento .g3,
	.age-bento .g4,
	.age-bento .g5 {
		grid-column: 1;
		grid-row: auto;
	}
}