/* =========================================================
   AsterRhythm v1.0 / 03 Header & Navigation
========================================================= */
.site-header{position:fixed;top:0;left:0;right:0;height:72px;z-index:1000;display:flex;align-items:center;justify-content:space-between;padding:0 28px;color:#fff;background:rgba(5,6,10,.22);border-bottom:1px solid rgba(255,255,255,.18);transition:background .3s ease,backdrop-filter .3s ease,color .3s ease}
.site-header.is-scrolled{background:rgba(142,7,61,.92)!important;backdrop-filter:blur(12px)}
.logo,.custom-logo-link{display:inline-flex;align-items:center;min-width:0;text-decoration:none;color:inherit}
.logo{letter-spacing:.46em;font-size:18px;font-weight:800;line-height:1;white-space:nowrap}
.logo small{display:block;font-size:9px;letter-spacing:.36em;color:var(--gold);margin-top:8px}
.logo .custom-logo,.custom-logo-link img,.aster-header-logo{display:block;width:auto;max-width:260px;max-height:54px;object-fit:contain}
.header-actions{margin-left:auto;display:flex;align-items:center;justify-content:flex-end;gap:24px}
.global-nav{background:transparent!important}
.global-nav__list{display:flex;gap:38px;align-items:center;list-style:none;margin:0;padding:0}
.global-nav a{display:inline-flex;align-items:center;min-height:40px;padding:0;color:#fff;background:transparent!important;font-size:13px;font-weight:700;letter-spacing:.12em;text-shadow:none!important}
.site-header.is-scrolled .global-nav a{color:#fff}
.header-social{display:flex;align-items:center;gap:10px}
.header-social a{display:grid;place-items:center;width:32px;height:32px;border:1px solid rgba(255,255,255,.42);border-radius:50%;color:#fff;background:rgba(255,255,255,.06);transition:.25s}
.header-social a:hover{background:#fff;border-color:#fff;color:var(--main);transform:translateY(-2px)}
.header-social svg{width:15px;height:15px;fill:currentColor}
.header-contact{display:inline-flex;align-items:center;justify-content:center;min-width:124px;height:42px;padding:0 22px;border-radius:999px;background:var(--main);color:#fff;font-size:12px;font-weight:900;letter-spacing:.16em;box-shadow:0 12px 28px rgba(142,7,61,.28);transition:.25s}
.header-contact:hover{background:var(--mainDark);transform:translateY(-2px)}
.nav-toggle{display:none}
.mobile-nav-actions{display:none}
@media(max-width:900px){
  .site-header{height:72px;padding:0 18px}
  .logo{flex:0 1 auto;max-width:calc(100% - 72px);font-size:14px;letter-spacing:.28em}
  .logo .custom-logo,.custom-logo-link img,.aster-header-logo{max-width:210px;max-height:46px}
  .header-actions{gap:0!important;flex-direction:row!important}
  .header-social,.header-contact{display:none!important}
  .nav-toggle{display:flex!important;position:relative!important;z-index:10001;width:48px;height:34px;align-items:center;justify-content:center;margin-left:16px!important;margin-right:0!important;border:1px solid rgba(201,163,74,.72);border-radius:999px;background:rgba(142,7,61,.96);box-shadow:0 10px 24px rgba(142,7,61,.24);cursor:pointer;transition:.35s cubic-bezier(.76,0,.24,1)}
  .nav-toggle span{position:absolute;left:50%;display:block;width:22px;height:2px;border-radius:999px;background:#fff;transform:translateX(-50%);transition:.35s cubic-bezier(.76,0,.24,1)}
  .nav-toggle span:nth-child(1){top:11px}.nav-toggle span:nth-child(2){top:20px}
  body.is-menu-open{overflow:hidden}
  body.is-menu-open .nav-toggle{background:#2b0715;border-color:var(--gold);transform:rotate(180deg)}
  body.is-menu-open .nav-toggle span{width:23px;background:var(--gold)}
  body.is-menu-open .nav-toggle span:nth-child(1){top:16px;transform:translateX(-50%) rotate(45deg)}
  body.is-menu-open .nav-toggle span:nth-child(2){top:16px;transform:translateX(-50%) rotate(-45deg)}
  .global-nav{position:fixed!important;top:72px!important;left:auto!important;right:14px!important;width:min(360px,calc(100vw - 28px))!important;max-height:calc(100vh - 92px);overflow:auto;padding:28px 24px 26px!important;border-radius:0 0 24px 24px;background:rgba(142,7,61,.97)!important;box-shadow:0 22px 60px rgba(0,0,0,.24);opacity:0;pointer-events:none;transform:translateY(-12px);transition:.25s;z-index:10000}
  .global-nav.is-open,body.is-menu-open .global-nav{opacity:1;pointer-events:auto;transform:none}
  .global-nav__list{display:grid!important;gap:0!important;border-top:1px solid rgba(255,255,255,.16)}
  .global-nav__list li{border-bottom:1px solid rgba(255,255,255,.16)}
  .global-nav__list a{display:flex!important;justify-content:space-between;align-items:center;min-height:54px;padding:15px 0!important;color:#fff!important;font-size:14px;letter-spacing:.14em;background:transparent!important}
  .global-nav__list a::after{content:'›';color:var(--gold);font-size:20px;line-height:1;margin-left:14px}
  .mobile-nav-actions{display:block;margin-top:28px}
  .mobile-nav-title{display:block;margin:0 0 12px;color:rgba(255,255,255,.82);font-family:Roboto,sans-serif;font-size:12px;letter-spacing:.18em}
  .mobile-social{display:grid!important;grid-template-columns:repeat(3,58px)!important;justify-content:start;gap:14px!important;margin:0 0 20px}
  .mobile-social a,.mobile-social__link{display:grid!important;place-items:center!important;width:58px!important;height:58px!important;min-height:58px!important;padding:0!important;border:1px solid rgba(255,255,255,.24)!important;border-radius:18px!important;background:rgba(255,255,255,.08)!important;color:#fff!important;overflow:hidden}
  .mobile-social a:hover,.mobile-social__link:hover{border-color:var(--gold)!important;background:rgba(255,255,255,.13)!important}
  .mobile-social svg{width:25px!important;height:25px!important;fill:currentColor}
  .mobile-social span,.mobile-social a::after,.mobile-social__link::after,.mobile-contact::after{display:none!important;content:none!important}
  .mobile-contact{display:flex!important;align-items:center!important;justify-content:center!important;height:56px;margin-top:16px;border-radius:999px;background:#fff!important;color:var(--main)!important;font-size:13px;font-weight:900;letter-spacing:.16em}
}
@media(max-width:560px){.site-header{padding:0 16px}.logo .custom-logo,.custom-logo-link img,.aster-header-logo{max-width:190px;max-height:42px}.global-nav{right:10px!important;width:calc(100vw - 20px)!important}.mobile-social{grid-template-columns:repeat(3,56px)!important}.mobile-social a,.mobile-social__link{width:56px!important;height:56px!important}}

/* SVG logo stability */
.logo img[src$='.svg'],.custom-logo-link img[src$='.svg'],.aster-header-logo[src$='.svg']{height:auto;min-height:1px;}


/* =========================================================
   Phase 3.4: SVG logo display stability
   SVGにwidth/heightが無い場合でもヘッダーで潰れないよう固定幅を持たせる
========================================================= */
.logo:has(.aster-header-logo),
.logo:has(.custom-logo){
  letter-spacing:0;
}
.aster-header-logo,
.logo .custom-logo,
.custom-logo-link img{
  width: min(260px, 24vw) !important;
  height: auto !important;
  max-height: 54px !important;
  object-fit: contain !important;
}
@media(max-width:900px){
  .aster-header-logo,
  .logo .custom-logo,
  .custom-logo-link img{
    width: min(210px, 58vw) !important;
    max-height: 46px !important;
  }
}
@media(max-width:560px){
  .aster-header-logo,
  .logo .custom-logo,
  .custom-logo-link img{
    width: min(190px, 56vw) !important;
    max-height: 42px !important;
  }
}
