@charset "UTF-8";

/*
 * トップページ（front-page.php）のスタイル。
 *
 * 連盟ネットワークは page-members.css、成婚ストーリーは page-first.css を
 * 流用しているため、functions.php で 'members' と 'first-time' を
 * extends に指定している。
 *
 * モバイルファースト。PC は 840px 以上。
 */

.p-front {
	/* 本文の文字サイズ。SP 14px / PC 18px（ご指示）。
	   ほかのページから作りを流用している箇所は、そちらの大きさのまま。 */
	--f-body: 14px;
	--f-choose-bg: #f9f9f9;   /* 「今のあなたに」セクションの背景 */
	--f-icon-bg: #fdeee4;     /* カードのアイコンの丸 */
	--f-rule: #e2ddd9;        /* カードの見出し下の線 */
	--f-team-bg: #fdf5f1;     /* 仲人チームの背景 */
	--f-price-bg: #fdf5f1;    /* 料金・受賞・新着情報の背景 */
	--f-price-line: #e6b98a;  /* 料金の内訳の枠線 */
}

/* --------------------------------------------------------------------------
   メインビジュアル（未制作）
   -------------------------------------------------------------------------- */
.p-front__mv {
	background-color: var(--color-bg);
}

.p-front__mv-image img,
.p-front__mv-image .img-slot--empty {
	display: block;
	width: 100%;
	height: auto;
}

.p-front__mv-image--pc img,
.p-front__mv-image--pc .img-slot--empty {
	aspect-ratio: 1440 / 826;
}

.p-front__mv-image--sp img,
.p-front__mv-image--sp .img-slot--empty {
	aspect-ratio: 375 / 667;
}

.p-front__mv-image--pc {
	display: none;
}

/* --------------------------------------------------------------------------
   1. 結婚できた、より。
   -------------------------------------------------------------------------- */
.p-front__lead {
	position: relative;
	padding: 40px 0 48px;
	background-color: var(--color-bg);
	/* 写真を画面の端まで出すため */
	overflow: hidden;
}

.p-front__lead-inner {
	max-width: var(--content-max-wide);
	margin-inline: auto;
}

.p-front__lead-title {
	margin: 0;
	padding-inline: var(--header-pad-sp);
	font-family: var(--font-mincho);
	/* 明朝体は太字にしない */
	font-weight: 400;
	font-size: 24px;
	line-height: 1.7;
	letter-spacing: .02em;
	text-wrap: balance;
}

.p-front__lead-title em {
	font-style: normal;
	color: var(--color-primary);
}

.p-front__lead-body {
	display: grid;
	grid-template-columns: 1fr;
	gap: 24px;
	margin-top: 28px;
}

/* --- 写真 --- */
.p-front__lead-photo img,
.p-front__lead-photo .img-slot--empty {
	display: block;
	width: 100%;
	height: auto;
	object-fit: cover;
}

/*
 * デザインどおり、写真の片側だけを大きく丸める。
 * SP では左右に余白がないため、画面の端に寄せている。
 */
.p-front__lead-photo--left img,
.p-front__lead-photo--left .img-slot--empty {
	aspect-ratio: 376 / 378;
	border-radius: 0 999px 999px 0;
}
@media (max-width: 839px) {
	.p-front__lead-photo--left img,
	.p-front__lead-photo--left .img-slot--empty {
		display: none;
	}
}

.p-front__lead-photo--top img,
.p-front__lead-photo--top .img-slot--empty {
	aspect-ratio: 507 / 312;
	border-radius: 999px 0 0 999px;
}
@media (max-width: 839px) {
	.p-front__lead-photo--top img,
	.p-front__lead-photo--top .img-slot--empty {
		display: none;
	}
}

.p-front__lead-photo--bottom img,
.p-front__lead-photo--bottom .img-slot--empty {
	aspect-ratio: 531 / 417;
	border-radius: 999px 0 0 999px;
}

.p-front__lead-photo--left {
	width: 72%;
}

.p-front__lead-photos {
	display: grid;
	gap: 16px;
	justify-items: end;
}

.p-front__lead-photo--top {
	width: 82%;
}

.p-front__lead-photo--bottom {
	width: 90%;
}

/* --- 本文 --- */
.p-front__lead-text {
	padding-inline: var(--header-pad-sp);
}

.p-front__lead-text p {
	margin: 0;
	font-size: var(--f-body);
	line-height: 1.9;
	color: var(--color-text-body);
}

.p-front__lead-text p + p {
	margin-top: 20px;
}

.p-front__lead-text strong {
	font-weight: 700;
	color: var(--color-primary);
}

/* デザインの字下げ。SP では詰まって見えるため控えめにする */
.p-front__lead-indent-1 {
	margin-left: .5em;
}

.p-front__lead-indent-2 {
	margin-left: 1em;
}

.p-front__lead-close {
	font-family: var(--font-mincho);
	font-size: 16px !important;
	color: var(--color-text) !important;
}

.p-front__lead-close em {
	font-style: normal;
	color: var(--color-primary);
}

/* --- 「結婚物語。とは」ボタン --- */
.p-front__lead-action {
	margin: 28px 0 60px;
	padding-inline: var(--header-pad-sp);
	text-align: center;
}

.p-front__lead-button {
	position: relative;
	justify-content: center;
	width: min(100%, 280px);
	min-height: 56px;
	/* デザインは角丸の小さい四角 */
	border-radius: 4px;
	gap: 6px;
	font-size: 14px;
}

.p-front__lead-button::after {
	position: absolute;
	right: 18px;
}

.p-front__lead-logo {
	display: block;
	line-height: 0;
}

.p-front__lead-logo img,
.p-front__lead-logo .img-slot--empty {
	width: 96px;
	height: auto;
	aspect-ratio: 114 / 22;
}

/* --------------------------------------------------------------------------
   2. 今のあなたに当てはまるのはどれですか？
   -------------------------------------------------------------------------- */
.p-front__choose {
	position: relative;
	padding: 6px 0 48px;
	background-color: var(--f-choose-bg);
}

/*
 * 上辺のゆるいカーブ（ご指示：#f9f9f9 の丸みが上に向かって弧を描く）。
 * 画像ではなく、セクションと同じ色の楕円を上にはみ出させて描いている。
 */
.p-front__choose::before {
	content: "";
	position: absolute;
	left: 50%;
	/* 楕円の下半分がセクションに重なり、上半分が前のセクションへせり出す */
	top: 0;
	z-index: 0;
	width: 160%;
	height: 60px;
	transform: translate(-50%, -50%);
	border-radius: 50%;
	background-color: var(--f-choose-bg);
}

.p-front__choose > * {
	position: relative;
	z-index: 1;
}

.p-front__choose-title {
	font-size: 24px;
}

.p-front__choices {
	display: grid;
	grid-template-columns: 1fr;
	gap: 16px;
	margin: 28px 0 0;
	padding: 0;
	list-style: none;
}

.p-front__choice-link {
	display: flex;
	align-items: center;
	gap: 14px;
	height: 100%;
	padding: 20px 16px;
	border-radius: 8px;
	background-color: #fff;
	box-shadow: 0 4px 16px rgba(0, 0, 0, .05);
	color: inherit;
}

.p-front__choice-link:hover {
	box-shadow: 0 6px 20px rgba(0, 0, 0, .1);
}

.p-front__choice-link:focus-visible {
	outline: 2px solid var(--color-primary);
	outline-offset: 2px;
}

a.p-front__choice-link {
	position: relative;
	text-decoration: none;
	transition: transform .25s ease, box-shadow .25s ease;
	display: flex;
	align-items: center;
	gap: 14px;
	height: 100%;
	padding: 20px 16px 52px;
	border-radius: 8px;
	background-color: #fff;
	box-shadow: 0 4px 16px rgba(0, 0, 0, .05);
	color: inherit;
}

@media (hover: hover) {
 a.p-front__choice-link:hover {
  transform: translateY(-6px);
  box-shadow: 0 12px 28px rgba(26, 19, 17, .12);
 }
 a.p-front__choice-link:hover .p-front__choice-title { color: var(--color-primary); }
 a.p-front__choice-link:hover .p-staff-list__arrow { background-color: var(--color-primary-dark); }
 a.p-front__choice-link:hover .p-staff-list__arrow::before { transform: translate(-30%, -50%) rotate(45deg); }
}
a.p-front__choice-link .p-staff-list__arrow { border-bottom-right-radius: 8px; }
@media (prefers-reduced-motion: reduce) {
 a.p-front__choice-link { transition: none; }
 a.p-front__choice-link:hover { transform: none; }
}

a.p-front__choice-link:focus-visible {
	outline: 2px solid var(--color-primary);
	outline-offset: 2px;
}

/* アイコンのうすいオレンジの丸 */
.p-front__choice-icon {
	flex: 0 0 auto;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 88px;
	height: 88px;
	border-radius: 50%;
	background-color: var(--f-icon-bg);
}

.p-front__choice-icon img,
.p-front__choice-icon .img-slot--empty {
	width: 88px;
	height: 88px;
	object-fit: contain;
}

.p-front__choice-body {
	display: block;
}

/* ご指示：カードのタイトルは明朝体の細字 */
.p-front__choice-title {
	display: block;
	padding-bottom: 5px;
	border-bottom: 1px solid var(--f-rule);
	font-family: var(--font-mincho);
	font-size: 15px;
	/* 明朝体は太字にしない */
	font-weight: 400;
	line-height: 1.5;
}

.p-front__choice-title em {
	font-style: normal;
	color: var(--color-primary);
}

.p-front__choice-text {
	display: block;
	margin-top: 10px;
	font-size: var(--f-body);
	line-height: 1.8;
	color: var(--color-text-body);
}

/* --------------------------------------------------------------------------
   3. 本気で向き合ってきたから ご成婚5,000組以上
   -------------------------------------------------------------------------- */
.p-front__achievement {
	padding: 48px 0;
	background-color: var(--color-bg);
}

/*
 * 見出しとオレンジの線を重ねる。
 * 指示どおり、線より文字が前に出るようにしている。
 */
.p-front__achievement-head {
	position: relative;
	display: grid;
	overflow: hidden;
}

.p-front__achievement-head > * {
	grid-area: 1 / 1;
}

.p-front__achievement-wave {
	/* 線は後ろ */
	z-index: 0;
	align-self: center;
	/* 画面幅いっぱいに引き伸ばす */
	width: 100%;
	pointer-events: none;
}

.p-front__achievement-titles {
	/* 文字が前 */
	z-index: 1;
	padding-inline: var(--header-pad-sp);
	text-align: center;
}

.p-front__achievement-title {
	margin: 0;
	font-family: var(--font-mincho);
	/* 明朝体は太字にしない */
	font-weight: 400;
	font-size: 24px;
	line-height: 1.4;
	letter-spacing: .02em;
}

.p-front__achievement-count {
	margin: 4px 0 0;
	font-family: var(--font-mincho);
	font-weight: 400;
	font-size: 30px;
	line-height: 1.3;
	letter-spacing: .01em;
	white-space: nowrap;
}

.p-front__achievement-count em {
	font-style: normal;
	font-size: 1.5em;
	color: var(--color-primary);
	font-variant-numeric: tabular-nums;
}

/*
 * ご指示：成婚実績ページ（page-results.css）の1セクション目と同じ見た目にする。
 * オレンジの線の上でも文字が読めるよう、白いフチを付けている。
 */
.p-front__achievement-title,
.p-front__achievement-count {
	text-shadow:
		-3px -3px 0 #fff,
		 0   -3px 0 #fff,
		 3px -3px 0 #fff,
		-3px  0   0 #fff,
		 3px  0   0 #fff,
		-3px  3px 0 #fff,
		 0    3px 0 #fff,
		 3px  3px 0 #fff;
}

/* --- 数字のタイル --- */
.p-front__stats {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	margin: 32px 0 0;
	padding: 0;
	list-style: none;
}

/*
 * タイルの区切り線。
 * 右と下に線を引き、いちばん右の列と最後の行では消している。
 */
.p-front__stat {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 6px;
	padding: 20px 8px;
	border-right: 1px solid var(--f-rule);
	border-bottom: 1px solid var(--f-rule);
	text-align: center;
}

.p-front__stat:nth-child(2n) {
	border-right: 0;
}

.p-front__stat:nth-last-child(-n + 2) {
	border-bottom: 0;
}

.p-front__stat-icon {
	display: block;
	line-height: 0;
}

.p-front__stat-icon img,
.p-front__stat-icon .img-slot--empty {
	width: 72px;
	height: 72px;
	object-fit: contain;
}

.p-front__stat-label {
	display: block;
	font-size: 12px;
	line-height: 1.5;
	color: var(--color-text-body);
}

.p-front__stat-value {
	display: block;
	font-size: 30px;
	font-weight: 700;
	line-height: 1.2;
	color: var(--color-primary);
	font-variant-numeric: tabular-nums;
}

/* 「万」「%」は数字より少し小さく */
.p-front__stat-value span {
	font-size: .6em;
}

.p-front__stat-unit {
	font-size: .5em;
	color: var(--color-text);
}

/* --------------------------------------------------------------------------
   4. 複数の連盟ネットワーク（page-members.css を流用）
   -------------------------------------------------------------------------- */
.p-front__network .c-actions {
	margin-top: 28px;
}

/* 「数字で見る結婚物語。」「もっと成婚ストーリーを読む」 */
.p-front__wide-button {
	position: relative;
	justify-content: center;
	width: min(100%, 300px);
	min-height: 56px;
	/* 右の矢印と重ならないよう、左右の余白を詰める */
	padding-inline: 34px 40px;
	/* デザインは角丸の小さい四角 */
	border-radius: 4px;
	font-size: 14px;
}

.p-front__wide-button::after {
	position: absolute;
	right: 18px;
}

/* --------------------------------------------------------------------------
   5. 幸せな結婚って想像以上。（page-first.css を流用）
   -------------------------------------------------------------------------- */
.p-front__stories .p-stories__head .c-heading em {
	font-style: normal;
	color: var(--color-primary);
}

.p-front__stories .c-actions {
	margin-top: 28px;
	text-align: center;
}


/* ==========================================================================
   後半のセクション
   ========================================================================== */

/* --------------------------------------------------------------------------
   7. 幸せな結婚までトータルでサポート
   カードの見た目は page-support.css を流用している。
   -------------------------------------------------------------------------- */
.p-front__support {
	position: relative;
	padding: 48px 0;
	background-color: var(--color-bg);
	/* 背景SVGがはみ出しても横スクロールが出ないように */
	overflow: hidden;
}

/*
 * ご指示：セクション全体を覆う大きな SVG を背景に敷く。
 * img/front/support-bg.svg を置くと差し替わる。
 */
.p-front__support-bg {
	position: absolute;
	inset: 0;
	z-index: 0;
	line-height: 0;
	pointer-events: none;
}

.p-front__support-bg img,
.p-front__support-bg .img-slot--empty {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* 見出しとカードは背景より前に出す */
.p-front__support > .l-section {
	position: relative;
	z-index: 1;
}

.p-front__support-title {
	font-size: 24px;
}

.p-front__support-title em,
.p-front__team-title em,
.p-front__steps-title em,
.p-front__price-title em,
.p-front__areas-title em,
.p-front__awards-title em,
.p-front__media-title em {
	font-style: normal;
	color: var(--color-primary);
}

.p-front__support .p-support__cards {
	margin-top: 28px;
}

.p-front__support .c-actions {
	margin-top: 28px;
}

/* --------------------------------------------------------------------------
   8. あなたの婚活を本気で支えるプロの婚活チーム
   -------------------------------------------------------------------------- */
.p-front__team {
	padding: 48px 0;
	background-color: var(--f-team-bg);
}

.p-front__team-title {
	font-size: 24px;
}

.p-front__leads,
.p-front__members {
	display: grid;
	grid-template-columns: 1fr;
	/*
	 * 縦1列のときは顔写真がカードの上にはみ出すぶん（写真の半分）だけ
	 * 上下の間隔を広くとる。
	 */
	gap: 76px 16px;
	margin: 88px 0 0;
	padding: 0;
	list-style: none;
}

/*
 * カードの上に顔写真がはみ出す形。
 * 写真のぶんだけカードの上に余白をとっている。
 */
.p-front__member-link {
	position: relative;
	display: block;
	height: 100%;
	padding: 76px 20px 52px;
	border-radius: 8px;
	background-color: #fff;
	box-shadow: 0 4px 16px rgba(0, 0, 0, .06);
	color: inherit;
	text-align: center;
}

.p-front__member-link:hover {
	box-shadow: 0 6px 20px rgba(0, 0, 0, .12);
}

.p-front__member-link:focus-visible {
	outline: 2px solid var(--color-primary);
	outline-offset: 2px;
}

.p-front__member-photo {
	position: absolute;
	left: 50%;
	top: 0;
	transform: translate(-50%, -50%);
	display: block;
	line-height: 0;
}

.p-front__member-photo img,
.p-front__member-photo .img-slot--empty {
	width: 118px;
	height: 118px;
	border-radius: 50%;
	object-fit: cover;
}

.p-front__member-role {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 6px;
	font-size: 12px;
	font-weight: 700;
	line-height: 1.4;
	color: var(--color-primary);
}

.p-front__member-logo {
	display: block;
	line-height: 0;
}

.p-front__member-logo img,
.p-front__member-logo .img-slot--empty {
	width: 28px;
	height: auto;
	aspect-ratio: 7 / 3;
}

.p-front__member-name {
	display: block;
	margin-top: 6px;
	padding-bottom: 12px;
	border-bottom: 1px solid var(--f-rule);
	font-family: var(--font-mincho);
	/* 明朝体は太字にしない */
	font-weight: 400;
	font-size: 24px;
	line-height: 1.3;
}

.p-front__member-note {
	font-size: .7em;
}

.p-front__member-text {
	display: block;
	margin-top: 14px;
	font-size: 12px;
	line-height: 1.9;
	text-align: left;
	color: var(--color-text-body);
}

/* 右下のオレンジの矢印 */
.p-front__member-arrow {
	position: absolute;
	right: 0;
	bottom: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 30px;
	height: 30px;
	border-radius: 4px 0 8px 0;
	background-color: var(--color-primary);
}

.p-front__member-arrow::before {
	content: "";
	width: 6px;
	height: 6px;
	margin-left: -2px;
	border-right: 2px solid #fff;
	border-top: 2px solid #fff;
	transform: rotate(45deg);
}

/* サポートチームは小さめ */
.p-front__members {
	gap: 64px 16px;
	margin-top: 76px;
}

.p-front__member-card .p-front__member-link {
	padding: 62px 16px 44px;
}

.p-front__member-card .p-front__member-photo img,
.p-front__member-card .p-front__member-photo .img-slot--empty {
	width: 96px;
	height: 96px;
}

.p-front__member-card .p-front__member-role {
	font-size: 11px;
	color: var(--color-text-body);
	font-weight: 400;
}

.p-front__member-card .p-front__member-name {
	font-size: 20px;
}

.p-front__team-actions {
	display: grid;
	grid-template-columns: 1fr;
	justify-items: center;
	gap: 12px;
	margin: 32px 0 0;
	padding: 0;
	list-style: none;
}

/* 白地・グレー枠のボタン */
.p-front__wide-button--plain {
	border: 1px solid var(--f-rule);
	background-color: #fff;
	color: var(--color-text);
}

.p-front__wide-button--plain:hover {
	background-color: #faf8f7;
}

/* --------------------------------------------------------------------------
   9. 「こんなことまで聞いていい？」
   -------------------------------------------------------------------------- */
.p-front__ask {
	position: relative;
	background-color: var(--color-bg);
}

/* ご指示：背景は1つ目のCTAセクション（template-parts/cta）と同じもの */
.p-front__ask-band {
	padding: 40px 0 36px;
	/* 画像が読み込めないときのために、下地にオレンジを残しておく */
	background-color: var(--color-primary);
	background-image: url(../assets/img/first-time/cta-bg.svg);
	background-repeat: no-repeat;
	background-position: center;
	background-size: cover;
}

.p-front__ask-title {
	margin: 0;
	font-family: var(--font-mincho);
	/* 明朝体は太字にしない */
	font-weight: 400;
	font-size: 22px;
	line-height: 1.6;
	letter-spacing: .02em;
	text-align: center;
	color: #fff;
}

.p-front__ask-buttons {
	display: grid;
	grid-template-columns: 1fr;
	justify-items: center;
	gap: 12px;
	margin: 24px 0 0;
	padding: 0;
	list-style: none;
}

/* 写真4枚。下の白いウェーブが上にかぶさる */
.p-front__ask-photos {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 2px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.p-front__ask-photos img,
.p-front__ask-photos .img-slot--empty {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 3 / 2;
	object-fit: cover;
}

.p-front__ask .c-wave-divider {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	pointer-events: none;
}

/* --------------------------------------------------------------------------
   10. 出会う前から入籍まで
   -------------------------------------------------------------------------- */
.p-front__steps {
	padding: 48px 0;
	background-color: var(--color-bg);
}

.p-front__steps-title {
	font-size: 24px;
}

.p-front__step-list {
	display: grid;
	grid-template-columns: 1fr;
	gap: 24px;
	margin: 28px 0 0;
	padding: 0;
	list-style: none;
	counter-reset: none;
}
@media (max-width: 839px) {
	.p-front__step-list {
		max-width: 200px;
		margin: 28px auto 0;
	}
}

.p-front__step-head {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	aspect-ratio: 1 / 1;
	width: 164px;
	margin-inline: auto;
	border-radius: 50%;
	background-color: var(--f-icon-bg);
}

.p-front__step-label {
	margin: 0;
	font-family: var(--font-mincho);
	font-weight: 400;
	font-size: 20px;
	color: var(--color-primary);
	margin-bottom: -10px;
	margin-top: 10px;
}

.p-front__step-icon {
	display: block;
	margin-top: 4px;
	line-height: 0;
}

.p-front__step-icon img,
.p-front__step-icon .img-slot--empty {
	width: 160px;
	height: 110px;
	object-fit: contain;
}

.p-front__step-items {
	margin: 16px 0 0;
}

.p-front__step-items dt {
	padding-bottom: 6px;
	border-bottom: 1px dashed var(--f-rule);
	font-size: 14px;
	font-weight: 700;
	line-height: 1.5;
	color: var(--color-primary);
}

.p-front__step-items dd {
	margin: 6px 0 0;
	font-size: var(--f-body);
	line-height: 1.6;
	color: var(--color-text-body);
}

.p-front__step-items dd + dt {
	margin-top: 14px;
}

.p-front__steps .c-actions {
	margin-top: 32px;
}

/* --------------------------------------------------------------------------
   11. ご入会からご成婚までにかかる料金
   -------------------------------------------------------------------------- */
/*
 * 料金プランページ（css/page-price.css）の枠をそのまま使っている。
 * ご指示により、背景色と月会費・成婚料の色はトップページのものに戻す。
 */
.p-front__price {
	padding: 48px 0;
	background-color: var(--f-price-bg);
	/* page-price.css が使う色。トップページにも用意しておく */
	--pr-tint: #fdf3ef;
	--pr-line: #e8e1dc;
	--pr-gray: #f2f2f2;
}

/* 月会費・成婚料は、これまでどおり白い枠に載せる */
.p-front__price .p-price__other {
	background-color: #fff;
}

.p-front__price-title {
	font-size: 24px;
}

.p-front__price-lead {
	margin: 14px 0 0;
	font-size: var(--f-body);
	line-height: 1.8;
	text-align: center;
	color: var(--color-text-body);
}

.p-front__price-card {
	margin-top: 24px;
	border: 1px solid var(--color-primary);
	border-radius: 8px;
	overflow: hidden;
	background-color: #fff;
}

.p-front__price-card-title {
	margin: 0;
	padding: 12px;
	background-color: var(--color-primary);
	font-size: 17px;
	font-weight: 700;
	text-align: center;
	color: #fff;
}

.p-front__price-card-body {
	padding: 20px 16px;
}

.p-front__price-items {
	display: grid;
	grid-template-columns: 1fr;
	gap: 10px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.p-front__price-item {
	display: flex;
	align-items: baseline;
	justify-content: center;
	gap: 10px;
	padding: 10px 12px;
	border: 1px solid var(--f-price-line);
	border-radius: 6px;
}

.p-front__price-item-label {
	font-size: 13px;
	font-weight: 700;
}

.p-front__price-item-value {
	font-size: 22px;
	font-weight: 700;
	line-height: 1.2;
	font-variant-numeric: tabular-nums;
}

.p-front__price-tax {
	margin-left: 2px;
	font-size: 10px;
	font-weight: 400;
	vertical-align: super;
	color: var(--color-text-body);
}

.p-front__price-unit {
	font-size: .6em;
}

.p-front__price-total {
	margin: 16px 0 0;
	text-align: center;
}

.p-front__price-total-value {
	font-size: 44px;
	font-weight: 700;
	line-height: 1.1;
	color: var(--color-primary);
	font-variant-numeric: tabular-nums;
}

.p-front__price-total-unit {
	font-size: 26px;
	font-weight: 700;
}

.p-front__price-others {
	display: grid;
	grid-template-columns: 1fr;
	gap: 10px;
	margin: 12px 0 0;
	padding: 0;
	list-style: none;
}

.p-front__price-other {
	display: flex;
	align-items: baseline;
	justify-content: center;
	gap: 10px;
	padding: 16px 12px;
	border-radius: 6px;
	background-color: #fff;
}

.p-front__price-notes {
	margin: 16px 0 0;
	padding: 0;
	list-style: none;
	font-size: 10px;
	line-height: 1.8;
	text-align: center;
	color: var(--color-text-body);
}

.p-front__price .c-actions {
	margin-top: 24px;
}

/* --------------------------------------------------------------------------
   12. 全国対応。対面でも、オンラインでも。
   -------------------------------------------------------------------------- */
/* ご指示：背景は白 */
.p-front__areas {
	padding: 48px 0;
	background-color: #fff;
}

/* 拠点ブロックの下、画面の横中央に置くボタン */
.p-front__areas-action,
/* 受賞セクションの下、画面の横中央に置くボタン */
.p-front__awards-action {
	margin: 28px 0 0;
	text-align: center;
}

.p-front__areas-title {
	font-size: 24px;
}

.p-front__areas-lead {
	margin: 14px 0 0;
	font-size: var(--f-body);
	line-height: 1.9;
	text-align: center;
	color: var(--color-text-body);
}

.p-front__area-list {
	display: grid;
	grid-template-columns: 1fr;
	gap: 2px;
	margin: 24px 0 0;
	padding: 0;
	list-style: none;
}

.p-front__area-link {
	position: relative;
	display: grid;
	align-items: center;
	min-height: 96px;
	overflow: hidden;
	color: #fff;
	text-align: center;
}

.p-front__area-link > * {
	grid-area: 1 / 1;
}

.p-front__area-image {
	z-index: 0;
	height: 100%;
	line-height: 0;
}

.p-front__area-image img,
.p-front__area-image .img-slot--empty {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* 写真の上に文字を載せるため、暗いベールをかける */
.p-front__area-link::after {
	content: "";
	grid-area: 1 / 1;
	z-index: 1;
	/* align-items: center のままだと高さが0になるので、縦いっぱいに広げる */
	align-self: stretch;
	background-color: rgba(0, 0, 0, .42);
}

.p-front__area-body {
	position: relative;
	z-index: 2;
	padding: 12px 40px;
}

.p-front__area-name {
	display: block;
	font-size: 17px;
	font-weight: 700;
	line-height: 1.4;
	text-shadow: 0 1px 4px rgba(0, 0, 0, .4);
}

.p-front__area-note {
	display: block;
	margin-top: 2px;
	font-size: 11px;
	text-shadow: 0 1px 4px rgba(0, 0, 0, .4);
}

.p-front__area-arrow {
	position: relative;
	z-index: 2;
	justify-self: end;
	margin-right: 16px;
	width: 8px;
	height: 8px;
	border-right: 2px solid #fff;
	border-top: 2px solid #fff;
	transform: rotate(45deg);
}

.p-front__area-link:hover .p-front__area-image img {
	transform: scale(1.03);
}

.p-front__area-image img {
	transition: transform .3s ease;
}

.p-front__area-link:focus-visible {
	outline: 2px solid var(--color-primary);
	outline-offset: -2px;
}

/* --------------------------------------------------------------------------
   13. 2019年から8年連続 優秀賞受賞
   -------------------------------------------------------------------------- */
.p-front__awards {
	padding: 48px 0;
	background-color: var(--f-price-bg);
}

.p-front__awards-title {
	font-size: 24px;
}

.p-front__awards-lead {
	margin: 16px 0 0;
	font-size: var(--f-body);
	line-height: 1.9;
	text-align: center;
	color: var(--color-text-body);
}

.p-front__award-list {
	display: grid;
	grid-template-columns: 1fr;
	gap: 20px;
	margin: 28px 0 0;
	padding: 0;
	list-style: none;
}

.p-front__award {
	position: relative;
	display: grid;
	place-items: center;
	padding: 8px 0;
}

.p-front__award > * {
	grid-area: 1 / 1;
}

/* 王冠と月桂樹の飾り */
.p-front__award-frame {
	z-index: 0;
	line-height: 0;
}

.p-front__award-frame img,
.p-front__award-frame .img-slot--empty {
	width: 254px;
	height: auto;
	aspect-ratio: 254 / 110;
	object-fit: contain;
}

.p-front__award-body {
	z-index: 1;
	text-align: center;
}

.p-front__award-number {
	display: block;
	font-size: 34px;
	font-weight: 700;
	line-height: 1.1;
	color: var(--color-primary);
	font-variant-numeric: tabular-nums;
}

.p-front__award-unit {
	margin-left: 2px;
	font-size: .5em;
	color: var(--color-text);
}

.p-front__award-text {
	display: block;
	margin-top: 4px;
	font-size: 12px;
	line-height: 1.5;
}

.p-front__awards-note {
	margin: 12px 0 0;
	font-size: 10px;
	text-align: right;
	color: var(--color-text-body);
}

.p-front__awards .c-actions {
	margin-top: 24px;
}

/* --------------------------------------------------------------------------
   14. 相談前の不安に、先にお答えします。（page-first.css を流用）
   -------------------------------------------------------------------------- */
/* ご指示：背景は白 */
.p-front__qa {
	background-color: #fff;
}

/* --------------------------------------------------------------------------
   15. 動画と言葉で知る結婚物語。
   -------------------------------------------------------------------------- */
.p-front__media {
	position: relative;
	padding: 48px 0;
	background-color: var(--color-bg);
	overflow: hidden;
}
/* セクションの上端に載せる装飾（img/front/dec.svg） */
.p-front__media-dec {
	position: absolute;
	left: 0;
	top: 0;
	z-index: 1;
	width: 100%;
	line-height: 0;
	pointer-events: none;
}

.p-front__media-dec img,
.p-front__media-dec .img-slot--empty {
	display: block;
	width: 100%;
	height: auto;
}
/* 背景に敷く記事サムネイルのコラージュ */
.p-front__media-bg {
	position: absolute;
	right: -10%;
	top: 0;
	z-index: 0;
	width: 80%;
	opacity: .55;
	line-height: 0;
	pointer-events: none;
}

.p-front__media-bg img,
.p-front__media-bg .img-slot--empty {
	width: 100%;
	height: auto;
	aspect-ratio: 12 / 7;
	object-fit: cover;
}

.p-front__media-inner {
	position: relative;
	z-index: 2;
}

.p-front__media-title {
	font-size: 26px;
}

.p-front__media-list {
	display: grid;
	grid-template-columns: 1fr;
	gap: 16px;
	margin: 28px 0 0;
	padding: 0;
	list-style: none;
}
@media (max-width: 839px) {
	.p-front__media-list {
		max-width: 90%;
		margin: 28px auto 0;
	}
}

.p-front__media-card {
	position: relative;
	transition: transform .25s ease, box-shadow .25s ease;
	border-radius: 8px;
	overflow: hidden;
	background-color: #fff;
	box-shadow: 0 4px 16px rgba(0, 0, 0, .08);
}

.p-front__media-image {
	position: relative;
	line-height: 0;
}

.p-front__media-image img,
.p-front__media-image .img-slot--empty {
	width: 100%;
	height: auto;
	aspect-ratio: 11 / 6;
	object-fit: cover;
}

.p-front__media-badge {
	position: absolute;
	left: 0;
	top: 0;
	z-index: 1;
	padding: 4px 12px;
	border-radius: 0 0 6px 0;
	background-color: var(--color-primary);
	font-size: 11px;
	font-weight: 700;
	line-height: 1.4;
	color: #fff;
}

.p-front__media-body {
	padding: 20px;
}

.p-front__media-name {
	margin: 0;
	font-family: var(--font-base);
	font-weight: 700;
	font-size: 18px;
	line-height: 1.65;
	letter-spacing: 0;
	text-wrap: pretty;
	line-break: strict;
}

.p-front__media-text {
	margin: 12px 0 0;
	font-size: 14px;
	font-weight: 400;
	line-height: 1.8;
	color: var(--color-text-body);
	text-wrap: pretty;
}

/* 各カードの唯一の媒体リンクを、画像と余白も含む領域に広げる。 */
.p-front__media-card .p-front__media-link::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 2;
	cursor: pointer;
}
.p-front__media-card:focus-within {
	outline: 2px solid var(--color-primary);
	outline-offset: 3px;
}
@media (hover: hover) {
	.p-front__media-card:hover { transform: translateY(-6px); box-shadow: 0 12px 28px rgba(26,19,17,.12); }
	.p-front__media-card:hover .p-front__media-name { color: var(--color-primary); }
	.p-front__media-card:hover .p-front__media-link.is-primary { background: var(--color-primary); color: #fff; }
}
@media (prefers-reduced-motion: reduce) {
	.p-front__media-card { transition: none; }
	.p-front__media-card:hover { transform: none; }
}
@media (max-width: 599px) {
	.p-front__media-body { padding: 18px; }
	.p-front__media-name { font-size: 17px; }
}

.p-front__media-links {
	display: flex;
	flex-wrap: wrap;
	justify-content: flex-end;
	gap: 8px;
	margin: 14px 0 0;
	padding: 0;
	list-style: none;
}

.p-front__media-link {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 7px 14px;
	border-radius: 4px;
	font-size: 12px;
	font-weight: 700;
	line-height: 1.4;
}

.p-front__media-link::after {
	content: "";
	width: 5px;
	height: 5px;
	border-right: 1.5px solid currentColor;
	border-top: 1.5px solid currentColor;
	transform: rotate(45deg);
}

.p-front__media-link.is-primary {
	border: 1px solid var(--color-primary);
	color: var(--color-primary);
}

.p-front__media-link.is-primary:hover {
	background-color: var(--color-primary);
	color: #fff;
}

.p-front__media-link.is-plain {
	background-color: #f2f0ef;
	color: var(--color-text-body);
}

.p-front__media-link.is-plain::after {
	display: none;
}

/* --------------------------------------------------------------------------
   16. 新着情報
   -------------------------------------------------------------------------- */
.p-front__news {
	padding: 48px 0;
	background-color: var(--f-price-bg);
}

.p-front__news-title {
	font-size: 24px;
}

.p-front__news-columns {
	display: grid;
	grid-template-columns: 1fr;
	gap: 32px;
	margin-top: 28px;
}

.p-front__news-heading {
	margin: 0;
	padding: 14px;
	border-radius: 6px 6px 0 0;
	background-color: #fff;
	font-family: var(--font-mincho);
	/* 明朝体は太字にしない */
	font-weight: 400;
	font-size: 18px;
	text-align: center;
}

.p-front__news-list {
	margin: 0;
	padding: 0;
	list-style: none;
}

.p-front__news-link {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 14px 4px;
	border-bottom: 1px solid var(--f-rule);
	color: inherit;
}

.p-front__news-link:hover .p-front__news-name {
	color: var(--color-primary);
}

.p-front__news-image {
	flex: 0 0 auto;
	line-height: 0;
}

.p-front__news-image img,
.p-front__news-image .img-slot--empty {
	width: 70px;
	height: 70px;
	object-fit: cover;
}

.p-front__news-body {
	flex: 1 1 auto;
	min-width: 0;
}

.p-front__news-meta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px;
}

.p-front__news-date {
	font-size: 12px;
	font-weight: 700;
	color: var(--color-text-body);
	font-variant-numeric: tabular-nums;
}

.p-front__news-tag {
	padding: 2px 10px;
	border: 1px solid var(--color-primary);
	border-radius: 999px;
	font-size: 10px;
	font-weight: 700;
	line-height: 1.5;
	color: var(--color-primary);
}

/* お知らせ側は塗りのラベル */
.p-front__news-item--news .p-front__news-tag {
	background-color: var(--color-primary);
	color: #fff;
}

.p-front__news-name {
	display: block;
	margin-top: 6px;
	font-size: var(--f-body);
	line-height: 1.6;
	transition: color .2s linear;
}

.p-front__news-arrow {
	flex: 0 0 auto;
	width: 8px;
	height: 8px;
	margin-right: 4px;
	border-right: 2px solid var(--color-primary);
	border-top: 2px solid var(--color-primary);
	transform: rotate(45deg);
}

.p-front__news-more {
	margin: 24px 0 0;
	text-align: right;
}

.p-first__reasons{
	padding-top: 0;
}
/* --------------------------------------------------------------------------
   PC（840px 以上）
   -------------------------------------------------------------------------- */
@media (min-width: 840px) {

	.p-front__support .l-section {
		max-width: 1000px;
	}
	/* 本文の文字サイズ。PC は 18px（ご指示） */
	.p-front {
		--f-body: 16px;
	}

	/* --- メインビジュアル --- */
	.p-front__mv-image--pc {
		display: block;
	}

	.p-front__mv-image--sp {
		display: none;
	}

	/* --- 1. 結婚できた、より。 --- */
	.p-front__lead {
		padding: 92px 0 100px;
	}

	.p-front__lead-title {
		padding-inline: 120px;
		font-size: 43px;
		line-height: 1.4;
	}

	/*
	 * ご指示：PC では写真3枚を「背景」として置き、本文には干渉させない。
	 *   1枚目 376×378px … セクションの一番左・下から100px
	 *   2枚目 507×312px … セクションの一番右上
	 *   3枚目 431×317px … セクションの一番右下
	 * SP のときは今までどおり本文と一緒に縦に並ぶ（下の指定は PC だけ）。
	 */
	/* 本文は1列。写真は絶対配置で後ろに回すので、列を分けない。
	   右上の写真の下に本文が来るよう、少し下げている。 */
	.p-front__lead-body {
		grid-template-columns: 1fr;
		gap: 0;
		margin-top: 84px;
	}

	.p-front__lead-photo {
		position: absolute;
		z-index: 0;
		margin: 0;
		pointer-events: none;
	}

	.p-front__lead-photo--left {
		left: 0;
		bottom: 15vw;
		width: 30vw;
	}

	.p-front__lead-photo--top {
		right: 0;
		top: 10vw;
		width: 30vw;
	}

	.p-front__lead-photo--bottom {
		right: 0;
		bottom: 0;
		top: 30vw;
		width: 25vw;
	}

	/* 右2枚は絶対配置にするので、包んでいる箱は位置を取らない */
	.p-front__lead-photos {
		display: contents;
	}

	/* 本文とボタンは写真より前に出す */
	.p-front__lead-text,
	.p-front__lead-title,
	.p-front__lead-action {
		position: relative;
		z-index: 1;
	}

	/* 写真の幅（376px ＋ 507px）を避けて本文を中央に置く */
	.p-front__lead-text {
		max-width: 560px;
		margin-inline: auto;
		padding-inline: 36px;
	}

	.p-front__lead-text p {
		font-size: var(--f-body);
		line-height: 2;
	}

	.p-front__lead-text p + p {
		margin-top: 38px;
	}

	.p-front__lead-indent-1 {
		margin-left: 36px;
	}

	.p-front__lead-indent-2 {
		margin-left: 58px;
	}

	/* 締めの一文は1行で見せたいので、本文の左右の余白をはみ出させる */
	.p-front__lead-close {
		margin-top: 42px !important;
		margin-inline: -36px;
		font-size: 19px !important;
		white-space: nowrap;
	}

	.p-front__lead-action {
		margin-top: 45px;
		margin-bottom: 100px;
	}

	.p-front__lead-button {
		width: 280px;
		min-height: 64px;
		font-size: 16px;
	}

	.p-front__lead-logo img,
	.p-front__lead-logo .img-slot--empty {
		width: 114px;
	}

	/* --- 2. 今のあなたに --- */
	.p-front__choose {
		padding: 0px 0 120px;
	}

	.p-front__choose::before {
		height: 200px;
	}

	.p-front__choose-title {
		font-size: 38px;
	}

	.p-front__choices {
		grid-template-columns: repeat(2, 1fr);
		gap: 20px 27px;
		margin-top: 60px;
	}

	.p-front__choice-link {
		gap: 20px;
		padding: 20px;
	}

	a.p-front__choice-link {
		gap: 20px;
		padding: 20px 20px 52px;
	}

	.p-front__choice-icon {
		width: 126px;
		height: 126px;
	}

	.p-front__choice-icon img,
	.p-front__choice-icon .img-slot--empty {
		width: 88px;
		height: 88px;
	}

	.p-front__choice-title {
		padding-bottom: 5px;
		font-size: 19px;
	}

	.p-front__choice-text {
		margin-top: 12px;
		font-size: var(--f-body);
	}


	/* --- 3. 数字 --- */
	.p-front__achievement {
		padding: 60px 0 100px;
	}

	.p-front__achievement-title {
		font-size: 48px;
	}

	.p-front__achievement-count {
		margin-top: 0;
		font-size: 56px;
	}

	.p-front__stats {
		grid-template-columns: repeat(3, 1fr);
		margin-top: 60px;
	}

	.p-front__stat {
		gap: 10px;
		padding: 28px 16px;
	}

	/* PC は3列なので、線の消し方を組み直す */
	.p-front__stat:nth-child(2n) {
		border-right: 1px solid var(--f-rule);
	}

	.p-front__stat:nth-child(3n) {
		border-right: 0;
	}

	.p-front__stat:nth-last-child(-n + 2) {
		border-bottom: 1px solid var(--f-rule);
	}

	.p-front__stat:nth-last-child(-n + 3) {
		border-bottom: 0;
	}

	.p-front__stat-icon img,
	.p-front__stat-icon .img-slot--empty {
		width: 108px;
		height: 108px;
	}

	.p-front__stat-label {
		font-size: 16px;
	}

	.p-front__stat-value {
		font-size: 43px;
	}

	/* --- 4・5. ボタン --- */
	.p-front__network .c-actions,
	.p-front__stories .c-actions {
		margin-top: 52px;
	}

	.p-front__wide-button {
		width: 340px;
		min-height: 64px;
		font-size: 16px;
	}

	/* --- 7. トータルサポート --- */
	.p-front__support {
		padding: 100px 0;
	}

	.p-front__support-title {
		font-size: 38px;
	}

	.p-front__support .p-support__cards,
	.p-front__support .c-actions {
		margin-top: 52px;
	}

	/* --- 8. 婚活チーム --- */
	.p-front__team {
		padding: 100px 0 80px;
	}

	.p-front__team-title {
		font-size: 38px;
	}

	.p-front__leads {
		grid-template-columns: repeat(2, 1fr);
		gap: 22px;
		margin-top: 96px;
	}

	.p-front__members {
		grid-template-columns: repeat(4, 1fr);
		gap: 18px;
		margin-top: 96px;
	}

	.p-front__member-link {
		padding: 96px 25px 60px;
	}

	.p-front__member-photo img,
	.p-front__member-photo .img-slot--empty {
		width: 170px;
		height: 170px;
	}

	.p-front__member-card .p-front__member-link {
		padding: 76px 16px 52px;
	}

	.p-front__member-card .p-front__member-photo img,
	.p-front__member-card .p-front__member-photo .img-slot--empty {
		width: 118px;
		height: 118px;
	}

	.p-front__member-name {
		font-size: 30px;
	}

	.p-front__member-card .p-front__member-name {
		font-size: 20px;
	}

	.p-front__member-text {
		font-size: 13px;
	}

	.p-front__member-card .p-front__member-text {
		font-size: 12px;
	}

	.p-front__member-arrow {
		width: 36px;
		height: 36px;
	}

	.p-front__team-actions {
		grid-template-columns: repeat(2, auto);
		justify-content: center;
		gap: 20px;
		margin-top: 48px;
	}

	/* --- 9. こんなことまで聞いていい？ --- */
	.p-front__ask-band {
		padding: 60px 0 52px;
	}

	.p-front__ask-title {
		font-size: 25px;
	}

	/* ご指示：ボタンの幅は500px、ボタン同士の間は20px（SPは現状のまま） */
	.p-front__ask-buttons {
		/* 画面が狭いときは 500px より縮む（840〜1199px 対策） */
		grid-template-columns: repeat(2, minmax(0, 500px));
		justify-content: center;
		/* SP の justify-items: center を打ち消して、ボタンを列幅いっぱいに広げる */
		justify-items: stretch;
		gap: 20px;
		margin-top: 36px;
	}

	.p-front__ask-buttons .p-front__wide-button {
		width: 100%;
	}

	.p-front__ask-photos {
		grid-template-columns: repeat(4, 1fr);
	}

	/* --- 10. 出会う前から入籍まで --- */
	.p-front__steps {
		padding: 100px 0;
	}

	.p-front__steps-title {
		font-size: 38px;
	}

	.p-front__step-list {
		grid-template-columns: repeat(4, 1fr);
		gap: 24px;
		margin-top: 52px;
	}

	/*
	 * ステップのあいだに出す「▶▶」。
	 * 最後のステップには出さない。
	 */
	.p-front__step {
		position: relative;
	}

	/*
	 * ご指示：矢印は「結婚相談所が初めての方へ」の FLOW と同じ「▶▶」にする。
	 * css/page-first.css の .p-flow__step の矢印と同じ描き方。
	 * right の値が小さいほど左側に来る。左＝薄いオレンジ、右＝オレンジ。
	 */
	.p-front__step:not(:last-child)::before,
	.p-front__step:not(:last-child)::after {
		content: "";
		position: absolute;
		top: 82px;
		width: 0;
		height: 0;
		transform: translateY(-50%);
		border-top: 9px solid transparent;
		border-bottom: 9px solid transparent;
		border-left: 12px solid var(--color-primary-light);
		border-right: 0;
	}

	.p-front__step:not(:last-child)::before {
		right: -18px;
	}

	.p-front__step:not(:last-child)::after {
		right: -34px;
		border-left-color: var(--color-primary);
	}

	.p-front__step-head {
		width: 100%;
		max-width: 205px;
	}

	.p-front__step-label {
		font-size: 20px;
		margin-bottom: -10px;
		margin-top: 10px;
	}

	.p-front__step-icon img,
	.p-front__step-icon .img-slot--empty {
		width: 200px;
		height: 160px;
	}

	.p-front__step-items {
		margin-top: 22px;
	}

	.p-front__step-items dt {
		font-size: 15px;
	}

	.p-front__step-items dd {
		font-size: var(--f-body);
	}

	/* --- 11. 料金 --- */
	.p-front__price {
		padding: 100px 0;
	}

	.p-front__price-title {
		font-size: 38px;
	}

	.p-front__price-lead {
		margin-top: 20px;
		font-size: var(--f-body);
	}

	.p-front__price-card {
		margin-top: 36px;
	}

	.p-front__price-card-title {
		padding: 16px;
		font-size: 19px;
	}

	.p-front__price-card-body {
		padding: 28px 22px;
	}

	.p-front__price-items {
		grid-template-columns: repeat(3, 1fr);
		gap: 14px;
	}

	.p-front__price-item {
		padding: 14px 16px;
	}

	.p-front__price-item-label {
		font-size: 15px;
	}

	.p-front__price-item-value {
		font-size: 24px;
	}

	.p-front__price-total {
		margin-top: 22px;
	}

	.p-front__price-total-value {
		font-size: 61px;
	}

	.p-front__price-total-unit {
		font-size: 35px;
	}

	.p-front__price-others {
		grid-template-columns: repeat(2, 1fr);
		gap: 16px;
		margin-top: 16px;
	}

	.p-front__price-other {
		padding: 22px;
	}

	.p-front__price-notes {
		margin-top: 20px;
		font-size: 12px;
	}

	.p-front__price .c-actions {
		margin-top: 32px;
	}

	/* --- 12. 全国対応 --- */
	.p-front__areas {
		padding: 100px 0;
	}

	.p-front__areas-title {
		font-size: 38px;
	}

	.p-front__areas-lead {
		margin-top: 20px;
		font-size: var(--f-body);
	}

	.p-front__area-list {
		grid-template-columns: repeat(2, 1fr);
		gap: 2px;
		margin-top: 36px;
	}

	.p-front__area-link {
		min-height: 105px;
	}

	.p-front__area-name {
		font-size: 19px;
	}

	.p-front__area-note {
		font-size: 13px;
	}

	.p-front__area-arrow {
		margin-right: 28px;
		width: 10px;
		height: 10px;
	}

	/* --- 13. 受賞 --- */
	.p-front__awards {
		padding: 100px 0;
	}

	.p-front__awards-title {
		font-size: 38px;
	}

	.p-front__awards-lead {
		margin-top: 24px;
		font-size: var(--f-body);
	}

	.p-front__award-list {
		grid-template-columns: repeat(3, 1fr);
		gap: 24px;
		margin-top: 44px;
	}

	.p-front__award-number {
		font-size: 35px;
	}

	.p-front__award-text {
		font-size: 14px;
	}

	.p-front__awards-note {
		font-size: 11px;
	}

	.p-front__awards .c-actions {
		margin-top: 40px;
	}

	/* --- 15. 動画と言葉 --- */
	.p-front__media {
		padding: 100px 0;
	}

	.p-front__media-bg {
		right: -4%;
		top: -40px;
		width: 62%;
		opacity: .75;
	}

	.p-front__media-title {
		font-size: 38px;
	}

	/*
	 * 6分割の升目に置き、1行目は3枚、2行目は2枚を中央寄せにする。
	 * カードの幅はどの行でも同じになる。
	 */
	.p-front__media-list {
		grid-template-columns: repeat(6, 1fr);
		gap: 22px;
		margin-top: 44px;
	}

	.p-front__media-card {
		grid-column: span 2;
	}

	.p-front__media-card:nth-child(4) {
		grid-column: 2 / span 2;
	}

	.p-front__media-card:nth-child(5) {
		grid-column: 4 / span 2;
	}

	.p-front__media-body {
		padding: 20px;
	}


	/* --- 16. 新着情報 --- */
	.p-front__news {
		padding: 100px 0;
	}

	.p-front__news-title {
		font-size: 38px;
	}

	.p-front__news-columns {
		grid-template-columns: repeat(2, 1fr);
		gap: 24px;
		margin-top: 44px;
	}

	.p-front__news-heading {
		padding: 18px;
		font-size: 20px;
	}

	.p-front__news-link {
		padding: 18px 4px;
	}

	.p-front__news-name {
		font-size: var(--f-body);
	}
}

/* トップの成婚ストーリー・サポートカード。 */
.p-front__linked-card { position: relative; transition: transform .25s ease, box-shadow .25s ease; }
.p-front__linked-card .p-front__card-link { color: inherit; text-decoration: none; }
.p-front__linked-card .p-front__card-link::after { content: ""; position: absolute; inset: 0; z-index: 1; cursor: pointer; }
.p-front__linked-card .p-staff-list__arrow { z-index: 2; }
.p-front__linked-card .p-stories__body,
.p-front__linked-card .p-support__card-body { padding-bottom: 52px; }
.p-front__linked-card:focus-within { outline: 2px solid var(--color-primary); outline-offset: 3px; }
@media (hover: hover) {
 .p-front__linked-card:hover { transform: translateY(-6px); box-shadow: 0 12px 28px rgba(26,19,17,.12); }
 .p-front__linked-card:hover .p-front__card-link { color: var(--color-primary); }
 .p-front__linked-card:hover .p-staff-list__arrow { background-color: var(--color-primary-dark); }
 .p-front__linked-card:hover .p-staff-list__arrow::before { transform: translate(-30%, -50%) rotate(45deg); }
}
@media (prefers-reduced-motion: reduce) {
 .p-front__linked-card { transition: none; }
 .p-front__linked-card:hover { transform: none; }
}

/* トップのカード画像は固定高で切らず、元の比率で表示する。 */
.p-front__stories .p-stories { grid-template-columns: minmax(0, 1fr); gap: 24px; }
.p-front__stories .p-stories__item,
.p-front__support .p-support__card,
.p-front__support .p-support__card-media,
.p-front__support .p-support__card-body { min-width: 0; }
.p-front__stories .p-stories__image img,
.p-front__stories .p-stories__image .img-slot--empty {
 width: 100%; height: auto; aspect-ratio: auto; object-fit: contain;
}
.p-front__support .p-support__cards { grid-template-columns: minmax(0, 1fr); }
.p-front__support .p-support__card { grid-template-columns: minmax(0, 1fr); }
.p-front__support .p-support__card-media { align-self: center; }
.p-front__support .p-support__card-media--pc,
.p-front__support .p-support__card-media--sp { height: auto; }
.p-front__support .p-support__card-media img,
.p-front__support .p-support__card-media .img-slot--empty {
 display: block; width: 100%; max-width: 100%; height: auto; min-height: 0; aspect-ratio: auto; object-fit: contain;
}
.p-front__support .p-support__card-body { align-self: center; }
@media (min-width: 600px) and (max-width: 1023px) {
 .p-front__stories .p-stories { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 1024px) {
 .p-front__stories .p-stories { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (min-width: 840px) {
 .p-front__support .p-support__card { grid-template-columns: minmax(0, 28%) minmax(0, 1fr); }
 .p-front__support .p-support__card-body { padding: 22px 26px 52px; }
}

/* 画像未配置の枠は、固有寸法がないため比率を明示する。 */
.p-front__stories .p-stories__image .img-slot--empty { aspect-ratio: 383 / 200; }
.p-front__support .p-support__card-media--pc .img-slot--empty { aspect-ratio: 360 / 300; }
.p-front__support .p-support__card-media--sp .img-slot--empty { aspect-ratio: 560 / 240; }

/* トップの案内ボタン：親の幅を上限にし、文言による幅のばらつきを防ぐ。 */
.home .c-button { box-sizing: border-box; max-width: 100%; min-width: 0; line-height: 1.6; }
.home .c-button::after { flex-shrink: 0; }
.p-front__wide-button { width: min(100%, 300px); padding: 12px 40px; }
.p-front__team-actions,
.p-front__ask-buttons { grid-template-columns: minmax(0, 300px); justify-content: center; justify-items: stretch; }
.p-front__team-actions > li,
.p-front__ask-buttons > li { min-width: 0; }
.p-front__team-actions .p-front__wide-button,
.p-front__ask-buttons .p-front__wide-button { width: 100%; height: 100%; }
.home .p-cta__buttons { width: 100%; max-width: 420px; margin-inline: auto; }
.home .p-cta__buttons > li { min-width: 0; }
.home .p-cta__buttons .c-button { min-height: 60px; height: 100%; padding: 14px 20px; }
.home .p-cta__buttons--split { grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (max-width: 389px) {
 .home .p-cta__buttons--split { grid-template-columns: minmax(0, 1fr); }
}
@media (min-width: 840px) {
 .p-front__wide-button { width: min(100%, 340px); }
 .p-front__team-actions { grid-template-columns: repeat(2, minmax(0, 340px)); }
 .p-front__ask-buttons { grid-template-columns: repeat(2, minmax(0, 500px)); }
 .home .p-cta__buttons { max-width: 550px; margin-inline: 0; }
 .home .p-cta__buttons .c-button { min-height: 64px; }
}

/* タブレットでは写真が全面に広がらないよう、横並びに切り替える。 */
@media (min-width: 600px) and (max-width: 839px) {
 .p-front__support .p-support__card { grid-template-columns: minmax(0, 30%) minmax(0, 1fr); }
 .p-front__support .p-support__card-media--pc { display: block; }
 .p-front__support .p-support__card-media--sp { display: none; }
 .p-front__support .p-support__card-body { padding: 18px 20px 52px; }
}

/* 婚活チーム：責任者2名とサポートメンバーの段を分け、カード幅を制限。 */
.p-front__team .p-staff-list__leads,
.p-front__team .p-staff-list__team {
 grid-template-columns: minmax(0, 360px);
 justify-content: center;
 margin-inline: auto;
}
.p-front__team .p-staff-list__team { gap: 62px 24px; }
.p-front__team .p-staff-list__lead,
.p-front__team .p-staff-list__team-item { min-width: 0; }
.p-front__team .p-staff-list__card { max-width: 100%; }
@media (min-width: 600px) {
 .p-front__team .p-staff-list__leads,
 .p-front__team .p-staff-list__team { grid-template-columns: repeat(2, minmax(0, 360px)); column-gap: 24px; }
}
@media (min-width: 1024px) {
 .p-front__team .p-staff-list__team { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}

/* トップ全体の中間幅：広すぎる1列と、狭すぎる多列を避ける。 */
.p-front__choose .p-front__choices > li,
.p-front__area-list > li,
.p-front__media-card,
.p-front__step { min-width: 0; }
.p-front__area-link { min-height: 140px; }
.p-front__area-image { position: absolute; inset: 0; }
.p-front__area-image img { display: block; }
.p-front__media-link { max-width: 100%; }
.p-front__media-link::after { flex-shrink: 0; }
@media (max-width: 599px) {
 .p-front__media-list { width: 100%; max-width: 360px; }
 .p-front__achievement-count { font-size: clamp(24px, 7.5vw, 30px); }
}
@media (min-width: 600px) and (max-width: 839px) {
 .p-front__mv-image--pc { display: block; }
 .p-front__mv-image--sp { display: none; }
 .p-front__lead-photo--bottom { max-width: 480px; }
 .p-front__choose .p-front__choices { grid-template-columns: repeat(2, minmax(0, 1fr)); }
 .p-front__choose .p-front__choice-link { flex-direction: column; align-items: flex-start; }
 .p-front__area-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
 .p-front__ask-photos { grid-template-columns: repeat(4, minmax(0, 1fr)); }
 .p-front__price .l-section { max-width: 680px; }
}
@media (min-width: 600px) and (max-width: 1023px) {
 .p-front__media-list { max-width: 100%; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
 .p-front__media-card,
 .p-front__media-card:nth-child(4),
 .p-front__media-card:nth-child(5) { grid-column: auto; }
 .p-front__step-list { max-width: 720px; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 40px 32px; margin-inline: auto; }
 .p-front__step:not(:last-child)::before,
 .p-front__step:not(:last-child)::after { content: none; }
 .p-front__step-items { max-width: 240px; margin-inline: auto; }
}
@media (min-width: 1024px) {
 .p-front__step-list { gap: 40px; }
 .p-front__step:not(:last-child)::before { right: -16px; }
 .p-front__step:not(:last-child)::after { right: -32px; }
 .p-front__step-icon img,
 .p-front__step-icon .img-slot--empty { max-width: 100%; object-fit: contain; }
}

/* セカンドビューの調整はスマホ・タブレットのみ。PCは元の配置を維持。 */
@media (max-width: 839px) {
.p-front__lead { padding: clamp(40px, 6vw, 80px) 24px 56px; }
.p-front__lead-inner { max-width: 1100px; }
.p-front__lead-title { padding: 0; max-width: 900px; margin-inline: auto; font-size: clamp(25px, 3.2vw, 38px); text-align: center; }
.p-front__lead-title br.sp { display: none; }
.p-front__lead-body { grid-template-columns: minmax(0, 1fr); gap: 28px; margin-top: 32px; }
.p-front__lead-text { width: 100%; max-width: 560px; padding: 0; margin-inline: auto; min-width: 0; }
.p-front__lead-text p { font-size: 16px; line-height: 1.9; }
.p-front__lead-text p + p { margin-top: 22px; }
.p-front__lead-text br { display: none; }
.p-front__lead-text .p-front__lead-indent-1,
.p-front__lead-text .p-front__lead-indent-2 { margin-left: 0; }
.p-front__lead-text .p-front__lead-close { margin: 26px 0 0 !important; white-space: normal; font-size: 18px !important; }
.p-front__lead-photo { position: static; width: 100%; max-width: none; margin: 0; }
.p-front__lead-photo--left,
.p-front__lead-photo--top { display: none; }
.p-front__lead-photos { display: grid; width: 100%; max-width: 420px; margin-inline: auto; gap: 16px; }
.p-front__lead-photo img,
.p-front__lead-photo .img-slot--empty { border-radius: 16px; }
.p-front__lead-photo--bottom img,
.p-front__lead-photo--bottom .img-slot--empty { aspect-ratio: 431 / 317; object-fit: contain; }
.p-front__lead-action { padding: 0; margin: 32px 0 0; }
}
@media (min-width: 600px) and (max-width: 839px) {
 .p-front__lead-body { grid-template-columns: minmax(0, 3fr) minmax(0, 2fr); align-items: center; gap: 28px; }
}

/* スマホの見出しは意味のまとまりで3行にし、強調語を途中で分断しない。 */
@media (max-width: 599px) {
 .p-front__lead-title { font-size: clamp(20px, 5.8vw, 25px); }
 .p-front__lead-title br.sp { display: inline; }
 .p-front__lead-text p { text-wrap: pretty; line-break: strict; }
 .p-front__lead-text strong { display: inline-block; }
}

/* スマホの改行：見出しは語句単位、カードは行の長さを均す。 */
@media (max-width: 599px) {
 .p-front .p-front__phrase { display: inline-block; }
 .p-front h2,
 .p-front h3,
 .p-front__choice-title,
 .p-front__area-name { text-wrap: balance; line-break: strict; }
 .p-front p,
 .p-front__choice-text,
 .p-front__news-name,
 .p-front .p-staff-list__text,
 .p-front .c-button { text-wrap: pretty; line-break: strict; }
 .p-front h2 em,
 .p-front__stat-value,
 .p-front .p-price__amount { white-space: nowrap; }
 .p-front__areas-lead br,
 .p-front__awards-lead br { display: none; }
 .p-front__network .c-heading { font-size: clamp(21px, 6vw, 25px); }
 .p-front__ask-title { font-size: clamp(18px, 5.5vw, 22px); }
 .p-front .p-staff-list__team-title { font-size: clamp(22px, 6vw, 25px); }
}

/* 流れの円形イラストを活かし、行動と補足の文字階層を整理する。 */
.p-front__step-items dt {
  padding-bottom: 0;
  border-bottom: 0;
  color: var(--color-primary);
  font-size: 16px;
  font-weight: 700;
  line-height: 1.6;
}
.p-front__step-items dd {
  margin-top: 4px;
  font-size: 14px;
  line-height: 1.75;
}
.p-front__step-items dd + dt { margin-top: 18px; }
@media (max-width: 599px) {
  .p-front__step-list { max-width: 420px; gap: 52px; }
  .p-front__step { position: relative; }
  .p-front__step-head { width: 140px; }
  .p-front__step-label { font-size: 18px; margin: 0; }
  .p-front__step-icon { margin-top: 2px; }
  .p-front__step-icon img,
  .p-front__step-icon .img-slot--empty { width: 120px; height: 90px; }
  .p-front__step-items { max-width: 320px; margin: 12px auto 0; padding-inline: 12px; }
  .p-front__step-items dt { line-height: 1.45; }
  .p-front__step-items dd { margin-top: 2px; line-height: 1.55; }
  .p-front__step-items dd + dt { margin-top: 12px; }
  .p-front__step:not(:last-child)::before,
  .p-front__step:not(:last-child)::after {
    content: "";
    position: absolute;
    left: 50%;
    width: 0;
    height: 0;
    transform: translateX(-50%);
    border-left: 7px solid transparent;
    border-right: 7px solid transparent;
    border-bottom: 0;
    border-top: 9px solid var(--color-primary-light);
  }
  .p-front__step:not(:last-child)::before { top: calc(100% + 13px); }
  .p-front__step:not(:last-child)::after {
    top: calc(100% + 27px);
    border-top-color: var(--color-primary);
  }
}

/* noteの記事カードは、画像・タイトル・概要の順に読みやすくする。 */
.p-front__stories .p-stories__body {
  padding: 20px 20px 60px;
}
.p-front__stories .p-stories__title {
  font-family: var(--font-base);
  font-size: 18px;
  font-weight: 700;
  line-height: 1.65;
  letter-spacing: 0;
  text-wrap: pretty;
  line-break: strict;
}
.p-front__stories .p-stories__text {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
  overflow: hidden;
  margin-top: 12px;
  font-size: 14px;
  font-weight: 400;
  line-height: 1.8;
  color: var(--color-text-body);
  text-wrap: pretty;
}
@media (max-width: 599px) {
  .p-front__stories .p-stories__body { padding: 18px 18px 56px; }
  .p-front__stories .p-stories__title { font-size: 17px; }
}

/* 会員ネットワークの数字と単位をまとめ、スマホでは3行に整える。 */
.p-front__network .p-members__counts-title em {
  display: inline-block;
  white-space: nowrap;
}
@media (max-width: 599px) {
  .p-front__network .p-members__counts-title {
    font-size: clamp(18px, 5vw, 20px);
  }
  .p-front__network .p-members__counts-title em {
    display: block;
    margin-top: 4px;
    font-size: 1.8em;
    line-height: 1.3;
  }
}
