@charset "utf-8";

/* color */
:root {
  --skyblue: #6dcdff;
  --blue1: #004cb7;
  --blue2: #0a96de;
}
.skyblue {
  color: var(--skyblue);
}
.blue1 {
  color: var(--blue1);
}
.blue2 {
  color: var(--blue2);
}
.red {
  color: red;
}

/* variables */
:root {
  --section-padding: 5rem 0;
}
@media (max-width: 960px) {
  :root {
    --section-padding: 3rem 0;
  }
}

.page-main h2.section-title {
  text-align: center;
  line-height: 1.5;
  margin-bottom: 3rem;
  .en {
    color: var(--blue1);
    font-size: 2.5rem;
    @media (max-width: 960px) {
      font-size: 2rem;
    }
  }
  .jp {
    font-size: 1.5rem;
  }
}

section.page-mv {
  position: relative;
  .mv-img {
    width: 100%;
    min-height: 300px;
    object-fit: cover;
    @media (max-width: 960px) {
      min-height: 180px;
    }
  }
  .page-title {
    position: absolute;
    top: 50%;
    left: 50%;
    translate: -50% -50%;
    color: #fff;
    text-align: center;
    line-height: 1.25;
    .en {
      font-size: 3.75rem;
      @media (max-width: 960px) {
        font-size: 2rem;
      }
    }
    .jp {
      font-size: 2rem;
      font-weight: 800;
      @media (max-width: 960px) {
        font-size: 1.25rem;
      }
    }
  }
}

/*=========================
  business
=========================*/
section.business-sec1,
section.business-sec2,
section.business-sec3 {
  padding: var(--section-padding);
  .section-title {
    display: grid;
    grid-template-columns: auto 1fr;
    column-gap: 5%;
    align-items: center;
    position: relative;
    padding-left: 1rem;
    margin-bottom: 5rem;
    @media (max-width: 960px) {
      margin-bottom: 2rem;
      padding-left: 0rem;
      grid-template-columns: 1fr;
    }
    .line {
      width: 100%;
      height: 3px;
      background: linear-gradient(90deg, #6dcdff 70%, #004cb7 70%);
      @media (max-width: 960px) {
        display: none;
      }
    }
    .jp {
      text-align: right;
      @media (max-width: 960px) {
        text-align: center;
      }
    }
    &::before {
      position: absolute;
      top: 0;
      left: 0;
      content: '';
      display: block;
      height: 140px;
      width: 2px;
      background-color: var(--blue1);
    }
  }
  .text {
    width: 90%;
    margin-inline: auto;
    margin-bottom: 3rem;
  }
  .flex-items {
    display: flex;
    justify-content: center;
    align-items: flex-start;
    gap: 1rem;
    @media (max-width: 960px) {
      flex-direction: column;
    }
    .flex-item {
      width: calc(100% / 3 - 2rem);
      @media (max-width: 960px) {
        width: 90%;
        max-width: 400px;
        margin-inline: auto;
      }
      .img-dummy {
        aspect-ratio: 1/1;
        background-color: #ccc;
      }
      .title {
        text-align: center;
        text-wrap: balance;
        font-size: 1.25rem;
      }
    }
  }
}
section.business-sec3 {
  margin-bottom: 10rem;
}

/*=========================
  company
=========================*/
.company-main {
  background-color: #e9f7ff;
}
section.company-sec1 {
  padding: var(--section-padding);
  .container {
    background-color: #fff;
    padding: 2rem 2.5%;
    @media (max-width: 960px) {
      padding: 2rem;
    }
  }
  .flex {
    display: grid;
    grid-template-columns: auto 1fr;
    column-gap: 5%;
    @media (max-width: 960px) {
      grid-template-columns: 1fr;
    }
  }
  .section-title {
    position: relative;
    padding-left: 1rem;
    @media (max-width: 960px) {
      padding-left: 0rem;
      margin-bottom: 1.5rem;
    }
    &::before {
      position: absolute;
      top: 0;
      left: 0;
      content: '';
      display: block;
      height: 140px;
      width: 2px;
      background-color: var(--blue1);
      @media (max-width: 960px) {
        display: none;
      }
    }
    .en {
      text-align: left;
      @media (max-width: 960px) {
        text-align: center;
      }
    }
    .jp {
      text-align: right;
      @media (max-width: 960px) {
        text-align: center;
      }
    }
  }
}
section.company-sec2 {
  padding-bottom: 10rem;
  .container {
    background-color: #fff;
    padding: 2rem 2.5%;
    @media (max-width: 960px) {
      padding: 2rem;
    }
  }
  .section-title {
    display: grid;
    grid-template-columns: 1fr 35%;
    align-items: center;
    position: relative;
    padding-right: 1rem;
    margin-bottom: 6rem;
    @media (max-width: 960px) {
      grid-template-columns: 1fr;
      margin-bottom: 3rem;
      padding-left: 0rem;
    }
    &::before {
      position: absolute;
      top: 0;
      right: 0;
      content: '';
      display: block;
      height: 140px;
      width: 2px;
      background-color: var(--blue1);
      @media (max-width: 960px) {
        display: none;
      }
    }
    .en {
      text-align: right;
      @media (max-width: 960px) {
        text-align: center;
      }
    }
    .jp {
      text-align: right;
      grid-column: 2/3;
      @media (max-width: 960px) {
        text-align: center;
        grid-column: initial;
      }
    }
    .line {
      width: 100%;
      height: 3px;
      background: linear-gradient(90deg, #6dcdff 70%, #004cb7 70%);
      @media (max-width: 960px) {
        display: none;
      }
    }
  }
  .flex {
    display: flex;
    justify-content: center;
    column-gap: 5%;
    gap: 2rem;
    @media (max-width: 960px) {
      flex-direction: column-reverse;
    }
    .flex-l {
      width: 45%;
      @media (max-width: 960px) {
        width: 100%;
      }
      .img-wrapper {
        margin-bottom: 2rem;
        .dummy {
          background-color: #ccc;
          aspect-ratio: 4/3;
        }
      }
    }
    .flex-r {
      width: 55%;
      padding-inline: 2%;
      @media (max-width: 960px) {
        width: 100%;
      }
      .table-wrapper {
        .table {
          display: grid;
          grid-template-columns: auto 1fr;
          @media (max-width: 960px) {
            grid-template-columns: 1fr;
          }
          .row {
            display: grid;
            grid-template-columns: subgrid;
            grid-column: 1/-1;
            border-bottom: #333333 1px solid;
            column-gap: 2rem;
            @media (max-width: 960px) {
              padding-bottom: 1rem;
              margin-bottom: 1rem;
            }
          }
          .th,
          .td {
            padding: 0.5rem;
          }
        }
      }
    }
  }
}

/*=========================
  works
=========================*/
section.works-sec1,
section.works-sec2,
section.works-sec3,
section.works-sec4,
section.works-sec5,
section.works-sec6,
section.works-sec7 {
  padding: var(--section-padding);
  .section-title {
    display: grid;
    grid-template-columns: 35% 1fr;
    align-items: center;
    position: relative;
    padding-left: 1rem;
    @media (max-width: 960px) {
      margin-bottom: 1rem;
    }
    &::before {
      position: absolute;
      top: 0;
      left: 0;
      content: '';
      display: block;
      height: 140px;
      width: 2px;
      background-color: var(--blue1);
    }
    .en {
      text-align: left;
    }
    .line {
      width: 100%;
      height: 3px;
      background: linear-gradient(90deg, #6dcdff 70%, #004cb7 70%);
    }
  }
  .case-info {
    padding-inline: 5%;
    display: flex;
    justify-content: center;
    gap: 2rem;
    margin-bottom: 4rem;
    @media (max-width: 960px) {
      flex-direction: column;
      gap: 1rem;
      margin-bottom: 2rem;
    }
    .flex-l {
      width: 30%;
      @media (max-width: 960px) {
        width: 100%;
      }
      .date {
        font-size: 1.5rem;
      }
      .title {
        font-size: 1.5rem;
      }
    }
    .flex-r {
      width: 70%;
      @media (max-width: 960px) {
        width: 100%;
      }
    }
  }
  .images-wrapper {
    display: flex;
    justify-content: center;
    gap: 2rem;
    width: 90%;
    margin-inline: auto;
    .before,
    .after {
      width: 50%;
      padding-inline: 5%;
      @media (max-width: 960px) {
        padding: 0;
      }
      .img {
        margin-inline: auto;
      }
      .label {
        font-size: 2rem;
      }
    }
  }
}
section.works-sec7 {
  margin-bottom: 6rem;
  @media (max-width: 960px) {
    margin-bottom: 4rem;
  }
}

/*=========================
  recruit
=========================*/
section.recruit-sec2 {
  padding: var(--section-padding);
  margin-bottom: 6rem;
  .section-title {
    .en {
      display: grid;
      grid-template-columns: 1fr auto 1fr;
      gap: 2rem;
      align-items: center;
      @media (max-width: 960px) {
        gap: 1rem;
      }
      &::before,
      &::after {
        content: '';
        display: block;
        background: linear-gradient(90deg, #004cb7 40%, #6dcdff 40%);
        height: 3px;
      }
      &::after {
        background: linear-gradient(270deg, #004cb7 40%, #6dcdff 40%);
      }
    }
  }
  .table-wrapper {
    max-width: 730px;
    margin-inline: auto;
    .table {
      margin-bottom: 3rem;
      display: grid;
      grid-template-columns: auto 1fr;
      @media (max-width: 960px) {
        grid-template-columns: 1fr;
      }
      .row {
        display: grid;
        grid-template-columns: subgrid;
        grid-column: 1/-1;
        border-bottom: 1px solid #333333;
        padding-bottom: 1rem;
        margin-bottom: 1rem;
        padding-inline: 2vw;
        column-gap: 10%;
      }
      .th {
        padding: 0.5rem 1rem;
        width: max-content;
        @media (max-width: 960px) {
          font-size: 1.2rem;
        }
      }
      .td {
        padding: 0.5rem 1rem;
      }
    }
  }
}

/*=========================
  contact
=========================*/
.contact-main {
  background-color: #e9f7ff;
}
section.contact-sec1 {
  padding: var(--section-padding);
  .section-title {
    display: grid;
    grid-template-columns: auto 1fr;
    column-gap: 5%;
    align-items: center;
    position: relative;
    padding-left: 1rem;
    margin-bottom: 3rem;
    @media (max-width: 960px) {
      grid-template-columns: 1fr;
    }
    .line {
      width: 100%;
      height: 3px;
      background: linear-gradient(90deg, #6dcdff 70%, #004cb7 70%);
      @media (max-width: 960px) {
        display: none;
      }
    }
    .jp {
      text-align: right;
      @media (max-width: 960px) {
        text-align: center;
      }
    }
    &::before {
      position: absolute;
      top: 0;
      left: 0;
      content: '';
      display: block;
      height: 140px;
      width: 2px;
      background-color: var(--blue1);
      @media (max-width: 960px) {
        display: none;
      }
    }
  }
  .texts-wrapper {
    padding-inline: 5%;
    display: grid;
    grid-template-columns: auto 1fr;
    align-items: flex-end;
    margin-bottom: 6rem;
    @media (max-width: 960px) {
      grid-template-columns: 1fr;
      gap: 1rem;
    }
    .text {
    }
    .tel {
      display: flex;
      /* justify-content: center; */
      align-items: center;
      gap: 1rem;
      font-size: 2.5rem;
    }
  }
  .form-wrapper {
    padding: 4rem 0;
    background-color: #fff;
    margin-bottom: 6rem;
    @media (max-width: 960px) {
      padding: 2rem 1rem;
    }
    .form {
      max-width: 900px;
      margin-inline: auto;
      margin-bottom: 2rem;
      .form-table {
        display: grid;
        grid-template-columns: auto 1fr;
        margin-bottom: 2rem;
        @media (max-width: 960px) {
          grid-template-columns: 1fr;
        }
        .row {
          display: grid;
          grid-template-columns: subgrid;
          grid-column: 1/-1;
          column-gap: 2rem;
          border-bottom: 1px solid var(--skyblue);
          &:last-child {
            border-bottom: none;
          }
          @media (max-width: 960px) {
            padding-bottom: 1rem;
            margin-bottom: 1rem;
          }
        }
        .th,
        .td {
          padding: 1rem;
          @media (max-width: 960px) {
            padding: 0.5rem;
          }
        }
        .th {
          border-right: 1px solid var(--skyblue);
          @media (max-width: 960px) {
            border-right: none;
          }
        }
        .td {
          input[type='text'],
          input[type='tel'],
          input[type='email'],
          textarea {
            width: 100%;
            padding: 0.5rem;
            border: #c6c6c6 1px solid;
            background-color: #f9f7f7;
            border-radius: 8px;
          }
        }
        .red {
          font-size: 0.75em;
        }
      }
      .submit-button {
        display: block;
        margin-inline: auto;
        border: none;
        background-color: var(--skyblue);
        cursor: pointer;
        @media (any-hover: hover) {
          transition: opacity 0.3s;
          &:hover {
            opacity: 0.75;
          }
        }
      }
    }
  }
  .policy-wrapper {
    background-color: #fff;
    padding: 4rem;
    margin-bottom: 6rem;
    @media (max-width: 960px) {
      padding: 2rem 1rem;
    }
    .section-title {
      padding-left: 0;
      &::before {
        display: none;
      }
      @media (max-width: 960px) {
        margin-bottom: 1rem;
      }
    }
    .text {
      @media (max-width: 960px) {
        max-height: 400px;
        overflow-y: scroll;
        padding: 1rem;
        font-size: 0.9rem;
      }
    }
  }
}
