@charset "utf-8";
/* =================================
  PC / SP 表示切替
================================= */
@media screen and (min-width: 1025px) {
  #Gnav {
    display: flex !important;
  }
  .header-logo-menu {
    display: none !important;
  }
}
@media screen and (max-width: 1024px) {
  #Gnav {
    display: none !important;
  }
  .header-logo-menu {
    display: flex !important;
  }
}
/* =================================
  1440px
================================= */
@media screen and (max-width: 1440px) {
  .sv-subtitle {
    font-size: 23px;
  }
  .sv.row .Column2:nth-child(2) {
    padding: 0 30px;
  }
  .r-sv.row .Column2:first-child {
    padding: 0 30px;
  }
  .sv-img img, .r-sv.row .sv-img img {
    max-width: 103%;
  }
  #CONTACT {
    padding: 130px 0 60px;
  }
}
/* =================================
  1024px（iPad含む）
  ※ここにSPヘッダー/ハンバーガー関連を集約
================================= */
@media screen and (max-width: 1024px) {
  /* header / main */
  header {
    width: 100%;
    height: 100px;
    z-index: 1000;
  }
  main {
    overflow-x: hidden;
  }
  #MAIN {
    width: 100%;
  }
  /* SPヘッダー：ロゴ（左）＋ハンバーガー（右） */
  .header-logo-menu {
    width: 100%;
    height: 100%;
    align-items: center;
    justify-content: space-between;
    position: relative;
    padding: 0 16px;
  }
  /* SPヘッダー左ロゴ */
  .sp-header-logo {
    display: flex;
    align-items: center;
    height: 100%;
    z-index: 1100;
  }
  .sp-header-logo img {
    height: 44px; /* お好みで 36〜52px */
    width: auto;
  }
  /* ハンバーガー位置（header内右寄せ・中央） */
  #nav-drawer {
    position: absolute;
    right: 16px;
    top: 0;
    height: 100%;
    transform: none; /* ★ここも消す */
    display: flex;
    align-items: center;
    z-index: 1100;
  }
  /* 重要：SPメニューは中央寄せ運用なので top 指定は無効化 */
  #nav-content .li_wrapper {
    position: static !important;
    top: auto !important;
  }
  /* レイアウト */
  .Column2 {
    flex: 0 0 100%;
    padding: 0 15px;
    max-width: 100%;
    position: relative;
  }
  .sv-subtitle {
    font-size: 22px;
  }
  .sv.row .Column2:nth-child(2) {
    padding: 40px 110px;
  }
  .r-sv.row .Column2:nth-child(2) {
    padding: 0;
  }
  .r-sv.row {
    flex-wrap: wrap-reverse;
    display: flex;
  }
  .r-sv.row .Column2:first-child {
    padding: 40px 110px;
  }
  .sv.row {
    margin: 0 0 60px;
  }
  .sv.row:last-child {
    margin: 0;
  }
  #CONTACT {
    padding: 100px 20px 60px;
  }
  #CONTACT table {
    width: 90%;
  }
  .privacy-policy {
    padding: 0 50px;
  }
}
/* =================================
  768px（iPad縦〜）
================================= */
@media screen and (max-width: 768px) {
  .p-greeting {
    max-width: 98%;
  }
}
/* =================================
  480px（スマホ）
================================= */
@media screen and (max-width: 480px) {
  p {
    font-size: 16px;
  }
  section {
    padding: 100px 0;
  }
  .Column3, .Column3_1, .Column3_2 {
    flex: 0 0 100%;
    max-width: 100%;
  }
  .row {
    display: block;
    flex-wrap: wrap;
  }
  h2 {
    font-size: 40px;
  }
  .h2-ja {
    font-size: 24px;
  }
  h3 {
    font-size: 20px;
  }
  /* ロゴサイズ（スマホ微調整） */
  .sp-header-logo img {
    height: 40px;
  }
  /* ハンバーガー位置（スマホ微調整） */
  #nav-drawer {
    right: 12px;
    top: 0;
    height: 100%;
    transform: none;
    display: flex;
    align-items: center;
  }
  .en {
    font-size: 30px;
    line-height: 1;
    margin-bottom: 10px;
  }
  #nav-content .li_wrapper .menu-item:first-child img {
    width: 140px; /* 好みで 120〜180 */
    max-width: none;
  }
  .h3-greeting {
    font-size: 16px;
    line-height: 1.5;
    margin: 40px auto;
  }
  .sv-subtitle {
    font-size: 19px;
  }
  .sv-intro {
    width: 100%;
  }
  .sv.row .Column2:nth-child(2) {
    padding: 40px 15px;
  }
  .r-sv.row .Column2:first-child {
    padding: 40px 15px;
  }
  #CONTACT {
    padding: 70px 0;
  }
  .w1020 {
    padding: 0 15px;
  }
  #CONTACT table {
    width: 100%;
  }
  #CONTACT table th {
    display: block;
    width: 100%;
    padding: 15px 0 5px;
  }
  #CONTACT table td {
    width: 100%;
    display: block;
    padding: 0 0 15px;
  }
  #CONTACT table td input, #CONTACT table textarea {
    padding: 0 10px;
  }
  .privacy-policy {
    padding: 0;
  }
  .for-sp {
    display: block;
  }
  .main-inner img {
    margin: 0 auto 40px;
    width: 35%;
  }
  .main-inner .com-name {
    margin: 40px 0;
    font-size: 20px;
  }
}
/* =================================
  350px（小型スマホ）
================================= */
@media screen and (max-width: 350px) {
  body p, li {
    font-size: 15px;
  }
  h2 {
    font-size: 47px;
  }
  h3 {
    font-size: 43px;
  }
  .sv-subtitle {
    font-size: 17px;
  }
  .sp-header-logo img {
    height: 36px;
  }
}

/* ナビ全体の重なり順を安定させる */
#nav-drawer { position: relative; z-index: 9999; }

/* メニュー本体（リンクがある側）を最前面に */
#nav-content { position: fixed; z-index: 10001; }

/* 背景を閉じる用のオーバーレイは、その一段下に */
#nav-close { position: fixed; z-index: 10000; }

/* リンクがクリックできるように念押し */
#nav-content, #nav-content * { pointer-events: auto; }
