/* Targeted responsive image corrections */
.lieblinge .p-card { cursor: default; pointer-events: none; }
.career-page .page-hero { background: var(--forest); }
.career-page .page-hero__bg img { object-position: center 25%; }
.family-page .page-hero { background: var(--forest); }
.family-page .split__media { width: 100%; max-width: 460px; }
.family-page .split__media img { height: auto; aspect-ratio: auto; object-fit: contain; }
.family-page .split__media .stamp { display: none; }
.breakfast-page .page-hero,
.offers-page .offers-hero { background: var(--forest); }
.branch-page .branch-hero .page-hero__bg img { object-position: 62% center; }
.region-picker__buttons button { min-height: 44px; background: var(--cream-50); box-shadow: var(--shadow-soft); }

/* Homepage: einheitliche Produktkarten und prägnante Produktüberschrift */
.lieblinge__head .txt { max-width: 820px; }
.product-marquee-title { display: grid; gap: .1em; max-width: 23ch; }
.product-marquee-title > span { display: block; }
.product-marquee-title > span:last-child { color: var(--moss); }
.product-marquee-title em { color: var(--gold); font-family: var(--font-hand); font-size: 1.2em; font-style: normal; font-weight: 700; letter-spacing: 0; }
.p-card { width: 300px; height: 380px; border-radius: var(--radius); }
.p-card__body { display: flex; flex-direction: column; justify-content: flex-end; width: 100%; min-height: 126px; }
.p-card__title { min-height: 2.7rem; display: flex; align-items: flex-end; }
.p-card__desc { min-height: 2.8rem; }

/* Bildlose Filialdarstellung */
.fil-card { min-height: 96px; }
.fil-result-card { display: block; min-height: 0; padding: 16px 18px; }
.branch-page .branch-grid { align-items: stretch; }
.branch-page .branch { min-height: 168px; }
.branch-page .branch__body { padding: 22px; gap: 10px; }
.branch-page .branch b { font-size: 1.12rem; }
.branch-page .branch .hours { line-height: 1.55; }

/* Die Mitarbeiterzahl bleibt eine Zeile, "500" genauso groß wie die anderen Zähler, nur "ca." klein davor. */
.stat--employees .stat__number { display: flex; align-items: baseline; justify-content: center; gap: 6px; white-space: nowrap; }
.stat--employees .stat__prefix { font-size: clamp(1.1rem, 1.8vw, 1.5rem); font-weight: 800; opacity: .85; }

/* Angebotsseite: identische Karten mit stabilen Bildbereichen */
.offers-section { background: var(--cream-50); }
.offers-section--more { background: var(--cream); }
.offers-grid { display: grid; gap: 20px; align-items: stretch; }
.offers-grid--weekly { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.offers-grid--more { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.offer-card { min-width: 0; height: 100%; }
.offer-card .deal__img { aspect-ratio: 4 / 3; background: var(--sand); }
.deal__img--empty { display: grid; place-items: center; background: linear-gradient(145deg, var(--sand), var(--cream)); }
.offer-card__placeholder { color: var(--forest); font-size: .78rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; opacity: .62; }
.offer-card .deal__body { min-height: 138px; padding: 18px; }
.offer-card .deal__name { font-size: 1.08rem; }
.offer-card__description { margin: 0; color: var(--ink-soft); font-size: .9rem; line-height: 1.5; }
.offer-card--detail .deal__body { min-height: 174px; }
.offers-ai-note { margin: 14px 0 0; color: var(--ink-soft); font-size: .72rem; line-height: 1.35; }

/* Mit dem zusätzlichen Angebots-Reiter früher auf das bestehende Mobilmenü wechseln. */
@media (min-width: 1081px) and (max-width: 1350px) {
  .nav { display: none; position: absolute; top: 78px; left: 0; right: 0; background: #fff; padding: 12px var(--gutter) 20px; box-shadow: var(--shadow-soft); border-bottom: 1px solid rgba(47,61,33,.1); }
  .nav.open { display: block; }
  .nav ul { flex-direction: column; align-items: stretch; gap: 2px; }
  .nav li:not(:last-child) { border-bottom: 1px solid rgba(47,61,33,.08); }
  .nav li:not(:last-child)::after { display: none; }
  .nav a { padding: 13px 6px; }
  .nav a::before { left: 6px; right: auto; width: 26px; bottom: 8px; }
  .nav-toggle { display: grid; place-items: center; order: 4; margin-left: 8px; }
  .header .btn--gold { display: none; }
  .header__social { order: 3; margin-left: auto; }
  .brand { order: 1; }
}

@media (min-width: 641px) and (max-width: 900px) {
  .region-picker__buttons { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
  .region-picker__buttons button { min-height: 48px; border-radius: 12px; }
  .offers-grid--weekly { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .offers-grid--weekly .offer-card:last-child { grid-column: 1 / -1; width: calc((100% - 20px) / 2); justify-self: center; }
  .offers-grid--more { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 1080px) and (min-width: 901px) {
  .offers-grid--weekly { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .offers-grid--more { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
  .product-marquee-title { max-width: 13ch; }
  .p-card { width: 220px; height: 290px; }
  .p-card__body { min-height: 112px; }
  .p-card__title { min-height: 2.25rem; }
  .p-card__desc { min-height: 2.55rem; }
  .branch-page .branch { min-height: 0; }
  .branch-page .branch__body { padding: 20px; }
  .fil-result-card { padding: 14px; }
  .offers-grid--weekly,
  .offers-grid--more { grid-template-columns: 1fr; }
  .offers-grid--weekly .offer-card:last-child { width: 100%; }
  .offer-card .deal__body,
  .offer-card--detail .deal__body { min-height: 0; }
}

/* Kennzahlen ("Zahlen, auf die wir stolz sind"): zentrierte Gruppe mit
   inhaltsbreiten Spalten und gleichen Abstaenden. Zahlen auf einer Grundlinie;
   jedes Label linksbuendig am ANFANG seiner Zahl. "ca." oben links neben der 500.
   Responsive: 2 bzw. 1 Spalte. */
.stats .container { display: grid; grid-template-columns: repeat(4, auto); justify-content: center; align-items: start; gap: 0 clamp(32px, 5vw, 76px); }
.stats .lbl-wrap { grid-column: 1 / -1; text-align: center; }
.stats .stat { display: grid; grid-template-rows: auto auto; justify-items: start; row-gap: 10px; text-align: left; }
.stats .stat > b,
.stats .stat > .stat__number { margin: 0; line-height: .9; }
.stats .stat > span:last-child { margin: 0; line-height: 1.1; white-space: nowrap; }
.stat--employees .stat__number { position: relative; display: inline-block; }
.stat--employees .stat__prefix { position: absolute; right: 100%; bottom: 19%; margin-right: .18em; font-size: clamp(1.1rem, 1.8vw, 1.5rem); font-weight: 800; opacity: .85; line-height: .9; white-space: nowrap; }
@media (max-width: 1080px) { .stats .container { grid-template-columns: repeat(2, auto); row-gap: 28px; gap: 28px clamp(20px, 7vw, 60px); } }

/* Fruehstueck: Filialen-Referenzen.
   Desktop: links unter dem Text, neben der Karte (Karte rechts, ueber beide Zeilen).
   Handy: einspaltig in der Reihenfolge Text -> Karte -> Filialen. */
.breakfast-menu-section .split {
  grid-template-columns: 1fr 1fr;
  grid-template-areas: "text card" "cafes card";
  align-items: start;
  row-gap: 26px;
}
.breakfast-menu-section .prose { grid-area: text; }
.breakfast-menu-section .split__media--menu { grid-area: card; align-self: start; }
.breakfast-menu-section .breakfast-cafes { grid-area: cafes; }
.breakfast-cafes { padding-top: 26px; border-top: 1px solid rgba(47,61,33,.14); }
.breakfast-cafes__title { margin-top: 8px; color: var(--forest); font-size: clamp(1.25rem, 2vw, 1.6rem); line-height: 1.12; }
.breakfast-cafes .jobchips { margin-top: 16px; }
.breakfast-cafes .jobchip { background: #2f3d210d; border: 1px solid rgba(47,61,33,.16); color: var(--forest); }
@media (max-width: 1080px) {
  .breakfast-menu-section .split { grid-template-columns: 1fr; grid-template-areas: "text" "card" "cafes"; }
}
