@charset "UTF-8";

html,
body,
h1,
h2,
h3,
p,
ul,
li {
  margin: 0;
  padding: 0;
}

* {
  box-sizing: border-box;
}

ul {
  list-style: none;
}

a {
  text-decoration: none;
  color: inherit;
}

img {
  border: none;
  vertical-align: bottom;
  max-width: 100%;
}

html {
  scroll-behavior: smooth;
}

body {
  background: #f6f6f6;
  color: #333;
  font-size: 14px;
  line-height: 1.8;
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-weight: 500;
  font-style: normal;
  overflow-x: hidden;
}

.wrap {
  max-width: 1200px;
  margin: 0 auto;
  padding: 80px 0 80px;
  background-color: #fff;
}

.mt-0 {
  margin-top: 0px !important;
}

.pc-none {
  display: none;
}

@media (max-width: 767px) {
  .pc-none {
    display: block;
  }
}

@media (max-width: 767px) {
  .sp-none {
    display: none;
  }
}


.fv {
  position: relative;
  width: 100%;
  min-height: 400px;
  background-image: url("https://career-review-qa.s3.amazonaws.com/images/official/kamagaya/fv-pc.png");
  background-size: cover;
  background-position: center top;
  padding: 60px 0 80px;
  margin: 0 calc(50% - 50vw);
  width: 100vw;
}

@media (max-width: 640px) {
  .fv {
    background-image: url("https://career-review-qa.s3.amazonaws.com/images/official/kamagaya/fv-sp.png");
    padding: 40px 0 60px;
    min-height: auto;
  }
}

.fv-inner {
  position: relative;
  max-width: 1300px;
  margin: 0 auto;
  padding: 0 20px;
}

.fv-txt .logo {
  display: flex;
  align-items: center;
  margin-bottom: 20px;
}

.fv-txt .logo img {
  width: 60px;
  height: auto;
  margin-right: 12px;
}

@media (max-width: 767px) {
  .fv-txt .logo img {
    width: 40px;
    margin-right: 8px;
  }
}

.fv-txt .logo .txt {
  font-size: 16px;
  font-weight: bold;
  color: #333;
}

@media (max-width: 767px) {
  .fv-txt .logo .txt {
    font-size: 14px;
  }
}

.fv-txt .recruit {
  display: inline-flex;
  align-items: center;
  font-size: 16px;
  color: #fff;
  font-weight: bold;
  background-color: #142750;
  padding: 6px 12px;
  border-radius: 4px;
  line-height: 1;
  margin-bottom: 20px;
}

.fv-txt .recruit span {
  background-color: #fff;
  padding: 4px 12px;
  font-weight: 500;
  line-height: 1;
  color: #142750;
  font-size: 14px;
  margin-right: 12px;
}

.fv-txt .title {
  font-size: 54px;
  font-weight: 900;
  line-height: 1.4;
  margin-bottom: 20px;
}

@media (max-width: 767px) {
  .fv-txt .title {
    font-size: 40px;
    margin-bottom: 15px;
    text-shadow: 1px 1px 0 #fff, -1px -1px 0 #fff, -1px 1px 0 #fff, 1px -1px 0 #fff, 0px 1px 0 #fff, -1px 0 #fff, -1px 0 0 #fff, 1px 0 0 #fff;
  }
}

.fv-txt .title span {
  margin-left: -24px;
}

.fv-txt .sub {
  font-size: 16px;
  font-weight: 500;
  margin-bottom: 40px;
  font-weight: bold;
}

@media (max-width: 767px) {
  .fv-txt .sub {
    font-size: 14px;
    margin-bottom: 15px;
    text-shadow: 1px 1px 0 #fff, -1px -1px 0 #fff, -1px 1px 0 #fff, 1px -1px 0 #fff, 0px 1px 0 #fff, -1px 0 #fff, -1px 0 0 #fff, 1px 0 0 #fff;
  }
}

.fv .btn {
  height: 80px;
  width: 360px;
}

@media (max-width: 767px) {
  .fv .btn {
    height: 70px;
    width: 100%;
  }
}

.btn {
  font-size: 18px;
  font-weight: bold;
  background-color: #142750;
  color: #fff;
  border-radius: 40px;
  padding: 0 20px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  transition: all 0.3s ease;
}

.btn:hover {
  background-color: #fff;
  outline: 2px solid #142750;
  color: #142750;
}

.btn img {
  width: 40px;
  height: 40px;
}

.sec {
  margin: 100px 0 0;
}

.inner {
  padding: 0 80px;
}

@media (max-width: 767px) {
  .inner {
    padding: 0 20px;
  }
}

.sec-img {
  width: 100%;
  margin: 0 auto 30px;
}

.sec-img img {
  width: 100%;
  height: auto;
}

.titlebox {
  position: relative;
  margin-bottom: 30px;
}

@media (max-width: 767px) {
  .titlebox {
    margin-bottom: 20px;
  }
}

.titlebox h2 {
  position: relative;
  font-size: 28px;
  color: #142750;
  font-weight: bold;
  margin: 0;
  line-height: 1.4;
  z-index: 1;
}

@media (max-width: 767px) {
  .titlebox h2 {
    font-size: 24px;
  }
}

.titlebox h2::before {
  content: "";
  position: absolute;
  width: 40px;
  height: 40px;
  background-color: #e3e6ec;
  border-radius: 50%;
  top: -10px;
  left: -14px;
  z-index: -1;
}

.titlebox .en {
  font-size: 14px;
  color: #142750;
  margin-top: -2px;
  font-weight: bold;
}

.hospital-table {
  width: 100%;
  margin: 0 auto;
  border-collapse: collapse;
  border: 1px solid #e5e5e5;
}

.hospital-table th {
  width: 18%;
  background-color: #e6ecff;
  color: #333333;
  vertical-align: middle;
  text-align: left;
  padding: 25px 15px;
  border-bottom: 1px solid #e5e5e5;
  border-right: 1px solid #e5e5e5;
  font-size: 14px;
  letter-spacing: 0.05em;
}

.hospital-table td {
  width: 82%;
  padding: 25px 30px;
  vertical-align: top;
  border-bottom: 1px solid #e5e5e5;
  font-size: 14px;
}

.text-group {
  margin-bottom: 15px;
}

.text-group:last-child {
  margin-bottom: 0;
}

.bold-title {
  font-weight: bold;
  display: block;
  margin-top: 15px;
  margin-bottom: 2px;
}

.text-group .bold-title:first-child {
  margin-top: 0;
}

.equipment-container {
  display: flex;
  gap: 20px;
}

.equipment-column {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 15px;
}

.equipment-card {
  background-color: #f7f8fa;
  padding: 20px;
  border-radius: 4px;
}

.equipment-card h4 {
  margin: 0 0 12px 0;
  font-size: 14px;
  font-weight: bold;
  color: #333333;
}

.equipment-card ul {
  list-style: none;
  padding: 0;
  margin: 0;
}

.equipment-card li {
  position: relative;
  padding-left: 14px;
  margin-bottom: 5px;
  color: #4a4a4a;
  line-height: 1.5;
}

.equipment-card li:last-child {
  margin-bottom: 0;
}

.equipment-card li::before {
  content: "・";
  position: absolute;
  left: 0;
  top: 0;
}

@media (max-width: 768px) {

  .hospital-table,
  .hospital-table tbody,
  .hospital-table tr,
  .hospital-table th,
  .hospital-table td {
    display: block;
    width: 100%;
    box-sizing: border-box;
  }

  .hospital-table th {
    border-right: none;
    padding: 15px;
    text-align: left;
  }

  .hospital-table td {
    padding: 20px 15px;
  }

  .equipment-container {
    flex-direction: column;
    gap: 15px;
  }
}

.title-h3 {
  margin-top: 40px;
  margin-bottom: 10px;
}

.schedule-img img {
  width: 100%;
  height: auto;
}

@media (max-width: 767px) {
  .schedule-img img {
    max-width: 460px;
    margin: 0 auto;
  }
}

.table-container {
  width: 100%;
  margin: 0 auto;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

.facility-table {
  width: 100%;
  min-width: 480px;
  border-collapse: collapse;
  font-size: 14px;
  table-layout: fixed;
}

.facility-table th,
.facility-table td {
  border: 1px solid #e0e0e0;
  padding: 16px 20px;
  vertical-align: middle;
}

.facility-table thead th {
  background-color: #f5f5f5;
  color: #333333;
  font-weight: normal;
  text-align: center;
}

.facility-table thead th.empty-cell {
  background-color: #ffffff;
  border-top: hidden;
  border-left: hidden;
  border: none;
  border-bottom: 1px solid #e0e0e0;
  width: 38%;
}

.facility-table thead th:not(.empty-cell) {
  width: 31%;
}

.facility-table tbody th.facility-name {
  background-color: #e6ecff;
  color: #333333;
  font-weight: normal;
  text-align: left;
  line-height: 1.5;
}

.facility-table tbody td {
  text-align: center;
  color: #333333;
}

@media (max-width: 768px) {

  .facility-table th,
  .facility-table td {
    padding: 12px 10px;
  }
}

.inner-table,
.empty-cell {
  border: inherit !important;
}

.benefits-table {
  width: 100%;
  margin: 0 auto;
  border-collapse: collapse;
  border-top: 1px solid #e5e5e5;
  border-bottom: 1px solid #e5e5e5;
}

.benefits-table th.main-header {
  width: 18%;
  background-color: #e6ecff;
  color: #333333;
  font-weight: bold;
  text-align: left;
  vertical-align: middle;
  padding: 25px 15px;
  border-bottom: 1px solid #e5e5e5;
  border-right: 1px solid #e5e5e5;
  font-size: 14px;
  letter-spacing: 0.05em;
}

.benefits-table td.main-content {
  width: 82%;
  padding: 25px 30px;
  vertical-align: middle;
  border-bottom: 1px solid #e5e5e5;
  font-size: 14px;
}

.inner-table-wrapper {
  width: 100%;
}

.inner-table {
  width: 100%;
  border-collapse: collapse;
  border: 1px solid #e0e0e0;
  font-size: 14px;
}

.inner-table th,
.inner-table td {
  border: 1px solid #e0e0e0;
  padding: 12px 15px;
  vertical-align: middle;
}

.inner-table thead th,
.inner-table tbody th {
  background-color: #f5f5f5;
  color: #333333;
  font-weight: normal;
  text-align: center;
}

.salary-table th.empty-cell {
  width: 15%;
  background-color: #ffffff;
  border: inherit;
}

.salary-table thead th:not(.empty-cell) {
  width: 28%;
}

.salary-table tbody th {
  width: 15%;
}

.salary-table td {
  text-align: center;
}

.salary-table td.remarks-cell {
  text-align: left;
  line-height: 1.5;
  padding-left: 20px;
}

.duty-table th {
  width: 15%;
}

.duty-table td {
  text-align: left;
}

.text-list {
  list-style: none;
  padding: 0;
  margin: 5px 0 0 0;
}

.text-list li {
  position: relative;
  padding-left: 14px;
  margin-bottom: 4px;
  line-height: 1.5;
}

.text-list li:last-child {
  margin-bottom: 0;
}

.text-list li::before {
  content: "・";
  position: absolute;
  left: 0;
  top: 0;
}

/* --- 【大幅修正】待遇・福利厚生（支給額・当直テーブル）のスマホ崩れ徹底防止 --- */
@media (max-width: 768px) {

  /* 子テーブルに影響を及ぼさないよう、「> (直下の子要素セレクタ)」を明示して親テーブルのみを縦並び(block)に変形 */
  .benefits-table,
  .benefits-table>tbody,
  .benefits-table>tbody>tr,
  .benefits-table>tbody>tr>th.main-header,
  .benefits-table>tbody>tr>td.main-content {
    display: block !important;
    width: 100% !important;
    box-sizing: border-box;
  }

  .benefits-table th.main-header {
    border-right: none;
    padding: 15px;
    text-align: left;
    border-bottom: none;
  }

  .benefits-table td.main-content {
    padding: 10px 15px 20px;
  }

  /* 横スクロールラッパーの初期化 */
  .benefits-table .inner-table-wrapper {
    width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }

  /* 内包する子テーブル（給与・当直）が絶対に崩れないようテーブル構造を再強制定義 */
  .benefits-table .inner-table {
    display: table !important;
    width: 100%;
    min-width: 560px;
    /* 横スクロールが綺麗に動く最適な絶対幅 */
    table-layout: auto !important;
    border-collapse: collapse !important;
  }

  .benefits-table .inner-table tr {
    display: table-row !important;
  }

  .benefits-table .inner-table th,
  .benefits-table .inner-table td {
    display: table-cell !important;
    width: auto !important;
    white-space: nowrap;
    /* 意図しない折り返しで高さがズレるのを完全防止 */
    padding: 10px 12px !important;
  }

  /* PC用の％指定の完全無効化 */
  .salary-table th.empty-cell,
  .salary-table thead th:not(.empty-cell),
  .salary-table tbody th,
  .salary-table td {
    width: auto !important;
  }

  /* 備考欄のみ折り返しを許可して領域幅を固定確保 */
  .salary-table td.remarks-cell {
    white-space: normal;
    min-width: 160px;
  }

  .duty-table th {
    min-width: 80px;
  }
}

.recruit-table {
  width: 100%;
  max-width: 1000px;
  margin: 0 auto;
  border-collapse: collapse;
  border-top: 1px solid #e5e5e5;
  border-bottom: 1px solid #e5e5e5;
}

.recruit-table th.main-header {
  width: 18%;
  background-color: #e6ecff;
  color: #333333;
  font-weight: bold;
  text-align: left;
  vertical-align: middle;
  padding: 25px 15px;
  border-bottom: 1px solid #e5e5e5;
  border-right: 1px solid #e5e5e5;
  font-size: 14px;
  letter-spacing: 0.05em;
}

.recruit-table td.main-content {
  width: 82%;
  padding: 25px 30px;
  vertical-align: middle;
  border-bottom: 1px solid #e5e5e5;
  font-size: 14px;
}

.recruit-table .inner-table {
  width: 100%;
  border-collapse: collapse;
  border: 1px solid #e0e0e0;
  font-size: 14px;
}

.recruit-table .inner-table th,
.recruit-table .inner-table td {
  border: 1px solid #e0e0e0;
  padding: 14px 20px;
  vertical-align: middle;
}

.recruit-table .inner-table tbody th {
  background-color: #f5f5f5;
  color: #333333;
  font-weight: normal;
  text-align: left;
  width: 22%;
}

.recruit-table .inner-table tbody td {
  background-color: #ffffff;
  text-align: left;
  line-height: 1.6;
}

.note-text {
  font-size: 12px;
  color: #333333;
  display: block;
  margin-top: 4px;
}

/* --- 応募・選考情報テーブルのスマホ対応 --- */
@media (max-width: 768px) {

  .recruit-table,
  .recruit-table>tbody,
  .recruit-table>tbody>tr,
  .recruit-table>tbody>tr>th.main-header,
  .recruit-table>tbody>tr>td.main-content {
    display: block !important;
    width: 100% !important;
    box-sizing: border-box;
  }

  .recruit-table th.main-header {
    border-right: none;
    padding: 15px;
    text-align: left;
    border-bottom: none;
  }

  .recruit-table td.main-content {
    padding: 10px 15px 20px;
  }

  /* 長文を含むテーブルのため、スマホ時はあえてスクロールさせず完全に縦一列(block)へ並び替えて可読性を向上 */
  .recruit-table .inner-table-wrapper {
    overflow: visible;
  }

  .recruit-table .inner-table,
  .recruit-table .inner-table tbody,
  .recruit-table .inner-table tr,
  .recruit-table .inner-table th,
  .recruit-table .inner-table td {
    display: block !important;
    width: 100% !important;
    box-sizing: border-box;
  }

  .recruit-table .inner-table tr {
    margin-bottom: 15px;
    border: 1px solid #e0e0e0;
  }

  .recruit-table .inner-table tr:last-child {
    margin-bottom: 0;
  }

  .recruit-table .inner-table tbody th {
    width: 100% !important;
    background-color: #f5f5f5;
    padding: 10px 15px;
    border: none;
    border-bottom: 1px solid #e0e0e0;
  }

  .recruit-table .inner-table tbody td {
    width: 100% !important;
    padding: 15px;
    border: none;
  }
}

.pdf-link-container {
  display: flex;
  justify-content: space-between;
  max-width: 1000px;
  margin: 0 auto;
  gap: 40px;
}

.pdf-link-column {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 20px;
}

.pdf-link-item {
  align-self: flex-start;
  display: inline-flex;
  align-items: center;
  text-decoration: none;
  color: #142750;
  font-size: 14px;
  padding-bottom: 4px;
  border-bottom: 1px solid #142750;
  transition: opacity 0.2s ease;
}

.pdf-link-item:hover {
  opacity: 0.7;
}

.pdf-icon {
  width: 16px;
  height: 16px;
  margin-right: 8px;
  flex-shrink: 0;
  fill: #142750;
}

@media (max-width: 768px) {
  .pdf-link-container {
    flex-direction: column;
    gap: 20px;
  }
}

.btn-bottom {
  position: fixed;
  left: 0;
  bottom: 0;
  width: 100%;
  background-color: #fff;
  padding: 10px 20px;
  box-shadow: 0px -5px 5px 0px rgba(0, 0, 0, 0.05);
  z-index: 99;
  display: flex;
  justify-content: center;
  align-items: center;
}

@media (max-width: 767px) {
  .btn-bottom {
    justify-content: flex-start;
  }
}

.btn-bottom .btn {
  width: 100%;
  max-width: 460px;
  margin: 0 auto;
  height: 60px;
  text-align: center;
  position: relative;
  display: block;
  line-height: 60px;
}

@media (max-width: 767px) {
  .btn-bottom .btn {
    max-width: 80%;
    margin: 0;
    font-size: 16px;
    text-align: left;
  }
}

.btn-bottom .btn img {
  position: absolute;
  top: 50%;
  right: 20px;
  transform: translateY(-50%);
}

.btn-bottom .insta {
  position: absolute;
  right: 40px;
  top: 50%;
  transform: translateY(-50%);
  text-decoration: none;
  font-size: 0;
  line-height: 0;
}

@media (max-width: 767px) {
  .btn-bottom .insta {
    right: 20px;
  }
}

.btn-bottom .insta .insta-icon {
  width: 44px;
  height: 44px;
  vertical-align: middle;
  transition: opacity 0.3s;
}

@media (max-width: 767px) {
  .btn-bottom .insta .insta-icon {
    width: 50px;
    height: 50px;
  }
}

.btn-bottom .insta:hover {
  opacity: 0.75;
}

/*# sourceMappingURL=style.css.map */