@charset "UTF-8";
/* CSS Document */
/****************************************

          General Setting

*****************************************/
html, body {
 margin: 0;
 padding: 0;
}
body {
 font-family: "Noto Sans JP", Helvetica;
 color: #333;
}
h1, h2, h3, h4, ul, ol, p, dl {
 margin: 0;
 padding: 0;
}
ul {
 list-style: none;
}
img {
 max-width: 100%;
 max-height: 100%;
}

/*layout*/

.contents{
 width: 90%;
 max-width: 1000px;
 margin: auto;
 font-size: 20px;
}

@media only screen and (max-width: 768px){
 .contents{
 font-size: 18px;
}
}

.Hide_pc{
 display: none;
}

@media only screen and (max-width: 768px){
.Hide_pc{
 display: block;
}
 .Hide_sp{
 display: none;
}
}

.col_area{
	display: table;
	width: calc(100% + 80px);
	margin-left: -40px;
	table-layout: fixed;
	border-spacing: 40px 0;
}

.col_item{
	display: table-cell;
	vertical-align: top;
}
@media only screen and (max-width: 768px){
.col_area{
	display: block;
	width:auto;
	margin: 0;
}

.col_item{
	display: block;
 margin-bottom: 40px;
}
}

/*見出し*/
h2{
font-weight: 350;
font-size: 32px;
text-align: center;
 color: #333333;
 margin-top: 80px;
}

h2 span{
display: block;
font-weight: 400;
font-size: 24px;
 margin-top: 8px;
}
h2.blue{ 
font-weight: 700;
font-size: 28px;
color: #0B3269;
}

h2.blue span{
 font-weight: 400;
 font-size: 24px;
}

@media only screen and (max-width: 768px){
h2{
font-size: 24px;
 margin-top: 40px;
}

h2 span{
font-size: 20px;
}
h2.blue{ 
font-size: 20px;
}

h2.blue span{
 font-size: 20px;
}
}

/****************************************

          header

*****************************************/

header{
 width: 100%; 
 max-width: 1800px;
 margin: auto;
}

header h1{
 box-sizing: border-box;
 height: 126px;
font-weight: 500;
font-size: 24px;
 position: relative;
 padding: 0 40px 0 200px;
 margin: 8px 0 0 0;
 color: #0B3269;
}
header h1 span{
 display: block;
 padding-top: 24px;
}

header h1 span.h1_en{
 font-size: 20px;
 padding: 0;
}

header h1 img{
 position: absolute;
 left: 40px;
 height: 126px;
}

header .main_img{
 margin-top: -20px;
}

@media only screen and (max-width: 768px){
 header h1 span{
  display: none;
 }
 
 header h1 img{
 left: 20px;
 height: 126px;
}
}

.btn {
 box-sizing: border-box;
 display: block;
 height: 80px;
 width: 256px;
	border-radius: 56px 0px 0px 56px;
 border: 2px solid#FFF;
 border-right: none;
 color: #fff;
 text-decoration: none;
 position: fixed;
 z-index: 999;
 right: 0; 
 transition: 0.5s;
 font-size: 24px;
 text-align: center;
 padding-top: 8px;
}

.btn span{
 font-size: 16px;
 display: block;
}

.btn.reservation{
 background: #2A73DA; 
 top: 144px; 
}

.btn.reservation:hover{
background: #1C59B0; 
}

.btn.contact{
 background: #9B4747; 
 top: 240px;
}

.btn.contact:hover{
 background: #723332;
}
.btn.instagram{
 background: url("../images/icon_insta.png") #4B4B4B no-repeat left 24px center; 
 background-size: 48px;
 font-size: 28px;
 padding: 0 0 0 48px;
 line-height: 80px;
 top: 336px;
}

.btn.instagram:hover{
 background: url("../images/icon_insta.png") #000 no-repeat left 24px center;
 background-size: 48px;
}


@media only screen and (max-width: 768px){
 .btn {
 height: 60px;
 width: 140px;
	border-radius: 30px 0px 0px 30px;
 font-size: 18px;
 padding: 0 0 0 8px;
  line-height: 60px;
} 
 .btn span{
display: none;
}
 
 .btn.reservation{
 top: 8px; 
}
 
.btn.contact{
 top: 76px;
}
 
 .btn.instagram{
 background: url("../images/icon_insta.png") #4B4B4B no-repeat left 14px center; 
 background-size: 24px;
 font-size: 18px;
 padding: 0 0 0 40px;
 line-height: 60px;
 top: 144px;
}
 
 .btn.instagram:hover{
 background: url("../images/icon_insta.png") #4B4B4B no-repeat left 14px center; 
 background-size: 24px;
}

 
}
/****************************************

          main

*****************************************/

.main ul{
 margin: 56px auto 0 auto;
 width: 100%;
 max-width: 560px;
}

.main ul li{
 border-bottom: 2px solid #0B3269;
 margin-bottom: 16px;
 padding: 0 0 8px 2rem;
 color:#0B3269;
 font-weight: 700;
}

.main ul li span{
 position: relative;
 display: block; 
}

.main ul li span::before {
    content: "";
    display: block;
    position: absolute;
    width: 1rem;
    height: 0.5rem;
    border-left: 3px solid #2470DD;
    border-bottom: 3px solid #2470DD;
    top: 0.25rem;
    left: -2rem;
    transform: rotate(-45deg);
}

.main p{
 margin-top: 40px;
}

.main p.text_blue{
 color:#0B3269;
font-weight: 700;
}

.main p.text_en_01{
 color:#555;
 margin-top: 16px;
}
.main p.text_en_02{
 color:#555;
 font-weight: 700;
 margin-top: 16px;
}


.reservation_link{
 box-sizing: border-box;
 padding-top: 20px;
 height: 88px;
 display: block;
 width: 512px;
 background: #0B3269;
 border-radius: 40px;
 color: #fff;
 font-size: 24px;
 text-decoration: none;
 text-align: center;
 margin: auto;
 transition: 0.5s;
 margin-top: 80px;
 line-height: 1.2em;
}

.reservation_link span{
 font-size: 20px;
 display: block;
}

.reservation_link:hover{
 background: #2470DD;
}

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

.main p{
 margin-top: 16px;
}
 .reservation_link{
  width: 100%;
  height: auto;
min-height: 72px;
  font-size: 16px;
  margin-top: 32px;
 }
 .reservation_link span{
  font-size: 15px;
 }
}
/****************************************

         Product

*****************************************/

.product .col_area{
 margin-top: 40px;
 text-align: center;
}

.product .col_area p span{
 font-size: 14px;
 display: block;
}

@media only screen and (max-width: 768px){
.product .col_area .Hide_pc{
 display: inline-block;
}
}

/****************************************

         FAQ

*****************************************/

.faq h2{
 margin-bottom: 40px;
}

.faq_box {
 margin-bottom: 24px;
 border: 1px solid #000;
 transition: 0.5s;
}

.faq_box summary {
 display: flex;
 justify-content: space-between;
 align-items: center;
 position: relative;
 padding: 16px 24px;
 color: #0B3269;
 font-weight: 700;
 cursor: pointer;
 
}

.faq_box summary::after {
    content: '＋';
}

.faq_box[open] summary::after {
    content: '−';
}

.faq_box p {
    position: relative;
    transform: translateY(-10px);
    opacity: 0;
    padding: 16px 24px 16px 48px;
    color: #333;
    transition: transform .5s, opacity .5s;
}

.faq_box p span{
 display: block;
} 

.faq_box[open] p {
    transform: none;
    opacity: 1;
}

.faq_box p.faq_q{
 color: #0B3269;
 font-weight: 700;
}

.faq_box p.faq_q::before{
 content: 'Q';
 position: absolute;
 left: 24px;
 top: 16px; 
}

.faq_box p.faq_a{
 padding-top: 0;
}

.faq_box p.faq_a::before{
 content: 'A';
 position: absolute;
 left: 24px;
 top: 0px; 
 color: #0B3269;
 font-weight: 700;
}

/****************************************

         Image_area

*****************************************/

.image_area{
 width: 100%; 
 max-width: 1800px;
 margin: 80px auto 0 auto;
}

@media only screen and (max-width: 768px){
 .image_area{
 margin-top: 40px;
}
}
/****************************************

         Access

*****************************************/

.two_col{
 display: table;
 width: 90%;
 margin: auto;
 table-layout: fixed;
 border-collapse: separate;
 border-spacing: 40px 0;
 margin-top: 80px;
}

.two_col .map,
.two_col .info{
 display: table-cell;
 vertical-align: top;
}

.two_col .map iframe{
 border: none;
 width: 100%;
 height: 405px;
 border-radius: 20px;
}

.two_col .info table{
 font-weight: 400;
 margin-top: 16px;
 border-collapse: collapse;
}

.two_col .info table th,
.two_col .info table td{
 padding: 2px 0;
 vertical-align: top; 
}

.two_col .info table th{
 font-weight: 400;
 text-align: left;
 width: 150px;
}

@media only screen and (max-width: 768px){
 
.two_col{
 display: block;
 width: 90%;
 margin: auto;
}

.two_col .map,
.two_col .info{
  display: block;
 width: auto;
 margin-top: 32px;
}
 
 .two_col .info table{
 font-size: 16px;
 font-weight: 400;
 margin-top: 16px;
}

.two_col .info table th,
.two_col .info table td{
 display: block;
 padding: 4px 0;
}

.two_col .info table th{
 font-weight: 600;
 text-align: left;
 width: auto;
 padding-bottom: 0;
}
 
}


/****************************************

         footer

*****************************************/
footer{
 background:#0B3269;
 text-align: center;
 color: #fff;
 padding: 80px 0 16px;
 font-size: 12px;
 margin-top: 80px;
}

footer .footer_logo{
 width: 60%;
 max-width: 200px;
}

footer .icon_insta img{
 width: 48px;
 margin: 24px 0 36px;
}

@media only screen and (max-width: 768px){
 footer{padding: 40px 0 16px;
 }
}
