@charset "UTF-8";
@keyframes arrowMove {
  0% {
    transform: skew(45deg) translateX(0); }
  100% {
    transform: skew(45deg) translateX(10px); } }

@font-face {
  font-family: 'genshin';
  src: url("../fonts/GenShinGothic-Bold.ttf") format("truetype");
  font-weight: bold; }

@font-face {
  font-family: 'emugo';
  src: url("../fonts/GenEiMGothic2-Heavy.ttf") format("truetype");
  font-weight: black; }

/*
.f-genkaku, section h2.title {
  font-family: source-han-sans-japanese, sans-serif;
  font-style: normal; }
*/
.w-genkaku-bo {
  font-weight: 700; }

.w-genkaku-re {
  font-weight: 400; }

.f-genshin {
  font-family: 'genshin'; }

.f-emugo {
  font-family: 'emugo'; }

.f-mei, section#greeting .context, section#companyInfo table tr th, section#companyInfo table tr td, section#dlArea .center h2.index, section#dlArea .center .files a.file span.filename, section#locateArea .center .info .context p {
  /*font-family: 'メイリオ', Meiryo,sans-serif;*/ }

.grad {
  background: linear-gradient(to right, #22DCFD 0%, #1C91E2 60%, #5865B9 100%); }

.center {
  max-width: 1000px;
  width: 100%;
  margin: 0 auto; }
  @media screen and (max-width: 1024px) {
    .center {
      padding: 0 20px; } }

section h2.title {
  font-weight: normal;
  font-size: 24px;
  position: relative;
  display: inline-block;
  margin-bottom: 25px;  /* 下線との間隔を広げる */
}

/* 英語表記のスタイル */
section h2.title .en {
  display: block;
  font-size: 14px;
  font-weight: 600;
  color: #1375bc;  /* トップページのOUR SERVICESと同じ色 */
  margin-top: 5px;
  letter-spacing: 1px;
}

/* タイトル下線（文字幅に合わせる） */
section h2.title::after {
  content: '';
  position: absolute;
  bottom: -12px;  /* 下線をより下に移動 */
  left: 0;
  width: 100%;
  height: 2px;
  background: linear-gradient(to right, #22DCFD 0%, #1C91E2 60%, #5865B9 100%);
  border-radius: 1px;
}

@media screen and (max-width: 1024px) {
  section h2.title {
    text-align: center;
    display: inline-block;
    margin: 0 auto 25px auto;
    width: auto;
  }
  
  /* モバイルでの英語表記調整 */
  section h2.title .en {
    font-size: 12px;
    margin-top: 3px;
  }
  
  /* モバイルでも文字幅に合わせる */
  section h2.title::after {
    left: 0;
    transform: none;
    width: 100%;
    bottom: -10px;
  }
  
  /* centerクラス内での中央配置 */
  .center {
    text-align: center;
  }
}

section#greeting .context {
  padding: 0 50px;
  /*font-size: 14px;*/ }
  @media screen and (max-width: 560px) {
    section#greeting .context {
      padding: 0 10px; }
      
    /* 小画面での英語表記調整 */
    section h2.title .en {
      font-size: 11px;
      margin-top: 2px;
    }
  }
  section#greeting .context p {
    margin: 0 0 0.4em; }
  section#greeting .context p:last-child {
    margin-bottom: 0; }
  section#greeting .context ol {
    margin-top: 0;
    margin-bottom: 0; }
  /* セクション見出し（ミッション/ビジョン/バリュー）の上余白を確保 */
  section#greeting .center + .center h2.title {
    margin-top: 45px;
  }
  @media screen and (max-width: 560px) {
    section#greeting .center + .center h2.title {
      margin-top: 32px;
    }
  }

section#companyInfo {
  padding: 70px 0; }
  section#companyInfo table {
    width: 100%;
    border-collapse: collapse;
    border-color: #E3E3E3; }
    section#companyInfo table tr th {
      width: 180px;
      background: #EFEFEF;
      padding: 20px 0;
      font-size: 14px;
      font-weight: normal;
      text-align: right;
      padding-right: 40px; }
      @media screen and (max-width: 1024px) {
        section#companyInfo table tr th {
          width: 100px;
          padding: 20px 0;
          text-align: center; } }
    section#companyInfo table tr td {
      padding: 20px 40px;
      text-align: left;
      /*font-size: 14px;*/
      font-weight: normal; }
      @media screen and (max-width: 560px) {
        section#companyInfo table tr td {
          padding: 20px 10px; } }

section#dlArea {
  background: #F6F6F6;
  padding: 70px 0; }
  section#dlArea .center h2.index {
    text-align: center;
    font-size: 14px;
    font-weight: normal;
    margin-bottom: 30px; }
  section#dlArea .center .files {
    display: -webkit-flex;
    display: -ms-flex;
    display: flex;
    justify-content: center; }
    section#dlArea .center .files a.file {
      display: -webkit-flex;
      display: -ms-flex;
      display: flex;
      align-items: flex-end; }
      section#dlArea .center .files a.file:first-child {
        margin-right: 30px; }
      section#dlArea .center .files a.file .icon {
        width: 40px;
        margin-right: 20px; }
        section#dlArea .center .files a.file .icon img {
          display: block;
          width: 100%; }
      section#dlArea .center .files a.file span.filename {
        color: #009BCC;
        font-size: 14px;
        font-weight: normal;
        text-decoration: underline; }

section#locateArea {
  padding: 70px 0; }
  section#locateArea #gMap,
  section#locateArea #gMap_branch {
    height: 360px;
    width: 100%;
    max-width: 1000px;
    margin: 0 auto 30px auto;
    border-radius: 8px;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
    display: block; }
    
  /* レスポンシブ対応 - .centerクラスと同じ幅に調整 */
  @media screen and (max-width: 1024px) {
    section#locateArea #gMap,
    section#locateArea #gMap_branch {
      max-width: 100%;
      height: 320px;
      padding: 0 20px;
      box-sizing: border-box;
    }
  }
  
  @media screen and (max-width: 768px) {
    section#locateArea #gMap,
    section#locateArea #gMap_branch {
      max-width: 100%;
      height: 280px;
      border-radius: 6px;
      padding: 0 20px;
      box-sizing: border-box;
    }
  }
  
  @media screen and (max-width: 560px) {
    section#locateArea #gMap,
    section#locateArea #gMap_branch {
      max-width: 100%;
      height: 250px;
      border-radius: 4px;
      margin: 0 auto 20px auto;
      padding: 0 20px;
      box-sizing: border-box;
    }
  }
  section#locateArea .center .info {
    display: -webkit-flex;
    display: -ms-flex;
    display: flex;
    padding: 20px 30px;
    border: #C4C4C4 solid 1px; }
    section#locateArea .center .info .icon {
      width: 40px;
      margin-right: 20px; }
      section#locateArea .center .info .icon img {
        display: block;
        width: 100%; }
    section#locateArea .center .info .context p {
      font-size: 14px;
      font-weight: normal; }

.border-color, .underline {
  background: linear-gradient(to right, #22DCFD 0%, #1C91E2 60%, #5865B9 100%); }

.underline {
  display: none !important;  /* 右側の線を非表示 */
  margin-top: 10px;
  margin-bottom: 50px;
  height: 2px; }
  @media screen and (max-width: 1024px) {
    .underline {
      margin: 0 auto;
      margin-top: 10px;
      margin-bottom: 50px; } }
  .underline.size4 {
    width: 150px !important;  /* calc()を使わず固定値で確実制御 */
    max-width: 200px !important;
    margin: 10px auto 50px auto !important;
  }
  @media screen and (max-width: 768px) {
    .underline.size4 {
      width: 120px !important;
      max-width: 80vw !important;
    } }
  @media screen and (max-width: 560px) {
    .underline.size4 {
      width: 100px !important;
      max-width: 70vw !important;
    } }
  .underline.size5 {
    width: 180px !important;  /* calc()を使わず固定値で確実制御 */
    max-width: 250px !important;
    margin: 10px auto 50px auto !important;
  }
  @media screen and (max-width: 768px) {
    .underline.size5 {
      width: 150px !important;
      max-width: 85vw !important;
    } }
  @media screen and (max-width: 560px) {
    .underline.size5 {
      width: 130px !important;
      max-width: 75vw !important;
    } }
