/* ============================================================
 * public.css — strona publiczna (fundament).
 * Fonty lokalne z fonts.css. Marka: elegancja, złoto, ciemność.
 * ============================================================ */

:root {
  --pub-bg: #faf8f5;
  --pub-ink: #221f1c;
  --pub-muted: #6f6860;
  --pub-gold: #b08d57;
  --pub-line: #e8e2da;
  --pub-surface: #ffffff;
  --pub-serif: 'Cormorant Garamond', Georgia, serif;
  --pub-sans: 'Jost', system-ui, sans-serif;
}

* { box-sizing: border-box; }
body {
  margin: 0;
  font-family: var(--pub-sans);
  font-weight: 300;
  background: var(--pub-bg);
  color: var(--pub-ink);
  line-height: 1.6;
}
h1, h2, h3 { font-family: var(--pub-serif); font-weight: 600; line-height: 1.2; }

/* ── Honeypot (RODO/anti-bot) — niewidoczne dla ludzi ───────── */
.hp-field {
  position: absolute !important;
  left: -9999px !important;
  width: 1px; height: 1px;
  overflow: hidden;
}

/* ── Nav ────────────────────────────────────────────────────── */
.pub-nav {
  position: sticky; top: 0; z-index: 50;
  background: rgba(255,255,255,.92);
  backdrop-filter: blur(8px);
  border-bottom: 1px solid var(--pub-line);
}
.pub-nav__inner {
  max-width: 1200px; margin: 0 auto; padding: .9rem 1.2rem;
  display: flex; align-items: center; gap: 1rem;
}
.pub-nav__brand {
  display: flex; align-items: center; gap: .5rem;
  font-family: var(--pub-serif); font-size: 1.3rem; font-weight: 600;
  color: var(--pub-ink); text-decoration: none;
}
.pub-nav__brand i { color: var(--pub-gold); }
.pub-nav__toggle {
  margin-left: auto; border: 0; background: none; font-size: 1.5rem;
  color: var(--pub-ink); cursor: pointer; display: none;
}
.pub-nav__menu {
  margin-left: auto; display: flex; align-items: center; gap: 1.4rem;
  list-style: none; padding: 0;
}
.pub-nav__link { color: var(--pub-ink); text-decoration: none; }
.pub-nav__link.active, .pub-nav__link:hover { color: var(--pub-gold); }
.pub-nav__cta {
  padding: .5rem 1.2rem; background: var(--pub-gold); color: #fff;
  border-radius: 4px; text-decoration: none;
}
@media (max-width: 768px) {
  .pub-nav__toggle { display: block; }
  .pub-nav__menu {
    position: absolute; inset: 100% 0 auto 0; flex-direction: column;
    background: var(--pub-surface); border-bottom: 1px solid var(--pub-line);
    padding: 1rem; gap: 1rem; display: none;
  }
  .pub-nav__menu.open { display: flex; }
}

/* ── Booking ────────────────────────────────────────────────── */
.booking { max-width: 760px; margin: 0 auto; padding: 2rem 1.2rem 4rem; }
.booking__head { text-align: center; margin-bottom: 2rem; }
.booking__head h1 { font-size: 2.4rem; }
.booking__lead { color: var(--pub-muted); }
.booking__form { display: flex; flex-direction: column; gap: 1.6rem; }
.booking__services legend { font-family: var(--pub-serif); font-size: 1.3rem; }
.booking__cat h3 { font-size: 1.1rem; margin: 1rem 0 .5rem; }
.booking__service {
  display: flex; align-items: center; gap: .6rem; padding: .5rem 0;
  min-height: 44px; cursor: pointer;
}
.booking__price { margin-left: auto; color: var(--pub-gold); }
.booking__slots { display: grid; grid-template-columns: repeat(auto-fill, minmax(72px,1fr)); gap: .5rem; margin-top: .8rem; }
.booking__slot { position: relative; }
.booking__slot input { position: absolute; opacity: 0; }
.booking__slot span {
  display: block; text-align: center; padding: .6rem .3rem; min-height: 44px;
  border: 1px solid var(--pub-line); border-radius: 6px; cursor: pointer;
}
.booking__slot input:checked + span { background: var(--pub-gold); color: #fff; border-color: var(--pub-gold); }
.booking__slot--taken span { opacity: .35; cursor: not-allowed; text-decoration: line-through; }
.booking__contact { display: flex; flex-direction: column; gap: 1rem; }
.booking__contact label { display: flex; flex-direction: column; gap: .3rem; }
.booking__contact input, .booking__contact textarea {
  padding: .7rem; min-height: 44px; border: 1px solid var(--pub-line);
  border-radius: 6px; font-family: inherit;
}
.booking__errors { color: #b03a3a; padding: .8rem; border: 1px solid #b03a3a; border-radius: 6px; }
.btn-gold {
  display: inline-block; padding: .9rem 2rem; min-height: 48px;
  background: var(--pub-gold); color: #fff; border: 0; border-radius: 6px;
  font-size: 1.05rem; cursor: pointer; text-decoration: none; text-align: center;
}
.booking__success { text-align: center; padding: 3rem 1rem; }
.booking__success i { font-size: 3rem; color: var(--pub-gold); }

/* ── Legal (Impressum/Datenschutz) ──────────────────────────── */
.legal { max-width: 780px; margin: 0 auto; padding: 2.5rem 1.2rem 4rem; }
.legal h1 { font-size: 2.2rem; margin-bottom: 1.5rem; }
.legal__section { margin-bottom: 1.8rem; }
.legal__section h2 { font-size: 1.3rem; margin-bottom: .5rem; }

/* ── 404 ────────────────────────────────────────────────────── */
.notfound { text-align: center; padding: 5rem 1rem; }
.notfound h1 { font-size: 5rem; color: var(--pub-gold); margin: 0; }

/* ── Footer ─────────────────────────────────────────────────── */
.pub-footer { background: #221f1c; color: #e8e2da; margin-top: 4rem; }
.pub-footer__inner {
  max-width: 1200px; margin: 0 auto; padding: 3rem 1.2rem;
  display: grid; grid-template-columns: repeat(auto-fit, minmax(180px,1fr)); gap: 2rem;
}
.pub-footer__brand { font-family: var(--pub-serif); font-size: 1.4rem; margin: 0; }
.pub-footer__muted { color: #a49b8f; }
.pub-footer__title { font-weight: 500; text-transform: uppercase; font-size: .8rem; letter-spacing: .05em; color: #a49b8f; }
.pub-footer__link { display: block; color: #e8e2da; text-decoration: none; padding: .3rem 0; }
.pub-footer__link:hover { color: var(--pub-gold); }
.pub-footer__bottom { border-top: 1px solid #3a352d; text-align: center; padding: 1.2rem; font-size: .85rem; color: #a49b8f; }
