@charset "utf-8";

/*============================　
　既存スタイル上書き及び追加
=============================*/
.p-contetns-contact:has(+ .p-contents) {
  padding-bottom: 0;
}

.p-top+.p-contetns-contact {
  padding-top: 32px;
}

.p-contents--top+.p-contents:not(.short-news) {
  margin-top: clamp(64px, calc(32.609865470852014px + 8.370702541106128vw), 120px);
}

.p-contents--top>.p-contetns-contact {
  padding-bottom: 24px;
}

/* メインビジュアル */
.p-top {
  position: relative;
  background-image: url("../images/mv.webp");
  background-position: center;
  background-size: cover;
}

.p-top__heading {
  word-break: keep-all;
  overflow-wrap: anywhere;
}

.p-top__btn a {
  max-width: 320px;
  width: 100%;
  padding-inline: 16px;
  margin-left: 0;
  margin-right: auto;
}

.p-top__btn span {
  font-size: clamp(0.875rem, 0.8049rem + 0.299vw, 1rem);
}

@media (min-width: 768px) {
  .p-top {
    padding: 150px 0 170px;
    background-color: #f0f0f0;
    border-radius: 15px;
    background-attachment: fixed;
  }
}

@media not (min-width: 768px) {
  .p-top {
    background-color: #000000;
    padding: 130px 0 50px;
    border-radius: 10px;
    background-repeat: no-repeat;
  }
}


/* ライン見出し */
.ttlLine:before,
.ttlLine:after {
  min-width: 32px;
}

@media (max-width: 768px) {
  .ttlLine span {
    margin: 0 8px;
  }
}

/*============================　
　ページ
=============================*/

/* 共通 */
/* ------------------- */
.p-text {
  font-size: 16px;
  line-height: 1.6;
}

.p-card__lists {
  --_column: 1;
  --_gap: 32px;
  position: relative;
  display: flex;
  gap: var(--_gap);
  width: 100%;
  margin-inline: auto;
  flex-wrap: wrap;
}

.p-card__item {
  overflow: hidden;
  position: relative;
  display: grid;
  grid-template-rows: auto 1fr;
  flex-basis: calc((100% - var(--_gap) * (var(--_column) - 1)) / var(--_column));
  background-color: #fff;
  border-radius: 10px;
  box-shadow: 0 0 8px rgba(102, 102, 102, 0.3);
}

.p-card__item:has(>.p-info-item__link) {
  cursor: pointer;
}

.p-card__image {
  overflow: hidden;
  height: 100%;
}

.p-card__image img {
  width: 100%;
  object-fit: cover;
  object-position: center;
  transition: transform 0.5s;
}

.p-card__textbox {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  padding-block: 24px;
  padding-inline: 16px;
}

.p-card__title {
  font-size: 28px;
  color: #004098;
}

.p-card__item:not([data-column="1"]) .p-card__title {
  text-align: center;
}

.p-card__description {
  font-size: 16px;
}

.p-card__description {
  margin-top: 16px;
}

.p-card__box {
  position: relative;
  padding: 8px 16px 14px;
  margin-top: 16px;
}

.p-card__box p {
  font-size: 16px;
}

.p-card__box-title {
  max-width: fit-content;
  padding-inline: 15px;
  border-radius: calc(infinity * 1px);
}

.p-card__box-title+* {
  margin-top: 8px;
}

.p-card__box-heading>span {
  font-size: 18px;
  font-weight: bold;
  padding-bottom: 3px;
  background-size: 8px 2px;
  background-position: left bottom;
  background-repeat: repeat-x;
}

.p-card__box-subheading {
  font-size: 17px;
  font-weight: bold;
}

[data-color-point] .p-card__box-heading>span {
  color: #fc92a4;
  background-image: linear-gradient(to right, #fc92a4, #fc92a4 2px, transparent 3px, transparent 8px);
}

[data-color-point] .p-card__box-subheading>span {
  color: #fc92a4;
}

[data-color-reason] .p-card__box-title {
  background: #59bab2;
  color: #fff;
}

[data-color-point] .p-card__box-title {
  background: #fc92a4;
  color: #fff;
}

.p-card__box::after {
  position: absolute;
  z-index: -1;
  left: 0;
  bottom: 0;
  display: block;
  content: "";
  width: 100%;
  height: calc(100% - 16px);
  border-radius: 6px;
}

.p-card__box[data-color-reason]::after {
  background-color: #dff1ef;
}

.p-card__box[data-color-point]::after {
  background-color: #f7eef0;
}

.p-card__box ul {
  margin-top: 8px;
}

.p-card__childbox {
  font-size: 16px;
}

.p-card__check {
  padding-left: 1.5em;
  text-indent: -1.5em;
}

.p-card__check>span {
  font-size: 17px;
}

.p-card__check:before {
  content: "";
  display: inline-block;
  width: 18px;
  aspect-ratio: 1;
  vertical-align: sub;
  margin-right: 6px;
  mask-position: center center;
  mask-repeat: no-repeat;
  mask-size: contain;
  mask-image: url("/corp/assets/images/common/icon_check-correct.svg");
}

[data-color-reason] .p-card__check:before {
  background: #59bab2;
}

[data-color-point] .p-card__check:before {
  background: #fc92a4;
}

.p-card__detail {
  margin-top: 24px;
}

.p-card__detail-title {
  padding-bottom: 2px;
  font-size: 15px;
  font-weight: bold;
  border-bottom: 2px solid #666;
}

.p-card__detail ul {
  margin-top: 12px;
}

.p-card__textbox a:not(.p-btn) {
  max-width: 320px;
  margin-inline: auto;
  padding-inline: 16px;
}

.p-card__box-lists>li:not(:first-child) {
  margin-top: 32px;
}

.p-card__childbox {
  margin-top: 12px;
  background: #ffffff;
  padding: 12px 12px;
  border-radius: 6px;
}

.p-card__box>div>*:not(:first-child) {
  margin-top: 16px;
}

.p-card__btnblock {
  flex-grow: 1;
  margin-top: 32px;
  place-content: end;
}

.p-btn {
  display: block;
  margin-inline: auto;
  text-align: center;
  color: #fff;
  background-color: #004098;
  width: 100%;
  max-width: 380px;
  line-height: 1;
  padding: 16px 0;
  font-size: 18px;
  font-weight: 400;
  transition: background-color 0.25s ease-in-out;
}

/* スライド */
.p-card__slider {
  opacity: 0;
  transition: opacity .3s linear;
}

.p-card__slider.slick-initialized {
  opacity: 1;
}

.slick-prev:before,
.slick-next:before {
  color: #333;
}

.slick-prev,
.slick-next {
  position: relative;
  top: 25px;
  right: 0;
  left: 0;
}

.p-card__slider {
  margin-top: 24px;
  display: grid;
  align-items: center;
  gap: 12px;
  grid-template-columns: auto 1fr auto;
}

.p-card__slider:not([data-slide])::before,
.p-card__slider:not([data-slide])::after {
  content: "";
  display: block;
  width: 20px;
}

.p-card__slider .p-card__detail {
  margin-top: 0;
}

.p-card__slider .p-card__detail ul {
  margin-top: 0;
}

.p-card__detail-col {
  margin-top: 12px;
  display: grid;
  gap: 16px;
  grid-template-columns: auto 1fr;
}

.p-card__slider img {
  max-width: 100px;
  object-fit: cover;
}

@media (hover: hover) {
  .p-card__item:not(.is-disabled-hover):has(>.p-info-item__link):hover .p-card__image img {
    transform: scale(120%);
  }

  .p-btn:not(.is-disabled-hover):hover {
    background-color: #f39800;
  }
}

@media not (min-width: 768px) {
  .p-card__item[data-column="1"] .p-card__title {
    text-align: center;
  }
}

@media (min-width: 768px) {
  .p-card__lists {
    --_column: 2;
  }

  .p-card__item[data-column="1"] {
    flex-basis: 100%;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .p-card__item[data-column="1"] img {
    height: 100%;
  }

  .p-card__item[data-column="1"] .p-card__textbox {
    padding-inline: 32px;
  }
}

/* 社員旅行への期待 */
/* ------------------- */
.s-expectations__box {
  display: grid;
  gap: 24px 40px;
}

.s-expectations__box:not(:first-child) {
  margin-top: 40px;
}

.s-expectations__heading {
  font-size: clamp(1rem, 0.9299rem + 0.299vw, 1.125rem);
  font-weight: bold;
  color: #004098;
}

.s-expectations__notebook {
  overflow: hidden;
  border-radius: 8px;
  background-color: #eaf3f3;
  padding: 12px 16px;
}

.s-expectations__notebook div {
  font-size: 16px;
  line-height: 2.3;
  background-image: linear-gradient(180deg, #8dcad7 1px, transparent 1px);
  background-size: 100% 2.3em;
  background-position: bottom 1px center;
  display: grid;
  grid-template-columns: auto 1fr;
}

.s-expectations__notebook>div::before {
  content: "";
  position: relative;
  left: 2px;
  display: block;
  height: 100%;
  width: 1px;
  left: 16px;
  background: #f78faa;
}

.s-expectations__notebook ul {
  padding-left: 24px;
}

.s-expectations__notebook li {
  font-family: "Zen Kurenaido", sans-serif;
  padding-left: 1.5em;
  text-indent: -1.5em;
  color: #004098;
}

.s-expectations__notebook li::before {
  content: "";
  display: inline-block;
  width: 18px;
  aspect-ratio: 1;
  vertical-align: sub;
  margin-right: 6px;
  mask-position: center center;
  mask-repeat: no-repeat;
  mask-size: contain;
  mask-image: url("/corp/assets/images/common/icon_check-correct.svg");
  background: #339999;
}

.s-expectations__box-image img {
  width: 100%;
}

@media (min-width: 768px) {
  .s-expectations__box {
    grid-template-columns: auto 1fr;
  }

  .s-expectations__box[data-reverse] {
    grid-template-columns: 1fr auto;
  }

  .s-expectations__box[data-reverse] .s-expectations__box-image {
    grid-column: 2;
    grid-row: 1;
  }

  .s-expectations__box-image img {
    max-width: 400px;
  }
}

/* 人気の方面 */
/* ------------------- */
.s-course__box {
  display: grid;
  align-items: center;
  gap: 32px 24px;
}

.s-course__heading {
  font-size: clamp(1rem, 0.9299rem + 0.299vw, 1.125rem);
  font-weight: bold;
  color: #004098;
}

.s-course__text p:first-of-type {
  margin-top: 12px;
}

.s-course__text p {
  font-size: 16px;
}

.s-course__text>div:not(:first-child) {
  margin-top: 24px;
}

.s-course__image {
  height: 100%;
}

.s-course__image img {
  object-fit: cover;
  width: 100%;
  height: 100%;
}

@media (min-width: 768px) {
  .s-course__box {
    grid-template-columns: 1fr auto;
  }

  .s-course__image {
    max-width: 400px;
  }

}

/* 関連コンテンツ */
/* ------------------- */
.s-contents__lists {
  display: grid;
  gap: 16px 24px;
}

.s-contents__item {
  padding-bottom: 16px;
  border-bottom: 1px solid #ccc;
  transition: opacity 0.25s ease;
}

.s-contents__head {
  display: grid;
  gap: 16px;
  align-items: center;
  grid-template-columns: auto 1fr;
}

.s-contents__image {
  height: 100%;
}

.s-contents__image img {
  width: 80px;
}

.s-contents__item h3 {
  font-size: clamp(0.9375rem, 0.8674rem + 0.299vw, 1.0625rem);
  font-weight: bold;
  color: #014593;
}


@media (hover: hover) {
  .s-contents__item:hover {
    opacity: 0.7;
  }
}

@media (min-width: 768px) {
  .s-contents__lists {
    grid-template-columns: repeat(2, 1fr);
  }
}