/* ===== 下層ページ共通 ===== */

/* 上部バナー */
.sub-hero {
	position: relative;
	padding: 3.125rem 0 4.0625rem;
	background: #00bdce;
	color: #fff;
	overflow: hidden;
}
.sub-hero::before {
	position: absolute;
	inset: 0;
	background: #48c7da url("../img/sub/hero-overlay.jpg") center / cover no-repeat;
	opacity: .15;
	content: "";
}
.sub-hero__inner {
	position: relative;
	max-width: calc(var(--inner-width) + 2.5rem);
	margin: 0 auto;
	padding: 0 1.25rem;
}
.sub-hero__title {
	margin: 0;
	font-size: 2.1875rem;
	font-weight: 500;
	line-height: 1.4;
	text-shadow: 0 0 4px #01a9ad;
}
.sub-hero__wave {
	position: absolute;
	left: 0;
	bottom: -1px;
	width: 100%;
	height: 1.75rem;
	fill: #fff;
}

/* 本文エリア */
.sub-body {
	padding: 3.75rem 0;
	background: url("../img/sub/bg.png") top center / 100% auto repeat-y;
	overflow: hidden;
}
.sub-body__inner {
	max-width: 59.375rem;
	margin: 0 auto;
	padding: 0 1.25rem;
	color: #545454;
}
.sub-body__inner > * + * { margin-top: 1.5rem; }

/* 見出し・飾り */
.sub-dots { display: block; margin: 0 auto -0.5rem; max-width: 7.5rem; }
.sub-heading {
	margin: 0 0 1.5rem;
	color: #333;
	font-family: var(--font-round);
	font-size: 1.875rem;
	font-weight: 700;
	line-height: 1.4;
}
.sub-heading.is-center { text-align: center; }
h3.sub-heading { font-size: 1.375rem; }
h4.sub-heading { font-size: 1.125rem; }

/* 本文・カード */
.sub-text { font-size: 0.95rem; line-height: 1.9; }
.sub-text p { margin: 0 0 1em; }
.sub-text p:last-child { margin-bottom: 0; }
.sub-text a, .sub-link { color: var(--color-pink); }
.sub-card {
	padding: 1.375rem;
	background: #f6f6f6;
	border-radius: 1.25rem;
}
.sub-card img { display: block; margin: 0 auto 1.25rem; border-radius: 1.25rem; }
.sub-img { display: block; max-width: 100%; height: auto; }
.sub-img.is-center { margin-left: auto; margin-right: auto; }

/* 列組み */
.sub-cols { display: flex; flex-wrap: wrap; gap: 1.5rem; }
.sub-col { flex: 1 1 0; min-width: 0; }
.sub-col > * + * { margin-top: 1rem; }

/* アイコンリスト・ボタン */
.sub-iconlist { margin: 0; padding: 0; list-style: none; font-size: 0.95rem; line-height: 1.8; }
.sub-iconlist li + li { margin-top: 0.5rem; }
.sub-iconlist a { color: var(--color-pink); }
.sub-btn {
	display: inline-block;
	padding: 0.75rem 2rem;
	background: var(--color-pink);
	border-radius: 2rem;
	color: #fff;
	font-weight: 700;
	text-decoration: none;
}
.sub-btn:hover { opacity: .85; }

/* 表（TablePress） */
.sub-body .tablepress { width: 100%; margin: 0; border: 0; font-size: 0.875rem; }
.sub-body .tablepress th,
.sub-body .tablepress td { padding: 1rem; border: 0; border-bottom: 1px solid #ddd; background: transparent; vertical-align: top; }
.sub-body .tablepress tbody tr:nth-child(even) td { background: #f8f8f8; }

/* PC/SP 表示切替 */
@media (min-width: 768px) { .is-sp-only { display: none !important; } }
@media (max-width: 767px) {
	.is-pc-only { display: none !important; }
	.sub-hero { padding: 1.875rem 0 2.5rem; }
	.sub-hero__title { font-size: 1.4375rem; }
	.sub-hero__wave { height: 0.8125rem; }
	.sub-body { padding: 3.125rem 0; background-image: url("../img/sub/bg-sp.png"); background-size: contain; }
	.sub-body__inner { padding: 0 1.25rem; }
	.sub-heading { font-size: 1.5rem; }
	.sub-cols { flex-direction: column; }
	.sub-card { padding: 0.625rem; }
}

/* ===== お問い合わせフォーム（Contact Form 7） ===== */
#cf-tbl { width: 100%; max-width: 50rem; margin: 0 auto; }
#cf-tbl table { width: 100%; border-collapse: collapse; border: 1px solid #ccc; color: #444; }
#cf-tbl table tr th,
#cf-tbl table tr td { padding: 0.5em; text-align: left; vertical-align: middle; border: 1px solid #ccc; }
#cf-tbl table tr th { width: 35%; background: #eee; font-size: 0.875rem; }
.required,
.optional { margin-right: 5px; padding: 5px; border-radius: 3px; color: #fff; font-size: .8em; }
.required { background: #fb2c58; }
.optional { background: #000080; }
.wpcf7 select { width: 100%; padding: 0.5rem; border: 1px solid #999; border-radius: 3px; background: #fff; }
input.wpcf7-form-control.wpcf7-text,
textarea.wpcf7-form-control.wpcf7-textarea {
	width: 100%;
	padding: 8px 15px;
	border: 1px solid #d0d5d8;
	border-radius: 3px;
	background-color: #eff1f5;
}
textarea.wpcf7-form-control.wpcf7-textarea { height: 12.5rem; }
input.wpcf7-submit {
	display: block;
	width: 25rem;
	max-width: 100%;
	margin: 1rem auto 0;
	padding: 15px;
	border: 0;
	border-radius: 2px;
	background: #f0005a;
	color: #fff;
	font-size: 1.125rem;
	font-weight: 700;
	cursor: pointer;
}
input.wpcf7-submit:hover { opacity: .7; }
span.wpcf7-not-valid-tip,
.wpcf7-response-output.wpcf7-validation-errors { color: red; font-weight: 600; }

/* 表内リンク */
.sub-body .tablepress a { color: var(--color-pink); }

@media (max-width: 767px) {
	#cf-tbl table, #cf-tbl table tbody, #cf-tbl table tr, #cf-tbl table tr th, #cf-tbl table tr td { display: block; }
	#cf-tbl table { border-width: 0 0 1px 0; }
	#cf-tbl table tr th, #cf-tbl table tr td { width: 100%; padding: 3% 5%; }
	#cf-tbl table tr td { border-width: 0 1px; }
	input.wpcf7-submit { width: 15.625rem; }
}

/* アイコン付きリスト（見出し風） */
.sub-iconlist li { display: flex; align-items: baseline; gap: 0.5rem; }
.sub-icon {
	flex-shrink: 0;
	display: inline-block;
	width: 1.1em;
	height: 1.1em;
	translate: 0 0.15em;
	background: currentColor;
	-webkit-mask: var(--ico) center / contain no-repeat;
	mask: var(--ico) center / contain no-repeat;
}
.sub-icon--check { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill-rule='evenodd' d='M4 12.5l5 5L20 6.5l-2-2L9 13.5l-3-3z'/%3E%3C/svg%3E"); }
.sub-icon--check-circle { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill-rule='evenodd' d='M12 2a10 10 0 100 20 10 10 0 000-20zm-1.2 14.2L6.6 12 8 10.6l2.8 2.8 5.2-5.2 1.4 1.4z'/%3E%3C/svg%3E"); }
.sub-icon--chevron-circle { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill-rule='evenodd' d='M12 2a10 10 0 100 20 10 10 0 000-20zM10.7 7.3L16.1 12l-5.4 4.7-1.4-1.5L12.9 12 9.300 8.800z'/%3E%3C/svg%3E"); }
.sub-icon--chevron { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill-rule='evenodd' d='M9 5l7 7-7 7-1.8-1.8L12.4 12 7.2 6.8z'/%3E%3C/svg%3E"); }
.sub-icon--caret { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill-rule='evenodd' d='M8 5l9 7-9 7z'/%3E%3C/svg%3E"); }
.sub-icon--dot-circle { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill-rule='evenodd' d='M12 2a10 10 0 100 20 10 10 0 000-20zm0 3a7 7 0 110 14 7 7 0 010-14z'/%3E%3Ccircle cx='12' cy='12' r='3.5'/%3E%3C/svg%3E"); }
.sub-icon--times { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill-rule='evenodd' d='M6 4.6L12 10.6l6-6L19.400 6 13.400 12l6 6-1.400 1.400-6-6-6 6L4.600 18l6-6-6-6z'/%3E%3C/svg%3E"); }
.sub-icon--caret, .sub-icon--chevron { width: 0.8em; height: 0.8em; }



/* 全幅の帯（本文エリアの外に置かれたセクション） */
.sub-hero ~ .sub-sec,
.sub-body ~ .sub-sec { margin: 0; }
.sub-hero ~ .sub-cols,
.sub-body ~ .sub-cols { gap: 0; }

/* 人物カード（スタッフ紹介など） */
.sub-col > .sub-img { margin-left: auto; margin-right: auto; }
.sub-iconlist + .sub-text { margin-top: 0.25rem; }

/* ===== スタッフ一覧 ===== */
.staff { margin-top: 4rem; }
.staff__lead { margin: 0 0 2rem; text-align: center; font-weight: 700; color: var(--color-teal); }
.staff__list {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 1.25rem;
	margin: 0;
	padding: 0;
	list-style: none;
}
.staff__item {
	display: flex;
	flex-direction: column;
	align-items: center;
	padding: 1.25rem;
	background: #f6f6f6;
	border-radius: 1.25rem;
	text-align: center;
}
.staff__name { margin: 0 0 0.75rem; color: #00b8c8; font-family: var(--font-round); font-size: 1.25rem; line-height: 1.4; }
.staff__photo { width: 9rem; height: 9rem; overflow: hidden; border-radius: 50%; background: #fff; }
.staff__photo img { width: 100%; height: 100%; object-fit: cover; }
.staff__photo img.is-empty { padding: 1.25rem; object-fit: contain; opacity: .6; }
.staff__room {
	margin: 0.875rem 0 0.75rem;
	padding: 0.125rem 1.5rem;
	background: #13babe;
	color: #fff;
	font-size: 0.8125rem;
	font-weight: 700;
}
.staff__comment { font-size: 0.875rem; line-height: 1.8; text-align: left; color: #545454; }
.staff__comment p { margin: 0 0 0.75em; }
.staff__comment p:last-child { margin-bottom: 0; }
@media (max-width: 1080px) { .staff__list { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 767px) { .staff__list { grid-template-columns: 1fr; } }

/* 全幅の帯（背景は全幅・中身は中央の箱） */
.sub-full { width: 100%; }
.sub-container { margin: 0 auto; padding: 0 1.25rem; }
.sub-container.sub-cols { gap: 1.5rem; }
.sub-container.sub-cols > .sub-col { flex: 1 1 0; }
.sub-container > * + * { margin-top: 1.25rem; }
.sub-container.sub-cols > * + * { margin-top: 0; }

/* アンカー用の空の span は高さを持たせない（隣り合う列の見出し位置がずれるのを防ぐ） */
.sub-col > span[id],
.sub-container > span[id] { display: block; height: 0; margin: 0 !important; }
.sub-cols > .sub-col > span[id] + .sub-heading { margin-top: 0; margin-bottom: 0; }

/* 箱の直下にある幅指定つきの画像は中央寄せ（発達障害とはページなど） */
.sub-box > img.sub-img[style*="width"] { margin-left: auto; margin-right: auto; }
.sub-box > .sub-img + .sub-text { margin-top: 1.25rem; }

.staff__empty { margin: 2rem 0; text-align: center; color: #666; }

/* 各園のホームページへのボタン */
.hoiku-links { display: flex; flex-wrap: wrap; justify-content: center; gap: 0.75rem 1rem; }
.sub-btn--navy { background: #232a3e; color: #fff; text-align: center; padding: 0.625rem 1.5rem; font-size: 0.9375rem; }
@media (max-width: 767px) { .hoiku-links .sub-btn { width: 100%; } }
@media (max-width: 767px) { .sub-img.hoiku-logo { width: 70% !important; } }
