/* ═══════════════════════════════════════════════════════════════════════════
   MIXED-AGE PAGE — VISION SECTION
   ═══════════════════════════════════════════════════════════════════════════ */



/* ═══════════════════════════════════════════════════════════════════════════
   MIXED-AGE PAGE — CHALLENGES SECTION
   ═══════════════════════════════════════════════════════════════════════════ */

.ce-mixed-challenges {
	background: #fff;
	padding: 5rem 0;
	position: relative;
	overflow: clip;
}

.ce-mixed-challenges::before {
	content: '';
	position: absolute;
	width: 450px;
	height: 450px;
	background: #f9f9f9;
	border-radius: 2.75rem;
	transform: rotate(45deg);
	top: -80px;
	left: -90px;
	pointer-events: none;
	z-index: 0;
}

.ce-mixed-challenges::after {
	content: '';
	position: absolute;
	width: 260px;
	height: 260px;
	background: #f9f9f9;
	border-radius: 2rem;
	transform: rotate(45deg);
	top: 420px;
	left: 178px;
	pointer-events: none;
	z-index: 0;
}

.ce-mixed-challenges .site-container {
	position: relative;
	z-index: 1;
}

.ce-mixed-challenges__title-row {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 0.65rem;
	margin-bottom: 0.75rem;
}

.ce-mixed-challenges__heading {
	font-family: var(--ci-font-primary);
	font-size: var(--ci-text-h2);
	font-weight: 700;
	color: #646464;
	margin: 0;
	line-height: 1.25;
}

.ce-mixed-challenges__sub {
	font-family: var(--ci-font-primary);
	font-size: var(--ci-text-body);
	color: #7a8a9a;
	text-align: center;
	margin: 0 auto 3rem;
	line-height: 1.7;
}

.ce-mixed-challenges__grid {
	grid-template-columns: repeat(2, 1fr);
}

/* Paragraphs line up across each row automatically — see feature-list.css.
   Without it this section is misaligned between 700 and 800, and again between
   860 and 900 where "Flexibility for changing configurations" wraps but its
   neighbour does not. That rule's align-content: start is what keeps the
   min-height below from spreading the header and paragraph apart. */
.ce-mixed-challenges .ce-feature-list__item {
	padding: 1.25rem 1.5rem;
	min-height: 14rem !important;
}

.ce-mixed-challenges .ce-feature-list__header {
	display: flex;
	align-items: center;
	gap: 0.65rem;
}

.ce-mixed-challenges .ce-feature-list__badge {
	font-size: 1.75rem;
	flex-shrink: 0;
}

@media (max-width: 680px) {
	.ce-mixed-challenges {
		padding: 3rem 0;
	}

	.ce-mixed-challenges__grid {
		grid-template-columns: 1fr;
	}
}


/* ═══════════════════════════════════════════════════════════════════════════
   MIXED-AGE PAGE — WHAT YOU GET SECTION
   ═══════════════════════════════════════════════════════════════════════════ */

.ce-mixed-what-you-get {
	background: #fff;
	position: relative;
	overflow: clip;
	transform: translateZ(0);
	-webkit-transform: translateZ(0);
	backdrop-filter: blur(0px);
	-webkit-backdrop-filter: blur(0px);
}

.ce-mixed-what-you-get::before {
	content: '';
	position: absolute;
	width: 450px;
	height: 450px;
	background: #f9f9f9;
	border-radius: 2.75rem;
	transform: rotate(45deg);
	top: -80px;
	left: -90px;
	pointer-events: none;
	z-index: 0;
}

.ce-mixed-what-you-get::after {
	content: '';
	position: absolute;
	width: 260px;
	height: 260px;
	background: #f9f9f9;
	border-radius: 2rem;
	transform: rotate(45deg);
	top: 420px;
	left: 178px;
	pointer-events: none;
	z-index: 0;
}

.ce-mixed-what-you-get .site-container {
	position: relative;
	z-index: 1;
}

/* Layout lives in components/maestro-card.css, shared with the single subject
   and EYFS pages. All this page contributes is which colour it is.

   Its padding, gap and badge size used to differ from the other two — 1.75rem
   against 2rem, a smaller badge — which is the drift the shared class exists
   to end, so they are gone rather than preserved. */
.ce-mixed-what-you-get__maestro {
	--ce-maestro-accent: #71947e;
	--ce-maestro-accent-hover: #557060;
}

/* Paragraphs line up across each row automatically — see feature-list.css.

   Unlike the challenges section above, this one was misaligned on desktop too,
   not just on tablets. Six cards against feature-list's own breakpoints (three
   columns above 900, two down to 561, one below) give a different pairing at
   almost every width, and nearly all of them were wrong — bad rows out of the
   total, measured by stripping the class again after load:

     1400  2 of 2      900  2 of 3
     1180  1 of 2      860  3 of 3
     1024  0 of 2      820  1 of 3
      980  1 of 2      768  1 of 3
                       700  1 of 3

   1024 is the only width that happened to be clean, which is the argument for
   fixing the mechanism rather than a breakpoint: the good width is an accident
   of where six particular headings wrap.

   The modifier's align-content: start is what keeps the min-height below from
   spreading the header and paragraph apart. */
.ce-mixed-what-you-get .ce-feature-list__grid .ce-feature-list__item {
	padding: 1.25rem 1.5rem;
	min-height: 14rem !important;
}

/* Equal card height only matters on desktop's multi-column grid, where a
   short card next to a tall one looks unbalanced. Single-column mobile has
   no such row to balance against — forcing the same fixed height there just
   leaves large empty gaps in the shorter cards. Must come after the rule
   above in source order to win despite equal specificity + !important. */
@media (max-width: 760px) {
	.ce-mixed-what-you-get .ce-feature-list__grid .ce-feature-list__item {
		min-height: auto !important;
	}
}

.ce-mixed-what-you-get .ce-feature-list__grid .ce-feature-list__header {
	display: flex;
	align-items: center;
	gap: 0.65rem;
}

.ce-mixed-what-you-get .ce-feature-list__grid .ce-feature-list__badge {
	font-size: 1.75rem;
	flex-shrink: 0;
}
