table.table th,
table.table td {
  padding: 2rem;
  border: 1px solid #D7D7D7;
  word-break: break-all;
}

table.table th {
  background-color: #FFFBDE;
}

table.table .local {
  background-color: #fff;
}

table.table_card {
  background-color: #fff;
  table-layout: fixed;
}

table.table_card tr {
  border: 1px solid #D7D7D7;
}

table.table_card td {
  padding: 2rem 0;
}

table.table_card td div {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  padding: 0 2rem;
  border-right: 1px solid #D7D7D7;
}

table.table_card td:last-child div {
  border-right: none;
}

table.table_card .table_card_title {
  white-space: inherit;
  width: 100%;
  font-size: 1.6rem;
}

table.table_card .table_card_title div {
  justify-content: flex-start;
  border-right: none;
}

table.table_card .table_card_contents div {
  flex-direction: column;
}

table.table_card .table_card_contents div > span {
  font-size: 1.6rem;
  font-weight: 600;
}

table.table_card .table_card_contents div > span:first-child {
  color: #777;
  font-size: 1.2rem;
  font-weight: 400;
}

table.table_calendar {
  table-layout: fixed;
}

table.table_calendar th,
table.table_calendar td {
  padding: 1rem;
  border: 1px solid #D7D7D7;
}

table.table_calendar th {
  background-color: #FFFBDE;
}

table.table_calendar th div {
  display: flex;
  align-items: center;
  justify-content: center;
}

table.table_calendar th div span:last-child {
  padding-left: .5rem;
}

table.table_calendar td .calendar_contents {
  display: flex;
  align-items: center;
  flex-direction: column;
  background-color: #D9E6F3;
  padding: .5rem;
  color: #005BAC;
  font-size: 1.2rem;
  border-radius: .4rem;
}

table.table_calendar td .calendar_modify_contents {
  display: flex;
  align-items: center;
  flex-direction: column;
  background-color: #FFEFEF;
  padding: .5rem;
  color: #C53939;
  font-size: 1.2rem;
  border-radius: .4rem;
}

table.table_calendar td .calendar_shift_contents {
  display: flex;
  align-items: center;
  flex-direction: column;
  background-color: #E3EDDB;
  padding: .5rem;
  color: #488513;
  font-size: 1.2rem;
  border-radius: .4rem;
}

table.table_form th {
  padding: 0 1rem 2rem 0;
}

table.table_form th label {
  text-align: left;
  color: #777;
  font-size: 1.2rem;
  font-weight: 600;
  white-space: nowrap;
}

table.table_form th .row-area {
  justify-content: flex-end;
}

table.table_form th.required-cell {
  padding: 0 1rem 0 0;
}

table.table_form th.section-border-cell {
  border-bottom: 1px solid #D7D7D7;
}

table.table_form th.section-title-cell {
  padding-top: 4rem;
  text-align: left;
  color: #333;
  font-size: 1.6rem;
  border-bottom: 1px solid #D7D7D7;
}

table.table_form td {
  padding: 0 0 2rem;
}

table.table_form td.required-cell {
  padding: 0;
}

table.table_fixed {
  table-layout: fixed;
}

table.table_guest th {
  width: 32rem;
}

table.table_ranking .table_ranking_rank {
  padding-right: 0;
  text-align: right;
  border-right: none;
}

table.table_ranking .table_ranking_name {
  border-right: none;
  border-left: none;
}

table.table_ranking .table_ranking_data {
  text-align: right;
}

table.table_ranking .table_ranking_count {
  padding-right: 0;
  text-align: right;
  border-right: none;
  border-left: none;
}

table.table_ranking .table_ranking_total_price {
  padding-right: 0;
  text-align: right;
  border-left: none;
}

.row_note td::before {
  margin-right: .5rem;
  content: "*";
}

@media screen and (max-width: 768px) {
  .table {
    display: block;
  }

  .table tbody,
  .table tr {
    display: block;
  }

  .table tr th,
  .table tr td {
    display: block;
  }

  .table tr td {
    border-bottom: none;
    border-top: none;
  }

  .table tr:last-child {
    border-bottom: 1px solid #D7D7D7;
  }
}
