/*
Theme Name: ToCo
Theme URI: https://toco.mom/
Author: StellarNavi
Author URI: https://toco.mom/
Description: 不登校支援サービス「トーコ」公式サイト用の軽量ブロックテーマ。保護者に安心感と信頼を伝える、落ち着いたラベンダー×モダンミニマルデザイン。スタイルは theme.json を正とし、Gutenberg／サイトエディターで運用更新が完結します。
Requires at least: 6.6
Tested up to: 7.0
Requires PHP: 7.4
Version: 0.2.6
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: toco
Tags: full-site-editing, block-patterns, custom-colors, custom-logo, wide-blocks, responsive
*/

/*
 * デザインは theme.json を「単一の正」とします。
 * ここに書くCSSは theme.json で表現しきれない微調整に限定します。
 */

/* WP コアの block-gap / margin-block をリセット */
.wp-site-blocks { row-gap: 0 !important; }
.wp-site-blocks > * { margin-block-start: 0 !important; margin-block-end: 0 !important; }
:root :where(.is-layout-flow) > * { margin-block-start: 0 !important; margin-block-end: 0; }

/* =========================================================================
   アクセシビリティ
   ========================================================================= */

.skip-link {
	position: absolute;
	left: -9999px;
	top: 0;
	z-index: 100000;
}
.skip-link:focus {
	left: 8px;
	top: 8px;
	padding: 8px 16px;
	background: #fff;
	color: #1A2E1D;
	border-radius: 8px;
	box-shadow: 0 2px 12px rgba(46, 85, 57, 0.2);
}

/* =========================================================================
   ボタン：マイクロインタラクション
   ========================================================================= */

.wp-element-button,
.wp-block-button__link {
	transition: background-color 0.15s ease, transform 0.06s ease, box-shadow 0.15s ease;
}
.wp-element-button:active,
.wp-block-button__link:active {
	transform: translateY(1px);
}

/* =========================================================================
   グローバルレイアウト・背景
   ========================================================================= */

body {
	background-color: #F0F7F1;
}
:root {
	--wp--style--global--content-size: 800px;
	--wp--style--global--wide-size: 1180px;
}

/* =========================================================================
   ヘッダー（スティッキー・リデザイン）
   ========================================================================= */

header.wp-block-group.toco-header {
	position: sticky !important;
	top: 0 !important;
	z-index: 999;
	background: #1E3A28 !important;
	border-bottom: 1px solid rgba(0,0,0,0.08) !important;
	box-shadow: 0 2px 20px rgba(0,0,0,0.15);
	padding-top: 0 !important;
	padding-bottom: 0 !important;
}

/* テンプレートパートの overflow がスティッキーを妨げないように */
.wp-block-template-part {
	overflow: visible !important;
}

/* ロゴリンク */
a.toco-logo-link {
	display: inline-flex;
	align-items: center;
	text-decoration: none !important;
	flex-shrink: 0;
}
a.toco-logo-link img {
	display: block;
	height: 44px;
	width: auto;
	border-radius: 10px;
}

/* ナビゲーションリンク：ダークグリーンヘッダー用 */
.toco-main-nav .wp-block-navigation-item__content {
	font-size: 0.875rem !important;
	font-weight: 400 !important;
	color: rgba(255,255,255,0.88) !important;
	padding: 0.5rem 0.7rem !important;
	text-decoration: none !important;
	white-space: nowrap;
	letter-spacing: -0.005em;
	border-radius: 8px;
	transition: background 0.18s ease, color 0.18s ease;
	position: relative;
}
.toco-main-nav .wp-block-navigation-item:hover .wp-block-navigation-item__content {
	background: rgba(255,255,255,0.12) !important;
	color: #fff !important;
}

/* アクティブページのアンダーライン */
.toco-main-nav .wp-block-navigation-item.current-menu-item .wp-block-navigation-item__content,
.toco-main-nav .wp-block-navigation-item.current_page_item .wp-block-navigation-item__content {
	color: #fff !important;
	font-weight: 600 !important;
}
.toco-main-nav .wp-block-navigation-item.current-menu-item .wp-block-navigation-item__content::after,
.toco-main-nav .wp-block-navigation-item.current_page_item .wp-block-navigation-item__content::after {
	content: '';
	position: absolute;
	bottom: 4px;
	left: 0.7rem;
	right: 0.7rem;
	height: 2px;
	background: var(--wp--preset--color--accent);
	border-radius: 2px;
}

/* デスクトップのみ横並び */
@media (min-width: 782px) {
	.toco-main-nav .wp-block-navigation__container {
		flex-wrap: nowrap !important;
		gap: 0 !important;
	}
}

/* ハンバーガーボタン - デスクトップでは非表示 */
@media (min-width: 601px) {
	.wp-block-navigation__responsive-container-open {
		display: none !important;
	}
}
@media (max-width: 600px) {
	.wp-block-navigation__responsive-container-open {
		display: flex !important;
		align-items: center !important;
		justify-content: center !important;
		background: transparent !important;
		border: none !important;
		color: rgba(255,255,255,0.9) !important;
		width: 40px !important;
		height: 40px !important;
		border-radius: 8px !important;
		cursor: pointer;
		transition: background 0.15s ease !important;
	}
	.wp-block-navigation__responsive-container-open:hover {
		background: rgba(255,255,255,0.12) !important;
	}
	.wp-block-navigation__responsive-container-open svg {
		fill: rgba(255,255,255,0.9) !important;
	}
}

/* モバイルオーバーレイメニュー */
.wp-block-navigation__responsive-container.is-menu-open {
	position: fixed !important;
	top: 0 !important;
	left: 0 !important;
	right: auto !important;
	bottom: auto !important;
	width: 100vw !important;
	height: 100dvh !important;
	max-width: 100vw !important;
	background: #1E3A28 !important;
	z-index: 9999 !important;
	padding: 0 !important;
	margin: 0 !important;
	display: flex !important;
	flex-direction: column !important;
	overflow: hidden !important;
	box-sizing: border-box !important;
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-close,
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-dialog {
	position: absolute !important;
	inset: 0 !important;
	width: 100% !important;
	display: flex !important;
	flex-direction: column !important;
	margin: 0 !important;
	padding: 0 !important;
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content {
	position: absolute !important;
	inset: 0 !important;
	padding: 5rem 0 2rem !important;
	overflow-y: auto !important;
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container {
	flex-direction: column !important;
	align-items: stretch !important;
	justify-content: flex-start !important;
	gap: 0 !important;
	padding: 0 !important;
	width: 100% !important;
	max-width: none !important;
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item {
	width: 100% !important;
	text-align: center !important;
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item a {
	font-size: 1.15rem !important;
	padding: 1.1rem 2rem !important;
	border-bottom: 1px solid rgba(255,255,255,0.12) !important;
	display: block !important;
	width: 100% !important;
	box-sizing: border-box !important;
	font-weight: 500 !important;
	color: rgba(255,255,255,0.9) !important;
	text-decoration: none !important;
	text-align: center !important;
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item:last-child a {
	border-bottom: none !important;
}
/* 閉じるボタン */
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-close {
	position: absolute !important;
	top: 1rem !important;
	right: 1rem !important;
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	background: var(--wp--preset--color--soft) !important;
	border: none !important;
	color: var(--wp--preset--color--contrast) !important;
	cursor: pointer !important;
	width: 40px !important;
	height: 40px !important;
	border-radius: 50% !important;
	transition: background 0.15s ease !important;
	z-index: 1 !important;
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-close svg {
	fill: var(--wp--preset--color--primary) !important;
}

/* =========================================================================
   ヒーローセクション
   ========================================================================= */

.wp-block-group.alignfull.has-soft-background-color {
	background-color: transparent !important;
	background-image: linear-gradient(145deg, #E5F0E7 0%, #EEF7EF 45%, #F0FAF2 100%);
}
/* ヒーロー（フロントページ）は2カラム — padding はカラム内で管理 */
.toco-hero.wp-block-group.alignfull.has-soft-background-color {
	padding-top: 0 !important;
	padding-bottom: 0 !important;
}
/* ページタイトルヒーロー（内ページ）は padding あり */
.wp-block-group.alignfull.has-soft-background-color:not(.toco-hero) {
	padding-top: clamp(3.5rem, 9vw, 7rem) !important;
	padding-bottom: clamp(3.5rem, 9vw, 7rem) !important;
}
.wp-block-group.alignfull.has-soft-background-color h1 {
	font-size: clamp(2.1rem, 5vw, 3.5rem);
	letter-spacing: -0.02em;
	line-height: 1.38;
}
.wp-block-group.alignfull.has-soft-background-color > .wp-block-paragraph,
.wp-block-group.alignfull.has-soft-background-color > p {
	max-width: 36em;
	margin-inline: auto;
}

/* 2カラムヒーロー */
.toco-hero .wp-block-columns {
	align-items: center !important;
	gap: clamp(2rem, 5vw, 5rem) !important;
}
/* ヒーローボタン幅揃え */
.toco-hero .wp-block-buttons .wp-block-button {
	flex: 1 1 0 !important;
	min-width: 0 !important;
}
.toco-hero .wp-block-buttons .wp-block-button__link {
	width: 100% !important;
	text-align: center !important;
	box-sizing: border-box !important;
}

/* 流れセクション ボタン幅揃え */
.toco-flow-btns {
	width: 100%;
	max-width: 440px;
	margin-left: auto !important;
	margin-right: auto !important;
	flex-direction: column !important;
}
.toco-flow-btns .wp-block-button {
	width: 100% !important;
}
.toco-flow-btns .wp-block-button__link {
	width: 100% !important;
	text-align: center !important;
	box-sizing: border-box !important;
}
@media (min-width: 600px) {
	.toco-flow-btns {
		flex-direction: row !important;
		max-width: 560px;
	}
	.toco-flow-btns .wp-block-button {
		flex: 1 1 0 !important;
		width: auto !important;
	}
}
.toco-hero .wp-block-column:first-child {
	padding-top: clamp(4rem, 10vw, 7rem);
	padding-bottom: clamp(4rem, 10vw, 7rem);
}

/* ヒーロー右カード */
.toco-hero-card {
	background: #fff;
	border-radius: 24px;
	padding: clamp(1.8rem, 3.5vw, 2.8rem);
	box-shadow: 0 24px 64px rgba(46,85,57,0.18), 0 4px 16px rgba(46,85,57,0.1);
	position: relative;
	margin: clamp(2rem, 5vw, 4rem) 0;
}
.toco-hero-card::before {
	content: "";
	position: absolute;
	inset: -2px;
	background: linear-gradient(135deg, rgba(46,85,57,0.5) 0%, rgba(168,200,160,0.5) 100%);
	border-radius: 26px;
	z-index: -1;
}
.toco-hero-card__stat-row {
	display: flex !important;
	gap: 0.8rem !important;
	margin-bottom: 1.4rem !important;
}
.toco-hero-card__stat {
	flex: 1;
	background: var(--wp--preset--color--soft);
	border-radius: 14px;
	padding: 0.9rem 0.7rem;
	text-align: center;
}
.toco-hero-card__num {
	font-size: 1.8rem !important;
	font-weight: 900 !important;
	color: var(--wp--preset--color--primary) !important;
	line-height: 1 !important;
	margin: 0 0 0.3rem !important;
	letter-spacing: -0.02em;
}
.toco-hero-card__label {
	font-size: 0.7rem !important;
	color: var(--wp--preset--color--muted) !important;
	margin: 0 !important;
	font-weight: 500 !important;
	line-height: 1.4 !important;
}
.toco-hero-card__quote {
	font-size: 0.93rem !important;
	color: var(--wp--preset--color--contrast) !important;
	line-height: 1.8 !important;
	border-left: 3px solid var(--wp--preset--color--primary);
	padding: 0.2rem 0 0.2rem 0.9rem !important;
	margin: 0 0 0.55rem !important;
}
.toco-hero-card__attr {
	font-size: 0.76rem !important;
	color: var(--wp--preset--color--muted) !important;
	margin: 0 !important;
	padding-left: 0.9rem !important;
	font-weight: 500 !important;
}

/* ヒーロー写真ラッパー */
.toco-hero-photo-wrap {
	position: relative;
	margin: clamp(2rem, 5vw, 4rem) 0;
}
.toco-hero-photo {
	border-radius: 24px !important;
	overflow: hidden;
	box-shadow: 0 24px 64px rgba(46,85,57,0.20), 0 4px 16px rgba(46,85,57,0.10) !important;
	margin: 0 !important;
}
.toco-hero-photo img {
	width: 100% !important;
	aspect-ratio: 4 / 3 !important;
	object-fit: cover !important;
	display: block !important;
	border-radius: 24px !important;
	box-shadow: none !important;
}

/* 内ページヒーロー写真（フルワイド帯）
   .toco-hero-photo の margin:0!important を上書き */
.toco-page-hero .toco-hero-photo {
	margin-top: 2rem !important;
	margin-bottom: 0 !important;
	border-radius: 16px !important;
	box-shadow: 0 8px 32px rgba(46,85,57,0.15) !important;
}
.toco-page-hero .toco-hero-photo img {
	aspect-ratio: 16 / 5 !important;
	border-radius: 16px !important;
	box-shadow: none !important;
}
@media (max-width: 600px) {
	.toco-page-hero .toco-hero-photo img {
		aspect-ratio: 16 / 7 !important;
	}
}

/* =========================================================================
   カバーブロック ヒーロー（内ページ）
   ========================================================================= */

.wp-block-cover.toco-hero-cover {
	position: relative;
}
.wp-block-cover.toco-hero-cover .wp-block-cover__inner-container {
	position: relative;
	z-index: 2;
	padding-top: clamp(4rem, 10vw, 7rem);
	padding-bottom: clamp(5rem, 12vw, 9rem);
}
.wp-block-cover.toco-hero-cover .wp-block-cover__image-background {
	object-position: center 30%;
}

/* 問題チップバッジ */
.toco-hero-chip {
	display: inline-block;
	background: rgba(255, 255, 255, 0.15);
	border: 1px solid rgba(255, 255, 255, 0.3);
	backdrop-filter: blur(8px);
	-webkit-backdrop-filter: blur(8px);
	color: rgba(255, 255, 255, 0.9);
	font-size: 0.82rem;
	font-weight: 500;
	padding: 0.45rem 1rem;
	border-radius: 100px;
	white-space: nowrap;
}

/* レビューページ評価バッジ */
.toco-rating-hero {
	display: inline-flex !important;
	background: rgba(255, 255, 255, 0.12) !important;
	backdrop-filter: blur(12px);
	-webkit-backdrop-filter: blur(12px);
	border: 1px solid rgba(255, 255, 255, 0.25) !important;
	border-radius: 16px !important;
	gap: 1.2rem !important;
}

/* Before/After カード画像（基本: contained） */
.toco-ba-img {
	margin: 0 0 1rem 0 !important;
	border-radius: 8px !important;
	overflow: hidden;
}
.toco-ba-img img {
	width: 100% !important;
	aspect-ratio: 16 / 9 !important;
	object-fit: cover !important;
	display: block !important;
	border-radius: 8px !important;
}
/* .toco-ba クラス付きカードはエッジにフラッシュ */
.toco-ba .toco-ba-img {
	margin-top: calc(-1 * clamp(1.4rem, 3vw, 2rem)) !important;
	margin-left: calc(-1 * clamp(1.4rem, 3vw, 2rem)) !important;
	margin-right: calc(-1 * clamp(1.4rem, 3vw, 2rem)) !important;
	margin-bottom: 1.2rem !important;
	border-radius: 0 !important;
}
.toco-ba .toco-ba-img img {
	border-radius: 0 !important;
}

/* フィーチャーカード画像（border-left があるため contained スタイル） */
.toco-feature-img {
	margin: 0 0 1rem 0 !important;
	border-radius: 8px !important;
	overflow: hidden;
}
.toco-feature-img img {
	width: 100% !important;
	aspect-ratio: 3 / 2 !important;
	object-fit: cover !important;
	display: block !important;
	border-radius: 8px !important;
}

/* ストーリーセクション画像（contained） */
.toco-story-img {
	margin: 0 0 1.2rem 0 !important;
	border-radius: 10px !important;
	overflow: hidden;
}
.toco-story-img img {
	width: 100% !important;
	aspect-ratio: 16 / 7 !important;
	object-fit: cover !important;
	display: block !important;
	border-radius: 10px !important;
}

/* 自然分割画像（フロントページ全幅） */
.toco-nature-divider {
	margin: 0 !important;
}
.toco-nature-divider img {
	width: 100% !important;
	aspect-ratio: 21 / 6 !important;
	object-fit: cover !important;
	object-position: center 40% !important;
	display: block !important;
}
@media (max-width: 600px) {
	.toco-nature-divider img {
		aspect-ratio: 16 / 6 !important;
	}
}

/* カバーブロック直後の最初のセクション — 上余白を詰める */
.wp-block-cover.toco-hero-cover + * {
	margin-top: 0 !important;
}
/* ヒーロー内のtoco-statスパン — 背景が暗いので白に上書き */
.toco-hero-cover .toco-stat {
	color: #fff !important;
	background-image: linear-gradient(to right, rgba(168,200,160,0.9), rgba(168,200,160,0.5)) !important;
}

/* セクション間の自然な区切り */
.wp-block-group.alignfull + .wp-block-group.alignfull {
	border-top: 1px solid rgba(46, 85, 57, 0.06);
}

/* 浮きカード */
.toco-hero-float-card {
	position: absolute !important;
	bottom: -1.5rem !important;
	left: -1.5rem !important;
	background: #fff;
	border-radius: 16px;
	padding: 1rem 1.3rem !important;
	box-shadow: 0 8px 32px rgba(46,85,57,0.18);
	max-width: 280px;
	border-left: 3px solid var(--wp--preset--color--primary);
}
.toco-hero-float-card__stars {
	color: #A8C8A0 !important;
	font-size: 0.85rem !important;
	margin: 0 0 0.35rem !important;
	letter-spacing: 0.05em;
}
.toco-hero-float-card__quote {
	font-size: 0.85rem !important;
	font-weight: 600 !important;
	color: var(--wp--preset--color--contrast) !important;
	line-height: 1.55 !important;
	margin: 0 0 0.35rem !important;
}
.toco-hero-float-card__attr {
	font-size: 0.72rem !important;
	color: var(--wp--preset--color--muted) !important;
	margin: 0 !important;
}

/* チームメンバー写真 */
.toco-member__photo {
	margin: 0 0 1rem !important;
}
.toco-member__photo img {
	width: 80px !important;
	height: 80px !important;
	border-radius: 50% !important;
	object-fit: cover !important;
	object-position: center top !important;
	border: 3px solid var(--wp--preset--color--soft) !important;
	box-shadow: 0 2px 12px rgba(46,85,57,0.15) !important;
}

@media (max-width: 781px) {
	.toco-hero-right {
		display: block !important;
		flex-basis: 100% !important;
		width: 100% !important;
	}
	.toco-hero .wp-block-column:first-child {
		padding-top: clamp(2.5rem, 8vw, 4rem) !important;
		padding-bottom: 1.5rem !important;
	}
	.toco-hero-photo-wrap {
		margin: 0 -1rem !important;
	}
	.toco-hero-photo img {
		aspect-ratio: 16 / 9 !important;
		border-radius: 0 !important;
		height: auto !important;
		width: 100% !important;
	}
	.toco-hero-photo {
		border-radius: 0 !important;
		box-shadow: none !important;
		margin: 0 !important;
	}
	.toco-hero-float-card { display: none !important; }
}

/* 信頼バッジ（ライト背景用） */
.toco-trust-strip p {
	margin: 0 !important;
	background: rgba(255, 255, 255, 0.95);
	border: 1px solid #C0D8C4;
	border-radius: 9999px;
	padding: 0.4rem 1.1rem !important;
	color: var(--wp--preset--color--primary) !important;
	font-size: 0.84rem !important;
	font-weight: 600 !important;
}
/* 信頼バッジ（ダーク背景用 — CTAセクション内） */
.toco-trust-strip--light p {
	background: rgba(255, 255, 255, 0.18) !important;
	border: 1px solid rgba(255, 255, 255, 0.35) !important;
	color: #fff !important;
}

/* ヒーロービジュアル */
.toco-hero-visual { margin: 0 !important; }
.toco-hero-visual img {
	display: block;
	width: 100%;
	height: clamp(220px, 34vw, 440px);
	object-fit: cover;
	object-position: center 36%;
}

/* CTA内の写真 */
.toco-cta-img {
	margin: 0 auto 1.5rem !important;
	max-width: 460px;
}
.toco-cta-img img {
	border-radius: 16px;
	box-shadow: 0 4px 24px rgba(46, 85, 57, 0.12);
}

/* CTAセクション背景 */
.toco-cta {
	background-color: transparent !important;
	background-image: linear-gradient(160deg, #EBF2EC 0%, #F8FCF8 100%);
	border-radius: 28px;
}

/* =========================================================================
   コンテンツ装飾（全テキストページ共通）
   ========================================================================= */

/* 箇条書き → パープルチェックアイコン付き */
main .wp-block-post-content ul {
	list-style: none;
	padding-left: 0;
}
main .wp-block-post-content ul > li {
	position: relative;
	padding-left: 2em;
	margin-bottom: 0.55em;
}
main .wp-block-post-content ul > li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0.15em;
	width: 1.3em;
	height: 1.3em;
	background: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%3E%3Ccircle%20cx='12'%20cy='12'%20r='12'%20fill='%23ebf2ec'/%3E%3Cpath%20fill='%232e5539'%20d='M10.3%2016.2%206.5%2012.4l1.3-1.3%202.5%202.5%205.6-5.6%201.3%201.3z'/%3E%3C/svg%3E") no-repeat center / contain;
}

/* 番号付きリスト → パープル丸数字 */
main .wp-block-post-content ol {
	list-style: none;
	counter-reset: toco-ol;
	padding-left: 0;
}
main .wp-block-post-content ol > li {
	counter-increment: toco-ol;
	position: relative;
	padding-left: 2.6em;
	margin-bottom: 0.55em;
}
main .wp-block-post-content ol > li::before {
	content: counter(toco-ol);
	position: absolute;
	left: 0;
	top: 0;
	width: 1.8em;
	height: 1.8em;
	line-height: 1.8em;
	text-align: center;
	background: var(--wp--preset--color--primary);
	color: #fff;
	border-radius: 50%;
	font-size: 0.82em;
	font-weight: 700;
}

/* 引用ボックス */
main .wp-block-post-content blockquote {
	background: #F0F7F1;
	border-left: 3px solid var(--wp--preset--color--primary);
	border-radius: 0 10px 10px 0;
	padding: 1rem 1.4rem;
	margin: 1.6rem 0;
}

/* 強調語 */
main .wp-block-post-content strong {
	color: var(--wp--preset--color--primary-dark);
}

/* リード段落 */
main .wp-block-post-content > p:first-of-type {
	font-size: 1.06em;
	color: #162A1E;
}

/* アイキャッチ画像 */
.wp-block-post-featured-image {
	margin-bottom: var(--wp--preset--spacing--40);
}
.wp-block-post-featured-image img {
	border-radius: 16px;
	box-shadow: 0 4px 20px rgba(26, 48, 32, 0.08);
	width: 100%;
}

/* 全幅イメージバンド */
.toco-band { margin: 0 !important; }
.toco-band img {
	display: block;
	width: 100%;
	height: clamp(240px, 38vw, 480px);
	object-fit: cover;
	object-position: center 38%;
}

/* チーム写真 */
.toco-team-img img {
	border-radius: 16px;
	box-shadow: 0 4px 24px rgba(26, 48, 32, 0.1);
}

/* =========================================================================
   文書ページ（固定ページ・記事）
   ========================================================================= */

.toco-doc {
	background: var(--wp--preset--color--surface);
	border-radius: 20px;
	padding: clamp(1.75rem, 5vw, 4rem);
	box-shadow: 0 2px 24px rgba(46, 85, 57, 0.08);
	max-width: 900px;
	margin-inline: auto;
}
.toco-doc .wp-block-post-title,
.toco-doc .wp-block-post-content > :not(.wp-block-image):not(.wp-block-table):not(figure) {
	max-width: 700px;
	margin-inline: auto;
}
.toco-doc .wp-block-post-title {
	text-align: center;
	margin-bottom: 1.5rem;
}
.toco-doc .wp-block-post-content h2 {
	text-align: left;
	border-left: 3px solid var(--wp--preset--color--primary);
	padding: 0.15em 0 0.15em 0.7em;
	margin: 2.2em 0 0.8em;
}
.toco-doc .wp-block-post-content h2::after,
.toco-doc .wp-block-post-content h2::before { display: none; }
.toco-doc .wp-block-post-content h3 {
	color: var(--wp--preset--color--primary-dark);
	margin: 1.7em 0 0.5em;
}

/* FAQ Q/A（構造化データ抽出用クラスを維持） */
.toco-doc .qa-question {
	background: var(--wp--preset--color--soft);
	border-radius: 10px;
	padding: 0.7em 1em !important;
	margin-top: 1.5em !important;
}
.toco-doc .qa-answer {
	padding-left: 1em;
	border-left: 2px solid #C0D8C4;
	margin-left: 0.2em;
}

/* 記事アイキャッチ */
.toco-article-hero {
	margin: 0 0 1.75rem !important;
	max-width: none !important;
}
.toco-article-hero img {
	height: clamp(200px, 30vw, 380px);
	border-radius: 14px;
}

/* 固定ページのページヒーロー */
.toco-doc .toco-page-hero {
	position: relative;
	margin: 0 0 2rem !important;
	max-width: none !important;
	border-radius: 14px;
	overflow: hidden;
}
.toco-doc .toco-page-hero img {
	display: block;
	width: 100%;
	height: clamp(150px, 22vw, 260px);
	object-fit: cover;
}
.toco-doc .toco-page-hero::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(rgba(235, 242, 236, 0.04), rgba(235, 242, 236, 0.14));
	pointer-events: none;
}

/* =========================================================================
   ボタン
   ========================================================================= */

.wp-block-button:not(.is-style-outline) > .wp-block-button__link {
	background-color: var(--wp--preset--color--primary) !important;
	color: #fff !important;
	border-radius: 9999px !important;
	font-weight: 700;
	padding: 0.9rem 2.2rem !important;
	box-shadow: 0 4px 16px rgba(46, 85, 57, 0.25);
}
.wp-block-button:not(.is-style-outline) > .wp-block-button__link:hover {
	background-color: var(--wp--preset--color--primary-dark) !important;
	box-shadow: 0 6px 20px rgba(46, 85, 57, 0.35);
}
.wp-block-button.is-style-outline > .wp-block-button__link {
	background-color: transparent !important;
	color: var(--wp--preset--color--primary) !important;
	border: 1.5px solid var(--wp--preset--color--primary) !important;
	border-radius: 9999px !important;
}
.wp-block-button.is-style-outline > .wp-block-button__link:hover {
	background-color: var(--wp--preset--color--soft) !important;
}

/* =========================================================================
   本文の可読性
   ========================================================================= */

main .wp-block-post-content p,
main .wp-block-post-content li { text-align: left; }

/* =========================================================================
   セクションパネル
   ========================================================================= */

main .wp-block-post-content > .wp-block-group {
	background: var(--wp--preset--color--surface);
	border-radius: 20px;
	padding: clamp(2rem, 4.5vw, 3.5rem);
	margin-block: clamp(2.5rem, 5vw, 4rem);
	box-shadow: 0 2px 16px rgba(46, 85, 57, 0.07);
}
main .wp-block-post-content > .wp-block-group:has(> h2:only-child) {
	padding-block: clamp(1rem, 2.5vw, 1.5rem);
	margin-bottom: 0.75rem;
}

/* H2 見出しスタイル */
main .wp-block-post-content h2 {
	text-align: center;
	position: relative;
	padding-bottom: 0;
	margin-bottom: 1.1rem;
	letter-spacing: -0.01em;
}
main .wp-block-post-content > .wp-block-group > h2:only-child { margin-bottom: 0; }
main .wp-block-post-content h2::after { display: none; }

/* カラムをカード見せに */
main .wp-block-columns .wp-block-column {
	background: var(--wp--preset--color--soft);
	border-radius: 14px;
	padding: 1.6rem 1.7rem;
}

/* 画像 */
main .wp-block-image img {
	border-radius: 12px;
	box-shadow: 0 2px 16px rgba(26, 48, 32, 0.07);
}
main .wp-block-image { margin-inline: auto; }

/* テーブル */
.wp-block-table table {
	border-collapse: separate;
	border-spacing: 0;
	width: 100%;
	border: 1px solid #C0D8C4;
	border-radius: 12px;
	overflow: hidden;
}
.wp-block-table th,
.wp-block-table td {
	border: none !important;
	border-bottom: 1px solid #C0D8C4 !important;
	padding: 0.75rem 0.9rem;
	text-align: center;
}
.wp-block-table th:not(:last-child),
.wp-block-table td:not(:last-child) {
	border-right: 1px solid #C0D8C4 !important;
}
.wp-block-table tr:last-child th,
.wp-block-table tr:last-child td {
	border-bottom: none !important;
}
.wp-block-table thead th,
.wp-block-table tr:first-child {
	background: var(--wp--preset--color--soft);
	font-weight: 700;
}
/* 比較テーブル: カスタムカードレイアウト */
.toco-comp-table {
	border-radius: 16px;
	overflow: hidden;
	box-shadow: 0 4px 28px rgba(46,85,57,0.11);
}
.toco-comp-table__head {
	display: grid;
	grid-template-columns: 1.5fr 1.6fr 2.4fr;
	background: var(--wp--preset--color--primary);
	color: #fff;
	padding: 0.85rem 1.6rem;
	font-size: 0.78rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	gap: 1.2rem;
}
.toco-comp-row {
	display: grid;
	grid-template-columns: 1.5fr 1.6fr 2.4fr;
	padding: 1.05rem 1.6rem;
	gap: 1.2rem;
	border-bottom: 1px solid rgba(46,85,57,0.07);
	align-items: center;
	background: #fff;
	transition: background 0.15s;
}
.toco-comp-row:nth-child(odd) { background: rgba(46,85,57,0.025); }
.toco-comp-row:hover { background: rgba(46,85,57,0.06) !important; }
.toco-comp-row__name {
	font-weight: 700;
	font-size: 0.92rem;
	color: var(--wp--preset--color--contrast);
}
.toco-comp-row__method {
	font-size: 0.88rem;
	color: var(--wp--preset--color--muted);
}
.toco-comp-row__desc {
	font-size: 0.86rem;
	line-height: 1.65;
	color: var(--wp--preset--color--muted);
}
/* トーコ featured row */
.toco-comp-row--featured {
	background: var(--wp--preset--color--primary) !important;
	border-bottom: none;
	padding-top: 1.25rem;
	padding-bottom: 1.25rem;
}
.toco-comp-row--featured:hover { background: var(--wp--preset--color--primary-dark) !important; }
.toco-comp-row--featured .toco-comp-row__name {
	color: #fff;
	font-size: 1rem;
}
.toco-comp-row--featured .toco-comp-row__method {
	color: rgba(255,255,255,0.88);
	font-weight: 600;
	font-size: 0.92rem;
}
.toco-comp-row--featured .toco-comp-row__desc {
	color: rgba(255,255,255,0.85);
	font-size: 0.9rem;
}
.toco-comp-row__badge {
	display: inline-block;
	background: #fff;
	color: var(--wp--preset--color--primary);
	font-size: 0.68rem;
	font-weight: 800;
	padding: 0.12rem 0.55rem;
	border-radius: 20px;
	margin-left: 0.5rem;
	vertical-align: 0.15em;
	letter-spacing: 0.04em;
}
@media (max-width: 640px) {
	.toco-comp-table__head { display: none; }
	.toco-comp-row {
		grid-template-columns: 1fr;
		gap: 0.25rem;
		padding: 1rem 1.2rem;
	}
	.toco-comp-row__name { font-size: 0.97rem; margin-bottom: 0.15rem; }
	.toco-comp-row__method::before { content: "手法："; font-weight: 700; font-size: 0.76rem; opacity: 0.7; }
	.toco-comp-row__desc::before { content: "特徴："; font-weight: 700; font-size: 0.76rem; opacity: 0.7; }
	.toco-comp-row--featured .toco-comp-row__method::before,
	.toco-comp-row--featured .toco-comp-row__desc::before { color: rgba(255,255,255,0.6); }
}

/* =========================================================================
   エディトリアル
   ========================================================================= */

/* eyebrow は非表示（縦ラインアクセントに統一） */
main .wp-block-post-content .toco-eyebrow,
.toco-eyebrow { display: none !important; }

/* 実績数字のアクセント下線 */
.toco-stat {
	display: inline-block;
	font-size: 2.1em;
	font-weight: 800;
	color: var(--wp--preset--color--contrast);
	letter-spacing: 0.01em;
	line-height: 1;
	padding: 0 0.12em 0.22em;
	background-image: linear-gradient(to right, var(--wp--preset--color--primary), var(--wp--preset--color--accent));
	background-position: 0 94%;
	background-size: 100% 0.2em;
	background-repeat: no-repeat;
}

/* ヒーロータグ */
.toco-hero-tag {
	text-align: center !important;
	font-size: 0.9rem !important;
	font-weight: 600;
	color: var(--wp--preset--color--primary) !important;
	letter-spacing: 0.08em;
	margin: 0 0 0.7rem !important;
}
/* カバーブロック内ではインラインカラーを尊重 */
.wp-block-cover .toco-hero-tag {
	color: inherit !important;
}

/* スマホ用追従CTA */
.toco-sticky-cta { display: none; }
@media (max-width: 781px) {
	.toco-sticky-cta {
		display: block;
		position: fixed;
		left: 0; right: 0; bottom: 0;
		z-index: 50;
		background: #fff;
		box-shadow: 0 -1px 16px rgba(46, 85, 57, 0.12);
		transform: translateY(100%);
		transition: transform 0.25s ease;
		pointer-events: none;
	}
	.toco-sticky-cta.is-visible {
		transform: translateY(0);
		pointer-events: auto;
	}
	.wp-site-blocks > footer { margin-bottom: 64px; }
}

/* =========================================================================
   専用セクションコンポーネント
   ========================================================================= */

/* セクション見出しブロック */
.toco-h { text-align: center; margin-bottom: clamp(2rem, 4vw, 3rem); }
.toco-h h2 { font-size: clamp(1.7rem, 3.6vw, 2.4rem); margin: 0 0 0.6rem !important; }
.toco-h p { color: var(--wp--preset--color--muted); max-width: 34em; margin: 0 auto !important; }

.toco-doc .wp-block-post-content h2::before { display: none; }

/* 実績スタッツバンド */
.toco-stats {
	background: linear-gradient(160deg, #EBF7EC 0%, #F8FCF8 100%);
	border-radius: 24px;
	padding: clamp(2.4rem, 5vw, 3.8rem) clamp(1.5rem, 4vw, 3rem);
}
.toco-stat { text-align: center; }
.toco-stats .wp-block-column:not(:last-child) .toco-stat {
	padding-right: clamp(1rem, 3vw, 2.5rem);
}
.toco-stat__num {
	display: inline-block; font-weight: 800; line-height: 1;
	font-size: clamp(2.8rem, 6vw, 4.6rem); color: var(--wp--preset--color--contrast);
	padding: 0 0.1em 0.28em;
	background-image: linear-gradient(to right, var(--wp--preset--color--primary), var(--wp--preset--color--accent));
	background-position: 0 100%;
	background-size: 100% 3px;
	background-repeat: no-repeat;
}
.toco-stat__num small { font-size: 0.42em; font-weight: 800; margin-left: 0.1em; }
.toco-stat__approx { font-size: 0.28em; font-weight: 700; vertical-align: 0.25em; margin-right: 0.12em; }
.toco-stat__label { margin: 0.7rem 0 0 !important; font-weight: 700; color: var(--wp--preset--color--contrast); }
.toco-stat__sub { margin: 0.15rem 0 0 !important; font-size: 0.85rem; color: var(--wp--preset--color--muted); }

/* カードグリッド */
.toco-card {
	background: #fff;
	border-radius: 16px;
	padding: clamp(2rem, 3vw, 2.8rem);
	box-shadow: 0 2px 16px rgba(46, 85, 57, 0.08);
	height: 100%;
	border: 1px solid #EBF2EC;
}
/* Large serif quote mark — worry cards */
.toco-card__quote {
	font-size: 5.5rem;
	line-height: 0.75;
	color: rgba(46,85,57,0.14);
	font-family: Georgia, "Times New Roman", serif;
	font-weight: 700;
	margin: 0 0 2rem !important;
	letter-spacing: -0.05em;
}
/* Large outlined number — feature cards */
.toco-card__num {
	font-size: 3.2rem;
	font-weight: 800;
	line-height: 1;
	color: rgba(46,85,57,0.2);
	letter-spacing: -0.04em;
	margin: 0 0 1.8rem !important;
	font-family: "Helvetica Neue", Arial, sans-serif;
}
.toco-card h3 { font-size: 1.1rem; margin: 0 0 0.75rem !important; }
.toco-card p { margin: 0 !important; color: var(--wp--preset--color--muted); font-size: 0.94rem; }

/* 3本柱カード */
.toco-pillar-card {
	background: #fff;
	border: 1px solid rgba(46,85,57,0.12);
	border-top: 3px solid #2E5539;
	border-radius: 12px;
	padding: 2rem 1.8rem 1.8rem;
	height: 100%;
	display: flex;
	flex-direction: column;
	gap: 0.7rem;
}
.toco-pillar-card__num {
	font-size: 3rem;
	font-weight: 900;
	color: rgba(46,85,57,0.1);
	line-height: 1;
	margin: 0 !important;
	letter-spacing: -0.03em;
}
.toco-pillar-card__tag {
	display: inline-block;
	font-size: 0.75rem !important;
	font-weight: 700 !important;
	color: var(--wp--preset--color--primary) !important;
	background: rgba(46,85,57,0.08) !important;
	padding: 0.22rem 0.7rem !important;
	border-radius: 20px !important;
	margin: 0 0 0.9rem !important;
	line-height: 1.5 !important;
	flex: none !important;
}
.toco-pillar-card h3 {
	font-size: 1.15rem !important;
	font-weight: 800 !important;
	color: #1A2E1D !important;
	margin: 0 0 0.6rem !important;
}
.toco-pillar-card p {
	color: var(--wp--preset--color--muted) !important;
	font-size: 0.93rem !important;
	line-height: 1.7 !important;
	margin: 0 !important;
	flex: 1;
}
.toco-pillar-card .wp-block-buttons {
	margin-top: auto;
}
.toco-pillar-card .wp-block-button__link {
	border-color: #2E5539 !important;
	color: #2E5539 !important;
	font-size: 0.875rem !important;
}
.toco-pillar-card .wp-block-button__link:hover {
	background: #2E5539 !important;
	color: #fff !important;
}

/* ステップ */
.toco-step { text-align: center; position: relative; display: flex; flex-direction: column; align-items: center; }
.toco-step__no {
	width: auto !important; height: auto !important; border-radius: 0 !important;
	background: none !important; box-shadow: none !important;
	min-width: auto !important; max-width: none !important; flex-shrink: unset !important;
	display: block !important; align-self: center !important;
	font-size: 4rem !important; font-weight: 800 !important; line-height: 1 !important;
	color: transparent !important;
	-webkit-text-stroke: 2.5px rgba(46,85,57,0.28) !important;
	letter-spacing: -0.05em !important;
	font-family: "Helvetica Neue", Arial, sans-serif !important;
	margin: 0 auto 2.4rem !important;
}
.toco-step h3 { font-size: 1.05rem; margin: 0 0 0.75rem !important; text-align: center; width: 100%; }
.toco-step p  { margin: 0 !important; color: var(--wp--preset--color--muted); font-size: 0.92rem; text-align: center; width: 100%; }

/* 料金プランカード */
.toco-plan {
	background: #fff;
	border: 1px solid #EBF2EC;
	border-radius: 20px;
	padding: clamp(1.8rem, 3vw, 2.4rem);
	height: 100%; text-align: center; position: relative;
	display: flex; flex-direction: column;
}
.toco-plan__name { font-weight: 800; font-size: 1.15rem; margin: 0.4rem 0 0.2rem !important; }
.toco-plan__price {
	font-size: clamp(2rem, 4vw, 2.6rem); font-weight: 800; line-height: 1;
	margin: 0.6rem 0 !important; color: var(--wp--preset--color--contrast);
	white-space: nowrap;
}
.toco-plan__price small { font-size: 0.42em; font-weight: 700; color: var(--wp--preset--color--muted); }
.toco-plan ul { text-align: left; margin: 1.2rem 0 !important; flex: 1; }
.toco-plan .wp-block-buttons { width: 100%; margin-top: auto; }
.toco-plan .wp-block-button { width: 100%; }
.toco-plan .wp-block-button__link {
	display: block; width: 100%; padding: 0.8rem 1rem !important;
	font-size: 1rem !important; white-space: nowrap;
}

/* セクション帯の交互背景 */
.toco-band-soft { background: var(--wp--preset--color--sand); }

/* 当社の想いセクション */
.toco-mission-stat {
	text-align: center;
	padding: 1.8rem 2rem;
	background: rgba(46,85,57,0.05);
	border-radius: 14px;
	border: 1px solid rgba(46,85,57,0.1);
}
.toco-mission-stat__num {
	font-size: clamp(2.6rem,5vw,3.8rem) !important;
	font-weight: 800 !important;
	line-height: 1 !important;
	color: var(--wp--preset--color--primary) !important;
	margin: 0 !important;
}
.toco-mission-stat__num small {
	font-size: 0.48em;
	vertical-align: 0.12em;
	font-weight: 700;
}

/* グリッド：カードを等高に */
.toco-sec .wp-block-columns { align-items: stretch; gap: clamp(0.8rem, 1.8vw, 1.4rem); }
.toco-sec .wp-block-column { display: flex; }
.toco-sec .wp-block-column > .wp-block-group { width: 100%; }
.toco-stats .wp-block-column { display: flex; justify-content: center; }
.toco-stat__num { white-space: nowrap; }

/* 全幅セクションのレイアウト */
main .toco-sec {
	width: 100vw !important;
	max-width: 100vw !important;
	margin-left: calc(50% - 50vw) !important;
	margin-right: calc(50% - 50vw) !important;
	padding-inline: 1.4rem;
	box-sizing: border-box;
}
main .toco-sec > .toco-h,
main .toco-sec > .wp-block-columns {
	max-width: 1140px !important;
	width: 100% !important;
	margin-inline: auto !important;
}
main .toco-sec .wp-block-columns { display: flex !important; gap: clamp(1rem, 2vw, 1.4rem) !important; }
main .toco-sec .wp-block-column { flex: 1 1 0 !important; min-width: 0 !important; }
@media (max-width: 781px) {
	main .toco-sec .wp-block-columns { flex-wrap: wrap !important; }
	main .toco-sec .wp-block-column { flex: 1 1 100% !important; }
}

/* カラム内の背景をリセット（toco-secでは個別カードが背景を担う） */
main .toco-sec .wp-block-columns .wp-block-column {
	background: transparent !important;
	border-radius: 0 !important;
	padding: 0 !important;
}

.ic-fit    { background-image: url(assets/img/icons/fit.svg); }


/* =========================================================================
   サービス詳細ページ専用コンポーネント
   ========================================================================= */

/* Before/After カード */
.toco-ba {
	background: #fff; border-radius: 16px;
	padding: clamp(1.4rem, 3vw, 2rem); height: 100%;
	box-shadow: 0 2px 16px rgba(46, 85, 57, 0.08);
	border: 1px solid #EBF2EC;
	position: relative; overflow: hidden;
}
.toco-ba--before { border-top: 3px solid #BDCEBE; }
.toco-ba--after  { border-top: 3px solid var(--wp--preset--color--primary); }
.toco-ba__label {
	font-size: 0.76rem !important; font-weight: 700 !important;
	letter-spacing: 0.16em !important; text-transform: uppercase;
	margin: 0 0 0.6rem !important;
}
.toco-ba--before .toco-ba__label { color: #566B58 !important; }
.toco-ba--after  .toco-ba__label { color: var(--wp--preset--color--primary) !important; }
.toco-ba h3 { font-size: 1rem; margin: 0 0 0.5rem !important; }
.toco-ba p:not(.toco-ba__label) { margin: 0 !important; font-size: 0.92rem; color: var(--wp--preset--color--muted); }

/* 体験者の声カード */
.toco-voice {
	background: #fff; border-radius: 16px;
	padding: clamp(1.6rem, 3vw, 2.2rem); height: 100%;
	box-shadow: 0 2px 16px rgba(46, 85, 57, 0.09);
	border: 1px solid #EBF2EC;
	position: relative;
}
.toco-voice::before {
	content: "\201C"; font-size: 5.5rem; line-height: 0.8; font-weight: 900;
	color: var(--wp--preset--color--primary);
	opacity: 0.1;
	position: absolute; top: 0.5rem; left: 0.9rem;
	pointer-events: none;
}
.toco-voice__text {
	padding-top: 1.8rem; font-size: 0.96rem;
	color: var(--wp--preset--color--contrast);
	margin: 0 0 1rem !important; line-height: 1.8;
}
.toco-voice__attr {
	font-size: 0.82rem !important; color: var(--wp--preset--color--muted) !important;
	margin: 0 !important; font-weight: 600;
}

/* ===== Site Reviews (GLSR) — 体験者の声 ===== */
/* ===== 体験者の声カード ===== */

/* チームメンバーカード */
.toco-member {
	background: #fff; border-radius: 16px;
	padding: clamp(1.5rem, 3vw, 2rem); height: 100%;
	box-shadow: 0 2px 16px rgba(46, 85, 57, 0.08);
	border: 1px solid #EBF2EC;
	border-left: 3px solid var(--wp--preset--color--primary);
}
.toco-member__role {
	font-size: 0.76rem !important; font-weight: 700 !important;
	color: var(--wp--preset--color--primary) !important;
	letter-spacing: 0.12em !important; margin: 0 0 0.3rem !important;
	text-transform: uppercase;
}
.toco-member__name { font-size: 1.1rem !important; margin: 0 0 0.5rem !important; }
.toco-member__bg {
	font-size: 0.82rem !important; color: var(--wp--preset--color--muted) !important;
	line-height: 1.65 !important; margin: 0 0 0.8rem !important;
}
.toco-member__quote {
	font-size: 0.87rem !important; color: var(--wp--preset--color--muted) !important;
	border-left: 2px solid var(--wp--preset--color--soft);
	padding-left: 0.8rem !important; margin: 0 !important; line-height: 1.75;
}

/* 問い合わせセクション */
.toco-contact-sec {
	background: linear-gradient(160deg, #EBF7EC 0%, #F8FCF8 100%) !important;
}
.toco-contact-box {
	background: #fff; border-radius: 20px;
	padding: clamp(2rem, 5vw, 3.5rem);
	box-shadow: 0 2px 20px rgba(46, 85, 57, 0.09);
	margin-top: var(--wp--preset--spacing--40);
}

/* FAQリスト */
.toco-faq-list { display: flex; flex-direction: column; gap: 0; }
.toco-faq-item {
	border-bottom: 1px solid #E0F0E3;
	padding: 1.3rem 0.5rem !important;
}
.toco-faq-item:first-child { border-top: 1px solid #E0F0E3; }
.toco-faq-item__q {
	font-weight: 700 !important; font-size: 1rem !important;
	margin: 0 0 0.5rem !important; color: var(--wp--preset--color--contrast) !important;
	padding-left: 1.8rem !important; position: relative;
}
.toco-faq-item__q::before {
	content: "Q"; position: absolute; left: 0; top: 0;
	font-size: 1rem; font-weight: 800;
	color: var(--wp--preset--color--primary);
}
.toco-faq-item__a {
	font-size: 0.95rem !important; color: var(--wp--preset--color--muted) !important;
	margin: 0 !important; padding-left: 1.8rem !important; line-height: 1.8;
	position: relative;
}
.toco-faq-item__a::before {
	content: "A"; position: absolute; left: 0; top: 0;
	font-size: 1rem; font-weight: 800;
	color: var(--wp--preset--color--accent-dark);
}

/* =========================================================================
   ブログ投稿カード（一覧・アーカイブページ）
   ========================================================================= */

/* ===== 記事カード（水平マガジンスタイル） ===== */
.toco-post-card {
	background: #fff;
	border-radius: 18px;
	overflow: hidden;
	box-shadow: 0 2px 20px rgba(46,85,57,0.07);
	border: 1px solid rgba(46,85,57,0.09);
	display: grid;
	grid-template-columns: 340px 1fr;
	min-height: 220px;
	transition: transform 0.22s ease, box-shadow 0.22s ease;
	position: relative;
}
.toco-post-card::before {
	content: '';
	position: absolute;
	top: 0; left: 0; right: 0;
	height: 3px;
	background: linear-gradient(90deg, var(--wp--preset--color--primary), #4A8B5C);
	opacity: 0;
	transition: opacity 0.22s;
}
.toco-post-card:hover {
	transform: translateY(-4px);
	box-shadow: 0 12px 40px rgba(46,85,57,0.15);
}
.toco-post-card:hover::before { opacity: 1; }

/* サムネイル */
.toco-post-card .toco-post-card-img,
.toco-post-card .wp-block-post-featured-image {
	margin: 0 !important;
	overflow: hidden;
	height: 100%;
	min-height: 220px;
	background: var(--wp--preset--color--soft);
	flex-shrink: 0;
}
.toco-post-card .wp-block-post-featured-image img,
.toco-post-card .wp-block-post-featured-image a img {
	width: 100% !important;
	height: 100% !important;
	object-fit: cover !important;
	border-radius: 0 !important;
	box-shadow: none !important;
	display: block !important;
	transition: transform 0.35s ease;
}
.toco-post-card:hover .wp-block-post-featured-image img { transform: scale(1.05); }

/* 本文エリア */
.toco-post-card-body {
	padding: 1.8rem 2rem 1.6rem !important;
	display: flex !important;
	flex-direction: column !important;
	gap: 0.55rem !important;
	flex: 1 !important;
}

/* カテゴリーバッジ */
.toco-post-card .toco-post-card-cat .wp-block-post-terms,
.toco-post-card .wp-block-post-terms {
	font-size: 0 !important;
	margin: 0 !important;
}
.toco-post-card .wp-block-post-terms a {
	font-size: 0.7rem !important;
	background: rgba(46,85,57,0.09) !important;
	color: var(--wp--preset--color--primary) !important;
	padding: 0.22rem 0.75rem !important;
	border-radius: 9999px !important;
	text-decoration: none !important;
	font-weight: 700 !important;
	letter-spacing: 0.02em !important;
}

/* タイトル */
.toco-post-card .wp-block-post-title {
	font-size: 1.08rem !important;
	font-weight: 800 !important;
	line-height: 1.55 !important;
	margin: 0 !important;
	display: -webkit-box !important;
	-webkit-line-clamp: 2 !important;
	-webkit-box-orient: vertical !important;
	overflow: hidden !important;
}
.toco-post-card .wp-block-post-title a {
	color: #1a2e1f !important;
	text-decoration: none !important;
	transition: color 0.15s !important;
}
.toco-post-card .wp-block-post-title a:hover { color: var(--wp--preset--color--primary) !important; }

/* 抜粋 */
.toco-post-card .wp-block-post-excerpt,
.toco-post-card .wp-block-post-excerpt__excerpt {
	font-size: 0.87rem !important;
	color: #555 !important;
	line-height: 1.75 !important;
	margin: 0 !important;
	flex: 1 !important;
	display: -webkit-box !important;
	-webkit-line-clamp: 3 !important;
	-webkit-box-orient: vertical !important;
	overflow: hidden !important;
}
.toco-post-card .wp-block-post-excerpt__more { display: none !important; }

/* フッター行 */
.toco-post-card-footer {
	margin-top: auto !important;
	padding-top: 1rem !important;
	border-top: 1px solid rgba(46,85,57,0.09) !important;
	align-items: center !important;
}
.toco-post-card .wp-block-post-date {
	font-size: 0.76rem !important;
	color: #aaa !important;
	margin: 0 !important;
}

/* 続きを読むボタン */
.toco-post-card .toco-post-card-more a,
.toco-post-card .wp-block-read-more {
	display: inline-flex !important;
	align-items: center !important;
	gap: 0.3rem !important;
	background: var(--wp--preset--color--primary) !important;
	color: #fff !important;
	font-size: 0.8rem !important;
	font-weight: 700 !important;
	padding: 0.45rem 1.1rem !important;
	border-radius: 9999px !important;
	text-decoration: none !important;
	white-space: nowrap !important;
	letter-spacing: 0.02em !important;
	transition: background 0.15s, transform 0.15s !important;
}
.toco-post-card .toco-post-card-more a:hover,
.toco-post-card .wp-block-read-more:hover {
	background: #1E3A28 !important;
	transform: translateX(2px) !important;
}

/* モバイル：縦積みに切り替え */
@media (max-width: 700px) {
	.toco-post-card {
		grid-template-columns: 1fr !important;
		grid-template-rows: 200px auto !important;
	}
	.toco-post-card .wp-block-post-featured-image {
		min-height: 200px !important;
		height: 200px !important;
	}
	.toco-post-card-body {
		padding: 1.2rem 1.3rem 1.3rem !important;
	}
}

/* 記事なし fallback */
.wp-block-query-no-results p { text-align: center; padding: 3rem 0; }

/* =========================================================================
   カテゴリガイドページ クリエイティブリデザイン (truancy-guide)
   ========================================================================= */

/* --- セクションラベル --- */
.toco-cats-label {
	font-size: 0.7rem !important;
	font-weight: 900 !important;
	letter-spacing: 0.22em !important;
	color: #8BAD8B !important;
	margin-bottom: 2.8rem !important;
	text-transform: uppercase;
}

/* --- 記事セクション見出し: エディトリアル・チャプタースタイル --- */
h2[id^="cat-"] {
	position: relative !important;
	overflow: hidden !important;
	display: flex !important;
	align-items: center !important;
	gap: 1rem !important;
	background: linear-gradient(135deg, #1A3020 0%, #245030 60%, #2E5539 100%) !important;
	color: #fff !important;
	padding: 1.1rem 1.6rem !important;
	border-radius: 12px 12px 0 0 !important;
	font-size: 1rem !important;
	font-weight: 800 !important;
	margin-top: 0 !important;
	margin-bottom: 0 !important;
	margin-left: auto !important;
	margin-right: auto !important;
	max-width: 880px !important;
	border-left: none !important;
	scroll-margin-top: 80px !important;
}

/* 大型ウォーターマーク数字 */
h2[id^="cat-"]::after {
	content: attr(data-num) !important;
	position: absolute !important;
	right: -0.05em !important;
	top: 50% !important;
	transform: translateY(-50%) !important;
	font-size: 6.5rem !important;
	font-weight: 900 !important;
	line-height: 1 !important;
	letter-spacing: -0.05em !important;
	color: rgba(255,255,255,0.07) !important;
	pointer-events: none !important;
}

/* 見出し左端: 縦ライン装飾 */
h2[id^="cat-"]::before {
	content: '' !important;
	display: block !important;
	width: 3px !important;
	height: 1.4em !important;
	background: rgba(255,255,255,0.5) !important;
	border-radius: 2px !important;
	flex-shrink: 0 !important;
}

/* --- 記事リストパネル --- */
h2[id^="cat-"] + .wp-block-latest-posts {
	background: #F5FAF6 !important;
	border: 1px solid rgba(46,85,57,0.1) !important;
	border-top: 2px solid rgba(255,255,255,0.3) !important;
	border-radius: 0 0 12px 12px !important;
	padding: 0.65rem 1rem 0.8rem !important;
	max-width: 880px !important;
	margin: 0 auto !important;
}

.wp-block-latest-posts {
	list-style: none !important;
	padding: 0 !important;
	margin: 0 !important;
	display: grid !important;
	grid-template-columns: 1fr 1fr !important;
	column-gap: 1.5rem !important;
	row-gap: 0 !important;
}

.wp-block-latest-posts li {
	display: flex !important;
	align-items: baseline !important;
	gap: 0.4rem !important;
	padding: 0.52rem 0.5rem !important;
	border-radius: 7px !important;
	border-bottom: 1px solid rgba(180,210,182,0.5) !important;
	transition: background 0.13s ease !important;
}

.wp-block-latest-posts li:last-child { border-bottom: none !important; }

.wp-block-latest-posts li:hover {
	background: #EBF2EC !important;
}

.wp-block-latest-posts li::before {
	content: "›" !important;
	color: #8BAD8B !important;
	font-size: 1.1rem !important;
	font-weight: 700 !important;
	flex-shrink: 0 !important;
	line-height: 1 !important;
}

.wp-block-latest-posts__post-title {
	color: #1A2E1D !important;
	text-decoration: none !important;
	font-size: 0.875rem !important;
	font-weight: 500 !important;
	line-height: 1.55 !important;
	flex: 1 !important;
	transition: color 0.13s ease !important;
}

.wp-block-latest-posts__post-title:hover { color: #2E5539 !important; }

.wp-block-latest-posts__post-date {
	font-size: 0.67rem !important;
	color: #85A888 !important;
	white-space: nowrap !important;
	flex-shrink: 0 !important;
}

.wp-block-group.has-white-background-color .wp-block-spacer { height: 2.2rem !important; }

@media (max-width: 781px) {
	.wp-block-latest-posts { grid-template-columns: 1fr !important; }
	h2[id^="cat-"] {
		font-size: 0.9rem !important;
		padding: 0.9rem 1.1rem !important;
	}
	h2[id^="cat-"]::after {
		font-size: 4.5rem !important;
	}
}
/* クエリグリッド行揃え */
.wp-block-post-template.is-layout-grid { align-items: stretch !important; }
.wp-block-post-template.is-layout-grid > li { display: flex; flex-direction: column; }

/* 投稿一覧グリッド */
.toco-post-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: clamp(1rem, 2vw, 1.5rem);
}
@media (max-width: 600px) {
	.toco-post-grid { grid-template-columns: 1fr; }
}

/* ページネーション */
.wp-block-query-pagination {
	display: flex;
	justify-content: center;
	gap: 0.5rem;
	margin-top: var(--wp--preset--spacing--40);
}
.wp-block-query-pagination a,
.wp-block-query-pagination-numbers a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 2.4rem;
	height: 2.4rem;
	padding: 0 0.8rem;
	border: 1px solid #EBF2EC;
	border-radius: 8px;
	background: #fff;
	color: var(--wp--preset--color--primary);
	font-size: 0.9rem;
	text-decoration: none;
	transition: background 0.15s ease, border-color 0.15s ease;
}
.wp-block-query-pagination a:hover,
.wp-block-query-pagination-numbers a:hover {
	background: var(--wp--preset--color--soft);
	border-color: var(--wp--preset--color--primary);
}
.wp-block-query-pagination-numbers .current {
	background: var(--wp--preset--color--primary);
	color: #fff;
	border-color: var(--wp--preset--color--primary);
	border-radius: 8px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 2.4rem;
	height: 2.4rem;
	padding: 0 0.8rem;
	font-size: 0.9rem;
}

/* 検索フォーム */
.wp-block-search .wp-block-search__inside-wrapper {
	display: flex;
	gap: 0.5rem;
}
.wp-block-search__input {
	flex: 1;
	border: 1px solid #DDF0E0;
	border-radius: 10px;
	padding: 0.7rem 1rem;
	font-size: 1rem;
	font-family: inherit;
	background: #FAFCFA;
	transition: border-color 0.15s ease;
}
.wp-block-search__input:focus {
	border-color: var(--wp--preset--color--primary);
	outline: none;
}
.wp-block-search__button {
	background: var(--wp--preset--color--primary);
	color: #fff;
	border: none;
	border-radius: 10px;
	padding: 0.7rem 1.4rem;
	font-size: 1rem;
	font-weight: 700;
	cursor: pointer;
	transition: background 0.15s ease;
}
.wp-block-search__button:hover {
	background: var(--wp--preset--color--primary-dark);
}

/* =========================================================================
   インタラクション
   ========================================================================= */

.toco-card, .toco-plan, .toco-voice, .toco-member, .toco-ba {
	transition: transform 0.2s cubic-bezier(0.25, 0.46, 0.45, 0.94),
	            box-shadow  0.2s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}
.toco-card:hover  { transform: translateY(-4px); box-shadow: 0 8px 28px rgba(46, 85, 57, 0.16); }
.toco-plan:hover  { transform: translateY(-4px); box-shadow: 0 8px 28px rgba(46, 85, 57, 0.14); }
.toco-voice:hover { transform: translateY(-3px); box-shadow: 0 8px 28px rgba(46, 85, 57, 0.14); }
.toco-member:hover { transform: translateY(-3px); box-shadow: 0 8px 28px rgba(46, 85, 57, 0.13); }


/* ── SERVICE FLOW リデザイン ── */
.toco-service-flow {
	background: linear-gradient(140deg, #182B1B 0%, #2E5539 55%, #1F3D27 100%) !important;
	position: relative;
	overflow: hidden;
}
.toco-service-flow::before {
	content: '';
	position: absolute;
	inset: 0;
	background: radial-gradient(ellipse 70% 60% at 80% 20%, rgba(74,128,96,0.25) 0%, transparent 70%);
	pointer-events: none;
}

/* Columns: stretch + gap handled via pseudo-arrows */
.toco-flow-cols {
	align-items: stretch !important;
	position: relative;
}
.toco-flow-cols .wp-block-column {
	display: flex;
	flex-direction: column;
	position: relative;
}
/* Arrow connectors between cards (desktop) */
@media (min-width: 641px) {
	.toco-flow-cols .wp-block-column:not(:last-child) {
		margin-right: 28px;
	}
	.toco-flow-cols .wp-block-column:not(:last-child)::after {
		content: '';
		position: absolute;
		right: -22px;
		top: 38px;
		width: 0;
		height: 0;
		border-top: 11px solid transparent;
		border-bottom: 11px solid transparent;
		border-left: 15px solid rgba(168,200,160,0.45);
		z-index: 2;
	}
}

/* Cards */
.toco-flow-step {
	background: rgba(255,255,255,0.97) !important;
	box-shadow: 0 8px 32px rgba(0,0,0,0.22), 0 1px 4px rgba(0,0,0,0.08) !important;
	flex: 1;
	transition: transform 0.25s ease, box-shadow 0.25s ease;
}
.toco-flow-step:hover {
	transform: translateY(-6px);
	box-shadow: 0 18px 52px rgba(0,0,0,0.26), 0 2px 6px rgba(0,0,0,0.07) !important;
}

/* Step number badge */
.toco-step-badge {
	width: 50px;
	height: 50px;
	border-radius: 50%;
	background: linear-gradient(135deg, #2E5539 0%, #4A8060 100%);
	color: #fff;
	font-size: 0.82rem;
	font-weight: 800;
	letter-spacing: 0.06em;
	display: flex;
	align-items: center;
	justify-content: center;
	margin-bottom: 1.2rem;
	box-shadow: 0 4px 14px rgba(46,85,57,0.4);
}

/* SP: スタック時はマージン・矢印なし */
@media (max-width: 640px) {
	.toco-flow-cols .wp-block-column:not(:last-child) { margin-right: 0; margin-bottom: 1.2rem; }
	.toco-flow-step:hover { transform: none; }
}

/* フォームスタイル */
.wpcf7 input[type=text],
.wpcf7 input[type=email],
.wpcf7 textarea,
.wpcf7 select {
	width: 100%; border: 1px solid #DDF0E0; border-radius: 10px;
	padding: 0.8rem 1rem; font-size: 1rem; font-family: inherit;
	background: #FAFCFA; transition: border-color 0.15s ease;
	box-sizing: border-box;
}
.wpcf7 select {
	appearance: none;
	-webkit-appearance: none;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%232E5539' d='M1 1l5 5 5-5'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 1rem center;
	padding-right: 2.5rem;
	cursor: pointer;
}
.wpcf7 input:focus,
.wpcf7 textarea:focus,
.wpcf7 select:focus { border-color: var(--wp--preset--color--primary); outline: none; }
.wpcf7 input[type=submit] {
	background: var(--wp--preset--color--primary); color: #fff;
	border: none; border-radius: 9999px; padding: 1rem 2.8rem;
	font-size: 1.05rem; font-weight: 700; cursor: pointer;
	width: 100%; transition: background 0.15s ease;
}
.wpcf7 input[type=submit]:hover {
	background: var(--wp--preset--color--primary-dark);
}
/* ラジオ・チェックボックス */
.wpcf7 .wpcf7-list-item {
	display: inline-flex; align-items: center; margin-right: 1.2em;
}
.wpcf7 .wpcf7-list-item label {
	display: inline-flex; align-items: center; gap: 0.4em; cursor: pointer; font-size: 0.97rem;
}
.wpcf7 input[type=radio],
.wpcf7 input[type=checkbox] {
	width: 1.1em; height: 1.1em;
	accent-color: var(--wp--preset--color--primary);
	cursor: pointer; flex-shrink: 0;
}

/* 記事アイキャッチバンド */
.toco-band.toco-article-hero { width: 100%; overflow: hidden; }
.toco-band.toco-article-hero img {
	height: clamp(220px, 32vw, 400px);
	object-fit: cover; width: 100%;
	border-radius: 0;
}

/* モバイル調整 */
@media (max-width: 781px) {
	.toco-ba { margin-bottom: 0.6rem; }

	.toco-member { margin-bottom: 0.8rem; }
	.toco-faq-item { padding: 1rem 0 !important; }
}

/* =========================================================================
   スタッツバンド（ダーク）
   ========================================================================= */

.toco-stats-band {
	background: linear-gradient(135deg, #1A3020 0%, #2E5539 60%, #4A8B5C 100%) !important;
}
.toco-stats-band .toco-stats {
	background: transparent !important;
}
.toco-stats-band .toco-stat__num {
	color: #fff !important;
	background-image: none !important;
}
.toco-stats-band .toco-stat__num small { color: rgba(255,255,255,0.75) !important; }
.toco-stats-band .toco-stat__label { color: #DDF0E0 !important; }
.toco-stats-band .toco-stat__sub { color: rgba(255,255,255,0.55) !important; }
.toco-stats-band .wp-block-columns {
	border: none !important;
}
/* 区切り線 */
.toco-stats-band .toco-stat {
	border-right: 1px solid rgba(255,255,255,0.15);
	padding-right: clamp(1rem, 3vw, 2.5rem);
	padding-left: clamp(1rem, 3vw, 2.5rem);
}
.toco-stats-band .wp-block-column:last-child .toco-stat {
	border-right: none;
}

/* =========================================================================
   ステップ：コネクター（デスクトップ）
   ========================================================================= */

@media (min-width: 782px) {
	.toco-step-row {
		position: relative;
	}
	.toco-step-row::before {
		display: none;
	}
}

/* =========================================================================
   クオートカード（体験者の声 強化）
   ========================================================================= */

.toco-voice {
	position: relative;
}
.toco-voice__stars {
	display: flex !important;
	gap: 0.15rem !important;
	margin: 0 0 0.7rem !important;
	color: #A8C8A0 !important;
	font-size: 1rem !important;
}

/* =========================================================================
   セクション共通：番号装飾タグ
   ========================================================================= */

.toco-section-number {
	display: inline-block !important;
	font-size: 0.7rem !important;
	font-weight: 800 !important;
	letter-spacing: 0.12em !important;
	color: var(--wp--preset--color--primary) !important;
	background: var(--wp--preset--color--soft) !important;
	padding: 0.2rem 0.75rem !important;
	border-radius: 9999px !important;
	margin: 0 0 0.8rem !important;
}

/* =========================================================================
   CTA セクション（強化）
   ========================================================================= */

.toco-cta {
	background-image: linear-gradient(145deg, #2E5539 0%, #4A8B5C 50%, #7DAA85 100%) !important;
	background-color: transparent !important;
	border-radius: 28px;
	color: #fff;
}
.toco-cta h2 { color: #fff !important; }
.toco-cta p { color: rgba(255,255,255,0.88) !important; }
.toco-cta .wp-block-button:not(.is-style-outline) > .wp-block-button__link {
	background-color: #fff !important;
	color: var(--wp--preset--color--primary) !important;
	box-shadow: 0 4px 20px rgba(0,0,0,0.15) !important;
}
.toco-cta .wp-block-button:not(.is-style-outline) > .wp-block-button__link:hover {
	background-color: var(--wp--preset--color--soft) !important;
}

/* =========================================================================
   フッター
   ========================================================================= */

footer.wp-block-group .wp-block-navigation a {
	color: #85AD88 !important;
	font-size: 0.82rem !important;
	text-decoration: none !important;
	transition: color 0.15s ease;
}
footer.wp-block-group .wp-block-navigation a:hover {
	color: #fff !important;
}

/* =========================================================================
   スクロールフェードイン
   ========================================================================= */

@media (prefers-reduced-motion: no-preference) {
	.toco-card,
	.toco-step,
	.toco-plan,
	.toco-voice,
	.toco-member,
	.toco-ba,
	.toco-review-card,
	.toco-cat-card,
	.toco-story-section,
	.toco-flow-step {
		opacity: 0;
		transform: translateY(20px);
		animation: tocoFadeUp 0.5s ease forwards;
	}
	.toco-card:nth-child(1), .toco-step:nth-child(1), .toco-plan:nth-child(1), .toco-voice:nth-child(1), .toco-member:nth-child(1), .toco-ba:nth-child(1), .toco-review-card:nth-child(1), .toco-cat-card:nth-child(1), .toco-story-section:nth-child(1), .toco-flow-step:nth-child(1) { animation-delay: 0.05s; }
	.toco-card:nth-child(2), .toco-step:nth-child(2), .toco-plan:nth-child(2), .toco-voice:nth-child(2), .toco-member:nth-child(2), .toco-ba:nth-child(2), .toco-review-card:nth-child(2), .toco-cat-card:nth-child(2), .toco-story-section:nth-child(2), .toco-flow-step:nth-child(2) { animation-delay: 0.12s; }
	.toco-card:nth-child(3), .toco-step:nth-child(3), .toco-plan:nth-child(3), .toco-voice:nth-child(3), .toco-member:nth-child(3), .toco-ba:nth-child(3), .toco-review-card:nth-child(3), .toco-cat-card:nth-child(3), .toco-story-section:nth-child(3), .toco-flow-step:nth-child(3) { animation-delay: 0.19s; }
	.toco-card:nth-child(4), .toco-ba:nth-child(4), .toco-review-card:nth-child(4), .toco-cat-card:nth-child(4), .toco-story-section:nth-child(4) { animation-delay: 0.26s; }
	.toco-story-section:nth-child(5) { animation-delay: 0.33s; }
	@keyframes tocoFadeUp {
		to { opacity: 1; transform: translateY(0); }
	}
}

/* =========================================================================
   口コミページ: 評価サマリーカード
   ========================================================================= */

.toco-rating-summary {
	border-radius: 16px !important;
	box-shadow: 0 4px 24px rgba(46,85,57,0.10) !important;
	gap: 1.2rem !important;
}

/* =========================================================================
   口コミカード
   ========================================================================= */

.toco-review-card {
	transition: box-shadow 0.2s ease, transform 0.2s ease;
}
.toco-review-card:hover {
	box-shadow: 0 8px 32px rgba(46,85,57,0.14) !important;
	transform: translateY(-2px);
}

/* =========================================================================
   創業の想いページ: ストーリーセクション
   ========================================================================= */

.toco-story-section {
	transition: box-shadow 0.2s ease;
}
.toco-story-section:hover {
	box-shadow: 0 4px 20px rgba(46,85,57,0.10) !important;
}

/* =========================================================================
   創業の想いページ: タイムライン
   ========================================================================= */

.toco-timeline__item {
	position: relative;
	padding-left: 1.2rem !important;
	border-left: 2px solid var(--wp--preset--color--soft);
}
.toco-timeline__item:last-child {
	border-left-color: var(--wp--preset--color--accent);
}

/* =========================================================================
   記事一覧ページ: カテゴリカード 全面リデザイン
   ========================================================================= */

.toco-cat-card {
	position: relative !important;
	overflow: hidden !important;
	background: #ffffff !important;
	border: 1px solid rgba(46,85,57,0.1) !important;
	border-top: none !important;
	border-left: none !important;
	box-shadow: 0 2px 18px rgba(46,85,57,0.08), 0 1px 4px rgba(0,0,0,0.04) !important;
	border-radius: 16px !important;
	padding: 1.6rem 1.4rem 2rem !important;
	cursor: pointer !important;
	transition: transform 0.25s cubic-bezier(0.34,1.56,0.64,1), box-shadow 0.25s ease, border-color 0.2s !important;
}

/* グラデーション上端ライン */
.toco-cat-card::before {
	content: '' !important;
	position: absolute !important;
	top: 0 !important;
	left: 0 !important;
	right: 0 !important;
	height: 3px !important;
	background: linear-gradient(90deg, #2E5539 0%, #7DAA85 55%, #A8C8A0 100%) !important;
}

/* 右下矢印 */
.toco-cat-card::after {
	content: '→' !important;
	position: absolute !important;
	bottom: 0.9rem !important;
	right: 1.1rem !important;
	font-size: 0.82rem !important;
	color: #C0D8C4 !important;
	transition: color 0.2s ease, transform 0.2s ease !important;
}

.toco-cat-card:hover {
	transform: translateY(-6px) !important;
	box-shadow: 0 20px 48px rgba(46,85,57,0.18), 0 6px 16px rgba(46,85,57,0.1) !important;
	border-color: rgba(46,85,57,0.22) !important;
}

.toco-cat-card:hover::after {
	color: #2E5539 !important;
	transform: translateX(4px) !important;
}

/* カード内見出し */
.toco-cat-card .wp-block-heading {
	font-size: 0.97rem !important;
	font-weight: 800 !important;
	color: #1A2E1D !important;
	line-height: 1.45 !important;
	margin: 0 0 0.4rem !important;
}

/* カード内説明文 */
.toco-cat-card .has-text-color {
	font-size: 0.78rem !important;
	color: #6B8C6E !important;
	line-height: 1.6 !important;
	margin: 0 !important;
}

.toco-cat-link {
	position: absolute;
	inset: 0;
	border-radius: 16px;
	z-index: 1;
}

/* =========================================================================
   学校向けページ: フローステップ
   ========================================================================= */

.toco-flow-step {
	transition: box-shadow 0.2s ease;
}
.toco-flow-step:hover {
	box-shadow: 0 6px 24px rgba(46,85,57,0.12) !important;
}

/* =========================================================================
   ページヒーロー共通
   ========================================================================= */

.toco-page-hero {
	background: linear-gradient(160deg, #F0F7F1 0%, #EBF2EC 60%, #EBF7EC 100%) !important;
}

/* =========================================================================
   FAQページ
   ========================================================================= */

.toco-faq-item {
	transition: box-shadow 0.2s ease;
}
.toco-faq-item:hover {
	box-shadow: 0 4px 20px rgba(46,85,57,0.10) !important;
}
.toco-faq-item .qa-question {
	position: relative;
	padding-left: 1.4rem;
}
.toco-faq-item .qa-question::before {
	content: "Q";
	position: absolute;
	left: 0;
	top: 0;
	font-size: 0.8rem;
	font-weight: 800;
	color: var(--wp--preset--color--primary);
	line-height: 1.7;
}
.toco-faq-item .qa-answer {
	position: relative;
	padding-left: 1.4rem;
}
.toco-faq-item .qa-answer::before {
	content: "A";
	position: absolute;
	left: 0;
	top: 0;
	font-size: 0.8rem;
	font-weight: 800;
	color: var(--wp--preset--color--accent-dark);
	line-height: 1.7;
}

/* =========================================================================
   ドキュメントページ（汎用 page.html）
   ========================================================================= */

.toco-doc .wp-block-heading {
	color: var(--wp--preset--color--contrast);
	scroll-margin-top: 80px;
}
.toco-doc p,
.toco-doc li {
	font-size: 0.96rem;
	line-height: 1.9;
	color: #1A2E1D;
}

/* =========================================================================
   投稿記事一覧 (archive / query ブロック)
   ========================================================================= */

.wp-block-query .wp-block-post-featured-image img {
	width: 100% !important;
	height: 180px !important;
	object-fit: cover !important;
	border-radius: 8px !important;
}
.wp-block-query .wp-block-post-title a {
	color: var(--wp--preset--color--contrast) !important;
	text-decoration: none !important;
	transition: color 0.15s ease;
}
.wp-block-query .wp-block-post-title a:hover {
	color: var(--wp--preset--color--primary) !important;
}
.wp-block-query-pagination {
	gap: 0.5rem !important;
}
.wp-block-query-pagination a,
.wp-block-query-pagination-numbers .page-numbers {
	padding: 0.4rem 0.9rem !important;
	border-radius: 8px !important;
	font-size: 0.88rem !important;
	color: var(--wp--preset--color--primary) !important;
	background: var(--wp--preset--color--soft) !important;
	text-decoration: none !important;
	transition: background 0.15s ease;
}
.wp-block-query-pagination a:hover,
.wp-block-query-pagination-numbers .page-numbers.current {
	background: var(--wp--preset--color--primary) !important;
	color: #fff !important;
}

/* =========================================================================
   CSS シェイプシステム（絵文字・汎用アイコン代替）
   ========================================================================= */

/* ベース */
.toco-s {
	display: block;
	width: 44px;
	height: 44px;
	margin-bottom: 0.9rem;
	flex-shrink: 0;
}

/* 1: グラデーション円（プライマリ）*/
.toco-s-1 {
	border-radius: 50%;
	background: linear-gradient(135deg, #2E5539 0%, #4A8B5C 100%);
	box-shadow: 0 4px 14px rgba(46,85,57,0.28);
}

/* 2: ダイヤモンド（アクセント）*/
.toco-s-2 {
	background: linear-gradient(135deg, #A8C8A0 0%, #6A9B78 100%);
	clip-path: polygon(50% 0%, 100% 50%, 50% 100%, 0% 50%);
	box-shadow: 0 4px 14px rgba(106,155,120,0.25);
}

/* 3: ヘキサゴン（ディープパープル）*/
.toco-s-3 {
	width: 44px;
	height: 50px;
	background: linear-gradient(160deg, #1E3A28 0%, #2E5539 100%);
	clip-path: polygon(25% 0%, 75% 0%, 100% 50%, 75% 100%, 25% 100%, 0% 50%);
	box-shadow: 0 4px 14px rgba(36,80,48,0.28);
}

/* 4: オーガニックブロブ（ソフト）*/
.toco-s-4 {
	background: linear-gradient(135deg, #7DAA85 0%, #4A8B5C 100%);
	border-radius: 62% 38% 46% 54% / 60% 44% 56% 40%;
	box-shadow: 0 4px 14px rgba(46,85,57,0.20);
}

/* 5: 三角形（フォワード）*/
.toco-s-5 {
	background: linear-gradient(160deg, #2E5539 0%, #4A8B5C 100%);
	clip-path: polygon(50% 0%, 100% 100%, 0% 100%);
	box-shadow: 0 4px 14px rgba(46,85,57,0.22);
}

/* 6: アーチ / ドーム */
.toco-s-6 {
	background: linear-gradient(180deg, #2E5539 0%, #1E3A28 100%);
	border-radius: 50% 50% 0 0 / 100% 100% 0 0;
	box-shadow: 0 4px 14px rgba(46,85,57,0.22);
}

/* 7: スター多角形（フォーカス・強調）*/
.toco-s-7 {
	background: linear-gradient(135deg, #A8C8A0 0%, #2E5539 100%);
	clip-path: polygon(50% 0%, 61% 35%, 98% 35%, 68% 57%, 79% 91%, 50% 70%, 21% 91%, 32% 57%, 2% 35%, 39% 35%);
	box-shadow: 0 4px 14px rgba(46,85,57,0.20);
}

/* =========================================================================
   カテゴリアイコン: オリジナル抽象シェイプ（SVGベース）
   ========================================================================= */

.toco-cat-icon {
	width: 52px;
	height: 52px;
	margin-bottom: 1rem;
	display: block;
	background-size: contain;
	background-repeat: no-repeat;
	background-position: center;
}

/* 01 同心円オフセット（背景の層を示す） */
.toco-cat-icon[data-cat="01"] {
	background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 52 52' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='20' cy='20' r='14' stroke='%232E5539' stroke-width='1.8'/%3E%3Ccircle cx='25' cy='26' r='9.5' stroke='%234A8B5C' stroke-width='1.5'/%3E%3Ccircle cx='30' cy='32' r='5' fill='%23EBF2EC' stroke='%232E5539' stroke-width='1.5'/%3E%3C/svg%3E");
}

/* 02 上昇する3点連結（成長・アプローチ） */
.toco-cat-icon[data-cat="02"] {
	background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 52 52' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='10' cy='40' r='3.5' fill='%237DAA85'/%3E%3Ccircle cx='26' cy='24' r='4' fill='%234A8B5C'/%3E%3Ccircle cx='42' cy='10' r='5' fill='%232E5539'/%3E%3Cline x1='13' y1='38' x2='23' y2='27' stroke='%238BAD8B' stroke-width='1.8' stroke-linecap='round'/%3E%3Cline x1='29' y1='22' x2='38' y2='14' stroke='%234A8B5C' stroke-width='1.8' stroke-linecap='round'/%3E%3Cline x1='8' y1='44' x2='46' y2='44' stroke='%23EBF2EC' stroke-width='1.5' stroke-linecap='round'/%3E%3C/svg%3E");
}

/* 03 ジグザグ→滑らかな波（緊張→安心） */
.toco-cat-icon[data-cat="03"] {
	background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 52 52' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M4 34 C7 22 9 18 13 28 C17 38 19 14 23 22 C27 30 31 20 52 24' stroke='%232E5539' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3Cpath d='M4 42 L52 42' stroke='%23EBF2EC' stroke-width='1.5' stroke-linecap='round' stroke-dasharray='3 3'/%3E%3C/svg%3E");
}

/* 04 大小の重なり合う二円（親子・二者関係） */
.toco-cat-icon[data-cat="04"] {
	background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 52 52' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='19' cy='26' r='13' stroke='%232E5539' stroke-width='1.8'/%3E%3Ccircle cx='37' cy='26' r='9' stroke='%237DAA85' stroke-width='1.8'/%3E%3C/svg%3E");
}

/* 05 最小限の家形状（屋根の三角＋壁＋扉） */
.toco-cat-icon[data-cat="05"] {
	background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 52 52' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M6 27 L26 8 L46 27' stroke='%232E5539' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3Crect x='13' y='27' width='26' height='18' rx='1.5' stroke='%234A8B5C' stroke-width='1.8'/%3E%3Crect x='21' y='32' width='10' height='13' rx='1' fill='%23EBF2EC' stroke='%238BAD8B' stroke-width='1.3'/%3E%3C/svg%3E");
}

/* 06 二重ヘリックス螺旋（複雑な心の構造） */
.toco-cat-icon[data-cat="06"] {
	background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 52 52' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M10 46 C10 36 16 26 26 26 C36 26 42 16 42 6' stroke='%232E5539' stroke-width='2' stroke-linecap='round'/%3E%3Cpath d='M10 6 C10 16 16 26 26 26 C36 26 42 36 42 46' stroke='%237DAA85' stroke-width='2' stroke-linecap='round'/%3E%3Ccircle cx='26' cy='26' r='3.5' fill='%232E5539'/%3E%3C/svg%3E");
}

/* 07 フラグメント矩形（画面の断絶・依存） */
.toco-cat-icon[data-cat="07"] {
	background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 52 52' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='9' y='9' width='34' height='34' rx='3' stroke='%234A8B5C' stroke-width='1.8'/%3E%3Cpath d='M9 21 L43 21' stroke='%237DAA85' stroke-width='1.3'/%3E%3Cpath d='M9 33 L43 33' stroke='%237DAA85' stroke-width='1.3'/%3E%3Cpath d='M21 9 L21 43' stroke='%237DAA85' stroke-width='1.3'/%3E%3Cpath d='M33 9 L33 43' stroke='%237DAA85' stroke-width='1.3'/%3E%3Crect x='21' y='21' width='12' height='12' fill='%232E5539' rx='1'/%3E%3C/svg%3E");
}

/* 08 三角形配置ノード＋ブリッジ（連携・ネットワーク） */
.toco-cat-icon[data-cat="08"] {
	background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 52 52' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='26' cy='8' r='5' stroke='%232E5539' stroke-width='1.8'/%3E%3Ccircle cx='8' cy='40' r='5' stroke='%234A8B5C' stroke-width='1.8'/%3E%3Ccircle cx='44' cy='40' r='5' stroke='%234A8B5C' stroke-width='1.8'/%3E%3Cline x1='22' y1='12' x2='12' y2='36' stroke='%238BAD8B' stroke-width='1.5' stroke-linecap='round'/%3E%3Cline x1='30' y1='12' x2='40' y2='36' stroke='%238BAD8B' stroke-width='1.5' stroke-linecap='round'/%3E%3Cline x1='13' y1='40' x2='39' y2='40' stroke='%237DAA85' stroke-width='1.5' stroke-linecap='round'/%3E%3C/svg%3E");
}

/* 09 中央から放射状ライン（外部ハブ・支援ネット） */
.toco-cat-icon[data-cat="09"] {
	background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 52 52' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='26' cy='26' r='6' fill='%23EBF2EC' stroke='%232E5539' stroke-width='1.8'/%3E%3Ccircle cx='26' cy='8' r='3.5' stroke='%234A8B5C' stroke-width='1.5'/%3E%3Ccircle cx='44' cy='16' r='3.5' stroke='%237DAA85' stroke-width='1.5'/%3E%3Ccircle cx='44' cy='36' r='3.5' stroke='%237DAA85' stroke-width='1.5'/%3E%3Ccircle cx='26' cy='44' r='3.5' stroke='%234A8B5C' stroke-width='1.5'/%3E%3Ccircle cx='8' cy='36' r='3.5' stroke='%237DAA85' stroke-width='1.5'/%3E%3Ccircle cx='8' cy='16' r='3.5' stroke='%234A8B5C' stroke-width='1.5'/%3E%3Cline x1='26' y1='20' x2='26' y2='12' stroke='%238BAD8B' stroke-width='1.3'/%3E%3Cline x1='31' y1='22' x2='41' y2='18' stroke='%238BAD8B' stroke-width='1.3'/%3E%3Cline x1='31' y1='30' x2='41' y2='34' stroke='%238BAD8B' stroke-width='1.3'/%3E%3Cline x1='26' y1='32' x2='26' y2='41' stroke='%238BAD8B' stroke-width='1.3'/%3E%3Cline x1='21' y1='30' x2='11' y2='34' stroke='%238BAD8B' stroke-width='1.3'/%3E%3Cline x1='21' y1='22' x2='11' y2='18' stroke='%238BAD8B' stroke-width='1.3'/%3E%3C/svg%3E");
}

/* 10 ベジェ曲線→スター（軌跡・目標地点） */
.toco-cat-icon[data-cat="10"] {
	background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 52 52' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M6 44 C10 34 16 22 30 16' stroke='%234A8B5C' stroke-width='2' stroke-linecap='round'/%3E%3Cpath d='M38 6 L40 11 L46 12 L42 16 L43 22 L38 19 L33 22 L34 16 L30 12 L36 11 Z' stroke='%232E5539' stroke-width='1.5' stroke-linejoin='round' fill='%23EBF2EC'/%3E%3Ccircle cx='6' cy='44' r='2.5' fill='%237DAA85'/%3E%3C/svg%3E");
}

/* 11 同心弧（保護の層・ドーム） */
.toco-cat-icon[data-cat="11"] {
	background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 52 52' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M6 40 C6 20 16 6 26 6 C36 6 46 20 46 40' stroke='%232E5539' stroke-width='2' stroke-linecap='round'/%3E%3Cpath d='M13 40 C13 24 19 12 26 12 C33 12 39 24 39 40' stroke='%234A8B5C' stroke-width='1.6' stroke-linecap='round'/%3E%3Cpath d='M20 40 C20 30 23 20 26 20 C29 20 32 30 32 40' stroke='%237DAA85' stroke-width='1.4' stroke-linecap='round'/%3E%3Cline x1='4' y1='42' x2='48' y2='42' stroke='%23EBF2EC' stroke-width='1.5' stroke-linecap='round'/%3E%3C/svg%3E");
}

/* 番号チップ */
.toco-cat-num {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	height: 22px !important;
	padding: 0 0.65rem !important;
	border-radius: 6px !important;
	background: #2E5539 !important;
	color: #fff !important;
	font-size: 0.65rem !important;
	font-weight: 900 !important;
	letter-spacing: 0.07em !important;
	margin-bottom: 0.85rem !important;
	width: auto !important;
	min-width: 0 !important;
	box-shadow: none !important;
	flex-shrink: 0 !important;
}

.toco-cat-num--accent {
	background: #528A60 !important;
	box-shadow: none !important;
}

/* =========================================================================
   モバイルレスポンシブ総合調整
   ========================================================================= */

@media (max-width: 781px) {

	/* --- ヘッダー --- */
	header.wp-block-group.toco-header > .wp-block-group {
		padding-left: 1rem !important;
		padding-right: 1rem !important;
	}

	/* --- カバーヒーロー: 高さを縮小 --- */
	.wp-block-cover.toco-hero-cover {
		min-height: 300px !important;
	}
	.wp-block-cover.toco-hero-cover .wp-block-cover__inner-container {
		padding-top: 2.5rem !important;
		padding-bottom: 2.5rem !important;
	}
	.wp-block-cover.toco-hero-cover h1 {
		font-size: clamp(1.5rem, 5vw, 2rem) !important;
	}

	/* --- 問題チップバッジ: 折り返し対応 --- */
	.toco-hero-chip {
		white-space: normal !important;
		font-size: 0.76rem !important;
		padding: 0.35rem 0.8rem !important;
	}

	/* --- スタッツバンド: モバイルでも横並び維持 --- */
	.toco-stats-band .wp-block-columns {
		flex-wrap: nowrap !important;
		gap: 0 !important;
	}
	.toco-stats-band .wp-block-column {
		flex: 1 1 0 !important;
		min-width: 0 !important;
	}
	.toco-stats-band .toco-stat__num {
		font-size: clamp(1.9rem, 6vw, 2.6rem) !important;
	}
	.toco-stats-band .toco-stat {
		padding-left: 0.5rem !important;
		padding-right: 0.5rem !important;
		border-right-width: 1px !important;
	}
	.toco-stat__label {
		font-size: 0.7rem !important;
		line-height: 1.4 !important;
		margin-top: 0.35rem !important;
	}
	.toco-stat__sub {
		display: none !important;
	}

	/* --- セクション見出し --- */
	.toco-h h2 {
		font-size: clamp(1.35rem, 5vw, 1.8rem) !important;
	}

	/* --- セクション余白縮小 --- */
	.toco-sec,
	.wp-block-group.alignfull[style*="padding-top:var(--wp--preset--spacing--60)"],
	.wp-block-group.alignfull[style*="padding-top:var(--wp--preset--spacing--50)"] {
		padding-top: 2.8rem !important;
		padding-bottom: 2.8rem !important;
	}

	/* --- 信頼バッジ --- */
	.toco-trust-strip p {
		font-size: 0.74rem !important;
		padding: 0.28rem 0.7rem !important;
	}

	/* --- 料金プラン --- */
	.toco-plan {
		padding: 1.4rem !important;
	}
	.toco-plan__price {
		font-size: clamp(2rem, 7vw, 2.8rem) !important;
	}

	/* --- ストーリーセクション --- */
	.toco-story-section {
		padding: 1.5rem !important;
	}

	/* --- カテゴリカード: 2列 --- */
	/* WP core sets flex-basis:100%!important on :not(.is-not-stacked-on-mobile)>.wp-block-column (specificity 0,3,0).
	   Adding .toco-cat-cols raises ours to 0,4,0 so we win. */
	.wp-block-columns.toco-cat-cols {
		flex-direction: row !important;
		flex-wrap: wrap !important;
	}
	.wp-block-columns.toco-cat-cols:not(.is-not-stacked-on-mobile) > .wp-block-column {
		flex: 0 0 calc(50% - 0.6rem) !important;
		flex-basis: calc(50% - 0.6rem) !important;
		min-width: 0 !important;
		width: calc(50% - 0.6rem) !important;
		max-width: calc(50% - 0.6rem) !important;
	}

	/* --- 評価バッジ（レビューページヒーロー） --- */
	.toco-rating-hero {
		flex-direction: column !important;
		gap: 0.6rem !important;
		padding: 1rem 1.2rem !important;
	}

	/* --- BA カード画像: モバイルでは aspect-ratio を調整 --- */
	.toco-ba .toco-ba-img img {
		aspect-ratio: 4 / 3 !important;
	}

	/* --- フッター余白 (sticky CTA分) --- */
	.wp-site-blocks > footer {
		margin-bottom: 72px !important;
	}

	/* --- 投稿カード: モバイル2列 --- */
	.wp-block-post-template.is-layout-grid {
		grid-template-columns: repeat(2, 1fr) !important;
	}
}

/* =========================================================================
   よく読まれている記事
   ========================================================================= */
.toco-popular-posts {
	border-radius: 16px;
	overflow: hidden;
	box-shadow: 0 2px 20px rgba(46,85,57,0.08);
	background: #fff;
}
.toco-popular-posts__item {
	display: flex;
	align-items: center;
	gap: 1rem;
	padding: 1.1rem 1.4rem;
	border-bottom: 1px solid rgba(46,85,57,0.07);
	text-decoration: none;
	color: inherit;
	transition: background 0.18s;
}
.toco-popular-posts__item:last-of-type {
	border-bottom: none;
}
.toco-popular-posts__item:hover {
	background: var(--wp--preset--color--soft);
}
.toco-popular-posts__num {
	flex-shrink: 0;
	font-size: 0.72rem;
	font-weight: 800;
	color: var(--wp--preset--color--primary);
	letter-spacing: 0.05em;
	width: 1.8rem;
}
.toco-popular-posts__title {
	flex: 1;
	font-size: 0.95rem;
	line-height: 1.55;
	color: #2a2a2a;
}
.toco-popular-posts__arrow {
	flex-shrink: 0;
	color: var(--wp--preset--color--accent);
	font-size: 1rem;
	transition: transform 0.18s;
}
.toco-popular-posts__item:hover .toco-popular-posts__arrow {
	transform: translateX(4px);
}
.toco-popular-posts__footer {
	padding: 1rem 1.4rem;
	text-align: center;
	background: var(--wp--preset--color--soft);
}
.toco-popular-posts__more {
	font-size: 0.88rem;
	font-weight: 600;
	color: var(--wp--preset--color--primary);
	text-decoration: none;
	letter-spacing: 0.03em;
}
.toco-popular-posts__more:hover {
	text-decoration: underline;
}

/* =========================================================================
   実績セクション: クリエイティブリデザイン (service-details のみ)
   ========================================================================= */
.toco-stats-sec {
	background: #F2F8F3 !important;
}
.toco-stats-cards {
	background: none !important;
	border-radius: 0 !important;
	padding: 0 !important;
}
.toco-stats-cards .wp-block-columns {
	gap: 1.8rem !important;
	align-items: stretch !important;
}
.toco-stats-cards .wp-block-column {
	display: flex !important;
}
/* カード */
.toco-stats-cards .toco-stat {
	flex: 1;
	background: #fff !important;
	border-radius: 24px !important;
	box-shadow: 0 2px 0 rgba(46,85,57,0.07), 0 8px 36px rgba(46,85,57,0.08) !important;
	padding: 2.8rem 2.2rem 2.4rem !important;
	border-top: none !important;
	border-right: none !important;
	position: relative;
	overflow: hidden;
	transition: transform 0.25s cubic-bezier(.22,.68,0,1.2), box-shadow 0.25s;
}
.toco-stats-cards .toco-stat:hover {
	transform: translateY(-5px);
	box-shadow: 0 2px 0 rgba(46,85,57,0.07), 0 20px 60px rgba(46,85,57,0.13) !important;
}
/* グラデーションストライプ（上端） */
.toco-stats-cards .toco-stat::after {
	content: '';
	position: absolute;
	top: 0; left: 0; right: 0;
	height: 4px;
	background: linear-gradient(90deg, var(--wp--preset--color--primary) 0%, var(--wp--preset--color--accent) 100%);
	border-radius: 24px 24px 0 0;
}
/* ウォーターマーク数字 */
.toco-stats-cards .toco-stat[data-bg]::before {
	content: attr(data-bg);
	position: absolute;
	font-size: 11rem;
	font-weight: 900;
	letter-spacing: -0.07em;
	line-height: 1;
	right: -0.15em;
	bottom: -0.25em;
	color: rgba(46,85,57,0.05);
	pointer-events: none;
	user-select: none;
	white-space: nowrap;
}
/* 数字 */
.toco-stats-cards .toco-stat__num {
	font-size: clamp(3.2rem, 7vw, 5.2rem) !important;
	font-weight: 900 !important;
	line-height: 1 !important;
	letter-spacing: -0.03em;
	background-image: linear-gradient(135deg, #1E3A28 0%, #2E5539 55%, #4A8B5C 100%) !important;
	-webkit-background-clip: text !important;
	-webkit-text-fill-color: transparent !important;
	background-clip: text !important;
	background-size: 100% 100% !important;
	background-position: 0 0 !important;
	padding: 0 !important;
	color: transparent !important;
}
.toco-stats-cards .toco-stat__num small,
.toco-stats-cards .toco-stat__approx {
	-webkit-text-fill-color: transparent !important;
}
/* ラベル（アクセントライン付き） */
.toco-stats-cards .toco-stat__label {
	color: #1a2e1f !important;
	font-size: 0.95rem !important;
	font-weight: 700 !important;
	margin-top: 0 !important;
	padding-top: 1.1rem !important;
	position: relative;
}
.toco-stats-cards .toco-stat__label::before {
	content: '';
	position: absolute;
	top: 0; left: 0;
	width: 36px; height: 2px;
	background: linear-gradient(90deg, var(--wp--preset--color--primary), var(--wp--preset--color--accent));
	border-radius: 2px;
}
/* サブラベル */
.toco-stats-cards .toco-stat__sub {
	font-size: 0.77rem !important;
	color: #8faa96 !important;
	margin-top: 0.4rem !important;
}
/* 区切り線リセット */
.toco-stats-cards .wp-block-column:not(:last-child) .toco-stat {
	padding-right: 2.2rem !important;
	border-right: none !important;
}
/* モバイル */
@media (max-width: 781px) {
	.toco-stats-cards .wp-block-columns {
		gap: 1rem !important;
	}
	.toco-stats-cards .toco-stat {
		padding: 2rem 1.8rem 1.8rem !important;
	}
	.toco-stats-cards .toco-stat__num {
		font-size: 3rem !important;
	}
	.toco-stats-cards .toco-stat[data-bg]::before {
		font-size: 8rem;
	}
}

/* =========================================================================
   Before/After ペア: 矢印コネクター (デスクトップ)
   ========================================================================= */
@media (min-width: 782px) {
	.toco-ba-pair {
		position: relative;
	}
	.toco-ba-pair > .wp-block-column:first-child {
		position: relative;
	}
	.toco-ba-pair > .wp-block-column:first-child::after {
		content: '→';
		position: absolute;
		right: -1.4rem;
		top: 40%;
		transform: translateY(-50%);
		font-size: 1.6rem;
		font-weight: 700;
		color: var(--wp--preset--color--primary);
		opacity: 0.55;
		pointer-events: none;
		z-index: 1;
	}
}

/* =========================================================================
   サービスプランテーブル
   ========================================================================= */
.toco-plan-table table {
	width: 100%;
	border-collapse: collapse;
	font-size: 0.92rem;
	border-radius: 12px;
	overflow: hidden;
	box-shadow: 0 2px 20px rgba(46,85,57,0.08);
}
.toco-plan-table thead tr {
	background: var(--wp--preset--color--primary) !important;
}
.toco-plan-table thead th {
	padding: 0.85rem 1.2rem;
	font-weight: 700;
	letter-spacing: 0.05em;
	font-size: 0.8rem;
	border: none;
	color: #fff !important;
	background: transparent !important;
}
.toco-plan-table tbody tr:nth-child(odd) {
	background: #fff;
}
.toco-plan-table tbody tr:nth-child(even) {
	background: rgba(46,85,57,0.03);
}
.toco-plan-table tbody td {
	padding: 1rem 1.2rem;
	border-bottom: 1px solid rgba(46,85,57,0.07);
	vertical-align: top;
	line-height: 1.6;
}
.toco-plan-table tbody tr:first-child td:nth-child(2) {
	font-weight: 400;
}
.toco-plan-table tbody td:first-child {
	font-weight: 700;
	white-space: nowrap;
	color: var(--wp--preset--color--primary);
}
.toco-plan-table tbody td:last-child {
	font-weight: 700;
	white-space: nowrap;
}
.toco-plan-table figcaption {
	font-size: 0.8rem !important;
	color: var(--wp--preset--color--muted) !important;
	margin-top: 0.6rem !important;
	text-align: right;
}

/* ===== 体験者の声カード（3列グリッド） ===== */

/* ── 外側グリッド: 1カラム ── */
.toco-glsr-wrap .glsr-reviews {
	display: grid !important;
	grid-template-columns: 1fr !important;
	gap: 1.2rem !important;
	align-items: stretch !important;
}

/* ── カード本体: 横並びレイアウト（左=星パネル、右=レビュー内容） ── */
.toco-glsr-wrap .glsr-review {
	background:
		linear-gradient(to right,
			rgba(124,92,191,0.07) 123px,
			rgba(46,85,57,0.11)   123px,
			rgba(46,85,57,0.11)   124px,
			#fff                   124px
		) !important;
	border-radius: 14px !important;
	padding: 0 !important;
	box-shadow: 0 2px 12px rgba(46,85,57,0.06) !important;
	border: 1px solid rgba(46,85,57,0.1) !important;
	display: grid !important;
	grid-template-columns: 124px 1fr !important;
	grid-template-rows: 4px auto auto 1fr auto auto !important;
	grid-template-areas:
		"bar    bar"
		"stars  title"
		"stars  date"
		"stars  body"
		"stars  toggle"
		"author author" !important;
	overflow: hidden !important;
	transition: box-shadow 0.22s ease !important;
}
.toco-glsr-wrap .glsr-review:hover {
	transform: none !important;
	box-shadow: 0 6px 24px rgba(46,85,57,0.13) !important;
}

/* 上部グラデーションライン */
.toco-glsr-wrap .glsr-review::before {
	content: '' !important;
	grid-area: bar !important;
	display: block !important;
	background: linear-gradient(90deg, var(--wp--preset--color--primary) 0%, #6AAF7A 100%) !important;
	position: static !important;
	font-size: inherit !important;
	opacity: 1 !important;
}
.toco-glsr-wrap .glsr-review::after { display: none !important; }

/* 共通横パディングをリセット（各エリアで個別指定） */
.toco-glsr-wrap .glsr-review-rating,
.toco-glsr-wrap .glsr-review-title,
.toco-glsr-wrap .glsr-review-date,
.toco-glsr-wrap .glsr-review-content,
.toco-glsr-wrap .glsr-review-author {
	padding-left: 0 !important;
	padding-right: 0 !important;
}

/* 左パネル・右エリア — 背景はカードのグラデーションに委ねる */
.toco-glsr-wrap .glsr-review-rating,
.toco-glsr-wrap .glsr-review-date {
	background: transparent !important;
}

/* ── 星評価（左パネル、全行スパン） ── */
.toco-glsr-wrap .glsr-review-rating {
	grid-area: stars !important;
	padding: 1.2rem 0.4rem 0 !important;
	text-align: center !important;
	align-self: start !important;
}
.toco-glsr-wrap .glsr-review-rating .glsr-star-full::before  { color: #F5A000 !important; }
.toco-glsr-wrap .glsr-review-rating .glsr-star-empty::before { color: #ddd !important; }

/* ── 日付（右カラム・タイトル直下） ── */
.toco-glsr-wrap .glsr-review-date {
	grid-area: date !important;
	padding: 0.1rem 1.3rem 0.4rem !important;
	text-align: left !important;
}
.toco-glsr-wrap .glsr-review-date .glsr-tag-value {
	font-size: 0.68rem !important;
	color: #bbb !important;
	line-height: 1.45 !important;
}

/* ── タイトル（右上） ── */
.toco-glsr-wrap .glsr-review-title {
	grid-area: title !important;
	display: block !important;
	padding: 1.1rem 1.3rem 0.65rem !important;
	border-bottom: 1px solid rgba(46,85,57,0.08) !important;
}
.toco-glsr-wrap .glsr-review-title h4,
.toco-glsr-wrap .glsr-review-title .glsr-tag-value {
	font-size: 0.97rem !important;
	font-weight: 800 !important;
	color: #1a2e1f !important;
	margin: 0 !important;
	line-height: 1.5 !important;
	display: -webkit-box !important;
	-webkit-line-clamp: 2 !important;
	-webkit-box-orient: vertical !important;
	overflow: hidden !important;
}

/* ── 本文（右・日付の下） ── */
.toco-glsr-wrap .glsr-review-content {
	grid-area: body !important;
	padding: 0.5rem 1.3rem 0 !important;
	overflow: visible !important;
	max-height: none !important;
	position: static !important;
}
.toco-glsr-wrap .glsr-review-content::after { display: none !important; }
.toco-glsr-wrap .glsr-review-content .glsr-tag-value,
.toco-glsr-wrap .glsr-review-content .glsr-tag-value p {
	font-size: 0.875rem !important;
	line-height: 1.8 !important;
	color: #444 !important;
	margin: 0 0 0.4em !important;
}

/* ── もっと見る（body直下・右カラム） ── */
.toco-glsr-wrap--expand .glsr-review-content.is-clamped {
	max-height: 6.5rem !important;
	overflow: hidden !important;
	position: relative !important;
}
.toco-glsr-wrap--expand .glsr-review-toggle {
	grid-area: toggle !important;
	display: block !important;
	padding: 0.35rem 1.3rem 0.4rem !important;
	background: none !important;
	border: none !important;
	color: var(--wp--preset--color--primary, #7C5CBF) !important;
	font-size: 0.82rem !important;
	font-weight: 600 !important;
	cursor: pointer !important;
	text-decoration: underline !important;
	text-underline-offset: 2px !important;
	line-height: 1.5 !important;
	text-align: left !important;
}
.toco-glsr-wrap--expand .glsr-review-toggle:hover { opacity: 0.7 !important; }

/* ── 著者（全幅フッター） ── */
.toco-glsr-wrap .glsr-review-author {
	grid-area: author !important;
	padding: 0.6rem 1.3rem !important;
	border-top: 1px solid rgba(46,85,57,0.08) !important;
	margin-top: 0 !important;
	background: #fff !important;
}
.toco-glsr-wrap .glsr-review-author .glsr-tag-value {
	display: inline-block !important;
	font-size: 0.72rem !important;
	font-weight: 700 !important;
	color: var(--wp--preset--color--primary) !important;
	background: rgba(124,92,191,0.08) !important;
	padding: 0.22rem 0.75rem !important;
	border-radius: 9999px !important;
}

/* ── 導線ボタン上マージン（WP layout-flow の margin-block-start 上書き対策） ── */
.toco-glsr-wrap > .wp-block-buttons {
	margin-top: var(--wp--preset--spacing--40) !important;
	margin-bottom: var(--wp--preset--spacing--40) !important;
}

/* ── ページネーション ── */
.toco-glsr-wrap .glsr-pagination {
	margin-top: 2.5rem !important;
	text-align: center !important;
}
.toco-glsr-wrap .glsr-pagination br { display: none !important; }
.toco-glsr-wrap .glsr-pagination .nav-links {
	display: flex !important;
	flex-wrap: wrap !important;
	justify-content: center !important;
	gap: 0.4rem !important;
}
.toco-glsr-wrap .glsr-pagination .page-numbers {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	min-width: 2.2rem !important;
	height: 2.2rem !important;
	border-radius: 9999px !important;
	border: 1px solid rgba(46,85,57,0.18) !important;
	background: #fff !important;
	color: var(--wp--preset--color--contrast) !important;
	font-size: 0.88rem !important;
	font-weight: 600 !important;
	text-decoration: none !important;
	padding: 0 0.5rem !important;
	transition: background 0.18s, color 0.18s !important;
}
.toco-glsr-wrap .glsr-pagination .page-numbers.current {
	background: var(--wp--preset--color--primary) !important;
	color: #fff !important;
	border-color: transparent !important;
}
.toco-glsr-wrap .glsr-pagination a.page-numbers:hover {
	background: var(--wp--preset--color--primary) !important;
	color: #fff !important;
	border-color: transparent !important;
}

/* SP: 縦並びレイアウト */
@media (max-width: 640px) {
	.toco-glsr-wrap .glsr-review {
		background: #fff !important;
		grid-template-columns: 1fr !important;
		grid-template-rows: 4px auto auto auto 1fr auto auto !important;
		grid-template-areas:
			"bar"
			"stars"
			"title"
			"date"
			"body"
			"toggle"
			"author" !important;
	}
	.toco-glsr-wrap .glsr-review-rating {
		padding: 1rem 1.2rem 0.3rem !important;
		text-align: left !important;
	}
	.toco-glsr-wrap .glsr-review-title {
		padding-top: 0.5rem !important;
	}
	.toco-glsr-wrap .glsr-review-date {
		padding: 0.1rem 1.2rem 0.3rem !important;
	}
	.toco-glsr-wrap .glsr-review-content {
		padding: 0.4rem 1.2rem 0 !important;
	}
	.toco-glsr-wrap--expand .glsr-review-toggle {
		padding-left: 1.2rem !important;
	}
	.toco-glsr-wrap .glsr-review-author {
		padding-left: 1.2rem !important;
	}
}

/* ── パンくずリスト ─────────────────────────── */
.toco-breadcrumb {
	max-width: var(--wp--style--global--wide-size, 1180px);
	margin-inline: auto;
	padding: 0.3rem var(--wp--preset--spacing--30, 1.5rem);
}
.toco-breadcrumb__inner {
	font-size: 0.72rem;
	color: var(--wp--preset--color--muted, #999);
	line-height: 1;
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 0.1em;
}
.toco-breadcrumb__inner a {
	color: inherit;
	text-decoration: none;
	display: inline-flex;
	align-items: center;
	gap: 0.25em;
}
.toco-breadcrumb__inner a:hover {
	text-decoration: underline;
}
/* ホームアイコン */
.toco-breadcrumb__inner a.home::before {
	content: '';
	display: inline-block;
	width: 0.85em;
	height: 0.85em;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23999999'%3E%3Cpath d='M10 20v-6h4v6h5v-8h3L12 3 2 12h3v8z'/%3E%3C/svg%3E") no-repeat center / contain;
	flex-shrink: 0;
}
/* NavXT のデフォルト区切り文字を上書き */
.toco-breadcrumb__inner span.bcn-item:not(:last-child)::after {
	content: "›";
	margin-inline: 0.3em;
	color: var(--wp--preset--color--muted, #999);
}



/* reCAPTCHA バッジ非表示 */
.grecaptcha-badge { visibility: hidden !important; }
