@charset "utf-8";
/* CSS Document */

body{
	margin: 0;
}

@keyframes revealGradient {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}

.sticky-container {
  position: relative;
  margin: 0;
  background-color: #fef9f5;
  z-index: 1;
}

.sticky-container::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(187deg, #fff3e8 0%, #d8e4f5 100%);
  opacity: 0;
  z-index: -1;

  /* View Timeline によるアニメーション（トリガー要素が画面に入ると変化） */
  animation: revealGradient linear forwards;
  animation-timeline: view();
  animation-range: entry 0% cover 30%;
}

.sticky-container img{
	display: block;
	line-height: 0;
}

.wrapper{
	width: 100%;
	max-width: 1200px;
	margin: 0 auto 0;
}

.mv{
	margin: 0 auto 10%;
}

.movie {
	position: relative;
	width: 90%; 
	height: 0; 
	padding-top: 56.25%; 
	margin: 5% auto 5%;
}

.movie video {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
}


@media(min-width:750px){
	.sticky-container {
		padding: 5% 0 0;
	}
	.mv {
		display: flex;
		column-gap: 20px;
		align-items: center;
		justify-content: center;
	}
	
	.bnr {
		width: calc(36.5% - 13px) !important;
		margin: 0;
		height: auto;
		aspect-ratio: 1 / 1 !important;
		object-fit: cover !important;
	}
	
	.movie {
		width: calc(63.5% - 7px) !important;
		margin: 0;
		height: auto !important;        
		padding-top: 0 !important;      
		aspect-ratio: 16 / 9 !important;
	}

}

/*===================================

			contents-inner

===================================*/

.women{
	margin: 10% auto;
}

.women h1{
	text-align: center;
	margin: 2% auto;
	font-family: "avenir-lt-pro", sans-serif;
	font-weight: 800;
	font-size: 2.3rem;
	font-style: normal;
	background-color: #ec6c00;
	color: #fff;
	line-height: 1.5;
	letter-spacing: 1px;
}

.men h1{
	text-align: center;
	margin: 2% auto;
	font-family: "avenir-lt-pro", sans-serif;
	font-weight: 800;
	font-size: 2.3rem;
	font-style: normal;
	background-color: #0f4c9f;
	color: #fff;
	line-height: 1.5;
	letter-spacing: 1px;
}

.contents-inner{
	margin: 5% auto;
	box-sizing: border-box;
	border: solid 5px #000;
	background-color: #fff;
	width: 95%;
}

.inner-number{
	display: flex;
	column-gap: 15px;
	width: 90%;
	margin: 5% auto 0; 
	font-family: "avenir-lt-pro", sans-serif;
	font-weight: 800;
	font-style: normal;
	align-items: center;
	justify-content: center;
	color: #1a3668;
}

.number-tag {
  color: #1a3668;
  font-weight: bold;
  line-height: 1;
}

.number-tag .label {
  font-size: 1.5rem;
  display: block;
  margin-bottom: 2px;
}

.number-tag .num {
  font-size: 5rem;
  display: block;
	line-height: .9;
}

.inner-name{
	margin: 0;
	padding-top: 5%;
}

.inner-name .name{
	margin: 0 0 10px;
	font-size: 2.4rem;
	line-height: .8;
}

.inner-name .name-hiragana{
	font-size: 2.0rem;
	padding-top: 5%;
}

.inner-name .name-shimo{
	font-size: 1.7rem;
	padding-top: 5%;
}

.inner-name .name span{
	font-size: .99rem;
}

.inner-name .shop{
	font-size: .9rem;
}

.inner-name .shop-mini{
	font-size: .7rem;
}

.member-color{
	text-align: center;
	font-size: .8rem;
	margin: 1% auto;
}

/*---------- SNS  ----------*/
	.sns{
		display: flex;
		column-gap: 5px;
		margin: 5% auto;
		box-sizing: border-box;
		justify-content: center;
	}

	.staffbord a {
		background: #fff url("https://www.dot-st.com/static/docs/bayflow/pages/241119_newbasic_bj/images/sb.jpg") 50% 50% no-repeat;
		background-size: 80% auto;
	}

	.instagram a {
		background: #fff url(https://www.dot-st.com/static/docs/c/pages/cp-staffboard/images/icon_instagram.png) 50% 50% no-repeat;
		background-size: 25px auto;
	}

	.sns a{
		display: block;
		border: 1px solid #E6E6E6;
		border-radius: 10%;
		height: 40px;
		width: 40px;
	}
	
/*----------  slide ----------*/

.slide{
	position: relative;
	overflow: inherit;
	width: 90%;
	margin: 5% auto;
}

.slide img{
	animation-duration: 6s;
    animation-iteration-count: infinite;
    animation-name: slideshow; 
    animation-timing-function: ease; 
    opacity: 0;
}

.slide img:nth-child(2), .slide img:nth-child(3){
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	width: 100%;
	height: auto;
}

.slide img:nth-child(1){
	animation-delay: 0s;
	}

.slide img:nth-child(2){
	animation-delay: 3s;
}


@keyframes slideshow {
  0% {
    opacity: 0;
  }

  25% {
    opacity: 1;
  }

  50% {
    opacity: 1;
  }

  75% {
    opacity: 0;
  }

  100% {
    opacity: 0;
  }
}

.coment{
	width: 90%;
	margin: 5% auto;
	font-size: .65rem;
	line-height: 1.8;
	text-align: center;
}



/*---------- member-color  ----------*/

.color-01{
	border-color: #92d050;
}

.color-02{
	border-color: #fff2cc;
}

.color-03{
	border-color: #ff9933;
}

.color-04{
	border-color: #ffd966;
}

.color-05{
	border-color: #9898fd;
}

.color-06{
	border-color: #fd98ca;
}

.color-07{
	border-color: #97cafc;
}

.color-08{
	border-color: #fe5050;
}

.color-09{
	border-color: #ffcccc;
}

.color-10{
	border-color: #1f4e78;
}

.color-11{
	border-color: #548235;
}


@media(min-width:750px){
	.flex-pc{
		display: flex;
		column-gap: 20px;
		grid-row-gap: 20px;
		flex-wrap: wrap;
		justify-content: center;
	}
	
	.contents-inner{
		width: calc(33.3% - 20px);
		margin: 0;
	}

}

/*----------  marquee-container ----------*/

/* 【親コンテナ】画面外の画像を隠す */
  .marquee-container {
    overflow: hidden;
    width: 100%;
    position: relative;
    padding: 10px 0 0;
  }

  /* 【レール全体】中身の全幅を確実に確保し、アニメーションさせる */
  .marquee-track {
    display: flex;
    width: max-content; /* ← スマホで途中で戻るバグを防ぐ必須指定 */
    animation: scroll 15s linear infinite; /* お好みの秒数に変更可能 */
  }

  /* PC向け（画面幅750px以上）：少しゆっくりに */
  @media (min-width: 750px) {
    .marquee-track {
      animation: scroll 22s linear infinite;
    }
  }

  /* 【グループ】11枚を1つの塊として定義（これを2つ並べる） */
  .marquee-group {
    display: flex;
    align-items: center;
    flex-shrink: 0;
    gap: 10px;          /* 画像と画像の間隔 */
    padding-right: 0px; /* グループとグループの間の隙間 */
  }

  /* 【各画像】スマホでの高さと比率の保持 */
  .marquee-group img {
    height: 140px;      /* スマホ時の高さ */
    width: auto;
    flex-shrink: 0;
    border-radius: 8px; /* 角丸（不要な場合は削除OK） */
    display: block;
  }

  /* PC向けの画像サイズ */
  @media (min-width: 750px) {
    .marquee-group img {
      height: 180px;    /* PC時の高さ */
    }
  }

  /* 【アニメーション】全体の半分（1グループ分）進んだら先頭に戻る */
  @keyframes scroll {
    0% {
      transform: translateX(0);
    }
    100% {
      transform: translateX(-50%);
    }
  }

  