/* ============================================================
   Karol Gnat — Architekt wizerunku · Booking
   Brand: midnight + bone + copper.  (Niezależne od Kasi style.css.)
   ============================================================ */
:root{
  --ink:#111214; --ink-2:#17191b; --ink-3:#1e2226;
  --bone:#f0ece4; --bone-soft:rgba(240,236,228,.72); --bone-dim:rgba(240,236,228,.5);
  --copper:#0590a3; --copper-soft:#0a7d8e; --copper-deep:#064e58;
  --steel:#8a97a0; --steel-soft:#5b6677;
  --line:rgba(5,144,163,.18);
  --error:#e07b6a;
  --serif:'EB Garamond',ui-serif,Georgia,serif;
  --sans:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;
  --mono:'JetBrains Mono',ui-monospace,monospace;
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  background:var(--ink);color:var(--bone);font-family:var(--sans);
  font-weight:300;line-height:1.6;-webkit-font-smoothing:antialiased;
}
a{color:var(--copper);text-decoration:none;transition:color .2s}
a:hover{color:#33b4c6}

/* ---------- NAV ---------- */
.nav{
  position:sticky;top:0;z-index:50;
  display:flex;justify-content:space-between;align-items:center;gap:16px;
  padding:14px clamp(20px,4vw,48px);
  background:rgba(17,18,20,.86);backdrop-filter:blur(14px);
  border-bottom:1px solid var(--line);
}
.nav-back,.nav-crumb,.nav-cta-static{
  font-family:var(--mono);font-size:11px;letter-spacing:.22em;text-transform:uppercase;
}
.nav-back{color:var(--bone-soft)}
.nav-back:hover{color:var(--copper)}
.nav-crumb{color:var(--copper);display:none}
@media (min-width:780px){.nav-crumb{display:inline-block}}
.nav-cta-static{
  color:var(--copper);border:1px solid var(--copper-deep);padding:8px 14px;
}

/* ---------- LAYOUT ---------- */
.rez{padding:clamp(48px,7vw,96px) clamp(20px,5vw,48px) clamp(64px,8vw,120px)}
.wrap{max-width:980px;margin:0 auto}

.rez-head{margin-bottom:48px;text-align:center}
.kicker{
  display:inline-flex;align-items:center;gap:10px;
  font-family:var(--mono);font-size:11px;letter-spacing:.32em;text-transform:uppercase;
  color:var(--copper);margin-bottom:20px;
}
.kicker .num{
  font-family:var(--serif);font-style:italic;font-weight:400;
  font-variation-settings:'opsz' 144;
  font-size:14px;letter-spacing:0;color:var(--copper);
}
h1{
  font-family:var(--serif);font-weight:500;
  font-variation-settings:'opsz' 144,'SOFT' 50;
  font-size:clamp(38px,6vw,76px);line-height:1.0;letter-spacing:-.022em;color:var(--bone);
  margin-bottom:24px;
}
h1 em{
  font-style:italic;font-weight:400;color:var(--copper);
  font-variation-settings:'opsz' 144,'SOFT' 100;
}
.lede{
  max-width:62ch;margin:0 auto;
  font-size:clamp(15px,1.15vw,17px);color:var(--bone-soft);line-height:1.65;
}

/* ---------- META BAR ---------- */
.booking-meta{
  display:grid;grid-template-columns:repeat(2,1fr);gap:1px;
  background:var(--line);margin:48px 0 24px;
  border:1px solid var(--line);
}
@media (min-width:680px){.booking-meta{grid-template-columns:repeat(4,1fr)}}
.booking-meta-item{
  background:var(--ink-2);padding:20px 22px;display:flex;flex-direction:column;gap:4px;
}
.booking-meta-item .label{
  font-family:var(--mono);font-size:10px;letter-spacing:.28em;text-transform:uppercase;color:var(--copper);
}
.booking-meta-item .value{
  font-family:var(--serif);font-size:20px;font-weight:500;color:var(--bone);
}
.booking-note{
  font-size:13.5px;line-height:1.6;color:var(--bone-soft);
  background:var(--ink-2);border:1px solid var(--line);border-left:3px solid var(--copper);
  padding:16px 20px;margin-bottom:48px;
}
.booking-note strong{color:var(--bone)}

/* ---------- WIDGET ---------- */
.booking-widget{display:flex;flex-direction:column;gap:32px;margin-top:32px}
.booking-step{
  background:var(--ink-2);border:1px solid var(--line);
  padding:28px clamp(20px,3vw,32px);
}
.booking-step[aria-hidden="true"]{display:none}
.booking-step-header{
  display:flex;align-items:baseline;flex-wrap:wrap;gap:12px;
  padding-bottom:16px;margin-bottom:20px;border-bottom:1px solid var(--line);
}
.booking-step-num{
  font-family:var(--serif);font-style:italic;color:var(--copper);
  font-variation-settings:'opsz' 144;font-size:18px;
}
.booking-step-title{
  font-family:var(--serif);font-size:22px;font-weight:500;color:var(--bone);
}
.booking-step-hint{
  font-family:var(--mono);font-size:10.5px;letter-spacing:.22em;text-transform:uppercase;color:var(--bone-dim);
  margin-left:auto;
}
.booking-selected{
  font-family:var(--mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--copper);
  margin-left:auto;
}

.booking-state{
  font-size:14px;color:var(--bone-soft);padding:12px 0;text-align:center;
}
.booking-state.error{color:var(--error)}

/* CALENDAR (months stack) */
.booking-calendar{display:flex;flex-direction:column;gap:24px}
.booking-month{display:flex;flex-direction:column;gap:8px}
.booking-month-head{
  display:flex;justify-content:space-between;align-items:center;
  font-family:var(--mono);font-size:11px;letter-spacing:.28em;text-transform:uppercase;
  color:var(--copper);margin-bottom:4px;padding-bottom:8px;border-bottom:1px solid var(--line);
}
/* nawigacja miesiąca: [←]   Maj 2026   [→] */
.booking-months{display:flex;flex-direction:column;gap:14px}
.booking-month-nav{display:flex;align-items:center;gap:12px;padding-bottom:12px;border-bottom:1px solid var(--line)}
.booking-month-nav button,.booking-nav-arrow{
  background:transparent;border:1px solid var(--copper-deep);color:var(--copper);
  width:34px;height:34px;flex:none;cursor:pointer;font-family:var(--mono);font-size:14px;border-radius:3px;
  display:flex;align-items:center;justify-content:center;
  transition:background .2s, color .2s, border-color .2s;
}
.booking-month-nav button:hover:not(:disabled),.booking-nav-arrow:hover:not(:disabled){background:var(--copper);color:var(--ink);border-color:var(--copper)}
.booking-month-nav button:disabled,.booking-nav-arrow:disabled{opacity:.28;cursor:not-allowed}
.booking-month-label{flex:1;text-align:center;font-family:var(--serif);font-size:21px;font-weight:500;color:var(--bone);letter-spacing:-.01em}
.booking-month-name{text-transform:capitalize}
.booking-month-year{color:var(--steel);font-weight:400;margin-left:.3em}

/* siatka 7 kolumn — nagłówki dni + komórki */
.booking-dow-row{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;margin-bottom:2px}
.booking-dow{
  font-family:var(--mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;
  color:var(--steel);text-align:center;padding:2px 0;
}
.booking-month-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}
.booking-cell{
  font-family:var(--sans);font-size:14px;font-weight:400;color:var(--bone-soft);
  background:transparent;border:1px solid transparent;border-radius:3px;
  aspect-ratio:1/1;display:flex;align-items:center;justify-content:center;
  padding:0;cursor:default;transition:background .2s,color .2s,border-color .2s;
}
.booking-cell.is-blank{border:none;background:transparent;pointer-events:none}
.booking-cell.is-available{color:var(--bone);border-color:var(--copper-deep);cursor:pointer}
.booking-cell.is-available:hover{background:rgba(5,144,163,.16);border-color:var(--copper)}
.booking-cell.is-selected{background:var(--copper);color:var(--ink);border-color:var(--copper);font-weight:600}
.booking-cell.is-unavailable,.booking-cell:disabled{color:var(--bone-dim);opacity:.4;cursor:not-allowed}

/* TIMES */
.booking-times{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:8px}
.booking-time{
  font-family:var(--mono);font-size:13px;letter-spacing:.04em;color:var(--bone-soft);
  background:transparent;border:1px solid var(--copper-deep);padding:14px 8px;cursor:pointer;
  transition:background .2s, color .2s;
}
.booking-time:hover{background:rgba(5,144,163,.12);color:var(--bone)}
.booking-time.is-selected{background:var(--copper);color:var(--ink);border-color:var(--copper)}

/* MODES */
.booking-modes{display:grid;grid-template-columns:1fr;gap:12px}
@media (min-width:680px){.booking-modes{grid-template-columns:1fr 1fr}}
.booking-mode{
  background:transparent;border:1px solid var(--copper-deep);padding:20px;cursor:pointer;
  display:flex;flex-direction:column;gap:6px;text-align:left;
  transition:background .2s, border-color .2s;
}
.booking-mode:hover{background:rgba(5,144,163,.08);border-color:var(--copper)}
.booking-mode.is-selected{background:var(--copper);border-color:var(--copper)}
.booking-mode-name{
  font-family:var(--serif);font-size:20px;font-weight:500;color:var(--bone);
}
.booking-mode-desc{font-size:13px;color:var(--bone-soft);line-height:1.5}
.booking-mode.is-selected .booking-mode-name,
.booking-mode.is-selected .booking-mode-desc{color:var(--ink)}

/* FORM */
.form{display:flex;flex-direction:column;gap:20px}
.form-field{display:flex;flex-direction:column;gap:6px}
.form-field label{
  font-family:var(--mono);font-size:10.5px;letter-spacing:.22em;text-transform:uppercase;color:var(--copper);
}
.form-field .hint{color:var(--bone-dim);font-weight:400;text-transform:none;letter-spacing:0}
.form-field input,
.form-field textarea,
.form-field select{
  background:var(--ink-3);border:1px solid var(--line);
  color:var(--bone);font-family:var(--sans);font-size:15px;font-weight:400;
  padding:14px 16px;outline:none;
  transition:border-color .2s;
}
.form-field input:focus,
.form-field textarea:focus,
.form-field select:focus{border-color:var(--copper)}
.form-field textarea{min-height:120px;resize:vertical;line-height:1.55}
.form-field select{appearance:none;-webkit-appearance:none;
  background-image:linear-gradient(45deg,transparent 50%,var(--copper) 50%),linear-gradient(135deg,var(--copper) 50%,transparent 50%);
  background-position:calc(100% - 20px) 20px,calc(100% - 14px) 20px;background-size:6px 6px;background-repeat:no-repeat;
  padding-right:42px;
}
.checkbox-field{display:flex;gap:12px;align-items:flex-start;cursor:pointer;font-size:13.5px;line-height:1.55;color:var(--bone-soft)}
.checkbox-field input{margin-top:2px;width:18px;height:18px;accent-color:var(--copper)}

.honeypot{position:absolute;left:-9999px;visibility:hidden}

/* BUTTON */
.btn{
  display:inline-flex;align-items:center;gap:12px;
  font-family:var(--sans);font-size:13px;letter-spacing:.24em;text-transform:uppercase;font-weight:600;
  padding:18px 30px;border:none;cursor:pointer;
  transition:transform .2s, background .2s, color .2s, box-shadow .2s;
}
.btn .arrow{transition:transform .3s}
.btn:hover .arrow{transform:translateX(6px)}
.btn-primary{background:var(--copper);color:var(--ink)}
.btn-primary:hover{background:#33b4c6;transform:translateY(-1px);box-shadow:0 12px 36px rgba(5,144,163,.28)}

/* STATUSES */
.form-status{
  padding:16px 20px;border-left:3px solid;margin-bottom:24px;
  font-size:14px;line-height:1.55;
}
.form-status.error{border-color:var(--error);background:rgba(224,123,106,.08);color:var(--bone)}
.form-status p+p{margin-top:4px}

/* SUCCESS */
.booking-success{
  background:var(--ink-2);border:1px solid var(--copper-deep);
  border-left:3px solid var(--copper);
  padding:36px clamp(24px,4vw,48px);
}
.booking-success h3{
  font-family:var(--serif);font-size:32px;font-weight:500;color:var(--bone);margin-bottom:16px;
}
.booking-success p{color:var(--bone-soft);margin-bottom:14px}
.booking-success ol{padding-left:20px;color:var(--bone-soft);font-size:14.5px;line-height:1.7}
.booking-success ol li{margin-bottom:6px}
.success-back{margin-top:24px}
.success-back a{font-family:var(--mono);font-size:11px;letter-spacing:.24em;text-transform:uppercase}

/* FOOTER */
.rez-foot{
  border-top:1px solid var(--line);
  padding:32px clamp(20px,5vw,48px);
  display:flex;flex-wrap:wrap;justify-content:space-between;gap:16px;
  font-family:var(--mono);font-size:10.5px;letter-spacing:.22em;text-transform:uppercase;color:var(--bone-dim);
}

/* CONTACT FALLBACK */
.contact-fallback{
  margin-top:32px;text-align:center;font-size:13.5px;color:var(--bone-soft);
}

/* MOBILE */
@media (max-width:680px){
  h1{font-size:clamp(34px,9vw,52px)}
  .booking-step{padding:24px 18px}
  .booking-step-hint{margin-left:0;flex-basis:100%}
  .booking-selected{margin-left:0;flex-basis:100%}
  .nav-cta-static{display:none}
}
