/* ======================================================================= */

/* Bootstrap Customization Style
1-1. Navbar

/* Original Customization Style
2-1. scrollTop

/* Original Customization Style
3-1. ContactForm7

-------------------------------------------------------------------------- */

/* ======================================================================= */
/*  1-1. Navbar
/* ======================================================================= */
.dropdown:hover > .dropdown-menu {
  display: block;
  margin: 0;
}

/* navbar-toggler */
.mobile-nav-button {
  z-index: 9999;
}
.navbar-light .navbar-toggler {
  position: relative;
  padding: 0px;
  width: 27px;
  height: 30px;
  color: #010101;
  border: none;
  outline: none;
  box-sizing: border-box;
}
.navbar-light .navbar-toggler-icon {
  position: absolute;
  display: block;
  width: 27px;
  height: 3px;
  background-image: none!important;
  background-color: #010101;
  transition: ease .5s;
}
.navbar-toggler-icon:nth-of-type(1) {top:5px;}
.navbar-toggler-icon:nth-of-type(2) {top:14px;}
.navbar-toggler-icon:nth-of-type(3) {top:23px;}

.navbar-toggler[aria-expanded="true"] .navbar-toggler-icon:nth-of-type(1) {
  top:13px;
  transform: rotate(45deg);
}
.navbar-toggler[aria-expanded="true"] .navbar-toggler-icon:nth-of-type(2) {
  opacity: 0;
}
.navbar-toggler[aria-expanded="true"] .navbar-toggler-icon:nth-of-type(3) {
  top:13px;
  transform: rotate(-45deg);
}

@media (max-width: 991.98px) {
  .header-nav-menu {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    width: 100%;
    height: 100%;
    background-color: #FFF;
    z-index: 88888;
  }
  .header-nav-menu-in {
      height: 100%;
      padding: 15px;
      overflow-y: auto;
      -webkit-overflow-scrolling: touch;
  }
}


/* ======================================================================= */
/*  2-1. scrollTop
/* ======================================================================= */

#scrollTop {
  position: fixed;
  bottom: 2rem;
  right: 2rem;
  width: 150px;
  height: 150px;
  line-height: 1;
  text-align: center;
  font-size: .8rem;
  z-index: 20;
}
#scrollTop a {
  display: block;
  color: #010101;
}
#scrollTop a:hover {
  color: #999;
}

/* ======================================================================= */
/*  3-1. ContactForm7
/* ======================================================================= */

/* ラベル全体をFlexbox化して上辺を揃える */
.form-label {
    display: flex !important;  /* Flexboxを有効化 */
    align-items: flex-start;  /* 中の要素（バッジとテキスト）を上端に揃える */
    line-height: 1.5;         /* テキストの行間 */
    gap: 8px;                 /* バッジとテキストの間の余白 */
}

/* バッジ自体の位置微調整 */
.form-label .badge.required {
    flex-shrink: 0;           /* バッジが潰れないように固定 */
    margin-top: 0.2em;        /* テキストの「文字の高さ」に合わせて数ピクセル下げる */
    margin-right: 0;          /* gapで制御するため0に */
    display: inline-block;
}

/* PCサイズでの改行制御（以前のまま） */
@media (min-width: 992px) {
    .form-label {
        white-space: nowrap;
    }
}