/* Shared navigation and Japanese text corrections, 2026-09-22. */
header{z-index:40}
.navwrap{position:relative}
#navigation{gap:12px;font-size:.9375rem}
#navigation .nav-home{padding:16px 12px;white-space:nowrap}
.nav-group{position:static;min-width:0}
.nav-group>summary{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:48px;padding:14px 18px;list-style:none;cursor:pointer;border-radius:4px;touch-action:manipulation}
.nav-group>summary::-webkit-details-marker{display:none}
.nav-group>summary::marker{content:""}
.nav-group>summary:hover,.nav-group[open]>summary{color:var(--navy);background:#eef3f7}
.nav-group-current>summary{color:#86642e}
.nav-chevron{width:8px;height:8px;border:solid currentColor;border-width:0 1.5px 1.5px 0;transform:rotate(45deg);margin-top:-4px;flex:none;transition:transform .15s}
.nav-group[open] .nav-chevron{transform:rotate(225deg);margin-top:4px}
.nav-panel{position:absolute;right:38px;top:100%;width:min(650px,calc(100vw - 76px));max-height:calc(100dvh - 130px);overflow-y:auto;overscroll-behavior:contain;background:white;border:1px solid var(--line);border-top:3px solid var(--gold);border-radius:0 0 6px 6px;box-shadow:0 14px 30px #0b294b21;padding:18px}
.nav-group:not([open])>.nav-panel{display:none}
.nav-panel ul{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 12px;list-style:none;margin:0;padding:0}
.nav-panel li{min-width:0}
.nav-panel a{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:60px;height:100%;padding:15px 12px;border-radius:3px;line-height:1.75;text-align:left;color:var(--navy);text-decoration:none}
.nav-panel a:hover,.nav-panel a:focus-visible{background:#eef3f7}
.nav-panel a[aria-current="page"]{background:#f4f0e8;box-shadow:inset 3px 0 var(--gold)}
.nav-link-copy{display:block;min-width:0}
.nav-link-copy small{display:block;font-size:.75rem;font-weight:500;color:var(--muted);margin-bottom:4px}
.nav-link-label{display:block;font-size:.9375rem;font-weight:650}
.nav-link-arrow{flex:none;font-size:1.15rem;color:#86642e}
#navigation .nav-contact{padding:15px 18px;white-space:nowrap;color:white;line-height:1.6}
#navigation .nav-contact:hover{background:#214562;color:white}
.menu-toggle{touch-action:manipulation}
.menu-toggle[aria-expanded="true"]{background:#eef3f7;border-color:#8ba0b4}

/* Keep the Q and toggle separate from the natural inline question text. */
.faq-list summary{align-items:baseline;gap:16px;font-family:inherit;font-size:1.125rem;line-height:1.85;letter-spacing:normal;text-align:left;text-wrap:wrap}
.faq-list summary>.faq-marker{flex:0 0 1.25em;font-size:1.2rem;color:#997337;font-family:Georgia,serif}
.faq-list summary>.faq-question{display:block;flex:1;min-width:0;color:var(--navy);font-family:inherit;font-size:inherit;font-weight:650;line-height:inherit;letter-spacing:normal}
.faq-list summary:after{top:24px;line-height:1.85}
.faq-list .answer{padding-left:43px;line-height:1.95;text-align:left}
.faq-question .jp-phrase{font:inherit;color:inherit}
.footer-grid a{line-height:1.85;text-align:left}
.footer-grid>*,.cards>*,.steps>li,.detail-list article>div{min-width:0}
.breadcrumb{align-items:baseline;gap:10px;line-height:1.85}
.breadcrumb>a,.breadcrumb>span[aria-hidden]{flex:none}
.breadcrumb-current{min-width:0}
:is(main,footer) :is(h1,h2,h3,h4,p,li,dt,dd){line-break:strict;word-break:normal}
/* Long URLs can wrap while short Japanese words stay together. */
footer a[href^="mailto:"]{overflow-wrap:anywhere}
footer a[href^="mailto:"] .jp-phrase{display:inline}
[id]{scroll-margin-top:110px}

@media(min-width:1181px){
 .menu-toggle{display:none}
 #navigation{display:flex;width:auto;align-items:center;flex-direction:row;padding:0}
}
@media(max-width:1180px){
 .navwrap{flex-wrap:wrap}
 .menu-toggle{display:flex}
 #navigation{display:block;width:100%;padding:8px 0;max-height:calc(100dvh - 110px);overflow:auto;overscroll-behavior:contain;scrollbar-gutter:stable}
 /* Without JavaScript, the native disclosure navigation remains usable. */
 .nav-ready #navigation:not(.open){display:none}
 #navigation.open{display:block}
 #navigation .nav-home{display:block;padding:12px 14px}
 .nav-group{border-top:1px solid var(--line)}
 .nav-group>summary{padding:15px 14px;font-size:1rem;min-height:54px}
 .nav-panel{position:static;width:100%;max-height:none;overflow:visible;border:0;border-radius:0;box-shadow:none;padding:0 8px 14px;background:#f6f8fa}
 .nav-panel ul{gap:0 10px}
 .nav-panel a{min-height:54px;padding:13px 10px}
 #navigation .nav-contact{display:block;text-align:center;margin:12px 0 4px;white-space:normal}
 .nav-link-label{font-size:.9375rem}
}
@media(max-width:640px){
 .navwrap{padding:10px 16px}
 #navigation{max-height:calc(100dvh - 270px - env(safe-area-inset-bottom));max-height:calc(100svh - 270px - env(safe-area-inset-bottom))}
 .nav-panel ul{grid-template-columns:minmax(0,1fr)}
 .nav-panel a{padding:12px 10px}
 .nav-panel{padding:0 6px 10px}
 .nav-link-copy small{font-size:.75rem;margin-bottom:2px}
 .faq-list summary{font-size:1rem;gap:12px;padding:22px 28px 22px 0;line-height:1.9}
 .faq-list summary>.faq-marker{font-size:1.1rem}
 .faq-list summary:after{top:20px;right:2px}
 .faq-list .answer{padding:0 0 24px 34px;font-size:.9375rem;line-height:1.95}
 .footer-grid{grid-template-columns:minmax(0,1fr);gap:28px}
 .footer-grid>div:first-child{grid-column:auto}
 .footer-grid a{font-size:.9375rem;line-height:1.9}
 .footer-grid>div:not(:first-child){border-top:1px solid var(--line);padding-top:22px}
 .footer-grid strong{display:block;margin-bottom:14px}
 [id]{scroll-margin-top:90px}
}
@media(prefers-reduced-motion:reduce){.nav-chevron{transition:none}}
