.elementor-32 .elementor-element.elementor-element-d51a50f{--display:flex;--min-height:80px;--flex-direction:row;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--justify-content:space-between;--align-items:center;--padding-top:10px;--padding-bottom:10px;--padding-left:10px;--padding-right:10px;--z-index:999;}.elementor-32 .elementor-element.elementor-element-71eadce{width:100%;max-width:100%;}.elementor-theme-builder-content-area{height:400px;}.elementor-location-header:before, .elementor-location-footer:before{content:"";display:table;clear:both;}/* Start custom CSS for html, class: .elementor-element-71eadce *//* --- ヘッダー・ロゴ --- */
.ls-main-header {
  position: fixed;
  top: 0; left: 0; width: 100%; height: 90px;
  padding: 0 40px; display: flex; align-items: center; justify-content: space-between;
  z-index: 10000; background: transparent; transition: all 0.4s ease;
}
.ls-main-header.is-scrolled {
  background: rgba(255, 255, 255, 0.98); height: 70px; box-shadow: 0 2px 10px rgba(0,0,0,0.1);
}
.main-logo-img { width: 300px; height: auto; }

/* --- 共通ボタン（最前面） --- */
.ls-navBtn2 {
  position: fixed;
  top: 14px; /* PCでの位置調整 */
  right: 40px;
  z-index: 999999;
  width: 44px; height: 44px;
  background: none; border: none; cursor: pointer;
  display: flex; flex-direction: column; align-items: flex-end; justify-content: center; gap: 10px;
}
.ls-navBtn2 span {
  display: block; width: 35px; height: 2px;
  background: #333; transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

/* 展開時のアニメーション */
.ls-navBtn2.is-active span { background: #fff !important; }
.ls-navBtn2.is-active .line-top { transform: translateY(6px) rotate(45deg); }
.ls-navBtn2.is-active .line-bottom { transform: translateY(-6px) rotate(-45deg); }

/* --- メニューパネル --- */
.ls-navOverlay {
  position: fixed; inset: 0; background: rgba(0, 0, 0, 0.5);
  z-index: 99998; visibility: hidden; opacity: 0; transition: 0.4s;
}
.ls-navOverlay.is-open { visibility: visible; opacity: 1; }

.ls-navInner {
  position: absolute; top: 0; right: 0;
  width: 400px; max-width: 90%; height: 100vh;
  background: #1342b5; padding: 100px 30px 40px;
  display: flex; flex-direction: column; overflow-y: auto;
  transform: translateX(100%); transition: transform 0.5s ease;
}
.ls-navOverlay.is-open .ls-navInner { transform: translateX(0); }

/* --- リスト・アクティブ表示 --- */
.nav-logo { width: 160px; margin-bottom: 40px; filter: brightness(0) invert(1); }
.ls-navList { list-style: none; padding: 0; margin: 0; }
.ls-navList a {
  display: block; color: #fff !important; padding: 18px 20px; text-decoration: none;
  font-size: 17px; border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}
.ls-navList a.current-page {
  background: rgba(255, 255, 255, 0.15); padding-left: 35px; position: relative;
}
.ls-navList a.current-page::before {
  content: ""; position: absolute; left: 0; top: 0; width: 5px; height: 100%;
  background: #a3bfff; box-shadow: 0 0 10px rgba(163, 191, 255, 0.5);
}

/* --- お問い合わせボタン --- */
.nav-contact-btn {
  display: flex; align-items: center; justify-content: center;
  background: #fff; color: #1342b5 !important;
  padding: 14px; border-radius: 4px; font-weight: bold; margin-bottom: 25px;
  border: 2px solid #fff; transition: 0.3s;
}
.nav-contact-btn:hover { background: #1342b5; color: #fff !important; }
.nav-info p { color: #fff !important; font-size: 13px; margin: 0; }

/* --- レスポンシブ --- */
@media screen and (max-width: 767px) {
  .ls-main-header { height: 70px; padding: 0 20px; }
  .main-logo-img { width: 180px; }
  .ls-navBtn2 { top: 13px; right: 20px; } /* スマホ位置 */
  .ls-navInner { width: 100%; padding: 80px 20px 30px; }
}/* End custom CSS */