/* Shared site header — the top page's floating pill nav, applied to all non-front pages.
   Loaded only when !is_front_page() (see functions.php). Self-contained: own colors,
   overrides the theme's generic header{position:fixed;top:0;width:100%} via class specificity. */

.skip-link{position:fixed;top:-70px;left:15px;z-index:1001;padding:10px 20px;background:#2c68c7;color:#fff!important;border-radius:4px;font:600 14px/1.5 'Noto Sans JP',sans-serif;text-decoration:none}
.skip-link:focus{top:8px}

.site-header{
  --blue:#2c68c7;--blue-dark:#204f9c;--line:#dce6f3;
  position:fixed;z-index:100;top:24px;left:50%;transform:translateX(-50%);
  width:min(1420px,calc(100% - 64px));
  display:flex;align-items:center;justify-content:space-between;gap:28px;
  padding:19px 30px;background:rgba(255,255,255,.96);border:1px solid #f4f7fa;
  border-radius:70px;box-shadow:0 4px 28px rgba(22,53,84,.04);
  font-family:'Noto Sans JP',sans-serif;box-sizing:border-box;
}
.site-header *{box-sizing:border-box}
.site-header a{color:#172632;text-decoration:none}
.site-header .brand{flex-shrink:0;display:inline-flex;align-items:center}
.site-header .brand img{width:185px;height:auto;display:block}
.site-nav{display:flex;align-items:center;gap:24px}
.site-nav a{font-size:14px;font-weight:600;white-space:nowrap;transition:color .2s}
.site-nav a:hover{color:var(--blue)}
.site-nav .nav-contact{background:var(--blue);color:#fff;padding:10px 20px;border-radius:30px;transition:background .25s}
.site-nav .nav-contact:hover{background:var(--blue-dark);color:#fff}
.menu-toggle{display:none;background:none;border:0;color:var(--blue);font:inherit;font-weight:600;cursor:pointer;align-items:center;gap:12px}
.menu-toggle span{width:22px;height:8px;border-top:1px solid;border-bottom:1px solid}

@media(min-width:1550px){.site-header{width:calc(100% - 112px)}}
@media(max-width:1150px){
  .site-header{padding:17px 24px;gap:18px}
  .site-header .brand img{width:160px}
  .site-nav{gap:16px}
  .site-nav a{font-size:13px}
  .site-nav .nav-contact{padding:10px 15px}
}
@media(max-width:1000px){
  .site-header{width:calc(100% - 40px);top:18px;padding:17px 24px}
  .menu-toggle{display:flex}
  .site-nav{display:none;position:absolute;left:0;right:0;top:calc(100% + 10px);
    border:1px solid var(--line);padding:20px 26px;background:#fff;border-radius:20px;
    box-shadow:0 15px 25px rgba(22,53,84,.08);z-index:50}
  .site-nav.is-open{display:flex;flex-direction:column;align-items:stretch;gap:0}
  .site-nav a{font-size:16px;padding:13px 0}
  .site-nav .nav-contact{text-align:center;margin-top:10px}
}
@media(max-width:650px){
  .site-header{top:12px;padding:15px 20px;width:calc(100% - 24px)}
  .site-header .brand img{width:145px}
}
