@media only screen and (max-width: 780px) {
  .pc-only{
    display: none;
  }
  .sp-only{
    display: block;
  }
  img{
    height: auto;
  }
  .container{
    padding: 0 5%;
  }
  .two-col{
    flex: 0 0 50%;
    width: 50%;
    margin-bottom: 20px;
  }
  #Company-section .two-col .lod-card{
    padding: 20px 10px 10px;
  }
  header .navbar>.container-fluid{
    position: relative;
    padding: 0!important;
    gap: 10px;
  }
  header .navbar>.container-fluid .col-auto:first-child{
    padding-left: 10px;
  }
/* --- 外側の枠（全画面オーバーレイの背景と位置決め） --- */
  header .navbar>.container-fluid .col-auto:last-child {
    display: none;
    position: fixed;
    /* innerを中心に配置するための設定 */
    justify-content: center; 
    align-items: flex-start;
    left: 0;
    top: 0;
    width: 100vw;
    height: 100vh;
    background-color: rgba(0,0,0,0.8);
    z-index: 100;
    padding-top: 15vh;
    padding-bottom: 15vh;
    overflow-y: scroll;
  }

  /* アクティブ時の表示設定 */
  header .navbar>.container-fluid .col-auto:last-child.active {
    display: flex;
  }

  /* --- [NEW] 内側の枠（コンテンツのレイアウト担当） --- */
  /* 元々col-autoに書いてあった flex-direction や gap をここに移動します */
  header .navbar>.container-fluid .col-auto:last-child .col-auto-inner {
    display: flex;
    flex-direction: column-reverse; /* ボタンを下、メニューを上に */
    justify-content: center;
    align-items: center;
    gap: 1.8rem;
    width: 100%; /* 幅を確保 */
  }

  /* --- 以下、子要素のスタイル（基本的には変更なしですが、親の変更に伴い継承されます） --- */
  
  header .navbar>.container-fluid .col-auto:last-child .btn-top {
    display: flex;
    flex-direction: column-reverse;
    justify-content: center;
    align-items: center;
    gap: 1.8rem;
  }

  header .navbar>.container-fluid .col-auto:last-child .btn-top .contact-btn-top {
    margin: 0;
  }

  header .navbar>.container-fluid .col-auto:last-child .btn-top .contact-btn-top a {
    color: #fff;
    background-color: transparent;
    border: 1px solid #fff;
    width: 140px;
    display: flex;
    justify-content: center;
  }

  header .navbar>.container-fluid .col-auto:last-child #menu-main-menu {
    display: flex; /* 明示的に追加しておくと安全です */
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 1rem;
    width: 100vw;
    padding-right: 0;
    margin-top: 0;
    margin-bottom: 0; /* Bootstrapのデフォルト打ち消し用 */
    padding-left: 0; /* ulのデフォルト打ち消し用 */
  }

  header .navbar>.container-fluid .col-auto:last-child #menu-main-menu li a {
    color: #fff;
    padding: 0;
  }

  header .navbar>.container-fluid .col-auto:last-child #menu-main-menu li .dropdown-menu a {
    color: #000;
    padding: 0.1rem 1rem;
  }
  .gnav_btn {
    display: block;
  }
  .gnav_btn .gnav_icon-bar {
    transition: all 0.3s ease;
    position: relative;
  }
  .gnav_btn.active .gnav_icon-bar:nth-child(1) {
    transform: translateY(0.4em) rotate(45deg);
    background-color: #fff;
  }
  .gnav_btn.active .gnav_icon-bar:nth-child(2) {
    opacity: 0;
  }
  .gnav_btn.active .gnav_icon-bar:nth-child(3) {
    transform: translateY(-0.4em) rotate(-45deg);
    background-color: #fff;
  }
  .logo-line-one{
    margin-left: 0;
  }
  .service-content-details img {
    width: 100%;
    height: 130px;
    object-fit: cover;
  }
  .hero-content{
    padding: 30px;
    width: 85%;
  }
  .hero-content h2{
    font-size: 32px;
  }
  h3{
    font-size: 21px;
  }
  .features-banner-info h3{
    font-size: 21px;
  }
  h4{
    font-size: 19px;
  }
  .swiper.md-h-750px{
    height: 450px;
  }
  .company-image img{
    margin-bottom: 1.5em;
  }
  .offset-2,.offset-3,.offset-4{
    margin: 0;
  }
  #blog-post-area-section .offset-4 img{
    width: 75%;
    margin: 0 auto;
    display: block;
  }
  #blog-post-area-section .offset-4 p:nth-child(2){
    width: 75%;
    margin: 0 auto;
    display: block;
  }
  #Company-section{
    margin-top: 30px;
    overflow-x: hidden;
  }
  #service-banner .mt-5{
    margin-top: 1.5rem!important;
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
  }
  #Company-section .container.pb-5{
    margin: 1.5rem 0 5rem;
    padding: 0!important;
  }
  #Company-section .container.pb-5 .m-5.p-5,#compare-company .container .m-5.p-5{
    margin: 0!important;
    padding: 0!important;
  }
  #Company-section .container.pb-5 .row,#compare-company .container .row{
    gap: 1.5rem;
  }
  #compare-company .container .row .col-md-6.text-center{
    margin: 0!important;
    padding: 0 5% 0 5%!important;
  }
  #compare-company .container{
    margin: 0;
    padding: 0!important;
  }
  #customer-section{
    margin-top: 30px;
  }
  #customer-section img{
    margin-bottom: 1.5rem;
  }
  #customer-section h3{
    font-size: 21px;
  }
  .company-info-details-list tbody tr td:first-child{
    width: 5em;
  }
  .company-info-details-list tbody tr td:last-child{
    width: calc(100% - 5em);
  }
  .company-info-details-list tbody tr td{
    padding: 10px 5px;
  }
}