/* Kaufring Weil am Rhein – Nachbau der Wix-Seite (Classic Editor, 980/1150-px-Raster) mit echtem Handy-Layout.
   Markenblau #16479D, Poppins 600/200 (Überschriften), Nunito Sans 300/800 als freier Ersatz für Avenir Light/Heavy. */
@font-face { font-family: 'Poppins'; font-weight: 600; font-display: swap; src: url('/assets/fonts/poppins-600-latin.woff2') format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'Poppins'; font-weight: 600; font-display: swap; src: url('/assets/fonts/poppins-600-latin-ext.woff2') format('woff2'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+1E00-1E9F, U+1EF2-1EFF, U+20A0-20AB, U+20AD-20C0, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: 'Poppins'; font-weight: 200; font-display: swap; src: url('/assets/fonts/poppins-200-latin.woff2') format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'Poppins'; font-weight: 200; font-display: swap; src: url('/assets/fonts/poppins-200-latin-ext.woff2') format('woff2'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+1E00-1E9F, U+1EF2-1EFF, U+20A0-20AB, U+20AD-20C0, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: 'Nunito Sans'; font-weight: 300; font-display: swap; src: url('/assets/fonts/nunito-sans-300-latin.woff2') format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'Nunito Sans'; font-weight: 300; font-display: swap; src: url('/assets/fonts/nunito-sans-300-latin-ext.woff2') format('woff2'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+1E00-1E9F, U+1EF2-1EFF, U+20A0-20AB, U+20AD-20C0, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: 'Nunito Sans'; font-weight: 800; font-display: swap; src: url('/assets/fonts/nunito-sans-800-latin.woff2') format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'Nunito Sans'; font-weight: 800; font-display: swap; src: url('/assets/fonts/nunito-sans-800-latin-ext.woff2') format('woff2'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+1E00-1E9F, U+1EF2-1EFF, U+20A0-20AB, U+20AD-20C0, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: 'Poppins Fallback'; src: local('Arial'); size-adjust: 112%; ascent-override: 93%; descent-override: 31%; }
@font-face { font-family: 'Nunito Fallback'; src: local('Arial'); size-adjust: 101%; ascent-override: 100%; descent-override: 35%; }

:root {
  --blau: #16479D; --blau-info: #4d72b3; --blau2: #4B64AD; --grau: #757575; --linie: #B1B1B1; --hell: #F6F6F6; --flieder: #ECEAF6; --rot: #ED1C24;
  --poppins: 'Poppins', 'Poppins Fallback', Arial, sans-serif;
  --text: 'Nunito Sans', 'Nunito Fallback', Arial, sans-serif;
  --w: 1150px; --w9: 980px; --rand: 16px;
  --kopf: 198px;
}
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-padding-top: calc(var(--kopf) + 16px); }
body { margin: 0; background: #fff; color: #000; font: 300 15px/1.4 var(--text); -webkit-font-smoothing: antialiased; overflow-x: hidden; }
img { max-width: 100%; height: auto; display: block; }
a { color: inherit; }
h1, h2, h3, h4, p, ul, ol, figure, address { margin: 0; }
ul, ol { padding: 0; list-style: none; }
address { font-style: normal; }
button, input, select, textarea { font: inherit; color: inherit; }
strong, b { font-weight: 800; }
:focus-visible { outline: 2px solid var(--blau); outline-offset: 3px; }
.kopf :focus-visible, .fuss :focus-visible, .mnav :focus-visible, .laufband :focus-visible { outline-color: #fff; }
.sr { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.skip { position: absolute; left: 12px; top: -80px; z-index: 200; background: #fff; color: var(--blau); padding: 10px 16px; font-weight: 800; }
.skip:focus { top: 12px; }
.w { max-width: var(--w); margin-left: auto; margin-right: auto; }
.w9 { max-width: var(--w9); margin-left: auto; margin-right: auto; }
@media (max-width: 1190px) { .w, .w9 { margin-left: var(--rand); margin-right: var(--rand); } .w9 { margin-left: max(var(--rand), calc((100% - var(--w9)) / 2)); margin-right: max(var(--rand), calc((100% - var(--w9)) / 2)); } }
main { display: block; }
main > *, .w, .w9 { min-width: 0; }

/* ---------- Buttons: Pille, Hover weiß/blau ---------- */
.btn { display: inline-flex; align-items: center; justify-content: center; min-height: 40px; padding: 6px 17px; border-radius: 40px; background: var(--blau); color: #fff; border: 1px solid var(--blau);
  font: 800 15px/1.2 var(--text); text-decoration: none; cursor: pointer; transition: border-color .4s ease, background-color .4s ease, color .4s ease; }
.btn:hover { background: #fff; color: var(--blau); }
.btn.hell { background: #fff; color: var(--blau); border-color: #fff; }
.btn.hell:hover { background: var(--blau); color: #fff; }
.btn.rand { background: transparent; color: #fff; border-color: #fff; }
.btn.rand:hover { background: #fff; color: var(--blau); }
.btn[disabled] { opacity: .6; cursor: wait; }

/* ---------- Kopf: Infoleiste, Hauptleiste, Menüleiste (sticky) ---------- */
.kopf { position: sticky; top: 0; z-index: 50; background: #fff; }
.info { background: var(--blau-info); color: #fff; height: 54px; }
.info-in { height: 100%; display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; padding: 0 46px 0 53px; }
.info-links { display: flex; gap: 36px; font-size: 15px; }
.info-links a, .social a { text-decoration: none; }
.info-links a:hover { text-decoration: underline; }
.ticker { position: relative; height: 22px; min-width: 300px; text-align: center; font-size: 15px; }
.ticker span { position: absolute; left: 0; right: 0; white-space: nowrap; animation: ticker 10s infinite; }
.ticker span + span { opacity: 0; animation-delay: 5s; }
@keyframes ticker { 0%, 45% { opacity: 1; } 50%, 95% { opacity: 0; } 100% { opacity: 1; } }
.ticker span:first-child { animation-name: ticker; }
.ticker span + span { animation-name: ticker; }
.social { justify-self: end; display: flex; gap: 2px; margin-right: 140px; }
.social a { display: grid; place-items: center; width: 33px; height: 33px; }
.social svg { width: 23px; height: 23px; }
.haupt { background: var(--blau); color: #fff; }
.haupt-in { height: 92px; display: grid; grid-template-columns: 1fr 427px 1fr; align-items: center; padding: 0 46px; gap: 24px; }
.logo { justify-self: start; display: block; width: 336px; margin-top: 4px; }
.logo img { width: 100%; height: auto; }
.suche { position: relative; display: flex; height: 43px; border: 1px solid #fff; border-radius: 40px; background: transparent; }
.suche input { flex: 1; min-width: 0; background: transparent; border: 0; padding: 0 20px; color: #fff; font: 300 15px var(--text); border-radius: 40px 0 0 40px; }
.suche input::placeholder { color: #fff; opacity: 1; }
.suche input::-webkit-search-cancel-button { filter: invert(1); }
.suche button { width: 45px; border: 0; background: #fff; color: var(--blau); border-radius: 0 40px 40px 0; display: grid; place-items: center; cursor: pointer; }
.suche button svg { width: 15px; height: 15px; }
.suche-liste { position: absolute; top: calc(100% + 6px); left: 0; right: 0; background: #fff; color: #000; box-shadow: 0 8px 28px rgba(0,0,0,.18); z-index: 60; max-height: 70vh; overflow: auto; }
.suche-liste li + li { border-top: 1px solid #e6e6e6; }
.suche-liste a { display: block; padding: 10px 16px; text-decoration: none; }
.suche-liste a:hover, .suche-liste a:focus { background: var(--flieder); outline: none; }
.suche-liste strong { display: block; color: var(--blau); font-size: 15px; }
.suche-liste span { display: block; font-size: 13px; color: #444; line-height: 1.35; overflow: hidden; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
.suche-liste .leer { padding: 10px 16px; }
.haupt-in > .sprache { justify-self: end; margin-right: 22px; }
.sprache { position: relative; }
.sp-knopf { display: flex; align-items: center; gap: 9px; height: 45px; padding: 0 8px; background: var(--blau); border: 0; color: #fff; font: 800 15px var(--text); cursor: pointer; }
.flagge { display: inline-block; width: 35px; height: 22px; overflow: hidden; border-radius: 2px; box-shadow: 0 0 0 1px rgba(255,255,255,.3); }
.flagge svg { width: 100%; height: 100%; display: block; }
.sp-pfeil { width: 13px; margin-left: 14px; display: grid; }
.sp-pfeil svg { width: 13px; }
.sp-knopf[aria-expanded="true"] .sp-pfeil { transform: rotate(180deg); }
.sp-liste { position: absolute; top: 100%; left: 0; right: 0; background: var(--blau); z-index: 70; padding: 4px 0; min-width: 120px; }
.sp-liste a { display: flex; align-items: center; gap: 9px; padding: 8px; color: #fff; text-decoration: none; font: 800 15px var(--text); }
.sp-liste a:hover, .sp-liste a[aria-current] { background: rgba(255,255,255,.14); }
.ort { display: grid; place-items: center; width: 34px; height: 44px; color: #fff; }
.haupt-in { grid-template-columns: 1fr 427px 1fr auto; }
.haupt-in > .sprache { grid-column: 3; }
.haupt-in > .ort { grid-column: 4; margin-right: 64px; }
.ort svg { width: 19px; height: 24px; }
.burger { display: none; }
.menue { height: 52px; border-bottom: 1px solid transparent; }
.menue > ul { display: flex; justify-content: center; height: 100%; gap: 0; }
.menue li { position: relative; display: flex; align-items: center; }
.menue a { display: flex; align-items: center; height: 50px; padding: 0 22px; color: var(--blau); font: 800 18px/25px var(--text); text-decoration: none; }
.menue a:hover, .menue a.on { text-decoration: underline; text-underline-offset: 6px; text-decoration-thickness: 2px; }
.dd-auf { width: 0; height: 0; padding: 0; border: 0; overflow: hidden; background: none; color: var(--blau); }
.dd-auf:focus-visible { width: 20px; height: 20px; overflow: visible; margin-left: -18px; }
.dd-auf svg { width: 11px; }
.dd-menu { position: absolute; top: 48px; left: 12px; min-width: 150px; background: #fff; padding: 6px 0; box-shadow: 0 6px 18px rgba(0,0,0,.12); opacity: 0; visibility: hidden; transform: translateY(-4px); transition: opacity .2s, transform .2s, visibility 0s .2s; z-index: 60; }
.dd:hover .dd-menu, .dd.auf .dd-menu, .dd:focus-within .dd-menu { opacity: 1; visibility: visible; transform: none; transition: opacity .2s, transform .2s; }
.dd-menu a { height: auto; padding: 4px 10px; font-size: 15px; line-height: 25px; white-space: nowrap; }
@media (max-width: 1300px) { .menue a { padding: 0 14px; font-size: 17px; } .social { margin-right: 40px; } .haupt-in > .ort { margin-right: 10px; } .logo { width: 290px; } .haupt-in { grid-template-columns: 1fr minmax(260px, 427px) 1fr auto; } }
@media (max-width: 1060px) { .menue a { padding: 0 9px; font-size: 15px; } .logo { width: 240px; } .info-links { gap: 18px; } .info-in { padding: 0 20px; } .haupt-in { padding: 0 20px; } }

/* Hinweis Schweiz */
.ch-leiste { position: fixed; left: 16px; right: 16px; bottom: 16px; z-index: 45; max-width: 980px; margin: 0 auto; background: #fff; color: #000; box-shadow: 0 6px 30px rgba(0,0,0,.2); border-left: 4px solid #f00; }
.ch-in { display: flex; align-items: center; gap: 14px; padding: 12px 12px 12px 16px; }
.ch-flagge { flex: none; width: 34px; height: 34px; }
.ch-flagge svg { width: 100%; height: 100%; display: block; }
.ch-in p { flex: 1; font-size: 15px; line-height: 1.45; min-width: 0; }
.ch-in a { color: var(--blau); font-weight: 800; white-space: nowrap; }
.ch-zu { flex: none; width: 36px; height: 36px; border: 0; background: none; cursor: pointer; display: grid; place-items: center; color: #333; }
.ch-zu svg { width: 13px; height: 13px; }

/* ---------- Hero-Slideshow ---------- */
.hero, .seiten-hero { position: relative; height: clamp(420px, 40vw, 581px); overflow: hidden; background: #a1b4d7; color: #fff; }
.slides img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: 0; transition: opacity 1.2s ease; }
.slides img.an { opacity: 1; }
.hero::after, .seiten-hero::after { content: ''; position: absolute; inset: 0; background: rgba(22, 71, 157, .41); }
.hero-in { position: relative; z-index: 1; height: 100%; display: flex; flex-direction: column; justify-content: center; padding: 0 0 40px max(var(--rand), calc((100% - 935px) / 2)); }
.hero-t { font: 600 clamp(52px, 6.25vw, 90px)/1.2 var(--poppins); letter-spacing: 0; }
.hero-u { max-width: 700px; margin-top: 4px; font: 200 clamp(20px, 2.1vw, 30px)/1.3 var(--poppins); -webkit-text-stroke: .6px #fff; }
.seiten-hero { height: 256px; }
.seiten-hero.niedrig { height: 183px; }
.sh-in { position: relative; z-index: 1; height: 100%; display: flex; flex-direction: column; justify-content: center; }
.sh-in h1 { font: 600 clamp(40px, 5vw, 72px)/1.2 var(--poppins); }
.sh-in .krumen, .sh-in .krumen a, .sh-in .krumen span { color: #fff; }

/* Marken-Laufband */
.laufband { background: var(--blau); height: 196px; overflow: hidden; display: flex; align-items: center; }
.lb-spur { display: flex; width: max-content; animation: laufen 40s linear infinite; }
.lb-spur ul { display: flex; }
.lb-spur li { width: 265px; flex: none; }
.lb-spur img { width: 265px; height: auto; }
.laufband:hover .lb-spur { animation-play-state: paused; }
@keyframes laufen { to { transform: translateX(-50%); } }
.laufband.klein { height: 100px; }
.laufband.klein li, .laufband.klein img { width: 137px; }

/* „Für Sie da“ */
.dabei { text-align: center; padding: 22px 16px 26px; font-size: 15px; }
.dabei-t { display: inline-flex; align-items: center; gap: 30px; font: 800 20px var(--text); margin-bottom: 18px; }
.headset { width: 37px; height: 41px; display: block; }
.headset svg { width: 100%; height: 100%; }

/* Themenwelten-Kacheln */
.tw-sek { padding: 50px 0 80px; }
.tw-sek h2 { font: 600 33px/1.3 var(--poppins); margin: 0 0 14px -30px; }
.tw-sek .intro { max-width: 760px; margin: 0 0 40px -30px; font-size: 16px; line-height: 1.6; }
.tw-raster { display: grid; grid-template-columns: repeat(3, minmax(0, 373px)); gap: 10px 4px; justify-content: center; margin: 0 var(--rand); }
.tw-raster a { position: relative; display: block; aspect-ratio: 1; overflow: hidden; color: #fff; text-decoration: none; }
.tw-raster img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s ease; }
.tw-raster a::after { content: ''; position: absolute; inset: 0; background: rgba(0, 0, 0, .16); transition: background .4s; }
.tw-raster a:hover::after, .tw-raster a:focus-visible::after { background: rgba(22, 71, 157, .45); }
.tw-raster a:hover img { transform: scale(1.04); }
.tw-label { position: absolute; inset: 0; z-index: 1; display: grid; place-items: center; padding: 10px; font: 600 clamp(26px, 2.5vw, 36px)/1.25 var(--poppins); text-align: center; text-shadow: 0 1px 12px rgba(0,0,0,.35); }

/* Teaser Angebote / Prospekte */
.teaser-paar { display: grid; grid-template-columns: minmax(0, 707px) minmax(0, 398px); gap: 45px; justify-content: center; margin: 0 var(--rand) 24px; }
.teaser { position: relative; height: 620px; overflow: hidden; background: #cfe5e4; }
.t-pr { background: #e9b5bd; }
.t-bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.t-in { position: relative; z-index: 1; padding: 172px 30px 0 50px; }
.t-klein { font: 600 33px/1.3 var(--poppins); color: var(--blau); margin-left: 3px; }
.t-gross { font: 600 clamp(48px, 5vw, 72px)/1.1 var(--poppins); color: var(--blau); margin-bottom: 18px; }
.t-gross a { text-decoration: underline; text-decoration-thickness: 4px; text-underline-offset: 6px; }
.t-pr .t-in { padding: 205px 16px 0 30px; }
.t-prospekte { font: 600 clamp(44px, 4.8vw, 69px)/1.4 var(--poppins); color: var(--blau2); margin-bottom: 8px; }
.t-prospekte a { text-decoration: none; }
.t-in .btn { min-height: 40px; }
.edeka { display: block; }
.edeka svg { width: 100%; height: 100%; display: block; }
.t-edeka { position: absolute; z-index: 1; right: 85px; bottom: 34px; width: 126px; height: 154px; }
.ang .teaser { height: 550px; }
.ang { grid-template-columns: minmax(0, 685px) minmax(0, 420px); gap: 22px; margin-top: 28px; }
.ang .t-in { padding-top: 150px; }
.stoerer { position: absolute; right: 70px; top: 46px; width: 124px; height: 124px; border-radius: 50%; background: var(--blau); color: #fff; display: grid; place-items: center; text-align: center; font: 600 22px/1.05 var(--poppins); transform: rotate(14deg); padding: 10px; }

/* Newsletter-Band */
.nl { position: relative; overflow: hidden; color: #fff; background: #4c5a3c; padding: 108px var(--rand) 70px; min-height: 371px; }
.nl.klein { min-height: 221px; padding-top: 40px; padding-bottom: 30px; }
.nl-bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.nl::before { content: ''; position: absolute; inset: 0; background: rgba(0,0,0,.22); z-index: 1; }
.nl-in { position: relative; z-index: 2; max-width: 690px; margin: 0 auto; }
.nl h2 { font: 800 20px/1.3 var(--text); margin-bottom: 34px; }
.nl.klein h2 { font: 600 25px/1.3 var(--poppins); margin-bottom: 26px; }
.nl-zeile { display: flex; align-items: flex-end; gap: 16px; }
.nl-feld { flex: 1; min-width: 0; }
.nl-feld label { display: block; font-size: 14px; margin: 0 0 6px 3px; }
.nl-feld input { width: 100%; height: 40px; border-radius: 40px; border: 1px solid #fff; padding: 0 18px; background: #fff; color: #000; font-size: 15px; }
.nl .btn { width: 132px; flex: none; }
.nl-ok { display: flex; gap: 10px; align-items: flex-start; margin-top: 14px; font-size: 13px; line-height: 1.45; }
.nl-ok input { margin-top: 2px; width: 16px; height: 16px; flex: none; accent-color: var(--blau); }
.nl-ok a { color: #fff; }
.nl .meldung { margin-top: 12px; }

/* ---------- Fußzeile ---------- */
.fuss { background: var(--blau); color: #fff; margin-top: 0; }
.fuss-in { display: grid; grid-template-columns: 386px 381px 308px minmax(0, 1fr); padding: 70px 32px 34px; max-width: 1440px; margin: 0 auto; }
.fuss h2 { font: 800 32px/1.25 var(--text); margin-bottom: 12px; }
.f-hilfe h2 { font-size: 28px; margin: 22px 0 6px 36px; }
.f-logo { display: block; width: 270px; }
.f-hilfe p { font-size: 22px; line-height: 40px; margin-left: 36px; max-width: 270px; }
.f-hilfe a { color: #fff; }
.f-tel { margin-top: 8px; }
.f-tel a { font: 800 25px/1.4 var(--text); text-decoration: none; }
.f-adr { margin: 18px 0 0 36px; font-size: 15px; line-height: 1.6; opacity: .95; }
.f-menu, .f-anfahrt, .f-recht { padding-top: 14px; }
.f-anfahrt h2 { max-width: 150px; font-size: 26px; margin-top: -6px; }
.fuss ul { font-size: 19px; line-height: 41px; }
.fuss ul a { text-decoration: none; display: inline-block; padding: 0 2px; }
.fuss ul a:hover { text-decoration: underline; }
.f-menu ul { margin-left: 2px; }
.f-social { display: flex; gap: 10px; margin-top: 18px; }
.f-social a { display: grid; place-items: center; width: 40px; height: 40px; color: #fff; }
.f-social svg { width: 26px; height: 26px; }
.zahlung { margin: 0 64px; border-top: 1px solid #fff; padding: 28px 0 14px; text-align: center; }
.zahlung h2 { font: 800 20px var(--text); margin-bottom: 18px; }
.zahlung ul { display: flex; justify-content: center; align-items: center; gap: 36px; flex-wrap: wrap; }
.zahlung img { width: auto; height: 34px; max-width: 54px; object-fit: contain; }
.copy { background: #fff; color: #000; text-align: center; padding: 11px 16px; font-size: 15px; }
.copy a { text-decoration: none; }
.copy a:hover { text-decoration: underline; }

/* ---------- Unterseiten: Titelzone, Brotkrumen ---------- */
.titel { text-align: center; padding: 10px 0 52px; }
.titel h1 { font: 600 clamp(40px, 5vw, 72px)/1.35 var(--poppins); margin-top: 24px; padding: 0 var(--rand); text-wrap: balance; overflow-wrap: break-word; }
.krumen { text-align: left; }
.krumen ol { display: flex; flex-wrap: wrap; gap: 4px 8px; font-size: 13px; color: var(--grau); padding: 6px 0 0; }
.krumen li + li::before { content: '›'; margin-right: 8px; }
.krumen a { color: var(--grau); text-decoration: none; }
.krumen a:hover { text-decoration: underline; }
.sh-in .krumen ol { color: #fff; padding: 0 0 6px; }

/* Bild-Text-Box (Über uns, Frischemarkt, Kontakt …) */
.box { display: grid; grid-template-columns: 574px minmax(0, 1fr); border: 1px solid #959595; min-height: 625px; }
.box.rechts { grid-template-columns: minmax(0, 1fr) 574px; min-height: 0; }
.box-bild { position: relative; overflow: hidden; background: #ddd; }
.box-bild img { width: 100%; height: 100%; object-fit: cover; }
.box-text { padding: 82px 56px 60px; }
.box-text h2 { font: 600 33px/1.55 var(--poppins); margin-bottom: 30px; max-width: 420px; }
.box-text p { font-size: 15px; line-height: 27px; max-width: 410px; }
.box-text p + p { margin-top: 27px; }
.box-text a { color: var(--blau); }
.box-text.klein { padding: 50px 28px 40px 56px; }
.box-text.klein h2 { font-size: 25px; line-height: 1.6; margin-bottom: 24px; max-width: 380px; }
.box-text.klein p { font-size: 14px; line-height: 22px; max-width: 470px; }
.box-text.klein p + p { margin-top: 20px; }
.box-edeka { position: absolute; right: 85px; bottom: 70px; width: 118px; height: 144px; }
.bk-logo { width: 340px; margin: 0 0 40px -10px; }
.kacheln3 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border: 1px solid #959595; margin-top: 70px; }
.k3 { padding: 62px 36px 70px; min-width: 0; }
.k3 + .k3 { border-left: 1px solid #959595; }
.k3-icon { display: block; width: 54px; height: 44px; margin-bottom: 26px; }
.k3-icon svg { width: auto; height: 100%; max-width: 100%; }
.k3 h3 { font: 600 25px/1.52 var(--poppins); margin-bottom: 38px; }
.k3 p { font-size: 15px; line-height: 27px; }
.fotos { display: grid; grid-template-columns: repeat(2, minmax(0, 476px)); gap: 6px 20px; justify-content: center; margin: 34px var(--rand) 8px; }
.fotos img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; }
.ang-band { position: relative; height: 395px; overflow: hidden; background: #fdecd1; }
.ab-bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.ab-in { position: relative; z-index: 1; padding: 78px 30px 0 234px; }
.ang-band h2 { font: 600 clamp(48px, 5vw, 72px)/1.1 var(--poppins); }
.ang-band h2 a { text-decoration: underline; text-decoration-thickness: 4px; text-underline-offset: 6px; }
.ab-text { font: 600 25px/1.52 var(--poppins); max-width: 470px; margin: 14px 0 26px; }
.ang-band + .zusatz, .ang-band + .nl { margin-top: 4px; }

/* Kachel-Band (Frischemarkt, Bäckerei) */
.band3 { position: relative; overflow: hidden; margin-top: 70px; padding: 98px 0; background: #b7a07b; }
.b3-bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.b3-in { position: relative; z-index: 1; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); background: rgba(255, 255, 255, .88); }
.b3 { padding: 110px 40px 90px; min-width: 0; }
.b3 + .b3 { border-left: 1px solid #c9a59a; }
.b3 h2 { font: 600 25px/1.55 var(--poppins); margin-bottom: 26px; }
.b3 p { font-size: 14px; line-height: 27px; }

/* Mieter */
.mieter { margin-top: 70px; }
.mieter ul { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.mieter li { background: var(--hell); padding: 40px 48px 44px; min-width: 0; }
.m-logo { display: block; width: 200px; height: 104px; margin: 0 auto 26px; }
.m-logo img { width: 100%; height: 100%; object-fit: contain; }
.mieter h2 { font: 600 25px/1.5 var(--poppins); margin-bottom: 16px; }
.mieter p { font-size: 17px; line-height: 1.6; }
.m-tel { margin-top: 18px; }
.m-tel a { text-decoration: none; }

/* Themenwelt-Seite: Kategorien */
.kat-kopf { display: grid; grid-template-columns: 426px minmax(0, 540px); align-items: center; margin-bottom: 36px; }
.kat-kopf h2 { font: 600 33px/1.3 var(--poppins); }
.kat-kopf p { font: 800 14px/21px var(--text); }
.kat-raster { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-top: 1px solid var(--linie); border-left: 1px solid var(--linie); }
.kat-raster li { border-right: 1px solid var(--linie); border-bottom: 1px solid var(--linie); min-height: 437px; padding: 92px 18px 46px; display: flex; flex-direction: column; align-items: center; justify-content: space-between; text-align: center; min-width: 0; }
.kat-bild { position: relative; display: grid; place-items: center; width: 240px; max-width: 100%; height: 230px; }
.kat-bild::before { content: ''; position: absolute; width: 190px; height: 210px; border-radius: 50%; background: var(--flieder); opacity: 0; transform: scale(.9); transition: opacity .4s, transform .4s; }
.kat-raster li:hover .kat-bild::before { opacity: 1; transform: none; }
.kat-bild img { position: relative; max-width: 100%; max-height: 230px; width: auto; height: auto; object-fit: contain; }
.kat-raster h3 { font: 800 20px/24px var(--text); margin-top: 30px; overflow-wrap: break-word; }
.weitere { margin-top: 56px; margin-bottom: 70px; }
.weitere h2 { font: 600 25px/1.4 var(--poppins); margin-bottom: 16px; }
.weitere ul { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 18px; }
.weitere ul a { display: inline-block; padding: 7px 16px; border: 1px solid var(--blau); border-radius: 40px; color: var(--blau); font-weight: 800; text-decoration: none; transition: background-color .4s, color .4s; }
.weitere ul a:hover { background: var(--blau); color: #fff; }
.weitere p a { color: var(--blau); }

/* Textseiten, Zusatzinhalte, FAQ, Tabellen */
.text { font-size: 17px; line-height: 1.65; }
.text p + p, .text p + ul, .text ul + p, .text p + ol, .text ol + p, .text .tabelle + p, .text p + .tabelle { margin-top: 16px; }
.text h2 { font: 600 clamp(24px, 2.4vw, 30px)/1.35 var(--poppins); margin: 44px 0 14px; }
.text h3 { font: 600 20px/1.4 var(--poppins); margin: 28px 0 10px; }
.text ul { list-style: disc; padding-left: 22px; }
.text ol { list-style: decimal; padding-left: 22px; }
.text li + li { margin-top: 6px; }
.text a { color: var(--blau); }
.text strong { font-weight: 800; }
.lead { font-size: 19px; line-height: 1.6; }
.zusatz { margin-top: 60px; margin-bottom: 80px; }
.zusatz > section:first-child h2, .zusatz > .lead:first-child + section h2 { margin-top: 30px; }
.hinweis-text, .hinweis { font-size: 14px; color: #444; line-height: 1.55; }
.hinweis-text { margin-top: 18px; padding: 14px 16px; background: var(--hell); border-left: 3px solid var(--blau); }
.tabelle { overflow-x: auto; margin: 22px 0; }
.tabelle table { width: 100%; border-collapse: collapse; font-size: 16px; min-width: 420px; }
.tabelle caption { text-align: left; font: 800 17px var(--text); padding-bottom: 8px; }
.tabelle th, .tabelle td { text-align: left; padding: 10px 12px; border-bottom: 1px solid #ddd; vertical-align: top; }
.tabelle th[scope="row"] { font-weight: 800; }
.tabelle thead th { background: var(--blau); color: #fff; font-weight: 800; }
.faq-block { margin-top: 48px; }
.faq-liste { border-top: 1px solid var(--linie); }
.faq-liste details { border-bottom: 1px solid var(--linie); }
.faq-liste summary { cursor: pointer; list-style: none; padding: 18px 40px 18px 0; position: relative; font: 800 18px/1.4 var(--text); color: var(--blau); }
.faq-liste summary::-webkit-details-marker { display: none; }
.faq-liste summary::after { content: '+'; position: absolute; right: 6px; top: 12px; font: 300 28px var(--text); }
.faq-liste details[open] summary::after { content: '–'; }
.antwort { padding: 0 0 20px; }
.stand { margin-top: 40px; padding-top: 16px; border-top: 1px solid #ddd; font-size: 14px; color: #444; }
.stand ul { list-style: none; padding: 0; }
.recht { margin-bottom: 90px; font-size: 16px; }
.recht h2 { font-size: 24px; margin: 38px 0 10px; }
.stand-zeile { color: var(--grau); }
.nf ul { margin: 18px 0 28px; }

/* Parken & Anfahrt */
.parken-band { background: var(--hell); padding: 14px 0 30px; }
.pb-1 { font: 600 clamp(22px, 2.1vw, 30px)/1.4 var(--poppins); }
.pb-2 { font: 600 20px/1.4 var(--poppins); margin-top: 10px; }
.video-wrap { margin-top: 60px; }
.zwei-klick { position: relative; background: var(--blau); color: #fff; overflow: hidden; }
.video { aspect-ratio: 16 / 9; }
.zwei-klick iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.zk-vorschau { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 12px; padding: 24px; text-align: center;
  background: radial-gradient(circle at 30% 20%, rgba(255,255,255,.14), transparent 55%), linear-gradient(135deg, #16479D, #0B244F); }
.zk-play { width: 86px; filter: drop-shadow(0 4px 14px rgba(0,0,0,.3)); }
.zk-play svg { width: 100%; }
.zk-play svg path:first-child { fill: #fff; }
.zk-play svg path:last-child { fill: var(--blau); }
.zk-t { font: 600 clamp(20px, 2.2vw, 28px)/1.35 var(--poppins); }
.zk-h { max-width: 560px; font-size: 14px; line-height: 1.5; }
.zk-h a { color: #fff; }
.karte-wrap { margin-top: 60px; }
.karte { height: 480px; }
.zk-pin { width: 42px; color: #fff; }
.zk-pin svg { width: 100%; }
.zk-knoepfe { display: flex; flex-wrap: wrap; gap: 12px; justify-content: center; margin-top: 6px; }

/* Kontakt */
.kontakt { min-height: 0; }
.kontakt .box-text { padding: 70px 56px 56px; }
.kontakt .box-text h2 { margin-bottom: 22px; }
.k-intro { font: 800 20px/28px var(--text) !important; max-width: 380px !important; margin-bottom: 40px; }
.k-form .felder { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); margin-bottom: 20px; }
.feld { min-width: 0; }
.feld label { display: block; font-size: 15px; margin: 0 0 10px 1px; }
.feld input, .feld textarea { width: 100%; height: 50px; border: 1px solid #000; border-radius: 0; padding: 8px 12px; background: #fff; font-size: 16px; }
.feld + .feld input { border-left-width: 0; }
.felder .feld:nth-child(3) input, .felder .feld:nth-child(4) input { margin-bottom: 18px; }
.feld.breit { grid-column: 1 / -1; }
.feld.breit textarea { height: 100px; border-left-width: 1px; resize: vertical; }
.feld [aria-invalid="true"] { border-color: #c00; box-shadow: inset 0 0 0 1px #c00; }
.honig { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.k-form .btn { width: 132px; }
.k-form .hinweis { margin-top: 14px; }
.meldung { margin-top: 14px; padding: 12px 14px; font-weight: 800; font-size: 15px; }
.meldung.ok { background: #e6f2e6; color: #1d5e20; }
.meldung.fehler { background: #fde8e8; color: #9b1c1c; }
.nl .meldung.ok, .nl .meldung.fehler { color: #000; }
.k-daten { margin-top: 30px; font: 800 17px/28px var(--text); }
.k-daten p + p { margin-top: 18px; font-weight: 300; }
.k-daten a { color: #000; }

/* Angebote: Prospekt */
.prospekt { position: relative; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 520px); gap: 40px; align-items: center; margin-top: 70px; margin-bottom: 80px; }
.prospekt h2 { font: 600 clamp(30px, 3.4vw, 46px)/1.25 var(--poppins); margin-bottom: 12px; }
.pr-text p { font-size: 17px; line-height: 1.6; }
.pr-gueltig { margin: 18px 0 22px; }
.pr-klein { margin-top: 14px; font-size: 14px !important; color: #444; }
.pr-klein a { color: var(--blau); }
.pr-bild { display: block; border: 1px solid var(--linie); box-shadow: 0 10px 30px rgba(0,0,0,.12); transition: transform .4s; }
.pr-bild:hover { transform: translateY(-3px); }
.pr-edeka { position: absolute; right: -14px; top: -40px; width: 70px; height: 85px; }

/* Karriere */
.jobs { margin-top: 50px; margin-bottom: 80px; }
.jobs h2 { font: 600 25px/1.4 var(--poppins); margin-bottom: 12px; }
.jobs > p { font-size: 17px; line-height: 1.6; max-width: 760px; }
.job-liste { margin: 30px 0 22px; border-top: 1px solid var(--linie); }
.job-liste li { border-bottom: 1px solid var(--linie); }
.job-liste a { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 4px 20px; padding: 20px 4px; text-decoration: none; }
.job-liste a:hover { background: var(--hell); }
.j-titel { font: 800 19px/1.35 var(--text); color: var(--blau); }
.j-meta { grid-row: 2; font-size: 15px; color: #444; }
.j-mehr { grid-row: 1 / 3; grid-column: 2; align-self: center; font-weight: 800; font-size: 14px; color: var(--blau); text-decoration: underline; }

/* App */
.app { padding: 30px 0 80px; font-size: 15px; line-height: 1.95; font-weight: 800; }
.app h1 { font: 600 25px/1.4 var(--poppins); margin-top: 30px; }
.app hr { width: 30px; border: 0; border-top: 2px solid #000; margin: 24px 0 26px; }
.app h2 { font: 800 15px/1.95 var(--text); margin-top: 26px; }
.app p { max-width: 560px; }
.app p + p { margin-top: 26px; }
.badges { display: flex; gap: 12px; }
.badges img { height: 40px; width: auto; }
.app .hinweis { font-weight: 300; margin-top: 10px !important; }
.app .krumen { margin: 0; }

/* Suche */
.suche-gross label { display: block; font-weight: 800; margin-bottom: 8px; }
.suche-gross div { display: flex; gap: 10px; }
.suche-gross input { flex: 1; min-width: 0; height: 44px; border: 1px solid #000; padding: 0 14px; font-size: 16px; }
.suche-status { margin: 22px 0 10px; font-weight: 800; }
.suche-ergebnis { list-style: none !important; padding: 0 !important; margin-bottom: 80px; }
.suche-ergebnis li { padding: 16px 0; border-bottom: 1px solid #ddd; }
.suche-ergebnis a { font: 800 19px var(--text); }
.suche-ergebnis p { font-size: 15px; color: #444; margin-top: 4px; }

/* ---------- Handymenü (Vollbild, Blau) ---------- */
.mnav { position: fixed; inset: 0; z-index: 100; background: var(--blau); color: #fff; overflow-y: auto; padding: 18px 20px 40px; }
.mnav[hidden] { display: none; }
.mnav-kopf { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 6px 10px; align-items: start; }
.mnav .logo { width: 250px; margin: 0; }
.mclose { width: 44px; height: 44px; border: 0; background: none; color: #fff; display: grid; place-items: center; cursor: pointer; }
.mclose svg { width: 22px; height: 22px; }
.mnav-info { grid-column: 1 / -1; display: flex; gap: 30px; font-size: 18px; }
.mnav-info a { text-decoration: none; }
.sprache.m { grid-column: 1 / -1; justify-self: start; }
.sprache.m .sp-knopf { padding: 0; }
.mnav nav ul { text-align: center; margin-top: 18px; }
.mnav nav > ul > li > a, .m-knopf { display: inline-flex; align-items: center; justify-content: center; gap: 14px; min-height: 64px; padding: 6px 12px; color: #fff; text-decoration: none; font: 800 23px/1.2 var(--text); background: none; border: 0; cursor: pointer; }
.mnav a[aria-current] { opacity: .75; }
.m-knopf svg { width: 16px; transition: transform .2s; }
.m-knopf[aria-expanded="true"] svg { transform: rotate(180deg); }
.m-auf ul { margin: 0 0 8px; }
.m-auf ul a { display: block; padding: 8px; color: #fff; text-decoration: none; font: 300 19px var(--text); }
body.menu-offen { overflow: hidden; }

/* ---------- Tablet ---------- */
@media (max-width: 1190px) {
  .box { grid-template-columns: minmax(0, 46%) minmax(0, 1fr); min-height: 0; }
  .box.rechts { grid-template-columns: minmax(0, 1fr) minmax(0, 46%); }
  .box-text { padding: 56px 40px; }
  .fuss-in { grid-template-columns: 1.3fr 1fr 1fr 1fr; gap: 20px; }
  .f-hilfe h2, .f-hilfe p, .f-adr { margin-left: 0; }
  .kat-kopf { grid-template-columns: minmax(0, 1fr) minmax(0, 1.3fr); gap: 20px; }
  .ab-in { padding-left: 60px; }
  .tw-sek h2, .tw-sek .intro { margin-left: 0; }
}
@media (max-width: 1000px) {
  .titel h1, .kat-raster h3, .mieter h2, .tw-label, .text p, .text li, .box-text p { hyphens: auto; }
  .kat-raster { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .kacheln3, .b3-in { grid-template-columns: minmax(0, 1fr); }
  .k3 + .k3, .b3 + .b3 { border-left: 0; border-top: 1px solid #959595; }
  .k3, .b3 { padding: 40px 32px; }
  .teaser-paar, .ang { grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr); gap: 20px; }
  .t-in { padding: 120px 24px 0 30px; }
  .t-pr .t-in { padding: 160px 16px 0 20px; }
  .t-edeka { right: 30px; }
  .fuss-in { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 30px 20px; }
  .prospekt { grid-template-columns: minmax(0, 1fr); }
  .info-links { display: none; }
  .info-in { grid-template-columns: 1fr auto; }
  .ticker { text-align: left; }
}

/* ---------- Handy (≤ 760 px) ---------- */
@media (max-width: 760px) {
  :root { --kopf: 0px; }
  body { font-size: 16px; }
  .kopf { position: relative; }
  .info { height: 30px; }
  .info-in { display: block; padding: 0 10px; }
  .ticker { min-width: 0; text-align: center; height: 30px; line-height: 30px; font-size: 13px; }
  .social { display: none; }
  .haupt-in { height: auto; grid-template-columns: minmax(0, 1fr) auto; padding: 16px 18px 15px; gap: 14px 10px; }
  .logo { width: min(232px, 62vw); margin: 0; }
  .suche { grid-column: 1 / -1; grid-row: 2; height: 42px; }
  .haupt-in > .sprache, .haupt-in > .ort { display: none; }
  .burger { display: flex; flex-direction: column; justify-content: center; gap: 9px; width: 48px; height: 48px; padding: 8px 6px; background: none; border: 0; cursor: pointer; grid-column: 2; grid-row: 1; }
  .burger span { display: block; height: 2px; background: #fff; }
  .menue { display: none; }
  .hero { height: 375px; }
  .hero-in { padding: 0 20px 30px 24px; }
  .hero-t { font-size: 48px; }
  .hero-u { font-size: 20px; -webkit-text-stroke: .3px #fff; }
  .seiten-hero, .seiten-hero.niedrig { height: 190px; }
  .sh-in { padding: 0 4px; }
  .laufband { height: 100px; }
  .lb-spur li, .lb-spur img { width: 150px; }
  .laufband.klein { height: 70px; }
  .laufband.klein li, .laufband.klein img { width: 110px; }
  .dabei { padding: 18px 16px; }
  .dabei-t { gap: 16px; font-size: 19px; margin-bottom: 10px; }
  .tw-sek { padding: 30px 0 40px; }
  .tw-sek .w9 { margin: 0 24px; }
  .tw-sek h2 { font-size: 30px; text-align: center; }
  .tw-sek .intro { margin-bottom: 26px; font-size: 16px; }
  .tw-raster { grid-template-columns: minmax(0, 1fr); gap: 10px; margin: 0 24px; }
  .tw-raster a { aspect-ratio: 16 / 9; }
  .teaser-paar, .ang { grid-template-columns: minmax(0, 1fr); gap: 16px; margin: 0 16px 16px; }
  .teaser, .ang .teaser { height: 380px; }
  .t-in, .ang .t-in { padding: 70px 20px 0 24px; }
  .t-pr .t-in { padding: 100px 20px 0 24px; }
  .t-klein { font-size: 26px; }
  .t-edeka { right: 22px; bottom: 22px; width: 80px; height: 98px; }
  .stoerer { right: 18px; top: 18px; width: 92px; height: 92px; font-size: 17px; }
  .nl { padding: 46px 20px 40px; min-height: 0; }
  .nl-zeile { flex-direction: column; align-items: stretch; }
  .nl .btn { width: auto; }
  .fuss-in { grid-template-columns: minmax(0, 1fr); padding: 44px 20px 26px; text-align: center; gap: 28px; }
  .f-logo { margin: 0 auto; width: 240px; }
  .f-hilfe h2, .f-hilfe p, .f-adr { margin-left: 0; max-width: none; }
  .f-hilfe p { font-size: 20px; line-height: 34px; }
  .f-anfahrt h2 { max-width: none; margin-top: 0; }
  .fuss h2 { font-size: 26px; }
  .zahlung h2 { font-size: 17px; }
  .t-gross { font-size: 40px; }
  .hero-u, .fuss p, .fuss a { hyphens: manual; }
  .fuss ul { font-size: 18px; line-height: 40px; }
  .f-social { justify-content: center; }
  .zahlung { margin: 0 20px; }
  .zahlung ul { gap: 18px 24px; }
  .titel { padding-bottom: 30px; }
  .titel .w { margin: 0 16px; }
  .titel h1 { margin-top: 16px; }
  .box, .box.rechts, .kontakt { grid-template-columns: minmax(0, 1fr); border: 0; margin: 0; }
  .box.rechts .box-bild { order: -1; }
  .box-bild { aspect-ratio: 4 / 3; }
  .box-text, .box-text.klein, .kontakt .box-text { padding: 30px 20px 10px; }
  .box-text h2 { font-size: 26px; line-height: 1.4; margin-bottom: 18px; }
  .box-text p, .box-text.klein p { font-size: 16px; line-height: 1.65; max-width: none; }
  .box-edeka { right: 20px; bottom: 20px; width: 70px; height: 86px; }
  .bk-logo { width: 240px; margin-bottom: 22px; }
  .kacheln3 { margin: 40px 16px 0; }
  .k3 h3 { font-size: 22px; margin-bottom: 16px; }
  .fotos { grid-template-columns: minmax(0, 1fr); gap: 10px; margin: 30px 16px 10px; }
  .ang-band { height: auto; margin: 10px 16px 0; }
  .ab-in { padding: 46px 22px; }
  .ab-text { font-size: 20px; }
  .band3 { padding: 30px 0; margin-top: 40px; }
  .b3 { padding: 30px 22px; }
  .b3 h2 { font-size: 22px; margin-bottom: 14px; }
  .mieter { margin: 40px 16px 0; }
  .mieter ul { grid-template-columns: minmax(0, 1fr); }
  .mieter li { padding: 28px 22px; }
  .mieter h2 { font-size: 22px; }
  .kat { margin: 0 16px; }
  .kat-kopf { grid-template-columns: minmax(0, 1fr); text-align: center; gap: 12px; margin-bottom: 20px; }
  .kat-kopf h2 { font-size: 28px; }
  .kat-raster { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .kat-raster li { min-height: 0; padding: 22px 8px 20px; }
  .kat-bild { width: 130px; height: 130px; }
  .kat-bild::before { width: 128px; height: 128px; opacity: 1; transform: none; }
  .kat-bild img { max-height: 120px; max-width: 128px; }
  .kat-raster h3 { font-size: 16px; line-height: 20px; margin-top: 14px; }
  .k-intro { margin-bottom: 24px; }
  .k-form .felder { grid-template-columns: minmax(0, 1fr); }
  .feld + .feld input { border-left-width: 1px; }
  .feld input { margin-bottom: 14px; }
  .karte { height: 520px; }
  .text { font-size: 16px; }
  .lead { font-size: 18px; }
  .zusatz { margin-top: 36px; margin-bottom: 50px; }
  .j-mehr { display: none; }
  .ch-leiste { left: 8px; right: 8px; bottom: 8px; }
  .ch-in { align-items: flex-start; gap: 10px; padding: 10px 6px 10px 12px; }
  .ch-in p { font-size: 14px; }
  .ch-flagge { width: 26px; height: 26px; margin-top: 2px; }
  .pr-edeka { right: 0; top: -20px; width: 54px; height: 66px; }
  .app { padding-top: 10px; }
}
@media (max-width: 380px) { .kat-raster { grid-template-columns: minmax(0, 1fr); } .t-gross { font-size: 42px; } .hero-t { font-size: 42px; } }
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; }
  .ticker span + span { display: none; }
  .lb-spur { flex-wrap: wrap; width: auto; justify-content: center; }
  .lb-spur ul + ul { display: none; }
}
@media print { .kopf, .fuss, .nl, .ch-leiste, .laufband { display: none; } }
/* Titelzone: lange H1 kleiner, Einleitung */
.titel h1.lang { font-size: clamp(30px, 3.5vw, 48px); line-height: 1.3; max-width: 1000px; margin-left: auto; margin-right: auto; }
.titel-lead { max-width: 780px; margin: 18px auto 0; padding: 0 var(--rand); font-size: 17px; line-height: 1.6; }
.titel-lead a { color: var(--blau); }
.hero-t:not(:only-child) { max-width: 980px; }
@media (max-width: 760px) { .titel-lead { font-size: 16px; text-align: left; } }
.hero-t.lang { font-size: clamp(34px, 4.2vw, 60px); max-width: 900px; }
.t-lm::after, .t-pr::after { content: ''; position: absolute; inset: 0; pointer-events: none; }
.t-lm::after { background: rgba(190, 232, 230, .42); }
.t-pr::after { background: rgba(255, 255, 255, .42); }
.t-in, .t-edeka { z-index: 2; }
.t-prospekte { font-size: clamp(40px, 4.5vw, 64px); }
.kontakt .k-daten { background: var(--hell); margin: 36px -56px -56px; padding: 40px 56px 46px; }
@media (max-width: 760px) { .kontakt .k-daten { margin: 30px -20px 0; padding: 26px 20px; } }
body { overflow-wrap: break-word; }
.text h2, .text h3, .faq-liste summary, .tabelle th, .tabelle td { overflow-wrap: break-word; }
.fuss-in { grid-template-columns: minmax(260px, 386fr) minmax(170px, 381fr) minmax(210px, 308fr) minmax(190px, 300fr); }
@media (max-width: 1190px) { .fuss-in { grid-template-columns: repeat(4, minmax(0, 1fr)); } .fuss h2 { font-size: 26px; } }
@media (max-width: 1000px) { .fuss-in { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 760px) { .fuss-in { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 760px) { .video { aspect-ratio: auto; min-height: 340px; } .zk-play { width: 64px; } }

/* ---------- Inhalte aus der Verwaltung ---------- */
/* Hinweisleiste oben auf jeder Seite (Verwaltung → Öffnungszeiten → Hinweisleiste) */
.hinweisleiste { background: #c4161c; color: #fff; text-align: center; padding: 9px var(--rand); font: 800 15px/1.4 var(--text); }
.hinweisleiste p { max-width: var(--w); margin: 0 auto; }
.hinweisleiste a { color: #fff; }
/* Aktuelle Ausnahmen oben auf /oeffnungszeiten und /fr/horaires */
.ausnahmen { margin: 28px 0 10px; padding: 22px 24px 10px; border: 2px solid var(--blau); }
.ausnahmen h2 { margin-top: 0 !important; }
.ausnahmen .tabelle { margin: 14px 0 12px; }
.ausnahmen td small { font-size: 14px; color: #444; }
/* Prospekt ohne Vorschaubild */
.pr-platzhalter { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 12px; aspect-ratio: 3 / 2; background: var(--blau); color: #fff; text-align: center; padding: 24px; font: 800 18px/1.3 var(--text); }
.pr-pdf { font: 600 54px/1 var(--poppins); letter-spacing: .04em; border: 3px solid #fff; padding: 14px 18px 10px; }
.pr-auf { font-size: 15px; text-decoration: underline; }
/* Stellen mit Beschreibung */
.j-text { padding: 0 4px 22px; font-size: 16px; line-height: 1.55; }
.j-text p + p { margin-top: 10px; }
.j-text .j-datum { font-size: 14px; color: var(--grau); }
@media (max-width: 760px) { .ausnahmen { padding: 16px 14px 6px; } .hinweisleiste { font-size: 14px; } }
