/* 承認済みの共通メニュー・文字サイズ。 */
.demo-menu{position:fixed;inset:0;z-index:30;visibility:hidden;pointer-events:none;color:var(--navy)}
body:not([data-menu-state="closed"]) .demo-menu{visibility:visible;pointer-events:auto}
.menu-backdrop{position:absolute;inset:0;width:100%;height:100%;border:0;padding:0;background:rgba(15,35,80,.24);opacity:0;transition:opacity 180ms ease;cursor:pointer}
.menu-sheet{position:absolute;inset:0 0 0 auto;width:min(640px,58vw);display:flex;flex-direction:column;overflow:auto;overscroll-behavior:contain;background:var(--ground);opacity:0;transform:translateX(32px);transition:transform 240ms cubic-bezier(.22,1,.36,1),opacity 180ms ease;border-left:1px solid var(--line)}
body[data-menu-state="opening"] .menu-sheet,body[data-menu-state="open"] .menu-sheet{opacity:1;transform:none;transition-duration:280ms,180ms}
body[data-menu-state="opening"] .menu-backdrop,body[data-menu-state="open"] .menu-backdrop{opacity:1}
.menu-top{position:sticky;top:0;z-index:2;display:flex;align-items:center;justify-content:space-between;gap:16px;flex-shrink:0;padding:16px clamp(24px,3vw,48px);background:inherit}
.menu-logo{display:flex;align-items:center;min-height:44px}
.menu-logo img{display:block;height:22px}
.menu-panel .menu-logo{visibility:hidden}
.menu-close{flex:none;gap:12px;min-width:100px}
.menu-close,.menu-consult{font-size:20px;min-height:60px;padding:16px 28px;line-height:1.3;letter-spacing:.04em}
.menu-close span{font-family:inherit;font-size:22px;font-weight:500;line-height:1}
.menu-body{display:flex;flex-direction:column;justify-content:center;gap:36px;flex:1 0 auto;padding:40px clamp(24px,5vw,72px) 44px}
.menu-primary{display:flex;flex-direction:column}
.menu-primary a{display:flex;align-items:center;min-height:72px;padding:14px 0;border-top:1px solid var(--rule);text-decoration:none;font-size:clamp(36px,3.2vw,44px);font-weight:700;line-height:1.4;letter-spacing:.04em;transition:color .18s ease}
.menu-primary a:last-child{border-bottom:1px solid var(--rule)}
.menu-primary a[aria-current="page"]{text-decoration:underline;text-underline-offset:.22em;text-decoration-thickness:1px}
.menu-side{display:flex;flex-direction:column;align-items:flex-start;gap:24px}
.menu-consult{min-width:220px}
.menu-bottom{display:flex;flex-direction:column;align-items:flex-start;gap:4px;padding:0 clamp(24px,5vw,72px) 32px;color:var(--sub);font-size:16px;letter-spacing:.04em}
.menu-bottom a{display:flex;align-items:center;min-height:32px;text-underline-offset:.25em}
.menu-bottom a:first-child{text-decoration:none}
@media(hover:hover) and (pointer:fine){.menu-primary a:hover{color:#24407F}}
.menu-navy .menu-sheet{inset:0;width:100%;border:0;background:var(--navy);color:var(--ground);transform:translateY(-12px);transition:transform 240ms cubic-bezier(.22,1,.36,1),opacity 220ms ease}
.menu-navy[data-menu-state="opening"] .menu-sheet,.menu-navy[data-menu-state="open"] .menu-sheet{transform:none;opacity:1;transition-duration:280ms,220ms}
.menu-navy .menu-top{padding-inline:clamp(24px,4vw,64px)}
.menu-navy .menu-logo img{filter:brightness(0) invert(1)}
.menu-navy .menu-close{border-color:var(--ground);color:var(--ground)}
.menu-navy .menu-body{display:grid;grid-template-columns:minmax(0,1fr) minmax(240px,.65fr);align-items:center;gap:clamp(48px,10vw,180px);width:min(1260px,100%);margin-inline:auto;padding:48px clamp(32px,7vw,112px) 64px}
.menu-navy .menu-primary a{font-size:clamp(36px,4vw,56px);min-height:90px;border-color:rgba(243,245,248,.26)}
.menu-navy .menu-side{align-self:end;padding-bottom:20px;gap:36px}
.menu-navy .menu-consult{background:var(--ground);border-color:var(--ground);color:var(--navy)}
.menu-navy .menu-bottom{flex-direction:row;justify-content:space-between;flex-wrap:wrap;width:min(1260px,100%);margin-inline:auto;padding-inline:clamp(32px,7vw,112px);color:var(--ground)}
.menu-navy :focus-visible{outline-color:var(--ground)}
@media(hover:hover) and (pointer:fine){.menu-navy .menu-primary a:hover{color:#AFC0E0}.menu-navy .menu-consult:hover{background:#24407F;border-color:#24407F;color:#fff}}
@media(max-width:820px){
 .menu-sheet{width:100%;border:0}
 .menu-panel .menu-logo{visibility:visible}
 .menu-top,.menu-navy .menu-top{padding:16px}
 .menu-body,.menu-navy .menu-body{display:flex;width:100%;padding:28px 28px 32px;gap:24px}
 .menu-primary{width:100%}
 .menu-primary a,.menu-navy .menu-primary a{font-size:30px;min-height:68px;padding-block:12px}
 .menu-close,.menu-consult{font-size:18px;min-height:56px;padding:14px 24px}
 .menu-side,.menu-navy .menu-side{width:100%;align-self:auto;padding:0;gap:20px}
 .menu-bottom,.menu-navy .menu-bottom{padding:0 28px 28px;flex-direction:column;gap:4px}
}
@media(prefers-reduced-motion:reduce){
 .menu-sheet,.menu-navy .menu-sheet{transform:none!important;transition:opacity 80ms linear!important}
 .menu-backdrop{transition:opacity 80ms linear}
}
