
body{
	font-size: var(--base-font-size);
	background: var(--base-color);
	color: var(--base-text-color);
	font-family: var(--base-font-family);
	font-weight: 400;
	text-align:justify;
	padding-bottom: 200px;
	font-variant-east-asian: proportional-width;
	-moz-font-feature-settings: "pwid";
	-webkit-font-feature-settings: "pwid";
	font-feature-settings: "pwid";
	font-feature-settings: "palt";
}


@media screen and (max-width: 767px) {
  main {overflow: hidden;}
}



a,
a:link,
a:visited,
a:active{
	color:var(--base-text-color);
	text-decoration: none;
}

a img{transition: opacity .4s;}
a:hover img{opacity: .6;}


.pc {
	display: block;
}
.tb,
.sp {
	display: none;
}


.inline_sp {
  display: none;
}

@media screen and (max-width: 950px) {
  .tb {display: block;}
}
@media screen and (max-width: 767px) {
  .sp_erace,
  .pc,
  .tb {display: none;}
  .sp {display: block;}
  .inline_sp {display:inline;}
  .inline_pc {display:none;}
}


/* --[コンテンツサイズ]---------------------*/
.max-width1720 {
  width: 100%;
	max-width: 1720px;
  margin-left: auto;
  margin-right: auto;
}
.max-width1080 {
  width: 94%;
	max-width: 1080px;
  margin-left: auto;
  margin-right: auto;
}
.max-width1000 {
  width: 94%;
	max-width: 1000px;
  margin-left: auto;
  margin-right: auto;
}

/* --/[コンテンツサイズ]---------------------*/


/* ----- [text] -----*/
sup {
  font-size: 60%;
}

.text_black {color:#000!important;}
.text_white {color:#fff!important;}

.txt_R {text-align:right}
.txt_L {text-align:left}

.text_l {font-size: 1.125rem;}/*18px*/
.text_m {font-size:     1rem;}/*16px*/
.text_s {font-size: 0.875rem;}/*14px*/
   .ann {font-size: 0.75rem; letter-spacing: 0;}/*12px caption*/

large {font-size:150%;}
small {font-size: 92%;}

.letter-sp0{letter-spacing: 0!important;}

@media screen and (max-width: 767px) {
.text_l {font-size: clamp(    1rem,  0.84rem + 0.85vw,  1.25rem);}/*20px*/
.text_m {font-size: clamp(0.875rem, 0.715rem + 0.85vw, 1.125rem);}/*18px*/
.text_s {font-size: clamp( 0.75rem,  0.59rem + 0.85vw,     1rem);}/*16px*/
	 .ann {font-size: 2.67vw;}/*12px caption*/
}
/* ----- [text] -----*/


/* ----- [topIMG ヘッドイメージ] -----*/

@media screen and (max-width: 767px) {
  #topIMG {
    overflow: hidden;
  }
  #topIMG img {
    height: 60vw;
    width: auto;
    max-width: none;
  }
}

/* ----- /[topIMGヘッドイメージ] -----*/


/* ----- [figure] -----*/
figure {
	position: relative;
}

figure figcaption {
	position: absolute;
	bottom: 0.5%;
	z-index: 10;
}
figure figcaption.lb_type {
	left: 5px;
	color:#000;
	text-shadow: 0px 0px 3px rgba(255, 255, 255, 1);
}
figure figcaption.lw_type {
	left: 5px;
	color:#fff;
	text-shadow: 0px 0px 3px rgba(0, 0, 0, 1);
}
figure figcaption.rb_type {
	right: 5px;
	color:#000;
	text-shadow: 0px 0px 3px rgba(255, 255, 255, 1);
}
figure figcaption.rw_type {
	right: 5px;
	color:#fff;
	text-shadow: 0px 0px 3px rgba(0, 0, 0, 1);
}

/* ----- [figure] -----*/



/* ----- [pageCaption] ----- */

.pageCaption{
	width:90%;
	max-width: 1080px;
	margin:100px auto 0;
}
.pageCaption.contentCaption {
  width: 100%;
	margin:min(4vw , 41px) auto 0;
}

.pageCaption ul{
	font-size:0.75rem;
	text-align: justify;
	padding: 1em;
	text-indent: -1em;
}

@media screen and (max-width: 1280px) {
	.pageCaption i {
		font-size:1.1718vw;
	}
}
@media screen and (max-width: 767px) {
	.pageCaption{
		margin:40px auto 0;
	}
	.pageCaption li{
		font-size: 2.6667vw;
	}
}
/* ----- /[pageCaption] ----- */





/* ----- [header] ----- */
header{
	width:100%;
	display: flex;
	align-items: center;
	height: 80px;
	padding: 0 36px;
	position: fixed;
	top:0;
	left:0;
	z-index:999;
	background-image: linear-gradient(0deg, rgba(255, 255, 255, 0), rgba(0, 0, 0, 1));
}

header .headerInner{
	width:100%;
	display:flex;
	justify-content: space-between;
	align-items: center;
}

.headerLogo img {
	height: 58px;
	width: auto;
}

/* メニューボタン */
.menuBtn{
	position: relative;
	width: 30px;
	height:30px;
	cursor: pointer;
}

.menuBtn span{
	display: block;
	transition: all .4s;
	position: absolute;
	left: 0;
	height: 1px;
	background: var(--menuBtn-color);
	width: 100%;
}

.menuBtn span:nth-of-type(1) {
	top:6px; 
}

.menuBtn span:nth-of-type(2) {
	top:14px;
}

.menuBtn span:nth-of-type(3) {
	top:22px;
}

.headerRight {
	display: flex;
}
.headerLinks {
	display: flex;
	align-items: center;
	font-size: 0.8rem;
	letter-spacing: 0.4em;
}
.headerLinks li {
	margin-right: 1.8em;
}
.headerLinks a {
	transition: 0.4s;
}
.headerLinks a.headerLinksBox {
	background-color: #605336;
	border: 1px solid rgba(255,255,255,0.5);
	padding: 0.2em 0.5em 0.2em 1em;
}
.headerLinks a[tabindex="-1"].headerLinksBox {
	color: #ccc;
	background-color: #666;
}
.headerLinks li a:hover {
	color:#ff0;
}
.headerLinks a:not([tabindex="-1"]).headerLinksBox:hover {
	background-color: #ccbbaa;
	color:#333;
}

/* -- メニューを開く --*/

body.menuOpen .menuBtn span:nth-of-type(1) {
	top: 14px;
	left: 4px;
	transform: rotate(-45deg);
	transform-origin: center center;
	width: 70%;
}

body.menuOpen .menuBtn span:nth-of-type(2) {
	opacity: 0;
}

body.menuOpen .menuBtn span:nth-of-type(3){
	top: 14px;
	left: 4px;
	transform: rotate(45deg);
	transform-origin: center center;
	width: 70%;
}


@media screen and (max-width: 1100px) {
  .headerLinks {
    letter-spacing: 0.1em;
  }
}


@media screen and (max-width: 1000px) {
	.headerLinks {
		display: none;
	}
}
@media screen and (max-width: 767px) {
	header{
		padding:15px 20px;
	}

	header .headerLeft{
		max-width: calc(100% - 84px);
	}

}

/* ------------*/

/*　上に上がる動き　*/

.headerLinks.UpMove, .headerLogo.UpMove{
	animation: UpAnime 0.5s forwards;
}

@keyframes UpAnime{
	0% {
		opacity: 1;
		transform: translateY(0);
	}
	99.999% {
		opacity: 0;
		transform: translateY(-40px);
	}
	100% {
		opacity: 0;
		transform: translateY(-500px);
	}
}


/*　下に下がる動き　*/

.headerLinks.DownMove, .headerLogo.DownMove{
	animation: DownAnime 0.5s forwards;
}

@keyframes DownAnime{
	from {
		opacity: 0;
		transform: translateY(-40px);
	}
	to {
		opacity: 1;
		transform: translateY(0);
	}
}


/* ----- /[header] ----- */


/* ----- [ナビゲーション] ----- */
#gnavWrap{
	width:100%;
	height: 100%;
	position: fixed;
	background: var(--base-color);
	display:flex;
	justify-content: center;
	align-items: center;
	z-index:900;
	opacity: 0;
	pointer-events: none;
	transition: .4s;
	top: 0;
	margin: 0;
}

#gnavWrap #gnavInner{
	width:90%;
	max-width: 1000px;
	max-height: calc(100% - 160px);
	overflow-y: auto;
  scrollbar-width: thin;
}

#gnavWrap #gnavInner .gnav-main{
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	flex-wrap: wrap;
}

#gnavWrap #gnavInner .gnav-main li{
	width:48.2%;
	border-bottom:1px solid #FFF;
	position: relative;
}
#gnavWrap #gnavInner .gnav-main li p.new {
	position: absolute;
	top:0;
	left: 0;
	width: 6%;
}


#gnavWrap #gnavInner .gnav-main li a{
	display: block;
	padding:13px 16px;
	letter-spacing: 2px;
	transition: .4s;
}

#gnavWrap #gnavInner .gnav-main li a span{
	display: block;
}

#gnavWrap #gnavInner .gnav-main li a span.jp{
	font-size: 1.125rem;
}

#gnavWrap #gnavInner .gnav-main li a span.en{
	font-size: 0.625rem;
}

#gnavWrap #gnavInner .gnav-main li.nonactive a{
	pointer-events: none;
	opacity: .4;
}

#gnavWrap                #gnavInner .gnav-main li a:not([tabindex="-1"]):hover,
body#top       #gnavWrap #gnavInner .gnav-main li[data-page="top"] a,
body#concept   #gnavWrap #gnavInner .gnav-main li[data-page="concept"] a,
body#position  #gnavWrap #gnavInner .gnav-main li[data-page="position"] a,
body#location  #gnavWrap #gnavInner .gnav-main li[data-page="location"] a,
body#access    #gnavWrap #gnavInner .gnav-main li[data-page="access"] a,
body#design    #gnavWrap #gnavInner .gnav-main li[data-page="design"] a,
body#plan      #gnavWrap #gnavInner .gnav-main li[data-page="plan"] a,
body#quality   #gnavWrap #gnavInner .gnav-main li[data-page="quality"] a,
body#modelroom #gnavWrap #gnavInner .gnav-main li[data-page="modelroom"] a,
body#brand     #gnavWrap #gnavInner .gnav-main li[data-page="brand"] a{
	background: rgba(255,255,255,.2);
}
#gnavWrap                #gnavInner .gnav-main li a[tabindex="-1"] {
  opacity: 0.4;
}

#gnavWrap #gnavInner .gnav-sub{
	margin-top:35px;
	display: flex;
	justify-content: flex-start;
	align-items: center;
	flex-wrap: wrap;
	column-gap: 60px;
	grid-row-gap: 30px;
}

#gnavWrap #gnavInner .gnav-sub li a{
	display: flex;
	justify-content: flex-start;
	align-items: center;
	padding:0 10px;
	font-size: 1.125rem;
	transition: .4s;
}

#gnavWrap #gnavInner .gnav-sub li a img{
	margin-right:15px;
}

#gnavWrap #gnavInner .gnav-cv{
	border-top:1px solid #FFF;
	margin-top:35px;
	padding-top:38px;
	display: flex;
	justify-content: center;
	align-items: center;
	column-gap: 35px;
}

#gnavWrap #gnavInner .gnav-cv li{
	width:calc(50% - 18px);
	max-width: 336px;
}

#gnavWrap #gnavInner .gnav-cv li a{
	display: flex;
	justify-content: center;
	align-items: center;
	font-size: 1.25rem;
	letter-spacing: 4px;
	background: #605336;
	padding:18px;
	transition: .4s;
}
#gnavWrap #gnavInner .gnav-cv li a[tabindex="-1"]{
	background: #666;
  color: #ccc;
}
#gnavWrap #gnavInner .gnav-cv .raijo {
	position: relative;
}
#gnavWrap #gnavInner .gnav-cv .raijo .jp2 {
	position: absolute;
	top: 12%;
	left: 0;
	display: block;
	width: 100%;
	text-align: center;
	font-size: 0.875rem;
}
#gnavWrap #gnavInner .gnav-sub li a:hover{
	opacity: .6;
}
#gnavWrap #gnavInner .gnav-cv li a:not([tabindex="-1"]):hover{
	background: #cba;
  color: #333;
}

#gnavWrap #gnavInner .gnav-sub li a:hover img{
	opacity: 1;
}

body.menuOpen #gnavWrap{
	opacity: 1;
	pointer-events: auto;
}


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

	#gnavWrap{
		padding:74px 20px 20px;
		display: block;
	}

	#gnavWrap #gnavInner{
		max-height: 100%;
		width:100%;
	}

  #gnavWrap #gnavInner .gnav-main{
    flex-direction: column;
  }

	#gnavWrap #gnavInner .gnav-main li {
    width: 100%;
  }
	#gnavWrap #gnavInner .gnav-main li a{
		padding:7px 10px 5px 28px;
	}

	#gnavWrap #gnavInner .gnav-main li p.new {
		width: 10%;
	}

	#gnavWrap #gnavInner .gnav-main li a span.jp{
		font-size: 1.0rem;
	}

	#gnavWrap #gnavInner .gnav-sub{
		justify-content: space-between;
		column-gap: 0;
	  margin-top:15px;
	}

	#gnavWrap #gnavInner .gnav-sub li{
		width: 48.2%;
	}

	#gnavWrap #gnavInner .gnav-sub li a{
		font-size: 1.0rem;
	}

	#gnavWrap #gnavInner .gnav-cv{
		border-top:none;
		margin-top:20px;
		padding-top:0;
		display: block;
	}

	#gnavWrap #gnavInner .gnav-cv li{
		width:100%;
		max-width: inherit;
	}

	#gnavWrap #gnavInner .gnav-cv li:not(:first-child){
		margin-top:15px;
	}

  #gnavWrap #gnavInner .gnav-cv li a{
    padding:7px;
  }
}

/*画面縦サイズで調整*/
@media screen and (max-height: 780px)and (min-width: 768px)  {
  #gnavWrap #gnavInner .gnav-main li a{
    display: block;
    padding:3px 16px;
    letter-spacing: 2px;
    transition: .4s;
  }
  #gnavWrap #gnavInner .gnav-sub {
    margin-top: 10px;
  }
  #gnavWrap #gnavInner .gnav-cv {
    margin-top: 10px;
    padding-top: 10px;
  }
  #gnavWrap #gnavInner .gnav-cv li a {
    padding: 4px;
  }
}
/* ----- /[ナビゲーション] ----- */



/* ----- [フッター] ----- */
footer{
	margin-top:75px;
}


footer .contact{
	margin-top:45px;
	text-align: center;
}

footer .contact a.contact_tel{
	display: inline-block;
	font-size: 4.3rem;
	margin-top:-0.2em;
	font-weight: 200;
}
footer .contact a.contact_mail{
	display: inline-block;
	font-size: 1.8rem;
	margin-top:0.3em;
	font-weight: 200;
}
footer .contact a.contact_mail img {
  display: inline-block;
  height: 1.4rem;
  width: auto;
  vertical-align:baseline;
  margin-right: 0.3rem;
}
footer .contact a.contact_mail:hover span{
  opacity: 0.7;
  transition: .3s;
}


footer .company-logo{
	margin-top:30px;
	padding-top: 2em;
	border-top:1px solid rgba(255,255,255,0.5);
}

footer .company-logo ul{
	margin-top:15px;
	display: flex;
	justify-content: center;
	align-items: center;
	flex-wrap: wrap;
	gap:30px;
}

footer .company-logo ul li{
	width:calc(50% - 15px);
	max-width: 240px;
}

footer .company-logo ul li img{
	width:100%;
	height: auto;
}

footer .copyright{
	margin-top:3em;
	font-size:clamp(0.625rem, 0.375rem + 1.07vw, 0.875rem);
	text-align: center;
}


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

	footer .company-logo ul{
		gap:20px;
		padding:0 5%;
	}

	footer .company-logo ul li{
		width:calc(50% - 10px);
	}

	footer .contact a.contact_tel{
		font-size: 14vw;
	}
	footer .contact a.contact_mail{
		font-size: 5vw;
	}
  footer .contact a.contact_mail img {
    height: 4vw;
  }
	footer .contact-inf {
		font-size: 3.2vw;
	}

	footer .copyright{
		font-size:clamp(0.625rem, 0.375rem + 1.07vw, 0.875rem);
	}

}
/* ----- /[フッター] ----- */




/* ----- [ページトップへのボタン] ----- */

button.pagetop {
	height: 50px;
	width: 50px;
	position: fixed;
	right: 30px;
	bottom: 1vw;
	color:#FFF;
	background: rgba(0, 0, 0, 0.4);
	border: solid 2px #FFF;
	border-radius: 50%;
	display: none;
	justify-content: center;
	align-items: center;
	z-index: 998;
	cursor: pointer;
	opacity:0.5;
}
.pagetop__arrow {
	display: block;
	height: 20px;
	width: 20px;
	border-top: 3px solid #FFF;
	border-right: 3px solid #FFF;
	transform: translateY(20%) rotate(-45deg);
}

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

	button.pagetop {
		height: 35px;
		width: 35px;
		bottom: 3vh;
		right: 3vw;
	}
	.pagetop__arrow {
		height: 12px;
		width: 12px;
	}
}

/* ----- /[ページトップへのボタン] ----- */



/* ----- [スマホ・タブレットのタップ領域のハイライト対応] ----- */
@media screen and (max-width: 767px) {
	* {
		-webkit-tap-highlight-color: rgba(0,0,0,0);
	}
}
/* ----- /[スマホ・タブレットのタップ領域のハイライト対応] ----- */


/* ----- [スライダー用] ----- */
.slider-wrapper {
  width: 94vw;
  margin-top: min(5vw , 96px);
}
.slider-wrapper li {
  transform: scale(0.95);
}
/* ----- /[スライダー用] ----- */






/* 以下、コンテンツ部------------------------------------------------------------------------------------------ */


.contentWrap {
	width: 100%;
	background-image: url("../img/common/contentBG.jpg");
	background-size: 100% auto;
	background-repeat: repeat-y;
	/*background-attachment: fixed;*/
  padding-bottom: min(10vw , 192px)
}





/* コンテンツヘッド*/
.contentHead {
  text-align: center;
  text-shadow: 0 0 8px #000;
  margin-bottom:min(10vw , 192px);
  padding-top:min(5vw , 86px);
}
.contentHead_br {
  display: none;
}
.contentHead_h1 > span {
  display: inline-block;
  font-size: min(5.37vw , 58px);
  letter-spacing: 0.1em;
  transform: translateX(-0.05em);
  margin-bottom: 0.7em;
}
.contentHead_cat > span {
  display: inline-block;
  font-size: min(2.6vw , 28px);
  letter-spacing: 0.4em;
  transform: translateX(-0.2em);
  margin-bottom: 2em;
}
.contentHead_txt p {
  line-height: 2.8em;
  letter-spacing: 0.1em;
  margin-bottom: 1.5em;
}

.contentHead_line {
  width: 94vw;
	max-width: 1080px;
  margin-left: auto;
  margin-right: auto;
  border-bottom: 1px solid rgba(255,255,255,.5);
  margin-bottom: min(5vw , 54px);
}
/* ================ 1100 ================ */
@media screen and (max-width: 1100px) {
  .contentHead {
    margin-bottom:25vw;
  }
  .contentHead_br {
    display: block;
  }
}

/* ================ SP ================ */
@media screen and (max-width: 767px) {
  .contentHead_h1 > span {
    font-size: 7vw;
    letter-spacing: 0.1em;
    transform: translateX(-0.05em);
    margin-bottom: 0.7em;
  }
  .contentHead_cat > span {
    font-size: 5vw;
  }
  .contentHead_txt {
    width: 90vw;
    margin-left: auto;
    margin-right: auto;
  }
  .contentHead_txt p {
    font-size: 3.5vw;
  line-height: 2.45em;
    text-align: justify;
  }
  .contentHead_txt p br {
    display: none;
  }
}
/* / コンテンツヘッド*/



















