/*
Theme Name: ToLearn
Theme URI: https://tolearn.jp
Description: tolearn.jp 向けのシンプルなハイブリッドブロックテーマ。固定ページはブロックテンプレート、模試画面は header.php / footer.php の外枠を使う。
Requires at least: 6.6
Tested up to: 7.1
Requires PHP: 8.0
Version: 1.2.2
Text Domain: tolearn
*/

/* 旧テーマと同じく、幅の計算に padding を含める。これがないと幅 100% のボタンが親の外にはみ出す。 */
:where(*),
:where(*::before),
:where(*::after) {
	box-sizing: border-box;
}

/* スマホで模試カードのボタンが横の間隔分だけ右にずれるのを防ぐ。 */
@media (max-width: 768px) {
	.examportal-screen .tvs-exam-actions {
		flex-direction: column;
		align-items: stretch;
		column-gap: 0 !important;
		row-gap: 10px !important;
		width: 100%;
	}

	.examportal-screen .tvs-exam-actions > .tvs-btn {
		display: block !important;
		width: auto !important;
		max-width: 100%;
		margin: 0 !important;
		align-self: stretch;
		box-sizing: border-box;
		text-align: center;
	}
}

/* 模試プラグインのボタン（.tvs-btn 等）には当てない。 */
.wp-block-button__link {
	background-color: var(--wp--preset--color--accent);
	color: #ffffff;
	border-radius: 999px;
	padding: 0.7rem 1.25rem;
	text-decoration: none;
}

.wp-block-button.is-style-outline .wp-block-button__link {
	background-color: transparent;
	color: var(--wp--preset--color--accent);
	border: 1px solid var(--wp--preset--color--accent);
}

/* 中身が短いときもフッターをウィンドウの一番下に置く。受験画面は対象外。 */
body:not(.examportal-screen) {
	display: flex;
	flex-direction: column;
	min-height: 100vh;
	min-height: 100dvh;
}

body:not(.examportal-screen) > .wp-site-blocks {
	display: flex;
	flex-direction: column;
	flex: 1 0 auto;
	width: 100%;
	min-height: 100vh;
	min-height: 100dvh;
}

body:not(.examportal-screen) > .wp-site-blocks > main,
body:not(.examportal-screen) > main {
	flex: 1 0 auto;
}

body.admin-bar:not(.examportal-screen),
body.admin-bar:not(.examportal-screen) > .wp-site-blocks {
	min-height: calc(100vh - 32px);
	min-height: calc(100dvh - 32px);
}

@media (max-width: 782px) {
	body.admin-bar:not(.examportal-screen),
	body.admin-bar:not(.examportal-screen) > .wp-site-blocks {
		min-height: calc(100vh - 46px);
		min-height: calc(100dvh - 46px);
	}
}

.site-header,
.site-footer {
	background: var(--wp--preset--color--surface);
}

.site-header {
	background: #09294f;
}

.site-footer {
	border-top: 1px solid var(--wp--preset--color--line);
	color: var(--wp--preset--color--muted);
	font-size: 0.875rem;
}

.site-footer__inner {
	box-sizing: border-box;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	width: 100%;
	max-width: 1200px;
	margin: 0 auto;
	padding: 1rem 1.25rem;
}

.site-header__inner {
	box-sizing: border-box;
	display: flex;
	flex-wrap: nowrap;
	align-items: center;
	justify-content: flex-start;
	gap: 1rem;
	width: 100%;
	max-width: 1200px;
	margin: 0 auto;
	padding: 1rem 1.25rem;
}

.site-footer__inner {
	padding-top: 1.5rem;
	padding-bottom: 2rem;
}

.site-header__brand {
	display: flex;
	flex: 0 0 auto;
	min-height: 44px;
	align-items: center;
	width: 176px;
	line-height: 0;
}

.site-header__brand img {
	display: block;
	width: 100%;
	height: auto;
}

.site-header__inner > .wp-block-shortcode {
	flex: 0 0 auto;
	margin: 0;
}

.site-header__inner > .site-header__account {
	flex: 0 0 auto;
	margin-left: auto;
}

.site-header .site-global-nav {
	display: flex;
	align-items: center;
	flex: 1 1 auto;
	justify-content: flex-start;
	min-width: 44px;
	margin-left: auto;
}

.site-header .site-global-nav .wp-block-navigation__container {
	gap: 0.5rem;
}

.site-header .site-global-nav .wp-block-navigation-item__content,
.site-header__account-link {
	box-sizing: border-box;
	display: inline-flex;
	min-width: 44px;
	min-height: 44px;
	align-items: center;
	justify-content: center;
	padding: 0.5rem 0.75rem;
	border-radius: 4px;
	color: #ffffff;
	font-size: 1rem;
	font-weight: 700;
	line-height: 1.5;
	text-decoration: none;
}

.site-header .site-global-nav .wp-block-navigation-item__content {
	color: #f8f5ee;
}

.site-header .site-global-nav .wp-block-navigation-item__content:hover {
	text-decoration: underline;
}

.site-header .site-header__account {
	flex: 0 0 auto;
}

.site-header .site-header__account-link--login {
	padding-right: 1rem;
	padding-left: 1rem;
	background: #ffffff;
	color: #09294f !important;
}

.site-header .site-header__account-link--login:hover {
	background: #f8f5ee;
	color: #09294f !important;
}

.site-header .site-header__account-link--mypage:hover {
	text-decoration: underline;
}

.site-header .site-global-nav a:focus-visible,
.site-header__account-link:focus-visible,
.site-header .wp-block-navigation__responsive-container-open:focus-visible,
.site-header .wp-block-navigation__responsive-container-close:focus-visible,
.site-header__brand:focus-visible {
	outline: 2px solid #ffffff;
	outline-offset: 3px;
}

.site-header .wp-block-navigation__responsive-container-open,
.site-header .wp-block-navigation__responsive-container-close {
	box-sizing: border-box;
	display: inline-flex;
	min-width: 44px;
	min-height: 44px;
	align-items: center;
	justify-content: center;
	border: 1px solid #f8f5ee;
	border-radius: 4px;
	color: #f8f5ee;
}

.site-header .wp-block-navigation__responsive-container-open {
	display: none;
}

.site-header .wp-block-navigation__responsive-container-open svg,
.site-header .wp-block-navigation__responsive-container-close svg {
	fill: currentColor;
}

.site-header .site-global-nav .wp-block-navigation__responsive-container.is-menu-open {
	box-sizing: border-box;
	background: #09294f;
	color: #f8f5ee;
}

.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-close {
	color: #f8f5ee !important;
}

.site-header .site-mobile-menu .wp-block-navigation-overlay-close {
	box-sizing: border-box;
	display: inline-flex;
	min-width: 44px;
	min-height: 44px;
	align-items: center;
	color: #f8f5ee;
}

.site-header .site-mobile-menu .wp-block-navigation-overlay-close svg {
	fill: currentColor;
}

.site-header .site-mobile-menu .wp-block-navigation-overlay-close:focus-visible {
	outline: 2px solid #ffffff;
	outline-offset: 3px;
}

.site-header__no-js-nav {
	display: none;
}

.site-header__inner > noscript {
	display: none;
}

.site-header__no-js-nav ul {
	box-sizing: border-box;
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
	width: 100%;
	margin: 0;
	padding: 0;
	list-style: none;
}

.site-header__no-js-nav a {
	box-sizing: border-box;
	display: inline-flex;
	min-width: 44px;
	min-height: 44px;
	align-items: center;
	padding: 0.5rem 1rem;
	border-radius: 4px;
	color: #f8f5ee;
	font-weight: 700;
	text-decoration: none;
}

.site-header__no-js-nav .site-header__account,
.site-header__no-js-nav .site-header__account-link {
	width: 100%;
}

.site-header__no-js-nav .site-header__account-link--login {
	background: #ffffff;
	color: #09294f !important;
}

.site-header__no-js-nav a:focus-visible {
	outline: 2px solid #ffffff;
	outline-offset: 3px;
}

.site-mobile-menu__links {
	box-sizing: border-box;
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
	width: 100%;
	margin: 0;
	padding: 0;
	list-style: none;
}

.site-mobile-menu__links a,
.site-mobile-menu .site-header__account,
.site-mobile-menu .site-header__account-link {
	width: 100%;
}

.site-mobile-menu__links a,
.site-mobile-menu .site-header__account-link {
	min-height: 44px;
	justify-content: flex-start;
	padding: 0.5rem 1rem;
	border-radius: 4px;
	color: #f8f5ee;
	font-weight: 700;
	text-decoration: none;
}

.site-mobile-menu .site-header__account-link--login {
	background: #ffffff;
	color: #09294f !important;
}

/* Keep the menu account link readable over the Navy overlay. */
.site-header .site-global-nav .site-mobile-menu .site-header__account-link,
.site-header .site-global-nav .site-mobile-menu .site-header__account-link:hover {
	background: transparent;
	color: #f8f5ee !important;
	font-size: inherit;
	font-weight: 700;
}

.site-mobile-menu__links a:focus-visible,
.site-mobile-menu .site-header__account-link:focus-visible {
	outline: 2px solid #ffffff;
	outline-offset: 3px;
}

.site-footer a {
	color: var(--wp--preset--color--muted);
}

@media (max-width: 480px) {
	.site-header__brand {
		width: 144px;
	}
}

@media (max-width: 599px) {
	.site-header__inner {
		gap: 1rem;
		padding: 0.5rem 1rem;
	}

	.site-header .site-global-nav {
		flex: 0 0 auto;
		margin-left: auto;
	}

	.site-header .wp-block-navigation__responsive-container-open {
		display: inline-flex;
	}

	.site-header__inner > .wp-block-shortcode,
	.site-header__inner > .site-header__account {
		display: none;
	}

	.site-header .site-global-nav .wp-block-navigation__responsive-container.is-menu-open {
		padding: 1rem;
	}

	.site-header .site-mobile-menu .wp-block-shortcode {
		margin-top: 1rem;
	}

	.site-header__inner:has(.site-header__no-js-nav) {
		flex-wrap: wrap;
	}

	.site-header__inner:has(.site-header__no-js-nav) > .site-global-nav,
	.site-header__inner:has(.site-header__no-js-nav) > .wp-block-shortcode,
	.site-header__inner:has(.site-header__no-js-nav) > .site-header__account {
		display: none;
	}

	.site-header__inner:has(.site-header__no-js-nav) > noscript {
		display: block;
		flex: 1 1 100%;
		margin: 0;
	}

	.site-header__inner:has(.site-header__no-js-nav) > noscript .site-header__no-js-nav {
		display: flex;
		flex-direction: column;
		gap: 0.5rem;
	}
}

.site-main {
	display: block;
}

/* トップの大学別模試一覧。受験画面の .tvs-* には当てない。 */
.exam-catalog {
	margin: 0;
	padding: 0;
}

.exam-wrap {
	width: min(1200px, calc(100% - 2.5rem));
	margin: 0 auto;
	padding-bottom: 3.5rem;
}

.exam-hero {
	padding-top: 2.75rem;
}

.exam-kicker {
	display: inline-block;
	margin: 0 0 0.75rem;
	padding: 0.2rem 0.75rem;
	border-radius: 999px;
	background: var(--wp--preset--color--surface);
	color: var(--wp--preset--color--accent);
	font-size: 0.875rem;
	font-weight: 700;
	line-height: 1.5;
}

.exam-hero h1 {
	margin: 0 0 0.5rem;
	font-size: clamp(1.8rem, 3vw, 2.4rem);
	font-weight: 700;
	line-height: 1.3;
}

.exam-lead {
	margin: 0;
	max-width: 36rem;
	color: var(--wp--preset--color--muted);
	font-size: 1.0625rem;
}

.exam-regions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	margin: 1.5rem 0 0;
}

.exam-regions a {
	display: inline-block;
	padding: 0.4rem 0.85rem;
	border: 1px solid var(--wp--preset--color--line);
	border-radius: 999px;
	background: var(--wp--preset--color--surface);
	color: var(--wp--preset--color--ink);
	font-size: 0.875rem;
	font-weight: 700;
	line-height: 1.4;
	text-decoration: none;
}

.exam-regions a:hover,
.exam-regions a:focus-visible {
	border-color: transparent;
	background: var(--wp--preset--color--accent);
	color: #ffffff;
	text-decoration: none;
}

.exam-region {
	scroll-margin-top: 1rem;
}

.exam-region__head {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 1rem;
	margin: 2rem 0 0.75rem;
}

.exam-region__head h2 {
	margin: 0;
	font-size: 1.25rem;
	line-height: 1.4;
}

.exam-region__count {
	margin: 0;
	color: var(--wp--preset--color--muted);
	font-size: 0.875rem;
}

.exam-list {
	display: flex;
	flex-direction: column;
	gap: 0.65rem;
}

.exam-row {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 0.45rem;
	padding: 1rem 1.15rem;
	border: 1px solid var(--wp--preset--color--line);
	border-radius: 16px;
	background: var(--wp--preset--color--surface);
	box-shadow: 0 6px 18px rgba(34, 28, 51, 0.04);
}

.exam-row__univ {
	margin: 0;
	font-size: 1.2rem;
	font-weight: 700;
	line-height: 1.4;
}

.exam-row__main {
	min-width: 0;
}

.exam-row__name {
	margin: 0;
	font-weight: 700;
	line-height: 1.5;
}

.exam-row__subjects {
	margin: 0.1rem 0 0;
	color: var(--wp--preset--color--muted);
	font-size: 0.875rem;
	line-height: 1.5;
}

.exam-row__side {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.5rem;
	width: 100%;
}

.exam-badge {
	display: inline-block;
	margin: 0;
	padding: 0.15rem 0.6rem;
	border-radius: 999px;
	background: var(--wp--preset--color--base);
	color: var(--wp--preset--color--muted);
	font-size: 0.75rem;
	font-weight: 700;
	line-height: 1.5;
}

.exam-badge--open {
	background: color-mix(in srgb, var(--wp--preset--color--ready) 14%, white);
	color: var(--wp--preset--color--ready);
}

a.exam-row__go {
	display: inline-block;
	flex: 1 1 100%;
	padding: 0.55rem 1rem;
	border-radius: 999px;
	background: var(--wp--preset--color--coral);
	color: #ffffff;
	font-size: 0.875rem;
	font-weight: 700;
	line-height: 1.4;
	text-align: center;
	text-decoration: none;
}

a.exam-row__go:hover,
a.exam-row__go:focus-visible {
	color: #ffffff;
	text-decoration: none;
	filter: brightness(0.94);
}

.exam-regions a:focus-visible,
a.exam-row__go:focus-visible {
	outline: 2px solid var(--wp--preset--color--ink);
	outline-offset: 2px;
}

@media (min-width: 800px) {
	.exam-row {
		flex-direction: row;
		align-items: center;
		gap: 1.25rem;
	}

	.exam-row__univ {
		flex: 0 0 12rem;
	}

	.exam-row__main {
		flex: 1 1 auto;
	}

	.exam-row__side {
		flex: 0 0 auto;
		justify-content: flex-end;
		width: auto;
		margin-left: auto;
	}

	a.exam-row__go {
		flex: 0 0 auto;
	}
}

@media (prefers-reduced-motion: no-preference) {
	.exam-row {
		transition: border-color 0.15s ease;
	}

	.exam-row:hover {
		border-color: color-mix(in srgb, var(--wp--preset--color--accent) 45%, white);
	}
}

/* Top Page Revision 2. All rules stay inside the home template scope. */
.tolearn-home {
	margin: 0;
	color: var(--wp--preset--color--home-text);
	font-size: 1.0625rem;
	line-height: 1.75;
}

.tolearn-home :where(h1, h2, h3, p, ol) { margin-top: 0; }
.tolearn-home :where(h1, h2, h3) { color: var(--wp--preset--color--home-navy); font-weight: 700; letter-spacing: 0; }

.tolearn-home__container { width: min(75rem, calc(100% - 4rem)); margin-inline: auto; }
.tolearn-home__reading { max-width: 45rem; }
.tolearn-home__hero, .tolearn-home__experience, .tolearn-home__services, .tolearn-home__final { background: var(--wp--preset--color--home-warm); }
.tolearn-home__hero { position: relative; isolation: isolate; padding-block: 6rem; }
.tolearn-home__hero-image { margin: 2rem 0 0; }
.tolearn-home__hero-image img { display: block; width: 100%; height: auto; aspect-ratio: 3 / 2; object-fit: cover; object-position: 70% center; }
.tolearn-home__brand-line { margin-bottom: 1rem; color: var(--wp--preset--color--home-navy); font-size: 1rem; font-weight: 700; letter-spacing: 0; }
.tolearn-home__display { max-width: 48rem; margin-bottom: 1.5rem; font-size: var(--wp--preset--font-size--home-display); line-height: 1.2; }
.tolearn-home__lead { max-width: 36rem; margin-bottom: 0; color: var(--wp--preset--color--home-secondary); font-size: var(--wp--preset--font-size--home-lead); line-height: 1.65; }
.tolearn-home__actions { margin-top: 2rem; }

.tolearn-home .tolearn-home__button .wp-block-button__link {
	min-height: 2.75rem; padding: 0.75rem 1.5rem; border: 1px solid var(--wp--preset--color--home-navy);
	border-radius: 0.25rem; background: var(--wp--preset--color--home-navy); color: #ffffff;
	font-size: 1rem; font-weight: 700; line-height: 1.5; text-decoration: none;
}
.tolearn-home .tolearn-home__button .wp-block-button__link:hover { background: #ffffff; color: var(--wp--preset--color--home-navy); text-decoration: underline; text-underline-offset: 0.2em; }
.tolearn-home :where(a:not(.wp-block-button__link)) { color: var(--wp--preset--color--home-navy); text-decoration: underline; text-underline-offset: 0.18em; }
.tolearn-home :where(a, button):focus-visible { outline: 2px solid var(--wp--preset--color--home-navy); outline-offset: 2px; }
.tolearn-home-footer :where(a, button):focus-visible { outline: 2px solid #ffffff; outline-offset: 2px; }

.tolearn-home__experience, .tolearn-home__services, .tolearn-home__available, .tolearn-home__why, .tolearn-home__final { padding-block: 6rem; }
.tolearn-home__experience-layout { display: grid; grid-template-columns: minmax(15rem, 0.8fr) minmax(0, 1.2fr); gap: 3rem; align-items: start; }
.tolearn-home__heading { margin-bottom: 1rem; font-size: var(--wp--preset--font-size--home-heading); line-height: 1.35; }
.tolearn-home__signature, .tolearn-home__final-rule { display: block; width: 4rem; height: 0.25rem; margin-bottom: 1.5rem; background: var(--wp--preset--color--home-cyan); transform-origin: left center; }
.tolearn-home__steps { margin-bottom: 0; padding: 0; list-style: none; }
.tolearn-home__step { position: relative; display: grid; grid-template-columns: 2.5rem minmax(0, 1fr); gap: 1rem; padding: 1.5rem 0; border-bottom: 1px solid var(--wp--preset--color--home-border); }
.tolearn-home__step:first-child { padding-top: 0; }
.tolearn-home__step:last-child { border-bottom: 0; }
.tolearn-home__step-rule { position: absolute; top: 2.75rem; bottom: 0; left: 1.1875rem; width: 1px; background: var(--wp--preset--color--home-navy); }
.tolearn-home__step-rule::after { position: absolute; inset: 0; background: var(--wp--preset--color--home-cyan); content: ""; transform: scaleY(1); transform-origin: top; }
.tolearn-home__step-number { position: relative; color: var(--wp--preset--color--home-navy); font-size: 1.125rem; font-weight: 700; font-variant-numeric: tabular-nums; }
.tolearn-home__eyebrow, .tolearn-home__service-label { margin-bottom: 0.5rem; color: var(--wp--preset--color--home-secondary); font-size: 0.875rem; font-weight: 700; letter-spacing: 0; }
.tolearn-home__step h3, .tolearn-home__service-name { margin-bottom: 0.5rem; font-size: 1.5rem; line-height: 1.4; }
.tolearn-home__step p:last-child, .tolearn-home__service-module p:last-child { margin-bottom: 0; }
.tolearn-home__service-module { max-width: 64rem; }
.tolearn-home__service-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 2rem; align-items: center; }
.tolearn-home__service-image { margin: 0; }
.tolearn-home__service-image img { display: block; width: 100%; height: auto; aspect-ratio: 3 / 2; object-fit: cover; object-position: center; }
.tolearn-home__service-copy { min-width: 0; }
.tolearn-home__service-title { margin-top: 1.5rem; }
.tolearn-home__service-label { margin-bottom: 0.25rem; }
.tolearn-home__service-name { margin-top: 0; }
.tolearn-home__available { background: #ffffff; }
.tolearn-home__available .tolearn-home__reading { max-width: 45rem; }
.tolearn-home__availability-note { margin: 1.5rem 0 0; padding: 1rem 1.25rem; border-left: 3px solid var(--wp--preset--color--home-navy); background: var(--wp--preset--color--home-warm); }
.tolearn-home__existing-user { margin: 1.5rem 0 0; }
.tolearn-home__why { background: var(--wp--preset--color--home-navy); color: #ffffff; }
.tolearn-home__why .tolearn-home__heading, .tolearn-home__why .tolearn-home__lead { color: #ffffff; }
.tolearn-home__why .tolearn-home__lead { margin-bottom: 0; }
.tolearn-home__final .tolearn-home__brand-line { margin-bottom: 1rem; }
.tolearn-home__final .tolearn-home__heading { margin-bottom: 0; }
.tolearn-home__final-rule { position: relative; margin: 2rem 0 0; }
.tolearn-home__final-rule::after { position: absolute; top: 0; right: 0; width: 0.25rem; height: 0.25rem; background: var(--wp--preset--color--home-navy); content: ""; }
.tolearn-home__legacy-targets { line-height: 0; }
.tolearn-home__legacy-targets span { display: inline-block; width: 1px; height: 1px; vertical-align: top; scroll-margin-top: 1rem; }

@media (min-width: 48rem) {
	.tolearn-home__hero .tolearn-home__container { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); column-gap: 2rem; align-items: center; }
	.tolearn-home__hero .tolearn-home__brand-line,
	.tolearn-home__hero .tolearn-home__display,
	.tolearn-home__hero .tolearn-home__lead,
	.tolearn-home__hero .tolearn-home__actions { grid-column: 1; position: relative; z-index: 1; }
	.tolearn-home__hero .tolearn-home__hero-image { position: absolute; inset-block: 0; right: 0; width: 60%; margin: 0; z-index: 0; }
	.tolearn-home__hero .tolearn-home__hero-image::after { position: absolute; inset: 0; content: ""; pointer-events: none; }
	.tolearn-home__hero .tolearn-home__hero-image img { width: 100%; height: 100%; object-position: 70% center; }
	.tolearn-home__hero .tolearn-home__hero-image::after { background: linear-gradient(to right, var(--wp--preset--color--home-warm) 0%, transparent 36%), linear-gradient(to bottom, transparent 90%, var(--wp--preset--color--home-warm) 100%); }
}

.tolearn-home-footer { margin: 0; padding-block: 3rem; background: var(--wp--preset--color--home-navy); color: #ffffff; }
.tolearn-home-footer__inner { width: min(75rem, calc(100% - 4rem)); margin-inline: auto; }
.tolearn-home-footer__brand { display: flex; flex-direction: column; align-items: flex-start; gap: 0.75rem; }
.tolearn-home-footer__logo { margin: 0; }
.tolearn-home-footer__logo img { display: block; width: 10rem; height: auto; }
.tolearn-home-footer__tagline { margin: 0; font-weight: 700; }
.tolearn-home-footer__nav { margin-top: 2rem; }
.tolearn-home-footer__nav-list { display: flex; flex-wrap: wrap; gap: 0.25rem 0.5rem; margin: 0; padding: 0; list-style: none; }
.tolearn-home-footer__nav a { box-sizing: border-box; display: inline-flex; min-width: 44px; min-height: 44px; align-items: center; padding: 0.625rem 0.75rem; color: #ffffff; text-decoration: underline; text-underline-offset: 0.18em; }
.tolearn-home-footer__copyright { margin: 2rem 0 0; font-size: 0.875rem; }

@media (min-width: 48rem) and (max-width: 63.999rem) {
	.tolearn-home__container, .tolearn-home-footer__inner { width: min(75rem, calc(100% - 3rem)); }
	.tolearn-home__hero, .tolearn-home__experience, .tolearn-home__services, .tolearn-home__available, .tolearn-home__why, .tolearn-home__final { padding-block: 4rem; }
	.tolearn-home__hero .tolearn-home__hero-image { inset-block: 0; }
	.tolearn-home__experience-layout { grid-template-columns: minmax(0, 1fr); gap: 2rem; }
}

@media (max-width: 47.999rem) {
	.tolearn-home__hero { isolation: auto; }
	.tolearn-home__container, .tolearn-home-footer__inner { width: calc(100% - 2rem); }
	.tolearn-home__hero, .tolearn-home__experience, .tolearn-home__services, .tolearn-home__available, .tolearn-home__why, .tolearn-home__final { padding-block: 3rem; }
	.tolearn-home__display { max-width: none; font-size: 2rem; }
	.tolearn-home__lead { font-size: 1.125rem; }
	.tolearn-home__heading { font-size: 1.625rem; }
	.tolearn-home__step { grid-template-columns: 2rem minmax(0, 1fr); gap: 0.75rem; padding-block: 1.5rem; }
	.tolearn-home__step-rule { left: 0.9375rem; }
	.tolearn-home__step h3, .tolearn-home__service-name { font-size: 1.375rem; }
	.tolearn-home__hero .tolearn-home__hero-image { grid-column: auto; grid-row: auto; position: static; width: auto; margin: 2rem 0 0; }
	.tolearn-home__hero .tolearn-home__hero-image::after { content: none; }
	.tolearn-home__hero .tolearn-home__hero-image img { width: 100%; height: auto; object-position: 70% center; }
}

@media (max-width: 767px) {
	.tolearn-home .tolearn-home__experience-layout { grid-template-columns: minmax(0, 1fr); }
	.tolearn-home__service-layout { grid-template-columns: minmax(0, 1fr); gap: 1.5rem; }
	.tolearn-home__service-title { margin-top: 0; }
	.tolearn-home__experience-intro,
	.tolearn-home__steps { min-width: 0; }
	.tolearn-home-footer__nav-list { flex-direction: column; align-items: flex-start; }
}

@media (prefers-reduced-motion: no-preference) {
	@supports (animation-timeline: view()) and (animation-range: entry 0% entry 100%) and (view-timeline-name: --tolearn-home-check) {
		@keyframes tolearn-home-line-x { from { transform: scaleX(0.25); } to { transform: scaleX(1); } }
		@keyframes tolearn-home-line-y { from { transform: scaleY(0.25); } to { transform: scaleY(1); } }
		@keyframes tolearn-home-service-settle { from { transform: translateY(8px); } to { transform: translateY(0); } }
		.tolearn-home__experience-intro { view-timeline-name: --tolearn-home-experience; view-timeline-axis: block; }
		.tolearn-home__signature--experience { animation: tolearn-home-line-x 1s linear both; animation-timeline: --tolearn-home-experience; animation-range: entry 0% entry 100%; }
		.tolearn-home__step { view-timeline-name: --tolearn-home-step; view-timeline-axis: block; }
		.tolearn-home__step-rule::after { animation: tolearn-home-line-y 1s linear both; animation-timeline: --tolearn-home-step; animation-range: entry 0% entry 100%; }
		.tolearn-home__service-module { view-timeline-name: --tolearn-home-service; view-timeline-axis: block; }
		.tolearn-home__service-title { animation: tolearn-home-service-settle 1s linear both; animation-timeline: --tolearn-home-service; animation-range: entry 0% entry 100%; }
		.tolearn-home__final .tolearn-home__reading { view-timeline-name: --tolearn-home-final; view-timeline-axis: block; }
		.tolearn-home__final-rule { animation: tolearn-home-line-x 1s linear both; animation-timeline: --tolearn-home-final; animation-range: entry 0% entry 100%; }
	}
}

@media (prefers-reduced-motion: reduce), (forced-colors: active), print {
	.tolearn-home, .tolearn-home *, .tolearn-home *::before, .tolearn-home *::after { animation: none !important; transition: none !important; transform: none !important; }
}

@media (max-width: 47.999rem) and (prefers-reduced-motion: no-preference) {
	@supports (animation-timeline: view()) and (animation-range: entry 0% entry 100%) {
		@keyframes tolearn-home-service-settle-mobile { from { transform: translateY(4px); } to { transform: translateY(0); } }
		.tolearn-home__service-title { animation-name: tolearn-home-service-settle-mobile; }
	}
}

/* Global public-site chrome follows the D2 homepage's light composition. */
.site-header:not(.d2-site-header) {
	min-height: 76px;
	background: #f8f5ee;
	color: #09294f;
}

.site-header:not(.d2-site-header) .site-header__inner {
	min-height: 76px;
	max-width: none;
	justify-content: space-between;
	padding: 0 clamp(24px, 6vw, 92px);
}

.site-header:not(.d2-site-header) .site-header__brand {
	width: 142px;
}

.site-header:not(.d2-site-header) .site-global-nav {
	display: none;
}

.site-header:not(.d2-site-header) .site-header__account-link {
	min-width: 44px;
	min-height: 44px;
	padding: 0.45rem 0.75rem;
	border: 0;
	border-radius: 0;
	background: transparent;
	color: #09294f !important;
	font-size: 13px;
	font-weight: 500;
	line-height: 1.4;
	text-decoration: none;
}

.site-header:not(.d2-site-header) .site-header__account-link:hover {
	background: transparent;
	color: #09294f !important;
	text-decoration: underline;
	text-underline-offset: 0.2em;
}

.site-header:not(.d2-site-header) .site-header__brand:focus-visible,
.site-header:not(.d2-site-header) .site-header__account-link:focus-visible {
	outline: 2px solid #09294f;
	outline-offset: 3px;
}

.site-footer {
	min-height: 76px;
	padding: 12px clamp(24px, 6vw, 92px);
	border-top: 1px solid rgba(9, 41, 79, 0.08);
	background: #fffefa;
	color: #09294f;
}

.site-footer__inner {
	min-height: 52px;
	max-width: 1200px;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.5rem 1rem;
	padding: 0;
}

.site-footer__brand {
	display: inline-flex;
	width: 108px;
	min-height: 44px;
	align-items: center;
	line-height: 0;
}

.site-footer__brand img {
	display: block;
	width: 100%;
	height: auto;
}

.site-footer__nav-list {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.25rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.site-footer__nav a {
	display: inline-flex;
	min-height: 44px;
	align-items: center;
	padding: 0.5rem 0.625rem;
	color: #09294f;
	font-size: 12px;
	text-underline-offset: 0.18em;
}

.site-footer__nav a:visited {
	color: #09294f;
}

.site-footer__copyright {
	margin: 0;
	color: #405b70;
	font-size: 9px;
}

.site-footer :where(a, button):focus-visible {
	outline-color: #09294f;
}

@media (max-width: 480px) {
	.site-header:not(.d2-site-header) .site-header__brand { width: 125px; }
}

@media (max-width: 599px) {
	.site-header:not(.d2-site-header) { min-height: 66px; }
	.site-header:not(.d2-site-header) .site-header__inner { min-height: 66px; gap: 0.5rem; padding-inline: 21px; }
	.site-header:not(.d2-site-header) .site-header__inner > .wp-block-shortcode,
	.site-header:not(.d2-site-header) .site-header__inner > .site-header__account { display: none; }
	.site-header:not(.d2-site-header) .site-global-nav { display: flex; flex: 0 0 auto; margin-left: auto; }
	.site-header:not(.d2-site-header) .wp-block-navigation__responsive-container-open {
		display: inline-flex; border-color: #09294f; color: #09294f;
	}
	.site-header:not(.d2-site-header) .site-global-nav .wp-block-navigation__responsive-container-open:focus-visible {
		outline-color: #09294f;
	}
	.site-header:not(.d2-site-header) .site-header__no-js-nav a { color: #09294f; }
	.site-header:not(.d2-site-header) .site-header__no-js-nav a:focus-visible { outline-color: #09294f; }
	.site-header:not(.d2-site-header) .site-header__account-link { padding-inline: 0.7rem; font-size: 11px; }
	.site-header__inner:has(.site-header__no-js-nav) > .site-global-nav { display: none; }
	.site-header__inner:has(.site-header__no-js-nav) > noscript { display: block; flex: 1 1 100%; margin: 0; }
	.site-header__inner:has(.site-header__no-js-nav) > noscript .site-header__no-js-nav { display: flex; flex-direction: column; gap: 0.5rem; }
	.site-footer { min-height: 65px; padding: 17px 22px; }
	.site-footer__inner { min-height: 31px; gap: 0.25rem 0.5rem; }
	.site-footer__brand { width: 95px; }
	.site-footer__nav { width: 100%; }
	.site-footer__nav-list { gap: 0 0.25rem; }
	.site-footer__nav a { min-height: 40px; padding-inline: 0.4rem; font-size: 11px; }
}

