/* Figma第1期：体験列車・貸切・サポーターズ・404。文字はtypography.cssで管理。 */
.nl-page { background:#fff; color:var(--nk-ink); }
.nl-page *, .nl-page *::before, .nl-page *::after { box-sizing:border-box; }
.nl-page p,.nl-page h1,.nl-page h2,.nl-page h3 { margin:0; }
.nl-page img { display:block; max-width:100%; }
.nl-page a { text-decoration:none; }
.nl-page a:focus-visible,.nl-page summary:focus-visible { outline:3px solid var(--nk-red); outline-offset:5px; }
.nl-container { width:min(1320px,calc(100% - 120px)); margin-inline:auto; }
.nl-head { background:var(--nk-sand); padding:52px 60px 48px; text-align:center; }
.nl-breadcrumb { display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:8px; color:var(--nk-muted); }
.nl-breadcrumb a { color:inherit; }
.nl-breadcrumb a:hover { text-decoration:underline; }
.nl-breadcrumb img { width:10px; height:15px; }
.nl-breadcrumb [aria-current] { color:var(--nk-ink); }
.nl-eyebrow { color:var(--nk-red); }
.nl-head>.nl-eyebrow { margin:18px 0 6px; }
.nl-wave { display:flex; justify-content:center; align-items:center; gap:22px; }
.nl-wave::before,.nl-wave::after { content:""; width:84px; height:14px; flex-shrink:0; background:url('../images/frontpage/about-img-wave.svg') center/contain no-repeat; }
.nl-head>.nl-lead { margin-top:14px; }
.nl-lead { color:var(--nk-muted); }
.nl-section { padding-block:76px 80px; }
.nl-section-heading { text-align:center; margin-bottom:40px; }
.nl-section-heading h2 { margin-top:14px; }
.nl-section-heading .nl-lead { margin-top:18px; }
.nl-action { margin-top:36px; text-align:center; }
.nl-action .nt-button { border-color:var(--nk-border); gap:9px; }
.nl-train-list { padding-block:72px; }
.nl-train-row { display:grid; grid-template-columns:1fr 2fr; align-items:center; padding-block:36px; }
.nl-train-row:first-child { padding-top:0; }
.nl-train-row:last-child { padding-bottom:0; }
.nl-train-row+.nl-train-row { border-top:1px solid #dce2e7; }
.nl-train-photo { height:280px; background:#eeebe7; position:relative; border-radius:10px; overflow:hidden; }
.nl-train-photo>img { width:100%; height:100%; object-fit:cover; }
.nl-train-photo>span { position:absolute; left:14px; top:14px; padding:5px 12px; color:#fff; background:var(--nk-slate); border-radius:4px; }
.nl-train-copy { min-width:0; padding:14px 8px 0 44px; }
.nl-train-copy .nl-train-description { margin-top:14px; color:var(--nk-muted); }
.nl-train-foot { display:flex; gap:18px; justify-content:space-between; align-items:center; margin-top:18px; }
.nl-train-price small { display:block; margin-bottom:2px; color:#8a97a6; }
.nl-train-foot .nt-button { flex-shrink:0; gap:10px; padding:13px 24px 13px 28px; }
.nl-other { background:var(--nk-sand); padding-block:80px 88px; }
.nl-other>h2 { text-align:center; margin-bottom:28px; }
.nl-pending { opacity:.65; }
.nl-other-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; }
.nl-other-grid article { position:relative; display:flex; align-items:center; min-height:182px; padding-left:37%; background:#fff; border:1px solid #dce2e7; border-radius:14px; overflow:hidden; }
.nl-other-grid article>img { position:absolute; inset:0 auto 0 0; width:37%; height:100%; object-fit:cover; }
.nl-other-grid article>div { padding:20px 30px; min-width:0; }
.nl-other-grid .nt-button { gap:9px; min-height:0; padding:12px 20px 12px 24px; border:1.5px solid #dce2e7; color:var(--nk-ink); }
.nl-other-grid .nt-link-external .nt-arrow { width:15px; transform:none; content:url('../images/landing/arrow-external-red.svg'); }
.nl-other-grid p { margin:6px 0 18px; color:var(--nk-muted); }
.nl-cards { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:34px 24px; }
.nl-card a { display:block; color:inherit; height:100%; }
.nl-card a:hover h3 { text-decoration:underline; text-underline-offset:.2em; }
.nl-card-photo { height:250px; border-radius:10px; background:#eeebe7; overflow:hidden; position:relative; }
.nl-card-photo img { width:100%; height:100%; object-fit:cover; }
.nl-card-copy { padding-top:14px; }
.nl-card time { color:#8a97a6; }
.nl-card h3 { margin-top:5px; }
.nl-card p { margin-top:8px; color:var(--nk-muted); }
.nl-supporters-hero { height:520px; overflow:hidden; }
.nl-supporters-hero img { width:100%; height:207.69%; max-width:none; object-fit:cover; transform:translateY(-36.89%); }
.nl-supporters-lead { padding:76px 60px 72px; text-align:center; }
.nl-supporters-lead p { max-width:840px; margin:24px auto 0; color:var(--nk-muted); }
.nl-reports { background:var(--nk-sand); }
.nl-message-inner { display:grid; grid-template-columns:420px minmax(0,1fr); gap:52px; align-items:center; }
.nl-message-photo { position:relative; height:480px; border-radius:14px; overflow:hidden; }
.nl-message-photo img,.nl-charter-interior img { width:100%; height:100%; object-fit:cover; border-radius:inherit; }
.nl-message-photo img.nl-message-photo--figma { position:absolute; width:130.26%; max-width:none; height:85.48%; left:-12.37%; top:7.24%; border-radius:0; }
.nl-signature img { width:200px; height:64px; object-fit:contain; }
.nl-message-photo span { position:absolute; bottom:20px; left:20px; color:#6b7c8c; }
.nl-message-copy h2 { margin-top:12px; }
.nl-message-copy h2 img { width:420px; height:140px; object-fit:contain; }
.nl-message-body { margin-top:24px; }
.nl-message-body p+p { margin-top:0; }
.nl-message-copy .nl-signature { display:flex; flex-wrap:wrap; align-items:center; gap:16px; margin-top:30px; color:var(--nk-muted); }
.nl-signature-placeholder { display:inline-flex; align-items:center; justify-content:center; min-width:200px; min-height:64px; border:1px dashed #c3cdd6; color:var(--nk-ink); }
.nl-message-copy .nl-message-note { margin-top:10px; color:#8a97a6; }
.nl-membership { background:var(--nk-slate); color:#fff; text-align:center; }
.nl-membership .nl-free { display:inline-block; margin-top:20px; padding:8px 20px; border:1.5px solid #f2a9b0; color:#f2a9b0; border-radius:999px; }
.nl-membership .nl-membership-lead { margin-top:14px; color:#c6d2de; }
.nl-perks { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; margin-top:40px; }
.nl-perks article { padding:28px 28px 30px; background:#fff; text-align:left; border-radius:12px; }
.nl-perks article::before { content:""; display:block; height:6px; background:#2e7bb8; }
.nl-perks article:nth-child(2)::before { background:#d9526e; }
.nl-perks article:nth-child(3)::before { background:#e8a317; }
.nl-perks h3 { color:var(--nk-ink); }
.nl-perks p { margin-top:8px; color:var(--nk-muted); }
.nl-membership .nl-membership-pending { margin:20px 0 36px; color:#8fa3b5; }
.nl-membership .nt-button { margin-top:36px; min-width:320px; min-height:68px; padding:18px 32px; background:#06c047; }
.nl-membership .nl-membership-note { margin-top:12px; color:#8fa3b5; }
.nl-charter-hero { height:480px; position:relative; overflow:hidden; background:#c1cbd3; }
.nl-charter-hero-photo { width:100%; height:100%; object-fit:cover; object-position:center 38.13%; filter:brightness(.7); }
.nl-charter-lettering { position:absolute; top:110px; left:max(60px,calc((100% - 1320px)/2)); width:725px; height:242px; object-fit:contain; filter:brightness(0) invert(1); }
.nl-charter-lead { background:var(--nk-sand); padding:58px 60px 64px; text-align:center; }
.nl-charter-lead h2 { color:var(--nk-muted); }
.nl-chips { display:flex; justify-content:center; flex-wrap:wrap; gap:12px; margin:26px 0 14px; padding:0; list-style:none; }
.nl-chips li { background:#fff; border:1.5px solid currentColor; padding:9px 20px; border-radius:999px; color:#2e7bb8; }
.nl-chips li:nth-child(2) { color:#d9526e; }
.nl-chips li:nth-child(3) { color:var(--nk-green); }
.nl-chips li:nth-child(4) { color:#e8a317; }
.nl-charter-minimum { color:#8a97a6; }
.nl-charter-lead .nt-button { margin-top:30px; padding:17px 34px 17px 38px; gap:10px; }
.nl-charter-interior { height:520px; background:#b7c3cc; }
.nl-photo-placeholder { position:relative; }
.nl-photo-placeholder span { position:absolute; bottom:24px; left:60px; color:#5a6975; }
.nl-charter-copy { padding-block:64px 68px; }
.nl-charter-copy .nl-section-heading { margin-bottom:32px; }
.nl-facts { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
.nl-facts article { background:var(--nk-sand); padding:26px 28px 28px; border-radius:14px; }
.nl-facts p { color:var(--nk-muted); margin-top:8px; }
.nl-headmark-photo { height:560px; position:relative; overflow:hidden; }
.nl-headmark-photo img { width:100%; height:172.38%; max-width:none; object-fit:cover; transform:translateY(-17.41%); }
.nl-cases { background:var(--nk-sand); padding-block:90px 96px; }
.nl-case-cards .nl-card { border-radius:16px; overflow:hidden; background:#fff; }
.nl-case-cards .nl-card-photo { border-radius:0; background:#c9d4de; }
.nl-case-cards .nl-card-copy { padding:22px 26px 26px; }
.nl-case-label { position:absolute; top:16px; left:16px; background:#2e7bb8; color:#fff; padding:6px 14px; border-radius:999px; }
.nl-card:nth-child(2) .nl-case-label { background:var(--nk-green); }
.nl-card:nth-child(3) .nl-case-label { background:#d9526e; }
.nl-ideas { padding-block:90px 96px; }
.nl-ideas ul { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px; margin:0; padding:0; list-style:none; }
.nl-ideas li { border:1px solid #dce2e7; border-radius:10px; padding:20px 10px; text-align:center; }
.nl-charter-read { padding-bottom:96px; }
.nl-charter-read>.nl-container { display:grid; grid-template-columns:460px minmax(0,1fr); background:var(--nk-sand); border-radius:20px; overflow:hidden; align-items:stretch; }
.nl-charter-read>.nl-container>div:last-child { display:flex; flex-direction:column; align-items:flex-start; justify-content:center; gap:12px; padding:44px; }
.nl-read-photo { position:relative; background:#c9d4de; min-height:319px; overflow:hidden; }
.nl-read-photo img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.nl-charter-read h2+p { color:var(--nk-muted); }
.nl-charter-read .nt-button { min-height:55px; padding:12.4px 22.5px 12.4px 26.5px; gap:10px; border:1.5px solid #dce2e7; background:#fff; color:var(--nk-ink); }
.nl-charter-read .nt-button:hover { background:#edf1f6; }
.nl-charter-read .nt-arrow { width:10px; content:url('../images/news/breadcrumb-arrow.svg'); }
.nl-terms { background:var(--nk-slate); color:#fff; padding-block:90px 96px; }
.nl-terms .nl-eyebrow { color:#f2a9b0; }
.nl-terms .nl-lead { color:#c6d2de; }
.nl-terms dl { margin:0 auto; max-width:1000px; border-radius:16px; background:#fff; overflow:hidden; }
.nl-terms dl>div { display:grid; grid-template-columns:240px minmax(0,1fr); align-items:center; padding:22px 36px; color:var(--nk-ink); }
.nl-terms dl>div:nth-child(even) { background:#f7f9fb; }
.nl-terms dd { margin:0; color:var(--nk-muted); }
.nl-terms .nl-wave::before,.nl-terms .nl-wave::after { background-image:url('../images/landing/wave-pink.svg'); }
.nl-options { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; align-items:start; }
.nl-options details { border:1px solid #f7f9fb; border-radius:16px; overflow:hidden; }
.nl-options details::before { content:""; display:block; height:7px; background:#2e7bb8; }
.nl-options details:nth-child(2)::before { background:var(--nk-green); }
.nl-options details:nth-child(3)::before { background:#d9526e; }
.nl-options summary { cursor:pointer; padding:28px; list-style:none; }
.nl-options summary::-webkit-details-marker { display:none; }
.nl-options summary>span { display:block; }
.nl-options .nl-option-description { margin-top:12px; color:var(--nk-muted); }
.nl-options .nl-option-more { margin-top:14px; display:flex; align-items:center; gap:8px; color:#2e7bb8; }
.nl-plus { transition:transform .2s; }
.nl-options details[open] .nl-plus { transform:rotate(45deg); }
.nl-options details.is-closing .nl-plus { transform:rotate(0); }
.nl-options details>p { border-top:1px solid #dce2e7; padding:20px 28px; color:var(--nk-muted); }
@media (prefers-reduced-motion:reduce) {
 .nl-options .nl-plus { transition:none; }
}
.nl-charter-cta { background:var(--nk-sand); text-align:center; padding-inline:60px; }
.nl-charter-cta p { margin:14px 0 30px; color:var(--nk-muted); }
.nl-charter-cta .nt-button { padding:17px 34px 17px 38px; gap:10px; }
.nl-phone { display:block; width:fit-content; margin:20px auto 0; color:var(--nk-muted); }
a.nl-phone:hover { text-decoration:underline; }
.nl-authored { padding-block:40px; }
.nl-not-found { background:var(--nk-sand); text-align:center; padding:120px 60px 130px; }
.nl-error-number { color:#e0d3be; }
.nl-not-found h1 { margin-top:16px; text-wrap:balance; }
.nl-not-found .nl-error-lead { margin-top:20px; color:var(--nk-muted); }
.nl-error-links { display:flex; justify-content:center; flex-wrap:wrap; gap:16px; margin-top:44px; }
.nl-error-links .nt-button--outline { border:1.5px solid var(--nk-slate); color:var(--nk-slate); }
.nl-not-found .nl-error-note { margin-top:30px; color:#8a97a6; }
.nl-report-archive .nl-head { padding-block:48px 44px; }
.nl-report-archive .nl-wave::before,.nl-report-archive .nl-wave::after { display:none; }
@media (max-width:1100px) {
 .nl-container { width:calc(100% - 60px); }
 .nl-head { padding-inline:30px; }
 .nl-train-copy { padding-left:28px; }
 .nl-other-grid { grid-template-columns:1fr; }
 .nl-other-grid article>img { width:35%; }
 .nl-train-foot { flex-wrap:wrap; }
 .nl-message-inner { grid-template-columns:minmax(0,1fr) minmax(0,1.5fr); gap:32px; }
 .nl-charter-read>.nl-container { grid-template-columns:minmax(0,1fr) minmax(0,1.5fr); }
}
@media (max-width:800px) {
 .nl-train-row { grid-template-columns:1fr; gap:18px; }
 .nl-train-photo { height:300px; }
 .nl-train-copy { padding:0; }
 .nl-cards { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .nl-message-inner { grid-template-columns:1fr; }
 .nl-message-photo { width:100%; max-width:420px; height:360px; }
 .nl-facts,.nl-options { grid-template-columns:1fr; }
 .nl-charter-read>.nl-container { grid-template-columns:1fr; }
 .nl-charter-lettering { width:min(725px,calc(100% - 40px)); left:20px; }
}
@media (max-width:600px) {
 .nl-container { width:calc(100% - 40px); }
 .nl-head { padding:26px 20px 30px; }
 .nl-breadcrumb { gap:7px; }
 .nl-breadcrumb img { width:8px; height:12px; }
 .nl-head>.nl-eyebrow { margin-top:16px; }
 .nl-wave { gap:12px; }
 .nl-wave::before,.nl-wave::after { width:24px; height:7px; }
 .nl-head>.nl-lead { margin-top:12px; }
 .nl-section { padding-block:48px 52px; }
 .nl-section-heading { margin-bottom:26px; }
 .nl-section-heading h2 { margin-top:8px; }
 .nl-section-heading .nl-lead { margin-top:12px; }
 .nl-action { margin-top:26px; }
 .nl-action .nt-button { width:100%; padding-inline:16px; }
 .nl-train-list { padding-block:40px 44px; }
 .nl-train-row { padding-block:26px; gap:26px; }
 .nl-train-photo { height:200px; }
 .nl-train-photo>span { top:12px; left:12px; padding:5px 11px; }
 .nl-train-copy .nl-train-description { margin-top:10px; }
 .nl-train-foot { display:block; margin-top:14px; }
 .nl-train-foot .nt-button { width:100%; margin-top:16px; }
 .nl-other { padding-block:48px 52px; }
 .nl-other-grid { grid-template-columns:1fr; gap:24px; }
 .nl-other-grid article { display:block; padding-left:0; }
 .nl-other-grid article>img { position:static; width:100%; height:200px; }
 .nl-other-grid article>div { padding:22px; }
 .nl-other-grid .nt-button { width:100%; padding-inline:12px; }
 .nl-cards { grid-template-columns:1fr; gap:28px; }
 .nl-card-photo { height:200px; }
 .nl-card-copy { padding-top:12px; }
 .nl-report-cards .nl-card:nth-child(n+5) { display:none; }
 .nl-supporters-hero { height:250px; }
 .nl-supporters-hero img { height:100%; transform:none; object-fit:cover; }
 .nl-supporters-lead { padding:48px 20px 44px; text-align:left; }
 .nl-supporters-lead p { margin-top:18px; }
 .nl-supporters-lead br { display:none; }
 .nl-desktop { display:none; }
 .nl-message-photo { height:280px; max-width:none; }
 .nl-message-photo img.nl-message-photo--figma { position:static; width:100%; height:100%; border-radius:inherit; }
 .nl-message-copy h2 img { width:100%; height:auto; aspect-ratio:3/1; }
 .nl-message-body { margin-top:18px; }
 .nl-message-copy .nl-signature { gap:10px; margin-top:24px; }
 .nl-signature-placeholder { min-width:190px; min-height:58px; }
 .nl-perks { grid-template-columns:1fr; gap:12px; margin-top:26px; }
 .nl-perks article { padding:18px 20px 20px; border-radius:10px; }
 .nl-perks article::before { margin-bottom:5px; }
 .nl-perks p { margin-top:5px; }
 .nl-membership .nl-membership-pending { margin:16px 0 26px; }
 .nl-membership .nt-button { margin-top:26px; width:100%; min-width:0; min-height:58px; padding:15px 12px; }
 .nl-charter-hero { height:300px; }
 .nl-charter-lettering { top:76px; width:calc(100% - 40px); height:140px; object-fit:contain; object-position:left; }
 .nl-charter-lead { padding:36px 20px 44px; }
 .nl-chips { gap:8px; margin-top:20px; }
 .nl-chips li { padding:7px 12px; }
 .nl-charter-lead .nt-button { margin-top:24px; padding:15px 12px; width:100%; }
 .nl-charter-interior { height:250px; }
 .nl-photo-placeholder span { left:20px; bottom:16px; }
 .nl-charter-copy { padding-block:44px 48px; }
 .nl-charter-copy .nl-section-heading { margin-bottom:26px; }
 .nl-facts { gap:12px; }
 .nl-facts article { padding:20px; border-radius:12px; }
 .nl-headmark-photo { height:300px; }
 .nl-headmark-photo img { height:100%; transform:none; }
 .nl-cases { background:#fff; padding-block:52px 56px; }
 .nl-case-cards .nl-card { border:1px solid #dce2e7; }
 .nl-case-cards .nl-card-photo { height:190px; }
 .nl-case-cards .nl-card-copy { padding:18px 20px 20px; }
 .nl-ideas { background:var(--nk-sand); padding-block:52px 56px; }
 .nl-ideas ul { grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
 .nl-ideas li { background:#fff; padding:15px 8px; }
 .nl-charter-read { background:var(--nk-sand); padding-bottom:56px; }
 .nl-charter-read>.nl-container { padding:0; gap:20px; border-radius:12px; background:#fff; overflow:hidden; }
 .nl-charter-read>.nl-container>div:last-child { padding:0 20px 24px; }
 .nl-charter-read .nt-button { width:100%; min-height:52px; padding:11.375px 12px; }
 .nl-charter-read .nt-arrow { display:none; }
 .nl-read-photo { height:200px; min-height:0; }
 .nl-terms { padding-block:52px 56px; }
 .nl-terms dl>div { display:block; padding:18px 20px; }
 .nl-terms dd { margin-top:8px; }
 .nl-options { gap:14px; }
 .nl-options summary { padding:22px; }
 .nl-options details>p { padding:18px 22px; }
 .nl-charter-cta { padding:52px 20px 56px; }
 .nl-charter-cta .nt-button { width:100%; padding:15px 12px; }
 .nl-not-found { padding:72px 20px 80px; }
 .nl-not-found h1 { margin-top:12px; }
 .nl-not-found .nl-error-lead { margin-top:14px; }
 .nl-error-links { flex-direction:column; gap:10px; margin-top:32px; }
 .nl-error-links .nt-button { padding:15px 12px; }
 .nl-not-found .nl-error-note { margin-top:26px; }
 .nl-report-archive .nl-head { padding-block:24px 28px; }
}
