/* Presivo — scaffold base styles (replace with Bootstrap override + theme) */
:root { --max: 1100px; --gap: 1.25rem; }
* { box-sizing: border-box; }
body { margin: 0; font-family: system-ui, sans-serif; line-height: 1.6; color: #1a1a1a; }
body.has-takeover { padding-top: 0; }
.skip-link { position: absolute; left: -999px; }
.skip-link:focus { left: 1rem; top: 1rem; background: #fff; padding: .5rem 1rem; z-index: 10; }

.site-header, .site-footer { max-width: var(--max); margin: 0 auto; padding: 1rem; display: flex; gap: var(--gap); align-items: center; justify-content: space-between; }
.brand { font-weight: 700; text-decoration: none; color: inherit; }
nav a { margin-right: 1rem; text-decoration: none; color: inherit; }

main { max-width: var(--max); margin: 0 auto; padding: 1rem; }
.layout { display: grid; grid-template-columns: minmax(0,1fr) 300px; gap: var(--gap); }
@media (max-width: 800px) { .layout { grid-template-columns: 1fr; } }

.teaser { padding: .75rem 0; border-bottom: 1px solid #eee; }
.teaser h2 { margin: .25rem 0; }
.teaser__section { font-size: .8rem; text-transform: uppercase; color: #666; }

.kicker { color: #b00; font-weight: 600; margin: 0; }
.standfirst { font-size: 1.15rem; color: #333; }
.byline { color: #666; font-size: .9rem; display: flex; gap: 1rem; }
.cover img { max-width: 100%; height: auto; border-radius: 8px; }
.credit { font-size: .8rem; color: #888; margin-right: 1rem; }

/* Disclosure for advertorials (legal: Anzeige) */
.disclosure { background: #f3f3f3; border-left: 4px solid #999; padding: .4rem .75rem; font-size: .85rem; text-transform: uppercase; letter-spacing: .03em; }
.tag--ad { background: #f3f3f3; color: #555; font-size: .7rem; padding: 1px 6px; border-radius: 4px; text-transform: uppercase; }

/* Ad slots */
.ad { display: block; text-align: center; margin: 1rem auto; position: relative; }
.ad__label { display: block; font-size: .65rem; color: #999; text-transform: uppercase; letter-spacing: .05em; }
.ad__link { display: inline-block; }
.ad__placeholder { display: inline-flex; align-items: center; justify-content: center; min-width: 300px; min-height: 90px; background: #fafafa; border: 1px dashed #ccc; color: #aaa; }

/* Background takeover (wallpaper) */
.takeover__hit { position: fixed; inset: 0 0 auto 0; height: 100vh; z-index: -1; display: block; }

/* ---- E-paper ---- */
.epaper-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(180px,1fr)); gap:1.25rem; margin-top:1rem; }
.epaper-cover { text-decoration:none; color:inherit; display:flex; flex-direction:column; gap:.5rem; }
.epaper-cover__img { position:relative; aspect-ratio:1/1.414; background:#eee; border:1px solid #ddd; border-radius:6px; overflow:hidden; display:flex; align-items:center; justify-content:center; }
.epaper-cover__img img { width:100%; height:100%; object-fit:cover; }
.epaper-cover__ph { color:#bbb; font-weight:700; }
.epaper-lock { position:absolute; top:.4rem; right:.4rem; background:#000a; color:#fff; border-radius:50%; width:1.6rem; height:1.6rem; display:flex; align-items:center; justify-content:center; font-size:.9rem; }
.epaper-cover__meta { display:flex; flex-direction:column; line-height:1.3; }
.epaper-cover__meta .muted { color:#888; font-size:.8rem; }

.epaper-head { display:flex; align-items:flex-start; justify-content:space-between; gap:1rem; flex-wrap:wrap; margin-top:1rem; }
.epaper-pages { display:grid; grid-template-columns:repeat(auto-fill,minmax(220px,1fr)); gap:1.25rem; margin-top:1.25rem; }
.epaper-page { margin:0; }
.epaper-page img { width:100%; height:auto; border:1px solid #ddd; border-radius:4px; box-shadow:0 2px 8px #0001; }
.epaper-page figcaption { text-align:center; color:#888; font-size:.8rem; margin-top:.25rem; }
.epaper-gate { margin-top:1.5rem; padding:1.25rem; background:#f3f6fb; border:1px solid #d6e0f0; border-radius:10px; text-align:center; }
.epaper-gate .btn { margin:.25rem; }
.muted { color:#888; }

/* ---- Section / region fronts ---- */
.front-head { margin: 1rem 0; }
.front-head .lead, .lead { color: #555; font-size: 1.1rem; }
.chips { display: flex; flex-wrap: wrap; gap: .5rem; margin: 0 0 1.25rem; }
.chip { padding: .3rem .75rem; border: 1px solid #ddd; border-radius: 999px; text-decoration: none; color: #444; background: #fff; font-size: .9rem; }
.chip:hover { background: #f3f3f3; }
.teaser { display: grid; grid-template-columns: 1fr; }
.teaser__img { display: block; margin-bottom: .5rem; }
.teaser__img img { width: 100%; height: auto; border-radius: 6px; aspect-ratio: 16/9; object-fit: cover; }
.teaser a { text-decoration: none; color: inherit; }
.pager { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin: 2rem 0; }
.pager a { text-decoration: none; color: var(--brand, #0a4d8c); font-weight: 600; }
.pager__pos { color: #888; font-size: .9rem; }
