@charset "UTF-8";
/* =====================================================================
 *  瞬 SHUN PROJECT LP  ―  独立スタイル（Cocoon 完全遮断）
 *  Design : 和紙 × 判子 × Editorial Mono（AI×Web 経営実装 との連続性を
 *           ヘッダー／フッターの「暗色統一チャプター」で確保しつつ、
 *           本文は「瞬」固有の和紙トーンで独自性を保つ二層構成）
 *  Scope  : body.shun-page 配下のみに影響。Cocoon の変数・クラスは不使用。
 *  Author : 2026 Edition
 * ===================================================================== */

/* ───── 1. RESET / SCOPE ──────────────────────────────────────────── */
body.shun-page,
body.shun-page *,
body.shun-page *::before,
body.shun-page *::after {
	box-sizing: border-box;
	margin: 0;
	padding: 0;
	-webkit-text-size-adjust: 100%;
}
body.shun-page img,
body.shun-page video,
body.shun-page svg { max-width: 100%; height: auto; display: block; }
body.shun-page a { color: inherit; text-decoration: none; }
body.shun-page button { font-family: inherit; }
body.shun-page input,
body.shun-page textarea { font-family: inherit; color: inherit; }

/* PC／SP 改行制御ユーティリティ */
body.shun-page .pc { display: inline; }
body.shun-page .sp { display: none; }
@media (max-width: 720px) {
	body.shun-page .pc { display: none; }
	body.shun-page .sp { display: inline; }
}

/* 見出し・ラベル・数値＋単位の意味割れ防止（本文の段落は対象外） */
body.shun-page .hero h1,
body.shun-page .eyebrow,
body.shun-page h2.section-title,
body.shun-page .nav-brand-main,
body.shun-page .nav-brand-sub,
body.shun-page .footer-logo,
body.shun-page .footer-badge,
body.shun-page .demo-cta h2,
body.shun-page .benefit-card h3,
body.shun-page .why-text h4,
body.shun-page .why-time,
body.shun-page .ba-label,
body.shun-page .price-name,
body.shun-page .price-amount,
body.shun-page .price-tag,
body.shun-page .faq-item summary,
body.shun-page .video-caption span,
body.shun-page .op-row .op-k,
body.shun-page .nav-cta,
body.shun-page .btn {
	word-break: keep-all;
	overflow-wrap: break-word;
}

html { scroll-behavior: smooth; }

/* ───── 2. DESIGN TOKENS ──────────────────────────────────────────── */
body.shun-page {
	/* 和紙（本文レイヤー） */
	--ink:        #1A1A18;
	--ink-soft:   #3A3733;
	--washi:      #F7F4EC;
	--washi-soft: #EFEADE;
	--washi-card: #FFFDF7;
	--muted:      #726F68;
	--line:        rgba(26,26,24,0.14);
	--line-strong: rgba(26,26,24,0.28);

	/* 判子（アクセント） */
	--hanko:      #C7402C;
	--hanko-dark: #9C2E20;
	--hanko-soft: #F3DCD5;
	--indigo:     #2B3A55;

	/* AI×Web 経営実装 との橋渡しトーン（ヘッダー／フッター専用） */
	--brand-deep:  #100F0D;
	--brand-panel: #17140F;
	--brand-line:  rgba(247,244,236,0.14);
	--brand-gold:  #C9A227;
	--brand-gold-light: #E4C765;
	--brand-text:  rgba(247,244,236,0.86);
	--brand-text-dim: rgba(247,244,236,0.55);

	--radius: 2px;
	--maxw: 1080px;

	--ease-out: cubic-bezier(0.22, 1, 0.36, 1);
	--t-base: 520ms var(--ease-out);

	background: transparent; /* 基調の和紙色は .shun-washi-atmosphere が担う */
	color: var(--ink);
	font-family: 'Zen Kaku Gothic New', 'Hiragino Sans', sans-serif;
	font-size: 16px;
	line-height: 1.85;
	overflow-x: hidden;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	font-feature-settings: "palt" 1;
	line-break: strict;        /* 行頭に句読点・閉じ括弧等が来ないよう禁則処理を厳格化 */
	word-break: normal;        /* 本文の日本語は通常の改行規則を維持 */
	overflow-wrap: break-word; /* 長い英単語・数値等がはみ出す場合のみ安全に折り返す */
}

body.shun-page .mono    { font-family: 'JetBrains Mono', ui-monospace, monospace; letter-spacing: 0.02em; }
body.shun-page .display { font-family: 'Shippori Mincho', serif; font-weight: 800; letter-spacing: 0.02em; }
body.shun-page .wrap    { max-width: var(--maxw); margin: 0 auto; padding: 0 28px; }

/* eyebrow / stamp mark（本文用・判子トーン） */
body.shun-page .eyebrow {
	display: inline-flex; align-items: center; gap: 10px;
	font-family: 'JetBrains Mono', monospace;
	font-size: 12px; letter-spacing: 0.14em;
	color: var(--hanko-dark);
	text-transform: uppercase;
	margin-bottom: 18px;
}
body.shun-page .stamp {
	width: 22px; height: 22px; border-radius: 50%;
	border: 1.4px solid var(--hanko);
	display: inline-flex; align-items: center; justify-content: center;
	font-family: 'Shippori Mincho', serif; font-weight: 800;
	font-size: 12px; color: var(--hanko); flex-shrink: 0;
}

body.shun-page section { padding: 96px 0; position: relative; }
body.shun-page h2.section-title { font-size: clamp(26px,3.4vw,38px); margin: 0 0 20px; line-height: 1.5; }
body.shun-page .lede { font-size: 16px; color: var(--ink-soft); max-width: 640px; margin: 0 0 48px; }
body.shun-page hr.rule { border: none; border-top: 1px solid var(--line); margin: 0; }

/* ───── 3. スクロール進行インジケーター（記事LPとの連続演出） ───── */
body.shun-page .shun-progress {
	position: fixed; top: 0; left: 0; width: 100%; height: 2px;
	z-index: 90; background: transparent; pointer-events: none;
}
body.shun-page .shun-progress__bar {
	display: block; height: 100%; width: 0%;
	background: linear-gradient(90deg, var(--hanko), var(--brand-gold));
	transition: width 120ms linear;
}

/* ───── 4. HEADER（AI×Web 経営実装 と統一：暗色チャプター） ───── */
body.shun-page header#shun-nav {
	position: sticky; top: 0; z-index: 80;
	background: rgba(16,15,13,0.86);
	backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px);
	border-bottom: 1px solid var(--brand-line);
	transition: background .3s var(--ease-out), padding .3s var(--ease-out);
}
body.shun-page .nav {
	display: flex; align-items: center; justify-content: space-between;
	padding: 16px 28px; max-width: var(--maxw); margin: 0 auto;
}
body.shun-page .nav-brand { display: flex; align-items: center; gap: 12px; }
body.shun-page .nav-brand-main {
	font-family: 'Shippori Mincho', serif; font-weight: 800; font-size: 16px;
	color: var(--brand-text); white-space: nowrap;
}
body.shun-page .nav-brand-main .x { color: var(--brand-gold); margin: 0 1px; }
body.shun-page .nav-brand-sep { width: 1px; height: 16px; background: var(--brand-line); }
body.shun-page .nav-brand-sub {
	display: flex; align-items: center; gap: 6px;
	font-family: 'JetBrains Mono', monospace; font-size: 11px; letter-spacing: 0.08em;
	color: var(--brand-gold-light);
}
body.shun-page .nav-brand-sub .kanji-mini {
	width: 18px; height: 18px; border-radius: 50%;
	background: var(--hanko); color: #fff; font-family: 'Shippori Mincho', serif;
	display: inline-flex; align-items: center; justify-content: center; font-size: 10px; font-weight: 800;
}
body.shun-page .nav-cta {
	font-family: 'JetBrains Mono', monospace; font-size: 12px; letter-spacing: 0.06em;
	border: 1px solid var(--brand-gold); color: var(--brand-gold-light);
	padding: 10px 20px; border-radius: var(--radius);
	transition: background .2s, color .2s, transform .2s;
	display: inline-flex; align-items: center; gap: 8px;
}
body.shun-page .nav-cta:hover { background: var(--brand-gold); color: var(--brand-deep); transform: translateY(-1px); }

@media (max-width:600px){
	body.shun-page .nav-brand-sub .label-full { display:none; }
	body.shun-page .nav-cta { font-size: 11px; padding: 8px 14px; }
}

/* ───── 4.5 和紙アトモスフィア（ページ全体・空気に漂う和紙演出） ─────
 * body直下に固定表示される、常時のページ背景。
 * カード類は不透明なまま維持し、セクション間の余白・行間で
 * 常に和紙が揺らいでいるのを感じられるようにする。 */
body.shun-page .shun-washi-atmosphere {
	position: fixed;
	inset: 0;
	z-index: -1;
	pointer-events: none;
	overflow: hidden;
	background: var(--washi); /* ページの基調色（動かない下地） */
}

body.shun-page .shun-washi-atmosphere .washi-layer {
	position: absolute;
	top: -14%;
	left: -14%;
	width: 128%;
	height: 128%;
	will-change: transform, opacity;
	transform: translate3d(0, 0, 0);
	backface-visibility: hidden;
	pointer-events: none;
}

/* Layer 1：細かい和紙繊維（最速） */
body.shun-page .shun-washi-atmosphere .washi-layer--fiber {
	opacity: 0.30;
	background-image:
		repeating-linear-gradient(115deg, rgba(58,55,51,0.24) 0px, rgba(58,55,51,0.24) 1px, transparent 1px, transparent 3px),
		repeating-linear-gradient(25deg, rgba(58,55,51,0.20) 0px, rgba(58,55,51,0.20) 1px, transparent 1px, transparent 4px);
}

/* Layer 2：大きな和紙の濃淡模様（中速） */
body.shun-page .shun-washi-atmosphere .washi-layer--pattern {
	opacity: 0.5;
	background-image:
		radial-gradient(680px 520px at 18% 10%, rgba(199,64,44,0.10), transparent 60%),
		radial-gradient(760px 560px at 85% 65%, rgba(43,58,85,0.09), transparent 62%),
		radial-gradient(520px 420px at 50% 40%, rgba(114,111,104,0.10), transparent 58%);
}

/* Layer 3：淡い墨だまり（低速） */
body.shun-page .shun-washi-atmosphere .washi-layer--ink {
	opacity: 0.16;
	background-image:
		radial-gradient(460px 360px at 70% 30%, rgba(43,58,85,0.40), transparent 70%),
		radial-gradient(380px 320px at 20% 78%, rgba(26,26,24,0.28), transparent 70%);
}

/* Layer 4：極薄グラデーション（極低速・全体の明暗を統一） */
body.shun-page .shun-washi-atmosphere .washi-layer--gradient {
	opacity: 0.55;
	background-image: linear-gradient(180deg, rgba(255,253,247,0.55) 0%, rgba(247,244,236,0) 42%, rgba(247,244,236,0) 58%, rgba(239,234,222,0.45) 100%);
}

/* ───── 5. HERO ───────────────────────────────────────────────────── */
body.shun-page .hero {
	padding: 88px 0 60px;
	overflow: hidden;
	contain: layout paint;
	isolation: isolate;
	transform: translateZ(0);
	backface-visibility: hidden;
	-webkit-backface-visibility: hidden;
	will-change: transform;
}

/* hero-bg：hero専用の静止ブランドハイライト（動かない）。
   ページ全体を漂う演出は .shun-washi-atmosphere 側が担当する。 */
body.shun-page .hero-bg {
	position: absolute; inset: 0; z-index: -1; pointer-events: none;
	background:
		radial-gradient(560px 420px at 82% -6%, rgba(199,64,44,0.10), transparent 60%),
		radial-gradient(640px 480px at -8% 30%, rgba(43,58,85,0.08), transparent 60%);
}

body.shun-page .hero-grid { display: grid; grid-template-columns: 1.05fr 0.95fr; gap: 56px; align-items: center; contain: layout; }
body.shun-page .hero h1 { font-size: clamp(34px,5vw,58px); line-height: 1.42; margin: 0 0 26px; }
body.shun-page .hero h1 em { font-style: normal; color: var(--hanko); position: relative; }
body.shun-page .hero p.sub { font-size: 17px; color: var(--ink-soft); max-width: 480px; margin: 0 0 34px; }
body.shun-page .hero .hero-note {
	display: inline-block;
	font-size: 13px;
	line-height: 1.7;
	color: var(--ink-soft);
	background: var(--washi-soft);
	border: 1px solid var(--line);
	border-radius: var(--radius);
	padding: 10px 14px;
	margin: 0 0 24px;
	max-width: 480px;
}
body.shun-page .cta-row { display: flex; gap: 14px; flex-wrap: wrap; }

body.shun-page .cta-row { display: flex; gap: 14px; flex-wrap: wrap; }

/* AIミニ体験ウィジェット */
body.shun-page .hero-widget {
	margin-top: 34px;
	background: var(--washi-card);
	border: 1px solid var(--line-strong);
	border-radius: var(--radius);
	padding: 26px;
	max-width: 520px;
}
body.shun-page .hero-widget-title {
	font-size: 14px; font-weight: 700; color: var(--hanko-dark);
	display: flex; align-items: center; gap: 10px; margin-bottom: 16px;
}
body.shun-page .dot-pulse {
	width: 8px; height: 8px; border-radius: 50%; background: var(--hanko);
	box-shadow: 0 0 0 0 rgba(199,64,44,0.5); animation: shunPulse 2s infinite;
	flex-shrink: 0;
}
@keyframes shunPulse {
	0%   { box-shadow: 0 0 0 0 rgba(199,64,44,0.5); }
	70%  { box-shadow: 0 0 0 10px rgba(199,64,44,0); }
	100% { box-shadow: 0 0 0 0 rgba(199,64,44,0); }
}
body.shun-page .widget-row-single { margin-bottom: 14px; }
body.shun-page .widget-input {
	width: 100%; font-family: 'Zen Kaku Gothic New', sans-serif; font-size: 15px;
	padding: 13px 14px; border: 1px solid var(--line-strong); background: var(--washi);
	color: var(--ink); border-radius: 2px;
}
body.shun-page .widget-input:focus { outline: 2px solid var(--hanko); outline-offset: 1px; }
body.shun-page .btn-block { width: 100%; justify-content: center; }
body.shun-page .btn-sm { padding: 10px 16px; font-size: 12px; }
body.shun-page .ai-response-area {
	margin-top: 16px; min-height: 0; display: none;
	background: var(--washi-soft); border: 1px solid var(--line);
	border-radius: var(--radius); padding: 18px; font-size: 14px; line-height: 1.85;
	color: var(--ink-soft); animation: shunFadeSoft .4s var(--ease-out);
}
body.shun-page .ai-response-area.visible { display: block; }
@keyframes shunFadeSoft { from { opacity:0; transform: translateY(8px);} to { opacity:1; transform:translateY(0);} }
body.shun-page .hero-lead-capture {
	display: none; margin-top: 16px; padding-top: 16px; border-top: 1px solid var(--line);
}
body.shun-page .hero-lead-capture.visible { display: block; }
body.shun-page .hero-lead-capture label { font-size: 12px; color: var(--muted); display: block; margin-bottom: 8px; }
body.shun-page .lead-row { display: flex; gap: 8px; }
body.shun-page .lead-row input {
	flex: 1; font-size: 14px; padding: 11px 12px; border: 1px solid var(--line-strong);
	background: var(--washi); color: var(--ink); border-radius: 2px;
}
body.shun-page .hero-lead-success {
	display: none; margin-top: 10px; font-size: 13px; color: var(--hanko-dark);
}
body.shun-page .hero-lead-success.show { display: block; }

body.shun-page .hero-lead-success.is-error {
	color: #B3261E;
	font-weight: 700;
}
body.shun-page .lead-row .btn:disabled {
	opacity: 0.55;
	cursor: not-allowed;
	transform: none;
}

body.shun-page .loading-wrap { display: flex; align-items: center; gap: 10px; color: var(--muted); font-size: 13px; }
body.shun-page .spinner {
	width: 14px; height: 14px; border: 2px solid var(--line-strong);
	border-top-color: var(--hanko); border-radius: 50%; animation: shunSpin .7s linear infinite;
}
@keyframes shunSpin { to { transform: rotate(360deg); } }

body.shun-page .btn {
	font-family: 'JetBrains Mono', monospace; font-size: 13px; letter-spacing: 0.04em;
	padding: 15px 26px; display: inline-flex; align-items: center; gap: 10px;
	border: 1px solid var(--ink); transition: transform .15s ease, background .2s, color .2s, border-color .2s;
	border-radius: var(--radius);
}
body.shun-page .btn:hover { transform: translateY(-2px); }
body.shun-page .btn-primary { background: var(--ink); color: var(--washi); }
body.shun-page .btn-primary:hover { background: var(--hanko); border-color: var(--hanko); color: #fff; }
body.shun-page .btn-ghost { background: transparent; color: var(--ink); }
body.shun-page .btn-ghost:hover { background: var(--ink); color: var(--washi); }

body.shun-page .stamp-anim {
	position: absolute; top: -40px; right: 6px;
	width: 96px; height: 96px; border-radius: 50%;
	background: var(--hanko);
	display: flex; align-items: center; justify-content: center;
	color: #fff; font-family: 'Shippori Mincho', serif; font-weight: 800; font-size: 40px;
	box-shadow: 0 0 0 6px var(--washi), 0 18px 40px -14px rgba(199,64,44,0.55);
	z-index: 5;
	opacity: 0; transform: scale(2.4) rotate(-10deg);
}
body.shun-page .stamp-anim.play {
	animation: shunStampIn 1.1s cubic-bezier(.2,.9,.25,1) both;
	animation-delay: .15s;
}
@keyframes shunStampIn {
	0%   { transform: scale(2.6) rotate(-10deg); opacity: 0; }
	55%  { transform: scale(0.92) rotate(3deg);  opacity: 1; }
	100% { transform: scale(1) rotate(0deg);     opacity: 1; }
}

/* ───── 5-α. HERO-VISUAL：合成レイヤー境界（SPジャンク吸収の要）─────
 *  子側（.browser-body）だけで contain しても、SPではペイントが
 *  祖先方向に伝播する事象を確認。ここで祖先側に「合成レイヤーの壁」を
 *  作り、runBuild()リセット時のリレイアウト／リペイントを
 *  ヒーロー内部で完全に閉じ込める。
 *  ─── isolation:isolate + contain:layout paint + translateZ(0) の
 *      三点固定で、iOS Safari / Chrome Mobile 両方で有効。 */
body.shun-page .hero-visual {
	position: relative;
	isolation: isolate;
	contain: layout paint;
}

body.shun-page .hero-visual-wrap {
	position: relative;
	/* .stamp-anim を contain:paint の外側に置くための素通しラッパー。
	   contain:layout のみ付与（paint は付けない→stamp-anim の上方向
	   はみ出し表示を維持）。これにより、ブラウザモックアップ内の
	   レイアウト変化がグリッド全体に伝播しないよう遮断する。 */
	align-self: start;
	contain: layout;
}

/* browser build mockup */
body.shun-page .browser {
	background: var(--washi-card);
	border: 1px solid var(--line-strong);
	box-shadow: 10px 10px 0 var(--indigo);
	border-radius: var(--radius);
	/* GPUレイヤー昇格は .hero 側に一本化。ここでは contain のみを残し
	   ローカルな再計算の閉じ込めに留める。translateZ(0) と
	   will-change:transform を多階層でネストさせると、モバイルSafariで
	   レイヤー境界の同期がズレ、ジャンクの向きが反転する事象を確認した
	   ため撤去。 */
	contain: layout paint;
}

body.shun-page .browser-bar { display: flex; align-items: center; gap: 8px; padding: 10px 14px; border-bottom: 1px solid var(--line); }
body.shun-page .dot { width: 8px; height: 8px; border-radius: 50%; background: var(--line-strong); }
body.shun-page .browser-addr {
	flex: 1; margin-left: 8px;
	display: flex; align-items: center;
	height: 28px; box-sizing: border-box;
	font-family: 'JetBrains Mono', monospace; font-size: 11px; color: var(--muted);
	background: var(--washi); border: 1px solid var(--line); border-radius: 20px;
	padding: 0 12px; overflow: hidden; white-space: nowrap;
	transition: opacity .18s ease;
}
body.shun-page .browser-addr.addr-fade { opacity: 0; }
body.shun-page .browser-body {
	padding: 18px; min-height: 390px; position: relative;
	/* GPUレイヤー昇格は .hero 側に一本化したため、ここでは contain に
	   よる閉じ込めのみ行う。多階層で個別にレイヤー昇格すると、
	   モバイルSafariでレイヤー境界の同期がズレ、ジャンクの向きが
	   反転する事象が確認されたため撤去。 */
	contain: layout paint style;
	height: 390px;
}

body.shun-page .blk {
	background: var(--washi-soft);
	border: 1px dashed var(--line-strong);
	border-radius: 2px; margin-bottom: 10px;
	opacity: 0; transform: translateY(6px);
	/* リセット時（.show除去→消える方向）は少し長めのイージングで、
	   SPでの「一斉フェードアウト」の描画コストを時間軸方向に分散する。 */
	transition: opacity .55s var(--ease-out), transform .55s var(--ease-out);
	will-change: opacity, transform;
}
body.shun-page .blk.show {
	opacity: 1; transform: translateY(0);
	/* 出現時は素早くキビキビと */
	transition: opacity .35s var(--ease-out), transform .35s var(--ease-out);
}

body.shun-page .blk-header { height: 34px; width: 100%; }
body.shun-page .blk-hero { height: 96px; width: 100%; }
body.shun-page .blk-line { height: 12px; }
body.shun-page .blk-line.w1 { width: 92%; }
body.shun-page .blk-line.w2 { width: 68%; }
body.shun-page .blk-line.w3 { width: 80%; }
body.shun-page .blk-row { display: flex; gap: 10px; margin-bottom: 10px; }
body.shun-page .blk-card { height: 70px; flex: 1; }
body.shun-page .status-row {
	display: flex; align-items: center; justify-content: space-between;
	margin-top: 14px; padding-top: 14px; border-top: 1px solid var(--line);
	font-family: 'JetBrains Mono', monospace; font-size: 11px; color: var(--muted);
}
body.shun-page .status-live { color: var(--hanko-dark); }
body.shun-page .status-live::before { content: "● "; }

body.shun-page #statusLabel { transition: opacity .18s ease; }
body.shun-page #statusLabel.status-fade { opacity: 0; }

/* 実績数値（heroセクション外に移動：heroの padding-bottom が分離余白を担う） */
body.shun-page .hero-stats {
	margin-top: 0; padding-top: 32px; border-top: 1px solid var(--line);
	display: flex; gap: 40px; flex-wrap: wrap;
}

body.shun-page .stat-item { display: flex; flex-direction: column; gap: 6px; }
body.shun-page .stat-num { font-size: 30px; font-weight: 700; color: var(--hanko-dark); }
body.shun-page .stat-label { font-size: 12px; color: var(--muted); }

/* ───── 6. 実演動画 ────────────────────────────────────────────────── */
body.shun-page .video-shell { background: var(--ink); color: var(--washi); padding: 18px; border-radius: var(--radius); }
body.shun-page .video-frame {
	position: relative; width: 100%; aspect-ratio: 16/9;
	background: #000; overflow: hidden; border: 1px solid rgba(247,244,236,0.2);
}
body.shun-page .video-full { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; }
body.shun-page .video-full { z-index: 2; }
body.shun-page .video-caption {
	display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline;
	gap: 4px 12px;
	padding-top: 14px; font-family: 'JetBrains Mono', monospace; font-size: 11px;
	color: rgba(247,244,236,0.65);
}
body.shun-page .play-overlay {
	position: absolute; inset: 0; z-index: 3; display: flex; flex-direction: column;
	align-items: center; justify-content: center; gap: 12px;
	background: rgba(16,15,13,0.28); cursor: pointer; border: none; padding: 0;
	transition: background .2s;
}
body.shun-page .play-overlay:hover { background: rgba(16,15,13,0.42); }
body.shun-page .play-btn { width: 74px; height: 74px; border-radius: 50%; background: var(--hanko); display: flex; align-items: center; justify-content: center; }
body.shun-page .play-btn svg { width: 22px; height: 22px; margin-left: 3px; }
body.shun-page .play-overlay-label {
	font-family: 'JetBrains Mono', monospace; font-size: 12px; color: #fff;
	background: rgba(0,0,0,0.4); padding: 6px 14px; border-radius: 20px;
}
body.shun-page .video-note { font-size: 12px; color: rgba(247,244,236,0.5); margin-top: 6px; font-family: 'JetBrains Mono', monospace; }

/* ───── 7. Before / After ─────────────────────────────────────────── */
body.shun-page .ba-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1px; background: var(--line-strong); border: 1px solid var(--line-strong); }
body.shun-page .ba-col { background: var(--washi); padding: 32px; }
body.shun-page .ba-col.after { background: var(--washi-card); }
body.shun-page .ba-label { font-family: 'JetBrains Mono', monospace; font-size: 12px; letter-spacing: 0.1em; color: var(--muted); margin-bottom: 18px; display: block; }
body.shun-page .ba-col.after .ba-label { color: var(--hanko-dark); }
body.shun-page .ba-list { list-style: none; }
body.shun-page .ba-list li { padding: 12px 0; border-top: 1px solid var(--line); font-size: 15px; display: flex; gap: 12px; }
body.shun-page .ba-list li:first-child { border-top: none; }
body.shun-page .ba-mark { font-family: 'JetBrains Mono', monospace; color: var(--muted); flex-shrink: 0; }
body.shun-page .ba-col.after .ba-mark { color: var(--hanko); }

/* 導入事例カード */
body.shun-page .case-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px,1fr)); gap: 1px; background: var(--line-strong); border: 1px solid var(--line-strong); }
body.shun-page .case-card { position: relative; background: var(--washi-card); padding: 30px 26px; display: flex; flex-direction: column; gap: 14px; }
body.shun-page .case-industry { font-size: 12px; color: var(--hanko-dark); letter-spacing: 0.06em; }
body.shun-page .case-desc { font-size: 14px; color: var(--ink-soft); line-height: 1.8; flex: 1; margin: 0; }
body.shun-page .case-meta { display: flex; align-items: baseline; gap: 8px; padding-top: 10px; border-top: 1px solid var(--line); }
body.shun-page .case-time { font-size: 22px; color: var(--hanko); font-weight: 700; }
body.shun-page .case-time-label { font-size: 12px; color: var(--muted); }

body.shun-page .case-delivery { font-size: 12.5px; color: var(--muted); line-height: 1.7; margin: 0; }
body.shun-page .case-price { margin-top: 4px; padding-top: 10px; border-top: 1px solid var(--line); font-size: 13px; color: var(--muted); }
body.shun-page .case-price strong { color: var(--hanko); font-size: 17px; font-weight: 800; margin-left: 4px; }

/* ───── 事例カードの判子演出 ─────────────────────────────────
 * 「画像を貼る」のではなく「判子を押す」所作そのものを表現する。
 * ①上空から勢いよく下りる → ②着地でわずかにオーバーシュート
 * → ③輪郭のリングが一瞬滲んで消える、の3段で構成する。
 * 各カードの傾き(--stamp-tilt)は本物の判子同様に少しずつ不揃いだが、
 * 値は固定（乱数は使わない）。 ───────────────────────────── */
body.shun-page .case-stamp {
	--stamp-tilt: 0deg;
	position: absolute;
	top: -22px;
	right: 34px;   /* 元は16px → 18px分だけ左へ寄せる */
	width: 100px;  /* 5:3の横長比率（100 : 60） */
	height: 60px;
	border-radius: 8px;
	background-size: cover;
	background-position: center;
	box-shadow: 0 10px 22px -10px rgba(26,26,24,0.35);
	z-index: 3;
	opacity: 0;
	transform: translateY(-46px) scale(1.9) rotate(calc(var(--stamp-tilt) - 14deg));
	pointer-events: none;
}
body.shun-page .case-stamp.play {
	animation: shunCaseStampPress 640ms cubic-bezier(.2,.9,.25,1) both;
}

/* 着地の瞬間に一度だけ滲むリング（墨が一瞬にじむ余韻） */
body.shun-page .case-stamp::after {
	content: '';
	position: absolute; inset: -6px;
	border-radius: 10px;
	border: 1.5px solid var(--hanko);
	opacity: 0;
}
body.shun-page .case-stamp.play::after {
	animation: shunCaseStampRing 380ms ease-out both;
	animation-delay: 260ms; /* プレスアニメーションの着地タイミングに合わせる */
}

/* 3枚それぞれの画像と、不揃いな傾き */
body.shun-page .case-stamp--insurance {
	background-image: url('https://alpha.hr-kirameki.com/wp-content/uploads/2026/07/ai-web-shun_pjt-保険.webp');
	--stamp-tilt: -6deg;
}
body.shun-page .case-stamp--staffing {
	background-image: url('https://alpha.hr-kirameki.com/wp-content/uploads/2026/07/ai-web-shun_pjt-人材.webp');
	--stamp-tilt: 4deg;
}
body.shun-page .case-stamp--gas {
	background-image: url('https://alpha.hr-kirameki.com/wp-content/uploads/2026/07/ai-web-shun_pjt-GS.webp');
	--stamp-tilt: -3deg;
}

body.shun-page .case-stamp--video {
	background-image: url('https://alpha.hr-kirameki.com/wp-content/uploads/2026/07/ai-web-shun_pjt-動画.webp');
	--stamp-tilt: 5deg;
}
body.shun-page .case-stamp--consulting {
	background-image: url('https://alpha.hr-kirameki.com/wp-content/uploads/2026/07/ai-web-shun_pjt-集客.webp');
	--stamp-tilt: -4deg;
}

@keyframes shunCaseStampPress {
	0%   { opacity: 0; transform: translateY(-46px) scale(1.9)  rotate(calc(var(--stamp-tilt) - 14deg)); }
	46%  { opacity: 1; transform: translateY(3px)   scale(0.94) rotate(calc(var(--stamp-tilt) + 3deg)); }
	100% { opacity: 1; transform: translateY(0)     scale(1)    rotate(var(--stamp-tilt)); }
}
@keyframes shunCaseStampRing {
	0%   { opacity: 0;    transform: scale(0.6); }
	12%  { opacity: 0.55; }
	100% { opacity: 0;    transform: scale(1.4); }
}

/* 着地の衝撃で紙(カード)自体がわずかに沈む */
body.shun-page .case-card.is-stamped {
	animation: shunCaseCardJolt 220ms ease-out;
}
@keyframes shunCaseCardJolt {
	0%   { transform: translateY(0); }
	45%  { transform: translateY(1.5px); }
	100% { transform: translateY(0); }
}

@media (prefers-reduced-motion: reduce) {
	body.shun-page .case-stamp { opacity: 1; transform: rotate(var(--stamp-tilt)); }
	body.shun-page .case-stamp::after { display: none; }
	body.shun-page .case-card.is-stamped { animation: none; }
}

/* ───── 8. なぜ瞬時にできるのか ──────────────────────────────────── */
body.shun-page .why-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 60px; align-items: start; }
body.shun-page .why-steps { display: flex; flex-direction: column; }
body.shun-page .why-step { display: flex; gap: 18px; padding: 20px 0; border-top: 1px solid var(--line); }
body.shun-page .why-step:first-child { border-top: none; }
body.shun-page .why-time { font-family: 'JetBrains Mono', monospace; font-size: 12px; color: var(--hanko-dark); min-width: 64px; }
body.shun-page .why-text h4 { margin: 0 0 6px; font-size: 16px; font-weight: 700; }
body.shun-page .why-text p { margin: 0; color: var(--muted); font-size: 14px; }

/* ───── 8.5 完成までのロードマップ ────────────────────────────────── */
body.shun-page .flow-steps { display: grid; grid-template-columns: repeat(4,1fr); gap: 1px; background: var(--line-strong); border: 1px solid var(--line-strong); margin-top: 8px; }
body.shun-page .flow-step { background: var(--washi-card); padding: 26px 22px; }
body.shun-page .flow-num { font-size: 12px; color: var(--hanko); margin-bottom: 12px; letter-spacing: 0.08em; }
body.shun-page .flow-text h4 { margin: 0 0 8px; font-size: 15px; font-weight: 700; }
body.shun-page .flow-text p { margin: 0; color: var(--muted); font-size: 13px; line-height: 1.8; }

/* ───── 9. 導入メリット ───────────────────────────────────────────── */
body.shun-page .benefit-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 1px; background: var(--line-strong); border: 1px solid var(--line-strong); }
body.shun-page .benefit-card { background: var(--washi-card); padding: 34px 28px; transition: background .3s var(--ease-out); }
body.shun-page .benefit-card:hover { background: #fff; }
body.shun-page .benefit-icon { width: 56px; height: 56px; margin-bottom: 18px; display: block; }
body.shun-page .benefit-num { font-family: 'JetBrains Mono', monospace; font-size: 12px; color: var(--hanko-dark); margin-bottom: 16px; display: block; }
body.shun-page .benefit-card h3 { font-size: 19px; margin: 0 0 12px; font-weight: 700; }
body.shun-page .benefit-card p { font-size: 14px; color: var(--muted); }

/* ───── 10. FAQ ───────────────────────────────────────────────────── */
body.shun-page .faq-item { border-top: 1px solid var(--line); }
body.shun-page .faq-item:last-child { border-bottom: 1px solid var(--line); }
body.shun-page .faq-item summary {
	cursor: pointer; padding: 22px 0; font-size: 16px; font-weight: 700;
	display: flex; justify-content: space-between; align-items: center; list-style: none;
}
body.shun-page .faq-item summary::-webkit-details-marker { display: none; }
body.shun-page .faq-item summary::after {
	content: "+"; font-family: 'JetBrains Mono', monospace; font-size: 20px; color: var(--hanko);
	transition: transform .2s;
}
body.shun-page .faq-item[open] summary::after { transform: rotate(45deg); }
body.shun-page .faq-item p { margin: 0 0 24px; color: var(--muted); font-size: 14px; max-width: 640px; }

/* ───── 11. デモ誘導CTA（暗色チャプター・記事LPの CTA と同トーン） ── */
body.shun-page .demo-cta {
	background: var(--brand-deep); color: var(--washi); padding: 80px 0; text-align: center;
	position: relative; overflow: hidden;
}
body.shun-page .demo-cta::before {
	content: ""; position: absolute; inset: 0;
	background: radial-gradient(560px 320px at 50% 0%, rgba(201,162,39,0.14), transparent 65%);
	pointer-events: none;
}
body.shun-page .demo-cta .wrap { position: relative; }
body.shun-page .demo-cta h2 { font-size: clamp(24px,3.4vw,36px); margin: 0 0 16px; font-family: 'Shippori Mincho', serif; font-weight: 800; }
body.shun-page .demo-cta p { color: rgba(247,244,236,0.7); max-width: 520px; margin: 0 auto 32px; }
body.shun-page .demo-cta .btn-primary { background: var(--hanko); border-color: var(--hanko); }
body.shun-page .demo-cta .btn-primary:hover { background: var(--brand-gold); border-color: var(--brand-gold); color: var(--brand-deep); }

body.shun-page .price-note { text-align: center; margin-top: 28px; font-size: 13px; color: var(--muted); }

body.shun-page .cta-microcopy { display: flex; justify-content: center; flex-wrap: wrap; gap: 8px 20px; margin-top: 16px; font-size: 13px; color: rgba(247,244,236,0.75); }
body.shun-page .cta-microcopy--center { color: var(--muted); }

body.shun-page .mark-square {
	display: inline-flex; align-items: center; justify-content: center;
	width: 20px; height: 20px;
	border: 1.4px solid var(--hanko);
	border-radius: 3px;
	color: var(--hanko);
	font-family: 'Shippori Mincho', serif; font-weight: 800; font-size: 11px;
	flex-shrink: 0;
	transform: rotate(-2deg);
	vertical-align: -4px;
}
body.shun-page .cta-microcopy span { display: inline-flex; align-items: center; gap: 6px; }

/* ───── 12. フォーム ──────────────────────────────────────────────── */
body.shun-page .form-shell { display: grid; grid-template-columns: 0.9fr 1.1fr; gap: 64px; }
body.shun-page .form-side h2 { margin-bottom: 16px; }
body.shun-page .form-list { list-style: none; margin: 32px 0 0; }
body.shun-page .form-list li { display: flex; gap: 12px; padding: 14px 0; border-top: 1px solid var(--line); font-size: 14px; color: var(--ink-soft); }
body.shun-page .form-list li:first-child { border-top: none; }

/* 1-6. #demo セクション：フォーム廃止 → CTAパネルに変更したための追加スタイル */
body.shun-page .demo-cta-panel {
	background: var(--washi-card);
	border: 1px solid var(--line);
	border-radius: var(--radius);
	padding: 44px 40px;
}
@media (max-width: 640px) {
	body.shun-page .demo-cta-panel { padding: 32px 24px; }
}

body.shun-page form { display: flex; flex-direction: column; gap: 16px; }
body.shun-page .field { display: flex; flex-direction: column; gap: 6px; }
body.shun-page .field label { font-family: 'JetBrains Mono', monospace; font-size: 12px; color: var(--muted); }
body.shun-page .field input,
body.shun-page .field textarea {
	font-family: 'Zen Kaku Gothic New', sans-serif; font-size: 15px;
	padding: 13px 14px; border: 1px solid var(--line-strong); background: var(--washi-card);
	color: var(--ink); border-radius: 2px;
}
body.shun-page .field input:focus,
body.shun-page .field textarea:focus { outline: 2px solid var(--hanko); outline-offset: 1px; }
body.shun-page .field-row { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
body.shun-page .submit-btn {
	margin-top: 6px; align-self: flex-start;
	font-family: 'JetBrains Mono', monospace; font-size: 13px; letter-spacing: 0.04em;
	padding: 16px 30px; background: var(--hanko); color: #fff; border: 1px solid var(--hanko);
	cursor: pointer; transition: background .2s, transform .15s; border-radius: var(--radius);
}
body.shun-page .submit-btn:hover { background: var(--hanko-dark); transform: translateY(-2px); }
body.shun-page .form-success {
	display: none; padding: 18px; border: 1px solid var(--hanko); background: var(--hanko-soft);
	font-size: 14px; color: var(--hanko-dark); border-radius: var(--radius);
}
body.shun-page .form-success.show { display: block; }

/* フォーム手前の信頼バッジ */
body.shun-page .form-side .trust-row {
	display: flex; gap: 10px; flex-wrap: wrap; margin-top: 28px;
	padding-top: 24px; border-top: 1px solid var(--line);
}
body.shun-page .trust-badge {
	display: inline-flex; align-items: center; gap: 7px;
	font-size: 12px; color: var(--muted);
}
body.shun-page .trust-dot {
	width: 6px; height: 6px; border-radius: 50%; background: var(--hanko);
	box-shadow: 0 0 6px rgba(199,64,44,0.5);
}



/* ───── 13. FOOTER（AI×Web 経営実装 と統一：暗色チャプター） ────── */
body.shun-page footer#shun-footer {
	background: var(--brand-panel); color: var(--brand-text);
	padding: 56px 0 40px; position: relative;
	border-top: 1px solid var(--brand-line);
}
body.shun-page footer#shun-footer .wrap { max-width: var(--maxw); }
body.shun-page .footer-top {
	display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 20px;
	padding-bottom: 28px; border-bottom: 1px solid var(--brand-line); margin-bottom: 24px;
}
body.shun-page .footer-logo {
	font-family: 'Shippori Mincho', serif; font-weight: 800; font-size: 17px;
	color: var(--brand-text); display: inline-flex; align-items: center; gap: 8px;
	transition: opacity .2s;
}
body.shun-page .footer-logo:hover { opacity: .8; }
body.shun-page .footer-logo span { color: var(--brand-gold); }
body.shun-page .footer-badge {
	font-family: 'JetBrains Mono', monospace; font-size: 11px; letter-spacing: 0.08em;
	color: var(--hanko); border: 1px solid rgba(199,64,44,0.5); border-radius: 20px;
	padding: 4px 12px; display: inline-flex; align-items: center; gap: 6px;
}

/* ── フッター下段：ページトップ用バッジ（プライバシーポリシー位置） ───── */
body.shun-page .footer-badge--toTop {
	background: transparent;
	border: 1px solid rgba(199,64,44,0.5);
	color: var(--hanko);
	cursor: pointer;
	font-family: 'JetBrains Mono', monospace;
	font-size: 11px;
	letter-spacing: 0.08em;
	padding: 4px 12px;
	border-radius: 20px;
	display: inline-flex;
	align-items: center;
	gap: 6px;
	transform-origin: right center;
	transition:
		transform .35s var(--ease-out),
		background-color .3s var(--ease-out),
		color .3s var(--ease-out),
		border-color .3s var(--ease-out),
		box-shadow .3s var(--ease-out),
		letter-spacing .3s var(--ease-out),
		padding .3s var(--ease-out);
}
body.shun-page .footer-badge--toTop .kanji-mini {
	transition: background-color .3s var(--ease-out), color .3s var(--ease-out), border-color .3s var(--ease-out);
}

/* ホバー：軽い予兆（PC用） */
body.shun-page .footer-badge--toTop:hover {
	background: rgba(199,64,44,0.08);
	border-color: var(--hanko);
	box-shadow: 0 4px 14px -6px rgba(199,64,44,0.45);
}

/* クリック／タップ時：やや大きく表示が変わる状態 */
body.shun-page .footer-badge--toTop.is-active {
	transform: scale(1.18);
	background: var(--hanko);
	color: #FFFDF7;
	border-color: var(--hanko-dark);
	letter-spacing: 0.14em;
	padding: 6px 16px;
	box-shadow: 0 10px 28px -10px rgba(199,64,44,0.65);
}
body.shun-page .footer-badge--toTop.is-active .kanji-mini {
	background: #FFFDF7 !important;
	color: var(--hanko-dark);
	border-color: #FFFDF7 !important;
}

/* フォーカスリング（キーボード操作対応） */
body.shun-page .footer-badge--toTop:focus-visible {
	outline: 2px solid var(--brand-gold-light);
	outline-offset: 3px;
}

/* モーション抑制設定への配慮 */
@media (prefers-reduced-motion: reduce) {
	body.shun-page .footer-badge--toTop,
	body.shun-page .footer-badge--toTop .kanji-mini {
		transition: none;
	}
	body.shun-page .footer-badge--toTop.is-active {
		transform: none;
	}
}

body.shun-page .footer-links { display: flex; gap: 26px; flex-wrap: wrap; }
body.shun-page .footer-links a { font-size: 13px; color: var(--brand-text-dim); transition: color .2s; }
body.shun-page .footer-links a:hover { color: var(--brand-gold-light); }
body.shun-page .footer-bottom {
	display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 12px;
	font-family: 'JetBrains Mono', monospace; font-size: 12px; color: var(--brand-text-dim);
}

body.shun-page .footer-op-details { margin-top: 18px; padding-top: 14px; border-top: 1px solid var(--brand-line); }
body.shun-page .footer-op-details summary {
	cursor: pointer; list-style: none; font-size: 11px; letter-spacing: 0.06em;
	color: var(--brand-text-dim); font-family: 'JetBrains Mono', monospace;
}
body.shun-page .footer-op-details summary::-webkit-details-marker { display: none; }
body.shun-page .footer-op-details summary::before { content: "▸ "; }
body.shun-page .footer-op-details[open] summary::before { content: "▾ "; }
body.shun-page .footer-op-body { margin-top: 10px; }
body.shun-page .footer-op-body p { margin: 0 0 4px; font-size: 11px; color: var(--brand-text-dim); font-family: 'JetBrains Mono', monospace; }

body.shun-page .footer-op-contact-btn {
	display: inline-flex; align-items: center; gap: 6px;
	margin-top: 6px;
	font-family: 'JetBrains Mono', monospace; font-size: 11px; letter-spacing: 0.04em;
	color: var(--hanko);
	border: 1px solid rgba(199,64,44,0.5);
	border-radius: 20px;
	padding: 4px 12px;
	transition: background-color .2s var(--ease-out), color .2s var(--ease-out), border-color .2s var(--ease-out);
}
body.shun-page .footer-op-contact-btn:hover {
	background: var(--hanko);
	color: #FFFDF7;
	border-color: var(--hanko);
}

/* モバイル追従CTA */
body.shun-page .shun-mobile-cta {
	position: fixed; left: 0; right: 0; bottom: 0; z-index: 75;
	display: none;
	padding: 12px 16px calc(12px + env(safe-area-inset-bottom));
	background: var(--washi-card);
	border-top: 1px solid var(--line-strong);
	box-shadow: 0 -8px 24px -12px rgba(0,0,0,0.18);
	opacity: 0; transform: translateY(100%);
	transition: opacity .3s var(--ease-out), transform .3s var(--ease-out);
}
body.shun-page .shun-mobile-cta.is-visible { opacity: 1; transform: translateY(0); }

/* ───── 14. PAGETOP ───────────────────────────────────────────────── */
body.shun-page .shun-ptop {
	position: fixed; right: 22px; bottom: 22px; z-index: 70;
	width: 46px; height: 46px; border-radius: 50%;
	background: var(--ink); color: var(--washi);
	border: 1px solid rgba(247,244,236,0.2);
	display: flex; align-items: center; justify-content: center;
	cursor: pointer; opacity: 0; transform: translateY(10px) scale(.9);
	pointer-events: none;
	transition: opacity .3s var(--ease-out), transform .3s var(--ease-out), background .2s;
}
body.shun-page .shun-ptop.is-visible { opacity: 1; transform: translateY(0) scale(1); pointer-events: auto; }
body.shun-page .shun-ptop:hover { background: var(--hanko); }
body.shun-page .shun-ptop svg { width: 18px; height: 18px; }

/* ───── 15. スクロールリビール（前進感の演出） ───────────────────── */
body.shun-page .reveal {
	opacity: 0; transform: translateY(22px);
	transition: opacity .8s var(--ease-out), transform .8s var(--ease-out);
}
body.shun-page .reveal.in { opacity: 1; transform: translateY(0); }
body.shun-page .reveal-stagger.in > * { transition-delay: calc(var(--i, 0) * 70ms); }

/* ───── 16. RESPONSIVE ────────────────────────────────────────────── */
@media (max-width:860px){
	body.shun-page .hero-grid,
	body.shun-page .why-grid,
	body.shun-page .form-shell { grid-template-columns: 1fr; }
	body.shun-page .ba-grid { grid-template-columns: 1fr; }
	body.shun-page .benefit-grid { grid-template-columns: 1fr; }
	body.shun-page .op-grid { grid-template-columns: 1fr; }
	body.shun-page .case-grid { grid-template-columns: 1fr; }
	body.shun-page .hero-stats { gap: 28px; }
	body.shun-page .field-row { grid-template-columns: 1fr; }
	body.shun-page section { padding: 64px 0; }
	body.shun-page .stamp-anim { width: 64px; height: 64px; font-size: 26px; top: -20px; right: 0; }
	body.shun-page .flow-steps { grid-template-columns: 1fr; }
	body.shun-page .footer-top { flex-direction: column; align-items: flex-start; }
	body.shun-page .shun-mobile-cta { display: block; }
	body.shun-page footer#shun-footer { padding-bottom: 96px; }
}
@media (max-width:720px){
	body.shun-page .wrap { padding: 0 20px; }
	body.shun-page .shun-ptop { right: 14px; bottom: 14px; width: 42px; height: 42px; }
	body.shun-page .footer-bottom { gap: 14px; }
	body.shun-page .footer-badge--toTop { align-self: flex-start; }

	body.shun-page .blk {
		/* SP：8枚 × 12msオフセット = 最大84ms delay を含めても
		   84 + 550 = 634ms で完了。resetBlocks()の750ms書き戻しに対し
		   116msの安全マージンを確保する（iOS Safariの7フレーム分）。 */
		transition: opacity .55s var(--ease-out), transform .55s var(--ease-out);
		/* SPでも transform を GPU で処理させる（opacityとセットで合成レイヤー化） */
		will-change: opacity, transform;
		transform: translate3d(0, 6px, 0);
	}
	body.shun-page .blk.show {
		transition: opacity .38s var(--ease-out), transform .38s var(--ease-out);
		transform: translate3d(0, 0, 0);
	}

	body.shun-page .stamp-anim {
		will-change: transform, opacity;
	}
	body.shun-page #statusLabel {
		will-change: opacity;
		display: inline-block;              /* 文字幅変化のリフローを局所化 */
		min-width: 9em;                     /* 「生成準備中…」「公開完了」「生成中… N / 8」で幅変動を最小化 */
	}
	body.shun-page #statusTime {
		display: inline-block;
		min-width: 4.2em;                   /* 「00:00」で確保、桁数変動によるリフロー抑制 */
		text-align: right;
	}
}


@media (prefers-reduced-motion: reduce) {
	body.shun-page *,
	body.shun-page *::before,
	body.shun-page *::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
		scroll-behavior: auto !important;
	}
}

/* ═════════════════════════════════════════════════════════════════════
 *  27. CTA FORM MODAL & PRIVACY POLICY PANEL（新規追加）
 *  ai-web-smb.css の同名ブロックを移植し、body.aiwebsmb-page を
 *  body.shun-page に置換したもの。クラス名（.aiws-*）は smb 側および
 *  CF7 側のマークアップ（[acceptance ... class:aiws-accept-check] 等）
 *  と完全に一致させるため、あえてそのまま踏襲している。
 * ═════════════════════════════════════════════════════════════════════ */

/* ───── 2-x. CF7モーダル／PPパネル用 変数エイリアス ─────────────────
 * ai-web-smb.css のモーダルブロックをそのまま移植するための互換変数。
 * 値は新規に決め打ちせず、既存の --brand-*（ヘッダー／フッターと共通の
 * 暗色チャプタートークン）と --hanko / --radius を参照するだけに留める。
 * これにより、モーダルの見た目は「AI×Web 経営実装」と統一されたまま、
 * 瞬 SHUN PROJECT 側の配色ソースは一切増やさない。
 * ────────────────────────────────────────────────────────────── */
body.shun-page {
	--bg-card:     var(--brand-panel);
	--border:      var(--brand-line);
	--border-2:    rgba(247,244,236,0.22);
	--border-gold: rgba(201,162,39,0.30);

	--gold:        var(--brand-gold);
	--gold-light:  var(--brand-gold-light);
	--gold-dim:    rgba(201,162,39,0.15);

	--green:       #10B981;
	--green-dim:   rgba(16,185,129,0.15);
	--red:         var(--hanko);

	--text-1:      var(--brand-text);
	--text-2:      var(--brand-text-dim);
	--text-3:      rgba(247,244,236,0.35);

	--r-btn:       var(--radius);
	--sans:        'Zen Kaku Gothic New', 'Hiragino Sans', sans-serif;
	--serif:       'Shippori Mincho', serif;
	--t-fast:      260ms var(--ease-out);
}

/* ═════════════════════════════════════════════════════════════════════
 *  27. FORM MODAL & PRIVACY POLICY PANEL  ―  v1.2.0
 *  このブロックは CF7 モーダル改修（2026-06）で追加された純粋な追記レイヤー。
 *  ロールバックする場合は本ブロックを丸ごと削除すること。
 * ═════════════════════════════════════════════════════════════════════ */

/* ───── 27-1. モーダルオーバーレイ ──────────────────────────────── */
body.shun-page .aiws-modal-overlay {
	position: fixed;
	inset: 0;
	z-index: 2000;
	background: rgba(4,6,15,0.82);
	backdrop-filter: blur(8px);
	-webkit-backdrop-filter: blur(8px);
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 16px;
	opacity: 0;
	pointer-events: none;
	transition: opacity 280ms var(--ease-out);
}
body.shun-page .aiws-modal-overlay.is-open {
	opacity: 1;
	pointer-events: auto;
}

/* ───── 27-2. モーダルラッパー ──────────────────────────────────── */
body.shun-page .aiws-modal-wrap {
	position: relative;
	width: 100%;
	max-width: 600px;
	max-height: 90vh;
	background: var(--bg-card);
	border: 1px solid var(--border-gold);
	border-radius: 24px;
	box-shadow: 0 40px 100px -20px rgba(0,0,0,0.85), 0 0 60px rgba(240,165,0,0.1);
	overflow: hidden;
	display: flex;
	flex-direction: column;
	transform: translateY(24px);
	transition: transform 320ms var(--ease-out);
}
body.shun-page .aiws-modal-overlay.is-open .aiws-modal-wrap {
	transform: translateY(0);
}

/* ───── 27-3. モーダルヘッダー ──────────────────────────────────── */
body.shun-page .aiws-modal-header {
	padding: 32px 36px 24px;
	border-bottom: 1px solid var(--border);
	flex-shrink: 0;
}
body.shun-page .aiws-modal-title {
	font-family: var(--serif);
	font-size: clamp(1.25rem, 3vw, 1.65rem);
	font-weight: 700;
	line-height: 1.35;
	color: var(--text-1);
	margin: 10px 0 8px;
}
body.shun-page .aiws-modal-subtitle {
	font-size: 0.8rem;
	color: var(--gold);
	font-weight: 700;
	letter-spacing: 0.06em;
}

/* ───── 27-4. 閉じるボタン ───────────────────────────────────────── */
body.shun-page .aiws-modal-close {
	position: absolute;
	top: 16px;
	right: 16px;
	width: 36px;
	height: 36px;
	background: rgba(255,255,255,0.07);
	border: 1px solid var(--border);
	border-radius: 50%;
	color: var(--text-2);
	font-size: 1rem;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	transition: background var(--t-fast), color var(--t-fast), transform var(--t-fast);
	z-index: 10;
}
body.shun-page .aiws-modal-close:hover {
	background: rgba(255,255,255,0.14);
	color: var(--text-1);
	transform: scale(1.1);
}

/* ───── 27-5. フォーム本体エリア ────────────────────────────────── */
body.shun-page .aiws-modal-form-body {
	padding: 28px 36px 36px;
	overflow-y: auto;
	flex: 1;
	overscroll-behavior: contain;
}
@media (max-width: 520px) {
	body.shun-page .aiws-modal-header { padding: 24px 20px 18px; }
	body.shun-page .aiws-modal-form-body { padding: 20px 20px 28px; }
}

/* ───── 27-6. PPスライドパネル ──────────────────────────────────── */
body.shun-page .aiws-pp-panel {
	position: absolute;
	inset: 0;
	background: var(--bg-card);
	display: flex;
	flex-direction: column;
	z-index: 5;
	transform: translateX(100%);
	transition: transform 320ms var(--ease-out);
}
body.shun-page .aiws-pp-panel.is-open {
	transform: translateX(0);
}
body.shun-page .aiws-pp-panel-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 20px 24px;
	border-bottom: 1px solid var(--border);
	flex-shrink: 0;
}
body.shun-page .aiws-pp-panel-back {
	background: none;
	border: 1px solid var(--border);
	border-radius: 8px;
	color: var(--text-2);
	font-size: 0.82rem;
	padding: 6px 14px;
	cursor: pointer;
	transition: border-color var(--t-fast), color var(--t-fast);
}
body.shun-page .aiws-pp-panel-back:hover {
	border-color: var(--gold);
	color: var(--gold);
}
body.shun-page .aiws-pp-panel-body {
	flex: 1;
	overflow-y: auto;
	padding: 24px;
	overscroll-behavior: contain;
}
body.shun-page .aiws-pp-content {
	font-size: 0.9rem;
	line-height: 1.9;
	color: var(--text-2);
}
body.shun-page .aiws-pp-content h3 {
	font-family: var(--serif);
	font-size: 1.05rem;
	color: var(--text-1);
	margin: 0 0 16px;
}
body.shun-page .aiws-pp-content p,
body.shun-page .aiws-pp-content ul { margin-bottom: 16px; }
body.shun-page .aiws-pp-content li { padding-left: 1.2em; list-style: disc; }
body.shun-page .aiws-pp-panel-footer {
	padding: 16px 24px 24px;
	border-top: 1px solid var(--border);
	flex-shrink: 0;
}


/* ═══════════════════════════════════════════════════════════════════
 *  27-6b. PRIVACY POLICY ―― 本番版エディトリアルデザイン
 *  Design : Editorial × Aurora × Dark Gold（2026 Production Edition）
 *  Scope  : .aiws-pp-content--v2 配下のみ
 * ═══════════════════════════════════════════════════════════════════ */

/* ───── パネル本体の余白を最適化（v2のみ） ─────────────────────────── */
body.shun-page .aiws-pp-panel-body:has(.aiws-pp-content--v2) {
	padding: 0;
	background:
		radial-gradient(ellipse at top, rgba(240,165,0,0.05) 0%, transparent 55%),
		var(--bg-card);
}

/* ───── スクロールバーの装飾 ─────────────────────────────────────── */
body.shun-page .aiws-pp-panel-body:has(.aiws-pp-content--v2)::-webkit-scrollbar {
	width: 8px;
}
body.shun-page .aiws-pp-panel-body:has(.aiws-pp-content--v2)::-webkit-scrollbar-track {
	background: transparent;
}
body.shun-page .aiws-pp-panel-body:has(.aiws-pp-content--v2)::-webkit-scrollbar-thumb {
	background: linear-gradient(180deg, var(--gold-dim), rgba(240,165,0,0.05));
	border-radius: 999px;
}
body.shun-page .aiws-pp-panel-body:has(.aiws-pp-content--v2)::-webkit-scrollbar-thumb:hover {
	background: linear-gradient(180deg, var(--gold), var(--gold-dim));
}

/* ───── コンテンツルート ─────────────────────────────────────────── */
body.shun-page .aiws-pp-content--v2 {
	font-size: 0.92rem;
	line-height: 1.95;
	color: var(--text-2);
	padding: 0;
	letter-spacing: 0.02em;
}

/* ───── ヒーローエリア ──────────────────────────────────────────── */
body.shun-page .aiws-pp-hero {
	position: relative;
	padding: 56px 32px 44px;
	text-align: center;
	border-bottom: 1px solid var(--border);
	overflow: hidden;
	isolation: isolate;
}
body.shun-page .aiws-pp-hero-deco {
	position: absolute;
	inset: 0;
	z-index: -1;
	background:
		radial-gradient(ellipse 60% 80% at 50% 0%, rgba(240,165,0,0.12) 0%, transparent 70%),
		linear-gradient(180deg, rgba(240,165,0,0.04) 0%, transparent 100%);
	pointer-events: none;
}
body.shun-page .aiws-pp-hero-deco::before {
	content: '';
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	width: 240px;
	height: 240px;
	border-radius: 50%;
	background: radial-gradient(circle, rgba(240,165,0,0.08) 0%, transparent 60%);
	filter: blur(20px);
}
body.shun-page .aiws-pp-hero-eyebrow {
	font-family: 'Inter', sans-serif;
	font-size: 0.7rem;
	font-weight: 600;
	letter-spacing: 0.45em;
	color: var(--gold);
	margin: 0 0 16px;
	text-transform: uppercase;
}
body.shun-page .aiws-pp-hero-title {
	font-family: var(--serif);
	font-size: 1.7rem;
	font-weight: 600;
	color: var(--text-1);
	margin: 0 0 24px;
	letter-spacing: 0.04em;
	background: linear-gradient(180deg, #FFFFFF 0%, #D0D5E0 100%);
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
	line-height: 1.4;
}
body.shun-page .aiws-pp-hero-title::after {
	content: '';
	display: block;
	width: 48px;
	height: 1px;
	background: linear-gradient(90deg, transparent, var(--gold), transparent);
	margin: 20px auto 0;
}
body.shun-page .aiws-pp-hero-lead {
	font-size: 0.88rem;
	line-height: 2;
	color: var(--text-2);
	max-width: 540px;
	margin: 0 auto;
}
body.shun-page .aiws-pp-hero-lead-em {
	display: inline-block;
	margin-top: 8px;
	color: var(--gold-light);
	font-weight: 500;
	letter-spacing: 0.05em;
}

/* ───── 条文リスト（ol）─────────────────────────────────────────── */
body.shun-page .aiws-pp-articles {
	list-style: none;
	padding: 32px 28px 12px;
	margin: 0;
	counter-reset: none;
}

/* ───── 各条文 ───────────────────────────────────────────────────── */
body.shun-page .aiws-pp-article {
	display: grid;
	grid-template-columns: 56px 1fr;
	gap: 20px;
	padding: 28px 0;
	border-bottom: 1px dashed var(--border);
	position: relative;
	transition: border-color var(--t-fast);
}
body.shun-page .aiws-pp-article:last-child {
	border-bottom: none;
}
body.shun-page .aiws-pp-article:hover {
	border-bottom-color: var(--border-gold);
}

/* ───── 条文ナンバー ────────────────────────────────────────────── */
body.shun-page .aiws-pp-article-num {
	display: flex;
	align-items: flex-start;
	justify-content: center;
	padding-top: 2px;
}
body.shun-page .aiws-pp-article-num span {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	border-radius: 50%;
	border: 1px solid var(--border-gold);
	background:
		radial-gradient(circle at 30% 30%, rgba(240,165,0,0.18), transparent 70%),
		var(--bg-card);
	font-family: var(--serif);
	font-size: 0.95rem;
	font-weight: 600;
	color: var(--gold);
	letter-spacing: 0.05em;
	box-shadow:
		0 0 0 4px rgba(240,165,0,0.04),
		inset 0 0 12px rgba(240,165,0,0.08);
	transition: transform var(--t-fast), box-shadow var(--t-fast);
}
body.shun-page .aiws-pp-article:hover .aiws-pp-article-num span {
	transform: scale(1.06);
	box-shadow:
		0 0 0 6px rgba(240,165,0,0.06),
		inset 0 0 14px rgba(240,165,0,0.14);
}

/* ───── 条文ボディ ──────────────────────────────────────────────── */
body.shun-page .aiws-pp-article-body {
	min-width: 0;
}
body.shun-page .aiws-pp-article-title {
	font-family: var(--serif);
	font-size: 1.05rem;
	font-weight: 600;
	color: var(--text-1);
	margin: 0 0 14px;
	letter-spacing: 0.03em;
	line-height: 1.5;
	padding-bottom: 10px;
	border-bottom: 1px solid var(--border);
	position: relative;
}
body.shun-page .aiws-pp-article-title::before {
	content: '';
	position: absolute;
	left: 0;
	bottom: -1px;
	width: 32px;
	height: 1px;
	background: var(--gold);
}
body.shun-page .aiws-pp-article-body p {
	font-size: 0.88rem;
	line-height: 1.95;
	color: var(--text-2);
	margin: 0 0 12px;
}
body.shun-page .aiws-pp-article-body p:last-child {
	margin-bottom: 0;
}
body.shun-page .aiws-pp-article-body strong {
	color: var(--text-1);
	font-weight: 600;
}

/* ───── 条文内リスト ────────────────────────────────────────────── */
body.shun-page .aiws-pp-list {
	list-style: none;
	padding: 0;
	margin: 14px 0 16px;
}
body.shun-page .aiws-pp-list li {
	position: relative;
	padding: 10px 12px 10px 32px;
	font-size: 0.87rem;
	line-height: 1.85;
	color: var(--text-2);
	background: rgba(255,255,255,0.015);
	border-left: 2px solid var(--border-gold);
	margin-bottom: 6px;
	border-radius: 0 6px 6px 0;
	transition: background var(--t-fast), border-color var(--t-fast);
}
body.shun-page .aiws-pp-list li:hover {
	background: rgba(240,165,0,0.04);
	border-left-color: var(--gold);
}
body.shun-page .aiws-pp-list li::before {
	content: '';
	position: absolute;
	left: 14px;
	top: 18px;
	width: 6px;
	height: 6px;
	border-radius: 50%;
	background: var(--gold);
	box-shadow: 0 0 8px rgba(240,165,0,0.5);
}

/* ───── 重要条文（第2条）のハイライト ─────────────────────────────── */
body.shun-page .aiws-pp-article--highlight {
	background: linear-gradient(135deg, rgba(240,165,0,0.04) 0%, transparent 60%);
	border-radius: 12px;
	padding: 28px 20px;
	margin: 8px -20px;
	border-bottom: 1px solid var(--border-gold) !important;
}
body.shun-page .aiws-pp-article--highlight .aiws-pp-article-num span {
	background:
		radial-gradient(circle at 30% 30%, rgba(240,165,0,0.35), transparent 70%),
		var(--bg-card);
	border-color: var(--gold);
	color: var(--gold-light);
	box-shadow:
		0 0 0 4px rgba(240,165,0,0.08),
		0 0 20px rgba(240,165,0,0.2),
		inset 0 0 14px rgba(240,165,0,0.15);
}

/* ───── コールアウト（第2条強調ブロック） ─────────────────────────── */
body.shun-page .aiws-pp-callout {
	display: flex;
	align-items: flex-start;
	gap: 14px;
	padding: 18px 20px;
	margin: 16px 0;
	background:
		linear-gradient(135deg, rgba(240,165,0,0.10) 0%, rgba(240,165,0,0.02) 100%);
	border: 1px solid var(--border-gold);
	border-radius: 10px;
	position: relative;
	overflow: hidden;
}
body.shun-page .aiws-pp-callout::before {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	width: 3px;
	height: 100%;
	background: linear-gradient(180deg, var(--gold), var(--gold-dim));
}
body.shun-page .aiws-pp-callout-icon {
	flex-shrink: 0;
	width: 24px;
	height: 24px;
	color: var(--gold);
	margin-top: 2px;
	filter: drop-shadow(0 0 6px rgba(240,165,0,0.4));
}
body.shun-page .aiws-pp-callout p {
	margin: 0 !important;
	font-size: 0.9rem !important;
	line-height: 1.85 !important;
	color: var(--text-1) !important;
}
body.shun-page .aiws-pp-callout strong {
	color: var(--gold-light) !important;
	font-weight: 600;
	letter-spacing: 0.02em;
}

/* ───── お問い合わせ窓口カード（第7条） ──────────────────────────── */
body.shun-page .aiws-pp-contact-card {
	margin-top: 16px;
	padding: 24px 24px 22px;
	background:
		linear-gradient(135deg, rgba(14,20,37,0.6) 0%, rgba(14,20,37,0.3) 100%),
		radial-gradient(ellipse at top right, rgba(240,165,0,0.06), transparent 60%);
	border: 1px solid var(--border-2);
	border-radius: 12px;
	position: relative;
	overflow: hidden;
}
body.shun-page .aiws-pp-contact-card::before {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	height: 1px;
	background: linear-gradient(90deg, transparent, var(--gold), transparent);
}
body.shun-page .aiws-pp-contact-label {
	font-family: 'Inter', sans-serif;
	font-size: 0.68rem !important;
	font-weight: 600;
	letter-spacing: 0.3em;
	color: var(--gold) !important;
	text-transform: none;
	margin: 0 0 16px !important;
	padding-bottom: 12px;
	border-bottom: 1px dashed var(--border-gold);
	text-align: center;
}
body.shun-page .aiws-pp-contact-company {
	font-family: var(--serif) !important;
	font-size: 1.25rem !important;
	font-weight: 600;
	color: var(--text-1) !important;
	letter-spacing: 0.12em;
	margin: 0 0 4px !important;
	line-height: 1.4 !important;
	text-align: center;
}
body.shun-page .aiws-pp-contact-brand {
	font-family: var(--serif) !important;
	font-size: 0.95rem !important;
	color: var(--gold-light) !important;
	letter-spacing: 0.15em;
	margin: 0 0 14px !important;
	line-height: 1.4 !important;
	text-align: center;
}
body.shun-page .aiws-pp-contact-address {
	font-size: 0.85rem !important;
	color: var(--text-2) !important;
	margin: 0 0 12px !important;
	line-height: 1.6 !important;
	text-align: center;
}
body.shun-page .aiws-pp-contact-email {
	margin: 0 !important;
	text-align: center;
}
body.shun-page .aiws-pp-contact-email a {
	display: inline-block;
	font-family: 'Inter', sans-serif;
	font-size: 0.9rem;
	color: var(--gold-light);
	text-decoration: none;
	padding: 8px 18px;
	border: 1px solid var(--border-gold);
	border-radius: 999px;
	background: rgba(240,165,0,0.05);
	letter-spacing: 0.04em;
	transition:
		background var(--t-fast),
		border-color var(--t-fast),
		color var(--t-fast),
		transform var(--t-fast);
}
body.shun-page .aiws-pp-contact-email a:hover {
	background: var(--gold);
	border-color: var(--gold);
	color: #04060F;
	transform: translateY(-1px);
	box-shadow: 0 6px 18px rgba(240,165,0,0.25);
}

/* ───── フッターメタ（制定日） ───────────────────────────────────── */
body.shun-page .aiws-pp-footer-meta {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 18px;
	padding: 36px 28px 48px;
	margin-top: 12px;
}
body.shun-page .aiws-pp-footer-line {
	flex: 1;
	max-width: 80px;
	height: 1px;
	background: linear-gradient(90deg, transparent, var(--border-gold), transparent);
}
body.shun-page .aiws-pp-footer-date {
	font-family: var(--serif);
	font-size: 0.82rem;
	color: var(--text-2);
	letter-spacing: 0.15em;
	margin: 0;
	white-space: nowrap;
}

/* ───── レスポンシブ（モバイル最適化） ───────────────────────────── */
@media (max-width: 600px) {
	body.shun-page .aiws-pp-hero {
		padding: 40px 20px 32px;
	}
	body.shun-page .aiws-pp-hero-title {
		font-size: 1.4rem;
	}
	body.shun-page .aiws-pp-hero-lead {
		font-size: 0.82rem;
		line-height: 1.9;
	}
	body.shun-page .aiws-pp-articles {
		padding: 24px 18px 8px;
	}
	body.shun-page .aiws-pp-article {
		grid-template-columns: 44px 1fr;
		gap: 14px;
		padding: 22px 0;
	}
	body.shun-page .aiws-pp-article-num span {
		width: 36px;
		height: 36px;
		font-size: 0.82rem;
	}
	body.shun-page .aiws-pp-article-title {
		font-size: 0.98rem;
	}
	body.shun-page .aiws-pp-article--highlight {
		padding: 22px 14px;
		margin: 8px -14px;
	}
	body.shun-page .aiws-pp-callout {
		padding: 14px 16px;
		gap: 10px;
	}
	body.shun-page .aiws-pp-callout-icon {
		width: 20px;
		height: 20px;
	}
	body.shun-page .aiws-pp-list li {
		padding: 8px 10px 8px 28px;
		font-size: 0.84rem;
	}
	body.shun-page .aiws-pp-contact-card {
		padding: 20px 18px 18px;
	}
	body.shun-page .aiws-pp-contact-company {
		font-size: 1.12rem !important;
	}
	body.shun-page .aiws-pp-footer-meta {
		padding: 28px 20px 36px;
		gap: 12px;
	}
	body.shun-page .aiws-pp-footer-line {
		max-width: 50px;
	}
}

/* ───── アクセシビリティ：減アニメ環境 ──────────────────────────── */
@media (prefers-reduced-motion: reduce) {
	body.shun-page .aiws-pp-article,
	body.shun-page .aiws-pp-article-num span,
	body.shun-page .aiws-pp-list li,
	body.shun-page .aiws-pp-contact-email a {
		transition: none !important;
	}
	body.shun-page .aiws-pp-contact-email a:hover {
		transform: none;
	}
}

/* ───── 27-7. CF7 フォームスタイル（モーダル内） ─────────────────── */
/* ラベル */
body.shun-page .aiws-modal-form-body .wpcf7-form label {
	display: block;
	font-size: 0.88rem;
	font-weight: 500;
	color: var(--text-2);
	margin-bottom: 18px;
}
/* テキスト入力・テキストエリア・電話 */
body.shun-page .aiws-modal-form-body .wpcf7-form input[type="text"],
body.shun-page .aiws-modal-form-body .wpcf7-form input[type="email"],
body.shun-page .aiws-modal-form-body .wpcf7-form input[type="tel"],
body.shun-page .aiws-modal-form-body .wpcf7-form textarea {
	display: block;
	width: 100%;
	margin-top: 6px;
	padding: 13px 16px;
	background: rgba(255,255,255,0.05);
	border: 1px solid var(--border);
	border-radius: 10px;
	color: var(--text-1);
	font-size: 0.95rem;
	font-family: var(--sans);
	line-height: 1.6;
	transition: border-color var(--t-fast), background var(--t-fast);
}
body.shun-page .aiws-modal-form-body .wpcf7-form input:focus,
body.shun-page .aiws-modal-form-body .wpcf7-form textarea:focus {
	outline: none;
	border-color: var(--gold);
	background: rgba(240,165,0,0.04);
}
body.shun-page .aiws-modal-form-body .wpcf7-form textarea {
	min-height: 110px;
	resize: vertical;
}
/* バリデーションエラー */
body.shun-page .aiws-modal-form-body .wpcf7-not-valid {
	border-color: var(--red) !important;
}
body.shun-page .aiws-modal-form-body .wpcf7-not-valid-tip {
	font-size: 0.78rem;
	color: var(--red);
	display: block;
	margin-top: 4px;
}
/* 送信結果メッセージ */
body.shun-page .aiws-modal-form-body .wpcf7-response-output {
	margin: 14px 0 0;
	padding: 12px 16px;
	border-radius: 10px;
	font-size: 0.88rem;
	border: 1px solid var(--border);
	color: var(--text-2);
}
body.shun-page .aiws-modal-form-body .wpcf7-mail-sent-ok {
	border-color: var(--green);
	background: var(--green-dim);
	color: var(--green);
}
body.shun-page .aiws-modal-form-body .wpcf7-validation-errors,
body.shun-page .aiws-modal-form-body .wpcf7-mail-sent-ng {
	border-color: var(--red);
	background: rgba(240,79,90,0.08);
	color: var(--red);
}

/* CF7 acceptance の入れ子構造を全階層flex化し、確実に1行で並べる */
body.shun-page .aiws-accept-wrap .wpcf7-form-control-wrap,
body.shun-page .aiws-accept-wrap .wpcf7-acceptance,
body.shun-page .aiws-accept-wrap .wpcf7-list-item {
	display: inline-flex;
	align-items: center;
	width: auto;
	margin: 0;
	padding: 0;
	vertical-align: middle;
}

body.shun-page .aiws-accept-wrap label {
	display: inline-flex;
	align-items: center;
	justify-content: flex-start;
	gap: 8px;
	cursor: pointer;
	margin: 0;
	white-space: nowrap; /* ラベル文言の折り返しを防止 */
}

body.shun-page .aiws-accept-wrap input[type="checkbox"] {
	margin: 0;
	padding: 0;
	flex-shrink: 0;
}

body.shun-page .aiws-accept-wrap .wpcf7-list-item-label {
	line-height: 1.4;
	display: inline-block;
	white-space: normal; /* 極端に狭い画面のみテキストは折り返し可 */
}

/* ───── 27-8. PPチェック行 ──────────────────────────────────────── */
body.shun-page .aiws-pp-row {
	margin-top: 22px;
	padding: 18px 20px;
	background: rgba(255,255,255,0.03);
	border: 1px solid var(--border);
	border-radius: 12px;
}
body.shun-page .aiws-pp-notice {
	font-size: 0.85rem;
	color: var(--text-3);
	margin-bottom: 12px;
}
body.shun-page .aiws-pp-open-btn {
	background: none;
	border: none;
	color: var(--gold);
	font-size: 0.85rem;
	font-weight: 700;
	text-decoration: underline;
	cursor: pointer;
	padding: 0;
	font-family: var(--sans);
}
body.shun-page .aiws-pp-open-btn:hover { opacity: 0.75; }
body.shun-page .aiws-accept-wrap {
	display: flex;
	flex-wrap: nowrap;        /* チェックボックスとテキストを必ず同一行に */
	align-items: center;
	gap: 8px;
	font-size: 0.88rem;
	color: var(--text-2);
	width: 100%;
}

body.shun-page .aiws-accept-check input[type="checkbox"] {
	width: 18px;
	height: 18px;
	accent-color: var(--gold);
	cursor: pointer;
	flex-shrink: 0;
}

/* ───── 27-9. 送信ボタン（CF7内 .entry-button） ───────────────── */
body.shun-page .aiws-modal-form-body .wpcf7-form .wpcf7-submit.entry-button {
	display: block;
	width: 100%;
	margin-top: 20px;
	padding: 16px 24px;
	background: linear-gradient(135deg, var(--gold), var(--gold-light));
	color: #0A0600;
	font-family: var(--sans);
	font-size: 1rem;
	font-weight: 700;
	border: none;
	border-radius: var(--r-btn);
	cursor: pointer;
	box-shadow: 0 8px 30px -10px rgba(240,165,0,0.45);
	transition: transform var(--t-fast), box-shadow var(--t-base);
	letter-spacing: 0.01em;
}
body.shun-page .aiws-modal-form-body .wpcf7-form .wpcf7-submit.entry-button:hover {
	transform: translateY(-2px);
	box-shadow: 0 14px 40px -10px rgba(240,165,0,0.55);
}
body.shun-page .aiws-modal-form-body .wpcf7-form .wpcf7-submit.entry-button:disabled {
	opacity: 0.45;
	cursor: not-allowed;
	transform: none;
}

/* ───── 27-10. スピナー（CF7送信中） ───────────────────────────── */
body.shun-page .aiws-modal-form-body .wpcf7-spinner {
	display: none;
}


/* ───── 27-13. モーダル内 .eyebrow のダーク面対応（新規追加） ─────
 * 通常の .eyebrow は和紙（明色）セクション前提の配色のため、
 * 暗色チャプターであるモーダル内だけ配色を上書きする。 */
body.shun-page .aiws-modal-header .eyebrow,
body.shun-page .aiws-pp-panel-header .eyebrow {
	color: var(--brand-gold-light);
	margin-bottom: 0;
}

/* ───── 27-14. PP「確認しました」ボタン（新規追加） ───────────── */
body.shun-page .aiws-pp-confirm-btn {
	font-family: 'JetBrains Mono', monospace;
	font-size: 13px;
	letter-spacing: 0.04em;
	background: var(--brand-gold);
	color: var(--brand-deep);
	border: 1px solid var(--brand-gold);
	border-radius: var(--radius);
	padding: 15px 26px;
	cursor: pointer;
	transition: background .2s, transform .15s;
}
body.shun-page .aiws-pp-confirm-btn:hover {
	background: var(--brand-gold-light);
	transform: translateY(-1px);
}

/* ───── 27-15. デモ予約セクションのCTAパネル（新規追加） ───────── */
body.shun-page .demo-cta-panel {
	background: var(--washi-card);
	border: 1px solid var(--line);
	border-radius: var(--radius);
	padding: 44px 40px;
}
@media (max-width: 640px) {
	body.shun-page .demo-cta-panel { padding: 32px 24px; }
}
