:root{
  --bg:#fbf6ee;
  --surface:#fffaf2;
  --text:#1b1a18;
  --muted:#6b6256;

  --brand:#b42318;
  --brand2:#f97316;
  --ring: rgba(180,35,24,.18);

  --border: rgba(27,26,24,.14);
  --shadow: 0 18px 44px rgba(27,26,24,.12);
  --shadowSoft: 0 10px 24px rgba(27,26,24,.10);
  --radius: 18px;
  --tap: 44px;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Arial, "Noto Sans", sans-serif;
  color:var(--text);
  background:
    radial-gradient(800px 380px at 15% -10%, rgba(180,35,24,.12), transparent 60%),
    radial-gradient(900px 460px at 90% 0%, rgba(249,115,22,.10), transparent 60%),
    linear-gradient(0deg, rgba(27,26,24,.03), rgba(27,26,24,.03)),
    var(--bg);
}

a{color:inherit}
.container{width:min(1120px, 92%); margin:0 auto}

.skip{position:absolute; left:-999px; width:1px; height:1px; overflow:hidden;}
.skip:focus{
  left:12px; top:12px; width:auto; height:auto;
  padding:10px 12px;
  background:var(--surface);
  border:1px solid var(--border);
  border-radius:12px;
  box-shadow:var(--shadow);
  z-index:1000;
}

/* Topbar */
.topbar{
  background: rgba(255,250,242,.92);
  backdrop-filter: blur(10px);
  border-bottom: 1px solid var(--border);
}
.topbar__inner{
  display:flex; align-items:center; justify-content:space-between;
  padding:10px 0; gap:12px; color:var(--muted);
}
.topbar__left a{font-weight:950; text-decoration:none}
.topbar__right{display:flex; gap:10px; align-items:center; flex-wrap:wrap}

/* Pills */
.pill{
  display:inline-flex; align-items:center; justify-content:center;
  padding:8px 12px;
  border-radius:999px;
  border:1px solid var(--border);
  background: rgba(255,250,242,.92);
  text-decoration:none;
  transition: transform .15s ease, box-shadow .15s ease, background .15s ease;
}
.pill:hover{transform: translateY(-1px); box-shadow: var(--shadowSoft); background: var(--surface);}

/* Nav */
.nav{
  position: sticky; top:0; z-index:50;
  background: rgba(251,246,238,.92);
  backdrop-filter: blur(12px);
  border-bottom: 1px solid var(--border);
}
.nav__inner{display:flex; align-items:center; justify-content:space-between; padding:14px 0;}
.brand{display:flex; gap:12px; align-items:center; text-decoration:none}
.brand__logo{
  width:44px; height:44px; display:grid; place-items:center;
  border-radius:14px;
  border:1px solid var(--border);
  background: rgba(255,250,242,.92);
  box-shadow: var(--shadowSoft);
}
.brand__text small{display:block; color:var(--muted); margin-top:2px}

.menu{display:flex; gap:18px; align-items:center}
.menu a{
  color:var(--muted); text-decoration:none; font-weight:900;
  padding:10px 10px; border-radius:12px;
  transition: background .15s ease, color .15s ease;
}
.menu a:hover{background: rgba(180,35,24,.10); color: var(--text);}

.burger{
  display:none;
  width: var(--tap);
  height: var(--tap);
  border-radius: 14px;
  border:1px solid var(--border);
  background: rgba(255,250,242,.92);
  box-shadow: var(--shadowSoft);
  cursor:pointer;
}
.burger span{
  display:block;
  width:18px; height:2px;
  background: var(--text);
  margin: 5px auto;
  border-radius:2px;
}
@media (max-width: 900px){
  .menu{display:none}
  .burger{display:block}
}

/* Mobile menu */
.mobileMenu{
  display:none;
  border-bottom:1px solid var(--border);
  background: rgba(255,250,242,.92);
  backdrop-filter: blur(12px);
}
.mobileMenu__inner{display:grid; gap:10px; padding: 12px 0 16px;}
.mLink{
  display:flex; align-items:center;
  min-height: var(--tap);
  padding: 10px 12px;
  border-radius: 14px;
  border:1px solid var(--border);
  background: var(--surface);
  text-decoration:none;
  font-weight: 950;
}
.mLink--cta{
  border:0;
  color:#fff;
  background: linear-gradient(135deg, var(--brand), var(--brand2));
}

/* Buttons */
.btn{
  display:inline-flex; align-items:center; justify-content:center;
  padding:12px 16px;
  border-radius:14px;
  background: linear-gradient(135deg, var(--brand), var(--brand2));
  color:#fff;
  text-decoration:none;
  font-weight: 950;
  box-shadow: 0 18px 44px rgba(180,35,24,.18);
  transition: transform .15s ease, box-shadow .15s ease, filter .15s ease;
}
.btn:hover{transform: translateY(-2px); box-shadow: 0 26px 60px rgba(180,35,24,.22); filter: brightness(1.02);}
.btn:active{transform: translateY(0) scale(.99)}
.btn:focus-visible{outline:none; box-shadow: 0 0 0 6px var(--ring), 0 26px 60px rgba(180,35,24,.22);}
.btn--ghost{
  background: rgba(255,250,242,.92);
  color: var(--text);
  border: 1px solid var(--border);
  box-shadow: var(--shadowSoft);
}
.btn--ghost:hover{box-shadow: var(--shadow);}
.btn--small{padding:10px 12px; border-radius:12px}

/* HERO */
.hero{
  position:relative;
  min-height: 78vh;
  display:grid;
  align-items:center;
  overflow:hidden;
  border-bottom: 1px solid var(--border);
}

/* Delikatna belka “drewno” */
.heroWood{
  position:absolute; inset:0 auto auto 0;
  height:72px; width:100%;
  background:
    linear-gradient(180deg, rgba(27,26,24,.22), rgba(27,26,24,.06)),
    repeating-linear-gradient(90deg,
      rgba(255,255,255,.05) 0px,
      rgba(255,255,255,.05) 16px,
      rgba(0,0,0,.03) 16px,
      rgba(0,0,0,.03) 32px
    );
  opacity:.35;
  pointer-events:none;
}

.heroMedia{position:absolute; inset:0;}
.heroImg{width:100%; height:100%; object-fit:cover; display:block;}

/* USUNIĘTY gradient na zdjęciu */
.heroVeil{display:none;}

.hero__inner{position:relative; padding:84px 0;}
.hero__grid{
  display:grid;
  grid-template-columns: 1.2fr .8fr;
  gap:18px;
  align-items:start;
}
@media (max-width: 980px){
  .hero__grid{grid-template-columns:1fr;}
  .hero__inner{padding:58px 0;}
}

/* Karta tekstu dla czytelności */
.heroTextCard{
  max-width: 720px;
  padding: 16px 16px;
  border-radius: 18px;
  background: rgba(255,250,242,.86);
  border: 1px solid rgba(27,26,24,.18);
  box-shadow: 0 18px 44px rgba(27,26,24,.14);
  backdrop-filter: blur(10px);
}

.eyebrow{
  display:inline-flex;
  padding:8px 12px;
  border-radius:999px;
  border:1px solid rgba(27,26,24,.20);
  background: rgba(255,250,242,.95);
  box-shadow: var(--shadowSoft);
  font-weight: 950;
  color:#1b1a18;
  letter-spacing: .2px;
}
.hero h1{
  font-size: clamp(34px, 4.2vw, 58px);
  margin: 12px 0 10px;
  letter-spacing: -0.02em;
  font-weight: 1000;
  color:#1b1a18;
  text-shadow: 0 1px 0 rgba(255,255,255,.55);
  line-height: 1.08;
}
.lead{
  color:#3f3a33;
  font-size: 17px;
  max-width: 66ch;
  margin:0 0 18px;
  font-weight: 700;
  line-height: 1.55;
  text-shadow: 0 1px 0 rgba(255,255,255,.55);
}
.hero__actions{display:flex; gap:12px; flex-wrap:wrap; margin-top:10px;}
.hero__badges{display:flex; gap:10px; flex-wrap:wrap; margin-top:22px;}
.badge{
  padding:10px 12px;
  border-radius:999px;
  border:1px solid rgba(27,26,24,.20);
  background: rgba(255,250,242,.92);
  box-shadow: var(--shadowSoft);
  font-weight: 950;
  color:#2f2a24;
}

.heroCard{
  border:1px solid var(--border);
  border-radius: var(--radius);
  background: rgba(255,250,242,.92);
  box-shadow: var(--shadowSoft);
  padding:16px;
}
.heroCard__top{display:flex; align-items:baseline; justify-content:space-between; gap:10px; margin-bottom:10px;}
.ticks{margin:10px 0 0; padding-left:18px; color:var(--muted);}
.ticks li{margin:8px 0;}
.heroCard__cta{display:flex; gap:10px; flex-wrap:wrap; margin-top:14px;}
.mini{font-size:13px; margin-top:12px;}
.muted{color:var(--muted);}

/* Sections */
.section{padding:70px 0;}
.section--alt{
  background: rgba(255,250,242,.78);
  border-top:1px solid var(--border);
  border-bottom:1px solid var(--border);
}
.sectionHead{margin-bottom:16px;}
h2{font-size: clamp(26px, 3vw, 38px); margin:0 0 10px; letter-spacing:-0.02em;}

.grid2{
  display:grid;
  grid-template-columns: 1.08fr .92fr;
  gap:22px;
  align-items:start;
}
@media (max-width: 900px){ .grid2{grid-template-columns:1fr;} }

/* Features */
.featureList{display:grid; gap:12px; margin-top:18px;}
.feature{
  padding:14px;
  border-radius:16px;
  background: rgba(255,250,242,.92);
  border:1px solid var(--border);
  box-shadow: var(--shadowSoft);
}
.feature h3{margin:0 0 6px; font-size:18px; letter-spacing:-0.01em;}

/* Callout / actions */
.callout{
  margin-top:16px;
  padding:14px;
  border-radius:16px;
  border:1px solid rgba(180,35,24,.20);
  background: rgba(180,35,24,.06);
}
.actionsRow{display:flex; gap:12px; flex-wrap:wrap; margin-top:16px;}

/* Cards */
.card{
  border:1px solid var(--border);
  background: rgba(255,250,242,.92);
  border-radius: var(--radius);
  overflow:hidden;
  box-shadow: var(--shadowSoft);
  position: relative;
}
.card h3{margin:16px 16px 6px;}
.card p{margin:0 16px 10px; color:var(--muted);}
.card .btn{margin:0 16px 16px;}
.card__pad{padding:14px 16px; color:var(--muted);}
.divider{height:1px; background: var(--border);}

.media img{width:100%; height:auto; display:block; object-fit:cover;}
.media figcaption{padding:12px 14px; color:var(--muted);}

/* Offer grid */
.cards{
  display:grid;
  grid-template-columns: repeat(3, 1fr);
  gap:16px;
  margin-top:18px;
}
@media (max-width: 980px){ .cards{grid-template-columns:1fr;} }

.ribbon{
  position:absolute;
  top:12px; right:-44px;
  transform: rotate(14deg);
  background: linear-gradient(135deg, var(--brand), var(--brand2));
  color:#fff;
  font-weight: 950;
  padding:8px 52px;
  border-radius:999px;
  box-shadow: var(--shadowSoft);
  font-size: 12px;
}

/* Lists */
.list{margin:0 16px 14px; color:var(--muted);}
.list li{margin:6px 0;}

/* Gallery */
.gallery{
  display:grid;
  grid-template-columns: repeat(3, 1fr);
  gap:12px;
  margin-top:16px;
}
@media (max-width: 900px){ .gallery{grid-template-columns: repeat(2, 1fr);} }
@media (max-width: 380px){ .gallery{grid-template-columns: 1fr;} }

.gItem{
  border:1px solid var(--border);
  padding:0;
  background: rgba(255,250,242,.92);
  cursor:pointer;
  border-radius:18px;
  overflow:hidden;
  box-shadow: var(--shadowSoft);
  transition: transform .22s ease, box-shadow .22s ease;
}
.gItem:hover{transform: translateY(-3px); box-shadow: var(--shadow);}
.gItem img{width:100%; height:240px; object-fit:cover; display:block;}
@media (max-width: 900px){ .gItem img{height:160px;} }

/* FAQ */
.faq{display:grid; gap:12px; margin-top:16px;}
.faqItem{
  border:1px solid var(--border);
  border-radius:16px;
  background: rgba(255,250,242,.92);
  box-shadow: var(--shadowSoft);
  padding:10px 12px;
}
.faqItem summary{cursor:pointer; font-weight:950; padding:10px 6px;}
.faqItem p{color:var(--muted); margin:0 6px 10px;}

/* Contact */
.contactBox{
  border:1px solid rgba(180,35,24,.20);
  border-radius:18px;
  padding:14px 16px;
  background: rgba(180,35,24,.06);
  color:var(--muted);
  margin:14px 0;
}

/* Footer */
.footer{
  padding:22px 0;
  border-top:1px solid var(--border);
  background: rgba(255,250,242,.78);
  backdrop-filter: blur(12px);
}
.footer__inner{display:flex; justify-content:space-between; align-items:center; gap:14px; color:var(--muted);}
.toTop{text-decoration:none; font-weight:900;}

/* Reveal */
.reveal{ opacity: 1; transform: none; }
html.js .reveal{
  opacity:0;
  transform: translateY(16px);
  transition: opacity .65s ease, transform .65s ease;
  will-change: opacity, transform;
}
html.js .reveal.reveal--in{ opacity:1; transform: translateY(0); }

/* Image reveal */
.imgFx{
  opacity: 1;
  filter: none;
  transform: none;
  transition: opacity .75s ease, filter .75s ease, transform .75s ease;
}
html.js .imgFx{
  opacity: 0;
  filter: blur(10px);
  transform: scale(1.02);
}
html.js .imgFx.imgFx--in{
  opacity: 1;
  filter: blur(0);
  transform: scale(1);
}

/* Sticky CTA */
.stickyCta{
  position: fixed;
  left: 0; right: 0; bottom: 0;
  padding: 10px 12px calc(10px + env(safe-area-inset-bottom));
  background: rgba(255,250,242,.92);
  backdrop-filter: blur(12px);
  border-top: 1px solid var(--border);
  display: none;
  gap: 10px;
  z-index: 60;
}
.stickyBtn{
  flex:1;
  min-height: var(--tap);
  text-decoration:none;
  font-weight: 950;
  border-radius: 14px;
  padding: 12px 12px;
  text-align:center;
  box-shadow: var(--shadowSoft);
  border: 1px solid var(--border);
  background: rgba(255,250,242,.92);
  transition: transform .15s ease, box-shadow .15s ease;
}
.stickyBtn:hover{transform: translateY(-1px); box-shadow: var(--shadow);}
.stickyBtn--book{
  background: linear-gradient(135deg, var(--brand), var(--brand2));
  color:#fff;
  border:0;
}
@media (max-width: 900px){
  .stickyCta{ display:flex; }
  body{ padding-bottom: 76px; }
}

/* Lightbox */
.lightbox{position:fixed; inset:0; display:none; z-index:100}
.lightbox.isOpen{display:block}
.lightbox__backdrop{position:absolute; inset:0; background: rgba(27,26,24,.78)}
.lightbox__panel{
  position: relative;
  width: min(980px, 92%);
  margin: 6vh auto;
  background: rgba(255,250,242,.96);
  border: 1px solid rgba(255,255,255,.25);
  border-radius: 20px;
  box-shadow: 0 30px 80px rgba(0,0,0,.35);
  overflow:hidden;
}
.lightbox__figure{margin:0; display:grid; grid-template-rows: 1fr auto}
.lightbox__figure img{
  width: 100%;
  height: min(72vh, 700px);
  object-fit: contain;
  background: rgba(27,26,24,.05);
  display:block;
}
.lightbox__figure figcaption{
  padding: 12px 14px;
  color: var(--muted);
  border-top:1px solid var(--border);
}
.lbBtn{
  position:absolute;
  top: 10px;
  width: 42px;
  height: 42px;
  border-radius: 14px;
  border: 1px solid var(--border);
  background: rgba(255,250,242,.95);
  box-shadow: var(--shadowSoft);
  cursor:pointer;
  font-size: 18px;
  font-weight: 950;
  transition: transform .15s ease, box-shadow .15s ease;
}
.lbBtn:hover{ transform: translateY(-1px); box-shadow: var(--shadow); }
.lbBtn--close{ right: 10px; }
.lbBtn--prev, .lbBtn--next{
  top: 50%;
  transform: translateY(-50%);
  width: 48px;
  height: 48px;
  border-radius: 16px;
  font-size: 22px;
}
.lbBtn--prev{ left: 10px; }
.lbBtn--next{ right: 10px; }
@media (max-width: 520px){ .lbBtn--prev, .lbBtn--next{ display:none; } }

/* ===== OPINIE ===== */
.reviewsTop{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  padding: 14px 16px;
  border-radius: 18px;
  border: 1px solid var(--border);
  background: rgba(255,250,242,.92);
  box-shadow: var(--shadowSoft);
  margin-bottom: 14px;
}
@media (max-width: 700px){
  .reviewsTop{flex-direction:column; align-items:flex-start;}
}

.ratingBig{display:flex; align-items:baseline; gap:10px;}
.ratingBig__value{font-size: 40px; font-weight: 1000; letter-spacing:-.02em;}
.ratingBig__stars{font-size: 22px; color: #b42318; letter-spacing: 2px;}
.reviewsTop__meta{color: var(--muted); margin-top: 4px;}

.reviewsGrid{
  display:grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 14px;
}
@media (max-width: 980px){ .reviewsGrid{grid-template-columns: 1fr;} }

.review{padding: 0;}
.review .review__head{padding: 14px 16px 0;}
.review__stars{
  padding: 10px 16px 0;
  font-size: 18px;
  letter-spacing: 2px;
  color: #b42318;
}
.review__text{padding: 8px 16px 0; margin:0; color: var(--text); line-height: 1.55;}
.review__date{padding: 10px 16px 14px; margin:0; font-size: 13px;}

.reviewForm__title{margin:0 0 6px; font-size: 20px; letter-spacing:-.01em;}
.reviewForm .card__pad{padding: 16px;}

.formGrid{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
  margin: 12px 0;
}
@media (max-width: 700px){ .formGrid{grid-template-columns: 1fr;} }

.field{display:block; margin: 12px 0;}
.field span{display:block; font-weight: 900; margin-bottom: 6px;}
.field input, .field textarea{
  width: 100%;
  border-radius: 14px;
  border: 1px solid rgba(27,26,24,.18);
  background: rgba(255,250,242,.92);
  padding: 12px 12px;
  font: inherit;
  color: var(--text);
  box-shadow: 0 8px 18px rgba(27,26,24,.06);
}
.field input:focus, .field textarea:focus{
  outline:none;
  box-shadow: 0 0 0 6px rgba(180,35,24,.16), 0 8px 18px rgba(27,26,24,.06);
  border-color: rgba(180,35,24,.35);
}

.starPick{
  display:flex;
  align-items:center;
  gap: 6px;
  flex-wrap: wrap;
}
.starBtn{
  width: 44px;
  height: 44px;
  border-radius: 14px;
  border: 1px solid rgba(27,26,24,.18);
  background: rgba(255,250,242,.92);
  box-shadow: 0 8px 18px rgba(27,26,24,.06);
  cursor:pointer;
  font-size: 22px;
  color: rgba(180,35,24,.35);
  transition: transform .12s ease, box-shadow .12s ease, color .12s ease;
}
.starBtn:hover{transform: translateY(-1px); box-shadow: var(--shadowSoft);}
.starBtn.isOn{color:#b42318;}
.starPick__hint{margin-left: 8px; font-weight: 900;}

.formActions{
  display:flex;
  gap: 10px;
  flex-wrap: wrap;
  margin-top: 14px;
}

@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto}
  html.js .reveal, html.js .imgFx{opacity:1; transform:none; filter:none; transition:none}
}


/* ===== HERO VIDEO ===== */
.heroVideo{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  z-index:0;
}

/* zabezpieczenie czytelności tekstu */
.heroTextCard{
  position:relative;
  z-index:2;
}

.heroCard{
  position:relative;
  z-index:2;
}
