@charset "UTF-8";

/* footer */
footer{
	border-top: none;
}

/* .fix-bnr */
.main-content .fix-bnr{
  display: block;
  background: #EFEFEF;
  border: solid 1px #CECECE;
  box-shadow: rgba(0,0,0, 0.16) 5px 5px 25px;
  color: #303336;
  position:fixed;
  right: 0;
  bottom: 0;
  z-index:997;
}
.main-content .fix-bnr.ok{
  display:none !important;
}
.main-content .fix-bnr .inner{
  display: flex;
  justify-content: flex-start;
  padding: 20px 30px;
  box-sizing: border-box;
  position: relative;
}
.main-content .fix-bnr .inner .fix-close{
  display: block;
  width: 30px;
  height: 30px;
  position: absolute;
  top:-15px;
  left: -15px;
  cursor: pointer;
  transition: .3s;
}
.main-content .fix-bnr .inner .fix-close:hover{
  transform: scale(1.2);
}
.main-content .fix-bnr .txt{
  display: block;
  font-size: 16px;
  font-weight: 400;
  margin-bottom:0;
}
.main-content .fix-bnr .link-box{
	display: flex;
	align-items: center;
}
.main-content .fix-bnr .link{
  display: inline-block;
  padding-right: 15px;
  font-size: 16px;
  position: relative;
  margin-left: 30px;
}
.main-content .fix-bnr .link:after{
  content:'';
  display: block;
  width: 6px;
  height: 100%;
  background: url(../img/icon/arrow-b.svg)no-repeat center center / contain;
  position: absolute;
  top:0;
  right:0;
  transition: .3s;
}
.main-content .fix-bnr .link:hover:after{
  transform: translateX(5px);
}
.main-content .fix-bnr.bnr-red{
	background: #983F00;
	border:solid 1px #983F00;
	color: #fff;
}
.main-content .fix-bnr.bnr-red .link:after{
  background: url(../img/icon/arrow-w.svg)no-repeat center center / contain;
}

@media(max-width:768px){
  .main-content .fix-bnr {
    width:calc(100% - 40px);
    left: 20px;
    right:20px;
    bottom:20px;
  }
  .main-content .fix-bnr .inner{
    display: block;
    padding: 8px 20px;
  }
  .main-content .fix-bnr .txt{
    font-size: 14px;
    margin-bottom: 2px;
  }
  .main-content .fix-bnr .link-box{
	justify-content: flex-end;
	text-align: right;
  }
  .main-content .fix-bnr .link{
    padding-right: 10px;
    font-size: 14px;
    margin-left: 0;
  }
  .main-content .fix-bnr .link:after{
    top:1px;
  }
  .main-content .fix-bnr .inner .fix-close{
    left: auto;
    right: -15px;
  }
}

/* =========================================================
   FV  (#FV) 
   ========================================================= */
#fv{
	display: flex;
	justify-content: center;
	align-items: center;
	width: 100%;
	height: 100%;
	position: fixed;
	top:0;
	left: 0;
	z-index: 9999;
	animation: fvfade 2s linear;
	animation-fill-mode: forwards;
	animation-delay: 1.6s;
	transform: translateY(-23px);
}
#fv:before{
	content: '';
	width: 100%;
	height: calc(50% - 45px);
	background:  #747474;
	z-index: 1;
	position: absolute;
	top:0;
	left: 0;
}
#fv:after{
	content: '';
	width: 100%;
	height: calc(50% - 21px);
	background:  #747474;
	z-index: 1;
	position: absolute;
	left: 0;
	bottom: -24px;
}
#fv .fv-inner{
	display: flex;
	justify-content: center;
	align-items: center;
	width: 100%;
	height: 100%;
	position: relative;
}
#fv .fv-inner:before{
	content: '';
	width:calc(50% - 168px);
	height: 90px;
	background:  #747474;
	z-index: 3;
	position: absolute;
	top:calc(50% - 45px);
	right:0;
}
#fv .fv-inner:after{
	content: '';
	width:calc(50% - 168px);
	height: 90px;
	background: #fff;
	z-index: 1;
	position: absolute;
	top:calc(50% - 45px);
	left:0;
	opacity: 0.6;
}
#fv .fv-mask{
	width:calc(50% + 168px);
	height: 90px;
	background:#000;
	z-index: 2;
	position: absolute;
	top:calc(50% - 45px);
	left:0;
	transform-origin: top right;
	animation: fvline .6s ease-out;
	animation-fill-mode: forwards;
	animation-delay: .5s;
}
#fv .fv-img{
	display: block;
	width: 340px;
	height: 90px;
	position: absolute;
	z-index: 3;
}
#fv .fv-img01{
	top:calc(50%  - 45px);
	left: calc(50% - 170px);
}
#fv .fv-img02{
	position: absolute;
	top:calc(50%  - 45px);
	left: calc(50% - 170px);
	z-index: 2;
}
#fv .fv-mask02{
	width:340px;
	height: 90px;
	background:  #000;
	position: absolute;
	top:calc(50% - 45px);
	left:calc(50% - 170px);
	z-index: 2;
	transform-origin: top right;
	animation: fvline .6s ease-in-out;
	animation-fill-mode: forwards;
	animation-delay: 1.6s;
}

@media(max-width:768px){
	#fv{
		height: 100vh;
		height: 100dvh;
    	min-height: 644px;
		transform: translateY(-43px);
	}
	#fv:after{
		height: calc(50% - 1px);
		background:  #747474;
		z-index: 1;
		position: absolute;
		left: 0;
		bottom: -44px;
	}
}

@media(max-width:375px){
	#fv{
		transform: translateY(-40px);
	}
	#fv:after{
		height: calc(50% - 4px);
		bottom: -41px;
	}
}


@keyframes fvline {
	0%{
		transform:scaleX(1);
	}
	100%{
		transform:scaleX(0);
	}
}
@keyframes fvline2 {
	0%{
		opacity: 1;
	}
	100%{
		opacity: 0.6;
		background: #fff;
	}
}
@keyframes fvlogo {
	0%{
		opacity: 1;
	}
	100%{
		opacity: 0;
	}
}
@keyframes fvmask {
	0%{
		opacity: 1;
	}
	100%{
		opacity: 0;
	}
}
@keyframes fvfade {
	0%{
		opacity: 1;
	}
	90%{
		opacity: 0;
		width: 100%;
		height: 100%;
	}
	100%{
		width:0;
		height: 0;
		z-index: -1;
		opacity: 0;
	}
}

/* =========================================================
   3. MV  (#visual)  ― fade + 背景Zoom + クリック可能ドット
   ========================================================= */

#visual {
	position: relative;
}
#visual .inner {
	max-width: none;
	padding: 0;
}
.top_mv {
	position: relative;
	height: 100vh;
	min-height: 644px;
	overflow: hidden;
}
.top_mv .swiper-slide {
	position: relative;
	overflow: hidden;
}
.slide-bg {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transform: scale(1.02);
}
.top_mv .swiper-slide::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(20, 18, 16, .18) 0, rgba(20, 18, 16, 0) 26%, rgba(20, 18, 16, 0) 55%, rgba(20, 18, 16, .3) 100%);
}


.top_mv .swiper-slide {
  overflow: hidden;
}

.top_mv .swiper-slide .slide-bg {
  transform: scale(1);
  will-change: transform;
}
.top_mv .swiper-slide-active .slide-bg,
.top_mv .swiper-slide-prev .slide-bg {
  animation: kenburns 6s ease-in-out forwards;
  animation-delay: 1.5s;
}

@keyframes kenburns {
  from {
    transform: scale(1);
  }
  to {
    transform: scale(1.03);
  }
}

.slide-box {
	position: absolute;
	inset: 0;
	z-index: 3;
	display: flex;
	align-items: center;
}
.slide-inner {
	width: min(1280px, calc(100% - 80px));
	margin-inline: auto;
	color: #fff;
	text-shadow: 0 2px 30px rgba(0, 0, 0, .35);
}
.link-area .slide-inner{
	height: 126px;
	transition: 0.3s;
}
@media(any-hover: hover){
	.link-area .slide-inner:hover{
		opacity: 0.6;
	}	
}
.slide-name {
	display: flex;
	align-items: center;
	gap: 20px;
	flex-wrap: wrap;
	height: 60px;
}
.slide-name .jp {
  display: inline-block;
  padding-top: 15px;
	font-size: 16px;
  font-weight: 500;
}
.slide-name .img{
	max-width: 420px;
}
.slide-divider {
	height: 1px;
	background: rgba(255, 255, 255,1);
	margin: 25px 0;
	width: 100%;
}
.slide-foot {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	flex-wrap: wrap;
}
.slide-foot .cat {
	font-size: 16px;
  font-weight: 500;
}
.slide-foot .cat .en {
  font-size: 18px;
	font-family: var(--ff-en);
	font-weight: bold;
	letter-spacing: -.01em;
	margin-right: 18px;
}
.slide-foot .btn {
	display: inline-block;
	padding: 0 18px;
	line-height: 1;
	font-size: 16px;
	font-weight: 700;
	color: #fff;
	transition: .3s;
}
.slide-foot .btn span {
	padding-right: 43px;
	background: url(../../img/home/2026/arrow-nav-right--white.svg)no-repeat center right / 34px;
	transition: 0.3s;
}
.slide-foot .btn:hover {
	/*
	background: #fff;
	color: var(--c-ink);
	*/
	text-shadow: none;
}

.slide-catch {
	display: inline-block;
	max-width:min(1280px, calc(100% - 80px));
	margin-top: 40px;
	font-family: var(--ff-en);
	font-weight: 400;
	font-size: 17px;
	line-height: 1.9;
	opacity: .5;
	position: absolute;
	left: 0;
	right: 0;
	bottom: 60px;
	margin: 0 auto;
	pointer-events: none;
}

.mv-pager {
	display: flex;
	justify-content: flex-end;
	gap: 10px;
	width: auto !important;
	position: absolute;
	left: auto !important;
	right: 80px !important;
	bottom: 60px !important;
	transform: translateY(-50%);
	z-index: 6;
}
.mv-pager .dot {
	width: 20px;
	height: 20px;
	border-radius: 50%;
 	position: relative;
	cursor: pointer;
}

@property --progress {
  syntax: "<angle>";
  inherits: false;
  initial-value: 0deg;
}

.circle {
  width: 120px;
  height: 120px;
  border-radius: 50%;
}

.mv-pager .dot:before {
  content: '';
  display: block;
  width: 100%;
  height: 100%;
  border-radius: 50%;
  position: absolute;
  top:0;
  left: 0;
  z-index: 2;
}
.mv-pager .dot:after {
  content: '';
  display: block;
  width: 100%;
  height: 100%;
  border-radius: 50%;  
  border: 2px solid #7C7C7C;
  position: absolute;
  top:0;
  left: 0;
  z-index: 1;
}
.mv-pager .dot.is-active:before {
 --progress: 0deg;
  background:
    conic-gradient(
      #fff 0deg,
      #fff var(--progress),
      transparent var(--progress)
    );
  animation: fillCircle 5.2s linear forwards;
}

@media(max-width:768px){
		
	.top_mv {
		height: 100vh;
		height: 100dvh;
		min-height: 644px;
	}
	.link-area .slide-inner{
		width: calc(100% - 40px);
		height: auto;
		margin: 0 auto;
	}
	#visual .swiper-slide:before{
		content: '';
		display: block;
		width:0%;
		height: 5px;
		background: #fff;
		position: absolute;
		left: 0;
		bottom: -1px;
		z-index: 2;
	}
	#visual .swiper-slide-active:before{
  		animation: mvLine 6.8s linear forwards;
		animation-delay: 1s;
	}
	.slide-name {
		align-items: flex-end;
		gap:2%;
	}
	.slide-name .img{
		width: 64%;
	}
	.slide-name .jp{
		width: 34%;
		padding-top: 0;
		font-size: 10px;
		margin-bottom: 1.3%;
	}
	.swiper-slide--02 .slide-name .jp{
		margin-bottom:-.8%;
	}
	.swiper-slide--03 .slide-name .jp{
		margin-bottom:.8%;
	}
	.swiper-slide--04 .slide-name .jp{
		margin-bottom:0;
	}
	.swiper-slide--05 .slide-name .jp{
		margin-bottom:-1px;
	}
	.swiper-slide--06 .slide-name .jp{
		margin-bottom:0;
	}
	.slide-divider{
		margin: 15px 0;
	}
	.slide-foot{
		gap:0;
	}
	.slide-foot .cat{
		width: 100%;
		padding: 0;
		font-size: 13px;
	}
	.slide-foot .cat .en{
		display: block;
		font-size: 14px;
		margin: 0;
	}
	.slide-foot .btn{
		width:100%;
		padding: 0;
		text-align: right;
		font-size: 11px;
		margin-left: auto;
	}
	.slide-foot .btn span{
		padding-right: 20px;
		background: url(../../img/home/2026/arrow-nav-right--white--sp.svg)no-repeat center right / 14px;
	}
	.slide-catch{
		width: calc(100% - 40px);
		max-width: calc(100% - 40px);
		font-size: 9px;
		bottom: 50px;
		margin: 0 auto;
	}
	.mv-pager{
		justify-content: center;
		left: 0 !important;
		right: 0 !important;
		bottom: 25px !important;
		transform:none;
	}
	.mv-pager .dot{
		width: 10px;
		height: 10px;
		background: #7C7C7C;
	}
	.mv-pager .dot.is-active{
		background: #fff;
	}
	.mv-pager .dot:before,
	.mv-pager .dot:after{
		display: none;
	}
}
@media(max-width:380px){
	.slide-foot .cat .en{
		line-height: 1.2;
	}
	.slide-name .jp{
		font-size: 9px;
	}
}

@keyframes fillCircle {
  from {
    --progress: 0deg;
  }
  to {
    --progress: 360deg;
  }
}
@keyframes mvLine {
  from {
	width: 0;
  }
  to {
	width: 100%;
  }
}


/* =========================================================
   4. PICK UPS  (#pickup)
   ========================================================= */

#pickup {
  overflow: hidden;
}
#pickup .inner-wide {
	width: calc(100% - 180px);
	padding-top: 50px;
	padding-bottom: 0;
	margin-left: auto;
	margin-right: auto;
}
#pickup .sec-ttl {
	justify-content: center;
	text-align: center;
	margin: 0 auto 50px;
}
.pickup-slider {
	overflow: visible;
}
/* スライダー操作行（ドット＋矢印）共通 */
#pickup .swiper-pointer-events{
	overflow: unset;
}
.slider-foot, .journal-foot {
	display: flex;
  align-content: center;
	align-items: center;
	justify-content: flex-end;
	gap: 50px;
  width: calc(100% - 180px);
	border-top: 1px solid var(--c-line);
	padding-top: 30px;
  margin: 40px auto 0;
}
.dots {
  display: inline-block !important;
  width: auto !important;
  gap:10px !important;
}
.dots .swiper-pagination-bullet {
	width: 10px;
	height: 10px;
	background: #D3D3D3;
	opacity: 1;
	border-radius: 50%;
	transition: .3s;
}
.dots .swiper-pagination-bullet-active {
	background: var(--c-accent);
}
.arrows {
	display: flex;
  align-items: center;
	gap: 30px;
}
.arrows button {
  display: inline-block;
	width: 33px;
  height: 8px;
  background: url(../../img/home/2026/arrow-nav-left.svg)no-repeat center center / contain;
  transition: .3s;
  margin-top: 2px;
}
.arrows .next {
  background: url(../../img/home/2026/arrow-nav-right.svg)no-repeat center center / contain;
}
.arrows .prev:hover {
	transform: translateX(-5px);
}
.arrows .next:hover {
	transform: translateX(5px);
}
#pickup .swiper-wrapper{
	gap:50px;
	justify-content: space-between;
}
#pickup .swiper-slide{
	width: calc((100% - 100px) / 3);
}
#pickup .pickup-card{
	display: block;
	transition: .3s;
}
@media(any-hover: hover){
	#pickup .pickup-card:hover{
		opacity: .6;
	}
}

@media(max-width:768px){
	#pickup{
		background: #F4F3F1;
	}
	#pickup .inner-wide{
		width: 100%;
		padding: 50px 0 0;
	}
	#pickup .sec-ttl{
		margin-bottom: 40px;
	}
	#pickup .sec-ttl .ttl{
		line-height: 1;
		font-size: clamp(24px, 13vw, 34px);
	}
	#pickup .swiper-wrapper{
		gap:0;
	}
	#pickup .pickup-slider{
		position: relative;
	}
	#pickup .swiper-slide{
		width:auto;
		position: relative;
	}
	#pickup .swiper-slide:before{
		content: '';
		display: block;
		width: 100%;
		height: 100%;
		background: rgba(255,255,255,0.7);
		position: absolute;
		top: 0;
		left: 0;
		transition: .3s;
	}
	#pickup .swiper-slide-active:before{
		opacity: 0;
	}
	#pickup .pickup-foot{
		text-align: center;
	}
	#pickup .dots {
		line-height: 1;
		margin-top: 10px;
	}
	#pickup .dots .swiper-pagination-bullet{
		margin:0 3px;
	}
	#pickup .pickup-prev{
		width: 8px;
		height: 15px;
		background: url(../../img/home/2026/arrow-left.svg)no-repeat center center / contain;
		position: absolute;
		top:calc(50% - 28px);
		left: 20px;
		z-index: 2;
	}
	#pickup .pickup-next{
		width: 8px;
		height: 15px;
		background: url(../../img/home/2026/arrow-right.svg)no-repeat center center / contain;
		position: absolute;
		top:calc(50% - 28px);
		right: 20px;
		z-index: 2;
	}
	.slider-foot, .journal-foot {
		gap: 20px;
		width: calc(100% - 40px);
		padding-top: 30px;
		margin: 40px auto 0;
	}
	.arrows{
		gap:15px;
	}
	.arrows button {
		width: 17px;
		height: 6px;
		margin-top: 2px;
	}
}

/* =========================================================
   5. GALLERY  (#gallery)  ― 右→左マーキー / ホバー拡大 / クリックでモーダル
   ========================================================= */

#gallery .inner-wide {
  width: calc(100% - 180px);
	padding-bottom: 0;
  margin: 0 auto;
}
#gallery .head-row {
  display: flex;
  align-items: center;
	margin-bottom: 20px;
}
.gallery-marquee {
	position: relative;
	overflow-x: clip;
	overflow-y: visible;
	padding: 0;
	margin: 60px 0 240px;
}
.gallery-track {
	display: flex;
	gap: 50px;
	width: max-content;
	animation: marquee 46s linear infinite;
}
.gallery-track.u-sp{
	display: none;
}
@keyframes marquee {
	from {
		transform: translateX(0);
	}
	to {
		transform: translateX(-50%);
	}
}
.gallery-item {
	flex: none;
	width: 240px;
	height: 400px;
	overflow: hidden;
	cursor: pointer;
	position: relative;
	transition: transform .55s cubic-bezier(.2, .7, .2, 1), box-shadow .55s;
	transform-origin: center;
	will-change: transform;
	transition: .7s;
	transition-delay: .2s;
}
.gallery-item img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	position: relative;
	z-index: 1;
	transition: transform .7s ease;
}
.gallery-item__logo{
	display: flex;
	justify-content: center;
	align-items: center;
	width: 80%;
	height: 80%;
	background: rgba(48, 51, 54, 0.5);
	position: absolute;
	top:10%;
	left: 10%;
	z-index: 2;
	opacity: 0;
	transition: .7s;
	transition-delay: .4s;
	transform: translateX(-20px);
}
.gallery-item__logo img{
	width: auto;
	max-width: 60%;
	height: auto;
	opacity: 0;
	transition: .7s;
	transition-delay: .4s;
	transform: translateX(-20px);
}
.gallery-item .img{
	height: 100%;
}
@media (hover: hover) and (min-width: 769px) {
	.gallery-marquee:hover .gallery-track {
		animation-play-state: paused;
	}
	.gallery-item:hover {
		width: 530px;
		height: 550px;
		margin-top: -75px;
		margin-bottom: -75px;
	}
	.gallery-item:hover img {
		transform: scale(1.04);
	}
	.gallery-item:hover .gallery-item__logo {
		opacity: 1;
		transform: translateX(0);
	}
	.gallery-item:hover .gallery-item__logo img{
		opacity: 1;
		transform: translateX(0);
	}
}
@media (hover: hover) and (max-width: 768px) {
	.gallery-item:hover {
	}
	.gallery-item:hover .gallery-item__logo {
		opacity: 1;
		transform: translateX(0);
	}
	.gallery-item:hover .gallery-item__logo img{
		opacity: 1;
		transform: translateX(0);
	}
}
@media(max-width:768px) {
	.gallery-track.u-pc{
		display: none;
	}
	#gallery .inner-wide{
		width: calc(100% - 40px);
		padding:50px 0 0;
	}
	#gallery .head-row{
		margin-bottom: 40px;
	}
	#gallery .sec-ttl{
		margin-bottom: 0;
	}
	#gallery .sec-ttl span{
		margin: 0 0 1px 10px;
	}
	.gallery-item {
		width: 170px;
		height: 190px;
	}
	.gallery-item__logo img{
		max-width: 80%;
	}
	.gallery-track {
		animation-duration: 34s;
	}
	.gallery-track.u-sp{
		display: flex;
	}
	.gallery-marquee {
		margin: 0;
	}
	.gallery-track {
		gap: 30px;
	}
	.gallery-track--sp {
		margin-top: 20px;
		margin-bottom: 70px;
		animation-delay: 3s;
	}
}

/* =========================================================
   6. SPICE UP SPACE  (#about)
   ========================================================= */

#about {
	position: relative;
	color: #fff;
	padding: 180px 0 130px;
	overflow: hidden;
}
#about .bg {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
    inset: -100px 0;
    transform: translate3d(0, 0, 0);
    will-change: transform;
}
#about .inner {
	position: relative;
	z-index: 2;
	display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
	gap: 60px;
	align-items: center;
	max-width: 1280px;
}
#about .catch {
	font-family: "Lato", sans-serif;
	font-weight: 400;
	font-size:clamp(86px, 6vw, 96px);
	line-height: 1.25;
}
#about .txt{
	width: 640px;
	width: 55%;
}
#about .txt .lead {
	font-size: clamp(16px, 1.5vw, 18px);
	font-weight: 500;
	line-height: 1.8;
	margin-bottom: 40px;
}
#about .txt .lead p {
	margin-top: 5px;
	margin-bottom: 25px;
}
#about .txt .en {
	font-family: var(--ff-en);
	font-weight: 300;
	font-size: 17px;
	line-height: 1.4;
	opacity: .82;
	margin-bottom:0;
}
#about .txt .link-btn {
	color: #fff;
}
#about .txt .link-btn::after {
	background: #fff;
}
#about .foot {
	display: flex;
	justify-content: flex-end;
	width: 100%;
	margin: -20px -25px 0 0;
}
#about .foot .link-text{
	font-size: 14px;
}
@media(max-width:1025px) {
	#about .inner{
		align-items: flex-start;
	}
	#about .catch {
		font-size: clamp(60px, 7vw, 120px);
	}
	#about .txt{
		width: 60%;
	}
}
@media(max-width:768px) {
	#about {
		min-height: 100vh;
		display: flex;
		align-items: center;
		padding: 60px 0;
	}
	#about .bg{
		height: 110%;
	}
	#about .inner {
		grid-template-columns: 1fr;
		gap: 25px;
		padding-left:35px;
		padding-right: 35px;
	}
	#about .catch {
		font-size: clamp(45px, 14vw, 55px);
		margin: 0 auto 15px;
		order: -1;
	}
	#about .txt{
		width: 100%;
	}
	#about .txt .lead{
		font-size: clamp(12px, 4vw, 14px);
	}
	#about .txt .en{
		font-size: clamp(10px, 3vw, 11px);
	}
	#about .foot .link-text{
		padding-right: 30px;
		background: url(../../img/home/2026/arrow-nav-right--white.svg)no-repeat center right / 17px;
		font-size: 12px;
		margin-top: 25px;
		transform: translateX(20px);
	}
}
@media(max-width:380px) {
	#about .inner{
		padding: 25px;
		padding-left: 25px;
		padding-right: 25px;
	}
}
/* =========================================================
   7. PRODUCTS  (#product)  ― twoe.jp 風ホバー（画像Zoom＋オーバーレイ）
   ========================================================= */
#product{
  background: #F6F6F6;
}
#product .inner-wide{
  width: calc(100% - 180px);
  padding-top: 210px;
  padding-bottom: 140px;
	border-bottom: 1px solid var(--c-line);
  margin:0 auto;
}
#product .head-row {
  display: flex;
  align-items: center;
  margin: 0 0 50px;
}
.prod-grid {
	display: grid;
	grid-template-columns:1fr 1fr 1fr 1fr;
	grid-template-rows: 1fr 1fr;
	gap: 20px;
}
.prod-card {
	position: relative;
	overflow: hidden;
	display: block;
	aspect-ratio: 1/1;
	background: #222;
}
.prod-card:before {
	content: '';
	display: block;
	width: 100%;
	height: 100%;
	background: #8B9FA2;
	position: absolute;
	top:0;
	left: 0;
	z-index: 3;
/*	transition: 1s ease-in-out;*/
	transition: 0.4s ease-in-out;
/*	transition-delay: 1s;*/
	transition-delay: 0.6s;
}
.fade_on .prod-card:before {
  transform: translateY(100%);
}
.fade_on .prod-card--02:before {
  transform: translateX(100%);
}
.fade_on .prod-card--03:before {
  transform: translateX(-100%);
}
.fade_on .prod-card--04:before {
  transform: translateY(-100%);
}
.fade_on .prod-card--05:before {
  transform: translateY(100%);
}
.prod-card.tall {
	grid-column: 3 / span 4;
	grid-row: 1 / span 2;
	aspect-ratio:auto;
}
.prod-card .img {
	position: absolute;
	inset: 0;
}
.prod-card .img img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .9s cubic-bezier(.2, .7, .2, 1);
}
.prod-card .en-v {
	position: absolute;
	top: 25px;
	right: 20px;
	writing-mode: sideways-lr;
	color: #fff;
	line-height: 1;
	font-family: var(--ff-en);
	font-size:clamp(8px, 0.6vw, 16px);
	letter-spacing: .16em;
	text-shadow: 0px 0px 4px rgba(0,0,0,0.6);
	z-index: 2;
}
.prod-card .label {
	position: absolute;
	left: 0;
	bottom: 20px;
	z-index: 2;
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	width: 100%;
	padding: 0 53px 0 20px;
	background: url(../../img/home/2026/arrow-nav-right--white.svg)no-repeat center right 20px / 33px;
	color: #fff;
}
@media (any-hover: hover){
	.prod-card:hover .label {
		z-index: 3;
		background: url(../../img/home/2026/arrow-nav-right.svg)no-repeat center right 20px / 33px;
	}
}
.prod-card .label h3 {
	line-height: 1;
	font-size: 16px;
	font-size:clamp(10px, 1vw, 16px);
	font-weight: 500;
	letter-spacing: .04em;
}
.prod-card .label .ar {
	width: 46px;
	height: 1px;
	background: #fff;
	position: relative;
	transition: width .4s;
	flex: none;
	margin-bottom: 9px;
}
.prod-card .label .ar::after {
	content: "";
	position: absolute;
	right: 0;
	top: -3px;
	width: 7px;
	height: 7px;
	border-top: 1px solid #fff;
	border-right: 1px solid #fff;
	transform: rotate(45deg);
}
.prod-card:hover .label .ar {
	width: 62px;
}
.prod-card-box{
  width: 100%;
  height: 100%;
  background: rgba(246, 246, 246,.8);
  position: absolute;
  top:0;
  left:0;
  opacity: 0;
  z-index: 2;
  transition: .3s;
}
.prod-card-box__inner{
  width: 100%;
  height: 100%;
  padding: clamp(20px, 2vw, 50px) clamp(10px, 1vw, 40px);
  position: relative;
}
.prod-card-inner__title{
	display: block;
	line-height: 1;
	font-size: clamp(14px, 1.2vw, 18px);
	font-weight: bold;
	margin-bottom: clamp(15px, 1.2vw, 25px);
	color: #444;
}
.prod-card-inner__title span{
	display: inline-block;
	font-size: clamp(10px, .8vw, 12px);
	margin-top: 10px;
	color: #444;
}
.prod-card-inner__text{
	line-height: 1.8;
	font-size: clamp(12px, 1vw, 14px);
	color: #444;
}
.prod-card-inner__link{
	display: inline-block;
	padding: 14px 20px;
	line-height: 1;
	font-size: clamp(12px, 1vw, 16px);
	position: absolute;
	right: 0;
	bottom: 0;
	color: #444;
}
.prod-card-inner__link span{
  display: inline-block;
  padding-right: 43px;
  background: url(../../img/home/2026/arrow-nav-right.svg)no-repeat center right / 33px;
  font-weight: bold;
}

.tall .prod-card-box__inner{
  width: 100%;
  height: 100%;
  padding: clamp(40px, 4vw, 80px) clamp(20px, 3vw, 60px);
  position: relative;
}
.tall .prod-card-inner__title{
	font-size: clamp(18px, 2vw, 24px);
  margin-bottom: clamp(15px, 1.2vw, 21px);
}
.tall .prod-card-inner__title span{
	font-size: clamp(12px, 1vw, 14px);
}
.tall .prod-card-inner__text{
  line-height: 1.8;
	font-size: clamp(14px, 1.4vw, 16px);
}

@media(any-hover: hover){
  .prod-card:hover .prod-card-box{
    opacity: 1;
  }
}

@media(max-width:1100px) {
	#product .inner-wide{
		width: calc(100% - 40px);
		padding: 60px 0 50px;
	}
	#product .head-row{
		margin-bottom: 30px;
	}
	#product .sec-ttl{
		margin-bottom: 0;
	}
	#product .sec-ttl span{
		margin: 0 0 1px 10px;
	}
	.prod-grid {
		grid-template-columns: 1fr 1fr;
		grid-template-rows: auto;
		gap:10px;
		padding: 0 10px;
	}
	.prod-card{
		aspect-ratio: 1/1;
	}
	.prod-card.tall {
		grid-column: 1 / span 2;
		grid-row: auto;
		aspect-ratio: 1/1;
	}
	.prod-card--01{
		order: 2;
	}
	.prod-card--02{
		order: 3;
	}
	.prod-card--03{
		order: 4;
	}
	.prod-card--04{
		order: 5;
	}
	.prod-card--05{
		order: 1;
	}
	.prod-card .label{
		padding: 0 20px 0 10px;
		background: url(../../img/home/2026/arrow-nav-right--white.svg)no-repeat center right 10px / 10px;
		bottom: 15px;
	}
	.prod-card .label h3{
		font-size: 10px;
	}
	.prod-card .en-v{
		font-size:8px;
		top:10px;
		right: 6px;
	}
}
@media(max-width:380px){
	.prod-card .en-v{
		transform: scale(.8);
        transform-origin: top right;
	}
	.prod-card .label{
		padding: 0 10px;
		background: url(../../img/home/2026/arrow-nav-right--white.svg)no-repeat center right 5px / 10px;
		bottom: 15px;
	}
}

/* =========================================================
   8. JOURNAL  (#journal)
   ========================================================= */

#journal{
  background: #F6F6F6;
}
#journal .inner-wide{
	max-width: 100%;
}
#journal .head-row {
	max-width: 1580px;
	width: calc(100% - 180px);
	margin: 0 auto 50px;
}
.journal-slider {
	overflow: visible;
}
.journal-card {
	display: block;
	transition: .3s;
}
.journal-card .ph {
  display: block;
	aspect-ratio: 3/2;
	overflow: hidden;
	margin-bottom: 10px;
}
.journal-card .ph img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .8s ease;
}
.journal-card:hover .ph img {
	transform: scale(1.05);
}
.journal-card .date {
	font-size: 14px;
	color:#505050;
}
.journal-card .ttl {
	display: block;
	font-size: 20px;
	font-weight: 500;
	line-height: 1.6;
  color: #505050;
	margin: 15px 0 20px;
}
.journal-card .cat {
	display: flex;
  justify-content: flex-start;
	gap: 10px;
	flex-wrap: wrap;
}
.journal-card .cat span {
	padding:10px;
	background: #fff;
	border-radius: 5px;
  line-height: 1;
  font-weight: 500;
	font-size: 12px;
}
@media(any-hover: hover){
	.journal-card:hover .ttl{
		color: var(--c-accent);
	}
}
@media(max-width:768px){
	#journal .inner-wide{
		padding: 50px 0 60px;
	}
	#journal .head-row{
		width: calc(100% - 40px);
	}
	#journal .sec-ttl{
		margin-bottom: 0;
	}
	#journal .sec-ttl span{
		margin-bottom: 0;
	}
	#journal .link-text{
		margin: 0 0 6px;
	}
	#journal .journal-slider{
		padding: 0 20px;
	}
	.journal-card .ph img {
		margin-bottom: 15px;
	}
	.journal-card .date {
		font-size: 11px;
	}
	.journal-card .ttl {
		font-size: 14px;
		margin: 5px 0 10px;
	}
	.journal-card .cat {
		gap: 10px;
	}
	.journal-card .cat span {
		line-height: 1;
		font-size: 10px;
	}
}

/* =========================================================
   9. NEWS  (#news)
   ========================================================= */
#news{
  background: #fff;
}
#news .inner,
#news .inner-wide{
	display: grid;
	grid-template-columns: 280px 1fr;
	grid-template-areas:
		"lead  list"
		"blank link";
	gap: 30px;
	width: calc(100% - 180px);
	padding-top: 120px;
	padding-bottom: 180px;
	margin: 0 auto;
}
#news .lead-col{
	 grid-area: lead;
}
#news .lead-col .flex{
	display: flex;
	align-items: flex-end;
}
#news .lead-col .ttl {
	font-family: var(--ff-en);
	font-size: clamp(34px, 4vw, 50px);
	font-weight: bold;
	line-height: 1;
	color: #595959;
}
#news .lead-col .sub {
	font-size: 14px;
	color: var(--c-sub);
	letter-spacing: 0;
	margin: 0px 0px 4px 10px;
}
.news-list { grid-area: list; }
.news-list li a {
	display: grid;
	grid-template-columns: 80px 95px 1fr;
	align-items: center;
	gap: 20px;
	padding: 30px 20px;
	border-bottom: 1px solid var(--c-line);
	transition: background .3s;
}
.news-list li:first-child a {
	border-top: 1px solid var(--c-line);
}
.news-list li a:hover {
	background: #fff;
}
.news-list .date {
	font-size: 16px;
	color: #303336;
}
.news-list .cat {
	justify-self: start;
	background: #303336;
	color: #fff;
  line-height: 1;
	font-size: 12px;
	padding:8px 10px;
	border-radius: 3px;
}
.news-list .nttl {
	font-size: 16px;
	font-weight: 500;
}
#news .link-cont {
	grid-area: link;
	width: 100%;
	text-align: right;
}
@media(any-hover: hover){
  .news-list li a:hover {
    background: #F8F8F8;
  }
}
@media(max-width:1000px) {
	#news .inner,
	#news .inner-wide{
		width: calc(100% - 40px);
		padding: 60px 0 75px;
		gap:25px;
		grid-template-columns: 1fr;
		grid-template-areas:
			"lead"
			"list"
			"link";
	}
	#news .lead-col .sub {
		margin: 0px 0 -4px 10px;
	}
	.news-list li a {
		display: flex;
		justify-content: flex-start;
		align-items: flex-start;
		flex-wrap: wrap;
		gap:0;
		padding: 25px 10px;
	}
	.news-list .date {
		display: inline-block;
		font-size: 12px;
		margin: 0 12px 12px 0;
	}
	.news-list .cat {
		padding: 6px;
		font-size: 10px;
		margin-top: -1px;
		margin-right: 10px;
	}
	.news-list .nttl {
		width: 100%;
		font-size: 14px;
	}
	#news .link-text{
		margin-top: 5px;
	}
}

/* =========================================================
   11. MODAL（Gallery 施工事例詳細）
   ========================================================= */

.js-modal {
	display: none;
	position: fixed;
	inset: 0;
	z-index: 1200;
}
.modal_bg {
	position: absolute;
	inset: 0;
	background: rgba(20, 18, 16, .6);
}
.modal_content {
	position: relative;
	z-index: 2;
	max-width: 840px;
	width: calc(100% - 48px);
	margin: 7vh auto;
	background: #fff;
	max-height: 86vh;
	overflow: auto;
}
.modal_content .box {
	display: grid;
	grid-template-columns: 1fr 1fr;
}
.modal_content .img img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.modal_content .detail {
	padding: 34px 30px;
}
.modal_content table {
	width: 100%;
	border-collapse: collapse;
	font-size: 14px;
}
.modal_content th, .modal_content td {
	text-align: left;
	padding: 11px 4px;
	border-bottom: 1px solid var(--c-line);
	vertical-align: top;
}
.modal_content th {
	width: 90px;
	color: var(--c-sub);
	font-weight: 500;
}
.modal_content .close {
	position: absolute;
	top: 14px;
	right: 16px;
	width: 34px;
	height: 34px;
	display: grid;
	place-items: center;
	font-size: 24px;
	line-height: 1;
	color: #fff;
	z-index: 3;
	cursor: pointer;
}
@media(max-width:768px) {
	.modal_content .box {
		grid-template-columns: 1fr;
	}
}