/*
 * イト標準テーマ：コンポーネントの見た目
 * - 色・文字・余白は theme.json のトークン（--wp--preset--* / --wp--custom--ito--*）だけを使う
 * - 個社のデザインは theme.json（またはスタイルバリエーション）の値を変えて表現し、このファイルは原則触らない
 */

/* ---------- 基本 ---------- */
:root {
	--ito-gap: var(--wp--preset--spacing--70);
	--ito-radius: var(--wp--custom--ito--radius);
	--ito-radius-lg: var(--wp--custom--ito--radius-lg);
	--ito-line: 1px solid var(--wp--preset--color--line);
}

body { -webkit-font-smoothing: antialiased; }
img { max-width: 100%; height: auto; }
:where(a, button, summary, input, textarea):focus-visible {
	outline: 2px solid var(--wp--preset--color--accent);
	outline-offset: 3px;
}

.wp-site-blocks > .ito-main, .wp-site-blocks > .ito-site-footer { margin-block-start: 0; }
.ito-main > * + * { margin-block-start: var(--ito-gap); }
.ito-main { padding-block-end: var(--ito-gap); }

.ito-heading, .ito-page-title, .ito-hero__catch, .ito-card__title { text-wrap: balance; }
.ito-heading {
	margin: 0 0 var(--wp--preset--spacing--50);
	font-size: var(--wp--preset--font-size--x-large);
}

.ito-ph {
	display: block;
	width: 100%;
	height: 100%;
	min-height: 160px;
	background:
		linear-gradient(135deg, transparent 49.5%, var(--wp--preset--color--line) 49.5%, var(--wp--preset--color--line) 50.5%, transparent 50.5%),
		var(--wp--preset--color--surface);
}

.ito-more { margin-block-start: var(--wp--preset--spacing--40); text-align: right; }
/* 押しやすい高さ（44px 前後）を確保する */
.ito-more a { font-weight: 700; display: inline-flex; align-items: center; min-block-size: 2.75rem; padding-inline: var(--wp--preset--spacing--20); }

.ito-tag {
	display: inline-block;
	font-size: var(--wp--preset--font-size--small);
	line-height: 1.6;
	padding: 0 0.6em;
	border: var(--ito-line);
	border-radius: var(--ito-radius);
	color: var(--wp--preset--color--muted);
}

.ito-price { font-weight: 700; font-variant-numeric: tabular-nums; font-size: var(--wp--preset--font-size--large); margin: 0.25em 0; }
.ito-empty { color: var(--wp--preset--color--muted); }
.ito-editor-placeholder {
	padding: var(--wp--preset--spacing--50);
	border: 1px dashed var(--wp--preset--color--line);
	color: var(--wp--preset--color--muted);
	text-align: center;
}

/* ---------- ヘッダー ---------- */
.ito-site-header, .ito-site-footer {
	padding-inline: var(--wp--style--root--padding-left) var(--wp--style--root--padding-right);
}
.ito-site-header {
	position: sticky;
	top: 0;
	z-index: 50;
	background: var(--wp--preset--color--base);
	border-block-end: var(--ito-line);
}
.ito-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--wp--preset--spacing--40);
	min-height: var(--wp--custom--ito--header-height);
	max-width: var(--wp--style--global--wide-size);
	margin-inline: auto;
}
.ito-header > *,
.editor-styles-wrapper .ito-header > * { margin-block: 0 !important; }
.ito-logo a { display: inline-flex; align-items: center; text-decoration: none; color: inherit; }
.ito-logo__img { max-height: calc(var(--wp--custom--ito--header-height) - 24px); width: auto; }
.ito-logo__text { font-weight: 700; font-size: var(--wp--preset--font-size--large); letter-spacing: 0.06em; }

.ito-nav__list { display: flex; gap: var(--wp--preset--spacing--40); list-style: none; margin: 0; padding: 0; }
.ito-nav__list a { color: inherit; text-decoration: none; font-size: var(--wp--preset--font-size--small); font-weight: 700; padding-block: 0.5em; }
.ito-nav__list a[aria-current="page"] { box-shadow: inset 0 -2px 0 var(--wp--preset--color--primary); }
.ito-nav__toggle { display: none; }

@media (max-width: 781px) {
	.ito-nav__toggle {
		display: inline-block;
		font: inherit;
		font-weight: 700;
		background: none;
		border: var(--ito-line);
		border-radius: var(--ito-radius);
		padding: 0.4em 1em;
		cursor: pointer;
		color: inherit;
	}
	.ito-nav__list {
		display: none;
		position: absolute;
		inset: 100% 0 auto;
		flex-direction: column;
		gap: 0;
		background: var(--wp--preset--color--base);
		border-block-end: var(--ito-line);
		padding: var(--wp--preset--spacing--20) var(--wp--preset--spacing--40) var(--wp--preset--spacing--40);
	}
	.ito-nav.is-open .ito-nav__list { display: flex; }
	.ito-nav__list a { display: block; padding-block: 0.9em; border-block-end: var(--ito-line); }
}

/* ---------- メインビジュアル（v0.13：文字を重ねない。静止画・モーション・動画） ---------- */
.ito-hero {
	position: relative;
	display: block;
	background: var(--wp--preset--color--primary);
	overflow: hidden;
}
.ito-main > .ito-hero { margin-block-start: 0; }
.ito-hero__media { position: relative; display: grid; }
.ito-hero__media > * { grid-area: 1 / 1; }
.ito-hero__pic { display: contents; }
.ito-hero__img, .ito-hero__video { display: block; width: 100%; }
/* 写真（文字は下の帯）：画面の高さに合わせて切り抜く */
.ito-hero--text-below .ito-hero__media { height: var(--wp--custom--ito--hero-height); }
.ito-hero--text-below :is(.ito-hero__img, .ito-hero__video) { height: 100%; object-fit: cover; }
/* 画像に作り込んだ場合：文字が切れないよう、画像の比率のまま全体を見せる */
.ito-hero--text-in-image :is(.ito-hero__img, .ito-hero__video) { height: auto; }
/* モーション：重ねて順に切り替え、ゆっくり寄る */
.ito-hero.is-slideshow .ito-hero__img { opacity: 0; transition: opacity 1.6s ease; }
.ito-hero.is-slideshow .ito-hero__media > :first-child .ito-hero__img,
.ito-hero.is-slideshow .ito-hero__media > .ito-hero__img:first-child { opacity: 1; }
.ito-hero.is-slideshow .ito-hero__media:has(.is-active) .ito-hero__img { opacity: 0; }
.ito-hero.is-slideshow .ito-hero__media .ito-hero__img.is-active { opacity: 1; }

/* 下の帯：キャッチ・サブコピー・ボタン */
.ito-hero-intro { background: var(--wp--preset--color--base); }
.ito-hero-intro__inner {
	box-sizing: border-box;
	max-width: var(--wp--style--global--wide-size);
	margin-inline: auto;
	padding: var(--wp--preset--spacing--60) var(--wp--preset--spacing--40);
}
.ito-hero__catch {
	margin: 0;
	max-width: 18em;
	font-size: var(--wp--preset--font-size--xx-large);
	line-height: 1.35;
	color: var(--wp--preset--color--contrast);
}
.ito-hero__sub { margin: var(--wp--preset--spacing--30) 0 0; max-width: var(--wp--custom--ito--measure); }
/* 画像に文字を作り込んだとき：見出しは見えない形で、ボタンだけを画像のすぐ下に */
.ito-hero-intro--in-image .ito-hero-intro__inner { padding-block: var(--wp--preset--spacing--40); }
.ito-hero-intro--in-image .ito-hero__actions { margin: 0; justify-content: center; text-align: center; }
.ito-hero-intro--in-image .ito-hero-intro__inner:not(:has(.ito-hero__actions)) { padding: 0; }
/* PC・スマホで動画・画像を出し分け */
@media (max-width: 781px) { .ito-hero__media > .is-pc { display: none; } }
@media (min-width: 782px) { .ito-hero__media > .is-sp { display: none; } }

@media (prefers-reduced-motion: no-preference) {
	.ito-hero-intro__inner { animation: ito-rise 1s cubic-bezier(.2, .7, .2, 1) both 0.2s; }
	.ito-hero--motion .ito-hero__img { animation: ito-zoom 16s ease-out both; }
}
@keyframes ito-rise { from { opacity: 0; transform: translateY(16px); } to { opacity: 1; transform: none; } }

/* ---------- コンセプト（ブロックバインディング） ---------- */
.ito-concept:not(:has(h2, p, img)) { display: none; }
.ito-concept { display: grid; gap: var(--wp--preset--spacing--60); align-items: center; }
.ito-concept:has(.ito-concept__image) { grid-template-columns: repeat(auto-fit, minmax(min(100%, 360px), 1fr)); }
.ito-concept__image { margin: 0; }
.ito-concept__image img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--ito-radius-lg); }
.ito-concept__body > * { max-width: var(--wp--custom--ito--measure); }
.ito-concept__body p { margin: 0; }

/* ---------- カード一覧（アイテム・事例） ---------- */
.ito-cards {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 260px), 1fr));
	gap: var(--wp--preset--spacing--50) var(--wp--preset--spacing--40);
	list-style: none;
	margin: 0;
	padding: 0;
}
.ito-card__link { display: block; color: inherit; text-decoration: none; }
.ito-card__media { margin: 0 0 var(--wp--preset--spacing--30); aspect-ratio: var(--wp--custom--ito--card-ratio); overflow: hidden; border-radius: var(--ito-radius-lg); }
.ito-card__media img, .ito-card__media .ito-ph { width: 100%; height: 100%; object-fit: cover; transition: transform 0.4s ease; }
.ito-card__link:hover .ito-card__media img { transform: scale(1.03); }
.ito-card__title { margin: 0.3em 0 0; font-size: var(--wp--preset--font-size--large); }
.ito-card__link:hover .ito-card__title { text-decoration: underline; }
.ito-card__text { margin: 0.4em 0 0; color: var(--wp--preset--color--muted); font-size: var(--wp--preset--font-size--small); }

.ito-featured .ito-cards { grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr)); }
.ito-featured .ito-card { max-width: 400px; }

/* ---------- お知らせ ---------- */
.ito-news-list { list-style: none; margin: 0; padding: 0; border-block-start: var(--ito-line); }
.ito-news-list__item {
	display: grid;
	grid-template-columns: auto auto 1fr;
	gap: 0.4em var(--wp--preset--spacing--30);
	align-items: baseline;
	padding: var(--wp--preset--spacing--30) 0;
	border-block-end: var(--ito-line);
}
.ito-news-list__item time { color: var(--wp--preset--color--muted); font-variant-numeric: tabular-nums; }
.ito-news-list__item:not(:has(.ito-tag)) a { grid-column: 2 / -1; }
.ito-news-list__item a { color: inherit; }
@media (max-width: 600px) {
	.ito-news-list__item { grid-template-columns: auto 1fr; }
	.ito-news-list__item a { grid-column: 1 / -1; }
}

/* ---------- 行動ボタン ---------- */
.ito-cta {
	padding: var(--wp--preset--spacing--60) var(--wp--preset--spacing--50);
	background: var(--wp--preset--color--surface);
	border-radius: var(--ito-radius-lg);
	text-align: center;
}
.ito-cta__text { text-wrap: balance; margin: 0 auto; max-width: var(--wp--custom--ito--measure); font-size: var(--wp--preset--font-size--large); }
.ito-cta__action { margin: var(--wp--preset--spacing--40) 0 0; }
.ito-button { display: inline-block; text-decoration: none; }

/* ---------- ページタイトル ---------- */
.ito-page-title {
	margin: 0;
	padding-block: var(--wp--preset--spacing--60) var(--wp--preset--spacing--40);
	border-block-end: var(--ito-line);
}

/* ---------- ごあいさつ・概要・アクセス ---------- */
.ito-greeting { display: grid; gap: var(--wp--preset--spacing--60); grid-template-columns: repeat(auto-fit, minmax(min(100%, 320px), 1fr)); align-items: start; }
.ito-greeting__photo { margin: 0; aspect-ratio: 4 / 5; overflow: hidden; border-radius: var(--ito-radius-lg); }
.ito-greeting__photo img, .ito-greeting__photo .ito-ph { width: 100%; height: 100%; object-fit: cover; }
.ito-greeting__text { max-width: var(--wp--custom--ito--measure); }
.ito-greeting__name { text-align: right; font-weight: 700; }

.ito-table { width: 100%; border-collapse: collapse; border-block-start: var(--ito-line); }
.ito-table th, .ito-table td { padding: var(--wp--preset--spacing--30) var(--wp--preset--spacing--20); border-block-end: var(--ito-line); text-align: left; vertical-align: top; }
.ito-table th { width: 30%; min-width: 7em; font-weight: 700; }
@media (max-width: 600px) {
	.ito-table th, .ito-table td { display: block; width: auto; }
	.ito-table th { border-block-end: 0; padding-block-end: 0; }
}

.ito-access__map { margin-block-start: var(--wp--preset--spacing--40); aspect-ratio: 16 / 9; }
.ito-access__map iframe { width: 100%; height: 100%; border: 0; border-radius: var(--ito-radius-lg); }

/* ---------- スタッフ ---------- */
.ito-staff { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 240px), 1fr)); gap: var(--wp--preset--spacing--50); list-style: none; margin: 0; padding: 0; }
.ito-staff__photo { margin: 0 0 var(--wp--preset--spacing--30); aspect-ratio: var(--wp--custom--ito--staff-ratio, 1); overflow: hidden; border-radius: var(--ito-radius-lg); }
.ito-staff__photo img, .ito-staff__photo .ito-ph { width: 100%; height: 100%; object-fit: cover; }
.ito-staff__role { margin: 0; color: var(--wp--preset--color--muted); font-size: var(--wp--preset--font-size--small); }
.ito-staff__name { margin: 0.2em 0 0.4em; }
.ito-staff__bio { margin: 0; font-size: var(--wp--preset--font-size--small); }

/* ---------- よくある質問 ---------- */
.ito-faq { border-block-start: var(--ito-line); }
.ito-faq__item { border-block-end: var(--ito-line); }
.ito-faq__q { cursor: pointer; list-style: none; padding: var(--wp--preset--spacing--30) 2em var(--wp--preset--spacing--30) 0; font-weight: 700; position: relative; }
.ito-faq__q::-webkit-details-marker { display: none; }
.ito-faq__q::after { content: "+"; position: absolute; right: 0.25em; top: 50%; transform: translateY(-50%); font-weight: 400; font-size: 1.4em; color: var(--wp--preset--color--primary); }
.ito-faq__item[open] .ito-faq__q::after { content: "−"; }
.ito-faq__a { padding-block-end: var(--wp--preset--spacing--30); color: var(--wp--preset--color--muted); }
.ito-faq__a p { margin: 0; }

/* ---------- 詳細 ---------- */
.ito-single > * + * { margin-block-start: var(--wp--preset--spacing--50); }
.ito-single__media { margin-inline: 0; }
.ito-single__media img, .ito-single__media .ito-ph { width: 100%; max-height: 70vh; object-fit: cover; border-radius: var(--ito-radius-lg); }
.ito-single__media .ito-ph { aspect-ratio: var(--wp--custom--ito--card-ratio); height: auto; }
.ito-single__meta { display: flex; gap: var(--wp--preset--spacing--30); align-items: baseline; color: var(--wp--preset--color--muted); }
.ito-gallery { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 280px), 1fr)); gap: var(--wp--preset--spacing--30); }
.ito-gallery figure { margin: 0; aspect-ratio: 4 / 3; overflow: hidden; border-radius: var(--ito-radius); }
.ito-gallery img, .ito-gallery .ito-ph { width: 100%; height: 100%; object-fit: cover; }
.ito-extra { display: grid; grid-template-columns: max-content 1fr; gap: var(--wp--preset--spacing--20) var(--wp--preset--spacing--40); padding: var(--wp--preset--spacing--40); background: var(--wp--preset--color--surface); border-radius: var(--ito-radius-lg); }
.ito-extra dt { font-weight: 700; }
.ito-extra dd { margin: 0; }

/* ---------- ページ送り ---------- */
.ito-pagination { margin-block-start: var(--wp--preset--spacing--60); }
.ito-pagination ul { display: flex; flex-wrap: wrap; gap: var(--wp--preset--spacing--20); justify-content: center; list-style: none; margin: 0; padding: 0; }
.ito-pagination :is(a, span).page-numbers { display: inline-block; min-width: 2.5em; padding: 0.3em 0.6em; text-align: center; border: var(--ito-line); border-radius: var(--ito-radius); text-decoration: none; color: inherit; }
.ito-pagination .page-numbers.current { background: var(--wp--preset--color--primary); border-color: var(--wp--preset--color--primary); color: var(--wp--preset--color--on-primary); }

/* ---------- お問い合わせ ---------- */
.ito-contact__tel a { font-weight: 700; font-size: var(--wp--preset--font-size--large); }
.ito-form { margin-block-start: var(--wp--preset--spacing--50); }
.ito-form__row { display: grid; gap: 0.4em; margin: 0 0 var(--wp--preset--spacing--40); }
.ito-form__row label { font-weight: 700; }
.ito-form__req { margin-inline-start: 0.6em; font-size: var(--wp--preset--font-size--small); font-weight: 400; color: var(--wp--preset--color--accent); }
.ito-form input, .ito-form textarea {
	box-sizing: border-box;
	width: 100%;
	font: inherit;
	padding: 0.7em 0.9em;
	border: 1px solid var(--wp--preset--color--line);
	border-radius: var(--ito-radius);
	background: var(--wp--preset--color--base);
	color: inherit;
}
.ito-form__hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.ito-form__submit { text-align: center; }
.ito-form__submit .ito-button { border: 0; cursor: pointer; font: inherit; font-weight: 700; }
.ito-notice { padding: var(--wp--preset--spacing--30) var(--wp--preset--spacing--40); border-radius: var(--ito-radius); border: var(--ito-line); }
.ito-notice--success { border-color: var(--wp--preset--color--primary); }
.ito-notice--error { border-color: var(--wp--preset--color--accent); }

/* ---------- フッター ---------- */
.ito-site-footer { margin-block-start: 0; background: var(--wp--preset--color--contrast); color: var(--wp--preset--color--base); }
.ito-footer {
	max-width: var(--wp--style--global--wide-size);
	margin-inline: auto;
	padding-block: var(--wp--preset--spacing--60) var(--wp--preset--spacing--40);
	font-size: var(--wp--preset--font-size--small);
}
.ito-footer a { color: inherit; }
.ito-footer__name { margin: 0 0 var(--wp--preset--spacing--30); font-weight: 700; font-size: var(--wp--preset--font-size--large); }
.ito-footer__info { display: grid; grid-template-columns: max-content 1fr; gap: 0.3em var(--wp--preset--spacing--30); margin: 0; }
.ito-footer__info dt { opacity: 0.7; }
.ito-footer__info dd { margin: 0; }
.ito-footer__sns { display: flex; gap: var(--wp--preset--spacing--30); list-style: none; margin: var(--wp--preset--spacing--40) 0 0; padding: 0; }
.ito-footer__copy { margin: var(--wp--preset--spacing--50) 0 0; opacity: 0.6; }

/* ---------- 本文（お知らせ） ---------- */
.ito-prose > * { max-width: var(--wp--custom--ito--measure); }
.ito-prose img { border-radius: var(--ito-radius); }

/* ---------- ボタンの並び（メインビジュアル・行動ボタン） ---------- */
.ito-actions { display: flex; flex-wrap: wrap; gap: var(--wp--preset--spacing--30); }
.ito-cta .ito-actions { justify-content: center; }
.ito-hero__actions { margin: var(--wp--preset--spacing--40) 0 0; }
.ito-button { min-height: 44px; box-sizing: border-box; }
.ito-button--secondary {
	background: transparent;
	color: var(--wp--preset--color--primary);
	box-shadow: inset 0 0 0 1.5px currentColor;
}
html { scroll-padding-top: 5rem; }

/* ---------- LP向けセクション（個社設定でオンにしたときだけ出力される） ---------- */
.ito-lead { margin: calc(-1 * var(--wp--preset--spacing--30)) 0 var(--wp--preset--spacing--50); max-width: var(--wp--custom--ito--measure); color: var(--wp--preset--color--muted); }

/* 動画（無音・繰り返し）。スマホの枠つき表示は .is-phone */
.ito-video { position: relative; }
.ito-video__media { display: block; width: 100%; height: auto; border-radius: var(--ito-radius-lg); background: var(--wp--preset--color--surface); }
.ito-video.is-phone {
	width: min(100%, 300px);
	margin-inline: auto;
	padding: 10px;
	border-radius: 40px;
	background: var(--wp--preset--color--contrast);
}
.ito-video.is-phone .ito-video__media { aspect-ratio: 9 / 19.5; object-fit: cover; border-radius: 30px; }
.ito-video__toggle {
	position: absolute; inset-inline-end: 12px; inset-block-end: 12px;
	min-width: 44px; min-height: 44px; padding: 0 12px;
	border: 0; border-radius: 22px; cursor: pointer;
	background: color-mix(in srgb, var(--wp--preset--color--contrast) 72%, transparent);
	color: var(--wp--preset--color--base);
	font: inherit; font-size: var(--wp--preset--font-size--small);
}
.ito-video__toggle:hover { background: var(--wp--preset--color--contrast); }
.ito-video.is-phone .ito-video__toggle { inset-inline-end: 22px; inset-block-end: 22px; }

.ito-showcase { display: grid; gap: var(--wp--preset--spacing--60); align-items: center; grid-template-columns: repeat(auto-fit, minmax(min(100%, 320px), 1fr)); }
.ito-showcase__body > * { max-width: var(--wp--custom--ito--measure); }
.ito-showcase__body p { margin: 0; }

.ito-problems__list { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--wp--preset--spacing--30); grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr)); }
.ito-problems__item { padding: var(--wp--preset--spacing--40); background: var(--wp--preset--color--surface); border-radius: var(--ito-radius); }
.ito-problems__title { margin: 0; font-weight: 700; }
.ito-problems__text { margin: var(--wp--preset--spacing--20) 0 0; color: var(--wp--preset--color--muted); font-size: var(--wp--preset--font-size--small); }

.ito-features__list { display: grid; gap: var(--wp--preset--spacing--70); }
.ito-features__item { display: grid; gap: var(--wp--preset--spacing--50); align-items: center; grid-template-columns: repeat(auto-fit, minmax(min(100%, 320px), 1fr)); }
@media (min-width: 782px) {
	.ito-features__item:nth-child(even) .ito-features__media { order: 2; }
}
.ito-features__media .ito-video { max-width: 520px; margin-inline: auto; }
.ito-features__media .ito-video:has(video) { max-width: 300px; }
.ito-features__body > * { max-width: var(--wp--custom--ito--measure); }
.ito-features__label { margin: 0; color: var(--wp--preset--color--accent); font-weight: 700; letter-spacing: 0.08em; font-size: var(--wp--preset--font-size--small); }
.ito-features__title { margin: var(--wp--preset--spacing--20) 0 var(--wp--preset--spacing--30); font-size: var(--wp--preset--font-size--large); text-wrap: balance; }
.ito-features__body p:last-child { margin-block-end: 0; }

.ito-steps__list { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--wp--preset--spacing--30); grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr)); counter-reset: ito-step; }
.ito-steps__item { counter-increment: ito-step; padding: var(--wp--preset--spacing--40); border: var(--ito-line); border-radius: var(--ito-radius); }
.ito-steps__item::before { content: counter(ito-step, decimal-leading-zero); display: block; font-variant-numeric: tabular-nums; color: var(--wp--preset--color--primary); font-weight: 700; font-size: var(--wp--preset--font-size--large); }
.ito-steps__title { margin: var(--wp--preset--spacing--20) 0 0; font-weight: 700; }
.ito-steps__text { margin: var(--wp--preset--spacing--20) 0 0; color: var(--wp--preset--color--muted); font-size: var(--wp--preset--font-size--small); }

.ito-pricing__list { display: grid; gap: var(--wp--preset--spacing--40); grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr)); }
.ito-pricing__list:has(> :only-child) { grid-template-columns: minmax(0, 520px); justify-content: center; }
.ito-pricing__plan { padding: var(--wp--preset--spacing--50); border: var(--ito-line); border-radius: var(--ito-radius-lg); background: var(--wp--preset--color--base); }
.ito-pricing__name { margin: 0; font-weight: 700; }
.ito-pricing__price { margin: var(--wp--preset--spacing--20) 0 0; display: flex; align-items: baseline; gap: 0.4em; flex-wrap: wrap; }
.ito-pricing__price .ito-price { font-size: var(--wp--preset--font-size--xx-large); line-height: 1.1; margin: 0; }
.ito-pricing__unit { color: var(--wp--preset--color--muted); }
.ito-pricing__points { margin: var(--wp--preset--spacing--40) 0 0; padding-inline-start: 1.2em; }
.ito-pricing__points li + li { margin-block-start: 0.4em; }
.ito-pricing__note { margin: var(--wp--preset--spacing--30) 0 0; color: var(--wp--preset--color--muted); font-size: var(--wp--preset--font-size--small); }


/* ---------- 0.4.0：背景の帯・強調・メインビジュアルのスマホ・固定ボタン・動き ----------
 * どれも style.json のトークンで有効になる（既定値では見た目が変わらない）
 *   band / band-pattern：お悩み・流れ・よくある質問（トップ）の背景の帯（色と模様）
 *   mark：見出しの **言葉** のマーカー色
 *   hero-zoom：メインビジュアルの写真をゆっくり寄せる倍率（1 で動かない）
 */
body { overflow-x: clip; }

.ito-mark {
	background: linear-gradient(transparent 58%, var(--wp--custom--ito--mark) 58%);
	color: inherit;
	padding-inline: 0.06em;
}

.ito-problems, .ito-steps, .ito-top-faq { position: relative; isolation: isolate; }
.ito-problems::before, .ito-steps::before, .ito-top-faq::before {
	content: "";
	position: absolute;
	z-index: -1;
	inset-block: calc(-0.5 * var(--ito-gap));
	left: 50%;
	width: 100vw;
	transform: translateX(-50%);
	background: var(--wp--custom--ito--band-pattern), var(--wp--custom--ito--band);
}
.ito-problems__item, .ito-steps__item { background: var(--wp--preset--color--base); }
.ito-steps__item { border-color: transparent; box-shadow: 0 1px 2px color-mix(in srgb, var(--wp--preset--color--contrast) 8%, transparent); }

/* メインビジュアルの下の帯で、見出しの横にスマホの枠（PCは横並び、スマホは見出しの下） */
.ito-hero-intro.has-device .ito-hero-intro__inner {
	display: grid;
	gap: var(--wp--preset--spacing--50);
	align-items: center;
	grid-template-columns: minmax(0, 1fr);
}
@media (min-width: 782px) {
	.ito-hero-intro.has-device .ito-hero-intro__inner { grid-template-columns: minmax(0, 1.25fr) minmax(220px, 300px); }
}
.ito-hero__device .ito-video.is-phone { width: min(70vw, 280px); box-shadow: 0 24px 48px color-mix(in srgb, #000 35%, transparent); }

/* 画面下に固定するボタン（スマホのみ） */
.ito-sticky-cta { display: none; }
@media (max-width: 781px) {
	.ito-sticky-cta {
		display: block;
		position: fixed;
		z-index: 60;
		inset-inline: 0;
		bottom: 0;
		padding: 10px 16px calc(10px + env(safe-area-inset-bottom, 0px));
		background: color-mix(in srgb, var(--wp--preset--color--base) 92%, transparent);
		backdrop-filter: blur(6px);
		border-block-start: var(--ito-line);
	}
	.ito-sticky-cta .ito-button { display: block; width: 100%; text-align: center; }
	body:has(.ito-sticky-cta) .ito-site-footer { padding-block-end: calc(84px + env(safe-area-inset-bottom, 0px)); }
}

/* 動き（「動きを減らす」設定では止める。JS が無くても全て表示される） */
@media (prefers-reduced-motion: no-preference) {
	.ito-hero__device .ito-video.is-phone { animation: ito-float 6s ease-in-out infinite; }
	.ito-js .ito-reveal { opacity: 0; transform: translateY(24px); transition: opacity 0.7s ease, transform 0.7s cubic-bezier(.2, .7, .2, 1); transition-delay: var(--ito-d, 0s); }
	.ito-js .ito-reveal.is-in { opacity: 1; transform: none; }
}
@keyframes ito-zoom { from { transform: scale(var(--wp--custom--ito--hero-zoom)); } to { transform: none; } }
@keyframes ito-float { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-8px); } }

/* 日本語の見出しを文節で折り返す（対応ブラウザのみ。未対応では従来どおり） */
.ito-hero__catch, .ito-hero__sub, .ito-heading, .ito-features__title, .ito-cta__text, .ito-card__title, .ito-points__title, .ito-staff__name, .ito-steps__title { word-break: auto-phrase; }


/* ---------- 0.5.0：LP の流れ（言い切り・問いかけ・ポイント・数字） ---------- */
.ito-statement, .ito-bridge { text-align: center; }
.ito-statement__heading, .ito-bridge__heading {
	margin: 0 auto;
	max-width: 22em;
	font-family: var(--wp--preset--font-family--display);
	line-height: 1.5;
	text-wrap: balance;
	word-break: auto-phrase;
}
.ito-statement__heading { font-size: var(--wp--preset--font-size--xx-large); }
.ito-bridge__heading { font-size: var(--wp--preset--font-size--x-large); }
.ito-statement__body, .ito-bridge__body { margin: var(--wp--preset--spacing--40) auto 0; max-width: var(--wp--custom--ito--measure); color: var(--wp--preset--color--muted); }
.ito-statement { padding-block: var(--wp--preset--spacing--50); }
.ito-bridge { padding-block: var(--wp--preset--spacing--40); }
.ito-bridge__heading::before {
	content: "";
	display: block;
	width: 1px;
	height: 3em;
	margin: 0 auto var(--wp--preset--spacing--40);
	background: var(--wp--preset--color--line);
}

.ito-points__list { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--wp--preset--spacing--30); grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr)); counter-reset: ito-point; }
.ito-points__item { counter-increment: ito-point; padding: var(--wp--preset--spacing--40); border-block-start: 2px solid var(--wp--preset--color--primary); }
.ito-points__item::before { content: counter(ito-point, decimal-leading-zero); font-variant-numeric: tabular-nums; color: var(--wp--preset--color--muted); font-size: var(--wp--preset--font-size--small); letter-spacing: 0.08em; }
.ito-points__title { margin: var(--wp--preset--spacing--20) 0 0; font-weight: 700; font-size: var(--wp--preset--font-size--large); }
.ito-points__text { margin: var(--wp--preset--spacing--20) 0 0; color: var(--wp--preset--color--muted); }

.ito-data { position: relative; isolation: isolate; }
.ito-data::before {
	content: "";
	position: absolute;
	z-index: -1;
	inset-block: calc(-0.5 * var(--ito-gap));
	left: 50%;
	width: 100vw;
	transform: translateX(-50%);
	background: var(--wp--custom--ito--band-pattern), var(--wp--custom--ito--band);
}
.ito-data__list { display: grid; gap: var(--wp--preset--spacing--30); grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr)); }
.ito-data__item { margin: 0; padding: var(--wp--preset--spacing--50) var(--wp--preset--spacing--40); background: var(--wp--preset--color--base); border-radius: var(--ito-radius); }
.ito-data__value { margin: 0; font-family: var(--wp--preset--font-family--display); font-size: var(--wp--preset--font-size--xx-large); line-height: 1.1; color: var(--wp--preset--color--primary); font-variant-numeric: tabular-nums lining-nums; }
.ito-data__label { margin: var(--wp--preset--spacing--20) 0 0; font-weight: 700; }
.ito-data__text { margin: var(--wp--preset--spacing--20) 0 0; color: var(--wp--preset--color--muted); font-size: var(--wp--preset--font-size--small); }
.ito-data__source { margin: var(--wp--preset--spacing--40) 0 0; color: var(--wp--preset--color--muted); font-size: var(--wp--preset--font-size--small); }


/* ---------- 0.6.0：リッチな見た目（ito-site.json の "look": "rich" でオン） ----------
 * トークン（色・書体・角丸）はそのまま使い、余白・見出し・カード・帯の扱いを一段上げる
 */
.ito-look-rich { --ito-gap: clamp(4rem, 9vw, 7.5rem); --ito-shadow: 0 1px 2px color-mix(in srgb, var(--wp--preset--color--contrast) 6%, transparent), 0 18px 40px -18px color-mix(in srgb, var(--wp--preset--color--primary) 28%, transparent); }

/* 見出し：明朝で大きく中央に。上に小さな英字のラベル */
.ito-look-rich :is(.ito-problems, .ito-points, .ito-data, .ito-features, .ito-steps, .ito-pricing, .ito-top-faq) > .ito-heading {
	text-align: center;
	font-family: var(--wp--preset--font-family--display);
	font-size: clamp(1.6rem, 3.4vw, 2.4rem);
	line-height: 1.45;
	margin-block-end: var(--wp--preset--spacing--40);
}
.ito-look-rich :is(.ito-problems, .ito-points, .ito-data, .ito-features, .ito-steps, .ito-pricing, .ito-top-faq) > .ito-heading::before {
	display: block;
	margin-block-end: 0.9em;
	font-family: var(--wp--preset--font-family--body);
	font-size: 0.72rem;
	font-weight: 700;
	letter-spacing: 0.32em;
	color: var(--wp--preset--color--accent);
}
.ito-look-rich .ito-problems > .ito-heading::before { content: var(--ito-eb-problems, "PROBLEM"); }
.ito-look-rich .ito-points > .ito-heading::before { content: var(--ito-eb-points, "POINT"); }
.ito-look-rich .ito-data > .ito-heading::before { content: var(--ito-eb-data, "DATA"); }
.ito-look-rich .ito-features > .ito-heading::before { content: var(--ito-eb-features, "FEATURES"); }
.ito-look-rich .ito-steps > .ito-heading::before { content: var(--ito-eb-steps, "FLOW"); }
.ito-look-rich .ito-pricing > .ito-heading::before { content: var(--ito-eb-pricing, "PRICE"); }
.ito-look-rich .ito-top-faq > .ito-heading::before { content: var(--ito-eb-faq, "FAQ"); }
.ito-look-rich :is(.ito-points, .ito-data, .ito-features, .ito-pricing) > .ito-lead { margin-inline: auto; text-align: center; }

/* メインビジュアルの下の帯：大きな見出しを中央に */
.ito-look-rich .ito-hero__catch { font-size: clamp(2rem, 5.2vw, 3.6rem); line-height: 1.32; letter-spacing: 0.02em; margin-inline: auto; text-align: center; }
.ito-look-rich .ito-hero-intro:not(.has-device) :is(.ito-hero__sub, .ito-hero__actions) { margin-inline: auto; text-align: center; }
.ito-look-rich .ito-hero-intro:not(.has-device) .ito-hero__actions { justify-content: center; }

/* 言い切り：藍の全幅の帯に白い大きな文字 */
.ito-look-rich .ito-statement { position: relative; isolation: isolate; color: var(--wp--preset--color--on-primary); padding-block: clamp(4rem, 10vw, 7rem); }
.ito-look-rich .ito-statement::before {
	content: ""; position: absolute; z-index: -1; inset-block: 0; left: 50%; width: 100vw; transform: translateX(-50%);
	background:
		var(--ito-dark-texture),
		radial-gradient(ellipse at 50% 0%, color-mix(in srgb, var(--wp--preset--color--on-primary) 10%, transparent), transparent 60%),
		var(--wp--preset--color--primary);
}
.ito-look-rich .ito-main > .ito-statement { margin-block-start: 0; }
.ito-look-rich .ito-statement__heading { font-size: clamp(1.8rem, 4.4vw, 3rem); }
.ito-look-rich .ito-statement__body { color: color-mix(in srgb, var(--wp--preset--color--on-primary) 82%, transparent); }

/* 問いかけ：縦線を長く、文字を大きく */
.ito-look-rich .ito-bridge__heading { font-size: clamp(1.5rem, 3.6vw, 2.4rem); }
.ito-look-rich .ito-bridge__heading::before { height: 5em; background: linear-gradient(var(--wp--preset--color--line), var(--wp--preset--color--primary)); }

/* カード：影を重ね、少し浮かせる */
.ito-look-rich :is(.ito-problems__item, .ito-steps__item, .ito-data__item, .ito-pricing__plan) {
	border: 1px solid color-mix(in srgb, var(--wp--preset--color--line) 70%, transparent);
	border-radius: var(--ito-radius-lg);
	box-shadow: var(--ito-shadow);
	transition: transform 0.4s cubic-bezier(.2, .7, .2, 1), box-shadow 0.4s ease;
}
@media (hover: hover) {
	.ito-look-rich :is(.ito-problems__item, .ito-steps__item, .ito-data__item):hover { transform: translateY(-3px); }
}

/* お悩み：右上に大きな薄い番号 */
.ito-look-rich .ito-problems__list { counter-reset: ito-problem; }
.ito-look-rich .ito-problems__item { position: relative; overflow: hidden; counter-increment: ito-problem; padding: var(--wp--preset--spacing--50); }
.ito-look-rich .ito-problems__item::after {
	content: counter(ito-problem, decimal-leading-zero);
	position: absolute; inset-block-start: -0.18em; inset-inline-end: 0.12em;
	font-family: var(--wp--preset--font-family--display); font-size: 4.5rem; line-height: 1;
	color: color-mix(in srgb, var(--wp--preset--color--primary) 9%, transparent);
	font-variant-numeric: tabular-nums;
}
.ito-look-rich .ito-problems__title { font-size: var(--wp--preset--font-size--large); font-family: var(--wp--preset--font-family--display); }

/* ポイント：大きな番号と罫線 */
.ito-look-rich .ito-points__list { grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr)); gap: 0; border-block-start: 1px solid var(--wp--preset--color--line); }
.ito-look-rich .ito-points__item { border-block-start: 0; border-block-end: 1px solid var(--wp--preset--color--line); padding: var(--wp--preset--spacing--50) var(--wp--preset--spacing--40); }
.ito-look-rich .ito-points__item::before { display: block; font-family: var(--wp--preset--font-family--display); font-size: 2.6rem; line-height: 1; color: var(--wp--preset--color--primary); letter-spacing: 0; }
.ito-look-rich .ito-points__title { font-family: var(--wp--preset--font-family--display); }

/* 数字：大きく、下に朱の短い線 */
.ito-look-rich .ito-data__item { text-align: center; padding: var(--wp--preset--spacing--60) var(--wp--preset--spacing--40); }
.ito-look-rich .ito-data__value { font-size: clamp(2.8rem, 6vw, 4.2rem); }
.ito-look-rich .ito-data__value::after { content: ""; display: block; width: 2rem; height: 2px; margin: 0.35em auto 0; background: var(--wp--preset--color--accent); }
.ito-look-rich .ito-data__source { text-align: center; max-width: 52em; margin-inline: auto; }

/* 特長：画面の後ろに淡い円 */
.ito-look-rich .ito-features__media { position: relative; isolation: isolate; padding-block: var(--wp--preset--spacing--40); }
.ito-look-rich .ito-features__media::before {
	content: ""; position: absolute; z-index: -1; inset: 50% auto auto 50%; width: min(90%, 420px); aspect-ratio: 1; transform: translate(-50%, -50%); border-radius: 50%;
	background: radial-gradient(circle, color-mix(in srgb, var(--wp--preset--color--primary) 14%, transparent), transparent 70%);
}
.ito-look-rich .ito-features__media .ito-video.is-phone, .ito-look-rich .ito-features__media .ito-video:has(video) { box-shadow: 0 30px 60px -20px color-mix(in srgb, var(--wp--preset--color--primary) 45%, transparent); border-radius: 40px; }
.ito-look-rich .ito-features__title { font-family: var(--wp--preset--font-family--display); font-size: clamp(1.3rem, 2.6vw, 1.75rem); }
.ito-look-rich .ito-features__label { display: inline-block; padding: 0.3em 0.9em; border: 1px solid currentColor; border-radius: 999px; }

/* 流れ：番号を大きく */
.ito-look-rich .ito-steps__item::before { font-family: var(--wp--preset--font-family--display); font-size: 2.2rem; line-height: 1; }

/* 料金：上に主色の太線、価格を大きく */
.ito-look-rich .ito-pricing__plan { border-block-start: 4px solid var(--wp--preset--color--primary); text-align: center; padding: var(--wp--preset--spacing--60) var(--wp--preset--spacing--50); }
.ito-look-rich .ito-pricing__price { justify-content: center; }
.ito-look-rich .ito-pricing__price .ito-price { font-size: clamp(3.4rem, 8vw, 5rem); font-family: var(--wp--preset--font-family--display); color: var(--wp--preset--color--primary); }
.ito-look-rich .ito-pricing__points { text-align: left; display: inline-block; }

/* 最後の行動ボタン：藍の全幅の帯 */
.ito-look-rich .ito-cta { position: relative; isolation: isolate; background: transparent; color: var(--wp--preset--color--on-primary); padding-block: clamp(4rem, 9vw, 6rem); border-radius: 0; }
.ito-look-rich .ito-cta::before {
	content: ""; position: absolute; z-index: -1; inset-block: 0; left: 50%; width: 100vw; transform: translateX(-50%);
	background: var(--ito-dark-texture), var(--wp--preset--color--primary);
}
.ito-look-rich .ito-cta__text { font-family: var(--wp--preset--font-family--display); font-size: clamp(1.25rem, 2.6vw, 1.7rem); }
.ito-look-rich .ito-cta .ito-button:not(.ito-button--secondary) { background: var(--wp--preset--color--on-primary); color: var(--wp--preset--color--primary); }
.ito-look-rich .ito-cta .ito-button--secondary { color: var(--wp--preset--color--on-primary); }
.ito-look-rich .ito-main:has(> .ito-cta:last-of-type) { padding-block-end: 0; }


/* ---------- 0.6.1：写真つきのポイント（写真があるときはカードにする） ---------- */
.ito-points__photo { margin: calc(-1 * var(--wp--preset--spacing--40)) calc(-1 * var(--wp--preset--spacing--40)) var(--wp--preset--spacing--30); overflow: hidden; }
.ito-points__img { display: block; width: 100%; aspect-ratio: 3 / 2; object-fit: cover; transition: transform 0.8s cubic-bezier(.2, .7, .2, 1); }
.ito-points__item.has-image { border-block-start: 0; background: var(--wp--preset--color--base); border-radius: var(--ito-radius-lg); overflow: hidden; }
.ito-points__list:has(.has-image) { grid-template-columns: repeat(auto-fit, minmax(min(100%, 250px), 1fr)); gap: var(--wp--preset--spacing--40); }
.ito-look-rich .ito-points__list:has(.has-image) { border-block-start: 0; }
.ito-look-rich .ito-points__item.has-image { border: 1px solid color-mix(in srgb, var(--wp--preset--color--line) 70%, transparent); box-shadow: var(--ito-shadow); }
.ito-look-rich .ito-points__item.has-image::before { position: absolute; z-index: 1; margin: var(--wp--preset--spacing--30); padding: 0.15em 0.45em; font-size: 1.6rem; color: var(--wp--preset--color--on-primary); background: color-mix(in srgb, var(--wp--preset--color--primary) 82%, transparent); border-radius: var(--ito-radius); }
.ito-points__item.has-image { position: relative; }
@media (hover: hover) and (prefers-reduced-motion: no-preference) {
	.ito-points__item.has-image:hover .ito-points__img { transform: scale(1.05); }
}
.ito-points__item.has-image { padding-block-start: 0; }
.ito-points__item.has-image .ito-points__photo { margin-block-start: 0; }


/* ---------- 0.7.0：濃い帯の質感・数字の濃い帯・強調の型・見出しと写真の現れ方 ---------- */
.ito-look-rich {
	--ito-dark-texture:
		url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 1  0 0 0 0 1  0 0 0 0 1  0 0 0 .07 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"),
		radial-gradient(120% 90% at 15% 0%, color-mix(in srgb, var(--wp--preset--color--on-primary) 12%, transparent), transparent 55%),
		radial-gradient(90% 80% at 100% 100%, color-mix(in srgb, #000 28%, transparent), transparent 60%);
}

/* 数字で見る：濃い帯に白抜き。カードは半透明の面 */
.ito-look-rich .ito-data { color: var(--wp--preset--color--on-primary); padding-block: clamp(4rem, 9vw, 6.5rem); }
.ito-look-rich .ito-data::before { inset-block: 0; background: var(--ito-dark-texture), var(--wp--preset--color--primary); }
.ito-look-rich .ito-data > .ito-heading, .ito-look-rich .ito-data .ito-data__value { color: var(--wp--preset--color--on-primary); }
.ito-look-rich .ito-data > .ito-lead, .ito-look-rich .ito-data__source, .ito-look-rich .ito-data__text { color: color-mix(in srgb, var(--wp--preset--color--on-primary) 78%, transparent); }
.ito-look-rich .ito-data__item {
	background: color-mix(in srgb, var(--wp--preset--color--on-primary) 7%, transparent);
	border-color: color-mix(in srgb, var(--wp--preset--color--on-primary) 18%, transparent);
	box-shadow: none;
	backdrop-filter: blur(2px);
}
.ito-look-rich .ito-main > .ito-data + * { margin-block-start: calc(var(--ito-gap) * 1.1); }

/* 強調の型（ito-site.json の "emphasis"）。既定はマーカー */
.ito-em-box .ito-mark {
	background: var(--wp--preset--color--primary);
	color: var(--wp--preset--color--on-primary);
	padding: 0.04em 0.28em 0.08em;
	margin-inline: 0.06em;
	-webkit-box-decoration-break: clone;
	box-decoration-break: clone;
}
.ito-em-box :is(.ito-statement, .ito-data, .ito-cta) .ito-mark {
	background: var(--wp--preset--color--on-primary);
	color: var(--wp--preset--color--primary);
}
.ito-em-dots .ito-mark {
	background: none;
	-webkit-text-emphasis: filled dot var(--wp--preset--color--accent);
	text-emphasis: filled dot var(--wp--preset--color--accent);
	text-emphasis-position: over right;
}
.ito-em-color .ito-mark { background: none; color: var(--wp--preset--color--accent); font-weight: 700; }
.ito-em-color :is(.ito-statement, .ito-data, .ito-cta) .ito-mark { color: inherit; text-decoration: underline 2px var(--wp--preset--color--accent); text-underline-offset: 0.2em; }

/* 現れ方：見出しは下から差し込むように、写真は上から幕が開くように（動きを減らす設定では出さない） */
@media (prefers-reduced-motion: no-preference) {
	.ito-look-rich.ito-js .ito-reveal :is(.ito-heading, .ito-statement__heading, .ito-bridge__heading) {
		clip-path: inset(0 0 100% 0);
		transform: translateY(0.6em);
		transition: clip-path 0.9s cubic-bezier(.2, .7, .2, 1) 0.1s, transform 0.9s cubic-bezier(.2, .7, .2, 1) 0.1s;
	}
	.ito-look-rich.ito-js .ito-reveal.is-in :is(.ito-heading, .ito-statement__heading, .ito-bridge__heading) { clip-path: inset(0 0 -0.4em 0); transform: none; }
	.ito-look-rich.ito-js .ito-reveal :is(.ito-points__img, .ito-features__media .ito-video) {
		clip-path: inset(0 0 100% 0);
		transition: clip-path 1.1s cubic-bezier(.65, 0, .35, 1) calc(var(--ito-d, 0s) + 0.15s);
	}
	.ito-look-rich.ito-js .ito-reveal.is-in :is(.ito-points__img, .ito-features__media .ito-video) { clip-path: inset(0 0 0 0); }
}


/* ---------- 0.8.0：ハンバーガーメニュー ---------- */
@media (max-width: 781px) {
	.ito-nav__toggle { display: inline-grid; place-items: center; width: 44px; height: 44px; padding: 0; border: 0; background: none; }
	.ito-nav__bars { position: relative; display: block; width: 22px; height: 16px; }
	.ito-nav__bars span { position: absolute; left: 0; width: 100%; height: 2px; border-radius: 2px; background: currentColor; transition: transform 0.3s ease, opacity 0.2s ease, top 0.3s ease; }
	.ito-nav__bars span:nth-child(1) { top: 0; }
	.ito-nav__bars span:nth-child(2) { top: 7px; }
	.ito-nav__bars span:nth-child(3) { top: 14px; }
	.ito-nav.is-open .ito-nav__bars span:nth-child(1) { top: 7px; transform: rotate(45deg); }
	.ito-nav.is-open .ito-nav__bars span:nth-child(2) { opacity: 0; }
	.ito-nav.is-open .ito-nav__bars span:nth-child(3) { top: 7px; transform: rotate(-45deg); }
}

/* ---------- 0.8.0：リッチな見た目の仕上げ ---------- */
/* ヘッダー：主色に白抜き（メインビジュアル・濃い帯とつながる） */
.ito-look-rich .ito-site-header { background: var(--wp--preset--color--primary); color: var(--wp--preset--color--on-primary); border-block-end-color: color-mix(in srgb, var(--wp--preset--color--on-primary) 14%, transparent); }
.ito-look-rich .ito-nav__list a[aria-current="page"] { box-shadow: inset 0 -2px 0 var(--wp--preset--color--on-primary); }
@media (max-width: 781px) {
	.ito-look-rich .ito-nav__list { background: var(--wp--preset--color--primary); border-block-end-color: color-mix(in srgb, var(--wp--preset--color--on-primary) 14%, transparent); }
	.ito-look-rich .ito-nav__list a { border-block-end-color: color-mix(in srgb, var(--wp--preset--color--on-primary) 14%, transparent); }
}

/* 余白：セクションの間を「外側の間隔」ではなく「内側の余白」で取る。帯どうしが隙間なく接する */
.ito-look-rich .ito-main > * + * { margin-block-start: 0; }
.ito-look-rich .ito-main > :not(.ito-hero):not(.ito-sticky-cta):not(.ito-hero-intro--in-image):not(.ito-visual) { padding-block: calc(var(--ito-gap) / 2); }
.ito-look-rich :is(.ito-problems, .ito-steps, .ito-top-faq, .ito-data, .ito-statement, .ito-cta)::before { inset-block: 0; }
.ito-look-rich .ito-main { padding-block-end: 0; }
.ito-look-rich .ito-main > :last-child:not(.ito-cta):not(.ito-sticky-cta) { margin-block-end: calc(var(--ito-gap) / 2); }
.ito-look-rich .ito-statement, .ito-look-rich .ito-data, .ito-look-rich .ito-cta { padding-block: calc(var(--ito-gap) * 0.75); }
.ito-look-rich .ito-cta { margin-block-end: 0; }


/* ---------- 0.9.0：フッターの運営者・規約、表、スタッフの声 ---------- */
.ito-footer__operator { margin: var(--wp--preset--spacing--30) 0 0; font-size: var(--wp--preset--font-size--small); opacity: 0.85; }
.ito-footer__legal { list-style: none; margin: var(--wp--preset--spacing--20) 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 0.4em 1.4em; font-size: var(--wp--preset--font-size--small); }
.ito-footer__legal a { color: inherit; }

.ito-spec__table { max-width: 920px; margin-inline: auto; background: var(--wp--preset--color--base); }
.ito-spec__table th { width: 28%; color: var(--wp--preset--color--muted); }
.ito-spec__note { max-width: 920px; margin: var(--wp--preset--spacing--30) auto 0; color: var(--wp--preset--color--muted); font-size: var(--wp--preset--font-size--small); }
.ito-look-rich .ito-spec > .ito-heading { text-align: center; font-family: var(--wp--preset--font-family--display); font-size: clamp(1.6rem, 3.4vw, 2.4rem); }
.ito-look-rich .ito-spec > .ito-heading::before { content: var(--ito-eb-table, "DETAIL"); display: block; margin-block-end: 0.9em; font-family: var(--wp--preset--font-family--body); font-size: 0.72rem; font-weight: 700; letter-spacing: 0.32em; color: var(--wp--preset--color--accent); }
.ito-look-rich .ito-spec > .ito-lead { text-align: center; margin-inline: auto; }
.ito-look-rich .ito-spec__table { border: 1px solid color-mix(in srgb, var(--wp--preset--color--line) 70%, transparent); border-radius: var(--ito-radius-lg); overflow: hidden; box-shadow: var(--ito-shadow); }
.ito-look-rich .ito-spec__table th, .ito-look-rich .ito-spec__table td { padding: var(--wp--preset--spacing--30) var(--wp--preset--spacing--40); }

.ito-look-rich .ito-voices > .ito-heading { text-align: center; font-family: var(--wp--preset--font-family--display); font-size: clamp(1.6rem, 3.4vw, 2.4rem); }
.ito-look-rich .ito-voices > .ito-heading::before { content: var(--ito-eb-voices, "VOICE"); display: block; margin-block-end: 0.9em; font-family: var(--wp--preset--font-family--body); font-size: 0.72rem; font-weight: 700; letter-spacing: 0.32em; color: var(--wp--preset--color--accent); }
.ito-look-rich .ito-voices > .ito-lead { text-align: center; margin-inline: auto; }


/* ---------- 0.11.0：最新の事例（トップ） ---------- */
.ito-works .ito-cards { grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr)); }
.ito-look-rich .ito-works > .ito-heading { text-align: center; font-family: var(--wp--preset--font-family--display); font-size: clamp(1.6rem, 3.4vw, 2.4rem); }
.ito-look-rich .ito-works > .ito-heading::before { content: var(--ito-eb-works, "WORKS"); display: block; margin-block-end: 0.9em; font-family: var(--wp--preset--font-family--body); font-size: 0.72rem; font-weight: 700; letter-spacing: 0.32em; color: var(--wp--preset--color--accent); }

/* ---------- 0.11.1：濃い帯の上の英字ラベル・傍点・下線（差し色は濃い帯で沈むため、白の半透明にする） ---------- */
.ito-look-rich :is(.ito-data, .ito-statement, .ito-cta) > .ito-heading::before { color: color-mix(in srgb, var(--wp--preset--color--on-primary) 72%, transparent); }
.ito-em-dots :is(.ito-statement, .ito-data, .ito-cta) .ito-mark { -webkit-text-emphasis-color: var(--wp--preset--color--on-primary); text-emphasis-color: var(--wp--preset--color--on-primary); }
.ito-em-color :is(.ito-statement, .ito-data, .ito-cta) .ito-mark { text-decoration-color: color-mix(in srgb, var(--wp--preset--color--on-primary) 70%, transparent); }
.ito-em-dots .ito-mark { text-emphasis-position: over right; line-height: inherit; }
.ito-em-dots :is(.ito-heading, .ito-hero__catch, .ito-statement__heading) { line-height: 1.7; }

/* ---------- 0.12.1：写真の無いスタッフは、写真の枠の代わりに上の線で区切る ---------- */
.ito-staff__item--nophoto { border-block-start: 2px solid var(--wp--preset--color--primary); padding-block-start: var(--wp--preset--spacing--30); }

/* ---------- 0.12.2：スマホのお知らせのラベル、写真の無い代表あいさつの署名、フッターの電話を押しやすく ---------- */
@media (max-width: 600px) {
	.ito-news-list__item .ito-tag { justify-self: start; }
}
.ito-greeting__name { max-width: var(--wp--custom--ito--measure); }
/* 押せる範囲は 44px 前後のまま、行の高さは他の行とそろえる（見出し「電話」と番号の高さをずらさない） */
.ito-footer__info a[href^="tel:"] { display: inline-flex; align-items: center; min-block-size: 2.75rem; margin-block: calc((2.75rem - 1lh) / -2); }

/* ---------- 0.13.0：読み上げ・検索用の見えない見出し（画像に文字を作り込んだメインビジュアル） ---------- */
.screen-reader-text { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }

/* ---------- 0.14.0：作り込みの部品（ito-site.json の parts で選ぶ。色は案件のトークンに合う） ----------
 * divider：帯の上下の縁の形（wave 波／grain 年輪のゆらぎ／slant 斜め／torn ちぎり／gable 屋根形／notch ▼／chevron 山形／sheet 角の大きいシート／drip 垂れ／noren のれん）
 * frame：写真の縁（torn 和紙の破れ／mat 台紙に貼る／arch アーチ／house 家形／offset ずらした色面／capsule／circle／print 白フチと傾き）
 * texture：ページの地の質感（washi 和紙／paper 紙／linen 布／kraft クラフト／graph 方眼）
 * rule：見出しの下の飾り（ink 墨打ち／brush 筆の払い／dots 点線／sashigane 差し金）
 * card：カード・枠の見た目（corner 墨出しの角の印／double 二重罫）
 * 業種ごとのおすすめの組み合わせは デザイン部/部品入れ/ */
body.ito-divider-wave { --ito-edge-t: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 40' preserveAspectRatio='none'%3E%3Cpath d='M0 40V22C150 2 300 42 450 22S750 2 900 22 1150 42 1200 22V40Z'/%3E%3C/svg%3E"); --ito-edge-b: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 40' preserveAspectRatio='none'%3E%3Cg transform='matrix(1 0 0 -1 0 40)'%3E%3Cpath d='M0 40V22C150 2 300 42 450 22S750 2 900 22 1150 42 1200 22V40Z'/%3E%3C/g%3E%3C/svg%3E"); }
body.ito-divider-grain { --ito-edge-t: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 40' preserveAspectRatio='none'%3E%3Cpath d='M0 40V26C90 20 160 12 260 16S420 30 520 24 690 6 800 12 960 30 1060 26 1160 14 1200 16V40Z'/%3E%3C/svg%3E"); --ito-edge-b: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 40' preserveAspectRatio='none'%3E%3Cg transform='matrix(1 0 0 -1 0 40)'%3E%3Cpath d='M0 40V26C90 20 160 12 260 16S420 30 520 24 690 6 800 12 960 30 1060 26 1160 14 1200 16V40Z'/%3E%3C/g%3E%3C/svg%3E"); }
body.ito-divider-slant { --ito-edge-t: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 40' preserveAspectRatio='none'%3E%3Cpath d='M0 40V36L1200 4V40Z'/%3E%3C/svg%3E"); --ito-edge-b: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 40' preserveAspectRatio='none'%3E%3Cg transform='matrix(1 0 0 -1 0 40)'%3E%3Cpath d='M0 40V36L1200 4V40Z'/%3E%3C/g%3E%3C/svg%3E"); }
body.ito-divider-torn { --ito-edge-t: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 40' preserveAspectRatio='none'%3E%3Cpath d='M0 40V24L18 21 31 27 49 19 66 24 80 17 97 23 118 18 134 25 152 19 170 22 188 15 207 23 226 19 241 26 262 18 280 21 297 16 316 24 333 20 351 26 371 17 389 22 405 19 426 25 444 18 461 23 480 16 499 22 516 19 536 27 553 20 572 23 590 17 609 24 627 19 645 22 664 15 681 23 700 19 718 26 737 18 755 21 772 17 791 24 810 20 828 26 846 18 864 22 882 16 901 23 919 19 937 25 956 17 974 22 991 18 1011 24 1029 20 1047 27 1066 19 1084 23 1101 16 1121 22 1139 19 1158 25 1176 18 1200 22V40Z'/%3E%3C/svg%3E"); --ito-edge-b: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 40' preserveAspectRatio='none'%3E%3Cg transform='matrix(1 0 0 -1 0 40)'%3E%3Cpath d='M0 40V24L18 21 31 27 49 19 66 24 80 17 97 23 118 18 134 25 152 19 170 22 188 15 207 23 226 19 241 26 262 18 280 21 297 16 316 24 333 20 351 26 371 17 389 22 405 19 426 25 444 18 461 23 480 16 499 22 516 19 536 27 553 20 572 23 590 17 609 24 627 19 645 22 664 15 681 23 700 19 718 26 737 18 755 21 772 17 791 24 810 20 828 26 846 18 864 22 882 16 901 23 919 19 937 25 956 17 974 22 991 18 1011 24 1029 20 1047 27 1066 19 1084 23 1101 16 1121 22 1139 19 1158 25 1176 18 1200 22V40Z'/%3E%3C/g%3E%3C/svg%3E"); }
body[class*='ito-divider-'] { --ito-edge-h: clamp(18px, 2.6vw, 36px); }
body[class*='ito-divider-'] :is(.ito-problems, .ito-steps, .ito-top-faq, .ito-data)::before,
body[class*='ito-divider-'].ito-look-rich :is(.ito-statement, .ito-cta)::before {
	-webkit-mask: var(--ito-edge-t) top / 100% var(--ito-edge-h) no-repeat, var(--ito-edge-b) bottom / 100% var(--ito-edge-h) no-repeat, linear-gradient(#000 0 0) center / 100% calc(100% - 2 * var(--ito-edge-h) + 2px) no-repeat;
	mask: var(--ito-edge-t) top / 100% var(--ito-edge-h) no-repeat, var(--ito-edge-b) bottom / 100% var(--ito-edge-h) no-repeat, linear-gradient(#000 0 0) center / 100% calc(100% - 2 * var(--ito-edge-h) + 2px) no-repeat;
}
body[class*='ito-divider-'].ito-look-rich :is(.ito-statement, .ito-data, .ito-cta) { padding-block: calc(clamp(4rem, 9vw, 6.5rem) + var(--ito-edge-h) / 2); }
body.ito-frame-torn :is(.ito-card__media img, .ito-points__img, .ito-features__media img, .ito-greeting__photo img, .ito-single__media img, .ito-gallery img, .ito-staff__photo img) { -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100' preserveAspectRatio='none'%3E%3Cpath d='M1.2 1.6 6 .8 11 1.9 16 .6 21 1.5 27 .7 33 1.8 39 .5 45 1.4 51 .6 57 1.7 63 .8 69 1.5 75 .4 81 1.6 87 .7 93 1.4 98.6 .9 99.3 6 98.4 12 99.5 18 98.6 24 99.4 30 98.3 36 99.6 42 98.7 48 99.4 54 98.5 60 99.6 66 98.4 72 99.3 78 98.6 84 99.5 90 98.5 95 99.1 99.2 94 98.3 88 99.4 82 98.5 76 99.5 70 98.6 64 99.3 58 98.4 52 99.4 46 98.7 40 99.5 34 98.4 28 99.3 22 98.6 16 99.4 10 98.5 4 99.2 .9 98.7 1.6 93 .5 87 1.7 81 .8 75 1.5 69 .6 63 1.6 57 .7 51 1.4 45 .5 39 1.8 33 .7 27 1.5 21 .6 15 1.7 9 .8 4Z'/%3E%3C/svg%3E") center / 100% 100% no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100' preserveAspectRatio='none'%3E%3Cpath d='M1.2 1.6 6 .8 11 1.9 16 .6 21 1.5 27 .7 33 1.8 39 .5 45 1.4 51 .6 57 1.7 63 .8 69 1.5 75 .4 81 1.6 87 .7 93 1.4 98.6 .9 99.3 6 98.4 12 99.5 18 98.6 24 99.4 30 98.3 36 99.6 42 98.7 48 99.4 54 98.5 60 99.6 66 98.4 72 99.3 78 98.6 84 99.5 90 98.5 95 99.1 99.2 94 98.3 88 99.4 82 98.5 76 99.5 70 98.6 64 99.3 58 98.4 52 99.4 46 98.7 40 99.5 34 98.4 28 99.3 22 98.6 16 99.4 10 98.5 4 99.2 .9 98.7 1.6 93 .5 87 1.7 81 .8 75 1.5 69 .6 63 1.6 57 .7 51 1.4 45 .5 39 1.8 33 .7 27 1.5 21 .6 15 1.7 9 .8 4Z'/%3E%3C/svg%3E") center / 100% 100% no-repeat; border-radius: 0; }
body.ito-frame-mat :is(.ito-card__media img, .ito-points__img, .ito-features__media img, .ito-greeting__photo img, .ito-single__media img, .ito-gallery img, .ito-staff__photo img) { box-sizing: border-box; padding: clamp(6px, 0.9vw, 12px); background: color-mix(in srgb, var(--wp--preset--color--base) 55%, #fff); border-radius: 2px; box-shadow: 0 10px 24px color-mix(in srgb, var(--wp--preset--color--contrast) 16%, transparent), 0 1px 2px color-mix(in srgb, var(--wp--preset--color--contrast) 18%, transparent); }
body.ito-frame-mat :is(.ito-card, .ito-points__item, .ito-staff__item):nth-child(odd) :is(.ito-card__media img, .ito-points__img, .ito-staff__photo img) { transform: rotate(-1.2deg); }
body.ito-frame-mat :is(.ito-card, .ito-points__item, .ito-staff__item):nth-child(even) :is(.ito-card__media img, .ito-points__img, .ito-staff__photo img) { transform: rotate(1deg); }
body.ito-frame-mat :is(.ito-card__media, .ito-greeting__photo, .ito-staff__photo) { overflow: visible; }
body.ito-frame-arch :is(.ito-card__media img, .ito-points__img, .ito-features__media img, .ito-greeting__photo img, .ito-single__media img, .ito-gallery img, .ito-staff__photo img) { border-radius: 999px 999px var(--ito-radius) var(--ito-radius); }
body.ito-texture-washi { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9 .045' numOctaves='3' seed='7' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0.2  0 0 0 0 0.15  0 0 0 0 0.1  0 0 0 .10 0'/%3E%3C/filter%3E%3Crect width='240' height='240' filter='url(%23n)'/%3E%3C/svg%3E"); background-repeat: repeat; }
body.ito-texture-paper { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.75' numOctaves='3' seed='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0.2  0 0 0 0 0.15  0 0 0 0 0.1  0 0 0 .06 0'/%3E%3C/filter%3E%3Crect width='240' height='240' filter='url(%23n)'/%3E%3C/svg%3E"); background-repeat: repeat; }
body.ito-texture-linen { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.02 .9' numOctaves='3' seed='5' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0.2  0 0 0 0 0.15  0 0 0 0 0.1  0 0 0 .06 0'/%3E%3C/filter%3E%3Crect width='240' height='240' filter='url(%23n)'/%3E%3Crect width='240' height='240' fill='none'/%3E%3C/svg%3E"); background-repeat: repeat; }
body.ito-texture-kraft { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.6' numOctaves='3' seed='11' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0.2  0 0 0 0 0.15  0 0 0 0 0.1  0 0 0 .12 0'/%3E%3C/filter%3E%3Crect width='240' height='240' filter='url(%23n)'/%3E%3C/svg%3E"); background-repeat: repeat; }
body[class*='ito-texture-'] :is(.ito-problems__item, .ito-steps__item),
body[class*='ito-texture-']:not(.ito-look-rich) .ito-data__item { background-color: color-mix(in srgb, var(--wp--preset--color--base) 70%, #fff); }
.ito-look-rich :is(.ito-problems, .ito-points, .ito-data, .ito-features, .ito-steps, .ito-pricing, .ito-top-faq, .ito-works, .ito-featured, .ito-news) > .ito-heading { position: relative; }
body.ito-rule-ink { --ito-rule: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 240 12' preserveAspectRatio='none'%3E%3Ccircle cx='4' cy='6' r='3'/%3E%3Cpath d='M8 6.4C60 5.2 120 6.9 236 5.6' stroke='black' stroke-width='1.6' fill='none' stroke-linecap='round'/%3E%3C/svg%3E"); }
body.ito-rule-brush { --ito-rule: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 240 14' preserveAspectRatio='none'%3E%3Cpath d='M2 9C40 4 110 3 238 5C170 7 90 10 6 12Z'/%3E%3C/svg%3E"); }
body.ito-rule-dots { --ito-rule: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 240 8' preserveAspectRatio='none'%3E%3Cg%3E%3Ccircle cx='6' cy='4' r='2'/%3E%3Ccircle cx='18' cy='4' r='2'/%3E%3Ccircle cx='30' cy='4' r='2'/%3E%3Ccircle cx='42' cy='4' r='2'/%3E%3Ccircle cx='54' cy='4' r='2'/%3E%3Ccircle cx='66' cy='4' r='2'/%3E%3Ccircle cx='78' cy='4' r='2'/%3E%3Ccircle cx='90' cy='4' r='2'/%3E%3Ccircle cx='102' cy='4' r='2'/%3E%3Ccircle cx='114' cy='4' r='2'/%3E%3Ccircle cx='126' cy='4' r='2'/%3E%3Ccircle cx='138' cy='4' r='2'/%3E%3Ccircle cx='150' cy='4' r='2'/%3E%3Ccircle cx='162' cy='4' r='2'/%3E%3Ccircle cx='174' cy='4' r='2'/%3E%3Ccircle cx='186' cy='4' r='2'/%3E%3Ccircle cx='198' cy='4' r='2'/%3E%3Ccircle cx='210' cy='4' r='2'/%3E%3Ccircle cx='222' cy='4' r='2'/%3E%3Ccircle cx='234' cy='4' r='2'/%3E%3C/g%3E%3C/svg%3E"); }
body[class*='ito-rule-'] .ito-main .ito-heading::after { content: ''; display: block; width: min(240px, 60%); height: 12px; margin: 0.5em 0 0; background: var(--wp--preset--color--primary); -webkit-mask: var(--ito-rule) center / 100% 100% no-repeat; mask: var(--ito-rule) center / 100% 100% no-repeat; opacity: .8; }
/* 中央の見出し（rich の各節）だけ線も中央に。左寄せの見出しは左のまま */
body[class*='ito-rule-'].ito-look-rich :is(.ito-problems, .ito-points, .ito-data, .ito-features, .ito-steps, .ito-pricing, .ito-top-faq, .ito-works) > .ito-heading::after { margin-inline: auto; }
body[class*='ito-rule-'] :is(.ito-statement, .ito-data, .ito-cta) .ito-heading::after { background: var(--wp--preset--color--on-primary); }

/* ---------- 0.15.0：部品の追加（業種の調査から。デザイン部/部品入れ/ 参照） ---------- */
body.ito-divider-gable { --ito-edge-t: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 40' preserveAspectRatio='none'%3E%3Cpath d='M0 40V34L600 3 1200 34V40Z'/%3E%3C/svg%3E"); --ito-edge-b: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 40' preserveAspectRatio='none'%3E%3Cpath d='M0 0H1200V40H0Z'/%3E%3C/svg%3E"); }
body.ito-divider-notch { --ito-edge-t: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 40' preserveAspectRatio='none'%3E%3Cpath d='M0 0H1200V40H0Z'/%3E%3C/svg%3E"); --ito-edge-b: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 40' preserveAspectRatio='none'%3E%3Cpath d='M0 0H1200V6H632L600 38 568 6H0Z'/%3E%3C/svg%3E"); }
body.ito-divider-chevron { --ito-edge-t: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 40' preserveAspectRatio='none'%3E%3Cpath d='M0 0H1200V40H0Z'/%3E%3C/svg%3E"); --ito-edge-b: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 40' preserveAspectRatio='none'%3E%3Cpath d='M0 0H1200V4L600 38 0 4Z'/%3E%3C/svg%3E"); }
body.ito-divider-sheet { --ito-sheet-r: clamp(28px, 5vw, 64px); }
body.ito-divider-sheet :is(.ito-problems, .ito-steps, .ito-top-faq, .ito-data)::before,
body.ito-divider-sheet.ito-look-rich :is(.ito-statement, .ito-cta)::before { border-radius: var(--ito-sheet-r) var(--ito-sheet-r) 0 0; -webkit-mask: none; mask: none; }
body.ito-frame-house :is(.ito-card__media img, .ito-points__img, .ito-features__media img, .ito-greeting__photo img, .ito-single__media img, .ito-gallery img, .ito-staff__photo img) { clip-path: polygon(50% 0, 100% 16%, 100% 100%, 0 100%, 0 16%); border-radius: 0; }
body.ito-frame-offset :is(.ito-card__media img, .ito-points__img, .ito-features__media img, .ito-greeting__photo img, .ito-single__media img, .ito-gallery img, .ito-staff__photo img) { box-shadow: clamp(8px, 1.4vw, 20px) clamp(8px, 1.4vw, 20px) 0 var(--wp--custom--ito--band); }
body.ito-frame-offset :is(.ito-card__media, .ito-greeting__photo, .ito-staff__photo, .ito-features__media) { overflow: visible; }
body.ito-frame-capsule :is(.ito-card__media img, .ito-points__img, .ito-features__media img, .ito-greeting__photo img, .ito-single__media img, .ito-gallery img, .ito-staff__photo img) { border-radius: 999px; }
body.ito-frame-circle :is(.ito-card__media img, .ito-points__img, .ito-features__media img, .ito-greeting__photo img, .ito-single__media img, .ito-gallery img, .ito-staff__photo img) { aspect-ratio: 1 / 1; object-fit: cover; border-radius: 50%; }
body.ito-texture-graph { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='100' height='100'%3E%3Cpath d='M0 .5H100M.5 0V100' stroke='rgba(40,50,60,.10)' stroke-width='1'/%3E%3Cpath d='M0 20.5H100M0 40.5H100M0 60.5H100M0 80.5H100M20.5 0V100M40.5 0V100M60.5 0V100M80.5 0V100' stroke='rgba(40,50,60,.045)' stroke-width='1'/%3E%3C/svg%3E"); background-repeat: repeat; }
body.ito-rule-sashigane { --ito-rule: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 240 12' preserveAspectRatio='none'%3E%3Cpath d='M1.5 0V10.5H240' stroke='black' stroke-width='3' fill='none'/%3E%3C/svg%3E"); }
body.ito-card-corner :is(.ito-problems__item, .ito-steps__item, .ito-features__item, .ito-pricing__plan, .ito-data__item) {
	--c: color-mix(in srgb, var(--wp--preset--color--primary) 55%, transparent); --l: 16px; --w: 1.5px;
	background-image:
		linear-gradient(var(--c), var(--c)), linear-gradient(var(--c), var(--c)), linear-gradient(var(--c), var(--c)), linear-gradient(var(--c), var(--c)),
		linear-gradient(var(--c), var(--c)), linear-gradient(var(--c), var(--c)), linear-gradient(var(--c), var(--c)), linear-gradient(var(--c), var(--c));
	background-size: var(--l) var(--w), var(--w) var(--l), var(--l) var(--w), var(--w) var(--l), var(--l) var(--w), var(--w) var(--l), var(--l) var(--w), var(--w) var(--l);
	background-position: 0 0, 0 0, 100% 0, 100% 0, 0 100%, 0 100%, 100% 100%, 100% 100%;
	background-repeat: no-repeat; border-radius: 0;
}
body.ito-card-corner.ito-look-rich .ito-data__item { --c: color-mix(in srgb, var(--wp--preset--color--on-primary) 45%, transparent); }

/* ---------- 0.15.1：飲食の部品（垂れ・のれん・白フチの写真・二重罫の枠） ---------- */
body.ito-divider-drip { --ito-edge-t: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 40' preserveAspectRatio='none'%3E%3Cpath d='M0 40V22C150 2 300 42 450 22S750 2 900 22 1150 42 1200 22V40Z'/%3E%3C/svg%3E"); --ito-edge-b: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 40' preserveAspectRatio='none'%3E%3Cpath d='M0 0H1200V10C1170.3333333333333 11 1140.6666666666667 12 1111 10C1103 10 1072.0 12 1068.0 22A10 10 0 0 1 1048.0 22C1044.0 12 1013 10 1005 10C986.3333333333334 14 967.6666666666666 12 949 10C941 10 917.5 12 913.5 11A12 12 0 0 1 889.5 11C885.5 12 862 10 854 10C818.6666666666666 14 783.3333333333334 8 748 10C731.0 15 714.0 13 697 10C689 10 666.0 12 662.0 17A8 8 0 0 1 646.0 17C642.0 12 619 10 611 10C581.6666666666666 11 552.3333333333334 11 523 10C515 10 493.5 12 489.5 19A7 7 0 0 1 475.5 19C471.5 12 450 10 442 10C434 10 425.0 12 421.0 21A8 8 0 0 1 405.0 21C401.0 12 392 10 384 10C376 10 354.5 12 350.5 22A10 10 0 0 1 330.5 22C326.5 12 305 10 297 10C289 10 275.0 12 271.0 20A12 12 0 0 1 247.0 20C243.0 12 229 10 221 10C189.33333333333334 14 157.66666666666666 12 126 10C99.33333333333333 13 72.66666666666667 11 46 10C30.666666666666664 11 15.333333333333334 13 0 10Z'/%3E%3C/svg%3E"); }
body.ito-divider-noren { --ito-edge-t: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 40' preserveAspectRatio='none'%3E%3Cpath d='M0 0H1200V40H0Z'/%3E%3C/svg%3E"); --ito-edge-b: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 40' preserveAspectRatio='none'%3E%3Cpath fill-rule='evenodd' d='M0 0H1200V40H0ZM237 40V16H243V40ZM477 40V16H483V40ZM717 40V16H723V40ZM957 40V16H963V40Z'/%3E%3C/svg%3E"); }
body.ito-divider-drip, body.ito-divider-noren { --ito-edge-h: clamp(24px, 3.4vw, 48px); }
body.ito-frame-print :is(.ito-card__media img, .ito-points__img, .ito-features__media img, .ito-greeting__photo img, .ito-single__media img, .ito-gallery img, .ito-staff__photo img) { box-sizing: border-box; padding: clamp(8px, 1.1vw, 14px) clamp(8px, 1.1vw, 14px) clamp(14px, 2vw, 26px); background: #fffdf8; border-radius: 1px; box-shadow: 0 14px 30px color-mix(in srgb, var(--wp--preset--color--contrast) 20%, transparent); }
body.ito-frame-print :is(.ito-card, .ito-points__item, .ito-staff__item):nth-child(3n+1) :is(.ito-card__media img, .ito-points__img, .ito-staff__photo img) { transform: rotate(-2.5deg); }
body.ito-frame-print :is(.ito-card, .ito-points__item, .ito-staff__item):nth-child(3n+2) :is(.ito-card__media img, .ito-points__img, .ito-staff__photo img) { transform: rotate(1.8deg); }
body.ito-frame-print :is(.ito-card, .ito-points__item, .ito-staff__item):nth-child(3n) :is(.ito-card__media img, .ito-points__img, .ito-staff__photo img) { transform: rotate(-.8deg); }
body.ito-frame-print :is(.ito-card__media, .ito-greeting__photo, .ito-staff__photo) { overflow: visible; }
body.ito-card-double :is(.ito-problems__item, .ito-steps__item, .ito-features__item, .ito-pricing__plan, .ito-news-list, .ito-overview, .ito-access) { border: 3px double color-mix(in srgb, var(--wp--preset--color--primary) 45%, transparent); border-radius: 0; }
body.ito-card-double :is(.ito-news-list, .ito-overview, .ito-access) { padding: var(--wp--preset--spacing--40); }

/* ---------- 0.16.0：書体の自由化（明朝・筆記体など）。飾りの書体 accent を英字ラベルと番号に ---------- */
.ito-look-rich :is(.ito-problems, .ito-points, .ito-data, .ito-features, .ito-steps, .ito-pricing, .ito-top-faq) > .ito-heading::before,
.ito-look-rich .ito-points__item::before, .ito-look-rich .ito-steps__item::before { font-family: var(--wp--preset--font-family--accent, var(--wp--preset--font-family--display)); }
/* 英字ラベルの見せ方（ito-site.json の parts.eyebrow）：script＝筆記体らしく大きく、serif＝上品な斜体 */
body.ito-eyebrow-script.ito-look-rich :is(.ito-problems, .ito-points, .ito-data, .ito-features, .ito-steps, .ito-pricing, .ito-top-faq) > .ito-heading::before { text-transform: none; letter-spacing: 0; font-size: clamp(1.6rem, 3vw, 2.2rem); font-weight: 400; line-height: 1.1; margin-block-end: 0.15em; }
body.ito-eyebrow-serif.ito-look-rich :is(.ito-problems, .ito-points, .ito-data, .ito-features, .ito-steps, .ito-pricing, .ito-top-faq) > .ito-heading::before { text-transform: none; letter-spacing: 0.08em; font-style: italic; font-size: clamp(1.05rem, 1.6vw, 1.3rem); font-weight: 500; }

/* ---------- 0.16.1：英字ラベルの書体を全節でそろえる、台紙・白フチの傾きと影を切らない、「私たちの仕事」の写真にも縁 ---------- */
.ito-look-rich :is(.ito-spec, .ito-voices, .ito-works) > .ito-heading::before { font-family: var(--wp--preset--font-family--accent, var(--wp--preset--font-family--body)); }
body.ito-eyebrow-script.ito-look-rich :is(.ito-spec, .ito-voices, .ito-works) > .ito-heading::before { text-transform: none; letter-spacing: 0; font-size: clamp(1.6rem, 3vw, 2.2rem); font-weight: 400; line-height: 1.1; }
body.ito-eyebrow-serif.ito-look-rich :is(.ito-spec, .ito-voices, .ito-works) > .ito-heading::before { text-transform: none; letter-spacing: 0.08em; font-style: italic; font-size: clamp(1.05rem, 1.6vw, 1.3rem); font-weight: 500; }
:is(body.ito-frame-mat, body.ito-frame-print, body.ito-frame-offset) :is(.ito-points__photo, .ito-points__item.has-image) { overflow: visible; }
:is(body.ito-frame-mat, body.ito-frame-print) .ito-points__photo { padding: var(--wp--preset--spacing--20); }
body.ito-frame-torn .ito-concept__image img { -webkit-mask: var(--ito-torn-mask); mask: var(--ito-torn-mask); }
body.ito-frame-arch .ito-concept__image img { border-radius: 999px 999px var(--ito-radius) var(--ito-radius); }
body.ito-frame-house .ito-concept__image img { clip-path: polygon(50% 0, 100% 16%, 100% 100%, 0 100%, 0 16%); }
body.ito-frame-torn { --ito-torn-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100' preserveAspectRatio='none'%3E%3Cpath d='M1.2 1.6 6 .8 11 1.9 16 .6 21 1.5 27 .7 33 1.8 39 .5 45 1.4 51 .6 57 1.7 63 .8 69 1.5 75 .4 81 1.6 87 .7 93 1.4 98.6 .9 99.3 6 98.4 12 99.5 18 98.6 24 99.4 30 98.3 36 99.6 42 98.7 48 99.4 54 98.5 60 99.6 66 98.4 72 99.3 78 98.6 84 99.5 90 98.5 95 99.1 99.2 94 98.3 88 99.4 82 98.5 76 99.5 70 98.6 64 99.3 58 98.4 52 99.4 46 98.7 40 99.5 34 98.4 28 99.3 22 98.6 16 99.4 10 98.5 4 99.2 .9 98.7 1.6 93 .5 87 1.7 81 .8 75 1.5 69 .6 63 1.6 57 .7 51 1.4 45 .5 39 1.8 33 .7 27 1.5 21 .6 15 1.7 9 .8 4Z'/%3E%3C/svg%3E") center / 100% 100% no-repeat; }

/* ---------- 作り込みブロック（v0.17）：キービジュアルの作り方で作った画像を画面幅いっぱいに。文字は画像に作り込む ---------- */
.ito-visual, .ito-main > section.ito-visual, .ito-look-rich .ito-main > section.ito-visual { margin-block: 0; padding-block: 0; }
.ito-visual__figure { margin: 0; }
.ito-visual__figure picture, .ito-visual__img { display: block; width: 100%; height: auto; }
.ito-visual__img { contain-intrinsic-size: none; }
/* スマホ用の画像は縦長 4:5（1080x1350 で作る） */
@media (max-width: 781px) { .ito-visual__figure picture:has(source) .ito-visual__img { aspect-ratio: 4 / 5; object-fit: cover; } }
.ito-visual__link { display: block; }
.ito-visual__link:focus-visible { outline: 3px solid var(--wp--preset--color--accent); outline-offset: -6px; }
