@charset "UTF-8";

/* ====================================
	WEBフォント
==================================== */
.crimson-text-semibold {
	font-family: "Crimson Text", serif;
	font-weight: 600;
	font-style: normal;
}

/* ====================================
	共通スタイル
==================================== */
/* 別窓アイコン */
.new-window {
	display: inline-flex;
	align-items: center;
}

.ico-new-window {
	margin-left: 0.6em;
	inline-size: 2rem;
	block-size: 2rem;
}

/* 丸囲みアロー付きタイトル */
.circle-arrow-title .ico-circle-arrow {
	inline-size: 2.4rem;
	block-size: 2.4rem;
}

.circle-arrow-title .section-sub-title-ico {
	block-size: 3.6rem;
}

:is(.inline-flex, .flex) .ico-circle-arrow {
	flex: 0 0 auto;
}

/* ボーダー */
.border-updown {
	border-top: solid 1px var(--light-gray);
	border-bottom: solid 1px var(--light-gray);
}

.border-down {
	border-bottom: solid 1px var(--light-gray);
}

/* セクション */
.section {
	padding-top: 5rem;
	padding-bottom: 3rem;
	font-size: 1.5rem;
}

.section-title {
	margin-bottom: 3rem;
	font-size: 2.2rem;
	font-weight: 700;
	text-align: center;
}

.section-sub-title {
	display: grid;
	grid-template-columns: 1fr auto;
	grid-column-gap: 0.5em;
	justify-content: center;
	align-items: center;
	position: relative;
	padding: 1em 0;
	font-size: 1.8rem;
	font-weight: 500;
}

.section-sub-title::before {
	content: '';
	inline-size: 2.1em;
	block-size: 2px;
	background-color: #000;
	position: absolute;
	left: 0;
	bottom: 0;
}

.link-main {
	display: block;
}

.link-main-text {
	margin-top: 3rem;
	margin-bottom: 2rem;
}

.link-list__item-title {
	padding: 1em 0;
	font-weight: 500;
}

.link-has-img {
	display: grid;
	align-items: start;
	grid-template-columns: 41.5% 1fr;
	grid-column-gap: 1.5em;
	padding: 1.5em 0;
}

.link-main.link-has-img .section-sub-title {
	padding: 0 0 1em;
}

.link-has-img .link-list__item-title {
	padding: 0 0;
}

.link-main.link-has-img+.link-main-text {
	margin-top: 0.5em;
}

.link-list__item-title {
	font-size: 1.8rem;
}

/* ボックスリンクリスト：3列 */
.box-link-list__item-link {
	display: block;
}

.box-link-list__item-img {
	display: block;
}

.box-link-list .circle-arrow-title {
	margin-top: 1.5em;
}

.box-link-list__item-title {
	font-size: 1.8rem;
	font-weight: 500;
	line-height: 1.2;
}

.box-link-list__item-text {
	margin-top: 1.25em;
}

/* メインビジュアル */
.quick-title {
	font-size: 2rem;
	font-weight: 600;
	line-height: 1;
	text-align: center;
}

.list-quick {
	display: flex;
}

.ico-quick {
	inline-size: 5rem;
	block-size: 5rem;
	fill: #959595;
}

.quick-link {
	display: block;
	inline-size: 6.5rem;
	text-align: center;
	text-decoration: none;
}

.quick-link:hover {
	text-decoration: none;
}

.quick-link-text {
	margin-top: 0.5em;
	font-size: 1.2rem;
	line-height: 1.2;
	font-weight: 400;
}

/* ====================================
	ホバー、マウスポインタが有効なデバイス
==================================== */
@media (hover:hover) and (pointer: fine) {

	/* メインビジュアル */
	.hovering .ico-quick {
		fill: var(--sharp-red);
	}

	.hovering .quick-link-text {
		color: var(--sharp-red);
	}

	/* リンクリスト */
	/* ボックスリンクリスト：3列 */
	.link-has-img:hover .circle-arrow-title,
	.box-link-list__item-link:hover .circle-arrow-title {
		color: var(--sharp-red);
	}

	.link-list__item-img,
	.box-link-list__item-img {
		transition: var(--hover-transition-opacity);
	}

	.link-has-img:hover .link-list__item-img,
	.box-link-list__item-link:hover .box-link-list__item-img {
		opacity: var(--hover-opacity);
	}
}

/* ====================================
	480px以上専用スタイル
==================================== */
@media screen and (width >=480px) {}

/* ====================================
	768px未満専用スタイル
==================================== */
@media screen and (width <768px) {}

/* ====================================
	768px以上専用スタイル
==================================== */
@media screen and (width >=768px) {}

/* ====================================
	768px以上1080px未満専用スタイル
==================================== */
@media screen and (768px <=width < 1080px) {}

/* ====================================
	1080px未満専用スタイル
==================================== */
@media screen and (width <1080px) {

	/* リンクリスト */
	.link-list__item {
		border-bottom: solid 1px var(--light-gray);
	}

	/* ボックスリンクリスト：3列 */
	.box-link-list.list-col3 {
		display: grid;
		grid-template-columns: repeat(2, 1fr);
		gap: 2rem 2rem;
		margin-top: 4rem;
		font-size: 1.4rem;
	}

	/* メインビジュアル */
	.quick {
		padding: 1rem 5%;
		background-color: var(--white-gray);
	}

	.list-quick {
		max-width: 60rem;
		justify-content: space-around;
	}

	.quick-title {
		margin-bottom: 0.5em;
	}

	.flex-col2.flex-col-no-margin>.flex__item:not(:first-child) {
		margin-top: 0;
	}
}

/* ====================================
	1080px以上専用スタイル
==================================== */
@media print,
screen and (1080px <=width) {

	/* メインビジュアル */
	.main-visual {
		max-inline-size: 1500px;
	}

	.quick {
		display: flex;
		inline-size: fit-content;
		align-items: center;
		margin-left: auto;
		padding-top: 1em;
	}

	.quick-title {
		margin-right: 3rem;
		inline-size: 8rem;
		font-size: 2.4rem;
	}

	.quick-link {
		inline-size: 9.5rem;
	}

	/* セクション */
	.section {
		padding-top: 10rem;
		padding-bottom: 5rem;
		font-size: 1.6rem;
	}

	.section-title {
		margin-bottom: 6rem;
		font-size: 3.4rem;
	}

	.section-sub-title {
		grid-column-gap: 1em;
		padding: 1.25em 0;
		font-size: 2.4rem;
	}

	.link-main-text {
		margin-top: 8rem;
		margin-bottom: 3rem;
	}

	/* リンクリスト */
	.link-list {
		font-size: 2rem;
	}

	.link-list__item {
		border-bottom: solid 1px var(--light-gray);
	}

	.link-list.list-col3 {
		display: grid;
		grid-template-columns: repeat(3, 1fr);
		grid-template-rows: repeat(3, auto);
		gap: 0 60px;
		align-items: center;
		margin-top: 6rem;
	}

	.link-list.list-col3 .link-list__item:nth-child(-n+3) {
		border-top: solid 1px var(--light-gray);
	}

	.link-has-img {
		align-items: center;
	}

	.link-main.link-has-img .section-sub-title {
		padding: 0 0 1.2em;
	}

	.link-main.link-has-img {
		align-items: start;
	}

	.link-main.link-has-img+.link-main-text {
		margin-top: 0;
	}

	.link-list__item-title {
		padding: 1.2em 0;
		font-size: 2rem;
	}

	.link-has-img {
		grid-template-columns: 28.5% 1fr;
		padding: 1em 0;
	}

	/* セクション：2列 */
	.flex-col2 .section-title {
		font-size: 3rem;
		text-align-last: left;
	}

	.flex-col2 .link-main-text {
		margin-top: 4rem;
		margin-bottom: 2rem;
	}

	/* ボックスリンクリスト：3列 */
	.title-line-1 .box-link-list__item-title {
		font-size: 2rem;
	}

	.box-link-list.list-col3 {
		display: grid;
		grid-template-columns: repeat(3, 1fr);
		gap: 3rem 6rem;
		margin-top: 6rem;
	}
}

/* ====================================
	1280px以上専用スタイル
==================================== */
@media screen and (width >=1280px) {}