@charset "UTF-8";
/* ベース
-----------------------------------------------------------------*/
:root {
	--color-prim: #1637AA;
	--color-sub: #EC8228;
	--color-bg: #F4F5F7;
	--color-border: #D9D9D9;
	--color-txt: #2C2C2C;
	--font-base: "Noto Sans JP", sans-serif;
	--font-sub: "Roboto", sans-serif;
	--trans-min02: all 0.2s ease-out;
	interpolate-size: allow-keywords; /* サイズキーワードによるアニメーションを許可 */
}

html {
	width: 100%;
	font-size: 62.5%;
	background-color: #FFF;
	scroll-behavior: smooth;
	scroll-padding-top: 85px;
}

body {
	width: 100%;
	min-width: 1240px;
	margin: 0 auto;
	position: relative;
	font-size: 16px;
	font-weight: 400;
	letter-spacing: 0.16px;
	-webkit-text-size-adjust: 100%;
	color: var(--color-txt);
	font-family: var(--font-base);
}

main {
	display: block;
	overflow-x: clip;
}

@media screen and (max-width: 767px), print {
	body {
		min-width: 0;
		font-size: 14px;
	}
}

@media print {
	body {
		zoom: 0.8;
	}
}


/* ヘッダー
-----------------------------------------------------------------*/
.header {
	height: 85px;
	background-color:rgba(255, 255, 255, 0.6);
	backdrop-filter: blur(4px);
	position: sticky;
	top: 0;
	z-index: 99;
}
.header_inner {
	display: flex;
	justify-content: space-between;
	height: 100%;
}
.header_logo_link {
	> img {
		width: 100%;
		height: 100%;
		object-fit: contain;
		object-position: left;
	}
}
.header_nav {
	display: flex;
	justify-content: center;
}
.header_anchor_link {
	display: flex;
	align-items: center;
	justify-content: center;
	height: 100%;
	padding: 14px;
	font-size: 18px;
	font-weight: 500;
	letter-spacing: 0.18px;
	position: relative;
}
.header_btn {
	background-color: var(--color-sub);
	color: #FFF;
}
.header_btn_link {
	display: flex;
	align-items: center;
	justify-content: center;
	height: 100%;
	padding: 15px 30px;
	font-size: 18px;
	font-weight: 500;
	letter-spacing: 0.18px;
}
@media screen and (min-width: 768px), print {
	.header_logo_link {
		transition: var(--trans-min02);

		&:hover {
			opacity: .7;
		}
	}
	.header_nav {
		gap: 50px;
	}
	.header_anchor_link {
		transition: var(--trans-min02);

		&::after {
			content: "";
			position: absolute;
			bottom: 0;
			left: 0;
			width: 100%;
			height: 3px;
			background-color: var(--color-sub);
			opacity: 0;
			transition: var(--trans-min02);
		}
			
		&:hover::after {
			opacity: 1;
		}
	}
	.header_btn_link {
		transition: var(--trans-min02);

		&:hover {
			background-color: #F3A45F;
		}
	}
}
@media screen and (max-width: 767px), print {
	.header {
		border-bottom: 1px solid var(--color-border);
	}
	.header_inner {
		flex-direction: column;
	}
	.header_logo {
		height: 50px;
	}
	.header_nav {
		height: 35px;
		border-top: 1px solid var(--color-border);
	}
	.header_anchor {
		width: calc(100% / 3 - 10px);
	}
	.header_anchor_link {
		padding: 5px 10px;
		font-size: 12px;
	}
	.header_anchor {
		& + & {
			border-left: 1px solid var(--color-border);
		}
	}
	.header_btn {
		flex: 1;
	}
	.header_btn_link {
		padding: 5px;
		font-size: 12px;
	}
}


/* フッター
-----------------------------------------------------------------*/
.footer {
	border-top: 1px solid var(--color-prim);
	background: #FFF;
}
.footer_inner {
	display: flex;
	justify-content: space-between;
	gap: 30px;
	padding-block: 56px;
}
.footer_logo {
	width: 100%;
	max-width: 300px;
}
.footer_nav {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
	gap: 40px;
}
.footer_anchor_link {
	font-size: 18px;
	font-weight: 500;
	letter-spacing: 0.18px;
	position: relative;
}
.footer_btn.c-btn {
	.c-btn_inner {
		background-color: var(--color-sub);
		border-color: var(--color-sub);
	}
}
.footer_copy {
	padding-block: 30px;
	background-color: var(--color-prim);
}
.footer_copy_text {
	text-align: right;
	color: #FFF;
	font-size: 14px;
	font-weight: 500;
	letter-spacing: -0.14px;
}
@media screen and (min-width: 768px), print {
	.footer_anchor_link {
		transition: var(--trans-min02);

		&:hover {
			color: var(--color-sub);
		}
	}
	.footer_btn.c-btn {
		width: 300px;
		margin-left: 10px;

		.c-btn_inner {
			&:hover {
				background-color: #F3A45F;
				border-color: #F3A45F;
				color: #FFF;
				
				.c-btn_icon {
					&::before {
						background-color: #FFF;
					}
				}
			}
		}
	}
}
@media screen and (max-width: 767px), print {
	.footer_inner {
		flex-direction: column;
		padding-block: 20px 40px;
	}
	.footer_logo {
		margin: 0 auto;
	}
	.footer_nav {
		gap: 30px 60px;
	}
	.footer_anchor_link {
		font-size: 14px;
	}
	.footer_copy {
		padding-block: 20px;
	}
	.footer_copy_text {
		font-size: 12px;
	}
}


/* レイアウト
-----------------------------------------------------------------*/
/* セクション */
.ly-sect {
	padding-top: 20px;
	margin: 0 auto 160px;
	position: relative;
	z-index: 2;

	&:first-child {
		margin-top: 100px;
	}
	&:last-child {
		margin-bottom: 200px;
	}
}
@media screen and (max-width: 767px), print {
	.ly-sect {
		margin: 0 auto 80px;

		&:first-child {
			margin-top: 60px;
		}
		&:last-child {
			margin-bottom: 120px;
		}
	}
}

/* コンテンツ幅 */
.ly-wrap {
	max-width: 1100px;
	width: calc(100% - 60px);
	margin-inline: auto;
}
@media screen and (max-width: 767px), print {
	.ly-wrap {
		width: calc(100% - 30px);
	}
}


/* パーツ
-----------------------------------------------------------------*/
/* 通常テキスト */
.c-text {
	font-size: 16px;
	line-height: 1.8;

	> a {
		display: inline;
	}
	& + & {
		margin-top: 15px;
	}
}
@media screen and (min-width: 768px), print {
	.c-text {
		> a {
			text-decoration: underline;
			text-decoration-thickness: 1px;
			text-underline-offset: 2px;
			transition: var(--trans-min02);

			&:hover {
				text-decoration-color: transparent;
			}
		}
	}
}
@media screen and (max-width: 767px), print {
	.c-text {
		font-size: 14px;
	}
}

/* タイトル　h1 */
.c-titPrimary {
	width: 100%;
	background-color: var(--color-bg);
	position: relative;
}
.c-titPrimary_title {
	width: 100%;
}
.c-titPrimary_title-sub {
	color: var(--color-prim);
	font-family: var(--font-sub);
	font-size: 24px;
	font-weight: 500;
	letter-spacing: 0.96px;
	margin-bottom: 10px;
}
.c-titPrimary_title-main {
	font-size: 48px;
	font-weight: 600;
	letter-spacing: 3.36px;
}
@media screen and (min-width: 768px), print {
	.c-titPrimary {
		display: flex;
		align-items: center;
		height: 320px;
	}
	.c-titPrimary_images {
		position: absolute;
		top: 0;
		right: 0;
		width: 640px;
		height: 100%;

		> img {
			width: 100%;
			height: 100%;
			object-fit: cover;
		}
	}
}
@media screen and (max-width: 767px), print {
	.c-titPrimary {
		padding-top: 40px;
	}
	.c-titPrimary_title {
		margin-bottom: 40px;
	}
	.c-titPrimary_title-sub {
		font-size: 18px;
	}
	.c-titPrimary_title-main {
		font-size: 36px;
	}
}

/* タイトル　h2 */
.c-titSecondary {
	margin-bottom: 70px;
}
.c-titSecondary_sub {
	color: var(--color-prim);
	font-family: var(--font-sub);
	font-size: 20px;
	font-weight: 500;
	letter-spacing: 0.8px;
	margin-bottom: 15px;
}
.c-titSecondary_main {
	font-size: 38px;
	font-weight: 500;
	letter-spacing: 1.9px;
}
@media screen and (max-width: 767px), print {
	.c-titSecondary {
		margin-bottom: 50px;
	}
	.c-titSecondary_sub {
		font-size: 15px;
	}
	.c-titSecondary_main {
		font-size: 28px;
	}
}

/* ボタン */
.c-btn {
	width: 100%;
	max-width: 420px;
}
.c-btn_inner {
	display: flex;
	justify-content: center;
	flex-direction: column;
	width: 100%;
	height: 100%;
	min-height: 56px;
	padding: 10px 40px 10px 24px;
	background-color: var(--color-prim);
	border: 1px solid var(--color-prim);
	color: #FFF;
	position: relative;
}
.c-btn_icon {
	width: 14px;
	height: 14px;
	display: inline-block;
	position: absolute;
	right: 18px;
	top: 0;
	bottom: 0;
	margin: auto;
	vertical-align: -1px;
	z-index: 1;

	&::before {
		content: "";
		display: block;
		width: inherit;
		height: inherit;
		background-color: #FFF;
		mask-position: center;
		mask-size: contain;
		mask-repeat: no-repeat;
		mask-image: url("/ir/assets/images/icon_arrow.svg");
	}
}
.c-btn_text {
	font-size: 16px;
	z-index: 1;
}
@media screen and (min-width: 768px), print {
	.c-btn_inner {
		transition: var(--trans-min02);
		
		&:hover {
			background-color: #FFF;
			color: var(--color-prim);

			.c-btn_icon {
				&::before {
					background-color: var(--color-prim);
				}
			}
		}
	}
}
@media screen and (max-width: 767px), print {
	.c-btn_inner {
		min-height: 50px;
	}
	.c-btn_text {
		font-size: 14px;
		font-size: 14px;
	}
}


/* モジュール
-----------------------------------------------------------------*/
/* 余白 */
.ly-mt_xl {
	margin-top: 120px !important;
}
.ly-mt_l {
	margin-top: 80px !important;
}
.ly-mt_m {
	margin-top: 60px !important;
}
.ly-mt_s {
	margin-top: 40px !important;
}
.ly-mt_xs {
	margin-top: 20px !important;
}
@media screen and (max-width: 767px), print {
	.ly-mt_xl {
		margin-top: 80px !important;
	}
	.ly-mt_l {
		margin-top: 60px !important;
	}
	.ly-mt_m {
		margin-top: 40px !important;
	}
	.ly-mt_s {
		margin-top:30px !important;
	}
	.ly-mt_xs {
		margin-top: 10px !important;
	}
}