/* Rail Café — menu: departure board, platform sections, premium ticket cards, ticket modal */
.rc-menu-shell{display:grid;grid-template-columns:190px minmax(0,1fr)}
.rc-menu-shell__content{min-width:0}

/* --- departure board (shared markup, desktop sidebar / mobile strip via modifiers) --- */
.rc-board__legend{display:grid;grid-template-columns:56px 1fr auto 24px;gap:.5rem;padding:.5rem .9rem;border-bottom:1px solid var(--rc-line);color:#4b525e;font:600 .58rem var(--rc-font-display);letter-spacing:.14em;text-transform:uppercase}
.rc-board__row{display:grid;grid-template-columns:56px 1fr auto 24px;align-items:center;gap:.5rem;width:100%;padding:.85rem .9rem;border:0;border-right:2px solid transparent;background:transparent;color:var(--rc-silver);text-align:right;font-family:var(--rc-font-body);cursor:pointer;transition:background var(--rc-transition-fast),border-color var(--rc-transition-fast),color var(--rc-transition-fast)}
.rc-board__row:hover{background:rgba(0,127,255,.06)}
.rc-board__row:focus-visible{outline:2px solid var(--rc-blue);outline-offset:-2px}
.rc-board__row.is-active{border-color:var(--rc-blue);background:rgba(0,127,255,.1);color:var(--rc-white)}
.rc-board__platform{color:var(--rc-blue);font:700 .78rem/1 var(--rc-font-display);font-variant-numeric:tabular-nums}
.rc-board__row.is-active .rc-board__platform{text-shadow:0 0 10px rgba(0,127,255,.7)}
.rc-board__destination{overflow:hidden;font-size:.85rem;font-weight:600;text-overflow:ellipsis;white-space:nowrap}
.rc-board__count{color:#5f6772;font-size:.66rem;white-space:nowrap}
.rc-board__arrow{color:#4b525e;font-size:.7rem;transition:transform var(--rc-transition-fast),color var(--rc-transition-fast)}
.rc-board__row:hover .rc-board__arrow,.rc-board__row.is-active .rc-board__arrow{color:var(--rc-blue);transform:translateX(-3px)}

.rc-board--desktop-sidebar{position:sticky;top:var(--rc-header-h);z-index:20;display:flex;flex-direction:column;height:calc(100dvh - var(--rc-header-h));overflow-y:auto;border-left:1px solid var(--rc-line);background:#05070c;scrollbar-width:thin}
.rc-board--mobile{display:none}

/* --- menu intro / search --- */
.rc-menu-intro{position:relative;overflow:hidden;padding:clamp(4.5rem,10vw,8rem) 0 3.5rem;border-bottom:1px solid var(--rc-line);background:radial-gradient(circle at 12% 20%,rgba(0,127,255,.08),transparent 38%)}
.rc-menu-intro__loco{position:absolute;top:8%;left:4%;width:clamp(140px,20vw,260px);opacity:.06;filter:brightness(0) invert(1)}
.rc-menu-intro h1{position:relative;z-index:1;max-width:780px;margin:.8rem 0 .3rem;color:var(--rc-white);font:600 clamp(1.9rem,5.5vw,4.4rem)/1.15 var(--rc-font-display);letter-spacing:-.03em}
.rc-menu-intro p{position:relative;z-index:1;max-width:60ch;margin:0;color:var(--rc-muted)}
.rc-search{position:relative;z-index:1;display:grid;gap:.4rem;width:min(520px,100%);margin-top:1.8rem}
.rc-search span{color:#5f6772;font-size:.68rem}
.rc-search input{height:54px;padding:0 3.2rem 0 1.1rem;border:1px solid var(--rc-line);border-radius:var(--rc-r-pill);background:rgba(15,19,28,.65);color:var(--rc-white);outline:0;font:400 .88rem var(--rc-font-body);transition:border-color var(--rc-transition)}
.rc-search input:focus{border-color:var(--rc-blue);box-shadow:var(--rc-blue-glow)}
.rc-search i{position:absolute;bottom:1.15rem;left:1.15rem;color:var(--rc-muted)}

/* --- first class horizontal rail --- */
.rc-first-class{padding:3.5rem 0;border-bottom:1px solid var(--rc-line)}
.rc-first-class__rail{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(230px,270px);gap:1rem;padding:.5rem .1rem 1rem;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:thin}
.rc-first-class__rail>*{scroll-snap-align:start}

/* --- platform sections --- */
.rc-platform{padding:clamp(3.5rem,7vw,6rem) 0;border-bottom:1px solid var(--rc-line);content-visibility:auto;contain-intrinsic-size:600px}
.rc-platform:nth-child(even){background:rgba(42,49,64,.16)}
.rc-platform__head{display:flex;align-items:center;gap:1.2rem;margin-bottom:2rem}
.rc-platform__badge{display:grid;place-items:center;gap:.05rem;width:64px;aspect-ratio:1;flex:none;border:1px solid var(--rc-line);border-radius:var(--rc-r-md);background:#05070c;color:var(--rc-white)}
.rc-platform__badge b{color:var(--rc-blue);font:700 1.1rem var(--rc-font-display)}
.rc-platform__badge small{color:#5f6772;font-size:.55rem;letter-spacing:.06em}
.rc-platform__head>div small{display:block;color:#5f6772;font:600 .58rem var(--rc-font-display);letter-spacing:.15em}
.rc-platform__head h2{margin:.2rem 0;color:var(--rc-white);font:600 clamp(1.4rem,3vw,2.3rem) var(--rc-font-display)}
.rc-platform__head p{margin:0;color:var(--rc-muted)}
.rc-platform__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:1.15rem}
.rc-platform.is-hidden,[data-item-card].is-hidden{display:none!important}

/* --- ticket cards --- */
.rc-ticket{position:relative;display:flex;flex-direction:column;overflow:hidden;border:1px solid var(--rc-line);border-radius:var(--rc-r-lg);background:linear-gradient(155deg,rgba(42,49,64,.75),rgba(10,14,20,.92));box-shadow:0 16px 40px rgba(0,0,0,.32);transition:transform var(--rc-transition),border-color var(--rc-transition),box-shadow var(--rc-transition)}
.rc-ticket:hover{transform:translateY(-7px);border-color:rgba(0,127,255,.4);box-shadow:0 30px 60px rgba(0,0,0,.5),0 0 0 1px rgba(0,127,255,.18)}
.rc-ticket--sold{opacity:.6}
.rc-ticket--featured{border-color:rgba(0,127,255,.32)}
.rc-ticket--featured::before{content:"";position:absolute;inset:0;z-index:0;border-radius:inherit;box-shadow:inset 0 0 0 1px rgba(0,127,255,.18);pointer-events:none}

.rc-ticket__holes{position:absolute;top:0;bottom:0;left:14px;z-index:3;width:0;border-left:2px dashed rgba(197,204,216,.22);pointer-events:none}

.rc-ticket__state{position:absolute;top:.9rem;right:.9rem;z-index:4;padding:.3rem .7rem;border:1px solid rgba(0,127,255,.4);border-radius:var(--rc-r-pill);background:rgba(5,7,12,.85);color:var(--rc-blue);font-size:.62rem;font-weight:600;letter-spacing:.02em}
.rc-ticket__state--muted{border-color:var(--rc-line);color:var(--rc-muted)}

.rc-ticket__window{position:relative;display:block;width:100%;aspect-ratio:4/3;padding:0;border:0;overflow:hidden;background:#05070c;cursor:pointer}
.rc-ticket__window img{width:100%;height:100%;object-fit:cover;transition:transform .5s cubic-bezier(.22,1,.36,1)}
.rc-ticket:hover .rc-ticket__window img{transform:scale(1.06)}
.rc-ticket__window:focus-visible{outline:2px solid var(--rc-blue);outline-offset:-2px}
.rc-ticket__eclipse{position:absolute;inset:0;z-index:5;display:grid;place-items:center;background:rgba(5,7,12,.72);color:var(--rc-silver);font-size:.78rem;font-weight:600}
.rc-ticket__glare{position:absolute;inset:0;background:linear-gradient(115deg,transparent 40%,rgba(255,255,255,.14) 50%,transparent 60%);transform:translateX(-120%);transition:transform .7s ease;pointer-events:none}
.rc-ticket:hover .rc-ticket__glare{transform:translateX(120%)}

.rc-ticket__perforation{position:relative;height:0;margin:0;border-top:2px dashed rgba(197,204,216,.25)}
.rc-ticket__perforation::before,.rc-ticket__perforation::after{content:"";position:absolute;top:50%;width:20px;height:20px;border-radius:50%;background:var(--rc-ink);transform:translateY(-50%)}
.rc-ticket__perforation::before{left:-10px}
.rc-ticket__perforation::after{right:-10px}

.rc-ticket__body{display:flex;flex:1;flex-direction:column;gap:.15rem;padding:1.15rem 1.1rem 1.1rem}
.rc-ticket__route{color:var(--rc-blue);font:600 .62rem var(--rc-font-display);letter-spacing:.1em;text-transform:uppercase}
.rc-ticket__body h3{margin:.15rem 0;color:var(--rc-white);font:600 1.02rem var(--rc-font-display)}
.rc-ticket__body p{display:-webkit-box;overflow:hidden;margin:.1rem 0;color:var(--rc-muted);font-size:.78rem;line-height:1.6;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.rc-ticket__body footer{display:flex;align-items:end;justify-content:space-between;gap:.6rem;margin-top:auto;padding-top:.9rem}
.rc-ticket__price{display:grid;gap:.05rem}
.rc-ticket__price s{color:#5f6772;font-size:.68rem}
.rc-ticket__price span{color:var(--rc-white);font:700 .98rem var(--rc-font-display)}
.rc-ticket__price small{color:var(--rc-muted);font-size:.6rem;font-weight:400}
.rc-ticket__blocked{color:#5f6772;font-size:.72rem}

.rc-ticket--compact .rc-ticket__window{aspect-ratio:1}
.rc-ticket--compact .rc-ticket__body{padding:.9rem .85rem}
.rc-ticket--compact .rc-ticket__body p{display:none}

/* --- quantity stepper (used on ticket cards) --- */
.rc-qty{display:inline-flex;align-items:center;gap:.25rem;padding:.2rem;border:1px solid var(--rc-line);border-radius:var(--rc-r-pill);background:#05070c}
.rc-qty__btn{display:grid;place-items:center;width:29px;height:29px;padding:0;border:0;border-radius:50%;background:var(--rc-chrome);color:var(--rc-silver);font-size:.95rem;line-height:1;cursor:pointer;transition:background var(--rc-transition-fast),color var(--rc-transition-fast)}
.rc-qty__btn:hover{background:var(--rc-blue);color:#fff}
.rc-qty__btn:focus-visible{outline:2px solid var(--rc-blue);outline-offset:2px}
.rc-qty__value{min-width:1.3rem;text-align:center;color:var(--rc-white);font-size:.78rem;font-variant-numeric:tabular-nums}

.rc-variants{display:flex;flex-direction:column;gap:.28rem;margin:.35rem 0 .2rem;width:100%}
.rc-variant{display:grid;grid-template-columns:1fr auto;align-items:center;gap:.5rem;min-height:2.45rem;padding:.35rem .4rem .35rem .55rem;border:1px solid var(--rc-line);border-radius:.65rem;background:#05070c;color:var(--rc-silver);transition:border-color var(--rc-transition-fast),background var(--rc-transition-fast),box-shadow var(--rc-transition-fast),color var(--rc-transition-fast)}
.rc-variant__meta{min-width:0;display:flex;flex-direction:column;gap:.05rem}
.rc-variant__name{font-size:.78rem;font-weight:650;line-height:1.2;color:var(--rc-white)}
.rc-variant__price{font-size:.66rem;font-weight:600;color:var(--rc-muted);font-variant-numeric:tabular-nums;white-space:nowrap}
.rc-variant__price small{font-size:.56rem;font-weight:500;margin-inline-start:.12rem}
.rc-qty--compact{gap:.05rem;padding:.04rem}
.rc-qty--compact .rc-qty__btn{width:22px;height:22px;font-size:.82rem}
.rc-qty--compact .rc-qty__value{min-width:.9rem;font-size:.74rem}
.rc-variant.has-qty{border-color:var(--rc-blue);background:color-mix(in srgb,var(--rc-blue) 14%,#05070c);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--rc-blue) 28%,transparent)}
.rc-variant.has-qty .rc-variant__name{color:var(--rc-blue)}
.rc-variant.has-qty .rc-variant__price{color:#9ec8ff}
.rc-ticket--compact .rc-variants{gap:.2rem}
.rc-ticket--compact .rc-variant{min-height:2.2rem;padding:.28rem .32rem .28rem .45rem}

/* --- ticket details modal --- */
.rc-ticket-modal{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;padding:1rem;opacity:0;visibility:hidden;transition:opacity var(--rc-transition),visibility var(--rc-transition)}
.rc-ticket-modal.is-open{opacity:1;visibility:visible}
.rc-ticket-modal__veil{position:absolute;inset:0;border:0;background:rgba(5,7,12,.9)}
.rc-ticket-modal__panel{position:relative;z-index:1;display:grid;grid-template-columns:1fr 1fr;width:min(860px,100%);overflow:hidden;border:1px solid var(--rc-line);border-radius:var(--rc-r-lg);background:linear-gradient(155deg,var(--rc-chrome),var(--rc-steel));box-shadow:var(--rc-shadow)}
.rc-ticket-modal__image img{width:100%;height:100%;min-height:360px;object-fit:cover}
.rc-ticket-modal__copy{align-self:center;padding:clamp(1.6rem,5vw,3.2rem)}
.rc-ticket-modal__copy h2{margin:.6rem 0;color:var(--rc-white);font:600 clamp(1.4rem,3vw,2.2rem) var(--rc-font-display)}
.rc-ticket-modal__copy p{color:var(--rc-muted)}
.rc-ticket-modal__copy strong{display:block;margin-top:.6rem;color:var(--rc-white);font:700 1.3rem var(--rc-font-display)}
.rc-ticket__price-old{margin-left:.5rem;color:#5f6772;font-size:.85rem;font-weight:400}
.rc-ticket__badge{display:inline-block;margin-right:.5rem;padding:.2rem .55rem;border-radius:var(--rc-r-pill);background:rgba(0,127,255,.15);color:var(--rc-blue);font-size:.6rem;vertical-align:middle}
.rc-ticket-modal__close{position:absolute;top:1rem;left:1rem;z-index:2;width:42px;height:42px;border:1px solid var(--rc-line);border-radius:50%;background:rgba(5,7,12,.75);color:var(--rc-white);font-size:1.3rem;cursor:pointer;transition:border-color var(--rc-transition)}
.rc-ticket-modal__close:hover{border-color:var(--rc-blue)}

@media(max-width:900px){
    .rc-menu-shell{grid-template-columns:1fr}
    .rc-board--desktop-sidebar{display:none}
    .rc-board--mobile{position:sticky;top:var(--rc-header-h);z-index:45;display:flex;gap:.4rem;padding:.5rem .8rem;overflow-x:auto;border-bottom:1px solid var(--rc-line);background:rgba(5,7,12,.97);backdrop-filter:blur(10px);scrollbar-width:none}
    .rc-board--mobile::-webkit-scrollbar{display:none}
    .rc-board--mobile .rc-board__legend{display:none}
    .rc-board--mobile .rc-board__row{display:flex;grid-template-columns:none;flex:0 0 auto;width:auto;padding:.5rem .85rem;border:1px solid var(--rc-line);border-right:0;border-radius:var(--rc-r-pill);white-space:nowrap}
    .rc-board--mobile .rc-board__row.is-active{border-color:var(--rc-blue)}
    .rc-board--mobile .rc-board__platform{margin-left:.4rem}
    .rc-board--mobile .rc-board__count,.rc-board--mobile .rc-board__arrow{display:none}
    .rc-menu-intro{padding-top:4rem}
    .rc-menu-intro__loco{display:none}
    .rc-ticket-modal__panel{grid-template-columns:1fr}
    .rc-ticket-modal__image img{min-height:220px;max-height:38vh}
    .rc-platform__grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(min-width:901px){.rc-board--mobile{display:none!important}}
@media(max-width:540px){
    .rc-platform__grid{grid-template-columns:1fr}
    .rc-ticket{flex-direction:row;align-items:stretch;border-radius:var(--rc-r-md)}
    .rc-ticket__window{width:120px;aspect-ratio:1;flex:none}
    .rc-ticket__perforation{display:none}
    .rc-ticket__holes{left:120px}
    .rc-ticket__body{padding:.8rem .9rem}
    .rc-ticket__body p{display:none}
    .rc-ticket__state{top:.55rem;right:.55rem;padding:.22rem .5rem;font-size:.56rem}
}
