@charset "UTF-8";
/* ============================================================================
 * イザマチLP v4 — cocoro の構造 × イザマチのカラートークン
 * 対象: /izamachi/index.html のみ。main.css の後に読み込む。
 *
 * 構造の出典: ~/design-docs/cocoro-guideline/（https://musashinitta-cocoro.com/ の実測）
 * 色の出典  : イザマチ原版の既存トークン（izamachi/assets/renewal.css と main.css）
 *             **新しい色をひとつも作っていない。** 出典は §1 のコメントに行番号で記す。
 * ガイドラインの §9（既知の欠陥）A-01〜A-08 は直して当てている。該当箇所に ※A-xx。
 * ========================================================================== */

/* ---------------------------------------------------------------------------
 * 0. rem のはしご（GUIDELINE 1.2）
 *    原典は 62.5 / 56.5 / 40.5 / 30.5% の4段だが、下2段は本文が 10.4px / 7.8px に
 *    なるため 56.5% で止め、1023px 以下は SP レイアウトへ落とす ※A-01
 * ------------------------------------------------------------------------- */
html:has(body.izamachi-v4) { font-size: 62.5%; }
@media screen and (min-width: 1024px) and (max-width: 1439px) {
	html:has(body.izamachi-v4) { font-size: 56.5%; }
}
@media screen and (max-width: 1023px) {
	html:has(body.izamachi-v4) { font-size: 62.5%; }
}

/* ---------------------------------------------------------------------------
 * 1. トークン
 *
 *    cocoro の役割 → イザマチのトークン への割り当て。括弧内は実測コントラスト。
 *
 *    | cocoro            | v4        | 値      | 原版での出典                         |
 *    |-------------------|-----------|---------|--------------------------------------|
 *    | navy   #395CA3    | ink       | #3A2B00 | renewal.css L148 .izmt-start の文字色 |
 *    | sky    #77AFD9    | gold      | #F5C842 | renewal.css L9  --izy                 |
 *    | （hover）         | gold-deep | #F0B400 | renewal.css L10 --izy-d               |
 *    | sky-strong #3A79AE| gold-dark | #7A5B00 | renewal.css L81/L600 強調文字         |
 *    | page   #DDEBF3    | page      | #FDF4D6 | renewal.css L578 #izmt-steps-sec 地   |
 *    | section#EEF5F9    | section   | #FAF7EF | renewal.css L324 #izmt-ui-sec 地      |
 *    | circle #E9F2F7    | circle    | #FFFBEF | main.css .cta-tel 地                  |
 *    | line   #C9DFF0    | line      | #E3DCC4 | renewal.css L797 sticky の枠          |
 *    | yellow #FFE100    | （無し）  | —       | ※下の「立たせる役」を参照            |
 *
 *    ■ 青→金で構造が変わる唯一の点
 *      cocoro は「淡い青の地」に「黄」を置いて、色相差で立たせていた。
 *      単一色相のゴールド系では色相差が使えず、gold は地からほとんど立たない
 *      （#F5C842 on #FDF4D6 = 1.44、on 白 = 1.59）。
 *      そこで「立たせる役」は濃色 ink #3A2B00 が担う（on #FDF4D6 = 12.51）。
 *      ただし ink は本文色でもあるので、cocoro の黄のように「2箇所まで」とは縛れない。
 *      縛れるのは**大きな ink の面**のほうで、ここでは 2 つに絞った
 *      （ヒーローの主 CTA 円 と SOLUTION のパネル）。
 *      結果として、cocoro より濃色の露出が増える。これは色相差が使えないことの帰結。
 *
 *    ■ トークンが1つ減った点
 *      cocoro の sky は白文字 2.35 / 濃文字 2.76 でどちらも載らず、
 *      文字を載せるための追加色 #3A79AE が要った（A-02）。
 *      gold は暗文字で 8.67 出るので、装飾と「文字を載せる面」を1色で兼ねられる。
 * ------------------------------------------------------------------------- */
body.izamachi-v4 {
	--ink: #3A2B00;        /* 本文・見出し・濃い面。淡地で 12.51〜13.77:1 */
	--gold: #F5C842;       /* 面と装飾。ink 文字で 8.67:1 */
	--gold-deep: #F0B400;  /* hover と装飾の点。ink 文字で 7.36:1 */
	--gold-dark: #7A5B00;  /* 淡地に置くゴールド系の文字。5.74〜6.32:1 */
	--page: #FDF4D6;       /* ページの地。白比 1.10 */
	--section: #FAF7EF;    /* セクションの地。白比 1.07 */
	--circle: #FFFBEF;     /* 背後の巨大な円。白比 1.03 */
	--cream: #FBEBB8;      /* 特長の面。ink 文字で 11.94:1（Figma の #fbebb8） */
	--line: #E3DCC4;       /* 罫 */
	--white: #FFFFFF;

	/* 角丸。極小か極大しかない（GUIDELINE 0-3 / 5） */
	--r-hair: 4px;      /* 面をつなぐ内側 */
	--r-sm: 16px;       /* 写真・小さい器 */
	--r-lg: 64px;       /* 面の外周。cocoro の様式の核なので DESIGN.md のスケール外だが残す */
	--r-pill: 9999px;   /* ボタン・チップ */

	/* 文字。apple.com/jp の活字規則をそのまま採る（実測: overview.built.css）。
	   規則は4つ。
	   (1) 寸法は段の目しか使わない … 80 64 56 48 40 32 28 24 21 19 17 14 12 px
	   (2) 太さは2つだけ … 見出し・ラベル 600 / 本文 400（500・700 は使わない）
	   (3) 和文の字間は 0em … Apple も :lang(ja) で letter-spacing を 0 に戻している
	   (4) 行間は寸法で決まる … 大きいほど詰める（64px→1.109 … 12px→1.417）
	   可変は clamp ではなく 1068 / 734 / 480 の段で落とす（Apple の折り返し点）。
	   素の vw を使わなくなるので DESIGN.md 4-11 にも合う */
	--f-display: 6.4rem;   /* 64 */
	--f-h1: 4.8rem;        /* 48 */
	--f-h2: 4rem;          /* 40。カードの見出しを一回り大きく（2026-09-28） */
	--f-h3: 2.8rem;        /* 28。同上 */
	--f-h4: 2.1rem;        /* 21 */
	--f-body: 1.7rem;      /* 17 */
	--f-small: 1.4rem;     /* 14 */
	--f-label: 1.2rem;     /* 12 */

	/* 端末モックの幅（画面の幅）。HERO と特長で同じ値を使う */
	--phoneW: 44rem;

	/* 行間は全段 2.0。Apple の和文は 1.109〜1.417 だが、
	   「全体的に line-height を 2 に」の指示でこちらを採る（GUIDELINE 3.4 とも一致） */
	--lh-display: 2;
	--lh-h1: 2;
	--lh-h2: 2;
	--lh-h3: 2;
	--lh-h4: 2;
	--lh-body: 2;
	--lh-small: 2;
	--lh-label: 2;

	/* 行長。和文は 1em = 1字。上限40字・狙い30〜38字（DESIGN.md 2-4） */
	--measure: 36em;
	--measure-lead: 24em;

	/* セクション間。等間隔をやめ、内容の切れ目の強さで3段階にする（DESIGN.md 2-2）
	   96 → 160 → 224 は 1.67 / 1.4 倍の階差。すべて 32 の倍数 */
	--gap-tight: 96px;
	--gap-mid: 160px;
	--gap-wide: 224px;

	/* 動き。上限 400ms（DESIGN.md 4-6）。cocoro の 0.5s は超過していた */
	--dur: 0.3s;
	--dur-hover: 0.1s;

	/* 矢印バッジの中身。バッジの地は gold なので矢印は ink */
	--arrow: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 9 10'%3E%3Cpath d='M0 0l9 5-9 5z' fill='%233A2B00'/%3E%3C/svg%3E");
}

/* 段の落とし方。Apple は 1068 / 734 / 480 で一段ずつ下げる。
   寸法を下げたら行間は必ず上げる（小さい活字ほど行を空ける） */
@media (max-width: 1068px) {
	body.izamachi-v4 {
		--f-display: 5.6rem;
		--f-h1: 4rem;
		--f-h2: 3.2rem;
		--f-h4: 1.9rem;
	}
}
@media (max-width: 734px) {
	body.izamachi-v4 {
		--f-display: 4rem;
		--f-h1: 3.2rem;
		--f-h2: 2.8rem;
		--f-h3: 2.4rem;
	}
}
@media (max-width: 480px) {
	body.izamachi-v4 {
		--f-display: 3.2rem;
		--f-h1: 2.8rem;
	}
}

/* ---------------------------------------------------------------------------
 * 2. 土台
 * ------------------------------------------------------------------------- */
body.izamachi-v4 {
	background-color: var(--page);
	color: var(--ink);
	font-family: "Zen Kaku Gothic New", 'Hiragino Kaku Gothic ProN', sans-serif;
	/* Apple の太さは 400 と 600 の2つだけ。本文は 400 */
	font-weight: 400;
	font-size: var(--f-body);
	line-height: var(--lh-body);   /* 17px の行間 1.353（Apple の和文本文） */
	letter-spacing: 0;             /* 和文の字間は 0（Apple も ja で 0 に戻す） */
	padding-bottom: 0;
}
body.izamachi-v4 .container { padding: 0; }
body.izamachi-v4 .section { padding: 0; background: none; }
body.izamachi-v4 .section__inner { width: auto; max-width: none; padding: 0; gap: 0; display: block; }
body.izamachi-v4 a { color: var(--ink); transition: all var(--dur) ease; }
body.izamachi-v4 .mont {
	font-family: "Montserrat", sans-serif;
	font-optical-sizing: auto;
	font-weight: 600;
	font-style: normal;
}

/* 固定ヘッダの下にアンカー先が潜らないように */
html:has(body.izamachi-v4) { scroll-padding-top: 108px; }
@media screen and (max-width: 959px) { html:has(body.izamachi-v4) { scroll-padding-top: 92px; } }

/* 原典はフォーカスリングの定義が0件だった ※A-04 */
body.izamachi-v4 :is(a, button, input, textarea, select, [tabindex]):focus-visible {
	outline: 0.2rem solid transparent;
	outline-offset: 0.2rem;
	box-shadow: 0 0 0 0.2rem var(--white), 0 0 0 0.4rem var(--ink);
	border-radius: var(--r-hair);
}

/* ---------------------------------------------------------------------------
 * 3. コンテナ（GUIDELINE 4.1）
 *    1800px のカンバスに対する比率。原典は max-width を持たないが、
 *    1800px 超で器も文字も伸び続けるため上限を置いた ※A-08
 * ------------------------------------------------------------------------- */
/* cocoro は 1440/1280/1080 の3種の器を使い分けるが、実測すると左端が 22 種に散り、
   DESIGN.md 2-3「どこにも揃っていない辺をゼロに」を満たせなかった。
   器は1種に統一し、内容の幅は --measure（36字）で決める。
   1800px カンバスの比率（80vw）はそのまま残している。 */
body.izamachi-v4 .wrapbox01,
body.izamachi-v4 .wrapbox02,
body.izamachi-v4 .wrapbox03 { width: calc(1440 / 1800 * 100vw); max-width: 144rem; margin: 0 auto; }

/* ---------------------------------------------------------------------------
 * 4. 見出し（GUIDELINE 6.2）
 *    マークを上に置き、和文の下に英字を 0.15em で添える
 * ------------------------------------------------------------------------- */
body.izamachi-v4 .subtitle01 {
	position: relative;
	display: flex;
	flex-direction: column;
	text-align: center;
	font-size: var(--f-h1);
	font-weight: 600;
	line-height: var(--lh-h4);
	letter-spacing: 0;
	padding-top: 0;
	box-sizing: border-box;
	margin: 0 0 5rem;
	color: var(--ink);
}
/* 英字は「帯」として置く。淡地の上なので gold-dark（5.74:1） */
body.izamachi-v4 .subtitle01 .en {
	font-size: var(--f-small);
	letter-spacing: 0.01em;
	font-weight: 600;
	color: var(--gold-dark);
	order: 2;
}
body.izamachi-v4 .subtitle02 {
	position: relative;
	font-size: var(--f-h2);
	font-weight: 600;
	letter-spacing: 0;
	line-height: var(--lh-h4);
	padding-left: 2.5rem;
	box-sizing: border-box;
	margin: 0 0 2rem;
}
body.izamachi-v4 .subtitle02::before {
	content: "";
	position: absolute;
	top: 1.9rem;
	left: 0;
	width: 1.2rem;
	height: 1.2rem;
	background-color: var(--gold);
	border-radius: 50%;
}
/* 左組み・英字が主役の見出し */
body.izamachi-v4 .main_title {
	display: flex;
	flex-direction: column-reverse;
	padding-top: 0;
	box-sizing: border-box;
	letter-spacing: 0;
	margin: 0 0 2.5rem;
}
body.izamachi-v4 .main_title .en {
	font-size: var(--f-h1);
	line-height: 1;
	letter-spacing: 0.01em;
	font-weight: 600;
	color: var(--gold-dark);
}
body.izamachi-v4 .main_title .jp { font-size: var(--f-body); letter-spacing: 0; }
/* ink の面に載る見出し。英字は gold（8.67:1） */
body.izamachi-v4 .ink_title .en { color: var(--gold-dark); }
body.izamachi-v4 .ink_title .jp { color: var(--ink); }
/* ink の面に載る subtitle01 */
body.izamachi-v4 .ink_panel .subtitle01 { color: var(--ink); }
body.izamachi-v4 .ink_panel .subtitle01 .en { color: var(--gold-dark); }

/* ---------------------------------------------------------------------------
 * 5. ボタン（GUIDELINE 6.1）
 *    左に矢印バッジ、hover で塗りが右へ伸びて飲み込む。
 *    cocoro は hover で文字を白に反転させるが、ゴールドの塗りに白は載らない
 *    （1.59:1）ので、文字は ink のままにした。
 * ------------------------------------------------------------------------- */
body.izamachi-v4 .btn01 {
	display: inline-block;
	position: relative;
	z-index: 0;
	background-color: var(--white);
	color: var(--ink);
	border-radius: var(--r-pill);
	letter-spacing: 0;
	font-size: var(--f-h4);
	font-weight: 600;
	line-height: var(--lh-small);
	text-align: center;
	padding: 2.1rem 3.4rem 2.1rem 8rem;
	box-sizing: border-box;
	text-decoration: none;
	min-height: 44px;   /* テキストを含む箱に固定高さを使わない ※A-05 */
}
body.izamachi-v4 .btn01::before {
	content: "";
	position: absolute;
	top: 50%;
	left: 3.1rem;
	margin-top: -1.2rem;
	width: 3.6rem;
	height: 2.4rem;
	border-radius: var(--r-sm);
	background-color: var(--gold);
	background-image: var(--arrow);
	background-position: center center;
	background-repeat: no-repeat;
	background-size: 0.9rem auto;
	transition: left var(--dur) ease, background-color var(--dur) ease;
}
body.izamachi-v4 .btn01::after {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	width: 7.4rem;
	height: 100%;
	background-color: var(--white);
	border-radius: var(--r-pill);
	z-index: -1;
	transition: width var(--dur) ease, background-color var(--dur) ease;
}
body.izamachi-v4 .btn01:hover { color: var(--ink); }
body.izamachi-v4 .btn01:hover::before { left: 3.6rem; }
body.izamachi-v4 .btn01:hover::after { width: 100%; background-color: var(--gold); }

/* ゴールドの面のボタン。hover で白に戻る */
body.izamachi-v4 .btn01.gold { background-color: var(--gold); }
body.izamachi-v4 .btn01.gold::before { background-color: var(--white); }
body.izamachi-v4 .btn01.gold::after { background-color: var(--gold); }
body.izamachi-v4 .btn01.gold:hover::after { background-color: var(--white); }

/* 濃い面のボタン。cocoro の navy ボタンに相当 */
body.izamachi-v4 .btn01.ink { background-color: var(--ink); color: var(--white); font-size: var(--f-h4); padding: 3.2rem 8rem 3.2rem 12rem; }
body.izamachi-v4 .btn01.ink::before { background-color: var(--gold); }
body.izamachi-v4 .btn01.ink::after { width: 10rem; background-color: var(--ink); }
body.izamachi-v4 .btn01.ink:hover { color: var(--ink); }
body.izamachi-v4 .btn01.ink:hover::after { width: 100%; background-color: var(--gold); }

/* 淡い黄の面の上では gold のボタンが立たない（白比 1.36）。ink に置き換える */
body.izamachi-v4 .ink_panel .btn01.gold { background-color: var(--ink); color: var(--page); }
body.izamachi-v4 .ink_panel .btn01.gold::before { background-color: var(--gold); }
body.izamachi-v4 .ink_panel .btn01.gold::after { background-color: var(--ink); }
body.izamachi-v4 .ink_panel .btn01.gold:hover { color: var(--ink); }
body.izamachi-v4 .ink_panel .btn01.gold:hover::after { background-color: var(--gold); }

body.izamachi-v4 .btn_list { display: flex; gap: 20px; flex-wrap: wrap; justify-content: flex-start; }
body.izamachi-v4 .btn_list.center { justify-content: center; }
/* 鉤括弧でくくった語は途中で折らない */
body.izamachi-v4 .nw { white-space: nowrap; }

/* ---------------------------------------------------------------------------
 * 6. ヒーロー（Figma: izamachi_app_local_community 9719:24405 / 2026-09-19 改訂）
 *
 *    見出し・リード・円の CTA を中央に積み、その下に黄色の大円と端末を置く。
 *    大円と端末の下端は、この節の底で切る（原版のフレームと同じ切れ方）。
 *
 *    見出しだけ 6.4rem で、活字の段（--f-display 上限 5.2rem）を超えている。
 *    ページで1つだけの「顔」なので、--r-lg と同じ扱いで段の外に置いた
 * ------------------------------------------------------------------------- */
/* HERO は角丸の面（カード）にして、地の白をその外にだけ覗かせる。
   umanodesign.studio と同じ作り: スクロール 0→150px で左右 1rem・
   下の角丸 0→--r-lg。中の端末と大円はカードの縁で切れる。
   --hf（0→1）は motion.js が入れる */
body.izamachi-v4 #hero {
	position: relative;
	padding: 0 0 calc(var(--hf, 0) * 1rem);
	/* 枠の外に覗く地。次の節（MESSAGE）と同じ白にして、面の角丸が読めるようにする */
	background-color: var(--white);
	overflow: clip;              /* hidden は sticky を殺すので使わない（26章） */
	box-sizing: border-box;
	/* 大円は次の節へ抜けさせる（切らない）。MESSAGE の淡い円と重ねて、
	   黄の下端が弧のまま淡い円へ受け渡されるようにする。
	   横のはみ出しは .wrap の overflow: clip が受け持つ */
	overflow: visible;
	/* 円は次の節の本文の**下**に潜らせる。DOM 順で MESSAGE が後に塗られるので、
	   ここは 0 のままにしておく */
	z-index: 0;
}

body.izamachi-v4 .hero_card {
	position: relative;
	padding: 12.7rem 0 0;
	box-sizing: border-box;
	/* HERO の面はページの地の色（クリーム）に戻す */
	background-color: var(--page);
	margin-inline: calc(var(--hf, 0) * 1rem);
	/* 下の角は左右とも常に丸い。JS が動かなくても丸みは残る */
	border-bottom-left-radius: var(--r-lg);
	border-bottom-right-radius: var(--r-lg);
	overflow: hidden;
}
/* 白がこの先へ続かないよう、次の節は自分で地を持つ */
/* 節の地はクリームと白を交互に。帯に角丸は付けない（2026-09-26 指示）。
   HERO の面（クリーム）の外に覗く白だけが枠として残る */
body.izamachi-v4 #message {
	position: relative;
	z-index: 1;
	background-color: var(--white);   /* HERO の枠の白からそのまま続く */
}
/* 共有の main.css が .worry の下に黄色い三角を描いている。この版では出さない */
body.izamachi-v4 .worry::after { display: none; }
/* WORRY は白い帯。カードはクリーム（地の反対色）。地は下の #worry で指定 */
body.izamachi-v4 #worry .joined > li { background-color: var(--page); }
body.izamachi-v4 #hero .hero_head {
	position: relative;
	z-index: 1;
	width: calc(1440 / 1800 * 100vw);
	max-width: 144rem;
	margin: 0 auto;
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	gap: 4rem;
}
body.izamachi-v4 #hero .hero_catch {
	margin: 0;
	font-size: var(--f-display);
	font-weight: 600;
	line-height: var(--lh-display);
	letter-spacing: 0;
	/* 字間は文字の右に付く。1字ぶんの半分だけ左へ戻して光学的に中央へ置く */
	text-indent: 0.08em;
}
/* 全角スペースで区切った句の途中で折れないよう、句ごとに塊にする */
body.izamachi-v4 #hero .hero_lead > span { display: inline-block; }
body.izamachi-v4 #hero .hero_lead {
	margin: 0;
	max-inline-size: none;
	font-size: var(--f-h3);
	line-height: var(--lh-small);
}
/* CTA は円。主＝ink の面に page の文字、副＝地の色の面に ink の輪郭（Figma と同じ） */
body.izamachi-v4 #hero .circle_cta {
	display: flex;
	gap: 2.4rem;
	margin: 0;
}
body.izamachi-v4 #hero .circle_cta a {
	width: 18rem;
	height: 18rem;
	border-radius: 50%;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 0.4rem;
	text-align: center;
	text-decoration: none;
	line-height: var(--lh-small);
	font-weight: 600;
	font-size: var(--f-h4);
	letter-spacing: 0;
	box-sizing: border-box;
	transition: transform var(--dur) cubic-bezier(.34, 1.56, .64, 1);
}
body.izamachi-v4 #hero .circle_cta .en {
	font-size: 1.2rem;
	letter-spacing: 0.01em;
	font-weight: 600;
	margin: 0;
	/* 字間ぶん右に空くので、半分戻す */
	text-indent: 0.3em;
}
body.izamachi-v4 #hero .circle_cta .start { background-color: var(--ink); color: var(--page); }
body.izamachi-v4 #hero .circle_cta .start .en { color: var(--gold); }
body.izamachi-v4 #hero .circle_cta .inquiry { background-color: transparent; color: var(--ink); border: 1.5px solid var(--ink); }
body.izamachi-v4 #hero .circle_cta .inquiry .en { color: var(--gold-dark); }
body.izamachi-v4 #hero .circle_cta a:hover { transform: translateY(-4px); }

/* 6-2. 大円と端末 ----------------------------------------------------------- */
body.izamachi-v4 #hero .hero_stage {
	position: relative;
	margin-top: 11.5rem;
	/* 端末の下 1/4 ぶんを詰めて、カードの縁で切る。
	   端末の高さは幅×(800/360) なので、その 1/4 は幅×0.5556 */
	padding: 7.9rem 0 0;
	margin-bottom: calc(var(--heroPhoneW, 36rem) * -0.5556);
	display: flex;
	flex-direction: column;
	align-items: center;
}
/* Figma: 直径 1200 / 1440 の幅。中心はページの中心 */
body.izamachi-v4 #hero .hero_stage::before {
	content: "";
	position: absolute;
	left: 50%;
	top: 0;
	width: min(83.34vw, 120rem);
	aspect-ratio: 1 / 1;
	border-radius: 50%;
	background-color: var(--gold);
	/* ページを通して円はこれ1つ。motion.js が2つの値を入れる。
	   --orbY: スクロール量の 35% だけ下に置き去りにする。画面の中では
	           スクロールの 65% の速さで上がる＝ゆっくり上へ動いて見える。
	           そのぶん円が次の節まで付いてきて、MESSAGE の地になる。
	   --q   : MESSAGE が画面下から上端へ来るまでの 0→1。黄から淡色へ連続的に抜ける。
	           color-mix が無い環境では上の background-color（黄のまま）が残る */
	transform: translate(-50%, var(--orbY, 0px));
	background-color: color-mix(in srgb, var(--gold) calc((1 - var(--q, 0)) * 100%), var(--circle));
}
/* 端末の中は自動で動く。止める手段を必ず置く（WCAG 2.2.2）。
   ファーストビューの見た目を汚さないよう、普段は伏せておき、
   端末にポインタが乗っている間は**カーソルそのものを記号に差し替える**。
   カーソルの輪と点は data-cursor-hide で消し、その場所にこの記号を重ねる。
   記号はクリックを受けない（pointer-events: none）。押されるのは端末そのもの。
   キーボードで辿り着いたときだけ、端末の下に置いて押せるようにする */
body.izamachi-v4 #hero .hero_pause {
	position: fixed;
	left: 0;
	top: 0;
	/* --px / --py は motion.js が入れる。カーソルの少し下に置く */
	transform: translate3d(var(--px, -300px), var(--py, -300px), 0) translate(-50%, -50%);
	z-index: 99999;
	pointer-events: none;
	/* 文字は置かず、記号だけ。読み上げには aria-label が付いている。
	   44px はタップの下限（DESIGN.md 4-5）。装飾は地色＋影の2つまで（同 2-6）*/
	width: 44px;
	height: 44px;
	padding: 0;
	display: grid;
	place-items: center;
	border: 0;
	border-radius: 50%;
	background-color: var(--white);
	color: var(--ink);
	box-shadow: 0 0.6rem 1.8rem rgba(58, 43, 0, 0.18);
	cursor: pointer;
	opacity: 0;
	transition: opacity 0.2s ease;
	will-change: transform;
}
body.izamachi-v4 #hero .hero_pause .material-icons { font-size: 20px; }
/* 記号がカーソルの代わりになるので、端末の上では既定のカーソルも消す
   （カスタムカーソルが動かない環境でも二重に出ない） */
@media (hover: hover) and (pointer: fine) {
	body.izamachi-v4 .hero_phone { cursor: none; }
}
body.izamachi-v4 #hero .hero_pause.is-near,
body.izamachi-v4 #hero .hero_pause.is-flash { opacity: 1; }
/* キーボードのときは端末の下に置いて、そのまま押せるようにする */
body.izamachi-v4 #hero .hero_pause:focus-visible {
	position: absolute;
	left: 50%;
	top: auto;
	bottom: 2rem;
	transform: translateX(-50%);
	pointer-events: auto;
	opacity: 1;
}
/* 指で操作する環境は、端末を叩くと止まる（札はその合図に一瞬だけ出す） */
/* 指で操作する環境にはホバーが無い。カーソルに付いてくる札にできないので、
   端末の下に小さく出したままにする。止める手段に届かないと WCAG 2.2.2 を満たせない */
@media (hover: none), screen and (max-width: 1023px) {
	body.izamachi-v4 #hero .hero_pause {
		position: absolute;
		left: 50%;
		top: auto;
		bottom: 1.2rem;
		transform: translateX(-50%);
		opacity: 1;
	}
}

body.izamachi-v4 #hero .hero_en {
	position: relative;
	font-size: 1.2rem;
	letter-spacing: 0.01em;
	text-indent: 0.25em;
	line-height: 1;
	color: var(--gold-dark);
	font-weight: 600;
	margin: 0 0 2.5rem;
}

/* ---------------------------------------------------------------------------
 * 6-3. 端末の中身（アプリ画面）
 *
 *    画像ではなく HTML で組む。ページを送ると中の画面が入れ替わる（motion.js の app()）。
 *    端末まるごとで1枚の図なので、中の要素は読み上げの対象にしない（role="img"）。
 *    寸法は Figma の 360 × 800 をそのまま。幅が足りない画面では器ごと縮め、
 *    中は割合で組んであるので崩れない
 * ------------------------------------------------------------------------- */
body.izamachi-v4 .hero_phone {
	--app-bg: #FDF8EC;
	/* 枠線をやめた入力欄・リンク欄の塗り。地よりわずかに濃くして、線なしでも器と分かるようにする */
	--app-fill: #F2EBD9;
	z-index: 1;
	--app-line: #EFE7D2;
	--app-sub: #8A7F62;
	position: relative;
	width: min(var(--heroPhoneW, 36rem), calc(100vw - 4.8rem));
	aspect-ratio: 360 / 800;
	padding: 0.9rem;
	box-sizing: border-box;
	border-radius: 4.8rem;
	background-color: #1D1A14;
	box-shadow: 0 2.4rem 4.8rem rgba(58, 43, 0, 0.18);
}
body.izamachi-v4 .hero_phone .app {
	position: relative;
	width: 100%;
	height: 100%;
	border-radius: 4rem;
	overflow: hidden;
	background-color: var(--app-bg);
	display: flex;
	flex-direction: column;
	font-size: 1.2rem;
	line-height: 1.5;
	color: var(--ink);
}
/* 上の帯 */
body.izamachi-v4 .hero_phone .app_status {
	flex: none;
	height: 3.8rem;
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 0 1.8rem;
	font-size: 1.1rem;
	font-weight: 700;
}
body.izamachi-v4 .hero_phone .app_status .island {
	width: 9rem;
	height: 2.4rem;
	border-radius: var(--r-pill);
	background-color: #1D1A14;
}
body.izamachi-v4 .hero_phone .app_status .sig { display: flex; align-items: flex-end; gap: 2px; height: 1rem; }
body.izamachi-v4 .hero_phone .app_status .sig i { width: 3px; background-color: var(--ink); border-radius: 1px; }
body.izamachi-v4 .hero_phone .app_status .sig .b1 { height: 30%; }
body.izamachi-v4 .hero_phone .app_status .sig .b2 { height: 55%; }
body.izamachi-v4 .hero_phone .app_status .sig .b3 { height: 80%; }
body.izamachi-v4 .hero_phone .app_status .sig .b4 { height: 100%; }

body.izamachi-v4 .hero_phone .app_top {
	flex: none;
	display: flex;
	align-items: center;
	gap: 0.8rem;
	padding: 1.2rem 2rem 1.4rem;
	font-size: 1.7rem;
	font-weight: 700;
	letter-spacing: 0.02em;
}
body.izamachi-v4 .hero_phone .app_top .chev {
	font-size: 16px;
	width: 2.2rem;
	height: 2.2rem;
	border-radius: 50%;
	background-color: var(--gold);
	display: grid;
	place-items: center;
}

/* 画面の器。3枚を同じマスに重ねる */
body.izamachi-v4 .hero_phone .app_body {
	flex: 1;
	position: relative;
	display: grid;
	overflow: hidden;
	padding: 0 1.6rem;
}
body.izamachi-v4 .hero_phone .app_screen {
	grid-area: 1 / 1;
	display: flex;
	flex-direction: column;
	gap: 1rem;
	align-content: start;
	opacity: 0;
	transform: translateY(16px);
	transition: opacity .32s ease, transform .42s cubic-bezier(.16, 1, .3, 1);
	pointer-events: none;
}
body.izamachi-v4 .hero_phone .app_screen.is-on { opacity: 1; transform: none; }
/* 指で送ったぶん。いちばん上の画面だけ動かす */
body.izamachi-v4 .hero_phone .app_screen.is-on.is-scrolled { transform: translateY(-5.6rem); transition-duration: .7s; }

/* 差し込まれる1件。高さごと開いて、上から降りてくる */
body.izamachi-v4 .hero_phone .ac.app_new {
	max-height: 0;
	padding-top: 0;
	padding-bottom: 0;
	opacity: 0;
	overflow: hidden;
	transition: max-height .5s cubic-bezier(.16, 1, .3, 1), opacity .4s ease,
		padding-top .5s ease, padding-bottom .5s ease, margin-bottom .5s ease;
	margin-bottom: -1rem;   /* 閉じている間は gap のぶんを打ち消す */
}
body.izamachi-v4 .hero_phone .ac.app_new.is-on {
	max-height: 16rem;
	padding-top: 1.2rem;
	padding-bottom: 1.2rem;
	opacity: 1;
	margin-bottom: 0;
}

/* 打ち込まれる文字 */
body.izamachi-v4 .hero_phone .af .in .tw {
	display: inline-block;
	overflow: hidden;
	white-space: nowrap;
	vertical-align: bottom;
	max-width: 0;
	transition: max-width 1s steps(8, end);
}
body.izamachi-v4 .hero_phone .af .in .tw.is-on { max-width: 16em; }
body.izamachi-v4 .hero_phone .af .in .cur { animation: izmtCaret 1s steps(1, end) infinite; }
@keyframes izmtCaret { 0%, 50% { opacity: 1; } 50.01%, 100% { opacity: 0; } }

/* タップの波紋 */
body.izamachi-v4 .hero_phone .app_tap {
	position: absolute;
	width: 5.6rem;
	height: 5.6rem;
	margin: -2.8rem 0 0 -2.8rem;
	border-radius: 50%;
	background-color: var(--ink);
	opacity: 0;
	transform: scale(0.3);
	pointer-events: none;
	z-index: 3;
}
body.izamachi-v4 .hero_phone .app_tap.is-on { animation: izmtTap .55s ease-out; }
@keyframes izmtTap {
	0% { opacity: 0.28; transform: scale(0.3); }
	100% { opacity: 0; transform: scale(1.15); }
}
/* 押された先を一瞬沈ませる */
body.izamachi-v4 .hero_phone .is-press { transform: scale(0.94); transition: transform .18s ease; }

/* 1: タイムライン */
body.izamachi-v4 .hero_phone .ac {
	display: flex;
	flex-direction: column;
	background-color: var(--white);
	border-radius: 1.2rem;
	padding: 1.2rem 1.4rem;
}
body.izamachi-v4 .hero_phone .ac .d { font-size: 1rem; color: var(--app-sub); }
body.izamachi-v4 .hero_phone .ac .t { font-size: 1.4rem; font-weight: 700; margin-top: 0.4rem; }
body.izamachi-v4 .hero_phone .ac .c {
	font-size: 1.1rem;
	color: #6B6250;
	margin-top: 0.4rem;
	overflow: hidden;
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
}
body.izamachi-v4 .hero_phone .ph { display: flex; gap: 0.8rem; margin-top: 0.8rem; }
body.izamachi-v4 .hero_phone .ph i {
	flex: 1;
	height: 5.6rem;
	border-radius: 0.6rem;
	background-color: var(--app-line);
	background-size: cover;
	background-position: center;
}
body.izamachi-v4 .hero_phone .tg { display: flex; gap: 0.6rem; margin-top: 0.9rem; }
body.izamachi-v4 .hero_phone .tg b {
	font-size: 1rem;
	font-weight: 600;
	padding: 0.4rem 0.9rem;
	border-radius: 0.6rem;
	background-color: #F4ECD5;
	color: #6B5A2A;
}
body.izamachi-v4 .hero_phone .tg b.on { background-color: var(--gold); color: var(--ink); }

/* 2: お知らせを作成 */
body.izamachi-v4 .hero_phone .af { display: flex; flex-direction: column; gap: 0.5rem; }
body.izamachi-v4 .hero_phone .af .lb { font-size: 1rem; color: var(--app-sub); font-weight: 600; }
body.izamachi-v4 .hero_phone .af .in {
	background-color: var(--app-fill);
	border: 0;
	border-radius: 0.8rem;
	padding: 0.9rem 1rem;
	font-size: 1.2rem;
	display: flex;
	align-items: center;
	gap: 2px;
}
body.izamachi-v4 .hero_phone .af .in.tall { flex-direction: column; align-items: stretch; gap: 0.7rem; padding: 1.1rem 1rem; }
body.izamachi-v4 .hero_phone .af .in .ln { height: 0.7rem; border-radius: 0.35rem; background-color: var(--app-line); }
body.izamachi-v4 .hero_phone .af .in .ln.w2 { width: 60%; }
body.izamachi-v4 .hero_phone .af .in .cur { width: 2px; height: 1.4rem; background-color: var(--gold-deep); }
body.izamachi-v4 .hero_phone .af .ph i.add {
	flex: none;
	width: 5.6rem;
	display: grid;
	place-items: center;
	font-size: 20px;
	color: var(--app-sub);
	border: 0;
	background-color: var(--app-fill);
}
body.izamachi-v4 .hero_phone .asend {
	margin-top: 0.4rem;
	text-align: center;
	background-color: var(--ink);
	color: var(--page);
	font-size: 1.3rem;
	font-weight: 700;
	padding: 1.2rem;
	border-radius: var(--r-pill);
}

/* 3: QRで招待 */
body.izamachi-v4 .hero_phone .aqr {
	background-color: var(--white);
	border-radius: 1.2rem;
	padding: 1.6rem;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 1rem;
}
body.izamachi-v4 .hero_phone .aqr svg { width: 12rem; height: 12rem; display: block; }
body.izamachi-v4 .hero_phone .aqr .c { font-size: 1rem; color: var(--app-sub); text-align: center; }
body.izamachi-v4 .hero_phone .alink {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.8rem;
	background-color: var(--app-fill);
	border: 0;
	border-radius: 0.8rem;
	padding: 0.9rem 1rem;
	font-size: 1.1rem;
}
body.izamachi-v4 .hero_phone .alink .cp {
	flex: none;
	font-size: 1rem;
	font-weight: 700;
	background-color: var(--gold);
	color: var(--ink);
	border-radius: 0.6rem;
	padding: 0.4rem 0.9rem;
}
body.izamachi-v4 .hero_phone .amem {
	background-color: var(--white);
	border-radius: 1.2rem;
	padding: 1.2rem 1.4rem;
	display: flex;
	flex-direction: column;
	gap: 0.9rem;
}
body.izamachi-v4 .hero_phone .amem .hd { font-size: 1.1rem; font-weight: 700; display: flex; gap: 0.6rem; }
body.izamachi-v4 .hero_phone .amem .hd b { color: var(--gold-dark); }
body.izamachi-v4 .hero_phone .amem .rw { display: flex; align-items: center; gap: 0.8rem; font-size: 1.1rem; }
body.izamachi-v4 .hero_phone .amem .rw i {
	width: 2.4rem;
	height: 2.4rem;
	border-radius: 50%;
	background-color: #C9D6DE;
}
body.izamachi-v4 .hero_phone .amem .rw i.c2 { background-color: #E3D6B8; }
body.izamachi-v4 .hero_phone .amem .rw i.c3 { background-color: #D5DFC9; }

/* 投稿ボタンとタブ */
body.izamachi-v4 .hero_phone .app_fab {
	position: absolute;
	right: 1.6rem;
	bottom: 8.6rem;
	width: 6rem;
	height: 6rem;
	border-radius: 50%;
	background-color: var(--gold);
	color: var(--ink);
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 0.2rem;
	font-size: 1.1rem;
	font-weight: 700;
	box-shadow: 0 0.4rem 1.2rem rgba(58, 43, 0, 0.22);
}
body.izamachi-v4 .hero_phone .app_fab i { font-size: 18px; }
body.izamachi-v4 .hero_phone .app_tab {
	flex: none;
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	background-color: var(--white);
	border-top: 1px solid var(--app-line);
	padding: 0.8rem 0 2.4rem;
}
body.izamachi-v4 .hero_phone .app_tab span {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 0.2rem;
	font-size: 0.9rem;
	color: var(--app-sub);
}
body.izamachi-v4 .hero_phone .app_tab i { font-size: 20px; }
body.izamachi-v4 .hero_phone .app_tab .on { color: var(--ink); font-weight: 700; }

@media (prefers-reduced-motion: reduce) {
	body.izamachi-v4 .hero_phone .app_screen { transition: opacity .2s ease; transform: none; }
	body.izamachi-v4 #hero .circle_cta a { transition: none; }
	body.izamachi-v4 #hero .circle_cta a:hover { transform: none; }
}

/* 注記チップ。gold は淡地から立たない（1.44）ので ink の面に gold の文字を置く */
body.izamachi-v4 .note_chip {
	display: inline-block;
	font-size: var(--f-label);
	letter-spacing: 0;
	line-height: var(--lh-label);
	background-color: var(--ink);
	color: var(--gold);
	border-radius: var(--r-pill);
	padding: 0 1.2rem;
	box-sizing: border-box;
}

/* ---------------------------------------------------------------------------
 * 7. セクションの縦リズム（GUIDELINE 4.3）
 *    セクション間 170〜285px、部品間 20〜100px。桁をひとつ変えて区別する
 * ------------------------------------------------------------------------- */
/* 下の #worry（01/02/03 の3枚）と1つの塊にするため、間を --gap-mid 160px → 48px に詰めた。
   3枚は MESSAGE の本文の続き（挙げた課題の内訳）なので、章の切れ目の間隔を取らない */
body.izamachi-v4 #message { position: relative; padding: var(--gap-wide) 0 4.8rem; z-index: 0; }
/* 本文のかたまりは中央揃えにしない（DESIGN.md 2-3・Butterick）。
   ブロックの位置だけ中央に置き、行は左で揃える。
   幅は 36em = 36字（同 2-4。上限40字・狙い30〜38字） */
body.izamachi-v4 .prose {
	max-inline-size: var(--measure);
	margin: 0 auto;
	text-align: left;
	font-size: var(--f-body);
	line-height: var(--lh-body);
}
body.izamachi-v4 .prose p { margin: 0 0 2rem; }
body.izamachi-v4 .prose p:last-child { margin-bottom: 0; }
/* リードは1〜2行の見出し的コピーなので中央のまま（DESIGN.md 2-3 の「短い見出し」） */
body.izamachi-v4 .lead {
	max-inline-size: var(--measure-lead);
	margin-inline: auto;
	text-align: center;
	font-size: var(--f-h2);
	font-weight: 600;
	line-height: var(--lh-h4);
	letter-spacing: 0;
	margin: 0 0 4rem;
}

/* ---------------------------------------------------------------------------
 * 8. 「面をつなぐ」グリッド（GUIDELINE 4.4）
 *    外枠 6rem・gap 0.4rem・中のカードは 0.3rem。1枚の面が割れて見える
 * ------------------------------------------------------------------------- */
body.izamachi-v4 .joined {
	display: grid;
	gap: 0.4rem;
	border-radius: var(--r-lg);
	overflow: hidden;
	margin: 0;
	padding: 0;
	list-style: none;
	counter-reset: item;
}
body.izamachi-v4 .joined.col2 { grid-template-columns: repeat(2, 1fr); }
body.izamachi-v4 .joined.col3 { grid-template-columns: repeat(3, 1fr); }
body.izamachi-v4 .joined > li {
	background-color: var(--white);
	border-radius: var(--r-hair);
	counter-increment: item;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	padding: 64px 40px;
	box-sizing: border-box;
}
/* 番号。cocoro は sky（白地 2.35:1）だったが、淡地に置く文字なので gold-dark */
/* 番号は黄の円チップ。ページを縦断する黄のリズムを作る（DESIGN.md 第1部9） */
body.izamachi-v4 .joined > li .num {
	width: 40px;
	height: 40px;
	border-radius: 50%;
	background-color: var(--gold);
	color: var(--ink);
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: var(--f-small);
	line-height: 1;
	margin: 0 0 20px;
	font-family: "Montserrat", sans-serif;
	font-optical-sizing: auto;
	font-weight: 600;
}
body.izamachi-v4 .joined > li .num::before { content: "0" counter(item); }
body.izamachi-v4 .joined > li h3 {
	text-align: left;
	width: 100%;
	font-size: var(--f-h3);
	font-weight: 600;
	letter-spacing: 0;
	line-height: var(--lh-h3);
	margin: 0 0 1.2rem;
}
/* 図版の器。図は自分の地を持たず、カードの白がそのまま図の地になるので、
   カードの左右パディング（40px）を打ち消して横幅いっぱいに置く */
body.izamachi-v4 .joined > li .image {
	min-height: 0;
	display: block;
	align-self: stretch;
	margin: 24px -40px 32px;
	width: auto;
}
body.izamachi-v4 .joined > li .image img { max-width: 100%; max-height: 200px; width: auto; height: auto; }
/* 図版は器の幅いっぱい。width:100% だと内容ボックス基準になって余白が残る */
body.izamachi-v4 #worry .joined > li .image { width: auto; align-self: stretch; }
body.izamachi-v4 .joined > li .text {
	text-align: left;
	line-height: var(--lh-body);
	font-size: var(--f-small);
	max-inline-size: var(--measure);
	margin: 0 0 3rem;
	width: 100%;
}
body.izamachi-v4 .joined > li .text:last-child { margin-bottom: 0; }
/* タグ。gold の面に ink の文字（8.67:1）。cocoro のように追加色が要らない */
body.izamachi-v4 .tag_list { display: flex; flex-wrap: wrap; justify-content: flex-start; gap: 1rem; margin: 0; padding: 0; list-style: none; }
body.izamachi-v4 .tag_list li {
	background-color: var(--gold);
	color: var(--ink);
	font-size: var(--f-label);
	font-weight: 600;
	line-height: var(--lh-label);
	letter-spacing: 0;
	border-radius: var(--r-pill);
	padding: 1.3rem 2.4rem;
	box-sizing: border-box;
}

/* 写真カード（特長）。角丸は 2rem の矩形（GUIDELINE 8） */
body.izamachi-v4 .joined.photo_cards > li { padding: 0 0 4rem; }
body.izamachi-v4 .joined.photo_cards .ph { width: 100%; line-height: 0; margin-bottom: 3rem; }
body.izamachi-v4 .joined.photo_cards .ph img { width: 100%; height: auto; display: block; }
body.izamachi-v4 .joined.photo_cards h3,
body.izamachi-v4 .joined.photo_cards .text { padding: 0 3rem; box-sizing: border-box; }

/* ---------------------------------------------------------------------------
 * 9. 濃い面（GUIDELINE 4.5「information の面」）
 *    角丸 8rem の矩形を器からはみ出させる。
 *    **ink の面はページに2箇所まで**（cocoro の「黄は2箇所まで」の移し替え）
 * ------------------------------------------------------------------------- */
body.izamachi-v4 .ink_panel {
	position: relative;
	z-index: 0;
	color: var(--ink);
	padding: 11rem min(4.45vw, 8rem);
	box-sizing: border-box;
}
body.izamachi-v4 .ink_panel::before {
	content: "";
	position: absolute;
	top: 0;
	left: -6rem;
	width: calc(100% + 12rem);
	height: 100%;
	background-color: var(--cream);
	border-radius: var(--r-lg);
	z-index: -1;
}
body.izamachi-v4 .ink_panel .prose,
body.izamachi-v4 .ink_panel .lead { color: var(--ink); }
/* 濃い面の中身は左組み。見出し・リード・本文・ボタンが同じ左端に立つ */
body.izamachi-v4 .ink_panel .prose,
body.izamachi-v4 .ink_panel .lead { margin-inline: 0; text-align: left; }

/* 濃い面は「文 ＋ 画面キャプチャ」の2列。キャプチャは端末の画面（縦長）を想定 */
body.izamachi-v4 .ink_panel {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(20rem, 26rem);
	gap: min(4.45vw, 8rem);
	align-items: center;
}
body.izamachi-v4 .ink_panel_body { min-width: 0; }
/* 面の左右の余白をそろえるため、右端に寄せる（面は器より 6rem ずつ外へ出ている） */
body.izamachi-v4 .ink_panel_shot { justify-self: end; width: min(100%, 24rem); }
/* 器。中身がどんな比率でも同じ見えになるよう、枠で受けて切る */
body.izamachi-v4 .shot_frame {
	border-radius: var(--r-sm);
	overflow: hidden;
	background-color: var(--white);
	line-height: 0;
}
body.izamachi-v4 .shot_frame img { display: block; width: 100%; height: auto; }
/* 3枚を同じマスに重ねて入れ替える。器の幅で高さが決まる（画像は 440:957） */
body.izamachi-v4 .shot_show { display: grid; width: 100%; }
body.izamachi-v4 .shot_img {
	grid-area: 1 / 1;
	display: block;
	width: 100%;
	height: auto;
	opacity: 0;
	transition: opacity 0.6s ease;
}
body.izamachi-v4 .shot_img.is-on { opacity: 1; }
/* 操作。濃い面の上なので白い線で描く。普段は伏せ、ホバーとフォーカスで出す */
body.izamachi-v4 .shot_ctrl {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	margin-top: 1.6rem;
	opacity: 0;
	transition: opacity var(--dur) ease;
}
body.izamachi-v4 .ink_panel_shot:hover .shot_ctrl,
body.izamachi-v4 .shot_ctrl:focus-within { opacity: 1; }
/* 指で操作する環境にはホバーが無い。伏せたままだと止める手段に届かない */
@media (hover: none), screen and (max-width: 1023px) {
	body.izamachi-v4 .shot_ctrl { opacity: 1; }
}
body.izamachi-v4 .shot_dot {
	width: 44px;
	height: 44px;
	padding: 0;
	border: 0;
	background: none;
	cursor: pointer;
	display: grid;
	place-items: center;
}
body.izamachi-v4 .shot_dot::before {
	content: "";
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background-color: var(--ink);
	opacity: 0.35;
	transition: opacity var(--dur-hover) ease, transform var(--dur) ease;
}
body.izamachi-v4 .shot_dot.is-on::before { opacity: 1; transform: scale(1.4); }
body.izamachi-v4 .shot_pause {
	min-height: 44px;
	padding: 0 1.4rem;
	border: 1px solid var(--ink);
	border-radius: var(--r-pill);
	background: none;
	color: var(--ink);
	font-size: var(--f-label);
	font-weight: 600;
	letter-spacing: 0;
	cursor: pointer;
}

/* ---------------------------------------------------------------------------
 * 10. 行の一覧（GUIDELINE 6.3 info_list / news_list）
 * ------------------------------------------------------------------------- */
body.izamachi-v4 .row_list {
	display: grid;
	gap: 0.4rem;
	/* 面の外周は他の塊（.joined）と同じ大角丸。中のカードは --r-hair のまま */
	border-radius: var(--r-lg);
	overflow: hidden;
	margin: 0;
	padding: 0;
	list-style: none;
}
body.izamachi-v4 .row_list > li {
	background-color: var(--white);
	border-radius: var(--r-hair);
	display: flex;
	align-items: center;
	gap: 2rem;
	min-height: 8rem;    /* 原典は height 固定 ※A-05 */
	padding: 20px 40px;
	box-sizing: border-box;
}
body.izamachi-v4 .row_list > li .dt {
	position: relative;
	width: 24rem;
	flex: 0 0 24rem;
	letter-spacing: 0;
	font-weight: 600;
	box-sizing: border-box;
}
body.izamachi-v4 .row_list > li .dt .n {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 32px;
	height: 32px;
	border-radius: 50%;
	background-color: var(--gold);
	color: var(--ink);
	font-size: var(--f-label);
	margin-right: 12px;
	vertical-align: middle;
}
/* 番号チップが役割を持つので、点は置かない（意味を運ばない装飾。DESIGN.md 第1部2） */
body.izamachi-v4 .row_list > li .dd { flex: 1; font-size: var(--f-small); letter-spacing: 0; line-height: var(--lh-small); max-inline-size: var(--measure); }

/* FAQ。news_list の作り（gap 0.2rem / 外枠 1rem） */
body.izamachi-v4 .qa_list {
	display: grid;
	gap: 0.2rem;
	border-radius: var(--r-lg);
	overflow: hidden;
	margin: 0;
	padding: 0;
	list-style: none;
}
body.izamachi-v4 .qa_list > li {
	background-color: var(--white);
	border-radius: var(--r-hair);
	padding: 4rem 5rem;
	box-sizing: border-box;
	/* 質問と答えを1本の列にして、面の中央に置く。
	   左端に寄せると右が大きく空いて、面だけが広く見える。
	   列にしているので、問いと答えの左端は揃ったまま */
	display: grid;
	justify-content: center;
	grid-template-columns: minmax(0, calc(var(--measure) + 3rem));
}
body.izamachi-v4 .qa_list h3 {
	position: relative;
	font-size: var(--f-h4);
	font-weight: 600;
	letter-spacing: 0;
	line-height: var(--lh-body);
	padding-left: 3rem;
	margin: 0 0 2rem;
}
body.izamachi-v4 .qa_list h3::before {
	content: "";
	position: absolute;
	top: 1.5rem;
	left: 0;
	width: 1.2rem;
	height: 1.2rem;
	background-color: var(--gold);
	border-radius: 50%;
}
body.izamachi-v4 .qa_list p { margin: 0; font-size: var(--f-small); line-height: var(--lh-body); padding-left: 3rem; max-inline-size: calc(var(--measure) + 3rem); }

/* CONTACT。ステップ・FAQ と同じ扱いにする（2026-09-19）。
   器の幅・白い面・大角丸・内側の余白を3つで揃え、
   フォームと電話は 0.4rem の隙間で「つないだ1枚の面」に見せる（4.4） */
body.izamachi-v4 .form_box {
	background-color: var(--white);
	border-radius: var(--r-lg) var(--r-lg) var(--r-hair) var(--r-hair);
	padding: 4.8rem 5rem;
	box-sizing: border-box;
	overflow: hidden;
}
body.izamachi-v4 .tel_box {
	margin-top: 0.4rem;
	background-color: var(--white);
	border-radius: var(--r-hair) var(--r-hair) var(--r-lg) var(--r-lg);
	padding: 4.8rem 5rem;
	box-sizing: border-box;
	/* 番号と注記を間を空けずに2段。面の中央に寄せる */
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 0;
	text-align: center;
}
/* 電話は掛ける導線にしない（tel リンクは外してある）。文字として置く */
body.izamachi-v4 .tel_box .tel_number {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	margin: 0;
	font-size: 16px;   /* #46 で本人指定。Apple の段（17px）には載せない */
	font-weight: 700;  /* 同上「16px bold」。Apple の2段階（400/600）の例外 */
	letter-spacing: 0;
}
body.izamachi-v4 .tel_box .tel_number .material-icons {
	font-size: 24px;
	width: 24px;
	height: 24px;
}
body.izamachi-v4 .tel_box .note {
	margin: 0;
	font-size: 12px;
	line-height: var(--lh-label);
	opacity: 0.5;
	max-inline-size: none;
}

/* ---------------------------------------------------------------------------
 * 12. セクションの地と大角丸（GUIDELINE 4.5）
 * ------------------------------------------------------------------------- */
/* 読む順に「なぜ → 問題 → 答え → 詳細 → 別の切り口 → 行動 → 不安 → 結び」。
   章が変わるところを wide、同じ章の続きを tight にして、近接に意味を持たせる。
   すべて 32 の倍数で、階差は 1.4〜1.67 倍（DESIGN.md 2-2） */
/* 2026-09-19: #worry の面を外した。見出しを削って MESSAGE と1つの塊にしたので、
   ここで地の色と大角丸が変わると、繋げたいものが逆に切り離される。
   淡い面と大角丸は #solution（＝答え）の側へ移した。
   「問題は地のまま／答えから面が変わる」で、章の切れ目と面の切れ目が一致する */
body.izamachi-v4 #worry {
	background-color: var(--white);   /* 交互配色の白い帯 */
	border-radius: 0;
	padding: 0 0 var(--gap-tight);
	margin-top: 0;
}
/* 端末の真下からは白い面。STEPS まで白でつながるので、
   間に淡い帯を挟まず、角丸も付けない（2026-09-24） */
body.izamachi-v4 #solution {
	padding: var(--gap-tight) 0 0;
	background-color: var(--white);
	border-radius: 0;
}
body.izamachi-v4 #feature { padding: var(--gap-wide) 0 var(--gap-tight); }
body.izamachi-v4 #comparison { padding: var(--gap-wide) 0 var(--gap-mid); }
/* STEPS は白い面。中のカードを淡い黄にして、地とカードの関係を他の節と逆にする
   （2026-09-24）。手順は「作業する場所」なので、面を白くして紙に近づける */
body.izamachi-v4 #izmt-steps-sec {
	background-color: var(--white);
	border-radius: 0;
	padding: var(--gap-mid) 0;
}
body.izamachi-v4 #izmt-steps-sec .row_list > li { background-color: var(--page); }
/* FAQ はクリームの地に白いカード */
body.izamachi-v4 #faq {
	padding: var(--gap-tight) 0 var(--gap-wide);
	background-color: transparent;
	border-radius: 0;
}
/* お問い合わせは白い帯。フォームは地を持たない（2026-09-26 指示） */
body.izamachi-v4 #cta { background-color: var(--white); }
body.izamachi-v4 #cta .form_box,
body.izamachi-v4 #cta .tel_box {
	background-color: transparent;
	/* 入力欄が横に伸びすぎるので、器より狭くして中央に置く */
	max-width: 64rem;
	margin-inline: auto;
}
/* ステップとFAQは、器を1段狭くして中央に寄せる。
   1440 の器いっぱいに置くと、中身に対して面だけが広く見えた */
body.izamachi-v4 #izmt-steps-sec .wrapbox02,
body.izamachi-v4 #faq .wrapbox02,
body.izamachi-v4 #cta .wrapbox02 { max-width: 104rem; }
body.izamachi-v4 #cta { padding: var(--gap-tight) 0 var(--gap-mid); }

/* ---------------------------------------------------------------------------
 * 13. SP（1023px 以下。原典は 767px で切り替えるが、その上の 768-1023 は
 *     rem 30.5% を前提にした設計で、はしごを止めると破綻する。切替点を上げた ※A-01
 * ------------------------------------------------------------------------- */
@media screen and (max-width: 1023px) {
	body.izamachi-v4 .wrapbox01,
	body.izamachi-v4 .wrapbox02 { width: 89.5%; max-width: none; }
	body.izamachi-v4 .wrapbox03 { width: 84.3%; max-width: none; }

	/* Apple は節の見出しをスマホでも半分までしか下げない（80→40px）。
	   --f-h4（19px）まで落とすと 48px の 4 割になるので、--f-h1 の段（48→40→32→28）に乗せる */
	body.izamachi-v4 .subtitle01 { font-size: var(--f-h1); letter-spacing: 0; margin-bottom: 3rem; }
	body.izamachi-v4 .subtitle01 .en { font-size: 1.2rem; }
	body.izamachi-v4 .subtitle02 { font-size: var(--f-h4); text-align: center; padding-left: 0; }
	body.izamachi-v4 .subtitle02::before { display: none; }
	
	body.izamachi-v4 .main_title .en { font-size: 2.8rem; }
	body.izamachi-v4 .lead { font-size: var(--f-h4); }

	/* Apple は CTA の字を 17px より下げない */
	body.izamachi-v4 .btn01 { display: block; width: 100%; font-size: var(--f-body); padding: 1.6rem 3.4rem 1.6rem 6rem; }
	body.izamachi-v4 .btn01::before { left: 1.7rem; }
	body.izamachi-v4 .btn01.ink { font-size: var(--f-body); padding: 2rem 3.4rem 2rem 6rem; }
	body.izamachi-v4 .btn_list { display: block; }
	body.izamachi-v4 .btn_list > * + * { margin-top: 1.5rem; }

	/* 上の余白は白い #hero ではなくクリームのカードの内側に置く。
	   #hero に置くと、白い地がカードの上に帯として出る（2026-09-26） */
	body.izamachi-v4 #hero { padding: 0 0 calc(var(--hf, 0) * 1rem); }
	body.izamachi-v4 .hero_card { padding-top: 4.8rem; }
	body.izamachi-v4 #hero .hero_head { width: 89.5%; gap: 2.8rem; }
	body.izamachi-v4 #hero .hero_catch { font-size: var(--f-display); }
	body.izamachi-v4 #hero .hero_lead { font-size: 1.4rem; }
	/* 見出しは <br> の位置だけで折る。字間を詰めて1行に収める。
	   word-break: auto-phrase は句ごとに細かく割れてしまうので使わない */
	body.izamachi-v4 .subtitle01 { font-size: var(--f-h1); letter-spacing: 0; }
	/* 操作の字は 17px より下げない */
	body.izamachi-v4 #hero .circle_cta a { width: 15rem; height: 15rem; font-size: 1.7rem; }
	/* 大円は SP では画面幅いっぱい。端末は器ごと縮み、中は割合で組んであるので崩れない */
	body.izamachi-v4 #hero .hero_stage { margin-top: 6rem; padding: 4.8rem 0 5.6rem; }
	body.izamachi-v4 #hero .hero_stage::before { width: min(124vw, 92rem); }

body.izamachi-v4 #hero .hero_en { font-size: 1.2rem; margin-bottom: 2rem; }

	body.izamachi-v4 #message { padding: 8rem 0 3.2rem; }
	body.izamachi-v4 #message::before { width: 60rem; height: 60rem; }
	body.izamachi-v4 #worry { padding: 0 0 6rem; }
	body.izamachi-v4 #solution { padding-top: 6rem; border-radius: 0; }
	body.izamachi-v4 #solution,
	body.izamachi-v4 #faq { padding-bottom: 9rem; }
	body.izamachi-v4 #izmt-steps-sec { padding: 8rem 0 9rem; border-radius: 0; }
	body.izamachi-v4 #feature,
	body.izamachi-v4 #comparison { padding: 8rem 0 9rem; }
	body.izamachi-v4 #cta { padding-bottom: 8rem; }

	body.izamachi-v4 .joined { border-radius: var(--r-sm); }
	body.izamachi-v4 .joined.col2,
	body.izamachi-v4 .joined.col3 { grid-template-columns: 1fr; gap: 0.6rem; }
	body.izamachi-v4 .joined > li { padding: 4rem 2.5rem 4.5rem; }
	body.izamachi-v4 .joined.photo_cards > li { padding: 0 0 3rem; }
	body.izamachi-v4 .joined.photo_cards h3,
	body.izamachi-v4 .joined.photo_cards .text { padding: 0 2.5rem; }

	body.izamachi-v4 .ink_panel { padding: 6rem 2.5rem; }
	body.izamachi-v4 .ink_panel::before { left: 0; width: 100%; border-radius: var(--r-sm); }

	body.izamachi-v4 .row_list > li { display: block; padding: 2rem; min-height: 0; }
	body.izamachi-v4 .row_list > li .dt { width: auto; flex: none; padding-left: 1.5rem; margin-bottom: 0.5rem; }
	body.izamachi-v4 .row_list > li .dt::before { top: 1rem; width: 0.6rem; height: 0.6rem; }
	body.izamachi-v4 .row_list,
	body.izamachi-v4 .qa_list { border-radius: var(--r-sm); }
	body.izamachi-v4 .qa_list > li { padding: 2rem; }
	body.izamachi-v4 .qa_list h3 { font-size: 1.7rem; padding-left: 2rem; margin-bottom: 1rem; }
	body.izamachi-v4 .qa_list h3::before { top: 1.2rem; width: 0.8rem; height: 0.8rem; }
	body.izamachi-v4 .qa_list p { padding-left: 2rem; }

	body.izamachi-v4 .ink_panel { display: block; }
	body.izamachi-v4 .ink_panel_shot { margin-top: 4rem; display: block; }
	body.izamachi-v4 .ink_panel_shot { width: min(100%, 22rem); margin-inline: auto; }
	/* SP では4列に割ると1列あたり 8〜9 文字になって読めない。2列で止める */
	body.izamachi-v4 #izmt-steps-sec .row_list { grid-template-columns: repeat(2, 1fr); }
	body.izamachi-v4 #izmt-steps-sec .row_list > li { padding: 3.6rem 2.8rem 4rem; }
	/* 番号チップは見出しの上に置く。横に並べると見出しがチップの下に回り込む */
	body.izamachi-v4 #izmt-steps-sec .row_list > li .dt { padding-left: 0; margin-bottom: 0.8rem; }
	body.izamachi-v4 #izmt-steps-sec .row_list > li .dt .n { display: flex; margin: 0 0 0.8rem; }
	/* 2行に折り返すので、1本の線では順序を示せない。線は引かない */
	body.izamachi-v4 #izmt-steps-sec .row_list::before,
	body.izamachi-v4 #izmt-steps-sec .row_list.started::before { display: none; }
	body.izamachi-v4 .form_box { padding: 2.4rem; border-radius: var(--r-sm) var(--r-sm) var(--r-hair) var(--r-hair); }
	body.izamachi-v4 .tel_box { padding: 2.8rem 2rem; border-radius: var(--r-hair) var(--r-hair) var(--r-sm) var(--r-sm); }
}

/* ---------------------------------------------------------------------------
 * 14. 動きを減らす設定。原典は未対応 ※A-07
 * ------------------------------------------------------------------------- */
@media (prefers-reduced-motion: reduce) {
	body.izamachi-v4 .btn01::before,
	body.izamachi-v4 .btn01::after { transition-property: background-color, opacity; }
	body.izamachi-v4 [data-delighter] { transform: none; }
}

/* ---------------------------------------------------------------------------
 * 15. main.css 側のモーションへの上書き
 *     テーマの出現アニメは 0.5s。DESIGN.md 4-6 の上限 400ms に収める
 * ------------------------------------------------------------------------- */
body.izamachi-v4 .section,
body.izamachi-v4 .section *,
body.izamachi-v4 .delighter,
body.izamachi-v4 [data-delighter] { transition-duration: 0.4s; }
/* ボタンの塗りが伸びる動きは「大きい面」ではないので 0.3s、色は 0.1s */
body.izamachi-v4 .btn01,
body.izamachi-v4 .btn01::before,
body.izamachi-v4 .btn01::after { transition-duration: var(--dur); }
body.izamachi-v4 .circle_cta a,
body.izamachi-v4 .tag_list li { transition-duration: var(--dur-hover); }

/* ---------------------------------------------------------------------------
 * 16. 図版の差し替えにともなう組み直し（2026-09-18）
 *
 *  ・お悩みの線画3点は、比率が 1.82 / 0.87 / 1.80 とバラバラで並べても揃わなかった。
 *    同じ 120×120 の器・同じ線幅・ink の線＋gold の面だけ、で描き直した
 *    （DESIGN.md 第1部1「同じ役割のものが同じ形」/ 5「N個あるなら同じブロックをN個」）
 *  ・特長の写真6枚は、内容と噛み合っていたのが2枚だけで、1枚には LINE のロゴが
 *    そのまま写っていた。「消してもページの読み取り方が変わらないなら消す」
 *    （同 第1部2）に従い、線画アイコンに置き換えて横組みにした。
 *    お悩み（3列・縦組み）と形が変わるので、section の見分けもつく（同 2-1）
 *  ・写真は「実在感が要る1箇所」＝防災にだけ、大きく残した
 * ------------------------------------------------------------------------- */


/* 横並びは 1024px 以上だけ。13章（SP）より後ろに書いてあるので、
   囲わないと SP でも4列のままになる（2026-09-24 に発覚） */
@media screen and (min-width: 1024px) {
	/* ステップ: 4つを横に並べる（2026-09-19）。縦に積むと右側の余白が目立った。
	   カードの中は「番号チップ → 見出し → 説明」の縦組み */
	body.izamachi-v4 #izmt-steps-sec .row_list { grid-template-columns: repeat(4, 1fr); }
	body.izamachi-v4 #izmt-steps-sec .row_list > li {
		flex-direction: column;
		align-items: flex-start;
		gap: 0;
		min-height: 0;
		padding: 4.8rem 3.2rem 5.2rem;
		/* 17章は li に z-index を置いている。そのままだと重なりの文脈ができて、
		   中の番号チップ（z-index 4）が線（3）より後ろに閉じ込められる */
		z-index: auto;
	}
	body.izamachi-v4 #izmt-steps-sec .row_list > li .dt { width: auto; flex: none; }
	body.izamachi-v4 #izmt-steps-sec .row_list > li .dt .n { display: flex; margin: 0 0 1.2rem; }
	body.izamachi-v4 #izmt-steps-sec .row_list > li .dd { flex: none; max-inline-size: none; margin-top: 0.8rem; }
}
/* 線は引かない（2026-09-24）。番号チップだけで順序は読めるので、
   17章の縦線も横線もこの節では出さない */
body.izamachi-v4 #izmt-steps-sec .row_list::before,
body.izamachi-v4 #izmt-steps-sec .row_list.started::before { display: none; }

/* 画面: 3枚を大きく。440px 幅の画像を 200px で出すと文字が読めなかった
   （DESIGN.md 第1部6「収まっている」/ 7「素材に無理をさせない」） */

/* ヒーロー: 端末1枚を大きく。2枚並べると中身が読めなかった */
/* ヒーローの図は端末の SVG に置き換えたので、画像への指定は不要になった */

/* 防災の図版の幅は §12 に統合した。ここに素の（メディアクエリの外の）宣言を置くと
   SP の 100% 指定より後ろに来てしまい、375px でも 46% のまま縮んでいた */

/* ---------------------------------------------------------------------------
 * 17. 動き
 *     DESIGN.md 4-6 が動きを正当化する4つのうち「因果を示す」に当たるものだけ足す。
 *     ステップ 01→04 の縦線が一度だけ伸びて、順序があることを示す。
 *     無限ループ・パララックスは足さない（cocoro の fuwafuwa は同 4-6 で禁止側）
 * ------------------------------------------------------------------------- */
body.izamachi-v4 .row_list { position: relative; }
body.izamachi-v4 .row_list::before {
	content: "";
	position: absolute;
	left: 56px;
	top: 40px;
	width: 2px;
	height: 0;
	background-color: var(--gold);
	transition: height 0.4s cubic-bezier(.16,1,.3,1);
	z-index: 1;
}
body.izamachi-v4 .row_list.started::before { height: calc(100% - 80px); }
body.izamachi-v4 .row_list::before { z-index: 3; }
body.izamachi-v4 .row_list > li { position: relative; z-index: 2; }
body.izamachi-v4 .row_list > li .dt .n { position: relative; z-index: 4; }

@media (prefers-reduced-motion: reduce) {
	/* 前庭系を刺激する動きではないが、線が伸びる演出は外し、最初から引いておく */
	body.izamachi-v4 .row_list::before { transition: none; height: calc(100% - 80px); }
}

/* ---------------------------------------------------------------------------
 * 18. sp（図版の差し替えぶん）
 * ------------------------------------------------------------------------- */
@media screen and (max-width: 1023px) {
	body.izamachi-v4 .joined > li .image { margin: 20px -2.5rem 28px; }
	body.izamachi-v4 .row_list::before { left: 36px; top: 30px; }
	body.izamachi-v4 .row_list.started::before { height: calc(100% - 60px); }
}

/* ---------------------------------------------------------------------------
 * 19. 見出しのマークを外す（2026-09-18）
 *     吹き出しの絵は情報を運んでいなかった（DESIGN.md 第1部2）。
 *     代わりに 32px の細い罫と英字ラベルだけにする。
 *     mono は足さない。書体は2ファミリーまで（同 2-4）なので Montserrat を使い、
 *     数字だけ tabular-nums にして技術図らしい並びにする
 * ------------------------------------------------------------------------- */
body.izamachi-v4 .subtitle01 { align-items: center; }
body.izamachi-v4 .subtitle01::before {
	content: "";
	width: 32px;
	height: 1px;
	background-color: var(--ink);
	opacity: .22;
	margin-bottom: 24px;
}
body.izamachi-v4 .subtitle01 .en {
	order: -1;
	margin-bottom: 16px;
	font-variant-numeric: tabular-nums;
}
body.izamachi-v4 .main_title .en { font-variant-numeric: tabular-nums; }

/* ---------------------------------------------------------------------------
 * 20. 図版（等角・2026-09-18 に全面改訂）
 *
 *  人物は Figma の vacan > service_site のイラスト群（node 2129:94862）をそのまま使う。
 *  小物（家・端末・掲示板・硬貨）はその様式に合わせて等角で描き起こした（assets/iso.py）。
 *
 *  ・輪郭線は引かない。1つの立体につき上＝明 / 左＝中 / 右＝暗 の3面
 *  ・色は人物群から採る。主役は黄 #FFD500 系
 *  ・人物の定義はページ先頭の .ill_defs に1つだけ置き、各図は <use> で参照する
 *    （同じ人が何度出ても容量が増えない）
 * ------------------------------------------------------------------------- */
body.izamachi-v4 .ill { display: block; width: 100%; height: auto; }
body.izamachi-v4 .ill-well { display: block; }
body.izamachi-v4 .ill_defs { position: absolute; width: 0; height: 0; overflow: hidden; }

/* ---------------------------------------------------------------------------
 * 21. 図版のアニメーション
 *  視界に入ったとき一度だけ。無限ループは作らない（DESIGN.md 4-6）。
 *  動きを概念そのものに割り当てる（同 4-6 の「因果を示す」）。
 *    ・下から現れる  = 建つ／集まる／届いた結果
 *    ・進行方向へ滑る = 届く／回る
 *    ・下から伸びる  = 増える／減る（棒グラフ）
 *    ・裂け目が開く  = 断ち切られる（地割れ）
 *  すべて 400ms 以内。
 * ------------------------------------------------------------------------- */
body.izamachi-v4 .ill :is(.h, .p, .ph, .src, .cal, .row, .board, .cn, .kit, .ck, .gnd,
                          .nt, .mg, .qr, .cd, .dn, .warn, .crk) {
	opacity: 0;
	transform: translateY(10px);
	transition: opacity .3s ease, transform .4s cubic-bezier(.2,.7,.2,1);
}
body.izamachi-v4 .started .ill :is(.h, .p, .ph, .src, .cal, .row, .board, .cn, .kit, .ck, .gnd,
                                   .nt, .mg, .qr, .cd, .dn, .warn, .crk) {
	opacity: 1;
	transform: none;
}

/* 流れは進行方向へ滑って現れる */
body.izamachi-v4 .ill :is(.send, .path) { opacity: 0; transform: translateX(-14px); }
body.izamachi-v4 .ill :is(.send, .path) {
	transition: opacity .3s ease, transform .4s cubic-bezier(.2,.7,.2,1);
}
body.izamachi-v4 .started .ill :is(.send, .path) { opacity: 1; transform: none; }

/* 棒グラフは地面から伸びる */
body.izamachi-v4 .ill .b {
	opacity: 0; transform-box: fill-box; transform-origin: 50% 100%;
	transform: scaleY(.1);
	transition: opacity .2s ease, transform .4s cubic-bezier(.2,.7,.2,1);
}
body.izamachi-v4 .started .ill .b { opacity: 1; transform: none; }

/* 集金は一軒ずつ回る＝人が右へ */
body.izamachi-v4 .ill .walk { transform: translateX(-24px); }
body.izamachi-v4 .started .ill .walk { transform: none; transition: transform .4s cubic-bezier(.2,.7,.2,1) .2s; }

body.izamachi-v4 .started .ill .a0 { transition-delay: .05s; }
body.izamachi-v4 .started .ill .a1 { transition-delay: .17s; }
body.izamachi-v4 .started .ill .a2 { transition-delay: .29s; }
body.izamachi-v4 .started .ill .a3 { transition-delay: .41s; }
body.izamachi-v4 .started .ill .s1 { transition-delay: .22s; }
body.izamachi-v4 .started .ill .s2 { transition-delay: .34s; }
body.izamachi-v4 .started .ill .s3 { transition-delay: .46s; }
body.izamachi-v4 .started .ill .p1 { transition-delay: .24s; }
body.izamachi-v4 .started .ill .p2 { transition-delay: .36s; }
body.izamachi-v4 .started .ill .c0 { transition-delay: .40s; }
body.izamachi-v4 .started .ill .c1 { transition-delay: .55s; }
body.izamachi-v4 .started .ill .c2 { transition-delay: .70s; }

@media (prefers-reduced-motion: reduce) {
	/* 2026-09-19 修正。ここは以前 `.ill * { transform: none !important }` と書いていた。
	   図版の中には**配置のための transform 属性**がある
	   （`<g transform="translate(160 118)">`、人物の `<use transform="translate(…) scale(…)">`）。
	   ワイルドカードで潰すと、動きだけでなく配置まで消えて、図が原点へ寄って切れていた。
	   動かしているのは下のクラスが付いた外側の <g> だけで、こちらは transform 属性を
	   持たない（持たせない決まりにしてある）。だからクラスを名指しして、
	   .started が付いたときと同じ静止状態を最初から与える */
	body.izamachi-v4 .ill :is(.h,.p,.ph,.src,.cal,.row,.board,.cn,.kit,.ck,.gnd,
	                          .nt,.mg,.qr,.cd,.dn,.warn,.crk,.send,.path,.b,.walk) {
		opacity: 1;
		transform: none;
		transition: opacity .2s ease;
	}
}

/* ---------------------------------------------------------------------------
 * 22. ヘッダーのロゴ
 *     テーマは共通ヘッダーのロゴを h1 にしているが、このページの h1 は
 *     ヒーローの見出し（いざという時の…）にしたいので p に変えた。
 *     main.css の `header h1` / `.sp-header h1` が効かなくなるぶんをここで補う。
 * ------------------------------------------------------------------------- */
body.izamachi-v4 header .logo_h { margin: 0; }
@media screen and (min-width: 960px) {
	body.izamachi-v4 header .logo_h { display: flex; align-items: center; margin-left: 40px; }
	body.izamachi-v4 header .logo_h a { display: block; width: 120px; line-height: 0; }
}
@media screen and (max-width: 959px) {
	body.izamachi-v4 .sp-header .logo_h { line-height: 0; width: 50%; padding-left: 2.4rem; }
	body.izamachi-v4 .sp-header .logo_h svg * { fill: #ffffff !important; }
}

/* 23.（欠番）「こんな画面で使えます」の節は 2026-09-19 に削除した */

/* ---------------------------------------------------------------------------
 * 24. インタラクション層（2026-09-19）
 *
 *     https://umanodesign.studio/ の動きを移植した。実装は assets/motion.js。
 *     **静止状態の見た目は移植前と同じ。** 動きだけを足している。
 *
 *     初期状態（隠す指定）は body.mo が付いたときだけ効かせる。
 *     素の CSS で隠すと、JS が落ちたときに本文が出てこない。
 * ------------------------------------------------------------------------- */

/* 24-1. 見出しのマスク行送り ------------------------------------------------ */
body.izamachi-v4 .mo_mask {
	display: block;
	overflow: hidden;
	/* 和文の下に出るデセンダと、行送りの端数で1px欠けるのを防ぐぶん */
	padding-bottom: 0.2em;
	margin-bottom: -0.2em;
}
body.izamachi-v4.mo .mo_in {
	display: block;
	transform: translateY(110%);
	transition: transform 0.85s cubic-bezier(.76, 0, .24, 1);
	transition-delay: calc(var(--mo-i, 0) * 100ms);
	will-change: transform;
}
body.izamachi-v4.mo .is-mo .mo_in { transform: translateY(0); }
/* 器を作った見出しには、旧来の delighter の出方を重ねない（二重に動く） */
body.izamachi-v4 [data-mo-mask] { opacity: 1 !important; transform: none !important; }

/* 24-2. 交差監視のリビール --------------------------------------------------
   向こうの値そのまま: opacity 0→1 / translateY(32px)→0 / .65s ease */
body.izamachi-v4.mo [data-mo] {
	opacity: 0;
	transform: translateY(32px);
	transition: opacity 0.65s ease, transform 0.65s ease;
}
body.izamachi-v4.mo [data-mo].is-mo { opacity: 1; transform: translateY(0); }

/* 24-3. カスタムカーソル ----------------------------------------------------
   canvas の輪と 8px の点。既定のカーソルは消す。
   ただし**文字の上では I ビームを残す**。移植元は全部消していたが、
   入力欄やテキストで形が変わらないのは操作の手がかりを1つ失う */
body.izamachi-v4.mo-cursor,
body.izamachi-v4.mo-cursor a,
body.izamachi-v4.mo-cursor button { cursor: none; }
body.izamachi-v4 .mo_ring {
	position: fixed;
	top: 0; left: 0;
	width: 100%; height: 100%;
	pointer-events: none;
	z-index: 99997;
}
body.izamachi-v4 .mo_dot {
	position: fixed;
	top: 0; left: 0;
	width: 8px; height: 8px;
	border-radius: 50%;
	background-color: var(--ink);
	pointer-events: none;
	z-index: 99998;
	will-change: transform;
	transition: background-color 0.2s ease, opacity 0.15s ease;
}

/* 24-4. パララックスで動かす面。毎フレーム transform を書き換えるので、
         合成レイヤに乗せておく */
body.izamachi-v4.mo .ill { will-change: transform; }
/* 移植元は図版に scale(1.08) を掛けて器で切っていた（写真なので端が切れても困らない）。
   こちらの図版は器・セーフエリア・占有率を決めて描いたものなので、**拡大も切り取りもしない**。
   カードの内側の余白の中で動かすだけにして、静止時の見た目を1pxも変えない */

/* 24-5. 触ったときの手応え --------------------------------------------------
   向こうはカードのホバーで grayscale(1) → none を .4s、
   高さの変化に cubic-bezier(.34,1.56,.64,1)（行き過ぎて戻るばね）を当てていた。
   .is-near は指の環境での hover の代わり（画面の中央に来たカードに付く） */
/* 移植元は写真を grayscale(1) で置き、ホバーで色を戻していた。
   こちらは**採らない**。静止状態の見た目が変わる（写真が白黒になる）ため。
   触ったときの手応えは、寄る動きだけで出す */
body.izamachi-v4 .joined.photo_cards > li .ph img {
	transition: transform 0.6s cubic-bezier(.34, 1.56, .64, 1);
}
body.izamachi-v4 .joined.photo_cards > li:hover .ph img,
body.izamachi-v4 .joined.photo_cards > li.is-near .ph img { transform: scale(1.03); }

body.izamachi-v4 .joined > li,
body.izamachi-v4 .qa_list > li {
	transition: transform 0.6s cubic-bezier(.34, 1.56, .64, 1), box-shadow 0.4s ease;
}
/* リビールの .is-mo が transform を握っているので、ホバーはそれより強く書く。
   同じ強さだと後勝ちで .is-mo の translateY(0) に負け、カードが持ち上がらない */
body.izamachi-v4 .joined > li:hover,
body.izamachi-v4 .joined > li.is-near,
body.izamachi-v4.mo .joined > li[data-mo].is-mo:hover,
body.izamachi-v4.mo .joined > li[data-mo].is-mo.is-near { transform: translateY(-6px); }

/* 印刷。出方の初期状態を持ち越すと、まだ出ていない部分が白紙で刷られる */
@media print {
	body.izamachi-v4.mo [data-mo],
	body.izamachi-v4.mo .mo_in { opacity: 1 !important; transform: none !important; }
	body.izamachi-v4 .mo_ring, body.izamachi-v4 .mo_dot { display: none !important; }
}

/* 24-6. 動きを減らす設定 ----------------------------------------------------
   慣性スクロールとパララックスは motion.js 側で止める。
   出方は「最初から出ている」にする（消したままにはしない） */
@media (prefers-reduced-motion: reduce) {
	body.izamachi-v4.mo .mo_in { transform: none !important; transition: none !important; }
	body.izamachi-v4.mo [data-mo] { opacity: 1 !important; transform: none !important; transition: none !important; }
	body.izamachi-v4 .joined > li:hover,
	body.izamachi-v4 .joined > li.is-near { transform: none; }
	body.izamachi-v4 .joined > li,
	body.izamachi-v4 .qa_list > li { transition: none; }
}

/* ---------------------------------------------------------------------------
 * 26. ヘッダ（Figma: izamachi_app_local_community 9726:35857 / 2026-09-19）
 *
 *     左に VACAN のロゴ、中央に白い丸帯のイザマチ用ナビ、右に紫の四角。
 *     企業サイト共通のメガメニューは、このページでは常時出さず
 *     右の紫の四角（共通の .drawer__btn）から開く畳んだメニューに回す。
 *
 *     ・左上のロゴは共通の .middle-logo を使う（959〜1208px では元から出ている）
 *     ・ナビは header.drawer の外に置く。共通の drawer.js が
 *       「drawer の中のリンクを押したら開閉する」作りで、中に置くと
 *       ページ内リンクを押すたびにメニューが開いてしまう
 * ------------------------------------------------------------------------- */
@media screen and (min-width: 1024px) {
	body.izamachi-v4 .middle-logo { display: block; top: 6.4rem; left: 6.4rem; z-index: 9990; }
	body.izamachi-v4 .middle-logo a { width: 110px; }

	body.izamachi-v4 .izmt_nav {
		position: fixed;
		top: 2.4rem;
		left: 50%;
		transform: translateX(-50%);
		z-index: 9990;
		display: flex;
		align-items: center;
		/* left:50% で置いているだけだと、器の幅が「画面の右半分」に縛られて
		   中身が縮む（ロゴまで小さくなる）。中身なりの幅を持たせる */
		width: max-content;
		max-width: calc(100vw - 32rem);
		/* 器の余白は Figma のまま（上下20・左48・右20）。項目の間だけ画面幅で詰める */
		gap: clamp(2rem, 2.8vw, 4rem);
		padding: 2rem 2rem 2rem 4.8rem;
		box-sizing: border-box;
		border-radius: 12rem;
		background-color: var(--white);
		box-shadow: 0 1rem 3rem rgba(96, 93, 102, 0.12);
	}
	body.izamachi-v4 .izmt_nav_logo { display: block; line-height: 0; flex: none; }
	/* 高さは指定しない。画像の縦横比は絶対に変えない */
	body.izamachi-v4 .izmt_nav_logo img { display: block; width: 10.4rem; height: auto; }
	body.izamachi-v4 .izmt_nav_list {
		display: flex;
		align-items: center;
		gap: clamp(2rem, 2.8vw, 4rem);
		margin: 0;
		padding: 0;
		list-style: none;
	}
	body.izamachi-v4 .izmt_nav_list a {
		font-family: "Montserrat", sans-serif;
		font-weight: 600;
		font-size: 1.4rem;
		letter-spacing: 0;
		color: var(--ink);
		text-decoration: none;
		white-space: nowrap;
	}
	body.izamachi-v4 .izmt_nav_list a:hover { color: var(--gold-dark); }
	/* いま見ている節と同じ名前の項目を現在地として示す */
	body.izamachi-v4 .izmt_nav_list a { position: relative; padding-bottom: 0.6rem; }
	body.izamachi-v4 .izmt_nav_list a::after {
		content: "";
		position: absolute;
		left: 0;
		right: 0;
		bottom: 0;
		height: 2px;
		border-radius: 1px;
		background-color: var(--gold-deep);
		transform: scaleX(0);
		transform-origin: left center;
		transition: transform var(--dur) cubic-bezier(.16, 1, .3, 1);
	}
	body.izamachi-v4 .izmt_nav_list a.is-here { color: var(--gold-dark); }
	body.izamachi-v4 .izmt_nav_list a.is-here::after { transform: scaleX(1); }
	body.izamachi-v4 .izmt_nav_cta {
		flex: none;
		display: grid;
		place-items: center;
		width: 14rem;
		height: 5.9rem;
		box-sizing: border-box;
		border-radius: var(--r-pill);
		background-color: var(--ink);
		color: var(--page);
		font-size: 1.4rem;
		font-weight: 600;
		letter-spacing: 0;
		text-decoration: none;
		white-space: nowrap;
		transition: background-color var(--dur-hover) ease;
	}
	body.izamachi-v4 .izmt_nav_cta:hover { background-color: #241B00; }

	/* 紫の四角。共通のボタンは mix-blend-mode で地の色を反転させているが、
	   ここは面の色を決め打ちにする（Figma と同じ） */
	body.izamachi-v4 .drawer__btn {
		display: block;
		width: 6.4rem;
		height: 6.4rem;
		right: 6.4rem;
		top: 4.2rem;
		background-color: #512376;
		mix-blend-mode: normal;
		box-shadow: 10px 10px 30px rgba(96, 93, 102, 0.15);
	}
	body.izamachi-v4 .drawer__btn .drawer__btn__inner { inset: 0; width: 100%; height: 100%; }
	body.izamachi-v4 .drawer__btn span { width: 3.2rem; left: 1.6rem; height: 2px; background: #fff; }
	body.izamachi-v4 .drawer__btn span:nth-of-type(1) { top: 2.5rem; }
	body.izamachi-v4 .drawer__btn span:nth-of-type(2) { bottom: 2.5rem; top: auto; }
	/* 共通のボタンは線が2本。Figma は3本なので、真ん中の1本を足す。
	   開いたときは×になるので消す */
	body.izamachi-v4 .drawer__btn .drawer__btn__inner::after {
		content: "";
		position: absolute;
		left: 1.6rem;
		top: 3.1rem;
		width: 3.2rem;
		height: 2px;
		background: #fff;
		transition: opacity 0.2s ease;
	}
	body.izamachi-v4.menu-open .drawer__btn .drawer__btn__inner::after { opacity: 0; }
}

/* ---------------------------------------------------------------------------
 *  引き出しメニュー（2026-09-24 全面整理）
 *
 *  ・1208px 以下では共通CSSが「右から出る紫の引き出し」にしてくれる。
 *    1209px 以上は白い横帯のままなので、ここで同じ形にそろえる。
 *  ・**中身の組みは幅で分けない。** 幅ごとに別指定にしていたせいで、
 *    スマホではロゴとボタンが器からはみ出していた
 * ------------------------------------------------------------------------- */
@media screen and (min-width: 1209px) {
	body.izamachi-v4 header.pc-header.drawer {
		display: block;
		width: 32rem;
		height: 100%;
		padding: 12rem 0 4.8rem;
		position: fixed;
		top: 0;
		right: 0;
		left: auto;
		overflow: auto;
		box-sizing: border-box;
		transform: translateX(100%);
		background: #512376;
		z-index: 9998;
	}
	body.izamachi-v4.transition-on header.pc-header.drawer {
		transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1) 0s;
	}
	body.izamachi-v4.menu-open header.pc-header.drawer { transform: translateX(0); }
	/* 開いている間の×は引き出しの右上へ。紫の四角と影は面に溶けるので外す */
	body.izamachi-v4 .drawer__btn { transition: right 0.3s cubic-bezier(.16,1,.3,1), top 0.3s cubic-bezier(.16,1,.3,1), background-color 0.3s ease; }
	body.izamachi-v4.menu-open .drawer__btn {
		right: 2rem;
		top: 2rem;
		background-color: transparent;
		box-shadow: none;
	}
}


/* 引き出し（1208px 以下）の中の VACAN ロゴ。紫の面に置くので白にする
   （共通CSSは h1 の中のロゴしか白にしていない。ここは p.logo_h） */
@media screen and (max-width: 1208px) {
	body.izamachi-v4 header.pc-header .logo_h svg .cls-1 { fill: #FFFFFF; }
}

/* SP。丸帯のナビは置かず、共通のヘッダとメニューのまま */
@media screen and (max-width: 1023px) {
	body.izamachi-v4 .izmt_nav { display: none; }
}

/* ---------------------------------------------------------------------------
 * 27. SOLUTION ＋ 特長（2026-09-19 統合）
 *
 *     1つの濃い面にまとめた。初期は今までどおりの大きさ。少し送ると
 *     面（.ink_panel::before）が画面いっぱいへ広がり、入れ替わりに特長が
 *     1つずつ出てくる。広げるのは**面だけ**で、中身は器の幅に置いたまま。
 *     全幅に散らすと1行が長くなりすぎて読めない（2-4 行長の上限）。
 *
 *     効かせるのは 1024px 以上・動きを減らす設定でないときだけ。
 *     それ以外は導入と6つの特長が上から順に並ぶ普通の節になる。
 *
 *     スクショは「もう使える機能」にだけ置く。会費・業務の見える化・防災は
 *     2026年内の順次リリースで画面がまだ無いので、無理に別の画面を当てず、
 *     図版だけを中央に置く（素材に無理をさせない）
 * ------------------------------------------------------------------------- */
/* サイト共通の外枠 .wrap（common/css/main.css:332）が overflow: hidden なので、
   その中の position: sticky は「スクロールしない入れ物」に閉じ込められて動かない。
   clip に替えると、はみ出しの切り取りはそのままで入れ物のほうは作られない。
   このページだけに効かせる。clip が使えない環境では貼り付け自体を止める（motion.js） */
body.izamachi-v4 .wrap { overflow: clip; }

body.izamachi-v4 .sol_rail { position: relative; }
body.izamachi-v4 .sol_anchor { position: absolute; top: 0; left: 0; width: 1px; height: 1px; }
/* 導入・特長に共通の2列組み（濃い面の中の組みをそのまま使う） */
body.izamachi-v4 .sol_intro,
body.izamachi-v4 .sol_feat {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(20rem, 26rem);
	gap: min(4.45vw, 8rem);
	align-items: center;
}
body.izamachi-v4 .sol_feat.no_shot {
	grid-template-columns: minmax(0, 76rem);
	justify-content: center;
}
body.izamachi-v4 .sol_panel { display: block; }
body.izamachi-v4 .sol_feats { margin-top: 8rem; }
body.izamachi-v4 .sol_swap { position: relative; }
body.izamachi-v4 .sol_feat + .sol_feat { margin-top: 8rem; }

body.izamachi-v4 .sol_head {
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	font-size: var(--f-h1);
	font-weight: 600;
	letter-spacing: 0;
	line-height: var(--lh-h1);
	margin: 0;
	color: var(--ink);
}
/* 「イザマチ」は文字ではなくロゴ。読み上げは alt が受け持つ。
   高さだけ指定して比は保つ（DECISIONS #1） */
body.izamachi-v4 .sol_head .jp { display: inline-flex; align-items: baseline; gap: 0.04em; }
body.izamachi-v4 .sol_logo {
	height: 0.88em;   /* 「の特長」の字面（約0.88em）に高さを揃える */
	width: auto;
	display: inline-block;
	align-self: center;
	margin-bottom: 0.04em;
}
body.izamachi-v4 .sol_head .en {
	order: -1;
	font-size: 1.4rem;
	letter-spacing: 0.01em;
	color: var(--gold-dark);
	font-weight: 600;
	margin-bottom: 1.2rem;
}
body.izamachi-v4 .sol_n {
	display: block;
	font-size: 1.7rem;
	font-weight: 600;
	letter-spacing: 0.01em;
	color: var(--gold-dark);
	margin-bottom: 0.4rem;
}
body.izamachi-v4 .sol_body h3 {
	font-size: var(--f-h2);
	font-weight: 600;
	line-height: var(--lh-h2);
	letter-spacing: 0;
	margin: 0 0 0.8rem;
	color: var(--ink);
}
body.izamachi-v4 .sol_body .text {
	font-size: 1.7rem;
	line-height: var(--lh-body);
	/* 行間 2.0 は1行目の上にも半分ぶん（0.5em）空きを作る。
	   見出しとの間が二重に空くので、その半分を打ち消して上へ詰める */
	margin: -0.5em 0 0;
	max-inline-size: var(--measure);
	color: var(--ink);
}
body.izamachi-v4 .sol_body .tag_list { margin: 2rem 0 0; }
/* 図版は白地で描いてある。濃い面の上では白い器に載せる */
/* 図版は面に直接置く。白い器で囲うと、淡い黄の面の中で四角が浮いて見える */
body.izamachi-v4 .sol_body .ill-well {
	display: block;
	margin-top: 2.4rem;
	width: min(100%, 38rem);
	line-height: 0;
}
body.izamachi-v4 .sol_feat.no_shot .sol_body .ill-well { margin-inline: auto; width: min(100%, 44rem); }
body.izamachi-v4 .sol_body .ill { display: block; width: 100%; height: auto; }
/* スクショ。高さでも頭打ちにして、画面の低い環境でも面からはみ出さない */
body.izamachi-v4 .sol_shot { justify-self: end; width: min(100%, 25vh); }
body.izamachi-v4 .sol_shot .shot_frame { width: 100%; }
/* キャプチャがまだ無い機能。枠だけ同じ大きさで置いておく */
body.izamachi-v4 .shot_slot {
	aspect-ratio: 440 / 957;
	background-color: transparent;
	border: 2px dashed rgba(58, 43, 0, 0.25);
	box-sizing: border-box;
	display: grid;
	place-items: center;
	line-height: var(--lh-small);
}
body.izamachi-v4 .shot_note {
	color: var(--gold-dark);
	font-size: var(--f-small);
	font-weight: 600;
	letter-spacing: 0;
	text-align: center;
}

/* 27-2. 貼り付けて広げる状態 ------------------------------------------------ */
body.izamachi-v4.mo .sol_rail.is-sol .sol_stick {
	position: sticky;
	top: 0;
	height: 100vh;
	height: 100svh;   /* スマホはツールバーの出入りで 100vh が変わる。svh で固定する */
	overflow: hidden;
	display: grid;
	/* 固定ヘッダ（丸帯の下端 123px）から十分に離す。
	   中央寄せだと見出しがヘッダに寄りすぎるので、上から置く */
	align-items: start;
	/* 特長（01〜06）の塊を面の上のほうに置く。見出しは --headC で
	   面の上下中央に寄せ直されるので、ここを詰めても見出しはずれない */
	padding-top: 4rem;
	box-sizing: border-box;
}
body.izamachi-v4.mo .sol_rail.is-sol .sol_anchor { top: 60vh; }
body.izamachi-v4.mo .sol_rail.is-sol .sol_panel { padding-block: 4rem 7.2rem; }
/* 面だけを広げる。--e / --ex / --ey は motion.js が入れる */
body.izamachi-v4.mo .sol_rail.is-sol .sol_panel::before {
	left: calc(-6rem - var(--exL, 0px));
	width: calc(100% + 12rem + var(--exL, 0px) + var(--exR, 0px));
	top: calc(-1 * var(--eyT, 0px));
	height: calc(100% + var(--eyT, 0px) + var(--eyB, 0px));
	border-radius: calc(var(--r-lg) * (1 - var(--e, 0)));
}
/* 止まっている間は見出しを面の上下中央に置き、スクロールで上へ抜けながら消す。
   --headC（中央までの距離）と --hp（1=静止, 0=消えた）は motion.js が入れる。
   見出しの占める高さは動かさないので、下の特長の位置はずれない */
body.izamachi-v4.mo .sol_rail.is-sol .sol_head {
	transform: translateY(calc(var(--headC, 0px) - 8rem * (1 - var(--hp, 1))));
	will-change: transform, opacity;
	pointer-events: none;   /* 消えた後も中央付近に居るので、当たり判定は外す */
}
/* 導入と特長を同じマスに重ね、入れ替える */
body.izamachi-v4.mo .sol_rail.is-sol .sol_swap { display: grid; }
body.izamachi-v4.mo .sol_rail.is-sol .sol_intro,
body.izamachi-v4.mo .sol_rail.is-sol .sol_feats { grid-area: 1 / 1; margin: 0; }
/* 6枚は同じマスに重ねる。重ねないと全部の高さを足した面になる */
body.izamachi-v4.mo .sol_rail.is-sol .sol_feats { display: grid; }
body.izamachi-v4.mo .sol_rail.is-sol .sol_feat {
	grid-area: 1 / 1;
	margin: 0;
	opacity: 0;
	transform: translateY(24px);
	transition: opacity 0.45s ease, transform 0.6s cubic-bezier(.16, 1, .3, 1);
	pointer-events: none;
}
body.izamachi-v4.mo .sol_rail.is-sol .sol_feat.is-on {
	opacity: 1;
	transform: none;
	pointer-events: auto;
}

@media screen and (max-width: 1023px) {
	/* 装飾の英字は段を1つ落として 12px に揃える（Apple も eyebrow を1段下げる） */
	body.izamachi-v4 .sol_head .en { font-size: 1.2rem; }
	body.izamachi-v4 .sol_intro,
	body.izamachi-v4 .sol_feat { grid-template-columns: 1fr; gap: 3.2rem; }
	body.izamachi-v4 .sol_feats { margin-top: 5.6rem; }
	body.izamachi-v4 .sol_feat + .sol_feat { margin-top: 5.6rem; }
	body.izamachi-v4 .sol_head { font-size: var(--f-h1); margin-bottom: 0; }
	body.izamachi-v4 .sol_shot { justify-self: center; width: min(100%, 22rem); }
	body.izamachi-v4 .sol_body .ill-well,
	body.izamachi-v4 .sol_feat.no_shot .sol_body .ill-well { width: 100%; }
}

/* 27-3. スマホでも同じ見せ方にする（2026-09-24）
   幅が足りないので2列にはできない。1画面に収まるよう詰め、
   図版とスクショはどちらか一方だけ出す
   （実物の画面がある回はスクショ、まだ無い回は図版） */
@media screen and (max-width: 1023px) {
	body.izamachi-v4.mo .sol_rail.is-sol .sol_stick { padding-top: 3rem; }
	body.izamachi-v4.mo .sol_rail.is-sol .sol_panel { padding: 3.2rem 2.5rem 4rem; }
	body.izamachi-v4.mo .sol_rail.is-sol .sol_feat { gap: 2rem; }
	body.izamachi-v4.mo .sol_rail.is-sol .sol_head { font-size: var(--f-h1); margin-bottom: 0; }
	/* SP は左に文字・右に端末の2段組なので文字の器が狭い。
	   段の目を1つ下げて 19px にしないと「録」が1文字だけ次行に落ちる */
	/* Apple のカード見出しは ≤734 で 21px。縦並びにして器が広がったので段を戻す */
	body.izamachi-v4.mo .sol_rail.is-sol .sol_body h3 { font-size: 2.1rem; margin-bottom: 0.6rem; }
	body.izamachi-v4.mo .sol_rail.is-sol .sol_body .text { font-size: 1.4rem; line-height: var(--lh-small); margin-top: -0.5em; }
	body.izamachi-v4.mo .sol_rail.is-sol .sol_body .tag_list { margin-top: 1.4rem; }
	/* 幅だけで決める（440:957 の比は保たれる）。高さの上限は vh で効かせる */
	body.izamachi-v4.mo .sol_rail.is-sol .sol_shot { justify-self: center; width: min(100%, 20vh); margin-top: 0.8rem; }
	body.izamachi-v4.mo .sol_rail.is-sol .sol_body .ill-well { display: none; }
	body.izamachi-v4.mo .sol_rail.is-sol .sol_feat[data-sol-slot] .sol_shot { display: none; }
	body.izamachi-v4.mo .sol_rail.is-sol .sol_feat[data-sol-slot] .sol_body .ill-well {
		display: block;
		width: min(100%, 26rem);
		margin: 1.6rem auto 0;
	}
	/* 導入はスライドショーを外して1画面に収める。
	   同じ画面は下の特長の中に大きく出るので、ここでの重複を落とす */
	body.izamachi-v4.mo .sol_rail.is-sol .sol_intro .ink_panel_shot { display: none; }
	body.izamachi-v4.mo .sol_rail.is-sol .sol_intro .prose p { font-size: 1.4rem; line-height: 1.9; }
	body.izamachi-v4.mo .sol_rail.is-sol .sol_intro .lead { font-size: 1.7rem; }
	body.izamachi-v4.mo .sol_rail.is-sol .sol_intro .btn_list { margin-top: 2.4rem !important; }
}

/* ---------------------------------------------------------------------------
 * 28. 特長に置く端末の画面（2026-09-24）
 *
 *     Figma: izamachi_app_local_community 9727:36050（実機の UI）を写した。
 *     画像ではなく HTML。特長が出たときに 1回だけ動く（ループしないので
 *     止める手段は要らない。WCAG 2.2.2 の対象外）。
 *
 *     大きさの決め方: 器の幅だけ指定し、中身は cqw（器の幅に対する割合）で組む。
 *     どの幅でも同じ見えになり、画像のように比が崩れることもない。
 *     端末は行の上端から下へ伸ばし、**画面の下端で切る**
 *     （箱の高さを 0 にして流し込みから外し、貼り付いた面の overflow で切る）
 * ------------------------------------------------------------------------- */
/* 大きさの基準は親（.sol_shot）。自分自身の cqw は引けないので、
   container-type は器の側に置く */
body.izamachi-v4 .sol_shot { container-type: inline-size; }
body.izamachi-v4 .uiph {
	--app-fill: #F2EBD9;
	width: 100%;
	aspect-ratio: 360 / 800;
	padding: 0.8em;
	box-sizing: border-box;
	border-radius: 4.4em;
	background-color: var(--ink);
	box-shadow: 0 2.4em 5em rgba(58, 43, 0, 0.22);
	font-size: 2.78cqw;   /* 端末の幅 360 のとき 1em = 10px */
	line-height: 1.5;
	color: var(--ink);
}
body.izamachi-v4 .uiph_in {
	position: relative;
	width: 100%;
	height: 100%;
	border-radius: 3.8em;
	overflow: hidden;
	background-color: #FAF3E3;
	display: flex;
	flex-direction: column;
}
body.izamachi-v4 .ui_status {
	flex: none;
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 1.4em 2em 0.6em;
	font-size: 1.1em;
	font-weight: 700;
}
body.izamachi-v4 .ui_status .sig { display: flex; align-items: flex-end; gap: 0.2em; height: 1em; }
body.izamachi-v4 .ui_status .sig i { width: 0.3em; background-color: var(--ink); border-radius: 0.15em; }
body.izamachi-v4 .ui_status .sig i:nth-child(1) { height: 30%; }
body.izamachi-v4 .ui_status .sig i:nth-child(2) { height: 55%; }
body.izamachi-v4 .ui_status .sig i:nth-child(3) { height: 80%; }
body.izamachi-v4 .ui_status .sig i:nth-child(4) { height: 100%; }
body.izamachi-v4 .ui_head {
	flex: none;
	display: flex;
	align-items: center;
	gap: 0.6em;
	padding: 0.8em 2em 1.2em;
	font-size: 1.7em;
	font-weight: 700;
}
body.izamachi-v4 .ui_head .material-icons {
	font-size: 1.1em;
	width: 1.3em;
	height: 1.3em;
	border-radius: 50%;
	background-color: var(--gold);
	display: grid;
	place-items: center;
}
body.izamachi-v4 .ui_body { flex: 1; min-height: 0; overflow: hidden; }
body.izamachi-v4 .ui_pane { height: 100%; padding: 0 2em; box-sizing: border-box; }
body.izamachi-v4 .ui_ttl { display: block; font-size: 1.4em; font-weight: 700; margin-bottom: 0.6em; }
body.izamachi-v4 .ui_sub { display: block; font-size: 1.1em; color: #8A7F62; margin-bottom: 1em; }

/* 投稿の一覧 */
body.izamachi-v4 .ui_feed { background-color: #FDFAF1; border-radius: 1.2em; }
body.izamachi-v4 .ui_post {
	display: flex;
	flex-direction: column;
	padding: 1.4em 1.6em;
	border-top: 1px solid #EFE7D2;
}
body.izamachi-v4 .ui_post:first-child { border-top: 0; }
body.izamachi-v4 .ui_post .d { font-size: 1em; color: #8A7F62; }
body.izamachi-v4 .ui_post .t { font-size: 1.3em; font-weight: 700; margin-top: 0.3em; }
body.izamachi-v4 .ui_post .c {
	font-size: 1.1em;
	color: #5C523F;
	margin-top: 0.3em;
	overflow: hidden;
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
}
body.izamachi-v4 .uiph .ph { display: flex; gap: 0.8em; margin-top: 0.8em; }
body.izamachi-v4 .uiph .ph i {
	flex: 1;
	height: 5.2em;
	border-radius: 0.6em;
	background-color: #EFE7D2;
	background-size: cover;
	background-position: center;
}
body.izamachi-v4 .uiph .ph.one i { height: 8em; }
body.izamachi-v4 .uiph .tg { display: flex; gap: 0.6em; margin-top: 0.9em; flex-wrap: wrap; }
body.izamachi-v4 .uiph .tg b {
	font-size: 1em;
	font-weight: 600;
	padding: 0.4em 0.9em;
	border-radius: 0.5em;
	background-color: #F4ECD5;
	color: #6B5A2A;
}
body.izamachi-v4 .uiph .tg b.hot { background-color: #FDE8E8; color: #B4302A; }

/* 投稿ボタンとタブ（Figma と同じ 3 つ） */
body.izamachi-v4 .ui_fab {
	position: absolute;
	right: 1.2em;
	bottom: 7.2em;
	width: 7.2em;
	height: 7.2em;
	border-radius: 50%;
	background-color: var(--gold);
	color: var(--ink);
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 0.1em;
	font-size: 1.1em;
	font-weight: 700;
	box-shadow: 0 0.4em 1.2em rgba(58, 43, 0, 0.25);
}
body.izamachi-v4 .ui_fab .material-icons { font-size: 1.9em; }
body.izamachi-v4 .ui_tab {
	flex: none;
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	background-color: var(--ink);
	padding: 1em 0 2.2em;
}
body.izamachi-v4 .ui_tab span {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 0.2em;
	font-size: 1em;
	color: #B9A87A;
}
body.izamachi-v4 .ui_tab .material-icons { font-size: 1.9em; }
body.izamachi-v4 .ui_tab .on { color: var(--white); font-weight: 700; }
body.izamachi-v4 .ui_tab .bdg { position: relative; }
body.izamachi-v4 .ui_tab .bdg::after {
	content: "";
	position: absolute;
	top: -0.2em;
	right: 2.2em;
	width: 0.7em;
	height: 0.7em;
	border-radius: 50%;
	background-color: #E5484D;
}

/* 01 招待 */
body.izamachi-v4 .ui_qr { background-color: var(--white); border-radius: 1.2em; padding: 1.6em; display: grid; place-items: center; }
body.izamachi-v4 .ui_qr svg { width: 14em; height: 14em; display: block; }
body.izamachi-v4 .ui_note { display: block; font-size: 1em; color: #8A7F62; text-align: center; margin: 0.8em 0 1em; }
body.izamachi-v4 .ui_link {
	display: flex; align-items: center; justify-content: space-between; gap: 0.8em;
	background-color: var(--app-fill); border: 0; border-radius: 0.8em;
	padding: 0.9em 1em; font-size: 1.1em;
}
body.izamachi-v4 .ui_link b { font-size: 0.9em; background-color: var(--gold); border-radius: 0.5em; padding: 0.4em 0.9em; }
body.izamachi-v4 .ui_toast {
	position: absolute;
	left: 2em; right: 2em; bottom: 16em;
	display: flex; align-items: center; gap: 0.6em;
	background-color: var(--ink); color: var(--white);
	border-radius: 0.9em; padding: 1em 1.2em; font-size: 1.1em; font-weight: 700;
	opacity: 0; transform: translateY(1.2em);
}
body.izamachi-v4 .ui_toast .material-icons { font-size: 1.6em; color: var(--gold); }
body.izamachi-v4 .ui_toast2 { bottom: 21.6em; }

/* 03 / 04 / 06 の一覧 */
body.izamachi-v4 .ui_sum { display: flex; align-items: baseline; gap: 0.5em; font-size: 1.1em; color: #8A7F62; margin-bottom: 0.8em; }
body.izamachi-v4 .ui_sum b { font-size: 2.2em; font-weight: 700; color: var(--ink); }
body.izamachi-v4 .ui_bar { height: 0.8em; border-radius: 0.4em; background-color: #EFE7D2; overflow: hidden; margin-bottom: 1.4em; }
body.izamachi-v4 .ui_bar i { display: block; height: 100%; width: 20%; background-color: var(--gold); border-radius: 0.4em; }
body.izamachi-v4 .ui_list { background-color: #FDFAF1; border-radius: 1.2em; overflow: hidden; }
body.izamachi-v4 .ui_row, body.izamachi-v4 .ui_todo, body.izamachi-v4 .ui_saf {
	display: flex; align-items: center; gap: 0.8em;
	padding: 1.2em 1.4em; border-top: 1px solid #EFE7D2; font-size: 1.2em;
}
body.izamachi-v4 .ui_row:first-child, body.izamachi-v4 .ui_todo:first-child, body.izamachi-v4 .ui_saf:first-child { border-top: 0; }
body.izamachi-v4 .ui_row .nm, body.izamachi-v4 .ui_todo .nm, body.izamachi-v4 .ui_saf .nm { flex: 1; }
body.izamachi-v4 .ui_row .am { font-weight: 700; }
body.izamachi-v4 .ui_row .ck, body.izamachi-v4 .ui_saf .material-icons { font-size: 1.5em; color: #D8CFB6; }
body.izamachi-v4 .ui_todo .bx { font-size: 1.5em; color: #B9A87A; }
body.izamachi-v4 .ui_todo .who { font-size: 0.85em; font-weight: 600; background-color: #F4ECD5; color: #6B5A2A; border-radius: 0.5em; padding: 0.3em 0.7em; opacity: 0; }
body.izamachi-v4 .ui_saf b { font-size: 0.9em; font-weight: 700; color: #2F7D4F; opacity: 0; }
body.izamachi-v4 .ui_alert {
	display: flex; align-items: center; gap: 0.6em;
	background-color: #FDE8E8; color: #B4302A; border-radius: 0.9em;
	padding: 1em 1.2em; font-size: 1.1em; font-weight: 700; margin-bottom: 1.2em;
}
body.izamachi-v4 .ui_alert .material-icons { font-size: 1.5em; }

/* 05 出欠 */
body.izamachi-v4 .ui_ans { display: flex; gap: 0.8em; margin-top: 1.2em; }
body.izamachi-v4 .ui_ans b {
	flex: 1; text-align: center; font-size: 1.2em; font-weight: 700;
	border-radius: 2em; padding: 1em 0; background-color: var(--app-fill); border: 0;
}
body.izamachi-v4 .ui_ans .yes { background-color: var(--gold); }
body.izamachi-v4 .ui_join { display: flex; align-items: center; justify-content: space-between; margin-top: 1.4em; font-size: 1.1em; }
body.izamachi-v4 .ui_join b { font-size: 1.4em; }
body.izamachi-v4 .ui_join .avs { display: flex; }
body.izamachi-v4 .ui_join .av {
	width: 2.4em; height: 2.4em; border-radius: 50%;
	background-color: #C9D6DE; border: 0.2em solid #FAF3E3; margin-left: -0.6em;
}
body.izamachi-v4 .ui_join .av2 { background-color: #E3D6B8; }
body.izamachi-v4 .ui_join .av3 { background-color: #D5DFC9; }
body.izamachi-v4 .ui_join .av4 { background-color: #E0CFC0; opacity: 0; }
body.izamachi-v4 .ui_join .av5 { background-color: #CBD3E0; opacity: 0; }

/* 28-2. 動き。その特長が出たときに1回だけ ------------------------------------ */
@keyframes uiRise { from { opacity: 0; transform: translateY(1.2em); } to { opacity: 1; transform: none; } }
@keyframes uiDrop { from { opacity: 0; max-height: 0; } to { opacity: 1; max-height: 14em; } }
@keyframes uiFeed { from { transform: translateY(0); } to { transform: translateY(-3.2em); } }
@keyframes uiCheck { from { color: #D8CFB6; } to { color: var(--gold-deep); } }
@keyframes uiBox { from { opacity: 0.4; } to { opacity: 1; } }
@keyframes uiBar20 { from { width: 20%; } to { width: 80%; } }
@keyframes uiBar10 { from { width: 10%; } to { width: 72%; } }
@keyframes uiFade { to { opacity: 1; } }
@keyframes uiPress { 0%, 100% { transform: none; } 40% { transform: scale(0.94); } }

body.izamachi-v4 .sol_feat.is-on .ui_toast1 { animation: uiRise 0.5s ease 1.1s both; }
body.izamachi-v4 .sol_feat.is-on .ui_toast2 { animation: uiRise 0.5s ease 2.2s both; }
body.izamachi-v4 .sol_feat.is-on .ui_new { animation: uiDrop 0.6s cubic-bezier(.16,1,.3,1) 0.8s both; }
body.izamachi-v4 .sol_feat.is-on .ui_feed { animation: uiFeed 3s ease-in-out 1.8s both; }
body.izamachi-v4 .sol_feat.is-on .ui_row1 .ck { animation: uiCheck 0.3s ease 0.9s both; }
body.izamachi-v4 .sol_feat.is-on .ui_row2 .ck { animation: uiCheck 0.3s ease 1.3s both; }
body.izamachi-v4 .sol_feat.is-on .ui_row3 .ck { animation: uiCheck 0.3s ease 1.7s both; }
body.izamachi-v4 .sol_feat.is-on .ui_row4 .ck { animation: uiCheck 0.3s ease 2.1s both; }
body.izamachi-v4 .sol_feat.is-on .ui_bar i { animation: uiBar20 2.2s cubic-bezier(.16,1,.3,1) 0.9s both; }
body.izamachi-v4 .sol_feat.is-on .ui_bar.sf i { animation: uiBar10 2.4s cubic-bezier(.16,1,.3,1) 0.9s both; }
body.izamachi-v4 .sol_feat.is-on .ui_todo1 .who { animation: uiFade 0.3s ease 0.9s both; }
body.izamachi-v4 .sol_feat.is-on .ui_todo2 .who { animation: uiFade 0.3s ease 1.3s both; }
body.izamachi-v4 .sol_feat.is-on .ui_todo3 .who { animation: uiFade 0.3s ease 1.7s both; }
body.izamachi-v4 .sol_feat.is-on .ui_todo4 .who { animation: uiFade 0.3s ease 2.1s both; }
body.izamachi-v4 .sol_feat.is-on .ui_todo1 .bx,
body.izamachi-v4 .sol_feat.is-on .ui_todo2 .bx { animation: uiBox 0.3s ease 1.1s both; }
body.izamachi-v4 .sol_feat.is-on .ui_ans .yes { animation: uiPress 0.45s ease 1.1s both; }
body.izamachi-v4 .sol_feat.is-on .ui_join .av4 { animation: uiFade 0.3s ease 1.6s both; }
body.izamachi-v4 .sol_feat.is-on .ui_join .av5 { animation: uiFade 0.3s ease 1.9s both; }
body.izamachi-v4 .sol_feat.is-on .ui_saf1 b,
body.izamachi-v4 .sol_feat.is-on .ui_saf1 .material-icons { animation: uiFade 0.3s ease 1s both, uiCheck 0.3s ease 1s both; }
body.izamachi-v4 .sol_feat.is-on .ui_saf2 b,
body.izamachi-v4 .sol_feat.is-on .ui_saf2 .material-icons { animation: uiFade 0.3s ease 1.5s both, uiCheck 0.3s ease 1.5s both; }
body.izamachi-v4 .sol_feat.is-on .ui_saf3 b,
body.izamachi-v4 .sol_feat.is-on .ui_saf3 .material-icons { animation: uiFade 0.3s ease 2s both, uiCheck 0.3s ease 2s both; }

@media (prefers-reduced-motion: reduce) {
	body.izamachi-v4 .uiph * { animation: none !important; }
	body.izamachi-v4 .ui_toast, body.izamachi-v4 .ui_todo .who,
	body.izamachi-v4 .ui_saf b, body.izamachi-v4 .ui_join .av4,
	body.izamachi-v4 .ui_join .av5 { opacity: 1; transform: none; }
}

/* 28-3. 置き方。行の上端から下へ伸ばし、画面の下端で切る --------------------- */
body.izamachi-v4 .sol_feat { align-items: center; }
body.izamachi-v4.mo .sol_rail.is-sol .sol_feat {
	/* 端末は HERO と同じ幅。文字の器は上限を決め、2列の塊ごと面の中央へ寄せる */
	grid-template-columns: minmax(0, 56rem) var(--phoneW);
	justify-content: center;
	gap: min(2.4vw, 3.2rem);
}
body.izamachi-v4.mo .sol_rail.is-sol .sol_shot {
	align-self: start;
	justify-self: end;
	width: 100%;
	/* 流し込みから外す。面の高さは文字の側だけで決まり、
	   端末は下へはみ出して貼り付いた面の端で切られる */
	height: 0;
	position: relative;
	overflow: visible;
}
/* 端末は黄色い面の下端で切る。--clipB は motion.js が毎フレーム入れる
   （面は ::before で描いていて端末の親ではないので、overflow では切れない） */
body.izamachi-v4.mo .sol_rail.is-sol .sol_shot .uiph {
	position: absolute;
	top: 0;
	left: 0;
	/* 枠（::after）は要素の外へはみ出しているので、切り取り範囲も外へ広げる。
	   0 のままだと側面と上の枠ごと切れてしまう（2026-09-28） */
	clip-path: inset(-8% -20% var(--clipB, 0px) -20%);
}

/* 28-4. スマホは縦並び（2026-09-26）------------------------------------------
   文字の下に端末を置く。端末は下 1/4 を器で隠す。
   端末の比は 360:800 なので、その 3/4 は 360:600。
   器をこの比にして中身を上端から入れれば、ちょうど 1/4 が隠れる。
   PC の「面の下端で切る」指定（--clipB）はここでは使わない */
@media screen and (max-width: 1023px) {
	body.izamachi-v4.mo .sol_rail.is-sol .sol_feat {
		grid-template-columns: 1fr;
		gap: 2rem;
		align-items: start;
	}
	/* 端末は画面の下端に接地させる。面を画面の高さいっぱいに伸ばし、
	   中身を縦の流れにして、端末だけ下へ押し付ける */
	body.izamachi-v4.mo .sol_rail.is-sol .sol_stick { align-items: stretch; }
	body.izamachi-v4.mo .sol_rail.is-sol .sol_panel {
		height: 100%;
		padding-bottom: 0;      /* 端末を画面の下端まで届かせる */
		display: flex;
		flex-direction: column;
		box-sizing: border-box;
	}
	body.izamachi-v4.mo .sol_rail.is-sol .sol_stage {
		flex: 1;
		display: flex;
		flex-direction: column;
		min-height: 0;
	}
	body.izamachi-v4.mo .sol_rail.is-sol .sol_swap { flex: 1; min-height: 0; }
	body.izamachi-v4.mo .sol_rail.is-sol .sol_feats { height: 100%; }
	body.izamachi-v4.mo .sol_rail.is-sol .sol_feat {
		display: flex;
		flex-direction: column;
		height: 100%;
	}
	body.izamachi-v4.mo .sol_rail.is-sol .sol_shot {
		/* 大きさは「文字の下に残った高さ」がそのまま決める。
		   幅を先に決めると画面の外へはみ出すので、高さを先に取って幅を比から出す。
		   器の比 360:600 は端末の比 360:800 の 3/4。幅がどう決まっても
		   隠れるのは必ず下 1/4 になる */
		align-self: center;
		flex: 1 1 0;
		min-height: 0;
		width: auto;
		height: auto;
		max-width: min(100%, 32rem);
		aspect-ratio: 360 / 600;
		overflow: hidden;
		position: relative;
		margin-inline: auto;
	}
	body.izamachi-v4.mo .sol_rail.is-sol .sol_shot .uiph {
		position: absolute;
		top: 0;
		left: 0;
		width: 100%;
		clip-path: none;
	}
}


/* ---------------------------------------------------------------------------
 * 29. 引き出しメニュー（2026-09-24 / ここ1か所にまとめる）
 *
 *  これまで 3 か所に分かれていて後勝ちで古い値が効いていた。
 *  **引き出しに関する指定はこのブロックだけ**に置く。
 *
 *  決めごと
 *   ・字は 14px / 行間 150% で親・子・孫まで同じ。説明文だけ 12px
 *   ・左右の余白は 2.4rem。階層が下がっても変えない（インデントしない）
 *   ・罫は器の端から端まで。面は紫だけで、黒やグレーは使わない
 *   ・開くのはクリック（index.html の data-event="click"）
 *   ・フォントは Roboto / Noto Sans JP
 * ------------------------------------------------------------------------- */
/* 1209px 以上は共通CSSが白い横帯のまま出すので、ここで引き出しの形にする */
@media screen and (min-width: 1209px) {
	body.izamachi-v4 header.pc-header.drawer {
		display: block;
		width: 32rem;
		height: 100%;
		padding: 12rem 0 4.8rem;
		position: fixed;
		top: 0;
		right: 0;
		left: auto;
		overflow: auto;
		box-sizing: border-box;
		transform: translateX(100%);
		background: #512376;
		z-index: 9998;
	}
	body.izamachi-v4.transition-on header.pc-header.drawer {
		transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1) 0s;
	}
	body.izamachi-v4.menu-open header.pc-header.drawer { transform: translateX(0); }
	body.izamachi-v4 .drawer__btn {
		transition: right 0.3s cubic-bezier(.16, 1, .3, 1), top 0.3s cubic-bezier(.16, 1, .3, 1), background-color 0.3s ease;
	}
	body.izamachi-v4.menu-open .drawer__btn {
		right: 2rem;
		top: 2rem;
		background-color: transparent;
		box-shadow: none;
	}
}

/* --- ここから下は幅に関係なく効かせる（SP と PC で同じ見え方） --- */
body.izamachi-v4 header.pc-header .logo_h {
	padding: 0;
	margin: 0 0 3.2rem;
	display: flex;
	justify-content: center;
	line-height: 0;
}
body.izamachi-v4 header.pc-header .logo_h a { display: block; width: 13rem; }
body.izamachi-v4 header.pc-header .logo_h svg { width: 100%; height: auto; display: block; }
body.izamachi-v4 header.pc-header .logo_h svg .cls-1 { fill: #FFFFFF; }
body.izamachi-v4 header.pc-header .g-nav { margin: 0; }

/* 器には余白を持たせない。罫が端から端まで届くようにする */
body.izamachi-v4 header.pc-header #mega-menu-wrap-global,
body.izamachi-v4 header.pc-header #mega-menu-wrap-global #mega-menu-global,
body.izamachi-v4 header.pc-header #mega-menu-wrap-global ul.mega-sub-menu {
	padding: 0 !important;
	margin: 0 !important;
	width: auto !important;
	max-width: none !important;
	min-width: 0 !important;
	box-sizing: border-box;
	box-shadow: none !important;
	border-radius: 0 !important;
}
/* 面は紫だけ。子も孫も同じ */
body.izamachi-v4 header.pc-header #mega-menu-wrap-global ul.mega-sub-menu {
	background: #451A67 !important;
	background-color: #451A67 !important;
}
/* 行。階層に関係なく同じ高さ・同じ罫 */
body.izamachi-v4 header.pc-header #mega-menu-wrap-global li.mega-menu-item {
	display: list-item !important;
	float: none !important;
	/* 100% にするとスクロールバーが出たぶんだけ右へはみ出す。auto で器に従わせる */
	width: auto !important;
	margin: 0 !important;
	padding: 0 !important;
	border-top: 1px solid rgba(255, 255, 255, 0.22) !important;
	border-bottom: 0 !important;
	border-left: 0 !important;
	border-right: 0 !important;
	box-sizing: border-box;
}
body.izamachi-v4 header.pc-header #mega-menu-wrap-global ul.mega-sub-menu li.mega-menu-item {
	border-top-color: rgba(255, 255, 255, 0.14) !important;
}
/* 文字。14px / 150% / 左右 2.4rem は親・子・孫すべて同じ */
body.izamachi-v4 header.pc-header #mega-menu-wrap-global a.mega-menu-link {
	display: flex !important;
	/* プラグインは ID 2つで書いているので、!important が無いと負ける。
	   負けると矢印（span.mega-indicator は display:block）が次の行へ回り込む */
	align-items: center !important;
	justify-content: space-between !important;
	flex-wrap: nowrap !important;
	gap: 1.2rem !important;
	width: auto !important;
	height: auto !important;
	margin: 0 !important;
	padding: 1.6rem 2.4rem !important;
	font-family: "Roboto", "Noto Sans JP", sans-serif !important;
	font-size: 14px !important;
	line-height: 150% !important;
	font-weight: 700;
	color: #FFFFFF !important;
	background: transparent !important;
	background-color: transparent !important;
	text-align: left;
	border: 0 !important;
	box-sizing: border-box;
}
/* 説明文だけ 12px */
body.izamachi-v4 header.pc-header #mega-menu-wrap-global .mega-menu-description {
	display: block;
	font-family: "Roboto", "Noto Sans JP", sans-serif;
	font-size: 12px !important;
	line-height: 150% !important;
	font-weight: 400;
	font-style: normal !important;
	color: rgba(255, 255, 255, 0.76);
	padding: 0;
	margin: 0.4rem 0 0;
}
body.izamachi-v4 header.pc-header #mega-menu-wrap-global .mega-description-group { margin: 0 !important; }
body.izamachi-v4 header.pc-header #mega-menu-wrap-global .mega-menu-title { display: block; }

/* 末尾2つはボタン。白地・紫文字。余計な margin は作らない */
body.izamachi-v4 header.pc-header #mega-menu-wrap-global #mega-menu-global > li.mega-menu-item:nth-last-child(2),
body.izamachi-v4 header.pc-header #mega-menu-wrap-global #mega-menu-global > li.mega-menu-item:last-child {
	border-top: 0 !important;
	margin-left: 2.2rem !important;
	margin-right: 2.2rem !important;
}
body.izamachi-v4 header.pc-header #mega-menu-wrap-global #mega-menu-global > li.mega-menu-item:nth-last-child(2) {
	margin-top: 3.2rem !important;
}
body.izamachi-v4 header.pc-header #mega-menu-wrap-global #mega-menu-global > li.mega-menu-item:last-child {
	margin-top: 0.8rem !important;
}
body.izamachi-v4 header.pc-header #mega-menu-wrap-global #mega-menu-global > li.mega-menu-item:nth-last-child(2) > a.mega-menu-link,
body.izamachi-v4 header.pc-header #mega-menu-wrap-global #mega-menu-global > li.mega-menu-item:last-child > a.mega-menu-link {
	justify-content: center !important;
	background: #FFFFFF !important;
	background-color: #FFFFFF !important;
	color: #512376 !important;
}

/* 矢印。dashicons を読まなくしたので CSS で描く */
body.izamachi-v4 #mega-menu-wrap-global #mega-menu-global li.mega-menu-item-has-children > a.mega-menu-link > span.mega-indicator {
	position: relative !important;
	display: block !important;
	width: 1.6rem !important;
	height: 1.6rem !important;
	flex: none !important;
	margin: 0 !important;
	padding: 0 !important;
}
body.izamachi-v4 #mega-menu-wrap-global #mega-menu-global li.mega-menu-item-has-children > a.mega-menu-link > span.mega-indicator::after {
	content: "" !important;
	font-family: inherit !important;
	position: absolute !important;
	right: 0.2rem !important;
	top: 50% !important;
	left: auto !important;
	bottom: auto !important;
	width: 0.7rem !important;
	height: 0.7rem !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	border-right: 2px solid currentColor !important;
	border-bottom: 2px solid currentColor !important;
	transform: translateY(-70%) rotate(45deg);
	transition: transform 0.2s ease;
}
body.izamachi-v4 #mega-menu-wrap-global #mega-menu-global li.mega-menu-item-has-children.mega-toggle-on > a.mega-menu-link > span.mega-indicator::after {
	transform: translateY(-30%) rotate(-135deg);
}

/* プラグインは 1126px 以上で「絶対配置の飛び出し」になる。
   引き出しの中では本文に重なるので、その場で開くアコーディオンに戻す */
@media screen and (min-width: 1126px) {
	body.izamachi-v4 header.pc-header #mega-menu-wrap-global #mega-menu-global li.mega-menu-item > ul.mega-sub-menu {
		display: none;
		visibility: visible;
		opacity: 1;
		position: static;
		left: auto;
		right: auto;
		top: auto;
		transform: none;
		transition: none;
	}
	body.izamachi-v4 header.pc-header #mega-menu-wrap-global #mega-menu-global li.mega-menu-item.mega-toggle-on > ul.mega-sub-menu {
		display: block;
	}
}

/* 開いている間に本文をグレースケールにする共通の演出は、黄色い面が灰色になるので切る */
body.izamachi-v4.menu-open::before,
body.izamachi-v4.menu-open .wrap { filter: none; }

/* ---------------------------------------------------------------------------
 * 30. 1文字ずつ出す見出し（motion.js の chars()）
 * ------------------------------------------------------------------------- */
body.izamachi-v4 .chs { display: block; }
body.izamachi-v4 .ch {
	display: inline-block;
	opacity: 0;
	transform: translateY(0.18em);
	transition: opacity .28s ease, transform .28s cubic-bezier(.16, 1, .3, 1);
}
body.izamachi-v4 .ch.is-on { opacity: 1; transform: none; }
/* 動きを止める設定では、出す・出さないだけにする */
@media (prefers-reduced-motion: reduce) {
	body.izamachi-v4 .ch { transition: none; transform: none; }
}


/* ---------------------------------------------------------------------------
 * 31. HERO を横並びにする（2026-09-27）
 *
 *  左に文字（見出し・リード・丸 CTA）、右に端末。ファーストビューは画面いっぱい。
 *  大円はこれまでどおりカードの中央を中心に置く（右の列に寄らないよう left を 0
 *  にして、translate(-50%) で列の左端＝カードの中央に中心を合わせる）。
 *  スクロール後の挙動（左右 1rem の余白・下の角丸・端末の下 1/4 切り）は変えない。
 * ------------------------------------------------------------------------- */
@media screen and (min-width: 1024px) {
	body.izamachi-v4 #hero .hero_card {
		/* --heroTop（カードの上にあるヘッダ分の高さ）は motion.js が実測して渡す。
		   JS が動かないときは 9.2rem を既定にする */
		min-height: calc(100svh - var(--heroTop, 9.2rem));
		box-sizing: border-box;
		/* 上の余白を残すと文字が中央より下に寄る。天地中央に置くため 0 にする */
		padding-block: 0;
		display: grid;
		grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
		align-items: center;
		column-gap: min(4.45vw, 8rem);
		padding-inline: max(4rem, calc((100% - 144rem) / 2 + 4rem));
	}
	/* 文字は左寄せ。画面の端から離して少し中央寄りに置く */
	body.izamachi-v4 #hero .hero_head {
		width: auto;
		max-width: none;
		margin: 0;
		align-items: flex-start;
		text-align: left;
		padding-left: 9.6rem;
	}
	/* 器が半分になるので段を1つ下げる。64px だと「街」が1文字だけ次行に落ちる */
	body.izamachi-v4 #hero .hero_catch { font-size: var(--f-h1); }
	body.izamachi-v4 #hero .hero_stage {
		margin-top: 0;
		padding: 0;
		align-self: end;
		/* 端末の大きさは --phoneW。切る量は幅から出すので比は変わらない */
		--heroPhoneW: var(--phoneW);
	}
	body.izamachi-v4 #hero .hero_stage::before {
		left: 0;
		top: 50%;
	}
}


/* ---------------------------------------------------------------------------
 * 32. 浮いているメニューを一旦しまう（2026-09-28）
 *
 *  ★戻すときはこのブロックごと削除するだけ。★
 *  HTML の <nav class="izmt_nav"> も motion.js の spy()（現在地の印付け）も
 *  そのまま残してあるので、消せば元どおり出る。
 *  メニューは position: fixed なので、隠しても他の配置には影響しない。
 *  隠している間はアンカーの着地位置だけ詰める（メニューの高さぶんが不要になるため）。
 * ------------------------------------------------------------------------- */
body.izamachi-v4 .izmt_nav { display: none; }
html:has(body.izamachi-v4) { scroll-padding-top: 2.4rem; }


/* ---------------------------------------------------------------------------
 * 33. HERO のロゴと活字（Figma 6980-175640 の実測に合わせる / 2026-09-28）
 *
 *  ロゴ 436×100.3 ／ 見出し 40px 行間1.25 ／ リード 24px 行間1.5・行間隔16px
 *  ／ 丸の見出し 18px・中の間隔12px ／ 塊どうしの間隔 48px
 *  書体は Zen Kaku Gothic New のまま（Figma の Gothic A1 は代用表示）。
 *  色もこのページの token のまま（Figma の #2d2013 と --ink はほぼ同じ）。
 * ------------------------------------------------------------------------- */
body.izamachi-v4 .hero_logo { margin: 0; line-height: 0; }
/* 縦横比は保つ。幅だけ指定して高さは auto */
/* 幅は画面基準で決める。100% にすると、器（flex の子）が画像の実寸まで
   縮んでいるため 162px が基準になってしまう。縦横比は height: auto で保つ */
body.izamachi-v4 .hero_logo img { width: min(86vw, 28rem); height: auto; display: block; }
/* リードは Figma どおり2行。span.br が改行の役をする */
body.izamachi-v4 #hero .hero_lead > span.br { display: block; height: 0; }

@media screen and (min-width: 1024px) {
	body.izamachi-v4 #hero .hero_head { gap: 4.8rem; }
	body.izamachi-v4 .hero_logo img { width: 43.6rem; }
	body.izamachi-v4 #hero .hero_catch { font-size: 4rem; line-height: 1.25; }
	body.izamachi-v4 #hero .hero_lead {
		font-size: 2.4rem;
		line-height: 1.5;
		/* Figma は medium(500) だが、太さは 400 と 600 の2段階に限る。本文なので 400 */
	}
	/* 2行の間は Figma の 16px。行間（36px）に足して 52px になる */
	body.izamachi-v4 #hero .hero_lead > span.br { height: 1.6rem; }
	/* Figma は 18px だが段の目に無い。19px なら段にも「操作は17px以上」にも乗る（差は 1px） */
	body.izamachi-v4 #hero .circle_cta a { font-size: 1.9rem; gap: 1.2rem; }
}


/* ---------------------------------------------------------------------------
 * 34. 端末の枠を画像にする（2026-09-28）
 *
 *  枠 app-frame-iphone-17-pro.webp は 1037×2000、中の窓（画面）は 789×1775。
 *  要素そのものを「画面」として扱い、枠は ::after で外側へはみ出させて重ねる。
 *  こうすると中の組み方（cqw / rem 基準）を一切変えずに済む。
 *    幅の比 1037/789 = 131.43%  ／ 高さの比 2000/1775 = 112.68%
 *    枠の中心は画面の中心より 1.296%（画面の高さ比）だけ下
 *  影は枠の形に沿わせたいので drop-shadow（box-shadow だと四角い影になる）。
 * ------------------------------------------------------------------------- */
body.izamachi-v4 .uiph,
body.izamachi-v4 .hero_phone {
	background-color: var(--app-bg, #FDF8EC);
	aspect-ratio: 789 / 1775;
}
/* 窓の縁に枠の影が少し掛かるので、中身をその分だけ内側へ入れる。
   余白は画面の地の色で埋まる（要素の background-color） */
body.izamachi-v4 .uiph { padding: 0.7em; }
body.izamachi-v4 .hero_phone { padding: 0.9rem; }
/* 枠は細い輪郭だけの画像なので、影は端末の面のほうに付ける。
   角丸は窓の丸みに合わせる（画面幅の約 15%） */
body.izamachi-v4 .uiph { border-radius: 5.4em; box-shadow: 0 2.2em 4.4em rgba(58, 43, 0, 0.20); }
body.izamachi-v4 .hero_phone { border-radius: 6.6rem; box-shadow: 0 2.4rem 4.8rem rgba(58, 43, 0, 0.20); }
body.izamachi-v4 .uiph::after,
body.izamachi-v4 .hero_phone::after {
	content: "";
	position: absolute;
	left: 50%;
	top: calc(50% + 1.296%);
	width: 131.43%;
	height: 112.68%;
	transform: translate(-50%, -50%);
	background: url("/izamachi/assets/img/app-frame-iphone-17-pro.webp") center / 100% 100% no-repeat;
	pointer-events: none;
	z-index: 5;
}
/* 中身は四角のままでよい。窓の角の外側は枠が覆う */
body.izamachi-v4 .uiph_in { border-radius: 5.4em; }
body.izamachi-v4 .hero_phone .app { border-radius: 6.6rem; }
/* 枠に島が描いてあるので、こちらの島は出さない */
body.izamachi-v4 .uiph .island,
body.izamachi-v4 .hero_phone .island { display: none; }


/* ---------------------------------------------------------------------------
 * 35. ステータスバーを枠の島に合わせる（2026-09-28）
 *
 *  枠の画像では、島は画面の上端から 27〜97px（画面の高さ 1775 に対して
 *  1.5%〜5.5%）にある。中心は 3.5%。
 *  時刻と電波を島の左右に、島と同じ高さの中心へ置く：
 *    行の高さ = 3.5% × 2 = 7% ／ 左右の余白 = 画面幅の 8%（角の丸みを避ける）
 * ------------------------------------------------------------------------- */
body.izamachi-v4 .hero_phone .app_status,
body.izamachi-v4 .uiph .ui_status {
	height: 7%;
	padding: 0 8%;
	align-items: center;
	box-sizing: border-box;
}


/* ---------------------------------------------------------------------------
 * 36. モックの書体と、スマホの HERO の釣り合い（2026-09-28）
 * ------------------------------------------------------------------------- */
/* 端末の中はアプリの画面なので、ページの書体ではなく Roboto / Noto Sans JP に限る */
body.izamachi-v4 .hero_phone,
body.izamachi-v4 .uiph {
	font-family: "Roboto", "Noto Sans JP", sans-serif;
}

/* スマホでは見出しよりロゴを大きく見せる（PC の釣り合いはそのまま） */
@media screen and (max-width: 1023px) {
	body.izamachi-v4 .hero_logo img { width: min(86vw, 34rem); }
	/* 32px だと11文字で折り返してロゴより大きく見える。28px で1行に収める */
	body.izamachi-v4 #hero .hero_catch { font-size: 2.8rem; }
}
