/* WordPress integration; v0 layout declarations live in global.css/about.css. */
:root { --font-noto: 'Noto Sans JP Variable'; --font-plex: 'IBM Plex Sans'; }
body { margin: 0; background: #fff; }
[hidden] { display: none !important; }
.desktop-nav ul { display: flex; align-items: center; gap: 22px; list-style: none; margin: 0; padding: 0; }
.footer-main nav ul { display: contents; list-style: none; }
.mobile-menu ul { list-style: none; margin: 0; padding: 0; }
.admin-bar .site-header { top: 32px; }
.generic-content { min-height: 45vh; overflow-wrap: anywhere; }
.generic-content h1 { font-size: clamp(28px,4vw,44px); margin-bottom: 30px; }
.generic-content .entry-content > * + * { margin-top: 1.25em; }
.generic-content .entry-content a { text-decoration: underline; }
.generic-content ul, .generic-content ol { padding-left: 1.5em; list-style: revert; }
.generic-content img { height: auto; }
@media(max-width:782px) { .admin-bar .site-header { top: 46px; } }
@media(max-width:600px) { .admin-bar .site-header { top: 0; } }
@media(prefers-reduced-motion:reduce) { html { scroll-behavior: auto; } *,*::before,*::after { animation-duration:.01ms!important; transition-duration:.01ms!important; } }

/* Japanese navigation: retain typography; switch before labels collide. */
.desktop-nav ul { gap: inherit; }
.mobile-menu > ul { display: contents; }
.mobile-menu a { gap: 8px; min-width: 0; }
.mobile-menu a svg { flex-shrink: 0; }
.footer-main nav { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.footer-main nav a { min-width: 0; overflow-wrap: anywhere; }
.site-header a:focus-visible, .site-header button:focus-visible, .site-footer a:focus-visible { outline: 2px solid var(--brand-ink); outline-offset: 4px; }
@media(max-width:1100px) {
 .desktop-nav { display: none; }
 .menu-toggle { display: flex; }
 .header-cta { margin-left: auto; }
}
@media(max-width:820px) { .footer-main nav { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* Three-stage header: full >=1260, compact 1101-1259, mobile <=1100. */
@media(min-width:1101px) {
 .site-header .desktop-nav { display: flex; flex-shrink: 0; }
 .site-header .menu-toggle { display: none; }
 .site-header .desktop-cta-label { display: inline; }
 .site-header .header-cta { flex-shrink: 0; }
}
@media(min-width:1101px) and (max-width:1259px) {
 .site-header .desktop-nav { gap: clamp(6px, calc(3.8vw - 35.838px), 12px); }
 .site-header .header-inner { padding-inline: 12px; gap: 8px; }
 .site-header .header-cta { padding-inline: 8px; }
 .site-header .brand { width: 180px; }
 .site-header .desktop-nav a { font-size: 14px; }
}

@media(min-width:1260px) and (max-width:1399px) {
 .site-header .desktop-nav { gap: clamp(14px, calc(13.2vw - 152.32px), 28px); }
}

/* Open mobile navigation: header stacking context 30; backdrop 1, controls/menu 2. */
@media(max-width:1100px) {
 .site-header.mobile-menu-open { position: fixed; left: 0; right: var(--menu-scrollbar, 0px); }
 .mobile-menu-open .header-inner { position: relative; z-index: 2; background: #fff; }
 .mobile-menu-backdrop { position: fixed; inset: var(--mobile-menu-top) 0 0; z-index: 1; background: rgba(0,0,0,.35); touch-action: none; }
 .site-header .mobile-menu { position: fixed; top: var(--mobile-menu-top); left: 0; right: var(--menu-scrollbar, 0px); z-index: 2; max-height: calc(100vh - var(--mobile-menu-top)); max-height: calc(100dvh - var(--mobile-menu-top)); overflow-y: auto; overscroll-behavior: contain; -webkit-overflow-scrolling: touch; background: #fff; box-shadow: 0 8px 16px rgba(0,0,0,.12); }
}
