/* =========================
   nav.css Clean Stable (single source of truth)
   - PC: hover/focus mega menu
   - SP:
     - #nav-wrap.is-menu-open で nav 表示
     - 親リンクは遷移（クリックで開かない）
     - 親の横トグル（ボタン）で第一階層の子だけ開閉
     - 子（2階層目以降）は初期閉（＝常に閉）
   - SP: トグルボタンは親階層の同じ位置（上から固定）
   - JS:
     - nav-mobile-toggle.js : is-menu-open
     - nav-accordion.js     : 第一階層にだけ is-open を付ける + ボタンは li直下（aの外）
========================= */

/* ===== Wrapper ===== */
#nav-wrap{
  background:#0f5093;
}

/* ★重要：メガメニューが「切れる」事故を潰す */
#nav-wrap,
#nav-wrap .inner,
#global-navigation{
  overflow: visible !important;
}

/* ===== Nav Base ===== */
#global-navigation{
  position:relative; /* mega基準 */
  display:flex;
  align-items:center;
  width:100%;
}

/* ===== Top level list ===== */
.fm-nav__list{
  list-style:none;
  display:flex;
  width:100%;
  margin:0;
  padding:0;
}

/* 等幅 */
.fm-nav__list > li{
  flex:1 1 0;
  text-align:center;
  margin:0;
  border-left:1px solid #48709a;
  position:relative;
}
.fm-nav__list > li:last-child{
  border-right:1px solid #48709a;
}

/* Top link */
.fm-nav__list > li > a{
  display:flex;
  justify-content:center;
  align-items:center;
  gap:8px;
  padding:12px 14px;
  color:#fff;
  font-weight:600;
  text-decoration:none;
  text-transform:uppercase;
  white-space:nowrap;
}
.fm-nav__list > li > a:hover,
.fm-nav__list > li > a:focus{
  background:rgba(255,255,255,.08);
  outline:none;
}

/* PCだけ ▼ indicator（SPでは消す） */
.fm-nav__list > li.menu-item-has-children > a::after{
  content:"▼";
  font-size:10px;
}

/* ===== Mega Menu (PC) ===== */
.fm-nav__list > li > .sub-menu{
  list-style:none;
  margin:0;
  padding:10px 18px 16px;
  position:absolute;
  top:100%;
  left:0;
  width:100%;
  background:#fff;
  box-shadow:0 12px 28px rgba(0,0,0,.18);
  z-index:9999;

  /* ★他CSSの display:none を殺す */
  display:block !important;

  /* 隠すのは opacity/visibility だけ */
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transform:translateY(10px);
  transition:opacity .2s ease, transform .2s ease, visibility .2s ease;
}

/* 表示 */
.fm-nav__list > li.menu-item-has-children:hover > .sub-menu,
.fm-nav__list > li.menu-item-has-children:focus-within > .sub-menu{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
  transform:translateY(0);
}

/* ===== Submenu text ===== */
.fm-nav__list .sub-menu,
.fm-nav__list .sub-menu li,
.fm-nav__list .sub-menu a{
  color:#525259;
  font-weight:400 !important;
}
.fm-nav__list .sub-menu li{
  border-bottom:1px dotted #ddd;
  padding:4px 0;
  font-size:14px;
}
.fm-nav__list .sub-menu li:last-child{
  border-bottom:none;
}
.fm-nav__list > li > .sub-menu > li{
  text-align:left;
  margin:0;
}
.fm-nav__list > li > .sub-menu > li > a{
  display:block;
  padding:10px 0;
  text-decoration:none;
}

/* ===== 3col mega (PC only) ===== */
#fm-main-menu > li.is-mega-3col > .sub-menu{
  display:grid !important;
  grid-template-columns:repeat(3, minmax(0,1fr));
  gap:14px 18px;
  align-items:start;
}

/* ===== injected blocks (画像) ===== */
.menu-col-img img{
  width:100%;
  height:auto;
  border:1px solid #ddd;
  box-sizing:border-box;
}
.menu-col-title.is-industry,
.menu-col-title.is-architecture{
  margin:10px 0;
  font-size:15px;
}

/* ===== Toggle buttons default (PCでは出さない) ===== */
.fm-menu-toggle,
.fm-submenu-toggle{
  display:none;
}

/* =========================
   Mobile (SP)
========================= */
@media (max-width:960px){

  /* PC用 ▼ を消す */
  .fm-nav__list > li.menu-item-has-children > a::after{
    content:none !important;
    display:none !important;
  }

  /* 全体はデフォルト閉 */
  #global-navigation{
    display:none;
    width:100%;
  }
  /* JSが付ける is-menu-open で開く */
  #nav-wrap.is-menu-open #global-navigation{
    display:block;
  }

  /* ハンバーガー */
  .fm-menu-toggle{
    display:flex;
    justify-content:center;
    align-items:center;
    gap:10px;
    font-size: 16px;
    width:100%;
    padding:14px 0;
    border:0;
    background:transparent;
    color:#fff;
    font-weight:700;
    cursor:pointer;
  }
  .fm-menu-toggle__icon{
    font-size:20px;
    line-height:1;
  }

  /* 1列 */
  .fm-nav__list{
    flex-direction:column;
    padding:0 0 18px;
  }

  .fm-nav__list > li{
    flex:none;
    border-left:none;
    border-right:none;
    border-top:1px solid #48709a;
    text-align:left;
    position:relative; /* トグルabsoluteの基準 */
  }

  .fm-nav__list > li:last-child{
    border-right: none;
  }

  /* 親リンク：右にトグルの席（クリックで開かない＝遷移だけ） */
  .fm-nav__list > li > a{
    justify-content: normal;
    white-space:normal;
    padding-right:56px;
  }


  /* =======================================================
     スマホ仕様の肝：
     - 第一階層 sub-menu は初期 “全閉”
     - 開くのは #fm-main-menu > li.is-open の時だけ
     - 2階層目以降の sub-menu は常に閉（初期閉を強制）
  ======================================================= */

  /* 第一階層 sub-menu：初期閉 + PC用（absolute/opacity/grid）完全無効化 */
  #global-navigation #fm-main-menu > li > .sub-menu{
    display:none !important;

    position:static !important;
    left:auto !important;
    top:auto !important;
    width:auto !important;
    box-shadow:none !important;

    opacity:1 !important;
    visibility:visible !important;
    pointer-events:auto !important;
    transform:none !important;
    transition:none !important;

    /* ★スマホは必ず1列（PC grid殺す） */
    grid-template-columns:none !important;
    gap:0 !important;

    padding:10px 14px 14px !important;
    margin:0 !important;
  }

  /* 開くのは第一階層の is-open のみ */
  #global-navigation #fm-main-menu > li.is-open > .sub-menu{
    display:block !important;
  }

  /* 2階層目以降：常に閉（最初もずっと閉） */
  #global-navigation #fm-main-menu > li > .sub-menu .sub-menu{
    padding:6px 0 0 !important;
    margin:0 !important;
  }

  /* WordPress current系で勝手に開くのを封殺（開くのは is-open のみ） */
  #global-navigation #fm-main-menu > li.current-menu-item > .sub-menu,
  #global-navigation #fm-main-menu > li.current_page_item > .sub-menu,
  #global-navigation #fm-main-menu > li.current-menu-ancestor > .sub-menu,
  #global-navigation #fm-main-menu > li.current_page_ancestor > .sub-menu{
    display:none !important;
  }
  #global-navigation #fm-main-menu > li.is-open > .sub-menu{
    display:block !important;
  }

  /* ===== トグルボタン（親の横）フッター風矢印 =====
     ★位置は top固定（50%追従をやめる）
  */
  .fm-submenu-toggle {
      display: flex;
      align-items: center;
      justify-content: center;
      position: absolute;
      right: 0px;
      top: 0px;
      transform: none;
      width: 40px;
      height: 40px;
      border: none;
      border-radius: 999px;
      background: rgb(255 255 255 / 0%);
      cursor: pointer;
      padding: 0;
      font-size: 0;
      line-height: 0;
  }

  .fm-submenu-toggle::before {
      content: "";
      width: 8px;
      height: 8px;
      border-right: 2px solid #fff;
      border-bottom: 2px solid #fff;
      transform: rotate(45deg);
      transition: transform .15s ease;
  }

  .fm-submenu-toggle[aria-expanded="true"]::before{
      transform: rotate(225deg);
  }
}

/* =========================
   PC メガメニュー強制復活（nav幅基準）
========================= */
@media (min-width:961px){

  /* li基準をやめて nav基準でメガを出す */
  #global-navigation{
    position:relative;
  }

  #fm-main-menu > li{
    position:static !important;
  }

  #fm-main-menu > li > .sub-menu{
    left:0 !important;
    width:100% !important;
  }

  /* sub-menuは常に存在（displayで殺させない） */
  #global-navigation .sub-menu{
    display:block !important;
  }

  /* デフォルトは透明 */
  #global-navigation > ul > li > .sub-menu{
    opacity:0;
    visibility:hidden;
    pointer-events:none;
    transform:translateY(10px);
  }

  /* hoverで表示 */
  #global-navigation > ul > li:hover > .sub-menu,
  #global-navigation > ul > li:focus-within > .sub-menu{
    opacity:1;
    visibility:visible;
    pointer-events:auto;
    transform:translateY(0);
  }

  /* PCではトグルは絶対出さない */
  #global-navigation .fm-submenu-toggle{
    display:none !important;
  }
}