:root {
  --cream: #f5f1d6;
  --cream-2: #e9d5af;
  --paper: #fffaf0;
  --ink: #261a07;
  --muted: #765d42;
  --green: #a2521e;
  --green-dark: #9d2a0d;
  --green-deep: #5a270f;
  --terracotta: #e06012;
  --gold: #c59e6e;
  --line: rgba(38, 26, 7, .14);
  --shadow: 0 26px 70px rgba(90, 39, 15, .14);
  --radius: 28px;
  --serif: Georgia, "Times New Roman", serif;
  --sans: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  color: var(--ink);
  background: var(--cream);
  font-family: var(--sans);
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}
body.modal-open { overflow: hidden; }
button, input, textarea, select { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
button { border: 0; }
a { color: inherit; text-decoration: none; }
img { display: block; width: 100%; }

.site-header {
  position: fixed;
  z-index: 40;
  top: 0;
  left: 0;
  right: 0;
  height: 86px;
  display: grid;
  grid-template-columns: 1fr auto auto auto;
  align-items: center;
  padding: 0 clamp(22px, 4vw, 68px);
  transition: background .3s, height .3s, box-shadow .3s;
  color: #fff;
}
.site-header.scrolled {
  height: 72px;
  color: var(--ink);
  background: rgba(245, 241, 214, .9);
  backdrop-filter: blur(18px);
  box-shadow: 0 10px 35px rgba(47, 64, 55, .08);
}
.brand { display: inline-flex; align-items: center; gap: 11px; width: max-content; font-size: 18px; letter-spacing: -.02em; }
.brand img { width: 38px; height: 38px; }
.site-header:not(.scrolled) .brand img { filter: brightness(0) invert(1); }
.brand b { font-weight: 750; }
.desktop-nav { display: flex; gap: 30px; font-size: 14px; font-weight: 600; }
.desktop-nav a { opacity: .85; transition: opacity .2s; }
.desktop-nav a:hover { opacity: 1; }
.header-cta {
  justify-self: end;
  padding: 12px 20px;
  border-radius: 999px;
  cursor: pointer;
  color: var(--ink);
  background: #fff;
  font-weight: 750;
  transition: transform .2s, background .2s;
}
.site-header.scrolled .header-cta { color: #fff; background: var(--green-deep); }
.header-cta:hover { transform: translateY(-2px); }
.menu-button { display: none; }

.hero {
  position: relative;
  min-height: 790px;
  height: min(960px, 100svh);
  overflow: hidden;
  color: #fff;
  background: var(--green-deep);
}
.hero-art, .hero-shade { position: absolute; inset: 0; }
.hero-art img { width: 100%; height: 100%; object-fit: cover; }
.hero-shade { background: linear-gradient(90deg, rgba(38, 26, 7, .80) 0%, rgba(90, 39, 15, .38) 48%, rgba(224, 96, 18, .06) 76%), linear-gradient(0deg, rgba(38, 26, 7, .58), transparent 44%); }
.hero-content {
  position: relative;
  z-index: 2;
  width: min(720px, calc(100% - 44px));
  padding-top: clamp(160px, 22vh, 235px);
  margin-left: clamp(22px, 8vw, 126px);
}
.eyebrow { margin: 0 0 17px; color: var(--green); font-size: 12px; font-weight: 800; letter-spacing: .18em; text-transform: uppercase; }
.eyebrow.light { color: #f5d6a5; }
h1, h2, h3, p { margin-top: 0; }
h1 {
  margin-bottom: 24px;
  max-width: 760px;
  font-family: var(--serif);
  font-size: clamp(56px, 7.2vw, 112px);
  line-height: .91;
  letter-spacing: -.055em;
  font-weight: 400;
}
h1 em, h2 span { color: #f5d6a5; font-style: italic; font-weight: 400; }
.hero-lead { max-width: 570px; margin-bottom: 34px; font-size: clamp(17px, 1.5vw, 21px); line-height: 1.65; color: rgba(255,255,255,.84); }
.hero-actions { display: flex; align-items: center; gap: 30px; }
.primary-button {
  min-height: 54px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 24px;
  padding: 0 25px;
  border-radius: 999px;
  color: #fff;
  background: var(--green-deep);
  cursor: pointer;
  font-weight: 750;
  box-shadow: 0 10px 28px rgba(47,64,55,.19);
  transition: transform .2s, box-shadow .2s, background .2s;
}
.hero .primary-button { color: var(--ink); background: #f5f1d6; box-shadow: none; }
.primary-button:hover { transform: translateY(-2px); box-shadow: 0 15px 34px rgba(47,64,55,.23); }
.primary-button span { font-size: 20px; }
.primary-button.full { width: 100%; }
.primary-button.cream { color: var(--ink); background: #f5f1d6; }
.text-button { display: inline-flex; align-items: center; min-height: 44px; border-bottom: 1px solid currentColor; font-weight: 700; }
.text-button.light { color: #fff; }
.hero-facts {
  position: absolute;
  z-index: 3;
  right: clamp(22px, 5vw, 80px);
  bottom: 38px;
  display: grid;
  grid-template-columns: repeat(4, minmax(90px, 1fr));
  gap: 1px;
  width: min(660px, calc(100% - 44px));
  overflow: hidden;
  border: 1px solid rgba(255,255,255,.16);
  border-radius: 20px;
  background: rgba(33, 51, 43, .28);
  backdrop-filter: blur(18px);
}
.hero-facts div { padding: 17px 20px; background: rgba(255,255,255,.04); }
.hero-facts strong { display: block; font-family: var(--serif); font-size: 27px; font-weight: 400; }
.hero-facts span { display: block; margin-top: 1px; color: rgba(255,255,255,.68); font-size: 11px; text-transform: uppercase; letter-spacing: .08em; }

.section { width: min(1240px, calc(100% - 44px)); margin: 0 auto; padding: clamp(84px, 10vw, 150px) 0; }
.intro { display: grid; grid-template-columns: .9fr 1.1fr; gap: clamp(60px, 9vw, 150px); align-items: start; }
h2 { margin-bottom: 0; font-family: var(--serif); font-size: clamp(44px, 5.6vw, 78px); line-height: 1.02; letter-spacing: -.045em; font-weight: 400; }
.section-heading h2 span, .gallery-head h2 span, .availability h2 span, .location h2 span { color: var(--terracotta); }
.intro-copy { max-width: 620px; padding-top: 34px; color: var(--muted); }
.large-copy { color: var(--ink); font-size: clamp(20px, 2vw, 27px); line-height: 1.52; letter-spacing: -.02em; }

.feature-strip {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  background: rgba(255,255,255,.2);
}
.feature { min-height: 140px; display: flex; align-items: center; justify-content: center; gap: 17px; padding: 25px; border-right: 1px solid var(--line); }
.feature:last-child { border-right: 0; }
.feature-icon { width: 48px; height: 48px; display: grid; place-items: center; flex: 0 0 auto; border: 1px solid rgba(95,111,82,.25); border-radius: 50%; color: var(--green); font-family: var(--serif); font-size: 20px; }
.feature b, .feature small { display: block; }
.feature b { font-size: 15px; }
.feature small { margin-top: 3px; color: var(--muted); font-size: 12px; }

.gallery { width: min(1380px, calc(100% - 44px)); }
.gallery-head { display: grid; grid-template-columns: 1.25fr .75fr; gap: 60px; align-items: end; margin-bottom: 54px; }
.gallery-head > p { max-width: 430px; margin: 0 0 8px auto; color: var(--muted); }
.gallery-grid { display: grid; grid-template-columns: 1.4fr .8fr; grid-template-rows: repeat(2, 1fr); gap: 18px; height: clamp(590px, 65vw, 850px); }
.gallery-grid figure { position: relative; overflow: hidden; margin: 0; border-radius: var(--radius); background: #d8cbb8; }
.gallery-grid .gallery-main { grid-row: 1 / 3; }
.gallery-grid img { width: 100%; height: 100%; object-fit: cover; transition: transform .8s cubic-bezier(.2,.7,.2,1); }
.gallery-grid figure:hover img { transform: scale(1.025); }
.gallery-grid figcaption { position: absolute; left: 18px; right: 18px; bottom: 18px; display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 14px 17px; border-radius: 15px; color: #fff; background: rgba(39, 51, 44, .48); backdrop-filter: blur(14px); font-size: 14px; font-weight: 750; }
.gallery-grid figcaption small { opacity: .72; font-size: 10px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; }

.amenities { display: grid; grid-template-columns: .8fr 1.2fr; gap: clamp(60px, 10vw, 145px); }
.amenity-list { border-top: 1px solid var(--line); }
.amenity-list > div { display: grid; grid-template-columns: 44px 190px 1fr; gap: 20px; padding: 28px 0; border-bottom: 1px solid var(--line); }
.amenity-list span { color: var(--terracotta); font-size: 12px; font-weight: 800; }
.amenity-list b { font-size: 16px; }
.amenity-list p { margin: 0; color: var(--muted); font-size: 14px; }

.availability { width: min(1380px, calc(100% - 44px)); display: grid; grid-template-columns: .8fr 1.2fr; gap: clamp(48px, 8vw, 130px); align-items: center; }
.availability-copy > p:not(.eyebrow) { max-width: 470px; margin-top: 28px; color: var(--muted); font-size: 16px; }
.legend { display: flex; gap: 24px; margin-top: 27px; color: var(--muted); font-size: 12px; }
.legend span { display: flex; align-items: center; gap: 8px; }
.legend i { width: 11px; height: 11px; display: block; border-radius: 50%; }
.legend .free { background: var(--paper); border: 1px solid var(--line); }
.legend .busy { background: #d6c9b6; }
.calendar-card { padding: clamp(22px, 4vw, 46px); border: 1px solid rgba(95,111,82,.1); border-radius: 34px; background: var(--paper); box-shadow: var(--shadow); }
.calendar-toolbar { display: grid; grid-template-columns: 42px 1fr 42px; align-items: center; margin-bottom: 26px; }
.calendar-toolbar strong { text-align: center; font-family: var(--serif); font-size: 25px; font-weight: 400; text-transform: capitalize; }
.calendar-toolbar button { width: 42px; height: 42px; border-radius: 50%; color: var(--ink); background: var(--cream); cursor: pointer; }
.calendar-weekdays, .calendar-days { display: grid; grid-template-columns: repeat(7, 1fr); }
.calendar-weekdays { margin-bottom: 8px; color: #9b9d98; font-size: 10px; font-weight: 800; text-align: center; text-transform: uppercase; }
.calendar-day { aspect-ratio: 1 / .82; min-height: 46px; display: grid; place-items: center; margin: 2px; border-radius: 14px; color: var(--ink); background: transparent; font-size: 13px; }
.calendar-day.empty { visibility: hidden; }
.calendar-day.past { color: #c6c5c0; }
.calendar-day.busy { color: #a69b8d; background: #eee6db; text-decoration: line-through; }
.calendar-day.today { box-shadow: inset 0 0 0 1px var(--terracotta); }
.calendar-card .primary-button { margin-top: 25px; }

.location { width: min(1380px, calc(100% - 44px)); display: grid; grid-template-columns: 1.15fr .85fr; gap: 20px; }
.location-card, .nearby-list { min-height: 510px; border-radius: 34px; }
.location-card { position: relative; overflow: hidden; padding: clamp(35px, 6vw, 72px); color: #fff; background: linear-gradient(135deg, #5a270f, #9d2a0d 62%, #e06012); }
.location-card::after { content: ""; position: absolute; width: 430px; height: 430px; right: -100px; bottom: -160px; border: 1px solid rgba(255,255,255,.1); border-radius: 50%; box-shadow: 0 0 0 80px rgba(255,255,255,.035), 0 0 0 160px rgba(255,255,255,.02); }
.location-card > * { position: relative; z-index: 1; }
.location-card h2 span { color: #f5d6a5; }
.location-card > p:not(.eyebrow) { max-width: 530px; margin: 28px 0 34px; color: rgba(255,255,255,.72); }
.nearby-list { display: grid; grid-template-columns: 1fr 1fr; overflow: hidden; border: 1px solid var(--line); background: rgba(255,255,255,.26); }
.nearby-list div { display: flex; flex-direction: column; justify-content: flex-end; padding: 35px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.nearby-list div:nth-child(2n) { border-right: 0; }
.nearby-list div:nth-child(n+3) { border-bottom: 0; }
.nearby-list strong { font-family: var(--serif); font-size: clamp(34px, 4vw, 54px); font-weight: 400; }
.nearby-list span { margin-top: 7px; color: var(--muted); font-size: 13px; }

.closing-cta { min-height: 440px; display: flex; align-items: center; justify-content: space-between; gap: 50px; padding: clamp(60px, 8vw, 120px) clamp(22px, 8vw, 130px); color: #fff; background: var(--green-deep); }
.closing-cta h2 { font-size: clamp(48px, 6vw, 86px); }

footer { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 24px; padding: 38px clamp(22px, 5vw, 75px); background: #261a07; color: rgba(255,255,255,.68); font-size: 12px; }
.footer-brand { color: #fff; }
.footer-brand img { filter: brightness(0) invert(1); }
footer p { margin: 0; text-align: center; }
footer > div { justify-self: end; display: flex; gap: 22px; }
footer a:hover { color: #fff; }

.chat-launcher { position: fixed; z-index: 60; right: 24px; bottom: 24px; width: 58px; height: 58px; display: grid; place-items: center; border-radius: 50%; color: #fff; background: var(--green-deep); box-shadow: 0 18px 40px rgba(40,55,47,.25); cursor: pointer; }
.chat-launcher svg { width: 25px; }
.chat-pulse { position: absolute; right: 3px; top: 3px; width: 12px; height: 12px; border: 2px solid var(--cream); border-radius: 50%; background: #83aa66; }
.chat-panel { position: fixed; z-index: 61; right: 24px; bottom: 94px; width: min(380px, calc(100% - 32px)); height: min(560px, calc(100dvh - 125px)); display: grid; grid-template-rows: auto 1fr auto; overflow: hidden; border: 1px solid rgba(255,255,255,.65); border-radius: 26px; background: var(--paper); box-shadow: 0 25px 90px rgba(35,50,42,.26); opacity: 0; transform: translateY(18px) scale(.97); pointer-events: none; transition: opacity .25s, transform .25s; }
.chat-panel.open { opacity: 1; transform: translateY(0) scale(1); pointer-events: auto; }
.chat-header { display: flex; justify-content: space-between; align-items: center; padding: 18px 18px 17px; color: #fff; background: var(--green-deep); }
.chat-header > div { display: flex; align-items: center; gap: 11px; }
.chat-header p { margin: 0; }
.chat-header b, .chat-header small { display: block; }
.chat-header small { color: rgba(255,255,255,.62); font-size: 11px; }
.online-dot { width: 10px; height: 10px; border-radius: 50%; background: #9ec47e; box-shadow: 0 0 0 5px rgba(158,196,126,.13); }
.chat-header button { color: #fff; background: transparent; cursor: pointer; font-size: 28px; line-height: 1; }
.chat-messages { display: flex; flex-direction: column; gap: 10px; overflow-y: auto; padding: 18px; background: #f5f1d6; }
.message { max-width: 84%; padding: 11px 14px; border-radius: 16px 16px 16px 5px; background: #fff; box-shadow: 0 5px 17px rgba(47,64,55,.07); font-size: 13px; white-space: pre-wrap; }
.message.guest { align-self: flex-end; border-radius: 16px 16px 5px 16px; color: #fff; background: var(--green); }
.chat-form { display: grid; grid-template-columns: 1fr 44px; gap: 9px; align-items: end; padding: 13px; border-top: 1px solid var(--line); background: var(--paper); }
.chat-form textarea { max-height: 110px; resize: none; padding: 10px 11px; border: 0; outline: 0; background: transparent; font-size: 13px; }
.chat-form button { width: 44px; height: 44px; border-radius: 50%; color: #fff; background: var(--green-deep); cursor: pointer; font-size: 20px; }

.modal { position: fixed; z-index: 100; inset: 0; display: grid; place-items: center; padding: 20px; opacity: 0; pointer-events: none; transition: opacity .25s; }
.modal.open { opacity: 1; pointer-events: auto; }
.modal-backdrop { position: absolute; inset: 0; background: rgba(38,26,7,.66); backdrop-filter: blur(9px); }
.booking-modal { position: relative; width: min(880px, 100%); max-height: calc(100dvh - 40px); overflow-y: auto; padding: clamp(26px, 5vw, 55px); border-radius: 30px; background: var(--paper); box-shadow: 0 40px 120px rgba(25,35,30,.4); transform: translateY(22px) scale(.98); transition: transform .28s; }
.modal.open .booking-modal { transform: translateY(0) scale(1); }
.modal-close { position: absolute; top: 17px; right: 18px; width: 42px; height: 42px; border-radius: 50%; color: var(--ink); background: var(--cream); cursor: pointer; font-size: 25px; }
.booking-intro { margin-bottom: 28px; }
.booking-intro h2 { margin-bottom: 12px; font-size: clamp(38px, 5vw, 58px); }
.booking-intro > p:last-child { margin: 0; color: var(--muted); }
.form-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 15px; }
.booking-modal label { display: block; }
.booking-modal label > span { display: block; margin: 0 0 7px 2px; color: var(--muted); font-size: 11px; font-weight: 800; text-transform: uppercase; letter-spacing: .07em; }
.booking-modal label small { text-transform: none; letter-spacing: 0; font-weight: 500; }
.booking-modal input, .booking-modal select, .booking-modal textarea { width: 100%; border: 1px solid var(--line); border-radius: 13px; outline: 0; color: var(--ink); background: #fbf8f2; transition: border .2s, box-shadow .2s; }
.booking-modal input, .booking-modal select { height: 49px; padding: 0 13px; }
.booking-modal textarea { padding: 13px; resize: vertical; }
.booking-modal input:focus, .booking-modal select:focus, .booking-modal textarea:focus { border-color: rgba(95,111,82,.6); box-shadow: 0 0 0 4px rgba(95,111,82,.08); }
.message-field { margin-top: 15px; }
.quote-box { display: flex; align-items: center; justify-content: space-between; gap: 20px; min-height: 64px; margin: 18px 0 15px; padding: 14px 18px; border-radius: 15px; background: var(--cream); color: var(--muted); font-size: 13px; }
.quote-box strong { color: var(--ink); font-family: var(--serif); font-size: 24px; font-weight: 400; }
.form-error { display: none; margin: 0 0 12px; padding: 10px 13px; border-radius: 11px; color: #873f34; background: #f9e3dd; font-size: 12px; }
.form-error.show { display: block; }
.form-note { margin: 12px 0 0; color: var(--muted); font-size: 10px; text-align: center; }
.booking-success { display: none; padding: 40px 10px 15px; text-align: center; }
.booking-success.show { display: block; }
.booking-success > div { width: 64px; height: 64px; display: grid; place-items: center; margin: 0 auto 18px; border-radius: 50%; color: #fff; background: var(--green); font-size: 26px; }
.booking-success h3 { margin-bottom: 8px; font-family: var(--serif); font-size: 38px; font-weight: 400; }
.booking-success p { color: var(--muted); }
.booking-success .primary-button { margin-top: 10px; }

.mobile-booking { display: none; }
.reveal { opacity: 1; transform: none; transition: opacity .8s ease, transform .8s ease; }
.reveal.reveal-pending { opacity: 0; transform: translateY(24px); }
.reveal.visible { opacity: 1; transform: translateY(0); }

@media (max-width: 980px) {
  .site-header { grid-template-columns: 1fr auto auto; }
  .desktop-nav, .header-cta { display: none; }
  .menu-button { justify-self: end; width: 44px; height: 44px; display: grid; align-content: center; gap: 6px; padding: 11px; border-radius: 50%; color: currentColor; background: rgba(255,255,255,.12); }
  .menu-button span { height: 1px; background: currentColor; }
  .hero { min-height: 820px; }
  .hero-content { margin-left: 6vw; }
  .hero-facts { left: 22px; right: 22px; width: auto; }
  .intro, .amenities, .availability { grid-template-columns: 1fr; gap: 48px; }
  .intro-copy { padding-top: 0; }
  .amenity-list > div { grid-template-columns: 44px 180px 1fr; }
  .gallery-head { grid-template-columns: 1fr; gap: 24px; }
  .gallery-head > p { margin-left: 0; }
  .location { grid-template-columns: 1fr; }
  .nearby-list { min-height: 400px; }
  footer { grid-template-columns: 1fr 1fr; }
  footer p { display: none; }
}

@media (max-width: 700px) {
  .site-header { height: 70px; padding: 0 18px; }
  .site-header.scrolled { height: 64px; }
  .brand { font-size: 16px; }
  .brand img { width: 34px; height: 34px; }
  .hero { height: 92svh; min-height: 700px; }
  .hero-shade { background: linear-gradient(90deg, rgba(38,26,7,.76), rgba(90,39,15,.18)), linear-gradient(0deg, rgba(38,26,7,.76), transparent 60%); }
  .hero-content { width: calc(100% - 36px); margin-left: 18px; padding-top: 138px; }
  h1 { font-size: clamp(53px, 16vw, 74px); }
  .hero-lead { max-width: 92%; font-size: 16px; }
  .hero-actions .text-button { display: none; }
  .hero-facts { left: 14px; right: 14px; bottom: 17px; grid-template-columns: repeat(2, 1fr); border-radius: 17px; }
  .hero-facts div { padding: 10px 14px; }
  .hero-facts strong { font-size: 20px; }
  .hero-facts span { font-size: 9px; }
  .section { width: min(100% - 32px, 1240px); padding: 78px 0; }
  h2 { font-size: clamp(42px, 13vw, 58px); }
  .feature-strip { grid-template-columns: repeat(2, 1fr); }
  .feature { min-height: 112px; justify-content: flex-start; padding: 18px; }
  .feature:nth-child(2) { border-right: 0; }
  .feature:nth-child(-n+2) { border-bottom: 1px solid var(--line); }
  .feature-icon { width: 40px; height: 40px; }
  .gallery { width: calc(100% - 20px); }
  .gallery-grid { height: auto; grid-template-columns: 1fr; grid-template-rows: none; }
  .gallery-grid .gallery-main { grid-row: auto; }
  .gallery-grid figure { aspect-ratio: 1 / .78; border-radius: 22px; }
  .gallery-grid figure:not(:first-child) { aspect-ratio: 1 / .7; }
  .gallery-grid figcaption small { display: none; }
  .amenity-list > div { grid-template-columns: 34px 1fr; gap: 12px; }
  .amenity-list p { grid-column: 2; }
  .availability { width: calc(100% - 24px); }
  .calendar-card { padding: 20px 13px; border-radius: 25px; }
  .calendar-day { min-height: 39px; border-radius: 11px; }
  .location { width: calc(100% - 20px); }
  .location-card, .nearby-list { min-height: auto; border-radius: 25px; }
  .location-card { padding: 45px 28px; }
  .nearby-list div { min-height: 150px; padding: 22px; }
  .nearby-list strong { font-size: 31px; }
  .closing-cta { min-height: 430px; flex-direction: column; align-items: flex-start; justify-content: center; }
  footer { grid-template-columns: 1fr; padding-bottom: 100px; }
  footer > div { justify-self: start; flex-direction: column; gap: 7px; }
  .chat-launcher { right: 16px; bottom: 82px; width: 54px; height: 54px; }
  .chat-panel { left: 8px; right: 8px; bottom: 8px; width: auto; height: calc(100dvh - 16px); border-radius: 24px; }
  .form-grid { grid-template-columns: 1fr; gap: 12px; }
  .modal { padding: 0; align-items: end; }
  .booking-modal { width: 100%; max-height: 94dvh; padding: 42px 20px 26px; border-radius: 28px 28px 0 0; }
  .booking-intro h2 { font-size: 42px; }
  .mobile-booking { position: fixed; z-index: 55; left: 12px; right: 12px; bottom: max(10px, env(safe-area-inset-bottom)); height: 58px; display: flex; align-items: center; justify-content: space-between; padding: 0 24px; border-radius: 999px; color: #fff; background: var(--green-deep); box-shadow: 0 16px 40px rgba(33,48,41,.27); font-weight: 800; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .001ms !important; animation-iteration-count: 1 !important; transition-duration: .001ms !important; }
  .reveal { opacity: 1; transform: none; }
}


/* Warm Mazury v0.0.2 */
.section-heading h2 .plain,
.gallery-head h2 .plain,
.availability h2 .plain,
.location h2 .plain { color: var(--ink); font-style: normal; }
.location-card h2 .plain { color: #fff; }
.hero-glow { position:absolute; inset:0; pointer-events:none; background:radial-gradient(circle at 78% 34%, rgba(224,96,18,.38), transparent 26%), radial-gradient(circle at 62% 70%, rgba(197,158,110,.2), transparent 34%); mix-blend-mode:screen; }
.sun-disc { position:absolute; width:240px; height:240px; right:-30px; top:-55px; border-radius:50%; background:linear-gradient(135deg,#f5d6a5,#e06012 68%,#9d2a0d); opacity:.82; filter:blur(.2px); }
.primary-button, .header-cta, .chat-launcher, .chat-form button { background: linear-gradient(135deg, var(--terracotta), var(--green-dark)); }
.site-header.scrolled .header-cta { background: linear-gradient(135deg, var(--terracotta), var(--green-dark)); }
.hero .primary-button, .primary-button.cream { background: var(--cream); color: var(--ink); }
.feature-icon { border-color: rgba(224,96,18,.28); color:var(--terracotta); }
.calendar-day.today { box-shadow: inset 0 0 0 1px var(--terracotta), 0 0 0 3px rgba(224,96,18,.1); }
.gallery-more { min-height:52px; display:flex; margin:28px auto 0; align-items:center; gap:18px; padding:0 24px; border-radius:999px; background:transparent; border:1px solid var(--line); color:var(--ink); cursor:pointer; font-weight:750; }
.gallery-grid.has-many { grid-template-columns:repeat(3,1fr); grid-template-rows:auto; height:auto; }
.gallery-grid.has-many figure { aspect-ratio:4/3; }
.gallery-grid.has-many .gallery-main { grid-row:auto; grid-column:span 2; aspect-ratio:16/9; }
.gallery-grid.has-many figure:nth-child(n+6) { display:none; }
.gallery-grid.has-many.expanded figure { display:block; }
.gallery-grid figure { cursor:zoom-in; }
.lightbox { position:fixed; z-index:120; inset:0; display:grid; grid-template-columns:70px 1fr 70px; align-items:center; gap:12px; padding:28px; background:rgba(26,18,8,.94); opacity:0; pointer-events:none; transition:opacity .24s; }
.lightbox.open { opacity:1; pointer-events:auto; }
.lightbox figure { margin:0; max-width:min(1180px,100%); max-height:88vh; justify-self:center; }
.lightbox img { max-width:100%; max-height:82vh; object-fit:contain; border-radius:20px; }
.lightbox figcaption { margin-top:12px; color:rgba(255,255,255,.75); text-align:center; }
.lightbox button { width:50px; height:50px; border-radius:50%; color:#fff; background:rgba(255,255,255,.1); cursor:pointer; font-size:24px; }
#lightboxClose { position:absolute; right:22px; top:22px; }
.brand [data-content="brand_name"] { font-weight:750; }

@media (max-width: 760px) {
  .gallery-grid.has-many { grid-template-columns:1fr; }
  .gallery-grid.has-many .gallery-main { grid-column:auto; }
  .lightbox { grid-template-columns:46px 1fr 46px; padding:14px 8px; }
  .lightbox button { width:42px; height:42px; }
}

@media (max-width: 980px) {
  .site-header.menu-open { color:var(--ink); background:rgba(245,241,214,.97); backdrop-filter:blur(18px); }
  .site-header.menu-open .brand img { filter:none; }
  .site-header.menu-open .desktop-nav { position:fixed; left:14px; right:14px; top:78px; display:flex; flex-direction:column; gap:0; padding:12px; border:1px solid rgba(255,255,255,.7); border-radius:22px; color:var(--ink); background:rgba(255,250,240,.97); box-shadow:0 25px 70px rgba(90,39,15,.18); }
  .site-header.menu-open .desktop-nav a { padding:15px 13px; border-bottom:1px solid var(--line); }
  .site-header.menu-open .desktop-nav a:last-child { border-bottom:0; }
}

/* v003: czytelna dostępność i wybór terminu */
.calendar-day{border:1px solid transparent;font-family:inherit;cursor:default;transition:transform .15s,border-color .15s,background .15s,box-shadow .15s}.calendar-day.available{color:#31582f;background:#e5f2df;border-color:rgba(65,112,60,.16);cursor:pointer;font-weight:750}.calendar-day.available:hover{transform:translateY(-2px);background:#d7ebcf;border-color:rgba(65,112,60,.34);box-shadow:0 8px 18px rgba(65,112,60,.12)}.calendar-day.unavailable,.calendar-day:disabled{color:#aaa79f;background:#ece9e3;border-color:transparent;text-decoration:none;cursor:not-allowed;opacity:.76}.calendar-day.busy{color:#99958d;background:#e2dfd8;text-decoration:none}.calendar-day.past{color:#b9b6af;background:#f0ede8}.calendar-day.selected-start,.calendar-day.selected-end{color:#fff;background:#4f7d48;border-color:#4f7d48;box-shadow:0 0 0 3px rgba(79,125,72,.18)}.calendar-day.selected-range{color:#31582f;background:#d4e8cd}.calendar-day.today{box-shadow:inset 0 0 0 1px var(--terracotta)}


/* v0.0.6 — cinematic motion and friendly feedback */
body{opacity:.985;transition:opacity .35s ease}body.site-ready{opacity:1}.site-header,.hero-content,.hero-card{will-change:transform}.primary-button,.header-cta,.chat-launcher,.chat-form button,.calendar-day,.modal-close,.lightbox button{transition:transform .2s ease,box-shadow .2s ease,background-color .2s ease,opacity .2s ease}.primary-button:active,.header-cta:active,.chat-launcher:active,.chat-form button:active{transform:translateY(1px) scale(.985)}.primary-button.is-busy,.chat-form button.is-busy{pointer-events:none;opacity:.76}.public-spinner{width:17px;height:17px;display:inline-block;margin-right:9px;border:2px solid rgba(255,255,255,.4);border-top-color:currentColor;border-radius:50%;animation:publicSpin .7s linear infinite}.chat-form button .public-spinner{margin:0;width:15px;height:15px}@keyframes publicSpin{to{transform:rotate(360deg)}}
.hero-glow{animation:heroGlowDrift 10s ease-in-out infinite alternate}@keyframes heroGlowDrift{to{transform:translate3d(5vw,-2vh,0) scale(1.12);opacity:.82}}.hero-art img{animation:heroImageBreath 18s ease-in-out infinite alternate}@keyframes heroImageBreath{to{transform:scale(1.035)}}.hero-content.visible h1{animation:heroTitleIn .75s .08s both cubic-bezier(.2,.8,.2,1)}.hero-content.visible p,.hero-content.visible .hero-actions{animation:heroTitleIn .65s .2s both cubic-bezier(.2,.8,.2,1)}@keyframes heroTitleIn{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
.reveal{transition:opacity .78s cubic-bezier(.2,.8,.2,1),transform .78s cubic-bezier(.2,.8,.2,1);will-change:opacity,transform}.gallery-grid figure,.amenity,.nearby-grid article,.feature-strip article{transition:transform .28s ease,box-shadow .28s ease}.gallery-grid figure:hover,.amenity:hover,.nearby-grid article:hover{transform:translateY(-5px);box-shadow:0 22px 45px rgba(38,26,7,.12)}
.calendar-days.calendar-animate .calendar-day:not(.empty){animation:dayCellIn .3s backwards;animation-delay:var(--day-delay)}@keyframes dayCellIn{from{opacity:0;transform:translateY(6px) scale(.95)}to{opacity:1;transform:none}}.calendar-day.available:active{transform:scale(.94)}.calendar-day.selected-start,.calendar-day.selected-end{animation:calendarSelect .34s ease}@keyframes calendarSelect{50%{transform:scale(1.08)}}
.booking-modal{transition:transform .38s cubic-bezier(.2,.9,.2,1),opacity .25s ease}.modal.open .booking-modal{animation:modalSoftBounce .42s both cubic-bezier(.2,.9,.2,1)}@keyframes modalSoftBounce{0%{opacity:0;transform:translateY(28px) scale(.965)}100%{opacity:1;transform:none}}.booking-success.success-pop{animation:successIn .48s both cubic-bezier(.2,.9,.2,1)}.booking-success.success-pop>div{animation:successIcon .58s .12s both cubic-bezier(.2,1.2,.3,1)}@keyframes successIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@keyframes successIcon{0%{transform:scale(.4) rotate(-18deg);opacity:0}70%{transform:scale(1.13) rotate(4deg)}100%{transform:none;opacity:1}}.quote-error-shake{animation:quoteShake .4s ease}@keyframes quoteShake{25%{transform:translateX(-5px)}50%{transform:translateX(5px)}75%{transform:translateX(-3px)}}.quote-error-text{color:#9d2a0d;font-weight:700}
.site-toast-region{position:fixed;z-index:180;top:max(18px,env(safe-area-inset-top));right:18px;width:min(390px,calc(100% - 36px));display:grid;gap:10px;pointer-events:none}.site-toast{--toast-accent:var(--terracotta);position:relative;display:grid;grid-template-columns:40px 1fr 27px;gap:11px;align-items:center;overflow:hidden;padding:13px 12px 14px;border:1px solid rgba(255,255,255,.78);border-radius:17px;background:rgba(255,250,240,.96);box-shadow:0 22px 60px rgba(38,26,7,.22);backdrop-filter:blur(22px);opacity:0;transform:translateX(22px) scale(.97);pointer-events:auto;transition:opacity .24s,transform .32s cubic-bezier(.2,.9,.2,1)}.site-toast.show{opacity:1;transform:none}.site-toast.leaving{opacity:0;transform:translateX(18px) scale(.97)}.site-toast-success{--toast-accent:#56814f}.site-toast-error{--toast-accent:#a63a2b}.site-toast-warning{--toast-accent:#d8751a}.site-toast-info{--toast-accent:#72664e}.site-toast-icon{width:37px;height:37px;display:grid;place-items:center;border-radius:13px;color:#fff;background:var(--toast-accent);font-weight:900}.site-toast strong{display:block;margin-bottom:3px;font-size:13px}.site-toast p{margin:0;color:var(--muted);font-size:11px;line-height:1.42}.site-toast button{width:27px;height:27px;border-radius:50%;color:#876f57;background:transparent;font-size:19px}.site-toast>i{position:absolute;left:0;bottom:0;width:100%;height:3px;background:var(--toast-accent);transform-origin:left;animation:siteToastTimer var(--toast-duration) linear forwards}@keyframes siteToastTimer{to{transform:scaleX(0)}}
.site-alert-dialog{position:fixed;z-index:190;inset:0;display:grid;place-items:center;padding:20px;opacity:0;pointer-events:none;transition:opacity .22s ease}.site-alert-dialog.open{opacity:1;pointer-events:auto}.site-alert-backdrop{position:absolute;inset:0;background:rgba(38,26,7,.62);backdrop-filter:blur(10px)}.site-alert-card{position:relative;width:min(470px,100%);padding:39px 36px 34px;border:1px solid rgba(255,255,255,.75);border-radius:28px;background:var(--paper);box-shadow:0 38px 110px rgba(38,26,7,.36);transform:translateY(20px) scale(.96);transition:transform .34s cubic-bezier(.2,.9,.2,1)}.site-alert-dialog.open .site-alert-card{transform:none}.site-alert-close{position:absolute;right:16px;top:15px;width:39px;height:39px;border-radius:50%;color:var(--ink);background:var(--cream);font-size:23px}.site-alert-icon{width:58px;height:58px;display:grid;place-items:center;margin-bottom:21px;border-radius:18px;color:#fff;background:#d8751a;font-size:23px;font-weight:900;box-shadow:0 14px 28px rgba(216,117,26,.25)}.site-alert-icon.error{background:#a63a2b}.site-alert-icon.success{background:#56814f}.site-alert-icon.info{background:#72664e}.site-alert-card h2{margin:0 0 11px;font:400 39px/1.03 var(--serif);letter-spacing:-.04em}.site-alert-card>p:not(.eyebrow){margin:0 0 26px;color:var(--muted);font-size:13px;line-height:1.65}.site-dialog-open{overflow:hidden}
.chat-panel.open{animation:chatPanelIn .35s cubic-bezier(.2,.9,.2,1)}@keyframes chatPanelIn{from{opacity:0;transform:translateY(22px) scale(.96)}to{opacity:1;transform:none}}.message{animation:messageIn .28s both ease}@keyframes messageIn{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}.lightbox.open figure{animation:lightboxImageIn .35s both ease}@keyframes lightboxImageIn{from{opacity:0;transform:scale(.975)}to{opacity:1;transform:none}}
@media(max-width:620px){.site-toast-region{top:10px;right:10px;width:calc(100% - 20px)}.site-alert-dialog{align-items:end;padding:0}.site-alert-card{width:100%;padding:35px 21px calc(24px + env(safe-area-inset-bottom));border-radius:28px 28px 0 0}.site-alert-card h2{font-size:34px}.gallery-grid figure:hover,.amenity:hover,.nearby-grid article:hover{transform:none}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}}

/* v0.0.7 — płatności i strony prawne */
.legal-consent{display:flex!important;align-items:flex-start;gap:11px;margin:4px 0 2px;padding:13px 15px;border:1px solid rgba(90,39,15,.12);border-radius:14px;background:rgba(245,241,214,.48);font-size:11px;line-height:1.55;color:#604a34}.legal-consent input{width:17px!important;height:17px!important;min-width:17px;margin-top:1px;accent-color:#e06012}.legal-consent a{color:#9d2a0d;text-decoration:underline;text-decoration-color:rgba(157,42,13,.35);text-underline-offset:3px}.payment-assurance{display:flex;align-items:center;gap:13px;padding:14px 16px;border:1px solid rgba(224,96,18,.16);border-radius:15px;background:linear-gradient(135deg,rgba(245,241,214,.82),rgba(233,213,175,.38));color:#392610}.payment-assurance.hidden{display:none}.payment-assurance .payment-lock{display:grid;place-items:center;width:35px;height:35px;flex:0 0 35px;border-radius:50%;background:#261a07;color:#f5f1d6;font-size:20px;transform:rotate(-25deg)}.payment-assurance b,.payment-assurance small{display:block}.payment-assurance b{margin-bottom:2px;font-size:11px;letter-spacing:.02em}.payment-assurance small{color:#715d45;font-size:9px;line-height:1.45}.booking-submit-label{pointer-events:none}.primary-button.full> b{font-size:15px}.legal-body,.payment-status-body{min-height:100vh;background:radial-gradient(circle at 15% 0%,rgba(224,96,18,.12),transparent 32%),linear-gradient(135deg,#f5f1d6,#e9d5af);color:#261a07}.legal-page{width:min(860px,calc(100% - 28px));margin:0 auto;padding:50px 0 80px}.legal-back{display:inline-flex;margin-bottom:44px;color:#5a270f;font-size:11px;font-weight:700}.legal-page h1{max-width:700px;margin:8px 0 28px;font:400 clamp(43px,8vw,78px)/.95 var(--serif)}.legal-card{padding:clamp(24px,5vw,54px);border:1px solid rgba(255,255,255,.75);border-radius:28px;background:rgba(255,250,240,.82);box-shadow:0 28px 70px rgba(90,39,15,.11);backdrop-filter:blur(12px)}.legal-card h2{margin:30px 0 9px;font:400 25px/1.1 var(--serif)}.legal-card h2:first-child{margin-top:0}.legal-card p{color:#66513a;font-size:13px;line-height:1.75}.legal-card hr{height:1px;margin:34px 0;border:0;background:rgba(90,39,15,.12)}.legal-warning{margin:18px 4px 0;color:#806c54;font-size:10px;line-height:1.55}.payment-status-body{display:grid;place-items:center;padding:24px}.payment-status-shell{width:min(720px,100%)}.payment-status-brand{display:flex;align-items:center;justify-content:center;gap:10px;margin:0 auto 24px;color:#261a07;font:400 18px var(--serif)}.payment-status-brand img{width:34px;height:34px}.payment-status-card{position:relative;overflow:hidden;padding:clamp(30px,7vw,68px);border:1px solid rgba(255,255,255,.8);border-radius:32px;background:rgba(255,250,240,.88);box-shadow:0 32px 90px rgba(90,39,15,.14);text-align:center;backdrop-filter:blur(18px)}.payment-status-card::before{position:absolute;inset:0;content:"";pointer-events:none;background:radial-gradient(circle at 50% 0%,rgba(224,96,18,.1),transparent 42%)}.payment-state-icon{position:relative;z-index:1;display:grid;place-items:center;width:82px;height:82px;margin:0 auto 24px;border-radius:50%;background:#e9d5af;color:#5a270f}.payment-state-icon.success{background:#dcebd9;color:#397344}.payment-state-icon.error{background:#f4d8d2;color:#9d2a0d}.payment-state-icon.warning{background:#f5e4bf;color:#8b5719}.payment-state-icon.success::after{content:"✓";font-size:38px;font-weight:800;animation:paymentPop .45s cubic-bezier(.2,.8,.2,1)}.payment-state-icon.error::after{content:"×";font-size:44px;font-weight:700}.payment-state-icon.warning::after{content:"!";font-size:34px;font-weight:800}.payment-state-icon.checking{display:flex;gap:5px}.payment-state-icon.checking i{width:8px;height:8px;border-radius:50%;background:currentColor;animation:payDots 1.1s infinite ease-in-out}.payment-state-icon.checking i:nth-child(2){animation-delay:.13s}.payment-state-icon.checking i:nth-child(3){animation-delay:.26s}@keyframes payDots{0%,65%,100%{transform:translateY(0);opacity:.35}30%{transform:translateY(-8px);opacity:1}}@keyframes paymentPop{from{transform:scale(.3) rotate(-18deg);opacity:0}to{transform:none;opacity:1}}.payment-status-card h1{position:relative;z-index:1;margin:8px auto 14px;max-width:560px;font:400 clamp(38px,7vw,62px)/.98 var(--serif)}.payment-status-card>p:not(.eyebrow){position:relative;z-index:1;max-width:520px;margin:0 auto;color:#715d45;font-size:13px;line-height:1.7}.payment-summary{position:relative;z-index:1;display:grid;grid-template-columns:2fr .7fr 1fr;gap:1px;margin:28px 0 0;overflow:hidden;border:1px solid rgba(90,39,15,.11);border-radius:17px;background:rgba(90,39,15,.08)}.payment-summary span{padding:16px;background:rgba(255,250,240,.92);text-align:left}.payment-summary small,.payment-summary b{display:block}.payment-summary small{margin-bottom:5px;color:#9b8063;font-size:8px;font-weight:800;letter-spacing:.12em;text-transform:uppercase}.payment-summary b{font-size:11px;line-height:1.35}.payment-status-actions{position:relative;z-index:1;display:flex;justify-content:center;gap:10px;margin-top:25px}.outline-payment{padding:13px 18px;border:1px solid rgba(90,39,15,.2);border-radius:999px;color:#5a270f;background:transparent;font-size:10px;font-weight:800}.payment-status-foot{max-width:560px;margin:17px auto 0;color:#7d684e;text-align:center;font-size:9px;line-height:1.55}
@media(max-width:640px){.booking-modal{padding-bottom:max(24px,env(safe-area-inset-bottom))}.payment-assurance{align-items:flex-start}.payment-summary{grid-template-columns:1fr}.payment-status-actions{flex-direction:column}.payment-status-actions a,.payment-status-actions button{width:100%;justify-content:center}.legal-page{padding-top:28px}.legal-back{margin-bottom:30px}}


/* v009 — konto gościa i rozbudowany proces rezerwacji */
.account-link{justify-self:end;margin-left:24px;padding:9px 14px;border:1px solid rgba(255,255,255,.32);border-radius:999px;font-size:13px;font-weight:750;white-space:nowrap;transition:.2s}.account-link:hover{background:rgba(255,255,255,.12);transform:translateY(-1px)}.site-header.scrolled .account-link{border-color:var(--line);background:rgba(255,255,255,.45);color:var(--green-deep)}.booking-modal-wide{width:min(1040px,100%)}.booking-auth-gate{padding:42px 34px;border:1px solid rgba(90,39,15,.13);border-radius:24px;background:linear-gradient(145deg,#fffaf0,#f3e5ca);text-align:center}.booking-auth-gate[hidden]{display:none}.auth-gate-icon{display:grid;place-items:center;width:68px;height:68px;margin:0 auto 20px;border-radius:50%;background:linear-gradient(135deg,var(--terracotta),var(--green-dark));color:#fff;font-size:28px;box-shadow:0 14px 34px rgba(157,42,13,.22)}.booking-auth-gate h3{font-family:var(--serif);font-size:36px;font-weight:400;margin:0 0 12px}.booking-auth-gate p{max-width:620px;margin:0 auto 24px;color:var(--muted);line-height:1.65}.auth-gate-actions{display:flex;justify-content:center;gap:12px;flex-wrap:wrap}.secondary-button{min-height:54px;display:inline-flex;align-items:center;justify-content:center;padding:0 24px;border:1px solid var(--line);border-radius:999px;background:#fff;color:var(--green-deep);font-weight:800}.verification-gate{background:linear-gradient(145deg,#fff8e6,#f3dfb8)}.local-mail-link{max-width:650px;margin:18px auto 0;padding:14px;border:1px dashed #d59d47;border-radius:13px;background:#fff6df;font-size:13px;text-align:left}.local-mail-link b{display:block}.local-mail-link a{display:block;color:var(--green-dark);font-weight:800;word-break:break-all;margin-top:5px}.booking-step-heading{display:flex;align-items:center;gap:13px;margin:28px 0 14px;padding-top:22px;border-top:1px solid var(--line)}.booking-step-heading:first-child{margin-top:0;padding-top:0;border-top:0}.booking-step-heading>span{display:grid;place-items:center;width:36px;height:36px;border-radius:50%;background:var(--green-deep);color:#fff;font-size:11px;font-weight:900;letter-spacing:.06em}.booking-step-heading b,.booking-step-heading small{display:block}.booking-step-heading b{font-family:var(--serif);font-size:23px;font-weight:400}.booking-step-heading small{color:var(--muted);font-size:11px;margin-top:2px}.arrival-field{grid-column:span 2}.children-age-fields{margin:14px 0 2px;padding:16px;border-radius:16px;background:#f0e4ce}.children-age-fields[hidden]{display:none}.children-age-fields>p{margin:0 0 12px;font-size:12px;font-weight:800;color:var(--green-deep)}.children-age-fields>div{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.booking-modal input[readonly]{background:#eee7d9;color:#6f6254;cursor:not-allowed}.booking-party-grid{grid-template-columns:repeat(4,1fr)}
@media(max-width:1100px){.site-header{padding-left:24px;padding-right:24px}.desktop-nav{gap:18px}.account-link{margin-left:8px}.booking-party-grid{grid-template-columns:repeat(2,1fr)}.arrival-field{grid-column:span 2}.children-age-fields>div{grid-template-columns:repeat(3,1fr)}}
@media(max-width:980px){.account-link{margin-left:0;margin-right:8px}.desktop-nav,.header-cta{display:none}}
@media(max-width:700px){.account-link{max-width:126px;overflow:hidden;text-overflow:ellipsis;padding:8px 11px;font-size:12px}.booking-auth-gate{padding:34px 18px}.booking-auth-gate h3{font-size:31px}.auth-gate-actions{flex-direction:column}.auth-gate-actions a,.auth-gate-actions button{width:100%}.booking-party-grid{grid-template-columns:1fr}.arrival-field{grid-column:auto}.children-age-fields>div{grid-template-columns:repeat(2,1fr)}.booking-step-heading b{font-size:21px}}
@media(max-width:390px){.account-link{display:none}.site-header{grid-template-columns:1fr auto}.children-age-fields>div{grid-template-columns:1fr}}


/* v0.1.0 / etap 1: bezpieczny i czytelny kalendarz */
.calendar-status{display:flex;align-items:center;gap:12px;margin:-8px 0 24px;padding:13px 15px;border:1px solid rgba(38,26,7,.1);border-radius:15px;background:#f7f1e5;color:#5d4936}.calendar-status-dot{width:10px;height:10px;flex:0 0 10px;border-radius:50%;background:#d49a45;box-shadow:0 0 0 5px rgba(212,154,69,.12)}.calendar-status b,.calendar-status small{display:block}.calendar-status b{font-size:12px}.calendar-status small{margin-top:2px;color:#806b55;font-size:10px;line-height:1.4}.calendar-status button{margin-left:auto;padding:8px 11px;border:1px solid rgba(38,26,7,.14);border-radius:999px;background:#fff;font-size:10px;font-weight:800}.calendar-status.is-ready{background:#edf5e9;color:#31582f}.calendar-status.is-ready .calendar-status-dot{background:#5e9659;box-shadow:0 0 0 5px rgba(94,150,89,.12)}.calendar-status.is-warning{background:#fff4dd;color:#805316}.calendar-status.is-error{background:#f9e8e3;color:#8f321b}.calendar-status.is-error .calendar-status-dot{background:#c94d2d;box-shadow:0 0 0 5px rgba(201,77,45,.12)}.calendar-status.is-loading .calendar-status-dot{animation:calendarStatusPulse 1.1s ease-in-out infinite}@keyframes calendarStatusPulse{50%{transform:scale(.7);opacity:.45}}.calendar-loading-day{color:transparent!important;background:linear-gradient(90deg,#eee9df 20%,#f7f3eb 50%,#eee9df 80%)!important;background-size:220% 100%!important;animation:calendarSkeleton 1.25s linear infinite;cursor:wait!important}@keyframes calendarSkeleton{to{background-position:-220% 0}}.calendar-selection-hint{min-height:18px;margin:17px 3px 0;color:#77634d;text-align:center;font-size:11px;line-height:1.5}.calendar-day:disabled{pointer-events:none}@media(max-width:640px){.calendar-status{align-items:flex-start}.calendar-status button{flex:0 0 auto}.calendar-selection-hint{text-align:left}}@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.reveal,.reveal.reveal-pending{opacity:1!important;transform:none!important}}

/* v0.1.1 / etap 2: kalendarz zakresowy i trzyetapowa rezerwacja */
.calendar-months{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:26px}.calendar-month-panel{min-width:0}.calendar-month-panel h3{margin:0 0 16px;color:var(--ink);font:400 21px/1.1 var(--serif);text-align:center;text-transform:capitalize}.calendar-month-panel .calendar-weekdays{margin-bottom:7px}.calendar-day{position:relative;isolation:isolate;overflow:hidden;border:0;transition:transform .16s ease,box-shadow .16s ease,background .16s ease,color .16s ease}.calendar-day>span{position:relative;z-index:2}.calendar-day.available:not(:disabled):hover{transform:translateY(-1px);background:#e7f1df;box-shadow:0 7px 18px rgba(65,101,60,.12)}.calendar-day.available{color:#365f38;background:#edf6e8}.calendar-day.busy{color:#aaa096;background:#eee9e2;text-decoration:none}.calendar-day.busy::after{position:absolute;left:27%;right:27%;top:50%;height:1px;content:"";background:#b8aea3;transform:rotate(-18deg)}.calendar-day.checkout-only{color:#735e47;background:linear-gradient(135deg,#edf6e8 0 49%,#eee9e2 50% 100%);cursor:pointer}.calendar-day.checkout-only::after{display:none}.calendar-day.selected-start,.calendar-day.selected-end{color:#fff!important;background:var(--green-deep)!important;box-shadow:0 8px 22px rgba(42,65,52,.24)}.calendar-day.selected-start::before,.calendar-day.selected-end::before{position:absolute;inset:4px;z-index:1;border:1px solid rgba(255,255,255,.36);border-radius:10px;content:""}.calendar-day.selected-range{color:#365f38!important;background:#dcebd4!important;border-radius:4px}.calendar-day.selected-range::after{display:none}.calendar-day.today:not(.selected-start):not(.selected-end){box-shadow:inset 0 0 0 1px var(--terracotta)}.calendar-day:focus-visible{outline:3px solid rgba(224,96,18,.3);outline-offset:2px}.calendar-day:disabled{opacity:.72}.calendar-summary-bar{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-top:20px;padding:15px 16px 15px 19px;border:1px solid rgba(74,105,69,.15);border-radius:18px;background:linear-gradient(135deg,#edf5e9,#f8f3e9)}.calendar-summary-bar[hidden]{display:none}.calendar-summary-bar>div{min-width:0}.calendar-summary-bar small,.calendar-summary-bar strong,.calendar-summary-bar span{display:block}.calendar-summary-bar small{margin-bottom:3px;color:#72806f;font-size:9px;font-weight:850;letter-spacing:.1em;text-transform:uppercase}.calendar-summary-bar strong{overflow:hidden;color:var(--green-deep);font-size:13px;text-overflow:ellipsis;white-space:nowrap}.calendar-summary-bar span{margin-top:3px;color:var(--muted);font-size:10px}.calendar-summary-bar .primary-button{flex:0 0 auto;margin:0;min-height:48px;padding:0 19px;font-size:11px}

.booking-modal-wide{width:min(1240px,100%);padding:clamp(25px,3.6vw,46px)}.booking-intro{max-width:780px;margin-bottom:22px}.booking-intro h2{font-size:clamp(38px,4.8vw,58px)}#bookingForm[hidden],.booking-step-panel[hidden]{display:none!important}.booking-progress{display:grid;grid-template-columns:auto 1fr auto 1fr auto;align-items:center;gap:12px;margin:0 0 24px;padding:12px 16px;border:1px solid rgba(90,39,15,.1);border-radius:20px;background:#f7f1e6}.booking-progress>i{height:1px;background:rgba(90,39,15,.13)}.booking-progress button{display:grid;grid-template-columns:34px auto;grid-template-rows:auto auto;column-gap:10px;align-items:center;padding:5px;border:0;color:#8c7b68;background:transparent;text-align:left}.booking-progress button>span{grid-row:1/3;display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:#e9dfd0;color:#756653;font-size:11px;font-weight:900}.booking-progress button b{font-size:11px}.booking-progress button small{font-size:9px}.booking-progress button.active,.booking-progress button.complete{color:var(--green-deep)}.booking-progress button.active>span{color:#fff;background:var(--green-deep);box-shadow:0 8px 18px rgba(42,65,52,.2)}.booking-progress button.complete>span{color:#fff;background:#71906c}.booking-progress button.complete>span::after{content:"✓"}.booking-progress button.complete>span{font-size:0}.booking-progress button.complete>span::after{font-size:13px}.booking-progress button:disabled{cursor:default}.booking-wizard-layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:24px;align-items:start}.booking-wizard-main{min-width:0}.booking-step-panel{animation:bookingPanelIn .28s ease}.booking-step-panel.active{display:block}@keyframes bookingPanelIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.booking-step-title{display:grid;grid-template-columns:42px 1fr;gap:13px;align-items:start;margin-bottom:18px}.booking-step-title>div:first-child span{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;color:#fff;background:var(--terracotta);font-size:10px;font-weight:900;letter-spacing:.08em}.booking-step-title h3{margin:1px 0 5px;font:400 27px/1.05 var(--serif)}.booking-step-title p{max-width:690px;margin:0;color:var(--muted);font-size:11px;line-height:1.55}.booking-calendar-shell{padding:17px;border:1px solid rgba(90,39,15,.1);border-radius:22px;background:#fffaf2}.booking-calendar-toolbar{display:grid;grid-template-columns:38px 1fr 38px;align-items:center;margin-bottom:16px}.booking-calendar-toolbar strong{text-align:center;font:400 20px var(--serif);text-transform:capitalize}.booking-calendar-toolbar button{width:38px;height:38px;border-radius:50%;background:#efe5d5;color:var(--ink);cursor:pointer}.booking-calendar-months{gap:17px}.booking-calendar-months .calendar-month-panel h3{font-size:17px}.booking-calendar-months .calendar-day{min-height:37px;margin:1px;border-radius:10px;font-size:11px}.booking-calendar-months .calendar-day.selected-range{border-radius:3px}.booking-party-card{margin-top:15px;padding:16px;border:1px solid rgba(90,39,15,.1);border-radius:20px;background:#f8f2e7}.booking-party-selects{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.booking-party-card label>span{display:block;margin:0 0 7px 2px;color:var(--muted);font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.07em}.booking-party-card select{width:100%;height:48px;padding:0 12px;border:1px solid var(--line);border-radius:13px;background:#fff}.booking-party-card .children-age-fields{margin:13px 0 0;background:#eee2cf}.booking-step-error{display:none;margin:14px 0 0;padding:11px 13px;border-radius:12px;color:#873f34;background:#f9e3dd;font-size:11px}.booking-step-error.show{display:block}.booking-navigation{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:20px;padding-top:18px;border-top:1px solid var(--line)}.booking-navigation-end{justify-content:flex-end}.booking-navigation .primary-button,.booking-navigation .secondary-button{min-height:52px}.booking-navigation .secondary-button{padding:0 20px}.booking-guest-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.booking-address-wide{grid-column:span 2}.booking-summary-sidebar{position:sticky;top:0;padding:22px;border:1px solid rgba(90,39,15,.12);border-radius:22px;background:linear-gradient(155deg,#fffaf2,#f3e6d2);box-shadow:0 18px 45px rgba(90,39,15,.08)}.booking-summary-sidebar>.eyebrow{margin-bottom:17px}.booking-summary-empty{padding:24px 10px;color:#806f5d;font-size:12px;line-height:1.65;text-align:center}.booking-summary-content[hidden]{display:none}.booking-summary-dates{display:grid;grid-template-columns:1fr 22px 1fr;gap:7px;align-items:center;padding:14px;border-radius:15px;background:rgba(255,255,255,.66)}.booking-summary-dates>span{color:#ad8b68;text-align:center}.booking-summary-dates small,.booking-summary-dates strong{display:block}.booking-summary-dates small{margin-bottom:4px;color:#99836b;font-size:8px;font-weight:850;letter-spacing:.1em;text-transform:uppercase}.booking-summary-dates strong{font-size:11px;line-height:1.3}.booking-summary-meta{display:flex;gap:7px;margin:10px 0 16px}.booking-summary-meta span{padding:7px 10px;border-radius:999px;background:#e8ddca;color:#6d5944;font-size:9px;font-weight:800}.booking-price-lines{display:grid;gap:10px}.booking-price-lines>div{display:grid;grid-template-columns:1fr auto;gap:3px 12px;align-items:start}.booking-price-lines span{color:#6c5946;font-size:11px}.booking-price-lines strong{color:var(--ink);font-size:11px}.booking-price-lines small{grid-column:1/3;color:#9a856d;font-size:8px}.booking-price-total{display:flex;align-items:flex-end;justify-content:space-between;gap:14px;margin-top:16px;padding-top:15px;border-top:1px solid rgba(90,39,15,.14)}.booking-price-total span{font-size:11px;font-weight:850}.booking-price-total strong{font:400 27px var(--serif)}.booking-price-note{display:block;margin-top:10px;color:#8e7b65;font-size:8px;line-height:1.5}.auth-gate-summary{display:flex;align-items:center;justify-content:center;gap:14px;max-width:620px;margin:0 auto 22px;padding:13px 16px;border-radius:15px;background:rgba(255,255,255,.65);font-size:11px}.auth-gate-summary span,.auth-gate-summary b{color:#6c5946}.auth-gate-summary strong{color:var(--green-deep);font-family:var(--serif);font-size:21px;font-weight:400}.booking-text-back{margin-top:17px;padding:8px;color:#715f4b;background:transparent;font-size:10px;font-weight:800;cursor:pointer}.booking-final-summary{display:grid;gap:13px}.final-stay-card{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;overflow:hidden;border:1px solid rgba(90,39,15,.12);border-radius:18px;background:rgba(90,39,15,.08)}.final-stay-card>div{padding:17px;background:#fffaf2}.final-stay-card small,.final-stay-card strong,.final-stay-card span{display:block}.final-stay-card small{margin-bottom:7px;color:#9a836a;font-size:8px;font-weight:850;letter-spacing:.1em;text-transform:uppercase}.final-stay-card strong{font-size:12px;line-height:1.4}.final-stay-card span{margin-top:5px;color:#86725e;font-size:9px}.final-guest-card{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:17px;border:1px solid rgba(90,39,15,.11);border-radius:17px;background:#fffaf2}.final-guest-card small,.final-guest-card strong,.final-guest-card span{display:block}.final-guest-card small{margin-bottom:5px;color:#9a836a;font-size:8px;font-weight:850;letter-spacing:.1em;text-transform:uppercase}.final-guest-card strong{font-size:12px}.final-guest-card span{margin-top:4px;color:#806e5b;font-size:9px}.final-guest-card button{padding:8px 12px;border:1px solid var(--line);border-radius:999px;background:#fff;color:var(--green-deep);font-size:9px;font-weight:850;cursor:pointer}.final-price-card{padding:18px;border-radius:18px;background:#f2e5d1}.legal-consent{margin-top:16px}.payment-assurance{margin-top:12px}

@media(max-width:1050px){.calendar-months{gap:17px}.booking-wizard-layout{grid-template-columns:1fr}.booking-summary-sidebar{position:static;order:-1}.booking-summary-content{display:grid;grid-template-columns:1fr 1fr;gap:14px}.booking-summary-dates{grid-column:1/3}.booking-price-total{margin-top:0;padding-top:0;border-top:0}.booking-price-note{grid-column:1/3}.booking-progress{grid-template-columns:repeat(3,1fr);gap:6px}.booking-progress>i{display:none}.booking-progress button{grid-template-columns:30px 1fr}.booking-progress button>span{width:30px;height:30px}.booking-progress button small{display:none}}
@media(max-width:760px){.calendar-months{grid-template-columns:1fr}.calendar-month-panel:nth-child(2){display:none}.calendar-toolbar strong,.booking-calendar-toolbar strong{font-size:18px}.calendar-summary-bar{align-items:stretch;flex-direction:column}.calendar-summary-bar .primary-button{width:100%;justify-content:center}.booking-modal-wide{padding:38px 16px max(24px,env(safe-area-inset-bottom))}.booking-intro{padding-right:35px}.booking-intro h2{font-size:38px}.booking-progress{padding:10px 8px}.booking-progress button{grid-template-columns:28px 1fr;column-gap:7px}.booking-progress button>span{width:28px;height:28px}.booking-progress button b{font-size:9px}.booking-step-title{grid-template-columns:34px 1fr}.booking-step-title>div:first-child span{width:32px;height:32px}.booking-step-title h3{font-size:23px}.booking-calendar-shell{padding:13px 9px}.booking-calendar-months .calendar-day{min-height:41px}.booking-party-selects,.booking-guest-grid{grid-template-columns:1fr}.booking-address-wide{grid-column:auto}.booking-navigation{align-items:stretch;flex-direction:column-reverse}.booking-navigation-end{flex-direction:column}.booking-navigation button{width:100%;justify-content:center}.booking-summary-content{display:block}.booking-summary-dates{margin-bottom:10px}.booking-price-total{margin-top:16px;padding-top:15px;border-top:1px solid rgba(90,39,15,.14)}.booking-price-note{margin-top:10px}.final-stay-card{grid-template-columns:1fr}.auth-gate-summary{align-items:flex-start;flex-direction:column;gap:5px}.auth-gate-summary strong{font-size:24px}}
@media(max-width:430px){.booking-progress button small{display:none}.booking-progress button b{font-size:8px}.booking-progress{gap:2px}.calendar-day{min-height:42px}.calendar-month-panel h3{font-size:19px}}
.legend .checkout{border:1px solid rgba(90,39,15,.1);background:linear-gradient(135deg,#edf6e8 0 49%,#eee9e2 50% 100%)}


/* Interaktywna mapa okolicy */
.map-experience{width:min(1380px,calc(100% - 44px));margin-inline:auto}.map-section-head{display:grid;grid-template-columns:1fr minmax(320px,520px);align-items:end;gap:44px;margin-bottom:32px}.map-section-head h2{font-family:var(--serif);font-size:clamp(48px,6vw,82px);font-weight:400;line-height:.94;letter-spacing:-.055em}.map-section-head h2 span{color:var(--terracotta)}.map-section-head h2 .plain{color:var(--ink);font-style:normal}.map-section-head>p{margin:0;color:var(--muted);font-size:15px;line-height:1.7}.interactive-map-shell{display:grid;grid-template-columns:minmax(0,1.42fr) minmax(340px,.58fr);min-height:650px;border:1px solid rgba(90,39,15,.13);border-radius:36px;overflow:hidden;background:rgba(255,252,243,.88);box-shadow:0 26px 80px rgba(90,39,15,.13)}.map-canvas-wrap{position:relative;min-height:650px;overflow:hidden;background:#e9d5af}.interactive-map{position:absolute;inset:0;z-index:1;background:#e9d5af}.interactive-map .leaflet-tile-pane{filter:sepia(.18) saturate(.78) hue-rotate(344deg) brightness(1.05) contrast(.92)}.interactive-map .leaflet-control-zoom{overflow:hidden;border:0!important;border-radius:14px!important;box-shadow:0 10px 28px rgba(38,26,7,.16)!important}.interactive-map .leaflet-control-zoom a{width:38px;height:38px;line-height:38px;border-color:rgba(90,39,15,.1)!important;color:var(--ink);background:rgba(255,252,243,.94)}.interactive-map .leaflet-control-attribution{padding:3px 8px!important;border-radius:8px 0 0 0;background:rgba(255,252,243,.86)!important;color:#705c48;font-size:9px}.interactive-map .leaflet-control-attribution a{color:#9d2a0d}.map-loader,.map-error{position:absolute;z-index:8;inset:0;display:flex;align-items:center;justify-content:center;gap:14px;padding:28px;text-align:left;background:linear-gradient(135deg,#f3e2c8,#e7c294)}.map-loader i,.attraction-list-loading i,.route-loading i{width:25px;height:25px;flex:0 0 25px;border:2px solid rgba(157,42,13,.18);border-top-color:var(--terracotta);border-radius:50%;animation:mapSpin .8s linear infinite}.map-loader b,.map-loader span{display:block}.map-loader b{font-family:var(--serif);font-size:24px;font-weight:400}.map-loader span{margin-top:3px;color:var(--muted);font-size:12px}.map-error{z-index:9;flex-direction:column;text-align:center}.map-error b{font-family:var(--serif);font-size:30px;font-weight:400}.map-error p{max-width:340px;margin:0;color:var(--muted)}.map-error button{padding:12px 18px;border-radius:12px;color:white;background:var(--terracotta);font-weight:800}.map-origin-badge{position:absolute;z-index:6;left:22px;bottom:22px;display:flex;align-items:center;gap:12px;max-width:360px;padding:13px 16px;border:1px solid rgba(255,255,255,.8);border-radius:18px;background:rgba(255,252,243,.93);box-shadow:0 16px 44px rgba(38,26,7,.2);backdrop-filter:blur(14px)}.map-origin-logo{width:48px;height:48px;display:grid;place-items:center;flex:0 0 48px;border-radius:15px;background:#f5f1d6}.map-origin-logo img{width:34px;height:34px}.map-origin-badge small,.map-origin-badge strong,.map-origin-badge>div>span{display:block}.map-origin-badge small{color:var(--terracotta);font-size:8px;font-weight:900;letter-spacing:.12em}.map-origin-badge strong{margin-top:3px;font-size:14px}.map-origin-badge>div>span{margin-top:2px;color:var(--muted);font-size:10px}.map-sidebar{position:relative;display:flex;min-height:0;flex-direction:column;padding:26px;background:linear-gradient(180deg,rgba(255,253,247,.98),rgba(246,235,219,.96))}.map-sidebar-head{padding:3px 2px 18px;border-bottom:1px solid var(--line)}.map-sidebar-head h3{margin:5px 0 18px;font-family:var(--serif);font-size:35px;font-weight:400;letter-spacing:-.035em}.route-mode-switch{display:grid;grid-template-columns:1fr 1fr;gap:5px;padding:5px;border:1px solid var(--line);border-radius:14px;background:rgba(255,255,255,.58)}.route-mode-switch button{min-height:42px;padding:0 10px;border-radius:10px;color:var(--muted);font-size:11px;font-weight:800;transition:.22s ease}.route-mode-switch button span{margin-right:5px}.route-mode-switch button.active{color:#fff;background:linear-gradient(135deg,#e06012,#9d2a0d);box-shadow:0 8px 20px rgba(157,42,13,.18)}.attraction-list{min-height:0;display:grid;align-content:start;gap:9px;overflow:auto;padding:16px 3px 8px}.attraction-list-loading{min-height:180px;display:flex;align-items:center;justify-content:center;gap:10px;color:var(--muted);font-size:11px}.attraction-card{position:relative;width:100%;display:grid;grid-template-columns:45px 1fr auto;align-items:center;gap:11px;padding:13px;border:1px solid transparent;border-radius:16px;text-align:left;background:rgba(255,255,255,.58);transition:transform .22s ease,border-color .22s ease,background .22s ease,box-shadow .22s ease}.attraction-card:hover{transform:translateY(-2px);border-color:rgba(224,96,18,.2);background:#fff;box-shadow:0 10px 26px rgba(90,39,15,.08)}.attraction-card.active{border-color:rgba(224,96,18,.42);background:#fff8ed;box-shadow:0 12px 30px rgba(157,42,13,.1)}.attraction-icon{width:45px;height:45px;display:grid;place-items:center;border-radius:14px;color:#9d2a0d;background:linear-gradient(145deg,#f8ead1,#ead0a9)}.attraction-icon svg{width:24px;height:24px}.attraction-card b,.attraction-card small{display:block}.attraction-card b{font-size:12px;line-height:1.25}.attraction-card small{margin-top:4px;color:var(--muted);font-size:9px;line-height:1.35}.attraction-card>i{color:var(--terracotta);font-size:17px;font-style:normal}.map-empty-route{display:flex;align-items:center;gap:11px;margin-top:auto;padding:15px;border:1px dashed rgba(157,42,13,.2);border-radius:15px;color:var(--muted);background:rgba(255,255,255,.28)}.map-empty-route>span{font-size:26px;color:var(--terracotta)}.map-empty-route p{margin:0;font-size:10px;line-height:1.5}.route-result{position:absolute;z-index:5;right:18px;bottom:18px;left:18px;padding:22px;border:1px solid rgba(255,255,255,.82);border-radius:23px;background:rgba(255,252,243,.98);box-shadow:0 22px 60px rgba(38,26,7,.18);animation:routeResultIn .3s cubic-bezier(.2,.8,.2,1)}.route-result-close{position:absolute;top:13px;right:13px;width:33px;height:33px;border:1px solid var(--line);border-radius:50%;color:var(--muted);background:#fff;font-size:20px}.route-result-copy{padding-right:34px}.route-result-copy small{color:var(--terracotta);font-size:8px;font-weight:900;letter-spacing:.13em}.route-result-copy h3{margin:6px 0 5px;font-family:var(--serif);font-size:28px;font-weight:400;line-height:1.05}.route-result-copy p{margin:0;color:var(--muted);font-size:10px;line-height:1.5}.route-stats{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:17px 0 14px}.route-stats div{padding:13px;border:1px solid var(--line);border-radius:13px;background:#fff}.route-stats span,.route-stats strong{display:block}.route-stats span{color:var(--muted);font-size:8px;font-weight:800;text-transform:uppercase;letter-spacing:.08em}.route-stats strong{margin-top:5px;font-family:var(--serif);font-size:25px;font-weight:400}.route-estimate-note{margin:0 0 12px;padding:9px 10px;border-radius:10px;color:#8a5a24;background:#f8e9d2;font-size:8px;line-height:1.45}.map-navigation-link{width:100%;min-height:46px;display:flex;align-items:center;justify-content:space-between;padding:0 16px;font-size:11px}.route-loading{min-height:160px;display:flex;align-items:center;justify-content:center;gap:10px;color:var(--muted);font-size:10px}.map-marker{position:relative;width:42px;height:42px;display:grid;place-items:center;border:3px solid #fff;border-radius:50% 50% 50% 12px;color:#fff;background:linear-gradient(145deg,#e06012,#9d2a0d);box-shadow:0 10px 24px rgba(90,39,15,.28);transform:rotate(-45deg)}.map-marker svg{width:21px;height:21px;transform:rotate(45deg)}.map-marker.apartment{width:55px;height:55px;border-radius:50% 50% 50% 15px;background:linear-gradient(145deg,#5a270f,#e06012);box-shadow:0 14px 34px rgba(90,39,15,.38)}.map-marker.apartment img{width:37px;height:37px;padding:5px;border-radius:50%;background:#f5f1d6;transform:rotate(45deg)}.map-marker.active{animation:markerPulse 1.5s infinite}.leaflet-tooltip.map-tooltip{padding:8px 11px;border:0;border-radius:10px;color:var(--ink);background:rgba(255,252,243,.96);box-shadow:0 10px 24px rgba(38,26,7,.16);font-size:10px;font-weight:800}.leaflet-tooltip.map-tooltip::before{border-top-color:rgba(255,252,243,.96)}
@keyframes mapSpin{to{transform:rotate(360deg)}}@keyframes routeResultIn{from{opacity:0;transform:translateY(14px) scale(.98)}to{opacity:1;transform:none}}@keyframes markerPulse{0%,100%{filter:drop-shadow(0 0 0 rgba(224,96,18,0))}50%{filter:drop-shadow(0 0 8px rgba(224,96,18,.8))}}
@media(max-width:1040px){.map-section-head{grid-template-columns:1fr}.interactive-map-shell{grid-template-columns:1fr;min-height:auto}.map-canvas-wrap{min-height:520px}.map-sidebar{min-height:540px}.attraction-list{max-height:340px}.route-result{position:relative;right:auto;bottom:auto;left:auto;margin-top:14px}.map-empty-route{margin-top:14px}}
@media(max-width:620px){.map-experience{width:calc(100% - 20px)}.map-section-head{gap:20px;margin-bottom:20px}.map-section-head h2{font-size:48px}.interactive-map-shell{border-radius:25px}.map-canvas-wrap{min-height:460px}.map-origin-badge{right:12px;bottom:12px;left:12px;max-width:none;padding:11px}.map-origin-logo{width:42px;height:42px;flex-basis:42px}.map-sidebar{min-height:auto;padding:18px 14px 20px}.map-sidebar-head h3{font-size:30px}.attraction-list{max-height:none;overflow:visible}.attraction-card{grid-template-columns:42px 1fr auto;padding:11px}.attraction-icon{width:42px;height:42px}.route-result{padding:19px}.route-result-copy h3{font-size:25px}}
@media(prefers-reduced-motion:reduce){.map-marker.active{animation:none}.route-result{animation:none}.attraction-card{transition:none}}

/* v0.14 — porządki wizualne strony głównej */
.hero-actions-clean{margin-top:4px}
.hero-actions-clean .text-button{gap:13px;min-height:48px;padding:0 2px;border-bottom-color:rgba(255,255,255,.45);font-size:14px;letter-spacing:.01em;transition:gap .2s ease,border-color .2s ease,opacity .2s ease}
.hero-actions-clean .text-button b{font-size:17px;font-weight:500;transition:transform .2s ease}
.hero-actions-clean .text-button:hover{gap:17px;border-bottom-color:#fff}
.hero-actions-clean .text-button:hover b{transform:translateY(3px)}
.hero-facts{border-color:rgba(255,255,255,.22);background:linear-gradient(135deg,rgba(38,26,7,.34),rgba(90,39,15,.23));box-shadow:0 20px 55px rgba(20,13,5,.18)}
.hero-facts div{position:relative;background:rgba(255,255,255,.035)}
.hero-facts div:not(:last-child)::after{content:"";position:absolute;right:0;top:18%;bottom:18%;width:1px;background:rgba(255,255,255,.11)}
.feature,.amenity-list>div,.nearby-list div{transition:background-color .25s ease,transform .25s ease}
.feature:hover{background:rgba(255,255,255,.32)}
.amenity-list>div:hover{padding-left:12px;padding-right:12px;background:rgba(255,255,255,.34)}
.calendar-card{border-color:rgba(90,39,15,.1);background:linear-gradient(145deg,rgba(255,253,247,.98),rgba(248,239,224,.95));box-shadow:0 28px 75px rgba(90,39,15,.13)}
.calendar-toolbar button{border:1px solid rgba(90,39,15,.08);transition:transform .2s ease,background-color .2s ease}
.calendar-toolbar button:hover{transform:translateY(-2px);background:#fff}
.location-card{box-shadow:0 28px 75px rgba(90,39,15,.15)}
.nearby-list{background:linear-gradient(145deg,rgba(255,255,255,.42),rgba(245,232,211,.43));box-shadow:0 22px 60px rgba(90,39,15,.07)}
.nearby-list div:hover{background:rgba(255,255,255,.48)}
.closing-cta{position:relative;overflow:hidden;background:linear-gradient(135deg,#4d210d,#7f2b0d 56%,#b34512)}
.closing-cta::after{content:"";position:absolute;width:520px;height:520px;right:-140px;top:-260px;border:1px solid rgba(255,255,255,.09);border-radius:50%;box-shadow:0 0 0 90px rgba(255,255,255,.025),0 0 0 180px rgba(255,255,255,.015)}
.closing-cta>*{position:relative;z-index:1}
@media(max-width:700px){.hero-actions-clean .text-button{display:inline-flex}.hero-facts div:nth-child(2)::after{display:none}.amenity-list>div:hover{padding-left:0;padding-right:0;background:transparent}}

/* v0.1.5 — poprawki po audycie responsywności */
section[id] { scroll-margin-top: 88px; }

.calendar-days {
  gap: 4px;
}
.calendar-day {
  width: 100%;
  min-width: 0;
  height: 46px;
  min-height: 0;
  margin: 0;
  aspect-ratio: auto;
}
.booking-calendar-months .calendar-days {
  gap: 3px;
}
.booking-calendar-months .calendar-day {
  height: 39px;
  min-height: 0;
  margin: 0;
}

@media (max-width: 700px) {
  section[id] { scroll-margin-top: 76px; }
  .calendar-days { gap: 4px 3px; }
  .calendar-day {
    height: 42px;
    min-height: 0;
  }
  .mobile-booking,
  .chat-launcher {
    transition: opacity .22s ease, transform .22s ease, visibility .22s ease, box-shadow .2s ease, background-color .2s ease;
  }
  body.availability-in-view .mobile-booking,
  body.availability-in-view .chat-launcher {
    visibility: hidden;
    opacity: 0;
    pointer-events: none;
    transform: translateY(18px) scale(.96);
  }
}

/* v0.1.6 — udogodnienia i zasady pobytu */
.amenities-catalog{padding-top:clamp(76px,9vw,132px);padding-bottom:clamp(76px,9vw,132px);background:linear-gradient(180deg,#f8f3e7 0%,#f4ead8 100%)}
.amenities-catalog-head,.stay-info-head{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(280px,.8fr);gap:clamp(28px,6vw,96px);align-items:end;margin-bottom:42px}
.amenities-catalog-head .section-heading{margin:0}
.amenities-catalog-head>p,.stay-info-head>p{font-size:clamp(1rem,1.4vw,1.16rem);line-height:1.75;color:rgba(38,26,7,.7);max-width:560px;margin:0}
.amenities-featured{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-bottom:26px}
.amenity-featured-card{display:flex;align-items:center;gap:16px;min-height:106px;padding:20px 22px;border:1px solid rgba(90,39,15,.1);border-radius:24px;background:rgba(255,252,245,.86);box-shadow:0 16px 42px rgba(90,39,15,.07);transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease}
.amenity-featured-card:hover{transform:translateY(-3px);box-shadow:0 20px 50px rgba(90,39,15,.11);border-color:rgba(224,96,18,.22)}
.amenity-featured-card>span,.amenity-category-icon,.amenity-row>span{display:grid;place-items:center;flex:0 0 auto;color:#9d2a0d;background:linear-gradient(145deg,#f7dfc1,#f0c995)}
.amenity-featured-card>span{width:50px;height:50px;border-radius:17px}
.amenity-featured-card svg{width:25px;height:25px}
.amenity-featured-card b{display:block;color:#261a07;font-size:1rem;margin-bottom:6px}
.amenity-featured-card small{display:block;color:rgba(38,26,7,.62);line-height:1.45}
.amenity-category-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.amenity-category-card{border:1px solid rgba(90,39,15,.1);border-radius:26px;background:rgba(255,252,245,.82);overflow:hidden;box-shadow:0 14px 38px rgba(90,39,15,.055)}
.amenity-category-toggle{width:100%;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:16px;padding:22px;border:0;background:transparent;text-align:left;color:#261a07;cursor:pointer}
.amenity-category-icon{width:48px;height:48px;border-radius:16px}
.amenity-category-icon svg{width:24px;height:24px}
.amenity-category-toggle>span:nth-child(2){display:flex;flex-wrap:wrap;align-items:baseline;column-gap:10px;row-gap:2px}
.amenity-category-toggle small{width:100%;font-size:.66rem;letter-spacing:.15em;color:#a2521e;font-weight:800}
.amenity-category-toggle b{font-size:1.07rem}
.amenity-category-toggle em{font-style:normal;font-size:.78rem;color:rgba(38,26,7,.48)}
.amenity-category-toggle>i{font-style:normal;font-size:1.25rem;transition:transform .25s ease}
.amenity-category-card.open .amenity-category-toggle>i{transform:rotate(180deg)}
.amenity-category-items{display:none;padding:0 22px 18px}
.amenity-category-card.open .amenity-category-items{display:block;animation:amenityOpen .26s ease both}
@keyframes amenityOpen{from{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:none}}
.amenity-row{position:relative;display:grid;grid-template-columns:auto 1fr auto;gap:13px;align-items:start;padding:15px 0;border-top:1px solid rgba(90,39,15,.085)}
.amenity-row>span{width:38px;height:38px;border-radius:13px;background:#f6ead7;color:#a2521e}
.amenity-row svg{width:19px;height:19px}
.amenity-row b{display:block;font-size:.96rem;color:#261a07;margin-top:2px}
.amenity-row p{margin:4px 0 0;color:rgba(38,26,7,.62);font-size:.84rem;line-height:1.5}
.amenity-highlight{font-style:normal;align-self:center;padding:5px 8px;border-radius:999px;background:#fff0dc;color:#9d2a0d;font-size:.65rem;font-weight:800;text-transform:uppercase;letter-spacing:.07em}
.amenities-loading{grid-column:1/-1;display:flex;align-items:center;justify-content:center;gap:11px;min-height:90px;color:rgba(38,26,7,.6)}
.amenities-loading.compact{min-height:70px}
.amenities-loading i{width:20px;height:20px;border:2px solid rgba(224,96,18,.2);border-top-color:#e06012;border-radius:50%;animation:spin .8s linear infinite}
.amenities-empty{grid-column:1/-1;margin:0;padding:28px;text-align:center;color:rgba(38,26,7,.58)}

.stay-info{padding-top:clamp(76px,9vw,132px);padding-bottom:clamp(76px,9vw,132px);background:#fffaf0}
.stay-info-head h2{max-width:760px;margin:8px 0 0;font-family:var(--display,Georgia,serif);font-size:clamp(2.25rem,5vw,5.25rem);line-height:.98;color:#261a07;letter-spacing:-.04em}
.stay-info-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.stay-info-grid article{min-height:235px;padding:24px;border:1px solid rgba(90,39,15,.095);border-radius:26px;background:#f6ead8;display:flex;flex-direction:column;gap:26px;box-shadow:0 14px 36px rgba(90,39,15,.045)}
.stay-info-grid article>span,.damage-note>span{display:grid;place-items:center;width:48px;height:48px;border-radius:16px;background:#fff7e9;color:#9d2a0d;box-shadow:inset 0 0 0 1px rgba(157,42,13,.08)}
.stay-info-grid svg,.damage-note svg{width:24px;height:24px}
.stay-info-grid small{display:block;color:#a2521e;font-size:.7rem;font-weight:800;text-transform:uppercase;letter-spacing:.12em;margin-bottom:10px}
.stay-info-grid strong{display:block;color:#261a07;font-size:1.12rem;line-height:1.35}
.stay-info-grid p{margin:9px 0 0;color:rgba(38,26,7,.62);font-size:.88rem;line-height:1.55}
.damage-note{margin-top:16px;display:flex;align-items:center;gap:18px;padding:20px 23px;border-radius:22px;background:#30200d;color:#fff5df}
.damage-note>span{background:rgba(255,255,255,.1);color:#ffcf98;box-shadow:none}
.damage-note b{display:block;margin-bottom:4px}
.damage-note p{margin:0;color:rgba(255,245,223,.7);line-height:1.5}

.booking-rules-card{margin:18px 0;border:1px solid rgba(90,39,15,.11);border-radius:20px;background:#fff9ee;overflow:hidden}
.booking-rules-card summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 20px;cursor:pointer}
.booking-rules-card summary::-webkit-details-marker{display:none}
.booking-rules-card summary span{display:flex;flex-direction:column;gap:3px}
.booking-rules-card summary small{font-size:.62rem;letter-spacing:.14em;color:#a2521e;font-weight:800}
.booking-rules-card summary b{color:#261a07}
.booking-rules-card summary>i{font-style:normal;transition:transform .2s ease}
.booking-rules-card[open] summary>i{transform:rotate(180deg)}
.booking-rules-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 14px;padding:0 20px 18px}
.booking-rules-list article{display:grid;grid-template-columns:auto 1fr;gap:10px;padding:13px 0;border-top:1px solid rgba(90,39,15,.08)}
.booking-rules-list article>span{display:grid;place-items:center;width:34px;height:34px;border-radius:11px;background:#f4e4cf;color:#a2521e}
.booking-rules-list svg{width:17px;height:17px}
.booking-rules-list b{display:block;color:#261a07;font-size:.86rem;margin-bottom:3px}
.booking-rules-list p{margin:0;color:rgba(38,26,7,.64);font-size:.76rem;line-height:1.45}

@media(max-width:980px){
  .amenities-catalog-head,.stay-info-head{grid-template-columns:1fr;gap:18px}
  .amenities-featured{grid-template-columns:repeat(2,minmax(0,1fr))}
  .stay-info-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:680px){
  .amenities-catalog,.stay-info{padding-left:18px;padding-right:18px}
  .amenities-featured,.amenity-category-grid,.stay-info-grid{grid-template-columns:1fr}
  .amenity-featured-card{min-height:auto;padding:17px}
  .amenity-category-toggle{padding:18px}
  .amenity-category-items{padding:0 18px 14px}
  .stay-info-grid article{min-height:auto;display:grid;grid-template-columns:auto 1fr;gap:15px;padding:19px}
  .stay-info-grid article>span{grid-row:1/3}
  .damage-note{align-items:flex-start;padding:18px}
  .booking-rules-list{grid-template-columns:1fr}
}

/* v0.1.7 — korekta układu po przeglądzie w przeglądarce */
.feature-icon svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}

/* Nowy katalog nie może dziedziczyć starego dwukolumnowego .amenities. */
.amenities-catalog{
  display:block;
  width:min(1380px,calc(100% - 44px));
  margin:clamp(28px,4vw,58px) auto;
  padding:clamp(58px,7vw,96px) clamp(28px,5vw,72px);
  border:1px solid rgba(90,39,15,.09);
  border-radius:42px;
  background:linear-gradient(145deg,rgba(255,252,244,.96),rgba(244,232,212,.92));
  box-shadow:0 28px 80px rgba(90,39,15,.09);
}
.amenities-catalog-head{grid-template-columns:minmax(0,1fr) minmax(300px,.72fr);align-items:end;margin-bottom:34px}
.amenities-catalog .section-heading h2,.stay-info-head h2{font-size:clamp(40px,4.7vw,64px);line-height:.98}
.amenities-catalog-head>p,.stay-info-head>p{font-size:clamp(.96rem,1.2vw,1.08rem);line-height:1.65}
.amenities-featured{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:24px}
.amenity-featured-card{min-height:118px;padding:19px;border-radius:21px;background:rgba(255,255,255,.72);box-shadow:none}
.amenity-featured-card>span{width:46px;height:46px;border-radius:15px}
.amenity-featured-card b{font-size:.94rem;line-height:1.25}
.amenity-featured-card small{font-size:.76rem;line-height:1.4}

.amenity-category-grid{display:block;columns:2;column-gap:16px}
.amenity-category-card{display:inline-block;width:100%;margin:0 0 16px;break-inside:avoid;border-radius:22px;background:rgba(255,253,248,.9);box-shadow:none;vertical-align:top}
.amenity-category-toggle{padding:18px 19px;gap:13px}
.amenity-category-icon{width:43px;height:43px;border-radius:14px}
.amenity-category-toggle small{font-size:.59rem}
.amenity-category-toggle b{font-size:1rem}
.amenity-category-items{padding:0 19px 13px}
.amenity-row{grid-template-columns:34px minmax(0,1fr) auto;gap:11px;padding:13px 0}
.amenity-row>span{width:34px;height:34px;border-radius:11px}
.amenity-row b{font-size:.9rem;line-height:1.3}
.amenity-row p{font-size:.78rem;line-height:1.45}
.amenity-highlight{padding:4px 7px;font-size:.56rem}

.stay-info{
  width:min(1380px,calc(100% - 44px));
  margin:clamp(28px,4vw,58px) auto;
  padding:clamp(58px,7vw,96px) clamp(28px,5vw,72px);
  border:1px solid rgba(90,39,15,.08);
  border-radius:42px;
  background:#fffaf0;
  box-shadow:0 24px 70px rgba(90,39,15,.065);
}
.stay-info-head{margin-bottom:30px}
.stay-info-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.stay-info-grid article{min-height:0;display:grid;grid-template-columns:50px minmax(0,1fr);align-items:start;gap:15px;padding:20px;border-radius:20px;background:#f6ead8;box-shadow:none}
.stay-info-grid article>span{grid-row:1;width:46px;height:46px;border-radius:14px}
.stay-info-grid article>div{min-width:0}
.stay-info-grid small{margin-bottom:7px;font-size:.62rem}
.stay-info-grid strong{font-size:1rem}
.stay-info-grid p{margin-top:7px;font-size:.8rem}
.damage-note{margin-top:12px;border-radius:18px;padding:17px 20px}

@media(max-width:980px){
  .amenities-featured{grid-template-columns:repeat(2,minmax(0,1fr))}
  .amenity-category-grid{columns:1}
}
@media(max-width:680px){
  .amenities-catalog,.stay-info{width:calc(100% - 24px);margin:18px auto;padding:38px 18px;border-radius:28px}
  .amenities-catalog-head,.stay-info-head{margin-bottom:24px}
  .amenities-catalog .section-heading h2,.stay-info-head h2{font-size:clamp(36px,11vw,48px)}
  .amenities-featured{grid-template-columns:1fr;gap:9px;margin-bottom:14px}
  .amenity-featured-card{min-height:0;padding:15px 16px;border-radius:17px}
  .amenity-featured-card>span{width:42px;height:42px}
  .amenity-category-card{margin-bottom:10px;border-radius:18px}
  .amenity-category-toggle{padding:15px;gap:11px}
  .amenity-category-icon{width:40px;height:40px}
  .amenity-category-toggle>span:nth-child(2){column-gap:7px}
  .amenity-category-toggle b{font-size:.94rem}
  .amenity-category-toggle em{font-size:.7rem}
  .amenity-category-items{padding:0 15px 11px}
  .amenity-row{grid-template-columns:32px minmax(0,1fr);padding:12px 0}
  .amenity-row>span{width:32px;height:32px}
  .amenity-highlight{grid-column:2;justify-self:start;margin-top:-2px}
  .stay-info-grid{grid-template-columns:1fr;gap:9px}
  .stay-info-grid article{grid-template-columns:42px minmax(0,1fr);gap:12px;padding:16px;border-radius:17px}
  .stay-info-grid article>span{width:40px;height:40px}
  .damage-note{gap:13px;padding:15px;border-radius:16px}
  .damage-note>span{width:40px;height:40px;flex:0 0 40px}
}

@media(max-width:980px){
  .amenities-catalog-head,.stay-info-head{grid-template-columns:1fr;gap:18px;align-items:start}
  .amenities-catalog-head .section-heading,.stay-info-head>div{width:auto;min-width:0}
}



/* v0.2.8 — stabilna mapa osadzona bez Leaflet/CDN */

/* v0.2.9: elementy mapy z atrybutem hidden muszą być naprawdę niewidoczne. */
.map-loader[hidden],.map-error[hidden]{display:none!important}

/* v0.3.0 — informacja o powiadomieniach statusowych SMS */
.booking-modal .field-hint{display:block;margin:7px 2px 0;color:#8a745c;font-size:9px;line-height:1.45;text-transform:none;letter-spacing:0;font-weight:500}

/* v0.33 — układ strony sterowany z kreatora */
.site-layout-hidden{display:none!important}

/* v0.3.5 — podstrony formalne, Kontakt i checkout zgodny z PayU */
.site-footer{grid-template-columns:minmax(170px,.8fr) minmax(180px,.8fr) minmax(320px,1.5fr) minmax(180px,.8fr);align-items:start}
.site-footer>p{text-align:left;line-height:1.65}
.footer-legal-links{display:grid;gap:9px;justify-items:start}
.footer-legal-links a{color:rgba(255,255,255,.74);font-size:11px;line-height:1.35;text-decoration:underline;text-decoration-color:rgba(255,255,255,.18);text-underline-offset:4px}
.footer-contact-line{justify-self:end;display:flex;flex-wrap:wrap;justify-content:flex-end;gap:10px 18px;max-width:250px}
.footer-contact-line a{color:rgba(255,255,255,.78)}
.checkout-legal-stack{display:grid;gap:9px}
.payu-terms-consent{background:rgba(225,244,231,.66);border-color:rgba(26,118,62,.16)}
.payu-disclosure{overflow:hidden;border:1px solid rgba(90,39,15,.12);border-radius:15px;background:rgba(255,250,240,.8)}
.payu-disclosure.hidden,.checkout-obligation-note.hidden{display:none!important}
.payu-disclosure summary{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:13px 15px;color:#4f3822;font-size:10px;font-weight:800;letter-spacing:.03em;cursor:pointer;list-style:none}
.payu-disclosure summary::-webkit-details-marker{display:none}
.payu-disclosure summary span{transition:transform .2s}
.payu-disclosure[open] summary span{transform:rotate(180deg)}
.payu-disclosure>div{display:grid;gap:9px;padding:0 15px 14px;border-top:1px solid rgba(90,39,15,.08)}
.payu-disclosure p{margin:11px 0 0;color:#725d45;font-size:9.5px;line-height:1.58}
.payu-disclosure a,.checkout-obligation-note a{color:#8e2b12;text-decoration:underline;text-underline-offset:3px}
.checkout-obligation-note{margin:2px 2px 0;color:#513a24;font-size:9.5px;font-weight:700;line-height:1.5}
.payment-obligation-button{min-width:210px}

.legal-body{display:flex;min-height:100vh;flex-direction:column;background:radial-gradient(circle at 12% 0%,rgba(224,96,18,.14),transparent 31%),linear-gradient(145deg,#f7f1d9 0%,#efe1bf 52%,#e7cc9d 100%)}
.legal-site-header{position:sticky;z-index:20;top:0;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:34px;padding:15px clamp(18px,4vw,58px);border-bottom:1px solid rgba(90,39,15,.1);background:rgba(247,241,217,.9);backdrop-filter:blur(18px)}
.legal-site-header .brand{color:#261a07}
.legal-site-header nav{display:flex;justify-content:center;gap:clamp(14px,2.5vw,32px)}
.legal-site-header nav a,.legal-home-link{color:#60482f;font-size:10px;font-weight:800;letter-spacing:.035em}
.legal-site-header nav a:hover,.legal-home-link:hover{color:#a33c15}
.legal-page{flex:1;width:min(960px,calc(100% - 28px));padding:60px 0 90px}
.legal-back{margin-bottom:38px}
.legal-page h1{max-width:820px;margin:9px 0 19px;font-size:clamp(45px,7vw,78px)}
.legal-lead{max-width:720px;margin:0 0 34px;color:#725d45;font-size:14px;line-height:1.75}
.legal-card{padding:clamp(25px,5vw,58px);border-radius:32px}
.legal-card h2{scroll-margin-top:100px;margin:38px 0 11px;font-size:clamp(23px,3vw,30px)}
.legal-card h3{margin:22px 0 8px;font:500 18px/1.25 var(--serif)}
.legal-card p,.legal-card li{color:#5f4b35;font-size:13px;line-height:1.78}
.legal-card ol,.legal-card ul{display:grid;gap:8px;margin:13px 0 20px;padding-left:22px}
.legal-card a{color:#9b3415;text-decoration:underline;text-decoration-color:rgba(155,52,21,.28);text-underline-offset:4px}
.legal-version{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:-14px 0 32px;padding:13px 16px;border:1px solid rgba(90,39,15,.09);border-radius:14px;background:rgba(245,241,214,.55)}
.legal-version b{font-size:11px}.legal-version span{color:#846d53;font-size:9px}
.legal-callout,.payu-legal-box{margin:22px 0;padding:20px 22px;border:1px solid rgba(224,96,18,.18);border-radius:18px;background:linear-gradient(135deg,rgba(255,246,220,.94),rgba(239,218,175,.5))}
.legal-callout>b,.payu-legal-box>h3{display:block;margin:0 0 7px;color:#442b15;font-size:12px;font-weight:800}
.legal-callout p,.payu-legal-box p{margin:0}.payu-legal-box p+p{margin-top:11px}
.legal-kicker{margin:0 0 8px!important;color:#9b3415!important;font-size:8px!important;font-weight:900;letter-spacing:.16em;text-transform:uppercase}
.contact-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:14px}
.contact-primary-card,.contact-action-card{padding:clamp(20px,4vw,34px);border:1px solid rgba(90,39,15,.1);border-radius:22px;background:rgba(245,241,214,.56)}
.contact-primary-card h2,.contact-action-card h2{margin:6px 0 23px;font-size:clamp(27px,4vw,38px)}
.company-details{display:grid;gap:0;margin:0}
.company-details>div{display:grid;grid-template-columns:115px 1fr;gap:16px;padding:13px 0;border-top:1px solid rgba(90,39,15,.1)}
.company-details dt{color:#8c7458;font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.08em}
.company-details dd{margin:0;color:#3e2a17;font-size:12px;font-weight:700;line-height:1.5}
.contact-action{display:grid;grid-template-columns:1fr auto;gap:2px 12px;padding:14px 0;border-top:1px solid rgba(90,39,15,.1);text-decoration:none!important}
.contact-action small{color:#8c7458;font-size:8px;font-weight:800;text-transform:uppercase;letter-spacing:.08em}
.contact-action strong{font-size:12px;line-height:1.45}.contact-action span{grid-column:2;grid-row:1/3;align-self:center;font-size:18px}
.contact-action-card>p:last-child{margin:17px 0 0;font-size:11px;line-height:1.65}
.legal-link-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:18px}
.legal-link-grid a{display:flex;min-height:110px;flex-direction:column;justify-content:space-between;padding:17px;border:1px solid rgba(90,39,15,.1);border-radius:17px;background:rgba(245,241,214,.52);text-decoration:none!important}
.legal-link-grid b{font-size:12px}.legal-link-grid span{color:#80684c;font-size:9px;line-height:1.5}
.legal-table-wrap{overflow:auto;margin:16px 0;border:1px solid rgba(90,39,15,.1);border-radius:17px}
.legal-table{width:100%;min-width:620px;border-collapse:collapse;background:rgba(255,250,240,.68)}
.legal-table th,.legal-table td{padding:14px 16px;border-bottom:1px solid rgba(90,39,15,.09);text-align:left;vertical-align:top}
.legal-table th{background:rgba(233,213,175,.45);color:#49321d;font-size:9px;text-transform:uppercase;letter-spacing:.08em}
.legal-table td{color:#5f4b35;font-size:11px;line-height:1.6}.legal-table tr:last-child td{border-bottom:0}
.legal-footer{display:flex;align-items:center;justify-content:space-between;gap:22px;padding:26px clamp(18px,4vw,58px);color:rgba(255,255,255,.66);background:#261a07;font-size:10px}
.legal-footer div{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:10px 20px}.legal-footer a{color:rgba(255,255,255,.76)}

@media(max-width:1050px){
  .site-footer{grid-template-columns:1fr 1fr}.footer-contact-line{justify-self:start;justify-content:flex-start}
  .legal-site-header{grid-template-columns:auto auto}.legal-site-header nav{grid-column:1/-1;grid-row:2;justify-content:flex-start;overflow-x:auto;padding-bottom:2px}.legal-home-link{justify-self:end}
}
@media(max-width:720px){
  .site-footer{grid-template-columns:1fr;padding-bottom:105px}.site-footer>p{text-align:left}.footer-legal-links{gap:12px}.footer-contact-line{max-width:none}
  .legal-site-header{gap:13px 18px;padding:12px 16px}.legal-site-header .brand span{font-size:15px}.legal-site-header .brand img{width:32px;height:32px}.legal-site-header nav{gap:18px}.legal-site-header nav a{white-space:nowrap;font-size:9px}
  .legal-page{padding:38px 0 65px}.legal-back{margin-bottom:29px}.legal-page h1{font-size:clamp(41px,13vw,62px)}.legal-lead{font-size:12px}.legal-card{padding:24px 18px;border-radius:23px}.legal-card h2{margin-top:31px;font-size:24px}.legal-card p,.legal-card li{font-size:12px}
  .legal-version{align-items:flex-start;flex-direction:column;gap:5px}.contact-grid,.legal-link-grid{grid-template-columns:1fr}.company-details>div{grid-template-columns:90px 1fr}.contact-primary-card,.contact-action-card{border-radius:18px}
  .legal-footer{align-items:flex-start;flex-direction:column}.legal-footer div{justify-content:flex-start}
  .booking-navigation .payment-obligation-button{width:100%;min-width:0}.payu-disclosure p{font-size:9px}
}
.legal-consent>span{margin:0!important;color:#604a34!important;font-size:10.5px!important;font-weight:650!important;line-height:1.58!important;letter-spacing:0!important;text-transform:none!important}
.legal-summary-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:0 0 28px}
.legal-summary-grid article{padding:18px;border:1px solid rgba(90,39,15,.1);border-radius:17px;background:rgba(245,241,214,.56)}
.legal-summary-grid small,.legal-summary-grid b{display:block}.legal-summary-grid small{margin-bottom:8px;color:#9b3415;font-size:8px;font-weight:900;letter-spacing:.12em}.legal-summary-grid b{font:500 22px/1.1 var(--serif)}.legal-summary-grid p{margin:9px 0 0;font-size:10px;line-height:1.55}
@media(max-width:720px){.legal-summary-grid{grid-template-columns:1fr}.legal-consent>span{font-size:10px!important}}
.legal-top-actions{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:38px}.legal-top-actions .legal-back{margin:0}.legal-print{padding:10px 14px;border:1px solid rgba(90,39,15,.16);border-radius:999px;color:#5a270f;background:rgba(255,250,240,.55);font-size:9px;font-weight:850;cursor:pointer}.legal-print:hover{background:#fffaf0}
@media(max-width:520px){.legal-top-actions{align-items:flex-start;flex-direction:column;margin-bottom:28px}}
@media print{.legal-site-header,.legal-footer,.legal-top-actions{display:none!important}.legal-body{display:block;background:#fff}.legal-page{width:100%;padding:0}.legal-card{padding:0;border:0;background:#fff;box-shadow:none}.legal-page h1{font-size:42px}.legal-card p,.legal-card li{color:#111}}

/* v0.3.8 — pełnoszerokościowa mapa bez bocznej listy miejsc */
.interactive-map-shell{
  display:block;
  min-height:0;
}
.map-canvas-wrap{
  min-height:700px;
}
.map-floating-controls{
  position:absolute;
  z-index:7;
  top:18px;
  right:18px;
  width:min(310px,calc(100% - 100px));
  padding:5px;
  border:1px solid rgba(255,255,255,.82);
  border-radius:16px;
  background:rgba(255,252,243,.93);
  box-shadow:0 14px 38px rgba(38,26,7,.16);
  backdrop-filter:blur(14px);
}
.map-floating-controls .route-mode-switch{
  border:0;
  padding:0;
  background:transparent;
}
.map-empty-route{
  position:absolute;
  z-index:6;
  top:18px;
  left:74px;
  max-width:350px;
  margin:0;
  padding:12px 15px;
  border-style:solid;
  border-color:rgba(255,255,255,.82);
  background:rgba(255,252,243,.93);
  box-shadow:0 12px 34px rgba(38,26,7,.14);
  backdrop-filter:blur(14px);
}
.map-empty-route[hidden],.route-result[hidden]{display:none!important}
.map-canvas-wrap>.route-result{
  right:18px;
  bottom:18px;
  left:auto;
  width:min(390px,calc(100% - 36px));
  max-height:calc(100% - 100px);
  overflow:auto;
  overscroll-behavior:contain;
}
.route-loading-inline{
  min-height:72px;
  margin-top:14px;
  border-top:1px solid var(--line);
}
.map-canvas-wrap.route-open .map-origin-badge{
  max-width:min(360px,calc(100% - 460px));
}
@media(max-width:1040px){
  .interactive-map-shell{display:block;min-height:0}
  .map-canvas-wrap{min-height:620px}
  .map-canvas-wrap>.route-result{position:absolute;right:16px;bottom:16px;left:auto;margin:0}
}
@media(max-width:760px){
  .map-canvas-wrap{min-height:540px}
  .map-floating-controls{top:10px;right:10px;width:min(276px,calc(100% - 72px));padding:4px}
  .map-floating-controls .route-mode-switch button{min-height:38px;padding:0 6px;font-size:9px}
  .map-empty-route{top:59px;right:10px;left:52px;max-width:none;padding:9px 11px}
  .map-empty-route>span{font-size:20px}.map-empty-route p{font-size:9px}
  .map-canvas-wrap>.route-result{right:10px;bottom:10px;left:10px;width:auto;max-height:72%;padding:17px}
  .map-canvas-wrap.route-open .map-origin-badge{display:none}
  .route-result-copy h3{font-size:25px}
}


/* v0.4.1: SEO, accessibility and trust badge */
.skip-link{position:fixed;left:1rem;top:1rem;z-index:10000;transform:translateY(-180%);padding:.75rem 1rem;border-radius:999px;background:#fff;color:#173f33;font-weight:800;box-shadow:0 12px 30px rgba(0,0,0,.18)}
.skip-link:focus{transform:translateY(0)}
.hero-rating{display:inline-flex;align-items:center;gap:.45rem;margin:.35rem 0 .9rem;padding:.48rem .75rem;border:1px solid rgba(231,195,90,.68);border-radius:999px;background:rgba(20,35,29,.42);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);color:#fff;box-shadow:0 10px 30px rgba(0,0,0,.12)}
.hero-rating-star{color:#e7c35a;font-size:1rem;line-height:1}.hero-rating strong{color:#f8df84;font-size:.98rem;letter-spacing:.02em}.hero-rating small{font-size:.76rem;color:rgba(255,255,255,.88)}
.footer-stay-links{padding-bottom:.5rem;border-bottom:1px solid rgba(255,255,255,.12)}
.consent-banner{position:fixed;z-index:9998;left:max(1rem,env(safe-area-inset-left));right:max(1rem,env(safe-area-inset-right));bottom:max(1rem,env(safe-area-inset-bottom));display:flex;align-items:center;justify-content:space-between;gap:1rem;max-width:920px;margin:auto;padding:1rem 1.1rem;border:1px solid rgba(255,255,255,.26);border-radius:20px;background:rgba(22,46,38,.96);color:#fff;box-shadow:0 20px 60px rgba(0,0,0,.26);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}
.consent-banner[hidden]{display:none}.consent-copy{max-width:610px}.consent-copy strong{display:block;margin-bottom:.25rem}.consent-copy p{margin:0;color:rgba(255,255,255,.78);font-size:.86rem;line-height:1.45}.consent-actions{display:flex;gap:.55rem;flex-wrap:wrap}.consent-actions button{min-height:42px;padding:.65rem .95rem;border-radius:999px;border:1px solid rgba(255,255,255,.25);font:inherit;font-weight:750;cursor:pointer}.consent-decline{background:transparent;color:#fff}.consent-accept{background:#f5f1d6;color:#173f33}
@media(max-width:720px){.hero-rating{margin-bottom:.65rem}.hero-rating small{font-size:.7rem}.consent-banner{align-items:stretch;flex-direction:column}.consent-actions button{flex:1}.footer-stay-links{display:grid;grid-template-columns:1fr 1fr;gap:.45rem .9rem}}
@media(prefers-reduced-motion:reduce){.skip-link{transition:none}}
