/*
 * LEGEND HALL shared styles
 *
 * 現在は完成済みページの見た目を変えないため、共通指定は追加していません。
 * 今後、各ページのヘッダー・黄色帯・フッターを共通化する際に使用します。
 */

/* Unified primary navigation state — 2026-09-09 */
header.siteHeader .topnav > a[href="joshin.html"]{color:#e3bf53!important;}
header.siteHeader .topnav > a.nav-current,
header.siteHeader .topnav .navHallTrigger.nav-current{position:relative;}
header.siteHeader .topnav > a.nav-current::before,
header.siteHeader .topnav .navHallTrigger.nav-current::before{content:"";position:absolute;left:0;right:0;bottom:9px;height:2px;background:#e3bf53;}
header.siteHeader .topnav > a[href="joshin.html"].nav-current{color:#e3bf53!important;}

/* Final unified desktop nav states */
@media (min-width:761px){
header.siteHeader .topnav > a,header.siteHeader .topnav .navHallTrigger{color:#f3f0e9;}
header.siteHeader .topnav > a[href="joshin.html"]{color:#e3bf53!important;}
header.siteHeader .topnav > a.active,header.siteHeader .topnav > a.nav-current,header.siteHeader .topnav .navHallTrigger.nav-current{position:relative;}
header.siteHeader .topnav > a.active:not([href="joshin.html"]),header.siteHeader .topnav > a.nav-current:not([href="joshin.html"]),header.siteHeader .topnav .navHallTrigger.nav-current{color:#f3f0e9!important;}
header.siteHeader .topnav > a.active::before,header.siteHeader .topnav > a.nav-current::before,header.siteHeader .topnav .navHallTrigger.nav-current::before{content:"";position:absolute;left:0;right:0;bottom:9px;height:2px;background:#e3bf53;}
header.siteHeader .topnav > a[href="joshin.html"].active,header.siteHeader .topnav > a[href="joshin.html"].nav-current{color:#e3bf53!important;}
}

/* Shared responsive brand. Desktop keeps the supplied full logo artwork. */
header.siteHeader .siteLogoMark{display:block;width:100%}
header.siteHeader .siteLogoMark img{display:block;width:100%;height:auto}
header.siteHeader .siteLogoName{display:none}

/* Smartphone + tablet navigation — unified 2026-09-11 */
@media(max-width:1024px){
  header.siteHeader{
    position:fixed!important;top:0!important;left:0!important;right:0!important;
    z-index:900!important;width:100%!important;height:60px!important;
    padding:0 clamp(16px,3.5vw,30px)!important;display:flex!important;
    align-items:center!important;justify-content:space-between!important;color:#f3f0e9!important;
    background:linear-gradient(180deg,rgba(0,0,0,.70) 0%,rgba(0,0,0,.56) 62%,rgba(0,0,0,.35) 100%)!important;
    border-bottom:1px solid rgba(255,255,255,.12)!important;
    backdrop-filter:blur(1.5px);-webkit-backdrop-filter:blur(1.5px);
  }
  header.siteHeader .headerUtility,header.siteHeader .topnav{display:none!important}
  header.siteHeader .siteLogo{
    grid-row:auto!important;width:auto!important;height:38px!important;display:flex!important;
    align-items:center!important;gap:9px!important;min-width:0;
  }
  header.siteHeader .siteLogoMark{position:relative;flex:0 0 44px;width:44px!important;height:34px;overflow:hidden}
  header.siteHeader .siteLogoMark img{position:absolute;top:1px;left:-14px;width:70px!important;max-width:none!important;height:auto!important;object-fit:contain}
  header.siteHeader .siteLogoName{display:flex;align-items:baseline;gap:6px;white-space:nowrap;color:#fff}
  header.siteHeader .siteLogoName b{font:500 clamp(13px,1.7vw,15px)/1 Georgia,"Yu Mincho","Hiragino Mincho ProN","Hiragino Mincho Pro",serif;letter-spacing:.045em}
  header.siteHeader .siteLogoName em{font:500 clamp(11px,1.45vw,13px)/1 "Yu Mincho","Hiragino Mincho ProN","Hiragino Mincho Pro",serif;letter-spacing:.06em;font-style:normal}
  header.siteHeader .mobileMenuButton{
    display:flex!important;flex:0 0 42px;width:42px!important;height:42px!important;
    margin:0 0 0 12px!important;padding:7px!important;border:0!important;background:transparent!important;
    flex-direction:column;align-items:flex-end;justify-content:center;gap:6px;z-index:110;cursor:pointer;
  }
  header.siteHeader .mobileMenuButton span{display:block!important;width:25px!important;height:1.5px!important;margin:0!important;background:#fff!important}
  .mobileMenu{
    display:block!important;position:fixed!important;inset:0!important;z-index:1000!important;
    color:#f4f1ea!important;background:rgba(18,18,16,.975)!important;
    opacity:0;visibility:hidden;pointer-events:none;transition:opacity .22s ease,visibility .22s ease;
  }
  .mobileMenu.isOpen{opacity:1;visibility:visible;pointer-events:auto}
  .mobileMenuInner{height:100%;overflow:auto;padding:24px clamp(22px,7vw,64px) 42px}
  .mobileMenuTop{display:flex;align-items:center;justify-content:space-between;padding-bottom:17px;margin-bottom:12px;border-bottom:1px solid rgba(255,255,255,.22)}
  .mobileMenuTop small{font-size:9px;letter-spacing:.2em;color:#d6b558}
  .mobileMenuClose{min-width:44px;min-height:44px;padding:0;border:0;background:none;color:#fff;font-size:34px;font-weight:200;line-height:1;cursor:pointer}
  .mobileMenuInner>a,.mobileMenu summary{display:block;padding:17px 0;border-bottom:1px solid rgba(255,255,255,.14);font:500 18px/1.4 Georgia,"Yu Mincho",serif;list-style:none;cursor:pointer}
  .mobileMenu summary::-webkit-details-marker{display:none}
  .mobileMenu summary:after{content:"＋";float:right;font:400 18px sans-serif}
  .mobileMenu details[open] summary:after{content:"−"}
  .mobileHallLinks{padding:5px 0 12px 14px}
  .mobileHallLinks a{display:block;padding:11px 0;font:500 13px/1.4 -apple-system,BlinkMacSystemFont,"Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif;color:#ddd8ce}
  .mobileMenuInner>a[href="joshin.html"]{color:#e3bf53!important}

  /* The shared header is the only navigation surface below desktop width. */
  .side,.caseSide{display:none!important;visibility:hidden!important;opacity:0!important;pointer-events:none!important}
  .timelineWrap,.layout,.faqLayout,.caseLayout{display:block!important;grid-template-columns:minmax(0,1fr)!important}
  [id]{scroll-margin-top:70px}
}

@media(max-width:390px){
  header.siteHeader{height:58px!important;padding-inline:14px!important}
  header.siteHeader .siteLogo{height:36px!important;gap:8px!important}
  header.siteHeader .siteLogoMark{flex-basis:42px;width:42px!important;height:32px}
  header.siteHeader .siteLogoMark img{top:1px;left:-13px;width:67px!important}
  header.siteHeader .siteLogoName{gap:5px}
  header.siteHeader .siteLogoName b{font-size:13px}
  header.siteHeader .siteLogoName em{font-size:11px}
  header.siteHeader .mobileMenuButton{margin-left:6px!important}
  [id]{scroll-margin-top:66px}
}

@media(max-width:760px){
  /* JOSHIN previously used an in-flow header; preserve its opening spacing now that the shared header overlays. */
  .joshinPage .joshinIntro{padding-top:102px!important}
  /* CASE also had an in-flow header; keep its title clear of the fixed header. */
  .caseHero{padding-top:102px!important}
}

/* Nav state correction: direct-page underline sits BELOW text, not through it. */
@media (min-width:761px){
  header.siteHeader .topnav > a.active,
  header.siteHeader .topnav > a.nav-current{
    position:relative;
    text-decoration:none!important;
  }
  header.siteHeader .topnav > a.active::before,
  header.siteHeader .topnav > a.nav-current::before{
    top:auto!important;
    bottom:-9px!important;
    height:2px!important;
    background:#e3bf53!important;
  }
  /* ABOUT trigger fills the nav row, so retain its existing lower-edge position. */
  header.siteHeader .topnav .navHallTrigger.nav-current::before{
    top:auto!important;
    bottom:9px!important;
    height:2px!important;
    background:#e3bf53!important;
  }
  header.siteHeader .topnav > a[href="joshin.html"]{color:#e3bf53!important;}
  header.siteHeader .topnav > a.active:not([href="joshin.html"]),
  header.siteHeader .topnav > a.nav-current:not([href="joshin.html"]){color:#f3f0e9!important;}
}


/* =========================================================
   SUB PAGE SHELL — unified 2026-09-09
   HOME keeps its existing full hero. All sub pages use ABOUT's
   desktop hero height as the shared rhythm.
   ========================================================= */
:root{--subpage-hero-height:clamp(440px,55vh,590px)}

@media (min-width:761px){
  /* One shared top rhythm: header overlays the hero on every sub page. */
  body:not(.homePage) header.siteHeader{position:absolute!important;top:0;left:0;right:0;z-index:30}

  /* ABOUT is the reference height. */
  body:not(.homePage) .pageHero,
  .caseHero,
  .eventHero,
  .faqHero,
  .joshinIntro{
    height:var(--subpage-hero-height)!important;
    min-height:0!important;
    box-sizing:border-box!important;
  }

  /* Keep each page's character, but fit every hero into the same frame. */
  .caseHero{
    padding:180px 6vw 54px!important;
    display:flex!important;
    flex-direction:column!important;
    justify-content:flex-end!important;
  }
  .eventHero{padding:176px 6vw 54px!important}
  .faqHero{padding:176px 6vw 46px!important}

  /* JOSHIN keeps the editorial composition, compressed into ABOUT height. */
  .joshinIntroPhotoMain{top:112px!important;height:238px!important}
  .joshinIntroPhotoSide{top:92px!important;height:184px!important}
  .joshinIntroPhotoLower{bottom:28px!important;height:156px!important}
  .joshinIntroCopy{top:124px!important;height:394px!important}
  .joshinIntroCopy h1{height:365px!important;font-size:clamp(31px,2.35vw,37px)!important;line-height:1.45!important;margin-top:16px!important}
  .joshinIntroDate{top:204px!important}
  .joshinIntroRoute{top:250px!important}
}

/* Shared OSU availability band. Used on every page directly below its hero. */
.currentNotice{
  min-height:64px;
  background:#cfad4e;
  color:#11120f;
  display:grid;
  grid-template-columns:1fr auto;
  align-items:center;
  gap:40px;
  padding:10px 7vw 11px;
  position:relative;
  z-index:5;
}
.currentNoticeMain{display:flex;align-items:center;gap:28px}
.currentNoticeMain small{font-size:12px;line-height:1.45;font-weight:700;letter-spacing:.06em}
.currentNoticeMain p{display:flex;align-items:baseline;gap:12px;margin:0}
.currentNoticeMain strong{color:#fff;font:700 31px/1 Arial,sans-serif;letter-spacing:-.04em}
.currentNoticeMain span{font-size:16px;font-weight:800}
.currentNoticeAction{display:flex;align-items:center;gap:30px}
.currentNoticeAction b{font-size:12px}
.currentNoticeAction b:before{content:"";display:inline-block;width:7px;height:7px;margin-right:10px;border-radius:50%;background:#a98b50;box-shadow:0 0 0 3px rgba(17,17,15,.08)}
.currentNoticeAction a{min-width:205px;display:flex;justify-content:space-between;padding:10px 0;border-top:1px solid rgba(17,17,15,.45);border-bottom:1px solid rgba(17,17,15,.45);font-size:11px;font-weight:700}

@media(max-width:760px){
  .currentNotice{min-height:58px;padding:7px 5vw;display:flex;align-items:center;justify-content:space-between;gap:12px}
  .currentNoticeMain{display:flex;align-items:baseline;gap:8px}
  .currentNoticeMain small{display:none}
  .currentNoticeMain p{display:flex;align-items:baseline;gap:7px;margin:0}
  .currentNoticeMain strong{font-size:24px;line-height:1}
  .currentNoticeMain span{font-size:11px}
  .currentNoticeAction{margin-left:auto}
  .currentNoticeAction b{display:none}
  .currentNoticeAction a{min-width:0;padding:8px 0;font-size:8px;border:0;gap:12px}
}
