@charset "UTF-8";

/* Shared header/footer presentation for TOP, kentei, create and mypage. */
html body .site-header,
html body #search-container.site-header{
  position:fixed !important;
  inset:0 0 auto 0 !important;
  width:100% !important;
  height:76px !important;
  min-height:76px !important;
  max-height:76px !important;
  overflow:visible !important;
  background:rgba(255,255,255,.96) !important;
  border-bottom:1px solid rgba(219,227,236,.92) !important;
  backdrop-filter:blur(14px) !important;
  -webkit-backdrop-filter:blur(14px) !important;
  z-index:3000 !important;
}

html body .site-header__inner,
html body #search-container.site-header .site-header__inner{
  width:min(var(--content-width), calc(100% - 20px)) !important;
  max-width:none !important;
  height:76px !important;
  min-height:76px !important;
  margin:0 auto !important;
  padding:0 !important;
  display:flex !important;
  align-items:center !important;
  justify-content:space-between !important;
  gap:16px !important;
  overflow:hidden !important;
}

html body .site-header__brand{
  display:flex !important;
  align-items:center !important;
  flex:0 0 auto !important;
  min-width:0 !important;
  overflow:hidden !important;
}

html body .site-brand{
  display:inline-flex !important;
  align-items:center !important;
  gap:10px !important;
  min-width:0 !important;
  max-width:100% !important;
  overflow:hidden !important;
  text-decoration:none !important;
}

html body .site-brand__logo{
  width:40px !important;
  height:40px !important;
  flex:0 0 40px !important;
  border-radius:12px !important;
}

html body .site-brand__text{
  min-width:0 !important;
  font-size:clamp(1.2rem,1.6vw,1.75rem) !important;
  line-height:1.1 !important;
  white-space:nowrap !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
}

html body .site-header__search--desktop{
  display:block !important;
  flex:1 1 auto !important;
  min-width:120px !important;
  max-width:520px !important;
}

html body .site-header__tools{
  display:flex !important;
  align-items:center !important;
  justify-content:flex-end !important;
  flex:0 0 auto !important;
  min-width:0 !important;
  gap:10px !important;
  margin-inline-start:auto !important;
  overflow:visible !important;
}

html body .site-header__search-toggle{
  display:none !important;
  align-items:center !important;
  justify-content:center !important;
  gap:6px !important;
  min-height:40px !important;
  border:1px solid rgba(219,227,236,.95) !important;
  border-radius:999px !important;
  background:#fff !important;
  color:#1e3a5f !important;
  font-weight:800 !important;
  line-height:1 !important;
  box-shadow:0 7px 20px rgba(15,23,42,.06) !important;
}

html body .site-header__search-toggle:hover,
html body .site-header__search-toggle:focus-visible{
  color:#1d4ed8 !important;
  border-color:#bfdbfe !important;
  background:#eff6ff !important;
}

html body .site-header__search-toggle svg{
  flex:0 0 22px !important;
}

html body .site-header__search-toggle-label{
  display:inline-block !important;
  min-width:0 !important;
  max-width:5.5em !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
  white-space:nowrap !important;
}

html body .site-header__search-panel{
  top:100% !important;
  overflow:visible !important;
  z-index:5000 !important;
}

html body .site-header__search-panel[hidden]{
  display:none !important;
}

html body .site-footer,
html body footer.site-footer{
  width:100% !important;
  margin:42px 0 0 !important;
  padding:0 !important;
  border-top:1px solid rgba(219,227,236,.9) !important;
  background:rgba(255,255,255,.88) !important;
  text-align:center !important;
}

html body .site-footer__inner{
  width:min(var(--content-width), calc(100% - 20px)) !important;
  margin:0 auto !important;
  padding:28px 0 40px !important;
}

html body .site-footer__links{
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  flex-wrap:wrap !important;
  gap:12px 24px !important;
  margin:0 0 20px !important;
}

html body .site-footer__links a{
  color:#374151 !important;
  text-decoration:none !important;
}

html body .site-footer__links a:hover,
html body .site-footer__links a:focus-visible{
  color:#1d4ed8 !important;
  text-decoration:underline !important;
}

html body .site-footer__copy{
  margin:0 !important;
  color:#6b7280 !important;
  font-size:.95rem !important;
  text-align:center !important;
}

@media (max-width:767px){
  html body{
    padding-top:64px !important;
  }

  html body .site-header,
  html body #search-container.site-header{
    height:64px !important;
    min-height:64px !important;
    max-height:64px !important;
  }

  html body .site-header__inner,
  html body #search-container.site-header .site-header__inner{
    width:100% !important;
    height:64px !important;
    min-height:64px !important;
    margin:0 !important;
    padding:0 8px !important;
    gap:5px !important;
  }

  html body .site-header__brand{
    flex:0 1 122px !important;
    width:auto !important;
    max-width:122px !important;
  }

  html body .site-brand{
    gap:5px !important;
  }

  html body .site-brand__logo{
    width:30px !important;
    height:30px !important;
    flex-basis:30px !important;
    border-radius:8px !important;
  }

  html body .site-brand__text{
    max-width:5.2em !important;
    font-size:1.02rem !important;
  }

  html body .site-header__search--desktop{
    display:none !important;
  }

  html body .site-header__tools{
    flex:1 1 auto !important;
    max-width:calc(100% - 127px) !important;
    gap:4px !important;
    margin-inline-start:0 !important;
    overflow:hidden !important;
  }

  html body .site-header__search-toggle{
    order:1 !important;
    display:inline-flex !important;
    width:auto !important;
    min-width:66px !important;
    max-width:88px !important;
    height:38px !important;
    min-height:38px !important;
    flex:0 1 auto !important;
    padding:0 9px !important;
    gap:5px !important;
    font-size:13px !important;
  }

  html body .site-header__search-toggle svg{
    width:19px !important;
    height:19px !important;
    flex-basis:19px !important;
  }

  html body .site-header__search-toggle-label{
    display:inline-block !important;
    max-width:4.5em !important;
  }

  html body .site-header__language-toggle.language-menu-trigger--header{
    order:2 !important;
    width:38px !important;
    min-width:38px !important;
    max-width:38px !important;
    height:38px !important;
    min-height:38px !important;
    flex:0 0 38px !important;
    padding:0 !important;
  }

  html body .site-header__language-toggle .language-menu-trigger__label{
    display:none !important;
  }

  html body .site-header__tools > .top-nav{
    order:3 !important;
    display:flex !important;
    align-items:center !important;
    justify-content:flex-end !important;
    flex:0 1 auto !important;
    min-width:0 !important;
    max-width:none !important;
    gap:4px !important;
    overflow:hidden !important;
    white-space:nowrap !important;
  }

  html body .top-nav__text-link{
    display:none !important;
  }

  html body .top-nav__link{
    min-height:36px !important;
    height:36px !important;
    padding:0 11px !important;
    font-size:13px !important;
    line-height:1 !important;
    white-space:nowrap !important;
  }

  html body .top-nav__link--subtle{
    max-width:88px !important;
    overflow:hidden !important;
    text-overflow:ellipsis !important;
  }

  html body .top-nav__user{
    max-width:4.8em !important;
    min-height:30px !important;
    padding:0 6px !important;
    font-size:11px !important;
  }

  html body .site-header__search-panel{
    overflow:visible !important;
  }

  html body .site-header__search-panel-inner,
  html body .site-header__search-panel .search-box{
    overflow:visible !important;
  }

  html body .site-header__search-panel .suggestions.is-open{
    display:block !important;
    z-index:5010 !important;
    max-height:min(52vh,360px) !important;
    overflow-y:auto !important;
  }

  html body .site-footer__inner{
    width:min(var(--content-width), calc(100% - 16px)) !important;
    padding:24px 0 calc(30px + env(safe-area-inset-bottom, 0px)) !important;
  }

  html body .site-footer__links{
    gap:10px 18px !important;
  }
}

@media (max-width:430px){
  html body .site-header__inner,
  html body #search-container.site-header .site-header__inner{
    padding:0 6px !important;
    gap:4px !important;
  }

  html body .site-header__brand{
    flex-basis:112px !important;
    max-width:112px !important;
  }

  html body .site-header__tools{
    max-width:calc(100% - 116px) !important;
    gap:3px !important;
  }

  html body .site-brand__logo{
    width:28px !important;
    height:28px !important;
    flex-basis:28px !important;
  }

  html body .site-brand__text{
    max-width:4.8em !important;
    font-size:.98rem !important;
  }

  html body .site-header__search-toggle{
    min-width:62px !important;
    max-width:78px !important;
    height:36px !important;
    min-height:36px !important;
    padding:0 7px !important;
    font-size:12.5px !important;
  }

  html body .site-header__language-toggle.language-menu-trigger--header{
    width:36px !important;
    min-width:36px !important;
    max-width:36px !important;
    height:36px !important;
    min-height:36px !important;
    flex-basis:36px !important;
  }

  html body .top-nav__link{
    min-height:35px !important;
    height:35px !important;
    padding:0 9px !important;
    font-size:12.5px !important;
  }

  html body .top-nav__user{
    display:none !important;
  }
}

@media (max-width:350px){
  html body .site-header__brand{
    flex-basis:100px !important;
    max-width:100px !important;
  }

  html body .site-header__tools{
    max-width:calc(100% - 104px) !important;
  }

  html body .site-brand__text{
    max-width:4.2em !important;
    font-size:.92rem !important;
  }

  html body .site-header__search-toggle{
    min-width:58px !important;
    max-width:70px !important;
    padding:0 6px !important;
    font-size:12px !important;
  }

  html body .site-header__search-toggle-label{
    max-width:3.8em !important;
  }
}

@media (max-width:767px) and (max-device-height:667px){
  html body{
    padding-top:0 !important;
  }

  html body .site-header,
  html body #search-container.site-header{
    position:sticky !important;
    position:-webkit-sticky !important;
    inset:auto 0 auto 0 !important;
    top:0 !important;
  }
}

/* Final high-specificity normalization: page-specific legacy CSS must not change shared chrome. */
html body #search-container.site-header.site-header--shared{
  position:fixed !important;
  inset:0 0 auto 0 !important;
  width:100% !important;
  height:76px !important;
  min-height:76px !important;
  max-height:76px !important;
  overflow:visible !important;
}
html body #search-container.site-header.site-header--shared .site-header__inner{
  width:min(var(--content-width), calc(100% - 20px)) !important;
  max-width:none !important;
  height:76px !important;
  min-height:76px !important;
  margin:0 auto !important;
  padding:0 !important;
  display:flex !important;
  align-items:center !important;
  justify-content:space-between !important;
  gap:16px !important;
  overflow:hidden !important;
}
html body #search-container.site-header.site-header--shared .site-header__brand{
  display:flex !important;
  align-items:center !important;
  flex:0 0 auto !important;
  width:auto !important;
  min-width:0 !important;
  max-width:none !important;
  overflow:hidden !important;
}
html body #search-container.site-header.site-header--shared .site-brand{
  display:inline-flex !important;
  align-items:center !important;
  gap:10px !important;
  min-width:0 !important;
  max-width:100% !important;
  overflow:hidden !important;
}
html body #search-container.site-header.site-header--shared .site-brand__logo{
  width:40px !important;
  height:40px !important;
  flex:0 0 40px !important;
  border-radius:12px !important;
}
html body #search-container.site-header.site-header--shared .site-brand__text{
  max-width:none !important;
  font-size:clamp(1.2rem,1.6vw,1.75rem) !important;
  line-height:1.1 !important;
  white-space:nowrap !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
}
html body #search-container.site-header.site-header--shared .site-header__search--desktop{
  display:block !important;
  flex:1 1 auto !important;
  width:auto !important;
  min-width:120px !important;
  max-width:520px !important;
  margin:0 !important;
}
html body #search-container.site-header.site-header--shared .site-header__tools{
  display:flex !important;
  align-items:center !important;
  justify-content:flex-end !important;
  flex:0 0 auto !important;
  width:auto !important;
  min-width:0 !important;
  max-width:none !important;
  gap:10px !important;
  margin-inline-start:auto !important;
  overflow:visible !important;
}
html body #search-container.site-header.site-header--shared .site-header__search-toggle{
  display:none !important;
}
html body footer.site-footer.site-footer--shared{
  width:100% !important;
  margin:42px 0 0 !important;
  padding:0 !important;
}
html body footer.site-footer.site-footer--shared .site-footer__inner{
  width:min(var(--content-width), calc(100% - 20px)) !important;
  margin:0 auto !important;
  padding:28px 0 40px !important;
}

@media (max-width:767px){
  html body #search-container.site-header.site-header--shared{
    height:64px !important;
    min-height:64px !important;
    max-height:64px !important;
  }
  html body #search-container.site-header.site-header--shared .site-header__inner{
    width:100% !important;
    max-width:none !important;
    height:64px !important;
    min-height:64px !important;
    margin:0 !important;
    padding:0 8px !important;
    gap:5px !important;
  }
  html body #search-container.site-header.site-header--shared .site-header__brand{
    flex:0 1 122px !important;
    width:auto !important;
    min-width:0 !important;
    max-width:122px !important;
  }
  html body #search-container.site-header.site-header--shared .site-brand{
    gap:5px !important;
  }
  html body #search-container.site-header.site-header--shared .site-brand__logo{
    width:30px !important;
    height:30px !important;
    flex:0 0 30px !important;
    border-radius:8px !important;
  }
  html body #search-container.site-header.site-header--shared .site-brand__text{
    max-width:5.2em !important;
    font-size:1.02rem !important;
    line-height:1 !important;
  }
  html body #search-container.site-header.site-header--shared .site-header__search--desktop{
    display:none !important;
  }
  html body #search-container.site-header.site-header--shared .site-header__tools{
    display:flex !important;
    flex:1 1 auto !important;
    width:auto !important;
    min-width:0 !important;
    max-width:calc(100% - 127px) !important;
    gap:4px !important;
    margin-inline-start:0 !important;
    overflow:hidden !important;
  }
  html body #search-container.site-header.site-header--shared .site-header__search-toggle{
    order:1 !important;
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;
    width:auto !important;
    min-width:66px !important;
    max-width:88px !important;
    height:38px !important;
    min-height:38px !important;
    flex:0 1 auto !important;
    padding:0 9px !important;
    gap:5px !important;
    font-size:13px !important;
  }
  html body #search-container.site-header.site-header--shared .site-header__search-toggle-label{
    display:inline-block !important;
    max-width:4.5em !important;
  }
  html body #search-container.site-header.site-header--shared .site-header__language-toggle.language-menu-trigger--header{
    order:2 !important;
    width:38px !important;
    min-width:38px !important;
    max-width:38px !important;
    height:38px !important;
    min-height:38px !important;
    flex:0 0 38px !important;
    padding:0 !important;
  }
  html body #search-container.site-header.site-header--shared .site-header__tools > .top-nav{
    order:3 !important;
    display:flex !important;
    align-items:center !important;
    justify-content:flex-end !important;
    flex:0 1 auto !important;
    width:auto !important;
    min-width:0 !important;
    max-width:none !important;
    gap:4px !important;
    overflow:hidden !important;
  }
  html body #search-container.site-header.site-header--shared .top-nav__text-link{
    display:none !important;
  }
  html body #search-container.site-header.site-header--shared .top-nav__link{
    min-height:36px !important;
    height:36px !important;
    padding:0 11px !important;
    font-size:13px !important;
  }
  html body footer.site-footer.site-footer--shared .site-footer__inner{
    width:min(var(--content-width), calc(100% - 16px)) !important;
    padding:24px 0 calc(30px + env(safe-area-inset-bottom, 0px)) !important;
  }
}

@media (max-width:430px){
  html body #search-container.site-header.site-header--shared .site-header__inner{
    padding:0 6px !important;
    gap:4px !important;
  }
  html body #search-container.site-header.site-header--shared .site-header__brand{
    flex-basis:112px !important;
    max-width:112px !important;
  }
  html body #search-container.site-header.site-header--shared .site-header__tools{
    max-width:calc(100% - 116px) !important;
    gap:3px !important;
  }
  html body #search-container.site-header.site-header--shared .site-brand__logo{
    width:28px !important;
    height:28px !important;
    flex-basis:28px !important;
  }
  html body #search-container.site-header.site-header--shared .site-brand__text{
    max-width:4.8em !important;
    font-size:.98rem !important;
  }
  html body #search-container.site-header.site-header--shared .site-header__search-toggle{
    min-width:62px !important;
    max-width:78px !important;
    height:36px !important;
    min-height:36px !important;
    padding:0 7px !important;
    font-size:12.5px !important;
  }
  html body #search-container.site-header.site-header--shared .site-header__language-toggle.language-menu-trigger--header{
    width:36px !important;
    min-width:36px !important;
    max-width:36px !important;
    height:36px !important;
    min-height:36px !important;
    flex-basis:36px !important;
  }
  html body #search-container.site-header.site-header--shared .top-nav__link{
    min-height:35px !important;
    height:35px !important;
    padding:0 9px !important;
    font-size:12.5px !important;
  }
  html body #search-container.site-header.site-header--shared .top-nav__user{
    display:none !important;
  }
}

@media (max-width:350px){
  html body #search-container.site-header.site-header--shared .site-header__brand{
    flex-basis:100px !important;
    max-width:100px !important;
  }
  html body #search-container.site-header.site-header--shared .site-header__tools{
    max-width:calc(100% - 104px) !important;
  }
  html body #search-container.site-header.site-header--shared .site-brand__text{
    max-width:4.2em !important;
    font-size:.92rem !important;
  }
  html body #search-container.site-header.site-header--shared .site-header__search-toggle{
    min-width:58px !important;
    max-width:70px !important;
    padding:0 6px !important;
    font-size:12px !important;
  }
}

@media (max-width:767px) and (max-device-height:667px){
  html body #search-container.site-header.site-header--shared{
    position:sticky !important;
    position:-webkit-sticky !important;
    inset:auto 0 auto 0 !important;
    top:0 !important;
  }
}

/* Remove legacy per-page padding so TOP and kentei share identical header geometry. */
html body #search-container.site-header.site-header--shared{
  padding:0 !important;
  box-sizing:border-box !important;
}

/* Shared chrome owns its typography and control dimensions, independent of page CSS. */
html body #search-container.site-header.site-header--shared{
  font-size:16px !important;
  line-height:1.65 !important;
}
html body #search-container.site-header.site-header--shared .site-header__search--desktop .search-box,
html body #search-container.site-header.site-header--shared .site-header__search--desktop .searchInput{
  height:48px !important;
  min-height:48px !important;
  max-height:48px !important;
  box-sizing:border-box !important;
}
html body #search-container.site-header.site-header--shared .site-header__search--desktop .searchInput{
  width:100% !important;
  padding:10px 16px !important;
  border:1px solid #cbd5e1 !important;
  border-radius:999px !important;
  background:#fff !important;
  font-size:16px !important;
  line-height:26px !important;
}
html body #search-container.site-header.site-header--shared .suggestions,
html body #search-container.site-header.site-header--shared .suggestion-item{
  font-size:16px !important;
  line-height:1.5 !important;
}
html body footer.site-footer.site-footer--shared{
  font-size:16px !important;
  line-height:26.4px !important;
}
html body footer.site-footer.site-footer--shared .language-menu-trigger--footer{
  min-height:40px !important;
  height:40px !important;
  padding:0 12px !important;
  font-size:16px !important;
  line-height:16px !important;
}
html body footer.site-footer.site-footer--shared .site-footer__links,
html body footer.site-footer.site-footer--shared .site-footer__links a{
  font-size:16px !important;
  line-height:26.4px !important;
}
html body footer.site-footer.site-footer--shared .site-footer__copy{
  font-size:15.2px !important;
  line-height:25.08px !important;
}

@media (max-width:767px){
  html body.home-page,
  html body.home-page--redesign,
  html body.kentei-page{
    padding-top:64px !important;
  }
}
@media (max-width:767px) and (max-device-height:667px){
  html body.home-page,
  html body.home-page--redesign,
  html body.kentei-page{
    padding-top:0 !important;
  }
}

/* v155: POST-only logout form keeps the shared header layout unchanged. */
html body .top-nav__logout-form{display:inline-flex;margin:0;padding:0;}
html body .top-nav__logout-button{appearance:none;-webkit-appearance:none;border:0;background:transparent;font:inherit;cursor:pointer;padding:0;}
html body .top-nav__logout-button:hover,
html body .top-nav__logout-button:focus-visible{text-decoration:underline;}
@media(max-width:767px){html body .top-nav__logout-form{display:none!important;}}
