/* v3.0 — «Сказка в пути»: fluid layout, photographic storytelling, clear visitor actions. */
:root{--navy:#0d2340;--red:#b81d2d;--muted:#60758b;--cream:#fbf6ee;--sky:#8fd0f5;--gutter:clamp(22px,5vw,96px)}
html.shell-active body{background:var(--cream);color:var(--navy)}
html.shell-active #siteShellTop{position:relative}
html.shell-active .site-topbar{position:absolute;inset:0 0 auto;z-index:30;height:100px;padding:0 var(--gutter);background:transparent;border:0;gap:24px;color:var(--cream)}
.site-wordmark{color:inherit;font-size:clamp(22px,2.2vw,34px);gap:10px}.site-wordmark .site-star{font-size:32px;color:var(--cream)}
.site-topbar nav{gap:clamp(18px,2vw,36px)}.site-topbar nav a{color:var(--cream);font-size:13px}.site-topbar nav a:hover{color:var(--sky)}
.site-top-cta{background:#d6283a;color:white;border-radius:12px;padding:15px 22px;font-size:13px}.site-top-cta:hover{background:#ba1b2d}
.site-menu-toggle{display:none}
html.shell-active .site-hero{height:100svh;min-height:740px;max-height:1080px;background:linear-gradient(180deg,#08162bb3,transparent 42%,#08162bf5),url('assets/hero-new.jpg') center 42%/cover no-repeat}
.hero-stars{display:none}.hero-inner{max-width:none;margin:0;height:100%;display:flex;flex-direction:column;justify-content:flex-end;align-items:flex-start;padding:140px var(--gutter) 75px}
.hero-overline{font-size:12px;letter-spacing:.16em;color:var(--sky);gap:10px}.hero-overline span{font-size:13px}
.site-hero h1{font:400 clamp(66px,7.8vw,142px)/1.02 Lobster,Georgia,serif;max-width:1450px;letter-spacing:-.015em;margin:18px 0 25px;text-shadow:0 5px 28px #08162b55}
.site-hero h1 em{color:var(--cream);white-space:normal}.hero-copy{font-size:clamp(16px,1.45vw,21px);line-height:1.6;max-width:680px;color:#f1f4f7}
.hero-actions{gap:14px;margin-top:29px}.hero-button{display:inline-flex;align-items:center;justify-content:center;border-radius:13px;background:#d6283a;color:#fff;font-size:15px;padding:17px 24px;box-shadow:none;min-height:56px}
.hero-secondary{display:inline-flex;align-items:center;justify-content:center;padding:16px 23px;min-height:56px;border:1px solid #fbf6eea6;border-radius:13px;font-size:14px;color:var(--cream)}
.hero-facts{margin-top:40px;gap:30px;font-size:12px;color:#d6e4ed}.hero-facts b{font-size:25px}.hero-scroll{display:none}
.site-section{max-width:none;margin:0;padding:90px var(--gutter)}.site-section .section-heading{max-width:850px}.section-index{font-size:11px;letter-spacing:.16em;color:var(--red);font-weight:800}
.site-section h2{font:400 clamp(39px,4.3vw,68px)/1.08 Lobster,Georgia,serif;margin:12px 0 22px;color:var(--navy)}.site-section h2 em{font-style:normal;color:inherit}
.section-heading p{font-size:16px;line-height:1.7;max-width:740px;color:#526b82}
.about-section{display:grid;grid-template-columns:1fr 1fr;gap:clamp(36px,6vw,110px);align-items:center;padding-top:100px;padding-bottom:100px}
.about-copy{max-width:700px}.about-copy p{font-size:17px;line-height:1.8;color:#526b82;margin:0 0 16px}.about-link{display:inline-flex;gap:22px;align-items:center;margin-top:15px;font-size:13px;font-weight:800;color:var(--red);text-decoration:none;border-bottom:1px solid #b81d2d45;padding-bottom:8px}
.about-photo{position:relative;margin:0;border-radius:24px;overflow:hidden;background:#0d2340;aspect-ratio:4/3}.about-photo img{width:100%;height:100%;object-fit:cover;display:block}.about-photo:after{content:'';position:absolute;inset:50% 0 0;background:linear-gradient(transparent,#08162bbf)}.about-photo span{position:absolute;bottom:25px;left:28px;right:28px;z-index:1;color:#fff;font:26px Lobster,Georgia,serif}
.section-anchor{display:block;scroll-margin-top:20px}
html.shell-active .city-search-section{max-width:none;padding:85px var(--gutter) 35px;background:#0d2340;color:var(--cream);gap:7vw;border:0;align-items:flex-start;position:relative;z-index:25;scroll-margin-top:0}
.city-search-section>div{flex:1;max-width:650px}.city-search-section .section-index{color:var(--sky)}.city-search-section h2{font:clamp(38px,4vw,62px)/1.1 Lobster,Georgia,serif;margin:12px 0 16px}.city-search-section>div>p{font-size:15px;line-height:1.7;color:#c6d7e5;max-width:540px}
.city-search-section form{width:50%;max-width:730px;padding-top:10px}.city-search-section label{font-size:12px;color:#d7e6ef;margin-bottom:10px}
.city-search-control{min-height:64px;border:1px solid #ffffffa8;border-radius:13px;background:#fff;box-shadow:0 6px 25px #00000013;overflow:visible}
.city-search-control input{border:0!important;box-shadow:none!important;border-radius:13px 0 0 13px;font-size:17px;padding:17px 20px;color:var(--navy);background:#fff;min-width:0}.city-search-control input:focus{outline:3px solid #8fd0f5!important;outline-offset:3px}
.city-search-control>button{background:#d6283a;border:0;border-radius:0 12px 12px 0;font-size:13px;padding:0 22px;white-space:nowrap;color:white}.city-search-control>button span{margin-left:10px}
#citySearchNotice{font-size:12px;line-height:1.6;color:#c6d7e5;min-height:19px;margin:12px 0 0}
.city-search-control .city-options{top:calc(100% + 9px);left:0;right:0;width:auto;max-height:360px;padding:7px;border:1px solid #d1dde5;border-radius:14px;box-shadow:0 18px 50px #020b1c55;background:#fff;z-index:50}
.city-search-control .city-options .city-option{display:flex;align-items:center;justify-content:space-between;gap:15px;width:100%;min-height:65px;padding:13px 15px;margin:0;border:0;border-radius:8px;background:#fff;font-size:15px;line-height:1.4;white-space:normal;text-align:left;color:var(--navy)}
.city-option-name{display:block;font-weight:800}.city-option-region{display:block;font-size:11px;color:#697f93;font-weight:500;margin-top:3px}.city-option-tag{font-size:10px;font-weight:700;color:#6d7f8f;text-align:right;max-width:100px;flex-shrink:0}.city-option .city-option-main{min-width:0}
.city-search-control .city-options .city-option:hover,.city-search-control .city-options .city-option.is-active{background:#eaf4fa}.city-empty{padding:18px;color:#526b82;font-size:13px}
.city-search-result{background:var(--cream);color:var(--navy);border-radius:16px;padding:25px;margin-top:20px;border:1px solid #ffffff77}.city-search-result[hidden]{display:none}.search-origin{font-size:12px;color:#62758b;line-height:1.5}.search-origin b{font-weight:800}.city-search-result h3{font:700 20px/1.4 Manrope,Arial,sans-serif;margin:10px 0 10px}.city-search-result p{font-size:13px;line-height:1.7;color:#526b82;margin:0 0 13px}.nearby-destination{padding:20px;background:#fff;border:1px solid #d7e2e8;border-left:4px solid var(--red);border-radius:11px;margin:18px 0}.nearby-destination.short{border-left-color:#1f5f9f}.nearby-destination .destination-label{font-size:10px;font-weight:800;color:var(--red);letter-spacing:.12em}.nearby-destination strong{display:block;font:36px/1.1 Lobster,Georgia,serif;margin:7px 0 10px}.destination-meta{display:flex;flex-wrap:wrap;gap:7px 16px;font-size:12px;font-weight:700;color:#526b82}.search-result-action,.search-region-choice{min-height:48px;border:0;border-radius:10px;background:var(--navy);color:#fff;padding:12px 18px;font:800 12px Manrope,Arial,sans-serif;cursor:pointer}.search-region-choice{display:block;width:100%;margin:9px 0;text-align:left;background:#e4eef4;color:var(--navy)}
.city-search-result .distance-note{font-size:11px;margin-top:13px;color:#73879a}
html.shell-active .route-overview{background:#0d2340;color:var(--cream);padding-top:30px;padding-bottom:70px}.route-overview .section-index{color:#8fd0f5}.route-overview h2{font-size:clamp(34px,3.5vw,52px);color:var(--cream)}.route-overview .section-heading p{font-size:14px;color:#c4d6e4}.route-key{color:#d8e5ed;font-size:12px;gap:25px;margin:20px 0 30px}.route-key i{width:9px;height:9px}
.route-month-filters{display:flex;gap:9px;flex-wrap:wrap;margin:30px 0 27px}.route-month-filters button{border:1px solid #92a8bc;border-radius:50px;background:transparent;color:#e6f0f6;min-height:43px;padding:10px 20px;font:700 12px Manrope;cursor:pointer}.route-month-filters button.is-active{background:var(--cream);color:var(--navy);border-color:var(--cream)}
.route-timeline{border:0;padding:0;margin:0}.route-timeline-heading{margin-bottom:20px}.route-timeline-heading .section-index{color:#a4bdd0;font-size:9px}.route-timeline-heading strong{font:32px Lobster,Georgia,serif;color:#fff}.route-timeline-arrows button{width:43px;height:43px;border:1px solid #758da3;background:transparent;color:white;box-shadow:none}.route-timeline-arrows button:disabled{opacity:.25}
.route-timeline-track{position:relative;gap:16px;padding:5px 2px 25px;scroll-padding-left:2px}.timeline-divider{display:none}.timeline-card{flex-basis:255px;min-height:235px;border-radius:15px;padding:23px;border:1px solid #ffffff88;border-top:4px solid #b81d2d;box-shadow:none;gap:10px}.timeline-card.long{background:#fff1ed;border-color:#eec9c7;border-top-color:#b81d2d}.timeline-card.short{background:#e8f4fc;border-color:#b5d6eb;border-top-color:#1f5f9f}.timeline-card[hidden]{display:none}.timeline-card.is-selected{box-shadow:0 0 0 3px #8fd0f566}.timeline-number{font-size:10px;letter-spacing:.12em}.timeline-card time{font-size:12px;color:#61788b}.timeline-card strong{font:30px/1.1 Lobster,Georgia,serif;color:var(--navy);overflow-wrap:anywhere}.timeline-hours{font-size:12px;color:#526b82}.timeline-type{font-size:10px;font-weight:800;color:#a32230}.short .timeline-type{color:#1f5f9f}.timeline-link{font-size:11px;margin-top:auto;padding-top:12px;color:#a32230}.route-timeline-progress{height:2px;background:#7894ad42}.route-timeline-progress span{background:#8fd0f5}
html.shell-active .route-map-wrap{border:1px solid #8aaac2;border-radius:18px;background:#dbe8ed;box-shadow:none;margin:28px 0}.route-map-heading{border:0;border-radius:11px;background:#fffaf0f2}.route-map-heading strong{color:var(--navy)}.route-map-controls button{border-radius:9px}
html.shell-active #mapStage{position:relative;left:auto;width:calc(100% - var(--gutter)*2);height:min(82svh,920px);min-height:660px;margin:50px auto 80px;border:1px solid #d3dee5;border-radius:22px;overflow:hidden;box-shadow:0 20px 55px #0d234014;scroll-margin-top:30px}
html.shell-active.map-widget-hidden #mapStage{display:none!important}.site-map-label{top:24px;left:26px;border-radius:12px;padding:15px 20px;background:#fbf6eef5;box-shadow:0 8px 25px #0d23401c}.site-map-label span{font-size:8px;letter-spacing:.12em}.site-map-label strong{font:25px Lobster,Georgia,serif}
.map-controls,.sim-toggle,.playback-dock{border-radius:13px}.map-controls{padding:5px}.map-controls button{border-radius:8px}.sim-toggle{border-radius:50%}.simulation{border-radius:16px;padding:22px;border:1px solid #d5dfe6;background:#fffaf0fa}.sim-header strong{font-size:14px}.simulation legend{font-size:11px}.simulation input,.simulation select{border-radius:8px}.playback-dock{background:#fbf6eef5;padding:8px;box-shadow:0 7px 28px #0d234029}.dock-button{border-radius:11px}
html.map-is-fullscreen body{overflow:hidden}html.shell-active #mapStage:fullscreen{width:100%;height:100dvh;min-height:0;margin:0;border:0;border-radius:0}
.programmes-section{background:#fff;padding-top:85px;padding-bottom:90px}.programme-grid{gap:24px;margin-top:40px}.programme-card{padding:30px;border:0;border-radius:22px;overflow:hidden;min-height:0;box-shadow:none;background:linear-gradient(150deg,#9b1c2e,#6a1020);color:#fffaf0;display:flex;flex-direction:column}.programme-card.short{background:linear-gradient(150deg,#17508a,#0e2f57)}.programme-badge,.short .programme-badge{color:#fff;font-size:10px;letter-spacing:.08em;align-self:flex-start;border:1px solid #ffffffa6;border-radius:50px;padding:8px 12px}.programme-card .programme-art,.programme-card .programme-art img{height:220px}.programme-art{border-radius:12px;margin:22px 0;display:block}.programme-art img{object-fit:cover;width:100%;filter:none}.programme-card h3{font:34px Lobster,Georgia,serif;margin:0 0 16px}.programme-card p,.programme-card.short p{color:#f4e7e9;font-size:15px;line-height:1.8;max-width:none}.programme-card.short p{color:#e1eef7}.programme-points{margin:18px 0 28px;gap:12px}.programme-points li,.programme-card.short .programme-points li{font-size:13px;line-height:1.7;color:#f4e7e9}.programme-card.short .programme-points li{color:#e1eef7}.programme-points li::before,.programme-card.short .programme-points li::before{color:#fff}.programme-bottom,.short .programme-bottom{border-color:#ffffff4d;color:#fff;font-size:11px;gap:18px;padding-top:22px}.programme-bottom a,.short .programme-bottom a{color:#fff;font-size:12px}.programme-note{font-size:12px;line-height:1.6;max-width:800px}
.carriage-section{background:var(--cream);padding-top:90px;padding-bottom:90px}.carriage-grid{gap:22px;margin-top:40px}.carriage-grid article{border:1px solid #e0e4e6;border-radius:18px;background:#fff;box-shadow:none;padding-bottom:26px}.carriage-grid article img{height:220px}.carriage-grid article span{display:block;font-size:10px;margin-top:22px}.carriage-grid h3{font-size:26px;margin:10px 22px 13px}.carriage-grid p{font-size:13px;line-height:1.75;margin:0 22px;color:#526b82}.carriage-grid article span{margin-left:22px}.carriage-lightbox{background:#08162bf5}.carriage-lightbox button{border-radius:10px}
.visit-section{background:#fff;color:var(--navy);padding:85px var(--gutter)}.visit-section h2,.visit-section h2 em{color:var(--navy)}.visit-section .section-index{color:var(--red)}.visit-steps{gap:22px;margin-top:35px}.visit-steps>div{background:var(--cream);border:1px solid #e5e3df;border-radius:16px;padding:27px}.visit-steps b{font-size:43px;color:var(--red)}.visit-steps h3{font:27px Lobster,Georgia,serif;margin:16px 0 13px}.visit-steps p{font-size:14px;color:#526b82;line-height:1.75}.visit-callout{background:#0d2340;color:#fff;border-radius:17px;padding:30px;margin-top:28px;grid-template-columns:1.1fr 2fr auto}.visit-callout span{color:var(--sky);font-size:10px}.visit-callout strong{font-size:14px}.visit-callout a{border-radius:11px;background:#d6283a;font-size:12px;padding:15px 20px}
.faq-section{background:#e6f3fc;padding-top:90px;padding-bottom:95px}.faq-search-label{font-size:12px;color:#526b82}.faq-search{width:min(100%,600px);border:1px solid #c3d5e3;border-radius:12px;padding:16px 18px;font-size:15px;background:#fff}.faq-list{display:grid;grid-template-columns:1fr 1fr;gap:30px 35px;max-width:none;margin-top:35px;align-items:start}.faq-group{margin:0}.faq-group h3{font-size:29px;color:var(--navy);border:0;margin:0 0 17px;padding:0}.faq-list details{background:#fff;border:1px solid #d0dfe9;border-radius:12px;margin:9px 0;overflow:hidden}.faq-list summary{font-size:14px;line-height:1.55;padding:19px 50px 19px 20px}.faq-list summary::after{top:16px;right:17px;font-size:24px;color:#688199}.faq-answer{font-size:13px;line-height:1.8;padding:0 20px 20px;color:#526b82}.faq-answer p{font-size:13px!important;margin:12px 0 0!important}.faq-answer a{color:#a92335;font-weight:700}.faq-list details[hidden],.faq-group[hidden]{display:none}
.site-final{position:relative;background:linear-gradient(#08162b85,#08162bd9),url('assets/gallery/a6dc6d79a65945141467e6b3b9889001.jpg') center 45%/cover;color:var(--cream);padding:110px var(--gutter);text-align:center}.site-final>div{max-width:850px;margin:auto}.site-final .section-index{color:var(--sky)}.site-final h2{font:clamp(42px,5vw,78px)/1.1 Lobster,Georgia,serif;margin:16px 0 20px}.site-final p{font-size:17px;line-height:1.7;color:#d7e4ed;margin:0 auto 30px;max-width:600px}.site-final .hero-button{font-size:14px}
.site-footer{background:#08162b;padding:45px var(--gutter);grid-template-columns:2fr 1fr 1fr;color:var(--cream);gap:28px}.site-footer strong{font-size:28px}.site-footer .site-star{display:none}.site-footer a{font-size:12px}.site-footer p,.site-footer small{font-size:11px;color:#9bb0c3}.site-footer .data-credit{font-size:10px;color:#9bb0c3}
.arrival-board{border-radius:22px;background:var(--cream);border:1px solid #e6dfd7;box-shadow:0 25px 80px #08162b45;overflow:auto}.arrival-top{padding:17px 24px;background:var(--cream)}.arrival-eyebrow,.arrival-demo{font-size:9px}.arrival-display{border-radius:15px;margin:0 14px;padding:24px;background:linear-gradient(150deg,#17508a,#0e2f57)}.arrival-display[data-programme="long"]{background:linear-gradient(150deg,#9b1c2e,#6a1020)}.arrival-display .arrival-train{font-size:11px;letter-spacing:.05em;color:#fffaf0}.arrival-display .arrival-city{font:42px/1.08 Lobster,Georgia,serif;margin:17px 0 12px}.arrival-display .arrival-date{font-size:17px;line-height:1.5}.arrival-display .programme-type{background:#ffffff15;border:1px solid #ffffff88;border-radius:50px;color:white;padding:6px 11px;font-size:10px;margin:15px 0}.arrival-times{gap:10px}.arrival-times>div{padding:13px 9px;background:#08162b33;border-radius:10px}.arrival-times strong{font-size:25px}.arrival-times .stay-time{font-size:19px}.arrival-times .time-pending{font-size:11px}.arrival-times span{font-size:8px}.arrival-timezone{font-size:9px}.arrival-body{padding:21px 26px 25px}.arrival-activities{font-size:13px;line-height:1.7}.arrival-buy{border-radius:11px;background:var(--navy);font-size:13px;padding:16px}.arrival-disclaimer{font-size:10px;line-height:1.6}.arrival-page-backdrop{background:#f0f5f8bf;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
#loader{background:radial-gradient(ellipse at 50% 30%,#17385d,#08162b)}#loader h1{font-size:42px}.loading-line span{background:#8fd0f5}.loader-snow{color:#fbf6ee}.magic-transition{background:radial-gradient(ellipse at center,#234c74,#08162b 75%);overflow:hidden}.magic-transition:before{content:'';position:absolute;inset:0;background:linear-gradient(#08162b80,#08162be6),url('assets/hero-new.jpg') center/cover;animation:magicLandscape 2.6s ease both}.magic-center{position:relative;z-index:4}.magic-center>span{color:#8fd0f5;text-shadow:0 0 60px #8fd0f5}.magic-center strong{font:clamp(42px,6vw,86px) Lobster,Georgia,serif;color:#fffaf0}.magic-center small{font-size:12px;color:#c9e5f5;letter-spacing:.1em}.magic-burst{border-color:#8fd0f5!important;box-shadow:0 0 100px #8fd0f5,0 0 260px #ffffff55}.magic-flash{background:#eaf7ff}.magic-stars{opacity:.9}@keyframes magicLandscape{0%{opacity:0;transform:scale(1.08)}65%{opacity:.6}100%{opacity:1;transform:scale(1)}}
@media(min-width:1800px){.hero-inner{padding-bottom:95px}.site-section{padding-top:110px;padding-bottom:110px}.carriage-grid article img{height:280px}}
@media(max-width:1150px){html.shell-active .site-topbar{height:84px}.site-wordmark{font-size:25px}.site-topbar nav{gap:18px}.site-topbar nav a{font-size:11px}.site-top-cta{font-size:11px;padding:13px 16px}.site-hero h1{font-size:clamp(70px,9vw,110px)}.hero-copy{max-width:630px}.about-section{gap:35px}.city-search-section{gap:35px}.city-search-section form{width:53%}.city-search-control>button{padding:0 15px}.carriage-grid{grid-template-columns:repeat(2,1fr)}.carriage-grid article img{height:260px}.visit-callout{grid-template-columns:1fr 2fr}.visit-callout a{grid-column:2;justify-self:start}.programme-card{padding:24px}}
@media(max-width:900px){.site-topbar nav{display:none}.site-menu-toggle{display:flex;flex-direction:column;justify-content:center;gap:5px;width:42px;height:42px;border:1px solid #ffffff77;border-radius:10px;background:#08162b55;cursor:pointer;margin-left:auto;flex-shrink:0}.site-menu-toggle span{display:block;width:18px;height:2px;background:#fff;margin:0 auto}.site-topbar.menu-open nav{display:flex;position:absolute;top:76px;left:var(--gutter);right:var(--gutter);flex-direction:column;align-items:stretch;gap:0;background:#0d2340;border:1px solid #536b83;border-radius:14px;padding:8px;box-shadow:0 20px 40px #0005}.site-topbar.menu-open nav a{font-size:14px;padding:14px 16px;border-radius:8px}.site-topbar.menu-open nav a:hover{background:#213f60}.about-section{grid-template-columns:1fr}.about-copy{max-width:none}.about-photo{aspect-ratio:16/9;max-height:510px}.city-search-section{display:block}.city-search-section>div{max-width:none}.city-search-section form{width:100%;max-width:none;margin-top:25px}.programme-grid{grid-template-columns:1fr}.programme-card .programme-art,.programme-card .programme-art img{height:270px}.programme-card{padding:30px}.visit-callout{grid-template-columns:1fr}.visit-callout a{grid-column:auto}.faq-list{grid-template-columns:1fr;gap:28px}.site-section{padding-top:65px;padding-bottom:65px}.route-overview .section-heading{display:none}}
@media(max-width:600px){:root{--gutter:22px}html.shell-active .site-topbar{height:78px;gap:12px}.site-wordmark{font-size:22px;white-space:normal;line-height:1.1}.site-wordmark .site-star{display:none}.site-top-cta{display:inline-flex;align-items:center;padding:11px 13px;font-size:10px;min-height:42px;border-radius:9px}.site-top-cta span{display:none}.site-menu-toggle{margin-left:auto}.site-topbar.menu-open nav{top:72px}.site-topbar nav a{font-size:14px}
html.shell-active .site-hero{height:90svh;min-height:690px;max-height:850px;background-position:center,54% center}.hero-inner{padding:115px var(--gutter) 45px}.hero-overline{font-size:9px;letter-spacing:.12em}.hero-overline span{display:none}.site-hero h1{font-size:clamp(56px,12.7vw,78px);max-width:450px;line-height:1.04;margin:19px 0 22px}.site-hero h1 em{display:block;font-size:inherit;white-space:normal}.hero-copy{font-size:15px;line-height:1.7}.hero-actions{flex-wrap:wrap;gap:10px;margin-top:25px}.hero-button,.hero-secondary{font-size:12px;padding:14px 16px;min-height:49px}.hero-facts{display:flex;gap:17px;font-size:9px;margin-top:29px;flex-wrap:wrap}.hero-facts b{font-size:20px}.hero-facts i{height:16px}
.site-section h2{font-size:39px}.about-section{gap:25px}.about-copy p{font-size:15px;line-height:1.8}.about-photo{aspect-ratio:4/3;border-radius:17px}.about-photo span{font-size:23px;bottom:20px;left:22px}.section-index{font-size:9px}.city-search-section h2{font-size:38px}.city-search-section>div>p{font-size:14px}.city-search-control{min-height:58px}.city-search-control input{font-size:15px;padding:16px 14px}.city-search-control>button{font-size:11px;padding:0 13px}.city-search-control>button span{display:none}.city-search-result{padding:20px}.nearby-destination{padding:17px}.nearby-destination strong{font-size:32px}.city-search-control .city-options .city-option{padding:11px 12px;min-height:65px}.city-option-tag{font-size:9px;max-width:72px}.city-option-region{font-size:10px}.city-search-control .city-options{max-height:310px}.city-search-result h3{font-size:18px}
html.shell-active .route-overview{padding-top:10px;padding-bottom:45px}.route-key{font-size:10px;gap:15px;flex-wrap:wrap}.route-month-filters{gap:7px;margin:20px 0}.route-month-filters button{font-size:10px;padding:8px 13px;min-height:37px}.route-timeline-heading strong{font-size:27px}.route-timeline-arrows button{width:37px;height:37px}.timeline-card{flex-basis:230px;min-height:228px;padding:20px}.timeline-card strong{font-size:29px}.route-map-wrap{height:350px}.route-map-heading span{display:none}.route-map-heading strong{font-size:20px}.route-map-heading{top:12px;left:12px;padding:10px 13px}.route-map-controls{right:12px;top:12px}.route-map-controls button{width:34px;height:34px}
.programme-card{padding:22px;border-radius:17px}.programme-card .programme-art,.programme-card .programme-art img{height:210px}.programme-card h3{font-size:30px}.programme-card p{font-size:14px}.programme-points li,.programme-card.short .programme-points li{font-size:12px}.programme-bottom{align-items:flex-start;flex-direction:column;gap:15px}.programme-bottom span{max-width:none!important}.programme-card .programme-bottom a{font-size:13px}.programme-badge{font-size:8px}.carriage-grid{grid-template-columns:1fr;gap:20px}.carriage-grid article img{height:240px}.carriage-grid article h3{font-size:29px}.carriage-grid article p{font-size:14px}.visit-steps{grid-template-columns:1fr;gap:14px}.visit-steps>div{padding:24px}.visit-steps h3{margin-top:9px}.visit-callout{padding:25px}.faq-list summary{font-size:13px;padding:18px 44px 18px 17px}.faq-answer{padding:0 17px 19px;font-size:12px}.faq-group h3{font-size:27px}.site-final{padding:85px var(--gutter)}.site-final h2{font-size:45px}.site-final p{font-size:15px}.site-footer{grid-template-columns:1fr;gap:30px}.site-footer>div:first-child{grid-column:auto}.site-footer strong{font-size:27px}.arrival-display{padding:22px 17px}.arrival-display .arrival-city{font-size:36px}.arrival-display .arrival-date{font-size:15px}.arrival-body{padding:20px}.arrival-times strong{font-size:23px}.arrival-times .stay-time{font-size:17px}.arrival-times .time-pending{font-size:10px}.arrival-display .programme-type{font-size:9px}.arrival-top{padding:15px 22px}
}
@media(prefers-reduced-motion:reduce){html.shell-active{scroll-behavior:auto}.magic-transition:before{animation:none}.hero-button,.timeline-card{transition:none}}
@media(min-width:901px){html.shell-active .site-topbar nav{display:flex}}
.arrival-actions[hidden]{display:none}
.arrival-board>.arrival-top,.arrival-board>.arrival-display,.arrival-board>.arrival-body{zoom:1}
.arrival-times{grid-template-columns:repeat(3,minmax(0,1fr))}.arrival-times>div{min-width:0}.arrival-times span{letter-spacing:0;overflow-wrap:anywhere}.arrival-times .time-pending{line-height:1.5}
@media(max-width:600px){.hero-facts{display:grid;grid-template-columns:repeat(3,1fr);width:100%;gap:12px}.hero-facts i{display:none}.hero-facts span{display:flex;flex-direction:column;gap:4px;font-size:9px}.hero-facts b{display:block;font-size:21px;margin:0}}
@media(max-width:360px){html.shell-active .site-hero{min-height:800px}.site-topbar .site-wordmark{font-size:20px}.site-topbar .site-top-cta{padding:10px;font-size:9px}}

/* v3.1 — one route section with two clearly separated visitor tasks. */
html.shell-active .city-search-section{background:#163453;padding-top:70px;padding-bottom:65px;border-bottom:1px solid #8fd0f538}
html.shell-active .route-overview{padding-top:60px;padding-bottom:65px}
html.shell-active #mapStage{width:100%;margin:0;max-width:none;border:0;border-radius:0;box-shadow:none}
.train-photo-strip{padding:30px 0;background:#08162b;overflow:hidden}
.train-photo-track{display:flex;width:max-content;animation:trainPhotoRibbon 90s linear infinite;animation-play-state:running;will-change:transform}
.train-photo-strip.is-visible .train-photo-track{animation-play-state:running}
@media(hover:hover){.train-photo-strip:hover .train-photo-track{animation-play-state:paused}}
.train-photo-group{display:flex;gap:20px;padding-right:20px;flex-shrink:0}
.train-photo{display:block;flex:0 0 auto;width:clamp(290px,36vw,550px);height:clamp(200px,24vw,365px);padding:0;border:0;border-radius:16px;overflow:hidden;background:#17324d;cursor:zoom-in}
.train-photo img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .4s ease}
.train-photo:hover img{transform:scale(1.035)}.train-photo:focus-visible{outline:3px solid #8fd0f5;outline-offset:-4px}
@keyframes trainPhotoRibbon{to{transform:translateX(-50%)}}
.faq-search-control{position:relative;width:min(100%,600px)}
.faq-search-control .faq-search{width:100%;padding-right:55px}
.faq-search::-webkit-search-cancel-button{-webkit-appearance:none;appearance:none}
#faqSearchClear{position:absolute;right:9px;top:50%;transform:translateY(-50%);width:36px;height:36px;display:grid;place-items:center;padding:8px;background:#e6f0f6;border:0;border-radius:9px;color:#254d75;cursor:pointer}
#faqSearchClear[hidden]{display:none}#faqSearchClear svg{width:18px;height:18px}
.faq-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:35px}
.faq-column{display:flex;flex-direction:column;gap:32px;min-width:0}
.faq-list .faq-group{margin:0}
.faq-list .faq-answer{padding:3px 22px 23px;max-width:none;font-size:13px;line-height:1.8}
.faq-list .faq-answer p{padding:0;margin:12px 0 0!important}
@media(max-width:900px){.route-overview .section-heading{display:block}.route-overview .section-heading h2{font-size:38px}.route-overview .section-heading p{font-size:13px}.faq-list{display:flex;flex-direction:column;gap:30px}.faq-list .faq-group{width:100%}}
@media(max-width:600px){html.shell-active .city-search-section{padding-top:55px;padding-bottom:45px}html.shell-active .route-overview{padding-top:42px;padding-bottom:42px}.route-overview .section-heading h2{font-size:34px}.train-photo-strip{padding:20px 0}.train-photo-group{gap:13px;padding-right:13px}.train-photo{width:290px;height:205px;border-radius:12px}.faq-list .faq-answer{padding:3px 18px 21px;font-size:12px}}
@media(prefers-reduced-motion:reduce){.train-photo-strip{overflow-x:auto}.train-photo-track{animation:none;will-change:auto}.train-photo-group[aria-hidden="true"]{display:none}.train-photo img{transition:none}}
html.arrival-modal-open body{overflow:hidden}
/* v3.2: view switch, consistent ticket actions, robust photographic placeholders. */
.route-view-control{display:flex;align-items:center;justify-content:flex-end;gap:11px;color:#e2eff8;font-size:13px;margin:22px 0 18px}
.route-view-control[hidden],html.map-width-narrow .route-view-control{display:none}
#routeViewToggle{display:flex;align-items:center;justify-content:flex-end;width:48px;height:28px;padding:4px;border:0;border-radius:30px;background:#c7e6f3;cursor:pointer}
#routeViewToggle>span{display:block;width:20px;height:20px;border-radius:50%;background:#17384f}
#routeViewToggle[aria-checked=false]{justify-content:flex-start;background:#7893a8}
#routeViewToggle:disabled{opacity:.45;cursor:default}
.map-unavailable{color:#c4d6e4;font-size:13px;line-height:1.6}.map-unavailable button{border:0;border-bottom:1px solid currentColor;padding:0;background:none;color:#c7e6f3;font:inherit;cursor:pointer}
html.shell-active.map-widget-hidden .route-map-wrap[hidden]{display:none!important}
html.shell-active a.ticket-button,html.shell-active .arrival-buy.ticket-button,.arrival-buy.ticket-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:#d6283a;color:#fff;border:0;border-radius:12px;padding:15px 22px;font:800 13px Manrope,Arial,sans-serif;text-decoration:none;box-shadow:none;min-height:48px}
html.shell-active a.ticket-button:hover,.arrival-buy.ticket-button:hover{background:#ba1b2d;color:#fff}
html.shell-active .hero-button[data-city-search]{background:#bce6f8;color:#102e4d}
html.shell-active .hero-button[data-city-search]:hover{background:#d8f1fc;color:#102e4d}
.city-input-wrap{display:flex;align-items:center;flex:1;position:relative;min-width:0;background:#fff}
.city-input-wrap #citySearch{width:100%;min-width:0;padding-right:52px;appearance:none;-webkit-appearance:none;outline:0!important;box-shadow:none!important}
#citySearch::-webkit-search-cancel-button,#citySearch::-webkit-search-decoration,#faqSearch::-webkit-search-cancel-button,#faqSearch::-webkit-search-decoration{display:none;-webkit-appearance:none}
.city-search-control:focus-within{box-shadow:0 0 0 3px #8fd0f566;border-color:#8fd0f5}
#citySearchClear{position:absolute;right:9px;top:50%;transform:translateY(-50%);width:36px;height:36px;display:grid;place-items:center;padding:8px;background:#e6f0f6;border:0;border-radius:9px;color:#254d75;cursor:pointer}
#citySearchClear[hidden]{display:none}#citySearchClear svg{width:18px;height:18px}
.arrival-times small{display:block;color:#e1eaf5;font-size:12px;line-height:1.4;margin-top:8px}
.arrival-board.is-multiday .arrival-times{grid-template-columns:1fr 1fr}
.arrival-board.is-multiday .arrival-times>div:nth-child(2){grid-column:1/-1;grid-row:2;padding:9px}
.arrival-board.is-multiday .arrival-times>div:nth-child(2)>span{display:inline;margin-right:9px}
.arrival-board.is-multiday .arrival-times>div:nth-child(2)>strong{display:inline}
html.shell-active .site-hero{background-image:linear-gradient(180deg,#08162bb3,transparent 42%,#08162bf5),url('assets/hero-new.jpg')}
.site-final{background-image:linear-gradient(#08162b85,#08162bd9),url('assets/gallery/a6dc6d79a65945141467e6b3b9889001.jpg')}
@media(max-width:600px){html.shell-active .site-topbar a.ticket-button{font-size:10px;padding:11px 13px;min-height:42px}.arrival-times small{font-size:11px}.arrival-board.is-multiday .arrival-times>div{min-width:0}}
/* v3.3: shared map position, clean search corners, daily two-day programme rows. */
.city-input-wrap{border-radius:12px 0 0 12px;overflow:hidden}
.city-input-wrap #citySearch{border-radius:12px 0 0 12px}
html.shell-active .journey-map-block{background:var(--navy);padding:0 0 0;margin:0;width:100%;scroll-margin-top:0}
.journey-map-block .route-view-control{margin:0;padding:18px var(--gutter);min-height:64px;box-sizing:border-box}
.journey-map-block .map-unavailable{margin:0;padding:16px var(--gutter)}
html.shell-active .journey-map-block .route-map-wrap{width:100%;height:min(82svh,920px);min-height:660px;margin:0;border:0;border-radius:0;box-shadow:none}
html.shell-active .journey-map-block #mapStage{height:min(82svh,920px);min-height:660px;margin:0}
#routeOverviewMap{touch-action:pan-y;overscroll-behavior:auto}
.arrival-times[hidden],.arrival-daily[hidden]{display:none!important}
.arrival-daily{margin-top:20px;display:grid;gap:10px}
.arrival-day{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:13px 14px;border-radius:10px;background:#08162b33;color:#fffaf0}
.arrival-day-date{grid-column:1/-1;font:700 16px Manrope,Arial,sans-serif;padding-bottom:8px;border-bottom:1px solid #ffffff26}
.arrival-day>div>span{display:block;text-transform:uppercase;letter-spacing:.08em;font-size:9px;opacity:.8;margin-bottom:6px}
.arrival-day>div>strong{display:block;font:700 25px Manrope,Arial,sans-serif}
.arrival-day>div>.time-pending{font-size:12px;line-height:1.4}
@media(max-width:799px){html.shell-active .journey-map-block .route-map-wrap{height:430px;min-height:0}.arrival-day{padding:12px;gap:10px}.arrival-day-date{font-size:15px}}
/* v3.4: one persistent landscape, with a staged hero reveal. */
html.magic-opening,html.magic-opening body{overflow:hidden!important;scroll-behavior:auto!important;overflow-anchor:none}
.seamless-magic{background:transparent;transition:none}
.seamless-magic:before{display:none}
.seamless-magic .hero-scene,.site-hero>.hero-scene{position:absolute;top:0;left:0;width:100%;height:clamp(740px,100svh,1080px);background:linear-gradient(180deg,#08162bb3,transparent 42%,#08162bf5),url('assets/hero-new.jpg') center 42%/cover no-repeat;pointer-events:none}
.seamless-magic .hero-scene{animation:landscape-settle 3.8s cubic-bezier(.2,.65,.3,1) both}
.site-hero.has-hero-scene{isolation:isolate;background-image:none!important}
.site-hero>.hero-scene{z-index:-1}
.magic-effects{position:absolute;inset:0;display:grid;place-items:center;opacity:1;transition:opacity .65s ease}
.seamless-magic.is-revealing{opacity:1;visibility:visible;pointer-events:none}
.seamless-magic.is-revealing .magic-effects{opacity:0}
html.shell-entering .site-topbar,html.shell-entering .hero-overline,html.shell-entering .site-hero h1,html.shell-entering .hero-copy,html.shell-entering .hero-actions,html.shell-entering .hero-facts{opacity:0;transform:translateY(18px)}
html.shell-revealing .site-topbar,html.shell-revealing .hero-overline,html.shell-revealing .site-hero h1,html.shell-revealing .hero-copy,html.shell-revealing .hero-actions,html.shell-revealing .hero-facts{animation:hero-unveil .7s cubic-bezier(.2,.7,.3,1) both}
html.shell-revealing .site-topbar{animation-delay:.05s}html.shell-revealing .hero-overline{animation-delay:.12s}html.shell-revealing .site-hero h1{animation-delay:.22s}html.shell-revealing .hero-copy{animation-delay:.34s}html.shell-revealing .hero-actions{animation-delay:.44s}html.shell-revealing .hero-facts{animation-delay:.54s}
@keyframes landscape-settle{from{transform:scale(1.035)}to{transform:scale(1)}}
@keyframes hero-unveil{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:600px){.seamless-magic .hero-scene,.site-hero>.hero-scene{height:clamp(690px,90svh,850px);background-position:center,54% center,center}}
@media(max-width:360px){.seamless-magic .hero-scene,.site-hero>.hero-scene{min-height:800px}}
@media(prefers-reduced-motion:reduce){.seamless-magic,.seamless-magic .hero-scene,html.shell-revealing .site-topbar,html.shell-revealing .hero-overline,html.shell-revealing .site-hero h1,html.shell-revealing .hero-copy,html.shell-revealing .hero-actions,html.shell-revealing .hero-facts{animation:none;opacity:1;transform:none}.magic-effects{transition:none}}

.seamless-magic .magic-burst{animation-duration:3.8s}.seamless-magic .magic-flash{animation-duration:3.8s}.seamless-magic .magic-stars{animation-duration:3.8s}.seamless-magic .magic-center{animation-duration:2.4s}.seamless-magic .magic-center>span{animation-duration:3.8s}
/* v4.0: visitor preferences and server-authorized administration. */
html:not(.admin-active) #simToggle,html:not(.admin-active) #simulation{display:none!important}
.cookie-notice{position:fixed;z-index:2147483646;left:24px;right:24px;bottom:24px;max-width:960px;margin:auto;display:flex;align-items:center;gap:28px;padding:24px 28px;color:#1c3953;background:#fffaf0;border:1px solid #d4e0e9;border-radius:18px;box-shadow:0 12px 55px #06182b35;font:15px/1.55 Manrope,sans-serif}
.cookie-notice[hidden]{display:none}.cookie-notice strong{font-size:18px}.cookie-notice p{margin:6px 0 0}.cookie-actions{display:flex;gap:10px;flex-shrink:0}.cookie-actions button{border:1px solid #234e70;border-radius:10px;padding:12px 16px;cursor:pointer;font:700 14px Manrope,sans-serif;color:#234e70;background:transparent}.cookie-actions button:first-child{background:#234e70;color:white}.consent-link{background:none;border:0;color:inherit;text-decoration:underline;cursor:pointer;font:inherit}.admin-session-note{position:fixed;top:4px;left:50%;transform:translateX(-50%);z-index:20000;border-radius:12px;padding:4px 12px;background:#fff8e9;color:#234e70;font:12px Manrope,sans-serif;pointer-events:none}
@media(max-width:700px){.cookie-notice{left:12px;right:12px;bottom:12px;padding:18px;display:block;font-size:13px}.cookie-actions{margin-top:14px;flex-wrap:wrap}}
/* Warm up the animated module outside the viewport while classic map is selected. */
html.shell-active.map-widget-hidden[data-map-state=loading] #mapStage{display:block!important;position:absolute!important;left:-200vw!important;top:0!important;width:100vw!important;height:80vh!important;visibility:hidden!important;pointer-events:none!important}
