@charset "utf-8";
html     ,
body     ,
article  ,
section  ,
div      ,
h1       ,
h2       ,
h3       ,
h4       ,
h5       ,
dl       ,
dt       ,
dd       ,
ul       ,
ol       ,
li       ,
p        ,
input    ,
select   ,
textarea {
	margin:0;
	padding:0;
	font-family: "Noto Serif JP", serif;
    font-optical-sizing: auto;
    font-style: normal;
	color: #231815;
	font-size: 15px;
	font-feature-settings: "palt"1;
	line-height: 2;
	letter-spacing: 0.1em;
	-webkit-text-size-adjust: 100%;
	border:none;
}

html {
	overflow-y:scroll;
	margin-bottom:1px;
	height:100%;
}
body{max-width: 1920px; margin: 0 auto;}

@media only screen and (min-width:641px){.sp { display:none !important;}}
@media only screen and (max-width:640px){.pc { display:none !important;}}


article .narrow{max-width: 1500px; width: 90%; margin: 0 auto;}
article{margin: 0 auto;}
.side{display: flex; justify-content: space-between; flex-wrap: wrap;}

@media only screen and (max-width:640px){
	article .narrow{max-width: 600px; margin: 0 auto;}
}


/* text */
h1{font-size: 2.5rem;}
h1.title{position: relative; text-align: center; margin-top: 50px;}
h1.title:before {
  position: absolute;
  bottom: 2px;
  left: calc(50% - 30px);
  width: 60px;
  height: 5px;
  content: '';
  border-radius: 3px;
  background: #a9dcf6;
}
h1.title small{display: block; font-size: 1.5rem; line-height: 0;}
h2{font-size: 2rem; 
  padding: 0 0.5em;
  line-height: 1.2;
  border-left: solid 5px #97bbc6;
}
h3{font-size: 1.5rem;}
p{font-size: 1rem;}
a{text-decoration: none; color: #231815; transition: .5s;}
a:hover{color: #97bbc6;}

@media (max-width:640px){
	h1{font-size: 3rem;}
	h1.title{padding-top:100px;}
	h1.title small{display: block; font-size: 1.5rem; line-height: 0;}
	h2{
	 font-size: 2.5rem; 
 	 padding: 0 0.5em;
 	 line-height: 1.2;
 	 border-left: solid 5px #97bbc6;
	}
	h3{font-size: 2rem;}
	p{font-size: 1.5rem;}
	a{font-size: 1.3rem;}
}


/* btn */
.btn{
    display: flex;
    justify-content: center;
    align-items: center;
	max-width: 350px;
    width: 100%;
    margin:0 auto;
    padding: .7em 1em;
    border: 1px solid #231815;
    background-color: #fff;
    color: #231815;
    font-size: 1em;
	transition: .5s;
}
.btn::after {
    transform: rotate(45deg);
    width: 5px;
    height: 5px;
    margin-left: 10px;
    border-top: 2px solid #231815;
    border-right: 2px solid #231815;
    content: '';
}
.btn:hover{background: #231815; color: #fff;}
.btn:hover::after {border-top: 2px solid #fff; border-right: 2px solid #fff;}

@media (max-width:640px){
	.btn{max-width: 500px; font-size: 1.3em; padding: .3em 1em;}
	.btn::after {width: 8px; height: 8px;}
}


/* header */

header{
	max-width: 1920px;
	width: 100%;
	background: #fff;
	box-shadow: 5px 5px 3px rgb(0,0,0,.1);
	padding:5px 0 20px;
}
header .top{
	max-width: 1100px;
	width: 100%;
	display: flex;
	justify-content: space-around;
	margin: 0 auto;
	align-items: center;
}
header .top h1{max-width:240px; width: 100%;}
header .top h1 img{width: 100%;}
header .top ul{
	display: flex; 
	flex-wrap: wrap; 
	max-width: 530px; 
	width: 100%;
	justify-content: center;
}
header .top ul li{margin: 0 10px; font-size: .8vw;}
header .top #site_search{
	border: solid 1px #eaeaea;
	border-right: none;
	border-radius: 5px;
	max-width:330px;
	width: 100%;
	position:relative;
}
header .top #site_search form input[type='submit'] {
	background: #97bbc6;
	position: absolute;
	top:0;
	right: 0;
	padding:0 3%;
	color: #fff;
	border-top-right-radius: 5px;	
	border-bottom-right-radius: 5px;
	transition: .5s;
}
header .top #site_search form input[type='submit']:hover {opacity: .6;}
header .top #site_search form input[type='text'] {color: #848383; text-align: center; width: 280px;}
header nav ul{
	display: flex; 
	justify-content: center; 
	margin-top: 5px; 
	max-width: 1200px; 
	width: 100%; 
	margin: 0 auto;
}
header nav ul li{
	border-right: solid 1px #231815; 
	padding: 0 30px; 
	line-height: 1.2;
	font-weight: 700;
	font-size: .9vw;
}
header nav ul li:last-of-type{border-right: none;}


@media (max-width:640px){
	header{
		padding:10px 0 0; 
		position: fixed;
		top:0; 
		right: 0;
		z-index: 100;
	}
	header nav{display: flex; align-items: center;}
	header nav ul {display: block;}
	header nav ul li{
		border-right: none;
		padding: 20px 0; 
		line-height: 1.2;
		font-weight: 700;
		font-size: 2rem;
	}
    header nav ul li a{
		color: #231815;
		text-shadow: none;
	    display: flex;
    	justify-content: center;
    	align-items: center;
		font-size: 2rem;
	}
	header nav ul li a::after{
    	transform: rotate(45deg);
    	width: 7px;
    	height: 7px;
    	margin-left: 10px;
    	border-top: 2px solid #231815;
    	border-right: 2px solid #231815;
    	content: '';
	}
    .hamburger {
      position: fixed;
      top: 20px;
      right: 70px;
      z-index: 10000;
      cursor: pointer;
      background: none;
      border: none;
    }
    .hamburger__line {
      position: absolute;
      left: 0;
      width: 40px;
      height: 3px;
      background-color: #231815;
      transition: all .4s;
    } 
    .hamburger__line:nth-of-type(1) {top: 20px;}
    .hamburger__line:nth-of-type(2) {top: 30px;}
    .hamburger__line:nth-of-type(3) {top: 39px;}

    /* メニューオープン時 */
    .hamburger.active .hamburger__line:nth-of-type(1) {transform: translateY(9px) rotate(-45deg); background-color: #231815;}
    .hamburger.active .hamburger__line:nth-of-type(2) 
    {opacity: 0; background-color: #231815;}
    .hamburger.active .hamburger__line:nth-of-type(3) {transform: translateY(-9px) rotate(45deg); background-color: #231815;}
    header nav {
      position: fixed;
      top: 0;
      right: 0;
      width: 100%;
      height: 100%;
      background-color: rgba(255,255,255,0.93);
      transform: translateY(-100%);
      transition: transform .6s;
      z-index: 100;
      display: flex; 
      align-content: center; 
      align-items: center;
      justify-content: center;
    }
    header nav ul {
      margin: 0;
      padding: 0;
      list-style: none;
    }
    header nav.active {transform: translateY(0); z-index: 100;}
    header nav ul{margin: 0; padding:0; }
}


/* footer */
footer .otoiawase{
	background-image: url("../img/otoiawase-bg.jpg");
	background-repeat: no-repeat;
	background-size: cover;
  	position: relative;
	z-index: 0;
	padding:100px 0;
	margin-top: 150px;
}
footer .otoiawase::before {
  width: 100%;
  height: 100%;
  z-index: -1;
  content: "";
  display: block;
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  background-color: rgba(34, 23, 20, 0.5);
}
footer .otoiawase h2{color: #fff; border-left: none; text-align: center;}
footer .otoiawase h3,footer .otoiawase p{
	color: #fff; 
	text-align: center;
	margin-top: 20px;
}
footer .otoiawase .form{
	color: #fff; 
	display: flex; 
	justify-content: center; 
	align-items: center;
	background: rgb(255,255,255,.3); 
	max-width: 900px; 
	margin: 0 auto; 
	padding:40px 20px; 
	border-radius: 5px;
}
footer .otoiawase .form h3{
	display: flex; 
	justify-content: center; 
	align-items: center; 
	font-size: 4rem; 
	letter-spacing: 0;
	line-height: 1;
	margin: 0; 
	border-right: solid 1px #fff; 
	padding:0 30px 0 0;
	text-shadow: 1px 1px 1px #000;
}
footer .otoiawase .form h3 small{font-size: 1rem; line-height: 1.2;}
footer .otoiawase .form a.btn{margin: 0 0 0 35px; font-size: 1.2rem; font-weight: 700;}
/* フェードイン */
.fadeIn{
    transition: all 2000ms;
    opacity: 0;
    visibility: hidden;
    transform: translate(0px, 50px);
}
.fadeInTop {
    opacity: 1;
    visibility: visible;
    transform: translate(0px, 0px);
} 

footer .ft{
	background: #eaeaea; 
	margin-top: 150px; 
	display: flex; 
	justify-content: center; 
	padding:50px 100px; 
	align-items: center;
}
footer .ft .info h3{font-size: 1.2rem;}
footer .ft .info p{line-height: 1.5;}
footer .ft .info{border-right: solid 1px #231815;}
footer .ft .info{width: 25%;}
footer .ft .gaibu{width: 15%;}
footer .ft nav{width: 60%; padding:0 auto; margin: 0 auto;}
footer .ft nav ul{display: flex; flex-wrap: wrap; justify-content:flex-start; width: 75%; margin: 0 0 0 150px;}
footer .ft nav ul li{margin: 3px 5px; width: 170px; text-align: left;}
footer .ft .gaibu ul{border-left: solid 1px #231815; padding:30px 0;}
footer .ft .gaibu ul li{margin: 10px 0 10px 30px;}
footer .ft .gaibu ul li::after{
	content: url("../img/gaibu.png"); 
	display: inline-block; 
	height: 10px; 
	width:10px; 
	margin-left: 5px;
}

@media (max-width:1200px){
	footer .otoiawase{
		padding:80px 0;
		margin-top: 100px;
	}
	footer .otoiawase h3,footer .otoiawase p{
		margin-top: 0;
		line-height: 1.3;
	}
	footer .otoiawase h3{margin-top: 10px;}
	footer .otoiawase .form{
		display: block; 
		max-width: 550px; 
		padding:50px 20px; 
		margin: 20px auto;
	}
	footer .otoiawase .form h3{
		font-size: 3.8rem; 
		border-right: none; 
	}
	footer .otoiawase .form h3 small{font-size: 1.2rem; line-height: 1.4;}
	footer .otoiawase .form a.btn{
		margin: 30px auto 0; 
		font-size: 1.3rem; 
		max-width: 450px;
	}
	
	footer .ft{
		margin-top: 100px; 
		display: block; 
		padding:30px 20px; 
		}
	footer .ft .info h1{text-align: center; line-height: 0;}
	footer .ft .info h3{font-size: 1.5rem; text-align: center;}
	footer .ft .info p{line-height: 1.5; margin-bottom: 30px; text-align: center;}
	footer .ft .info{border-right: none; border-bottom: solid 1px #231815;}
	footer .ft .info,footer .ft .gaibu{width: 100%;}
	footer .ft nav{width: 100%; padding:0;}
	footer .ft nav ul{
		display: flex; 
		flex-wrap: wrap; 
		justify-content: flex-start; 
		width: 78%; 
		margin: 0 auto; 
		padding: 20px 0;
	}
	footer .ft nav ul li{margin: 3px 5px; width: 220px;}
	footer .ft .gaibu ul{border-left: none; border-top:solid 1px #231815; padding:10px 0; display: flex; justify-content: center; width: 100%; }
	footer .ft .gaibu ul li{margin: 10px 30px;}
}
