/* Stara Jabłoń – Rezerwacje v1.7 */
@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:wght@400;600&family=Inter:wght@300;400;500;600&display=swap');

:root {
  --sj-green:  #1a3a1a;
  --sj-mid:    #2d5a27;
  --sj-gold:   #c9a227;
  --sj-border: #d8d0c0;
  --sj-cream:  #faf8f3;
  --sj-radius: 10px;
}
#sjr-app *  { box-sizing: border-box; }
#sjr-app    { font-family: 'Inter', sans-serif; }

/* ── Krok 1: Wyszukiwarka ─────────────── */
.sjr-search-box {
  background:#fff; border:1px solid var(--sj-border);
  border-radius:var(--sj-radius); padding:24px;
  box-shadow:0 4px 20px rgba(0,0,0,.07); margin-bottom:20px;
}
.sjr-search-logo { text-align:center; margin-bottom:12px; }
.sjr-logo-img { max-height:60px; max-width:180px; }
.sjr-search-title {
  font-family:'Playfair Display',serif; color:var(--sj-mid);
  font-size:20px; margin:0 0 18px; text-align:center;
}
.sjr-section-label {
  font-size:11px; font-weight:700; text-transform:uppercase;
  letter-spacing:.5px; color:#999; margin-bottom:8px;
}
.sjr-contact-grid {
  display:grid; grid-template-columns:1fr 1fr;
  gap:12px; margin-bottom:4px;
}
@media(max-width:600px){ .sjr-contact-grid{ grid-template-columns:1fr; } }

.sjr-search-grid {
  display:grid; grid-template-columns:1fr 1fr 1fr auto;
  gap:12px; align-items:end;
}
@media(max-width:700px){ .sjr-search-grid{ grid-template-columns:1fr 1fr; } }
@media(max-width:460px){ .sjr-search-grid{ grid-template-columns:1fr; } }

.sjr-search-field label {
  display:block; font-size:12px; font-weight:700;
  text-transform:uppercase; letter-spacing:.5px; color:#888; margin-bottom:5px;
}
.sjr-search-field input[type="text"],
.sjr-search-field input[type="email"],
.sjr-search-field input[type="tel"],
.sjr-search-field input[type="date"],
.sjr-search-field select {
  width:100%; padding:10px 13px; border:1.5px solid var(--sj-border);
  border-radius:7px; font-size:14px; background:var(--sj-cream);
  font-family:'Inter',sans-serif; transition:border-color .15s;
}
.sjr-search-field input:focus,
.sjr-search-field select:focus {
  outline:none; border-color:var(--sj-mid); background:#fff;
}
.sjr-search-btn-wrap { min-width:150px; }
.sjr-btn-full { width:100%; }

/* RODO */
.sjr-rodo-box {
  margin-top:14px; padding:12px 14px;
  background:#f9f6f0; border:1px solid var(--sj-border);
  border-radius:7px;
}
.sjr-rodo-label {
  display:flex; gap:10px; align-items:flex-start;
  font-size:12px; color:#555; line-height:1.5; cursor:pointer;
}
.sjr-rodo-label input[type="checkbox"] { margin-top:2px; flex-shrink:0; width:16px; height:16px; cursor:pointer; }
.sjr-rodo-label a { color:var(--sj-mid); text-decoration:underline; }

/* Cennik */
.sjr-price-toggle { margin-top:16px; border-top:1px solid var(--sj-border); padding-top:12px; }
.sjr-btn-link {
  background:none; border:none; cursor:pointer; color:var(--sj-mid);
  font-size:13px; font-weight:600; padding:0; font-family:'Inter',sans-serif;
}
.sjr-btn-link:hover { text-decoration:underline; }

.sjr-discount-info-box {
  background:linear-gradient(135deg,var(--sj-mid),var(--sj-green));
  color:#fff; border-radius:7px; padding:10px 14px;
  font-size:13px; margin:14px 0 6px;
}
.sjr-discount-info-box strong { color:var(--sj-gold); }

.sjr-price-table { border-collapse:collapse; width:100%; max-width:560px; font-size:13px; }
.sjr-price-table th,.sjr-price-table td { padding:7px 12px; border:1px solid var(--sj-border); text-align:center; }
.sjr-price-table th { background:#f0ede6; font-weight:700; color:#444; }
.sjr-price-table td:first-child { text-align:left; font-weight:600; }
/* Kolumny cennika – neutralne kolory (bez kolorów sezonów) */
.season-high-col { background:#f5f5f5 !important; color:#333; font-weight:600; }
.season-mid-col  { background:#fafafa !important; color:#444; }
.season-low-col  { background:#fafafa !important; color:#444; }
.sjr-price-note  { font-size:11px; color:#999; margin:6px 0 0; }

/* ── Nagłówek kroku 2 ──────────────── */
.sjr-step2-header {
  background:#fff; border:1px solid var(--sj-border);
  border-radius:var(--sj-radius) var(--sj-radius) 0 0;
  padding:16px 20px; border-bottom:none;
}

/* ── Krok 2: Wyniki ─────────────────── */
.sjr-result-header {
  display:flex; align-items:center; justify-content:space-between;
  background:var(--sj-green); color:#fff;
  padding:14px 18px; border-radius:0;
  font-size:15px; font-weight:600; gap:10px; flex-wrap:wrap;
}
/* Pola dat wbudowane w nagłówek */
.sjr-inline-dates {
  display:flex; align-items:center; gap:10px; flex-wrap:wrap;
}
.sjr-inline-date-field label {
  display:block; font-size:10px; text-transform:uppercase;
  letter-spacing:.5px; color:rgba(255,255,255,.6); margin-bottom:3px;
}
.sjr-date-input {
  background:rgba(255,255,255,.15); border:1.5px solid rgba(255,255,255,.3);
  color:#fff; padding:6px 10px; border-radius:6px; font-size:13px;
  font-family:'Inter',sans-serif; cursor:pointer; outline:none;
}
.sjr-date-input:focus { border-color:var(--sj-gold); background:rgba(255,255,255,.2); }
.sjr-date-input::-webkit-calendar-picker-indicator { filter:invert(1); opacity:.7; }
.sjr-arrow-label { color:rgba(255,255,255,.6); font-size:16px; }
.sjr-btn-gold {
  background:var(--sj-gold); color:var(--sj-green); font-weight:700;
  padding:7px 14px; font-size:12px; border-radius:6px;
  border:none; cursor:pointer; font-family:'Inter',sans-serif;
}
.sjr-btn-gold:hover { background:var(--sj-gold-lt,#e8c96a); }
.sjr-mini-months {
  display:flex; flex-wrap:wrap; border:1px solid var(--sj-border);
  border-top:none; border-radius:0 0 0 0; background:#fff;
}
.sjr-mini-month { flex:1; min-width:260px; padding:12px 14px; }
.sjr-mini-month+.sjr-mini-month { border-left:1px solid var(--sj-border); }
@media(max-width:560px){
  .sjr-mini-month+.sjr-mini-month{ border-left:none; border-top:1px solid var(--sj-border); }
}
.sjr-mini-cal { margin-bottom:0; }
.sjr-mini-cal-loading { text-align:center; padding:30px; color:#888; font-size:13px; }
.sjr-month-name { font-weight:700; font-size:14px; color:var(--sj-mid); margin-bottom:8px; text-align:center; }
.sjr-days-grid  { display:grid; grid-template-columns:repeat(7,1fr); gap:2px; }
.sjr-day-name   { text-align:center; font-size:10px; font-weight:700; color:#aaa; padding:4px 0; text-transform:uppercase; }

.sjr-day {
  aspect-ratio:1; display:flex; flex-direction:column;
  align-items:center; justify-content:center;
  border-radius:4px; font-size:12px; border:1.5px solid transparent;
  user-select:none; position:relative; overflow:hidden;
}
.sjr-day .dn { font-weight:600; line-height:1; position:relative; z-index:1; }
.sjr-day .dp { font-size:8px; color:#666; margin-top:1px; line-height:1; position:relative; z-index:1; }
.sjr-day.empty    { background:transparent; }
.sjr-day.past     { color:#ccc !important; background:#f8f8f8 !important; }
/* Zajęty – czerwony */
.sjr-day.unavailable,.sjr-day.reserved {
  background:#fff0f0; color:#bbb; border-color:#f0c8c8;
}
/* Dostępny – zielony (bez rozróżnienia sezonu wizualnie) */
.sjr-day.available,
.sjr-day.available.season-high,
.sjr-day.available.season-mid,
.sjr-day.available.season-low {
  background:#f0faf0; color:#1e5a1e; border-color:#a0d8a0;
}
/* Dni przyjazdu/wyjazdu – ciemna zielona obwódka + tło */
.sjr-day.sel-start,.sjr-day.sel-end {
  background:#2d5a27 !important;
  color:#fff !important;
  border:3px solid #1a3a1a !important;
  font-weight:700;
}
.sjr-day.sel-start .dp,.sjr-day.sel-end .dp { color:rgba(255,255,255,.8) !important; }
/* Zakres wybranego pobytu – kreskowanie przez pseudo-element,
   tło oryginalne (zielone/czerwone) pozostaje widoczne */
.sjr-day.in-range {
  border:2px solid #2d7a2d !important;
  position:relative;
  overflow:hidden;
}
/* Kreski nałożone jako warstwa nad oryginalnym tłem */
.sjr-day.in-range::after {
  content:'';
  position:absolute;
  inset:0;
  background: repeating-linear-gradient(
    -45deg,
    transparent,
    transparent 4px,
    rgba(30,90,30,0.22) 4px,
    rgba(30,90,30,0.22) 6px
  );
  pointer-events:none;
}
.sjr-day.in-range .dp { color:#1e5a1e; }
/* Dzisiaj */
.sjr-day.today { box-shadow:inset 0 0 0 2px var(--sj-gold); }

/* Podsumowanie */
.sjr-result-summary {
  background:#fff; border:1px solid var(--sj-border); border-top:none;
  padding:18px 20px; border-radius:0 0 8px 8px;
}
.sjr-summary-row {
  display:flex; align-items:center; justify-content:space-between;
  padding:7px 0; border-bottom:1px solid #f0ede6; font-size:14px;
}
.sjr-summary-row:last-of-type { border-bottom:none; }
.sjr-summary-label { color:#888; }
.sjr-summary-value { font-weight:600; color:var(--sj-green); }
.sjr-summary-total .sjr-summary-label { font-weight:700; color:var(--sj-green); }
.sjr-summary-total .sjr-summary-value { font-size:20px; color:var(--sj-gold); font-family:'Playfair Display',serif; }
.sjr-summary-actions { margin-top:14px; }

/* Niedostępność */
.sjr-unavail-box {
  background:#fff; border:1px solid var(--sj-border); border-top:none;
  padding:28px; text-align:center; border-radius:0 0 8px 8px;
}
.sjr-unavail-icon { font-size:40px; margin-bottom:10px; }
.sjr-unavail-box h4 { color:var(--sj-green); margin:0 0 8px; font-size:17px; }
.sjr-unavail-box p  { color:#888; font-size:14px; margin-bottom:16px; }

/* ── Przyciski ───────────────────────── */
.sjr-btn {
  display:inline-flex; align-items:center; justify-content:center; gap:7px;
  padding:11px 22px; border-radius:7px; font-size:13px; font-weight:600;
  cursor:pointer; border:none; transition:all .15s; font-family:'Inter',sans-serif;
}
.sjr-btn-primary { background:var(--sj-mid); color:#fff; }
.sjr-btn-primary:hover { background:var(--sj-green); }
.sjr-btn-primary:disabled { background:#ccc; cursor:not-allowed; }
.sjr-btn-outline { background:transparent; border:1.5px solid var(--sj-border); color:#666; }
.sjr-btn-outline:hover { border-color:var(--sj-mid); color:var(--sj-mid); }
.sjr-btn-xs { padding:5px 12px; font-size:12px; }

/* ── Alerty ─────────────────────────── */
.sjr-alert { border-radius:7px; padding:11px 14px; font-size:13px; margin-bottom:12px; }
.sjr-alert-error   { background:#f8d7da; color:#721c24; border:1px solid #f5c6cb; }
.sjr-alert-success { background:#d4edda; color:#155724; border:1px solid #c3e6cb; }
.sjr-alert-info    { background:#d1ecf1; color:#0c5460; border:1px solid #bee5eb; }

/* ── Legenda ────────────────────────── */
.sjr-legend { display:flex; gap:14px; flex-wrap:wrap; }
.sjr-legend-item { display:flex; align-items:center; gap:5px; font-size:11px; color:#888; }
.sjr-legend-dot  { width:12px; height:12px; border-radius:3px; flex-shrink:0; }
/* Kropka legendy "Wybrany zakres" - zielone tło + kreski (jak dostępny z kreskowniem) */
.sjr-legend-dot.hatch {
  background:#f0faf0;
  border:1.5px solid #2d7a2d;
  position:relative;
  overflow:hidden;
}
.sjr-legend-dot.hatch::after {
  content:'';
  position:absolute;
  inset:0;
  background: repeating-linear-gradient(
    -45deg, transparent, transparent 3px,
    rgba(30,90,30,0.25) 3px, rgba(30,90,30,0.25) 5px
  );
}

/* ── Honeypot ───────────────────────── */
.sjr-honeypot { display:none !important; }

/* ── Spinner ────────────────────────── */
.sjr-spinner {
  display:inline-block; width:16px; height:16px;
  border:2px solid rgba(255,255,255,.4); border-top-color:#fff;
  border-radius:50%; animation:sjr-spin .7s linear infinite; vertical-align:middle;
}
.sjr-spinner-dark { border-color:#ddd; border-top-color:var(--sj-mid); }
@keyframes sjr-spin { to { transform:rotate(360deg); } }

/* ── Modal ──────────────────────────── */
.sjr-modal { display:none; position:fixed; inset:0; background:rgba(0,0,0,.5); z-index:9999; align-items:center; justify-content:center; }
.sjr-modal.show { display:flex; }
.sjr-modal-box { background:#fff; border-radius:12px; padding:34px; max-width:420px; width:90%; text-align:center; }
.sjr-modal-icon { font-size:46px; margin-bottom:10px; }
.sjr-modal-box h2 { font-family:'Playfair Display',serif; color:var(--sj-mid); margin:0 0 6px; }
.sjr-modal-ref { font-size:13px; color:#888; margin-bottom:14px; }
.sjr-modal-ref strong { color:var(--sj-green); font-size:15px; }
