/* ------------------------------------
// greeting
------------------------------------ */
article.greeting {
  background: #FFF;
  padding: clamp(2rem, 2.1vw, 3rem);
}
article.greeting .photobox {
  float: right;
  padding: 0 0 2rem 3rem;
  max-width: 300px;
}
article.greeting p + p {
  margin-top: 2rem;
}
@media screen and (max-width: 768px) {
  article.greeting .photobox {
    float: none;
    padding: 0 0 2rem 0;
    margin: 0 auto;
    width: fit-content;
    max-width: 80%;
  }
}

/* ------------------------------------
// division
------------------------------------ */
article.division table {
  border-top: 1px solid #828282;
  border-left: 1px solid #828282;
  border-collapse: collapse;
  font-size: clamp(1.4rem, 1.1vw, 1.6rem);
}
article.division table th,
article.division table td {
  background: #FFF;
  vertical-align: middle;
  padding: 0.5rem 1rem;
  border-right: 1px solid #828282;
  border-bottom: 1px solid #828282;
  font-weight: normal;
  text-align: left;
}
article.division table td {
  white-space: nowrap;
}
article.division table thead th {
  background: #F3F3F3;
}
article.division table.sub th {
  background: #F3F3F3;
}
@media screen and (max-width: 768px) {
  article.division .scrollbox {
    overflow-x: scroll;
    padding-bottom: 1rem;
    margin-bottom: 2rem;
    max-width: calc(100vw - 3rem);
  }
  article.division .scrollbox table th,
  article.division .scrollbox table td {
    white-space: nowrap;
  }
}

/* ------------------------------------
// member_fee
------------------------------------ */
.member_fee .title {
  font-size: clamp(1.6rem, 1.4vw, 2rem);
  font-weight: 700;
  margin-bottom: 2rem;
}
.member_fee > dl {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 3rem 2rem;
}
.member_fee > dl > dt {
  grid-column: 1/2;
  padding-top: 0.2rem;
}
.member_fee > dl > dt span {
  font-weight: 700;
  padding: 0.2em 1.5em 0.3em;
  border-radius: 2em;
  background: #3B3B3B;
  line-height: 1;
  color: #fff;
}
.member_fee > dl > dd {
  grid-column: 2/3;
}
.member_fee > dl > dd table {
  margin-top: 1rem;
  width: 100%;
  border-collapse: collapse;
}
.member_fee > dl > dd table th,
.member_fee > dl > dd table td {
  border: solid 1px #828282;
  padding: 1rem 2rem;
  vertical-align: top;
}
.member_fee > dl > dd table th {
  background: #F3F3F3;
  width: 20%;
}
.member_fee > dl > dd table td {
  background: #fff;
}
@media screen and (max-width: 768px) {
  .member_fee > dl {
    display: block;
  }
  .member_fee > dl > dd {
    margin-top: 1rem;
  }
  .member_fee > dl > dd + dt {
    margin-top: 2rem;
  }
  .member_fee > dl > dd table th,
  .member_fee > dl > dd table td {
    padding: 0.5rem 1rem;
  }
  .member_fee > dl > dd table th {
    width: 25%;
  }
}

.member_apply {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, max-content));
  align-items: center;
  gap: 1.5rem 2rem;
}
@media screen and (max-width: 768px) {
  .member_apply {
    gap: 1rem 1.5rem;
  }
  .member_apply dt {
    grid-column: 1/span 3;
  }
  .member_apply dd + dt {
    margin-top: 1rem;
  }
}