/**
 * 下層ページで共有するヒーローと関連ページ部品を管理する。
 *
 * ページファミリーごとのCSSが共通構造を再実装しないよう、タイトル、リード、画像領域、
 * 関連ページカードの基準寸法を一箇所に集約する。ページ固有の例外は専用CSSで限定して指定する。
 */

.shs-about-family {
	padding-top: var(--shs-header-large, 124px);
	background: #fff;
}

.shs-about-family .container {
	box-sizing: border-box;
}

/**
 * 1.0 学校紹介配下の関連ページカード
 *
 * 親ページと子ページ間の回遊導線を共通化し、現在ページは is-current で操作不可の選択状態として見せる。
 */

.shs-about-family .related-pages {
	padding: 86px 0 110px;
	background: #fff;
	border-top: 1px solid rgba(239, 120, 188, 0.72);
}

.shs-about-family .related-pages__head {
	margin: 0 auto 44px;
	max-width: 760px;
	text-align: center;
}

.shs-about-family .related-pages__head .accent-line {
	margin-inline: auto;
}

.shs-about-family .related-pages .link-card {
	position: relative;
	min-height: 338px;
	display: flex;
	flex-direction: column;
	justify-content: flex-start;
	padding: 45px 36px 32px;
	overflow: hidden;
	transition: transform 0.3s ease, border-color 0.3s ease, background 0.3s ease, box-shadow 0.3s ease;
}

.shs-about-family .related-pages .link-card:hover {
	border-color: #ef78bc;
	background: linear-gradient(180deg, #ffffff 0%, rgba(239, 120, 188, 0.08) 100%);
	box-shadow: 0 22px 52px rgba(158, 83, 105, 0.15);
}

.shs-about-family .related-pages .link-card:focus-visible {
	outline: 3px solid rgba(239, 120, 188, 0.36);
	outline-offset: 5px;
}

.shs-about-family .related-pages .card-action {
	width: 100%;
	margin-top: auto;
	padding-top: 26px;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 12px;
	color: #9e5369;
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 0.08em;
}

.shs-about-family .related-pages .card-action__icon {
	width: 42px;
	height: 42px;
	display: grid;
	place-items: center;
	flex: 0 0 42px;
	color: #ef78bc;
	border: 1px solid #ef78bc;
	border-radius: 50%;
	background: #ffffff;
	font-family: Arial, sans-serif;
	font-size: 18px;
	line-height: 1;
	transition: transform 0.3s ease, color 0.3s ease, background 0.3s ease, box-shadow 0.3s ease;
}

.shs-about-family .related-pages .link-card:hover .card-action__icon,
.shs-about-family .related-pages .link-card:focus-visible .card-action__icon {
	color: #ffffff;
	background: #ef78bc;
	transform: translateX(4px);
	box-shadow: 0 8px 20px rgba(239, 120, 188, 0.24);
}

.shs-about-family .related-pages__grid .link-card.is-current {
	border-color: rgba(158, 83, 105, 0.42);
	background: linear-gradient(180deg, #fff, rgba(239, 120, 188, .030));
}

.shs-about-family .related-pages__grid .link-card.is-current .card-action {
	color: rgba(158, 83, 105, 0.72);
}

.shs-about-family .related-pages__grid .link-card.is-current .card-action__icon {
	color: #9e5369;
	border-color: rgba(158, 83, 105, 0.32);
	background: rgba(239, 120, 188, 0.05);
}

.shs-about-family .related-pages__grid .link-card.is-current:hover .card-action__icon,
.shs-about-family .related-pages__grid .link-card.is-current:focus-visible .card-action__icon {
	color: #9e5369;
	background: rgba(239, 120, 188, 0.05);
	transform: none;
	box-shadow: none;
}

@media (max-width: 1100px) {
	.shs-about-family {
		padding-top: var(--shs-header-small, 82px);
	}
}

@media (max-width: 760px) {
	.shs-about-family .related-pages {
		padding: 66px 0 76px;
	}

	.shs-about-family .related-pages__head {
		margin-bottom: 28px;
	}

	.shs-about-family .related-pages .link-card {
		min-height: 0;
		padding: 36px 26px 28px;
	}

	.shs-about-family .related-pages .link-card p {
		min-height: 0;
	}

	.shs-about-family .related-pages .card-action {
		padding-top: 22px;
	}

	.shs-about-family .related-pages .card-action__icon {
		width: 38px;
		height: 38px;
		flex-basis: 38px;
	}
}

@media screen and (min-width: 961px) {
	.shs-about-family {
		padding-top: calc(var(--shs-header-large, 124px) - 20px);
	}
}

@media screen and (max-width: 960px) {
	.shs-about-family {
		padding-top: var(--shs-header-large, 82px);
	}
}

@media screen and (max-width: 760px) {
	.shs-about-family {
		padding-top: 72px;
	}
}

.shs-lower-page-main {
	padding-top: var(--shs-header-desktop, 104px);
	background: #fff;
}

.sub-page-main.shs-lower-page-main {
	padding: var(--shs-header-desktop, 104px) 0 96px;
	background: radial-gradient( circle at 14% 10%, rgba(158, 83, 105, 0.08), transparent 30% ), linear-gradient(180deg, #fff 0%, #fbf7f8 48%, #fff 100%);
}

/**
 * 2.0 下層ページ共通ヒーロー
 *
 * パンくず、英字見出し、日本語見出し、説明文、写真を同じ構造で扱い、ページ固有CSSは色や画像だけを差し替える。
 */

.shs-lower-hero {
--lower-wine: #9e5369;
	--lower-rose: #ef78bc;
	--lower-line: rgba(239, 120, 188, .140);
	--lower-container: 1180px;
	position: relative;
	min-height: 620px;
	overflow: hidden;
	background: radial-gradient( circle at 12% 12%, rgba(239, 120, 188, 0.09), transparent 28% ), linear-gradient(125deg, #fffafc, #fff 70%);
	border-bottom: 1px solid var(--lower-line);
isolation: isolate;
}

.shs-lower-hero__left {
position: relative;
	min-height: 620px;
z-index: 5;
}

.shs-lower-hero__inner {
	width: min(var(--lower-container), calc(100% - 48px));
	min-height: 620px;
	margin: 0 auto;
	display: flex;
	flex-direction: column;
	justify-content: center;
}

.shs-lower-hero__breadcrumb {
	margin: 0 0 18px;
	display: flex;
	flex-wrap: wrap;
	gap: 9px;
	color: #978a90;
	font-size: 10px;
	font-weight: 700;
	letter-spacing: 0.13em;
	text-transform: uppercase;
}

.shs-lower-hero__breadcrumb a,
.shs-lower-hero__breadcrumb strong {
	color: inherit;
}

.shs-lower-hero__breadcrumb a:hover {
	color: var(--lower-rose);
}

.shs-lower-hero__eyebrow {
	margin: 0 0 10px;
	color: var(--lower-rose);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.19em;
	text-transform: uppercase;
}

.shs-lower-hero__title {
	margin: 0;
	max-width: min(760px, 52vw);
	color: var(--lower-wine);
	word-break: keep-all;
	overflow-wrap: normal;
}

.shs-lower-hero__title-en {
	display: block;
	font-family: Georgia, "Times New Roman", serif;
	font-size: clamp(50px, 7.4vw, 94px);
	font-weight: 400;
	line-height: 0.92;
	letter-spacing: 0.025em;
}

.shs-lower-hero__title-jp {
	display: block;
	margin-top: 25px;
	font-family: "Yu Mincho", "Hiragino Mincho ProN", serif;
	font-size: clamp(25px, 3vw, 38px);
	font-weight: 500;
	line-height: 1.5;
	letter-spacing: 0.1em;
}

.shs-lower-hero__line {
	width: 46px;
	height: 2px;
	margin: 18px 0;
	background: var(--lower-rose);
}

.shs-lower-hero__lead {
	margin: 0;
	max-width: 480px;
	color: #4f474c;
	font-size: 16px;
	line-height: 2.05;
}

.shs-lower-hero__visual {
	position: absolute;
	inset: 0 0 0 50%;
	z-index: 1;
	min-height: 620px;
	overflow: hidden;
}

.shs-lower-hero__visual::before {
	content: "";
	position: absolute;
	inset: 0 auto 0 0;
	z-index: 2;
	width: 30%;
	background: linear-gradient( 90deg, #fff 0%, rgba(255, 255, 255, 0.76) 32%, transparent 100% );
	pointer-events: none;
}

.shs-lower-hero--principal {
	--lower-hero-image-position: 45% center;
}

.shs-lower-hero--curriculum-career {
	--lower-hero-image-position: 32% 30%;
}

.shs-lower-page-main .sub-content-section {
	margin-top: 64px;
}

.shs-about-family.shs-lower-page-main .p1-about,
.shs-about-family.shs-lower-page-main .p3-main,
.shs-about-family.shs-lower-page-main .principal-message-section,
.shs-about-family.shs-lower-page-main .profile-features {
	margin-top: 0;
}

@media screen and (max-width: 960px) {
	.shs-lower-page-main,
	.sub-page-main.shs-lower-page-main {
		padding-top: var(--shs-header-large, 82px);
	}
}

@media screen and (max-width: 820px) {
	.shs-lower-hero--curriculum-career {
		--lower-hero-image-position: 30% 26%;
	}

	.shs-lower-hero {
		min-height: auto;
		display: flex;
		flex-direction: column;
	}

	.shs-lower-hero__left {
		min-height: auto;
		order: 2;
	}

	.shs-lower-hero__inner {
		width: calc(100% - 40px);
		min-height: auto;
		padding: 34px 0 64px;
	}

	.shs-lower-hero__visual {
		position: relative;
		inset: auto;
		min-height: 420px;
		order: 1;
	}

	.shs-lower-hero__visual::before {
		width: 100%;
		height: 30%;
		inset: auto 0 0;
		background: linear-gradient(0deg, #fff, transparent);
	}

	.shs-lower-hero__title {
		max-width: 100%;
	}

	.shs-lower-hero__title-en {
		font-size: clamp(46px, 13vw, 70px);
	}

	.shs-lower-hero__title-jp {
		margin-top: 18px;
	}

	.shs-lower-page-main .sub-content-section {
		margin-top: 42px;
	}
}

@media screen and (max-width: 600px) {
	.shs-lower-hero__visual {
		min-height: 320px;
	}

	.shs-lower-hero__title-en {
		font-size: 43px;
	}

	.shs-lower-hero__lead {
		font-size: 14px;
	}

}

.shs-lower-hero__inner,
.shs-lower-hero__breadcrumb,
.shs-lower-hero__eyebrow,
.shs-lower-hero__title,
.shs-lower-hero__line,
.shs-lower-hero__lead {
	position: relative;
	z-index: 6;
}

.shs-lower-hero__visual img {
	position: relative;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: var(--lower-hero-image-position, center);
	z-index: 1;
}

.shs-lower-hero--philosophy .shs-lower-hero__title {
	max-width: min(880px, 56vw);
}

.shs-lower-hero--philosophy .shs-lower-hero__title-en {
	text-shadow: 0 0 24px rgba(255, 255, 255, 0.78);
}

@media screen and (max-width: 820px) {
	.shs-lower-hero__left,
	.shs-lower-hero__inner,
	.shs-lower-hero__breadcrumb,
	.shs-lower-hero__eyebrow,
	.shs-lower-hero__title,
	.shs-lower-hero__line,
	.shs-lower-hero__lead,
	.shs-lower-hero__visual,
	.shs-lower-hero__visual img,
	.shs-lower-hero__visual::before {
		z-index: auto;
	}

	.shs-lower-hero--philosophy .shs-lower-hero__title {
		max-width: 100%;
	}

	.shs-lower-hero--philosophy .shs-lower-hero__title-en {
		text-shadow: none;
	}
}

body.is-school-philosophy-page .shs-about-family.shs-philosophy-exact .philosophy-story__media {
	aspect-ratio: 3 / 2;
	background-size: cover;
	background-repeat: no-repeat;
	background-color: transparent;
}

@media screen and (max-width: 782px) {
	html {
		margin-top: 0;
	}

	body.admin-bar [id="wpadminbar"] {
		display: none;
	}

	body.admin-bar .shs-lower-page-main,
	body.admin-bar .sub-page-main.shs-lower-page-main,
	body.admin-bar .shs-about-family {
		padding-top: var(--shs-header-large, 78px);
	}
}

@media screen and (max-width: 600px) {
	body.admin-bar .shs-lower-page-main,
	body.admin-bar .sub-page-main.shs-lower-page-main,
	body.admin-bar .shs-about-family,
	.shs-lower-page-main,
	.sub-page-main.shs-lower-page-main,
	.shs-about-family {
		padding-top: var(--shs-header-large, 78px);
	}
}

@media (max-width: 760px) {
	body.is-school-philosophy-page .shs-philosophy-exact .philosophy-story {
		padding: 64px 0 76px;
	}

	body.is-school-philosophy-page .shs-philosophy-exact .philosophy-story__head {
		margin-bottom: 30px;
	}

	body.is-school-philosophy-page .shs-philosophy-exact .philosophy-story__layout {
		display: block;
	}

	/**
 * 3.0 学校理念ページの共通部品接続
 *
 * 学校理念だけが利用する固定ビジュアルとストーリー部品を、共通ヒーローの後段で安全に接続する。
 */

body.is-school-philosophy-page .shs-philosophy-exact .philosophy-story__visual {
		display: none;
	}

	body.is-school-philosophy-page .shs-philosophy-exact .philosophy-story__steps {
		display: grid;
		gap: 24px;
	}

	body.is-school-philosophy-page .shs-philosophy-exact .philosophy-step,
	body.is-school-philosophy-page .shs-philosophy-exact .philosophy-step.is-active {
		min-height: 0;
		display: block;
		padding: 18px 18px 28px;
		overflow: hidden;
		opacity: 1;
		transform: none;
		background: rgba(255, 255, 255, 0.96);
		border: 1px solid var(--line);
		border-radius: 22px;
		box-shadow: 0 14px 36px rgba(158, 83, 105, 0.08);
	}

	body.is-school-philosophy-page .shs-philosophy-exact .philosophy-step::before {
		content: "";
		display: block;
		width: 100%;
		aspect-ratio: 3 / 2;
		margin: 0 0 24px;
		background-repeat: no-repeat;
		background-size: cover;
		background-position: center;
		border-radius: 16px;
		box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.55);
	}

	body.is-school-philosophy-page .shs-philosophy-exact .philosophy-step[data-step="question"]::before,
	body.is-school-philosophy-page .shs-philosophy-exact .philosophy-step[data-step="action"]::before {
		background-image: linear-gradient( 180deg, rgba(158, 83, 105, 0) 46%, rgba(158, 83, 105, 0.35) 100% ), url("../../../img/shared/learning/ai-collaboration.webp");
	}

	body.is-school-philosophy-page .shs-philosophy-exact .philosophy-step[data-step="ai"]::before {
		background-image: linear-gradient( 180deg, rgba(158, 83, 105, 0) 46%, rgba(158, 83, 105, 0.35) 100% ), url("../../../img/shared/learning/digital-learning.webp");
		background-position: 54% center;
	}

	body.is-school-philosophy-page .shs-philosophy-exact .philosophy-step[data-step="english"]::before {
		background-image: linear-gradient( 180deg, rgba(158, 83, 105, 0) 46%, rgba(158, 83, 105, 0.35) 100% ), url("../../../img/shared/learning/learning-community.webp");
	}

	body.is-school-philosophy-page .shs-philosophy-exact .philosophy-step__number {
		top: 25px;
		right: 26px;
		font-size: 48px;
		color: rgba(158, 83, 105, 0.13);
	}

	body.is-school-philosophy-page .shs-philosophy-exact .philosophy-step .eyebrow {
		margin-top: 0;
		margin-bottom: 10px;
		font-size: 10px;
		letter-spacing: 0.17em;
	}

	body.is-school-philosophy-page .shs-philosophy-exact .philosophy-step h3 {
		margin: 0 0 14px;
		font-size: clamp(23px, 7.2vw, 29px);
		line-height: 1.55;
	}

	body.is-school-philosophy-page .shs-philosophy-exact .philosophy-step > p:not(.eyebrow) {
		max-width: none;
		font-size: clamp(12px, 3.6vw, 14px);
		line-height: 1.9;
		text-wrap: wrap;
		overflow-wrap: normal;
		word-break: normal;
	}

	body.is-school-philosophy-page .shs-philosophy-exact .philosophy-step__tag {
		margin-top: 18px;
	}
}

@media (max-width: 420px) {
	body.is-school-philosophy-page .shs-philosophy-exact .philosophy-story {
		padding-top: 58px;
	}

	body.is-school-philosophy-page .shs-philosophy-exact .philosophy-step,
	body.is-school-philosophy-page .shs-philosophy-exact .philosophy-step.is-active {
		padding: 16px 16px 24px;
		border-radius: 20px;
	}

	body.is-school-philosophy-page .shs-philosophy-exact .philosophy-step::before {
		margin-bottom: 22px;
		border-radius: 15px;
	}
}

@media screen and (max-width: 760px) {
	.site-main.shs-lower-page-main {
		padding-bottom: 64px;
	}

	.site-main.shs-lower-page-main > section:last-of-type {
		margin-bottom: 0;
	}
}

@media screen and (max-width: 420px) {
	.site-main.shs-lower-page-main {
		padding-bottom: 72px;
	}
}
