@charset "utf-8";

/* ==========================================================================
   個人指導ページ専用 追加スタイル（A案リデザイン + アコーディオン詳細）
   既存 style.css には手を入れず、tutoring.html からのみ読み込む。
   セレクタは全て .tutoring-page 配下にスコープ。
   ベースカラー：#1d3a8a（ディープブルー） / アクセント：#779eec（既存）
   ========================================================================== */

.tutoring-page { color: #1a2238; line-height: 1.9; }
.tutoring-page * { box-sizing: border-box; }

.tutoring-page .tutoring-section p,
.tutoring-page .tutoring-card p,
.tutoring-page .summary-card p,
.tutoring-page .flow-card p,
.tutoring-page .detail-body p { padding: 0; margin: 0; }

/* ----- 装飾線見出し（既存 #main h3 を打ち消す） ----- */
.tutoring-page h3.deco-heading {
	clear: both;
	display: flex;
	align-items: center;
	gap: 14px;
	margin: 38px 0 22px;
	padding: 0;
	border: none;
	border-radius: 0;
	font-size: 130%;
	font-weight: bold;
	color: #1d3a8a;
	letter-spacing: 0.06em;
}
.tutoring-page h3.deco-heading::first-letter { border: none; padding: 0; }
.tutoring-page h3.deco-heading::after {
	content: ""; flex: 1; height: 1px; background: #c5d2ed;
}
.tutoring-page h3.deco-heading.center { justify-content: center; text-align: center; }
.tutoring-page h3.deco-heading.center::before {
	content: ""; flex: 1; height: 1px; background: #c5d2ed;
}

/* ----- ヒーロー ----- */
.tutoring-page .tutoring-hero {
	margin: 6px 0 36px;
	border-radius: 14px;
	overflow: hidden;
	box-shadow: 0 14px 36px rgba(15, 76, 180, 0.10);
}
.tutoring-page .tutoring-hero img {
	display: block; width: 100%; height: auto;
}

/* ----- 教室紹介 ----- */
.tutoring-page .tutoring-lead { padding: 4px 8px 18px; font-size: 96%; }
.tutoring-page .tutoring-lead p { padding: 0 6px 8px; line-height: 1.95; }

/* コンセプトボックス：教室紹介の最初に置くアイキャッチ */
.tutoring-page .lead-concept {
	position: relative;
	margin: 8px 4px 22px;
	padding: 22px 26px 22px 28px;
	background: linear-gradient(135deg, #f7fbff 0%, #eaf0fd 100%);
	border: 1px solid #c5d2ed;
	border-left: 5px solid #1d3a8a;
	border-radius: 12px;
	box-shadow: 0 4px 14px rgba(20, 70, 160, 0.06);
}
.tutoring-page .lead-concept-label {
	display: inline-block;
	background: #1d3a8a;
	color: #fff;
	font-size: 78%;
	font-weight: bold;
	letter-spacing: 0.12em;
	padding: 3px 12px;
	border-radius: 999px;
	margin-bottom: 10px;
}
.tutoring-page .lead-concept p {
	margin: 0;
	padding: 0;
	font-size: 118%;
	font-weight: bold;
	color: #1d3a8a;
	line-height: 1.7;
	letter-spacing: 0.02em;
}
.tutoring-page .lead-concept-em {
	color: #b67800;
	border-bottom: 3px solid #e8c468;
	padding: 0 2px 1px;
}
.tutoring-page .concept-marker {
	background: linear-gradient(transparent 55%, #fff0a8 55%, #ffd86a 100%);
	padding: 0 4px;
	color: #1d3a8a;
}

/* マーカー風ハイライト */
.tutoring-page .marker {
	background: linear-gradient(transparent 60%, #fff0a8 60%, #ffe680 100%);
	padding: 0 2px;
	font-weight: bold;
	color: #1a2238;
}

/* 強調語 */
.tutoring-page .lead-strong {
	color: #1d3a8a;
	font-weight: bold;
}

/* 実績の数字部分 */
.tutoring-page .lead-achievement {
	display: inline-block;
	color: #b67800;
	font-weight: bold;
	background: #fffaed;
	border: 1px solid #e8c468;
	padding: 1px 8px;
	border-radius: 6px;
	box-shadow: 0 1px 3px rgba(182, 120, 0, 0.12);
}

/* ----- 3カラム カード（お悩み / 学べること） ----- */
.tutoring-page .tutoring-grid3 {
	display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; padding: 4px 2px;
}
.tutoring-page .tutoring-card {
	background: #fff; border: 1px solid #d8e2f6; border-radius: 14px;
	padding: 24px 20px 22px; text-align: center;
	box-shadow: 0 4px 14px rgba(20, 70, 160, 0.06);
	display: flex; flex-direction: column; align-items: center;
}
.tutoring-page .tutoring-card .icon {
	display: flex; align-items: center; justify-content: center;
	width: 72px; height: 72px; margin: 0 auto 12px;
}
.tutoring-page .tutoring-card .icon svg { width: 100%; height: 100%; }
.tutoring-page .tutoring-card h4 {
	margin: 0 0 10px; font-size: 105%; color: #1d3a8a; line-height: 1.5;
}
.tutoring-page .tutoring-card p { font-size: 92%; line-height: 1.8; color: #444; }

/* ----- 教室概要：6枚アイコンカード ----- */
.tutoring-page .summary-grid {
	display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; padding: 4px 2px;
}
.tutoring-page .summary-card {
	background: #fff; border: 1px solid #d8e2f6; border-radius: 10px;
	padding: 10px 12px 10px;
	box-shadow: 0 2px 6px rgba(20, 70, 160, 0.04);
	display: grid;
	grid-template-columns: 32px 1fr;
	grid-template-rows: auto auto;
	column-gap: 10px;
	row-gap: 1px;
	align-items: center;
}
.tutoring-page .summary-card .icon {
	grid-row: 1 / span 2;
	display: flex; align-items: center; justify-content: center;
	width: 36px; height: 36px; margin: 0;
	background: #fff8e7;
	border-radius: 50%;
	padding: 5px;
}
.tutoring-page .summary-card .icon svg { width: 100%; height: 100%; }
.tutoring-page .summary-card .label {
	display: block; color: #1d3a8a; font-weight: bold; font-size: 95%;
	line-height: 1.3;
}
.tutoring-page .summary-card .value {
	display: block; color: #444; font-size: 86%; line-height: 1.5;
}

/* ----- 詳細アコーディオン（details/summary） ----- */
.tutoring-page .tutoring-details { margin: 14px 2px 6px; }
.tutoring-page details.tutoring-detail {
	background: #fff;
	border: 1px solid #d8e2f6;
	border-left: 4px solid #c9a039;
	border-radius: 12px;
	margin-bottom: 12px;
	overflow: hidden;
	box-shadow: 0 2px 8px rgba(20,70,160,0.04);
}
.tutoring-page details.tutoring-detail > summary {
	cursor: pointer;
	list-style: none;
	padding: 14px 20px 14px 56px;
	color: #1d3a8a;
	font-weight: bold;
	font-size: 100%;
	background: #f5f8ff;
	position: relative;
	transition: background 0.2s;
}
.tutoring-page details.tutoring-detail > summary::-webkit-details-marker { display: none; }
.tutoring-page details.tutoring-detail > summary::after {
	content: "＋"; position: absolute; right: 20px; top: 50%; transform: translateY(-50%);
	color: #1d3a8a; font-weight: bold; transition: transform 0.2s;
}
.tutoring-page details.tutoring-detail[open] > summary::after { content: "−"; }
.tutoring-page details.tutoring-detail > summary:hover { background: #eaf0fd; }
.tutoring-page details.tutoring-detail > summary .summary-icon {
	position: absolute; left: 18px; top: 50%; transform: translateY(-50%);
	width: 26px; height: 26px; color: #1d3a8a;
}
.tutoring-page details.tutoring-detail > summary .summary-icon svg { width: 100%; height: 100%; }
.tutoring-page details.tutoring-detail .detail-body { padding: 18px 22px 22px; }

/* 詳細内のサブ見出し */
.tutoring-page .detail-subhead {
	display: flex;
	align-items: center;
	gap: 10px;
	margin: 22px 0 12px;
	padding: 0;
	font-size: 100%;
	font-weight: bold;
	color: #1d3a8a;
	border: none;
}
.tutoring-page .detail-subhead:first-child { margin-top: 0; }
.tutoring-page .detail-subhead::before {
	content: "";
	display: block;
	width: 4px;
	height: 16px;
	background: #1d3a8a;
	border-radius: 2px;
}
.tutoring-page .detail-subhead::after {
	content: "";
	flex: 1;
	height: 1px;
	background: #d8e2f6;
}

/* ----- 詳細：開講日時の3カラム ----- */
.tutoring-page .schedule-grid {
	display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px;
}
.tutoring-page .schedule-card {
	background: #f8fbff; border: 1px solid #d8e2f6; border-radius: 10px;
	padding: 14px 14px 12px;
}
.tutoring-page .schedule-card .day {
	display: block; color: #1d3a8a; font-weight: bold; font-size: 100%;
	border-bottom: 1px dashed #c5d2ed; padding-bottom: 6px; margin-bottom: 8px;
}
.tutoring-page .schedule-card ul {
	list-style: none; margin: 0; padding: 0; font-size: 92%; color: #333; line-height: 1.85;
}
.tutoring-page .schedule-card ul li::before {
	content: ""; display: inline-block; width: 6px; height: 6px;
	background: #1d3a8a; border-radius: 50%; margin-right: 8px; vertical-align: middle;
}
.tutoring-page .schedule-card .num {
	display: inline-block; min-width: 1.5em; color: #1d3a8a; font-weight: bold;
}
.tutoring-page .schedule-note {
	margin-top: 10px; font-size: 88%; color: #666;
}

/* ----- 詳細：受講方法の3ステップ ----- */
.tutoring-page .method-steps {
	display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; margin-top: 6px;
}
.tutoring-page .method-step {
	background: #f8fbff; border: 1px solid #d8e2f6; border-radius: 10px;
	padding: 14px 14px 12px; text-align: center;
}
.tutoring-page .method-step .icon {
	display: flex; align-items: center; justify-content: center;
	width: 44px; height: 44px; margin: 0 auto 6px;
}
.tutoring-page .method-step .icon svg { width: 100%; height: 100%; }
.tutoring-page .method-step .label {
	display: block; color: #1d3a8a; font-weight: bold; margin-bottom: 4px; font-size: 95%;
}
.tutoring-page .method-step .desc { font-size: 88%; color: #555; line-height: 1.75; }

.tutoring-page .method-lead {
	background: #fff8e7; border: 1px solid #f0d990; border-radius: 8px;
	padding: 10px 14px; font-size: 92%; line-height: 1.8; margin-bottom: 14px;
}
.tutoring-page .method-lead .accent { color: #c93b1a; font-weight: bold; }

/* ----- 詳細：料金テーブル ----- */
.tutoring-page .price-table {
	width: 100%; border-collapse: collapse; font-size: 93%;
}
.tutoring-page .price-table th,
.tutoring-page .price-table td {
	padding: 10px 12px; border: 1px solid #d8e2f6; text-align: left; vertical-align: middle;
}
.tutoring-page .price-table thead th {
	background: #1d3a8a; color: #fff; font-weight: bold; text-align: center;
}
.tutoring-page .price-table tbody th {
	background: #f5f8ff; color: #1d3a8a; font-weight: bold; width: 28%;
}
.tutoring-page .price-table tbody td.price {
	text-align: right; font-weight: bold; color: #b67800; white-space: nowrap; width: 22%;
	background: #fffaed;
	font-size: 105%;
}
.tutoring-page .price-table .group-row td {
	background: #eaf0fd; color: #1d3a8a; font-weight: bold;
}
.tutoring-page .price-tag {
	display: inline-block;
	background: linear-gradient(135deg, #ffd86a 0%, #e8c468 100%);
	color: #7a4d00;
	padding: 2px 10px; border-radius: 999px; font-size: 86%; margin-left: 6px;
	font-weight: bold;
	box-shadow: 0 1px 3px rgba(182,120,0,0.25);
}
.tutoring-page .price-note {
	margin-top: 10px; padding: 8px 12px; background: #fff8e7;
	border-left: 3px solid #f0a800; font-size: 92%; line-height: 1.7; color: #333;
}

/* ----- 詳細：支払方法の2カラム比較 ----- */
.tutoring-page .pay-grid {
	display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-bottom: 12px;
}
.tutoring-page .pay-card {
	background: #f8fbff; border: 1px solid #d8e2f6; border-radius: 10px;
	padding: 14px 16px 14px;
}
.tutoring-page .pay-card .head {
	display: flex; align-items: center; gap: 8px;
	color: #1d3a8a; font-weight: bold; font-size: 100%; margin-bottom: 8px;
	border-bottom: 1px dashed #c5d2ed; padding-bottom: 6px;
}
.tutoring-page .pay-card .head svg { width: 22px; height: 22px; }
.tutoring-page .pay-card dl { margin: 0; font-size: 92%; line-height: 1.75; }
.tutoring-page .pay-card dt { color: #1d3a8a; font-weight: bold; margin-top: 4px; }
.tutoring-page .pay-card dd { margin: 0 0 4px 0; }
.tutoring-page .pay-card .accent { color: #c93b1a; font-weight: bold; }

.tutoring-page .pay-method-row {
	background: #fff; border: 1px solid #d8e2f6; border-radius: 10px;
	padding: 12px 16px; font-size: 92%; line-height: 1.85;
}
.tutoring-page .pay-method-row b { color: #1d3a8a; }

.tutoring-page .pay-note { margin-top: 10px; font-size: 90%; color: #666; line-height: 1.7; }

/* ----- 詳細：キャンセルポリシー ----- */
.tutoring-page .cancel-table { width: 100%; border-collapse: collapse; font-size: 93%; }
.tutoring-page .cancel-table th, .tutoring-page .cancel-table td {
	padding: 10px 12px; border: 1px solid #d8e2f6; vertical-align: middle;
}
.tutoring-page .cancel-table thead th {
	background: #1d3a8a; color: #fff; text-align: center; font-weight: bold;
}
.tutoring-page .cancel-table tbody th {
	background: #f5f8ff; color: #1d3a8a; text-align: left; width: 38%; font-weight: bold;
}
.tutoring-page .cancel-table td { text-align: center; }
.tutoring-page .cancel-table .danger { color: #c93b1a; font-weight: bold; }

/* ----- 受講の流れ：3ステップ カード ----- */
.tutoring-page .flow-grid {
	display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; padding: 4px 2px;
}
.tutoring-page .flow-card {
	background: #fff; border: 1px solid #d8e2f6; border-radius: 14px;
	padding: 18px 18px; display: flex; flex-direction: column;
	box-shadow: 0 4px 14px rgba(20, 70, 160, 0.06);
}
.tutoring-page .flow-card:nth-child(3) {
	border-color: #ffcdbc;
	background: linear-gradient(180deg, #fff 0%, #fff7f3 100%);
	box-shadow: 0 4px 16px rgba(201, 59, 26, 0.08);
}
.tutoring-page .flow-card .flow-head {
	display: flex; align-items: center; gap: 12px; margin-bottom: 10px;
}
.tutoring-page .flow-num {
	flex: 0 0 34px; width: 34px; height: 34px; line-height: 34px;
	text-align: center; border-radius: 50%;
	color: #fff; font-weight: bold; font-size: 100%;
	background: linear-gradient(135deg, #779eec 0%, #1d3a8a 100%);
	box-shadow: 0 3px 8px rgba(29, 58, 138, 0.25);
}
.tutoring-page .flow-card:nth-child(3) .flow-num {
	background: linear-gradient(135deg, #ff8255 0%, #c93b1a 100%);
	box-shadow: 0 3px 8px rgba(201, 59, 26, 0.30);
}
.tutoring-page .flow-card h4 { margin: 0; font-size: 108%; color: #1d3a8a; line-height: 1.4; }
.tutoring-page .flow-card .flow-icon {
	display: flex; align-items: center; justify-content: center;
	width: 100%; height: 78px; margin: 4px 0 12px;
}
.tutoring-page .flow-card .flow-icon svg { width: 78px; height: 78px; }
.tutoring-page .flow-card p {
	font-size: 92%; line-height: 1.8; color: #444; flex: 1; margin-bottom: 16px;
}
.tutoring-page .tutoring-btn {
	display: block; width: 100%; padding: 12px 16px;
	background: #1d3a8a; color: #fff !important; text-decoration: none;
	border-radius: 8px; font-size: 95%; font-weight: bold; text-align: center;
	transition: 0.3s; box-shadow: 0 4px 10px rgba(29, 58, 138, 0.18);
}
.tutoring-page .tutoring-btn:hover { background: #0b57d0; color: #fff !important; text-decoration: none; }
.tutoring-page .tutoring-btn.cta { background: #c93b1a; box-shadow: 0 4px 10px rgba(201, 59, 26, 0.22); }
.tutoring-page .tutoring-btn.cta:hover { background: #a1300f; }

/* ----- オンライン受講準備物ブロック ----- */
.tutoring-page .prep-block {
	margin-top: 22px;
	padding: 18px 20px 18px;
	background: #f5f8ff;
	border: 1px solid #d8e2f6;
	border-radius: 12px;
}
.tutoring-page .prep-title {
	display: flex;
	align-items: center;
	gap: 10px;
	margin: 0 0 14px;
	padding: 0;
	border: none;
	color: #1d3a8a;
	font-size: 100%;
	font-weight: bold;
}
.tutoring-page .prep-title::first-letter { border: none; padding: 0; }
.tutoring-page .prep-icon {
	display: inline-flex; align-items: center; justify-content: center;
	width: 22px; height: 22px; flex: 0 0 22px;
}
.tutoring-page .prep-icon svg { width: 100%; height: 100%; }
#main .tutoring-page .prep-lead {
	margin: 0 0 14px;
	padding: 12px 16px;
	background: #fff;
	border: 1px dashed #c5d2ed;
	border-radius: 8px;
	font-size: 92%;
	line-height: 1.8;
	color: #333;
}
#main .tutoring-page .prep-lead b { color: #1d3a8a; }
.tutoring-page .prep-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 12px;
}
.tutoring-page .prep-grid.prep-grid-2 {
	grid-template-columns: repeat(2, 1fr);
}
.tutoring-page .prep-item {
	display: flex;
	gap: 12px;
	background: #fff;
	border: 1px solid #d8e2f6;
	border-radius: 10px;
	padding: 12px 14px;
	align-items: center;
}
.tutoring-page .prep-item .icon {
	flex: 0 0 38px;
	width: 38px; height: 38px;
	display: flex; align-items: center; justify-content: center;
}
.tutoring-page .prep-item .icon svg { width: 100%; height: 100%; }
.tutoring-page .prep-text { display: flex; flex-direction: column; gap: 2px; }
.tutoring-page .prep-text .label {
	color: #1d3a8a; font-weight: bold; font-size: 95%; line-height: 1.4;
}
.tutoring-page .prep-text .desc {
	color: #555; font-size: 86%; line-height: 1.55;
}

/* ----- 受講生の声 ----- */
.tutoring-page .voice-block { margin-bottom: 8px; }
.tutoring-page .voice-block .box { margin-bottom: 18px; border-width: 2px; }
.tutoring-page .voice-block .box h4 { margin-bottom: 6px; }

/* ==========================================================================
   レスポンシブ
   ========================================================================== */
@media screen and (max-width: 900px) {
	.tutoring-page .tutoring-grid3,
	.tutoring-page .flow-grid { grid-template-columns: 1fr; }
	.tutoring-page .summary-grid,
	.tutoring-page .schedule-grid,
	.tutoring-page .method-steps,
	.tutoring-page .prep-grid { grid-template-columns: repeat(2, 1fr); }
	.tutoring-page .pay-grid { grid-template-columns: 1fr; }
	.tutoring-page h3.deco-heading { font-size: 120%; }
	.tutoring-page .achievement-highlight { flex-direction: column; text-align: center; padding: 18px 18px; }
	.tutoring-page .achievement-highlight .ach-text { text-align: center; }
	.tutoring-page .ftc-headline { font-size: 130%; }
}

@media screen and (max-width: 480px) {
	.tutoring-page h3.deco-heading { font-size: 110%; margin: 28px 0 16px; gap: 10px; }
	.tutoring-page .tutoring-card { padding: 20px 16px 18px; }
	.tutoring-page .summary-grid,
	.tutoring-page .schedule-grid,
	.tutoring-page .method-steps,
	.tutoring-page .prep-grid { grid-template-columns: 1fr; }
	.tutoring-page .summary-card { padding: 8px 12px; }
	.tutoring-page .flow-card { padding: 16px 16px; }
	.tutoring-page .flow-card .flow-icon { height: 64px; }
	.tutoring-page .flow-card .flow-icon svg { width: 64px; height: 64px; }
	.tutoring-page details.tutoring-detail > summary { padding: 12px 40px 12px 48px; font-size: 95%; }
	.tutoring-page details.tutoring-detail .detail-body { padding: 14px 14px 16px; }
	.tutoring-page .price-table, .tutoring-page .cancel-table { font-size: 88%; }
	.tutoring-page .price-table th, .tutoring-page .price-table td,
	.tutoring-page .cancel-table th, .tutoring-page .cancel-table td { padding: 8px 8px; }
}
