/* Foodiego Header/Footer Kontrast-Fix (v16)
   Heller Glas-Header -> dunkle, gut lesbare Farben */

/* --- Header Navigation --- */
.site-header .main-nav a{
  color: #1b3320;
  font-weight: 600;
}
.site-header .main-nav a:hover{
  color: #0d1f17;
  background: rgba(13,31,23,0.06);
}
.site-header .main-nav .nav-cta{
  color: #1b3320;
  background: rgba(198,240,74,0.18);
  box-shadow: inset 0 0 0 1.5px #9fca2e;
}
.site-header .main-nav .nav-cta:hover{
  background: #c6f04a;
  color: #0d1f17;
  box-shadow: inset 0 0 0 1.5px #9fca2e;
}

/* --- Header Logo-Schriftzug --- */
.site-header .brand b{
  color: #14281a;
}

/* --- Footer Texte besser lesbar (ueberschreibt !important-Regel) --- */
.site-footer .footer-claim{
  color: rgba(233,240,224,0.72) !important;
}
.site-footer .footer-copy{
  color: rgba(233,240,224,0.5) !important;
}


/* ==========================================================
   Foodiego UI- & Barrierefreiheits-Fixes (v16)
   ========================================================== */

/* Skip-Link fuer Tastaturnutzer */
.skip-link{
  position:absolute; left:-9999px; top:0; z-index:100;
  background:#0f2a1c; color:#fff; padding:10px 18px;
  border-radius:0 0 12px 0; font-weight:700; text-decoration:none;
}
.skip-link:focus{ left:0; }

/* Deutlich sichtbarer Fokus-Ring */
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible{
  outline:3px solid #2f6b34;
  outline-offset:2px;
  border-radius:8px;
}

/* Sticky-Leiste der Speisekarte deckend machen,
   damit Gerichte nicht dahinter durchscheinen */
.menu-toolbar{
  top:67px;
  background:#f7f9f0;
  box-shadow:0 8px 20px rgba(24,43,22,.10);
}
.menu-toolbar::before{
  content:"";
  position:absolute;
  left:-16px; right:-16px; bottom:100%;
  height:18px;
  background:#f7f9f0;
}

/* Kategorie-Ueberschriften nicht unter der Leiste verstecken */
.menu-category{ scroll-margin-top:160px; }

/* Restaurant-Kopf: Text ueber dem Foto lesbar machen */
.resto-head.has-photo h1{
  text-shadow:0 2px 12px rgba(0,0,0,.5);
}
.resto-head.has-photo .resto-cuisines,
.resto-head.has-photo .resto-facts,
.resto-head.has-photo .resto-facts li,
.resto-head.has-photo .resto-facts a{
  color:rgba(255,255,255,.95) !important;
  text-shadow:0 1px 3px rgba(0,0,0,.7);
}

/* Geschlossen-Zustand im Warenkorb eindeutig kennzeichnen */
.cart-checkout[disabled],
.cart-checkout[aria-disabled="true"]{
  opacity:.45;
  cursor:not-allowed;
  filter:grayscale(.4);
}

/* Bilder ohne Motiv sollen keinen leeren Kasten hinterlassen */
.mi-photo:empty{ display:none; }

/* Reduzierte Bewegung respektieren */
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{
    animation-duration:.01ms !important;
    animation-iteration-count:1 !important;
    transition-duration:.01ms !important;
    scroll-behavior:auto !important;
  }
}

/* --- Sticky-Leiste wirklich deckend --- */
.menu-col .menu-toolbar{
  background-image:none;
  -webkit-backdrop-filter:none;
  backdrop-filter:none;
}
.menu-col .menu-toolbar::before{ height:26px; }

/* --- Deaktivierte Bestell-Buttons klar erkennbar --- */
.add-btn:disabled,
.add-btn[disabled]{
  opacity:.35;
  cursor:not-allowed;
  filter:grayscale(.5);
  box-shadow:none;
}

/* --- Hinweis: naechste Oeffnungszeit --- */
.rc-next{
  display:inline-block;
  padding:6px 12px;
  border-radius:999px;
  font-size:13px;
  font-weight:700;
  letter-spacing:.01em;
  background:#c6f04a;
  color:#14281a;
  white-space:nowrap;
}

/* --- Oeffnungszeiten-Aufklapper --- */
.resto-hours{
  margin:14px 0 0;
  max-width:420px;
  color:#fff;
}
.resto-hours summary{
  cursor:pointer;
  display:inline-block;
  padding:8px 14px;
  border-radius:999px;
  background:rgba(255,255,255,.16);
  font-weight:600;
  font-size:14px;
  list-style:none;
}
.resto-hours summary::-webkit-details-marker{ display:none; }
.resto-hours summary::after{ content:" \25be"; }
.resto-hours[open] summary::after{ content:" \25b4"; }
.resto-hours summary:hover{ background:rgba(255,255,255,.26); }
.rh-list{
  list-style:none;
  margin:12px 0 0;
  padding:14px 16px;
  border-radius:14px;
  background:rgba(10,26,18,.72);
  display:grid;
  gap:6px;
  font-size:14px;
}
.rh-list li{
  display:flex;
  justify-content:space-between;
  gap:18px;
  color:rgba(255,255,255,.86);
}
.rh-list li.is-today{
  color:#c6f04a;
  font-weight:700;
}

/* Auf hellem Grund (kein Hero-Foto) lesbar bleiben */
.resto-head:not(.has-photo) .resto-hours{ color:inherit; }
.resto-head:not(.has-photo) .resto-hours summary{ background:rgba(20,40,26,.08); }
.resto-head:not(.has-photo) .rh-list{ background:rgba(20,40,26,.06); }
.resto-head:not(.has-photo) .rh-list li{ color:inherit; }
.resto-head:not(.has-photo) .rh-list li.is-today{ color:#2f6b34; }

/* ==========================================================
   Restaurantliste: Filterleiste, Platzhalter, Status-Chips
   ========================================================== */

.resto-filterbar{
  display:flex;
  flex-wrap:wrap;
  align-items:flex-end;
  gap:14px 18px;
  padding:16px 18px;
  margin:0 0 14px;
  background:#fff;
  border-radius:18px;
  box-shadow:0 2px 8px rgba(24,43,22,.05), 0 6px 22px rgba(24,43,22,.05);
}
.rf-field{
  display:flex;
  flex-direction:column;
  gap:6px;
  font-size:13px;
  font-weight:700;
  color:#3c5340;
}
.rf-field select{
  min-width:190px;
  padding:10px 14px;
  border-radius:12px;
  border:1.5px solid #d8e2cd;
  background:#f7f9f0;
  font:inherit;
  font-weight:600;
  color:#14281a;
  cursor:pointer;
}
.rf-field select:hover{ border-color:#9fca2e; }
.rf-check{
  display:flex;
  align-items:center;
  gap:9px;
  padding:10px 16px;
  border-radius:999px;
  border:1.5px solid #d8e2cd;
  background:#f7f9f0;
  font-size:14px;
  font-weight:700;
  color:#14281a;
  cursor:pointer;
  user-select:none;
}
.rf-check:hover{ border-color:#9fca2e; }
.rf-check input{ width:17px; height:17px; accent-color:#2f6b34; cursor:pointer; }
.resto-count{
  margin:0 0 18px;
  font-size:14px;
  color:#5b6f5c;
}
.resto-count a{ color:#2f6b34; font-weight:700; }

/* Platzhalter, wenn kein passendes Foto vorhanden ist */
.rc-photo-empty{
  display:flex;
  align-items:center;
  justify-content:center;
  background:linear-gradient(135deg,#e8f3cd 0%,#c6f04a 100%);
}
.rc-photo-empty span{
  font-family:inherit;
  font-size:56px;
  font-weight:800;
  line-height:1;
  color:#14281a;
  opacity:.55;
}

/* Kleiner Chip "Oeffnet ..." auf den Karten */
.rc-next-sm{
  display:inline-block;
  margin-left:8px;
  padding:5px 11px;
  font-size:12px;
  font-weight:700;
  border-radius:999px;
  background:#eef7d4;
  color:#31501f;
  box-shadow:inset 0 0 0 1.5px #cfe58f;
}
.restaurant-card.is-closed .rc-photo img{ filter:grayscale(.35) brightness(.94); }

/* Oeffnungszeiten-Panel etwas deckender */
.rh-list{ background:rgba(10,26,18,.88); }

@media (max-width:640px){
  .resto-filterbar{ gap:12px; }
  .rf-field, .rf-field select{ width:100%; min-width:0; }
  .rf-check{ width:100%; }
}

/* ==========================================================
   Startseite: USP-Liste, Kuechen-Kacheln, Vorteile, Gastro-CTA
   ========================================================== */

.hero-usps{
  list-style:none;
  display:flex;
  flex-wrap:wrap;
  gap:10px 12px;
  margin:22px 0 0;
  padding:0;
}
.hero-usps li{
  padding:8px 16px;
  border-radius:999px;
  background:rgba(20,40,26,.10);
  color:#14281a;
  font-size:14px;
  font-weight:700;
}

.cat-section{ padding:44px 0 8px; }
.cat-section h2{ margin:0 0 20px; }
.cat-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill, minmax(150px, 1fr));
  gap:16px;
}
.cat-tile{
  position:relative;
  display:block;
  border-radius:18px;
  overflow:hidden;
  text-decoration:none;
  background:#14281a;
  box-shadow:0 2px 8px rgba(24,43,22,.06), 0 8px 24px rgba(24,43,22,.07);
  transition:transform .18s ease, box-shadow .18s ease;
}
.cat-tile:hover{
  transform:translateY(-3px);
  box-shadow:0 6px 14px rgba(24,43,22,.10), 0 14px 34px rgba(24,43,22,.12);
}
.cat-tile img{
  display:block;
  width:100%;
  height:110px;
  object-fit:cover;
  opacity:.9;
}
.cat-tile span{
  position:absolute;
  left:0; right:0; bottom:0;
  padding:26px 14px 12px;
  color:#fff;
  font-weight:800;
  font-size:15px;
  line-height:1.2;
  background:linear-gradient(to top, rgba(10,26,18,.85), rgba(10,26,18,0));
}

.usp-section{ padding:44px 0 8px; }
.usp-section h2{ margin:0 0 20px; }
.usp-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(260px, 1fr));
  gap:18px;
}
.usp-card{
  background:#fff;
  border-radius:20px;
  padding:22px 24px;
  box-shadow:0 2px 8px rgba(24,43,22,.05), 0 8px 24px rgba(24,43,22,.06);
}
.usp-card h3{ margin:0 0 8px; font-size:18px; }
.usp-card p{ margin:0; color:#4a5c4b; line-height:1.55; }

.cta-section{ padding:34px 0 56px; }
.cta-inner{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:space-between;
  gap:20px 28px;
  padding:28px 32px;
  border-radius:24px;
  background:linear-gradient(135deg,#dcf58c 0%,#c6f04a 100%);
}
.cta-inner h2{ margin:0 0 6px; font-size:24px; }
.cta-inner p{ margin:0; max-width:56ch; color:#243a26; }

@media (max-width:640px){
  .cat-grid{ grid-template-columns:repeat(2, 1fr); }
  .cta-inner{ padding:22px; }
}

/* Kachel ohne passendes Foto */
.cat-tile-plain{ min-height:110px; background:linear-gradient(135deg,#1d3a26 0%,#2f6b34 100%); }
.cat-tile-plain span{ position:static; display:flex; align-items:center; justify-content:center; height:110px; padding:12px 14px; background:none; text-align:center; }

/* ==========================================================
   Footer in Spalten
   ========================================================== */
.footer-top{
  display:grid;
  grid-template-columns:1.6fr 1fr 1fr 1fr;
  gap:28px 32px;
  padding-bottom:26px;
}
.footer-about .footer-brand{ margin-bottom:10px; }
.footer-note{
  margin:8px 0 0;
  max-width:38ch;
  font-size:13px;
  line-height:1.55;
  color:rgba(233,240,224,.6);
}
.footer-col{ display:flex; flex-direction:column; gap:9px; }
.footer-col h2{
  margin:0 0 4px;
  font-size:13px;
  letter-spacing:.09em;
  text-transform:uppercase;
  color:rgba(233,240,224,.55);
  font-weight:800;
}
.footer-col a{
  color:rgba(233,240,224,.9);
  text-decoration:none;
  font-size:15px;
}
.footer-col a:hover{ color:#c6f04a; text-decoration:underline; }
.site-footer .footer-copy{
  margin:0;
  padding-top:18px;
  border-top:1px solid rgba(233,240,224,.14);
  font-size:13px;
}
@media (max-width:860px){
  .footer-top{ grid-template-columns:1fr 1fr; }
}
@media (max-width:520px){
  .footer-top{ grid-template-columns:1fr; gap:22px; }
}

/* Footer-Spaltenueberschriften und Notiz sichtbar machen */
.site-footer .footer-col h2{ color:#c6f04a !important; }
.site-footer .footer-note{ color:rgba(233,240,224,.72) !important; }
.site-footer .footer-col a{ color:rgba(233,240,224,.92) !important; }
.site-footer .footer-col a:hover{ color:#c6f04a !important; }
.site-footer .footer-copy{ color:rgba(233,240,224,.6) !important; }

/* Restaurant-Kopf ohne Foto: Text auf dunklem Grund lesbar */
.resto-head:not(.has-photo) .resto-cuisines,
.resto-head:not(.has-photo) .resto-facts,
.resto-head:not(.has-photo) .resto-facts li,
.resto-head:not(.has-photo) .resto-facts a{
  color:rgba(255,255,255,.88) !important;
}
.resto-head:not(.has-photo) .resto-hours{ color:#fff; }
.resto-head:not(.has-photo) .resto-hours summary{ background:rgba(255,255,255,.14); }
.resto-head:not(.has-photo) .rh-list{ background:rgba(255,255,255,.10); }
.resto-head:not(.has-photo) .rh-list li{ color:rgba(255,255,255,.86); }
.resto-head:not(.has-photo) .rh-list li.is-today{ color:#c6f04a; }
