/* ==========================================================================
   2026-10 リニューアル（検査票の作りで組んだ部品を、0ベース案Aの見た目に切り替えて使う）
   デザイン: 0ベース案A「話したことが、ページになる」— 司令塔 clients/tech-ocean/design/2026-10-19_zero-base/
   以下は検査票の版の記録
   デザインの正本: Designキャンバス https://claude.ai/artifact/5B4c37hZUunRFT1gPoJTfS
   （TOP 案2「検査票」v2・下層 v2）。生成スクリプトは司令塔
   clients/tech-ocean/design/2026-10-16_top-redesign/。
   既存CSSの後ろに読み込み、新しいマークアップ（.k-*）と共通部分の見た目を上書きする。
   ========================================================================== */

:root {
	/* 2026-10-19 0ベース案A「話したことが、ページになる」の配色（紺＋朱・紙色の地）。変数名は検査票の版のまま */
	--k-paper: #F6F3EC;
	--k-paper-2: #EFEBE1;      /* 段差をつける節 */
	--k-ink: #1B2A4A;          /* 見出し・線・濃い面（ロゴの紺） */
	--k-dark: #141E33;
	--k-text: #2F3440;
	--k-sub: #5B6170;          /* 紙色の上の注記（5.6:1） */
	--k-sub-dark: #C9CFDA;
	--k-accent: #B53C28;       /* 差し色の文字（紙色の上でも 4.5:1 以上） */
	--k-accent-btn: #C8442F;   /* ボタンの地色（白文字 4.86:1） */
	--k-accent-on-dark: #F3B5A8;
	--k-line: rgba(27, 42, 74, 0.14);
	--k-radius: 18px;
	--k-mincho: "Shippori Mincho", "Hiragino Mincho ProN", "Yu Mincho", serif;
	--k-gothic: "Noto Sans JP", sans-serif;
	--k-hand: "Zen Kurenaido", "Klee One", cursive;
	--k-en: "Montserrat", sans-serif;
	--k-gutter: 80px;
	--k-max: 1280px;
}

@media (max-width: 1024px) {
	:root { --k-gutter: 40px; }
}

@media (max-width: 768px) {
	:root { --k-gutter: 16px; }
}

body {
	background: var(--k-paper);
}

/* ---------- 共通の部品 ---------- */
.k-sec {
	padding: 96px var(--k-gutter);
	background: var(--k-paper);
	font-family: var(--k-gothic);
	color: var(--k-text);
}

.k-sec--tight { padding-top: 40px; }
.k-sec--dark { background: var(--k-dark); color: rgba(255, 255, 255, 0.85); }

.k-inner {
	max-width: var(--k-max);
	margin: 0 auto;
}

/* 節の見出し: 見出しの下端が、画面の端から端まで通る2本組の線に乗る */
.k-head {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	gap: 40px;
	align-items: end;
	padding-bottom: 10px;
}

.k-head__label {
	margin: 0 0 14px;
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 0.14em;
	color: var(--k-accent-btn);
}

.k-head__title {
	margin: 0;
	font-family: var(--k-mincho);
	font-size: 44px;
	font-weight: 800;
	line-height: 1.3;
	letter-spacing: 0.04em;
	color: var(--k-ink);
	font-feature-settings: "palt";
}

.k-head__side {
	padding-bottom: 6px;
	font-size: 16px;
	line-height: 1.95;
	color: var(--k-text);
}

.k-head__side p { margin: 0; }

.k-ridge {
	position: relative;
	height: 2px;
	margin: 0 calc(var(--k-gutter) * -1) 48px;
	background: linear-gradient(180deg, #c9ced6 0, #c9ced6 1px, rgba(10, 10, 12, 0.35) 1px, rgba(10, 10, 12, 0.35) 2px);
}

/* 画面幅いっぱいまで線を伸ばす（中身の幅が --k-max で止まる場合） */
@media (min-width: 1441px) {
	.k-ridge { margin-left: calc((100vw - var(--k-max)) / -2); margin-right: calc((100vw - var(--k-max)) / -2); }
}

.k-sec--dark .k-head__label { color: var(--k-accent); }
.k-sec--dark .k-head__title { color: #fff; }
.k-sec--dark .k-head__side { color: rgba(255, 255, 255, 0.85); }

/* ボタン */
.k-btn,
a.k-btn:link,
a.k-btn:visited {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	min-height: 60px;
	padding: 0 30px;
	background: var(--k-accent-btn);
	border: 1.5px solid var(--k-accent-btn);
	color: #fff;
	font-size: 16px;
	font-weight: 700;
	text-decoration: none;
	transition: background-color 0.15s ease, color 0.15s ease;
}

a.k-btn:hover { background: #9a4a09; border-color: #9a4a09; color: #fff; }
.k-btn--ghost,
a.k-btn--ghost:link,
a.k-btn--ghost:visited { background: transparent; border-color: var(--k-ink); color: var(--k-ink); }
a.k-btn--ghost:hover { background: var(--k-ink); border-color: var(--k-ink); color: #fff; }
.k-btn--ghost-dark,
a.k-btn--ghost-dark:link,
a.k-btn--ghost-dark:visited { background: transparent; border-color: #fff; color: #fff; }
a.k-btn--ghost-dark:hover { background: #fff; color: var(--k-ink); }

.k-btn:focus-visible,
.k-link:focus-visible,
.k-card-link:focus-visible {
	outline: 3px solid var(--k-accent);
	outline-offset: 3px;
}

.k-icon {
	display: block;
	flex: 0 0 auto;
	color: var(--k-ink);
}

/* 記録票の表: 上に2pxの墨の線、各行は細い罫 */
.k-rec {
	width: 100%;
	border-collapse: collapse;
}

.k-rec thead th {
	padding: 14px 18px;
	border-bottom: 2px solid var(--k-ink);
	font-size: 13px;
	font-weight: 700;
	color: var(--k-sub);
	text-align: left;
	vertical-align: top;
}

.k-rec tbody th {
	padding: 20px 18px;
	border-bottom: 1px solid var(--k-line);
	font-size: 15px;
	font-weight: 700;
	line-height: 1.8;
	color: var(--k-ink);
	text-align: left;
	vertical-align: top;
}

.k-rec td,
.k-rec tbody th,
.k-note,
.k-maint-box p { word-break: auto-phrase; }

.k-rec td {
	padding: 20px 18px;
	border-bottom: 1px solid var(--k-line);
	font-size: 15px;
	line-height: 1.8;
	color: var(--k-text);
	vertical-align: top;
}

.k-note {
	font-size: 14px;
	line-height: 1.8;
	color: var(--k-sub);
}

.k-mincho { font-family: var(--k-mincho); font-feature-settings: "palt"; }
.k-en { font-family: var(--k-en); }

/* ---------- ヘッダー（デザイン: 白地・84px・ナビ6項目＋無料相談） ---------- */
.site-header,
.home .site-header,
.home .site-header.is-scrolled {
	background: #fff;
	border-bottom: 1px solid var(--k-line);
}

.site-header__top { display: none; }

.site-header__main { height: 84px; }

.site-header__brand { border-right: 0; padding-left: 40px; gap: 12px; }
.site-header__brand::before { display: none; }
.site-header__brand-mark { width: 42px; height: 42px; }

.site-header__logo {
	font-family: var(--k-gothic);
	font-size: 16px;
	letter-spacing: 0.18em;
}

.site-header__logo-en { font-size: 9px; letter-spacing: 0.3em; margin-top: 2px; }

.site-header__nav { justify-content: flex-end; padding-right: 8px; }
.site-header__nav-item .num { display: none; }

.site-header__nav-item {
	font-family: var(--k-gothic);
	font-size: 14px;
	font-weight: 500;
	color: var(--k-ink);
	letter-spacing: 0.02em;
}

.site-header__cta { padding-right: 40px; align-items: center; }

.site-header__cta a.site-header__cta-btn,
.site-header__cta a.site-header__cta-btn:link,
.site-header__cta a.site-header__cta-btn:visited {
	height: 46px;
	padding: 0 22px;
	background: var(--k-accent-btn);
	color: #fff;
	font-size: 15px;
	font-weight: 700;
	border-radius: 0;
}

.site-header__cta a.site-header__cta-btn::before,
.site-header__cta-btn .arrow { display: none; }
.site-header__cta a.site-header__cta-btn:hover,
.site-header__cta a.site-header__cta-btn:focus { background: #9a4a09; color: #fff; }

@media (max-width: 768px) {
	.site-header__main { height: var(--header-height-sp); }
	.site-header__brand { padding-left: 0; }
	.site-header__brand-mark { width: 34px; height: 34px; }
	.site-header__logo { font-size: 14px; }
}

/* ---------- 自社開発サービスの帯（機能名を主役に、製品名は小さく） ---------- */
.k-products {
	padding: 80px var(--k-gutter);
	background: var(--k-paper);
	font-family: var(--k-gothic);
}

.k-products__list {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 24px;
	margin-top: -20px;
}

.k-products__item,
a.k-products__item:link,
a.k-products__item:visited {
	display: grid;
	grid-template-columns: 72px minmax(0, 1fr) auto;
	gap: 24px;
	align-items: center;
	padding: 28px 30px;
	background: #fff;
	border: 1px solid var(--k-line);
	color: var(--k-ink);
	text-decoration: none;
	transition: border-color 0.15s ease;
}

.k-products__item:hover { border-color: var(--k-ink); color: var(--k-ink); }
.k-products__for { display: block; font-size: 13px; color: var(--k-sub); }

.k-products__func {
	display: block;
	margin-top: 6px;
	font-family: var(--k-mincho);
	font-size: 28px;
	font-weight: 700;
	line-height: 1.3;
}

.k-products__text { display: block; margin-top: 8px; font-size: 15px; line-height: 1.7; color: var(--k-text); }

.k-products__name {
	display: block;
	margin-top: 8px;
	font-family: var(--k-en);
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 0.06em;
	color: var(--k-sub);
}

.k-products__go { font-size: 14px; font-weight: 700; white-space: nowrap; }

/* ---------- フッター（暗い面） ---------- */
.site-footer::before { display: none; }

.site-footer {
	background: var(--k-dark);
	color: rgba(255, 255, 255, 0.85);
	font-family: var(--k-gothic);
}

.k-footer {
	padding: 80px var(--k-gutter) 40px;
}

.k-footer__grid {
	display: grid;
	grid-template-columns: 360px repeat(4, minmax(0, 1fr));
	gap: 40px;
}

.k-footer__brand,
.k-footer__brand:link,
.k-footer__brand:visited { display: flex; align-items: center; gap: 12px; color: #fff; text-decoration: none; }
.k-footer__brand img { width: 44px; height: 44px; object-fit: contain; filter: brightness(0) invert(1); }
.k-footer__name, .k-footer__name-en { display: block; }
.k-footer__name { font-size: 17px; font-weight: 700; letter-spacing: 0.16em; color: #fff; }
.k-footer__name-en { margin-top: 3px; font-family: var(--k-en); font-size: 10px; letter-spacing: 0.3em; color: var(--k-accent); }
.k-footer__info { margin: 24px 0 0; font-size: 14px; line-height: 1.9; }
.k-footer__info + .k-footer__info { margin-top: 14px; }
.k-footer__cta { margin-top: 22px; min-height: 52px; padding: 0 24px; font-size: 15px; }

.k-footer__col-head {
	margin: 0 0 16px;
	padding-bottom: 12px;
	border-bottom: 1px solid rgba(255, 255, 255, 0.3);
	font-size: 14px;
	font-weight: 700;
	color: #fff;
}

.k-footer__list { list-style: none; margin: 0; padding: 0; }

.k-footer__list a,
.k-footer__list a:link,
.k-footer__list a:visited {
	display: block;
	padding: 6px 0;
	font-size: 14px;
	color: rgba(255, 255, 255, 0.85);
	text-decoration: none;
}

.k-footer__list a:hover { color: #fff; text-decoration: underline; }

.k-footer__bottom {
	display: flex;
	justify-content: space-between;
	gap: 16px;
	margin-top: 64px;
	padding-top: 22px;
	border-top: 1px solid rgba(255, 255, 255, 0.2);
	font-size: 13px;
	color: rgba(255, 255, 255, 0.7);
}

/* ---------- 中くらいの画面・スマホ ---------- */
@media (max-width: 1024px) {
	.k-footer__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.k-footer__about { grid-column: 1 / -1; }
	.k-products__list { grid-template-columns: 1fr; }
}

@media (max-width: 768px) {
	.k-sec { padding-top: 64px; padding-bottom: 64px; }
	.k-head { grid-template-columns: 1fr; gap: 16px; }
	.k-head__title { font-size: 28px; }
	.k-head__side { font-size: 15px; }
	.k-head__side br { display: none; }
	.k-ridge { margin-bottom: 32px; }
	.k-btn,
	a.k-btn:link,
	a.k-btn:visited { width: 100%; min-height: 54px; padding: 0 20px; }
	.k-products { padding-top: 56px; padding-bottom: 56px; }
	.k-products__item,
	a.k-products__item:link,
	a.k-products__item:visited { grid-template-columns: 48px minmax(0, 1fr); gap: 16px; padding: 22px 18px; }
	.k-products__item .k-icon { width: 48px; height: 48px; }
	.k-products__func { font-size: 22px; }
	.k-products__go { grid-column: 2; }
	.k-footer { padding-top: 56px; }
	.k-footer__grid { gap: 32px 24px; }
	.k-footer__bottom { flex-direction: column; }
}

/* ==========================================================================
   TOP（front-page.php）
   ========================================================================== */
.k-link,
a.k-link:link,
a.k-link:visited { font-size: 15px; font-weight: 700; color: var(--k-ink); text-decoration: underline; text-underline-offset: 4px; }

.k-figure { color: var(--k-ink); }
.k-figure__svg { display: block; max-width: 100%; height: auto; overflow: visible; }
.k-spark { display: block; margin-top: 10px; color: var(--k-ink); overflow: visible; }

/* FV */
.k-fv { background: var(--k-paper); font-family: var(--k-gothic); overflow: hidden; }
.k-fv__inner {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 500px;
	gap: 80px;
	max-width: calc(var(--k-max) + var(--k-gutter) * 2);
	margin: 0 auto;
	padding: 56px var(--k-gutter) 56px;
}
.k-fv__label { margin: 56px 0 0; font-size: 14px; font-weight: 700; letter-spacing: 0.1em; color: var(--k-accent-btn); }
.k-fv__title {
	margin: 40px 0 0;
	font-family: var(--k-mincho);
	font-size: 62px;
	font-weight: 800;
	line-height: 1.3;
	letter-spacing: -0.01em;
	color: var(--k-ink);
	font-feature-settings: "palt";
}
.k-fv__title span { color: var(--k-accent-btn); }
.k-fv__mark { height: 2px; margin: 18px -80px 32px 0; background: var(--k-ink); transform-origin: 100% 50%; animation: k-draw 1s ease-out 0.4s both; }
.k-fv__lead { margin: 0; font-size: 17px; line-height: 1.95; color: var(--k-text); }
.k-fv__actions { display: flex; flex-wrap: wrap; gap: 16px; margin-top: 34px; }
.k-fv__case,
a.k-fv__case:link,
a.k-fv__case:visited { display: block; margin-top: 30px; padding-top: 16px; border-top: 1px solid var(--k-line); color: var(--k-ink); text-decoration: none; }
.k-fv__case-meta { display: block; font-size: 13px; color: var(--k-sub); }
.k-fv__case-title { display: block; margin-top: 4px; font-size: 17px; font-weight: 700; }
.k-fv__case:hover .k-fv__case-title { text-decoration: underline; }
.k-fv__window { margin: 0; }
.k-fv__photo { position: relative; height: 704px; overflow: hidden; background: var(--k-dark); animation: k-open 1.4s cubic-bezier(0.7, 0, 0.2, 1) 0.2s both; }
.k-fv__photo img { position: absolute; left: -112%; top: -20%; width: 320%; height: 128%; max-width: none; object-fit: cover; object-position: 78% 47.5%; }
.k-fv__caption { display: flex; justify-content: space-between; margin-top: 12px; font-size: 12px; color: var(--k-sub); }
.k-fv__caption .k-en { letter-spacing: 0.1em; }

@keyframes k-open { from { clip-path: inset(50% 0 50% 0); } to { clip-path: inset(0 0 0 0); } }
@keyframes k-draw { from { transform: scaleX(0); } to { transform: scaleX(1); } }

@media (prefers-reduced-motion: reduce) {
	.k-fv__photo, .k-fv__mark { animation: none; }
}

/* 料金の目安 */
.k-prices { padding: 0 var(--k-gutter) 56px; background: var(--k-paper); font-family: var(--k-gothic); }
.k-prices__list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-bottom: 1px solid var(--k-line); }
.k-prices__item,
a.k-prices__item:link,
a.k-prices__item:visited { display: block; padding: 34px 32px 30px; border-left: 1px solid var(--k-line); color: var(--k-ink); text-decoration: none; }
a.k-prices__item:hover .k-prices__detail { text-decoration: underline; }
.k-prices__label { margin: 0; font-size: 14px; font-weight: 700; color: var(--color-text-mid, #5a5d68); }
.k-prices__value { margin: 12px 0 0; font-family: var(--k-mincho); font-size: 26px; font-weight: 700; }
.k-prices__value b { margin: 0 4px; font-family: var(--k-en); font-size: 48px; font-weight: 700; }
.k-prices__detail { margin: 10px 0 0; font-size: 14px; color: var(--k-text); }
.k-prices__note { margin: 16px 0 0; font-size: 13px; color: var(--k-sub); }

/* お悩み */
.k-pains__list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0 44px; margin: 0; padding: 0; list-style: none; }
.k-pains__col { display: flex; flex-direction: column; }
.k-pains__stage { position: relative; display: flex; align-items: center; gap: 16px; height: 96px; padding: 0 24px; background: var(--k-ink); color: #fff; }
.k-pains__stage .k-icon { color: #fff; }
.k-pains__col:not(:last-child) .k-pains__stage::after { content: "→"; position: absolute; right: -32px; top: 30px; font-size: 26px; color: var(--k-ink); }
.k-pains__step { margin: 0; font-size: 12px; font-weight: 700; letter-spacing: 0.12em; color: var(--k-accent-on-dark); }
.k-pains__stage-name { margin: 4px 0 0; font-family: var(--k-mincho); font-size: 22px; font-weight: 700; }
.k-pains__down { position: relative; height: 34px; }
.k-pains__down::before { content: ""; position: absolute; left: 50%; top: 0; height: 28px; border-left: 1.75px solid var(--k-ink); }
.k-pains__down::after { content: ""; position: absolute; left: calc(50% - 5px); top: 20px; width: 10px; height: 10px; border-right: 1.75px solid var(--k-ink); border-bottom: 1.75px solid var(--k-ink); transform: rotate(45deg); }
.k-pains__card { display: flex; flex-direction: column; gap: 12px; padding: 26px 26px 24px; background: #fff; border: 1px solid var(--k-line); }
.k-pains__no { margin: 0; font-size: 13px; font-weight: 700; color: var(--k-sub); }
.k-pains__title { margin: 0; font-family: var(--k-mincho); font-size: 23px; font-weight: 700; line-height: 1.5; color: var(--k-ink); }
.k-pains__text { margin: 0; font-size: 15px; line-height: 1.9; color: var(--k-text); }
.k-pains__stop { position: relative; display: flex; align-items: center; justify-content: center; height: 44px; margin: 6px 0; }
.k-pains__stop::before { content: ""; position: absolute; left: 0; right: 0; top: 50%; height: 4px; margin-top: -2px; background: repeating-linear-gradient(90deg, var(--k-accent-btn) 0 18px, transparent 18px 26px); }
.k-pains__stop span { position: relative; display: inline-flex; align-items: center; gap: 8px; padding: 6px 16px; background: var(--k-accent-btn); color: #fff; font-size: 14px; font-weight: 700; }
.k-pains__stop span::before { content: "✕"; font-size: 12px; }
.k-pains__fix { flex: 1; padding: 22px 26px; background: var(--k-ink); color: #fff; }
.k-pains__fix-label { margin: 0; font-size: 13px; font-weight: 700; color: var(--k-accent-on-dark); }
.k-pains__fix-text { margin: 10px 0 0; font-family: var(--k-mincho); font-size: 19px; font-weight: 700; line-height: 1.7; }

/* 支援事例の記録票 */
.k-cases__table { margin-top: -30px; table-layout: fixed; }
.k-cases__table thead th:nth-child(1) { width: 260px; }
.k-cases__table thead th:nth-child(3) { width: 280px; }
.k-cases__table thead th:nth-child(4) { width: 220px; }
.k-cases__table thead th:nth-child(5) { width: 110px; }
.k-cases__table .k-cases__basis { white-space: normal; word-break: auto-phrase; }
.k-cases__table thead th { white-space: nowrap; }
.k-cases__table tbody th,
.k-cases__table td { padding: 24px 18px; border-bottom: 1px solid var(--k-line); vertical-align: middle; }
.k-rec .k-cases__industry,
.k-cases__industry { font-family: var(--k-mincho); font-size: 22px; font-weight: 700; color: var(--k-ink); white-space: nowrap; text-align: left; }
.k-cases__summary { font-size: 15px; line-height: 1.85; }
.k-cases__result { color: var(--k-ink); white-space: nowrap; }
.k-case__num { margin: 0; font-size: 16px; }
.k-case__num b { font-family: var(--k-en); font-size: 22px; }
.k-case__story { margin: 0; font-size: 16px; font-weight: 700; line-height: 1.6; }
.k-cases__basis { font-size: 14px; line-height: 1.7; color: var(--k-sub); white-space: nowrap; }
.k-cases__more,
a.k-cases__more:link,
a.k-cases__more:visited { display: inline-flex; align-items: center; min-height: 44px; padding: 0 14px; border: 1px solid var(--k-ink); font-size: 14px; font-weight: 700; color: var(--k-ink); text-decoration: none; white-space: nowrap; }
a.k-cases__more:hover { background: var(--k-ink); color: #fff; }
.k-cases__foot { display: flex; justify-content: space-between; align-items: center; gap: 40px; margin-top: 36px; }
.k-cases__actions { display: flex; gap: 14px; flex: 0 0 auto; }

/* サービス */
.k-services__map { display: grid; grid-template-columns: 520px minmax(0, 1fr); gap: 64px; align-items: center; margin-bottom: 56px; }
.k-services__map-title { margin: 0; font-family: var(--k-mincho); font-size: 26px; font-weight: 700; line-height: 1.6; color: var(--k-ink); }
.k-services__map-text { margin: 16px 0 0; font-size: 16px; line-height: 1.95; color: var(--k-text); }
.k-services__grid { display: grid; grid-template-columns: 560px minmax(0, 1fr); gap: 64px; }
.k-services__main,
a.k-services__main:link,
a.k-services__main:visited { display: flex; flex-direction: column; justify-content: space-between; min-height: 380px; padding: 40px 40px 34px; background: var(--k-ink); color: #fff; text-decoration: none; }
.k-services__main-label { display: block; font-size: 13px; font-weight: 700; letter-spacing: 0.14em; color: var(--k-accent); }
.k-services__main-name { display: block; margin-top: 14px; font-family: var(--k-mincho); font-size: 34px; font-weight: 800; }
.k-services__main-text { display: block; margin-top: 18px; font-size: 16px; line-height: 1.95; color: rgba(255, 255, 255, 0.88); }
.k-services__main-foot { display: flex; justify-content: space-between; align-items: baseline; padding-top: 20px; border-top: 1px solid rgba(255, 255, 255, 0.3); font-size: 15px; font-weight: 700; }
.k-services__main-foot .k-mincho { font-size: 20px; font-weight: 500; }
.k-services__main-foot b { margin: 0 6px; font-size: 40px; }
.k-services__list { border-top: 1px solid var(--k-line); }
.k-services__item,
a.k-services__item:link,
a.k-services__item:visited { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; gap: 28px; align-items: center; padding: 28px 0; border-bottom: 1px solid var(--k-line); color: var(--k-ink); text-decoration: none; }
.k-services__name { display: block; font-family: var(--k-mincho); font-size: 24px; font-weight: 700; }
.k-services__text { display: block; margin-top: 8px; font-size: 15px; line-height: 1.8; color: var(--k-text); }
.k-services__price { font-family: var(--k-mincho); font-size: 20px; font-weight: 700; white-space: nowrap; }
a.k-services__item:hover .k-services__name,
a.k-services__main:hover .k-services__main-foot > span:last-child { text-decoration: underline; }

/* 選ばれる理由 */
.k-reasons__list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 48px; }
.k-reasons__item { display: flex; flex-direction: column; gap: 18px; padding-top: 24px; border-top: 2px solid var(--k-ink); }
.k-reasons__top { display: flex; align-items: center; justify-content: space-between; }
.k-reasons__no { font-size: 44px; font-weight: 700; line-height: 1; color: var(--k-accent-btn); }
.k-reasons__pic { display: flex; align-items: center; gap: 8px; color: var(--k-ink); }
.k-reasons__op { font-size: 20px; }
.k-reasons__title { margin: 0; font-family: var(--k-mincho); font-size: 26px; font-weight: 700; line-height: 1.5; color: var(--k-ink); }
.k-reasons__text { margin: 0; font-size: 15px; line-height: 1.95; color: var(--k-text); }
.k-reasons__cta { display: flex; align-items: center; gap: 20px; margin-top: 56px; font-size: 15px; font-weight: 700; color: var(--k-ink); }

/* 制作実績 */
.k-works__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 32px; }
.k-works__item,
a.k-works__item:link,
a.k-works__item:visited { display: flex; flex-direction: column; gap: 16px; color: var(--k-ink); text-decoration: none; }
.k-works__thumb { display: block; aspect-ratio: 14 / 9; overflow: hidden; border: 1px solid var(--k-line); background: #fff; }
.k-works__thumb img { width: 100%; height: 100%; object-fit: cover; object-position: top; display: block; }
.k-works__no { font-size: 13px; font-weight: 700; color: var(--color-text-mid, #5a5d68); }
.k-works__title { font-size: 17px; font-weight: 700; line-height: 1.6; }
.k-works__title span { font-weight: 500; color: var(--k-text); }
a.k-works__item:hover .k-works__title { text-decoration: underline; }

/* コラム・お知らせ */
.k-feed__grid { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); gap: 72px; }
.k-feed__featured { margin: -24px 0 8px; font-size: 14px; line-height: 1.9; color: var(--k-text); }
.k-feed__featured a { color: var(--k-ink); font-weight: 700; text-decoration: underline; }
.k-feed__list { margin: 0; padding: 0; list-style: none; }
.k-feed__list a,
.k-feed__list a:link,
.k-feed__list a:visited { display: grid; grid-template-columns: 110px minmax(0, 1fr); gap: 16px; padding: 20px 0; border-bottom: 1px solid var(--k-line); color: var(--k-ink); text-decoration: none; }
.k-feed__list time { padding-top: 3px; font-family: var(--k-en); font-size: 13px; color: var(--color-text-mid, #5a5d68); }
.k-feed__list span { font-size: 16px; font-weight: 500; line-height: 1.7; word-break: auto-phrase; }
.k-feed__list a:hover span { text-decoration: underline; }

/* 相談の枠 */
.k-talk { padding-top: 30px; padding-bottom: 110px; }
.k-talk__box { display: grid; grid-template-columns: minmax(0, 1fr) 440px; border: 2px solid var(--k-ink); }
.k-talk__body { padding: 56px 56px 52px; }
.k-talk__title { margin: 0; font-family: var(--k-mincho); font-size: 46px; font-weight: 800; line-height: 1.35; color: var(--k-ink); font-feature-settings: "palt"; }
.k-talk__text { margin: 22px 0 0; font-size: 16px; line-height: 1.95; color: var(--k-text); }
.k-talk__side { position: relative; min-height: 340px; overflow: hidden; background: var(--k-dark); }
.k-talk__side img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 76% 47.5%; opacity: 0.75; }
.k-talk__booking,
a.k-talk__booking:link,
a.k-talk__booking:visited { align-self: center; padding: 4px 0; font-size: 14px; font-weight: 700; color: #fff; text-decoration: underline; text-underline-offset: 4px; }
.k-talk__actions { position: absolute; left: 36px; right: 36px; bottom: 40px; display: flex; flex-direction: column; gap: 12px; }

/* TOP: 中くらいの画面 */
@media (max-width: 1200px) {
	.k-fv__inner { grid-template-columns: minmax(0, 1fr) 380px; gap: 48px; }
	.k-fv__title { font-size: 52px; }
	.k-services__map, .k-services__grid { grid-template-columns: 1fr; gap: 40px; }
	.k-services__map .k-figure { max-width: 520px; }
	.k-cases__foot { flex-direction: column; align-items: flex-start; }
	.k-talk__box { grid-template-columns: 1fr; }
	.k-talk__side { min-height: 300px; }
}

/* TOP: スマホ */
@media (max-width: 900px) {
	.k-fv__inner { grid-template-columns: 1fr; gap: 0; padding-top: 0; }
	.k-fv__window { order: -1; margin: 0 calc(var(--k-gutter) * -1); }
	.k-fv__photo { height: 190px; }
	.k-fv__photo img { left: -20%; top: -70%; width: 140%; height: 240%; }
	.k-fv__caption { padding: 0 var(--k-gutter); font-size: 11px; }
	.k-fv__label { margin-top: 28px; }
	.k-fv__title { margin-top: 16px; font-size: 34px; }
	.k-fv__mark { margin: 14px calc(var(--k-gutter) * -1) 20px 0; }
	.k-fv__lead { font-size: 15px; }
	.k-fv__lead br { display: none; }
	.k-fv__actions { flex-direction: column; gap: 12px; margin-top: 24px; }
	.k-prices__list { grid-template-columns: 1fr; }
	.k-prices__item,
	a.k-prices__item:link,
	a.k-prices__item:visited { padding: 22px 0; border-left: 0; border-top: 1px solid var(--k-line); }
	.k-prices__value b { font-size: 40px; }
	.k-pains__list { grid-template-columns: 1fr; gap: 40px; }
	.k-pains__col:not(:last-child) .k-pains__stage::after { content: "↓"; right: auto; left: 50%; top: auto; bottom: -1000px; display: none; }
	.k-pains__title { font-size: 21px; }
	.k-cases__table, .k-cases__table thead, .k-cases__table tbody, .k-cases__table tr, .k-cases__table th, .k-cases__table td { display: block; }
	.k-cases__table thead { display: none; }
	.k-cases__table { margin-top: 0; }
	.k-cases__table tr { padding: 20px 0; border-bottom: 1px solid var(--k-line); }
	.k-cases__table tbody th, .k-cases__table td { padding: 4px 0; border: 0; white-space: normal; }
	.k-rec .k-cases__industry { font-size: 20px; }
	.k-cases__summary br { display: none; }
	.k-cases__go { padding-top: 12px !important; }
	.k-cases__actions { flex-direction: column; width: 100%; }
	.k-services__main,
	a.k-services__main:link,
	a.k-services__main:visited { min-height: 0; padding: 28px 22px; }
	.k-services__main-name { font-size: 26px; }
	.k-services__main-text br { display: none; }
	.k-services__main-foot { flex-direction: column; gap: 8px; }
	.k-services__item,
	a.k-services__item:link,
	a.k-services__item:visited { grid-template-columns: minmax(0, 1fr) auto; gap: 8px 16px; }
	.k-services__price { grid-column: 1; font-size: 17px; }
	.k-services__text br { display: none; }
	.k-reasons__list, .k-works__grid, .k-feed__grid { grid-template-columns: 1fr; gap: 40px; }
	.k-reasons__title { font-size: 22px; }
	.k-reasons__text br { display: none; }
	.k-reasons__cta { flex-direction: column; align-items: stretch; }
	.k-talk { padding-bottom: 64px; }
	.k-talk__body { padding: 32px 22px; }
	.k-talk__title { font-size: 24px; }
	.k-services__map-title { font-size: 21px; }
	.k-services__map-text br { display: none; }
	/* スマホでは行の途中の折り返しを避けられないため、文節の区切りで折り返す */
	.k-sec p, .k-sec h2, .k-sec h3, .k-fv p, .k-fv h1, .k-products p,
	.k-services__main-text, .k-services__text, .k-products__text, .k-works__title, .k-feed__list span { word-break: auto-phrase; }
	.k-talk__text br { display: none; }
	.k-talk__side { min-height: 0; padding: 120px 22px 28px; }
	.k-talk__actions { position: relative; left: auto; right: auto; bottom: auto; }
	.k-feed__list a,
	.k-feed__list a:link,
	.k-feed__list a:visited { grid-template-columns: 1fr; gap: 4px; }
}

/* ==========================================================================
   下層の見出し（parts/hero.php）とパンくず
   ========================================================================== */
.k-hero { background: var(--k-paper); font-family: var(--k-gothic); }
.k-hero__inner {
	position: relative;
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 0;
	max-width: calc(var(--k-max) + var(--k-gutter) * 2);
	margin: 0 auto;
	padding: 72px var(--k-gutter) 48px;
}
.k-hero--window .k-hero__inner { grid-template-columns: minmax(0, 1fr) 300px; gap: 80px; min-height: 376px; padding-top: 36px; }
.k-hero--window .k-hero__text { padding-top: 56px; }
.k-hero__label { margin: 0 0 14px; font-size: 14px; font-weight: 700; letter-spacing: 0.1em; color: var(--k-accent-btn); }
.k-hero__title {
	margin: 0;
	max-width: 880px;
	font-family: var(--k-mincho);
	font-size: 52px;
	font-weight: 800;
	line-height: 1.3;
	letter-spacing: 0.01em;
	color: var(--k-ink);
	font-feature-settings: "palt";
}
.k-hero__title { word-break: auto-phrase; }
.k-hero__phrase { display: inline-block; }
.k-hero__rule { height: 2px; margin-top: 18px; background: var(--k-ink); }
.k-hero--window .k-hero__rule { margin-right: -80px; }
.k-hero__lead { margin: 22px 0 0; max-width: 860px; font-size: 17px; line-height: 1.95; color: var(--k-text); }
.k-hero__action { margin-top: 28px; }
.k-hero__window { position: relative; height: 300px; overflow: hidden; background: var(--k-dark); }
.k-hero__window img { position: absolute; left: -140%; top: -68%; width: 367%; height: 207%; max-width: none; object-fit: cover; object-position: 78% 47.5%; }

/* パンくず（見出しの直後） */
.breadcrumb { background: var(--k-paper); border: 0; }
.breadcrumb .breadcrumb__list,
.breadcrumb__list { max-width: calc(var(--k-max) + var(--k-gutter) * 2); margin: 0 auto; padding: 0 var(--k-gutter) 8px; font-size: 13px; letter-spacing: 0.06em; color: var(--k-sub); }
.breadcrumb a { color: var(--k-sub); }
.breadcrumb__item:last-child,
.breadcrumb li:last-child { color: var(--k-ink); font-weight: 700; }

@media (max-width: 900px) {
	.k-hero__inner,
	.k-hero--window .k-hero__inner { grid-template-columns: 1fr; gap: 0; min-height: 0; padding: 32px var(--k-gutter) 28px; }
	.k-hero--window .k-hero__text { padding-top: 0; }
	.k-hero__window { display: none; }
	.k-hero__title { font-size: 30px; }
	.k-hero--window .k-hero__rule { margin-right: calc(var(--k-gutter) * -1); }
	.k-hero__lead { font-size: 15px; word-break: auto-phrase; }
	.k-hero__lead br { display: none; }
	.k-hero__action .k-btn { width: 100%; }
}

/* ==========================================================================
   下層の共通（2列・明朝の言葉・本文・項目と内容の表）
   ========================================================================== */
.k-two { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 64px; margin-top: -16px; }
.k-two--message { grid-template-columns: 420px minmax(0, 1fr); }
.k-statement { margin: 0; font-family: var(--k-mincho); font-size: 28px; font-weight: 700; line-height: 1.7; color: var(--k-ink); font-feature-settings: "palt"; }
.k-prose p { margin: 0; font-size: 16px; line-height: 2; color: var(--k-text); }
.k-prose p + p { margin-top: 18px; }
.k-kv { width: 100%; border-collapse: collapse; border-top: 2px solid var(--k-ink); margin-top: -16px; }
.k-kv th { width: 240px; padding: 22px 18px; border-bottom: 1px solid var(--k-line); font-size: 14px; font-weight: 700; color: var(--k-sub); text-align: left; vertical-align: top; }
.k-kv th .k-en { margin-right: 12px; color: var(--k-accent-btn); }
.k-kv td { padding: 22px 18px; border-bottom: 1px solid var(--k-line); font-size: 16px; line-height: 1.85; color: var(--k-ink); }
.k-kv td small { font-size: 13px; color: var(--k-sub); }

/* 会社概要 */
.k-company__sub { margin: 14px 0 0; font-size: 14px; color: var(--k-sub); }
.k-company__sig { margin-top: 32px; padding-top: 18px; border-top: 1px solid var(--k-line); }
.k-company__role { margin: 0; font-size: 13px; color: var(--k-sub); }
.k-company__name { margin: 6px 0 0; font-family: var(--k-mincho); font-size: 26px; font-weight: 700; color: var(--k-ink); }
.k-company__name .k-en { margin-left: 14px; font-size: 13px; font-weight: 600; letter-spacing: 0.14em; color: var(--k-sub); }
.k-company__links { display: flex; gap: 20px; margin: 14px 0 0; font-size: 15px; }
.k-company__links a { color: var(--k-ink); font-weight: 700; text-decoration: underline; }
.k-company__timeline { margin-top: 56px; }
.k-company__timeline-sp { display: none; }
.k-company__access { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 40px; margin-top: 56px; padding: 28px 32px; background: #fff; border: 1px solid var(--k-line); }
.k-company__access p { margin: 0; font-size: 15px; line-height: 1.9; color: var(--k-text); }
.k-company__access-head { margin-bottom: 8px !important; font-size: 14px !important; font-weight: 700; color: var(--k-ink) !important; }
.k-company__hours { font-size: 14px !important; font-weight: 700; color: var(--k-ink) !important; white-space: nowrap; }

@media (max-width: 900px) {
	.k-two, .k-two--message { grid-template-columns: 1fr; gap: 32px; }
	.k-statement { font-size: 22px; }
	.k-prose p { font-size: 15px; word-break: auto-phrase; }
	.k-prose br { display: none; }
	.k-company__access p { word-break: auto-phrase; }
	.k-kv th, .k-kv td { display: block; width: auto; }
	.k-kv th { padding: 16px 0 4px; border-bottom: 0; }
	.k-kv td { padding: 0 0 16px; font-size: 15px; }
	.k-company__timeline { display: none; }
	.k-company__timeline-sp { display: block; margin: 40px 0 0; padding: 0 0 0 20px; list-style: none; border-left: 2px solid var(--k-ink); }
	.k-company__timeline-sp li { position: relative; font-size: 15px; line-height: 1.8; color: var(--k-ink); }
	.k-company__timeline-sp li + li { margin-top: 20px; }
	.k-company__timeline-sp li:last-child::before { content: ""; position: absolute; left: -28px; top: 6px; width: 14px; height: 14px; border-radius: 50%; background: var(--k-accent-btn); }
	.k-company__timeline-sp .k-en { display: block; font-size: 14px; font-weight: 700; color: var(--k-accent-btn); }
	.k-company__access { grid-template-columns: 1fr; gap: 12px; padding: 22px 18px; }
}

/* サービス一覧 */
.k-entries { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.k-entries__item,
a.k-entries__item:link,
a.k-entries__item:visited { display: flex; flex-direction: column; justify-content: space-between; gap: 20px; min-height: 210px; padding: 30px 28px; background: #fff; border: 1px solid var(--k-line); border-top: 3px solid var(--k-ink); color: var(--k-ink); text-decoration: none; }
.k-entries__title { display: block; font-family: var(--k-mincho); font-size: 26px; font-weight: 700; }
.k-entries__text { display: block; margin-top: 12px; font-size: 15px; line-height: 1.8; color: var(--k-text); }
.k-entries__go { font-size: 15px; font-weight: 700; }
a.k-entries__item:hover .k-entries__go { text-decoration: underline; }
.k-hours { display: grid; grid-template-columns: 560px minmax(0, 1fr); gap: 64px; align-items: center; margin: -8px 0 48px; }
.k-hours__text { margin: 0; }
.k-hours__text .k-mincho { display: block; font-size: 24px; font-weight: 700; line-height: 1.7; color: var(--k-ink); }
.k-hours__text > span:last-child { display: block; margin-top: 6px; font-size: 15px; color: var(--k-text); }
.k-scroll { overflow-x: auto; }
.k-plans thead th { font-size: 14px; font-weight: 500; color: var(--k-ink); }
.k-plans thead th b { font-size: 18px; }
.k-plans__name { display: block; font-family: var(--k-mincho); font-size: 20px; font-weight: 700; }
.k-plans tbody th { width: 220px; font-size: 15px; font-weight: 500; color: var(--k-text); border-bottom: 1px solid var(--k-line); padding: 20px 18px; }
.k-plans__note { margin-top: 16px; }
.k-plans__note a { color: var(--k-ink); text-decoration: underline; }
.k-plans__more { margin-top: 24px; }
.k-projects { display: grid; grid-template-columns: 520px minmax(0, 1fr); gap: 56px; align-items: center; }
.k-projects__table tbody th { padding: 20px 18px; border-bottom: 1px solid var(--k-line); text-align: left; font-weight: 400; }
.k-projects__no { width: 70px; font-weight: 700; color: var(--k-accent-btn) !important; white-space: nowrap; }
.k-projects__name { display: block; font-family: var(--k-mincho); font-size: 20px; font-weight: 700; color: var(--k-ink); }
.k-projects__desc { display: block; margin-top: 6px; font-size: 14px; line-height: 1.75; color: var(--k-text); }
.k-projects__price { font-weight: 700; color: var(--k-ink) !important; white-space: nowrap; }
.k-projects__go, .k-industries__go { white-space: nowrap; }
.k-maint-box { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: 48px; margin-top: -16px; padding: 32px 36px; background: #fff; border: 1px solid var(--k-line); }
.k-maint-box__lead { margin: 0; font-size: 16px; line-height: 1.95; color: var(--k-text); }
.k-maint-box__list { margin: 16px 0 0; font-size: 14px; line-height: 1.9; color: var(--k-text); }
.k-maint-box__side { display: flex; flex-direction: column; justify-content: center; gap: 16px; padding-left: 32px; border-left: 1px solid var(--k-line); }
.k-maint-box__price { margin: 0; font-size: 22px; color: var(--k-ink); }
.k-maint-box__price b { margin: 0 6px; font-size: 44px; }
.k-maint-box__price span { margin-left: 6px; font-family: var(--k-gothic); font-size: 13px; }
.k-industries__table { margin-top: -16px; }
.k-rec .k-industries__name { width: 250px; font-weight: 700; padding: 20px 18px; border-bottom: 1px solid var(--k-line); font-family: var(--k-mincho); font-size: 20px; color: var(--k-ink) !important; text-align: left; }
.k-industries__fix { color: var(--k-ink) !important; font-weight: 500; }

@media (max-width: 1200px) {
	.k-hours, .k-projects { grid-template-columns: 1fr; gap: 32px; }
	.k-hours .k-figure, .k-projects .k-figure { max-width: 520px; }
}

@media (max-width: 900px) {
	.k-entries { grid-template-columns: 1fr; gap: 16px; }
	.k-entries__item,
	a.k-entries__item:link,
	a.k-entries__item:visited { min-height: 0; padding: 22px 18px; }
	.k-entries__title { font-size: 22px; }
	.k-hours__text .k-mincho { font-size: 20px; }
	.k-plans { min-width: 680px; }
	.k-plans__note br, .k-maint-box br, .k-projects__desc br { display: none; }
	.k-projects__table, .k-projects__table tbody, .k-projects__table tr, .k-projects__table th, .k-projects__table td,
	.k-industries__table, .k-industries__table tbody, .k-industries__table tr, .k-industries__table th, .k-industries__table td { display: block; width: auto; }
	.k-projects__table thead, .k-industries__table thead { display: none; }
	.k-projects__table tr, .k-industries__table tr { padding: 18px 0; border-bottom: 1px solid var(--k-line); }
	.k-projects__table tbody th, .k-projects__table td, .k-industries__table tbody th, .k-industries__table td { padding: 3px 0; border: 0; }
	.k-industries__table td br { display: none; }
	.k-maint-box { grid-template-columns: 1fr; gap: 20px; padding: 22px 18px; }
	.k-maint-box__side { padding: 20px 0 0; border-left: 0; border-top: 1px solid var(--k-line); }
}

/* ==========================================================================
   下層の部品（月額支援ほか）
   ========================================================================== */
.k-jump { display: flex; flex-wrap: wrap; gap: 12px 28px; margin-top: -16px; }
.k-cycle { display: grid; grid-template-columns: 460px minmax(0, 1fr); gap: 56px; align-items: center; }
.k-cycle__steps { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 32px 36px; margin: 0; padding: 0; list-style: none; }
.k-cycle__steps li { padding-top: 20px; border-top: 2px solid var(--k-ink); }
.k-cycle__no { margin: 0; font-size: 13px; font-weight: 700; color: var(--k-accent-btn); }
.k-cycle__steps h3 { margin: 10px 0 0; font-family: var(--k-mincho); font-size: 22px; font-weight: 700; color: var(--k-ink); }
.k-cycle__steps p:last-child { margin: 12px 0 0; font-size: 15px; line-height: 1.85; color: var(--k-text); }
.k-handoff { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 48px; margin-top: 64px; }
.k-handoff__label { margin: 0; font-size: 13px; font-weight: 700; color: var(--k-sub); }
.k-handoff h3 { margin: 6px 0 14px; padding-bottom: 12px; border-bottom: 2px solid var(--k-ink); font-family: var(--k-mincho); font-size: 22px; font-weight: 700; color: var(--k-ink); }
.k-handoff ul { margin: 0; padding: 0; list-style: none; }
.k-handoff li { padding: 12px 0; border-bottom: 1px solid var(--k-line); font-size: 15px; color: var(--k-ink); }
.k-handoff__note { margin-top: 20px; }
.k-cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
/* 4枚のときは2列×2段（動画制作ページ） */
.k-cards--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.k-cards__item { display: flex; flex-direction: column; gap: 14px; padding: 28px 26px; background: #fff; border: 1px solid var(--k-line); border-top: 3px solid var(--k-ink); scroll-margin-top: 100px; }
.k-cards__item h3 { margin: 0; font-family: var(--k-mincho); font-size: 22px; font-weight: 700; line-height: 1.5; color: var(--k-ink); }
.k-cards__item p { margin: 0; font-size: 15px; line-height: 1.9; color: var(--k-text); word-break: auto-phrase; }
.k-hours--plain { display: block; margin: -8px 0 32px; }
.k-hours--plain .k-figure { max-width: 560px; }
.k-scroll-note { display: none; }
.k-plans__badge { display: block; margin-bottom: 4px; font-size: 12px; font-weight: 700; color: var(--k-accent-btn); }
.k-notes { margin: 16px 0 0; padding: 0 0 0 1.2em; font-size: 14px; line-height: 1.9; color: var(--k-sub); }
.k-notes a { color: var(--k-ink); text-decoration: underline; }
.k-scope { margin-top: 40px; padding: 28px 32px; background: #fff; border: 1px solid var(--k-line); }
.k-scope h3 { margin: 0 0 12px; font-family: var(--k-mincho); font-size: 22px; font-weight: 700; color: var(--k-ink); }
.k-scope p { margin: 0; font-size: 15px; line-height: 1.95; color: var(--k-text); }
.k-scope p + p { margin-top: 12px; }
.k-check li, .k-diagnosis__side p { word-break: auto-phrase; }
.k-diagnosis { display: grid; grid-template-columns: minmax(0, 1fr) 420px; gap: 48px; align-items: start; margin-top: -16px; }
.k-diagnosis__side { display: flex; flex-direction: column; gap: 20px; padding: 28px; background: var(--k-dark); color: #fff; }
.k-diagnosis__side p { margin: 0; font-size: 15px; line-height: 1.9; }
.k-check { margin: 0; padding: 0; list-style: none; border-top: 2px solid var(--k-ink); }
.k-check li { position: relative; padding: 16px 0 16px 30px; border-bottom: 1px solid var(--k-line); font-size: 15px; color: var(--k-ink); }
.k-check li::before { content: ""; position: absolute; left: 2px; top: 20px; width: 12px; height: 7px; border-left: 2.2px solid var(--k-accent-btn); border-bottom: 2.2px solid var(--k-accent-btn); transform: rotate(-45deg); }
.k-spots { margin-top: -16px; }
.k-rec .k-spots__name { width: 240px; font-family: var(--k-mincho); font-size: 19px; }
.k-spots__price { font-weight: 700; color: var(--k-ink) !important; }
.k-spots__go { white-space: nowrap; }
.k-steps { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 24px; margin: -8px 0 0; padding: 0; list-style: none; }
.k-steps li { position: relative; padding-top: 56px; }
.k-steps__no { position: absolute; left: 0; top: 0; display: flex; align-items: center; justify-content: center; width: 40px; height: 40px; border-radius: 50%; background: var(--k-ink); color: #fff; font-size: 14px; font-weight: 700; }
.k-steps li:last-child .k-steps__no { background: var(--k-accent-btn); }
.k-steps li:not(:last-child)::after { content: ""; position: absolute; left: 52px; right: 8px; top: 19px; height: 2px; background: var(--k-ink); }
.k-steps h3, .k-cards__item h3, .k-cycle__steps h3, .k-rec tbody th { word-break: auto-phrase; }
.k-steps h3 { margin: 0; font-family: var(--k-mincho); font-size: 19px; font-weight: 700; line-height: 1.5; color: var(--k-ink); }
.k-steps p { margin: 10px 0 0; font-size: 14px; line-height: 1.85; color: var(--k-text); word-break: auto-phrase; }

/* よくある質問（parts/service-faq.php・開閉は js/main.js） */
.k-faq .service-faq { max-width: none; margin: -16px 0 0; border-top: 2px solid var(--k-ink); }
.k-faq .service-faq__item { border-bottom: 1px solid var(--k-line); background: transparent; }
.k-faq .service-faq__question { display: flex; align-items: center; gap: 14px; width: 100%; padding: 22px 4px; background: none; border: 0; font-family: var(--k-gothic); font-size: 17px; font-weight: 700; color: var(--k-ink); text-align: left; cursor: pointer; }
.k-faq .service-faq__q-mark, .k-faq .service-faq__a-mark { width: auto; height: auto; padding: 0; background: none; border: 0; font-family: var(--k-en); font-size: 17px; font-weight: 700; color: var(--k-accent-btn); }
.k-faq .service-faq__icon { margin-left: auto; }
.k-faq .service-faq__answer-inner { display: flex; gap: 14px; padding: 0 4px 22px; font-size: 15px; line-height: 1.9; color: var(--k-text); }
.k-faq .service-faq__answer-inner p { margin: 0; }

@media (max-width: 1200px) {
	.k-cycle { grid-template-columns: 1fr; gap: 32px; }
	.k-cycle .k-figure { max-width: 460px; }
	.k-steps { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 32px 24px; }
	.k-steps li:nth-child(3)::after { display: none; }
}

@media (max-width: 900px) {
	.k-cycle__steps, .k-handoff, .k-cards, .k-diagnosis { grid-template-columns: 1fr; gap: 24px; }
	.k-cycle__steps p br, .k-cards__item p br, .k-scope br, .k-diagnosis__side br, .k-handoff__note br { display: none; }
	.k-scroll-note { display: block; margin: 0 0 8px; }
	.k-plans { min-width: 640px; }
	.k-plans tbody th { width: 120px; padding: 16px 10px; font-size: 13px; }
	.k-plans td { padding: 16px 10px; font-size: 14px; }
	.k-faq .service-faq__question span { word-break: auto-phrase; }
	.k-scope { padding: 22px 18px; }
	.k-spots, .k-spots tbody, .k-spots tr, .k-spots th, .k-spots td { display: block; width: auto !important; }
	.k-spots thead { display: none; }
	.k-spots tr { padding: 16px 0; border-bottom: 1px solid var(--k-line); }
	.k-spots tbody th, .k-spots td { padding: 3px 0; border: 0; }
	.k-steps { grid-template-columns: 1fr; gap: 0; }
	.k-steps li { padding: 0 0 24px 56px; }
	.k-steps li::after { display: none; }
	.k-steps li:not(:last-child)::before { content: ""; position: absolute; left: 19px; top: 44px; bottom: 4px; width: 2px; background: var(--k-ink); }
	.k-faq .service-faq__question { font-size: 16px; }
}

/* SEO対策 */
.k-keyword { padding: 16px 0 8px; }
.k-diagnosis__label { margin: 0; font-size: 14px; font-weight: 700; color: var(--k-accent-on-dark) !important; }
.k-price { margin: 0; font-size: 22px; color: #fff; }
.k-price b { margin: 0 6px; font-size: 52px; }
.k-price span { margin-left: 8px; font-family: var(--k-gothic); font-size: 13px; color: var(--k-sub-dark); }
.k-diagnosis__side a:not(.k-btn) { color: #fff; text-decoration: underline; }
.k-crosssell { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 40px; align-items: center; padding: 32px 36px; background: #fff; border: 1px solid var(--k-line); }
.k-crosssell__text { margin: 0; font-size: 15px; line-height: 1.95; color: var(--k-text); }

@media (max-width: 900px) {
	.k-keyword { overflow-x: auto; }
	.k-keyword .k-figure__svg { min-width: 720px; }
	.k-crosssell { grid-template-columns: 1fr; gap: 20px; padding: 22px 18px; }
	.k-crosssell__text br { display: none; }
}

/* ホームページ制作 */
.k-jump--below { margin-top: 32px; }
.k-split { display: grid; grid-template-columns: minmax(0, 1fr) 64px minmax(0, 1.3fr); align-items: center; margin-top: -16px; }
.k-split ul { margin: 14px 0 0; padding: 0; list-style: none; border-top: 2px solid var(--k-ink); }
.k-split li { padding: 12px 0; border-bottom: 1px solid var(--k-line); font-size: 15px; color: var(--k-ink); }
.k-split__client { padding: 28px 30px; background: #fff; border: 1px solid var(--k-line); }
.k-split__arrow { text-align: center; font-size: 28px; color: var(--k-ink); }
.k-split__us { padding: 28px 30px; background: var(--k-dark); color: #fff; }
.k-split__us .k-handoff__label { color: var(--k-accent-on-dark); }
.k-split__us ul { border-top-color: #fff; }
.k-split__us li { color: #fff; border-bottom-color: rgba(255, 255, 255, 0.18); }
.k-split__note { margin-top: 18px; }
.k-crosssell--talk { grid-template-columns: minmax(0, 1fr) 320px; padding: 44px 48px; border: 2px solid var(--k-ink); }
.k-crosssell__title { margin: 0 0 16px; font-family: var(--k-mincho); font-size: 36px; font-weight: 800; line-height: 1.4; color: var(--k-ink); font-feature-settings: "palt"; }
.k-crosssell--talk .k-note { margin: 16px 0 0; }
.k-crosssell__actions { display: flex; flex-direction: column; gap: 16px; align-items: stretch; text-align: center; }
.k-plans2 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; margin: -16px 0 32px; }
.k-plans2 > div { padding: 24px 26px; background: #fff; border: 1px solid var(--k-line); border-top: 3px solid var(--k-ink); }
.k-plans2 h3 { margin: 6px 0 10px; font-family: var(--k-mincho); font-size: 21px; font-weight: 700; color: var(--k-ink); }
.k-plans2 p:last-child { margin: 0; font-size: 15px; line-height: 1.9; color: var(--k-text); word-break: auto-phrase; }
.k-phases { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; align-items: start; }
.k-phases__head { display: flex; justify-content: space-between; align-items: center; height: 56px; margin: 0; padding: 0 22px; background: var(--k-ink); color: #fff; }
.k-phases__col.is-last .k-phases__head { background: var(--k-accent-btn); }
.k-phases__head .k-mincho { font-size: 20px; font-weight: 700; }
.k-phases__head .k-en { font-size: 12px; font-weight: 700; letter-spacing: 0.1em; }
.k-phases__step { padding: 18px 22px; background: #fff; border: 1px solid var(--k-line); border-top: 0; }
.k-phases__title { margin: 0 0 8px; font-size: 16px; font-weight: 700; color: var(--k-ink); }
.k-phases__title .k-en { margin-right: 10px; color: var(--k-accent-btn); }
.k-phases__role { margin: 6px 0 0; font-size: 14px; line-height: 1.75; color: var(--k-text); word-break: auto-phrase; }
.k-phases__role b { display: inline-block; margin-right: 8px; padding: 0 6px; border: 1px solid var(--k-ink); font-size: 12px; color: var(--k-ink); }
.k-phases__role a { color: var(--k-ink); text-decoration: underline; }
.k-options { display: grid; grid-template-columns: 200px repeat(3, minmax(0, 1fr)); gap: 24px; margin-top: 40px; padding-top: 24px; border-top: 1px solid var(--k-line); }
.k-options p { margin: 0; font-size: 14px; line-height: 1.75; color: var(--k-text); word-break: auto-phrase; }
.k-options__head { font-size: 15px !important; font-weight: 700; color: var(--k-ink) !important; }
.k-options__head span { display: block; margin-top: 6px; font-size: 13px; font-weight: 400; color: var(--k-sub); }
.k-options__name { font-size: 16px !important; font-weight: 700; color: var(--k-ink) !important; margin-bottom: 6px !important; }
.k-options__price { margin-top: 8px !important; font-weight: 700; color: var(--k-ink) !important; }

@media (max-width: 1200px) {
	.k-phases { grid-template-columns: 1fr; }
	.k-options { grid-template-columns: 1fr 1fr; }
	.k-options__head { grid-column: 1 / -1; }
}

@media (max-width: 900px) {
	.k-split { grid-template-columns: 1fr; gap: 12px; }
	.k-split__arrow { transform: rotate(90deg); }
	.k-split__client, .k-split__us { padding: 22px 18px; }
	.k-crosssell--talk { grid-template-columns: 1fr; padding: 28px 20px; }
	.k-crosssell__title { font-size: 26px; }
	.k-plans2, .k-options { grid-template-columns: 1fr; }
}

/* Webサイト保守 */
.k-outscope { margin-top: 40px; padding: 26px 30px; border: 1px dashed var(--k-ink); }
.k-outscope__head { margin: 0 0 12px; font-size: 15px; font-weight: 700; color: var(--k-ink); }
.k-outscope ul { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 4px 32px; margin: 0; padding: 0 0 0 1.2em; font-size: 14px; line-height: 1.9; color: var(--k-text); }
.k-outscope p:last-child { margin: 14px 0 0; font-size: 14px; line-height: 1.9; color: var(--k-text); }
.k-outscope a { color: var(--k-ink); text-decoration: underline; }
.k-defense { display: grid; grid-template-columns: minmax(0, 1fr) 150px minmax(0, 1fr); align-items: stretch; margin-top: -16px; }
.k-defense__plan,
a.k-defense__plan:link,
a.k-defense__plan:visited { display: grid; grid-template-columns: 72px minmax(0, 1fr); gap: 20px; align-items: center; padding: 30px; background: #fff; border: 1px solid var(--k-line); color: var(--k-ink); text-decoration: none; }
a.k-defense__plan--dark:link,
a.k-defense__plan--dark:visited,
.k-defense__plan--dark { background: var(--k-dark); border-color: var(--k-dark); color: #fff; }
.k-defense__plan--dark .k-icon { color: #fff; }
.k-defense__plan p, .k-defense__plan span span { display: block; margin: 0; }
.k-defense__tag { font-size: 13px; font-weight: 700; color: var(--k-accent-btn); }
.k-defense__plan--dark .k-defense__tag { color: var(--k-accent-on-dark); }
.k-defense__name { margin-top: 6px !important; font-family: var(--k-mincho); font-size: 22px; font-weight: 700; }
.k-defense__plan p:nth-child(3), .k-defense__text { margin-top: 8px !important; font-size: 14px; line-height: 1.8; word-break: auto-phrase; }
.k-defense__plan--dark .k-defense__text { color: #d6d9de; }
.k-defense__price { margin-top: 10px !important; font-size: 14px; font-weight: 700; }
.k-defense__arrows { display: flex; flex-direction: column; justify-content: center; gap: 14px; font-size: 12px; font-weight: 700; color: var(--k-ink); text-align: center; }
.k-steps--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }

@media (max-width: 900px) {
	.k-outscope { padding: 20px 18px; }
	.k-outscope ul { grid-template-columns: 1fr; }
	.k-defense { grid-template-columns: 1fr; gap: 12px; }
	.k-defense__arrows { flex-direction: row; justify-content: space-around; }
	.k-defense__plan,
	a.k-defense__plan:link,
	a.k-defense__plan:visited { grid-template-columns: 48px minmax(0, 1fr); padding: 22px 18px; }
	.k-defense__plan .k-icon { width: 48px; height: 48px; }
	.k-defense br { display: none; }
	.k-steps--4 { grid-template-columns: 1fr; }
}

/* 選ばれる理由 */
.k-cards__top { display: flex; align-items: center; justify-content: space-between; }
.k-cards__no { font-size: 36px; font-weight: 700; line-height: 1; color: var(--k-accent-btn); }
.k-cards--reason p { font-size: 15px; line-height: 1.95; }
.k-head__side a { color: var(--k-ink); text-decoration: underline; }
.k-mark { display: inline-block; flex: 0 0 auto; width: 22px; height: 22px; margin-right: 12px; vertical-align: middle; }
.k-mark--best { border: 2px solid var(--k-accent-btn); border-radius: 50%; background: radial-gradient(circle, var(--k-accent-btn) 0 5px, transparent 5.5px); }
.k-mark--ok { border: 2px solid var(--k-ink); border-radius: 50%; }
.k-mark--limited { background: linear-gradient(to top right, transparent 49%, transparent 50%), conic-gradient(from 150deg at 50% 0%, transparent 0deg, transparent 0deg); position: relative; }
.k-mark--limited::before { content: ""; position: absolute; inset: 1px; background: var(--color-text-mid, #5a5d68); clip-path: polygon(50% 0, 100% 100%, 0 100%, 50% 0, 50% 18%, 14% 90%, 86% 90%, 50% 18%); }
.k-legend { display: flex; align-items: center; gap: 4px; margin: 0; font-size: 14px; color: var(--k-text); }
.k-legend .k-mark { width: 16px; height: 16px; margin: 0 6px 0 10px; }
.k-legend .k-mark--best { background: radial-gradient(circle, var(--k-accent-btn) 0 3px, transparent 3.5px); }
.k-compare td { display: table-cell; }
.k-compare td, .k-compare tbody th { vertical-align: middle; }
.k-compare thead th.k-compare__own { color: var(--k-accent-btn); }
.k-compare td.k-compare__own { background: #fff; font-weight: 700; color: var(--k-ink); }
.k-banner { display: flex; align-items: center; justify-content: space-between; gap: 32px; margin-top: 40px; padding: 30px 36px; background: var(--k-dark); color: #fff; }
.k-banner p { margin: 0; font-size: 24px; font-weight: 700; }

@media (max-width: 900px) {
	.k-compare { min-width: 680px; }
	.k-banner { flex-direction: column; align-items: stretch; padding: 24px 20px; }
	.k-banner p { font-size: 19px; word-break: auto-phrase; }
	.k-head__side .k-legend { flex-wrap: wrap; }
}

/* 一覧（事例・実績・コラム） */
.k-filter { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 32px; }
.k-filter__item,
a.k-filter__item:link,
a.k-filter__item:visited { display: inline-flex; align-items: center; min-height: 40px; padding: 0 16px; border: 1px solid var(--k-line); background: #fff; font-size: 14px; font-weight: 700; color: var(--k-ink); text-decoration: none; }
a.k-filter__item.is-current { background: var(--k-ink); border-color: var(--k-ink); color: #fff; }
a.k-filter__item:hover { border-color: var(--k-ink); }
.k-cases__table--archive { margin-top: 0; }
.k-cases__archive-note { margin-top: 20px; }
.k-squares { display: block; margin-top: 10px; color: var(--k-ink); }
.k-article-link,
a.k-article-link:link,
a.k-article-link:visited { display: flex; align-items: center; justify-content: space-between; gap: 24px; margin-top: 32px; padding: 24px 30px; background: #fff; border: 1px solid var(--k-line); color: var(--k-ink); text-decoration: none; }
a.k-article-link:hover { border-color: var(--k-ink); }
.k-article-link__label { display: block; font-size: 13px; font-weight: 700; color: var(--k-accent-btn); }
.k-article-link__title { display: block; margin-top: 6px; font-family: var(--k-mincho); font-size: 20px; font-weight: 700; word-break: auto-phrase; }
.k-article-link__go { font-size: 14px; font-weight: 700; white-space: nowrap; }

@media (max-width: 900px) {
	.k-article-link,
	a.k-article-link:link,
	a.k-article-link:visited { flex-direction: column; align-items: flex-start; padding: 20px 18px; }
}

/* ==========================================================================
   AI活用支援
   ========================================================================== */
.k-sec--warm { background: var(--color-paper-warm, #ede9df); }
.k-aihero { background: var(--k-paper); font-family: var(--k-gothic); }
.k-aihero__inner { display: grid; grid-template-columns: minmax(0, 1fr) 540px; gap: 64px; align-items: start; max-width: calc(var(--k-max) + var(--k-gutter) * 2); margin: 0 auto; padding: 96px var(--k-gutter) 72px; }
.k-aihero__label { display: inline-block; margin: 0 0 26px; padding: 6px 14px; border: 1.5px solid var(--k-ink); font-size: 15px; font-weight: 700; color: var(--k-ink); }
.k-aihero__title { margin: 0; font-family: var(--k-mincho); font-size: 58px; font-weight: 800; line-height: 1.36; letter-spacing: 0.02em; color: var(--k-ink); font-feature-settings: "palt"; }
.k-aihero__lead { margin: 34px 0 0; font-size: 17px; line-height: 2; color: var(--k-text); }
.k-aihero__actions { display: flex; flex-wrap: wrap; gap: 16px; margin-top: 44px; align-items: flex-start; }
.k-aihero__note { margin: 8px 0 0; font-size: 13px; line-height: 1.7; color: var(--k-text); }
.k-aihero__teach-head { margin: 0 0 14px; font-size: 14px; font-weight: 700; color: var(--k-sub); }
.k-aihero__teach ol { margin: 0; padding: 0; list-style: none; }
.k-aihero__teach li { display: grid; grid-template-columns: 130px 56px minmax(0, 1fr); gap: 18px; align-items: center; padding: 24px 26px; background: #fff; border: 1px solid var(--k-line); }
.k-aihero__teach li:nth-child(2) { border-top: 3px solid var(--k-accent-btn); }
.k-aihero__teach li + li { margin-top: 22px; position: relative; }
.k-aihero__teach li + li::before { content: ""; position: absolute; left: 92px; top: -23px; height: 22px; border-left: 2px solid var(--k-ink); }
.k-aihero__step { margin: 0; font-size: 12px; font-weight: 700; letter-spacing: 0.12em; color: var(--k-accent-btn); }
.k-aihero__verb { margin: 4px 0 0; font-family: var(--k-mincho); font-size: 24px; font-weight: 700; color: var(--k-ink); }
.k-aihero__menu { margin: 0; font-family: var(--k-mincho); font-size: 20px; font-weight: 700; color: var(--k-ink); }
.k-aihero__desc { margin: 6px 0 0; font-size: 14px; line-height: 1.7; color: var(--k-text); }
.k-aihero__price { margin: 6px 0 0; font-size: 14px; font-weight: 700; color: var(--k-ink); }
.k-aihero__price span { font-size: 12px; font-weight: 400; color: var(--k-sub); }
.k-copywork { display: grid; grid-template-columns: 380px minmax(0, 1fr); gap: 60px; }
.k-copywork__title { margin: 0; font-family: var(--k-mincho); font-size: 40px; font-weight: 800; line-height: 1.5; color: var(--k-ink); font-feature-settings: "palt"; }
.k-copywork__text { margin: 28px 0 0; font-size: 16px; line-height: 2; color: var(--k-text); }
.k-copywork__rows { margin: 0; padding: 0; list-style: none; border-bottom: 1px solid var(--k-line); }
.k-copywork__rows li { display: grid; grid-template-columns: 48px 230px 44px 190px minmax(0, 1fr); align-items: center; padding: 30px 0; border-top: 1px solid var(--k-line); }
.k-copywork__rows .k-en { font-size: 15px; font-weight: 700; color: var(--k-accent-btn); }
.k-copywork__rows .k-mincho { font-size: 26px; font-weight: 700; color: var(--k-ink); }
.k-copywork__rows [aria-hidden] { font-size: 22px; color: var(--color-text-mid, #5a5d68); }
.k-copywork__what { font-size: 16px; line-height: 1.8; color: var(--k-text); }
.k-aicase__title { margin: 0; font-family: var(--k-mincho); font-size: 40px; font-weight: 800; line-height: 1.55; color: #fff; font-feature-settings: "palt"; }
.k-aicase__steps { position: relative; display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); margin: 72px 0 0; padding: 0; list-style: none; }
.k-aicase__steps::before { content: ""; position: absolute; left: 0; right: 0; top: 14px; height: 1px; background: rgba(255, 255, 255, 0.3); }
.k-aicase__steps li { position: relative; padding-right: 22px; }
.k-aicase__head { display: flex; align-items: center; gap: 12px; }
.k-aicase__head .k-en { font-size: 13px; font-weight: 700; color: rgba(255, 255, 255, 0.6); }
.k-aicase__who { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 28px; background: #fff; color: var(--k-ink); font-size: 13px; font-weight: 700; }
.k-aicase__who.is-human { background: var(--k-accent-btn); color: #fff; }
.k-aicase__steps p { margin: 18px 0 0; font-size: 15px; line-height: 1.9; color: #fff; word-break: auto-phrase; }
.k-aicase__foot { display: grid; grid-template-columns: minmax(0, 1fr) 400px; gap: 60px; margin-top: 72px; padding-top: 40px; border-top: 1px solid rgba(255, 255, 255, 0.18); }
.k-aicase__foot p { margin: 0; font-size: 16px; line-height: 2; color: rgba(255, 255, 255, 0.88); }
.k-aicase__foot .k-aicase__note { font-size: 14px; line-height: 1.9; color: var(--k-sub-dark); }
.k-slip-legend { margin: 0; font-size: 14px; line-height: 2.2; color: var(--k-ink); white-space: nowrap; }
.k-slip__mark { display: inline-flex; align-items: center; justify-content: center; width: 18px; height: 18px; margin: 0 8px 0 8px; vertical-align: middle; font-family: var(--k-gothic); font-size: 12px; font-weight: 700; }
.k-slip-legend .k-slip__mark { margin: 0 10px 0 0; }
.k-slip__mark--copy { border: 1.5px solid var(--k-ink); color: var(--k-ink); }
.k-slip__mark--read { background: var(--k-ink-mid, #2c2d33); color: #fff; }
.k-slip__mark--human { background: var(--k-accent-btn); color: #fff; }
.k-slips { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 28px; }
.k-slips__col { display: flex; flex-direction: column; gap: 28px; }
.k-slips__col:nth-child(2) { padding-top: 28px; }
.k-slips__col:nth-child(3) { padding-top: 56px; }
.k-slips__col:nth-child(4) { padding-top: 84px; }
.k-slip { padding: 24px 24px 18px; background: #fff; border: 1px solid rgba(10, 10, 12, 0.28); box-shadow: 0 14px 30px rgba(10, 10, 12, 0.08); }
.k-slip__head { display: flex; align-items: baseline; justify-content: space-between; margin: 0 0 6px; padding-bottom: 8px; border-bottom: 2px solid var(--k-ink); }
.k-slip__head .k-mincho { font-size: 26px; font-weight: 800; letter-spacing: 0.2em; color: var(--k-ink); }
.k-slip__head .k-en { font-size: 10px; font-weight: 700; letter-spacing: 0.24em; color: var(--k-accent-btn); }
.k-slip dl { margin: 0; }
.k-slip dl div { display: flex; justify-content: space-between; align-items: baseline; padding: 10px 0; border-bottom: 1px solid rgba(10, 10, 12, 0.22); }
.k-slip dt { font-size: 13px; color: var(--k-ink-mid, #2c2d33); }
.k-slip dd { margin: 0; font-family: var(--k-en); font-size: 15px; font-weight: 600; color: var(--k-ink); white-space: nowrap; }
.k-slip dd.is-human { color: var(--k-accent-btn); }
.k-slips__text { margin: 0; font-size: 15px; line-height: 1.9; color: var(--k-text); word-break: auto-phrase; }
.k-slips__others { display: grid; grid-template-columns: 120px minmax(0, 1fr); gap: 36px; align-items: center; margin-top: 64px; padding-top: 36px; border-top: 1px solid var(--k-line); }
.k-slips__others p { margin: 0; font-size: 13px; font-weight: 700; letter-spacing: 0.1em; color: var(--color-text-mid, #5a5d68); }
.k-slips__others ul { display: flex; flex-wrap: wrap; gap: 12px 56px; margin: 0; padding: 0; list-style: none; }
.k-slips__others li { position: relative; padding-left: 18px; font-size: 16px; font-weight: 700; color: var(--k-ink); }
.k-slips__others li::before { content: ""; position: absolute; left: 0; top: 0.6em; width: 7px; height: 7px; background: var(--k-ink); }
.k-strip { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; gap: 20px; align-items: center; margin-top: 56px; padding: 30px 36px; background: #fff; border: 1px solid rgba(10, 10, 12, 0.28); }
.k-strip > p { margin: 0; font-size: 18px; font-weight: 700; color: var(--k-ink); word-break: auto-phrase; }
.k-strip--big { margin-top: 40px; padding: 40px 44px; border: 1.5px solid var(--k-ink); align-items: start; }
.k-strip--big > p { font-size: 28px; font-weight: 800; line-height: 1.5; }
.k-stages { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; margin-top: -16px; }
.k-stages__item { display: flex; flex-direction: column; padding: 36px 30px 34px; background: #fff; border-top: 3px solid var(--k-ink); }
.k-stages__item.is-main { border-top-color: var(--k-accent-btn); }
.k-stages__top { display: flex; align-items: baseline; gap: 12px; margin: 0; }
.k-stages__top .k-en { font-size: 13px; font-weight: 700; color: var(--k-accent-btn); }
.k-stages__top .k-mincho { font-size: 24px; font-weight: 800; color: var(--k-ink); }
.k-stages__name { margin: 14px 0 0; font-size: 16px; font-weight: 700; color: var(--k-ink); }
.k-stages__text { flex: 1; margin: 12px 0 0; font-size: 14px; line-height: 1.9; color: var(--k-text); word-break: auto-phrase; }
.k-stages__price { margin: 22px 0 0; padding-top: 18px; border-top: 1px solid var(--k-line); font-size: 26px; font-weight: 800; color: var(--k-ink); }
.k-stages__price span { margin-left: 6px; font-family: var(--k-gothic); font-size: 13px; font-weight: 500; color: var(--k-text); }
.k-aiprice { margin-top: 40px; }
.k-rec .k-aiprice__price, .k-aiprice__price { font-weight: 700; color: var(--k-ink); white-space: nowrap; }
.k-subsidy { margin-top: 48px; padding: 32px 36px; background: var(--k-paper); border: 1px solid var(--k-line); scroll-margin-top: 100px; }
.k-subsidy h3 { margin: 0 0 12px; font-family: var(--k-mincho); font-size: 24px; font-weight: 700; color: var(--k-ink); }
.k-subsidy > p { margin: 0 0 20px; font-size: 15px; line-height: 1.95; color: var(--k-text); }
.k-program { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; margin: -16px 0 0; padding: 0; list-style: none; }
.k-program li { padding: 26px; background: #fff; border: 1px solid var(--k-line); border-top: 3px solid var(--k-ink); }
.k-program h3 { margin: 0 0 12px; font-family: var(--k-mincho); font-size: 20px; font-weight: 700; color: var(--k-ink); word-break: auto-phrase; }
.k-program p { margin: 0; font-size: 15px; line-height: 1.9; color: var(--k-text); word-break: auto-phrase; }
.k-program__task { margin-top: 12px !important; padding-top: 12px; border-top: 1px solid var(--k-line); font-weight: 700; color: var(--k-ink) !important; }
.k-ours { display: grid; grid-template-columns: minmax(0, 1fr) 420px; gap: 64px; align-items: end; margin-top: 56px; padding-top: 40px; border-top: 1px solid var(--k-line); }
.k-ours__title { margin: 0; font-family: var(--k-mincho); font-size: 30px; font-weight: 800; line-height: 1.5; color: var(--k-ink); }
.k-ours__text { margin: 20px 0 0; font-size: 16px; line-height: 2; color: var(--k-text); }
.k-ours__links { display: flex; flex-direction: column; gap: 14px; }
.k-ours__link,
a.k-ours__link:link,
a.k-ours__link:visited { display: flex; justify-content: space-between; align-items: center; min-height: 64px; padding: 0 26px; border: 1.5px solid var(--k-ink); color: var(--k-ink); font-size: 15px; font-weight: 700; text-decoration: none; }
a.k-ours__link:hover { background: var(--k-ink); color: #fff; }
#menu, #pricing, #program, #claude-code, #subsidy { scroll-margin-top: 100px; }

@media (max-width: 1200px) {
	.k-aihero__inner { grid-template-columns: 1fr; gap: 48px; }
	.k-aihero__teach { max-width: 600px; }
	.k-copywork { grid-template-columns: 1fr; gap: 32px; }
	.k-aicase__steps { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 32px 0; }
	.k-aicase__steps::before { display: none; }
	.k-slips, .k-stages { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.k-slips__col:nth-child(n) { padding-top: 0; }
	.k-strip { grid-template-columns: 1fr; }
}

@media (max-width: 900px) {
	.k-aihero__inner { padding-top: 40px; padding-bottom: 40px; }
	.k-aihero__title { font-size: 32px; }
	.k-aihero__lead { font-size: 15px; }
	.k-aihero__lead br, .k-copywork__text br, .k-aicase__foot br, .k-ours br, .k-subsidy br { display: none; }
	.k-aihero__actions { flex-direction: column; align-items: stretch; }
	.k-aihero__teach li { grid-template-columns: 1fr 48px; gap: 8px 12px; padding: 18px; }
	.k-aihero__teach li > div:last-child { grid-column: 1 / -1; }
	.k-aihero__teach li .k-icon { width: 48px; height: 48px; }
	.k-aihero__teach li + li::before { left: 40px; }
	.k-copywork__title, .k-aicase__title { font-size: 26px; }
	.k-aicase__title br { display: none; }
	.k-copywork__rows li { grid-template-columns: 36px 1fr 28px 1fr; gap: 4px 6px; padding: 20px 0; }
	.k-copywork__rows .k-mincho { font-size: 19px; }
	.k-copywork__what { grid-column: 2 / -1; font-size: 14px; }
	.k-aicase__steps { grid-template-columns: 1fr; gap: 20px; margin-top: 40px; }
	.k-aicase__steps p { margin-top: 10px; }
	.k-aicase__steps p br { display: none; }
	.k-aicase__foot { grid-template-columns: 1fr; gap: 20px; margin-top: 40px; }
	.k-slip-legend { white-space: normal; }
	.k-slips, .k-stages, .k-program { grid-template-columns: 1fr; }
	.k-slips__text br, .k-stages__text br { display: none; }
	.k-slips__others { grid-template-columns: 1fr; gap: 12px; }
	.k-strip, .k-strip--big { padding: 22px 18px; }
	.k-strip--big > p { font-size: 22px; }
	.k-aiprice, .k-aiprice tbody, .k-aiprice tr, .k-aiprice th, .k-aiprice td { display: block; }
	.k-aiprice thead { display: none; }
	.k-aiprice tr { padding: 14px 0; border-bottom: 1px solid var(--k-line); }
	.k-aiprice tbody th, .k-aiprice td { padding: 3px 0; border: 0; }
	.k-subsidy { padding: 22px 18px; }
	.k-subsidy .k-rec, .k-subsidy .k-rec tbody, .k-subsidy .k-rec tr, .k-subsidy .k-rec th, .k-subsidy .k-rec td { display: block; }
	.k-subsidy .k-rec thead { display: none; }
	.k-subsidy .k-rec tbody th, .k-subsidy .k-rec td { padding: 6px 0; border: 0; }
	.k-ours { grid-template-columns: 1fr; gap: 24px; }
	.k-ours__title { font-size: 22px; }
}

/* ==========================================================================
   お問い合わせ（form_page/）— 送信の仕組みに関わるマークアップは変えず、見た目だけ合わせる
   ========================================================================== */
.contact-flow { background: var(--k-paper); padding: 8px 0 0; }
.contact-flow .inner { max-width: calc(var(--k-max) + var(--k-gutter) * 2); margin: 0 auto; padding: 0 var(--k-gutter); }
.contact-flow__list { display: flex; gap: 0; max-width: 520px; margin: 0; padding: 24px 0 0; list-style: none; counter-reset: none; }
.contact-flow__item { position: relative; display: flex; align-items: center; gap: 10px; flex: 1; font-size: 14px; font-weight: 700; color: var(--k-sub); background: none; }
.contact-flow__item:not(:last-child)::after { content: ""; flex: 1; height: 2px; margin: 0 14px; background: var(--k-line); }
.contact-flow__number { display: inline-flex; align-items: center; justify-content: center; width: 32px; height: 32px; border-radius: 50%; border: 2px solid var(--k-line); background: #fff; font-family: var(--k-en); font-size: 13px; color: var(--k-sub); }
.contact-flow__item--active { color: var(--k-ink); }
.contact-flow__item--active .contact-flow__number { background: var(--k-accent-btn); border-color: var(--k-accent-btn); color: #fff; }
.page-template-page-contact .section,
.page-template-page-contact-check .section,
.page-template-page-contact-thanks .section,
body.page-template-form_pagepage-contact-php .section { background: var(--k-paper); }
.contact-lead p { font-size: 16px; line-height: 2; color: var(--k-text); }
.contact-info__item { font-size: 14px; font-weight: 700; color: var(--k-ink); }
.contact-form { margin-top: 24px; padding: 40px 44px; background: #fff; border: 1px solid var(--k-line); border-top: 3px solid var(--k-ink); border-radius: 0; box-shadow: none; }
.contact-form .form-group { display: grid; grid-template-columns: 220px minmax(0, 1fr); gap: 12px 32px; align-items: start; padding: 18px 0; border-bottom: 1px solid var(--k-line); margin: 0; }
.contact-form .form-label { display: flex; align-items: center; gap: 10px; padding-top: 12px; font-size: 15px; font-weight: 700; color: var(--k-ink); }
.contact-form .form-label__required { display: inline-flex; padding: 2px 8px; background: var(--k-accent-btn); color: #fff; font-size: 12px; font-weight: 700; border-radius: 0; }
.contact-form .form-input,
.contact-form .form-select,
.contact-form .form-textarea { width: 100%; min-height: 50px; padding: 12px 14px; border: 1px solid rgba(10, 10, 12, 0.35); border-radius: 0; background: #fff; font-family: var(--k-gothic); font-size: 16px; color: var(--k-ink); }
.contact-form .form-textarea { min-height: 200px; line-height: 1.8; }
.contact-form .form-input:focus,
.contact-form .form-select:focus,
.contact-form .form-textarea:focus { outline: 3px solid rgba(230, 126, 34, 0.45); outline-offset: 0; border-color: var(--k-ink); }
.contact-form .errorMessage { grid-column: 2; color: #b3261e; font-size: 14px; }
.form-submit { margin-top: 32px; text-align: center; }
.form-submit .btn,
.form-submit button,
.form-submit input[type="submit"] { display: inline-flex; align-items: center; justify-content: center; min-width: 320px; min-height: 60px; padding: 0 32px; border: 1.5px solid var(--k-accent-btn); border-radius: 0; background: var(--k-accent-btn); color: #fff; font-family: var(--k-gothic); font-size: 16px; font-weight: 700; box-shadow: none; }
.form-submit .btn--outline { background: transparent; border-color: var(--k-ink); color: var(--k-ink); }
.form-submit .btn:hover,
.form-submit button:hover { background: #9a4a09; border-color: #9a4a09; color: #fff; }
.form-submit .btn--outline:hover { background: var(--k-ink); border-color: var(--k-ink); color: #fff; }
.confirm-table { width: 100%; border-collapse: collapse; border-top: 2px solid var(--k-ink); background: #fff; }
.confirm-table th { width: 220px; padding: 18px; border-bottom: 1px solid var(--k-line); font-size: 14px; font-weight: 700; color: var(--k-sub); text-align: left; vertical-align: top; }
.confirm-table td { padding: 18px; border-bottom: 1px solid var(--k-line); font-size: 16px; color: var(--k-ink); word-break: break-word; }
.contact-thanks { padding: 40px 44px; background: #fff; border: 1px solid var(--k-line); border-top: 3px solid var(--k-ink); }
.contact-thanks__text { font-size: 16px; line-height: 2; color: var(--k-text); }

@media (max-width: 900px) {
	.contact-form { padding: 22px 18px; }
	.contact-form .form-group { grid-template-columns: 1fr; gap: 8px; }
	.contact-form .form-label { padding-top: 0; }
	.contact-form .errorMessage { grid-column: 1; }
	.form-submit .btn, .form-submit button { min-width: 0; width: 100%; }
	.confirm-table th, .confirm-table td { display: block; width: auto; }
	.confirm-table th { padding-bottom: 0; border-bottom: 0; }
	.contact-thanks { padding: 24px 18px; }
}
.contact-info { background: #fff; border: 1px solid var(--k-line); border-radius: 0; }


/* ==========================================================================
   0ベース案A（2026-10-19）の見た目: 角の丸い白いカード・丸いボタン・線のない見出し
   ========================================================================== */
.k-head__label { letter-spacing: 0; font-size: 15px; color: var(--k-accent); }
.k-head__title { letter-spacing: .02em; font-weight: 800; }
.k-ridge { height: 0; margin-bottom: 40px; background: none; }
.k-btn,
a.k-btn:link,
a.k-btn:visited { border-radius: 30px; min-height: 58px; }
.k-cases__more,
a.k-cases__more:link,
a.k-cases__more:visited,
.k-filter__item,
a.k-filter__item:link,
a.k-filter__item:visited { border-radius: 22px; }
.k-cards__item,
.k-entries__item,
a.k-entries__item:link,
a.k-entries__item:visited,
.k-pains__card,
.k-program li,
.k-plans2 > div,
.k-stages__item,
.k-slip,
.k-scope,
.k-subsidy,
.k-strip,
.k-crosssell,
.k-maint-box,
.k-company__access,
.k-article-link,
a.k-article-link:link,
a.k-article-link:visited,
.k-outscope,
.k-split__client,
.k-split__us,
.k-diagnosis__side,
.k-banner,
.k-defense__plan,
a.k-defense__plan:link,
a.k-defense__plan:visited,
.contact-form,
.contact-info,
.contact-thanks { border-radius: var(--k-radius); }
.k-cards__item,
.k-entries__item,
a.k-entries__item:link,
a.k-entries__item:visited,
.k-program li,
.k-plans2 > div,
.k-stages__item { border: 0; border-top: 0; box-shadow: 0 16px 40px rgba(27, 42, 74, .07); background: #fff; }
.contact-form { border: 0; box-shadow: 0 16px 40px rgba(27, 42, 74, .07); }
.k-phases__head { border-radius: 12px 12px 0 0; }
.k-phases__step:last-child { border-radius: 0 0 12px 12px; }
.k-works__thumb { border-radius: 12px; }
.k-sec--warm { background: var(--k-paper-2); }
.k-rec thead th { border-bottom-color: var(--k-ink); }

/* 下層の見出し: 写真の窓（金属の軸）はやめ、紙色に h1 と説明だけ。下に朱の短い線 */
.k-hero--window .k-hero__inner { grid-template-columns: minmax(0, 1fr); min-height: 0; padding-top: 72px; }
.k-hero--window .k-hero__text { padding-top: 0; }
.k-hero__window { display: none; }
.k-hero__rule,
.k-hero--window .k-hero__rule { width: 64px; height: 4px; margin: 22px 0 0; border-radius: 2px; background: var(--k-accent-btn); }
.k-hero__label { letter-spacing: 0; color: var(--k-accent); }

/* ヘッダー（案A）: ロゴ＋5項目＋丸い「まずは相談する」 */
.site-header__logo { font-size: 17px; letter-spacing: .14em; color: var(--k-ink); }
.site-header__logo-en { color: var(--k-sub); }
.site-header__nav-item { font-size: 15px; color: var(--k-ink); }
.site-header__nav-item::after { background: var(--k-accent-btn); }
.site-header__cta a.site-header__cta-btn,
.site-header__cta a.site-header__cta-btn:link,
.site-header__cta a.site-header__cta-btn:visited { border-radius: 23px; background: var(--k-accent-btn); }
.site-header__cta a.site-header__cta-btn:hover,
.site-header__cta a.site-header__cta-btn:focus { background: #A9381F; }
.site-header__mega { border-radius: 0 0 var(--k-radius) var(--k-radius); }
.site-header__mega-head-jp { font-family: var(--k-mincho); color: var(--k-ink); }
.site-header__mega-item .num { color: var(--k-accent); }

/* 自社サービスの帯（案A）: フッターの上の1行 */
.k-products { padding: 36px var(--k-gutter); background: var(--k-paper); }
.k-products__head { margin: 0 0 14px; font-size: 14px; font-weight: 700; color: var(--k-ink); }
.k-products__head span { font-weight: 400; color: var(--k-sub); }
.k-products__list { margin-top: 0; gap: 16px; }
.k-products__item,
a.k-products__item:link,
a.k-products__item:visited { grid-template-columns: 40px auto minmax(0, 1fr) auto; gap: 16px; padding: 18px 24px; border: 1px solid var(--k-line); border-radius: 14px; background: #fff; }
.k-products__for { margin: 0; font-size: 13px; }
.k-products__func { margin: 0; font-family: var(--k-gothic); font-size: 17px; font-weight: 700; }
.k-products__name { display: inline; margin: 0 0 0 10px; font-size: 13px; color: var(--k-sub); }
@media (max-width: 900px) {
	.k-products__item,
	a.k-products__item:link,
	a.k-products__item:visited { grid-template-columns: 36px minmax(0, 1fr); gap: 4px 12px; }
	.k-products__item .k-icon { grid-row: span 3; width: 36px; height: 36px; }
	.k-products__for, .k-products__func, .k-products__go { grid-column: 2; }
}

/* フッター（案A） */
.site-footer { background: var(--k-dark); }
.k-footer__name-en { color: var(--k-accent-on-dark); }

/* 番号付きの英字表記をなくす（2026-10-19 ユーザー「N° 01 のような表記は馴染みがない」） */
.site-header__mega-item .num,
.card__thumb-num,
.page-hero__kicker,
.page-hero__title-en,
.page-hero__vertical { display: none !important; }
.k-steps__no { font-family: var(--k-gothic); font-size: 16px; }

/* 下層の見出しのイラスト（2026-10-19） */
.k-hero--window .k-hero__inner { grid-template-columns: minmax(0, 1fr) 460px; gap: 56px; align-items: center; padding-top: 48px; padding-bottom: 40px; }
.k-hero__illust { align-self: center; }
.k-hero__illust img { display: block; width: 100%; height: auto; max-height: 380px; object-fit: contain; object-position: right center; }
@media (max-width: 1100px) {
	.k-hero--window .k-hero__inner { grid-template-columns: minmax(0, 1fr) 340px; gap: 32px; }
}
@media (max-width: 900px) {
	.k-hero--window .k-hero__inner { grid-template-columns: 1fr; gap: 0; padding-top: 24px; }
	.k-hero__illust { order: -1; max-width: 300px; margin: 0 0 12px auto; }
	.k-hero__illust img { max-height: 200px; }
}

/* お問い合わせの手順表示（2026-10-19 ユーザー「入力・確認・完了の配置がおかしい」）: フォームの幅の中央に横一列 */
.contact-flow .contact-flow__list { display: flex; justify-content: center; align-items: center; gap: 0; max-width: 760px; margin: 0 auto; padding: 28px 0 0; }
.contact-flow .contact-flow__item { flex: 0 0 auto; flex-direction: row; align-items: center; gap: 10px; padding: 0; margin: 0; text-align: left; }
.contact-flow .contact-flow__item + .contact-flow__item::before { content: ""; position: static; display: block; width: 72px; height: 2px; margin: 0 18px 0 8px; background: var(--k-line); transform: none; }
.contact-flow .contact-flow__item:not(:last-child)::after { display: none; }
.contact-flow .contact-flow__number { flex: 0 0 auto; margin: 0; }
.contact-flow .contact-flow__label { margin: 0; font-size: 15px; font-weight: 700; color: inherit; }
@media (max-width: 600px) {
	.contact-flow .contact-flow__item + .contact-flow__item::before { width: 24px; margin: 0 10px 0 4px; }
	.contact-flow .contact-flow__label { font-size: 14px; }
}
.contact-lead p, .contact-info__item { word-break: auto-phrase; }

/* ---------- サービスの2本柱の図（TOP・サービス一覧で共通。parts/service-pillars.php） ---------- */
.z-pillars { display: flex; gap: 28px; align-items: stretch; }
.z-pillar { flex: 1.45; padding: 36px 32px 34px; border-radius: 20px; background: #fff; box-shadow: 0 20px 50px rgba(27, 42, 74, .08); }
.z-pillar--dark { flex: 1; background: var(--k-ink); color: #fff; }
.z-pillar__head { display: flex; align-items: center; gap: 16px; }
.z-pillar__head .k-icon { color: var(--k-ink); }
.z-pillar--dark .z-pillar__head .k-icon { color: #fff; }
.z-pillar__sub { margin: 0; font-size: 14px; font-weight: 700; color: var(--k-accent); }
.z-pillar--dark .z-pillar__sub { color: var(--k-accent-on-dark); }
.z-pillar__title { margin: 4px 0 0; font-family: var(--k-mincho); font-size: 30px; font-weight: 800; color: var(--k-ink); }
.z-pillar--dark .z-pillar__title { color: #fff; }
.z-pillar__text { margin: 12px 0 28px; font-size: 15px; line-height: 1.85; }
.z-pillar--dark .z-pillar__text { margin-bottom: 18px; color: rgba(255, 255, 255, .85); }
.z-flow { display: flex; align-items: stretch; }
.z-flow__arrow { flex: 0 0 22px; display: flex; align-items: center; justify-content: center; font-size: 22px; color: var(--k-ink); }
.z-node,
a.z-node:link,
a.z-node:visited { position: relative; flex: 1; display: block; padding: 22px 16px 18px; border: 1.5px solid var(--k-ink); border-radius: 12px; background: #fff; color: var(--k-ink); text-decoration: none; }
.z-node b { display: block; font-size: 17px; font-weight: 900; white-space: nowrap; }
.z-node em { display: block; margin-top: 6px; font-style: normal; font-size: 15px; font-weight: 700; color: var(--k-accent); }
.z-node > span:last-child { display: block; margin-top: 8px; font-size: 12.5px; line-height: 1.7; color: var(--k-sub); }
.z-node__tag { position: absolute; top: -13px; left: 18px; padding: 3px 10px; border-radius: 12px; background: var(--k-accent-btn); color: #fff; font-size: 12px; font-weight: 700; }
a.z-node--main:link, a.z-node--main:visited, .z-node--main { background: var(--k-ink); color: #fff; }
.z-node--main em { color: var(--k-accent-on-dark); }
.z-node--main > span:last-child { color: rgba(255, 255, 255, .8); }
a.z-node:hover b { text-decoration: underline; }
.z-pillar__memo { margin-top: 22px; padding: 14px 18px; border-radius: 10px; background: var(--k-paper); }
.z-pillar__memo p { margin: 4px 0 0; font-size: 13px; color: var(--k-sub); }
.z-aisteps { margin: 0; padding: 0; list-style: none; }
.z-aisteps li { display: flex; align-items: center; gap: 14px; padding: 14px 0; border-bottom: 1px solid rgba(255, 255, 255, .18); }
.z-aisteps li > span { display: flex; align-items: center; justify-content: center; width: 30px; height: 30px; border-radius: 50%; background: #fff; color: var(--k-ink); font-family: var(--k-en); font-size: 13px; font-weight: 700; }
.z-aisteps li:last-child > span { background: var(--k-accent-btn); color: #fff; }
.z-aisteps b { flex: 1; font-size: 17px; }
.z-aisteps em { font-style: normal; font-size: 14px; font-weight: 700; color: var(--k-accent-on-dark); }
.z-forest { display: flex; gap: 16px; align-items: center; margin-top: 20px; }
.z-forest img { width: 170px; height: 104px; object-fit: cover; object-position: top left; border-radius: 8px; border: 1px solid rgba(255, 255, 255, .3); }
.z-forest p { margin: 0; font-size: 13px; line-height: 1.7; color: rgba(255, 255, 255, .85); }
.z-forest a { font-size: 15px; font-weight: 700; color: #fff; }
.z-pillar__more,
a.z-pillar__more:link,
a.z-pillar__more:visited { display: inline-block; margin-top: 20px; font-size: 15px; font-weight: 700; color: #fff; text-decoration: underline; text-underline-offset: 4px; }
.z-pillar__memo-title { display: block; font-size: 15px; font-weight: 700; color: var(--k-accent); }
.z-node:focus-visible { outline: 3px solid var(--k-accent-btn); outline-offset: 3px; }
@media (max-width: 1280px) {
	.z-pillars { flex-direction: column; }
}
@media (max-width: 900px) {
	.z-flow { flex-direction: column; gap: 18px; }
	.z-flow__arrow { transform: rotate(90deg); flex-basis: auto; }
	.z-node br, .z-pillar__text br { display: none; }
	.z-pillar { padding: 26px 20px; }
	.z-pillar__title { font-size: 24px; }
	.z-forest { flex-direction: column; align-items: flex-start; }
}
