/*
Theme Name: Edel AI Works
Theme URI: https://edel-ai-works.com/
Author: 合同会社Edel Hearts
Author URI: https://edel-hearts.com/
Description: Edel AI Works のために設計・開発したオリジナルテーマ。伝票・台帳・確認印といった業務文書をモチーフに、読みやすさと落ち着いた信頼感を重視しています。
Version: 1.0.0
Requires at least: 6.6
Tested up to: 7.1
Requires PHP: 8.0
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: edel-ai-works
*/

:root {
	--eaw-paper: var(--wp--preset--color--paper);
	--eaw-ink: var(--wp--preset--color--contrast);
	--eaw-muted: var(--wp--preset--color--muted);
	--eaw-ai: var(--wp--preset--color--accent);
	--eaw-ai-dark: var(--wp--preset--color--accent-dark);
	--eaw-tint: var(--wp--preset--color--accent-light);
	--eaw-rule: var(--wp--preset--color--line);
	--eaw-shu: var(--wp--preset--color--attention);
	--eaw-wide: 1180px;
	--eaw-gutter: clamp(1.25rem, 4vw, 2.5rem);
}

/* ======================================================
   基本
   ====================================================== */
html { -webkit-text-size-adjust: 100%; }
*, *::before, *::after { box-sizing: border-box; }
body {
	font-feature-settings: "palt" 1;
	font-variant-numeric: tabular-nums;
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
	letter-spacing: 0.02em;
}
h1, h2, h3, h4 { letter-spacing: 0.01em; text-wrap: balance; }
p { text-wrap: pretty; }
img { height: auto; max-width: 100%; }
a { text-underline-offset: 0.22em; text-decoration-thickness: 1px; }
:focus-visible { outline: 2px solid var(--eaw-ai); outline-offset: 3px; }
::selection { background: var(--eaw-tint); }

.wp-element-button,
.wp-block-button__link { transition: background-color .15s ease, color .15s ease; letter-spacing: 0.04em; }
.wp-block-button.is-style-outline > .wp-block-button__link {
	background: transparent;
	color: var(--eaw-ink);
	border: 1px solid var(--eaw-ink);
	padding: calc(0.95rem - 1px) calc(1.6rem - 1px);
}
.wp-block-button.is-style-outline > .wp-block-button__link:hover {
	background: var(--eaw-ink);
	color: #fff;
}

/* ======================================================
   ヘッダー
   ====================================================== */
.site-header {
	background: var(--wp--preset--color--base);
	border-bottom: 1px solid var(--eaw-rule);
	position: relative;
	z-index: 20;
}
.site-header__row { min-height: 68px; }
.eaw-wordmark {
	display: flex;
	align-items: center;
	gap: 0.7rem;
	text-decoration: none;
	color: var(--eaw-ink);
}
.eaw-wordmark__mark {
	width: 28px;
	height: 28px;
	flex: none;
	display: grid;
	grid-template-columns: 1fr;
	grid-template-rows: repeat(3, 1fr);
	gap: 3px;
	padding: 5px 4px;
	border: 1.5px solid var(--eaw-ink);
	border-radius: 3px;
}
.eaw-wordmark__mark i { display: block; background: var(--eaw-ink); height: 2px; align-self: center; }
.eaw-wordmark__mark i:nth-child(2) { width: 70%; background: var(--eaw-ai); }
.eaw-wordmark__mark i:nth-child(3) { width: 45%; }
.eaw-wordmark__text { display: flex; flex-direction: column; line-height: 1.15; }
.eaw-wordmark__name { font-weight: 700; font-size: 1.0625rem; letter-spacing: 0.03em; }
.eaw-wordmark__sub { font-size: 0.6875rem; color: var(--eaw-muted); letter-spacing: 0.06em; }
.site-header .wp-block-navigation a { text-decoration: none; }
.site-header .wp-block-navigation a:hover { color: var(--eaw-ai); text-decoration: underline; }
.site-header .header-cta .wp-block-button__link { padding: 0.6rem 1.1rem; font-size: 0.8125rem; }
@media (max-width: 781px) {
	.site-header .header-cta { display: none; }
	.eaw-wordmark__sub { display: none; }
}

/* ======================================================
   セクション共通
   ====================================================== */
.eaw-sec {
	padding-top: var(--wp--preset--spacing--70);
	padding-bottom: var(--wp--preset--spacing--70);
}
.eaw-sec.is-paper { background: var(--eaw-paper); }
.eaw-sec.is-ruled { border-top: 1px solid var(--eaw-rule); }
.eaw-sec > * + * { margin-block-start: 0; }

/* 見出し：左に見出し、右にリード文 */
.eaw-sec-head {
	display: grid;
	grid-template-columns: minmax(0, 5fr) minmax(0, 6fr);
	gap: 1rem clamp(2rem, 5vw, 5rem);
	align-items: end;
	margin-bottom: clamp(2rem, 4vw, 3.5rem) !important;
}
.eaw-sec-head h2 { margin: 0; font-size: var(--wp--preset--font-size--x-large); }
.eaw-sec-head p { margin: 0; color: var(--eaw-muted); max-width: 36em; }
@media (max-width: 781px) {
	.eaw-sec-head { grid-template-columns: 1fr; }
}

/* ======================================================
   ヒーロー：書類と机の写真に藍を重ね、右半分に台帳の罫線を薄く引く
   ====================================================== */
.eaw-hero {
	--hero-deep: #101B34;
	--hero-sub: #C3D0E4;
	position: relative;
	isolation: isolate;
	background: var(--hero-deep);
	color: #fff;
	padding: clamp(3.5rem, 2rem + 5vw, 7rem) var(--eaw-gutter) clamp(3.5rem, 2rem + 4.5vw, 6.5rem);
	overflow: hidden;
}
.eaw-hero__bg {
	position: absolute;
	inset: 0;
	z-index: -1;
	background: url(assets/hero-desk.jpg) 70% 50% / cover no-repeat;
	transform-origin: 72% 50%;
}
.eaw-hero__bg::before,
.eaw-hero__bg::after { content: ""; position: absolute; inset: 0; }
/* 左は文字が読めるように濃く、右は写真が見えるように薄く */
.eaw-hero__bg::before {
	background: linear-gradient(90deg, rgba(16, 27, 52, 0.97) 0%, rgba(16, 27, 52, 0.92) 34%, rgba(22, 38, 72, 0.7) 58%, rgba(22, 38, 72, 0.42) 100%);
}
/* 台帳の罫線：右側だけに、ごく薄く */
.eaw-hero__bg::after {
	background-image:
		repeating-linear-gradient(0deg, rgba(195, 208, 228, 0.09) 0 1px, transparent 1px 36px),
		repeating-linear-gradient(90deg, rgba(195, 208, 228, 0.06) 0 1px, transparent 1px 144px);
	-webkit-mask-image: linear-gradient(90deg, transparent 40%, #000 75%);
	mask-image: linear-gradient(90deg, transparent 40%, #000 75%);
}
.eaw-hero__inner {
	max-width: var(--eaw-wide);
	margin: 0 auto;
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr);
	gap: clamp(2.5rem, 4.5vw, 4.5rem);
	align-items: center;
}
.eaw-hero__kicker {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	margin: 0 0 1.25rem;
	font-size: 0.9375rem;
	font-weight: 700;
	color: var(--hero-sub);
}
.eaw-hero__kicker::before { content: ""; width: 2rem; border-top: 2px solid #6F8FC9; }
.eaw-hero h1 {
	font-size: clamp(1.85rem, 1rem + 2.2vw, 2.75rem);
	line-height: 1.36;
	margin: 0 0 1.5rem;
	letter-spacing: 0;
	color: #fff;
}
.eaw-hero h1 span { display: inline-block; }
.eaw-hero__text { font-size: 1.0625rem; line-height: 2; margin: 0 0 2rem; max-width: 31em; color: rgba(255, 255, 255, 0.86); }
.eaw-hero .wp-block-buttons { gap: 0.75rem; }
.eaw-hero .wp-block-button__link { background: #fff; color: var(--eaw-ai-dark); border: 2px solid #fff; }
.eaw-hero .wp-block-button__link:hover, .eaw-hero .wp-block-button__link:focus { background: #E9EEF5; border-color: #E9EEF5; color: var(--eaw-ai-dark); }
.eaw-hero .is-style-outline .wp-block-button__link { background: transparent; color: #fff; border-color: rgba(255, 255, 255, 0.7); }
.eaw-hero .is-style-outline .wp-block-button__link:hover, .eaw-hero .is-style-outline .wp-block-button__link:focus { background: rgba(255, 255, 255, 0.1); color: #fff; border-color: #fff; }
.eaw-hero a:focus-visible { outline: 2px solid #fff; outline-offset: 3px; }
.eaw-hero__note {
	margin: 1.75rem 0 0;
	padding-top: 1rem;
	border-top: 1px solid rgba(255, 255, 255, 0.2);
	font-size: 0.8125rem;
	color: var(--hero-sub);
	display: flex;
	flex-wrap: wrap;
	gap: 0.25rem 1.5rem;
}
@media (max-width: 960px) {
	.eaw-hero__inner { grid-template-columns: 1fr; }
	.eaw-hero__bg { background-image: url(assets/hero-desk-sp.jpg); background-position: 50% 30%; }
	.eaw-hero__bg::before { background: linear-gradient(180deg, rgba(16, 27, 52, 0.93) 0%, rgba(16, 27, 52, 0.86) 42%, rgba(22, 38, 72, 0.55) 70%, rgba(22, 38, 72, 0.4) 100%); }
	.eaw-hero__bg::after { -webkit-mask-image: linear-gradient(180deg, transparent 45%, #000 80%); mask-image: linear-gradient(180deg, transparent 45%, #000 80%); }
}

/* ---- 作業台（ヒーロー右） ---- */
.eaw-bench {
	margin: 0;
	position: relative;
	display: grid;
	grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr);
	grid-template-areas:
		"example example"
		"mail    mail"
		"ledger  draft";
	gap: 14px;
	font-size: 0.8125rem;
	line-height: 1.7;
}
.bench-panel {
	background: #fff;
	border: 1px solid var(--eaw-rule);
	border-radius: 4px;
	box-shadow: 0 1px 0 var(--eaw-rule);
	padding: 14px 16px 16px;
	position: relative;
}
.eaw-hero .bench-panel { border-color: transparent; box-shadow: 0 18px 40px rgba(5, 12, 28, 0.35), 0 2px 6px rgba(5, 12, 28, 0.2); color: var(--eaw-ink); }
.eaw-hero .eaw-bench figcaption { color: var(--hero-sub); }
/* 作業台が「数ある仕組みの1つの例」だと伝える一文 */
.bench-example { grid-area: example; margin: 0 0 -2px; font-size: 0.8125rem; font-weight: 700; color: var(--hero-sub); display: flex; align-items: center; gap: 0.6rem; }
.bench-example::after { content: ""; flex: 1; border-top: 1px solid rgba(195, 208, 228, 0.3); }
.bench-mail { overflow: hidden; }
/* AIの読み取り：藍の線が上から下へ1回走る */
.bench-scan {
	position: absolute;
	left: 0;
	right: 0;
	top: 0;
	height: 45%;
	pointer-events: none;
	opacity: 0;
	background: linear-gradient(180deg, rgba(62, 107, 196, 0) 0%, rgba(62, 107, 196, 0.1) 70%, rgba(62, 107, 196, 0.28) 100%);
	border-bottom: 2px solid #3E6BC4;
}
.bench-label {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	margin: 0 0 10px;
	font-size: 0.75rem;
	font-weight: 700;
	color: var(--eaw-ai);
}
.bench-label b {
	display: inline-grid;
	place-items: center;
	width: 18px;
	height: 18px;
	border-radius: 50%;
	background: var(--eaw-ai);
	color: #fff;
	font-size: 0.6875rem;
}
.bench-label span { color: var(--eaw-muted); font-weight: 400; margin-left: auto; }
.bench-mail { grid-area: mail; }
.bench-mail dl { margin: 0 0 8px; display: grid; grid-template-columns: 4.5em 1fr; gap: 2px 0; }
.bench-mail dt { color: var(--eaw-muted); }
.bench-mail dd { margin: 0; }
.bench-mail dd.is-subject { font-weight: 700; }
.bench-mail .bench-body { margin: 0; padding-top: 8px; border-top: 1px dashed var(--eaw-rule); color: #3A4353; }

.bench-ledger { grid-area: ledger; padding-bottom: 10px; }
.bench-ledger table { width: 100%; border-collapse: collapse; }
.bench-ledger th, .bench-ledger td {
	text-align: left;
	padding: 5px 6px;
	border-bottom: 1px solid var(--eaw-rule);
	white-space: nowrap;
}
.bench-ledger th { font-weight: 400; color: var(--eaw-muted); font-size: 0.6875rem; background: var(--eaw-tint); }
.bench-ledger tr.is-new td { font-weight: 700; background: #FFF6D6; }
.bench-tag {
	display: inline-block;
	padding: 0 6px;
	border: 1px solid var(--eaw-ai);
	border-radius: 2px;
	color: var(--eaw-ai);
	font-size: 0.6875rem;
	line-height: 1.6;
}

.bench-draft { grid-area: draft; padding-bottom: 36px; }
.bench-draft .bench-lines { margin: 0; color: #3A4353; }
.bench-stamp {
	position: absolute;
	right: 14px;
	bottom: 12px;
	width: 54px;
	height: 54px;
	border: 2px solid var(--eaw-shu);
	border-radius: 50%;
	color: var(--eaw-shu);
	display: grid;
	place-items: center;
	font-weight: 700;
	font-size: 0.875rem;
	letter-spacing: 0.1em;
	transform: rotate(-14deg);
	background: rgba(255, 255, 255, 0.6);
}
.bench-hold {
	position: absolute;
	left: 16px;
	bottom: 14px;
	margin: 0;
	font-size: 0.6875rem;
	color: var(--eaw-shu);
	font-weight: 700;
}
.eaw-bench figcaption {
	grid-column: 1 / -1;
	font-size: 0.6875rem;
	color: var(--eaw-muted);
	text-align: right;
	margin-top: -4px;
}

/* 作業台の動き：1回だけ、順番に（受信→台帳→下書き→確認印） */
/* 開いたときに1回だけ：写真が寄る → 見出し → AIが読み取り → 台帳 → 下書き → 確認印 */
@media (prefers-reduced-motion: no-preference) {
	.eaw-hero__bg { animation: eaw-hero-zoom 2.6s cubic-bezier(.2,.7,.2,1) both; }
	.eaw-hero__kicker, .eaw-hero h1 span, .eaw-hero__text, .eaw-hero .wp-block-buttons, .eaw-hero__note { animation: eaw-rise .7s cubic-bezier(.2,.7,.2,1) both; }
	.eaw-hero__kicker { animation-delay: .1s; }
	.eaw-hero h1 span:nth-child(1) { animation-delay: .2s; }
	.eaw-hero h1 span:nth-child(2) { animation-delay: .32s; }
	.eaw-hero h1 span:nth-child(3) { animation-delay: .44s; }
	.eaw-hero__text { animation-delay: .6s; }
	.eaw-hero .wp-block-buttons { animation-delay: .7s; }
	.eaw-hero__note { animation-delay: .8s; }
	.eaw-bench { animation: eaw-fade .6s ease .3s both; }
	.bench-scan { animation: eaw-scan 1.2s cubic-bezier(.4,0,.3,1) .9s both; }
	.bench-ledger tr.is-new td { animation: eaw-row-in .6s ease-out 2s both, eaw-row-fade 2.4s ease-out 2.6s both; }
	.bench-draft .bench-lines { animation: eaw-type .9s steps(18, end) 2.6s both; }
	.bench-stamp { animation: eaw-stamp .35s cubic-bezier(.3,1.6,.5,1) 3.6s both; }
	.bench-hold { animation: eaw-fade .4s ease 3.8s both; }
}
@keyframes eaw-hero-zoom { from { transform: scale(1.08); } to { transform: scale(1); } }
@keyframes eaw-rise { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }
@keyframes eaw-scan { 0% { opacity: 0; transform: translateY(-100%); } 15% { opacity: 1; } 85% { opacity: 1; } 100% { opacity: 0; transform: translateY(125%); } }
@keyframes eaw-row-in { from { opacity: 0; transform: translateY(-6px); } to { opacity: 1; transform: none; } }
@keyframes eaw-row-fade { from { background: #FFE89A; } to { background: #FFF6D6; } }
@keyframes eaw-type { from { clip-path: inset(0 100% 0 0); } to { clip-path: inset(0 0 0 0); } }
@keyframes eaw-stamp { from { opacity: 0; transform: rotate(-14deg) scale(1.8); } to { opacity: 1; transform: rotate(-14deg) scale(1); } }
@keyframes eaw-fade { from { opacity: 0; } to { opacity: 1; } }

@media (max-width: 560px) {
	.eaw-bench { grid-template-columns: 1fr; grid-template-areas: "example" "mail" "ledger" "draft"; }
	.bench-ledger { overflow-x: auto; }
}

/* ======================================================
   台帳（表）— 困りごと・料金・川越など全ページ共通
   ====================================================== */
.wp-block-table { overflow-x: auto; margin-left: 0; margin-right: 0; }
.wp-block-table table {
	border-collapse: collapse;
	width: 100%;
	font-size: 0.9375rem;
	border-top: 2px solid var(--eaw-ink);
}
.wp-block-table th,
.wp-block-table td {
	border: 0;
	border-bottom: 1px solid var(--eaw-rule);
	padding: 0.9rem 1rem;
	vertical-align: top;
	text-align: left;
}
.wp-block-table thead th {
	background: transparent;
	font-size: 0.8125rem;
	font-weight: 700;
	color: var(--eaw-muted);
	border-bottom: 1px solid var(--eaw-ink);
	white-space: nowrap;
}
.wp-block-table tbody th {
	background: var(--eaw-paper);
	font-weight: 700;
	width: 9em;
	white-space: nowrap;
}
.wp-block-table figcaption { font-size: 0.8125rem; color: var(--eaw-muted); text-align: left; }

/* 困りごとの台帳：1列目を強く、頻度は小さく */
.eaw-ledger table { font-size: 1rem; }
.eaw-ledger tbody td { padding-top: 1.1rem; padding-bottom: 1.1rem; }
.eaw-ledger tbody td:first-child { font-weight: 700; width: 46%; }
.eaw-ledger tbody td:nth-child(2) { color: var(--eaw-muted); font-size: 0.875rem; white-space: nowrap; }
.eaw-ledger tbody td:nth-child(3) { font-size: 0.9375rem; }
.eaw-ledger tbody tr:hover td { background: var(--eaw-paper); }
@media (max-width: 640px) {
	.eaw-ledger thead { display: none; }
	.eaw-ledger tbody tr { display: grid; grid-template-columns: 1fr auto; border-bottom: 1px solid var(--eaw-rule); padding: 0.9rem 0; }
	.eaw-ledger tbody td { border: 0; padding: 0; width: auto !important; }
	.eaw-ledger tbody td:first-child { grid-column: 1 / -1; margin-bottom: 0.3rem; }
}
.eaw-after-ledger {
	margin-top: 2rem !important;
	font-size: 1.0625rem;
	font-weight: 700;
}

/* ======================================================
   AIと人の分担
   ====================================================== */
.eaw-split {
	display: grid;
	grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr);
	border: 1px solid var(--eaw-ink);
	border-radius: 4px;
	background: #fff;
	overflow: hidden;
}
.eaw-split__col { padding: clamp(1.5rem, 3vw, 2.5rem); }
.eaw-split__col + .eaw-split__col { border-left: 1px solid var(--eaw-ink); position: relative; }
.eaw-split h3 { margin: 0 0 1.25rem; font-size: 1.0625rem; display: flex; align-items: center; gap: 0.6rem; }
.eaw-split__who {
	display: inline-grid;
	place-items: center;
	min-width: 2.2rem;
	height: 2.2rem;
	padding: 0 0.5rem;
	border-radius: 4px;
	background: var(--eaw-ai);
	color: #fff;
	font-size: 0.8125rem;
}
.eaw-split__col.is-human .eaw-split__who {
	background: transparent;
	color: var(--eaw-shu);
	border: 2px solid var(--eaw-shu);
	border-radius: 50%;
	width: 2.4rem;
	height: 2.4rem;
	min-width: 0;
	padding: 0;
	transform: rotate(-10deg);
}
.eaw-split ul { list-style: none; margin: 0; padding: 0; }
.eaw-split li {
	display: grid;
	grid-template-columns: 7.5em 1fr;
	gap: 0 1rem;
	padding: 0.85rem 0;
	border-top: 1px solid var(--eaw-rule);
	font-size: 0.9375rem;
}
.eaw-split li b { font-weight: 700; }
.eaw-split li span { color: var(--eaw-muted); }
.eaw-split__col.is-human { background: #FCF6F4; }
.eaw-split__col.is-human li b { color: var(--eaw-shu); }
@media (max-width: 781px) {
	.eaw-split { grid-template-columns: 1fr; }
	.eaw-split__col + .eaw-split__col { border-left: 0; border-top: 1px solid var(--eaw-ink); }
	.eaw-split li { grid-template-columns: 1fr; }
}

/* ======================================================
   流れ（4ステップ）— 実際に順番がある内容
   ====================================================== */
.eaw-flow {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	counter-reset: flow;
	position: relative;
}
.eaw-flow::before {
	content: "";
	position: absolute;
	top: 17px;
	left: 17px;
	right: 12%;
	border-top: 1px solid var(--eaw-ink);
}
.eaw-flow li { counter-increment: flow; padding-right: 1.5rem; position: relative; }
.eaw-flow li::before {
	content: counter(flow);
	display: grid;
	place-items: center;
	width: 35px;
	height: 35px;
	border-radius: 50%;
	background: var(--eaw-paper);
	border: 1px solid var(--eaw-ink);
	font-weight: 700;
	font-size: 0.9375rem;
	position: relative;
	margin-bottom: 1.25rem;
}
.eaw-sec.is-paper .eaw-flow li::before { background: #fff; }
.eaw-flow h3 { font-size: 1rem; margin: 0 0 0.5rem; }
.eaw-flow p { margin: 0; font-size: 0.9375rem; color: #3A4353; }
.eaw-flow .eaw-flow__time { display: block; margin-top: 0.75rem; font-size: 0.8125rem; color: var(--eaw-muted); }
@media (max-width: 860px) {
	.eaw-flow { grid-template-columns: 1fr; gap: 1.75rem; }
	.eaw-flow::before { top: 17px; bottom: 17px; left: 17px; right: auto; border-top: 0; border-left: 1px solid var(--eaw-ink); }
	.eaw-flow li { padding: 0 0 0 3.5rem; }
	.eaw-flow li::before { position: absolute; left: 0; top: -4px; margin: 0; }
}

/* ======================================================
   料金の条件
   ====================================================== */
.eaw-offer {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	gap: clamp(2rem, 5vw, 5rem);
	align-items: start;
}
.eaw-offer__price { margin: 0 0 0.5rem; font-size: clamp(2.2rem, 1.6rem + 2vw, 3.2rem); font-weight: 700; line-height: 1.2; letter-spacing: 0; }
.eaw-offer__price small { font-size: 0.9375rem; font-weight: 400; margin-left: 0.4rem; color: var(--eaw-muted); }
.eaw-offer__what { margin: 0 0 1.5rem; color: var(--eaw-muted); }
.eaw-offer__terms {
	background: #fff;
	border: 1px solid var(--eaw-rule);
	border-top: 2px solid var(--eaw-ink);
	padding: 1.5rem 1.75rem;
}
.eaw-offer__terms h3 { margin: 0 0 0.75rem; font-size: 0.9375rem; }
.eaw-offer__terms ul { list-style: none; margin: 0; padding: 0; }
.eaw-offer__terms li { position: relative; padding: 0.6rem 0 0.6rem 2rem; border-top: 1px solid var(--eaw-rule); font-size: 0.9375rem; }
.eaw-offer__terms li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0.95rem;
	width: 14px;
	height: 14px;
	border: 1.5px solid var(--eaw-ink);
	border-radius: 2px;
}
.eaw-offer__terms li::after {
	content: "";
	position: absolute;
	left: 4px;
	top: 1.02rem;
	width: 5px;
	height: 9px;
	border: solid var(--eaw-ai);
	border-width: 0 2px 2px 0;
	transform: rotate(45deg);
}
.eaw-offer__terms p { margin: 1rem 0 0; font-size: 0.8125rem; color: var(--eaw-muted); }
@media (max-width: 781px) { .eaw-offer { grid-template-columns: 1fr; } }

/* ======================================================
   川越
   ====================================================== */
.eaw-local {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	gap: clamp(2rem, 5vw, 5rem);
	align-items: start;
}
.eaw-local h2 { margin-top: 0; }
.eaw-local__modes { margin: 0; display: grid; grid-template-columns: 1fr; border-top: 2px solid var(--eaw-ink); }
.eaw-local__modes > div { display: grid; grid-template-columns: 8em 1fr; gap: 1rem; padding: 1.1rem 0; border-bottom: 1px solid var(--eaw-rule); }
.eaw-local__modes dt { font-weight: 700; }
.eaw-local__modes dd { margin: 0; font-size: 0.9375rem; }
.eaw-local__modes dd small { display: block; color: var(--eaw-muted); font-size: 0.8125rem; margin-top: 0.2rem; }
@media (max-width: 781px) {
	.eaw-local { grid-template-columns: 1fr; }
	.eaw-local__modes > div { grid-template-columns: 1fr; gap: 0.2rem; }
}

/* ======================================================
   CTA（相談）
   ====================================================== */
.cta-band {
	background: var(--eaw-ai-dark);
	color: #fff;
	padding: var(--wp--preset--spacing--70) var(--eaw-gutter);
}
.cta-band__inner {
	max-width: var(--eaw-wide);
	margin: 0 auto;
	display: grid;
	grid-template-columns: minmax(0, 6fr) minmax(0, 5fr);
	gap: clamp(2rem, 5vw, 5rem);
	align-items: end;
}
.cta-band h2 { margin: 0 0 1rem; color: #fff; font-size: clamp(1.6rem, 1.2rem + 1.5vw, 2.4rem); line-height: 1.4; }
.cta-band p { margin: 0; color: #D5DCEA; max-width: 32em; }
.cta-band .wp-block-button__link { background: #fff; color: var(--eaw-ai-dark); }
.cta-band .wp-block-button__link:hover { background: var(--eaw-tint); color: var(--eaw-ai-dark); }
.cta-band .wp-block-button.is-style-outline > .wp-block-button__link { background: transparent; color: #fff; border-color: rgba(255,255,255,.7); }
.cta-band .wp-block-button.is-style-outline > .wp-block-button__link:hover { background: #fff; color: var(--eaw-ai-dark); }
.cta-band__facts { list-style: none; margin: 1.5rem 0 0; padding: 0; font-size: 0.8125rem; color: #C3CCDD; }
.cta-band__facts li { padding: 0.5rem 0; border-top: 1px solid rgba(255,255,255,.18); }
@media (max-width: 781px) { .cta-band__inner { grid-template-columns: 1fr; align-items: start; } }

/* ======================================================
   下層ページ
   ====================================================== */
.eaw-page-head {
	background: var(--eaw-paper);
	border-bottom: 1px solid var(--eaw-rule);
	padding-top: clamp(2rem, 1.5rem + 2vw, 3.5rem);
	padding-bottom: clamp(2rem, 1.5rem + 2vw, 3.5rem);
}
.eaw-page-head .wp-block-post-title,
.eaw-page-head h1 { margin: 0.25rem 0 0; font-size: clamp(1.75rem, 1.3rem + 1.6vw, 2.5rem); }
.eaw-page-head .wp-block-post-excerpt { margin-top: 1rem; }
.eaw-page-head .wp-block-post-excerpt__excerpt { font-size: 1.0625rem; color: #3A4353; max-width: 36em; margin: 0; }
.eaw-page-body { padding-top: var(--wp--preset--spacing--60); padding-bottom: var(--wp--preset--spacing--70); }
.eaw-page-body > .wp-block-post-content > :first-child { margin-top: 0; }
.eaw-page-body h2 {
	padding-top: 1.25rem;
	border-top: 1px solid var(--eaw-ink);
	font-size: clamp(1.3rem, 1.1rem + 0.8vw, 1.625rem);
}
.eaw-page-body h2:first-child { margin-top: 0; }
.has-large-font-size { line-height: 1.9; }
.eaw-page-body ol, .eaw-page-body ul { padding-left: 1.3em; }
.eaw-page-body li + li { margin-top: 0.35rem; }

/* 注意書き（料金の条件・未入力の枠など） */
.eaw-note {
	border-left: 3px solid var(--eaw-ai);
	background: var(--eaw-tint);
	padding: 1rem 1.25rem;
	font-size: 0.9375rem;
}

/* ======================================================
   記事一覧・記事
   ====================================================== */
.eaw-post-meta { color: var(--eaw-muted); font-size: 0.8125rem; gap: 0.25rem 1rem !important; }
.eaw-post-meta a { color: inherit; }
.eaw-post-list .wp-block-post { padding: 1.5rem 0; border-bottom: 1px solid var(--eaw-rule); }
.eaw-post-list .wp-block-post:first-child { border-top: 2px solid var(--eaw-ink); }
.eaw-post-list .wp-block-post-title { font-size: 1.1875rem; margin: 0.35rem 0; }
.eaw-post-list .wp-block-post-title a { text-decoration: none; color: var(--eaw-ink); }
.eaw-post-list .wp-block-post-title a:hover { color: var(--eaw-ai); text-decoration: underline; }
.eaw-post-list .wp-block-post-excerpt { font-size: 0.9375rem; color: var(--eaw-muted); }
.single-post .wp-block-post-content { font-size: 1.0625rem; }
.single-post .wp-block-post-content h2 { padding-left: 0.9rem; border-left: 4px solid var(--eaw-ai); border-top: 0; padding-top: 0; }

/* ======================================================
   フッター
   ====================================================== */
.site-footer { background: var(--eaw-paper); border-top: 1px solid var(--eaw-rule); font-size: 0.875rem; }
.site-footer a { color: inherit; text-decoration: none; }
.site-footer a:hover { color: var(--eaw-ai); text-decoration: underline; }
.site-footer .footer-links p { margin: 0 0 0.55rem; }
.site-footer .footer-heading { font-size: 0.75rem; color: var(--eaw-muted); margin: 0 0 0.9rem; font-weight: 700; }
.site-footer .footer-legal { border-top: 1px solid var(--eaw-rule); padding-top: 1.25rem; color: var(--eaw-muted); font-size: 0.75rem; }

/* ======================================================
   ブロック間の余白を詰める（全幅セクションは隙間なく積む）
   ====================================================== */
.wp-site-blocks > * + * { margin-block-start: 0; }
main > * + *,
.wp-block-post-content > .alignfull,
.wp-block-post-content > .alignfull + * { margin-block-start: 0; }
.wp-block-post-content > :first-child { margin-block-start: 0; }

/* 料金表：金額列は折り返さず太字 */
.eaw-price-table tbody td:first-child { font-weight: 700; }
.eaw-price-table tbody td:nth-child(2) { white-space: nowrap; font-weight: 700; font-size: 1.0625rem; }

/* ======================================================
   写真
   ====================================================== */
/* 横長の帯（川越の町並みなど）。上下を切って余白のリズムを保つ */
.eaw-photo-band { margin: 0 auto clamp(2.5rem, 5vw, 4rem) !important; }
.eaw-photo-band img {
	width: 100%;
	aspect-ratio: 21 / 8;
	object-fit: cover;
	object-position: 50% 45%;
	border-radius: 4px;
	display: block;
}
.eaw-photo-band figcaption { font-size: 0.75rem; color: var(--eaw-muted); text-align: right; margin: 0.5rem 0 0; }
@media (max-width: 640px) { .eaw-photo-band img { aspect-ratio: 4 / 3; object-position: 62% 50%; } }

/* 担当者 */
.eaw-person {
	display: grid;
	grid-template-columns: 200px minmax(0, 1fr);
	gap: clamp(1.25rem, 3vw, 2.25rem);
	align-items: start;
	padding-top: 1.5rem;
	border-top: 2px solid var(--eaw-ink);
}
.eaw-person img { width: 100%; aspect-ratio: 1; object-fit: cover; border-radius: 4px; display: block; }
.eaw-person__role { margin: 0; font-size: 0.8125rem; color: var(--eaw-muted); }
.eaw-person__name { margin: 0.15rem 0 0.9rem; font-size: 1.375rem; font-weight: 700; }
.eaw-person__name small { font-size: 0.8125rem; font-weight: 400; color: var(--eaw-muted); margin-left: 0.6rem; }
.eaw-person p { font-size: 0.9375rem; }
.eaw-person ul { margin: 0.75rem 0 0; padding-left: 1.1em; font-size: 0.9375rem; }
@media (max-width: 600px) { .eaw-person { grid-template-columns: 1fr; } .eaw-person img { max-width: 220px; } }

/* 本文中の写真 */
.eaw-page-body .wp-block-image img { border-radius: 4px; }
.eaw-page-body .wp-block-image figcaption { font-size: 0.75rem; color: var(--eaw-muted); text-align: right; }
.eaw-page-body h2 + .eaw-person { border-top: 0; padding-top: 0.5rem; }
@media (max-width: 600px) {
	.wp-block-table tbody th { width: 5.5em; white-space: normal; padding-left: 0.75rem; padding-right: 0.75rem; }
	.wp-block-table td { padding-left: 0.75rem; padding-right: 0.75rem; }
}

/* ======================================================
   相談ページ（フォーム＋送信後の流れ）
   ====================================================== */
.eaw-contact {
	display: grid;
	grid-template-columns: minmax(0, 7fr) minmax(0, 4fr);
	gap: clamp(2rem, 5vw, 5rem);
	align-items: start;
}
.eaw-contact__form > p:first-child { margin-top: 0; }
.eaw-contact__aside {
	position: sticky;
	top: 1.5rem;
	background: var(--eaw-paper);
	border-top: 2px solid var(--eaw-ink);
	padding: 1.5rem 1.5rem 1.75rem;
}
.eaw-contact__aside h2 { margin: 0 0 1rem; font-size: 1.0625rem; padding: 0; border: 0; }
.eaw-contact__steps { list-style: none; margin: 0; padding: 0; counter-reset: s; }
.eaw-contact__steps li { counter-increment: s; position: relative; padding: 0 0 1.1rem 2.4rem; margin: 0 !important; }
.eaw-contact__steps li::before {
	content: counter(s);
	position: absolute;
	left: 0;
	top: 0.1rem;
	width: 1.6rem;
	height: 1.6rem;
	border: 1px solid var(--eaw-ink);
	border-radius: 50%;
	display: grid;
	place-items: center;
	font-size: 0.8125rem;
	font-weight: 700;
	background: #fff;
}
.eaw-contact__steps li:not(:last-child)::after {
	content: "";
	position: absolute;
	left: 0.8rem;
	top: 1.8rem;
	bottom: 0.2rem;
	border-left: 1px solid var(--eaw-rule);
}
.eaw-contact__steps b { display: block; font-size: 0.9375rem; }
.eaw-contact__steps span { display: block; font-size: 0.8125rem; color: var(--eaw-muted); line-height: 1.7; }
.eaw-contact__facts { margin: 0.5rem 0 0; border-top: 1px solid var(--eaw-rule); }
.eaw-contact__facts > div { display: grid; grid-template-columns: 4em 1fr; gap: 0.75rem; padding: 0.65rem 0; border-bottom: 1px solid var(--eaw-rule); font-size: 0.8125rem; }
.eaw-contact__facts dt { font-weight: 700; }
.eaw-contact__facts dd { margin: 0; }
@media (max-width: 860px) {
	.eaw-contact { grid-template-columns: 1fr; }
	.eaw-contact__aside { position: static; }
}

/* ---- フォーム（EdelSmartForms の inherit テンプレートにサイトの見た目を当てる） ---- */
.edel-sf { --edel-sf-primary: var(--eaw-ai); }
.edel-sf-form { border-top: 2px solid var(--eaw-ink); }
.edel-sf-field {
	display: grid;
	grid-template-columns: 11em minmax(0, 1fr);
	gap: 0.5rem 1.5rem;
	padding: 1.25rem 0;
	border-bottom: 1px solid var(--eaw-rule);
	margin: 0 !important;
}
.edel-sf-label { font-weight: 700; font-size: 0.9375rem; padding-top: 0.55rem; }
.edel-sf-required, .edel-sf-optional {
	display: inline-block;
	margin-left: 0.4rem;
	padding: 0 0.4rem;
	font-size: 0.6875rem;
	font-weight: 700;
	line-height: 1.6;
	border-radius: 2px;
	vertical-align: 0.1em;
}
.edel-sf-required { background: var(--eaw-ink); color: #fff; }
.edel-sf-optional { color: var(--eaw-muted); border: 1px solid var(--eaw-rule); font-weight: 400; }
.edel-sf.edel-sf--inherit .edel-sf-input {
	width: 100%;
	box-sizing: border-box;
	font: inherit;
	font-size: 1rem;
	color: var(--eaw-ink);
	background: #fff;
	border: 1px solid #A9B5C4;
	border-radius: 4px;
	padding: 0.7rem 0.85rem;
	line-height: 1.6;
}
.edel-sf.edel-sf--inherit .edel-sf-input::placeholder { color: #9AA4B1; }
.edel-sf.edel-sf--inherit .edel-sf-input:focus { outline: 2px solid var(--eaw-ai); outline-offset: 0; border-color: var(--eaw-ai); }
.edel-sf.edel-sf--inherit textarea.edel-sf-input { min-height: 9rem; resize: vertical; }
.edel-sf.edel-sf--inherit select.edel-sf-input { width: auto; min-width: 14em; }
.edel-sf-choices { display: flex; flex-wrap: wrap; gap: 0.5rem; padding-top: 0.2rem; }
.edel-sf-choice {
	display: inline-flex;
	align-items: center;
	gap: 0.45rem;
	padding: 0.45rem 0.85rem;
	border: 1px solid var(--eaw-rule);
	border-radius: 4px;
	background: #fff;
	font-size: 0.9375rem;
	cursor: pointer;
}
.edel-sf-choice:has(input:checked) { border-color: var(--eaw-ai); background: var(--eaw-tint); }
.edel-sf-choice input { accent-color: var(--eaw-ai); margin: 0; }
.edel-sf-field--acceptance { display: block; border-bottom: 0; }
.edel-sf-acceptance { border: 0; padding: 0; background: transparent !important; }
.eaw-field-note { margin: 0.4rem 0 0; font-size: 0.8125rem; color: var(--eaw-muted); }
.edel-sf-actions { padding-top: 0.5rem; }
.edel-sf.edel-sf--inherit .edel-sf-button--primary {
	font: inherit;
	font-weight: 700;
	letter-spacing: 0.04em;
	background: var(--eaw-ai);
	color: #fff;
	border: 0;
	border-radius: 4px;
	padding: 1rem 2.75rem;
	cursor: pointer;
}
.edel-sf.edel-sf--inherit .edel-sf-button--primary:hover { background: var(--eaw-ai-dark); }
@media (max-width: 640px) {
	.edel-sf-field { grid-template-columns: 1fr; }
	.edel-sf-label { padding-top: 0; }
	.edel-sf.edel-sf--inherit select.edel-sf-input { width: 100%; }
	.edel-sf.edel-sf--inherit .edel-sf-button--primary { width: 100%; }
}
/* 本文が幅広のページ（相談ページなど）は、見出し帯も同じ幅に揃える */
body:has(.eaw-page-body .alignwide:first-child) .eaw-page-head > * { max-width: var(--eaw-wide); }
.edel-sf.edel-sf--inherit .edel-sf-actions { display: flex; justify-content: flex-start; text-align: left; }
.eaw-contact__links { font-size: 0.8125rem; color: var(--eaw-muted); margin-top: 0.75rem !important; }

/* ======================================================
   デモ一覧（カード。1行に3つまで）
   ====================================================== */
/* デモ関連のページは見出し・本文ともワイド幅に揃える */
body:has(.eaw-demo-cards, .eaw-demo, .eaw-check) .eaw-page-head > *,
body:has(.eaw-demo-cards, .eaw-demo, .eaw-check) .eaw-page-body .wp-block-post-content > * { max-width: var(--eaw-wide); }
/* 導入文は左端をそろえて44emまで。余白の計算も本文の最大幅で止める。
   100%だけで計算すると、広い画面ほど余白が増え、文章の幅が縮んでしまう。 */
body:has(.eaw-demo-cards, .eaw-demo, .eaw-check) .eaw-page-body .wp-block-post-content > .has-large-font-size { padding-right: max(0px, calc(min(100%, var(--eaw-wide)) - 44em)); }

.eaw-demo-cards {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: clamp(1rem, 2vw, 1.5rem);
	margin-top: 2.5rem !important;
}
@media (max-width: 1000px) { .eaw-demo-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 640px) { .eaw-demo-cards { grid-template-columns: 1fr; } }

.eaw-demo-card {
	display: flex;
	flex-direction: column;
	background: #fff;
	border: 1px solid var(--eaw-rule);
	border-top: 3px solid var(--eaw-ink);
	border-radius: 4px;
	color: var(--eaw-ink);
	text-decoration: none;
	overflow: hidden;
	transition: border-color .15s ease;
}
a.eaw-demo-card:hover { border-color: var(--eaw-ai); border-top-color: var(--eaw-ai); }
a.eaw-demo-card:hover h2 { color: var(--eaw-ai); text-decoration: underline; text-underline-offset: 0.2em; }
.eaw-demo-card__art {
	display: block;
	background: var(--eaw-paper);
	border-bottom: 1px solid var(--eaw-rule);
	padding: 1.25rem 1.5rem 1rem;
}
.eaw-demo-card__art svg { display: block; width: 100%; height: auto; max-height: 170px; }
.eaw-demo-card__body { display: flex; flex-direction: column; gap: 0.75rem; padding: 1.4rem 1.5rem 1.5rem; flex: 1; }
.eaw-demo-card h2 {
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	font-size: 1.25rem !important;
}
.eaw-demo-card p { margin: 0; font-size: 0.9375rem; line-height: 1.85; }
.eaw-demo-card dl { margin: 0.25rem 0 0; font-size: 0.8125rem; border-top: 1px dashed var(--eaw-rule); }
.eaw-demo-card dl > div { display: grid; grid-template-columns: 3em 1fr; gap: 0.75rem; padding: 0.45rem 0; border-bottom: 1px dashed var(--eaw-rule); }
.eaw-demo-card dt { color: var(--eaw-muted); }
.eaw-demo-card dd { margin: 0; }
.eaw-demo-card__go {
	margin-top: auto;
	align-self: flex-start;
	font-weight: 700;
	font-size: 0.875rem;
	padding: 0.6rem 1.2rem;
	border-radius: 4px;
	background: var(--eaw-ai);
	color: #fff;
}
a.eaw-demo-card:hover .eaw-demo-card__go { background: var(--eaw-ai-dark); }
.eaw-demo-card.is-soon { border-top-color: var(--eaw-rule); }
.eaw-demo-card.is-soon .eaw-demo-card__art { opacity: 0.6; }
.eaw-demo-card.is-soon .eaw-demo-card__go { background: transparent; color: var(--eaw-muted); border: 1px solid var(--eaw-rule); }

/* デモについて：左に見出し、右に4項目 */
.eaw-demo-about {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 3fr);
	gap: 1.5rem clamp(2rem, 5vw, 4rem);
	margin-top: var(--wp--preset--spacing--60) !important;
	padding-top: 1.5rem;
	border-top: 1px solid var(--eaw-ink);
}
.eaw-demo-about h2 { margin: 0 !important; padding: 0 !important; border: 0 !important; font-size: clamp(1.3rem, 1.1rem + 0.8vw, 1.625rem); }
.eaw-demo-about dl { margin: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 2.5rem; }
.eaw-demo-about dl > div { padding: 0.9rem 0; border-bottom: 1px solid var(--eaw-rule); }
.eaw-demo-about dl > div:nth-child(-n+2) { border-top: 1px solid var(--eaw-rule); }
.eaw-demo-about dt { font-weight: 700; font-size: 0.9375rem; margin-bottom: 0.25rem; }
.eaw-demo-about dd { margin: 0; font-size: 0.875rem; color: #3A4353; line-height: 1.85; }
@media (max-width: 860px) {
	.eaw-demo-about { grid-template-columns: 1fr; }
	.eaw-demo-about dl { grid-template-columns: 1fr; }
	.eaw-demo-about dl > div:nth-child(2) { border-top: 0; }
}

/* 本文幅を広げたことに合わせた調整 */
.eaw-wordmark__mark { box-sizing: content-box; width: 18px; height: 16px; }
.eaw-person .eaw-person__name { font-size: 1.375rem; margin: 0.15rem 0 0.9rem; }
.eaw-person .eaw-person__role { font-size: 0.8125rem; margin: 0; }
/* 本文中の横長写真は高さを抑える（960px幅で縦に大きくなりすぎないように） */
.eaw-page-body .wp-block-image.size-large img { width: 100%; aspect-ratio: 2 / 1; object-fit: cover; }
@media (max-width: 640px) { .eaw-page-body .wp-block-image.size-large img { aspect-ratio: 3 / 2; } }

/* ======================================================
   記事本文の強調クラス（記事執筆ルールに合わせる）
   b = 重要、b blue = 重要・肯定、b orange = 重要・否定
   朱は「人が確認する箇所」専用なので、否定の強調には使わない
   ====================================================== */
.wp-block-post-content .b { font-weight: 700; }
.wp-block-post-content .b.blue { color: var(--eaw-ai); background: linear-gradient(transparent 62%, var(--eaw-tint) 62%); }
.wp-block-post-content .b.orange { color: #8A4B12; background: linear-gradient(transparent 62%, #F7E6D2 62%); }
.wp-block-post-content .wp-table-responsive { overflow-x: auto; margin: 1.5rem 0; }
.wp-block-post-content .wp-table-responsive table { border-collapse: collapse; width: 100%; min-width: 520px; font-size: 0.9375rem; border-top: 2px solid var(--eaw-ink); }
.wp-block-post-content .wp-table-responsive th,
.wp-block-post-content .wp-table-responsive td { border-bottom: 1px solid var(--eaw-rule); padding: 0.8rem 1rem; text-align: left; vertical-align: top; }
.wp-block-post-content .wp-table-responsive thead th { font-size: 0.8125rem; color: var(--eaw-muted); border-bottom: 1px solid var(--eaw-ink); }
.wp-block-post-content blockquote { margin: 1.5rem 0; padding: 1rem 1.25rem; border-left: 3px solid var(--eaw-rule); background: var(--eaw-paper); }

.eaw-after-ledger-link { margin-top: 0.5rem !important; font-weight: 700; }

/* ======================================================
   資料ダウンロード
   ====================================================== */
body:has(.eaw-dl, .eaw-dl-done) .eaw-page-head > *,
body:has(.eaw-dl, .eaw-dl-done) .eaw-page-body .wp-block-post-content > * { max-width: var(--eaw-wide); }
.eaw-dl { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(2rem, 5vw, 4.5rem); align-items: start; }
.eaw-dl__lead { font-size: 1.0625rem; margin: 0 0 1.5rem; }
.eaw-dl__cover { margin: 0 0 1.5rem; }
.eaw-dl__cover img { display: block; width: 100%; max-width: 300px; height: auto; border: 1px solid var(--eaw-rule); box-shadow: 8px 8px 0 var(--eaw-paper); }
.eaw-dl__toc { list-style: none; margin: 0; padding: 0; counter-reset: t; border-top: 2px solid var(--eaw-ink); }
.eaw-dl__toc li { counter-increment: t; display: grid; grid-template-columns: 2rem 1fr; padding: 0.65rem 0; border-bottom: 1px solid var(--eaw-rule); margin: 0 !important; }
.eaw-dl__toc li::before { content: counter(t, decimal-leading-zero); font-size: 0.75rem; font-weight: 700; color: var(--eaw-ai); padding-top: 0.2rem; }
.eaw-dl__toc b { font-size: 0.9375rem; }
.eaw-dl__toc span { grid-column: 2; font-size: 0.8125rem; color: var(--eaw-muted); }
.eaw-dl__form { position: sticky; top: 1.5rem; background: var(--eaw-paper); border-top: 2px solid var(--eaw-ink); padding: 1.75rem clamp(1.25rem, 3vw, 2rem) 2rem; }
.eaw-dl__form h2 { margin: 0 0 0.5rem !important; padding: 0 !important; border: 0 !important; font-size: 1.375rem !important; }
.eaw-dl__form > p { margin: 0 0 1.25rem; font-size: 0.9375rem; }
.eaw-dl__form .edel-sf-form { border-top: 1px solid var(--eaw-rule); }
.eaw-dl__form .edel-sf-field { grid-template-columns: 1fr; gap: 0.35rem; padding: 0.9rem 0; }
.eaw-dl__form .edel-sf-label { padding-top: 0; }
.eaw-dl__form .edel-sf-choice { background: #fff; }
.eaw-dl__form .edel-sf.edel-sf--inherit .edel-sf-button--primary { width: 100%; }
.eaw-dl__small { font-size: 0.8125rem; color: var(--eaw-muted); margin: 1rem 0 0 !important; }
.eaw-dl-done { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); gap: clamp(2rem, 5vw, 4rem); align-items: start; }
.eaw-dl-done > div > :first-child { margin-top: 0; }
.eaw-dl-done__btn { display: inline-block; text-decoration: none; margin: 0.5rem 0 1rem; }
@media (max-width: 860px) {
	.eaw-dl, .eaw-dl-done { grid-template-columns: 1fr; }
	.eaw-dl__form { position: static; }
	.eaw-dl__cover img { max-width: 220px; }
}

.cta-band__facts a { color: #fff; }
.eaw-page-body .eaw-dl__toc { padding-left: 0; }

/* ======================================================
   サービス一覧（カタログ）— デモのカードとは違い、分類ごとの台帳で見せる
   ====================================================== */
.eaw-page-head.is-wide .eaw-page-head__lead { max-width: 44em; margin: 1rem 0 0; font-size: 1.0625rem; color: #3A4353; }
.eaw-catalog-intro { margin-top: var(--wp--preset--spacing--70) !important; padding-top: var(--wp--preset--spacing--50); border-top: 1px solid var(--eaw-ink); }

.eaw-catalog__head {
	display: grid;
	grid-template-columns: minmax(0, 3fr) minmax(0, 2fr);
	gap: 1.5rem clamp(2rem, 4vw, 4rem);
	margin-bottom: var(--wp--preset--spacing--50);
	padding: 1.5rem 1.75rem;
	background: var(--eaw-paper);
	border-top: 2px solid var(--eaw-ink);
}
.eaw-catalog__toc ol { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 2rem; counter-reset: c; }
.eaw-catalog__toc li { counter-increment: c; margin: 0 !important; border-bottom: 1px solid var(--eaw-rule); }
.eaw-catalog__toc a { display: flex; align-items: baseline; gap: 0.6rem; padding: 0.55rem 0; text-decoration: none; color: var(--eaw-ink); font-weight: 700; font-size: 0.9375rem; }
.eaw-catalog__toc a::before { content: counter(c); font-size: 0.75rem; color: var(--eaw-ai); width: 1rem; }
.eaw-catalog__toc a span { margin-left: auto; font-size: 0.75rem; font-weight: 400; color: var(--eaw-muted); }
.eaw-catalog__toc a:hover { color: var(--eaw-ai); }
.eaw-catalog__legend { margin: 0; }
.eaw-catalog__legend > div { display: grid; grid-template-columns: 3.5rem 1fr; gap: 0.75rem; padding: 0.45rem 0; align-items: baseline; }
.eaw-catalog__legend dt { margin: 0; }
.eaw-catalog__legend dd { margin: 0; font-size: 0.8125rem; color: #3A4353; line-height: 1.7; }

/* 区分のラベル：主力＝藍の塗り、対応＝枠、相談＝点線 */
.eaw-tier { display: inline-block; min-width: 3rem; text-align: center; font-size: 0.6875rem; font-weight: 700; line-height: 1.8; padding: 0 0.4rem; border-radius: 2px; letter-spacing: 0.08em; }
.eaw-tier.is-main { background: var(--eaw-ai); color: #fff; border: 1px solid var(--eaw-ai); }
.eaw-tier.is-yes { color: var(--eaw-ink); border: 1px solid var(--eaw-ink); }
.eaw-tier.is-partner { color: var(--eaw-muted); border: 1px dashed var(--eaw-muted); }

.eaw-catalog__cat {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 3fr);
	gap: 1rem clamp(2rem, 4vw, 4rem);
	padding: var(--wp--preset--spacing--50) 0;
	border-top: 1px solid var(--eaw-ink);
	scroll-margin-top: 1rem;
}
.eaw-catalog__cathead { position: sticky; top: 1.5rem; align-self: start; }
.eaw-catalog__cathead h2 { margin: 0 0 0.5rem !important; padding: 0 !important; border: 0 !important; font-size: 1.25rem !important; }
.eaw-catalog__cathead p { margin: 0; font-size: 0.875rem; color: var(--eaw-muted); line-height: 1.8; }
.eaw-catalog__list { list-style: none; margin: 0; padding: 0 !important; }
.eaw-catalog__item {
	display: grid;
	grid-template-columns: 3.5rem minmax(0, 1fr) minmax(0, 0.8fr);
	grid-template-areas: "tier name ex" "tier what ex";
	gap: 0.2rem 1.5rem;
	padding: 1.1rem 0;
	border-bottom: 1px solid var(--eaw-rule);
	margin: 0 !important;
}
.eaw-catalog__item:first-child { padding-top: 0.2rem; }
.eaw-catalog__item .eaw-tier { grid-area: tier; align-self: start; margin-top: 0.25rem; }
.eaw-catalog__item h3 { grid-area: name; margin: 0; font-size: 1.0625rem; line-height: 1.5; }
.eaw-catalog__item h3 a { color: var(--eaw-ai); text-underline-offset: 0.25em; }
.eaw-catalog__what { grid-area: what; margin: 0; font-size: 0.9rem; line-height: 1.85; color: #3A4353; }
.eaw-catalog__ex { grid-area: ex; margin: 0; align-self: start; font-size: 0.8125rem; line-height: 1.7; color: var(--eaw-muted); padding: 0.6rem 0.8rem; background: var(--eaw-paper); border-radius: 3px; }
.eaw-catalog__ex span { display: block; font-size: 0.6875rem; font-weight: 700; color: var(--eaw-ink); margin-bottom: 0.1rem; }
.eaw-catalog__item.is-main { background: linear-gradient(90deg, var(--eaw-tint), transparent 70%); padding-left: 0.75rem; margin-left: -0.75rem !important; }
.eaw-catalog__count { margin-top: 2rem !important; padding-top: 1rem; border-top: 1px solid var(--eaw-ink); font-weight: 700; }

@media (max-width: 900px) {
	.eaw-catalog__head, .eaw-catalog__cat { grid-template-columns: 1fr; }
	.eaw-catalog__cathead { position: static; }
	.eaw-catalog__item { grid-template-columns: 3.5rem minmax(0, 1fr); grid-template-areas: "tier name" "tier what" "tier ex"; }
	.eaw-catalog__ex { margin-top: 0.5rem; }
}
@media (max-width: 560px) {
	.eaw-catalog__toc ol { grid-template-columns: 1fr; }
	.eaw-catalog__item { grid-template-columns: 1fr; grid-template-areas: "tier" "name" "what" "ex"; }
}
.eaw-page-head.is-wide .eaw-page-head__lead { max-width: var(--eaw-wide); padding-right: max(0px, calc(min(100%, var(--eaw-wide)) - 44em)); }
.eaw-page-body .eaw-sec-head h2 { border-top: 0; padding-top: 0; }
.eaw-catalog__item .eaw-tier { justify-self: start; }
/* 確認印は「要確認」の3文字 */
.bench-stamp { font-size: 0.75rem; letter-spacing: 0; width: 58px; height: 58px; }

/* ======================================================
   料金：冒頭の要約と、最小構成
   ====================================================== */
.eaw-fee-summary {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	border-top: 2px solid var(--eaw-ink);
	border-bottom: 1px solid var(--eaw-rule);
	margin-top: 1.5rem !important;
}
.eaw-fee-summary > div { padding: 1rem 1rem 1.1rem 0; }
.eaw-fee-summary > div + div { padding-left: 1rem; border-left: 1px solid var(--eaw-rule); }
.eaw-fee-summary span { display: block; font-size: 0.8125rem; color: var(--eaw-muted); }
.eaw-fee-summary b { display: block; font-size: clamp(1.25rem, 1.05rem + 0.7vw, 1.625rem); line-height: 1.4; letter-spacing: 0; }
.eaw-fee-summary small { display: block; font-size: 0.75rem; color: #3A4353; line-height: 1.6; margin-top: 0.2rem; }
@media (max-width: 720px) {
	.eaw-fee-summary { grid-template-columns: 1fr 1fr; }
	.eaw-fee-summary > div:nth-child(3) { padding-left: 0; border-left: 0; }
	.eaw-fee-summary > div:nth-child(n+3) { border-top: 1px solid var(--eaw-rule); }
}
.eaw-scope { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.25rem; }
.eaw-scope section { background: var(--eaw-paper); border-top: 2px solid var(--eaw-ink); padding: 1.25rem 1.4rem 1.4rem; }
.eaw-scope h3 { margin: 0 0 0.5rem; font-size: 1.0625rem; }
.eaw-scope p { margin: 0 0 0.75rem; font-size: 0.9375rem; }
.eaw-scope dl { margin: 0; font-size: 0.875rem; }
.eaw-scope dl > div { padding: 0.55rem 0; border-top: 1px solid var(--eaw-rule); }
.eaw-scope dt { font-weight: 700; font-size: 0.8125rem; }
.eaw-scope dd { margin: 0.1rem 0 0; }
@media (max-width: 720px) { .eaw-scope { grid-template-columns: 1fr; } }

/* ======================================================
   トップ：費用と担当者の要約（ヒーロー直下）
   ====================================================== */
.eaw-summary { background: #fff; border-bottom: 1px solid var(--eaw-rule); padding: 1.75rem var(--eaw-gutter); }
.eaw-summary__inner { max-width: var(--eaw-wide); margin: 0 auto; display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 4fr); gap: 1rem clamp(1.5rem, 4vw, 3.5rem); align-items: center; }
.eaw-summary__fees { margin: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.eaw-summary__fees > div { padding-right: 1rem; }
.eaw-summary__fees > div + div { padding-left: 1rem; border-left: 1px solid var(--eaw-rule); }
.eaw-summary__fees dt { font-size: 0.75rem; color: var(--eaw-muted); }
.eaw-summary__fees dd { margin: 0; }
.eaw-summary__fees b { display: block; font-size: 1.125rem; line-height: 1.5; }
.eaw-summary__fees small { display: block; font-size: 0.75rem; color: #3A4353; line-height: 1.6; }
.eaw-summary__person { display: grid; grid-template-columns: 72px 1fr; gap: 1rem; align-items: center; }
.eaw-summary__person img { width: 72px; height: 72px; object-fit: cover; border-radius: 4px; }
.eaw-summary__person p { margin: 0; font-size: 0.8125rem; line-height: 1.7; color: #3A4353; }
.eaw-summary__person span { display: block; font-size: 0.75rem; color: var(--eaw-muted); }
.eaw-summary__person b { display: block; font-size: 1rem; color: var(--eaw-ink); }
.eaw-summary__links { grid-column: 1 / -1; margin: 0; display: flex; flex-wrap: wrap; gap: 0.25rem 1.5rem; font-size: 0.875rem; font-weight: 700; }
@media (max-width: 900px) {
	.eaw-summary__inner { grid-template-columns: 1fr; }
}
@media (max-width: 600px) {
	.eaw-summary__fees { grid-template-columns: 1fr; }
	.eaw-summary__fees > div { padding: 0.6rem 0; }
	.eaw-summary__fees > div + div { padding-left: 0; border-left: 0; border-top: 1px solid var(--eaw-rule); }
}

/* 相談フォーム：送信前の取り扱い説明 */
.eaw-form-notice { margin: 1.25rem 0 0.5rem; padding: 1rem 1.25rem; background: var(--eaw-tint); border-left: 3px solid var(--eaw-ai); font-size: 0.875rem; line-height: 1.8; }
.eaw-form-notice p { margin: 0; }
.eaw-form-notice p + p { margin-top: 0.5rem; }
.eaw-form-notice__title { font-weight: 700; color: var(--eaw-ai-dark); }

/* サービス詳細：冒頭の要約 */
.eaw-svc-summary { margin-bottom: 2.5rem !important; }
.eaw-svc-summary dl { margin: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 2px solid var(--eaw-ink); border-bottom: 1px solid var(--eaw-rule); }
.eaw-svc-summary dl > div { padding: 0.9rem 1rem 1rem 0; }
.eaw-svc-summary dl > div + div { padding-left: 1rem; border-left: 1px solid var(--eaw-rule); }
.eaw-svc-summary dt { font-size: 0.8125rem; color: var(--eaw-muted); }
.eaw-svc-summary dd { margin: 0; }
.eaw-svc-summary b { display: block; font-size: 1.0625rem; line-height: 1.5; }
.eaw-svc-summary small { display: block; font-size: 0.75rem; color: #3A4353; }
.eaw-svc-summary .is-human dt, .eaw-svc-summary .is-human b { color: var(--eaw-shu); }
.eaw-svc-summary__links { display: flex; flex-wrap: wrap; align-items: center; gap: 0.75rem 1.5rem; margin: 1rem 0 0; font-size: 0.9375rem; font-weight: 700; }
.eaw-svc-summary__links .wp-block-button__link { text-decoration: none; }
@media (max-width: 700px) {
	.eaw-svc-summary dl { grid-template-columns: 1fr; }
	.eaw-svc-summary dl > div + div { padding-left: 0; border-left: 0; border-top: 1px solid var(--eaw-rule); }
}

/* 相談・資料請求のページでは、下部の相談の帯を出さない（同じ行き先の繰り返しになるため） */
body:has(.eaw-contact, .eaw-dl, .eaw-dl-done) .cta-band,
body:has(.eaw-contact, .eaw-dl, .eaw-dl-done) .eaw-mobile-cta { display: none; }

/* スマホ：画面下に固定の相談ボタン */
.eaw-mobile-cta { display: none; }
@media (max-width: 781px) {
	.eaw-mobile-cta {
		display: flex; flex-direction: column; align-items: center; justify-content: center;
		position: fixed; left: 12px; right: 12px; bottom: 12px; z-index: 50;
		min-height: 54px; padding: 0.5rem 1rem; border-radius: 6px;
		background: var(--eaw-ai); color: #fff; text-decoration: none; font-weight: 700; font-size: 1rem; line-height: 1.3;
		box-shadow: 0 2px 0 var(--eaw-ai-dark);
	}
	.eaw-mobile-cta span { font-size: 0.6875rem; font-weight: 400; opacity: 0.85; }
	.eaw-mobile-cta:hover, .eaw-mobile-cta:focus { color: #fff; background: var(--eaw-ai-dark); }
	.site-footer { padding-bottom: 88px !important; }
}

/* スマホ：トップの作業台は要点だけ（受信の本文と、台帳の古い行を省く） */
@media (max-width: 560px) {
	.bench-mail .bench-body { display: none; }
	.bench-ledger tbody tr:not(.is-new) { display: none; }
	.eaw-bench { gap: 10px; }
	.bench-panel { padding: 12px 14px; }
	.bench-draft { padding-bottom: 72px; } /* 下の「送信は担当者が確認してから」と確認印の分をあける */
}

/* 記事一覧：アイキャッチ付きの行。本文用の見出し罫線とリストの字下げを打ち消す */
.eaw-page-body .eaw-post-list .wp-block-post-template { padding-left: 0; list-style: none; }
.eaw-page-body .eaw-post-list .wp-block-post { margin: 0; }
.eaw-page-body .eaw-post-list .wp-block-post-title { border-top: 0; padding-top: 0; margin: 0.35rem 0 0.5rem; font-size: 1.1875rem; }
.eaw-post-card { display: grid; grid-template-columns: 240px minmax(0, 1fr); gap: 1.5rem; align-items: start; }
.eaw-post-card__img { margin: 0; }
.eaw-post-card__img img { border-radius: 4px; display: block; }
.eaw-post-card__body > :first-child { margin-top: 0; }
.eaw-post-card:not(:has(.eaw-post-card__img img)) { grid-template-columns: 1fr; }
@media (max-width: 640px) {
	.eaw-post-card { grid-template-columns: 1fr; gap: 0.75rem; }
}

/* 記事の表：スマホでは横スクロールにせず、文字を小さくして収める */
@media (max-width: 600px) {
	.wp-block-post-content .wp-table-responsive table { min-width: 0; font-size: 0.8125rem; }
	.wp-block-post-content .wp-table-responsive th,
	.wp-block-post-content .wp-table-responsive td { padding: 0.55rem 0.5rem; }
}
.eaw-mobile-cta { transition: transform .2s ease, opacity .2s ease; }
.eaw-mobile-cta.is-hidden { transform: translateY(140%); opacity: 0; pointer-events: none; }
@media (prefers-reduced-motion: reduce) { .eaw-mobile-cta { transition: none; } }

/* 主要ページ：作業の見本、費用の比較、相談への引き継ぎ */
.eaw-eyebrow { color: var(--eaw-ai); font-size: .8125rem; font-weight: 700; letter-spacing: .08em; margin: 0 0 1rem; }
.eaw-proof { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(2rem, 5vw, 4rem); align-items: start; }
.eaw-proof h2 { margin-top: 0; }
.eaw-proof__sheet { background: var(--eaw-paper); border: 1px solid var(--eaw-rule); border-top: 4px solid var(--eaw-ai); padding: clamp(1.25rem, 3vw, 2rem); }
.eaw-example-note { font-size: .875rem; line-height: 1.8; color: var(--eaw-muted); }
.eaw-ledger { margin: 1rem 0; }
.eaw-ledger > div { padding: .85rem 0; border-top: 1px solid var(--eaw-rule); }
.eaw-ledger dt { color: var(--eaw-ai); font-weight: 700; font-size: .875rem; margin-bottom: .3rem; }
.eaw-ledger dd { margin: 0; line-height: 1.85; }
.eaw-human-note { border-left: 3px solid var(--eaw-shu); padding: .7rem 0 .7rem 1rem; margin-bottom: 0; }
.eaw-human-note strong { display: block; color: var(--eaw-shu); margin-bottom: .4rem; }
.eaw-example-pair { display: grid; grid-template-columns: 1fr 1fr; border: 1px solid var(--eaw-rule); }
.eaw-example-pair > section { min-width: 0; padding: clamp(1.25rem, 3vw, 2rem); }
.eaw-example-pair > section + section { border-left: 1px solid var(--eaw-rule); background: var(--eaw-tint); }
.eaw-example-pair h3 { font-size: 1.125rem; margin: 0 0 1.25rem; }
.eaw-example-pair blockquote { border: 0; padding: 0; margin: 0; font-style: normal; line-height: 2; }
.eaw-delivery { background: var(--eaw-paper); border-top: 3px solid var(--eaw-ai); padding: 1.5rem; }
.eaw-delivery > :first-child { margin-top: 0; }
.eaw-delivery > :last-child { margin-bottom: 0; }
.eaw-cost-examples { display: grid; grid-template-columns: 1fr 1fr; border: 1px solid var(--eaw-rule); }
.eaw-cost-examples > section { padding: 1.5rem; min-width: 0; }
.eaw-cost-examples > section + section { background: var(--eaw-tint); border-left: 1px solid var(--eaw-rule); }
.eaw-cost-examples h3 { margin: 0 0 1.5rem; font-size: 1rem; }
.eaw-cost-examples__amount { font-size: clamp(2rem, 5vw, 2.7rem); font-weight: 700; color: var(--eaw-ai); line-height: 1.3; margin: 0; letter-spacing: -.03em; }
.eaw-cost-examples__amount span { font-size: 1rem; margin-left: .3em; }
.eaw-cost-examples__extra { color: var(--eaw-ai); font-size: .875rem; margin-top: .5rem; font-weight: 700; }
.eaw-cost-examples section > p:not([class]) { font-size: .875rem; }
.eaw-support-options { border-top: 1px solid var(--eaw-rule); }
.eaw-support-options > div { display: grid; grid-template-columns: 11rem 1fr; gap: 1.5rem; padding: 1.25rem 0; border-bottom: 1px solid var(--eaw-rule); }
.eaw-support-options dt { font-weight: 700; }
.eaw-support-options dt span { display: block; color: var(--eaw-ai); font-size: .875rem; margin-top: .4rem; }
.eaw-support-options dd { margin: 0; }
.eaw-path-links { display: flex; flex-wrap: wrap; gap: .5rem 1.75rem; }
.eaw-path-links a, .eaw-catalog__actions a { display: inline-flex; align-items: center; min-height: 44px; }
.eaw-catalog__item { grid-template-areas: "tier name ex" "tier what ex" "tier actions ex"; }
.eaw-catalog__actions { grid-area: actions; display: flex; flex-wrap: wrap; gap: .25rem 1.5rem; font-size: .8125rem; }
.eaw-contact-intro { border-left: 3px solid var(--eaw-ai); padding: .75rem 1rem; background: var(--eaw-tint); margin: 1.5rem 0; }
.eaw-contact-intro strong { color: var(--eaw-ai); }
.eaw-contact-intro p { margin: .4rem 0 0; font-size: .9375rem; }
.eaw-contact-topic { padding: .8rem 1rem; border: 1px solid var(--eaw-rule); font-size: .875rem; }
#eaw-task-hint { line-height: 1.8; }
.eaw-service-contact { background: var(--eaw-paper); padding: clamp(1.25rem, 3vw, 2rem); border-top: 3px solid var(--eaw-ai); margin-top: 3rem; }
.eaw-service-contact h2 { border: 0; padding: 0; margin-top: 0; }
@media (max-width: 900px) {
 .eaw-catalog__item { grid-template-areas: "tier name" "tier what" "tier ex" "tier actions"; }
}
@media (max-width: 700px) {
 .eaw-proof, .eaw-example-pair, .eaw-cost-examples { grid-template-columns: 1fr; }
 .eaw-example-pair > section + section, .eaw-cost-examples > section + section { border-left: 0; border-top: 1px solid var(--eaw-rule); }
 .eaw-support-options > div { grid-template-columns: 1fr; gap: .6rem; }
}
@media (max-width: 560px) {
 .eaw-catalog__item { grid-template-areas: "tier" "name" "what" "ex" "actions"; }
}

/* 相談に合わせた設計を中心にしたトップ */
.eaw-design-board { background: var(--eaw-paper); color: var(--eaw-ink); padding: clamp(1.4rem, 3vw, 2.25rem); border-top: 4px solid var(--eaw-rule); }
.eaw-design-board__label { color: var(--eaw-ai); font-size: .8125rem; font-weight: 700; letter-spacing: .1em; margin: 0 0 .8rem; }
.eaw-design-board__title { font-size: clamp(1.45rem, 2vw, 1.8rem); font-weight: 700; line-height: 1.6; margin: 0 0 1.5rem; }
.eaw-design-board ol { list-style: none; margin: 0; padding: 0; }
.eaw-design-board li { display: grid; grid-template-columns: 2rem 1fr; gap: .8rem; border-top: 1px solid var(--eaw-rule); padding: 1rem 0; margin: 0; }
.eaw-design-board li > span { color: var(--eaw-ai); font-size: .875rem; font-weight: 700; }
.eaw-design-board li p { font-size: .875rem; line-height: 1.85; margin: .4rem 0 0; }
.eaw-design-board .is-human strong, .eaw-design-board .is-human > span { color: var(--eaw-shu); }
.eaw-custom-intro h2 { max-width: 24em; }
.eaw-custom-intro > p:last-child { max-width: 48em; }
.eaw-custom-menu { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin-block: 2.5rem; border-top: 2px solid var(--eaw-ink); }
.eaw-custom-menu > div { padding: 1.5rem; border-bottom: 1px solid var(--eaw-rule); }
.eaw-custom-menu > div + div { border-left: 1px solid var(--eaw-rule); }
.eaw-custom-menu dt { font-weight: 700; font-size: 1.125rem; }
.eaw-custom-menu dt span { display: block; color: var(--eaw-ai); font-size: .8125rem; margin-bottom: 1rem; }
.eaw-custom-menu dd { margin: 1rem 0 0; font-size: .9375rem; line-height: 1.9; }
.eaw-custom-examples { border-left: 3px solid var(--eaw-ai); padding: .25rem 1.5rem; }
.eaw-custom-examples strong { color: var(--eaw-ai); }
.eaw-custom-fee { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(2rem, 5vw, 4rem); }
.eaw-custom-fee h2, .eaw-custom-fee h3 { margin-top: 0; }
@media (max-width: 700px) {
 .eaw-custom-menu, .eaw-custom-fee { grid-template-columns: 1fr; }
 .eaw-custom-menu > div { padding: 1.5rem 0; }
 .eaw-custom-menu > div + div { border-left: 0; }
 .eaw-custom-menu dt span { display: inline-block; margin: 0 .8rem 0 0; }
}

/* 分類名が長い場合も、目次の番号・名前・件数を重ねない。 */
.eaw-catalog__toc a { display: grid; grid-template-columns: 1rem minmax(0, 1fr) auto; align-items: start; }
.eaw-catalog__toc a .eaw-catalog__toc-label { margin: 0; font: inherit; color: inherit; min-width: 0; }
.eaw-catalog__toc a .eaw-catalog__toc-count { margin: 0; white-space: nowrap; }
/* 入力・プレビュー中に追従ボタンが画面を覆わないようにする。 */
body:has(.eaw-demo) .eaw-mobile-cta { display: none; }

/* ヒーロー：小さな注記も読みやすくし、余白と例文で高さを抑える。 */
.eaw-design-board--compact { padding: clamp(1rem, 2vw, 1.5rem); }
.eaw-design-board--compact .eaw-design-board__label { font-size: .9375rem; margin-bottom: .55rem; }
.eaw-design-board--compact .eaw-design-board__title { font-size: clamp(1.375rem, 1.8vw, 1.5625rem); margin-bottom: .65rem; line-height: 1.5; }
.eaw-design-board--compact .eaw-design-board__title span { display: inline-block; }
.eaw-design-board__steps { display: flex; flex-wrap: wrap; gap: .3rem .65rem; font-size: .875rem; margin: 0 0 1rem; color: #465267; }
.eaw-design-board__steps span + span { padding-left: .65rem; border-left: 1px solid var(--eaw-rule); }
.eaw-design-board__steps .is-human { color: var(--eaw-shu); }
.eaw-bench--compact { grid-template-columns: minmax(0, 1fr); grid-template-areas: "example" "mail" "draft"; gap: .65rem; font-size: .9375rem; line-height: 1.65; }
.eaw-bench--compact .bench-example { color: var(--eaw-ai); font-size: .875rem; }
.eaw-bench--compact .bench-example::after { border-color: var(--eaw-rule); }
.eaw-hero .eaw-bench--compact .bench-panel { padding: .75rem .875rem; border: 1px solid var(--eaw-rule); box-shadow: 0 2px 0 var(--eaw-rule); }
.eaw-bench--compact .bench-label { margin-bottom: .4rem; font-size: .875rem; }
.eaw-bench--compact .bench-label b { width: 20px; height: 20px; flex-shrink: 0; font-size: .8125rem; }
.eaw-bench--compact .bench-body { display: block; border: 0; padding: 0; }
.eaw-hero .eaw-bench--compact .bench-draft { display: grid; grid-template-columns: minmax(0, 1fr) 48px; gap: .4rem .5rem; align-items: center; }
.eaw-bench--compact .bench-draft .bench-label, .eaw-bench--compact .bench-lines { grid-column: 1 / -1; margin: 0; }
.eaw-bench--compact .bench-hold { position: static; max-width: none; font-size: .875rem; line-height: 1.6; }
.eaw-bench--compact .bench-stamp { position: static; width: 48px; height: 48px; font-size: .75rem; margin-top: .2rem; }
.eaw-hero .eaw-bench--compact figcaption { color: #465267; font-size: .875rem; line-height: 1.6; text-align: left; margin: .1rem 0 0; }

/* 川越：写真の上に対応方法を集約し、背景と文章の速度差を分かりやすくする。 */
.eaw-city-scene { background: #101B34; }
.eaw-city-scene__frame { position: relative; max-width: 1500px; margin: 0 auto; isolation: isolate; }
.eaw-city-scene__view { position: absolute; inset: 0; overflow: hidden; z-index: -1; }
.eaw-city-scene__image { position: absolute; width: 100%; height: calc(100% + 240px); max-width: none; top: -120px; left: 0; object-fit: cover; object-position: 50% 54%; transform: translate3d(0, var(--eaw-parallax-y, 0px), 0); }
.eaw-city-scene__shade { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(10,20,39,.83), rgba(10,20,39,.67) 55%, rgba(10,20,39,.64)); }
.eaw-city-scene__copy { padding: clamp(3rem, 5vw, 5rem) clamp(1.25rem, 5vw, 5rem); color: #fff; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 2.5rem 4rem; }
.eaw-city-scene__kicker { margin: 0 0 1rem; font-size: .9375rem; color: #E2E8F0; letter-spacing: .05em; }
.eaw-city-scene__copy h2 { font-size: clamp(1.8rem, 3vw, 2.75rem); line-height: 1.5; margin: 0 0 1.25rem; color: #fff; }
.eaw-city-scene__copy h2 span { display: block; }
.eaw-city-scene__intro > p:last-child { font-size: 1rem; line-height: 1.9; margin: 0; max-width: 29em; }
.eaw-city-scene__modes { margin: 0; }
.eaw-city-scene__modes > div { padding: 1.25rem 0; border-top: 1px solid rgba(255,255,255,.4); }
.eaw-city-scene__modes > div:first-child { padding-top: 0; border-top: 0; }
.eaw-city-scene__modes > div:last-child { padding-bottom: 0; }
.eaw-city-scene__modes dt { color: #fff; font-size: 1.25rem; font-weight: 700; margin-bottom: .65rem; }
.eaw-city-scene__modes dd { margin: 0; font-size: 1rem; line-height: 1.9; }
.eaw-city-scene__modes small { display: block; margin-top: .55rem; font-size: .875rem; line-height: 1.8; color: #E2E8F0; }
.eaw-city-scene__contact { grid-column: 1 / -1; border-top: 1px solid rgba(255,255,255,.4); padding-top: 1.5rem; display: flex; justify-content: space-between; align-items: center; gap: 1.25rem 2rem; }
.eaw-city-scene__contact p { margin: 0; font-size: 1rem; line-height: 1.85; }
.eaw-city-scene__contact strong { display: block; font-size: 1.25rem; margin-bottom: .4rem; color: #fff; }
.eaw-city-scene__links { display: flex; flex-direction: column; align-items: flex-start; gap: .75rem; flex-shrink: 0; }
.eaw-city-scene__copy a { display: inline-flex; align-items: center; min-height: 44px; color: #fff; font-size: 1rem; text-decoration-color: rgba(255,255,255,.7); }
.eaw-city-scene__copy a.eaw-city-scene__button { padding: .6rem 1.1rem; border: 1px solid #fff; background: #fff; color: var(--eaw-ai); font-weight: 700; text-decoration: none; border-radius: 4px; }
.eaw-city-scene__copy a.eaw-city-scene__button:hover { background: var(--eaw-tint); }
.eaw-city-scene__copy a:focus-visible { outline: 2px solid #fff; outline-offset: 4px; }
.eaw-city-scene__caption { position: absolute; right: 1.25rem; bottom: .5rem; margin: 0; color: #E2E8F0; font-size: .8125rem; }
@media (max-width: 960px) {
 .eaw-city-scene__copy { gap: 2rem; }
 .eaw-city-scene__contact { flex-direction: column; align-items: flex-start; }
 .eaw-city-scene__links { flex-direction: row; flex-wrap: wrap; gap: .75rem 1.5rem; }
}
@media (max-width: 781px) {
 .eaw-city-scene__copy { grid-template-columns: minmax(0, 1fr); padding: 2.5rem var(--eaw-gutter) 3rem; }
 .eaw-city-scene__image { top: 0; height: auto; transform: none; }
 .eaw-city-scene__shade { background: linear-gradient(180deg, rgba(10,20,39,.65), #101B34 min(66.6vw, 520px)); }
 .eaw-city-scene__copy h2 { font-size: 1.8rem; }
 .eaw-city-scene__modes { border-top: 1px solid rgba(255,255,255,.4); padding-top: 1.5rem; }
 .eaw-city-scene__contact { gap: 1rem; }
}
@media (prefers-reduced-motion: reduce) {
 .eaw-city-scene__image { transform: none; }
}
