/*
Theme Name: Snow Monkey for Zest
Theme URI: https://zest-perfectcontrol.com/
Template: snow-monkey
Author: NOMIEL（合同会社NOMIEL）
Author URI: https://nomiel.co.jp/
Description: 高校生専門の個別指導塾ゼスト 専用の Snow Monkey 子テーマ。リニューアルに伴うデザイン上書き用。
Version: 1.3.3
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: snow-monkey-zest
*/

/* ==========================================================================
   1. デザイントークン（CSS変数）
   ========================================================================== */
:root {
	--zest-color-primary: #38b6ff;
	--zest-color-primary-dark: #0084d1;
	--zest-color-secondary: #ff8c42;
	--zest-color-secondary-dark: #e57028;
	--zest-color-accent: #ffd700;
	--zest-color-text: #1a2b3c;
	--zest-color-text-sub: #5a6b7c;
	--zest-color-bg: #ffffff;
	--zest-color-bg-soft: #f5fbff;
	--zest-color-border: #e0e8f0;

	--zest-font-base: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Hiragino Sans", "BIZ UDPGothic", Meiryo, sans-serif;

	--zest-shadow-sm: 0 2px 8px rgba(26, 43, 60, 0.06);
	--zest-shadow-md: 0 6px 16px rgba(26, 43, 60, 0.10);
	--zest-shadow-lg: 0 12px 32px rgba(26, 43, 60, 0.14);
}

/* ==========================================================================
   2. ベース
   ========================================================================== */
body {
	font-family: var(--zest-font-base);
	color: var(--zest-color-text);
}

/* ==========================================================================
   3. 全ページ: サイドバー非表示・メイン全幅化
   Snow Monkey の右サイドバー（.l-contents__sidebar）を消す
   ========================================================================== */
.l-contents__sidebar {
	display: none !important;
}

.l-contents__main {
	max-width: 100% !important;
	width: 100% !important;
	flex: 1 1 100% !important;
}

.l-contents__inner {
	display: block !important;
	grid-template-columns: 1fr !important;
}

/* body modifier の影響を打ち消す（right-sidebar前提のレイアウト指定を無効化） */
.l-body--right-sidebar .l-contents__main,
.l-body--left-sidebar .l-contents__main {
	max-width: 100% !important;
	width: 100% !important;
}

/* 横スクロールバー防止 */
html, body {
	overflow-x: hidden;
}

/* ==========================================================================
   3.2 ホーム: viewport 全体を覆う固定グラデ背景
   親コンテナの幅・padding に影響されないように body::before に配置する
   z-index: -1 で全コンテンツの背後に置き、透明な親要素を通じて見える
   ========================================================================== */
body.home {
	background: #ffffff;
	position: relative;
}

body.home::before {
	content: "";
	position: fixed;
	inset: 0;
	z-index: -1;
	pointer-events: none;
	background:
		radial-gradient(circle 90vmax at 12% 22%, rgba(56, 182, 255, 0.22) 0%, rgba(56, 182, 255, 0.10) 30%, rgba(56, 182, 255, 0) 60%),
		radial-gradient(circle 90vmax at 88% 78%, rgba(255, 140, 66, 0.18) 0%, rgba(255, 140, 66, 0.08) 30%, rgba(255, 140, 66, 0) 60%);
	filter: blur(30px);
}

/* ホームの各ラッパーを透明にして body 背景を見せる */
body.home .l-contents,
body.home .l-contents__main,
body.home .l-contents__inner,
body.home .l-main,
body.home .c-entry,
body.home .c-entry__body,
body.home .c-entry__content,
body.home .p-entry-content {
	background: transparent !important;
}

/* ホームの親ラッパーの上下 padding/margin を解除（Hero が画面端まで届くように） */
body.home .c-entry,
body.home .c-entry__body,
body.home .c-entry__content,
body.home .p-entry-content,
body.home .c-entry__header,
body.home .l-contents__main {
	padding: 0 !important;
	margin: 0 !important;
}

body.home .c-entry__content > :first-child,
body.home .p-entry-content > :first-child {
	margin-top: 0 !important;
}

/* ホームでは zest-section--alt の白グラデを廃止（body のグラデ背景を見せる） */
body.home .zest-section--alt {
	background: transparent !important;
}

/* ==========================================================================
   3.5 ローディングスプラッシュ中のスクロール抑制（ホーム限定）
   Hero アニメ中はスクロールを抑える。他ページには影響させない。
   ========================================================================== */
body.home {
	overflow: hidden;
	animation: zestHomeUnlock 0s 3.7s forwards;
}

@keyframes zestHomeUnlock {
	to { overflow: auto; }
}

@media (prefers-reduced-motion: reduce) {
	body.home { overflow: auto; animation: none; }
}

/* ==========================================================================
   4. Hero セクション（フルスクリーン → 縮小、タイトル滞在）
   ベース白で統一 → 下のセクションと境界が見えない
   モヤモヤは ::before で巨大に配置し、完全に透明へフェードする
   ========================================================================== */
.zest-hero {
	position: relative;
	min-height: 100vh;
	width: 100%;
	display: flex;
	align-items: center;
	justify-content: center;
	overflow: visible;
	/* 透明: グラデ背景は body.home::before で viewport 全体に表示 */
	background: transparent;
	/* 2.5秒スプラッシュ表示後、1.2秒で 38vh まで縮小（タイトルは2行のまま画面上部へ） */
	animation: zestHeroSettle 1.2s cubic-bezier(0.7, 0, 0.3, 1) 2.5s forwards;
}

/* Hero 自身のグラデ ::before は廃止（body.home::before に集約） */
.zest-hero::before {
	display: none;
}

/* ----------------------------------------------------------------------------
   Hero アニメスキップ（同一セッション中の再訪時）
   functions.php のスクリプトが html.zest-no-hero-anim を付けたとき発動
   ---------------------------------------------------------------------------- */
html.zest-no-hero-anim body.home {
	overflow: auto !important;
	animation: none !important;
}

html.zest-no-hero-anim .zest-hero {
	animation: none !important;
	min-height: 30vh !important;
}

html.zest-no-hero-anim .zest-hero__title {
	animation: none !important;
	font-size: clamp(2.2rem, 7vw, 4.4rem) !important;
}

html.zest-no-hero-anim .zest-hero__title-chunk {
	animation: none !important;
	opacity: 1 !important;
	transform: none !important;
	filter: none !important;
}

html.zest-no-hero-anim .zest-hero__shooting-star {
	display: none !important;
}

@keyframes zestHeroSettle {
	to {
		min-height: 30vh;
	}
}

@media (prefers-reduced-motion: reduce) {
	.zest-hero {
		animation: none;
		min-height: 60vh;
	}
}

.zest-hero__inner {
	max-width: 1400px;
	margin: 0 auto;
	padding: 0 24px;
	position: relative;
	z-index: 1;
	width: 100%;
}

.zest-hero__title {
	font-size: clamp(2.4rem, 9.5vw, 8rem);
	font-weight: 800;
	color: var(--zest-color-text);
	margin: 0;
	line-height: 1.4;
	letter-spacing: 0.05em;
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 0;
	text-align: center;
	/* スプラッシュ後はサイズ縮小（2行レイアウトは維持・画面上部に滞在） */
	animation: zestTitleScale 1.2s cubic-bezier(0.7, 0, 0.3, 1) 2.5s forwards;
}

@keyframes zestTitleScale {
	to {
		/* PC は約 70px / SP は約 35px（splash より少し小さい程度） */
		font-size: clamp(2.2rem, 7vw, 4.4rem);
	}
}

/* タイトルの3つのチャンク（時間差でフェードアップ＋ブラー解除） */
.zest-hero__title-chunk {
	display: inline-block;
	opacity: 0;
	transform: translateY(40px);
	filter: blur(8px);
	animation: zestHeroChunkIn 1s cubic-bezier(0.22, 1, 0.36, 1) forwards;
	position: relative;
}

.zest-hero__title-chunk--1 { animation-delay: 0.15s; }
.zest-hero__title-chunk--2 { animation-delay: 0.4s; }
.zest-hero__title-chunk--3 {
	animation-delay: 0.65s;
	/* 「叶えます。」を必ず2行目に固定（フォント縮小後も1行に集約させない） */
	flex-basis: 100%;
	text-align: center;
}

/* 「叶えます。」だけグラデーションカラー（青系で統一: 水色 → 青 → 濃紺） */
.zest-hero__title-chunk--accent {
	background: linear-gradient(120deg, #9edbff 0%, #38b6ff 35%, #0084d1 70%, #1e73be 100%);
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
	padding: 0 0.05em;
}

/* 流れ星（1度だけ、Hero splash の途中に「叶えます」あたりを通る） */
.zest-hero__shooting-star {
	position: absolute;
	top: 50%;
	left: -220px;
	width: 200px;
	height: 2px;
	background: linear-gradient(90deg, transparent 0%, rgba(174, 220, 255, 0.5) 25%, rgba(56, 182, 255, 1) 70%, #e8f6ff 95%, #ffffff 100%);
	border-radius: 2px;
	transform: rotate(-12deg);
	transform-origin: right center;
	opacity: 0;
	animation: zestShootingStar 1.6s cubic-bezier(0.16, 1, 0.3, 1) 1.0s forwards;
	pointer-events: none;
	z-index: 1;
	filter: drop-shadow(0 0 4px rgba(56, 182, 255, 0.6));
}

.zest-hero__shooting-star::after {
	content: "";
	position: absolute;
	right: -3px;
	top: -3px;
	width: 9px;
	height: 9px;
	background: #ffffff;
	border-radius: 50%;
	/* 青の多重グロー（黄色の余地なく、はっきり青に見える） */
	box-shadow:
		0 0 6px 1px #ffffff,
		0 0 14px 3px rgba(56, 182, 255, 1),
		0 0 28px 7px rgba(56, 182, 255, 0.6),
		0 0 44px 12px rgba(56, 182, 255, 0.3);
}

@keyframes zestHeroChunkIn {
	from {
		opacity: 0;
		transform: translateY(40px);
		filter: blur(8px);
	}
	to {
		opacity: 1;
		transform: translateY(0);
		filter: blur(0);
	}
}

@keyframes zestShootingStar {
	0% {
		opacity: 0;
		transform: rotate(-12deg) translateX(0);
	}
	8% {
		opacity: 1;
	}
	75% {
		opacity: 1;
	}
	100% {
		opacity: 0;
		transform: rotate(-12deg) translateX(calc(100vw + 400px));
	}
}

@media (max-width: 768px) {
	.zest-hero__title {
		letter-spacing: 0.02em;
		line-height: 1.5;
	}
	.zest-hero__shooting-star {
		width: 130px;
	}
}

/* ==========================================================================
   5. 共通: セクションタイトル
   ========================================================================== */
.zest-section {
	padding: 60px 24px;
	position: relative;
}

.zest-section--alt {
	background: linear-gradient(180deg, #ffffff 0%, var(--zest-color-bg-soft) 100%);
}

.zest-section__inner {
	max-width: 1100px;
	margin: 0 auto;
	position: relative;
	z-index: 1;
}

.zest-section__heading {
	text-align: center;
	margin: 0 0 56px;
}

/* 英語サブ: 左右にグラデ罫線を添えてエディトリアル風ラベルへ */
.zest-section__heading-sub {
	display: inline-flex;
	align-items: center;
	gap: 14px;
	font-size: clamp(0.78rem, 1.3vw, 0.95rem);
	font-weight: 700;
	color: var(--zest-color-primary-dark);
	letter-spacing: 0.28em;
	text-transform: uppercase;
	margin-bottom: 18px;
}

.zest-section__heading-sub::before,
.zest-section__heading-sub::after {
	content: "";
	width: 32px;
	height: 1.5px;
	border-radius: 2px;
}

.zest-section__heading-sub::before {
	background: linear-gradient(90deg, transparent, var(--zest-color-primary));
}

.zest-section__heading-sub::after {
	background: linear-gradient(90deg, var(--zest-color-primary), transparent);
}

/* 日本語見出し: 直下にオレンジ濃→淡のグラデ下線 */
.zest-section__heading-main {
	display: block;
	/* SP では「納得いくまでトコトン使える」が1行に収まるよう min を 1.4rem に */
	font-size: clamp(1.4rem, 4.2vw, 2.8rem);
	font-weight: 800;
	color: var(--zest-color-text);
	letter-spacing: 0.03em;
	line-height: 1.4;
	position: relative;
	padding-bottom: 22px;
}

.zest-section__heading-main::after {
	content: "";
	position: absolute;
	left: 50%;
	bottom: 0;
	transform: translateX(-50%);
	width: 72px;
	height: 3px;
	border-radius: 3px;
	/* 濃い青 → 薄い青へフェード */
	background: linear-gradient(90deg, #0084d1 0%, #38b6ff 50%, #b8e3ff 100%);
}

/* SP のみ改行する br（PC では非表示） */
.zest-br-sp {
	display: none;
}
@media (max-width: 768px) {
	.zest-br-sp {
		display: inline;
	}
	.zest-section__heading-sub {
		gap: 10px;
		letter-spacing: 0.22em;
	}
	.zest-section__heading-sub::before,
	.zest-section__heading-sub::after {
		width: 22px;
	}
	.zest-section__heading-main {
		padding-bottom: 16px;
	}
	.zest-section__heading-main::after {
		width: 56px;
		height: 2.5px;
	}
}

@media (max-width: 768px) {
	.zest-section {
		padding: 40px 20px;
	}
	.zest-section__heading {
		margin-bottom: 32px;
	}
}

/* ==========================================================================
   6. Section 2: ゼストのこだわり3ヶ条
   ========================================================================== */
.zest-policies__list {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 28px;
}

.zest-policy {
	background: #ffffff;
	border-radius: 16px;
	padding: 40px 32px;
	box-shadow: var(--zest-shadow-sm);
	border-top: 4px solid var(--zest-color-primary);
	transition: transform 0.3s ease, box-shadow 0.3s ease;
	position: relative;
}

.zest-policy:hover {
	transform: translateY(-4px);
	box-shadow: var(--zest-shadow-md);
}

.zest-policy__num {
	font-size: 3rem;
	font-weight: 800;
	line-height: 1;
	background: linear-gradient(120deg, #9edbff 0%, #38b6ff 50%, #0084d1 100%);
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
	letter-spacing: -0.02em;
	margin-bottom: 16px;
}

.zest-policy__heading {
	font-size: 1.35rem;
	font-weight: 700;
	color: var(--zest-color-text);
	line-height: 1.5;
	margin: 0 0 16px;
}

.zest-policy__desc {
	font-size: 0.95rem;
	line-height: 1.85;
	color: var(--zest-color-text-sub);
	margin: 0;
}

@media (max-width: 768px) {
	.zest-policies__list {
		grid-template-columns: 1fr;
		gap: 20px;
	}
	.zest-policy {
		padding: 32px 24px;
	}
	.zest-policy__num {
		font-size: 2.5rem;
	}
	.zest-policy__heading {
		font-size: 1.2rem;
	}
}

/* ==========================================================================
   7. Section 4: ゼストの個別はここがちがう（5項目）
   ========================================================================== */
.zest-features__list {
	display: flex;
	flex-direction: column;
	gap: 20px;
}

.zest-feature {
	display: grid;
	grid-template-columns: 100px 1fr;
	gap: 32px;
	align-items: start;
	background: #ffffff;
	border-radius: 16px;
	padding: 36px 40px;
	box-shadow: var(--zest-shadow-sm);
	border-left: 4px solid var(--zest-color-primary);
	transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.zest-feature:hover {
	transform: translateX(4px);
	box-shadow: var(--zest-shadow-md);
}

.zest-feature__num {
	font-size: 4rem;
	font-weight: 800;
	line-height: 1;
	background: linear-gradient(120deg, #9edbff 0%, #38b6ff 50%, #0084d1 100%);
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
	letter-spacing: -0.04em;
}

.zest-feature__body h3 {
	font-size: 1.4rem;
	font-weight: 700;
	color: var(--zest-color-text);
	margin: 0 0 12px;
	line-height: 1.5;
}

.zest-feature__body p {
	font-size: 0.97rem;
	line-height: 1.9;
	color: var(--zest-color-text-sub);
	margin: 0;
}

@media (max-width: 768px) {
	.zest-feature {
		grid-template-columns: 1fr;
		gap: 12px;
		padding: 28px 24px;
	}
	.zest-feature__num {
		font-size: 3rem;
	}
	.zest-feature__body h3 {
		font-size: 1.15rem;
	}
}

/* ==========================================================================
   8. Section: 自習スペース紹介（簡易版、トグルで詳細展開）
   ========================================================================== */
.zest-studyroom__intro {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 48px;
	align-items: center;
}

.zest-studyroom__intro-text h3 {
	font-size: clamp(1.4rem, 2.8vw, 1.8rem);
	font-weight: 800;
	color: var(--zest-color-text);
	margin: 0 0 22px;
	line-height: 1.5;
	letter-spacing: 0.02em;
}

.zest-studyroom__intro-text p {
	font-size: 1rem;
	line-height: 1.95;
	color: var(--zest-color-text-sub);
	margin: 0 0 16px;
}

.zest-studyroom__intro-text strong {
	color: var(--zest-color-text);
	font-weight: 700;
}

.zest-studyroom__intro-image {
	border-radius: 20px;
	overflow: hidden;
	box-shadow: var(--zest-shadow-md);
	background: #f5f5f5;
}

.zest-studyroom__intro-image img {
	width: 100%;
	height: auto;
	display: block;
	aspect-ratio: 16 / 10;
	object-fit: cover;
	transition: transform 0.6s ease;
}

.zest-studyroom__intro-image:hover img {
	transform: scale(1.04);
}

@media (max-width: 768px) {
	.zest-studyroom__intro {
		grid-template-columns: 1fr;
		gap: 24px;
	}
	.zest-studyroom__intro-text h3 {
		font-size: 1.25rem;
	}
}

/* 自習室「詳しく見る」トグル（SP対応強化版） */
.zest-studyroom__details {
	margin-top: 50px;
	text-align: center;
}

.zest-studyroom__toggle {
	cursor: pointer;
	padding: 14px 36px;
	border: 2px solid var(--zest-color-primary);
	color: var(--zest-color-primary);
	background: transparent;
	border-radius: var(--zest-radius-pill);
	font-weight: 700;
	font-size: 0.98rem;
	display: inline-block;
	box-sizing: border-box;
	transition: all 0.3s ease;
	list-style: none;
	user-select: none;
	-webkit-tap-highlight-color: transparent;
}

.zest-studyroom__toggle::-webkit-details-marker { display: none; }
.zest-studyroom__toggle::marker { content: ""; }

.zest-studyroom__toggle::after {
	content: " ＋";
	display: inline-block;
	margin-left: 6px;
	transition: transform 0.3s ease;
}

.zest-studyroom__details[open] .zest-studyroom__toggle::after {
	content: " −";
}

.zest-studyroom__toggle:hover,
.zest-studyroom__toggle:focus {
	background: var(--zest-color-primary);
	color: #ffffff;
	outline: none;
}

@media (max-width: 600px) {
	.zest-studyroom__toggle {
		display: block;
		width: 100%;
		max-width: 320px;
		padding: 14px 20px;
		font-size: 0.92rem;
		margin: 0 auto;
	}
}

.zest-studyroom__expanded {
	margin-top: 40px;
	text-align: left;
	animation: studyroomFade 0.4s ease;
}

@keyframes studyroomFade {
	from { opacity: 0; transform: translateY(8px); }
	to { opacity: 1; transform: translateY(0); }
}

.zest-studyroom__expanded-lead {
	text-align: center;
	font-size: 1rem;
	line-height: 1.95;
	color: var(--zest-color-text-sub);
	margin: 0 auto 36px;
	max-width: 760px;
}

.zest-studyroom__expanded-lead strong {
	color: var(--zest-color-text);
}

.zest-studyroom__features {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 24px;
}

.zest-studyroom__feature {
	background: #ffffff;
	border-radius: 16px;
	overflow: hidden;
	box-shadow: var(--zest-shadow-sm);
	transition: transform 0.3s ease, box-shadow 0.3s ease;
	display: flex;
	flex-direction: column;
}

.zest-studyroom__feature:hover {
	transform: translateY(-4px);
	box-shadow: var(--zest-shadow-md);
}

.zest-studyroom__feature-image {
	aspect-ratio: 4 / 3;
	overflow: hidden;
	background: #f5f5f5;
}

.zest-studyroom__feature-image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.zest-studyroom__feature-body {
	padding: 22px 24px 26px;
}

.zest-studyroom__feature h4 {
	font-size: 1.05rem;
	font-weight: 800;
	color: var(--zest-color-text);
	margin: 0 0 8px;
	line-height: 1.5;
}

.zest-studyroom__feature p {
	font-size: 0.9rem;
	line-height: 1.8;
	color: var(--zest-color-text-sub);
	margin: 0;
}

@media (max-width: 768px) {
	.zest-studyroom__features {
		grid-template-columns: 1fr;
		gap: 16px;
	}
}

/* ==========================================================================
   8b. Section: ファーストメッセージ3つ（タイトルなし・アイコンのみ）
   ========================================================================== */
.zest-pillars {
	padding: 30px 24px 70px;
}

.zest-pillars__list {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 32px;
	max-width: 1100px;
	margin: 0 auto;
}

.zest-pillar {
	text-align: center;
	padding: 32px 24px;
	transition: transform 0.35s ease;
}

.zest-pillar:hover {
	transform: translateY(-4px);
}

.zest-pillar__icon {
	width: 80px;
	height: 80px;
	margin: 0 auto 24px;
	background: linear-gradient(135deg, #38b6ff 0%, #0084d1 100%);
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	box-shadow: 0 12px 28px rgba(56, 182, 255, 0.32);
	position: relative;
}

.zest-pillar__icon::before {
	content: "";
	position: absolute;
	inset: -6px;
	border: 2px solid rgba(56, 182, 255, 0.2);
	border-radius: 50%;
}

.zest-pillar__icon i {
	color: #ffffff;
	font-size: 2rem;
}

.zest-pillar__lead {
	font-size: 1.15rem;
	font-weight: 800;
	color: var(--zest-color-text);
	line-height: 1.6;
	margin: 0 0 14px;
	letter-spacing: 0.02em;
}

.zest-pillar__desc {
	font-size: 0.95rem;
	line-height: 1.9;
	color: var(--zest-color-text-sub);
	margin: 0;
}

@media (max-width: 900px) {
	.zest-pillars__list {
		grid-template-columns: 1fr;
		gap: 12px;
	}
	.zest-pillars {
		padding: 24px 20px 50px;
	}
}

/* ==========================================================================
   8c. Section: ZESTはここが違う（5項目、画像と文章を交互配置）
   ========================================================================== */
.zest-diff__list {
	display: flex;
	flex-direction: column;
	gap: 60px;
}

.zest-diff-item {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 56px;
	align-items: center;
}

.zest-diff-item:nth-child(even) {
	direction: rtl;
}

.zest-diff-item:nth-child(even) > * {
	direction: ltr;
}

.zest-diff-item__media {
	border-radius: 20px;
	overflow: hidden;
	box-shadow: var(--zest-shadow-md);
	aspect-ratio: 4 / 3;
	background: #f5f5f5;
}

.zest-diff-item__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.6s ease;
}

.zest-diff-item:hover .zest-diff-item__media img {
	transform: scale(1.04);
}

.zest-diff-item__body h3 {
	font-size: clamp(1.3rem, 2.5vw, 1.7rem);
	font-weight: 800;
	color: var(--zest-color-text);
	line-height: 1.5;
	margin: 0 0 18px;
	letter-spacing: 0.02em;
	position: relative;
	padding-left: 18px;
}

.zest-diff-item__body h3::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0.18em;
	bottom: 0.18em;
	width: 4px;
	border-radius: 4px;
	background: linear-gradient(180deg, var(--zest-color-primary) 0%, var(--zest-color-primary-dark) 100%);
}

.zest-diff-item__body p {
	font-size: 0.97rem;
	line-height: 1.95;
	color: var(--zest-color-text-sub);
	margin: 0;
}

@media (max-width: 900px) {
	.zest-diff__list {
		gap: 40px;
	}
	.zest-diff-item {
		grid-template-columns: 1fr;
		gap: 20px;
	}
	.zest-diff-item:nth-child(even) {
		direction: ltr;
	}
	.zest-diff-item__media {
		aspect-ratio: 16 / 10;
	}
}

/* ==========================================================================
   9. Section 6: 料金概要（system へ誘導、アイコン付き特徴3点入り）
   ========================================================================== */
.zest-pricing__panel {
	/* 白パネル枠を廃止 → 背景グラデの中に直接コンテンツを配置 */
	background: transparent;
	border-radius: 0;
	padding: 20px 0 10px;
	box-shadow: none;
	text-align: center;
	border: none;
}

.zest-pricing__lead {
	font-size: clamp(1rem, 1.6vw, 1.15rem);
	color: var(--zest-color-text-sub);
	line-height: 1.85;
	margin: 0 auto 32px;
	max-width: 680px;
}

.zest-pricing__features {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 14px;
	margin: 0 0 36px;
	padding: 0;
	list-style: none;
}

.zest-pricing__features li {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 14px 22px;
	background: rgba(56, 182, 255, 0.08);
	border-radius: var(--zest-radius-pill);
	font-size: 0.95rem;
	color: var(--zest-color-text);
}

.zest-pricing__features li strong {
	color: var(--zest-color-primary-dark);
	font-weight: 800;
}

.zest-pricing__feature-icon {
	width: 26px;
	height: 26px;
	background: linear-gradient(135deg, #38b6ff 0%, #0084d1 100%);
	color: #ffffff;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 0.75rem;
	flex-shrink: 0;
}

.zest-pricing__cta {
	display: inline-flex;
	align-items: center;
	gap: 12px;
	padding: 18px 40px;
	background: var(--zest-color-primary);
	color: #ffffff !important;
	font-size: 1.05rem;
	font-weight: 700;
	border-radius: var(--zest-radius-pill);
	text-decoration: none !important;
	box-shadow: var(--zest-shadow-md);
	transition: transform 0.3s ease, box-shadow 0.3s ease, background 0.3s ease;
}

.zest-pricing__cta:hover {
	transform: translateY(-3px);
	box-shadow: var(--zest-shadow-lg);
	background: var(--zest-color-primary-dark);
}

.zest-pricing__cta::after {
	content: "→";
	display: inline;
	transition: transform 0.3s ease;
}

.zest-pricing__cta:hover::after {
	transform: translateX(4px);
}

@media (max-width: 768px) {
	.zest-pricing__panel {
		padding: 40px 28px;
	}
}

/* ==========================================================================
   10. Section 7: 無料体験 CTA（最下部、洗練・縦積みレイアウト）
   ========================================================================== */
.zest-cta {
	padding: 100px 24px;
	background: linear-gradient(135deg, #1a2b3c 0%, #0084d1 50%, #38b6ff 100%);
	text-align: center;
	color: #ffffff;
	position: relative;
	overflow: hidden;
}

.zest-cta::before {
	content: "";
	position: absolute;
	inset: 0;
	background:
		radial-gradient(ellipse 60% 50% at 25% 30%, rgba(255, 255, 255, 0.08) 0%, transparent 60%),
		radial-gradient(ellipse 70% 60% at 80% 70%, rgba(255, 215, 0, 0.06) 0%, transparent 60%);
	pointer-events: none;
}

.zest-cta__inner {
	max-width: 720px;
	margin: 0 auto;
	position: relative;
	z-index: 1;
}

.zest-cta__title {
	font-size: clamp(1.8rem, 4vw, 2.8rem);
	font-weight: 800;
	margin: 0 0 20px;
	letter-spacing: 0.05em;
	color: #ffffff;
	line-height: 1.5;
}

.zest-cta__lead {
	font-size: clamp(0.95rem, 1.6vw, 1.1rem);
	margin: 0 0 48px;
	line-height: 1.95;
	color: rgba(255, 255, 255, 0.88);
}

/* 縦積み（PC・SP共通で1列） */
.zest-cta__actions {
	display: flex;
	flex-direction: column;
	gap: 28px;
	align-items: center;
}

.zest-cta__btn {
	display: inline-flex;
	align-items: center;
	gap: 14px;
	padding: 22px 56px;
	background: #ffffff;
	color: var(--zest-color-primary-dark) !important;
	font-size: 1.1rem;
	font-weight: 800;
	letter-spacing: 0.05em;
	border-radius: var(--zest-radius-pill);
	text-decoration: none !important;
	box-shadow: 0 14px 36px rgba(0, 0, 0, 0.28);
	transition: transform 0.3s ease, box-shadow 0.3s ease;
	min-width: 320px;
	justify-content: center;
}

.zest-cta__btn::after {
	content: "→";
	transition: transform 0.3s ease;
}

.zest-cta__btn:hover {
	transform: translateY(-4px);
	box-shadow: 0 20px 44px rgba(0, 0, 0, 0.34);
}

.zest-cta__btn:hover::after {
	transform: translateX(4px);
}

.zest-cta__divider {
	display: flex;
	align-items: center;
	gap: 16px;
	font-size: 0.78rem;
	color: rgba(255, 255, 255, 0.55);
	letter-spacing: 0.3em;
	font-weight: 500;
}

.zest-cta__divider::before,
.zest-cta__divider::after {
	content: "";
	flex: 1;
	height: 1px;
	background: rgba(255, 255, 255, 0.25);
	min-width: 60px;
}

.zest-cta__tel {
	display: inline-flex;
	flex-direction: column;
	align-items: center;
	gap: 4px;
	color: #ffffff !important;
	text-decoration: none !important;
}

.zest-cta__tel-label {
	font-size: 0.7rem;
	font-weight: 500;
	letter-spacing: 0.32em;
	opacity: 0.7;
	margin-bottom: 4px;
}

.zest-cta__tel-num {
	font-size: clamp(1.6rem, 3.5vw, 2.2rem);
	font-weight: 800;
	letter-spacing: 0.04em;
	line-height: 1.2;
}

.zest-cta__tel:hover .zest-cta__tel-num {
	text-decoration: underline;
}

.zest-cta__tel-note {
	font-size: 0.78rem;
	color: rgba(255, 255, 255, 0.7);
	margin-top: 2px;
	letter-spacing: 0.05em;
}

@media (max-width: 768px) {
	.zest-cta {
		padding: 70px 20px;
	}
	.zest-cta__btn {
		padding: 18px 36px;
		min-width: 0;
		width: 100%;
		max-width: 360px;
	}
}

/* ==========================================================================
   11. フッター（全ページ共通）
   ========================================================================== */
/* Snow Monkey デフォルトのフッターウィジェットエリアの調整 */
.l-footer-widget-area {
	background: #1a2b3c !important;
	color: #d8dee5 !important;
	padding: 70px 0 30px !important;
}

.l-footer-widget-area__item {
	color: #d8dee5;
}

.l-footer-widget-area .c-widget__title,
.l-footer-widget-area h2,
.l-footer-widget-area h3,
.l-footer-widget-area h4 {
	color: #ffffff !important;
	font-size: 1rem !important;
	font-weight: 700 !important;
	margin: 0 0 20px !important;
	padding-bottom: 12px !important;
	border-bottom: 2px solid var(--zest-color-primary) !important;
	display: inline-block !important;
}

.l-footer-widget-area a {
	color: #d8dee5 !important;
	text-decoration: none !important;
	transition: color 0.2s ease;
}

.l-footer-widget-area a:hover {
	color: var(--zest-color-primary) !important;
}

/* フッター内のカスタムHTMLウィジェット（運営情報・姉妹塾） */
.zest-footer-block {
	font-size: 0.9rem;
	line-height: 1.85;
}

/* フッターのロゴが暗紺背景で見えにくいので白カードで挟む */
.zest-footer-block > p:first-child img,
.zest-footer-logo-wrap img {
	background: #ffffff;
	padding: 14px 18px;
	border-radius: 10px;
	max-width: 200px;
	display: block;
}

.zest-footer-nav {
	display: flex;
	flex-direction: column;
	gap: 8px;
	font-size: 0.92rem;
}

.zest-footer-sister {
	display: flex;
	flex-direction: column;
	gap: 18px;
}

.zest-footer-sister__item {
	display: flex;
	flex-direction: column;
	gap: 4px;
}

.zest-footer-sister__item img {
	max-width: 140px;
	height: auto;
	background: #ffffff;
	padding: 6px 10px;
	border-radius: 6px;
}

.zest-footer-sister__item small {
	font-size: 0.8rem;
	color: #9ba8b6;
}

.zest-footer-info {
	font-size: 0.88rem;
	line-height: 1.95;
}

.zest-footer-info dt {
	display: inline-block;
	min-width: 60px;
	color: #9ba8b6;
	font-weight: 500;
	margin-right: 8px;
}

.zest-footer-info dd {
	display: inline;
	margin: 0 0 4px;
	color: #ffffff;
}

.zest-footer-info dd::after {
	content: "";
	display: block;
	margin-bottom: 6px;
}

.zest-footer-info a {
	color: #ffffff !important;
	border-bottom: 1px dotted rgba(255, 255, 255, 0.4);
}

/* コピーライト */
.c-copyright,
.c-copyright--inverse {
	background: #0f1a26 !important;
	color: #6b7886 !important;
	padding: 16px 0 !important;
	font-size: 0.85rem !important;
}

@media (max-width: 768px) {
	.l-footer-widget-area {
		padding: 50px 20px 20px !important;
	}
}

/* ==========================================================================
   12. Section 6: 高校生専門塾だからできる！（強み6項目）
   ========================================================================== */
.zest-strengths__list {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 28px;
}

.zest-strength {
	background: #ffffff;
	border-radius: 16px;
	padding: 36px 28px;
	box-shadow: var(--zest-shadow-sm);
	transition: transform 0.3s ease, box-shadow 0.3s ease;
	text-align: center;
	position: relative;
	overflow: hidden;
}

.zest-strength:hover {
	transform: translateY(-4px);
	box-shadow: var(--zest-shadow-md);
}

.zest-strength__icon {
	width: 96px;
	height: 96px;
	margin: 0 auto 18px;
	display: flex;
	align-items: center;
	justify-content: center;
}

.zest-strength__icon img {
	max-width: 100%;
	max-height: 100%;
	width: auto;
	height: auto;
	object-fit: contain;
}

.zest-strength__heading {
	font-size: 1.1rem;
	font-weight: 800;
	color: var(--zest-color-text);
	margin: 0 0 14px;
	line-height: 1.5;
	min-height: 3em;
	display: flex;
	align-items: center;
	justify-content: center;
}

.zest-strength__desc {
	font-size: 0.92rem;
	line-height: 1.85;
	color: var(--zest-color-text-sub);
	margin: 0;
	text-align: left;
}

@media (max-width: 1024px) {
	.zest-strengths__list {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (max-width: 600px) {
	.zest-strengths__list {
		grid-template-columns: 1fr;
		gap: 20px;
	}
	.zest-strength__heading {
		min-height: 0;
	}
}

/* ==========================================================================
   13. Section: 進学実績（合格大学リスト、ヒーロースタットなし）
   ========================================================================== */
.zest-results__note {
	text-align: center;
	font-size: 0.88rem;
	color: var(--zest-color-text-sub);
	margin: -30px 0 36px;
	letter-spacing: 0.05em;
}

.zest-results__groups {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 32px;
}

.zest-results__group {
	background: #ffffff;
	border-radius: 16px;
	padding: 36px 32px;
	box-shadow: var(--zest-shadow-sm);
	border-top: 4px solid var(--zest-color-primary);
}

.zest-results__group--private {
	border-top-color: var(--zest-color-secondary);
}

.zest-results__group-title {
	font-size: 1.15rem;
	font-weight: 800;
	color: var(--zest-color-text);
	margin: 0 0 24px;
	padding-bottom: 12px;
	border-bottom: 1px solid var(--zest-color-border);
	display: flex;
	align-items: baseline;
	gap: 12px;
}

.zest-results__group-title-sub {
	font-size: 0.8rem;
	font-weight: 500;
	color: var(--zest-color-text-sub);
	letter-spacing: 0.1em;
}

.zest-results__list {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 8px 18px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.zest-results__list li {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	padding: 8px 0;
	border-bottom: 1px dotted var(--zest-color-border);
	font-size: 0.9rem;
}

.zest-results__list li:nth-last-child(1),
.zest-results__list li:nth-last-child(2) {
	border-bottom: none;
}

.zest-results__list .uni-name {
	font-weight: 700;
	color: var(--zest-color-text);
}

.zest-results__list .uni-count {
	font-weight: 800;
	color: var(--zest-color-primary-dark);
	white-space: nowrap;
}

.zest-results__group--private .zest-results__list .uni-count {
	color: var(--zest-color-secondary-dark);
}

@media (max-width: 768px) {
	.zest-results__groups {
		grid-template-columns: 1fr;
		gap: 20px;
	}
	.zest-results__list {
		grid-template-columns: 1fr;
	}
}

/* ==========================================================================
   14. Section: 最新記事（リスト表示。投稿数が少なくても自然）
   ========================================================================== */
.zest-news-head {
	padding-bottom: 20px !important;
}

.zest-news-tail {
	padding-top: 20px !important;
}

/* 最新情報フィード（横長リスト形式: サムネ + タイトル + メタ） */
.zest-news__feed {
	background: transparent !important;
	padding: 0 24px !important;
	max-width: 900px !important;
	width: 100% !important;
	margin: 0 auto !important;
	box-sizing: border-box;
}

/* 内部ラッパーを 100% 幅に強制（Snow Monkey の grid/inline-block 等を打ち消す） */
.zest-news__feed .snow-monkey-posts,
.zest-news__feed .snow-monkey-recent-posts {
	background: transparent !important;
	width: 100% !important;
	max-width: 100% !important;
	display: block !important;
}

/* リストを縦積み（横長行）— Snow Monkey の rich-media grid を打ち消す */
.zest-news__feed .c-entries,
.zest-news__feed .c-entries--rich-media {
	display: flex !important;
	flex-direction: column !important;
	align-items: stretch !important;
	gap: 0 !important;
	list-style: none !important;
	padding: 0 !important;
	margin: 0 !important;
	width: 100% !important;
	max-width: 100% !important;
	grid-template-columns: 1fr !important;
}

.zest-news__feed .c-entries__item {
	list-style: none !important;
	margin: 0 !important;
	padding: 0 !important;
	background: transparent !important;
	border: none !important;
	border-bottom: 1px solid rgba(26, 43, 60, 0.10) !important;
	box-shadow: none !important;
	width: 100% !important;
	max-width: 100% !important;
}

.zest-news__feed .c-entries__item:last-child {
	border-bottom: none !important;
}

.zest-news__feed .c-entries__item > a {
	display: block !important;
	width: 100% !important;
	color: inherit !important;
	text-decoration: none !important;
	padding: 16px 10px !important;
	border-radius: 10px;
	transition: background 0.25s ease;
	box-sizing: border-box;
}

.zest-news__feed .c-entries__item > a:hover {
	background: rgba(56, 182, 255, 0.06) !important;
}

/* 各記事内: サムネ + 本文の横並び */
.zest-news__feed .c-entry-summary {
	display: grid !important;
	grid-template-columns: 160px 1fr !important;
	gap: 22px !important;
	align-items: start !important;
	background: transparent !important;
	border: none !important;
	box-shadow: none !important;
	padding: 0 !important;
	margin: 0 !important;
}

/* サムネイル */
.zest-news__feed .c-entry-summary__figure {
	position: relative;
	width: 160px !important;
	aspect-ratio: 4 / 3 !important;
	overflow: hidden !important;
	border-radius: 8px;
	margin: 0 !important;
	background: #f5f5f5;
}

.zest-news__feed .c-entry-summary__figure img {
	width: 100% !important;
	height: 100% !important;
	object-fit: cover !important;
	display: block;
	transition: transform 0.5s ease;
}

.zest-news__feed .c-entries__item > a:hover .c-entry-summary__figure img {
	transform: scale(1.05);
}

/* 画像内のカテゴリラベルは非表示（メタの方に統一） */
.zest-news__feed .c-entry-summary__figure .c-entry-summary__term {
	display: none !important;
}

/* 本文側 */
.zest-news__feed .c-entry-summary__body {
	padding: 0 !important;
}

.zest-news__feed .c-entry-summary__header {
	margin: 0 0 8px !important;
}

.zest-news__feed .c-entry-summary__title {
	font-size: 1.1rem !important;
	font-weight: 700 !important;
	line-height: 1.55 !important;
	color: var(--zest-color-text) !important;
	margin: 0 0 8px !important;
	padding: 0 !important;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

/* 抜粋（2行で省略） */
.zest-news__feed .c-entry-summary__content {
	display: -webkit-box !important;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
	font-size: 0.86rem !important;
	line-height: 1.65 !important;
	color: var(--zest-color-text-sub) !important;
	margin: 0 0 10px !important;
	padding: 0 !important;
}

/* メタ: カテゴリピル + 日付（Snow Monkey 親の display:none を打ち消す） */
.zest-news__feed .c-entry-summary__meta {
	display: block !important;
	margin: 0 !important;
	padding: 0 !important;
}

.zest-news__feed .c-meta {
	display: flex !important;
	flex-wrap: wrap !important;
	gap: 12px !important;
	align-items: center !important;
	list-style: none !important;
	padding: 0 !important;
	margin: 0 !important;
	font-size: 0.78rem !important;
	color: var(--zest-color-text-sub) !important;
}

.zest-news__feed .c-meta__item {
	margin: 0 !important;
	padding: 0 !important;
	display: inline-flex !important;
	align-items: center !important;
}

.zest-news__feed .c-meta__item--author {
	display: none !important;
}

.zest-news__feed .c-meta__item--published {
	color: var(--zest-color-text-sub);
	letter-spacing: 0.05em;
}

/* カテゴリーピル */
.zest-news__feed .c-meta__item--categories .c-entry-summary__term,
.zest-news__feed .c-meta__item--categories a,
.zest-news__feed .c-meta__item--categories span {
	background: rgba(0, 132, 209, 0.10);
	color: var(--zest-color-primary-dark) !important;
	padding: 3px 12px;
	border-radius: 999px;
	font-size: 0.72rem;
	font-weight: 700;
	letter-spacing: 0.05em;
	text-decoration: none !important;
}

@media (max-width: 600px) {
	.zest-news__feed {
		padding: 0 16px;
	}
	.zest-news__feed .c-entries__item > a {
		padding: 12px 6px !important;
	}
	.zest-news__feed .c-entry-summary {
		grid-template-columns: 100px 1fr !important;
		gap: 14px !important;
	}
	.zest-news__feed .c-entry-summary__figure {
		width: 100px !important;
	}
	.zest-news__feed .c-entry-summary__title {
		font-size: 0.95rem !important;
		line-height: 1.5 !important;
		margin: 0 0 6px !important;
	}
	/* SP では抜粋非表示（タイトル+日付の2段に） */
	.zest-news__feed .c-entry-summary__content {
		display: none !important;
	}
	.zest-news__feed .c-meta {
		font-size: 0.72rem !important;
		gap: 8px !important;
	}
}

.zest-news__more {
	text-align: center;
}

.zest-news__more a {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 12px 32px;
	border: 2px solid var(--zest-color-primary);
	color: var(--zest-color-primary) !important;
	font-weight: 700;
	border-radius: var(--zest-radius-pill);
	text-decoration: none !important;
	transition: all 0.3s ease;
}

.zest-news__more a:hover {
	background: var(--zest-color-primary);
	color: #ffffff !important;
}

@media (max-width: 600px) {
	.zest-news__feed {
		padding: 0 16px;
	}
	.zest-news__feed .smb-recent-posts__item a {
		grid-template-columns: 72px 1fr;
		gap: 14px;
		padding: 14px 8px !important;
	}
	.zest-news__feed .smb-recent-posts__item__figure img {
		width: 72px !important;
		height: 56px !important;
	}
	.zest-news__feed .smb-recent-posts__item__title {
		font-size: 0.92rem;
	}
}

/* ==========================================================================
   15. Section 9: 教室案内
   ========================================================================== */
.zest-access__layout {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 48px;
	margin-bottom: 40px;
	align-items: start;
}

.zest-access__info {
	background: #ffffff;
	border-radius: 16px;
	padding: 36px 32px;
	box-shadow: var(--zest-shadow-sm);
}

.zest-access__info dl {
	margin: 0;
	display: grid;
	grid-template-columns: 110px 1fr;
	gap: 12px 20px;
}

.zest-access__info dt {
	font-weight: 700;
	color: var(--zest-color-text);
	font-size: 0.92rem;
	padding: 4px 0;
}

.zest-access__info dd {
	margin: 0;
	color: var(--zest-color-text);
	font-size: 0.92rem;
	line-height: 1.7;
	padding: 4px 0;
	border-bottom: 1px dotted var(--zest-color-border);
}

.zest-access__info dl > dt:last-of-type ~ dd:last-of-type,
.zest-access__info dd:last-child {
	border-bottom: none;
}

.zest-access__info a {
	color: var(--zest-color-primary-dark);
	font-weight: 700;
}

.zest-access__photo img {
	width: 100%;
	height: auto;
	border-radius: 16px;
	box-shadow: var(--zest-shadow-sm);
}

.zest-access__map {
	border-radius: 16px;
	overflow: hidden;
	box-shadow: var(--zest-shadow-sm);
}

.zest-access__map iframe {
	width: 100%;
	height: 380px;
	border: 0;
	display: block;
}

@media (max-width: 768px) {
	.zest-access__layout {
		grid-template-columns: 1fr;
		gap: 24px;
	}
	.zest-access__info dl {
		grid-template-columns: 90px 1fr;
		gap: 10px 14px;
	}
	.zest-access__map iframe {
		height: 280px;
	}
}

/* ==========================================================================
   16. 既存「進学実績」セクション（snow-monkey-blocks/price-menu）の刷新
   元は学費表示用のブロックで進学実績を表現しているため、このページでは合格実績向けの見た目に
   ========================================================================== */
/* 進学実績タイトルのアレンジ（白文字 → 濃紺、波装飾は活かしつつ） */
.smb-section__title:where(:has(.sme-text-color)) {
	/* タイトル既存色は維持（白指定なら白のまま） */
}

/* 進学実績エリアの price-menu を「合格実績カード」風に刷新 */
.smb-section .smb-price-menu {
	display: grid;
	grid-template-columns: 1fr;
	gap: 8px;
	border: 1px solid var(--zest-color-border);
	border-radius: 12px;
	padding: 16px 20px;
	background: #ffffff;
	box-shadow: var(--zest-shadow-sm);
}

.smb-section .smb-price-menu__item {
	display: flex !important;
	justify-content: space-between !important;
	align-items: baseline !important;
	padding: 8px 4px !important;
	border-bottom: 1px dotted var(--zest-color-border) !important;
	background: transparent !important;
	margin: 0 !important;
}

.smb-section .smb-price-menu__item:last-child {
	border-bottom: none !important;
}

.smb-section .smb-price-menu__item__title {
	font-weight: 700;
	color: var(--zest-color-text);
	font-size: 0.95rem;
}

.smb-section .smb-price-menu__item__price {
	font-weight: 800;
	color: var(--zest-color-primary-dark);
	font-size: 0.95rem;
	letter-spacing: 0.02em;
	white-space: nowrap;
}

/* ==========================================================================
   13. 既存 Snow Monkey 要素の微調整
   ========================================================================== */
.smb-section {
	padding-top: 80px !important;
	padding-bottom: 80px !important;
}

@media (max-width: 768px) {
	.smb-section {
		padding-top: 60px !important;
		padding-bottom: 60px !important;
	}
}

/* Snow Monkey Editor の出し分けクラスを正しい breakpoint で適用
   sm:  〜599px / md: 600〜1024px / lg: 1025px〜 */
@media (max-width: 599px) {
	.sme-hidden-sm {
		display: none !important;
	}
}

@media (min-width: 600px) and (max-width: 1024px) {
	.sme-hidden-md {
		display: none !important;
	}
}

@media (min-width: 1025px) {
	.sme-hidden-lg-up {
		display: none !important;
	}
}

/* リンクの不要な下線を整理 */
.smb-section a:hover {
	text-decoration: underline;
}

/* ==========================================================================
   17. スマホ版 包括的レスポンシブ調整（最終上書き）
   ========================================================================== */
@media (max-width: 768px) {
	/* セクション全体のpaddingを抑える */
	.zest-section {
		padding: 40px 18px;
	}

	/* セクション見出しの余白を抑える */
	.zest-section__heading {
		margin-bottom: 28px;
	}

	.zest-section__heading-main {
		line-height: 1.45;
	}

	/* Pillars: SP では 1 列で間隔詰める（Hero 直下なので上 padding は最小限） */
	.zest-pillars {
		padding: 20px 20px 40px;
	}
	.zest-pillars__list {
		gap: 4px;
	}
	.zest-pillar {
		padding: 24px 16px;
	}
	.zest-pillar__icon {
		width: 64px;
		height: 64px;
		margin-bottom: 16px;
	}
	.zest-pillar__icon i {
		font-size: 1.6rem;
	}

	/* ZEST diff: 縦積み、左マーカー縮小 */
	.zest-diff__list {
		gap: 32px;
	}
	.zest-diff-item__body h3 {
		font-size: 1.15rem;
		padding-left: 14px;
	}
	.zest-diff-item__body p {
		font-size: 0.92rem;
	}

	/* Pricing: パネル padding 抑える、特徴は縦積み */
	.zest-pricing__panel {
		padding: 36px 22px;
		border-radius: 18px;
	}
	.zest-pricing__features {
		flex-direction: column;
		align-items: stretch;
		gap: 8px;
	}
	.zest-pricing__features li {
		font-size: 0.9rem;
		padding: 12px 18px;
		justify-content: center;
	}
	.zest-pricing__cta {
		padding: 14px 28px;
		font-size: 0.98rem;
	}

	/* 進学実績: 1列 */
	.zest-results__groups {
		gap: 16px;
	}
	.zest-results__group {
		padding: 26px 22px;
	}
	.zest-results__group-title {
		font-size: 1.05rem;
		flex-wrap: wrap;
	}
	.zest-results__list {
		grid-template-columns: 1fr;
	}
	.zest-results__list li {
		font-size: 0.88rem;
	}

	/* 教室案内: 縦積み、テーブル余白詰め */
	.zest-access__layout {
		gap: 20px;
	}
	.zest-access__info {
		padding: 26px 22px;
	}
	.zest-access__info dl {
		grid-template-columns: 80px 1fr;
		gap: 8px 12px;
	}
	.zest-access__info dt,
	.zest-access__info dd {
		font-size: 0.88rem;
		padding: 4px 0;
	}

	/* CTA: padding/フォント調整、縦積みは PC/SP 共通で既に対応済 */
	.zest-cta {
		padding: 60px 18px;
	}
	.zest-cta__title {
		font-size: clamp(1.5rem, 6vw, 2rem);
	}
	.zest-cta__lead {
		font-size: 0.95rem;
		margin-bottom: 36px;
	}
	.zest-cta__actions {
		gap: 20px;
	}
	.zest-cta__divider {
		font-size: 0.7rem;
	}
	.zest-cta__divider::before,
	.zest-cta__divider::after {
		min-width: 40px;
	}

	/* フッター調整 */
	.l-footer-widget-area {
		padding: 40px 18px 16px !important;
	}
	.zest-footer-block > p:first-child img,
	.zest-footer-logo-wrap img {
		max-width: 160px;
		padding: 10px 14px;
	}
}

/* iPhone SE等の細い画面でさらに詰める */
@media (max-width: 380px) {
	.zest-section {
		padding: 32px 14px;
	}
	.zest-pricing__panel {
		padding: 16px 0 8px;
	}
}

/* ==========================================================================
   ★ D-2: 完全学習管理とは（about）専用スタイル
   ホームと統一感を保ちつつ、各ページ固有の構成を追加
   ========================================================================== */

/* --------------------------------------------------------------------------
   D-2.1 about: 背景 + ラッパー透明化（薄い青モヤ1点のみ、ホームより控えめ）
   -------------------------------------------------------------------------- */
body.about {
	background: #ffffff;
	position: relative;
}

body.about::before {
	content: "";
	position: fixed;
	inset: 0;
	z-index: -1;
	pointer-events: none;
	/* 全ページ統一: ホームと同じ青モヤ + オレンジモヤ */
	background:
		radial-gradient(circle 90vmax at 12% 22%, rgba(56, 182, 255, 0.22) 0%, rgba(56, 182, 255, 0.10) 30%, rgba(56, 182, 255, 0) 60%),
		radial-gradient(circle 90vmax at 88% 78%, rgba(255, 140, 66, 0.18) 0%, rgba(255, 140, 66, 0.08) 30%, rgba(255, 140, 66, 0) 60%);
	filter: blur(30px);
}

body.about .l-contents,
body.about .l-contents__main,
body.about .l-contents__inner,
body.about .l-main,
body.about .c-entry,
body.about .c-entry__body,
body.about .c-entry__content,
body.about .p-entry-content {
	background: transparent !important;
}

body.about .c-entry,
body.about .c-entry__body,
body.about .c-entry__content,
body.about .p-entry-content,
body.about .c-entry__header,
body.about .l-contents__main {
	padding: 0 !important;
	margin: 0 !important;
}

body.about .c-entry__content > :first-child,
body.about .p-entry-content > :first-child {
	margin-top: 0 !important;
}

body.about .zest-section--alt {
	background: transparent !important;
}

/* about ではエントリヘッダ（タイトル）を非表示にして自前 Hero を見せる */
body.about .c-entry__header {
	display: none !important;
}

/* --------------------------------------------------------------------------
   D-2.2 ページ用ヒーロー（共通: about 以外の下層ページでも使える設計）
   ホームの zest-hero よりコンパクト、フェードインのみのシンプルアニメ
   -------------------------------------------------------------------------- */
.zest-page-hero {
	position: relative;
	min-height: 0;
	/* 上: メニューとの余白を確保（元の値を維持）
	   下: 次セクションへのつながりを詰める */
	padding: 100px 24px 24px;
	display: flex;
	align-items: center;
	justify-content: center;
	text-align: center;
	overflow: hidden;
}

/* Hero 直後のセクションは上余白を圧縮（Hero との詰めを良くする） */
.zest-page-hero + .zest-section {
	padding-top: 28px;
}

.zest-page-hero__inner {
	position: relative;
	z-index: 1;
	max-width: 880px;
	margin: 0 auto;
	animation: zestFadeUp 0.9s cubic-bezier(0.2, 0.7, 0.2, 1) 0.1s both;
}

.zest-page-hero__sub {
	display: inline-flex;
	align-items: center;
	gap: 14px;
	font-size: clamp(0.78rem, 1.3vw, 0.95rem);
	font-weight: 700;
	color: var(--zest-color-primary-dark);
	letter-spacing: 0.28em;
	text-transform: uppercase;
	margin-bottom: 22px;
}

.zest-page-hero__sub::before,
.zest-page-hero__sub::after {
	content: "";
	width: 36px;
	height: 1.5px;
	border-radius: 2px;
}

.zest-page-hero__sub::before {
	background: linear-gradient(90deg, transparent, var(--zest-color-primary));
}

.zest-page-hero__sub::after {
	background: linear-gradient(90deg, var(--zest-color-primary), transparent);
}

.zest-page-hero__title {
	font-size: clamp(2rem, 5.5vw, 3.6rem);
	font-weight: 800;
	letter-spacing: 0.04em;
	line-height: 1.3;
	margin: 0 0 28px;
	background: linear-gradient(120deg, #0084d1 0%, #38b6ff 60%, #7ad0ff 100%);
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
	color: transparent;
}

.zest-page-hero__lead {
	font-size: clamp(0.95rem, 1.5vw, 1.08rem);
	line-height: 1.9;
	color: var(--zest-color-text);
	margin: 0;
}

@keyframes zestFadeUp {
	from {
		opacity: 0;
		transform: translateY(18px);
	}
	to {
		opacity: 1;
		transform: translateY(0);
	}
}

@media (prefers-reduced-motion: reduce) {
	.zest-page-hero__inner {
		animation: none;
	}
}

@media (max-width: 768px) {
	.zest-page-hero {
		min-height: 0;
		padding: 72px 20px 18px;
	}
	.zest-page-hero__title {
		margin-bottom: 18px;
	}
	.zest-page-hero__lead {
		text-align: left;
	}
	.zest-page-hero + .zest-section {
		padding-top: 20px;
	}
}

/* --------------------------------------------------------------------------
   D-2.3 3つの視覚化サマリーカード（Section 1）
   -------------------------------------------------------------------------- */
.zest-vis-cards {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 28px;
}

.zest-vis-card {
	display: flex;
	flex-direction: column;
	align-items: center;
	background: #ffffff;
	border-radius: 20px;
	padding: 40px 28px 32px;
	box-shadow: var(--zest-shadow-sm);
	border-top: 4px solid var(--zest-color-primary);
	text-decoration: none;
	color: inherit;
	transition: transform 0.3s ease, box-shadow 0.3s ease;
	position: relative;
}

.zest-vis-card:hover {
	transform: translateY(-6px);
	box-shadow: var(--zest-shadow-lg);
}

.zest-vis-card__media {
	width: 168px;
	height: 168px;
	border-radius: 50%;
	overflow: hidden;
	margin-bottom: 22px;
	box-shadow: 0 6px 18px rgba(0, 132, 209, 0.18);
	flex-shrink: 0;
}

.zest-vis-card__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.zest-vis-card__num {
	font-family: "Inter", "Helvetica Neue", Arial, sans-serif;
	font-size: 1.6rem;
	font-weight: 800;
	letter-spacing: 0.12em;
	background: linear-gradient(120deg, #0084d1, #38b6ff);
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
	color: transparent;
	margin-bottom: 14px;
	position: relative;
}

.zest-vis-card__num::after {
	content: "";
	display: block;
	width: 32px;
	height: 2px;
	margin: 6px auto 0;
	border-radius: 2px;
	background: linear-gradient(90deg, #0084d1, #38b6ff, #b8e3ff);
}

.zest-vis-card__desc {
	font-size: 0.94rem;
	line-height: 1.9;
	color: var(--zest-color-text-sub);
	margin: 0;
	text-align: center;
}

@media (max-width: 900px) {
	.zest-vis-cards {
		grid-template-columns: 1fr;
		gap: 22px;
		max-width: 460px;
		margin: 0 auto;
	}
	.zest-vis-card {
		padding: 32px 24px 28px;
	}
	.zest-vis-card__media {
		width: 140px;
		height: 140px;
		margin-bottom: 18px;
	}
}

/* --------------------------------------------------------------------------
   D-2.4 視覚化詳細セクション 01 / 02 （2カラム + 装飾番号）
   -------------------------------------------------------------------------- */
.zest-vis-detail {
	position: relative;
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 56px;
	/* テキストは透かし数字と整合するよう上揃え。画像は内部で中央配置されるため、
	   grid 全体は start にしてテキスト側に余分な余白が出ないようにする。 */
	align-items: start;
	max-width: 1080px;
	margin: 0 auto;
}

/* 画像側のフレームは grid セル内で垂直中央に配置（余白でバランスを取る） */
.zest-vis-detail__media {
	align-self: center;
}

.zest-vis-detail--reverse .zest-vis-detail__body {
	order: 2;
}

.zest-vis-detail--reverse .zest-vis-detail__media {
	order: 1;
}

.zest-vis-detail__num {
	position: absolute;
	top: -94px;
	left: 0;
	font-family: "Inter", "Helvetica Neue", Arial, sans-serif;
	/* タイトルバナーに被らないようサイズ抑えめ + line-height でキャップ高さを抑える */
	font-size: clamp(5rem, 11vw, 8.5rem);
	font-weight: 900;
	line-height: 0.9;
	letter-spacing: -0.02em;
	background: linear-gradient(120deg, rgba(0, 132, 209, 0.10), rgba(56, 182, 255, 0.05));
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
	color: transparent;
	pointer-events: none;
	z-index: 0;
}

/* テキスト本体は透かし数字の下端と被らないよう余白を確保 */
.zest-vis-detail__body {
	padding-top: 28px;
}

/* reverse のときは透かし数字を「テキスト側（右上）」に追従させる
   → 結果として「常にテキストエリアの上に数字がある」配置で統一される */
.zest-vis-detail--reverse .zest-vis-detail__num {
	left: auto;
	right: 0;
	text-align: right;
}

.zest-vis-detail__body {
	position: relative;
	z-index: 1;
}

.zest-vis-detail__sub {
	display: inline-block;
	font-size: 0.82rem;
	font-weight: 700;
	color: var(--zest-color-primary-dark);
	letter-spacing: 0.24em;
	text-transform: uppercase;
	margin-bottom: 12px;
}

.zest-vis-detail__title {
	font-size: clamp(1.4rem, 2.6vw, 1.9rem);
	font-weight: 800;
	color: var(--zest-color-text);
	line-height: 1.45;
	margin: 0 0 20px;
}

.zest-vis-detail__text {
	font-size: 1rem;
	line-height: 2;
	color: var(--zest-color-text);
	margin: 0;
}

.zest-vis-detail__media {
	position: relative;
	z-index: 1;
}

.zest-vis-detail__media-frame {
	background: #ffffff;
	border-radius: 18px;
	padding: 28px;
	box-shadow: var(--zest-shadow-md);
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 14px;
}

.zest-vis-detail__media-frame img {
	max-width: 100%;
	height: auto;
	display: block;
	border-radius: 8px;
}

.zest-vis-detail__media-caption {
	font-size: 0.84rem;
	color: var(--zest-color-text-sub);
	line-height: 1.7;
	text-align: center;
	margin: 0;
}

/* 02 やるべきこと: メイン画像 + サブ画像（2点を縦に） */
.zest-vis-detail__media--stack .zest-vis-detail__media-frame {
	gap: 18px;
}

.zest-vis-detail__media--stack img + img {
	margin-top: 4px;
}

/* 03 学力の成長: 画像エリアに3ステップミニ進捗を埋め込む */
.zest-vis-detail__media--progress .zest-vis-detail__media-frame {
	padding: 24px 22px 22px;
}

.zest-mini-progress {
	display: grid;
	grid-template-columns: 1fr auto 1fr auto 1fr;
	gap: 10px;
	align-items: center;
	width: 100%;
}

.zest-mini-progress__step {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 6px;
	min-width: 0;
}

.zest-mini-progress__img {
	width: 100%;
	max-width: 130px;
	aspect-ratio: 1 / 1;
	overflow: hidden;
	display: flex;
	align-items: center;
	justify-content: center;
}

.zest-mini-progress__img img {
	width: 100%;
	height: auto;
	display: block;
}

.zest-mini-progress__month {
	font-family: "Inter", "Helvetica Neue", Arial, sans-serif;
	font-size: 0.92rem;
	font-weight: 800;
	color: var(--zest-color-primary-dark);
	letter-spacing: 0.05em;
	line-height: 1.1;
}

.zest-mini-progress__stage {
	font-size: 0.72rem;
	font-weight: 700;
	color: var(--zest-color-text-sub);
	letter-spacing: 0.04em;
}

.zest-mini-progress__step--last .zest-mini-progress__stage {
	color: var(--zest-color-secondary-dark);
}

.zest-mini-progress__arrow {
	display: flex;
	align-items: center;
	color: var(--zest-color-primary);
}

.zest-mini-progress__arrow::before {
	content: "";
	width: 14px;
	height: 2px;
	background: linear-gradient(90deg, var(--zest-color-primary), var(--zest-color-primary-dark));
}

.zest-mini-progress__arrow::after {
	content: "";
	width: 0;
	height: 0;
	border-left: 8px solid var(--zest-color-primary-dark);
	border-top: 5px solid transparent;
	border-bottom: 5px solid transparent;
	margin-left: -2px;
}

@media (max-width: 600px) {
	.zest-mini-progress {
		grid-template-columns: 1fr auto 1fr auto 1fr;
		gap: 4px;
	}
	.zest-mini-progress__img {
		max-width: 92px;
	}
	.zest-mini-progress__month {
		font-size: 0.82rem;
	}
	.zest-mini-progress__stage {
		font-size: 0.66rem;
	}
	.zest-mini-progress__arrow::before {
		width: 8px;
	}
	.zest-mini-progress__arrow::after {
		border-left: 6px solid var(--zest-color-primary-dark);
		border-top: 4px solid transparent;
		border-bottom: 4px solid transparent;
	}
}

@media (max-width: 900px) {
	.zest-vis-detail {
		grid-template-columns: 1fr;
		gap: 32px;
	}
	.zest-vis-detail--reverse .zest-vis-detail__body,
	.zest-vis-detail--reverse .zest-vis-detail__media {
		order: initial;
	}
	.zest-vis-detail__num {
		top: -64px;
		font-size: clamp(3.5rem, 14vw, 5.6rem);
	}
	.zest-vis-detail__body {
		padding-top: 22px;
	}
	.zest-vis-detail__media-frame {
		padding: 20px;
	}
}

/* --------------------------------------------------------------------------
   D-2.5 学力の成長 ステップ表示（Section 4）
   3段（初期 → 中間 → 達成）を矢印でつなぐ
   -------------------------------------------------------------------------- */
.zest-vis-progress {
	display: grid;
	grid-template-columns: 1fr auto 1fr auto 1fr;
	gap: 18px;
	align-items: stretch;
	max-width: 1000px;
	margin: 0 auto 40px;
}

.zest-vis-progress__step {
	background: #ffffff;
	border-radius: 16px;
	padding: 24px 20px 20px;
	box-shadow: var(--zest-shadow-sm);
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 14px;
	border-top: 3px solid var(--zest-color-primary);
}

.zest-vis-progress__step--first {
	border-top-color: rgba(56, 182, 255, 0.55);
}

.zest-vis-progress__step--last {
	border-top-color: var(--zest-color-secondary);
}

.zest-vis-progress__label {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 4px;
	text-align: center;
}

.zest-vis-progress__month {
	font-family: "Inter", "Helvetica Neue", Arial, sans-serif;
	font-size: 1.1rem;
	font-weight: 800;
	color: var(--zest-color-primary-dark);
	letter-spacing: 0.06em;
}

.zest-vis-progress__stage {
	font-size: 0.82rem;
	font-weight: 700;
	color: var(--zest-color-text-sub);
	letter-spacing: 0.04em;
}

.zest-vis-progress__step--last .zest-vis-progress__stage {
	color: var(--zest-color-secondary-dark);
}

.zest-vis-progress__media {
	width: 100%;
	max-width: 220px;
}

.zest-vis-progress__media img {
	width: 100%;
	height: auto;
	display: block;
}

/* PC: 横向き矢印（CSSのみで作成） */
.zest-vis-progress__arrow {
	display: flex;
	align-items: center;
	justify-content: center;
	color: var(--zest-color-primary);
}

.zest-vis-progress__arrow::before {
	content: "";
	width: 28px;
	height: 2px;
	background: linear-gradient(90deg, var(--zest-color-primary), var(--zest-color-primary-dark));
	position: relative;
}

.zest-vis-progress__arrow::after {
	content: "";
	width: 0;
	height: 0;
	border-left: 10px solid var(--zest-color-primary-dark);
	border-top: 7px solid transparent;
	border-bottom: 7px solid transparent;
	margin-left: -2px;
}

.zest-vis-progress-caption {
	max-width: 720px;
	margin: 0 auto;
	text-align: center;
	color: var(--zest-color-text-sub);
	font-size: 0.92rem;
	line-height: 1.9;
}

.zest-vis-progress-caption strong {
	color: var(--zest-color-text);
	font-weight: 700;
}

@media (max-width: 900px) {
	.zest-vis-progress {
		grid-template-columns: 1fr;
		gap: 14px;
		max-width: 340px;
	}
	/* SP: 矢印を縦向きに */
	.zest-vis-progress__arrow {
		justify-content: center;
		padding: 4px 0;
	}
	.zest-vis-progress__arrow::before {
		width: 2px;
		height: 22px;
		background: linear-gradient(180deg, var(--zest-color-primary), var(--zest-color-primary-dark));
	}
	.zest-vis-progress__arrow::after {
		border-left: 7px solid transparent;
		border-right: 7px solid transparent;
		border-top: 10px solid var(--zest-color-primary-dark);
		border-bottom: 0;
		margin-left: 0;
		margin-top: -2px;
	}
	.zest-vis-progress__step {
		padding: 20px 18px 16px;
	}
	.zest-vis-progress__media {
		max-width: 200px;
	}
}

/* --------------------------------------------------------------------------
   D-2.6 受験コンパス導入セクション（PDCA サイクル）
   既存の3つの視覚化を「どう運用するか」を示すセクション
   -------------------------------------------------------------------------- */
.zest-compass {
	max-width: 1100px;
	margin: 0 auto;
}

.zest-compass__intro {
	display: grid;
	grid-template-columns: 1.05fr 1fr;
	gap: 48px;
	align-items: center;
	background: #ffffff;
	border-radius: 22px;
	padding: 44px 44px;
	box-shadow: var(--zest-shadow-md);
	margin-bottom: 56px;
	border-left: 5px solid var(--zest-color-primary);
}

.zest-compass__intro-body {
	min-width: 0;
}

.zest-compass__logo {
	margin: 0 0 22px;
}

.zest-compass__logo img {
	max-width: 360px;
	width: 100%;
	height: auto;
	display: block;
}

.zest-compass__lead {
	font-size: 1rem;
	line-height: 2;
	color: var(--zest-color-text);
	margin: 0;
}

.zest-compass__cycle {
	margin: 0;
	display: flex;
	justify-content: center;
}

.zest-compass__cycle img {
	max-width: 100%;
	height: auto;
	display: block;
	border-radius: 12px;
}

.zest-pdca-cards {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 22px;
}

.zest-pdca-card {
	background: #ffffff;
	border-radius: 16px;
	overflow: hidden;
	box-shadow: var(--zest-shadow-sm);
	display: flex;
	flex-direction: column;
	transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.zest-pdca-card:hover {
	transform: translateY(-4px);
	box-shadow: var(--zest-shadow-lg);
}

.zest-pdca-card__head {
	padding: 18px 20px 14px;
	color: #ffffff;
	display: flex;
	align-items: baseline;
	gap: 10px;
}

.zest-pdca-card--plan .zest-pdca-card__head {
	background: linear-gradient(135deg, #2962cf 0%, #4084e6 100%);
}

.zest-pdca-card--do .zest-pdca-card__head {
	background: linear-gradient(135deg, #d92e3a 0%, #ff5763 100%);
}

.zest-pdca-card--check .zest-pdca-card__head {
	background: linear-gradient(135deg, #d68a00 0%, #f3a200 100%);
	text-shadow: 0 1px 1px rgba(0, 0, 0, 0.18);
}

.zest-pdca-card--action .zest-pdca-card__head {
	background: linear-gradient(135deg, #2c9e54 0%, #4cc97a 100%);
}

.zest-pdca-card__phase {
	font-family: "Inter", "Helvetica Neue", Arial, sans-serif;
	font-size: 1.1rem;
	font-weight: 800;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}

.zest-pdca-card__phase-jp {
	font-size: 1.05rem;
	font-weight: 800;
	letter-spacing: 0.06em;
}

.zest-pdca-card__media {
	background: #f5fbff;
	padding: 16px;
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 130px;
}

.zest-pdca-card__media img {
	max-width: 100%;
	max-height: 140px;
	width: auto;
	height: auto;
	display: block;
	border-radius: 6px;
	box-shadow: 0 2px 6px rgba(26, 43, 60, 0.08);
}

.zest-pdca-card__body {
	padding: 18px 20px 22px;
	flex: 1;
}

.zest-pdca-card__title {
	font-size: 1rem;
	font-weight: 800;
	color: var(--zest-color-text);
	letter-spacing: 0.02em;
	margin: 0 0 10px;
	line-height: 1.5;
}

.zest-pdca-card__text {
	font-size: 0.88rem;
	line-height: 1.85;
	color: var(--zest-color-text-sub);
	margin: 0;
}

@media (max-width: 1024px) {
	.zest-pdca-cards {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (max-width: 900px) {
	.zest-compass__intro {
		grid-template-columns: 1fr;
		gap: 28px;
		padding: 32px 26px;
		margin-bottom: 36px;
	}
	.zest-compass__logo img {
		margin: 0 auto;
	}
	.zest-compass__lead {
		font-size: 0.95rem;
		line-height: 1.95;
	}
}

@media (max-width: 600px) {
	.zest-pdca-cards {
		grid-template-columns: 1fr;
		gap: 16px;
	}
	.zest-pdca-card__media {
		min-height: 100px;
	}
}

/* --------------------------------------------------------------------------
   D-2.7 研究体制セクション
   -------------------------------------------------------------------------- */
.zest-research {
	max-width: 1000px;
	margin: 0 auto;
	background: #ffffff;
	border-radius: 22px;
	padding: 48px 44px;
	box-shadow: var(--zest-shadow-md);
	border-left: 5px solid var(--zest-color-primary);
}

.zest-research__head {
	display: flex;
	align-items: center;
	gap: 18px;
	margin-bottom: 24px;
	padding-bottom: 22px;
	border-bottom: 1px solid var(--zest-color-border);
}

.zest-research__head img {
	width: 64px;
	height: auto;
	flex-shrink: 0;
}

.zest-research__head-title {
	font-size: clamp(1.2rem, 2.4vw, 1.55rem);
	font-weight: 800;
	color: var(--zest-color-text);
	letter-spacing: 0.04em;
	margin: 0;
}

.zest-research__body {
	font-size: 1rem;
	line-height: 2;
	color: var(--zest-color-text);
	margin: 0 0 28px;
}

.zest-research__media {
	border-radius: 14px;
	overflow: hidden;
	box-shadow: var(--zest-shadow-sm);
	margin: 0;
}

.zest-research__media img {
	width: 100%;
	height: auto;
	display: block;
}

.zest-research__media-caption {
	margin: 14px 0 0;
	text-align: center;
	font-size: 0.86rem;
	color: var(--zest-color-text-sub);
}

@media (max-width: 768px) {
	.zest-research {
		padding: 32px 22px;
		border-radius: 18px;
	}
	.zest-research__head {
		gap: 14px;
		margin-bottom: 18px;
		padding-bottom: 18px;
	}
	.zest-research__head img {
		width: 48px;
	}
	.zest-research__body {
		font-size: 0.95rem;
		line-height: 1.95;
		margin-bottom: 22px;
	}
}

/* ==========================================================================
   ★ D-3: 検討中の方へ（admission-information）専用スタイル
   ========================================================================== */

/* --------------------------------------------------------------------------
   D-3.1 admission-information: 背景 + ラッパー透明化
   -------------------------------------------------------------------------- */
body.admission-information {
	background: #ffffff;
	position: relative;
}

body.admission-information::before {
	content: "";
	position: fixed;
	inset: 0;
	z-index: -1;
	pointer-events: none;
	/* 全ページ統一: ホームと同じ青モヤ + オレンジモヤ */
	background:
		radial-gradient(circle 90vmax at 12% 22%, rgba(56, 182, 255, 0.22) 0%, rgba(56, 182, 255, 0.10) 30%, rgba(56, 182, 255, 0) 60%),
		radial-gradient(circle 90vmax at 88% 78%, rgba(255, 140, 66, 0.18) 0%, rgba(255, 140, 66, 0.08) 30%, rgba(255, 140, 66, 0) 60%);
	filter: blur(30px);
}

body.admission-information .l-contents,
body.admission-information .l-contents__main,
body.admission-information .l-contents__inner,
body.admission-information .l-main,
body.admission-information .c-entry,
body.admission-information .c-entry__body,
body.admission-information .c-entry__content,
body.admission-information .p-entry-content {
	background: transparent !important;
}

body.admission-information .c-entry,
body.admission-information .c-entry__body,
body.admission-information .c-entry__content,
body.admission-information .p-entry-content,
body.admission-information .c-entry__header,
body.admission-information .l-contents__main {
	padding: 0 !important;
	margin: 0 !important;
}

body.admission-information .c-entry__content > :first-child,
body.admission-information .p-entry-content > :first-child {
	margin-top: 0 !important;
}

body.admission-information .zest-section--alt {
	background: transparent !important;
}

body.admission-information .c-entry__header {
	display: none !important;
}

/* --------------------------------------------------------------------------
   D-3.2 Section 1: こんなお悩みありませんか？
   -------------------------------------------------------------------------- */
.zest-worry {
	max-width: 1080px;
	margin: 0 auto;
}

.zest-worry__layout {
	display: grid;
	grid-template-columns: 1fr auto 1fr;
	gap: 28px;
	align-items: stretch;
}

.zest-worry__side {
	background: #ffffff;
	border-radius: 22px;
	padding: 32px 28px;
	box-shadow: var(--zest-shadow-md);
	display: flex;
	flex-direction: column;
	gap: 18px;
}

.zest-worry__side--problem {
	border-top: 4px solid #ffd54a;
}

.zest-worry__side--solution {
	border-top: 4px solid var(--zest-color-primary);
}

.zest-worry__head {
	display: flex;
	align-items: center;
	gap: 14px;
}

.zest-worry__head img {
	width: 80px;
	height: 80px;
	object-fit: contain;
	flex-shrink: 0;
}

.zest-worry__head-label {
	display: block;
	font-size: 0.78rem;
	font-weight: 700;
	letter-spacing: 0.22em;
	color: var(--zest-color-text-sub);
	text-transform: uppercase;
	margin-bottom: 4px;
}

.zest-worry__head-title {
	font-size: 1.2rem;
	font-weight: 800;
	color: var(--zest-color-text);
	margin: 0;
	line-height: 1.45;
}

.zest-worry__list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.zest-worry__list li {
	position: relative;
	padding: 10px 12px 10px 38px;
	background: #fff8df;
	border-radius: 10px;
	font-size: 0.95rem;
	line-height: 1.6;
	color: var(--zest-color-text);
	font-weight: 500;
}

.zest-worry__list li::before {
	content: "";
	position: absolute;
	left: 12px;
	top: 50%;
	width: 16px;
	height: 16px;
	transform: translateY(-50%);
	border-radius: 50%;
	background: #ffd54a;
}

.zest-worry__list li::after {
	content: "?";
	position: absolute;
	left: 14px;
	top: 50%;
	transform: translateY(-50%);
	font-size: 0.75rem;
	font-weight: 800;
	color: #6b5400;
	width: 12px;
	text-align: center;
}

.zest-worry__solution-text {
	margin: 0;
	font-size: 1rem;
	line-height: 1.95;
	color: var(--zest-color-text);
}

.zest-worry__solution-text strong {
	color: var(--zest-color-primary-dark);
	font-weight: 800;
}

.zest-worry__catch {
	margin: 6px 0 0;
	font-size: 1.18rem;
	font-weight: 800;
	letter-spacing: 0.04em;
	background: linear-gradient(120deg, #0084d1, #38b6ff);
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
	color: transparent;
}

/* 中央の矢印（PC: 横向き / SP: 縦向き、CSSのみで作成） */
.zest-worry__arrow {
	display: flex;
	align-items: center;
	justify-content: center;
	color: var(--zest-color-primary);
	min-width: 60px;
}

.zest-worry__arrow::before {
	content: "";
	width: 38px;
	height: 4px;
	background: linear-gradient(90deg, var(--zest-color-primary), var(--zest-color-primary-dark));
	border-radius: 2px;
}

.zest-worry__arrow::after {
	content: "";
	width: 0;
	height: 0;
	border-left: 14px solid var(--zest-color-primary-dark);
	border-top: 9px solid transparent;
	border-bottom: 9px solid transparent;
	margin-left: -3px;
}

@media (max-width: 900px) {
	.zest-worry__layout {
		grid-template-columns: 1fr;
		gap: 14px;
	}
	.zest-worry__side {
		padding: 26px 22px;
	}
	.zest-worry__head img {
		width: 64px;
		height: 64px;
	}
	.zest-worry__head-title {
		font-size: 1.05rem;
	}
	.zest-worry__arrow {
		/* SP: ::before(線) と ::after(三角) を縦並びにして下向き矢印を構成 */
		flex-direction: column;
		min-width: 0;
		padding: 6px 0;
	}
	.zest-worry__arrow::before {
		width: 4px;
		height: 28px;
		background: linear-gradient(180deg, var(--zest-color-primary), var(--zest-color-primary-dark));
		border-radius: 2px;
	}
	.zest-worry__arrow::after {
		border-left: 10px solid transparent;
		border-right: 10px solid transparent;
		border-top: 14px solid var(--zest-color-primary-dark);
		border-bottom: 0;
		margin-left: 0;
		margin-top: -2px;
	}
	.zest-worry__catch {
		font-size: 1.05rem;
	}
}

/* --------------------------------------------------------------------------
   D-3.3 Section 2: 10の理由カルーセル
   中央のカード = 等倍、左右に縮小表示、JS で位置制御
   -------------------------------------------------------------------------- */
.zest-reasons-carousel {
	max-width: 1200px;
	margin: 0 auto;
	position: relative;
}

.zest-reasons-carousel__viewport {
	position: relative;
	width: 100%;
	height: 380px;
	overflow: hidden;
	perspective: 1400px;
}

.zest-reasons-carousel__track {
	position: relative;
	width: 100%;
	height: 100%;
}

.zest-reason-card {
	--offset: 0;
	--abs-offset: 0;
	--card-width: 320px;
	position: absolute;
	top: 50%;
	left: 50%;
	width: var(--card-width);
	height: 340px;
	margin-left: calc(var(--card-width) / -2);
	margin-top: -170px;
	background: #ffffff;
	border-radius: 22px;
	padding: 32px 28px;
	box-shadow: var(--zest-shadow-lg);
	border-top: 4px solid var(--zest-color-primary);
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	cursor: pointer;
	user-select: none;
	transform-origin: center;
	transform:
		translateX(calc(var(--offset) * 220px))
		scale(calc(1 - var(--abs-offset) * 0.14));
	opacity: calc(1 - var(--abs-offset) * 0.28);
	z-index: calc(10 - var(--abs-offset));
	transition:
		transform 0.55s cubic-bezier(0.2, 0.7, 0.2, 1),
		opacity 0.4s ease,
		box-shadow 0.3s ease;
	pointer-events: auto;
}

/* 4枚以上離れたカードは完全に非表示（パフォーマンス） */
.zest-reason-card[data-hidden="true"] {
	opacity: 0;
	pointer-events: none;
}

.zest-reason-card[data-active="true"] {
	box-shadow: 0 24px 48px rgba(0, 132, 209, 0.20);
	border-top-color: var(--zest-color-primary-dark);
}

.zest-reason-card__num {
	font-family: "Inter", "Helvetica Neue", Arial, sans-serif;
	font-size: 0.9rem;
	font-weight: 800;
	letter-spacing: 0.16em;
	color: var(--zest-color-primary-dark);
	margin-bottom: 14px;
}

.zest-reason-card__icon {
	width: 76px;
	height: 76px;
	border-radius: 50%;
	background: linear-gradient(135deg, #38b6ff 0%, #0084d1 100%);
	display: flex;
	align-items: center;
	justify-content: center;
	color: #ffffff;
	font-size: 1.85rem;
	margin: 0 auto 22px;
	box-shadow: 0 10px 24px rgba(0, 132, 209, 0.32);
	position: relative;
	flex-shrink: 0;
}

.zest-reason-card__icon::before {
	content: "";
	position: absolute;
	inset: -5px;
	border: 2px solid rgba(56, 182, 255, 0.22);
	border-radius: 50%;
}

.zest-reason-card__title {
	font-size: 1.1rem;
	font-weight: 800;
	color: var(--zest-color-text);
	line-height: 1.5;
	margin: 0 0 14px;
	letter-spacing: 0.02em;
}

.zest-reason-card__text {
	font-size: 0.88rem;
	line-height: 1.85;
	color: var(--zest-color-text-sub);
	margin: 0;
	flex: 1;
}

/* ナビボタン */
.zest-reasons-carousel__nav {
	display: flex;
	justify-content: center;
	gap: 18px;
	margin-top: 28px;
}

.zest-reasons-carousel__btn {
	width: 52px;
	height: 52px;
	border-radius: 50%;
	border: 2px solid var(--zest-color-primary);
	background: #ffffff;
	color: var(--zest-color-primary);
	font-size: 1.1rem;
	display: flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	transition: all 0.25s ease;
	-webkit-tap-highlight-color: transparent;
}

.zest-reasons-carousel__btn:hover,
.zest-reasons-carousel__btn:focus-visible {
	background: var(--zest-color-primary);
	color: #ffffff;
	transform: translateY(-2px);
	box-shadow: var(--zest-shadow-md);
	outline: none;
}

.zest-reasons-carousel__btn i {
	pointer-events: none;
}

/* ドット */
.zest-reasons-carousel__dots {
	display: flex;
	justify-content: center;
	gap: 8px;
	margin-top: 18px;
}

.zest-reasons-carousel__dot {
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: rgba(56, 182, 255, 0.30);
	border: none;
	cursor: pointer;
	padding: 0;
	transition: all 0.25s ease;
}

.zest-reasons-carousel__dot[data-active="true"] {
	width: 26px;
	border-radius: 4px;
	background: linear-gradient(90deg, #0084d1, #38b6ff);
}

.zest-reasons-carousel__dot:hover {
	background: var(--zest-color-primary);
}

@media (max-width: 768px) {
	.zest-reasons-carousel__viewport {
		height: 400px;
	}
	.zest-reason-card {
		--card-width: 290px;
		height: 360px;
		padding: 30px 24px;
		margin-top: -180px;
		transform:
			translateX(calc(var(--offset) * 180px))
			scale(calc(1 - var(--abs-offset) * 0.16));
	}
	.zest-reason-card__num {
		font-size: 0.84rem;
		margin-bottom: 12px;
	}
	.zest-reason-card__icon {
		width: 68px;
		height: 68px;
		font-size: 1.65rem;
		margin-bottom: 18px;
	}
	.zest-reason-card__title {
		font-size: 1.06rem;
		line-height: 1.5;
		margin-bottom: 12px;
	}
	.zest-reason-card__text {
		font-size: 0.9rem;
		line-height: 1.85;
	}
}

@media (max-width: 480px) {
	.zest-reasons-carousel__viewport {
		height: 380px;
	}
	.zest-reason-card {
		--card-width: 260px;
		height: 340px;
		padding: 26px 20px;
		margin-top: -170px;
		transform:
			translateX(calc(var(--offset) * 145px))
			scale(calc(1 - var(--abs-offset) * 0.20));
	}
	.zest-reason-card__icon {
		width: 62px;
		height: 62px;
		font-size: 1.5rem;
		margin-bottom: 14px;
	}
	.zest-reason-card__title {
		font-size: 1rem;
	}
	.zest-reason-card__text {
		font-size: 0.86rem;
		line-height: 1.8;
	}
}

/* prefers-reduced-motion: 動きを最小化 */
@media (prefers-reduced-motion: reduce) {
	.zest-reason-card {
		transition: opacity 0.2s ease;
	}
}

/* --------------------------------------------------------------------------
   D-3.4 Section 3: 提供サービス
   タグ式ピル + 教室写真の2カラム
   -------------------------------------------------------------------------- */
.zest-services {
	max-width: 1080px;
	margin: 0 auto;
}

.zest-services__layout {
	display: grid;
	grid-template-columns: 1.1fr 1fr;
	gap: 48px;
	align-items: stretch;
}

.zest-services__body {
	background: #ffffff;
	border-radius: 22px;
	padding: 40px 36px;
	box-shadow: var(--zest-shadow-md);
	border-left: 5px solid var(--zest-color-primary);
}

.zest-services__lead {
	margin: 0 0 22px;
	font-size: 1rem;
	line-height: 1.95;
	color: var(--zest-color-text);
}

.zest-services__tags {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
}

.zest-services__tag {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 10px 16px;
	background: rgba(56, 182, 255, 0.10);
	color: var(--zest-color-primary-dark);
	border-radius: 999px;
	font-size: 0.9rem;
	font-weight: 700;
	letter-spacing: 0.02em;
}

.zest-services__tag i {
	font-size: 0.82rem;
	opacity: 0.8;
}

.zest-services__tag--option {
	background: rgba(255, 140, 66, 0.12);
	color: var(--zest-color-secondary-dark);
}

.zest-services__note {
	margin: 18px 0 0;
	font-size: 0.84rem;
	color: var(--zest-color-text-sub);
}

.zest-services__media {
	border-radius: 22px;
	overflow: hidden;
	box-shadow: var(--zest-shadow-md);
	background: #f5f5f5;
	min-height: 260px;
	position: relative;
}

.zest-services__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.zest-services__media-caption {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	padding: 18px 22px;
	background: linear-gradient(180deg, transparent, rgba(0, 32, 64, 0.78));
	color: #ffffff;
	font-size: 0.92rem;
	font-weight: 700;
	letter-spacing: 0.04em;
	margin: 0;
}

@media (max-width: 900px) {
	.zest-services__layout {
		grid-template-columns: 1fr;
		gap: 24px;
	}
	.zest-services__body {
		padding: 30px 24px;
	}
	.zest-services__media {
		min-height: 220px;
	}
}

/* --------------------------------------------------------------------------
   D-3.5 Section 4: あなたに合う組み合わせを提案
   個別指導だけ vs +学習管理 の2カード並列
   -------------------------------------------------------------------------- */
.zest-combine {
	max-width: 1080px;
	margin: 0 auto;
}

.zest-combine__intro {
	text-align: center;
	max-width: 720px;
	margin: 0 auto 36px;
	font-size: 1rem;
	line-height: 1.95;
	color: var(--zest-color-text);
}

.zest-combine__intro strong {
	color: var(--zest-color-primary-dark);
}

.zest-combine__cards {
	display: grid;
	grid-template-columns: 1fr auto 1fr;
	gap: 24px;
	align-items: stretch;
}

.zest-combine__card {
	background: #ffffff;
	border-radius: 22px;
	padding: 38px 34px 34px;
	box-shadow: var(--zest-shadow-md);
	display: flex;
	flex-direction: column;
	position: relative;
	overflow: hidden;
}

.zest-combine__card--basic {
	border-top: 4px solid var(--zest-color-primary);
}

.zest-combine__card--plus {
	border-top: 4px solid var(--zest-color-secondary);
	background: linear-gradient(160deg, #ffffff 0%, #fff7f0 100%);
}

.zest-combine__card-label {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 5px 14px;
	background: rgba(56, 182, 255, 0.12);
	color: var(--zest-color-primary-dark);
	border-radius: 999px;
	font-size: 0.74rem;
	font-weight: 800;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	margin-bottom: 14px;
	align-self: flex-start;
}

.zest-combine__card--plus .zest-combine__card-label {
	background: rgba(255, 140, 66, 0.16);
	color: var(--zest-color-secondary-dark);
}

.zest-combine__card-title {
	font-size: 1.32rem;
	font-weight: 800;
	color: var(--zest-color-text);
	letter-spacing: 0.02em;
	margin: 0 0 12px;
	line-height: 1.45;
}

.zest-combine__card-desc {
	font-size: 0.95rem;
	line-height: 1.9;
	color: var(--zest-color-text-sub);
	margin: 0 0 22px;
}

.zest-combine__card-features {
	list-style: none;
	margin: 0 0 22px;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 8px;
}

.zest-combine__card-features li {
	position: relative;
	padding-left: 22px;
	font-size: 0.92rem;
	line-height: 1.7;
	color: var(--zest-color-text);
}

.zest-combine__card-features li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0.55em;
	width: 12px;
	height: 12px;
	border-radius: 50%;
	background: linear-gradient(135deg, #38b6ff, #0084d1);
}

.zest-combine__card--plus .zest-combine__card-features li::before {
	background: linear-gradient(135deg, #ff8c42, #e57028);
}

.zest-combine__card-fit {
	margin-top: auto;
	padding: 14px 16px;
	background: rgba(56, 182, 255, 0.06);
	border-radius: 12px;
	font-size: 0.86rem;
	line-height: 1.7;
	color: var(--zest-color-text-sub);
}

.zest-combine__card-fit strong {
	color: var(--zest-color-text);
	font-weight: 700;
}

.zest-combine__card--plus .zest-combine__card-fit {
	background: rgba(255, 140, 66, 0.08);
}

/* 中央の +（プラス）記号 */
.zest-combine__plus {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 60px;
	font-size: 2rem;
	font-weight: 800;
	color: var(--zest-color-primary-dark);
	background: transparent;
}

.zest-combine__plus span {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 56px;
	height: 56px;
	border-radius: 50%;
	background: #ffffff;
	box-shadow: var(--zest-shadow-md);
	font-size: 1.6rem;
}

.zest-combine__cta {
	text-align: center;
	margin-top: 36px;
	font-size: 0.95rem;
	color: var(--zest-color-text-sub);
}

.zest-combine__cta a {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 12px 28px;
	margin-left: 12px;
	border: 2px solid var(--zest-color-primary);
	color: var(--zest-color-primary-dark) !important;
	font-weight: 700;
	border-radius: 999px;
	text-decoration: none !important;
	transition: all 0.25s ease;
	font-size: 0.92rem;
}

.zest-combine__cta a:hover {
	background: var(--zest-color-primary);
	color: #ffffff !important;
}

@media (max-width: 900px) {
	.zest-combine__cards {
		grid-template-columns: 1fr;
		gap: 16px;
	}
	.zest-combine__plus {
		width: auto;
		padding: 4px 0;
	}
	.zest-combine__plus span {
		width: 44px;
		height: 44px;
		font-size: 1.4rem;
	}
	.zest-combine__card {
		padding: 30px 24px;
	}
	.zest-combine__cta {
		margin-top: 24px;
	}
	.zest-combine__cta a {
		display: flex;
		justify-content: center;
		margin: 14px auto 0;
		max-width: 320px;
	}
}

/* ==========================================================================
   ★ D-4: システム・学費（system）専用スタイル
   学年タブ切替で情報量を圧縮、見やすさを最優先
   ========================================================================== */

/* --------------------------------------------------------------------------
   D-4.1 system: 背景 + ラッパー透明化
   -------------------------------------------------------------------------- */
body.system {
	background: #ffffff;
	position: relative;
}

body.system::before {
	content: "";
	position: fixed;
	inset: 0;
	z-index: -1;
	pointer-events: none;
	/* 全ページ統一: ホームと同じ青モヤ + オレンジモヤ */
	background:
		radial-gradient(circle 90vmax at 12% 22%, rgba(56, 182, 255, 0.22) 0%, rgba(56, 182, 255, 0.10) 30%, rgba(56, 182, 255, 0) 60%),
		radial-gradient(circle 90vmax at 88% 78%, rgba(255, 140, 66, 0.18) 0%, rgba(255, 140, 66, 0.08) 30%, rgba(255, 140, 66, 0) 60%);
	filter: blur(30px);
}

body.system .l-contents,
body.system .l-contents__main,
body.system .l-contents__inner,
body.system .l-main,
body.system .c-entry,
body.system .c-entry__body,
body.system .c-entry__content,
body.system .p-entry-content {
	background: transparent !important;
}

body.system .c-entry,
body.system .c-entry__body,
body.system .c-entry__content,
body.system .p-entry-content,
body.system .c-entry__header,
body.system .l-contents__main {
	padding: 0 !important;
	margin: 0 !important;
}

body.system .c-entry__content > :first-child,
body.system .p-entry-content > :first-child {
	margin-top: 0 !important;
}

body.system .zest-section--alt {
	background: transparent !important;
}

body.system .c-entry__header {
	display: none !important;
}

/* --------------------------------------------------------------------------
   D-4.2 学年タブ
   -------------------------------------------------------------------------- */
.zest-tuition {
	max-width: 1080px;
	margin: 0 auto;
}

.zest-tuition__tabs {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 10px;
	margin: 0 0 36px;
	padding: 8px;
	background: #ffffff;
	border-radius: 999px;
	box-shadow: var(--zest-shadow-sm);
}

.zest-tuition__tab {
	flex: 1 1 auto;
	min-width: 110px;
	padding: 12px 18px;
	border: none;
	background: transparent;
	color: var(--zest-color-text-sub);
	font-size: 0.92rem;
	font-weight: 700;
	letter-spacing: 0.04em;
	border-radius: 999px;
	cursor: pointer;
	transition: all 0.25s ease;
	-webkit-tap-highlight-color: transparent;
	white-space: nowrap;
}

.zest-tuition__tab:hover {
	background: rgba(56, 182, 255, 0.08);
	color: var(--zest-color-primary-dark);
}

.zest-tuition__tab[data-active="true"] {
	background: linear-gradient(135deg, #38b6ff 0%, #0084d1 100%);
	color: #ffffff;
	box-shadow: 0 6px 14px rgba(0, 132, 209, 0.30);
}

.zest-tuition__tab[data-active="true"]:hover {
	color: #ffffff;
}

/* タブパネル */
.zest-tuition__panel {
	display: none;
	animation: zestTuitionFade 0.3s ease;
}

.zest-tuition__panel[data-active="true"] {
	display: block;
}

@keyframes zestTuitionFade {
	from {
		opacity: 0;
		transform: translateY(8px);
	}
	to {
		opacity: 1;
		transform: translateY(0);
	}
}

@media (prefers-reduced-motion: reduce) {
	.zest-tuition__panel {
		animation: none;
	}
}

/* パネルヘッド */
.zest-tuition__panel-head {
	background: #ffffff;
	border-radius: 22px;
	padding: 32px 36px;
	box-shadow: var(--zest-shadow-md);
	margin-bottom: 28px;
	border-left: 5px solid var(--zest-color-primary);
}

.zest-tuition__panel-target {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 5px 14px;
	background: rgba(56, 182, 255, 0.12);
	color: var(--zest-color-primary-dark);
	border-radius: 999px;
	font-size: 0.78rem;
	font-weight: 800;
	letter-spacing: 0.16em;
	margin-bottom: 14px;
}

.zest-tuition__panel-title {
	font-size: clamp(1.3rem, 2.5vw, 1.7rem);
	font-weight: 800;
	color: var(--zest-color-text);
	letter-spacing: 0.02em;
	margin: 0 0 12px;
	line-height: 1.5;
}

.zest-tuition__panel-desc {
	font-size: 0.95rem;
	line-height: 1.9;
	color: var(--zest-color-text-sub);
	margin: 0;
}

/* 料金カードグリッド */
.zest-tuition__price-group {
	margin-bottom: 28px;
}

.zest-tuition__price-group-title {
	font-size: 1.05rem;
	font-weight: 800;
	color: var(--zest-color-text);
	margin: 0 0 16px;
	padding: 8px 14px;
	background: rgba(56, 182, 255, 0.08);
	border-radius: 8px;
	display: flex;
	align-items: center;
	gap: 10px;
}

.zest-tuition__price-group-title i {
	color: var(--zest-color-primary-dark);
}

.zest-tuition__price-group--option .zest-tuition__price-group-title {
	background: rgba(255, 140, 66, 0.10);
}

.zest-tuition__price-group--option .zest-tuition__price-group-title i {
	color: var(--zest-color-secondary-dark);
}

.zest-tuition__price-cards {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
	gap: 14px;
}

.zest-price-card {
	background: #ffffff;
	border-radius: 14px;
	padding: 20px 22px;
	box-shadow: var(--zest-shadow-sm);
	border-top: 3px solid var(--zest-color-primary);
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.zest-price-card--option {
	border-top-color: var(--zest-color-secondary);
	background: linear-gradient(160deg, #ffffff 0%, #fff7f0 100%);
}

.zest-price-card__label {
	font-size: 0.84rem;
	font-weight: 700;
	color: var(--zest-color-text-sub);
	letter-spacing: 0.04em;
}

.zest-price-card__name {
	font-size: 1rem;
	font-weight: 800;
	color: var(--zest-color-text);
	line-height: 1.5;
	margin: 0;
}

.zest-price-card__detail {
	font-size: 0.82rem;
	line-height: 1.7;
	color: var(--zest-color-text-sub);
	margin: 0;
}

.zest-price-card__price {
	font-size: 1.45rem;
	font-weight: 800;
	color: var(--zest-color-primary-dark);
	letter-spacing: 0.02em;
	margin-top: auto;
	display: flex;
	align-items: baseline;
	gap: 4px;
}

.zest-price-card__price small {
	font-size: 0.7rem;
	color: var(--zest-color-text-sub);
	font-weight: 600;
}

.zest-price-card--option .zest-price-card__price {
	color: var(--zest-color-secondary-dark);
}

/* 料金カード内の機能リスト（オプションの内容を明示するときに使用）
   アイコンは HTML 側で <i class="fa-solid fa-check"></i> を入れる方式に統一
   （CSS 擬似要素方式は親テーマの Font Awesome 設定に依存して豆腐化することがあるため） */
.zest-price-card__features {
	list-style: none;
	margin: 4px 0 6px;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 6px;
}

.zest-price-card__features li {
	display: flex;
	align-items: flex-start;
	gap: 9px;
	font-size: 0.84rem;
	line-height: 1.6;
	color: var(--zest-color-text);
}

.zest-price-card__features li i {
	color: var(--zest-color-primary);
	font-size: 0.82rem;
	margin-top: 0.32em;
	flex-shrink: 0;
}

.zest-price-card--option .zest-price-card__features li i {
	color: var(--zest-color-secondary);
}

.zest-tuition__note {
	margin-top: 14px;
	font-size: 0.84rem;
	line-height: 1.7;
	color: var(--zest-color-text-sub);
	padding: 10px 14px;
	background: rgba(56, 182, 255, 0.06);
	border-radius: 8px;
	border-left: 3px solid rgba(56, 182, 255, 0.4);
}

/* 時間帯セクション */
.zest-schedule {
	margin-top: 28px;
	background: #ffffff;
	border-radius: 18px;
	padding: 28px 30px;
	box-shadow: var(--zest-shadow-sm);
}

.zest-schedule__title {
	font-size: 1.05rem;
	font-weight: 800;
	color: var(--zest-color-text);
	margin: 0 0 18px;
	display: flex;
	align-items: center;
	gap: 10px;
}

.zest-schedule__title i {
	color: var(--zest-color-primary-dark);
}

.zest-schedule__table {
	width: 100%;
	border-collapse: collapse;
	font-size: 0.92rem;
}

.zest-schedule__table th,
.zest-schedule__table td {
	padding: 12px 10px;
	text-align: center;
	border-bottom: 1px solid var(--zest-color-border);
}

.zest-schedule__table thead th {
	background: linear-gradient(135deg, #38b6ff, #0084d1);
	color: #ffffff;
	font-weight: 700;
	letter-spacing: 0.06em;
	border-bottom: none;
}

.zest-schedule__table thead th:first-child {
	border-top-left-radius: 8px;
}

.zest-schedule__table thead th:last-child {
	border-top-right-radius: 8px;
}

.zest-schedule__table tbody tr:hover {
	background: rgba(56, 182, 255, 0.04);
}

.zest-schedule__time {
	font-weight: 700;
	color: var(--zest-color-text);
	text-align: left;
}

.zest-schedule__check {
	color: var(--zest-color-primary-dark);
	font-size: 1.1rem;
	font-weight: 800;
}

.zest-schedule__note {
	margin: 14px 0 0;
	font-size: 0.84rem;
	color: var(--zest-color-text-sub);
	line-height: 1.7;
}

@media (max-width: 768px) {
	.zest-tuition__tabs {
		flex-wrap: nowrap;
		overflow-x: auto;
		scrollbar-width: thin;
		justify-content: flex-start;
		padding: 6px;
		gap: 6px;
		border-radius: 14px;
	}
	.zest-tuition__tabs::-webkit-scrollbar {
		height: 4px;
	}
	.zest-tuition__tabs::-webkit-scrollbar-thumb {
		background: rgba(56, 182, 255, 0.3);
		border-radius: 2px;
	}
	.zest-tuition__tab {
		flex: 0 0 auto;
		min-width: 0;
		padding: 10px 16px;
		font-size: 0.86rem;
	}
	.zest-tuition__panel-head {
		padding: 24px 22px;
		border-radius: 18px;
	}
	.zest-schedule {
		padding: 22px 18px;
	}
	.zest-schedule__table {
		font-size: 0.84rem;
	}
	.zest-schedule__table th,
	.zest-schedule__table td {
		padding: 10px 6px;
	}
	.zest-schedule__time {
		font-size: 0.78rem;
	}
}

@media (max-width: 480px) {
	.zest-tuition__price-cards {
		grid-template-columns: 1fr;
	}
}

/* --------------------------------------------------------------------------
   D-4.3 完全学習管理システム比較（高校生のみ）
   フルサポート vs シンプルサポート
   -------------------------------------------------------------------------- */
.zest-mgmt-compare {
	max-width: 1080px;
	margin: 0 auto;
}

.zest-mgmt-compare__intro {
	text-align: center;
	max-width: 720px;
	margin: 0 auto 32px;
	font-size: 1rem;
	line-height: 1.95;
	color: var(--zest-color-text);
}

.zest-mgmt-compare__cards {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 24px;
}

.zest-mgmt-card {
	background: #ffffff;
	border-radius: 22px;
	padding: 36px 32px 32px;
	box-shadow: var(--zest-shadow-md);
	display: flex;
	flex-direction: column;
}

.zest-mgmt-card--full {
	border-top: 4px solid var(--zest-color-primary);
}

.zest-mgmt-card--simple {
	border-top: 4px solid #aacde8;
}

.zest-mgmt-card__label {
	display: inline-flex;
	align-items: center;
	padding: 5px 14px;
	background: rgba(56, 182, 255, 0.14);
	color: var(--zest-color-primary-dark);
	border-radius: 999px;
	font-size: 0.74rem;
	font-weight: 800;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	margin-bottom: 12px;
	align-self: flex-start;
}

.zest-mgmt-card--simple .zest-mgmt-card__label {
	background: rgba(122, 200, 244, 0.18);
	color: #2d6c9e;
}

.zest-mgmt-card__title {
	font-size: 1.32rem;
	font-weight: 800;
	color: var(--zest-color-text);
	margin: 0 0 8px;
	line-height: 1.45;
}

.zest-mgmt-card__target {
	font-size: 0.88rem;
	color: var(--zest-color-text-sub);
	margin: 0 0 18px;
}

.zest-mgmt-card__features {
	list-style: none;
	margin: 0 0 24px;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 8px;
}

.zest-mgmt-card__features li {
	position: relative;
	padding-left: 26px;
	font-size: 0.92rem;
	line-height: 1.7;
	color: var(--zest-color-text);
}

.zest-mgmt-card__features li::before {
	content: "\f00c"; /* fa-check */
	font-family: "Font Awesome 6 Free", "Font Awesome 5 Free", sans-serif;
	font-weight: 900;
	position: absolute;
	left: 0;
	top: 0.05em;
	color: var(--zest-color-primary);
	font-size: 0.92rem;
}

.zest-mgmt-card--simple .zest-mgmt-card__features li::before {
	color: #5ea6d4;
}

.zest-mgmt-card__price-table {
	margin-top: auto;
	background: #f5fbff;
	border-radius: 12px;
	padding: 16px 18px;
}

.zest-mgmt-card__price-row {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	padding: 6px 0;
	border-bottom: 1px dotted var(--zest-color-border);
}

.zest-mgmt-card__price-row:last-child {
	border-bottom: none;
}

.zest-mgmt-card__price-grade {
	font-size: 0.86rem;
	font-weight: 700;
	color: var(--zest-color-text);
}

.zest-mgmt-card__price-amount {
	font-size: 1.05rem;
	font-weight: 800;
	color: var(--zest-color-primary-dark);
}

.zest-mgmt-card--simple .zest-mgmt-card__price-amount {
	color: #2d6c9e;
}

.zest-mgmt-compare__note {
	max-width: 720px;
	margin: 24px auto 0;
	text-align: center;
	font-size: 0.88rem;
	color: var(--zest-color-text-sub);
	line-height: 1.7;
}

@media (max-width: 768px) {
	.zest-mgmt-compare__cards {
		grid-template-columns: 1fr;
		gap: 16px;
	}
	.zest-mgmt-card {
		padding: 28px 22px;
	}
}

/* --------------------------------------------------------------------------
   D-4.4 共通項目（費用 / 割引 / 講習会）
   費用と割引は性質が異なるため、グループ見出しで明確に分離する
   -------------------------------------------------------------------------- */
.zest-fees {
	max-width: 980px;
	margin: 0 auto;
}

/* 費用・割引の各グループ */
.zest-fees__group {
	margin-bottom: 36px;
}

.zest-fees__group:last-of-type {
	margin-bottom: 0;
}

.zest-fees__group-head {
	display: flex;
	align-items: center;
	gap: 14px;
	margin: 0 0 18px;
}

.zest-fees__group-sub {
	font-family: "Inter", "Helvetica Neue", Arial, sans-serif;
	font-size: 0.78rem;
	font-weight: 800;
	letter-spacing: 0.22em;
	color: var(--zest-color-primary-dark);
	text-transform: uppercase;
}

.zest-fees__group--discount .zest-fees__group-sub {
	color: var(--zest-color-secondary-dark);
}

.zest-fees__group-title {
	font-size: 1.15rem;
	font-weight: 800;
	color: var(--zest-color-text);
	margin: 0;
	letter-spacing: 0.02em;
	position: relative;
	padding-left: 14px;
}

.zest-fees__group-title::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0.2em;
	bottom: 0.2em;
	width: 4px;
	border-radius: 2px;
	background: linear-gradient(180deg, var(--zest-color-primary), var(--zest-color-primary-dark));
}

.zest-fees__group--discount .zest-fees__group-title::before {
	background: linear-gradient(180deg, var(--zest-color-secondary), var(--zest-color-secondary-dark));
}

/* 費用カードのグリッド（3カラム） */
.zest-fees__list {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 16px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.zest-fees__item {
	background: #ffffff;
	border-radius: 16px;
	padding: 24px 24px;
	box-shadow: var(--zest-shadow-sm);
	display: flex;
	flex-direction: column;
	gap: 10px;
	border-top: 3px solid var(--zest-color-primary);
}

.zest-fees__item-header {
	display: flex;
	align-items: center;
	gap: 12px;
}

.zest-fees__item-icon {
	width: 40px;
	height: 40px;
	border-radius: 10px;
	background: linear-gradient(135deg, #38b6ff, #0084d1);
	color: #ffffff;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 1.05rem;
	flex-shrink: 0;
}

.zest-fees__item-label {
	font-size: 1rem;
	font-weight: 800;
	color: var(--zest-color-text);
	margin: 0;
}

.zest-fees__item-value {
	font-size: 1.2rem;
	font-weight: 800;
	color: var(--zest-color-primary-dark);
	margin: 0;
	letter-spacing: 0.02em;
}

.zest-fees__item-value small {
	font-size: 0.78rem;
	color: var(--zest-color-text-sub);
	font-weight: 600;
	margin-left: 4px;
}

.zest-fees__item-desc {
	font-size: 0.84rem;
	line-height: 1.75;
	color: var(--zest-color-text-sub);
	margin: 0;
}

/* 割引カード（横長 1枚、オレンジ系で費用と差別化） */
.zest-fees__discount {
	background: linear-gradient(135deg, #ffffff 0%, #fff4ea 100%);
	border-radius: 16px;
	padding: 26px 30px;
	box-shadow: var(--zest-shadow-sm);
	border-top: 3px solid var(--zest-color-secondary);
	display: grid;
	grid-template-columns: auto 1fr auto;
	gap: 22px;
	align-items: center;
}

.zest-fees__discount-icon {
	width: 56px;
	height: 56px;
	border-radius: 14px;
	background: linear-gradient(135deg, #ffb068, #ff8c42);
	color: #ffffff;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 1.3rem;
	flex-shrink: 0;
}

.zest-fees__discount-body {
	min-width: 0;
}

.zest-fees__discount-label {
	font-size: 0.94rem;
	font-weight: 800;
	color: var(--zest-color-text);
	margin: 0 0 4px;
	letter-spacing: 0.02em;
}

.zest-fees__discount-desc {
	font-size: 0.86rem;
	line-height: 1.7;
	color: var(--zest-color-text-sub);
	margin: 0;
}

.zest-fees__discount-value {
	font-size: 1.3rem;
	font-weight: 900;
	color: var(--zest-color-secondary-dark);
	letter-spacing: 0.02em;
	white-space: nowrap;
}

.zest-fees__discount-value small {
	font-size: 0.7rem;
	font-weight: 700;
	color: var(--zest-color-text-sub);
	margin-left: 4px;
	letter-spacing: 0.04em;
}

/* 講習会セクション（独立 + アイコンリスト形式） */
.zest-fees__lecture {
	margin-top: 36px;
	background: #ffffff;
	border-radius: 18px;
	overflow: hidden;
	box-shadow: var(--zest-shadow-sm);
}

.zest-fees__lecture-head {
	display: flex;
	align-items: center;
	gap: 14px;
	padding: 18px 28px;
	background: linear-gradient(135deg, #38b6ff 0%, #0084d1 100%);
	color: #ffffff;
}

.zest-fees__lecture-head i {
	font-size: 1.2rem;
	opacity: 0.9;
}

.zest-fees__lecture-head h3 {
	font-size: 1.1rem;
	font-weight: 800;
	color: #ffffff;
	margin: 0;
	letter-spacing: 0.04em;
}

.zest-fees__lecture-body {
	padding: 26px 30px 22px;
}

.zest-fees__lecture-points {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 18px;
	margin: 0 0 18px;
	padding: 0;
	list-style: none;
}

.zest-fees__lecture-points li {
	display: flex;
	gap: 12px;
	padding: 14px 16px;
	background: rgba(56, 182, 255, 0.06);
	border-radius: 10px;
	font-size: 0.88rem;
	line-height: 1.65;
	color: var(--zest-color-text);
	align-items: flex-start;
}

.zest-fees__lecture-points li i {
	color: var(--zest-color-primary-dark);
	font-size: 0.96rem;
	margin-top: 0.2em;
	flex-shrink: 0;
}

.zest-fees__lecture-points li strong {
	display: block;
	font-weight: 800;
	color: var(--zest-color-text);
	margin-bottom: 2px;
	font-size: 0.92rem;
}

.zest-fees__lecture-note {
	margin: 0;
	font-size: 0.82rem;
	line-height: 1.75;
	color: var(--zest-color-text-sub);
	padding-top: 14px;
	border-top: 1px dotted var(--zest-color-border);
}

@media (max-width: 768px) {
	.zest-fees__list {
		grid-template-columns: 1fr;
		gap: 14px;
	}
	.zest-fees__item {
		padding: 20px 22px;
	}
	.zest-fees__discount {
		grid-template-columns: 1fr;
		gap: 12px;
		padding: 22px 22px;
		text-align: left;
	}
	.zest-fees__discount-icon {
		width: 48px;
		height: 48px;
		font-size: 1.15rem;
	}
	.zest-fees__discount-value {
		font-size: 1.15rem;
	}
	.zest-fees__lecture-head {
		padding: 16px 22px;
	}
	.zest-fees__lecture-body {
		padding: 22px 22px 18px;
	}
	.zest-fees__lecture-points {
		grid-template-columns: 1fr;
		gap: 10px;
	}
}



/* ==========================================================================
   ★ D-5: 最新情報（/news/）と個別投稿
   方針: /news/ は固定ページ「最新情報」（slug=news）として実装し、Snow Monkey
   Recent Posts ブロックで投稿一覧を表示。個別投稿は Snow Monkey デフォルトに
   最小限の調整だけ被せる。子テーマ独自の PHP テンプレートは持たない。
   ========================================================================== */

/* --------------------------------------------------------------------------
   D-5.1 /news/ 固定ページ（body.news）の背景 + ラッパー透明化
   -------------------------------------------------------------------------- */
body.news {
	background: #ffffff;
	position: relative;
}

body.news::before {
	content: "";
	position: fixed;
	inset: 0;
	z-index: -1;
	pointer-events: none;
	/* 全ページ統一: ホームと同じ青モヤ + オレンジモヤ */
	background:
		radial-gradient(circle 90vmax at 12% 22%, rgba(56, 182, 255, 0.22) 0%, rgba(56, 182, 255, 0.10) 30%, rgba(56, 182, 255, 0) 60%),
		radial-gradient(circle 90vmax at 88% 78%, rgba(255, 140, 66, 0.18) 0%, rgba(255, 140, 66, 0.08) 30%, rgba(255, 140, 66, 0) 60%);
	filter: blur(30px);
}

body.news .l-contents,
body.news .l-contents__main,
body.news .l-contents__inner,
body.news .l-main,
body.news .c-entry,
body.news .c-entry__body,
body.news .c-entry__content,
body.news .p-entry-content {
	background: transparent !important;
}

body.news .c-entry,
body.news .c-entry__body,
body.news .c-entry__content,
body.news .p-entry-content,
body.news .c-entry__header,
body.news .l-contents__main {
	padding: 0 !important;
	margin: 0 !important;
}

body.news .c-entry__content > :first-child,
body.news .p-entry-content > :first-child {
	margin-top: 0 !important;
}

body.news .zest-section--alt {
	background: transparent !important;
}

/* /news/ では WP 標準のページタイトル(c-entry__header)を非表示にして自前 Hero を見せる */
body.news .c-entry__header {
	display: none !important;
}

/* /news/ ページの Recent Posts は max-width を広めに（投稿一覧専用ページなので） */
body.news .zest-news__feed {
	max-width: 1000px !important;
}

/* --------------------------------------------------------------------------
   D-5.2 個別投稿（body.single-post）の最小限調整
   Snow Monkey デフォルトのレイアウトをほぼそのまま使う。
   背景の青モヤだけ統一感を出すために被せ、サイドバーは非表示にする。
   -------------------------------------------------------------------------- */
body.single-post {
	background: #ffffff;
	position: relative;
}

body.single-post::before {
	content: "";
	position: fixed;
	inset: 0;
	z-index: -1;
	pointer-events: none;
	/* 全ページ統一: ホームと同じ青モヤ + オレンジモヤ */
	background:
		radial-gradient(circle 90vmax at 12% 22%, rgba(56, 182, 255, 0.22) 0%, rgba(56, 182, 255, 0.10) 30%, rgba(56, 182, 255, 0) 60%),
		radial-gradient(circle 90vmax at 88% 78%, rgba(255, 140, 66, 0.18) 0%, rgba(255, 140, 66, 0.08) 30%, rgba(255, 140, 66, 0) 60%);
	filter: blur(30px);
}

/* 個別投稿のリンクカラーをサイトテーマに合わせる */
body.single-post .c-entry__content a,
body.single-post .p-entry-content a {
	color: var(--zest-color-primary-dark);
	text-decoration: none;
	border-bottom: 1px solid rgba(0, 132, 209, 0.4);
	transition: all 0.2s ease;
}

body.single-post .c-entry__content a:hover,
body.single-post .p-entry-content a:hover {
	color: var(--zest-color-primary);
	border-bottom-color: var(--zest-color-primary);
}

/* 個別投稿の見出しの色をテーマ統一 */
body.single-post .c-entry__content h2,
body.single-post .p-entry-content h2 {
	color: var(--zest-color-text);
	border-color: var(--zest-color-primary);
}

body.single-post .c-entry__content h3,
body.single-post .p-entry-content h3 {
	color: var(--zest-color-text);
	border-color: rgba(56, 182, 255, 0.30);
}

/* --------------------------------------------------------------------------
   D-5.3 個別投稿: 既存記事の本文構造に合わせた追加調整
   構造観察結果（実HTML 取得済）:
   - body.single-post + post-template-blank-content（Snow Monkey ブランクテンプレ）
   - 本文 ($.c-entry__content.p-entry-content) 冒頭に旧ヘッダーバナー (wp-image-444)
   - 続いて Snow Monkey Section ブロック (.wp-block-snow-monkey-blocks-section) で
     タイトル装飾（.smb-section__title + .smb-section__lede）が入っている
   - 各投稿に共通する固定パターン
   -------------------------------------------------------------------------- */

/* 冒頭の旧ヘッダーバナー(2222のコピー-1)を非表示 */
body.single-post .p-entry-content .wp-image-444,
body.single-post .p-entry-content figure.wp-block-image.alignfull:first-child,
body.single-post .c-entry__content > figure.wp-block-image.alignfull:first-child {
	display: none !important;
}

/* 本文の最大幅制御（読みやすさ重視） */
body.single-post .c-entry__content,
body.single-post .p-entry-content {
	max-width: 880px !important;
	margin: 0 auto !important;
	padding: 40px 24px 60px !important;
}

/* 本文ブロックの中央寄せ + 幅制御 */
body.single-post .p-entry-content > * {
	max-width: 720px;
	margin-left: auto;
	margin-right: auto;
}

body.single-post .p-entry-content > .alignwide,
body.single-post .p-entry-content > .alignfull,
body.single-post .p-entry-content > .wp-block-snow-monkey-blocks-section,
body.single-post .p-entry-content > .wp-block-gallery {
	max-width: 100%;
}

/* タイトル装飾セクション（Snow Monkey Section ブロック）を Hero 風に */
body.single-post .p-entry-content .wp-block-snow-monkey-blocks-section.smb-section--fit:first-of-type,
body.single-post .p-entry-content > .wp-block-snow-monkey-blocks-section:first-of-type {
	padding: 80px 0 40px !important;
	margin: 0 auto 36px !important;
	background: transparent !important;
	min-height: 0 !important;
	border-bottom: 1px solid var(--zest-color-border);
}

body.single-post .p-entry-content .smb-section__inner {
	padding: 0;
}

body.single-post .p-entry-content .c-container {
	max-width: 880px;
	margin: 0 auto;
	padding: 0 24px;
}

/* タイトル（青グラデで Hero と同じトーン） */
body.single-post .p-entry-content .smb-section__title {
	font-size: clamp(1.6rem, 4vw, 2.4rem) !important;
	font-weight: 800 !important;
	line-height: 1.5 !important;
	letter-spacing: 0.02em !important;
	margin: 0 0 18px !important;
	background: linear-gradient(120deg, #0084d1 0%, #38b6ff 60%, #7ad0ff 100%);
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
	color: transparent !important;
	text-align: center;
}

/* リード文（タイトル下のサブテキスト） */
body.single-post .p-entry-content .smb-section__lede-wrapper {
	display: flex;
	justify-content: center;
}

body.single-post .p-entry-content .smb-section__lede {
	font-size: 0.92rem !important;
	line-height: 1.85 !important;
	color: var(--zest-color-text-sub) !important;
	max-width: 640px;
	text-align: center;
	margin: 0 auto;
}

/* 本文のギャラリー・画像は読みやすいサイズに */
body.single-post .p-entry-content .wp-block-gallery {
	margin: 32px auto;
	max-width: 880px;
}

body.single-post .p-entry-content figure.wp-block-image:not(:first-child) img {
	border-radius: 12px;
	box-shadow: var(--zest-shadow-sm);
}

/* SP 調整 */
@media (max-width: 768px) {
	body.single-post .c-entry__content,
	body.single-post .p-entry-content {
		padding: 28px 18px 48px !important;
	}
	body.single-post .p-entry-content .c-container {
		padding: 0 18px;
	}
	body.single-post .p-entry-content .smb-section__title {
		font-size: 1.35rem !important;
	}
}

/* --------------------------------------------------------------------------
   D-5.4 [zest_news_list] ショートコード出力用スタイル
   カテゴリタブ + 投稿リスト（横長カード）+ ページネーション
   -------------------------------------------------------------------------- */

/* カテゴリタブ */
.zest-news-tabs {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin: 0 auto 36px;
	justify-content: center;
	max-width: 900px;
	padding: 0 24px;
}

.zest-news-tab {
	display: inline-flex;
	align-items: center;
	padding: 10px 22px;
	border-radius: 999px;
	background: #ffffff;
	color: var(--zest-color-text-sub) !important;
	text-decoration: none !important;
	font-size: 0.92rem;
	font-weight: 700;
	letter-spacing: 0.04em;
	box-shadow: var(--zest-shadow-sm);
	transition: all 0.2s ease;
	border: none;
}

.zest-news-tab:hover {
	background: rgba(56, 182, 255, 0.10);
	color: var(--zest-color-primary-dark) !important;
	transform: translateY(-1px);
}

.zest-news-tab[data-active="true"] {
	background: linear-gradient(135deg, #38b6ff 0%, #0084d1 100%);
	color: #ffffff !important;
	box-shadow: 0 6px 14px rgba(0, 132, 209, 0.30);
}

.zest-news-tab[data-active="true"]:hover {
	color: #ffffff !important;
	transform: translateY(-1px);
}

/* 投稿リスト */
.zest-news-list {
	max-width: 900px;
	margin: 0 auto 32px;
	padding: 0 24px;
	display: flex;
	flex-direction: column;
}

.zest-news-item {
	border-bottom: 1px solid rgba(26, 43, 60, 0.10);
}

.zest-news-item:last-child {
	border-bottom: none;
}

.zest-news-item__link {
	display: grid !important;
	grid-template-columns: 160px 1fr;
	gap: 22px;
	padding: 16px 10px !important;
	color: inherit !important;
	text-decoration: none !important;
	border-radius: 10px;
	transition: background 0.25s ease;
	border: none !important;
}

.zest-news-item__link:hover {
	background: rgba(56, 182, 255, 0.06);
	color: inherit !important;
}

.zest-news-item__media {
	width: 160px;
	aspect-ratio: 4 / 3;
	overflow: hidden;
	border-radius: 8px;
	background: linear-gradient(135deg, #e3f5ff, #c4e7ff);
	margin: 0;
}

.zest-news-item__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	transition: transform 0.5s ease;
}

.zest-news-item:hover .zest-news-item__media img {
	transform: scale(1.05);
}

.zest-news-item__placeholder {
	width: 100%;
	height: 100%;
	display: flex;
	align-items: center;
	justify-content: center;
	color: rgba(0, 132, 209, 0.4);
	font-size: 1.6rem;
}

.zest-news-item__body {
	min-width: 0;
	padding: 0;
}

.zest-news-item__meta {
	display: flex;
	align-items: center;
	gap: 12px;
	flex-wrap: wrap;
	margin-bottom: 8px;
	font-size: 0.78rem;
	color: var(--zest-color-text-sub);
}

.zest-news-item__category {
	display: inline-flex;
	align-items: center;
	background: rgba(0, 132, 209, 0.10);
	color: var(--zest-color-primary-dark);
	padding: 3px 12px;
	border-radius: 999px;
	font-size: 0.72rem;
	font-weight: 700;
	letter-spacing: 0.05em;
}

.zest-news-item__date {
	letter-spacing: 0.04em;
}

.zest-news-item__title {
	font-size: 1.1rem;
	font-weight: 700;
	line-height: 1.55;
	color: var(--zest-color-text);
	margin: 0 0 8px;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

.zest-news-item__excerpt {
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
	font-size: 0.86rem;
	line-height: 1.65;
	color: var(--zest-color-text-sub);
	margin: 0;
}

/* 空状態 */
.zest-news-empty {
	max-width: 600px;
	margin: 40px auto;
	padding: 36px 28px;
	background: #ffffff;
	border-radius: 16px;
	box-shadow: var(--zest-shadow-sm);
	text-align: center;
	color: var(--zest-color-text-sub);
}

/* ページネーション */
.zest-news-pagination {
	max-width: 900px;
	margin: 8px auto 60px;
	padding: 0 24px;
	display: flex;
	justify-content: center;
	align-items: center;
	flex-wrap: wrap;
	gap: 8px;
}

.zest-news-pagination .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 44px;
	height: 44px;
	padding: 0 14px;
	border-radius: 999px;
	background: #ffffff;
	color: var(--zest-color-text-sub) !important;
	font-weight: 700;
	font-size: 0.92rem;
	text-decoration: none !important;
	box-shadow: var(--zest-shadow-sm);
	transition: all 0.2s ease;
	border: none;
}

.zest-news-pagination a.page-numbers:hover {
	background: rgba(56, 182, 255, 0.10);
	color: var(--zest-color-primary-dark) !important;
	transform: translateY(-1px);
}

.zest-news-pagination .page-numbers.current {
	background: linear-gradient(135deg, #38b6ff 0%, #0084d1 100%);
	color: #ffffff !important;
	box-shadow: 0 6px 14px rgba(0, 132, 209, 0.30);
}

.zest-news-pagination .page-numbers.dots {
	background: transparent;
	box-shadow: none;
	cursor: default;
}

.zest-news-pagination .screen-reader-text {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
}

@media (max-width: 600px) {
	.zest-news-tabs {
		gap: 8px;
		padding: 0 18px;
	}
	.zest-news-tab {
		padding: 8px 16px;
		font-size: 0.84rem;
	}
	.zest-news-list {
		padding: 0 16px;
	}
	.zest-news-item__link {
		grid-template-columns: 100px 1fr !important;
		gap: 14px;
		padding: 12px 6px !important;
	}
	.zest-news-item__media {
		width: 100px;
	}
	.zest-news-item__title {
		font-size: 0.96rem;
	}
	.zest-news-item__excerpt {
		display: none;
	}
	.zest-news-pagination {
		padding: 0 16px;
		margin-bottom: 40px;
	}
}

/* ==========================================================================
   ★ D-6: お問い合わせ（contact）専用スタイル
   3ステップ + お電話 + Contact Form 7（ID=477）の見た目を刷新
   ※ フォームの構造（フィールド・name）は触らず、CSS のみで装飾
   ========================================================================== */

/* --------------------------------------------------------------------------
   D-6.1 contact: 背景 + ラッパー透明化（他ページと統一）
   -------------------------------------------------------------------------- */
body.contact {
	background: #ffffff;
	position: relative;
}

body.contact::before {
	content: "";
	position: fixed;
	inset: 0;
	z-index: -1;
	pointer-events: none;
	/* 全ページ統一: ホームと同じ青モヤ + オレンジモヤ */
	background:
		radial-gradient(circle 90vmax at 12% 22%, rgba(56, 182, 255, 0.22) 0%, rgba(56, 182, 255, 0.10) 30%, rgba(56, 182, 255, 0) 60%),
		radial-gradient(circle 90vmax at 88% 78%, rgba(255, 140, 66, 0.18) 0%, rgba(255, 140, 66, 0.08) 30%, rgba(255, 140, 66, 0) 60%);
	filter: blur(30px);
}

body.contact .l-contents,
body.contact .l-contents__main,
body.contact .l-contents__inner,
body.contact .l-main,
body.contact .c-entry,
body.contact .c-entry__body,
body.contact .c-entry__content,
body.contact .p-entry-content {
	background: transparent !important;
}

body.contact .c-entry,
body.contact .c-entry__body,
body.contact .c-entry__content,
body.contact .p-entry-content,
body.contact .c-entry__header,
body.contact .l-contents__main {
	padding: 0 !important;
	margin: 0 !important;
}

body.contact .c-entry__content > :first-child,
body.contact .p-entry-content > :first-child {
	margin-top: 0 !important;
}

body.contact .zest-section--alt {
	background: transparent !important;
}

body.contact .c-entry__header {
	display: none !important;
}

/* --------------------------------------------------------------------------
   D-6.2 3ステップ
   -------------------------------------------------------------------------- */
.zest-contact-steps {
	max-width: 980px;
	margin: 0 auto;
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 22px;
}

.zest-contact-step {
	background: #ffffff;
	border-radius: 18px;
	padding: 32px 28px 28px;
	box-shadow: var(--zest-shadow-sm);
	border-top: 4px solid var(--zest-color-primary);
	display: flex;
	flex-direction: column;
	gap: 14px;
	position: relative;
}

.zest-contact-step__num {
	font-family: "Inter", "Helvetica Neue", Arial, sans-serif;
	font-size: 0.82rem;
	font-weight: 800;
	letter-spacing: 0.18em;
	color: var(--zest-color-primary-dark);
	text-transform: uppercase;
	display: flex;
	align-items: center;
	gap: 12px;
}

.zest-contact-step__num::before {
	content: "";
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 36px;
	height: 36px;
	border-radius: 50%;
	background: linear-gradient(135deg, #38b6ff, #0084d1);
	color: #ffffff;
	font-size: 1.05rem;
	font-weight: 800;
	letter-spacing: 0;
}

.zest-contact-step:nth-child(1) .zest-contact-step__num::before { content: "1"; }
.zest-contact-step:nth-child(2) .zest-contact-step__num::before { content: "2"; }
.zest-contact-step:nth-child(3) .zest-contact-step__num::before { content: "3"; }

.zest-contact-step__title {
	font-size: 1.1rem;
	font-weight: 800;
	color: var(--zest-color-text);
	margin: 0;
	line-height: 1.5;
	letter-spacing: 0.02em;
}

.zest-contact-step__desc {
	font-size: 0.92rem;
	line-height: 1.85;
	color: var(--zest-color-text-sub);
	margin: 0;
}

@media (max-width: 768px) {
	.zest-contact-steps {
		grid-template-columns: 1fr;
		gap: 14px;
	}
	.zest-contact-step {
		padding: 26px 22px 22px;
	}
}

/* --------------------------------------------------------------------------
   D-6.3 お電話セクション
   -------------------------------------------------------------------------- */
.zest-contact-tel {
	max-width: 720px;
	margin: 0 auto;
	background: linear-gradient(135deg, #1a2b3c 0%, #0084d1 50%, #38b6ff 100%);
	border-radius: 22px;
	padding: 44px 36px;
	box-shadow: var(--zest-shadow-md);
	color: #ffffff;
	text-align: center;
	position: relative;
	overflow: hidden;
}

.zest-contact-tel::before {
	content: "";
	position: absolute;
	inset: 0;
	background:
		radial-gradient(ellipse 60% 50% at 25% 30%, rgba(255, 255, 255, 0.10) 0%, transparent 60%),
		radial-gradient(ellipse 70% 60% at 80% 70%, rgba(255, 215, 0, 0.06) 0%, transparent 60%);
	pointer-events: none;
}

.zest-contact-tel__inner {
	position: relative;
	z-index: 1;
}

.zest-contact-tel__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 60px;
	height: 60px;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.15);
	margin-bottom: 16px;
	font-size: 1.4rem;
}

.zest-contact-tel__label {
	display: block;
	font-size: 0.78rem;
	font-weight: 700;
	letter-spacing: 0.32em;
	color: rgba(255, 255, 255, 0.7);
	margin-bottom: 6px;
}

.zest-contact-tel__number {
	display: inline-block;
	font-size: clamp(1.8rem, 5vw, 2.6rem);
	font-weight: 800;
	letter-spacing: 0.04em;
	color: #ffffff !important;
	text-decoration: none !important;
	margin: 0 0 14px;
	line-height: 1.2;
}

.zest-contact-tel__number:hover {
	text-decoration: underline !important;
}

.zest-contact-tel__hours {
	font-size: 0.88rem;
	line-height: 1.85;
	color: rgba(255, 255, 255, 0.85);
	margin: 0 0 18px;
}

.zest-contact-tel__note {
	font-size: 0.84rem;
	color: rgba(255, 255, 255, 0.7);
	margin: 0;
	display: inline-flex;
	align-items: center;
	gap: 8px;
}

.zest-contact-tel__note i {
	font-size: 0.74rem;
}

@media (max-width: 768px) {
	.zest-contact-tel {
		padding: 32px 22px;
	}
}

/* --------------------------------------------------------------------------
   D-6.4 お問い合わせフォーム（CF7 上書き）
   構造は変えずに見た目だけ刷新
   -------------------------------------------------------------------------- */
.zest-contact-form-wrap {
	max-width: 720px;
	margin: 0 auto;
	background: #ffffff;
	border-radius: 22px;
	padding: 44px 44px 36px;
	box-shadow: var(--zest-shadow-md);
	border-top: 5px solid var(--zest-color-primary);
}

.zest-contact-form-intro {
	text-align: center;
	font-size: 0.92rem;
	line-height: 1.85;
	color: var(--zest-color-text-sub);
	margin: 0 0 32px;
}

/* CF7 フォーム全体 */
.zest-contact-form-wrap .wpcf7 {
	margin: 0;
}

.zest-contact-form-wrap .wpcf7-form {
	display: flex;
	flex-direction: column;
	gap: 20px;
}

/* p の余白を統一管理（CF7 はラベルを <p> でラップしている） */
.zest-contact-form-wrap .wpcf7-form > p {
	margin: 0;
	padding: 0;
}

/* ラベル */
.zest-contact-form-wrap .wpcf7-form label {
	display: block;
	font-size: 0.95rem;
	font-weight: 700;
	color: var(--zest-color-text);
	line-height: 1.6;
	letter-spacing: 0.02em;
}

/* 必須マーク（赤色テキスト → 赤いピルバッジに置換） */
.zest-contact-form-wrap .wpcf7-form label span[style*="color: #ff0000"],
.zest-contact-form-wrap .wpcf7-form label span[style*="color:#ff0000"] {
	display: inline-block;
	background: #e63946;
	color: #ffffff !important;
	font-size: 0.68rem;
	font-weight: 800;
	letter-spacing: 0.08em;
	padding: 2px 9px;
	border-radius: 999px;
	margin-left: 8px;
	vertical-align: 1px;
	font-style: normal;
}

/* 必須マーク内のテキストを「必須」に統一（content 置換は不可なので、元の「（必須）」テキストを表示） */
.zest-contact-form-wrap .wpcf7-form label span[style*="color: #ff0000"] {
	font-size: 0;
}
.zest-contact-form-wrap .wpcf7-form label span[style*="color: #ff0000"]::after {
	content: "必須";
	font-size: 0.68rem;
	letter-spacing: 0.08em;
}

/* テキスト系入力 */
.zest-contact-form-wrap .wpcf7-form-control.wpcf7-text,
.zest-contact-form-wrap .wpcf7-form-control.wpcf7-email,
.zest-contact-form-wrap .wpcf7-form-control.wpcf7-tel,
.zest-contact-form-wrap .wpcf7-form-control.wpcf7-textarea,
.zest-contact-form-wrap .wpcf7-form-control.wpcf7-select {
	width: 100% !important;
	max-width: 100% !important;
	box-sizing: border-box;
	display: block;
	margin-top: 8px;
	padding: 12px 16px;
	font-size: 0.95rem;
	font-family: var(--zest-font-base);
	color: var(--zest-color-text);
	background: #f7fbff;
	border: 1px solid var(--zest-color-border);
	border-radius: 10px;
	transition: all 0.2s ease;
	-webkit-appearance: none;
	appearance: none;
}

.zest-contact-form-wrap .wpcf7-form-control.wpcf7-textarea {
	min-height: 140px;
	resize: vertical;
	line-height: 1.7;
}

.zest-contact-form-wrap .wpcf7-form-control.wpcf7-text:focus,
.zest-contact-form-wrap .wpcf7-form-control.wpcf7-email:focus,
.zest-contact-form-wrap .wpcf7-form-control.wpcf7-tel:focus,
.zest-contact-form-wrap .wpcf7-form-control.wpcf7-textarea:focus,
.zest-contact-form-wrap .wpcf7-form-control.wpcf7-select:focus {
	background: #ffffff;
	border-color: var(--zest-color-primary);
	outline: none;
	box-shadow: 0 0 0 3px rgba(56, 182, 255, 0.15);
}

/* セレクトのカスタム矢印 */
.zest-contact-form-wrap .wpcf7-form-control.wpcf7-select {
	background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'><path fill='%230084d1' d='M6 8L0 0h12z'/></svg>");
	background-repeat: no-repeat;
	background-position: right 16px center;
	padding-right: 40px;
}

/* span.wpcf7-form-control-wrap の display 制御（インラインの薄い余白を統一） */
.zest-contact-form-wrap .wpcf7-form-control-wrap {
	display: block;
	margin-top: 0;
}

/* チェックボックス: ピル型カスタム */
.zest-contact-form-wrap .wpcf7-form-control.wpcf7-checkbox {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin-top: 10px;
}

.zest-contact-form-wrap .wpcf7-list-item {
	margin: 0 !important;
	padding: 0;
}

.zest-contact-form-wrap .wpcf7-list-item label {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 8px 16px;
	background: #f7fbff;
	border: 1px solid var(--zest-color-border);
	border-radius: 999px;
	cursor: pointer;
	transition: all 0.2s ease;
	font-size: 0.88rem;
	font-weight: 600;
	color: var(--zest-color-text);
}

.zest-contact-form-wrap .wpcf7-list-item label:hover {
	background: rgba(56, 182, 255, 0.10);
	border-color: var(--zest-color-primary);
}

.zest-contact-form-wrap .wpcf7-list-item input[type="checkbox"] {
	margin: 0;
	width: 16px;
	height: 16px;
	accent-color: var(--zest-color-primary);
	cursor: pointer;
}

/* チェック済みのラベルを強調（:has が効く環境のみ。フォールバックは inputのoutline で代替） */
.zest-contact-form-wrap .wpcf7-list-item label:has(input[type="checkbox"]:checked) {
	background: rgba(56, 182, 255, 0.12);
	border-color: var(--zest-color-primary);
	color: var(--zest-color-primary-dark);
}

/* 送信ボタン */
.zest-contact-form-wrap .wpcf7-form-control.wpcf7-submit {
	display: block;
	width: 100%;
	max-width: 320px;
	margin: 16px auto 0;
	padding: 18px 36px;
	background: linear-gradient(135deg, #38b6ff 0%, #0084d1 100%);
	color: #ffffff;
	font-size: 1.05rem;
	font-weight: 800;
	letter-spacing: 0.08em;
	border: none;
	border-radius: 999px;
	cursor: pointer;
	box-shadow: 0 8px 20px rgba(0, 132, 209, 0.30);
	transition: all 0.25s ease;
	-webkit-appearance: none;
	appearance: none;
}

.zest-contact-form-wrap .wpcf7-form-control.wpcf7-submit:hover {
	transform: translateY(-2px);
	box-shadow: 0 12px 28px rgba(0, 132, 209, 0.40);
}

.zest-contact-form-wrap .wpcf7-form-control.wpcf7-submit:active {
	transform: translateY(0);
}

/* スピナー（送信中） */
.zest-contact-form-wrap .wpcf7-spinner {
	display: inline-block;
	margin-left: 12px;
	vertical-align: middle;
}

/* レスポンス出力（成功/エラー） */
.zest-contact-form-wrap .wpcf7-response-output {
	margin: 24px 0 0 !important;
	padding: 14px 18px !important;
	border-radius: 10px !important;
	font-size: 0.9rem !important;
	line-height: 1.6 !important;
	border: none !important;
}

.zest-contact-form-wrap .wpcf7 form.invalid .wpcf7-response-output,
.zest-contact-form-wrap .wpcf7 form.unaccepted .wpcf7-response-output {
	background: rgba(230, 57, 70, 0.10);
	color: #c1232f;
}

.zest-contact-form-wrap .wpcf7 form.sent .wpcf7-response-output {
	background: rgba(44, 158, 84, 0.10);
	color: #1f7a3f;
}

/* 個別フィールドエラー */
.zest-contact-form-wrap .wpcf7-not-valid-tip {
	color: #c1232f !important;
	font-size: 0.82rem !important;
	margin-top: 6px;
	display: block;
}

.zest-contact-form-wrap .wpcf7-form-control.wpcf7-not-valid {
	border-color: #c1232f !important;
	background: rgba(230, 57, 70, 0.04);
}

/* hidden fields は完全に隠す */
.zest-contact-form-wrap .hidden-fields-container,
.zest-contact-form-wrap input[type="hidden"] {
	display: none !important;
}

/* SP 調整 */
@media (max-width: 768px) {
	.zest-contact-form-wrap {
		padding: 32px 22px 28px;
		border-radius: 18px;
	}
	.zest-contact-form-wrap .wpcf7-form {
		gap: 18px;
	}
}

/* ==========================================================================
   ★ プライバシーポリシー（/privacy-policy/）専用スタイル + CF7 acceptance
   ========================================================================== */

/* --------------------------------------------------------------------------
   privacy-policy: 背景 + ラッパー透明化（他ページと統一）
   -------------------------------------------------------------------------- */
body.privacy-policy {
	background: #ffffff;
	position: relative;
}

body.privacy-policy::before {
	content: "";
	position: fixed;
	inset: 0;
	z-index: -1;
	pointer-events: none;
	/* 全ページ統一: ホームと同じ青モヤ + オレンジモヤ */
	background:
		radial-gradient(circle 90vmax at 12% 22%, rgba(56, 182, 255, 0.22) 0%, rgba(56, 182, 255, 0.10) 30%, rgba(56, 182, 255, 0) 60%),
		radial-gradient(circle 90vmax at 88% 78%, rgba(255, 140, 66, 0.18) 0%, rgba(255, 140, 66, 0.08) 30%, rgba(255, 140, 66, 0) 60%);
	filter: blur(30px);
}

body.privacy-policy .l-contents,
body.privacy-policy .l-contents__main,
body.privacy-policy .l-contents__inner,
body.privacy-policy .l-main,
body.privacy-policy .c-entry,
body.privacy-policy .c-entry__body,
body.privacy-policy .c-entry__content,
body.privacy-policy .p-entry-content {
	background: transparent !important;
}

body.privacy-policy .c-entry,
body.privacy-policy .c-entry__body,
body.privacy-policy .c-entry__content,
body.privacy-policy .p-entry-content,
body.privacy-policy .c-entry__header,
body.privacy-policy .l-contents__main {
	padding: 0 !important;
	margin: 0 !important;
}

body.privacy-policy .c-entry__content > :first-child,
body.privacy-policy .p-entry-content > :first-child {
	margin-top: 0 !important;
}

body.privacy-policy .c-entry__header {
	display: none !important;
}

/* --------------------------------------------------------------------------
   プライバシーポリシー本文の組版
   -------------------------------------------------------------------------- */
.zest-policy-doc {
	max-width: 880px;
	margin: 0 auto;
	background: #ffffff;
	border-radius: 22px;
	padding: 48px 48px 40px;
	box-shadow: var(--zest-shadow-md);
	border-top: 5px solid var(--zest-color-primary);
}

.zest-policy-doc__section {
	/* セクション間の余白を大きく取り、段落としての区切りを明確にする */
	margin: 0 0 96px;
}

.zest-policy-doc__section:last-of-type {
	margin-bottom: 0;
}

.zest-policy-doc h2 {
	font-size: clamp(1.15rem, 2vw, 1.35rem);
	font-weight: 800;
	color: var(--zest-color-text);
	margin: 0 0 36px;
	padding: 14px 0 14px 18px;
	border-left: 4px solid var(--zest-color-primary);
	background: linear-gradient(90deg, rgba(56, 182, 255, 0.08), transparent 70%);
	border-radius: 0 6px 6px 0;
	line-height: 1.5;
	letter-spacing: 0.02em;
}

.zest-policy-doc h3 {
	font-size: 1.02rem;
	font-weight: 800;
	color: var(--zest-color-primary-dark);
	margin: 44px 0 18px;
	padding-bottom: 10px;
	border-bottom: 1px dotted var(--zest-color-border);
}

.zest-policy-doc p {
	font-size: 0.95rem;
	line-height: 1.95;
	color: var(--zest-color-text);
	margin: 0 0 22px;
}

.zest-policy-doc p:last-child {
	margin-bottom: 0;
}

.zest-policy-doc ul {
	margin: 0 0 26px;
	padding-left: 1.5em;
}

.zest-policy-doc li {
	font-size: 0.93rem;
	line-height: 1.95;
	color: var(--zest-color-text);
	margin: 0 0 10px;
}

.zest-policy-doc li:last-child {
	margin-bottom: 0;
}

.zest-policy-doc a {
	color: var(--zest-color-primary-dark);
	text-decoration: none;
	border-bottom: 1px solid rgba(0, 132, 209, 0.4);
	transition: all 0.2s ease;
}

.zest-policy-doc a:hover {
	color: var(--zest-color-primary);
	border-bottom-color: var(--zest-color-primary);
}

/* 事業者情報・お問い合わせ窓口の dl */
.zest-policy-doc__info {
	display: grid;
	grid-template-columns: 110px 1fr;
	gap: 10px 18px;
	margin: 8px 0 0;
	padding: 24px 28px;
	background: rgba(56, 182, 255, 0.04);
	border-radius: 12px;
	border-left: 3px solid rgba(56, 182, 255, 0.4);
}

.zest-policy-doc__info dt {
	font-size: 0.86rem;
	font-weight: 700;
	color: var(--zest-color-primary-dark);
	margin: 0;
	padding: 4px 0;
}

.zest-policy-doc__info dd {
	font-size: 0.92rem;
	color: var(--zest-color-text);
	margin: 0;
	padding: 4px 0;
	line-height: 1.7;
}

.zest-policy-doc__date {
	margin: 36px 0 0;
	padding-top: 20px;
	border-top: 1px solid var(--zest-color-border);
	text-align: right;
	font-size: 0.86rem;
	color: var(--zest-color-text-sub);
	letter-spacing: 0.04em;
}

@media (max-width: 768px) {
	.zest-policy-doc {
		padding: 32px 24px 28px;
		border-radius: 18px;
	}
	.zest-policy-doc h2 {
		font-size: 1.08rem;
		padding-left: 14px;
	}
	.zest-policy-doc__info {
		grid-template-columns: 1fr;
		gap: 2px 0;
		padding: 16px 18px;
	}
	.zest-policy-doc__info dt {
		padding-bottom: 0;
	}
	.zest-policy-doc__info dd {
		padding-top: 0;
		margin-bottom: 8px;
	}
	.zest-policy-doc__info dd:last-child {
		margin-bottom: 0;
	}
}

/* --------------------------------------------------------------------------
   CF7 acceptance（同意チェック）スタイル
   -------------------------------------------------------------------------- */
.zest-contact-form-wrap .wpcf7-form .wpcf7-acceptance {
	display: block;
	margin: 8px 0 0;
}

.zest-contact-form-wrap .wpcf7-form .wpcf7-acceptance .wpcf7-list-item {
	margin: 0 !important;
	padding: 0;
	display: block;
}

.zest-contact-form-wrap .wpcf7-form .wpcf7-acceptance .wpcf7-list-item label {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 14px 18px;
	background: #f7fbff;
	border: 1px solid var(--zest-color-border);
	border-radius: 12px;
	cursor: pointer;
	transition: all 0.2s ease;
	font-size: 0.92rem;
	font-weight: 600;
	color: var(--zest-color-text);
}

.zest-contact-form-wrap .wpcf7-form .wpcf7-acceptance .wpcf7-list-item label:hover {
	background: rgba(56, 182, 255, 0.08);
	border-color: var(--zest-color-primary);
}

.zest-contact-form-wrap .wpcf7-form .wpcf7-acceptance input[type="checkbox"] {
	margin: 0;
	width: 18px;
	height: 18px;
	accent-color: var(--zest-color-primary);
	cursor: pointer;
	flex-shrink: 0;
}

.zest-contact-form-wrap .wpcf7-form .wpcf7-acceptance .wpcf7-list-item label:has(input:checked) {
	background: rgba(56, 182, 255, 0.12);
	border-color: var(--zest-color-primary);
	color: var(--zest-color-primary-dark);
}

/* 同意チェックの説明テキスト内のリンク */
.zest-contact-form-wrap .wpcf7-form .wpcf7-acceptance .wpcf7-list-item-label a {
	color: var(--zest-color-primary-dark);
	text-decoration: underline;
	font-weight: 700;
}

.zest-contact-form-wrap .wpcf7-form .wpcf7-acceptance .wpcf7-list-item-label a:hover {
	color: var(--zest-color-primary);
}
