@charset "utf-8";

/*------------------------------------------------------------------------------
Css name: common.css
Css info: 共通スタイル
------------------------------------------------------------------------------*/

/*------------------------------------------------------------------------
 基本
--------------------------------------------------------------------------*/
@-ms-viewport　/*IE でスクロールバーがコンテンツに重なるのを避ける*/
	{
	width: auto !important;
	initial-scale: 1 !important;
	}

html{
	height:100%;
	overflow-y:scroll; 
	overflow-x:hidden;
	scroll-margin-top: 100px;
	scroll-behavior: smooth; /* スムーススクロール */
	}
html.open{overflow:hidden;}

body{
	height:100%;
	margin:0px;
	padding:0px;
	font-family: "Noto Sans JP", "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "メイリオ", Meiryo, Osaka, "ＭＳ Ｐゴシック", "MS PGothic", "sans-serif";
	font-weight:normal;
	font-style:normal;
	font-display:swap;
	font-size:16px;
	color:#333333;
	position: relative;
    }

article, aside, dialog, figure, footer,header,hgroup, nav, section { display: block; }

body *,
body p{
	line-height:1.6;
	margin:0px;
	padding:0px;
	}

table, th, td, th{
	border-collapse:collapse;
	border-spacing:0;
	font-weight:normal;
	font-size:1em;
	}

table,div,ol,ul,dl,dt,dd{
	margin:0px;
	padding:0px;
	list-style-type:none;
	-ms-zoom: normal;/*IE8*/
	}
	li{
		margin:0px;
		padding:0px;
		}

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

/*For modern browsers 回り込みの解除*/
.clearfix:before,
.clearfix:after {
  content:"";
  display:table;
	}
 
.clearfix:after {
	clear:both;
	}

.f-lef{
	float:left;
	}
	
.f-rig{
	float:right;
	}

.cen{
	text-align:center;
	}

.rig{
	text-align:right;
	}

.lef{
	text-align:left;
	}

h1,h2,h3,h4,h5,h6,small{
	font-size:100%;
	line-height:100%;
	margin:0px;
	padding:0px;
	}

input[type="radio" i] {
	background-color: initial;
	cursor: default;
	appearance: auto;
	box-sizing: border-box;
	margin: 3px 3px 0px 5px;
	padding: initial;
	border: initial;
}
input[type="checkbox" i] {
    background-color: initial;
    cursor: default;
    appearance: auto;
    box-sizing: border-box;
    margin: 3px 3px 3px 4px;
    padding: initial;
    border: initial;
}

em{
	font-style:normal;
	}
	
hr {
	display:none;
	}

img,table {	/*イメージ・テーブル線消し*/
	border:0px;
	}

img{
	max-width: 100%;
	vertical-align: bottom;	/*Strict時の画像下のスキマを埋める(Firefox)*/
	image-rendering: -webkit-optimize-contrast;/*Chrome*/
	}

address{
	font-style:normal;
	}

a{
	color:#000000;
	text-decoration:none;
	}
a:hover{
	opacity: 0.7;
	-ms-filter:"alpha(opacity=70)";
	-moz-opacity: 0.7;
	text-decoration:none;
	}
.underline{
	text-decoration:underline;
	} 

@media screen and (max-width:1199px){/*スマホ用指定*/
	br.pc{
		display:none;
	}
	.pconly{
		display:none;
	}
}
@media print, screen and (min-width:1200px){/*PC用指定*/
	br.sp{
		display:none;
	}
	.sponly{
		display:none;
	}
}

@media screen and (max-width:768px) {/*スマホ用指定*/
}
@media screen and (max-width:1139px){/*スマホ・タブレット用指定*/
}
@media print, screen and (min-width:1140px){/*PC用指定*/
}

/*------------------------------------------------------------------------
 レイアウト
--------------------------------------------------------------------------*/

/* content */
@media screen and (max-width:768px) {/*スマホ用指定*/

	#header {
		width: 100%;
		z-index: 999;
		/* fixed */
		position: fixed;
		background: rgba(255, 255, 255, 0.9);
		height: 50px;
		}
		.header-inner {
			position: relative;
		}

	#main {
		overflow: hidden;
	}

	#home .content-wrapper {
		width: 100%;
		position: relative;
		}
		#home .content-inner {
		padding: 0 24px;
		position: relative;
		}

	.page .content-wrapper {
		width: 100%;
		position: relative;
		}
		.page .content-inner {
		padding: 0 24px;
		position: relative;
		}

	footer {
		width: 100%;
		position: relative;
		}
		footer .footer-inner {
		padding: 0 24px;
		position: relative;
		}
}
@media screen and (min-width:769px) and (max-width:1199px){/*スマホ・タブレット用指定*/
	
	#header {
		width: 100%;
		/* fixed */
		position: fixed;
		z-index: 999;
		background: rgba(255, 255, 255, 0.8);
		height: 50px;
		}
	.header-wrapper {
		width: 100%;
		position: relative;
		}
		.header-inner {
		padding: 0;
		position: relative;
		}

	#main {
	}

	#home .content-wrapper {
		width: 100%;
		position: relative;
		}
		#home .content-inner {
		padding: 0 24px;
		position: relative;
		}
	
	.page .content-wrapper {
		width: 100%;
		position: relative;
		}
		.page .content-inner {
		padding: 0 24px;
		position: relative;
		}

	footer {
		width: 100%;
		position: relative;
		}
		footer .footer-inner {
		padding: 0 24px;
		position: relative;
		}
}
@media print, screen and (min-width:1200px){/*PC用指定*/
	
	#header {
		width: 100%;
		/* fixed */
		position: fixed;
		z-index: 999;
		background: rgba(255, 255, 255, 0.8);
		}
	.header-wrapper {
		width: 100%;
		position: relative;
		}
		.header-inner {
			height: 88px;
			/* max-width: 1400px; */
			box-sizing: border-box;
			margin: 0 auto;
			position: relative;
		}

	#main {
	}

	#home .content-wrapper {
		width: 100%;
		position: relative;
		}
		#home .content-inner {
			max-width: 1140px;
			box-sizing: border-box;
			margin: 0 auto;
			position: relative;
		}

	.page .content-wrapper {
		width: 100%;
		position: relative;
		}
		.page .content-inner {
			max-width: 1100px;
			box-sizing: border-box;
			margin: 0 auto;
			position: relative;
		}

	footer {
		width: 100%;
		position: relative;
		}
		footer .footer-inner {
			max-width: 1140px;
			box-sizing: border-box;
			margin: 0 auto;
			position: relative;
		}
}

/*------------------------------------------------------------------------
 ヘッダー
--------------------------------------------------------------------------*/
/* メニューOPEN時のoverlay */
.overlay {
	content: "";
	display: block;
	width: 0;
	height: 0;
	background: rgba(0, 0, 0, 0.3);
	position: absolute;
	top: 0;
	left: 0;
	z-index: 2;
	opacity: 0;
	transition: opacity .5s;
	}
.overlay.open {
	width: 100%;
	height: 100%;
	overflow:hidden;
	position:fixed;
	opacity: 1;
	cursor: pointer;
	}
	
/* hamburger */
.menu-trigger {
	display:block;
	position: absolute;
	top: 0;
	right: 0;
	z-index: 1001;
	width: 50px;
	height: 50px;
	background: #3e3c98;
	cursor: pointer;
	}
	.menu-trigger > span {
		display: inline-block;
		transition: all .4s;
		box-sizing: border-box;
		}
	.menu-trigger > span:nth-of-type(1),
	.menu-trigger > span:nth-of-type(2),
	.menu-trigger > span:nth-of-type(3){
		position: absolute;
		left: 0;
		right: 0;
		width: 20px;
		height: 1px;
		background: #ffffff;
		margin: auto;
		}
	.menu-trigger > span:nth-of-type(1) { top: 17px; }
	.menu-trigger > span:nth-of-type(2) { top: 25px; }
	.menu-trigger > span:nth-of-type(3) { top: 33px; }

	/* OPEN */
	.menu-trigger.active {
	}
	.menu-trigger.active > span:nth-of-type(1) {
		-webkit-transform: translate(-50%,-50%) rotate(45deg);
		transform: translate(-50%,-50%) rotate(45deg);
    top: 26px;
    left: 20px;
		}
	.menu-trigger.active > span:nth-of-type(2) {
		opacity: 0;
		}
	.menu-trigger.active > span:nth-of-type(3) {
		-webkit-transform: translate(-50%,-50%) rotate(-45deg);
		transform: translate(-50%,-50%) rotate(-45deg);
    top: 26px;
    left: 20px;	
		}

/* グローバルナビ */
@media screen and (max-width:1199px) {/*スマホ用指定*/

	#globalnav {
		background: #3e3c98;
		opacity: 0.8;
		overflow-y: auto;
		position: fixed;
		width: 100%;
		top: 0;
		left: 0;
		z-index: 1000;
		transform: translateY(-100%);
		transition: all .5s;
		padding: 60px 24px 24px;
		}
		#globalnav.open {
			transform: translateY(0);
			}

	#globalnav li {
		padding-bottom: 24px;
	}
	#globalnav a {
		font-size: clamp(14px, 1.4vw, 14px);
		color: #ffffff;
	}
}
@media print, screen and (min-width:1200px) {/*PC用指定*/

	.menu-trigger {
		display: none;
	}

	#globalnav {
		/* 位置 */
		position: absolute;
		top: 0;
		right: 24px;
		height: 100%;
		/* flex */
		display: flex;
		align-items: center;
	}

	#globalnav li {
		padding-right: 24px;
	}
	#globalnav li:last-child { padding-right: 0; }

	#globalnav a {
		font-size: clamp(16px, 1.6vw, 16px);
		color: #333333;
	}
}
@media screen and (min-width:1200px) and (max-width:1399px) {/**/

	/* ロゴが長く干渉してしまうため、文字を小さく */
	#globalnav a {
		font-size: clamp(12px, 1.4vw, 14px);
		color: #333333;
	}
}

#globalnav a:hover {
	text-decoration: none;
	opacity: 0.7;
	-ms-filter:"alpha(opacity=70)";
	-moz-opacity: 0.7;
}

/* ロゴ */
@media screen and (max-width:1199px) {/*スマホ用指定*/

/*
	#header-logo{
		display: block;
		margin: 0 24px;
		padding: 8px 0;
		}
	#header-logo img {
		height: 32px;
		width: auto;
		display: block;
	} */

	#header-logo,
	#header-logo2 {
		display: block;
		margin: 0 8px;
		padding: 12px 0;
		}
	#header-logo img,
	#header-logo2  img {
		height: 24px;
		width: auto;
		display: block;
	}

}
@media print, screen and (min-width:1200px){/*PC用指定*/
	
	#header-logo,
	#header-logo2 {
		display: block;
		margin: 0 24px;
		padding: 16px 0;
		}

	#header-logo img,
	#header-logo2 img {
		height: 46px;
		width: auto;
		display: block;
	}
}
@media screen and (min-width:1200px) and (max-width:1399px) {

	/* ロゴが長く干渉してしまうため、縮小する */
	#header-logo,
	#header-logo2 {
		display: block;
		margin: 0 24px;
		padding: 28px 0;
	}
	#header-logo  img,
	#header-logo2  img {
		height: 30px;
		width: auto;
		display: block;
	}
}

/* パンくずリンク--------------------------*/
.pan{
	font-size: clamp(14px, 1.4vw, 14px);
	text-align: left;
	color:#231815;
	padding:0;
	margin:0 0 15px 0;
	position: relative;	/* 背景色の前に出るように */
	}
	.pan a{
		color:#231815;
		text-decoration: none;
		position: relative;
		padding-right: 40px;
		}
	.pan a::after{
		content:"　＞　";
		position: absolute;
		right: 0;
		top: 0;
		bottom: 0;
		margin: auto;
		}
	.pan a:hover{
		text-decoration: underline;
		}

/*------------------------------------------------------------------------
 フッター
--------------------------------------------------------------------------*/
/* レイアウト */
footer {
	background: #ebebeb;
}
@media screen and (max-width:1199px){/*スマホ・タブレット用指定*/

	footer #footer-box01 {
		padding: 24px;
	}
	footer #footer-box01 .content_lef {
		padding-bottom: 24px;
	}
}
@media print, screen and (min-width:1200px){/*PC用指定*/

	footer #footer-box01 {
		padding: 50px 0;
	  display: flex;
	  flex-flow: row nowrap;
	  justify-content: space-between;
	}
	footer #footer-box01 .content_rig {
	}
}

/* ロゴ */
footer #footer-box01 #footer-logo a {
		display: block;
	}
	footer #footer-box01 #footer-logo img{
		height: auto;
		width: 334px;
		max-width: 100%;
	}

/* DLバナー */
@media screen and (max-width:1199px){/*スマホ・タブレット用指定*/

	footer #footer-box01 .content_lef .free-dl-bana {
			margin-top: 24px;
			margin-bottom: 24px;
		}
		footer #footer-box01 .content_lef .free-dl-bana p {
		  font-size: 1.0rem;
		  font-size: clamp(10px, 1.0rem, 10px);
		}
		footer #footer-box01 .content_lef .free-dl-bana img {
			max-width: 280px;
			height: auto;
      border: 1px solid #a9a9a9;
      margin-top: 16px;
		}
}
@media print, screen and (min-width:1200px){/*PC用指定*/


	footer #footer-box01 .content_lef .free-dl-bana {
			margin-top: 40px;
			margin-bottom: 40px;
		}
		footer #footer-box01 .content_lef .free-dl-bana p {
		  font-size: 1.4rem;
		  font-size: clamp(14px, 1.4rem, 14px);
		}
		footer #footer-box01 .content_lef .free-dl-bana img {
			max-width: 420px;
			height: auto;
      border: 1px solid #a9a9a9;
      margin-top: 16px;
		}
}

/* フッターナビ */
@media screen and (max-width:1199px){/*スマホ・タブレット用指定*/

	#footer-nav {
		padding-bottom: 16px;
		}
		#footer-nav li {
			padding-bottom: 8px;
		}

	#footer-nav a {
		color: #333333;
		font-size: 1.2rem;/*12px*/
		font-size: clamp(10px, 1.2rem, 12px);
		position: relative;
		padding: 0 20px;
		}
		#footer-nav a::before {
			content: "";
			position: absolute;
			left: 0;
			top: 0;
			bottom: 0;
			margin: auto;
			width: 16px;
			height: 10px;
			background-image: url(../images/ico-arrow_green.png);
			background-repeat: no-repeat;
			background-size: contain;
		}
}
@media print, screen and (min-width:1200px){/*PC用指定*/
		
	#footer-nav {
		padding-bottom: 16px;
		}
		#footer-nav li {
			padding-bottom: 24px;
		}

	#footer-nav a {
		color: #333333;
		font-size: 1.6rem;/*16px*/
		font-size: clamp(14px, 1.6rem, 16px);
		position: relative;
		padding: 0 30px;
		}
		#footer-nav a::before {
			content: "";
			position: absolute;
			left: 0;
			top: 0;
			bottom: 0;
			margin: auto;
			width: 20px;
			height: 16px;
			background-image: url(../images/ico-arrow_green.png);
			background-repeat: no-repeat;
			background-size: contain;
		}
}

/* JPCAリンク */
@media screen and (max-width:1199px){/*スマホ・タブレット用指定*/

	#footer-box01 .lnk-jpca {
		position: relative;
		background: #b7cb4d;
		color: #333333;
		width: calc(100% - 60px)
		font-size: 1.2rem;/*12px*/
		font-size: clamp(10px, 1.2rem, 12px);
		padding: 8px 40px 20px 20px;
		display: inline-block;
		}
		#footer-box01 .lnk-jpca::after {
			content: "";
			position: absolute;
			bottom: 8px;
			right: 0;
			left: 0;
			margin: auto;
			width: 20px;
			height: 16px;
			background-image: url(../images/ico-arrow_wh.png);
			background-repeat: no-repeat;
			background-size: contain;
		}
}
@media print, screen and (min-width:1200px){/*PC用指定*/

	#footer-box01 .lnk-jpca {
		position: relative;
		background: #b7cb4d;
		color: #333333;
		font-size: 1.6rem;/*16px*/
		font-size: clamp(14px, 1.6rem, 16px);
		padding: 8px 40px 8px 20px;
		display: inline-block;
		}
		#footer-box01 .lnk-jpca::after {
			content: "";
			position: absolute;
			top: 0;
			bottom: 0;
			right: 12px;
			margin: auto;
			width: 20px;
			height: 16px;
			background-image: url(../images/ico-arrow_wh.png);
			background-repeat: no-repeat;
			background-size: contain;
		}
}

/* copyright */
@media screen and (max-width:1199px){/*スマホ・タブレット用指定*/

	.copyright {
	  font-size: 1.2rem;/*12px*/
	  font-size: clamp(12px, 1.2rem, 12px);
	  color: #333333;
		padding: 16px 0;
	}
}
@media print, screen and (min-width:1200px){/*PC用指定*/

	.copyright {
	  font-size: 1.6rem;/*16px*/
	  font-size: clamp(14px, 1.6rem, 16px);
	  color: #333333;
		padding: 16px 0;
	}
}

/* pagetop */
@media screen and (max-width:1199px){/*スマホ・タブレット用指定*/

	#pagetop a {
		position: absolute;
		width: 40px;
		height: 40px;
		right: 0;
		bottom: 0;
		background: #3e3c98;
		display: flex;
		align-items: center;
		justify-content: center;
		z-index: 100;
	}
	#pagetop img {
		height: 10px;
		width: auto;
	}
}
@media print, screen and (min-width:1200px){/*PC用指定*/

	#pagetop a {
		position: absolute;
		width: 80px;
		height: 80px;
		right: 0;
		bottom: 0;
		background: #3e3c98;
		display: flex;
		align-items: center;
		justify-content: center;
		z-index: 100;
	}
	#pagetop img {
		height: 16px;
		width: auto;
	}
}