/*
Theme Name: 中医课程平台
Theme URI: https://zhongyikecheng.com/
Author: 中医课程网
Description: 面向中医课程单课销售与 WooCommerce 的现代区块主题。支持全站编辑，不依赖页面构建器。
Version: 0.3.2
Requires at least: 6.7
Tested up to: 7.0
Requires PHP: 8.1
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: tcm-course-platform
Tags: full-site-editing, block-patterns, education, e-commerce, custom-colors, wide-blocks
*/

:root {
	--tcm-shadow-sm: 0 10px 30px rgba(24, 43, 34, 0.08);
	--tcm-shadow-lg: 0 24px 70px rgba(24, 43, 34, 0.14);
	--tcm-border: rgba(31, 73, 53, 0.14);
	--tcm-transition: 180ms ease;
}

* {
	box-sizing: border-box;
}

html {
	scroll-behavior: smooth;
}

body {
	-moz-osx-font-smoothing: grayscale;
	-webkit-font-smoothing: antialiased;
}

body.admin-bar .tcm-site-header {
	top: 32px;
}

img {
	height: auto;
}

a,
button,
input,
select,
textarea {
	transition: color var(--tcm-transition), background-color var(--tcm-transition), border-color var(--tcm-transition), box-shadow var(--tcm-transition), transform var(--tcm-transition);
}

:where(a, button, input, select, textarea):focus-visible {
	outline: 3px solid var(--wp--preset--color--gold);
	outline-offset: 3px;
}

[hidden] {
	display: none !important;
}

.tcm-site-header {
	position: sticky;
	top: 0;
	z-index: 100;
	border-bottom: 1px solid rgba(31, 73, 53, 0.1);
	background: rgba(255, 253, 248, 0.92);
	backdrop-filter: blur(18px);
}

.tcm-brand-row {
	min-height: 78px;
}

.tcm-brand-mark {
	position: relative;
	padding-left: 52px;
}

.tcm-brand-mark::before {
	position: absolute;
	top: 50%;
	left: 0;
	display: grid;
	width: 40px;
	height: 40px;
	transform: translateY(-50%);
	place-items: center;
	border: 1px solid rgba(184, 107, 61, 0.45);
	border-radius: 50%;
	background: var(--wp--preset--color--clay);
	color: var(--wp--preset--color--paper);
	content: "中";
	font-family: var(--wp--preset--font-family--serif);
	font-size: 19px;
	font-weight: 700;
}

.tcm-site-header .wp-block-site-title a {
	text-decoration: none;
}

.tcm-site-header .wp-block-navigation-item__content {
	position: relative;
	text-decoration: none;
}

.tcm-site-header .wp-block-navigation-item__content::after {
	position: absolute;
	right: 0;
	bottom: -8px;
	left: 0;
	height: 2px;
	transform: scaleX(0);
	background: var(--wp--preset--color--clay);
	content: "";
	transition: transform var(--tcm-transition);
}

.tcm-site-header .wp-block-navigation-item__content:hover::after,
.tcm-site-header .current-menu-item > .wp-block-navigation-item__content::after {
	transform: scaleX(1);
}

.tcm-hero {
	position: relative;
	overflow: hidden;
	background:
		radial-gradient(circle at 82% 16%, rgba(200, 154, 74, 0.2), transparent 25%),
		radial-gradient(circle at 72% 92%, rgba(79, 122, 92, 0.18), transparent 30%),
		linear-gradient(135deg, #f7f4ec 0%, #edf2ec 100%);
}

.tcm-hero::before,
.tcm-hero::after {
	position: absolute;
	border: 1px solid rgba(31, 73, 53, 0.1);
	border-radius: 50%;
	content: "";
}

.tcm-hero::before {
	top: -160px;
	right: -110px;
	width: 480px;
	height: 480px;
}

.tcm-hero::after {
	right: 80px;
	bottom: -230px;
	width: 420px;
	height: 420px;
}

.tcm-hero > .wp-block-group__inner-container,
.tcm-hero .wp-block-columns {
	position: relative;
	z-index: 1;
}

.tcm-kicker {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

.tcm-kicker::before {
	display: inline-block;
	width: 28px;
	height: 1px;
	background: currentColor;
	content: "";
}

.tcm-hero-title {
	max-width: 12em;
	text-wrap: balance;
}

.tcm-hero-copy {
	max-width: 620px;
}

.tcm-hero-panel {
	position: relative;
	overflow: hidden;
	border: 1px solid rgba(255, 255, 255, 0.16);
	border-radius: 28px;
	box-shadow: var(--tcm-shadow-lg);
}

.tcm-hero-panel::after {
	position: absolute;
	top: -70px;
	right: -70px;
	width: 190px;
	height: 190px;
	border: 35px solid rgba(255, 255, 255, 0.07);
	border-radius: 50%;
	content: "";
}

.tcm-path-list {
	list-style: none;
	padding: 0;
	counter-reset: path;
}

.tcm-path-list li {
	position: relative;
	margin: 0;
	padding: 14px 16px 14px 52px;
	border-top: 1px solid rgba(255, 255, 255, 0.13);
	counter-increment: path;
}

.tcm-path-list li::before {
	position: absolute;
	top: 12px;
	left: 6px;
	display: grid;
	width: 30px;
	height: 30px;
	place-items: center;
	border: 1px solid rgba(255, 255, 255, 0.25);
	border-radius: 50%;
	content: counter(path, decimal-leading-zero);
	font-size: 11px;
	font-weight: 700;
}

.tcm-metric {
	min-width: 128px;
	padding-right: 24px;
	border-right: 1px solid var(--tcm-border);
}

.tcm-metric:last-child {
	border-right: 0;
}

.tcm-feature-strip {
	position: relative;
	z-index: 2;
	margin-top: -44px !important;
}

.tcm-feature-item {
	height: 100%;
	border: 1px solid rgba(255, 255, 255, 0.8);
	box-shadow: var(--tcm-shadow-sm);
}

.tcm-icon-disc {
	display: grid;
	flex: 0 0 auto;
	width: 44px;
	height: 44px;
	place-items: center;
	border-radius: 50%;
	background: var(--wp--preset--color--mist);
	color: var(--wp--preset--color--forest);
	font-family: var(--wp--preset--font-family--serif);
	font-weight: 700;
}

.tcm-section-heading {
	max-width: 760px;
	text-wrap: balance;
}

.tcm-course-card {
	overflow: hidden;
	height: 100%;
	border: 1px solid var(--tcm-border);
	border-radius: 22px;
	background: var(--wp--preset--color--white);
	box-shadow: 0 4px 18px rgba(24, 43, 34, 0.04);
}

.tcm-course-card:hover {
	transform: translateY(-5px);
	box-shadow: var(--tcm-shadow-sm);
}

.tcm-course-card__visual {
	position: relative;
	display: flex;
	min-height: 210px;
	align-items: flex-end;
	overflow: hidden;
}

.tcm-course-card__visual::before,
.tcm-course-card__visual::after {
	position: absolute;
	border-radius: 50%;
	content: "";
}

.tcm-course-card__visual::before {
	top: -60px;
	right: -20px;
	width: 180px;
	height: 180px;
	border: 28px solid rgba(255, 255, 255, 0.14);
}

.tcm-course-card__visual::after {
	right: 34px;
	bottom: 38px;
	width: 56px;
	height: 56px;
	border: 1px solid rgba(255, 255, 255, 0.38);
}

.tcm-visual--foundation {
	background: linear-gradient(145deg, #173d2d, #3f795a);
}

.tcm-visual--classic {
	background: linear-gradient(145deg, #684632, #b4774c);
}

.tcm-visual--clinical {
	background: linear-gradient(145deg, #20333b, #50737a);
}

.tcm-course-card__body {
	display: flex;
	height: calc(100% - 210px);
	flex-direction: column;
}

.tcm-course-card__body .wp-block-buttons {
	margin-top: auto;
}

.tcm-step {
	position: relative;
	height: 100%;
	border-top: 2px solid var(--wp--preset--color--sage);
}

.tcm-step-number {
	display: grid;
	width: 48px;
	height: 48px;
	place-items: center;
	border-radius: 50%;
	background: var(--wp--preset--color--forest);
	color: var(--wp--preset--color--paper);
	font-family: var(--wp--preset--font-family--serif);
	font-size: 18px;
}

.tcm-plan-card {
	position: relative;
	display: flex;
	height: 100%;
	flex-direction: column;
	border: 1px solid var(--tcm-border);
	box-shadow: 0 5px 22px rgba(24, 43, 34, 0.05);
}

.tcm-plan-card.is-featured {
	transform: translateY(-8px);
	border-color: var(--wp--preset--color--gold);
	box-shadow: var(--tcm-shadow-lg);
}

.tcm-plan-card .wp-block-buttons {
	margin-top: auto;
}

.tcm-plan-badge {
	position: absolute;
	top: -14px;
	right: 22px;
	padding: 7px 13px;
	border-radius: 999px;
	background: var(--wp--preset--color--clay);
	color: var(--wp--preset--color--paper);
	font-size: 12px;
	font-weight: 700;
}

.tcm-check-list {
	padding-left: 1.3em;
}

.tcm-check-list li {
	margin-bottom: 10px;
}

.tcm-cta {
	position: relative;
	overflow: hidden;
	box-shadow: var(--tcm-shadow-lg);
}

.tcm-cta::after {
	position: absolute;
	top: 50%;
	right: -90px;
	width: 280px;
	height: 280px;
	transform: translateY(-50%);
	border: 55px solid rgba(255, 255, 255, 0.06);
	border-radius: 50%;
	content: "";
}

.tcm-site-footer {
	border-top: 1px solid rgba(255, 255, 255, 0.1);
}

.tcm-site-footer a {
	color: inherit;
	text-decoration-color: rgba(255, 255, 255, 0.35);
}

.is-style-none {
	padding-left: 0;
	list-style: none;
}

.tcm-post-shell,
.tcm-archive-shell {
	min-height: 60vh;
}

.tcm-post-shell .wp-block-post-content > * {
	margin-block-start: 1.35em;
}

.tcm-post-shell .wp-block-post-content > :is(h2, h3, h4) {
	margin-block-start: 1.8em;
}

.tcm-query-card {
	height: 100%;
	overflow: hidden;
	border: 1px solid var(--tcm-border);
	border-radius: 18px;
	background: var(--wp--preset--color--white);
	box-shadow: 0 4px 18px rgba(24, 43, 34, 0.04);
}

.tcm-query-card .wp-block-post-featured-image img {
	aspect-ratio: 16 / 10;
	object-fit: cover;
}

.wp-block-post-template.is-layout-grid {
	align-items: stretch;
}

.wp-block-post-template.is-layout-grid > li {
	display: flex;
}

/* Tutor LMS compatibility. Keep selectors shallow so plugin updates remain safe. */
.tutor-wrap,
.tutor-course-single-content-wrapper,
.tutor-dashboard {
	font-family: var(--wp--preset--font-family--sans);
	color: var(--wp--preset--color--ink);
}

:where(.tutor-card, .tutor-course-card, .tutor-dashboard-content) {
	border-color: var(--tcm-border) !important;
	border-radius: 18px !important;
	box-shadow: 0 5px 22px rgba(24, 43, 34, 0.05);
}

:where(.tutor-btn-primary, .tutor-button, .tutor-course-entry-box .tutor-btn) {
	border-radius: 999px !important;
	background-color: var(--wp--preset--color--forest) !important;
	color: var(--wp--preset--color--paper) !important;
}

:where(.tutor-btn-primary, .tutor-button, .tutor-course-entry-box .tutor-btn):hover {
	background-color: var(--wp--preset--color--jade) !important;
}

/* Tutor LMS homepage list. The plugin keeps ownership of markup and course data. */
.tcm-tutor-home-course-list :where(.tutor-course-card, .tutor-card) {
	height: 100%;
	overflow: hidden;
	border-radius: 6px !important;
	background: var(--wp--preset--color--white);
}

.tcm-tutor-home-course-list :where(.tutor-course-thumbnail img, .tutor-card-image-top img) {
	display: block;
	width: 100%;
	aspect-ratio: 16 / 10;
	object-fit: cover;
}

.tcm-tutor-home-course-list :where(.tutor-course-name, .tutor-course-name a) {
	color: var(--wp--preset--color--ink);
	font-weight: 650;
	line-height: 1.55;
}

.tcm-tutor-home-course-list :where(.tutor-course-name a:hover, .tutor-course-name a:focus-visible) {
	color: var(--wp--preset--color--forest);
}

.tcm-tutor-home-course-list :where(.tutor-course-price, .tutor-course-price .price) {
	color: var(--wp--preset--color--clay);
	font-weight: 700;
}

/* WooCommerce compatibility. Prefer public block/component hooks. */
:where(.woocommerce, .wc-block-components-root) {
	color: var(--wp--preset--color--ink);
}

:where(.wc-block-components-button, .woocommerce a.button, .woocommerce button.button, .woocommerce input.button) {
	border-radius: 999px !important;
}

:where(.wc-block-components-text-input input, .wc-block-components-combobox input, .woocommerce input.input-text, .woocommerce select, .woocommerce textarea) {
	border: 1px solid var(--tcm-border) !important;
	border-radius: 10px !important;
	background: var(--wp--preset--color--white) !important;
}

:where(.wc-block-grid__product, .wc-block-product, .woocommerce ul.products li.product) {
	border-radius: 18px;
}

:where(.wc-block-components-notice-banner, .woocommerce-message, .woocommerce-info, .woocommerce-error) {
	border-radius: 12px;
}

@media (max-width: 900px) {
	body.admin-bar .tcm-site-header {
		top: 46px;
	}

	.tcm-site-header .wp-block-buttons {
		display: none;
	}

	.tcm-feature-strip {
		margin-top: -20px !important;
	}

	.tcm-plan-card.is-featured {
		transform: none;
	}
}

@media (max-width: 781px) {
	.tcm-hero .wp-block-columns {
		gap: 46px;
	}

	.tcm-hero-title {
		font-size: clamp(2.5rem, 12vw, 4.6rem) !important;
	}

	.tcm-metrics {
		align-items: stretch !important;
	}

	.tcm-metric {
		min-width: calc(50% - 12px);
		padding-right: 12px;
	}
}

@media (max-width: 600px) {
	body.admin-bar .tcm-site-header {
		top: 0;
	}

	.tcm-brand-row {
		min-height: 66px;
	}

	.tcm-brand-mark {
		padding-left: 44px;
	}

	.tcm-brand-mark::before {
		width: 34px;
		height: 34px;
	}

	.tcm-feature-strip {
		margin-top: 0 !important;
	}

	.tcm-hero-panel,
	.tcm-course-card,
	.tcm-plan-card,
	.tcm-cta {
		border-radius: 18px !important;
	}
}

@media (prefers-reduced-motion: reduce) {
	html {
		scroll-behavior: auto;
	}

	*,
	*::before,
	*::after {
		scroll-behavior: auto !important;
		transition-duration: 0.01ms !important;
	}
}

/* v0.2.0 course portal layout — based on the public structure of the reference site. */
.tcm-site-header {
	position: relative;
	top: auto;
	border-bottom: 0;
	background: var(--wp--preset--color--white);
	backdrop-filter: none;
}

body.admin-bar .tcm-site-header {
	top: auto;
}

.tcm-topbar {
	padding: 7px 24px;
}

.tcm-topbar p {
	margin: 0;
	font-size: 12px !important;
	line-height: 1.5;
}

.tcm-main-header {
	border-bottom: 1px solid rgba(31, 73, 53, 0.1);
	box-shadow: 0 7px 22px rgba(24, 43, 34, 0.055);
}

.tcm-main-nav-row {
	min-height: 82px;
	gap: 24px;
	padding: 0 24px;
}

.tcm-brand-lockup {
	flex: 0 0 auto;
	min-width: 184px;
}

.tcm-brand-lockup > * {
	margin-block: 0 !important;
}

.tcm-brand-lockup .wp-block-site-title {
	font-family: var(--wp--preset--font-family--serif);
	font-size: 22px !important;
	font-weight: 700;
	line-height: 1.25;
}

.tcm-brand-lockup .wp-block-site-title a {
	color: var(--wp--preset--color--forest);
}

.tcm-brand-lockup p {
	margin-top: 3px !important;
	font-size: 9px !important;
	font-weight: 700;
	letter-spacing: 0.16em;
}

.tcm-primary-nav {
	flex: 1 1 auto;
	font-size: 14px;
	font-weight: 500;
}

.tcm-mobile-account-link {
	display: none !important;
}

.tcm-primary-nav .wp-block-navigation__container {
	row-gap: 12px;
}

.tcm-site-header .tcm-primary-nav .wp-block-navigation-item__content::after {
	bottom: -10px;
	height: 2px;
	background: var(--wp--preset--color--forest);
}

.tcm-header-actions {
	flex: 0 0 auto;
	gap: 12px;
}

.tcm-header-actions > * {
	margin-block: 0 !important;
}

.tcm-header-search .wp-block-search__inside-wrapper {
	width: 38px;
	border: 0;
	padding: 0;
}

.tcm-header-search .wp-block-search__input {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
	clip-path: inset(50%);
}

.tcm-header-search .wp-block-search__button {
	display: grid;
	width: 38px;
	height: 38px;
	margin: 0;
	padding: 0;
	place-items: center;
	border: 1px solid var(--tcm-border);
	border-radius: 50%;
	background: transparent;
	color: var(--wp--preset--color--forest);
}

.tcm-header-actions .wp-block-button__link {
	min-height: 38px;
	padding: 9px 18px;
	border-radius: 5px;
	box-shadow: 0 5px 14px rgba(31, 73, 53, 0.15);
}

.tcm-banner-section {
	padding-right: 24px;
	padding-left: 24px;
}

.tcm-home-banner {
	overflow: hidden;
	border: 1px solid rgba(31, 73, 53, 0.08);
	border-radius: 7px;
	box-shadow: 0 10px 30px rgba(24, 43, 34, 0.09);
}

.tcm-home-banner .wp-block-cover__image-background {
	object-position: center center;
}

.tcm-banner-copy {
	width: 55%;
	margin-right: 0 !important;
	margin-left: auto !important;
	padding: 36px 48px 36px 20px;
}

.tcm-banner-copy > * {
	margin-block-start: 0;
}

.tcm-banner-kicker {
	margin-bottom: 10px !important;
	font-weight: 700;
	letter-spacing: 0.12em;
}

.tcm-banner-title {
	margin-bottom: 16px !important;
	font-family: var(--wp--preset--font-family--serif);
	font-size: clamp(2.8rem, 4vw, 4.25rem) !important;
	font-weight: 700;
	line-height: 1.08;
	letter-spacing: -0.035em;
}

.tcm-banner-description {
	max-width: 590px;
	font-size: clamp(1rem, 1.25vw, 1.16rem) !important;
	line-height: 1.75;
}

.tcm-banner-copy .wp-block-button__link,
.tcm-more-courses .wp-block-button__link {
	padding: 12px 26px;
	border-radius: 5px;
	box-shadow: 0 7px 18px rgba(31, 73, 53, 0.16);
}

.tcm-catalog-section {
	background: #f2f5f3 !important;
}

.tcm-catalog-heading h2 {
	margin-top: 8px;
	margin-bottom: 12px;
	font-family: var(--wp--preset--font-family--serif);
	font-size: clamp(1.8rem, 3vw, 2.55rem);
}

.tcm-catalog-heading h2::after {
	display: block;
	width: 46px;
	height: 2px;
	margin: 16px auto 0;
	background: var(--wp--preset--color--clay);
	content: "";
}

.tcm-category-tabs {
	gap: 12px;
}

.tcm-category-tabs .wp-block-button__link {
	min-width: 92px;
	padding: 9px 17px;
	border-radius: 4px;
}

.tcm-category-tabs .is-style-outline .wp-block-button__link {
	border-color: rgba(31, 73, 53, 0.2);
	background: var(--wp--preset--color--white);
}

.tcm-catalog-grid {
	display: grid;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	gap: 26px 20px;
}

.tcm-catalog-grid > * {
	margin-block-start: 0 !important;
}

.tcm-catalog-card {
	display: flex;
	height: 100%;
	min-width: 0;
	overflow: hidden;
	flex-direction: column;
	border: 1px solid rgba(31, 73, 53, 0.11);
	border-radius: 6px;
	box-shadow: 0 5px 18px rgba(24, 43, 34, 0.055);
	transition: transform 180ms ease, box-shadow 180ms ease;
}

.tcm-catalog-card:hover {
	transform: translateY(-4px);
	box-shadow: 0 12px 28px rgba(24, 43, 34, 0.11);
}

.tcm-card-media {
	position: relative;
	overflow: hidden;
}

.tcm-card-media,
.tcm-card-media > *,
.tcm-catalog-card__image {
	margin: 0 !important;
}

.tcm-catalog-card__image img {
	display: block;
	width: 100%;
	aspect-ratio: 16 / 10;
	object-fit: cover;
	transition: transform 260ms ease;
}

.tcm-catalog-card:hover .tcm-catalog-card__image img {
	transform: scale(1.025);
}

.tcm-course-badge {
	position: absolute;
	top: 10px;
	left: 10px;
	margin: 0 !important;
	padding: 5px 8px;
	border-radius: 4px;
	background: rgba(200, 154, 74, 0.94);
	color: #fff;
	font-size: 11px !important;
	font-weight: 700;
	line-height: 1;
	box-shadow: 0 3px 9px rgba(24, 43, 34, 0.14);
}

.tcm-card-body {
	display: flex;
	flex: 1;
	flex-direction: column;
	padding: 15px 16px 13px;
}

.tcm-card-body > * {
	margin-block-start: 0;
}

.tcm-card-title {
	display: -webkit-box;
	min-height: 3.2em;
	overflow: hidden;
	margin-bottom: 8px !important;
	font-size: 16px !important;
	font-weight: 650;
	line-height: 1.6;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
}

.tcm-card-title a {
	color: var(--wp--preset--color--ink);
	text-decoration: none;
}

.tcm-card-title a:hover {
	color: var(--wp--preset--color--forest);
}

.tcm-card-summary {
	display: -webkit-box;
	min-height: 3.1em;
	overflow: hidden;
	margin-bottom: 12px !important;
	font-size: 12px !important;
	line-height: 1.55;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
}

.tcm-card-category {
	margin-top: auto !important;
	margin-bottom: 12px !important;
	font-size: 12px !important;
}

.tcm-card-footer {
	padding-top: 11px;
	border-top: 1px solid rgba(31, 73, 53, 0.09);
}

.tcm-card-footer p {
	margin: 0;
	font-size: 12px !important;
}

.tcm-card-price {
	font-size: 14px !important;
}

@media (max-width: 1180px) {
	.tcm-main-nav-row {
		gap: 18px;
	}

	.tcm-primary-nav {
		font-size: 13px;
	}

	.tcm-primary-nav .wp-block-navigation__container {
		column-gap: 18px !important;
	}

	.tcm-catalog-grid {
		grid-template-columns: repeat(4, minmax(0, 1fr));
	}
}

@media (max-width: 980px) {
	.tcm-main-nav-row {
		min-height: 72px;
	}

	.tcm-primary-nav .wp-block-navigation__responsive-container-open {
		display: flex;
		min-width: 44px;
		min-height: 44px;
		align-items: center;
		justify-content: center;
	}

	.tcm-primary-nav .wp-block-navigation__responsive-container:not(.is-menu-open) {
		display: none;
	}

	.tcm-primary-nav {
		margin-left: auto;
	}

	.tcm-primary-nav .wp-block-navigation__responsive-container.is-menu-open {
		padding: max(22px, env(safe-area-inset-top)) max(22px, env(safe-area-inset-right)) max(28px, env(safe-area-inset-bottom)) max(22px, env(safe-area-inset-left));
	}

	.tcm-primary-nav .wp-block-navigation__responsive-container-close {
		min-width: 44px;
		min-height: 44px;
	}

	.tcm-primary-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content {
		padding-top: 58px;
		align-items: stretch;
	}

	.tcm-primary-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container {
		width: 100%;
		align-items: stretch;
		gap: 0 !important;
	}

	.tcm-primary-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item {
		width: 100%;
		border-bottom: 1px solid rgba(31, 73, 53, 0.12);
	}

	.tcm-primary-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content {
		display: flex;
		min-height: 52px;
		align-items: center;
		padding: 10px 2px;
		font-size: 17px;
		font-weight: 620;
	}

	.tcm-primary-nav .wp-block-navigation__responsive-container.is-menu-open .tcm-mobile-account-link {
		display: flex !important;
		margin-top: 18px;
		border-bottom: 0;
	}

	.tcm-primary-nav .wp-block-navigation__responsive-container.is-menu-open .tcm-mobile-account-link .wp-block-navigation-item__content {
		justify-content: center;
		border-radius: 6px;
		background: var(--wp--preset--color--forest);
		color: var(--wp--preset--color--paper);
	}

	.tcm-header-search {
		display: none;
	}

	.tcm-banner-copy {
		width: 64%;
		padding-right: 30px;
	}

	.tcm-catalog-grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

@media (max-width: 781px) {
	.tcm-topbar {
		padding-right: 18px;
		padding-left: 18px;
	}

	.tcm-main-nav-row {
		padding-right: 18px;
		padding-left: 18px;
	}

	.tcm-banner-section {
		padding-right: 18px;
		padding-left: 18px;
	}

	.tcm-home-banner {
		min-height: 390px !important;
	}

	.tcm-home-banner::before {
		position: absolute;
		z-index: 1;
		inset: 0;
		background: linear-gradient(90deg, rgba(255, 253, 248, 0.18), rgba(255, 253, 248, 0.94) 56%);
		content: "";
	}

	.tcm-home-banner .wp-block-cover__inner-container {
		z-index: 2;
	}

	.tcm-banner-copy {
		width: 72%;
		padding: 32px 22px;
	}

	.tcm-banner-title {
		font-size: clamp(2.25rem, 8vw, 3.4rem) !important;
	}

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

@media (max-width: 560px) {
	.tcm-tutor-home-course-list :where(.tutor-grid, .tutor-row) {
		grid-template-columns: 1fr !important;
	}

	.tcm-tutor-home-course-list .tutor-row > [class*="tutor-col"] {
		width: 100% !important;
		max-width: 100% !important;
		flex: 0 0 100% !important;
	}
	.tcm-topbar {
		padding: 6px max(14px, env(safe-area-inset-right)) 6px max(14px, env(safe-area-inset-left));
	}

	.tcm-topbar .alignwide {
		justify-content: center !important;
	}

	.tcm-topbar p {
		font-size: 11px !important;
		text-align: center;
	}

	.tcm-topbar p:last-child {
		display: none;
	}

	.tcm-brand-lockup {
		min-width: 0;
	}

	.tcm-brand-lockup .wp-block-site-title {
		font-size: 19px !important;
	}

	.tcm-brand-lockup p:last-child {
		font-size: 8px !important;
		letter-spacing: 0.1em;
	}

	.tcm-main-nav-row {
		min-height: 64px;
		padding-right: max(14px, env(safe-area-inset-right));
		padding-left: max(14px, env(safe-area-inset-left));
	}

	.tcm-header-actions {
		display: none;
	}

	.tcm-header-actions .wp-block-buttons {
		display: none;
	}

	.tcm-banner-section {
		padding: 14px 14px !important;
	}

	.tcm-home-banner {
		min-height: 420px !important;
		border-radius: 5px;
	}

	.tcm-home-banner .wp-block-cover__image-background {
		object-position: 34% center;
	}

	.tcm-home-banner::before {
		background: linear-gradient(180deg, rgba(255, 253, 248, 0.16), rgba(255, 253, 248, 0.97) 48%);
	}

	.tcm-home-banner .wp-block-cover__inner-container {
		display: flex;
		min-height: 420px;
		align-items: flex-end;
	}

	.tcm-banner-copy {
		width: 100%;
		margin: 0 !important;
		padding: 30px 22px 32px;
	}

	.tcm-banner-title {
		margin-bottom: 12px !important;
		font-size: 2.1rem !important;
		line-height: 1.12;
	}

	.tcm-banner-description {
		font-size: 0.95rem !important;
		line-height: 1.65;
	}

	.tcm-banner-copy .wp-block-buttons {
		width: 100%;
		margin-top: 18px !important;
	}

	.tcm-banner-copy .wp-block-button,
	.tcm-banner-copy .wp-block-button__link {
		width: 100%;
	}

	.tcm-banner-copy .wp-block-button__link {
		min-height: 46px;
		text-align: center;
	}

	.tcm-catalog-section {
		padding-top: 48px !important;
		padding-bottom: 56px !important;
	}

	.tcm-catalog-heading h2 {
		font-size: 1.8rem;
		line-height: 1.25;
	}

	.tcm-catalog-heading > p {
		font-size: 14px;
		line-height: 1.65;
	}

	.tcm-category-tabs {
		width: 100%;
		overflow-x: auto;
		flex-wrap: nowrap !important;
		justify-content: flex-start !important;
		gap: 8px;
		margin-top: 24px !important;
		margin-bottom: 30px !important;
		padding-bottom: 8px;
		scrollbar-width: none;
		scroll-snap-type: x proximity;
		-webkit-overflow-scrolling: touch;
	}

	.tcm-category-tabs::-webkit-scrollbar {
		display: none;
	}

	.tcm-category-tabs .wp-block-button {
		flex: 0 0 auto;
		scroll-snap-align: start;
	}

	.tcm-category-tabs .wp-block-button__link {
		min-width: auto;
		min-height: 44px;
		display: flex;
		align-items: center;
		padding: 9px 15px;
	}

	.tcm-catalog-grid {
		grid-template-columns: 1fr;
		gap: 18px;
	}

	.tcm-catalog-card {
		border-radius: 6px !important;
	}

	.tcm-card-body {
		padding: 16px 17px 14px;
	}

	.tcm-card-title {
		min-height: 0;
		font-size: 17px !important;
	}

	.tcm-card-summary {
		min-height: 0;
		font-size: 13px !important;
	}

	.tcm-card-footer {
		min-height: 38px;
		align-items: center;
	}

	.tcm-card-price {
		font-size: 15px !important;
	}

	.tcm-more-courses {
		margin-top: 30px !important;
	}

	.tcm-more-courses .wp-block-button,
	.tcm-more-courses .wp-block-button__link {
		width: 100%;
	}

	.tcm-more-courses .wp-block-button__link {
		min-height: 46px;
		text-align: center;
	}

	.tcm-site-footer {
		padding-top: 48px !important;
		padding-bottom: 30px !important;
	}

	.tcm-site-footer .wp-block-columns {
		gap: 30px;
	}

	.tcm-site-footer .wp-block-navigation-item__content,
	.tcm-site-footer li a {
		display: inline-flex;
		min-height: 44px;
		align-items: center;
	}
}
