/* 共通 */
body {
  -webkit-font-feature-settings: 'palt';
  font-feature-settings: 'palt';
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
  max-width: 750px;
  margin: 0 auto;
}

video{
  width: 100%;
  height: auto;
  vertical-align: bottom;
}
img {
  width: 100%;
  max-width: 100%;
  height: auto;
  vertical-align: bottom;
}

input, btn__shiny, textarea, select {
  -webkit-appearance: none;
  appearance: none;
}
.m0auto{
  margin: 0 auto;
}
.tac{
  text-align: center;
}
.flex{
  display: flex;
}

.fsz_s{
  font-size: 20px;
}

.fsz_m{
  font-size: 28px;
  font-weight: bold;
}
.fsz_l{
  font-size: 36px;
  font-weight: bold;
}
.fsz_xl{
  font-size: 40px;
  font-weight: bold;
}
.c_red{
  color: #ff6464;
}
.c_gray{
  color: #888;
}
.c_pink{
  color:#fa5eb2;
}
.c_blue{
  color:#4187fb;
}
.c_lightblue{
  color:#77b5fc;
}

.bg {
  background-image: url('01.png');
  background-position: center center;
  background-repeat: no-repeat;
}

/* fv */
.fv{
  overflow: hidden;
  position: relative;
}

.fv__abs{
  position: absolute;
}

.fv__bottom{
  width: 100%;
  bottom: -1%;
  animation: heartbeat_text 2s ease-in-out infinite;
}


.fv__left{
  width: 30%;
  top: 5%;
  left: 5%;
  animation: heartbeat 3s ease-in-out 1s infinite;
}

.fv__right{
  width: 25%;
  bottom: 45%;
  right: 5%;
  animation: heartbeat 2s ease-in-out 0.5s infinite;
}

@keyframes heartbeat_text {
  0% {
    transform: scale(0.95);
  }
  25% {
    transform: scale(1);
  }
  50% {
    transform: scale(0.95);
  }
  75% {
    transform: scale(1);
  }
  100% {
    transform: scale(0.95);
  }
}

@keyframes heartbeat {
  0% {
    transform: scale(1);
  }
  25% {
    transform: scale(1.1);
  }
  50% {
    transform: scale(1);
  }
  75% {
    transform: scale(1.1);
  }
  100% {
    transform: scale(1);
  }
}

/* sec01 */
.sec01{
  position: relative;
}

.sec__text:first-of-type{
  position: absolute;
  left: 50%;
  top: 30%;
  transform: translate(-50%, -50%);
  width: 70%;
}

.sec__text:nth-of-type(2){
  position: absolute;
  left: 50%;
  top: 70%;
  transform: translate(-50%, -50%);
  width: 90%;
}


/* sec03 */
.sec03{
  background-image: url(../contents/sec03_01.webp);
  background-repeat: no-repeat;
  background-size: cover;
  padding: 10% 0;
}


.case__box{
  background: #ffffff;
  width: 94%;
  margin: 0 auto;
  border-radius: 15px;
  box-shadow: 3px 3px #fff;
  margin-bottom: 9%;
}

.box__top{
  position: relative;
  overflow: hidden;
}

.box__info{
  position: absolute;
  top: 5%;
  left: 5%;
  display: flex;
  color: #fff;
  overflow: hidden;
  align-items: center;
}

.box__bg video{
  border-radius: 15px;
}

.case__box-icon{
  width: 10%;
  margin-right: 2%;
}

.case__box-icon img{
 border: 2px solid #fff;
  padding: 4%;
}

.case__box-icon img{
  border-radius: 50%;
}

.case__tag{
  font-size: min(4vw,32px);
  white-space: nowrap;
  color: #fff;
  letter-spacing: 1.5px;
}

.case__name{
  font-size: min(4vw,36px);
  font-weight: bold;
  padding-bottom: 1%;
}

.marquee {
  display: flex;
  white-space: nowrap;
  overflow: hidden;
  gap: 1rem;
  position: absolute;
  bottom: 0;
  padding-bottom: 5%;
  font-weight: bold;
  
}

.marquee-inner {
  animation: marquee 14s linear infinite;
}
 
@keyframes marquee {
  0%   { translate: 0; }
  100% { translate: calc(-100% - 1rem); }
}

.heart .st0 {
  fill: #FF3CAC; /* ここで指定した色に変更します */
}

.comment .st0{
  fill:#46971f;
}

.reshare .st0{
  fill: #3b9aff;
}

.box__wrapper{
  position: absolute;
  text-align: center;
  bottom: 20%;
  right: 5%; 
  width: 8%;
  font-size: 10px;
  color: #fff;
  font-weight: bold;
}

.box__icon{
  margin-bottom: 30%;
}

.svg{
  background: #ffffffca;
  padding: 20%;
  border-radius: 50%;
  margin-bottom: 15%;
}

.box__btn{
  border-radius: 15px;
  background-color: #FF3CAC;
  background-image: linear-gradient(225deg, #e01798 0%,  #943bd5 100%);
  padding: 2% 3%;
  font-size: min(3.2vw,24px);
  color: #fff;
  font-weight: bold;
}

.box__bottom{
  padding: 3% 0;
}

.box__text{
  width: 92%;
  margin: 0 auto;
  overflow: hidden;
  display: -webkit-box;
  font-size: min(3.2vw,24px);
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2; 
  line-height: 1.5;
}

.box__next{
  width: 92%;
  margin: 0 auto;
  text-align: right;
  padding-top: 2%;
  font-size: min(3.2vw,24px);
  color: #555;
}


/* close */
.close{
  position: relative;
  background: #e7d9ce;
}

.close__text{
  position: absolute;
  top: 2%;
}

.close__women{
  padding-top: 37%;
}

/* footer */
footer{
  text-align: center;
  color: #fff;
  background: #333;
  padding: 2% 0;
  font-size: 12px;
}

/* btn */
.btn{
  position: fixed;
  bottom: 0;
  z-index: 4;
  display: flex;
  align-items: center;
  height: 80px;
  background: #111;
  width: 100%;
}

.btn__left{
  position: absolute;
  left:0%;
  width: 45%;
  bottom: 0;
}

.btn__right{
  position: absolute;
  right: 4%;
  font-size: 14px;
  width: 45%;
}

.btn__shiny {
  width: 100%;
	color: #fff;
	display: inline-block;
	overflow: hidden;
	position: relative;
	text-decoration: none;
  border-radius: 5px;
  text-align: center;
  line-height: 1.5;
  padding: 4% 0;
  font-weight: bold;
  color: #fff;
  background: #ff4646;
  box-shadow: 2px 2px #fff;
}

.btn__shiny::after {
	animation: 4s 0s shine linear infinite;
	background: linear-gradient(to right, rgba(255,255,255,0) 0%, rgba(255,255,255,.4) 100%);
	content: '';
	height: 100%;
	left: -100%;
	position: absolute;
	top: 0;
	transform: skewX(-25deg);
	width: 50%;
}
@keyframes shine {
	20% {
		left: 150%;
	}
	100% {
		left: 150%;
	}
}