/* routekaart: de gratis routes (Voeding, Dankbaarheid) als knoppen langs een gouden lijn.
   Gebruikt op start.html en 404.html. Desktop: naast elkaar; telefoon: carrousel met knopjes erboven.
   Zet --rand op de zijruimte van de pagina, zodat de carrousel tot de rand van het scherm loopt. */
.st-routes{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px;margin:26px 0 0}
.route{min-width:0}.halte b,.halte small{hyphens:manual}
.route{display:flex;flex-direction:column;border:1px solid rgba(201,164,92,.22);border-radius:20px;background:rgba(11,22,20,.55);backdrop-filter:blur(3px);padding:16px 10px 16px 10px}
.route h2{display:flex;align-items:center;gap:6px;margin:0 0 12px;font-family:var(--serif);font-weight:400;font-size:clamp(1.05rem,5vw,1.5rem);line-height:1;color:var(--cream);white-space:nowrap}
.route h2 svg{width:20px;height:20px;flex:none;color:var(--gold)}
.route ol{list-style:none;margin:0;padding:0 0 0 18px;position:relative;display:grid;grid-template-columns:minmax(0,1fr);gap:10px}
.route ol::before{content:"";position:absolute;left:5px;top:22px;bottom:-8px;width:1.5px;background:linear-gradient(var(--gold) 65%,rgba(201,164,92,0));transform-origin:top}
.halte a{position:relative;display:block;min-height:64px;padding:11px 24px 12px 11px;text-decoration:none;color:inherit;border:1px solid rgba(201,164,92,.42);border-radius:14px;background:rgba(201,164,92,.07);transition:background .25s,border-color .25s,transform .25s}
.halte a::after{content:"\2192";position:absolute;right:9px;top:50%;transform:translateY(-50%);color:var(--gold);font-size:1rem;transition:transform .25s}
.halte a:hover,.halte a:focus-visible{background:rgba(201,164,92,.15);border-color:var(--gold)}
.halte a:hover::after,.halte a:focus-visible::after{transform:translate(3px,-50%)}
.halte a:active{transform:scale(.98)}
.halte a::before{content:"";position:absolute;left:-18px;top:17px;width:10px;height:10px;border-radius:50%;background:var(--bg);border:1.5px solid var(--gold);box-sizing:border-box}
.halte b{display:block;font-family:var(--serif);font-weight:400;font-size:clamp(1rem,4.5vw,1.2rem);line-height:1.15;color:var(--cream)}
.halte small{display:block;margin-top:3px;font-size:.74rem;line-height:1.35;color:var(--muted)}
/* telefoon: de routes als carrousel; de volgende kaart steekt een stukje in beeld */
.st-tabs{display:none}
@media (max-width:699px){
  .st-tabs{display:flex;justify-content:center;gap:8px;margin:22px 0 0}
  .st-tabs button{font:inherit;font-size:.7rem;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);background:none;border:1px solid rgba(239,232,220,.22);border-radius:999px;padding:9px 16px;cursor:pointer;transition:color .3s,border-color .3s,background .3s}
  .st-tabs button[aria-pressed="true"]{color:#16120a;background:var(--gold);border-color:var(--gold)}
  .st-routes{display:flex;grid-template-columns:none;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;margin:14px calc(-1 * var(--rand,18px)) 0;padding:2px var(--rand,18px) 6px;scroll-padding:0 var(--rand,18px);overscroll-behavior-x:contain}
  .st-routes::-webkit-scrollbar{display:none}
  .route{flex:0 0 84%;scroll-snap-align:start;padding:16px 14px 16px 12px;backdrop-filter:none;background:rgba(11,22,20,.78)}
  .route h2{font-size:1.5rem}
  .halte b{font-size:1.2rem}
}
@media (min-width:700px){.st-routes{gap:20px}.route{padding:22px 20px 18px}.route h2{font-size:1.8rem}.halte b{font-size:1.3rem}.halte small{font-size:.8rem}}
@media (max-width:370px){.route{padding:14px 9px 12px}.halte a{padding-right:20px}.halte a::after{right:6px}}
@media (prefers-reduced-motion:no-preference){
  html.js .route{animation:st-op .8s cubic-bezier(.2,.7,.2,1) both;animation-delay:calc(.7s + var(--r) * .12s)}
  html.js .route ol::before{animation:st-lijn 1.3s cubic-bezier(.5,0,.2,1) both;animation-delay:calc(1s + var(--r) * .12s)}
  html.js .halte{animation:st-halte .55s cubic-bezier(.2,.8,.2,1.2) both;animation-delay:calc(1.05s + var(--r) * .12s + var(--h) * .3s)}
}
@keyframes st-op{from{opacity:0;transform:translateY(14px) scale(.98)}to{opacity:1;transform:none}}
@keyframes st-lijn{from{transform:scaleY(0)}to{transform:none}}
@keyframes st-halte{from{opacity:0;transform:translateX(-8px)}to{opacity:1;transform:none}}
/* één route (start.html?route=…): geen knopjes, geen carrousel, één kolom in het midden */
.st-routes.een{display:block;max-width:440px;margin-left:auto;margin-right:auto;overflow:visible;padding:2px 0 6px}
.st-routes.een .route{flex:none}
/* een extra halte die alleen in de losse route staat (start.html?route=voeding: het schema op maat) */
.halte.alleen-een{display:none}
.st-routes.een .halte.alleen-een{display:block}
