/* Layout: a signage-style header, a full-width sea-blue map stage, then a white information sheet per country. */
:root{
  --logo-rose:#f4a9b4; --logo-sky:#a5c8f2; --logo-mint:#9bd8ba; --brand-ink:#26334d;
  --hero-bg:#0a2a66; --hero-head:#8ec5ff; --hero-text:#ffffff; --star:#ffcc00;
  --bg:#f3f5f7; --panel:#ffffff; --ink:#12202c; --muted:#546475; --line:#d5dde5;
  --sea:#dbe7f0; --land:#c5d0da; --land-edge:#f3f5f7; --has:#2b7a9e; --accent:#c2410c;
  --train:#c8102e; --tram:#0a7d4f; --bus:#1d5fd1; --air:#6a3fb5; --news:#b45309; --tips:#0e7490; --metro:#b3261e; --apps:#4d5fb8;
  --font-display:"Barlow Condensed","Arial Narrow",Arial,sans-serif;
  --font-body:"Inter",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){
  --bg:#0e1720; --panel:#16232f; --ink:#e8eef3; --muted:#9db0bf; --line:#28394a;
  --sea:#13222e; --land:#2a3a47; --land-edge:#0e1720; --has:#3f8cb0; --accent:#ff9466;
  --train:#ff5a6e; --tram:#3ecb8f; --bus:#6ba0ff; --air:#b794f4; --news:#f2a03d; --tips:#4cc3dd; --metro:#ff7a70; --apps:#9aa9ff; --brand-ink:#fdf6ec; color-scheme:dark}}
:root[data-theme="dark"]{
  --bg:#0e1720; --panel:#16232f; --ink:#e8eef3; --muted:#9db0bf; --line:#28394a;
  --sea:#13222e; --land:#2a3a47; --land-edge:#0e1720; --has:#3f8cb0; --accent:#ff9466;
  --train:#ff5a6e; --tram:#3ecb8f; --bus:#6ba0ff; --air:#b794f4; --news:#f2a03d; --tips:#4cc3dd; --metro:#ff7a70; --apps:#9aa9ff; --brand-ink:#fdf6ec; color-scheme:dark}

*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--font-body);font-size:16px;line-height:1.55;
  padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px));padding-block:0 40px}
.wrap{max-width:1100px;margin:0 auto}
h1,h2,h3{font-family:var(--font-display);font-weight:700;line-height:1.05;margin:0;text-wrap:balance;letter-spacing:.01em}
a{color:var(--accent)}
:focus-visible{outline:3px solid var(--accent);outline-offset:2px}

.top{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:18px 0}
.brand{font-family:var(--font-display);font-weight:700;font-size:1.5rem;letter-spacing:.04em;text-transform:uppercase;display:flex;align-items:center;gap:10px;color:var(--brand-ink);text-decoration:none}
.brand i{display:inline-flex;gap:3px}
.brand i b{width:6px;height:22px;border-radius:2px;display:block}
.brand i b:nth-child(1){background:var(--logo-rose)}.brand i b:nth-child(2){background:var(--logo-sky)}.brand i b:nth-child(3){background:var(--logo-mint)}
.pill{font-size:.8rem;color:var(--muted);border:1px solid var(--line);border-radius:999px;padding:4px 12px}

.intro{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:24px 48px;align-items:end;padding:8px 0 24px}
.intro h1{font-size:clamp(2.4rem,6vw,4.2rem);text-transform:uppercase}
.intro p{margin:0;color:var(--muted);max-width:52ch}
@media (max-width:760px){.intro{grid-template-columns:minmax(0,1fr)}}

.stage{position:relative;background:var(--sea);border-radius:10px;overflow:hidden;border:1px solid var(--line)}
#map{display:block;width:100%;height:auto;max-height:78vh}
.land{fill:var(--land);stroke:var(--land-edge);stroke-width:.6}
.has{fill:var(--has);stroke:var(--land-edge);stroke-width:.8;cursor:pointer;transition:fill .15s}
.has:hover,.has:focus-visible{fill:var(--has)}
.hl{pointer-events:none;transform-box:view-box;transition:transform .22s cubic-bezier(.2,.8,.2,1);transform:scale(1)}
.hl.on{transform:scale(1.1)}
.hl .edge{fill:none;stroke:#fff;stroke-width:2.2;paint-order:stroke;filter:drop-shadow(0 4px 8px rgba(0,0,0,.35))}
.card{position:absolute;pointer-events:none;background:var(--panel);color:var(--ink);border:1px solid var(--line);border-radius:8px;padding:10px 12px;
  display:flex;gap:12px;align-items:center;box-shadow:0 8px 24px rgba(0,0,0,.22);opacity:0;transform:translate(-50%,-100%) translateY(4px);transition:opacity .15s,transform .15s;min-width:190px;z-index:3}
.card.show{opacity:1;transform:translate(-50%,-100%)}
.card svg{width:56px;height:38px;border:1px solid var(--line);border-radius:3px;flex:none;display:block}
.card b{display:block;font-family:var(--font-display);font-size:1.25rem;line-height:1.1}
.card span{display:block;font-size:.8rem;color:var(--muted)}
.card em{display:block;font-style:normal;font-size:.8rem;font-weight:600;color:var(--accent);margin-top:2px}
.maphint{position:absolute;left:14px;top:12px;font-size:.8rem;color:var(--muted);background:var(--panel);border:1px solid var(--line);border-radius:999px;padding:4px 12px;z-index:2}
#mapmsg{padding:48px 20px;text-align:center;color:var(--muted)}


.pick{margin:0 0 28px}
.pick h2,.maphead{font-size:1.1rem;text-transform:uppercase;color:var(--muted);margin:0 0 10px;letter-spacing:.08em}
.chips{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px;margin:0;padding:0;list-style:none}
.chips a{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--ink);background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:10px 12px;font-weight:600;font-size:1rem;transition:border-color .15s,transform .15s}
.chips a:hover,.chips a:focus-visible{border-color:var(--accent);transform:translateY(-1px)}
.chips svg{width:42px;height:28px;border-radius:3px;border:1px solid var(--line);display:block;flex:none}
.chips span{display:flex;flex-direction:column;line-height:1.25;min-width:0}
.chips small{color:var(--muted);font-weight:400;font-size:.85rem}
.back{display:inline-flex;align-items:center;gap:6px;margin:6px 0 18px;color:var(--muted);text-decoration:none;font-weight:500}
.back:hover{color:var(--accent)}
.chead{display:flex;align-items:center;gap:20px;margin-bottom:22px;flex-wrap:wrap}
.chead svg{width:96px;height:64px;border-radius:5px;border:1px solid var(--line);display:block;flex:none}
.chead h2{font-size:clamp(2.2rem,5vw,3.4rem);text-transform:uppercase}
.chead p{margin:4px 0 0;color:var(--muted)}
/* Folder tabs: the selected tab is the same sheet of paper as the page below it */
.tabs{display:flex;align-items:flex-end;gap:4px;margin:0;padding:0 0 0 12px;overflow-x:auto;scrollbar-width:thin;box-shadow:inset 0 -1px 0 var(--line)}
.tab{appearance:none;flex:none;position:relative;cursor:pointer;display:flex;align-items:center;gap:8px;
  font:600 .95rem var(--font-body);color:var(--muted);white-space:nowrap;
  background:var(--bg);border:1px solid var(--line);border-top:5px solid var(--c);border-bottom:0;
  border-radius:10px 10px 0 0;padding:9px 16px 8px;margin-top:6px;transition:margin-top .15s,color .15s,background .15s}
.tab:hover{color:var(--ink);margin-top:3px}
.tab[aria-selected="true"]{background:var(--panel);color:var(--ink);margin-top:0;padding-top:13px;padding-bottom:10px;z-index:1}
.tab[aria-selected="true"]::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:2px;background:var(--panel)}
.tab:focus-visible{outline:3px solid var(--accent);outline-offset:-3px;z-index:2}
.sheet{background:var(--panel);border:1px solid var(--line);border-top:0;border-radius:0 0 8px 8px;padding:24px;display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:24px 40px}
@media (max-width:760px){.sheet{grid-template-columns:minmax(0,1fr);padding:18px}}
.sheet h3{font-size:1.5rem;margin-bottom:8px;text-transform:uppercase}
.sheet p{margin:0 0 14px}
.sheet ul{margin:0;padding-left:1.1em}
.sheet li{margin-bottom:6px}
.k{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);margin:0 0 4px}
.tip{border-left:4px solid var(--c);background:var(--bg);padding:10px 14px;border-radius:0 6px 6px 0;margin:16px 0 0}
.official{display:inline-block;margin-top:16px;font-weight:600}
.book{border:1px dashed var(--line);border-radius:8px;padding:14px;color:var(--muted);font-size:.9rem;margin-top:18px}
.book b{display:block;color:var(--ink);margin-bottom:2px}
.news-item{display:flex;gap:12px;padding:12px 0;border-bottom:1px solid var(--line)}
.news-item:last-child{border-bottom:0}
.news-item span.t{flex:none;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;background:var(--c);color:var(--bg);border-radius:4px;padding:3px 8px;height:fit-content}
.apps{list-style:none;padding:0;margin:0}
.apps li{display:flex;gap:10px;padding:10px 0;border-bottom:1px solid var(--line);margin:0}
.apps li:last-child{border-bottom:0}
.apps b{display:block}
.apps span{color:var(--muted);font-size:.9rem}
.mapbox{border:1px solid var(--line);border-left:6px solid var(--c);border-radius:6px;padding:12px 14px;margin-top:18px}
.mapbox b{display:block}
.mapbox p{margin:4px 0 8px;font-size:.9rem;color:var(--muted)}
.mapbox a{font-weight:600}
.full{grid-column:1/-1}
.mapbox ul{margin:6px 0 10px;padding-left:1.1em;font-size:.92rem}.mapbox li{margin-bottom:3px}
.note{margin-top:28px;font-size:.85rem;color:var(--muted);max-width:75ch}
@media (prefers-reduced-motion:reduce){.hl,.card{transition:none}}
[hidden]{display:none!important}

/* booking partners, news, verification */
.partners{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0 6px}
.partner{display:inline-flex;align-items:center;gap:4px;background:var(--ink);color:var(--bg);text-decoration:none;font-weight:600;font-size:.9rem;padding:8px 12px;border-radius:6px}
.partner:hover{background:var(--accent)}
.book small{display:block;font-size:.78rem}
.news-item a{color:var(--ink);font-weight:600;text-decoration:none}
.news-item a:hover{color:var(--accent);text-decoration:underline}
.news-item small{display:block;color:var(--muted);font-size:.8rem;margin-top:2px}
.muted{color:var(--muted)}
.verified{margin:14px 0 0;font-size:.85rem;color:var(--muted)}
.verified details{display:inline}
.verified summary{display:inline;cursor:pointer;color:var(--accent);font-weight:500}
.verified ul{margin:8px 0 0;padding-left:1.1em}
.note p{margin:0 0 6px}

/* where to buy, train destinations */
.buybox{margin-top:18px;padding:12px 14px;border-radius:6px;background:var(--bg)}
.buybox ul{margin:0}
.destwrap{border-top:1px solid var(--line);padding-top:20px}
.desthead{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:12px 24px;margin-bottom:6px}
.desthead h3{margin:0}
.dsearch{display:flex;flex-direction:column;gap:4px;min-width:0;flex:0 1 280px}
.dsearch input{font:inherit;font-size:.95rem;padding:8px 10px;border:1px solid var(--line);border-radius:6px;background:var(--panel);color:var(--ink);width:100%}
.dsearch input:focus-visible{outline:3px solid var(--accent);outline-offset:1px}
.dgroup{margin-top:18px}
.dgroup h4{font-family:var(--font-display);font-size:1.15rem;text-transform:uppercase;letter-spacing:.04em;margin:0 0 6px;display:flex;align-items:center;gap:8px}
.dgroup h4 span{font-family:var(--font-body);font-size:.75rem;font-weight:600;background:var(--c);color:var(--bg);border-radius:999px;padding:1px 8px;letter-spacing:0}
.dscroll{overflow-x:auto;border:1px solid var(--line);border-radius:6px}
.dest{width:100%;border-collapse:collapse;font-size:.92rem;min-width:520px}
.dest th,.dest td{text-align:left;padding:8px 12px;border-bottom:1px solid var(--line);vertical-align:top}
.dest thead th{font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);background:var(--bg);font-weight:600}
.dest tbody tr:last-child th,.dest tbody tr:last-child td{border-bottom:0}
.dest tbody th{font-weight:600}
.dest tbody th small{color:var(--muted);font-weight:400}
.dest .num{font-variant-numeric:tabular-nums;white-space:nowrap}
.dnote{display:block;font-size:.78rem;font-weight:400;color:var(--muted)}
.tip .k{display:block;margin-bottom:2px}

/* route hub pages */
.routes{margin:0 0 28px}
.routes h2{font-size:1.1rem;text-transform:uppercase;color:var(--muted);margin:0 0 10px;letter-spacing:.08em}
.routelist,.routebanner{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:10px}
.routecard{display:flex;align-items:center;gap:14px;text-decoration:none;color:var(--ink);background:var(--panel);border:1px solid var(--line);border-left:6px solid var(--train);border-radius:8px;padding:12px 14px;transition:border-color .15s,transform .15s}
.routecard:hover,.routecard:focus-visible{border-color:var(--accent);transform:translateY(-1px)}
.rflags{display:flex;flex:none}
.rflags svg{width:38px;height:26px;border-radius:3px;border:1px solid var(--line);display:block}
.rflags svg+svg{margin-left:-10px}
.rtxt{display:flex;flex-direction:column;min-width:0;line-height:1.25;flex:1}
.rtxt b{font-weight:600}
.rtxt small{color:var(--muted);font-size:.85rem}
.rgo{font-size:.85rem;font-weight:600;color:var(--accent);white-space:nowrap}
.routebanner{margin:0 0 18px;align-items:center}
.routebanner>.k{grid-column:1/-1;margin:0}
.dguide{display:block;font-size:.78rem;font-weight:600;margin-top:2px;color:var(--accent)}

#routepage{max-width:880px}
.rhead h1{font-size:clamp(2rem,5vw,3.2rem);text-transform:none;line-height:1.05;margin:4px 0 14px}
.rline{display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px;margin:0 0 10px;font-size:1.05rem}
.rflag svg{width:34px;height:23px;border-radius:3px;border:1px solid var(--line);display:block}
.rsum{color:var(--muted);max-width:62ch;margin:0 0 20px}
.rstats{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1px;background:var(--line);border:1px solid var(--line);border-radius:8px;overflow:hidden;margin-bottom:22px}
.rstats div{background:var(--panel);padding:14px 16px;display:flex;flex-direction:column;gap:2px;min-width:0}
.rstats span{font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}
.rstats b{font-family:var(--font-display);font-size:1.3rem;line-height:1.15}
.rquick{background:var(--panel);border:1px solid var(--line);border-top:6px solid var(--train);border-radius:8px;padding:18px 20px;margin-bottom:22px}
.rquick h2{font-size:1.3rem;text-transform:uppercase;margin-bottom:10px}
.rquicklinks{display:flex;flex-wrap:wrap;gap:8px 18px;align-items:center}
.rquicklinks .official{margin:0}
.rquick .muted{margin:10px 0 0;font-size:.85rem}
.rnav{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px}
.rnav a{font-size:.85rem;font-weight:500;text-decoration:none;color:var(--ink);border:1px solid var(--line);background:var(--panel);border-radius:999px;padding:5px 12px}
.rnav a:hover{border-color:var(--accent);color:var(--accent)}
.rsec{padding-top:28px;scroll-margin-top:16px}
.rsec h2{font-size:clamp(1.5rem,3.4vw,2rem);text-transform:uppercase;margin-bottom:12px;padding-bottom:8px;border-bottom:3px solid var(--train)}
.rsec p{margin:0 0 14px;max-width:70ch}
.rlist{margin:0 0 14px;padding-left:1.2em;max-width:70ch}
.rlist li{margin-bottom:6px}
.rtable{width:100%;border-collapse:collapse;font-size:.93rem;min-width:560px;margin:0}
.rtable th,.rtable td{text-align:left;padding:9px 12px;border-bottom:1px solid var(--line);vertical-align:top}
.rtable thead th{font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);background:var(--bg);font-weight:600}
.rtable tbody th{font-weight:600;white-space:nowrap}
.rtable tbody tr:last-child th,.rtable tbody tr:last-child td{border-bottom:0}
.rsec .dscroll{margin:0 0 16px}
.rtip{margin:6px 0 16px;max-width:70ch}
.rsteps{counter-reset:s;list-style:none;margin:0 0 16px;padding:0;display:grid;gap:10px;max-width:70ch}
.rsteps li{counter-increment:s;display:grid;grid-template-columns:34px 1fr;gap:2px 12px;align-items:start}
.rsteps li::before{content:counter(s);grid-row:1/3;width:30px;height:30px;border-radius:50%;background:var(--train);color:var(--bg);font-weight:700;display:flex;align-items:center;justify-content:center;font-size:.9rem}
.rsteps b{font-weight:600}
.rsteps span{color:var(--muted)}
.faq{border:1px solid var(--line);border-radius:6px;background:var(--panel);margin-bottom:8px}
.faq summary{cursor:pointer;font-weight:600;padding:12px 14px;list-style-position:inside}
.faq p{margin:0;padding:0 14px 14px}
.rsources{margin-top:26px;font-size:.88rem;color:var(--muted)}
.rsources summary{cursor:pointer;color:var(--accent);font-weight:500}
.rsources ul{margin:8px 0 0;padding-left:1.1em}
.rcities{margin:20px 0 0;display:flex;flex-wrap:wrap;gap:6px 18px}
#route .verified{margin-top:26px}
.rtip{--c:var(--train)}

/* checked label, tools, related blocks */
.checked{display:inline-block;font-size:.78rem;font-weight:600;color:var(--tram);border:1px solid currentColor;border-radius:999px;padding:1px 10px;margin-left:6px;white-space:nowrap}
.rmeta{display:flex;flex-wrap:wrap;gap:8px 12px;align-items:center;margin:0 0 18px}
.rmeta .checked{margin-left:0}
.tools{display:flex;flex-wrap:wrap;gap:8px}
.tool{background:var(--panel);color:var(--ink);border:1px solid var(--line);padding:6px 12px;font-size:.85rem}
.tool:hover{background:var(--panel);border-color:var(--accent);color:var(--accent)}
.chead{flex-wrap:wrap}
.chead .tools{margin-left:auto}
.golinks{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:10px}
.golinks li{background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:12px 14px;display:flex;flex-wrap:wrap;gap:4px 14px;align-items:baseline}
.golinks li b{flex:1 0 100%;font-family:var(--font-display);font-size:1.15rem}
.golinks a{font-size:.9rem;font-weight:500}
.related .routelist{margin-top:4px}

@media print{
  .top,.back,.stage,.pick,.routes,.maphead,.tabs,.tools,.rnav,footer.note,.book,#routelinks,#intro{display:none!important}
  body{background:#fff;color:#000;padding:0}
  .sheet,.rquick,.rstats div,.faq{background:#fff;border-color:#999}
  details.faq>*{display:block}
  a{color:#000}
  .rsec{break-inside:avoid-page}
}

.stage{margin-bottom:0}

/* intro band: EU blue with a ring of gold stars */
.intro{position:relative;overflow:hidden;background:var(--hero-bg);border-radius:10px;padding:clamp(28px,5vw,52px) clamp(20px,4vw,48px);margin:0 0 28px;isolation:isolate}
.intro h1{color:var(--hero-head);position:relative}
.intro p{color:var(--hero-text);font-size:clamp(1.1rem,1.7vw,1.3rem);line-height:1.6;max-width:50ch;position:relative}
.intro{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr) auto;align-items:center}
.intro .stars{position:static;z-index:auto;width:clamp(120px,14vw,170px);height:auto;transform:none;fill:var(--star);opacity:1;pointer-events:none;order:3}
@media (max-width:900px){.intro{grid-template-columns:minmax(0,1fr)}.intro .stars{width:110px;justify-self:start}}

/* drop-down bars on the home page */
.drop{background:var(--panel);border:1px solid var(--line);border-radius:8px;margin:12px 0 0}
.drop.below{margin-top:28px}
.drop>summary{display:flex;align-items:center;gap:12px;cursor:pointer;list-style:none;padding:14px 18px;font-family:var(--font-display);font-weight:700;font-size:1.25rem;text-transform:uppercase;letter-spacing:.06em;color:var(--ink)}
.drop>summary::-webkit-details-marker{display:none}
.drop>summary small{font-family:var(--font-body);font-size:.8rem;font-weight:500;text-transform:none;letter-spacing:0;color:var(--muted);border:1px solid var(--line);border-radius:999px;padding:1px 10px}
.drop>summary::after{content:"";margin-left:auto;width:9px;height:9px;border-right:2px solid var(--muted);border-bottom:2px solid var(--muted);transform:rotate(45deg) translateY(-2px);transition:transform .15s}
.drop[open]>summary::after{transform:rotate(-135deg)}
.drop>summary:hover span{color:var(--accent)}
.drop[open]>summary{border-bottom:1px solid var(--line)}
.drop>ul{padding:16px 18px 18px}
.drop.pick{margin-bottom:0}
@media (prefers-reduced-motion:reduce){.drop>summary::after{transition:none}}
.flinks a{color:inherit}

.linkbtn{background:none;border:0;padding:0;font:inherit;color:inherit;text-decoration:underline;cursor:pointer}
.consent{position:fixed;left:0;right:0;bottom:0;z-index:50;display:flex;gap:16px;align-items:center;justify-content:space-between;flex-wrap:wrap;
  padding:14px max(16px,env(safe-area-inset-right,0px)) calc(14px + env(safe-area-inset-bottom,0px)) max(16px,env(safe-area-inset-left,0px));
  background:var(--panel);color:var(--ink);border-top:1px solid var(--line);box-shadow:0 -6px 20px rgba(0,0,0,.12)}
.consent p{margin:0;flex:1 1 380px;min-width:0;font-size:.9rem;max-width:75ch}
.consent a{color:inherit}
.consent-btns{display:flex;gap:10px}
.consent-btns button{font:inherit;font-weight:600;padding:9px 20px;border-radius:8px;border:2px solid var(--brand-ink);cursor:pointer;background:var(--panel);color:var(--ink)}
.consent-btns button[data-c="yes"]{background:var(--brand-ink);color:var(--panel)}
@media print{.consent{display:none!important}}

.rbook{display:flex;flex-wrap:wrap;gap:10px 14px;align-items:center;background:var(--bg);border:1px solid var(--line);border-left:4px solid var(--accent);border-radius:8px;padding:12px 14px;margin:16px 0}
.rbook b{flex:1 1 100%}
.rbookbtns{display:flex;flex-wrap:wrap;gap:8px}
.rbook small{flex:1 1 100%;color:var(--muted);font-size:.8rem}
.rsec.things h2{border-bottom-color:var(--tips)}
.places{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px;margin:6px 0 16px}
.place{background:var(--panel);border:1px solid var(--line);border-top:4px solid var(--tips);border-radius:8px;padding:14px 16px;min-width:0}
.place h3{margin:0 0 6px;font-size:1.1rem}
.place p{margin:0 0 10px;font-size:.95rem;max-width:none}
.pmeta{list-style:none;margin:0;padding:0;display:grid;gap:4px;font-size:.85rem;color:var(--muted)}
.pmeta b{color:var(--ink);font-weight:600}
@media print{.rbook{display:none!important}}
.rbooktxt{flex:1 1 100%;font-size:.95rem}

.mlines{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:12px;margin:12px 0}
.mline{display:flex;gap:12px;align-items:flex-start;background:var(--panel);border:1px solid var(--line);border-left:6px solid var(--lc);border-radius:8px;padding:10px 12px;min-width:0}
.lbadge{flex:none;width:34px;height:34px;border-radius:50%;background:var(--lc);color:var(--li);display:grid;place-items:center;font-weight:700;font-family:var(--font-display);font-size:1.2rem}
.mline>div{min-width:0}
.lstops small{color:var(--muted)}
.mapbox .lstops,.mapbox .lhubs{list-style:none;padding:0;margin-left:0}
.mapbox .lstops{margin-top:6px;display:flex;flex-wrap:wrap;gap:6px}
.mapbox .lstops li{background:var(--bg);border:1px solid var(--line);border-radius:999px;padding:1px 9px;font-size:.8rem;line-height:1.5}
.mapbox .lhubs{margin-top:6px;margin-bottom:12px;display:flex;flex-wrap:wrap;gap:6px 22px}
.mapbox .lhubs li{display:block}
.mapbox .mline b{font-size:.95rem}

.lbadge.long{width:auto;min-width:34px;padding:0 7px;border-radius:17px;font-size:.78rem;white-space:nowrap}

.static-content{max-width:75ch;margin:0 auto;padding:16px}
.js .static-content{display:none}
.legal ul{padding-left:1.2em}.legal .tip,.legal .book{margin:14px 0}.legal table{border-collapse:collapse}
