/**
 * TAZZANT Rentrée & École.
 * All component selectors are isolated under the tz-school namespace.
 */

.tz-school-home,
.tz-school-home * ,
.tz-school-landing,
.tz-school-landing * {
	box-sizing: border-box;
}

.tz-school-home {
	background:
		radial-gradient(circle at 92% 12%, rgb(255 255 255 / 78%) 0 58px, transparent 59px),
		linear-gradient(135deg, #fff0ea 0%, #fff8e8 52%, #ecfaf7 100%);
	border-color: rgb(255 107 99 / 14%);
	display: grid;
	gap: 14px;
	grid-template-columns: minmax(0, 1.08fr) minmax(115px, .92fr);
	min-height: 265px;
	padding: 23px 16px;
	position: relative;
}

.tz-school-home__copy {
	align-self: center;
	position: relative;
	z-index: 2;
}

.tz-school-home h2 {
	font-size: clamp(23px, 6.5vw, 32px);
	max-width: 330px;
}

.tz-school-home__copy > p:not(.tz-section-kicker) {
	color: var(--tz-muted);
	font-size: 12px;
	line-height: 1.5;
	margin: 10px 0 12px;
	max-width: 325px;
}

.tz-school-home__badges {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	margin-bottom: 14px;
}

.tz-school-home__badges span {
	background: rgb(255 255 255 / 78%);
	border: 1px solid rgb(22 59 109 / 8%);
	border-radius: 999px;
	color: var(--tz-text);
	font-size: 9px;
	font-weight: 850;
	padding: 6px 8px;
}

.tz-school-button {
	align-items: center;
	background: var(--tz-cta);
	border-radius: 999px;
	box-shadow: 0 9px 20px rgb(255 91 94 / 22%);
	color: #fff !important;
	display: inline-flex;
	font-size: 10.5px;
	font-weight: 900;
	gap: 8px;
	justify-content: center;
	min-height: 43px;
	padding: 0 13px;
}

.tz-school-button span {
	font-size: 17px;
}

.tz-school-home__art {
	align-items: center;
	display: flex;
	justify-content: center;
	margin: -6px -24px -8px -18px;
}

.tz-school-home__art img {
	display: block;
	height: auto;
	max-height: 220px;
	width: 100%;
}

.tz-school-landing {
	background: var(--tz-bg);
	color: var(--tz-text);
	font-family: Nunito, Inter, ui-rounded, "Arial Rounded MT Bold", system-ui, sans-serif;
	padding: 0 0 46px;
}

.tz-school-landing a {
	color: inherit;
	text-decoration: none;
}

.tz-school-landing svg {
	display: block;
	fill: none;
	stroke: currentColor;
	stroke-linecap: round;
	stroke-linejoin: round;
	stroke-width: 1.7;
}

.tz-school-container {
	margin-inline: auto;
	max-width: 1240px;
	padding: 0 20px;
}

.tz-school-breadcrumb {
	align-items: center;
	color: var(--tz-muted);
	display: flex;
	font-size: 11px;
	gap: 8px;
	min-height: 50px;
}

.tz-school-breadcrumb a {
	color: var(--tz-primary);
	font-weight: 800;
}

.tz-school-breadcrumb [aria-current="page"] {
	color: var(--tz-text);
	font-weight: 900;
}

.tz-school-hero {
	background:
		radial-gradient(circle at 91% 9%, rgb(255 255 255 / 72%) 0 75px, transparent 76px),
		linear-gradient(135deg, #fff0ea 0%, #fff8e8 50%, #e9faf7 100%);
	border: 1px solid rgb(255 107 99 / 12%);
	border-radius: 30px;
	box-shadow: var(--tz-shadow-md);
	display: grid;
	grid-template-columns: minmax(0, .98fr) minmax(330px, 1.02fr);
	min-height: 470px;
	overflow: hidden;
	padding: 48px 54px;
}

.tz-school-hero__copy {
	align-self: center;
	position: relative;
	z-index: 2;
}

.tz-school-kicker,
.tz-school-heading p {
	color: var(--tz-cta);
	font-size: 10px;
	font-weight: 950;
	letter-spacing: .09em;
	margin: 0 0 7px;
	text-transform: uppercase;
}

.tz-school-hero h1 {
	color: var(--tz-text);
	font-size: clamp(39px, 4.2vw, 59px);
	font-weight: 950;
	letter-spacing: -.05em;
	line-height: 1;
	margin: 0;
	max-width: 650px;
}

.tz-school-hero__copy > p:not(.tz-school-kicker) {
	color: var(--tz-muted);
	font-size: 17px;
	font-weight: 650;
	line-height: 1.55;
	margin: 22px 0 26px;
	max-width: 530px;
}

.tz-school-hero__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 11px;
}

.tz-school-hero__actions a,
.tz-school-filters__actions button,
.tz-school-filters__actions a {
	align-items: center;
	background: var(--tz-cta);
	border: 1px solid var(--tz-cta);
	border-radius: 999px;
	color: #fff;
	cursor: pointer;
	display: inline-flex;
	font-family: inherit;
	font-size: 12px;
	font-weight: 900;
	justify-content: center;
	min-height: 46px;
	padding: 0 18px;
}

.tz-school-hero__actions a.is-secondary,
.tz-school-filters__actions a {
	background: rgb(255 255 255 / 68%);
	border-color: rgb(22 59 109 / 12%);
	color: var(--tz-text);
}

.tz-school-hero__art {
	align-items: center;
	display: flex;
	justify-content: center;
	margin: -25px -30px -25px 0;
}

.tz-school-hero__art img {
	display: block;
	height: auto;
	max-height: 430px;
	width: 100%;
}

.tz-school-panel {
	background: var(--tz-surface);
	border: 1px solid var(--tz-border);
	border-radius: 26px;
	box-shadow: var(--tz-shadow-sm);
	margin-top: 22px;
	padding: 28px;
}

.tz-school-heading {
	align-items: flex-end;
	display: flex;
	gap: 16px;
	justify-content: space-between;
	margin-bottom: 20px;
}

.tz-school-heading h2,
.tz-school-guide h2 {
	color: var(--tz-text);
	font-size: clamp(24px, 2.8vw, 34px);
	font-weight: 950;
	letter-spacing: -.035em;
	line-height: 1.08;
	margin: 0;
}

.tz-school-heading > span {
	background: var(--tz-coral-soft);
	border-radius: 999px;
	color: var(--tz-cta);
	font-size: 10px;
	font-weight: 900;
	padding: 7px 11px;
	white-space: nowrap;
}

.tz-school-category-grid {
	display: grid;
	gap: 13px;
	grid-template-columns: repeat(4, minmax(0, 1fr));
}

.tz-school-category-card {
	background: linear-gradient(150deg, #fff8f5, #fff 72%);
	border: 1px solid rgb(255 107 99 / 12%);
	border-radius: 21px;
	display: grid;
	gap: 11px;
	grid-template-columns: 78px minmax(0, 1fr) 16px;
	min-height: 116px;
	padding: 12px;
	transition: box-shadow .18s ease, transform .18s ease;
}

.tz-school-category-card:nth-child(2) { background: linear-gradient(150deg, #eefaf8, #fff 72%); border-color: rgb(69 197 180 / 15%); }
.tz-school-category-card:nth-child(3) { background: linear-gradient(150deg, #fff9e9, #fff 72%); border-color: rgb(255 190 72 / 18%); }
.tz-school-category-card:nth-child(4) { background: linear-gradient(150deg, #f5f0ff, #fff 72%); border-color: rgb(155 107 207 / 14%); }

.tz-school-category-card:hover,
.tz-school-category-card:focus-visible {
	box-shadow: 0 13px 25px rgb(22 59 109 / 9%);
	transform: translateY(-2px);
}

.tz-school-category-card__visual {
	align-items: center;
	background: rgb(255 255 255 / 70%);
	border-radius: 17px;
	display: flex;
	height: 78px;
	justify-content: center;
	overflow: hidden;
	width: 78px;
}

.tz-school-category-card__visual img {
	display: block;
	height: 100%;
	object-fit: contain;
	width: 100%;
}

.tz-school-category-card > span:not(.tz-school-category-card__visual) {
	align-self: center;
}

.tz-school-category-card strong,
.tz-school-category-card small {
	display: block;
}

.tz-school-category-card strong {
	font-size: 13px;
	font-weight: 950;
	line-height: 1.25;
}

.tz-school-category-card small {
	color: var(--tz-muted);
	font-size: 9px;
	font-weight: 700;
	line-height: 1.35;
	margin-top: 6px;
}

.tz-school-category-card > b {
	align-self: center;
	color: var(--tz-cta);
	font-size: 19px;
}

.tz-school-level-grid {
	display: grid;
	gap: 11px;
	grid-template-columns: repeat(4, minmax(0, 1fr));
}

.tz-school-level-grid a {
	align-items: center;
	background: #fbfefd;
	border: 1px solid rgb(69 197 180 / 16%);
	border-radius: 18px;
	display: grid;
	gap: 8px;
	grid-template-columns: 42px minmax(0, 1fr);
	min-height: 76px;
	padding: 10px;
}

.tz-school-level-grid a > span {
	align-items: center;
	background: var(--tz-aqua-soft);
	border-radius: 13px;
	color: var(--tz-primary);
	display: flex;
	grid-row: 1 / 3;
	height: 42px;
	justify-content: center;
	width: 42px;
}

.tz-school-level-grid svg { height: 22px; width: 22px; }
.tz-school-level-grid strong { align-self: end; font-size: 12px; font-weight: 950; }
.tz-school-level-grid small { align-self: start; color: var(--tz-muted); font-size: 9.5px; }

.tz-school-age-links {
	align-items: center;
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-top: 16px;
}

.tz-school-age-links strong {
	font-size: 11px;
	margin-right: 3px;
}

.tz-school-age-links a {
	background: var(--tz-yellow-soft);
	border-radius: 999px;
	color: #956710;
	font-size: 10px;
	font-weight: 850;
	min-height: 34px;
	padding: 9px 11px;
}

.tz-school-filters {
	background: #fbfefd;
	border: 1px solid rgb(69 197 180 / 18%);
	border-radius: 18px;
	margin-bottom: 18px;
	overflow: hidden;
}

.tz-school-filters > summary {
	align-items: center;
	cursor: pointer;
	display: flex;
	font-size: 12px;
	font-weight: 900;
	gap: 9px;
	list-style: none;
	min-height: 52px;
	padding: 0 16px;
}

.tz-school-filters > summary::-webkit-details-marker { display: none; }
.tz-school-filters > summary svg { color: var(--tz-primary); height: 20px; width: 20px; }
.tz-school-filters > summary b { font-size: 21px; font-weight: 500; margin-left: auto; transition: transform .18s ease; }
.tz-school-filters[open] > summary b { transform: rotate(45deg); }
.tz-school-filters form { border-top: 1px solid var(--tz-border); padding: 17px; }

.tz-school-filters__grid {
	display: grid;
	gap: 18px;
	grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
}

.tz-school-filters fieldset { border: 0; margin: 0; min-width: 0; padding: 0; }
.tz-school-filters legend { font-size: 11px; font-weight: 950; margin-bottom: 8px; }
.tz-school-filters label { align-items: center; cursor: pointer; display: grid; font-size: 10.5px; gap: 7px; grid-template-columns: 17px 1fr auto; min-height: 31px; }
.tz-school-filters input { accent-color: var(--tz-primary); height: 16px; margin: 0; width: 16px; }
.tz-school-filters label small { color: var(--tz-muted); }
.tz-school-filters__actions { display: flex; gap: 9px; margin-top: 16px; }
.tz-school-filters__actions button,
.tz-school-filters__actions a { min-height: 40px; }

.tz-school-no-result {
	background: var(--tz-yellow-soft);
	border-radius: 15px;
	color: var(--tz-text);
	font-size: 12px;
	font-weight: 750;
	margin: 0;
	padding: 16px;
}

.tz-school-guide {
	background: linear-gradient(140deg, var(--tz-text), #244f83);
	border-radius: 26px;
	color: #fff;
	display: grid;
	gap: 25px;
	grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr);
	margin-top: 22px;
	padding: 34px;
}

.tz-school-guide h2 { color: #fff; }
.tz-school-guide > div > p:not(.tz-school-kicker) { color: rgb(255 255 255 / 72%); font-size: 13px; line-height: 1.6; }
.tz-school-guide ul { display: grid; gap: 9px; list-style: none; margin: 0; padding: 0; }
.tz-school-guide li { background: rgb(255 255 255 / 8%); border: 1px solid rgb(255 255 255 / 10%); border-radius: 15px; padding: 12px 14px; }
.tz-school-guide li strong,
.tz-school-guide li span { display: block; }
.tz-school-guide li strong { font-size: 11px; font-weight: 950; }
.tz-school-guide li span { color: rgb(255 255 255 / 68%); font-size: 10px; line-height: 1.4; margin-top: 3px; }
.tz-school-guide > a { color: var(--tz-yellow); font-size: 11px; font-weight: 900; grid-column: 1 / -1; }

.tz-school-pack-grid {
	display: grid;
	gap: 12px;
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

.tz-school-pack-grid article {
	background: linear-gradient(145deg, var(--tz-coral-soft), #fff 80%);
	border: 1px solid rgb(255 107 99 / 12%);
	border-radius: 19px;
	min-height: 175px;
	padding: 17px;
}
.tz-school-pack-grid article:nth-child(2) { background: linear-gradient(145deg, var(--tz-aqua-soft), #fff 80%); border-color: rgb(69 197 180 / 14%); }
.tz-school-pack-grid article:nth-child(3) { background: linear-gradient(145deg, var(--tz-purple-soft), #fff 80%); border-color: rgb(155 107 207 / 13%); }
.tz-school-pack-grid article > span { align-items: center; background: #fff; border-radius: 13px; color: var(--tz-cta); display: flex; height: 42px; justify-content: center; width: 42px; }
.tz-school-pack-grid svg { height: 22px; width: 22px; }
.tz-school-pack-grid h3 { font-size: 15px; font-weight: 950; margin: 15px 0 5px; }
.tz-school-pack-grid p { color: var(--tz-muted); font-size: 10.5px; line-height: 1.45; margin: 0; }

.tz-school-faq details { border-top: 1px solid var(--tz-border); }
.tz-school-faq summary { align-items: center; cursor: pointer; display: flex; font-size: 12px; font-weight: 900; gap: 14px; justify-content: space-between; list-style: none; min-height: 54px; }
.tz-school-faq summary::-webkit-details-marker { display: none; }
.tz-school-faq summary b { color: var(--tz-primary); font-size: 20px; font-weight: 500; transition: transform .18s ease; }
.tz-school-faq details[open] summary b { transform: rotate(45deg); }
.tz-school-faq details p { color: var(--tz-muted); font-size: 11px; line-height: 1.6; margin: -2px 0 15px; max-width: 900px; }

.tz-school-trust {
	background: var(--tz-surface);
	border: 1px solid var(--tz-border);
	border-radius: 23px;
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	margin-top: 22px;
	overflow: hidden;
}
.tz-school-trust > div,
.tz-school-trust > a { align-items: center; display: grid; gap: 10px; grid-template-columns: 40px minmax(0, 1fr); min-height: 92px; padding: 15px; }
.tz-school-trust > * + * { border-left: 1px solid var(--tz-border); }
.tz-school-trust > div > svg,
.tz-school-trust > a > svg { color: var(--tz-primary); height: 28px; width: 28px; }
.tz-school-trust strong,
.tz-school-trust small { display: block; }
.tz-school-trust strong { font-size: 11px; font-weight: 950; line-height: 1.25; }
.tz-school-trust small { color: var(--tz-muted); font-size: 9px; line-height: 1.35; margin-top: 3px; }

.tz-school-landing a:focus-visible,
.tz-school-landing button:focus-visible,
.tz-school-landing input:focus-visible,
.tz-school-landing summary:focus-visible,
.tz-school-home a:focus-visible {
	outline: 3px solid var(--tz-yellow);
	outline-offset: 3px;
}

@media (max-width: 991.98px) {
	.tz-school-container { max-width: 820px; padding-inline: 12px; }
	.tz-school-breadcrumb { min-height: 42px; }
	.tz-school-hero { border-radius: 23px; grid-template-columns: minmax(0, 1.08fr) minmax(125px, .92fr); min-height: 385px; padding: 25px 17px 30px; }
	.tz-school-hero h1 { font-size: clamp(27px, 7.8vw, 38px); max-width: 360px; }
	.tz-school-hero__copy > p:not(.tz-school-kicker) { font-size: 13px; margin: 15px 0 18px; }
	.tz-school-hero__actions { align-items: flex-start; flex-direction: column; }
	.tz-school-hero__actions a { font-size: 10.5px; min-height: 43px; padding-inline: 13px; }
	.tz-school-hero__art { margin: -12px -42px -10px -24px; }
	.tz-school-panel { border-radius: 21px; margin-top: 15px; padding: 19px 15px; }
	.tz-school-category-grid { display: flex; gap: 10px; margin-inline: -15px; overflow-x: auto; padding: 2px 15px 9px; scroll-snap-type: x mandatory; scrollbar-width: none; }
	.tz-school-category-grid::-webkit-scrollbar { display: none; }
	.tz-school-category-card { flex: 0 0 min(79vw, 285px); grid-template-columns: 72px minmax(0, 1fr) 15px; min-height: 104px; scroll-snap-align: start; }
	.tz-school-category-card__visual { height: 72px; width: 72px; }
	.tz-school-level-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.tz-school-filters__grid { grid-template-columns: 1fr; }
	.tz-school-guide { border-radius: 22px; gap: 20px; grid-template-columns: 1fr; margin-top: 15px; padding: 23px 18px; }
	.tz-school-guide > a { grid-column: auto; }
	.tz-school-pack-grid { display: flex; gap: 10px; margin-inline: -15px; overflow-x: auto; padding: 2px 15px 7px; scroll-snap-type: x mandatory; scrollbar-width: none; }
	.tz-school-pack-grid article { flex: 0 0 min(72vw, 250px); scroll-snap-align: start; }
	.tz-school-trust { grid-template-columns: repeat(2, minmax(0, 1fr)); margin-top: 15px; }
	.tz-school-trust > * + * { border-left: 0; }
	.tz-school-trust > :nth-child(even) { border-left: 1px solid var(--tz-border); }
	.tz-school-trust > :nth-child(n + 3) { border-top: 1px solid var(--tz-border); }
}

@media (max-width: 430px) {
	.tz-school-home { grid-template-columns: minmax(0, 1.12fr) minmax(102px, .88fr); }
	.tz-school-home__art { margin-inline: -20px -33px; }
	.tz-school-home__art img { min-width: 150px; }
	.tz-school-hero { grid-template-columns: minmax(0, 1.14fr) minmax(105px, .86fr); }
	.tz-school-hero__art img { min-width: 175px; }
	.tz-school-heading { align-items: flex-start; }
	.tz-school-heading h2 { font-size: 23px; }
	.tz-school-level-grid a { grid-template-columns: 38px minmax(0, 1fr); padding-inline: 8px; }
	.tz-school-level-grid a > span { height: 38px; width: 38px; }
	.tz-school-trust > div,
	.tz-school-trust > a { gap: 6px; grid-template-columns: 31px minmax(0, 1fr); min-height: 88px; padding: 11px 8px; }
	.tz-school-trust > div > svg,
	.tz-school-trust > a > svg { height: 24px; width: 24px; }
}

@media (max-width: 374px) {
	.tz-school-container { padding-inline: 8px; }
	.tz-school-home { gap: 7px; grid-template-columns: minmax(0, 1.18fr) minmax(86px, .82fr); padding-inline: 13px; }
	.tz-school-home__badges span:nth-child(3) { display: none; }
	.tz-school-button { font-size: 9.5px; padding-inline: 11px; }
	.tz-school-hero { grid-template-columns: minmax(0, 1.2fr) minmax(85px, .8fr); padding-inline: 13px; }
	.tz-school-hero h1 { font-size: 26px; }
	.tz-school-hero__art { margin-right: -50px; }
	.tz-school-category-grid,
	.tz-school-pack-grid { margin-inline: -15px; }
}

@media (min-width: 600px) and (max-width: 991.98px) {
	.tz-school-home { min-height: 310px; padding: 28px 30px; }
	.tz-school-home__art img { max-height: 280px; }
	.tz-school-hero { grid-template-columns: 1fr 1fr; min-height: 420px; padding-inline: 34px; }
	.tz-school-hero__actions { align-items: center; flex-direction: row; }
	.tz-school-category-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); margin-inline: 0; overflow: visible; padding: 0; }
	.tz-school-category-card { min-width: 0; }
	.tz-school-pack-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin-inline: 0; overflow: visible; padding: 0; }
	.tz-school-pack-grid article { min-width: 0; }
}

@media (min-width: 992px) {
	.tz-school-home { grid-template-columns: minmax(0, .94fr) minmax(360px, 1.06fr); min-height: 330px; padding: 32px 42px; }
	.tz-school-home h2 { font-size: 36px; }
	.tz-school-home__copy > p:not(.tz-section-kicker) { font-size: 14px; }
	.tz-school-home__art img { max-height: 300px; }
}

@media (prefers-reduced-motion: reduce) {
	.tz-school-landing *,
	.tz-school-home * { scroll-behavior: auto !important; transition-duration: .01ms !important; }
}
