:root{--dark:#15252a;--muted:#66767a;--soft:#f3f5f3;--accent:#b8874b;--ok:#3f7a5c;--busy:#b8544b}
html{scroll-behavior:smooth}
body{margin:0;color:var(--dark);font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
h1,h2{letter-spacing:-.03em}h2{font-size:clamp(2rem,4vw,3.2rem);font-weight:650}
.keja-nav{background:linear-gradient(to bottom,rgba(0,0,0,.55),transparent);padding:1rem 0}
.keja-nav.is-scrolled{background:var(--dark)}
.keja-nav .navbar-brand{letter-spacing:.18em}
.lang-switch{display:flex;align-items:center;gap:.35rem;margin-left:.75rem;font-size:.85rem}
.lang-switch a{color:rgba(255,255,255,.65);text-decoration:none;font-weight:600}
.lang-switch a.lang-active{color:#fff}
.lang-switch a:hover{color:#fff}
.lang-sep{color:rgba(255,255,255,.4)}
.hero{min-height:88vh;position:relative;display:flex;align-items:center;color:#fff;background:#243f45 url('../images/hero/hero.jpg') center/cover no-repeat}
.hero:before{content:"";position:absolute;inset:0;background:linear-gradient(100deg,rgba(9,18,20,.8) 0%,rgba(9,18,20,.52) 38%,rgba(9,18,20,.18) 68%,rgba(9,18,20,.06) 100%),linear-gradient(to top,rgba(0,0,0,.55),rgba(0,0,0,0) 42%)}
.hero-content{position:relative;z-index:1;padding-top:5rem}
.hero h1{font-size:clamp(4.5rem,12vw,9rem);line-height:.85;font-weight:700}
.hero-lead{font-size:clamp(1.15rem,2.5vw,1.7rem);max-width:600px}
.eyebrow{color:var(--accent);font-size:.78rem;font-weight:750;letter-spacing:.2em;margin-bottom:.8rem}
.hero .eyebrow{color:rgba(255,255,255,.85)}
.section-pad{padding:6rem 0}.section-soft{background:var(--soft)}
.info-card{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;padding:2rem;border-radius:1.25rem;background:#fff;box-shadow:0 1rem 3rem rgba(0,0,0,.07)}
.info-card div{text-align:center}.info-card strong{display:block;font-size:2rem}.info-card span{color:var(--muted);font-size:.9rem}
.features{display:grid;gap:1rem}.features div{padding:1.1rem 1.25rem;background:#fff;border-radius:.8rem}.features span{margin-right:.6rem;color:var(--accent);font-weight:800}
.quote{margin:0;padding:2rem;min-height:170px;border-left:3px solid var(--accent);background:var(--soft);color:#4c5a5e;font-style:italic}
.quote footer{margin-top:1rem;font-style:normal;font-size:.85rem;color:var(--muted)}
.quote.quote-placeholder{color:var(--muted);font-style:normal;display:flex;align-items:center;justify-content:center;text-align:center}
.contact{background:#e8eeeb}
.footer{padding:1.5rem 0;background:var(--dark);color:rgba(255,255,255,.7);font-size:.85rem}
.footer-link{color:rgba(255,255,255,.85);text-decoration:none;font-weight:600}
.footer-link:hover{color:#fff}
@media(max-width:767.98px){.section-pad{padding:4rem 0}.info-card{padding:1.25rem}}
.location-card{box-shadow:none;border:1px solid rgba(21,37,42,.08)}

/* ---------- Galeria ---------- */
.gallery-filters{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:2rem}
.gallery-filters button{border:1px solid rgba(21,37,42,.15);background:#fff;color:var(--dark);border-radius:2rem;padding:.5rem 1.2rem;font-size:.85rem;font-weight:600;cursor:pointer;transition:.2s}
.gallery-filters button:hover{border-color:var(--accent)}
.gallery-filters button.active{background:var(--dark);color:#fff;border-color:var(--dark)}
.gallery-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:.9rem}
.gallery-item{position:relative;border-radius:.9rem;overflow:hidden;cursor:pointer;background:#e2e6e4;aspect-ratio:4/3}
.gallery-item.tall{grid-row:span 2;aspect-ratio:auto}
.gallery-item img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .35s ease}
.gallery-item:hover img{transform:scale(1.06)}
.gallery-item .cap{position:absolute;left:0;right:0;bottom:0;padding:.6rem .8rem;font-size:.78rem;color:#fff;background:linear-gradient(to top,rgba(0,0,0,.6),transparent);opacity:0;transition:.2s}
.gallery-item:hover .cap{opacity:1}
.gallery-item.hidden{display:none}
@media(max-width:991.98px){.gallery-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:575.98px){.gallery-grid{grid-template-columns:repeat(2,1fr)}.gallery-item.tall{grid-row:span 1}}

/* Lightbox */
.lightbox{position:fixed;inset:0;background:rgba(10,15,16,.94);z-index:1050;display:none;align-items:center;justify-content:center;padding:2rem}
.lightbox.open{display:flex}
.lightbox img{max-width:min(90vw,1100px);max-height:82vh;border-radius:.5rem;box-shadow:0 2rem 4rem rgba(0,0,0,.5)}
.lightbox .lb-cap{position:absolute;bottom:2rem;left:0;right:0;text-align:center;color:#fff;font-size:.9rem;opacity:.85}
.lb-close,.lb-prev,.lb-next{position:absolute;background:rgba(255,255,255,.12);border:none;color:#fff;width:48px;height:48px;border-radius:50%;font-size:1.4rem;cursor:pointer;display:grid;place-items:center;transition:.2s}
.lb-close:hover,.lb-prev:hover,.lb-next:hover{background:rgba(255,255,255,.28)}
.lb-close{top:1.5rem;right:1.5rem}
.lb-prev{left:1.5rem;top:50%;transform:translateY(-50%)}
.lb-next{right:1.5rem;top:50%;transform:translateY(-50%)}
@media(max-width:575.98px){.lb-prev{left:.5rem}.lb-next{right:.5rem}.lb-close{top:.75rem;right:.75rem}}

/* ---------- Kalendarz dostępności ---------- */
.cal-months{display:flex;flex-wrap:wrap;gap:1.5rem;justify-content:flex-start}
.cal-wrap{background:#fff;border-radius:1rem;box-shadow:0 1rem 3rem rgba(0,0,0,.07);padding:1.1rem;flex:1 1 260px;max-width:300px}
.cal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:.7rem}
.cal-head h3{margin:0;font-size:.95rem;font-weight:700;text-transform:capitalize}
.cal-nav{display:flex;gap:.4rem}
.cal-nav button{border:1px solid rgba(21,37,42,.15);background:#fff;width:32px;height:32px;border-radius:50%;cursor:pointer;font-size:.95rem;line-height:1}
.cal-nav button:hover{border-color:var(--accent)}
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:.22rem;text-align:center}
.cal-grid .dow{font-size:.62rem;font-weight:700;color:var(--muted);letter-spacing:.03em;padding-bottom:.25rem}
.cal-day{aspect-ratio:1;display:grid;place-items:center;border-radius:.35rem;font-size:.72rem;font-weight:600;line-height:1}
.cal-day.free{background:#e7f2ea;color:var(--ok)}
.cal-day.busy{background:#f6e6e4;color:var(--busy);text-decoration:line-through;opacity:.85}
.cal-day.past{background:transparent;color:#c7ccca}
.cal-day.empty{background:transparent}
.cal-legend{display:flex;gap:1.25rem;margin-top:1.1rem;font-size:.8rem;color:var(--muted)}
.cal-legend span{display:inline-flex;align-items:center;gap:.4rem}
.cal-legend i{width:12px;height:12px;border-radius:3px;display:inline-block}
.cal-legend .i-free{background:#e7f2ea;border:1px solid var(--ok)}
.cal-legend .i-busy{background:#f6e6e4;border:1px solid var(--busy)}
.cal-note{font-size:.78rem;color:var(--muted);margin-top:1.25rem;margin-bottom:0}
@media(max-width:575.98px){.cal-wrap{flex:1 1 100%;max-width:340px;margin:0 auto}.cal-months{justify-content:center}}

/* ---------- Kafelek ratingu ---------- */
.rating-badge{display:flex;align-items:center;gap:.9rem;background:#fff;border:1px solid rgba(184,135,75,.35);border-radius:2.5rem;padding:.7rem 1.6rem;text-decoration:none;box-shadow:0 .6rem 1.6rem rgba(0,0,0,.06);transition:.2s}
.rating-badge:hover{border-color:var(--accent);box-shadow:0 .8rem 2rem rgba(0,0,0,.1)}
.rating-score{font-size:1.6rem;font-weight:800;color:var(--dark)}
.rating-label{font-size:.85rem;color:var(--muted);font-weight:600}

/* ---------- Kontakt ---------- */
.contact-card{background:#fff;border-radius:1.25rem;padding:2rem;box-shadow:0 1rem 3rem rgba(0,0,0,.06)}
.contact-links{display:flex;flex-direction:column;gap:.9rem;margin-top:1.5rem}
.contact-links a{display:flex;align-items:center;gap:.8rem;color:var(--dark);text-decoration:none;font-weight:600;font-size:1.05rem}
.contact-links a .ico{width:42px;height:42px;border-radius:50%;background:var(--soft);display:grid;place-items:center;flex-shrink:0;color:var(--accent);font-size:1.1rem}
.contact-links a:hover{color:var(--accent)}
.reveal-btn{display:flex;align-items:center;gap:.8rem;color:var(--dark);text-decoration:none;font-weight:600;font-size:1.05rem;background:none;border:none;padding:0;cursor:pointer;font-family:inherit;text-align:left}
.reveal-btn .ico{width:42px;height:42px;border-radius:50%;background:var(--soft);display:grid;place-items:center;flex-shrink:0;color:var(--accent);font-size:1.1rem}
.reveal-btn:hover{color:var(--accent)}
.reveal-btn .reveal-text{border-bottom:1px dashed rgba(21,37,42,.35)}
.reveal-btn:hover .reveal-text{border-color:var(--accent)}
.reveal-btn.revealed .reveal-text,.reveal-btn.revealed{border-bottom:none}

/* ---------- Wideo (miniaturki -> TikTok) ---------- */
.tiktok-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;align-items:start}
.tiktok-thumb{position:relative;display:block;border-radius:1rem;overflow:hidden;aspect-ratio:9/16;background:#e2e6e4;box-shadow:0 1rem 2.5rem rgba(0,0,0,.12)}
.tiktok-thumb img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .35s ease}
.tiktok-thumb:hover img{transform:scale(1.05)}
.tiktok-thumb .play-btn{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:56px;height:56px;border-radius:50%;background:rgba(21,37,42,.55);backdrop-filter:blur(2px);color:#fff;display:flex;align-items:center;justify-content:center;font-size:1.25rem;padding-left:4px}
@media(max-width:767.98px){.tiktok-grid{grid-template-columns:repeat(3,1fr);gap:.6rem}.tiktok-thumb .play-btn{width:38px;height:38px;font-size:.9rem}}
.contact-form label{font-size:.82rem;font-weight:700;color:var(--muted);letter-spacing:.03em}
.contact-form .form-control{border-radius:.6rem;border:1px solid rgba(21,37,42,.15);padding:.65rem .9rem}
.contact-form .form-control:focus{border-color:var(--accent);box-shadow:0 0 0 .2rem rgba(184,135,75,.15)}
.map-embed{border-radius:1rem;overflow:hidden;border:1px solid rgba(21,37,42,.08);height:320px}
.map-embed iframe{width:100%;height:100%;border:0;display:block}
