:root{--bg:#F5F6F2;--card:#FFFFFF;--line:#D9DDD3;--ink:#101E1A;--soft:#55645E;--accent:#D6361F;--accent2:#12372E;--gold:#E9B872;--danger:#A8281B;--board:#0D2A23;--f-display:'Archivo';--f-body:'Instrument Sans';--f-mono:'DM Mono'}
*{box-sizing:border-box;margin:0}
html{scroll-behavior:smooth;scroll-padding-top:70px}
body{font-family:var(--f-body),system-ui,sans-serif;background:var(--bg);color:var(--ink);line-height:1.6;font-size:17px;-webkit-font-smoothing:antialiased}
img{max-width:100%;height:auto;display:block}
a{color:var(--accent2)}
:focus-visible{outline:3px solid var(--accent);outline-offset:2px}
h1,h2,h3{font-family:var(--f-display),system-ui,sans-serif;line-height:1.08;letter-spacing:-.015em;font-stretch:112%}
main{max-width:1160px;margin:0 auto;padding:0 20px 90px}

/* Perron-Schild: Bahnsteigtafel mit Nummer */
.sign{display:inline-flex;flex-direction:column;align-items:center;justify-content:center;background:#fff;color:#111;border-radius:5px;box-shadow:0 0 0 2px #111;min-width:2.1em;padding:.18em .4em .22em;font-family:var(--f-display),sans-serif;font-weight:800;line-height:1;flex:none;font-stretch:100%}
.sign i{font-style:normal;font-family:var(--f-body),sans-serif;font-weight:600;font-size:.34em;letter-spacing:.02em;margin-bottom:.2em;color:#444}
.sign b{font-size:1em}
.sign.lg{font-size:30px}

.announce{background:var(--board);color:#cfe0d8;font-size:13px;padding:7px 20px;display:flex;gap:4px 26px;flex-wrap:wrap;justify-content:center}
.announce span:first-child{color:var(--gold);font-weight:600}
.top{position:sticky;top:0;z-index:20;background:var(--card);box-shadow:0 1px 0 var(--line);display:flex;align-items:center;gap:22px;padding:10px 20px;flex-wrap:wrap}
.logo{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--ink);font-family:var(--f-display);font-weight:800;font-size:22px;font-stretch:115%}
.top nav{display:flex;gap:4px 20px;flex-wrap:wrap;margin-left:auto}
.top nav a{color:var(--ink);text-decoration:none;font-weight:500;font-size:15px;padding:4px 0;border-bottom:2px solid transparent}
.top nav a:hover{border-color:var(--accent)}

/* Hero: dunkle Tafel mit Kaffeeringen */
.hero{display:grid;grid-template-columns:1.15fr .85fr;gap:40px;align-items:center;margin-top:22px;padding:52px 44px;background:var(--accent2);color:#fff;border-radius:6px}
.hl h1{font-size:clamp(34px,5vw,60px);font-weight:900;text-wrap:balance;font-stretch:118%}
.hl p{margin:20px 0 28px;max-width:52ch;color:#d3e4dc;font-size:18px}
.cta{display:flex;gap:12px;flex-wrap:wrap}
.spot{position:relative;display:block;text-decoration:none;color:inherit;background:#fff;border-radius:4px;overflow:hidden;color:var(--ink)}
.rings{position:absolute;inset:0;background:radial-gradient(circle at 62% 38%,transparent 0 38%,rgba(233,184,114,.55) 38.4% 39.6%,transparent 40% 49%,rgba(233,184,114,.35) 49.4% 50.2%,transparent 50.6% 60%,rgba(233,184,114,.2) 60.4% 61%,transparent 61.4%)}
.shot{position:relative;padding:26px 26px 0}
.shot img{width:100%;aspect-ratio:1;object-fit:contain}
.cap{position:relative;display:flex;align-items:center;gap:12px;padding:16px 20px;background:var(--board);color:#fff;margin-top:18px}
.cap>span:not(.sign){flex:1;font-weight:500;line-height:1.3;font-size:15px}
.cap>b{font-family:var(--f-mono),monospace;font-size:22px;font-weight:500;color:var(--gold)}

/* Buttons */
.buy{display:inline-block;background:var(--accent);color:#fff;text-decoration:none;font-weight:700;font-size:15px;padding:12px 20px;border-radius:4px;text-align:center;transition:background .15s}
.buy:hover{background:#b32b17}
.hero .buy{background:var(--gold);color:var(--board)}
.hero .buy:hover{background:#f3c98d}
.btn2{display:inline-block;color:#fff;text-decoration:none;font-weight:600;padding:12px 18px;border-radius:4px;box-shadow:inset 0 0 0 2px rgba(255,255,255,.55)}
.btn2:hover{box-shadow:inset 0 0 0 2px #fff}

/* Linien (Kategorien) */
.lines{margin-top:30px}
.bands{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px}
.band{--lc:var(--accent2);display:grid;grid-template-columns:auto 1fr auto;grid-template-areas:"i b e" "i s s";gap:0 14px;align-items:center;padding:14px 16px;text-decoration:none;color:var(--ink);background:var(--card);border-radius:4px;box-shadow:inset 6px 0 0 var(--lc)}
.band.l1{--lc:#D6361F}.band.l2{--lc:#2C6E91}.band.l3{--lc:#6E8B3D}.band.l4{--lc:#B8862F}
.band i{grid-area:i;font-style:normal;font-family:var(--f-display);font-weight:800;background:var(--lc);color:#fff;border-radius:50%;width:38px;height:38px;display:grid;place-items:center;font-size:14px;margin-left:8px}
.band b{grid-area:b;font-family:var(--f-display);font-size:18px;font-stretch:108%}
.band span{grid-area:s;color:var(--soft);font-size:14px}
.band em{grid-area:e;font-style:normal;font-family:var(--f-mono),monospace;font-size:13px;color:var(--soft)}
.band:hover{background:#fff;box-shadow:inset 6px 0 0 var(--lc),0 6px 18px rgba(16,30,26,.12)}

/* Bereiche */
.blk{margin-top:58px}
.bh{display:flex;justify-content:space-between;align-items:baseline;gap:14px;flex-wrap:wrap}
.blk h2,.blk .bh h2{font-size:clamp(25px,3.2vw,36px);font-weight:900}
.bh a{font-weight:600;font-size:15px}
.sub{color:var(--soft);margin:6px 0 20px;max-width:70ch}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:22px 18px}
.card{display:flex;flex-direction:column;gap:8px}
.card .cl{text-decoration:none;color:inherit;flex:1}
.card h3{font-size:16px;font-weight:600;line-height:1.35;margin-top:10px;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;font-family:var(--f-body);letter-spacing:0;font-stretch:100%}
.ph{position:relative;background:#fff;border-radius:4px;overflow:hidden}
.ph img{width:100%;aspect-ratio:1;object-fit:contain}
.off{position:absolute;left:0;top:10px;background:var(--accent);color:#fff;font-weight:700;font-size:12px;padding:3px 10px 3px 8px;border-radius:0 3px 3px 0}
.meta{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}
.meta b{font-family:var(--f-mono),monospace;font-weight:500;font-size:20px}
.meta s{color:var(--soft);font-size:14px}
.meta span{margin-left:auto;font-size:13px;color:var(--soft)}
.card .buy{width:100%}

/* Abfahrtstafel */
.board{list-style:none;padding:0;background:var(--board);border-radius:6px;padding:6px 18px;color:#e9f1ed}
.hrow{display:grid;grid-template-columns:auto 72px 1fr auto;gap:16px;align-items:center;padding:14px 0;border-bottom:1px solid rgba(255,255,255,.12);animation:flip .5s both;transform-origin:50% 0}
.hrow:last-child{border-bottom:0}
.hrow:nth-child(2){animation-delay:.07s}.hrow:nth-child(3){animation-delay:.14s}.hrow:nth-child(4){animation-delay:.21s}.hrow:nth-child(5){animation-delay:.28s}.hrow:nth-child(n+6){animation-delay:.35s}
@keyframes flip{from{transform:perspective(500px) rotateX(-80deg);opacity:0}to{transform:none;opacity:1}}
.hrow .sign{font-size:20px}
.hrow .th img{width:72px;height:72px;object-fit:contain;background:#fff;border-radius:4px}
.hrow .t{color:#fff;font-weight:600;text-decoration:none;line-height:1.3;display:block;margin-bottom:4px}
.hrow .t:hover{text-decoration:underline}
.hrow .meta b{color:var(--gold)}
.hrow .meta s,.hrow .meta span{color:#9db5aa;margin-left:0}
.hrow .meta span{font-family:var(--f-mono),monospace}

.chips{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px}
.chips a{background:var(--card);border-radius:999px;padding:8px 16px;text-decoration:none;color:var(--ink);font-weight:600;box-shadow:inset 0 0 0 1.5px var(--line)}
.chips a:hover{box-shadow:inset 0 0 0 1.5px var(--accent2)}
.gcards{list-style:none;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px;margin-top:16px}
.gcards a{display:block;height:100%;background:var(--card);border-top:4px solid var(--accent2);border-radius:3px;padding:16px 18px;text-decoration:none;color:var(--ink)}
.gcards b{display:block;font-family:var(--f-display);font-size:18px;line-height:1.25;font-stretch:108%}
.gcards span{display:block;margin-top:8px;color:var(--soft);font-size:14.5px}
.gcards a:hover{border-top-color:var(--accent)}

/* Innenseiten */
.crumb{font-size:14px;color:var(--soft);padding:22px 0 8px}
.ch{font-size:clamp(30px,4.4vw,48px);font-weight:900;max-width:24ch;text-wrap:balance}
.cintro{max-width:70ch;margin:16px 0 24px}
.cintro p{margin-bottom:12px}
.upd{font-size:13px;color:var(--soft)}
.pick{display:grid;grid-template-columns:120px 1fr auto;gap:18px;align-items:center;background:var(--card);border-radius:4px;padding:16px;margin-bottom:26px;box-shadow:inset 6px 0 0 var(--accent)}
.pick img{border-radius:4px;background:#fff}
.pick small{display:flex;align-items:center;gap:8px;font-weight:600;color:var(--accent2);margin-bottom:6px;font-size:14px}
.pick .sign{font-size:15px}
.pick .t{font-weight:700;color:var(--ink);text-decoration:none;display:block;margin-bottom:4px}

.prod{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:36px;margin-top:8px}
.gal .ph{border-radius:4px}
.thumbs{display:flex;gap:10px;margin-top:12px;flex-wrap:wrap}
.thumbs button{border:0;border-radius:4px;padding:0;background:#fff;cursor:pointer;overflow:hidden;box-shadow:0 0 0 1.5px var(--line)}
.pi h1{font-size:clamp(26px,3.4vw,38px);font-weight:900}
.badge{display:inline-flex;align-items:center;gap:8px;font-weight:600;font-size:14px;margin-bottom:12px;color:var(--accent2)}
.badge .sign{font-size:13px}
.price{font-family:var(--f-mono),monospace;font-size:36px;font-weight:500;margin:16px 0 8px}
.price s{font-size:20px;color:var(--soft)}
.facts{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:20px}
.facts span{background:var(--card);border-radius:3px;padding:4px 12px;font-size:14px;font-weight:500;box-shadow:inset 0 0 0 1.5px var(--line)}
.pi .buy{font-size:17px;padding:15px 26px}
.pi .upd{margin-top:12px}
.toc{background:var(--card);border-radius:4px;padding:16px 22px;margin:34px 0 10px;max-width:760px;box-shadow:inset 6px 0 0 var(--gold)}
.toc ol{padding-left:20px;margin-top:6px}
.toc a{text-decoration:none}
.post{max-width:760px;margin-top:20px}
.post p{margin-bottom:16px;font-size:18px;line-height:1.75}
.post .lead{font-size:20px;font-weight:500}
.post h2{font-size:clamp(23px,3vw,30px);margin:38px 0 12px;font-weight:900}
.pc{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:28px 0}
.pc>div{border-radius:4px;padding:16px 20px;background:var(--card)}
.pc .pro{border-top:6px solid #2F8F5B}
.pc .con{border-top:6px solid var(--danger)}
.pc h3{font-size:18px;margin-bottom:8px}
.pc ul{padding-left:18px}
.faq{margin:34px 0}
.faq h2{font-size:28px;margin-bottom:14px}
.faq details{background:var(--card);border-radius:4px;padding:0 18px;margin-bottom:8px}
.faq summary{cursor:pointer;font-weight:600;padding:14px 0;list-style:none}
.faq summary::-webkit-details-marker{display:none}
.faq summary::before{content:"+";display:inline-block;width:1.3em;color:var(--accent);font-weight:800}
.faq details[open] summary::before{content:"\2212"}
.faq details p{margin:0 0 14px;font-size:16px}
.post>.buy{margin-top:8px}

.bar{display:none}
footer{background:var(--board);color:#a9c0b5;padding:34px 20px 40px;font-size:14px}
footer p{max-width:900px;margin:0 auto 10px}
footer a{color:var(--gold)}
.disc{font-size:13px;color:var(--soft);border-left:3px solid var(--gold);padding:4px 10px;margin:10px 0}

@media(max-width:820px){
 .hero,.prod{grid-template-columns:1fr}
 .hero{padding:30px 20px;margin-top:0;border-radius:0;margin-inline:-20px}
 .hrow{grid-template-columns:auto 1fr;grid-template-areas:"p t" "b b"}
 .hrow .sign{grid-area:p}.hrow .th{display:none}.hrow>div{grid-area:t}.hrow .buy{grid-column:1/-1}
 .board{padding:4px 14px}
 .pick{grid-template-columns:90px 1fr}.pick .buy{grid-column:1/-1}
 .pc{grid-template-columns:1fr}
 .announce{flex-wrap:nowrap;overflow:hidden;white-space:nowrap;padding:6px 14px;font-size:12px}
 .announce span:nth-child(n+3){display:none}
 .top{position:static;gap:6px 14px;padding:8px 14px}
 .top nav{margin-left:0;width:100%;flex-wrap:nowrap;overflow-x:auto;gap:2px 18px;scrollbar-width:none;-webkit-overflow-scrolling:touch}
 .top nav::-webkit-scrollbar{display:none}
 .top nav a{white-space:nowrap}
 body.pp{padding-bottom:70px}
 .bar{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:30;background:var(--card);box-shadow:0 -1px 0 var(--line);padding:10px 14px;gap:14px;align-items:center;justify-content:space-between}
 .bar b{font-family:var(--f-mono),monospace;font-weight:500;font-size:20px}
 .bar .buy{flex:1;padding:12px 10px}
}
@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important;scroll-behavior:auto!important}}
