﻿@charset "utf-8";
/* ========================================================
   area-pref.css
   「エリア別受験動向」下層ページ共通スタイル
   （area-pref.html＝都道府県版／area-city.html＝市区町村版の両方で使用）
   ※ reset.css / default.css / common.css / style.css の後に読み込む
   ※ Figma「PC_エリア別受験動向_都道府県／市区町村」実測値に準拠
   ※ クラス名は ap-（area-pref、両ページ共通部分）/ ac-（area-city、
     市区町村版だけに存在する3セクション：教育コンサルタントの知見／
     教育環境・データ／主な学校一覧）でスコープし、
     既存の common.css / result-detail.css（rd-）とは独立。
     共通見た目（CTA帯・比較表・3つの強み・教師の質・コース一覧・FAQ・
     クロージングCTA）は single-result.php（rd-系）と同じ値を
     ap- 名で複製しており、他ページ・他ページ側の将来変更とは
     互いに影響しない。
======================================================== */

/* result-detail.css の #teacher margin-top をこのページ用に上書き */
#teacher {
	margin-top: 0;
}

@media (max-width: 768px) {
	html, body {
		overflow-x: hidden;
	}
}

.ap-page br.sp {
	display: none;
}
@media (max-width: 768px) {
	.ap-page br.sp {
		display: block;
	}
}

.ap-page {
	background: #fff;
	font-family: "Noto Serif JP", serif;
	color: #29375b;
	line-height: 1.7;
}
.ap-page img {
	max-width: 100%;
	height: auto;
	vertical-align: middle;
}
/* result-detail.css の .rd-inner は左右24pxパディング付きだが、PC幅ではこのページ側で不要なので消す（SP側はそのまま） */
@media (min-width: 769px) {
	.rd-inner {
		padding-inline: 0;
	}
}

/* result-detail.css の .rd-course .course-acc-icon（SP時の＋－、480px以下でのみ表示）は
   position:relative; right:-40px の相対指定でズレやすいため、
   right端24px固定のabsolute指定に上書き */
@media (max-width: 480px) {
	.rd-course .course-acc-trigger {
		align-items: stretch !important;
	}
	.rd-course .course-acc-trigger img {
		flex-shrink: 0;
	}
	.rd-course .course-acc-head {
		flex: 1 !important;
		width: auto !important;
		min-width: 0;
	}
	.rd-course .course-acc-head h3 {
		text-align: left !important;
	}
	.rd-course .course-acc-icon {
		position: absolute !important;
		right: 24px !important;
		left: auto !important;
		top: 50% !important;
		transform: translateY(-50%) !important;
	}
}

/* result-detail.css の .rd-phonecta .tel-box a 背景位置をこのページ用に微調整 */
@media (max-width: 800px) {
	.rd-phonecta .tel-box a {
		background-position: top 0px left;
	}
}

/* common.css の "h2,h3,h4,span{letter-spacing:1.5px}" を打ち消す */
.rd-stats li .rd-stat-label {
	letter-spacing: normal;
}
@media (max-width: 480px) {
	.rd-stats li .rd-stat-label {
		font-size: 15px;
	}
}

.ap-inner {
	width: 100%;
	max-width: 1080px;
	margin-inline: auto;
	padding-inline: 24px;
	box-sizing: border-box;
}
@media (max-width: 480px) {
	.ap-inner {
		padding-inline: 20px;
	}
}

/* パンくず（functions.php の my_breadcrumb() が出力する
   #bread_crumb.bread_crumb > ul > li.level-N [sub] [tail current] 構造をそのまま利用） */
.ap-page #bread_crumb {
	margin-top: 0;
	padding: 16px 0;
	height: auto;
	display: block;
}
.ap-page #bread_crumb ul {
	list-style: none;
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 8px 12px;
	max-width: 1080px;
	margin: 0 auto;
	padding: 0 24px;
	font-size: 14px;
	font-weight: 700;
	line-height: 1.437;
	box-sizing: border-box;
}
.ap-page #bread_crumb ul li {
	position: relative;
	display: inline-block;
	color: #29375b;
	z-index: 1;
}
.ap-page #bread_crumb ul li:not(.tail)::after {
	content: "›";
	margin-left: 12px;
	color: #29375b;
}
.ap-page #bread_crumb li.sub {
	padding-left: 0;
}
.ap-page #bread_crumb li.sub:before {
	display: none;
}
.ap-page #bread_crumb ul li a {
	color: #17298d;
	text-decoration: none;
	transition: opacity 0.2s ease;
}
.ap-page #bread_crumb ul li a:hover {
	opacity: 0.75;
}

/* 見出し共通（星の装飾：icon_three-powers.svg） */
.ap-deco-ttl {
	text-align: center;
	margin-bottom: 40px;
	padding-top: 28px;
	background: url(../img-top/icon_three-powers.svg) no-repeat top center;
}
.ap-deco-ttl h2 {
	font-size: 32px;
	font-weight: 700;
	letter-spacing: 0.04em;
	color: #29375b;
	margin: 0 0 12px;
}
.ap-deco-ttl p {
	font-size: 16px;
	font-weight: 600;
	color: #29375b;
	margin: 0;
}
@media (max-width: 768px) {
	.ap-deco-ttl {
		margin-bottom: 24px;
	}
	.ap-deco-ttl p {
		font-size: 15px;
	}
}

/* 帯タイトル（ゴールド飾り線＋テキスト） */
/* 表組み共通（見出し行のみ紺色） */
.ap-table {
	width: 100%;
	border-collapse: collapse;
	background: #fff;
}
.ap-table th,
.ap-table td {
	border: 1px solid #d9d9d9;
	padding: 12px 20px;
	text-align: left;
	font-size: 16px;
	font-weight: 700;
	letter-spacing: 0.02em;
	word-break: keep-all;
}
@media (max-width: 768px) {
	.ap-table th,
	.ap-table td {
		padding: 4px 8px;
		font-size: 16px;
	}
}
.ap-table thead th {
	background: #17298d;
	color: #fff;
}
.ap-table thead th:first-child {
	width: auto;
}
.ap-table tbody th {
	background: #fff;
	color: #17298d;
}
.ap-table td {
	background: #fff;
	color: #29375b;
}
.ap-table td a {
	color: #17298d;
	text-decoration: underline;
}
@media (max-width: 768px) {
	.ap-table-scroll {
		overflow-x: auto;
		-webkit-overflow-scrolling: touch;
	}
	.ap-table-scroll .ap-table {
		width: 100%;
		table-layout: auto;
		margin-bottom: 0;
	}
}

/* ---------- ヘッダー・パンくずは header.php をそのまま利用 ---------- */

/* ---------- mv（ヒーロー） ----------
   PC: 写真は右側に配置し左へフェードアウト、テキストと重なるように背景として敷く。
   SP: 写真はテキストの下に等幅ブロックとして積む（Figmaレンダリング準拠）。
   スタッツ（4カード）はヒーロー下端とCTAバー（紺）の境界にオーバーラップし、
   single-result.php の .rd-stats / .rd-ctabar（margin-top:-80px の重ね技）と同じ考え方。 */
.ap-hero {
	position: relative;
	overflow: hidden;
	background: #f1f4f9 url(../img-page/ap-mv-pc.jpg) no-repeat center top;
	background-size: 100%;
}
@media (max-width: 768px) {
	.ap-hero {
		/* タイトルが長くなって .ap-hero の高さが伸びても崩れないように、
		   背景画像を上下2枚に分割し、それぞれ上端・下端に固定表示する。
		   中央に隙間ができた場合は背景色 #f1f4f9 で埋まる。 */
		background-image: url(../img-page/ap-mv-sp-top.jpg), url(../img-page/ap-mv-sp-bottom.jpg);
		background-repeat: no-repeat, no-repeat;
		background-position: top center, bottom 580px center;
		background-size: 100% auto, 100% auto;
	}
}
.ap-hero-inner {
	padding-top: 80px;
}
@media (max-width: 768px) {
	.ap-hero-inner {
		padding-top: 40px;
	}
}
.ap-hero-lead {
	max-width: 640px;
}
.ap-hero-lead h1 {
	font-size: 32px;
	font-weight: 700;
	letter-spacing: 0.02em;
	color: #29375b;
	line-height: 1.44;
	margin: 0 0 8px;
}
.ap-hero-lead .ap-sub {
	font-size: 19px;
	font-weight: 700;
	letter-spacing: 0.02em;
	color: #17298d;
	margin: 0 0 24px;
}
.ap-hero-lead .ap-lead-txt {
	font-size: 16px;
	font-weight: 600;
	line-height: 24px;
	letter-spacing: 0.02em;
	margin: 0;
}
@media (max-width: 768px) {
	.ap-hero-lead h1 {
		font-size: 24px;
	}
}

/* ---------- ページ内メニュー ---------- */
.ap-quicknav {
	background: #f1f4f9;
	padding: 40px 0;
}
.ap-quicknav ul {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 12px;
	list-style: none;
	margin: 0;
	padding: 0;
}
.ap-quicknav a {
	display: block;
	color: #17298d;
	font-size: 18px;
	font-weight: 700;
	padding: 16px 16px 16px 56px;
	background: #fff url(../img-top/icon-course-box-btn.svg) no-repeat top 16px left 16px;
	background-size: 28px;
	text-decoration: none;
	transition: all 0.3s ease;
}
.ap-quicknav a:hover {
	opacity: 0.5;
}
@media (max-width: 768px) {
	.ap-quicknav {
		padding: 24px 0;
	}
	.ap-quicknav ul {
		grid-template-columns: repeat(2, 1fr);
	}
	.ap-quicknav a {
		font-size: 15px;
	}
}
@media (max-width: 480px) {
	.ap-quicknav ul {
		grid-template-columns: 1fr;
	}
}

/* ---------- 情報ボックス（1080幅の外枠＋内側48px/64pxパディングで952幅を作る。
   single-result.php の .rd-info-section .rd-inner と同一パターン。
   合格実績／主要校ガイド／動向／教育環境データ／学校一覧など、枠付きボックスで
   952幅に収める箇所すべてで共通利用する） ---------- */
.ap-info-section {
	background: #fff;
	padding: 0 0 80px;
}
@media (max-width: 768px) {
	.ap-info-section {
		padding: 0;
	}
}
.ap-info-section .ap-inner {
	background: #f1f4f9;
	padding: 48px 64px;
	box-sizing: border-box;
}
@media (max-width: 768px) {
	.ap-info-section .ap-inner {
		width: calc(100% - 40px);
		padding: 32px 16px 16px;
		margin: 24px 20px;
	}
}
#result.ap-info-section .ap-inner {
	background: transparent;
	padding: 80px 24px 24px;
	margin-top: 0;
}
@media (max-width: 768px) {
	#result.ap-info-section .ap-inner {
		width: 100%;
		padding: 40px 20px;
		margin: 0;
	}
}

/* ---------- セクション共通 ---------- */
.ap-section {
	padding: 80px 0;
}
.ap-section.is-light {
	padding-inline: 24px;
	box-sizing: border-box;
}
@media (max-width: 480px) {
	.ap-section.is-light {
		padding-inline: 20px;
	}
}
.ap-section.is-cream {
	background: #fff5e3;
}
@media (max-width: 768px) {
	.ap-section {
		padding: 40px 0;
	}
}

/* ---------- タブ切り替え（縦タブ：合格実績） ---------- */
.ap-tabs-side {
	position: relative;
	display: flex;
	align-items: flex-start;
	gap: 56px;
	margin-top: 48px;
	min-height: 272px;
}
.ap-tabs-side .ap-tab-list {
	display: flex;
	flex-direction: column;
	gap: 12px;
	width: 272px;
	flex-shrink: 0;
}
.ap-tabs-side .ap-tab-btn {
	height: 50px;
	border: 0;
	background: #c6cdd8;
	color: #fff;
	font-family: inherit;
	font-size: 18px;
	font-weight: 700;
	letter-spacing: 0.02em;
	text-align: left;
	padding: 0 24px;
	cursor: pointer;
	transition: background-color 0.2s ease;
}
.ap-tabs-side .ap-tab-btn.is-active {
	background: #17298d;
}
.ap-tabs-side .ap-tab-panels {
	flex: 1;
	background: #d9d9d9;
	padding: 2px;
	box-sizing: border-box;
}
/* 「合格実績の一覧を見る」：PCではタブ列の下に張り付け、SPでは表の下に通常配置 */
a.ap-result-listlink {
	display: flex;
	align-items: center;
	position: absolute;
	left: 0;
	bottom: 0;
	width: 272px;
	height: 64px;
	background: #17298d url(../img-top/icon-more-btn.svg) no-repeat center right 16px;
	color: #fff;
	font-size: 16px;
	font-weight: 700;
	letter-spacing: 0.02em;
	text-decoration: none !important;
	padding: 0 56px 0 24px;
	box-sizing: border-box;
	transition: opacity 0.2s ease;
}
.ap-result-listlink:hover {
	opacity: 0.85;
}
@media (max-width: 768px) {
	.ap-tabs-side {
		flex-direction: column;
		gap: 2px;
		margin-top: 24px;
		min-height: unset;
	}
	.ap-tabs-side .ap-tab-list {
		flex-direction: row;
		gap: 2px;
		width: 100%;
	}
	.ap-tabs-side .ap-tab-btn {
		flex: 1;
		font-size: 14px;
		padding: 0 8px;
		text-align: center;
	}
	a.ap-result-listlink {
		position: static;
		width: 100%;
		justify-content: center;
		margin-top: 16px;
		padding: 0 16px;
	}
	.ap-tabs-side .ap-tab-panels {
		width: 100%;
	}
}

/* ---------- タブ切り替え（横タブ：主要校ガイド・主な学校一覧） ---------- */
.ap-tabs-top {
	margin-top: 32px;
}
.ap-tabs-top .ap-tab-list {
	display: flex;
	gap: 8px;
	margin-bottom: 2px;
}
@media (max-width: 768px) {
	.ap-tabs-top .ap-tab-list {
		gap: 4px;
	}
}
.ap-tabs-top .ap-tab-btn {
	flex: 1;
	height: 50px;
	border: 0;
	background: #c6cdd8;
	color: #fff;
	font-family: inherit;
	font-size: 18px;
	font-weight: 700;
	cursor: pointer;
	transition: background-color 0.2s ease;
}
.ap-tabs-top .ap-tab-btn.is-active {
	background: #17298d;
}

.ap-tab-panel {
	display: none;
}
.ap-tab-panel.is-active {
	display: block;
}

/* ---------- 合格実績 ---------- */
.ap-result-head p {
	font-size: 16px;
	font-weight: 600;
	color: #29375b;
	margin: 0;
}
.ap-result-table th,
.ap-result-table td {
	padding: 12px 16px;
	font-size: 16px;
	text-align: left;
}
.ap-result-table thead th:last-child,
.ap-result-table tbody td:last-child {
	text-align: left;
	width: 120px;
}
@media (max-width: 768px) {
	.ap-result-table th,
	.ap-result-table td {
		padding: 8px 10px;
		font-size: 13px;
	}
}

/* ---------- 保護者さまの声（新規） ---------- */
.ap-voice-section {
	background: #f1f4f9;
}
.ap-voice-head {
	margin-bottom: 40px;
}
/* このタイトルは Figma 実測で 32px（料金のご案内の .rd-deco-line span は 40px）のため上書き */
.ap-voice-head span {
	font-size: 32px;
	letter-spacing: 0.08em;
}
@media (max-width: 768px) {
	.ap-voice-head span {
		font-size: 24px;
	}
}
.ap-voices.swiper {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 12px;
	margin-bottom: 32px;
	overflow: visible;
}
.ap-voice-track {
	display: contents;
}
.ap-voice-card {
	background: #fff;
	display: flex;
	flex-direction: column;
	height: auto;
	padding: 20px;
	box-sizing: border-box;
	box-shadow: 0 0 4px rgba(0,0,0,0.25);
}
.ap-voice-card .ap-voice-photo {
	width: 100%;
	aspect-ratio: 312 / 173;
	object-fit: cover;
	display: block;
}
.ap-voice-card .ap-voice-tag {
	background: #17298d;
	color: #fff;
	font-size: 15px;
	font-weight: 700;
	text-align: center;
	padding: 2px 0;
	margin: 16px 0 0;
}
.ap-voice-card .ap-voice-comment {
	margin: 12px 0 0;
	padding: 0;
	font-size: 15px;
	font-weight: 700;
	line-height: 20px;
	flex: 1;
}
.ap-voice-card .ap-voice-more {
	position: relative;
	display: block;
	margin-top: 16px;
	padding: 16px 0;
	text-align: center;
	border: 1px solid #e3e3e3;
	color: #29375b;
	font-size: 16px;
	font-weight: 700;
	line-height: 23px;
	text-decoration: none;
	transition: opacity 0.2s ease;
}
.ap-voice-card .ap-voice-more:hover {
	opacity: 0.6;
}
.ap-voice-card .ap-voice-more::after {
	content: "";
	position: absolute;
	right: 12px;
	top: 50%;
	transform: translateY(-50%);
	width: 32px;
	height: 32px;
	box-sizing: border-box;
	border: 1px solid #e3e3e3;
	border-radius: 50%;
	background: url(../img-top/icon-more-btn.svg) no-repeat center;
	background-size: 32px;
}
.ap-voice-btnrow {
	text-align: center;
}
.ap-voice-btnrow a.rd-btn-navy {
	width: 352px;
	margin: 0 auto;
}
@media (max-width: 768px) {
	.ap-voice-btnrow a.rd-btn-navy {
		width: 100%;
	}
}
@media (max-width: 1080px) {
	.ap-voices.swiper {
		display: block;
		overflow: hidden;
	}
	.ap-voice-track {
		display: flex;
		flex-wrap: nowrap;
	}
	.ap-voices .swiper-slide {
		width: 100%;
		flex-shrink: 0;
		height: auto;
	}
	.ap-voice-nav {
		display: flex;
		align-items: center;
		justify-content: space-between;
		margin-bottom: 24px;
	}
	.ap-voice-nav .swiper-button-prev,
	.ap-voice-nav .swiper-button-next {
		display: flex !important;
		align-items: center !important;
		justify-content: center !important;
		position: static !important;
		width: 56px !important;
		height: 56px !important;
		margin: 0 !important;
		top: auto !important;
		left: auto !important;
		right: auto !important;
		border-radius: 50% !important;
		background: #17298d !important;
	}
	.ap-voice-nav .swiper-button-prev::after,
	.ap-voice-nav .swiper-button-next::after {
		content: "" !important;
		font-size: 0 !important;
		width: 12px;
		height: 12px;
		border-top: 2px solid #fff;
		border-right: 2px solid #fff;
	}
	.ap-voice-nav .swiper-button-prev::after {
		transform: rotate(-135deg);
		margin-left: 4px;
	}
	.ap-voice-nav .swiper-button-next::after {
		transform: rotate(45deg);
		margin-right: 4px;
	}
	.ap-voice-nav .swiper-pagination {
		position: static !important;
		display: flex !important;
		align-items: center !important;
		gap: 12px;
		width: auto !important;
		left: auto !important;
		bottom: auto !important;
	}
	.ap-voice-nav .swiper-pagination .swiper-pagination-bullet {
		display: inline-block !important;
		width: 12px !important;
		height: 12px !important;
		margin: 0 !important;
		background: #17298d !important;
		border-radius: 50% !important;
		opacity: .3 !important;
	}
	.ap-voice-nav .swiper-pagination .swiper-pagination-bullet-active {
		opacity: 1 !important;
	}
}
@media (min-width: 1081px) {
	.ap-voice-nav {
		display: none;
	}
}
/* ---------- 「動向」アコーディオン（3件：中学／高校／大学受験） ---------- */
.ap-trend {
	max-width: 1080px;
	margin: 0 auto 24px;
	background: #fff;
}
.ap-trend:last-child {
	margin-bottom: 0;
}
.ap-trend-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	width: 100%;
	border: 0;
	background: #17298d;
	color: #fff;
	font-family: inherit;
	text-align: left;
	padding: 24px 32px;
	cursor: pointer;
	box-sizing: border-box;
}
.ap-trend-head h2 {
	font-size: 24px;
	font-weight: 700;
	margin: 0;
	letter-spacing: 0.04em;
}
.ap-trend-head .ap-trend-toggle {
	font-size: 28px;
	font-weight: 700;
	flex-shrink: 0;
	margin-left: 16px;
}
.ap-trend-body {
	display: none;
	padding: 32px 64px;
	box-sizing: border-box;
	background: #f1f4f9;
}
.ap-trend.is-open .ap-trend-body {
	display: block;
}
.ap-trend-lead {
	font-size: 16px;
	font-weight: 400;
	line-height: 24px;
	margin: 0 0 16px;
}
.ap-trend-lead:first-child {
	margin-top: 0;
}
.ap-trend-body h3 {
	clear: both;
	background: #fff;
	border-left: 6px solid #17298d;
	color: #17298d;
	font-size: 20px;
	font-weight: 700;
	letter-spacing: 0.08em;
	margin: 48px 0 16px;
	padding: 16px 24px;
	box-sizing: border-box;
}
.ap-trend-body p {
	font-size: 16px;
	font-weight: 400;
	line-height: 24px;
	margin: 0 0 16px;
}
.ap-trend-body p:last-child {
	margin-bottom: 0;
}
/* データ行（旧 .ap-trend-datarow dt/dd）：div/dlを使わず、隣接するh4+pを
   フロートで横並びにして元のflexレイアウトの見た目を再現する */
.ap-trend-body h4 {
	position: relative;
	padding-left: 24px;
	margin: 16px 12px 0 0;
	font-size: 18px;
	font-weight: 700;
	letter-spacing: 0.08em;
	color: #29375b;
}
.ap-trend-body h4::before {
	content: "";
	position: absolute;
	left: 0;
	top: 6px;
	width: 16px;
	height: 16px;
	background: #17298d;
}
.ap-trend-body h4 + p {
	overflow: hidden;
}
.ap-trend-btnrow {
	clear: both;
	text-align: center;
	margin-top: 24px;
}
.ap-trend-btnrow a.rd-btn-navy {
	width: 389px;
	margin: 0 auto;
}
@media (max-width: 768px) {
	.ap-trend-head {
		padding: 16px 20px;
	}
	.ap-trend-head h2 {
		font-size: 20px;
	}
	.ap-trend-body {
		padding: 20px;
	}
	.ap-trend-body h3 {
		font-size: 16px;
		padding: 12px 16px;
		margin: 32px 0 12px;
	}
	.ap-trend-body h4 {
		float: none;
		margin: 16px 0 2px;
		font-size: 16px;
	}
	.ap-trend-body h4 + p {
		overflow: visible;
		margin: 0 0 0 24px;
	}
	.ap-trend-btnrow a.rd-btn-navy {
		width: 100%;
	}
}

/* ---------- 主要校ガイド ---------- */
.ap-guide-head {
	text-align: center;
	margin-bottom: 12px;
}
.ap-guide-head h2 {
	font-size: 32px;
	font-weight: 700;
	color: #29375b;
	margin: 0;
}
.ap-guide-table th:nth-child(2),
.ap-guide-table td:nth-child(2) {
	width: 140px;
	text-align: center;
}
.ap-guide-table td:nth-child(2) {
	color: #17298d;
}

/* ---------- さらに詳細なエリアの市区町村から探す ---------- */
.ap-citylinks {
	background: #f1f4f9;
}
.ap-citylinks-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	border-bottom: 2px solid #17298d;
	padding-bottom: 16px;
	margin-bottom: 24px;
}
.ap-citylinks-head h2 {
	font-family: "Noto Serif JP", serif;
	font-size: 24px;
	font-weight: 700;
	color: #29375b;
	margin: 0;
}
.ap-city-list {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	list-style: none;
	margin: 0;
	padding: 0;
	font-family: "Noto Sans JP", sans-serif;
}
.ap-city-list a {
	display: inline-block;
	background: #fff;
	color: #29375b;
	font-size: 14px;
	font-weight: 500;
	padding: 4px 14px;
	border-radius: 12px;
	text-decoration: none;
	transition: background-color 0.2s ease, color 0.2s ease;
}
.ap-city-list a:hover {
	background: #17298d;
	color: #fff;
}
@media (max-width: 768px) {
	.ap-citylinks-head h2 {
		font-size: 18px;
	}
	.ap-city-list a {
		font-size: 13px;
		padding: 4px 12px;
	}
}

/* ---------- 合格率バナー：768px/480pxのブレイクポイントを入れ替え ---------- */
@media (max-width: 768px) {
	.rd-contact2-stat {
		flex-direction: column;
		gap: 0;
	}
	.rd-contact2-stat .rd-stat-num {
		font-size: 48px;
	}
	.rd-contact.rd-contact2 .rd-contact2-note {
		font-size: 14px;
		text-align: center;
	}
}
@media (max-width: 480px) {
	.rd-contact2-stat {
		text-align: center;
	}
	.rd-contact2-stat .rd-stat-label {
		font-size: 24px;
		margin: 0 auto;
	}
	.rd-contact2-stat .rd-stat-num {
		margin: 0 auto;
	}
}

/* ---------- レスポンシブ共通 ---------- */
@media (max-width: 1080px) {
	.ap-quicknav ul {
		gap: 12px;
	}
}
@media (max-width: 768px) {
	.ap-deco-ttl h2,
	.ap-result-head h2,
	.ap-guide-head h2 {
		line-height: 1.3;
	}
	.ap-result-head h2,
	.ap-guide-head h2 {
		font-size: 22px;
	}
	.ap-result-head p {
		font-size: 15px;
	}
}

/* ========================================================================
   以下、市区町村版（area-city.html）だけに存在する3セクション専用スタイル。
   教育コンサルタントの知見／教育環境・データ／主な学校一覧。
   ac-（area-city）プレフィックスでスコープし、上記 ap- 側とは独立。
======================================================================== */

/* ---------- 教育コンサルタントの知見 ---------- */
#consultant.ap-section {
	padding: 64px 0 32px;
}
@media (max-width: 768px) {
	#consultant.ap-section {
		padding: 32px 0 16px;
	}
}
.ac-consultant {
	display: flex;
	align-items: flex-start;
	gap: 40px;
}
.ac-consultant-photo {
	width: 200px;
	height: 200px;
	border-radius: 50%;
	overflow: hidden;
	flex-shrink: 0;
}
.ac-consultant-photo img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.ac-consultant-body {
	flex: 1;
	padding-top: 24px;
}
.ac-consultant-badge {
	display: inline-block;
	background: #17298d;
	color: #fff;
	font-size: 16px;
	font-weight: 700;
	letter-spacing: 0.08em;
	padding: 4px 20px;
	margin-bottom: 24px;
}
.ac-consultant-body h2 {
	font-size: 32px;
	font-weight: 700;
	color: #29375b;
	margin: 0 0 12px;
}
.ac-consultant-body p {
	font-size: 16px;
	font-weight: 400;
	line-height: 23px;
	margin: 0;
}
@media (max-width: 768px) {
	.ac-consultant {
		display: block;
	}
	.ac-consultant::after {
		content: "";
		display: table;
		clear: both;
	}
	.ac-consultant-photo {
		float: left;
		width: 120px;
		height: 120px;
		margin: 0 16px 8px 0;
	}
	.ac-consultant-body {
		padding-top: 0;
	}
	.ac-consultant-body h2 {
		font-size: 20px;
	}
	.ac-consultant-badge {
		font-size: 14px;
		padding: 4px 16px;
		margin-bottom: 12px;
	}
	.ac-consultant-body p {
		margin: 12px 0 0;
		font-size: 15px;
	}
}

/* ---------- 教育環境・データ（見出しブロック＋箇条書き／データ表） ---------- */
.ac-edu-lead {
	font-size: 16px;
	font-weight: 600;
	line-height: 23px;
	margin: 0 0 24px;
}
.ac-edu-block {
	margin-bottom: 24px;
}
.ac-edu-block:last-child {
	margin-bottom: 0;
}
.ac-edu-block h3 {
	background: #fff;
	border-left: 6px solid #17298d;
	color: #17298d;
	font-size: 20px;
	font-weight: 700;
	letter-spacing: 0.08em;
	margin: 0 0 16px;
	padding: 16px 24px;
	box-sizing: border-box;
}
.ac-edu-block ul {
	margin: 0;
	list-style: none;
	padding: 0;
	font-size: 16px;
	font-weight: 400;
	line-height: 24px;
}
.ac-edu-block ul li {
	margin-bottom: 4px;
}
@media (max-width: 768px) {
	.ac-edu-block h3 {
		font-size: 16px;
		padding: 12px 16px;
	}
}

/* ---------- 教育環境・データ（ビジュアルエディタ入力の素の要素にスタイルを付与） ---------- */
.ap-edu-data {
	font-size: 16px;
	line-height: 24px;
}
.ap-edu-data > *:first-child {
	margin-top: 0;
}
.ap-edu-data > *:last-child {
	margin-bottom: 0;
}
.ap-edu-data p {
	font-size: 16px;
	font-weight: 600;
	line-height: 23px;
	margin: 0 0 24px;
}
.ap-edu-data h3 {
	background: #fff;
	border-left: 6px solid #17298d;
	color: #17298d;
	font-size: 20px;
	font-weight: 700;
	letter-spacing: 0.08em;
	margin: 32px 0 16px;
	padding: 16px 24px;
	box-sizing: border-box;
}
.ap-edu-data ul {
	margin: 0 0 24px;
	list-style: none;
	padding: 0;
	font-size: 16px;
	font-weight: 400;
	line-height: 24px;
}
.ap-edu-data ul li {
	margin-bottom: 4px;
}
.ap-edu-data table {
	width: 100%;
	border-collapse: collapse;
	background: #fff;
	margin: 0 0 24px;
}
.ap-edu-data table th,
.ap-edu-data table td {
	border: 1px solid #d9d9d9;
	padding: 12px 20px;
	text-align: left;
	font-size: 16px;
	font-weight: 700;
	letter-spacing: 0.02em;
	word-break: keep-all;
	height: auto;
}
.ap-edu-data table th {
	background: #17298d;
	color: #fff;
}
.ap-edu-data table td {
	background: #fff;
	color: #29375b;
}
.ap-edu-data table td a {
	color: #17298d;
	text-decoration: underline;
}
@media (max-width: 768px) {
	.ap-edu-data h3 {
		font-size: 16px;
		padding: 12px 16px;
		margin-top: 24px;
	}
	.ap-edu-data table {
		display: block;
		overflow-x: auto;
		-webkit-overflow-scrolling: touch;
	}
	.ap-edu-data table th,
	.ap-edu-data table td {
		padding: 4px 8px;
		font-size: 15px;
	}
}

/* ---------- 主な学校一覧（詳細版：学校名/男女/偏差値/生徒数/現役進学率/最寄駅） ---------- */
.ac-school-intro {
	text-align: center;
	font-size: 16px;
	font-weight: 600;
	margin: 0 0 24px;
}
.ac-school-table th:nth-child(2),
.ac-school-table td:nth-child(2),
.ac-school-table th:nth-child(3),
.ac-school-table td:nth-child(3) {
	text-align: center;
	width: 80px;
}
.ac-school-table th:nth-child(4),
.ac-school-table td:nth-child(4),
.ac-school-table th:nth-child(5),
.ac-school-table td:nth-child(5) {
	text-align: center;
	width: 100px;
}
.ac-school-table td:nth-child(3) {
	color: #17298d;
}
.ac-school-note {
	font-size: 14px;
	font-weight: 400;
	line-height: 20px;
	margin: 24px 0 0;
}
@media (max-width: 768px) {
	.ac-school-intro {
		font-size: 15px;
	}
	.ac-school-table-scroll {
		overflow-x: auto;
		-webkit-overflow-scrolling: touch;
	}
	.ac-school-table-scroll .ac-school-table {
		width: auto;
		min-width: 720px;
	}
}
