@charset "UTF-8";
*{
	margin: 0px;
	padding: 0px;
	box-sizing: border-box;
	}
/* ==========================================================================
   #Variables
   ========================================================================== */
@font-face {
	font-family: "Noto Sans JP", sans-serif;
	src: url("../fonts/NotoSansJP-Regular.otf"); }

@font-face {
	font-family: "Noto Sans JP", sans-serif;
	src: url("../fonts/NotoSerifJP-Medium.otf"); }

html {
	box-sizing: border-box;
	font-size: 100%;
	}

body {
	color: #222222;
	font-weight: 400;
	font-family: "Noto Sans JP", sans-serif;
	background-color: #f5f6f7;
	position: relative;
	/*overflow-x: hidden;*/
	}



.sp {
	display:none!important;
	}
@media (max-width: 767px) {
.pc {
	display:none!important;
	}
.sp {
	display:block!important;
	}
}

a,
button {
	color: inherit;
	line-height: inherit;
	text-decoration: none !important;
	cursor: pointer;
	}

a {
	text-decoration: none;
	}

a:active,a:hover {
	outline: 0;opacity: 0.5;
	}


dd,ol,ul {
	margin-left: size(15px);
	}

ul {
	list-style: outside none none;
	margin: 0;
	padding: 0;
	}

mark {
	background: #ffee1c;
	color: #000000;
	font-weight: bold;
	}


figure,img {
	max-width: 100%;
	line-height: 0;
	}

.nserif{
	font-family: 'Noto Serif JP', serif;
	}
.fw600{
	font-weight: 600;
	}
.nav-menu ul li{
	font-family: 'Noto Serif JP', serif;
	}
.text span{
	font-family: 'Noto Serif JP', serif;
	}
h2.title{
	font-family: 'Noto Serif JP', serif;
	font-weight: 600;
	}
h3.sub-title{
	font-family: 'Noto Serif JP', serif;
	}
/*.container h3{
	font-family: 'Noto Serif JP', serif;
	}*/
p.txt{
	font-family: 'Noto Serif JP', serif;
	}
h2.title-bot{
	font-family: 'Noto Serif JP', serif;
	}
p.sub-title-bot{
	font-family: 'Noto Serif JP', serif;
	}

.h_line{
	font-family: 'Noto Serif JP', serif;
	font-weight: 600;
	font-size: 3.8rem;
	line-height: 1;
	padding-bottom: 30px;
	border-bottom: 2px solid #000000;
	position: relative;
	}
.h_line .h_line_logo{
	display: block;
	width: 272px;
	height:21px;
	position: absolute;
	bottom: 30px;
	right: 20px;
	}

li.circle{
	list-style-type: none;
	margin: 0;
	padding-left: 20px;
	position: relative;
	line-height: 2.1875;
	}

li.circle::before{
	content: '';
	width: 16px;
	height: 16px;
	border-radius: 100%;
	background-color: #000000;
	position: absolute;
	top: 0.7rem;
	left: 0;
	}
/*text-align*/
.txt_alignleft{
	text-align: left;
	}
.txt_alignright{
	text-align: right;
	}
.txt_aligncenter{
	text-align: center;
	}

/*margin*/
.mgt1rem{
	margin-top: 1rem;
	}

.mgt10{
	margin-top: 10px;
	}

.mgt20{
	margin-top: 20px;
	}

.mgt30{
	margin-top: 30px;
	}

.mgt40{
	margin-top: 40px;
	}

.mgt50{
	margin-top: 50px;
	}

/*fontsize*/
.txt_reset{
	font-size: 1rem;
	}
.txt_12{
	font-size: 0.75rem;
	}
.txt_14{
	font-size: 0.875rem;
	}
.txt_18{
	font-size: 1.125rem;
	}
.txt_20{
	font-size: 1.25rem;
	}
.txt_23{
	font-size: 1.4375rem;
	}
.txt_25{
	font-size: 1.5625rem;
	}

/*fontweight*/
.txt_bold{
	font-weight: bold;
	}
.txt_normal{
	font-weight: normal;
	}

ul.shikaku {
	margin-left:1.2em;
	}
ul.shikaku li {
	position:relative;
	margin-bottom:1em;
	/*list-style:square;*/
	}
ul.shikaku li:before {
	position:absolute;
	content:"■";
	left:-1.2em;
	top:0;
	}

/*container*/
.container {
	max-width: 1200px;
	margin: 0 auto;
	}

.container-lg {
	max-width: 1400px;
	margin: 0 auto;
	}
@media only screen and (max-width: 767px) {
.container-lg {
	width:100vw;
	padding-left: 3.125rem;
	padding-right: 3.125rem;
	} 
}
@media only screen and (max-width: 575px) {
.container-lg {
	width:100vw;
	padding-left: 0.9375rem;
	padding-right: 0.9375rem;
	}
}
.inner {
	max-width: 1200px;
	margin: 0 auto;
	}
@media only screen and (max-width: 767px) {
.inner {
	width: 100%;
	padding-left: 30px;
	padding-right: 30px;
	} 
}
.icon {
	display: inline-block;
	line-height: 0;
	}
.icon-pdf {
	position: relative;
	width: 2.125rem;
	height: 2.6875rem;
	background-image: url("../img/icon-pdf.png");
	background-repeat: no-repeat;
	background-size: contain;
	}
.icon-mail {
	position: relative;
	width: 3.0625rem;
	height: 2.1875rem;
	background-image: url("../img/icon-mail.png");
	background-repeat: no-repeat;
	background-size: contain;
	}
.icon-tel {
	position: relative;
	width: 3.25rem;
	height: 2.625rem;
	background-image: url("../img/icon-tel.png");
	background-repeat: no-repeat;
	background-size: contain;
	}
.icon-phone {
	position: relative;
	width: 1.4375rem;
	height: 2.25rem;
	background-image: url("../img/icon-phone.png");
	background-repeat: no-repeat;
	background-size: contain;
	}
.icon-close {
	position: relative;
	width: 2.75rem;
	height: 2.75rem;
	background-image: url("../img/icon-close.png");
	background-repeat: no-repeat;
	background-size: contain;
	}

/*flex*/
.flex{
	display: flex;
	}

.spflex{
	display: flex;
	}

.align_items_start{
	align-items: start;
	}

.align_items_center{
	align-items: center;
	}

.justify_content_space_between{
	justify-content: space-between;
	}

.justify_content_start{
	justify-content: flex-start;
	}

.justify_content_center{
	justify-content: center;
	}

.flex_wrap{
	flex-wrap: wrap;
	}

/*grid*/
.grid_wrap{
	display: grid;
	}


/*header*/
.header {
	background-color: #ffffff;
	}
@media only screen and (max-width: 767px) {
.header .container-lg {
	padding-left: 1.5625rem;
	padding-right: 0;
	}
}
@media only screen and (max-width: 575px) {
	.header .container-lg {
	padding-left: 0.9375rem;
	padding-right: 0;
	}
}
@media only screen and (max-width: 575px) {
.header-logo {
	max-width: 9.375rem;
	margin-top: 0.625rem;
	}
}
@media only screen and (max-width: 360px) {
.header-logo {
	max-width: 6.25rem;
	}
}
.header-content {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: space-between;
	font-size: 1.25rem;
}
header.sticky{
	position: fixed;
	width: 100%;
	top:0;
	left:0;
	background: #fff;
	z-index: 9;
	}
.header-phone {
	display: flex;
	align-items: center;
	}
.header-phone .icon {
	margin-right: 0.75rem;
	margin-bottom: -0.3125rem;
	}
@media only screen and (max-width: 575px) {
.header-phone .icon {
	width: 1.25rem;
	background-size: contain;
	margin-right: 0.3125rem;
	}
}
.header-phone a {
	font-size: 2.5rem;
	padding-right: 1.25rem;
	}
@media only screen and (max-width: 767px) {
.header-phone a {
	font-size: 1.25rem;
	padding-right: 1.25rem;
	}
}
@media only screen and (max-width: 575px) {
.header-phone a {
	font-size: 0.8rem;
	padding-right: 0.625rem;
	}
}
@media only screen and (max-width: 360px) {
.header-phone a {
	font-size: 0.875rem;
	}
}
.header-left {
	padding-left: 6.25rem;
	}
@media only screen and (min-width: 992px) and (max-width: 1199px) {
.header-left {
	padding-left: 3.125rem;
	}
}
@media only screen and (min-width: 768px) and (max-width: 991px) {
.header-left {
	padding-left: 3.125rem;
	}
}
@media only screen and (max-width: 767px) {
.header-left {
	padding-left: 0;
	}
}
.header-right {
	display: flex;
	justify-content: flex-end;
	}
.header-btn-menu {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 6.25rem;
	height: 6.25rem;
	background-color: #000000;
	color: #ffffff;
	border: none;
	outline: none;
	cursor: pointer;
	}
@media only screen and (max-width: 767px) {
.header-btn-menu {
	width: 5rem;
	height: 5rem;
	}
}
@media only screen and (max-width: 575px) {
.header-btn-menu {
	width: 3.125rem;
	height: 3.125rem;
	}
.header-btn-menu img {
	max-width: 1.5625rem;
	}
}
.header-btn-mail {
	position: absolute;
	top: 6.25rem;
	right: 0;
	z-index: 200;
	}
@media only screen and (max-width: 767px) {
.header-btn-mail {
	top: 5rem;
	}
}
@media only screen and (max-width: 575px) {
.header-btn-mail {
	top: 3.125rem;
	}
}
.header-btn-mail a {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 6.25rem;
	height: 6.25rem;
	background-color: #ffffff;
	color: #000000;
	border: none;
	outline: none;
	cursor: pointer;
	}
@media only screen and (max-width: 767px) {
.header-btn-mail a {
	width: 5rem;
	height: 5rem;
	}
}
@media only screen and (max-width: 575px) {
.header-btn-mail a {
	width: 3.125rem;
	height: 3.125rem;
	}
.header-btn-mail a img {
            max-width: 1.5625rem;
	}
}

.nav-menu {
	position: fixed;
	top: 0;
	left: 0;
	background-color: #4C4C4C;
	width: 100%;
	height: 100%;
	z-index: 999;
	font-size: 1.875rem;
	line-height: 5rem;
	color: #ffffff;
	text-align: center;
	padding: 3.125rem 1.25rem 14.0625rem 1.25rem;
	display: none;
	width: 0;
	z-index: 99999;
	}
@media only screen and (max-width: 575px) {
.nav-menu {
	font-size: 1rem;
	line-height: 3.125rem;
	}
}
.nav-menu.opened {
	display: block;
	width: 100%;
	-webkit-animation: slideIn 0.5s forwards;
	-moz-animation: slideIn 0.5s forwards;
	animation: slideIn 0.5s forwards;
	}
.nav-menu ul {
	max-width: 80%;
	margin: 0 auto;
	}
@media only screen and (max-width: 575px) {
.nav-menu ul {
	width: 100%;
	}
}
.nav-menu ul li:last-child {
	border-top: 1px solid #ffffff;
	padding: 2.1875rem 0;
	margin-top: 2.1875rem;
	}

.close-btn-menu {
	position: absolute;
	top: 3.75rem;
	right: 3.75rem;
	display: inline-block;
	line-height: 0;
	}
@media only screen and (max-width: 575px) {
.close-btn-menu {
	top: 1.875rem;
	right: 1.875rem;
	}
.close-btn-menu .icon {
        width: 1.25rem;
	}
}

@-webkit-keyframes slideIn {
  0% {
	transform: translateX(-900px); }
  100% {
	transform: translateX(0); }
	}

@-moz-keyframes slideIn {
  0% {
	transform: translateX(-900px); }
  100% {
	transform: translateX(0); }
	}

@keyframes slideIn {
  0% {
	transform: translateX(-900px); }
  100% {
	transform: translateX(0); }
	}

.footer {
	margin-top: 100px;
	}
@media only screen and (max-width: 767px) {
.footer {
	margin-top: 1.875rem;
	}
}
.footer-copyright {
	padding: 0.625rem;
	text-align: center;
	background-color: #000000;
	color: #ffffff;
	font-size: 1.0625rem;
	line-height: 2.5rem; }
@media only screen and (max-width: 575px) {
.footer-copyright {
	font-size: 0.875rem;
	line-height: 2.5rem;
	}
}

.footer-top .txt_35{
	font-family: 'Noto Serif JP', serif;
	font-weight: 600;
	font-size: 2.1875rem;
	margin-bottom: 50px;
	}
@media only screen and (max-width: 767px) {
.footer-top .txt_35{
	font-size: 1.5rem;
	margin-bottom: 25px;
	}
  }
.footer-top .title {
	font-size: 1.125rem;
	line-height: 2.1875rem;
	text-align: center;
	}
@media only screen and (max-width: 575px) {
.footer-top .title {
	padding: 0 0.9375rem;
	}
}

.footer-top .contact-content {
	display: flex;
	justify-content: center;
	margin-top: 2.8125rem;
  	}
@media only screen and (max-width: 767px) {
.footer-top .contact-content {
	margin-top:1.875rem;
	}
  }
@media only screen and (min-width: 768px) and (max-width: 991px) {
.footer-top .contact-content {
	padding-left: 1.25rem;
	padding-right: 1.25rem;
	}
}
@media only screen and (max-width: 767px) {
.footer-top .contact-content {
	padding: 0 3.125rem;
	flex-wrap: wrap;
	}
}
@media only screen and (max-width: 575px) {
.footer-top .contact-content {
	padding: 0 0.9375rem;
	}
}
.footer-top .contact-content .contact-item {
	padding: 0.9375rem;
	width: 17.8125rem;
	background-color: #ffffff;
	border: 2px solid #d4d5d5;
	}
@media only screen and (max-width: 767px) {
.footer-top .contact-content .contact-item .meta {
	margin-top: 4rem !important;
	}
.footer-top .contact-content .contact-item {
	width: 100%;
	height: 340px;
	margin-left: 0 !important;
	}
}
.footer-top .contact-content .contact-item:not(:first-child) {
	margin-left: 4.0625rem;
	}
@media only screen and (min-width: 768px) and (max-width: 991px) {
.footer-top .contact-content .contact-item:not(:first-child) {
	margin-left: 0.9375rem;
	}
}
@media only screen and (max-width: 767px) {
.footer-top .contact-content .contact-item:not(:first-child) {
	border-top: 0 !important;
	}
}
.footer-top .contact-content .contact-item .meta {
	margin-top: 2.5rem;
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	font-size: 1.3125rem;
	font-weight: 500;
	}
.footer-top .contact-content .contact-item .des {
	margin-top: 3.125rem;
	text-align: center;
	}
.footer-top .contact-content .contact-item .des a {
	font-size: 1.5625rem;
	line-height: 3.125rem;
	font-weight: 500;
	}
.footer-top .contact-content .contact-item .des.email {
	margin-top: 0.625rem;
	}
.footer-top .contact-content .contact-item .des .mail {
	font-size: 0.9375rem;
	line-height: 1.25rem;
	font-weight: 700;
	}
.footer-top .contact-content .contact-item .des .btn-contact {
	margin-top: 0.625rem;
	display: block;
	font-size: 0.9375rem;
	line-height: 2.25rem;
	font-weight: 500;
	border: 2px solid #d4d5d5;
	}

.footer-bot {
	margin-top: 9.375rem;
	margin-top:60px;
	color: #222222;
	font-size: 0.9375rem;
	line-height: 2.1875rem;
	padding: 2.8125rem 0;
	background-color: #ffffff;
	}
@media only screen and (max-width: 767px) {
.footer-bot {
	margin-top: 3.125rem;
	}
}
@media only screen and (max-width: 575px) {
.footer-bot {
	padding-bottom: 1.25rem;
	}
}
.footer-bot .bot-content {
	display: flex;
	justify-content: space-between;
	align-items: flex-end;
	padding: 0 6.25rem;
	}
@media only screen and (min-width: 768px) and (max-width: 991px) {
.footer-bot .bot-content {
	padding: 0 1.25rem;
	}
}
@media only screen and (max-width: 767px) {
.footer-bot .bot-content {
	border-top: 0 !important;
	flex-wrap: wrap;
	padding: 0 3.125rem;
	}
.footer-bot .bot-content .item {
          width: 100%;
	}
.footer-bot .bot-content .item:last-child {
	margin-top: 5rem;
	text-align: center;
	}
}
@media only screen and (max-width: 575px) {
.footer-bot .bot-content {
	padding: 0 0.9375rem;
	}
.footer-bot .bot-content .item:last-child {
	margin-top: 1.25rem;
	text-align: center;
	}
}
.footer-bot a {
	color: #1455AA;
	}

.footer-bot .logo {
	line-height:1;
	text-align:center;
	}
.footer-bot .bot-content ul {
	padding-left:1.5em;
	}
.footer-bot .bot-content li {
	list-style:outside disc;
	}
@media only screen and (max-width: 768px) {  
.footer-bot {
	margin-top: 40px;
	color: #222222;
	font-size: 0.8rem;
	line-height: 1.3875rem;
	padding: 2.8125rem 0;
	background-color: #ffffff;
	}
}

#scrollUp {
	position: fixed;
	right: 1.875rem;
	bottom: 100px;
	z-index: 200;
	display: none;
	}


@media only screen and (max-width: 575px) {
#scrollUp {
	bottom: 60px;
	right: 0.9375rem;
	}
#scrollUp img {
        width: 1.875rem;
	} 
  }


/* Media Queries
==========================================================================*/
@media screen and (max-width:1025px) {
.h_line{
	padding-right: 300px;
	}
}

@media screen and (max-width:767px) {

.h_line{
	font-size: 1.875rem;
	line-height: 1.5;
	padding-bottom: 15px;
	padding-right: 0;
	}

.h_line:has(.h_line_logo){
	padding-bottom: 36px;
	}
.h_line .h_line_logo{
	bottom: 10px;
	right: 0;
	}

.flex{
	display: block;
	}

/*margin*/
.mgt1rem{
	margin-top: 1rem;
	}

.mgt10{
	margin-top: 10px;
	}

.mgt20{
	margin-top: 10px;
	}

.mgt30{
	margin-top: 15px;
	}

.mgt40{
	margin-top: 20px;
	}

.mgt50{
	margin-top: 25px;
	}

/*fontsize*/
.txt_23{
	font-size: 1.125rem;
	}
.txt_25{
	font-size: 1.25rem;
	}


}