/* ============================================================
   miki design – main.css
   デザイン基準幅: 1440px（コンテンツ幅 1200px）
   ============================================================ */

:root {
	--c-text: #352e2e;
	--c-black: #171717;
	--c-btn: #100d0a;
	--c-gray: #777;
	--c-gray-light: #888;
	--c-line: #bbb;
	--c-bg: #fefdfc;
	--f-sans: "Noto Sans JP", sans-serif;
	--f-mincho: "Shippori Mincho", serif;
	--f-en: "Marcellus", serif;
	--f-en-cond: "Barlow Condensed", sans-serif;
	--header-h: 82px;
	--gutter: 120px;
}

/* ---------- base ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
	margin: 0;
	font-family: var(--f-sans);
	font-size: 16px;
	line-height: 1.6;
	color: var(--c-text);
	background: #fff;
	-webkit-font-smoothing: antialiased;
}
h1, h2, h3, p, ul, ol, figure { margin: 0; }
ul, ol { padding: 0; list-style: none; }
img { display: block; max-width: 100%; height: auto; }
a { color: inherit; text-decoration: none; }
button { font: inherit; }
.u-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

.l-container {
	width: 100%;
	max-width: calc(1200px + var(--gutter) * 2);
	margin: 0 auto;
	padding: 0 var(--gutter);
}
.l-main--page { padding: calc(var(--header-h) + 80px) 0 120px; }

/* ---------- components ---------- */

/* セクションラベル（小）: 02 —— WORKS */
.c-label {
	display: flex;
	align-items: center;
	gap: 28px;
	font-family: var(--f-en);
	font-size: 12px;
	line-height: 22.8px;
	letter-spacing: 1.56px;
	color: var(--c-gray);
}
.c-label i { display: block; width: 30px; height: 1px; background: var(--c-line); }

/* セクションラベル（大）: 01 SERVICE —— */
.c-label--lg {
	gap: 24px;
	font-size: 20px;
	line-height: 1.6;
	letter-spacing: 2px;
	color: currentColor;
}
.c-label--lg i { background: currentColor; }

.c-title {
	font-family: var(--f-mincho);
	font-weight: 400;
	line-height: 1.6;
	color: var(--c-black);
}
.c-title--56 { font-size: 56px; }
.c-title--48 { font-size: 48px; letter-spacing: 2px; }

/* ボタン */
.c-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 16px;
	padding: 16px 32px 16px 40px;
	border: 1px solid var(--c-text);
	border-radius: 999px;
	background: linear-gradient(var(--c-text), var(--c-text)) no-repeat left center / 0 100%;
	color: var(--c-text);
	font-size: 14px;
	line-height: 1.6;
	letter-spacing: .08em;
	white-space: nowrap;
	transition: background-size .4s ease, color .4s ease;
}
.c-btn:hover { background-size: 100% 100%; color: #fff; }
.c-btn__icon { display: block; width: 18px; height: 10px; transition: transform .4s ease; }
.c-btn__icon svg { display: block; }
.c-btn:hover .c-btn__icon { transform: translateX(4px); }
.c-btn--white { border-color: #fff; color: #fff; background-image: linear-gradient(#fff, #fff); }
.c-btn--white:hover { color: var(--c-black); }

/* ---------- header ---------- */
.l-header {
	position: fixed;
	inset: 0 0 auto;
	z-index: 100;
	height: var(--header-h);
	background: #fff;
}
.l-header__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	height: 100%;
	padding: 0 40px;
}
.l-header__logo { flex-shrink: 0; }
.l-header__logo picture { display: block; }
.l-header__logo img { display: block; width: 210px; height: auto; }
.l-header__nav { display: flex; align-items: center; gap: 80px; }
.l-header__menu { display: flex; gap: 24px; font-weight: 500; white-space: nowrap; }
.l-header__menu a { transition: opacity .3s; }
.l-header__menu a:hover { opacity: .6; }
.l-header__contact {
	display: inline-flex;
	align-items: center;
	gap: 14px;
	padding: 13px 24px 13px 30px;
	border: 1px solid var(--c-text);
	border-radius: 999px;
	background: linear-gradient(var(--c-text), var(--c-text)) no-repeat left center / 0 100%;
	font-size: 14px;
	letter-spacing: .08em;
	white-space: nowrap;
	transition: background-size .4s ease, color .4s ease;
}
.l-header__contact:hover { background-size: 100% 100%; color: #fff; }
.l-header__contact .c-btn__icon { transition: transform .4s ease; }
.l-header__contact:hover .c-btn__icon { transform: translateX(4px); }
.l-header__toggle { display: none; }

/* ---------- footer ---------- */
.l-footer { background: var(--c-black); color: #fff; }
.l-footer__inner {
	position: relative;
	max-width: calc(1200px + var(--gutter) * 2);
	min-height: 330px;
	margin: 0 auto;
	padding: 80px var(--gutter) 16px;
	display: grid;
	grid-template-columns: auto 1fr;
	grid-template-rows: 1fr auto;
	column-gap: 40px;
}
.l-footer__logo img { display: block; width: 240px; max-width: 100%; height: auto; }
.l-footer__info { margin-top: 20px; font-size: 12px; line-height: 1.9; color: #aaa; }
.l-footer__nav ul { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 12px 40px; font-size: 14px; }
.l-footer__nav a:hover { opacity: .6; }
.l-footer__copy { grid-column: 1 / -1; align-self: end; font-size: 12px; color: #aaa; }
.l-footer__copy small { font-size: inherit; }

/* ---------- FV ---------- */
.p-fv {
	position: relative;
	height: 900px;
	background: #d3cfcf;
	overflow: hidden;
}
.p-fv__bg {
	position: absolute;
	inset: -12% 0 -2%;
	background: center / cover no-repeat;
}
.p-fv__box {
	position: absolute;
	left: max(var(--gutter), calc(50% - 600px));
	top: 202px;
	width: 560px;
	padding: 64px;
	background: #fff;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 48px;
}
.p-fv__title {
	font-family: var(--f-mincho);
	font-weight: 400;
	font-size: 48px;
	line-height: 1.6;
	white-space: nowrap;
}
.p-fv__lead { margin-top: -24px; }
.p-fv__box .c-btn { margin-top: 0; }
.p-fv__contact {
	position: fixed;
	z-index: 90;
	left: calc(50% + 408px);
	bottom: 135px;
	width: 190px;
	height: 190px;
	border-radius: 50%;
	background: var(--c-black);
	color: #fff;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	text-align: center;
	font-family: var(--f-mincho);
	font-weight: 700;
	filter: drop-shadow(0 8px 4px rgba(0, 0, 0, .15));
	transition: transform .3s, opacity .3s, visibility .3s, bottom .3s;
}
.p-fv__contact:hover { transform: scale(1.04); }
.p-fv__contact.is-hidden { opacity: 0; visibility: hidden; }
.p-fv__contact-en {
	position: relative;
	padding-top: 9px;
	font-family: var(--f-en-cond);
	font-weight: 600;
	font-size: 20px;
	line-height: 1.5;
	color: rgba(255, 255, 255, .7);
}
.p-fv__contact-en::before {
	content: "";
	position: absolute;
	top: 3px;
	left: 50%;
	width: 10px;
	height: 10px;
	border-top: 1.5px solid rgba(255, 255, 255, .7);
	border-left: 1.5px solid rgba(255, 255, 255, .7);
	transform: translateX(-50%) rotate(45deg);
}
.p-fv__contact-ja { font-size: 26px; line-height: 1.6; }
.p-fv__contact-sub { margin-top: 5px; font-size: 14px; line-height: 19.2px; }
.p-fv__news {
	position: absolute;
	right: 0;
	bottom: 40px;
	width: calc(100% - 280px);
	height: 71px;
	padding-left: 158px;
	padding-right: 40px;
	background: #fff;
	border-top: 1px solid #dedede;
	border-bottom: 1px solid #dedede;
	display: flex;
	align-items: center;
	font-size: 13px;
	line-height: 1.6;
}
.p-fv__news-label { width: 120px; flex-shrink: 0; font-family: var(--f-en); letter-spacing: 2px; }
.p-fv__news-date { width: 140px; flex-shrink: 0; color: var(--c-gray); }
.p-fv__news-title { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.p-fv__news-title:hover, .p-fv__news-more:hover { opacity: .6; }
.p-fv__news-more { flex-shrink: 0; margin-left: 40px; margin-right: 98px; }
.p-fv__news-more span { margin-left: 1.2em; }

/* ---------- MESSAGE ---------- */
.p-message {
	position: relative;
	padding: 120px var(--gutter);
	background: #ededed;
	overflow: hidden;
}
.p-message__bg { position: absolute; inset: -15% 0; background: center / cover no-repeat; }
.p-message__box { position: relative; }
.p-message__box {
	max-width: 1200px;
	margin: 0 auto;
	padding: 120px 80px;
	background: rgba(255, 255, 255, .96);
}
.p-message__inner {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 80px;
}
.p-message__img { width: 360px; height: 366px; object-fit: cover; flex-shrink: 0; }
.p-message__body { flex: 0 1 560px; min-width: 0; display: flex; flex-direction: column; gap: 56px; }
.p-message__title {
	font-family: var(--f-mincho);
	font-weight: 400;
	font-size: 48px;
	line-height: 1.6;
	letter-spacing: 2px;
}
.p-message__text { letter-spacing: .32px; }

/* ---------- SERVICE ---------- */
.p-service { padding: 120px 0; background: #fff; color: var(--c-black); }
.p-service__head {
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
}
.p-service__head .c-title { margin-top: 16px; }
.p-service__lead { margin-top: 24px; letter-spacing: .32px; }
.p-service__list {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 30px;
	margin-top: 64px;
}
.p-service__img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.p-service__text {
	display: flex;
	gap: 22px;
	margin-top: 24px;
	padding: 0 16px;
}
.p-service__num {
	font-family: var(--f-en);
	font-size: 24px;
	line-height: 1.8;
	color: rgba(23, 23, 23, .6);
}
.p-service__name { font-family: var(--f-mincho); font-weight: 400; font-size: 24px; line-height: 1.6; }
.p-service__desc { margin-top: 8px; letter-spacing: .32px; }

/* ---------- WORKS ---------- */
.p-works { padding: 120px 0; background: var(--c-bg); }
.p-works__head { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; }
.p-works__head .c-title { margin-top: 4px; }
.p-works__list {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 40px;
	margin-top: 80px;
}
.p-works__img { aspect-ratio: 578 / 361; overflow: hidden; }
.p-works__img img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s; }
.p-works__item a:hover img { transform: scale(1.04); }
.p-works__name { margin-top: 16px; font-family: var(--f-mincho); font-weight: 400; font-size: 24px; line-height: 1.6; }
.p-works__meta { margin-top: 4px; font-family: var(--f-en); letter-spacing: 1.56px; color: var(--c-gray-light); }

/* ---------- APPROACH ---------- */
.p-approach { padding: 0 0 0; background: #fff; border-bottom: 1px solid #eee; }
.p-approach .c-title { margin-top: 4px; }
.p-approach__list {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	margin-top: 64px;
	border-top: 1px solid var(--c-line);
}
.p-approach__item {
	min-height: 274px;
	padding: 30px 24px;
	border-bottom: 1px solid var(--c-line);
}
.p-approach__item + .p-approach__item { border-left: 1px solid #ddd; border-bottom-color: #ddd; }
.p-approach__num { font-family: var(--f-en); font-size: 20px; letter-spacing: 2px; color: var(--c-gray); }
.p-approach__title { margin-top: 16px; font-family: var(--f-mincho); font-weight: 400; font-size: 24px; line-height: 1.6; color: var(--c-black); }
.p-approach__text { margin-top: 24px; font-size: 14px; color: #666; }

/* ---------- ABOUT ---------- */
.p-about { padding: 120px 0; background: #fff; border-bottom: 1px solid #eee; }
.p-about__inner { display: flex; align-items: center; gap: 80px; }
.p-about__img { width: 495px; aspect-ratio: 1; object-fit: cover; flex-shrink: 0; }
.p-about__body { display: flex; flex-direction: column; align-items: flex-start; }
.p-about__body .c-title { color: var(--c-text); }
.p-about__text { margin: 56px 0; line-height: 1.8; }

/* ---------- イメージ帯 ---------- */
.p-band { position: relative; height: 900px; overflow: hidden; }
.p-band__img { position: absolute; inset: -18% 0; background: center / cover no-repeat; }

/* ---------- VOICE ---------- */
.p-voice { padding: 120px 0; background: var(--c-bg); }
.p-voice__inner { display: flex; align-items: center; justify-content: space-between; gap: 40px; }
.p-voice__body { display: flex; flex-direction: column; align-items: flex-start; }
.p-voice__body .c-title { margin-top: 4px; }
.p-voice__quote { margin-top: 56px; font-family: var(--f-mincho); font-size: 28px; line-height: 1.6; }
.p-voice__text { margin: 56px 0; letter-spacing: .32px; }
.p-voice__list {
	display: grid;
	grid-template-columns: repeat(2, 305px);
	gap: 16px;
	flex-shrink: 0;
}
.p-voice__img { aspect-ratio: 305 / 191; overflow: hidden; background: rgba(0, 0, 0, .2); }
.p-voice__img img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s; }
.p-voice__item a:hover img { transform: scale(1.04); }
.p-voice__name { margin-top: 8px; font-family: var(--f-mincho); font-weight: 500; font-size: 15px; line-height: 1.8; }
.p-voice__meta { margin-top: 4px; font-size: 13px; line-height: 1.8; color: var(--c-gray-light); }

/* ---------- COLUMN ---------- */
.p-column { padding: 0 0 120px; background: var(--c-bg); color: var(--c-text); }
.p-column .c-title { margin-top: 16px; color: var(--c-text); }
.p-column__list {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 51px;
	margin-top: 48px;
}
.p-column__img { aspect-ratio: 4 / 3; overflow: hidden; }
.p-column__img img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s; }
.p-column__item a:hover img { transform: scale(1.04); }
.p-column__text { margin: 16px auto 0; padding: 0 23px; color: var(--c-black); }
.p-column__cat { font-family: var(--f-en); letter-spacing: 2px; }
.p-column__title { margin-top: 16px; font-weight: 400; font-size: 16px; letter-spacing: .32px; }

/* ---------- CTA ---------- */
.p-cta { padding: 0 var(--gutter) 120px; background: var(--c-bg); }
.p-cta__box {
	position: relative;
	max-width: 880px;
	min-height: 399px;
	margin: 0 auto;
	background: var(--c-text);
	overflow: hidden;
}
.p-cta__img {
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	width: 531px;
	background: center / cover no-repeat;
}
.p-cta__img::before {
	content: "";
	position: absolute;
	top: 0;
	bottom: 0;
	left: -7px;
	width: 254px;
	background: linear-gradient(to right, var(--c-text), rgba(53, 46, 46, 0));
}
.p-cta__body {
	position: relative;
	padding: 56px;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 32px;
	color: #fff;
}
.p-cta__title { font-family: var(--f-mincho); font-weight: 400; font-size: 32px; line-height: 1.6; color: var(--c-bg); }
.p-cta__text { font-size: 14px; }

/* ============================================================
   下層ページ
   ============================================================ */
.c-title--40 { font-size: 40px; letter-spacing: 1px; }
.l-container--narrow { max-width: calc(860px + var(--gutter) * 2); }

/* パンくず */
.c-breadcrumb ol { display: flex; flex-wrap: wrap; gap: 4px 0; font-size: 12px; color: var(--c-gray); letter-spacing: .5px; }
.c-breadcrumb li + li::before { content: "/"; margin: 0 .8em; color: var(--c-line); }
.c-breadcrumb a:hover { color: var(--c-text); }

/* ページ見出し */
.p-hero {
	padding: calc(var(--header-h) + 32px) 0 100px;
	background: var(--c-bg);
	border-bottom: 1px solid #eee;
	color: var(--c-black);
}
.p-hero .c-breadcrumb { margin-bottom: 72px; }
.p-hero__inner {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 460px);
	align-items: end;
	gap: 40px 64px;
}
.p-hero__title {
	margin-top: 20px;
	font-family: var(--f-mincho);
	font-weight: 400;
	font-size: 56px;
	line-height: 1.55;
	letter-spacing: 2px;
}
@media (min-width: 1025px) { .p-hero__title { white-space: nowrap; } }
@media (min-width: 1201px) and (max-width: 1440px) {
	.p-hero__inner { grid-template-columns: minmax(0, 1fr) minmax(0, 400px); gap: 40px 48px; }
	.p-hero__title { font-size: min(56px, 3.6vw); letter-spacing: 1px; }
}
.p-hero__lead { font-family: var(--f-mincho); font-size: 16px; line-height: 2; color: var(--c-text); }
.p-hero__lead p + p { margin-top: 1em; }
.p-hero__voices { font-size: 18px; line-height: 2; color: var(--c-black); }

/* 下層共通セクション */
.p-sub { background: #fff; }
.p-sub__sec { padding: 120px 0; border-bottom: 1px solid #eee; }
.p-sub__sec--tint { background: var(--c-bg); }
.p-sub__sec--first { padding-top: 100px; }
.p-sub__visual { max-width: 1200px; margin: -1px auto 0; padding: 0 var(--gutter); }
.p-sub__visual { position: relative; }
.p-sub__visual::before { content: ""; display: block; aspect-ratio: 1200 / 480; }
.p-sub__visual img { position: absolute; top: -8%; left: var(--gutter); width: calc(100% - var(--gutter) * 2); height: 116%; object-fit: cover; }
.p-sub__visual { overflow: hidden; }
.p-sub__more { margin-top: 48px; text-align: center; }
.p-sub__empty { padding: 40px 0; text-align: center; color: var(--c-gray); }
.p-sub + .l-footer, .p-sub .p-cta { margin-top: 0; }
.p-sub .p-cta { padding-top: 120px; }

/* セクション見出し（2カラム） */
.c-head {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 520px);
	align-items: end;
	gap: 32px 80px;
	margin-bottom: 64px;
}
.c-head--single { grid-template-columns: 1fr; }
.c-head .c-title { margin-top: 8px; }
.c-head__text { line-height: 2; letter-spacing: .32px; }

/* 左見出し・右本文 */
.c-split { display: grid; grid-template-columns: 460px minmax(0, 1fr); gap: 40px 100px; }
@media (min-width: 1025px) { .c-split__head .c-title { white-space: nowrap; } }
.c-split__head .c-title { margin-top: 12px; }
.c-prose { line-height: 2.1; letter-spacing: .32px; }
.c-prose p + p { margin-top: 1.5em; }
.c-prose strong { font-weight: 500; background: linear-gradient(transparent 62%, #efe9e3 62%); }
.c-prose__link { margin-top: 40px !important; }

/* テキストリンク */
.c-link {
	display: inline-flex;
	align-items: center;
	gap: 16px;
	padding-bottom: 6px;
	border-bottom: 1px solid currentColor;
	font-family: var(--f-mincho);
	font-weight: 500;
	transition: gap .3s, opacity .3s;
}
.c-link:hover { gap: 24px; opacity: .7; }

/* 番号付き行リスト */
.c-rows { border-top: 1px solid var(--c-line); }
.c-rows__item {
	display: grid;
	grid-template-columns: 120px 340px minmax(0, 1fr);
	align-items: baseline;
	gap: 16px 40px;
	padding: 36px 0;
	border-bottom: 1px solid #ddd;
}
.c-rows__num { font-family: var(--f-en); font-size: 20px; letter-spacing: 2px; color: var(--c-gray); }
.c-rows__title { font-family: var(--f-mincho); font-weight: 400; font-size: 28px; line-height: 1.6; color: var(--c-black); }
.c-rows__text { line-height: 2; }
.c-rows__more { margin-top: 20px; }

/* 表（会社情報） */
.c-table { border-top: 1px solid var(--c-line); }
.c-table > div { display: grid; grid-template-columns: 160px minmax(0, 1fr); gap: 16px; padding: 24px 0; border-bottom: 1px solid #ddd; }
.c-table dt { font-weight: 500; color: var(--c-black); }
.c-table dd { margin: 0; }

/* カードリンク */
.c-cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.c-cards a {
	position: relative;
	display: flex;
	flex-direction: column;
	height: 100%;
	padding: 36px 32px 72px;
	background: #fff;
	border: 1px solid #e3e0dc;
	transition: border-color .3s, transform .3s;
}
.c-cards a:hover { border-color: var(--c-text); transform: scale(1.02); }
.c-cards__en { font-family: var(--f-en); font-size: 13px; letter-spacing: 2px; color: var(--c-gray); }
.c-cards__title { margin-top: 12px; font-family: var(--f-mincho); font-size: 24px; line-height: 1.6; color: var(--c-black); }
.c-cards__text { margin-top: 12px; font-size: 14px; line-height: 1.9; color: #555; }
.c-cards__arrow {
	position: absolute;
	right: 28px;
	bottom: 24px;
	display: grid;
	place-items: center;
	width: 36px;
	height: 36px;
	border-radius: 50%;
	background: var(--c-btn);
	color: #fff;
	font-size: 14px;
}

.c-link-list { display: grid; grid-template-columns: repeat(2, 1fr); gap: 0 60px; border-top: 1px solid var(--c-line); }
.c-link-list li { border-bottom: 1px solid #ddd; }
.c-link-list .c-link { display: flex; justify-content: space-between; padding: 28px 0; border: 0; font-size: 18px; }

/* ダッシュ付きリスト */
.c-dash-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 32px; }
.c-dash-list li { position: relative; padding-left: 24px; line-height: 1.8; }
.c-dash-list li::before { content: ""; position: absolute; left: 0; top: .9em; width: 12px; height: 1px; background: var(--c-text); }

/* FAQ */
.c-faq { border-top: 1px solid var(--c-line); }
.c-faq__item { border-bottom: 1px solid #ddd; }
.c-faq__q {
	display: flex;
	align-items: center;
	gap: 24px;
	padding: 28px 8px;
	cursor: pointer;
	list-style: none;
	font-family: var(--f-mincho);
	font-size: 20px;
	line-height: 1.6;
	color: var(--c-black);
}
.c-faq__q::-webkit-details-marker { display: none; }
.c-faq__q-text { flex: 1; }
.c-faq__mark { flex-shrink: 0; width: 24px; font-family: var(--f-en); font-size: 22px; color: var(--c-gray); }
.c-faq__icon { position: relative; flex-shrink: 0; width: 16px; height: 16px; }
.c-faq__icon::before, .c-faq__icon::after { content: ""; position: absolute; top: 50%; left: 0; width: 16px; height: 1px; background: var(--c-text); transition: transform .3s; }
.c-faq__icon::after { transform: rotate(90deg); }
.c-faq__item[open] .c-faq__icon::after { transform: rotate(0); }
.c-faq__a { display: flex; gap: 24px; padding: 0 8px 32px; line-height: 2; }
.c-faq__a p { max-width: 820px; }

/* ---------- ABOUT ---------- */
.p-profile { display: grid; grid-template-columns: 420px minmax(0, 1fr); gap: 48px 100px; align-items: center; margin-top: 40px; }
.p-profile__img img { width: 100%; aspect-ratio: 420 / 500; object-fit: cover; }
.p-profile__name { font-family: var(--f-en); font-size: 48px; line-height: 1.2; letter-spacing: 3px; color: var(--c-black); }
.p-profile__role { margin-top: 8px; font-family: var(--f-en); font-size: 13px; letter-spacing: 2px; color: var(--c-gray); }
.p-profile__text { margin-top: 32px; line-height: 2; }
.p-profile__text p + p { margin-top: 1em; }
.p-profile__stats { display: flex; gap: 64px; margin-top: 40px; padding: 28px 0; border-top: 1px solid #ddd; border-bottom: 1px solid #ddd; }
.p-profile__stats div { display: flex; flex-direction: column-reverse; }
.p-profile__stats dt { font-family: var(--f-en); font-size: 12px; letter-spacing: 2px; color: var(--c-gray); }
.p-profile__stats dd { margin: 0; font-family: var(--f-en); font-size: 48px; line-height: 1.2; color: var(--c-black); }
.p-profile__stats dd span { font-size: 28px; margin-left: 2px; }
.p-profile__tags { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 32px; }
.p-profile__tags li { padding: 6px 16px; border: 1px solid #d5d0cb; border-radius: 999px; font-family: var(--f-en); font-size: 12px; letter-spacing: 1.5px; }

.p-focus { display: grid; grid-template-columns: repeat(2, 1fr); gap: 32px; }
.p-focus__item { padding: 48px 44px; background: #fff; border: 1px solid #eee8e2; }
.p-focus__en { font-family: var(--f-en); font-size: 13px; letter-spacing: 2px; color: var(--c-gray); }
.p-focus__title { margin-top: 12px; font-family: var(--f-mincho); font-weight: 500; font-size: 30px; line-height: 1.5; color: var(--c-black); }
.p-focus__sub { margin-top: 6px; font-size: 14px; color: var(--c-gray); }
.p-focus__text { margin-top: 24px; padding-top: 24px; border-top: 1px solid #eee; line-height: 2; }
.p-focus__note { margin-top: 40px; text-align: center; font-family: var(--f-mincho); font-size: 17px; }
.p-career { position: relative; display: grid; grid-template-columns: repeat(5, 1fr); gap: 24px; }
.p-career::before { content: ""; position: absolute; top: 6px; left: 0; right: 0; height: 1px; background: var(--c-line); }
.p-career__item { position: relative; padding-top: 36px; }
.p-career__item::before { content: ""; position: absolute; top: 0; left: 0; width: 13px; height: 13px; border-radius: 50%; background: #fff; border: 1px solid var(--c-text); }
.p-career__item.is-now::before { background: var(--c-text); }
.p-career__label { font-family: var(--f-en); font-size: 12px; letter-spacing: 1.5px; color: var(--c-gray); }
.p-career__title { margin-top: 12px; font-family: var(--f-mincho); font-weight: 500; font-size: 18px; line-height: 1.6; color: var(--c-black); }
.p-career__text { margin-top: 12px; font-size: 14px; line-height: 1.9; color: #555; }

.p-quote { display: flex; flex-direction: column; align-items: center; text-align: center; }
.p-quote__head { margin-top: 16px; font-family: var(--f-mincho); font-weight: 400; font-size: 20px; color: var(--c-gray); }
.p-quote__text { margin: 40px 0 0; font-family: var(--f-mincho); font-size: 40px; line-height: 1.7; color: var(--c-black); }
.p-quote__cite { margin: 24px 0 48px; font-size: 14px; color: var(--c-gray); }

/* ---------- SERVICE ---------- */
.p-svc-nav { margin-top: -36px; position: relative; z-index: 1; }
.p-svc-nav ul { display: grid; grid-template-columns: repeat(4, 1fr); background: #fff; border: 1px solid #e3e0dc; }
.p-svc-nav li + li { border-left: 1px solid #e3e0dc; }
.p-svc-nav a { display: flex; align-items: center; justify-content: space-between; gap: 10px; height: 72px; padding: 0 18px; font-family: var(--f-mincho); font-weight: 500; font-size: 14px; white-space: nowrap; transition: background .3s; }
.p-svc-nav a:hover { background: var(--c-bg); }
.p-svc-nav span { font-family: var(--f-en); color: var(--c-gray); }
.p-svc { scroll-margin-top: var(--header-h); }
.p-svc__inner { display: grid; grid-template-columns: 480px minmax(0, 1fr); gap: 48px 100px; }
.p-svc__num { font-family: var(--f-en); font-size: 80px; line-height: 1; color: #e6e1dc; }
.p-svc__head .c-label { margin-top: 16px; }
.p-svc__head .c-title { margin-top: 8px; }
.p-svc__img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; margin-top: 40px; }
.p-svc__body { padding-top: 24px; }
.p-svc__name { font-family: var(--f-mincho); font-weight: 500; font-size: 26px; line-height: 1.6; color: var(--c-black); }
.p-svc__text { margin-top: 24px; line-height: 2.1; letter-spacing: .32px; }
.p-svc__box { margin-top: 48px; padding: 36px 40px; background: var(--c-bg); border: 1px solid #eee8e2; }
.p-sub__sec--tint .p-svc__box { background: #fff; }
.p-svc__box .c-dash-list { grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); }
.p-svc__box-title { margin-bottom: 20px; font-family: var(--f-mincho); font-weight: 500; font-size: 18px; color: var(--c-black); }
.p-svc__flow { margin-top: 48px; }
.p-svc__flow ol { display: grid; grid-template-columns: repeat(4, 1fr); margin-top: 16px; border-top: 1px solid var(--c-line); }
.p-svc__flow li { position: relative; padding: 20px 16px 20px 0; font-family: var(--f-mincho); font-weight: 500; font-size: 15px; line-height: 1.6; }
.p-svc__flow li + li { padding-left: 16px; border-left: 1px solid #ddd; }
.p-svc__flow li span { display: block; margin-bottom: 6px; font-family: var(--f-en); font-weight: 400; font-size: 13px; color: var(--c-gray); }

.p-partners { background: var(--c-text); color: #fff; scroll-margin-top: var(--header-h); }
.p-partners .c-label, .p-partners .c-label i { color: rgba(255, 255, 255, .6); }
.p-partners .c-label i { background: rgba(255, 255, 255, .4); }
.p-partners .c-title, .p-partners .p-svc__name { color: #fff; }
.p-partners .p-svc__text { color: rgba(255, 255, 255, .85); }
.p-partners__cells { display: grid; grid-template-columns: repeat(4, 1fr); margin-top: 64px; border-top: 1px solid rgba(255, 255, 255, .25); border-bottom: 1px solid rgba(255, 255, 255, .25); }
.p-partners__cells li { padding: 28px 24px; font-family: var(--f-mincho); font-size: 20px; }
.p-partners__cells li + li { border-left: 1px solid rgba(255, 255, 255, .25); }
.p-partners__cells span { display: block; margin-bottom: 8px; font-family: var(--f-en); font-size: 13px; color: rgba(255, 255, 255, .5); }
.p-partners__quote { margin-top: 64px; text-align: center; }
.p-partners__quote blockquote { margin: 0; font-family: var(--f-mincho); font-size: 32px; line-height: 1.7; }
.p-partners__quote figcaption { margin-top: 16px; font-size: 14px; color: rgba(255, 255, 255, .6); }

.p-process { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; counter-reset: p; }
.p-process__item { padding: 32px 28px; background: #fff; border: 1px solid #eee8e2; }
.p-process__num { font-family: var(--f-en); font-size: 28px; color: #cfc8c1; }
.p-process__title { margin-top: 12px; font-family: var(--f-mincho); font-weight: 500; font-size: 20px; line-height: 1.6; color: var(--c-black); }
.p-process__text { margin-top: 10px; font-size: 14px; line-height: 1.9; color: #555; }

/* ---------- WORKS ---------- */
.p-works-list { display: grid; grid-template-columns: repeat(2, 1fr); gap: 72px 40px; }
.p-works-list__num { font-family: var(--f-en); font-size: 14px; letter-spacing: 2px; color: var(--c-gray); }
.p-works-list__img { aspect-ratio: 16 / 10; overflow: hidden; background: #ece8e4; }
.p-works-list__img img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s; }
a.p-works-list__link:hover img { transform: scale(1.04); }
.p-works-list__name { margin-top: 20px; font-family: var(--f-mincho); font-weight: 400; font-size: 24px; line-height: 1.6; color: var(--c-black); }
.p-works-list__meta { margin-top: 4px; font-family: var(--f-en); font-size: 13px; letter-spacing: 1.56px; color: var(--c-gray-light); }

.p-hero--work .c-breadcrumb { margin-bottom: 56px; }
.p-work__lead { margin-top: 20px; font-family: var(--f-mincho); font-size: 18px; line-height: 1.9; }
.p-work__info { display: flex; flex-wrap: wrap; align-items: center; gap: 16px 40px; margin-top: 28px; }
.p-work__url a { text-decoration: underline; text-underline-offset: 4px; }
.p-work__tags { display: flex; flex-wrap: wrap; gap: 8px; }
.p-work__tags li { padding: 4px 14px; border: 1px solid #d5d0cb; border-radius: 999px; font-family: var(--f-en); font-size: 12px; letter-spacing: 1px; }
.p-work__visual { margin-top: 80px; }
.p-work__visual-inner { overflow: hidden; }
.p-work__visual img { width: 100%; height: auto; transform: scale(1.14); }

.p-pager { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 24px; padding-top: 80px; padding-bottom: 80px; border-bottom: 0; font-size: 14px; }
.p-pager__next { text-align: right; }
.p-pager a:not(.c-btn):hover { opacity: .6; }

/* ---------- VOICE ---------- */
.p-voice-list { border-top: 1px solid var(--c-line); }
.p-voice-list__item { display: grid; grid-template-columns: minmax(0, 1fr); gap: 40px; padding: 56px 0; border-bottom: 1px solid #ddd; scroll-margin-top: calc(var(--header-h) + 20px); }
.p-voice-list__item.has-img { grid-template-columns: 300px minmax(0, 1fr); }
.p-voice-list__img img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; }
.p-voice-list__kind { font-family: var(--f-en); font-size: 14px; letter-spacing: 2px; color: var(--c-gray); }
.p-voice-list__quote { margin-top: 16px; font-family: var(--f-mincho); font-size: 30px; line-height: 1.7; color: var(--c-black); }
.p-voice-list__person { margin-top: 20px; font-size: 14px; color: #555; }
.p-voice-list__person span { margin-left: 1.5em; color: var(--c-gray-light); }
.p-voice-list__more { margin-top: 24px; }
.p-voice-list__more summary { display: inline-flex; align-items: center; gap: 10px; cursor: pointer; list-style: none; font-family: var(--f-mincho); font-weight: 500; border-bottom: 1px solid currentColor; padding-bottom: 4px; }
.p-voice-list__more summary::-webkit-details-marker { display: none; }
.p-voice-list__more summary::after { content: "＋"; font-size: 12px; }
.p-voice-list__more[open] summary::after { content: "－"; }
.p-voice-list__text { margin-top: 24px; padding: 32px 36px; background: var(--c-bg); line-height: 2; }
.p-voice-list__text p + p { margin-top: 1em; }

/* ---------- FAQ ---------- */
.p-faq-group + .p-faq-group { margin-top: 80px; }
.p-faq-group__title { margin-bottom: 24px; font-family: var(--f-mincho); font-weight: 500; font-size: 24px; color: var(--c-black); }

/* ---------- CONTACT ---------- */
.p-form__intro { max-width: 900px; }
.p-form__intro .c-title { margin: 12px 0 24px; }
.p-form__intro p { line-height: 2; }
.p-form__note { margin-top: 20px; font-size: 14px; color: var(--c-gray); }
.p-form__steps { display: flex; gap: 8px; margin: 56px 0 24px; font-size: 13px; }
.p-form__steps li { padding: 6px 20px; border-radius: 999px; background: #ece8e4; color: var(--c-gray); }
.p-form__steps li.is-current { background: var(--c-text); color: #fff; }
.p-form { margin-top: 48px; padding: 64px; background: #fff; border: 1px solid #eee8e2; }
.p-form__row { display: grid; grid-template-columns: 220px minmax(0, 600px); gap: 12px 40px; margin: 0; padding: 28px 0; border: 0; border-bottom: 1px solid #eee; min-width: 0; }
.p-form__row > :not(.p-form__label) { grid-column: 2; }
fieldset.p-form__row { padding-left: 0; padding-right: 0; }
.p-form__label { display: flex; align-items: center; gap: 10px; padding: 12px 0 0; float: left; font-weight: 500; color: var(--c-black); align-self: start; }
fieldset .p-form__label { grid-row: 1 / span 2; }
.p-form__req, .p-form__any { padding: 2px 8px; border-radius: 3px; font-size: 11px; font-weight: 500; line-height: 1.6; }
.p-form__req { background: var(--c-text); color: #fff; }
.p-form__any { background: #ece8e4; color: var(--c-gray); }
.p-form__input {
	width: 100%;
	padding: 14px 16px;
	border: 1px solid #ccc;
	border-radius: 0;
	background: #fff;
	font: inherit;
	font-size: 16px;
	color: var(--c-text);
	transition: border-color .3s;
}
.p-form__input::placeholder { color: #aaa; }
.p-form__input:focus { outline: none; border-color: var(--c-text); }
.p-form__textarea { min-height: 200px; resize: vertical; line-height: 1.8; }
.p-form__select { position: relative; }
.p-form__select::after { content: ""; position: absolute; right: 18px; top: 50%; width: 8px; height: 8px; border-right: 1px solid var(--c-text); border-bottom: 1px solid var(--c-text); transform: translateY(-70%) rotate(45deg); pointer-events: none; }
.p-form__select select { appearance: none; -webkit-appearance: none; padding-right: 44px; }
.p-form__help { font-size: 13px; color: var(--c-gray); }
.p-form__choices { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 24px; padding-top: 12px; }
.p-form__choice { display: inline-flex; align-items: flex-start; gap: 10px; cursor: pointer; line-height: 1.6; }
.p-form__choice input { flex-shrink: 0; width: 18px; height: 18px; margin: 3px 0 0; accent-color: var(--c-text); }
.p-form__choice a { text-decoration: underline; text-underline-offset: 3px; }
.p-form__agree { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 10px; margin-top: 48px; }
.p-form__agree .p-form__error { flex-basis: 100%; text-align: center; }
.p-form__error { margin-top: 4px; font-size: 14px; color: #b3261e; }
.p-form > .p-form__error { margin-bottom: 24px; padding: 16px; background: #fbeeed; }
.p-form__actions { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 24px 40px; margin-top: 40px; }
.p-form__submit { min-width: 320px; padding: 20px 48px; cursor: pointer; font-family: inherit; font-size: 16px; }
.p-form__back { border: 0; background: none; cursor: pointer; color: var(--c-gray); text-decoration: underline; text-underline-offset: 4px; }
.p-form__hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.p-form__confirm > div { display: grid; grid-template-columns: 220px minmax(0, 1fr); gap: 12px 40px; padding: 24px 0; border-bottom: 1px solid #eee; }
.p-form__confirm dt { font-weight: 500; color: var(--c-black); }
.p-form__confirm dd { margin: 0; line-height: 1.9; word-break: break-all; }
.p-form__done { max-width: 760px; margin: 0 auto; padding: 40px 0; text-align: center; display: flex; flex-direction: column; align-items: center; gap: 24px; }
.p-form__done p { line-height: 2; }

/* ---------- COLUMN ---------- */
.p-cat-nav { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 56px; }
.p-cat-nav a { display: block; padding: 8px 20px; border: 1px solid #d5d0cb; border-radius: 999px; font-size: 14px; transition: background .3s, color .3s; }
.p-cat-nav a:hover, .p-cat-nav a.is-current { background: var(--c-text); border-color: var(--c-text); color: #fff; }
.p-post-list { display: grid; grid-template-columns: repeat(3, 1fr); gap: 64px 40px; }
.p-post-list__img { aspect-ratio: 4 / 3; overflow: hidden; background: #ece8e4; }
.p-post-list__img img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s; }
.p-post-list__item a:hover img { transform: scale(1.04); }
.p-post-list__noimg { display: grid; place-items: center; height: 100%; font-family: var(--f-en); letter-spacing: 2px; color: #b5aea7; }
.p-post-list__text { padding: 20px 8px 0; }
.p-post-list__meta { display: flex; gap: 16px; font-size: 13px; color: var(--c-gray); }
.p-post-list__meta span { font-family: var(--f-en); letter-spacing: 1px; }
.p-post-list__title { margin-top: 10px; font-weight: 500; font-size: 16px; line-height: 1.8; color: var(--c-black); }
.c-pagination { display: flex; justify-content: center; gap: 8px; margin-top: 80px; font-family: var(--f-en); }
.c-pagination .page-numbers { display: grid; place-items: center; min-width: 44px; height: 44px; padding: 0 8px; border: 1px solid #ddd; border-radius: 999px; }
.c-pagination .current { background: var(--c-text); border-color: var(--c-text); color: #fff; }

.p-article__head { padding-top: calc(var(--header-h) + 32px); max-width: calc(860px + var(--gutter) * 2); }
.p-article__head .c-breadcrumb { margin-bottom: 64px; }
.p-article__meta { display: flex; gap: 20px; font-size: 14px; color: var(--c-gray); }
.p-article__meta a { text-decoration: underline; text-underline-offset: 3px; }
.p-article__title { margin-top: 16px; font-family: var(--f-mincho); font-weight: 500; font-size: 36px; line-height: 1.6; color: var(--c-black); }
.p-article__thumb { max-width: 1000px; margin: 56px auto 0; padding: 0 var(--gutter); }
.p-article__thumb img { width: 100%; height: auto; }
.p-article__body { max-width: calc(860px + var(--gutter) * 2); margin: 0 auto; padding: 64px var(--gutter) 40px; }

/* 本文（エディタで書いた内容） */
.p-entry__body { line-height: 2; letter-spacing: .32px; }
.p-entry__body > * + * { margin-top: 1.6em; }
.p-entry__body h2 { margin-top: 2.8em; padding-bottom: 12px; border-bottom: 1px solid var(--c-line); font-family: var(--f-mincho); font-weight: 500; font-size: 26px; line-height: 1.6; color: var(--c-black); }
.p-entry__body h3 { margin-top: 2.2em; padding-left: 14px; border-left: 3px solid var(--c-text); font-family: var(--f-mincho); font-weight: 500; font-size: 21px; line-height: 1.6; color: var(--c-black); }
.p-entry__body h4 { margin-top: 2em; font-weight: 500; font-size: 17px; }
.p-entry__body ul { padding-left: 1.4em; list-style: disc; }
.p-entry__body ol { padding-left: 1.6em; list-style: decimal; }
.p-entry__body a { text-decoration: underline; text-underline-offset: 3px; }
.p-entry__body blockquote { margin-left: 0; margin-right: 0; padding: 24px 28px; background: var(--c-bg); border-left: 3px solid var(--c-line); }
.p-entry__body figure img, .p-entry__body > img { margin: 0 auto; }
.p-entry__body figcaption { margin-top: 8px; font-size: 13px; color: var(--c-gray); text-align: center; }
.p-entry__body table { width: 100%; border-collapse: collapse; }
.p-entry__body th, .p-entry__body td { padding: 12px 16px; border: 1px solid #ddd; text-align: left; }
.p-entry__body th { background: var(--c-bg); font-weight: 500; }

/* ============================================================
   Responsive
   ============================================================ */
@media (max-width: 1200px) {
	:root { --gutter: 60px; }
	.p-hero__inner { grid-template-columns: minmax(0, 1fr) minmax(0, 400px); gap: 40px 48px; }
	.p-hero__title { font-size: 44px; }
	.l-header__nav { gap: 32px; }
	.l-header__menu { gap: 18px; font-size: 14px; }
	.p-fv__contact { left: auto; right: 40px; }
	.p-fv__news { width: calc(100% - 120px); padding-left: 40px; }
	.p-fv__news-more { margin-right: 0; }
	.p-voice__inner { flex-direction: column; align-items: flex-start; }
	.c-split { grid-template-columns: 400px minmax(0, 1fr); gap: 40px 56px; }
	.c-title--40 { font-size: 34px; }
	.p-svc__inner { grid-template-columns: 400px minmax(0, 1fr); gap: 48px 64px; }
	.p-profile { grid-template-columns: 360px minmax(0, 1fr); gap: 48px 64px; }
}

@media (max-width: 1024px) {
	:root { --header-h: 64px; --gutter: 32px; }
	.l-header__inner { padding: 0 20px; }
	.l-header__logo img { width: 180px; }
	.l-header__toggle {
		display: block;
		position: relative;
		z-index: 2;
		width: 44px;
		height: 44px;
		border: 0;
		background: none;
		cursor: pointer;
	}
	.l-header__toggle span:not(.u-sr) {
		position: absolute;
		left: 10px;
		width: 24px;
		height: 1px;
		background: var(--c-text);
		transition: transform .3s, top .3s;
	}
	.l-header__toggle span:nth-child(1) { top: 18px; }
	.l-header__toggle span:nth-child(2) { top: 26px; }
	.is-nav-open .l-header__toggle span:nth-child(1) { top: 22px; transform: rotate(45deg); }
	.is-nav-open .l-header__toggle span:nth-child(2) { top: 22px; transform: rotate(-45deg); }
	.l-header__nav {
		position: fixed;
		inset: 0;
		flex-direction: column;
		justify-content: center;
		gap: 40px;
		background: #fff;
		opacity: 0;
		visibility: hidden;
		transition: opacity .3s, visibility .3s;
	}
	.is-nav-open .l-header__nav { opacity: 1; visibility: visible; }
	.l-header__menu { flex-direction: column; align-items: center; gap: 24px; font-size: 16px; }

	.c-title--56 { font-size: 40px; }
	.c-title--48 { font-size: 36px; }

	.p-fv { height: auto; min-height: 760px; padding: calc(var(--header-h) + 60px) var(--gutter) 200px; }
	.p-fv__box { position: relative; left: auto; top: auto; width: auto; max-width: 560px; padding: 48px; }
	.p-fv__title { font-size: 40px; }
	.p-fv__contact { bottom: 140px; width: 150px; height: 150px; }
	.is-past-fv .p-fv__contact { bottom: 24px; }
	.p-fv__contact-ja { font-size: 20px; }
	.p-fv__contact-sub { font-size: 12px; }

	.p-message__inner { flex-direction: column; gap: 48px; }
	.p-message__box { padding: 64px 40px; }
	.p-message__body { width: 100%; max-width: 560px; gap: 32px; }
	.p-message__title { font-size: 36px; }

	.p-service__list { grid-template-columns: 1fr; max-width: 480px; margin-inline: auto; }
	.p-works__head { flex-direction: column; align-items: flex-start; }
	.p-works__list { gap: 40px 24px; margin-top: 48px; }
	.p-approach__list { grid-template-columns: 1fr; }
	.p-approach__item { min-height: 0; }
	.p-approach__item + .p-approach__item { border-left: 0; }
	.p-about__inner { flex-direction: column; align-items: flex-start; gap: 48px; }
	.p-about__img { width: 100%; max-width: 495px; }
	.p-band { height: 50vw; }
	.p-voice__list { grid-template-columns: repeat(2, 1fr); width: 100%; }
	.p-column__list { grid-template-columns: 1fr; max-width: 480px; margin-inline: auto; gap: 40px; }
	.l-footer__inner { grid-template-columns: 1fr; row-gap: 40px; }
	.l-footer__nav ul { justify-content: flex-start; gap: 16px 28px; }

	.p-hero { padding-bottom: 72px; }
	.p-hero .c-breadcrumb { margin-bottom: 48px; }
	.p-hero__inner, .c-head { grid-template-columns: 1fr; }
	.p-hero__title { font-size: 44px; }
	.c-title--40 { font-size: 32px; }
	.p-sub__sec { padding: 96px 0; }
	.c-split, .p-svc__inner, .p-profile { grid-template-columns: 1fr; }
	.p-svc__head { max-width: 560px; }
	.p-profile__img { max-width: 420px; }
	.c-rows__item { grid-template-columns: 80px minmax(0, 1fr); }
	.c-rows__text { grid-column: 2; }
	.p-career { grid-template-columns: 1fr; gap: 0; }
	.p-career::before { top: 0; bottom: 0; left: 6px; right: auto; width: 1px; height: auto; }
	.p-career__item { padding: 0 0 40px 40px; }
	.p-svc-nav ul { grid-template-columns: repeat(2, 1fr); }
	.p-svc-nav li:nth-child(3) { border-left: 0; }
	.p-svc-nav li:nth-child(n+3) { border-top: 1px solid #e3e0dc; }
	.p-process { grid-template-columns: repeat(2, 1fr); }
	.p-focus { grid-template-columns: 1fr; }
	.c-cards { grid-template-columns: 1fr; }
	.p-post-list { grid-template-columns: repeat(2, 1fr); }
	.p-form { padding: 40px; }
	.p-form__row, .p-form__confirm > div { grid-template-columns: 1fr; }
	.p-form__row > :not(.p-form__label) { grid-column: 1; }
	fieldset .p-form__label { grid-row: auto; }
	.p-form__label { float: none; padding-top: 0; }
}

@media (max-width: 767px) {
	:root { --gutter: 20px; }
	body { font-size: 15px; }
	.c-title--56 { font-size: 30px; }
	.c-title--48 { font-size: 28px; letter-spacing: 1px; }
	.c-label--lg { font-size: 16px; gap: 16px; }

	.p-fv { padding-bottom: 260px; }
	.p-fv__box { padding: 32px 24px; gap: 32px; }
	.p-fv__title { font-size: 28px; }
	.p-fv__lead { margin-top: -12px; font-size: 14px; }
	.p-fv__contact { right: 16px; bottom: 150px; width: 104px; height: 104px; }
	.is-past-fv .p-fv__contact { bottom: 16px; }
	.p-fv__contact-en { font-size: 14px; }
	.p-fv__contact-ja { font-size: 16px; }
	.p-fv__contact-sub { display: none; }
	.p-fv__news {
		left: var(--gutter);
		right: var(--gutter);
		bottom: 24px;
		width: auto;
		height: auto;
		padding: 16px;
		flex-wrap: wrap;
		gap: 4px 16px;
	}
	.p-fv__news-label, .p-fv__news-date { width: auto; }
	.p-fv__news-title { flex-basis: 100%; white-space: normal; }
	.p-fv__news-more { margin-left: auto; }

	.p-message { padding: 64px var(--gutter); }
	.p-message__box { padding: 48px 24px; }
	.p-message__img { width: 100%; height: auto; aspect-ratio: 360 / 366; }
	.p-message__title { font-size: 28px; }
	.p-message__text { font-size: 15px; }

	.p-service, .p-works, .p-about, .p-voice { padding: 80px 0; }
	.p-service__head { text-align: left; align-items: flex-start; }
	.p-service__name { font-size: 20px; }
	.p-works__list { grid-template-columns: 1fr; }
	.p-works__name { font-size: 20px; }
	.p-works__meta { font-size: 13px; }
	.p-approach__title { font-size: 20px; }
	.p-about__text { margin: 32px 0; }
	.p-voice__quote { margin-top: 32px; font-size: 20px; }
	.p-voice__text { margin: 32px 0; }
	.p-voice__list { gap: 24px 12px; }
	.p-column { padding-bottom: 80px; }
	.p-cta { padding-bottom: 80px; }
	.p-cta__img { width: 100%; opacity: .35; }
	.p-cta__img::before { display: none; }
	.p-cta__body { padding: 40px 24px; }
	.p-cta__title { font-size: 24px; }
	.p-cta__text br { display: none; }

	.p-hero { padding: calc(var(--header-h) + 20px) 0 56px; }
	.p-hero .c-breadcrumb { margin-bottom: 36px; }
	.p-hero__title { font-size: 30px; letter-spacing: 1px; }
	.p-hero__lead { font-size: 15px; }
	.p-hero__voices { font-size: 16px; }
	.c-title--40 { font-size: 26px; }
	.p-sub__sec { padding: 72px 0; }
	.p-sub__sec--first { padding-top: 56px; }
	.p-sub .p-cta { padding-top: 72px; }
	.c-head { margin-bottom: 40px; }
	.c-rows__item { grid-template-columns: 1fr; gap: 8px; padding: 28px 0; }
	.c-rows__text { grid-column: 1; }
	.c-rows__num { font-size: 16px; }
	.c-rows__title { font-size: 22px; }
	.c-table > div { grid-template-columns: 1fr; gap: 4px; padding: 18px 0; }
	.c-link-list { grid-template-columns: 1fr; }
	.c-link-list .c-link { font-size: 16px; padding: 22px 0; }
	.c-dash-list { grid-template-columns: 1fr; }
	.c-faq__q { gap: 14px; padding: 22px 0; font-size: 16px; }
	.c-faq__a { gap: 14px; padding: 0 0 24px; }
	.c-cards a { padding: 28px 24px 64px; }
	.c-cards__title { font-size: 20px; }
	.p-profile__name { font-size: 36px; }
	.p-profile__stats { gap: 40px; }
	.p-profile__stats dd { font-size: 40px; }
	.p-quote__text { font-size: 24px; }
	.p-focus__item { padding: 32px 24px; }
	.p-focus__title { font-size: 24px; }
	.p-focus__note { text-align: left; font-size: 15px; }
	.p-quote__text br { display: none; }
	.p-svc-nav { margin-top: 0; padding-top: 24px; }
	.p-svc-nav ul { grid-template-columns: 1fr; }
	.p-svc-nav li + li { border-left: 0; border-top: 1px solid #e3e0dc; }
	.p-svc-nav a { height: 56px; white-space: normal; }
	.p-svc__num { font-size: 56px; }
	.p-svc__name { font-size: 21px; }
	.p-svc__box { padding: 24px 20px; margin-top: 32px; }
	.p-svc__flow ol { grid-template-columns: repeat(2, 1fr); }
	.p-svc__flow li:nth-child(3) { padding-left: 0; border-left: 0; }
	.p-svc__flow li:nth-child(n+3) { border-top: 1px solid #ddd; }
	.p-partners__cells { grid-template-columns: repeat(2, 1fr); margin-top: 40px; }
	.p-partners__cells li { padding: 20px 16px; font-size: 17px; }
	.p-partners__cells li:nth-child(3) { border-left: 0; }
	.p-partners__cells li:nth-child(n+3) { border-top: 1px solid rgba(255, 255, 255, .25); }
	.p-partners__quote blockquote { font-size: 22px; }
	.p-process { grid-template-columns: 1fr; gap: 12px; }
	.p-process__item { display: grid; grid-template-columns: 48px minmax(0, 1fr); gap: 4px 12px; padding: 20px; }
	.p-process__num { grid-row: 1 / span 2; font-size: 22px; }
	.p-process__title { margin-top: 0; font-size: 17px; }
	.p-process__text { margin-top: 0; }
	.p-works-list { grid-template-columns: 1fr; gap: 48px; }
	.p-works-list__name { font-size: 20px; }
	.p-work__lead { font-size: 16px; }
	.p-work__visual { margin-top: 48px; }
	.p-pager { grid-template-columns: 1fr 1fr; padding-top: 56px; padding-bottom: 56px; }
	.p-pager .c-btn { grid-column: 1 / -1; grid-row: 2; justify-self: center; }
	.p-voice-list__item, .p-voice-list__item.has-img { grid-template-columns: 1fr; gap: 24px; padding: 40px 0; }
	.p-voice-list__quote { font-size: 21px; }
	.p-voice-list__text { padding: 20px; }
	.p-faq-group + .p-faq-group { margin-top: 56px; }
	.p-faq-group__title { font-size: 20px; }
	.p-form { padding: 28px 20px; }
	.p-form__choices { grid-template-columns: 1fr; }
	.p-form__submit { min-width: 0; width: 100%; }
	.p-post-list { grid-template-columns: 1fr; gap: 40px; }
	.p-article__title { font-size: 26px; }
	.p-article__head .c-breadcrumb { margin-bottom: 40px; }
	.p-article__body { padding-top: 40px; }
	.p-entry__body h2 { font-size: 21px; }
	.p-entry__body h3 { font-size: 18px; }
}

/* ============================================================
   パララックス・ローディング
   ============================================================ */
[data-parallax] { will-change: transform; }

.c-loader {
	position: fixed;
	inset: 0;
	z-index: 1000;
	display: none;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 28px;
	background: var(--c-text);
	transition: opacity .7s ease, visibility .7s;
}
.js .c-loader { display: flex; }
.js.is-loader-skip .c-loader { display: none; }
.c-loader__logo {
	width: 240px;
	clip-path: inset(0 100% 0 0);
	animation: md-reveal 1s cubic-bezier(.65, 0, .35, 1) .15s forwards;
}
.c-loader__bar { position: relative; width: 120px; height: 1px; background: rgba(255, 255, 255, .2); overflow: hidden; }
.c-loader__bar::after {
	content: "";
	position: absolute;
	inset: 0;
	background: #fff;
	transform: scaleX(0);
	transform-origin: left;
	animation: md-bar 1.2s cubic-bezier(.65, 0, .35, 1) .3s forwards;
}
.is-loaded .c-loader { opacity: 0; visibility: hidden; }
@keyframes md-reveal { to { clip-path: inset(0 0 0 0); } }
@keyframes md-bar { to { transform: scaleX(1); } }

/* ローディング後のFV登場 */
.js .p-fv__box, .js .p-fv__contact, .js .p-fv__news { opacity: 0; transform: translateY(24px); }
.is-loaded .p-fv__box, .is-loaded .p-fv__contact, .is-loaded .p-fv__news {
	opacity: 1;
	transform: none;
	transition: opacity 1s ease, transform 1s cubic-bezier(.2, .7, .2, 1), bottom .3s, visibility .3s;
}
.is-loaded .p-fv__box { transition-delay: .25s; }
.is-loaded .p-fv__news { transition-delay: .5s; }
.is-loaded .p-fv__contact { transition-delay: .7s, .7s, 0s, 0s; }
.is-loaded .p-fv__contact.is-hidden { opacity: 0; }
.is-ready .p-fv__contact { transition-delay: 0s !important; }
.is-loaded .p-fv__contact:hover { transform: scale(1.04); transition-delay: 0s; }

@media (prefers-reduced-motion: reduce) {
	.c-loader { display: none !important; }
	.js .p-fv__box, .js .p-fv__contact, .js .p-fv__news { opacity: 1; transform: none; }
	[data-parallax] { transform: none !important; }
}

/* ページ遷移の幕（2枚の幕が少しずれて重なる） */
.c-pt { position: fixed; inset: 0; z-index: 1001; pointer-events: none; overflow: hidden; }
.c-pt__layer { position: absolute; inset: 0; transform: translateY(100%); }
.c-pt__layer--1 { background: #d9cfc4; }
.c-pt__layer--2 { background: var(--c-text); }
.pt-enter .c-pt__layer--2 { animation: md-pt-out .9s cubic-bezier(.76, 0, .24, 1) .1s both; }
.pt-enter .c-pt__layer--1 { animation: md-pt-out .9s cubic-bezier(.76, 0, .24, 1) .22s both; }
.pt-leave .c-pt { pointer-events: auto; }
.pt-leave .c-pt__layer--1 { animation: md-pt-in .6s cubic-bezier(.76, 0, .24, 1) both; }
.pt-leave .c-pt__layer--2 { animation: md-pt-in .6s cubic-bezier(.76, 0, .24, 1) .12s both; }
@keyframes md-pt-out { from { transform: translateY(0); } to { transform: translateY(-100%); } }
@keyframes md-pt-in { from { transform: translateY(100%); } to { transform: translateY(0); } }
@keyframes md-fade-in { from { opacity: 0; } to { opacity: 1; } }
@keyframes md-fade-out { from { opacity: 1; } to { opacity: 0; } }
/* 幕が上がったあと、見出しがふわっと出る */
.pt-enter .p-hero .l-container, .pt-enter .p-article__head { animation: md-rise 1s cubic-bezier(.2, .7, .2, 1) .55s both; }
@keyframes md-rise { from { opacity: 0; transform: translateY(24px); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) {
	.c-pt { display: none; }
	.pt-enter .p-hero .l-container, .pt-enter .p-article__head { animation: none; }
}

/* お客様の声 詳細 */
.p-voice-list__link { margin-top: 24px; }
.p-voice-single__kind { font-family: var(--f-en); letter-spacing: 2px; }
.p-voice-single__person { margin-top: 16px; font-size: 14px; color: #555; }
.p-voice-single__person span { margin-left: 1.5em; color: var(--c-gray-light); }

.p-voice-body > p + p { margin-top: .4em; }
.p-voice-body .p-voice-q, .p-voice-list__text .p-voice-q { margin-top: 2.4em; padding-left: 0; border-left: 0; font-size: 18px; color: var(--c-black); }
.p-voice-body > .p-voice-q:first-child { margin-top: 0; }
.p-voice-list__text .p-voice-q { font-family: var(--f-mincho); font-weight: 500; }
.p-voice-reply { margin-top: 3.2em; padding: 40px 44px; background: var(--c-bg); line-height: 2; }
.p-voice-reply p { margin: 0; }
.p-voice-reply p + p { margin-top: .4em; }
.p-voice-reply__label { font-family: var(--f-mincho); font-weight: 500; font-size: 18px; color: var(--c-black); margin-bottom: 1em !important; }
.p-voice-list__more .p-voice-reply { margin-top: 20px; padding: 28px 32px; }
@media (max-width: 767px) { .p-voice-reply { padding: 28px 22px; } }

/* お問い合わせ：電話 */
.p-tel { margin-top: 48px; padding: 40px 64px; background: #fff; border: 1px solid #eee8e2; line-height: 2; }
.p-tel__title { font-family: var(--f-mincho); font-weight: 500; font-size: 18px; color: var(--c-black); }
.p-tel__num { margin-top: 4px; font-family: var(--f-en); font-size: 32px; letter-spacing: 2px; line-height: 1.5; color: var(--c-black); }
.p-tel__num a { color: inherit; }
.p-tel__hours { margin-bottom: 16px; font-size: 14px; }
.p-tel__note { margin-top: 12px; font-size: 14px; color: var(--c-gray); }
@media (min-width: 768px) { .p-tel__num a { pointer-events: none; } }
@media (max-width: 767px) { .p-tel { padding: 28px 22px; } .p-tel__num { font-size: 28px; } }

.p-tel__num a { display: inline-flex; align-items: center; gap: 10px; }
.p-tel__icon { display: inline-flex; color: var(--c-black); flex-shrink: 0; }
@media (max-width: 767px) { .p-tel__icon svg { width: 19px; height: 19px; } }

/* お知らせ一覧 */
.p-news-list { border-top: 1px solid var(--c-line); }
.p-news-list__item { display: grid; grid-template-columns: 140px minmax(0, 1fr); gap: 24px; padding: 32px 0; border-bottom: 1px solid #ddd; scroll-margin-top: calc(var(--header-h) + 20px); }
.p-news-list__date { font-family: var(--f-en); letter-spacing: 1px; color: var(--c-gray); padding-top: 2px; }
.p-news-list__title { font-family: var(--f-mincho); font-weight: 500; font-size: 18px; line-height: 1.8; color: var(--c-black); }
.p-news-list__text { margin-top: 12px; font-size: 15px; }
@media (max-width: 767px) { .p-news-list__item { grid-template-columns: 1fr; gap: 6px; padding: 24px 0; } }

/* 実績タイトル：まとまりごとに折り返す */
.p-hero__title--work { white-space: normal; word-break: keep-all; line-break: strict; }
.p-hero__title--work .u-phrase { display: inline-block; max-width: 100%; overflow-wrap: anywhere; }
@media (min-width: 1025px) { .p-hero__title--work { font-size: min(48px, 3.4vw); } }
@media (max-width: 600px) { .p-hero__title--work { font-size: 26px; line-height: 1.6; } }

/* 記事内の図解（テキスト） */
.p-entry__body .c-flow, .p-entry__body .c-check, .p-entry__body .c-points { margin: 40px 0; padding: 32px 32px 36px; background: #f4efe9; border-radius: 12px; }
.p-entry__body .c-flow__ttl, .p-entry__body .c-check__ttl, .p-entry__body .c-points__ttl { margin: 0 0 22px; text-align: center; font-family: var(--f-mincho); font-weight: 700; font-size: 20px; letter-spacing: 1px; color: var(--c-black); }
.p-entry__body .c-flow ol, .p-entry__body .c-check ul, .p-entry__body .c-points ol { margin: 0; padding: 0; list-style: none; }
.p-entry__body .c-flow li, .p-entry__body .c-check li, .p-entry__body .c-points li { margin: 0; padding: 0; }
.p-entry__body .c-flow li::before, .p-entry__body .c-check li::before, .p-entry__body .c-points li::before { content: none; }
.p-entry__body .c-flow ol { display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; }
.p-entry__body .c-flow li { position: relative; padding: 22px 16px; background: #fff; border-radius: 10px; text-align: center; }
.p-entry__body .c-flow li + li::after { content: "→"; position: absolute; left: -22px; top: 50%; transform: translateY(-50%); color: #b5aaa0; }
.p-entry__body .c-flow li.is-on { background: var(--c-text); color: #fff; }
.p-entry__body .c-flow b { display: block; font-family: var(--f-en); font-weight: 400; letter-spacing: 2px; color: #a49a92; }
.p-entry__body .c-flow strong { display: block; margin-top: 6px; font-size: 16px; line-height: 1.6; }
.p-entry__body .c-flow span { display: block; margin-top: 6px; font-size: 13px; line-height: 1.7; opacity: .8; }
.p-entry__body .c-check ul { padding: 8px 24px; background: #fff; border-radius: 10px; }
.p-entry__body .c-check li { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 14px; padding: 14px 0 14px 36px; border-bottom: 1px dashed #d8cfc6; position: relative; }
.p-entry__body .c-check li:last-child { border-bottom: 0; }
.p-entry__body .c-check li::after { content: "✓"; position: absolute; left: 0; top: 13px; width: 24px; height: 24px; border: 1.5px solid var(--c-text); border-radius: 50%; display: grid; place-items: center; font-size: 13px; line-height: 1; }
.p-entry__body .c-check strong { font-size: 16px; }
.p-entry__body .c-check span { font-size: 14px; color: var(--c-gray); }
.p-entry__body .c-points ol { display: grid; grid-template-columns: repeat(5, 1fr); gap: 12px; counter-reset: pt; }
.p-entry__body .c-points li { counter-increment: pt; padding: 20px 10px; background: #fff; border-radius: 10px; text-align: center; }
.p-entry__body .c-points li::after { content: counter(pt); display: block; order: -1; }
.p-entry__body .c-points li { display: flex; flex-direction: column; }
.p-entry__body .c-points li::after { font-family: var(--f-en); font-size: 26px; color: #c4b7ab; margin-bottom: 6px; }
.p-entry__body .c-points strong { font-size: 15px; line-height: 1.6; }
.p-entry__body .c-points span { margin-top: 6px; font-size: 12px; line-height: 1.7; color: var(--c-gray); }
@media (max-width: 767px) {
	.p-entry__body .c-flow, .p-entry__body .c-check, .p-entry__body .c-points { padding: 24px 16px 26px; }
	.p-entry__body .c-flow ol { grid-template-columns: 1fr; gap: 26px; }
	.p-entry__body .c-flow li + li::after { content: "↓"; left: 50%; top: -22px; transform: translateX(-50%); }
	.p-entry__body .c-check ul { padding: 4px 16px; }
	.p-entry__body .c-points ol { grid-template-columns: 1fr; }
	.p-entry__body .c-points li { flex-direction: row; align-items: baseline; gap: 12px; text-align: left; padding: 14px 16px; }
	.p-entry__body .c-points li::after { margin: 0; font-size: 20px; }
}
.p-entry__body .c-flow, .p-entry__body .c-check, .p-entry__body .c-points { word-break: auto-phrase; }
.p-entry__body .c-check span { line-height: 1.7; }
@media (max-width: 767px) { .p-entry__body .c-points strong { flex-shrink: 0; } .p-entry__body .c-flow__ttl, .p-entry__body .c-check__ttl, .p-entry__body .c-points__ttl { font-size: 18px; } }
@media (max-width: 767px) { .l-header__logo img { width: 64px; } .l-footer__logo img { width: 200px; } }
