/* =========================================================
   81/82 TOP NEWS — 横スクロール・カルーセル（.nr）
   viewport幅いっぱいのレール／右端で次のカードを見切れさせる
   ========================================================= */
.nr{--padL:max(40px, calc((100vw - var(--wrap)) / 2 + 40px));--gap:36px;--cw:clamp(260px, calc((100vw - var(--padL)) / 3.3 - var(--gap)), 420px);
  position:relative;background:#fff;padding:190px 0 180px;overflow:hidden;isolation:isolate}
.nr-glow{position:absolute;inset:0;z-index:-1;pointer-events:none;
  background:
    radial-gradient(60% 50% at 82% 38%, rgba(190,210,235,.28), transparent 70%),
    radial-gradient(40% 40% at 8% 90%, rgba(214,226,242,.35), transparent 70%)}
.nr-glow::after{content:"";position:absolute;left:-10%;right:-10%;top:46%;height:420px;border-radius:50%;
  border-top:1px solid rgba(62,95,138,.08);transform:rotate(-6deg)}

.nr-head{display:flex;justify-content:space-between;align-items:flex-end;gap:40px;padding-bottom:96px}
.nr-title{display:flex;align-items:baseline;gap:22px;color:var(--navy);font-weight:400}
.nr-title .en{font-family:var(--serif);font-size:clamp(44px,4.6vw,64px);line-height:1;letter-spacing:-.005em}
.nr-title .jp{font-size:12px;letter-spacing:.24em;color:var(--bluegray)}

.nr-ctrl{display:flex;align-items:center;gap:12px}
.nr-count{display:flex;align-items:center;gap:12px;font-family:var(--latin);font-size:12px;letter-spacing:.18em;color:var(--bluegray);margin-right:18px}
.nr-count span:first-child{color:var(--navy)}
.nr-count i{width:28px;height:1px;background:var(--bluegray-2)}
.nr-arrow{width:52px;height:52px;border-radius:50%;border:1px solid var(--line);display:grid;place-items:center;font-size:15px;color:var(--navy);background:#fff;transition:background .35s,color .35s,border-color .35s,opacity .35s}
.nr-arrow:hover:not(:disabled){background:var(--navy);border-color:var(--navy);color:#fff}
.nr-arrow:disabled{opacity:.32;cursor:default}
.nr-arrow:focus-visible{outline:2px solid var(--accent);outline-offset:3px}

/* rail */
.nr-track{list-style:none;display:flex;gap:var(--gap);overflow-x:auto;overflow-y:hidden;
  padding:14px var(--padL) 18px;scroll-padding-inline:var(--padL);scroll-snap-type:x mandatory;
  scrollbar-width:none;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;cursor:grab;outline:none}
.nr-track::-webkit-scrollbar{display:none}
.nr-track.is-drag{scroll-snap-type:none;cursor:grabbing;user-select:none}
.nr-track.is-drag .nr-card{pointer-events:none}
.nr-track:focus-visible{box-shadow:inset 0 0 0 2px rgba(62,95,138,.25)}
.nr-item{flex:0 0 var(--cw);scroll-snap-align:start}

.nr-card{display:block;color:var(--navy);-webkit-user-drag:none}
.nr-thumb{display:block;background:#fff;padding:9px;border-radius:12px;
  box-shadow:0 1px 2px rgba(10,22,64,.04),0 10px 28px -12px rgba(10,22,64,.16);transition:box-shadow .6s var(--ease)}
.nr-img{display:block;aspect-ratio:16/10;border-radius:7px;overflow:hidden;background:var(--pale)}
.nr-img img{width:100%;height:100%;object-fit:cover;transition:transform 1s var(--ease);pointer-events:none}
.nr-img img.fit-contain{object-fit:contain;padding:8%}
.nr-meta{display:flex;align-items:center;gap:18px;margin-top:30px}
.nr-date{display:block;font-family:var(--latin);font-size:12px;letter-spacing:.16em;color:var(--bluegray)}
.nr-cat{display:inline-flex;align-items:center;gap:8px;font-family:var(--latin);font-size:10.5px;letter-spacing:.24em;color:var(--accent)}
.nr-cat::before{content:"";width:5px;height:5px;border-radius:50%;background:currentColor}
.nr-ttl{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;margin-top:14px;
  font-size:15px;line-height:1.85;letter-spacing:.04em;font-weight:500;color:var(--navy);text-wrap:pretty;transition:color .4s}
.nr-sub{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;margin-top:8px;font-size:12px;line-height:1.8;letter-spacing:.04em;color:var(--bluegray)}
.nr-card:hover .nr-thumb{box-shadow:0 1px 2px rgba(10,22,64,.05),0 18px 40px -14px rgba(10,22,64,.24)}
.nr-card:hover .nr-img img{transform:scale(1.03)}
.nr-card:hover .nr-ttl{color:var(--accent)}
.nr-card:focus-visible{outline:2px solid var(--accent);outline-offset:6px;border-radius:12px}

/* typographic covers (画像のない REPORT / PRESS 記事) */
.nr-cover{position:relative;display:flex;flex-direction:column;justify-content:space-between;width:100%;height:100%;padding:8% 9%;transition:transform 1s var(--ease)}
.nr-card:hover .nr-cover{transform:scale(1.03)}
.nr-cover .lb{font-family:var(--latin);font-size:10px;letter-spacing:.3em}
.nr-cover .tt{font-size:clamp(17px,1.5vw,22px);line-height:1.5;letter-spacing:.06em;font-weight:500}
.nr-cover .mk{position:absolute;right:9%;bottom:8%;font-family:var(--serif);font-size:15px}
.nr-cover.t-report{background:linear-gradient(160deg,#13224F,#0A1640 60%);color:#fff}
.nr-cover.t-report .lb{color:rgba(255,255,255,.6)}
.nr-cover.t-report .tt{border-top:1px solid rgba(255,255,255,.25);padding-top:16px;margin-bottom:auto;margin-top:22px}
.nr-cover.t-report .mk{color:rgba(255,255,255,.75)}
.nr-cover.t-press{background:#EEF2F8;color:var(--navy);justify-content:center;align-items:flex-start}
.nr-cover.t-press .lb{position:absolute;left:9%;top:8%;color:var(--bluegray)}
.nr-cover.t-press .tt{font-family:var(--serif);font-size:clamp(24px,2.4vw,36px);font-weight:400;letter-spacing:.02em}
.nr-cover.t-press .mk{color:var(--bluegray-2)}

/* last slot → news.html */
.nr-end{flex-basis:calc(var(--cw) * .62)}
.nr-endlink{display:flex;flex-direction:column;justify-content:center;gap:10px;height:calc((var(--cw) - 18px) * 10 / 16 + 18px);
  padding:0 12%;border:1px solid var(--line);border-radius:12px;color:var(--navy);transition:background .45s,border-color .45s,color .45s}
.nr-endlink .en{font-family:var(--latin);font-size:13px;letter-spacing:.26em}
.nr-endlink .jp{font-size:12px;color:var(--bluegray);letter-spacing:.08em;transition:color .45s}
.nr-endlink .ar{margin-top:14px;transition:transform .5s var(--ease)}
.nr-endlink:hover{background:var(--navy);border-color:var(--navy);color:#fff}
.nr-endlink:hover .jp{color:rgba(255,255,255,.65)}
.nr-endlink:hover .ar{transform:translateX(8px)}

/* foot: VIEW MORE (left) + progress */
.nr-foot{display:flex;align-items:center;gap:56px;margin-top:64px}
.nr-more{display:inline-flex;align-items:center;justify-content:space-between;gap:48px;min-width:236px;height:64px;padding:0 10px 0 32px;
  border-radius:999px;background:var(--navy);border:1px solid var(--navy);color:#fff;transition:background .45s var(--ease),color .45s var(--ease)}
.nr-more .tx{font-family:var(--latin);font-size:14px;letter-spacing:.1em}
.nr-more .dot{position:relative;width:44px;height:44px;border-radius:50%;background:#fff;color:var(--navy);overflow:hidden;
  transition:transform .55s var(--ease),background .45s,color .45s}
.nr-more .dot i{position:absolute;inset:0;display:grid;place-items:center;font-style:normal;font-size:15px;transition:transform .55s var(--ease)}
.nr-more .dot i:last-child{transform:translate(-120%,120%)}
.nr-more:hover{background:#fff;color:var(--navy)}
.nr-more:hover .dot{transform:translateX(6px);background:var(--navy);color:#fff}
.nr-more:hover .dot i:first-child{transform:translate(120%,-120%)}
.nr-more:hover .dot i:last-child{transform:none}
.nr-more:focus-visible{outline:2px solid var(--accent);outline-offset:4px}
.nr-prog{flex:1;max-width:420px;height:1px;background:var(--line);overflow:hidden;margin-left:auto}
.nr-prog i{display:block;height:100%;width:30%;background:var(--navy);transition:transform .25s linear}

/* stagger entrance */
.js .nr-track[data-stagger] .nr-item{opacity:0;transform:translateX(40px);transition:opacity 1s var(--ease),transform 1.1s var(--ease);transition-delay:calc(min(var(--i), 5) * .09s)}
.js .nr-track[data-stagger].show .nr-item{opacity:1;transform:none}

@media (max-width:960px){
  .nr{--padL:24px;--gap:24px;--cw:calc((100vw - var(--padL)) / 1.3 - var(--gap));padding:120px 0 110px}
  .nr-head{padding-bottom:56px}
  .nr-count{margin-right:6px}
}
@media (max-width:640px){
  .nr{--gap:16px;--cw:calc((100vw - var(--padL)) / 1.15 - var(--gap))}
  .nr-ctrl .nr-arrow{display:none}
  .nr-count{margin-right:0}
  .nr-title .jp{display:none}
  .nr-meta{margin-top:22px}
  .nr-ttl{font-size:14.5px}
  .nr-foot{flex-direction:column;align-items:flex-start;gap:36px;margin-top:44px}
  .nr-prog{order:-1;width:100%;max-width:none;margin-left:0}
  .nr-track{cursor:auto}
}
@media (prefers-reduced-motion:reduce){
  .js .nr-track[data-stagger] .nr-item{opacity:1;transform:none;transition:none}
}
