/* ===== HEXELON 共通メニュー（全ページ共通）===== */
header.site-header .gnav > ul { display:flex; align-items:center; gap:4px; list-style:none; margin:0; padding:0; font-size:.86rem; font-weight:500; }
header.site-header .gnav li { position:relative; list-style:none; }
header.site-header .gnav a, header.site-header .gnav .gnav-group { color:var(--charcoal,#14151A); text-decoration:none; white-space:nowrap; letter-spacing:.02em; line-height:1.6; }
header.site-header .gnav > ul > li > a,
header.site-header .gnav .gnav-group { display:inline-flex; align-items:center; gap:6px; padding:8px 12px; border-radius:2px; background:none; border:0; font:inherit; cursor:pointer; }
header.site-header .gnav .gnav-group::after { content:""; width:6px; height:6px; border-right:1.5px solid currentColor; border-bottom:1.5px solid currentColor; transform:translateY(-2px) rotate(45deg); opacity:.55; }
header.site-header .gnav > ul > li > a:hover,
header.site-header .gnav .gnav-group:hover { color:var(--deep-blue,#1F3A5F); }
header.site-header .gnav .is-current > .gnav-group,
header.site-header .gnav > ul > li > a[aria-current="page"] { color:var(--deep-blue,#1F3A5F); box-shadow:inset 0 -2px 0 var(--deep-blue,#1F3A5F); }
header.site-header .gnav .gnav-sub { display:none; position:absolute; top:100%; left:0; min-width:250px; margin:0; padding:8px 0; list-style:none; background:#fff; border:1px solid var(--border,#E2E4E8); box-shadow:0 12px 28px rgba(20,21,26,.10); z-index:120; }
header.site-header .gnav li:hover > .gnav-sub,
header.site-header .gnav li:focus-within > .gnav-sub,
header.site-header .gnav li.open > .gnav-sub { display:block; }
header.site-header .gnav .gnav-sub a,
header.site-header .gnav .gnav-sub .soon { display:block; padding:9px 20px; font-size:.86rem; }
header.site-header .gnav .gnav-sub a:hover { background:var(--off-white,#FAFAFA); color:var(--deep-blue,#1F3A5F); }
header.site-header .gnav .gnav-sub a[aria-current="page"] { color:var(--deep-blue,#1F3A5F); font-weight:600; }
header.site-header .gnav .gnav-sub .soon { color:#9AA0AB; cursor:default; }
header.site-header .gnav .gnav-sub .soon small { margin-left:8px; font-size:.72rem; border:1px solid #D5D8DE; padding:1px 6px; border-radius:2px; }
header.site-header .gnav .gnav-cta { margin-left:8px; background:var(--charcoal,#14151A); color:#fff !important; padding:9px 16px !important; font-weight:600; }
header.site-header .gnav .gnav-cta:hover { background:var(--deep-blue,#1F3A5F); color:#fff; }
header.site-header .gnav a:focus-visible, header.site-header .gnav .gnav-group:focus-visible { outline:2px solid var(--accent,#127DFB); outline-offset:2px; }
header.site-header .mobile-toggle { display:none; }

@media (max-width:1100px) and (min-width:901px) {
  header.site-header .gnav > ul { font-size:.8rem; gap:0; }
  header.site-header .gnav > ul > li > a, header.site-header .gnav .gnav-group { padding:8px 8px; }
}
@media (max-width:900px) {
  header.site-header .mobile-toggle { display:block; font-size:1.4rem; background:none; border:none; cursor:pointer; color:var(--charcoal,#14151A); padding:4px 8px; }
  header.site-header .gnav { display:none; position:absolute; top:100%; left:0; right:0; max-height:calc(100vh - 60px); overflow-y:auto; background:#fff; border-bottom:1px solid var(--border,#E2E4E8); box-shadow:0 8px 20px rgba(20,21,26,.08); }
  header.site-header .gnav.open { display:block; }
  header.site-header .gnav > ul { flex-direction:column; align-items:stretch; gap:0; padding:6px 24px 18px; font-size:1rem; }
  header.site-header .gnav > ul > li > a, header.site-header .gnav .gnav-group { display:block; width:100%; text-align:left; padding:12px 0; border-bottom:1px solid var(--border,#E2E4E8); box-shadow:none !important; }
  header.site-header .gnav .gnav-group { cursor:default; font-weight:700; border-bottom:0; padding-bottom:4px; }
  header.site-header .gnav .gnav-group::after { display:none; }
  header.site-header .gnav .gnav-sub { display:block; position:static; min-width:0; border:0; box-shadow:none; padding:0 0 8px 14px; border-bottom:1px solid var(--border,#E2E4E8); }
  header.site-header .gnav .gnav-sub a, header.site-header .gnav .gnav-sub .soon { padding:8px 0; font-size:.95rem; }
  header.site-header .gnav .gnav-cta { margin:14px 0 0; text-align:center; border-bottom:0 !important; padding:12px !important; }
}
