@media (min-width: 992px) {

  nav.navbar > .container {

    display: flex !important;

    align-items: center !important;

    justify-content: space-between !important;

    flex-wrap: nowrap !important;

    gap: 18px !important;

  }



  nav.navbar > .container > .navbar-collapse {

    display: flex !important;

    flex: 1 1 auto !important;

    justify-content: flex-end !important;

  }



  nav.navbar > .container > .navbar-collapse ul.menu {

    display: flex !important;

    gap: 18px !important;

    align-items: center !important;

    list-style: none !important;

    margin: 0 !important;

    padding: 0 !important;

  }

}

/* ===== Mobile: restore Bootstrap collapse behavior ===== */

@media (max-width: 991.98px) {

  /* collapsed state */

  .navbar-collapse.collapse:not(.show) { display: none !important; }

  /* expanded state */

  .navbar-collapse.collapse.show { display: block !important; }



  /* menu list on mobile */

  .navbar-collapse ul.menu {

    display: block !important;

  }



  /* make hamburger icon visible (3 lines) */

  .navbar-toggler {

    border: 0;

    padding: 6px 10px;

  }

  .navbar-toggler-icon {

    width: 1.5em;

    height: 1.5em;

    background-size: 1.5em 1.5em;

    background-repeat: no-repeat;

    background-position: center;

    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3E%3Cpath stroke='rgba(0,0,0,0.75)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E");

  }

}

@media (max-width: 991.98px) {

  nav.navbar .navbar-collapse.collapse:not(.show) { display: none !important; }

  nav.navbar .navbar-collapse.show { display: block !important; }



  nav.navbar .navbar-toggler { display: block !important; }



  nav.navbar .navbar-collapse ul.menu,

  nav.navbar .navbar-collapse ul {

    display: block !important;

    list-style: none !important;

    margin: 0 !important;

    padding: 8px 0 !important;

  }



  nav.navbar .navbar-collapse a {

    display: block !important;

    padding: 14px 0 !important;

    text-decoration: none;

  }



  nav.navbar .navbar-toggler-icon {

    background-image:

      linear-gradient(currentColor, currentColor),

      linear-gradient(currentColor, currentColor),

      linear-gradient(currentColor, currentColor) !important;

    background-repeat: no-repeat !important;

    background-size: 100% 2px !important;

    background-position: 0 25%, 0 50%, 0 75% !important;

  }

}

@media (max-width: 991.98px) {

  nav.navbar .navbar-collapse { padding: 8px 16px !important; }



  nav.navbar .navbar-collapse ul.menu,

  nav.navbar .navbar-collapse ul { padding: 0 !important; margin: 0 !important; }



  nav.navbar .navbar-collapse li { margin: 0 !important; padding: 0 !important; }



  nav.navbar .navbar-collapse a {

    padding: 12px 0 !important;

    line-height: 1.4 !important;

    display: block !important;

  }



  nav.navbar .navbar-collapse li + li a {

    border-top: 1px solid rgba(0,0,0,.08);

  }

}

@media (max-width: 991.98px) {

  /* Admin contextual links: keep them from overlaying the mobile menu */

  .user-logged-in .contextual-region {

    position: relative;

  }

  .user-logged-in .contextual {

    position: absolute !important;

    right: 8px !important;

    top: 8px !important;

    z-index: 99999 !important;

  }

  .user-logged-in .contextual-links {

    min-width: 160px;

  }

}

nav.navbar .navbar-collapse a {

  padding: 12px 0 !important;

  line-height: 1.4 !important;

}

/* ===== Mobile menu finishing touches ===== */

@media (max-width: 991.98px) {

  /* ① Open as overlay (don’t push content) */

  nav.navbar { position: relative; }



  nav.navbar .navbar-collapse.show {

    position: absolute;

    left: 0;

    right: 0;



    /* ほんの少しだけ上に寄せたい場合（不要なら100%に戻す） */

    top: calc(100% - 6px);



    background: #fff;

    z-index: 9999;

    box-shadow: 0 10px 24px rgba(0,0,0,.08);

    border-bottom-left-radius: 12px;

    border-bottom-right-radius: 12px;



    /* ④ メニューが長い時は中だけスクロール */

    max-height: calc(100vh - 80px);

    overflow: auto;

  }



  /* ② Spacing */

  nav.navbar .navbar-collapse { padding: 8px 16px !important; }



  nav.navbar .navbar-collapse a {

    padding: 12px 0 !important;

    line-height: 1.4 !important;

    display: block !important;

  }



  /* ③ Active/current page highlight */

  nav.navbar .navbar-collapse a.is-active,

  nav.navbar .navbar-collapse li.menu-item--active-trail > a {

    font-weight: 700;

    text-decoration: underline;

  }

}

/* ===== About ("私たちについて") mobile spacing tighten ===== */

@media (max-width: 767.98px) {

  /* page specific: adjust if your path differs */

  .path-node .container,

  .path-page .container,

  .path-about .container {

    padding-left: 12px !important;

    padding-right: 12px !important;

  }



  /* headings */

  .path-node h1,

  .path-node h2 {

    margin-top: 18px !important;

    margin-bottom: 12px !important;

    line-height: 1.25 !important;

  }



  /* cards / bordered blocks */

  .path-node [style*="border-radius"],

  .path-node .card,

  .path-node .block {

    padding: 14px 14px !important;

    margin-bottom: 14px !important;

  }



  /* buttons / link blocks */

  .path-node a,

  .path-node button {

    padding-top: 10px !important;

    padding-bottom: 10px !important;

  }

}

/* ===== node-158 ("私たちについて") mobile spacing tighten ===== */

@media (max-width: 767.98px) {

  body.node-158 {

    /* 全体の上下余白を少し締める */

    --about-gap: 12px;

  }



  /* 見出し周り */

  body.node-158 h1 {

    margin: 18px 0 10px !important;

    line-height: 1.2 !important;

  }

  body.node-158 p {

    margin: 0 0 14px !important;

    line-height: 1.6 !important;

  }



  /* カード/ボタンっぽい枠の間隔を詰める */

  body.node-158 .region-content > * {

    margin-bottom: var(--about-gap) !important;

  }



  /* 角丸枠（あなたのページはボタン風ブロックが多いので強めに当てる） */

  body.node-158 .region-content a,

  body.node-158 .region-content button,

  body.node-158 .region-content [class*="btn"],

  body.node-158 .region-content [style*="border-radius"] {

    padding-top: 10px !important;

    padding-bottom: 10px !important;

    margin-bottom: var(--about-gap) !important;

  }



  /* 枠の内側余白（カード化されている要素があれば） */

  body.node-158 .region-content .card,

  body.node-158 .region-content .block {

    padding: 14px !important;

  }

}

