/* Shared white corporate navigation; dropdowns are link indexes, not cards. */
.cn-header {
  position:sticky;
  top:0;
  width:100%;
  background:#fff;
  z-index:50;
  transform:translateY(0);
  transition:transform .28s cubic-bezier(.22,1,.36,1),box-shadow .28s ease;
  will-change:transform;
}
/* The home header keeps its original overlay until it has left the hero. */
.cs-home .cn-header.cn-header--tracking { position:fixed; }
.cn-header.cn-header--hidden { transform:translateY(calc(-100% - 2px)); box-shadow:none; }
.cn-header.cn-header--visible { transform:translateY(0); box-shadow:0 10px 28px rgba(33,61,88,.09); }
.cn-navigation { display:flex; align-items:center; gap:24px; color:#263e58; font:500 14px/1.8 'Noto Sans JP',sans-serif; }
.cn-navigation > a,.cn-dropdown > summary { padding:16px 0; cursor:pointer; white-space:nowrap; }
.cn-dropdown > summary { display:flex; gap:9px; align-items:center; list-style:none; }
.cn-dropdown > summary::-webkit-details-marker { display:none; }
.cn-dropdown[open] > summary { color:#00266c; }
.cn-dropdown[open] > summary span { transform:rotate(180deg); }
.cn-panel { position:absolute; top:100%; right:28px; width:min(1040px,calc(100vw - 56px)); max-height:calc(100dvh - 105px); overflow-y:auto; background:#fff; border:1px solid #d5e0e9; box-shadow:0 16px 30px #213d5814; padding:26px 30px 0; animation:cn-open .16s ease-out; }
.cn-header .cn-navigation { font-family:'Noto Serif JP','Yu Mincho',YuMincho,serif; }
.cn-panel a { color:#344c60; text-decoration:none; font-family:'Noto Serif JP','Yu Mincho',YuMincho,serif; }
.cn-panel a:hover,.cn-panel a:focus-visible { color:#00266c; background:#eef3f7; }
.cn-feature { display:flex; justify-content:space-between; padding:0 0 20px; border-bottom:1px solid #cbd8e3; font-size:17px; font-weight:500; }
.cn-groups { display:grid; grid-template-columns:1fr 1fr 1.8fr; gap:32px; padding:24px 0; }
.cn-group h2 { font:500 16px/1.8 'Noto Serif JP','Yu Mincho',serif; color:#263e58; margin:0 0 13px; }
.cn-group a { display:block; padding:7px 0; font-size:14px; font-weight:400; }
.cn-group small { margin-left:5px; font-size:10px; color:#00266c; }
.cn-analysis { display:grid; grid-template-columns:1fr 1fr; column-gap:22px; align-content:start; }
.cn-analysis h2 { grid-column:1/-1; }
.cn-index { display:flex; justify-content:space-between; border-top:1px solid #d5e0e9; padding:16px 0; }
.cn-development-panel { width:390px; padding:14px 24px; }
.cn-development-panel a { display:flex; justify-content:space-between; gap:20px; padding:12px 0; border-bottom:1px solid #e3eaf0; font-size:15px; }
.cn-development-panel a:last-child { border:0; }
.cn-toggle { display:none; }
.cn-header :is(a,summary,button):focus-visible { outline:2px solid #235e91; outline-offset:4px; }
@keyframes cn-open { from { opacity:0; transform:translateY(-5px); } to { opacity:1; transform:translateY(0); } }
@media(max-width:1000px) {
  .cn-header { height:78px; padding:18px 24px; }
  .cn-toggle { display:flex; align-items:center; gap:16px; color:#263e58; background:none; border:0; font:400 12px/1.8 'Noto Sans JP',sans-serif; cursor:pointer; padding:10px 0; }
  .cn-toggle span { font-size:24px; }
  .cn-navigation { display:none; position:absolute; top:100%; left:0; right:0; background:#fff; border-block:1px solid #d5e0e9; padding:8px 24px 20px; max-height:calc(100dvh - 78px); overflow-y:auto; }
  .cn-header[data-menu-open] .cn-navigation { display:block; }
  .cn-navigation > a,.cn-dropdown > summary { display:flex; justify-content:space-between; padding:15px 0; border-bottom:1px solid #dce5ed; font-size:16px; }
  .cn-panel { position:static; width:100%; max-height:none; overflow:visible; box-shadow:none; border:0; padding:18px 0; animation:none; }
  .cn-groups { grid-template-columns:1fr 1fr; gap:22px; padding:20px 0; }
  .cn-analysis { grid-column:1/-1; }
  .cn-feature { font-size:15px; }
  .cn-group a { padding:10px 0; font-size:14px; }
}
.cs-footer nav { font-size:14px; }
.cs-footer-bottom a { font-size:12px; }
@media(max-width:480px) { .cn-groups,.cn-analysis { display:block; } .cn-group + .cn-group { margin-top:22px; } }
@media(prefers-reduced-motion:reduce) {
  .cn-panel { animation:none; }
  .cn-header { transition:none; }
}
