/* Reset Styles */
* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

/* Typ */
:root {
  --text-sm: 0.875rem;
  --text-base: 1rem;
  --text-lg: 1.25rem;
  --text-xl: 1.5rem;
  --text-2xl: 2.75rem;
  --text-3xl: 3.375rem;
  --text-4xl: 3.75rem;
  --pc-bold-weight: 500;
  --sp-bold-weight: 500;
}

html {
  font-size: 16px;
}

body {
  font-family: "Yu Mincho", "YuMincho", serif;
  color: #fff;
  background-color: #000;
  font-size: var(--text-base);
}

.serif {
  font-family: "Noto Serif JP", serif;
  transform: scaleX(0.96);
}

 
  @keyframes fadeInAnim {
    from {
      opacity: 0;
    }
    to {
      opacity: 1;
    }
  }

img {
  max-width: 100%;
  height: auto;
  display: block;
}

button {
  cursor: pointer;
  border: none;
  font-family: inherit;
}

p {
  margin: 0;
}

.links {
    display: flex;
    gap: 40px;
    margin-bottom: 32px;
    display: block;
    color: #fff;
    text-decoration: underline;
    font-size: 1rem;
    line-height: 2;
    transition: color 0.3s ease;
    &:hover {
        color: #ccc;
      }
  }

.button {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 500px;
  height: 60px;
  background: #fff;
  font-size: 1.6rem;
  font-weight: var(--pc-bold-weight);
  color: #0033cc;
  border-radius: 5px;
  transition: box-shadow 0.3s ease;
  letter-spacing: 0.1em;
  box-shadow: 0px 0px 10px 0px #1d60f0;
  text-decoration: none;
}

.button:hover {
  color: #000066;
  box-shadow: 0px 0px 10px 0px #fff;
}

.button2 {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 500px;
  height: 60px;
  background: #fff;
  font-size: 1.4rem;
  line-height: 1.2;
  font-weight: var(--pc-bold-weight);
  color: #0033cc;
  border-radius: 5px;
  transition: box-shadow 0.3s ease;
  letter-spacing: 0.1em;
  box-shadow: 0px 0px 10px 0px #1d60f0;
  text-decoration: none;
  
  margin: 0 auto;
}

.button2:hover {
  color: #000066;
  box-shadow: 0px 0px 10px 0px #fff;
}

.sp-only {
  display: none;
  @media screen and (max-width: 768px) {
    display: initial;
  }
}
.sp-u-margin {
  margin-bottom: initial;
  @media screen and (max-width: 768px) {
    margin-bottom: 16px;
  }
}

.button:disabled:hover {
  background: rgba(255, 255, 255, 0.6);
  color: #000;
  box-shadow: none;
}

.clear{
  clear:both;
}

@media screen and (max-width: 768px) {
  .button {
    width: 240px;
    height: 60px;
    font-size: 1.2rem;
    line-height: 1.2;
  }
}

@media screen and (max-width: 768px) {
  .button2 {
    width: 300px;
    height: 60px;
    font-size: 1.2rem;
    line-height: 1.2;
    text-align: center;
  }
}

/* Container */
.main {
  width: 100%;
}

/* ikusaai Section */

@keyframes ikusaai_Fade {
  0% {
    filter: blur(20px);
    opacity: 0;
  }
  60% {
    opacity: 1;
    filter: blur(10px);
  }
  100% {
    filter: blur(0);
    opacity: 1;
  }
}

@keyframes ikusaaiFadeIn {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}

.ikusaai {
  position: relative;
  height: 100svh;
  display: flex;
  align-items: center;
  justify-content: center;
  background-color: #000;
  overflow: hidden;

  .ikusaai__container {
    padding: 10px 0 120px 0;
    max-height: 100svh;
    aspect-ratio: 420 / 952;
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    align-items: center;
    z-index: 2;
    .ikusaai__title {
      width: 290px;
      margin-top: -100px;
      aspect-ratio: 580/250;
      opacity: 0;
      animation: 2.5s ease-out 0.5s forwards ikusaaiFadeIn;
    }
  }
  .ikusaai__bg {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 0;
    filter: opacity(0);
    background-repeat: no-repeat;
    background-image: url("img/main_img.png");
    background-size: cover;
    background-position: 50% 0;
    animation: 3s ease-out 0.5s forwards ikusaai_Fade;
  }

  @media screen and (max-width: 768px) {
    padding: 6rem 2rem 3rem;
    height: 100svh;
    .ikusaai__bg {
      background-image: url("img/main_img_sp.png");
      background-size: cover;
      background-position: 50% 0;
      
      
    }
  }
  @media screen and (max-width: 480px) {
    .ikusaai__container {
      .ikusaai__logo {
        width: 220px;
      }
      .ikusaai__title {
        margin-top: -200px;
        width: 200px;
      }
      .ikusaai__text {
        margin-top: 15px;
        width: 220px;
        margin-top: 10px;
      }
    }
   
  }
}

/* Tagline Section */
.tagline {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  position: relative;
  height: 55svh;
  width: 100%;
  padding: 40px 15px;
  overflow: hidden;

  .tagline__header {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 20px;
    max-width: 1100px;
    margin: 0 auto;

    .tagline__header__h {
      font-size: 3rem;
      line-height: 1.4;
      font-weight: var(--pc-bold-weight);
      text-align: center;
    }
    z-index: 2;
  }
  .tagline__main {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 30px;
    margin-top: 20px;
    max-width: 1100px;
    z-index: 2;

    .tagline__main-content {
      font-size: 1.5rem;
      text-align: center;
    }
}
  .tagline__bg {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 10000px;
    z-index: 0;
    background: url(img/tagline_bg.jpg) 50% 0 no-repeat;
    background-size: contain;
  }

  @media (max-width: 768px) {
    justify-content: start;
    height: auto;
    .tagline__header {
      .tagline__header__h {
        font-size: 2rem;
        font-weight: var(--sp-bold-weight);
      }
    }

    .tagline__bg {
      background-image: url(img/tagline_bg_sp.jpg);
    }

    .tagline__main {
      .tagline__main-content {
        font-size: 1rem;
      }
    }
  }
}

/* Product Section */
.product {
  position: relative;
  padding-bottom: 100px;
  overflow: hidden;

  .product__title-bg {
    position: relative;
    z-index: 2;
    img {
      width: 100%;
      height: auto;
    }
  }
  .product__image {
    position: relative;
    width: 100%;
    max-width: 1100px;
    margin-bottom: 160px;
    margin: -5px auto 0;
    padding: 0 30px;
    z-index: 2;
    img {
      width: 100%;
      object-fit: contain;
    }
  }
  .product__main {
    position: relative;
    padding: 0 40px;
    z-index: 2;
    small {
      font-size: 0.8rem;
    }
  }

  .product__header {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 8px;
    text-align: center;
    margin-top: 100px;
    z-index: 2;
    padding: 0 30px;

    .product__header__h {
      font-size: 3rem;
      line-height: 1.2;
      font-weight: var(--pc-bold-weight);
    }

    .product__header__sub {
      font-size: 1.8rem;
      line-height: 1.5;
      font-weight: 700;
    }

    .product__header__h2 {
      font-size: 2.8rem;
      line-height: 1.4;
      font-weight: var(--pc-bold-weight);
      color: #d1a71f;
    }
  }

  .product__main {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 20px;
    position: relative;
    margin-top: 40px;
    z-index: 2;

    .product__description {
      display: flex;
      flex-direction: column;
      gap: 20px;
      text-align: left;
      max-width: 800px;
      margin: 0 auto;
      p {
        font-size: 1.125rem;
        line-height: 1.7;
      }
      .product__payment {
        font-size: 1rem;
      }
    }

    .product__description2 {
      display: flex;
      flex-direction: column;
      gap: 20px;
      text-align: center;
      max-width: 880px;
      margin: 0 auto;
      p {
        font-size: 1.125rem;
        line-height: 1.7;
      }
      .product__payment {
        font-size: 1rem;
      }
    }
  }

  .product__bg {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 0;
    background-repeat: no-repeat;
    background: url(img/product_bg.jpg) 50% bottom no-repeat;
    
    background-size: cover;
  }

  @media screen and (max-width: 768px) {
    .product__image {
      padding: 0 20px;
    }

    .product__main {
      padding: 0 10px;
    }

    .product__header {
      margin-top: 60px;
      gap: 20px;
      .product__header__h {
        font-size: 2rem;
        line-height: 0.5;
        font-weight: var(--sp-bold-weight);
      }

      .product__header__sub {
        font-size: 1.5rem;
        line-height: 1.5;
        font-weight: var(--sp-bold-weight);
      }
    }

    .product__bg {
      background-image: url(img/product_bg.jpg);
      background-size: cover;
    }
  }
}

/* Bonus Section */
.bonus {
  position: relative;
  background-color: #000;
  padding: 100px 30px 100px;
  overflow: hidden;

  .bonus__image {
    
    width: 100%;
    max-width: 1100px;
    margin-bottom: 50px;
    margin: 5px auto 0;
    padding: 0 ;
    z-index: 2;
    img {
      width: 100%;
      object-fit: contain;

    }
  }

  .bonus__header {
    position: relative;
    max-width: 800px;
    margin: 0 auto;
    text-align: center;
    display: flex;
    flex-direction: column;
    gap: 8px;
    z-index: 2;
    .bonus__header__shoulder {
      font-size: 1.25rem;
      color: #fff;
      font-weight: var(--pc-bold-weight);
      line-height: 1.4;
      margin: 0;
    }

    .bonus__header__h {
      font-size: 3.75rem;
      color: #fff;
      font-weight: var(--pc-bold-weight);
      text-transform: uppercase;
      line-height: 1.2;
      margin: 0;
      letter-spacing: 0.1em;
    }
    .bonus__header__h2 {
      font-size: 1.8rem;
      color: #fff;
      font-weight: var(--pc-bold-weight);
      text-transform: uppercase;
      line-height: 1.2;
      margin: 0;
      letter-spacing: 0.1em;
    }
  }

  .bonus__intro {
    position: relative;
    max-width: 1100px;
    margin: 50px auto 0;
    text-align: center;
    display: flex;
    flex-direction: column;
    gap: 20px;
    z-index: 2;

    .bonus__intro-main {
      font-size: 2.5rem;
      color: #fff;
      font-weight: var(--pc-bold-weight);
      line-height: 1;
      margin-bottom: 30px;
    }

    .bonus__intro-num {
        font-size: 2.5rem;
        color: #d1a71f;
        font-weight: var(--pc-bold-weight);
        line-height: 0.3;
        margin: 0;
        }

      .square-number {
        font-size: 2.5rem;
        color: #d1a71f;
        font-weight: var(--pc-bold-weight);
        margin: 0;
        display: inline-block;       /* 幅と高さを持たせるために必要 */
        border: 1px solid #d1a71f;      /* 線の太さ・種類・色 */
        padding: 10px 20px;            /* 内側の余白（数字と線の間隔）*/
        line-height: 1;              /* 行の高さを調整 */
      }
 

    .bonus__intro-sub {
      font-size: 1.5rem;
      color: #fff;
      font-weight: normal;
      line-height: 1.8;
      margin: 0px;
    }
  }

  .bonus__main {
    position: relative;
    max-width: 1100px;
    margin: 120px auto 0;
    display: flex;
    flex-direction: column;
    gap: 80px;
    z-index: 2;
  }

  .bonus__item {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 40px;
    align-items: start;
    .bonus__item-image {
      width: 100%;
      aspect-ratio: 580 / 392;
      object-fit: cover;
      display: block;
      flex-shrink: 0;
    }

    .bonus__item-content {
      display: flex;
      flex-direction: column;
      gap: 20px;
      padding-top: 40px;
      flex-shrink: 0;

      .bonus__item-h {
        font-size: 1.8rem;
        color: #fff;
        font-weight: var(--pc-bold-weight);
        transform-origin: top left;
        line-height: 1.5;
        margin: 0;
      }

      .bonus__item-text {
        font-size: 1.125rem;
        color: #fff;
        line-height: 1.6;
        margin: 0;

        a {
          color: #fff;
          text-decoration: underline;
        }
      }
      .bonus__item-text.--small {
        font-size: 0.875rem;
      }
    }

    &:nth-child(even) {
      .bonus__item-content {
        grid-row: 1;
        grid-column: 1;
      }
      .bonus__item-image {
        grid-row: 1;
        grid-column: 2;
      }
    }
  }

  .bonus__movieBg {
    position: absolute;
    top: 0;
    left: 0;
    z-index: 1;
    width: 100%;
    video {
      width: 100%;
      height: auto;
      opacity: 0.4;
    }
  }
  .bonus__movieBg::after {
    position: absolute;
    bottom: 0;
    content: "";
    display: block;
    width: 100%;
    height: 300px;
    background: linear-gradient(to top, rgba(0, 0, 0, 1), rgba(0, 0, 0, 0));
    z-index: 1;
  }

  .bonus__bg {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 100%;
    max-height: 40%;
    background: url(img/bonus_bg.jpg) 50% bottom
      no-repeat;
    background-size: cover;
    z-index: 0;
  }

  .bonus__bg::before {
    position: absolute;
    top: 0;
    content: "";
    display: block;
    width: 100%;
    height: 300px;
    background: linear-gradient(to bottom, rgba(0, 0, 0, 1), rgba(0, 0, 0, 0));
  }

  @media (max-width: 768px) {
    padding: 60px 10px;

    .bonus__header {
      gap: 3px;
      margin-bottom: 60px;

      .bonus__header__shoulder {
        font-size: 1rem;
      }

      .bonus__header__h {
        font-size: 2.5rem;
        font-weight: var(--sp-bold-weight);
        
      }

      .bonus__header__h2 {
        font-size: 1.125rem;
        font-weight: var(--sp-bold-weight);
        line-height: 1.7;
      }
    }

    .bonus__intro {
      gap: 24px;
      .bonus__intro-main {
        font-size: 1.8rem;
        font-weight: var(--sp-bold-weight);
      }

      .bonus__intro-sub {
        font-size: 1.15rem;
        line-height: 1.3;
      }
    }

    .bonus__main {
      margin-top: 60px 0 120px;
      gap: 40px;
    }

      .bonus__movieBg {
      video {
      width: 100%;
      height: auto;
      opacity: 0.7;
      }
    }

    .bonus__movieBg::after {
      lock;
      width: 100%;
      height: 200px;
      background: linear-gradient(to top, rgba(0, 0, 0, 1), rgba(0, 0, 0, 0));
      z-index: 1;
    }
  

    .bonus__item {
      grid-template-columns: 1fr;
      gap: 24px;
      .bonus__item-content {
        padding: 0;
        .bonus__item-h {
          font-size: 1.125rem;
          font-weight: var(--sp-bold-weight);
          line-height: 1.7;
        }
        .bonus__item-text {
          font-size: 0.9375rem;
          line-height: 1.6;
        }
        .bonus__item-text.--small {
          font-size: 0.8125rem;
        }
      }
      &:nth-child(even) {
        .bonus__item-content {
          grid-row: unset;
          grid-column: unset;
        }
        .bonus__item-image {
          grid-row: unset;
          grid-column: unset;
        }
      }
    }
  }
}

/* SNS Section */
.sns {
  background: url("img/tagline_bg.jpg") center/cover no-repeat;
  padding: 0;
  height: 200px;
  display: flex;
  align-items: center;
  justify-content: center;

  .sns__container {
    max-width: 761px;
    margin: 0 auto;
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 20px;

    .sns__text {
      font-size: 28px;
      color: #fff;
      font-weight: 600;
      line-height: 1.5;
      margin: 0;
    }
  }

  @media (max-width: 768px) {
    height: 200px;

    .sns__container {
      max-width: 315px;
      gap: 20px;

      .sns__text {
        font-size: 20px;
        line-height: 1.35;
      }
    }
  }
}



/* Footer */
.footer {
  background-color: #000;
  padding: 30px 0;
  font-family: sans-serif;

  .footer__container {
    max-width: 1000px;
    margin: 0 auto;
    padding: 0 30px;
  }

  .footer__links {
    display: flex;
    gap: 40px;
    margin-bottom: 32px;

    .footer__link {
      display: block;
      color: #fff;
      text-decoration: underline;
      font-size: 1rem;
      line-height: 2;
      transition: color 0.3s ease;
      &:hover {
        color: #ccc;
      }
    }
  }

  .footer__copyright {
    color: #fff;
    text-align: center;
    font-size: 14px;
    line-height: 2;
    margin: 0;
  }

  @media (max-width: 768px) {
    padding: 30px 0;

    .footer__container {
      padding: 0 30px;
    }

    .footer__links {
      flex-direction: column;
      align-items: center;
      gap: 4px;
      margin-bottom: 40px;

      .footer__link {
        font-size: 1rem;
        line-height: 1.6;
      }
    }

    .footer__copyright {
      text-align: center;
      font-size: 10px;
      line-height: 1.4;
    }
  }
}
