/* poster */
.poster-box{
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  margin: 60px auto 0;
  align-items: center;
}
.poster-box .txt{
  font-size: 22px;
  font-weight: bold;
  text-align: right;
}
.poster-box .img{
  width: 40%;
}

@media screen and (max-width: 750px) {
  .poster-box .txt {
    font-size: 16px;
    text-align: center;
  }
  .poster-box .img {
    width: 65%;
  }
}

/* red-box */
.red-box{
  background: red;
}
.red-inner{
  display: block;
  /* padding: 2px 10px; */
  text-align: left;
  font-size: 20px;
  color: white;
}
@media screen and (max-width: 750px) {
  .red-inner{
    /* padding: 0px 6px; */
    font-size: 14px;
  }
}

/* table SP時 縦積み*/
.table-wrapper {
  max-width: 980px;
  font-size: 20px;
}

.table-wrapper table {
  width: 100%;
  border-collapse: collapse;
  border: 1px solid #999;
}

.table-wrapper th, .table-wrapper td {
  padding: 12px;
  border: 1px solid #999;
}

.table-wrapper th {
  background-color: #f5f5f5;
  text-align: center;
}

.table-wrapper td {
  text-align: left;
}

.table-wrapper th:first-child,
.table-wrapper td:first-child {
  width: 16%;
}

@media screen and (max-width: 750px) {
  .table-wrapper {
    width: 100%;
    /* padding: 0 15px; */
    font-size: 14px;
  }

  .table-wrapper table {
    width: 100%;
    border: none;
  }

  .table-wrapper th, .table-wrapper td {
    border: none;
  }

  .table-wrapper thead {
    display: none;
  }

  .table-wrapper tbody tr {
    display: block;
    margin-bottom: 20px;
    border: 1px solid #999;
  }

  .table-wrapper td {
    display: block;
    padding: 12px;
    border-bottom: 1px solid #999;
  }

  .table-wrapper th:first-child,
  .table-wrapper td:first-child {
    width: 100%;
  }

  .table-wrapper td:last-child {
    border-bottom: none;
  }

  .table-wrapper td:before {
    content: attr(data-label);
    display: block;
    font-weight: bold;
    background-color: #f5f5f5;
    padding: 8px;
    margin: -12px -12px 8px -12px;
    text-align: center;
  }
}

/* table2 SP時 横スクロール */
.table-wrapper2 {
  max-width: 980px;
  font-size: 20px;
}

.table-wrapper2 table {
  width: 100%;
  border-collapse: collapse;
  border: 1px solid #999;
}

.table-wrapper2 th, .table-wrapper2 td {
  padding: 12px;
  border: 1px solid #999;
}

.table-wrapper2 th {
  background-color: #f5f5f5;
  text-align: center;
}

.table-wrapper2 td {
  text-align: left;
}

.table-wrapper2 th:first-child,
.table-wrapper2 td:first-child {
  width: 16%;
}

/* rowspanでまとめた行の間だけ点線にする */
.table-wrapper2 tr.group-first > td:not([rowspan]) {
  border-bottom: 1px dotted #999;
}

.table-wrapper2 tr.group-mid > td {
  border-top: 1px dotted #999;
  border-bottom: 1px dotted #999;
}

.table-wrapper2 tr.group-last > td {
  border-top: 1px dotted #999;
}

@media screen and (max-width: 750px) {
  .table-wrapper2 {
    width: 100%;
    font-size: 14px;
    position: relative;
  }

  /* スワイプ案内テキスト */
  .table-wrapper2::before {
    content: "→ 横にスクロールできます";
    display: block;
    font-size: 12px;
    color: #888;
    text-align: right;
    margin-bottom: 4px;
  }

  /* スクロールコンテナ + フェードシャドウ(CSS only) */
  .table-scroll {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    background:
      linear-gradient(to right, white 30%, rgba(255,255,255,0)),
      linear-gradient(to left, white 30%, rgba(255,255,255,0)) 100% 0,
      radial-gradient(farthest-side at 0 50%, rgba(0,0,0,.2), rgba(0,0,0,0)),
      radial-gradient(farthest-side at 100% 50%, rgba(0,0,0,.2), rgba(0,0,0,0)) 100% 0;
    background-repeat: no-repeat;
    background-size: 40px 100%, 40px 100%, 14px 100%, 14px 100%;
    background-attachment: local, local, scroll, scroll;
  }

  .table-wrapper2 table {
    width: max-content;
    min-width: 100%;
    border: 1px solid #ddd;
  }

  .table-wrapper2 th:first-child,
  .table-wrapper2 td:first-child {
    width: auto;
    white-space: nowrap;
  }
}

/* two-columns */
.two-columns {
  max-width: 700px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px 30px;
  text-align: left;
  font-size: 24px;
}

@media screen and (max-width: 750px) {
  .two-columns {
    grid-template-columns: 1fr;
  }
}

/* one-columns */
.one-columns {
  max-width: 700px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1fr;
  gap: 10px 30px;
  text-align: left;
  font-size: 24px;
}

.one-columns .sm{
  font-size: 12px;
}

@media screen and (max-width: 750px) {
  .one-columns {
    grid-template-columns: 1fr;
  }
}