/*
    Theme Name: KIDS
*/
/* お問い合わせMV画像を他ページに合わせる */
.entry #mv2 { background: url("/images/company/mv.jpg") center center no-repeat !important; background-size: cover !important; }
@media screen and (max-width:767px) {
	.entry #mv2 { background: none !important; }
}

/* MW WP Form バリデーションエラー */
/* お問い合わせ送信ボタン */
.entry .entry_sec .submit_btn input[type="submit"] {
	display: flex; align-items: center; justify-content: center;
	margin: 0 auto; width: 300px; height: 60px; padding: 0 20px;
	background: #393939; color: #fff; font-size: 0.9rem;
	border: none; cursor: pointer; transition: 0.3s;
}
.entry .entry_sec .submit_btn input[type="submit"]:hover { opacity: 0.7; }

/* MW WP Form バリデーションエラー */
.mw_wp_form .error,
.entry_sec span.error {
	display: block;
	color: #cc0000 !important;
	font-size: 0.8rem !important;
	font-weight: bold;
	margin-top: 8px;
	padding: 4px 0;
}

.entry-hidden {
	display: none;
}
.mw_wp_form_confirm .entry-hidden {
	display: contents;
}
.mw_wp_form_confirm .confirm-hidden {
	display: none !important;
}
.mw_wp_form_confirm .birth ul {
	display: flex;
}

/* SP専用改行 */
br.sp { display: none; }
@media screen and (max-width:767px) { br.sp { display: block; } }

.company #company_purpose p {
	font-size: 0.7rem;
}

/* 全体：word-break:break-all を上書き（英単語が途中で切れないように） */
p, li, h2, h3, h4, dt, dd, td, th, span, strong {
	word-break: normal;
	overflow-wrap: break-word;
}

/* 全ページ：文字左寄せ */
.pages h2,
.pages h3,
.pages p,
.pages li,
#home_message h2,
#home_message p,
#home_crosstalk h2,
#home_crosstalk ul li dl,
.company #company_lead p,
.benefit #benefit_lead p,
.benefit #benefit05 p { text-align: left !important; }

/* サポーター一覧 */
.supporter-list { display: flex; flex-wrap: wrap; gap: 24px; }
.supporter-card {
	display: block;
	width: calc((100% - 48px) / 3);
	border: 1px solid #c8d8ed;
	border-radius: 8px;
	padding: 16px;
	text-decoration: none;
	color: #000;
	background: #fff;
	transition: box-shadow 0.2s, transform 0.2s;
}
.supporter-card:hover { box-shadow: 0 4px 16px rgba(0,0,0,0.1); transform: translateY(-2px); }
.supporter-thumb {
	width: 100%;
	aspect-ratio: 4/3;
	overflow: hidden;
	border-radius: 4px;
	background: #f5f5f5;
	display: flex;
	align-items: center;
	justify-content: center;
	margin-bottom: 12px;
}
.supporter-thumb img { width: 100%; height: 100%; object-fit: cover; }
.supporter-thumb .no-image { font-size: 0.75rem; color: #999; letter-spacing: 0.1em; }
.supporter-body p { margin: 0; line-height: 1.5em; }
.supporter-body .supporter-name { font-size: 0.9rem; font-weight: bold; color: #115DA6; margin-bottom: 4px; }
.supporter-body .supporter-title { font-size: 0.85rem; font-family: 'Zen Old Mincho', serif; margin-bottom: 4px; }
.supporter-body .supporter-address { font-size: 0.75rem; color: #555; margin-bottom: 6px; line-height: 1.6em; }
.supporter-body .supporter-more { font-size: 0.75rem; color: #115DA6; text-align: right; }
@media screen and (max-width:767px) {
	.supporter-card { width: 100%; }
}

/* サポーター詳細 */
.supporter-detail { max-width: 900px; margin: 0 auto; padding: 20px 0 60px; }
.supporter-detail .detail-head { display: flex; gap: 32px; margin-bottom: 40px; align-items: flex-start; }
.supporter-detail .detail-thumb { flex: 0 0 360px; }
.supporter-detail .detail-thumb img { width: 100%; height: auto; border-radius: 4px; }
.supporter-detail .detail-title { flex: 1; }
.supporter-detail .detail-title .sup-name { font-size: 1.1rem; font-weight: bold; color: #115DA6; margin-bottom: 10px; }
.supporter-detail .detail-title h1 { font-size: 1.5rem; font-family: 'Zen Old Mincho', serif; line-height: 1.5em; margin: 0 0 20px; }
.supporter-detail .detail-content { font-size: 0.9rem; line-height: 2em; margin-bottom: 40px; }
.supporter-detail table.supporter-table { width: 100%; border-collapse: separate; border-spacing: 0; border: 1px solid #d3d3d3; font-size: 0.85rem; }
.supporter-detail table.supporter-table th,
.supporter-detail table.supporter-table td { padding: 14px 18px; border-bottom: 1px solid #d3d3d3; text-align: left; vertical-align: top; line-height: 1.8em; }
.supporter-detail table.supporter-table tr:last-child th,
.supporter-detail table.supporter-table tr:last-child td { border-bottom: none; }
.supporter-detail table.supporter-table th { width: 140px; background: #f7f7f7; font-weight: bold; border-right: 1px solid #d3d3d3; }
.supporter-detail table.supporter-table a { color: #115DA6; word-break: break-all; }
@media screen and (max-width:767px) {
	.supporter-detail .detail-head { flex-direction: column; gap: 20px; }
	.supporter-detail .detail-thumb { flex: 0 0 auto; width: 100%; }
	.supporter-detail .detail-title h1 { font-size: 1.2rem; }
	.supporter-detail table.supporter-table th { width: 100px; font-size: 0.8rem; }
	.supporter-detail table.supporter-table td { font-size: 0.8rem; }
}

#benefit01 p, #benefit01 .list, #benefit01 table, #benefit01 figure {
	margin-bottom: 1rem;
}

/* greeting写真サイズ縮小 */
.benefit dl.list dt { width: 100%; }
.benefit dl.list dd { width: auto; }
.benefit dl.list dd img { width: 200px; max-width: 200px; }
.benefit dl.list { align-items: flex-start; }
@media screen and (max-width:767px) {
	.benefit dl.list dd { text-align: left; }
	.benefit dl.list dd img { width: 200px !important; max-width: 200px !important; margin-left: 0 !important; }
	.benefit dl.list.even dd img { margin-left: 0 !important; }
}

/* SP fixes */
@media screen and (max-width:767px) {
	/* home_message padding調整 */
	#home_message .maincontent { padding: 12vw 0vw 12vw 6vw; }
	/* CONTACTボタン崩れ防止 */
	header .entry .entry_parent a {
		display: flex;
		flex-direction: column;
		align-items: center;
		justify-content: flex-end;
		width: 100%;
		height: 100%;
		color: #fff;
		text-decoration: none;
		padding: 1.25vw 0;
	}
	header .entry .entry_parent a strong {
		white-space: nowrap;
		font-size: 0.5rem;
	}
	header .entry .entry_parent a svg {
		position: static;
		transform: none;
		width: 4vw;
		height: 1.2vw;
		margin-top: 0.4em;
	}
	/* 本文フォントサイズ */
	html, body { font-size: 3.5vw; }
	header nav ul li { font-size: 1rem; }
	#home_message h2 { font-size: 1.0rem; }
	#home_crosstalk h2 { font-size: 1.1rem; }
	#home_crosstalk li h3 { font-size: 0.95rem; }
	#home_crosstalk li p { font-size: 0.8rem; }
	/* ページタイトル（未来のオリンピア等） */
	#mv2 .tit h2 strong { font-size: 1.2rem; }
	/* ページ内見出しサイズ */
	.pages h2 { font-size: 1.2rem !important; line-height: 1.6em; }
	.pages h3 { font-size: 1.05rem !important; line-height: 1.6em; }
	.pages h4 { font-size: 0.9rem !important; line-height: 1.6em; }
	.company #company_purpose h2 strong { font-size: 1.3rem !important; }
	.company #company_purpose h3 { font-size: 1.05rem !important; }
	/* 本文 */
	.pages p { font-size: 0.85rem; line-height: 1.9em; }
	/* オリンピアプランカード：横幅いっぱい */
	.plan-card { min-width: 100% !important; max-width: 100% !important; }
	/* E-Placeカード・フローステップ：横幅いっぱい */
	.eplace-card { min-width: 100% !important; max-width: 100% !important; }
	.flow-wrap { flex-direction: column !important; align-items: stretch !important; }
	.flow-step { width: 100% !important; min-width: 0 !important; }
	.flow-arrow { transform: rotate(90deg); margin: 0 auto; }
}