@charset "UTF-8";

/* =========================================================
  レスポンシブスタイル（共通 ＋ メイン ＋ 追加機能）
========================================================= */

@media(max-width:768px){
  .sp{ display: none; }
  .pc { display: block; }
  h2 { font-size: 2.6rem; }
  
  .br-sp { display: block; }

  .mv {
    height: 84vh;
}

.topProduct_inner {
    margin-top: 20rem;
}

.topCompany_inner {
    margin-top: 12rem;
}

.topRecruit__bg {
    margin-top: 16rem;
}

.appeartext {
    font-size: 3.2rem;
}

}

@media screen and (max-width:1100px) {
  .openbtn{ position: fixed; display: block; background:#003F8E; cursor: pointer; width: 60px; height:60px; right: 20px; top: 10px; border-radius: 60px; z-index: 1000; }
  .openbtn span { display: inline-block; transition: all .4s; position: absolute; left: 16px; height: 2px; border-radius: 5px; background: #FFF; width: 45%; }
  .openbtn span:nth-of-type(1) { top:16px; }
  .openbtn span:nth-of-type(2) { top:22px; }
  .openbtn span:nth-of-type(3) { top:28px; }
  .openbtn span:nth-of-type(3)::after { content:"Menu"; position: absolute; top:6px; left:-2px; color: #fff; font-size: 1.0rem; text-transform: uppercase; }
  .openbtn.active span:nth-of-type(1) { top: 14px; left: 20px; transform: translateY(6px) rotate(-45deg); width: 30%; }
  .openbtn.active span:nth-of-type(2) { opacity: 0; }
  .openbtn.active span:nth-of-type(3) { top: 26px; left: 20px; transform: translateY(-6px) rotate(45deg); width: 30%; }
  .openbtn.active span:nth-of-type(3)::after { content:"Close"; transform: translateY(0) rotate(-45deg); top:5px; left:4px; }
  #g-nav{ display: none; }
  #g-nav.panelactive{ display: block; position:fixed; z-index: 200; top: 0; left: 0; width:100%; height: 100vh; }
  .circle-bg { position: fixed; z-index: 100; width: 60px; height: 60px; border-radius: 50%; background: #003F8E; transform: scale(0); right: 18px; top: 12px; transition: all 1.5s }
  .circle-bg.circleactive{ transform: scale(50); }
  #g-nav-list { display: none; position: fixed; z-index: 999; width: 100%; height: 100vh; overflow: auto; -webkit-overflow-scrolling: touch; }
  #g-nav.panelactive #g-nav-list { display: block; }

#g-nav ul {
    opacity: 0;
    position: relative;
    z-index: 999;
}

#g-nav.panelactive ul {
    opacity: 1;
    flex-direction: column;
    align-items: flex-start;
    width: 72vw;
    margin: 10rem auto 4rem;
}

  #g-nav.panelactive ul .nav__contact { display: inline-block; margin-top: 30px; }
  #g-nav.panelactive ul .nav__contact::before{ background-color: #FFF; color: #003F8E; }
  #g-nav.panelactive ul .nav__contact:hover{ color: #003F8E; }
  #g-nav.panelactive .menu { text-align: center; width: 100%; color: #FFF; padding-top: 1.2rem; }
  #g-nav.panelactive .border { position: relative; padding:15px 0; display: block; color: #FFF; }
  #g-nav.panelactive .border::after{ border-bottom: 1px solid #FFFFFF; content: ""; display: block; width: 100%; }
  #g-nav header{ background-color: #FFF; }

.menu p {
    display: block;
    font-size: 1.4rem;
    font-weight: 400;
    color: #FFF;
    position: relative;
    margin-left: 1.4rem;
}
.menu p::before {
    content: '';
    width: 8px;
    height: 1px;
    display: inline-block;
    background-color: #FFF;
    position: absolute;
    top: calc(50% - 0px);
    left: 0;
}
  #g-nav.panelactive .border::before { position: absolute; content: ""; top: 40%; right: 10%; width: 8px; height: 8px; border: 2px solid; border-color: transparent transparent #FFF #FFF; transform: rotate(-135deg); }
  #g-nav.panelactive .menu p::after{ display: none; }
  .fadeUp{ animation-name:fadeUpAnime; animation-duration:0.5s; animation-fill-mode:forwards; opacity:0; }
  @keyframes fadeUpAnime{ from { opacity: 0; transform: translateY(100px); } to { opacity: 1; transform: translateY(0); } }
  .fadeUpTrigger{ opacity: 0; }
}


@media screen and (min-width:1100px)  {
  .gnavi .menu a{ position: relative; }
  .gnavi .menu a:hover{ color:#003F8E; }
  .gnavi .menu a::after { content: ''; position: absolute; bottom: 0; left: 10%; width: 80%; height: 2px; background:#003F8E; transition: all .3s; transform: scale(0, 1); transform-origin: center top; }
  .gnavi .menu a:hover::after { transform: scale(1, 1); }
}



@media screen and (max-width: 1040px) {
  .contactLayout { flex-direction: column; gap: 4.0rem; }
  .contactSidebar { width: 100%; position: static; margin-bottom: 2.0rem; }
  
  .stepList { flex-direction: row; justify-content: space-between; position: relative; }
  .stepList::before {
    content: ''; position: absolute; top: 26px; left: 15%; width: 70%; height: 3px; background-color: #E4E7ED; z-index: 1;
  }
  .stepItem { flex: 1; flex-direction: column; gap: 1.0rem; font-size: 1.2rem; text-align: center; position: relative; z-index: 2; }
  .stepNum { margin: 0 auto; }

  .formRow--halfWrap { flex-direction: column; gap: 3.5rem; }
  .formRow--halfWrap .formRow { width: 100%; }
  .confirmRow--halfWrap { flex-direction: column; gap: 3.5rem; padding: 0; border-bottom: none; }
  .confirmRow--halfWrap .confirmRow { width: 100%; padding: 2.0rem 0; border-bottom: 1px solid #EAEAEA; }
}



@media screen and (max-width: 768px){
  .contact { margin-top: 12.0rem; }
}


@media screen and (max-width:970px) {
  .footer { padding: 5.5rem 2.6rem 2rem; }
  .footer__flex { flex-direction: column; }
  .footer__navigation { flex-direction: column; margin: 60px 0 0; }
  .footer__navigation--end { margin: 0 0 20px; }
  .footerNavigation { margin: 10px 0; }
  .footerNavigation p::before { left: -18px }
}

@media screen and (max-width: 1200px) {
  .topService__group h2::before { top: -16.0rem; left: 0; width: 528px; height: 128px; }
  .topService_column { flex-direction: column; }
  .topService_inner { padding-right: 0; margin-top: 9.0rem; }
  .topService__image { width: 100%; margin-top: 8.0rem; margin-right: 0; margin-left: 0; }
}

@media screen and (max-width:1040px){
  .topProduct__group h2::before { top: -11.0rem; right: 0; width:332px; height: 128px; }
  .topProduct_column{ flex-direction: column; margin-left: 2rem; margin-right: 2rem; }
  .topProduct__group { padding-right: 0; }
  .product_column  { gap: 2.0rem; margin-top: 8.0rem; margin-left: -1.0rem; margin-right: -1.0rem; }
  .productList { padding-top: 3.0rem; padding-right: 0; padding-left: 0; min-width: 165px; }
  
.topSolution_leadWrap { flex-direction: column; align-items: flex-start; gap: 3.0rem; }

.topSolution_cards {
    flex-direction: column;
    gap: 4rem;
}

.solutionCard { width: 100%; }

}

@media screen and (max-width: 900px) {
  
.singleSol-introFlex,
.singleSol-serviceFlex {
  flex-direction: column;
  gap: 3.0rem;
}
.singleSol-introImg,
.singleSol-serviceImg {
  width: 100%;
}

.singleSol-introFlex { flex-direction: column; gap: 3.0rem; }
.singleSol-introImg { width: 100%; }

}

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

.item1 { width: 340px; top: 24.0rem; right: 0; }
.item2 { width: 340px; top: 29.0rem; right: 2.0rem; }
.item3 { width: 340px; top: 34.0rem; right: 4.0rem; }
.item4 { width: 340px; top: 39.0rem; right: 6.0rem; }
.item5 { width: 340px; top: 44.0rem; right: 8.0rem; }
.mv_subtitle{ width: 50vw; }

.topService__group h2::before { top: -12.0rem; right: 0; width:332px; height: 128px; }
.topService_column { padding: 5.0rem 2.0rem 8.0rem 2.0rem; padding-right: 2.0rem; padding-left: 2.0rem; }

/* topService__image のネガティブマージン初期化 */
.topService__image { margin: 6.0rem 0 0 0; }

.topCompany__group h2::before { top: -11.0rem; left: -5.0rem; width: 346px; height: 102px; }
.topCompany_inner { padding-top: 12.0rem; }

.topEnvironment_column { flex-direction: column; padding: 4.0rem 3.0rem; }
.environment__group { margin-left: 0; }
.environment__image { min-width: 260px; }
.environment__text { margin-top: 3.0rem; margin-bottom: 2.0rem; }

.topRecruit__bg { width: 100%; height: 342px; margin-top: 20.0rem; }
.topRecruit__bg::before { width: 338px; height: 140px; top: -9.2rem; right: 0; }
.topRecruit_inner h3 { font-size: 3.2rem; margin-top: 8.0rem; margin-left: 2.0rem; }
.more__button.more__arrow.recruit { margin-top: 22.0rem; margin-left: 2.0rem; }
  
/* Solutionタイトルのスマホ調整 */
.topSolution {
    margin-top: 12rem;
    margin-bottom: 8.0rem;
}

.solution_en { font-size: 8rem; margin-bottom: -1.0rem; }
.solution_ja {
  font-size: 2.6rem;
  margin-top: 2.8rem;
}

/* 共通クラス */
.lower-pageHeaderEn { font-size: 7rem; }
.lower-pageHeaderJa { font-size: 2.4rem; }

/* アーカイブ専用クラス */
.archiveSol-sceneContainer { flex-direction: column; }
.archiveSol-sceneHead { width: 100%; padding: 1.0rem 0; }
.archiveSol-sceneCards { flex-direction: column; }
.archiveSol-filterRow { flex-direction: column; }
.archiveSol-filterLabel { width: 100%; margin-bottom: 1.5rem; padding-top: 0; }

/* 結果カード (スマホ時のGridレイアウト) */
.archiveSol-resultCard {
  display: grid;
  grid-template-columns: 90px 1fr 15px;
  gap: 1.0rem 1.5rem;
  padding: 1.5rem;
}
.archiveSol-resultCardImg {
  grid-column: 1 / 2;
  grid-row: 1 / 2;
  width: 100%;
  height: 90px;
  align-self: start;
}
.archiveSol-resultCardBody {
  display: contents;
}
.archiveSol-resultCardHead {
  grid-column: 2 / 4;
  grid-row: 1 / 2;
  margin-bottom: 0;
  align-self: start;
}
.archiveSol-resultCardDesc {
  grid-column: 1 / 3;
  grid-row: 2 / 3;
  font-size: 1.3rem;
}
.archiveSol-resultCardArrow {
  grid-column: 3 / 4;
  grid-row: 2 / 3;
  position: static;
  transform: rotate(45deg);
  justify-self: end;
  align-self: center;
}
.archiveSol-resultCardTitle {
  font-size: 1.5rem;
}

.lower-pageTitle { font-size: 2.4rem; margin-top: 2.0rem; }
.singleSol-heading1 { font-size: 2.0rem; }
.singleSol-heading2, .singleSol-heading3 { font-size: 1.8rem; padding: 1.2rem 1.5rem; }
.singleSol-problemList li { padding: 1.5rem; font-size: 1.4rem; }
.singleSol-strengthDesc { padding-left: 0; margin-top: 1.0rem; }
.singleSol-downloadBtn { font-size: 1.5rem; padding: 1.4rem; }

.formWrapper { padding: 3.0rem 2.0rem; }
.radioGrid { grid-template-columns: 1fr 1fr; }
.flex-input-check { flex-direction: column; align-items: flex-start; gap: 1.5rem; }
.flex-input-check .wpcf7-form-control-wrap { width: 100%; }
.btn_submit { width: 100%; padding: 2.0rem 0; }

.lower-pageTitle { font-size: 2.4rem; margin-top: 2.0rem; }
.singleSol-sectionTitle { font-size: 1.8rem; padding: 1.2rem 1.5rem; margin-bottom: 2.0rem; }
.singleSol-problemItem { padding: 1.5rem; font-size: 1.4rem; gap: 1.0rem; }
.singleSol-featureTitle { font-size: 1.6rem; }
.singleSol-downloadBtn { font-size: 1.5rem; padding: 1.4rem; }

}




@media screen and (max-width:490px) {
  .topCompany__group h2::before { top: -10.0rem; left: -0.4rem; }
  .topCompany_column { row-gap: 4.0rem; flex-direction: column; align-items: center; max-width: 334px; }
  .topCompanyCard { margin-right: 0; width: 100%; }
  .topCompanyCard_image { min-width: 318px; }
  
  .solution_en { font-size: 6.5rem; margin-bottom: -0.5rem; }
  .solution_ja { font-size: 2.2rem; margin-top: -1.0rem; }

  .lower-pageHeaderEn { font-size: 5rem; }
  .lower-pageHeaderJa { font-size: 2.0rem; }

  .stepText { display: none; } 
  .radioGrid { grid-template-columns: 1fr; }
  .customForm .wpcf7-list-item { margin: 0 0 1.0rem 0; display: flex; }
  .flex-input { flex-direction: column; }
  .thanksAction { justify-content: center; }

}

@media screen and (max-width: 390px) {
  .item1 { width: 240px; top: 25.0rem; }
  .item2 { width: 240px; top: 29.0rem; }
  .item3 { width: 240px; top: 34.0rem; }
  .item4 { width: 240px; top: 39.0rem; }
  .item5 { width: 240px; top: 44.0rem; }
  .mv_subtitle { width: 45vw; top: 26vh; }
  
  .topService__image { width: 100vw; margin-left: -2.0rem; margin-right: -2.0rem; }
  .topProduct__group h2::before { top: -11.0rem; right: 2.0rem; width:332px; height: 128px; }
  .topRecruit_inner h3 { font-size: 2.6rem; }
}