@charset "UTF-8";
/*-----------------------------------
	base
-----------------------------------*/
html {
  -webkit-text-size-adjust: 100%;
  -moz-text-size-adjust: 100%;
  -ms-text-size-adjust: 100%;
  text-size-adjust: 100%;
  font-size: 62.5%; /*10px*/
  height: 100%;
  overflow-x: hidden;
  overflow-y: auto;
}
body {
  font-size: 19px;
  font-family: "Noto Serif JP", serif;
  font-weight: 400;
  line-height: 1.5;
  letter-spacing: 0;
  color: #040000;
  background: #ffffff;
  width: 100%;
  padding: 0;
  margin: 0;
  overflow-x: hidden;
  box-sizing: border-box;
  position: relative;
  z-index: 999;
}
.contents_inner {
  width: 90%;
  max-width: 1065px;
  margin: 0 auto;
}
img {
  display: block;
  width: 100%;
  max-width: 100%;
  height: 100%;
  object-fit: contain;
}
a, a:link, a:visited {
  display: block;
  text-decoration: none;
  color: #000000;
  transition: 0.3s;
}
@media (hover: hover) {
  a:hover {
    opacity: 0.9;
  }
}
a[href^='tel:'] {
  pointer-events: none;
}
*, *:before, *:after {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  -o-box-sizing: border-box;
  -ms-box-sizing: border-box;
  box-sizing: border-box;
}
/* font */
.ns {
  font-family: "Noto Sans JP", sans-serif;
}
.zkg {
  font-family: "Zen Kaku Gothic New", sans-serif;
}
/* device */
.pc {
  display: block;
}
.sp {
  display: none;
}
/* flexbox */
.row_box {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  -webkit-box-pack: justify;
  -ms-flex-pack: justify;
  justify-content: center;
	align-items: center;
}
@media screen and (max-width: 640px) {
  a[href^='tel:'] {
    pointer-events: auto;
  }
	.pc {
		display: none;
	}
	.sp {
		display: block;
	}	
}
@media screen and (max-width: 450px){
	body{
		font-size: 16px;
	}
}

/*-----------------------------------

	header

-----------------------------------*/
header {
  width: 100vw;
	margin: auto;
	position: fixed;
	display: block;
	top: 0;
	left: 0;
	right: 0;
	z-index: 999;
	padding: 15px 20px 5px;
	background: rgba(255, 255, 255, 0.5);
}
header .contents_inner {
    width: 100%;
    max-width: initial;
}
#hd_logo{
	width: 430px;
}

header .btn_container{
    position: absolute;
    top: 0;
	bottom: 0;
    right: 30px;
	margin: auto;
    cursor: pointer;
	width: 56px;
    height: 44px;
	z-index: 999;
}
header .btn_container .btn_wrapper {
	width: 56px;
    height: 44px;
    position: relative;
}
header .btn_container .btn_wrapper span {
    display: block;
    background: #000;
    width: 100%;
    height: 6px;
    margin: auto;
    position: absolute;
    top: 0;
    left: 0;
    transition: 0.3s;
    cursor: pointer;
}
header .btn_container .btn_wrapper span.ct {
    bottom: 0;
}
header .btn_container .btn_wrapper span.bm {
    top: auto;
    bottom: 0;
}
header .btn_container.active .btn_wrapper .tp {
    top: 8px;
    transform: translateY(11px) translateX(0) rotate(45deg);
	background: #fff;
}
header .btn_container.active .btn_wrapper .ct {
    opacity: 0;
}
header .btn_container.active .btn_wrapper .bm {
    top: 0px;
    transform: translateY(-1px) translateX(0) rotate(-45deg);
	background: #fff;
}

header .overlay {
    background: rgba(35, 24, 21, 0.75);
	max-width: 410px;
    width: 100vw;
    height: 100vh;
    overflow: auto;
    position: fixed;
    top: 0;
	bottom: 0;
    right: 0;
	margin: auto;
    z-index: 998;
}

header .main_menu {
	width: 100%;
    padding: 0 30px 0 45px;
	flex-direction: column;
	gap: 20px;
	position: absolute;
	top: 0;
	bottom: 0;
	margin: auto;
	align-items: flex-start;
}
header .main_menu li a {
	color: #fff;
	font-size: 22px;
}

@media screen and (max-width: 640px) {
	header{
		background: #fff;
	}
    #hd_logo{
	    width: 260px;
    }
	
	header .main_menu{
		padding: 0 15px 0 25px;
	}
	header .overlay{
		background: rgba(0, 0, 0, 0.75);
		max-width: 376px;
	}
}
@media screen and (max-width: 450px){
	header{
		padding: 10px;
	}
	#hd_logo{
	    width: 200px;
    }
	
	header .btn_container{
		right: 20px;
	}
}

/*-----------------------------------

	fixed_menu

-----------------------------------*/
.fixed_menu{
	position: fixed;
	right: 0;
	top: 270px;
}
.fixed_menu.sp{
	display: none;
}
.fixed_menu a{
	display: block;
	width: 98px;
	padding: 20px 25px;
	background: #7A62A8;
	text-align: center;
	color: #fff;
	font-size: 32px;
	line-height: 1;
}
.fixed_menu div{
	gap: 5px;
}
.fixed_menu a img{
	width: 40px;
	height: 52px;
}

@media screen and (max-width: 640px){
	.fixed_menu{
		top: auto;
		bottom: 0;
		left: 0;
		margin: auto;
		display: flex!important;
	}
	.fixed_menu a{
		width: calc(100% / 2);
		padding: 18px 0;
		line-height: 1.5;
	}
	.fixed_menu a:first-child{
		border-right: 0.2px solid #fff;
	}
	.fixed_menu a img{
		width: 48px;
		height: 52px;
	}
}
@media screen and (max-width: 550px){
	.fixed_menu a{
		font-size: 20px;
	}
	.fixed_menu a img{
		width: 30px;
		height: 35px;
	}
}

/*-----------------------------------

	contents

-----------------------------------*/
#contents {
  position: relative;
}
#contents #error_block {
	padding: 160px 0 0;
}
#contents #error_block p {
	text-align: center;
}
.ttl_box{
	text-align: center;
}
.ttl_box .h3_ttl{
	font-size: 47px;
	font-weight: 700;
	display: inline-block;
}
.p_bg{
	color: #fff;
	background: #7A62A8;
	padding: 4px 66px;
	max-width: 753px;
	width: 100%;
	margin: auto;
}

@media screen and (max-width: 640px) {
	.ttl_box .h3_ttl{
		font-size: 36px;
	}
	
	.p_bg{
		padding: 9px 40px;
		max-width: 560px;
	}
	
	.fc_p{
		color: #7A62A8;
	}
}
@media screen and (max-width: 450px){
	.ttl_box .h3_ttl{
		font-size: 28px;
	}
	.p_bg{
		padding: 9px 10px;
	}
}

/*-----------------------------------

	profile_block

-----------------------------------*/
#profile_block{
	padding: 145px 0 0;
}
#profile_block .profile_wrap{
	gap: 70px;
	align-items: flex-start;
	margin: 35px auto 0;
}
#profile_block .profile_wrap .profile_box{
	font-size: 18px;
	font-weight: 300;
}
#profile_block .profile_wrap .profile_box.profile_box_01{
	width: 40%;
}
#profile_block .profile_wrap .profile_box.profile_box_02{
	width: 53%;
}
#profile_block .profile_wrap .profile_box .ttl{
	padding-bottom: 15px;
	margin-bottom: 25px;
	border-bottom: 0.5px solid #231815;
}
#profile_block .profile_wrap .profile_box .txt{
	line-height: 1.8;
}
#profile_block .profile_wrap .profile_box table{
	
}
#profile_block .profile_wrap .profile_box table tr{
	
}
#profile_block .profile_wrap .profile_box table tr td{
	width: calc(100% - 70px);
	line-height: 2;
}
#profile_block .profile_wrap .profile_box table tr td:first-child{
	width: 70px;
}

@media screen and (max-width: 840px) {
	#profile_block .profile_wrap{
		gap: 35px;
	}
	#profile_block .profile_wrap .profile_box.profile_box_01,
	#profile_block .profile_wrap .profile_box.profile_box_02{
		width: 100%;
	}
}
@media screen and (max-width: 640px) {
	#profile_block{
		padding: 100px 0 0;
	}
}
@media screen and (max-width: 450px) {
	#profile_block{
		padding: 70px 0 0;
	}
	#profile_block .profile_wrap .profile_box{
		font-size: 16px;
	}
}

/*-----------------------------------

	privacy_block

-----------------------------------*/
#privacy_block{
	padding: 150px 0 115px;
}
#privacy_block p{
	font-size: 17px;
	text-align: center;
	margin: 25px auto 0;
	line-height: 2.7;
}

@media screen and (max-width: 840px) {
}
@media screen and (max-width: 640px) {
	#privacy_block{
		padding: 85px 0 35px;
	}
	#privacy_block p{
		margin: 35px auto 0;
		font-size: 19px;
		line-height: 2;
		text-align: left;
	}
}
@media screen and (max-width: 640px) {
	#privacy_block{
		padding: 70px 0 35px;
	}
}
@media screen and (max-width: 450px) {
	#privacy_block p{
		font-size: 16px;
	}
}

/*-----------------------------------

	footer

-----------------------------------*/
footer{
	text-align: center;
	background: #888888;
	padding: 25px 0 30px;
	color: #fff;
	font-weight: 400;
}
footer .company_name{
	font-size: 28px;
}
footer p{
	font-size: 22px;
}
footer #copy{
	font-size: 18px;
	font-weight: 500;
}

@media screen and (max-width: 640px) {
	footer{
		padding: 25px 0 0;
	}
	footer p{
		padding: 0 0 35px;
	}
	footer #copy{
		background: #fff;
		padding: 20px 0 108px;
		color: #231815;
	}
}
@media screen and (max-width: 450px) {
	footer .company_name{
		font-size: 24px;
		margin: 0 0 5px;
	}
	footer p{
		font-size: 16px;
	}
	footer #copy{
		background: #fff;
		padding: 20px 0 90px;
		color: #231815;
	}
}
