@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@300&family=EB+Garamond&display=swap');
@import url('https://fonts.googleapis.com/css?family=Libre+Baskerville');
.bask{font-family: 'Libre Baskerville', serif;}
@media print {
	header .logo.sp{
		display: none;
	}
}

/*共通*/

html, body, div, span, applet, object, iframe, h1, h2, h3,
h4, h5, h6, p, blockquote, pre, a, abbr, acronym,
address, big, cite, code, del, dfn, em, font, img, ins,
kbd, q, s, samp, small, strike, strong, sub, sup, tt,
var, dl, dt, dd, ol, ul, li, fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,figcaption{
margin:0;
padding:0;
border:0;
font-weight:inherit;
font-style:inherit;
font-size:100%;
font-family:inherit;
vertical-align:baseline;
}
:focus{outline:0;}
a, a:link, a:visited, a:hover, a:active{text-decoration:none}
table{border-collapse:separate; border-spacing:0;}
th, td {text-align:left; font-weight:normal;}
img, iframe {border:none; text-decoration:none;}
ol, ul{list-style:none;}
input, textarea, select, button {font-size:100%; font-family:inherit;}
select{margin:inherit;}
hr{margin:0; padding:0; border:0; color:#000; background-color:#000; height:1px}
*{
	padding:0;
	margin:0;
	border:0;
}
img{
	max-width:100%;
	height:auto;
	vertical-align:bottom;
	width: inherit\9;/*ie8*/
    max-width: 100%\9;/*ie8*/
    height: auto\9;/*ie8*/
}
a{
	text-decoration:none;
	color: #231815;
	transition: all 0.2s ease 0s;
}
strong{
	font-weight:600;
}
ul li a img{
	margin:0;
	padding:0;
}
li img {
    vertical-align: bottom;
}
a:focus{
}
a:hover {
    opacity: 0.7;
	-moz-opacity:0.7;
    -khtml-opacity: 0.7;
}
ol,ul {
	list-style:none outside none;
}
ul.link, ol.link {
    list-style: outside none none;
}

html{
	font-size: 62.5%;
  width: 100%;
}
body{
	font-size: 14px;
	font-size: 1.4rem;
	color: #231815;
	line-height: 1.8;
	font-family: "游明朝", YuMincho, "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", "HG明朝E", "ＭＳ Ｐ明朝", "ＭＳ 明朝", serif;
	-webkit-text-size-adjust: 100%;
	/*min-width:1000px;*/
	letter-spacing:0;
	-webkit-font-smoothing: subpixel-antialiased;
}
main{
	display:block;
}
table {
    border-collapse: collapse;
    border-spacing: 0;
}
.flex {
  display: -webkit-flex;
  display: flex;
  -webkit-flex-wrap: wrap;
  flex-wrap: wrap;
  -webkit-justify-content: space-between;
  justify-content: space-between;
}

.off{
	opacity: .4;
	pointer-events: none;
}


.left{
	float:left;
}

.right{
	float:right;
}

.clear{
	overflow: hidden;
}
.pc{
	display:block;
}
.sp{
	display:none;
}
.inner{
	max-width:870px;
	margin:0 auto;
}

br.sp-mode{
	display: none;
}
.fit-img{
	width: 100%;
}
@media screen and (max-width:800px) {
	html{
	  min-width: inherit;
	}
	body{
		min-width:inherit;
		padding:55px 0 0 0;
	}

.inner{
	width:90%;
	margin:auto;
}
.pc{
	display:none;
}
.sp{
	display:block;
}

   }


@media screen and (max-width:763px) {

br.sp-mode{
	display: block;
}

}

.arr:after{
    content: "";
    width: 0;
    height: 0;
    border-style: solid;
    border-width: 3px 0 3px 6px;
    border-color: transparent transparent transparent #000;
    display: inline-block;
    vertical-align: middle;
    margin-left: 10px;
    margin-top: -6px;
}
.arr.wh:after{
    border-color: transparent transparent transparent #fff;
}

/**********************

button

**********************/


p.btn {
display: block;
text-align: center;
text-decoration: none;
outline: none;
font-size: 120%;
margin:5% auto 0;
width:50%;
font-family: "游明朝", YuMincho, "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", "HG明朝E", "ＭＳ Ｐ明朝", "ＭＳ 明朝", serif;
}

p.btn a{
	display: block;
	padding:3% 10%;
	color:#fff;
	line-height: 1.5;
}

p.btn a:hover{
	color:#3e3a39;
}

p.btn::before,
p.btn::after {
  position: absolute;
  z-index: -1;
  display: block;
  content: '';
}
p.btn,
p.btn::before,
p.btn::after {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  -webkit-transition: all .3s;
  transition: all .3s;
}


p.btn {
  background-color: #3e3a39;
  border: 2px solid #3e3a39;
  color: #fff;
  line-height: 50px;
}
p.btn:hover {
  background-color: #fff;
}

@media screen and (max-width:769px) {
	p.btn {
	font-size: 90%;
	width:100%;
	}
}

.fadeInAnime {
	animation-name: fadeInAnime;
	animation-fill-mode:backwards;
	animation-duration:1s;
	animation-timing-function:ease;
	animation-direction:normal;
}
@keyframes fadeInAnime{
  0% {
    background: rgba(255, 255, 255, 0.65);
  }

  100% {
    background: rgba(255, 255, 255, 1);
  }
}
.fadeOutAnime {
	animation-name: fadeOutAnime;
	animation-fill-mode:backwards;
	animation-duration:0.5s;
	animation-timing-function:ease;
	animation-direction:normal;
}
@keyframes fadeOutAnime{
  0% {
    background: rgba(255, 255, 255, 1);
  }
  100% {
    
	background: rgba(255, 255, 255, 0.65);
  }
}

/**********************

header

**********************/

header{
	width: 100%;
	position: sticky;
	top: 0;
	z-index: 3;
    background: rgba(255, 255, 255, 1);
	-webkit-backdrop-filter: blur(4px);
    backdrop-filter: blur(4px);
	/*
	width:90%;
	max-width:1200px;
	margin:0.8% auto;
	*/
  /*display: -webkit-flex;
  display: flex;*/
  /*-webkit-flex-wrap: wrap;
  flex-wrap: wrap;*/
  /*-webkit-justify-content: space-between;
  justify-content: space-between;*/
}
header.scroll{
	-webkit-backdrop-filter: blur(4px);
    backdrop-filter: blur(4px);
    background: rgba(255, 255, 255, 0.10);
}
@media screen and (max-width:1250px){
    header{
        width: 100%;
		margin: 0 auto;
    }
}

.headerItemWrap{
    display: -webkit-flex;
    display: -moz-flex;
    display: -ms-flex;
    display: -o-flex;
    display: flex;
    width: 90%;
    max-width: 1200px;
    margin: 0 auto;
    padding: 0.8% 0;
}
@media screen and (max-width:1250px){
    .headerItemWrap{
        width: 90%;
    }
}


header .logo{
	width:300px;
	margin-right: auto;
}

header .sub_nav{
	padding-top: 2%;
}

header .sub_nav ul{
	/*margin-left: 40px;*/
	text-align:right;
	font-size:0;
}

header .sub_nav li{
	display:inline-block;
	font-size: 12px;
	line-height:1;
	margin-left: 18px;
	vertical-align:middle;
}
header .sub_nav li:nth-of-type(3),header .sub_nav li:nth-of-type(4),header .sub_nav li:last-of-type{
	margin-top: -5px;
}
header .sub_nav li:nth-of-type(4),header .sub_nav li:last-of-type{
	margin-left: 8px;
}
@media screen and (max-width:1250px){
    header .sub_nav li{
        font-size: 10px;
    }
}


header .sub_nav a.req,
header .sub_nav a.rev{
	color:#fff;
	display: block;
	padding:7px 20px 7px 20px;
	/*background-color: #ff7900;*/
	transition: all 0.5s ease 0s;
    position: relative;
    overflow: hidden;
	z-index:2;
    letter-spacing: 0.2em;
}
header .sub_nav a.req,
header .sub_nav a.rev{
	padding:0px 0px;
	max-width: 170px;
	margin-top: -20px;
}

header .sub_nav a.req,header .sub_nav a.rev{
	margin-top: 0px;
}

header .sub_nav a.req:before,header .sub_nav a.rev:before {
	content:"";
    display: block;
    position: absolute;
    z-index: -1;
    left: -30%;
    top: -50%;
    content: "";
    width: 30px;
	height:100%;
    background-color: #fff;
    opacity:0;
    transform: rotate(45deg);
    animation: reflection 2s ease-in-out infinite;
    -webkit-transform: rotate(45deg);
    -webkit-animation: reflection 2s ease-in-out infinite;
    -moz-transform: rotate(45deg);
    -moz-animation: reflection 2s ease-in-out infinite;
    -ms-transform: rotate(45deg);
    -ms-animation: reflection 2s ease-in-out infinite;
    -o-transform: rotate(45deg);
    -o-animation: reflection 2s ease-in-out infinite;
}

header .sub_nav a.req:after,header .sub_nav a.rev:after {
	 content:"";
	 display:block;
	 position:absolute;
	 top:0;
	 right:0;
	 bottom:0;
	 left:0;
	 background-color:#000000;
	 width: 0;
	 -webkit-transform: scaleX(0);
	 transform: scaleX(0);
}

header .sub_nav a.req{
	color:#fff;
	display: block;
    width: 150px;
    text-align: center;
	padding:14px 0px 14px 0px;
	background-color: #142f5b;
}
@media screen and (max-width:1050px){
    header .sub_nav a.req{
        width: 100px;
    }
}
@media screen and (max-width:850px){
    header .sub_nav a.req{
        width: 90px;
    }
}
header .sub_nav .limited-btn{
    padding:14px 16px;
    transition: all 0.5s ease 0s;
    position: relative;
    overflow: hidden;
    z-index: 2;
    box-sizing: border-box;
    display: block;
}
@media screen and (max-width:850px){
    header .sub_nav .limited-btn{
        padding:14px 8px;
    }
}
header .sub_nav .limited-btn::before{
    content:"";
display: block;
position: absolute;
z-index: -1;
left: -30%;
top: -50%;
content: "";
width: 30px;
height:100%;
background-color: #fff;
opacity:0;
transform: rotate(45deg);
animation: reflection 2s ease-in-out infinite;
-webkit-transform: rotate(45deg);
-webkit-animation: reflection 2s ease-in-out infinite;
-moz-transform: rotate(45deg);
-moz-animation: reflection 2s ease-in-out infinite;
-ms-transform: rotate(45deg);
-ms-animation: reflection 2s ease-in-out infinite;
-o-transform: rotate(45deg);
-o-animation: reflection 2s ease-in-out infinite;

}
header .sub_nav a.rev{
  color:#fff;
  display: block;
    width: 150px;
    text-align: center;
	padding:14px 0px 14px 0px;
  background-color: #9a2a36;
}
@media screen and (max-width:1050px){
    header .sub_nav a.rev{
        width: 100px;
    }
}
@media screen and (max-width:850px){
    header .sub_nav a.rev{
        width: 90px;
    }
}
header .sub_nav a.req .arr:after,
header .sub_nav a.rev .arr:after{
    content: "";
    width: 0;
    height: 0;
    border-style: solid;
    border-width: 3px 0 3px 6px;
    border-color: transparent transparent transparent #fff;
    display: inline-block;
    vertical-align: middle;
    margin-left: 10px;
    margin-top: -1px;
}
@keyframes reflection {
    0% { transform: scale(0) rotate(45deg); opacity: 0; }
    80% { transform: scale(0) rotate(45deg); opacity: 0.5; }
    81% { transform: scale(4) rotate(45deg); opacity: 1; }
    100% { transform: scale(50) rotate(45deg); opacity: 0; }
}
@-webkit-keyframes reflection {
    0% { -webkit-transform: scale(0) rotate(45deg); opacity: 0; }
    80% { -webkit-transform: scale(0) rotate(45deg); opacity: 0.5; }
    81% { -webkit-transform: scale(4) rotate(45deg); opacity: 1; }
    100% { -webkit-transform: scale(50) rotate(45deg); opacity: 0; }
}
@-moz-keyframes reflection {
    0% { -moz-transform: scale(0) rotate(45deg); opacity: 0; }
    80% { -moz-transform: scale(0) rotate(45deg); opacity: 0.5; }
    81% { -moz-transform: scale(4) rotate(45deg); opacity: 1; }
    100% { -moz-transform: scale(50) rotate(45deg); opacity: 0; }
}
@-ms-keyframes reflection {
    0% { -ms-transform: scale(0) rotate(45deg); opacity: 0; }
    80% { -ms-transform: scale(0) rotate(45deg); opacity: 0.5; }
    81% { -ms-transform: scale(4) rotate(45deg); opacity: 1; }
    100% { -ms-transform: scale(50) rotate(45deg); opacity: 0; }
}
@-o-keyframes reflection {
    0% { -o-transform: scale(0) rotate(45deg); opacity: 0; }
    80% { -o-transform: scale(0) rotate(45deg); opacity: 0.5; }
    81% { -o-transform: scale(4) rotate(45deg); opacity: 1; }
    100% { -o-transform: scale(50) rotate(45deg); opacity: 0; }
}

@media screen and (max-width:1250px){
    header .logo{
		width:200px;
		margin-top:10px;
	}
}
@media screen and (max-width:1000px){
	header .logo{
		width:170px;
		margin-top:12px;
	}
	header .sub_nav ul{
		margin-left: 5px;
	}
	header .sub_nav li {
		margin-left: 4px;
	}
    header .sub_nav li:nth-of-type(4), header .sub_nav li:last-of-type {
        margin-left: 4px;
    }
}

@media screen and (max-width:800px){
	header{
		width:100%;
		margin:0;
		padding:10px;
		box-sizing:border-box;
		position:fixed;
		background:#fff;
		display:block;
		z-index:100;
		top:0;
	}
	header .logo{
		width:180px;
		margin:0 0 0 auto;
		text-align:right;
	}
	header .sub_nav{
		display: none;
	}
}




/**********************

nav

**********************/


.sp_nav{
	display: none;
}

nav li.sp{
	display: none;
}

nav{
	max-width:1000px;
	width:90%;
	margin:0 auto 10px auto;
}

nav ul{
	display:flex;
	justify-content:center;
	padding:10px 0 0px 0;
}

nav li{
	display: block;
	position:relative;
    margin: 0 2em;
}

nav.pc_nav span.mark::before{
    content: "new";
    position: absolute;
    top: -7px;
    left: 50%;
	transform:translate(-50%,0);
    font-size: 11px;
    color: red;
    z-index: 999;
}

nav.drawer-nav span.mark::before{
	content: "new";
    position: absolute;
    top: -2px;
    left: 50%;
	transform:translate(-50%,0);
    font-size: 12px;
    color: red;
}

nav li:last-of-type{
}
nav li:after,
nav li:before {
    position: absolute;
    bottom: 0;
    content: "";
    display: inline-block;
    width: 0;
    height: 100%;
    background: #eef0f1;
    -webkit-transition: all .3s;
    transition: all .3s;
    z-index: 1;
}
nav li:before {
    left: 50%;
}
nav li:after {
    right: 50%;
}
nav li:hover:after,
nav li:hover:before {
    width: 50%;
}
nav a{
	color:#333;
	display: block;
	padding:10px;
	font-size: 10px;
	line-height:1.3;
	position:relative;
	text-align:center;
	z-index:2;
}
nav span{
	font-family: 'Libre Baskerville', serif;
	display:block;
	font-size: 11px;
}
nav a:hover{
	/*color:#a58b5b;*/
	opacity:1;
}
nav .act{
	/*color:#a58b5b;*/
}
nav li.act:after,
nav li.act:before {
    width: 50%;
}


@media screen and (max-width:800px) {
	.sp_nav{
		display: block;
	}
	
	nav li.sp{
		display: block;
	}
	nav.pc_nav{
	display: none;
    }

    nav{
	background-color: #a99063;
	overflow: auto;
    }

	nav ul{
		width:100%;
		margin:0 auto;
		padding:0;
		display:block;
	}
	
	nav li{
		width:50%;
		display: block;
		text-align: center;
	}
	
	nav a{
		font-size: 60%;
		padding:10% 25px;
		border:1px solid #f5f5f5;
	}
	nav .req a{
		background:#0a3777;
	}
	nav .rev a{
		background:#801a1f;
	}
	nav .req a img,
	nav .rev a img{
		width: 70%;
	}
    nav .limited-btn a{
        color: #333;
    }
	nav a:hover{
		color:#333;
	}
    nav .req a:hover{
        color: #fff;
    }
}

/**********************

footer

**********************/
footer .ft1{
	padding:90px 0 30px 0;
	text-align:center;
}
footer .btns{
    margin: 0 0 25px 0;
}
footer .btns li{
	line-height:1;
	margin:0 5px;
	vertical-align: bottom;
    margin: 32px 10px 0;
}
footer .btns li:first-child{
    margin-top: 0;
}
footer .btns li .btn-note{
    margin-bottom: 16px;
    line-height: 1.3;
}
footer .btns a.req{
	color:#fff;
	display: block;
    box-sizing: border-box;
	padding:20px;
	background-color: #142f5b;
	position: relative;
    overflow: hidden;
    transition: all 0.5s ease 0s;
    z-index: 2;
    font-size: 2.8rem;
    letter-spacing: 0.4em;
    max-width: 550px;
    width: 90%;
    margin: auto;
}
footer .btns a.rev{
	color:#fff;
	display: block;
    padding: 20px;
    box-sizing: border-box;
	background-color: #831a1f;
	position: relative;
    overflow: hidden;
    transition: all 0.5s ease 0s;
    z-index: 2;
    font-size: 2.8rem;
    letter-spacing: 0.4em;
    max-width: 550px;
    width: 90%;
    margin: auto;
}
footer .btns a .arr:after{
    border-width: 3.5px 0 3.5px 7px;
    border-color: transparent transparent transparent #fff;
    position: absolute;
    right: 30px;
    top: 55%;
}


footer .btns a.req:before,footer .btns a.rev:before {
	content:"";
    display: block;
    position: absolute;
    z-index: -1;
    left: -30%;
    top: -50%;
    content: "";
    width: 30px;
	height:100%;
    background-color: #fff;
    opacity:0;
    transform: rotate(45deg);
    animation: reflection 2s ease-in-out infinite;
    -webkit-transform: rotate(45deg);
    -webkit-animation: reflection 2s ease-in-out infinite;
    -moz-transform: rotate(45deg);
    -moz-animation: reflection 2s ease-in-out infinite;
    -ms-transform: rotate(45deg);
    -ms-animation: reflection 2s ease-in-out infinite;
    -o-transform: rotate(45deg);
    -o-animation: reflection 2s ease-in-out infinite;
}
footer .btns a.req:after,footer .btns a.rev:after {
	 content:"";
	 display:block;
	 position:absolute;
	 top:0;
	 right:0;
	 bottom:0;
	 left:0;
	 background-color:#000000;
	 width: 0;
	 -webkit-transform: scaleX(0);
	 transform: scaleX(0);
}


footer .tel{
	margin:0 auto;
    display: inline-block;
    text-align: left;
}

footer .tel dt{
	font-size: 14px;
	margin:20px 0 5px 0;
}

footer .tel dd{
    text-align: center;
}

footer .tel dd.num{
     margin:0;
	 font-size:5.5rem;
	 line-height:1;
	 letter-spacing:4px;
	 font-family: garamond-premier-pro, serif;
     font-weight: 400;
}
footer .tel dd.num img{
	width:60px;
	vertical-align:middle;
	margin:-3px 5px 0 0;
}
footer .tel dd:last-child{
	font-size:12px;
	padding-top:5px;
	line-height: 1.5;
}
footer .tel dd:last-child span{
	font-size:10px;
	display:block;
}

footer .footer_logo{
    background: #000;
    padding: 20px 0;
}
footer .footer_logo ul{
	width:90%;
	max-width:740px;
	margin:0 auto;
	overflow: hidden;
	text-align:center;
	font-size:0;
    display: flex;
    justify-content: center;
}

footer .footer_logo li{
	width:42%;
	display:flex;
	text-align:left;
    align-items: center;
	font-size:10px;
    margin: 0 2%;
}
footer .footer_logo li a{
	width:300px;
	vertical-align:bottom;
	display:inline-block;
}
footer .footer_logo li span{
	display:inline-block;
	margin:0 10px 0 0;
    color: #fff;
    font-size: 1rem;
    white-space: nowrap;
}
footer .footer_logo li:last-child img{
	width:200px;
}
footer .copy{
	font-size:1rem;
	text-align:center;
	line-height:1.3;
	padding:5px 0 10px 0;
    background: #000;
    color: #fff;
}

@media screen and (max-width:800px) {
	footer .ft1{
		padding:32px 0;
	}
	footer .btns{
        margin: 4% 0;
	}
    footer .btns dt{
        font-size: 3vw;
        margin-bottom: 3%;
    }
	
	footer .tel{
	}
	footer .tel dt{
		font-size: 3vw;
		margin:10px 0 0 0;
	}
    footer .tel dd{
        
    }
	footer .tel dd.num{
		 font-size:12vw;
         letter-spacing: 0;
		 line-height:1;
	}
	footer .tel dd.num img{
        width: 50px;
	}
	footer .tel dd:last-child{
        font-size: 3vw;
        font-feature-settings: "palt";
	}
	footer .tel dd:last-child span{
	}
	
    footer .footer_logo{
        padding: 10px 0;
    }
	footer .footer_logo ul{
		width:80%;
		margin:0 auto;
        display: block;
	}
	
	footer .footer_logo li{
		width:100%;
		display:block;
		text-align: left;
		font-size:10px;
		margin:3% 0;
	}
	footer .footer_logo li img{
		width:100%;
	}
	footer .footer_logo li span{
		margin:0 0 0px 0;
	}
	footer .footer_logo li:last-child img{
		width:70%;
	}
	footer .copy{
		font-size:9px;
		line-height:1.3;
        font-feature-settings: "palt";
		padding: 0 0 2em 0;
	}
    footer .btns a .arr:after{
        top: 58%;
    }
    footer .btns a.req ,
    footer .btns a.rev {
        padding: 4% 0;
        font-size: 4.5vw;
        width: 94%;
    }
    footer .btns a .arr:after {
        right: 20px;
    }
    footer .btns li{
        margin-top: 20px;
	}
}

/**********************

home

**********************/
#home #mv{
	position:relative;
	text-align: center;
}
#home #mv p.p1{
    animation-name: fadein;
    animation-duration: 5s;
    animation-iteration-count:1;
	position:relative;
}
#home #mv p.p2{
    animation-name: fadeout;
    animation-duration: 3s;
    animation-iteration-count:1;
	animation-fill-mode:forwards;
}
.bx-wrapper img {
	width: 100% ;
}
@keyframes fadein {
from {
    opacity: 0;
}
to {
    opacity: 1;
    transform: translateY(0);
}
}
@keyframes fadeout {
from {
    opacity: 1;
}
to {
    opacity: 0;
}
}

.video-wrapper{
	position: relative;
	padding-top: 56.25%;
	height: 0;
	display: block;
	content: "";
}
.video-wrapper iframe,
.video-wrapper video{
	width: 100%;
	height: 100%;
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 1;
}
.loading{
	display: block;
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 3;
	content: "";
}
.mv-cap{
    position: absolute;
    right: 0;
    bottom: 0;
    z-index: 10;
    color: #fff;
}
@media screen and (max-width: 800px){
	.video-wrapper{
        padding-top: 125.6%;
	}
}

#home #mv video {
	width: 100%;
}




#home #obi01 {
	padding: 10px 0;
	background-color: #231815;
}
#home #obi01 ul {
	width: 90%;
    max-width: 1000px;
	margin: 0 auto;
}
#home #obi01 ul li img{
}
@media screen and (max-width:800px) {
    #home #obi01 {
        padding: 5% 0;
    }
}

#home .kodo{
	background: #dedddc;
    padding: 10px 0;
}
#home .kodo img{
	max-width: 860px;
	width: 90%;
	margin: 0 auto;
}
#home .info-wrap{
    margin: 40px auto ;
    border: 1px solid #af1f34;
    padding: 20px;
    color: #af1f34;
}
@media screen and (max-width:800px) {
    #home .kodo {
        padding: 5% 0;
    }
}

#home #kodo {
  text-align: center;
  width: 1000px;
  max-width: 90%;
  margin: 30px auto;
  box-sizing: border-box;
  border-bottom: 1px solid #333;
  padding-bottom: 25px;
}
#home #kodo.cta-wrap {
  text-align: center;
  margin-bottom: 40px;
  width: 1146px;
  max-width: 90%;
  border-bottom: none;
  padding-bottom: 0;
}
#home .kodo-wrap {
    padding: 40px 0 20px;
    position: relative;
    background: linear-gradient(to right, #fefbe9 0,#d9d6c3 60%, #f8f6ec 100%);
}
#home .kodo-wrap #kodo {
    margin: 0 auto;
    border-bottom: none;
}
#home #kodo .kodo-text{
    margin: 0 auto 32px;
    max-width: 685px;
    width: 100%;
}

#home  #kodo .txt01{
  font-size: 1.9rem;
  line-height: 1.2;
  margin: 0 0 20px 0;
}
#home  #kodo .txt02{
  font-size: 4.4rem;
  margin: 10px 0;
  line-height: 1;
  letter-spacing: .15em;
}
#home  #kodo .txt03{
  font-size: 2.4rem;
  margin: 45px 0 0 0;
  line-height: 1;
  letter-spacing: -1px;
  font-weight: 600;
}

#home #kodo .btn{
  max-width: 550px;
  width: 94%;
  margin: 0 auto;
}
#home #kodo .btn li{
  width: 100%;
  margin: 25px 0 0 0;
}
#home #kodo .btn.flex-wrapper{
    justify-content: space-between;
    max-width: none;
    width: 100%;
}
#home #kodo .btn.flex-wrapper li{
  width: 48%;
  margin: 0;
}
@media screen and (max-width: 1150px) {
    #home #kodo .btn.flex-wrapper{
        justify-content: center;
    }
    #home #kodo .btn.flex-wrapper li{
        width: 100%;
        margin-bottom: 20px;
        max-width: 550px;
    }
    #home #kodo .btn.flex-wrapper li:last-child{
        width: 100%;
        margin-bottom: 0;
    }
}
#home #kodo .btn a.req,
#home #kodo .btn a.rev,
#home #kodo .btn a.reqsite{
    line-height: 1;
  color:#fff;
  display: block;
  padding:20px;
  /*background-color: #ff7900;*/
  transition: all 0.5s ease 0s;
  position: relative;
  overflow: hidden;
  z-index:2;
  font-size: 2.8rem;
  width: 100%;
  text-align: center;
  box-sizing: border-box;
}

#home #kodo .btn a.req .arr:after,
#home #kodo .btn a.rev .arr:after,
#home #kodo .btn a.reqsite .arr:after{
    border-width: 3.5px 0 3.5px 7px;
    position: absolute;
    right: 30px;
    top: 55%;
}

#home #kodo .btn a.req:before,#home #kodo .btn a.rev:before,#home #kodo .btn a.reqsite:before {
  content:"";
    display: block;
    position: absolute;
    z-index: -1;
    left: -30%;
    top: -50%;
    content: "";
    width: 30px;
  height:100%;
    background-color: #fff;
    opacity:0;
    transform: rotate(45deg);
    animation: reflection 2s ease-in-out infinite;
    -webkit-transform: rotate(45deg);
    -webkit-animation: reflection 2s ease-in-out infinite;
    -moz-transform: rotate(45deg);
    -moz-animation: reflection 2s ease-in-out infinite;
    -ms-transform: rotate(45deg);
    -ms-animation: reflection 2s ease-in-out infinite;
    -o-transform: rotate(45deg);
    -o-animation: reflection 2s ease-in-out infinite;
}

#home #kodo .btn a.req:after,#home #kodo .btn a.rev:after {
   content:"";
   display:block;
   position:absolute;
   top:0;
   right:0;
   bottom:0;
   left:0;
   background-color:#000000;
   width: 0;
   -webkit-transform: scaleX(0);
   transform: scaleX(0);
}

#home #kodo .btn a.req{
  color:#fff;
  display: block;
  background-color: #142f5b;
  letter-spacing: .6em;
}
#home #kodo .btn a.rev{
  color:#fff;
  display: block;
  background-color: #81050b;
}
#home #kodo .btn a.reqsite{
  color:#333;
  display: block;
  letter-spacing: .1em;
  background: rgb(156,147,99);
background: -moz-linear-gradient(left, rgba(156,147,99,1) 0%, rgba(193,184,123,1) 25%, rgba(193,184,123,1) 75%, rgba(156,147,99,1) 100%);
background: -webkit-linear-gradient(left, rgba(156,147,99,1) 0%,rgba(193,184,123,1) 25%,rgba(193,184,123,1) 75%,rgba(156,147,99,1) 100%);
background: linear-gradient(to right, rgba(156,147,99,1) 0%,rgba(193,184,123,1) 25%,rgba(193,184,123,1) 75%,rgba(156,147,99,1) 100%);
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#9c9363', endColorstr='#9c9363',GradientType=1 );
}

@keyframes reflection {
    0% { transform: scale(0) rotate(45deg); opacity: 0; }
    80% { transform: scale(0) rotate(45deg); opacity: 0.5; }
    81% { transform: scale(4) rotate(45deg); opacity: 1; }
    100% { transform: scale(50) rotate(45deg); opacity: 0; }
}
@-webkit-keyframes reflection {
    0% { -webkit-transform: scale(0) rotate(45deg); opacity: 0; }
    80% { -webkit-transform: scale(0) rotate(45deg); opacity: 0.5; }
    81% { -webkit-transform: scale(4) rotate(45deg); opacity: 1; }
    100% { -webkit-transform: scale(50) rotate(45deg); opacity: 0; }
}
@-moz-keyframes reflection {
    0% { -moz-transform: scale(0) rotate(45deg); opacity: 0; }
    80% { -moz-transform: scale(0) rotate(45deg); opacity: 0.5; }
    81% { -moz-transform: scale(4) rotate(45deg); opacity: 1; }
    100% { -moz-transform: scale(50) rotate(45deg); opacity: 0; }
}
@-ms-keyframes reflection {
    0% { -ms-transform: scale(0) rotate(45deg); opacity: 0; }
    80% { -ms-transform: scale(0) rotate(45deg); opacity: 0.5; }
    81% { -ms-transform: scale(4) rotate(45deg); opacity: 1; }
    100% { -ms-transform: scale(50) rotate(45deg); opacity: 0; }
}
@-o-keyframes reflection {
    0% { -o-transform: scale(0) rotate(45deg); opacity: 0; }
    80% { -o-transform: scale(0) rotate(45deg); opacity: 0.5; }
    81% { -o-transform: scale(4) rotate(45deg); opacity: 1; }
    100% { -o-transform: scale(50) rotate(45deg); opacity: 0; }
}
@media screen and (max-width:1200px) {
    #home  #kodo .txt01{
      font-size: 1.8vw;
    }
    #home  #kodo .txt02{
      font-size: 4vw;
    }
    #home  #kodo .txt03{
      font-size: 2vw;
    }
}
@media screen and (max-width:800px) {
    #home #kodo {
      margin: 10% auto 5% auto;
      padding-bottom: 3%;
    }
    #home #kodo.cta-wrap{
      margin: 0 auto 8%;
      padding-bottom: 0;
    }
    #home  #kodo .txt01{
      font-size: 3.5vw;
      line-height: 1.6;
      margin: 0 0 20px 0;
    }
    #home  #kodo .txt02{
      font-size: 6vw;
    }
    #home  #kodo .txt03{
      font-size: 3.5vw;
      margin: 25px 0 0 0;
      line-height: 1.7;
    }

    #home #kodo .btn{
      width: 100%;
    }
    #home #kodo .btn li{

      margin: 20px 0 0 0;
    }
    #home #kodo .btn a.req,
    #home #kodo .btn a.rev,
    #home #kodo .btn a.reqsite{
        padding: 4%  0;
      font-size: 4.5vw;
      width: 100%;
    }
    #home #kodo .btn a.req .arr:after,
    #home #kodo .btn a.rev .arr:after,
    #home #kodo .btn a.reqsite .arr:after{
        right: 20px;
    }
    #home #kodo .kodo-text{
        margin: 0 auto 20px;
    }
}

 #step{
    max-width: 810px;
    width: 90%;
    margin: 0 auto 65px;
}
 #step .s1a{
    text-align: center;
    position: relative;
}
 #step .s1a:nth-of-type(1):after,
 #step .s1a:nth-of-type(2):after{
    content: "";
    width: 0;
    height: 0;
    border-style: solid;
    border-width: 12px 0 12px 24px;
    border-color: transparent transparent transparent #1a2969;
    position: absolute;
    right: -60px;
    top: 55%;
}
 #step .s1a h2{
    font-family: garamond-premier-pro-display, serif;
    font-weight: 300;
    font-size: 2.8rem;
    color: #1a2969;
    letter-spacing: .1em;
    line-height: 1;
    margin-bottom: 5px;
}
 #step .s1a h2 span{
    font-size: 3.8rem;
}
 #step .s1a dl{
    font-feature-settings: "palt";
}
 #step .s1a dt{
    font-size: 2.1rem;
    height: 3.5em;
    line-height: 1.3;
    display: flex;
    justify-content: center;
    align-items: center;
}
 #step .s1a dd:before{
    content: "";
    width: 170px;
    height: 2px;
    background: #1c2b5f;
    display: block;
    margin: 10px auto 20px auto;
}
 #step .s1a dd{
    font-size: 1.6rem;
}
@media screen and (max-width:800px) {
     #step{
        margin: 0 auto 10% auto;
        display: block;
    }
     #step .s1a{
        padding-bottom: 30px;
        margin-bottom: 10px;
    }
     #step .s1a:nth-of-type(3){
        padding-bottom: 0;
        margin-bottom: 0;
    }
     #step .s1a:nth-of-type(1):after,
     #step .s1a:nth-of-type(2):after{
        border-width: 17px 8.5px 0 8.5px;
        border-color: #1a2969 transparent transparent transparent;
        right: auto;
        top: auto;
        left: 50%;
        margin-left: -9px;
        bottom: 0px;
    }
     #step .s1a h2{
        font-size: 7vw;
        margin-bottom: 5px;
    }
     #step .s1a h2 span{
        font-size: 10vw;
    }
     #step .s1a dl{
    }
     #step .s1a dt{
        font-size: 5vw;
        height: auto;
        display: block;
    }
     #step .s1a dd:before{
        width: 110px;
        margin: 15px auto 10px auto;
    }
     #step .s1a dd{
        font-size: 4vw;
    }
}
.flyer-section{
    padding:60px 0 20px;
}
@media screen and (max-width:800px){
    .flyer-section{
        padding: 40px 0 20px;
    }
}

.flyer-wrap{
    padding: 40px 0;
    margin: 0 auto;
    max-width: 1000px;
    width: 100%;
    background:  #eaeaea;
}
@media screen and (max-width:800px){
    .flyer-wrap{
        padding: 32px 0;
    }
}
.flyer-heading{
    margin-bottom: 32px;
    font-size: 2.4rem;
    color: #1b2d58;
    text-align: center;
    line-height: 1;
}
@media screen and (max-width:800px){
    .flyer-heading{
        margin-bottom: 20px;
        font-size: 5vw;
    }
}
.flyer-img{
    margin: 0 auto 32px;
    max-width: 600px;
    width: 90%;
}
@media screen and (max-width:800px){
    .flyer-img{
        margin-bottom: 24px;
    }
}
.flyer-btn{
    margin: 0 auto;
    display: block;
    padding: 12px 0;
    max-width: 300px;
    width: 70%;
    font-size: 1.6rem;
    line-height: 1;
    background: #1b2d58;
    color: #fff;
    text-align: center;
}
@media screen and (max-width:800px){
    .flyer-btn{
        max-width: 100%;
        font-size: 4.4vw;
    }
}

#home h2.title{
    font-family: mrs-eaves, serif;
    font-weight: 400;
    font-size: 6.6rem;
    line-height: 1;
    color: #978a8a;
    letter-spacing: 0.05em;
    margin: 30px 0 0 30px;
}
@media screen and (max-width:800px){
    #home h2.title{
        font-size: 12vw;
        margin: 5% 0 0 5%;
    }
}

#home #concept{
    background: #231815;
}
#home #concept .ac1{
    width: 100%;
    background: #231815;
    color: #fff;
    text-align: center;
    padding: 30px 0 60px 0;
}
#home #concept .ac1 h2{
    color: #978a8a;
    font-size: 5rem;
}
#home #concept .ac1 h2 span{
    opacity: .6;
}
#home #concept .ac1 dl{
}
#home #concept .ac1 dt{
    font-size: 2.8rem;
    margin-top: 1em;
}
#home #concept .ac1 dd{
    font-size: 1.6rem;
    margin-top: 1em;
}
#home #concept p.pic{
    width: 100%;
    position: relative;
}
#home #concept p.pic span{
    position: absolute;
    right: 15px;
    bottom: 10px;
    font-size: 1.1rem;
    color: #fff;
}
@media screen and (max-width:1200px) {
    #home #concept .ac1 dt{
        font-size: 2vw;
    }
    #home #concept .ac1 dd{
        font-size: 1.2vw;
    }
}
@media screen and (max-width:800px){
    #home #concept{
        display: block;
    }
    #home #concept .ac1{
        width: 100%;
        padding: 1px 0 0 0;
        padding: 5% 0 10% 0;
    }
    #home #concept .ac1 h2{
        font-size: 6vw;
    }
    #home #concept .ac1 dl{
        display: block;
        width: 90%;
        margin: auto;
    }
    #home #concept .ac1 dt{
        font-size: 4.5vw;
        margin-top: 2%;
    }
    #home #concept .ac1 dd{
        font-size: 3.5vw;
    }
    #home #concept p.pic{
        width: 100%;
    }
    #home #concept p.pic span{
        right: 10px;
        bottom: 5px;
        font-size: 1rem;
    }
}

#home .loc-acc{
}
#home .loc-acc .al1{
    /*background: #f0efef;*/
}
#home #access.loc-acc .al1{
    flex-direction: row-reverse;
}
#home .loc-acc .al2{
    width: 50%;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    text-align: left;
    position: relative;
}
#home .loc-acc .al2 h2{
    font-family: mrs-eaves, serif;
    font-weight: 400;
    font-size: 5rem;
    line-height: 1;
    color: #978a8a;
    letter-spacing: 0.05em;
    width: 90%;
    max-width: 420px;
    position: relative;
    z-index: 2;
}
#home .loc-acc .al2 p.p1{
    width: 90%;
    max-width: 420px;
    font-size: 1.6rem;
    position: relative;
    z-index: 2;
}
#home .loc-acc .al2 .btn{
    width: 90%;
    max-width: 420px;
    position: relative;
    background-color: #152e5b;
    overflow: hidden;
}
#home .loc-acc .al2 .btn::before{
    content:"";
display: block;
position: absolute;
z-index: 1;
left: -30%;
top: -50%;
content: "";
width: 30px;
height:100%;
background-color: #fff;
opacity:0;
transform: rotate(45deg);
animation: reflection 2s ease-in-out infinite;
-webkit-transform: rotate(45deg);
-webkit-animation: reflection 2s ease-in-out infinite;
-moz-transform: rotate(45deg);
-moz-animation: reflection 2s ease-in-out infinite;
-ms-transform: rotate(45deg);
-ms-animation: reflection 2s ease-in-out infinite;
-o-transform: rotate(45deg);
-o-animation: reflection 2s ease-in-out infinite;

}
#home .loc-acc .al2 .btn a{
    font-size: 3rem;
    font-family: 'Cormorant Garamond', serif;
    letter-spacing: 0.1em;
    font-weight: 300;
    
    position: relative;
    position: relative;
    z-index: 2;
    padding: 5px 0;
}
#home .loc-acc .al2 .btn a:hover{
    color: #fff;
}
#home .loc-acc .al2 .btn a:after{
    content: "";
    width: 0;
    height: 0;
    border-style: solid;
    border-width: 5.5px 0 5.5px 11px;
    border-color: transparent transparent transparent #fff;
    position: absolute;
    right: 20px;
    top: 50%;
    margin-top: -5px;
}
#home .loc-acc .al2 p.bk{
    position: absolute;
    width: 100%;
    height: 100%;
    background-image: url(../images/top/location6.png);
    background-size: cover;
    background-repeat: no-repeat;
    background-position: right bottom;
    top: 0;
    left: 0;
    z-index: -1;
}
#home #access.loc-acc .al2 p.bk{
    background-image: url(../images/top/access5.png);
}

#home .loc-acc .pic{
    width: 50%;
    position: relative;
}
#home .loc-acc .pic span{
    position: absolute;
    top: 0;
    right: 0;
    width: auto;
    height: 100%;
    text-align: right;
}
#home #access.loc-acc .pic span{
    right: auto;
    left: 0;
    text-align: left;
}
#home .loc-acc .pic span img{
    max-width: none;
    width: auto;
    height: 100%;
}
#home .loc-acc .pic .txt em{
    /*font-family: 'EB Garamond', serif;
    font-size: 9rem;
    line-height: 0.95;
    font-style: normal;
    color: rgba(255,255,255,0.7);*/
    position: absolute;
    right: 20px;
    bottom: 20px;
}
#home .loc-acc .pic .txt em img{
    max-width: none;
    width: auto;
    height: 120px;
}
#home .loc-acc .pic .photo em{
    position: absolute;
    left: 10px;
    bottom: 5px;
    color: #fff;
    font-size: 1.1rem;
}
#home #access.loc-acc .pic .photo em{
    left: auto;
    right: 10px;
}
#home .loc-acc .pic .txt{
}
#home #access.loc-acc .pic .txt em{
    right: auto;
    left: 20px;
}
#home #access.loc-acc .pic .txt em:nth-of-type(2){
    bottom:10px;
    right: auto;
    left: 20px;
    top: auto;
}

@media screen and (max-width:1400px) {
    #home .loc-acc .pic .txt em {
        font-size:5vw;
    }
    #home .loc-acc .al2 h2{
        font-size: 4vw;
    }
    #home .loc-acc .al2 p.p1{
        font-size: 1.5vw;
    }
    #home .loc-acc .al2 p.btn a{
        font-size: 2vw;
    }
}

@media screen and (max-width:800px){
    #home .loc-acc{
    }
    #home .loc-acc .al1{
        flex-direction: column-reverse;
    }
    #home #access.loc-acc .al1{
        flex-direction: column-reverse;
    }
    #home .loc-acc .al2{
        width: 100%;
        min-height: 60vw;
    }
    #home .loc-acc .al2 h2{
        font-size: 7.5vw;
        width: 70%;
    }
    #home .loc-acc .al2 p.p1{
        width: 70%;
        font-size: 3.2vw;
        position: relative;
        z-index: 2;
    }
    #home .loc-acc .al2 .btn{
        width: 70%;
        max-width: 420px;
    }
    #home .loc-acc .al2 p.btn a{
        font-size: 4vw;
    }
    #home .loc-acc .al2 .btn a:hover{
        color: #fff;
    }
    #home .loc-acc .al2 .btn a:after{
        content: "";
        width: 0;
        height: 0;
        border-style: solid;
        border-width: 5.5px 0 5.5px 11px;
        border-color: transparent transparent transparent #fff;
        position: absolute;
        right: 20px;
        top: 50%;
        margin-top: -5px;
    }
    #home .loc-acc .al2 p.bk{
        position: absolute;
        width: 100%;
        height: 100%;
        background-image: url(../images/top/location6.png);
        background-size: cover;
        background-repeat: no-repeat;
        background-position: right bottom;
        top: 0;
        left: 0;
    }
    #home #access.loc-acc .al2 p.bk{
    }
    
    #home .loc-acc .pic{
        width: 100%;
    }
    #home .loc-acc .pic span{
    }
    #home #access.loc-acc .pic span{
    }
    #home .loc-acc .pic span img{
    }
    #home .loc-acc .pic .txt em{
        /*font-size: 10vw;*/
        right: 10px;
        bottom: 10px;
    }
    #home .loc-acc .pic .txt em img{
        max-width: none;
        width: auto;
        height: 60px;
    }
    #home .loc-acc .pic .txt{
    }
    #home #access.loc-acc .pic .txt em{
        right: auto;
        left: 10px;
    }
    #home #access.loc-acc .pic .txt em:nth-of-type(2){
        bottom:10px;
        right: auto;
        left: 10px;
        top: auto;
    }
}



#home #way{
    position: relative;
}
#home #way h2{
    position: absolute;
    font-size: 7rem;
    color: #fff;
    text-align: center;
    width: 100%;
    top: 30px;
}
#home #way h2 span{
    opacity: .7;
}
#home #way dl{
    position: absolute;
    text-align: center;
    width: 100%;
    left: 50%;
    top: 150px;
    transform: translateX(-50%);
}
#home #way dt{
    font-size: 3.8rem;
    color: #fff;
    margin-bottom: 70px;
}
#home #way dd{
    max-width: 400px;
    width: 80%;
    margin: auto;
}
#home #way figure{}
#home #way figcaption{
    text-align: right;
    font-size: 1rem;
    margin: 10px 5px 0 0;
}
#home #way .badge{
    position: absolute;
    width: 15vw;
    max-width: 270px;
    right: 250px;
    bottom: 27vw;
}
@media screen and (max-width:1200px) {
    #home #way h2{
        font-size: 5vw;
        top: 20px;
    }
    #home #way dl{
        top: 120px;
    }
    #home #way dt{
        font-size: 3vw;
        margin-bottom: 20px;
    }
    #home #way dd{
        max-width: 200px;
    }
}
@media screen and (max-width:800px) {
    #home #way{
    }
    #home #way h2{
        font-size: 10vw;
        line-height: 1.2;
        top: 30px;
    }
    #home #way dl{
        top: 35vw;
    }
    #home #way dt{
        font-size: 4.5vw;
        color: #fff;
        margin-bottom: 5%;
    }
    #home #way dd{
        max-width: 150px;
    }
    #home #way figure{}
    #home #way figcaption{
        margin: 5px 5px 0 0;
    }
    #home #way .badge{
        width: 35vw;
        right: 5vw;
        bottom: 35vw;
    }
}

p.homenote{
	text-align: left;
	width: 90%;
    max-width: 1000px;
	margin: auto;
	font-size: 1rem;
    line-height: 1.5;
    margin-top: 2em;
}

/**********************

request

**********************/
#request{
	padding:0 0 70px 0;
}
#request h1{
	text-align:center;
	font-size:30px;
	line-height:1;
	margin:25px 0;
}
#request h2{
	font-size:18px;
	text-align:center;
	line-height:1.5;
	margin:0 0 50px 0;
}
#request h3{
	font-size:16px;
	text-align:center;
	line-height:1.5;
	margin:30px 0;
}
#request table{
	width:100%;
	border-bottom: 1px solid #808080;
	margin-bottom:50px;
	box-sizing:border-box;
}
#request th{
	border-top: 1px solid #808080;
	width: 26%;
    padding: 12px 12px 12px 0;
	font-size:14px;
}
#request th span{
	font-size:12px;
	color:#f30;
}
#request td{
  padding: 12px 3% 12px 1%;
  border-top: 1px solid #808080;
	font-size:14px;
}

@media screen and (max-width:800px) {
	#request{
		padding:30px 0;
	}
	#request h1{
		font-size:24px;
		margin-bottom:30px;
	}
	#request h2{
		font-size:20px;
		line-height:1.3;
		margin-bottom:10px;
	}
	#request table{
		margin-bottom:20px;
	}
	#request th{
		width: 100%;
		display:block;
		padding: 12px 12px 10px 0;
		margin:0 0 10px 0;
		font-size:15px;
		font-weight:bold;
		border-bottom:1px dotted #999;
		box-sizing:border-box;
	}
	#request td{
	  padding: 0px 3% 12px 0;
	  border-top: none;
		width: 100%;
		display:block;
		box-sizing:border-box;
	}
}


/**********************

etc

**********************/
.pagetop {
    bottom: 62px;
    display: none;
    position: fixed;
    right: 24px;
    text-align: center;
    z-index: 1000;
	width:50px;
}
.thanks{
	padding:5vw 0;
}

/*--------------------------------
common
--------------------------------*/
.text-center {
	text-align: center;
}
.text-right {
	text-align: right;
}
.text-left {
	text-align: left;
}
.small-text {
	font-size: 75%;
}
.large-text{
	font-size: 150%;
}
.fit-img {
	width: 100%;
	height: auto;
	vertical-align: middle;
}
.has-max {
	height: auto;
	max-width: 100%;
}
.flex-wrapper {
	display: flex;
	flex-wrap: wrap;
}
.img-wrapper{
	position: relative;
}
.img-wrapper .caption{
	position: absolute;
	bottom: 0;
	left: 8px;
	right: 8px;
	z-index: 1;
}
.inline-block{
	display: inline-block;
}
.grid-wrapper{
	display: grid;
	grid-template-columns: repeat(3, 1fr);
}
@media screen and (max-width: 940px){
	.grid-wrapper{
		grid-template-columns: repeat(2, 1fr);
	}
}
@media screen and (max-width: 767px){
	.grid-wrapper{
		grid-template-columns: 1fr;
	}
}

/*--------------------------------
componet
--------------------------------*/
.primary-heading{
	margin-bottom: .8em;
	font-size: 4.6rem;
	line-height: 1.3;
}
.secondary-heading{
	margin-bottom: .8em;
	font-size: 3rem;
	line-height: 1.3;
}
.tertiary-heading{
	margin-bottom: .8em;
	font-size: 2.4rem;
	line-height: 1.4;
}
@media screen and (max-width: 767px){
	.primary-heading{
		font-size: 2.9rem;
	}
	.secondary-heading{
		font-size: 2rem;
	}
	.tertiary-heading{
		font-size: 1.6rem;
	}
}
.note{
	margin: 1em 0;
	font-size: 1.6rem;
	line-height: 1.6;
}
@media screen and (max-width: 767px){
	.note{
		font-size: 1.4rem;
	}
}
.caption{
	margin: .4em 0;
	font-weight: 300;
	font-size: 1.2rem;
	line-height: 1.4;
}

@media screen and (max-width: 767px){
	.caption{
		font-size: 1rem;
	}
}
.breadcrumbs{
	margin: 0 auto;
	padding: 16px 0;
	width: calc(100% - 32px);
	max-width: 1000px;
	display: flex;
	font-size: 1.2rem;
}
.breadcrumb a{
	color: inherit;
	text-decoration: underline;
}
.arrow{
	margin: 0 8px;
}
[type=text],
[type=email],
[type=tel],
[type=password],
select{
	padding: 8px;
	font: inherit;
	font-size: 1.8rem;
}
.text-fit{
	flex: 1;
}

.general-table{
	margin: 48px 0;
	width: 100%;
	font-size: 1.6rem;
	line-height: 1.4;
	border-top: 1px solid #ddd;
	border-left: 1px solid #ddd;
	border-right: 1px solid #ddd;
}
.general-table th,
.general-table td{
	padding: 16px;
	border-bottom: 1px solid #ddd;
}
.general-table th{
	width: 260px;
	position: relative;
	background: #eee;
	font-weight: 500;
	text-align: right;
}
@media screen and (max-width: 767px){
	.general-table{
		margin: 24px 0;
	}
	.general-table th,
	.general-table td{
		width: 100%;
		display: block;
	}
	.general-table th{
		text-align: left;
	}
}

/*--------------------------------
layout
--------------------------------*/
.container{
	overflow: hidden;
}
.general-section .inner{
	margin: 0 auto;
	padding: 80px 0;
	width: calc(100% - 32px);
	max-width: 1000px;
}
@media screen and (max-width: 767px){
	.general-section .inner{
		padding: 32px 0;
	}
}
.general-section .inner-fit{
	width: 100%;
	max-width: none;
}
.general-section .inner + .inner{
	padding-top: 0;
}
.general-parts{
	margin-bottom: 32px;
}
.col-2{
	gap: 24px;
	justify-content: center;
}
.col-2 > .flex-item{
	flex: 1;
}
@media screen and (max-width: 767px){
	.col-2 > .flex-item{
		flex: 0 0 100%;
	}
}
.col-3{
	gap: 32px;
	justify-content: center;
}
.col-3 > .flex-item{
	flex: 0 1 375px;
}

/*--------------------------------
outline
--------------------------------*/
.outline-heading{
	margin-bottom: .8em;
	font-size: 2rem;
	line-height: 1.4;
}
.outline-table{
	margin: .8em 0;
	width: 100%;
	border-top: 1px solid #ddd;
}
.outline-table th,
.outline-table td{
	font-size: 1.4rem;
	line-height: 1.4;
	border-bottom: 1px solid #ddd;
}
.outline-table th{
	padding: 12px 0;
	width: 190px;
	text-align: left;
}
.outline-table td{
	padding: 12px 0 12px 16px;
}
.ad-label{
	margin-bottom: 8px;
	padding: 8px;
	width: 100px;
	font-size: 1.4rem;
	text-align: center;
	border: 1px solid #999;
}
@media screen and (max-width: 767px){
	.outline-table th,
	.outline-table td{
		padding: 12px 8px;
		width: 100%;
		display: block;
	}
	.outline-table th{
		padding: 8px 0;
		border-bottom: none;
	}
}
.casbee {
    margin: 0 auto 0;
    max-width: 360px;
    width: calc(100% - 40px);
}
.casbee img{
    max-width: 100%;
    width: 100%;
}
/*--------------------------------
limited
--------------------------------*/
.limited-header{
	padding: 32px 16px;
}
.limited-header .inner{
	margin: 0 auto;
	max-width: 960px;
}
.symbol-mark{
	margin-bottom: 64px;
}
.limited-heading{
	margin-bottom: .4em;
	font-size: 5.6rem;
	font-family: garamond-premier-pro, serif;
	font-weight: 300;
	color: #606c8a;
	letter-spacing: .1em;
	line-height: 1.2;
}
@media screen and (max-width: 767px){
	.symbol-mark{
		margin-bottom: 32px;
		width: 25vw;
	}
	.limited-heading{
		font-size: 3rem;
	}
}
.is-border-bottom{
	padding-bottom: 8px;
	border-bottom: 1px solid;
}
.limited-content{
	background: url(../images/limited/limited-bg.jpg) no-repeat center center;
	background-size: cover;
}
.limited-site .general-section .inner{
	max-width: 960px;
}
.plan .general-section .inner{
	max-width: 960px;
}
.limited-label{
	margin-bottom: .8em;
	font-size: 2rem;
	line-height: 1.4;
}
@media screen and (max-width: 767px){
	.limited-label{
		font-size: 1.4rem;
	}
}
.form-field{
	margin-bottom: 32px;
}
.form-item{
	padding: 8px 0;
	gap: 16px;
}
.limited-content [type=password]{
	padding: 8px 24px;
	font-family: garamond-premier-pro, serif;
	font-size: 2.7rem;
	letter-spacing: .2em;
	border: 1px solid #9e8c33;
}
.login-btn{
	width: 30%;
	font-size: 2.7rem;
	font-family: garamond-premier-pro, serif;
	letter-spacing: .2em;
	text-indent: .2em;
	cursor: pointer;
}
.login-btn:hover{
	opacity: .8;
}
.limited-content .general-btn{
	width: 100%;
	height: 66px;
	display: block;
	font-size: 3rem;
	line-height: 66px;
	letter-spacing: .5em;
	text-indent: .5em;
}
@media screen and (max-width: 767px){
	.form-item{
		gap: 8px;
	}
	.limited-content [type=password]{
		padding: 8px 24px;
		font-size: 1.6rem;
	}
	.login-btn{
		width: 30%;
		font-size: 1.6rem;
	}
	.limited-content .general-btn{
		height: 50px;
		font-size: 1.8rem;
		line-height: 50px;
	}
}
@media screen and (max-width: 370px){
	.login-btn{
		padding: 8px;
		width: 100%;;
	}
}
.request-btn{
	background: #1b2d58;
	color: #fff;
}
.limited-btn{
	background: linear-gradient(90deg, rgba(154,146,97,1) 0%, rgba(200,190,126,1) 26%, rgba(195,185,122,1) 52%, rgba(154,146,97,1) 100%);
}
.error-text{
	padding: 4px;
	background: #f44;
	color: #fff;
	font-size: 1.6rem;
	border-radius: 30px;
}
.limited-menu{
	justify-content: space-between;
}
.limited-menu .flex-item{
	width: 32%;
}
@media screen and (max-width: 767px){
	.limited-menu{
		gap: 32px;
	}
	.limited-menu .flex-item{
		width: 100%;
	}
}
.menu-link{
	position: relative;
	display: block;
}
.menu-thumb{
	overflow: hidden;
	transition: filter .4s ease-in-out;
}
.menu-thumb img{
	transition: transform .4s ease-in-out;
}
.menu-link:hover{
	opacity: 1;
}
.menu-link:hover .menu-thumb img{
	transform: scale(1.3);
}
.menu-link:hover .menu-thumb{
	filter: saturate(2) brightness(1.2);
}
.menu-text{
	padding: 8px;
	background: linear-gradient(90deg, rgba(154,146,97,1) 0%, rgba(200,190,126,1) 26%, rgba(195,185,122,1) 52%, rgba(154,146,97,1) 100%);
	font-size: 2rem;
}
.over-content{
	width: 100%;
	position: absolute;
	top: calc(50% - 26px);
	left: 0;
	z-index: 1;
	font-family: garamond-premier-pro, serif;
	color: #fff;
	transform: translateY(-50%);
}
.menu-title{
	margin-bottom: .4em;
	font-size: 3.8rem;
	font-weight: 300;
	letter-spacing: .2em;
	text-indent: .2em;
}
.ghost-btn{
	padding: 4px 16px 3px;
	min-width: 236px;
	display: inline-block;
	position: relative;
	font-size: 1.8rem;
	border: 1px solid #fff;
	transition: background .4s ease-in-out, border .6s ease-out;
}
.ghost-btn::after{
	margin-top: -8.5px;
	width: 9px;
	height: 17px;
	display: block;
	position: absolute;
	right: 16px;
	top: 50%;
	content: "";
	background: url(../images/common/arrow.svg) no-repeat center center;
	background-size: contain;
}
.menu-link:hover .ghost-btn{
	background-color: #142f5b;
	border-color: #142f5b;
}
@media screen and (max-width: 767px){
	.menu-title{
		font-size: 2.8rem;
	}
	.ghost-btn{
		min-width: 180px;
		font-size: 1.6rem;
	}
}

/*--------------------------------
view
--------------------------------*/
.swiper-container{
	position: relative;
}
.swiper-slide{
	margin-right: -0.5px;
}
.swiper-button-prev{
	color: #fff;
}
.swiper-button-next{
	color: #fff;
}
.view-heading,
.view-title{
	font-family: garamond-premier-pro, serif;
	color: #606c8a;
	letter-spacing: .2em;
	text-indent: .2em;
}
.view-heading{
	margin-top: 36px;
	font-size: 3.8rem;
}
.view-title{
	font-size: 2.4rem;
}
.view-label{
	padding: 4px;
	margin: 16px auto;
	width: 360px;
	display: block;
	background: #898989;
	font-size: 1.6rem;
	color: #fff;
	text-align: center;
}
@media screen and (max-width: 767px){
	.view-heading{
		font-size: 2.2rem;
	}
	.view-title{
		font-size: 1.2rem;
	}
	.view-label{
		padding: 4px;
		margin: 16px auto;
		width: 280px;
		font-size: 1.4rem;
	}
}
.swiper-container:hover .icon-360{
	opacity: 0;
	visibility: hidden;
}
.icon-360{
	position: absolute;
	top: 50%;
	left: 50%;
	z-index: 1;
	transform: translate(-50%, -50%);
	transition: opacity .8s ease-out, visibility .1s ease 1s;
}
.swiper-container + .caption{
    margin-right: 8px;
}
@media screen and (max-width: 767px){
	.icon-360{
		width: 100px;
	}
}

/*--------------------------------
plan
--------------------------------*/
.limited-section{
	position: relative;
	overflow: hidden;
}
.limited-section::before,
.limited-section::after{
	width: 100%;
	height: 340px;
	display: block;
	position: absolute;
	left: 0;
	content: "";
}
.limited-section::before{
	top: 0;
	z-index: -1;
	background-position: center top;
    background: url(../images/limited/plan-top-bg.jpg) no-repeat;
    background-size: cover;
}
.limited-section::after{
	bottom: 0;
	z-index: -2;
	background-position: center bottom;
    background: url(../images/limited/plan-bottom-bg.jpg) no-repeat;
    background-size: cover;
}
.plan-heading{
	margin-bottom: 60px;
	background: linear-gradient(90deg, rgba(154,146,97,1) 0%, rgba(200,190,126,1) 26%, rgba(195,185,122,1) 52%, rgba(154,146,97,1) 100%);
	font-size: 2.6rem;
	line-height: 40px;
}
.plan-cards-wrapper{
    max-width: 860px;
	margin: 0 auto;
	justify-content: center;
}
.plan-card{
	margin: 0 16px 16px;
	flex: 0 1 260px;
	background: #fff;
	color: #1b2d58;
    position: relative;
}
.plan-card a{
    border: 1px solid #1b2d58;   
    transition: .3s;
}
.off-txt-wrap{
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%,-50%);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 3rem;
    width: 100%;
    height: 100%;
    color: #000;
}
.plan-card a.off-txt-wrap{
    border: none;
}
.plan-card a.off{
    opacity: 0.1;
}
.plan-card a:hover{
    background: #1b2d58;
	color: #fff;
    opacity: 1;
}
.plan-card a:hover .plan-card-link{
	color: #fff;
    opacity: 1;
}
.plan-card a:hover .more-btn{
    background: #fff;
	color: #1b2d58;
    opacity: 1;
}
.plan-card a:hover .plan-type-name::before{
    background: #fff;
    opacity: 1;
}
.plan-card-link{
	padding: 16px 20px;
	display: block;
	color: #1b2d58;
	line-height: 1.2;
}
.type-num{
	font-size: 8rem;
}
.type-text{
	font-size: 3rem;
    margin: 0 0 0 4px;
}
.plan-type{
    margin: 10px 0 0;
	font-size: 2.7rem;
}
.value-wrapper{
	align-items: baseline;
}
.plan-value{
	font-size: 4rem;
}
.more-btn{
	padding: 8px;
	background: #1b2d58;
	color: #fff;
	font-size: 1.8rem;
    position: relative;
}
.more-btn::before{
    content: "〉";
    position: absolute;
    top: 50%;
    right: 10px;
    transform: translate(0,-50%);
}
.page-lead{
    font-size: 1.8rem;
    margin: 0 0 10px;
}
.plan-mv{
    position: relative;
}
.plan-mv img{
    max-width: 100%;
    width: 100%;
}
.plan-mv .plan-mv-txt{
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%,-50%);
    display: block;
    max-width: 156px;
    min-width: 100px;
    width: 7vw;
}
.plan-list-wrap{
  max-width: 788px;
  margin: 0 auto;
}

.plan-list{
    margin: 0 0 20px;
}
.plan-type-name{
    position: relative;
}
.plan-type-name::before{
    content: "";
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    margin: 0 auto;
    background: #1b2d5849;
    width: 38px;
    height: 2px;
}
.value-label{
    text-align: left;
    margin: 20px 0 0;
}
@media screen and (max-width: 767px){
    .plan-heading{
        font-size: 2rem;
    }
    .page-lead{
        font-size: 1.6rem;
    }
    .limited-section::before{
        background: url(../images/limited/plan-top-bg-sp.jpg) no-repeat;
        background-size: cover;
        height: 200px;
    }
    .limited-section::after{
        background: url(../images/limited/plan-bottom-bg-sp.jpg) no-repeat;
        background-size: cover;
        height: 200px;
    }
    .type-num{
        font-size: 6rem;
    }
    .value-label{
        margin: 10px 0 0;
    }
}
.limited-site .h2b{
    display: flex;
    position: relative;
    max-width: 800px;
    margin: 0 auto 40px;
    align-items: flex-start;
}
.plan .h2b{
    display: flex;
    position: relative;
    max-width: 800px;
    margin: 0 auto 40px;
    align-items: flex-start;
}
.plan-badge{
    position: absolute;
    right: -13px;
    top: 32%;
    transform: translate(0,-50%);
    width: 10vw;
    max-width: 120px;
    min-width: 100px;
    height: 10vw;
    max-height: 120px;
    min-height: 100px;
}
.limited-site .madori{
    background: linear-gradient(90deg, rgba(154,146,97,1) 0%, rgba(200,190,126,1) 26%, rgba(195,185,122,1) 52%, rgba(154,146,97,1) 100%);
    font-size: 4rem;
    padding: 0 20px;
    display: inline-block;
}
.limited-site .madori span{
    font-size: 6rem;
}
.limited-site .madori em{
    font-size: 2.6rem;
    padding: 0 15px 0 10px;
    margin: 0 15px 0 0 ;
    border-right: 1px solid #000;
    height: 50px;
    display: inline-block;
}
.limited-site .madori-detail{
    display: inline-block;
    line-height: 1.2;
    font-size: 3.4rem;
    vertical-align: sub;
}
@media screen and (max-width: 767px){
    .limited-site .madori-detail{
        font-size: 3rem;
        line-height: 1;
    }
}
.limited-site .madori-detail span.small-text{
    padding: 0;
    font-size: 75%;
    display: block;
}
.limited-site .caption.plan-cap{
    margin: 0 auto;
    width: 100%;
    max-width: 780px;
}
@media screen and (max-width: 767px){
    .limited-site .caption.plan-cap{
        margin-top: 12px;
    }
}
.plan-txt-wrap{
    display: flex;
    flex-wrap: wrap;
    margin: 0 0 0 3%;
    width: 45%;
}
.label{
    width: 100%;
    font-size: 1.4rem;
    text-align: left;
}
.plan-txt-wrap .value{
    font-size: 5rem;
    line-height: 1;
}
.plan-txt-wrap .small-text{
    font-size: 4rem;
    letter-spacing: 1px;
}
.plan-txt-wrap .small-text:last-child{
    font-size: 2rem;
}
.plan-txt-wrap .sub-value{
    font-size: 1.6rem;
    width: 100%;
}
.plan-txt{
    font-size: 2.4rem;
    margin: 0 0 40px;
    line-height: 1.2;
    text-align: center;
    letter-spacing: -1px;
    box-sizing: border-box;
    border-bottom: 1px solid #333;
    padding-bottom: 25px;
    font-weight: 600;
}
.plan #step{
    width: 100%;
}
.plan-inner{
    margin: 0 auto;
    padding: 80px 0 0;
    width: calc(100% - 32px);
    max-width: 1100px;
}
.plan #step{
    margin: 0 auto;
}
.limited-site .p1{
    margin: 0 auto ;
    font-size: 2.2rem;
    max-width: 800px;
    position: relative;
    padding: 0 0 0 50px;
}

.limited-site .p1::before{
    content: "■";
    position: absolute;
    color: #beab3b;
    text-indent: -24px;
}
.limited-site .aa01a{
    margin: 60px auto 6%;
    max-width: 860px;
}
.limited-site .hanrei,.limited-site .hanrei02{
    width: 100%;
    margin: 40px auto 0;
}
.limited-site .hanrei img{
    max-width: 480px;
}
.limited-site .hanrei02 img{
    width: 680px;
}
.limited-site .aa01a .cap{
    font-size: 1.2rem;
    margin: 10px 0 0;
}

.limited-site .btn-wrap{
    margin: 40px auto 0;
    font-size: 2.4rem;
    text-align: center;
}
.limited-site .print-btn,.limited-site .close-btn{
    display: inline-block;
    background-color: #1b2d58;
    color: #fff;
    width: 236px;
    text-align: center;
    margin: 0 2%;
    border: 1px solid #1b2d58;
}
.limited-site .close-btn{
    position: relative;
}
.limited-site .close-btn::before{
    content: "×";
    position: absolute;
    top: 50%;
    left: 10px;
    transform: translate(0,-50%);
    line-height: 1;
}
.limited-site .print-btn:hover,.limited-site .close-btn:hover{
    opacity: 1;
    background-color: #fff;
    color: #1b2d58;
}
@media screen and (max-width: 1200px){
    .plan-txt{
        font-size: 2vw;
    }
}
@media screen and (max-width: 800px){
    .plan-txt{
        font-size: 3.5vw;
        line-height: 1.7;
    }
    .limited-site .h2b{
        flex-direction: column;
        margin: 0 auto 10px;
    }
    .limited-site .madori{
        width: 100%;
        padding: 0px;
        text-align: left;
        font-size: 3rem;
    }
    .plan-txt-wrap{
        width: 100%;
        margin: 20px 0 0;
    }
    .limited-site .madori span{
        font-size: 4rem;
        padding: 0 0 0 20px;
    }
    .plan-badge{
        top: 36px;
        min-width: 66px;
        min-height: 66px;
    }
}
@media screen and (max-width: 767px){

    .limited-site .madori em{
        font-size: 2rem;
        height: 30px;
    }


    .label{
        font-size: 1.2rem;
        max-width: 80px;
        display: flex;
        align-items: center;
    }
    .plan-txt-wrap .value{
        font-size: 3.2rem;
    }
    .plan-txt-wrap .small-text:last-child{
        font-size: 1.4rem;
    }
    .plan-txt-wrap .small-text{
        font-size: 2rem;
    }
    .plan-txt-wrap .sub-value{
        font-size: 1rem;
        margin: 0 0 0 80px;
    }
    .limited-site .p1{
        font-size: 1.4rem;
        padding: 0 0 0 24px;
    }
    .limited-site .hanrei{
        margin: 20px auto 0;
    }
    .limited-site .print-btn,.limited-site .close-btn{
        margin:10px 0;
    }
    .limited-site .btn-wrap{
        font-size: 2rem;
    }
    .limited-site .hanrei img{
        width: 260px;
    }
    .plan-card-link{
        padding: 16px 15px;
    }
    .sp-plan-wrap{
        flex-wrap: nowrap;
    }
    .plan-inner{
        padding: 40px 0 0;
    }
    .plan-card{
        flex: 0 1 300px
    }
}
@media screen and (max-width: 587px){
    .plan-card:first-child{
        margin: 0 16px 32px;
    }
}
@page { 
    size: A4;
    margin: 0;
 } /* A4縦 */
@media print {
    .limited-site header{
        display: none;
    }
    .limited-site .limited-header{
        display: none;
    }
    .limited-site .print-btn,.limited-site .close-btn{
        display: none;
    }
    .limited-site footer{
        display: none;
    }
    .limited-site footer{
        display: none;
    }
    .limited-site footer{
        display: none;
    }
    .limited-site nav ul{
        display: none;
    }
    .limited-site .aa01a{
        margin: 10px auto 0;
        width: 360px!important;
        max-width: 350px!important;
    }
    .limited-site .p1{
        font-size: 1.4rem!important;
    }
    .general-section .inner{
        padding: 20px 0;
    }
    body {
        -webkit-print-color-adjust: exact;
    }
    .plan-mv{
        display: none;
    }
  }

  .life-bnr{
      max-width: 1000px;
      width: 90%;
      margin: 40px auto -40px;
  }
  @media screen and (max-width: 587px){
    .life-bnr{
        margin: 20px auto -20px;
    }
  }


/* add 20220215 */
.low-mv{
    position: relative;
}
.low-mv img{
    max-width: 100%;
    width: 100%;
}
.low-mv .plan-mv-txt{
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%,-50%);
    display: block;
    max-width: 156px;
    min-width: 100px;
    width: 7vw;
}
.low-mv span{
    font-size: 1.1rem;
    color: #fff;
    position: absolute;
    right: 5px;
    bottom: 5px;
}
@media screen and (max-width: 800px){
}

/* access */
#access .area1{
    width: 90%;
    max-width: 960px;
    margin: auto;
    padding-top: 40px;
}
#access .area1 h1{
    font-family: 'EB Garamond', serif;
    text-align: center;
    color: #1b2d58;
    opacity: .7;
    letter-spacing: .2em;
    font-size: 5.5rem;
    border-bottom: 1px solid #1b2d58;
    margin-bottom: 20px;
}
#access .area1 p.cap{
    font-size: 2rem;
    text-align: center;
}
#access .area1 p.p1{
    font-size: 1.6rem;
    line-height: 2;
    text-align: center;
    margin: 60px 0;
}
#access .area1 figure{
    max-width: 750px;
    margin: 0 auto 80px auto;
}
#access .area2{
    margin: 140px 0;
}
#access .area2 ul{
    display: flex;
    justify-content: space-between;
}
#access .area2 li{
    width: 24%;
    position: relative;
}
#access .area2 li span{
    position: absolute;
    color: #fff;
    font-size: 1.1rem;
    right: 10px;
    bottom: 3px;
    text-shadow: 0 0 3px rgba(0,0,0,0.7),0 0 3px rgba(0,0,0,0.7),0 0 3px rgba(0,0,0,0.7),0 0 3px rgba(0,0,0,0.7);
}
#access .area3{
    background: rgba(0,0,0,0.2);
    padding: 95px 0;
}
#access .area3 .a3a{
    width: 90%;
    max-width: 1100px;
    margin: auto;
    background: rgba(255,255,255,0.8);
    border: 1px solid #000;
    padding: 70px 80px;
    box-sizing: border-box;
    display: flex;
    justify-content: space-between;
    align-items: center;
}
#access .area3 dl{
    width: 48%;
    line-height: 1.5;
}
#access .area3 dt{
    font-size: 2.7rem;
    margin-bottom: 20px;
    font-feature-settings: "palt";
}
#access .area3 dd{}
#access .area3 dd dl{
    width: 100%;
}
#access .area3 dd dt{
    font-size: 1.4rem;
    margin-bottom: 0;
}
#access .area3 dd dd{
    font-size: 2.3rem;
    font-feature-settings: "palt";
    letter-spacing: .1em;
    margin-bottom: 10px;
}
#access .area3 dd dd span{
    font-size: 3.4rem;
}
#access .area3 dd dd span em{
    color: #801a26;
}
#access .area3 figure{
    width: 48%;
    position: relative;
}
#access .area3 figcaption{
    position: absolute;
    color: #fff;
    font-size: 1.1rem;
    right: 10px;
    bottom: 3px;
    text-shadow: 0 0 3px rgba(0,0,0,0.7),0 0 3px rgba(0,0,0,0.7),0 0 3px rgba(0,0,0,0.7),0 0 3px rgba(0,0,0,0.7);
}
#access .area4{
    position: relative;
}
#access .area4 figure{}
#access .area4 figcaption{
    text-align: right;
    font-size: 1rem;
    margin: 10px 5px 0 0;
}
#access .area4 .badge{
    position: absolute;
    width: 15vw;
    max-width: 270px;
    right: 330px;
    bottom: 27vw;
}
@media screen and (max-width:1250px) {
    #access .area3 dl{
        width: 49%;
    }
    #access .area3 dt{
        font-size: 2vw;
    }
    #access .area3 dd{}
    #access .area3 dd dl{
        width: 100%;
    }
    #access .area3 dd dt{
        font-size: 1vw;
    }
    #access .area3 dd dd{
        font-size: 1.5vw;
    }
    #access .area3 dd dd span{
        font-size: 3vw;
    }
}
@media screen and (max-width:800px) {
    #access .area1{
        padding-top: 20px;
    }
    #access .area1 h1{
        font-size: 6.5vw;
        margin-bottom: 20px;
    }
    #access .area1 p.cap{
        font-size: 3.5vw;
    }
    #access .area1 p.p1{
        font-size: 3vw;
        margin: 30px 0 50px 0;
    }
    #access .area1 figure{
        margin: 0 auto 40px auto;
    }
    #access .area2{
        margin: 10% 0;
    }
    #access .area2 ul{
        flex-wrap: wrap;
    }
    #access .area2 li{
        width: 49%;
        margin-bottom: 2%;
    }
    #access .area2 li span{
        font-size: 1rem;
    }
    #access .area3{
        background: rgba(0,0,0,0.1);
        padding:10% 0;
    }
    #access .area3 .a3a{
        padding: 5% 7.5%;
        display: block;
    }
    #access .area3 dl{
        width: 100%;
    }
    #access .area3 dt{
        font-size: 4.25vw;
    }
    #access .area3 dd{}
    #access .area3 dd dl{
        width: 100%;
    }
    #access .area3 dd dt{
        font-size: 2.5vw;
    }
    #access .area3 dd dd{
        font-size: 4vw;
    }
    #access .area3 dd dd span{
        font-size: 6vw;
    }
    #access .area3 dd dd span em{
    }
    #access .area3 figure{
        width: 100%;
    }
    #access .area3 figcaption{
        font-size: 1rem;
    }
    #access .area4 figure{}
    #access .area4 figcaption{
        margin: 5px 5px 0 0;
    }
    #access .area4 .badge{
        width: 35vw;
        right: 5vw;
        bottom: 35vw;
    }
}


/* location */
#location .area1{
    width: 90%;
    max-width: 960px;
    margin: auto;
    padding-top: 40px;
}
#location .area1 h1{
    font-family: 'EB Garamond', serif;
    text-align: center;
    color: #1b2d58;
    opacity: .7;
    letter-spacing: .2em;
    font-size: 5.5rem;
    border-bottom: 1px solid #1b2d58;
    margin-bottom: 20px;
}
#location .area1 p.cap{
    font-size: 2rem;
    text-align: center;
}
#location .area1 p.p1{
    font-size: 1.6rem;
    line-height: 2;
    text-align: center;
    margin: 60px 0;
}
#location .area1 figure{
    max-width: 930px;
    margin: 0 auto 140px auto;
}
#location .area1 figcaption{
    font-size: 1.1rem;
    text-align: right;
    margin-top: -3em;
}
#location .area2{
    margin-bottom: 120px;
}
#location .area2 ul.ul1{
    display: flex;
}
#location .area2 ul.ul1 li{
    width: 50%;
    position: relative;
}
#location .area2 ul.ul1 li span{
    font-size: 1rem;
    color: #fff;
    position: absolute;
    left: 20px;
    bottom: 5px;
    text-shadow: 0 0 3px rgba(0,0,0,0.7),0 0 3px rgba(0,0,0,0.7),0 0 3px rgba(0,0,0,0.7),0 0 3px rgba(0,0,0,0.7);
}
#location .area2 ul.ul2{
    display: flex;
}
#location .area2 ul.ul2 li{
    width: 25%;
}
#location .area2 ul.ul2 li span{
    display: block;
    font-size: 1rem;
}
#location .area3{
    width: 90%;
    max-width: 1000px;
    margin: 0 auto 120px auto;
}
#location .area3 dl{
    margin-bottom: 70px;
}
#location .area3 dt{
    font-size: 3rem;
    margin-bottom: 5px;
}
#location .area3 dd{
    font-size: 1.4rem;
}
#location .area3 ul{
    display: flex;
}
#location .area3 li{
    width: 50%;
    position: relative;
}
#location .area3 li span{
    font-size: 1rem;
    color: #fff;
    position: absolute;
    right: 5px;
    bottom: 2px;
    text-shadow: 0 0 3px rgba(0,0,0,0.7),0 0 3px rgba(0,0,0,0.7),0 0 3px rgba(0,0,0,0.7),0 0 3px rgba(0,0,0,0.7);
}
#location .area4{
    width: 90%;
    max-width: 1000px;
    margin: 0 auto 100px auto;
}
#location .area4 h2{
    font-family: 'EB Garamond', serif;
    text-align: center;
    color: #1b2d58;
    opacity: .7;
    letter-spacing: .2em;
    font-size: 5.5rem;
    margin-bottom: 30px;
}
#location .area4 ul.ul1{
    display: flex;
    justify-content: space-between;
    margin-top: 100px;
}
#location .area4 ul.ul1 li{
    width: 45%;
}
#location .area4 ul.ul2{
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
}
#location .area4 ul.ul2 li{
    width: 32%;
    margin-bottom: 60px;
}
#location .area4 ul.ul2 span{
    display: block;
    font-size: 1rem;
    text-align: right;
}
#location .area5{
    padding: 140px 0;
    background-image: url(../images/location/location22.jpg);
    background-size: cover;
    background-position: center center;
}
#location .area5 figure{
    max-width: 840px;
    width: 90%;
    margin: auto;
}
@media screen and (max-width:800px) {
    #location .area1{
        padding-top: 20px;
    }
    #location .area1 h1{
        font-size: 6.5vw;
        margin-bottom: 20px;
    }
    #location .area1 p.cap{
        font-size: 3.5vw;
    }
    #location .area1 p.p1{
        font-size: 3vw;
        margin: 30px 0 50px 0;
    }
    #location .area1 figure{
        margin: 0 auto 40px auto;
    }
    #location .area1 figcaption{
        font-size: 1rem;
        margin-top: -1em;
    }
    #location .area2{
        margin-bottom: 60px;
    }
    #location .area2 ul.ul1{
        display: block;
    }
    #location .area2 ul.ul1 li{
        width: 100%;
    }
    #location .area2 ul.ul1 li span{
        left: auto;
        right: 5px;
        bottom: 5px;
    }
    #location .area2 ul.ul2{
        flex-wrap: wrap;
    }
    #location .area2 ul.ul2 li{
        width: 50%;
        margin-bottom: 5px;
    }
    #location .area2 ul.ul2 li span{
        font-size: 1rem;
        font-feature-settings: "palt";
        text-align: right;
    }
    #location .area3{
        margin: 0 auto 60px auto;
    }
    #location .area3 dl{
        margin-bottom: 50px;
        text-align: center;
    }
    #location .area3 dt{
        font-size: 5vw;
        margin-bottom: 15px;
    }
    #location .area3 dd{
        font-size: 3vw;
    }
    #location .area3 ul{
    }
    #location .area3 li{
    }
    #location .area3 li span{
        font-size: 1rem;
    }
    #location .area4{
        margin: 0 auto 50px auto;
    }
    #location .area4 h2{
        font-size: 6.5vw;
        margin-bottom: 40px;
    }
    #location .area4 ul.ul1{
        display: block;
        margin-top: 50px;
    }
    #location .area4 ul.ul1 li{
        width: 100%;
        margin-bottom: 10%;
    }
    #location .area4 ul.ul2{
    }
    #location .area4 ul.ul2 li{
        width: 48%;
        margin-bottom: 10px;
    }
    #location .area4 ul.ul2 span{
        line-height: 1.5;
    }
    #location .area5{
        padding: 50px 0;
    }
    #location .area5 figure{
        max-width: 840px;
        width: 90%;
        margin: auto;
    }
}
/* map */
.mansion-gallery{
    position: relative;
    font-size: 3rem;
    letter-spacing: -2px;
    margin: 90px 0;
    text-align: center;
}
.mansion-gallery::before {
    content: "";
    position: absolute;
    bottom: -60px;
    left: 50%;
    transform: translate(-50%,0);
    width: 0;
    height: 0;
    border-style: solid;
    border-width: 40px 75px 0 75px;
    border-color: #b81a23 transparent transparent transparent;
}
.mansion-gallery-wrapper{
    max-width: 600px;
    margin: 0 auto;
}
@media screen and (max-width: 767px){
    .mansion-gallery{
        font-size: 1.8rem;
        margin: 40px 0;
    }
    .mansion-gallery::before {
        bottom: -30px;
        border-width: 20px 50px 0 50px;
    }
}
/* brand */
.brand .mv{
    position: relative;
}
.brand .mv .caption{
	position: absolute;
	bottom: 8px;
	right: 8px;
	color: #fff;
    margin: 0.4em 0;
    font-weight: 300;
    font-size: 1.2rem;
    line-height: 1.4;
}
.brand-bg{
	background: rgb(245, 245, 245);
}
.brand .general-section .inner{
	max-width: 1000px;
}
.brand .txt-img{
	max-width: 600px;
	margin: 80px auto 26px;
}
.brand .mv-text {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%,-50%);
    font-size: 4.5rem;
    color: #fff;
    text-shadow: 0px 0px 9px #000;
    letter-spacing: .2em;
    text-align: center;
}
@media screen and (max-width: 800px){
	.brand .general-section .inner {
		padding: 32px 0 0;
	}
	.brand .area3{
		margin: 0 -16px;
	}
}