@charset "utf-8";
/*------------------------------------------------------------------------------
Css name: common.css
Css info: 共通スタイル
------------------------------------------------------------------------------*/
/*------------------------------------------------------------------------
基本
--------------------------------------------------------------------------*/
*{
	margin: 0;
	padding: 0;
}
*,
*::before,
*::after{
	box-sizing: border-box;
}

html{
	font-size: 62.5%;
	line-height: 2;
  -webkit-text-size-adjust: 100%;
  -webkit-tap-highlight-color: transparent;
}

body{
	position:relative;

	display: flex;
	flex-flow: column;

	min-height: 100vh;
	min-height: 100dvh;
	width: 100%;
	margin: 0;
	color: #3d3d3d;
	font-size: 1.6rem;
	font-family: 'Noto Sans JP', sans-serif;
	font-style:normal;
	font-weight: 400;
	font-feature-settings : "pwid";
	-ms-word-wrap: break-word;
	word-wrap: break-word;
	overflow-x: hidden;
}

main{
	display: block;
}

table{
	border-collapse: collapse;
	border-spacing: 0;
}
th, td{
	vertical-align: top;
	word-wrap: break-word;
	line-height:1.6;
}
th{
	text-align: left;
	font-weight: inherit;
}
ul, ol {
  list-style: none;
}
li{
	line-height:2;
}
dt,dd{
	line-height:2;
}

textarea,input{
	font-size:1em;
	color: inherit;
}

h1,h2,h3,h4,h5,h6{
  font-size: inherit;
  font-weight: inherit;
	line-height: 1.6;
}

em,strong{
	font-weight: bolder;
	font-style: inherit;
}

small{
	font-size: .8em;
}

i,address{
	font-style: inherit;
}

img,table {
	border:none;
}
img, svg{
	vertical-align: bottom;
	max-width: 100%;
	height: auto;
}

a{		/* テキストリンク */
	color: #3d3d3d;
	text-decoration:none;
	background-color: transparent;
	transition: .3s;
}
a:active,
a:hover{		/* テキストリンク */
	text-decoration:none;
	outline-width: 0;
}

.mobi_o{ display: none; }

@media only screen and (max-width: 580px) {
	html{
		line-height:1.8;
	}

	.mobi_o{ display: block; }
	.pc_o{ display: none; }
}

/*------------------------------------------------------------------------
グローバルナビ
--------------------------------------------------------------------------*/
.header{
	position: fixed;
	width: 100%;

	z-index: 2;
}

.header .gNav_wrap{
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	align-items: center;

	position: relative;

	padding: 0 1.5%;
	background: rgba(255,255,255,.9);
}
@media screen and (max-width: 1100px) {
	.header .gNav_wrap{
		background: transparent;
	}
}

/* ロゴ ------------------------------------*/
.head_logo{
	margin: 10px 0;
}
	.head_logo a:hover{
		opacity: .8;
	}
@media screen and (max-width: 580px) {
	.head_logo{
		margin-top: 9px;
		max-width: 220px;
	}
}

/* メニュー ------------------------------------*/
@media screen and (max-width: 1100px) {
	.gNav{
		pointer-events: none;
		position: fixed;
		top: 0;
		right: 0;
		bottom: 0;
		left: 0;
		display: block;

		width: 100%;
		min-height: 100vh;
		min-height: 100dvh;
		padding: 0;

		background: url(../img/common/gnav_bg.webp) center center;
		background-size: cover;
		overflow-y: scroll;
		opacity: 0;
		z-index: 100;
		transition: all 0.4s ease;
	}
}
/* メインメニュー ----------------*/
.main_nav{
	display: flex;
	flex-wrap: wrap;
	justify-content: flex-end;
	align-items: center;
}
.page_nav:not(.page_nav06){
	text-shadow: 1px 1px 1px rgba(255,255,255,.9);
}
	.page_nav + .page_nav{
		margin-left: 2em;
	}
	.page_nav > a{
		display: block;

		font-size: 1.5rem;
		color: #05328d;
		line-height: 3;
	}
	.page_nav > a:hover{
		color: #0091e6;
	}
	.page_nav01{
		display: none;
	}
	.page_nav06 a{
		width: 170px;
		padding: 10px 0;
		line-height: 1.2;
		color: #fff;
		text-align: center;
		background: #ea5226;
		border-radius: 4em;
	}
		@media (hover: hover) and (pointer: fine){
			.page_nav06 a:hover{
				color: #fff;
				background: #0091e6;
			}
		}

@media screen and (max-width: 1100px) {  /* モバイル */
	.main_nav{
		display: block;
		width: 100%;
		height: auto;
		margin: 70px 0 32px;
		padding: 0 15%;
		background: transparent;
	}
		.page_nav{
			display: flex;
			flex-wrap: wrap;

			position: relative;

			height: auto;
			margin: 0;
		}
		.page_nav + .page_nav{
			margin-left: 0;
			margin-top: .8em;
		}
		.page_nav01{
			display: block;
		}
		.page_nav > a{
			display: block;
			width:-moz-fit-content; /* Firefox */
			width:fit-content; /* other browsers */
			height: 100%;
			font-size: 1.8rem;
			line-height: 50px;
			margin: 0 0 0 auto;
			padding: 0 2em;
			text-align: right;
			background: #fff;
			border-radius: 4px;
		}
		.page_nav06 a{
			position: relative;

			width: 240px;
			margin-top: 1em;
			padding: 1em 3em;
			line-height: 1.4;
			text-align: center;
			background: #ea5226;
			border-radius: 4em;
		}
}
@media screen and (max-width: 580px) {
	.main_nav{
		margin: 40px auto 32px;
	}
}

/* スライドアニメーション ------------------------------------*/
.open .gNav{
    opacity: 1;
	pointer-events: initial;
}

/* Toggle Button ------------------------------------*/
#nav-toggle {
    display: none;
}
@media screen and (max-width: 1100px) {
	#nav-toggle {
			display: block;
			position: fixed;
			right: 1.5%;
			top: 10px;

			width: 80px;
			height: 80px;
			padding: 26px 20px 0;
			background: #05328d;
			border-radius: 4px;

			cursor: pointer;
			z-index: 101;
			transition: opacity .3s;
	}
	#nav-toggle:hover{
		opacity: 0.8;
	}
	#nav-toggle div {
			position: relative;
	}
		#nav-toggle span {
				display: block;
				position: absolute;
				height: 4px;
				width: 100%;
				background: #fff;
				left: 0;
				-webkit-transition: .35s ease-in-out;
				-moz-transition: .35s ease-in-out;
				transition: .35s ease-in-out;
		}
		#nav-toggle span:nth-child(1) {
				top: 0;
		}
		#nav-toggle span:nth-child(2) {
				top: 12px;
		}
		#nav-toggle span:nth-child(3) {
				top: 24px;
		}
	/* #nav-toggle 切り替えアニメーション */
	.open #nav-toggle span:nth-child(1) {
			top: 12px;
			-webkit-transform: rotate(135deg);
			-moz-transform: rotate(135deg);
			transform: rotate(135deg);
	}
	.open #nav-toggle span:nth-child(2) {
			width: 0;
			left: 50%;
	}
	.open #nav-toggle span:nth-child(3) {
			top: 12px;
			-webkit-transform: rotate(-135deg);
			-moz-transform: rotate(-135deg);
			transform: rotate(-135deg);
	}
}
@media screen and (max-width: 580px) {
	#nav-toggle {
		right: 0;
		top: 0;

		width: 60px;
		height: 60px;
		padding: 18px 14px 0;
		border-radius: 0 0 0 8px;
	}
	#nav-toggle:hover{
		opacity: 1;
	}
		#nav-toggle span {
				height: 3px;
		}

		#nav-toggle span:nth-child(2) {
				top: 10px;
		}
		#nav-toggle span:nth-child(3) {
				top: 20px;
		}
	/* #nav-toggle 切り替えアニメーション */
	.open #nav-toggle span:nth-child(1) ,
	.open #nav-toggle span:nth-child(3){
			top: 10px;
	}
}
/*------------------------------------------------------------------------
コンテンツレイアウト
--------------------------------------------------------------------------*/
.content_box{
	width: 1000px;
	max-width: 90%;
	margin: 0 auto;
}
.content_box + .content_box{
	margin-top: 160px;
}
@media screen and (max-width: 580px) {
	.content_box + .content_box{
		margin-top: 120px;
	}
}

.content_inner{
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
}

/*------------------------------------------------------------------------
ページヘッダー
--------------------------------------------------------------------------*/
.page_header{
	padding: 165px 0 80px;
}
	.page_title{
		width: 90%;
		margin: 0 auto;
		font-family: 'EB Garamond', serif;
		font-size: 4.8rem;
		line-height: 1.2;
		color: #05328d;
	}
	.page_title span{
		display: block;
		margin-top: 4px;
		font-family: 'Noto Sans JP', sans-serif;
		font-size: 1.8rem;
		line-height: 1.4;
		font-weight: 700;
		color: #ea5226;
	}
@media only screen and (max-width: 580px){
	.page_header{
		padding: 100px 0 80px;
	}
	.page_title{
		margin-bottom: 8px;
		font-size: 4.2rem;
	}
	.page_title span{
		margin-top: 2px;
		font-size: 1.6rem;
	}
}

.pate_head_img{ /* ヘッダー画像 */
	position: relative;
	overflow: hidden;
	display: block;

	width: 96vw;
	height: 400px;
	margin: 0 0 0 auto;
	border-radius: 20px 0 0 20px;

	-webkit-transform: skewY(-2.5deg);
	transform: skewY(-2.5deg);
}
.pate_head_img img{
	display: block;
	position: absolute;
	top: calc( 96vw * tan(-2.5deg) );
	left: 0;

	-webkit-transform: skewY(2.5deg);
	transform: skewY(2.5deg);

	width: 100%;
	height: calc( 100% + ( 96vw * tan(2.5deg) * 2 ) );
	-o-object-fit: cover;
	object-fit: cover;
}
@media only screen and (max-width: 880px){
	.pate_head_img{
		height: 300px;
	}
}
@media screen and (max-width: 580px) {
	.pate_head_img{
		width: 97vw;
		height: 240px;
	}
}

.pan{/* パンくず */
	width: 90%;
	margin: 0 auto;
}
	.pan ol{
		display: flex;
		justify-content: flex-end;

		width: 100%;
		margin:  auto;
		font-size: 1.2rem;

	}
	.pan ol li:last-child{
		max-width: 200px;
		overflow: hidden;
		text-overflow: ellipsis;
		white-space: nowrap;
	}
	.pan ol li{
		position: relative;
		line-height: 1.6;
	}
		.pan ol li + li{
			padding-left: 20px;
		}
		.pan ol li + li::before{
			position: absolute;
			top: 7px;
			left: 5px;
			display: inline-block;
			content: "";

			transform:rotate(45deg);

			width: 6px;
			height: 6px;
			border-top: 1px solid #3d3d3d;
			border-right: 1px solid #3d3d3d;
		}
			.pan ol li a:hover{
				color: #0091e6;
			}
@media only screen and (max-width: 580px){
	.pan{
		margin: 8px auto 0;
	}
			.pan ol li,
			.pan ol li:last-child{
				max-width: 140px;
				overflow: hidden;
				text-overflow: ellipsis;
				white-space: nowrap;
			}

}

/*------------------------------------------------------------------------
文字スタイル
--------------------------------------------------------------------------*/
/* 見出し */
.content_title{ /* h2 */
	position: relative;

	margin-bottom: 40px;
	padding-left: 1em;
	font-weight: 700;
	font-size: 3.2rem;
	color: #05328d;
}
.content_title::before,
.content_title::after{
	display: block;
	content: "";
	position: absolute;
	left: 0;

	width: 4px;
	height: calc( 50% - 7px );
}
.content_title::before{
	top: 7px;
	background: #05328d;
}
.content_title::after{
	bottom: 7px;
	background: #2c96d3;
}
@media only screen and (max-width: 580px){
	.content_title{ /* h2 */
		margin-bottom: 40px;
		font-size: 2.8rem;
	}
}
.content_sub_title{
	margin: 40px 0 1em;
	color: #2c96d3;
	font-weight: 700;
	font-size: 2.2rem;
}

/* テキスト */
.content_box > p + p{
	margin-top: 1em;
}

/* リンク */
.pt_link{
	color: #2c96d3;

}
	.pt_link:hover{
		background: #f4f58e;
		text-decoration: 1px underline dotted;
	}

/* リスト */
.pt_list_disc{
	margin-left: 2em;
}
.pt_list_disc li{
	list-style: disc;
	line-height: 1.6;
}
.pt_list_disc li::marker{
	color: #ea5226;
}
.pt_list_disc li + li{
	margin-top: .5em;
}

/* 説明リスト */
.pt_dl_std div + div{
	margin-top: 1em;
}
.pt_dl_std dt{
	position: relative;

	padding-left: 1em;
	line-height: 2;
}
.pt_dl_std dt::before{
	position: absolute;
	top: 50%;
	left: 0;
	content: "";

	width: 6px;
	height: 6px;
	margin-top: -3px;
	border-radius: 50%;
	background: #ea5226;
}
.pt_dl_std dd{
	padding-left: 32px;
	font-size: 1.4rem;
	color: #777;
	line-height: 1.5;
}
/* テーブル */
.pt_table_std{
	width: 100%;
}
.pt_table_std th,
.pt_table_std td{
	padding: 1em;
	line-height: 2;
}
.pt_table_std th{
	border-top: 1px solid #ea5226;
	border-bottom: 1px solid #ea5226;
}
.pt_table_std td{
	border-top: 1px solid #ccc;
	border-bottom: 1px solid #ccc;
}
@media only screen and (max-width: 580px){
	.pt_table_std{
		border-bottom: 1px solid #ccc;
	}
	.pt_table_std th,
	.pt_table_std td{
		display: block;
		width: 100%;
		padding: .8em .4em;
		line-height: 1.8;
	}
	.pt_table_std th{
		color: #ea5226;
		border-top: 1px solid #ccc;
		border-bottom: none;
	}
	.pt_table_std td{
		padding-top: 0;
		border-top: none;
		border-bottom: none;
	}
}


/*------------------------------------------------------------------------
フッター
--------------------------------------------------------------------------*/
.footer{
	overflow: hidden;

	color: #fff;
}
/*-- フッター ボタン -------------------------------------------*/
.footer_btn_list{
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;

	width: 1000px;
	max-width: 90%;
	margin: 120px auto 0;
}
.footer_btn_list li{
	width: 44%;
}
.foot_nav_title{
	position: relative;
	margin: 0 4.5%;
	font-family: 'EB Garamond', serif;
	font-size: 4.8rem;
	line-height: 1.6;
	color: #05328d;
	transition: color .3s;
}
.foot_nav_title span{
	display: block;
	padding-right: 3px;
	font-family: 'Noto Sans JP', sans-serif;
	font-size: 1.4rem;
	line-height: 1;
	font-weight: 700;
	color: #ea5226;
}
.foot_nav_title::before{
	display: block;
	content: "";
	position: absolute;
	top: 25px;
	right: 0;

	width: 24px;
	height: 24px;
	background: #fff url(../img/common/ico_arrow.png) center center no-repeat;
	background-size: 8px;
	border: 1px solid #2c96d3;
	border-radius: 50%;
	transition: background .3s;
}
@media (hover: hover) and (pointer: fine){
	.footer_btn_list_item:hover .foot_nav_title{
		color: #2c96d3;
	}
	.footer_btn_list_item:hover .foot_nav_title::before{
		background-color: #d5eaf6;
	}
}

.foot_nav_img{ /* 画像 */
	position: relative;
	overflow: hidden;
	display: block;

	width: 100%;
	height: 250px;
	border-radius: 20px;

	-webkit-transform: skewY(-7deg);
	transform: skewY(-7deg);
}
.foot_nav_img img{
	display: block;
	position: absolute;
	top: calc( 19vw * tan(-7deg) );
	left: 0;

	-webkit-transform: skewY(7deg);
	transform: skewY(7deg);

	width: 100%;
	height: calc( 100% + ( 19vw * tan(7deg) * 2 ) );
	-o-object-fit: cover;
	object-fit: cover;

	transition: transform .3s;
}
@media (hover: hover) and (pointer: fine){
	.footer_btn_list_item:hover .foot_nav_img img {
		transform: skewY(7deg) scale(1.05);
	}
}
@media only screen and (max-width: 880px){
	.footer_btn_list li{
		width: 47%;
	}
}
@media screen and (max-width: 580px) {
	.foot_nav_title{
		font-size: 3.2rem;
	}
	.foot_nav_title::before{
		top: 14px;
	}
	.foot_nav_img{ /* 画像 */
		margin-top: calc( 19vw * tan(7deg) );
		height: 120px;
	}
}

/*-- フッター ナビゲーション -------------------------------------------*/
.footer_nav_area{
	position: relative;
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	align-items: flex-end;


	width: 100%;
	padding: 80px 5% 0;
}
.footer_nav_area::after{
	display: block;
	content: "";
	position: absolute;
	top: -80px;
	left: 0;

	width: 100%;
	height: 200%;
	background: #0d1228;
	-webkit-transform: skewY(-7deg);
	transform: skewY(-7deg);

	z-index: -9;
}

.footer_corpInfo_add{
	margin-top: 20px;
	padding-left: .5em;
	font-size: 1.4rem;
}
.footer_privacy_mobi{
	display: none;
}

.footer_corpInfo_ban{
	display: flex;
	flex-wrap: wrap;

	margin: 20px 0 0 7px;
}
.footer_corpInfo_ban li + li{
	margin-left: 20px;
}

.footer_nav_list li{
	text-align: right;
}
.footer_nav_list li:last-of-type{
	margin-top: 1.5em;
}
.footer_nav_list a{
	color: #fff;
}
@media (hover: hover) and (pointer: fine){
	.footer_nav_list a:hover {
		color: #2c96d3;
	}
}

.foot_copy{
	margin: 2em 5%;
	padding: 0 7px;
	line-height: 1.4;
	font-size: 1.2rem;
}
@media screen and (max-width: 580px) {
	.footer_nav_area{
		padding: 40px 5% 0;
	}
	.footer_nav_area::after{
		top: -40px;
	}

	.footer_corpInfo_area{
		width: 100%;
	}
	.footer_logo{
		margin: 0 auto;
		width: 200px;
	}
	.footer_corpInfo_add{
		margin-top: 16px;
		padding-left: 0;
		text-align: center;
	}
	.footer_privacy_mobi{
		display: block;

		margin-top: 1em;
		font-size: 1.2rem;
		text-align: center;
	}
	.footer_privacy_mobi a{
		color: #fff;
	}

	.footer_corpInfo_ban{
		justify-content: center;

		width: 100%;
		margin: 40px 0 0 0;
	}
	.footer_corpInfo_ban li + li{
		margin-left: 20px;
	}

	.footer_nav_list{
		display: none;
	}
	.foot_copy{
		margin: 4em 5% 2em;
		padding: 0;
		text-align: center;
	}
}