@charset "UTF-8";

/*WordPress対策・全ページ余白なし*/
* {
  margin: 0;
  padding: 0;
}

body {
  margin: 0;
  padding: 0;
  color: #000;
  background: #fff;
  font-family: "Zen Maru Gothic", sans-serif;
}

img {
  vertical-align: bottom;
  max-width: 100%;
}

p,
h1,
h2,
h3,
h4 {
  font-family: "Zen Maru Gothic", sans-serif;
}

a {
  text-decoration: none;
}

body {
  background-image: url(/wp/wp-content/themes/inunekosan/image/back.jpg);
  background-repeat: no-repeat;
  background-size: 100% 110%;
}

main {
  z-index: 1;
  position: relative;
  width: 100%;
  height: auto;
  overflow: hidden;
}

.hide-text1,
.hide-text2,
.hide-text3,
.hide-text4,
.hide-text5,
.hide-text6 {
  display: none;
}


button.readmore1 {
  cursor: pointer;
  position: relative;
  display: block;
  background-color: transparent;
  color: #575756;
  outline: 0;
  transition: .5s;
  -erbkit-transition: .5s;
  padding: 20px;
  box-sizing: border-box;
  border: 1px solid #575756;
  width: 100%;
}

button.readmore2 {
  cursor: pointer;
  position: relative;
  display: block;
  background-color: transparent;
  color: #575756;
  outline: 0;
  transition: .5s;
  -erbkit-transition: .5s;
  padding: 20px;
  box-sizing: border-box;
  border: 1px solid #575756;
  width: 100%;
}

button.readmore3,
button.readmore4,
button.readmore5,
button.readmore6 {
  cursor: pointer;
  position: relative;
  display: block;
  background-color: transparent;
  color: #575756;
  outline: 0;
  transition: .5s;
  -erbkit-transition: .5s;
  padding: 20px;
  box-sizing: border-box;
  border: 1px solid #575756;
  width: 100%;
}

button.readmore1:hover,
button.readmore2:hover,
button.readmore3:hover,
button.readmore4:hover,
button.readmore5:hover,
button.readmore6:hover {
  background: #575756;
  ;
  color: #fff;
}


.on-click,
.on-click2,
.on-click3,
.on-click4,
.on-click5,
.on-click6 {
  display: none !important;
}

.fade-in {
  opacity: 0;
  transform: translateY(20px);
  transition: opacity 2s ease, transform 2s ease;
}

.fade-in.show {
  opacity: 1;
  transform: translateY(0);
}


/* メディアクエリ */
@media screen and (min-width: 1025px) {
  .pc {
    display: block;
  }

  .sp {
    display: none;
  }

  /*電話番号をクリックしても自動発信しない*/
  a[href*="tel:"] {
    pointer-events: none;
    cursor: default;
    text-decoration: none;
  }
}

@media screen and (max-width: 1024px) {
  .pc {
    display: none;
  }

  .sp {
    display: block;
  }

  html {
    scroll-padding-top: 75px;
  }

  main {
    padding-top: 75px;
  }

  #scroll {
    position: relative;
    width: 315px;
    height: auto;
    margin: 0 auto 15px;
  }

  /* テキストを横向きのまま中央に */
  #scroll .scroll-text {
    color: #333;
    font-size: 14px;
    text-align: left;
    margin-bottom: 6px;
  }

  /* 横棒へ変更 */
  #scroll .scroll-border {
    position: relative;
    width: 100px;
    /* 横幅にする */
    height: 1px;
    /* 横線にする */
    background-color: #d5d5d5;
    overflow: hidden;
  }

  /* 動くバー（左→右） */
  #scroll .scroll-border::before {
    content: "";
    display: block;
    position: absolute;
    height: 1px;
    width: 30px;
    /* アニメーションバーの長さ */
    top: 0;
    left: 0;
    background: #333;
    animation: scrollbar-x 2.0s ease-in-out infinite;
  }

  #scroll-wh {
    position: relative;
    width: 315px;
    height: auto;
    margin: 0 auto 15px;
  }

  /* テキストを横向きのまま中央に */
  #scroll-wh .scroll-text {
    color: #fff;
    font-size: 14px;
    text-align: left;
    margin-bottom: 6px;
  }

  /* 横棒へ変更 */
  #scroll-wh .scroll-border {
    position: relative;
    width: 100px;
    /* 横幅にする */
    height: 1px;
    /* 横線にする */
    background-color: #d5d5d5;
    overflow: hidden;
  }

  /* 動くバー（左→右） */
  #scroll-wh .scroll-border::before {
    content: "";
    display: block;
    position: absolute;
    height: 1px;
    width: 30px;
    /* アニメーションバーの長さ */
    top: 0;
    left: 0;
    background: #fff;
    animation: scrollbar-x 2.0s ease-in-out infinite;
  }

  @keyframes scrollbar-x {
    0% {
      transform: translateX(-100%);
    }

    100% {
      transform: translateX(350%);
    }
  }
}

.fadeUpTrigger,
.fadeInTrigger {
  opacity: 0;
}

.fadeUp,
.fadeIn {
  animation-fill-mode: forwards;
  opacity: 0;
}

.fadeUp {
  animation-name: fadeUpAnime;
  animation-duration: 2s;
}

@keyframes fadeUpAnime {
  from {
    opacity: 0;
    transform: translateY(100px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.fadeIn {
  animation-name: fadeInAnime;
  animation-duration: 2s;
}

@keyframes fadeInAnime {
  from {
    opacity: 0;
  }

  to {
    opacity: 1;
  }
}

p.indent {
  padding-left: 1em;
  text-indent: -1em;
}

/*ヘッダー*/
/*PC*/
@media screen and (min-width: 1025px) {
  header {
    width: 100%;
    height: auto;
    padding: 45px 100px 20px;
    box-sizing: border-box;
  }

  header .container {
    display: flex;
    justify-content: space-between;
    align-items: start;
    margin-bottom: 17px;
  }

  header .container .logo {
    display: block;
    width: 430px;
    margin-top: 8px;
    transition: 0.4s ease;
  }

  header .container .logo image {
    width: 100%;
  }

  header .container .logo:hover {
    opacity: 0.7;
  }

  header .container .tel {
    display: grid;
    grid-template-columns: repeat(2, auto);
    -moz-column-gap: 30px;
    column-gap: 30px;
    align-items: center;
  }

  header .container .tel p.p-1 {
    font-size: 11px;
    font-weight: bold;
    line-height: 1.75;
    letter-spacing: 3.56px;
    text-align: left;
    color: #0d0e60;
  }

  header .container .tel a {
    display: flex;
    gap: 8px;
    align-items: center;
    font-size: 26px;
    font-weight: bold;
    line-height: 1.75;
    letter-spacing: 5px;
    text-align: left;
    color: #0d0e60;
  }

  header .container .tel a img {
    width: 20px;
  }

  header nav.links {
    display: grid;
    grid-template-columns: 150px 150px 220px 150px 150px;
    -moz-column-gap: 26px;
    column-gap: 26px;
    justify-content: end;
    align-items: center;
  }

  header nav.links a span {
    display: block;
    margin-bottom: 10px;
    font-size: 17px;
    font-weight: bold;
    line-height: 1.75;
    letter-spacing: 0;
    text-align: center;
    color: #0d0e60;
    position: relative;
  }

  header nav.links a span::after {
    content: "";
    display: block;
    width: 100%;
    height: 0.5px;
    background-color: #0d0e60;
    position: absolute;
    bottom: -3px;
    left: 50%;
    transform: translateX(-50%);
    -webkit-transform: translateX(-50%);
    -ms-transform: translateX(-50%);
  }

  header nav.links a small {
    display: block;
    font-size: 11px;
    font-weight: bold;
    line-height: 1.75;
    letter-spacing: 4px;
    text-align: center;
    color: #0d0e60;
  }
}

/*SP*/
@media screen and (max-width: 1024px) {
  header {
    width: 100%;
    height: 75px;
    position: fixed;
    top: 0;
    left: 0;
    z-index: 100;
    background-color: #fff;
  }

  header .header__container {
    display: flex;
    justify-content: space-between;
    align-items: center;
    width: calc(100% - 20px);
    height: auto;
    padding: 10px;
  }

  header .header__container .logo {
    display: block;
    width: 220px;
    height: auto;
  }

  header .header__container .logo img {
    width: 100%;
    height: auto;
  }

  header .header__container .header__menu-toggle {
    width: auto;
    height: auto;
  }

  header .header__container .header__menu-toggle .header__menu-bars {
    cursor: pointer;
    z-index: 999;
    display: block;
    position: relative;
    width: 55px;
    height: 55px;
    text-align: center;
  }

  header .header__container .header__menu-toggle .header__menu-bars .header__menu-bar {
    display: block;
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    -webkit-transform: translateX(-50%);
    -ms-transform: translateX(-50%);
    width: 22.5px;
    height: 2px;
    border-radius: 2px;
    background-color: #0d0e60;
    transition: 0.35s ease-in-out;
  }

  header .header__container .header__menu-toggle .header__menu-bars .header__menu-bar:nth-of-type(1) {
    top: 20px;
  }

  header .header__container .header__menu-toggle .header__menu-bars .header__menu-bar:nth-of-type(2) {
    top: 26.5px;
  }

  header .header__container .header__menu-toggle .header__menu-bars .header__menu-bar:nth-of-type(3) {
    top: 32.5px;
  }

  header .header__container .header__menu-toggle .header__menu-bars.active {
    background-color: transparent;
  }

  header .header__container .header__menu-toggle .header__menu-bars.active .header__menu-bar {
    top: 26.5px;
    left: 50%;
    background-color: #0d0e60;
  }

  header .header__container .header__menu-toggle .header__menu-bars.active .header__menu-bar:nth-of-type(1) {
    background-color: #0d0e60;
    transform: translateX(-50%) rotate(-45deg);
  }

  header .header__container .header__menu-toggle .header__menu-bars.active .header__menu-bar:nth-of-type(2) {
    background-color: #0d0e60;
    transform: translateX(-50%) rotate(45deg);
  }

  header .header__container .header__menu-toggle .header__menu-bars.active .header__menu-bar:nth-of-type(3) {
    background-color: #0d0e60;
    transform: translateX(-50%) rotate(45deg);
  }

  header .header__container .header__menu-toggle nav.header__nav-sp {
    position: fixed;
    z-index: 103;
    top: 0;
    right: 0;
    transform: translateX(100%);
    transition: all 0.6s;
    width: 100%;
    height: 100vh;
    overflow-y: scroll;
    background-color: #fff;
    opacity: 1;
  }

  header .header__container .header__menu-toggle nav.header__nav-sp.active {
    transform: translateX(0%);
  }

  header .header__container .header__menu-toggle nav.header__nav-sp .header__nav-list {
    display: grid;
    grid-template-columns: 300px;
    justify-content: center;
    align-items: center;
    margin: 75px auto 40px;
    position: relative;
    list-style: none;
  }

  header .header__container .header__menu-toggle nav.header__nav-sp .header__nav-list .header__nav-item a {
    display: flex;
    gap: 30px;
    align-items: center;
    width: 100%;
    height: auto;
    padding: 20px 10px;
    box-sizing: border-box;
    border-top: dashed 1px #0d0e60;
  }

  header .header__container .header__menu-toggle nav.header__nav-sp .header__nav-list .header__nav-item a span {
    font-size: 13px;
    font-weight: bold;
    line-height: 1.75;
    letter-spacing: 0;
    text-align: left;
    color: #0d0e60;
    position: relative;
  }

  header .header__container .header__menu-toggle nav.header__nav-sp .header__nav-list .header__nav-item a span::after {
    content: "";
    display: block;
    width: 0.5px;
    height: 80%;
    background-color: #0d0e60;
    position: absolute;
    top: 50%;
    right: -15px;
    transform: translateY(-50%);
    -webkit-transform: translateY(-50%);
    -ms-transform: translateY(-50%);
  }

  header .header__container .header__menu-toggle nav.header__nav-sp .header__nav-list .header__nav-item a small {
    font-size: 13px;
    font-weight: bold;
    line-height: 1.75;
    letter-spacing: 2px;
    text-align: left;
    color: #0d0e60;
  }

  header .header__container .header__menu-toggle nav.header__nav-sp .header__nav-list .header__nav-item:nth-last-of-type(1) {
    border-bottom: dashed 1px #0d0e60;
  }

  header .header__container .header__menu-toggle nav.header__nav-sp .tel {
    display: grid;
    grid-template-columns: 300px;
    -moz-column-gap: 5px;
    column-gap: 5px;
    justify-content: center;
    align-items: center;
  }

  header .header__container .header__menu-toggle nav.header__nav-sp .tel p.p-1 {
    font-size: 10px;
    font-weight: bold;
    line-height: 1.75;
    letter-spacing: 3.56px;
    text-align: center;
    color: #0d0e60;
  }

  header .header__container .header__menu-toggle nav.header__nav-sp .tel a {
    display: flex;
    gap: 8px;
    justify-content: center;
    align-items: center;
    font-size: 22px;
    font-weight: bold;
    line-height: 1.75;
    letter-spacing: 2.5px;
    text-align: left;
    color: #0d0e60;
  }

  header .header__container .header__menu-toggle nav.header__nav-sp .tel a img {
    width: 18px;
  }
}

/*サブ*/
/*PC*/
@media screen and (min-width: 1025px) {
  #top .kv-sub {
    position: relative;
    width: 100%;
    margin-bottom: 65px;
  }

  #top .kv-sub video {
    width: 100%;
    height: 770px;
  }
.kv02{
  height:100vh;
  position:relative;
}

.kv02-slider,
.swiper-slide{
  height:100%;
}

.swiper-slide img{
  width:100%;
  height:100%;
  object-fit:cover;
}

.kv02-copy{
  position:absolute;
  top:50%;
  left:8%;
  transform:translateY(-50%);
  color:#fff;
  font-size:40px;
  font-weight:bold;
  background: rgba(0,0,0,0.35);
}
  
  
}

/*SMP*/
@media screen and (max-width: 1024px) {
  #top .kv-sub {
    position: relative;
    width: 100%;
    margin-bottom: 30px;
  }

  #top .kv-sub video {
    width: 100%;
    height: 250px;
  }
  

.kv02-copy{
  position:absolute;
  top:50%;
  left:8%;
  transform:translateY(-50%);
  color:#fff;
  font-size:14px;
  font-weight:bold;
    background: rgba(0,0,0,0.35);
}
}

/*トップページ*/
/*PC*/
@media screen and (min-width: 1025px) {
  #top {
    position: relative;
    width: 100%;
    height: auto;
  }

  #top .kv {
    position: relative;
    width: 100%;
    margin-bottom: 65px;
    /* 無限横スクロールアニメーション */
    /* ドローンのふわふわ上下アニメ */
    /* 上下にゆっくり浮遊するキーアニメーション */
    /* ユーザーが動きを減らす設定にしている場合は停止 */
  }

  #top .kv .kv-slider {
    display: flex;
    width: 200%;
    height: 770px;
    /* 画像2枚分 */
    animation: slide 90s linear infinite;
    overflow: hidden;
  }

  #top .kv .kv-slider img {
    width: 50%;
    /* 画像2枚分なので1枚あたり半分 */
    height: 100%;
  }

  @keyframes slide {
    0% {
      transform: translateX(0);
    }

    100% {
      transform: translateX(-50%);
    }
  }

  #top .kv h2 {
    position: absolute;
    top: 20px;
    left: calc(50% - 630px);
    font-size: 48px;
    font-weight: 900;
    line-height: 1.75;
    letter-spacing: 9.4px;
    text-align: left;
    color: #0d0e60;
  }

  #top .kv .kv-img-1 {
    display: block;
    width: 150px;
    position: absolute;
    top: 235px;
    left: calc(50% - 500px);
    animation: kv-float-y 3.8s ease-in-out infinite;
    will-change: transform;
    transform: translateZ(0);
  }

  @keyframes kv-float-y {

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

    50% {
      transform: translateY(-14px);
    }

    /* 浮き上がる量。好みで調整 */
  }
}

@media screen and (min-width: 1025px) and (prefers-reduced-motion: reduce) {
  #top .kv .kv-img-1 {
    animation: none;
  }
}

@media screen and (min-width: 1025px) {
  #top .kv .kv-img-2 {
    display: block;
    width: 70px;
    position: absolute;
    bottom: -35px;
    left: calc(50% - 640px);
    z-index: 1;
  }

  #top .kv .kv-img-3 {
    display: block;
    width: 280px;
    position: absolute;
    bottom: -168px;
    left: calc(50% - 140px);
    z-index: 1;
  }

  #top .kv .kv-img-4 {
    display: block;
    width: 280px;
    position: absolute;
    bottom: -230px;
    right: calc(50% - 635px);
    z-index: 1;
  }

  #top .kv .video-container {
    width: 50%;
    height: auto;
    position: absolute;
    top: 95px;
    right: 25px;
    cursor: pointer;
    /* 再生中：中央固定表示（controlsはそのまま表示） */
  }

  #top .kv .video-container video {
    width: 100%;
    height: auto;
    display: block;
  }

  #top .kv .video-container .play-button {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    background: rgba(0, 0, 0, 0.5);
    border-radius: 50%;
    width: 60px;
    height: 60px;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: opacity 0.3s;
    cursor: pointer;
  }

  #top .kv .video-container .play-button svg {
    width: 60%;
    height: 60%;
  }

  #top .kv .video-container .play-button:hover {
    opacity: 0.8;
  }

  #top .kv .video-container .close-button {
    /* 右上の× */
    display: none;
    position: absolute;
    top: 10px;
    right: 10px;
    width: 32px;
    height: 32px;
    background: rgba(0, 0, 0, 0.5);
    border: none;
    border-radius: 50%;
    cursor: pointer;
    z-index: 10002;
  }

  #top .kv .video-container .close-button span {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 60%;
    height: 2px;
    background: #fff;
    transform-origin: center;
  }

  #top .kv .video-container .close-button span:first-child {
    transform: translate(-50%, -50%) rotate(45deg);
  }

  #top .kv .video-container .close-button span:last-child {
    transform: translate(-50%, -50%) rotate(-45deg);
  }

  #top .kv .video-container .close-button:hover {
    opacity: 0.8;
  }

  #top .kv .video-container .video-overlay {
    display: none;
  }

  #top .kv .video-container.fixed-center {
    position: fixed;
    top: 50%;
    left: 50%;
    width: 980px;
    max-width: 95vw;
    transform: translate(-50%, -50%);
    background: #000;
    z-index: 10001;
    cursor: default;
    /* 再生後は隠す */
  }

  #top .kv .video-container.fixed-center video {
    width: 100%;
    height: auto;
    display: block;
    position: relative;
    z-index: 10001;
    /* ★ 動画(=controls含む)を最前面に */
  }

  #top .kv .video-container.fixed-center .play-button {
    display: none;
  }

  #top .kv .video-container.fixed-center .close-button {
    display: block;
  }

  #top .kv .video-container.fixed-center .video-overlay {
    display: block;
    width: 100vw;
    height: 100vh;
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    background: rgba(0, 0, 0, 0.75);
    z-index: 10000;
    /* ★ 動画より下 */
  }

  #top .contents-1 {
    position: relative;
    width: 1250px;
    height: auto;
    margin: 0 auto 85px;
  }

  #top .contents-1 .news {
    position: relative;
    width: 100%;
    height: auto;
  }

  #top .contents-1 .news h2 {
    margin-bottom: 45px;
  }

  #top .contents-1 .news h2 strong {
    display: block;
    font-size: 55px;
    font-weight: bold;
    line-height: 1.75;
    letter-spacing: 2.2px;
    text-align: left;
    color: #0d0e60;
  }

  #top .contents-1 .news h2 small {
    display: block;
    margin-top: -15px;
    font-size: 16px;
    font-weight: bold;
    line-height: 1.75;
    letter-spacing: 4.7px;
    text-align: left;
    color: #0d0e60;
  }

  #top .contents-1 .news .items {
    position: relative;
    width: 1000px;
    margin-bottom: 40px;
  }

  #top .contents-1 .news .items a.item {
    display: grid;
    grid-template-columns: 205px 1fr;
    -moz-column-gap: 25px;
    column-gap: 25px;
    align-items: center;
    margin-bottom: 20px;
  }

  #top .contents-1 .news .items a.item:hover time,
  #top .contents-1 .news .items a.item:hover p.title {
    text-decoration: underline;
  }

  #top .contents-1 .news .items a.item time,
  #top .contents-1 .news .items a.item p.title {
    font-size: 16px;
    font-weight: bold;
    line-height: 1.75;
    letter-spacing: 4.7px;
    text-align: left;
    color: #000;
  }

  #top .contents-1 .news .items a.item time {
    white-space: nowrap;
  }

  #top .contents-1 .news a.btn {
    display: block;
    width: 230px;
    padding: 0 50px;
    font-size: 16px;
    font-weight: bold;
    line-height: 50px;
    letter-spacing: 4.7px;
    text-align: left;
    color: #fff;
    white-space: nowrap;
    background-color: #0d0e60;
    border-radius: 30px;
    transition: 0.4s ease;
  }

  #top .contents-1 .news a.btn:hover {
    opacity: 0.7;
  }

  #top .contents-2 {
    position: relative;
    width: 1250px;
    height: auto;
    margin: 0 auto 85px;
  }

  #top .contents-2 h2 {
    margin-bottom: 45px;
  }

  #top .contents-2 h2 strong {
    display: block;
    font-size: 55px;
    font-weight: bold;
    line-height: 1.75;
    letter-spacing: 2.2px;
    text-align: left;
    color: #0d0e60;
  }

  #top .contents-2 h2 small {
    display: block;
    margin-top: -15px;
    font-size: 16px;
    font-weight: bold;
    line-height: 1.75;
    letter-spacing: 4.7px;
    text-align: left;
    color: #0d0e60;
  }

  #top .contents-2 p {
    display: block;
    width: 780px;
    font-size: 14px;
    font-weight: bold;
    line-height: 1.75;
    letter-spacing: 2px;
    text-align: left;
    color: #000;
  }

  #top .contents-2 .top_img-1 {
    display: block;
    width: 260px;
    position: absolute;
    top: -55px;
    left: 340px;
    z-index: 1;
  }

  #top .contents-2 .top_img-2 {
    display: block;
    width: 705px;
    position: absolute;
    top: -150px;
    right: -100px;
    z-index: 1;
  }

  #top .contents-3 {
    position: relative;
    width: 100%;
    height: auto;
    margin-bottom: 105px;
    padding-top: 35px;
    padding-bottom: 50px;
    background-color: rgba(13, 14, 96, 0.1);
  }

  #top .contents-3::before {
    content: "";
    display: block;
    width: 310px;
    height: auto;
    aspect-ratio: 338.98/274.69;
    background-image: url(/wp/wp-content/themes/west-jpd/image/top_3.png);
    background-repeat: no-repeat;
    background-size: 100% 100%;
    position: absolute;
    top: -50px;
    left: calc(50% - 600px);
  }

  #top .contents-3::after {
    content: "";
    display: block;
    width: 300px;
    height: auto;
    aspect-ratio: 329.19/167.06;
    background-image: url(/wp/wp-content/themes/west-jpd/image/top_4.png);
    background-repeat: no-repeat;
    background-size: 100% 100%;
    position: absolute;
    top: 50px;
    left: calc(50% + 300px);
  }

  #top .contents-3 h2 {
    margin-bottom: 40px;
  }

  #top .contents-3 h2 strong {
    display: block;
    font-size: 55px;
    font-weight: bold;
    line-height: 1.75;
    letter-spacing: 2.2px;
    text-align: center;
    color: #0d0e60;
  }

  #top .contents-3 h2 small {
    display: block;
    margin-top: -15px;
    font-size: 16px;
    font-weight: bold;
    line-height: 1.75;
    letter-spacing: 4.7px;
    text-align: center;
    color: #0d0e60;
  }

  #top .contents-3 .texts {
    margin-bottom: 50px;
  }

  #top .contents-3 .texts h3 {
    margin-bottom: 15px;
    font-size: 33px;
    font-weight: bold;
    line-height: 1.75;
    letter-spacing: 6.5px;
    text-align: center;
    color: #000;
  }

  #top .contents-3 .texts p {
    font-size: 16px;
    font-weight: bold;
    line-height: 1.75;
    letter-spacing: 4.6px;
    text-align: center;
    color: #000;
  }

  #top .contents-3 .items {
    display: grid;
    grid-template-columns: repeat(5, auto);
    -moz-column-gap: 95px;
    column-gap: 95px;
    justify-content: center;
  }

  #top .contents-3 .items .item {
    display: grid;
    grid-template-columns: 160px;
    grid-template-rows: 130px auto auto;
  }

  #top .contents-3 .items .item:nth-of-type(1) img {
    width: 90px;
  }

  #top .contents-3 .items .item img {
    display: block;
    width: 110px;
    margin: 0 auto 18px;
  }

  #top .contents-3 .items .item h4 {
    margin-bottom: 22px;
    font-size: 19px;
    font-weight: bold;
    line-height: 1.75;
    letter-spacing: 5.6px;
    text-align: center;
    color: #000;
  }

  #top .contents-3 .items .item a {
    display: block;
    width: 100%;
    height: auto;
    font-size: 15px;
    font-weight: bold;
    line-height: 33px;
    letter-spacing: 0.58px;
    text-align: center;
    color: #fff;
    background-color: #000;
    position: relative;
    transition: 0.4s ease;
  }

  #top .contents-3 .items .item a::after {
    content: "";
    display: block;
    width: 42px;
    height: auto;
    aspect-ratio: 45.47/5.03;
    background-image: url(/wp/wp-content/themes/west-jpd/image/yaji.png);
    background-repeat: no-repeat;
    background-size: 100% 100%;
    position: absolute;
    top: 50%;
    right: -17px;
    transform: translateY(-50%);
    -webkit-transform: translateY(-50%);
    -ms-transform: translateY(-50%);
    transition: 0.4 ease;
  }

  #top .contents-3 .items .item a:hover {
    opacity: 0.7;
  }

  #top .contents-4 {
    position: relative;
    width: 100%;
    height: auto;
    margin-bottom: 120px;
  }

  #top .contents-4 .items {
    display: grid;
    grid-template-columns: 710px 515px;
    -moz-column-gap: 55px;
    column-gap: 55px;
    row-gap: 25px;
    justify-content: center;
  }

  #top .contents-4 .items a {
    transition: 0.4s ease;
  }

  #top .contents-4 .items a:hover {
    opacity: 0.7;
  }

  #top .contents-4 .items .item-1 {
    grid-column: 1/2;
    grid-row: 1/4;
    display: grid;
    grid-template-columns: 1fr 315px;
    align-items: center;
    background-color: rgba(13, 14, 96, 0.2);
    border-radius: 15px;
    overflow: hidden;
  }

  #top .contents-4 .items .item-1 .texts {
    padding-left: 30px;
    box-sizing: border-box;
  }

  #top .contents-4 .items .item-1 .texts h2 {
    margin-bottom: 15px;
    font-size: 30px;
    font-weight: bold;
    line-height: 1.21;
    letter-spacing: 4.8px;
    text-align: left;
    color: #0d0e60;
  }

  #top .contents-4 .items .item-1 .texts p {
    font-size: 14px;
    font-weight: bold;
    line-height: 1.6;
    letter-spacing: 2px;
    text-align: left;
    color: #0d0e60;
  }

  #top .contents-4 .items .item-1 .img img {
    width: 100%;
    height: auto;
    aspect-ratio: 326.88/355.14;
    -o-object-fit: cover;
    object-fit: cover;
  }

  #top .contents-4 .items .item-2 {
    grid-column: 2/3;
    grid-row: 1/2;
    display: grid;
    grid-template-columns: 1fr 115px;
    align-items: center;
    background-color: rgba(128, 167, 206, 0.2);
  }

  #top .contents-4 .items .item-2 .texts {
    padding-left: 50px;
    box-sizing: border-box;
  }

  #top .contents-4 .items .item-2 .texts h2 {
    display: flex;
    gap: 30px;
    align-items: center;
  }

  #top .contents-4 .items .item-2 .texts h2 span {
    font-size: 41px;
    font-weight: bold;
    line-height: 1.75;
    letter-spacing: 1.7px;
    text-align: left;
    color: #5879a9;
  }

  #top .contents-4 .items .item-2 .texts h2 small {
    margin-top: 10px;
    font-size: 18px;
    font-weight: bold;
    line-height: 1.75;
    letter-spacing: 2.9px;
    text-align: left;
    color: #5879a9;
  }

  #top .contents-4 .items .item-2 .img img {
    width: 100%;
    height: auto;
    aspect-ratio: 122.87/101.42;
    -o-object-fit: cover;
    object-fit: cover;
  }

  #top .contents-4 .items .item-3 {
    grid-column: 2/3;
    grid-row: 2/3;
    display: grid;
    grid-template-columns: 1fr 115px;
    align-items: center;
    background-color: rgba(50, 122, 34, 0.2);
  }

  #top .contents-4 .items .item-3 .texts {
    padding-left: 50px;
    box-sizing: border-box;
  }

  #top .contents-4 .items .item-3 .texts h2 {
    display: flex;
    gap: 30px;
    align-items: center;
  }

  #top .contents-4 .items .item-3 .texts h2 span {
    font-size: 41px;
    font-weight: bold;
    line-height: 1.75;
    letter-spacing: 1.7px;
    text-align: left;
    color: #327a22;
  }

  #top .contents-4 .items .item-3 .texts h2 small {
    margin-top: 10px;
    font-size: 18px;
    font-weight: bold;
    line-height: 1.75;
    letter-spacing: 2.9px;
    text-align: left;
    color: #327a22;
  }

  #top .contents-4 .items .item-3 .img img {
    width: 100%;
    height: auto;
    aspect-ratio: 122.87/101.42;
    -o-object-fit: cover;
    object-fit: cover;
  }

  #top .contents-4 .items .item-4 {
    grid-column: 2/3;
    grid-row: 3/4;
    display: flex;
    gap: 20px;
  }

  #top .contents-4 .items .item-4 p {
    font-size: 14px;
    font-weight: bold;
    line-height: 1.75;
    letter-spacing: 2.2px;
    text-align: left;
    color: #000;
  }

  #top .contents-5 {
    position: relative;
    width: 100%;
    height: 405px;
  }

  #top .contents-5 .main-image {
    width: 100%;
    height: 100%;
  }

  #top .contents-5 .main-image img {
    width: 100%;
    height: 100%;
    -o-object-fit: cover;
    object-fit: cover;
  }

  #top .contents-5 .sub-img-1 {
    display: block;
    width: 340px;
    position: absolute;
    top: -90px;
    left: calc(50% - 640px);
    z-index: 1;
  }

  #top .contents-5 .sub-img-2 {
    display: block;
    width: 80px;
    position: absolute;
    top: -130px;
    left: calc(50% + 450px);
    z-index: -1;
  }

  #top .contents-5 .sub-img-3 {
    display: block;
    width: 80px;
    position: absolute;
    top: -170px;
    left: calc(50% + 560px);
    z-index: -1;
  }

  #top .contents-5 .video-container {
    width: 295px;
    height: auto;
    position: absolute;
    top: 95px;
    left: calc(50% + 340px);
    cursor: pointer;
    /* 再生中：中央固定表示（controlsはそのまま表示） */
  }

  #top .contents-5 .video-container video {
    width: 100%;
    height: auto;
    display: block;
  }

  #top .contents-5 .video-container .play-button {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    background: rgba(0, 0, 0, 0.5);
    border-radius: 50%;
    width: 60px;
    height: 60px;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: opacity 0.3s;
    cursor: pointer;
  }

  #top .contents-5 .video-container .play-button svg {
    width: 60%;
    height: 60%;
  }

  #top .contents-5 .video-container .play-button:hover {
    opacity: 0.8;
  }

  #top .contents-5 .video-container .close-button {
    /* 右上の× */
    display: none;
    position: absolute;
    top: 10px;
    right: 10px;
    width: 32px;
    height: 32px;
    background: rgba(0, 0, 0, 0.5);
    border: none;
    border-radius: 50%;
    cursor: pointer;
    z-index: 10002;
  }

  #top .contents-5 .video-container .close-button span {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 60%;
    height: 2px;
    background: #fff;
    transform-origin: center;
  }

  #top .contents-5 .video-container .close-button span:first-child {
    transform: translate(-50%, -50%) rotate(45deg);
  }

  #top .contents-5 .video-container .close-button span:last-child {
    transform: translate(-50%, -50%) rotate(-45deg);
  }

  #top .contents-5 .video-container .close-button:hover {
    opacity: 0.8;
  }

  #top .contents-5 .video-container .video-overlay {
    display: none;
  }

  #top .contents-5 .video-container.fixed-center {
    position: fixed;
    top: 50%;
    left: 50%;
    width: 980px;
    max-width: 95vw;
    transform: translate(-50%, -50%);
    background: #000;
    z-index: 10001;
    cursor: default;
    /* 再生後は隠す */
  }

  #top .contents-5 .video-container.fixed-center video {
    width: 100%;
    height: auto;
    display: block;
    position: relative;
    z-index: 10001;
    /* ★ 動画(=controls含む)を最前面に */
  }

  #top .contents-5 .video-container.fixed-center .play-button {
    display: none;
  }

  #top .contents-5 .video-container.fixed-center .close-button {
    display: block;
  }

  #top .contents-5 .video-container.fixed-center .video-overlay {
    display: block;
    width: 100vw;
    height: 100vh;
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    background: rgba(0, 0, 0, 0.75);
    z-index: 10000;
    /* ★ 動画より下 */
  }
}

/*SP*/
@media screen and (max-width: 1024px) {
  #top {
    position: relative;
    width: 100%;
    height: auto;
  }

  #top .kv {
    position: relative;
    width: 100%;
    margin-bottom: 65px;
    /* 無限横スクロールアニメーション */
    /* ドローンのふわふわ上下アニメ */
    /* 上下にゆっくり浮遊するキーアニメーション */
    /* ユーザーが動きを減らす設定にしている場合は停止 */
  }

  #top .kv .kv-slider {
    display: flex;
    width: 200%;
    /* 画像2枚分 */
    height: 400px;
    animation: slide 90s linear infinite;
  }

  #top .kv .kv-slider img {
    width: 50%;
    /* 画像2枚分なので1枚あたり半分 */
    height: 100%;
    -o-object-fit: cover;
    object-fit: cover;
  }

  @keyframes slide {
    0% {
      transform: translateX(0);
    }

    100% {
      transform: translateX(-50%);
    }
  }

  #top .kv h2 {
    position: absolute;
    top: 10px;
    left: 20px;
    font-size: 26px;
    font-weight: 900;
    line-height: 1.75;
    letter-spacing: 4.7px;
    text-align: left;
    color: #0d0e60;
  }

  #top .kv .kv-img-1 {
    display: block;
    width: 90px;
    position: absolute;
    top: 130px;
    left: 50px;
    animation: kv-float-y 3.8s ease-in-out infinite;
    will-change: transform;
    transform: translateZ(0);
  }

  @keyframes kv-float-y {

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

    50% {
      transform: translateY(-14px);
    }

    /* 浮き上がる量。好みで調整 */
  }
}

@media screen and (max-width: 1024px) and (prefers-reduced-motion: reduce) {
  #top .kv .kv-img-1 {
    animation: none;
  }
}

@media screen and (max-width: 1024px) {
  #top .kv .kv-img-2 {
    display: block;
    width: 30px;
    position: absolute;
    bottom: -45px;
    left: calc(50% - 150px);
    z-index: 1;
  }

  #top .kv .kv-img-3 {
    display: block;
    width: 110px;
    position: absolute;
    bottom: -35px;
    left: calc(50% - 70px);
    z-index: 1;
  }

  #top .kv .kv-img-4 {
    display: block;
    width: 100px;
    position: absolute;
    bottom: -80px;
    left: calc(50% + 70px);
    z-index: 1;
  }

  #top .kv .video-container {
    width: 275px;
    height: auto;
    position: absolute;
    top: 110px;
    left: 50%;
    transform: translateX(-50%);
    -webkit-transform: translateX(-50%);
    -ms-transform: translateX(-50%);
    cursor: pointer;
    /* 再生中：中央固定表示（controlsはそのまま表示） */
  }

  #top .kv .video-container video {
    width: 100%;
    height: auto;
    display: block;
  }

  #top .kv .video-container .play-button {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    background: rgba(0, 0, 0, 0.5);
    border-radius: 50%;
    width: 60px;
    height: 60px;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: opacity 0.3s;
    cursor: pointer;
  }

  #top .kv .video-container .play-button svg {
    width: 60%;
    height: 60%;
  }

  #top .kv .video-container .play-button:hover {
    opacity: 0.8;
  }

  #top .kv .video-container .close-button {
    /* 右上の× */
    display: none;
    position: absolute;
    top: 10px;
    right: 10px;
    width: 32px;
    height: 32px;
    background: rgba(0, 0, 0, 0.5);
    border: none;
    border-radius: 50%;
    cursor: pointer;
    z-index: 10002;
  }

  #top .kv .video-container .close-button span {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 60%;
    height: 2px;
    background: #fff;
    transform-origin: center;
  }

  #top .kv .video-container .close-button span:first-child {
    transform: translate(-50%, -50%) rotate(45deg);
  }

  #top .kv .video-container .close-button span:last-child {
    transform: translate(-50%, -50%) rotate(-45deg);
  }

  #top .kv .video-container .video-overlay {
    display: none;
  }

  #top .kv .video-container.fixed-center {
    position: fixed;
    top: 50%;
    left: 50%;
    width: 980px;
    max-width: 95vw;
    transform: translate(-50%, -50%);
    background: #000;
    z-index: 10001;
    cursor: default;
    /* 再生後は隠す */
  }

  #top .kv .video-container.fixed-center video {
    width: 100%;
    height: auto;
    display: block;
    position: relative;
    z-index: 10001;
    /* ★ 動画(=controls含む)を最前面に */
  }

  #top .kv .video-container.fixed-center .play-button {
    display: none;
  }

  #top .kv .video-container.fixed-center .close-button {
    display: block;
  }

  #top .kv .video-container.fixed-center .video-overlay {
    display: block;
    width: 100vw;
    height: 100vh;
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    background: rgba(0, 0, 0, 0.75);
    z-index: 10000;
    /* ★ 動画より下 */
  }

  #top .contents-1 {
    position: relative;
    width: 315px;
    height: auto;
    margin: 0 auto 40px;
  }

  #top .contents-1 .news {
    position: relative;
    width: 100%;
    height: auto;
  }

  #top .contents-1 .news h2 {
    margin-bottom: 20px;
  }

  #top .contents-1 .news h2 strong {
    display: block;
    font-size: 32px;
    font-weight: bold;
    line-height: 1.75;
    letter-spacing: 1px;
    text-align: left;
    color: #0d0e60;
  }

  #top .contents-1 .news h2 small {
    display: block;
    margin-top: -10px;
    font-size: 10px;
    font-weight: bold;
    line-height: 1.75;
    letter-spacing: 2px;
    text-align: left;
    color: #0d0e60;
  }

  #top .contents-1 .news .items {
    position: relative;
    width: 100%;
    margin-bottom: 20px;
  }

  #top .contents-1 .news .items a.item {
    display: flex;
    flex-direction: column;
    gap: 5px;
    justify-items: start;
    margin-bottom: 10px;
  }

  #top .contents-1 .news .items a.item time,
  #top .contents-1 .news .items a.item p.title {
    display: block;
    font-size: 13px;
    font-weight: bold;
    line-height: 1.75;
    letter-spacing: 2px;
    text-align: left;
    color: #000;
  }

  #top .contents-1 .news .items a.item time {
    white-space: nowrap;
  }

  #top .contents-1 .news a.btn {
    display: block;
    width: 165px;
    padding: 0 25px;
    font-size: 13px;
    font-weight: bold;
    line-height: 40px;
    letter-spacing: 2px;
    text-align: left;
    color: #fff;
    white-space: nowrap;
    background-color: #0d0e60;
    border-radius: 15px;
  }

  #top .contents-2 {
    position: relative;
    width: 315px;
    height: auto;
    margin: 0 auto 40px;
  }

  #top .contents-2 h2 {
    margin-bottom: 20px;
  }

  #top .contents-2 h2 strong {
    display: block;
    font-size: 32px;
    font-weight: bold;
    line-height: 1.75;
    letter-spacing: 1px;
    text-align: left;
    color: #0d0e60;
  }

  #top .contents-2 h2 small {
    display: block;
    margin-top: -10px;
    font-size: 10px;
    font-weight: bold;
    line-height: 1.75;
    letter-spacing: 2px;
    text-align: left;
    color: #0d0e60;
  }

  #top .contents-2 p {
    margin-bottom: 20px;
    font-size: 12px;
    font-weight: bold;
    line-height: 1.75;
    letter-spacing: 1px;
    text-align: left;
    color: #000;
  }

  #top .contents-2 .top_img-1 {
    display: block;
    width: 130px;
    position: absolute;
    top: -20px;
    left: calc(50% + 30px);
    z-index: 1;
  }

  #top .contents-2 .top_img-2 {
    display: block;
    width: 705px;
  }

  #top .contents-3 {
    position: relative;
    width: 100%;
    height: auto;
    margin-bottom: 50px;
    padding-top: 20px;
    padding-bottom: 30px;
    background-color: rgba(13, 14, 96, 0.1);
  }

  #top .contents-3::before {
    content: "";
    display: block;
    width: 100px;
    height: auto;
    aspect-ratio: 338.98/274.69;
    background-image: url(/wp/wp-content/themes/west-jpd/image/top_3.png);
    background-repeat: no-repeat;
    background-size: 100% 100%;
    position: absolute;
    top: -15px;
    left: calc(50% - 185px);
  }

  #top .contents-3::after {
    content: "";
    display: block;
    width: 100px;
    height: auto;
    aspect-ratio: 329.19/167.06;
    background-image: url(/wp/wp-content/themes/west-jpd/image/top_4.png);
    background-repeat: no-repeat;
    background-size: 100% 100%;
    position: absolute;
    top: 10px;
    left: calc(50% + 85px);
  }

  #top .contents-3 h2 {
    margin-bottom: 20px;
  }

  #top .contents-3 h2 strong {
    display: block;
    font-size: 32px;
    font-weight: bold;
    line-height: 1.75;
    letter-spacing: 1px;
    text-align: center;
    color: #0d0e60;
  }

  #top .contents-3 h2 small {
    display: block;
    margin-top: -10px;
    font-size: 10px;
    font-weight: bold;
    line-height: 1.75;
    letter-spacing: 2px;
    text-align: center;
    color: #0d0e60;
  }

  #top .contents-3 .texts {
    margin-bottom: 25px;
  }

  #top .contents-3 .texts h3 {
    margin-bottom: 15px;
    font-size: 20px;
    font-weight: bold;
    line-height: 1.75;
    letter-spacing: 4px;
    text-align: center;
    color: #000;
  }

  #top .contents-3 .texts p {
    font-size: 13px;
    font-weight: bold;
    line-height: 1.75;
    letter-spacing: 3px;
    text-align: center;
    color: #000;
  }

  #top .contents-3 .items {
    display: flex;
    justify-content: flex-start;
    gap: 45px;
    width: 315px;
    margin: 0 auto;
    padding-bottom: 30px;
    overflow-x: scroll;
    overflow-y: auto;
    list-style: none;
    scrollbar-width: auto;
    /* thin / none ではなく auto */
  }

  #top .contents-3 .items::-webkit-scrollbar-track {
    background: #fff;
  }

  #top .contents-3 .items::-webkit-scrollbar-thumb {
    background: #999;
  }

  #top .contents-3 .items .item {
    cursor: pointer;
    display: grid;
    grid-template-columns: 160px;
    grid-template-rows: 90px auto auto;
  }

  #top .contents-3 .items .item:nth-of-type(1) img {
    width: 63px;
  }

  #top .contents-3 .items .item img {
    display: block;
    width: 77px;
    margin: 0 auto 10px;
  }

  #top .contents-3 .items .item h4 {
    margin-bottom: 15px;
    font-size: 14px;
    font-weight: bold;
    line-height: 1.75;
    letter-spacing: 4px;
    text-align: center;
    color: #000;
  }

  #top .contents-3 .items .item a {
    display: block;
    width: 100%;
    height: auto;
    font-size: 13px;
    font-weight: bold;
    line-height: 28px;
    letter-spacing: 0.58px;
    text-align: center;
    color: #fff;
    background-color: #000;
    position: relative;
  }

  #top .contents-3 .items .item a::after {
    content: "";
    display: block;
    width: 35px;
    height: auto;
    aspect-ratio: 45.47/5.03;
    background-image: url(/wp/wp-content/themes/west-jpd/image/yaji.png);
    background-repeat: no-repeat;
    background-size: 100% 100%;
    position: absolute;
    top: 50%;
    right: -17px;
    transform: translateY(-50%);
    -webkit-transform: translateY(-50%);
    -ms-transform: translateY(-50%);
  }

  #top .contents-4 {
    position: relative;
    width: 100%;
    height: auto;
    margin-bottom: 60px;
  }

  #top .contents-4 .items {
    display: grid;
    grid-template-columns: 315px;
    row-gap: 15px;
    justify-content: center;
  }

  #top .contents-4 .items .item-1 {
    display: grid;
    grid-template-columns: 1fr;
    align-items: center;
    row-gap: 20px;
    background-color: rgba(13, 14, 96, 0.2);
    border-radius: 7.5px;
    overflow: hidden;
  }

  #top .contents-4 .items .item-1 .texts {
    grid-column: 1/2;
    grid-row: 2/3;
    padding: 0 20px 20px;
    box-sizing: border-box;
  }

  #top .contents-4 .items .item-1 .texts h2 {
    margin-bottom: 7.5px;
    font-size: 20px;
    font-weight: bold;
    line-height: 1.21;
    letter-spacing: 3px;
    text-align: left;
    color: #0d0e60;
  }

  #top .contents-4 .items .item-1 .texts p {
    font-size: 13px;
    font-weight: bold;
    line-height: 1.6;
    letter-spacing: 1.8px;
    text-align: left;
    color: #0d0e60;
  }

  #top .contents-4 .items .item-1 .img {
    grid-column: 1/2;
    grid-row: 1/2;
  }

  #top .contents-4 .items .item-1 .img img {
    width: 100%;
    height: auto;
    aspect-ratio: 5/4;
    -o-object-fit: cover;
    object-fit: cover;
  }

  #top .contents-4 .items .item-2 {
    display: grid;
    grid-template-columns: 1fr 115px;
    align-items: center;
    background-color: rgba(128, 167, 206, 0.2);
  }

  #top .contents-4 .items .item-2 .texts {
    padding-left: 20px;
    box-sizing: border-box;
  }

  #top .contents-4 .items .item-2 .texts h2 {
    display: flex;
    gap: 15px;
    align-items: center;
  }

  #top .contents-4 .items .item-2 .texts h2 span {
    font-size: 20px;
    font-weight: bold;
    line-height: 1.75;
    letter-spacing: 1px;
    text-align: left;
    color: #5879a9;
  }

  #top .contents-4 .items .item-2 .texts h2 small {
    margin-top: 6px;
    font-size: 13px;
    font-weight: bold;
    line-height: 1.75;
    letter-spacing: 2px;
    text-align: left;
    color: #5879a9;
  }

  #top .contents-4 .items .item-2 .img img {
    width: 100%;
    height: auto;
    aspect-ratio: 122.87/101.42;
    -o-object-fit: cover;
    object-fit: cover;
  }

  #top .contents-4 .items .item-3 {
    display: grid;
    grid-template-columns: 1fr 115px;
    align-items: center;
    background-color: rgba(50, 122, 34, 0.2);
  }

  #top .contents-4 .items .item-3 .texts {
    padding-left: 20px;
    box-sizing: border-box;
  }

  #top .contents-4 .items .item-3 .texts h2 {
    display: flex;
    gap: 15px;
    align-items: center;
  }

  #top .contents-4 .items .item-3 .texts h2 span {
    font-size: 20px;
    font-weight: bold;
    line-height: 1.75;
    letter-spacing: 1px;
    text-align: left;
    color: #327a22;
  }

  #top .contents-4 .items .item-3 .texts h2 small {
    margin-top: 6px;
    font-size: 13px;
    font-weight: bold;
    line-height: 1.75;
    letter-spacing: 2px;
    text-align: left;
    color: #327a22;
  }

  #top .contents-4 .items .item-3 .img img {
    width: 100%;
    height: auto;
    aspect-ratio: 122.87/101.42;
    -o-object-fit: cover;
    object-fit: cover;
  }

  #top .contents-4 .items .item-4 {
    display: flex;
    gap: 10px;
  }

  #top .contents-4 .items .item-4 p {
    font-size: 13px;
    font-weight: bold;
    line-height: 1.75;
    letter-spacing: 2px;
    text-align: left;
    color: #000;
  }

  #top .contents-5 {
    position: relative;
    width: 100%;
    height: 300px;
  }

  #top .contents-5 .main-image {
    width: 100%;
    height: 100%;
  }

  #top .contents-5 .main-image img {
    width: 100%;
    height: 100%;
    -o-object-fit: cover;
    object-fit: cover;
  }

  #top .contents-5 .sub-img-1 {
    display: block;
    width: 110px;
    position: absolute;
    top: -25px;
    left: calc(50% - 185px);
    z-index: 1;
  }

  #top .contents-5 .sub-img-2 {
    display: block;
    width: 25px;
    position: absolute;
    top: 0px;
    left: calc(50% + 0px);
    z-index: -1;
  }

  #top .contents-5 .sub-img-3 {
    display: block;
    width: 25px;
    position: absolute;
    top: -55px;
    left: calc(50% + 120px);
    z-index: -1;
  }

  #top .contents-5 .video-container {
    width: 275px;
    height: auto;
    position: absolute;
    top: 55px;
    left: 50%;
    transform: translateX(-50%);
    -webkit-transform: translateX(-50%);
    -ms-transform: translateX(-50%);
    cursor: pointer;
    /* 再生中：中央固定表示（controlsはそのまま表示） */
  }

  #top .contents-5 .video-container video {
    width: 100%;
    height: auto;
    display: block;
  }

  #top .contents-5 .video-container .play-button {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    background: rgba(0, 0, 0, 0.5);
    border-radius: 50%;
    width: 60px;
    height: 60px;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: opacity 0.3s;
    cursor: pointer;
  }

  #top .contents-5 .video-container .play-button svg {
    width: 60%;
    height: 60%;
  }

  #top .contents-5 .video-container .play-button:hover {
    opacity: 0.8;
  }

  #top .contents-5 .video-container .close-button {
    /* 右上の× */
    display: none;
    position: absolute;
    top: 10px;
    right: 10px;
    width: 32px;
    height: 32px;
    background: rgba(0, 0, 0, 0.5);
    border: none;
    border-radius: 50%;
    cursor: pointer;
    z-index: 10002;
  }

  #top .contents-5 .video-container .close-button span {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 60%;
    height: 2px;
    background: #fff;
    transform-origin: center;
  }

  #top .contents-5 .video-container .close-button span:first-child {
    transform: translate(-50%, -50%) rotate(45deg);
  }

  #top .contents-5 .video-container .close-button span:last-child {
    transform: translate(-50%, -50%) rotate(-45deg);
  }

  #top .contents-5 .video-container .video-overlay {
    display: none;
  }

  #top .contents-5 .video-container.fixed-center {
    position: fixed;
    top: 50%;
    left: 50%;
    width: 980px;
    max-width: 95vw;
    transform: translate(-50%, -50%);
    background: #000;
    z-index: 10001;
    cursor: default;
    /* 再生後は隠す */
  }

  #top .contents-5 .video-container.fixed-center video {
    width: 100%;
    height: auto;
    display: block;
    position: relative;
    z-index: 10001;
    /* ★ 動画(=controls含む)を最前面に */
  }

  #top .contents-5 .video-container.fixed-center .play-button {
    display: none;
  }

  #top .contents-5 .video-container.fixed-center .close-button {
    display: block;
  }

  #top .contents-5 .video-container.fixed-center .video-overlay {
    display: block;
    width: 100vw;
    height: 100vh;
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    background: rgba(0, 0, 0, 0.75);
    z-index: 10000;
    /* ★ 動画より下 */
  }
}

/*フッター*/
/*PC*/
@media screen and (min-width: 1025px) {
  footer {
    position: relative;
    width: 100%;
    height: auto;
    padding-top: 25px;
    padding-bottom: 50px;
    background-color: #0d0e60;
  }

  footer .head {
    display: grid;
    grid-template-columns: 420px 295px 305px;
    -moz-column-gap: 35px;
    column-gap: 35px;
    justify-content: center;
    align-items: center;
    margin-bottom: 25px;
  }

  footer .head .logo {
    width: 100%;
  }

  footer .head .logo img {
    width: 100%;
  }

  footer .head .tel p.p-1 {
    display: block;
    font-size: 11px;
    font-weight: bold;
    line-height: 1.75;
    letter-spacing: 3.56px;
    text-align: left;
    color: #fff;
    margin-bottom: -10px;
  }

  footer .head .tel a {
    display: flex;
    gap: 8px;
    align-items: center;
    font-size: 26px;
    font-weight: bold;
    line-height: 1.75;
    letter-spacing: 5px;
    text-align: left;
    color: #fff;
    white-space: nowrap;
  }

  footer .head .tel a img {
    width: 20px;
  }

  footer .head .mail {
    display: flex;
    gap: 18px;
    align-items: center;
    font-size: 16px;
    font-weight: bold;
    line-height: 45px;
    letter-spacing: 2.6px;
    text-align: left;
    color: #0d0e60;
    white-space: nowrap;
    padding: 0 15px;
    background-color: #fff;
    border-radius: 10px;
    transition: 0.4s ease;
  }

  footer .head .mail img {
    width: 30px;
  }

  footer .head .mail:hover {
    opacity: 0.7;
  }

  footer .bottom {
    display: grid;
    grid-template-columns: repeat(2, auto);
    -moz-column-gap: 30px;
    column-gap: 30px;
    justify-content: center;
    margin-bottom: 20px;
  }

  footer .bottom .texts {
    display: grid;
    grid-template-columns: repeat(4, min-content);
    row-gap: 10px;
    font-size: 15px;
    font-weight: bold;
    line-height: 1.75;
    letter-spacing: 2px;
    text-align: left;
    color: #fff;
    white-space: nowrap;
  }

  footer .bottom .texts .text-2,
  footer .bottom .texts .text-3 {
    padding-right: 20px;
  }

  footer p.copy {
    font-size: 11px;
    font-weight: bold;
    line-height: 1.75;
    letter-spacing: 2px;
    text-align: center;
    color: #fff;
  }
}

/*SP*/
@media screen and (max-width: 1024px) {
  footer {
    position: relative;
    width: 100%;
    height: auto;
    padding-top: 15px;
    padding-bottom: 30px;
    background-color: #0d0e60;
  }

  footer .head {
    display: grid;
    grid-template-columns: 315px;
    row-gap: 15px;
    justify-content: center;
    align-items: center;
    margin-bottom: 15px;
  }

  footer .head .logo {
    width: 100%;
  }

  footer .head .logo img {
    width: 100%;
  }

  footer .head .tel p.p-1 {
    display: block;
    font-size: 10px;
    font-weight: bold;
    line-height: 1.75;
    letter-spacing: 3.56px;
    text-align: center;
    color: #fff;
  }

  footer .head .tel a {
    display: flex;
    gap: 8px;
    justify-content: center;
    align-items: center;
    font-size: 22px;
    font-weight: bold;
    line-height: 1.75;
    letter-spacing: 2.5px;
    text-align: left;
    color: #fff;
    white-space: nowrap;
  }

  footer .head .tel a img {
    width: 18px;
  }

  footer .head .mail {
    display: flex;
    gap: 10px;
    align-items: center;
    width: 216px;
    margin: 0 auto;
    font-size: 13px;
    font-weight: bold;
    line-height: 36px;
    letter-spacing: 2.2px;
    text-align: left;
    color: #0d0e60;
    white-space: nowrap;
    padding: 0 10px;
    background-color: #fff;
    border-radius: 8px;
  }

  footer .head .mail img {
    width: 24px;
  }

  footer .bottom {
    display: flex;
    justify-content: flex-start;
    gap: 15px;
    width: 315px;
    margin: 0 auto 20px;
    padding-bottom: 20px;
    overflow-x: scroll;
    overflow-y: auto;
    list-style: none;
    scrollbar-width: auto;
  }

  footer .bottom .texts {
    display: grid;
    grid-template-columns: repeat(4, min-content);
    row-gap: 10px;
    font-size: 13px;
    font-weight: bold;
    line-height: 1.75;
    letter-spacing: 1.5px;
    text-align: left;
    color: #fff;
    white-space: nowrap;
  }

  footer .bottom .texts .text-2,
  footer .bottom .texts .text-3 {
    padding-right: 10px;
  }

  footer p.copy {
    font-size: 10px;
    font-weight: bold;
    line-height: 1.75;
    letter-spacing: 2px;
    text-align: center;
    color: #fff;
  }
}

/*お知らせ*/
/*PC*/
@media screen and (min-width: 1025px) {
  #post .topNews {
    position: relative;
    width: 100%;
    height: auto;
    margin-bottom: 60px;
  }

  #post .topNews .topNews__container {
    position: relative;
    width: 1100px;
    height: auto;
    margin: 0 auto;
    padding: 30px 35px;
    box-sizing: border-box;
    background: #ffffff;
    border-radius: 10px;
  }

  #post .topNews .topNews__container h3.title {
    margin-bottom: 20px;
    color: #0d0e60;
    font-size: 26px;
    line-height: 1.5;
  }
}

/*SP*/
@media screen and (max-width: 1024px) {
  #post .topNews {
    position: relative;
    width: 100%;
    height: auto;
    margin-bottom: 20px;
  }

  #post .topNews .topNews__container {
    position: relative;
    width: 350px;
    height: auto;
    margin: 0 auto;
    padding: 15px 20px;
    box-sizing: border-box;
    background: #ffffff;
    border-radius: 10px;
  }

  #post .topNews .topNews__container h3.title {
    margin-bottom: 20px;
    color: #0d0e60;
    font-size: 18px;
    line-height: 1.5;
  }
}

/*会社案内*/
/*PC*/
@media screen and (min-width: 1025px) {

  .line-border {
    border-bottom: 1px solid #e5e7eb;
    margin-bottom: 8px;
    padding-bottom: 4px;
  }

  #company {
    position: relative;
    width: 100%;
    height: auto;
    margin-top: 40px;
    padding-bottom: 150px;
  }

/*   #company::after {
    content: "";
    display: block;
    width: 100%;
    height: 826.91px;
    background-image: url(/wp/wp-content/themes/west-jpd/image/page_bg.png);
    background-repeat: no-repeat;
    background-size: cover;
    position: absolute;
    bottom: 0;
    left: 50%;
    z-index: -1;
    transform: translateX(-50%);
    -webkit-transform: translateX(-50%);
    -ms-transform: translateX(-50%);
  } */

  #company .kv .content-1 {
    display: grid;
    grid-template-columns: 920px 320px;
    justify-content: center;
    margin-bottom: 40px;
  }

  #company .kv .content-1 .texts h2 {
    margin-bottom: 45px;
  }

  #company .kv .content-1 .texts h2 strong {
    display: block;
    font-size: 55px;
    font-weight: bold;
    line-height: 1.75;
    letter-spacing: 2.2px;
    text-align: left;
    color: #0d0e60;
  }

  #company .kv .content-1 .texts h2 small {
    display: block;
    margin-top: -15px;
    font-size: 16px;
    font-weight: bold;
    line-height: 1.75;
    letter-spacing: 4.7px;
    text-align: left;
    color: #0d0e60;
  }

  #company .kv .content-1 .texts .p-texts {
    display: grid;
    grid-template-columns: 140px 43px 1fr;
  }

  #company .kv .content-1 .texts .p-texts p {
    font-size: 18px;
    font-weight: bold;
    line-height: 1.99;
    letter-spacing: 5.3px;
    text-align: left;
    color: #000;
  }

  #company .kv .sub-img-1 {
    display: block;
    width: 90px;
    position: absolute;
    top: 165px;
    left: calc(50% + 170px);
    z-index: 1;
  }

  #company .kv .sub-img-2 {
    display: block;
    width: 110px;
    position: absolute;
    top: 70px;
    left: calc(50% + 20px);
    z-index: 1;
  }

  #company .kv .sub-img-3 {
    display: block;
    width: 120px;
    position: absolute;
    top: 0;
    left: calc(50% - 160px);
    z-index: 1;
  }

  #company .contents-1 {
    position: relative;
    width: 1240px;
    height: auto;
    margin: 0 auto 45px;
  }

  #company .contents-1 h2 {
    margin-bottom: 18px;
    font-size: 28px;
    font-weight: bold;
    line-height: 1.75;
    letter-spacing: 1.2px;
    text-align: left;
    color: #0d0e60;
  }

  #company .contents-1 iframe {
    width: 100%;
    height: 585px;
  }

  #company .contents-2 {
    position: relative;
    width: 1240px;
    height: auto;
    margin: 0 auto 50px;
    overflow: hidden;
  }

  /* 全体ラッパー */
  .com-table {
    margin: 0 auto 40px;
    display: grid;
    font-size: 18px;
    color: #000;
  }

  /* 共通テーブルスタイル */
  .company-table {
    width: 100%;
    border-collapse: collapse;
    background: #fff;
    overflow: hidden;
    border-bottom: 1px solid #e2e8f0;
  }

  /* 左側の見出しセル（事業所・資本金など） */
  .company-table tbody th {
    width: 160px;
    padding: 20px;
    background: #f5f7fb;
    border-bottom: 1px solid #e2e8f0;
    text-align: left;
    font-weight: 600;
    vertical-align: top;
  }

  /* 通常セル */
  .company-table td {
    padding: 20px;
    border-bottom: 1px solid #e2e8f0;
    line-height: 1.7;
  }

  /* thead（有資格者の各部門） */
  .company-table thead th {
    padding: 20px;
    background: linear-gradient(90deg, #005b9f, #008fd6);
    color: #fff;
    text-align: left;
    font-weight: 600;
    font-size: 18px;
    vertical-align: top;
  }

  /* 最後の行のボーダー消し */
  .company-table tbody tr:last-child th,
  .company-table tbody tr:last-child td {
    border-bottom: none;
  }

  /* 事業所一覧の中でのstrongだけ少し強調 */
  .company-table td strong {
    font-weight: 700;
    color: #111827;
  }

  /* 有資格者の左見出し（他のthとテイストを揃えるなら任意で） */
  .company-table .qual-heading {
    vertical-align: top;
  }

  /* 部門全体をグリッドで3カラム（PC）、1カラム（SP）に */
  .qual-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px 24px;
  }

  /* 各部門のブロック */
  .qual-block h4 {
    font-size: 18px;
    font-weight: 700;
    color: #327A22;
    margin-bottom: 8px;
    padding-bottom: 4px;
    border-bottom: 1px solid #e5e7eb;
  }

  .qual-block ul {
    list-style: none;
    margin: 0;
    padding: 0;
  }

  /* 1行に「資格名」と「人数」を左右に振り分け */
  .qual-block li {
    display: flex;
    justify-content: space-between;
    gap: 8px;
    padding: 2px 0;
    font-size: 18px;
  }

  .qual-block li span:first-child {
    flex: 1;
  }

  .qual-block li span:last-child {
    white-space: nowrap;
  }

  #company .contents-2 .slider {
    display: flex;
    width: 200%;
    /* 画像2枚分 */
    animation: slide 90s linear infinite;
  }

  #company .contents-2 .slider img {
    width: 41%;
    /* 画像2枚分なので1枚あたり半分 */
    height: 100%;
    -o-object-fit: cover;
    object-fit: cover;
  }

  @keyframes slide {
    0% {
      transform: translateX(0);
    }

    100% {
      transform: translateX(-50%);
    }
  }

  #company .contents-3 {
    position: relative;
    width: 100%;
    height: auto;
    padding: 30px 0;
    background: rgba(13, 14, 96, 0.1);
  }

  #company .contents-3 h2 {
    display: block;
    width: 1240px;
    height: auto;
    margin: 0 auto 45px;
  }

  #company .contents-3 h2 strong {
    display: block;
    font-size: 55px;
    font-weight: bold;
    line-height: 1.75;
    letter-spacing: 2.2px;
    text-align: left;
    color: #0d0e60;
  }

  #company .contents-3 h2 small {
    display: block;
    margin-top: -15px;
    font-size: 16px;
    font-weight: bold;
    line-height: 1.75;
    letter-spacing: 4.7px;
    text-align: left;
    color: #0d0e60;
  }

  #company .contents-3 .main-img {
    display: block;
    width: 1065px;
    height: auto;
    margin: 0 auto;
  }

  #company .contents-3 .sub-img {
    display: block;
    width: 310px;
    position: absolute;
    bottom: 160px;
    left: calc(50% - 620px);
    z-index: 1;
  }

  #company .contents-4 {
    position: relative;
    width: 1240px;
    height: auto;
    margin: 0 auto 80px;
  }

  #company .contents-4 h2 {
    margin-bottom: 45px;
  }

  #company .contents-4 h2 strong {
    display: block;
    font-size: 55px;
    font-weight: bold;
    line-height: 1.75;
    letter-spacing: 2.2px;
    text-align: left;
    color: #0d0e60;
  }

  #company .contents-4 h2 small {
    display: block;
    margin-top: -15px;
    font-size: 16px;
    font-weight: bold;
    line-height: 1.75;
    letter-spacing: 4.7px;
    text-align: left;
    color: #0d0e60;
  }

  #company .contents-4 .p-texts {
    display: grid;
    grid-template-columns: 90px 60px 60px 35px 1fr;
  }

  #company .contents-4 .p-texts p {
    font-size: 18px;
    font-weight: bold;
    line-height: 1.99;
    letter-spacing: 5.3px;
    text-align: left;
    color: #000;
  }

  #company .contents-4 .sub-img-1 {
    display: block;
    width: 90px;
    position: absolute;
    top: 165px;
    left: calc(50% + 170px);
    z-index: 1;
  }

  #company .contents-5 {
    position: relative;
    width: 100%;
    height: 970px;
    background-image: url(/wp/wp-content/themes/west-jpd/image/com-9.png);
    background-repeat: no-repeat;
    background-size: cover;
background-position: center 0px;
        margin-top: -200px;
  }

  #company .contents-5 img {
    display: block;
    width: 430px;
    position: absolute;
    top: 50px;
    left: calc(50% - 620px);
    z-index: 1;
  }

  #company .contents-5 .texts {
    position: relative;
    width: 1240px;
    height: auto;
    margin: 0 auto;
    padding-top: 255px;
  }

  #company .contents-5 .texts h2 {
    display: block;
    width: 715px;
    margin: 0 0 40px auto;
    font-size: 30px;
    font-weight: bold;
    line-height: 1.06;
    letter-spacing: 0;
    text-align: left;
    color: #0d0e60;
  }

  #company .contents-5 .texts p {
    display: block;
    width: 715px;
    margin: 0 0 0 auto;
    font-size: 19px;
    font-weight: bold;
    line-height: 1.67;
    letter-spacing: 0;
    text-align: left;
    color: #000;
  }
}

/*SP*/
@media screen and (max-width: 1024px) {
  #company {
    position: relative;
    width: 100%;
    height: auto;
    /* padding-bottom: calc(620px / 2); */
  }



  #company .kv {
    position: relative;
    width: 315px;
    height: auto;
    margin: 0 auto 20px;
  }

  #company .kv .content-1 .texts h2 {
    margin-bottom: 20px;
  }

  #company .kv .content-1 .texts h2 strong {
    display: block;
    font-size: 32px;
    font-weight: bold;
    line-height: 1.75;
    letter-spacing: 1px;
    text-align: left;
    color: #0d0e60;
  }

  #company .kv .content-1 .texts h2 small {
    display: block;
    margin-top: -10px;
    font-size: 10px;
    font-weight: bold;
    line-height: 1.75;
    letter-spacing: 2px;
    text-align: left;
    color: #0d0e60;
  }

  #company .kv .content-1 .texts .p-texts {
    display: grid;
    grid-template-columns: 85px 20px 1fr;
  }

  #company .kv .content-1 .texts .p-texts p {
    font-size: 13px;
    font-weight: bold;
    line-height: 1.99;
    letter-spacing: 2px;
    text-align: left;
    color: #000;
  }

  #company .kv .content-1 img {
    width: 100%;
    margin-bottom: 10px;
  }

  #company .kv .sub-img-1 {
    display: none;
  }

  #company .kv .sub-img-2 {
    display: block;
    width: 90px;
    position: absolute;
    top: 70px;
    left: calc(50% + 55px);
    z-index: 1;
  }

  #company .kv .sub-img-3 {
    display: none;
  }

  #company .contents-1 {
    position: relative;
    width: 315px;
    height: auto;
    margin: 0 auto 25px;
  }

  #company .contents-1 h2 {
    margin-bottom: 10px;
    font-size: 18px;
    font-weight: bold;
    line-height: 1.75;
    letter-spacing: 0.5px;
    text-align: left;
    color: #0d0e60;
  }

  #company .contents-1 iframe {
    width: 100%;
    height: 250px;
  }

  #company .contents-2 {
    position: relative;
    width: 315px;
    height: auto;
    margin: 0 auto 25px;
    overflow: hidden;
    /* 無限横スクロールアニメーション */
  }

  /* 横スクロールラッパー */
  .com-table-scroll {
    width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    margin-bottom: 20px;
    padding-bottom: 20px;
  }

  /* 全体ラッパーを幅固定にしない */
  .com-table {
    display: grid;
    min-width: 600px;
    /* ← SPで横スクロールさせるために必要 */
    font-size: 13px;
    color: #000;
  }

  /* 共通テーブル */
  .company-table {
    width: 100%;
    border-collapse: collapse;
    background: #fff;
    overflow: hidden;
    border-bottom: 1px solid #e2e8f0;
    min-width: 600px;
    /* ← 各tableにも横幅を確保すると安定 */
  }

  /* 左側の見出しセル */
  .company-table tbody th {
    width: 160px;
    padding: 20px;
    background: #f5f7fb;
    border-bottom: 1px solid #e2e8f0;
    text-align: left;
    font-weight: 600;
    vertical-align: top;
    font-size: 13px;
    white-space: nowrap;
  }

  /* 通常セル */
  .company-table td {
    padding: 20px;
    border-bottom: 1px solid #e2e8f0;
    line-height: 1.7;
    font-size: 13px;
  }

  /* 【有資格者】部門のグリッド */
  .qual-grid {
    display: grid;
    grid-template-columns: repeat(3, min-content);
    gap: 16px 24px;
  }

  .qual-block {
    white-space: nowrap;
  }

  .qual-block h4 {
    font-size: 13px;
    font-weight: 700;
    color: #327A22;
    margin-bottom: 8px;
    padding-bottom: 4px;
    border-bottom: 1px solid #e5e7eb;
  }

  .qual-block li {
    display: flex;
    justify-content: space-between;
    gap: 8px;
    padding: 2px 0;
    font-size: 13px;
  }

  .qual-block li span:first-child {
    flex: 1;
  }

  .qual-block li span:last-child {
    white-space: nowrap;
  }

  /* tableを横スクロールさせるため、min-widthを広げる */
  .com-table {
    min-width: 700px;
  }

  .company-table {
    min-width: 700px;
  }

  #company .contents-2 .slider {
    display: flex;
    width: 200%;
    /* 画像2枚分 */
    height: 100px;
    animation: slide 45s linear infinite;
  }

  #company .contents-2 .slider img {
    width: 50%;
    /* 画像2枚分なので1枚あたり半分 */
    height: 100%;
    -o-object-fit: cover;
    object-fit: cover;
  }

  @keyframes slide {
    0% {
      transform: translateX(0);
    }

    100% {
      transform: translateX(-50%);
    }
  }

  #company .contents-3 {
    position: relative;
    width: 100%;
    height: auto;
    padding: 15px 0;
    background: rgba(13, 14, 96, 0.1);
  }

  #company .contents-3 h2 {
    display: block;
    width: 315px;
    height: auto;
    margin: 0 auto 20px;
  }

  #company .contents-3 h2 strong {
    display: block;
    font-size: 32px;
    font-weight: bold;
    line-height: 1.75;
    letter-spacing: 1px;
    text-align: left;
    color: #0d0e60;
  }

  #company .contents-3 h2 small {
    display: block;
    margin-top: -10px;
    font-size: 10px;
    font-weight: bold;
    line-height: 1.75;
    letter-spacing: 2px;
    text-align: left;
    color: #0d0e60;
  }

  #company .contents-3 .main-img {
    display: block;
    width: 315px;
    height: auto;
    margin: 0 auto;
  }

  #company .contents-3 .sub-img {
    display: block;
    width: 100px;
    position: absolute;
    bottom: 25px;
    left: calc(50% - 155px);
    z-index: 1;
  }

  #company .contents-4 {
    position: relative;
    width: 315px;
    height: auto;
    margin: 0 auto 50px;
  }

  #company .contents-4 h2 {
    margin-bottom: 20px;
  }

  #company .contents-4 h2 strong {
    display: block;
    font-size: 32px;
    font-weight: bold;
    line-height: 1.75;
    letter-spacing: 1px;
    text-align: left;
    color: #0d0e60;
  }

  #company .contents-4 h2 small {
    display: block;
    margin-top: -10px;
    font-size: 10px;
    font-weight: bold;
    line-height: 1.75;
    letter-spacing: 2px;
    text-align: left;
    color: #0d0e60;
  }

  #company .contents-4 .texts {
    width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    margin-bottom: 20px;
    padding-bottom: 20px;
  }

  #company .contents-4 .texts .p-texts {
    display: grid;
    grid-template-columns: 60px 40px 40px 20px 1fr;
    white-space: nowrap;
  }

  #company .contents-4 .texts .p-texts p {
    font-size: 13px;
    font-weight: bold;
    line-height: 1.99;
    letter-spacing: 2px;
    text-align: left;
    color: #000;
  }

  #company .contents-4 .sub-img-1 {
    display: none;
  }

  #company .contents-5 {
    position: relative;
    width: 100%;
    height: auto;
  }

  #company .contents-5 img.header__logo-image {
    display: block;
    width: 315px;
    height: auto;
    margin: 0 auto 30px;
  }

  #company .contents-5 img {
    width: 100%;
    height: 200px;
    -o-object-fit: cover;
    object-fit: cover;
  }

  #company .contents-5 .texts {
    position: relative;
    width: 315px;
    height: auto;
    margin: 0 auto 20px;
  }

  #company .contents-5 .texts h2 {
    margin-bottom: 20px;
    font-size: 18px;
    font-weight: bold;
    line-height: 1.06;
    letter-spacing: 0;
    text-align: left;
    color: #0d0e60;
  }

  #company .contents-5 .texts p {
    font-size: 12px;
    font-weight: bold;
    line-height: 1.67;
    letter-spacing: 0;
    text-align: left;
    color: #000;
  }
}

/*事業紹介*/
.sub-box-table{
    margin:40px 0;
}

/* スクロール用 */
/* 横スクロール */
.surveying-table{
    overflow-x:auto;
    -webkit-overflow-scrolling:touch;
}

/* スマホの時だけ案内表示 */
@media (max-width:768px){

.surveying-table::before{
    content:"← 横にスライドできます →";
    display:block;
    font-size:12px;
    color:#666;
    margin-bottom:8px;
    text-align:right;
}
}

/* テーブル */
.surveying-table table{
    width:100%;
    min-width:700px; /* スマホで横スクロール発生 */
    border-collapse:collapse;
    font-size:14px;
    background:#fff;
    border:2px solid #0d0e60;
}

.surveying-table th{
    background:#0d0e60;
    color:#fff;
    padding:12px;
    text-align:center;
    font-weight:600;
}

.surveying-table td{
    padding:12px 14px;
    border:1px solid #ddd;
    vertical-align:top;
}

.surveying-table tr:nth-child(even){
    background:#f7f9fc;
}

.surveying-table tr:hover{
    background:#eef3f9;
}

.surveying-table td br{
    line-height:1.8;
}
/*PC*/
@media screen and (min-width: 1025px) {
  #biz {
    position: relative;
    width: 100%;
    height: auto;
    padding-bottom: 150px;
  }

/*   #biz::after {
    content: "";
    display: block;
    width: 100%;
    height: 826.91px;
    background-image: url(/wp/wp-content/themes/west-jpd/image/page_bg.png);
    background-repeat: no-repeat;
    background-size: cover;
    position: absolute;
    bottom: 0;
    left: 50%;
    z-index: -1;
    transform: translateX(-50%);
    -webkit-transform: translateX(-50%);
    -ms-transform: translateX(-50%);
  } */

  #biz .contents {
    position: relative;
    width: 1225px;
    height: auto;
    margin: 0 auto 100px;
  }

  #biz .contents.contents-1 .headline img {
    width: 73px;
  }

  #biz .contents.contents-2 .headline img,
  #biz .contents.contents-3 .headline img,
  #biz .contents.contents-4 .headline img,
  #biz .contents.contents-5 .headline img {
    width: 90px;
  }

  #biz .contents .headline {
    display: grid;
    grid-template-columns: 117px 1fr;
    align-items: end;
    margin-bottom: 25px;
  }

  #biz .contents .headline h2 {
    display: block;
    width: 100%;
    height: 52px;
    padding: 0 25px;
    box-sizing: border-box;
    background: #0d0e60;
    font-size: 28px;
    font-weight: bold;
    line-height: 52px;
    letter-spacing: 11px;
    text-align: left;
    color: #fff;
    position: relative;
  }

  #biz .contents .headline h2::after {
    content: "";
    position: absolute;
    top: 0;
    right: 0;
    width: 395px;
    /* 緑部分の幅を調整 */
    height: 100%;
    background: #327a22;
    /* 緑 */
    clip-path: polygon(20px 0, 100% 0, 100% 100%, 0 100%);
  }

  #biz .contents h3 {
    margin-bottom: 40px;
    font-size: 28px;
    font-weight: normal;
    line-height: 1.53;
    letter-spacing: 2.5px;
    text-align: left;
    color: #327a22;
  }

  #biz .contents p.title {
    display: block;
    width: 147px;
    height: auto;
    margin: 0 auto 20px 0;
    border: solid 1px #0d0e60;
    border-radius: 5px;
    font-size: 18px;
    font-weight: normal;
    line-height: 33px;
    letter-spacing: 7.1px;
    text-align: center;
    color: #0d0e60;
  }

  #biz .contents p {
    font-size: 18px;
    font-weight: normal;
    line-height: 2.2;
    letter-spacing: 4.2px;
    text-align: left;
    color: #000;
  }
}

/*SP*/
@media screen and (max-width: 1024px) {
  #biz {
    position: relative;
    width: 100%;
    height: auto;
    /* padding-bottom: calc(450px / 2); */
  }



  #biz .contents {
    position: relative;
    width: 315px;
    height: auto;
    margin: 0 auto 50px;
  }

  #biz .contents.contents-1 .headline img {
    width: 40px;
  }

  #biz .contents.contents-2 .headline img,
  #biz .contents.contents-3 .headline img,
  #biz .contents.contents-4 .headline img,
  #biz .contents.contents-5 .headline img {
    width: 50px;
  }

  #biz .contents .headline {
    display: grid;
    grid-template-columns: 55px 1fr;
    align-items: end;
    margin-bottom: 15px;
  }

  #biz .contents .headline h2 {
    display: block;
    width: 100%;
    height: 30px;
    padding: 0 15px;
    box-sizing: border-box;
    background: #0d0e60;
    font-size: 16px;
    font-weight: bold;
    line-height: 30px;
    letter-spacing: 8px;
    text-align: left;
    color: #fff;
    position: relative;
  }

  #biz .contents .headline h2::after {
    content: "";
    position: absolute;
    top: 0;
    right: 0;
    width: 100px;
    /* 緑部分の幅を調整 */
    height: 100%;
    background: #327a22;
    /* 緑 */
    clip-path: polygon(20px 0, 100% 0, 100% 100%, 0 100%);
  }

  #biz .contents h3 {
    margin-bottom: 20px;
    font-size: 16px;
    font-weight: normal;
    line-height: normal;
    letter-spacing: normal;
    text-align: left;
    color: #327a22;
  }

  #biz .contents p.title {
    display: block;
    width: 120px;
    height: auto;
    margin: 0 auto 10px 0;
    border: solid 1px #0d0e60;
    border-radius: 5px;
    font-size: 16px;
    font-weight: normal;
    line-height: 25px;
    letter-spacing: 5px;
    text-align: center;
    color: #0d0e60;
  }

  #biz .contents p {
    font-size: 12px;
    font-weight: normal;
    line-height: 1.5;
    letter-spacing: normal;
    text-align: left;
    color: #000;
  }
}

/*カレンダー*/
@media screen and (min-width: 769px) {
  #calendar {
    margin-bottom: 10px;
  }

  .fc-button-group {
    -moz-column-gap: 15px;
    column-gap: 15px;
  }

  .fc-button {
    border-radius: 0.25em !important;
  }

  .fc-daygrid-event {
    padding: 3px 1.5px;
  }

  .fc table {
    font-weight: bold;
    line-height: 1.3;
  }

  .fc-event-main b {
    display: block;
  }

  .fc-event-main b:nth-of-type(1) {
    margin-bottom: 5px;
  }
}

@media screen and (max-width: 768px) {
  #calendar {
    margin-bottom: 5px;
  }

  .fc-view-harness {
    min-height: 350px;
  }

  .fc-button-group {
    -moz-column-gap: 7.5px;
    column-gap: 7.5px;
  }

  .fc-button {
    border-radius: 0.25em !important;
  }

  .fc-daygrid-event {
    padding: 2px 1px;
  }

  .fc table {
    font-size: 0.625em;
    font-weight: bold;
    line-height: 1.3;
  }

  .fc-daygrid-event {
    font-size: 0.5em;
  }

  .fc-button {
    font-size: 0.8em !important;
  }

  .fc-event-main b {
    display: block;
  }

  .fc-event-main b:nth-of-type(1) {
    margin-bottom: 2.5px;
  }
}

.fc-today-button,
.fc-dayGridMonth-button,
.fc-listYear-button,
.fc-toolbar-title {
  display: none !important;
}

.fc-button-primary {
  background-color: #a0642f !important;
  border-color: #a0642f !important;
  color: #fff !important;
}

.fc-header-toolbar {
  margin-bottom: 0.5em !important;
}

.fc-daygrid-event {
  white-space: wrap !important;
}

.fc-h-event {
  border: none !important;
}

.fc-daygrid-event-dot {
  display: none !important;
}

#calendar .fc-scrollgrid {
  background-color: #fff;
}

#calendar thead {
  background-color: #e0e1df;
}



/*実績紹介*/
.achievements h2 strong {
        display: block;
        font-size: 55px;
        font-weight: bold;
        line-height: 1.75;
        letter-spacing: 2.2px;
        text-align: left;
        color: #0d0e60;
    }
.achievements h2 small {
        display: block;
        margin-top: -15px;
        font-size: 16px;
        font-weight: bold;
        line-height: 1.75;
        letter-spacing: 4.7px;
        text-align: left;
        color: #0d0e60;
		margin-bottom: 30px;
    }


.section-jiseki{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap:40px;
  align-items:center;
  margin-bottom:100px;
}
.section-jiseki img{
    width: 100%;
    height: auto;
}

.section-jiseki:nth-child(even) .text{
  order:2;
}

.section-jiseki:nth-child(even) .image{
  order:1;
}
@media (max-width:768px){
.achievements h2 strong {
        display: block;
        font-size: 32px;
        font-weight: bold;
        line-height: 1.75;
        letter-spacing: 1px;
        text-align: left;
        color: #0d0e60;
    }
.achievements h2 small {
        display: block;
        margin-top: -10px;
        font-size: 10px;
        font-weight: bold;
        line-height: 1.75;
        letter-spacing: 2px;
        text-align: left;
        color: #0d0e60;
		margin-bottom: 30px;
    }
/* 1列にする */
.section-jiseki{
    grid-template-columns:1fr;
}

/* 全て画像を先 */
.section-jiseki .image{
    order:1;
}

/* 全てテキストを後 */
.section-jiseki .text{
    order:2;
}

/* PCのeven指定を打ち消す */
.section-jiseki:nth-child(even) .text{
    order:2;
}

.section-jiseki:nth-child(even) .image{
    order:1;
}

}

/*お問い合わせ*/
.contact-box table {
  width: 1000px;
  margin: 0 auto;
  font-size: 14px;
  border-collapse: separate;
  box-shadow: 0px 0px 30px 0px rgba(0, 0, 0, 0.05); }
.contact-box table th {
    width: 330px;
    border-bottom: 1px solid #d9d9d9;
    background-color: #eee;
    padding: 18px 30px 15px;
    text-align: left;
    box-sizing: border-box; }
.contact-box table td {
    border-bottom: 1px solid #d9d9d9;
    background-color: #fff;
    padding: 18px 30px 15px; }
.contact-box table tr:last-child th, #recruit #mainSec table tr:last-child td {
    border-bottom: none; }
	span.red {
    color: #FF0000;
}
input.wpcf7-form-control.wpcf7-text.wpcf7-validates-as-required
 {
    padding: 12px;
    font-size: 16px;
}
input.wpcf7-form-control.wpcf7-tel.wpcf7-text.wpcf7-validates-as-tel {
    padding: 12px;
    font-size: 16px;
}
@media screen and (max-width: 768px) {

  .contact-box table,
  .contact-box tbody,
  .contact-box tr,
  .contact-box th,
  .contact-box td {
    display: block;
    width: 100%;
  }

  .contact-box table {
    border: none;
    width: 100%;
    margin: 25px auto 0;
    font-size: 13px;
    border-collapse: collapse;
  }

  .contact-box tr {
    margin-bottom: 15px;
  }

  .contact-box th {
    background: #eee;
    padding: 10px 12px;
    border: none;
    text-align: left;
    box-sizing: border-box;
  }

  .contact-box td {
    padding: 5px 5px 5px!important;
    border: none;
  }
  input.wpcf7-form-control.wpcf7-text.wpcf7-validates-as-required{
    padding: 12px;
    font-size: 16px;
    width: 290px;
}
input.wpcf7-form-control.wpcf7-tel.wpcf7-text.wpcf7-validates-as-tel {
    padding: 12px;
    font-size: 16px;
	width: 290px;

}


/*# sourceMappingURL=style.css.map */