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

共通タイトル

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

.title_01 {font-size: 62px;font-weight:700;}
.title_02 {font-size: 62px;font-weight:700;}
.title_03{font-size: 53px;font-weight:700;}

.title_06{font-size: 52px;font-weight:700;}


.title_09 {font-size:32px;font-weight:700;}
.title_10 {font-size:32px;font-weight:700;}


@media screen and (min-width:479px) and ( max-width:1079px) {

  .title_02 {font-size: 40px;}
  .title_03 {font-size: 42px;}

  .title_06 {font-size: 32px;}

  .title_10 {font-size:28px;}

}

@media screen and (max-width:479px) {

  .title_02 {font-size: 30px;}
  .title_03 {font-size: 26px;}

  .title_06 {font-size: 24px;}

  .title_09 {font-size:20px;}
  .title_10 {font-size:24px;}


}

body{
  overflow-x:hidden ;
}

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

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

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

header

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

.header {
  background: #FFF;
  position: relative;
  z-index: 10000;
}

/* 中身制御 */
.header-inner {
  margin: 0 auto;
  padding: 30px 40px;

  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 20px;
}

.logo {
  width: 100%;
  max-width: 240px;
}


.nav {
  display: inline-flex;
  background: linear-gradient(90deg, #3B4C82 0%, #58ADD5 48.56%, #A3DBB5 100%);
  padding: 20px 40px;
  border-radius: 999px;
}

.nav ul {
  display: flex;
  gap: 24px;
  list-style: none;
  margin: 0;
  padding: 0;
}

.nav a {
  color: #fff;
  text-decoration: none;
  font-size: 14px;
  white-space: nowrap;
  transition: 0.3s;
}

.nav a:hover {
  opacity: 0.7;
}

/* デフォルト（PC）では完全に無効 */
.menu-overlay {
  display: none;
}


.hamburger {
  display: none;
}



/* レスポンシブ------------------------------------------ */

@media (max-width: 1080px) {

  .header {box-shadow: 0 4px 45px rgba(0, 0, 0, 0.1);}

  .header-inner {
    position: relative;
    justify-content: center; /* ロゴ中央 */
    background: #fff;
  }

  /* ロゴ中央固定 */
  
  .header .logo {
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    width: 30vw;
    max-width: 138px;
  }

  /* ナビ消す */
  .nav {display: none;}

  /* ハンバーガー表示 */
  .hamburger {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;

    width: 48px;
    height: 48px;

    margin-left: auto; /* 右寄せ */

    background: linear-gradient(90deg, #3B4C82, #58ADD5, #A3DBB5);
    border-radius: 50%;
  }

  /* 線 */
  .hamburger span {
    width: 18px;
    height: 2px;
    background: #fff;
    margin: 2px 0;
    transition: 0.3s;
  }


  /* オーバーレイ有効化(中身) ---------------------*/
  .menu-overlay {
    display: block;

    position: fixed;
    inset: 0;
    z-index: 9999;

    background: linear-gradient(135deg, #3B4C82, #58ADD5, #A3DBB5);

    opacity: 0;
    visibility: hidden;
    transition: 0.4s;
  }

  .menu-overlay.active {opacity: 1;visibility: visible;}

  .hamburger.active span:nth-child(1) {transform: rotate(45deg) translate(4px, 4px);}
  .hamburger.active span:nth-child(2) {opacity: 0;}
  .hamburger.active span:nth-child(3) {transform: rotate(-45deg) translate(4px, -4px);}

  .menu-list a{
    color: #fff;
    text-decoration: none;
    font-size: 25px;
    font-weight: 500;
    letter-spacing: 0.08em;
    line-height: 1.6;
  }

  .menu-logo{margin-top: 4vw;}
  .menu-logo img{width: 100%;}

  .menu-inner {
    position: relative;
    height: 100%;

    padding: 160px 10vw 40px
  }

}

@media screen and (max-width:479px) {

  .header-inner {padding: 10px}
  .hamburger{width: 38px;height: 38px;}
  .menu-list a{font-size: 6vw;}
  .menu-inner {padding: 30vw 10vw 40px;}
  .menu-logo{margin-top: 15vw;}

}


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

footer

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

.footer {
  position: relative;
  background: linear-gradient(135deg, #3B4C82, #58ADD5, #A3DBB5);
  color: #fff;
  padding: 80px 60px 0; /* 下は余白消す */
  overflow: hidden;
}

.footer-inner {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  max-width: 1500px;
  margin: 0 auto 100px;
}

.footer-left {
  max-width: 500px;
}

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

.link{  margin-bottom: 6px;}

.link a{
  font-size: 14px;
  opacity: 0.9;
  cursor: pointer;
  text-decoration: none;
  color: #fff;
}

.link a:hover{opacity: 0.8;}

.company {
  margin-top: 40px;
  font-size: 14px;
  line-height: 1.6;
  opacity: 0.9;
}

.company p{  margin-bottom: 0;}

.footer-right {
  display: flex;
  flex-direction: column;
  gap: 20px;
}

.footer-inner .card {
  background: #fff;
  color: #A3DBB5;
  border-radius: 12px;
  padding:64px 28px;
  width: 260px;
  height: 100px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  box-sizing: border-box;
}

.footer-inner a{text-decoration: none;}

.footer-inner  .card-title {
  font-weight: 500;
  font-size: 22px;
  margin-bottom: 0;
}

.footer-inner  .card-sub {
  font-size: 14px;
  margin-top: 4px;
}



.footer-bg-text {
  width: 100%;
  line-height: 0;
  max-width: 1500px;
  margin: 0 auto 100px;
}

.footer-bg-text img {
  width: 100%;
  height: auto;
  display: block;
}

@media (max-width: 1080px) {

  .footer-inner {display: block;}
  .footer-right{flex-direction:inherit;margin-top: 30px;}
  .footer-inner .card{width: 40vw;height: 140px;}
}


@media screen and (max-width:479px) {

  .footer {padding: 90px 30px 0;}

.footer-right{display: block;}
.footer-inner .card{width: 100%;margin-bottom: 10px;}

}




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

FV

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

/* FV全体---- */
.fv {
  padding: 80px 0 320px; /* ←下に余白追加 */
  background: #FFF;
  position: relative;
  overflow-x: hidden;
}

/* テキスト */
.fv-text {
  position: absolute;
  top: 80px;
  left: 20vw;

  z-index: 2; /* ←前面に出す */
}

.fv-text img {
  width: 500px; /* 適宜調整 */
  height: auto;

  opacity: 0;
  transition: opacity 1.6s ease, transform 1.6s ease;
  transform: translateY(20px); 
}

.fv-text img.fade-in {
  opacity: 1;
  transform: translateY(0);
}

/* メンバー配置---- */
.fv-members {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  gap: 40px;


  width: calc(100% + 80px); /* ←左右に広げる */
  margin-left: -40px;       /* ←中央に戻す */

  position: relative;
  z-index: 1;
}


/* 各メンバー（サイズ統一）---- */
.member {width: 25%;}

/*画像---- */
.member img {
  width: 100%;
  height: auto;

  border-radius: 20px;
  display: block;

  transform: scale(1.05);
  opacity: 0;
  transform: scale(1.1);
}

.member img.fade-in {opacity: 1;transform: scale(1.05);}

/* ランダム表示---- */
.m1 {transform: translateY(20px);}
.m2 {transform: translateY(240px);}
.m3 {transform: translateY(0px);}
.m4 {transform: translateY(220px);}



/* フェード---- */

.member img {transition: opacity 1.6s;}

.member img.fade-out {opacity: 0;}







@media (max-width: 1080px) {

  .fv{padding: 10vw 0;}

   .fv-text {
    position: static; /* ←通常の文書フローに戻す */
    margin: 0 auto 5vh ;
    width: 60vw;
  }

   .fv-text img{
    width: 100%;  }

  .fv-members {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 40px clamp(12px, 4%, 24px);

    width: 100%;
    margin: 0 auto;
  }

  .member {
    width: 100%;
    transform: none !important;
    display: block;
  }

 .member:nth-child(odd) img {
    margin-left: -10px;
  }

  .member:nth-child(even) img {
    margin-right: -10px;
  }

}



@media screen and (max-width:479px) {

  .fv-text {
    margin: 0 auto 5vh ;
    width: 80vw;
  }

}




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

SHERPAとは

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


.sherpa-hero {
  position: relative; 
  top: 0;
  z-index: 2;
  width: 100%;
  padding: 140px 0 200px;
  text-align: center;
  color: #fff;
  overflow: hidden;
  background: linear-gradient(135deg, #3B4C82, #58ADD5, #A3DBB5);
  border-radius: 30px 30px 0 0;
}

.sherpa-hero::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-image: url('../img/sherpa_bk.png'); /* 波模様の透過画像 */
  background-size: cover;
  background-position: center;
  opacity: 0.4; /* 重なり具合を調整 */
  z-index: 1;
}

.container {
  position: relative;
  z-index: 2;
  max-width: 1000px;
  margin: 0 auto;
}

.brand-title {
  margin-bottom: 70px;
  letter-spacing: 0.1em;
}

.main-visual img {
  width: 100%;
  max-width: 747px; /* PCでの最大幅 */
  height: auto;
  margin-bottom: 100px;
}


.badge {
  display: inline-block;
  margin-bottom: 50px;
  padding: 10px 40px; 
  border-radius: 50px;
  background: #A3DBB5;
  
  color:#fff;
  font-weight: 700;
  font-size: 28px;
  letter-spacing: 0.05em;
}

.stats-container {
  display: flex;
  justify-content: center; /* 中央寄せ */
  align-items: flex-end;   /* 下揃え（単位の高さがズレても綺麗に見えます） */
  gap: 40px;               /* 画像同士の間隔 */
  max-width: 900px;
  margin: 0 auto 60px;
}

.stat-item {
  flex: 0 1 auto; /* コンテンツに合わせてサイズ調整 */
}

.stat-item_title{
  font-size: 24px;
  margin-bottom: -30px;
}



.counter-section{  
  display: flex;
  align-items: baseline;}

/* 数字のスタイル */
.number {
  font-size: 74px;
  font-weight: bold;
  color: #fff;
}
.unit { font-size: 32px; }
.unit2 { font-size: 32px; align-self: center;font-weight: bold;margin: 10px 5px 0;}


.description {
  font-size: 16px;
  line-height: 1.8;
  color: rgba(255, 255, 255, 0.9);
  max-width: 1080px;
  margin: 0 auto;
}

@media screen and ( max-width:1079px) {
  
.brand-title{margin-bottom: 40px;}
.main-visual img{width: 75%;}
.badge{font-size: 24px;}
.stats-container{width: 90%;margin-bottom: 40px;}
.number {font-size: 8vw;}
.stat-item_title{font-size: 20px;margin-bottom: -20px;}
.unit,.unit2{font-size: 26px;}
.description{text-align: left;width: 90%;}

}

@media screen and ( max-width:600px) {

 .stats-container{flex-wrap: wrap;}
 .number {font-size: 12vw;}

}

@media screen and (max-width:479px) {

  .sherpa-hero {padding:15vw 0 20vw;}
  .main-visual img{margin-bottom: 40px;}
  .badge{font-size: 18px;padding: 7px 35px}
  .stats-container{display: block;}
  .stat-item{margin: auto;}
  .counter-section{justify-content: center;}
  .number{font-size: 15vw;}

}



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

SHERPA仕組み

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



.structure {
  background: #fff;
  padding: 120px 0 180px;
}

.structure-inner {
  max-width: 1080px;
  margin: 0 auto;
  padding: 0 40px;
}

.structure-top {
  display: grid;
  grid-template-columns: 1fr minmax(500px, 100px);
  gap: 2vw;
  align-items: center;
}

.structure-logo {
  display: block;
  width: 360px;   /* デザインに合わせて調整 */
}


.structure-title span {
  display: block;
  margin-bottom: 8px;
}


.structure-image {
  position: relative;
  right: clamp(-200px, calc((100vw - 1080px) / -4), 0px);
  aspect-ratio: 4 / 3;
  height: auto;
  width: 660px;
}

.structure-image img {
  border-radius: 30px 0 0 30px; 
  width: 100%;
  height: 100%;
  object-fit: cover;
}


.structure-lead {
  line-height: 1.3;
  margin-bottom: 24px;

  background: linear-gradient(135deg, #3B4C82, #58ADD5, #A3DBB5);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}

.structure-desc {
  font-size: 14px;
  line-height: 1.8;
  margin-bottom: 16px;
  color: #333;
}


.structure-bar {
  margin: 80px 0;
  position: relative;
  left: calc((100vw - 1080px) / -2);
}

.structure-bar img {
  width: 60%;
  height: auto;
  display: block;
  margin-left: -40px; /* ←親のpadding打ち消し */
}
.structure-center {
  text-align: center;
  font-size: 14px;
  line-height: 1.8;
  margin-bottom: 80px;
}


.structure-container {
  display: flex;
  align-items: center;
  margin: 0 auto;
}
.structure-card {
  background: #F9F9F9;
  border-radius: 12px;
  padding: 54px 24px;
  margin: 0 5px;
  width: 100%;
  height: stretch;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  transition: transform 0.3s ease;
}

.structure-card:first-child{
  background: linear-gradient(to right, #58ADD5, #A3DBB5);
}

.structure-card:hover {
  transform: translateY(-5px);
}
.card-image {
  width: 160px;
  height: 160px;
  margin-bottom: 15px;
}
.card-image img {
  width: 100%;
  height: auto;
  object-fit: contain;
}

.card-title {
  font-weight: 700;
  font-size: 26px;
  margin-bottom: 8px;
  background: linear-gradient(135deg, #3B4C82, #58ADD5, #A3DBB5);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}

.card-title.step1{
  background:#fff;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;}

.card-text {
  font-size: 16px;
  line-height: 1.6;
  color: #343434;
  margin: 0;
}

.card-text.step1{color: #fff;}

@media screen and (min-width:1080px) {

  .structure-image img {border-radius: 30px;}
  .structure-bar img {width: 100%;}



}


@media screen and ( max-width:1080px) {

  .structure{padding: 70px 0 140px;}

  .structure-inner{padding: 0;width: 90%;}
  .structure-top {display: block;}
  .structure-logo{width: 220px;}
  .structure-image{margin-left: auto;margin-top: 50px;width: 100%;max-width: 570px;}
  .structure-image img{border-radius: 30px;}

  .structure-bar{left: 0;margin: 50px 0;}
  .structure-bar img{margin-left: -10%;width: 100%;}

  .structure-container{flex-wrap: wrap;justify-content: center;}
  .structure-card {width: 36%;margin: 10px 10px}

  .structure-center{text-align: left;}
  .card-title {font-size: 24px;}


}

@media screen and ( max-width:860px) {

  .structure-card {width: 36%;margin: 5px 5px}
  .card-title {font-size: 20px;}

}

@media screen and (max-width:479px) {

  .structure-logo{width: 170px;}
  .structure-image{margin-top: 20px;}
  .structure-center{margin-bottom: 40px;}
  .structure {padding: 70px 0;}
  .card-title {font-size: 18px;}
  .card-text {font-size: 14px;}
  
  .structure-container{display: block;}


  .structure-card {
    display: flex;
    flex-direction: row;
    align-items: center;
    width:100%;
    box-sizing: border-box;
    padding: 15px 10px;
    margin: 0 0 20px;
  }

  .card-image {
    flex: 0 0 100px; /* イラストの幅を固定（お好みで調整） */
    height: 120px;
    margin-bottom: 0; /* 縦並び用の余白を消す */
    margin-right: 8px; /* 右側に隙間を作る */
  }

  .card-content {
    flex: 1; /* 残りの幅をすべて使う */
    text-align: left; /* テキストを左寄せに */
  }

  .card-title {
    font-size: 20px; 
    margin-bottom: 4px;
  }

  .card-text {
    font-size: 14px; /* 説明文も小さく調整 */
    line-height: 1.4;
  }
  
}



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

market-needs

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


.market-needs{
  position: relative;
  z-index: 3;
  width: 100%;
  background-image: url(../img/market-needs_bk.jpg);
  background-size: cover;
  background-position: top center;
  border-radius: 30px 30px 0 0;
  padding: 200px 0 300px;
}

.market-needs-inner{
  margin: auto;
  width: 100%;
  max-width: 1080px;
}

.market-needs-title{
  width: 100%;
  max-width: 590px;
}

.market-needs-container {
  display: flex;
  gap: 30px;
  justify-content: center;
  margin-top: 50px;
}

.market-card {
  flex: 1;
  background: #F9F9F9;
  border-radius: 10px;
  text-align: center;
  box-shadow: 0 10px 40px rgba(0,0,0,0.03);
}

.market-badge {
  display: inline-block;
  background: #3B4C82;
  color: #fff;
  width: 100%;
  font-size: 26px;
  font-weight: 500;
  padding: 20px 16px;
  border-radius: 10px 10px 0 0;
  box-sizing: border-box;
}

.market-card-title {
  font-size: 22px;
  font-weight: 700;
  color: #333;
  margin-bottom: 20px;
}

/* 数字部分のグラデーション */
.market-num-wrap {
  font-weight: 800;
  color: #3B4C82;
}

.market-needs .number{
  font-weight: 700;
  color: #3B4C82;
}

.market-card-text {
  font-size: 16px;
  line-height: 1.5;
  color: #000000;
  text-align: left;
  padding: 0 30px;
  box-sizing: border-box;
}



@media screen and ( max-width:1080px) {

  .market-needs{padding: 100px 0 200px;}
  .market-needs-inner{width: 90%;}
  .market-needs-title{margin-left: -10%;width: 85%;}

  .mnc-inner{width:47%;}

  .market-needs-container{flex-wrap: wrap;}
  .market-card{flex: none;width: 45%;}
  .market-badge {font-size: 20px;padding: 12px 16px;}


}

@media screen and (max-width:479px) {

  .market-needs{padding: 50px 0;}
  .market-needs-title{margin:0 auto;width: 70%;}

  .mnc-inner{width:100%;margin-bottom: 30px;}

  .market-needs-container{display: block;}
  .market-card{width: 100%;}
   .market-badge {font-size: 18px;}
  .market-card-text {padding: 0 30px 30px;font-size: 14px}


}



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

社長メッセージ

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



.president {
  background: #fff;
  padding: 180px 0 200px;
  border-radius: 30px 30px 0 0;
  position: relative;
  top: -30px;
  z-index: 4;
  box-shadow: 0 4px 45px 0 rgba(0, 0, 0, 0.10);
}

.president-inner {
  max-width: 1080px;
  margin: 0 auto;
  padding: 0 40px;
}

.president-top {
  display: grid;
  grid-template-columns: 1fr minmax(500px, 100px);
  gap: 2vw;
  align-items: center;
}

.president-title-img {
  display: block;
  width: 550px;  
}


.president-title span {
  display: block;
  margin-top: 30px;
  line-height: 1.3;
  background: linear-gradient(135deg, #3B4C82, #58ADD5, #A3DBB5);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;

}


.president-image {
  position: relative;
  right: clamp(-200px, calc((100vw - 1080px) / -4), 0px);
  aspect-ratio: 4 / 3;
  height: auto;
  width: 660px;
  margin-top: -30px;
}

.president-image img {
  border-radius: 30px 0 0 30px; 
  width: 100%;
  height: 100%;
  object-fit: cover;
}


.president-lead {
  line-height: 1.3;
  margin: 40px 0 20px;
  font-size: 24px;
  font-weight: 700;
  color: #343434;
}

.president-desc {
  font-size: 14px;
  line-height: 1.8;
  margin-bottom: 16px;
  color: #333;
}



@media screen and (min-width:1080px) {

  .president-image img {border-radius: 30px;}

}


@media screen and ( max-width:1080px) {

  .president{padding: 70px 0 140px;}

  .president-inner{padding: 0;width: 90%;}
  .president-top {display: block;}
  .president-title span{text-align: center;}
  .president-title-img{margin: auto;max-width: 456px;width: 80%;}
  .president-image{margin: 50px auto;width: 100%;max-width: 570px;}
  .president-image img{border-radius: 30px;}


}


@media screen and (max-width:479px) {

  .president-title span{margin-top: 20px;}
  .president-image{margin-top: 20px;}
  .president-center{margin-bottom: 20px;}
  .president {padding: 70px 0;}
  .president-lead{font-size: 20px;}
  
}





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

特徴

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



.features{
  background: #fff;
  padding: 200px 0 180px;
}

.features-inner {
  max-width: 1080px;
  margin: 0 auto;
  padding: 0 40px;
}

.features-top {
  display: grid;
  grid-template-columns: 1fr minmax(500px, 30vw);
  gap: 2vw;
  align-items: center;
}

.features-logo {
  display: block;
  width: 360px;   /* デザインに合わせて調整 */
}


.features-title span {
  display: block;
  margin-bottom: 40px;
}


/* 外枠（グレーの背景） */
.features_contents {
  background-color: #f7f8f9;
  border-radius: 30px;
  padding: 60px 40px; 
  max-width: 1000px;
  margin: 80px auto;
  position: relative;
}

/* 中のレイアウト（Flexbox） */
.features_contents__inner {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 60px; 
}

/* 画像エリア */
.features_contents__image-area {
  flex-shrink: 0;
  width: 270px;
  margin-left: 90px;
}

.features_contents__image {
  max-width: 400px;          /* 画像サイズは適宜調整してください */
  width: 100%;
  height: auto;
  display: block;
}


/* テキストエリア */
.features_contents__text-box {
  flex: 1;                   /* 残りの幅を埋める */
}

.features_contents__description {
  font-size: 20px;
  line-height: 1.5;
  color: #343434;
  margin: 0;
}

/* タイトルの設定 */
.features_contents__title {
  position: absolute;
  background: linear-gradient(135deg, #3B4C82, #58ADD5, #A3DBB5);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  font-size: 38px; 
  font-weight: 700;
  margin-top: -90px;
  display: inline-block;
}

@media screen and ( max-width:1080px) {

  .features{padding: 70px 0 140px;}

  .features-inner{padding: 0;width: 90%;}
  .features-logo{width: 220px;}

  .features_contents__image-area {width: 200px;margin-left:0;}
  .features_contents__description {font-size: 16px;}
  .features_contents__inner {gap: 30px;}

  .features_contents__title{font-size: 28px;margin-top: -60px;}

  .features_contents{padding: 40px;}

}


@media screen and (max-width:479px) {

  .features {padding: 70px 0;}
  .features_contents {margin: 50px auto;padding: 50px 20px;}
  .features-logo{width: 170px;}
  
   .features_contents__title{font-size: 20px;margin-top: -55px;line-height: 1.3;}
   .features_contents__inner{display: block;}
   .features_contents__image-area{margin: 0 auto 20px;width: 80%;}
   

}


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

シミュレーション

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

.simulation{
  background: #B8DAE9;
  position: relative; 
  padding-bottom: 150px;
}

.simulation::before {
  content: "";
  position: absolute;
  top: 80px;
  left: 0;
  width: 100%;
  height: 100%;
  background-image: url('../img/simulation_bk.png');
  background-size:contain;
  background-repeat: no-repeat;
  background-position: top;
  z-index: 1;
}

.simulation-top{
  position: relative;
  z-index: 5;
}

.simulation-top img{
  margin: auto;
  width: 100%;
  max-width: 630px;
  display: block;
}

.simulation-txtarea{
  text-align: center;
  margin-top: 60px;
}

.simulation-txtarea h3{
  color: #3B4C82;
}

.simulation-txtarea p{
  margin-top: 30px;
}

.simulation-contents{
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 20px;
  max-width: 1080px;
  width: 100%;
  margin: 50px auto 120px;
}

.simulation-contents img{
  width: 100%;
}

.simulation a{text-decoration: none;}

.sim-btn {
  margin: auto;
  display:flex;
  align-items: center;
  justify-content: center;
  gap: 20px;

  padding: 18px 20px;
  min-width: 340px;

  background-color: #3B4C82; 
  color: #ffffff;

  font-size: 16px;
  font-weight: 600;

  border: none;
  border-radius: 9999px;

  cursor: pointer;
  transition: background-color 0.2s ease, transform 0.1s ease;

  position: relative;
  z-index: 10;
  width: fit-content;
}

.simulation a:hover{opacity: 0.9;transition: 0.3s;color: #fff;}

.sim-btn .arrow {
  font-size: 18px;
  line-height: 1;
}

/* ホバー */
.sim-btn:hover {
  background-color: #34486f;
}

/* クリック時 */
.sim-btn:active {
  transform: scale(0.98);
}


@media screen and ( max-width:1080px) {

  .simulation-top img{width: 50%;}
  .simulation-txtarea p{text-align: left;width: 90%;margin: auto;}
  .simulation-contents{width: 90%;display: block;max-width: 500px;}
  .simulation-contents img{margin-top: 20px;}

}



@media screen and (max-width:479px) {

  .simulation-contents{ margin: 30px auto 60px;}
  .simulation{padding-bottom: 80px;}
  .sim-btn {min-width: 290px;}

}



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

インタビュー

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

/* ===== セクション ===== */
.interview {
  background: #EC7016;
  padding: 100px 0;
  color: #fff;
  overflow: hidden;
  border-radius: 30px 30px 0 0;
  margin-top: -30px;
}



.interview {
  position: relative;
}

/* ===== コンテンツ ===== */
.interview__inner {
  width: 100%;
  max-width: 1200px;
  margin: 0 auto;
  position: relative;
  z-index: 1;
}

/* ===== タイトル ===== */
.interview__header {
  position: relative;
  padding-bottom: 20px;
  margin-bottom: 60px;
}

/* 全幅下線 */
.interview__header::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: 0;
  width: 100vw;
  height: 2px;
  background: #fff;
  transform: translateX(-50%);
}

/* タイトル画像 */
.interview__title img {
  display: block;
  max-width: 500px;
  width: 100%;
  height: auto;
}

/* ===== 横並びレイアウト ===== */
.interview__body {
  display: flex;
  align-items: flex-start;
  gap: 40px;
  position: relative; /* 疑似要素の基準 */
}

.interview__body::before {
  content: "";
  position: absolute;
  top: -20px;
  /* 画面の左端から、スライダーの開始位置までを覆う */
  left: calc(50% - 50vw);
  width: calc(50vw - 200px); /* 1200pxの半分(600) - コンテンツ幅(400) = 200 */
  height: 110%;
  background: #EC7016; /* セクションの背景色と同じにする */
  z-index: 2; /* スライダー(1)より上、コンテンツ(3)より下 */
  pointer-events: none; /* クリックを通す */
}


/* 左コンテンツ */
.interview__content {
  width: 400px;
  flex-shrink: 0;
  position: relative; /* 重なり順を指定 */
  z-index: 10;        /* スライダーより上に持ってくる */
}

.interview__heading {
  font-size: 48px;
  margin-bottom: 20px;
  font-weight: 700;
}

.interview__description {
  margin-bottom: 40px;
  line-height: 1.3;
  font-size: 24px;
}

/* ナビ */
.interview__nav {
  display: flex;
  gap: 16px;
  
}

.interview__nav-btn {
  border: none;
  background: none;
  cursor: pointer;
  pointer-events: auto; /* 確実にクリックを通す */
  width: 50px;
}

/* ===== スライダー ===== */
.interview__slider {
  flex: 1;
  min-width: 0;
  /* visibleは解除し、通常の挙動に戻す */
  overflow: hidden; 

   /* 【重要】右側だけ画面端まで突き抜けさせる設定 */
  margin-right: calc(50% - 50vw); 
}

/* Swiper */
.swiper {
  overflow: visible !important;
}

.swiper-wrapper {
  align-items: stretch;
}

.swiper-slide {
  width: 400px !important;
}

.swiper-slide img {
  width: 100%;
  display: block;
}

@media screen and ( max-width:1080px) {

  .interview__inner {width: 90%;margin: auto;}
  .interview__body {flex-direction: column-reverse;}

  .interview__body::before {display: none;}
  .swiper-button-lock{display: block!important;}

  .swiper-slide {width: auto !important;}
  .swiper-slide img {width: 100%;max-width: 340px;}

}

@media screen and (max-width:479px) {

  .interview{padding: 60px 0;}
  .interview__header {margin-bottom: 40px;}
  .interview__body {gap:20px}
  .interview__description {font-size: 18px;}
  .interview__heading{font-size: 30px;}

  .swiper-slide img {width: 100%;max-width: 280px;}

}



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

サポート

================================================================================================================ */
.support {
  background: #F7F7F7;
  padding: 200px 10% 20%;
  position: relative;
  overflow: hidden;
  border-radius: 30px 30px 0 0;
  margin-top: -30px;
}

.support-inner {
  max-width: 900px;
  margin: 0 auto;
  text-align: center;
  position: relative;
  background-color: #fff;
  border-radius: 30px;
  padding: 40px 5% 100px;

}

.support-title {
  position: absolute;
  top: -73px;
  left: 50%;
  transform: translateX(-50%);
  font-size: 82px;
  font-weight: bold;
  letter-spacing: 2px;
  background: linear-gradient(90deg, #3B4C82 0%, #58ADD5 48.56%, #A3DBB5 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}

.support-desc {
  margin-top: 40px;
  font-size: 18px;
  line-height: 1.3;
  color: #333;
}

/* 3カラム */
.support-grid {
  margin-top: 60px;
  display: flex;
  justify-content: space-between;
  gap: 40px;
}

.support-item {
  flex: 1;
}

.support-item img {
  width: 180px;
  margin-bottom: 20px;
}

.support-text {
  font-size: 14px;
  line-height: 1.3;
  color: #333;
  text-align: left;
}

/* 人物 */
.support-person {
  position: absolute;
  bottom: 0;
  width: 35%;
}

/* 左 */
.support-person-left {
  left: -7%;
}

/* 右 */
.support-person-right {
  right: -7%;
}

@media screen and ( max-width:1080px) {

  .support {padding: 120px 5% 0;}
  .support-title {width: max-content;font-size: 62px;top: -53px;}
  .support-grid{display: block;}
  .support-item img {width: 100%;max-width: 250px;}
  .support-inner{padding: 20px 15% 60px;}

  .support-person {width: 75%;}
  .support-person-right{bottom: -50px;}
  .support-person-left{bottom: 20px;}

  .support-person-wrap {margin-top: -60px;position: relative;z-index: 5;width: 60%;margin: -60px auto 0;}

}

@media screen and ( max-width:800px) {

  .support-person-wrap {width: 80%;}
}



@media screen and (max-width:479px) {

  .support-title {font-size: 40px;top: -33px;}
  .support-inner {padding: 20px 10% 60px;}
  .support-desc {font-size: 16px;}
  .support-item img {max-width: 210px;}

  .support-grid {margin-top: 20px;}
  .support-person-wrap {margin-top: -60px;width: 100%;margin: -60px auto 0;}


}



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

パートナー募集

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


.partner{
  position: relative;
  z-index: 3;
  width: 100%;
  background-image: url(../img/recruitment_bk.jpg);
  background-size: cover;
  background-position: top center;
  border-radius: 30px 30px 0 0;
  padding: 200px 0 300px;
  margin-top: -30px;
}

.partner-inner{
  max-width: 1080px;
  width: 100%;
  margin: auto;
  text-align: center;
}

.partner-inner h2{
  color: #FFF;
  text-align: center;
  text-shadow: 0 0 45px #000;
  font-size: 52px;
  font-style: normal;
  font-weight: 700;
  line-height: normal;
  margin-top: 280px;
}

.partner2{
  background-color: #EEEEEE;
  padding-bottom: 220px;
}

.partner-inner2{
  background-color: #fff;
  padding: 5%;
  max-width: 1080px;
  width: 90%;
  border-radius: 30px;
  margin: -220px auto 0;
  position: relative;
  z-index: 12;
  text-align: center;
}

.partner-title {
  font-size: 28px;
  font-weight: bold;
  letter-spacing: 2px;
  background: linear-gradient(90deg, #3B4C82 0%, #58ADD5 48.56%, #A3DBB5 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}

.partner-title2 {
  font-size: 42px;
  line-height: 1.2;
  font-weight: bold;
  letter-spacing: 2px;
  background: linear-gradient(90deg, #3B4C82 0%, #58ADD5 48.56%, #A3DBB5 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}

.partner-inner2 p{
  margin-top: 30px;
}

.partner-inner2 img{
  margin: 40px auto 0;
}

.partner-inner2 a{text-decoration: none;}

.part-btn {
  margin: auto;
  display:flex;
  align-items: center;
  justify-content: center;
  gap: 20px;

  padding: 14px 20px;
  min-width: 340px;

  background-color: #EC7016; 
  color: #ffffff;

  font-size: 16px;
  font-weight: 600;

  border: none;
  border-radius: 9999px;

  cursor: pointer;
  transition: background-color 0.2s ease, transform 0.1s ease;

  margin-top: 30px;
  width: fit-content;
  box-sizing: border-box;
}

.part-btn:hover{opacity: 0.9;transition: 0.3s;color: #fff;}


@media screen and ( max-width:1200px) {

  .partner-inner2{max-width: 940px;}
}

@media screen and ( max-width:1080px) {

  .partner{
    position: relative;
    z-index: 10;
    padding: 20px 0 280px;
  }

  .partner-title {font-size: 24px;}
  .partner-title2 {font-size: 32px;}
  .partner-inner h2{margin-top: 210px;font-size: 28px;}
  .partner-inner2 {padding: 10% 5%;width: 80%;}
  .partner-inner2 p{text-align: left;}

  .partner-inner2 img{width: 80%;}

  .part-btn {margin-top: 60px;}
  .partner2{padding-bottom: 120px;}

}

@media screen and ( max-width:800px) {

   .partner-inner2 img{width: 100%;}
}


@media screen and (max-width:479px) {

  .partner{
  background-image: url(../img/recruitment_bk-sp.jpg);
  padding: 30px 0 390px
  }
  .partner-inner h2 {margin-top: 20px;font-size: 22px;}
  .partner-inner2 img {width: 90%;}
  .part-btn {min-width: 240px;}
  .partner-title {font-size: 18px;}
  .partner-title2 {font-size: 24px;}
  .partner-inner2 p{font-size: 14px;}

  .partner2 {padding-bottom: 80px;}
}


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

FAQ

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


.faq{
  background-color: #EEEEEE;
  padding-bottom: 220px;
}

.faq-inner{
  max-width: 800px;
  width: 100%;
  margin: auto;
  text-align: center;
}

.faq-inner h2{
  font-family: -apple-system, BlinkMacSystemFont, "Helvetica Neue", Arial, sans-serif;
  width: fit-content;
  margin: auto;
  font-size: 82px;
  font-weight: bold;
  letter-spacing: 2px;
  background: linear-gradient(90deg, #3B4C82 0%, #58ADD5 48.56%, #A3DBB5 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}

.faq-inner h3{
  font-family: -apple-system, BlinkMacSystemFont, "Helvetica Neue", Arial, sans-serif;
  width: fit-content;
  margin: -20px auto 0;
  font-size: 32px;
  font-weight: bold;
  letter-spacing: 2px;
  background: linear-gradient(90deg, #3B4C82 0%, #58ADD5 48.56%, #A3DBB5 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}





.qa {
  padding: 24px;
  font-family: -apple-system, BlinkMacSystemFont, "Helvetica Neue", Arial, sans-serif;
}

/* ===== Q（全体が1つの箱） ===== */
.qa-q-box {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  background: #fff;
  border-radius: 30px;
  padding: 14px 40px;
  width: 100%;
  box-sizing: border-box;
}

/* Qアイコン（背景なし） */
.qa-q .qa-icon {
  font-size: 52px;
  font-weight: 700;
  background: linear-gradient(90deg, #3B4C82 0%, #58ADD5 48.56%, #A3DBB5 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}

/* ===== A ===== */
.qa-a {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 14px 40px;
   width: 100%;
  box-sizing: border-box;
}

.qa-a .qa-icon {
  font-size: 52px;
  font-weight: 700;
  background: linear-gradient(90deg, #3B4C82 0%, #58ADD5 48.56%, #A3DBB5 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}

.qa-text {text-align: left;}

/* テキスト */
.qa-text {
  font-size: 22px;
  line-height: 1.6;
  color: #343434;
}

.qa-a .qa-text{font-size: 18px;}

@media screen and ( max-width:1080px) {

  .qa-text {text-align: left;font-size: 20px;}
  .qa-a .qa-text{font-size: 16px;}
  .qa-q-box, .qa-a {padding: 8px 30px;}
  .qa-a{margin: 20px 0;}
  .faq-inner h2{font-size: 62px;}
  .faq-inner h3{font-size: 24px;}

}



@media screen and (max-width:479px) {

  .qa-q-box {border-radius: 20px;}

  .qa-text {font-size: 16px;}
  .qa-a .qa-text{font-size: 14px;}
  .qa-q-box, .qa-a {padding: 0 22px;}
  .qa-q .qa-icon {font-size: 40px;}
  .qa-a .qa-icon {font-size: 40px;}

  .faq-inner h2{font-size: 50px;}
  .faq-inner h3{font-size: 20px;}
}




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

インタビューページ（個別）

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



.interview_container-inner{
  width: 1000px;
  margin: 50px auto 100px;  
}

.interview_p_top {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.interview_p_top .left {
  width: 55%;
}

.interview_p_top .case {
  background: linear-gradient(90deg, #3B4C82 0%, #497AA9 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;

  font-weight: 700;
  letter-spacing: 2px;
  width: fit-content;
  font-size: 23px;
  margin-bottom: 0;
}

.case_txt {
  font-size: 80px;
  font-weight: 700;
  margin: 10px 0 30px;
  line-height: 1;

  width: fit-content;
  background: linear-gradient(90deg, #3B4C82 0%, #58ADD5 48.56%, #A3DBB5 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}

.name {
  font-size: 28px;
  margin-bottom: 10px;
  color: #3B4C82;
  font-weight: 700;
}

.desc {
  font-size: 16px;
  line-height: 1.6;
}

.interview_p_top .right img {
  width: 400px;
  border-radius: 20px;
}

.interview_p_logo {
  margin: 40px 0 120px;
}

.interview_p_logo img {
  width: 70%;
}

.qa-item {
  background: #F7F7F7;
  border-radius: 30px;
  padding: 20px 50px;
  margin-bottom: 80px;
}



.interview_p_content p {
  font-size: 14px;
  line-height: 1.6;
}

.interview_p_q .interview_p_q_icon{
  font-family: -apple-system, BlinkMacSystemFont, "Helvetica Neue", Arial, sans-serif;
  font-size: 80px;
  font-weight: 700;
  background: linear-gradient(90deg, #3B4C82 0%, #58ADD5 48.56%, #A3DBB5 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}

.interview_p_q{
  margin: -60px 0 10px 20px;
  font-size: 28px;
  font-weight: 700;
  color: #3B4C82;

  display: flex;
  align-items: center;
  gap: 20px;
  line-height: 1;
}

.interview_container .partner{
  border-radius: 0;
}

.interviewbac-btn,
.partner-inner-btn{
  margin: auto;
  display:flex;
  align-items: center;
  justify-content: center;
  gap: 20px;

  padding: 14px 20px;
  min-width: 340px;

  background-color: #3B4C82; 
  color: #ffffff;

  font-size: 16px;
  font-weight: 600;

  border: none;
  border-radius: 9999px;

  cursor: pointer;
  transition: background-color 0.2s ease, transform 0.1s ease;

  margin-top: 30px;
  width: fit-content;
  text-decoration: none;
  box-sizing: border-box;
}

.partner-inner-btn{background-color: #EC7016; }

.interviewbac-btn:hover{opacity: 0.9;transition: 0.3s;color: #fff;}
.partner-inner-btn:hover{opacity: 0.9;transition: 0.3s;color: #fff;}

.interview_container .partner{padding: 60px 0 170px;}

@media screen and ( max-width:1080px) {

  .interview_container-inner{width: 90%;max-width: 590px;}
  .interview_p_top{flex-direction: column-reverse;margin: auto;}
  .interview_p_top .left {width:100%;margin-top: 20px;}
  .interview_p_top .right {width:400px;text-align: center;}
  .interview_p_top .right img{width: 100%;}

  .interview_p_top .case{font-size: 20px;}
  .case_txt{font-size: 50px;}
}

@media screen and (max-width:479px) {

  .case_txt{font-size: 35px;margin-top: 0;}
  .name{font-size: 18px;margin-bottom: 0;}
  .desc{font-size: 14px;}

  .interview_container-inner{margin: 50px auto 30px;}
  .interview_p_logo {margin: 40px 0 70px;}
  .interview_p_logo img{width: 100%;}

  .qa-item{padding: 20px 20px;}
  .interview_p_q{font-size: 18px;margin: -50px 0 10px;}
  .interview_p_q .interview_p_q_icon {font-size: 50px;}

  .qa-item{margin-bottom: 60px;}

  .interview_container .partner{margin-top: 60px;padding: 10px 0 60px;}

  .partner-inner-btn {margin-top: 130px;}
  .interviewbac-btn,
  .partner-inner-btn{min-width: 270px;}

  .interview_p_top .right img{width: 75%;margin: auto;}
  
}