/* ==========================================================================
   下層ページ（Figma「デザイン案｜下層」）
   トークン・ボタン・テクスチャなどは main.css のものを使う
   ========================================================================== */

/* 回り続ける円（線自体に濃淡のグラデーションがあるので、マスクは付けない） */
.is-spinning {
	animation: makotomedical-rotate var(--rotate-duration, 60s) linear infinite;
}

.is-spinning--reverse {
	--rotate-duration: 80s;
	animation-direction: reverse;
}

@media (prefers-reduced-motion: reduce) {
	.is-spinning {
		animation: none;
	}
}

/* 共通の入れ物・見出し */
.sub-inner {
	position: relative;
	max-width: 1120px;
	margin: 0 auto;
}

.rule--bold-accent {
	width: 36px;
	height: 2px;
	background: var(--color-accent);
}

.sub-heading {
	margin-top: 30px;
	font-family: var(--font-serif);
	font-size: 32px;
	font-weight: 400;
	line-height: 1.68;
	letter-spacing: 0.04em;
}

.sub-heading--30 {
	margin-top: 28px;
	font-size: 30px;
	line-height: 1.65;
}

.sub-text {
	color: var(--color-text);
	font-size: 15px;
	line-height: 2.05;
	letter-spacing: 0.02em;
}

.sub-note {
	margin-top: 40px;
	color: var(--color-text);
	font-size: 14px;
	line-height: 2.05;
	letter-spacing: 0.02em;
}

.chip {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 120px;
	height: 32px;
	padding: 0 14px;
	border: 1px solid var(--color-line);
	border-radius: 2px;
	background: var(--color-base);
	color: var(--color-text);
	font-size: 12px;
	font-weight: 500;
	line-height: 1;
	letter-spacing: 0.02em;
	white-space: nowrap;
}

/* ==========================================================================
   ページタイトル帯
   ========================================================================== */
.page-title {
	position: relative;
	z-index: 1;
	padding: 120px var(--gutter);
	background: var(--color-base);
	overflow-x: clip;
}

.page-title__wash {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	z-index: -2;
	/* 帯の高さに合わせ、下のセクションにはみ出さないようにする */
	height: 100%;
	background: linear-gradient(90deg, rgba(246, 226, 218, 0) 0%, rgba(246, 226, 218, 0.35) 55%, rgba(246, 226, 218, 0.55) 100%);
}

.page-title__wash::before,
.page-title__wash::after {
	content: "";
	position: absolute;
	inset: 0;
}

.page-title__wash::before {
	background: url("../images/texture-paper.png") 0 0 / 480px 480px;
	opacity: 0.55;
}

.page-title__wash::after {
	background: url("../images/texture-noise.png") 0 0 / 200px 200px;
	opacity: 0.12;
}

.page-title__arc {
	position: absolute;
	z-index: -1;
	max-width: none;
	pointer-events: none;
}

/* 1440px 幅のデザインで左から 960px などの位置を、中央からの距離で置く */
.page-title__arc--520 {
	top: -140px;
	left: calc(50% + 240px);
	width: 520px;
	height: 520px;
}

.page-title__arc--700 {
	top: -230px;
	left: calc(50% + 150px);
	width: 700px;
	height: 700px;
}

.page-title__arc--420 {
	top: 120px;
	left: calc(50% + 130px);
	width: 420px;
	height: 420px;
}

/*
 * 420 の円弧に乗った点。円弧と一緒に回して、回っていることが分かるようにする。
 * 520 の円弧は大半が画面の外にあり点が見えない時間が長いため、全周が見える 420 に乗せる。
 * 始点は Figma の点の位置（左上）にいちばん近い円周上の点。
 */
.page-title__arc--420 img {
	display: block;
	width: 100%;
	height: 100%;
}

.page-title__arc--420 .page-title__dot {
	position: absolute;
	top: calc(4.6% - 3.5px);
	left: calc(29% - 3.5px);
	width: 7px;
	height: 7px;
}

.page-title__inner {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	max-width: 1120px;
	margin: 0 auto;
}

.page-title__rule {
	display: block;
	width: 40px;
	height: 2px;
	margin-bottom: 28px;
	background: var(--color-line);
}

.page-title__heading {
	font-family: var(--font-serif);
	font-size: 46px;
	font-weight: 400;
	line-height: 1.68;
	letter-spacing: 0.04em;
}

.page-title--article {
	padding-block: 96px;
}

/* 記事詳細はタイトルも本文と同じ中央の列にそろえる */
.page-title--article .page-title__inner {
	max-width: 860px;
}

.page-title--article .page-title__heading {
	font-size: 34px;
}

.breadcrumb ol {
	display: flex;
	flex-wrap: wrap;
	color: var(--color-text);
	font-size: 12px;
	line-height: 2.05;
	letter-spacing: 0.02em;
}

.breadcrumb li + li::before {
	content: "／";
	margin: 0 0.3em;
}

.breadcrumb a:hover {
	color: var(--color-accent);
}

.page-title__meta {
	display: flex;
	align-items: center;
	gap: 20px;
	margin: 28px 0 24px;
	color: var(--color-text);
	font-size: 12px;
	line-height: 2.05;
	letter-spacing: 0.04em;
}

/* ==========================================================================
   CTA 帯（サービスサイトへ / 法人のお問い合わせ）
   ========================================================================== */
.cta-heading {
	font-family: var(--font-serif);
	font-size: 28px;
	font-weight: 400;
	line-height: 1.68;
	letter-spacing: 0.04em;
}

.cta-text {
	color: var(--color-text);
	font-size: 14px;
	line-height: 2;
	letter-spacing: 0.02em;
}

.cta-text--small {
	font-size: 13px;
}

.cta-service {
	position: relative;
	z-index: 0;
	height: 380px;
	padding: 108px var(--gutter) 0;
	overflow: hidden;
}

.cta-service__bg {
	position: absolute;
	inset: 0;
	z-index: -1;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: 50% 55%;
}

.cta-service__card,
.cta-business__box {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 40px;
	max-width: 1120px;
	margin: 0 auto;
}

.cta-service__card {
	z-index: 2;
	padding: 40px 56px;
	background: rgba(255, 254, 248, 0.94);
}

.cta-service__copy,
.cta-business__copy {
	display: flex;
	flex-direction: column;
	gap: 12px;
	max-width: 640px;
}

.cta-business {
	position: relative;
	z-index: 0;
	padding: 90px var(--gutter);
	background: var(--color-base);
	overflow-x: clip;
}

.cta-business__arc {
	position: absolute;
	z-index: -1;
	max-width: none;
	pointer-events: none;
}

.cta-business__arc--520 {
	top: -70px;
	left: -80px;
	width: 520px;
	height: 520px;
}

.cta-business__arc--700 {
	top: -160px;
	left: -170px;
	width: 700px;
	height: 700px;
}

.cta-business__box {
	padding: 56px 64px;
	border: 1px solid var(--color-line);
	border-radius: 2px;
	background: rgba(246, 226, 218, 0.4);
}

.cta-business__box .button {
	position: relative;
	z-index: 1;
}

/* ==========================================================================
   Day360について
   ========================================================================== */
.about-name {
	display: grid;
	grid-template-columns: 500px 580px;
	justify-content: center;
	column-gap: 40px;
	padding: 120px var(--gutter) 140px;
	background: var(--color-base);
}

.about-name__copy {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
}

.about-name__copy .sub-text {
	max-width: 460px;
	margin-top: 40px;
}

/* 本文から 1 行あけた締めの一文 */
.about-name__copy .sub-text.about-name__closing {
	margin-top: 2.05em;
	font-weight: 500;
}

.about-name__copy .button {
	margin-top: 40px;
}

.about-name__frame {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	height: 533px;
	background: var(--color-pink);
}

.about-name__frame.tex-paper::after {
	background-size: 376px 376px;
}

.about-name__photo {
	position: relative;
	width: 517px;
	height: 470px;
	overflow: hidden;
}

.about-name__photo.tex-noise::after {
	background-size: 157px 157px;
}

.about-name__photo img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.about-name .badge-360 {
	top: 453px;
	left: -75px;
}

.badge-360--base {
	background: var(--color-base);
}

.about-lineup {
	position: relative;
	z-index: 0;
	padding: 100px var(--gutter);
	background: var(--color-base);
	overflow-x: clip;
}

.about-lineup__arc,
.about-flow__arc {
	position: absolute;
	z-index: -1;
	max-width: none;
	pointer-events: none;
}

.about-lineup__arc--1160 {
	top: -38px;
	left: calc(50% + 610px);
	width: 1160px;
	height: 1160px;
}

.about-lineup__arc--880 {
	top: 102px;
	left: calc(50% + 490px);
	width: 880px;
	height: 880px;
}

.lineup {
	display: flex;
	align-items: flex-start;
	gap: 64px;
	margin-top: 56px;
}

.lineup__main {
	display: flex;
	flex: 0 1 620px;
	flex-direction: column;
	gap: 24px;
}

.lineup__frame {
	display: flex;
	align-items: center;
	justify-content: center;
	height: 512px;
	background: var(--color-pink);
}

.lineup__photo {
	position: relative;
	width: 540px;
	height: 432px;
	overflow: hidden;
}

.lineup__photo img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.lineup__text {
	display: flex;
	flex-direction: column;
	gap: 8px;
}

.lineup__name {
	font-family: var(--font-serif);
	font-size: 18px;
	font-weight: 400;
	line-height: 2.05;
	letter-spacing: 0.02em;
}

.lineup__name--small {
	font-size: 16px;
}

.lineup__note {
	color: var(--color-text);
	font-size: 12px;
	line-height: 2.05;
	letter-spacing: 0.02em;
}

.lineup__sub {
	flex: 0 1 436px;
}

.lineup__item {
	display: flex;
	flex-direction: column;
	gap: 14px;
	padding: 36px 0;
}

.lineup__item:first-child {
	padding-top: 0;
	border-bottom: 1px solid var(--color-line);
}

/* 写真がまだないキット：左のキットと同じ額に、アイコンと「準備中」を置く（写真ができたら差し替える） */
.lineup__placeholder {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 10px;
	height: 180px;
	background: var(--color-pink);
	color: var(--color-text);
	font-size: 13px;
	line-height: 1.5;
	letter-spacing: 0.04em;
	text-align: center;
}

.lineup__placeholder-icon {
	display: block;
	width: 32px;
	height: 32px;
}

.lineup__placeholder-en {
	font-size: 11px;
	font-weight: 500;
	letter-spacing: 0.2em;
}

.about-flow {
	position: relative;
	z-index: 0;
	padding: 120px var(--gutter) 180px;
	background: var(--color-base);
	overflow-x: clip;
}

.about-flow__arc--760 {
	top: -48px;
	left: -300px;
	width: 760px;
	height: 760px;
}

.about-flow__arc--1040 {
	top: -188px;
	left: -470px;
	width: 1040px;
	height: 1040px;
}

/* 工程カード（Day360について・法人ページ共通）：横に並べ、短い線でつなぐ */
.step-cards {
	display: flex;
	align-items: stretch;
	margin-top: 56px;
}

.step-cards__item {
	position: relative;
	display: flex;
	flex: 1 1 210px;
	flex-direction: column;
	align-items: flex-start;
	gap: 6px;
	min-height: 109px;
	padding: 17px 19px;
	border: 1px solid var(--color-line);
	border-radius: 2px;
	background: var(--color-white);
}

.step-cards__item + .step-cards__item {
	margin-left: 17px;
}

.step-cards__item + .step-cards__item::before {
	content: "";
	position: absolute;
	top: 50%;
	left: -18px;
	width: 17px;
	height: 1px;
	background: var(--color-line);
}

.step-cards__icon {
	display: block;
	width: 22px;
	height: 22px;
}

.step-cards__num {
	color: var(--color-text);
	font-size: 11px;
	font-weight: 500;
	line-height: 13px;
	letter-spacing: 0.1em;
}

.step-cards__label {
	font-size: 15px;
	font-weight: 500;
	line-height: 26px;
	letter-spacing: 0.02em;
}

/* Day360について は 2 行の工程があるため、Figma どおりカードの高さを 138px にそろえる */
@media (min-width: 768px) {
	.about-flow .step-cards__item {
		min-height: 138px;
	}
}

/* 工程 01 のクリップボード（Figma では図形の組み合わせ） */
.icon-clipboard {
	position: relative;
}

.icon-clipboard span {
	position: absolute;
	background: var(--color-text);
}

.icon-clipboard span:nth-child(1) {
	top: 3px;
	left: 3px;
	width: 16px;
	height: 17px;
	border: 1.6px solid var(--color-text);
	border-radius: 2px;
	background: none;
}

.icon-clipboard span:nth-child(2) {
	top: 1px;
	left: 8px;
	width: 6px;
	height: 4px;
	border-radius: 1px;
}

.icon-clipboard span:nth-child(3) {
	top: 10px;
	left: 6px;
	width: 9px;
	height: 1px;
}

.icon-clipboard span:nth-child(4) {
	top: 14px;
	left: 6px;
	width: 6px;
	height: 1px;
}

/* ==========================================================================
   会社概要
   ========================================================================== */
.company {
	padding: 140px var(--gutter) 160px;
	background: var(--color-base);
}

.company-table {
	border-top: 1px solid var(--color-line);
}

.company-table__row {
	display: flex;
	gap: 48px;
	padding: 28px 0;
	border-bottom: 1px solid var(--color-line);
	line-height: 2.05;
}

.company-table dt {
	flex: 0 0 200px;
	color: var(--color-text);
	font-size: 13px;
	font-weight: 500;
	letter-spacing: 0.08em;
}

.company-table dd {
	font-size: 15px;
	letter-spacing: 0.02em;
}

/* ==========================================================================
   プライバシーポリシー（本文はエディタで編集）
   ========================================================================== */
.policy {
	padding: 140px var(--gutter) 160px;
	background: var(--color-base);
}

.policy__inner {
	display: flex;
	align-items: flex-start;
	gap: 80px;
}

.policy__toc {
	position: sticky;
	top: 40px;
	flex: 0 0 240px;
}

.policy__toc-title {
	margin-bottom: 20px;
	color: var(--color-text);
	font-size: 13px;
	font-weight: 500;
	line-height: 2.05;
	letter-spacing: 0.08em;
}

.policy__toc ol {
	border-top: 1px solid var(--color-line);
}

.policy__toc li {
	border-bottom: 1px solid var(--color-line);
}

.policy__toc a {
	display: block;
	padding: 14px 0;
	font-size: 13px;
	line-height: 2.05;
	letter-spacing: 0.02em;
	transition: color 0.2s;
}

.policy__toc a:hover {
	color: var(--color-accent);
}

.policy__body {
	flex: 1 1 800px;
	min-width: 0;
	max-width: 800px;
	color: var(--color-text);
	font-size: 15px;
	line-height: 2.05;
	letter-spacing: 0.02em;
}

.policy__body > * + * {
	margin-top: 14px;
}

.policy__body h2 {
	margin-top: 56px;
	margin-bottom: 16px;
	scroll-margin-top: 24px;
	color: var(--color-ink);
	font-family: var(--font-serif);
	font-size: 20px;
	font-weight: 400;
	line-height: 1.7;
	letter-spacing: 0.02em;
}

.policy__body .policy-lead + h2 {
	margin-top: 64px;
}

.policy__body h2 + * {
	margin-top: 0;
}

.policy__body h3 {
	color: var(--color-ink);
	font-size: 15px;
	font-weight: 500;
	line-height: 2.05;
}

.policy__body ul {
	padding-left: 22.5px;
	list-style: disc;
}

.policy__body a {
	text-decoration: underline;
	text-underline-offset: 3px;
	word-break: break-all;
}

.policy__body a:hover {
	color: var(--color-accent);
}

.policy__body .wp-block-table {
	margin-left: 0;
	margin-right: 0;
}

.policy__body table {
	width: 100%;
	border-collapse: collapse;
	border-top: 1px solid var(--color-line);
	font-size: 14px;
	line-height: 1.8;
	letter-spacing: 0.02em;
}

.policy__body th,
.policy__body td {
	padding: 14px 16px;
	border: 0;
	border-bottom: 1px solid var(--color-line);
	text-align: left;
	vertical-align: top;
}

.policy__body thead {
	border: 0;
}

.policy__body th,
.policy-table--label td:first-child {
	background: #f7f1e9;
	color: var(--color-ink);
	font-weight: 500;
}

.policy-table--label td:first-child {
	width: 240px;
}

.policy__body .policy-date {
	margin-top: 72px;
	padding-top: 28px;
	border-top: 1px solid var(--color-line);
	font-size: 13px;
}

/* 4 列の表（外部送信）は Figma の列幅に合わせる */
.policy__body th:first-child:nth-last-child(4) {
	width: 190px;
}

.policy__body th:nth-child(2):nth-last-child(3) {
	width: 210px;
}

.policy__body th:nth-child(3):nth-last-child(2) {
	width: 160px;
}

/* ==========================================================================
   新着情報一覧
   ========================================================================== */
.news-index {
	padding: 120px var(--gutter) 160px;
	background: var(--color-base);
}

.news-filter {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	margin-bottom: 56px;
}

.news-filter .chip {
	transition: border-color 0.2s, color 0.2s;
}

.news-filter .chip:hover {
	border-color: var(--color-accent);
	color: var(--color-ink);
}

.chip.is-current,
.nav-links .page-numbers.current {
	position: relative;
	isolation: isolate;
	background: var(--color-pink);
	color: var(--color-ink);
}

.chip.is-current::after,
.nav-links .page-numbers.current::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	border-radius: inherit;
	background: url("../images/texture-paper.png") 0 0 / 480px 480px;
	opacity: 0.55;
}

.news-rows {
	border-top: 1px solid var(--color-line);
}

.news-rows li {
	border-bottom: 1px solid var(--color-line);
}

.news-rows__link {
	display: flex;
	align-items: center;
	gap: 32px;
	padding: 26px 0;
}

.news-rows__date {
	flex: 0 0 96px;
	color: var(--color-text);
	font-size: 12px;
	line-height: 2.05;
	letter-spacing: 0.04em;
}

.news-rows__title {
	flex: 1;
	min-width: 0;
	max-width: 760px;
	font-size: 15px;
	line-height: 2.05;
	letter-spacing: 0.02em;
	transition: color 0.2s;
}

.news-rows__link:hover .news-rows__title {
	color: var(--color-accent);
}

.news-rows__empty {
	padding: 26px 0;
	border-top: 1px solid var(--color-line);
	border-bottom: 1px solid var(--color-line);
	color: var(--color-text);
	font-size: 15px;
}

.news-index .navigation.pagination {
	margin-top: 64px;
}

.nav-links {
	display: flex;
	gap: 12px;
}

.nav-links .page-numbers {
	display: grid;
	place-items: center;
	min-width: 40px;
	height: 40px;
	padding: 0 8px;
	border: 1px solid var(--color-line);
	border-radius: 2px;
	background: var(--color-base);
	color: var(--color-text);
	font-size: 12px;
	font-weight: 500;
	line-height: 2.05;
	letter-spacing: 0.02em;
}

.nav-links a.page-numbers:hover {
	border-color: var(--color-accent);
	color: var(--color-ink);
}

.nav-links .page-numbers.dots {
	border-color: transparent;
}

/* ==========================================================================
   記事詳細・汎用ページ
   ========================================================================== */
.article {
	padding: 72px var(--gutter) 120px;
	background: var(--color-base);
}

.article__eyecatch {
	display: flex;
	align-items: center;
	justify-content: center;
	height: 520px;
	margin-bottom: 72px;
	background: var(--color-pink);
	position: relative;
	isolation: isolate;
}

.article__eyecatch::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background: url("../images/texture-paper.png") 0 0 / 480px 480px;
	opacity: 0.55;
}

.article__photo {
	position: relative;
	width: min(1000px, calc(100% - 120px));
	height: 440px;
	overflow: hidden;
}

.article__photo img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* 本文の列（860px）はページの中央に置き、左右の余白をそろえる。文字は左寄せのまま */
.article__body,
.article__back {
	max-width: 860px;
	margin-inline: auto;
}

.article__body {
	font-size: 15px;
	line-height: 2.05;
	letter-spacing: 0.02em;
}

.article__body > * + * {
	margin-top: 28px;
}

.article__body h2 {
	margin-top: 56px;
	padding: 0;
	border: 0;
	font-family: var(--font-serif);
	font-size: 22px;
	font-weight: 400;
	line-height: 2.05;
	letter-spacing: 0.02em;
}

.article__body h2 + * {
	margin-top: 20px;
}

.article__body h3 {
	margin-top: 40px;
	font-size: 17px;
	font-weight: 500;
	line-height: 1.9;
}

.article__body img {
	height: auto;
}

.article__back {
	margin-top: 80px;
	padding-top: 32px;
	border-top: 1px solid var(--color-line);
	font-size: 14px;
	font-weight: 500;
	line-height: 2.05;
	letter-spacing: 0.02em;
}

.article__back a:hover {
	color: var(--color-accent);
}

/* ==========================================================================
   法人・団体のお客さまへ
   ========================================================================== */
.rule--accent {
	background: var(--color-accent);
}

/* PC の見出しの線は、ほかのページと同じ 36px */
.biz-hero__card .rule--thin,
.biz-section .rule--thin {
	width: 36px;
}

.biz-hero {
	position: relative;
	z-index: 0;
	height: 560px;
	background: var(--color-beige);
	overflow: hidden;
}

.biz-hero__photo {
	position: absolute;
	inset: 0;
	z-index: -1;
}

.biz-hero__photo img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: 50% 30%;
}

.biz-hero__card {
	position: absolute;
	top: 87px;
	left: max(var(--gutter), calc(50% - 624px));
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	width: 620px;
	padding: 56px;
	background: rgba(255, 254, 248, 0.9);
}

.biz-hero__heading {
	margin: 28px 0 20px;
	font-family: var(--font-serif);
	font-size: 36px;
	font-weight: 400;
	line-height: 1.68;
	letter-spacing: 0.04em;
}

.biz-hero__card .button {
	position: relative;
	z-index: 1;
	margin-top: 60px;
}

.biz-lead {
	/* 左端を本文の入れ物（最大 1120px）にそろえる */
	padding: 140px max(var(--gutter), calc((100% - 1120px) / 2)) 0;
	background: var(--color-base);
	font-size: 16px;
	line-height: 2;
	letter-spacing: 0.02em;
}

.biz-lead p + p {
	margin-top: 14px;
}

/* 「ご導入のかたち」の書き出し */
.biz-lead__title {
	margin-bottom: 20px;
	color: var(--color-ink);
	font-family: var(--font-serif);
	font-size: 28px;
	font-weight: 400;
	line-height: 1.68;
	letter-spacing: 0.04em;
}

.biz-forms__cta {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 20px;
	margin-top: 56px;
}

/* ボタン前の一言 */
.biz-forms__cta-lead {
	color: var(--color-ink);
	font-size: 16px;
	font-weight: 500;
	line-height: 1.8;
	letter-spacing: 0.04em;
	text-align: center;
}

.biz-flow__lead,
.about-flow__lead {
	margin-top: 20px;
	font-size: 16px;
	line-height: 2;
	letter-spacing: 0.02em;
}

.biz-flow__lead + .step-cards,
.about-flow__lead + .step-cards {
	margin-top: 48px;
}

/* なぜ今、女性のがん対策なのか */
.biz-section.biz-why {
	padding-bottom: 0;
}

.biz-why__label {
	margin-top: 30px;
}

.biz-why__heading {
	margin-top: 10px;
}

.biz-stats {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 32px;
	margin-top: 56px;
}

.biz-stats__item {
	display: flex;
	flex-direction: column;
	gap: 14px;
	padding: 36px 32px 32px;
	border: 1px solid var(--color-line);
	border-radius: 2px;
	background: var(--color-white);
}

.biz-stats__value {
	display: flex;
	align-items: baseline;
	gap: 4px;
	color: var(--color-accent);
	font-family: var(--font-serif);
	line-height: 1.2;
}

.biz-stats__pre {
	font-size: 22px;
}

.biz-stats__num {
	font-size: 56px;
}

.biz-stats__unit {
	font-size: 24px;
}

.biz-stats__text {
	flex-grow: 1;
	font-size: 14px;
	line-height: 1.9;
	letter-spacing: 0.02em;
}

.biz-stats__source {
	padding-top: 14px;
	border-top: 1px solid #eadece;
	color: var(--color-text);
	font-size: 11px;
	line-height: 1.7;
	letter-spacing: 0.02em;
}

/* スワイプ位置の表示は SP だけ */
.biz-stats__dots {
	display: none;
}

.biz-why__body {
	margin-top: 56px;
	font-size: 16px;
	line-height: 2;
	letter-spacing: 0.02em;
}

.biz-why__body p + p {
	margin-top: 14px;
}

.biz-why__note {
	margin-top: 16px;
	color: var(--color-text);
	font-size: 13px;
	line-height: 2;
	letter-spacing: 0.02em;
}

.biz-why__sources {
	margin-top: 28px;
	color: var(--color-text);
	font-size: 11px;
	line-height: 1.8;
	letter-spacing: 0.01em;
}

.biz-why__sources li {
	position: relative;
	padding-left: 1em;
	overflow-wrap: anywhere;
}

.biz-why__sources li::before {
	content: "・";
	position: absolute;
	left: 0;
}

.biz-why__sources a {
	color: inherit;
	text-decoration: underline;
}

.biz-section {
	padding: 140px var(--gutter);
	background: var(--color-base);
}

.biz-section--forms {
	padding-top: 72px;
}

.biz-num {
	color: var(--color-accent);
	font-size: 12px;
	font-weight: 500;
	line-height: normal;
	letter-spacing: 0.1em;
}

.biz-note {
	margin-top: 28px;
	color: var(--color-text);
	font-size: 13px;
	line-height: 2;
	letter-spacing: 0.02em;
}

.biz-forms {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 32px;
	margin-top: 56px;
}

.biz-forms__item {
	display: flex;
	flex-direction: column;
	gap: 16px;
	min-height: 255px;
	padding: 36px 32px;
	border: 1px solid var(--color-line);
	border-radius: 2px;
	background: var(--color-white);
}

.biz-forms__item .biz-num {
	line-height: 2.05;
}

.biz-forms__title {
	font-family: var(--font-serif);
	font-size: 18px;
	font-weight: 500;
	line-height: 1.8;
	letter-spacing: 0.04em;
}

.biz-forms__text {
	color: var(--color-text);
	font-size: 14px;
	line-height: 2.05;
	letter-spacing: 0.02em;
}

.biz-reasons {
	display: flex;
	align-items: center;
	gap: 72px;
}

.biz-reasons__frame {
	display: flex;
	flex: 0 0 520px;
	align-items: center;
	justify-content: center;
	height: 432px;
	background: var(--color-pink);
}

.biz-reasons__photo {
	position: relative;
	width: 440px;
	height: 352px;
	overflow: hidden;
}

.biz-reasons__photo img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.biz-reasons__copy {
	flex: 0 1 528px;
}

.biz-reasons__list {
	margin-top: 40px;
	border-top: 1px solid var(--color-line);
}

.biz-reasons__item {
	display: flex;
	gap: 20px;
	padding: 20px 0;
	border-bottom: 1px solid var(--color-line);
}

.biz-reasons__item .biz-num {
	flex: 0 0 auto;
	padding-top: 5px;
}

.biz-reasons__item p {
	max-width: 452px;
	font-size: 15px;
	line-height: 2;
	letter-spacing: 0.02em;
}

/* お見積り（Figma では図形の組み合わせ） */
.icon-estimate {
	position: relative;
}

.icon-estimate span {
	position: absolute;
	left: 7px;
	width: 8px;
	height: 1.4px;
	background: var(--color-text);
}

.icon-estimate span:nth-child(1) {
	top: 2px;
	left: 4px;
	width: 14px;
	height: 18px;
	border: 1.6px solid var(--color-text);
	border-radius: 1px;
	background: none;
}

.icon-estimate span:nth-child(2) {
	top: 8px;
}

.icon-estimate span:nth-child(3) {
	top: 12px;
}

.icon-estimate span:nth-child(4) {
	top: 16px;
}

/* ==========================================================================
   お問い合わせ
   ========================================================================== */
.contact {
	display: flex;
	flex-direction: column;
	align-items: center;
	padding: 120px var(--gutter) 160px;
	background: var(--color-base);
}

.contact--complete {
	padding-bottom: 200px;
}

.contact-steps {
	display: flex;
	align-items: center;
}

.contact-steps__item {
	position: relative;
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 0 24px;
	color: var(--color-text);
	font-size: 13px;
	font-weight: 500;
	line-height: 2.05;
	letter-spacing: 0.02em;
}

.contact-steps__item:first-child {
	padding-left: 0;
}

.contact-steps__item:last-child {
	padding-right: 0;
}

.contact-steps__item + .contact-steps__item {
	position: relative;
	margin-left: 65px;
}

.contact-steps__item + .contact-steps__item::before {
	content: "";
	position: absolute;
	top: 50%;
	left: -65px;
	width: 64px;
	height: 1px;
	background: var(--color-line);
}

.contact-steps__num {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 28px;
	height: 28px;
	border: 1px solid var(--color-line);
	border-radius: 50%;
	background: var(--color-base);
	font-size: 12px;
}

.contact-steps__item.is-current {
	color: var(--color-ink);
}

.contact-steps__item.is-current .contact-steps__num {
	border-color: var(--color-accent);
	background: var(--color-accent);
	color: var(--color-on-accent);
}

.contact-lead {
	max-width: 860px;
	margin-top: 48px;
	color: var(--color-text);
	font-size: 14px;
	line-height: 2.05;
	letter-spacing: 0.02em;
	text-align: center;
}

.contact-lead--confirm {
	color: var(--color-ink);
	font-size: 15px;
}

.contact-form {
	display: flex;
	flex-direction: column;
	width: 100%;
	max-width: 860px;
	margin-top: 56px;
}

.contact-field {
	display: flex;
	flex-direction: column;
	gap: 12px;
	min-width: 0;
	margin: 0;
	padding: 0 0 36px;
	border: 0;
}

.contact-field__label {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 0;
	font-size: 13px;
	font-weight: 500;
	line-height: 2.05;
	letter-spacing: 0.02em;
}

.contact-required {
	padding: 4px 10px;
	border-radius: 2px;
	background: var(--color-accent);
	color: var(--color-on-accent);
	font-size: 10px;
	font-weight: 500;
	line-height: 1.2;
	letter-spacing: 0.02em;
}

.contact-input {
	width: 100%;
	height: 56px;
	padding: 0 20px;
	border: 1px solid var(--color-line);
	border-radius: 2px;
	background: var(--color-white);
	color: var(--color-ink);
	font: inherit;
	font-size: 14px;
	letter-spacing: 0.02em;
	transition: border-color 0.2s;
}

.contact-input--textarea {
	display: block;
	height: 200px;
	padding: 14px 20px;
	line-height: 2.05;
	resize: vertical;
}

.contact-input::placeholder {
	color: #a79c90;
	opacity: 1;
}

.contact-input:focus {
	border-color: var(--color-accent);
	outline: none;
}

.contact-input[aria-invalid="true"] {
	border-color: #b8513a;
}

.contact-error {
	color: #b8513a;
	font-size: 13px;
	line-height: 1.7;
	letter-spacing: 0.02em;
}

.contact-error--summary {
	margin-bottom: 32px;
	padding: 14px 20px;
	border: 1px solid #e3b8a8;
	background: rgba(246, 226, 218, 0.5);
	text-align: center;
}

.contact-field--radios {
	gap: 0;
}

.contact-field--radios .contact-field__label {
	margin-bottom: 16px;
	line-height: normal;
}

.contact-field--radios .contact-error {
	margin-top: 12px;
}

.contact-radios {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 16px;
}

.contact-radio,
.contact-check {
	display: inline-flex;
	align-items: center;
	gap: 12px;
	font-size: 14px;
	letter-spacing: 0.02em;
	cursor: pointer;
}

.contact-radio {
	line-height: normal;
}

.contact-radio input,
.contact-check input {
	flex: 0 0 18px;
	width: 18px;
	height: 18px;
	margin: 0;
	border: 1px solid var(--color-ink);
	background: var(--color-white);
	appearance: none;
	cursor: pointer;
}

.contact-radio input {
	border-radius: 50%;
}

.contact-radio input:checked {
	border-color: var(--color-accent);
	background: radial-gradient(circle, var(--color-accent) 0 3.5px, var(--color-white) 4px);
}

.contact-check input {
	border-radius: 2px;
}

.contact-check input:checked {
	border-color: var(--color-accent);
	background: var(--color-accent) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 18'%3E%3Cpath d='M4.5 9.2l3 3 6-6.4' fill='none' stroke='%23fffbf5' stroke-width='1.6'/%3E%3C/svg%3E") center / 100% no-repeat;
}

.contact-radio input:focus-visible,
.contact-check input:focus-visible {
	outline: 2px solid var(--color-accent);
	outline-offset: 2px;
}

.contact-check {
	line-height: 2.05;
}

.contact-check a {
	text-decoration: underline;
	text-underline-offset: 3px;
}

.contact-agree {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 8px;
}

.contact-actions {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 20px;
	margin-top: 48px;
}

/* 寸法は .button のまま（PC 54px／SP 57px） */
.contact-button {
	font-family: inherit;
	cursor: pointer;
}

/* 塗りでも → は他の → ボタンと同じく右へ動かす（↗ は別ドメインへのリンクだけ） */
.contact-button.button--accent:hover .button__icon {
	transform: translateX(3px);
}

.contact-button:disabled {
	cursor: not-allowed;
	opacity: 0.4;
}

.contact-button.button--accent:disabled:hover {
	border-color: var(--color-accent);
	background: var(--color-accent);
}

.contact-button:disabled .button__icon {
	transform: none;
}

.contact-button .button__icon--back {
	order: -1;
}

.button:hover .button__icon--back {
	transform: translateX(-3px);
}

.contact-confirm {
	width: 100%;
	max-width: 980px;
	margin-top: 48px;
	border-top: 1px solid var(--color-line);
}

.contact-confirm__row {
	display: flex;
	gap: 48px;
	padding: 26px 0;
	border-bottom: 1px solid var(--color-line);
	line-height: 2.05;
}

.contact-confirm dt {
	flex: 0 0 240px;
	color: var(--color-text);
	font-size: 13px;
	font-weight: 500;
	letter-spacing: 0.08em;
}

.contact-confirm dd {
	flex: 1 1 auto;
	min-width: 0;
	margin: 0;
	font-size: 15px;
	letter-spacing: 0.02em;
	overflow-wrap: anywhere;
}

.contact-actions:has(.button__icon--back) {
	margin-top: 56px;
}

/* reCAPTCHA：バッジは隠し、代わりに規約の表記を出す（inc/recaptcha.php） */
.grecaptcha-badge {
	visibility: hidden;
}

.contact-recaptcha {
	max-width: 860px;
	margin-top: 24px;
	color: var(--color-text);
	font-size: 11px;
	line-height: 1.8;
	letter-spacing: 0.02em;
	text-align: center;
}

.contact-recaptcha a {
	text-decoration: underline;
	text-underline-offset: 2px;
}

.contact-honeypot {
	position: absolute;
	left: -9999px;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

.contact-complete {
	display: flex;
	flex-direction: column;
	align-items: center;
	width: 100%;
	max-width: 1120px;
	margin-top: 72px;
	padding: 80px 24px;
	border-radius: 2px;
	background: var(--color-pink);
	text-align: center;
}

.contact-complete.tex-paper::after {
	opacity: 0.55;
}

.contact-complete__icon {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 56px;
	height: 56px;
	border-radius: 50%;
	background: var(--color-base);
	color: var(--color-accent);
	font-size: 20px;
	font-weight: 500;
}

.contact-complete__heading {
	margin-top: 28px;
	font-family: var(--font-serif);
	font-size: 30px;
	font-weight: 400;
	line-height: 1.68;
	letter-spacing: 0.04em;
}

.contact-complete__text {
	max-width: 720px;
	margin-top: 20px;
	color: var(--color-text);
	font-size: 15px;
	line-height: 2.05;
	letter-spacing: 0.02em;
}

.contact-complete .button {
	margin-top: 40px;
}

/* ==========================================================================
   Responsive
   下層は PC デザインのみのため、SP はトップページの SP の作り（余白 24px・1 カラム）に合わせる
   ========================================================================== */
@media (max-width: 1120px) {
	.about-name {
		grid-template-columns: minmax(0, 1fr) minmax(0, 520px);
	}

	.about-name__frame {
		height: auto;
		padding: 32px;
	}

	.about-name__photo {
		width: 100%;
		height: auto;
		aspect-ratio: 517 / 470;
	}

	.lineup__frame {
		height: auto;
		padding: 40px;
	}

	.lineup__photo {
		width: 100%;
		height: auto;
		aspect-ratio: 5 / 4;
	}

	.biz-hero__card {
		width: min(620px, calc(100% - 2 * var(--gutter)));
	}

	.biz-reasons {
		gap: 48px;
	}

	.biz-reasons__frame {
		flex: 0 1 520px;
		height: auto;
		padding: 40px;
	}

	.biz-reasons__photo {
		width: 100%;
		height: auto;
		aspect-ratio: 5 / 4;
	}

	.step-cards__item {
		padding-inline: 14px;
	}

	.policy__inner {
		gap: 48px;
	}

	.policy__toc {
		flex-basis: 200px;
	}
}

/* ご利用の流れ（6工程）：タブレット幅は 3 列 × 2 段にする（1 列が細くなり語の途中で折り返すため） */
@media (min-width: 768px) and (max-width: 1000px) {
	.about-flow .step-cards {
		flex-wrap: wrap;
		row-gap: 16px;
	}

	.about-flow .step-cards__item {
		flex: 0 0 calc((100% - 34px) / 3);
	}

	.about-flow .step-cards__item:nth-child(3n + 1) {
		margin-left: 0;
	}

	.about-flow .step-cards__item:nth-child(3n + 1)::before {
		display: none;
	}
}

@media (max-width: 767px) {
	/* 共通 */
	.sub-heading,
	.sub-heading--30 {
		margin-top: 20px;
		font-size: 24px;
		line-height: 1.6;
	}

	.sub-text {
		line-height: 2;
	}

	.sub-note {
		margin-top: 28px;
		font-size: 13px;
	}

	/* ページタイトル */
	.page-title {
		padding: 64px var(--gutter) 56px;
	}

	.page-title__heading {
		font-size: 28px;
		line-height: 1.6;
	}

	.page-title__rule {
		margin-bottom: 20px;
	}

	.page-title__arc--520 {
		top: -110px;
		left: auto;
		right: -190px;
		width: 320px;
		height: 320px;
	}

	.page-title__arc--700 {
		top: -170px;
		left: auto;
		right: -250px;
		width: 440px;
		height: 440px;
	}

	/* 点が乗る円弧なので、SP でも大半が画面に入るよう内側に寄せる */
	.page-title__arc--420 {
		top: 70px;
		left: auto;
		right: -56px;
		width: 240px;
		height: 240px;
	}

	.page-title--article {
		padding-block: 64px 56px;
	}

	.page-title--article .page-title__heading {
		font-size: 22px;
		line-height: 1.7;
	}

	.page-title__meta {
		margin: 20px 0 16px;
	}

	/* CTA */
	.cta-heading {
		font-size: 22px;
	}

	.cta-service {
		height: auto;
		padding: 64px var(--gutter);
	}

	.cta-service__card,
	.cta-business__box {
		flex-direction: column;
		align-items: stretch;
		gap: 28px;
	}

	.cta-service__card {
		padding: 32px 24px;
	}

	.cta-business {
		padding: 64px var(--gutter);
	}

	.cta-business__box {
		padding: 36px 24px;
	}

	.cta-business__arc--520 {
		top: -60px;
		left: -150px;
		width: 320px;
		height: 320px;
	}

	.cta-business__arc--700 {
		top: -120px;
		left: -210px;
		width: 440px;
		height: 440px;
	}

	/* Day360について */
	.about-name {
		grid-template-columns: minmax(0, 1fr);
		row-gap: 48px;
		padding: 48px var(--gutter) 96px;
	}

	.about-name__copy .sub-text {
		margin-top: 28px;
	}

	.about-name__copy .sub-text.about-name__closing {
		margin-top: 2em;
	}

	.about-name__copy .button {
		margin-top: 32px;
	}

	/* 本文中・CTA 帯のボタンは SP で幅いっぱい */
	.about-name__copy .button,
	.cta-service .button,
	.biz-hero__card .button,
	.biz-forms__cta .button,
	.cta-business__box .button {
		justify-content: center;
		width: 100%;
	}

	.biz-forms__cta {
		align-items: stretch;
		gap: 16px;
		margin-top: 48px;
	}

	.biz-forms__cta-lead {
		font-size: 14px;
	}

	.about-name__frame {
		padding: 16px;
	}

	.about-name .badge-360 {
		top: auto;
		bottom: -44px;
		left: -8px;
	}

	.about-lineup {
		padding: 56px var(--gutter);
	}

	.about-flow {
		padding: 72px var(--gutter) 104px;
	}

	.about-lineup__arc--1160 {
		left: calc(100% - 180px);
		width: 700px;
		height: 700px;
	}

	.about-lineup__arc--880 {
		left: calc(100% - 120px);
		width: 520px;
		height: 520px;
	}

	/* SP は工程が縦に並び背が高いため、円弧の上側が見出しのあたりにかかるよう下げる */
	.about-flow__arc--760 {
		top: 50px;
		left: -300px;
		width: 460px;
		height: 460px;
	}

	.about-flow__arc--1040 {
		top: 20px;
		left: -400px;
		width: 620px;
		height: 620px;
	}

	.lineup {
		flex-direction: column;
		gap: 0;
		margin-top: 36px;
	}

	.lineup__main,
	.lineup__sub {
		flex: none;
		width: 100%;
	}

	/* 1 つ目と 2 つ目のキットの間にも、2 つ目と 3 つ目の間と同じ区切り線を入れる */
	.lineup__main {
		padding-bottom: 28px;
		border-bottom: 1px solid var(--color-line);
	}

	.lineup__frame {
		padding: 16px;
	}

	.lineup__placeholder {
		height: 160px;
	}

	.lineup__item {
		padding: 28px 0;
	}

	.lineup__item:first-child {
		padding-top: 28px;
	}

	.lineup__item:last-child {
		padding-bottom: 0;
	}

	/* 会社概要 */
	.company {
		padding: 64px var(--gutter) 96px;
	}

	.company-table__row {
		flex-direction: column;
		gap: 4px;
		padding: 20px 0;
	}

	.company-table dt {
		flex: none;
	}

	/* プライバシーポリシー */
	.policy {
		padding: 64px var(--gutter) 96px;
	}

	.policy__inner {
		flex-direction: column;
		align-items: stretch;
		gap: 48px;
	}

	.policy__toc {
		position: static;
		flex: none;
	}

	.policy__toc a {
		padding: 10px 0;
	}

	.policy__body {
		font-size: 14px;
		line-height: 2;
	}

	.policy__body h2 {
		margin-top: 48px;
		font-size: 18px;
	}

	.policy__body .wp-block-table {
		overflow-x: auto;
		-webkit-overflow-scrolling: touch;
	}

	.policy__body table {
		font-size: 13px;
	}

	.policy__body th,
	.policy__body td {
		padding: 12px;
	}

	.policy-table--label td:first-child {
		width: 104px;
	}

	.policy__body table:has(th:nth-child(4)) {
		min-width: 640px;
	}

	.policy__body th:first-child:nth-last-child(4),
	.policy__body th:nth-child(2):nth-last-child(3),
	.policy__body th:nth-child(3):nth-last-child(2) {
		width: auto;
	}

	.policy__body .policy-date {
		margin-top: 56px;
	}

	/* 新着情報 */
	.news-index {
		padding: 56px var(--gutter) 96px;
	}

	.news-filter {
		gap: 8px;
		margin-bottom: 36px;
	}

	/* 一覧のラベルも上の絞り込みボタンと同じ大きさにする */
	.news-filter .chip,
	.news-rows .chip {
		min-width: 0;
		padding: 0 16px;
	}

	.news-rows__link {
		flex-wrap: wrap;
		gap: 8px 16px;
		padding: 20px 0;
	}

	.news-rows__date {
		flex: none;
	}

	.news-rows__title {
		flex: 1 1 100%;
		font-size: 14px;
		line-height: 1.9;
	}

	.news-index .navigation.pagination {
		margin-top: 48px;
	}

	.nav-links {
		flex-wrap: wrap;
		gap: 8px;
	}

	/* 記事詳細 */
	.article {
		padding: 48px var(--gutter) 96px;
	}

	.article__eyecatch {
		height: auto;
		margin-bottom: 48px;
		padding: 16px;
	}

	.article__photo {
		width: 100%;
		height: auto;
		aspect-ratio: 1000 / 440;
	}

	.article__body h2 {
		margin-top: 44px;
		font-size: 19px;
		line-height: 1.8;
	}

	.article__back {
		margin-top: 56px;
	}

	/* 法人・団体のお客さまへ */
	/* カードは写真に重ねず、写真のすぐ下に置く */
	.biz-hero {
		height: auto;
		padding: 320px 0 0;
		background: var(--color-base);
		overflow: visible;
	}

	.biz-hero__photo {
		bottom: auto;
		height: 320px;
		overflow: hidden;
	}

	.biz-hero__photo img {
		object-position: 93% 20%;
	}

	.biz-hero__card {
		position: relative;
		top: auto;
		left: auto;
		width: auto;
		margin: 0 12px;
		padding: 36px 24px;
	}

	.biz-hero__heading {
		margin-top: 20px;
		margin-bottom: 16px;
		font-size: 25px;
		line-height: 1.6;
	}

	.biz-hero__card .button {
		margin-top: 32px;
	}

	.biz-lead {
		padding: 72px var(--gutter) 0;
		font-size: 15px;
		line-height: 1.9;
	}

	.biz-lead p + p {
		margin-top: 12px;
	}

	.biz-lead__title {
		margin-bottom: 12px;
		font-size: 21px;
		line-height: 1.6;
		letter-spacing: 0.03em;
	}

	.biz-flow__lead,
	.about-flow__lead {
		margin-top: 12px;
		font-size: 15px;
		line-height: 1.9;
	}

	.biz-flow__lead + .step-cards,
	.about-flow__lead + .step-cards {
		margin-top: 28px;
	}

	.biz-section.biz-why {
		padding-top: 64px;
		padding-bottom: 0;
	}

	.biz-hero__card .rule--thin,
	.biz-section .rule--thin {
		width: 40px;
	}

	.biz-why .rule {
		width: 32px;
	}

	.biz-why__label {
		margin-top: 24px;
	}

	.biz-why__heading {
		margin-top: 24px;
		font-size: 22px;
		line-height: 1.65;
		letter-spacing: 0.03em;
	}

	/* カードは横にスワイプし、右端は画面の端まで出す */
	.biz-stats {
		display: flex;
		gap: 12px;
		margin: 24px calc(-1 * var(--gutter)) 0 0;
		padding-right: var(--gutter);
		overflow-x: auto;
		scroll-snap-type: x mandatory;
		scrollbar-width: none;
	}

	.biz-stats::-webkit-scrollbar {
		display: none;
	}

	.biz-stats__item {
		flex: 0 0 280px;
		gap: 12px;
		padding: 26px 24px 22px;
		scroll-snap-align: start;
	}

	.biz-stats__pre {
		font-size: 18px;
	}

	.biz-stats__num {
		font-size: 44px;
	}

	.biz-stats__unit {
		font-size: 20px;
	}

	.biz-stats__text {
		line-height: 1.8;
	}

	.biz-stats__source {
		padding-top: 12px;
	}

	.biz-stats__dots {
		display: flex;
		justify-content: center;
		gap: 8px;
		margin-top: 16px;
	}

	.biz-stats__dots span {
		width: 6px;
		height: 6px;
		border-radius: 50%;
		background: var(--color-line);
	}

	.biz-stats__dots .is-active {
		background: var(--color-accent);
	}

	.biz-why__body {
		margin-top: 32px;
		font-size: 15px;
		line-height: 1.9;
	}

	.biz-why__body p + p {
		margin-top: 12px;
	}

	.biz-why__note {
		margin-top: 12px;
		font-size: 12px;
		line-height: 1.8;
	}

	.biz-why__sources {
		margin-top: 20px;
		font-size: 10px;
	}

	.biz-section {
		padding: 80px var(--gutter);
	}

	.biz-section--forms {
		padding-top: 48px;
	}

	.biz-forms {
		grid-template-columns: minmax(0, 1fr);
		gap: 16px;
		margin-top: 36px;
	}

	.biz-forms__item {
		gap: 10px;
		min-height: 0;
		padding: 28px 24px;
	}

	.biz-reasons {
		flex-direction: column;
		align-items: stretch;
		gap: 40px;
	}

	.biz-reasons__frame {
		flex: none;
		padding: 16px;
	}

	.biz-reasons__photo {
		aspect-ratio: 5 / 4;
	}

	.biz-reasons__copy {
		flex: none;
	}

	.biz-reasons__list {
		margin-top: 28px;
	}

	.biz-reasons__item {
		gap: 14px;
		padding: 16px 0;
	}

	.biz-reasons__item p {
		font-size: 14px;
	}

	.step-cards {
		flex-direction: column;
		align-items: stretch;
		margin-top: 36px;
	}

	.step-cards__item {
		flex: none;
		display: grid;
		grid-template-columns: 22px auto 1fr;
		align-items: center;
		column-gap: 12px;
		min-height: 0;
		padding: 16px 18px;
	}

	.step-cards__item + .step-cards__item {
		margin: 12px 0 0;
	}

	.step-cards__label br {
		display: none;
	}

	.step-cards__item + .step-cards__item::before {
		top: -13px;
		left: 28px;
		width: 1px;
		height: 12px;
	}

	/* お問い合わせ */
	.contact {
		padding: 56px var(--gutter) 96px;
	}

	.contact--complete {
		padding-bottom: 120px;
	}

	.contact-steps__item {
		padding: 0 10px;
		gap: 8px;
	}

	.contact-steps__item + .contact-steps__item {
		margin-left: 25px;
	}

	.contact-steps__item + .contact-steps__item::before {
		left: -25px;
		width: 24px;
	}

	.contact-lead {
		margin-top: 36px;
		font-size: 13px;
		text-align: left;
	}

	.contact-lead--confirm {
		font-size: 14px;
	}

	.contact-form {
		margin-top: 40px;
	}

	.contact-field {
		padding-bottom: 28px;
	}

	.contact-input {
		font-size: 16px;
	}

	.contact-radio {
		align-items: flex-start;
		line-height: 1.6;
	}

	.contact-radio input {
		margin-top: 2px;
	}

	.contact-actions {
		flex-direction: column-reverse;
		align-items: stretch;
		gap: 12px;
		margin-top: 40px;
	}

	.contact-actions:has(.button__icon--back) {
		margin-top: 40px;
	}

	.contact-button {
		justify-content: center;
	}

	.contact-confirm {
		margin-top: 36px;
	}

	.contact-confirm__row {
		flex-direction: column;
		gap: 4px;
		padding: 18px 0;
	}

	.contact-confirm dt {
		flex: none;
	}

	.contact-complete {
		margin-top: 48px;
		padding: 48px 20px;
	}

	.contact-complete__heading {
		margin-top: 20px;
		font-size: 24px;
	}

	.contact-complete__text {
		font-size: 14px;
		text-align: left;
	}

	.contact-complete .button {
		justify-content: center;
		width: 100%;
		margin-top: 32px;
	}
}
