/* Shared header geometry and mutually exclusive navigation. */
header.site-header{position:relative;inset:auto;display:flex;justify-content:space-between;align-items:center;flex-wrap:nowrap;box-sizing:border-box;height:84px;min-height:84px;padding:20px var(--page-gutter);gap:24px;background:#fff;color:#000033;border-bottom:1px solid #00003325}
.slumber-front header.site-header{position:absolute;inset:0 0 auto;background:transparent;color:#fff;border:0}
.admin-bar.slumber-front header.site-header{top:32px}
header.site-header .brand{position:relative;display:block;width:220px;height:24px;flex:0 0 220px;margin:0;overflow:hidden}
header.site-header .brand img{position:absolute;top:50%;left:0;width:100%;height:auto;max-width:none;transform:translateY(-50%);filter:none}
.slumber-front header.site-header .brand img{filter:brightness(0) invert(1)}
header.site-header .desktop-navigation{display:block}
header.site-header .nav{display:flex;gap:24px;align-items:center;margin:0;padding:0;list-style:none;font-size:12px}
header.site-header .menu-button{display:none;align-items:center;justify-content:center;width:44px;height:44px;flex:0 0 44px;padding:0;border:0;background:none;color:inherit;cursor:pointer}
header.site-header .menu-button i{display:block;width:26px;height:10px;border:0;border-top:1px solid currentColor;border-bottom:1px solid currentColor}
#menu{width:100%;max-width:none;height:100dvh;max-height:none;margin:0;padding:20px var(--page-gutter);border:0;background:#fff;color:#000033;box-sizing:border-box}
#menu::backdrop{background:#fff}
#menu .dialog-top{height:44px;display:flex;align-items:center;justify-content:space-between}
#menu .dialog-top h2{margin:0;line-height:1}
#menu .menu-logo{display:block;width:220px;max-width:calc(100vw - 120px);height:auto;filter:none}
#menu #close-menu{display:flex;align-items:center;justify-content:center;width:44px;height:44px;padding:0;border:0;background:none;color:inherit;cursor:pointer;outline:none}
#menu #close-menu svg{width:24px;height:24px}
body.menu-keyboard #menu #close-menu:focus-visible{outline:1px solid currentColor;outline-offset:2px}
#menu nav{max-width:1100px;margin:3vh auto}
#menu nav a{display:flex;align-items:center;gap:40px;padding:0;border-bottom:1px solid #00003325;font-family:"helvetica-lt-pro","source-han-sans-japanese",sans-serif;font-size:40px;font-weight:400;letter-spacing:0;line-height:1.7;text-decoration:none}
#menu nav span{font-family:Montserrat,"source-han-sans-japanese",sans-serif;font-size:13px;letter-spacing:0}
#menu .dialog-bottom{display:flex;justify-content:space-between;font-size:14px}
@media(max-width:782px){.admin-bar.slumber-front header.site-header{top:46px}}
@media(max-width:760px){header.site-header{height:84px;min-height:84px;gap:16px}header.site-header .brand{width:180px;height:20px;flex-basis:180px}header.site-header .desktop-navigation{display:none}header.site-header .menu-button{display:flex}#menu .menu-logo{width:180px}#menu nav{margin:5vh 0}#menu nav a{font-size:32px;gap:25px}}

/* Prevent the legacy admin offset from moving interior headers twice. */
body:not(.slumber-front).admin-bar header.site-header{top:auto}

/* Keep the social link aligned after removing the location label. */
#menu .dialog-bottom{justify-content:flex-end}

/* Persistent header and compact search controls. */
body:not(.slumber-front){padding-top:84px}
header.site-header,.slumber-front header.site-header{position:fixed;inset:0 0 auto;z-index:100;height:84px}
body.admin-bar header.site-header,body:not(.slumber-front).admin-bar header.site-header{top:32px}
header.site-header .desktop-navigation{margin-left:auto}
.header-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}
.search-button,.search-close{display:flex;align-items:center;justify-content:center;width:44px;height:44px;padding:0;border:0;background:none;color:inherit;cursor:pointer}
.slumber-front.header-scrolled header.site-header{background:#fff;color:#000033;border-bottom:1px solid #00003325}
.slumber-front.header-scrolled header.site-header .brand img{filter:none}
html{scroll-padding-top:116px}
#site-search{box-sizing:border-box;position:fixed;inset:0 0 auto;width:100%;max-width:none;max-height:100dvh;margin:0;padding:28px var(--page-gutter) 40px;border:0;background:#fff;color:#000033;font-family:"helvetica-lt-pro","source-han-sans-japanese",sans-serif}
#site-search::backdrop{background:rgba(0,0,51,.25)}
.search-panel-top{display:flex;align-items:center;justify-content:space-between;max-width:900px;margin:0 auto 32px}
.search-panel-top h2{margin:0;font-size:24px;font-weight:400}
.slumber-search-form{display:flex;align-items:center;gap:16px;max-width:900px;margin:auto;border-bottom:1px solid #000033;padding-bottom:12px}
.slumber-search-form input{width:100%;min-width:0;border:0;border-radius:0;background:transparent;color:#000033;font:inherit;font-size:20px;line-height:1.6;outline-offset:4px}
.slumber-search-form button{flex-shrink:0;border:0;background:none;color:inherit;font:inherit;font-size:13px;min-height:44px;cursor:pointer}
.search-hint{max-width:900px;margin:16px auto 0;font-size:11px;line-height:1.8}
.search-close:focus-visible,.search-button:focus-visible{outline:1px solid currentColor;outline-offset:2px}
.screen-reader-text{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
.search-query{font-size:14px;margin-bottom:32px;overflow-wrap:anywhere}
.search-result{border-top:1px solid #00003330}
.search-result:last-child{border-bottom:1px solid #00003330}
.search-result>a{display:grid;grid-template-columns:80px minmax(0,1fr) 20px;gap:24px;padding:28px 0;text-decoration:none}
.search-result-type{font-size:11px;padding-top:6px}.search-result h2{font-size:22px;font-weight:400;line-height:1.5;margin:0 0 12px}.search-result p{font-size:13px;line-height:1.9;margin:0}.search-result h2,.search-result p{overflow-wrap:anywhere}
.search-result>a:hover h2{text-decoration:underline;text-underline-offset:5px}
.search-empty{font-size:14px;line-height:1.9}.search-reopen{border:0;border-bottom:1px solid currentColor;background:none;color:inherit;padding:12px 0;font:inherit;cursor:pointer}
@media(max-width:900px){header.site-header .nav{gap:16px}header.site-header{gap:12px}}
@media(max-width:782px){body.admin-bar header.site-header,body:not(.slumber-front).admin-bar header.site-header{top:46px}#wpadminbar{position:fixed!important}}
@media(max-width:760px){.header-actions{margin-left:auto;gap:0}header.site-header{gap:8px}.search-panel-top{margin-bottom:24px}#site-search{padding-top:20px;padding-bottom:28px}.slumber-search-form input{font-size:16px}.search-result>a{grid-template-columns:52px minmax(0,1fr) 16px;gap:12px;padding:24px 0}.search-result h2{font-size:18px}}
@media(max-width:359px){header.site-header .brand{width:160px;flex-basis:160px}}

/* Add a small typographic space only at Japanese/Latin boundaries. */
body{ text-autospace:normal; }
