/**
 * SOA Theme — 広告・運用マーケティングページ専用 CSS
 * v1.9.201
 *
 * コンセプト：「広告の科学」
 * デザイン：データダッシュボード × 茶室の余白
 * トンマナ：既存サイト統一（明朝体・朱・金茶・ネイビー・クリーム）
 */

/* ===========================================
 * カラー変数（既存サイトと統一）
 * =========================================== */
.ads-page {
	--ads-bg: #fdfaf3;
	--ads-bg-soft: #f5efe2;
	--ads-bg-dark: #06111c;
	--ads-text: #1a1d22;
	--ads-text-2: #4a4f55;
	--ads-text-3: #8c8f93;
	--ads-text-light: #c7c9cc;
	--ads-gold: #a89572;
	--ads-gold-deep: #8a7758;
	--ads-vermilion: #c25b3f;
	--ads-vermilion-deep: #a14a32;
	--ads-line: rgba(168, 149, 114, 0.25);
	--ads-line-strong: rgba(168, 149, 114, 0.5);

	background: var(--ads-bg);
	color: var(--ads-text);
	font-family: 'Shippori Mincho', 'Noto Serif JP', serif;
	letter-spacing: 0.02em;
	overflow-x: hidden;
}

.ads-container {
	max-width: 1140px;
	margin: 0 auto;
	padding: 0 32px;
}

@media (max-width: 768px) {
	.ads-container { padding: 0 20px; }
}

/* ===========================================
 * セクション共通
 * =========================================== */
.ads-section {
	padding: 140px 0;
	position: relative;
}

@media (max-width: 768px) {
	.ads-section { padding: 80px 0; }
}

.ads-section__eyebrow {
	font-family: 'Inter', -apple-system, sans-serif;
	font-size: 11px;
	letter-spacing: 0.3em;
	color: var(--ads-vermilion);
	font-weight: 500;
	text-transform: uppercase;
	margin: 0 0 24px;
}

.ads-section__title {
	font-family: 'Shippori Mincho', 'Noto Serif JP', serif;
	font-size: clamp(28px, 4vw, 44px);
	font-weight: 400;
	line-height: 1.5;
	color: var(--ads-text);
	margin: 0 0 24px;
	letter-spacing: 0.02em;
}

.ads-section__lead {
	font-size: 16px;
	line-height: 2;
	color: var(--ads-text-2);
	max-width: 720px;
	margin: 0 0 80px;
}

/* ===========================================
 * 1. HERO
 * =========================================== */
.ads-hero {
	position: relative;
	min-height: 90vh;
	display: flex;
	align-items: center;
	background: var(--ads-bg-dark);
	color: #fff;
	padding: 120px 0 100px;
	overflow: hidden;
}

.ads-hero__grid-bg {
	position: absolute;
	inset: 0;
	background-image:
		linear-gradient(rgba(168, 149, 114, 0.06) 1px, transparent 1px),
		linear-gradient(90deg, rgba(168, 149, 114, 0.06) 1px, transparent 1px);
	background-size: 80px 80px;
	pointer-events: none;
	mask-image: radial-gradient(ellipse at center, black 0%, transparent 80%);
	-webkit-mask-image: radial-gradient(ellipse at center, black 0%, transparent 80%);
}

.ads-hero .ads-container {
	position: relative;
	z-index: 2;
}

.ads-hero__eyebrow {
	font-family: 'Inter', -apple-system, sans-serif;
	font-size: 11px;
	letter-spacing: 0.35em;
	color: var(--ads-gold);
	font-weight: 500;
	text-transform: uppercase;
	margin: 0 0 48px;
	opacity: 0.9;
}

.ads-hero__title {
	font-family: 'Shippori Mincho', 'Noto Serif JP', serif;
	font-size: clamp(36px, 6vw, 68px);
	font-weight: 400;
	line-height: 1.45;
	margin: 0 0 48px;
	letter-spacing: 0.03em;
}

.ads-hero__title-line {
	display: block;
	color: #fff;
}

.ads-hero__title-line--accent {
	color: var(--ads-gold);
}

.ads-hero__lead {
	font-size: 18px;
	line-height: 2;
	color: var(--ads-text-light);
	max-width: 640px;
	margin: 0 0 80px;
	font-weight: 300;
}

.ads-hero__formula {
	display: inline-block;
	padding: 24px 40px;
	border: 1px solid rgba(168, 149, 114, 0.4);
	background: rgba(168, 149, 114, 0.04);
	position: relative;
}

.ads-hero__formula::before,
.ads-hero__formula::after {
	content: '';
	position: absolute;
	width: 12px;
	height: 12px;
	border: 1px solid var(--ads-gold);
}
.ads-hero__formula::before { top: -1px; left: -1px; border-right: 0; border-bottom: 0; }
.ads-hero__formula::after { bottom: -1px; right: -1px; border-left: 0; border-top: 0; }

.ads-hero__formula-text {
	font-family: 'Inter', -apple-system, monospace;
	font-size: clamp(14px, 1.8vw, 20px);
	color: var(--ads-gold);
	letter-spacing: 0.15em;
	font-weight: 400;
}

/* ===========================================
 * 2. PHILOSOPHY — 3 つの法則
 * =========================================== */
.ads-philosophy {
	background: var(--ads-bg);
}

.ads-laws {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 40px;
	margin-top: 60px;
}

@media (max-width: 900px) {
	.ads-laws { grid-template-columns: 1fr; gap: 32px; }
}

.ads-law {
	padding: 48px 36px;
	background: #fff;
	border: 1px solid var(--ads-line);
	position: relative;
	transition: border-color 0.3s ease, transform 0.3s ease;
}

.ads-law:hover {
	border-color: var(--ads-gold);
	transform: translateY(-4px);
}

.ads-law__no {
	font-family: 'Inter', -apple-system, sans-serif;
	font-size: 12px;
	color: var(--ads-vermilion);
	letter-spacing: 0.2em;
	font-weight: 500;
	margin-bottom: 28px;
	padding-bottom: 16px;
	border-bottom: 1px solid var(--ads-line);
}

.ads-law__title {
	font-family: 'Shippori Mincho', 'Noto Serif JP', serif;
	font-size: 20px;
	font-weight: 400;
	color: var(--ads-text);
	margin: 0 0 20px;
	line-height: 1.6;
	letter-spacing: 0.04em;
}

.ads-law__desc {
	font-size: 14px;
	line-height: 1.95;
	color: var(--ads-text-2);
	margin: 0;
}

/* ===========================================
 * 3. CALCULATOR — 経営者向け診断ツール
 * =========================================== */
.ads-calculator {
	background: var(--ads-bg-soft);
	position: relative;
}

.ads-calculator::before {
	content: '';
	position: absolute;
	top: 0;
	left: 50%;
	transform: translateX(-50%);
	width: 60px;
	height: 1px;
	background: var(--ads-gold);
}

.ads-calc {
	background: #fff;
	padding: 64px 56px;
	border: 1px solid var(--ads-line);
	margin-top: 40px;
	position: relative;
}

.ads-calc::before {
	content: 'EXECUTIVE TOOL';
	position: absolute;
	top: -10px;
	left: 40px;
	background: #fff;
	padding: 0 12px;
	font-family: 'Inter', -apple-system, sans-serif;
	font-size: 10px;
	letter-spacing: 0.3em;
	color: var(--ads-vermilion);
}

@media (max-width: 768px) {
	.ads-calc { padding: 40px 24px; }
}

.ads-calc__inputs {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 32px 48px;
}

@media (max-width: 768px) {
	.ads-calc__inputs { grid-template-columns: 1fr; gap: 24px; }
}

.ads-calc__field {
	display: flex;
	flex-direction: column;
}

.ads-calc__label {
	font-size: 13px;
	color: var(--ads-text-2);
	letter-spacing: 0.05em;
	margin-bottom: 12px;
	font-weight: 500;
}

.ads-calc__input-wrap {
	position: relative;
	display: flex;
	align-items: baseline;
	border-bottom: 1px solid var(--ads-line-strong);
	padding-bottom: 8px;
	transition: border-color 0.2s ease;
}

.ads-calc__input-wrap:focus-within {
	border-bottom-color: var(--ads-gold);
}

.ads-calc__input {
	flex: 1;
	border: 0;
	background: transparent;
	font-family: 'Inter', -apple-system, monospace;
	font-size: 24px;
	color: var(--ads-text);
	padding: 8px 0;
	outline: 0;
	text-align: right;
	letter-spacing: 0.02em;
	font-weight: 500;
	-moz-appearance: textfield;
	appearance: textfield;
}

.ads-calc__input::-webkit-outer-spin-button,
.ads-calc__input::-webkit-inner-spin-button {
	-webkit-appearance: none;
	margin: 0;
}

.ads-calc__unit {
	font-size: 14px;
	color: var(--ads-text-3);
	margin-left: 12px;
	font-family: 'Shippori Mincho', 'Noto Serif JP', serif;
}

.ads-calc__divider {
	height: 1px;
	background: var(--ads-line);
	margin: 48px 0;
	position: relative;
}

.ads-calc__divider::before {
	content: '∇';
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	background: #fff;
	padding: 0 16px;
	color: var(--ads-gold);
	font-size: 14px;
}

.ads-calc__results {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 32px;
}

@media (max-width: 900px) {
	.ads-calc__results { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 480px) {
	.ads-calc__results { grid-template-columns: 1fr; gap: 24px; }
}

.ads-calc__result {
	text-align: center;
	padding: 16px 0;
}

.ads-calc__result-label {
	font-size: 11px;
	color: var(--ads-text-3);
	letter-spacing: 0.15em;
	margin: 0 0 12px;
	text-transform: uppercase;
	font-family: 'Inter', -apple-system, sans-serif;
	font-weight: 500;
}

.ads-calc__result-value {
	font-family: 'Shippori Mincho', 'Noto Serif JP', serif;
	font-size: clamp(26px, 3vw, 36px);
	color: var(--ads-vermilion);
	margin: 0 0 8px;
	letter-spacing: 0.02em;
	font-weight: 400;
}

.ads-calc__result-note {
	font-size: 11px;
	color: var(--ads-text-3);
	margin: 0;
}

.ads-calc__verdict {
	margin-top: 48px;
	padding: 32px 40px;
	background: var(--ads-bg-soft);
	border-left: 3px solid var(--ads-vermilion);
}

.ads-calc__verdict.is-danger {
	border-left-color: var(--ads-vermilion-deep);
	background: rgba(193, 91, 63, 0.06);
}

.ads-calc__verdict.is-warning {
	border-left-color: var(--ads-gold);
	background: rgba(168, 149, 114, 0.08);
}

.ads-calc__verdict-label {
	font-family: 'Inter', -apple-system, sans-serif;
	font-size: 10px;
	letter-spacing: 0.3em;
	color: var(--ads-vermilion);
	margin: 0 0 12px;
	font-weight: 500;
	text-transform: uppercase;
}

.ads-calc__verdict-text {
	font-family: 'Shippori Mincho', 'Noto Serif JP', serif;
	font-size: 16px;
	line-height: 1.9;
	color: var(--ads-text);
	margin: 0;
	letter-spacing: 0.02em;
}

/* ===========================================
 * 4. CASE STUDY
 * =========================================== */
.ads-cases {
	background: var(--ads-bg);
}

.ads-case-list {
	display: flex;
	flex-direction: column;
	gap: 40px;
}

.ads-case {
	padding: 48px 56px;
	background: #fff;
	border: 1px solid var(--ads-line);
	transition: border-color 0.3s ease;
}

@media (max-width: 768px) {
	.ads-case { padding: 32px 24px; }
}

.ads-case:hover {
	border-color: var(--ads-gold);
}

.ads-case__industry {
	font-family: 'Inter', -apple-system, sans-serif;
	font-size: 12px;
	letter-spacing: 0.2em;
	color: var(--ads-vermilion);
	margin: 0 0 32px;
	font-weight: 500;
	text-transform: uppercase;
	padding-bottom: 20px;
	border-bottom: 1px solid var(--ads-line);
}

.ads-case__compare {
	display: grid;
	grid-template-columns: 1fr auto 1fr;
	gap: 32px;
	align-items: center;
	margin-bottom: 32px;
}

@media (max-width: 768px) {
	.ads-case__compare {
		grid-template-columns: 1fr;
		gap: 16px;
	}
	.ads-case__arrow { display: none; }
}

.ads-case__col {
	padding: 28px 24px;
	background: var(--ads-bg-soft);
	border-left: 2px solid var(--ads-line-strong);
}

.ads-case__col--after {
	border-left-color: var(--ads-vermilion);
	background: rgba(193, 91, 63, 0.04);
}

.ads-case__col-label {
	font-family: 'Inter', -apple-system, sans-serif;
	font-size: 10px;
	letter-spacing: 0.3em;
	color: var(--ads-text-3);
	margin: 0 0 12px;
	font-weight: 500;
}

.ads-case__col--after .ads-case__col-label {
	color: var(--ads-vermilion);
}

.ads-case__col-text {
	font-size: 15px;
	line-height: 1.8;
	color: var(--ads-text);
	margin: 0;
}

.ads-case__arrow {
	font-size: 28px;
	color: var(--ads-gold);
	font-family: 'Inter', -apple-system, sans-serif;
	font-weight: 200;
}

.ads-case__impact {
	font-family: 'Shippori Mincho', 'Noto Serif JP', serif;
	font-size: 18px;
	color: var(--ads-vermilion-deep);
	margin: 0;
	padding-top: 24px;
	border-top: 1px solid var(--ads-line);
	letter-spacing: 0.02em;
	line-height: 1.7;
}

/* ===========================================
 * 5. SCOPE
 * =========================================== */
.ads-scope {
	background: var(--ads-bg-soft);
}

.ads-scope__grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 40px;
	margin-top: 40px;
}

@media (max-width: 768px) {
	.ads-scope__grid { grid-template-columns: 1fr; gap: 32px; }
}

.ads-scope__item {
	padding: 40px 36px;
	background: #fff;
	border-top: 2px solid var(--ads-gold);
}

.ads-scope__no {
	font-family: 'Inter', -apple-system, sans-serif;
	font-size: 11px;
	color: var(--ads-vermilion);
	letter-spacing: 0.2em;
	margin-bottom: 20px;
	font-weight: 500;
}

.ads-scope__title {
	font-family: 'Shippori Mincho', 'Noto Serif JP', serif;
	font-size: 22px;
	font-weight: 400;
	color: var(--ads-text);
	margin: 0 0 16px;
	letter-spacing: 0.03em;
}

.ads-scope__desc {
	font-size: 14px;
	line-height: 1.95;
	color: var(--ads-text-2);
	margin: 0;
}

/* ===========================================
 * 6. PROCESS — タイムライン
 * =========================================== */
.ads-process {
	background: var(--ads-bg-dark);
	color: #fff;
}

.ads-process .ads-section__eyebrow { color: var(--ads-gold); }
.ads-process .ads-section__title { color: #fff; }

.ads-process__line {
	position: relative;
	margin-top: 60px;
	padding-left: 40px;
}

.ads-process__line::before {
	content: '';
	position: absolute;
	top: 16px;
	bottom: 16px;
	left: 8px;
	width: 1px;
	background: rgba(168, 149, 114, 0.3);
}

.ads-process__step {
	position: relative;
	padding-bottom: 56px;
}

.ads-process__step:last-child { padding-bottom: 0; }

.ads-process__dot {
	position: absolute;
	left: -40px;
	top: 8px;
	width: 17px;
	height: 17px;
	border-radius: 50%;
	background: var(--ads-bg-dark);
	border: 2px solid var(--ads-gold);
}

.ads-process__phase {
	font-family: 'Inter', -apple-system, sans-serif;
	font-size: 10px;
	letter-spacing: 0.3em;
	color: var(--ads-vermilion);
	margin: 0 0 8px;
	font-weight: 500;
	text-transform: uppercase;
}

.ads-process__title {
	font-family: 'Shippori Mincho', 'Noto Serif JP', serif;
	font-size: 22px;
	font-weight: 400;
	color: #fff;
	margin: 0 0 12px;
	letter-spacing: 0.04em;
}

.ads-process__desc {
	font-size: 14px;
	line-height: 1.95;
	color: var(--ads-text-light);
	margin: 0;
	max-width: 540px;
}

/* ===========================================
 * 7. CTA
 * =========================================== */
.ads-cta {
	background: var(--ads-bg);
	text-align: center;
	padding: 160px 0;
}

@media (max-width: 768px) {
	.ads-cta { padding: 100px 0; }
}

.ads-cta__eyebrow {
	font-family: 'Inter', -apple-system, sans-serif;
	font-size: 11px;
	letter-spacing: 0.35em;
	color: var(--ads-vermilion);
	font-weight: 500;
	text-transform: uppercase;
	margin: 0 0 32px;
}

.ads-cta__title {
	font-family: 'Shippori Mincho', 'Noto Serif JP', serif;
	font-size: clamp(28px, 4.5vw, 48px);
	font-weight: 400;
	line-height: 1.5;
	color: var(--ads-text);
	margin: 0 0 32px;
	letter-spacing: 0.03em;
}

.ads-cta__lead {
	font-size: 16px;
	line-height: 2;
	color: var(--ads-text-2);
	max-width: 560px;
	margin: 0 auto 56px;
}

.ads-cta__btn {
	display: inline-flex;
	align-items: center;
	gap: 16px;
	padding: 20px 56px;
	background: var(--ads-text);
	color: #fff;
	text-decoration: none;
	font-family: 'Shippori Mincho', 'Noto Serif JP', serif;
	font-size: 16px;
	letter-spacing: 0.15em;
	transition: background 0.25s ease, transform 0.12s ease;
	border: 1px solid var(--ads-text);
}

.ads-cta__btn:hover {
	background: var(--ads-vermilion);
	border-color: var(--ads-vermilion);
}

.ads-cta__btn:active {
	transform: scale(0.98);
}

.ads-cta__btn-arrow {
	font-family: 'Inter', -apple-system, sans-serif;
	font-weight: 200;
	transition: transform 0.25s ease;
}

.ads-cta__btn:hover .ads-cta__btn-arrow {
	transform: translateX(4px);
}


/* ===========================================
 * v1.9.202: 世界レベル化（World-class enhancements）
 * =========================================== */

/* --- スクロール進捗バー（McKinsey 風）--- */
.ads-scroll-progress {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	height: 2px;
	z-index: 9999;
	background: rgba(168, 149, 114, 0.1);
	pointer-events: none;
}
.ads-scroll-progress__bar {
	height: 100%;
	width: 0%;
	background: linear-gradient(90deg, var(--ads-vermilion), var(--ads-gold));
	transition: width 0.1s linear;
	box-shadow: 0 0 8px rgba(194, 91, 63, 0.4);
}

/* --- HERO 数式タイプライター効果 --- */
.ads-hero__formula-text[data-ads-typewriter] {
	display: inline-block;
	min-height: 1.5em;
}
.ads-hero__formula-text[data-ads-typewriter].is-typing::after {
	content: '|';
	color: var(--ads-gold);
	animation: ads-blink 1s infinite;
	margin-left: 4px;
}
@keyframes ads-blink {
	50% { opacity: 0; }
}

/* --- HERO の入場アニメーション --- */
.ads-hero__eyebrow,
.ads-hero__title-line,
.ads-hero__lead,
.ads-hero__formula {
	opacity: 0;
	transform: translateY(24px);
	animation: ads-hero-in 1.2s cubic-bezier(0.22, 1, 0.36, 1) forwards;
}
.ads-hero__eyebrow             { animation-delay: 0.1s; }
.ads-hero__title-line:nth-child(1) { animation-delay: 0.3s; }
.ads-hero__title-line:nth-child(2) { animation-delay: 0.55s; }
.ads-hero__lead                { animation-delay: 0.85s; }
.ads-hero__formula             { animation-delay: 1.15s; }

@keyframes ads-hero-in {
	to { opacity: 1; transform: translateY(0); }
}

/* --- 法則カード 3D Tilt --- */
.ads-law[data-ads-tilt] {
	transform-style: preserve-3d;
	transition: transform 0.4s cubic-bezier(0.22, 1, 0.36, 1), border-color 0.3s ease, box-shadow 0.4s ease;
	will-change: transform;
}
.ads-law[data-ads-tilt]:hover {
	border-color: var(--ads-gold);
	box-shadow: 0 24px 60px -20px rgba(6, 17, 28, 0.25), 0 0 0 1px var(--ads-gold);
}

/* --- 法則 01 視覚化バー --- */
.ads-law__viz {
	margin-top: 32px;
	padding-top: 28px;
	border-top: 1px solid var(--ads-line);
}

.ads-law__viz-row {
	display: flex;
	align-items: center;
	gap: 16px;
	margin-bottom: 14px;
}
.ads-law__viz-row:last-child { margin-bottom: 0; }

.ads-law__viz-label {
	font-family: 'Inter', -apple-system, sans-serif;
	font-size: 11px;
	letter-spacing: 0.1em;
	color: var(--ads-text-2);
	font-weight: 500;
	min-width: 64px;
}

.ads-law__viz-bar {
	flex: 1;
	height: 6px;
	background: var(--ads-bg-soft);
	overflow: hidden;
	position: relative;
}

.ads-law__viz-fill {
	height: 100%;
	width: 0;
	background: var(--ads-vermilion);
	transition: width 1.5s cubic-bezier(0.22, 1, 0.36, 1);
	transform-origin: left center;
}
.ads-law__viz-fill--healthy {
	background: linear-gradient(90deg, var(--ads-gold), var(--ads-vermilion));
}

/* --- 法則 02 タイムライン視覚化 --- */
.ads-law__viz-timeline {
	width: 100%;
}
.ads-law__viz-timeline-track {
	position: relative;
	height: 8px;
	display: flex;
}
.ads-law__viz-timeline-zone {
	flex: 1;
	height: 100%;
}
.ads-law__viz-timeline-zone--safe {
	background: linear-gradient(90deg, rgba(168, 149, 114, 0.15), rgba(168, 149, 114, 0.4));
}
.ads-law__viz-timeline-zone--danger {
	background: linear-gradient(90deg, rgba(194, 91, 63, 0.4), rgba(194, 91, 63, 0.7));
}
.ads-law__viz-timeline-marker {
	position: absolute;
	top: -4px;
	width: 2px;
	height: 16px;
	background: var(--ads-text);
	transform: translateX(-1px);
}
.ads-law__viz-timeline-labels {
	display: flex;
	justify-content: space-between;
	margin-top: 12px;
	font-family: 'Inter', -apple-system, sans-serif;
	font-size: 10px;
	color: var(--ads-text-3);
	letter-spacing: 0.1em;
}
.ads-law__viz-timeline-mid {
	color: var(--ads-text);
	font-weight: 500;
}

/* --- 法則 03 ROI 公式 --- */
.ads-law__viz-formula {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 16px;
	flex-wrap: wrap;
	font-family: 'Shippori Mincho', 'Noto Serif JP', serif;
}
.ads-law__viz-formula-label {
	font-size: 13px;
	color: var(--ads-text-2);
	letter-spacing: 0.04em;
}
.ads-law__viz-formula-eq {
	font-size: 18px;
	color: var(--ads-gold);
}
.ads-law__viz-formula-frac {
	display: inline-flex;
	flex-direction: column;
	align-items: center;
	font-size: 13px;
	color: var(--ads-text);
}
.ads-law__viz-formula-num,
.ads-law__viz-formula-den {
	padding: 2px 8px;
	white-space: nowrap;
}
.ads-law__viz-formula-bar {
	display: block;
	width: 100%;
	height: 1px;
	background: var(--ads-text);
	margin: 4px 0;
}

/* --- CALCULATOR 動的チャート --- */
.ads-calc__chart {
	margin-top: 48px;
	padding: 32px 40px;
	background: var(--ads-bg-soft);
	border: 1px solid var(--ads-line);
}
@media (max-width: 768px) {
	.ads-calc__chart { padding: 24px 20px; }
}

.ads-calc__chart-header {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	padding-bottom: 20px;
	border-bottom: 1px solid var(--ads-line);
	margin-bottom: 24px;
	flex-wrap: wrap;
	gap: 8px;
}

.ads-calc__chart-title {
	font-family: 'Inter', -apple-system, sans-serif;
	font-size: 11px;
	letter-spacing: 0.25em;
	color: var(--ads-text);
	font-weight: 500;
	text-transform: uppercase;
}

.ads-calc__chart-note {
	font-size: 11px;
	color: var(--ads-text-3);
	font-family: 'Inter', -apple-system, sans-serif;
	letter-spacing: 0.1em;
}

.ads-calc__chart-rows {
	display: flex;
	flex-direction: column;
	gap: 20px;
}

.ads-calc__chart-row {
	display: grid;
	grid-template-columns: 80px 1fr 120px;
	align-items: center;
	gap: 16px;
}
@media (max-width: 600px) {
	.ads-calc__chart-row {
		grid-template-columns: 60px 1fr 90px;
		gap: 8px;
	}
}

.ads-calc__chart-label {
	font-family: 'Inter', -apple-system, sans-serif;
	font-size: 11px;
	color: var(--ads-text-2);
	letter-spacing: 0.1em;
	font-weight: 500;
}

.ads-calc__chart-bar {
	height: 8px;
	background: rgba(168, 149, 114, 0.1);
	overflow: hidden;
	position: relative;
}

.ads-calc__chart-fill {
	height: 100%;
	background: var(--ads-text-3);
	transition: width 0.6s cubic-bezier(0.22, 1, 0.36, 1);
}
.ads-calc__chart-fill--ltv  { background: linear-gradient(90deg, var(--ads-gold), var(--ads-vermilion)); }
.ads-calc__chart-fill--cac  { background: var(--ads-vermilion-deep); }

.ads-calc__chart-value {
	font-family: 'Inter', -apple-system, monospace;
	font-size: 13px;
	color: var(--ads-text);
	text-align: right;
	font-weight: 500;
	letter-spacing: 0.02em;
}

/* --- CASE STUDY スクロール reveal --- */
[data-ads-reveal] {
	opacity: 0;
	transform: translateY(40px);
	transition: opacity 1s cubic-bezier(0.22, 1, 0.36, 1), transform 1s cubic-bezier(0.22, 1, 0.36, 1);
}
[data-ads-reveal].is-visible {
	opacity: 1;
	transform: translateY(0);
}

/* --- PROCESS タイムライン点灯 --- */
.ads-process__line[data-ads-timeline] .ads-process__dot {
	transition: background 0.4s ease, border-color 0.4s ease, transform 0.4s ease, box-shadow 0.4s ease;
}
.ads-process__step[data-ads-timeline-step].is-active .ads-process__dot {
	background: var(--ads-gold);
	border-color: var(--ads-vermilion);
	transform: scale(1.15);
	box-shadow: 0 0 20px rgba(168, 149, 114, 0.6);
}
.ads-process__step[data-ads-timeline-step].is-active .ads-process__phase {
	color: var(--ads-gold);
}
.ads-process__step[data-ads-timeline-step] .ads-process__phase {
	transition: color 0.4s ease;
}

/* --- 進行ラインの動的塗りつぶし（PROCESS）--- */
.ads-process__line[data-ads-timeline] {
	position: relative;
}
.ads-process__line[data-ads-timeline]::after {
	content: '';
	position: absolute;
	top: 16px;
	left: 8px;
	width: 1px;
	background: linear-gradient(to bottom, var(--ads-vermilion), var(--ads-gold));
	height: var(--ads-timeline-progress, 0%);
	transition: height 0.3s ease;
	z-index: 1;
}
.ads-process__line[data-ads-timeline] .ads-process__dot {
	position: relative;
	z-index: 2;
}

/* --- マイクロインタラクション：ボタン --- */
.ads-cta__btn {
	position: relative;
	overflow: hidden;
}
.ads-cta__btn::before {
	content: '';
	position: absolute;
	top: 0;
	left: -100%;
	width: 100%;
	height: 100%;
	background: linear-gradient(90deg, transparent, rgba(194, 91, 63, 0.3), transparent);
	transition: left 0.6s ease;
}
.ads-cta__btn:hover::before {
	left: 100%;
}

/* --- スマートフォン最適化 --- */
@media (max-width: 768px) {
	.ads-law__viz { margin-top: 24px; padding-top: 20px; }
	.ads-law__viz-formula { gap: 8px; font-size: 12px; }
}

/* --- アクセシビリティ：動きを減らす設定 --- */
@media (prefers-reduced-motion: reduce) {
	.ads-hero__eyebrow,
	.ads-hero__title-line,
	.ads-hero__lead,
	.ads-hero__formula,
	[data-ads-reveal] {
		opacity: 1 !important;
		transform: none !important;
		animation: none !important;
	}
	.ads-law__viz-fill {
		transition: none !important;
		width: var(--final-width, 0) !important;
	}
}


/* ===========================================
 * v1.9.203: 転換率向上強化（5 戦略実装）
 * =========================================== */

/* --- HERO 内 CTA --- */
.ads-hero__cta-wrap {
	display: flex;
	gap: 16px;
	margin-top: 56px;
	flex-wrap: wrap;
	opacity: 0;
	transform: translateY(24px);
	animation: ads-hero-in 1.2s cubic-bezier(0.22, 1, 0.36, 1) 1.4s forwards;
}

.ads-hero__cta {
	display: inline-flex;
	align-items: center;
	gap: 14px;
	padding: 18px 36px;
	text-decoration: none;
	font-family: 'Shippori Mincho', 'Noto Serif JP', serif;
	font-size: 15px;
	letter-spacing: 0.1em;
	transition: background 0.25s ease, color 0.25s ease, transform 0.12s ease, border-color 0.25s ease;
	border: 1px solid transparent;
}

.ads-hero__cta--primary {
	background: var(--ads-gold);
	color: var(--ads-bg-dark);
	border-color: var(--ads-gold);
}
.ads-hero__cta--primary:hover {
	background: var(--ads-vermilion);
	border-color: var(--ads-vermilion);
	color: #fff;
}

.ads-hero__cta--secondary {
	background: transparent;
	color: #fff;
	border-color: rgba(255, 255, 255, 0.3);
}
.ads-hero__cta--secondary:hover {
	border-color: var(--ads-gold);
	color: var(--ads-gold);
}

.ads-hero__cta:active {
	transform: scale(0.98);
}

.ads-hero__cta-arrow {
	font-family: 'Inter', -apple-system, sans-serif;
	font-weight: 200;
	transition: transform 0.25s ease;
}
.ads-hero__cta:hover .ads-hero__cta-arrow {
	transform: translateY(2px);
}
.ads-hero__cta--secondary:hover .ads-hero__cta-arrow {
	transform: translateX(4px);
}

/* --- PROOF セクション（社会的証明）--- */
.ads-proof {
	background: var(--ads-bg);
	border-top: 1px solid var(--ads-line);
	border-bottom: 1px solid var(--ads-line);
}

.ads-proof__stats {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 48px;
	margin-top: 60px;
	padding-bottom: 80px;
	border-bottom: 1px solid var(--ads-line);
}

@media (max-width: 900px) {
	.ads-proof__stats { grid-template-columns: repeat(2, 1fr); gap: 40px; }
}

@media (max-width: 480px) {
	.ads-proof__stats { grid-template-columns: 1fr; gap: 32px; }
}

.ads-proof__stat {
	text-align: center;
	padding: 16px 0;
	position: relative;
}

.ads-proof__stat-value {
	font-family: 'Shippori Mincho', 'Noto Serif JP', serif;
	font-size: clamp(36px, 5vw, 56px);
	color: var(--ads-vermilion);
	font-weight: 400;
	letter-spacing: 0.02em;
	margin: 0 0 12px;
	line-height: 1;
}

.ads-proof__stat-label {
	font-family: 'Inter', -apple-system, sans-serif;
	font-size: 11px;
	color: var(--ads-text-2);
	letter-spacing: 0.2em;
	text-transform: uppercase;
	margin: 0;
	font-weight: 500;
}

/* --- PROOF クオート --- */
.ads-proof__quote {
	max-width: 720px;
	margin: 80px auto 0;
	text-align: center;
	position: relative;
}

.ads-proof__quote-mark {
	font-family: 'Shippori Mincho', 'Noto Serif JP', serif;
	font-size: 96px;
	color: var(--ads-gold);
	margin: 0;
	line-height: 0.6;
	opacity: 0.4;
}

.ads-proof__quote-text {
	font-family: 'Shippori Mincho', 'Noto Serif JP', serif;
	font-size: clamp(18px, 2.4vw, 24px);
	line-height: 1.9;
	color: var(--ads-text);
	margin: 24px 0 32px;
	letter-spacing: 0.03em;
	font-weight: 400;
	border: 0;
	padding: 0;
}

.ads-proof__quote-author {
	display: flex;
	flex-direction: column;
	gap: 4px;
	align-items: center;
	margin: 0;
}

.ads-proof__quote-name {
	font-family: 'Inter', -apple-system, sans-serif;
	font-size: 13px;
	color: var(--ads-text);
	letter-spacing: 0.1em;
	font-weight: 500;
}

.ads-proof__quote-company {
	font-size: 12px;
	color: var(--ads-text-3);
	letter-spacing: 0.05em;
}

/* --- CTA 緊急性・希少性 --- */
.ads-cta__scarcity {
	display: inline-flex;
	align-items: center;
	gap: 12px;
	padding: 10px 20px;
	background: rgba(194, 91, 63, 0.08);
	border: 1px solid rgba(194, 91, 63, 0.3);
	margin-bottom: 40px;
}

.ads-cta__scarcity-dot {
	display: inline-block;
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: var(--ads-vermilion);
	animation: ads-pulse 2s ease-in-out infinite;
	box-shadow: 0 0 0 0 rgba(194, 91, 63, 0.6);
}

@keyframes ads-pulse {
	0%, 100% {
		box-shadow: 0 0 0 0 rgba(194, 91, 63, 0.6);
		transform: scale(1);
	}
	50% {
		box-shadow: 0 0 0 8px rgba(194, 91, 63, 0);
		transform: scale(1.1);
	}
}

.ads-cta__scarcity-text {
	font-family: 'Inter', -apple-system, sans-serif;
	font-size: 12px;
	letter-spacing: 0.15em;
	color: var(--ads-vermilion);
	font-weight: 500;
	text-transform: uppercase;
}

.ads-cta__reason {
	font-size: 13px;
	line-height: 1.9;
	color: var(--ads-text-3);
	max-width: 560px;
	margin: 0 auto 40px;
	font-style: italic;
}

/* --- CTA 安心要素（警戒解除）--- */
.ads-cta__trust {
	display: flex;
	gap: 32px;
	justify-content: center;
	margin: 40px 0 0;
	padding: 0;
	list-style: none;
	flex-wrap: wrap;
}

.ads-cta__trust li {
	font-size: 12px;
	color: var(--ads-text-3);
	letter-spacing: 0.05em;
	display: inline-flex;
	align-items: center;
	gap: 8px;
	position: relative;
}

.ads-cta__trust li::before {
	content: '';
	display: inline-block;
	width: 4px;
	height: 4px;
	background: var(--ads-gold);
	border-radius: 50%;
	flex-shrink: 0;
}

@media (max-width: 600px) {
	.ads-cta__trust { gap: 16px; flex-direction: column; align-items: center; }
}

/* --- カウンター動的アニメーション準備 --- */
[data-counter] {
	will-change: contents;
}


/* ===========================================
 * v1.9.204: 3000 万円クラス化 — 驚きの体験
 * =========================================== */

/* --- 体験 1：数字の雨 HERO --- */
.ads-hero__rain {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	z-index: 1;
	pointer-events: none;
	opacity: 0.8;
}
.ads-hero__grid-bg {
	z-index: 2;
}
.ads-hero .ads-container {
	position: relative;
	z-index: 3;
}

/* --- 体験 5：契約の扉 CTA --- */
.ads-cta {
	position: relative;
	overflow: hidden;
	background: var(--ads-bg);
}

.ads-cta__doors {
	position: absolute;
	inset: 0;
	z-index: 1;
	pointer-events: none;
	display: flex;
	overflow: hidden;
}

.ads-cta__door {
	width: 50%;
	height: 100%;
	background: var(--ads-bg-dark);
	position: relative;
	transform: translateX(0);
	transition: transform 1.8s cubic-bezier(0.7, 0, 0.3, 1) 0.3s;
	box-shadow: 0 0 60px rgba(0, 0, 0, 0.4);
}

.ads-cta__door::before {
	content: '';
	position: absolute;
	top: 0;
	bottom: 0;
	width: 1px;
	background: linear-gradient(to bottom, transparent, var(--ads-gold), transparent);
	opacity: 0.5;
}

.ads-cta__door--left {
	background: linear-gradient(135deg, var(--ads-bg-dark) 0%, #0a1929 100%);
}
.ads-cta__door--left::before { right: 0; }

.ads-cta__door--right {
	background: linear-gradient(225deg, var(--ads-bg-dark) 0%, #0a1929 100%);
}
.ads-cta__door--right::before { left: 0; }

/* 扉が開いた状態 */
.ads-cta.is-doors-open .ads-cta__door--left {
	transform: translateX(-100%);
}
.ads-cta.is-doors-open .ads-cta__door--right {
	transform: translateX(100%);
}

/* 扉の隙間から漏れる光 */
.ads-cta__door-light {
	position: absolute;
	top: 0;
	left: 50%;
	width: 4px;
	height: 100%;
	background: linear-gradient(to bottom,
		transparent 0%,
		rgba(168, 149, 114, 0.4) 30%,
		rgba(194, 91, 63, 0.8) 50%,
		rgba(168, 149, 114, 0.4) 70%,
		transparent 100%);
	transform: translateX(-50%) scaleY(0);
	transform-origin: center;
	transition: transform 0.6s ease-out;
	z-index: 0;
	box-shadow: 0 0 40px rgba(168, 149, 114, 0.6);
	filter: blur(2px);
	opacity: 0;
}

.ads-cta.is-doors-opening .ads-cta__door-light {
	transform: translateX(-50%) scaleY(1);
	opacity: 1;
	transition: transform 0.6s ease-out, opacity 0.6s ease-out;
}

.ads-cta.is-doors-open .ads-cta__door-light {
	opacity: 0;
	transition: opacity 0.4s ease-out 1s;
}

/* CTA コンテンツは扉の上に */
.ads-cta__content {
	position: relative;
	z-index: 2;
	opacity: 0;
	transform: translateY(40px) scale(0.95);
	transition: opacity 1s cubic-bezier(0.22, 1, 0.36, 1) 1.6s, transform 1s cubic-bezier(0.22, 1, 0.36, 1) 1.6s;
}

.ads-cta.is-doors-open .ads-cta__content {
	opacity: 1;
	transform: translateY(0) scale(1);
}

/* CTA ボタンを劇的に */
.ads-cta.is-doors-open .ads-cta__btn {
	box-shadow: 0 20px 60px -10px rgba(194, 91, 63, 0.5), 0 0 0 1px var(--ads-vermilion);
	animation: ads-cta-glow 3s ease-in-out infinite;
}

@keyframes ads-cta-glow {
	0%, 100% {
		box-shadow: 0 20px 60px -10px rgba(194, 91, 63, 0.5), 0 0 0 1px var(--ads-vermilion);
	}
	50% {
		box-shadow: 0 24px 80px -8px rgba(194, 91, 63, 0.7), 0 0 0 1px var(--ads-gold);
	}
}

/* アクセシビリティ */
@media (prefers-reduced-motion: reduce) {
	.ads-cta__doors { display: none; }
	.ads-cta__content {
		opacity: 1 !important;
		transform: none !important;
	}
}


/* ===========================================
 * v1.9.204 続編: 3000 万円クラス完成
 * 体験 2 / 3 / 4
 * =========================================== */

/* --- 体験 2：燃える広告費 --- */
.ads-burning {
	background: linear-gradient(180deg, var(--ads-bg) 0%, #1a0a08 100%);
	color: #fff;
	overflow: hidden;
}
.ads-burning .ads-section__eyebrow { color: var(--ads-gold); }
.ads-burning .ads-section__title { color: #fff; }
.ads-burning .ads-section__lead { color: rgba(255, 255, 255, 0.7); }

.ads-burning__stage {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 80px;
	align-items: center;
	margin-top: 60px;
	min-height: 360px;
}
@media (max-width: 768px) {
	.ads-burning__stage {
		grid-template-columns: 1fr;
		gap: 60px;
	}
}

.ads-burning__money {
	position: relative;
	width: 100%;
	height: 320px;
	display: flex;
	align-items: center;
	justify-content: center;
	perspective: 1000px;
}

.ads-burning__money-bill {
	position: relative;
	width: 280px;
	height: 160px;
	background: linear-gradient(135deg, #f5efe2 0%, #e8dcc4 50%, #d4c5a8 100%);
	border: 2px solid #a89572;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	padding: 24px;
	box-shadow:
		0 20px 40px rgba(0, 0, 0, 0.5),
		inset 0 0 30px rgba(168, 149, 114, 0.3);
	color: #06111c;
	transition: transform 1s cubic-bezier(0.7, 0, 0.3, 1);
	transform-style: preserve-3d;
}

.ads-burning__money-pattern {
	position: absolute;
	inset: 8px;
	border: 1px solid rgba(6, 17, 28, 0.2);
	pointer-events: none;
}
.ads-burning__money-pattern::before,
.ads-burning__money-pattern::after {
	content: '';
	position: absolute;
	width: 24px;
	height: 24px;
	border: 1px solid rgba(6, 17, 28, 0.3);
	border-radius: 50%;
}
.ads-burning__money-pattern::before { top: 8px; left: 8px; }
.ads-burning__money-pattern::after { bottom: 8px; right: 8px; }

.ads-burning__money-amount {
	font-family: 'Shippori Mincho', 'Noto Serif JP', serif;
	font-size: 34px;
	font-weight: 400;
	letter-spacing: 0.04em;
	margin-bottom: 4px;
	color: #06111c;
}

.ads-burning__money-label {
	font-family: 'Inter', -apple-system, sans-serif;
	font-size: 10px;
	letter-spacing: 0.3em;
	color: rgba(6, 17, 28, 0.7);
	text-transform: uppercase;
}

/* 燃え始めた状態 */
.ads-burning.is-burning .ads-burning__money-bill {
	animation: ads-money-shake 0.15s linear infinite, ads-money-burn 6s ease-in forwards;
}

@keyframes ads-money-shake {
	0%, 100% { transform: rotate(-0.3deg); }
	50% { transform: rotate(0.3deg); }
}

@keyframes ads-money-burn {
	0% {
		opacity: 1;
		filter: brightness(1);
		transform: scale(1);
	}
	20% {
		opacity: 1;
		filter: brightness(1.2) sepia(0.3);
	}
	50% {
		opacity: 0.7;
		filter: brightness(0.8) sepia(0.8) hue-rotate(-20deg);
		background: linear-gradient(135deg, #4a2818 0%, #2a1208 100%);
	}
	80% {
		opacity: 0.3;
		filter: brightness(0.4);
		transform: scale(0.95);
	}
	100% {
		opacity: 0.15;
		filter: brightness(0.2);
		background: linear-gradient(135deg, #1a0a04 0%, #0a0402 100%);
		transform: scale(0.9);
	}
}

/* 炎 */
.ads-burning__flames {
	position: absolute;
	bottom: 30%;
	left: 50%;
	transform: translateX(-50%);
	width: 260px;
	height: 100px;
	pointer-events: none;
	opacity: 0;
	transition: opacity 0.5s ease;
}
.ads-burning.is-burning .ads-burning__flames {
	opacity: 1;
}

.ads-burning__flame {
	position: absolute;
	bottom: 0;
	width: 20px;
	height: 60px;
	border-radius: 50% 50% 20% 20%;
	background: radial-gradient(circle at 50% 70%, #fff5a0 0%, #ffaa20 30%, #c25b3f 60%, transparent 100%);
	filter: blur(3px);
	animation: ads-flame-flicker 1s ease-in-out infinite;
	transform-origin: bottom center;
	opacity: 0.9;
	mix-blend-mode: screen;
}

@keyframes ads-flame-flicker {
	0%, 100% { transform: scaleY(1) scaleX(1); opacity: 0.9; }
	25% { transform: scaleY(1.2) scaleX(0.9); opacity: 1; }
	50% { transform: scaleY(0.9) scaleX(1.1); opacity: 0.8; }
	75% { transform: scaleY(1.1) scaleX(0.95); opacity: 0.95; }
}

.ads-burning__flame--1 { left: 10%; animation-delay: 0s; height: 50px; }
.ads-burning__flame--2 { left: 25%; animation-delay: 0.2s; height: 70px; }
.ads-burning__flame--3 { left: 45%; animation-delay: 0.1s; height: 90px; width: 28px; }
.ads-burning__flame--4 { left: 65%; animation-delay: 0.3s; height: 65px; }
.ads-burning__flame--5 { left: 80%; animation-delay: 0.15s; height: 55px; }

/* 灰の粒子 */
.ads-burning__ashes {
	position: absolute;
	top: 0;
	left: 50%;
	transform: translateX(-50%);
	width: 300px;
	height: 100%;
	pointer-events: none;
	opacity: 0;
	transition: opacity 1s ease;
}
.ads-burning.is-burning .ads-burning__ashes {
	opacity: 1;
}

.ads-burning__ash {
	position: absolute;
	bottom: 30%;
	width: 4px;
	height: 4px;
	background: rgba(200, 200, 200, 0.8);
	border-radius: 50%;
	filter: blur(0.5px);
	animation: ads-ash-rise 5s linear infinite;
}

@keyframes ads-ash-rise {
	0% {
		transform: translateY(0) translateX(0) scale(1);
		opacity: 0;
	}
	10% { opacity: 0.8; }
	50% {
		transform: translateY(-200px) translateX(20px) scale(0.7);
		opacity: 0.5;
	}
	100% {
		transform: translateY(-400px) translateX(-30px) scale(0.3);
		opacity: 0;
	}
}

.ads-burning__ash:nth-child(1) { left: 10%; animation-delay: 0s; }
.ads-burning__ash:nth-child(2) { left: 25%; animation-delay: 0.4s; }
.ads-burning__ash:nth-child(3) { left: 35%; animation-delay: 0.8s; }
.ads-burning__ash:nth-child(4) { left: 50%; animation-delay: 1.2s; }
.ads-burning__ash:nth-child(5) { left: 60%; animation-delay: 0.6s; }
.ads-burning__ash:nth-child(6) { left: 70%; animation-delay: 1.6s; }
.ads-burning__ash:nth-child(7) { left: 85%; animation-delay: 2s; }
.ads-burning__ash:nth-child(8) { left: 45%; animation-delay: 2.4s; }

/* 燃えるメッセージ */
.ads-burning__message {
	padding: 32px 0;
}

.ads-burning__message-stat {
	display: flex;
	align-items: baseline;
	gap: 20px;
	margin: 0 0 16px;
	flex-wrap: wrap;
}

.ads-burning__message-num {
	font-family: 'Shippori Mincho', 'Noto Serif JP', serif;
	font-size: clamp(48px, 7vw, 80px);
	color: var(--ads-vermilion);
	font-weight: 400;
	line-height: 1;
	letter-spacing: 0.02em;
}

.ads-burning__message-stat-label {
	font-size: 16px;
	color: #fff;
	line-height: 1.7;
}

.ads-burning__message-source {
	font-size: 11px;
	color: rgba(255, 255, 255, 0.4);
	font-family: 'Inter', -apple-system, sans-serif;
	letter-spacing: 0.05em;
	margin: 8px 0 32px;
}

.ads-burning__message-conclusion {
	font-family: 'Shippori Mincho', 'Noto Serif JP', serif;
	font-size: 18px;
	line-height: 1.8;
	color: var(--ads-gold);
	margin: 0;
	padding-left: 16px;
	border-left: 2px solid var(--ads-gold);
}

/* --- 体験 3：経営者の脳内回路 --- */
.ads-calc__brain {
	margin-top: 48px;
	padding: 32px 40px;
	background: var(--ads-bg-dark);
	color: #fff;
	border: 1px solid rgba(168, 149, 114, 0.3);
	position: relative;
	overflow: hidden;
}
@media (max-width: 768px) {
	.ads-calc__brain { padding: 24px 16px; }
}

.ads-calc__brain-header {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	padding-bottom: 16px;
	border-bottom: 1px solid rgba(168, 149, 114, 0.2);
	margin-bottom: 20px;
	flex-wrap: wrap;
	gap: 8px;
}

.ads-calc__brain-title {
	font-family: 'Inter', -apple-system, sans-serif;
	font-size: 11px;
	letter-spacing: 0.25em;
	color: var(--ads-gold);
	text-transform: uppercase;
	font-weight: 500;
}

.ads-calc__brain-note {
	font-size: 11px;
	color: rgba(255, 255, 255, 0.4);
	font-family: 'Inter', -apple-system, sans-serif;
	letter-spacing: 0.1em;
}

.ads-calc__brain-stage {
	display: flex;
	justify-content: center;
	padding: 16px 0;
}

.ads-calc__brain-svg {
	width: 100%;
	max-width: 600px;
	height: auto;
	color: rgba(168, 149, 114, 0.3);
}

/* 接続線 */
.ads-calc__brain-lines path {
	transition: stroke 0.4s ease, stroke-width 0.4s ease, filter 0.4s ease;
	stroke-linecap: round;
}

/* アクティブ状態（健全） */
.ads-calc__brain.is-healthy .ads-calc__brain-lines path {
	stroke: var(--ads-gold);
	stroke-width: 2;
	filter: drop-shadow(0 0 4px rgba(168, 149, 114, 0.6));
}
/* 警告 */
.ads-calc__brain.is-warning .ads-calc__brain-lines path {
	stroke: #d4a85a;
	stroke-width: 1.8;
}
/* 赤字 */
.ads-calc__brain.is-danger .ads-calc__brain-lines path {
	stroke: var(--ads-vermilion);
	stroke-width: 2;
	filter: drop-shadow(0 0 6px rgba(194, 91, 63, 0.8));
	animation: ads-brain-pulse 1.5s ease-in-out infinite;
}

@keyframes ads-brain-pulse {
	0%, 100% { opacity: 1; }
	50% { opacity: 0.6; }
}

/* ノード */
.ads-calc__brain-nodes circle {
	fill: var(--ads-bg-dark);
	stroke: rgba(168, 149, 114, 0.5);
	stroke-width: 1.5;
	transition: stroke 0.4s ease, fill 0.4s ease, filter 0.4s ease;
}

.ads-calc__brain-nodes text {
	fill: rgba(255, 255, 255, 0.7);
	font-family: 'Inter', -apple-system, sans-serif;
	transition: fill 0.4s ease;
}

.ads-calc__brain.is-healthy .ads-calc__brain-nodes circle {
	stroke: var(--ads-gold);
	filter: drop-shadow(0 0 8px rgba(168, 149, 114, 0.5));
}
.ads-calc__brain.is-healthy .ads-calc__brain-nodes text { fill: #fff; }

.ads-calc__brain.is-danger .ads-calc__brain-nodes circle {
	stroke: var(--ads-vermilion);
	filter: drop-shadow(0 0 8px rgba(194, 91, 63, 0.6));
}

/* 中央ノード（LTV / CAC）強調 */
.ads-calc__brain-node--center circle {
	stroke-width: 2 !important;
}

.ads-calc__brain.is-healthy .ads-calc__brain-node--center circle {
	fill: rgba(168, 149, 114, 0.15);
}
.ads-calc__brain.is-danger .ads-calc__brain-node--center circle {
	fill: rgba(194, 91, 63, 0.15);
}

.ads-calc__brain-status {
	margin: 16px 0 0;
	font-size: 13px;
	color: rgba(255, 255, 255, 0.7);
	text-align: center;
	font-family: 'Shippori Mincho', 'Noto Serif JP', serif;
	letter-spacing: 0.03em;
}
.ads-calc__brain-status strong {
	color: var(--ads-gold);
	font-weight: 500;
}
.ads-calc__brain.is-danger .ads-calc__brain-status strong {
	color: var(--ads-vermilion);
}

/* --- 体験 4：広告の歴史タイムライン --- */
.ads-history {
	background: var(--ads-bg);
	position: relative;
}

.ads-history__timeline {
	position: relative;
	margin-top: 80px;
	padding-left: 80px;
}

@media (max-width: 768px) {
	.ads-history__timeline { padding-left: 40px; }
}

.ads-history__line {
	position: absolute;
	top: 30px;
	bottom: 30px;
	left: 0;
	width: 1px;
	background: var(--ads-line);
}

.ads-history__line::before {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	width: 1px;
	background: linear-gradient(to bottom, var(--ads-vermilion), var(--ads-gold));
	height: var(--ads-history-progress, 0%);
	transition: height 0.4s ease-out;
}

.ads-history__era {
	position: relative;
	padding-bottom: 80px;
	opacity: 0.35;
	transition: opacity 0.6s ease;
}

.ads-history__era:last-child { padding-bottom: 0; }

.ads-history__era::before {
	content: '';
	position: absolute;
	top: 28px;
	left: -84px;
	width: 9px;
	height: 9px;
	border-radius: 50%;
	background: var(--ads-bg);
	border: 1.5px solid var(--ads-line);
	transition: background 0.4s ease, border-color 0.4s ease, transform 0.4s ease;
}

@media (max-width: 768px) {
	.ads-history__era::before { left: -44px; }
}

.ads-history__era.is-active {
	opacity: 1;
}

.ads-history__era.is-active::before {
	background: var(--ads-vermilion);
	border-color: var(--ads-gold);
	transform: scale(1.4);
	box-shadow: 0 0 0 4px rgba(168, 149, 114, 0.2);
}

.ads-history__year {
	display: inline-block;
	font-family: 'Inter', -apple-system, sans-serif;
	font-size: 14px;
	letter-spacing: 0.15em;
	color: var(--ads-vermilion);
	font-weight: 500;
	margin-bottom: 12px;
}

.ads-history__current-badge {
	display: inline-block;
	margin-left: 12px;
	padding: 3px 12px;
	background: var(--ads-vermilion);
	color: #fff;
	font-size: 10px;
	letter-spacing: 0.2em;
	font-family: 'Inter', -apple-system, sans-serif;
	font-weight: 500;
	vertical-align: middle;
}

.ads-history__era-title {
	font-family: 'Shippori Mincho', 'Noto Serif JP', serif;
	font-size: clamp(20px, 2.8vw, 28px);
	font-weight: 400;
	color: var(--ads-text);
	margin: 0 0 12px;
	letter-spacing: 0.04em;
}

.ads-history__era--current .ads-history__era-title {
	color: var(--ads-vermilion);
}

.ads-history__era-desc {
	font-size: 15px;
	line-height: 1.9;
	color: var(--ads-text-2);
	margin: 0;
	max-width: 640px;
}

/* アクセシビリティ */
@media (prefers-reduced-motion: reduce) {
	.ads-burning__flames, .ads-burning__ashes { display: none; }
	.ads-burning__money-bill { animation: none !important; }
	.ads-history__era { opacity: 1 !important; }
}
