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

/*=============================
	Fv
===================================================*/

#fv {
	position: relative;
	width: 100%;
	aspect-ratio: 5 / 4;	
	max-height: 100vh;
	overflow: hidden;
}

/* スライダー */
#topslider {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  aspect-ratio: 5 / 4;
  max-height: 100vh;
  z-index: 2;	
}

#fv::after {
  content: "";
  position: absolute;
  width: 100%;
	height: 20%;
	bottom: 0;
	left: 0;
  background:linear-gradient(to bottom ,rgba(255,255,255,0),rgba(255,255,255,1));
  z-index: 3;
	
}

/* ======================
   中身
====================== */
.fv-inner {
	position: relative;
	z-index: 2;
	height: 80%;
	margin: auto auto 0;
	display: flex;
	flex-direction: column;
	justify-content:flex-end;
	color: #fff;
	padding: 0 40px;
	position: relative;
    z-index: 5;
}

/* ======================
   ロゴ
====================== */
.fv-logo {
  position: absolute;
  top: clamp(15px,5vh,30px);
  left: clamp(15px,5vh,40px);
}

.fv-logo img {
  height: 50px;
}

/* ======================
   キャッチコピー
====================== */
#fv h2 {
	font-size: clamp(2.813rem, 1.146rem + 3.47vw, 3.75rem);
	font-weight: bold;
	line-height: 1.4;
	margin-bottom: clamp(30px,8vw,60px);
	letter-spacing: 0.05em;
	width: 90%;
	padding-left: 5vw;
	text-shadow: 0 0 5px rgba(0,0,0,.5);
}

/* サブコピー */
#fv h3 {
  font-size: clamp(1.25rem, 0.694rem + 1.16vw, 1.563rem);
	margin-bottom: clamp(30px,8vw,60px);
 padding-left: 5vw;
	text-shadow: 0 0 5px rgba(0,0,0,.5);
}

/* ======================
   ボタン
====================== */
.fvbtn{	
  padding-left: 5vw;
	margin-bottom: clamp(30px,8vw,50px);
}
.fvbtn a {
	display: inline-block;
	padding: 16px 80px;
	background: rgba(240,133,0,.8);
	color: #fff;
	font-weight: bold;
	font-size: 20px;
	letter-spacing: 0.05em;
	border-radius: 60px;
	transition: 0.3s;
	position: relative;
}
.fvbtn a::before,
.fvbtn a::after{
	position: absolute;
	content: '';
	width: 40px;
	height: 20px;
	top: 50%;
	transform: translateY(-50%);
}
.fvbtn a::before{
	background: url("../img/icon/icon_mail_g.svg")no-repeat center/contain;
	left: 20px;
}
.fvbtn a::after{
	background: url("../img/icon/icon_arrow.svg")no-repeat center/contain;
	width: 30px;
	right: 20px;
}

.fvbtn a:hover {
	background: rgba(240,133,0,1);
    color: #fff;
}

/* =====================
	動き
==================== */
/* 初期状態 */
#fv h2,
#fv h3,
.fvbtn {
  opacity: 0;
  transform: translateY(100px); /* ← 深めに下げるのがポイント */
}

/* アニメーション */
#fv h2 {
  animation: fadeUpSlow 1.8s ease-out 1.2s forwards;
}

#fv h3 {
  animation: fadeUpSlow 1.8s ease-out 1.2s forwards;
}

.fvbtn {
  animation: fadeUpSlow 1.8s ease-out 1.2s forwards;
}

/* ゆっくり上がる */
@keyframes fadeUpSlow {
  0% {
    opacity: 0;
    transform: translateY(100px);
  }
  60% {
    opacity: 1;
  }
  100% {
    opacity: 1;
    transform: translateY(0);
  }
}

/*===========================================
	reason
======================================================================*/
.reason {
	text-align: center;
	position: relative;
	background:url("../img/index/reason2.jpg")no-repeat bottom/cover;
}

/* 背景ぼかし用（必要なら） */
.reason::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 0;
	background: linear-gradient(to bottom,#fff,transparent);
	height: 50%;
}

.reason-head h2 {
  font-size: clamp(1.313rem, 1.018rem + 1.31vw, 2rem);
  margin-bottom: 40px;
}

.reason-head p {
  line-height: 1.8;
  color: #333;
}

/* カード */
.reason-list {
  display: grid;
  grid-template-columns: repeat(6, 1fr); 
  gap: 30px;
  margin-top: 80px;
}

.reason-card {
  background: #fff;
  border-radius: 12px;
  padding: 30px 20px;
  text-align: left;
  box-shadow: 0 5px 10px rgba(0,0,0,0.08);
  position: relative;
  transition: 0.3s;
}

/* 上段：No + タイトル */
.reason-headline {
  display: flex;
  align-items: center;
  gap: 20px;
  margin-bottom: 15px;
	height: 85px;
	padding: 0 1rem
}

/* 下段：アイコン + テキスト */
.reason-body {
  display: flex;
  align-items: flex-start;
  gap: 15px;
}

/* アイコン */
.reason-body .icon {
  width: 80px;
  height: 80px;
  flex-shrink: 0;
}
.reason-card .icon {
  background: url("../img/index/icon01.png") center/contain no-repeat;	
}
.reason-card:nth-child(2) .icon {
  background: url("../img/index/icon02.png") center/contain no-repeat;
}
.reason-card:nth-child(3) .icon {
  background: url("../img/index/icon03.png") center/contain no-repeat;
}
.reason-card:nth-child(4) .icon {
  background: url("../img/index/icon04.png") center/contain no-repeat;
}
.reason-card:nth-child(5) .icon {
  background: url("../img/index/icon05.png") center/contain no-repeat;
}

/* テキスト */
.reason-body p {
  margin: 0;
}


/* 番号 */
.reason-card .num {
	font-family: var(--font-sge);
  font-size: 35px;
  font-weight: bold;
  color: var(--color-main);
  display: block;
  margin-bottom: 10px;
	margin-right: 20px
}

.reason-card h3 {
  font-size: clamp(1.25rem, 0.523rem + 1.14vw, 1.375rem);
  margin-bottom: 10px;
}

.reason-card p {
  font-size: 16px;
  line-height: 1.6;
  color: #555;
}

/* 上3つ */
.reason-card:nth-child(1),
.reason-card:nth-child(2),
.reason-card:nth-child(3) {
  grid-column: span 2;
}

/* 下2つ中央寄せ */
.reason-card:nth-child(4) {
  grid-column: 2 / 4;
}
.reason-card:nth-child(5) {
  grid-column: 4 / 6;
}


/*============================
動画
*/
.bglight{
	padding: 30px 0 ;
	background: var(--bglight);	
}
.video-wrap {
  max-width: 1200px; /* 好きなサイズ */
  margin: 0 auto;
}

/*　===============================
	case
=============================================== */
.t_case{
	padding-bottom: 0;
}
.t_case::before{
	position: absolute;
	content: '';
	width: 48%;
	height: calc(90% - 120px);
	bottom: 10%;
	right: 0;
	border-radius: 30px 0 0 30px;
	background: var(--bglight);
}
.t_case .sec_ttl{
	margin-top: -50px;
}
/* レイアウト */
.case_wrap {
  display: flex;
  align-items: flex-end;
  gap: 60px;
	margin-bottom: 80px;
}

/* 左：画像 */
.caseimg {
  width: 50%;
}

.caseimg p {
  margin-bottom: 15px;
  font-size: 16px;
	font-weight: 600;
	text-align: center;
}

.caseimg figure {
  border-radius: 20px;
  overflow: hidden;
}

.caseimg img {
  width: 100%;
  display: block;
}

/* 右：コンテンツ */
.casecontent {
  width: 50%;
  padding: 30px 10px 120px 80px;
  border-radius: 20px;
  position: relative;
	margin-bottom: 60px;
	z-index: 0;
}

/* 文章 */
.casecontent p {
  line-height: 2;
  margin-bottom: 30px;
}

.slide-wrap{
	width: 50%;
	position: absolute;
	bottom:0;
	right: 0;
	z-index: 3;
}
.min-slider img {
    width:100%;/*スライダー内の画像を横幅100%に*/
    height:auto;
	border-radius: 15px;
}

/*slickのJSで書かれるタグ内、スライド左右の余白調整*/
.min-slider .slick-slide {
    margin:0 10px;/*スライド左右の余白調整*/
}

.min-slider li {
  overflow: hidden;
	border-radius: 15px;
}

.min-slider img {
  transition: transform 0.4s ease;
}

.min-slider li:hover img {
  transform: scale(1.08);
  transition: transform 0.4s ease;
}
/*=======================================
	事業内容
===========================================================*/
.t_service{
}
.t_service::before{
	position: absolute;
	content: '';
	background: var(--bglight);
	width: 60%;
	height: 55%;
	border-radius: 0 30px 30px 0;
	left: 0;
	top: clamp(100px,12vw,180px);
}
.t_service .sec_ttl{
	text-align: left;
}

.t_service p {
  margin-top: 20px;
  line-height: 2;
}
.serv-box {
  background: #fff;
	margin-top: 50px;
  padding: 40px;
  border-radius: 20px;
  box-shadow: 0 10px 30px rgba(0,0,0,0.1);
}

.serv-list {
  display: flex;
  gap: 20px;
  margin-bottom: 30px;
}

.serv-card {
  flex: 1;
  position: relative;
  overflow: hidden;
  border-radius: 10px;
  cursor: pointer;
}

.serv-card img {
  width: 100%;
  display: block;
}
.serv-card::before {
  content: "";
  position: absolute;
  inset: 10px;
  border: 2px solid #d87a00;
  pointer-events: none;
	z-index: 2;
	transition: .5s;
}
.serv-card .txt {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  color: #fff;
  text-align: center;
	text-shadow: 0 0 3px #000;
	z-index: 1;
}

.serv-card .txt span {
  font-size: 12px;
}

.serv-card .txt h4 {
  font-size: 20px;
  margin-top: 5px;
}
.serv-card img {
  transition: transform .6s ease;
}

.serv-card:hover img {
  transform: scale(1.08);
  	
}

.serv-card::after {
	content: "";
	position: absolute;
	inset: 0;
	background: rgba(0,0,0,0.2);
	opacity: 1;
	transition: .3s;
	z-index: 0;
}

.serv-card:hover::after {
  opacity: 0;
}

.serv-card:hover::before {
    inset: 0px;
	border-radius: 10px;
	transition: .5s;
}
/*===================================
	Topics
======================================================*/
.ttlwrap{
	width: 30%;
	padding-right: 3vw;
}
#newsWrap{
	width: 65%;
	height: 200px;
}
#newsWrap._02{
	height: 150px;
}
#newsList {
	height: 180px;
	overflow-y: auto;
}
#newsWrap._02 #newsList {
	height: 126px;
	overflow-y: auto;
}
#newsList li{
	border-bottom: 1px dotted #333;
}
#newsList li a{
	display: block;
	padding: .8rem 10px .7rem;
}
#newsList li a:hover{
	color: var(--color-main) ;
}

#newsList li .up_ymd{
	width: 100px;
	margin-right: 15px;
}
/*スクロールバー*/
#newsWrap ul#newsList::-webkit-scrollbar{
    overflow: hidden;
    width: 5px;
    background: #fff;
}
#newsWrap ul#newsList::-webkit-scrollbar-button {
    display: none;
}
#newsWrap ul#newsList::-webkit-scrollbar-thumb, 
#newsWrap ul#newsList::-webkit-scrollbar-corner {
    background: var(--color-main) ;
	height: 30%;
}

/*==============================================
fcta
=============================================================*/

.fcta {
  position: relative;
  padding: 100px 0;
  background: url("../img/index/fcta.jpg") center bottom 20% / cover no-repeat;
  color: #fff;
  text-align: center;
}

/* オーバーレイ */
.fcta::before {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(0,0,0,0.5);
}
.fcta h3 {
  font-size: clamp(1.3rem, 1.054rem + 1.1vw, 1.875rem);
  margin-bottom: 15px;
}
.fcta h4 {
	line-height: 2;
	margin-bottom: 40px;
	font-size: clamp(0.875rem, 0.768rem + 0.48vw, 1.125rem);	
}
.fcta .flexbox{
}
.cta_chilled {
  padding: 30px 2rem;
  width: 50%;
  text-align: center;
}
.cta_chilled.web{
	border-right: 1px solid #fff;
	
}
.webicon {
  background: rgba(255,255,255,0.5);
	border-radius: 50%;
	width: 80px;
	height: 80px;
	margin: 0 auto 10px;
}

.webicon img {
    width: 40px;
	height: 80px;
	object-fit: contain;
}
.cta_chilled p {
  margin-bottom: 15px;
}

.note {
  font-size: 12px;
  margin-top: 10px;
  opacity: 0.8;
}
.webbtn {
  display: inline-block;
  padding: 12px 30px;
  background: #fff;
  color: #d87a00;
  text-decoration: none;
  border-radius: 3px;
  transition: .3s;
}

.webbtn:hover {
  background: #d87a00;
  color: #fff;
}

.telbtn {
  display: inline-block;
  font-size: 1.8rem;
  color: #fff;
  text-decoration: none;
  margin-top: 5px;
}

.telbtn span {
  font-size: 1rem;
  margin-right: 5px;
}