/*
 * はじめてのKOKOROMi
 * 色・フォントは kokoromi-site（src/index.njk の :root）に合わせる
 */

:root {
	--tk-orange: #EA5514;
	--tk-orange-dark: #C94510;
	--tk-orange-tint: #FCEDE5;
	--tk-blue: #BFE3F2;
	--tk-blue-tint: #EBF5FA;
	--tk-line: #06C755;
	--tk-line-dark: #05A94A;
	--tk-paper: #ffffff;
	--tk-off: #F7F4EF;
	--tk-ink: #1F1F2E;
	--tk-sub: #6E6A66;
	--tk-border: #E6E1DA;
	--tk-font-jp: 'Zen Kaku Gothic New', 'Hiragino Sans', 'Hiragino Kaku Gothic ProN', 'Noto Sans JP', sans-serif;
	--tk-font-en: 'Poppins', var(--tk-font-jp);
	--tk-radius: 14px;
}

/* SWELL の色とフォントを上書き（body に置くと SWELL の :root の値より優先される） */
body {
	--color_main: var(--tk-orange);
	--color_link: var(--tk-orange-dark);
	--color_htag: var(--tk-orange);
	--swl-font_family: var(--tk-font-jp);
	font-family: var(--tk-font-jp);
	color: var(--tk-ink);
}

/* ---------- ヘッダーの名前（ロゴ風） ---------- */
.taiken-logo { display: flex; flex-direction: column; justify-content: center; margin: 0 !important; padding: 0 !important; line-height: 1.1; }
.taiken-logo__link { display: inline-flex; align-items: baseline; gap: 2px; color: var(--tk-ink) !important; text-decoration: none !important; }
.taiken-logo__ja { font-family: var(--tk-font-jp); font-size: 15px; font-weight: 900; letter-spacing: .04em; }
.taiken-logo__en { font-family: var(--tk-font-en); font-size: 28px; font-weight: 700; letter-spacing: .01em; color: var(--tk-orange); }
.taiken-logo__tag { display: block; margin-top: 4px; font-size: 11px; font-weight: 500; letter-spacing: .08em; color: var(--tk-sub); }
@media (max-width: 959px) {
	.taiken-logo { align-items: center; }
	.taiken-logo__ja { font-size: 12px; }
	.taiken-logo__en { font-size: 22px; }
	.taiken-logo__tag { font-size: 10px; margin-top: 2px; }
}

/* ---------- フッター（日本仕事百貨のような白い面に、SNS → ロゴ → リンク） ---------- */
#footer.l-footer { background: #fff !important; color: var(--tk-ink) !important; border-top: 1px solid var(--tk-border); }
.taiken-footer { max-width: 1000px; margin: 0 auto; padding: 64px 16px 40px; text-align: center; }
.taiken-footer__sns-title { margin: 0 0 18px; font-size: 15px; font-weight: 700; color: var(--tk-sub); }
.taiken-footer__sns-list { display: flex; justify-content: center; gap: 36px; margin: 0 0 56px !important; padding: 0 !important; list-style: none !important; }
.taiken-footer__sns-list a { display: inline-flex; width: 28px; height: 28px; align-items: center; justify-content: center; color: #6e6a66; transition: color .2s, opacity .2s; }
.taiken-footer__sns-list a:hover { color: var(--tk-orange); }
.taiken-footer__sns-list svg { width: 26px; height: 26px; fill: currentColor; }
.taiken-footer__sns-list img { width: 26px; height: 26px; filter: grayscale(1) brightness(.75); }
.taiken-footer__sns-list a:hover img { filter: none; }
.taiken-footer__logo { margin: 0 0 10px; }
.taiken-footer__logo a { display: inline-flex; align-items: baseline; gap: 2px; color: var(--tk-ink) !important; text-decoration: none !important; }
.taiken-footer__logo .taiken-logo__ja { font-size: 22px; }
.taiken-footer__logo .taiken-logo__en { font-size: 44px; }
.taiken-footer__copy { margin: 0 0 40px; font-size: 12px; letter-spacing: .06em; color: var(--tk-sub); }
.taiken-footer__links { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px 44px; }
.taiken-footer__links a { font-size: 13px; letter-spacing: .06em; color: var(--tk-ink) !important; text-decoration: none !important; }
.taiken-footer__links a:hover { color: var(--tk-orange-dark) !important; }
@media (max-width: 599px) {
	.taiken-footer__sns-list { gap: 28px; }
	.taiken-footer__logo .taiken-logo__ja { font-size: 16px; }
	.taiken-footer__logo .taiken-logo__en { font-size: 32px; }
	.taiken-footer__links { flex-direction: column; gap: 14px; }
}

/* 体験から入会した人の特典（初月無料） */

/* 体験レポートの序盤の「今回の体験先」 */
.taiken-hostintro { margin: 32px 0 40px; padding: 20px; border: 1px solid var(--tk-border); border-radius: var(--tk-radius); background: var(--tk-off); }
.post_content .taiken-hostintro__label { margin: 0 0 12px !important; font-size: 13px; font-weight: 700; letter-spacing: .08em; color: var(--tk-orange-dark); }
.taiken-hostintro__inner { display: grid; grid-template-columns: 240px minmax(0, 1fr); gap: 20px; align-items: start; }
.taiken-hostintro__photo img { width: 100%; height: auto; aspect-ratio: 3 / 2; object-fit: cover; border-radius: 10px; }
.post_content .taiken-hostintro__name { margin: 0 0 2px !important; font-size: 18px; font-weight: 900; color: var(--tk-ink); }
.post_content .taiken-hostintro__program { margin: 0 0 8px !important; font-size: 14px; font-weight: 700; color: var(--tk-orange-dark); }
.post_content .taiken-hostintro__text { margin: 0 0 14px !important; font-size: 14px; line-height: 1.8; color: var(--tk-ink); }
.post_content a.taiken-hostintro__btn { color: #fff !important; text-decoration: none !important; font-size: 14px; }
.post_content a.taiken-hostintro__btn:hover { background: var(--tk-orange-dark); }
@media (max-width: 599px) {
	.taiken-hostintro__inner { grid-template-columns: 1fr; }
}

/* 「この記事を書いた人」の KOKOROMi編集部のアイコン（パズルのマークを白い丸の上に） */
.p-authorBox .taiken-staff-avatar { padding: 14px; background: #fff; border: 1px solid var(--tk-border); border-radius: 50%; object-fit: contain; }

/* ---------- ステージングの目印（kokoromi-site の .staging-ribbon と同じ） ---------- */
.taiken-staging-ribbon {
	position: fixed;
	top: 22px;
	left: -58px;
	width: 200px;
	transform: rotate(-45deg);
	background: #d63a3a;
	color: #fff;
	text-align: center;
	font-family: var(--tk-font-jp);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .2em;
	text-indent: .2em;
	line-height: 26px;
	z-index: 100000;
	box-shadow: 0 2px 10px rgba(0, 0, 0, .28);
	pointer-events: none;
	user-select: none;
}

/* ---------- 共通 ---------- */
.taiken-btn {
	display: inline-block;
	padding: 14px 32px;
	border-radius: 999px;
	background: var(--tk-orange);
	color: #fff !important;
	font-weight: 700;
	text-decoration: none !important;
	transition: background .2s;
}
.taiken-btn:hover { background: var(--tk-orange-dark); }
.taiken-btn--line { background: var(--tk-line); }
.taiken-btn--line:hover { background: var(--tk-line-dark); }

.taiken-empty {
	padding: 24px;
	border-radius: var(--tk-radius);
	background: var(--tk-off);
	color: var(--tk-sub);
	text-align: center;
}

.taiken-back { margin: 0 0 16px; font-size: 14px; }
.taiken-back a { color: var(--tk-sub); text-decoration: none; }
.taiken-back a::before { content: "← "; }

.taiken-status {
	display: inline-block;
	padding: 3px 12px;
	border-radius: 999px;
	font-size: 12px;
	font-weight: 700;
	line-height: 1.6;
	letter-spacing: .04em;
}
.taiken-status.is-open { background: var(--tk-orange); color: #fff; }
.taiken-status.is-closed { background: #8a8580; color: #fff; }

.taiken-chips { display: flex; flex-wrap: wrap; gap: 6px; }
.taiken-chip {
	display: inline-block;
	padding: 2px 10px;
	border-radius: 999px;
	font-size: 12px;
	text-decoration: none !important;
	color: var(--tk-ink) !important;
}
.taiken-chip--area { background: var(--tk-blue-tint); border: 1px solid var(--tk-blue); }
.taiken-chip--field { background: var(--tk-orange-tint); border: 1px solid #f6cdb7; }

/* ---------- セクション ---------- */
.taiken-sec { margin: 0 0 64px; }
.taiken-sec__head {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 12px;
	margin-bottom: 20px;
	flex-wrap: wrap;
}
.taiken-sec__title {
	margin: 0 !important;
	padding: 0 !important;
	background: none !important;
	border: 0 !important;
	font-size: 24px;
	font-weight: 900;
	color: var(--tk-ink);
}
.taiken-sec__title::before, .taiken-sec__title::after { display: none !important; }
.taiken-sec__en {
	display: block;
	font-family: var(--tk-font-en);
	font-size: 13px;
	font-weight: 600;
	letter-spacing: .12em;
	color: var(--tk-orange);
}
.taiken-sec__more { font-size: 14px; color: var(--tk-orange-dark); }
.taiken-sec__more::after { content: " →"; }

/* ---------- カード ---------- */
.taiken-grid { display: grid; gap: 24px; }
.taiken-grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.taiken-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
@media (max-width: 959px) {
	.taiken-grid--4, .taiken-grid--3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 599px) {
	.taiken-grid--4, .taiken-grid--3 { grid-template-columns: 1fr; }
}

/* カード：日本仕事百科のように、枠のない「写真＋太字の見出し＋小さな補足」 */
.taiken-grid--3 { column-gap: 32px; row-gap: 44px; }
.taiken-card { display: flex; flex-direction: column; background: none; }
.taiken-card__link { display: block; color: inherit !important; text-decoration: none !important; flex: 1; }
.taiken-card__thumb { position: relative; aspect-ratio: 3 / 2; overflow: hidden; background: var(--tk-off); }
.taiken-card__thumb img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .4s, opacity .2s; }
.taiken-card__link:hover .taiken-card__thumb img { transform: scale(1.03); opacity: .9; }
/* 右上に縦長のタブで「募集中／募集終了」 */
.taiken-card__thumb .taiken-status {
	position: absolute;
	top: 0;
	right: 12px;
	padding: 10px 6px 12px;
	border-radius: 0 0 4px 4px;
	writing-mode: vertical-rl;
	letter-spacing: .12em;
	font-size: 12px;
	line-height: 1;
}
.taiken-card__body { padding: 14px 0 0; }
.taiken-card__title { margin: 0 0 8px !important; font-size: 18px; font-weight: 700; line-height: 1.6; color: var(--tk-ink); }
.taiken-card__link:hover .taiken-card__title { color: var(--tk-orange-dark); }
.taiken-card__host { margin: 0 0 10px; font-size: 14px; font-weight: 700; color: var(--tk-ink); }

/* 体験先のカード：アイコン付きの項目と「詳細・応募はこちら」のボタン */
.taiken-card--host .taiken-card__link { display: flex; flex-direction: column; }
.taiken-card--host .taiken-card__body { display: flex; flex-direction: column; flex: 1; }
.taiken-card__facts { margin: 0 0 16px !important; padding: 0 !important; list-style: none !important; }
.taiken-card__fact { display: flex; align-items: flex-start; gap: 6px; margin: 0 0 4px !important; font-size: 14px; line-height: 1.6; color: var(--tk-ink); }
.taiken-card__fact .taiken-icon { flex: 0 0 16px; width: 16px; height: 16px; margin-top: 3px; color: var(--tk-sub); }
.taiken-card__btn {
	display: inline-flex;
	align-items: center;
	align-self: flex-start;
	gap: 8px;
	margin-top: auto;
	padding: 10px 18px 10px 22px;
	border-radius: 999px;
	background: var(--tk-orange);
	color: #fff;
	font-size: 15px;
	font-weight: 700;
	letter-spacing: .04em;
	transition: background .2s;
}
.taiken-card__btn .taiken-icon { width: 18px; height: 18px; stroke-width: 2.4; }
.taiken-card__link:hover .taiken-card__btn { background: var(--tk-orange-dark); }
.taiken-card.is-closed .taiken-card__btn { background: #8a8580; }
.taiken-card.is-closed .taiken-card__link:hover .taiken-card__btn { background: #6f6a66; }
.taiken-card__cat { display: inline-block; margin-bottom: 4px; font-size: 12px; font-weight: 700; color: var(--tk-orange-dark); }
.taiken-card__date { font-family: var(--tk-font-en); font-size: 12px; color: var(--tk-sub); }
.taiken-card.is-closed .taiken-card__thumb img { filter: grayscale(.5); opacity: .85; }

/* 行った人の話のカード：年代・性別を大きく、どんな人・体験先・ひとことを【】で並べ、タイトルは小さめ */
.taiken-card__profile { margin: 0 0 8px; font-size: 20px; font-weight: 900; letter-spacing: .04em; color: var(--tk-ink); }
.taiken-card__person { margin: 0 0 10px !important; font-size: 14px; line-height: 1.7; }
.taiken-card__person > div { display: flex; gap: 2px; margin: 0 0 4px; }
.taiken-card__person dt { flex: 0 0 auto; margin: 0; font-weight: 700; color: var(--tk-orange-dark); }
.taiken-card__person dd { margin: 0; color: var(--tk-ink); }
.taiken-card--person .taiken-card__title { font-size: 15px; font-weight: 700; color: var(--tk-sub); }

/* 文字だけの小さな記事の一覧（トップのコラム） */
.taiken-post-list { margin: 0 !important; padding: 0 !important; list-style: none !important; border-top: 1px solid var(--tk-border); }
.taiken-post-list li { margin: 0 !important; border-bottom: 1px solid var(--tk-border); }
.taiken-post-list a { display: flex; gap: 16px; padding: 14px 4px; color: var(--tk-ink) !important; text-decoration: none !important; font-size: 15px; line-height: 1.6; }
.taiken-post-list a:hover span { color: var(--tk-orange-dark); }
.taiken-post-list time { flex: 0 0 auto; font-family: var(--tk-font-en); font-size: 13px; color: var(--tk-sub); padding-top: 2px; }
.taiken-sec--small .taiken-sec__title { font-size: 20px; }
@media (max-width: 599px) {
	.taiken-post-list a { flex-direction: column; gap: 2px; }
}

.taiken-sr-only {
	position: absolute !important;
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
	border: 0;
}
.taiken-sec--hosts { margin-top: 8px; }
.taiken-sec__foot { margin: 32px 0 0; text-align: center; }

.taiken-ph {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 100%;
	padding: 16px;
	background: linear-gradient(135deg, var(--tk-orange-tint), var(--tk-blue-tint));
	text-align: center;
}
.taiken-ph span { font-weight: 900; font-size: 18px; color: var(--tk-orange-dark); line-height: 1.5; }

/* ---------- トップ ---------- */
/* 最初の画面：写真を画面の端まで敷いてゆっくり切り替え、その上に一言だけ。角丸の箱にしない */
.home { overflow-x: clip; }
.home #content { padding-top: 0; }
.taiken-hero { position: relative; left: 50%; width: 100vw; height: min(78vh, 680px); min-height: 460px; margin: 0 0 48px -50vw; overflow: hidden; background: #2b2b2b; }
.taiken-hero__slides { position: absolute; inset: 0; }
.taiken-hero__slide { position: absolute; inset: 0; width: 100%; height: 100%; max-width: none; object-fit: cover; opacity: 0; animation: taiken-hero-fade 24s infinite; }
.taiken-hero__slide:nth-child(1) { animation-delay: 0s; }
.taiken-hero__slide:nth-child(2) { animation-delay: -18s; }
.taiken-hero__slide:nth-child(3) { animation-delay: -12s; }
.taiken-hero__slide:nth-child(4) { animation-delay: -6s; }
@keyframes taiken-hero-fade { 0% { opacity: 1; } 25% { opacity: 1; } 30% { opacity: 0; } 95% { opacity: 0; } 100% { opacity: 1; } }
.taiken-hero::after { content: ""; position: absolute; inset: 0; background: linear-gradient(to top, rgba(0, 0, 0, .62) 0%, rgba(0, 0, 0, .2) 55%, rgba(0, 0, 0, 0) 80%); pointer-events: none; }
.taiken-hero__body { position: absolute; z-index: 1; left: max(24px, calc(50% - 560px)); right: 24px; bottom: 56px; color: #fff; }
.taiken-hero__title { margin: 0 0 16px !important; padding: 0 !important; border: 0 !important; background: none !important; font-size: 40px !important; font-weight: 900; line-height: 1.45; letter-spacing: .02em; color: #fff !important; text-shadow: 0 2px 12px rgba(0, 0, 0, .35); }
.taiken-hero__title::before, .taiken-hero__title::after { display: none !important; }
.taiken-hero__title span, .taiken-hero__lead span { display: inline-block; }
.taiken-hero__lead { margin: 0 0 24px; font-size: 16px; line-height: 1.85; color: #fff; text-shadow: 0 1px 8px rgba(0, 0, 0, .4); }
.taiken-hero .taiken-btn { box-shadow: 6px 6px 0 #fff; }
@media (prefers-reduced-motion: reduce) {
	.taiken-hero__slide { animation: none; }
	.taiken-hero__slide:first-child { opacity: 1; }
}
@media (max-width: 599px) {
	.taiken-hero { height: 520px; min-height: 0; }
	.taiken-hero__body { left: 20px; right: 20px; bottom: 36px; }
	.taiken-hero__title { font-size: 27px !important; }
	.taiken-hero__lead { font-size: 15px; }
}
/* 背景は端までベタで敷き、角丸のカードにしない。「体験」と「振り返り会」はセットなので、写真2枚をすき間なくつなげて見せる */
.taiken-join { padding: 64px 0; background: var(--tk-blue-tint); box-shadow: 0 0 0 100vmax var(--tk-blue-tint); clip-path: inset(0 -100vmax); }
.taiken-join__title { margin: 0 !important; padding: 0 !important; border: 0 !important; background: none !important; font-size: 30px; font-weight: 900; color: var(--tk-ink); }
.taiken-join__title::before, .taiken-join__title::after { display: none !important; }
.taiken-join__title .taiken-sec__en { margin-bottom: 10px; }
.taiken-join__lead { margin: 12px 0 32px; font-size: 16px; line-height: 1.8; color: var(--tk-ink); }
/* 言葉のまとまりで折り返す */
.taiken-join__lead span, .taiken-join__fee span { display: inline-block; }
.taiken-join__pair { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.taiken-join__photo { margin: 0; }
.taiken-join__img { position: relative; }
.taiken-join__img img { display: block; width: 100%; aspect-ratio: 3 / 2; object-fit: cover; border-radius: 0; }
.taiken-join__img::after { content: ""; position: absolute; inset: 0; background: rgba(31, 31, 46, .3); }
.taiken-join__label { position: absolute; top: 50%; left: 50%; z-index: 1; padding-bottom: 6px; border-bottom: 3px solid #fff; font-size: 22px; font-weight: 900; letter-spacing: .04em; color: #fff; white-space: nowrap; transform: translate(-50%, -50%); }
.taiken-join__photo figcaption { margin: 0; padding: 14px 20px 0 0; font-size: 14px; line-height: 1.8; color: var(--tk-ink); word-break: auto-phrase; text-wrap: pretty; }
.taiken-join__foot { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 24px 40px; margin-top: 44px; padding-top: 32px; border-top: 1px solid rgba(31, 31, 46, .15); }
.taiken-join__offer { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 14px; }
.taiken-join__free { margin: 0; font-size: 22px; font-weight: 900; line-height: 1.3; color: var(--tk-orange); white-space: nowrap; }
.taiken-join__fee { margin: 0; font-size: 15px; font-weight: 700; color: var(--tk-ink); }
.taiken-join__apply { display: flex; flex: 1 1 440px; align-items: center; justify-content: flex-end; gap: 28px; }
.taiken-join__apply p { max-width: 22em; margin: 0; font-size: 14px; line-height: 1.8; color: var(--tk-sub); word-break: auto-phrase; text-wrap: pretty; }
/* このページで1か所だけ、ルールから外す：ボタンは白抜きで、影を斜線にする */
.taiken-join__btn { position: relative; flex: 0 0 auto; display: inline-block; padding: 16px 44px; border: 2px solid var(--tk-ink); background: #fff; font-weight: 700; color: var(--tk-ink) !important; text-decoration: none !important; transition: transform .15s; }
.taiken-join__btn::after { content: ""; position: absolute; z-index: -1; inset: 6px -8px -8px 6px; background: repeating-linear-gradient(-45deg, var(--tk-ink) 0 2px, transparent 2px 6px); }
.taiken-join__btn:hover { transform: translate(3px, 3px); }
.taiken-join__note { margin: 20px 0 0; font-size: 12px; line-height: 1.7; color: var(--tk-sub); word-break: auto-phrase; text-wrap: pretty; }
@media (max-width: 959px) {
	.taiken-join__apply { flex-basis: 100%; justify-content: flex-start; }
}
@media (max-width: 599px) {
	.taiken-join { padding: 48px 0; }
	.taiken-join__title { font-size: 24px; }
	.taiken-join__pair { grid-template-columns: minmax(0, 1fr); }
	.taiken-join__photo figcaption { padding: 12px 0 20px; }
	.taiken-join__label { font-size: 20px; }
	.taiken-join__foot { margin-top: 12px; }
	.taiken-join__apply { flex-direction: column; align-items: stretch; }
	.taiken-join__btn { margin-right: 8px; text-align: center; }
}

}

/* ---------- 一覧 ---------- */
.taiken-archive__head { margin-bottom: 20px; }
.taiken-archive__title { margin: 0 0 8px !important; font-size: 28px; font-weight: 900; }
.taiken-archive__lead { margin: 0; color: var(--tk-sub); }
.taiken-tabs { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 24px; }
.taiken-tabs__item {
	padding: 8px 20px;
	border: 1px solid var(--tk-border);
	border-radius: 999px;
	background: #fff;
	color: var(--tk-ink) !important;
	font-size: 14px;
	text-decoration: none !important;
}
.taiken-tabs__item.is-current { background: var(--tk-orange); border-color: var(--tk-orange); color: #fff !important; font-weight: 700; }

/* ---------- 体験先のページ ---------- */
.taiken-host__head { margin-bottom: 20px; }
.taiken-host__title { margin: 10px 0 12px !important; font-size: 30px; font-weight: 900; line-height: 1.4; }
.taiken-host__program { margin: -4px 0 12px; font-size: 17px; font-weight: 700; color: var(--tk-orange-dark); }
.taiken-host__photo { margin: 0 0 24px; }
.taiken-host__photo img { width: 100%; height: auto; aspect-ratio: 16 / 9; object-fit: cover; border-radius: var(--tk-radius); }

.taiken-info {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 0;
	margin: 0 0 40px;
	border: 1px solid var(--tk-border);
	border-radius: var(--tk-radius);
	overflow: hidden;
	background: #fff;
}
.taiken-info > div { display: flex; border-bottom: 1px solid var(--tk-border); }
.taiken-info > div:nth-child(odd) { border-right: 1px solid var(--tk-border); }
.taiken-info dt {
	flex: 0 0 8.5em;
	margin: 0;
	padding: 14px 16px;
	background: var(--tk-orange-tint);
	color: var(--tk-orange-dark);
	font-weight: 700;
	font-size: 14px;
}
.taiken-info dd { margin: 0; padding: 14px 16px; font-size: 15px; }
.taiken-info dd a { color: var(--tk-orange-dark); }
@media (max-width: 599px) {
	.taiken-info { grid-template-columns: 1fr; }
	.taiken-info > div:nth-child(odd) { border-right: 0; }
}

.taiken-block { margin: 0 0 40px; }
.taiken-block__title {
	margin: 0 0 16px !important;
	padding: 0 0 0 14px !important;
	background: none !important;
	border: 0 !important;
	border-left: 5px solid var(--tk-orange) !important;
	font-size: 21px;
	font-weight: 900;
	color: var(--tk-ink);
}
.taiken-block__title::before, .taiken-block__title::after { display: none !important; }

/* 本文（ブロック）の見た目を「何をするか」などの見出しにそろえる（SWELL の見出し装飾を打ち消す） */
.taiken-host__content { margin: 0 0 40px; }
.taiken-host__content.post_content h2,
.taiken-page .post_content h2 {
	margin: 48px 0 16px !important;
	padding: 0 0 0 14px !important;
	background: none !important;
	border: 0 !important;
	border-left: 5px solid var(--tk-orange) !important;
	border-radius: 0 !important;
	box-shadow: none !important;
	color: var(--tk-ink) !important;
	font-size: 21px;
	font-weight: 900;
}
.taiken-host__content.post_content h2::before,
.taiken-host__content.post_content h2::after,
.taiken-page .post_content h2::before,
.taiken-page .post_content h2::after,
.taiken-host__content.post_content h3::before,
.taiken-host__content.post_content h3::after { display: none !important; }
.taiken-host__content.post_content h3 {
	margin: 28px 0 8px !important;
	padding: 0 !important;
	background: none !important;
	border: 0 !important;
	font-size: 17px;
	font-weight: 700;
	color: var(--tk-ink);
}
.taiken-host__content.post_content > *:first-child { margin-top: 0 !important; }
.taiken-host__content .wp-block-image { text-align: center; }
.taiken-host__content .wp-block-image img { border-radius: 10px; max-height: 520px; width: auto; }
.taiken-host__content .wp-block-table table { background: #fff; }
.taiken-host__content .wp-block-table th,
.taiken-host__content .wp-block-table td { padding: 12px 14px; border: 1px solid var(--tk-border); vertical-align: top; font-size: 15px; }
.taiken-host__content .wp-block-table td:first-child { width: 9em; background: var(--tk-orange-tint); color: var(--tk-orange-dark); font-weight: 700; }

/* 「この体験で感じること」：見出しの前にチェック */
.post_content .taiken-points h3,
.taiken-host__content.post_content .taiken-points h3 {
	display: flex;
	align-items: center;
	margin: 28px 0 8px !important;
	padding: 0 !important;
	background: none !important;
	border: 0 !important;
	font-size: 17px;
	font-weight: 700;
	color: var(--tk-ink);
}
.post_content .taiken-points h3::after { display: none !important; }
.post_content .taiken-points h3::before,
.taiken-host__content.post_content .taiken-points h3::before {
	content: "✓" !important;
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	flex: 0 0 24px;
	width: 24px;
	height: 24px;
	margin-right: 10px;
	border-radius: 50%;
	background: var(--tk-orange);
	color: #fff;
	font-size: 13px;
	position: static !important;
	border: 0 !important;
}

/* ホストの紹介・補足の囲み */
.taiken-box {
	padding: 20px 22px !important;
	border-radius: var(--tk-radius);
	background: var(--tk-off);
}
.taiken-box > *:last-child { margin-bottom: 0 !important; }
.taiken-box--blue { background: var(--tk-blue-tint); }

.taiken-flow { margin: 0 !important; padding: 0 !important; list-style: none !important; counter-reset: tkflow; }
.taiken-flow__step {
	position: relative;
	margin: 0 !important;
	padding: 0 0 20px 52px;
	counter-increment: tkflow;
}
.taiken-flow__step::before {
	content: counter(tkflow);
	position: absolute;
	left: 0;
	top: 0;
	width: 36px;
	height: 36px;
	border-radius: 50%;
	background: var(--tk-orange);
	color: #fff;
	font-family: var(--tk-font-en);
	font-weight: 700;
	line-height: 36px;
	text-align: center;
}
.taiken-flow__step:not(:last-child)::after {
	content: "";
	position: absolute;
	left: 17px;
	top: 40px;
	bottom: 4px;
	width: 2px;
	background: var(--tk-orange-tint);
}
.taiken-flow__title { margin: 4px 0 4px !important; font-weight: 700; font-size: 17px; }
.taiken-flow__text { margin: 0 !important; color: var(--tk-sub); font-size: 15px; }
.taiken-flow__note {
	margin: 8px 0 0 !important;
	padding: 14px 16px;
	border-radius: 10px;
	background: var(--tk-blue-tint);
	font-size: 14px;
	line-height: 1.8;
}

.taiken-gallery { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.taiken-gallery img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 10px; }
@media (max-width: 599px) { .taiken-gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* 申し込み：角丸の箱にしない。上下の線で区切った横長の帯に、左に体験の名前、右にボタン */
.taiken-apply { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 0 40px; margin: 0 0 48px; padding: 28px 0; border-top: 3px solid var(--tk-ink); border-bottom: 1px solid var(--tk-ink); text-align: left; }
.taiken-apply > * { grid-column: 1; }
.taiken-apply > .taiken-btn { grid-column: 2; grid-row: 1 / span 3; box-shadow: 6px 6px 0 var(--tk-ink); white-space: nowrap; }
.taiken-apply.is-closed { border-top-color: var(--tk-sub); border-bottom-color: var(--tk-sub); }
.taiken-apply__label { margin: 0 0 6px !important; font-size: 13px; font-weight: 700; letter-spacing: .06em; color: var(--tk-orange-dark); }
.taiken-apply__title { margin: 0 0 10px !important; padding: 0 !important; background: none !important; border: 0 !important; font-size: 24px; font-weight: 900; line-height: 1.5; }
.taiken-apply__title::before, .taiken-apply__title::after { display: none !important; }
.taiken-apply p { margin: 0; font-size: 15px; line-height: 1.8; }
.taiken-apply p span { display: inline-block; }
@media (max-width: 599px) {
	.taiken-apply { grid-template-columns: 1fr; gap: 0; }
	.taiken-apply > .taiken-btn { grid-column: 1; grid-row: auto; margin-top: 20px; text-align: center; }
	.taiken-apply__title { font-size: 21px; }
}
.taiken-host__apply { margin: 12px 0 0; }
.taiken-host__apply a { font-size: 14px; font-weight: 700; color: var(--tk-orange-dark); }
.taiken-host__apply a::after { content: " ↓"; }

/* ---------- どのページの最後にも出す入会の案内 ---------- */
.taiken-cta {
	padding: 56px 16px;
	background: var(--tk-orange-tint);
}
/* 角丸の箱にしない。背景を画面の端までベタで敷き、左に振り返り会の写真（四角いまま）、右に一言と「初月無料」 */
.taiken-cta__inner { display: grid; grid-template-columns: 5fr 6fr; gap: 0 48px; align-items: center; max-width: 960px; margin: 0 auto; text-align: left; }
/* SWELL のフッター前ウィジェットの枠（幅の決まった箱）に入ったときも、色は端まで */
.w-beforeFooter .taiken-cta { margin: 56px 0; padding: 56px 0; box-shadow: 0 0 0 100vmax var(--tk-orange-tint); clip-path: inset(0 -100vmax); }
.taiken-cta__photo { position: relative; margin: 0; }
.taiken-cta__photo img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 0; }
.taiken-cta__photo figcaption { position: absolute; left: 0; top: 16px; padding: 6px 14px; background: var(--tk-ink); color: #fff; font-size: 14px; font-weight: 700; letter-spacing: .08em; }
.taiken-cta__text { margin: 0 0 18px; font-size: 18px; font-weight: 700; line-height: 1.7; color: var(--tk-ink); }
.taiken-cta__offer { margin: 0 0 6px; }
.taiken-cta__free { margin: 0; font-size: 60px; font-weight: 900; line-height: 1.1; letter-spacing: .04em; color: var(--tk-orange); white-space: nowrap; }
.taiken-cta__fee { margin: 8px 0 0; font-size: 15px; font-weight: 700; color: var(--tk-ink); }
/* 言葉のまとまりで折り返す（「です。」だけが次の行に落ちないように） */
.taiken-cta__fee span, .taiken-cta__text span { display: inline-block; }
.taiken-cta__count { margin: 0 0 24px; font-size: 14px; color: var(--tk-sub); }
.taiken-cta .taiken-btn { box-shadow: 6px 6px 0 var(--tk-ink); }
.taiken-cta__note { margin: 20px 0 0; font-size: 12px; line-height: 1.7; color: var(--tk-sub); word-break: auto-phrase; text-wrap: pretty; }
@media (max-width: 599px) {
	.taiken-cta, .w-beforeFooter .taiken-cta { padding: 40px 0; }
	.taiken-cta { padding-left: 20px; padding-right: 20px; }
	.taiken-cta__inner { grid-template-columns: 1fr; gap: 24px; }
	.taiken-cta__free { font-size: 46px; }
	.taiken-cta .taiken-btn { display: block; text-align: center; }
}

/* ---------- トップ：実績の数字 ---------- */
.taiken-stats { margin: 8px 0 48px; text-align: center; }
.taiken-stats__list { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px 48px; margin: 0; }
.taiken-stats__item { display: flex; align-items: baseline; gap: 10px; }
.taiken-stats__item dt { font-size: 14px; font-weight: 700; color: var(--tk-ink); }
.taiken-stats__item dd { margin: 0; }
.taiken-stats__num { font-family: var(--tk-font-en); font-size: 36px; font-weight: 700; line-height: 1; color: var(--tk-orange); }
.taiken-stats__unit { margin-left: 2px; font-size: 14px; font-weight: 700; }

/* ---------- トップ：体験の色の帯 ---------- */
.taiken-band { --band: var(--tk-orange); --band-tint: var(--tk-orange-tint); margin: 0 0 56px; }
.taiken-band__head { padding: 18px 24px; border-radius: var(--tk-radius); background: var(--band); color: #fff; text-align: center; }
.taiken-band__lead { margin: 0 0 2px; font-size: 13px; opacity: .92; }
.taiken-band__title { margin: 0 !important; padding: 0 !important; border: 0 !important; background: none !important; font-size: 24px !important; font-weight: 900; letter-spacing: .06em; color: #fff !important; }
.taiken-band__title::before, .taiken-band__title::after { display: none !important; }
.taiken-band__tags { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; margin: 18px 0 24px; padding: 0; list-style: none; }
.taiken-band__tags a { display: inline-flex; align-items: center; gap: 6px; padding: 4px 12px; border-radius: 999px; background: var(--band-tint); font-size: 13px; color: var(--tk-ink); text-decoration: none; }
.taiken-band__tags span { font-family: var(--tk-font-en); font-weight: 700; color: var(--band); }
.taiken-band__foot { margin: 28px 0 0; text-align: center; }
.taiken-btn--ghost { padding: 10px 28px; border: 2px solid var(--band, var(--tk-orange)); background: var(--tk-paper); color: var(--band, var(--tk-orange)) !important; }
.taiken-btn--ghost:hover { background: var(--band-tint, var(--tk-orange-tint)); }
.taiken-band__soon { margin: 16px 0 0; padding: 20px; border-radius: var(--tk-radius); background: var(--band-tint); text-align: center; color: var(--tk-sub); }
@media (max-width: 599px) {
	.taiken-stats__list { gap: 10px 24px; }
	.taiken-stats__num { font-size: 28px; }
	.taiken-band__title { font-size: 20px !important; }
}

/* ---------- 体験者の声（吹き出し） ---------- */
.taiken-voice-list { margin: 0; padding: 0; list-style: none; display: grid; gap: 28px; }
.taiken-voice { display: grid; grid-template-columns: 112px 1fr; gap: 20px; align-items: start; }
.taiken-voice__who { display: flex; flex-direction: column; align-items: center; gap: 8px; padding-top: 6px; text-align: center; }
.taiken-voice__avatar { display: grid; place-items: center; width: 64px; height: 64px; border-radius: 50%; background: var(--tk-blue-tint); }
.taiken-voice__avatar svg { width: 38px; height: 38px; fill: #4E6B78; }
.taiken-voice__name { font-size: 13px; line-height: 1.5; color: var(--tk-sub); }
.taiken-voice__bubble { position: relative; padding: 22px 26px; border: 1.5px solid var(--tk-blue); border-radius: var(--tk-radius); background: var(--tk-paper); }
/* 吹き出しのしっぽ（人のほうを向く） */
.taiken-voice__bubble::before,
.taiken-voice__bubble::after { content: ""; position: absolute; top: 30px; border-style: solid; border-color: transparent; }
.taiken-voice__bubble::before { left: -12px; border-width: 9px 12px 9px 0; border-right-color: var(--tk-blue); }
.taiken-voice__bubble::after { left: -9px; top: 31px; border-width: 8px 10px 8px 0; border-right-color: var(--tk-paper); }
.taiken-voice__title { margin: 0 0 8px; font-weight: 700; font-size: 17px; line-height: 1.6; color: var(--tk-ink); }
.taiken-voice__text { margin: 0; line-height: 1.9; }
.taiken-voice__more { display: inline-flex; align-items: center; gap: 4px; margin-top: 14px; font-weight: 700; font-size: 14px; color: var(--tk-orange); text-decoration: none; }
.taiken-voice__more:hover { color: var(--tk-orange-dark); text-decoration: underline; }
.taiken-voice__more svg { width: 16px; height: 16px; }
.taiken-voices__sub { margin: 40px 0 16px; font-size: 18px; }
@media (max-width: 599px) {
	.taiken-voice { grid-template-columns: 1fr; gap: 12px; }
	.taiken-voice__who { flex-direction: row; padding-top: 0; text-align: left; }
	.taiken-voice__avatar { width: 44px; height: 44px; }
	.taiken-voice__avatar svg { width: 26px; height: 26px; }
	.taiken-voice__bubble { padding: 18px 20px; }
	/* しっぽは上（人のほう）に向ける */
	.taiken-voice__bubble::before { left: 14px; top: -12px; border-width: 0 9px 12px 9px; border-color: transparent transparent var(--tk-blue) transparent; }
	.taiken-voice__bubble::after { left: 15px; top: -9px; border-width: 0 8px 10px 8px; border-color: transparent transparent var(--tk-paper) transparent; }
}

/* ---------- お問い合わせフォーム ---------- */
/* display を指定しているので、hidden（送信後に隠す）が効くように戻す */
.taiken-form[hidden], .taiken-form__done[hidden], .taiken-form__alert[hidden] { display: none !important; }
.taiken-form { display: grid; gap: 24px; max-width: 720px; margin: 0 auto; }
.taiken-form__label { display: block; margin-bottom: 8px; font-weight: 700; }
.taiken-form__req,
.taiken-form__opt { display: inline-block; margin-left: 8px; padding: 1px 8px; border-radius: 4px; font-size: 11px; font-weight: 700; vertical-align: 2px; }
.taiken-form__req { background: var(--tk-orange); color: #fff; }
.taiken-form__opt { background: var(--tk-off); color: var(--tk-sub); }
.taiken-form__split { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.taiken-form__sublabel { display: block; margin-bottom: 4px; font-size: 13px; color: var(--tk-sub); }
.taiken-form input[type="text"],
.taiken-form input[type="email"],
.taiken-form input[type="tel"],
.taiken-form select,
.taiken-form textarea { width: 100%; padding: 12px 14px; border: 1px solid var(--tk-border); border-radius: 8px; background: var(--tk-paper); font: inherit; font-size: 16px; color: var(--tk-ink); }
.taiken-form :is(input, select, textarea):focus { outline: 2px solid var(--tk-blue); outline-offset: 1px; border-color: #8cc8e0; }
.taiken-form .is-invalid { border-color: #D6453D; background: #FFF6F5; }
.taiken-form__error { margin: 6px 0 0; font-size: 13px; color: #C2372F; }
.taiken-form__error:empty { display: none; }
.taiken-form__count { margin: 6px 0 0; font-size: 12px; text-align: right; color: var(--tk-sub); }
.taiken-form__count.is-near { color: var(--tk-orange); font-weight: 700; }
.taiken-form__agree { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; justify-content: center; }
.taiken-form__agree input { width: 18px; height: 18px; }
.taiken-form__agree .taiken-form__error { flex-basis: 100%; text-align: center; }
.taiken-form__submit-wrap { text-align: center; }
.taiken-form__submit { min-width: 240px; border: 0; cursor: pointer; }
.taiken-form__submit:disabled { opacity: .6; cursor: default; }
.taiken-form__alert { margin: 0; padding: 14px 18px; border-radius: 8px; background: #FFF0EE; color: #A52A22; }
.taiken-form__done { max-width: 720px; margin: 0 auto; padding: 32px 24px; border-radius: var(--tk-radius); background: var(--tk-blue-tint); text-align: center; }
.taiken-form__done-title { margin: 0 0 8px; font-weight: 700; font-size: 18px; }
@media (max-width: 599px) { .taiken-form__split { grid-template-columns: 1fr; } }

/* ---------- 印刷・PDF にするとき（確認用に先方へ渡すなど） ---------- */
@media print {
	.taiken-staging-ribbon,
	.p-fixBtnWrap,
	#fix_bottom_menu,
	.c-shareBtns,
	#wpadminbar { display: none !important; }
	html { margin-top: 0 !important; }
	/* 内容の確認に関係しない部分（行った人の話・入会の案内・フッター）は出さない */
	.taiken-voices,
	.taiken-cta,
	#before_footer_widget,
	#footer { display: none !important; }
	/* 区切りごとにページを送らない（写真と流れの1段だけは途中で切らない） */
	.l-content, .l-mainContent, .l-mainContent__inner, .taiken-host, .taiken-host section, .taiken-host__content, .post_content, .taiken-info, .taiken-apply { break-inside: auto !important; break-before: auto !important; break-after: auto !important; }
	.l-content, .l-mainContent, .l-mainContent__inner { display: block !important; }
	.wp-block-image, .taiken-flow__step, .taiken-info > div { break-inside: avoid; }
	/* 動画は紙では再生できないので、置き場所だけ示す */
	.wp-block-video video { display: none !important; }
	.wp-block-video::after { content: "（ここに動画が入ります。Webページで再生できます）"; display: block; padding: 24px; border: 1px dashed var(--tk-border); border-radius: 10px; color: var(--tk-sub); text-align: center; font-size: 14px; }
}
