@charset "utf-8";

/*		Contents
---------------------------------------------------------------------------
	common
	loading
	header
	menu
	main
	footer
------------------------------------------------------------------------ */


/* ========================================================================
	common
======================================================================== */
@media print, screen and (min-width:768px){
body{
	min-width:1260px;
}

.sp{
	display:none;
}

.inner{
	position:relative;
	width:1200px;
	margin:0 auto;
}

a img, .fade, .fades a{ transition-duration:0.2s; }
a:hover img, .fade:hover, .fades a:hover{ opacity:0.8; }
.fade:hover img, .fades a:hover img{ opacity:1; }
}

@media screen and (max-width:767px){
body{
	min-width:320px;
	font-size:1.6rem; /* 16px */
}

.pc{
	display:none;
}

.inner{
	position:relative;
	padding:0 20px;
}

iframe{
	width:100%;
}
}


/* ========================================================================
	loading
======================================================================== */
@keyframes zoomout_01{
	0%   { transform:scale(1.0); opacity:1; }
	100% { transform:scale(0.4); opacity:0; }
}

@keyframes zoomout_02{
	0%   { font-size:20.0rem; opacity:0; }
	100% { font-size:8.8rem; opacity:1; }
}

@keyframes zoomout_02_sp{
	  0% { font-size:20.0rem; opacity:0; }
	100% { font-size:4.0rem; opacity:1; }
}

#loading{
	position:fixed;
	width:100%;
	height:100%;
	background:#0f3159;
	z-index:20;
}


/* ----------------------------------------
	txt_01
---------------------------------------- */
#loading .txt_01{
	position:absolute;
	top:50%;
	left:0;
	transform:translateY(-50%);
	width:100%;
	height:200px;
}

#loading .txt_01 span{
	position:absolute;
	top:0;
	left:0;
	width:100%;
	text-align:center;
	font-size:20.0rem;
	font-weight:800;
	color:#ffffff;
	line-height:1;
	opacity:0;
	animation:zoomout_01 1.4s cubic-bezier(0.22, 1, 0.36, 1) 1;
}


/* ----------------------------------------
	txt_02
---------------------------------------- */
#loading .txt_02{
	position:absolute;
	top:606px;
	left:0;
	width:100%;
	height:auto;
}

#loading .txt_02 span{
	position:absolute;
	top:0;
	left:50%;
	transform:translateX(-50%);
	text-align:center;
	font-size:20.0rem;
	font-weight:800;
	color:#ffffff;
	line-height:1;
	opacity:0;
}
#loading .txt_02.on span{ animation:zoomout_02 2.0s cubic-bezier(0.22, 1, 0.36, 1) 1.4s 1; }

@media screen and (max-width:767px){
#loading .txt_02{
	top:245px;
}

#loading .txt_02.on span{
	animation:zoomout_02_sp 2.0s cubic-bezier(0.22, 1, 0.36, 1) 1.4s 1;
}
}


/* ----------------------------------------
	progress
---------------------------------------- */
#loading progress{
	position:absolute;
	bottom:50px;
	left:50%;
	transform:translateX(-50%);
	width:80px;
	height:4px;
	-webkit-appearance:none;
	-moz-appearance:none;
	background:#274569;
	border:none;
}
::-webkit-progress-bar{ background:#274569; }
::-webkit-progress-value{ background:#ffffff; }
::-moz-progress-bar{ background:#ffffff; }

@media screen and (max-width:767px){
#loading progress{
	bottom:30px;
}
}


/* ========================================================================
	header
======================================================================== */
header{
	display:flex;
	justify-content:space-between;
	position:fixed;
	top:0;
	left:0;
	width:100%;
	min-width:1260px;
	background:url(../../img/common/bg_header.png) center top;
	z-index:10;
}

header h1,
header > .logo{
	padding:10px 0 10px 30px;
}

header h1 span,
header > .logo span{
	display:block;
	padding:0 0 6px 2px;
	font-size:1.2rem;
	color:#ffffff;
	line-height:1;
	text-decoration:none;
}

@media screen and (max-width:767px){
header{
	position:relative;
	min-width:auto;
	background-position:center bottom;
	background-size:960px auto;
}

header h1,
header > .logo{
	padding:5px 20px;
}

header h1 img,
header > .logo img{
	width:auto;
	height:36px;
}

header h1 span,
header > .logo span{
	padding:0 0 4px 0;
	font-size:1.0rem;
	letter-spacing:-0.03em;
}
}


/* ========================================================================
	menu
======================================================================== */
#menu .btn{
	display:none;
}

@media screen and (max-width:767px){
#menu .btn{
	display:block;
	position:fixed;
	top:0;
	right:0;
	width:60px;
	height:60px;
	background:#0f3159;
	cursor:pointer;
	z-index:20;
}

#menu .btn span{
	display:none;
}

#menu .btn::before,
#menu .btn.close::before,
#menu .btn.close::after{
	content:"";
	display:block;
	position:relative;
	top:50%;
	left:50%;
	width:20px;
	height:1px;
	background:#ffffff;
	box-shadow:0 -6px 0 0 #ffffff, 0 6px 0 0 #ffffff;
	transform:translateX(-50%);
	transition-duration:0.2s;
}
#menu .btn.close::before{
	box-shadow:none;
	transform:translateX(-50%) rotate(45deg);
}
#menu .btn.close::after{
	top:calc(50% - 1px);
	box-shadow:none;
	transform:translateX(-50%) rotate(-45deg);
}
}


/* ----------------------------------------
	menu
---------------------------------------- */
#menu .menu{
	padding:20px 0 0 0;
}

@media screen and (max-width:767px){
#menu .menu{
	overflow-y:scroll;
	display:none;
	position:fixed;
	top:0;
	left:0;
	width:100%;
	height:100%;
	padding:0;
	background:#ffffff;
}
}


/* logo
---------------------------------------- */
#menu .menu .logo{
	display:none;
}

@media screen and (max-width:767px){
#menu .menu .logo{
	display:block;
	padding:10px 20px;
	background:#0f3159;
}

#menu .menu .logo img{
	width:auto;
	height:40px;
}
}


/* gnavi
---------------------------------------- */
#menu .menu .gnavi{
	display:flex;
	gap:0 50px;
	padding:0 60px 0 0;
}

#menu .menu .gnavi > li{
	position:relative;
}

#menu .menu .gnavi > li > a{
	display:flex;
	align-items:center;
	position:relative;
	height:60px;
	padding:0;
	font-weight:700;
	color:#ffffff;
	line-height:1;
	text-decoration:none;
}

#menu .menu .gnavi > li > a::before{
	content:"";
	position:absolute;
	bottom:9px;
	left:0;
	width:100%;
	height:2px;
	background:transparent;
	transition-duration:0.2s;
}
#menu .menu .gnavi > li > a:hover::before{ background:#ffffff; }

#menu .menu .gnavi > li:nth-child(6){
	padding:0 22px 0 0;
}

#menu .menu .gnavi > li:nth-child(6) > a::before{
	left:auto;
	bottom:50%;
	right:-22px;
	width:14px;
	height:8px;
	margin:0 0 -4px 0;
	background:url(../../img/common/arrow_menu.png) no-repeat center;
}

@media print, screen and (min-width:768px) and (max-width:1500px){
#menu .menu .gnavi{
	gap:0 40px;
	padding:0 30px 0 0;
}

#menu .menu .gnavi > li > a{
	font-size:1.6rem;
}
}

@media screen and (max-width:767px){
#menu .menu .gnavi{
	display:block;
	padding:0;
}

#menu .menu .gnavi > li{
	border-bottom:1px solid #cccccc;
}

#menu .menu .gnavi > li > a{
	padding:0 20px;
	color:#222222;
}
#menu .menu .gnavi > li > a::before{ content:none; }
#menu .menu .gnavi > li:nth-child(6){ padding:0; }
}


/* ---------- open ---------- */
#menu .menu .gnavi .open{
	display:none;
}

@media screen and (max-width:767px){
#menu .menu .gnavi .open,
#menu .menu .gnavi .open::before{
	display:flex;
	justify-content:center;
	align-items:center;
	position:absolute;
	top:0;
	right:0;
	width:60px;
	height:60px;
	font-size:2.0rem;
	font-weight:700;
	cursor:pointer;
}
#menu .menu .gnavi .open::before{
	content:"＋";
	width:59px;
	background:#ffffff;
	border-left:1px solid #cccccc;
}
#menu .menu .gnavi .open.close::before{ content:"－"; }
}


/* ---------- child ---------- */
#menu .menu .child{
	display:none;
	position:absolute;
	top:70px;
	right:0;
	padding:9px 32px 35px;
	background:#f6f6f6;
	border-radius:10px;
}

#menu .menu .child a{
	display:flex;
	align-items:center;
	width:184px;
	height:57px;
	padding:0;
	background:url(../../img/common/line_menu.png) repeat-x left bottom;
	font-size:1.6rem;
	font-weight:700;
	text-decoration:none;
}

@media screen and (max-width:767px){
#menu .menu .child{
	position:static;
	padding:0;
	border-radius:0;
}

#menu .menu .child li{
	border-top:1px solid #cccccc;
}

#menu .menu .child a{
	width:auto;
	height:60px;
	padding:0 20px;
	background:none;
}
}


/* ========================================================================
	main
======================================================================== */
main{
	padding:200px 0 100px 0;
	background:url(../../img/common/bg_main.png) center;
}

main p,
main li,
main dl dt,
main dl dd{
	font-weight:500;
}

@media screen and (max-width:767px){
main{
	padding:60px 0 20px 0;
}
}


/* ----------------------------------------
	table
---------------------------------------- */
main table{
	margin:0 0 100px 0;
	line-height:3.0rem;
}

main table th{
	width:240px;
	padding:25px 60px;
	background:#0f3159;
	border-top:1px solid #9b9b9b;
	border-bottom:1px solid #9b9b9b;
	text-align:center;
	font-weight:500;
	color:#ffffff;
	white-space:nowrap;
}

main table td{
	padding:25px 0 25px 60px;
	border-top:1px solid #9b9b9b;
	border-bottom:1px solid #9b9b9b;
	font-weight:500;
}

@media screen and (max-width:767px){
main table{
	margin:0 0 40px 0;
	border-bottom:1px solid #9b9b9b;
}

main table th,
main table td{
	display:block;
	width:auto;
	padding:13px 20px;
	border:none;
	text-align:left;
}
main table td{ border:none; }
}


/* ========================================================================
	footer
======================================================================== */
footer{
	background:#0f3159;
	color:#ffffff;
}

footer .logo{
	padding:108px 0 78px 0;
	text-align:center;
}

footer dl{
	padding:10px 0 76px 0;
}

footer dl dt{
	margin:0 0 24px 0;
	font-size:2.6rem;
	font-weight:700;
	line-height:1;
}

footer dl dd{
	font-weight:500;
	line-height:3.0rem;
}

@media screen and (max-width:767px){
footer .logo{
	padding:40px 0;
}

footer .logo img{
	width:200px;
}

footer dl{
	padding:0 0 40px 0;
}

footer dl dt{
	margin:0 0 20px 0;
	font-size:2.0rem;
}
}


/* ----------------------------------------
	menu
---------------------------------------- */
footer .menu{
	display:flex;
	gap:0 160px;
	padding:0 0 60px 260px;
}

footer .menu a{
	display:block;
	position:relative;
	margin:0 0 12px 0;
	padding:0 0 0 23px;
	font-weight:500;
	color:#ffffff;
	line-height:3.8rem;
	text-decoration:none;
}
footer .menu a:hover{ text-decoration:underline; }

footer .menu a::before{
	content:"";
	position:absolute;
	top:50%;
	left:0;
	width:11px;
	height:2px;
	background:#ffffff;
}

@media screen and (max-width:767px){
footer .menu{
	display:none;
}
}


/* ----------------------------------------
	contact
---------------------------------------- */
footer .contact{
	display:flex;
	justify-content:center;
	gap:0 25px;
	margin:0 0 86px 0;
}

footer .contact a{
	display:flex;
	justify-content:center;
	align-items:center;
	width:438px;
	height:118px;
	background:#ffffff;
	font-size:2.0rem;
	font-weight:700;
	color:#0f3159;
	line-height:1;
	text-decoration:none;
}

@media screen and (max-width:767px){
footer .contact{
	display:block;
	margin:0 0 20px 0;
}

footer .contact a{
	width:auto;
	height:118px;
	font-size:2.0rem;
}
}


/* tel
---------------------------------------- */
footer .contact .tel a{
	flex-direction:column;
	gap:10px 0;
	font-size:1.6rem;
}

footer .contact .tel .num{
	position:relative;
	font-size:2.8rem;
	font-weight:700;
}

footer .contact .tel .num::before{
	content:"";
	position:absolute;
	top:2px;
	left:-38px;
	width:24px;
	height:24px;
	background:url(../../img/common/icon_tel.png) no-repeat center;
}

footer .contact .tel .time{
	font-size:1.4rem;
}

@media screen and (max-width:767px){
footer .contact .tel a{
	margin:0 0 20px 0;
}
}


/* mail
---------------------------------------- */
footer .contact .mail span{
	padding:0 0 0 42px;
	background:url(../../img/common/icon_mail.png) no-repeat left center;
}


/* ----------------------------------------
	sitemap
---------------------------------------- */
footer .sitemap{
	display:flex;
	justify-content:center;
	align-items:center;
	position:absolute;
	bottom:0;
	right:0;
	height:120px;
}

footer .sitemap a{
	font-size:1.4rem;
	font-weight:500;
	color:#ffffff;
	text-decoration:none;
}
footer .sitemap a:hover{ text-decoration:underline; }

@media screen and (max-width:767px){
footer .sitemap{
	position:static;
	height:auto;
	border-top:1px solid #2e4c6e;
}

footer .sitemap a{
	display:flex;
	justify-content:center;
	align-items:center;
	width:100%;
	height:60px;
}
footer .sitemap a:hover{ text-decoration:none; }
}


/* ----------------------------------------
	copyright
---------------------------------------- */
footer .copyright{
	border-top:1px solid #2e4c6e;
}

footer .copyright small{
	display:flex;
	justify-content:center;
	align-items:center;
	height:120px;
	font-size:1.6rem;
	font-weight:700;
	line-height:1;
}

@media screen and (max-width:767px){
footer .copyright small{
	height:74px;
	font-size:1.4rem;
}
}