@charset "UTF-8";

/*-----------------------------------------------------
html
-------------------------------------------------------*/
html, body{
	margin: 0;
	padding: 0;
	margin-left:auto;
	margin-right:auto; 
	font-size: var(--base);
	font-family: "Noto Sans JP","ヒラギノ角ゴ Pro W3","Yu Gothic Medium","游ゴシック Medium",YuGothic,游ゴシック体,メイリオ,sans-serif;
	color: #333333;
	line-height: 1.0;
	letter-spacing: .1em;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    -webkit-font-feature-settings: 'palt';
    font-feature-settings: 'palt';
	z-index: -9999;
    box-sizing: border-box;
    text-align: left;
	position: relative;
}

a{
    text-decoration: none !important;
}


#container{
}

img {
    image-rendering: -webkit-optimize-contrast;
}


/*-----------------------------------------------------
root
-------------------------------------------------------*/

:root {
    
/*font-size*/    
font-size: 62.5% !important;
--base: 1.8rem;
--s10: 1.0rem;
--s12: 1.2rem;
--s13: 1.3rem;
--s14: 1.4rem;    
--s15: 1.5rem; 
--s16: 1.6rem;
--s17: 1.7rem;    
--s18: 1.8rem;
--s20: 1.9rem;
--s22: 2.2rem;
--s24: 2.4rem;    
--s26: 2.6rem;     
--s28: 2.8rem;     
--s32: 3.2rem;
--s38: 3.8rem;
--s40: 4.0rem;
--s42: 4.2rem;
--s44: 4.4rem;
    
--imgh: 34vw; 
	
/*line-height*/    
--lh12: 1.2;
--lh14: 1.4;
--lh16: 1.6;
--lh18: 1.8;
--lh20: 2.0;
--lh24: 2.4;
    
/*color*/
--color1: #CC0001;
--color2: #C99E61;
}

/*-----------------------------------------------------
global
-------------------------------------------------------*/
.g_only_pc{
    display: block;
}

.g_only_tb{
    display: block;
}

.g_only_sp{
    display: none !important;
}

.g_only_pc_in{
    display: inline-block;
}

.g_w1240{
	max-width: 1240px;
	margin: 0 auto;
}

.g_w1100{
	max-width: 1100px;
	margin: 0 auto;
}

.g_w1000{
	max-width: 1000px;
	margin: 0 auto;
}

.g_w900{
	max-width: 900px;
	margin: 0 auto;
}

.g_w800{
	max-width: 800px;
	margin: 0 auto;
}

.g_t1{
	text-align: center;
}

.g_t1 h2{
	font-size: var(--s32);
	font-weight: 500;
	font-family: 'notoSerifJP', serif;
}

.g_t1 h3{
	font-size: var(--s26);
	font-weight: 500;
	font-family: 'notoSerifJP', serif;
}


.g_t1vc h2{
	font-size: var(--s40);
	font-weight: 500;
	font-family: 'notoSerifJP', serif;
	writing-mode: vertical-rl;
	text-align: left;
	letter-spacing: 6px;
	line-height: 1.0;
}

.g_t1vc h2 span.s1{
	font-size: var(--s22);
	display: block;
	padding-right: 10px;
	letter-spacing: 4px!important;
	margin-top: 4px;
}

.g_t2{
	font-family: 'notoSerifJP', serif;
  	display:flex;
	justify-content: flex-start;
	align-items: flex-end;
	gap: 20px;
}

.g_t2 h2{
	font-size: var(--s40);
	font-weight: 500;
}

.g_t2 span{
	font-size: var(--s16);
}


.g_btn a {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-size: var(--s20);
  text-decoration: none;
  cursor: pointer;
  transition: opacity 0.3s ease;
}

.g_btn a:hover {
  opacity: 0.7;
}

.g_btn img {
  width: 80px;
  height: auto;
  transition: transform 0.6s ease;
}

.g_btn a:hover img {
  animation: btnLineHover 0.6s ease;
}

@keyframes btnLineHover {
  0%   { transform: translateY(0); }
  50%  { transform: translateX(10px); }
  100% { transform: translateY(0); }
}

.g_btn:hover{
    opacity: 0.7;
}

.g_mb_a{
    margin-bottom: 26px;
}

.g_mb_b{
    margin-bottom: 36px !important;
}

.g_mb_c{
    margin-bottom: 46px !important;
}


/*-----------------------------------------------------
header
-------------------------------------------------------*/

#header{
	height: 100px;
	width: 100%;
	padding: 0 36px;
	display: flex;
	justify-content: space-between;
    align-items: center;
}


.header_logo{
    width: 340px;
    height: auto;
}

.header_cont{
	display: flex;
	justify-content: flex-start;
    align-items: center;
	gap: 0 28px;
}


.header_mark{
    width: 180px;
    height: auto;
}

.header_contact{
    width: 240px;
}

.header_contact a{
    width: 100%;
}

.header_contact span{
	font-size: var(--s12);
	display: block;
	padding: 6px 0 0;
}

/*-----------------------------------------------------
mv
-------------------------------------------------------*/

#mv{
	width: 100%;
	background: #F2FEF8;
	position: relative;
}

.mv_img{
	width: 100%;
	height: 700px;
	padding: 60px 0;
	text-align: center;
}

.mv_img img{
	height: 100%;
}

.mv_character{
    position: absolute;
    bottom: -42px;
	right: 60px;
    width: 14vw;
}

.mv_text{
    position: absolute;
    top: 50%;
    left: 60px;
    transform: translateY(-50%);
    width: 27vw;
}

/*-----------------------------------------------------
box1
-------------------------------------------------------*/

.box1 {
	padding: 70px 0 100px 0;
	z-index: 1;
	text-align: center;
}

.box1 .g_t1{
	margin-bottom: 40px;
	line-height: var(--lh16);
}

.box1_text{
	text-align: center;
	line-height: var(--lh20);
}

.box1_contact{
	max-width: 860px;
	margin: 0 auto 60px;
	text-align: center;
	border: 1px solid #ddd;
	border-radius: 8px;
	padding: 34px 0;
}

.box1_contact .text{
	margin-bottom: 16px;
	display: block;
}

.box1_contact .tel{
	font-size: var(--s38);
    display: block;
    margin-bottom: 16px;
}

.box1_contact .tel .s{
	font-size: var(--s24);
}

.box1_contact .tel a{
	display: inline-block;
}

.box1_contact .time{
	display: block;
	font-size: var(--s15);
}
/*-----------------------------------------------------
news_top
-------------------------------------------------------*/
.news_top{
	padding: 80px 0 160px 0;
	background: url("../../images/index/line_logo.svg") repeat-x;
	background-size: 2000px;
}

.news_top .wrap{
  	display:flex;
    justify-content: space-between;
}

.news_top_left{
	width: 38%;
}

.news_top_left p{
	line-height: var(--lh18);
	padding: 40px 0 26px 0;
}

.news_top_right{
	width: 54%;
}

.news_top_right ul{
  	display:flex;
  	flex-direction: column;
	gap: 40px;
}

.news_top_right ul li a{
  	display:flex;
    justify-content: space-between;
}

.news_top_right ul li .img{
	width: 36%;
}

.news_top_right ul li .text{
	width: 56%;
}

.news_top_right ul li .text .time{
	font-size: var(--s14);
	display: block;
	margin-bottom: 12px;
}

.news_top_right ul li .text .t{
	display: block;
	line-height: var(--lh16);
}



/*-----------------------------------------------------
box2（背景と全体）
-------------------------------------------------------*/
.box2{
	padding: 120px 0;
	background: url("../../images/index/bg2.jpg") no-repeat center center;
	background-size: cover;
	position: relative;
	overflow: hidden;
	z-index: 2;
	color: #fff!important;
}

.box2 .g_btn a{
	color: #fff;
}

.box2 .g_btn img{
	filter: brightness(0) invert(1);
}

.box2 .g_btn{
	margin: 0 auto 0 0;
}


.hzscroll{
	display:flex;
	flex-wrap:wrap;
	align-items:center;
	margin:0 0 0 7.5%;
	z-index: 3;
	position: relative;
}
.hzscroll_left{
	width:30%;
}

.hzscroll_left .wrap{
	max-width: 280px;
	margin: 0 auto;
	display:flex;
	justify-content: center;
	flex-wrap: wrap;
	text-align: center;
	gap: 36px;
}

.hzscroll_left p{
	line-height: var(--lh18);
	text-align: left;
	margin-bottom: 20px;
}



/*-----------------------------------------------------
swiperスライド部分
-------------------------------------------------------*/
.hzscroll_slide{
  width:70%;
  position:relative;
}

.hzscroll_swiper{
  overflow:hidden;
  padding-bottom:80px;
}

.hzscroll_slide .swiper-wrapper{
  display:flex;
  align-items:flex-start;
}

.hzscroll_slide .swiper-slide{
	width:47%;
	flex-shrink:0;
}

.hzscroll_slide .swiper-slide:last-child {
  margin-right: 46%;
}

.hzscroll_slide .swiper-slide img{
	display:block;
	width:100%;
	height:auto;
}

.hzscroll_slide .swiper-slide h3{
	font-size: var(--s24);
	line-height: var(--lh16);
	padding-top:26px;
	padding-bottom: 12px;
	font-family:'Noto Serif JP', serif;
	color: var(--color2);
}

.hzscroll_slide .swiper-slide .price{
  	display:flex;
  	flex-direction: column;
	gap: 10px 0;
}

.hzscroll_slide .swiper-slide .price p{
	font-size: var(--s24);
	color: #fff!important;
}

.hzscroll_slide .swiper-slide .price p span.text{
	font-size: var(--s17);
	display: inline-block;
	margin-right: 10px;
}

.hzscroll_slide .swiper-slide .price p span.tax{
	font-size: var(--s14);
}


.swiper-scrollbar{
	position:absolute;
	bottom: 0;
	left: 0;
	width:220px;
	height:1px;
	background:#fafafa;
}

.swiper-scrollbar-drag{
	position: absolute;
	height:3px;
	background: var(--color2);
	top: -1px;
	left: 0;
	cursor:grab;
}
.swiper-scrollbar-drag:active{
	cursor:grabbing;
}


/*-----------------------------------------------------
box3
-------------------------------------------------------*/
.box3{
	padding: 120px 0 200px 0;
}

.box3 .swiper-slide{
	width:40%;
	flex-shrink:0;
}

.box3 .swiper-scrollbar{
	background:#ccc;
}

.box3 .hzscroll_slide .swiper-slide .price p{
	color: #000!important;
}


/*-----------------------------------------------------
box4
-------------------------------------------------------*/
.box4{
	padding: 120px 0 120px 0;
	position: relative;
	text-align: center;
	background: url("../../images/index/bg.jpg") repeat;
}


.box4_list{
	margin-bottom: 60px;
}

.box4_list .g_t1{
	margin-bottom: 46px;
}

.box4_list ul{
    display: flex;
    justify-content: space-between;
  	flex-wrap: wrap;
	gap: 20px 0;
}

.box4_list ul li{
	width: 18%;
}

.box4_list ul li span{
	padding-top: 10px;
	display: block;
	text-align: center;
	font-size: var(--s20);
	font-family: 'notoSerifJP', serif;
}



/*-----------------------------------------------------
box5
-------------------------------------------------------*/
.box5{
	padding: 100px 0 100px 0;
}

.box5_list{
}

.box5_list ul{
    display: flex;
    justify-content: space-between;
  	flex-wrap: wrap;
}

.box5_list ul li{
	width: 31%;
	padding: 6px;
	border-radius: 6px;
	background: #333333;	
}

.box5_list ul li span{
	padding: 10px 0;
	display: block;
	text-align: center;
	color: #fff;
}


/*-----------------------------------------------------
scene
-------------------------------------------------------*/
.scene{
	padding: 0 0;
	text-align: center;
}

.scene .wrap{
	background: #F5F5F5;
	padding: 80px;
	background: url("../../images/index/bg.jpg") repeat;
}

.scene_list{
	margin: 0 0 46px;
	text-align: left;
}

.scene_list .g_t1{
	text-align: center;
	margin-bottom: 40px;
}

.scene_list ul{
	display:flex;
    justify-content: center;
	margin: 0 auto 26px;
}

.scene_list ul li{
	border-right: 1px solid #ccc;
	padding: 0 26px;
	font-weight: bold;
}

.scene_list ul li:last-child{
	border-right: none;
}

.scene_text{
	display: flex;
    justify-content: center;
}

.scene_list p{
	line-height: var(--lh24);
}

.scene_list p span{
	font-weight: bold;
}

/*-----------------------------------------------------
box6
-------------------------------------------------------*/
.box6{
	padding: 140px 0 200px 0;
}

.box6 .wrap{
	text-align: center;
}

.box6 .g_t1{
	margin-bottom: 50px;
}

.box6 .wrap{
	display:flex;
    justify-content: space-between;
	align-items: flex-end;
}

.box6 .box6_tbox{
	display: flex;
  	flex-direction: column;
	gap : 20px;
}


.box6_t{
	display:flex;
    align-items: center;
	gap: 30px;
}

.box6_t h3{
	width: 70px;
	text-align: left;
    font-size: var(--s32);
	font-weight: 500;
    font-family: 'notoSerifJP', serif;
	border-right: 1px solid #ccc;
}


.box6_floor{
	margin-bottom: 40px;
}


.box6_floor ul {
  	display:flex;
 	flex-wrap: wrap;
	justify-content: flex-start;
	gap: 20px 20px;
}

.box6_floor li {
	border-right: 1px solid #ccc;
	padding-right: 20px;
}


.box6_floor li:last-child{
	border-right: none;
}

.flow_block{
	width: 100%;
	position: relative;
	margin-bottom: 60px;
}

.box6_layout{
	margin-bottom: 30px;
	overflow: hidden;
}

.flow_swiper .swiper-wrapper{
  display:flex;
  align-items: stretch;
}

.flow_swiper .swiper-slide{
	width: 40%;
	flex-shrink: 0;
	padding: 0 10px;
}

.flow_swiper img{
  width: 100%;
  height: auto;
  display: block;
}

.flow_pagination{
	position: static !important;
	display: flex;
	justify-content: center;
	gap: 12px;
}
.flow_pagination .swiper-pagination-bullet{
	width: 16px; 
	height: 2px;
	border-radius: 6px;
	background: #ddd;
	opacity: 1;
}
.flow_pagination .swiper-pagination-bullet-active{
    background: var(--color2);
}
/*-----------------------------------------------------
cta
-------------------------------------------------------*/
.cta{
	padding: 60px 0 60px;
    position: relative;
    overflow: hidden;
    z-index: 2;
	background: #fafafa;
}

.cta .wrap{
	max-width: 1100px;
	margin: 0 auto;
}


.cta dl{
  	display:flex;
    justify-content: space-between;
    align-items: center;
}

.cta dl dt{
	width: 50%;
}

.cta dl dd{
	width: 42%;
}

.cta .cta_logo{
	width: 190px;
	margin-bottom: 30px;
}

.cta p span.tel{
	font-size: var(--s32);
	display: block;
	margin-bottom: 32px;
}

.cta p span.tel .s{
	font-size: var(--s24);
}

.cta p span.tel a{
	display: inline-block;
}

.cta p span.ad{
	font-size: var(--s22);
	display: block;
	margin-bottom: 20px;
}

.cta p .map a{
    display: inline-block;
	border-bottom: 1px solid #ddd;
	margin-bottom: 32px;
}

.cta .map a span{
    display: inline-block;
    margin-left: 6px;
}

.cta .map a img{
	width: 16px;
}

.cta p span.ad span{
	font-size: var(--s20);
	display: block;
	margin-top: 16px;
}

.cta p span.time{
	display: block;
	margin-bottom: 32px;
}


.cta p.text{
	line-height: var(--lh18)!important;
}

/*-----------------------------------------------------
footer
-------------------------------------------------------*/
#footer_box{
    padding: 120px 0px 60px;
	background: #333;
	color: #fff;
}

.footer_logo{
	width: 250px;
	margin: 0 auto 80px;
}


.footer_nav{
    margin-bottom: 100px;
    display: flex;
    justify-content: space-between;
    font-size: var(--s16);
}


.footer_nav .footer_link{
	width: 20%;
}

.footer_nav ul {
  	display:flex;
  	flex-direction: column;
	gap: 16px;
}

.footer_nav ul li a{
	color: #fff;
	display: inline-block;
}

.footer_nav ul li.t{
	font-weight: bold;
}

.footer_sub{
	border-top: 1px solid #ddd;
	border-bottom: 1px solid #ddd;
	padding: 30px 0;
}

.footer_sub ul{
  	display:flex;
    justify-content: center;
}

.footer_sub ul li{
	padding: 0 24px;
	border-right: 1px solid #ddd;
    font-size: var(--s15);
}

.footer_sub ul li a{
	color: #fff;
}

.footer_sub ul li:last-child{
	border-right: none;
}

.footer_copyright{
	padding-top: 60px;
    text-align: center;
    font-size: var(--s13);
	line-height: var(--lh16);
}


/*-----------------------------------------------------
page-top
-------------------------------------------------------*/

#page_top {
    position: fixed;
    bottom: 32px;
    right: 30px;
	z-index: 79;
    display: none;	
	
}


#page_top.active{
    display: block;
    transition: 1s all;     
}

#page_top.is-stuck {
  position: absolute;
  bottom: auto;
}

#page_top a{
    width: 50px;
    height: 50px;
    display: flex;
    align-items: center;
    justify-content: center;
	background: #222;
    border-radius: 100px;
    opacity: 0.8;
}

#page_top a:hover{
    text-decoration: none;
    opacity: 0.6;
}

#page_top a img{
	width: 16px;
}

/*-----------------------------------------------------
reCAPTCHA
-------------------------------------------------------*/
.grecaptcha-badge { visibility: hidden; }

.recaptcha{
    margin: 54px auto 15px;
    border: 1px solid #cccccc;
    padding: 20px;
    border-radius: 4px;
    width: 100%;
    text-align: center;
}

.recaptcha p{
  font-size:12px;
  color:#808080;
  line-height: 1.75;
}

.recaptcha a{
  display: inline;
  text-decoration: underline;
  color:#808080;
}

.recaptcha span{
    display: block;
    color: #222222;
}


/*-----------------------------------------------------
translate
-------------------------------------------------------*/
#gt-nvframe{
    display: none;
}

