/*
 * Komunikaty pod formularzami na stronie restauracji: kontaktowym i newsletterem.
 *
 * Osobny plik, wspólny dla wszystkich szablonów stron: każdy szablon ma własną
 * paletę i własne klasy, a komunikat o wysyłce ma wyglądać tak samo wszędzie.
 * Tła są jasne i nieprzezroczyste, żeby tekst czytało się także na ciemnych
 * szablonach, gdzie kolor odziedziczony po sekcji byłby niewidoczny.
 */

.bc-form-status {
  display: none;
  margin: 1rem 0 0;
  padding: 0.85rem 1.05rem;
  border: 1px solid transparent;
  border-radius: 8px;
  font-size: 0.95rem;
  line-height: 1.5;
  text-align: left;
}

.bc-form-status--sukces,
.bc-form-status--blad,
.bc-form-status--info {
  display: block;
}

.bc-form-status--sukces {
  background-color: #e7f6ec;
  border-color: #9bd4ae;
  color: #14532d;
}

.bc-form-status--blad {
  background-color: #fdecec;
  border-color: #f0a9a9;
  color: #7f1d1d;
}

.bc-form-status--info {
  background-color: #eef2f7;
  border-color: #c3cedb;
  color: #334155;
}

/* Przycisk w trakcie wysyłki jest wyłączony — daj to po nim poznać w każdym szablonie. */
.bc-form-sending {
  opacity: 0.65;
  cursor: progress;
}

/*
 * Formularz newslettera siedzi w stopce, często wąskiej i ciemnej. Komunikat
 * jest tam samodzielnym akapitem OBOK formularza (nie w środku), bo stopkowe
 * formularze bywają układane w rząd flexem i wpis w środku wylądowałby w linii
 * z polem zamiast pod nim.
 */
.bc-newsletter-status {
  margin-top: 0.75rem;
  font-size: 0.9rem;
  padding: 0.7rem 0.9rem;
}

/* Zgoda przy zapisie — drobna, ale musi zostać czytelna także na ciemnym tle. */
.bc-newsletter-note {
  margin-top: 0.6rem;
  margin-bottom: 0;
  font-size: 0.78rem;
  line-height: 1.45;
  opacity: 0.75;
}

/*
 * Most Bootstrap -> motyw strony.
 *
 * Widoki wspólne dla wszystkich szablonów (okno dania, zamówienie, status
 * zamówienia, powrót z płatności) korzystają z klas Bootstrapa. Bez tego mostu
 * dostawały jego niebieski (#0d6efd) — przycisk, zaznaczone radio, obwódka
 * fokusu — który nie pasował do żadnego szablonu. Kolory biorą się ze słownika
 * `--site-*`, który każdy szablon mapuje na swoją paletę (koniec jego main.css),
 * a ten z kolei z palety wybranej w edytorze stron. Tekst na akcencie to
 * `--site-on-accent` — para dobierana przez paletę pod kontrast.
 */
body {
  --bs-link-color: var(--site-accent, #0d6efd);
  --bs-link-hover-color: var(--site-accent, #0a58ca);
  --bs-link-color-rgb: currentColor;
  --bs-focus-ring-color: color-mix(in srgb, var(--site-accent, #0d6efd) 30%, transparent);
}

.btn-primary,
.btn-outline-primary {
  --bs-btn-color: var(--site-on-accent, #fff);
  --bs-btn-bg: var(--site-accent, #0d6efd);
  --bs-btn-border-color: var(--site-accent, #0d6efd);
  --bs-btn-hover-color: var(--site-on-accent, #fff);
  --bs-btn-hover-bg: color-mix(in srgb, var(--site-accent, #0d6efd) 86%, #000);
  --bs-btn-hover-border-color: color-mix(in srgb, var(--site-accent, #0d6efd) 86%, #000);
  --bs-btn-active-color: var(--site-on-accent, #fff);
  --bs-btn-active-bg: color-mix(in srgb, var(--site-accent, #0d6efd) 78%, #000);
  --bs-btn-active-border-color: color-mix(in srgb, var(--site-accent, #0d6efd) 78%, #000);
  --bs-btn-disabled-color: var(--site-on-accent, #fff);
  --bs-btn-disabled-bg: var(--site-accent, #0d6efd);
  --bs-btn-disabled-border-color: var(--site-accent, #0d6efd);
  --bs-btn-focus-shadow-rgb: 0, 0, 0;
  border-radius: var(--site-radius, 0.375rem);
  font-family: var(--site-font, inherit);
  font-weight: 600;
}

.btn-outline-primary {
  --bs-btn-color: var(--site-accent, #0d6efd);
  --bs-btn-bg: transparent;
}

.btn-primary:focus-visible,
.btn-outline-primary:focus-visible {
  box-shadow: 0 0 0 0.25rem color-mix(in srgb, var(--site-accent, #0d6efd) 35%, transparent);
}

.text-primary {
  color: var(--site-accent, #0d6efd) !important;
}

.bg-primary {
  background-color: var(--site-accent, #0d6efd) !important;
  color: var(--site-on-accent, #fff);
}

.form-check-input:checked {
  background-color: var(--site-accent, #0d6efd);
  border-color: var(--site-accent, #0d6efd);
}

.form-check-input:focus,
.form-control:focus,
.form-select:focus {
  border-color: var(--site-accent, #86b7fe);
  box-shadow: 0 0 0 0.25rem color-mix(in srgb, var(--site-accent, #0d6efd) 25%, transparent);
}

/*
 * Checkbox z ikoną „ptaszka" rysowaną przez Bootstrapa na białym SVG — na
 * jasnym akcencie (np. żółtym) byłby niewidoczny. Ptaszek dziedziczy więc
 * kolor tekstu na akcencie przez maskę zamiast wbudowanego obrazka.
 */
.form-check-input[type="checkbox"]:checked {
  background-image: none;
  position: relative;
}

.form-check-input[type="checkbox"]:checked::after {
  content: "";
  position: absolute;
  inset: 0;
  background-color: var(--site-on-accent, #fff);
  -webkit-mask: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='m6 10 3 3 6-6'/%3e%3c/svg%3e") center / 100% no-repeat;
  mask: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='m6 10 3 3 6-6'/%3e%3c/svg%3e") center / 100% no-repeat;
}

.form-check-input[type="radio"]:checked {
  background-image: none;
  box-shadow: inset 0 0 0 3px var(--site-on-accent, #fff);
}

/* --- prawne 2026-09-28: dane sprzedawcy w stopce i przy zamówieniu --- */
/* Stopka: osobny wiersz pod copyrightem (stopki szablonów są flexem). */
.stopka-prawna {
  flex-basis: 100%;
  order: 3;
  font-size: 0.8125rem;
  line-height: 1.5;
  opacity: 0.85;
}
.stopka-prawna p { margin: 0 0 4px; }
.stopka-prawna__linki { display: flex; flex-wrap: wrap; gap: 4px 16px; }
.stopka-prawna__linki a { color: inherit; text-decoration: underline; text-underline-offset: 2px; }
.stopka-prawna__linki a:hover, .stopka-prawna__linki a:focus-visible { opacity: 1; text-decoration-thickness: 2px; }
.stopka-prawna__kontakt a { color: inherit; text-decoration: underline; text-underline-offset: 2px; overflow-wrap: anywhere; }

/* Przy przycisku zamówienia — kto sprzedaje i na jakich zasadach. */
.sprzedawca-zamowienia { font-size: 0.8125rem; line-height: 1.5; margin: 12px 0 0; color: inherit; opacity: 0.9; overflow-wrap: anywhere; }
.sprzedawca-zamowienia p { margin: 0 0 6px; }
.sprzedawca-zamowienia a { color: inherit; text-decoration: underline; }
.pole-alergii__info { display: block; font-size: 0.8125rem; margin-top: 4px; opacity: 0.85; }
.klauzula-formularza { font-size: 0.75rem; line-height: 1.5; margin-top: 10px; opacity: 0.8; }
.klauzula-formularza a { color: inherit; text-decoration: underline; }

/* Regulamin i informacja o danych na stronie restauracji. */
.dokument-gosci__tresc { max-width: 72ch; overflow-wrap: anywhere; }
.dokument-gosci__tresc h2 { font-size: 1.25rem; margin: 1.75rem 0 0.75rem; }
.dokument-gosci__tresc ol, .dokument-gosci__tresc ul { padding-left: 1.25rem; }
.dokument-gosci__tresc li { margin-bottom: 0.4rem; }

/* Pakiet B: napój alkoholowy na stronie zamiast przycisku zamówienia (bez
   sprzedaży na odległość) i 18+ na miejscu (SprzedazAlkoholu); zgoda na dane
   o alergii i informacja o programie lojalnościowym w checkoucie. */
.alkohol-tylko-w-lokalu { display: inline-block; margin: 0.5rem 0 0; padding: 0.3rem 0.75rem; border: 1px solid currentColor; border-radius: 999px; font-size: 0.85rem; font-weight: 600; line-height: 1.3; opacity: 0.85; }
/* Danie poza godzinami podawania (DostepnoscCzasowa) — okno dania i napis, który cart.js wstawia zamiast „Dodaj”. */
.dostepnosc-czasowa { display: inline-block; margin: 0.5rem 0 0; padding: 0.35rem 0.8rem; border: 1px dashed currentColor; border-radius: 10px; font-size: 0.85rem; line-height: 1.35; opacity: 0.9; }
.dostepnosc-czasowa small { font-size: 0.8rem; opacity: 0.85; }
[data-poza-godzinami] img { filter: grayscale(0.8); }
[data-poza-godzinami] { opacity: 0.72; }
.alkohol-18 { display: inline-block; padding: 0 0.4rem; border-radius: 4px; background: #b91c1c; color: #fff; font-size: 0.75rem; font-weight: 700; line-height: 1.5; }
.zgoda-alergii { display: flex; gap: 0.5rem; align-items: flex-start; margin-top: 0.5rem; font-size: 0.875rem; }
.zgoda-alergii input { margin-top: 0.2rem; flex: 0 0 auto; }
.lojalnosc-przy-zamowieniu { font-size: 0.875rem; margin: 0 0 0.75rem; }
