/* =========================================================
   EDUCANDIS — MINIMAL REFRESH 1.3
   One red, white space and a restrained puzzle motif.
   ========================================================= */

:root {
	--ed-red: #e34234;
	--ed-red-dark: #e34234;
	--ed-red-deep: #e34234;
	--ed-red-soft: #fff5f3;
	--ed-white: #ffffff;
	--ed-warm: #faf8f7;
	--ed-warm-2: #f3efed;
	--ed-line: #ebe4e1;
	--ed-ink: #181716;
	--ed-muted: #706966;
	--ed-shadow: 0 8px 24px rgba(52, 28, 25, .06);
	--ed-shadow-soft: none;
	--ed-radius-sm: 8px;
	--ed-radius: 12px;
	--ed-radius-lg: 16px;
	--ed-container: 1240px;
	--ed-header: 88px;
	--ed-heading: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
	--ed-body: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

body {
	font-family: var(--ed-body);
	line-height: 1.62;
}

.site-container {
	width: min(calc(100% - 56px), var(--ed-container));
}

.button {
	min-height: 46px;
	padding: 12px 20px;
	border-radius: 8px;
	font-family: var(--ed-body);
	font-size: .84rem;
	box-shadow: none;
}

.button:hover {
	transform: none;
}

.button--primary,
.button--primary:hover {
	box-shadow: none;
}

.button--ghost,
.button--white {
	box-shadow: none;
}

/* Header ------------------------------------------------- */
.site-header,
.site-header.is-scrolled {
	top: 0;
}

.site-header .site-container,
.site-header.is-scrolled .site-container {
	width: min(calc(100% - 56px), var(--ed-container));
	max-width: var(--ed-container);
}

.header-shell,
.site-header.is-scrolled .header-shell {
	min-height: 88px;
	padding: 0;
	border: 0;
	border-bottom: 1px solid rgba(235, 228, 225, .92);
	border-radius: 0;
	background: rgba(255, 255, 255, .96);
	box-shadow: none;
	backdrop-filter: blur(12px);
}

.site-header.is-scrolled {
	background: rgba(255, 255, 255, .96);
	box-shadow: 0 6px 18px rgba(52, 28, 25, .045);
}

.site-header.is-scrolled .header-shell {
	min-height: 72px;
}

.brand-logo img,
.custom-logo {
	height: 39px;
}

.desktop-nav {
	min-width: 0;
	margin-left: auto;
}

.desktop-nav .menu {
	flex-wrap: nowrap;
	gap: 0;
	white-space: nowrap;
}

.desktop-nav a {
	min-height: 88px;
	display: flex;
	align-items: center;
	padding: 0 14px;
	font-family: var(--ed-body);
	font-size: .81rem;
	font-weight: 600;
}

.site-header.is-scrolled .desktop-nav a {
	min-height: 72px;
}

.desktop-nav a::after {
	right: 14px;
	bottom: 0;
	left: 14px;
	height: 2px;
	border-radius: 0;
}

.header-cta {
	min-height: 42px;
	margin-left: 16px;
	padding-inline: 18px;
}

.menu-toggle {
	width: 46px;
	height: 46px;
	border-radius: 8px;
	background: var(--ed-red-soft);
}

.mobile-menu {
	background: rgba(255, 255, 255, .985);
}

.mobile-menu__pattern {
	background-size: 270px auto;
	opacity: .38;
}

.mobile-menu .menu a {
	font-family: var(--ed-body);
	font-size: clamp(1.75rem, 7vw, 2.7rem);
	font-weight: 650;
	letter-spacing: -.045em;
}

/* Home hero ---------------------------------------------- */
.home-minimal {
	background: var(--ed-white);
}

.home-hero {
	position: relative;
	min-height: 780px;
	display: flex;
	align-items: center;
	padding: 158px 0 84px;
	overflow: hidden;
}

.home-hero::before,
.home-hero::after {
	position: absolute;
	top: 0;
	right: 0;
	width: 52%;
	height: 100%;
	content: "";
}

.home-hero::before {
	background: var(--ed-red-soft);
}

.home-hero::after {
	background: url("../images/puzzle-field.png") 20px 12px / 285px auto repeat;
	opacity: .62;
	-webkit-mask-image: linear-gradient(to left, #000 0%, #000 72%, transparent 100%);
	mask-image: linear-gradient(to left, #000 0%, #000 72%, transparent 100%);
}

.home-hero__grid {
	position: relative;
	z-index: 2;
	display: grid;
	grid-template-columns: minmax(0, 1.08fr) minmax(420px, .92fr);
	align-items: center;
	gap: clamp(64px, 7vw, 104px);
}

.home-hero__copy {
	max-width: 680px;
}

.home-kicker {
	display: inline-flex;
	align-items: center;
	gap: 12px;
	margin: 0 0 22px;
	color: var(--ed-red);
	font-size: .72rem;
	font-weight: 700;
	letter-spacing: .15em;
	line-height: 1.35;
	text-transform: uppercase;
}

.home-kicker::before {
	width: 32px;
	height: 1px;
	background: currentColor;
	content: "";
}

.home-kicker--light {
	color: var(--ed-white);
}

.home-hero__title {
	max-width: 690px;
	margin: 0;
	font-family: var(--ed-heading);
	font-size: clamp(3.65rem, 5.7vw, 5.55rem);
	font-weight: 700;
	letter-spacing: -.067em;
	line-height: .99;
}

.home-hero__title span {
	color: var(--ed-red);
}

.home-hero__lead {
	max-width: 590px;
	margin: 28px 0 0;
	color: var(--ed-muted);
	font-size: 1.06rem;
	line-height: 1.7;
}

.home-hero__actions {
	display: flex;
	align-items: center;
	gap: 27px;
	margin-top: 34px;
}

.home-text-link,
.home-card-link {
	display: inline-flex;
	align-items: center;
	gap: 9px;
	color: var(--ed-ink);
	font-size: .84rem;
	font-weight: 650;
}

.home-text-link {
	padding: 11px 0 8px;
	border-bottom: 1px solid var(--ed-line);
}

.home-text-link .icon,
.home-card-link .icon {
	width: 17px;
	height: 17px;
	transition: transform .22s ease;
}

.home-text-link:hover,
.home-card-link:hover {
	color: var(--ed-red);
}

.home-text-link:hover .icon,
.home-card-link:hover .icon {
	transform: translateX(4px);
}

.home-hero__visual {
	position: relative;
	width: min(100%, 515px);
	margin: 0;
	justify-self: end;
}

.home-hero__visual::before {
	position: absolute;
	inset: 22px -22px -22px 22px;
	z-index: -1;
	border: 1px solid rgba(227, 66, 52, .34);
	border-radius: 16px;
	content: "";
}

.home-hero__image {
	aspect-ratio: .9;
	overflow: hidden;
	background: var(--ed-warm-2);
	border-radius: 16px;
}

.home-hero__image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.home-hero__piece {
	position: absolute;
	bottom: 48px;
	left: -43px;
	width: 92px;
	aspect-ratio: 1;
	background: var(--ed-red);
	-webkit-mask: url("../images/puzzle-mask.svg") center / contain no-repeat;
	mask: url("../images/puzzle-mask.svg") center / contain no-repeat;
}

/* Home offer --------------------------------------------- */
.home-offer {
	padding: 120px 0 130px;
}

.home-section-head,
.home-process__head {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(320px, .72fr);
	align-items: end;
	gap: clamp(48px, 8vw, 110px);
	margin-bottom: 58px;
}

.home-section-head h2,
.home-process__head h2,
.home-final h2 {
	max-width: 720px;
	margin: 0;
	font-family: var(--ed-heading);
	font-size: clamp(2.35rem, 4.2vw, 3.75rem);
	font-weight: 700;
	letter-spacing: -.055em;
	line-height: 1.08;
}

.home-section-head p,
.home-process__head > p {
	max-width: 500px;
	margin: 0;
	color: var(--ed-muted);
	font-size: .95rem;
	line-height: 1.75;
}

.home-offer__grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 30px;
}

.home-offer__card {
	padding-top: 18px;
	border-top: 1px solid var(--ed-line);
}

.home-offer__media {
	display: block;
	aspect-ratio: 1.34;
	overflow: hidden;
	background: var(--ed-warm);
	border-radius: 12px;
}

.home-offer__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	filter: saturate(.86);
	transition: transform .5s ease, filter .35s ease;
}

.home-offer__card:hover .home-offer__media img {
	transform: scale(1.025);
	filter: saturate(1);
}

.home-offer__meta {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 18px;
	margin-top: 20px;
	color: var(--ed-red);
}

.home-offer__meta span {
	font-size: .75rem;
	font-weight: 750;
}

.home-offer__meta small {
	font-size: .66rem;
	font-weight: 700;
	letter-spacing: .13em;
	text-transform: uppercase;
}

.home-offer__card h3 {
	margin: 12px 0 0;
	font-family: var(--ed-heading);
	font-size: 1.3rem;
	letter-spacing: -.035em;
	line-height: 1.25;
}

.home-offer__card p {
	margin: 12px 0 0;
	color: var(--ed-muted);
	font-size: .87rem;
	line-height: 1.7;
}

.home-card-link {
	margin-top: 20px;
	color: var(--ed-red);
}

/* Home process ------------------------------------------- */
.home-process {
	position: relative;
	padding: 112px 0 118px;
	background: var(--ed-red);
	color: var(--ed-white);
	overflow: hidden;
}

.home-process::after {
	position: absolute;
	right: -150px;
	bottom: -190px;
	width: 520px;
	height: 520px;
	background: url("../images/puzzle-outline.svg") center / contain no-repeat;
	content: "";
	filter: brightness(0) invert(1);
	opacity: .075;
	transform: rotate(14deg);
}

.home-process .site-container {
	position: relative;
	z-index: 2;
}

.home-process__head h2 {
	color: var(--ed-white);
}

.home-process__head > p {
	color: rgba(255, 255, 255, .72);
}

.home-process__grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 34px;
}

.home-process__item {
	padding-top: 24px;
	border-top: 1px solid rgba(255, 255, 255, .34);
}

.home-process__item > span {
	color: rgba(255, 255, 255, .68);
	font-size: .72rem;
	font-weight: 700;
	letter-spacing: .12em;
}

.home-process__item h3 {
	margin: 18px 0 0;
	font-family: var(--ed-heading);
	font-size: 1.25rem;
	letter-spacing: -.03em;
}

.home-process__item p {
	max-width: 330px;
	margin: 12px 0 0;
	color: rgba(255, 255, 255, .72);
	font-size: .86rem;
	line-height: 1.72;
}

/* Final CTA ---------------------------------------------- */
.home-final {
	padding: 100px 0 108px;
	background: var(--ed-white);
}

.home-final__inner {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	align-items: center;
	gap: 54px;
	padding: 52px 0;
	border-top: 1px solid var(--ed-line);
	border-bottom: 1px solid var(--ed-line);
}

.home-final h2 {
	max-width: 820px;
	font-size: clamp(2.15rem, 3.8vw, 3.35rem);
}

/* Simplified footer -------------------------------------- */
.site-footer {
	padding: 70px 0 26px;
	background: var(--ed-warm);
	border-top: 1px solid var(--ed-line);
}

.site-footer::before,
.footer-contact-card::before,
.footer-contact-card::after {
	display: none;
}

.footer-main {
	grid-template-columns: 1.15fr .62fr 1fr;
	gap: 54px;
}

.footer-brand .brand-logo img,
.footer-brand .custom-logo {
	height: 34px;
}

.footer-brand p {
	max-width: 360px;
	margin-top: 22px;
	font-size: .83rem;
	line-height: 1.72;
}

.footer-nav h2 {
	margin-bottom: 15px;
	font-family: var(--ed-body);
	font-size: .7rem;
	letter-spacing: .13em;
}

.footer-nav a {
	font-size: .82rem;
}

.footer-contact-card {
	padding: 0;
	background: transparent;
	border: 0;
	border-radius: 0;
	color: var(--ed-ink);
}

.footer-contact-card__eyebrow {
	margin-bottom: 15px;
	color: var(--ed-red);
	font-size: .7rem;
}

.footer-contact-card a,
.footer-contact-card p {
	color: var(--ed-ink);
	font-size: .82rem;
}

.footer-contact-card .icon {
	width: 17px;
	height: 17px;
	color: var(--ed-red);
}

.footer-bottom {
	margin-top: 54px;
	padding-top: 22px;
}

/* Inner pages: same restrained visual language ----------- */
.page-hero {
	min-height: 430px;
	padding: 150px 0 72px;
	background: var(--ed-red-soft);
}

.page-hero::after {
	display: none;
}

.page-hero__pattern {
	top: 0;
	right: 0;
	width: 46%;
	height: 100%;
	background: url("../images/puzzle-field.png") 0 0 / 285px auto repeat;
	opacity: .58;
	filter: none;
	transform: none;
}

.page-hero h1 {
	max-width: 940px;
	font-size: clamp(3rem, 6vw, 5rem);
	letter-spacing: -.06em;
}

.page-hero p {
	max-width: 650px;
	font-size: .98rem;
}

.course-card,
.post-card,
.process-card,
.timeline-card {
	border-radius: 12px;
	box-shadow: none;
}

.course-card:hover,
.process-card:hover,
.timeline-card:hover {
	box-shadow: none;
	transform: translateY(-3px);
}

.course-card__image,
.contact-image,
.finance-intro__image {
	border-radius: 12px;
}

.course-card__image::after,
.contact-image::after,
.contact-form-card::after,
.finance-intro__image::before,
.finance-intro__image::after {
	display: none;
}

.filter-bar {
	padding: 5px;
	background: var(--ed-white);
	border: 1px solid var(--ed-line);
	border-radius: 10px;
	box-shadow: none;
}

.filter-bar button {
	border-radius: 7px;
}

.contact-form-card {
	padding: 42px;
	border-radius: 14px;
	background: var(--ed-warm);
}

.contact-form input,
.contact-form textarea {
	border-radius: 8px;
}

.cta-panel {
	min-height: 220px;
	padding: 44px 50px;
	border-radius: 14px;
	box-shadow: none;
}

.cta-panel__pattern {
	opacity: .07;
}

.quote-shell {
	border-radius: 14px;
	box-shadow: none;
}

/* Navigation breakpoint: never allow desktop menu wrapping */
@media (min-width: 1181px) {
	.desktop-nav {
		display: block !important;
	}

	.header-cta {
		display: inline-flex !important;
	}

	.menu-toggle {
		display: none !important;
	}
}

@media (max-width: 1240px) {
	.desktop-nav,
	.header-cta {
		display: none !important;
	}

	.menu-toggle {
		display: flex !important;
		margin-left: auto;
	}
}

@media (max-width: 1020px) {
	.home-hero {
		min-height: auto;
		padding: 146px 0 100px;
	}

	.home-hero::before,
	.home-hero::after {
		width: 42%;
	}

	.home-hero__grid {
		grid-template-columns: 1fr;
		gap: 72px;
	}

	.home-hero__copy {
		max-width: 760px;
	}

	.home-hero__visual {
		width: min(100%, 620px);
		justify-self: center;
	}

	.home-section-head,
	.home-process__head {
		grid-template-columns: 1fr;
		gap: 24px;
	}

	.home-offer__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.home-offer__card:last-child {
		grid-column: 1 / -1;
		width: calc(50% - 15px);
		justify-self: center;
	}

	.footer-main {
		grid-template-columns: 1fr 1fr;
	}

	.footer-contact-card {
		grid-column: 1 / -1;
	}
}

@media (max-width: 720px) {
	.site-container,
	.site-header .site-container,
	.site-header.is-scrolled .site-container {
		width: min(calc(100% - 32px), var(--ed-container));
	}

	.header-shell,
	.site-header.is-scrolled .header-shell {
		min-height: 72px;
	}

	.brand-logo img,
	.custom-logo {
		height: 35px;
	}

	.home-hero {
		padding: 116px 0 72px;
	}

	.home-hero::before,
	.home-hero::after {
		top: auto;
		bottom: 0;
		width: 100%;
		height: 39%;
	}

	.home-hero::after {
		background-size: 230px auto;
		-webkit-mask-image: linear-gradient(to bottom, transparent 0%, #000 24%, #000 100%);
		mask-image: linear-gradient(to bottom, transparent 0%, #000 24%, #000 100%);
	}

	.home-hero__grid {
		gap: 58px;
	}

	.home-kicker {
		margin-bottom: 18px;
		font-size: .65rem;
		letter-spacing: .12em;
	}

	.home-kicker::before {
		width: 22px;
	}

	.home-hero__title {
		font-size: clamp(2.85rem, 14vw, 4.05rem);
		line-height: 1.01;
	}

	.home-hero__lead {
		margin-top: 22px;
		font-size: .96rem;
	}

	.home-hero__actions {
		align-items: flex-start;
		flex-direction: column;
		gap: 15px;
		margin-top: 28px;
	}

	.home-hero__visual {
		width: calc(100% - 12px);
	}

	.home-hero__visual::before {
		inset: 12px -12px -12px 12px;
	}

	.home-hero__image {
		aspect-ratio: .94;
		border-radius: 12px;
	}

	.home-hero__piece {
		bottom: 28px;
		left: -25px;
		width: 64px;
	}

	.home-offer,
	.home-process,
	.home-final {
		padding-top: 80px;
		padding-bottom: 84px;
	}

	.home-section-head,
	.home-process__head {
		margin-bottom: 38px;
	}

	.home-section-head h2,
	.home-process__head h2,
	.home-final h2 {
		font-size: clamp(2rem, 10vw, 2.75rem);
	}

	.home-offer__grid,
	.home-process__grid {
		grid-template-columns: 1fr;
		gap: 38px;
	}

	.home-offer__card:last-child {
		grid-column: auto;
		width: 100%;
	}

	.home-final__inner {
		grid-template-columns: 1fr;
		gap: 30px;
		padding: 40px 0;
	}

	.home-final__inner .button {
		justify-self: start;
	}

	.footer-main {
		grid-template-columns: 1fr;
		gap: 34px;
	}

	.footer-contact-card {
		grid-column: auto;
	}

	.page-hero {
		min-height: 380px;
		padding: 122px 0 58px;
	}

	.page-hero__pattern {
		width: 100%;
		opacity: .36;
	}

	.contact-form-card {
		padding: 30px 22px;
	}

	.cta-panel {
		padding: 36px 26px;
	}
}

/* =========================================================
   EDUCANDIS — DATA, COURSES AND GLOBAL PUZZLE BACKGROUND 1.3
   ========================================================= */

/* The supplied puzzle field is now one subtle, fixed background
   for the complete site rather than a separate decoration per page. */
html {
	background: var(--ed-white);
}

body {
	background-color: var(--ed-white);
	background-image: url("../images/puzzle-background.png");
	background-repeat: repeat;
	background-position: center top;
	background-size: 340px auto;
	background-attachment: fixed;
}

.home-minimal,
.home-offer,
.home-final,
.courses-section,
.contact-section,
.finance-intro,
.faq-section,
.page-content-section,
.posts-section,
.not-found-section,
.cta-section {
	background-color: transparent;
}

.home-hero::after,
.page-hero__pattern {
	display: none;
}

.home-hero::before {
	background: rgba(255, 245, 243, .76);
}

.page-hero {
	background: rgba(255, 245, 243, .78);
}

.timeline-section {
	background: rgba(250, 248, 247, .9);
}

.site-footer {
	background: rgba(250, 248, 247, .94);
	backdrop-filter: blur(3px);
}

/* Balanced five-category course grid. */
.course-grid--categories {
	grid-template-columns: repeat(6, minmax(0, 1fr));
}

.course-grid--categories .course-card {
	grid-column: span 2;
	background: rgba(255, 255, 255, .96);
}

.course-grid--categories .course-card:nth-child(n + 4) {
	grid-column: span 3;
}

.course-grid--categories .course-card__image img {
	filter: saturate(.78) contrast(.98);
}

.course-grid--categories .course-card__body p {
	min-height: 4.4em;
}

.filter-bar {
	background: rgba(255, 255, 255, .9);
	backdrop-filter: blur(8px);
}

/* Company details sourced from the public company register. */
.company-data {
	margin-top: 28px;
	padding: 26px 28px;
	background: rgba(255, 255, 255, .9);
	border: 1px solid var(--ed-line);
	border-radius: 12px;
}

.company-data .eyebrow {
	margin-bottom: 11px;
}

.company-data h2 {
	max-width: 430px;
	margin: 0;
	font-family: var(--ed-body);
	font-size: .86rem;
	font-weight: 700;
	letter-spacing: .025em;
	line-height: 1.55;
}

.company-data dl {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 12px;
	margin: 22px 0 0;
}

.company-data dl > div {
	padding-top: 13px;
	border-top: 1px solid var(--ed-line);
}

.company-data dt {
	color: var(--ed-muted);
	font-size: .63rem;
	font-weight: 700;
	letter-spacing: .11em;
	text-transform: uppercase;
}

.company-data dd {
	margin: 5px 0 0;
	font-size: .82rem;
	font-weight: 700;
}

.contact-form-card {
	background: rgba(250, 248, 247, .96);
	scroll-margin-top: 108px;
}

.contact-form-intro {
	max-width: 610px;
	margin: 14px 0 0;
	color: var(--ed-muted);
	font-size: .82rem;
	line-height: 1.65;
}

.footer-bottom > div {
	min-width: 0;
}

.footer-registration {
	max-width: 900px;
	margin-top: 7px !important;
	color: var(--ed-muted);
	font-size: .66rem !important;
	line-height: 1.55;
}

@media (max-width: 1020px) {
	.course-grid--categories {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.course-grid--categories .course-card,
	.course-grid--categories .course-card:nth-child(n + 4) {
		grid-column: auto;
	}

	.course-grid--categories .course-card:last-child {
		grid-column: 1 / -1;
		width: calc(50% - 14px);
		justify-self: center;
	}
}

@media (max-width: 720px) {
	body {
		background-size: 270px auto;
		background-attachment: scroll;
	}

	.home-hero::before {
		background: rgba(255, 245, 243, .7);
	}

	.page-hero {
		background: rgba(255, 245, 243, .74);
	}

	.course-grid--categories {
		grid-template-columns: 1fr;
	}

	.course-grid--categories .course-card:last-child {
		grid-column: auto;
		width: 100%;
	}

	.course-grid--categories .course-card__body p {
		min-height: 0;
	}

	.company-data {
		padding: 23px 21px;
	}

	.company-data dl {
		grid-template-columns: 1fr;
		gap: 9px;
	}

	.footer-bottom {
		align-items: flex-start;
		gap: 18px;
	}
}

/* =========================================================
   EDUCANDIS — CONSISTENCY REFRESH 1.4
   One brand red, transparent navigation, repeatable mastheads
   and a footer contact block shaped like a puzzle piece.
   ========================================================= */

:root {
	--ed-red: #e34234;
	--ed-red-dark: #e34234;
	--ed-red-deep: #e34234;
	--ed-section-tint: rgba(255, 245, 243, .80);
}

/* Keep interactions within the same brand red rather than introducing
   darker shades. Changes of state use opacity, not a second colour. */
.button--primary,
.button--primary:hover,
.button--primary:focus-visible {
	background-color: #e34234;
}

.button--primary:hover,
.button--primary:focus-visible {
	opacity: .9;
}

/* Transparent navigation at the top of every page. The subtle surface
   appears only after scrolling so links remain readable over content. */
.site-header,
.site-header:not(.is-scrolled) {
	background: transparent;
	box-shadow: none;
}

.header-shell,
.site-header:not(.is-scrolled) .header-shell {
	background: transparent;
	border: 0;
	box-shadow: none;
	backdrop-filter: none;
}

.site-header.is-scrolled {
	background: rgba(255, 255, 255, .90);
	border-bottom: 1px solid rgba(227, 66, 52, .14);
	box-shadow: 0 6px 18px rgba(52, 28, 25, .045);
	backdrop-filter: blur(14px);
}

.site-header.is-scrolled .header-shell {
	background: transparent;
	border: 0;
	box-shadow: none;
	backdrop-filter: none;
}

/* The home masthead and interior mastheads now use exactly the same
   pale-red surface. The fixed puzzle field underneath remains visible. */
.home-hero,
.page-hero {
	background-color: var(--ed-section-tint);
	border-bottom: 2px solid #e34234;
}

.home-hero::before,
.home-hero::after,
.page-hero::after,
.page-hero__pattern {
	display: none;
}

/* The hand photograph and its fine offset frame intentionally stay
   unchanged. Only the surrounding surface was unified. */
.home-hero__visual::before {
	border-color: rgba(227, 66, 52, .34);
}

/* Footer: more breathing room and one recognisable puzzle piece instead
   of a rectangular contact card. Content stays in the safe centre. */
.footer-main {
	grid-template-columns: minmax(0, 1.08fr) minmax(150px, .52fr) minmax(286px, .86fr);
	align-items: center;
	gap: clamp(72px, 8vw, 118px);
}

.footer-contact-card {
	position: relative;
	isolation: isolate;
	width: min(100%, 304px);
	min-height: 304px;
	justify-self: end;
	justify-content: center;
	gap: 11px;
	margin: 0;
	padding: 68px 55px 62px;
	background: transparent;
	border: 0;
	border-radius: 0;
	box-shadow: none;
	color: var(--ed-white);
}

.footer-contact-card::before {
	position: absolute;
	inset: 0;
	width: auto;
	height: auto;
	z-index: -1;
	display: block;
	background: #e34234;
	border-radius: 0;
	content: "";
	transform: none;
	-webkit-mask: url("../images/puzzle-mask.svg") center / contain no-repeat;
	mask: url("../images/puzzle-mask.svg") center / contain no-repeat;
}

.footer-contact-card::after {
	display: none;
}

.footer-contact-card__eyebrow {
	margin-bottom: 6px;
	color: rgba(255, 255, 255, .74);
	font-size: .68rem;
	letter-spacing: .14em;
}

.footer-contact-card a,
.footer-contact-card p {
	position: relative;
	z-index: 1;
	color: var(--ed-white);
	font-size: .78rem;
	font-weight: 650;
	line-height: 1.45;
}

.footer-contact-card .icon {
	width: 17px;
	height: 17px;
	color: var(--ed-white);
	opacity: .9;
}

.footer-contact-card a:hover,
.footer-contact-card a:focus-visible {
	color: var(--ed-white);
	opacity: .78;
}

@media (max-width: 1020px) {
	.footer-main {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		align-items: start;
		gap: 52px 72px;
	}

	.footer-contact-card {
		grid-column: 1 / -1;
		justify-self: center;
		margin-top: 8px;
	}
}

@media (max-width: 720px) {
	:root {
		--ed-section-tint: rgba(255, 245, 243, .78);
	}

	.site-header.is-scrolled {
		background: rgba(255, 255, 255, .94);
	}

	.footer-main {
		grid-template-columns: 1fr;
		gap: 38px;
	}

	.footer-contact-card {
		grid-column: auto;
		width: min(100%, 284px);
		min-height: 284px;
		justify-self: center;
		padding: 62px 49px 58px;
	}
}


/* =========================================================
   EDUCANDIS — CONTENT AND PRIVACY 1.5
   New copy keeps the established visual system unchanged.
   ========================================================= */

.contact-form .consent a {
	color: var(--ed-red);
	font-weight: 700;
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 3px;
}

.contact-form .consent a:hover,
.contact-form .consent a:focus-visible {
	text-decoration-thickness: 2px;
}

.privacy-section {
	padding: 104px 0 124px;
	background: transparent;
}

.privacy-layout {
	display: grid;
	grid-template-columns: minmax(210px, 250px) minmax(0, 860px);
	justify-content: center;
	align-items: start;
	gap: clamp(48px, 7vw, 92px);
}

.privacy-nav {
	position: sticky;
	top: 106px;
	padding: 24px 22px;
	background: rgba(255, 255, 255, .92);
	border: 1px solid var(--ed-line);
	border-radius: 12px;
	backdrop-filter: blur(10px);
}

.privacy-nav > span {
	display: block;
	margin-bottom: 15px;
	color: var(--ed-red);
	font-size: .68rem;
	font-weight: 750;
	letter-spacing: .13em;
	text-transform: uppercase;
}

.privacy-nav ol {
	display: grid;
	gap: 2px;
	margin: 0;
	padding: 0;
	list-style: none;
	counter-reset: privacy-nav;
}

.privacy-nav li {
	counter-increment: privacy-nav;
}

.privacy-nav a {
	display: grid;
	grid-template-columns: 23px minmax(0, 1fr);
	gap: 8px;
	padding: 8px 0;
	color: var(--ed-muted);
	font-size: .76rem;
	font-weight: 600;
	line-height: 1.35;
}

.privacy-nav a::before {
	color: rgba(227, 66, 52, .7);
	font-size: .63rem;
	font-weight: 750;
	content: counter(privacy-nav, decimal-leading-zero);
}

.privacy-nav a:hover,
.privacy-nav a:focus-visible {
	color: var(--ed-red);
}

.privacy-content {
	min-width: 0;
	padding: clamp(32px, 5vw, 62px);
	background: rgba(255, 255, 255, .96);
	border: 1px solid var(--ed-line);
	border-radius: 16px;
}

.privacy-update {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	margin-bottom: 18px;
	padding-bottom: 24px;
	border-bottom: 1px solid var(--ed-line);
	color: var(--ed-muted);
	font-size: .76rem;
}

.privacy-update strong {
	color: var(--ed-ink);
}

.privacy-block {
	position: relative;
	padding: 48px 0 0;
	scroll-margin-top: 110px;
}

.privacy-block + .privacy-block {
	margin-top: 48px;
	border-top: 1px solid var(--ed-line);
}

.privacy-block__number {
	display: block;
	margin-bottom: 12px;
	color: var(--ed-red);
	font-size: .69rem;
	font-weight: 750;
	letter-spacing: .12em;
}

.privacy-block h2,
.privacy-contact-box h2 {
	margin: 0;
	font-family: var(--ed-heading);
	font-size: clamp(1.55rem, 3vw, 2.25rem);
	font-weight: 700;
	letter-spacing: -.04em;
	line-height: 1.15;
}

.privacy-block p,
.privacy-block li {
	color: var(--ed-muted);
	font-size: .94rem;
	line-height: 1.8;
}

.privacy-block p {
	margin: 18px 0 0;
}

.privacy-block ul {
	display: grid;
	gap: 10px;
	margin: 20px 0 0;
	padding-left: 22px;
}

.privacy-block li::marker {
	color: var(--ed-red);
}

.privacy-block strong {
	color: var(--ed-ink);
}

.privacy-block a {
	color: var(--ed-red);
	font-weight: 700;
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 3px;
}

.privacy-company {
	margin-top: 20px;
	padding: 20px 22px;
	background: var(--ed-red-soft);
	border-left: 3px solid var(--ed-red);
	border-radius: 0 10px 10px 0;
	color: var(--ed-muted);
	font-size: .88rem;
	font-style: normal;
	line-height: 1.7;
}

.privacy-company strong {
	color: var(--ed-ink);
}

.privacy-contact-box {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 28px;
	margin-top: 62px;
	padding: 30px 32px;
	background: var(--ed-red-soft);
	border: 1px solid rgba(227, 66, 52, .18);
	border-radius: 12px;
}

.privacy-contact-box .eyebrow {
	margin-bottom: 10px;
}

.privacy-contact-box h2 {
	font-size: clamp(1.35rem, 2.5vw, 1.9rem);
}

.privacy-contact-box .button {
	flex: 0 0 auto;
}

@media (max-width: 980px) {
	.privacy-layout {
		grid-template-columns: 1fr;
		gap: 30px;
	}

	.privacy-nav {
		position: static;
	}

	.privacy-nav ol {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		column-gap: 24px;
	}
}

@media (max-width: 720px) {
	.privacy-section {
		padding: 70px 0 90px;
	}

	.privacy-nav {
		display: none;
	}

	.privacy-content {
		padding: 28px 22px;
		border-radius: 12px;
	}

	.privacy-block {
		padding-top: 34px;
	}

	.privacy-block + .privacy-block {
		margin-top: 36px;
	}

	.privacy-block p,
	.privacy-block li {
		font-size: .9rem;
	}

	.privacy-contact-box {
		align-items: flex-start;
		flex-direction: column;
		padding: 26px 22px;
	}

	.privacy-contact-box .button {
		width: 100%;
	}
}

/* =========================================================
   EDUCANDIS — COMPLETE CONTENT 1.5
   Richer copy, an About page and clear supporting text while
   preserving the minimalist red-and-white visual language.
   ========================================================= */

/* Local/system type keeps the visual rhythm without an external font request. */
:root {
	--ed-heading: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;
	--ed-body: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;
}

.home-final__lead {
	max-width: 690px;
	margin: 18px 0 0;
	color: var(--ed-muted);
	font-size: .92rem;
	line-height: 1.78;
}

/* About -------------------------------------------------- */
.about-intro {
	padding: 108px 0 116px;
	background: transparent;
}

.about-intro__grid {
	display: grid;
	grid-template-columns: minmax(360px, .92fr) minmax(0, 1.08fr);
	align-items: center;
	gap: clamp(58px, 8vw, 108px);
}

.about-intro__visual {
	position: relative;
	min-height: 530px;
	margin: 0;
}

.about-intro__visual::before {
	position: absolute;
	top: 22px;
	right: -22px;
	bottom: -22px;
	left: 22px;
	z-index: -1;
	border: 1px solid rgba(227, 66, 52, .34);
	border-radius: 16px;
	content: "";
}

.about-intro__visual img {
	width: 100%;
	height: 530px;
	object-fit: cover;
	border-radius: 16px;
	filter: saturate(.82) contrast(.98);
}

.about-intro__piece {
	position: absolute;
	right: -36px;
	bottom: 64px;
	width: 104px;
	height: 104px;
	background: var(--ed-red);
	-webkit-mask: url("../images/puzzle-mask.svg") center / contain no-repeat;
	mask: url("../images/puzzle-mask.svg") center / contain no-repeat;
}

.about-intro__copy h2 {
	max-width: 690px;
	margin: 0;
	font-family: var(--ed-heading);
	font-size: clamp(2rem, 4vw, 3.55rem);
	font-weight: 750;
	letter-spacing: -.055em;
	line-height: 1.05;
}

.about-intro__copy > p {
	max-width: 690px;
	margin: 22px 0 0;
	color: var(--ed-muted);
	font-size: .94rem;
	line-height: 1.82;
}

.about-intro__copy .check-list {
	margin: 28px 0 31px;
}

.about-values {
	padding: 108px 0 118px;
	background: rgba(250, 248, 247, .90);
}

.about-values__grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 0;
	margin-top: 58px;
	border-top: 1px solid var(--ed-line);
	border-bottom: 1px solid var(--ed-line);
}

.about-value {
	min-height: 286px;
	padding: 34px 28px 38px;
	background: rgba(255, 255, 255, .54);
	border-right: 1px solid var(--ed-line);
}

.about-value:last-child {
	border-right: 0;
}

.about-value > span {
	display: block;
	margin-bottom: 42px;
	color: var(--ed-red);
	font-size: .69rem;
	font-weight: 750;
	letter-spacing: .13em;
}

.about-value h3 {
	margin: 0;
	font-family: var(--ed-heading);
	font-size: 1.12rem;
	font-weight: 720;
	letter-spacing: -.025em;
}

.about-value p {
	margin: 14px 0 0;
	color: var(--ed-muted);
	font-size: .83rem;
	line-height: 1.75;
}

.timeline-section--about {
	background: rgba(255, 255, 255, .76);
}

/* Courses ------------------------------------------------ */
.course-card {
	display: flex;
	flex-direction: column;
}

.course-card__body {
	min-height: 100%;
	display: flex;
	flex: 1 1 auto;
	flex-direction: column;
}

.course-card__topics-title {
	margin: 2px 0 12px;
	color: var(--ed-ink);
	font-family: var(--ed-body);
	font-size: .68rem;
	font-weight: 750;
	letter-spacing: .11em;
	line-height: 1.35;
	text-transform: uppercase;
}

.course-card__topics {
	display: grid;
	gap: 9px;
	margin: 0 0 24px;
	padding: 0;
	list-style: none;
}

.course-card__topics li {
	display: grid;
	grid-template-columns: 18px minmax(0, 1fr);
	align-items: start;
	gap: 9px;
	color: var(--ed-muted);
	font-size: .78rem;
	line-height: 1.55;
}

.course-card__topics .icon {
	width: 17px;
	height: 17px;
	margin-top: 1px;
	padding: 3px;
	background: var(--ed-red-soft);
	color: var(--ed-red);
	border-radius: 50%;
}

.course-card__body .text-link {
	margin-top: auto;
}

/* Financing --------------------------------------------- */
.finance-disclaimer {
	max-width: 670px;
	margin: 22px 0 0 !important;
	padding-top: 18px;
	border-top: 1px solid var(--ed-line);
	color: var(--ed-muted) !important;
	font-size: .72rem !important;
	line-height: 1.65 !important;
}

.finance-intro__image > div {
	padding: 25px 20px;
}

.finance-intro__image span {
	max-width: 130px;
}

/* Contact ------------------------------------------------ */
.contact-brief {
	margin-top: 28px;
	padding: 27px 28px;
	background: rgba(255, 245, 243, .86);
	border-left: 3px solid var(--ed-red);
	border-radius: 0 12px 12px 0;
}

.contact-brief .eyebrow {
	margin-bottom: 10px;
}

.contact-brief h2 {
	max-width: 430px;
	margin: 0;
	font-family: var(--ed-heading);
	font-size: clamp(1.3rem, 2.3vw, 1.8rem);
	font-weight: 720;
	letter-spacing: -.035em;
	line-height: 1.18;
}

.contact-brief ul {
	display: grid;
	gap: 10px;
	margin: 22px 0 0;
	padding: 0;
	list-style: none;
}

.contact-brief li {
	display: grid;
	grid-template-columns: 19px minmax(0, 1fr);
	align-items: start;
	gap: 10px;
	color: var(--ed-muted);
	font-size: .82rem;
	line-height: 1.55;
}

.contact-brief .icon {
	width: 18px;
	height: 18px;
	margin-top: 1px;
	padding: 3px;
	background: var(--ed-red);
	color: var(--ed-white);
	border-radius: 50%;
}

.company-data > p {
	margin: 11px 0 0;
	color: var(--ed-muted);
	font-size: .8rem;
	line-height: 1.55;
}

/* Keep content readable on top of the shared puzzle field. */
.about-intro,
.about-values,
.privacy-section {
	isolation: isolate;
}

@media (max-width: 1020px) {
	.about-intro__grid {
		grid-template-columns: 1fr 1fr;
		gap: 52px;
	}

	.about-intro__visual,
	.about-intro__visual img {
		min-height: 470px;
		height: 470px;
	}

	.about-values__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.about-value:nth-child(2) {
		border-right: 0;
	}

	.about-value:nth-child(-n + 2) {
		border-bottom: 1px solid var(--ed-line);
	}
}

@media (max-width: 780px) {
	.about-intro {
		padding: 76px 0 88px;
	}

	.about-intro__grid {
		grid-template-columns: 1fr;
		gap: 58px;
	}

	.about-intro__visual {
		width: min(100% - 12px, 560px);
		min-height: 430px;
	}

	.about-intro__visual img {
		height: 430px;
		min-height: 430px;
	}

	.about-intro__piece {
		right: -24px;
		bottom: 48px;
		width: 88px;
		height: 88px;
	}

	.about-values {
		padding: 82px 0 90px;
	}

	.about-values__grid {
		margin-top: 42px;
	}
}

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

	.about-value,
	.about-value:nth-child(2),
	.about-value:last-child {
		min-height: 0;
		padding: 29px 23px 31px;
		border-right: 0;
		border-bottom: 1px solid var(--ed-line);
	}

	.about-value:last-child {
		border-bottom: 0;
	}

	.about-value > span {
		margin-bottom: 24px;
	}

	.contact-brief,
	.company-data {
		padding: 24px 21px;
	}
}

/* Current KFS rules block -------------------------------- */
.kfs-current {
	padding: 98px 0 108px;
	background: rgba(255, 245, 243, .82);
	border-top: 1px solid rgba(227, 66, 52, .14);
	border-bottom: 1px solid rgba(227, 66, 52, .14);
}

.kfs-current__head {
	display: grid;
	grid-template-columns: minmax(0, .92fr) minmax(320px, .72fr);
	align-items: end;
	justify-content: space-between;
	gap: 54px;
}

.kfs-current__head h2 {
	margin: 0;
	font-family: var(--ed-heading);
	font-size: clamp(2rem, 4vw, 3.5rem);
	font-weight: 750;
	letter-spacing: -.055em;
	line-height: 1.05;
}

.kfs-current__head > p {
	margin: 0;
	color: var(--ed-muted);
	font-size: .91rem;
	line-height: 1.78;
}

.kfs-current__grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 1px;
	margin-top: 52px;
	background: rgba(227, 66, 52, .18);
	border: 1px solid rgba(227, 66, 52, .18);
}

.kfs-fact {
	min-height: 230px;
	padding: 32px 27px 34px;
	background: rgba(255, 255, 255, .91);
}

.kfs-fact strong {
	display: block;
	color: var(--ed-red);
	font-family: var(--ed-heading);
	font-size: clamp(1.65rem, 3vw, 2.35rem);
	font-weight: 780;
	letter-spacing: -.045em;
	line-height: 1.05;
}

.kfs-fact p {
	margin: 34px 0 0;
	color: var(--ed-muted);
	font-size: .79rem;
	line-height: 1.7;
}

.kfs-current__note {
	max-width: 900px;
	margin: 25px 0 0;
	color: var(--ed-muted);
	font-size: .72rem;
	line-height: 1.65;
}

.kfs-current__note a {
	color: var(--ed-red);
	font-weight: 700;
	text-decoration: underline;
	text-underline-offset: 3px;
}

@media (max-width: 980px) {
	.kfs-current__head {
		grid-template-columns: 1fr;
		gap: 22px;
	}

	.kfs-current__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 560px) {
	.kfs-current {
		padding: 76px 0 84px;
	}

	.kfs-current__grid {
		grid-template-columns: 1fr;
		margin-top: 38px;
	}

	.kfs-fact {
		min-height: 0;
		padding: 28px 23px 30px;
	}

	.kfs-fact p {
		margin-top: 19px;
	}
}

/* Privacy policy table and introductory copy ---------------- */
.legal-lead {
	margin: 0;
	padding: 0 0 30px;
	border-bottom: 1px solid var(--ed-line);
	color: var(--ed-muted);
	font-size: 1rem;
	line-height: 1.82;
}

.legal-lead strong {
	color: var(--ed-ink);
}

.legal-table-wrap {
	max-width: 100%;
	margin-top: 24px;
	overflow-x: auto;
	border: 1px solid var(--ed-line);
	border-radius: 10px;
	background: var(--ed-white);
}

.legal-table {
	width: 100%;
	min-width: 610px;
	border: 0;
	border-collapse: collapse;
	font-size: .84rem;
	line-height: 1.65;
}

.legal-table th,
.legal-table td {
	padding: 16px 18px;
	border: 0;
	border-bottom: 1px solid var(--ed-line);
	text-align: left;
	vertical-align: top;
}

.legal-table th {
	background: var(--ed-red-soft);
	color: var(--ed-ink);
	font-size: .68rem;
	font-weight: 750;
	letter-spacing: .08em;
	text-transform: uppercase;
}

.legal-table td {
	color: var(--ed-muted);
}

.legal-table th:first-child,
.legal-table td:first-child {
	width: 58%;
}

.legal-table tbody tr:last-child td {
	border-bottom: 0;
}

@media (max-width: 720px) {
	.legal-lead {
		font-size: .93rem;
	}

	.legal-table-wrap {
		margin-right: -6px;
	}
}

/* =========================================================
   EDUCANDIS — COMPLETE CONTENT SYSTEM 1.5
   About, detailed course areas, current KFS information and
   a readable privacy-policy layout. Visual language remains
   minimal and consistent with the accepted 1.4 design.
   ========================================================= */

/* About -------------------------------------------------- */
.about-intro,
.about-values,
.kfs-current,
.privacy-section {
	background-color: transparent;
}

.about-intro {
	padding: clamp(82px, 8vw, 126px) 0;
}

.about-intro__grid {
	display: grid;
	grid-template-columns: minmax(0, .94fr) minmax(0, 1.06fr);
	align-items: center;
	gap: clamp(58px, 7vw, 104px);
}

.about-intro__visual {
	position: relative;
	margin: 0;
	isolation: isolate;
}

.about-intro__visual::before {
	position: absolute;
	inset: 24px -22px -22px 24px;
	z-index: -1;
	border: 1px solid rgba(227, 66, 52, .34);
	border-radius: 16px;
	content: "";
}

.about-intro__visual img {
	width: 100%;
	aspect-ratio: 4 / 3.25;
	display: block;
	object-fit: cover;
	border-radius: 16px;
	filter: saturate(.8) contrast(.98);
}

.about-intro__piece {
	position: absolute;
	right: -26px;
	bottom: 48px;
	width: 88px;
	aspect-ratio: 1;
	background: var(--ed-red);
	-webkit-mask: url("../images/puzzle-mask.svg") center / contain no-repeat;
	mask: url("../images/puzzle-mask.svg") center / contain no-repeat;
}

.about-intro__copy h2 {
	max-width: 650px;
	margin: 0 0 24px;
	font-size: clamp(2.25rem, 4vw, 3.6rem);
	font-weight: 720;
	letter-spacing: -.055em;
	line-height: 1.06;
}

.about-intro__copy > p {
	max-width: 690px;
	margin: 0 0 17px;
	color: var(--ed-muted);
	font-size: .98rem;
	line-height: 1.78;
}

.about-intro__copy .check-list {
	margin: 30px 0 34px;
}

.about-values {
	padding: clamp(78px, 8vw, 118px) 0;
	background: rgba(255, 255, 255, .78);
	border-top: 1px solid rgba(227, 66, 52, .13);
	border-bottom: 1px solid rgba(227, 66, 52, .13);
	backdrop-filter: blur(3px);
}

.about-values__grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: clamp(20px, 2.4vw, 34px);
	margin-top: 54px;
}

.about-value {
	min-height: 260px;
	padding: 28px 4px 8px;
	border-top: 3px solid var(--ed-red);
}

.about-value > span {
	display: block;
	margin-bottom: 38px;
	color: var(--ed-red);
	font-size: .74rem;
	font-weight: 800;
	letter-spacing: .14em;
}

.about-value h3 {
	margin: 0 0 14px;
	font-size: 1.22rem;
	letter-spacing: -.025em;
}

.about-value p {
	margin: 0;
	color: var(--ed-muted);
	font-size: .87rem;
	line-height: 1.72;
}

.timeline-section--about {
	background: rgba(250, 248, 247, .91);
}

/* Course detail lists ------------------------------------ */
.course-grid--categories .course-card__body {
	display: flex;
	flex-direction: column;
}

.course-card__topics-title {
	margin: 25px 0 11px;
	color: var(--ed-ink);
	font-size: .69rem;
	font-weight: 800;
	letter-spacing: .105em;
	line-height: 1.4;
	text-transform: uppercase;
}

.course-card__topics {
	display: grid;
	gap: 8px;
	margin: 0 0 25px;
	padding: 0;
	list-style: none;
}

.course-card__topics li {
	display: grid;
	grid-template-columns: 17px minmax(0, 1fr);
	align-items: start;
	gap: 9px;
	color: var(--ed-muted);
	font-size: .78rem;
	line-height: 1.5;
}

.course-card__topics .icon {
	width: 16px;
	height: 16px;
	margin-top: 2px;
	color: var(--ed-red);
	stroke-width: 2.2;
}

.course-grid--categories .course-card .text-link {
	margin-top: auto;
}

/* KFS 2026 ----------------------------------------------- */
.finance-disclaimer {
	max-width: 620px;
	margin: 25px 0 0 !important;
	padding-left: 15px;
	border-left: 2px solid rgba(227, 66, 52, .36);
	color: var(--ed-muted) !important;
	font-size: .72rem !important;
	line-height: 1.62 !important;
}

.kfs-current {
	padding: clamp(76px, 8vw, 112px) 0;
	background: rgba(255, 255, 255, .76);
	border-top: 1px solid rgba(227, 66, 52, .13);
	border-bottom: 1px solid rgba(227, 66, 52, .13);
	backdrop-filter: blur(3px);
}

.kfs-current__head {
	display: grid;
	grid-template-columns: minmax(0, .9fr) minmax(320px, .72fr);
	align-items: end;
	gap: clamp(42px, 6vw, 86px);
	margin-bottom: 48px;
}

.kfs-current__head h2 {
	margin: 0;
	font-size: clamp(2.25rem, 4vw, 3.5rem);
	letter-spacing: -.055em;
	line-height: 1.05;
}

.kfs-current__head > p {
	margin: 0;
	color: var(--ed-muted);
	font-size: .92rem;
	line-height: 1.72;
}

.kfs-current__grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: clamp(18px, 2.2vw, 30px);
}

.kfs-fact {
	min-height: 225px;
	padding: 27px 4px 10px;
	border-top: 3px solid var(--ed-red);
}

.kfs-fact strong {
	display: block;
	margin-bottom: 32px;
	color: var(--ed-red);
	font-size: clamp(1.8rem, 3vw, 2.5rem);
	font-weight: 760;
	letter-spacing: -.055em;
	line-height: 1;
}

.kfs-fact p {
	margin: 0;
	color: var(--ed-muted);
	font-size: .82rem;
	line-height: 1.7;
}

.kfs-current__note {
	max-width: 940px;
	margin: 35px 0 0;
	color: var(--ed-muted);
	font-size: .72rem;
	line-height: 1.65;
}

.kfs-current__note a {
	color: var(--ed-red);
	font-weight: 700;
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 3px;
}

/* Privacy policy ----------------------------------------- */
.privacy-section {
	padding: clamp(72px, 8vw, 116px) 0 clamp(90px, 9vw, 140px);
}

.privacy-layout {
	display: grid;
	grid-template-columns: minmax(220px, 270px) minmax(0, 890px);
	justify-content: space-between;
	align-items: start;
	gap: clamp(52px, 7vw, 104px);
}

.privacy-nav {
	position: sticky;
	top: 106px;
	padding: 26px 25px 23px;
	background: rgba(255, 255, 255, .9);
	border: 1px solid var(--ed-line);
	border-top: 3px solid var(--ed-red);
	border-radius: 10px;
	backdrop-filter: blur(7px);
}

.privacy-nav > span {
	display: block;
	margin-bottom: 18px;
	color: var(--ed-red);
	font-size: .65rem;
	font-weight: 800;
	letter-spacing: .13em;
	text-transform: uppercase;
}

.privacy-nav ol {
	display: grid;
	gap: 8px;
	margin: 0;
	padding: 0;
	counter-reset: privacy-nav;
	list-style: none;
}

.privacy-nav li {
	counter-increment: privacy-nav;
}

.privacy-nav a {
	display: grid;
	grid-template-columns: 24px minmax(0, 1fr);
	gap: 8px;
	padding: 6px 0;
	color: var(--ed-muted);
	font-size: .73rem;
	font-weight: 620;
	line-height: 1.42;
}

.privacy-nav a::before {
	color: rgba(227, 66, 52, .72);
	font-size: .62rem;
	font-weight: 800;
	content: counter(privacy-nav, decimal-leading-zero);
}

.privacy-nav a:hover,
.privacy-nav a:focus-visible {
	color: var(--ed-red);
}

.privacy-content {
	min-width: 0;
	padding: clamp(34px, 4vw, 56px) clamp(25px, 5vw, 68px);
	background: rgba(255, 255, 255, .94);
	border: 1px solid rgba(235, 228, 225, .95);
	border-radius: 14px;
	backdrop-filter: blur(7px);
}

.privacy-update {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	margin-bottom: 25px;
	padding: 8px 12px;
	background: var(--ed-red-soft);
	border-radius: 6px;
	color: var(--ed-muted);
	font-size: .69rem;
	line-height: 1.4;
}

.privacy-update strong {
	color: var(--ed-ink);
}

.legal-lead {
	max-width: 760px;
	margin: 0 0 53px;
	color: var(--ed-ink);
	font-size: clamp(1.03rem, 1.5vw, 1.2rem);
	line-height: 1.72;
}

.privacy-block {
	position: relative;
	padding: 0 0 48px 52px;
	border-bottom: 1px solid var(--ed-line);
	scroll-margin-top: 112px;
}

.privacy-block + .privacy-block {
	margin-top: 50px;
}

.privacy-block__number {
	position: absolute;
	top: 4px;
	left: 0;
	color: var(--ed-red);
	font-size: .68rem;
	font-weight: 800;
	letter-spacing: .12em;
}

.privacy-block h2 {
	margin: 0 0 20px;
	font-size: clamp(1.55rem, 2.4vw, 2.05rem);
	font-weight: 720;
	letter-spacing: -.035em;
	line-height: 1.15;
}

.privacy-block p {
	margin: 0 0 16px;
	color: var(--ed-muted);
	font-size: .88rem;
	line-height: 1.78;
}

.privacy-block p:last-child {
	margin-bottom: 0;
}

.privacy-block ul {
	display: grid;
	gap: 9px;
	margin: 18px 0 20px;
	padding: 0;
	list-style: none;
}

.privacy-block li {
	position: relative;
	padding-left: 20px;
	color: var(--ed-muted);
	font-size: .86rem;
	line-height: 1.7;
}

.privacy-block li::before {
	position: absolute;
	top: .73em;
	left: 0;
	width: 6px;
	height: 6px;
	background: var(--ed-red);
	border-radius: 50%;
	content: "";
}

.privacy-block a {
	color: var(--ed-red);
	font-weight: 700;
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 3px;
}

.legal-table-wrap {
	max-width: 100%;
	margin: 24px 0;
	overflow-x: auto;
	border: 1px solid var(--ed-line);
	border-radius: 9px;
}

.legal-table {
	width: 100%;
	min-width: 570px;
	border-collapse: collapse;
	background: rgba(255, 255, 255, .78);
}

.legal-table th,
.legal-table td {
	padding: 15px 17px;
	border-bottom: 1px solid var(--ed-line);
	text-align: left;
	vertical-align: top;
}

.legal-table th {
	background: var(--ed-red-soft);
	color: var(--ed-ink);
	font-size: .69rem;
	font-weight: 800;
	letter-spacing: .07em;
	text-transform: uppercase;
}

.legal-table td {
	color: var(--ed-muted);
	font-size: .76rem;
	line-height: 1.58;
}

.legal-table tr:last-child td {
	border-bottom: 0;
}

.privacy-contact-box {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	align-items: center;
	gap: 30px;
	margin-top: 52px;
	padding-top: 42px;
	border-top: 3px solid var(--ed-red);
}

.privacy-contact-box h2 {
	max-width: 540px;
	margin: 0;
	font-size: clamp(1.65rem, 2.8vw, 2.35rem);
	letter-spacing: -.04em;
	line-height: 1.13;
}

.privacy-contact-box .button {
	white-space: nowrap;
}

.contact-form .consent a {
	color: var(--ed-red);
	font-weight: 700;
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 3px;
}

/* The longer five-item navigation changes to the hamburger before it can wrap. */
@media (max-width: 1240px) {
	.desktop-nav {
		display: none;
	}

	.menu-toggle {
		display: flex;
		margin-left: auto;
	}
}

@media (max-width: 1060px) {
	.about-intro__grid {
		grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr);
		gap: 54px;
	}

	.about-values__grid,
	.kfs-current__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.about-value,
	.kfs-fact {
		min-height: 220px;
	}

	.privacy-layout {
		grid-template-columns: 220px minmax(0, 1fr);
		gap: 42px;
	}
}

@media (max-width: 860px) {
	.about-intro__grid,
	.kfs-current__head,
	.privacy-layout {
		grid-template-columns: 1fr;
	}

	.about-intro__visual {
		width: min(720px, calc(100% - 24px));
	}

	.about-intro__copy {
		max-width: 720px;
	}

	.kfs-current__head {
		align-items: start;
		gap: 20px;
	}

	.privacy-nav {
		position: static;
	}

	.privacy-nav ol {
		grid-template-columns: repeat(3, minmax(0, 1fr));
		gap: 5px 18px;
	}
}

@media (max-width: 640px) {
	.about-intro {
		padding-top: 72px;
	}

	.about-intro__visual::before {
		inset: 14px -12px -12px 14px;
	}

	.about-intro__piece {
		right: -12px;
		bottom: 28px;
		width: 68px;
	}

	.about-values__grid,
	.kfs-current__grid,
	.privacy-nav ol,
	.privacy-contact-box {
		grid-template-columns: 1fr;
	}

	.about-value,
	.kfs-fact {
		min-height: 0;
	}

	.about-value > span,
	.kfs-fact strong {
		margin-bottom: 20px;
	}

	.privacy-content {
		padding: 30px 20px;
	}

	.privacy-block {
		padding-left: 0;
	}

	.privacy-block__number {
		position: static;
		display: block;
		margin-bottom: 10px;
	}

	.privacy-contact-box .button {
		justify-self: start;
		white-space: normal;
	}
}
