@import url('https://fonts.googleapis.com/css2?family=Shippori+Mincho+B1:wght@400;500;600;700;800&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Jost:ital,wght@0,100..900;1,100..900&display=swap');

:root {
  --green01: #65b66f;
  --green02: #e3e559;
}

* {
  box-sizing: border-box;
}

p {
  margin-bottom: 0;
}

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

a {
  color: inherit;
  transition: opacity 0.3s;

  &:hover {
    opacity: 0.8;
  }
}

body {
  font-family: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;
  color: #333;
  margin: 0;
  padding: 0;
  font-feature-settings: 'palt';
  line-height: 1.6;
  position: relative;
  padding: 0px 0 0;

  @media (width >= 400px) {
    padding: 48px 0 0;
  }
}

.background {
  @media (width >= 400px) {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-image: url(./../images/newyork.jpg);
    background-attachment: fixed;
    background-repeat: no-repeat;
    background-size: cover;
    background-position: 0%;
    opacity: 0.5;
    filter: blur(4px);
  }
}

.from,
.to {
  position: fixed;
  font-size: 8vw;
  line-height: 1;
  opacity: 0.8;
  color: #fff;
  font-weight: bold;
}

.from {
  left: 0;
  bottom: -0.5vw;
}

.to {
  top: -1vw;
  right: 0;
}

h1,
h2,
h3,
h4 {
  font-family: 'Shippori Mincho B1', serif;
  font-weight: 400;
  font-style: normal;
}

.wrapper {
  max-width: 400px;
  margin: 0 auto;
  position: relative;
  padding: 0px;
  background: #fff;
  overflow: hidden;

  @media (width >= 400px) {
    border-radius: 8px 8px 0 0;
    box-shadow: 0 0 16px rgb(0 0 0 /0.05);
  }

  & > section {
    padding: 0 24px;

    h2 {
      text-align: center;
      margin: 0 0 48px;
      letter-spacing: 0.5em;
      text-indent: 0.5em;

      span:nth-child(2) {
        font-family: 'Jost', sans-serif;
        font-optical-sizing: auto;
        font-style: normal;
        font-size: 10px;
        display: block;
        color: #bbb;
        text-transform: uppercase;
        margin-top: 8px;
        letter-spacing: 0.2em;
        text-indent: 0.2em;
      }
    }
  }

  & > section + section {
    margin-top: 80px;
  }

  header {
    height: 90vh;
    margin-bottom: 80px;
    position: relative;
    overflow: hidden;

    h1 {
      text-align: center;
      font-size: 14px;
      margin: 0;
      position: absolute;
      top: 16px;
      left: 16px;
      color: #fff;
    }

    img {
      object-fit: cover;
      width: 100%;
      height: 100%;
      position: absolute;
      left: 0;
      top: 0;
    }

    p {
      position: absolute;
      top: 48px;
      right: 16px;
      -ms-writing-mode: tb-rl;
      writing-mode: vertical-rl;
      font-family: 'Shippori Mincho B1', serif;
      font-weight: 400;
      font-style: normal;
      font-size: 32px;
      line-height: 0;
      letter-spacing: 0.2em;
    }

    .circle {
      width: 320px;
      height: 320px;
      border-radius: 50%;
      background: rgb(101, 182, 111);
      background: linear-gradient(0deg, rgba(101, 182, 111, 1) 0%, rgba(227, 229, 89, 1) 100%);
      position: absolute;
      right: -16%;
      bottom: -16%;
      filter: blur(48px);
      opacity: 0.3;
    }
  }

  .business {
    section {
      .card {
        border-radius: 8px;
        overflow: hidden;
        color: #fff;
        aspect-ratio: 1/1;
        position: relative;
        display: block;

        img {
          object-fit: cover;
          width: 100%;
          height: 100%;
        }

        .overlay {
          position: absolute;
          top: 0;
          left: 0;
          width: 100%;
          height: 100%;
          opacity: 0.5;
        }

        .overlay--school {
          background: rgb(101, 182, 111);
          background: linear-gradient(0deg, rgba(101, 182, 111, 1) 0%, rgba(227, 229, 89, 1) 100%);
        }

        .overlay--gakudou {
          background: rgb(0, 101, 129);
          background: linear-gradient(0deg, rgb(35, 176, 216) 0%, rgba(0, 101, 129, 1) 100%);
        }

        h3 {
          margin: 0;
          position: absolute;
          bottom: 38px;
          left: 24px;
          font-size: 20px;
          letter-spacing: 0.2em;
        }

        .bi {
          position: absolute;
          right: 24px;
          bottom: 24px;
          width: 64px;
          height: 64px;
          border: 1px solid #fff;
          border-radius: 50%;
          text-align: center;
          line-height: 64px;
        }
      }
      p {
        font-size: 14px;
        color: #666;
      }
    }

    section + section {
      margin-top: 48px;
    }

    .insta {
      display: block;
      position: relative;
      background: -webkit-linear-gradient(135deg, #427eff 0%, #f13f79 70%) no-repeat;
      background: linear-gradient(135deg, #427eff 0%, #f13f79 70%) no-repeat; /*グラデーション①*/
      color: #fff;
      /* text-align: center; */
      text-decoration: none;
      padding: 24px;
      border-radius: 8px;
      overflow: hidden;
      span {
        position: relative;
        z-index: 999;
        display: flex;
        align-items: center;
        gap: 8px;
        letter-spacing: 0.2em;

        .bi {
          font-size: 18px;
        }
      }
      .bi-arrow-right {
        position: absolute;
        right: 24px;
        top: 50%;
        transform: translateY(-50%);
        width: 40px;
        height: 40px;
        border: 1px solid #fff;
        border-radius: 50%;
        text-align: center;
        line-height: 40px;
      }
    }

    .insta::before {
      content: '';
      position: absolute;
      top: 0;
      left: 0;
      width: 100%; /*全体を覆う*/
      height: 100%; /*全体を覆う*/
      background: -webkit-linear-gradient(15deg, #ffdb2c, rgb(249, 118, 76) 25%, rgba(255, 77, 64, 0) 50%) no-repeat;
      background: linear-gradient(15deg, #ffdb2c, rgb(249, 118, 76) 25%, rgba(255, 77, 64, 0) 50%) no-repeat;
    }
  }

  .company {
    dl {
      margin: 0;
      div {
        dt {
          flex: 1;
          font-size: 14px;
          color: #999;
          letter-spacing: 0.2em;
        }
        dd {
          flex: 4;
          margin: 8px 0 0;

          table {
            border-collapse: collapse;

            th {
              font-weight: normal;
              text-align: center;
              color: #999;
            }
            td {
              padding-left: 8px;
            }
          }
        }
      }

      div + div {
        margin-top: 24px;
        padding-top: 24px;
        border-top: 1px solid #eee;
      }
    }
  }

  .contact {
    a {
      margin-top: 32px;
      display: block;
      position: relative;
      background: #333;
      color: #fff;
      /* text-align: center; */
      text-decoration: none;
      padding: 24px;
      border-radius: 8px;
      overflow: hidden;
      span {
        position: relative;
        z-index: 999;
        display: flex;
        align-items: center;
        gap: 8px;
        letter-spacing: 0.2em;

        .bi {
          font-size: 18px;
        }
      }
      .bi-arrow-right {
        position: absolute;
        right: 24px;
        top: 50%;
        transform: translateY(-50%);
        width: 40px;
        height: 40px;
        border: 1px solid #fff;
        border-radius: 50%;
        text-align: center;
        line-height: 40px;
      }
    }
  }

  footer {
    margin-top: 80px;
    text-align: center;
    padding: 24px 16px;
    background: #f8f8f8;
    color: #666;
  }
}
