@charset "UTF-8";
@use "variables" as *;

.container-inner {
  container-type: inline-size;
}

.facility,
.curriculum {
  h4 {
    font-size: 18px;
    font-weight: bold;
    color: var(--color-primary);
  }
}

.facility {
  .inner-box {
    display: flex;
    flex-direction: column;
    gap: 5px;
    padding-left: var(--h3-left-inset);

    ~.inner-box {
      margin-top: 2em;
    }
  }

  dl {
    border-top: 1px solid;
    width: fit-content;
    margin-top: 0.5em;
  }

  .row {
    display: flex;
    padding: 0.27em 2em;
    border-bottom: 1px solid;
  }

  dt {
    width: 150px;
  }

  dd {
    flex: 1;
  }
}

.curriculum {
  counter-reset: roman;

  .inner-box {
    counter-increment: roman;
    counter-reset: alpha;

    ~.inner-box {
      margin-top: 2em;
    }

    >div {
      padding-left: var(--h3-left-inset);
      counter-increment: alpha;

      ~div {
        margin-top: 2em;
      }
    }
  }

  h4 {
    display: flex;
    gap: 0.4em;
    margin-bottom: 1rem;

    &::before {
      content: counter(roman, upper-roman) ".";
    }
  }

  h5 {
    font-weight: 600;
    display: flex;

    &::before {
      content: counter(alpha, upper-alpha) "：";
    }
  }
}

.target {
  ol {
    padding: 1em 2em;
    border: 1px solid var(--color-secondary);
    counter-reset: num;
    margin-top: 0.6em;
  }

  li {
    counter-increment: num;
    position: relative;
    padding-left: 2em;

    &::before {
      position: absolute;
      inset: 0 auto auto 0;
      content: counter(num) ".";
    }
  }
}

.schedule {
  dl {
    margin-top: 0.6em;
    display: flex;
    flex-direction: column;
    gap: 10px;
  }

  .row {
    display: flex;
    border: 1px solid var(--color-secondary);
    height: 100%;
  }

  dt,
  dd {
    display: grid;
    place-items: center;
    padding: 0.8em 2em;
  }

  dt {
    padding-inline: 0;
    width: 200px;
    color: #fff;
    text-align: center;
    font-weight: 600;
    background-color: var(--color-secondary);
  }

  dd {
    flex: 1;
    justify-content: left;
  }

  .arrow {
    --arrow-w: 40px;
    align-self: center;
    width: var(--arrow-w);
    aspect-ratio: 20/9;
    clip-path: polygon(0 0, 100% 0, 50% 100%);
    background-color: var(--color-secondary);
  }

  .lead {
    margin-top: 1.4em;
    display: flex;
    flex-direction: column;
    gap: 1.8em;
  }
}

.weekly {
  >img {
    display: block;
    width: min(100%, 562px);
    margin-inline: auto;
  }
}

.specialist {
  >img {
    display: block;
    width: min(100%, 596px);
    margin-inline: auto;
  }
}

.contact {
  /* padding: max(2vw, 30px) 9cqi; */
  padding: 33px 90px;
  background-color: var(--color-accent);

  h2 {
    font-size: 2.4rem;
    color: var(--color-primary);
    font-weight: 600;
    text-align: center;
    margin-bottom: 18px;
  }

  .inner-box {
    /* columns: 2; */
    height: 9em;
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    flex-flow: wrap column;
    /*flexアイテムの折り返しと縦並び*/

    p {
      width: 47%;
      word-break: keep-all;
    }

    a:is(#content *) {
      text-decoration: none;
    }

    .tel {
      font-weight: 600;
      color: var(--color-primary);
      font-size: 21px;
      display: block;
      text-transform: uppercase;
    }

    .button {
      width: 47%;
      display: flex;
      place-items: center;
      place-content: center;
      gap: 1em;
      font-size: 19px;
      font-weight: 600;
      color: #fff;
      padding: 1.2em;
      background-color: var(--color-primary);

      img {
        width: 1.6em;
      }
    }
  }

}

@media all and (min-width: 751px) {
  body.recruit #title {
    background-image: url(../images/recruit/title-bg.jpg);
  }

  /* INDEX */
  .contact .tel {
    pointer-events: none;
  }
}

@media only screen and (max-width: 750px) {
  body.recruit #title {
    background-image: url(../images/recruit/title-bg.jpg);
  }

  .target {
    ol {
      padding-inline: 1em;
    }

    li {
      padding-left: 1.8em;
    }
  }

  .curriculum .schedule dt br {
    display: none;
  }

  /* INDEX */
  :root {
    --h3-left-inset: 18px;
  }

  .schedule {
    .row {
      display: flex;
      flex-direction: column;

      dt,
      dd {
        padding: 1em 0.8em;
      }

      dt {
        width: auto;
      }
    }
  }

  .contact {
    padding-inline: 20px 5cqi;

    .inner-box {
      columns: 1;
      height: auto;
      text-align: center;

      p {
        width: 100%;
      }

      .button {
        width: 100%;
        gap: 0.8em;
        font-size: 16px;
        padding: 1em;
        background-color: var(--color-primary);
        margin-top: 10px;

        img {
          width: 1.4em;
        }
      }
    }

  }
}