﻿@charset "UTF-8";
/*
 * common.css
 * 
 */

/* !HTML5 elements
---------------------------------------------------------- */
header, footer, nav, section, aside, article
{ display: block;}

/* !Reseting
---------------------------------------------------------- */

body, div, pre, p, blockquote, dl, dt, dd, ul, ol, li, h1, h2, h3, h4, h5, h6, form, fieldset, th, td
{ margin: 0; padding: 0;}
input, textarea
{ margin: 0; font-size: 100%;}
label
{ cursor: pointer;}
table
{ border-collapse: collapse; border-spacing: 0; font-size: 100%;}
fieldset, img
{ border: 0;}
img
{ vertical-align: top; max-width: 100%;}
address, caption, cite, code, dfn, em, th, var
{ font-style: normal; font-weight: normal;}
ol, ul
{ list-style: none;}
caption, th
{ text-align: left;}
h1, h2, h3, h4, h5, h6
{ font-size: 100%; font-weight: normal;}
q:after, q:before
{ content:'';}
a, input,select,textarea,button
{ outline: none; }
abbr, acronym
{ border: 0;}

select::-ms-expand {
	display: none;
} 
input[type=radio]::-ms-check,
input[type=checkbox]::-ms-check{
	display: none;
} 
select,
input[type=radio],
input[type=checkbox],
input[type=text],
input[type=password],
input[type=email],
input[type=tel],
input[type=number],
input[type=reset],
input[type=button],
input[type=submit],
textarea {
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
	-webkit-border-radius: 0;
	-moz-border-radius: 0;
	border-radius: 0;
	font-family: "Noto Sans JP", sans-serif;
}
input[type=text]::-ms-clear,
input[type=tel]::-ms-clear,
input[type=number]::-ms-clear{
	display: none;
}
input[type=reset],
input[type=button],
input[type=submit]  {
	font-family: "Noto Sans JP", sans-serif;
  cursor: pointer;
}

/* !Clearfix
---------------------------------------------------------- */
.clearfix {
	display: block;
	min-height: 1%;
}
.clearfix:after {
	clear: both;
	content:".";
	display: block;
	height: 0;
	visibility: hidden;
}
* html .clearfix {
	height: 1%;
	/*\*//*/
	height: auto;
	overflow: hidden;
	/**/
}
/* !Layout
---------------------------------------------------------- */
html { 
	overflow-y: scroll;
	font-size: 62.5%;
}
body {
	font-family: "Noto Sans JP", sans-serif;
	font-size: 1.6rem;
	-webkit-text-size-adjust: none;
	line-height: 1.5;
	color: #333;
}

@media screen and (max-width: 1200px) {
  html { 
    font-size: 0.8333vw;
  }
}
@media screen and (max-width: 767px) {
  html { 
    font-size: 62.5%;
  }
}
@media screen and (max-width: 374px) {
  html { 
    font-size: 2.6667vw;
  }
}


*{ 
	box-sizing:border-box;
	-moz-box-sizing:border-box;
	-webkit-box-sizing:border-box;
}

/* !Base Fonts -------------------------------------------------------------- */
a {
	color: inherit;
	text-decoration: none;
	transition: all 0.5s !important;
	-moz-transition: all 0.5s !important; /* Firefox */
	-webkit-transition: all 0.5s !important; /* Chrome&Safari */
}

a:hover {
	transition: all 0.5s !important;
	-moz-transition: all 0.5s !important; /* Firefox */
	-webkit-transition: all 0.5s !important; /* Chrome&Safari */
}

.op img,
.op input {
	-webkit-transition: opacity 0.5s ease-out;
	-moz-transition: opacity 0.5s ease-out;
	-ms-transition: opacity 0.5s ease-out;
	transition: opacity 0.5s ease-out;	
}
.op:hover img,
.op:hover input {
	opacity: .7;
	-webkit-opacity: .7;
	-moz-opacity: .7;
	filter: alpha(opacity=70);	/* IE lt 8 */
	-ms-filter: "alpha(opacity=70)"; /* IE 8 */
	-webkit-transition: opacity 0.5s ease-out;
	-moz-transition: opacity 0.5s ease-out;
	-ms-transition: opacity 0.5s ease-out;
	transition: opacity 0.5s ease-out;
}

.fwN { font-weight: normal;}
.fwB { font-weight: bold;} 
sup   { font-size: 8px; vertical-align: top;}
sub   { font-size: 8px; vertical-align: baseline;}

/* !Inline Align ------------------------------------------------------------ */
.taL { text-align: left   !important;}
.taC { text-align: center !important;}
.taR { text-align: right  !important;}
.vaT { vertical-align: top    !important;}
.vaM { vertical-align: middle !important;}
.vaB { vertical-align: bottom !important;}
.blockC { margin-right: auto; margin-left: auto; text-align: left;}
* html .blockC { margin-right: 0; margin-left: 0;}
.blockR { margin-left: auto; text-align: left;}
* html .blockR { margin-left: 0;}

/* !Floats ------------------------------------------------------------------ */
.flL    { display: inline; float: left;}
.flR    { display: inline; float: right;}
.flImgL { display: inline; float: left; margin-right: 10px;}
.flImgR { display: inline; float: right; margin-left: 10px;}
.ftBox  { overflow: hidden;}

/* !Tools ------------------------------------------------------------------- */
.clear { clear: both;}
.block { display: block !important;}
.hide  { display: none !important;}
.bgN   { background: none !important;}
.tdU   { text-decoration: underline;}
.tdN   { text-decoration: none;}

/* !JavaScript -------------------------------------------------------------- */
.over { /* ロールオーバー呼び出し用 */ }

@media screen and (min-width: 768px) {
	.sp {
		display: none;
	}
}
@media screen and (max-width: 767px) {
	.pc {
		display: none;
	}
}

/* !wrapper
---------------------------------------------------------- */
#wrapper {
	position: relative;
	padding-top: 6.4rem;
}

.overplay {
	position: fixed;
	left: 0;
	top: 0;
	z-index: 99;
	width: 100%;
	height: 100vh;
	z-index: 99;
	background:rgba(255,255,255,0.2);
	backdrop-filter: blur(1rem) saturate(115%);
	-webkit-backdrop-filter: blur(1rem) saturate(115%);
}

/* !header
---------------------------------------------------------- */
#header {
	display: flex;
	justify-content: space-between;
	position: fixed;
	left: 0;
	top: 0;
	z-index: 99;
	width: 100%;
	background: #000;
	color: #fff;
}
#headerLogo {
	display: flex;
	align-items: center;
	padding: 0 2.8rem;
	height: 6.4rem;
}
#headerLogo img {
	width: 10rem;
}

.btnMenu {
	display: none;
	position: relative;
	z-index: 5;
	width: 4.8rem;
	height: 4.8rem;
	background: url(../img/common/icon_menu.svg)no-repeat center #fff;
	background-size: 60%;
} 
.btnMenu.active {
	background-image: url(../img/common/icon_menu_close.svg);
}

#gNavi ul {
	display: flex;
}
#gNavi.open {
	visibility: visible;
	opacity: 1;
}
#gNavi li a {
	display: flex;
	align-items: center;
	padding: 0 4.5rem;
	height: 6.4rem;
	font-size: 1.8rem;
	font-weight: 600;
}
#gNavi li.contact a {
	background: #213c7c;
}

@media screen and (max-width: 1400px) {
	#gNavi li a {
		padding: 0 2.8rem;
	}
}
/* hover */
@media screen and (min-width: 768px) {
	#gNavi li a:hover {
		background: #fff;
		color: #000;
	}
	#gNavi li.contact a:hover {
		background: #fff;
		color: #213c7c;
	}
}
/* sp */
@media screen and (max-width: 767px) {
	#wrapper {
		padding-top: 4.8rem;
	}
	
	#headerLogo {
	    padding: 0 2rem;
	    height: 4.8rem;
	}
	#headerLogo img {
	    width: 8rem;
	}
	
	.btnMenu {
		display: block;
	}
	
	#gNavi {
		visibility: hidden;
		opacity: 0;
		overflow-y: auto;
		-webkit-overflow-scrolling: touch;
		position: absolute;
		right: 0;
		top: 0;
		z-index: 2;
		padding: 8rem 2rem;
		width: 100%;
		height: 100vh;
		background: #000;
		transition: opacity .3s ease, visibility .3s ease;
	}
	#gNavi.open {
		visibility: visible;
		opacity: 1;
	}
	#gNavi ul {
		display: block;
	}
	#gNavi li a {
        padding: 0;
		height: 4.8rem;
	}
	#gNavi li.contact {
		margin-top: 2rem;
	}
	#gNavi li.contact a {
		justify-content: center;
		border-radius: 5rem;
	}
}

/* !footer
---------------------------------------------------------- */ 
#footer {
	font-size: 1.8rem;
}
#footer .footerIn {
	padding: 18rem 0 3rem;
}
.footerLogo {
	margin: 0 auto 17rem;
	width: 22.8rem;
	text-align: center;
}
.footLinks {
	display: flex;
	justify-content: center;
	gap: 0 3rem;
}
#copyright {
	display: flex;
	justify-content: center;
	align-items: center;
	padding: 1rem;
	min-height: 8.6rem;
	background: #000;
	text-align: center;
	color: #fff;
}
/* hover */
@media screen and (min-width: 768px) {
	.footLinks a:hover {
		text-decoration: underline;
	}
}
/* sp */
@media screen and (max-width: 767px) {
	#footer {
	    font-size: 1.4rem;
	}
	#footer .footerIn {
		padding: 8rem 0 2rem;
	}
	.footerLogo {
	    margin: 0 auto 8rem;
	    width: 18rem;
	}
	.footLinks {
	    display: flex;
	    justify-content: center;
		flex-wrap: wrap;
	    gap: 1rem 2rem;
	}
	#copyright {
	    padding: 1rem;
	    min-height: 5rem;
	}
}


/* !common
---------------------------------------------------------- */ 
.colorRed {
	color: #213c7c;
}

#teaser {
	display: flex;
	align-items: center;
	justify-content: center;
	height: 38rem;
}
.teaserHd {
	color: #213c7c;
	font-size: 6.2rem;
	font-weight: 700;
}

#breadcrumb {
	
} 

/* sp */
@media screen and (max-width: 767px) {
	#teaser {
	    height: 24rem;
	}
	.teaserHd {
	    font-size: 3.2rem;
	}
}


.inner {
	padding: 0 5rem;
	margin: 0 auto;
	max-width: 122rem;
}

.hdL {
	margin-bottom: 8rem;
	text-align: center;
	letter-spacing: 0.055em;
	font-size: 6rem;
	font-weight: 700;
}
.hdL .small {
	font-size: 5.4rem;
}

.hdS {
	margin-bottom: 13rem;
	line-height: 1.6;
	font-size: 2.8rem;
	font-weight: 600;
}

.btnLink {
	margin-top: 10rem;
	text-align: center;
}
.btnLink .btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	transition: all 0.5s;
	height: 8.6rem;
	width: 100%;
	max-width: 52.8rem;
	background: #213c7c;
	border-radius: 8rem;
	border: 0;
	color: #fff;
	font-size: 3.36rem;
	font-weight: 700;
}

.headLine .con {
	display: inline-block;
	position: relative;
	z-index: 2;
}
.headLine .con:before {
	content: "";
	position: absolute;
	left: 0;
	bottom: 0;
	z-index: -1;
	transition-duration: 1s;
	height: 2.2rem;
	background: #213c7c;
}
.headLine.animated .con:before {
	animation: txtline 1s forwards;
}
@keyframes txtline {
	0% {
		width: 0;
	}
	100% {
		width: 100%;
	}
}


/* pc */
@media screen and (min-width: 768px) {
  a[href^="tel:"] {
    pointer-events: none;
    cursor: default;
  }
  
  .btnLink .btn:hover {
	  background: #000;
  }
}
/* sp */
@media screen and (max-width: 767px) {
	.inner {
		padding: 0 1.6rem;
	}
	
	.btnLink {
	    margin-top: 5rem;
	}
	.btnLink .btn {
	    height: 5.6rem;
	    font-size: 2rem;
	}
	
	.headLine .con:before {
		height: 1.2rem;
	}
	
	.hdL {
	    margin-bottom: 4rem;
	    font-size: 3.2rem;
	}
	.hdL .small {
	    font-size: 2.8rem;
	}
	
	.hdS {
	    margin-bottom: 4rem;
	    font-size: 2rem;
	}
	
}

