:root{--bg:#f4f5f3;--karte:#ffffff;--text:#263238;--grau:#607089;--dunkel:#2f3e46;--akzent:#52796f;--akzent-d:#354f52;--linie:#e4e7e2;--schatten:0 6px 20px rgba(40,55,60,.09)}
*{box-sizing:border-box}
body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;background:var(--bg);color:var(--text);line-height:1.55;font-size:16px}
a{color:inherit}
main{max-width:1040px;margin:0 auto;padding:0 16px 8px}
.kopf{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:12px 16px;background:var(--dunkel);color:#fff}
.marke{font-weight:800;font-size:19px;text-decoration:none;color:#fff;display:inline-flex;align-items:center;gap:8px}
.marke-sub{font-weight:600;color:#a9c5bd}
.hauptnav{display:flex;gap:8px;flex-wrap:wrap}
.hauptnav a{text-decoration:none;font-weight:700;font-size:14px;padding:7px 12px;border-radius:999px;background:rgba(255,255,255,.12);color:#fff}
.hauptnav a:active{transform:scale(.97)}
.hero{text-align:center;padding:30px 6px 8px}
.hero h1{font-size:28px;line-height:1.2;margin:.2em 0 .3em}
.hero-text{max-width:660px;margin:0 auto 22px;color:var(--grau)}
.hero-kacheln{display:grid;grid-template-columns:1fr;gap:14px;max-width:720px;margin:0 auto}
@media(min-width:620px){.hero-kacheln{grid-template-columns:1fr 1fr 1fr}}
.hero-kachel{display:flex;flex-direction:column;align-items:center;gap:4px;text-decoration:none;color:var(--text);padding:24px 14px;border-radius:18px;background:var(--karte);box-shadow:var(--schatten);font-weight:800;border:1px solid var(--linie)}
.hero-kachel span{font-size:36px}
.hero-kachel b{font-size:15px;text-align:center}
.hero-kachel small{font-weight:600;color:var(--akzent);font-size:12.5px}
.hero-kachel:active{transform:scale(.98)}
.info,.text{max-width:760px;margin:26px auto;background:var(--karte);border:1px solid var(--linie);border-radius:16px;padding:18px 20px}
.info h2{margin:.1em 0 .4em}
.rubrik-kopf{text-align:center;padding:26px 6px 4px}
.rubrik-kopf h1{font-size:25px;margin:.1em 0 .25em}
.rubrik-kopf p{color:var(--grau);max-width:660px;margin:0 auto}
.raster{display:grid;grid-template-columns:1fr;gap:16px;padding:18px 0}
@media(min-width:620px){.raster{grid-template-columns:1fr 1fr}}
@media(min-width:960px){.raster{grid-template-columns:1fr 1fr 1fr}}
.karte{background:var(--karte);border:1px solid var(--linie);border-radius:16px;padding:16px 17px;box-shadow:var(--schatten);display:flex;flex-direction:column;gap:7px}
.karte-kopf{display:flex}
.badge{font-size:11px;font-weight:800;border-radius:999px;padding:3px 10px;color:#fff;background:var(--akzent)}
.badge-festungen{background:#6d597a}.badge-weinkeller{background:#8a5a44}.badge-bunker{background:#39606b}
.karte h3{font-size:16.5px;margin:0;line-height:1.3}
.adresse{margin:0;font-size:13.5px;color:var(--akzent-d);font-weight:600}
.adresse a{text-decoration:none}
.adresse a:hover{text-decoration:underline}
.kurz{margin:2px 0 0;font-size:14px;color:#3f4b52}
.quelle{margin-top:auto;padding-top:6px;text-decoration:none;font-weight:700;color:var(--akzent-d);font-size:13.5px}
.quelle:hover{text-decoration:underline}
.hinweis{text-align:center;color:var(--grau);font-size:12.5px;max-width:760px;margin:6px auto 0}
.text h1{font-size:24px}.text h2{font-size:18px;margin-top:1.2em}
.text a{color:var(--akzent-d)}
.mini-fuss{text-align:center;font-size:12.5px;line-height:1.8;color:var(--grau);padding:26px 16px 34px;border-top:1px solid var(--linie);margin-top:22px}
.mini-fuss nav{display:inline-flex;flex-wrap:wrap;justify-content:center;align-items:center;column-gap:.9em;row-gap:.2em}
.mini-fuss a{color:var(--grau);text-decoration:none}
.mini-fuss a:hover{color:var(--text);text-decoration:underline}
.mini-fuss nav>*+*::before{content:"\00b7";margin-right:.9em;color:#c2ccc6}
.mini-fuss p{margin:8px 0 0}
.karte-sektion{max-width:1040px;margin:18px auto 10px;background:var(--karte);border:1px solid var(--linie);border-radius:16px;padding:18px 20px;text-align:center}
.karte-sektion h1{font-size:26px;line-height:1.2;margin:.1em 0 .3em}
.karte-text{color:var(--grau);font-size:14px;margin:0 auto 12px;max-width:720px}
.karte-box{height:480px;margin-top:4px;border-radius:14px;overflow:hidden;border:1px solid var(--linie);background:#e9edea}
@media(max-width:620px){.karte-box{height:380px}}
.formular{display:flex;flex-direction:column;gap:12px;max-width:560px;margin:10px 0 26px}
.formular label{font-weight:700;font-size:14px}
.formular input,.formular select,.formular textarea{width:100%;margin-top:5px;padding:10px 12px;border:1px solid var(--linie);border-radius:10px;font:inherit;background:#fff;color:var(--text)}
.formular textarea{resize:vertical}
.formular .check{font-weight:500;font-size:13px;display:flex;gap:8px;align-items:flex-start;color:#3f4b52}
.formular .check input{width:auto;margin-top:3px}
.formular .hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.btn{align-self:flex-start;font:inherit;font-weight:800;cursor:pointer;border:0;border-radius:999px;padding:11px 24px;background:var(--akzent-d);color:#fff;text-decoration:none;display:inline-block}
.btn:active{transform:scale(.98)}
.meldung{max-width:620px;margin:40px auto 10px;padding:18px 20px;border-radius:14px;font-size:16px;text-align:center}
.meldung.ok{background:#e4f2ec;color:#2c5a48;border:1px solid #bfe0d2}
.meldung.fehler{background:#fbe7e7;color:#8a2a2a;border:1px solid #f0c7c7}
