/* ===== WP干渉最小化＋横スクロール抑止 ===== */
html, body { overflow-x: hidden; }
.recruit-page { overflow: visible !important; overscroll-behavior: contain !important; }

/* === 背景グリッド（Aboutセクション） === */
.about-section-row { overflow: visible; position: relative; display:flex; justify-content:flex-start; align-items:flex-start; }
.about-section-row::before{content:"";position:absolute;top:-20%;left:-20%;width:140%;height:140%;background-image:
linear-gradient(90deg, rgba(0,91,172,0.015) 1px, transparent 1px),
linear-gradient(0deg, rgba(0,91,172,0.015) 1px, transparent 1px),
radial-gradient(circle at 40% 30%, rgba(0,91,172,0.05), transparent 60%);
background-size:60px 60px,60px 60px,100% 100%;background-blend-mode:overlay;pointer-events:none;z-index:0;animation:floatGrid 60s linear infinite;}
@keyframes floatGrid{0%{background-position:0 0,0 0,center;}100%{background-position:60px 60px,60px 60px,center;}}

/* === ヒーロー & キューブ === */
.hero{position:relative;width:100vw;height:100vh;overflow:hidden;}
.slides,.slide{position:absolute;inset:0;}
.slide{background-size:cover;background-position:center;opacity:0;transition:opacity 1s ease;z-index:0;}
.slide.show{opacity:1;}
.flash{position:absolute;inset:0;background:radial-gradient(circle at center,rgba(255,255,255,.5) 0%,rgba(255,255,255,0) 80%);opacity:0;pointer-events:none;transition:opacity .5s ease-out;z-index:2;}
.flash.active{opacity:1;transition:opacity .2s ease-in;}
.cubes{position:absolute;inset:0;perspective:800px;pointer-events:none;z-index:1;}
.cube-wrapper{position:absolute;animation:floatUp var(--dur) ease-in-out infinite var(--dly);transition:transform .5s ease-in-out;}
.spin-once{animation:spinOnce .6s ease-in-out forwards;}
.cube{width:100%;height:100%;transform-style:preserve-3d;}
.face{position:absolute;width:100%;height:100%;backface-visibility:hidden;border-radius:6px;opacity:.8;box-shadow:inset 0 8px 16px rgba(255,255,255,.7),0 4px 12px rgba(0,0,0,.25);}
.face--front {transform: translateZ(var(--size)); background: linear-gradient(135deg, #4F8BFF 0%, #CFE6FF 100%);}
.face--back  {transform: rotateY(180deg) translateZ(var(--size)); background: linear-gradient(135deg, #8dc5f3 0%, #E0F7FA 100%);}
.face--right {transform: rotateY( 90deg) translateZ(var(--size)); background: linear-gradient(135deg, #5F9DEF 0%, #D0E8FF 100%);}
.face--left  {transform: rotateY(-90deg) translateZ(var(--size)); background: linear-gradient(135deg, #0077CC 0%, #A8D4FF 100%);}
.face--top   {transform: rotateX( 90deg) translateZ(var(--size)); background: linear-gradient(135deg, #A6CCFF 0%, #F0F8FF 100%);}
.face--bottom{transform: rotateX(-90deg) translateZ(var(--size)); background: linear-gradient(135deg, #8EE5FF 0%, #FFFFFF 100%);}
@keyframes floatUp{0%,100%{transform:translateY(0);}50%{transform:translateY(-8vh);}}
@keyframes spinOnce{from{transform:rotateX(25deg) rotateY(15deg);}to{transform:rotateX(25deg) rotateY(375deg);}}

/* キャッチコピー */
.copy{opacity:0;transform:translateY(20px) scale(.98);transition:opacity 1s ease,transform 1s ease,filter 1s ease;filter:blur(2px);color:#fff;font-weight:600;line-height:1.6;text-shadow:0 2px 6px rgba(0,0,0,.4);position:relative;z-index:3;max-width:700px;margin-left:5vw;top:55%;transform:translateY(-50%);}
.copy.active{opacity:1;transform:translateY(0) scale(1);filter:blur(0);}
.copy p.sup{font-size:18px;color:#ddd;letter-spacing:.05em;margin-top:20px;}
h1{font-size:3rem;font-weight:900;line-height:1.1;}
@media (max-width:600px){.face{border-radius:4px}.cube-wrapper{animation-duration:15s!important}}





/* === About === */
.about-section-row{position:relative;display:flex;justify-content:flex-start;align-items:flex-start;padding:80px 0;overflow:visible;}
.about-text{width:85%;background:linear-gradient(135deg,#1a4eac 0%,#2c5fc2 20%,#4a78d2 40%,#6b93e3 60%,#4a78d2 80%,#2c5fc2 100%);color:#fff;padding:60px 40px;border-radius:0 20px 20px 0;min-height:650px;position:relative;z-index:1;margin-bottom:50px;}
.about-en{font-size:1rem;margin-bottom:10px;}
.about-text h2{font-size:2rem;font-weight:bold;margin-bottom:5px;}
.underline{width:40px;height:3px;background-color:#f8c24e;margin:10px 0 20px;margin-left:0!important;}
.about-description{font-size:.95rem;line-height:1.8;}
.about-cards{width:38%;background:#fff;border-radius:30px;padding:40px;display:grid;grid-template-columns:repeat(2,1fr);gap:30px;box-shadow:0 8px 16px rgba(0,0,0,.1);position:absolute;top:70%;right:10%;transform:translateY(-50%);z-index:2;min-height:430px;}
.card-link{display:block;width:100%;text-decoration:none;color:inherit;}
.card{background:#fff;border-radius:20px;overflow:hidden;display:flex;flex-direction:column;height:100%;position:relative;}
.card img{width:100%;height:180px;display:block;object-fit:cover;transition:transform .5s ease;border-radius:20px 20px 0 0!important;}
.card:hover img{transform:scale(1.05);}
.card-text{display:flex;flex-direction:column;align-items:center;text-align:center;padding:8px 4px;}
.card-text .sub{font-size:.75rem;color:#888;margin-bottom:4px;}
.card-text .title{font-size:1rem;font-weight:bold;color:#000;}
.card-text .arrow{display:inline-block;margin-top:-30px;font-size:.9rem;color:#000;}
.card a{color:inherit;text-decoration:none;}
.animate-up{opacity:0;transform:translateY(40px);transition:opacity .8s ease-out,transform .8s ease-out;}
.animate-up.is-visible{opacity:1;transform:translateY(0);}





/* === 波線 === */
.wave-container{position:relative;width:200%;height:400px;overflow:visible;left:50%;transform:rotate(-15deg) translateY(30px);transform-origin:left top;top:30px;}
.wave-line{width:100%;height:100%;}

/* === Voice === */
.voice-section{width:100%;padding:60px 0;background:#fff;margin-top:-300px;}
.voice-content{display:flex;gap:60px;width:100%;padding:0 40px;position:relative;box-sizing:border-box;}
.voice-carousel{display:flex;gap:30px;width:1000px;flex-shrink:0;justify-content:flex-start;margin:0;padding:0;margin-top:30px;}
.voice-member{flex:0 0 260px;text-align:center;transition:transform .6s ease, box-shadow .6s ease;}
.voice-member img.thumb{width:100%;height:auto;max-height:310px;object-fit:cover;border-radius:12px;transition:transform .6s ease, box-shadow .6s ease;}
.voice-member.enlarged img.thumb{transform:scale(1.25);box-shadow:0 10px 30px rgba(0,0,0,.4);z-index:2;}
.voice-text{position:absolute;right:240px;top:0;max-width:420px;padding:0 20px;}
.voice-tag{font-size:.9rem;font-weight:bold;color:#3e64a5;margin-bottom:5px;}
.voice-text h2{font-size:1.8rem;font-weight:bold;margin:0;}
.voice-underline{width:40px;height:3px;background:#f5c10f;margin:10px 0 20px;}
.voice-description{font-size:.95rem;color:#333;line-height:1.7;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;margin-bottom:20px;}
.voice-buttons{margin-top:10px;}
.voice-cta{display:inline-block;background:#0d3d91;color:#fff;border:none;border-radius:30px;padding:10px 25px;font-size:.9rem;cursor:pointer;margin-bottom:20px;text-decoration:none;}
.voice-cta:hover{background:#0a3378;}
.slider-controls{display:flex;gap:20px;}
.slider-controls button.arrow{background:#3e64a5;color:#fff;border:none;padding:10px 16px;font-size:1.2em;border-radius:50%;cursor:pointer;width:42px;height:42px;}
.slider-indicator{font-weight:bold;font-size:1em;}
.fade-up{opacity:0;transform:translateY(20px);transition:opacity .6s ease-out, transform .6s ease-out;}
.fade-up.visible{opacity:1;transform:translateY(0);}

/* === Workstyle（静止キューブ） === */
.workstyle-section{position:relative;display:flex;justify-content:flex-end;align-items:flex-start;padding:80px 0;background:#fff;margin-top:-50px!important;z-index:0;}
.workstyle-text{width:83%;background:linear-gradient(-135deg,#1a4eac 0%,#2c5fc2 20%,#4a78d2 40%,#6b93e3 60%,#4a78d2 80%,#2c5fc2 100%);color:#fff;padding:40px 0;border-radius:20px 0 0 20px;height:650px;position:relative;z-index:1;overflow:hidden;margin-top:75px;}
.workstyle-inner{position:absolute;top:65px;right:100px!important;max-width:480px;}
.workstyle-en{font-size:1rem;margin-bottom:10px;margin-left:40px;}
.workstyle-text h2{font-size:2rem;font-weight:bold;margin-bottom:10px;padding-left:40px;}
.underline2{width:40px;height:3px;background:#f8c24e;margin:10px 0 20px;margin-left:40px!important;}
.workstyle-description{font-size:.95rem;line-height:1.7;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden;padding-left:40px;}
.workstyle-cards{width:32%!important;background:#fff;border-radius:30px;padding:40px;display:grid;grid-template-columns:1fr 1fr;gap:30px;box-shadow:0 8px 16px rgba(0,0,0,.1);position:absolute!important;top:67%;left:25%;transform:translateY(-50%);z-index:999!important;min-height:430px;}
.cubes--workstyle{position:absolute;left:0;top:0;width:0;height:0;pointer-events:none;z-index:-1;perspective:800px;perspective-origin:30% 25%;transform-style:preserve-3d;left:-1150px;}
.cubes--workstyle .cube-wrapper,.cube-wrapper2{animation:none!important;width:calc(var(--size)*2);height:calc(var(--size)*2);opacity:.3;transform:scale(.9);position:relative;}
.cubes--workstyle .cube-wrapper{margin-left:-160px!important;margin-top:-140px;z-index:-10000;}
.cube-wrapper2{margin-left:1050px!important;margin-top:200px;z-index:-20000;}
.cubes--workstyle .cube{width:100%;height:100%;transform-style:preserve-3d;transform:rotateX(var(--crx,28deg)) rotateY(var(--cry,-32deg)) rotateZ(var(--crz,-6deg))!important;}
.cubes--workstyle .face{position:absolute;inset:0;backface-visibility:hidden;border-radius:6px;box-shadow:inset 0 8px 16px rgba(255,255,255,.55),0 5px 14px rgba(0,0,0,.28);}
.cubes--workstyle .face--front{transform:translateZ(var(--size));background:linear-gradient(135deg,#5C7DD9 0%, #AFC8F8 100%);}
.cubes--workstyle .face--back{transform:rotateY(180deg) translateZ(var(--size));background:linear-gradient(135deg,#6E9FD9 0%, #CFE3F9 100%);}
.cubes--workstyle .face--right{transform:rotateY(90deg) translateZ(var(--size));background:linear-gradient(135deg,#567FBF 0%, #B5D2F3 100%);}
.cubes--workstyle .face--left{transform:rotateY(-90deg) translateZ(var(--size));background:linear-gradient(135deg,#476CA8 0%, #9FBFE6 100%);}
.cubes--workstyle .face--top{transform:rotateX(90deg) translateZ(var(--size));background:linear-gradient(135deg,#7EA7E6 0%, #DCE8FA 100%);}
.cubes--workstyle .face--bottom{transform:rotateX(-90deg) translateZ(var(--size));background:linear-gradient(135deg,#9CC3EC 0%, #F7FAFD 100%);}
@media (max-width:768px){.cubes--workstyle{left:12px;top:8px;}}



/* === 採用セクション（SPヒーロー＋3キューブ） === */
.hero-section {
  position: relative;
  perspective: 1000px;
  overflow: hidden;
  margin-top: 200px !important;  /* ← ここで下げる（調整してOK） */
  margin-bottom: 0px;
  background:
    radial-gradient(200px at 5% 15%, #fdf8e2 0%, transparent 100%),
    radial-gradient(160px at 15% 25%, #e6f6ff 0%, transparent 100%),
    radial-gradient(220px at 25% 10%, #fffaf3 0%, transparent 100%),
    radial-gradient(180px at 35% 40%, #cdeff9 0%, transparent 100%),
    radial-gradient(200px at 45% 20%, #fffbf5 0%, transparent 100%),
    radial-gradient(240px at 55% 35%, #d6f2ff 0%, transparent 100%),
    radial-gradient(180px at 65% 10%, #fffcf7 0%, transparent 100%),
    radial-gradient(200px at 75% 25%, #d4efff 0%, transparent 100%),
    radial-gradient(220px at 85% 45%, #fffaf2 0%, transparent 100%),
    radial-gradient(240px at 10% 70%, #cff4ff 0%, transparent 100%),
    radial-gradient(200px at 30% 60%, #fffdf6 0%, transparent 100%),
    radial-gradient(240px at 50% 65%, #c8f0ff 0%, transparent 100%),
    radial-gradient(180px at 70% 55%, #fffaf4 0%, transparent 100%),
    radial-gradient(200px at 90% 20%, #c4e7ff 0%, transparent 100%),
    linear-gradient(135deg,#fffefc 0%,#f3fbff 100%);
  background-repeat: no-repeat;
  background-size: cover;
  padding: 120px 40px;
  text-align: center;
  border-radius: 16px;
  max-width: 1600px;
  margin-left: auto;
  margin-right: auto;
  box-shadow: 0 4px 12px rgba(0,0,0,.05);
}

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

.hero-section h1 {
  font-size: 2.5rem;
  font-weight: 700;
  margin-bottom: 20px;
}

.hero-section p {
  font-size: 1rem;
  line-height: 1.6;
  margin-bottom: 24px;
  color: #333;
}

.cta-button {
  display: inline-block;
  padding: 12px 28px;
  background: #fff;
  border-radius: 50px;
  box-shadow: 0 4px 8px rgba(0,0,0,.1);
  font-weight: 700;
  color: #000;
  text-decoration: none;
  border: 1px solid #ddd;
  transition: background .3s;
  margin-top: 40px;
}

.cta-button:hover {
  background: #f7f7f7;
}

.bg-cube,
.bg-cube2,
.bg-cube3 {
  transform-style: preserve-3d;
  z-index: 1;
}

.bg-cube {
  position: absolute;
  bottom: -120px;
  left: -80px;
  width: 340px;
  height: 340px;
  transform: rotateX(-30deg) rotateY(10deg);
}

.bg-cube .face {
  position: absolute;
  width: 340px;
  height: 340px;
  backface-visibility: hidden;
  box-shadow: inset 0 0 30px rgba(255,255,255,.4),
              0 12px 24px rgba(0,0,0,.08);
}

.bg-cube .front {
  background: linear-gradient(145deg,#d0e9ff,#a9d3f5);
  transform: translateZ(170px);
}

.bg-cube .right {
  background: linear-gradient(145deg,#bbdcf6,#98c8ec);
  transform: rotateY(90deg) translateZ(170px);
}

.bg-cube .left {
  background: linear-gradient(145deg,#e5f2fc,#cde6f6);
  transform: rotateY(-90deg) translateZ(170px);
}

.bg-cube .top {
  background: linear-gradient(145deg,#f0faff,#d7ecf7);
  transform: rotateX(90deg) translateZ(170px);
}

.bg-cube .bottom {
  background: linear-gradient(145deg,#cde6f9,#aed4f0);
  transform: rotateX(-90deg) translateZ(170px);
}

.bg-cube .back {
  background: linear-gradient(145deg,#aed4f5,#93c2ea);
  transform: rotateY(180deg) translateZ(170px);
}

.bg-cube2 {
  position: absolute;
  bottom: -50px;
  right: 30px;
  width: 220px;
  height: 230px;
  transform: rotateX(-20deg) rotateY(-60deg);
}

.bg-cube2 .face {
  position: absolute;
  width: 220px;
  height: 220px;
  backface-visibility: hidden;
  box-shadow: inset 0 0 24px rgba(255,255,255,.3),
              0 10px 20px rgba(0,0,0,.06);
}

.bg-cube2 .front {
  background: linear-gradient(145deg,#e1f0ff,#bcdff6);
  transform: translateZ(110px);
}

.bg-cube2 .right {
  background: linear-gradient(145deg,#c9e6f9,#a7d2f1);
  transform: rotateY(90deg) translateZ(110px);
}

.bg-cube2 .left {
  background: linear-gradient(145deg,#edf5fd,#dceafb);
  transform: rotateY(-90deg) translateZ(110px);
}

.bg-cube2 .top {
  background: linear-gradient(145deg,#f4fbff,#e5f4fb);
  transform: rotateX(90deg) translateZ(110px);
}

.bg-cube2 .bottom {
  background: linear-gradient(145deg,#d7eaf7,#c0dcf1);
  transform: rotateX(-90deg) translateZ(110px);
}

.bg-cube2 .back {
  background: linear-gradient(145deg,#bce0f4,#9ccde9);
  transform: rotateY(180deg) translateZ(110px);
}

.bg-cube3 {
  position: absolute;
  top: 50px;
  right: 360px;
  width: 50px;
  height: 50px;
  transform: rotateX(25deg) rotateY(25deg);
  filter: blur(2px);
  opacity: .9;
}

.bg-cube3 .face {
  position: absolute;
  width: 110px;
  height: 110px;
  backface-visibility: hidden;
  box-shadow: inset 0 0 10px rgba(255,255,255,.2),
              0 4px 10px rgba(0,0,0,.04);
}

.bg-cube3 .front {
  background: linear-gradient(145deg,#d8ecfc,#b7daf2);
  transform: translateZ(80px);
}

.bg-cube3 .back {
  background: linear-gradient(145deg,#bedef5,#a5ccea);
  transform: rotateY(180deg) translateZ(80px);
}

.bg-cube3 .right {
  background: linear-gradient(145deg,#cae5f7,#aed4ee);
  transform: rotateY(90deg) translateZ(80px);
}

.bg-cube3 .left {
  background: linear-gradient(145deg,#e6f4ff,#cfe8fa);
  transform: rotateY(-90deg) translateZ(80px);
}

.bg-cube3 .top {
  background: linear-gradient(145deg,#f3fbff,#e3f3fa);
  transform: rotateX(90deg) translateZ(80px);
}

.bg-cube3 .bottom {
  background: linear-gradient(145deg,#d9edf8,#c3e0f0);
  transform: rotateX(-90deg) translateZ(80px);
}

.animate-up {
  opacity: 0;
  transform: translateY(40px);
  transition: opacity .8s ease-out, transform .8s ease-out;
}

.animate-up.is-visible {
  opacity: 1;
  transform: translateY(0);
}







/* ===== フッター全体 ===== */
.site-footer {
  position: relative;
  background-color: #0B1E32 !important; /* 単色背景 */
  background-image: none !important;    /* 模様消去 */
  color: #fff;
  font-family: 'Helvetica Neue', sans-serif;
  margin: 0;
  padding: 60px 20px 20px;
  box-sizing: border-box;
}

/* フッター内すべての要素の余白リセット */
.site-footer * {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

/* 擬似要素の白帯対策 */
.site-footer::before,
.site-footer::after {
  content: "";
  display: none;
}

/* ===== フッター上部 ===== */
.footer-top {
  text-align: center;
  margin-bottom: 40px;
}
.footer-top h2 {
  font-size: 28px;
  margin-bottom: 10px;
}
.footer-top p {
  font-size: 15px;
  line-height: 1.6;
  margin: 6px 0;
}

/* ===== フッターメイン ===== */
.footer-main {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  padding: 40px 0;
  border-top: none; /* 白線を消す */
}

/* ロゴ */
.footer-logo {
  max-width: 280px;
  text-align: left;
}
.footer-logo img {
  width: 160px;
  margin-bottom: 10px;
}
.footer-logo p {
  font-size: 14px;
  margin: 6px 0;
}

/* アイコン */
.footer-icon-group {
  margin-top: 10px;
}
.footer-icon-group a {
  display: inline-block;
  margin-right: 10px;
  transition: transform 0.3s ease, opacity 0.3s ease;
}
.footer-icon-group a:hover {
  transform: scale(1.1);
  opacity: 0.8;
}
.footer-icon-group img,
.sns-icon {
  width: 25px !important;
  height: 25px !important;
  vertical-align: middle;
  filter: brightness(0) invert(1);
}

/* ナビ */
.footer-nav {
  display: flex;
  gap: 70px;
  margin-left: 0;
}
.footer-nav h3 {
  font-size: 16px;
  margin-bottom: 10px;
}
.footer-nav ul {
  list-style: none;
}
.footer-nav li {
  font-size: 14px;
  margin-bottom: 6px;
  cursor: pointer;
}
.footer-nav a {
  color: #fff;
  text-decoration: none;
  border-bottom: 1px solid transparent;
  transition: border-bottom 0.2s ease;
}
.footer-nav a:hover {
  border-bottom: 1px solid #fff;
}

/* ===== フッター下部 ===== */
.footer-bottom {
  text-align: center;
  margin-top: 40px; /* 大きすぎる余白を調整 */
  font-size: 13px;
  opacity: 0.7;
}

/* ===== モバイル対応 ===== */
@media (max-width: 768px) {
  .footer-main {
    flex-direction: column;
    align-items: center;
    text-align: center;
  }

  .footer-nav {
    flex-direction: column;
    gap: 30px;
    margin-top: 30px;
  }
}

/* ===== GeneratePress デフォルトフッター非表示 ===== */
.site-info {
  display: none !important;
}











/* ======== HARD OVERRIDE: scroll & layout fixes (put at very bottom) ======== */

/* 横は絶対に出さない。縦は body だけ。 */
html, body, #page, .site, .site-content, .site-main, .hfeed {
  overflow-x: hidden !important;
}

/* これが犯人でした：固定配置→縦スク増殖。絶対配置に固定。 */
.workstyle-cards {
  position: absolute !important;   /* ← fixed を完全に殺す */
  top: 67% !important;
  left: 25% !important;
  transform: translateY(-50%) !important;
  z-index: 10 !important;
}

/* 横幅200%の波が親をはみ出す→スクロール誘発。幅を縮めて左基準に。 */
.wave-container {
  width: 120% !important;          /* 200% → 120% に抑制 */
  left: 0 !important;              /* 50%ずらしを撤回 */
  transform: rotate(-15deg) translateY(30px) !important;
}

/* ヒーロー内 overflow で子要素が切られて二重スクになるのを防ぐ */
.hero {
  overflow: hidden !important;     /* ← ここは hidden でOK（ヒーロー演出用） */
}
.recruit-page {
  overflow: visible !important;    /* ページ本体は通常スクロール */
}

/* Footer強制表示・位置安定（最後に置く） */
.site-footer {
  position: relative;
  top: 0 !important;   /* ← 300pxをリセット */
  margin-top: 60px;    /* ← 余白はmarginで調整 */
}




html, body {
  overflow-x: hidden; /* 横スクロール禁止 */
}
.hero, .slides, .slide,
.wave-container,
.workstyle-cards {
  max-width: 100%;
  overflow-x: hidden;
}
}





/* === Recruit ページ限定：ヘッダー直下のネイビー帯を削除 === */
.page-template-page-recruit .main-navigation,
.page-template-page-recruit .inside-navigation,
.page-template-page-recruit .nav-below-header,
.page-template-page-recruit .inside-header {
  display: none !important;   /* 帯ごと消す */
  background: transparent !important;
  height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
}
/* === Recruit テンプレートだけ、GeneratePressの既定フッターを完全に非表示 === */
.page-template-page-recruit #colophon,
.page-template-page-recruit .footer-bar,
.page-template-page-recruit .site-info,
.page-template-page-recruit .site-footer:not(.site-footer--custom) {
  display: none !important;
  height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
}




/* === Recruit：求人セクションとフッターの間隔を広げる === */
/* ※ あなたのCSSの一番最後に置く（!important で既存を上書き） */
.page-template-page-recruit .hero-section {
  margin-bottom: 240px !important;  /* ← 好みで 120〜240px くらいに調整 */
}

/* モバイルは少し控えめに */
@media (max-width: 768px) {
  .page-template-page-recruit .hero-section {
    margin-bottom: 100px !important;
  }
}





/* ================================================================================================================================ */




/* ---------------- */
        About
/* ---------------- */
/* セクション全体：左右の余白ゼロでピタッと */
.page-template-page-recruit .about-section-row {
  justify-content: flex-start !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}

/* 青パネル：3%広げる */
.page-template-page-recruit .about-section-row .about-text {
  width: 75% !important;        /* ← 72% → 75% */
  margin: 75px 0 0 0 !important;
  max-width: none !important;
  border-radius: 0 20px 20px 0 !important;
}

/* 白カードボックス：前回の拡大を維持 */
.page-template-page-recruit .about-section-row .about-cards {
  width: 42% !important;
  right: 8% !important;
  padding: 40px !important;
  transform: translateY(-50%) !important;
  position: absolute !important;
  z-index: 3 !important;
  min-height: 430px !important;
}

/* 大画面用の微調整 */
@media (min-width: 1280px) {
  .page-template-page-recruit .about-section-row .about-text {
    width: 77% !important;        /* PCではさらに少し広げる */
  }
  .page-template-page-recruit .about-section-row .about-cards {
    width: 44% !important;
    right: 7% !important;
  }
}

/* About白カード：日本語タイトルと英語サブの間隔調整 */
.page-template-page-recruit .about-section-row .about-cards .card-text .title {
  margin-bottom: 2px !important;   /* ← デフォルト余白を縮める */
  line-height: 1.2 !important;     /* ← タイトに */
}

.page-template-page-recruit .about-section-row .about-cards .card-text .sub {
  margin-top: 0 !important;        /* 上余白ゼロで密着 */
  line-height: 1.2 !important;
}

/* About　ボタン削除 */
.page-template-page-recruit .about-section-row .about-cards .card-text .arrow {
  display: none !important;
}

/* About 白カード：全体を少し上に移動 */
.page-template-page-recruit .about-section-row .about-cards {
  top: 65% !important;   /* ← 70% → 65% にすると上に移動 */
}







/* ---------------- */
        Voice
/* ---------------- */
.voice-section {
  width: 100%;
  padding: 60px 0;
  background: #fff;
  margin-top: -300px;
}

.voice-content {
  display: flex;
  gap: 60px;
  width: 100%;
  padding: 0 40px;
  position: relative;
  box-sizing: border-box;
}

.voice-carousel {
  display: flex;
  gap: 30px;
  width: 1000px;
  flex-shrink: 0;
  justify-content: flex-start;
  margin: 0;
  padding: 0;
  margin-top: 30px;
}

.voice-member {
  flex: 0 0 270px;
  text-align: center;
  transition: transform .6s ease, box-shadow .6s ease;
}

.voice-member img.thumb {
  width: 100%;
  height: auto;
  max-height: 330px;
  object-fit: cover;
  border-radius: 12px;
  transition: transform .6s ease, box-shadow .6s ease;
}

.voice-member.enlarged img.thumb {
  transform: scale(1.25);
  box-shadow: 0 10px 30px rgba(0,0,0,.4);
  z-index: 2;
}

.voice-text {
  position: absolute;
  right: 240px;
  top: 0;
  max-width: 420px;
  padding: 0 20px;
}

.voice-tag {
  font-size: .9rem;
  font-weight: bold;
  color: #3e64a5;
  margin-bottom: 5px;
}

.voice-text h2 {
  font-size: 1.8rem;
  font-weight: bold;
  margin: 0;
}

.voice-underline {
  width: 40px;
  height: 3px;
  background: #f5c10f;
  margin: 10px 0 20px;
}

.voice-description {
  font-size: .95rem;
  color: #333;
  line-height: 1.7;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
  margin-bottom: 20px;
}

.voice-buttons {
  margin-top: 10px;
}

/* 「もっと見る」ボタン：ブランドカラー＋ホバーで濃い青 */
.voice-cta {
  display: inline-block;
  background: #1a4eac !important;   /* ブランドカラー寄りの青 */
  color: #fff !important;
  border: none !important;
  border-radius: 30px;
  padding: 10px 25px;
  font-size: .9rem;
  cursor: pointer;
  margin-bottom: 20px;
  text-decoration: none !important;
  transition: background .3s;
}

.voice-cta:hover {
  background: #0d3d91 !important;   /* ホバー時に濃い青 */
  color: #fff !important;
}

/* === スライダー矢印ボタン（もっと見ると同じ色に統一） === */
.slider-controls button.arrow {
  background: #1a4eac !important;  /* ブランドカラー寄りの青 */
  color: #fff !important;
  border: none !important;
  padding: 10px 16px;
  font-size: 1.2em;
  border-radius: 50%;
  cursor: pointer;
  width: 42px;
  height: 42px;
  transition: background .3s;
}

.slider-controls button.arrow:hover {
  background: #0d3d91 !important;  /* ホバー時に濃い青 */
}

.slider-indicator {
  font-weight: bold;
  font-size: 1em;
}

.fade-up {
  opacity: 0;
  transform: translateY(20px);
  transition: opacity .6s ease-out, transform .6s ease-out;
}

.fade-up.visible {
  opacity: 1;
  transform: translateY(0);
}

/* ===== Voice カード内のテキスト調整 ===== */

/* Voice01〜04：黒色＋下線削除 */
.voice-member .voice-info .voice-number {
  color: #000 !important;
  font-size: 1.05rem;
  text-decoration: none !important;
  border: none !important;
}

/* 名前（イニシャル）：大きめ＋太字＋下線削除 */
.voice-member .voice-info h3 {
  font-weight: 600;
  font-size: 1.1rem;   /* 少し大きめ */
  color: #000;
  text-decoration: none !important;
  border: none !important;
  margin: 4px 0;
}

/* 役職：さらに薄いグレー */
.voice-member .voice-info p {
  color: #bbb !important;   /* ワントーン薄いグレー */
  font-size: 0.95rem;
  margin: 0;
  text-decoration: none !important;
  border: none !important;
}

/* リンク全体に下線を付けない */
.voice-member a,
.voice-member a:hover,
.voice-member a:focus,
.voice-member a:active {
  text-decoration: none !important;
  border: none !important;
}





/* ---------------- */
        work
/* ---------------- */
/* ----------------
   Workstyle（静止キューブ分離版）
   大キューブ＝背面、青パネル、白カード、前面小キューブ のレイヤー順
   背面(0) < 青背景(1) < 青テキスト(2) < 小キューブ(3) < 白カード(5)
---------------- */

/* セクション */
.workstyle-section{
  position: relative;
  display: flex;
  justify-content: flex-end;         /* 右ピタのまま */
  align-items: flex-start;
  padding: 80px 0;
  background: #fff;
  margin-top: -50px !important;
  z-index: 0;
  overflow: visible;
}

/* === 青パネル（背景は ::before でレイヤー分離） === */
.workstyle-text{
  width: 80% !important;
  position: relative;
  height: 650px;
  margin-top: 75px;
  color: #fff;
  padding: 40px 0;
  border-radius: 20px 0 0 20px;
  z-index: 2;                         /* テキスト面（前面） */
  overflow: visible;                  /* 内側要素を切らない */
}
.workstyle-text::before{
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  background: linear-gradient(-135deg,#1a4eac 0%,#2c5fc2 20%,#4a78d2 40%,#6b93e3 60%,#4a78d2 80%,#2c5fc2 100%);
  z-index: 1;                         /* 背景レイヤー（青） */
}

/* 見出し群（テキスト本体） */
.workstyle-inner{
  position: absolute;
  top: 65px;
  right: 100px !important;
  max-width: 480px;
  z-index: 2;                         /* 青背景より前 */
}
.workstyle-en{font-size:1rem;margin-bottom:10px;margin-left:40px;}
.workstyle-text h2{font-size:2rem;font-weight:700;margin-bottom:10px;padding-left:40px;}
.underline2{width:40px;height:3px;background:#f8c24e;margin:10px 0 20px;margin-left:40px !important;}
.workstyle-description{
  font-size:.95rem;line-height:1.7;
  display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;
  overflow:hidden;padding-left:40px;
}

/* === 白カード（最前面） === */
.workstyle-cards{
  position: absolute !important;
  top: 70%;
  left: 10%;
  right: auto;
  transform: translateY(-50%);
  width: 40% !important;              /* ご指定どおり 40% */
  min-height: 440px;
  background: #fff;
  border-radius: 30px;
  padding: 44px;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 30px;
  box-shadow: 0 8px 16px rgba(0,0,0,.1);
  z-index: 5 !important;              /* 最前面に固定 */
  overflow: visible;
}

/* カード中身 */
.card-v2{display:flex;flex-direction:column;gap:10px;}
.card-v2 img{
  width:100% !important;
  height:180px !important;            /* 4枚とも統一 */
  object-fit:cover !important;
  display:block !important;
  border-radius:12px !important;
}
.card-v2 .card-text{
  display:flex;
  flex-direction:column;
  align-items:center;
  text-align:center;
}
.card-v2 .title{font-size:1rem;font-weight:700;margin-bottom:4px;color:#000;}
.card-v2 .sub{font-size:.75rem;color:#777;}
.card-v2 .arrow{font-size:1.2rem;color:#1f5fbf;margin-left:auto;}

/* === 大キューブ（背面コンテナ） === */
.cubes--workstyle-back{
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 0;                          /* ★ 背面（青背景より後ろ） */
  perspective: 800px;
  perspective-origin: 30% 25%;
  transform-style: preserve-3d;
  overflow: visible;
}
.cube-wrapper-large{
  position: absolute;
  /* 位置調整：右下に少し寄せる */
  /* 基準はセクションの左上。見た目に合わせて微調整 */
  left: 8%;
  top: 18%;
  transform: translate(-50%,-50%) scale(.9);
  width: calc(var(--size)*2);
  height: calc(var(--size)*2);
  opacity: .30;
}
.cube-wrapper-large .cube{
  width:100%; height:100%;
  transform-style:preserve-3d;
  transform: rotateX(var(--crx,28deg)) rotateY(var(--cry,-32deg)) rotateZ(var(--crz,-6deg));
}

/* === 小キューブ（前面コンテナ） === */
.cubes--workstyle-front{
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 3;                          /* ★ 青より前・白カードより後 */
  perspective: 800px;
  perspective-origin: 30% 25%;
  transform-style: preserve-3d;
  overflow: visible;
}
.cube-wrapper-small{
  position: absolute;
  /* 位置調整：右寄り・やや下に配置（見えやすい場所） */
  right: 30%;
  top: 65%;
  transform: translate(50%,-50%) scale(.95);
  width: calc(var(--size)*2);
  height: calc(var(--size)*2);
  opacity: .35;
}
.cube-wrapper-small .cube{
  width:100%; height:100%;
  transform-style:preserve-3d;
  transform: rotateX(var(--crx,28deg)) rotateY(var(--cry,-32deg)) rotateZ(var(--crz,-6deg));
}

/* === 共通：立方体の各面 === */
.cubes--workstyle-back .face,
.cubes--workstyle-front .face{
  position: absolute;
  inset: 0;
  border-radius: 6px;
  backface-visibility: hidden;
  box-shadow:
    inset 0 8px 16px rgba(255,255,255,.55),
    0 5px 14px rgba(0,0,0,.28);
}

/* グラデは共通でOK */
.cubes--workstyle-back .face--front,
.cubes--workstyle-front .face--front{ transform: translateZ(var(--size)); background: linear-gradient(135deg,#5C7DD9 0%, #AFC8F8 100%); }
.cubes--workstyle-back .face--back,
.cubes--workstyle-front .face--back{ transform: rotateY(180deg) translateZ(var(--size)); background: linear-gradient(135deg,#6E9FD9 0%, #CFE3F9 100%); }
.cubes--workstyle-back .face--right,
.cubes--workstyle-front .face--right{ transform: rotateY(90deg) translateZ(var(--size)); background: linear-gradient(135deg,#567FBF 0%, #B5D2F3 100%); }
.cubes--workstyle-back .face--left,
.cubes--workstyle-front .face--left{ transform: rotateY(-90deg) translateZ(var(--size)); background: linear-gradient(135deg,#476CA8 0%, #9FBFE6 100%); }
.cubes--workstyle-back .face--top,
.cubes--workstyle-front .face--top{ transform: rotateX(90deg) translateZ(var(--size)); background: linear-gradient(135deg,#7EA7E6 0%, #DCE8FA 100%); }
.cubes--workstyle-back .face--bottom,
.cubes--workstyle-front .face--bottom{ transform: rotateX(-90deg) translateZ(var(--size)); background: linear-gradient(135deg,#9CC3EC 0%, #F7FAFD 100%); }

/* === モバイル（About と同様：固定配置解除して縦積み） === */
@media (max-width: 768px){
  .workstyle-text{
    width:95% !important;
    height:auto;
    border-radius:16px;
    margin-top:20px;
  }
  .workstyle-cards{
    position: static !important;
    width: 92% !important;
    margin: 20px auto 0;
    transform: none !important;
    min-height: auto;
    z-index: 5 !important;           /* 依然として最前面 */
  }
  /* キューブは少し控えめに */
  .cube-wrapper-large,
  .cube-wrapper-small{
    transform: translate(-50%,-50%) scale(.75);
    opacity: .28;
  }
}

/* ===== Workstyle の静的キューブを完全停止（最下部に追加） ===== */

/* 大・小どちらのキューブもアニメーション一切なし */
.cube-wrapper-large,
.cube-wrapper-small,
.cube-wrapper-large .cube,
.cube-wrapper-small .cube,
.cube-wrapper-large .cube .face,
.cube-wrapper-small .cube .face {
  animation: none !important;
  transition: none !important;
  will-change: auto !important;
}

/* 念のため “汎用”クラス名にもブレーキをかける（他所から継承されても無効化） */
.cubes--workstyle-back *,
.cubes--workstyle-front * {
  animation: none !important;
  transition: none !important;
}

/* 角度・位置は固定（見た目が崩れないよう transform はそのまま保持） */
/* 必要ならここで固定角度を調整 */
.cube-wrapper-large .cube {
  transform: rotateX(var(--crx,28deg)) rotateY(var(--cry,-32deg)) rotateZ(var(--crz,-6deg)) !important;
}
.cube-wrapper-small .cube {
  transform: rotateX(20deg) rotateY(35deg) rotateZ(5deg) !important;
}

/* 大キューブ（濃さ） */
.cube-wrapper-large .face {
  opacity: 0.6 !important;
}

/* 小キューブ（濃さ） */
.cube-wrapper-small .face {
  opacity: 0.4 !important;
}

/* === 白カードを左寄せ & 最前面に固定 === */
.workstyle-cards {
  left: 7% !important;         /* ← 左に寄せる（今: 8% → 5%） */
  right: auto !important;      /* ← 右寄せ解除 */
  z-index: 99999 !important;   /* ← 何があっても最前面に出す */
  position: relative !important; /* ← stacking contextをクリアするため */
}





/* --------------------- */
    inntabyu- キューブ
/* --------------------- */
/* Voice全体を基準にする */
.voice-section { position: relative; }

/* ===== Voiceセクション右側キューブ ===== */
.voice-cubes {
  position: absolute;
  right: -80px;       /* 少し内側に寄せる */
  top: 300px;         /* セクション内の縦位置は調整してください */
  pointer-events: none;
  perspective: 800px;
  transform-style: preserve-3d;
  z-index: 1;
}

/* 共通（大・小キューブ両方に適用） */
.voice-cubes .cube-wrapper {
  position: absolute;
  width: calc(var(--size) * 2);
  height: calc(var(--size) * 2);
  opacity: .25;               /* ← さらに薄く（0.4 → 0.25） */
  transform-style: preserve-3d;
  animation: none !important; /* ← アニメーション完全停止 */
}

/* 大キューブ（さらに小さく） */
.voice-cubes .cube-wrapper--large {
  --size: 60px  !important;               /* ← 100px → 70px */
  top: 1900px;
  right: 200px;
}

/* 小キューブ（さらに小さく & 下に） */
.voice-cubes .cube-wrapper--small {
  --size: 40px  !important;               /* ← 70px → 50px */
  top: 1790px;
  right: 80px;
}

/* 立方体（静止、角度だけ反映） */
.voice-cubes .cube {
  width: 100%;
  height: 100%;
  transform-style: preserve-3d;
  transform: rotateX(var(--crx,25deg)) rotateY(var(--cry,30deg));
  animation: none !important; /* ← 念のため静止 */
}

/* 各面 */
.voice-cubes .face {
  position: absolute;
  inset: 0;
  backface-visibility: hidden;
  border-radius: 6px;
  box-shadow:
    inset 0 6px 12px rgba(255,255,255,.45),
    0 4px 10px rgba(0,0,0,.15);
}

/* 面の配置と色（薄めカラー） */
.voice-cubes .face--front  { transform: translateZ(var(--size));                  background: linear-gradient(135deg,#8FAFEF, #C9DCFA); }
.voice-cubes .face--back   { transform: rotateY(180deg) translateZ(var(--size));  background: linear-gradient(135deg,#A0C2F2, #E0EEFB); }
.voice-cubes .face--right  { transform: rotateY( 90deg) translateZ(var(--size));  background: linear-gradient(135deg,#87A6DD, #C5D8F7); }
.voice-cubes .face--left   { transform: rotateY(-90deg) translateZ(var(--size));  background: linear-gradient(135deg,#7A97CC, #BBD1F3); }
.voice-cubes .face--top    { transform: rotateX( 90deg) translateZ(var(--size));  background: linear-gradient(135deg,#A6C4F5, #E6F0FB); }
.voice-cubes .face--bottom { transform: rotateX(-90deg) translateZ(var(--size));  background: linear-gradient(135deg,#B5D1F8, #F7FAFD); }

/* SPでは内側に寄せる */
@media (max-width: 768px){
  .voice-cubes { right: -30px; top: 80px; }
  .voice-cubes .cube-wrapper--large { top: 40px; right: 0; }
  .voice-cubes .cube-wrapper--small { top: 120px; right: 20px; }
}





/* --------------------- */
     キャッチコピー
/* --------------------- */
.copy h1 br {
  margin-bottom: 1.5em !important; /* ← 好きな間隔。0.3em 〜 0.8em で調整 */
  display: block;
  content: "";
}









/* ================================================================================================================================ */


/**** ================================
  recruit ページ（page-id:97）専用ヘッダー調整
================================ ****/

/* --- PC表示 --- */
@media (min-width: 769px){
  /* ヘッダー行そのもの */
  body.page-id-97 .site-header .inside-header{
    display:flex !important;
    align-items:center !important;
    justify-content:space-between !important;
    width:100% !important;
    max-width:none !important;
    margin:0 !important;
    padding:16px 32px !important;  /* ← ヘッダー縦幅は上下の数値で調整 */
    box-sizing:border-box !important;
  }

  /* ロゴ（左側固定） */
  body.page-id-97 .site-branding,
  body.page-id-97 .site-logo{
    flex:0 0 auto !important;
    margin:0 !important;
  }
  body.page-id-97 .custom-logo{
    height:22px !important;       /* ← ロゴの高さを調整（18〜28pxあたりで変更可） */
    width:auto !important;
    max-height:none !important;
    display:block !important;
  }

  /* メニュー（右側固定） */
  body.page-id-97 .main-navigation{
    margin-left:auto !important;
    margin-right:0 !important;
    float:none !important;
    display:flex !important;
    align-items:center !important;
  }
  body.page-id-97 .main-navigation .main-nav > ul{
    display:flex !important;
    flex-wrap:nowrap !important;
    white-space:nowrap !important;
    gap:32px !important;          /* ← メニュー項目間の間隔 */
    margin:0 !important;
    padding:0 !important;
    list-style:none !important;
  }
  body.page-id-97 .main-navigation .main-nav > ul > li > a{
    font-size:18px !important;    /* ← メニュー文字サイズ */
    line-height:1.5 !important;
    padding:0 !important;
    font-weight:500 !important;
    color:#111 !important;
    text-decoration:none !important;
  }

  /* 保険：ズレ防止（過去の調整解除） */
  body.page-id-97 .site-header,
  body.page-id-97 .inside-header,
  body.page-id-97 .site-branding,
  body.page-id-97 .site-logo,
  body.page-id-97 .main-navigation{
    position:relative !important;
    left:auto !important; right:auto !important; transform:none !important;
  }
}

/* --- スマホ表示（768px以下） --- */
@media (max-width:768px){
  body.page-id-97 .custom-logo{
    height:20px !important;   /* ← モバイル用にさらに小さく */
  }
}

/* === recruit（page-id:97）専用：ロゴを確実に小さく === */

/* いろんなテーマの出力に対応して一網打尽に指定 */
body.page-id-97 img.custom-logo,
body.page-id-97 a.custom-logo-link img,
body.page-id-97 .site-logo img,
body.page-id-97 .site-branding img,
body.page-id-97 .navigation-branding img,
body.page-id-97 .site-header .inside-header img.custom-logo {
  height: 22px !important;      /* ← 好きな値に。例: 14px/18px */
  max-height: 22px !important;
  width: auto !important;
  aspect-ratio: auto !important;
  display: block !important;
}

/* SVGロゴの場合の保険 */
body.page-id-97 svg.custom-logo,
body.page-id-97 .site-logo svg {
  height: 22px !important;
  width: auto !important;
}

/* 背景画像型ロゴ（稀）への保険 */
body.page-id-97 .site-logo a,
body.page-id-97 .site-branding a {
  background-size: auto 22px !important;
  background-repeat: no-repeat !important;
}

/* ロゴ周りの余白で“大きく見える”のを防ぐ */
body.page-id-97 .site-branding,
body.page-id-97 .site-logo,
body.page-id-97 a.custom-logo-link {
  margin: 0 !important;
  padding: 0 !important;
  line-height: 0 !important;
}

/* 参考：ヘッダー行の余白（縦幅）もここで調整可能 */
@media (min-width:769px){
  body.page-id-97 .site-header .inside-header{
    padding-top: 25px !important;   /* 縦幅をさらに詰めたい/広げたい時はここ */
    padding-bottom: 17px !important;
  }
}



















/* ================================================================================================================================ */



/* ===== recruit（page-id:97）だけ中央に戻す・左ズレ修正 ===== */

/* 1) ヒーローCTAボックスの left/transform を無効化して中央に */
body.page-id-97 .hero-section{
  left: 0 !important;
  right: auto !important;
  transform: none !important;
  margin: 200px auto 60px !important;   /* ← 中央寄せ（上下は好みで） */
  max-width: 1600px !important;
  width: min(96vw, 1600px) !important;  /* 画面に合わせてはみ出し防止 */
}

/* 2) 念のため、親コンテナ側のズラし指定も無効化（保険） */
body.page-id-97 #page,
body.page-id-97 .site,
body.page-id-97 .site-content,
body.page-id-97 .inside-article{
  position: static !important;
  left: auto !important;
  right: auto !important;
}

/* 3) 横スクロールが出てる場合の保険 */
html, body{ overflow-x: hidden; }

/* --- ここから任意：少しだけ右に寄せたい時 --- */
/* 少し右へ寄せたいなら、下の --cta-shift を + 方向で調整（px） */
body.page-id-97 .hero-section{
  --cta-shift: 0px;  /* 例: 20px にすると少し右へ、-20px で左へ */
  margin-left: calc((100vw - min(96vw, 1600px))/2 + var(--cta-shift)) !important;
  margin-right: calc((100vw - min(96vw, 1600px))/2 - var(--cta-shift)) !important;
}


/* ===== recruit（page-id-97）専用：求人CTAボックス位置調整 ===== */
body.page-id-97 .hero-section {
  top: -140px !important;  /* ← 元は 200px、数字を減らすと上に詰まる */
}

