@charset "utf-8";

/************************************************************
トップページ
************************************************************/


/*first-view*****************************************/
#first-view {
	position: relative;
	width: 100vw;
	height: 100vh;
}

.slide-wrapper {
	position: absolute;
	top: 0;
	left: 0;
	overflow: hidden;
	width: 100vw;
	height: 100vh;
}

.slide {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-position: center;
	background-size: cover;
	background-repeat: no-repeat;
	opacity: 0;
	z-index: 1;
	animation: slider 18s infinite;
}
.slide-01 {
	background-image: url(../images/slide_01.jpg);
}
.slide-02 {
	animation-delay: 6s;
	background-image: url(../images/slide_02.jpg);
}
.slide-03 {
	animation-delay: 12s;
	background-image: url(../images/slide_03.jpg);
}


@keyframes slider {
  0%       { opacity: 0; z-index: 2; transform: scale(1); } /* ここで z-index:2 に上げる */
  16.66%   { opacity: 1; z-index: 2; }
  33.33%   { opacity: 1; z-index: 2; }
  33.34%   { opacity: 1; z-index: 1; } /* フェードアウト開始時に下に落とす */
  50%      { opacity: 0; z-index: 0; transform: scale(1.2) ;} /* 完全に消えたら最背面へ */
  100%     { opacity: 0; z-index: 0; }
}

.home #content {
	margin-top: 0 !important;
}

.top-copy {
	display: inline-block;
	position: absolute;
	left:0;
	margin: 0 auto;
	top: calc(50% + 100px);
	transform: translateY(-50%);
	z-index: 10;
	background: rgba(255,255,255,0.7);
	padding: 50px 60px;
}
 .top-copy .txt-46 {
	text-shadow:
	5px 5px 15px rgba(255,255,255,0.3),
	-5px 5px 15px rgba(255,255,255,0.3),
	5px -5px 15px rgba(255,255,255,0.3),
	-5px -5px 15px rgba(255,255,255,0.3);
}
.top-copy .txt-16 {
	text-shadow:
	2px 2px 6px rgba(255,255,255,0.3),
	-2px 2px 6px rgba(255,255,255,0.3),
	2px -2px 6px rgba(255,255,255,0.3),
	-2px -2px 6px rgba(255,255,255,0.3);
	
}



@media(max-width:1260px){
	.top-copy .txt-80 {
		font-size: 6vw;
	}
	.top-copy .txt-30 {
		font-size: 2.3vw;
		
	}
}
@media (max-width: 1100px) {
  .top-copy {
		top: calc(50% + 80px);
	}

}

@media(max-width:991px){
	#first-view {
		height: auto;
	}
	.slide-wrapper {
		position: relative;
		height: 100vw;
	}
	.top-copy {
		position: relative;
		display: block;
		width: 100%;
		top: auto;
		bottom: auto;
		transform: translateY(0);
	}
}
@media(max-width:767px){
	.top-logo {
		top: 10px;
		left: 10px;
		width:35%;
		height: auto;
		max-width: 150px;
	}
	.top-copy {
		padding: 20px 15px 30px;
	}
	.top-copy .txt-46 {
		font-size: 6.1vw;
	}
	.top-copy .txt-46 {
		margin-bottom: 10px;
	}
	.top-copy .txt-16 {
		line-height: 1.5;
	}
	
}
@media(max-width:500px){
	
}



/*home_01*****************************************/
#home_01 ul li {
	width: 31%;
	aspect-ratio: 4 / 3;
	border-radius: 12px;
	box-shadow: 0 6px 0 #2B588C;
	position: relative;
}
#home_01 ul li a {
	display: block;
	width: 100%;
	height: 100%;
	position: relative;
	border-radius: 12px;
	overflow: hidden;
}
#home_01 .thumbnail {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: .5s;
}

.ttl_01 {
	text-align: center;
	padding: 15px 0;
	background: rgba(255,255,255,0.8);
	width: 100%;
	position: absolute;
	left: 0;
	bottom: 0;
}
.ttl_01 .arrow_01 {
	width: 20px;
	aspect-ratio: 1 / 1;
	position: absolute;
	top: 50%;
	right: 18px;
	transform: translateY(-50%);
}

@media (min-width: 768px) {
	#home_01 a:hover .thumbnail {
		transform: scale(1.1);
		opacity: 0.7;
	}
}

@media screen and (max-width: 1200px) {
	.ttl_01 span {
		font-size: 1.5vw;
	}
}

@media screen and (max-width: 767px) {
	.ttl_01 span {
		font-size: 15px;
	}
	#home_01 ul {
		row-gap: 20px;
	}
	#home_01 ul li {
		width: 100%;
		aspect-ratio: 16 / 9;
	}
	.ttl_01 {
		padding: 10px 0;
	}
}


/*home_02*****************************************/
.wht-box {
	border-radius: 18px;
	border: 5px solid #2B588C;
	box-shadow: 0 6px 0 #2B588C;
	padding: 50px 50px;
}
.paint-ttl {
	position: relative;
	z-index: 1;
}
.paint-ttl:before {
	content: "";
	display: block;
	width: 320px;
	aspect-ratio: 5 / 1;
	background: url(../images/paint.png) no-repeat;
	background-size: contain;
	position: absolute;
	left: -20px;
	bottom: -10px;
	z-index: -1;
}
.dot-part {
  width: calc(100% + 11px);
  height: 32px;
	overflow: hidden;
	position: relative;
}
.dot-part:before {
	content: "";
	display: block;
  width: calc(100% + 1px);
  height: 100%;
  background-image: url("../images/dot.svg");
  background-repeat: round no-repeat;
  background-position: left center;
  background-size: auto 32px; /* 高さを要素に合わせる（横は自動） */
	position: absolute;
	left: 0;
	top: 0;
}
.group-list {
	display: flex;
	flex-direction: column;
	row-gap: 40px;
}
.group-list li {
	padding-left:60px;
	position: relative;
}
.group-list li:before {
	content: "";
	display: block;
	width: 47px;
	aspect-ratio: 1 / 1;
	background: url("../images/check_kadomaru.svg") left top no-repeat;
	background-size:contain;
	position: absolute;
	top: 0;
	left: 0;
}

/**ボタン*****/
.nvy-btn {
	width: 350px;
	height: 60px;
	border-radius: 12px;
	display: flex;
	justify-content: center;
	align-items: center;
	background: #2B588C;
	box-shadow: 0 6px 0 #133760;
	position: relative;
	margin-left: auto;
	margin-right: auto;
	transition: .3s;
}
.nvy-btn .arrow_02 {
	width: 24px;
	aspect-ratio: 1 / 1;
	position: absolute;
	top: 50%;
	right: 18px;
	transform: translateY(-50%);
}

.nvy-btn:active {
	opacity: 0.7;
	transform: translateY(-6px);
}

@media screen and (min-width: 768px) {
	.nvy-btn:hover {
		opacity: 0.7;
		transform: translateY(-6px);
	}
}


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

  /* --- コンテナ・余白調整 --- */
  .wht-box {
    padding: 25px 15px 35px;
    border-width: 3px;
    border-radius: 12px;
    box-shadow: 0 4px 0 #2B588C;
  }

  /* --- タイトル部 --- */
  .paint-ttl {
    font-size: 26px; /* 約24px相当 */
    text-align: center;
    margin-bottom: 20px;
  }

  .paint-ttl:before {
    width: 180px;
    left: 50%;
    transform: translateX(-50%);
    bottom: -8px;
  }

  /* --- テキスト --- */
  #home_02 .txt-24 {
    font-size: 16px;
		line-height: 1.6;
  }

  #home_02 .txt-18 {
    font-size: 15px;
    line-height: 1.6;
  }

  /* --- ドットライン --- */
  .dot-part {
    height: 24px;
  }
  .dot-part:before {
    background-size: auto 24px;
  }

  /* --- リスト --- */
  .group-list {
    row-gap: 24px;
  }

  .group-list li {
    padding-left: 0;
  }

  .group-list li:before {
    width: 30px;
  }

	.group-list li .txt-24 {
		padding-left: 34px;
		margin-bottom: 6px;
	}

  /* --- ボタン --- */
  .nvy-btn {
    width: 100%;
    max-width: 280px;
    height: 54px;
    border-radius: 10px;
    box-shadow: 0 4px 0 #133760;
    margin: 40px auto 0;
  }

  .nvy-btn span {
    font-size: 16px;
  }

  .nvy-btn .arrow_02 {
    width: 20px;
    right: 12px;
  }

}


/*home_03*****************************************/

.works-slider-outer {
  position: relative;
  padding: 0 4vw;       /* ここがマスク幅：値を大きくすると“見切れ感”が増す */
  overflow: hidden;      /* マスクON */
}
.works-slider .slick-list { overflow: visible; } /* 外枠からはみ出させる */
.works-slider .works-slide { padding: 0 1vw; }  /* ガター */

.work-card {
  display: block;
  overflow: hidden;
}

.work-card__thumb {
  aspect-ratio: 4 / 3;          /* サムネ比率（必要に応じて変更） */
  overflow: hidden;
	border-radius: 12px;
}
.work-card__thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
	transition: .5s;
}

.work-card__meta { padding: 14px 16px 18px; }
.work-card__date {
  display: block;
  font-weight: 700;
  font-size: 14px;
  margin-bottom: 6px;
  color: #163b54;
}
.work-card__title {
  font-size: 16px;
  line-height: 1.5;
  font-weight: 700;
}

/* デフォルト矢印を無効化 */
.works-slider .slick-prev:before,
.works-slider .slick-next:before {
  content: none;
}

/* 共通設定 */
.works-slider .slick-prev,
.works-slider .slick-next {
  width: 48px;  
  height: 48px;
  z-index: 10;
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
  transition: opacity .3s;
	top: 6.5vw;
	transform: translateY(-50%);
}

.works-slider .slick-prev:hover,
.works-slider .slick-next:hover {
  opacity: 0.8;
}

/* 左矢印 */
.works-slider .slick-prev {
  left: -3vw; /* 外側に出したい場合に調整 */
  background-image: url('../images/arrow-left.png');
}

/* 右矢印 */
.works-slider .slick-next {
  right: -3vw;
  background-image: url('../images/arrow-right.png');
}



@media screen and (min-width: 768px) {
	.work-card:hover .work-card__thumb img {
		transform: scale(1.1);
		opacity: 0.7;
	}
}

@media screen and (max-width: 1280px){
	.works-slider .slick-prev,
	.works-slider .slick-next {
		top: 7.5vw;
	}
}
@media screen and (max-width: 1024px){
	.works-slider .slick-prev,
	.works-slider .slick-next {
		top: 10vw;
	}
}
@media screen and (max-width: 768px){
	.works-slider .slick-prev,
	.works-slider .slick-next {
		top: 16vw;
	}
}
@media screen and (max-width: 520px){
	.works-slider .slick-prev,
	.works-slider .slick-next {
		width: 36px;  
  	height: 36px;
		top: 33vw;
	}
}

/*home_04*****************************************/
.archive-list li {
	padding: 20px;
	border-bottom: 1px dashed #ddd;
}
.archive-list li:last-child {
	border-bottom: none;
}
.news-date {
	width: 20%;
}
.news-archive-ttl {
	flex: 1;
}

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

  /* --- 見出しブロック --- */
  .ttl-style_01 img {
    transform: scale(0.7);
		transform-origin: center top;
  }
  .ttl-style_01 .txt-46 { 
    font-size: 24px; 
    line-height: 1.25;
		margin-top: -40px;
  }
  .ttl-style_01 .txt-20 {
    font-size: 14px;

  }


  /* --- アーカイブリスト --- */
  .archive-list li {
    padding: 14px 6px;
  }
  
  /* 行リンク：ブロック化＆縦積みでタップしやすく */
  #home_04 .archive-list li > a {
    display: block;
    text-decoration: none;
    padding-right: 6px; /* 右の余白少し */
  }

  /* 日付を上に、サイズやや小さめ */
  .news-date {
    width: auto; 
    display: block;
    font-size: 14px;
    line-height: 1.4;
    margin-bottom: 4px;
    opacity: .8;
  }

  /* タイトルは2行省略・指で追いやすい行間 */
  .news-archive-ttl {
    flex: none;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
		 line-clamp: 2;
    overflow: hidden;
    font-size: 16px;  
    line-height: 1.5;
    margin: 0;
  }

}



/*home_05*****************************************/


@media screen and (max-width: 767px) {
	#home_05 .nvy-btn {
		position: absolute;
		bottom: 40px;
		left: 0;
		right: 0;
		margin: 0 auto;
	}
	#home_05 .wht-box {
		padding-bottom: 130px;
	}
	#home_05 .wht-box .flex-between {
		row-gap: 30px;
	}
}


/*home_06*****************************************/
.ggmap {
  width: 100%;
  aspect-ratio: 16 / 9;  
  border-radius: 12px; 
  overflow: hidden;
}
.ggmap iframe {
  width: 100%;
  height: 100%;
  border: 0;
  display: block;
}
.map-address {
	padding-left: 2em;
}

@media screen and (max-width: 767px) {
	#home_06 .flex-between {
		row-gap: 30px;
	}
	.map-address {
    padding-left: 1em;
	}
}