@charset "UTF-8";

/*=====================

ご契約者様インタビュー CSS

=====================*/

#interview {
	--iv-text: #333;
	--iv-brown: #6f6357;
	--iv-beige: #bfb09b;
	--iv-green: #3d4a3d;
	--iv-gold: #b0a37b;
	--iv-tab-on: #b3ab8b;
	--iv-tab-off: #efede8;
	--iv-point: #c9ccbc;
	--iv-profile: #cdc8b4;
	--iv-marker: #fbe1e9;
	--iv-wife: #a06f5f;
	--iv-husband: #5b6b6e;
}


/*---------------------*/
/* 共通 */
/*---------------------*/
/* 左の縦帯をセクション内で固定表示（style.css の overflow: hidden を上書き） */
article {
	overflow: clip !important;
}

/* 縦帯：セクション番号＋見出しが入るので少し小さく */
.main_pCon.iv_qa>.p_name p {
	font-size: 19px;
	letter-spacing: 0.12em;
}

/* 木目テクスチャ背景（デザインページと共通素材） */
#interview .l-article,
#interview .main_pCon.is-bg {
	background: #FFF url(../images/design/bg_01.webp) no-repeat 0 0 / 100% auto;
}

/* コンテンツ幅 */
.iv_inner {
	width: 80%;
	max-width: 1200px;
	margin: 0 auto;
}

/* 本文 */
.iv_txt p {
	font-feature-settings: "palt";
	font-size: 18px;
	line-height: 2.0;
	letter-spacing: 0.01em;
	text-align: justify;
	color: var(--iv-text);
	margin: 0;
}

/* マーカー */
.iv_mk {
	background: linear-gradient(transparent 66%, var(--iv-marker) 66%);
}

/* 話者ラベル（夫・妻など） */
.iv_txt p.iv_spk {
	position: relative;
	padding-left: 2em;
	/* 語りだしを1字下げ */
	text-indent: 1em;
}

.iv_txt p.iv_spk+p.iv_spk {
	margin-top: 1em;
}

.iv_spk__who {
	position: absolute;
	top: 0;
	left: 0;
	/* 親pの字下げ(text-indent)を継承すると縦線に重なるためリセット */
	text-indent: 0;
	font-weight: 700;
	color: var(--iv-brown);
}

/* 妻：やわらかなテラコッタ／夫：落ち着いたブルーグレー（ブラウン基調になじむ範囲で） */
.iv_spk__who--wife {
	color: var(--iv-wife);
}

.iv_spk__who--husband {
	color: var(--iv-husband);
}

/* 話者ごとの細い縦線（ラベルと本文の間） */
.iv_txt p.iv_spk--wife::before,
.iv_txt p.iv_spk--husband::before {
	content: "";
	position: absolute;
	top: 0.5em;
	bottom: 0.5em;
	left: 1.35em;
	width: 2px;
	opacity: 0.4;
}

.iv_txt p.iv_spk--wife::before {
	background: var(--iv-wife);
}

.iv_txt p.iv_spk--husband::before {
	background: var(--iv-husband);
}

/* 長い発言の区切り（SPのみ改行＋小さめの段落間） */
.iv_brk {
	display: none;
}

/* 画像並び */
.iv_imgs {
	display: grid;
	gap: 1.1em;
	padding: 0;
	margin: 0;
}

.iv_imgs--2 {
	grid-template-columns: repeat(2, 1fr);
	gap: 1.6em 1.8em;
}

.iv_imgs--3 {
	grid-template-columns: repeat(3, 1fr);
}

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

.iv_imgs img {
	display: block;
	width: 100%;
	object-fit: cover;
}

.iv_imgs--2 img {
	aspect-ratio: 562 / 352;
}

.iv_imgs--4 img {
	aspect-ratio: 308 / 193;
}

/* 保育園写真（横長） */
.iv_imgs--4.iv_imgs--s img {
	aspect-ratio: 1181 / 621;
}

.iv_imgs--port img,
.iv_imgs--4.iv_imgs--port img {
	aspect-ratio: 292 / 372;
}

.iv_imgs--tall img {
	aspect-ratio: 2 / 3;
}

.iv_imgs--sq img {
	aspect-ratio: 403 / 428;
}

/* 男性の左肩が入るようトリミング位置を左寄りに */
.iv_imgs--sq img.iv02_04_img02 {
	object-position: 35% 50%;
}

/* 家族全員が入るようトリミング位置を右端に */
.iv_imgs--sq img.iv02_06_img02 {
	object-position: 100% 50%;
}

/* 子どもが中央寄りになるようトリミング位置を左寄りに */
.iv_imgs--sq img.iv02_06_img04 {
	object-position: 35% 50%;
}

/* 人物が中央に来るようトリミング位置を右寄りに */
.iv_imgs--port img.iv03_06_img02 {
	object-position: 80% 50%;
}

/* 人物が中央に来るようトリミング位置を左端に */
.iv_imgs--port img.iv03_06_img03 {
	object-position: 0% 50%;
}

/* ロゴマークが入るようトリミング位置を左寄りに */
.iv_imgs--port img.iv01_06_img03 {
	object-position: 30% 50%;
}

/* 建物が中央に来るようトリミング位置を右寄りに */
.iv_imgs--port img.iv01_06_img04 {
	object-position: 70% 50%;
}

/* 段落間を1行あける */
.iv_txt--sep p+p {
	margin-top: 2.15em;
}

/* grid子要素が画像の実寸幅に引っ張られないように */
.iv_col2>*,
.iv_row03>*,
.iv_imgs>li,
.iv_mv__list>li,
.iv_tabList>li,
.iv_box__con>*,
.pt_head__sub>li,
.pt_access>li,
.pt_row>*,
.pt_block>*,
.iv_split>*,
.iv_split__sub>* {
	min-width: 0;
}

@media screen and (max-width: 768px) {
	.iv_inner {
		width: 92%;
	}

	.iv_txt p {
		font-size: 2.344vw;
		line-height: 1.85;
		letter-spacing: 0.03em;
	}

	.iv_imgs {
		gap: 0.6em;
	}

	.iv_imgs--2 {
		gap: 0.8em;
	}

	.iv_imgs--4 {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media screen and (max-width: 430px) {
	.iv_txt p {
		font-size: 4.186vw;
		line-height: 1.8;
		letter-spacing: 0.02em;
		/* 文節で折り返し、行末の1〜2文字の取り残しや禁則崩れを防ぐ */
		text-align: left;
		line-break: strict;
		word-break: auto-phrase;
		overflow-wrap: anywhere;
		text-wrap: pretty;
	}

	.iv_txt p.iv_spk {
		padding-left: 1.75em;
	}

	.iv_txt p.iv_spk--wife::before,
	.iv_txt p.iv_spk--husband::before {
		left: 1.2em;
		top: 0.45em;
		bottom: 0.45em;
	}

	.iv_txt p.iv_spk+p.iv_spk {
		margin-top: 2em;
	}

	.iv_brk {
		display: block;
		height: 0.8em;
	}
}


/*---------------------*/
/* メインタイトル装飾（他ページと同じアニメーション） */
/*---------------------*/
.mainTtlArea .ttl_icon {
	position: absolute;
	bottom: 4%;
	right: 2%;
	width: 15%;
	z-index: 10;
	animation: ttl_icon_fadein 1s ease-in-out 0.3s forwards;
	opacity: 0;
	display: flex;
	align-items: flex-end;
}

.mainTtlArea .ttl_icon img {
	animation: ttl_icon 2s ease-in-out 1.3s infinite;
	height: auto;
}

/* 花 */
.mainTtlArea .ttl_icon img:nth-child(1) {
	width: 38%;
	transform-origin: center bottom;
}

/* 猫 */
.mainTtlArea .ttl_icon img:nth-child(2) {
	width: 62%;
	animation-delay: 1.6s;
}

@keyframes ttl_icon_fadein {
	0% {
		opacity: 0;
	}

	100% {
		opacity: 1;
	}
}

@keyframes ttl_icon {
	0% {
		transform: translate(0, 0) rotate(0deg);
	}

	20% {
		transform: translate(0, 0) rotate(0deg);
	}

	30% {
		transform: translate(0, -10px) rotate(0deg);
	}

	40% {
		transform: translate(0, -10px) rotate(-7deg);
	}

	50% {
		transform: translate(0, -10px) rotate(0deg);
	}

	60% {
		transform: translate(0, -10px) rotate(-7deg);
	}

	70% {
		transform: translate(0, -10px) rotate(0deg);
	}

	80% {
		transform: translate(0, 0) rotate(0deg);
	}

	100% {
		transform: translate(0, 0) rotate(0deg);
	}
}

@media screen and (max-width: 768px) {
	.mainTtlArea .ttl_icon {
		width: 15%;
	}
}


/*---------------------*/
/* メインビジュアル */
/*---------------------*/
.iv_mv {
	position: relative;
	margin-bottom: 7em;
}

.iv_mv__list {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	padding: 0;
	margin: 0;
}

.iv_mv__btn {
	position: relative;
	display: block;
	width: 100%;
	padding: 0;
	border: none;
	background: none;
	cursor: pointer;
	font: inherit;
	overflow: hidden;
}

.iv_mv__btn img {
	display: block;
	width: 100%;
	aspect-ratio: 2 / 3;
	object-fit: cover;
	transition: transform .6s;
}

/* 中央の画像：左の子どもが入るようトリミング位置を左寄りに */
.iv_mv__item:nth-child(2) .iv_mv__btn img {
	object-position: 40% 50%;
}

/* K様の画像（左端）：トリミング位置を左へ32px */
.iv_mv__item:nth-child(1) .iv_mv__btn img {
	object-position: calc(50% + 32px) 50%;
}

.iv_mv__btn:hover img {
	transform: scale(1.04);
}

.iv_mv__name {
	position: absolute;
	left: 50%;
	bottom: 11%;
	transform: translateX(-50%);
	width: 66%;
	font-family: 'Noto Serif JP', serif;
	font-size: 15px;
	line-height: 1.4;
	letter-spacing: 0.1em;
	color: #FFF;
	background: rgba(184, 174, 140, 0.88);
	padding: 0.9em 0.5em;
	box-sizing: border-box;
}

.iv_mv__ttl {
	position: absolute;
	top: 50%;
	left: 0;
	width: 100%;
	transform: translateY(-50%);
	font-family: "trajan-pro-3", serif;
	font-weight: 400;
	font-size: clamp(40px, 4.6vw, 60px);
	line-height: 1;
	letter-spacing: 0.03em;
	text-align: center;
	color: #fff;
	text-shadow: 0 0 2px rgba(0, 0, 0, 0.5), 0 0 12px rgba(0, 0, 0, 0.45), 0 0 32px rgba(0, 0, 0, 0.35);
	pointer-events: none;
	margin: 0;
}

@media screen and (max-width: 768px) {
	.iv_mv {
		width: 96%;
		margin: 0 auto 3em;
	}

	/* K様の画像（左端）：SPはトリミング位置を左へ11pxに */
	.iv_mv__item:nth-child(1) .iv_mv__btn img {
		object-position: calc(50% + 11px) 50%;
	}

	/* S様の画像（右端）：SPは少し拡大して人物に寄せ、右へ15px移動 */
	.iv_mv__item:nth-child(3) .iv_mv__btn img,
	.iv_mv__item:nth-child(3) .iv_mv__btn:hover img {
		transform: translateX(15px) scale(1.3);
		transform-origin: 42% 10%;
	}

	.iv_mv__name {
		width: 88%;
		bottom: 3%;
		font-size: 2.083vw;
		letter-spacing: 0;
		padding: 0.7em 0.2em;
	}

	/* SPはFVの下に表示 */
	.iv_mv__ttl {
		position: static;
		transform: none;
		margin-top: 0.6em;
		font-size: 6.5vw;
		color: var(--iv-brown);
		text-shadow: none;
	}
}

@media screen and (max-width: 430px) {
	.iv_mv__name {
		font-size: 2.4vw;
	}
}


/*---------------------*/
/* タブ */
/*---------------------*/
.iv_tab {
	width: 84%;
	max-width: 1150px;
	margin: 0 auto;
}

.iv_tab--bottom {
	padding: 6em 0 2em;
}

.iv_tabList {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 16px;
	padding: 0;
	margin: 0;
}

.iv_tabList li {
	margin: 0;
}

.iv_tabList button {
	position: relative;
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	width: 100%;
	height: 100%;
	min-height: 138px;
	padding: 1.2em 0.5em 1em;
	border: none;
	background: var(--iv-tab-off);
	color: var(--iv-text);
	cursor: pointer;
	font: inherit;
	box-sizing: border-box;
	transition: background .4s, color .4s;
}

.iv_tabList button:hover {
	background: #e4e0d6;
}

.iv_tabList button>span {
	position: relative;
	z-index: 1;
}

/* 英字＋下線 */
.iv_tabList button .en {
	display: block;
	font-family: "trajan-pro-3", serif;
	font-weight: 400;
	font-size: 16px;
	line-height: 1;
	letter-spacing: 0.12em;
	color: var(--iv-gold);
	transition: color .4s;
}

.iv_tabList button .en .num {
	font-size: 1.9em;
	margin-left: 0.25em;
	letter-spacing: 0.05em;
	vertical-align: -0.12em;
}

.iv_tabList button .en::after {
	content: "";
	display: block;
	width: 56px;
	height: 2px;
	background: var(--iv-gold);
	margin: 0.7em auto 0.9em;
	transition: background .4s;
}

.iv_tabList button .en--point {
	font-family: 'Noto Serif JP', serif;
	font-size: 18px;
	letter-spacing: 0.12em;
}

.iv_tabList button .en--point::after {
	margin: 0.5em auto 0.7em;
}

.iv_tabList button .ja {
	font-family: 'Noto Serif JP', serif;
	font-weight: 600;
	font-size: 14px;
	line-height: 1.5;
	letter-spacing: 0.05em;
}

.iv_tabList button .ja--s {
	font-size: 11px;
}

/* 下向き矢印 */
.iv_tabList button::after {
	content: "";
	position: relative;
	z-index: 1;
	display: block;
	width: 9px;
	height: 9px;
	border-right: solid 1px #8a8a8a;
	border-bottom: solid 1px #8a8a8a;
	transform: rotate(45deg);
	margin-top: 0.5em;
}

/* 魅力のポイント（二重枠） */
.iv_tabList button.is-point {
	border: solid 6px var(--iv-point);
}

.iv_tabList button.is-point::before {
	content: "";
	position: absolute;
	inset: 3px;
	border: solid 1px var(--iv-point);
}

/* 選択中 */
.iv_tabList button.is-current {
	background: var(--iv-tab-on);
	color: #FFF;
	cursor: default;
}

.iv_tabList button.is-current .en {
	color: #FFF;
}

.iv_tabList button.is-current .en::after {
	background: #FFF;
}

.iv_tabList button.is-current::after {
	border-color: #FFF;
}

/* フッターのタブ：矢印を上向きに */
.iv_tab--bottom .iv_tabList button::after {
	transform: rotate(-135deg);
	margin-top: 0.9em;
}

.iv_tabList button.is-point.is-current {
	background: #aeb29e;
}

.iv_tabList button.is-point.is-current::before {
	border-color: #FFF;
}

@media screen and (max-width: 768px) {
	.iv_tab {
		width: 96%;
	}

	.iv_tab--bottom {
		width: 92%;
		padding: 4em 0 2em;
	}

	.iv_tabList {
		grid-template-columns: repeat(2, 1fr);
		gap: 8px;
	}

	.iv_tabList button {
		min-height: 22vw;
	}

	.iv_tabList button .en {
		font-size: 2.2vw;
	}

	/* 「INTERVIEW」と番号を改行 */
	.iv_tabList button .en .num {
		display: block;
		margin: 0.3em 0 0;
	}

	.iv_tabList button .en::after {
		width: 40px;
	}

	.iv_tabList button .en--point {
		font-size: 2.6vw;
	}

	.iv_tabList button .ja {
		font-size: 1.953vw;
	}

	.iv_tabList button .ja--s {
		font-size: 1.7vw;
	}
}

@media screen and (max-width: 430px) {
	.iv_tabList button {
		min-height: 28vw;
	}

	.iv_tabList button .en {
		font-size: 3.256vw;
	}

	.iv_tabList button .en::after {
		width: 30px;
	}

	.iv_tabList button .en--point {
		font-size: 3.721vw;
	}

	.iv_tabList button .ja {
		font-size: 2.791vw;
	}

	.iv_tabList button .ja--s {
		font-size: 2.4vw;
	}

	.iv_tabList button.is-point {
		border-width: 4px;
	}
}


/*---------------------*/
/* タブパネル */
/*---------------------*/
.iv_panel {
	display: none;
}

.iv_panel.is-active {
	display: block;
	animation: iv_panel_fade .6s ease-in-out forwards;
}

@keyframes iv_panel_fade {
	0% {
		opacity: 0;
	}

	100% {
		opacity: 1;
	}
}


/*---------------------*/
/* インタビュー：導入・PROFILE */
/*---------------------*/
.iv_intro {
	display: grid;
	grid-template-columns: 1fr 1.45fr;
	align-items: center;
	gap: 4em;
	padding: 6em 0 3em;
}

.iv_intro__txt,
.iv_profile__box p,
.iv_qaTtl,
.iv_box__ttl {
	text-align: left;
}

.iv_intro__num {
	font-family: "trajan-pro-3", serif;
	font-weight: 400;
	font-size: 30px;
	line-height: 1;
	letter-spacing: 0.12em;
	color: #222;
	margin: 0;
}

.iv_intro__num span {
	font-size: 1.9em;
	margin-left: 0.3em;
	letter-spacing: 0.05em;
	vertical-align: -0.1em;
}

.iv_intro__ttl {
	font-feature-settings: "palt";
	font-family: 'Noto Serif JP', serif;
	font-weight: 400;
	font-size: clamp(22px, 2.1vw, 28px);
	line-height: 1.75;
	letter-spacing: 0.12em;
	color: #222;
	margin: 1.3em 0 0.8em;
}

.iv_intro__name {
	font-family: 'Noto Serif JP', serif;
	font-weight: 600;
	font-size: 17px;
	letter-spacing: 0.1em;
	color: #222;
	margin: 0;
}

.iv_intro__img img {
	display: block;
	width: 100%;
	aspect-ratio: 718 / 433;
	object-fit: cover;
}

/* PROFILE */
.iv_profile {
	background: var(--iv-profile);
	padding: 1.4em 3.5em 2.4em;
	margin-bottom: 7em;
	box-sizing: border-box;
}

.iv_profile__ttl {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 2em;
	margin: 0;
}

.iv_profile__ttl::before,
.iv_profile__ttl::after {
	content: "";
	width: 22%;
	height: 1px;
	background: #6b7465;
}

.iv_profile__ttl span {
	font-family: "trajan-pro-3", serif;
	font-size: 17px;
	letter-spacing: 0.2em;
	color: var(--iv-green);
}

.iv_profile__box {
	border: solid 2px #FFF;
	border-radius: 28px;
	padding: 1.8em 4em;
	margin-top: 0.9em;
}

.iv_profile__box p {
	font-size: 15px;
	line-height: 1.9;
	letter-spacing: 0.05em;
	color: var(--iv-text);
	margin: 0;
}

@media screen and (max-width: 768px) {
	/* タブとインタビュー冒頭の間を詰める */
	#mainImg .content {
		padding-bottom: 0;
	}

	.iv_intro {
		grid-template-columns: 1fr;
		gap: 2em;
		padding: 3em 0 2em;
	}

	.iv_intro__img {
		order: -1;
	}

	.iv_intro__num {
		font-size: 3.4vw;
	}

	/* SPは2行表示 */
	.iv_intro__ttl {
		font-size: 4.1vw;
		letter-spacing: 0.06em;
		margin: 1em 0 0.6em;
	}

	/* 1行が長いコピー（INTERVIEW 02）は字間を詰める */
	.iv_intro__ttl--tight {
		letter-spacing: 0;
	}

	.iv_intro__name {
		font-size: 2.4vw;
	}

	.iv_profile {
		padding: 1em 1.2em 1.4em;
		margin-bottom: 4em;
	}

	.iv_profile__ttl {
		gap: 1em;
	}

	.iv_profile__ttl::before,
	.iv_profile__ttl::after {
		width: 18%;
	}

	.iv_profile__ttl span {
		font-size: 2.6vw;
	}

	.iv_profile__box {
		border-radius: 16px;
		padding: 1.2em 1.4em;
	}

	.iv_profile__box p {
		font-size: 2.083vw;
	}
}

@media screen and (max-width: 430px) {
	.iv_intro__num {
		font-size: 4.651vw;
	}

	.iv_intro__ttl {
		font-size: 4.1vw;
	}

	.iv_intro__name {
		font-size: 3.488vw;
	}

	.iv_profile__ttl span {
		font-size: 3.721vw;
	}

	.iv_profile__box p {
		font-size: 3.488vw;
		line-height: 1.75;
	}
}


/*---------------------*/
/* インタビュー：Q見出し帯 */
/*---------------------*/
.iv_qaTtl {
	display: flex;
	background: var(--iv-brown);
	overflow: hidden;
}

.iv_qaTtl__side {
	flex-shrink: 0;
	width: 110px;
}

.iv_qaTtl__main {
	flex: 1;
	min-width: 0;
}

.iv_qaTtl__main .iv_inner {
	position: relative;
	padding-left: 110px;
	box-sizing: border-box;
}

.iv_qaTtl__num {
	position: absolute;
	top: 50%;
	left: -0.3em;
	transform: translateY(-50%);
	font-family: "trajan-pro-3", serif;
	font-weight: 400;
	font-size: 76px;
	line-height: 1;
	letter-spacing: -0.08em;
	color: #FFF;
	z-index: 1;
	margin: 0;
}

/* 見出し（帯は濃茶1色。番号の横軸センターに合わせる） */
.iv_qaTtl__ttl {
	display: flex;
	align-items: center;
	min-height: 86px;
	font-family: 'Noto Serif JP', serif;
	font-weight: 400;
	font-size: 30px;
	line-height: 1.4;
	letter-spacing: 0.15em;
	color: #FFF;
	padding: 0.2em 0;
	margin: 0;
}

/* 本文エリア先頭のリード（旧：帯の2行目） */
.iv_lead {
	display: flex;
	align-items: center;
	font-feature-settings: "palt";
	font-family: 'Noto Serif JP', serif;
	font-weight: 600;
	font-size: 22px;
	line-height: 1.5;
	letter-spacing: 0.18em;
	color: var(--iv-green);
	margin: 0;
}

.iv_lead::before {
	content: "";
	flex-shrink: 0;
	width: 48px;
	height: 1px;
	background: #8a7f70;
	margin-right: 1em;
}

/* Q：改行時に2行目がQの下に入り込まないようぶら下げ */
.iv_lead__txt {
	padding-left: 1.3em;
	text-indent: -1.3em;
}

.iv_lead__q {
	display: inline-block;
	width: 1.3em;
	text-indent: 0;
}

@media screen and (max-width: 768px) {
	.iv_qaTtl__side {
		display: none;
	}

	.iv_qaTtl__main .iv_inner {
		padding-left: 15vw;
	}

	.iv_qaTtl__num {
		left: -0.1em;
		font-size: 10vw;
	}

	.iv_qaTtl__ttl {
		min-height: 13vw;
		font-size: 3.8vw;
	}

	.iv_lead {
		font-size: 3.125vw;
		letter-spacing: 0.1em;
		text-align: left;
	}

	.iv_lead::before {
		width: 24px;
		margin-right: 0.6em;
	}
}

@media screen and (max-width: 430px) {
	.iv_qaTtl__main .iv_inner {
		padding-left: 17vw;
	}

	.iv_qaTtl__num {
		font-size: 12vw;
	}

	.iv_qaTtl__ttl {
		min-height: 15vw;
		font-size: 4.4vw;
		letter-spacing: 0.1em;
	}

	.iv_lead {
		font-size: 4.186vw;
	}

	.iv_lead::before {
		width: 14px;
	}
}


/*---------------------*/
/* インタビュー：本文ブロック */
/*---------------------*/
.iv_body {
	padding: 5.5em 0 7em;
}

.iv_body>*+* {
	margin-top: 3em;
}

/* 2カラム（テキスト＋画像） */
.iv_col2 {
	display: grid;
	grid-template-columns: 1.05fr 1fr;
	align-items: start;
	gap: 3em 5em;
}

.iv_col2--s {
	grid-template-columns: 1.15fr 1fr;
}

.iv_col2--rev>*:first-child {
	order: 2;
}

.iv_col2--rev.iv_col2--s {
	grid-template-columns: 1fr 1.15fr;
}

.iv_col2--end {
	align-items: center;
}

.iv_col2__txt,
.iv_col2__img {
	display: flex;
	flex-direction: column;
	gap: 2em;
}

.iv_col2 img {
	display: block;
	width: 100%;
}

/* 画像下キャプション付き：画像との間隔を詰める */
.iv_col2__img.imageCap_2 {
	gap: 0;
}

/* T様01：テキスト＋写真 */
.iv_col2--t01 {
	grid-template-columns: 600fr 626fr;
	gap: 3em;
}

.iv_col2--t01 .iv_col2__img img {
	aspect-ratio: 626 / 520;
	object-fit: cover;
}

/* K様01：写真＋テキスト */
.iv_col2--k01 {
	grid-template-columns: 475fr 632fr;
	gap: 3em 5.5em;
}

/* K様02：左 テキスト＋写真／右 概念図＋テキスト */
.iv_col2--k02 {
	grid-template-columns: 516fr 585fr;
	gap: 3em 3.5em;
}

.iv_col2--k02 .iv_col2__txt {
	gap: 6em;
}

.iv_col2--k02 .iv_col2__img {
	gap: 4em;
}

/* K様05：左 テキスト／右 設備写真2枚 */
.iv_col2--k05 {
	grid-template-columns: 1fr 1.3fr;
	gap: 2em 2.5em;
}

.iv_col2--k05 .iv_imgs--2 {
	gap: 1.1em;
}

/* 左カラム：テキストの下に設備写真2枚 */
.iv_col2--k05__l .iv_imgs--2 {
	margin-top: 2em;
}

.iv_body>.iv_grid3+.iv_col2 {
	margin-top: 4.5em;
}

.iv_txt--in {
	padding-left: 12%;
}

/* 図版＋テキスト（テキストの後半は写真の横に回り込む） */
.iv_split {
	display: grid;
	grid-template-columns: 609fr 594fr;
	align-items: start;
	gap: 3em 3.5em;
}

.iv_split--cg {
	grid-template-columns: 585fr 626fr;
	gap: 3em 3em;
}

.iv_split img {
	display: block;
	width: 100%;
}

.iv_split--cg .iv_split__img img {
	aspect-ratio: 585 / 701;
	object-fit: cover;
	object-position: 48% center;
}

.iv_split__sub {
	display: grid;
	grid-template-columns: 1fr 1.25fr;
	align-items: start;
	gap: 2.2em;
}

.iv_split--cg .iv_txt--sep+.iv_split__sub {
	margin-top: 0;
}

.iv_split__photo img {
	aspect-ratio: 353 / 325;
	object-fit: cover;
}

/* 写真を右に回り込ませ、テキストを写真の横〜下へ流す（PCのみ） */
@media screen and (min-width: 769px) {
	.iv_split__sub--float {
		display: flow-root;
		margin-top: 2em;
	}

	.iv_split--cg .iv_txt--sep+.iv_split__sub {
		margin-top: 2em;
	}

	/* 近隣の公園（見出し＋写真2枚）を少し下げる */
	.iv_row03__park {
		margin-top: 1em;
	}

	/* 敷地配置図のキャプションは画像の左下内側に重ねる */
	.iv_row03__map {
		position: relative;
	}

	.iv_row03__map .cap {
		position: absolute;
		bottom: 0;
		left: 0;
		text-align: left;
	}

	.iv_split__sub--float .iv_split__photo {
		float: right;
		width: 55%;
		margin: 0 0 1.5em 2.2em;
	}
}

/* 写真＋概念図 */
.iv_row03 {
	display: grid;
	grid-template-columns: 3.4fr 1fr;
	gap: 1.8em;
	align-items: start;
}

.iv_row03 img {
	display: block;
	width: 100%;
}

.iv_row03__img img {
	aspect-ratio: 462 / 383;
	object-fit: cover;
}

/* 敷地配置図の横：近隣の公園（写真2枚を縦積み） */
.iv_row03__ttl {
	font-size: 16px;
	line-height: 1.5;
	letter-spacing: 0.1em;
	color: var(--iv-brown);
	margin: 0 0 10px;
}

.iv_row03__parkList {
	display: grid;
	gap: 0.8em;
	padding: 0;
	margin: 0;
	list-style: none;
}

.iv_row03__parkList img {
	aspect-ratio: 16 / 9;
	object-fit: cover;
}

.iv_body>.iv_row03+.iv_imgs {
	margin-top: 1em;
}

.iv_body>.iv_imgs+.iv_row03 {
	margin-top: 1.6em;
}

/* 高速道路マップ・敷地配置図・路線図 */
.iv_map img {
	display: block;
	width: 100%;
}

.iv_map--s {
	width: 84%;
	margin-left: auto;
	margin-right: auto;
}

/* 横長トリミング（下の画像並びと同幅） */
.iv_map--s.iv_map--wide {
	width: 100%;
}

.iv_map--wide img {
	aspect-ratio: 1460 / 752;
	object-fit: cover;
	object-position: 50% 55%;
}

.iv_map--rosen {
	width: 86%;
	margin-left: auto;
	margin-right: auto;
}

.iv_body>.iv_map--s,
.iv_body>.iv_map--rosen {
	margin-top: 4.5em;
}

/* 3列（縦長2枚＋横長2段） */
.iv_grid3 {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	grid-template-rows: 1fr 1fr;
	grid-auto-flow: column;
	gap: 1.4em 1.6em;
	aspect-ratio: 1270 / 575;
	padding: 0;
	margin: 0;
}

.iv_grid3>li {
	min-width: 0;
	min-height: 0;
}

.iv_grid3__tall {
	grid-row: span 2;
}

/* 白キャプションの視認性確保（ドロップシャドウ） */
.imageCap .cap.wh,
.imageCap .cap.cap_shadow {
	text-shadow: 0 0 3px rgba(0, 0, 0, 0.8), 0 1px 6px rgba(0, 0, 0, 0.6);
}

.iv_grid3 img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* 画像を少し拡大して表示（枠からはみ出た部分は非表示） */
.iv_zoom {
	overflow: hidden;
}

.iv_zoom img {
	transform: scale(1.15);
	transform-origin: 55% 55%;
}

.iv_body>.iv_grid3 {
	margin-top: 4em;
}

.iv_body>.iv_grid3+.iv_txt {
	margin-top: 4.5em;
}

/* 枠付きボックス（駅の利便性） */
.iv_box {
	border: solid 1px #666;
	padding: 2em 2.5em 2.5em;
}

.iv_body>.iv_box {
	margin-top: 6em;
}

.iv_box__ttl {
	display: flex;
	align-items: center;
	font-family: 'Noto Serif JP', serif;
	font-weight: 500;
	font-size: 22px;
	letter-spacing: 0.2em;
	color: var(--iv-green);
	margin: 0 0 1em;
}

.iv_box__ttl::before {
	content: "";
	width: 50px;
	height: 1px;
	background: #666;
	margin-right: 1em;
}

.iv_box__con {
	display: grid;
	grid-template-columns: 0.62fr 1fr;
	align-items: center;
	gap: 2.2em;
}

.iv_box__img img {
	display: block;
	width: 100%;
}

/* 路線チャート */
.iv_route {
	display: flex;
	align-items: stretch;
	gap: 1em;
}

.iv_route__st {
	flex-shrink: 0;
	display: flex;
	justify-content: center;
	align-items: center;
	width: 56px;
	writing-mode: vertical-rl;
	font-family: 'Noto Serif JP', serif;
	font-size: 18px;
	letter-spacing: 0.15em;
	color: #FFF;
	background: #7b6b3a;
	border-radius: 28px;
	padding: 1em 0;
	margin: 0;
}

.iv_route__st span {
	font-size: 0.8em;
}

.iv_route__list {
	flex: 1;
	display: flex;
	flex-direction: column;
	gap: 8px;
	padding: 0;
	margin: 0;
}

.iv_route__row {
	display: grid;
	grid-template-columns: 1fr 118px;
	align-items: center;
	gap: 1em;
}

.iv_route__line {
	display: flex;
	align-items: center;
	padding: 1.6em 0;
}

.iv_route__arw {
	position: relative;
	flex: 1;
	height: 5px;
	background: linear-gradient(90deg, #dfe7f1, #2c5b95);
	margin: 0 14px 0 0;
}

.iv_route__arw::after {
	content: "";
	position: absolute;
	top: 50%;
	right: -14px;
	transform: translateY(-50%);
	border-style: solid;
	border-width: 8px 0 8px 14px;
	border-color: transparent transparent transparent #2c5b95;
}

.iv_route__row--gold .iv_route__arw {
	background: linear-gradient(90deg, #f3e6c2, #c79a45);
}

.iv_route__row--gold .iv_route__arw::after {
	border-left-color: #c79a45;
}

.iv_route__arw .lbl {
	position: absolute;
	bottom: calc(100% + 0.6em);
	left: 50%;
	transform: translateX(-50%);
	font-size: 10px;
	line-height: 1;
	letter-spacing: 0.05em;
	white-space: nowrap;
	color: #555;
}

.iv_route__arw .tag {
	position: absolute;
	top: calc(100% + 9px);
	left: 50%;
	transform: translateX(-50%);
	font-size: 12px;
	line-height: 1;
	letter-spacing: 0.08em;
	white-space: nowrap;
	color: #FFF;
	background: #1f4e8c;
	padding: 0.35em 0.6em;
}

.iv_route__arw .tag::before {
	content: "";
	position: absolute;
	bottom: 100%;
	left: 50%;
	transform: translateX(-50%);
	border-style: solid;
	border-width: 0 5px 8px 5px;
	border-color: transparent transparent #1f4e8c transparent;
}

.iv_route__via {
	flex-shrink: 0;
	font-size: 12px;
	letter-spacing: 0.1em;
	color: #333;
	background: #FFF;
	border: solid 1px #999;
	padding: 0.4em 1.4em;
	margin: 0 0.8em 0 0;
}

.iv_route__dest {
	display: flex;
	flex-direction: column;
	align-items: center;
	font-family: 'Noto Serif JP', serif;
	font-size: 17px;
	line-height: 1.3;
	letter-spacing: 0.2em;
	color: #333;
	background: #e6dcbc;
	border-radius: 10px;
	padding: 0.45em 0.4em;
	margin: 0;
}

.iv_route__dest>span {
	display: block;
	width: 80%;
	font-size: 17px;
	letter-spacing: 0.05em;
	text-align: center;
	border-top: solid 1px #FFF;
	padding-top: 0.2em;
	margin-top: 0.3em;
}

.iv_route__dest small {
	font-size: 0.72em;
}

@media screen and (max-width: 768px) {
	.iv_body {
		padding: 3em 0 4em;
	}

	.iv_body>*+* {
		margin-top: 2em;
	}

	.iv_col2,
	.iv_col2--s,
	.iv_col2--rev.iv_col2--s {
		grid-template-columns: 1fr;
		gap: 2em;
	}

	.iv_col2--rev>*:first-child {
		order: 0;
	}

	.iv_col2--k01>*:first-child {
		order: 2;
	}

	.iv_col2--k02 .iv_col2__txt,
	.iv_col2--k02 .iv_col2__img {
		gap: 2em;
	}

	.iv_txt--in {
		padding-left: 0;
	}

	.iv_split,
	.iv_split--cg {
		grid-template-columns: 1fr;
		gap: 2em;
	}

	.iv_split--cg .iv_split__img img {
		aspect-ratio: 4 / 3;
	}

	.iv_split__sub {
		grid-template-columns: 1fr;
		gap: 2em;
	}

	/* SPのみ概念図と写真の位置を入替え（写真を先頭、概念図を末尾に） */
	.iv_split--swapSp .iv_split__con,
	.iv_split--swapSp .iv_split__sub {
		display: contents;
	}

	.iv_split--swapSp .iv_split__photo {
		order: -1;
	}

	.iv_split--swapSp .iv_split__img {
		order: 1;
	}

	.iv_map--s,
	.iv_map--rosen {
		width: 100%;
	}

	.iv_body>.iv_map--s,
	.iv_body>.iv_map--rosen,
	.iv_body>.iv_grid3,
	.iv_body>.iv_grid3+.iv_txt,
	.iv_body>.iv_grid3+.iv_col2 {
		margin-top: 2em;
	}

	.iv_grid3 {
		grid-template-columns: repeat(2, 1fr);
		grid-template-rows: none;
		grid-auto-flow: row;
		gap: 0.6em;
		aspect-ratio: auto;
	}

	.iv_grid3__tall {
		grid-row: auto;
	}

	/* SPも3列の横並び */
	.iv_grid3--sp3 {
		grid-template-columns: repeat(3, 1fr);
	}

	.iv_grid3 img {
		height: auto;
		aspect-ratio: 3 / 4;
	}

	/* 拡大画像：SPは縮小して全体を表示（全員が切れないように） */
	.iv_grid3 .iv_zoom img {
		object-fit: contain;
		transform: none;
	}

	/* SP：キャプションを画像の下に配置 */
	.iv_grid3--spcap .imageCap .cap {
		position: static;
		padding: 0.4em 0 0;
		font-size: 10px;
		text-align: right;
	}

	.iv_grid3--spcap .imageCap .cap.wh {
		color: #333;
		text-shadow: none;
	}

	.iv_row03 {
		grid-template-columns: 1fr;
		gap: 1.5em;
	}

	.iv_row03__ttl {
		font-size: 15px;
	}

	.iv_row03__parkList {
		grid-template-columns: 1fr 1fr;
		gap: 0.6em;
	}

	.iv_body>.iv_row03+.iv_imgs {
		margin-top: 0.6em;
	}

	.iv_body>.iv_imgs+.iv_row03 {
		margin-top: 1.2em;
	}

	.iv_body>.iv_box {
		margin-top: 3em;
	}

	.iv_box {
		padding: 1.2em 1em 1.4em;
	}

	.iv_box__ttl {
		font-size: 3.125vw;
		letter-spacing: 0.1em;
	}

	.iv_box__ttl::before {
		width: 24px;
		margin-right: 0.6em;
	}

	.iv_box__con {
		grid-template-columns: 1fr;
		gap: 1.2em;
	}

	.iv_route {
		gap: 2vw;
	}

	.iv_route__st {
		width: 8vw;
		font-size: 2.6vw;
	}

	.iv_route__row {
		grid-template-columns: 1fr 17vw;
		gap: 2vw;
	}

	.iv_route__arw .lbl {
		font-size: 1.5vw;
		line-height: 1.4;
		text-align: center;
	}

	.iv_route__arw .tag {
		font-size: 1.8vw;
	}

	.iv_route__via {
		font-size: 1.8vw;
		padding: 0.4em 0.6em;
	}

	.iv_route__dest,
	.iv_route__dest>span {
		font-size: 2.4vw;
		letter-spacing: 0.05em;
	}
}

@media screen and (max-width: 430px) {
	.iv_box__ttl {
		font-size: 3.953vw;
	}

	.iv_route__st {
		width: 9vw;
		font-size: 3.2vw;
	}

	.iv_route__row {
		grid-template-columns: 1fr 19vw;
	}

	.iv_route__arw .lbl {
		font-size: 2.1vw;
	}

	.iv_route__arw .tag {
		font-size: 2.4vw;
	}

	.iv_route__via {
		font-size: 2.4vw;
	}

	.iv_route__dest,
	.iv_route__dest>span {
		font-size: 3.2vw;
	}
}


/*---------------------*/
/* 魅力のポイント */
/*---------------------*/
.pt_head {
	padding: 6em 0 7em;
}

.pt_head__ttl {
	font-feature-settings: "palt";
	font-family: 'Noto Serif JP', serif;
	font-weight: 400;
	font-size: clamp(22px, 2.3vw, 30px);
	line-height: 1.6;
	letter-spacing: 0.1em;
	text-align: center;
	color: #222;
	margin: 0 0 2.2em;
}

.pt_head__main {
	width: 90%;
	margin: 0 auto;
}

.pt_head__main img {
	display: block;
	width: 100%;
}

.pt_head__sub {
	display: grid;
	grid-template-columns: 748fr 373fr;
	gap: 26px;
	padding: 0;
	margin: 3.5em 0 0;
}

.pt_head__sub img {
	display: block;
	width: 100%;
	object-fit: cover;
}

.pt_head__sub li:first-child img {
	aspect-ratio: 748 / 400;
}

.pt_head__sub li:last-child img {
	height: 100%;
}

.pt_sec .iv_inner {
	padding: 6em 0 7em;
}

/* POINTブロック：ラベルは下の画像1枚分の幅 */
.pt_block {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 15px;
	margin-bottom: 18px;
}

.pt_block__label {
	aspect-ratio: 278 / 283;
	padding: 1.6em 1.4em;
	box-sizing: border-box;
}

.pt_block__label--01 {
	background: #c7ccba;
}

.pt_block__label--02 {
	background: #e5e2dc;
}

.pt_block__label--03 {
	background: #cdc1b1;
}

.pt_block__label--04 {
	background: #eae0cb;
}

.pt_block__num {
	font-family: "trajan-pro-3", serif;
	font-weight: 400;
	font-size: 28px;
	line-height: 1;
	letter-spacing: 0.1em;
	color: #222;
	margin: 0;
}

.pt_block__num span {
	font-size: 1.75em;
	margin-left: 0.25em;
	letter-spacing: 0;
	vertical-align: -0.1em;
}

.pt_block__ttl {
	font-feature-settings: "palt";
	font-family: 'Noto Serif JP', serif;
	font-weight: 500;
	font-size: 21px;
	line-height: 1.6;
	letter-spacing: 0.15em;
	text-align: left;
	white-space: nowrap;
	color: #222;
	padding-left: 0.9em;
	margin: 1.1em 0 0;
}

.pt_block__txt {
	grid-column: 2 / 5;
	align-self: center;
	padding-left: 2.5em;
}

/* 下の画像並び（正方形） */
.pt_imgs {
	gap: 15px;
}

.pt_imgs img {
	aspect-ratio: 278 / 283;
}

/* POINT02 アクセス */
.pt_access {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 15px;
	padding: 0;
	margin: 0;
}

.pt_access__item {
	position: relative;
	overflow: hidden;
}

.pt_access__item img {
	display: block;
	width: 100%;
	aspect-ratio: 278 / 283;
	object-fit: cover;
}

.pt_access__item::after {
	content: "";
	position: absolute;
	inset: 0;
	background: rgba(20, 35, 70, 0.28);
}

.pt_access__txt {
	position: absolute;
	inset: 0;
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	gap: 0.25em;
	text-align: center;
	color: #FFF;
	text-shadow: 0 0 10px rgba(0, 0, 0, 0.25);
	z-index: 1;
	margin: 0;
}

.pt_access__txt .st {
	font-family: "trajan-pro-3", serif;
	font-size: 28px;
	line-height: 1.15;
	letter-spacing: 0.12em;
}

.pt_access__txt .time {
	font-family: "trajan-pro-3", serif;
	font-size: 52px;
	line-height: 1;
}

.pt_access__txt .time small {
	font-size: 0.45em;
	letter-spacing: 0.1em;
	margin-left: 0.15em;
}

.pt_cap {
	font-size: 12px;
	text-align: right;
	color: var(--iv-text);
	margin: 0.5em 0 0;
}

/* POINT03 画像（2段：横長＋正方形／正方形＋横長） */
.pt_rows {
	display: flex;
	flex-direction: column;
	gap: 22px;
}

.pt_row {
	display: grid;
	grid-template-columns: 760fr 373fr;
	gap: 22px;
}

.pt_row--rev {
	grid-template-columns: 373fr 760fr;
}

.pt_row img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.pt_row>:first-child img,
.pt_row--rev>:last-child img {
	height: auto;
	aspect-ratio: 760 / 375;
}

.pt_row--rev>:first-child img {
	height: 100%;
	aspect-ratio: auto;
}

/* POINT04 */
.pt_wide img {
	display: block;
	width: 100%;
	aspect-ratio: 1120 / 376;
	object-fit: cover;
}

.pt_imgs--port {
	gap: 15px;
	margin-top: 22px;
}

.pt_imgs--port img {
	aspect-ratio: 363 / 520;
}

@media screen and (max-width: 768px) {
	.pt_head {
		padding: 3em 0 4em;
	}

	.pt_head__ttl {
		font-size: 3.646vw;
	}

	.pt_head__main {
		width: 100%;
	}

	.pt_head__sub {
		gap: 0.6em;
		margin-top: 1.5em;
	}

	.pt_sec .iv_inner {
		padding: 4em 0;
	}

	.pt_block {
		grid-template-columns: 1fr;
		gap: 1.5em;
		margin-bottom: 1.5em;
	}

	.pt_block__label {
		aspect-ratio: auto;
		padding: 1.2em 1.4em;
	}

	.pt_block__num {
		font-size: 3.4vw;
	}

	.pt_block__ttl {
		font-size: 3.646vw;
		white-space: normal;
		margin-top: 0.8em;
	}

	.pt_block__ttl br {
		display: none;
	}

	.pt_block__txt {
		grid-column: auto;
		padding-left: 0;
	}

	.pt_imgs,
	.pt_access {
		grid-template-columns: repeat(2, 1fr);
		gap: 0.6em;
	}

	.pt_access__txt .st {
		font-size: 3.4vw;
	}

	.pt_access__txt .time {
		font-size: 7vw;
	}

	.pt_cap {
		font-size: 10px;
	}

	.pt_rows,
	.pt_row {
		gap: 0.6em;
	}

	.pt_imgs--port {
		gap: 0.6em;
		margin-top: 0.6em;
	}

	.pt_wide img {
		aspect-ratio: 16 / 9;
	}
}

@media screen and (max-width: 430px) {
	.pt_head__ttl {
		font-size: 4.651vw;
	}

	.pt_block__num {
		font-size: 4.651vw;
	}

	.pt_block__ttl {
		font-size: 4.651vw;
	}

	.pt_access__txt .st {
		font-size: 4.2vw;
	}

	.pt_access__txt .time {
		font-size: 9vw;
	}

	.pt_row,
	.pt_row--rev {
		grid-template-columns: 1fr;
	}

	.pt_row--rev>:first-child img {
		aspect-ratio: 4 / 3;
	}

	.pt_imgs--port {
		grid-template-columns: 1fr 1fr 1fr;
	}
}

/*---------------------*/
/* 魅力のポイントタブ 非表示 */
/*---------------------*/
.iv_tabList>li.is-hidden {
	display: none;
}

.iv_tabList {
	grid-template-columns: repeat(3, 1fr);
}

.iv_tabList button .ja {
	text-align: center;
}
