.catalogView{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:4px 0 24px}.catalogView p{font-size:12px;color:#68766c}.viewSwitch{display:flex;border:1px solid var(--line);padding:4px;background:var(--cream);border-radius:5px;flex-shrink:0}.viewSwitch button{border:0;background:transparent;padding:10px 17px;font-size:12px;color:var(--green);border-radius:3px}.viewSwitch button.active{background:var(--green);color:#fff}
.railSlider{position:relative;isolation:isolate;overflow:hidden;border:1px solid var(--line);border-radius:12px;background-size:cover;background-position:center;padding:26px 32px 20px;color:#fff}
.railSlider:before{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,#10251a15 10%,#10251a80 70%),linear-gradient(0deg,#10251aeb 0%,#10251a00 45%);pointer-events:none}
.journeyHeading{position:relative;display:flex;justify-content:space-between;gap:20px;align-items:center;z-index:2;font-size:10px;letter-spacing:1.6px;font-weight:700;color:#fff;text-shadow:0 2px 8px #000b}.journeyHeading span:first-child{border-left:3px solid var(--red);padding:8px 12px;background:#183e2b85;border-radius:2px}.journeyHeading span:last-child{font-size:9px;letter-spacing:1px;font-weight:400}
.journeyStage{position:relative;margin:20px auto 0;max-width:1050px;z-index:2;touch-action:pan-y;padding-bottom:140px}.journeyCard{position:relative;display:grid;grid-template-columns:1.05fr 1fr;gap:38px;align-items:center;min-height:400px;background:transparent;border:0;box-shadow:none}
.journeyImage{border:0;background:transparent;position:relative;width:100%;aspect-ratio:1;max-height:420px;overflow:visible;padding:0;touch-action:pan-y;cursor:pointer}.journeyImage img{transition:opacity 200ms ease;display:block;width:100%;height:100%;object-fit:contain;pointer-events:none;user-select:none;filter:drop-shadow(0 14px 10px #10251a65)}.journeyImage img.journeyOriginal{mask-image:radial-gradient(ellipse at center,#000 48%,transparent 73%)}.journeyImage>span{position:absolute;left:15px;bottom:8px;font-size:10px;letter-spacing:2px;color:#fff;background:#163928a6;border:1px solid #fff4;padding:5px 9px;border-radius:3px}
.journeyCopy{padding:15px 0;color:#fff;text-shadow:0 2px 12px #0008}.journeyCopy .eyebrow{font-size:9px;margin-bottom:13px;color:#f4dfad;letter-spacing:1.8px}.journeyCopy h3{font:clamp(29px,3.4vw,43px)/1.08 Georgia,serif;margin:0 0 14px;color:#fff;text-wrap:balance}.journeyCopy>p{font-size:12px;color:#f2f0e8}.journeyCopy .journeyWhite{margin-top:20px;padding-left:12px;border-left:2px solid #e6c389;font-size:11px;line-height:1.6}.journeyPrices{display:flex;gap:25px;flex-wrap:wrap;margin:23px 0}.journeyPrices b,.journeyPrices span{font-size:25px;color:#fff;line-height:1.2}.journeyPrices span{font-size:22px}.journeyPrices small{display:block;font-size:10px;font-weight:400;color:#f2f0e8;margin-top:6px}.journeyCopy .btn{box-shadow:0 5px 18px #0003;text-shadow:none;border:1px solid #ffffff45}.journeyEmpty{grid-column:1/-1;text-align:center;padding:70px 20px}
.passingTrainLane{position:absolute;left:0;right:0;bottom:104px;height:160px;z-index:1;pointer-events:none;overflow:visible}.passingTrain{position:absolute;left:0;bottom:0;opacity:0;filter:drop-shadow(0 7px 4px #16231e80);pointer-events:none}.steppedTrain{display:flex;align-items:flex-end;width:max-content;max-width:none;height:150px;gap:0;transform:translateX(-110%);will-change:transform;animation:none}.steppedTrain img{height:100%;width:auto;max-width:none;display:block;object-fit:contain;flex-shrink:0}
.journeyControls{display:flex;align-items:center;justify-content:space-between;gap:15px;position:relative;z-index:2;max-width:1050px;margin:0 auto}.journeyControls button{border:1px solid #ffffff80;background:#14382990;color:#fff;width:45px;height:45px;border-radius:50%;font-size:24px;flex-shrink:0}.journeyControls button:hover{background:var(--red)}.journeyControls button:disabled{opacity:.3;cursor:default}.journeyControls p{font-size:11px;line-height:1.5;text-align:center;color:#fff;text-shadow:0 2px 6px #0008;background:transparent;padding:0}.journeyHint{position:relative;z-index:2;text-align:center;font-size:10px;color:#e4e7df;margin:14px 0 0}.railSlider button:focus-visible{outline:3px solid #f4d58b;outline-offset:4px}.journeyStage{outline:none}.journeyStage:focus-visible .journeyControls button:not(:disabled){box-shadow:0 0 0 2px #f4d58b}
@media(max-width:700px){.catalogView{align-items:start;flex-direction:column;gap:10px}.railSlider{padding:18px 16px;background-position:45% center}.railSlider:before{background:linear-gradient(0deg,#10251aee 0%,#10251a85 45%,#10251a10 75%)}.journeyHeading{font-size:9px;letter-spacing:1px}.journeyHeading span:last-child{display:none}.journeyStage{margin-top:8px;padding-bottom:0}.journeyCard{grid-template-columns:1fr;gap:0;min-height:0}.journeyImage{height:310px;max-width:360px;aspect-ratio:auto;margin:0 auto 120px}.journeyCopy{padding:8px 5px 20px}.journeyCopy h3{font-size:30px;max-width:440px}.journeyCopy .eyebrow{margin-bottom:9px}.journeyCopy .journeyWhite{margin-top:12px}.journeyPrices{margin:18px 0;gap:28px}.journeyCopy .btn{width:100%;justify-content:center}.passingTrainLane{top:335px;bottom:auto;height:110px}.steppedTrain{height:105px}.journeyControls{gap:12px}.journeyControls p{font-size:10px}.journeyHint{font-size:9px;line-height:1.5}.journeyControls button{width:40px;height:40px}}
@media(prefers-reduced-motion:reduce){.steppedTrain{transition:none!important}}

.journeyImage img.journeyPrevious{position:absolute;inset:0;pointer-events:none;opacity:1}.trainVehicle{position:relative;display:block;flex-shrink:0;overflow:hidden;width:auto}.steppedTrain .trainVehicle img{position:absolute;max-width:none;object-fit:fill;display:block}
@media(prefers-reduced-motion:reduce){.journeyImage img{transition:none!important}}

.journeyCopy h3{min-height:2.16em}.journeyCopy .eyebrow{display:block;min-height:2.6em}@media(max-width:700px){.journeyCopy h3{min-height:3.24em}}

/* A single pair of arrows, beside the figure rather than below the scene. */
.journeyStage .journeyControls{position:absolute;left:0;top:calc((100% - 140px)/2);transform:translateY(-50%);width:calc((100% - 38px)*.512195);max-width:none;margin:0;z-index:4;pointer-events:none}
.journeyStage .journeyControls button{pointer-events:auto;width:46px;height:46px;min-width:46px;background:#143829c9;box-shadow:0 4px 15px #0003;backdrop-filter:blur(5px)}
.journeyStage .journeyControls button:hover{background:#a63630}
.journeyStage .journeyControls p{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
.journeyImage{padding-inline:54px}
@media(max-width:700px){.journeyStage .journeyControls{left:50%;top:155px;width:100%;max-width:360px;transform:translate(-50%,-50%)}.journeyStage .journeyControls button{width:42px;height:42px;min-width:42px}.journeyImage{padding-inline:44px}}

/* Enamel railway signs with a brass rim, inset lettering and rivets. */
.journeyStage .journeyControls button{
 position:relative;display:grid;place-items:center;border:2px solid #c7a66a;border-radius:10px;
 background:linear-gradient(160deg,#325a46,#143b2c 55%,#0c281f);color:#fff0cd;
 box-shadow:inset 0 0 0 3px #102c24,inset 0 0 0 4px #e4c4895c,0 4px 0 #092219,0 8px 18px #0004;
 font:28px/1 Georgia,serif;text-shadow:0 1px 2px #0009;transition:background .18s,border-color .18s,box-shadow .18s;
}
.journeyStage .journeyControls button:before{content:'';position:absolute;inset:5px;pointer-events:none;background:radial-gradient(circle at 0 0,#e6cc95 0 1.5px,transparent 2px),radial-gradient(circle at 100% 0,#e6cc95 0 1.5px,transparent 2px),radial-gradient(circle at 0 100%,#e6cc95 0 1.5px,transparent 2px),radial-gradient(circle at 100% 100%,#e6cc95 0 1.5px,transparent 2px)}
.journeyStage .journeyControls button span{display:block;pointer-events:none}
.journeyStage .journeyControls button span{font-size:0;line-height:0}
.journeyArrowIcon{display:block;width:24px;height:24px;fill:currentColor;filter:drop-shadow(0 1px 1px #0008)}
.journeyArrowIcon path{stroke:currentColor;stroke-width:.4;stroke-linejoin:round}
.journeyImage img{transition:none}
.journeyImage img.journeyPrevious{inset:0 54px;width:calc(100% - 108px);height:100%}
@media(max-width:700px){.journeyImage img.journeyPrevious{inset:0 44px;width:calc(100% - 88px)}}
.journeyStage .journeyControls button:hover:not(:disabled){background:linear-gradient(150deg,#b85344,#8d302b);border-color:#f0d393}
.journeyStage .journeyControls button:active:not(:disabled){box-shadow:inset 0 0 0 3px #102c24,inset 0 0 0 4px #e4c4895c,0 1px 0 #092219,0 3px 9px #0004}
.journeyStage .journeyControls button:disabled{opacity:.4;cursor:default}
@media(prefers-reduced-motion:reduce){.journeyStage .journeyControls button{transition:none}}

/* Edge-to-edge scenery; retain readable gutters outside the railway stage.
   Use the parent's width, not 100vw, so scrollbars never add overflow. */
.catalog.section{
  --catalog-gutter:clamp(16px,5vw,80px);
  width:100%;
  max-width:none;
  margin-inline:0;
  padding-inline:0;
}
.catalog.section > :not(.railSlider){margin-inline:var(--catalog-gutter)}
.catalog.section > .railSlider{
  width:100%;
  max-width:none;
  margin-inline:0;
  border-inline:0;
  border-radius:0;
}
.railSlider .journeyHeading{max-width:1050px;margin-inline:auto}
