:root {
	--tef-ink: #17213d;
	--tef-muted: #65708a;
	--tef-cream: #f4f7ff;
	--tef-paper: #f8faff;
	--tef-green: #3155c6;
	--tef-green-light: #e8edff;
	--tef-gold: #f06b58;
	--tef-red: #bd3d4f;
	--tef-line: #dbe2f1;
	--tef-sky: #eef6ff;
}

@property --tef-learn-width {
	syntax: "<length-percentage>";
	inherits: false;
	initial-value: 50%;
}

.tef-app {
	color: var(--tef-ink);
	font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
	margin: clamp(.35rem, 1vw, .8rem) auto 1.5rem;
	max-width: 1120px;
}

.tef-a1-overview {
	color: var(--tef-ink);
	margin: clamp(.5rem, 1.5vw, 1.4rem) auto;
	max-width: 1040px;
}

.tef-a1-overview > header {
	background: linear-gradient(135deg, #172a5e 0%, #3155c6 58%, #5d46cf 100%);
	border-radius: 20px;
	color: white;
	padding: clamp(.9rem, 1.8vw, 1.25rem) clamp(1.1rem, 2.5vw, 1.75rem);
}

.tef-a1-overview > header h1 {
	font-family: Georgia, serif;
	font-size: clamp(1.35rem, 2.8vw, 2rem);
	letter-spacing: -.025em;
	line-height: 1.1;
	margin: 0;
}

.tef-a1-overview > header h1 span {
	color: inherit;
	font-family: inherit;
	font-size: inherit;
	font-weight: inherit;
	letter-spacing: inherit;
}

.tef-level-intro {
	font-size: clamp(.78rem, 1.25vw, .9rem);
	line-height: 1.45;
	margin: .45rem 0 0;
	max-width: 780px;
	opacity: .92;
}

.tef-course-sections {
	display: grid;
	gap: 1rem;
	margin-top: 1.1rem;
}

.tef-course-sections details {
	background: white;
	border: 1px solid var(--tef-line);
	border-radius: 18px;
	overflow: hidden;
}

.tef-course-sections summary {
	align-items: center;
	color: var(--tef-ink);
	cursor: pointer;
	display: flex;
	gap: .75rem;
	font-family: Georgia, serif;
	font-size: 1.35rem;
	font-weight: 700;
	padding: 1.25rem 1.4rem;
}

.tef-course-sections summary::-webkit-details-marker {
	display: none;
}

.tef-course-sections summary span {
	color: var(--tef-muted);
	flex-shrink: 0;
	font-family: Inter, ui-sans-serif, system-ui, sans-serif;
	font-size: .72rem;
	font-weight: 800;
	letter-spacing: .08em;
	margin-left: auto;
	text-transform: uppercase;
	white-space: nowrap;
}

.tef-course-sections summary::after {
	align-items: center;
	border: 1px solid var(--tef-line);
	border-radius: 50%;
	color: var(--tef-green);
	content: "+";
	display: inline-flex;
	flex: 0 0 1.6rem;
	font-family: Inter, ui-sans-serif, system-ui, sans-serif;
	font-size: 1.05rem;
	height: 1.6rem;
	justify-content: center;
	line-height: 1;
}

.tef-course-sections details[open] summary::after {
	content: "−";
}

.tef-course-sections ol {
	border-top: 1px solid var(--tef-line);
	margin: 0;
	padding: .75rem 1.4rem .75rem 2.6rem;
}

.tef-course-sections li {
	border-bottom: 1px solid #edf0f7;
	font-size: 15px;
	padding: .2rem 0;
}

.tef-course-sections li:last-child {
	border-bottom: 0;
}

.tef-course-sections li.tef-three-digit-lesson {
	margin-left: .35rem;
}

.tef-course-sections li > a,
.tef-course-sections li > span {
	align-items: center;
	color: var(--tef-ink);
	display: flex;
	font-size: 15px;
	gap: 1rem;
	justify-content: space-between;
	padding: .8rem .15rem;
	text-decoration: none;
}

.tef-course-sections li > a {
	color: var(--tef-green);
	font-weight: 800;
}

.tef-course-sections small {
	background: #f0f3fa;
	border-radius: 999px;
	color: var(--tef-muted);
	display: inline-flex;
	justify-content: center;
	min-width: 5.1rem;
	font-size: .68rem;
	font-weight: 800;
	line-height: 1.1;
	padding: .24rem .42rem;
	text-align: center;
	text-transform: uppercase;
}

.tef-course-sections a small {
	background: var(--tef-green-light);
	color: var(--tef-green);
}

.home .wp-block-post-title,
.home header.wp-block-template-part,
.home footer.wp-block-template-part {
	display: none;
}

.home #wp--skip-link--target {
	margin-top: 0 !important;
}

.home #wp--skip-link--target > .wp-block-group,
.home .entry-content {
	padding-bottom: 0 !important;
	padding-top: 0 !important;
}

.home {
	background: #fff;
	overflow: hidden;
}

.home .tef-site-footer {
	background: transparent;
	border-top: 0;
	bottom: 0;
	left: 0;
	padding: .75rem 1rem 1rem;
	position: fixed;
	right: 0;
}

.home .tef-site-footer-links {
	gap: .5rem 1rem;
	margin-bottom: .45rem;
}

.home .tef-site-footer,
.home .tef-site-footer-links a {
	font-size: .78rem;
}

.tef-learning-page .wp-block-post-title {
	display: none;
}

/* Replace the theme's stacked page spacers with one compact lesson entry gap. */
.tef-learning-page #wp--skip-link--target {
	margin-top: 0 !important;
}

.tef-learning-page #wp--skip-link--target > .wp-block-group {
	padding-top: clamp(.25rem, .9vw, .7rem) !important;
}

.tef-learning-page .tef-app,
.tef-learning-page .tef-a1-overview {
	margin-top: .15rem;
}

.tef-roadmap {
	align-items: center;
	box-sizing: border-box;
	display: flex;
	flex-direction: column;
	gap: clamp(1.25rem, 3vw, 2.5rem);
	justify-content: center;
	margin: 0 auto;
	height: calc(100svh - 76px);
	min-height: 0;
	padding: clamp(1rem, 3vw, 2rem) clamp(1rem, 3vw, 2rem) 4.75rem;
	text-align: center;
}

.tef-roadmap h1 {
	color: var(--tef-ink);
	font-family: Georgia, serif;
	font-size: clamp(1.9rem, 3.4vw, 3.25rem);
	letter-spacing: -.05em;
	line-height: 1.05;
	margin: 0;
}

.tef-roadmap h1 span {
	color: var(--tef-green);
}

.tef-exam-note {
	align-items: center;
	background: #fff;
	border-radius: 18px;
	box-shadow: 0 10px 30px rgba(49, 85, 198, .06);
	box-sizing: border-box;
	color: var(--tef-muted);
	display: flex;
	flex-direction: column;
	gap: .15rem;
	justify-content: center;
	margin: 0;
	max-width: 660px;
	padding: .7rem 1.25rem .65rem;
	width: min(100%, 660px);
}

.tef-exam-brand {
	display: block;
	height: auto;
	max-width: 420px;
	width: min(100%, 420px);
}

.tef-exam-offer {
	color: var(--tef-muted);
	font-size: clamp(.73rem, 1.15vw, .88rem);
	font-weight: 550;
	letter-spacing: .005em;
	line-height: 1.25;
	margin: 0;
	text-align: center;
}

.tef-exam-offer em {
	color: var(--tef-green);
	font-family: Georgia, serif;
	font-size: 1.15em;
	font-weight: 700;
}

.tef-level-path {
	animation: tef-path-in 300ms cubic-bezier(.22, 1, .36, 1) both;
	display: grid;
	gap: .65rem;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	max-width: 1000px;
	width: 100%;
}

.tef-home-intro {
	padding: clamp(1.5rem, 3.5vw, 3rem) 1rem .65rem;
	text-align: center;
}

.tef-roadmap .tef-home-intro h1 {
	color: var(--tef-ink);
	font-family: Georgia, serif;
	font-size: clamp(2.2rem, 4.7vw, 4.5rem);
	letter-spacing: -.055em;
	line-height: 1.02;
	margin: 0;
}

.tef-roadmap .tef-home-intro h1 span {
	color: #3155c6;
}

.tef-roadmap .tef-home-intro h1 em {
	font-weight: 700;
}

.tef-home-intro > p {
	color: #63708a;
	font-size: clamp(.9rem, 1.3vw, 1.08rem);
	line-height: 1.55;
	margin: 1rem auto 0;
	max-width: 820px;
}

.tef-level {
	align-items: center;
	background: rgba(239, 242, 250, .82);
	border: 0;
	border-radius: 16px;
	box-sizing: border-box;
	color: var(--tef-muted);
	display: flex;
	flex-direction: column;
	gap: .45rem;
	justify-content: center;
	min-height: 112px;
	padding: .75rem;
	text-decoration: none;
}

.tef-level strong {
	color: var(--tef-ink);
	font-family: Georgia, serif;
	font-size: clamp(1.15rem, 2.2vw, 1.85rem);
	line-height: 1;
}

.tef-level small {
	background: #f0f3fa;
	border-radius: 999px;
	color: var(--tef-muted);
	font-size: .62rem;
	font-weight: 850;
	letter-spacing: .04em;
	padding: .25rem .45rem;
	text-transform: uppercase;
}

.tef-level.is-available {
	background: linear-gradient(145deg, #eaf0ff, #dce6ff);
	box-shadow: 0 8px 20px rgba(49, 85, 198, .1);
}

.tef-level.is-available strong {
	color: #2949aa;
}

.tef-level.is-available small {
	background: rgba(49, 85, 198, .1);
	color: #2949aa;
}

.tef-level[aria-disabled="true"] {
	opacity: .55;
}

/* Editorial homepage — intentionally separate from lesson and level-page systems. */
.home {
	background: #fff;
	overflow: visible;
}

.home .tef-site-footer {
	background: #f7f8fb;
	border-top: 1px solid #e5e9f2;
	bottom: auto;
	left: auto;
	padding: 1.35rem 1rem;
	position: static;
	right: auto;
}

.tef-roadmap {
	align-items: stretch;
	display: block;
	height: auto;
	margin: 0 auto;
	max-width: 1440px;
	padding: clamp(1rem, 2.5vw, 2.25rem);
	text-align: left;
	width: 100%;
}

.tef-home-hero {
	background: #f5f7fc;
	border-radius: 28px;
	display: grid;
	gap: clamp(2rem, 5vw, 5rem);
	grid-template-columns: minmax(0, 1.3fr) minmax(280px, .7fr);
	padding: clamp(2rem, 5vw, 4.75rem);
}

.tef-home-kicker {
	color: #d29a00;
	font-size: .72rem;
	font-weight: 850;
	letter-spacing: .14em;
	margin: 0 0 .8rem;
	text-transform: uppercase;
}

.tef-roadmap .tef-home-hero h1 {
	color: var(--tef-ink);
	font-family: Georgia, serif;
	font-size: clamp(2.6rem, 4.7vw, 4.55rem);
	letter-spacing: -.055em;
	line-height: .96;
	margin: 0;
}

.tef-roadmap .tef-home-hero h1 span {
	color: #3155c6;
}

.tef-home-hero-copy > p:not(.tef-home-kicker) {
	color: #56627c;
	font-size: clamp(1rem, 1.5vw, 1.22rem);
	line-height: 1.6;
	margin: 1.4rem 0 0;
	max-width: 720px;
}

.tef-home-actions {
	display: flex;
	flex-wrap: wrap;
	gap: .75rem;
	margin-top: 1.7rem;
}

.tef-home-primary,
.tef-home-secondary {
	border-radius: 999px;
	font-size: .9rem;
	font-weight: 800;
	padding: .78rem 1.15rem;
	text-decoration: none;
}

.tef-home-primary { background: #3155c6; color: #fff; }
.tef-home-secondary { background: #fff; color: #243a87; }
.tef-home-primary:hover,
.tef-home-primary:focus-visible { background: #213f9f; color: #fff; }
.tef-home-secondary:hover,
.tef-home-secondary:focus-visible { background: #e8edfb; color: #213f9f; }

.tef-home-method {
	align-self: center;
	background: #172a5e;
	border-radius: 22px;
	color: #fff;
	padding: clamp(1.4rem, 3vw, 2rem);
}

.tef-home-method > p {
	align-items: baseline;
	display: flex;
	gap: .6rem;
	margin: 0 0 1.25rem;
}

.tef-home-method > p strong {
	font-family: Georgia, serif;
	font-size: 2.8rem;
	line-height: 1;
}

.tef-home-method > p span { color: #cfd8f5; font-size: .8rem; font-weight: 750; text-transform: uppercase; }
.tef-home-method ol { list-style: none; margin: 0; padding: 0; }
.tef-home-method li { align-items: center; border-top: 1px solid rgba(255,255,255,.14); display: grid; font-size: .88rem; gap: .75rem; grid-template-columns: 2rem 1fr; line-height: 1.4; padding: .85rem 0; }
.tef-home-method li span { color: #ff7663; font-size: .7rem; font-weight: 850; }

.tef-home-journey,
.tef-home-guides { padding: clamp(3.5rem, 7vw, 6.5rem) 0 0; }

.tef-home-intro + .tef-home-journey {
	padding-top: clamp(.75rem, 1.5vw, 1.25rem);
}

.tef-home-journey > header {
	align-items: end;
	display: block;
	gap: 2rem;
	grid-template-columns: minmax(0, 1.5fr) minmax(260px, .5fr);
	margin-bottom: 1rem;
}

.tef-home-journey > header .tef-home-kicker {
	margin-bottom: 0;
}

.tef-home-journey h2,
.tef-home-guides h2 {
	color: var(--tef-ink);
	font-family: Georgia, serif;
	font-size: clamp(2rem, 3.5vw, 3.25rem);
	letter-spacing: -.045em;
	line-height: 1.02;
	margin: 0;
}

.tef-home-journey > header > p,
.tef-home-guides > header > p:last-child { color: #63708a; line-height: 1.55; margin: 0; }

.tef-journey-grid {
	display: grid;
	gap: .8rem;
	grid-template-columns: repeat(5, minmax(0, 1fr));
}

.tef-journey-card {
	background: #f7f8fb;
	border-radius: 18px;
	color: var(--tef-ink);
	display: flex;
	flex-direction: column;
	min-height: 270px;
	padding: 1.25rem;
	text-decoration: none;
	transition: transform 180ms ease, box-shadow 180ms ease;
}

.tef-journey-card:hover,
.tef-journey-card:focus-visible { box-shadow: 0 16px 35px rgba(28, 48, 100, .11); color: var(--tef-ink); transform: translateY(-4px); }
.tef-journey-level { color: #3155c6; font-family: Georgia, serif; font-size: 2rem; font-weight: 700; line-height: 1; }
.tef-journey-card small { color: #78839a; font-size: .65rem; font-weight: 800; letter-spacing: .08em; margin-top: .45rem; text-transform: uppercase; }
.tef-journey-card h3 { font-size: 1rem; line-height: 1.2; margin: 1.5rem 0 .55rem; }
.tef-journey-card p { color: #63708a; font-size: .82rem; line-height: 1.5; margin: 0 0 1rem; }
.tef-journey-card b { color: #3155c6; font-size: .76rem; margin-top: auto; }
.tef-journey-mock { background: #172a5e; color: #fff; }
.tef-journey-mock:hover,
.tef-journey-mock:focus-visible { color: #fff; }
.tef-journey-mock .tef-journey-level,
.tef-journey-mock b { color: #ff7663; }
.tef-journey-mock small,
.tef-journey-mock p { color: #cbd4ef; }

.tef-home-guides { margin-bottom: clamp(3rem, 6vw, 6rem); }
.tef-home-guides > header { border-bottom: 1px solid #dfe3eb; margin-bottom: 1.7rem; padding-bottom: 1.5rem; }
.tef-home-guides > header > p:last-child { margin-top: .85rem; max-width: 680px; }
.tef-guide-grid { display: grid; gap: 1rem; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.tef-guide-card { background: #fff; border: 1px solid #e6e9f0; border-radius: 16px; box-shadow: 0 10px 26px rgba(28, 48, 100, .06); overflow: hidden; }
.tef-guide-visual { background: #eaf0ff; color: #172a5e; display: flex; flex-direction: column; justify-content: space-between; min-height: 205px; padding: 1.4rem; text-decoration: none; }
.tef-guide-card-2 .tef-guide-visual { background: #e7f6e7; }
.tef-guide-card-3 .tef-guide-visual { background: #ffe9e5; }
.tef-guide-visual span { font-size: clamp(2rem, 4vw, 4rem); font-weight: 900; letter-spacing: -.06em; line-height: .9; }
.tef-guide-visual b { font-size: .78rem; max-width: 220px; text-transform: uppercase; }
.tef-guide-content { padding: 1.25rem; }
.tef-guide-meta { align-items: center; color: #78839a; display: flex; font-size: .7rem; gap: .4rem; margin: 0 0 .75rem; }
.tef-guide-content h3 { font-size: clamp(1.15rem, 2vw, 1.55rem); line-height: 1.12; margin: 0; }
.tef-guide-content h3 a { color: var(--tef-ink); text-decoration: none; }
.tef-guide-content > p:not(.tef-guide-meta) { color: #63708a; font-size: .82rem; line-height: 1.55; margin: .8rem 0; }
.tef-guide-read { color: #3155c6; font-size: .78rem; font-weight: 800; text-decoration: none; }

@media (max-width: 900px) {
	.tef-home-hero,
	.tef-home-journey > header { grid-template-columns: 1fr; }
	.tef-home-method { width: auto; }
	.tef-journey-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.tef-journey-mock { grid-column: span 2; min-height: 210px; }
	.tef-guide-grid { grid-template-columns: 1fr; }
	.tef-guide-card { display: grid; grid-template-columns: minmax(220px, .8fr) 1.2fr; }
}

@media (max-width: 560px) {
	.tef-roadmap { padding: .75rem; }
	.tef-home-intro { padding: 1.25rem .25rem 1rem; }
	.tef-roadmap .tef-home-intro h1 { font-size: clamp(2rem, 11vw, 3rem); }
	.tef-home-intro > p { font-size: .82rem; }
	.tef-home-hero { border-radius: 18px; padding: 1.4rem; }
	.tef-roadmap .tef-home-hero h1 { font-size: clamp(2.45rem, 13vw, 3.7rem); }
	.tef-home-actions { align-items: stretch; flex-direction: column; text-align: center; }
	.tef-home-journey,
	.tef-home-guides { padding-top: 3.5rem; }
	.tef-journey-grid { grid-template-columns: 1fr; }
	.tef-journey-card,
	.tef-journey-mock { grid-column: auto; min-height: 220px; }
	.tef-guide-card { display: block; }
	.tef-guide-visual { min-height: 170px; }
}

.tef-final-test strong {
	font-size: clamp(1rem, 1.8vw, 1.45rem);
}

@keyframes tef-path-in {
	from {
		opacity: 0;
		transform: translateY(12px);
	}
	to {
		opacity: 1;
		transform: translateY(0);
	}
}

@media (max-width: 720px) {
	.tef-a1-overview > header {
		border-radius: 14px;
		padding: .8rem 1rem;
	}

	.tef-a1-overview > header h1 {
		font-size: 1.3rem;
	}

	.tef-roadmap {
		gap: 1.25rem;
		padding: 1rem 1rem 5rem;
	}

	.tef-exam-offer {
		font-size: .64rem;
		white-space: nowrap;
	}

	.tef-exam-note {
		border-radius: 14px;
		padding: .55rem .8rem .5rem;
	}

	.tef-course-sections summary {
		font-size: 1rem;
		padding: 1rem 1rem .95rem;
	}

	.tef-course-sections summary span {
		font-size: .52rem;
		letter-spacing: .06em;
	}

	.tef-course-sections ol {
		padding-left: 2.4rem;
		padding-right: .75rem;
	}

	.tef-level-path {
		gap: .35rem;
	}

	.tef-level {
		aspect-ratio: 1 / 1;
		border-radius: 10px;
		gap: .25rem;
		min-height: 0;
		padding: .3rem .12rem;
	}

	.tef-level strong {
		font-size: clamp(.82rem, 5.4vw, 1.1rem);
	}

	.tef-final-test strong {
		font-size: clamp(.68rem, 4.3vw, .9rem);
		line-height: .95;
	}

	.tef-level small {
		font-size: clamp(.39rem, 2.5vw, .5rem);
		line-height: 1;
		padding: .16rem .18rem;
	}

	.tef-course-sections small {
		font-size: .6rem;
		min-width: 4.35rem;
		padding: .22rem .32rem;
	}

	.tef-course-sections li > a,
	.tef-course-sections li > span {
		font-size: 15px;
		line-height: 1.24;
	}

	.home .tef-site-footer {
		padding: .65rem .75rem .85rem;
	}

	.home .tef-site-footer-links {
		gap: .35rem .75rem;
	}
}

@media (max-height: 600px) {
	.tef-roadmap {
		gap: .7rem;
		padding: .5rem .5rem 4.6rem;
	}

	.tef-roadmap h1 {
		font-size: clamp(1.8rem, 6vh, 2.5rem);
	}

	.tef-level {
		min-height: 70px;
	}
}

.tef-app button {
	font: inherit;
}

.tef-hero {
	align-items: center;
	background: linear-gradient(135deg, #172a5e 0%, #3155c6 58%, #5d46cf 100%);
	border-radius: 22px;
	color: white;
	display: grid;
	gap: 2rem;
	grid-template-columns: 1fr;
	overflow: hidden;
	padding: clamp(1.35rem, 3.5vw, 3rem);
	position: relative;
}

.tef-hero::after {
	border: 1px solid rgba(255, 255, 255, .14);
	border-radius: 50%;
	content: "";
	height: 360px;
	position: absolute;
	right: -130px;
	top: -160px;
	width: 360px;
}

.tef-hero h1 {
	font-family: Georgia, serif;
	font-size: clamp(1.9rem, 4vw, 3.6rem);
	letter-spacing: -.04em;
	line-height: 1;
	margin: .25rem 0 .65rem;
	max-width: 760px;
}

.tef-hero p {
	color: #e8edff;
	font-size: 1rem;
	line-height: 1.4;
	margin: 0;
	max-width: 670px;
}

.tef-eyebrow {
	color: var(--tef-gold) !important;
	font-size: .75rem !important;
	font-weight: 800;
	letter-spacing: .16em;
	margin: 0;
}

.tef-lesson-progress {
	align-items: center;
	box-sizing: border-box;
	display: flex;
	gap: 1rem;
	justify-content: space-between;
}

.tef-lesson-progress-top {
	background: white;
	border: 1px solid var(--tef-line);
	border-radius: 14px;
	box-shadow: 0 10px 28px rgba(36, 55, 115, .1);
	margin: -.85rem 1.25rem 1rem;
	padding: .55rem .85rem;
	position: relative;
	z-index: 3;
}

.tef-lesson-progress-top + .tef-stage-nav {
	margin-top: 0;
}

.tef-lesson-breadcrumb {
	align-items: center;
	color: var(--tef-muted);
	display: flex;
	flex-wrap: wrap;
	font-size: .76rem;
	gap: .4rem;
	min-width: 0;
}

.tef-lesson-breadcrumb a {
	color: var(--tef-green);
	font-weight: 750;
	text-decoration: none;
}

.tef-next-lesson-link {
	align-items: flex-end;
	color: var(--tef-green);
	display: flex;
	flex: 0 1 auto;
	flex-direction: column;
	min-width: 0;
	text-align: right;
	text-decoration: none;
}

.tef-next-lesson-link small {
	color: var(--tef-muted);
	font-size: .62rem;
	font-weight: 800;
	letter-spacing: .08em;
	text-transform: uppercase;
}

.tef-next-lesson-link strong {
	font-family: Georgia, serif;
	font-size: .95rem;
	line-height: 1.15;
	max-width: 28rem;
}

.tef-lesson-progress-bottom {
	border-top: 1px solid var(--tef-line);
	justify-content: flex-end;
	margin-top: 1.5rem;
	padding-top: 1.25rem;
}

.tef-lesson-progress-bottom .tef-next-lesson-link {
	background: var(--tef-green);
	border-radius: 999px;
	color: white;
	padding: .7rem 1rem;
}

.tef-lesson-progress-bottom .tef-next-lesson-link small {
	color: #dfe6ff;
}

.tef-stage-nav {
	background: white;
	border: 1px solid var(--tef-line);
	border-radius: 16px;
	box-shadow: 0 12px 35px rgba(36, 55, 115, .12);
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	margin: -1rem auto 1.5rem;
	max-width: 760px;
	overflow: hidden;
	position: relative;
	z-index: 2;
}

.tef-divider {
	border: 0;
	border-top: 1px solid #e9e3d8;
	margin: 3rem 0;
}

.tef-writing-box {
	background: white;
	border: 1px solid var(--tef-line);
	border-radius: 18px;
	display: grid;
	gap: .45rem;
	margin-bottom: 1rem;
	padding: 1.35rem;
}

.tef-writing-box span {
	color: var(--tef-muted);
}

.tef-writing-box textarea,
.tef-question textarea {
	border: 1px solid #bcc7df;
	border-radius: 12px;
	box-sizing: border-box;
	font: inherit;
	margin-top: .75rem;
	padding: .9rem;
	width: 100%;
}

.tef-skill {
	background: var(--tef-green-light);
	border-radius: 999px;
	color: var(--tef-green);
	display: inline-block;
	font-size: .7rem;
	font-weight: 800;
	letter-spacing: .1em;
	margin-bottom: .7rem;
	padding: .3rem .55rem;
	text-transform: uppercase;
}

.tef-stage-nav button {
	background: white;
	border: 0;
	color: var(--tef-muted);
	cursor: pointer;
	font-weight: 700;
	padding: .75rem;
}

.tef-stage-nav button.is-active {
	background: var(--tef-green-light);
	color: var(--tef-green);
}

.tef-stage-nav span {
	align-items: center;
	border: 1px solid currentColor;
	border-radius: 50%;
	display: inline-flex;
	height: 1.6rem;
	justify-content: center;
	margin-right: .35rem;
	width: 1.6rem;
}

.tef-stage {
	background: var(--tef-paper);
	border: 1px solid var(--tef-line);
	border-radius: 24px;
	padding: clamp(1rem, 2.5vw, 2rem);
}

.tef-section-heading {
	align-items: end;
	display: grid;
	gap: 2rem;
	grid-template-columns: 1fr minmax(260px, .65fr);
	margin-bottom: 2rem;
}

.tef-section-heading h2 {
	font-family: Georgia, serif;
	font-size: clamp(1.8rem, 4vw, 3rem);
	margin: .3rem 0 0;
}

.tef-section-heading > p {
	color: var(--tef-muted);
	margin: 0;
}

.tef-phrase-grid {
	display: grid;
	gap: 1.15rem;
	grid-template-columns: 1fr;
}

.tef-rule-grid {
	display: grid;
	gap: .85rem;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	margin: 0 0 1.4rem;
}

.tef-rule-card {
	background: #eef6ff;
	border-radius: 16px;
	padding: 1rem 1.1rem;
}

.tef-rule-card strong {
	color: var(--tef-green);
	display: block;
	margin-bottom: .3rem;
}

.tef-rule-card p {
	color: var(--tef-muted);
	font-size: .9rem;
	line-height: 1.5;
	margin: 0;
}

.tef-phrase-card,
.tef-question,
.tef-review-card {
	background: white;
	border: 1px solid var(--tef-line);
	border-radius: 18px;
}

.tef-phrase-card {
	--tef-learn-width: 50%;
	box-shadow: 0 8px 24px rgba(39, 57, 113, .06);
	display: grid;
	grid-template-columns: var(--tef-learn-width) minmax(0, 1fr);
	overflow: hidden;
	transition: --tef-learn-width 520ms cubic-bezier(.22, 1, .36, 1);
	will-change: --tef-learn-width;
}

.tef-accordion-panel {
	display: grid;
	grid-template-rows: auto 1fr;
	min-width: 0;
}

.tef-learn-panel {
	border-right: 1px solid var(--tef-line);
	grid-template-rows: auto minmax(0, 1fr);
	transition: grid-template-rows 480ms cubic-bezier(.22, 1, .36, 1);
}

.tef-panel-heading,
.tef-integration summary {
	background: var(--tef-green-light);
	border: 0;
	color: var(--tef-green);
	cursor: pointer;
	font-size: .82rem;
	font-weight: 850;
	letter-spacing: .08em;
	padding: .8rem 1.25rem;
	text-align: left;
	text-transform: uppercase;
}

.tef-learn-heading {
	background: #eef6ff;
	color: var(--tef-ink);
}

.tef-phrase-learn {
	background: linear-gradient(145deg, white, var(--tef-sky));
	min-height: 0;
	min-width: 0;
	opacity: 1;
	overflow: hidden;
	padding: 1.5rem;
	transform: translateX(0);
	transition:
		opacity 240ms ease 130ms,
		padding 480ms cubic-bezier(.22, 1, .36, 1),
		transform 480ms cubic-bezier(.22, 1, .36, 1),
		visibility 0s linear 0s;
	visibility: visible;
}

.tef-practice-title {
	color: var(--tef-gold);
	display: block;
	font-size: .7rem;
	font-weight: 850;
	letter-spacing: .12em;
	margin-bottom: .45rem;
	text-transform: uppercase;
}

.tef-phrase-card h3 {
	font-family: Georgia, serif;
	font-size: 1.55rem;
	margin: 0 0 .3rem;
}

.tef-phrase-learn > p {
	color: var(--tef-muted);
	margin: 0 0 1rem;
}

.tef-item-practice {
	background: white;
	min-width: 0;
}

.tef-integration summary {
	list-style-position: inside;
}

.tef-item-practice-body {
	display: grid;
	gap: 1rem;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	padding: 1.25rem;
}

.tef-practice-listen {
	grid-column: 1 / -1;
	justify-self: start;
}

.tef-phrase-card.is-practice-focused {
	--tef-learn-width: 3.25rem;
}

.tef-phrase-card.is-practice-focused .tef-phrase-learn {
	opacity: 0;
	padding: 0;
	pointer-events: none;
	transform: translateX(-.75rem);
	transition:
		opacity 170ms ease,
		padding 480ms cubic-bezier(.22, 1, .36, 1),
		transform 480ms cubic-bezier(.22, 1, .36, 1),
		visibility 0s linear 180ms;
	visibility: hidden;
}

.tef-phrase-card.is-practice-focused .tef-learn-panel {
	grid-template-rows: auto minmax(0, 0fr);
}

.tef-phrase-card.is-practice-focused .tef-learn-heading {
	align-items: center;
	display: flex;
	height: 100%;
	justify-content: center;
	padding: .8rem 0;
	writing-mode: vertical-rl;
}

.tef-phrase-card.is-practice-focused .tef-item-practice-body {
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.tef-item-practice label,
.tef-letter-writing,
.tef-speaking-practice {
	display: block;
	min-width: 0;
}

.tef-letter-card .tef-phrase-learn h3 {
	font-size: clamp(3rem, 8vw, 5rem);
	line-height: 1;
}

.tef-letter-ipa {
	font-family: ui-monospace, "SFMono-Regular", Consolas, monospace;
	font-size: 1.05rem;
}

.tef-pattern-sound {
	background: var(--tef-green-light);
	border-radius: 999px;
	color: var(--tef-green) !important;
	display: inline-block;
	font-family: ui-monospace, "SFMono-Regular", Consolas, monospace;
	font-size: .92rem;
	font-weight: 800;
	margin: .2rem 0 .75rem !important;
	padding: .3rem .6rem;
}

.tef-pattern-example {
	font-size: 1rem;
}

.tef-pattern-example strong {
	color: var(--tef-ink);
	font-family: Georgia, serif;
	font-size: 1.35rem;
}

.tef-pronunciation-cue {
	background: #f0f3ff;
	border-left: 3px solid var(--tef-green);
	border-radius: 0 12px 12px 0;
	color: var(--tef-muted) !important;
	font-size: .9rem;
	line-height: 1.55;
	margin: .9rem 0 1rem !important;
	padding: .7rem .8rem;
}

.tef-pronunciation-cue b {
	color: var(--tef-green);
	font-size: 1rem;
	letter-spacing: .035em;
}

.tef-pronunciation-cue span {
	color: var(--tef-ink);
	font-family: ui-monospace, "SFMono-Regular", Consolas, monospace;
	white-space: nowrap;
}

.tef-conversation-note {
	border-left: 3px solid #f06c5f;
	color: var(--tef-ink) !important;
	font-size: .9rem;
	line-height: 1.5;
	padding-left: .7rem;
}

.tef-conversation-app .tef-integration textarea {
	border: 1px solid #bcc7df;
	border-radius: 12px;
	box-sizing: border-box;
	font: inherit;
	padding: .8rem;
	width: 100%;
}

.tef-practice-help {
	color: var(--tef-muted);
	display: block;
	font-size: .86rem;
	margin-bottom: .6rem;
}

.tef-write-answer {
	border: 1px solid #bcc7df;
	border-radius: 10px;
	box-sizing: border-box;
	font: inherit;
	padding: .7rem .8rem;
	width: 100%;
}

.tef-write-answer:focus {
	border-color: var(--tef-green);
	box-shadow: 0 0 0 3px rgba(49, 85, 198, .12);
	outline: 0;
}

.tef-item-actions {
	align-items: center;
	display: flex;
	flex-wrap: wrap;
	gap: .65rem;
	grid-column: 1;
}

.tef-speaking-practice {
	border-left: 1px solid var(--tef-line);
	grid-column: 2;
	grid-row: 2 / span 2;
	padding-left: 1rem;
}

.tef-writing-result {
	color: var(--tef-red);
	font-size: .82rem;
	font-weight: 750;
}

.tef-writing-result.is-correct {
	color: #14765b;
}

.tef-integration {
	border: 1px solid #c9d4ef;
	border-radius: 18px;
	box-shadow: 0 10px 30px rgba(39, 57, 113, .08);
	margin-top: 1.5rem;
	overflow: hidden;
}

.tef-integration-body {
	display: grid;
	gap: 1.5rem;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	padding: 1.5rem;
}

.tef-integration-body p {
	color: var(--tef-muted);
	font-size: .9rem;
	margin: 0 0 .75rem;
}

.tef-integration textarea {
	border: 1px solid #bcc7df;
	border-radius: 10px;
	box-sizing: border-box;
	font: inherit;
	margin-bottom: .75rem;
	padding: .8rem;
	width: 100%;
}

.tef-integration-speaking {
	border-left: 1px solid var(--tef-line);
	padding-left: 1.5rem;
}

.tef-introduction-result {
	color: var(--tef-red);
	font-size: .82rem;
	font-weight: 750;
}

.tef-introduction-result.is-correct {
	color: #14765b;
}

.tef-item-playback {
	display: block;
	margin-top: .6rem;
	max-width: 100%;
	width: 100%;
}

.tef-audio,
.tef-record {
	background: transparent;
	border: 1px solid #bcc7df;
	border-radius: 999px;
	color: var(--tef-green);
	cursor: pointer;
	font-weight: 750;
	margin: .25rem .35rem .25rem 0;
	padding: .55rem .9rem;
}

.tef-audio:hover,
.tef-record:hover {
	background: var(--tef-green-light);
}

.tef-audio.is-loading {
	animation: tef-audio-pulse 1s ease-in-out infinite;
	pointer-events: none;
}

.tef-audio.is-playing {
	background: var(--tef-green-light);
	border-color: var(--tef-green);
}

@keyframes tef-audio-pulse {
	0%, 100% { opacity: 1; }
	50% { opacity: .45; }
}

.tef-record.is-recording {
	background: #f8e3df;
	border-color: var(--tef-red);
	color: var(--tef-red);
}

.tef-primary,
.tef-secondary {
	border-radius: 999px;
	cursor: pointer;
	font-weight: 800;
	padding: .85rem 1.25rem;
}

.tef-primary {
	background: linear-gradient(135deg, #3155c6, #5d46cf);
	border: 1px solid var(--tef-green);
	color: white;
}

.tef-secondary {
	background: white;
	border: 1px solid #bcc7df;
	color: var(--tef-green);
}

.tef-next {
	display: block;
	margin: 2rem 0 0 auto;
}

.tef-record-status {
	color: var(--tef-muted);
	display: block;
	font-size: .9rem;
	margin-top: .55rem;
}

.tef-question {
	margin-bottom: 1rem;
	padding: 1.35rem;
}

.tef-test-skill-section {
	background: #f8faff;
	border: 1px solid var(--tef-line);
	border-radius: 20px;
	margin-bottom: 1.5rem;
	padding: 1.1rem;
}

.tef-test-skill-heading {
	align-items: baseline;
	display: flex;
	gap: .75rem;
	justify-content: space-between;
	padding: .15rem .25rem 1rem;
}

.tef-test-skill-heading .tef-skill {
	margin: 0;
}

.tef-test-skill-heading h3 {
	color: var(--tef-ink);
	font-family: Georgia, serif;
	font-size: 1.2rem;
	margin: 0;
}

.tef-question legend {
	font-family: Georgia, serif;
	font-size: 1.25rem;
	font-weight: 700;
	margin-bottom: 1rem;
}

.tef-question-feedback {
	align-items: flex-start;
	border-radius: 12px;
	display: flex;
	flex-wrap: wrap;
	gap: .35rem .65rem;
	line-height: 1.45;
	margin-top: 1rem;
	padding: .8rem .9rem;
}

.tef-question-feedback[hidden] {
	display: none;
}

.tef-question-feedback strong {
	white-space: nowrap;
}

.tef-question-feedback span {
	flex: 1 1 320px;
}

.tef-question-feedback.is-correct {
	background: #eaf7f0;
	color: #16643c;
}

.tef-question-feedback.is-incorrect {
	background: #fff2ee;
	color: #8b3026;
}

.tef-question-feedback .tef-audio {
	margin: -.25rem 0;
}

.tef-question.is-correct {
	border-color: #a8d7bd;
}

.tef-question.is-incorrect {
	border-color: #efb9ae;
}

.tef-test-writing {
	display: block;
	margin-top: .8rem;
	max-width: 420px;
}

.tef-result p {
	margin-bottom: .4rem;
}

.tef-result ul {
	margin-bottom: 0;
}

.tef-option {
	border: 1px solid #e2ddd3;
	border-radius: 12px;
	cursor: pointer;
	display: block;
	margin: .55rem 0;
	padding: .8rem;
}

.tef-option:has(input:checked) {
	background: var(--tef-green-light);
	border-color: var(--tef-green);
}

.tef-result {
	background: var(--tef-green-light);
	border-radius: 16px;
	margin-top: 1rem;
	padding: 1rem 1.25rem;
}

.tef-result > span {
	display: block;
	font-size: .9rem;
	margin-top: .45rem;
}

.tef-review-card {
	align-items: center;
	display: grid;
	gap: 1rem;
	grid-template-columns: 1fr auto;
	margin-bottom: .8rem;
	padding: 1.35rem;
}

.tef-review-card h3,
.tef-review-card p {
	margin: 0;
}

@media (max-width: 720px) {
	.tef-hero,
	.tef-section-heading {
		grid-template-columns: 1fr;
	}

	.tef-lesson-progress-top {
		align-items: stretch;
		flex-direction: column;
		margin: -.75rem .65rem 1rem;
		padding: .65rem .75rem;
	}

	.tef-next-lesson-link {
		align-items: flex-start;
		text-align: left;
	}

	.tef-lesson-progress-top .tef-next-lesson-link {
		border-top: 1px solid var(--tef-line);
		padding-top: .6rem;
	}

	.tef-next-lesson-link strong {
		font-size: .86rem;
	}

	.tef-lesson-progress-bottom .tef-next-lesson-link {
		align-items: flex-end;
		max-width: 100%;
		text-align: right;
	}

	.tef-rule-grid {
		grid-template-columns: 1fr;
	}

	.tef-goal {
		justify-self: start;
	}

	.tef-stage-nav button {
		font-size: .72rem;
		padding: .8rem .25rem;
	}

	.tef-stage-nav span {
		display: flex;
		margin: 0 auto .3rem;
	}

	.tef-phrase-card,
	.tef-phrase-card.is-practice-focused,
	.tef-item-practice-body,
	.tef-phrase-card.is-practice-focused .tef-item-practice-body,
	.tef-integration-body {
		grid-template-columns: 1fr;
	}

	.tef-phrase-learn {
		border-bottom: 1px solid var(--tef-line);
		border-right: 0;
	}

	.tef-learn-panel {
		border-bottom: 1px solid var(--tef-line);
		border-right: 0;
	}

	.tef-phrase-card.is-practice-focused .tef-learn-heading {
	height: auto;
	justify-content: flex-start;
	padding: .8rem 1.25rem;
	writing-mode: horizontal-tb;
	}

	.tef-item-actions,
	.tef-speaking-practice {
		grid-column: 1;
		grid-row: auto;
	}

	.tef-speaking-practice {
		border-left: 0;
		border-top: 1px solid var(--tef-line);
		padding-left: 0;
		padding-top: 1rem;
	}

	.tef-integration-speaking {
		border-left: 0;
		border-top: 1px solid var(--tef-line);
		padding-left: 0;
		padding-top: 1rem;
	}
}

@media (prefers-reduced-motion: reduce) {
	.tef-phrase-card,
	.tef-learn-panel,
	.tef-phrase-learn {
		transition: none;
	}
}

/* Mega nav (A1/A2/B1/B2/Mock Test), replaces the theme header on non-homepage pages. */

body.tef-mega-nav-active header.wp-block-template-part,
body.tef-mega-nav-active footer.wp-block-template-part {
	display: none;
}

body.tef-mega-nav-active #header,
body.tef-mega-nav-active > hr {
	display: none;
}

body.single-post.tef-mega-nav-active,
body.single-post.tef-mega-nav-active #page,
body.single-post.tef-mega-nav-active .tef-mega-nav {
	border-top: 0 !important;
	margin-top: 0 !important;
}

.tef-site-footer {
	border-top: 1px solid var(--tef-line);
	color: var(--tef-muted);
	font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
	font-size: .85rem;
	padding: 2rem 1.5rem;
	text-align: center;
}

.tef-site-footer-links {
	align-items: center;
	display: flex;
	flex-wrap: wrap;
	gap: .9rem 1.25rem;
	justify-content: center;
	margin: 0 0 .85rem;
}

.tef-site-footer-links a {
	color: var(--tef-ink);
	font-weight: 600;
	text-decoration: none;
}

.tef-site-footer-links a:hover,
.tef-site-footer-links a:focus-visible {
	text-decoration: underline;
}

.tef-enquiry {
	background: #fff;
	border: 1px solid var(--tef-line);
	border-radius: 18px;
	margin: 2rem 0;
	padding: clamp(1.1rem, 3vw, 2rem);
}

.tef-enquiry h2 {
	color: var(--tef-ink);
	font-family: Georgia, serif;
	margin-top: 0;
}

.tef-enquiry-form {
	display: grid;
	gap: 1rem;
}

.tef-enquiry-field {
	display: grid;
	gap: .4rem;
}

.tef-enquiry-field label {
	color: var(--tef-ink);
	font-weight: 700;
}

.tef-enquiry-field input,
.tef-enquiry-field select,
.tef-enquiry-field textarea {
	background: #fff;
	border: 1px solid #cbd4e8;
	border-radius: 10px;
	box-sizing: border-box;
	color: var(--tef-ink);
	font: inherit;
	padding: .75rem .85rem;
	width: 100%;
}

.tef-enquiry-field input:focus,
.tef-enquiry-field select:focus,
.tef-enquiry-field textarea:focus {
	border-color: var(--tef-green);
	box-shadow: 0 0 0 3px rgba(49, 85, 198, .14);
	outline: 0;
}

.tef-enquiry-field small {
	color: var(--tef-muted);
	font-size: .8rem;
}

.tef-enquiry-form .tef-primary {
	justify-self: start;
}

.tef-turnstile {
	max-width: 100%;
	min-height: 65px;
}

.tef-enquiry-protection {
	color: var(--tef-muted);
	font-size: .8rem;
	margin: 0;
}

.tef-enquiry-protection.is-local {
	background: #eef3ff;
	border-radius: 10px;
	color: #2447a7;
	padding: .65rem .8rem;
}

.tef-enquiry-challenge {
	background: #f6f8ff;
	border-radius: 12px;
	padding: .85rem;
}

.tef-enquiry-challenge input[type="number"] {
	max-width: 9rem;
}

.tef-enquiry-trap {
	height: 1px;
	left: -10000px;
	overflow: hidden;
	position: absolute;
	top: auto;
	width: 1px;
}

.tef-enquiry-notice {
	border-radius: 10px;
	font-weight: 650;
	margin: 0 0 1rem;
	padding: .75rem .9rem;
}

.tef-enquiry-notice.is-success {
	background: #eaf7ef;
	color: #176238;
}

.tef-enquiry-notice.is-info {
	background: #eef3ff;
	color: #2447a7;
}

.tef-enquiry-notice.is-error {
	background: #fff0ed;
	color: #8b2e20;
}

.tef-mega-nav {
	background: #fff;
	border-bottom: 1px solid var(--tef-line);
	font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
	position: relative;
	z-index: 100;
}

.tef-mega-nav-inner {
	align-items: center;
	display: flex;
	gap: 1.25rem;
	justify-content: flex-start;
	margin: 0 auto;
	max-width: 1280px;
	padding: .45rem 1.1rem;
}

.tef-mega-nav-logo {
	color: var(--tef-ink);
	font-size: .95rem;
	font-weight: 800;
	text-decoration: none;
	white-space: nowrap;
}

.tef-mega-nav-toggle {
	display: none;
}

.tef-mega-nav-tabs {
	display: flex;
	flex-wrap: nowrap;
	gap: 1rem;
	list-style: none;
	margin: 0 0 0 auto;
	overflow-x: auto;
	padding: 0;
	scrollbar-width: none;
}

.tef-mega-nav-tab {
	position: relative;
	flex: 0 0 auto;
	white-space: nowrap;
}

.tef-mega-nav-tabs::-webkit-scrollbar {
	display: none;
}

.tef-mega-nav-trigger {
	background: none;
	border: none;
	color: var(--tef-ink);
	cursor: pointer;
	display: inline-block;
	font-size: .9rem;
	font-weight: 700;
	padding: .35rem 0;
	text-decoration: none;
}

.tef-mega-nav-tab.is-disabled .tef-mega-nav-trigger {
	color: var(--tef-muted);
	cursor: default;
}

/* Full-width flyout, flush under the tab row — not a floating per-tab dropdown. */

.tef-mega-nav-flyout {
	background: var(--tef-cream);
	border-top: 1px solid var(--tef-line);
	box-shadow: 0 16px 24px -12px rgba(23, 33, 61, .1);
	display: none;
	left: 0;
	position: absolute;
	top: 100%;
	width: 100%;
}

.tef-mega-nav-flyout.is-open {
	display: block;
}

.tef-mega-nav-flyout-panel {
	display: none;
	gap: 2.5rem;
	margin: 0 auto;
	max-width: 1280px;
	padding: 1.4rem 1.25rem;
}

.tef-mega-nav-flyout-panel.is-active {
	display: flex;
}

.tef-mega-nav-flyout-panel-soon {
	color: var(--tef-muted);
}

.tef-mega-nav-flyout-panel-soon.is-active {
	display: block;
}

.tef-mega-nav-flyout-panel-soon p {
	margin: 0;
}

.tef-mega-nav-sections {
	display: flex;
	flex-direction: column;
	flex-shrink: 0;
	gap: .25rem;
	list-style: none;
	margin: 0;
	min-width: 220px;
	padding: 0;
}

.tef-mega-nav-section {
	border-radius: 8px;
	color: var(--tef-muted);
	cursor: pointer;
	font-weight: 650;
	padding: .5rem .6rem;
}

.tef-mega-nav-section.is-active,
.tef-mega-nav-section:hover,
.tef-mega-nav-section:focus {
	background: #fff;
	color: var(--tef-green);
	outline: none;
}

.tef-mega-nav-lessons {
	background: #fff;
	border-radius: 12px;
	flex: 1;
	min-width: 0;
	padding: 1.5rem;
}

.tef-mega-nav-lesson-group {
	display: none;
	flex-direction: column;
	gap: .1rem;
	list-style: none;
	margin: 0;
	padding: 0;
}

.tef-mega-nav-lesson-group.is-active {
	display: flex;
}

.tef-mega-nav-lesson-group a {
	color: var(--tef-ink);
	display: block;
	font-size: .92rem;
	padding: .3rem 0;
	text-decoration: none;
}

.tef-mega-nav-lesson-group a:hover {
	color: var(--tef-green);
	text-decoration: underline;
}

@media (max-width: 782px) {
	.tef-mega-nav-inner {
		align-items: center;
		gap: .75rem;
		justify-content: space-between;
		position: relative;
		padding: .75rem 1rem;
	}

	.tef-mega-nav-logo {
		font-size: .95rem;
	}

	.tef-mega-nav-toggle {
		align-items: center;
		background: transparent;
		border: 0;
		cursor: pointer;
		display: inline-flex;
		flex-direction: column;
		gap: .22rem;
		margin-left: auto;
		padding: .2rem;
	}

	.tef-mega-nav-toggle span {
		background: var(--tef-ink);
		border-radius: 999px;
		display: block;
		height: 2px;
		transition: transform .22s ease, opacity .22s ease;
		width: 18px;
	}

	.tef-mega-nav.is-mobile-open .tef-mega-nav-toggle span:nth-child(1) {
		transform: translateY(4px) rotate(45deg);
	}

	.tef-mega-nav.is-mobile-open .tef-mega-nav-toggle span:nth-child(2) {
		opacity: 0;
	}

	.tef-mega-nav.is-mobile-open .tef-mega-nav-toggle span:nth-child(3) {
		transform: translateY(-4px) rotate(-45deg);
	}

	.tef-mega-nav-tabs {
		background: #fff;
		border-top: 1px solid var(--tef-line);
		box-shadow: 0 18px 34px -24px rgba(23, 33, 61, .24);
		display: none;
		flex-direction: column;
		gap: 0;
		left: 0;
		margin: 0;
		padding: .35rem 1rem .5rem;
		position: absolute;
		right: 0;
		top: calc(100% + .05rem);
		width: auto;
		z-index: 120;
	}

	.tef-mega-nav.is-mobile-open .tef-mega-nav-tabs {
		display: flex;
	}

	.tef-mega-nav-tab {
		width: 100%;
	}

	.tef-mega-nav-trigger {
		font-size: .85rem;
		padding: .8rem 0;
		width: 100%;
	}

	.tef-mega-nav-flyout {
		display: none !important;
	}

	.tef-mega-nav-flyout-panel {
		flex-direction: column;
		padding: 1rem;
	}

	.tef-mega-nav-sections {
		flex-direction: row;
		flex-wrap: wrap;
	}
}

/* Mock Test: full simulation / practice-by-section app. */

.tef-final-test-stage {
	display: none;
	margin-top: 1.5rem;
}

.tef-final-test-stage.is-active {
	display: block;
}

.tef-ft-menu {
	display: grid;
	gap: 1.25rem;
	grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
}

.tef-ft-menu-card {
	background: var(--tef-paper);
	border: 1px solid var(--tef-line);
	border-radius: 20px;
	padding: 1.5rem;
}

.tef-ft-menu-card h2 {
	font-family: Georgia, serif;
	font-size: 1.4rem;
	margin: 0 0 .5rem;
}

.tef-ft-menu-card p {
	color: var(--tef-muted);
	margin: 0 0 1.1rem;
}

.tef-ft-config-heading {
	margin-bottom: 1.5rem;
}

.tef-ft-config-heading h2,
.tef-ft-review-layout h2 {
	font-family: Georgia, serif;
	font-size: clamp(1.65rem, 3vw, 2.35rem);
	margin: .25rem 0 .45rem;
}

.tef-ft-config-heading > p:last-child,
.tef-ft-config-step > div:nth-child(2) p {
	color: var(--tef-muted);
	margin: 0;
}

.tef-ft-config-step {
	align-items: start;
	background: white;
	border: 1px solid var(--tef-line);
	border-radius: 18px;
	display: grid;
	gap: 1rem;
	grid-template-columns: auto minmax(180px, .55fr) minmax(360px, 1.45fr);
	margin-bottom: .9rem;
	padding: 1.15rem;
}

.tef-ft-config-step[hidden],
[data-ft-config-screen][hidden],
.tef-ft-config-actions[hidden],
.tef-ft-resume[hidden] {
	display: none !important;
}

.tef-ft-step-number {
	align-items: center;
	background: var(--tef-green-light);
	border-radius: 50%;
	color: var(--tef-green);
	display: flex;
	font-weight: 850;
	height: 2rem;
	justify-content: center;
	width: 2rem;
}

.tef-ft-config-step h3,
.tef-ft-device-check h3 {
	font-family: Georgia, serif;
	font-size: 1.16rem;
	margin: .2rem 0 .3rem;
}

.tef-ft-choice-grid {
	display: grid;
	gap: .55rem;
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.tef-ft-choice-grid-three {
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

.tef-ft-choice-grid-four {
	grid-template-columns: repeat(4, minmax(0, 1fr));
}

.tef-ft-choice {
	background: #fff;
	border: 1px solid #cbd5ec;
	border-radius: 13px;
	color: var(--tef-ink);
	cursor: pointer;
	min-height: 72px;
	padding: .75rem;
	text-align: left;
	transition: background-color .18s ease, border-color .18s ease, transform .18s ease;
}

.tef-ft-choice:hover:not(:disabled) {
	border-color: #7890d4;
	transform: translateY(-1px);
}

.tef-ft-choice.is-selected {
	background: var(--tef-green-light);
	border-color: var(--tef-green);
	box-shadow: inset 0 0 0 1px var(--tef-green);
}

.tef-ft-choice strong,
.tef-ft-choice span {
	display: block;
}

.tef-ft-choice strong {
	font-size: .95rem;
}

.tef-ft-choice span {
	color: var(--tef-muted);
	font-size: .75rem;
	margin-top: .22rem;
}

.tef-ft-choice.is-disabled {
	background: #f5f6fa;
	cursor: not-allowed;
	opacity: .62;
}

.tef-ft-subchoice {
	grid-column: 3;
	margin-top: .35rem;
}

.tef-ft-subchoice h4 {
	font-size: .75rem;
	letter-spacing: .08em;
	margin: 0 0 .45rem;
	text-transform: uppercase;
}

.tef-ft-config-actions {
	display: flex;
	justify-content: flex-end;
	margin-top: 1rem;
}

.tef-ft-review-layout {
	display: grid;
	gap: 1.5rem;
	grid-template-columns: 1.4fr .6fr;
}

.tef-ft-back {
	background: transparent;
	border: 0;
	color: var(--tef-green);
	cursor: pointer;
	font-weight: 750;
	margin: 0 0 1rem;
	padding: 0;
}

.tef-ft-summary {
	display: grid;
	gap: .55rem;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	margin-top: 1rem;
}

.tef-ft-summary div {
	background: white;
	border: 1px solid var(--tef-line);
	border-radius: 12px;
	padding: .75rem;
}

.tef-ft-summary small,
.tef-ft-summary strong {
	display: block;
}

.tef-ft-summary small {
	color: var(--tef-muted);
	font-size: .68rem;
	font-weight: 800;
	letter-spacing: .07em;
	text-transform: uppercase;
}

.tef-ft-device-check {
	background: var(--tef-sky);
	border-radius: 16px;
	display: grid;
	gap: .55rem;
	padding: 1rem;
}

.tef-ft-device-check .tef-secondary {
	padding: .6rem .85rem;
}

.tef-ft-device-check span {
	color: var(--tef-muted);
	font-size: .76rem;
}

.tef-ft-device-check span.is-ready {
	color: #18734b;
	font-weight: 750;
}

.tef-ft-start-row {
	align-items: center;
	border-top: 1px solid var(--tef-line);
	display: flex;
	gap: 1rem;
	justify-content: space-between;
	margin-top: 1.4rem;
	padding-top: 1rem;
}

.tef-ft-start-row p {
	color: var(--tef-muted);
	font-size: .84rem;
	margin: 0;
}

.tef-ft-resume {
	align-items: center;
	background: #edf3ff;
	border: 1px solid #b9c9ee;
	border-radius: 14px;
	display: flex;
	gap: 1rem;
	justify-content: space-between;
	margin-bottom: 1rem;
	padding: .9rem 1rem;
}

.tef-ft-resume span {
	color: var(--tef-muted);
	display: block;
	font-size: .8rem;
}

.tef-ft-resume .tef-primary,
.tef-ft-resume .tef-secondary {
	padding: .55rem .85rem;
}

.tef-ft-menu-grid {
	display: grid;
	gap: .6rem;
	grid-template-columns: repeat(2, 1fr);
}

.tef-ft-menu-grid .tef-secondary {
	background: white;
	border: 1px solid var(--tef-line);
	color: var(--tef-ink);
	font-size: .92rem;
	width: 100%;
}

.tef-ft-disclaimer {
	background: var(--tef-cream);
	border-radius: 14px;
	color: var(--tef-muted);
	font-size: .88rem;
	line-height: 1.5;
	margin-top: 1.5rem;
	padding: 1rem 1.25rem;
}

.tef-ft-section-header {
	border-bottom: 1px solid var(--tef-line);
	margin-bottom: 1.5rem;
	padding-bottom: 1.25rem;
}

.tef-ft-section-header h2 {
	font-family: Georgia, serif;
	font-size: 1.7rem;
	margin: 0 0 .4rem;
}

.tef-ft-section-header p {
	color: var(--tef-muted);
	margin: 0 0 .75rem;
}

.tef-ft-timer {
	align-items: center;
	background: white;
	border: 1px solid var(--tef-line);
	border-radius: 999px;
	display: inline-flex;
	font-weight: 700;
	gap: .4rem;
	padding: .5rem 1rem;
}

.tef-ft-timer strong {
	font-variant-numeric: tabular-nums;
}

.tef-ft-timer strong.is-urgent {
	color: var(--tef-red);
}

.tef-ft-group-title {
	color: var(--tef-ink);
	font-family: Georgia, serif;
	font-size: 1.25rem;
	margin: 2rem 0 1rem;
}

.tef-ft-item,
.tef-ft-passage,
.tef-ft-dialogue {
	background: var(--tef-paper);
	border: 1px solid var(--tef-line);
	border-radius: 16px;
	margin-bottom: 1rem;
	padding: 1.25rem;
}

.tef-ft-passage .tef-ft-item {
	background: white;
	margin-top: 1rem;
}

.tef-ft-text {
	color: var(--tef-ink);
	line-height: 1.65;
	white-space: pre-line;
}

.tef-ft-instructions {
	color: var(--tef-muted);
	font-style: italic;
}

.tef-ft-question {
	font-weight: 700;
	margin: 0 0 .75rem;
}

.tef-ft-play {
	background: white;
	border: 1px solid var(--tef-line);
	border-radius: 999px;
	color: var(--tef-green);
	cursor: pointer;
	font-weight: 750;
	margin-bottom: .85rem;
	padding: .5rem .9rem;
}

.tef-ft-play:hover:not(:disabled) {
	background: var(--tef-green-light);
}

.tef-ft-play.is-played,
.tef-ft-play:disabled {
	color: var(--tef-muted);
	cursor: default;
	opacity: .7;
}

.tef-ft-options {
	display: grid;
	gap: .5rem;
}

.tef-ft-option {
	align-items: center;
	background: white;
	border: 1px solid var(--tef-line);
	border-radius: 12px;
	cursor: pointer;
	display: flex;
	gap: .6rem;
	padding: .65rem .9rem;
}

.tef-ft-option:has(input:checked) {
	background: var(--tef-green-light);
	border-color: var(--tef-green);
}

.tef-ft-writing-area {
	border: 1px solid var(--tef-line);
	border-radius: 14px;
	box-sizing: border-box;
	font: inherit;
	margin-top: 1rem;
	padding: 1rem;
	width: 100%;
}

.tef-ft-word-count {
	color: var(--tef-muted);
	font-size: .88rem;
	font-weight: 700;
}

.tef-ft-record-status {
	color: var(--tef-muted);
	display: inline-block;
	margin-left: .75rem;
}

.tef-ft-checklist {
	background: var(--tef-sky);
	border-radius: 14px;
	margin-top: 1rem;
	padding: 1.1rem 1.3rem;
}

.tef-ft-checklist strong {
	display: block;
	margin-bottom: .5rem;
}

.tef-ft-checklist ul {
	margin: 0;
	padding-left: 1.2rem;
}

.tef-ft-checklist li {
	color: var(--tef-ink);
	margin-bottom: .3rem;
}

.tef-ft-submit {
	margin-top: 1.25rem;
}

.tef-ft-results {
	display: grid;
	gap: 1rem;
	grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
}

.tef-ft-result-card {
	background: var(--tef-paper);
	border: 1px solid var(--tef-line);
	border-radius: 16px;
	padding: 1.25rem;
}

.tef-ft-result-card h3 {
	font-family: Georgia, serif;
	margin: 0 0 .5rem;
}

.tef-ft-band {
	color: var(--tef-muted);
	font-size: .9rem;
}

@media (max-width: 720px) {
	.tef-ft-menu-grid {
		grid-template-columns: 1fr;
	}

	.tef-ft-config-step {
		grid-template-columns: auto 1fr;
		padding: .9rem;
	}

	.tef-ft-config-step > .tef-ft-choice-grid,
	.tef-ft-subchoice {
		grid-column: 1 / -1;
	}

	.tef-ft-choice-grid,
	.tef-ft-choice-grid-three,
	.tef-ft-choice-grid-four,
	.tef-ft-summary,
	.tef-ft-review-layout {
		grid-template-columns: 1fr;
	}

	.tef-ft-choice-grid-four {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.tef-ft-start-row,
	.tef-ft-resume {
		align-items: stretch;
		flex-direction: column;
	}

	.tef-ft-resume > div:last-child {
		display: flex;
		gap: .5rem;
	}
}

/* Final homepage density pass. Kept at the end so legacy homepage media rules
 * cannot reintroduce the old oversized padding or card heights. */
.home .tef-roadmap {
	max-width: 1320px;
	padding: clamp(.75rem, 1.5vw, 1.25rem);
}

.home .tef-home-intro {
	padding: clamp(.8rem, 1.6vw, 1.25rem) .5rem clamp(.6rem, 1vw, .85rem);
}

.home .tef-home-intro > p {
	color: #63708a;
	font-size: clamp(.66rem, .9vw, .78rem);
	font-weight: 850;
	letter-spacing: .11em;
	line-height: 1.35;
	margin-top: .75rem;
	text-transform: uppercase;
}

.home .tef-home-intro + .tef-home-journey {
	padding-top: .5rem;
}

.home .tef-journey-grid {
	align-items: stretch;
	gap: .5rem;
}

.home .tef-journey-card {
	min-height: 0;
	padding: .75rem;
}

.home .tef-journey-card h3 {
	margin-top: .9rem;
}

.home .tef-journey-card b {
	margin-top: .75rem;
}

/* Keep the A1–B2 navigation cards visually consistent at every viewport. */
.home .tef-journey-card:not(.tef-journey-mock) {
	align-items: center;
	background: linear-gradient(145deg, #edf2ff, #e2eaff);
	box-shadow: 0 8px 20px rgba(49, 85, 198, .08);
	text-align: center;
}

.home .tef-journey-card:not(.tef-journey-mock) h3 {
	font-size: 1.08rem;
	font-weight: 750;
	margin: .75rem 0 0;
}

.home .tef-journey-card:not(.tef-journey-mock) p {
	font-size: .82em;
	line-height: 1.42;
	margin: .35rem 0 0;
}

.home .tef-journey-card:not(.tef-journey-mock) b {
	background: rgba(49, 85, 198, .09);
	border-radius: 999px;
	margin-top: .6rem;
	padding: .32rem .6rem;
}

.home .tef-journey-mock {
	align-items: center;
	text-align: center;
}

.home .tef-journey-mock h3 {
	margin: .75rem 0 0;
}

.home .tef-journey-mock p {
	font-size: .82em;
	margin: .35rem 0 0;
}

.home .tef-home-articles {
	margin: clamp(1.25rem, 2.5vw, 2rem) 0 .5rem;
}

.home .tef-home-articles > header {
	border-bottom: 1px solid #dfe4ee;
	margin-bottom: .75rem;
	padding-bottom: .65rem;
}

.home .tef-home-articles > header > p {
	color: #d29a00;
	font-size: .65rem;
	font-weight: 850;
	letter-spacing: .12em;
	margin: 0 0 .25rem;
	text-transform: uppercase;
}

.home .tef-home-articles h2 {
	color: var(--tef-ink);
	font-family: Georgia, serif;
	font-size: clamp(1.55rem, 2.5vw, 2.3rem);
	letter-spacing: -.035em;
	line-height: 1;
	margin: 0;
}

.home .tef-article-feed {
	background: #f7f8fb;
	border-radius: 20px;
	padding: .25rem .9rem;
}

.home .tef-article-row {
	align-items: center;
	border-bottom: 1px solid #dfe4ee;
	display: block;
	padding: .75rem 0;
}

.home .tef-article-row:last-child {
	border-bottom: 0;
}

.home .tef-article-copy {
	min-width: 0;
}

.home .tef-article-copy h3 {
	font-size: clamp(1rem, 1.55vw, 1.35rem);
	line-height: 1.18;
	margin: 0;
}

.home .tef-article-copy h3 a {
	color: var(--tef-ink);
	text-decoration: none;
}

.home .tef-article-copy h3 a:hover,
.home .tef-article-copy h3 a:focus-visible {
	color: #3155c6;
}

.home .tef-article-excerpt {
	color: #63708a;
	font-size: .78rem;
	line-height: 1.45;
	margin: .35rem 0;
}

.home .tef-article-meta {
	color: #7a8499;
	font-size: .65rem;
	margin: 0;
}

.home .tef-site-footer {
	padding: .85rem .75rem 1rem;
}

@media (max-width: 720px) {
	.home #wp--skip-link--target,
	.home #wp--skip-link--target > .wp-block-group,
	.home .entry-content {
		margin-left: 0 !important;
		margin-right: 0 !important;
		padding-left: 0 !important;
		padding-right: 0 !important;
		width: 100% !important;
	}

	.home .tef-roadmap {
		padding: .4rem .45rem 1rem;
	}

	.home .tef-home-intro {
		padding: .7rem .15rem .55rem;
	}

	.home .tef-roadmap .tef-home-intro h1 {
		font-size: 1.55rem;
		letter-spacing: -.045em;
		white-space: nowrap;
	}

	.home .tef-home-intro > p {
		font-size: .5rem;
		letter-spacing: .055em;
		margin-top: .45rem;
	}

	.home .tef-home-intro + .tef-home-journey {
		padding-top: .35rem;
	}

	.home .tef-journey-grid {
		gap: .45rem;
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.home .tef-journey-card,
	.home .tef-journey-mock {
		grid-column: auto;
		min-height: 0;
		padding: .7rem;
	}

	.home .tef-journey-card:not(.tef-journey-mock) {
		padding: .7rem;
	}

	.home .tef-journey-mock {
		grid-column: 1 / -1;
		min-height: 0;
	}

	.home .tef-journey-level {
		font-size: 1.4rem;
	}

	.home .tef-journey-card small {
		font-size: .48rem;
		margin-top: .3rem;
	}

	.home .tef-journey-card h3 {
		font-size: .9rem;
		margin: .55rem 0 0;
	}

	.home .tef-journey-card:not(.tef-journey-mock) p {
		display: block;
		font-size: .82em;
		line-height: 1.38;
		margin: .35rem 0 0;
	}

	.home .tef-journey-card b {
		font-size: .66rem;
		margin-top: .7rem;
	}

	.home .tef-journey-card:not(.tef-journey-mock) b {
		background: rgba(49, 85, 198, .09);
		border-radius: 999px;
		margin-top: .65rem;
		padding: .3rem .55rem;
	}

	.home .tef-journey-mock p {
		font-size: .82em;
		max-width: 28rem;
	}

	.home .tef-home-articles {
		margin-top: 1rem;
	}

	.home .tef-home-articles > header {
		margin-bottom: .55rem;
		padding: 0 .25rem .55rem;
	}

	.home .tef-article-feed {
		border-radius: 16px;
		padding: .15rem .65rem;
	}

	.home .tef-article-row {
		padding: .65rem 0;
	}

	.home .tef-article-copy h3 {
		font-size: .86rem;
	}

	.home .tef-article-excerpt {
		display: none;
	}

	.home .tef-article-meta {
		font-size: .54rem;
	}
}

@media (max-width: 380px) {
	.home .tef-roadmap .tef-home-intro h1 {
		font-size: 1.4rem;
	}

	.home .tef-home-intro > p {
		font-size: .46rem;
	}

	.home .tef-journey-card {
		padding: .65rem;
	}

	.home .tef-journey-card h3 {
		font-size: .86rem;
	}

	.home .tef-journey-card:not(.tef-journey-mock) p {
		font-size: .82em;
	}
}

/* Editorial guides: a calm reading layout with a useful, non-intrusive sidebar. */
.tef-guide-page {
	background: #fff;
	color: var(--tef-ink);
	border-top: 0;
	padding: .7rem 1.25rem 2.25rem;
}

.tef-guide-shell {
	margin: 0 auto;
	max-width: 1180px;
}

.tef-guide-breadcrumb {
	align-items: center;
	color: #7a8499;
	display: flex;
	font-size: .78rem;
	gap: .55rem;
	margin: 0 auto .9rem;
	max-width: 1100px;
}

.tef-guide-breadcrumb a {
	color: #3155c6;
	font-weight: 750;
	text-decoration: none;
}

.tef-guide-layout {
	align-items: start;
	display: grid;
	gap: 2rem;
	grid-template-columns: minmax(0, 760px) 280px;
	justify-content: center;
}

.tef-guide-header {
	border-bottom: 1px solid #e2e6ef;
	margin-bottom: 1.15rem;
	padding-bottom: 1rem;
}

.tef-guide-eyebrow {
	color: #d29a00;
	font-size: .68rem;
	font-weight: 850;
	letter-spacing: .13em;
	margin: 0 0 .7rem;
	text-transform: uppercase;
}

.tef-guide-header h1 {
	color: var(--tef-ink);
	font-family: Georgia, 'Times New Roman', serif;
	font-size: clamp(2.4rem, 4.4vw, 4rem);
	font-weight: 500;
	letter-spacing: -.045em;
	line-height: .99;
	margin: 0;
	max-width: 850px;
}

.tef-guide-dek {
	color: #63708a;
	font-size: clamp(1rem, 1.7vw, 1.3rem);
	line-height: 1.45;
	margin: .85rem 0 0;
	max-width: 680px;
}

.tef-guide-meta {
	align-items: center;
	color: #7a8499;
	display: flex;
	flex-wrap: wrap;
	font-size: .75rem;
	gap: .45rem;
	margin-top: .75rem;
}

.tef-guide-content {
	color: #202b45;
	font-size: 1.06rem;
	line-height: 1.75;
	padding: 0;
}

.tef-guide-page .tef-guide-content > p:not(.tef-guide-meta) {
	color: inherit;
	font-size: inherit;
	line-height: inherit;
}

.tef-guide-content > p:first-child {
	font-size: 1.18rem;
	line-height: 1.65;
}

.tef-guide-content h2 {
	color: var(--tef-ink);
	font-family: Georgia, 'Times New Roman', serif;
	font-size: clamp(1.55rem, 2.8vw, 2.1rem);
	font-weight: 500;
	letter-spacing: -.03em;
	line-height: 1.1;
	margin: 2.4rem 0 .65rem;
}

.tef-guide-content .tef-guide-inline-heading {
	color: var(--tef-ink);
	font-size: 1rem;
	line-height: 1.35;
	margin: 1.65rem 0 .35rem;
}

.tef-guide-content .tef-guide-inline-heading strong {
	font-weight: 750;
}

.tef-guide-content p { margin: 0 0 1.1rem; }
.tef-guide-content ol { margin: 0 0 1.25rem 1.25rem; padding-left: 1rem; }
.tef-guide-content li { margin: .45rem 0; padding-left: .2rem; }
.tef-guide-content em { color: inherit; font-style: italic; font-weight: inherit; }
.tef-guide-content strong { color: inherit; }

.tef-guide-sidebar {
	position: sticky;
	top: .75rem;
	padding-bottom: .7rem;
}

.tef-guide-sidebar-card {
	background: #5531e8;
	border-radius: 0;
	box-shadow: 0 1rem 0 #f4fb64;
	padding: 1.35rem 1.2rem 1.15rem;
}

.tef-guide-sidebar-heading {
	align-items: start;
	display: flex;
	justify-content: space-between;
	margin-bottom: .8rem;
}

.tef-guide-sidebar-card h2 {
	color: #fff;
	font-family: inherit;
	font-size: 2rem;
	font-weight: 850;
	letter-spacing: -.05em;
	line-height: .95;
	margin: 0;
}

.tef-guide-sidebar-heading > span {
	align-items: center;
	background: #f4fb64;
	color: #5531e8;
	display: flex;
	font-size: 1.6rem;
	font-weight: 800;
	height: 4rem;
	justify-content: center;
	width: 4rem;
}

.tef-guide-sidebar-card ul { list-style: none; margin: 0; padding: 0; }
.tef-guide-sidebar-card li { border-top: 1px solid rgba(255,255,255,.35); padding: .85rem 0 .85rem 1.45rem; position: relative; }
.tef-guide-sidebar-card li::before { background: #fff; content: ''; height: .45rem; left: 0; position: absolute; top: 1.2rem; width: .45rem; }
.tef-guide-sidebar-card a { color: #fff; font-size: .88rem; font-weight: 750; line-height: 1.3; text-decoration: none; }
.tef-guide-sidebar-card a:hover { color: #f4fb64; }

body.single-post.tef-mega-nav-active hr,
body.single-post.tef-mega-nav-active #footer,
body.single-post.tef-mega-nav-active .site-footer,
body.single-post.tef-mega-nav-active footer.wp-block-template-part {
	display: none !important;
}

body.single-post.tef-mega-nav-active,
body.single-post.tef-mega-nav-active #page,
body.single-post.tef-mega-nav-active .tef-mega-nav {
	border-top: 0 !important;
	margin-top: 0 !important;
}

@media (max-width: 850px) {
	.tef-guide-layout { grid-template-columns: minmax(0, 760px); }
	.tef-guide-sidebar { position: static; }
	.tef-guide-sidebar-card ul { display: grid; gap: 0 1rem; grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 560px) {
	.tef-guide-page { padding: .55rem .85rem 1.5rem; }
	.tef-guide-breadcrumb { font-size: .68rem; margin-bottom: .65rem; }
	.tef-guide-header h1 { font-size: 2.35rem; }
	.tef-guide-dek { font-size: 1rem; }
	.tef-guide-content { font-size: .98rem; line-height: 1.68; }
	.tef-guide-content > p:first-child { font-size: 1.05rem; }
	.tef-guide-content h2 { font-size: 1.55rem; margin-top: 2rem; }
	.tef-guide-sidebar-card ul { grid-template-columns: 1fr; }
}

/* Shared archive/search presentation: text-first, compact and easy to scan. */
.tef-guide-index-page {
	background: #fff;
	color: var(--tef-ink);
	padding: .7rem 1.25rem 2.5rem;
}

.tef-guide-index-shell {
	margin: 0 auto;
	max-width: 1080px;
}

.tef-guide-index-breadcrumb {
	align-items: center;
	color: #7a8499;
	display: flex;
	font-size: .75rem;
	gap: .55rem;
	margin-bottom: 1rem;
}

.tef-guide-index-breadcrumb a {
	color: #3155c6;
	font-weight: 750;
	text-decoration: none;
}

.tef-guide-index-header {
	align-items: end;
	border-bottom: 1px solid #e2e6ef;
	display: grid;
	gap: 1.25rem;
	grid-template-columns: minmax(0, 1fr) auto;
	padding-bottom: 1.15rem;
}

.tef-guide-index-header > div > p:first-child {
	color: #d29a00;
	font-size: .68rem;
	font-weight: 850;
	letter-spacing: .13em;
	margin: 0 0 .35rem;
	text-transform: uppercase;
}

.tef-guide-index-header h1 {
	color: var(--tef-ink);
	font-family: Georgia, 'Times New Roman', serif;
	font-size: clamp(2.15rem, 4.5vw, 3.8rem);
	font-weight: 500;
	letter-spacing: -.045em;
	line-height: 1;
	margin: 0;
}

.tef-guide-index-intro {
	color: #63708a;
	font-size: .92rem;
	line-height: 1.5;
	margin: .6rem 0 0;
	max-width: 660px;
}

.tef-guide-search {
	display: flex;
	margin: 0;
}

.tef-guide-search input {
	background: #f5f7fb;
	border: 1px solid #dfe4ee;
	border-radius: 999px 0 0 999px;
	color: var(--tef-ink);
	font: inherit;
	font-size: .82rem;
	min-width: 210px;
	outline: none;
	padding: .7rem .9rem;
}

.tef-guide-search input:focus { border-color: #3155c6; }

.tef-guide-search button {
	background: #3155c6;
	border: 0;
	border-radius: 0 999px 999px 0;
	color: #fff;
	cursor: pointer;
	font: inherit;
	font-size: .78rem;
	font-weight: 800;
	padding: .7rem 1rem;
}

.tef-guide-index-list {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.tef-guide-index-item {
	border-bottom: 1px solid #e2e6ef;
	min-width: 0;
	padding: 1.35rem 1.4rem 1.35rem 0;
}

.tef-guide-index-item:nth-child(even) {
	border-left: 1px solid #e2e6ef;
	padding-left: 1.4rem;
	padding-right: 0;
}

.tef-guide-index-meta {
	align-items: center;
	color: #7a8499;
	display: flex;
	font-size: .68rem;
	gap: .4rem;
	margin-bottom: .45rem;
}

.tef-guide-index-item h2 {
	font-family: Georgia, 'Times New Roman', serif;
	font-size: clamp(1.35rem, 2.3vw, 1.8rem);
	font-weight: 500;
	letter-spacing: -.025em;
	line-height: 1.12;
	margin: 0;
}

.tef-guide-index-item h2 a {
	color: var(--tef-ink);
	text-decoration: none;
}

.tef-guide-index-item > p {
	color: #63708a;
	font-size: .82rem;
	line-height: 1.55;
	margin: .65rem 0 .75rem;
}

.tef-guide-index-read {
	color: #3155c6;
	font-size: .76rem;
	font-weight: 800;
	text-decoration: none;
}

.tef-guide-pagination { margin-top: 1.5rem; }
.tef-guide-pagination .page-numbers { align-items: center; display: flex; flex-wrap: wrap; gap: .45rem; justify-content: center; list-style: none; margin: 0; padding: 0; }
.tef-guide-pagination .page-numbers a,
.tef-guide-pagination .page-numbers span {
	align-items: center;
	background: #f1f4fb;
	border-radius: 999px;
	color: #3155c6;
	display: inline-flex;
	font-size: .76rem;
	font-weight: 800;
	justify-content: center;
	min-height: 2.25rem;
	min-width: 2.25rem;
	padding: .45rem .75rem;
	text-decoration: none;
}
.tef-guide-pagination .page-numbers .current { background: #3155c6; color: #fff; }

.tef-guide-empty { padding: 2rem 0; }
.tef-guide-empty h2 { font-family: Georgia, serif; font-size: 1.8rem; margin: 0 0 .5rem; }
.tef-guide-empty p { color: #63708a; margin: 0 0 .8rem; }
.tef-guide-empty a { color: #3155c6; font-weight: 800; text-decoration: none; }

.tef-home-guides-link { margin: 1rem 0 0; text-align: right; }
.tef-home-guides-link a { color: #3155c6; font-size: .78rem; font-weight: 800; text-decoration: none; }

body.tef-editorial-index-active hr,
body.tef-editorial-index-active #header,
body.tef-editorial-index-active #footer,
body.tef-editorial-index-active .site-footer,
body.tef-editorial-index-active footer.wp-block-template-part {
	display: none !important;
}

body.tef-editorial-index-active,
body.tef-editorial-index-active #page,
body.tef-editorial-index-active .tef-mega-nav {
	border-top: 0 !important;
	margin-top: 0 !important;
}

@media (max-width: 720px) {
	.tef-guide-index-header { align-items: stretch; grid-template-columns: 1fr; }
	.tef-guide-search input { min-width: 0; width: 100%; }
	.tef-guide-index-list { grid-template-columns: 1fr; }
	.tef-guide-index-item,
	.tef-guide-index-item:nth-child(even) { border-left: 0; padding: 1.1rem 0; }
}

@media (max-width: 560px) {
	.tef-guide-index-page { padding: .55rem .85rem 1.75rem; }
	.tef-guide-index-breadcrumb { font-size: .68rem; margin-bottom: .65rem; }
	.tef-guide-index-header { gap: .85rem; padding-bottom: .9rem; }
	.tef-guide-index-header h1 { font-size: 2.2rem; }
	.tef-guide-index-item h2 { font-size: 1.45rem; }
}
