:root{--sp-color:#1d4ed8;--sp-bg:#eff6ff;--sp-border:#bfdbfe;--ex-color:#16803c;--ex-bg:#f0fdf4;--ex-border:#bbf7d0;--rp-color:#b45309;--rp-bg:#fffbeb;--rp-border:#fde68a;--or-color:#7c3aed;--or-bg:#f5f3ff;--or-border:#ddd6fe}.article-lead{font-family:var(--serif);font-size:clamp(17px,2vw,20px);color:var(--ink-soft);max-width:72ch;margin:0 auto;font-variation-settings:'opsz' 24}.section-divider{border:0;border-top:1px solid var(--rule-soft);margin:48px 0}.prose p{margin-bottom:18px;color:var(--ink-soft);font-size:17px;line-height:1.75}.prose p:last-child{margin-bottom:0}.prose strong{color:var(--ink);font-weight:500}.prose a{color:var(--maroon);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px;text-decoration-color:var(--rule);transition:text-decoration-color .15s}.prose a:hover{text-decoration-color:var(--maroon)}.tip-block{background:var(--tip-bg);border-left:3px solid var(--maroon);padding:16px 22px;margin:28px 0;display:flex;gap:14px;align-items:flex-start}.tip-icon{flex-shrink:0;font-family:var(--serif);font-size:22px;font-style:italic;color:var(--maroon);line-height:1}.tip-text{font-size:14.5px;color:var(--maroon-deep);line-height:1.6}.tip-text strong{color:var(--ink);font-weight:500}.tip-text a{color:var(--maroon);text-decoration:underline;text-underline-offset:2px}.warning-block{background:var(--warn-bg);border-left:3px solid var(--warn-border);padding:16px 22px;margin:28px 0;display:flex;gap:14px;align-items:flex-start}.warning-icon{flex-shrink:0;font-family:var(--serif);font-size:22px;font-style:italic;font-weight:400;color:var(--warn-text);line-height:1}.warning-text{font-size:14.5px;color:var(--warn-text);line-height:1.6}.warning-text strong{color:#5C4208;font-weight:500}.verified-block{background:var(--verified-bg);border:1px solid var(--verified-border);padding:16px 22px;margin:28px 0;display:flex;gap:14px;align-items:flex-start}.verified-icon{width:22px;height:22px;flex-shrink:0;margin-top:1px}.verified-label{font-family:var(--mono);font-size:11px;font-weight:500;text-transform:uppercase;letter-spacing:.12em;color:var(--verified-text);margin-bottom:4px}.verified-text{font-size:14.5px;color:var(--verified-text);line-height:1.55}.verified-text a{color:var(--maroon);text-decoration:underline;text-underline-offset:2px}.faq-list{border-top:1px solid var(--ink);margin-bottom:48px}.faq-item{border-bottom:1px solid var(--rule-soft)}.faq-q{width:100%;text-align:left;background:none;border:none;padding:18px 40px 18px 0;font-family:var(--serif);font-size:18px;font-weight:400;color:var(--ink);cursor:pointer;position:relative;font-variation-settings:'opsz' 24;line-height:1.3}.faq-q::after{content:'+';position:absolute;right:4px;top:50%;transform:translateY(-50%);font-family:var(--mono);font-size:18px;color:var(--maroon)}.faq-q[aria-expanded="true"]::after{content:'−'}.faq-q:hover{color:var(--maroon)}.faq-a{padding:0 0 18px;font-size:15.5px;color:var(--ink-soft);line-height:1.7}.faq-a a{color:var(--maroon);text-decoration:underline;text-underline-offset:2px}.faq-a strong{color:var(--ink);font-weight:500}.sources{margin-top:48px;padding-top:20px;border-top:1px solid var(--ink);font-family:var(--mono);font-size:11px;letter-spacing:.05em;color:var(--ink-mute);line-height:1.7}.sources strong{display:block;text-transform:uppercase;letter-spacing:.12em;color:var(--ink);margin-bottom:8px;font-weight:500}.sources a{color:var(--maroon);text-decoration:underline;text-underline-offset:2px}.opinion-block{margin:36px 0;padding:28px 0;border-top:1px solid var(--ink);border-bottom:1px solid var(--ink);display:grid;grid-template-columns:56px 1fr;gap:22px;align-items:start}.opinion-avatar{width:56px;height:56px;border-radius:50%;object-fit:cover}.opinion-label{font-family:var(--mono);font-size:10.5px;font-weight:500;text-transform:uppercase;letter-spacing:.18em;color:var(--maroon);margin-bottom:8px}.opinion-text{font-family:var(--serif);font-size:17px;color:var(--ink);line-height:1.4;font-style:italic}.opinion-byline{font-family:var(--mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-mute);margin-top:12px}@media(max-width:540px){.opinion-block{grid-template-columns:1fr;gap:16px}.opinion-avatar{width:48px;height:48px}}.schedule-table-wrap{margin:24px 0;overflow-x:auto}.schedule-table{width:100%;border-collapse:collapse;font-family:var(--mono);font-size:14px;border-top:1px solid var(--ink);border-bottom:1px solid var(--ink);white-space:nowrap}.schedule-table thead{border-bottom:1px solid var(--ink)}.schedule-table thead th{padding:12px 12px 12px 0;text-align:left;font-size:10.5px;font-weight:500;text-transform:uppercase;letter-spacing:.12em;color:var(--ink-mute)}.schedule-table tbody tr{border-bottom:1px solid var(--rule);transition:background .1s}.schedule-table tbody tr:last-child{border-bottom:none}.schedule-table tbody tr:hover{background:#fff}.schedule-table tbody td{padding:16px 12px 16px 0;color:var(--ink);vertical-align:middle}.td-train{font-family:var(--serif);font-size:18px;color:var(--ink);font-variation-settings:'opsz' 24}.td-train a{color:var(--maroon);text-decoration:none}.td-train a:hover{text-decoration:underline}.td-badge{display:inline-block;font-family:var(--mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;font-weight:500;color:var(--ink-soft);border:1px solid var(--rule);padding:3px 8px;background:var(--cream);white-space:nowrap}.td-badge.cnr{color:var(--maroon);border-color:var(--maroon);background:#f0f5ff}.train-time{font-family:var(--mono);font-size:14px;font-weight:500;color:var(--ink)}.train-time sup{font-size:9px;color:var(--ink-mute)}.table-note{font-family:var(--mono);font-size:11px;letter-spacing:.04em;color:var(--ink-mute);padding:12px 0 0;line-height:1.6}.table-note strong{color:var(--ink);font-weight:500}.schedule-cards{display:none}.schedule-card{border-top:1px solid var(--rule);padding:18px 0}.schedule-card:last-child{border-bottom:1px solid var(--rule)}.sc-head{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:12px;gap:12px}.sc-service{font-family:var(--mono);font-size:10.5px;font-weight:500;color:var(--ink-mute);text-transform:uppercase;letter-spacing:.12em}.sc-row{display:flex;gap:12px;font-family:var(--mono);font-size:13.5px;margin-bottom:6px;align-items:baseline}.sc-label{color:var(--ink-mute);font-size:11px;letter-spacing:.1em;text-transform:uppercase;min-width:84px;flex-shrink:0}.sc-val{color:var(--ink)}@media(max-width:768px){.schedule-table,.schedule-table+.table-note{display:none}.schedule-cards{display:block}}.classes-hub{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--rule-soft);border:1px solid var(--rule-soft);margin:24px 0}.class-card{background:var(--paper);padding:20px 22px;text-decoration:none;color:inherit;transition:background .12s;display:flex;flex-direction:column}.class-card:hover{background:#f0f5fa}.cc-eyebrow{font-family:var(--mono);font-size:9.5px;text-transform:uppercase;letter-spacing:.14em;color:var(--maroon);font-weight:500;margin-bottom:10px}.cc-name{font-family:var(--serif);font-size:19px;font-weight:400;color:var(--ink);line-height:1.2;font-variation-settings:'opsz' 24;margin-bottom:8px}.class-card:hover .cc-name{color:var(--maroon)}.cc-desc{font-size:13.5px;color:var(--ink-soft);line-height:1.55;margin-bottom:14px}.cc-foot{font-family:var(--mono);font-size:10px;color:var(--maroon);text-transform:uppercase;letter-spacing:.1em;margin-top:auto;border-top:1px solid var(--rule-soft);padding-top:10px}@media(max-width:560px){.classes-hub{grid-template-columns:1fr}}.vs-grid{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--rule-soft);border:1px solid var(--rule-soft);margin:24px 0}.vs-col{background:var(--paper);padding:24px}.vs-title{font-family:var(--mono);font-size:11px;font-weight:500;text-transform:uppercase;letter-spacing:.14em;margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid var(--rule-soft)}.vs-train .vs-title{color:var(--maroon)}.vs-avion .vs-title{color:var(--ink-mute)}.vs-item{display:flex;align-items:flex-start;gap:10px;margin-bottom:10px;font-size:14.5px;color:var(--ink-soft);line-height:1.5}.vs-item:last-child{margin-bottom:0}.vs-icon{flex-shrink:0;font-size:14px;margin-top:2px}.vs-item.pro .vs-icon{color:#16803c}.vs-item.con .vs-icon{color:#dc2626}@media(max-width:560px){.vs-grid{grid-template-columns:1fr}}.packing-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--rule-soft);border:1px solid var(--rule-soft);margin:24px 0}.packing-item{background:var(--paper);padding:16px 18px}.packing-text{font-size:14px;color:var(--ink-soft);line-height:1.5}.packing-text strong{display:block;color:var(--ink);font-size:14.5px;margin-bottom:2px;font-weight:500}@media(max-width:760px){.packing-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:480px){.packing-grid{grid-template-columns:1fr}}.errors-list{border-top:1px solid var(--ink);margin-bottom:8px}.error-row{border-bottom:1px solid var(--rule-soft);padding:20px 0;display:grid;grid-template-columns:auto 1fr;gap:16px;align-items:start}.error-num{font-family:var(--serif);font-style:italic;font-size:28px;color:var(--maroon);font-variation-settings:'WONK' 1;line-height:1;flex-shrink:0;width:36px;text-align:center}.error-title{font-family:var(--serif);font-size:18px;font-weight:400;color:var(--ink);line-height:1.2;font-variation-settings:'opsz' 24;margin-bottom:6px}.error-desc{font-size:14.5px;color:var(--ink-soft);line-height:1.6}.error-desc a{color:var(--maroon);text-decoration:underline;text-underline-offset:2px}.error-desc strong{color:var(--ink);font-weight:500}.overview-table-wrap{overflow-x:auto;margin:28px 0}.overview-table{width:100%;border-collapse:collapse;font-size:14px;border-top:1px solid var(--ink);border-bottom:1px solid var(--ink)}.overview-table thead{border-bottom:1px solid var(--ink)}.overview-table th{font-family:var(--mono);font-size:10px;font-weight:500;text-transform:uppercase;letter-spacing:.12em;color:var(--ink-mute);padding:12px 14px 12px 0;text-align:left}.overview-table th:first-child{padding-left:0}.overview-table td{padding:14px 14px 14px 0;border-bottom:1px solid var(--rule-soft);color:var(--ink-soft);vertical-align:middle}.overview-table td:first-child{padding-left:0;font-family:var(--serif);font-size:16px;color:var(--ink);font-variation-settings:'opsz' 24;white-space:nowrap}.overview-table tr:last-child td{border-bottom:none}.overview-table tr:hover td{background:var(--paper)}.type-badge{display:inline-block;font-family:var(--mono);font-size:9.5px;font-weight:500;text-transform:uppercase;letter-spacing:.1em;padding:2px 8px;border:1px solid;white-space:nowrap}.type-badge.spcnr{background:#1a3a4a;color:#a8d4e6}.type-badge.sp{background:#1e5f74;color:#c8eaf4}.type-badge.spdrc{background:#2d7d9a;color:#d8f0f8}.type-badge.ex{background:#e07b2a;color:#fff3e0}.type-badge.rp{background:#6aaa64;color:#eaf7e9}.type-badge.or{background:#9e9e9e;color:#f5f5f5}.check{color:#16803c;font-weight:600}.cross{color:#dc2626}.type-header{padding:28px 0 20px;border-bottom:3px solid}.type-header.sp{border-color:var(--sp-color)}.type-header.ex{border-color:var(--ex-color)}.type-header.rp{border-color:var(--rp-color)}.type-header.or{border-color:var(--or-color)}.type-eyebrow{font-family:var(--mono);font-size:10px;font-weight:500;text-transform:uppercase;letter-spacing:.14em;margin-bottom:10px}.type-header.spcnr .type-eyebrow{color:#1a3a4a}.type-header.sp .type-eyebrow{color:#1e5f74}.type-header.ex .type-eyebrow{color:#e07b2a}.type-header.rp .type-eyebrow{color:#6aaa64}.type-header.or .type-eyebrow{color:var(--or-color)}.type-title{font-family:var(--serif);font-weight:400;font-size:clamp(28px,3.5vw,44px);line-height:1.05;letter-spacing:-.022em;color:var(--ink);font-variation-settings:'opsz' 72,'SOFT' 30;margin-bottom:6px}.type-title em{font-style:italic;font-variation-settings:'opsz' 72,'SOFT' 80,'WONK' 1}.type-header.spcnr .type-title em{color:#1a3a4a}.type-header.sp .type-title em{color:#1e5f74}.type-header.ex .type-title em{color:#e07b2a}.type-header.rp .type-title em{color:#6aaa64}.type-header.or .type-title em{color:var(--or-color)}.type-subtitle{font-family:var(--mono);font-size:11px;color:var(--ink-mute);letter-spacing:.06em}.type-content{display:grid;grid-template-columns:1fr 1fr;gap:40px;padding:32px 0;align-items:start}@media(max-width:760px){.type-content{grid-template-columns:1fr;gap:24px}}.type-img{width:100%;border:1px solid var(--rule-soft);display:block}.type-facts{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--rule-soft);border:1px solid var(--rule-soft);margin-bottom:24px}.type-fact{background:var(--paper);padding:14px 16px}.type-fact-label{font-family:var(--mono);font-size:9.5px;text-transform:uppercase;letter-spacing:.12em;color:var(--ink-mute);margin-bottom:5px}.type-fact-val{font-family:var(--serif);font-size:17px;font-weight:400;color:var(--ink);font-variation-settings:'opsz' 24}@media(max-width:480px){.type-facts{grid-template-columns:repeat(2,1fr)}}.trains-list{list-style:none;border-top:1px solid var(--rule);margin:20px 0 0;padding:0}.trains-row{border-bottom:1px solid var(--rule-soft);transition:background .1s}.trains-row:hover{background:var(--paper)}.trains-row a{display:grid;grid-template-columns:60px 1fr auto;align-items:center;gap:12px;padding:14px 0;text-decoration:none;color:inherit}.trains-no{font-family:var(--mono);font-size:13px;font-weight:500;color:var(--maroon)}.trains-route{font-family:var(--serif);font-size:16px;color:var(--ink);font-variation-settings:'opsz' 24}.trains-row:hover .trains-route{color:var(--maroon)}.trains-meta{font-family:var(--mono);font-size:10px;color:var(--ink-mute);text-align:right;white-space:nowrap}@media(max-width:560px){.trains-row a{grid-template-columns:50px 1fr}.trains-meta{display:none}}.routes-list{list-style:none;margin:0;padding:0;border-top:1px solid var(--rule-soft)}.route-item{border-bottom:1px solid var(--rule-soft);padding:10px 0}.route-item a{color:var(--maroon);text-decoration:underline;text-underline-offset:2px;font-size:15px}.class-chips{display:flex;flex-wrap:wrap;gap:6px;margin:16px 0}.class-chip{font-family:var(--mono);font-size:10px;padding:3px 10px;border:1px solid var(--rule-soft);color:var(--ink-soft);background:var(--cream);text-decoration:none;transition:background .12s,color .12s}.class-chip:hover{background:var(--ink);color:var(--cream);border-color:var(--ink)}.class-chip.highlight{border-color:var(--maroon);color:var(--maroon);background:var(--paper)}.classes-hub{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin:24px 0}.class-card{display:flex;flex-direction:column;border:1px solid var(--rule-soft);border-radius:8px;overflow:hidden;text-decoration:none;color:inherit;transition:box-shadow .15s,transform .15s;background:var(--paper)}.class-card:hover{box-shadow:0 4px 20px rgb(0 0 0 / .08);transform:translateY(-2px)}.cc-img-wrap{width:100%;aspect-ratio:16 / 9;overflow:hidden;background:var(--cream);flex-shrink:0}.cc-img-wrap img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .3s ease}.class-card:hover .cc-img-wrap img{transform:scale(1.04)}.cc-body{padding:14px;display:flex;flex-direction:column;flex:1}.cc-eyebrow{font-family:var(--mono);font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.12em;color:var(--maroon);margin-bottom:6px}.cc-name{font-family:var(--serif);font-size:16px;font-weight:400;color:var(--ink);font-variation-settings:'opsz' 24;margin-bottom:8px;line-height:1.2}.cc-desc{font-size:13px;color:var(--ink-soft);line-height:1.55;flex:1;margin-bottom:12px}.cc-desc a{color:var(--maroon);text-decoration:underline;text-underline-offset:2px}.cc-foot{font-family:var(--mono);font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.1em;color:var(--maroon);margin-top:auto}@media (max-width:900px){.classes-hub{grid-template-columns:repeat(2,1fr)}}@media (max-width:480px){.classes-hub{grid-template-columns:1fr}}.faq-item{border-bottom:1px solid var(--rule);transition:background .15s ease}.faq-item:last-child{border-bottom:1px solid var(--ink)}.faq-item[open]{background:var(--paper)}.faq-item summary{list-style:none;cursor:pointer;padding:20px 44px 20px 0;font-family:var(--serif);font-size:clamp(17px,2vw,19px);font-weight:400;line-height:1.35;color:var(--ink);font-variation-settings:'opsz' 24;position:relative;transition:color .15s ease}.faq-item summary::-webkit-details-marker{display:none}.faq-item summary:hover{color:var(--maroon)}.faq-item summary::after{content:'+';position:absolute;right:8px;top:50%;transform:translateY(-50%);font-family:var(--serif);font-size:22px;font-weight:300;color:var(--maroon);line-height:1;transition:transform .2s ease}.faq-item[open] summary::after{content:'−';transform:translateY(-50%) rotate(0deg)}.faq-answer{padding:0 44px 24px 0;animation:faq-reveal .3s ease}.faq-answer p{font-size:15.5px;line-height:1.7;color:var(--ink-soft);margin-bottom:12px}.faq-answer p:last-child{margin-bottom:0}.faq-answer strong{color:var(--ink);font-weight:500}@keyframes faq-reveal{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}@media(max-width:600px){.faq-item summary{font-size:16px;padding:18px 36px 18px 0}.faq-answer{padding-right:0}.faq-answer p{font-size:14.5px}}.highlight{color:#4a1010;font-weight:600}main.page-body{width:100%;box-sizing:border-box;padding-left:clamp(1rem, 4vw, 3rem);padding-right:clamp(1rem, 4vw, 3rem)}.wrap{max-width:920px;margin:0 auto}