/* button */
/* cta_btn */
.cta_btn a,
.cta_btn span {
    font-size: 1.3rem;
    position: relative;
    display: flex;
    justify-content: space-around;
    align-items: center;
    color: #FFF;
    transition: 0.3s ease-in-out;
    font-weight: 600;
    background: linear-gradient(to right, #D68197,#D61C4E 35%);
    filter: drop-shadow(0px 2px 4px #ccc);
    overflow: hidden;
}

.cta_btn.small a,
.cta_btn.small span {
  font-size: 1.6vw;
  padding: 25px 0;
}

.cta_btn.big a {
  max-width: 600px;
  font-size: 1.5rem;
  padding: 40px 130px;
  margin: 0 auto;
}

.cta_btn a:before{
    content: '';
    display: block;
    position: absolute;
    width: 100%;
    height: 100%;
    top: 0;
    left: -100%;
    background-image: linear-gradient( 
130deg, rgba(255, 255, 255, 0) 25%, rgba(255, 255, 255, 0.3) 50%, rgba(255, 255, 255, 0) 55%);
    -webkit-transition: 0.5s;
    transition: 0.6s;
}
.cta_btn a:hover:before {
    left: 100%;
}
.cta_btn a:after {
    content: '';
    width: 15px;
    height: 15px;
    border-top: 3px solid #fff;
    border-right: 3px solid #fff;
    transform: rotate(45deg) translateY(-50%);
    position: absolute;
    top: 50%;
    right: 40px;
    border-radius: 1px;
    transition: 0.3s ease-in-out;
}

@media (max-width: 1020px) {
  .cta_btn.small a,
  .cta_btn.small span {
    font-size: 1.8vw;
    padding: 20px 0;
  }

  .cta_btn a:after {
    right: 20px;
    width: 11px;
    height: 11px;
  }
}

@media (max-width: 767px) {
  .cta_btn.small a,
  .cta_btn.small span {
    font-size: 2.2vw;
  }

  .cta_btn a:after {
    right: 20px;
    width: 11px;
    height: 11px;
  }
  .cta_btn.big a {
    font-size: 1.3rem;
    padding: 40px;
    margin: 0 auto;
  }
}

@media (max-width: 460px) {
  .cta_btn.small a,
  .cta_btn.small span {
    font-size: 0.7rem;
    padding: 15px 0;
  }
}

/* more btn */
.more-btn a {
  display: flex;
  justify-content: center;
  align-items: center;
  position: relative;
  width: 200px;
  height: 38px;
  color: #fff;
  font-size: 16px;
  transition: 0.3s;
  background-color: #D61C4E;
  border: 1px solid #16213E;
  margin: 12px auto;
}

.more-btn a::after {
  content: '';
  position: absolute;
  bottom: 10px;
  right: 10px;
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 0 0 10px 10px;
  border-color: transparent transparent #fff transparent;
}

.more-btn a:hover {
  background-color: #16213E;
  border: 1px solid #16213E;
}

.more-btn a:hover::after {
  border-color: transparent transparent #f2f2f2 transparent;
}

.white-btn a {
  display: inline-block;
  border: 1px solid #fff;
  border-radius: 50px;
  font-weight: bold;
  font-size: 1.2rem;
  width: 60%;
  text-align: center;
  margin: 10px 0;
  padding: 20px 50px;
  transition: .5s ;
}

.white-btn a:hover {
  background: #fff;
  color: #16213E;
}

@media (max-width: 960px) {
  .white-btn a {
    width: 74%;
  }
}

/* nav */
nav ul{
  list-style: none;
  display: flex;
  justify-content: center;
}

nav ul li a {
  display: block;
  text-decoration: none;
  color: #16213E;
  padding:10px;
}

nav ul li a:hover {
  color: #4bc7e9;
}

.g-nav-box {
  display: flex;
  justify-content: center;
}

.entry-btn {
  margin: 0 0 0 20px;
  padding: 15px 40px;
  color: #fff;
  background: linear-gradient(to right, #D68197,#D61C4E 35%);
}

@media (max-width:960px){
  .g-nav-box {
    flex-direction: row-reverse;
  }
  nav{
    padding: 0;
  }
  nav ul{
    display: block;
    padding: 100px 0;
  }
}

@media (max-width:640px) {
  .entry-btn {
    padding: 15px;
    font-size: .8rem;
  }
}

/* hamburger */
.g-nav-openbtn{
  display: none;
}
 
@media screen and (max-width:960px) {
  .g-nav-openbtn{
    display: block;
    z-index: 9999;
    cursor: pointer;
    width: 50px;
    height:50px;
  }
  .g-nav-openbtn .openbtn-area{
      transition: all .4s;
      position: relative;
  }
  .g-nav-openbtn span{
    display: inline-block;
    transition: all .4s;
    position: absolute;
    right: 0;
    height: 3px;
    border-radius: 2px;
    background: #16213E;
    width: 65%;
  }
  .g-nav-openbtn span:nth-of-type(1) {
    top:15px; 
  }
  .g-nav-openbtn span:nth-of-type(2) {
    top:23px;
  }
  .g-nav-openbtn span:nth-of-type(3) {
    top:31px;
  }
  .g-nav-openbtn.active .openbtn-area{
    transform: rotateY(-360deg);
  }
  .g-nav-openbtn.active span:nth-of-type(1) {
    top: 18px;
    left: 18px;
    transform: translateY(6px) rotate(-135deg);
    width: 30%;
  }
  .g-nav-openbtn.active span:nth-of-type(2) {
    opacity: 0;
  }
  .g-nav-openbtn.active span:nth-of-type(3){
    top: 30px;
    left: 18px;
    transform: translateY(-6px) rotate(135deg);
    width: 30%;
  }
  #g-nav{
    position:fixed;
    z-index: 999;
    top:-100vh;
    left:0;
    width:100%;
    background: rgba(255, 255, 255, .95);
    transition: all 0.6s;
  }
  #g-nav.panelactive{
      top: 85px;
  }
}

/* bg circle */
.bg-circle {
  --circe-color: 25, 199, 233;
  aspect-ratio: 1 / 1;
  background: radial-gradient(circle, rgb(var(--circe-color)), rgba(var(--circe-color), 0));
  border-radius: 50%;
  filter: blur(50px);
  width: min(100%, 400px);
}

@media (max-width: 480px) {
  .bg-circle {
    width: min(50%, 400px);
  }
}

/* font color */
.font-color-pink {
  color: #D61C4E;
}

/* text glow */
.glow-anime span {
  opacity: 0;
}

.glow-anime.glow span {
  animation:glow_anime_on 1s ease-out forwards;
}

@keyframes glow_anime_on{
  0% { opacity:0; text-shadow: 0 0 0 #fff,0 0 0 #fff;}
  50% { opacity:1;text-shadow: 0 0 10px #fff,0 0 15px #fff; }
  100% { opacity:1; text-shadow: 0 0 0 #fff,0 0 0 #fff;}
}

/* emphasis */
.emphasis {
  text-emphasis: circle #fff;
  -webkit-text-emphasis: circle #fff;
}

.emphasis-blue {
  text-emphasis: circle #4bc7e9;
  -webkit-text-emphasis: circle #4bc7e9;
}

.emphasis-navy {
  text-emphasis: circle #16213E;
  -webkit-text-emphasis: circle #16213E;
}

/* 揺れる文字 */
.sway-anime.is-animated {
  animation: sway-animation 1s ease-in-out 1 forwards;
}
 
@keyframes sway-animation {
  0%  {
    transform: scale(1.0, 1.0) translate(0, 0);
  }
  15% {
    transform: scale(0.98, 0.9) translate(0, 5px);
  }
  30% {
    transform: scale(1.02, 1.0) translate(0, 8px);
  }
  50% {transform: scale(0.98, 1.05) translate(0, -8px);
  }
  70% {
    transform: scale(1.0, 0.9) translate(0, 5px);
  }
  100% {
    transform: scale(1.0, 1.0) translate(0, 0);
  }
  0%, 100% {
    opacity: 1;
  }
}

/* check list */
li.check{
  position: relative;
}

li.check:before {
  content: "";
  position: absolute;
  top: -5px;
  left: 2px;
  -webkit-transform: rotate(50deg);
  -ms-transform: rotate(50deg);
  transform: rotate(50deg);
  width: 20px;
  height: 30px;
  border-right: 6px solid #D61C4E;
  border-bottom: 6px solid #D61C4E;
  z-index: 2;
}

li.check:after {
  content: "";
  position: absolute;
  top: .2em;
  left: 0;
  width: 25px;
  height: 25px;
  border: 2px solid #16213E;
  z-index: 1;
}

/* marker */
.marker {
  background:linear-gradient(transparent 70%, #4bc7e9 0%);
}

/* arrow border */
.arrow-border {
    position: relative;
    border-bottom: 2px solid #16213E;
    background: #fff;
    color: #16213E;
    text-align: center;
    font-size: 24px;
    padding: 30px 0 10px;
    margin: 0;
}

.arrow-border:before{
    content: "";
    position: absolute;
    bottom: -44px;
    left: 47%;
    margin-left: 2px;
    border: 22px solid transparent;
    border-top: 22px solid #fff;
    z-index: 2;
}

.arrow-border:after {
    position: absolute;
    border: 24px solid transparent;
    border-top-color: #16213E;
    border-bottom-width: 0;
    bottom: -25px;
    content: "";
    left: 47%;
    z-index: 1;
}

/* arrow-bg */
.arrow-bg:before{
    content: "";
    position: absolute;
    top: 0;
    left: 47%;
    border: 22px solid transparent;
    border-top: 22px solid #fff;
}

/* point */
.point-text {
  margin-left: 20px;
  font-size: 2.5em;
  font-weight: bold;
}

.point-area {
  font-weight: bold;
  text-align: center;
}

.point-num-big {
  color: #D61C4E;
  font-size:  7em;
  font-family: 'Century Gothic';
  transform: scaleY(1.3);

}

.point-title {
  text-align: center;
  font-weight: bold;
  margin: 50px 0 10px 0;
  color: #16213E;
}

.point-title-main {
  font-size: 2.5em;
}

.point-title-sub {
  font-size: 1.3em;
}

@media (max-width: 767px) {
  .point-area {
    text-align: left;
  }
  .point-title-sub {
    font-size: 3.8vw;
  }
  .point-text {
    font-size: 5.5vw;
    margin-left: 0;
  }
  .point-title-main {
    font-size: 8vw;
  }
  .pink-line {
    padding-bottom: 10px;
    background-image: repeating-linear-gradient(90deg, #D61C4E 0, #D61C4E 2px, rgba(0,0,0,0) 2px, rgba(0,0,0,0) 4px);
    background-size: 4px 4px;
    background-repeat: repeat-x;
    background-position: center bottom;
  }
}

/* page top */
#page-top a{
  display: flex;
  justify-content:center;
  align-items:center;
  background:#16213E;
  width: 55px;
  height: 55px;
  text-align: center;
  text-transform: uppercase; 
  text-decoration: none;
  transition:all 0.3s;
}

#page-top a:hover{
  background: #1F4690;
}

#page-top {
  position: fixed;
  right: 10px;
  bottom:10px;
  z-index: 2;
  opacity: 0;
  transform: translateY(100px);
}

#page-top.UpMove{
  animation: UpAnime 0.5s forwards;
}
@keyframes UpAnime{
  from {
    opacity: 0;
    transform: translateY(100px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

#page-top.DownMove{
  animation: DownAnime 0.5s forwards;
}
@keyframes DownAnime{
  from {
    opacity: 1;
    transform: translateY(0);
  }
  to {
    opacity: 0;
    transform: translateY(100px);
  }
}

/* sction title */
.section-title {
    display: flex;
    align-items: baseline;
    margin-bottom: 70px;
}

.section-title-en-ini {
    font-size: 10em;
    color: #D61C4E;
    font-family: 'title-font';
    letter-spacing: .05em;
}

.section-title-en {
    font-family: 'title-font';
    font-size: 5em;
    letter-spacing: .1em;
}

.section-title-ja {
    margin-left: 20px;
    font-size: 1.5em;
}

@font-face {
  font-family: 'title-font';
  src: url('../font/title-font.ttf');
}

@media (max-width: 767px) {
  .section-title {
      display: block;
  }
  .section-title-en-ini {
    font-size: 7rem;
  }
  .section-title-en {
    font-size: 4rem;
  }
  .section-title-ja {
    margin-left: 0;
    font-size: 1.2rem;
  }
}

/* zoomIn */
.zoomIn{
  animation-name: zoomInAnime;
  animation-duration:0.5s;
  animation-fill-mode:forwards;
}

@keyframes zoomInAnime{
  from {
  transform: scale(0.6);
  opacity: 0;
  }

  to {
    transform: scale(1);
  opacity: 1;
  }
}

.zoomInTrigger{
    opacity: 0;
}

@media (min-width: 768px) {
  .min-visual {
    display: none;
  }
}
@media (max-width: 767px) {
  .max-visual {
    display: none;
  }
}
