@charset "UTF-8";
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@300;400;500;700&family=Manrope&family=Zen+Kaku+Gothic+New:wght@400;500;700;900&family=Shippori+Mincho:wght@400;500;600;700&display=swap');
@import url("https://use.typekit.net/bkr7uez.css");
@import url('https://fonts.googleapis.com/css2?family=Inter:ital,opsz,wght@0,14..32,100..900;1,14..32,100..900&display=swap');


/* Micro clearfix */

.cf { zoom: 1; }
.cf:before, .cf:after { content: ""; display: table; }
.cf:after { clear: both; }

/* 必要要素の初期設定 */

body {
-webkit-font-smoothing: antialiased;
 -moz-osx-font-smoothing: grayscale;
 width: 100%;
 margin: 0;
 padding: 0;
 color:#000000;
 font-size: 12px;
 font-family:  'Noto Sans JP', serif;
 background-color:#f1f1f1;
 /*
 min-width:1000px;
 */
 
}

*:focus {
  outline: none;
}


a {
 text-decoration:none;
 outline:none;
}

a:focus{
	outline: none;
}

a:hover{
	opacity:0.7;	
}

a{
  -webkit-tap-highlight-color: rgba(0,0,0,0);
cursor:pointer;
}


ul {
 margin: 0;
 padding: 0;

}

li{
	list-style:none;	
}

/* ベースレイアウト */






#wrapper {
 width: 100%;
 margin: 0;
 padding:0;
	

 opacity: .0; 
	filter: alpha(opacity=0); 
	-ms-filter: "alpha(opacity=0)"; 
	-khtml-opacity: .0; 
	-moz-opacity: .0; 

	

}
canvas{
		position:absolute;
		position:fixed;
		z-index:-1;
	top:0;
	left: 0;
}

.contents{
	width:100%;
	position:relative;
	
}


header{
	position: relative;
	z-index: 9999;
	margin: 40px 0 0 40px;
	overflow: auto;
	
}



header .logo{
	display: block;
	float: left;
	margin: 0 0 0 0;
}



header .menu_right{
	display: block;
	float: right;
	 font-family: "Inter", sans-serif;
	font-weight: 500;
	font-size: 12px;
	line-height: 1.2em;
	margin: 0 40px 0 0;
	padding: 0;
	text-align: right;
	
}
header .menu{
	font-family: termina, sans-serif;
	display: block;
	float: left;
	margin: 10px 40px 0 0;
	font-size: 15px;
	font-weight: 500;
	text-align: left;
	color: #1D2088;
}

header .menu a{
	display: inline-block;
	margin: 0 40px 0 0;
	padding: 0;
	
	overflow: hidden; /* 1つ目の影を隠す */
  color: transparent; /* テキスト本体は透明にする */
  font-size: 15px;
  /*
   影の設定
   1つ目：Y方向の位置にマイナスに設定してテキスト本体の上に配置、ぼかしなし
   2つ目：位置はテキスト本体と同じ、ぼかしなし
  */
  text-shadow: 0 -1.5em 0 #1D2088, 0 0 0 #1D2088;
  transition: text-shadow 0.3s;
	
}
header .menu a:hover {
  text-shadow: 0 0 0 #1D2088, 0 1.5em 0 #1D2088; /* 2つの影の位置を上方向に1.5emずつずらす */
}


header span{
	display: inline-block;
	vertical-align: top;
	margin: 5px 8px 0 0;
	padding: 0;
	font-size: 8px;
	color:#000000;
}




header .contact{
	font-family: 'Noto Sans JP', serif;
	display: block;
	float: left;
	margin: 0 40px 0 0;
	text-align: left;
	overflow: auto;
	position: relative;
	
}

header .contact a{
	position: relative;
	overflow: auto;
	color: #ffffff;
	display: block;
	font-size: 13px;
	font-weight: 600;
	
	height: 44px;
	line-height: 44px;
	padding: 0 80px;
	margin: 0;
	background: #1D2088;
	border-radius: 32px;
	text-align: center;
}

header .contact a img{
	display: block;
	position: absolute;
	margin: 0 0 0 0;
	right: 16px;
	top: 10px;
}

.menu-trigger,
.menu-trigger span {
  display: inline-block;
  transition: all .4s;
  box-sizing: border-box;
}
.menu-trigger {
  position: relative;
  width: 60px;
  height: 32px;
  background: none;
  border: none;
  appearance: none;
  cursor: pointer;
}
.menu-trigger span {
  position: absolute;
  left: 0;
  width: 100%;
  height: 4px;
  background-color: #293088;

}
.menu-trigger span:nth-of-type(1) {
  top: 0;
}
.menu-trigger span:nth-of-type(2) {
  top: 12px;
	width: 40px;
}
.menu-trigger span:nth-of-type(3) {
  bottom: 4px;
}


#menu01.active span:nth-of-type(1) {
  transform: translateY(10px) rotate(-45deg);
}
#menu01.active span:nth-of-type(2) {
  opacity: 0;
}
#menu01.active span:nth-of-type(3) {
  transform: translateY(-10px) rotate(45deg);
}



.maincopy{
	 font-family: "Inter", sans-serif;
	font-size: 100px;
	line-height: 1em;
	
	display: block;
	margin: 160px 0 0 40px;
	
}

.maincopy h1{
	font-size: 100px;
	line-height: 1em;
	margin: 0;
	padding: 0;
	color: #000000;
	font-weight: 300;
	letter-spacing: 0em;
}

.maincopy h1 .bold{
	font-weight: 500;
}

.maincopy h2{
	font-weight: 600;
	font-size: 20px;
	color: #333333;
	line-height: 1em;
	margin: 16px 0 0 0;
	padding: 0;
}
/*text animetions*/
@keyframes showTextFromBottom{
  0%{
    transform: translateY( 100% );
  }
  100%{
    transform: translateY( 0px );
  }
}
.anime-up.displayed span{
  animation: showText 1s backwards;
  display: inline-block;
}
.anime-up.displayed > span{
  overflow: hidden;
}
.anime-up.displayed > span > span{
  animation: showTextFromBottom 0.5s backwards;
}



.box {
  width: 100%;
  height: auto;
  margin: 0 0 0 0;
  overflow: hidden;
}

.box .boxInner {
  width: inherit;
  height: inherit;
  line-height: auto;

  opacity: 0;
}


.isPlay {
  animation-name: play;
  animation-duration: 0.5s;
  animation-fill-mode: forwards;
  animation-timing-function: cubic-bezier(.8,0,.5,1);
  position: relative;
  opacity: 1 !important;
}
  
.isPlay:before {
  animation-name: maskOut;
  animation-duration: 0.5s;
  animation-delay: 0.5s;
  animation-fill-mode: forwards;
  animation-timing-function: cubic-bezier(.8,0,.5,1);
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  z-index: 1;
  width: 100%;
  height: 100%;
  background-image: linear-gradient( 109.6deg,  rgba(174,174,170,1) 11.2%, rgba(126,115,111,1) 91.1% );
}

@keyframes play {
  from {
    transform: translateX(-100%);
  }
  
  to {
    transform: translateX(0);
  }
}

@keyframes maskOut {
  from {
    transform: translateX(0);
  }
  
  to {
    transform: translateX(100%);
  }
}



#about{
	position: relative;
	display: block;
	width: 1000px;
	overflow: auto;
	margin: 200px auto 0 auto;
}


#about .subtitle{
	font-size: 16px;
	 font-family: "Inter", sans-serif;
	font-weight: 500;
}


#about .brandtxt{
	font-size: 60px;
	 font-family: "Inter", sans-serif;
	font-weight: 500;
	margin: 24px 0 0 0;
	line-height: 1em;
	padding: 0;
}

#about .tagline{
	font-size: 24px;
	color: #FF572F;
	padding: 0;
	margin: 16px 0 0 0;
	line-height: 1em;
	font-weight: 600;
}


#about .tagtxt{
	font-size: 16px;
	color: #333333;
	padding: 0;
	margin: 24px 0 0 0;
	line-height: 1.8em;
	font-weight: 400;
	width: 90%;
}

#about .servicebox{
	display: block;
	overflow: auto;
	width: 936px;
	margin: 40px 0 0 0;
	padding: 0;
}


#about .servicebox .sinfo{
	display: block;
	width: 290px;
	margin: 0 20px 20px 0;
	float: left;
	border-radius: 8px;
	border:1px solid #FF572F;
	background-color: rgba(255, 255, 255, 0.9);
}

#about .servicebox .sinfo:nth-child(3n){
	margin: 0 0 20px 0;
}

#about .servicebox .sinfo .no{
	font-family: "Inter", sans-serif;
	font-weight: 600;
	padding: 0;
	font-size: 20px;
	margin: 20px 0 0 16px;
	color: #FF572F;
	line-height: 1em;
}

#about .servicebox .sinfo .sname{
	font-family: "Inter", sans-serif;
	font-weight: 600;
	padding: 0;
	font-size: 20px;
	margin: 10px 0 0 16px;
	color: #000000;
	line-height: 1em;
}

#about .servicebox .sinfo .swork{

	font-weight: 400;
	padding: 0;
	font-size: 14px;
	margin: 10px 16px 20px 16px;
	color: #333333;
	line-height: 1.5em;
}

#structure{
	position: relative;
	display: block;
	width: 1000px;
	overflow: auto;
	margin: 80px auto 0 auto;
}


#structure .subtitle{
	font-size: 16px;
	 font-family: "Inter", sans-serif;
	font-weight: 500;
}


#structure .brandtxt{
	font-size: 60px;
	 font-family: "Inter", sans-serif;
	font-weight: 500;
	margin: 24px 0 0 0;
	line-height: 1em;
	padding: 0;
}

#structure .tagline{
	font-size: 24px;
	color: #FF572F;
	padding: 0;
	margin: 16px 0 0 0;
	line-height: 1em;
	font-weight: 600;
}


#structure .tagtxt{
	font-size: 16px;
	color: #333333;
	padding: 0;
	margin: 24px 0 32px 0;
	line-height: 1.8em;
	font-weight: 400;
	width: 90%;
}

#business{
	position: relative;
	display: block;
	width: 1000px;
	overflow: auto;
	margin: 80px auto 0 auto;
}


#business .subtitle{
	font-size: 16px;
	 font-family: "Inter", sans-serif;
	font-weight: 500;
}


#business .brandtxt{
	font-size: 60px;
	 font-family: "Inter", sans-serif;
	font-weight: 500;
	margin: 24px 0 0 0;
	line-height: 1em;
	padding: 0;
}

#business .tagline{
	font-size: 24px;
	color: #FF572F;
	padding: 0;
	margin: 16px 0 0 0;
	line-height: 1em;
	font-weight: 600;
}


#business .tagtxt{
	font-size: 16px;
	color: #333333;
	padding: 0;
	margin: 24px 0 32px 0;
	line-height: 1.8em;
	font-weight: 400;
	width: 90%;
}

:root {
    --color-title: #000000;
    --color-desc: #666666;
    --color-dot: #f4511e; /* orange */
    --color-line: #000000;
  }

  * {
    box-sizing: border-box;
  }


  .flow {
	  font-family: 'Inter', sans-serif;
    max-width: 990px;
    margin: 0 auto;
  }

  .flow-item {
    display: flex;
    flex-direction: column;
  }

  .flow-title {
    font-size: 16px;
    font-weight: 500;
    color: var(--color-title);
    white-space: nowrap;
  }

  .flow-desc {
    font-size: 14px;
    font-weight: 500;
    color: var(--color-desc);
    line-height: 1.5;
  }

  .flow-dot {
    width: 16px;
    height: 16px;
    background: var(--color-dot);
    border-radius: 50%;
    flex-shrink: 0;
  }

  /* ---------- PC (horizontal) ---------- */
  @media (min-width: 769px) {
    .flow {
      display: flex;
      align-items: flex-start;
      position: relative;
    }

    .flow-line {
      position: absolute;
      top: 8px; /* center of 16px dot */
      left: 8px;
      right: 0;
      height: 1px;
      background: var(--color-line);
      z-index: 0;
    }

    .flow-arrow {
      position: absolute;
      top: 2px; /* vertically center the triangle on the line */
      right: -2px;
      width: 0;
      height: 0;
      border-top: 6px solid transparent;
      border-bottom: 6px solid transparent;
      border-left: 10px solid var(--color-dot);
      z-index: 0;
    }

    .flow-item {
      position: relative;
      z-index: 1;
      flex: 1;
      padding-right: 16px;
    }

    .flow-item:last-child {
      flex: 0 0 auto;
      padding-right: 0;
    }

    .flow-dot {
      margin-bottom: 16px;
    }

    .flow-title {
      margin-bottom: 12px;
    }
  }

  /* ---------- SP (vertical) ---------- */
  @media (max-width: 768px) {
    .flow {
      position: relative;
      padding-left: 28px;
    }

    .flow-line {
      position: absolute;
      top: 8px;
      bottom: 0;
      left: 8px;
      width: 1px;
      background: var(--color-line);
      z-index: 0;
    }

    .flow-arrow {
      position: absolute;
      bottom: -8px;
      left: 2px;
      width: 0;
      height: 0;
      border-left: 6px solid transparent;
      border-right: 6px solid transparent;
      border-top: 10px solid var(--color-dot);
      z-index: 0;
    }

    .flow-item {
      position: relative;
      z-index: 1;
      margin-bottom: 24px;
    }

    .flow-item:last-child {
      margin-bottom: 0;
    }

    .flow-dot {
      position: absolute;
      top: 2px;
      left: -28px;
    }

    .flow-title {
      margin-bottom: 6px;
    }
  }




#history{
	position: relative;
	display: block;
	width: 1000px;
	overflow: auto;
	margin: 80px auto 0 auto;
}


#history .subtitle{
	font-size: 16px;
	 font-family: "Inter", sans-serif;
	font-weight: 500;
}


#history .brandtxt{
	font-size: 40px;
	 font-family: "Inter", sans-serif;
	font-weight: 500;
	margin: 24px 0 0 0;
	line-height: 1em;
	padding: 0;
}

#history .tagline{
	font-size: 24px;
	color: #FF572F;
	padding: 0;
	margin: 16px 0 0 0;
	line-height: 1em;
	font-weight: 600;
}


#history .tagtxt{
	font-size: 14px;
	color: #333333;
	font-family: "Inter", sans-serif;
	padding: 0;
	margin: 8px 0 32px 4px;
	line-height: 1em;
	font-weight: 400;
	width: 90%;
}

 :root {
    --color-title: #000000;
    --color-desc: #666666;
    --color-accent: #f4511e; /* orange */
    --color-line: #000000;
    --color-divider: #e3e3e3;
  }


.hist {
	font-family: "Inter", sans-serif;
    max-width: 1000px;
    margin: 0 auto;
    display: grid;
    position: relative;
  }

  /* ---------- shared text styles ---------- */
  .hist-year {
    font-size: 16px;
    font-weight: 500;
    color: var(--color-title);
    white-space: nowrap;
  }

  .hist-label {
    display: block;
    font-size: 14px;
    font-weight: 500;
    margin-bottom: 8px;
  }

  .hist-label--accent { color: var(--color-accent); }
  .hist-label--muted { color: var(--color-desc); }

  .hist-title-lg {
    font-size: 18px;
    font-weight: 500;
    color: var(--color-title);
    margin: 0;
  }

  .hist-title-lg--accent { color: var(--color-accent); }

  .hist-field-title {
    font-size: 16px;
    font-weight: 500;
    color: var(--color-title);
    margin: 0 0 6px;
  }

  .hist-field-desc,
  .hist-footer-desc {
    font-size: 14px;
    font-weight: 500;
    color: var(--color-desc);
    line-height: 1.6;
    margin: 0;
  }

  /* ---------- structural pieces ---------- */
  .hist-dot {
    width: 16px;
    height: 16px;
    background: var(--color-accent);
    border-radius: 50%;
    flex-shrink: 0;
	 
  }

  .hist-marker {
    position: relative;
  }

  .hist-fields {
    display: grid;
    row-gap: 20px;
  }

  .hist-field-desc { white-space: pre-line; }

  .hist-divider {
    grid-area: divider;
    border: 0;
    border-top: 1px solid var(--color-divider);
    width: 100%;
    margin: 8px 0;
  }

  .hist-footer {
    grid-area: footer;
  }

  .hist-footer-title {
    margin-bottom: 12px;
  }

  /* ================= PC (horizontal) ================= */
  @media (min-width: 769px) {
    .hist {
      grid-template-columns: 37% 1fr 70px;
      grid-template-areas:
        "m2006 m2022 mnow"
        "c2006 c2022 ."
        "divider divider divider"
        ". footer footer";
      column-gap: 24px;
      row-gap: 16px;
    }

    .hist-line {
      position: absolute;
      top: 35px;
      left: 8px;
      right: 20px;
      height: 1px;
      background: var(--color-line);
      z-index: 0;
    }

    .hist-marker--now .hist-arrow {
      position: absolute;
      top: 29px;
      right: 0;
      width: 0;
      height: 0;
      border-top: 6px solid transparent;
      border-bottom: 6px solid transparent;
      border-left: 10px solid var(--color-accent);
      z-index: 2;
    }

    .hist-marker {
      display: flex;
      flex-direction: column-reverse;
      align-items: flex-start;
      gap: 8px;
      z-index: 1;
    }

    .hist-marker--2006 { grid-area: m2006; }
    .hist-marker--2022 { grid-area: m2022; }
    .hist-marker--now  { grid-area: mnow; align-items: flex-end; padding-right: 12px; }

    .hist-content-2006 { grid-area: c2006; }
    .hist-content-2022 { grid-area: c2022; }

    .hist-fields {
      grid-template-columns: 1fr 1fr;
      grid-template-rows: repeat(3, auto);
      grid-auto-flow: column;
      column-gap: 40px;
    }

    .hist-divider { margin: 16px 0 24px; }

    .hist-footer-desc {
      max-width: 420px;
    }
  }

  /* ================= SP (vertical) ================= */
  @media (max-width: 768px) {
    .hist {
      grid-template-columns: 1fr;
      grid-template-areas:
        "m2006"
        "c2006"
        "m2022"
        "c2022"
        "divider"
        "footer"
        "mnow";
      padding-left: 28px;
      row-gap: 20px;
    }

    .hist-line {
      position: absolute;
      top: 8px;
      bottom: 0;
      left: 8px;
      width: 1px;
      background: var(--color-line);
      z-index: 0;
    }

    .hist-marker--now .hist-arrow {
      position: absolute;
      top: 22px;
      left: -26px;
      width: 0;
      height: 0;
      border-left: 6px solid transparent;
      border-right: 6px solid transparent;
      border-top: 10px solid var(--color-accent);
      z-index: 2;
    }

    .hist-marker {
      z-index: 1;
    }

    .hist-marker .hist-dot {
      position: absolute;
      left: -28px;
      top: 2px;
    }

    .hist-marker--2006 { grid-area: m2006; }
    .hist-marker--2022 { grid-area: m2022; }
    .hist-marker--now  { grid-area: mnow; }

    .hist-content-2006 { grid-area: c2006; }
    .hist-content-2022 { grid-area: c2022; }

    .hist-fields {
      grid-template-columns: 1fr;
    }

    .hist-divider { margin: 4px 0; }
  }



#company{
	position: relative;
	display: block;
	width: 1000px;
	overflow: auto;
	margin: 80px auto 0 auto;
}


#company .subtitle{
	font-size: 16px;
	 font-family: "Inter", sans-serif;
	font-weight: 500;
	margin: 0 0 32px 0;
}


#company .compcont{
	display: block;
	margin: 16px 0 0 0;
	padding: 0 0 16px 0;
	border-bottom: 1px solid #cccccc;
}


#company .compcont .cp01{
	font-size: 14px;
	color: #666666;
	font-family: "Inter", sans-serif;
	margin: 0;
	padding: 0;
	line-height: 1em;
	
}


#company .compcont .cp02{
	font-size: 18px;
	color: 333333;
	font-family: "Inter", sans-serif;
	font-weight: 500;
	margin: 8px 0 0 0;
	padding: 0;
	line-height: 1.6em;
	
}



.scrollarea{
	width:100%;
	margin:40px 0 0 0;
	padding:0;
	position:relative;
	overflow: hidden;
	
}






.simply-scroll-container { 
	position: relative;
}
.simply-scroll-clip { 
	position: relative;
	overflow: hidden;
}
.simply-scroll-list { 
	overflow: hidden;
	margin: 0;
	padding: 0;
}
.simply-scroll-list li {
	list-style: none;
	float: left; /* Horizontal scroll only */
	padding: 0;
	margin: 0 40px 0 0;
	width: 5318px;
	height: 120px;
	
}
.simply-scroll-list li img {
	display: block;
	width: 100%;
	height: auto;

}






footer{
	display: block;
	position: relative;
	width: 96%;
	padding: 0;
	margin: 0 2% 0 2%;
	overflow: auto;
}

footer .flogo{
	display: block;
	width: 100%;
	margin: 120px 0;
	padding: 0;
}



footer .copyright{
	 font-family: "Inter", sans-serif;
	font-weight: 500;
	font-size: 12px;
	margin: 0  40px 40px 0;
	display: block;
	text-align: right;
}




.spbtn{
	display: none;
}

.spmenu{
	display: none;
}

.pc{
	display: block;
}

.sp{
	display:none;
}


@media only screen and (max-width: 1200px) {
	
}

@media only screen and (max-width: 800px) {
	
	
.sp{
	display: block;
}

.pc{
	display:none;
}

	

/* ベースレイアウト */


#wrapper {
 width: 100%;
 margin: 0;
 padding:0;
	

 opacity: .0; 
	filter: alpha(opacity=0); 
	-ms-filter: "alpha(opacity=0)"; 
	-khtml-opacity: .0; 
	-moz-opacity: .0; 

	

}

.contents{
	width:100%;
	position:relative;
	overflow: hidden;
}




header{
	position: relative;
	z-index: 9999;
	margin: 20px 5% 0 5%;
	overflow: auto;
	width: 90%;
	display: block;
	
}



header .logo{
	display: block;
	float: left;
	margin: 0 0 0 0;
	width: 28%;
}
	header .logo img{
		width: 100%;
		height: auto;
	}



header .menu_right{
	display: block;
	float: right;
	margin: 0;
	padding: 0;
}

	header .menu_right .menu{
		display: none;
	}


	header .menu_right .subcopy{
		margin: 0;
		padding: 0;
		
	}
	
header .spbtn{
	position: relative;
	display:none;
		float: right;
		margin: 2px 0 0 0;
	cursor: pointer;
	width: 14%;
		
}
	
	

	header .spbtn img{
		width: 100%;
		height: auto;
	}
	
	
.menu-trigger,
.menu-trigger span {
  display: inline-block;
  transition: all .4s;
  box-sizing: border-box;
}
.menu-trigger {
  position: relative;
  width: 100%;
  height: 28px;
  background: none;
  border: none;
  appearance: none;
  cursor: pointer;
}
.menu-trigger span {
  position: absolute;
  left: 0;
  width: 100%;
  height: 3px;
  background-color: #1D2088;

}
.menu-trigger span:nth-of-type(1) {
  top: 0;
}
.menu-trigger span:nth-of-type(2) {
  top: 10px;
	width: 80%;
}
.menu-trigger span:nth-of-type(3) {
  bottom: 0;
width: 60%;
}


#menu01.active span:nth-of-type(1) {
  transform: translateY(10px) rotate(-45deg);
}
#menu01.active span:nth-of-type(2) {
  opacity: 0;
}
#menu01.active span:nth-of-type(3) {
  transform: translateY(-10px) rotate(45deg);
	width: 100%;
}

	
	
	.spmenu{
		width: 100%;
		height: 100%;
		background-color: rgba(255, 255, 255, 0.90);
		position: fixed;
		top:0;
		z-index: 9998;
		padding: 120px 0 0 0;
	}
	
	



	
	.spmenu a{
		display: block;
		font-family: termina, sans-serif;
	margin: 0 0 16px 0;
		font-size: 32px;
		text-align: center;
		font-weight: 500;
		color:#1D2088;
		
		
		
	}
	
	
	
	
	.spmenu div{
	display: block;
	margin: 0 0 10px 0;
		text-align: center;
}
	


.maincopy{
	 font-family: "Inter", sans-serif;
	font-size: 50px;
	line-height: 1em;
	
	display: block;
	margin: 80px 0 0 5%;
	
}

.maincopy h1{
	font-size: 54px;
	line-height: 1em;
	margin: 0;
	padding: 0;
	color: #000000;
	font-weight: 300;
	letter-spacing: 0em;
}

.maincopy h1 .bold{
	font-weight: 500;
}

.maincopy h2{
	font-weight: 600;
	font-size: 18px;
	color: #333333;
	line-height: 1em;
	margin: 16px 0 0 0;
	padding: 0;
}
/*text animetions*/
@keyframes showTextFromBottom{
  0%{
    transform: translateY( 100% );
  }
  100%{
    transform: translateY( 0px );
  }
}
.anime-up.displayed span{
  animation: showText 1s backwards;
  display: inline-block;
}
.anime-up.displayed > span{
  overflow: hidden;
}
.anime-up.displayed > span > span{
  animation: showTextFromBottom 0.5s backwards;
}



.box {
  width: 100%;
  height: auto;
  margin: 0 0 0 0;
  overflow: hidden;
}

.box .boxInner {
  width: inherit;
  height: inherit;
  line-height: auto;

  opacity: 0;
}


.isPlay {
  animation-name: play;
  animation-duration: 0.5s;
  animation-fill-mode: forwards;
  animation-timing-function: cubic-bezier(.8,0,.5,1);
  position: relative;
  opacity: 1 !important;
}
  
.isPlay:before {
  animation-name: maskOut;
  animation-duration: 0.5s;
  animation-delay: 0.5s;
  animation-fill-mode: forwards;
  animation-timing-function: cubic-bezier(.8,0,.5,1);
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  z-index: 1;
  width: 100%;
  height: 100%;
  background-image: linear-gradient( 109.6deg,  rgba(174,174,170,1) 11.2%, rgba(126,115,111,1) 91.1% );
}

@keyframes play {
  from {
    transform: translateX(-100%);
  }
  
  to {
    transform: translateX(0);
  }
}

@keyframes maskOut {
  from {
    transform: translateX(0);
  }
  
  to {
    transform: translateX(100%);
  }
}



#about{
	position: relative;
	display: block;
	width: 90%;
	overflow: auto;
	margin: 100px auto 0 auto;
}


#about .subtitle{
	font-size: 16px;
	 font-family: "Inter", sans-serif;
	font-weight: 500;
}


#about .brandtxt{
	font-size: 44px;
	 font-family: "Inter", sans-serif;
	font-weight: 500;
	margin: 24px 0 0 0;
	line-height: 1em;
	padding: 0;
}

#about .tagline{
	font-size: 16px;
	color: #FF572F;
	padding: 0;
	margin: 16px 0 0 0;
	line-height: 1.5em;
	font-weight: 600;
}


#about .tagtxt{
	font-size: 15px;
	color: #333333;
	padding: 0;
	margin: 24px 0 0 0;
	line-height: 1.8em;
	font-weight: 400;
	width: 96%;
}

#about .servicebox{
	display: block;
	overflow: auto;
	width: 100%;
	margin: 40px 0 0 0;
	padding: 0;
}


#about .servicebox .sinfo{
	display: block;
	width: 99%;
	margin: 0 0 16px 0;
	float: none;
	border-radius: 8px;
	border:1px solid #FF572F;
	background-color: rgba(255, 255, 255, 0.9);
}

#about .servicebox .sinfo:nth-child(3n){
	margin: 0 0 16px 0;
}

#about .servicebox .sinfo .no{
	font-family: "Inter", sans-serif;
	font-weight: 600;
	padding: 0;
	font-size: 20px;
	margin: 20px 0 0 16px;
	color: #FF572F;
	line-height: 1em;
}

#about .servicebox .sinfo .sname{
	font-family: "Inter", sans-serif;
	font-weight: 600;
	padding: 0;
	font-size: 20px;
	margin: 10px 0 0 16px;
	color: #000000;
	line-height: 1em;
}

#about .servicebox .sinfo .swork{

	font-weight: 400;
	padding: 0;
	font-size: 14px;
	margin: 10px 16px 20px 16px;
	color: #333333;
	line-height: 1.5em;
}

#structure{
	position: relative;
	display: block;
	width: 90%;
	overflow: auto;
	margin: 80px auto 0 auto;
}


#structure .subtitle{
	font-size: 16px;
	 font-family: "Inter", sans-serif;
	font-weight: 500;
}


#structure .brandtxt{
	font-size: 44px;
	 font-family: "Inter", sans-serif;
	font-weight: 500;
	margin: 24px 0 0 0;
	line-height: 1em;
	padding: 0;
}

#structure .tagline{
	font-size: 24px;
	color: #FF572F;
	padding: 0;
	margin: 16px 0 0 0;
	line-height: 1em;
	font-weight: 600;
}


#structure .tagtxt{
	font-size: 15px;
	color: #333333;
	padding: 0;
	margin: 24px 0 32px 0;
	line-height: 1.8em;
	font-weight: 400;
	width: 96%;
}

	
	#structure .strimg{
		width: 60%;
		margin: 0 auto;
		display: block;
	}
#business{
	position: relative;
	display: block;
	width: 90%;
	overflow: auto;
	min-height: 760px;
	margin: 80px auto 0 auto;
}


#business .subtitle{
	font-size: 16px;
	 font-family: "Inter", sans-serif;
	font-weight: 500;
}


#business .brandtxt{
	font-size: 44px;
	 font-family: "Inter", sans-serif;
	font-weight: 500;
	margin: 24px 0 0 0;
	line-height: 1em;
	padding: 0;
}

#business .tagline{
	font-size: 24px;
	color: #FF572F;
	padding: 0;
	margin: 16px 0 0 0;
	line-height: 1em;
	font-weight: 600;
}


#business .tagtxt{
	font-size: 15px;
	color: #333333;
	padding: 0;
	margin: 24px 0 32px 0;
	line-height: 1.8em;
	font-weight: 400;
	width: 90%;
}

:root {
    --color-title: #000000;
    --color-desc: #666666;
    --color-dot: #f4511e; /* orange */
    --color-line: #000000;
  }

  * {
    box-sizing: border-box;
  }


  .flow {
	  font-family: 'Inter', sans-serif;
    max-width: 990px;
    margin: 0 auto;
  }

  .flow-item {
    display: flex;
    flex-direction: column;
  }

  .flow-title {
    font-size: 16px;
    font-weight: 500;
    color: var(--color-title);
    white-space: nowrap;
  }

  .flow-desc {
    font-size: 14px;
    font-weight: 500;
    color: var(--color-desc);
    line-height: 1.5;
  }

  .flow-dot {
    width: 16px;
    height: 16px;
    background: var(--color-dot);
    border-radius: 50%;
    flex-shrink: 0;
  }

  /* ---------- PC (horizontal) ---------- */
  @media (min-width: 769px) {
    .flow {
      display: flex;
      align-items: flex-start;
      position: relative;
    }

    .flow-line {
      position: absolute;
      top: 8px; /* center of 16px dot */
      left: 8px;
      right: 0;
      height: 1px;
      background: var(--color-line);
      z-index: 0;
    }

    .flow-arrow {
      position: absolute;
      top: 2px; /* vertically center the triangle on the line */
      right: -2px;
      width: 0;
      height: 0;
      border-top: 6px solid transparent;
      border-bottom: 6px solid transparent;
      border-left: 10px solid var(--color-dot);
      z-index: 0;
    }

    .flow-item {
      position: relative;
      z-index: 1;
      flex: 1;
      padding-right: 16px;
    }

    .flow-item:last-child {
      flex: 0 0 auto;
      padding-right: 0;
    }

    .flow-dot {
      margin-bottom: 16px;
    }

    .flow-title {
      margin-bottom: 12px;
    }
  }

  /* ---------- SP (vertical) ---------- */
  @media (max-width: 768px) {
    .flow {
      position: relative;
      padding-left: 28px;
    }

    .flow-line {
      position: absolute;
      top: 8px;
      bottom: 0;
      left: 8px;
      width: 1px;
      background: var(--color-line);
      z-index: 0;
    }

    .flow-arrow {
      position: absolute;
      bottom: -8px;
      left: 2px;
      width: 0;
      height: 0;
      border-left: 6px solid transparent;
      border-right: 6px solid transparent;
      border-top: 10px solid var(--color-dot);
      z-index: 0;
    }

    .flow-item {
      position: relative;
      z-index: 1;
      margin-bottom: 24px;
    }

    .flow-item:last-child {
      margin-bottom: 0;
    }

    .flow-dot {
      position: absolute;
      top: 2px;
      left: -28px;
    }

    .flow-title {
      margin-bottom: 6px;
    }
  }




#history{
	position: relative;
	display: block;
	width: 90%;
	overflow: auto;
	margin: 80px auto 0 auto;
	min-height: 920px;
}


#history .subtitle{
	font-size: 16px;
	 font-family: "Inter", sans-serif;
	font-weight: 500;
}


#history .brandtxt{
	font-size: 32px;
	 font-family: "Inter", sans-serif;
	font-weight: 500;
	margin: 24px 0 0 0;
	line-height: 1em;
	padding: 0;
}

#history .tagline{
	font-size: 24px;
	color: #FF572F;
	padding: 0;
	margin: 16px 0 0 0;
	line-height: 1em;
	font-weight: 600;
}


#history .tagtxt{
	font-size: 14px;
	color: #333333;
	font-family: "Inter", sans-serif;
	padding: 0;
	margin: 8px 0 32px 4px;
	line-height: 1em;
	font-weight: 400;
	width: 90%;
}

 :root {
    --color-title: #000000;
    --color-desc: #666666;
    --color-accent: #f4511e; /* orange */
    --color-line: #000000;
    --color-divider: #e3e3e3;
  }


.hist {
	font-family: "Inter", sans-serif;
    max-width: 1000px;
    margin: 0 auto;
    display: grid;
    position: relative;
  }

  /* ---------- shared text styles ---------- */
  .hist-year {
    font-size: 16px;
    font-weight: 500;
    color: var(--color-title);
    white-space: nowrap;
  }

  .hist-label {
    display: block;
    font-size: 14px;
    font-weight: 500;
    margin-bottom: 8px;
  }

  .hist-label--accent { color: var(--color-accent); }
  .hist-label--muted { color: var(--color-desc); }

  .hist-title-lg {
    font-size: 18px;
    font-weight: 500;
    color: var(--color-title);
    margin: 0;
  }

  .hist-title-lg--accent { color: var(--color-accent); }

  .hist-field-title {
    font-size: 16px;
    font-weight: 500;
    color: var(--color-title);
    margin: 0 0 6px;
  }

  .hist-field-desc,
  .hist-footer-desc {
    font-size: 14px;
    font-weight: 500;
    color: var(--color-desc);
    line-height: 1.6;
    margin: 0;
  }

  /* ---------- structural pieces ---------- */
  .hist-dot {
    width: 16px;
    height: 16px;
    background: var(--color-accent);
    border-radius: 50%;
    flex-shrink: 0;
	 
  }

  .hist-marker {
    position: relative;
  }

  .hist-fields {
    display: grid;
    row-gap: 20px;
  }

  .hist-field-desc { white-space: pre-line; }

  .hist-divider {
    grid-area: divider;
    border: 0;
    border-top: 1px solid var(--color-divider);
    width: 100%;
    margin: 8px 0;
  }

  .hist-footer {
    grid-area: footer;
  }

  .hist-footer-title {
    margin-bottom: 12px;
  }

  /* ================= PC (horizontal) ================= */
  @media (min-width: 769px) {
    .hist {
      grid-template-columns: 37% 1fr 70px;
      grid-template-areas:
        "m2006 m2022 mnow"
        "c2006 c2022 ."
        "divider divider divider"
        ". footer footer";
      column-gap: 24px;
      row-gap: 16px;
    }

    .hist-line {
      position: absolute;
      top: 35px;
      left: 8px;
      right: 20px;
      height: 1px;
      background: var(--color-line);
      z-index: 0;
    }

    .hist-marker--now .hist-arrow {
      position: absolute;
      top: 29px;
      right: 0;
      width: 0;
      height: 0;
      border-top: 6px solid transparent;
      border-bottom: 6px solid transparent;
      border-left: 10px solid var(--color-accent);
      z-index: 2;
    }

    .hist-marker {
      display: flex;
      flex-direction: column-reverse;
      align-items: flex-start;
      gap: 8px;
      z-index: 1;
    }

    .hist-marker--2006 { grid-area: m2006; }
    .hist-marker--2022 { grid-area: m2022; }
    .hist-marker--now  { grid-area: mnow; align-items: flex-end; padding-right: 12px; }

    .hist-content-2006 { grid-area: c2006; }
    .hist-content-2022 { grid-area: c2022; }

    .hist-fields {
      grid-template-columns: 1fr 1fr;
      grid-template-rows: repeat(3, auto);
      grid-auto-flow: column;
      column-gap: 40px;
    }

    .hist-divider { margin: 16px 0 24px; }

    .hist-footer-desc {
      max-width: 420px;
    }
  }

  /* ================= SP (vertical) ================= */
  @media (max-width: 768px) {
    .hist {
      grid-template-columns: 1fr;
      grid-template-areas:
        "m2006"
        "c2006"
        "m2022"
        "c2022"
        "divider"
        "footer"
        "mnow";
      padding-left: 28px;
      row-gap: 20px;
    }

    .hist-line {
      position: absolute;
      top: 8px;
      bottom: 0;
      left: 8px;
      width: 1px;
      background: var(--color-line);
      z-index: 0;
    }

    .hist-marker--now .hist-arrow {
      position: absolute;
      top: 22px;
      left: -26px;
      width: 0;
      height: 0;
      border-left: 6px solid transparent;
      border-right: 6px solid transparent;
      border-top: 10px solid var(--color-accent);
      z-index: 2;
    }

    .hist-marker {
      z-index: 1;
    }

    .hist-marker .hist-dot {
      position: absolute;
      left: -28px;
      top: 2px;
    }

    .hist-marker--2006 { grid-area: m2006; }
    .hist-marker--2022 { grid-area: m2022; }
    .hist-marker--now  { grid-area: mnow; }

    .hist-content-2006 { grid-area: c2006; }
    .hist-content-2022 { grid-area: c2022; }

    .hist-fields {
      grid-template-columns: 1fr;
    }

    .hist-divider { margin: 4px 0; }
  }



#company{
	position: relative;
	display: block;
	width: 90%;
	overflow: auto;
	margin: 80px auto 0 auto;
}


#company .subtitle{
	font-size: 16px;
	 font-family: "Inter", sans-serif;
	font-weight: 500;
	margin: 0 0 32px 0;
}


#company .compcont{
	display: block;
	margin: 16px 0 0 0;
	padding: 0 0 16px 0;
	border-bottom: 1px solid #cccccc;
}


#company .compcont .cp01{
	font-size: 14px;
	color: #666666;
	font-family: "Inter", sans-serif;
	margin: 0;
	padding: 0;
	line-height: 1em;
	
}


#company .compcont .cp02{
	font-size: 16px;
	color: 333333;
	font-family: "Inter", sans-serif;
	font-weight: 500;
	margin: 8px 0 0 0;
	padding: 0;
	line-height: 1.6em;
	
}



.scrollarea{
	width:100%;
	margin:40px 0 0 0;
	padding:0;
	position:relative;
	overflow: hidden;
	
}






.simply-scroll-container { 
	position: relative;
}
.simply-scroll-clip { 
	position: relative;
	overflow: hidden;
}
.simply-scroll-list { 
	overflow: hidden;
	margin: 0;
	padding: 0;
}
.simply-scroll-list li {
	list-style: none;
	float: left; /* Horizontal scroll only */
	padding: 0;
	margin: 0 40px 0 0;
	width: 5318px;
	height: 120px;
	
}
.simply-scroll-list li img {
	display: block;
	width: 100%;
	height: auto;

}






footer{
	display: block;
	position: relative;
	width: 96%;
	padding: 0;
	margin: 0 2% 0 2%;
	overflow: auto;
}

footer .flogo{
	display: block;
	width: 100%;
	margin: 60px 0;
	padding: 0;
}



footer .copyright{
	 font-family: "Inter", sans-serif;
	font-weight: 500;
	font-size: 12px;
	margin: 0  2% 24px 0;
	display: block;
	text-align: right;
}




	
	
	
}