/* =========================
   SP Hamburger Menu
   ========================= */
@media (max-width: 768px) {

  /* 初期状態：非表示（DOMは残す） */
  .lc-header-nav,
  .lc-header-meta-wrap--fixed,
  .lc-header-search,
  .lc-header-contact {
    visibility: hidden;
    opacity: 0;
    transform: translateY(-12px);
    transition: opacity .25s ease, transform .25s ease, visibility .25s ease;
    height: 0;
    overflow: hidden;
  }

  /* 展開状態 */
  body.is-menu-open .lc-header-nav,
  body.is-menu-open .lc-header-meta-wrap--fixed,
  body.is-menu-open .lc-header-search,
  body.is-menu-open .lc-header-contact {
    visibility: visible;
    opacity: 1;
    transform: translateY(0);
    height: auto;
    overflow: visible;
  }

  /* ヘッダー全体を縦並びに */
  body.is-menu-open .lc-header {
    display: flex;
    flex-direction: column;
  }

  /* 並び順（上→下） */
  body.is-menu-open .lc-header-meta-wrap--fixed {
    order: 1;
  }

  body.is-menu-open .lc-header-contact {
    order: 2;
  }

  body.is-menu-open .lc-header-nav {
    order: 3;
  }

  body.is-menu-open .lc-header-search {
    order: 4;
  }

  /* ナビは縦1カラム */
  .lc-header-nav ul {
    flex-direction: column;
    align-items: stretch;
  }

  .lc-header-nav a {
    padding: 14px 16px;
  }
}

/* =========================
   SP Menu Scroll Lock
   ========================= */
@media (max-width: 768px) {

  body.is-menu-open {
  overflow: hidden;
  position: fixed;
  top: var(--lc-scroll-lock-top, 0);
  left: 0;
  right: 0;
  width: 100%;
  }

  body.is-menu-open .lc-header {
    height: 100dvh;
    overflow-y: auto;
	  overflow-x: hidden;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior: contain;
    padding-bottom: calc(48px + env(safe-area-inset-bottom));
    box-sizing: border-box;
  }
}

/* =========================
   Tel (SP用フル幅)
   ========================= */
@media (max-width: 768px) {

  body.is-menu-open .lc-header-meta-wrap--fixed {
    position: static;
    width: 100%;
    margin: 0;
    padding: 12px 16px;
    background: #f9fafb;
  }

  body.is-menu-open .lc-header-action {
    width: 100%;
    padding: 30px 0 0 0;
    background: transparent;
    border: none;
    align-items: center;
    text-align: center;
	margin-bottom: 30px;
  }
}

/* =========================
   Contact (SP用フル幅)
   ========================= */
@media (max-width: 768px) {

  body.is-menu-open .lc-header-contact {
    width: 100%;
    padding: 0;
  }

  body.is-menu-open .lc-header-contact a {
    width: 100%;
    height: auto;
    padding: 16px;
    border-radius: 6px;
    justify-content: center;
    background: var(--lc-contact-bg-color);
  }
}

/* =========================
   Navi Layout
   ========================= */
@media (max-width: 768px) {

  body.is-menu-open .lc-header-nav {
    padding: 8px 0 16px;
    border-top: 1px solid rgba(0,0,0,0.08);
  }

  body.is-menu-open .lc-header-nav a {
    font-size: 1rem;
    font-weight: 700;
    border-bottom: 1px solid rgba(0,0,0,0.06);
	
  }

  body.is-menu-open .lc-header-nav li:last-child a {
    border-bottom: none;
	text-align: center;
	font-size: 1rem;
  }
}

/* =========================
   Search Area
   ========================= */
@media (max-width: 768px) {

	.lc-search-form{
		width: 100%;
	}
	
	body.is-menu-open .lc-header-search {
	    padding: 12px 16px;
	    border-top: 1px solid rgba(0,0,0,0.06);
	}

	body.is-menu-open .lc-search-form input[type="search"] {
		width: 100%;
	}
}

/* =========================
   SP：視覚的に
   電話・お問い合わせ → ナビ
   に見せる（CSSのみ）
   ========================= */
@media (max-width: 768px) {

  /* 上段を縦積みに */
  body.is-menu-open .lc-header-top {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    padding-right: 0;
  }

  /* 電話・お問い合わせをフル幅化 */
  body.is-menu-open .lc-header-meta-wrap--fixed,
  body.is-menu-open .lc-header-contact {
    position: static;
    width: 100%;
    margin: 0;
	border-top: solid 1px #cdcdcd;
  }

  body.is-menu-open .lc-header-action,
  body.is-menu-open .lc-header-contact a {
    width: 100%;
    border-radius: 0;
    justify-content: center;
  }

  /* ナビを「下に送る」 */
  body.is-menu-open .lc-header-nav {
    margin-top: 16px;
    border-top: 1px solid rgba(0,0,0,0.08);
  }
}



/* =========================
   Hamburger Button
   ========================= */
@media (max-width: 768px) {

  .lc-hamburger {
    position: absolute;

    /* ★変更：top:50% をやめる（これが“下に落ちる”原因） */
    top: 12px;
    right: 16px;
    transform: none;

    display: flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    background: none;
    border: none;
    padding: 0;
    cursor: pointer;
    z-index: 1001;
  }

  /* ★追加：開閉で位置を変えない（念押し） */
  body.is-menu-open .lc-hamburger {
    top: 12px;
    right: 16px;
    transform: none;
  }

  /* テキストは非表示 */
  .lc-hamburger-text {
    display: none;
  }

  /* 三本線の箱 */
  .lc-hamburger-box {
    position: relative;
    width: 22px;
    height: 16px;
  }

  /* 三本線 */
  .lc-hamburger-inner,
  .lc-hamburger-inner::before,
  .lc-hamburger-inner::after {
    position: absolute;
    left: 0;
    width: 100%;
    height: 2px;
    background-color: #111;
    border-radius: 1px;
    transition: transform .25s ease, opacity .25s ease;
    content: "";
  }

  .lc-hamburger-inner {
    top: 50%;
    transform: translateY(-50%);
  }

  .lc-hamburger-inner::before {
    top: -7px;
  }

  .lc-hamburger-inner::after {
    top: 7px;
  }

  /* =========================
     Open state（× に変形）
     ========================= */
  body.is-menu-open .lc-hamburger-inner {
    transform: rotate(45deg);
  }

  body.is-menu-open .lc-hamburger-inner::before {
    transform: rotate(-90deg) translateX(-7px);
  }

  body.is-menu-open .lc-hamburger-inner::after {
    opacity: 0;
  }
}

/* PCでは非表示 */
@media (min-width: 769px) {
  .lc-hamburger {
    display: none;
  }
}

/* 展開時のロゴリンク全面タップを解除 */
.lc-header-brand.lc-header-brand--edge a {
    display: inline-block;
}

/* =========================
   SP：GNAV 子までアコーディオン（＋/−）
   対象：normal / page
   ========================= */
@media (max-width: 768px) {


  /* ─────────────
     normal：子（submenu）
     ───────────── */
  body.is-menu-open .lc-header-nav li.menu-item-has-children.lc-gnav-type-normal > .lc-gnav-submenu {
    display: none;
    position: static;
    opacity: 1;
    visibility: visible;
    transform: none;
    box-shadow: none;
    margin: 0;
    padding: 0;
    background: transparent;
  }

  body.is-menu-open .lc-header-nav li.menu-item-has-children.lc-gnav-type-normal.is-open > .lc-gnav-submenu {
    display: block;
  }

  /* 孫はSPでは出さない */
  body.is-menu-open .lc-header-nav .lc-gnav-submenu-child {
    display: none !important;
  }

  /* ─────────────
     page：パネル（gnav-panel）
     ───────────── */
  body.is-menu-open .lc-header-nav li.menu-item-has-children.lc-gnav-type-page > .lc-gnav-panel {
    display: none;
    position: static;
    width: 100%;
    margin: 0;
    padding: 0;
    opacity: 1;
    visibility: visible;
    transform: none;
    box-shadow: none;
    background: transparent;
  }

  body.is-menu-open .lc-header-nav li.menu-item-has-children.lc-gnav-type-page.is-open > .lc-gnav-panel {
    display: block;
  }

  /* カード一覧はSPでは縦寄せ */
  body.is-menu-open .lc-gnav-page-grid {
    padding: 8px 0 0;
    grid-template-columns: 1fr;
    gap: 16px;
  }

/* 親行はブロック化（flex禁止） */
body.is-menu-open 
.lc-header-nav 
li.menu-item-has-children {
  display: block;
}


  /* 親リンクは横幅いっぱい */
  body.is-menu-open .lc-header-nav li.menu-item-has-children > a {
    flex: 1;
  }

  /* =========================
     current強制表示を解除（2タップ対策）
     ========================= */
  body.is-menu-open .lc-header-nav .current-menu-item > a,
  body.is-menu-open .lc-header-nav .current_page_item > a {
    background: none !important;
    color: inherit !important;
  }

  /* =========================
     pageタイプ簡素化（SPではテキストのみ）
     ========================= */

  /* 画像・カテゴリ非表示 */
  body.is-menu-open .lc-gnav-type-page .lc-gnav-card-image,
  body.is-menu-open .lc-gnav-type-page .lc-gnav-card-category {
    display: none !important;
  }

  /* カード余白削除 */
  body.is-menu-open .lc-gnav-type-page .lc-gnav-card {
    padding: 0;
  }

  /* タイトルリンクを通常リンク風に */
  body.is-menu-open .lc-gnav-type-page .lc-gnav-card-title {
    text-align: left;
  }

  body.is-menu-open .lc-gnav-type-page .lc-gnav-card-title a {
    display: block;
    padding: 12px 28px;
    font-size: 14px;
  }

  /* グリッド解除（縦並び） */
  body.is-menu-open .lc-gnav-page-grid {
    display: block;
  }

  /* 親リンクを基準にする */
  body.is-menu-open 
  .lc-header-nav 
  li.menu-item-has-children > a {
    position: relative;
    text-align: center;
  }

  /* ＋表示 */
  body.is-menu-open 
  .lc-header-nav 
  li.menu-item-has-children > a::after {
    content: "+";
    position: absolute;
    right: 16px;
    top: 50%;
    transform: translateY(-50%);
    font-weight: 700;
    font-size: 18px;
  }

  /* 開いたら − に変更 */
  body.is-menu-open 
  .lc-header-nav 
  li.menu-item-has-children.is-open > a::after {
    content: "−";
  }
	
/* GNAVにお問い合わせが存在する場合はCTR集約 */
body.is-menu-open
  .lc-header-nav
  li.menu-item-object-page:has(> a[href$="/contact/"]) {
    display: none;
  }

body.is-menu-open 
  .lc-header-nav 
  .lc-gnav-submenu {
    text-align: center;
  }

  body.is-menu-open 
  .lc-header-nav 
  .lc-gnav-submenu a {
    padding: 14px 0;
    text-align: center;
	display: block;
  }

.lc-gnav-submenu-item:has(.lc-gnav-submenu-child) > a::after{
	display: none;
}

}
