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

@media only screen and (min-width: 780px) {
.gallery {
  display: flex;
  gap: 8px;
  align-items: flex-end;
  overflow-x: auto;          /* 横スクロールを許可 */
  max-width: 1200px;
  padding: 8px 0;
  scroll-snap-type: x proximity; /* スナップを柔らかく */
  scrollbar-gutter: stable;      /* スクロールバーでレイアウトがズレない */
}

/* スクロールバーのカスタマイズ（PC向け） */
.gallery::-webkit-scrollbar {
  height: 8px;                 /* 横スクロールバーの高さ */
}

.gallery::-webkit-scrollbar-track {
  background: #f0f0f0;         /* トラック部分（淡いグレー） */
  border-radius: 4px;
}

.gallery::-webkit-scrollbar-thumb {
  background: #bbb;            /* スクロール部分（やや濃いグレー） */
  border-radius: 4px;
}
.gallery::-webkit-scrollbar-thumb:hover {
  background: #999;            /* ホバー時に少し濃く */
}

.gallery img {
  height: 400px;
  width: auto;
  display: block;
  scroll-snap-align: start;
  border-radius: 6px;
  transition: transform 0.25s ease;
}

/*
.gallery img:hover {
  transform: scale(1.03);       
  cursor: pointer;
}
*/
}

@media only screen and (max-width: 780px) {
.card img {
  width: 100%;
}


}

#footer_list {
  list-style: none;
  margin: 0;
  padding: 0;
  font-family: "Noto Sans JP", sans-serif;
display: inline-block; /* センター内でも要素幅を固定 */
  text-align: left;      /* 子要素（li）を左寄せに */
}

#footer_list > li {
  margin-bottom: 1.5rem;
}

#footer_list > li > a {
  font-size: 1.1rem;
  font-weight: 600;
  text-decoration: none;
  border-bottom: 2px solid transparent;
  transition: all 0.3s ease;
}

#footer_list > li > a:hover {
  border-bottom: 2px solid #666;
}

#footer_list ul {
  list-style: none;
  padding-left: 1rem;
  margin-top: 0.5rem;
}

#footer_list ul li {
  margin: 0.3rem 0;
}

#footer_list ul li a {
  text-decoration: none;
  font-size: 0.95rem;
  transition: color 0.3s ease;
}

#footer_list ul li a:hover {
  color: #000;
}




.top-menu-list-box{
text-align: center;
max-width: 600px;
    margin: 0 auto;
}

.top-menu-list {
  display: flex;
  flex-wrap: wrap; 
  list-style: none;
}

.top-menu-list > li {
    width: 42.5%;
   margin: 10px;
//background-color: rgba(200, 200, 200, 0.4);
background-color: rgba(255, 255, 255, 0.6);
}


#top-menu-renovation .jpn{
    color: #900;
    font-weight:bold;
 }

.keyvisual{
	position: relative;
    height: 60vh;
}
.overlay::after {
  position: absolute;
  top: 0;
  left: 0;
  display: block;
  width: 100%;
  height: 100%;
  content: "";
  background: rgba(0, 0, 0, 0.2);
}
.keyvisual .bgImg{
background-size: cover;
background-position: center center;
background-repeat: no-repeat;
position   : absolute;
top        : 0;
left       : 0;
bottom     : 0;
right      : 0;
opacity    : 0;
animation  : bgAnime 20s infinite;
}
.keyvisual .src1 {
  background-image : url(../images/top/kv1.jpg);
}
.keyvisual .src2 {
  background-image : url(../images/top/kv2.jpg);
//  animation-delay  : 4s;
}
.keyvisual .src3 {
  background-image : url(../images/top/kv3.jpg);
//  animation-delay  : 8s;
}
.keyvisual .src4 {
  background-image : url(../images/top/kv4.jpg);
//  animation-delay  : 12s;
}
.keyvisual .src5 {
  background-image : url(../images/top/kv5.jpg);
//  animation-delay  : 16s;
}

@keyframes bgAnime {
   0%{ opacity: 0;}
	15%{ opacity: 1;}
	25%{ opacity: 1;}
	30%{ opacity: 0;}
	100%{ opacity: 0;}
}

.keyvisual-in{
	 position: absolute;
  top: 50%;
  left: 50%;
  width: 100%;
  -webkit-transform: translate(-50%, -50%);
  -moz-transform: translate(-50%, -50%);
  transform: translate(-50%, -50%);
  z-index: 100;
}
.keyvisual-in h1{
	text-align: center;
	color: #fff; font-size: 42px;
}
.keyvisual-in h1 img{max-width: 200px;}

			@media only screen and (max-width: 768px) {
				.keyvisual{
					background-size: cover;
					background-position: center;
					background-repeat: no-repeat;
				}
				.keyvisual .src1 {
				  background-image : url(../images/top/kv-01.jpg);   /* 背景の画像を指定 */
				}
				.keyvisual .src2 {
				  background-image : url(../images/top/kv-02.jpg);   /* 背景の画像を指定 */
				  animation-delay  : 4s;
				}
				.keyvisual .src3 {
				  background-image : url(../images/top/kv-03.jpg);   /* 背景の画像を指定 */
				  animation-delay  : 8s;
				}
				.keyvisual .src4 {
				  background-image : url(../images/top/kv-04.jpg);   /* 背景の画像を指定 */
				  animation-delay  : 12s;
				}
				.keyvisual .src5 {
				  background-image : url(../images/top/kv-05.jpg);   /* 背景の画像を指定 */
				  animation-delay  : 16s;
				}
				.keyvisual-in h1{font-size: 24px;}
			}


/* Information
------------------------------------------------------------*/
.Information .Information-wrap{
    display:-webkit-box;
    display:-ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: center;
    background-color: #332e2e;
	line-height: 0;
}
.Information .Information-wrap.reverse{flex-direction:row-reverse;}
.Information .Information-txt{
    width: 45%;
    padding: 2.5% 5%;
    color: #fff; line-height:1.666;
    padding: 2.5% 5%;
}
.Information .Information-bnr{
    width: 55%; 
}
.Information .Information-bnr img{width:100%;}

		@media only screen and (max-width: 780px) {
			.Information .Information-wrap{display: block;}
			.Information .Information-txt,
			.Information .Information-bnr{width: 100%;}
		}
.top-works-txt{margin-bottom: 2.5%; text-align: center;}
.top-works-wrap{
	display: -webkit-flex; /* Safari */
        display: flex;
   -webkit-flex-wrap: wrap; /* Safari */
        flex-wrap: wrap;
    justify-content: space-between;
    align-items: stretch;
}
.top-works-wrap > div{
	width: calc(94% / 3);
	margin: 0 1%; padding: 2%;
	border: 2px solid #990000;
	border-radius: 10px;
	
}
.top-works-wrap > div h4{text-align: center; margin-bottom: 1rem;}
.top-works-wrap > div p {font-size: 14px; line-height: 1.4;}
.top-works-wrap > div img{width: 100%;}
		@media only screen and (max-width: 780px) {
			.top-works-txt{margin-bottom: 5%; text-align: left;}
			.top-works-wrap{
				display: block;
				overflow-x: auto;
			  white-space: nowrap;
			  -webkit-overflow-scrolling: touch;
			}
			.top-works-wrap > div{
				width: 90%; margin: 0 0 5%;
				display: inline-block;
				vertical-align: top;
			}
			.top-works-wrap > div p{white-space: initial;}
		}

.diary{background-color: #EFEFEF; padding: 2% 0;}
.diary-wrap{
	 display:-webkit-box;
    display:-ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: stretch;
	background-color: #EFEFEF;
	width: 100%; margin: 0 auto; max-width: 1200px;
}
.diary-contents{
	 display:-webkit-box;
    display:-ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    justify-content: space-between;
	background-color: #fff; border: 1px solid #D8D8D8;
	line-height: 0;
	width: calc(96% / 2);
	margin: 0 1%;
}
.diary-wrap .diary-txt{
	width: 68%;
	padding: 2% 0 2% 2%;
	font-size: 14px; line-height: 1.4;
  display: -webkit-box;
  -webkit-box-orient: vertical;
}
.diary-tit{
	display: flex;
	justify-content: flex-start;
	align-items: center;
	margin-bottom: 1rem;
}
.diary-tit > strong{
	display: block;
	border: 1px solid #ccc;
	padding: .25rem .5rem; margin-right: 1rem;
	font-size: 16px;
}
.diary-tit > span{
	display: block;
	color: #990000;
	font-size: 12px;
}
.diary-wrap .diary-img > img{ max-width: 136px; height: 130px; object-fit: cover; }

			@media only screen and (max-width: 768px) {
				
				.diary{padding-top: 5%;}
				.diary-wrap{display: block; width: 100%; margin: 0 auto;}
				.diary-contents{width: 90%; margin: 0 auto 2.5%;}
				.diary-wrap .diary-txt{width: 62%;}
				.diary-tit > strong{font-size: 14px;}
				.diary-wrap .diary-img > img{width: 100px;}
			}

#works section{width: 96%; margin: 0 auto; max-width: 1200px;}
#works h2{text-align: center; margin-top: 2rem;}

#plan_categoryImg{
background:#c0c0c0;
text-align:center;
}

.box_left{
float:left;
margin-right:10px;
}

.box_left img{
width:100%;
max-height:100%;
}
.box_right{
float:right;
vertical-align:bottom;
}

.no{
color:#900;
font-weight:bold;
}

#plan_categoryDsc{
background:#c0c0c0;
padding:25px;
}

.this {
    color: #cc6600;
    font-weight: bold;
}

.arrowBtn a,
.archiveBtn a{
	position: relative;
	display: block; padding-left:20px; 
}
.worksBtn a{
	position: relative;
	display: block; padding-left:24px; 
}
.arrowBtn a:hover,
.worksBtn a:hover,
.archiveBtn a:hover{
	color: #990000;
}
.arrowBtn a::after,
.worksBtn a::after,
.archiveBtn a::after{
  position: absolute;
  content: "";
  top: 50%;
  left: 0;
  width: 20px;
  height: 20px;
  margin-top: -7px;
  background: url("../images/icon-viewBtn-red.png") top left no-repeat;
  background-size: 14px;
}
.worksBtn .buildBtn a::after{
    top: 40%;
    background: url("../images/icon-buildBtn-red.png") top left no-repeat;/*オンライン設計室*/
    background-size: 18px;
}
.worksBtn .houseBtn a::after{
    top: 40%;
    background: url("../images/icon-houseBtn-red.png") top left no-repeat;/*住宅・建築事例集*/
    background-size: 18px;
}
.worksBtn .familyBtn a::after{
    top: 40%;
    background: url("../images/icon-familyBtn-red.png") top left no-repeat;/*住んでみて*/
    background-size: 18px;
}
.worksBtn .GalbumBtn a::after{
    top: 40%;
    background: url("../images/icon-GalbumBtn-red.png") top left no-repeat;/*Googleアルバム*/
    background-size: 18px;
}
.arrowBtn{list-style:none;}

.archiveBtn a {padding: 0 24px 0 0; font-size: .8rem; margin-bottom: 1rem;}
.archiveBtn a::after{ left: auto;  right: 0;}
.pageBtn{text-align: center; margin: 2rem;}

.worksList{
	width: 100%; overflow: hidden; clear: both;
	margin: 1em auto 0; padding: .5em 0;
	border-top: 1px solid #efefef;
	border-bottom: 1px solid #efefef;
	text-align: center;
}
.worksList li{
	width: 33%; float:left; list-style: none;
	font-size: .8rem;
}
.worksList li.visit{
	color: #990000;
}
.worksList li a{
	position: relative;  padding-left:30px; 
}
.worksList li a::after{
  position: absolute;
  content: "";
  top: 50%;
  left: 0;
  width: 20px;
  height: 20px;
  margin-top: -7px;
  background: url("../images/icon-viewBtn-red.png") top left no-repeat;
  background-size: 14px;
}
.worksList li.buildBtn a::after{
  top: 30%;
  background: url("../images/icon-buildBtn-red.png") top left no-repeat;
  background-size: 18px;
}
.worksList li.houseBtn a::after{
  top: 30%;
  background: url("../images/icon-houseBtn-red.png") top left no-repeat;
  background-size: 18px;
}
.worksList li.familyBtn a::after{
  top: 30%;
  background: url("../images/icon-familyBtn-red.png") top left no-repeat;
  background-size: 18px;
}

/* カテゴリー表示 
-----------------------------------------------*/
.refine_box {
    width: 100%; margin: 2em auto;
    padding: 2.5% 5%; background: #efefef;
	border-radius: 5px; text-align: center;
}
.refine_box p{margin-bottom: 1em;}
.refineList {
	margin: 0 auto; overflow: hidden; clear: both;
}
.refineList li{
	list-style: none; line-height: 2rem; 
}
.refineList li a{
	float: left; display: inline-block;
	border: 1px solid #222; border-radius: 4px;
	margin: 1%; padding: 0 1%; background: #fff;
}
.refineList li a:hover{
	border: 1px solid #990000; background-color: #F0F0F0;
}
.refineList li.visit a{background: #990000;color:#fff;}


/* works 一覧表示 
-----------------------------------------------*/
.cssgrid {
    display:-webkit-box;
  	display:-ms-flexbox;
  display: flex;
    -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  padding: 0;
  margin: 0 auto 2em;
}
.cssgrid > div {
  position: relative;
  width: calc(95.2%/4);
  border: 1px solid #ddd;
  margin: 0 0.6% 1.2%;
  overflow: auto;
  padding: 1em;
}
.cssgrid img {
    width: 100%;
    height: auto;
}
.cssgrid figcaption { text-align: right; font-size: .75rem;}

.cssgrid h3 { margin: 1rem 0 ; }
.cssgrid ul{list-style: none;}
.cssgrid ul li{list-style: none; font-size: .8rem; line-height: 2rem;}

/* icon */
.new{
	width: 4em; text-align: center; float: left;/* margin-right:1rem;*/
	display: block; color: #fff; background-color: #990000;
	font-weight: bold; font-size: .75rem;
}
.pickup_area {
    position: absolute;
    top: 0;
    right: 0;
    width: 85px;
    height: 85px;
    overflow: hidden;
}
.pickup {
    display: inline-block;
    position: absolute;
    padding: 5px 0;
	top:20px; left:-24px;
    width: 160px;
    text-align: center;
    font-size: .8rem;
    line-height: 16px;
    background: #990000;
    color: #fff;
    letter-spacing: 0.05em;
    -webkit-transform: rotate(45deg);
    -ms-transform: rotate(45deg);
    transform: rotate(45deg);
}


/* works ページ 
-----------------------------------------------*/
img[src*="list_image.jpg"]{width: 80%; margin: 0 auto; text-align: center; display: block;}
.works_contents .date{
	border-bottom: 1px solid #d2d2d2; margin-bottom: .5rem;
}
.works_contents .worksBtn{
	width: 15%; float: right;
	font-size: .8rem; list-style: none;
}
.works_contents h3{
	font-size: 150%; line-height: 1.8; margin-bottom: 1rem;
}
.categoryList {
	width: 100%; overflow: hidden; clear: both;
	margin-bottom: 2rem;
}
.categoryList li {list-style: none; font-size: .8rem; }
.categoryList li a{
	float: left; display: inline-block;
	border: 1px solid #222; border-radius: 4px;
	margin: 0 1% .5rem 0; padding: 0 1%;
}
.works_contentsIn { width: 100%; margin-bottom: 2rem; overflow: hidden; clear: both;}
.works_contentsIn > div { display: inline-block; vertical-align: top; }
.plan_contentsIn {width:800px; margin:0 auto 2rem; overflow: hidden; clear: both;}
.plan_contentsIn > div { display: inline-block; vertical-align: top; }
.contentsL { width: 55%; padding-right:5%; }
.contentsL img{ max-width: 100%; height: auto;}
.contentsL_plan { width: 55%;  border:solid 1px #ccc;background:#c0c0c0;}
.contentsL_plan img{ max-width: 100%; height: auto;}
.contentsL_plan_box{padding-right:5%;}
.black_back{background:#000;color:#fff;padding:10px;font-size:28pt;text-align:center;
}

.contentsR { width: 40%; float: right;}
.contentsR > img { max-width: 100%; height: auto;}
.contentsR ul{margin-left:20px;}
.sideTitle{font-size:18px;
margin-bottom:5px;
}
.sideTitle a{
padding-bottom:3px;
border-bottom:solid 1px #ccc;
}

.building_data{
	margin: 1rem 0;
	border-left: 1px solid #999; font-size: .8rem; line-height: 1.5;
	padding-left:1rem; list-style: none;　overflow: hidden; clear: both;
}
.building_data dt{float: left; display:block; margin-right:1rem;}

#works-slide.slider-pro{margin-bottom: 2rem !important;}

/* モーダルウィンドウ
------------------------------------------ */
.modal-content p{ font-size:100%; line-height:1.666;}

/* modal-contents */

.lock {
    overflow:hidden;
}
.modal-content {
    position:relative;
    display:none;
    width:65%;
    max-height:50%;
    margin:30px !important;
    padding:20px 20px 0;
    border:2px solid #aaa;
    background:#fff;
    overflow:auto;
	border-radius: 6px;
}
.modal-content h4{margin:0 auto 20px;}
.modal-overlay {
    z-index:2900;
    display:none;
    position:fixed;
    top:0;
    left:0;
    width:100%;
    height:120%;
    background-color:rgba(0,0,0,0.75);
}
.modal-wrap {
    z-index:3000;
    display:none;
    position:fixed;
    top:0;
    left:0;
    width:100%;
    height:100%;
    overflow:auto;
}
.modal-open {
    color: #333;
    text-decoration:none;
}
.modal-open:hover {
    cursor:pointer;
    color:#990000;
}
.modal-close {
	width:6em; margin:20px auto !important;
    display: block; color:#fff !important;
	padding:0 10px; background:#333;
	text-decoration:none !important;
}
.modal-close:hover {
    cursor:pointer;
    background-color: #600707 !important;
}
.modal-content .maximg{
	text-align: center; display: block;
	margin: 20px auto; max-width: 100%;}


@media screen and (min-width:1441px) {
    .cssgrid > div { width: calc(94%/5);}
}
@media screen and (max-width:960px) {
    .cssgrid > div { width: calc(96.4%/3);}
}
@media only screen and (min-width: 780px) {
    .box_center{width:450px;}
    .box_left{height:200px;}
}
@media only screen and (max-width: 780px) {
    .plan_contentsIn {width:100%; margin:0 auto 2rem; overflow: hidden; clear: both;}
    .box_center{float:left;}
	.works_contents .worksBtn{ width: 20%; }
	.works_contentsIn{width: 100%; display: inherit;}
	.works_contentsIn > div{ display: inherit;}
	.contentsL{width: 100%; padding-right: 0;}
	.contentsL_plan{width: 100%; padding-right: 0;}
	.contentsR{width: 100%; display:none; float: none;}
	.modal-content { width:80%;}
    .cssgrid > div {width: calc(97.6%/2);}
}
@media only screen and (max-width: 480px) {
    img[src*="list_image.jpg"]{width: 100%;}
    .plan_contentsIn {width:100%; margin:0 auto 2rem; overflow: hidden; clear: both;}
	.works_contents .worksBtn{ float: none; display: none;}
	.worksList{padding:.5em 0;}
	.worksList li{	width: 100%; float:none; text-align: left;}
    .cssgrid > div {width: 45.8%;}
}

.sekkei{
color:#900;
font-size:18pt;
margin:0;
}