/* Site styles — Figma Home / PC (804:3182, Solutions = Option B zigzag 940:3858) and About / PC (842:3341) */
/*
 * 構成（上から順に）
 *   1. 変数（:root）… 色・幅・余白・フォントはここで定義し、下では var() で参照する
 *   2. 基本・共通部品 … リセット、JA/EN 切替、ボタン、バッジ、セクション見出し（.section-title）、テキストリンク
 *   3. 各ブロック … ヘッダー → ヒーロー → 3本柱 → ソリューション → 端末モック → Munemo → ブログ → News
 *                    → 会社概要 → ブログ一覧 → ブログ記事 → お問い合わせ・フッター
 *   4. スクロール表示（assets/reveal.js）
 *   5. レスポンシブ … ≤1199（タブレット）→ ≤1023 → ≤767（スマホ）。画面幅ごとの上書きはここにまとめる（動きを減らす設定 prefers-reduced-motion は各ブロック内）
 */
:root {
	--navy: #0a3190;
	--teal: #3db8b1;
	--teal-strong: #24807a; /* バッジ背景：白文字とのコントラスト 4.7:1 */
	--ink: #3e3f42; /* 基本の文字色（body・ナビ） */
	/* レイアウト幅 */
	--container: 1200px; /* ページ内容の最大幅 */
	--container-contact: 1191px; /* お問い合わせ欄・フッターの最大幅（Figma の値） */
	--measure: 720px; /* 記事本文・会社概要表の幅 */
	--inset: 16px; /* 画面端の最小余白 */
	--gutter: max(var(--inset), calc((100% - var(--container)) / 2)); /* 左右の余白（内容を最大幅で中央に置く） */
	--hd-h: 72px; /* ヘッダーの高さ */
	--body-size: 16px; /* 本文の文字サイズ（全ページ共通） */
	--field-radius: 16px; /* お問い合わせの入力欄と送信ボタンの角の丸み */
	/* セクション見出し（提供ソリューション・新着・お問い合わせ） */
	--section-title: 36px; /* 見出しの文字サイズ */
	--section-pad: 56px; /* セクション上端から見出しまで */
	--title-gap: 48px; /* 見出しから本文まで */
	--sol-gap: 96px; /* 提供ソリューションの行間 */
	/* 基本色 */
	--white: #fff;
	--black: #000;
	/* 文字色 */
	--text-strong: #33363b; /* 本文の段落・リストの色 */
	--text-sub: #54575c;
	--text-muted: #737580;
	--text-footer: #ccc;
	/* 背景色 */
	--bg-sol: #f1f4f9; /* 提供ソリューションの背景（白いセクションと区別できる薄い青みグレー） */
	--bg-light: #f6f8fc;
	--bg-subtle: #f9f9fa;
	--bg-profile: #f6f7f4;
	--bg-callout: #f0f5ff;
	--bg-dark: #333;
	--bg-hero: #212121;
	/* 罫線 */
	--line: #e0e3eb;
	--line-news: #e0e3e8;
	--line-profile: #d9dbe0;
	--line-lang: #d1d9eb;
	--line-tab: #d9deeb;
	--line-nav: #eef0f4;
	--line-footer: #4d4d4d;
	/* 濃紺グラデーション（Solutions図・Munemo欄） */
	--deep-1: #040a1f;
	--deep-2: #0a1a4f;
	--deep-3: #12329a;
	--glow-cyan: rgba(34, 211, 238, 0.24);
	--glow-cyan-strong: rgba(34, 211, 238, 0.38);
	--glow-blue: rgba(59, 130, 246, 0.28);
	--glow-violet: rgba(139, 92, 246, 0.32);
	--grid-line: rgba(255, 255, 255, 0.06);
	--mark-top: rgba(255, 255, 255, 0.18);
	--mark-bottom: rgba(255, 255, 255, 0.05);
	/* ヒーロー */
	--hero-veil-1: rgba(5, 18, 56, 0.62); /* 見出しの背後（中央）を濃くする */
	--hero-veil-2: rgba(5, 18, 56, 0.28); /* 周辺の写真はやや残す */
	--hero-veil-3: rgba(5, 18, 56, 0.2); /* 写真全体を少し沈める */
	--hero-text-shadow: rgba(5, 13, 46, 0.6);
	--page-hero-h: 240px; /* 下層ページの見出し帯の高さ */
	/* 影 */
	--shadow-key: rgba(0, 0, 0, 0.3);
	--shadow-ambient: rgba(0, 0, 0, 0.15);
	--shadow-menu: rgba(0, 0, 0, 0.12);
	--shadow-header: rgba(10, 49, 144, 0.08);
	--shadow-raised: 0 1px 2px var(--shadow-key), 0 2px 6px 2px var(--shadow-ambient); /* 記事カードの影 */
	--line-card: #c3cbe0; /* 3本柱カードの枠線 */
	--shadow-card-near: rgba(10, 49, 144, 0.14); /* カードの影（輪郭側） */
	--shadow-card-far: rgba(10, 49, 144, 0.22); /* カードの影（広がり側） */
	/* 端末モック（ノートPC・スマホの描画） */
	--device-frame: #3b4049;
	--device-body-top: #2b2f36;
	--device-body-bottom: #16191e;
	--device-base-1: #d5d9df;
	--device-base-2: #9ea4ad;
	--device-base-3: #7c828b;
	--device-notch: #8b9199;
	--device-phone-edge: #3a3f47;
	--device-phone: #111418;
	--device-ink: #111;
	--device-screen: #f4f4f4;
	--device-shadow: rgba(0, 0, 0, 0.5);
	--device-phone-shadow: rgba(0, 13, 51, 0.3);
	--device-tap-fill: rgba(29, 95, 192, 0.35);
	--device-tap-ring: rgba(255, 255, 255, 0.9);
	/* フォント */
	--font-sans: "Noto Sans JP", sans-serif;
	--font-latin: Inter, "Noto Sans JP", sans-serif;
	--font-device: Inter, sans-serif;
}
*,
*::before,
*::after {
	box-sizing: border-box;
}
html {
	scroll-behavior: smooth;
	scroll-padding-top: var(--hd-h);
}
@media (prefers-reduced-motion: reduce) {
	html {
		scroll-behavior: auto;
	}
}
body {
	margin: 0;
	font-family: var(--font-sans);
	color: var(--ink);
	background: var(--white);
	-webkit-font-smoothing: antialiased;
}
img {
	max-width: 100%;
}
h1,
h2,
h3,
p {
	margin: 0;
}
.wrap {
	width: min(var(--container), 100% - 2 * var(--inset));
	margin-inline: auto;
}

/* JA/EN (assets/i18n.js) */
html:not([data-lang="en"]) .i18n[lang="en"],
html[data-lang="en"] .i18n[lang="ja"] {
	display: none;
}

.btn {
	display: inline-flex;
	justify-content: center;
	padding: 13px 32px;
	border: 0;
	border-radius: 26px;
	background: var(--navy);
	color: var(--white);
	font: 500 16px/26px var(--font-sans);
	letter-spacing: 0.8px;
	text-decoration: none;
	cursor: pointer;
}
a.btn:hover,
button.btn:hover {
	opacity: 0.88;
}
.btn--light {
	background: var(--white);
	color: var(--navy);
	align-self: flex-start;
}
.badge {
	display: inline-block;
	padding: 3px 10px;
	border-radius: 4px;
	background: var(--teal-strong);
	color: var(--white);
	font-size: 12px;
	font-weight: 500;
	line-height: normal;
	white-space: nowrap;
}
.badge--wide {
	padding-inline: 12px;
}

/* セクション見出し（各セクションの h1/h2 に付ける共通クラス。配置や色の違いは各ブロック側で上書き） */
.section-title {
	color: var(--navy);
	font-size: var(--section-title);
	font-weight: 700;
	line-height: 1.3;
}

/* 下線を hover 時だけ出すテキストリンク */
.post__title a,
.featured__title a,
.post__more a,
.featured__more,
.back {
	text-decoration: none;
}
.post__title a:hover,
.featured__title a:hover,
.post__more a:hover,
.featured__more:hover,
.back:hover {
	text-decoration: underline;
}

/* Header */
.hd {
	display: flex;
	align-items: center;
	gap: 40px;
	height: var(--hd-h);
	padding: 0 var(--gutter);
	background: var(--white);
	position: sticky;
	top: 0;
	z-index: 50;
	box-shadow: 0 1px 0 var(--shadow-header);
}
.hd__logo {
	margin-right: auto;
	display: block;
}
.hd__logo img {
	display: block;
	width: 220px;
	height: auto;
}
.hd__nav {
	display: flex;
	gap: 40px;
}
.hd__nav a {
	color: var(--ink);
	font-size: 15px;
	font-weight: 500;
	line-height: 24px;
	letter-spacing: 0.8px;
	text-decoration: none;
}
.hd__nav a:hover {
	color: var(--navy);
}
.hd__menu {
	display: none;
}
.lang-switch {
	display: inline-flex;
	gap: 2px;
	padding: 3px;
	background: var(--white);
	border: 1px solid var(--line-lang);
	border-radius: 999px;
}
.lang-switch button {
	padding: 4px 12px;
	border: 0;
	border-radius: 999px;
	background: none;
	cursor: pointer;
	font: 500 13px / normal var(--font-sans);
	color: var(--text-muted);
}
.lang-switch button[aria-pressed="true"] {
	background: var(--navy);
	color: var(--white);
	font-weight: 700;
}

/* Hero */
.hero {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	height: 480px;
	padding: 0 var(--inset);
	background: var(--bg-hero) url(../wp-content/uploads/home/hero-city.jpg) center 55% / cover no-repeat;
	overflow: hidden; /* 現HPのヘッダー画像 */
}
.hero::before {
	content: "";
	position: absolute;
	inset: 0; /* 明るい空に白文字が埋もれないよう、文字のある左側を濃く紺を重ねる */
	background: linear-gradient(90deg, var(--hero-veil-1), var(--hero-veil-2) 75%),
		linear-gradient(var(--hero-veil-3), var(--hero-veil-3));
}
/* 現HPに合わせ、理念を1行・その下に使命の一文を左揃えで置く */
.hero__inner {
	position: relative;
	width: min(var(--container), 100%);
	color: var(--white);
	text-shadow: 0 2px 24px var(--hero-text-shadow);
}
.hero__title {
	font-size: 40px;
	font-weight: 700;
	line-height: 1.4;
	letter-spacing: 0.8px;
}
/* 使命の一文は、3本柱カードの見出し（.pillar__title）と同じ大きさ・太さ */
.hero__lead {
	margin-top: 16px;
	font-size: 20px;
	font-weight: 700;
	line-height: 1.5;
	letter-spacing: 0.8px;
}
/* 折り返すときは文の切れ目で */
.hero .nb {
	display: inline-block;
}

/* Pillars (3 cards) */
.pillars {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 24px;
	padding: var(--section-pad) 0 40px;
}
/* 見出しから本文までをほかのセクションと同じ余白に（grid の gap 24px を差し引く） */
/* 見出し＋テーマ文（カード3枚の上に横断して置く） */
.pillars__head {
	grid-column: 1 / -1;
	margin-bottom: calc(var(--title-gap) - 24px);
	text-align: center;
}
.pillars__lead {
	margin-top: 16px;
	color: var(--navy); /* 見出しと同じ紺 */
	font-size: var(--body-size);
	font-weight: 700;
	line-height: 1.8;
}
.pillars__lead .nb {
	display: inline-block; /* 折り返すときは文の切れ目で */
}
.pillar {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 14px;
	padding: 40px 26.5px;
	border-radius: 24px;
	background: var(--white);
	border: 1px solid var(--line-card);
	box-shadow:
		0 2px 4px var(--shadow-card-near),
		0 16px 36px -8px var(--shadow-card-far);
	text-align: center;
}
/* 3本柱のイラスト（pillar-1〜3.svg） */
.pillar__ill {
	display: block;
	width: 160px;
	height: auto;
}
.pillar__title {
	min-height: 60px;
	display: flex;
	align-items: center;
	color: var(--navy);
	font-size: 20px;
	font-weight: 700;
	line-height: 1.5;
	letter-spacing: 0.8px;
}
/* 本文は左揃え（見出しとイラストは中央のまま） */
.pillar__body {
	align-self: stretch;
	color: var(--text-strong);
	font-size: var(--body-size);
	line-height: 1.75;
	text-align: left;
}

/* Solutions — zigzag */
.sol {
	display: flex;
	flex-direction: column;
	gap: var(--sol-gap);
	padding: var(--section-pad) var(--gutter) 120px;
	background: var(--bg-sol);
	overflow-x: clip;
}
.sol__title {
	margin-bottom: calc(var(--title-gap) - var(--sol-gap));
	text-align: center;
}
.sol__row {
	display: flex;
	align-items: center;
	gap: 80px;
}
.sol__row--rev {
	flex-direction: row-reverse;
}
.sol__media {
	flex: 0 0 600px;
	aspect-ratio: 3 / 2;
	border-radius: 24px;
	overflow: hidden;
}
.sol__media > img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}
.sol__text {
	flex: 1 1 0;
	min-width: 0;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 20px;
}
.sol__name {
	color: var(--navy);
	font-size: 30px;
	font-weight: 700;
	line-height: 1.45;
}
.sol__body {
	color: var(--text-strong);
	font-size: var(--body-size);
	line-height: 1.85;
}

/* Solution visuals: product-style UI windows on one navy stage, sized from the stage width (600 = 100cqw) */
.sol__stage {
	position: relative;
	container-type: inline-size;
	background:
		radial-gradient(60% 70% at 50% 45%, var(--glow-cyan), transparent 70%),
		linear-gradient(var(--grid-line) 1px, transparent 1px) 0 0 / 24px 24px,
		linear-gradient(90deg, var(--grid-line) 1px, transparent 1px) 0 0 / 24px 24px,
		linear-gradient(153deg, var(--deep-1) 8%, var(--deep-2) 50%, var(--deep-3) 100%);
}
.sol__diagram {
	display: block;
	width: 100%;
	height: 100%;
}
.sol__diagram text {
	font-family: var(--font-sans);
}
/* 図のうちサイトと共通の色（ブランド色を変えると図も追従する）。図だけで使うアクセント色は SVG に直接書いている */
.sol__diagram .dg-navy {
	fill: var(--navy);
}
.sol__diagram .dg-text-sub {
	fill: var(--text-sub);
}
.sol__diagram .dg-bg-light {
	fill: var(--bg-light);
}
.sol__diagram .dg-stop-navy {
	stop-color: var(--navy);
}
.sol__diagram .dg-stop-deep-1 {
	stop-color: var(--deep-1);
}
.sol__diagram .dg-stop-deep-2 {
	stop-color: var(--deep-2);
}
.sol__diagram .dg-stop-deep-3 {
	stop-color: var(--deep-3);
}
@media (max-width: 767px) {
	.sol__diagram .dg-sub {
		display: none;
	}
	.sol__diagram .dg-main {
		transform: translateY(7px);
	}
}
.sol__light {
	background: var(--bg-light);
}
.dg-flow {
	stroke-dasharray: 3 7;
	animation: dg-flow 1.2s linear infinite;
}
.is-in .dg-bar {
	transform-box: fill-box;
	transform-origin: bottom;
	animation: dg-grow 0.8s cubic-bezier(0.2, 0.7, 0.2, 1) both;
	animation-delay: calc(var(--i) * 70ms + 0.2s);
}
@keyframes dg-flow {
	to {
		stroke-dashoffset: -20;
	}
}
@keyframes dg-grow {
	from {
		transform: scaleY(0);
	}
}
@media (prefers-reduced-motion: reduce) {
	.dg-dot,
	.dg-pulse {
		display: none;
	}
	.dg-flow,
	.is-in .dg-bar {
		animation: none;
	}
}

/* AI row: Munemo and the AI food recommender side by side, screens playing out of phase */
.sol__mock .phone {
	width: 26%;
}
.sol__mock .phone--munemo {
	left: 19%;
	top: 8%;
}
.sol__mock .phone--food {
	left: 55%;
	top: 15%;
}
.phone--food .phone__frames img {
	animation-delay: -6s;
}

/* Device mockups (Figma Hero/Laptop 898:3832 + Hero/Phone 893:4994), in component px via --u */
.laptop,
.phone {
	position: absolute;
	container-type: inline-size;
}
.laptop {
	aspect-ratio: 760 / 440;
}
.phone {
	aspect-ratio: 155 / 344.553;
}
.laptop *,
.phone * {
	position: absolute;
	display: block;
}
.laptop * {
	--u: calc(100cqw / 760);
}
.phone * {
	--u: calc(100cqw / 155);
}
.laptop__lid {
	left: calc(64 * var(--u));
	top: 0;
	width: calc(632 * var(--u));
	height: calc(416 * var(--u));
	border: calc(2 * var(--u)) solid var(--device-frame);
	border-radius: calc(24 * var(--u)) calc(24 * var(--u)) 0 0;
	background: linear-gradient(var(--device-body-top), var(--device-body-bottom));
}
.laptop__screen {
	left: calc(84 * var(--u));
	top: calc(20 * var(--u));
	width: calc(592 * var(--u));
	height: calc(370 * var(--u));
	border-radius: calc(7.7 * var(--u));
	object-fit: cover;
}
.laptop__base {
	left: 0;
	top: calc(416 * var(--u));
	width: 100%;
	height: calc(24 * var(--u));
	border-radius: 0 0 calc(20 * var(--u)) calc(20 * var(--u));
	background: linear-gradient(var(--device-base-1), var(--device-base-2) 70%, var(--device-base-3));
	box-shadow: 0 calc(30 * var(--u)) calc(50 * var(--u)) calc(-10 * var(--u)) var(--device-shadow);
}
.laptop__notch {
	left: calc(310 * var(--u));
	top: calc(416 * var(--u));
	width: calc(140 * var(--u));
	height: calc(9 * var(--u));
	border-radius: 0 0 calc(9 * var(--u)) calc(9 * var(--u));
	background: var(--device-notch);
}
.phone__body {
	inset: 0;
	border: calc(1.24 * var(--u)) solid var(--device-phone-edge);
	border-radius: calc(42 * var(--u));
	background: var(--device-phone);
	filter: drop-shadow(0 calc(16 * var(--u)) calc(20 * var(--u)) var(--device-phone-shadow));
}
.phone__screen {
	left: calc(4.96 * var(--u));
	top: calc(4.96 * var(--u));
	width: calc(142.6 * var(--u));
	height: calc(332.153 * var(--u));
	border-radius: calc(32 * var(--u));
	overflow: hidden;
	background: var(--device-screen);
}
/* Screen plays the app flow (same as munemo-hp): note sent -> AI summary -> tap 保存 -> next actions. */
.phone__frames {
	left: 0;
	top: calc(23.56 * var(--u));
	width: 100%;
	height: calc(308.593 * var(--u));
}
.phone__frames img {
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	animation: 12s ease-in-out infinite both;
}
.phone__frames img:nth-child(1) {
	animation-name: phone-sent;
}
.phone__frames img:nth-child(2) {
	animation-name: phone-summary;
}
.phone__frames img:nth-child(3) {
	animation-name: phone-next;
}
/* Finger tap on 保存 (centre 47,731 in the 390x844 capture). */
.phone__tap {
	left: 12.05%;
	top: 86.6%;
	width: calc(22.8 * var(--u));
	aspect-ratio: 1;
	border-radius: 50%;
	background: var(--device-tap-fill);
	border: calc(1.15 * var(--u)) solid var(--device-tap-ring);
	transform: translate(-50%, -50%) scale(0.4);
	opacity: 0;
	animation: phone-tap 12s ease-out infinite;
}
@keyframes phone-sent {
	0%,
	24% {
		opacity: 1;
	}
	27%,
	96% {
		opacity: 0;
	}
	100% {
		opacity: 1;
	}
}
@keyframes phone-summary {
	0%,
	24% {
		opacity: 0;
		transform: translateY(4%);
	}
	28%,
	57% {
		opacity: 1;
		transform: none;
	}
	60%,
	100% {
		opacity: 0;
	}
}
@keyframes phone-next {
	0%,
	57% {
		opacity: 0;
		transform: translateY(4%);
	}
	61%,
	94% {
		opacity: 1;
		transform: none;
	}
	97%,
	100% {
		opacity: 0;
	}
}
@keyframes phone-tap {
	0%,
	47% {
		opacity: 0;
		transform: translate(-50%, -50%) scale(0.4);
	}
	50% {
		opacity: 1;
		transform: translate(-50%, -50%) scale(1);
	}
	55%,
	100% {
		opacity: 0;
		transform: translate(-50%, -50%) scale(1.6);
	}
}
@media (prefers-reduced-motion: reduce) {
	.phone__frames img {
		animation: none;
	}
	.phone__frames img:not(:last-of-type),
	.phone__tap {
		display: none;
	}
}
.phone__time {
	left: calc(17.36 * var(--u));
	top: calc(7.44 * var(--u));
	font: 600 calc(8.06 * var(--u)) / normal var(--font-device);
	color: var(--device-ink);
}
.phone__signal,
.phone__battery {
	top: calc(8.68 * var(--u));
	height: calc(6.2 * var(--u));
	border-radius: calc(3 * var(--u));
	background: var(--device-ink);
}
.phone__signal {
	left: calc(101.68 * var(--u));
	width: calc(11.16 * var(--u));
}
.phone__battery {
	left: calc(115.32 * var(--u));
	width: calc(12.4 * var(--u));
}
.phone__island {
	left: calc(53.32 * var(--u));
	top: calc(10.54 * var(--u));
	width: calc(45.88 * var(--u));
	height: calc(13.64 * var(--u));
	border-radius: calc(20 * var(--u));
	background: var(--black);
}

/* Munemo platform band */
.mp {
	position: relative;
	color: var(--white);
	overflow: hidden;
	background:
		url(../wp-content/uploads/home/munemo-nodes.svg) center / 1440px 576px no-repeat,
		url(../wp-content/uploads/home/munemo-grid.svg) center / 1441px 577px no-repeat,
		radial-gradient(40% 60% at 86% 12%, var(--glow-cyan-strong), transparent),
		radial-gradient(35% 60% at 62% 55%, var(--glow-blue), transparent),
		radial-gradient(45% 75% at 18% 100%, var(--glow-violet), transparent),
		linear-gradient(153deg, var(--deep-1) 8.76%, var(--deep-2) 48.9%, var(--deep-3) 81.75%);
}
.mp__inner {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 48px; /* 文章と端末を上下中央で揃える */
	max-width: 1440px;
	margin: 0 auto;
	padding: 72px min(74px, 5.14vw) 72px min(99px, 6.875vw);
}
/* 背景の「Munemo」：左下に敷く透かし文字。ボタンと重ならないよう文字サイズに上限を設定 */
.mp__mark {
	position: absolute;
	left: max(0px, (100% - 1440px) / 2);
	bottom: calc(16px - 0.064em);
	white-space: nowrap;
	pointer-events: none; /* 広い画面では内容の左端に合わせる */
	font-size: clamp(96px, 9vw, 140px);
	font-weight: 900;
	line-height: 1;
	letter-spacing: -0.03em;
	background: linear-gradient(var(--mark-top), var(--mark-bottom));
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
}
.mp__copy {
	position: relative;
	flex: 1 1 auto;
	min-width: 0;
	max-width: 584px;
	display: flex;
	flex-direction: column;
}
.mp__title {
	font-size: var(--mp-fs, 64px);
	font-weight: 700;
	line-height: var(--mp-lh, 79px);
	letter-spacing: 0.8px;
	margin-bottom: 10px;
}
/* Figma JA 864:3587。英語版も同じ大きさにして「Munemo Assistant」を1行に収める */
.mp {
	--mp-fs: min(45.7px, 4vw); /* 1024px前後の狭いPC幅でも1行に収まるよう少しだけ縮める */
	--mp-lh: 56.411px;
}
.mp__body {
	font: 400 var(--body-size) / 24px var(--font-latin);
	margin-bottom: 14px;
}
.mp__devices {
	position: relative;
	flex: 0 0 min(633px, 48%);
	aspect-ratio: 633 / 371;
}
.mp__devices .laptop {
	left: 0;
	top: 0;
	width: 93.649%;
}
.mp__devices .phone {
	left: 75.513%;
	top: 7.156%;
	width: 24.487%;
}

/* Blog */
.blog {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 44px;
	padding: 80px 0;
}
.blog__head {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 16px;
	text-align: center;
}
.blog__title {
	font-size: 64px;
	font-weight: 700;
	line-height: 62px;
	letter-spacing: 0.8px;
}
.blog__lead {
	font-size: 16px;
}
.blog__cards {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 24px;
	width: 100%;
}
.post {
	display: flex;
	flex-direction: column;
	border-radius: 20px;
	overflow: hidden;
	background: var(--white);
	box-shadow: var(--shadow-raised);
}
.post__thumb {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 384 / 216;
	object-fit: cover;
}
.post__body {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 12px;
	padding: 24px 24px 28px;
}
.post__meta {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 8px;
	color: var(--text-muted);
	font-size: 13px;
	font-weight: 500;
}
.post__title {
	color: var(--navy);
	font-size: 20px;
	font-weight: 700;
	line-height: 1.45;
}
.post__excerpt {
	font-size: 14px;
	line-height: 1.7;
}
/* リンクにしても見出しの色のまま */
.post__title a,
.featured__title a,
.post__more a {
	color: inherit;
}
.post__more {
	color: var(--navy);
	font-size: 14px;
	font-weight: 700;
}

/* News */
.news {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: var(--title-gap);
	padding: var(--section-pad) 0 48px;
}
/* お問い合わせ欄の背景と同じ濃いグレー */
.news__title {
	color: var(--bg-dark);
}
.news__list {
	list-style: none;
	margin: 0;
	padding: 0;
	width: 100%;
}
.news__item {
	display: flex;
	align-items: center;
	gap: 8px 24px;
	padding: 22px 24px;
	border-top: 1px solid var(--line-news);
	border-bottom: 1px solid var(--line-news);
	color: var(--text-strong);
	text-decoration: none;
	font-weight: 500;
}
.news__list li + li .news__item {
	border-top: 0;
}
/* 日付の幅を固定して見出しの位置を揃える */
.news__list time {
	flex: 0 0 119px;
	font-size: 14px;
	white-space: nowrap;
}
/* ラベルは見出しの右に置く */
.news__item .badge {
	order: 1;
}
.news__name {
	min-width: 0;
	font-size: var(--body-size);
}

/* About — hero, message, company profile */
.page-hero {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 8px;
	height: var(--page-hero-h);
	padding: 0 var(--inset);
	/* 濃紺のグラデーションに細い格子を重ねる（トップの Munemo 欄・ソリューション図と同じ雰囲気） */
	background:
		linear-gradient(var(--grid-line) 1px, transparent 1px) 0 0 / 32px 32px,
		linear-gradient(90deg, var(--grid-line) 1px, transparent 1px) 0 0 / 32px 32px,
		linear-gradient(120deg, var(--deep-1), var(--deep-2) 50%, var(--navy));
}
.page-hero__title {
	color: var(--white);
	font-size: 40px;
	font-weight: 700;
	line-height: 1.3;
	letter-spacing: 0.8px;
	text-align: center;
}
.page-hero__lead {
	color: var(--white);
	font-size: 18px;
	text-align: center;
}
/* 代表メッセージ：ほかのセクションと同じ位置・大きさの見出しを上に置く */
.message {
	padding-top: var(--section-pad);
}
.message__title {
	text-align: center;
	margin-bottom: var(--title-gap);
}
.msg {
	display: flex;
	align-items: flex-start;
	gap: 100px;
	width: min(1080px, 100% - 4 * var(--inset)); /* デザイン案に合わせ、左右に余白を取って中央にまとめる */
	margin: 0 auto;
	padding: 0 0 48px; /* トップと同じく、次の見出しとの間を詰める */
	color: var(--text-strong);
}
.msg__title {
	flex: 0 0 320px;
	color: var(--navy);
	font-size: 44px;
	font-weight: 700;
	line-height: 1.4;
	letter-spacing: 0.8px;
}
.msg__quote {
	flex: 1 1 660px; /* 本文の各行が途中で1〜数文字だけ折り返さない幅 */
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: 5px;
	margin: 0;
	letter-spacing: 0.8px;
}
.msg__inner {
	display: flex;
	flex-direction: column;
	gap: 24px;
}
.msg__text {
	margin: 0;
}
/* 長い文は言葉の切れ目で折り返す */
.msg__p {
	margin: 0;
	font-size: var(--body-size);
	font-weight: 500;
	line-height: 1.8;
	word-break: auto-phrase;
}
/* このまとまりの途中では改行しない */
.msg__p .nb {
	display: inline-block;
}
.msg__p + .msg__p {
	margin-top: 1.8em;
}
.msg__list {
	list-style: none;
	margin: 14px 0;
	padding: 4px 0 4px 20px;
	border-left: 3px solid var(--navy);
}
.msg__list li {
	color: var(--navy);
	font-size: 17px;
	font-weight: 700;
	line-height: 1.9;
	letter-spacing: 0.04em;
}
/* 署名のかたまりは右寄せ、中の役職と名前は左揃え */
.msg__sign {
	align-self: flex-end;
	text-align: left;
}
.msg__role {
	display: block;
	font-size: 14px;
	font-weight: 500;
	line-height: 22px;
}
.msg__name {
	display: block;
	font-size: 22px;
	font-weight: 700;
	line-height: 34px;
}
/* 社長の LinkedIn へのリンク（名前の右） */
.msg__name-row {
	display: inline-flex;
	align-items: center;
	gap: 10px;
}
.msg__in {
	display: block;
	border-radius: 4px;
}
/* LinkedIn 公式ロゴ（縦横比を保つ） */
.msg__in img {
	display: block;
	width: auto;
	height: 24px;
}
.msg__in:hover {
	opacity: 0.8;
}
.msg__in:focus-visible {
	outline: 3px solid var(--teal-strong);
	outline-offset: 2px;
}
/* AxirriAという名前：見出しと位置・大きさはほかのセクションと共通、本文は中央に短くまとめる */
.name {
	padding: var(--section-pad) var(--inset) 96px; /* 下のグレーの帯（企業情報）まで、上と同じくらいゆとりを持たせる */
	text-align: center;
}
.name__title {
	margin-bottom: var(--title-gap);
}
.name__body {
	display: flex;
	flex-direction: column;
	gap: 1.8em;
	width: fit-content; /* 文章のかたまりは中央、行頭は左揃え */
	max-width: min(var(--measure), 100%);
	margin: 0 auto;
	text-align: left;
	color: var(--text-strong);
	font-size: var(--body-size);
	line-height: 1.8;
}
.name__body strong {
	color: var(--navy);
	font-weight: 700;
}
.name__body .nb {
	display: inline-block; /* 折り返すときは文の切れ目で */
}
.profile {
	padding: var(--section-pad) var(--inset) 48px;
	background: var(--bg-profile);
}
.profile__title {
	text-align: center;
	margin-bottom: var(--title-gap);
}
/*
 * 項目名(200px)＋内容(最長の幅)の組を、見出しの真下の中央に置く。
 * 企業情報と開発体制はそれぞれ別に幅を決め、各見出しの真下の中央に置く（列を共有すると、開発体制の長い内容に引っ張られて企業情報が左にずれるため）。内容が長いときは折り返す
 */
.profile__tables {
	width: min(var(--measure), 100%);
	margin: 0 auto;
}
.profile__list {
	display: grid;
	grid-template-columns: 1fr 200px minmax(0, max-content) 1fr;
	margin: 0;
	border-top: 1px solid var(--line-profile);
}
/* 開発体制：企業情報と同じ大きさ・中央揃えの見出し。上の表との間は、セクション同士の間隔（下余白 48px＋見出し上の余白）と揃える */
.profile__sub {
	grid-column: 1 / -1;
	margin: calc(var(--section-pad) + 48px) 0 16px;
	text-align: center;
}
/* 開発体制の説明文（トップの「情報基盤から未来を創る」の下の文と同じ見た目） */
.profile__lead {
	grid-column: 1 / -1;
	margin: 0 0 var(--title-gap);
	color: var(--navy);
	font-size: var(--body-size);
	font-weight: 700;
	line-height: 1.8;
	text-align: center;
}
.profile__lead .nb {
	display: inline-block; /* 折り返すときは文の切れ目で */
}
.profile__row {
	display: grid;
	grid-column: 1 / -1;
	grid-template-columns: subgrid;
	align-items: center;
	padding: 34px 0;
	border-bottom: 1px solid var(--line-profile);
}
.profile__row dt {
	grid-column: 2;
	color: var(--navy);
	font-size: 15px;
	font-weight: 700;
	line-height: 20px;
}
.profile__row dd {
	grid-column: 3;
	margin: 0 0 0 32px;
	color: var(--text-strong);
	font-size: var(--body-size);
	line-height: 24px;
	word-break: auto-phrase; /* 長い内容は言葉の切れ目で折り返す */
}
.profile__row dd a {
	color: var(--navy);
	text-decoration: underline;
	text-underline-offset: 3px;
}
.profile__row dd a:hover {
	text-decoration-thickness: 2px;
}
.profile__row dd a:focus-visible {
	outline: 3px solid var(--teal-strong);
	outline-offset: 2px;
}

/* Blog list (Figma Blog / PC 931:3777) */
.bloglist {
	display: flex;
	flex-direction: column;
	gap: 56px;
	padding: 80px var(--gutter) 120px;
	background: var(--bg-subtle);
}
.tabs {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
}
.tab {
	padding: 9px 20px;
	border: 1px solid var(--line-tab);
	border-radius: 999px;
	background: var(--white);
	color: var(--ink);
	font: 500 14px / normal var(--font-sans);
	cursor: pointer;
}
.tab:hover {
	border-color: var(--navy);
}
.tab[aria-pressed="true"] {
	border-color: var(--navy);
	background: var(--navy);
	color: var(--white);
}
.featured {
	display: flex;
	border-radius: 24px;
	overflow: hidden;
	background: var(--white);
	box-shadow: var(--shadow-raised);
}
.featured__media {
	flex: 0 0 53.333%;
	min-width: 0;
	display: block;
}
.featured__thumb {
	display: block;
	aspect-ratio: 640 / 380;
	object-fit: cover;
	height: auto;
}
.featured__media .featured__thumb {
	width: 100%;
	height: 100%;
}
.featured__body {
	flex: 1 1 0;
	min-width: 0;
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: flex-start;
	gap: 16px;
	padding: 48px;
}
.featured__title {
	color: var(--navy);
	font-size: 30px;
	font-weight: 700;
	line-height: 1.4;
}
.featured__excerpt {
	color: var(--text-sub);
	font-size: 15px;
	line-height: 1.75;
}
.featured__more {
	color: var(--navy);
	font-size: 15px;
	font-weight: 700;
}
.post-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 32px 24px;
}
.post[hidden],
.featured[hidden] {
	display: none;
}

/* Blog article (Figma Blog article / PC 932:3831) */
.article {
	display: flex;
	flex-direction: column;
	align-items: center;
	padding: 24px 0 120px;
}
.crumbs {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	width: min(var(--measure), 100% - 2 * var(--inset)); /* 本文の左端に揃える */
	color: var(--text-muted);
	font-size: 13px;
	font-weight: 500;
}
.crumbs a {
	color: inherit;
	text-decoration: none;
}
.crumbs a:hover {
	color: var(--navy);
}
.crumbs [aria-current] {
	color: var(--text-strong);
}
/* パンくず(上余白40px＋高さ20px)を含めて、見出しの位置を他セクションと揃える */
.article__head {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 20px;
	width: min(var(--measure), 100% - 2 * var(--inset));
	padding: max(0px, calc(var(--section-pad) - 44px)) 0 40px;
	text-align: center;
}
.article__meta {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
	gap: 8px 12px;
	color: var(--text-muted);
	font-size: 14px;
	font-weight: 500;
}
.article__meta time {
	white-space: nowrap;
}
.article__lead {
	color: var(--text-strong);
	font-size: 16px;
	line-height: 1.8;
}
.article__note {
	color: var(--text-muted);
	font-size: 13px;
}
.article__body p a {
	color: var(--navy);
	text-decoration: underline;
	text-underline-offset: 3px;
}
.author {
	display: flex;
	align-items: center;
	gap: 12px;
	text-align: left;
}
.author img {
	display: block;
}
.author__name {
	display: block;
	color: var(--text-strong);
	font-size: 14px;
	font-weight: 700;
}
.author__role {
	display: block;
	margin-top: 2px;
	color: var(--text-muted);
	font-size: 13px;
}
.article__cover {
	display: block;
	width: min(var(--container), 100% - 2 * var(--inset));
	height: auto;
	aspect-ratio: 1200 / 560;
	object-fit: cover;
	border-radius: 24px;
}
.article__body {
	display: flex;
	flex-direction: column;
	gap: 24px;
	width: min(var(--measure), 100% - 2 * var(--inset));
	padding: 64px 0 24px;
	color: var(--text-strong);
}
.article__body p {
	font-size: var(--body-size);
	line-height: 1.9;
}
/* 日本語の本文は両端揃えにし、行頭に句読点が来ないようにする */
.article__body p,
.article__body > ul li span {
	line-break: strict;
	text-align: justify;
}
.article__body h2 {
	color: var(--navy);
	font-size: 26px;
	font-weight: 700;
	line-height: 1.5;
}
/* 項目の区切りをはっきりさせる */
.article__body h2:not(:first-child) {
	margin-top: 24px;
}
/* 見出しは直後の本文に寄せる */
.article__body h2 + * {
	margin-top: -8px;
}
.article__body > ul {
	display: flex;
	flex-direction: column;
	gap: 10px;
	margin: 0;
	padding: 0;
	list-style: none;
}
/* 2行になっても点は1行目に揃える */
.article__body > ul li {
	display: flex;
	align-items: flex-start;
	gap: 12px;
	font-size: var(--body-size);
	line-height: 1.8;
}
.article__body > ul li::before {
	content: "";
	flex: 0 0 8px;
	height: 8px;
	margin-top: calc((1.8em - 8px) / 2);
	background: url(../wp-content/uploads/blog/bullet.svg) center / 8px 8px no-repeat;
}
.callout {
	margin: 0;
	padding: 28px 32px;
	border-left: 4px solid var(--navy);
	border-radius: 16px;
	background: var(--bg-callout);
}
.callout p {
	color: var(--navy);
	font-size: 20px;
	font-weight: 700;
	line-height: 1.6;
}
.article__foot {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	padding-top: 32px;
	border-top: 1px solid var(--line);
}
.tags {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 0;
	padding: 0;
	list-style: none;
}
.tags li {
	padding: 5px 12px;
	border: 1px solid var(--line);
	border-radius: 999px;
	color: var(--text-muted);
	font-size: 13px;
	font-weight: 500;
}
.share {
	display: flex;
	align-items: center;
	gap: 12px;
	color: var(--text-muted);
	font-size: 13px;
	font-weight: 500;
}
.share a {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 36px;
	height: 36px;
	border: 1px solid var(--line);
	border-radius: 18px;
	color: var(--navy);
	font-size: 13px;
	font-weight: 700;
	text-decoration: none;
}
.share a:hover {
	border-color: var(--navy);
}
.back {
	padding-top: 24px;
	color: var(--navy);
	font-size: 15px;
	font-weight: 700;
}
.related {
	display: flex;
	flex-direction: column;
	gap: 32px;
	padding: 96px var(--gutter) 120px;
	background: var(--bg-subtle);
}
.related__title {
	color: var(--text-strong);
	font-size: 32px;
	font-weight: 700;
}

/* Contact strip + footer */
.talk {
	background: var(--bg-dark);
	color: var(--white);
}
.talk__inner {
	display: flex;
	gap: 148px;
	width: min(var(--container-contact), 100% - 2 * var(--inset));
	margin: 0 auto;
	padding: var(--section-pad) 0 75px;
}
.talk__side {
	flex: 0 0 420px;
	display: flex;
	flex-direction: column;
	gap: 16px;
}
.talk__title {
	color: var(--white);
}
/* PC・タブレットは1行で表示 */
.talk__lead {
	color: var(--text-footer);
	font-size: var(--body-size);
	line-height: 1.8;
	white-space: nowrap;
}
.talk__form {
	flex: 1 1 623px;
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: 12px;
}
.field {
	width: 100%;
	height: 69px;
	padding: 0 20px;
	border: 0;
	border-radius: var(--field-radius);
	background: var(--white);
	color: var(--black);
	font: 500 16px/26px var(--font-sans);
	letter-spacing: 0.8px;
}
.field::placeholder {
	color: var(--black);
	opacity: 1;
}
.field:focus {
	outline: 3px solid var(--teal);
	outline-offset: 2px;
}
.field--area {
	height: 244px;
	padding: 21px 20px;
	resize: vertical;
}
/* 入力欄と同じ角丸で中央に配置 */
.talk__form .btn {
	align-self: center;
	min-width: 200px;
	margin-top: 35px;
	border-radius: var(--field-radius);
}
/* スパム対策のおとり項目（人には見えない） */
.talk__trap {
	display: none;
}
.ft {
	display: flex;
	align-items: center;
	gap: 12px 40px;
	min-height: 84px; /* 左から会社名・リンク、右端に著作権表示 */
	padding: 20px max(var(--inset), calc((100% - var(--container-contact)) / 2)); /* お問い合わせ欄と左右の端を揃える */
	border-top: 1px solid var(--line-footer);
	background: var(--bg-dark);
	color: var(--text-footer);
	font-size: 13px;
	line-height: 20px;
	letter-spacing: 0.8px;
}
.ft__name {
	color: var(--white);
	font-weight: 700;
	white-space: nowrap;
}
.ft__links {
	display: flex;
	flex-wrap: wrap;
	gap: 8px 28px;
}
.ft__links a {
	color: var(--text-footer);
	text-decoration: none;
}
.ft__links a:hover {
	color: var(--white);
	text-decoration: underline;
}
.ft__copy {
	margin-left: auto;
	font-size: inherit;
}

/* Scroll reveal (assets/reveal.js) */
.reveal-on [data-reveal] {
	opacity: 0;
	transform: translateY(32px);
	transition:
		opacity 0.8s cubic-bezier(0.2, 0.7, 0.2, 1),
		transform 0.8s cubic-bezier(0.2, 0.7, 0.2, 1);
	transition-delay: calc(var(--reveal-i, 0) * 120ms);
}
.reveal-on [data-reveal="left"] {
	transform: translateX(-48px);
}
.reveal-on [data-reveal="right"] {
	transform: translateX(48px);
}
.reveal-on [data-reveal].is-in {
	opacity: 1;
	transform: none;
}

/* ≤1199: tablet */
@media (max-width: 1199px) {
	:root {
		--section-pad: 48px;
		--sol-gap: 80px;
	}
	/* Header */
	.hd {
		gap: 24px;
	}
	.hd__logo img {
		width: 200px;
	}
	.hd__nav {
		gap: 24px;
	}
	/* Solutions */
	.sol {
		padding-bottom: 96px;
	}
	.sol__row {
		gap: 48px;
	}
	.sol__media {
		flex-basis: 50%;
	}
	.sol__name {
		font-size: 26px;
	}
	/* About */
	.msg {
		gap: 64px;
	}
	.msg__title {
		flex-basis: 300px;
		font-size: 36px;
	}
	/* Contact */
	.talk__inner {
		gap: 64px;
	}
}

/* ≤1023: stack the Munemo band, cards and the contact strip */
@media (max-width: 1023px) {
	/* Pillars */
	.pillars,
	.blog__cards {
		grid-template-columns: 1fr;
		max-width: 560px;
		margin-inline: auto;
	}
	.pillars {
		gap: 16px;
		padding: var(--section-pad) 0 24px;
	}
	.pillars__head {
		margin-bottom: calc(var(--title-gap) - 16px);
	}
	/* Munemo band */
	.mp__inner {
		flex-direction: column-reverse;
		align-items: stretch;
		gap: 24px;
		padding: 24px var(--inset) 48px;
	}
	.mp__mark {
		display: none;
	}
	.mp__copy,
	.mp__devices {
		width: 100%;
	}
	.mp__devices {
		flex: none;
		max-width: 633px;
		margin: 0 auto;
	}
	.mp__title {
		font-size: 40px;
		line-height: 1.3;
	}
	/* About */
	.msg {
		flex-direction: column;
		gap: 32px;
		padding: 0 0 48px;
	}
	.msg__quote {
		flex: none; /* 1列表示では横並び用の幅指定（660px）が高さとして効かないようにする */
	}
	.msg__title {
		flex-basis: auto;
	}
	/* Blog list */
	.post-grid {
		grid-template-columns: repeat(2, 1fr);
	}
	.featured {
		flex-direction: column;
	}
	.featured__body {
		padding: 32px;
	}
	/* Contact */
	.talk__inner {
		flex-direction: column;
		gap: 48px;
		padding: var(--section-pad) 0 64px;
	}
	.talk__side {
		flex-basis: auto;
	}
	.talk__form {
		flex-basis: auto;
	}
}

/* ≤767: mobile (Figma Home / Mobile 849:3467) */
@media (max-width: 767px) {
	:root {
		--hd-h: 60px;
		--section-title: 26px;
		--section-pad: 40px;
		--title-gap: 32px;
		--sol-gap: 56px;
		--page-hero-h: 160px;
	}
	/* Header: the nav folds into the menu button */
	.hd {
		padding: 0 15px;
		gap: 12px;
	}
	.hd__logo img {
		width: 162px;
	}
	.lang-switch {
		order: 2;
	}
	.hd__menu {
		order: 3;
		display: flex;
		flex-direction: column;
		align-items: center;
		gap: 3px;
		width: 33px;
		padding: 0;
		border: 0;
		background: none;
		color: var(--ink);
		font: 500 11px/14px var(--font-sans);
		cursor: pointer;
	}
	.hd__bars {
		width: 24px;
		height: 3px;
		margin-bottom: 12px;
		background: currentColor;
		box-shadow:
			0 6px 0 currentColor,
			0 12px 0 currentColor;
	}
	.hd__nav {
		display: none;
		position: absolute;
		top: var(--hd-h);
		left: 0;
		right: 0;
		flex-direction: column;
		gap: 0;
		background: var(--white);
		box-shadow: 0 8px 16px var(--shadow-menu);
	}
	.hd__menu[aria-expanded="true"] ~ .hd__nav {
		display: flex;
	}
	.hd__nav a {
		padding: 14px 16px;
		border-top: 1px solid var(--line-nav);
	}
	/* Hero, pillars */
	/* 英語は行数が増えるので、文字があふれたら帯を伸ばす */
	.hero {
		height: auto;
		min-height: 360px;
		padding-block: 40px;
	}
	.hero__title {
		font-size: 26px;
	}
	.pillar {
		padding: 24px 20px;
	}
	/* Solutions */
	.sol {
		padding: var(--section-pad) var(--inset) 64px;
	}
	.sol__row,
	.sol__row--rev {
		flex-direction: column;
		align-items: stretch;
		gap: 24px;
	}
	.sol__media,
	.sol__text {
		flex: none;
	}
	.sol__media {
		width: 100%;
		border-radius: 16px;
	}
	.sol__name {
		font-size: 22px;
	}
	/* Munemo band */
	.mp__title {
		font-size: 32px;
	}
	/* スマホは「、」の後ろで折り返す */
	.mp__body {
		word-break: keep-all;
	}
	/* Blog, news */
	.blog {
		padding: 56px 0;
		gap: 32px;
	}
	.blog__title {
		font-size: 40px;
		line-height: 1.2;
	}
	.news {
		padding-bottom: 40px;
	}
	.news__item {
		flex-wrap: wrap;
		gap: 8px 12px;
		padding: 18px 8px;
	}
	.news__list time {
		flex-basis: 100%;
	}
	/* Page hero, about */
	.page-hero__title {
		font-size: 28px;
	}
	.page-hero__lead {
		font-size: 15px;
	}
	.msg {
		width: calc(100% - 2 * var(--inset));
		padding: 0 0 40px;
	}
	.msg__title {
		font-size: 36px;
	}
	.name {
		padding-bottom: 64px;
	}
	.profile {
		padding: var(--section-pad) var(--inset) 40px;
	}
	.profile__tables,
	.profile__list {
		display: block;
	}
	.profile__sub {
		margin: calc(var(--section-pad) + 40px) 0 16px;
	}
	.profile__row {
		display: flex;
		flex-direction: column;
		align-items: flex-start;
		gap: 6px;
		padding: 18px 8px;
	}
	.profile__row dd {
		margin-left: 0;
	}
	/* Blog list */
	.bloglist {
		padding: 48px var(--inset) 72px;
		gap: 32px;
	}
	.post-grid {
		grid-template-columns: 1fr;
		gap: 24px;
	}
	.featured__body {
		padding: 24px;
	}
	.featured__title {
		font-size: 22px;
	}
	/* Blog article */
	.article {
		padding: 16px 0 72px;
	}
	/* パンくず(24px＋20px)分を差し引く */
	.article__head {
		padding: max(0px, calc(var(--section-pad) - 36px)) 0 28px;
		gap: 16px;
	}
	.article__cover {
		border-radius: 16px;
	}
	.article__body {
		padding-top: 40px;
	}
	.article__body h2 {
		font-size: 22px;
	}
	.callout {
		padding: 20px;
	}
	.callout p {
		font-size: 17px;
	}
	.related {
		padding: 56px var(--inset) 72px;
		gap: 24px;
	}
	.related__title {
		font-size: 24px;
	}
	/* Contact, footer */
	/* スマホは「、」の後ろで折り返す */
	.talk__lead {
		white-space: normal;
		word-break: keep-all;
	}
	.ft {
		flex-direction: column;
		justify-content: center;
		gap: 4px;
		padding-block: 16px 20px;
		text-align: center;
	}
	.ft__links {
		justify-content: center;
		gap: 0 24px;
	}
	/* 指で押しやすい高さ */
	.ft__links a {
		padding-block: 10px;
	}
	.ft__copy {
		margin-left: 0;
	}
}

/* ブログは記事公開まで一時非表示（再表示は各HTMLの data-blog 要素から hidden を外す） */
[data-blog][hidden] {
	display: none !important;
}
