/* ViSUALIZE mock スマホ対応CSS
   テーマbase.cssの固定幅(1140px)をオーバーライド
   ブレークポイント: 768px */

/* ============================================================
   ハンバーガーボタン（PC時は非表示）
   ============================================================ */
/* ロゴ下のバー除去 */
header section {
  border-bottom: none;
}

.btn_hamburger {
  display: none;
}

/* ============================================================
   PC（769px以上）: 9ナビ項目を1行に収めるためサイドパディングを縮小
   base.css の padding: 20px 20px 10px → 20px 8px 10px
   ============================================================ */
@media screen and (min-width: 769px) {
  .block_header .nav_global > li > a {
    padding-left: 8px;
    padding-right: 8px;
  }
}

/* ============================================================
   768px以下
   ============================================================ */
@media screen and (max-width: 768px) {

  /* ---- ハンバーガーボタン ---- */
  .btn_hamburger {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    position: absolute;
    top: 50%;
    right: 16px;
    transform: translateY(-50%);
    width: 28px;
    height: 20px;
    background: none;
    border: none;
    cursor: pointer;
    z-index: 200;
    padding: 0;
  }
  .btn_hamburger span {
    display: block;
    width: 100%;
    height: 2px;
    background: #333;
    border-radius: 2px;
    transition: transform 0.3s, opacity 0.3s;
  }
  .btn_hamburger.is_open span:nth-child(1) {
    transform: translateY(9px) rotate(45deg);
  }
  .btn_hamburger.is_open span:nth-child(2) {
    opacity: 0;
  }
  .btn_hamburger.is_open span:nth-child(3) {
    transform: translateY(-9px) rotate(-45deg);
  }

  /* ---- ヘッダー ---- */
  header {
    position: relative;
  }
  .block_header {
    width: 100%;
    padding: 14px 16px;
    display: flex;
    align-items: center;
    position: relative;
    box-sizing: border-box;
    overflow: visible;
  }
  .block_header .logo {
    float: none;
    width: 160px;
    flex-shrink: 0;
  }
  .block_header .logo img {
    height: 36px;
    width: auto;
  }

  /* ---- グローバルナビ（ドロワー） ---- */
  .block_header .nav_global {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100vh;
    background: rgba(255,255,255,0.98);
    z-index: 150;
    padding: 80px 24px 40px;
    overflow-y: auto;
    box-sizing: border-box;
    flex-direction: column;
  }
  .block_header .nav_global.is_open {
    display: flex;
  }
  .block_header .nav_global > li {
    display: block;
    float: none;
    text-align: left;
    border-bottom: 1px solid #eee;
  }
  .block_header .nav_global > li > a {
    display: block;
    padding: 16px 8px;
    font-size: 11px;
    letter-spacing: 0.1em;
  }
  .block_header .nav_global > li span {
    font-size: 18px;
    display: inline;
    margin-right: 8px;
  }
  .block_header .nav_global > li.active > a {
    border-bottom: none;
    color: #e60012;
  }

  /* ---- ヒーロー ---- */
  .block_main {
    height: auto !important;
    min-height: 280px;
  }
  .block_main .img_main {
    position: absolute;
    height: 100%;
  }
  .block_main .info_main {
    width: 100%;
    padding: 40px 20px 32px;
    position: relative;
    z-index: 10;
    box-sizing: border-box;
  }
  .block_main .info_main .txt_main {
    position: static;
    width: 100%;
    text-align: left;
  }
  .block_main .info_main .txt_main .title_main {
    font-size: 28px !important;
    letter-spacing: 0.08em;
    margin-bottom: 16px;
  }
  .block_main .info_main .txt_main p.size_medium {
    font-size: 13px !important;
  }
  .block_main .info_main .txt_main p.title_copy {
    font-size: 12px;
  }
  .block_main .info_main .obj_main {
    display: none;
  }

  /* ---- コンテンツ幅 ---- */
  .wrapper {
    width: 100%;
  }
  .content {
    width: 100%;
    padding: 0 16px;
    box-sizing: border-box;
  }
  .block_intro,
  .info_intro {
    width: 100%;
    float: none;
    padding: 0;
  }
  .flex {
    display: block;
  }

  /* ---- ニュースリスト ---- */
  .list_press li a {
    flex-direction: column;
  }

  /* ---- area_business / area_recruit ---- */
  .area_business .inner {
    width: 100%;
    padding: 0 16px;
    box-sizing: border-box;
  }
  .area_recruit .inner {
    width: 100%;
    padding: 32px 16px;
    box-sizing: border-box;
  }

  /* ---- フッター ---- */
  footer section {
    padding: 32px 0;
  }
  footer .content {
    padding: 0 16px;
    box-sizing: border-box;
  }
  footer .flL {
    float: none;
    width: 100%;
    margin-bottom: 24px;
  }
  footer .subtitle_block-footer {
    float: none;
    width: 100%;
    padding-left: 8px;
    margin-top: 8px;
  }
  footer .nav_link-footer {
    float: none;
    width: 100%;
    padding-left: 8px;
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
  }
  footer .nav_link-footer li {
    margin-right: 0;
    margin-bottom: 0;
  }

  /* ---- テーブル ---- */
  table {
    font-size: 13px;
  }
  th {
    width: 36%;
  }
  th, td {
    padding: 10px 12px;
  }

  /* ---- ボタン ---- */
  .btn_outline {
    padding: 10px 20px;
    font-size: 13px;
  }
}

/* ============================================================
   769px以上でドロワーを強制リセット（JS残留対策）
   ============================================================ */
@media screen and (min-width: 769px) {
  .block_header .nav_global {
    display: inline-block !important;
    position: static;
    height: auto;
    background: none;
    padding: 0;
    overflow: visible;
  }
  .btn_hamburger {
    display: none !important;
  }
}

/* Vision ロゴ スマホ対応 */
@media (max-width: 768px) {
  .vision-logo {
    width: 100% !important;
    max-width: 100% !important;
    margin-left: 0 !important;
  }

  /* ---- business.html biz-grid ---- */
  .biz-grid > * {
    min-width: 100% !important;
  }

  /* ---- company.html float解除 ---- */
  .block_flL, .block_flR {
    float: none !important;
    width: 100% !important;
  }

  /* ---- recruit-interview article-images ---- */
  .article-images {
    display: block !important;
  }
  .article-images img {
    width: 100% !important;
    min-width: 0 !important;
    margin-bottom: 16px;
  }

  /* ---- tech-maestro カード ---- */
  .maestro-cards {
    flex-direction: column !important;
  }
  .maestro-cards > div {
    min-width: 100% !important;
    max-width: 100% !important;
  }

  /* ---- recruit 固定幅画像 ---- */
  .recruit_article img {
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
  }
}

@media screen and (max-width: 768px) {
  table.detail_company th {
    font-size: 12px !important;
    width: 35% !important;
    white-space: nowrap !important;
    letter-spacing: -0.02em !important;
  }
}
