@charset "utf-8";
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@100..900&display=swap');

/*----------------------------------------------------------------------------------------------------
  common
----------------------------------------------------------------------------------------------------*/
*,
*::before,
*::after {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}
*,
*::before,
*::after {
  box-sizing: border-box;
  word-wrap: break-word;
  word-break: break-word;
  overflow-wrap: break-word;
}

html {
  scroll-behavior: smooth;
}
body {
  font-size: 16px;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 300;
  min-width: 750px;
  max-width: 1920px;
  margin: 0 auto;
  background: rgb(53,140,223);
  background: linear-gradient(90deg, rgba(53,140,223,1) 0%, rgba(81,167,229,1) 100%);
}
@media (max-width:750px) {
  body {
    font-size: 24px;
  }
}

img {
  width: 100%;
  height: auto;
}

b {
  font-weight: 700;
}

.text-ib {
  display: inline-block;
}

.mt01 {
  margin-top: 1em;
}
.mt02 {
  margin-top: 2em;
}

.contents {
  width: calc(100% - 40px);
  margin: 0 auto;
	padding: 50px 0;
}

.contents h2 {
	width: 100%;
	height: 102px;
	margin: 0 0 30px;
	padding: 0;
  border-top: 2px solid #2ba738;
  border-bottom: 2px solid #ccc;
	color: #2ba738;
	font-size: 24px;
  font-weight: 700;
	text-align: center;
	line-height: 102px;
}
@media (max-width:750px) {
  .contents h2 {
    font-size: 36px;
  }
}

.contents h3 {
	margin: 0 0 30px;
	padding: 0;
	color: #2ba738;
	font-size: 24px;
	font-weight: 500;
}
@media (max-width:750px) {
  .contents h3 {
    font-size: 36px;
  }
}


/*----------------------------------------------------------------------------------------------------
  table
----------------------------------------------------------------------------------------------------*/

.table-content {
	margin-bottom:30px;
}

.table-content table {
  width:100%;
  border-collapse:collapse;
  text-align:left;
  border:1px solid #d8d8d8;
}

.table-content th {
	display:block;
  text-align:left;
  background-color:#f4f4f4;
  padding:1em;
  border-bottom:1px solid #d8d8d8;
  vertical-align:top;
	white-space:nowrap;
}
.table-content th .ic-required {
  float:left;
}

.table-content td {
	display:block;
  padding:1em;
	border-bottom:1px solid #d8d8d8;
  background-color:#ffffff;
}

.table-content.nowrap th,
.table-content.nowrap td {
	display:table-cell;
}

.table-content td.harf {
	border:none;
	padding:0;
	padding-left:1em;
	display:inline-block;
}

.table-content td.harf-top {
	padding-top:1em;
}

.table-content td.harf-bottom {
	padding-bottom:1em;
}


/*----------------------------------------------------------------------------------------------------
  visual/floatingbtn
----------------------------------------------------------------------------------------------------*/
.bg-wrap {
  position: relative;
  width: 100%;
  height: 100vh;
  background: url("../image/common/body_bg.jpg") no-repeat bottom left;
  overflow: hidden;
}

.companylogo {
  position: absolute;
  top: 20px;
  left: 20px;
  width: 211px;
}
@media (max-width:1100px) {
  .companylogo { display: none; }
}

.modelhouse {
  position: absolute;
  bottom: 0;
  left: 0;
  width: calc(100% - 800px);
  max-width: 1100px;
  max-height: calc(100% - 80px);
  object-fit: contain;
  aspect-ratio: 1120 / 770;
}
.modelhouse img {
  filter: drop-shadow(0px 0px 6px #aaa);
  transition: 0.3s;
}
.modelhouse:hover img {
  filter: drop-shadow(0px 0px 12px #ddd);
}
@media (max-width:1100px) {
  .modelhouse { display: none; }
}

.main-container {
  position: absolute;
  top: 0;
  right: 140px;
  width: 660px;
  height: 100vh;
  background-color: #fff;
  box-sizing: border-box;
  box-shadow: 0px 0px 15px 10px rgba(0, 0, 0, 0.25);
  overflow-y: scroll;
}
@media (max-width:1100px) {
  .main-container {
    position: static;
    margin: 0 auto;
  }
}

/*
.main-wrap .mCSB_inside>.mCSB_container {
  margin-right: 0;
}

.main-wrap .mCSB_dragger > .mCSB_dragger_bar {
  display: none;
}
*/

.floating-button {
  position: absolute;
  top: calc(50% - 125px);
  right: 80px;
  z-index: 99;
  display: flex;
  align-items: center;
  width: 60px;
  height: 230px;
  padding: 36px 16px;
  background-color: #EE641B;
  box-sizing: border-box;
  color: white;
  text-decoration: none;
  vertical-align: middle;
  writing-mode: vertical-lr;
  letter-spacing: 2pt;
  transition: background-color 0.3s ease;
}
.floating-button:hover {
  color: #fff;
  text-decoration: none;
  background-color: #F9874A;
}
@media (max-width:1100px) {
  .floating-button {
    top: 40px;
    right: 0;
  }
}
@media (max-width:750px) {
  .floating-button {
    padding: 36px 12px;
    height: 280px
  }
}

.floating-button .icon {
  display: inline-block;
  margin-bottom: 24px;
}
.floating-button .text {
  display: inline-block;
  margin: 0 auto;
}


/*------------------------------------------------------------------------------------------------------------------
　Header
-------------------------------------------------------------------------------------------------------------------*/

.header {
	width: 100%;
	height: auto;
  text-align: center;
}

.header h1 {
	margin: 0;
  padding: 24px 0;
	text-align: center;
}

.header h1 img {
  width: 222px;
  margin: 0 auto;
}

.header .comname {
	width: 100%;
	max-width: 1100px;
	box-sizing: border-box;
	margin: 0 auto 16px;
	padding: 0 1em;
  text-align: center;
}

.header .comname img {
	width: 176px;
  margin: 0 auto;
}

.link {
	position: relative;
}

.link a {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	display: block;
	text-indent: 200%;
	overflow: hidden;
	white-space: nowrap;
	z-index: 99;
	transition: 0.3s;
}

.link.overlay a {
	background-color: rgba(255, 255, 255, 0);
}

.link.overlay a:hover {
	background-color: rgba(255, 255, 255, 0.2);
}


/*------------------------------------------------------------------------------------------------------------------
　Navi
-------------------------------------------------------------------------------------------------------------------*/

.header nav {
  width: 100%;
  height: auto;
}

.header nav ul {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
	width: 100%;
	height: auto;
	margin: 0;
	padding: 0;
	margin-left: auto;
	margin-right: auto;
	list-style: none;
  border-top: 1px solid #ccc;
}

.header nav ul li {
	display: block;
	width: 20%;
  height: auto;
  box-sizing: border-box;
  position: relative;
	transition: 0.3s;
}
.header nav ul li:last-child {
  border-right: none;
}

.header nav ul li.navi01,
.header nav ul li.navi02,
.header nav ul li.navi03 {
  width: 33.33%;
  padding-bottom: 4px;
}

.header nav ul li.navi04,
.header nav ul li.navi05 {
  width: 50%;
}

.header nav ul li.link a {
  position: relative;
  min-height: 5em;
  padding: 1.75em 0;
  box-sizing: border-box;
  text-align: center;
  text-indent: inherit;
  white-space: inherit;
  overflow: inherit;
  color: inherit;
  text-decoration: none;
  line-height: 1.4;
  border-right: 1px solid #ccc;
  background: linear-gradient(#ffffff, #f6f6f6);
  font-weight: 500;
}

.header nav ul li:nth-child(3).link a {
  border-right: none;
}

.header nav ul li:last-child.link a {
  border-right: none;
}

.header nav ul li.link a:after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -4px;
  width: 100%;
  height: 4px;
  background-color: #ddd;
  transition: all .2s ease-out;
}

.header nav ul li.link a:hover:after {
  background-color: #C3383A;
}


/*------------------------------------------------------------------------------------------------------------------
　Footer
-------------------------------------------------------------------------------------------------------------------*/

#footer {
  position: relative;
	width: 100%;
  height: auto;
	background-color: #464646;
	box-sizing: border-box;
  padding-top: 36px;
	text-align: center;
}

#footer .logo {
  width: 222px;
  margin: 0 auto;
}
@media (max-width:750px) {
  #footer .logo {
    margin-left: 20px;
  }
}

#footer .comname {
	width: 176px;
	margin: 24px auto;
}
@media (max-width:750px) {
  #footer .comname {
    margin-left: 20px;
  }
}

#footer .footer-navi-text {
	text-align: center;
	color: #ffffff;
  margin: 0 auto;
  padding: 1em;
}

#footer .footer-navi-text a {
	color: #ffffff;
}

#footer .cc {
	width: 100%;
  height: auto;
	line-height: 75px;
	background-color: #1d1d1d;
	text-align: center;
	color: #ffffff;
}

#footer .cc p {
	margin: 0;
  padding: 2em 1em;
  text-align: left;
  box-sizing: border-box;
  font-size: 87.5%;
  height: auto;
  line-height: 1.4;
}

#footer .cc p span {
  display: block;
}

.topback a {
	position: absolute;
  bottom: 7px;
  right: 20px;
	background-image: url(../image/footer/topback.png);
  width: 60px;
  height: 60px;
	display: block;
	text-indent: 100%;
	overflow: hidden;
	white-space: nowrap;
	box-shadow: 0px 0px 8px rgba(0, 0, 0, 0.35);
	-moz-box-shadow: 0px 0px 8px rgba(0, 0, 0, 0.35);
	-webkit-box-shadow: 0px 0px 8px rgba(0, 0, 0, 0.35);
	transition: 0.3s;
  background-size: contain;
}
.topback a:hover {
  bottom: 17px;
}
@media (max-width:750px) {
  .topback a {
    width: 100px;
    height: 100px;
    top: 36px;
    bottom: auto;
    right: 20px;
  }
}

/* モデルハウスボタン */
.modelhouse-fixbtn {
	position: absolute;
  bottom: 7px;
  right: 160px;
	background-image: url("../image/footer/modelhouse.jpg");
  width: 60px;
  height: 60px;
	display: block;
	text-indent: 100%;
	overflow: hidden;
	white-space: nowrap;
	box-shadow: 0px 0px 8px rgba(0, 0, 0, 0.2);
	-moz-box-shadow: 0px 0px 8px rgba(0, 0, 0, 0.2);
	-webkit-box-shadow: 0px 0px 8px rgba(0, 0, 0, 0.2);
	transition: 0.3s;
	animation: flash 1.3s linear infinite;
  background-size: contain;
}
.modelhouse-fixbtn:hover {
  bottom: 17px;
}
@media (max-width:750px) {
  .modelhouse-fixbtn {
    width: 100px;
    height: 100px;
    top: 36px;
    bottom: auto;
    right: 130px;
  }
}

/* 分譲ボタン */
.bunjou-fixbtn {
	position: absolute;
  bottom: 7px;
  right: 90px;
	background-image: url("../image/footer/bunjo.jpg");
  width: 60px;
  height: 60px;
	display: block;
	text-indent: 100%;
	overflow: hidden;
	white-space: nowrap;
	box-shadow: 0px 0px 8px rgba(0, 0, 0, 0.2);
	-moz-box-shadow: 0px 0px 8px rgba(0, 0, 0, 0.2);
	-webkit-box-shadow: 0px 0px 8px rgba(0, 0, 0, 0.2);
	transition: 0.3s;
	animation: flash 1.3s linear infinite;
  background-size: contain;
}
.bunjou-fixbtn:hover {
  bottom: 17px;
}
@media (max-width:750px) {
  .bunjou-fixbtn {
    width: 100px;
    height: 100px;
    top: 36px;
    bottom: auto;
    right: 240px;
  }
}

@keyframes flash {
	0%, 100% {
		opacity: 1;
	}

	50% {
		opacity: 0.1;
	}
}