/* Kalendarz rezerwacji — spójny z motywem głównej strony */
:root{
  --forest:#2f4a3c;
  --forest-dark:#1f332a;
  --wood:#a9713f;
  --wood-dark:#7c522c;
  --cream:#f7f3ea;
}
body.booking-body{font-family:'Jost',sans-serif;background:var(--cream);color:#3a3a36;}
.booking-h1{font-family:'Playfair Display',serif;color:var(--forest-dark);}

/* Pasek z flagami (jak na reszcie strony) */
#topbar{background:var(--forest-dark);}
.lang-flags{display:flex;align-items:center;gap:.45rem;}
.lang-flags a{
  display:block;line-height:0;border-radius:3px;overflow:hidden;
  box-shadow:0 0 0 1px rgba(255,255,255,.25);
  opacity:.6;filter:grayscale(.4);transition:opacity .2s, filter .2s, transform .2s, box-shadow .2s;
}
.lang-flags a img{display:block;width:20px;height:15px;object-fit:cover;}
.lang-flags a:hover{opacity:1;filter:grayscale(0);transform:translateY(-1px);box-shadow:0 0 0 1px rgba(255,255,255,.6);}
.lang-flags a.lang-active{opacity:1;filter:grayscale(0);box-shadow:0 0 0 2px var(--wood);}

/* Hero */
.booking-hero{position:relative;height:34vh;min-height:230px;isolation:isolate;overflow:hidden;}
.booking-hero img{width:100%;height:100%;object-fit:cover;filter:brightness(.5);}
.booking-hero-content{
  position:absolute;inset:0;z-index:2;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  text-align:center;padding:1rem;
}
.booking-h1{color:#fff !important;}

/* ---------- Kroki rezerwacji (karty 1-2-3) ----------
   Strona prowadzi teraz gościa po kolei: apartament → termin → dane.
   Każdy krok to osobna, biała karta z numerem, dzięki czemu wiadomo,
   co jest czym i gdzie się właśnie jest. */
.booking-step{
  background:#fff;
  border:1px solid rgba(31,51,42,.07);
  border-radius:1.25rem;
  padding:1.5rem;
  box-shadow:0 14px 34px -26px rgba(31,51,42,.5);
}
.step-head{display:flex;align-items:flex-start;gap:.85rem;margin-bottom:1.15rem;}
.step-num{
  flex:0 0 auto;width:2rem;height:2rem;border-radius:50%;
  background:var(--forest);color:#fff;
  display:flex;align-items:center;justify-content:center;
  font-family:'Playfair Display',serif;font-weight:700;font-size:.95rem;
}
.step-title{
  font-family:'Playfair Display',serif;font-size:1.15rem;line-height:1.3;
  color:var(--forest-dark);margin:0;
}
.step-hint{font-size:.82rem;color:#8b8577;}
.step-hint-strong{color:var(--forest-dark);font-weight:600;}

/* Udogodnienia wybranego apartamentu — pod kafelkami, jako spokojne pigułki */
.amenity-list{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:1.1rem;}
.amenity-chip{
  display:inline-flex;align-items:center;gap:.35rem;
  padding:.3rem .7rem;border-radius:50px;
  background:#f5f2e9;border:1px solid #e8e2d3;
  color:#5f5a4e;font-size:.78rem;line-height:1.4;
}
.amenity-chip i{color:var(--wood);}

/* Pasek nawigacji miesięcy nad kalendarzem */
.cal-toolbar{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1rem;}
.cal-toolbar-hint{font-size:.82rem;color:#8b8577;text-align:center;}

/* Liczba osób — wydzielona linią od kalendarza, etykieta obok liczników */
.guest-row{
  display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1rem;
  margin-top:1.35rem;padding-top:1.25rem;
  border-top:1px dashed #e4dfd2;
}
.guest-row-label{font-size:.95rem;font-weight:500;color:var(--forest-dark);}
.guest-fields{display:flex;gap:1.75rem;}

/* Prawa kolumna jedzie z gościem, gdy przewija kalendarz */
@media (min-width: 992px){
  .booking-side{position:sticky;top:1.25rem;}
}

/* Wybór apartamentu — karty ze zdjęciem */
.apt-choice{
  position:relative;display:block;height:150px;padding:0;border:none;border-radius:1rem;
  overflow:hidden;cursor:pointer;box-shadow:0 10px 26px -16px rgba(0,0,0,.35);
  outline:3px solid transparent;outline-offset:-3px;
  transition:outline-color .2s, transform .2s, box-shadow .2s, opacity .2s, filter .2s;
}
.apt-choice:hover{transform:translateY(-2px);}
.apt-choice.active{
  outline:4px solid var(--wood);
  box-shadow:0 14px 32px -12px rgba(169,113,63,.55);
  transform:scale(1.03);
}
#aptTabs.has-selection .apt-choice:not(.active){opacity:.55;filter:grayscale(.35);}
#aptTabs.has-selection .apt-choice:not(.active):hover{opacity:.85;filter:grayscale(.1);}
.apt-choice img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.apt-choice-overlay{position:absolute;inset:0;background:linear-gradient(180deg,rgba(31,51,42,.15) 0%,rgba(31,51,42,.85) 100%);}
.apt-choice-body{position:absolute;left:0;right:0;bottom:0;padding:.85rem 1rem;text-align:left;color:#fff;}
.apt-choice-name{display:block;font-family:'Playfair Display',serif;font-weight:600;font-size:1.05rem;line-height:1.2;}
.apt-choice-meta{display:block;font-size:.78rem;color:#e2ded0;margin-top:.15rem;}
.apt-choice-badge{
  position:absolute;top:.6rem;left:.6rem;background:#000;color:#fff;
  font-size:.68rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;
  padding:.25rem .6rem;border-radius:50px;
  opacity:0;transform:translateY(-4px);transition:opacity .2s, transform .2s;
}
.apt-choice.active .apt-choice-badge{opacity:1;transform:translateY(0);}
.apt-choice-check{
  position:absolute;top:.6rem;right:.6rem;
  width:26px;height:26px;border-radius:50%;background:#000;color:#fff;font-size:1rem;
  display:flex;align-items:center;justify-content:center;
  opacity:0;transform:scale(.5);transition:opacity .2s, transform .2s;
  box-shadow:0 2px 8px rgba(0,0,0,.35);
}
.apt-choice.active .apt-choice-check{opacity:1;transform:scale(1);}

/* Nagłówek nad kalendarzem pokazujący, dla którego apartamentu jest dostępność */
.cal-apartment-heading{
  display:flex;align-items:center;gap:.6rem;
  background:#fff;border-left:4px solid var(--wood);
  border-radius:.6rem;padding:.7rem 1rem;margin-bottom:1.25rem;
  box-shadow:0 8px 20px -14px rgba(0,0,0,.3);
}
.cal-apartment-heading i{color:var(--wood);font-size:1.2rem;}
.cal-apartment-heading .label{font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;color:#9a958c;display:block;}
.cal-apartment-heading .name{font-family:'Playfair Display',serif;font-weight:600;color:var(--forest-dark);font-size:1.1rem;}

.cal-legend{display:flex;flex-wrap:wrap;gap:1.25rem;font-size:.82rem;color:#6b675e;}
.cal-legend .legend-dot{display:inline-block;width:11px;height:11px;border-radius:3px;margin-right:.4rem;vertical-align:middle;}
.legend-available{background:#eef1ec;border:1px solid #d8e0d9;}
.legend-unavailable{background:#f3ece2;border:1px solid #e4dccd;}
.legend-selected{background:var(--wood);}

/* Formularz siedzi wewnątrz karty kroku 3, więc sam nie rysuje już tła —
   inaczej biel nakładałaby się na biel i sekcja wyglądała jak goła płachta. */
.booking-form-card{background:transparent;border-radius:0;padding:0;box-shadow:none;}

/* Notki w prawej kolumnie (doba hotelowa, anulacja, dane do przelewu).
   Ikona ma tę samą wysokość wiersza co tekst — dzięki temu stoi równo
   z pierwszą linią, także gdy notka zawija się na kilka linijek. */
.side-note{
  display:flex;gap:.55rem;
  padding:.7rem .85rem;
  background:#f5f2e9;
  border:1px solid #eae4d5;
  border-radius:.75rem;
  font-size:.83rem;line-height:1.55;color:#5f5a4e;
}
.side-note i{flex:0 0 auto;color:var(--wood);font-size:.95rem;line-height:1.55;}
.side-note strong{color:var(--forest-dark);}
.side-note-account{word-break:break-all;}

.booking-footer{background:var(--forest-dark);color:#c9cfc9;}
.booking-footer a{color:#e7e2d6;}

.cal-wrap{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem;}
@media (max-width:767.98px){.cal-wrap{grid-template-columns:1fr;}}

.cal-month{background:#fff;border-radius:1rem;box-shadow:0 12px 30px -18px rgba(0,0,0,.25);padding:1.25rem;}
/* wewnątrz karty kroku kalendarz nie potrzebuje własnego cienia — zamiast
   pudełka w pudełku wystarczy delikatna ramka */
.booking-step .cal-month{box-shadow:none;border:1px solid #efe9dc;padding:1rem;}
.booking-step .cal-wrap{gap:1rem;}
.cal-month-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem;font-weight:600;color:var(--forest-dark);}
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;text-align:center;}
.cal-dow{font-size:.72rem;color:#9a958c;text-transform:uppercase;letter-spacing:.04em;padding:4px 0;}
.cal-day{
  position:relative;
  aspect-ratio:1/1;
  display:flex;align-items:center;justify-content:center;
  border-radius:.4rem;
  font-size:.85rem;
  cursor:pointer;
  user-select:none;
  transition:background .15s, color .15s;
}
.cal-day.empty{visibility:hidden;}
.cal-day.past,.cal-day.unavailable{
  color:#c7c2b8;
  text-decoration:line-through;
  cursor:not-allowed;
}
.cal-day.unavailable{background:#f3ece2;}
.cal-day.available:hover{background:#eef1ec;}
.cal-day.checkin,.cal-day.checkout{background:var(--wood);color:#fff;font-weight:600;}
.cal-day.in-range{background:#f0e2d2;}

.nav-btn{background:none;border:1px solid #e2ded4;border-radius:50%;width:32px;height:32px;color:var(--forest-dark);}
.nav-btn:hover{background:var(--forest);color:#fff;border-color:var(--forest);}
.nav-btn:disabled{opacity:.3;cursor:not-allowed;}

.guest-counter{display:flex;align-items:center;gap:.75rem;}
.guest-counter button{width:34px;height:34px;border-radius:50%;border:1px solid #d8d2c5;background:#fff;font-size:1.1rem;line-height:1;}
.guest-counter button:hover{background:var(--forest);color:#fff;border-color:var(--forest);}

.price-box{
  background-color:var(--forest);
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='600' height='600' viewBox='0 0 600 600'%3E%3Cg fill='none' stroke='%23ffffff' stroke-opacity='0.03' stroke-width='1.1'%3E%3Cpath d='M-50,70 C100,30 200,110 350,60 C450,30 550,80 650,50'/%3E%3Cpath d='M-50,140 C120,100 220,180 380,130 C480,100 560,150 650,120'/%3E%3Cpath d='M-50,220 C90,180 210,250 340,210 C460,180 560,230 650,200'/%3E%3Cpath d='M-50,300 C110,260 230,330 360,290 C470,260 570,310 650,280'/%3E%3Cpath d='M-50,380 C100,340 220,410 350,370 C460,340 560,390 650,360'/%3E%3Cpath d='M-50,460 C120,420 230,490 370,450 C470,420 570,470 650,440'/%3E%3Cpath d='M-50,540 C90,510 210,570 340,530 C460,500 560,550 650,520'/%3E%3C/g%3E%3C/svg%3E");
  background-repeat:repeat;
  background-size:600px 600px;
  color:#fff;border-radius:1rem;padding:1.5rem;
}
.price-box .row-line{display:flex;justify-content:space-between;padding:.35rem 0;border-bottom:1px dashed rgba(255,255,255,.2);font-size:.92rem;}
.price-box .row-line:last-child{border-bottom:none;}
.price-box .total{font-size:1.4rem;font-weight:700;color:#f0e6cf;}
.price-box .price-hint{color:#dfe6df;}
/* Przełącznik waluty nad kafelkiem z ceną — dyskretny, wyrównany do prawej */
.currency-switch{display:flex;align-items:center;justify-content:flex-end;gap:.5rem;}
.currency-switch label{font-size:.8rem;color:#7d7768;margin:0;}
.currency-switch select{width:auto;min-width:5.5rem;border-radius:.55rem;border-color:#e0d9c6;font-size:.85rem;}

/* Przelicznik na drugą walutę dostaje z JS bootstrapową klasę .text-muted
   (ciemny szary #6c757d) — na zielonym tle był nieczytelny. Dajemy jasną
   szałwię: czytelna, ale o pół tonu niżej niż kwota w złotówkach. */
.price-box .text-muted{color:#b9cbbd!important;}

.btn-wood{background:var(--wood);border-color:var(--wood);color:#fff;}
.btn-wood:hover{background:var(--wood-dark);border-color:var(--wood-dark);color:#fff;}
.btn-wood:disabled{opacity:.5;}

/* Przełącznik obiektów — etykieta i przyciski w jednym rzędzie (pigułka) */
.property-switch{
  display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:.75rem;
  width:fit-content;max-width:100%;margin-inline:auto;
  padding:.4rem .75rem;border-radius:999px;
  background:#fffdf8;border:1px solid rgba(47,74,60,.12);
  box-shadow:0 2px 10px rgba(47,74,60,.06);
}
.property-switch-label{
  font-size:.78rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;
  color:#8b8577;white-space:nowrap;
}
.property-switch-options{display:flex;flex-wrap:wrap;align-items:center;gap:.35rem;}
.property-switch-btn{
  display:inline-flex;align-items:center;gap:.4rem;
  padding:.35rem .9rem;border-radius:999px;
  font-size:.9rem;line-height:1.2;text-decoration:none;white-space:nowrap;
  color:var(--forest-dark);background:transparent;border:1px solid transparent;
  transition:background .2s, color .2s, border-color .2s;
}
.property-switch-btn:hover{background:rgba(47,74,60,.08);color:var(--forest-dark);}
.property-switch-btn.is-active{
  background:var(--wood);border-color:var(--wood);color:#fff;
  box-shadow:0 1px 4px rgba(124,82,44,.3);
}
.property-switch-btn.is-active:hover{background:var(--wood-dark);border-color:var(--wood-dark);color:#fff;}
.property-switch-btn i{font-size:.95em;opacity:.75;}
.property-switch-btn.is-active i{opacity:1;}
@media (max-width:575.98px){
  .property-switch{border-radius:16px;padding:.6rem .75rem;gap:.5rem;}
}
