@charset "utf-8";

/*--------------------

	ＴＯＰページ
	
--------------------*/
body {
  margin: 0;
  padding: 0;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 400;
  font-style: normal;
  font-size: 16px;
  line-height: 1.5em;
  color: #333333;
  -moz-font-feature-settings: "palt";
  -webkit-font-feature-settings: "palt";
  font-feature-settings: "palt";
  background: #F9F9F9;
  letter-spacing: 0em;
}

#WRAPPER {
  margin: 0;
  padding: 0;
  width: 100%;
  position: relative;
}

/* ========================================
   フォントサイズとブレークポイント
======================================== */
.f_14px {
  font-size: 14px;
  letter-spacing: 0em;
  line-height: 1.5em;
}

.f_15px {
  font-size: 15px;
  letter-spacing: 0em;
  line-height: 1.5em;
}

.f_16px {
  font-size: 16px;
}

.f_18px {
  font-size: 18px;
}

.f_24px {
  font-size: 24px;
  line-height: 1.6em;
  letter-spacing: 0.1em;
}

.f_30px {
  font-size: 30px;
  line-height: 1.5em;
  letter-spacing: 0.1em;
}

.f_32px {
  font-size: 32px;
  line-height: 1.6em;
  letter-spacing: 0.1em;
}

.f_40px {
  font-size: 40px;
  line-height: 1.8em;
  letter-spacing: 0em;
}

.f_48px {
  font-size: 48px;
  line-height: 1.8em;
  letter-spacing: 0em;
}

.f_56px {
  font-size: 56px;
  line-height: 1.8em;
  letter-spacing: 0.2em;
}

.bold {
  font-weight: 700;
}

.sm-bold {
  font-weight: 600;
}

.medium {
  font-weight: 500;
}

.regular {
  font-weight: 400;
}

.pc_br {
  display: block;
}

.sp_br {
  display: none;
}

.oswald {
  font-family: "Oswald", sans-serif;
}

.raleway {
  font-family: "Raleway", sans-serif;
}

.f_blue {
  color: #005DA9;
}

.f_white {
  color: #ffffff;
}

/*======
 ヘッダー
==========*/
.site-header {
  background-color: #ffffff;
  box-shadow: 0 3px 10px rgba(0, 0, 0, 0.16);
  position: fixed;
  top: 0;
  z-index: 999;
  width: 100%;
  height: auto;
}

.header-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin: 0;
  padding: 0 0 0 48px;
}

.header-inner a {
  width: fit-content;
  display: block;
}

.sp-header-btn-wrapper {
  display: none;
}

.logo-area img {
  height: 48px;
  width: 239px;
}

.gnav {
  flex-grow: 1;
  margin-left: 10px;
}

.gnav-logo img {
  display: none;
}

.gnav-list {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 0;
}

.gnav-item a {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  position: relative;
  height: 100%;
  font-size: 16px;
  font-weight: 700;
  color: #333333;
  letter-spacing: 0.05em;
  line-height: 1.4;
  padding: 18px 48px;
  text-align: center;
  transition: background-color 0.3s, color 0.3s, opacity 0.3s;
}

.gnav-item a::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 100%;
  height: 8px;
  background-color: #005DA9;
  transform: scaleX(0);
  transform-origin: center;
  transition: transform 0.3s;
}

.gnav-item.is-active a {
  color: #005DA9;
  background-color: #EEF3F7;
}

.gnav-item.is-active a::after {
  transform: scaleX(1);
}

.gnav-item a:hover {
  opacity: 1;
  background-color: #EEF3F7;
}

.gnav-item a:hover::after {
  transform: scaleX(1);
}

.gnav-item.recruit a:hover::after,
.gnav-item.tel a:hover::after {
  transform: scaleX(0);
}

.gnav-icon img {
  display: block;
  width: 24px;
  height: 24px;
  margin-bottom: 12px;
}

.gnav-label {
  display: block;
  font-size: 16px;
  font-weight: 700;
  letter-spacing: 0.05em;
}

.gnav-item.recruit a {
  background-color: #E4411D;
  color: #fff;
  border-top-left-radius: 16px;
  padding: 14px 44px 18px 28px;
  margin-right: -16px;
  transition: 0.3s;
}

.gnav-item.recruit a:hover {
  background-color: #E4881D;
}

.gnav-item.recruit a .gnav-icon img {
  width: 40px;
  height: 40px;
  margin-bottom: 0;
}

.gnav-item.tel a {
  background: linear-gradient(90deg, #005DA9 0%, #458CC7 100%);
  color: #fff;
  border-top-left-radius: 16px;
  padding: 16px 32px;
  transition: 0.3s;
}

.gnav-item.tel a:hover {
  background: linear-gradient(90deg, #50B3FB 0%, #50B3FB 100%);
}

.gnav-item.tel a .gnav-icon img {
  width: 34px;
  height: 34px;
  margin-bottom: 0;
}

.gnav-item.tel a .gnav-label {
  font-size: 20px;
  letter-spacing: 0.005em;
}

/* SP専用要素はPCでは非表示 */
.hamburger-menu,
.sp-header-actions,
.gnav-item .sub-nav {
  display: none;
}

/* ドロップダウンメニュー（PC hover） */
.gnav-item {
  position: relative;
}

.sub-gnav-list {
  background-color: #005DA9;
  /* ドロップダウンメニューの背景色 */
  left: calc(50% - 16px);
  position: absolute;
  top: calc(100% + 12px);
  z-index: 1;
  width: 280px;
  flex-wrap: wrap;
  flex-direction: column;
  border-radius: 8px;
  padding: 12px 20px;

  /* 非表示状態（hideに遅延を入れる） */
  visibility: hidden;
  opacity: 0;
  pointer-events: none;
  transform: translateY(-4px);
  transition:
    opacity 0.15s ease 0.25s,
    transform 0.15s ease 0.25s,
    visibility 0s linear 0.40s;
}

/* 親要素にホバーしたらドロップダウンメニューを表示 */
.gnav-item:hover .sub-gnav-list {
  visibility: visible;
  opacity: 1;
  pointer-events: auto;
  transform: translateY(0);
  transition:
    opacity 0.15s ease 0s,
    transform 0.15s ease 0s,
    visibility 0s linear 0s;

}

.sub-gnav-list .sub-gnav-item {
  width: 100% !important;
  height: inherit !important;
  line-height: 53px;
  -webkit-transition: 0s !important;
  -moz-transition: 0s;
  -o-transition: 0s;
  transition: 0s !important;
  position: relative;
}

.sub-gnav-list::before {
  content: "";
  position: absolute;
  top: -12px;
  left: 0;
  width: 100%;
  height: 12px;
  background: transparent;
}

/* 吹き出しの矢印（三角） */
.sub-gnav-list::after {
  content: "";
  position: absolute;
  top: -8px;
  left: 16px;
  transform: translateX(-50%);
  width: 0;
  height: 0;
  border-left: 6px solid transparent;
  border-right: 6px solid transparent;
  border-bottom: 8px solid #005DA9;
  transition: 0s !important;
}

.sub-gnav-list .sub-gnav-item a {
  height: inherit !important;
  line-height: 28px;
  padding: 12px 0 15px;
  -webkit-transition: 0s !important;
  -moz-transition: 0s;
  -o-transition: 0s;
  transition: 0s !important;
  position: relative;
  font-size: 16px;
  font-weight: 700;
  letter-spacing: 0.09em;
  color: #ffffff;
  border-bottom: 1px solid rgba(255, 255, 255, 0.4);
  align-items: flex-start;
  background-image: url("../images/icon/arrow-w.svg");
  background-repeat: no-repeat;
  background-position: right center;
  background-size: 15px;
  display: inline-block;
  width: 100%;
  text-align: left;
}

.sub-gnav-list .sub-gnav-item a:hover {
  -webkit-transition: 0.3s !important;
  -moz-transition: 0.3s;
  -o-transition: 0.3s;
  transition: 0.3s !important;
  background-color: inherit;
  opacity: 0.6;
}

.sub-gnav-list .sub-gnav-item a:hover::after {
  display: none;
}

@media only screen and (max-width: 1250px) {
  .header-inner {
    padding: 0 0 0 10px;
  }
}

/*======
 メインコンテンツ
==========*/
main {
  padding-top: 96px;
  width: 100%;
  overflow: hidden;
}

.fv {
  position: relative;
  width: 100%;
  height: calc(100vh - 50px);
  min-height: 640px;
  max-height: 760px;
  overflow: hidden;
  z-index: 1;
}

.fv-video {
  width: 100%;
  height: 100%;
  max-height: 720px;
  object-fit: cover;
}

@media only screen and (max-width: 1360px) {
  .fv-video {
    max-height: 760px;
  }
}

.fv-video {
  pointer-events: none;
  /* ユーザー操作を完全無効化 */
}

/* iOS / Chrome 標準UI非表示 */
video::-webkit-media-controls {
  display: none !important;
}

video::-webkit-media-controls-overlay-play-button {
  display: none !important;
}

video::-webkit-media-controls-start-playback-button {
  display: none !important;
}

/* fv 波（背景を横に流して“波が動く”ように見せる） */
.fv>svg {
  display: none;
  /* 既存のインラインSVG（巨大base64）を非表示 */
}

.fv-wave {
  position: absolute;
  left: 0;
  bottom: 30px;
  width: 100%;
  height: 200px;
  z-index: 1;
  pointer-events: none;
  /* レイヤー（::before / ::after）で波を描く */
  overflow: hidden;
  background: linear-gradient(180deg, rgba(42, 170, 254, 0.0) 0%, rgba(42, 170, 254, 1) 100%);
}

.fv-wave::before,
.fv-wave::after {
  content: "";
  position: absolute;
  inset: 0;
  background-image: url("../images/top/wave-tile.svg");
  background-repeat: repeat-x;
  background-position: 0 bottom;
  pointer-events: none;
}

/* 手前の波（少し速い＋揺れ） */
.fv-wave::before {
  opacity: 0.8;
  /* #2AAAFE の透過（手前） */
  background-size: 1363px 181px;
  /* 横幅740pxで継ぎ目が揃う */
  animation:
    fv-wave-move-740 10s linear infinite,
    fv-wave-bob 3.8s ease-in-out infinite;
}

/* 奥の波（少し遅い＋位相違い） */
.fv-wave::after {
  opacity: 0.55;
  /* #2AAAFE の透過（奥） */
  background-size: 1363px 181px;
  background-position: -370px bottom;
  /* 位相をずらす（半分） */
  animation:
    fv-wave-move-740-offset 16s linear infinite,
    fv-wave-bob2 5.2s ease-in-out infinite;
}

@keyframes fv-wave-move-740 {
  from {
    background-position: 0 bottom;
  }

  to {
    background-position: -740px bottom;
  }
}

@keyframes fv-wave-move-740-offset {
  from {
    background-position: -370px bottom;
  }

  to {
    background-position: -1110px bottom;
  }

  /* -370 - 740 */
}

@keyframes fv-wave-bob {

  0%,
  100% {
    transform: translateY(0);
  }

  50% {
    transform: translateY(12px);
  }
}

@keyframes fv-wave-bob2 {

  0%,
  100% {
    transform: translateY(0);
  }

  50% {
    transform: translateY(26px);
  }
}

@media (prefers-reduced-motion: reduce) {

  .fv-wave::before,
  .fv-wave::after {
    animation: none;
  }
}

.fv-inner {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 2;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding: 0 40px 180px;
  box-sizing: border-box;
}

.fv-copy {
  color: #ffffff;
  line-height: 1.6em;
  letter-spacing: 0.2em;
}

.fv-scroll {
  position: absolute;
  right: 28px;
  bottom: 112px;
  writing-mode: vertical-rl;
  color: #ffffff;
  letter-spacing: 0.08em;
  line-height: 1.5;
}

.scroll-text {
  font-weight: 300;
  font-size: 15px;
  letter-spacing: 0;
}

.fv-indicator {
  position: absolute;
  right: 28px;
  bottom: 0;
  display: block;
  width: 24px;
  height: var(--fv-indicator-line, 102px);
  --fv-indicator-line: 102px;
  --fv-indicator-dot: 8px;
}

.fv-indicator .fv-indicator-dot {
  width: var(--fv-indicator-dot, 8px);
  height: var(--fv-indicator-dot, 8px);
  border-radius: 50%;
  background-color: #ffffff;
  opacity: 0;
  content: '';
  top: 0;
  right: 8px;
  display: block;
  position: absolute;
  animation: fv-indicator-dot-fall 1.6s linear infinite;
  will-change: transform, opacity;
}

.fv-indicator .fv-indicator-sen {
  background-color: #ffffff;
  height: var(--fv-indicator-line, 102px);
  width: 1px;
  content: '';
  top: 0;
  right: 12px;
  display: block;
  position: absolute;
}

@keyframes fv-indicator-dot-fall {
  0% {
    transform: translateY(0);
    opacity: 0;
  }

  10% {
    opacity: 0.8;
  }

  70% {
    opacity: 0.8;
  }

  100% {
    transform: translateY(calc(var(--fv-indicator-line, 102px) - var(--fv-indicator-dot, 8px)));
    opacity: 0;
  }
}

@media (prefers-reduced-motion: reduce) {
  .fv-indicator .fv-indicator-dot {
    animation: none;
    opacity: 0.8;
  }
}

/***ABOUTセクション***/
.about-section {
  position: relative;
  background: #2AAAFE;
  border-radius: 0 0 0px 100px;
  /* overflow: hidden; */
  z-index: 2;
  margin: -40px auto 0;
  width: 100%;
}

.about-inner {
  padding: 0px 20px 100px;
  width: 1140px;
  margin: 0 auto;
  position: relative;
  z-index: 1;
}

.about-content {
  flex: 1;
  color: #ffffff;
}

.about-label {
  display: flex;
  align-items: center;
  gap: 24px;
  margin-bottom: 20px;
}

.about-label-en {
  letter-spacing: 0.08em;
  line-height: 1.5;
  display: flex;
}

.about-label-en img {
  margin-right: 8px;
}

.about-label-ja {
  letter-spacing: 0.08em;
  line-height: 1.5;
  margin-top: 7px;
}

.about-heading {
  letter-spacing: 0;
  line-height: 1.8;
  margin-bottom: 40px;
}

.about-text {
  letter-spacing: 0.1em;
  line-height: 2.3em;
  margin-bottom: 40px;
  width: 570px;
}

.about-btn {
  display: inline-block;
  background: linear-gradient(90deg, #012554 0%, #0164AD 100%);
  border: 2px solid #2AAAFE;
  color: #ffffff !important;
  letter-spacing: 0.08em;
  line-height: 1.5;
  padding: 13px;
  width: calc(280px - 26px);
  border-radius: 30px;
  position: relative;
  transition: 0.3s;
  text-align: center;
  transition: 0.3s;
}

.about-btn::after {
  content: '';
  display: inline-block;
  width: 22px;
  height: 19px;
  background: url("../images/icon/arrow-w.svg") no-repeat center / contain;
  vertical-align: middle;
  position: absolute;
  top: calc(50% - 9.5px);
  right: 24px;
}

.about-btn:hover {
  background: #fff;
  border: 2px solid #005DA9;
  color: #005DA9 !important;
  opacity: 1;
}

.about-btn:hover::after {
  background: url("../images/icon/arrow-b.svg") no-repeat center / contain;
}

.about-image {
  position: absolute;
  right: -288px;
  bottom: -88px;
  z-index: 5;
}

.about-image-mask {
  width: 740px;
  max-width: 100%;
  aspect-ratio: 1 / 1;
  border-radius: 50%;
  overflow: hidden;
}

.about-image-mask img {
  width: 100%;
  object-fit: cover;
  height: 100%;
}

/***SHIPセクション***/
.ship-section {
  background-color: #9AE7FD;
  padding: 200px 20px 100px;
  text-align: center;
  position: relative;
  overflow: hidden;
  margin-top: -100px;
}

.ship-inner {
  max-width: 1140px;
  margin: 0 auto;
  position: relative;
  z-index: 2;
}

.section-label {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  margin-bottom: 40px;
}

.ship-inner .about-label-ja {
  margin-top: 0;
}

.ship-card a {
  position: relative;
  display: inline-block;
  background: #fff;
  border-radius: 16px;
  box-shadow: 0 0 16px rgba(0, 0, 0, 0.16);
  /* overflow: hidden; */
  text-align: left;
  width: 400px;
  height: 260px;
}

.ship-card a:hover {
  opacity: 1;
  box-shadow: 0 0 4px rgba(0, 0, 0, 0.16);
}

.ship-img-wrapper {
  width: 100%;
  border-radius: 16px;
  display: inline-block;
  overflow: hidden;
}

.ship-img {
  width: 100%;
  display: block;
  transition-duration: .3s;
}

.ship-card a:hover .ship-img {
  transform: scale(1.12);
}

.ship-card-footer {
  padding: 9px 16px;
  position: absolute;
  bottom: 0;
  background: #fff;
  width: calc(100% - 32px);
  text-align: center;
  border-bottom-left-radius: 16px;
  border-bottom-right-radius: 16px;
}

.ship-name {
  color: #333;
  letter-spacing: 0.1em;
  line-height: 1.5;
  text-align: center;
}

.ship-card a:hover .ship-name {
  color: #E4411D;
}

.ship-arrow {
  position: absolute;
  display: inline-block;
  background-color: #E4411D;
  background-image: url("../images/icon/arrow-w.svg");
  background-repeat: no-repeat;
  background-position: center center;
  background-size: 20px;
  border: 2px solid #E4411D;
  width: 46px;
  height: 46px;
  border-radius: 50%;
  font-size: 16px;
  text-align: center;
  transition: 0.3s;
  content: '';
  bottom: 18px;
  right: -9px;
  transition: 0.3s;
}

.ship-card a:hover .ship-arrow {
  background-image: url("../images/icon/arrow-r.svg");
  background-color: #fff;
  border: 2px solid #E4411D;
}

/***INFORMATIONセクション***/
.news-section {
  position: relative;
  background-color: #9AE7FD;
  padding: 0px 20px 100px;
  /*overflow: hidden;*/
  z-index: 1;
}

.news-bg {
  position: absolute;
  left: 0;
  bottom: 0;
  width: 100vw;
  line-height: 1;
  opacity: 0.9;
  pointer-events: none;
  z-index: 0;
}

.news-bg img {
  width: 100%;
}

.news-inner {
  max-width: calc(1140px - 200px);
  margin: 0 auto;
  background-color: #ffffff;
  border-radius: 16px;
  padding: 70px 100px;
  display: flex;
  gap: 100px;
  align-items: flex-start;
  justify-content: space-between;
  position: relative;
  z-index: 1;
}

.news-label {
  width: 140px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 10px;
}

.news-label-en {
  letter-spacing: 0em;
  line-height: 1.5;
  display: flex;
}

.news-label-en img {
  margin-right: 8px;
}

.news-label-ja {
  letter-spacing: 0.08em;
  line-height: 1.4;
}

.news-more {
  margin-top: 30px;
  display: inline-flex;
  align-items: center;
  letter-spacing: 0;
  gap: 8px;
}

.news-more.sp_br {
  display: none;
}

.news-more:hover {
  opacity: 1;
}

.red-arrow {
  width: 24px;
  height: 24px;
  background-image: url("../images/icon/arrow-w.svg");
  background-repeat: no-repeat;
  background-position: center center;
  background-size: 50%;
  display: inline-block;
  transition: 0.3s;
  background-color: #E4411D;
  border-radius: 50%;
  border: 2px solid #E4411D;
}

.news-more:hover .red-arrow {
  background-image: url("../images/icon/arrow-r.svg");
  background-color: #fff;
  border: 2px solid #E4411D;
}

.news-list {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 24px;
  width: calc(100% - 140px - 100px);
  padding-top: 24px;
}

.news-item a {
  display: flex;
  align-items: flex-start;
  line-height: 1.6;
  border-bottom: 1px solid #E3E3E3;
  padding-bottom: 24px;
}

.news-item a:hover {
  opacity: 1;
  border-bottom: 1px solid #005DA9;
}

.news-date {
  white-space: nowrap;
  letter-spacing: 0;
}

.news-category {
  display: inline-block;
  background-color: #005DA9;
  color: #ffffff;
  font-weight: 500;
  padding: 0px 13px 2px;
  border-radius: 2px;
  white-space: nowrap;
  margin: 0 16px 0 8px;
}

.news-cat-1 .news-category {
  background-color: #005DA9;
}

.news-cat-2 .news-category {
  background-color: #F47A31;
}

.news-text {
  flex: 1;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.news-item a:hover .news-text {
  color: #005DA9;
}

.wp-block-table tr:first-of-type td{
  border-top: 1px solid #d1d1d1;
}

.wp-block-table tr td:first-of-type{
  border-left: 1px solid #d1d1d1;
}

/***RECRUITセクション***/
.recruit-section {
  position: relative;
  background: url("../images/top/top_3.webp") no-repeat center center / cover;
  height: 460px;
  color: #ffffff;
  overflow: hidden;
}

.recruit-overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.5);
  z-index: 1;
}

.recruit-inner {
  position: relative;
  z-index: 2;
  max-width: 1140px;
  margin: 0 auto;
  height: 100%;
  padding: 80px 0 90px;
  box-sizing: border-box;
}

.recruit-label-en {
  letter-spacing: 0em;
  margin-bottom: 8px;
  color: rgba(255, 255, 255, 0);
  -webkit-text-stroke-width: 1px;
  -webkit-text-stroke-color: #fff;
  line-height: 1em;
}

.recruit-label-ja {
  letter-spacing: 0.1em;
  margin-bottom: 14px;
}

.recruit-heading {
  line-height: 1.6em;
  letter-spacing: 0.09em;
  margin-bottom: 24px;
}

.recruit-text {
  line-height: 1.5em;
  letter-spacing: 0.09em;
  width: 640px;
}

.recruit-btn-wrapper {
  position: absolute;
  right: 60px;
  top: 50%;
  width: 100px;
  height: 100px;
  border-radius: 50%;
}

.recruit-btn {
  transform: translateY(-50%);
  background-color: #E4411D;
  color: #ffffff !important;
  width: 100%;
  height: 100%;
  border-radius: 50%;
  text-align: center;
  letter-spacing: 0.09em;
  line-height: 1.3;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  z-index: 3;
  overflow: hidden;
  position: relative;
  transition-duration: .4s;
}

.recruit-btn:hover {
  opacity: 1;
}

.recruit-btn::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 100%;
  height: 100%;
  border-radius: 50%;
  background-color: #E4881D;
  transform: translate(-50%, -50%) scale(0);
  pointer-events: none;
  z-index: -1;
  transition: transform .6s ease-in-out;
  will-change: transform;
}

.recruit-btn>* {
  position: relative;
  z-index: 1;
}

.recruit-btn:hover::after {
  transform: translate(-50%, -50%) scale(1.1);
}

.recruit-btn img {
  width: 12px;
  height: auto;
  margin-top: 9px;
}

.recruit-script {
  position: absolute;
  right: -123px;
  bottom: 15px;
  width: 405px;
  max-width: 40%;
  height: auto;
  opacity: 0.9;
  z-index: 2;
}

/*======
 フッター
==========*/

.footer {
  background-color: #005DA9;
  color: #ffffff;
  padding-top: 70px;
  position: relative;
}

.footer::after {
  position: absolute;
  background-image: url("../images/footer/naminami.svg");
  background-repeat: repeat-x;
  /* iOS Safariでcenter開始だと継ぎ目が小数pxになり隙間が見えることがあるため左基準にする */
  background-position: 0 0;
  /* SVGのタイル幅(49px)に合わせ、サブピクセル由来の継ぎ目を抑える */
  background-size: 48px 12px;
  top: -11px;
  left: 0;
  width: 100%;
  height: 11px;
  content: "";
  z-index: 990;
}

.footer-inner {
  max-width: 1140px;
  margin: 0 auto;
  padding: 0 40px 80px;
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
}

.footer-col {
  flex: 1;
}

.footer-logo {
  margin-bottom: 10px;
}

.footer-company-name {
  font-weight: 500;
  font-size: 16px;
  margin-bottom: 16px;
}

.footer-address,
.footer-contact {
  font-size: 14px;
  line-height: 1.5em;
  color: #fff;
  -webkit-text-stroke-color: #fff;
}

/* フッター内の電話・FAXリンク対策 */
footer a,
footer a:link,
footer a:visited,
footer a:hover,
footer a:active {
  color: #fff !important;
  text-decoration: none;
}

.footer-address {
  margin-bottom: 8px;
}

.footer-contact {
  margin-bottom: 40px;
}

.footer-link-ext {
  border-radius: 8px;
  background-color: #fff;
  padding: 16px;
  display: flex;
  align-items: center;
  gap: 16px;
  width: fit-content;
}

.footer-link-ext:hover {
  opacity: 1;
}

.footer-link-ext img {
  display: block;
}

.footer-link-ext:hover img {
  opacity: 0.6;
}

.footer-link-ext img:nth-of-type(2) {
  margin-top: 5px;
}

.footer-nav {
  display: flex;
  width: 260px;
  justify-content: space-between;
  margin: 0 0 0 auto;
}

.footer-nav>li {
  font-weight: 700;
  margin-bottom: 16px;
}

.footer-nav ul li {
  font-size: 14px;
  font-weight: 500;
  margin-bottom: 16px;
}

.footer-nav a {
  color: #ffffff;
  letter-spacing: 0.08em;
  line-height: 1.6;
}

.footer-nav-item>a {
  padding-left: 16px;
  position: relative;
}

.footer-nav-item>a::before {
  content: "";
  position: absolute;
  left: 0;
  top: calc(50% - 4px);
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background-color: #fff;
}

.footer-nav-sub-list {
  margin-top: 16px;
  margin-left: 16px;
}

.footer-col.recruit {
  display: flex;
  justify-content: flex-end;
}

.footer-col.recruit a {
  display: block;
  border-radius: 8px;
}

.footer-col.recruit a:hover {
  opacity: 1;
}

.footer-recruit-card {
  display: block;
  position: relative;
  width: 290px;
  height: 100%;
  border-radius: 8px;
  box-sizing: border-box;
  overflow: hidden;
}

.footer-recruit-card::after {
  content: "";
  position: absolute;
  inset: 0;
  border: 10px solid rgba(0, 93, 169, 0.4);
  border-radius: 8px;
  box-sizing: border-box;
  pointer-events: none;
  z-index: 2;
  transform: scale(1);
  transform-origin: center;
  opacity: 1;
  transition: transform .6s ease, opacity .4s ease;
}

.footer-col.recruit a:hover .footer-recruit-card::after {
  transform: scale(1.15);
  opacity: 0;
}

.footer-recruit-img {
  display: block;
  position: relative;
  width: 290px;
  height: 100%;
  object-fit: cover;
  border-radius: 8px;
  z-index: 1;
}

.footer-recruit-btn {
  position: absolute;
  left: 50%;
  bottom: 16px;
  transform: translateX(-50%);
  display: inline-block;
  background-color: #E4411D;
  color: #ffffff !important;
  font-size: 18px;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-align: center;
  padding: 11px 42px;
  border-radius: 999px;
  white-space: nowrap;
  z-index: 3;
  line-height: 1.4em;
}

.footer-bottom {
  background-color: #005DA9;
  text-align: center;
  padding: 24px 10px;
  font-size: 14px;
  color: #ffffff;
  font-weight: 300;
  border-top: 0.5px solid #fff;
}



/*--------------------

	サブページ共通
	
--------------------*/
.sub_page {
  width: 100%;
  position: relative;
  overflow: hidden;
}

/*--ページタイトル部--*/
.sub_top {
  width: 100%;
  height: 300px;
  box-sizing: border-box;
  background: linear-gradient(180deg, rgba(43, 169, 254, 0.32) 0%, rgba(43, 169, 254, 0) 100%);
  position: relative;
  overflow: hidden;
}

.sub_top::after {
  background: url("../images/sub/page-top-bg.svg")no-repeat;
  background-size: cover;
  position: absolute;
  right: 48px;
  top: 0;
  width: 497px;
  height: 320px;
  content: "";
  z-index: 0;
}

.sub_top_inner {
  max-width: 1140px;
  margin: 0 auto;
  padding: 80px 20px 30px;
  box-sizing: border-box;
  position: relative;
  z-index: 2;
}

.sub_ttl p {
  color: #005DA9;
  letter-spacing: 0;
  line-height: 1.75em;
  margin-bottom: 8px;
}

/*--ページタイトル部ページタイトル H1--*/
.sub_ttl h1 {
  letter-spacing: 0.04em;
  line-height: 1em;
}

/*--セクションタイトル H2--*/
h2.section-ttl {
  text-align: center;
  margin-bottom: 60px;
}

/*--ページタイトル部ページ内リンクリスト--*/
.an-link-list {
  display: flex;
  margin-top: 50px;
}

.an-link-item a {
  display: block;
  padding-left: 23px;
  position: relative;
  margin-right: 32px;
  line-height: 17px;
}

.an-link-item a:hover {
  opacity: 1;
  color: #005DA9;
}

.an-link-item a::after {
  position: absolute;
  top: 0;
  left: 0;
  content: '';
  background: url("../images/sub/arrow.svg")no-repeat;
  width: 17px;
  height: 17px;
  transform: translateY(0%);
}

.an-link-item a:hover::after {
  transform: translateY(15%);
}

/*--パンくずリスト--*/
.breadcrumbs {
  margin: 20px 0 0 auto;
  text-align: end;
}

.bread .home,
.bread .taxonomy.category {
  color: #C4C4C4;
  letter-spacing: 0;
  line-height: 1.5em;
}

.separator {
  width: 16px;
  height: 1px;
  border-radius: 1px;
  background-color: #C4C4C4;
  margin: 5px 16px;
  content: '';
  display: inline-block;
}

.bread span {
  color: #C4C4C4;
  letter-spacing: 0;
}

.bread .current-item {
  color: #005DA9;
  letter-spacing: 0;
  line-height: 1.5em;
}

.ship-page .sub_cont {
  max-width: 1140px;
  margin: 0 auto;
  padding: 0 20px 120px;
  box-sizing: border-box;
}

/*--ページタイトル部カテゴリ--*/
.cat-link-list {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 40px;
}

.cat-link-item {
  margin: 3px 0;
  display: block;
}

.cat-link-item a {
  padding: 7px 20px 9px;
  border-radius: 25px;
  font-size: 18px;
  line-height: 1.3em;
  background-color: #fff;
  border: 1px solid #BEBEBE;
  font-weight: 500;
  display: flex;
  align-items: center;
  gap: 8px;
}

.cat-link-item.is-active a {
  background-color: #005DA9;
  border-color: #005DA9;
  color: #fff;
}

.cat-link-item a:hover {
  opacity: 1;
  color: #fff;
  background-color: #333333;
  border: 1px solid #333333;
}

.cat-link-item.is-active a:hover {
  background-color: #005DA9;
  border: 1px solid #005DA9;
}

.cat-link-item a span.cat-link-icon {
  background-image: url('../images/icon/check-g.svg');
  background-size: contain;
  background-position: center center;
  width: 16px;
  height: 16px;
  display: inline-block;
}

.cat-link-item.is-active a span.cat-link-icon {
  background-image: url('../images/icon/check-w.svg');
}

/***マーカー***/
.marker{
  background: linear-gradient(transparent 60%, #E9F3FB 40%);
  display: inline;
}


/*--------------------

	船舶情報ページ
	
--------------------*/

.ship-page .sub_cont_inner {
  padding: 20px 0 0;
}

.ship-page-section {
  width: 1070px;
  margin: 0 auto;
  padding: 50px 56px;
  box-sizing: border-box;
  background-color: #fff;
  border-radius: 16px;
  box-shadow: 0 0 16px rgba(0, 0, 0, 0.16);
}

.ship-about {
  display: flex;
  gap: 48px;
}

.ship-about-img {
  width: 420px;
  height: 260px;
  border-radius: 16px;
  overflow: hidden;
}

.ship-pc-br {
  display: block;
}

.ship-sp-br {
  display: none;
}

.ship-about-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.ship-about-caption {
  width: calc(100% - 420px - 48px);
}

.ship-name-en {
  letter-spacing: 0;
  line-height: 1em;
  color: #005DA9;
  margin-bottom: 8px;
}

.ship-name-en img {
  margin-right: 8px;
  margin-bottom: -4px;
}

.ship-about-text {
  margin: 16px 0 20px;
  letter-spacing: 0;
}

.ship-about-list {
  display: flex;
  gap: 20px;
}

.ship-about-item {
  background: rgba(237, 245, 247, 0.8);
  border-radius: 10px;
  padding: 16px;
  width: calc((100% - 40px) / 3);
  box-sizing: border-box;
}

.ship-about-item-label {
  font-size: 15px;
  opacity: 0.6;
  margin-bottom: 8px;
  letter-spacing: 0;
}

.ship-about-item-value {
  letter-spacing: 0.02em;
}

.separate_area {
  width: 100%;
  height: 15px;
  background: url("../images/ship/separate.svg")repeat-x center / contain;
  margin: 40px 0;
}

.ship-desc h3 {
  text-align: center;
}

.ship-desc-list {
  margin-top: 8px;
}

.ship-desc-item {
  padding: 16px 0 0;
  display: flex;
  gap: 60px;
}

.ship-desc-item-ttl {
  width: 210px;
  padding-bottom: 16px;
  border-bottom: 1px dashed #E3E3E3;
  letter-spacing: 0.04em;
}

.ship-desc-item-txt {
  width: calc(100% - 210px - 60px);
  padding-bottom: 16px;
  border-bottom: 1px dashed #E3E3E3;
  letter-spacing: 0.04em;
}

.heihokon {
  font-size: 9px;
  display: inline-block;
  position: relative;
  top: -7px;
}


/*--------------------

	会社情報ページ
	
--------------------*/
section#greeting {
  background-image: url("../images/about/greeting-bg.svg");
  background-size: calc(100% - 54px);
  background-repeat: no-repeat;
  padding: 30px 0 120px;
  box-sizing: border-box;
  position: relative;
}

section#greeting::after {
  background: url("../images/sub/border-b.svg")no-repeat;
  width: 100px;
  height: 100px;
  position: absolute;
  bottom: 0;
  left: 0;
  content: '';
  display: block;
}

.greeting-wrapper {
  background-color: rgba(255, 255, 255, 0.4);
  padding: 0 30px 14px;
  margin: 0 auto;
  width: fit-content;
}

.greeting-wrapper p {
  text-align: center;
  line-height: 2.4em;
  letter-spacing: 0;
  width: 580px;
}

.representative {
  width: 640px;
  text-align: end;
  margin-top: 64px;
  margin: 64px auto 0;
  position: relative;
}

.representative::before {
  content: '';
  display: block;
  width: calc(100% - 240px);
  height: 1px;
  background: #D9D9D9;
  position: absolute;
  top: 20px;
  left: 0;
}

.representative::after {
  background: url("../images/about/kimura-itsumu.svg")no-repeat;
  content: '';
  width: 250px;
  height: 94px;
  top: 10px;
  right: -125px;
  position: absolute;
  display: block;
}

.representative span.f_18px {
  letter-spacing: 0;
  margin: auto 20px auto 30px;
}

.representative span.f_24px {
  letter-spacing: 0;
}

section#company-overview {
  background: linear-gradient(180deg, rgba(0, 93, 169, 1) 0%, rgba(0, 93, 169, 1) 70%, rgba(0, 70, 126, 1) 100%);
  border-top-right-radius: 100px;
  position: relative;
}

section#company-overview::after {
  background: url("../images/sub/border-sb.svg")no-repeat;
  width: 100px;
  height: 99px;
  position: absolute;
  bottom: 0;
  right: 0;
  content: '';
  display: block;
}

section#company-overview .sec_inner {
  padding: 56px 20px 120px;
  max-width: 1140px;
  margin: 0 auto;
  box-sizing: border-box;
}

section#company-overview h2 {
  color: #fff;
}

.company-overview {
  background: #fff;
  border-radius: 16px;
  padding: 40px 75px 30px;
  box-sizing: border-box;
}

.company-overview-item {
  display: flex;
  gap: 20px;
}

.overview-item-label {
  padding: 32px 0;
  border-bottom: 2px solid #005EA9;
  width: 180px;
  line-height: 2.4em;
}

.overview-item-value {
  padding: 32px 0;
  border-bottom: 2px solid rgba(0, 94, 169, 0.5);
  width: calc(100% - 180px - 20px);
  line-height: 2.4em;
}

.overview-item-value iframe {
  margin-top: 18px;
  border-radius: 10px;
}

.overview-item-value-list li {
  padding-left: 32px;
  position: relative;
  margin-bottom: 16px;
}

.overview-item-value-list li:last-of-type {
  margin-bottom: 0;
}

.overview-item-value-list li::before {
  content: '';
  display: block;
  width: 8px;
  height: 8px;
  background: #005EA9;
  border-radius: 50%;
  position: absolute;
  left: 8px;
  top: 50%;
  transform: translateY(-50%);
}

.overview-ch {
  background: #015FA8;
  color: #fff;
  padding: 2px 8px;
  border-radius: 2px;
  margin-right: 12px;
  letter-spacing: 0.04em;
  font-weight: 600;
}

section#history {
  background-color: #EDFAFD;
  position: relative;
  overflow: hidden;
}

section#history::after {
  background: url("../images/sub/border-db.svg")no-repeat;
  width: 100px;
  height: 100px;
  position: absolute;
  top: 0;
  left: 0;
  content: '';
  display: block;
}

.history-bg {
  position: absolute;
  z-index: 0;
  content: '';
  display: block;
  left: calc(50% - 960px);
}

.history-bg img {
  width: 1920px;
  height: auto;
  object-fit: contain;
}

.history-bg-img1 {
  top: 0;
}

.history-bg-img2 {
  top: calc(50% - 500px);
}

.history-bg-img3 {
  bottom: 0;
}

section#history .sec_inner {
  padding: 100px 20px 120px;
  max-width: 1140px;
  margin: 0 auto;
  box-sizing: border-box;
  position: relative;
  z-index: 2;
}

section#history h2 {
  margin-bottom: 32px;
}

section#history .sec_inner>p {
  text-align: center;
  line-height: 2.4em;
}

.history {
  margin: 70px auto 80px;
}

.history-start-date,
.history-end-date {
  width: 188px;
  height: 188px;
  border-radius: 50%;
  background: #2AAAFE;
  margin: 0 auto;
  display: flex;
  justify-content: center;
  align-items: center;
}

.history-start-date-inner,
.history-end-date-inner {
  width: 156px;
  height: 156px;
  border-radius: 50%;
  background: #9AE7FD;
  margin: auto;
  display: flex;
  justify-content: center;
  align-items: center;
}

.history-start-date-title,
.history-end-date-title {
  background: #fff;
  width: 128px;
  height: 128px;
  border-radius: 50%;
  text-align: center;
  display: flex;
  justify-content: center;
  align-items: center;
}

.history-end-date {
  background: #E4411D;
}

.history-end-date-inner {
  background: #F47A31;
}

.history-list {
  position: relative;
  width: 980px;
  margin: 0 auto -664px;
}

.history-list::after {
  width: 6px;
  position: absolute;
  top: 0;
  bottom: 664px;
  left: 50%;
  transform: translateX(-50%);
  background: #E5E5E5;
  content: '';
  z-index: 1;
}

.history-item {
  background: #fff;
  border-radius: 30px;
  padding: 16px 32px 32px;
  position: relative;
  z-index: 2;
  width: 350px;
  box-sizing: border-box;
}

.history-item:nth-of-type(1) {
  top: -62px;
}

.history-item:nth-of-type(2) {
  top: -108px;
}

.history-item:nth-of-type(3) {
  top: -187px;
}

.history-item:nth-of-type(4) {
  top: -231px;
}

.history-item:nth-of-type(5) {
  top: -270px;
}

.history-item:nth-of-type(6) {
  top: -330px;
}

.history-item:nth-of-type(7) {
  top: -300px;
}

.history-item:nth-of-type(8) {
  top: -425px;
}

.history-item:nth-of-type(9) {
  top: -448px;
}

.history-item:nth-of-type(10) {
  top: -493px;
}

.history-item:nth-of-type(11) {
  top: -556px;
}

.history-item:nth-of-type(12) {
  top: -567px;
}

.history-item:nth-of-type(13) {
  top: -738px;
}

.history-item:nth-of-type(14) {
  top: -695px;
}

.history-item:nth-of-type(15) {
  top: -746px;
}

.history-item-left {
  position: relative;
}

.history-item-left::after {
  content: '';
  width: 118px;
  height: 6px;
  background: linear-gradient(90deg, #FFFFFF 0%, #005EA8 100%);
  right: -118px;
  top: 50%;
  transform: translateY(-50%);
  position: absolute;
  content: '';
  display: block;
  z-index: 1;
}

.history-item-left::before {
  content: '';
  width: 43px;
  height: 43px;
  background: url('../images/about/history-dot.svg')no-repeat;
  right: -161px;
  top: 50%;
  transform: translateY(-50%);
  position: absolute;
  content: '';
  display: block;
  z-index: 2;
}

.history-item-right {
  position: relative;
  margin: 0 0 0 auto;
}

.history-item-right::after {
  content: '';
  width: 118px;
  height: 6px;
  background: linear-gradient(-90deg, #FFFFFF 0%, #005EA8 100%);
  left: -118px;
  top: 50%;
  transform: translateY(-50%);
  position: absolute;
  content: '';
  display: block;
  z-index: 1;
}

.history-item-right::before {
  content: '';
  width: 43px;
  height: 43px;
  background: url('../images/about/history-dot.svg')no-repeat;
  left: -161px;
  top: 50%;
  transform: translateY(-50%);
  position: absolute;
  content: '';
  display: block;
  z-index: 2;
}

.history-item-year {
  color: #005DA9;
  font-weight: 500;
  text-align: center;
  font-size: 21px;
  margin-bottom: 14px;
}

.history-value {
  color: #333333;
  font-size: 40px;
  font-weight: 700;
  letter-spacing: 0.03em;
  margin: 0 5px;
}

.history-item>img {
  margin-top: 16px;
}

.history-item>p {
  letter-spacing: 0.03em;
}

.history-item-value-list li {
  padding-left: 16px;
  position: relative;
  margin-bottom: 6px;
}

.history-item-value-list li:last-of-type {
  margin-bottom: 0;
}

.history-item-value-list li::before {
  content: '';
  width: 8px;
  height: 8px;
  background: #E4411D;
  border-radius: 50%;
  position: absolute;
  left: 0;
  top: 7.5px;
}

section#history .sec_inner>p br.ssp_br {
  display: none;
}


/*--------------------

	新着情報ページ
	
--------------------*/
.news-page .sub_cont_inner {
  padding: 40px 20px 120px;
  max-width: 800px;
  margin: 0 auto;
}

.news-list.archive-news-list {
  width: 100%;
}

.news-list.archive-news-list .news-item a {
  align-items: center;
  justify-content: space-between;
}

.news-cont-wrapper {
  width: calc(100% - 39px - 20px);
  display: grid;
  gap: 10px;
}

.news-cont-wrapper .news-text {
  letter-spacing: 0.1em;
}

.news-img-wrapper {
  width: 39px;
  height: 39px;
  border-radius: 50%;
  background-color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  background-image: url('../images/icon/arrow-b.svg');
  background-repeat: no-repeat;
  background-position: center center;
  background-size: 20px;
  transition: 0.3s;
}

a:hover .news-img-wrapper {
  background-image: url('../images/icon/arrow-w.svg');
  background-color: #005DA9;
}

.wp-pagenavi {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin: 80px auto 0;
  font-family: "Raleway", sans-serif;
  font-size: 24px;
  font-weight: 700;
  justify-content: center;
}

.wp-pagenavi a {
  font-family: "Raleway", sans-serif;
  font-size: 24px;
  font-weight: 700;
}

.wp-pagenavi .first {
  width: 56px;
  height: 56px;
  border: 1px solid #BEBEBE;
  background-color: #fff;
  background-image: url('../images/icon/pager-w-arrow.svg');
  background-repeat: no-repeat;
  background-position: center center;
  background-size: 19px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: 0.3s;
  transform: rotate(180deg);
}

.wp-pagenavi .previouspostslink {
  width: 56px;
  height: 56px;
  border: 1px solid #BEBEBE;
  background-color: #fff;
  background-image: url('../images/icon/pager-arrow.svg');
  background-repeat: no-repeat;
  background-position: center center;
  background-size: 12px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: 0.3s;
  transform: rotate(180deg);
}

.wp-pagenavi .page {
  width: 56px;
  height: 56px;
  border: 1px solid #BEBEBE;
  background-color: #fff;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: 0.3s;
  line-height: 0;
  letter-spacing: 0;
}

.wp-pagenavi .current {
  width: 56px;
  height: 56px;
  border: 1px solid #F9F9F9;
  background: linear-gradient(180deg, #66AACC 0%, #006699 100%);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: 0.3s;
  color: #fff;
  font-family: "Raleway", sans-serif;
  font-size: 24px;
  font-weight: 700;
  letter-spacing: 0;
}

.wp-pagenavi .last {
  width: 56px;
  height: 56px;
  border: 1px solid #BEBEBE;
  background-color: #fff;
  background-image: url('../images/icon/pager-w-arrow.svg');
  background-repeat: no-repeat;
  background-position: center center;
  background-size: 19px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: 0.3s;
}

.wp-pagenavi .nextpostslink {
  width: 56px;
  height: 56px;
  border: 1px solid #BEBEBE;
  background-color: #fff;
  background-image: url('../images/icon/pager-arrow.svg');
  background-repeat: no-repeat;
  background-position: center center;
  background-size: 12px;
  border-radius: 50%;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  transition: 0.3s;
}


/*--------------------

	新着情報詳細ページ
	
--------------------*/
.news-single-page {
  background-color: #E9F3FB;
}

.news-single-page .sub_top {
  height: inherit;
  background: none;
  position: inherit;
}

.news-single-page .sub_top_inner {
  padding: 40px 20px 20px;
}

.news-single-page .sub_top::after {
  background: none;
}

.news-single-page .bread {
  text-align: end;
  margin: 0 0 0 auto;
}

.news-single-page .sub_cont_inner {
  padding: 0 20px 120px;
  max-width: 1140px;
  margin: 0 auto;
  position: relative;
  z-index: 5;
}

.news-single-content {
  background: #fff;
  width: 100%;
  box-sizing: border-box;
  padding: 60px 80px 100px;
  border-radius: 16px;
  margin-bottom: 60px;
}

.news-single-title {
  font-size: 38px;
  line-height: 1.6em;
  letter-spacing: 0.04em;
  margin: 16px 0 80px;
  font-weight: 600;
}

.news-single-content h2 {
  font-size: 28px;
  font-weight: 600;
  letter-spacing: 0.04em;
  padding-top: 13px;
  border-top: 3px solid #E2E8ED;
  margin: 72px 0 34px;
  position: relative;
}

.news-single-content h2::after {
  position: absolute;
  width: 60px;
  height: 3px;
  background: #005EA9;
  top: -3px;
  left: 0;
  content: '';
  display: block;
}

.news-single-content h3 {
  color: #005DA9;
  letter-spacing: 0.04em;
  font-size: 24px;
  margin: 48px 0 36px;
  font-weight: 600;
}

.news-single-content h4 {
  font-size: 21px;
  font-weight: 600;
  padding-left: 26px;
  position: relative;
  letter-spacing: 0.04em;
  margin: 36px 0 24px;
}

.news-single-content h4::after {
  position: absolute;
  left: 0;
  top: 12px;
  content: '';
  display: block;
  width: 16px;
  height: 6px;
  background: #005DA9;
}

.news-single-content p {
  margin-bottom: 24px;
  line-height: 1.8em;
  letter-spacing: 0.04em;
}

.news-single-content strong {
  font-weight: 700;
}

.news-single-content ul {
  margin-bottom: 24px;
}

.news-single-content ul li {
  padding-left: 30px;
  position: relative;
  margin-bottom: 8px;
  letter-spacing: 0.04em;
}

.news-single-content ul li:last-of-type {
  margin-bottom: 0;
}

.news-single-content ul li::after {
  position: absolute;
  content: '';
  display: block;
  width: 8px;
  height: 8px;
  background: #E2E8EC;
  border-radius: 50%;
  left: 10px;
  top: 9px;
}

.news-single-page .about-btn {
  display: block;
  margin: 0 auto;
  border: 2px solid #E9F3FB;
}

.news-single-page .about-btn:hover {
  border: 2px solid #005DA9;
}


/*--------------------

	採用ページ
	
--------------------*/

#recruit-requirement {
  position: relative;
}

#recruit-requirement::after {
  background-image: url('../images/sub/border-b.svg');
  position: absolute;
  bottom: 0;
  left: 0;
  width: 99px;
  height: 99px;
  content: '';
  display: block;
  z-index: 5;
}

#recruit-requirement .sec_inner {
  max-width: 1140px;
  margin: 0 auto;
  padding: 10px 20px 120px;
  box-sizing: border-box;
  position: relative;
}

#recruit-requirement h2 {
  margin-bottom: 40px;
}

.recruit-explain {
  background-color: #EDFAFD;
  padding: 30px 60px;
  width: fit-content;
  margin: 0 auto;
  position: relative;
  z-index: 5;
}

.recruit-explain::after {
  background-image: url('../images/recruit/challenge.svg');
  background-size: contain;
  background-repeat: no-repeat;
  position: absolute;
  top: -7px;
  left: 15px;
  width: 281px;
  height: 86px;
  content: '';
  display: block;
  z-index: 5;
}

.recruit-explain p {
  text-align: center;
  letter-spacing: 0.02em;
  line-height: 1.8em;
  position: relative;
  z-index: 6;
}

.recruit-explain-strong {
  background: linear-gradient(transparent 60%, rgba(42, 170, 254, 0.23) 40%);
  display: inline;
}

.recruit-requirement {
  margin-top: 50px;
}

.recruit-requirement .tab {
  display: flex;
  gap: 10px;
  margin-left: 50px;
}

.recruit-requirement .tab li a {
  background: #fff;
  padding: 20px 30px;
  border-radius: 16px 16px 0 0;
  border: 2px solid #A2A2A2;
  font-size: 18px;
  font-weight: 500;
  letter-spacing: 0.04em;
  color: #A2A2A2;
  display: block;
}

.recruit-requirement .tab li a:hover {
  border: 2px solid #333333;
  background-color: #333333;
  color: #fff;
  opacity: 1;
}

/*liにactiveクラスがついた時の形状*/
.recruit-requirement .tab li.active a {
  background: #005EA8 !important;
  border: 2px solid #005EA8;
  color: #fff;
}

.recruit-requirement .tab li.active a:hover {
  border: 2px solid #005EA8;
  background-color: #005EA8;
  color: #fff;
  opacity: 1;
}

/*エリアの表示非表示と形状*/
.area {
  display: none !important;
  /*はじめは非表示*/
  opacity: 0;
  /*透過0*/
  padding: 60px 60px 70px;
  position: relative;
  border: 2px solid #005EA9;
  background-color: #fff;
  border-radius: 16px;
}

.area::after {
  background-image: url('../images/recruit/requirements-bk.svg');
  background-repeat: repeat-x;
  width: 100%;
  height: 150px;
  content: '';
  display: block;
  position: absolute;
  left: 0;
  bottom: 0;
  z-index: 5;
}

/*areaにis-activeというクラスがついた時の形状*/
.area.is-active {
  display: block !important;
  /*表示*/
  animation-name: displayAnime;
  /*ふわっと表示させるためのアニメーション*/
  animation-duration: 2s;
  animation-fill-mode: forwards;
}

@keyframes displayAnime {
  from {
    opacity: 0;
  }

  to {
    opacity: 1;
  }
}

.area h3 {
  letter-spacing: 0.05em;
  padding-bottom: 24px;
  border-bottom: 1px solid #E2E2E2;
  margin-bottom: 40px;
}

.youkou {
  width: 100%;
}

.youkou tr {
  margin-bottom: 24px;
  display: flex;
  align-items: flex-start;
  gap: 30px;
}

.youkou tr:last-of-type {
  margin-bottom: 0;
}

.youkou th {
  width: 170px;
  padding: 8px 0;
  border-radius: 21px;
  background-color: #005DA9;
  color: #fff;
  text-align: center;
  letter-spacing: 0.04em;
  line-height: 1.5em;
}

.youkou td {
  padding-top: 8px;
  line-height: 1.6em;
  letter-spacing: 0.04em;
}

.recruit-requirement-cta {
  position: relative;
  z-index: 6;
  background-color: #E9F3FB;
  display: flex;
  justify-content: center;
  padding: 30px 20px;
  margin-top: 40px;
}

.recruit-requirement-cta-btn {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 24px;
  padding: 0 85px;
}

.recruit-requirement-cta-btn p,
.recruit-requirement-cta-tel p {
  letter-spacing: 0.03em;
}

.recruit-requirement-cta-btn a {
  border: 2px solid #E9F3FB;
  background: linear-gradient(90deg, #006699 0%, #66AACC 100%);
}

.recruit-requirement-cta-separation {
  width: 2px;
  height: 120px;
  background-color: #fff;
}

.recruit-requirement-cta-tel {
  padding: 0 100px;
  display: flex;
  flex-direction: column;
  align-items: center;
}

.recruit-requirement-cta-tel p {
  margin-bottom: 10px;
}

.recruit-requirement-cta-tel a {
  font-size: 36px;
  color: #0A6D9E;
  letter-spacing: 0;
}

.recruit-requirement-cta-tel a img {
  margin-right: 8px;
}

#recruit-form {
  background-color: #005DA9;
  border-top-right-radius: 100px;
}

#recruit-form::after {
  background: linear-gradient(180deg, #005EA9 0%, #00467E 100%);
  height: 548px;
  width: 100%;
  position: absolute;
  bottom: 0;
  left: 0;
  content: '';
  display: block;
  z-index: 2;
}

#recruit-form .sec_inner {
  max-width: 1140px;
  margin: 0 auto;
  padding: 56px 20px 120px;
  box-sizing: border-box;
  position: relative;
  z-index: 3;
}

#recruit-form h2 {
  color: #fff;
}

.recruit-form-text {
  color: #fff;
  text-align: center;
  margin-bottom: 50px;
}

.recruit-form-text .ssp_br{
  display: none;
}

.recruit-form-step {
  display: flex;
  background-image: url('../images/recruit/step-line.svg');
  background-repeat: repeat-x;
  background-size: 36px 100%;
  background-position: center top -12px;
  content: '';
  gap: 126px;
  width: fit-content;
  margin: 0 auto 50px;
}

.recruit-form-step-item>p {
  color: #fff;
  text-align: center;
  margin-top: 6px;
}

.recruit-form-step-item:first-of-type>p {
  margin-left: -20px;
}

.recruit-form-step-item .recruit-form-step-item-num {
  width: 80px;
  height: 80px;
  border-radius: 50%;
  background-color: #005DA9;
  border: 2px solid #fff;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 2px;
  color: #fff;
}

.recruit-form-step-item .recruit-form-step-item-num p {
  color: #fff;
  line-height: 1;
}

.recruit-form-step-item .recruit-form-step-item-num p:first-of-type {
  margin-top: 8px;
}

.recruit-form-step-item.is-active .recruit-form-step-item-num {
  background-color: #fff;
  border: 2px solid #005DA9;
}

.recruit-form-step-item.is-active .recruit-form-step-item-num p {
  color: #005DA9;
}

.recruit-form form {
  background-color: #fff;
  padding: 90px 130px;
  border-radius: 16px;
}

.recruit-form form table {
  width: 100%;
}

.recruit-form form table tbody {
  display: flex;
  flex-direction: column;
  gap: 42px;
}

.recruit-form form table tr {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.form-required {
  background: #E4411D;
  border-radius: 6px;
  color: #fff;
  padding: 2px 14px 4px;
  letter-spacing: 0.04em;
  line-height: 1;
  margin-right: 10px;
  font-weight: 600;
}

.form-required.nini {
  background-color: #ACACAC;
}

.recruit-form form table tr th {
  letter-spacing: 0.04em;
}

.recruit-form form table tr input[type="text"],.recruit-form form table tr input[type="tel"],.recruit-form form table tr input[type="email"] {
  width: 100%;
  box-sizing: border-box;
  padding: 22px 32px;
  border-radius: 6px;
  background-color: #E7F5F8;
  border: none;
  font-size: 18px;
  letter-spacing: 0.04em;
  line-height: 1.5em;
  color: #333333;
  font-weight: 500;
}

.recruit-form form table tr input[type="radio"] {
  width: 23px;
  height: 23px;
  margin: 6px 8px 6px 0;
  border: 1px solid #939393;
  border-radius: 50%;
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  cursor: pointer;
}

.recruit-form form table tr label {
  display: inline-flex;
  align-items: center;
  flex-wrap: wrap;
  margin-right: 30px;
}

.recruit-form form table tr input[type="radio"]:checked {
  border: 1px solid #2AAAFE;
  padding: 2px;
}

.recruit-form form table tr input[type="radio"]::before {
  display: block;
  content: "";
  width: 14px;
  height: 14px;
  border-radius: 7px;
  background-color: #2AAAFE;
  transform: translate(1.5px, 1.5px) scale(0);
  transform-origin: center;
  transition: all 0.3s cubic-bezier(0.25, 0.25, 0.56, 2);
}

.recruit-form form table tr input[type="radio"]:checked::before {
  transform: translate(1.5px, 1.5px) scale(1);
}

.recruit-form form p.f_15px {
  text-align: end;
}

.recruit-form form textarea {
  width: 100%;
  box-sizing: border-box;
  padding: 22px 32px;
  border-radius: 6px;
  background-color: #E7F5F8;
  border: none;
  font-size: 18px;
  letter-spacing: 0.04em;
  line-height: 1.5em;
  color: #333333;
  font-weight: 500;
}

.recruit-form-privacy p {
  margin: 50px auto 60px;
  text-align: center;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
}

.recruit-form-privacy .form-required{
  padding: 5px 14px 8px;
}

.recruit-form-privacy label {
  width: fit-content;
  height: 24px;
  display: inline-block;
}

.recruit-form-privacy .mwform-checkbox-field {
  width: fit-content;
  height: 24px;
  display: inline-block;
}

.recruit-form form input[type="checkbox"] {
  width: 24px;
  height: 24px;
  margin: 0 10px 0 0;
  border: 1px solid #939393;
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  cursor: pointer;
  position: relative;
}

.recruit-form form input[type="checkbox"]::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 7px;
  height: 14px;
  border-right: 3px solid #ffffff;
  border-bottom: 3px solid #ffffff;
  transform: translate(-50%, -60%) rotate(45deg);
  opacity: 0;
}

.recruit-form form input[type="checkbox"]:checked {
  border: 1px solid #2AAAFE;
  background-color: #2AAAFE;
}

.recruit-form form input[type="checkbox"]:checked::after {
  opacity: 1;
}

.recruit-privacy-link{
  color: #2AAAFE!important;
  font-weight: 600;
  text-decoration: underline;
  text-underline-offset: 3px;
  transition: 0.3s;
}

.recruit-privacy-link:hover{
  opacity: 0.8;
}

.recruit-form-submit input{
  width: 400px;
  height: 80px;
  border-radius: 40px;
  background-color: #E4411D;
  color: #fff;
  font-size: 21px;
  letter-spacing: 0.04em;
  line-height: 1.5em;
  font-weight: 600;
  text-align: center;
  cursor: pointer;
  border: none;
  display: block;
  margin: 0 auto;
  transition: 0.3s;
}

.recruit-form-submit input:hover {
  opacity: 0.8;
}

.recruit-privacy-link-wrap{
  text-align: center;
  margin-top: 40px;
}

.recruit-privacy-ttl{
  margin: 80px 0 8px;
  color: #fff;
}

.recruit-privacy-text{
  background-color: #fff;
  padding: 32px;
  height: 280px;
  border-radius: 16px;
}

.recruit-privacy-text-inner{
  height: 100%;
  overflow-y: auto;
  padding-right: 16px;
}

.recruit-form-submit-kakunin > p{
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 24px;
}

.recruit-form-submit-kakunin input{
  width: calc(50% - 72px);
  max-width: 240px;
  margin: 0;
}

.recruit-form-submit input.recruit-back-btn{
  background-color: #959595;
}

.wpcf7-spinner{
  display: none!important;
}

.recruit-form-complete-btn{
  position: relative;
  margin: 40px auto 0;
}

.recruit-form-complete-form p{
  text-align: center;
}

.recruit-form-complete-form p:first-of-type{
  margin-bottom: 24px;
}

.recruit-form-complete-btn .footer-recruit-btn{
  position: inherit;
}

/*スクロールバー*/
.recruit-privacy-text-inner::-webkit-scrollbar {
  width: 12px;
}
.recruit-privacy-text-inner::-webkit-scrollbar-track {
  background: #D3E2EF;
  border: none;
  border-radius: 6px;
}
.recruit-privacy-text-inner::-webkit-scrollbar-thumb {
  background: #5B9DD6;
  border-radius: 6px;
  box-shadow: none;
}
/*ここまでスクロールバー*/



/*--------------------

	404ページ
	
--------------------*/
.not-found-page-section .sec_inner {
  padding: 20px 20px 120px;
  max-width: 800px;
  margin: 0 auto;
}

.not-found-form {
  background-color: #fff;
  padding: 60px 40px;
  border-radius: 16px;
}

.not-found-form p{
  text-align: center;
}