/**
 * 全ページ共通フッターの学校情報、主要CTA、子ページナビゲーションを管理する。
 *
 * template-parts/components/site/ 配下のフッター構造を前提に、PC・スマートフォンで同じ情報順を維持する。
 * ページ固有の余白やコンテンツ幅は持ち込まず、サイト共通フッターの表示責務だけを扱う。
 */

.shs-site-footer {
	position: relative;
	z-index: 1;
	margin: 0;
	color: #282329;
	background: radial-gradient(circle at 8% 0%, rgba(239, 120, 188, 0.09), transparent 32%), linear-gradient(180deg, #fffdfd 0%, rgba(239, 120, 188, .030) 100%);
	border-top: 1px solid rgba(239, 120, 188, .140);
}

.shs-site-footer::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 3px;
	background: linear-gradient(90deg, #9e5369 0%, #9e5369 48%, #ef78bc 100%);
}

.shs-site-footer,
.shs-site-footer * {
	box-sizing: border-box;
}

.shs-site-footer__inner {
	width: min(1480px, calc(100% - 64px));
	margin: 0 auto;
	padding: 25px 0 13px;
}

/**
 * 1.0 学校情報と主要CTA
 *
 * ロゴ、所在地、連絡先、説明会・相談・問い合わせ導線をフッター上段へまとめる。
 */

.shs-site-footer__top {
	display: grid;
	grid-template-columns: minmax(430px, 1fr) auto;
	gap: 42px;
	align-items: center;
}

.shs-site-footer__brand-area {
	min-width: 0;
}

.shs-site-footer__brand {
	display: inline-flex;
	align-items: center;
	gap: 14px;
	color: #ef78bc;
	text-decoration: none;
}

.shs-site-footer__crest {
	flex: 0 0 50px;
	width: 50px;
	height: 50px;
	display: grid;
	place-items: center;
}

.shs-site-footer__crest img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: contain;
	opacity: 0.78;
}

.shs-site-footer__brand-copy {
	display: block;
	min-width: 0;
}

.shs-site-footer__school-name {
	display: block;
	margin: 0;
	color: #9e5369;
	font-family: "Yu Mincho", "Hiragino Mincho ProN", "Hiragino Mincho Pro", serif;
	font-size: 24px;
	font-weight: 500;
	line-height: 1.15;
	letter-spacing: 0.08em;
	white-space: nowrap;
}

.shs-site-footer__school-name-en {
	display: block;
	margin-top: 4px;
	color: #9e5369;
	font-family: "Oswald", sans-serif;
	font-size: 8px;
	line-height: 1.4;
	letter-spacing: 0.18em;
	white-space: nowrap;
}

.shs-site-footer__meta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px 22px;
	margin-top: 13px;
}

.shs-site-footer__address,
.shs-site-footer__phone,
.shs-site-footer__mail {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	margin: 0;
	color: #746b70;
	font-size: 11px;
	font-style: normal;
	line-height: 1.6;
	letter-spacing: 0.02em;
	text-decoration: none;
}

.shs-site-footer__address svg,
.shs-site-footer__phone svg,
.shs-site-footer__mail svg {
	flex: 0 0 15px;
	width: 15px;
	height: 15px;
	fill: #9e5369;
}

.shs-site-footer__phone,
.shs-site-footer__mail {
	transition: color 0.2s ease;
}

.shs-site-footer__phone:hover,
.shs-site-footer__phone:focus-visible,
.shs-site-footer__mail:hover,
.shs-site-footer__mail:focus-visible {
	color: #ef78bc;
}

/**
 * 2.0 フッター主要アクション
 *
 * 相談と問い合わせを同じ高さのボタンとして配置し、ページ末尾でも主要行動へ到達できるようにする。
 */

.shs-site-footer__actions {
	display: grid;
	grid-template-columns: repeat(3, minmax(132px, 1fr));
	gap: 10px;
}

.shs-site-footer__action {
	min-height: 54px;
	padding: 10px 18px;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	justify-content: center;
	color: #ef78bc;
	background: rgba(255, 255, 255, 0.86);
	border: 1px solid rgba(239, 120, 188, .220);
	border-radius: 14px;
	text-decoration: none;
	box-shadow: 0 8px 20px rgba(158, 83, 105, 0.045);
	transition:
		border-color var(--shs-hover-lift-duration) var(--shs-hover-lift-ease),
		background-color var(--shs-hover-lift-duration) var(--shs-hover-lift-ease),
		transform var(--shs-hover-lift-duration) var(--shs-hover-lift-ease),
		box-shadow var(--shs-hover-lift-duration) var(--shs-hover-lift-ease);
}

.shs-site-footer__action span {
	font-family: "Yu Mincho", "Hiragino Mincho ProN", "Hiragino Mincho Pro", serif;
	font-size: 13px;
	font-weight: 600;
	line-height: 1.3;
	letter-spacing: 0.04em;
}

.shs-site-footer__action small {
	margin-top: 3px;
	color: #ef78bc;
	font-family: "Oswald", sans-serif;
	font-size: 7px;
	line-height: 1;
	letter-spacing: 0.16em;
}

.shs-site-footer__action--consultation {
	color: #fff;
	background: linear-gradient(135deg, #9e5369, #9e5369);
	border-color: transparent;
}

.shs-site-footer__action--consultation small {
	color: rgba(255, 255, 255, 0.72);
}

.shs-site-footer__action:hover,
.shs-site-footer__action:focus-visible {
	border-color: #9e5369;
	transform: translateY(-2px);
	box-shadow: 0 12px 25px rgba(158, 83, 105, 0.09);
}

.shs-site-footer__action--consultation:hover,
.shs-site-footer__action--consultation:focus-visible {
	background: linear-gradient(135deg, #9e5369, #9e5369);
}

/**
 * 3.0 サイト階層ナビゲーション
 *
 * 親ページと子ページをグループ化し、現在のサイト構造をフッターからも追えるようにする。
 */

.shs-site-footer__navigation {
	margin-top: 19px;
	padding: 16px 0 15px;
	border-top: 1px solid rgba(239, 120, 188, .140);
	border-bottom: 1px solid rgba(239, 120, 188, .140);
}

.shs-site-footer__nav-groups {
	display: grid;
	grid-template-columns: repeat(7, minmax(0, 1fr));
	gap: 18px 24px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.shs-site-footer__nav-group {
	min-width: 0;
	margin: 0;
}

.shs-site-footer__nav-title {
	position: relative;
	min-height: 25px;
	padding: 0 0 8px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 8px;
	color: #9e5369;
	font-size: 12px;
	font-weight: 700;
	line-height: 1.4;
	letter-spacing: 0.04em;
	text-decoration: none;
	border-bottom: 1px solid rgba(239, 120, 188, .140);
	transition: color 0.2s ease, border-color 0.2s ease;
}

.shs-site-footer__nav-title svg {
	flex: 0 0 12px;
	width: 12px;
	height: 12px;
	fill: none;
	stroke: #9e5369;
	stroke-width: 1.5;
	stroke-linecap: round;
	stroke-linejoin: round;
	transition: transform 0.2s ease;
}

.shs-site-footer__nav-title:hover,
.shs-site-footer__nav-title:focus-visible {
	color: #9e5369;
	border-color: #ef78bc;
}

.shs-site-footer__nav-title:hover svg,
.shs-site-footer__nav-title:focus-visible svg {
	transform: translateX(2px);
}

.shs-site-footer__child-list {
	display: grid;
	gap: 5px;
	margin: 9px 0 0;
	padding: 0;
	list-style: none;
}

.shs-site-footer__child-list li {
	min-width: 0;
	margin: 0;
}

.shs-site-footer__child-list a {
	position: relative;
	padding-left: 11px;
	display: inline-block;
	color: #71666c;
	font-size: 9.5px;
	font-weight: 500;
	line-height: 1.55;
	letter-spacing: 0.015em;
	text-decoration: none;
	transition: color 0.2s ease, transform 0.2s ease;
}

.shs-site-footer__child-list a::before {
	content: "";
	position: absolute;
	top: 0.72em;
	left: 0;
	width: 4px;
	height: 1px;
	background: #9e5369;
	transition: width 0.2s ease, background-color 0.2s ease;
}

.shs-site-footer__child-list a:hover,
.shs-site-footer__child-list a:focus-visible {
	color: #ef78bc;
	transform: translateX(2px);
}

.shs-site-footer__child-list a:hover::before,
.shs-site-footer__child-list a:focus-visible::before {
	width: 7px;
	background: #9e5369;
}

.shs-site-footer__nav-group.is-single .shs-site-footer__nav-title {
	border-bottom-color: transparent;
}

/*
 * 子リンクを持たない「アクセス」は通常時だけ下線を隠す。
 * 詳細度の高い is-single 指定が共通hoverを打ち消さないよう、操作時は共通色へ戻す。
 */
.shs-site-footer__nav-group.is-single .shs-site-footer__nav-title:hover,
.shs-site-footer__nav-group.is-single .shs-site-footer__nav-title:focus-visible {
	border-bottom-color: #ef78bc;
}

/**
 * 4.0 法務・補助リンク
 *
 * プライバシーポリシーなどの補助情報とコピーライトを最下段へ集約する。
 */

.shs-site-footer__bottom {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 24px;
	padding-top: 11px;
}

.shs-site-footer__legal-links,
.shs-site-footer__bottom .footer-privacy-link {
	margin: 0;
}

.shs-site-footer__bottom .footer-privacy-link a {
	color: #746b70;
	font-size: 10px;
	line-height: 1.5;
	text-decoration: none;
}

.shs-site-footer__bottom .footer-privacy-link a:hover,
.shs-site-footer__bottom .footer-privacy-link a:focus-visible {
	color: #ef78bc;
	text-decoration: underline;
	text-underline-offset: 4px;
}

.shs-site-footer__bottom small {
	display: block;
	margin: 0;
	color: #93898e;
	font-family: Georgia, "Times New Roman", serif;
	font-size: 9px;
	line-height: 1.5;
	letter-spacing: 0.025em;
	text-align: right;
}

/**
 * 5.0 フッターのレスポンシブ設計
 *
 * 1180px以下でナビゲーション列を減らし、760px以下では学校情報・CTA・リンク群を縦方向へ再配置する。
 */

@media (max-width: 1180px) {
	.shs-site-footer__inner {
		width: min(100% - 48px, 1080px);
	}

	.shs-site-footer__top {
		grid-template-columns: 1fr;
		gap: 20px;
	}

	.shs-site-footer__actions {
		width: min(100%, 620px);
	}

	.shs-site-footer__nav-groups {
		grid-template-columns: repeat(4, minmax(0, 1fr));
	}
}

@media (max-width: 760px) {
	.shs-site-footer__inner {
		width: calc(100% - 24px);
		padding: 16px 0 9px;
	}

	.shs-site-footer__top {
		gap: 12px;
	}

	.shs-site-footer__brand {
		gap: 9px;
	}

	.shs-site-footer__crest {
		flex-basis: 38px;
		width: 38px;
		height: 38px;
	}

	.shs-site-footer__school-name {
		font-size: 18px;
		line-height: 1.1;
	}

	.shs-site-footer__school-name-en {
		margin-top: 2px;
		font-size: 6px;
		letter-spacing: 0.1em;
		white-space: normal;
	}

	.shs-site-footer__meta {
		display: grid;
		grid-template-columns: auto 1fr;
		gap: 4px 14px;
		margin-top: 8px;
	}

	.shs-site-footer__address {
		grid-column: 1 / -1;
	}

	.shs-site-footer__address,
	.shs-site-footer__phone,
	.shs-site-footer__mail {
		align-items: center;
		gap: 5px;
		font-size: 9px;
		line-height: 1.45;
	}

	.shs-site-footer__address svg,
	.shs-site-footer__phone svg,
	.shs-site-footer__mail svg {
		flex-basis: 12px;
		width: 12px;
		height: 12px;
	}

	.shs-site-footer__actions {
		width: 100%;
		grid-template-columns: repeat(3, minmax(0, 1fr));
		gap: 6px;
	}

	.shs-site-footer__action,
	.shs-site-footer__action--event {
		min-height: 40px;
		padding: 7px 6px;
		grid-column: auto;
		align-items: center;
		text-align: center;
		border-radius: 10px;
		box-shadow: none;
	}

	.shs-site-footer__action span {
		font-size: 10px;
		line-height: 1.25;
		letter-spacing: 0.01em;
		line-break: strict;
		overflow-wrap: normal;
		text-wrap: balance;
		word-break: normal;
	}

	.shs-site-footer__action small {
		display: none;
	}

	.shs-site-footer__navigation {
		display: none;
	}

	.shs-site-footer__bottom {
		gap: 12px;
		margin-top: 11px;
		padding-top: 9px;
		border-top: 1px solid rgba(239, 120, 188, 0.88);
	}

	.shs-site-footer__bottom .footer-privacy-link a {
		font-size: 8px;
	}

	.shs-site-footer__bottom small {
		font-size: 7px;
	}
}

@media (max-width: 420px) {
	.shs-site-footer__inner {
		width: calc(100% - 20px);
	}

	.shs-site-footer__meta {
		grid-template-columns: 1fr;
		gap: 3px;
	}

	.shs-site-footer__address,
	.shs-site-footer__phone,
	.shs-site-footer__mail {
		grid-column: 1;
	}

	.shs-site-footer__bottom {
		align-items: flex-end;
		gap: 8px;
	}
}
