/* Styles moved from common.css */
.job-list {
  list-style: none;
  padding: 0;
  text-align: center;
  margin-bottom: 40px;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 15px;
}

.job-list a {
  background-color: var(--job-list-bg);
  color: var(--primary-color);
  display: block;
  padding: 10px 20px;
  border-radius: 5px;
  text-decoration: none;
  font-weight: bold;
  transition: all 0.3s ease;
}
.job-list a:hover {
  background-color: var(--job-list-hover-bg);
  transform: translateY(-2px);
}

.job-posting {
  margin-bottom: 30px;
}

.job-posting h4 {
  color: var(--primary-color);
  border-left: 5px solid var(--job-posting-border);
  font-size: 1.4em;
  padding-left: 15px;
  margin-bottom: 20px;
}

.requirements-table th {
  background-color: var(--table-header-bg);
}

.entry-button {
  background: var(--entry-button-bg);
  color: white !important;
  text-decoration: none;
}
.entry-button:hover {
  background: var(--entry-button-hover-bg);
  text-decoration: none;
}

.requirements-table {
  width: 100%;
  border-collapse: collapse;
}

.requirements-table th,
.requirements-table td {
  border: 1px solid var(--border-color-light);
  padding: 15px;
  text-align: left;
  vertical-align: top;
}

.requirements-table th {
  width: 25%;
  font-weight: bold;
}

.requirements-table ul {
  margin: 0;
  padding-left: 20px;
}

.requirements-table li {
  margin-bottom: 4px;
  white-space: normal; /* Ensure text wraps */
  overflow-wrap: break-word; /* Ensure long words break and wrap */
  max-width: 100%; /* Ensure LI does not exceed parent width */
  box-sizing: border-box; /* Include padding in element's total width */
}
.requirements-table li:last-child {
  margin-bottom: 0;
}


@media (max-width: 768px) {
  .requirements-table thead {
    display: none; /* PC用のヘッダーは非表示に */
  }

  .requirements-table,
  .requirements-table tbody,
  .requirements-table tr,
  .requirements-table td {
    display: block;
    width: 100%;
    box-sizing: border-box; /* Ensure padding and border are included in the element's total width */
  }

  .requirements-table tr {
    margin-bottom: 15px;
    border: 1px solid var(--border-color-light);
  }

  .requirements-table td {
    text-align: left;
    border: none;
    border-bottom: 1px solid var(--border-color-light);
    padding: 10px 15px; /* Adjust padding for td content */
  }

  .requirements-table td:before {
    content: attr(data-label);
    display: block; /* Make the label take its own line */
    font-weight: bold;
    white-space: normal; /* Allow label to wrap */
    margin-bottom: 5px; /* Space between label and content */
    color: var(--primary-color); /* Make label stand out */
    padding-left: 0; /* Remove any inherited padding */
  }

  /* Ensure UL content wraps */
  .requirements-table td ul {
    padding-left: 20px; /* Keep existing padding */
    list-style: disc; /* Ensure list style is visible */
    white-space: normal; /* Ensure text wraps */
    word-break: break-word; /* Allow long words to break */
    overflow-wrap: break-word; /* Ensure long words break and wrap */
    max-width: 100%; /* Ensure UL does not exceed parent width */
    box-sizing: border-box; /* Include padding in element's total width */
  }

  .requirements-table th {
      display: none; /* 元のthは使わないので非表示 */
  }
}
