html {
  scroll-behavior: smooth;
  @media (768px <= width) {
    font-size: min(calc(100vw / 118), 10px);
  }
  @media (width < 768px) {
    font-size: calc(100vw / 37.5);
  }
}

body {
  font-size: 1.6rem;
  font-optical-sizing: auto;
  font-feature-settings: "palt";
  line-height: 1.6;
  @media (width < 768px) {
    font-size: 1.4rem;
  }
}

#uniform2026 {
  font-family: var(--font-main);
  display: block;
  position: relative;
  .mv {
    width: 100%;
    z-index: 10;
    pointer-events: none;
    img {
      width: 100%;
    }
  }

  section {
    width: 100%;
    position: relative;
    z-index: 20;
  }

  .attention-list > li,
  .attention-text {
    padding-left: 1em;
    text-indent: -1em;
    position: relative;
    > * {
      text-indent: 0;
    }
    &::before{
      content: "※";
      width: 1em;
      display: inline-block;
      text-indent: 0;
    }
  }

  .arrow {
    display: block;
    position: relative;
    width: 14px;
    height: 4px;
    border-bottom: 1px solid #F0F0F0;
    &::after {
      content: '';
      position: absolute;
      right: 1px;
      top: 0;
      width: 6px;
      height: 4px;
      border-top: 1px solid #F0F0F0;
      transform: rotate(45deg);
    }
  }

  .btn {
    display: block;
    position: relative;
    border-radius: 4px;
    background: var(--red, #D41B40);
    color: #fff;
    padding: 12px 20px;
    display: grid;
    grid-template-columns: 1fr 14px;
    align-items: center;
    font-weight: 700;
    transition: all 0.3s var(--ease, cubic-bezier(.215, .61, .355, 1));
    &::after{
      content: '';
      position: absolute;
      height: 60%;
      width: 1px;
      background: #fff;
      right: 44px;
    }
    .arrow {
      transition: transform 0.3s var(--ease, cubic-bezier(.215, .61, .355, 1));
    }
    &:hover {
      background: #000;
      .arrow {
        transform: translateX(4px);
      };
    }
    &.close {
      background: #777;
      text-align: center;
      &::after{
        content: none;
      }
    }
  }

  .modal-trigger-wrap {
    display: block;
    position: relative;
    &::before, &::after {
      content: "";
      position: absolute;
      bottom: 8px;
      right: 8px;
      width: 32px;
      height: 32px;
      pointer-events: none;
    }
    &::before {
      background: rgba(0, 0, 0, 0.6);
    }
    &::after {
      content: '+';
      font-size: 2.2rem;
      color: #fff;
      display: grid;
      place-content: center;
      padding-bottom: 3px;
    }
    &:hover {
      opacity: 0.8;
    }
    &:hover::after {
      opacity: 1;
    }
  }

  .modal-trigger {
    cursor: pointer;
    transition: opacity 0.3s;
  }
  .modal {
    position: fixed;
    z-index: 100;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.8);
    cursor: zoom-out;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.4s ease, visibility 0.4s ease;
    pointer-events: none;
  }
  .modal.is-open {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
  }
  .modal-content {
    margin: auto;
    display: block;
    width: 90%;
    max-width: 1000px;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    cursor: default; /* 画像上ではカーソルを戻す */
  }
  .modal-close {
    position: absolute;
    top: 20px;
    right: 35px;
    color: #fff;
    font-size: 40px;
    font-weight: bold;
    cursor: pointer;
  }

  .fade-in {
    opacity: 0;
    transform: translateY(20px);
    transition: all 0.6s ease, transform 0.6s ease;
  }
  .fade-in.is-visible {
    opacity: 1;
    transform: translateY(0);
  }

  #concept {
    @media (768px <= width) {
      background: url('../img/bg-01.webp') no-repeat center / cover;
    }
    @media (width < 768px) {
      background: url('../img/bg-01-sp.webp') no-repeat center / cover;
    }
    .inner {
      position: relative;
      @media (768px <= width) {
        max-width: 1440px;
        margin: 0 auto;
      }
      @media (width < 768px) {
        padding: 50px 0;
      }
    }
    .section-img {
      display: flex;
      position: relative;
      z-index: 1;
      @media (768px <= width) {
        position: absolute;
        top: 50%;
        transform: translateY(-50%);
        flex-direction: column;
        width: 50%;
      }
      @media (width < 768px) {
        position: relative;
        width: 100%;
        height: 80vw;
      }
      img {
        @media (768px <= width) {
          width: fit-content;
          max-width: 40%;
        }
        @media (width < 768px) {
          position: absolute;
        }
      }
      &.is-left {
        @media (768px <= width) {
          left: 0;
        }
        @media (width < 768px) {
          height: 72vw;
        }
        img {
          &:nth-child(1) {
            @media (768px <= width) {
              margin: 100px 0 0 40px;
            }
            @media (width < 768px) {
              width: 40%;
              right: 0;
              top: 0;
            }
          }
          &:nth-child(2) {
            @media (768px <= width) {
              margin: 140px 0 0;
            }
            @media (width < 768px) {
              width: 40%;
              left: 0;
              top: 20%;
            }
          }
          &:nth-child(3) {
            @media (768px <= width) {
              margin: 30px 0 0 40%;
            }
            @media (width < 768px) {
              width: 40%;
              left: 10%;
              bottom: 0;
            }
          }
        }
      }
      &.is-right {
        @media (768px <= width) {
          right: 0;
        }
        @media (width < 768px) {
          padding-bottom: 40px;
        }
        img {
          &:nth-child(1) {
            @media (768px <= width) {
              margin: 0 50px 0 auto;
            }
            @media (width < 768px) {
              width: 40%;
              right: 10%;
              top: 0;
            }
          }
          &:nth-child(2) {
            @media (768px <= width) {
              margin: 80px 0 0 auto;
            }
            @media (width < 768px) {
              width: 40%;
              letter-spacing: 0;
              top: 20%;
            }
          }
          &:nth-child(3) {
            @media (768px <= width) {
              margin: 80px 100px 0 auto;
            }
            @media (width < 768px) {
              width: 40%;
              right: 0;
              bottom: 0;
            }
          }
        }
      }
    }
    .section-text {
      margin: 0 auto;
      color: var(--white-gray, #F0F0F0);
      position: relative;
      z-index: 2;
      @media (768px <= width) {
        padding: 200px 0 400px;
        width: 640px;
      }
      @media (width < 768px) {
        padding: 20px 0;
        width: 90%;
      }
      p {
        font-size: 1.8rem;
        font-weight: 700;
        line-height: 2.4;
        margin-top: 20px;
        @media (width < 768px) {
          font-size: 1.6rem;
        }
      }
    }
    .section-title {
      text-align: center;
      font-family: var(--font-en);
      font-size: 14.4rem;
      font-weight: 700;
      @media (width < 768px) {
        font-size: 7.2rem;
      }
    }
  }

  .attention {
    background: #000;
    color: #fff;
    @media (768px <= width) {
      padding: 80px 0;
    }
    @media (width < 768px) {
      padding: 40px 16px;
    }
    .attention-box {
      border: 1px solid var(--white-gray, #F0F0F0);
      margin: 0 auto;
      font-size: 1.6rem;
      @media (768px <= width) {
        width: 1280px;
        max-width: 90%;
      }
      h3 {
        padding: 16px 0;
        border-bottom: 1px solid var(--white-gray, #F0F0F0);
        text-align: center;
        font-weight: 700;
        color: #fff;
        font-size: 1.8rem;
        @media (width < 768px) {
          font-size: 1.4rem;
        }
      }
      .text-box {
        padding: 40px;
        @media (width < 768px) {
          padding: 24px 16px;
        }
        @media (width < 768px) {
          font-size: 1.4rem;
        }
        .is-center {
          text-align: center;
        }
        .is-center-pc {
          @media (768px <= width) {
            text-align: center;
          }
        }
        > * + * {
          margin-top: 10px;
        }
        h4 {
          font-weight: 700;
          font-size: 1.6rem;
          @media (width < 768px) {
            font-size: 1.4rem;
          }
          &.is-important {
            color: #fc486c;
          }
        }
        > * + h4 {
          margin-top: 24px;
        }
      }
      .arrow-text {
        display: flex;
        flex-wrap: wrap;
        align-items: center;
        justify-content: center;
        gap: 8px;
        font-weight: 700;
        + * {
          margin-top: 20px;
        }
      }
      .arrow-wrap {
        display: flex;
        align-items: center;
        justify-content: center;
        align-items: center;
        gap: 8px;
        margin: 16px 0;
        @media (width < 768px) {
          margin: 8px 0;
        }
        .text {
          background: #fff;
          color: #000;
          padding: 0 8px;
        }
      }
      .attention-list {
        font-size: 1.4rem;
        line-height: 2.2;
        @media (width < 768px) {
          font-size: 1.2rem;
        }
        &.is-important {
          color: #fc486c;
        }
      }
      .text-link {
        border-bottom: 1px solid #fff;
        color: #fff;
        &:hover {
          opacity: 0.8;
        }
      }
    }
    .detail-box {
      max-width: 90%;
      margin: 0 auto;
      @media (768px <= width) {
        width: 800px;
      }
      h3 {
        color: #fff;
        font-weight: 700;
        @media (768px <= width) {
          font-size: 1.8rem;
        }
        + * {
          margin-top: 20px;
        }
      }
      img {
        width: 100%;
      }
    }
  }

  .uniform {
    @media (768px <= width) {
      background: url('../img/bg-01.webp') no-repeat center / cover;
    }
    @media (width < 768px) {
      background: url('../img/bg-01-sp.webp') no-repeat center / cover;
    }
    .inner {
      margin: 0 auto;
      position: relative;
      max-width: 90%;
      @media (768px <= width) {
        padding: 160px 0;
        width: 1280px;
      }
      @media (width < 768px) {
        padding: 80px 0;
      }
    }
    h2 {
      font-family: var(--font-en);
      font-weight: 700;
      @media (768px <= width) {
        font-size: 17.6rem;
        position: absolute;
        top: 160px;
        left: 0;
      }
      @media (width < 768px) {
        font-size: 7rem;
      }
      span {
        color: #fff;
        line-height: 1;
        display: block;
      }
      .first {
        color: var(--purple, #AF2DA1);
      }
    }
    .uniform-box {
      @media (768px <= width) {
        width: 600px;
        margin-left: auto;
      }
    }
    .card-container {
      perspective: 1000px;
      @media (768px <= width) {
        width: 600px;
        height: 550px;
      }
      @media (width < 768px) {
        aspect-ratio: 600 / 680;
        width: 100%;
      }
    }
    .card-inner {
      position: relative;
      width: 100%;
      height: 100%;
      transition: transform 0.6s cubic-bezier(0.175, 0.885, 0.32, 1.275);
      transform-style: preserve-3d;
      cursor: pointer;
    }
    .card-inner.is-flipped {
      transform: rotateY(180deg);
    }
    .front, .back {
      position: absolute;
      backface-visibility: hidden;
      inset: 0;
      img {
        width: 100%;
        height: 100%;
        object-fit: contain;
      }
    }
    .back {
      transform: rotateY(180deg);
    }
    .flip-btn {
      cursor: pointer;
      position: absolute;
      bottom: 0;
      right: 0;
      z-index: 2;
      @media (width < 768px) {
        width: 14vw;
      }
      img {
        display: block;
        transition: opacity 0.3s ease, transform 0.3s ease;
        will-change: opacity, transform;
      }
    }
    .number {
      @media (768px <= width) {
        margin-top: 80px;
      }
      @media (width < 768px) {
        margin: 40px auto 0;
        max-width: 80%;
      }
      img {
        margin: 0 auto;
        display: block;
      }
    }
    .detail-box {
      @media (768px <= width) {
        margin-top: 80px;
      }
      @media (width < 768px) {
        margin-top: 60px;
      }
      .en {
        font-family: var(--font-en);
        font-size: 2.4rem;
        margin-bottom: 1.6rem;
        font-weight: 400;
        @media (width < 768px) {
          font-size: 1.4rem;
        }
      }
      table {
        border: 1px solid #fff;
        table-layout: fixed;
        width: 100%;
        font-weight: 700;
        tr {
          > th, > td {
            color: #fff;
            text-align: left;
            vertical-align: middle;
            @media (768px <= width) {
              padding: 16px;
            }
            @media (width < 768px) {
              padding: 8px;
            }
          }
        }
        thead {
          tr {
            td {
              text-align: right;
              @media (768px <= width) {
                font-size: 2.2rem;
              }
              @media (width < 768px) {
                font-size: 1.6rem;
              }
              .en {
                display: flex;
                margin: 0;
                justify-content: flex-end;
                gap: 14px;
              }
            }
          }
        }
        tbody {
          tr {
            > th, > td {
              border: 1px solid #fff;
              text-align: left;
              .en {
                font-size: 2.4rem;
                @media (width < 768px) {
                  font-size: 1.8rem;
                }
              }
              .tax {
                font-size: 1rem;
              }
            }
            >td:nth-of-type(2) {
              background: #000;
            }
          }
        }
      }
      h3 {
        color: #fff;
        font-weight: 700;
        @media (768px <= width) {
          font-size: 1.8rem;
        }
        + * {
          margin-top: 20px;
        }
      }
      img {
        width: 100%;
      }
    }
    .btn {
      margin-top: 60px;
    }
    &.is-second {
      @media (768px <= width) {
        background: url('../img/bg-03.webp') no-repeat center / cover;
      }
      @media (width < 768px) {
        background: url('../img/bg-03-sp.webp') no-repeat center / cover;
      }
      h2 {
        .second {
          color: #000;
        }
      }
      .detail-box {
        table {
          border: 1px solid #000;
          tr {
            > th, > td {
              color: #000;
            }
          }
          tbody {
            tr {
              > th, > td {
                border: 1px solid #000;
              }
              >td:nth-of-type(2) {
                background: #fff;
              }
            }
          }
        }
        h3 {
          color: #000;
        }
      }
    }
  }

  .bg-img-area {
    position: relative;
    z-index: 20;
  }
}
