.pshsz-course-module {
	--pshsz-blue: #9fcaec;
	--pshsz-blue-soft: #d7e9fb;
	--pshsz-pink: #efa09c;
	--pshsz-green: #b9da91;
	--pshsz-gold: #d7bf91;
	--pshsz-gold-text: #70470c;
	--pshsz-heading-pale: #8a5710;
	--pshsz-heading-orange: #9b651b;
	--pshsz-text: #405c78;
	--pshsz-text-strong: #284864;
	--pshsz-line: #faead3;
	--pshsz-white: #fff;
	--pshsz-shadow: 0 16px 42px rgba(82, 105, 135, 0.13);
	box-sizing: border-box;
	color: var(--pshsz-text);
	line-height: 1.65;
}

.pshsz-semester-schedule {
	min-width: 0;
	padding: 0 6px;
}

.pshsz-semester-schedule > h2 {
	margin: 0 0 20px;
	color: #00b2e3;
	font-size: 20px;
	font-weight: 400;
	text-align: center;
}

.pshsz-semester-schedule__dates {
	display: grid;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	gap: 12px;
	width: 100%;
	min-width: 0;
}

.pshsz-semester-schedule__dates time {
	display: block;
	min-width: 0;
	border: 1px solid #79daf2;
	border-radius: 999px;
	background: #eff9fe;
	color: #00a4d2;
	padding: 9px 8px;
	line-height: 1.25;
	text-align: center;
}

@media (max-width: 900px) {
	.pshsz-semester-schedule__dates {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

@media (max-width: 480px) {
	.pshsz-semester-schedule__dates {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 10px;
	}
}

.pshsz-course-module *,
.pshsz-course-module *::before,
.pshsz-course-module *::after {
	box-sizing: inherit;
}

.pshsz-course-native-page {
	background: #f8fcff;
	padding: clamp(34px, 6vw, 76px) 0;
}

.pshsz-course-shortcode {
	width: 100%;
}

.pshsz-course-shell {
	width: min(1140px, calc(100% - 40px));
	margin: 0 auto;
}

.pshsz-page-heading {
	margin: 0 0 30px;
	text-align: center;
}

.pshsz-page-heading__en {
	margin: 0;
	color: var(--pshsz-heading-pale);
	font-size: clamp(42px, 6.4vw, 72px);
	font-weight: 300;
	letter-spacing: 0.01em;
	line-height: 1.08;
}

.pshsz-page-heading__link,
.pshsz-page-heading__link:visited,
.pshsz-page-heading__link:hover,
.pshsz-page-heading__link:focus {
	color: inherit;
	text-decoration: none;
}

.pshsz-page-heading__link:focus-visible {
	border-radius: 2px;
	outline: 2px solid currentColor;
	outline-offset: 4px;
}

.pshsz-page-heading h1,
.pshsz-page-heading__zh {
	margin: 4px 0 0;
	color: var(--pshsz-heading-orange);
	font-size: clamp(24px, 3vw, 34px);
	font-weight: 500;
	letter-spacing: 0.12em;
	line-height: 1.3;
}

.pshsz-page-heading--single {
	margin-bottom: 36px;
}

.pshsz-category-nav {
	margin: 0 auto 30px;
}

.pshsz-category-nav__all {
	display: flex;
	justify-content: flex-end;
	margin-bottom: 10px;
}

.pshsz-all-courses {
	border-bottom: 1px solid transparent;
	color: var(--pshsz-text-strong);
	font-size: 14px;
	text-decoration: none;
}

.pshsz-all-courses:hover,
.pshsz-all-courses:focus-visible,
.pshsz-all-courses.is-active {
	border-color: currentColor;
	color: var(--pshsz-heading-orange);
}

.pshsz-category-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 20px;
}

.pshsz-category-group {
	--pshsz-category: var(--pshsz-blue);
	min-width: 0;
}

.pshsz-category-group--pink {
	--pshsz-category: var(--pshsz-pink);
}

.pshsz-category-group--green {
	--pshsz-category: var(--pshsz-green);
}

.pshsz-category-group--gold {
	--pshsz-category: var(--pshsz-gold);
}

.pshsz-category-group__parent {
	display: flex;
	min-height: 64px;
	align-items: center;
	justify-content: center;
	flex-direction: column;
	border-radius: 6px 6px 0 0;
	background: var(--pshsz-category);
	color: var(--pshsz-text-strong);
	padding: 8px 12px;
	text-align: center;
	text-decoration: none;
	transition: box-shadow 160ms ease, transform 160ms ease;
}

.pshsz-category-group__parent strong {
	font-size: 22px;
	font-weight: 600;
	line-height: 1.2;
}

.pshsz-category-group__parent span {
	font-size: 15px;
	line-height: 1.35;
}

.pshsz-category-group__parent:hover,
.pshsz-category-group__parent:focus-visible,
.pshsz-category-group.is-active .pshsz-category-group__parent {
	color: var(--pshsz-text-strong);
	box-shadow: inset 0 0 0 2px rgba(40, 72, 100, 0.3);
}

.pshsz-category-group__parent:hover {
	transform: translateY(-1px);
}

.pshsz-category-group__children {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 5px;
	margin-top: 5px;
}

.pshsz-category-group__children a {
	display: flex;
	min-height: 38px;
	align-items: center;
	justify-content: center;
	border-radius: 0 0 4px 4px;
	background: var(--pshsz-category);
	color: var(--pshsz-text-strong);
	font-size: 15px;
	text-align: center;
	text-decoration: none;
	transition: box-shadow 160ms ease;
}

.pshsz-category-group__children a:hover,
.pshsz-category-group__children a:focus-visible,
.pshsz-category-group__children a.is-active {
	color: var(--pshsz-text-strong);
	box-shadow: inset 0 0 0 2px rgba(40, 72, 100, 0.3);
}

.pshsz-course-list-region {
	background: var(--pshsz-blue-soft);
	box-shadow: var(--pshsz-shadow);
	padding: 24px 28px;
}

.pshsz-course-shortcode .pshsz-course-list-region {
	background: transparent;
	box-shadow: none;
}

.pshsz-course-list {
	border-top: 1px solid var(--pshsz-line);
}

.pshsz-course-card {
	display: grid;
	grid-template-columns: 126px minmax(0, 1fr) 138px;
	gap: 22px;
	align-items: center;
	min-height: 160px;
	border-bottom: 1px solid var(--pshsz-line);
	padding: 16px 12px;
}

.pshsz-course-card.has-no-teacher {
	grid-template-columns: minmax(0, 1fr) 138px;
}

.pshsz-course-card.is-expired {
	background: rgba(255, 255, 255, 0.17);
}

.pshsz-course-card__teacher {
	align-self: stretch;
	border-right: 5px solid #faead3;
	padding-right: 12px;
}

.pshsz-teacher {
	display: flex;
	align-items: center;
	justify-content: center;
	flex-direction: column;
	color: var(--pshsz-gold-text);
	text-align: center;
	text-decoration: none;
}

a.pshsz-teacher:hover,
a.pshsz-teacher:focus-visible {
	color: #4f3108;
}

.pshsz-teacher__avatar {
	display: grid;
	width: 94px;
	height: 94px;
	place-items: center;
	overflow: hidden;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.52);
}

.pshsz-teacher__image {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.pshsz-teacher__placeholder {
	display: grid;
	width: 100%;
	height: 100%;
	place-items: center;
	color: var(--pshsz-white);
	font-size: 32px;
	background: linear-gradient(145deg, var(--pshsz-blue), #72b9de);
}

.pshsz-teacher__name {
	display: block;
	margin-top: 7px;
	font-size: 17px;
	line-height: 1.25;
}

.pshsz-course-card .pshsz-teacher--card,
.pshsz-course-card a.pshsz-teacher--card:hover,
.pshsz-course-card a.pshsz-teacher--card:focus-visible {
	color: #edb968;
}

.pshsz-course-card__body {
	min-width: 0;
}

.pshsz-course-card__title {
	margin: 0 0 16px;
	font-size: 22px;
	font-weight: 500;
	line-height: 1.45;
}

.pshsz-course-card__title a {
	color: #edb968;
	text-decoration: none;
}

.pshsz-course-card__title a:hover,
.pshsz-course-card__title a:focus-visible {
	color: #edb968;
	text-decoration: underline;
	text-underline-offset: 4px;
}

.pshsz-course-card__meta,
.pshsz-course-summary__meta {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 5px 28px;
	margin: 0;
}

.pshsz-course-card__meta div,
.pshsz-course-summary__meta div {
	display: flex;
	min-width: 0;
}

.pshsz-course-card__meta dt,
.pshsz-course-card__meta dd,
.pshsz-course-summary__meta dt,
.pshsz-course-summary__meta dd {
	margin: 0;
	font-size: 16px;
}

.pshsz-course-card__meta dt,
.pshsz-course-summary__meta dt {
	flex: 0 0 auto;
	color: var(--pshsz-text-strong);
}

.pshsz-course-card__meta dt,
.pshsz-course-card__meta dd {
	color: #737373;
}

.pshsz-course-card__price {
	display: flex;
	align-items: center;
	justify-content: center;
	flex-direction: column;
	gap: 8px;
}

.pshsz-price-pill {
	display: inline-flex;
	min-width: 132px;
	min-height: 38px;
	align-items: center;
	justify-content: center;
	border-radius: 999px;
	background: #edb968;
	color: #fff;
	font-size: 16px;
	font-weight: 600;
	letter-spacing: 0.06em;
	text-align: center;
	text-decoration: none;
}

a.pshsz-price-pill:hover,
a.pshsz-price-pill:focus-visible {
	background: #edb968;
	color: #fff;
}

.pshsz-course-status {
	color: var(--pshsz-text-strong);
	font-size: 13px;
}

.pshsz-empty-state {
	padding: 54px 20px;
	text-align: center;
}

.pshsz-empty-state h2 {
	margin: 0 0 8px;
	color: var(--pshsz-text-strong);
	font-size: 24px;
}

.pshsz-empty-state p {
	margin: 0;
}

.pshsz-course-list-region > .pshsz-empty-state h2,
.pshsz-course-list-region > .pshsz-empty-state p {
	color: #878887;
}

.pshsz-pagination {
	margin-top: 24px;
}

.pshsz-pagination .page-numbers {
	display: flex;
	align-items: center;
	justify-content: center;
	flex-wrap: wrap;
	gap: 8px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.pshsz-pagination a,
.pshsz-pagination span {
	display: inline-flex;
	min-width: 38px;
	min-height: 38px;
	align-items: center;
	justify-content: center;
	border-radius: 999px;
	background: rgba(255, 255, 255, 0.62);
	color: var(--pshsz-text-strong);
	padding: 4px 12px;
	text-decoration: none;
}

.pshsz-pagination .current,
.pshsz-pagination a:hover,
.pshsz-pagination a:focus-visible {
	background: var(--pshsz-gold);
	color: var(--pshsz-text-strong);
}

.pshsz-course-detail {
	display: grid;
	gap: 34px;
}

.pshsz-single-course {
	background: #fff;
}

.pshsz-single-course .pshsz-course-summary,
.pshsz-single-course .pshsz-info-card {
	box-shadow: none;
}

.pshsz-single-course .pshsz-course-summary {
	border-top: 2px solid #79daf2;
	border-bottom: 2px solid #79daf2;
	background: #fff;
}

.pshsz-course-summary {
	display: grid;
	grid-template-columns: minmax(300px, 1.08fr) minmax(300px, 0.92fr) 150px;
	gap: 20px;
	align-items: center;
	background: var(--pshsz-blue-soft);
	box-shadow: var(--pshsz-shadow);
	padding: 58px 26px;
}

.pshsz-course-summary__image {
	min-width: 0;
}

.pshsz-course-image,
.pshsz-course-image-placeholder {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 3 / 2;
	object-fit: cover;
}

.pshsz-course-image-placeholder {
	display: grid;
	place-items: center;
	border-radius: 5px;
	background: linear-gradient(145deg, #bfdef5, #8fc7e8);
	color: rgba(255, 255, 255, 0.84);
	font-size: 54px;
}

.pshsz-single-course .pshsz-course-image-placeholder {
	width: 460px;
	max-width: 100%;
	border-radius: 0;
}

.pshsz-course-summary__content {
	min-width: 0;
}

.pshsz-course-summary__content h1 {
	margin: 0 0 32px;
	color: #edb968;
	font-size: 23px;
	font-weight: 500;
	line-height: 1.4;
}

.pshsz-single-course .pshsz-course-summary__content h1 {
	color: #00b2e3;
}

.pshsz-course-summary__meta {
	grid-template-columns: 1fr;
	gap: 12px;
}

.pshsz-single-course .pshsz-course-summary__meta {
	gap: 7px;
}

.pshsz-course-summary__meta dt,
.pshsz-course-summary__meta dd {
	font-size: 18px;
}

.pshsz-single-course .pshsz-course-summary__meta div {
	column-gap: 8px;
}

.pshsz-single-course .pshsz-course-summary__meta dt,
.pshsz-single-course .pshsz-course-summary__meta dd {
	color: #878887;
}

.pshsz-course-summary__action {
	display: flex;
	align-items: center;
	justify-content: center;
	flex-direction: column;
	gap: 14px;
}

.pshsz-teacher--detail .pshsz-teacher__avatar {
	width: 82px;
	height: 82px;
	transform: scale(1.05);
}

.pshsz-single-course .pshsz-teacher--detail,
.pshsz-single-course a.pshsz-teacher--detail:hover,
.pshsz-single-course a.pshsz-teacher--detail:focus-visible {
	color: #00b2e3;
}

.pshsz-expired-message {
	margin: 18px 0 0;
	border-left: 4px solid var(--pshsz-gold);
	color: var(--pshsz-text-strong);
	padding-left: 12px;
}

.pshsz-registration-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border: 0;
	border-radius: 10px;
	background: #9b651b;
	color: var(--pshsz-white);
	font-weight: 600;
	line-height: 1.25;
	text-align: center;
	text-decoration: none;
	transition: background 160ms ease, transform 160ms ease;
}

.pshsz-registration-button__icon {
	display: block;
	flex: 0 0 auto;
	align-self: flex-end;
	width: 60px;
	height: auto;
	margin-left: 8px;
	margin-bottom: 3px;
}

a.pshsz-registration-button:hover,
a.pshsz-registration-button:focus-visible {
	background: #80500e;
	color: var(--pshsz-white);
	transform: translateY(-1px);
}

.pshsz-single-course .pshsz-registration-button,
.pshsz-single-course .pshsz-registration-button.is-disabled,
.pshsz-single-course a.pshsz-registration-button:hover,
.pshsz-single-course a.pshsz-registration-button:focus-visible {
	border-radius: 50px;
	background: #00b2e3;
}

.pshsz-registration-button.is-disabled {
	cursor: not-allowed;
	background: #697888;
	color: var(--pshsz-white);
	opacity: 1;
}

.pshsz-registration-button--compact {
	width: 180px;
	min-width: 124px;
	min-height: 40px;
	padding: 8px 18px;
	font-weight: 500;
}

.pshsz-registration-button--large {
	min-width: min(320px, 100%);
	min-height: 54px;
	padding: 13px 30px;
	font-size: 16px;
	font-weight: 500;
}

.pshsz-single-course .pshsz-registration-button--large {
	width: 100%;
	min-width: 0;
	height: 40px;
	min-height: 40px;
	padding: 5px 30px;
	line-height: 30px;
}

.pshsz-registration-info {
	padding: 0 6px;
}

.pshsz-registration-info > h2,
.pshsz-course-introduction > h2,
.pshsz-notices > h2 {
	margin: 0 0 20px;
	color: #edb968;
	font-size: 30px;
	font-weight: 500;
	text-align: center;
}

.pshsz-single-course .pshsz-registration-info > h2 {
	color: #00b2e3;
	font-size: 20px;
	font-weight: 400;
}

.pshsz-single-course .pshsz-course-introduction > h2 {
	color: #00b2e3;
	font-size: 20px;
	font-weight: 400;
}

.pshsz-single-course .pshsz-notices > h2 {
	margin-top: 25px;
	color: #898989;
	font-size: 20px;
	font-weight: 400;
}

.pshsz-info-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 16px;
}

.pshsz-single-course .pshsz-info-grid {
	grid-template-columns: 1fr;
}

.pshsz-info-card {
	border-top: 5px solid var(--pshsz-gold);
	background: #fff;
	box-shadow: 0 8px 22px rgba(82, 105, 135, 0.09);
	padding: 18px 20px;
}

.pshsz-single-course .pshsz-info-card {
	border-top: 0;
	border-left: 5px solid var(--pshsz-gold);
}

.pshsz-info-card h3 {
	margin: 0 0 9px;
	color: #edb968;
	font-size: 19px;
	font-weight: 500;
}

.pshsz-single-course .pshsz-info-card--parent,
.pshsz-single-course .pshsz-info-card--gift {
	border-left: 20px solid #7dd8f1;
	background: #eff9fe;
	color: #00b2e3;
}

.pshsz-single-course .pshsz-info-card--line,
.pshsz-single-course .pshsz-info-card--payment {
	border-left: 20px solid #ffafa9;
	background: #fff4f4;
	color: #ec6b5d;
}

.pshsz-single-course .pshsz-info-card--clothing {
	border-left: 20px solid #a8dea0;
	background: #f4faf2;
	color: #6abf4b;
}

.pshsz-single-course .pshsz-info-card--parent h3,
.pshsz-single-course .pshsz-info-card--gift h3,
.pshsz-single-course .pshsz-info-card--parent > div,
.pshsz-single-course .pshsz-info-card--gift > div,
.pshsz-single-course .pshsz-info-card--parent > div p,
.pshsz-single-course .pshsz-info-card--gift > div p {
	color: #00b2e3;
}

.pshsz-single-course .pshsz-info-card--line h3,
.pshsz-single-course .pshsz-info-card--payment h3,
.pshsz-single-course .pshsz-info-card--line > div,
.pshsz-single-course .pshsz-info-card--payment > div,
.pshsz-single-course .pshsz-info-card--line > div p,
.pshsz-single-course .pshsz-info-card--payment > div p {
	color: #ec6b5d;
}

.pshsz-single-course .pshsz-info-card--clothing h3,
.pshsz-single-course .pshsz-info-card--clothing > div,
.pshsz-single-course .pshsz-info-card--clothing > div p {
	color: #6abf4b;
}

.pshsz-info-card p:last-child,
.pshsz-notice-panel__content > :last-child,
.pshsz-course-introduction__content > :last-child {
	margin-bottom: 0;
}

.pshsz-notices {
	display: block;
}

.pshsz-notices__panels {
	display: grid;
	gap: 10px;
}

.pshsz-notice-panel {
	border: 1px solid #c6dced;
	border-radius: 8px;
	background: var(--pshsz-white);
	overflow: hidden;
}

.pshsz-notice-panel__title {
	margin: 0;
	color: var(--pshsz-text-strong);
	font-size: 18px;
	font-weight: 600;
	padding: 15px 20px;
}

.pshsz-notice-panel__content {
	padding: 12px 22px 20px;
}

.pshsz-notice-panel__content ul {
	margin-bottom: 0;
	padding-left: 1.35em;
}

.pshsz-notice-panel__content > p {
	margin: 10px 0 0;
}

.pshsz-single-course .pshsz-notice-panel {
	border-width: 0;
	border-color: #fff;
	border-radius: 0;
	color: #898989;
}

.pshsz-single-course .pshsz-notice-panel__title,
.pshsz-single-course .pshsz-notice-panel__content,
.pshsz-single-course .pshsz-notice-panel__content ul,
.pshsz-single-course .pshsz-notice-panel__content p {
	color: #898989;
}

.pshsz-course-introduction {
	background: transparent;
	padding: 34px clamp(20px, 5vw, 60px);
}

.pshsz-single-course .pshsz-course-introduction {
	border-top: 2px solid #79daf2;
	border-bottom: 2px solid #79daf2;
}

.pshsz-intro-age {
	color: var(--pshsz-text-strong);
	font-weight: 600;
}

.pshsz-single-course .pshsz-intro-age {
	display: flex;
	gap: 8px;
	color: #878887;
	font-weight: 400;
}

.pshsz-single-course .pshsz-course-introduction__content {
	color: #878887;
}

.pshsz-course-final-action {
	display: flex;
	align-items: center;
	justify-content: center;
	flex-direction: column;
	gap: 16px;
	padding: 6px 0 20px;
	text-align: center;
}

html:has(> body.post-type-archive-pshsz_teacher),
html:has(> body.tax-pshsz_teacher_level),
html:has(> body.single-pshsz_teacher),
html:has(> body.post-type-archive-pshsz_media),
html:has(> body.tax-pshsz_media_type),
html:has(> body.single-pshsz_media),
html:has(> body.blog),
html:has(> body.single-post) {
	overflow-x: clip;
	overflow-y: auto;
	scrollbar-gutter: stable;
}

.pshsz-teacher-archive,
.pshsz-single-teacher,
.pshsz-teacher-detail,
.pshsz-media-archive,
.pshsz-single-media,
.pshsz-media-detail,
.pshsz-article-archive,
.pshsz-single-article,
.pshsz-article-detail {
	--pshsz-teacher-green: #6abf4b;
	--pshsz-teacher-green-dark: #6abf4b;
	--pshsz-teacher-green-accent: #6abf4b;
	--pshsz-teacher-heading: rgba(106, 191, 75, 0.3);
	--pshsz-teacher-green-soft: rgba(106, 191, 75, 0.3);
	--pshsz-teacher-green-pale: rgba(106, 191, 75, 0.3);
	--pshsz-teacher-line: rgba(106, 191, 75, 0.5);
	--pshsz-teacher-text: #6abf4b;
}

.pshsz-teacher-archive,
.pshsz-single-teacher {
	background: #fff;
	color: var(--pshsz-teacher-text);
	padding-top: 138px;
}

.pshsz-teacher-intro {
	position: relative;
	display: grid;
	width: calc(100vw + 30px);
	grid-template-areas: "copy visual";
	grid-template-columns: 54.55% 45.45%;
	column-gap: 0;
	align-items: end;
	margin: 0 0 169px 50%;
	transform: translateX(-50%);
}

.pshsz-teacher-intro__copy {
	--pshsz-teacher-copy-inset: 54px;
	--pshsz-teacher-copy-left: max(162.2px, calc((100vw - 1565.6px) / 2));
	position: relative;
	display: grid;
	width: min(725px, calc(100% - var(--pshsz-teacher-copy-left) - 5px));
	height: 244px;
	grid-template-rows: auto minmax(0, 1fr) auto;
	grid-area: copy;
	align-self: end;
	margin-left: var(--pshsz-teacher-copy-left);
}

.pshsz-teacher-intro__copy::before {
	position: absolute;
	z-index: 2;
	top: 64px;
	bottom: 16px;
	left: 0;
	width: 25.6px;
	background: url("../images/teacher-heading-bracket.png") center / 100% 100% no-repeat;
	content: "";
	pointer-events: none;
}

.pshsz-teacher-intro .pshsz-page-heading {
	width: min(671px, calc(100% - var(--pshsz-teacher-copy-inset)));
	grid-row: 1;
	margin: 0 0 0 var(--pshsz-teacher-copy-inset);
	text-align: left;
}

.pshsz-teacher-intro .pshsz-page-heading__en {
	color: var(--pshsz-teacher-heading);
	font-size: 48px;
}

.pshsz-teacher-intro .pshsz-page-heading h1,
.pshsz-teacher-intro .pshsz-page-heading__zh {
	color: var(--pshsz-teacher-green);
	font-size: clamp(25px, 2.5vw, 30px);
}

.pshsz-teacher-intro__visual {
	position: relative;
	grid-area: visual;
	align-self: center;
	margin: 0;
	aspect-ratio: 2.19 / 1;
}

.pshsz-teacher-intro__visual::after {
	position: absolute;
	z-index: 0;
	top: 12px;
	right: 0;
	bottom: -12px;
	left: 14px;
	border-bottom: 1px solid var(--pshsz-teacher-green-accent);
	border-left: 1px solid var(--pshsz-teacher-green-accent);
	border-bottom-left-radius: 10px;
	content: "";
	pointer-events: none;
}

.pshsz-teacher-intro__image {
	position: relative;
	z-index: 1;
	display: block;
	width: 100%;
	height: 100%;
	border-radius: 10px 0 0 10px;
	object-fit: cover;
	object-position: center;
}

.pshsz-article-archive .pshsz-article-intro__image {
	border-radius: 6px 0 0 6px;
}

.pshsz-teacher-list-region {
	background: transparent;
	box-shadow: none;
	padding: 0;
}

.pshsz-teacher-level-nav {
	display: grid;
	width: min(671px, calc(100% - var(--pshsz-teacher-copy-inset)));
	grid-row: 3;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	column-gap: 17px;
	align-self: end;
	margin: 0 0 0 var(--pshsz-teacher-copy-inset);
}

.pshsz-teacher-level-nav__link {
	display: flex;
	min-height: 38px;
	align-items: center;
	justify-content: center;
	border: 1px solid transparent;
	border-radius: 8px;
	background: var(--pshsz-teacher-green-soft);
	color: var(--pshsz-teacher-green-dark);
	padding: 5px 8px;
	font-size: 16px;
	font-weight: 500;
	letter-spacing: 0.13em;
	text-align: center;
	text-decoration: none;
	white-space: nowrap;
	transition: background-color 160ms ease, color 160ms ease, transform 160ms ease;
}

.pshsz-teacher-level-nav__link:hover,
.pshsz-teacher-level-nav__link:focus-visible,
.pshsz-teacher-level-nav__link.is-active {
	background: var(--pshsz-teacher-green);
	color: #fff;
	transform: translateY(-1px);
}

.pshsz-teacher-list-heading,
.pshsz-teacher-name-heading {
	display: flex;
	align-items: center;
	gap: 0;
	color: #fff;
	text-align: center;
}

.pshsz-teacher-list-heading::before,
.pshsz-teacher-list-heading::after,
.pshsz-teacher-name-heading::before,
.pshsz-teacher-name-heading::after {
	height: 2px;
	flex: 1;
	background: var(--pshsz-teacher-line);
	content: "";
}

.pshsz-teacher-list-heading,
.pshsz-teacher-name-heading {
	margin-right: 22.5px;
	margin-left: 22.5px;
}

.pshsz-teacher-list-heading span,
.pshsz-teacher-name-heading h1 {
	min-width: 135px;
	margin: 0;
	border-radius: 10px;
	background: var(--pshsz-teacher-green);
	color: #fff;
	padding: 3px 22px;
	font-size: 20px;
	font-weight: 500;
	letter-spacing: 0.15em;
	line-height: 1.25;
}

.pshsz-teacher-grid {
	display: block;
	padding: 0 22.5px;
}

.pshsz-teacher-card {
	--pshsz-teacher-card-media-size: 171px;
	min-width: 0;
}

.pshsz-teacher-card__link {
	display: grid;
	min-width: 0;
	grid-template-areas: "media divider body";
	grid-template-columns: var(--pshsz-teacher-card-media-size) 10px minmax(0, 1fr);
	gap: 105.5px;
	align-items: center;
	border-bottom: 2px solid var(--pshsz-teacher-line);
	background: #fff;
	color: var(--pshsz-teacher-text);
	padding: 0 26px;
	text-decoration: none;
}

.pshsz-teacher-card.is-reversed .pshsz-teacher-card__link {
	grid-template-areas: "body divider media";
	grid-template-columns: minmax(0, 1fr) 10px var(--pshsz-teacher-card-media-size);
}

.pshsz-teacher-card__media-group {
	display: flex;
	min-height: 270px;
	grid-area: media;
	align-items: center;
	color: var(--pshsz-teacher-text);
	flex-direction: column;
	justify-content: center;
	text-align: center;
	text-decoration: none;
	transition: transform 160ms ease;
}

.pshsz-teacher-card__link:hover .pshsz-teacher-card__media-group,
.pshsz-teacher-card__link:focus-visible .pshsz-teacher-card__media-group {
	color: var(--pshsz-teacher-green-dark);
	transform: translateY(-3px);
}

.pshsz-teacher-card__link:focus-visible {
	outline: 3px solid #1677a8;
	outline-offset: -3px;
}

.pshsz-teacher-card__media {
	display: block;
	width: var(--pshsz-teacher-card-media-size);
	height: var(--pshsz-teacher-card-media-size);
	overflow: hidden;
	margin: 0 auto;
	border-radius: 50%;
	background: var(--pshsz-teacher-green-soft);
}

.pshsz-teacher-card__image,
.pshsz-teacher-card__placeholder {
	display: block;
	width: 100%;
	height: 100%;
	border-radius: 50%;
	object-fit: cover;
}

.pshsz-teacher-card__placeholder {
	background: var(--pshsz-teacher-green-accent);
}

.pshsz-teacher-card__name {
	display: block;
	margin-top: 15px;
	color: currentColor;
	font-size: 20px;
	font-weight: 500;
	letter-spacing: 0.15em;
	line-height: 1.2;
}

.pshsz-teacher-card__divider {
	width: 9px;
	height: auto;
	min-height: 0;
	grid-area: divider;
	align-self: stretch;
	justify-self: center;
	margin: 104px 0;
	background: var(--pshsz-teacher-green-pale);
	transform: scaleY(2);
	transform-origin: center;
}

.pshsz-teacher-card__body {
	display: flex;
	min-width: 0;
	grid-area: body;
	align-items: center;
	flex-direction: column;
	justify-content: center;
	color: var(--pshsz-teacher-text);
	padding: 95px 0;
	text-align: center;
}

.pshsz-teacher-card__excerpt,
.pshsz-teacher-card__experience {
	margin: 0;
	font-size: 16px;
	letter-spacing: 0.13em;
}

.pshsz-teacher-card__excerpt {
	margin-bottom: 0;
	font-size: 16px;
	line-height: 31px;
	white-space: pre-wrap;
}

.pshsz-teacher-card__experience-title {
	margin: 0 0 26px;
	color: var(--pshsz-teacher-green-dark);
	font-size: 16px;
	font-weight: 600;
	letter-spacing: 0.16em;
	line-height: 24px;
}

.pshsz-teacher-card__experience-item {
	display: block;
	line-height: 23px;
}

.pshsz-teacher-card__experience-item + .pshsz-teacher-card__experience-item {
	margin-top: 20px;
}

.pshsz-teacher-back {
	margin: 0;
	font-size: 14px;
	text-align: right;
}

.pshsz-teacher-back a {
	color: var(--pshsz-teacher-green-dark);
	text-decoration: none;
}

.pshsz-teacher-back a:hover,
.pshsz-teacher-back a:focus-visible {
	color: var(--pshsz-teacher-green);
	text-decoration: underline;
	text-underline-offset: 4px;
}

.pshsz-teacher-detail {
	display: grid;
	gap: 0;
}

.pshsz-teacher-name-heading {
	margin-top: 0;
	margin-bottom: 0;
}

.pshsz-teacher-profile {
	display: grid;
	grid-template-columns: minmax(320px, 480px) minmax(0, 1fr);
	column-gap: clamp(54px, 7.5vw, 90px);
	row-gap: 48px;
	align-items: start;
	background: #fff;
	box-shadow: none;
	padding: clamp(52px, 7vw, 82px) 14px clamp(48px, 7vw, 72px);
}

.pshsz-teacher-profile__media {
	position: relative;
	padding: 0 12px 12px 0;
}

.pshsz-teacher-profile__media::after {
	position: absolute;
	z-index: 0;
	top: 12px;
	right: 0;
	bottom: 0;
	left: 12px;
	border: 2px solid var(--pshsz-teacher-green);
	border-radius: 10px;
	content: "";
}

.pshsz-teacher-profile__image,
.pshsz-teacher-profile__placeholder {
	position: relative;
	z-index: 1;
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 1 / 1;
	border-radius: 10px;
	object-fit: cover;
}

.pshsz-teacher-profile__placeholder {
	display: grid;
	place-items: center;
	background: var(--pshsz-teacher-green);
	color: #fff;
	font-size: 72px;
}

.pshsz-teacher-profile__content {
	align-self: center;
	margin-bottom: 12px;
	min-width: 0;
	color: var(--pshsz-teacher-text);
	text-align: left;
}

.pshsz-teacher-profile__content > h1,
.pshsz-teacher-profile__content > h2 {
	margin: 0 0 18px;
	color: var(--pshsz-teacher-green-dark);
	font-size: clamp(26px, 3vw, 34px);
	font-weight: 600;
	line-height: 1.25;
}

.pshsz-teacher-profile__lead {
	margin: 0 0 32px;
	color: var(--pshsz-teacher-text);
	font-size: 17px;
	letter-spacing: 0.04em;
	line-height: 2.05;
}

.pshsz-teacher-profile__lead > :first-child {
	margin-top: 0;
}

.pshsz-teacher-profile__lead > :last-child {
	margin-bottom: 0;
}

.pshsz-teacher-profile__content > .pshsz-teacher-profile__lead:last-child {
	margin-bottom: 0;
}

.pshsz-teacher-profile__experience {
	width: 100%;
	min-width: 0;
	grid-column: 1 / -1;
	color: var(--pshsz-teacher-text);
	text-align: center;
}

.pshsz-teacher-profile__experience-title {
	margin: 0 0 24px;
	color: var(--pshsz-teacher-green-dark);
	font-size: 17px;
	font-weight: 600;
	letter-spacing: 0.16em;
	line-height: 1.5;
}

.pshsz-teacher-profile__biography {
	font-size: 15px;
	letter-spacing: 0.035em;
	line-height: 2.15;
}

.pshsz-teacher-profile__biography > :first-child {
	margin-top: 0;
}

.pshsz-teacher-profile__biography > :last-child {
	margin-bottom: 0;
}

.pshsz-teacher-profile--story {
	grid-template-columns: 456px minmax(0, 1fr);
	column-gap: 68px;
	row-gap: 65px;
	margin: 0 22.5px;
	border-bottom: 2px solid var(--pshsz-teacher-line);
	padding: 84px 0 84px 12px;
}

.pshsz-teacher-profile--story .pshsz-teacher-profile__media {
	width: 456px;
	padding: 0 20px 20px 0;
}

.pshsz-teacher-profile--story .pshsz-teacher-profile__media::after {
	top: 20px;
	right: 0;
	bottom: 0;
	left: 20px;
	border-width: 1px;
}

.pshsz-teacher-profile--story .pshsz-teacher-profile__image,
.pshsz-teacher-profile--story .pshsz-teacher-profile__placeholder {
	aspect-ratio: 1 / 1;
}

.pshsz-teacher-story__lead,
.pshsz-teacher-story__continuation {
	color: var(--pshsz-teacher-text);
	font-size: 16px;
	letter-spacing: 0.13em;
	line-height: 31px;
	text-align: left;
}

.pshsz-teacher-story__lead {
	align-self: start;
	padding-top: 0;
}

.pshsz-teacher-profile--story.pshsz-teacher-profile--experience-first .pshsz-teacher-profile__experience {
	grid-column: 2;
}

.pshsz-teacher-profile--story.pshsz-teacher-profile--experience-first .pshsz-teacher-story__lead {
	width: calc(100% + 12px);
	grid-column: 1 / -1;
	margin-left: -12px;
}

.pshsz-teacher-story__continuation {
	width: calc(100% + 12px);
	grid-column: 1 / -1;
	margin-left: -12px;
}

.pshsz-teacher-story__lead p,
.pshsz-teacher-story__continuation p {
	margin: 0;
	white-space: normal;
}

.pshsz-teacher-story__lead p + p,
.pshsz-teacher-story__continuation p + p {
	margin-top: 25px;
}

.pshsz-teacher-courses > h2 {
	margin: 0 0 20px;
	color: var(--pshsz-teacher-green-dark);
	font-size: 30px;
	font-weight: 500;
	text-align: center;
}

.pshsz-teacher-level-nav.pshsz-media-type-nav {
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

.pshsz-teacher-level-nav.pshsz-article-category-nav {
	width: min(372px, calc(100% - var(--pshsz-teacher-copy-inset)));
	grid-template-columns: repeat(2, minmax(0, 1fr));
	column-gap: 18px;
}

.pshsz-teacher-level-nav.pshsz-media-type-nav.pshsz-teacher-level-nav--wave {
	width: min(568px, calc(100% - var(--pshsz-teacher-copy-inset)));
	grid-template-columns: repeat(6, minmax(0, 1fr));
	column-gap: 18px;
	row-gap: 20px;
}

.pshsz-teacher-level-nav--wave .pshsz-media-type-nav__link {
	grid-column: span 2;
}

.pshsz-media-intro .pshsz-media-type-nav .pshsz-media-type-nav__link,
.pshsz-teacher-level-nav--wave .pshsz-media-type-nav__link {
	--pshsz-course-intro-tab: #6abf4a;
	--pshsz-course-intro-tab-image: url("../images/course-intro-nav-aqua-kids-inactive.png");
	--pshsz-course-intro-tab-image-active: url("../images/course-intro-nav-aqua-kids-active.png");
	position: relative;
	min-height: 0;
	align-items: center;
	justify-content: center;
	border: 0;
	border-radius: 0;
	background: transparent;
	color: var(--pshsz-course-intro-tab);
	padding: 0;
	aspect-ratio: 367 / 77;
	font-size: 16px;
	font-weight: 500;
	letter-spacing: 0.13em;
	line-height: 1;
	text-decoration: none;
	transition: color 160ms ease, transform 160ms ease;
}

.pshsz-media-intro .pshsz-media-type-nav .pshsz-media-type-nav__link::before,
.pshsz-teacher-level-nav--wave .pshsz-media-type-nav__link::before {
	position: absolute;
	z-index: 0;
	inset: 0;
	background: var(--pshsz-course-intro-tab-image) center / 100% 100% no-repeat;
	content: "";
	pointer-events: none;
}

.pshsz-media-intro .pshsz-media-type-nav .pshsz-media-type-nav__link:hover,
.pshsz-media-intro .pshsz-media-type-nav .pshsz-media-type-nav__link:focus-visible,
.pshsz-media-intro .pshsz-media-type-nav .pshsz-media-type-nav__link.is-active,
.pshsz-teacher-level-nav--wave .pshsz-media-type-nav__link:hover,
.pshsz-teacher-level-nav--wave .pshsz-media-type-nav__link:focus-visible,
.pshsz-teacher-level-nav--wave .pshsz-media-type-nav__link.is-active {
	background: transparent;
	color: #fff;
	transform: translateY(-1px);
}

.pshsz-media-intro .pshsz-media-type-nav .pshsz-media-type-nav__link:hover::before,
.pshsz-media-intro .pshsz-media-type-nav .pshsz-media-type-nav__link:focus-visible::before,
.pshsz-media-intro .pshsz-media-type-nav .pshsz-media-type-nav__link.is-active::before,
.pshsz-teacher-level-nav--wave .pshsz-media-type-nav__link:hover::before,
.pshsz-teacher-level-nav--wave .pshsz-media-type-nav__link:focus-visible::before,
.pshsz-teacher-level-nav--wave .pshsz-media-type-nav__link.is-active::before {
	background-image: var(--pshsz-course-intro-tab-image-active);
}

.pshsz-media-intro .pshsz-media-type-nav__label,
.pshsz-teacher-level-nav--wave .pshsz-media-type-nav__label {
	position: relative;
	z-index: 1;
}

.pshsz-media-list-region {
	min-width: 0;
	padding: 0 22.5px;
}

.pshsz-media-grid {
	display: grid;
	min-width: 0;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 30px 22px;
}

.pshsz-media-card {
	min-width: 0;
	overflow: hidden;
	border: 1px solid var(--pshsz-teacher-line);
	border-radius: 10px;
	background: #fff;
	box-shadow: 0 10px 28px rgba(60, 120, 47, 0.08);
	transition: border-color 160ms ease, box-shadow 160ms ease, transform 160ms ease;
}

.pshsz-media-card:hover,
.pshsz-media-card:focus-within {
	border-color: var(--pshsz-teacher-green);
	box-shadow: 0 14px 32px rgba(60, 120, 47, 0.14);
	transform: translateY(-3px);
}

.pshsz-media-list-region:not(.pshsz-article-list-region) .pshsz-media-card,
.pshsz-media-list-region:not(.pshsz-article-list-region) .pshsz-media-card:hover,
.pshsz-media-list-region:not(.pshsz-article-list-region) .pshsz-media-card:focus-within {
	box-shadow: none;
}

.pshsz-media-card__image-link {
	display: block;
	color: var(--pshsz-teacher-green-dark);
	text-decoration: none;
}

.pshsz-media-card__media {
	display: block;
	overflow: hidden;
	background: var(--pshsz-teacher-green-soft);
	aspect-ratio: 2.1 / 1;
}

.pshsz-media-card__image,
.pshsz-media-card__placeholder {
	display: block;
	width: 100%;
	height: 100%;
}

.pshsz-media-card__image {
	object-fit: cover;
	transition: transform 240ms ease;
}

.pshsz-media-card:hover .pshsz-media-card__image,
.pshsz-media-card:focus-within .pshsz-media-card__image {
	transform: scale(1.025);
}

.pshsz-article-list-region .pshsz-article-card,
.pshsz-article-list-region .pshsz-article-card:hover,
.pshsz-article-list-region .pshsz-article-card:focus-within {
	border-radius: 6px;
	box-shadow: none;
}

.pshsz-media-card__placeholder {
	display: grid;
	place-items: center;
	background: var(--pshsz-teacher-green-soft);
	color: var(--pshsz-teacher-green-dark);
	font-size: 18px;
	font-weight: 600;
	letter-spacing: 0.16em;
}

.pshsz-media-card__body {
	min-width: 0;
	padding: 18px 20px 22px;
}

.pshsz-media-card__meta,
.pshsz-media-detail__meta {
	display: flex;
	min-width: 0;
	align-items: center;
	justify-content: center;
	gap: 10px 14px;
	color: var(--pshsz-teacher-text);
	font-size: 14px;
	letter-spacing: 0.06em;
}

.pshsz-media-card__meta {
	justify-content: space-between;
}

.pshsz-media-card__type,
.pshsz-media-detail__type {
	border: 1px solid var(--pshsz-teacher-green);
	border-radius: 999px;
	color: var(--pshsz-teacher-green-dark);
	padding: 2px 12px;
	line-height: 1.55;
	text-decoration: none;
}

.pshsz-media-card__type:hover,
.pshsz-media-card__type:focus-visible,
.pshsz-media-detail__type:hover,
.pshsz-media-detail__type:focus-visible {
	background: var(--pshsz-teacher-green);
	color: #fff;
}

.pshsz-media-card__date {
	white-space: nowrap;
}

.pshsz-media-card__title {
	margin: 16px 0 0;
	font-size: 20px;
	font-weight: 500;
	letter-spacing: 0.04em;
	line-height: 1.55;
}

.pshsz-media-list-region:not(.pshsz-article-list-region) .pshsz-media-card__title {
	font-size: 16px;
}

.pshsz-article-list-region .pshsz-article-card .pshsz-media-card__title {
	font-size: 15px;
	line-height: 1.3em;
}

.pshsz-media-card__title a {
	color: var(--pshsz-teacher-green-dark);
	text-decoration: none;
	overflow-wrap: anywhere;
}

.pshsz-media-card__title a:hover,
.pshsz-media-card__title a:focus-visible {
	color: #3d8e2e;
}

.pshsz-media-pagination {
	margin-top: 42px;
}

.pshsz-media-empty-state {
	border: 1px solid var(--pshsz-teacher-line);
	border-radius: 10px;
	background: #fff;
}

.pshsz-article-list-region .pshsz-media-empty-state {
	border: 0 solid #fff;
	border-radius: 0;
}

.pshsz-article-list-region .pshsz-media-empty-state h2,
.pshsz-article-list-region .pshsz-media-empty-state p {
	color: #878887;
}

.pshsz-media-detail {
	width: min(940px, 100%);
	min-width: 0;
	margin: 0 auto;
	border-top: 2px solid var(--pshsz-teacher-line);
	color: #4c7350;
	padding: clamp(42px, 6vw, 72px) 0 20px;
}

.pshsz-media-detail__header {
	margin: 0 auto clamp(30px, 5vw, 48px);
	text-align: center;
}

.pshsz-media-detail__header h1 {
	margin: 20px 0 0;
	color: var(--pshsz-teacher-green-dark);
	font-size: clamp(28px, 4vw, 42px);
	font-weight: 500;
	letter-spacing: 0.06em;
	line-height: 1.45;
	overflow-wrap: anywhere;
}

.pshsz-article-detail .pshsz-media-detail__header h1 {
	font-size: clamp(24px, 3.2vw, 30px);
	font-weight: 400;
}

.pshsz-media-detail__visual,
.pshsz-media-detail__placeholder {
	overflow: hidden;
	margin: 0 0 clamp(30px, 5vw, 48px);
	border: 1px solid var(--pshsz-teacher-line);
	border-radius: 10px;
	background: var(--pshsz-teacher-green-soft);
}

.pshsz-media-detail__image {
	display: block;
	width: 100%;
	height: auto;
}

.pshsz-media-detail__placeholder {
	display: grid;
	place-items: center;
	color: var(--pshsz-teacher-green-dark);
	font-size: 24px;
	font-weight: 600;
	letter-spacing: 0.16em;
	aspect-ratio: 16 / 9;
}

.pshsz-media-detail__excerpt {
	margin: 0 0 30px;
	border-left: 4px solid var(--pshsz-teacher-green);
	color: var(--pshsz-teacher-green-dark);
	padding: 2px 0 2px 20px;
	font-size: 18px;
	font-weight: 500;
	letter-spacing: 0.04em;
	line-height: 1.9;
}

.pshsz-article-detail__byline {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 6px 9px;
	margin: 0 0 24px;
	padding: 0;
	list-style: none;
	color: #3a4f66;
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0;
	line-height: 1.3;
	text-transform: uppercase;
}

.pshsz-article-detail__byline li {
	display: inline-flex;
	align-items: center;
	margin: 0;
}

.pshsz-article-detail__byline li:not(:last-child)::after {
	content: "-";
	margin-left: 9px;
}

.pshsz-article-detail__avatar {
	width: 25px;
	height: 25px;
	margin-right: 6px;
	border-radius: 50%;
	object-fit: cover;
}

.pshsz-media-detail__content {
	min-width: 0;
	color: #2b2b2b;
	font-size: 16px;
	letter-spacing: 0.035em;
	line-height: 2;
	overflow-wrap: anywhere;
}

.pshsz-article-detail .pshsz-media-detail__content > blockquote {
	color: #636363;
}

.pshsz-article-detail .pshsz-media-detail__content > p {
	color: #454545;
}

.pshsz-article-detail .pshsz-media-detail__content > p.has-medium-font-size {
	color: #2b2b2b;
}

.pshsz-media-detail__content > :first-child {
	margin-top: 0;
}

.pshsz-media-detail__content > :last-child {
	margin-bottom: 0;
}

.pshsz-media-detail__content img,
.pshsz-media-detail__content video,
.pshsz-media-detail__content iframe {
	max-width: 100%;
}

.pshsz-media-detail__content pre {
	max-width: 100%;
	overflow-x: auto;
}

.pshsz-media-password-form {
	border: 1px solid var(--pshsz-teacher-line);
	border-radius: 10px;
}

.pshsz-article-category-nav__link {
	line-height: 1.35;
	white-space: normal;
}

.pshsz-article-search {
	display: flex;
	justify-content: center;
	margin: 0 0 24px;
}

.pshsz-article-search .screen-reader-text {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	clip-path: inset(50%);
	white-space: nowrap;
}

.pshsz-article-search__controls {
	display: flex;
	width: min(544px, 100%);
	min-width: 0;
	gap: 5px;
}

.pshsz-article-search__input {
	flex: 1 1 auto;
	width: 100%;
	height: 40px;
	min-width: 0;
	border: 1px solid var(--pshsz-teacher-line);
	border-radius: 8px;
	background: #fff;
	color: #4c7350;
	padding: 6px 14px;
	font-size: 16px;
	line-height: 1.5;
}

.pshsz-article-search__input:focus,
.pshsz-article-search__input:focus-visible {
	border-color: var(--pshsz-teacher-green) !important;
	box-shadow: inset 0 0 0 1px var(--pshsz-teacher-green);
	outline: 0;
}

.pshsz-article-search__submit {
	width: 110px;
	height: 40px;
	flex: 0 0 110px;
	border: 1px solid var(--pshsz-teacher-green-soft) !important;
	border-radius: 8px;
	background: var(--pshsz-teacher-green-soft) !important;
	color: var(--pshsz-teacher-green-dark) !important;
	cursor: pointer;
	padding: 0 10px;
	font-size: 16px;
	font-weight: 500;
	letter-spacing: 0.08em;
	line-height: 1.5;
	transition: background-color 160ms ease, border-color 160ms ease;
}

.pshsz-article-search__submit:hover,
.pshsz-article-search__submit:focus-visible {
	border-color: var(--pshsz-teacher-green) !important;
	background: var(--pshsz-teacher-green) !important;
	color: #fff !important;
}

.pshsz-disclaimer {
	margin: 0;
	color: #f96c5d;
	font-size: 14px;
}

.pshsz-single-course .pshsz-disclaimer {
	color: #878887;
}

.pshsz-course-module a:focus-visible,
.pshsz-course-module summary:focus-visible {
	outline: 3px solid #1677a8;
	outline-offset: 3px;
}

@media (max-width: 1279px) {
	.pshsz-teacher-archive,
	.pshsz-single-teacher {
		padding-top: 76px;
	}

	.pshsz-teacher-intro {
		width: 100%;
		grid-template-columns: minmax(0, 500px) minmax(0, 1fr);
		column-gap: 32px;
		margin: 0 0 132px;
		transform: none;
	}

	.pshsz-teacher-intro__copy {
		--pshsz-teacher-copy-inset: 32px;
		width: 100%;
		margin-left: 0;
	}

	.pshsz-teacher-intro .pshsz-page-heading {
		width: calc(100% - var(--pshsz-teacher-copy-inset));
		margin: 0 0 0 var(--pshsz-teacher-copy-inset);
	}

	.pshsz-teacher-intro__visual {
		aspect-ratio: 2.18 / 1;
	}

	.pshsz-teacher-level-nav {
		width: calc(100% - var(--pshsz-teacher-copy-inset));
		column-gap: 20px;
		margin: 0 0 0 var(--pshsz-teacher-copy-inset);
	}
}

@media (max-width: 900px) {
	html:has(> body.post-type-archive-pshsz_teacher),
	html:has(> body.tax-pshsz_teacher_level),
	html:has(> body.single-pshsz_teacher),
	html:has(> body.post-type-archive-pshsz_media),
	html:has(> body.tax-pshsz_media_type),
	html:has(> body.single-pshsz_media),
	html:has(> body.blog),
	html:has(> body.single-post) {
		scrollbar-gutter: stable;
	}

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

	.pshsz-teacher-intro {
		grid-template-areas:
			"copy"
			"visual";
		grid-template-columns: 1fr;
		row-gap: 30px;
		margin-bottom: 90px;
	}

	.pshsz-teacher-intro .pshsz-page-heading {
		margin-bottom: 0;
	}

	.pshsz-teacher-intro__visual {
		width: 100%;
		max-width: 700px;
		justify-self: center;
	}

	.pshsz-teacher-level-nav {
		grid-template-columns: repeat(4, minmax(0, 1fr));
	}

	.pshsz-teacher-card {
		--pshsz-teacher-card-media-size: 152px;
	}

	.pshsz-teacher-card__link {
		grid-template-columns: var(--pshsz-teacher-card-media-size) 8px minmax(0, 1fr);
		gap: 46px;
		padding: 0 8px;
	}

	.pshsz-teacher-card.is-reversed .pshsz-teacher-card__link {
		grid-template-columns: minmax(0, 1fr) 8px var(--pshsz-teacher-card-media-size);
	}

	.pshsz-teacher-card__media-group {
		min-height: 246px;
	}

	.pshsz-teacher-card__media {
		width: var(--pshsz-teacher-card-media-size);
		height: var(--pshsz-teacher-card-media-size);
	}

	.pshsz-teacher-card__divider {
		width: 7px;
		margin: 64px 0;
	}

	.pshsz-teacher-card__body {
		padding: 64px 0;
	}

	.pshsz-teacher-profile {
		grid-template-columns: minmax(280px, 0.9fr) minmax(0, 1.1fr);
		column-gap: 42px;
		row-gap: 42px;
		padding: 54px 8px;
	}

	.pshsz-teacher-profile--story {
		grid-template-columns: minmax(280px, 0.9fr) minmax(0, 1.1fr);
		column-gap: 42px;
		row-gap: 42px;
		margin: 0;
		padding: 54px 8px;
	}

	.pshsz-teacher-profile--story .pshsz-teacher-profile__media {
		width: 100%;
	}

	.pshsz-teacher-story__lead {
		align-self: start;
		padding-top: 0;
	}

	.pshsz-teacher-profile--story.pshsz-teacher-profile--experience-first .pshsz-teacher-story__lead {
		width: 100%;
		margin-left: 0;
	}

	.pshsz-teacher-story__continuation {
		width: 100%;
		margin-left: 0;
	}

	.pshsz-teacher-story__lead p,
	.pshsz-teacher-story__continuation p {
		white-space: normal;
	}

	.pshsz-teacher-story__desktop-break {
		display: none;
	}

	.pshsz-course-card {
		grid-template-columns: 112px minmax(0, 1fr);
	}

	.pshsz-course-card.has-no-teacher {
		grid-template-columns: 1fr;
	}

	.pshsz-course-card__price {
		grid-column: 2;
		align-items: flex-start;
		justify-content: flex-start;
		flex-direction: row;
	}

	.pshsz-course-card.has-no-teacher .pshsz-course-card__price {
		grid-column: 1;
	}

	.pshsz-course-summary {
		grid-template-columns: minmax(280px, 1fr) minmax(280px, 1fr);
		padding: 36px 24px;
	}

	.pshsz-course-summary__action {
		grid-column: 1 / -1;
		flex-direction: row;
	}

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

@media (min-width: 901px) and (max-width: 1279px) {
	.pshsz-single-course .pshsz-course-summary__content h1 {
		width: 552px;
		max-width: calc(100vw - 48px);
	}

	.pshsz-single-course .pshsz-course-summary__action {
		transform: translateY(30px);
	}
}

@media (max-width: 767px) {
	.pshsz-article-search {
		justify-content: center;
	}

	.pshsz-article-search__controls {
		width: 100%;
	}

	.pshsz-media-list-region {
		padding: 0;
	}

	.pshsz-media-grid {
		grid-template-columns: 1fr;
		gap: 22px;
	}

	.pshsz-teacher-level-nav.pshsz-media-type-nav {
		grid-template-columns: repeat(3, minmax(0, 1fr));
		column-gap: 8px;
	}

	.pshsz-teacher-level-nav.pshsz-article-category-nav {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.pshsz-media-intro .pshsz-media-type-nav {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		column-gap: 10px;
		row-gap: 10px;
	}

	.pshsz-teacher-level-nav.pshsz-media-type-nav.pshsz-teacher-level-nav--wave {
		width: min(568px, calc(100% - var(--pshsz-teacher-copy-inset)));
		grid-template-columns: repeat(2, minmax(0, 1fr));
		column-gap: 10px;
		row-gap: 10px;
	}

	.pshsz-teacher-level-nav--wave .pshsz-media-type-nav__link:nth-child(1),
	.pshsz-teacher-level-nav--wave .pshsz-media-type-nav__link:nth-child(2),
	.pshsz-teacher-level-nav--wave .pshsz-media-type-nav__link:nth-child(3),
	.pshsz-teacher-level-nav--wave .pshsz-media-type-nav__link:nth-child(4),
	.pshsz-teacher-level-nav--wave .pshsz-media-type-nav__link:nth-child(5),
	.pshsz-teacher-level-nav--wave .pshsz-media-type-nav__link:nth-child(6) {
		grid-column: auto;
	}

	.pshsz-media-type-nav__link {
		min-width: 0;
		padding-right: 4px;
		padding-left: 4px;
		letter-spacing: 0.08em;
	}

	.pshsz-media-intro .pshsz-media-type-nav .pshsz-media-type-nav__link,
	.pshsz-teacher-level-nav--wave .pshsz-media-type-nav__link {
		width: 100%;
		min-height: 44px;
		aspect-ratio: 367 / 77;
	}

	.pshsz-media-intro .pshsz-media-type-nav .pshsz-media-type-nav__link::before,
	.pshsz-teacher-level-nav--wave .pshsz-media-type-nav__link::before {
		top: 50%;
		right: 0;
		bottom: auto;
		left: 0;
		height: auto;
		aspect-ratio: 367 / 77;
		transform: translateY(-50%);
	}

	.pshsz-media-card__body {
		padding: 16px 18px 20px;
	}

	.pshsz-media-detail__header h1 {
		font-size: 28px;
	}

	.pshsz-media-detail__meta {
		flex-wrap: wrap;
	}

	.pshsz-media-detail__excerpt {
		padding-left: 15px;
		font-size: 17px;
	}

	.pshsz-teacher-grid {
		padding: 0;
	}

	.pshsz-teacher-list-heading,
	.pshsz-teacher-name-heading {
		margin-right: 0;
		margin-left: 0;
	}

	.pshsz-teacher-list-region {
		padding: 0;
	}

	.pshsz-teacher-profile {
		grid-template-columns: 1fr;
	}

	.pshsz-teacher-intro {
		row-gap: 24px;
		margin-bottom: 72px;
	}

	.pshsz-teacher-intro__visual {
		aspect-ratio: 1.85 / 1;
	}

	.pshsz-teacher-card__link,
	.pshsz-teacher-card.is-reversed .pshsz-teacher-card__link {
		grid-template-areas:
			"media"
			"body";
		grid-template-columns: 1fr;
		gap: 30px;
		padding: 58px 0;
	}

	.pshsz-teacher-card__divider {
		display: none;
	}

	.pshsz-teacher-card__media {
		width: 144px;
		height: 144px;
	}

	.pshsz-teacher-card__media-group {
		min-height: 0;
	}

	.pshsz-teacher-card__body {
		max-width: 620px;
		margin: 0 auto;
		padding: 0;
	}

	.pshsz-teacher-profile {
		gap: 38px;
		padding: 48px 0;
	}

	.pshsz-teacher-profile--story {
		grid-template-columns: 1fr;
		row-gap: 38px;
		margin: 0;
		padding: 48px 0;
	}

	.pshsz-teacher-profile--story .pshsz-teacher-profile__media {
		width: 100%;
		max-width: 456px;
		justify-self: center;
	}

	.pshsz-teacher-story__lead {
		padding-top: 0;
	}

	.pshsz-teacher-story__continuation {
		grid-column: 1;
	}

	.pshsz-teacher-profile--story.pshsz-teacher-profile--experience-first .pshsz-teacher-profile__experience {
		grid-column: 1;
	}

	.pshsz-teacher-profile__content {
		margin-bottom: 0;
		text-align: left;
	}

	.pshsz-teacher-profile__content > h1,
	.pshsz-teacher-profile__content > h2 {
		font-size: 30px;
	}

	.pshsz-teacher-profile__lead {
		font-size: 17px;
	}

	.pshsz-teacher-courses > h2 {
		font-size: 25px;
	}

	.pshsz-course-native-page {
		padding: 28px 0 48px;
	}

	.pshsz-teacher-level-nav {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		column-gap: 10px;
		row-gap: 10px;
	}

	.pshsz-teacher-level-nav__link {
		min-height: 44px;
	}

	.pshsz-teacher-intro .pshsz-page-heading__en {
		font-size: clamp(40px, 12vw, 54px);
	}

	.pshsz-teacher-intro .pshsz-page-heading h1,
	.pshsz-teacher-intro .pshsz-page-heading__zh {
		font-size: 23px;
	}

	.pshsz-page-heading {
		margin-bottom: 22px;
	}

	.pshsz-page-heading__en {
		font-size: clamp(34px, 12vw, 48px);
	}

	.pshsz-page-heading h1,
	.pshsz-page-heading__zh {
		font-size: 23px;
	}

	.pshsz-category-grid {
		grid-template-columns: 1fr;
		gap: 12px;
	}

	.pshsz-category-group__parent {
		min-height: 58px;
	}

	.pshsz-category-group__parent strong {
		font-size: 20px;
	}

	.pshsz-course-list-region {
		padding: 12px;
	}

	.pshsz-course-card,
	.pshsz-course-card.has-no-teacher {
		grid-template-columns: 1fr;
		gap: 14px;
		padding: 22px 10px;
	}

	.pshsz-course-card__teacher {
		border-right: 0;
		border-bottom: 0;
		padding: 0 0 13px;
	}

	.pshsz-teacher--card {
		flex-direction: row;
		gap: 12px;
	}

	.pshsz-teacher--card .pshsz-teacher__avatar {
		width: 66px;
		height: 66px;
	}

	.pshsz-teacher--card .pshsz-teacher__name {
		margin-top: 0;
	}

	.pshsz-course-card__title {
		font-size: 20px;
		text-align: center;
	}

	.pshsz-course-card__meta {
		grid-template-columns: 1fr;
		gap: 7px;
	}

	.pshsz-course-card__meta div {
		justify-content: center;
	}

	.pshsz-course-card__price,
	.pshsz-course-card.has-no-teacher .pshsz-course-card__price {
		grid-column: 1;
		align-items: center;
		justify-content: center;
		flex-direction: column;
	}

	.pshsz-course-summary {
		grid-template-columns: 1fr;
		gap: 24px;
		padding: 18px;
	}

	.pshsz-course-summary__content h1 {
		margin-bottom: 22px;
		font-size: 24px;
		text-align: center;
	}

	.pshsz-course-summary__meta dt,
	.pshsz-course-summary__meta dd {
		font-size: 16px;
	}

	.pshsz-course-summary__action {
		grid-column: 1;
		flex-direction: column;
	}

	body.single-pshsz_course {
		padding-bottom: calc(64px + env(safe-area-inset-bottom, 0px));
	}

	.pshsz-single-course .pshsz-course-summary {
		grid-template-columns: 96px minmax(0, 1fr);
		grid-template-rows: auto auto auto auto;
		column-gap: 16px;
		row-gap: 24px;
	}

	.pshsz-single-course .pshsz-course-summary__image {
		grid-column: 1 / -1;
		grid-row: 1;
	}

	.pshsz-single-course .pshsz-course-summary__content,
	.pshsz-single-course .pshsz-course-summary__action {
		display: contents;
	}

	.pshsz-single-course .pshsz-course-summary__content h1 {
		grid-column: 1 / -1;
		grid-row: 2;
		margin: 0;
	}

	.pshsz-single-course .pshsz-course-summary__meta {
		grid-column: 1 / -1;
		grid-row: 3;
		align-self: start;
	}

	.pshsz-single-course .pshsz-course-summary:has(.pshsz-teacher--detail) .pshsz-course-summary__meta {
		grid-column: 2;
	}

	.pshsz-single-course .pshsz-teacher--detail {
		width: 96px;
		min-width: 0;
		grid-column: 1;
		grid-row: 3;
		align-self: start;
		justify-self: center;
	}

	.pshsz-single-course .pshsz-expired-message {
		grid-column: 1 / -1;
		grid-row: 4;
	}

	.pshsz-single-course .pshsz-course-summary__action > .pshsz-registration-button--compact {
		position: fixed;
		z-index: 1000;
		right: calc(16px + env(safe-area-inset-right, 0px));
		bottom: calc(12px + env(safe-area-inset-bottom, 0px));
		left: calc(16px + env(safe-area-inset-left, 0px));
		width: max-content;
		max-width: calc(100% - 32px);
		margin: 0 auto;
		box-shadow: none;
	}

	.pshsz-info-grid {
		grid-template-columns: 1fr;
	}

	.pshsz-registration-info > h2,
	.pshsz-course-introduction > h2,
	.pshsz-notices > h2 {
		font-size: 25px;
	}
}

@media (max-width: 480px) {
	.pshsz-single-course .pshsz-course-summary {
		grid-template-columns: 82px minmax(0, 1fr);
		column-gap: 12px;
	}

	.pshsz-single-course .pshsz-teacher--detail {
		width: 82px;
	}

	.pshsz-teacher-list-heading span,
	.pshsz-teacher-name-heading h1 {
		min-width: 132px;
		padding-right: 14px;
		padding-left: 14px;
		font-size: 17px;
	}

	.pshsz-teacher-card__excerpt,
	.pshsz-teacher-card__experience,
	.pshsz-teacher-profile__biography {
		font-size: 15px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.pshsz-course-module *,
	.pshsz-course-module *::before,
	.pshsz-course-module *::after {
		scroll-behavior: auto !important;
		transition-duration: 0.01ms !important;
	}
}

/* Shared course-registration opening */
.pshsz-course-intro {
	--pshsz-course-intro-blue: #00b3e3;
	--pshsz-course-intro-blue-soft: #b4e7f8;
	position: relative;
	display: grid;
	width: calc(100vw + 30px);
	grid-template-areas: "copy visual";
	grid-template-columns: 54.55% 45.45%;
	align-items: end;
	margin: 0 0 169px 50%;
	transform: translateX(-50%);
}

.pshsz-course-intro__copy {
	--pshsz-course-intro-copy-inset: 57px;
	--pshsz-course-intro-copy-left: max(159px, calc((100vw - 1572px) / 2));
	position: relative;
	display: grid;
	width: min(820px, calc(100% - var(--pshsz-course-intro-copy-left) - 5px));
	height: 285px;
	grid-template-rows: auto minmax(0, 1fr) auto;
	grid-area: copy;
	align-self: end;
	margin-left: var(--pshsz-course-intro-copy-left);
}

.pshsz-course-intro__copy::before {
	position: absolute;
	z-index: 2;
	top: 64px;
	bottom: 16px;
	left: 0;
	width: 32px;
	background: url("../images/about-heading-bracket.png") center / 100% 100% no-repeat;
	content: "";
	pointer-events: none;
}

.pshsz-course-intro-heading {
	position: static;
	width: min(763px, calc(100% - var(--pshsz-course-intro-copy-inset)));
	grid-row: 1;
	margin: 0 0 0 var(--pshsz-course-intro-copy-inset);
	text-align: left;
}

.pshsz-course-intro-heading__en,
.pshsz-course-intro-heading__zh {
	margin: 0;
	line-height: 1.08;
}

.pshsz-course-intro-heading__en {
	color: #c5edf8;
	font-size: 48px;
	font-weight: 300;
	letter-spacing: 0.01em;
}

.pshsz-course-intro--registration .pshsz-course-intro-heading__en {
	font-size: clamp(30px, 4.3vw, 48px);
	white-space: nowrap;
}

.pshsz-course-intro-heading__zh {
	margin-top: 4px;
	color: var(--pshsz-course-intro-blue);
	font-size: clamp(25px, 2.5vw, 30px);
	font-weight: 500;
	letter-spacing: 0.18em;
	line-height: 1.3;
}

.pshsz-course-intro-heading__link,
.pshsz-course-intro-heading__link:visited,
.pshsz-course-intro-heading__link:hover,
.pshsz-course-intro-heading__link:focus {
	color: inherit;
	text-decoration: none;
}

.pshsz-course-intro-nav {
	position: static;
	display: grid;
	width: min(568px, calc(100% - var(--pshsz-course-intro-copy-inset)));
	grid-row: 3;
	grid-template-columns: repeat(6, minmax(0, 1fr));
	column-gap: 18px;
	row-gap: 20px;
	align-self: end;
	margin: 0 0 1px var(--pshsz-course-intro-copy-inset);
}

.pshsz-course-intro-nav__link {
	--pshsz-course-intro-tab: #00b3e3;
	--pshsz-course-intro-tab-soft: #b4e7f8;
	--pshsz-course-intro-tab-image: url("../images/course-intro-nav-float-inactive.png");
	--pshsz-course-intro-tab-image-active: url("../images/course-intro-nav-float-active.png");
	position: relative;
	display: flex;
	min-width: 0;
	grid-column: span 2;
	align-items: center;
	justify-content: center;
	border: 0;
	background: transparent;
	color: var(--pshsz-course-intro-tab);
	padding: 0;
	aspect-ratio: 367 / 77;
	text-align: center;
	text-decoration: none;
	user-select: text;
}

.pshsz-course-intro-nav__link::before {
	position: absolute;
	z-index: 0;
	inset: 0;
	background: var(--pshsz-course-intro-tab-image) center / 100% 100% no-repeat;
	content: "";
	pointer-events: none;
}

.pshsz-course-intro-nav__link--parent-child {
	--pshsz-course-intro-tab: #ed6b5d;
	--pshsz-course-intro-tab-soft: #f9d3d0;
	--pshsz-course-intro-tab-image: url("../images/course-intro-nav-parent-child-inactive.png");
	--pshsz-course-intro-tab-image-active: url("../images/course-intro-nav-parent-child-active.png");
}

.pshsz-course-intro-nav__link--aqua-kids {
	--pshsz-course-intro-tab: #6abf4a;
	--pshsz-course-intro-tab-soft: #d2ecc7;
	--pshsz-course-intro-tab-image: url("../images/course-intro-nav-aqua-kids-inactive.png");
	--pshsz-course-intro-tab-image-active: url("../images/course-intro-nav-aqua-kids-active.png");
}

.pshsz-course-intro-nav__link--adult {
	--pshsz-course-intro-tab: #f4b363;
	--pshsz-course-intro-tab-soft: #fbe9d1;
	--pshsz-course-intro-tab-image: url("../images/course-intro-nav-adult-inactive.png");
	--pshsz-course-intro-tab-image-active: url("../images/course-intro-nav-adult-active.png");
	grid-column: 2 / span 2;
}

.pshsz-course-intro-nav__link--diverse {
	--pshsz-course-intro-tab: #cab3d1;
	--pshsz-course-intro-tab-soft: #f2e8f3;
	--pshsz-course-intro-tab-image: url("../images/course-intro-nav-diverse-inactive.png");
	--pshsz-course-intro-tab-image-active: url("../images/course-intro-nav-diverse-active.png");
	grid-column: 4 / span 2;
}

.pshsz-course-intro-nav--single-category .pshsz-course-intro-nav__link {
	width: auto;
	grid-column: span 2;
	justify-self: stretch;
}

.pshsz-course-intro-nav__link:hover::before,
.pshsz-course-intro-nav__link:focus-visible::before,
.pshsz-course-intro-nav__link.is-active::before {
	background-image: var(--pshsz-course-intro-tab-image-active);
}

.pshsz-course-intro-nav__link:hover,
.pshsz-course-intro-nav__link:focus-visible,
.pshsz-course-intro-nav__link.is-active {
	color: #fff;
}

.pshsz-course-intro-nav__label {
	position: relative;
	z-index: 1;
	font-size: 16px;
	font-weight: 500;
	letter-spacing: 0.13em;
	line-height: 1;
	user-select: text;
	white-space: nowrap;
}

.pshsz-course-intro__visual {
	position: relative;
	width: auto;
	height: auto;
	min-height: 0;
	grid-area: visual;
	align-self: center;
	margin: 0;
	aspect-ratio: 2.19 / 1;
}

.pshsz-course-intro__visual::after {
	position: absolute;
	z-index: 0;
	top: 12px;
	right: 0;
	bottom: -12px;
	left: 14px;
	border: 1px solid var(--pshsz-course-intro-blue);
	border-top: 0;
	border-right: 0;
	border-radius: 0 0 0 10px;
	content: "";
	pointer-events: none;
}

.pshsz-course-intro__image {
	position: absolute;
	z-index: 1;
	inset: 0;
	display: block;
	width: 100%;
	height: 100% !important;
	border-radius: 10px 0 0 10px;
	object-fit: cover;
	object-position: center 24%;
}

@media (min-width: 901px) {
	.pshsz-single-course .pshsz-course-intro__visual {
		width: 100%;
		justify-self: end;
		margin-right: 0;
		margin-left: auto;
	}
}

@media (max-width: 1279px) {
	.pshsz-course-intro {
		width: 100%;
		grid-template-columns: minmax(0, 500px) minmax(0, 1fr);
		column-gap: 32px;
		transform: none;
		margin: 0 0 132px;
	}

	.pshsz-course-intro__copy {
		--pshsz-course-intro-copy-inset: 40px;
		width: 100%;
		margin-left: 0;
	}

	.pshsz-course-intro-heading {
		width: calc(100% - var(--pshsz-course-intro-copy-inset));
		margin: 0 0 0 var(--pshsz-course-intro-copy-inset);
	}

	.pshsz-course-intro-nav {
		width: min(568px, calc(100% - var(--pshsz-course-intro-copy-inset)));
		margin: 0 0 1px var(--pshsz-course-intro-copy-inset);
	}

	.pshsz-course-intro__visual {
		aspect-ratio: 2.18 / 1;
	}
}

@media (max-width: 900px) {
	.pshsz-course-intro {
		grid-template-areas:
			"copy"
			"visual";
		grid-template-columns: 1fr;
		row-gap: 30px;
		margin-bottom: 90px;
	}

	.pshsz-course-intro-heading {
		margin-bottom: 0;
	}

	.pshsz-course-intro-heading__en {
		font-size: 48px;
	}

	.pshsz-course-intro-heading__zh {
		font-size: 25px;
	}

	.pshsz-course-intro__visual {
		width: 100%;
		max-width: 700px;
		justify-self: center;
	}

	.pshsz-course-intro-nav {
		width: min(568px, calc(100% - var(--pshsz-course-intro-copy-inset)));
	}
}

@media (max-width: 767px) {
	.pshsz-course-intro {
		row-gap: 24px;
		margin-bottom: 72px;
	}

	.pshsz-course-intro-heading__en {
		font-size: clamp(40px, 12vw, 54px);
	}

	.pshsz-course-intro-heading__zh {
		font-size: 23px;
	}

	.pshsz-course-intro__visual {
		aspect-ratio: 1.85 / 1;
	}

	.pshsz-course-intro-nav {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		column-gap: 10px;
		row-gap: 10px;
	}

	.pshsz-course-intro-nav__link,
	.pshsz-course-intro-nav__link--adult {
		min-height: 44px;
		grid-column: auto;
		aspect-ratio: auto;
	}

	.pshsz-course-intro-nav__link--diverse {
		width: calc(50% - 5px);
		min-height: 44px;
		grid-column: 1 / -1;
		justify-self: center;
		aspect-ratio: auto;
	}

	.pshsz-course-intro-nav--single-category .pshsz-course-intro-nav__link {
		width: auto;
		grid-column: auto;
		justify-self: stretch;
	}

	.pshsz-course-intro-nav__link::before {
		top: 50%;
		right: 0;
		bottom: auto;
		left: 0;
		height: auto;
		aspect-ratio: 367 / 77;
		transform: translateY(-50%);
	}

	.pshsz-course-intro-nav__label {
		font-size: 13px;
	}
}

/* About Us pages */
html:has(.pshsz-about-page) {
	overflow-x: clip;
	scrollbar-gutter: stable;
}

.pshsz-about-page {
	--pshsz-about-blue: #00b3e3;
	--pshsz-about-blue-soft: #b3e8f7;
	--pshsz-about-watermark: #e6f8fc;
	background: #fff;
	color: var(--pshsz-about-blue);
	padding: 138px 0 clamp(72px, 8.35vw, 95px);
	overflow: hidden;
}

.pshsz-about-intro {
	position: relative;
	display: grid;
	width: calc(100vw + 30px);
	grid-template-areas:
		"heading visual"
		"nav visual";
	grid-template-columns: 54.55% 45.45%;
	align-items: end;
	margin: 0 0 169px 50%;
	transform: translateX(-50%);
}

.pshsz-about-intro::before {
	position: absolute;
	z-index: 2;
	top: 180px;
	left: max(159px, calc((100vw - 1572px) / 2));
	width: 32px;
	height: 205px;
	background: url("../images/about-heading-bracket.png") center / contain no-repeat;
	content: "";
	pointer-events: none;
}

.pshsz-about-heading {
	position: static;
	width: min(763px, calc(100% - 221px));
	grid-area: heading;
	margin: 0 0 20px max(216px, calc((100vw - 1458px) / 2));
	text-align: left;
}

.pshsz-about-heading__en,
.pshsz-about-heading__zh {
	margin: 0;
	line-height: 1.08;
}

.pshsz-about-heading__en {
	color: var(--pshsz-about-blue-soft);
	font-size: 48px;
	font-weight: 300;
	letter-spacing: 0.01em;
}

.pshsz-about-heading__zh {
	margin-top: 4px;
	color: var(--pshsz-about-blue);
	font-size: clamp(25px, 2.5vw, 30px);
	font-weight: 500;
	letter-spacing: 0.12em;
	line-height: 1.3;
}

.pshsz-about-heading__link,
.pshsz-about-heading__link:visited,
.pshsz-about-heading__link:hover,
.pshsz-about-heading__link:focus {
	color: inherit;
	text-decoration: none;
}

.pshsz-about-nav {
	position: static;
	display: grid;
	width: min(568px, calc(100% - 221px));
	grid-area: nav;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	column-gap: 18px;
	margin: 0 0 0 max(216px, calc((100vw - 1458px) / 2));
}

.pshsz-about-nav__link {
	--pshsz-about-tab-image: url("../images/about-nav-background-inactive.png");
	--pshsz-about-tab-image-active: url("../images/about-nav-background-active.png");
	display: flex;
	min-width: 0;
	min-height: 38px;
	align-items: center;
	justify-content: center;
	border: 0;
	border-radius: 0;
	background-color: transparent;
	background-image: var(--pshsz-about-tab-image);
	background-position: center;
	background-repeat: no-repeat;
	background-size: contain;
	color: var(--pshsz-about-blue);
	padding: 0;
	text-align: center;
	text-decoration: none;
}

.pshsz-about-nav__link:hover,
.pshsz-about-nav__link:focus-visible,
.pshsz-about-nav__link.is-active {
	background-color: transparent;
	background-image: var(--pshsz-about-tab-image-active);
	color: #fff;
	text-decoration: none;
	transform: none;
}

.pshsz-about-nav__label {
	position: relative;
	z-index: 1;
	width: auto;
	height: auto;
	overflow: visible;
	margin: 0;
	padding: 0;
	border: 0;
	clip: auto;
	clip-path: none;
	font-size: 16px;
	font-weight: 500;
	letter-spacing: 0.13em;
	line-height: 1;
	user-select: text;
	white-space: nowrap;
}

.pshsz-about-nav__link--disabled,
.pshsz-about-nav__link--disabled:hover {
	background: var(--pshsz-about-blue-soft);
	color: var(--pshsz-about-blue);
	cursor: default;
}

.pshsz-about-intro__visual {
	position: relative;
	width: auto;
	height: auto;
	grid-area: visual;
	align-self: center;
	margin: 0;
	aspect-ratio: 2.19 / 1;
}

.pshsz-about-intro__visual::after,
.pshsz-about-philosophy__photo::after {
	position: absolute;
	z-index: 0;
	border: 1px solid var(--pshsz-about-blue);
	border-radius: 6px;
	content: "";
	pointer-events: none;
}

.pshsz-about-intro__visual::after {
	top: 12px;
	right: 0;
	bottom: -12px;
	left: 14px;
	border-top: 0;
	border-right: 0;
	border-radius: 0 0 0 10px;
}

.pshsz-about-intro__image,
.pshsz-about-philosophy__photo-image,
.pshsz-about-philosophy__wide-image {
	position: relative;
	z-index: 1;
	display: block;
	width: 100%;
	height: 100%;
	border-radius: 6px;
	object-fit: cover;
}

.pshsz-about-intro__image {
	border-radius: 6px 0 0 6px;
	object-position: center 24%;
}

.pshsz-about-philosophy {
	position: relative;
}

.pshsz-about-philosophy__copy {
	font-size: 10px;
	line-height: 1.68;
}

.pshsz-about-philosophy__copy p {
	margin: 0;
}

.pshsz-about-philosophy__copy p + p {
	margin-top: 1.22em;
}

.pshsz-about-philosophy__lead {
	position: relative;
	aspect-ratio: 1920 / 780;
}

.pshsz-about-philosophy__copy {
	position: absolute;
	top: 27.62%;
	left: 0;
	width: 47.59%;
	font-size: 15px;
	line-height: 1.85;
}

.pshsz-about-philosophy__copy strong {
	font-weight: 700;
}

.pshsz-about-philosophy__photo {
	position: relative;
	position: absolute;
	top: 9.77%;
	left: 53.03%;
	width: 46.97%;
	height: 77.26%;
	margin: 0;
}

.pshsz-about-philosophy__photo::after {
	top: clamp(9px, 1.2vw, 14px);
	right: clamp(-14px, -1.2vw, -9px);
	bottom: clamp(-14px, -1.2vw, -9px);
	left: clamp(9px, 1.2vw, 14px);
}

.pshsz-about-philosophy__wave {
	position: absolute;
	bottom: 8.72%;
	left: 0;
	display: block;
	width: 34.64%;
	height: auto;
}

.pshsz-about-philosophy__wide-photo {
	position: relative;
	width: 100%;
	margin: 4% 0 0;
	aspect-ratio: 1920 / 1025;
}

.pshsz-about-philosophy__wide-image {
	border-radius: 0;
}

@media (min-width: 901px) {
	.pshsz-about-philosophy__lead {
		height: 600px;
		aspect-ratio: auto;
	}

	.pshsz-about-philosophy__copy {
		top: 128px;
	}

	.pshsz-about-philosophy__photo {
		top: 45px;
		height: auto;
		aspect-ratio: 6188 / 4140;
	}

	.pshsz-about-philosophy__wave {
		bottom: 0;
		left: calc(50% - 50vw);
		width: 34.64vw;
		max-width: none;
	}

	.pshsz-about-philosophy__wide-photo {
		left: calc(50% - 50vw);
		width: 100vw;
		max-width: none;
	}
}

.pshsz-about-page a:focus-visible {
	outline: 3px solid currentColor;
	outline-offset: 4px;
}

@media (max-width: 1279px) {
	.pshsz-about-page {
		padding-top: 76px;
	}

	.pshsz-about-intro {
		width: 100%;
		grid-template-columns: minmax(0, 500px) minmax(0, 1fr);
		column-gap: 32px;
		margin: 0 0 132px;
		transform: none;
	}

	.pshsz-about-intro::before {
		display: none;
	}

	.pshsz-about-heading {
		width: auto;
		margin: 0 0 28px;
	}

	.pshsz-about-nav {
		width: auto;
		grid-template-columns: repeat(3, minmax(0, 1fr));
		column-gap: 20px;
		margin: 0;
	}

	.pshsz-about-intro__visual {
		aspect-ratio: 2.18 / 1;
	}
}

@media (max-width: 900px) {
	.pshsz-about-page {
		padding: 76px 0 70px;
	}

	.pshsz-about-intro {
		grid-template-areas:
			"heading"
			"visual"
			"nav";
		grid-template-columns: 1fr;
		row-gap: 30px;
		margin-bottom: 90px;
	}

	.pshsz-about-heading {
		margin-bottom: 0;
	}

	.pshsz-about-heading__en {
		font-size: 48px;
	}

	.pshsz-about-heading__zh {
		font-size: 25px;
	}

	.pshsz-about-intro__visual {
		width: 100%;
		max-width: 700px;
		justify-self: center;
	}

	.pshsz-about-nav {
		width: 100%;
		grid-template-columns: repeat(3, minmax(0, 1fr));
		column-gap: 10px;
	}

	.pshsz-about-nav__link {
		font-size: 14px;
	}

	.pshsz-about-philosophy__lead {
		aspect-ratio: auto;
	}

	.pshsz-about-philosophy__copy {
		font-size: 15px;
		line-height: 1.85;
	}

	.pshsz-about-philosophy__lead {
		display: flex;
		flex-direction: column;
		gap: 34px;
	}

	.pshsz-about-philosophy__copy,
	.pshsz-about-philosophy__photo {
		position: relative;
		top: auto;
		left: auto;
		width: 100%;
	}

	.pshsz-about-philosophy__photo {
		height: auto;
		aspect-ratio: 6188 / 4140;
	}

	.pshsz-about-philosophy__wave {
		position: static;
		width: 72%;
		margin-top: 10px;
	}

	.pshsz-about-philosophy__wide-photo {
		margin-top: 54px;
	}
}

@media (max-width: 767px) {
	.pshsz-about-page {
		padding: 28px 0 48px;
	}

	.pshsz-about-intro {
		row-gap: 24px;
		margin-bottom: 72px;
	}

	.pshsz-about-intro__visual {
		aspect-ratio: 1.85 / 1;
	}

	.pshsz-about-heading__en {
		font-size: clamp(40px, 12vw, 54px);
	}

	.pshsz-about-heading__zh {
		font-size: 23px;
	}

	.pshsz-about-nav {
		gap: 10px;
	}

	.pshsz-about-nav__link {
		min-height: 44px;
		padding-right: 5px;
		padding-left: 5px;
		font-size: 13px;
	}

	.pshsz-about-philosophy__copy {
		font-size: 15px;
		line-height: 1.95;
	}

	.pshsz-about-philosophy__wide-photo {
		aspect-ratio: 1.5 / 1;
	}
}

/* About Us facility page */
.pshsz-about-facility {
	position: relative;
	color: var(--pshsz-about-blue);
}

.pshsz-about-facility__sr-only {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	margin: -1px;
	padding: 0;
	border: 0;
	clip: rect(0 0 0 0);
	clip-path: inset(50%);
	white-space: nowrap;
}

.pshsz-about-facility__overview,
.pshsz-about-facility__pool,
.pshsz-about-facility__transport,
.pshsz-about-facility__contact,
.pshsz-about-facility__amenities {
	position: relative;
}

.pshsz-about-facility__overview {
	aspect-ratio: 1920 / 650;
}

.pshsz-about-facility__pool {
	aspect-ratio: 1920 / 740;
}

.pshsz-about-facility__transport {
	aspect-ratio: 1920 / 1240;
}

.pshsz-about-facility__contact {
	aspect-ratio: 1920 / 487;
}

.pshsz-about-facility__amenities {
	aspect-ratio: 1920 / 568;
}

.pshsz-about-facility__section-label,
.pshsz-about-facility__overview-wave,
.pshsz-about-facility__pool-wave,
.pshsz-about-facility__contact-watermark,
.pshsz-about-facility__contact-wave,
.pshsz-about-facility__map,
.pshsz-about-facility__pool-size,
.pshsz-about-facility__transport-icon {
	display: block;
	height: auto;
}

.pshsz-about-facility__section-label {
	z-index: 3;
	display: flex;
	align-items: center;
	justify-content: center;
	aspect-ratio: 1085 / 341;
	background: url("../images/about-founder-name-background.png") center / 100% 100% no-repeat;
	color: #fff;
	text-align: center;
}

.pshsz-about-facility__section-label-text {
	display: block;
	padding-bottom: 5px;
	font-size: clamp(24px, 3vw, 27px);
	font-weight: 400;
	letter-spacing: 0.04em;
	line-height: 1;
	white-space: nowrap;
}

.pshsz-about-facility__section-label--overview {
	position: absolute;
	top: 32.7%;
	left: 10.35%;
	width: 9.84%;
}

.pshsz-about-facility__overview-wave {
	position: absolute;
	z-index: 0;
	top: 9.2%;
	left: 0;
	width: 48.83%;
	transform: scaleX(-1);
}

.pshsz-about-facility__overview-copy {
	position: absolute;
	z-index: 2;
	top: 50.3%;
	left: 17.36%;
	width: 30.6%;
	font-size: 15px;
	line-height: 1.85;
}

.pshsz-about-facility__overview-copy h3,
.pshsz-about-facility__pool-copy h3,
.pshsz-about-facility__transport-card h3 {
	margin: 0;
	color: var(--pshsz-about-blue);
	font-weight: 500;
	letter-spacing: 0.08em;
	line-height: 1.5;
}

.pshsz-about-facility__overview-copy h3 {
	font-size: 15px;
}

.pshsz-about-facility__pool-copy h3,
.pshsz-about-facility__transport-card h3 {
	font-size: 12px;
}

.pshsz-about-facility__overview-copy p,
.pshsz-about-facility__pool-copy p,
.pshsz-about-facility__transport-card p {
	margin: 0;
}

.pshsz-about-facility__overview-copy p:first-of-type {
	margin-top: 1.9em;
}

.pshsz-about-facility__overview-copy p + p {
	margin-top: 1.35em;
}

.pshsz-about-facility__overview-photo,
.pshsz-about-facility__pool-photo,
.pshsz-about-facility__amenities-photo {
	position: absolute;
	margin: 0;
}

.pshsz-about-facility__overview-photo {
	top: 12%;
	left: 53.7%;
	width: 46.3%;
	height: 73.1%;
}

.pshsz-about-facility__overview-photo::after,
.pshsz-about-facility__pool-photo::after,
.pshsz-about-facility__amenities-photo::after {
	position: absolute;
	z-index: 0;
	top: clamp(9px, 1.2vw, 14px);
	right: clamp(-14px, -1.2vw, -9px);
	bottom: clamp(-14px, -1.2vw, -9px);
	left: clamp(9px, 1.2vw, 14px);
	border: 1px solid var(--pshsz-about-blue);
	border-radius: 6px;
	content: "";
	pointer-events: none;
}

.pshsz-about-facility__photo-image {
	position: relative;
	z-index: 1;
	display: block;
	width: 100%;
	height: 100%;
	border-radius: 6px;
	object-fit: cover;
	object-position: center;
}

.pshsz-about-facility__pool-photo {
	top: 10.25%;
	left: 0;
	width: calc(55.36% - 50px);
	height: 76.22%;
}

.pshsz-about-facility__pool-copy {
	position: absolute;
	top: 24.64%;
	left: 62.24%;
	width: 31.6%;
	font-size: 15px;
	line-height: 1.82;
}

.pshsz-about-facility__section-label--pool {
	width: 31.1%;
	margin-left: -8.8%;
}

.pshsz-about-facility__pool-copy h3 {
	margin-top: 7.8%;
}

.pshsz-about-facility__pool-size {
	position: absolute;
	top: -25.5%;
	right: -0.6%;
	width: 42.1%;
}

.pshsz-about-facility__pool-copy p:first-of-type {
	margin-top: 1.8em;
}

.pshsz-about-facility__pool-copy p + p {
	margin-top: 1.3em;
}

.pshsz-about-facility__pool-wave {
	position: absolute;
	z-index: 0;
	right: -0.5%;
	bottom: 7.6%;
	width: 31.5%;
	transform: none;
}

.pshsz-about-facility__section-label--transport {
	position: absolute;
	top: 5.55%;
	left: 44.95%;
	width: 9.09%;
}

.pshsz-about-facility__map {
	position: absolute;
	top: 8%;
	left: 5.64%;
	width: 47.1%;
}

.pshsz-about-facility__transport-card {
	position: absolute;
	border: 1px solid var(--pshsz-about-blue);
	border-radius: 7px;
	color: var(--pshsz-about-blue);
	padding: clamp(12px, 1.25vw, 24px) 4.2% clamp(7px, 0.72vw, 14px);
	font-size: 9.5px;
	line-height: 1.65;
}

.pshsz-about-facility__transport-card--car {
	top: 21.64%;
	left: 56.29%;
	width: 28.09%;
	height: 13.07%;
}

.pshsz-about-facility__transport-card--bus {
	top: 46.34%;
	left: 56.29%;
	width: 28.09%;
	height: 17.4%;
}

.pshsz-about-facility__transport-card--parking {
	top: 73.13%;
	left: 16.93%;
	width: 30.05%;
	height: 21.98%;
}

.pshsz-about-facility__transport-card--rail {
	top: 73.13%;
	left: 56.29%;
	width: 28.09%;
	height: 21.98%;
}

.pshsz-about-facility__transport-icon {
	position: absolute;
	top: -29%;
	left: 8%;
	width: 33.4%;
	background-color: #fff;
}

.pshsz-about-facility__transport-card--car .pshsz-about-facility__transport-icon {
	top: 0;
	transform: translateY(-50%);
}

.pshsz-about-facility__transport-card--bus .pshsz-about-facility__transport-icon {
	top: -18%;
}

.pshsz-about-facility__transport-card--parking .pshsz-about-facility__transport-icon,
.pshsz-about-facility__transport-card--rail .pshsz-about-facility__transport-icon {
	top: -18%;
}

.pshsz-about-facility__transport-card h3 {
	margin-bottom: 1.2em;
	font-size: 11px;
	text-align: center;
}

.pshsz-about-facility__transport-card p + p {
	margin-top: 0.35em;
}

.pshsz-about-facility__transport-card strong {
	font-weight: 500;
}

.pshsz-about-facility__transport-card ul {
	margin: 0.2em 0 0;
	padding: 0;
	list-style: none;
}

.pshsz-about-facility__transport-card li {
	position: relative;
	padding-left: 1.35em;
}

.pshsz-about-facility__transport-card li::before {
	position: absolute;
	top: 0;
	left: 0;
	content: "●";
	font-size: 0.72em;
}

.pshsz-about-facility__contact-watermark {
	position: absolute;
	top: 12.23%;
	left: 14.3%;
	width: 23.22%;
}

.pshsz-about-facility__contact-content {
	position: absolute;
	z-index: 2;
	top: 15.15%;
	left: 45.43%;
	width: 25.5%;
}

.pshsz-about-facility__section-label--contact {
	width: 35.65%;
}

.pshsz-about-facility__contact-list {
	margin-top: 7.3%;
}

.pshsz-about-facility__contact-row {
	display: grid;
	grid-template-columns: 26px minmax(0, 1fr);
	gap: 10px;
	align-items: center;
	margin: 0;
	color: var(--pshsz-about-blue);
	font-size: 10px;
	letter-spacing: 0.08em;
	line-height: 1.65;
	text-decoration: none;
}

.pshsz-about-facility__contact-row + .pshsz-about-facility__contact-row {
	margin-top: 10px;
}

.pshsz-about-facility__contact-row img {
	width: auto;
	max-width: 22px;
	height: 18px;
	justify-self: center;
	object-fit: contain;
}

.pshsz-about-facility__registration-link {
	color: inherit;
	text-decoration: underline;
	text-underline-offset: 2px;
}

.pshsz-about-facility__contact-wave {
	position: absolute;
	right: -0.4%;
	top: 55.4%;
	width: 29.4%;
	transform: none;
}

.pshsz-about-facility__amenities-copy {
	position: absolute;
	top: 13.59%;
	left: 16.48%;
	width: 35.4%;
	font-size: 15px;
	line-height: 1.7;
}

.pshsz-about-facility__section-label--amenities {
	width: 29.3%;
}

.pshsz-about-facility__amenities-copy dl {
	margin: 9.8% 0 0 13.6%;
}

.pshsz-about-facility__amenities-copy dl > div + div {
	margin-top: 1.5em;
}

.pshsz-about-facility__amenities-copy dt,
.pshsz-about-facility__amenities-copy dd {
	display: inline;
	margin: 0;
}

.pshsz-about-facility__amenities-copy dt {
	font-weight: 700;
}

.pshsz-about-facility__amenities-photo {
	top: 25.88%;
	left: 59.84%;
	width: 40.16%;
	height: 60.56%;
}

@media (min-width: 901px) {
	.pshsz-about-facility__transport {
		min-height: 940px;
		aspect-ratio: auto;
	}

	.pshsz-about-facility__section-label--overview {
		width: 155.5px;
	}

	.pshsz-about-facility__section-label--transport,
	.pshsz-about-facility__section-label--contact,
	.pshsz-about-facility__section-label--amenities {
		width: 155.5px;
	}

	.pshsz-about-facility__transport-icon {
		width: 75px;
	}

	.pshsz-about-facility__transport-card {
		width: 34%;
		height: auto;
		min-height: 180px;
		font-size: 14px;
		line-height: 1.65;
	}

	.pshsz-about-facility__transport-card h3 {
		font-size: 15px;
		font-weight: 600;
		line-height: 1.5;
	}

	.pshsz-about-facility__pool-size {
		top: calc(-25.5% + 20px);
	}

	.pshsz-about-facility__transport-card--parking {
		width: 36%;
		min-height: 250px;
	}

	.pshsz-about-facility__transport-card--rail {
		min-height: 250px;
	}

	.pshsz-about-facility__overview-copy {
		width: min(500px, calc(100% - 20px));
	}

	.pshsz-about-facility__pool-copy {
		left: 48%;
		width: min(500px, calc(52% - 20px));
	}

	.pshsz-about-facility__amenities-copy dl {
		width: 535px;
	}

	.pshsz-about-facility__amenities {
		min-height: 420px;
		aspect-ratio: auto;
	}

	.pshsz-about-facility__amenities-copy dt,
	.pshsz-about-facility__amenities-copy dd {
		display: block;
	}

	.pshsz-about-facility__contact {
		min-height: 370px;
		aspect-ratio: auto;
	}

	.pshsz-about-facility__contact-content {
		width: 31.5%;
	}

	.pshsz-about-facility__contact-row:nth-of-type(4) > span {
		width: 305px;
		max-width: 100%;
	}

	.pshsz-about-facility__contact-row {
		grid-template-columns: 39px minmax(0, 1fr);
		gap: 15px;
		font-size: 15px;
	}

	.pshsz-about-facility__contact-row + .pshsz-about-facility__contact-row {
		margin-top: 15px;
	}

	.pshsz-about-facility__contact-row img {
		max-width: 33px;
		height: 27px;
	}

	.pshsz-about-facility__map,
	.pshsz-about-facility__transport-card--parking {
		left: 0;
	}

	.pshsz-about-facility__transport-card--car,
	.pshsz-about-facility__transport-card--bus,
	.pshsz-about-facility__transport-card--rail {
		right: 0;
		left: auto;
	}

	.pshsz-about-facility__overview-wave,
	.pshsz-about-facility__pool-photo {
		left: calc(50% - 50vw);
	}

	.pshsz-about-facility__overview-photo,
	.pshsz-about-facility__amenities-photo {
		right: calc(50% - 50vw);
		left: auto;
	}

	.pshsz-about-facility__pool-wave,
	.pshsz-about-facility__contact-wave {
		right: calc(50% - 50vw);
	}

	.pshsz-about-facility__pool-wave {
		transform: translateY(20px);
	}
}

/* Preserve a clear gap between the full-bleed pool image and its copy when a
 * desktop browser is zoomed or otherwise has a narrower effective viewport. */
@media (min-width: 901px) and (max-width: 1320px) {
	.pshsz-about-facility__overview-copy {
		width: min(500px, 36.34%);
	}

	.pshsz-about-facility__pool-photo {
		width: calc(49% - 50px);
	}

	.pshsz-about-facility__amenities-copy {
		left: 10%;
	}
}

@media (min-width: 901px) and (max-width: 1100px) {
	.pshsz-about-facility__overview {
		min-height: 480px;
		aspect-ratio: auto;
	}

	.pshsz-about-facility__pool {
		min-height: 450px;
		aspect-ratio: auto;
	}

	.pshsz-about-facility__pool-wave {
		bottom: 0;
	}

	.pshsz-about-facility__amenities {
		min-height: 500px;
	}

	.pshsz-about-facility__amenities-copy dl {
		width: auto;
	}
}

@media (max-width: 900px) {
	.pshsz-about-facility {
		display: flex;
		flex-direction: column;
		gap: 74px;
	}

	.pshsz-about-facility__overview,
	.pshsz-about-facility__pool,
	.pshsz-about-facility__transport,
	.pshsz-about-facility__contact,
	.pshsz-about-facility__amenities {
		display: flex;
		aspect-ratio: auto;
		flex-direction: column;
		gap: 30px;
	}

	.pshsz-about-facility__section-label--overview,
	.pshsz-about-facility__section-label--transport,
	.pshsz-about-facility__overview-copy,
	.pshsz-about-facility__overview-photo,
	.pshsz-about-facility__pool-photo,
	.pshsz-about-facility__pool-copy,
	.pshsz-about-facility__map,
	.pshsz-about-facility__transport-card,
	.pshsz-about-facility__contact-watermark,
	.pshsz-about-facility__contact-content,
	.pshsz-about-facility__contact-wave,
	.pshsz-about-facility__amenities-copy,
	.pshsz-about-facility__amenities-photo {
		position: relative;
		top: auto;
		right: auto;
		bottom: auto;
		left: auto;
	}

	.pshsz-about-facility__section-label {
		width: 170px;
		max-width: 50%;
	}

	.pshsz-about-facility__overview-wave,
	.pshsz-about-facility__pool-wave {
		position: relative;
		top: auto;
		right: auto;
		bottom: auto;
		left: auto;
		width: 72%;
	}

	.pshsz-about-facility__overview-wave {
		order: -2;
		margin: 0 auto;
	}

	.pshsz-about-facility__section-label--overview {
		order: -1;
	}

	.pshsz-about-facility__overview-copy,
	.pshsz-about-facility__pool-copy,
	.pshsz-about-facility__transport-card,
	.pshsz-about-facility__contact-row,
	.pshsz-about-facility__amenities-copy {
		width: 100%;
		font-size: 15px;
		line-height: 1.9;
	}

	.pshsz-about-facility__overview-copy h3,
	.pshsz-about-facility__pool-copy h3,
	.pshsz-about-facility__transport-card h3 {
		font-size: 18px;
	}

	.pshsz-about-facility__overview-photo,
	.pshsz-about-facility__pool-photo,
	.pshsz-about-facility__amenities-photo {
		width: 100%;
		height: auto;
		aspect-ratio: 3 / 2;
	}

	.pshsz-about-facility__pool-photo {
		width: calc(100% - 50px);
	}

	.pshsz-about-facility__pool-photo {
		order: 2;
	}

	.pshsz-about-facility__pool-copy {
		order: 1;
	}

	.pshsz-about-facility__section-label--pool {
		width: 170px;
		margin-left: 0;
	}

	.pshsz-about-facility__pool-copy h3 {
		margin-top: 30px;
	}

	.pshsz-about-facility__pool-size {
		position: relative;
		top: auto;
		right: auto;
		width: 220px;
		max-width: 62%;
		margin: 14px 0 0 auto;
	}

	.pshsz-about-facility__pool-wave {
		order: 3;
		margin-left: auto;
		transform: none;
	}

	.pshsz-about-facility__section-label--transport {
		align-self: center;
	}

	.pshsz-about-facility__map {
		width: 100%;
	}

	.pshsz-about-facility__transport-card {
		height: auto;
		min-height: 250px;
		border-radius: 10px;
		padding: 76px 28px 32px;
	}

	.pshsz-about-facility__transport-icon,
	.pshsz-about-facility__transport-card--bus .pshsz-about-facility__transport-icon,
	.pshsz-about-facility__transport-card--parking .pshsz-about-facility__transport-icon,
	.pshsz-about-facility__transport-card--rail .pshsz-about-facility__transport-icon {
		top: -35px;
		left: 7%;
		width: 150px;
		max-width: 42%;
	}

	.pshsz-about-facility__transport-card h3 {
		margin-bottom: 1.4em;
	}

	.pshsz-about-facility__contact {
		padding: 30px 0;
	}

	.pshsz-about-facility__contact-watermark {
		position: absolute;
		top: 0;
		left: 0;
		width: 52%;
		opacity: 0.7;
	}

	.pshsz-about-facility__contact-content {
		z-index: 2;
		width: min(100%, 560px);
		margin: 0 auto;
		padding: 0 4%;
	}

	.pshsz-about-facility__section-label--contact {
		margin: 0 auto;
	}

	.pshsz-about-facility__contact-list {
		margin-top: 38px;
	}

	.pshsz-about-facility__contact-row {
		grid-template-columns: 34px minmax(0, 1fr);
		gap: 15px;
	}

	.pshsz-about-facility__contact-row + .pshsz-about-facility__contact-row {
		margin-top: 17px;
	}

	.pshsz-about-facility__contact-row img {
		max-width: 28px;
		height: 26px;
	}

	.pshsz-about-facility__contact-wave {
		width: 72%;
		margin: 25px 0 0 auto;
		transform: none;
	}

	.pshsz-about-facility__section-label--amenities {
		margin: 0 auto;
	}

	.pshsz-about-facility__amenities-copy dl {
		width: auto;
		margin: 35px 0 0;
	}

	.pshsz-about-facility__amenities-copy dl > div + div {
		margin-top: 1.5em;
	}
}

@media (max-width: 767px) {
	.pshsz-about-facility {
		gap: 62px;
	}

	.pshsz-about-facility__section-label {
		width: 150px;
		max-width: 58%;
	}

	.pshsz-about-facility__overview-copy,
	.pshsz-about-facility__pool-copy,
	.pshsz-about-facility__transport-card,
	.pshsz-about-facility__contact-row,
	.pshsz-about-facility__amenities-copy {
		font-size: 15px;
		line-height: 1.95;
	}

	.pshsz-about-facility__overview-photo,
	.pshsz-about-facility__pool-photo,
	.pshsz-about-facility__amenities-photo {
		aspect-ratio: 1.5 / 1;
	}

	.pshsz-about-facility__transport {
		gap: 54px;
	}

	.pshsz-about-facility__transport-card {
		min-height: 0;
		padding: 68px 22px 28px;
	}

	.pshsz-about-facility__transport-icon,
	.pshsz-about-facility__transport-card--bus .pshsz-about-facility__transport-icon,
	.pshsz-about-facility__transport-card--parking .pshsz-about-facility__transport-icon,
	.pshsz-about-facility__transport-card--rail .pshsz-about-facility__transport-icon {
		top: -30px;
		width: 100px;
	}

	.pshsz-about-facility__contact-content {
		padding: 0;
	}

	.pshsz-about-facility__contact-row {
		grid-template-columns: 30px minmax(0, 1fr);
		gap: 12px;
		letter-spacing: 0.02em;
	}

	.pshsz-about-facility__contact-row:last-child span {
		overflow-wrap: anywhere;
	}

	.pshsz-about-facility__amenities-copy dt,
	.pshsz-about-facility__amenities-copy dd {
		display: block;
	}
}

/* Match every native plugin page's header gap to the registration page. */
.pshsz-course-native-page {
	padding-top: 60px;
}

@media (max-width: 689px) {
	.pshsz-course-native-page {
		padding-top: 50px;
	}
}

/* Homepage latest-news shortcode. */
.pshsz-latest-news {
	--pshsz-latest-news-blue: #00afe0;
	--pshsz-latest-news-text: #595959;
	--pshsz-latest-news-frame-offset: clamp(10px, 0.78vw, 15px);
	--pshsz-latest-news-slide-gap: 30px;
	position: relative;
	width: min(100%, 1140px);
	margin: 0 auto;
	color: var(--pshsz-latest-news-text);
	padding: 0;
}

.pshsz-latest-news__viewport {
	position: relative;
	min-width: 0;
	overflow: visible;
	clip-path: inset(-15px);
}

.pshsz-latest-news__track {
	position: relative;
	min-width: 0;
}

.pshsz-latest-news__slide {
	--pshsz-latest-news-translate-x: 0px;
	display: grid;
	min-width: 0;
	grid-template-columns: minmax(0, 57.14%) minmax(0, 39.34%);
	column-gap: 3.52%;
	align-items: stretch;
	aspect-ratio: 1488 / 567;
	overflow: visible;
	transform: translate3d(var(--pshsz-latest-news-translate-x), 0, 0);
	cursor: grab;
	touch-action: pan-y;
	will-change: transform;
}

.pshsz-latest-news.is-dragging .pshsz-latest-news__slide {
	cursor: grabbing;
	user-select: none;
}

.pshsz-latest-news.is-animating .pshsz-latest-news__track {
	transition: height 360ms cubic-bezier(0.22, 1, 0.36, 1);
}

.pshsz-latest-news.is-animating .pshsz-latest-news__slide.is-active,
.pshsz-latest-news.is-animating .pshsz-latest-news__slide.is-adjacent {
	transition: transform 360ms cubic-bezier(0.22, 1, 0.36, 1);
}

.pshsz-latest-news.is-ready .pshsz-latest-news__slide {
	display: none;
}

.pshsz-latest-news.is-ready .pshsz-latest-news__slide.is-active,
.pshsz-latest-news.is-ready .pshsz-latest-news__slide.is-adjacent {
	display: grid;
}

.pshsz-latest-news.is-ready .pshsz-latest-news__slide.is-adjacent {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
}

.pshsz-latest-news__media {
	position: relative;
	isolation: isolate;
	min-width: 0;
	min-height: 0;
	align-self: start;
	justify-self: start;
	width: calc(100% - clamp(0px, 3.17vw, 40px));
	margin: 0 0 var(--pshsz-latest-news-frame-offset);
	overflow: visible;
	background: transparent;
}

.pshsz-latest-news__media::after {
	position: absolute;
	z-index: 0;
	top: var(--pshsz-latest-news-frame-offset);
	left: var(--pshsz-latest-news-frame-offset);
	width: 100%;
	height: 100%;
	box-sizing: border-box;
	border: 1px solid var(--pshsz-latest-news-blue);
	border-radius: 10px !important;
	content: "";
	pointer-events: none;
}

.pshsz-latest-news__media-link {
	display: block;
	width: 100%;
	color: inherit;
	text-decoration: none;
}

.pshsz-latest-news__media-link:focus-visible {
	outline: 3px solid #005f85;
	outline-offset: 4px;
}

.pshsz-latest-news__image {
	position: relative;
	z-index: 1;
	display: block;
	width: 100%;
	height: auto;
	border-radius: 10px !important;
	object-fit: contain;
	user-select: none;
	-webkit-user-drag: none;
	user-drag: none;
}

.pshsz-latest-news__content {
	display: flex;
	min-width: 0;
	min-height: 0;
	flex-direction: column;
	align-items: flex-start;
	align-self: stretch;
	background: transparent;
	padding: clamp(4px, 0.4vw, 8px) 0 0;
}

.pshsz-latest-news__date {
	display: block;
	color: var(--pshsz-latest-news-blue);
	font-size: 12px;
	font-weight: 500;
	letter-spacing: 0.08em;
	line-height: 1.15;
}

.pshsz-latest-news__title {
	margin: 20px 0 0;
	color: var(--pshsz-latest-news-blue);
	font-size: 30px;
	font-weight: 400;
	letter-spacing: 0.04em;
	line-height: 1.35;
	width: 100%;
	max-width: none;
	text-wrap: wrap;
	overflow-wrap: anywhere;
}

@media (prefers-reduced-motion: reduce) {
	.pshsz-latest-news.is-animating .pshsz-latest-news__track,
	.pshsz-latest-news.is-animating .pshsz-latest-news__slide.is-active,
	.pshsz-latest-news.is-animating .pshsz-latest-news__slide.is-adjacent {
		transition-duration: 0.01ms;
	}
}

.pshsz-latest-news__brief {
	width: 100%;
	margin-top: clamp(18px, 1.5vw, 29px);
	color: var(--pshsz-latest-news-text);
	font-size: 16px;
	font-weight: 400;
	letter-spacing: 0.05em;
	line-height: 1.3em;
}

.pshsz-latest-news__brief > :first-child {
	margin-top: 0;
}

.pshsz-latest-news__brief > :last-child {
	margin-bottom: 0;
}

.pshsz-latest-news__brief p,
.pshsz-latest-news__brief ul,
.pshsz-latest-news__brief ol {
	margin: 0 0 0.72em;
}

.pshsz-latest-news__brief ul,
.pshsz-latest-news__brief ol {
	padding-left: 1.35em;
}

/* Same pill as the FAQ 「繼續閱讀」 button (.pshsz-faq-read-more): text left, thin arrow right. */
.pshsz-latest-news__cta {
	display: inline-flex;
	box-sizing: border-box;
	width: 128px;
	height: 28px;
	min-height: 28px;
	align-items: center;
	align-self: flex-end;
	justify-content: space-between;
	gap: 8px;
	margin-top: auto;
	margin-right: calc(0px - var(--pshsz-latest-news-frame-offset));
	border-radius: 66px;
	background: #00b2e3;
	color: #fff;
	padding: 6px 14px;
	font-size: 14px;
	font-weight: 400;
	letter-spacing: 2px;
	line-height: 1;
	text-decoration: none;
	white-space: nowrap;
}

.pshsz-latest-news__cta:hover,
.pshsz-latest-news__cta:focus-visible {
	background: #008fbd;
	color: #fff;
}

.pshsz-latest-news__cta:focus-visible,
.pshsz-latest-news__control:focus-visible {
	outline: 3px solid #005f85;
	outline-offset: 4px;
}

.pshsz-latest-news__cta-icon {
	display: block;
	width: 28px;
	height: 12px;
	flex: 0 0 28px;
}

.pshsz-latest-news__controls {
	pointer-events: none;
}

.pshsz-latest-news__control {
	position: absolute;
	z-index: 2;
	top: 50%;
	display: grid;
	width: 50px;
	height: 50px;
	place-items: center;
	border: 0;
	background: transparent;
	color: var(--pshsz-latest-news-blue);
	padding: 0;
	font-size: 0;
	line-height: 1;
	transform: translateY(-50%);
	cursor: pointer;
	pointer-events: auto;
}

.pshsz-latest-news__control--previous {
	left: -55px;
}

.pshsz-latest-news__control--next {
	right: -55px;
}

.pshsz-latest-news__control-icon {
	display: block;
	width: 28px;
	height: 50px;
	background-color: var(--pshsz-latest-news-blue);
	-webkit-mask-position: center;
	-webkit-mask-repeat: no-repeat;
	-webkit-mask-size: contain;
	mask-position: center;
	mask-repeat: no-repeat;
	mask-size: contain;
}

.pshsz-latest-news__control-icon--previous {
	-webkit-mask-image: url("/wp-content/uploads/2026/07/2026071714r.svg");
	mask-image: url("/wp-content/uploads/2026/07/2026071714r.svg");
}

.pshsz-latest-news__control-icon--next {
	-webkit-mask-image: url("/wp-content/uploads/2026/07/2026071715r.svg");
	mask-image: url("/wp-content/uploads/2026/07/2026071715r.svg");
}

.pshsz-latest-news__control:hover,
.pshsz-latest-news__control:focus-visible {
	color: var(--pshsz-latest-news-blue);
}

@media (max-width: 900px) {
	.pshsz-latest-news {
		padding-right: 52px;
		padding-left: 52px;
	}

	.pshsz-latest-news__slide {
		aspect-ratio: auto;
	}

	.pshsz-latest-news__media {
		align-self: start;
		width: 100%;
	}

	.pshsz-latest-news__title {
		margin-top: 26px;
	}

	.pshsz-latest-news__brief {
		margin-top: 18px;
	}

	.pshsz-latest-news__control--previous {
		left: 0;
	}

	.pshsz-latest-news__control--next {
		right: 0;
	}
}

@media (max-width: 767px) {
	.pshsz-latest-news {
		width: 100%;
		padding: 0 20px;
	}

	.pshsz-latest-news__slide,
	.pshsz-latest-news.is-ready .pshsz-latest-news__slide.is-active {
		grid-template-columns: minmax(0, 1fr);
	}

	.pshsz-latest-news__media {
		aspect-ratio: auto;
		width: 100%;
	}

	.pshsz-latest-news__content {
		min-height: 0;
		padding: 28px 24px 30px;
	}

	.pshsz-latest-news__date {
		font-size: 14px;
	}

	.pshsz-latest-news__title {
		margin-top: 24px;
		font-size: 18px;
		width: 100%;
		max-width: none;
	}

	.pshsz-latest-news__brief {
		margin-top: 22px;
		font-size: 14px;
		font-weight: 300;
		line-height: 1.3em;
	}

	.pshsz-latest-news__cta {
		margin-top: 30px;
		margin-right: 0;
	}

	.pshsz-latest-news__controls {
		top: 50%;
		left: 0;
		right: 0;
		display: block;
		margin: 0;
		padding: 0;
	}

	.pshsz-latest-news__control {
		position: absolute;
		width: 30px;
		height: 30px;
		transform: translateY(-50%);
	}

	.pshsz-latest-news__control--previous {
		left: -26px;
		margin-left: 3px;
	}

	.pshsz-latest-news__control--next {
		right: -26px;
		margin-right: 3px;
	}

	.pshsz-latest-news__control-icon {
		width: 16px;
		height: 28px;
	}
}

/* Native editable FAQ page. */
.pshsz-faq-page {
	--pshsz-faq-blue: #00b2e3;
	--pshsz-faq-pale: #bce8f6;
	--pshsz-faq-surface: #fff;
	background: var(--pshsz-faq-surface);
	color: var(--pshsz-faq-blue);
	overflow: clip;
	padding: 22px 0 clamp(70px, 8vw, 112px);
}

.pshsz-faq-shell {
	width: min(1140px, calc(100% - 40px));
	margin: 0 auto;
}

.pshsz-faq-hero {
	display: grid;
	grid-template-columns: minmax(330px, 436px) minmax(0, 1fr);
	gap: 20px;
	align-items: center;
}

.pshsz-faq-heading {
	margin: 0;
}

.pshsz-faq-heading__en,
.pshsz-faq-heading__zh {
	margin: 0;
	font-weight: 400;
}

.pshsz-faq-heading__en {
	color: var(--pshsz-faq-pale);
	font-size: 35px;
	line-height: 1;
}

.pshsz-faq-heading__zh {
	margin-top: 10px;
	color: var(--pshsz-faq-blue);
	font-size: 25px;
	letter-spacing: 5px;
	line-height: 1;
}

/* Topic buttons reuse the course-intro bubble artwork in the FAQ blue. */
.pshsz-faq-topic-nav {
	display: flex;
	flex-wrap: wrap;
	gap: 14px 18px;
	margin-top: 28px;
}

.pshsz-faq-topic-nav__link {
	position: relative;
	display: flex;
	flex: 0 0 auto;
	width: 178px;
	align-items: center;
	justify-content: center;
	color: var(--pshsz-faq-blue);
	aspect-ratio: 367 / 77;
	text-align: center;
	text-decoration: none;
}

.pshsz-faq-topic-nav__link::before {
	position: absolute;
	z-index: 0;
	inset: 0;
	background: url("../images/course-intro-nav-float-inactive.png") center / 100% 100% no-repeat;
	content: "";
	pointer-events: none;
}

.pshsz-faq-topic-nav__link:hover::before,
.pshsz-faq-topic-nav__link:focus-visible::before,
.pshsz-faq-topic-nav__link.is-active::before {
	background-image: url("../images/course-intro-nav-float-active.png");
}

.pshsz-faq-topic-nav__link:hover,
.pshsz-faq-topic-nav__link:focus-visible,
.pshsz-faq-topic-nav__link.is-active {
	color: #fff;
}

.pshsz-faq-topic-nav__label {
	position: relative;
	z-index: 1;
	padding: 0 14px;
	font-size: 16px;
	font-weight: 500;
	letter-spacing: 0.13em;
	line-height: 1;
	white-space: nowrap;
}

.pshsz-faq-hero__visual {
	position: relative;
	z-index: 0;
	margin: 0;
	border-radius: 0 0 10px 10px;
}

.pshsz-faq-hero__visual.is-custom-image::after {
	position: absolute;
	z-index: -1;
	top: 8px;
	right: -9px;
	bottom: -1px;
	left: 9px;
	border: 1px solid var(--pshsz-faq-blue);
	border-radius: 0 0 10px 10px;
	content: "";
}

.pshsz-faq-hero__image {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 1129 / 422;
	border-radius: 0 0 10px 10px;
	object-fit: cover;
	object-position: var(--pshsz-focal-x, 50%) var(--pshsz-focal-y, 50%);
}

.pshsz-faq-list {
	margin-top: 50px;
}

.pshsz-faq-item {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 20px;
	align-items: center;
}

/* Text-only QAs (照片關閉) sit two per row; a lone one keeps the left column. */
.pshsz-faq-row--text {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 20px;
	align-items: start;
}

.pshsz-faq-item--text {
	display: block;
}

.pshsz-faq-item--image-left .pshsz-faq-item__visual {
	order: 1;
}

.pshsz-faq-item--image-left .pshsz-faq-item__copy {
	order: 2;
}

.pshsz-faq-item__copy {
	min-width: 0;
	padding-top: 0;
}

.pshsz-faq-item__answer-group {
	max-width: 522px;
}

.pshsz-faq-item__question-row,
.pshsz-faq-item__answer-row {
	display: block;
}

.pshsz-faq-item__answer-row {
	margin-top: 20px;
	padding-left: 22px;
}

.pshsz-faq-item__marker {
	display: block;
	color: var(--pshsz-faq-pale);
	font-size: 35px;
	font-weight: 500;
	line-height: 1;
}

.pshsz-faq-item__question {
	margin: 0 0 0 20px;
	color: var(--pshsz-faq-blue);
	font-size: 25px;
	font-weight: 400;
	letter-spacing: 5px;
	line-height: 1.3;
}

.pshsz-faq-item__answer {
	min-width: 0;
	max-width: 480px;
	margin-left: 20px;
	color: var(--pshsz-faq-blue);
	font-size: 16px;
	font-weight: 400;
	line-height: 1.65;
}

/* Answers are saved TinyMCE-style (blank lines) and run through wpautop. */
.pshsz-faq-item__answer p {
	margin: 0 0 0.9em;
}

.pshsz-faq-item__answer ul,
.pshsz-faq-item__answer ol {
	margin: 0 0 0.9em;
	padding-left: 1.5em;
}

.pshsz-faq-item__answer > :first-child,
.pshsz-faq-modal__content > :first-child {
	margin-top: 0;
}

.pshsz-faq-item__answer > :last-child,
.pshsz-faq-modal__content > :last-child {
	margin-bottom: 0;
}

.pshsz-faq-item__answer a,
.pshsz-faq-item__answer a:visited,
.pshsz-faq-modal__content a,
.pshsz-faq-modal__content a:visited {
	color: #0089ba;
	text-decoration: underline;
	text-underline-offset: 3px;
}

.pshsz-faq-item__visual {
	position: relative;
	z-index: 0;
	isolation: isolate;
	width: 100%;
	margin: 0;
	border-radius: 5px;
}

.pshsz-faq-item--image-left .pshsz-faq-item__visual {
	margin-top: 0;
}

.pshsz-faq-item__image {
	display: block;
	width: 100%;
	height: auto;
	border-radius: 5px;
	object-position: var(--pshsz-focal-x, 50%) var(--pshsz-focal-y, 50%);
}

.pshsz-faq-item__visual.is-custom-image {
	aspect-ratio: 2 / 1;
	border-radius: 0;
}

.pshsz-faq-item__svg-template {
	display: block;
	width: 100%;
	height: 100%;
	overflow: visible;
}

.pshsz-faq-item__svg-frame {
	fill: none;
	stroke: var(--pshsz-faq-blue);
	stroke-width: 1;
	stroke-miterlimit: 10;
	vector-effect: non-scaling-stroke;
	pointer-events: none;
}

.pshsz-faq-item--image-left .pshsz-faq-item__visual.is-bundled-image::after {
	position: absolute;
	z-index: 1;
	bottom: 0;
	left: 5px;
	width: calc(5.55% - 5px);
	border-bottom: 1px solid var(--pshsz-faq-blue);
	content: "";
	opacity: 0.25;
	pointer-events: none;
}

.pshsz-faq-read-more {
	display: flex;
	gap: 8px;
	align-items: center;
	justify-content: space-between;
	width: 128px;
	height: 28px;
	min-height: 28px;
	margin: 20px 0 0 auto;
	border: 0;
	border-radius: 66px;
	background: var(--pshsz-faq-blue);
	color: #fff;
	cursor: pointer;
	padding: 6px 14px;
	font-size: 14px;
	letter-spacing: 2px;
	line-height: 1;
	text-align: left;
	white-space: nowrap;
}

.pshsz-faq-read-more img {
	display: block;
	width: 28px;
	height: auto;
	flex: 0 0 28px;
}

.pshsz-faq-read-more:hover,
.pshsz-faq-read-more:focus-visible {
	background: #008fbd;
	color: #fff;
}

.pshsz-faq-read-more:focus-visible,
.pshsz-faq-modal__close:focus-visible,
.pshsz-faq-modal__backdrop:focus-visible {
	outline: 2px solid currentColor;
	outline-offset: 4px;
}

.pshsz-faq-divider {
	width: min(35vw, 665px);
	margin: 50px 0;
	margin-left: calc((100vw - 100%) / -2);
}

.pshsz-faq-divider img {
	display: block;
	width: 100%;
	height: auto;
}

/* Accordion layout (主題頁勾選「折頁樣式」): question cards that expand to the answer. */
.pshsz-faq-accordion {
	display: grid;
	gap: 20px;
}

.pshsz-faq-accordion__item {
	overflow: hidden;
	border-radius: 4px;
	background: var(--pshsz-faq-surface);
}

.pshsz-faq-accordion__summary {
	display: grid;
	grid-template-columns: 24px minmax(0, 1fr) 22px;
	gap: 20px;
	align-items: center;
	box-sizing: border-box;
	min-height: 53px;
	color: var(--pshsz-faq-blue);
	cursor: pointer;
	background: #eef9fc;
	list-style: none;
	padding: 13px 32px;
	transition: background-color 0.2s ease, color 0.2s ease;
}

.pshsz-faq-accordion__summary::-webkit-details-marker {
	display: none;
}

.pshsz-faq-accordion__summary:hover {
	background: #e2f4fa;
}

.pshsz-faq-accordion__summary:focus-visible {
	outline: 2px solid currentColor;
	outline-offset: -3px;
}

.pshsz-faq-accordion__item[open] > .pshsz-faq-accordion__summary {
	background: var(--pshsz-faq-blue);
	color: #fff;
}

.pshsz-faq-accordion__marker {
	font-size: 22px;
	font-weight: 500;
	line-height: 1;
}

.pshsz-faq-accordion__question {
	margin: 0;
	color: inherit;
	font-size: 18px;
	font-weight: 400;
	letter-spacing: 3px;
	line-height: 1.5;
}

.pshsz-faq-accordion__icon {
	position: relative;
	width: 22px;
	height: 22px;
}

.pshsz-faq-accordion__icon::before,
.pshsz-faq-accordion__icon::after {
	position: absolute;
	top: 50%;
	left: 50%;
	width: 22px;
	height: 1.5px;
	background: currentColor;
	content: "";
	transform: translate(-50%, -50%);
	transition: transform 0.2s ease;
}

.pshsz-faq-accordion__icon::after {
	transform: translate(-50%, -50%) rotate(90deg);
}

.pshsz-faq-accordion__item[open] .pshsz-faq-accordion__icon::after {
	transform: translate(-50%, -50%) rotate(90deg) scaleX(0);
}

/* A marker shares the Q column; the answer and read-more sit in the question column. */
.pshsz-faq-accordion__panel {
	display: grid;
	grid-template-columns: 24px minmax(0, 1fr);
	column-gap: 20px;
	padding: 28px 74px 32px 32px;
}

.pshsz-faq-accordion__panel > .pshsz-faq-accordion__marker {
	margin-top: 4px;
}

.pshsz-faq-accordion .pshsz-faq-accordion__answer {
	max-width: none;
	margin-left: 0;
	font-size: 16px;
	letter-spacing: 1px;
	line-height: 1.85;
}

.pshsz-faq-accordion__panel .pshsz-faq-read-more {
	grid-column: 2;
	margin-top: 24px;
}

@supports (interpolate-size: allow-keywords) and selector(::details-content) {
	.pshsz-faq-accordion {
		interpolate-size: allow-keywords;
	}

	.pshsz-faq-accordion__item::details-content {
		overflow: clip;
		block-size: 0;
		transition: block-size 0.3s ease, content-visibility 0.3s ease allow-discrete;
	}

	.pshsz-faq-accordion__item[open]::details-content {
		block-size: auto;
	}

	@media (prefers-reduced-motion: reduce) {
		.pshsz-faq-accordion__item::details-content {
			transition: none;
		}
	}
}

/* Kept apart from ::details-content so older browsers keep this rule. */
@media (prefers-reduced-motion: reduce) {
	.pshsz-faq-accordion__summary,
	.pshsz-faq-accordion__icon::before,
	.pshsz-faq-accordion__icon::after {
		transition: none;
	}
}

@media (max-width: 900px) {
	.pshsz-faq-accordion__question {
		font-size: 17px;
		letter-spacing: 2px;
	}

	.pshsz-faq-accordion .pshsz-faq-accordion__answer {
		font-size: 15px;
	}
}

@media (max-width: 700px) {
	.pshsz-faq-accordion {
		gap: 12px;
	}

	.pshsz-faq-accordion__summary {
		grid-template-columns: 18px minmax(0, 1fr) 16px;
		gap: 12px;
		min-height: 44px;
		padding: 10px 16px;
	}

	.pshsz-faq-accordion__marker {
		font-size: 19px;
	}

	.pshsz-faq-accordion__question {
		font-size: 16px;
		letter-spacing: 1.5px;
	}

	.pshsz-faq-accordion__icon,
	.pshsz-faq-accordion__icon::before,
	.pshsz-faq-accordion__icon::after {
		width: 16px;
	}

	.pshsz-faq-accordion__icon {
		height: 16px;
	}

	.pshsz-faq-accordion__panel {
		grid-template-columns: 18px minmax(0, 1fr);
		column-gap: 12px;
		padding: 20px 16px 24px;
	}

	.pshsz-faq-accordion .pshsz-faq-accordion__answer {
		letter-spacing: 0.5px;
		line-height: 1.8;
	}
}

.pshsz-faq-modal[hidden] {
	display: none;
}

.pshsz-faq-modal {
	position: fixed;
	z-index: 1000000;
	inset: 0;
	display: grid;
	place-items: center;
	padding: 28px;
}

.pshsz-faq-modal__backdrop {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	border: 0;
	background: rgba(16, 56, 74, 0.58);
	-webkit-backdrop-filter: blur(8px);
	backdrop-filter: blur(8px);
	cursor: pointer;
}

.pshsz-faq-modal__dialog {
	position: relative;
	z-index: 1;
	width: min(720px, 100%);
	max-height: min(760px, calc(100vh - 56px));
	border: 1px solid rgba(0, 178, 227, 0.35);
	border-radius: 12px;
	background: #fff;
	box-shadow: 0 24px 70px rgba(7, 49, 68, 0.28);
	overflow: auto;
	padding: clamp(30px, 5vw, 54px);
	color: var(--pshsz-faq-blue);
}

.pshsz-faq-modal__dialog:focus {
	outline: none;
}

.pshsz-faq-modal__close {
	position: absolute;
	top: 12px;
	right: 12px;
	display: grid;
	place-items: center;
	width: 44px;
	height: 44px;
	padding: 10px;
	border: 0;
	background: transparent;
	color: var(--pshsz-faq-blue);
	cursor: pointer;
	line-height: 0;
}

.pshsz-faq-modal__close img {
	display: block;
	width: 24px;
	height: 24px;
}

.pshsz-faq-modal__eyebrow {
	margin: 0 0 4px;
	color: var(--pshsz-faq-pale);
	font-size: 24px;
	line-height: 1.2;
}

.pshsz-faq-modal__dialog h2 {
	margin: 0 58px 22px 0;
	color: var(--pshsz-faq-blue);
	font-size: clamp(22px, 3vw, 28px);
	font-weight: 400;
	letter-spacing: 3px;
	line-height: 1.4;
}

.pshsz-faq-modal__content {
	color: #167da5;
	font-size: 16px;
	line-height: 1.8;
}

.pshsz-faq-modal__content p {
	margin: 0 0 1em;
}

.pshsz-faq-modal__content ul,
.pshsz-faq-modal__content ol {
	margin: 0 0 1em;
	padding-left: 1.5em;
}

.pshsz-faq-modal__content li + li {
	margin-top: 0.35em;
}

html.pshsz-faq-modal-is-open,
body.pshsz-faq-modal-is-open {
	overflow: hidden;
}

@media (max-width: 900px) {
	.pshsz-faq-hero {
		grid-template-columns: minmax(250px, 0.7fr) minmax(0, 1.3fr);
	}

	.pshsz-faq-heading__en {
		font-size: 31px;
	}

	.pshsz-faq-heading__zh,
	.pshsz-faq-item__question {
		font-size: 22px;
		letter-spacing: 4px;
	}

	.pshsz-faq-item__answer {
		font-size: 15px;
	}
}

@media (max-width: 700px) {
	.pshsz-faq-page {
		padding: 38px 0 72px;
	}

	.pshsz-faq-shell {
		width: min(100% - 32px, 560px);
	}

	.pshsz-faq-hero {
		grid-template-columns: 1fr;
		gap: 26px;
	}

	.pshsz-faq-heading {
		padding-left: 14px;
	}

	.pshsz-faq-topic-nav {
		gap: 10px;
		margin-top: 20px;
	}

	.pshsz-faq-topic-nav__link {
		width: calc(50% - 5px);
		min-height: 44px;
		aspect-ratio: auto;
	}

	.pshsz-faq-topic-nav__link::before {
		top: 50%;
		bottom: auto;
		height: auto;
		aspect-ratio: 367 / 77;
		transform: translateY(-50%);
	}

	.pshsz-faq-topic-nav__label {
		font-size: 13px;
	}

	.pshsz-faq-heading__en {
		font-size: 30px;
	}

	.pshsz-faq-heading__zh {
		font-size: 22px;
	}

	.pshsz-faq-hero__visual.is-custom-image::after {
		right: -5px;
		bottom: -1px;
		left: 6px;
	}

	.pshsz-faq-list {
		margin-top: 58px;
	}

	.pshsz-faq-item {
		display: flex;
		gap: 34px;
		align-items: stretch;
		flex-direction: column;
	}

	.pshsz-faq-row--text {
		grid-template-columns: 1fr;
		gap: 34px;
	}

	.pshsz-faq-item--image-left .pshsz-faq-item__copy,
	.pshsz-faq-item--image-right .pshsz-faq-item__copy {
		order: 2;
	}

	.pshsz-faq-item--image-left .pshsz-faq-item__visual,
	.pshsz-faq-item--image-right .pshsz-faq-item__visual {
		order: 1;
		margin-top: 0;
	}

	.pshsz-faq-item__visual.is-custom-image {
		width: calc(100% - 5px);
	}

	.pshsz-faq-item__question-row,
	.pshsz-faq-item__answer-row {
		grid-template-columns: 30px minmax(0, 1fr);
		gap: 10px;
	}

	.pshsz-faq-item__marker {
		font-size: 30px;
	}

	.pshsz-faq-item__question {
		margin-top: 2px;
		font-size: 20px;
		letter-spacing: 2.5px;
	}

	.pshsz-faq-item__answer {
		font-size: 15px;
		line-height: 1.7;
	}

	.pshsz-faq-read-more {
		width: min(100%, 128px);
		margin-top: 16px;
	}

	.pshsz-faq-divider {
		width: 92%;
		margin: 34px auto;
	}

	.pshsz-faq-modal {
		padding: 16px;
	}

	.pshsz-faq-modal__dialog {
		max-height: calc(100vh - 32px);
		padding: 48px 24px 28px;
	}

	.pshsz-faq-modal__dialog h2 {
		margin-right: 42px;
		font-size: 21px;
		letter-spacing: 2px;
	}

	.pshsz-faq-modal__content {
		font-size: 15px;
	}
}

/* 404 page */
.pshsz-404-page {
	--pshsz-404-blue: #48addb;
	--pshsz-404-blue-dark: #299bcf;
	--pshsz-404-blue-pale: #74bfe3;
	--pshsz-404-text: #62778f;
	position: relative;
	min-height: max(700px, calc(100svh - 100px));
	box-sizing: border-box;
	overflow: hidden;
	background: #fff;
	color: var(--pshsz-404-text);
	padding: clamp(46px, 3.5vw, 54px) 0 clamp(112px, 12vw, 150px);
}

.pshsz-404-page *,
.pshsz-404-page *::before,
.pshsz-404-page *::after {
	box-sizing: inherit;
}

.pshsz-404-shell {
	position: relative;
	z-index: 1;
	display: grid;
	width: min(1060px, calc(100% - 40px));
	grid-template-columns: minmax(320px, 340px) minmax(0, 1fr);
	gap: clamp(82px, 9vw, 130px);
	align-items: center;
	margin: 0 auto;
}

.pshsz-404-content {
	min-width: 0;
	transform: translateY(-68px);
}

.pshsz-404-eyebrow,
.pshsz-404-code {
	margin: 0;
}

.pshsz-404-eyebrow {
	color: var(--pshsz-404-blue-pale);
	font-size: clamp(18px, 1.55vw, 22px);
	font-weight: 300;
	line-height: 1.3;
}

.pshsz-404-code {
	margin: 38px 0 32px;
	color: var(--pshsz-404-blue);
	font-size: clamp(112px, 10.4vw, 156px);
	font-weight: 200;
	letter-spacing: 0.015em;
	line-height: 0.94;
}

.pshsz-404-actions {
	display: flex;
	align-items: flex-start;
	flex-direction: column;
	gap: 20px;
	margin-top: 34px;
}

.pshsz-404-home-link,
.pshsz-404-home-link:visited {
	display: inline-flex;
	min-width: 190px;
	min-height: 54px;
	align-items: center;
	justify-content: center;
	border: 1px solid var(--pshsz-404-blue);
	border-radius: 8px;
	background: var(--pshsz-404-blue);
	color: #fff;
	padding: 12px 30px;
	font-size: 17px;
	font-weight: 500;
	letter-spacing: 0.12em;
	line-height: 1.35;
	text-decoration: none;
	transition: background-color 160ms ease, border-color 160ms ease;
}

.pshsz-404-home-link:hover,
.pshsz-404-home-link:focus-visible {
	border-color: var(--pshsz-404-blue-dark);
	background: var(--pshsz-404-blue-dark);
	color: #fff;
	text-decoration: none;
}

.pshsz-404-course-link,
.pshsz-404-course-link:visited {
	border-bottom: 1px solid transparent;
	color: var(--pshsz-404-blue-dark);
	font-size: 16px;
	font-weight: 500;
	letter-spacing: 0.1em;
	line-height: 1.5;
	text-decoration: none;
}

.pshsz-404-course-link:hover,
.pshsz-404-course-link:focus-visible {
	border-bottom-color: currentColor;
	color: #1689bd;
	text-decoration: none;
}

.pshsz-404-home-link:focus-visible,
.pshsz-404-course-link:focus-visible {
	outline: 3px solid currentColor;
	outline-offset: 4px;
}

.pshsz-404-home-link:focus-visible {
	outline-color: var(--pshsz-404-blue-dark);
}

.pshsz-404-visual {
	position: relative;
	width: calc(100% + max(20px, (100vw - 1060px) / 2));
	margin: 0;
	aspect-ratio: 1.22 / 1;
}

.pshsz-404-photo {
	position: relative;
	z-index: 1;
	display: block;
	width: 100%;
	height: 100%;
	clip-path: polygon(7% 0, 100% 0, 100% 100%, 23% 100%);
	object-fit: cover;
	object-position: center center;
}

.pshsz-404-wave {
	position: absolute;
	left: 0;
	bottom: clamp(100px, 8.5vw, 124px);
	display: block;
	width: min(45vw, 675px);
	height: auto;
	pointer-events: none;
}

@media (max-width: 1024px) {
	.pshsz-404-page {
		min-height: 0;
		padding: 58px 0 122px;
	}

	.pshsz-404-shell {
		width: min(720px, calc(100% - 40px));
		grid-template-columns: 1fr;
		gap: 56px;
	}

	.pshsz-404-content {
		width: min(100%, 560px);
		transform: none;
	}

	.pshsz-404-visual {
		width: 100%;
		aspect-ratio: 1.45 / 1;
	}

	.pshsz-404-photo {
		clip-path: polygon(4% 0, 100% 0, 100% 100%, 15% 100%);
	}

	.pshsz-404-wave {
		bottom: 26px;
		width: min(70vw, 675px);
	}
}

@media (max-width: 600px) {
	.pshsz-404-page {
		padding: 42px 0 94px;
	}

	.pshsz-404-shell {
		width: min(100% - 32px, 540px);
		gap: 42px;
	}

	.pshsz-404-code {
		margin: 14px 0 16px;
		font-size: clamp(96px, 30vw, 128px);
	}

	.pshsz-404-actions {
		margin-top: 28px;
	}

	.pshsz-404-home-link,
	.pshsz-404-home-link:visited {
		min-width: 172px;
		min-height: 50px;
		font-size: 16px;
	}

	.pshsz-404-visual {
		aspect-ratio: 1.25 / 1;
	}

	.pshsz-404-wave {
		width: min(88vw, 520px);
	}
}
