/* =====================================================================
   WA CIRCLE Theme Trial — theme.css
   試作用テーマ。PC 1440px を基準、旧エディター本文の表示を重視。
   外部フォント・CDN・ライブラリは使用しない。
   ===================================================================== */

:root {
	--paper: #F4F0E6;
	--paper-2: #EAE3D2;
	--white: #FBF9F4;
	--ink: #23221B;
	--ink-mid: #5A584B;
	--ink-faint: #908D7C;
	--hair: rgba(35, 34, 27, 0.18);
	--hair-soft: rgba(35, 34, 27, 0.09);

	--night: #131510;
	--night-2: #1A1D16;
	--night-ink: #EFEBDA;
	--night-ink-soft: rgba(239, 235, 218, 0.66);
	--night-hair: rgba(239, 235, 218, 0.22);

	--aka: #B23A22;
	--aka-soft: #C96A50;

	--glass: rgba(247, 244, 236, 0.82);
	--glass-line: rgba(255, 255, 255, 0.55);

	--serif: "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", "Noto Serif JP", serif;
	--sans: "Hiragino Kaku Gothic ProN", "Yu Gothic Medium", "Yu Gothic", "Noto Sans JP", sans-serif;

	--shell: 1240px;
	--pad: 72px;
	--ease: cubic-bezier(0.25, 0.6, 0.3, 1);
}

/* ---------- base ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }

body {
	margin: 0;
	background: var(--paper);
	color: var(--ink);
	font-family: var(--sans);
	font-size: 16px;
	line-height: 1.95;
	letter-spacing: 0.02em;
	font-feature-settings: "palt";
	-webkit-font-smoothing: antialiased;
	overflow-x: hidden;
}

img { max-width: 100%; height: auto; display: block; }
a { color: inherit; }
h1, h2, h3, h4 { font-family: var(--serif); font-weight: 500; margin: 0; line-height: 1.5; }
p { margin: 0; }

.wc-shell { max-width: var(--shell); margin: 0 auto; padding-left: var(--pad); padding-right: var(--pad); }
.wc-main { display: block; }

::selection { background: rgba(178, 58, 34, 0.85); color: #fff; }

:focus-visible { outline: 2px solid var(--aka); outline-offset: 3px; }

/* スキップリンク：フォーカスされたら必ず見えるようにする */
.wc-skip:focus {
	position: fixed !important;
	top: 12px; left: 12px; z-index: 999;
	width: auto !important; height: auto !important;
	clip: auto !important; overflow: visible !important;
	background: var(--aka); color: #fff;
	padding: 12px 22px; border-radius: 999px;
	font-size: 13px; text-decoration: none; letter-spacing: 0.1em;
}

/* ---------- reveal（JS無効時は常に表示） ---------- */
.wc-rv { opacity: 1; transform: none; }
html.wc-js .wc-rv { opacity: 0; transform: translateY(14px); transition: opacity 0.85s var(--ease), transform 0.85s var(--ease); }
html.wc-js .wc-rv.is-on { opacity: 1; transform: none; }
html.wc-js .wc-rv--d2 { transition-delay: 0.12s; }
@media (prefers-reduced-motion: reduce) {
	html.wc-js .wc-rv { opacity: 1; transform: none; transition: none; }
}

/* ---------- 共通パーツ ---------- */
.wc-pill {
	display: inline-flex; align-items: center; gap: 12px;
	font-size: 12.5px; font-weight: 600; letter-spacing: 0.2em;
	padding: 14px 28px; border-radius: 999px; text-decoration: none;
	border: 1px solid currentColor; background: transparent;
	transition: background 0.35s var(--ease), color 0.35s var(--ease), border-color 0.35s var(--ease);
}
.wc-pill::after { content: "\2192"; font-family: var(--serif); letter-spacing: 0; transition: transform 0.35s var(--ease); }
.wc-pill:hover { background: var(--ink); border-color: var(--ink); color: var(--paper); }
.wc-pill:hover::after { transform: translateX(4px); }
.wc-pill--aka { background: var(--aka); border-color: var(--aka); color: #fff; }
.wc-pill--aka:hover { background: #8F2D19; border-color: #8F2D19; color: #fff; }
.wc-pill--light { color: #fff; border-color: rgba(255,255,255,0.6); }
.wc-pill--light:hover { background: #fff; border-color: #fff; color: var(--ink); }

.wc-eyebrow {
	display: flex; align-items: center; gap: 13px;
	font-size: 11px; letter-spacing: 0.28em; color: var(--ink-mid); margin-bottom: 26px;
}
.wc-eyebrow::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: var(--aka); flex: none; }

/* 章見出し */
.wc-chead { display: flex; align-items: baseline; gap: 16px; margin-bottom: 32px; flex-wrap: wrap; }
.wc-chead__no { font-family: var(--serif); font-style: italic; font-size: 19px; color: var(--aka); letter-spacing: 0.06em; }
.wc-chead__rule { width: 52px; height: 1px; background: var(--ink-faint); align-self: center; }
.wc-chead__en { font-size: 11px; letter-spacing: 0.32em; text-transform: uppercase; color: var(--ink-mid); }
.wc-chead__ja { font-size: 11px; letter-spacing: 0.2em; color: var(--ink-faint); }
.wc-chead--light .wc-chead__rule { background: var(--night-hair); }
.wc-chead--light .wc-chead__en { color: var(--night-ink-soft); }
.wc-chead--light .wc-chead__ja { color: var(--night-ink-soft); }
.wc-chead--light .wc-chead__no { color: var(--aka-soft); }
.wc-chead--center { justify-content: center; }

/* ガラス面 */
.wc-panel {
	background: var(--glass);
	backdrop-filter: blur(20px) saturate(1.15);
	border: 1px solid var(--glass-line);
	border-radius: 24px;
	box-shadow: 0 40px 90px -40px rgba(15, 14, 8, 0.65);
}

/* カテゴリーラベル */
.wc-cat {
	display: inline-block; font-size: 11px; letter-spacing: 0.16em; font-weight: 600;
	padding: 4px 13px; border-radius: 999px;
	background: var(--paper-2); color: var(--ink-mid); border: 1px solid var(--hair-soft);
}
.wc-cat[data-cat="kurashi"] { background: #E7EDE4; color: #3E5540; }
.wc-cat[data-cat="shigoto"] { background: #E5EAF0; color: #3B4C60; }
.wc-cat[data-cat="kotoba"]  { background: #F0E9DC; color: #6B563A; }
.wc-cat[data-cat="bunka"]   { background: #F2E5E2; color: #7A4034; }
.wc-cat[data-cat="koe"]     { background: var(--aka); color: #fff; border-color: var(--aka); }
.wc-cat[data-cat="news"]    { background: var(--ink); color: var(--paper); border-color: var(--ink); }

/* 仮素材 */
.wc-ph {
	display: flex; align-items: center; justify-content: center;
	width: 100%; height: 100%; min-height: 140px;
	background: repeating-linear-gradient(135deg, var(--paper-2) 0 12px, rgba(255,255,255,0.6) 12px 24px);
}
.wc-ph i {
	font-style: normal; font-size: 10.5px; letter-spacing: 0.18em; color: var(--ink-faint);
	background: rgba(255,255,255,0.85); border-radius: 999px; padding: 4px 12px;
}

/* 検索フォーム */
.wc-search {
	display: flex; align-items: center; gap: 12px;
	border: 1px solid var(--hair); border-radius: 999px;
	background: rgba(255,255,255,0.75); padding: 8px 8px 8px 22px;
	transition: border-color 0.3s var(--ease), background 0.3s var(--ease);
}
.wc-search:focus-within { border-color: var(--ink); background: #fff; }
.wc-search__icon { flex: none; opacity: 0.55; }
.wc-search__field {
	flex: 1; min-width: 0; border: 0; background: transparent; outline: none;
	font-family: inherit; font-size: 13.5px; color: var(--ink); padding: 8px 0;
	letter-spacing: 0.04em;
}
.wc-search__field::placeholder { color: var(--ink-faint); }
.wc-search__btn {
	flex: none; border: 0; cursor: pointer; font-family: inherit;
	font-size: 11.5px; font-weight: 700; letter-spacing: 0.2em;
	color: #fff; background: var(--aka); border-radius: 999px; padding: 11px 22px;
	transition: background 0.3s var(--ease);
}
.wc-search__btn:hover { background: #8F2D19; }

/* =====================================================================
   ヘッダー
   ===================================================================== */
.wc-hd {
	position: sticky; top: 0; z-index: 50;
	background: rgba(244, 240, 230, 0.9);
	backdrop-filter: blur(16px);
	border-bottom: 1px solid var(--hair-soft);
	transition: background 0.4s var(--ease), border-color 0.4s var(--ease), color 0.4s var(--ease);
}
/* トップページではヒーローに重ねる */
.wc-hd--overlay { position: fixed; inset: 0 0 auto 0; background: transparent; border-bottom-color: transparent; color: #fff; }
.wc-hd--overlay.is-scrolled { background: rgba(244, 240, 230, 0.9); border-bottom-color: var(--hair-soft); color: var(--ink); }

.wc-hd__in { display: flex; align-items: center; gap: 32px; height: 82px; max-width: 1400px; margin: 0 auto; padding: 0 40px; }
.wc-hd__brand { flex: none; }

.wc-brand { display: flex; align-items: center; gap: 13px; text-decoration: none; }
.wc-brand__mark { width: 30px; height: 30px; border-radius: 50%; border: 1px solid currentColor; position: relative; flex: none; }
.wc-brand__mark::after { content: ""; position: absolute; left: 50%; top: 50%; width: 6px; height: 6px; margin: -3px 0 0 -3px; border-radius: 50%; background: var(--aka); }
.wc-brand__mark--light { color: var(--night-ink); }
.wc-brand__txt { display: flex; flex-direction: column; line-height: 1.3; }
.wc-brand__txt strong { font-family: var(--serif); font-size: 17px; font-weight: 600; letter-spacing: 0.2em; }
.wc-brand__txt small { font-size: 9.5px; letter-spacing: 0.34em; opacity: 0.7; text-transform: uppercase; }
.wc-hd .custom-logo { max-height: 46px; width: auto; }

.wc-nav { margin-left: auto; }
.wc-nav__list, .wc-nav ul { display: flex; gap: 30px; list-style: none; margin: 0; padding: 0; }
.wc-nav__list a, .wc-nav ul a { font-size: 13px; letter-spacing: 0.1em; text-decoration: none; opacity: 0.8; transition: opacity 0.3s; }
.wc-nav__list a:hover, .wc-nav ul a:hover { opacity: 1; }
.wc-nav .sub-menu { display: none; }

.wc-hd__side { display: flex; align-items: center; gap: 16px; }
.wc-hd__side .wc-search { width: 260px; padding: 5px 5px 5px 18px; }
.wc-hd__side .wc-search__field { font-size: 12.5px; padding: 6px 0; }
.wc-hd__side .wc-search__btn { padding: 9px 16px; font-size: 10.5px; }

.wc-langs { display: flex; align-items: center; gap: 2px; list-style: none; margin: 0; padding: 3px; border: 1px solid var(--hair); border-radius: 999px; }
.wc-hd--overlay:not(.is-scrolled) .wc-langs { border-color: rgba(255,255,255,0.4); }
.wc-langs a, .wc-langs span { display: block; font-size: 10.5px; letter-spacing: 0.12em; padding: 5px 11px; border-radius: 999px; text-decoration: none; }
.wc-langs .is-cur { background: var(--ink); color: var(--paper); }
.wc-hd--overlay:not(.is-scrolled) .wc-langs .is-cur { background: rgba(255,255,255,0.92); color: var(--ink); }
.wc-langs .is-soon { opacity: 0.5; cursor: help; }

.wc-burger { display: none; border: 0; background: none; cursor: pointer; padding: 10px; margin-left: auto; }
.wc-burger span[aria-hidden] { display: block; width: 22px; height: 1.5px; background: currentColor; position: relative; }
.wc-burger span[aria-hidden]::before,
.wc-burger span[aria-hidden]::after { content: ""; position: absolute; left: 0; width: 22px; height: 1.5px; background: currentColor; }
.wc-burger span[aria-hidden]::before { top: -7px; }
.wc-burger span[aria-hidden]::after { top: 7px; }

.wc-mnav { display: none; padding: 8px 32px 24px; border-top: 1px solid var(--hair-soft); background: var(--paper); }
.wc-mnav.is-open { display: block; }
.wc-mnav ul { list-style: none; margin: 0; padding: 0; }
.wc-mnav a { display: block; padding: 13px 0; text-decoration: none; border-bottom: 1px solid var(--hair-soft); font-size: 14px; }

/* =====================================================================
   01 ヒーロー
   ===================================================================== */
.wc-hero { position: relative; min-height: 100vh; display: flex; align-items: center; overflow: hidden; }
.wc-hero__bg { position: absolute; inset: 0; }
.wc-hero__bg img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 38%; }
.wc-hero__veil {
	position: absolute; inset: 0;
	background:
		linear-gradient(75deg, rgba(20,18,12,0.55) 0%, rgba(20,18,12,0.2) 46%, rgba(20,18,12,0.05) 70%),
		linear-gradient(0deg, rgba(20,18,12,0.42) 0%, rgba(20,18,12,0) 34%);
}
.wc-hero__shell { position: relative; z-index: 2; width: 100%; padding-top: 130px; padding-bottom: 90px; }
.wc-hero__panel { width: 640px; max-width: 100%; padding: 50px 54px 46px; }
.wc-hero__title { font-size: 50px; line-height: 1.44; letter-spacing: 0.09em; margin-bottom: 22px; }
.wc-hero__lead { font-size: 14.5px; line-height: 2.15; color: var(--ink-mid); margin-bottom: 30px; }
.wc-hero__search { margin-bottom: 16px; }
.wc-hero__sub { margin-top: 26px; padding-top: 24px; border-top: 1px solid var(--hair-soft); }
.wc-hero__sub a { font-size: 12px; letter-spacing: 0.18em; text-decoration: none; color: var(--ink-mid); display: inline-flex; align-items: center; gap: 10px; }
.wc-hero__sub a::after { content: "\2192"; font-family: var(--serif); transition: transform 0.3s var(--ease); }
.wc-hero__sub a:hover::after { transform: translateX(4px); }

.wc-hero__ch { position: absolute; right: 44px; bottom: 50px; z-index: 2; color: rgba(255,255,255,0.85); display: flex; align-items: flex-end; gap: 15px; }
.wc-hero__ch-no { font-family: var(--serif); font-style: italic; font-size: 42px; line-height: 1; }
.wc-hero__ch-tx { writing-mode: vertical-rl; font-size: 10.5px; letter-spacing: 0.38em; padding-bottom: 4px; }

/* =====================================================================
   02 困りごとの索引
   ===================================================================== */
.wc-idx { padding: 140px 0 130px; }
.wc-idx__top { display: flex; align-items: flex-end; justify-content: space-between; gap: 36px; margin-bottom: 18px; flex-wrap: wrap; }
.wc-idx__title { font-size: 36px; letter-spacing: 0.1em; line-height: 1.6; }
.wc-idx__aud { display: flex; gap: 8px; flex-wrap: wrap; padding-bottom: 8px; }
.wc-idx__aud span { font-size: 11px; letter-spacing: 0.16em; color: var(--ink-mid); border: 1px solid var(--hair); border-radius: 999px; padding: 6px 15px; }
.wc-idx__lead { color: var(--ink-mid); font-size: 14px; max-width: 46em; margin-bottom: 52px; }

.wc-idx__list { border-top: 1px solid var(--hair); }
.wc-idx__row {
	display: grid; grid-template-columns: 84px 290px 1fr 200px 60px;
	align-items: center; gap: 26px;
	padding: 36px 0; border-bottom: 1px solid var(--hair);
	text-decoration: none; color: inherit;
	transition: background 0.35s var(--ease), padding-left 0.35s var(--ease);
}
.wc-idx__row:hover { background: rgba(255,255,255,0.5); padding-left: 16px; }
@media (prefers-reduced-motion: reduce) { .wc-idx__row:hover { padding-left: 0; } }
.wc-idx__abc { font-family: var(--serif); font-style: italic; font-size: 18px; color: var(--aka); }
.wc-idx__word { display: flex; flex-direction: column; gap: 5px; }
.wc-idx__word strong { font-family: var(--serif); font-size: 31px; font-weight: 500; letter-spacing: 0.18em; line-height: 1.3; }
.wc-idx__word small { font-size: 10px; letter-spacing: 0.34em; color: var(--ink-faint); text-transform: uppercase; }
.wc-idx__desc { font-size: 13px; line-height: 2; color: var(--ink-mid); }
.wc-idx__thumb { width: 200px; height: 92px; border-radius: 12px; overflow: hidden; }
.wc-idx__thumb img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.6s var(--ease); }
.wc-idx__row:hover .wc-idx__thumb img { transform: scale(1.05); }
.wc-idx__thumb--ph { background: repeating-linear-gradient(135deg, var(--paper-2) 0 12px, rgba(255,255,255,0.6) 12px 24px); display: flex; align-items: center; justify-content: center; }
.wc-idx__thumb--ph i { font-style: normal; font-size: 9.5px; letter-spacing: 0.14em; color: var(--ink-faint); background: rgba(255,255,255,0.85); border-radius: 999px; padding: 4px 10px; text-align: center; }
.wc-idx__go {
	width: 50px; height: 50px; border-radius: 50%; border: 1px solid var(--hair);
	display: flex; align-items: center; justify-content: center; font-family: var(--serif);
	transition: background 0.35s var(--ease), color 0.35s var(--ease), border-color 0.35s var(--ease), transform 0.35s var(--ease);
}
.wc-idx__row:hover .wc-idx__go { background: var(--ink); color: var(--paper); border-color: var(--ink); transform: rotate(-45deg); }
@media (prefers-reduced-motion: reduce) { .wc-idx__row:hover .wc-idx__go { transform: none; } }
.wc-idx__foot { margin-top: 42px; }

/* =====================================================================
   03 人の環（暗章）
   ===================================================================== */
.wc-circle { background: radial-gradient(110% 120% at 80% 10%, var(--night-2) 0%, var(--night) 58%); color: var(--night-ink); padding: 140px 0 150px; }
.wc-circle__grid { display: grid; grid-template-columns: 440px 1fr; gap: 56px; align-items: center; }
.wc-circle__title { font-size: 38px; line-height: 1.6; letter-spacing: 0.11em; margin-bottom: 24px; }
.wc-circle__lead { font-size: 14px; line-height: 2.2; color: var(--night-ink-soft); margin-bottom: 42px; }

.wc-defs { margin: 0; padding: 10px 24px; background: rgba(0,0,0,0.18); border: 1px solid var(--night-hair); border-radius: 14px; }
.wc-defs__row { display: grid; grid-template-columns: 96px 1fr; align-items: center; gap: 20px; padding: 20px 0; border-top: 1px solid var(--night-hair); }
.wc-defs__row:last-child { border-bottom: 1px solid var(--night-hair); }
.wc-defs__row dt { font-family: var(--serif); font-size: 40px; line-height: 1; display: flex; align-items: baseline; gap: 12px; }
.wc-defs__row dt small { font-size: 9.5px; letter-spacing: 0.26em; color: var(--aka-soft); text-transform: uppercase; }
.wc-defs__row dd { margin: 0; font-size: 13px; line-height: 2; color: var(--night-ink); }

/*
 * 最下部の地域ラベルは環の枠から約53px下に出る。
 * この margin は .wc-circle__foot の margin-top と相殺されるため、
 * ラベルの張り出し量より確実に大きい値を指定する。
 */
.wc-ring { position: relative; width: 600px; height: 600px; margin: 0 auto 76px; }
.wc-ring__svg { position: absolute; inset: 0; width: 100%; height: 100%; }
.wc-ring__c { fill: none; stroke: var(--night-hair); stroke-width: 0.22; }
.wc-ring__c--orbit { stroke-dasharray: 0.4 1.4; stroke: rgba(201,106,80,0.5); }
.wc-ring__spoke { stroke: var(--night-hair); stroke-width: 0.18; }
.wc-ring__center { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); text-align: center; }
.wc-ring__center-ja { font-family: var(--serif); font-size: 29px; letter-spacing: 0.32em; text-indent: 0.32em; display: block; }
.wc-ring__center-en { font-size: 9.5px; letter-spacing: 0.4em; color: var(--night-ink-soft); display: block; margin-top: 9px; }
.wc-ring__verb {
	position: absolute; left: var(--x); top: var(--y); transform: translate(-50%, -50%);
	font-family: var(--serif); font-size: 13px; letter-spacing: 0.26em;
	color: var(--night-ink-soft); display: flex; align-items: center; gap: 8px; white-space: nowrap;
}
.wc-ring__verb::before { content: ""; width: 4px; height: 4px; border-radius: 50%; background: var(--aka-soft); flex: none; }
/*
 * 三国の対等性のため、写真そのものの中心をアンカー座標に一致させる。
 * flex で写真とラベルを積むと、要素全体の中心が合わさって写真が上へずれ、
 * 下側の地域だけ中心に近く見えてしまう（上座ができてしまう）。
 * そのため place は写真と同じ大きさの箱にし、ラベルは絶対配置で外に出す。
 */
.wc-ring__place {
	position: absolute; left: var(--x); top: var(--y);
	transform: translate(-50%, -50%);
	width: 124px; height: 124px;
	display: block;
}
.wc-ring__photo {
	width: 100%; height: 100%; border-radius: 50%; overflow: hidden; display: block;
	border: 1px solid rgba(239,235,218,0.4); box-shadow: 0 24px 50px -20px rgba(0,0,0,0.7);
}
.wc-ring__photo img { width: 100%; height: 100%; object-fit: cover; }
.wc-ring__name,
.wc-ring__native {
	position: absolute; left: 50%; transform: translateX(-50%);
	white-space: nowrap; text-align: center;
}
.wc-ring__name { top: calc(100% + 11px); font-size: 11.5px; letter-spacing: 0.24em; text-transform: uppercase; }
.wc-ring__native { top: calc(100% + 30px); font-size: 10.5px; letter-spacing: 0.1em; color: var(--night-ink-soft); }
.wc-circle__foot { margin-top: 34px; text-align: center; font-size: 11.5px; letter-spacing: 0.28em; color: var(--night-ink-soft); }

.wc-country-strip {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 18px;
	margin-top: 52px;
}
.wc-country-card {
	position: relative;
	margin: 0;
	min-height: 310px;
	overflow: hidden;
	border-radius: 18px;
	background: rgba(255,255,255,0.08);
	border: 1px solid var(--night-hair);
	box-shadow: 0 26px 70px -42px rgba(0,0,0,0.74);
}
.wc-country-card__media {
	position: absolute;
	inset: 0;
}
.wc-country-card__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.7s var(--ease);
}
.wc-country-card:hover .wc-country-card__media img { transform: scale(1.04); }
.wc-country-card__media::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(0,0,0,0.08) 0%, rgba(0,0,0,0.1) 38%, rgba(0,0,0,0.72) 100%);
}
.wc-country-card__body {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 1;
	padding: 26px 24px 24px;
}
.wc-country-card__body strong {
	display: block;
	font-family: var(--serif);
	font-size: 26px;
	letter-spacing: 0.15em;
	margin-bottom: 10px;
}
.wc-country-card__body span {
	display: block;
	font-size: 12.5px;
	line-height: 1.9;
	color: var(--night-ink-soft);
}

/* =====================================================================
   04 自由エリア（画像・動画）
   ===================================================================== */
.wc-media { padding: 120px 0; background: var(--paper-2); }
.wc-media__title { font-size: 32px; letter-spacing: 0.1em; margin-bottom: 16px; }
.wc-media__text { font-size: 14px; color: var(--ink-mid); max-width: 46em; margin-bottom: 40px; }
.wc-media__frame { border-radius: 20px; overflow: hidden; box-shadow: 0 40px 80px -40px rgba(15,14,8,0.5); }
.wc-media__err { padding: 40px; text-align: center; color: var(--ink-mid); background: var(--white); font-size: 13.5px; }

/* =====================================================================
   05 声（体験談）
   ===================================================================== */
.wc-voice { position: relative; padding: 130px 0; overflow: hidden; }
.wc-voice__bg { position: absolute; inset: 0; }
.wc-voice__bg img { width: 100%; height: 100%; object-fit: cover; object-position: 30% 40%; }
.wc-voice__veil {
	position: absolute; inset: 0;
	background: linear-gradient(-80deg, rgba(18,16,10,0.6) 0%, rgba(18,16,10,0.25) 46%, rgba(18,16,10,0.05) 72%);
}
.wc-voice__shell { position: relative; z-index: 2; display: flex; justify-content: flex-end; }
.wc-voice__panel { width: 620px; max-width: 100%; padding: 48px 52px 44px; }
.wc-voice__title { font-size: 30px; letter-spacing: 0.1em; line-height: 1.6; margin-bottom: 30px; }
.wc-voice__list { list-style: none; margin: 0 0 34px; padding: 0; border-top: 1px solid var(--hair); }
.wc-voice__list li { border-bottom: 1px solid var(--hair); }
.wc-voice__list a { display: flex; flex-direction: column; gap: 6px; padding: 18px 0; text-decoration: none; transition: padding-left 0.3s var(--ease); }
.wc-voice__list a:hover { padding-left: 10px; }
@media (prefers-reduced-motion: reduce) { .wc-voice__list a:hover { padding-left: 0; } }
.wc-voice__q { font-family: var(--serif); font-size: 18px; line-height: 1.7; letter-spacing: 0.04em; }
.wc-voice__q::before { content: "\300C"; color: var(--aka); }
.wc-voice__q::after { content: "\300D"; color: var(--aka); }
.wc-voice__meta { font-size: 11.5px; color: var(--ink-faint); letter-spacing: 0.1em; }

.wc-voice__flow { display: flex; align-items: center; margin-bottom: 28px; }
.wc-step { display: flex; flex-direction: column; align-items: center; gap: 8px; flex: none; }
.wc-step b { font-family: var(--serif); font-weight: 500; font-size: 13px; letter-spacing: 0.14em; }
.wc-step i { font-style: normal; width: 7px; height: 7px; border-radius: 50%; border: 1px solid var(--ink-mid); }
.wc-step.is-now i { background: var(--aka); border-color: var(--aka); }
.wc-wire { flex: 1; height: 1px; background: var(--hair); margin: 0 10px 26px; }
.wc-voice__more { margin-top: 4px; }

/* =====================================================================
   06 新着記事
   ===================================================================== */
.wc-latest { padding: 130px 0; }
.wc-latest:has(.wc-empty) { padding-bottom: 76px; }
.wc-latest__more { margin-top: 44px; }

.wc-cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 30px; }
.wc-card { background: var(--white); border-radius: 16px; overflow: hidden; border: 1px solid var(--hair-soft); transition: transform 0.4s var(--ease), box-shadow 0.4s var(--ease); }
.wc-card:hover { transform: translateY(-4px); box-shadow: 0 30px 60px -34px rgba(15,14,8,0.5); }
@media (prefers-reduced-motion: reduce) { .wc-card:hover { transform: none; } }
.wc-card__link { display: flex; flex-direction: column; height: 100%; text-decoration: none; color: inherit; }
.wc-card__media { display: block; aspect-ratio: 4 / 3; overflow: hidden; background: var(--paper-2); }
.wc-card__media img { width: 100%; height: 100%; object-fit: cover; }
.wc-card__body { display: flex; flex-direction: column; gap: 10px; padding: 22px 24px 26px; flex: 1; }
.wc-card__meta { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; font-size: 11.5px; color: var(--ink-faint); letter-spacing: 0.08em; }
.wc-card__title { font-family: var(--serif); font-size: 19px; line-height: 1.6; letter-spacing: 0.04em; }
.wc-card__excerpt { font-size: 13px; line-height: 1.95; color: var(--ink-mid); }
.wc-card__go { margin-top: auto; padding-top: 8px; font-size: 11.5px; letter-spacing: 0.2em; color: var(--aka); }

.wc-empty { padding: 28px 0 12px; text-align: center; color: var(--ink-mid); }
.wc-empty h2 { font-size: 22px; margin-bottom: 12px; }
.wc-empty .wc-search { max-width: 480px; margin: 24px auto 0; }

/* =====================================================================
   07 結び
   ===================================================================== */
.wc-close { padding: 130px 0; background: linear-gradient(135deg, var(--paper-2), var(--paper)); }
.wc-close__layout { display: grid; grid-template-columns: minmax(0,1.2fr) minmax(360px,.8fr); gap: clamp(34px,6vw,86px); align-items: center; }
.wc-close__media { min-height: 520px; overflow: hidden; border-radius: 22px; box-shadow: 0 32px 70px -36px rgba(15,14,8,.56); }
.wc-close__media img { width: 100%; height: 100%; min-height: 520px; object-fit: cover; object-position: 50% 30%; }
.wc-close__panel {
	text-align: left; max-width: 100%; background: var(--white);
	border: 1px solid var(--hair-soft); border-radius: 18px;
	color: var(--ink); padding: 42px 40px 38px; box-shadow: 0 24px 54px -38px rgba(15,14,8,.5);
}
.wc-close__panel .wc-chead { justify-content: flex-start; }
.wc-close__panel .wc-chead--light .wc-chead__rule { background: var(--hair); }
.wc-close__panel .wc-chead--light .wc-chead__en, .wc-close__panel .wc-chead--light .wc-chead__ja { color: var(--ink-mid); }
.wc-close__panel .wc-pill--light { color: var(--ink); border-color: var(--hair); }
.wc-close__panel .wc-pill--light:hover { background: var(--ink); border-color: var(--ink); color: var(--paper); }
.wc-close__title { font-size: 32px; letter-spacing: 0.1em; line-height: 1.65; margin-bottom: 16px; }
.wc-close__lead { font-size: 13.5px; line-height: 2.1; color: var(--ink-mid); margin-bottom: 30px; }
.wc-close__actions { display: flex; justify-content: flex-start; gap: 12px; flex-wrap: wrap; }

/* =====================================================================
   記事・一覧の共通レイアウト（サイドバー付き2カラム）
   ===================================================================== */
.wc-single, .wc-list { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: 64px; padding-top: 64px; padding-bottom: 110px; align-items: start; }
.wc-single--page { grid-template-columns: minmax(0, 1fr); max-width: 900px; }
.wc-single > article, .wc-single > .wc-related, .wc-single > .wc-adjacent, .wc-single > .wc-backhome, .wc-single > .comments-area { grid-column: 1; }
.wc-list__main { grid-column: 1; min-width: 0; }
.wc-single .wc-side, .wc-list .wc-side { grid-column: 2; grid-row: 1 / -1; position: sticky; top: 110px; }
.wc-single--page .wc-side { display: none; }
.wc-article { min-width: 0; }

/* 一覧ヘッダー */
.wc-listhead { margin-bottom: 40px; padding-bottom: 30px; border-bottom: 1px solid var(--hair); }
.wc-listhead__eyebrow { font-size: 11px; letter-spacing: 0.26em; color: var(--aka); margin-bottom: 14px; }
.wc-listhead__title { font-size: 34px; letter-spacing: 0.08em; line-height: 1.5; }
.wc-listhead__desc { margin-top: 16px; color: var(--ink-mid); font-size: 14px; }
.wc-listhead__count { margin-top: 14px; font-size: 12px; letter-spacing: 0.14em; color: var(--ink-faint); }
.wc-listhead__form { margin-top: 24px; max-width: 520px; }
.wc-listhead--cat { border-bottom-width: 2px; }

/* カテゴリー切り替えタブ */
.wc-cattabs { display: flex; flex-wrap: wrap; gap: 9px; margin-bottom: 40px; }
.wc-cattabs a {
	display: inline-flex; align-items: center; gap: 7px;
	font-size: 12.5px; letter-spacing: 0.1em; text-decoration: none; color: var(--ink-mid);
	border: 1px solid var(--hair); border-radius: 999px; padding: 8px 18px;
	transition: background 0.3s, color 0.3s, border-color 0.3s;
}
.wc-cattabs a small { font-size: 10px; color: var(--ink-faint); }
.wc-cattabs a:hover { background: var(--ink); color: var(--paper); border-color: var(--ink); }
.wc-cattabs a:hover small { color: rgba(255,255,255,0.7); }
.wc-cattabs a.is-cur { background: var(--aka); color: #fff; border-color: var(--aka); }
.wc-cattabs a.is-cur small { color: rgba(255,255,255,0.75); }

/* 一覧のカードは2列（サイドバーがあるため） */
.wc-list .wc-cards { grid-template-columns: repeat(2, 1fr); }
.wc-cards--3 { grid-template-columns: repeat(3, 1fr); }

/* ページネーション */
.pagination, .nav-links { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 50px; justify-content: center; }
.pagination .page-numbers, .nav-links .page-numbers {
	display: inline-flex; align-items: center; justify-content: center;
	min-width: 42px; height: 42px; padding: 0 12px; border-radius: 999px;
	border: 1px solid var(--hair); text-decoration: none; font-size: 13px;
	transition: background 0.3s, color 0.3s, border-color 0.3s;
}
.pagination .page-numbers:hover, .nav-links .page-numbers:hover { background: var(--ink); color: var(--paper); border-color: var(--ink); }
.pagination .page-numbers.current, .nav-links .page-numbers.current { background: var(--aka); color: #fff; border-color: var(--aka); }
.screen-reader-text + .nav-links { margin-top: 0; }

/* =====================================================================
   記事ページ
   ===================================================================== */
.wc-crumbs { display: flex; flex-wrap: wrap; gap: 10px; font-size: 12px; color: var(--ink-faint); margin-bottom: 20px; letter-spacing: 0.08em; }
.wc-crumbs a { text-decoration: none; }
.wc-crumbs a:hover { color: var(--aka); }

.wc-article__head { margin-bottom: 36px; }
.wc-article__title { font-size: 38px; line-height: 1.55; letter-spacing: 0.05em; margin: 16px 0 18px; }
.wc-article__meta { display: flex; gap: 18px; flex-wrap: wrap; font-size: 12.5px; color: var(--ink-faint); letter-spacing: 0.08em; }
.wc-article__upd { position: relative; padding-left: 19px; }
.wc-article__upd::before { content: ""; position: absolute; left: 0; top: 50%; width: 1px; height: 11px; margin-top: -5.5px; background: var(--hair); }

/* 多言語補足欄（将来の翻訳リンク用の余白） */
.wc-langnote {
	margin-top: 26px; padding: 14px 20px;
	background: var(--paper-2); border-left: 2px solid var(--aka-soft); border-radius: 0 8px 8px 0;
	font-size: 12.5px; color: var(--ink-mid);
}

.wc-article__eyecatch { margin: 0 0 44px; border-radius: 18px; overflow: hidden; }
.wc-article__eyecatch img { width: 100%; }
.wc-article__eyecatch figcaption { font-size: 12px; color: var(--ink-faint); padding: 12px 4px 0; text-align: center; }

.wc-article__foot { margin-top: 48px; padding-top: 28px; border-top: 1px solid var(--hair); display: flex; flex-direction: column; gap: 14px; }
.wc-taxrow { display: flex; gap: 16px; align-items: baseline; flex-wrap: wrap; }
.wc-taxrow__label { font-size: 11px; letter-spacing: 0.2em; color: var(--ink-faint); flex: none; }
.wc-taxrow__items { display: flex; gap: 9px; flex-wrap: wrap; }
.wc-taxrow__items a {
	font-size: 12.5px; text-decoration: none; color: var(--ink-mid);
	border: 1px solid var(--hair); border-radius: 999px; padding: 5px 15px;
	transition: background 0.3s, color 0.3s, border-color 0.3s;
}
.wc-taxrow__items a:hover { background: var(--ink); color: var(--paper); border-color: var(--ink); }

.wc-related { margin-top: 72px; }
.wc-related__title { font-size: 22px; letter-spacing: 0.08em; margin-bottom: 26px; padding-bottom: 14px; border-bottom: 1px solid var(--hair); }

.wc-adjacent { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; margin-top: 56px; }
.wc-adjacent__item a { display: flex; flex-direction: column; gap: 8px; padding: 22px 24px; border: 1px solid var(--hair); border-radius: 14px; text-decoration: none; transition: background 0.3s, border-color 0.3s; height: 100%; }
.wc-adjacent__item a:hover { background: var(--white); border-color: var(--ink-faint); }
.wc-adjacent__item--r { text-align: right; }
.wc-adjacent__lbl { font-size: 11px; letter-spacing: 0.18em; color: var(--ink-faint); }
.wc-adjacent__ttl { font-family: var(--serif); font-size: 15px; line-height: 1.6; }

.wc-backhome { margin-top: 44px; text-align: center; }
.wc-pagelinks { margin-top: 30px; font-size: 13px; display: flex; gap: 8px; align-items: center; }
.wc-pagelinks a { text-decoration: none; border: 1px solid var(--hair); border-radius: 6px; padding: 4px 10px; }

/* =====================================================================
   本文（旧エディター出力）— ここが最重要
   ===================================================================== */
.wc-content {
	font-size: 16.5px;
	line-height: 2.05;
	color: var(--ink);
	word-wrap: break-word;
	overflow-wrap: break-word;
}
.wc-content > * + * { margin-top: 1.6em; }

/* 見出し */
.wc-content h1, .wc-content h2, .wc-content h3, .wc-content h4, .wc-content h5, .wc-content h6 {
	line-height: 1.55; letter-spacing: 0.04em;
}
.wc-content h2 {
	font-size: 27px; margin-top: 2.6em; margin-bottom: 0.9em;
	padding-bottom: 0.5em; border-bottom: 1px solid var(--hair);
}
.wc-content h2::before { content: ""; display: inline-block; width: 8px; height: 8px; border-radius: 50%; background: var(--aka); margin-right: 14px; vertical-align: middle; }
.wc-content h3 { font-size: 21px; margin-top: 2.2em; margin-bottom: 0.7em; padding-left: 14px; border-left: 3px solid var(--aka-soft); }
.wc-content h4 { font-size: 18px; margin-top: 2em; margin-bottom: 0.6em; color: var(--ink-mid); }
.wc-content h5, .wc-content h6 { font-size: 16px; margin-top: 1.8em; }
.wc-content h2:first-child, .wc-content h3:first-child { margin-top: 0; }

/* 段落・リンク */
.wc-content p { margin: 0; }
.wc-content a { color: var(--aka); text-underline-offset: 3px; }
.wc-content a:hover { text-decoration: none; }

/* リスト */
.wc-content ul, .wc-content ol { padding-left: 1.6em; margin-left: 0; }
.wc-content ul { list-style: disc; }
.wc-content ol { list-style: decimal; }
.wc-content li { margin: 0.5em 0; }
.wc-content li > ul, .wc-content li > ol { margin-top: 0.5em; }
.wc-content ul li::marker { color: var(--aka-soft); }

/* 引用 */
.wc-content blockquote {
	margin: 2em 0; padding: 22px 28px;
	background: var(--paper-2); border-left: 3px solid var(--aka-soft); border-radius: 0 10px 10px 0;
	font-family: var(--serif); font-size: 16px; color: var(--ink-mid);
}
.wc-content blockquote p + p { margin-top: 1em; }
.wc-content blockquote cite { display: block; margin-top: 12px; font-size: 12.5px; font-style: normal; color: var(--ink-faint); }

/* 画像（旧エディターの「メディアを追加」で入る形） */
.wc-content img { max-width: 100%; height: auto; border-radius: 10px; }
.wc-content .alignnone { margin: 1.8em 0; }
.wc-content .aligncenter, .wc-content img.aligncenter { display: block; margin-left: auto; margin-right: auto; }
.wc-content .alignleft { float: left; margin: 0.4em 1.8em 1.2em 0; max-width: 50%; }
.wc-content .alignright { float: right; margin: 0.4em 0 1.2em 1.8em; max-width: 50%; }
.wc-content .wp-caption { max-width: 100%; margin-bottom: 1.8em; }
.wc-content .wp-caption img { margin-bottom: 0; }
.wc-content .wp-caption-text, .wc-content figcaption {
	font-size: 12.5px; color: var(--ink-faint); text-align: center;
	margin-top: 10px; line-height: 1.7;
}
/* 回り込み解除 */
.wc-content::after { content: ""; display: table; clear: both; }
.wc-content h2, .wc-content h3 { clear: both; }

/* ギャラリー（旧エディターの [gallery]） */
.wc-content .gallery { display: grid; gap: 12px; margin: 2em 0; }
.wc-content .gallery-columns-2 { grid-template-columns: repeat(2, 1fr); }
.wc-content .gallery-columns-3 { grid-template-columns: repeat(3, 1fr); }
.wc-content .gallery-columns-4 { grid-template-columns: repeat(4, 1fr); }
.wc-content .gallery-item { margin: 0 !important; width: auto !important; }
.wc-content .gallery img { width: 100%; border: 0 !important; }

/* 動画埋め込み（YouTube等）— 幅に合わせて崩れないようにする */
.wc-embed {
	position: relative;
	width: 100%;
	aspect-ratio: 16 / 9;
	margin: 2em 0;
	border-radius: 12px;
	overflow: hidden;
	background: #000;
}
.wc-embed iframe,
.wc-embed object,
.wc-embed embed {
	position: absolute; inset: 0;
	width: 100% !important; height: 100% !important;
	border: 0;
}
/* aspect-ratio 非対応ブラウザ向けの保険 */
@supports not (aspect-ratio: 16 / 9) {
	.wc-embed { height: 0; padding-bottom: 56.25%; }
}
/* WordPress標準のラッパーにも同じ挙動を */
.wc-content .wp-video, .wc-content video { max-width: 100% !important; }
.wc-content iframe { max-width: 100%; }

/* 表 */
.wc-content table { width: 100%; border-collapse: collapse; margin: 2em 0; font-size: 14.5px; }
.wc-content th, .wc-content td { border: 1px solid var(--hair); padding: 12px 16px; text-align: left; }
.wc-content th { background: var(--paper-2); font-weight: 600; }

/* コード・整形済み */
.wc-content pre {
	background: var(--night); color: var(--night-ink); padding: 20px 24px;
	border-radius: 10px; overflow-x: auto; font-size: 13.5px; line-height: 1.8;
}
.wc-content code { background: var(--paper-2); padding: 2px 7px; border-radius: 5px; font-size: 0.92em; }
.wc-content pre code { background: none; padding: 0; }

/* 区切り線 */
.wc-content hr { border: 0; height: 1px; background: var(--hair); margin: 3em 0; }

/* 続きを読む */
.wc-more { margin-top: 2em; }

/* =====================================================================
   サイドバー・ウィジェット
   ===================================================================== */
.wc-side { display: flex; flex-direction: column; gap: 34px; }
.wc-widget { padding-bottom: 4px; }
.wc-widget__title { font-size: 12px; letter-spacing: 0.24em; color: var(--ink-faint); margin-bottom: 16px; padding-bottom: 10px; border-bottom: 1px solid var(--hair); font-family: var(--sans); font-weight: 600; }
.wc-widget ul, .wc-widget__list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.wc-widget a { font-size: 13.5px; text-decoration: none; color: var(--ink-mid); line-height: 1.7; display: inline-block; }
.wc-widget a:hover { color: var(--aka); }
.wc-widget .wc-search { padding: 5px 5px 5px 16px; }
.wc-widget .wc-search__field { font-size: 12.5px; }
.wc-widget .wc-search__btn { padding: 9px 15px; font-size: 10.5px; }
.wc-side__hint { font-size: 11px; color: var(--ink-faint); line-height: 1.8; padding-top: 8px; border-top: 1px dashed var(--hair); }

/* =====================================================================
   404
   ===================================================================== */
.wc-404 { text-align: center; padding: 120px 0 140px; max-width: 720px; }
.wc-404__no { font-family: var(--serif); font-style: italic; font-size: 80px; color: var(--aka); line-height: 1; }
.wc-404__title { font-size: 30px; letter-spacing: 0.08em; margin: 18px 0 16px; }
.wc-404__lead { color: var(--ink-mid); font-size: 14px; margin-bottom: 34px; }
.wc-404__form { max-width: 520px; margin: 0 auto 32px; }
.wc-404 .wc-cattabs { justify-content: center; }
.wc-404__back { margin-top: 36px; }

/* =====================================================================
   コメント（開放した場合の最低限）
   ===================================================================== */
.comments-area { margin-top: 72px; padding-top: 32px; border-top: 1px solid var(--hair); }
.comments-area h2, .comments-area h3 { font-size: 20px; margin-bottom: 20px; }
.comment-list { list-style: none; margin: 0 0 32px; padding: 0; }
.comment-list li { padding: 20px 0; border-bottom: 1px solid var(--hair-soft); }
.comment-form label { display: block; font-size: 12.5px; margin-bottom: 6px; color: var(--ink-mid); }
.comment-form input[type="text"], .comment-form input[type="email"], .comment-form input[type="url"], .comment-form textarea {
	width: 100%; border: 1px solid var(--hair); border-radius: 8px; padding: 12px 14px;
	font-family: inherit; font-size: 14px; background: var(--white);
}
.comment-form .submit {
	border: 0; background: var(--aka); color: #fff; cursor: pointer;
	border-radius: 999px; padding: 13px 30px; font-size: 12.5px; letter-spacing: 0.16em; font-family: inherit;
}

/* =====================================================================
   フッター
   ===================================================================== */
.wc-ft { background: var(--night); color: var(--night-ink); padding: 72px 0 0; }
.wc-ft__in { max-width: var(--shell); margin: 0 auto; padding: 0 var(--pad) 56px; display: grid; grid-template-columns: 1.3fr 1fr 1fr 1fr; gap: 42px; }
.wc-ft__brand { display: flex; flex-direction: column; gap: 16px; max-width: 300px; }
.wc-ft__lead { font-size: 12.5px; line-height: 2.05; color: var(--night-ink-soft); }
.wc-ft__h { font-size: 10.5px; letter-spacing: 0.32em; color: var(--night-ink-soft); margin: 6px 0 16px; font-family: var(--sans); font-weight: 600; text-transform: uppercase; }
.wc-ft__col ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 11px; }
.wc-ft__col a { font-size: 13px; letter-spacing: 0.06em; text-decoration: none; opacity: 0.85; }
.wc-ft__col a:hover { opacity: 1; color: var(--aka-soft); }
.wc-ft__soon { font-size: 13px; color: var(--night-ink-soft); opacity: 0.55; }
.wc-ft__widgets { margin-top: 8px; }
.wc-fwidget { margin-bottom: 20px; font-size: 12.5px; color: var(--night-ink-soft); }
.wc-fwidget ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 9px; }
.wc-fwidget a { color: var(--night-ink); text-decoration: none; opacity: 0.85; }
.wc-fwidget a:hover { opacity: 1; color: var(--aka-soft); }
.wc-fwidget__title { font-size: 10.5px; letter-spacing: 0.3em; color: var(--night-ink-soft); margin-bottom: 12px; }
.wc-ft__bar {
	max-width: var(--shell); margin: 0 auto; padding: 22px var(--pad);
	border-top: 1px solid var(--night-hair);
	display: flex; justify-content: space-between; gap: 16px; flex-wrap: wrap;
	font-size: 11px; letter-spacing: 0.14em; color: var(--night-ink-soft);
}
.wc-ft__motto { opacity: 0.8; }

/* =====================================================================
   レスポンシブ（構造の破綻を防ぐ最低限。細部の作り込みは次段階）
   ===================================================================== */
@media (max-width: 1200px) {
	:root { --pad: 40px; }
	.wc-hd__side .wc-search { display: none; }
	.wc-circle__grid { grid-template-columns: 1fr; gap: 48px; }
	.wc-ring { width: min(88vw, 560px); height: min(88vw, 560px); }
	.wc-idx__row { grid-template-columns: 60px 240px 1fr 56px; }
	.wc-idx__thumb { display: none; }
}

@media (max-width: 980px) {
	.wc-single, .wc-list { grid-template-columns: minmax(0, 1fr); gap: 56px; }
	.wc-single .wc-side, .wc-list .wc-side { grid-column: 1; grid-row: auto; position: static; }
	.wc-list .wc-cards { grid-template-columns: repeat(2, 1fr); }
	.wc-ft__in { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 820px) {
	:root { --pad: 24px; }
	.wc-nav, .wc-hd__side { display: none; }
	.wc-burger { display: block; }
	.wc-hd__in { height: 72px; padding: 0 18px; gap: 12px; }
	.wc-hd__brand { min-width: 0; max-width: calc(100% - 54px); }
	.wc-brand { min-width: 0; gap: 10px; }
	.wc-brand__txt { min-width: 0; }
	.wc-brand__txt strong { font-size: 15px; letter-spacing: 0.14em; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
	.wc-brand__txt small { font-size: 8px; letter-spacing: 0.16em; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
	.wc-hero { min-height: auto; }
	.wc-hero__shell { padding-top: 108px; padding-bottom: 56px; }
	.wc-hero__panel { padding: 30px 22px; }
	.wc-hero__title { font-size: clamp(27px, 8.5vw, 34px); line-height: 1.38; }
	.wc-hero__lead { font-size: 13.5px; line-height: 2; margin-bottom: 22px; }
	.wc-hero__sub { margin-top: 20px; padding-top: 18px; }
	.wc-hero__ch { display: none; }
	.wc-idx { padding: 72px 0; }
	.wc-idx__row { grid-template-columns: 40px 1fr 44px; gap: 16px; padding: 26px 0; }
	.wc-idx__desc { display: none; }
	.wc-idx__word strong { font-size: 24px; }
	.wc-idx__title, .wc-circle__title, .wc-close__title, .wc-voice__title { font-size: 26px; }
	.wc-circle { padding: 72px 0 80px; }
	.wc-circle__grid { gap: 36px; }
	.wc-circle__lead { margin-bottom: 26px; }
	.wc-defs { padding: 4px 16px; border-radius: 12px; }
	.wc-defs__row { grid-template-columns: 72px 1fr; gap: 14px; align-items: start; padding: 18px 0; }
	.wc-defs__row dt { font-size: 34px; flex-direction: column; gap: 5px; }
	.wc-defs__row dt small { font-size: 8px; letter-spacing: .14em; }
	.wc-defs__row dd { font-size: 13px; line-height: 1.9; }
	.wc-ring { width: min(92vw, 420px); height: min(92vw, 420px); margin-bottom: 62px; }
	.wc-ring__place { width: 92px; height: 92px; }
	.wc-ring__center-ja { font-size: 22px; }
	.wc-ring__verb { font-size: 10px; letter-spacing: .12em; }
	.wc-ring__name { font-size: 9px; letter-spacing: .14em; }
	.wc-ring__native { font-size: 8.5px; }
	.wc-circle__foot { margin-top: 22px; line-height: 1.8; }
	.wc-country-strip { grid-template-columns: 1fr; gap: 14px; margin-top: 34px; }
	.wc-country-card { min-height: 260px; border-radius: 15px; }
	.wc-country-card__body { padding: 22px 20px 20px; }
	.wc-country-card__body strong { font-size: 23px; }
	.wc-country-card__body span { font-size: 12.5px; }
	.wc-cards, .wc-list .wc-cards, .wc-cards--3 { grid-template-columns: 1fr; }
	.wc-voice__panel { padding: 34px 26px; }
	.wc-latest { padding: 72px 0; }
	.wc-latest:has(.wc-empty) { padding-bottom: 42px; }
	.wc-empty { padding: 16px 0 4px; font-size: 13px; line-height: 1.9; }
	.wc-close { padding: 72px 0; }
	.wc-close__layout { grid-template-columns: 1fr; gap: 26px; }
	.wc-close__media, .wc-close__media img { min-height: 300px; }
	.wc-close__media { border-radius: 16px; }
	.wc-close__panel { padding: 28px 22px 26px; border-radius: 16px; }
	.wc-close__panel .wc-chead { margin-bottom: 20px; }
	.wc-close__actions { flex-direction: column; align-items: stretch; }
	.wc-close__actions .wc-pill { justify-content: center; }
	.wc-adjacent { grid-template-columns: 1fr; }
	.wc-adjacent__item--r { text-align: left; }
	.wc-article__title { font-size: 27px; }
	.wc-content { font-size: 16px; }
	.wc-content h2 { font-size: 22px; }
	.wc-content h3 { font-size: 18.5px; }
	.wc-content .alignleft, .wc-content .alignright { float: none; margin: 1.8em auto; max-width: 100%; }
	.wc-ft__in { grid-template-columns: 1fr; }
	.wc-defs__row { grid-template-columns: 80px 1fr; }
	.wc-voice__flow { display: none; }
}
