:root{--navy:#152943;--navy2:#0f2137;--blue:#1676e7;--blue2:#0862c6;--ink:#15243a;--muted:#68788d;--line:#e6edf4;--bg:#f5f8fc;--white:#fff;--shadow:0 16px 44px rgba(23,49,80,.09)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);font-family:Inter,-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif;color:var(--ink);font-size:16px;line-height:1.6}a{color:inherit;text-decoration:none}button,input{font:inherit}.wrap{width:min(1160px,calc(100% - 40px));margin:0 auto}.site-header{background:#fff;border-bottom:1px solid #e8edf4;position:relative;z-index:2}.header-inner{display:flex;align-items:center;justify-content:space-between;min-height:76px}.logo{display:inline-flex;align-items:center;font-size:26px;letter-spacing:-1.1px;font-weight:850;color:#1b304d;line-height:1}.logo>span:not(.logo-icon){color:#1676e7}.logo small{font-size:13px;letter-spacing:0;color:#92a0af;align-self:flex-end;padding-bottom:2px}.logo-icon{background:#e8f2ff;color:#1676e7;display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:11px;margin-right:10px;font-size:27px;font-weight:700}.header-inner nav{display:flex;gap:30px;font-size:14px;font-weight:600;color:#526177}.header-inner nav a:hover{color:var(--blue)}.notice{margin-top:16px;background:#fff6dd;border:1px solid #f3dea7;color:#785a17;padding:11px 15px;border-radius:10px;font-size:13px}.hero{background:linear-gradient(117deg,#152e4b 0%,#14365b 58%,#18548c 100%);color:#fff;position:relative;overflow:hidden}.hero:before{content:"";position:absolute;width:640px;height:640px;border:1px solid rgba(255,255,255,.08);border-radius:50%;right:-240px;top:-250px;box-shadow:0 0 0 100px rgba(255,255,255,.018),0 0 0 210px rgba(255,255,255,.014)}.hero-content{position:relative;padding:76px 0 70px}.hero-tag,.eyebrow{display:inline-flex;align-items:center;gap:9px;color:#5c94cf;font-weight:800;letter-spacing:1.4px;font-size:11px}.hero-tag{color:#9cc8ff}.dot{width:7px;height:7px;background:#56d6ae;border-radius:50%}.hero h1{font-size:clamp(35px,5.5vw,60px);line-height:1.12;letter-spacing:-2px;margin:20px 0 18px;font-weight:800}.hero h1 span{color:#78bbff}.lead{font-size:18px;max-width:650px;color:#c8d9ed;line-height:1.65;margin:0 0 36px}.search-card{background:#fff;color:var(--ink);border-radius:16px;padding:20px;box-shadow:0 20px 70px rgba(0,0,0,.15);max-width:1050px}.search-form{display:flex;align-items:flex-end;gap:12px}.field{flex:1;min-width:0}.field label{display:block;font-weight:750;font-size:13px;margin:0 0 7px;color:#3a4b61}.field input{width:100%;height:54px;border:1px solid #dce5ef;border-radius:9px;padding:0 15px;color:var(--ink);outline:none;background:#fbfdff}.field input:focus,.fuel-inputs input:focus{border-color:var(--blue);box-shadow:0 0 0 3px #1676e71f}.swap{height:54px;width:46px;border:0;background:#edf5ff;color:var(--blue);border-radius:9px;cursor:pointer;font-size:26px}.btn{height:54px;display:inline-flex;align-items:center;justify-content:center;gap:13px;padding:0 25px;background:var(--blue);color:#fff;font-weight:750;border:0;border-radius:9px;cursor:pointer;white-space:nowrap}.btn:hover{background:var(--blue2)}.btn span{font-size:22px}.form-hint{margin:13px 2px 0;color:#8a98a9;font-size:12px}.form-error{color:#b42318;font-size:13px;margin:12px 0 0}.hero-stats{display:flex;gap:28px;flex-wrap:wrap;margin-top:25px;color:#c8d9ed;font-size:13px}.popular{padding:64px 0 70px}.section-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:22px}h2{font-size:clamp(23px,3vw,30px);line-height:1.25;letter-spacing:-.7px;margin:7px 0 0}.route-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.route-link{background:#fff;border:1px solid var(--line);border-radius:11px;padding:17px 18px;display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:14px;font-weight:650;min-height:68px;transition:transform .15s,border-color .15s}.route-link:hover{transform:translateY(-2px);border-color:#b8d6ff;box-shadow:0 7px 18px #14365b0d}.route-link em{color:#8fa2b8;font-style:normal}.arrow{font-size:20px;color:#9cb1c8}.benefits{padding:10px 0 85px}.benefit-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:28px}.benefit-grid article{background:#fff;padding:30px;border:1px solid var(--line);border-radius:14px}.benefit-icon{width:47px;height:47px;display:grid;place-items:center;background:#e9f3ff;color:var(--blue);border-radius:12px;font-size:27px}.benefit-grid h3{font-size:18px;margin:17px 0 8px}.benefit-grid p{font-size:14px;color:var(--muted);margin:0}.footer{background:#13283f;color:#bdccdb;padding:45px 0 15px}.footer .logo{color:#fff}.footer-grid{display:grid;grid-template-columns:1fr 1fr;gap:80px}.footer p{max-width:450px;font-size:13px}.footer strong{color:#fff;font-size:14px}.foot-bottom{border-top:1px solid #294057;margin-top:35px;padding-top:15px;font-size:12px}.route-page{padding-top:27px}.breadcrumbs{font-size:12px;color:#8390a1;display:flex;gap:11px;margin-bottom:35px;flex-wrap:wrap}.breadcrumbs a:hover{color:var(--blue)}.route-page h1,.static-page h1{font-size:clamp(29px,4vw,43px);line-height:1.2;letter-spacing:-1.2px;margin:9px 0}.route-subtitle{margin:0 0 24px;color:var(--muted)}.route-search{background:#fff;border:1px solid var(--line);border-radius:14px;padding:18px;box-shadow:var(--shadow)}.metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:22px 0}.metric{background:#fff;border:1px solid var(--line);padding:22px;border-radius:13px;min-height:158px}.metric.primary{background:#edf5ff;border-color:#d2e6ff}.metric-label{color:#5f7187;font-size:13px;font-weight:650}.metric-value{font-size:36px;line-height:1.4;font-weight:850;letter-spacing:-1px;color:#18385d;margin:9px 0}.metric-value.small{font-size:24px;letter-spacing:-.5px}.metric-value small{font-size:18px;color:#5b7390}.metric-note{font-size:12px;color:#8a9bad}.mini-btn{font-size:13px;color:var(--blue);font-weight:750;display:inline-block;margin-top:8px}.content-grid{display:grid;grid-template-columns:1.45fr 1fr;gap:18px}.panel{background:#fff;border:1px solid var(--line);border-radius:14px;padding:21px;min-width:0}.panel-title{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:19px}.panel-title h2{font-size:19px;margin:0}.panel-title span{color:#8999a9;font-size:12px}.map-panel iframe{width:100%;height:355px;border:0;border-radius:10px;background:#e8edf2}.small-note{color:#8a97a8;font-size:12px;margin:12px 0 0}.fuel-inputs{display:grid;grid-template-columns:1fr 1fr;gap:12px}.fuel-inputs label{font-size:12px;color:#596b7e;font-weight:700}.fuel-inputs input{display:block;margin-top:9px;width:100%;height:44px;border:1px solid #dce5ef;border-radius:8px;padding:0 11px;outline:none}.roundtrip{display:flex;align-items:center;gap:8px;font-size:14px;margin-top:21px;cursor:pointer}.roundtrip input{width:16px;height:16px;accent-color:var(--blue)}.fuel-total{background:#eff6ff;border-radius:12px;margin-top:22px;padding:21px;display:flex;flex-direction:column;gap:5px}.fuel-total span{font-size:13px;color:#607a99}.fuel-total strong{font-size:31px;color:#0c5dc1}.fuel-total small{font-size:12px;color:#7c92ad}.route-details{background:#fff;border:1px solid var(--line);border-radius:14px;padding:28px;margin-top:20px}.route-details h2{font-size:23px}.route-details p{color:#5b6d82;font-size:15px}.reverse-link{display:inline-block;color:var(--blue);font-weight:750;font-size:14px;margin-top:10px}.error-box{background:#fff0ef;border:1px solid #f4c8c4;color:#9c2c21;border-radius:10px;padding:12px 16px;margin-top:16px;font-size:14px}.static-page,.error-page{min-height:55vh;padding:70px 0;max-width:850px}.static-page p,.error-page p{color:var(--muted)}.static-page a{color:var(--blue)}@media(max-width:900px){.search-form{flex-wrap:wrap}.search-form .field{flex-basis:calc(50% - 30px)}.search-form .btn{flex-basis:100%}.route-grid{grid-template-columns:repeat(2,1fr)}.content-grid{grid-template-columns:1fr}.hero-content{padding:65px 0}.hero h1{letter-spacing:-1.3px}}@media(max-width:620px){.wrap{width:min(100% - 28px,1160px)}.header-inner{min-height:67px}.header-inner nav{gap:14px;font-size:12px}.header-inner nav a:nth-child(2),.header-inner nav a:nth-child(3){display:none}.logo{font-size:23px}.hero-content{padding:47px 0 46px}.hero h1{font-size:36px}.lead{font-size:15px}.search-card{padding:15px}.search-form{display:grid;grid-template-columns:1fr 48px;gap:10px}.search-form .field:first-child{grid-column:1}.search-form .swap{grid-column:2;grid-row:1/3;align-self:center;margin-top:12px}.search-form .field:nth-of-type(2){grid-column:1}.search-form .btn{grid-column:1/3}.hero-stats{gap:11px 20px}.route-grid{grid-template-columns:1fr}.popular{padding:45px 0}.benefit-grid{grid-template-columns:1fr}.benefits{padding-bottom:45px}.metrics{grid-template-columns:1fr;gap:10px}.metric{min-height:auto}.metric-value{font-size:31px}.footer-grid{grid-template-columns:1fr;gap:22px}.route-page h1{font-size:30px}.panel{padding:15px}.map-panel iframe{height:310px}.fuel-inputs{grid-template-columns:1fr 1fr}.route-details{padding:19px}}

/* v0.2 */
.pagination{display:flex;flex-wrap:wrap;gap:8px;margin:28px 0}.pagination a{padding:8px 12px;border:1px solid #ddd;border-radius:8px}.pagination [aria-current]{background:#153f35;color:white}.map-placeholder{padding:25px;min-height:300px;background:#f3f7f4;border-radius:14px}.map-placeholder p{line-height:1.7}.rail-hero{padding-bottom:50px}.static-page .search-form{margin-bottom:30px}.metric-value.small{overflow-wrap:anywhere}.site-header nav{flex-wrap:wrap}.route-link span{min-width:0;overflow-wrap:anywhere}@media(max-width:600px){.site-header nav{gap:10px}.metric-value.small{font-size:24px}}
@media(max-width:620px){.header-inner{align-items:flex-start;flex-direction:column;padding:14px 0;gap:14px}.header-inner nav{flex-wrap:wrap;gap:14px}.header-inner nav a:nth-child(2),.header-inner nav a:nth-child(3){display:inline}.header-inner nav a:nth-child(4),.header-inner nav a:nth-child(5){display:none}.rail-hero h1{font-size:34px}}
.rail-hero>.wrap{position:relative;z-index:1;padding-top:45px}.rail-hero>.wrap>.notice{color:#785a17}.rail-hero>.wrap>.route-grid{color:var(--ink)}.rail-hero .search-card{color:var(--ink)}
.logo>span:not(.logo-icon){margin-left:.18em}
.rail-table{width:100%;border-collapse:collapse}.rail-table th,.rail-table td{padding:16px;text-align:left;border-bottom:1px solid #dce5ef;vertical-align:top}.rail-table a,.rail-stops a{color:#0862c6;text-decoration:underline}.table-scroll{overflow-x:auto}.date-form{display:flex;align-items:end;gap:18px;margin:24px 0}.date-form input{display:block;padding:10px;border:1px solid #dce5ef;border-radius:8px}.rasp-copyright{margin:20px 0;color:var(--ink);font-size:16px}.rasp-copyright p{font-size:16px;color:var(--ink)}.rail-stops{margin-top:24px}.rail-stops li{margin:10px 0}@media(max-width:620px){.date-form{flex-wrap:wrap}.rail-table{min-width:650px}}
/* v0.3.1: native keyboard-accessible mobile disclosure */
.logo img{display:block;width:174px;height:40px;object-fit:contain}.mobile-menu{display:none}.desktop-nav{display:flex}
@media(max-width:1080px){.header-inner{display:flex;flex-direction:row;align-items:center;flex-wrap:wrap;gap:12px;padding:12px 0}.header-inner>.desktop-nav{display:none}.mobile-menu{display:block;margin-left:auto}.mobile-menu summary{cursor:pointer;list-style:none;display:flex;align-items:center;gap:8px;padding:8px 12px;border:1px solid #dce5ef;border-radius:9px;font-weight:600}.mobile-menu summary::-webkit-details-marker{display:none}.mobile-menu[open]{width:100%;margin-left:0}.mobile-menu[open] summary{width:max-content;margin-left:auto}.header-inner .mobile-menu nav{display:flex;flex-direction:column;align-items:stretch;gap:0;padding-top:8px}.header-inner .mobile-menu nav a,.header-inner .mobile-menu nav a:nth-child(n){display:block;padding:12px;border-bottom:1px solid #edf1f5;font-size:15px}.mobile-menu summary:focus-visible{outline:3px solid #1676e7;outline-offset:3px}}
/* v0.4: opening the menu no longer moves its button or page content */
@media(max-width:1080px){.header-inner{position:relative;flex-wrap:nowrap;min-height:64px}.mobile-menu[open]{width:auto;margin-left:auto}.mobile-menu[open] summary{width:auto;margin:0}.header-inner .mobile-menu nav{position:absolute;top:100%;left:0;right:0;z-index:50;background:#fff;padding:8px 12px 12px;border:1px solid #e6edf4;border-radius:0 0 12px 12px;box-shadow:0 14px 22px rgba(21,41,67,.12);max-height:calc(100dvh - 90px);overflow-y:auto}.header-inner .mobile-menu nav a:nth-child(n){display:block}.mobile-menu summary{white-space:nowrap}.logo{flex-shrink:0}}
.catalog-page,.city-page{max-width:1160px}.footer-name{font-size:20px;color:inherit}.rail-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}@media(max-width:620px){.rail-metrics{grid-template-columns:1fr}}
.itinerary{margin-top:24px}.more-points{margin-top:12px}.more-points summary{cursor:pointer;color:#0862c6;padding:12px 0}.custom-ad{margin:20px 0;overflow:hidden}.rail-loading{min-height:64px}.rasp-copyright{margin-top:24px;border-top:1px solid #e6edf4;padding-top:20px}

/* Link buttons retain readable text inside catalog/static pages. */
.wrap a.btn,.wrap a.btn:visited,.wrap a.btn:hover,.wrap a.btn:focus-visible{color:#fff}.wrap a.btn:focus-visible{outline:3px solid #102b48;outline-offset:3px}
