/* ==========================================================================
   Weles - arkusz stylów
   Kolory ustawiane są z panelu i wstrzykiwane w <head> jako zmienne CSS.
   ========================================================================== */

*,*::before,*::after{box-sizing:border-box}

:root{
  --font-display:"Cormorant Garamond",Georgia,"Times New Roman",serif;
  --font-body:"Jost","Helvetica Neue",Arial,sans-serif;

  --line: color-mix(in srgb, var(--c-cream) 18%, transparent);
  --line-dark: color-mix(in srgb, var(--c-dark) 14%, transparent);

  --wrap: 1200px;
  --gutter: clamp(20px, 5vw, 56px);
  --sect: clamp(72px, 9vw, 140px);

  --r: 2px;
  --ease: cubic-bezier(.22,.61,.36,1);
}

html{scroll-behavior:smooth; -webkit-text-size-adjust:100%}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}
}

body{
  margin:0;
  background:var(--c-cream);
  color:var(--c-dark);
  font-family:var(--font-body);
  font-weight:300;
  font-size:clamp(16px,1.02vw,17.5px);
  line-height:1.75;
  letter-spacing:.005em;
  overflow-x:hidden;
}

img{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit}

h1,h2,h3,h4{font-family:var(--font-display);font-weight:400;line-height:1.12;letter-spacing:-.01em;margin:0}
h1{font-size:clamp(2.9rem,7.5vw,5.6rem)}
h2{font-size:clamp(2rem,4vw,3.3rem)}
h3{font-size:clamp(1.4rem,2.2vw,2rem)}
p{margin:0 0 1.1em}
p:last-child{margin-bottom:0}

::selection{background:var(--c-gold);color:var(--c-dark)}

.skip-link{position:absolute;left:-9999px;top:0;background:var(--c-gold);color:var(--c-dark);padding:12px 20px;z-index:999}
.skip-link:focus{left:12px;top:12px}

:focus-visible{outline:2px solid var(--c-gold);outline-offset:3px}

.wrap{width:100%;max-width:var(--wrap);margin:0 auto;padding-inline:var(--gutter)}

/* --- Eyebrow / kicker --- */
.kicker{
  display:block;
  font-family:var(--font-body);
  font-size:.72rem;
  font-weight:400;
  letter-spacing:.34em;
  text-transform:uppercase;
  color:var(--c-gold);
  margin-bottom:1.1rem;
}
.kicker::before{content:"";display:inline-block;width:26px;height:1px;background:currentColor;vertical-align:middle;margin-right:14px;transform:translateY(-2px)}

/* --- Przyciski --- */
.btn{
  display:inline-block;
  font-family:var(--font-body);
  font-size:.78rem;
  font-weight:400;
  letter-spacing:.2em;
  text-transform:uppercase;
  padding:16px 32px;
  border:1px solid currentColor;
  border-radius:var(--r);
  background:transparent;
  cursor:pointer;
  transition:background .45s var(--ease),color .45s var(--ease),border-color .45s var(--ease);
}
.btn-gold{border-color:var(--c-gold);color:var(--c-gold)}
.btn-gold:hover{background:var(--c-gold);color:var(--c-dark)}
.btn-dark{border-color:var(--c-dark);color:var(--c-dark)}
.btn-dark:hover{background:var(--c-dark);color:var(--c-cream)}
.btn-solid{background:var(--c-dark);color:var(--c-cream);border-color:var(--c-dark)}
.btn-solid:hover{background:var(--c-gold);border-color:var(--c-gold);color:var(--c-dark)}

/* --- Nagłówek --- */
.site-header{
  position:fixed;inset:0 0 auto 0;z-index:100;
  padding:clamp(14px,2vw,26px) 0;
  transition:background .5s var(--ease),padding .5s var(--ease),box-shadow .5s var(--ease);
  background:transparent;
}
.site-header.is-solid{
  background:var(--c-dark);
  padding:12px 0;
  box-shadow:0 1px 0 var(--line);
}
.header-inner{display:flex;align-items:center;justify-content:space-between;gap:24px}

.brand{display:flex;flex-direction:column;line-height:1;color:var(--c-cream)}
.brand-logo{
  height:clamp(54px,5.4vw,74px);width:auto;display:block;
  border-radius:var(--r);
  transition:height .5s var(--ease),opacity .4s var(--ease);
}
.brand:hover .brand-logo{opacity:.86}
.site-header.is-solid .brand-logo{height:clamp(46px,4vw,56px)}
.footer-logo{width:clamp(120px,13vw,168px);height:auto;border-radius:var(--r);margin-bottom:16px}
.brand-name{font-family:var(--font-display);font-size:1.7rem;letter-spacing:.28em;text-transform:uppercase;padding-left:.28em}
.brand-tag{font-size:.6rem;letter-spacing:.24em;text-transform:uppercase;color:var(--c-gold);margin-top:6px}

.main-nav{display:flex;align-items:center;gap:clamp(18px,2.4vw,38px)}
.main-nav ul{display:flex;gap:clamp(14px,1.9vw,30px);list-style:none;margin:0;padding:0}
.main-nav a{
  color:var(--c-cream);font-size:.76rem;letter-spacing:.16em;text-transform:uppercase;
  padding-bottom:4px;border-bottom:1px solid transparent;transition:border-color .35s var(--ease),color .35s var(--ease);
}
.main-nav a:hover,.main-nav a[aria-current="page"]{border-bottom-color:var(--c-gold);color:var(--c-gold)}
.nav-cta{padding:12px 22px;font-size:.7rem}

.nav-toggle{display:none;background:none;border:0;padding:10px;cursor:pointer}
.nav-toggle span{display:block;width:26px;height:1px;background:var(--c-cream);margin:6px 0;transition:transform .4s var(--ease),opacity .3s}
.nav-toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.nav-toggle[aria-expanded="true"] span:nth-child(2){opacity:0}
.nav-toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

@media (max-width:960px){
  .nav-toggle{display:block}
  /* Menu pełnoekranowe. Świadomie bez translateX - przesunięty element
     position:fixed powiększa obszar przewijania i robi pasek u dołu. */
  .main-nav{
    position:fixed;inset:0;background:var(--c-dark);
    flex-direction:column;justify-content:center;gap:34px;
    opacity:0;visibility:hidden;pointer-events:none;
    transition:opacity .38s var(--ease),visibility .38s var(--ease);
  }
  .main-nav.is-open{opacity:1;visibility:visible;pointer-events:auto}
  .main-nav ul{flex-direction:column;text-align:center;gap:22px}
  .main-nav a{font-size:1rem;letter-spacing:.2em}
  .main-nav li,.main-nav .nav-cta{opacity:0;transform:translateY(16px);transition:opacity .5s var(--ease),transform .5s var(--ease)}
  .main-nav.is-open li,.main-nav.is-open .nav-cta{opacity:1;transform:none}
  .main-nav.is-open li:nth-child(1){transition-delay:.06s}
  .main-nav.is-open li:nth-child(2){transition-delay:.1s}
  .main-nav.is-open li:nth-child(3){transition-delay:.14s}
  .main-nav.is-open li:nth-child(4){transition-delay:.18s}
  .main-nav.is-open li:nth-child(5){transition-delay:.22s}
  .main-nav.is-open li:nth-child(6){transition-delay:.26s}
  .main-nav.is-open li:nth-child(7){transition-delay:.3s}
  .main-nav.is-open li:nth-child(8){transition-delay:.34s}
  .main-nav.is-open .nav-cta{transition-delay:.38s}
}

/* --- Hero --- */
.hero{position:relative;min-height:100svh;display:flex;align-items:flex-end;background:var(--c-dark);overflow:hidden}

.hero-slides{
  position:absolute;inset:0;
  background-size:cover;background-position:center;
}
.hero-slide{
  position:absolute;inset:0;
  background-size:cover;background-position:center;
  opacity:0;will-change:opacity,transform;
}

.hero::after{
  content:"";position:absolute;inset:0;
  background:
    linear-gradient(to top, color-mix(in srgb, var(--c-dark) 92%, transparent) 0%, color-mix(in srgb, var(--c-dark) 35%, transparent) 45%, color-mix(in srgb, var(--c-dark) 55%, transparent) 100%);
}
.hero-inner{position:relative;z-index:2;width:100%;padding-bottom:clamp(70px,10vh,130px);padding-top:160px;color:var(--c-cream)}
.hero h1{
  font-size:clamp(4rem,13vw,10.5rem);
  letter-spacing:.16em;text-transform:uppercase;
  margin-left:.16em;
  line-height:.95;
}
.hero-tagline{
  font-family:var(--font-display);font-style:italic;
  font-size:clamp(1.4rem,2.9vw,2.4rem);
  color:var(--c-gold);margin-top:.4em;
}
.hero-text{max-width:44ch;margin-top:1.6rem;color:color-mix(in srgb,var(--c-cream) 85%,transparent)}
.hero-actions{display:flex;flex-wrap:wrap;gap:16px;margin-top:2.4rem}

.hero-scroll{
  position:absolute;left:50%;bottom:26px;transform:translateX(-50%);z-index:3;
  font-size:.62rem;letter-spacing:.3em;text-transform:uppercase;color:color-mix(in srgb,var(--c-cream) 65%,transparent);
  display:flex;flex-direction:column;align-items:center;gap:10px;
}
.hero-scroll::after{content:"";width:1px;height:44px;background:linear-gradient(var(--c-gold),transparent);animation:scrollPulse 2.6s ease-in-out infinite}
@keyframes scrollPulse{0%,100%{opacity:.3;transform:scaleY(.6);transform-origin:top}50%{opacity:1;transform:scaleY(1);transform-origin:top}}

.hero-dots{position:absolute;right:var(--gutter);bottom:34px;z-index:3;display:flex;gap:10px}
.hero-dots button{width:26px;height:2px;background:color-mix(in srgb,var(--c-cream) 35%,transparent);border:0;padding:0;cursor:pointer;transition:background .4s}
.hero-dots button[aria-pressed="true"]{background:var(--c-gold)}

/* --- Sekcje --- */
.section{padding-block:var(--sect)}
.section-dark{background:var(--c-dark);color:var(--c-cream)}
.section-deep{background:var(--c-deep);color:var(--c-cream)}
.section-mid{background:var(--c-mid);color:var(--c-cream)}
.section-cream{background:var(--c-cream);color:var(--c-dark)}
.section-dark .kicker,.section-deep .kicker,.section-mid .kicker{color:var(--c-gold)}
.section-head{max-width:62ch;margin-bottom:clamp(38px,5vw,72px)}
.section-head p{color:color-mix(in srgb,currentColor 78%,transparent);max-width:56ch;margin-top:1.2rem}
.section-head.center{margin-inline:auto;text-align:center}
.section-head.center .kicker::before{display:none}

.lede{font-family:var(--font-display);font-size:clamp(1.25rem,2vw,1.7rem);line-height:1.5;font-style:italic}

/* --- Sekcja "o miejscu" --- */
.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(36px,6vw,90px);align-items:start}
.about-media{position:relative}
.about-media img{width:100%;aspect-ratio:3/4;object-fit:cover;border-radius:var(--r)}
.about-media::after{content:"";position:absolute;inset:14px -14px -14px 14px;border:1px solid var(--c-gold);opacity:.45;z-index:-1;border-radius:var(--r)}
.about-text p{color:color-mix(in srgb,currentColor 82%,transparent)}
.about-text p:first-of-type{font-family:var(--font-display);font-size:1.35rem;line-height:1.55;color:currentColor}
.about-more{margin-top:1.4rem}
.about-collapse{max-height:none}
@media (max-width:860px){.about-grid{grid-template-columns:1fr}}

/* --- Rytm dnia (element sygnaturowy) --- */
.rhythm{background:linear-gradient(180deg,#F4EFE6 0%,#DCD3C2 16%,var(--c-moss) 48%,var(--c-deep) 78%,var(--c-dark) 100%);color:var(--c-dark)}
.rhythm .rhythm-head{text-align:center;max-width:52ch;margin:0 auto clamp(48px,6vw,90px)}
.rhythm .rhythm-head .kicker{color:var(--c-brown)}
.rhythm .rhythm-head .kicker::before{display:none}
.rhythm-item{display:grid;grid-template-columns:1fr 1fr;gap:clamp(30px,5vw,80px);align-items:center;margin-bottom:clamp(56px,7vw,120px)}
.rhythm-item:nth-child(even) .rhythm-media{order:2}
.rhythm-media img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:var(--r)}
.rhythm-time{font-family:var(--font-display);font-size:clamp(2.2rem,4.4vw,3.6rem);margin-bottom:.5rem}
.rhythm-item:nth-child(2){color:color-mix(in srgb,var(--c-dark) 88%,var(--c-cream))}
.rhythm-item:nth-child(3),.rhythm-item:nth-child(4){color:var(--c-cream)}
.rhythm-outro{text-align:center;color:var(--c-cream);max-width:46ch;margin:0 auto}
.rhythm-outro p{font-family:var(--font-display);font-style:italic;font-size:clamp(1.3rem,2.3vw,1.9rem);line-height:1.5}
.rhythm-outro .btn{margin-top:2rem}
@media (max-width:860px){
  .rhythm-item{grid-template-columns:1fr}
  .rhythm-item:nth-child(even) .rhythm-media{order:0}
}

/* --- Domki --- */
.cottages{display:grid;gap:clamp(28px,4vw,52px)}
.cottage-card{
  display:grid;grid-template-columns:1.1fr 1fr;gap:0;
  background:color-mix(in srgb,var(--c-cream) 5%,transparent);
  border:1px solid var(--line);border-radius:var(--r);overflow:hidden;
}
.section-cream .cottage-card{background:#fff;border-color:var(--line-dark)}
.cottage-card:nth-child(even) .cottage-media{order:2}
.cottage-media{position:relative;min-height:340px;overflow:hidden}
.cottage-media img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease)}
.cottage-card:hover .cottage-media img{transform:scale(1.04)}
.cottage-body{padding:clamp(28px,3.4vw,54px);display:flex;flex-direction:column;justify-content:center}
.cottage-body h3{margin-bottom:.3rem;font-size:clamp(2rem,3.4vw,2.9rem);letter-spacing:.06em;text-transform:uppercase}
.cottage-sub{font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;color:var(--c-gold);margin-bottom:1.4rem}
.cottage-meta{display:flex;flex-wrap:wrap;gap:10px;margin:1.4rem 0 1.8rem;list-style:none;padding:0}
.cottage-meta li{font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;border:1px solid var(--line);padding:7px 14px;border-radius:var(--r)}
.section-cream .cottage-meta li{border-color:var(--line-dark)}
@media (max-width:860px){
  .cottage-card{grid-template-columns:1fr}
  .cottage-card:nth-child(even) .cottage-media{order:0}
  .cottage-media{min-height:260px}
}

/* --- Strefa relaksu --- */
.amenities{display:grid;grid-template-columns:repeat(auto-fit,minmax(290px,1fr));gap:1px;background:var(--line)}
.amenity{background:var(--c-dark);padding:clamp(30px,3.4vw,48px);display:flex;flex-direction:column;gap:14px;transition:background .5s var(--ease)}
.amenity:hover{background:var(--c-deep)}
.amenity h3{font-size:1.35rem;letter-spacing:.06em;text-transform:uppercase}
.amenity p{color:color-mix(in srgb,var(--c-cream) 74%,transparent);font-size:.95rem}
.amenity-icon{width:34px;height:34px;color:var(--c-gold)}
.amenity-figure{margin:0}
.amenity-figure img{width:100%;aspect-ratio:16/10;object-fit:cover;border-radius:var(--r);margin-bottom:6px}

.amenity-list{display:grid;gap:clamp(40px,6vw,90px)}
.amenity-row{display:grid;grid-template-columns:1fr 1fr;gap:clamp(28px,4.5vw,72px);align-items:center}
.amenity-row:nth-child(even) .amenity-row-media{order:2}
.amenity-row-media img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:var(--r)}
@media (max-width:860px){
  .amenity-row{grid-template-columns:1fr}
  .amenity-row:nth-child(even) .amenity-row-media{order:0}
}

/* --- Okolica --- */
.nearby-list{display:grid;gap:clamp(40px,6vw,96px)}
.nearby-item{display:grid;grid-template-columns:1fr 1.15fr;gap:clamp(28px,4.5vw,72px);align-items:center}
.nearby-item:nth-child(even) .nearby-media{order:2}
.nearby-media{position:relative}
.nearby-media img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:var(--r)}
.nearby-distance{
  position:absolute;left:0;bottom:0;background:var(--c-dark);color:var(--c-gold);
  font-size:.68rem;letter-spacing:.18em;text-transform:uppercase;padding:10px 18px;
}
.nearby-body h3{margin-bottom:.35rem}
.nearby-sub{font-size:.76rem;letter-spacing:.14em;text-transform:uppercase;color:var(--c-gold);margin-bottom:1.2rem}
.nearby-body p{color:color-mix(in srgb,currentColor 80%,transparent)}
@media (max-width:860px){
  .nearby-item{grid-template-columns:1fr}
  .nearby-item:nth-child(even) .nearby-media{order:0}
}

/* --- Galeria --- */
.gallery-filters{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:32px;list-style:none;padding:0}
.gallery-filters button{
  background:none;border:1px solid var(--line);padding:9px 18px;border-radius:var(--r);cursor:pointer;
  font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;transition:all .35s var(--ease);
}
.section-cream .gallery-filters button{border-color:var(--line-dark)}
.gallery-filters button[aria-pressed="true"]{background:var(--c-gold);border-color:var(--c-gold);color:var(--c-dark)}
.gallery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px}
.gallery-grid figure{margin:0;position:relative;overflow:hidden;border-radius:var(--r)}
.gallery-grid img{width:100%;aspect-ratio:4/3;object-fit:cover;transition:transform 1s var(--ease),filter .6s}
.gallery-grid figure:nth-child(7n+1){grid-column:span 2}
.gallery-grid figure:nth-child(7n+1) img{aspect-ratio:16/9}
.gallery-grid button{display:block;width:100%;padding:0;border:0;background:none;cursor:zoom-in}
.gallery-grid figure:hover img{transform:scale(1.05)}
@media (max-width:700px){.gallery-grid figure:nth-child(7n+1){grid-column:span 1}}

.lightbox{position:fixed;inset:0;z-index:200;background:color-mix(in srgb,var(--c-dark) 96%,transparent);display:none;align-items:center;justify-content:center;padding:24px}
.lightbox.is-open{display:flex}
.lightbox img{max-width:min(1200px,94vw);max-height:84vh;object-fit:contain}
.lightbox-caption{position:absolute;bottom:26px;left:0;right:0;text-align:center;color:color-mix(in srgb,var(--c-cream) 80%,transparent);font-size:.85rem;padding-inline:20px}
.lightbox-close,.lightbox-prev,.lightbox-next{position:absolute;background:none;border:1px solid var(--line);color:var(--c-cream);width:48px;height:48px;cursor:pointer;border-radius:var(--r)}
.lightbox-close{top:20px;right:20px}
.lightbox-prev{left:20px;top:50%;transform:translateY(-50%)}
.lightbox-next{right:20px;top:50%;transform:translateY(-50%)}

/* --- Cennik --- */
.price-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:1px;background:var(--line);border:1px solid var(--line)}
.price-cell{background:var(--c-dark);padding:clamp(24px,2.6vw,38px);text-align:center;transition:background .4s var(--ease)}
.price-cell.is-highlight{background:var(--c-mid)}
.price-cell:hover{background:var(--c-mid)}
.price-label{font-size:.74rem;letter-spacing:.18em;text-transform:uppercase;color:var(--c-gold);display:block;margin-bottom:12px}
.price-value{font-family:var(--font-display);font-size:clamp(2rem,3.2vw,2.8rem);display:block;line-height:1}
.price-note{font-size:.74rem;letter-spacing:.06em;color:color-mix(in srgb,var(--c-cream) 62%,transparent);display:block;margin-top:10px}

.price-info{display:grid;grid-template-columns:1fr 1fr;gap:clamp(28px,4vw,64px);margin-top:clamp(38px,4.5vw,64px)}
.price-rules{list-style:none;margin:0;padding:0}
.price-rules li{padding:13px 0 13px 30px;border-bottom:1px solid var(--line);position:relative}
.price-rules li:last-child{border-bottom:0}
.price-rules li::before{content:"";position:absolute;left:0;top:22px;width:14px;height:1px;background:var(--c-gold)}
.price-extra{border:1px solid var(--c-gold);padding:clamp(26px,3vw,42px);border-radius:var(--r)}
.price-extra h3{margin-bottom:1rem;color:var(--c-gold)}
@media (max-width:860px){.price-info{grid-template-columns:1fr}}

/* --- Opinie --- */
.reviews{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:clamp(20px,2.4vw,32px)}
.review{border:1px solid var(--line);padding:clamp(26px,3vw,40px);border-radius:var(--r)}
.section-cream .review{border-color:var(--line-dark)}
.review-stars{color:var(--c-gold);letter-spacing:.24em;font-size:.85rem;margin-bottom:16px}
.review blockquote{margin:0;font-family:var(--font-display);font-size:1.2rem;line-height:1.6;font-style:italic}
.review figcaption{margin-top:18px;font-size:.74rem;letter-spacing:.16em;text-transform:uppercase;color:color-mix(in srgb,currentColor 65%,transparent)}

/* --- FAQ --- */
.faq-group{margin-bottom:clamp(38px,4.5vw,64px)}
.faq-group h3{font-size:1.5rem;letter-spacing:.1em;text-transform:uppercase;color:var(--c-gold);margin-bottom:1.4rem}
.faq-item{border-bottom:1px solid var(--line)}
.section-cream .faq-item{border-color:var(--line-dark)}
.faq-item summary{
  list-style:none;cursor:pointer;padding:22px 46px 22px 0;position:relative;
  font-family:var(--font-display);font-size:clamp(1.15rem,1.7vw,1.4rem);line-height:1.35;
}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary::after{
  content:"";position:absolute;right:8px;top:32px;width:14px;height:1px;background:var(--c-gold);
  box-shadow:0 0 0 0 transparent;transition:transform .35s var(--ease);
}
.faq-item summary::before{
  content:"";position:absolute;right:8px;top:32px;width:14px;height:1px;background:var(--c-gold);
  transform:rotate(90deg);transition:transform .35s var(--ease),opacity .35s;
}
.faq-item[open] summary::before{transform:rotate(0);opacity:0}
.faq-answer{padding:0 46px 26px 0;color:color-mix(in srgb,currentColor 78%,transparent);max-width:78ch}

/* --- Formularz --- */
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.field{display:flex;flex-direction:column;gap:8px}
.field.full{grid-column:1/-1}
.field label{font-size:.7rem;letter-spacing:.18em;text-transform:uppercase;color:color-mix(in srgb,currentColor 72%,transparent)}
.field input,.field select,.field textarea{
  font:inherit;color:inherit;background:transparent;
  border:0;border-bottom:1px solid var(--line);
  padding:12px 2px;border-radius:0;transition:border-color .35s var(--ease);
}
.section-cream .field input,.section-cream .field select,.section-cream .field textarea{border-bottom-color:var(--line-dark)}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-bottom-color:var(--c-gold)}
.field textarea{min-height:130px;resize:vertical}
.field input,.field select,.field textarea{max-width:100%;min-width:0}
@media (max-width:620px){.form-grid{grid-template-columns:1fr}}
.field select option{background:var(--c-dark);color:var(--c-cream)}
.section-cream .field select option{background:#fff;color:var(--c-dark)}
.consent{display:flex;gap:12px;align-items:flex-start;grid-column:1/-1;font-size:.85rem;line-height:1.6;color:color-mix(in srgb,currentColor 76%,transparent)}
.consent input{margin-top:5px;accent-color:var(--c-gold);width:18px;height:18px;flex:0 0 auto}
.consent a{border-bottom:1px solid var(--c-gold)}
.hp{position:absolute;left:-9999px;opacity:0;height:0;width:0}
.form-actions{grid-column:1/-1;margin-top:10px}

.alert{padding:18px 22px;border-radius:var(--r);margin-bottom:26px;border:1px solid}
.alert-ok{border-color:var(--c-gold);color:var(--c-gold)}
.alert-err{border-color:#C97B62;color:#E2A08B}

/* --- Kalendarz dostępności --- */
.cal-wrap{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:26px;margin-top:22px}
.cal-title{font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;color:var(--c-gold);margin-bottom:12px}
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:3px}
.cal-dn{font-size:.62rem;letter-spacing:.1em;text-transform:uppercase;text-align:center;opacity:.5;padding-bottom:6px}
.cal-day{display:flex;align-items:center;justify-content:center;aspect-ratio:1;font-size:.78rem;border-radius:var(--r)}
.cal-day.is-free{background:color-mix(in srgb,var(--c-gold) 16%,transparent)}
.cal-day.is-busy{background:color-mix(in srgb,var(--c-cream) 8%,transparent);opacity:.4;text-decoration:line-through}
.cal-day.is-past{opacity:.18}
.cal-legend{margin-top:16px;font-size:.74rem;display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.cal-legend .dot{width:12px;height:12px;display:inline-block;border-radius:2px}
.cal-legend .dot.free{background:color-mix(in srgb,var(--c-gold) 40%,transparent)}
.cal-legend .dot.busy{background:color-mix(in srgb,var(--c-cream) 14%,transparent)}
.cal-missing{font-size:.9rem;color:color-mix(in srgb,currentColor 66%,transparent)}

/* --- Podstrona domku --- */
.page-hero{position:relative;min-height:62svh;display:flex;align-items:flex-end;background:var(--c-dark);overflow:hidden}
.page-hero img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.62}
.page-hero::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,var(--c-dark),transparent 70%)}
.page-hero-inner{position:relative;z-index:2;width:100%;padding-block:clamp(60px,8vh,110px);padding-top:170px;color:var(--c-cream)}
.page-hero h1{font-size:clamp(2.6rem,7vw,5rem);letter-spacing:.1em;text-transform:uppercase}
.page-hero .page-sub{color:var(--c-gold);margin-top:.6rem;font-size:.82rem;letter-spacing:.18em;text-transform:uppercase}

.breadcrumbs{font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:color-mix(in srgb,var(--c-cream) 60%,transparent);margin-bottom:1.6rem}
.breadcrumbs a:hover{color:var(--c-gold)}
.breadcrumbs span{margin-inline:8px;opacity:.5}

.detail-grid{display:grid;grid-template-columns:1.4fr .8fr;gap:clamp(34px,5vw,80px);align-items:start}
.detail-aside{border:1px solid var(--line);padding:clamp(24px,2.8vw,38px);border-radius:var(--r);position:sticky;top:110px}
.detail-aside h2{font-size:1.4rem;letter-spacing:.08em;text-transform:uppercase;margin-bottom:1.2rem}
.spec-list{list-style:none;margin:0 0 1.6rem;padding:0}
.spec-list li{display:flex;justify-content:space-between;gap:14px;padding:11px 0;border-bottom:1px solid var(--line);font-size:.9rem}
.spec-list li span:first-child{color:color-mix(in srgb,currentColor 62%,transparent);text-transform:uppercase;font-size:.7rem;letter-spacing:.14em}
.feature-list{list-style:none;margin:0;padding:0;columns:2;column-gap:32px}
.feature-list li{padding:8px 0 8px 22px;position:relative;break-inside:avoid;font-size:.94rem}
.feature-list li::before{content:"";position:absolute;left:0;top:17px;width:10px;height:1px;background:var(--c-gold)}
@media (max-width:960px){
  .detail-grid{grid-template-columns:1fr}
  .detail-aside{position:static}
  .feature-list{columns:1}
}

/* --- Treść tekstowa (regulamin, polityka) --- */
.prose{max-width:78ch}
.prose h2{font-size:clamp(1.5rem,2.4vw,2rem);margin:2.4em 0 .7em}
.prose h2:first-child{margin-top:0}
.prose h3{font-size:1.25rem;margin:1.8em 0 .5em}
.prose ul{padding-left:22px;margin:0 0 1.2em}
.prose li{margin-bottom:.5em}
.prose p{color:color-mix(in srgb,currentColor 84%,transparent)}

/* --- Pas CTA --- */
.cta-band{background:var(--c-mid);color:var(--c-cream);text-align:center;padding-block:clamp(60px,7vw,110px)}
.cta-band h2{max-width:20ch;margin:0 auto .4em}
.cta-band p{max-width:52ch;margin-inline:auto;color:color-mix(in srgb,var(--c-cream) 78%,transparent)}
.cta-band .btn{margin-top:2rem}

/* --- Kontakt --- */
.contact-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:clamp(34px,5vw,80px);align-items:start}
.contact-details{list-style:none;margin:0 0 2rem;padding:0}
.contact-details li{padding:16px 0;border-bottom:1px solid var(--line)}
.contact-details .lbl{display:block;font-size:.68rem;letter-spacing:.2em;text-transform:uppercase;color:var(--c-gold);margin-bottom:6px}
.contact-details a:hover{color:var(--c-gold)}
.map-embed{aspect-ratio:16/11;width:100%;border:1px solid var(--line);border-radius:var(--r);overflow:hidden;margin-top:26px}
.map-embed iframe{width:100%;height:100%;border:0;display:block}
@media (max-width:960px){.contact-grid{grid-template-columns:1fr}}

/* --- Stopka --- */
.site-footer{background:var(--c-dark);color:var(--c-cream);padding-top:clamp(56px,6vw,90px)}
.footer-grid{display:grid;grid-template-columns:1.3fr 1fr 1fr 1fr;gap:clamp(28px,3.4vw,52px);padding-bottom:clamp(40px,5vw,70px)}
.footer-brand .brand-name{font-family:var(--font-display);font-size:1.7rem;letter-spacing:.28em;text-transform:uppercase;display:block}
.footer-tag{color:var(--c-gold);font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;margin-top:10px}
.footer-h{font-family:var(--font-body);font-size:.7rem;font-weight:400;letter-spacing:.22em;text-transform:uppercase;color:var(--c-gold);margin-bottom:18px}
.footer-note{font-size:.86rem;color:color-mix(in srgb,var(--c-cream) 62%,transparent);margin-top:14px}
.site-footer address{font-style:normal;font-size:.94rem;line-height:2}
.site-footer a:hover{color:var(--c-gold)}
.footer-links{list-style:none;margin:0;padding:0}
.footer-links li{margin-bottom:9px;font-size:.92rem}
.social{list-style:none;display:flex;gap:16px;padding:0;margin-top:18px;font-size:.8rem;letter-spacing:.12em;text-transform:uppercase}
.footer-bottom{
  display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;
  padding-block:24px;border-top:1px solid var(--line);
  font-size:.78rem;color:color-mix(in srgb,var(--c-cream) 55%,transparent);
}
.footer-bottom p{margin:0}
.credit a{border-bottom:1px solid var(--c-gold)}
@media (max-width:860px){.footer-grid{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.footer-grid{grid-template-columns:1fr}}

/* --- Animacje wejścia --- */
/* Treść jest widoczna domyślnie. Ukrywamy ją tylko wtedy, gdy skrypt
   potwierdził, że działa (klasa .js na <html>) - dzięki temu awaria
   JavaScriptu nigdy nie chowa sekcji przed użytkownikiem. */
.reveal{transition:opacity .9s var(--ease),transform .9s var(--ease)}
.js .reveal{opacity:0;transform:translateY(24px)}
.js .reveal.is-visible{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){
  .js .reveal{opacity:1;transform:none}
}

/* --- 404 --- */
.err-page{min-height:100svh;display:flex;align-items:center;justify-content:center;text-align:center;background:var(--c-dark);color:var(--c-cream);padding:120px 24px}
.err-page h1{font-size:clamp(3rem,9vw,7rem);letter-spacing:.1em}
.err-page p{margin-top:1.2rem;color:color-mix(in srgb,var(--c-cream) 72%,transparent)}
.err-page .btn{margin-top:2rem}

/* ==========================================================================
   Układ zgodny z wizualizacją klientki (Canva)
   ========================================================================== */

/* --- Ikony --- */
.ico{width:1em;height:1em;display:block}
.ico-arrow{width:26px;height:26px}
.ico-arrow-sm{width:20px;height:20px;transition:transform .4s var(--ease)}
.ico-spec{width:26px;height:26px;color:var(--c-gold)}
.ico-board{width:30px;height:30px;color:var(--c-gold)}
.ico-day{width:30px;height:30px;color:var(--c-gold)}
.ico-travel{width:19px;height:19px;flex:0 0 auto}

.link-arrow{
  display:inline-flex;align-items:center;gap:12px;
  font-size:.78rem;letter-spacing:.2em;text-transform:uppercase;
  padding-bottom:6px;border-bottom:1px solid color-mix(in srgb,currentColor 35%,transparent);
  transition:border-color .4s var(--ease),color .4s var(--ease);
}
.link-arrow:hover{border-bottom-color:var(--c-gold);color:var(--c-gold)}
.link-arrow:hover .ico-arrow-sm{transform:translateX(6px)}

/* --- Przyciski dodatkowe --- */
.btn-brown{background:var(--c-brown);border-color:var(--c-brown);color:var(--c-cream);text-transform:lowercase;letter-spacing:.14em}
.btn-brown:hover{background:var(--c-gold);border-color:var(--c-gold);color:var(--c-dark)}
.btn-avail{background:var(--c-gold);border-color:var(--c-gold);color:var(--c-dark);font-weight:400}
.btn-avail:hover{background:transparent;color:var(--c-gold)}
.btn-outline{border-color:currentColor;color:inherit}
.btn-outline:hover{background:currentColor;color:var(--c-dark)}

/* --- Nawigacja: druga linia z podstronami --- */
.nav-secondary{display:flex;gap:16px;list-style:none;margin:0;padding:0}
.nav-secondary a{
  color:color-mix(in srgb,var(--c-cream) 62%,transparent);
  font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;
}
.nav-secondary a:hover{color:var(--c-gold)}
@media (max-width:1180px){.nav-secondary{display:none}}
@media (max-width:960px){
  .nav-secondary{display:flex;flex-direction:column;align-items:center;gap:14px;margin-top:8px}
  .nav-secondary a{font-size:.8rem}
}

/* --- Hero: mocniejszy ruch, przycisk i strzałka --- */
.hero-inner{text-align:center;padding-bottom:clamp(90px,12vh,150px)}
.hero h1{margin-left:0;padding-left:.16em}
.hero-tagline{margin-top:.5em}
.hero-btn{margin-top:2.2rem}
.hero-arrow{
  display:inline-flex;align-items:center;justify-content:center;
  width:56px;height:56px;margin-top:2.4rem;border-radius:50%;
  border:1px solid color-mix(in srgb,var(--c-cream) 55%,transparent);
  color:var(--c-cream);animation:arrowBob 2.8s ease-in-out infinite;
  transition:border-color .4s var(--ease),color .4s var(--ease);
}
.hero-arrow:hover{border-color:var(--c-gold);color:var(--c-gold)}
@keyframes arrowBob{0%,100%{transform:translateY(0)}50%{transform:translateY(9px)}}
@media (prefers-reduced-motion:reduce){.hero-arrow{animation:none}}
.hero-scroll{display:none}


/* --- Pas "Stworzone by zwolnić" --- */
.intro-band{
  position:relative;min-height:78svh;display:flex;align-items:center;
  background-size:cover;background-position:center;background-attachment:scroll;
  color:var(--c-cream);
}
.intro-band::before{
  content:"";position:absolute;inset:0;
  background:linear-gradient(100deg, color-mix(in srgb,var(--c-dark) 88%,transparent) 0%, color-mix(in srgb,var(--c-dark) 55%,transparent) 55%, color-mix(in srgb,var(--c-dark) 30%,transparent) 100%);
}
.intro-inner{position:relative;z-index:2;max-width:none;padding-block:clamp(70px,9vw,120px)}
.intro-inner h2{font-size:clamp(2.6rem,6vw,4.8rem);max-width:14ch}
.intro-lead{
  font-family:var(--font-display);font-size:clamp(1.2rem,2.1vw,1.75rem);
  line-height:1.55;max-width:44ch;margin-top:1.6rem;
  color:color-mix(in srgb,var(--c-cream) 88%,transparent);
}
.intro-inner .link-arrow{margin-top:2.6rem}

.story{max-width:74ch;margin:0 auto;text-align:center}
.story p{color:color-mix(in srgb,currentColor 82%,transparent)}
.story p:first-child{font-family:var(--font-display);font-size:clamp(1.2rem,1.9vw,1.5rem);color:currentColor;line-height:1.55}

/* --- Rytm dnia: trzy kolumny --- */
.rhythm{background:linear-gradient(180deg,var(--c-cream) 0%,#DCD3C2 18%,var(--c-moss) 52%,var(--c-deep) 82%,var(--c-dark) 100%)}
.rhythm-head{text-align:center;max-width:24ch;margin:0 auto clamp(44px,5.5vw,80px)}
.rhythm-head h2{font-size:clamp(2rem,3.6vw,3rem)}
.day-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(16px,2vw,28px)}
.day-card{
  position:relative;overflow:hidden;border-radius:var(--r);
  background-size:cover;background-position:center;min-height:clamp(420px,52vw,620px);
  display:flex;align-items:flex-end;
}
.day-card::before{
  content:"";position:absolute;inset:0;
  background:linear-gradient(to top, color-mix(in srgb,var(--c-dark) 93%,transparent) 0%, color-mix(in srgb,var(--c-dark) 52%,transparent) 52%, color-mix(in srgb,var(--c-dark) 18%,transparent) 100%);
}
.day-card-inner{position:relative;z-index:2;padding:clamp(24px,2.6vw,38px);color:var(--c-cream)}
.day-icon{display:block;margin-bottom:14px}
.day-card h3{font-size:clamp(1.6rem,2.4vw,2.2rem);margin-bottom:.5rem}
.day-lead{
  font-family:var(--font-display);font-style:italic;
  font-size:clamp(1.05rem,1.5vw,1.3rem);line-height:1.5;
  color:var(--c-gold);margin-bottom:1.2rem;
}
.day-text p{font-size:.93rem;color:color-mix(in srgb,var(--c-cream) 78%,transparent)}
@media (max-width:900px){
  .day-grid{grid-template-columns:1fr}
  .day-card{min-height:400px}
}

/* --- Domki: dwie kolumny z ikonami --- */
.cottage-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(30px,5vw,80px)}
.cottage-tile{text-align:center}
.cottage-tile h3{font-size:clamp(1.8rem,3vw,2.6rem);margin-bottom:1.2rem;letter-spacing:.05em}
.cottage-photo{display:block;overflow:hidden;border-radius:var(--r)}
.cottage-photo img{width:100%;aspect-ratio:4/3;object-fit:cover;transition:transform 1.1s var(--ease)}
.cottage-photo:hover img{transform:scale(1.05)}
.spec-icons{
  display:flex;justify-content:center;flex-wrap:wrap;gap:clamp(18px,2.6vw,38px);
  list-style:none;margin:1.8rem 0 1.4rem;padding:0;
}
.spec-icons li{display:flex;align-items:center;gap:10px;font-size:.86rem}
.cottage-lead{max-width:46ch;margin:0 auto 1.8rem;color:color-mix(in srgb,currentColor 80%,transparent)}
@media (max-width:820px){.cottage-grid{grid-template-columns:1fr}}

/* --- Atrakcje: szachownica tekst / zdjęcie --- */
.section-flush{padding-block:var(--sect)}
.board{background:var(--c-dark);color:var(--c-cream)}
.board-head{max-width:60ch;margin-bottom:clamp(38px,4.5vw,64px)}
.board-head p{color:color-mix(in srgb,var(--c-cream) 76%,transparent);margin-top:1.1rem}
.board-grid{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line)}
.board-text{
  background:var(--c-dark);padding:clamp(28px,3.6vw,58px);
  display:flex;flex-direction:column;justify-content:center;
  transition:background .5s var(--ease);
}
.board-text:hover{background:var(--c-deep)}
.board-icon{display:block;margin-bottom:18px}
.board-text h2,.board-text h3{font-size:clamp(1.2rem,1.8vw,1.6rem);letter-spacing:.16em;text-transform:uppercase;margin-bottom:1rem}
.board-text p{color:color-mix(in srgb,var(--c-cream) 72%,transparent);font-size:.95rem;max-width:44ch}
.board-photo{position:relative;overflow:hidden;min-height:260px;background:var(--c-deep)}
.board-photo img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease)}
.board-photo:hover img{transform:scale(1.05)}
.board-cta{text-align:center;margin-top:clamp(34px,4vw,54px)}
@media (max-width:820px){
  .board-grid{grid-template-columns:1fr}
  .board-photo{min-height:230px}
}

/* --- Warto zobaczyć: oś czasu z dojazdami --- */
.timeline-sect{background:var(--c-cream);color:var(--c-dark)}
.timeline-wrap{display:grid;grid-template-columns:minmax(220px,290px) 1fr;gap:clamp(28px,4vw,64px);align-items:start}
.timeline-aside h2{font-family:var(--font-display);font-size:clamp(1.5rem,2.4vw,2.1rem);line-height:1.35;margin-bottom:1.8rem;max-width:16ch}
.timeline{
  display:flex;gap:clamp(14px,2vw,30px);list-style:none;margin:0;padding:0 0 18px;
  overflow-x:auto;scroll-snap-type:x mandatory;
  border-left:1px solid var(--line-dark);padding-left:clamp(20px,3vw,44px);
}
.timeline::-webkit-scrollbar{height:4px}
.timeline::-webkit-scrollbar-thumb{background:var(--c-gold);border-radius:4px}
.tl-item{flex:0 0 clamp(140px,15vw,180px);scroll-snap-align:start;text-align:center}
.tl-thumb{display:block;border-radius:50%;overflow:hidden;aspect-ratio:1;margin-bottom:16px}
.tl-thumb img{width:100%;height:100%;object-fit:cover;transition:transform 1s var(--ease)}
.tl-thumb:hover img{transform:scale(1.08)}
.tl-title{font-size:clamp(.95rem,1.2vw,1.15rem);line-height:1.3;margin-bottom:10px;min-height:2.6em}
.tl-travel{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:7px;align-items:center}
.tl-travel li{display:flex;align-items:center;gap:8px;font-size:.82rem;color:color-mix(in srgb,var(--c-dark) 72%,transparent)}
@media (max-width:900px){
  .timeline-wrap{grid-template-columns:1fr}
  .timeline{border-left:0;padding-left:0;border-top:1px solid var(--line-dark);padding-top:26px}
}

/* --- FAQ: cztery kolumny --- */
.faq-head{text-align:center;margin-bottom:clamp(40px,5vw,72px)}
.faq-eyebrow{font-family:var(--font-display);font-size:clamp(1.4rem,2.4vw,2rem);margin-bottom:.3rem}
.faq-title{font-family:var(--font-display);font-size:clamp(1.1rem,1.6vw,1.4rem);font-weight:400;color:color-mix(in srgb,currentColor 68%,transparent);letter-spacing:.02em}
.faq-columns{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(18px,2.4vw,40px);align-items:start}
.faq-col h3{
  font-family:var(--font-display);font-size:1.25rem;text-align:center;
  padding-bottom:14px;margin-bottom:8px;border-bottom:1px solid var(--line-dark);
}
.faq-col .faq-item summary{font-size:1rem;padding:16px 30px 16px 0;line-height:1.4}
.faq-col .faq-item summary::before,.faq-col .faq-item summary::after{top:24px;right:2px;width:11px}
.faq-col .faq-answer{padding:0 4px 18px 0;font-size:.9rem}
@media (max-width:1000px){.faq-columns{grid-template-columns:1fr 1fr}}
@media (max-width:620px){.faq-columns{grid-template-columns:1fr}}

/* --- Mapa na podstronie okolicy --- */
.map-band{background:var(--c-dark);color:var(--c-cream)}
.map-frame{width:100%;aspect-ratio:16/8;border:1px solid var(--line);border-radius:var(--r);overflow:hidden;margin-top:clamp(24px,3vw,40px)}
.map-frame iframe{width:100%;height:100%;border:0;display:block;filter:grayscale(.25) contrast(1.05)}
.map-actions{display:flex;flex-wrap:wrap;gap:14px;margin-top:26px;align-items:center}



/* --- Hero: układ napisu, przycisku i strzałki --- */
.hero{align-items:center}
.hero-inner{
  padding-top:clamp(96px,13vh,150px);
  padding-bottom:clamp(130px,22vh,240px);   /* przesuwa blok wyraźnie nad środek ekranu */
}
.hero h1{line-height:.92}
.hero-tagline{margin-top:.35em}
.hero-btn{
  margin-top:1.5rem;                        /* przycisk tuż pod hasłem */
  padding:21px 54px;
  font-size:.95rem;
  letter-spacing:.2em;
}
.hero-arrow{
  margin-top:2.8rem;                        /* strzałka pod przyciskiem */
  width:62px;height:62px;
}
.hero-arrow .ico-arrow{width:30px;height:30px}
@media (max-width:600px){
  .hero-inner{padding-top:110px;padding-bottom:clamp(90px,16vh,150px)}
  .hero-btn{padding:18px 42px;font-size:.88rem}
  .hero-arrow{width:54px;height:54px;margin-top:2.2rem}
  .hero-arrow .ico-arrow{width:26px;height:26px}
}

/* Strzałka w osobnej linii pod przyciskiem, ciaśniejszy odstęp pod hasłem */
.hero-tagline{margin-bottom:0;line-height:1.25}
.hero-btn{margin-top:1.2rem}
.hero-arrow{display:flex;margin-left:auto;margin-right:auto;margin-top:2.4rem}
.hero-inner{padding-bottom:clamp(150px,24vh,270px)}
@media (max-width:600px){
  .hero-arrow{margin-top:2rem}
  .hero-inner{padding-bottom:clamp(110px,18vh,170px)}
}

/* Dociągnięcie bloku hero jeszcze odrobinę w górę, także na telefonie */
.hero-inner{padding-bottom:clamp(190px,28vh,320px)}
@media (max-width:600px){.hero-inner{padding-bottom:clamp(160px,26vh,240px)}}

/* --- Strefa relaksu: niskie, szerokie kafle jak na wizualizacji --- */
.board-grid{
  grid-template-columns:1fr 1fr;
  gap:1px;
  background:color-mix(in srgb, var(--c-cream) 12%, transparent);
}
.board-text{
  padding:clamp(20px,2.4vw,38px) clamp(24px,5.2vw,92px);
  justify-content:center;
}
.board-icon{margin-bottom:12px}
.board-icon .ico-board{width:24px;height:24px}
.board-text h2,.board-text h3{
  font-size:clamp(1rem,1.15vw,1.3rem);
  letter-spacing:.24em;
  margin-bottom:.75rem;
  font-weight:400;
}
.board-text p{
  font-size:clamp(.78rem,.88vw,.9rem);
  line-height:1.72;
  max-width:40ch;
  color:color-mix(in srgb,var(--c-cream) 66%,transparent);
}
.board-photo{min-height:0}
@media (max-width:820px){
  .board-text{padding:clamp(26px,6vw,40px) clamp(24px,7vw,44px)}
  .board-text p{max-width:none}
  .board-photo{min-height:200px}
}

/* Zdjęcie nie może narzucać wysokości wiersza - wypełnia kafel, a wysokość
   wyznacza kolumna z tekstem. Bez tego wiersze rosły do proporcji zdjęcia. */
.board-photo{position:relative;overflow:hidden}
.board-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
@media (max-width:820px){
  .board-photo{min-height:210px}
}

/* Dociśnięcie do proporcji z wizualizacji (ok. 3,5:1 na szerokim ekranie) */
.board-text{padding-block:clamp(16px,1.7vw,26px)}
.board-icon{margin-bottom:9px}
.board-text h2,.board-text h3{margin-bottom:.6rem}
.board-text p{line-height:1.66}

/* Dopisana wyżej reguła dwukolumnowa nadpisała starszy wyjątek dla telefonów -
   przywracamy jedną kolumnę poniżej 820 px. */
@media (max-width:820px){
  .board-grid{grid-template-columns:1fr}
}

/* --- Okolica: wszystkie punkty widoczne naraz, bez przewijania w bok --- */
.timeline{
  display:grid;
  grid-template-columns:repeat(6,minmax(0,1fr));
  gap:clamp(10px,1.4vw,26px);
  overflow:visible;
  scroll-snap-type:none;
  padding-bottom:0;
  align-items:start;
}
.tl-item{flex:none;min-width:0}
.tl-title{
  font-size:clamp(.72rem,.92vw,1rem);
  line-height:1.28;
  min-height:2.8em;
  margin-bottom:8px;
  hyphens:auto;
}
.tl-travel{gap:5px}
.tl-travel li{font-size:clamp(.68rem,.78vw,.8rem);gap:6px}
.ico-travel{width:16px;height:16px}
.tl-thumb{margin-bottom:12px}

@media (max-width:900px){
  .timeline{grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(14px,3vw,28px)}
}
@media (max-width:520px){
  .timeline{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
  .tl-title{font-size:.85rem;min-height:0}
  .tl-travel li{font-size:.78rem}
}

/* Więcej miejsca dla kół - węższa kolumna z nagłówkiem i mniejsze odstępy */
.timeline-wrap{
  grid-template-columns:minmax(190px,248px) 1fr;
  gap:clamp(22px,2.6vw,48px);
}
.timeline{padding-left:clamp(14px,1.8vw,30px)}
@media (max-width:1100px){
  .timeline{grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(14px,3vw,30px)}
}
@media (max-width:900px){
  .timeline-wrap{grid-template-columns:1fr}
}

/* Kolejność reguł: ten wyjątek musi stać po progu 1100 px, inaczej zostaje nadpisany */
@media (max-width:560px){
  .timeline{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
  .tl-title{font-size:.86rem;min-height:0}
  .tl-travel li{font-size:.78rem}
}

/* --- Przycisk w stopce: kolumna ma ok. 200 px, więc pełnowymiarowy przycisk
   zawijał napis na dwie linie i puchł do 219x78 px. --- */
.site-footer .btn{
  padding:12px 22px;
  font-size:.68rem;
  letter-spacing:.12em;
  white-space:nowrap;
  max-width:100%;
}
@media (max-width:860px){
  .site-footer .btn{padding:14px 26px;font-size:.72rem;letter-spacing:.14em}
}

/* Odrobina luzu, żeby w najwęższej kolumnie (ok. 200 px) przycisk nie
   dotykał jej krawędzi. */
@media (min-width:861px) and (max-width:1100px){
  .site-footer .btn{padding-inline:16px;letter-spacing:.1em}
}

@media (min-width:861px) and (max-width:1060px){
  .site-footer .btn{padding-inline:12px;font-size:.6rem;letter-spacing:.06em}
}

/* ==== Poprawki czytelności i odstępów w hero oraz sekcji "dzień w Weles" ==== */

/* 1. Blok hero nieco niżej */
.hero-inner{padding-bottom:clamp(110px,16vh,190px)}
@media (max-width:600px){.hero-inner{padding-bottom:clamp(90px,13vh,140px)}}

/* 2. Mocniejsze przyciemnienie zdjęć w hero - napisy mają się wybijać */
.hero::after{
  background:
    linear-gradient(to top,
      color-mix(in srgb, var(--c-dark) 96%, transparent) 0%,
      color-mix(in srgb, var(--c-dark) 62%, transparent) 42%,
      color-mix(in srgb, var(--c-dark) 58%, transparent) 72%,
      color-mix(in srgb, var(--c-dark) 78%, transparent) 100%),
    radial-gradient(ellipse 90% 60% at 50% 42%,
      color-mix(in srgb, var(--c-dark) 45%, transparent) 0%,
      transparent 100%);
}
/* 3. Mocniejsze przyciemnienie kafli pory dnia */
.day-card::before{
  background:linear-gradient(to top,
    color-mix(in srgb, var(--c-dark) 96%, transparent) 0%,
    color-mix(in srgb, var(--c-dark) 78%, transparent) 45%,
    color-mix(in srgb, var(--c-dark) 52%, transparent) 100%);
}

/* 4. Zdanie pod kaflami nachodziło na nie - odsuwam */
.rhythm-outro{margin-top:clamp(52px,7vw,110px)}

/* Pas "Stworzone by zwolnić" - mocniejsze przyciemnienie zdjęcia pod hero */
.intro-band::before{
  background:
    linear-gradient(100deg,
      color-mix(in srgb, var(--c-dark) 92%, transparent) 0%,
      color-mix(in srgb, var(--c-dark) 70%, transparent) 48%,
      color-mix(in srgb, var(--c-dark) 44%, transparent) 100%),
    linear-gradient(to bottom,
      color-mix(in srgb, var(--c-dark) 28%, transparent) 0%,
      color-mix(in srgb, var(--c-dark) 10%, transparent) 45%,
      color-mix(in srgb, var(--c-dark) 38%, transparent) 100%);
}

/* ==========================================================================
   Regulowane przyciemnienie zdjęć (panel: SEO i wygląd > Przyciemnienie)
   Wartość 0 = wygląd domyślny. Dodatkowa, jednolita warstwa dokładana
   na wierzch istniejących gradientów, żeby nie psuć ich kształtu.
   ========================================================================== */
.hero::after{
  background:
    linear-gradient(color-mix(in srgb, var(--c-dark) var(--dim-hero,0%), transparent),
                    color-mix(in srgb, var(--c-dark) var(--dim-hero,0%), transparent)),
    linear-gradient(to top,
      color-mix(in srgb, var(--c-dark) 96%, transparent) 0%,
      color-mix(in srgb, var(--c-dark) 62%, transparent) 42%,
      color-mix(in srgb, var(--c-dark) 58%, transparent) 72%,
      color-mix(in srgb, var(--c-dark) 78%, transparent) 100%),
    radial-gradient(ellipse 90% 60% at 50% 42%,
      color-mix(in srgb, var(--c-dark) 45%, transparent) 0%,
      transparent 100%);
}

.intro-band::before{
  background:
    linear-gradient(color-mix(in srgb, var(--c-dark) var(--dim-intro,0%), transparent),
                    color-mix(in srgb, var(--c-dark) var(--dim-intro,0%), transparent)),
    linear-gradient(100deg,
      color-mix(in srgb, var(--c-dark) 92%, transparent) 0%,
      color-mix(in srgb, var(--c-dark) 70%, transparent) 48%,
      color-mix(in srgb, var(--c-dark) 44%, transparent) 100%),
    linear-gradient(to bottom,
      color-mix(in srgb, var(--c-dark) 28%, transparent) 0%,
      color-mix(in srgb, var(--c-dark) 10%, transparent) 45%,
      color-mix(in srgb, var(--c-dark) 38%, transparent) 100%);
}

.day-card::before{
  background:
    linear-gradient(color-mix(in srgb, var(--c-dark) var(--dim-day,0%), transparent),
                    color-mix(in srgb, var(--c-dark) var(--dim-day,0%), transparent)),
    linear-gradient(to top,
      color-mix(in srgb, var(--c-dark) 96%, transparent) 0%,
      color-mix(in srgb, var(--c-dark) 78%, transparent) 45%,
      color-mix(in srgb, var(--c-dark) 52%, transparent) 100%);
}

.page-hero::after{
  background:
    linear-gradient(color-mix(in srgb, var(--c-dark) var(--dim-pagehero,0%), transparent),
                    color-mix(in srgb, var(--c-dark) var(--dim-pagehero,0%), transparent)),
    linear-gradient(to top, var(--c-dark), transparent 70%);
}

/* Na telefonie szachownica staje się jedną kolumną. Kolejność z HTML-a dałaby
   wtedy ciąg tekst, zdjęcie, zdjęcie, tekst - zmienna --o ustawiona przy każdym
   kaflu przywraca naprzemienność tekst, zdjęcie, tekst, zdjęcie. */
@media (max-width:820px){
  .board-grid > *{order:var(--o, 0)}
}

/* ==== Wykończenie po podmianie zdjęć ==== */

/* Pozycje menu łamały się na dwie linie ("ATRAKCJE / WELES") */
.main-nav ul a{white-space:nowrap}
@media (min-width:961px) and (max-width:1380px){
  .main-nav{gap:16px}
  .main-nav ul{gap:14px}
  .main-nav a{font-size:.7rem;letter-spacing:.1em}
  .nav-cta{padding:11px 16px;font-size:.66rem;letter-spacing:.1em}
  .nav-secondary{gap:11px}
}

/* Kafle pory dnia: nagłówki równo u góry, akapity równo u dołu */
.day-card-inner{width:100%;display:flex;flex-direction:column;justify-content:space-between;min-height:100%}
.day-card{align-items:stretch}
.day-card h3,.day-lead{text-shadow:0 1px 14px color-mix(in srgb, var(--c-dark) 70%, transparent)}
.day-text{margin-top:1.6rem}

/* Logo w nagłówku: pełny znak bez przycięcia */
.brand-logo{height:auto;width:clamp(78px,7vw,104px);object-fit:contain}
.site-header.is-solid .brand-logo{width:clamp(64px,5.4vw,82px)}
.footer-logo{width:clamp(140px,15vw,190px)}

/* Ikona pory dnia ma stałą wysokość, żeby nagłówki startowały z tego samego poziomu */
.day-icon{height:30px;line-height:0}
.day-card h3{min-height:1.1em}

/* Nagłówek z hasłem tworzą jedną grupę u góry kafla, akapity lądują u dołu */
.day-top{display:block}
.day-card-inner > .day-text{margin-top:1.6rem}

/* ==== Nagłówek: stała wysokość, bez przeskoku przy przewijaniu ====
   Wcześniej przy przewinięciu zmieniał się padding paska i rozmiar logo,
   przez co cała nawigacja podskakiwała o ponad 50 px. Teraz zmienia się
   wyłącznie tło, a wysokość jest stała. */
.site-header{padding:0;height:var(--head-h,86px);display:flex;align-items:center}
.site-header.is-solid{padding:0;height:var(--head-h,86px)}
.header-inner{width:100%}
:root{--head-h:86px}
@media (max-width:1380px){:root{--head-h:80px}}
@media (max-width:960px){:root{--head-h:72px}}

.brand-logo,.site-header.is-solid .brand-logo{
  width:auto;height:clamp(46px,4.4vw,60px);
}

/* Przycisk w nagłówku: napis w jednej linii, stały rozmiar */
.nav-cta{
  white-space:nowrap;
  padding:12px 20px;
  font-size:.68rem;
  letter-spacing:.12em;
  line-height:1.2;
}
@media (min-width:961px) and (max-width:1380px){
  .nav-cta{padding:11px 15px;font-size:.63rem;letter-spacing:.08em}
}

/* ==== "W cenie pobytu" - kompaktowa siatka zamiast siedmiu dużych kafli ==== */
.perks{
  list-style:none;margin:0;padding:0;
  display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));
  gap:1px;background:var(--line);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;
}
.perk{
  display:flex;align-items:flex-start;gap:16px;
  background:var(--c-deep);padding:22px 24px;
  transition:background .4s var(--ease);
}
.perk:hover{background:var(--c-mid)}
.perk-icon{flex:0 0 auto;color:var(--c-gold);margin-top:2px}
.ico-perk{width:26px;height:26px}
.perk-body{display:flex;flex-direction:column;gap:5px;min-width:0}
.perk-body strong{
  font-family:var(--font-display);font-weight:400;
  font-size:1.08rem;letter-spacing:.06em;line-height:1.3;
}
.perk-body span{font-size:.83rem;line-height:1.55;color:color-mix(in srgb,var(--c-cream) 62%,transparent)}
.perks-note{
  margin-top:26px;font-size:.9rem;
  color:color-mix(in srgb,var(--c-cream) 70%,transparent);
  display:flex;flex-wrap:wrap;align-items:center;gap:6px;
}
@media (max-width:520px){
  .perk{padding:18px 18px;gap:13px}
}

/* Etykieta sekcji z ikoną */
.kicker-ico{display:inline-flex;align-items:center;gap:11px}
.kicker-ico::before{display:none}
.ico-kicker{width:19px;height:19px;flex:0 0 auto}
.section-head.center .kicker-ico,.faq-head .kicker-ico{justify-content:center;width:100%}
.cta-band .kicker-ico{justify-content:center;width:100%}

/* ==== Rezerwacja ==== */
.booking-tabs{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:clamp(28px,3.5vw,46px)}
.booking-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(30px,4vw,64px);align-items:start}
.booking-h{font-size:1.4rem;letter-spacing:.08em;text-transform:uppercase;margin-bottom:.9rem}
.booking-hint{font-size:.86rem;color:color-mix(in srgb,currentColor 68%,transparent);margin-bottom:1.4rem}
.booking-form{border:1px solid var(--line);border-radius:var(--r);padding:clamp(22px,2.8vw,36px);position:sticky;top:110px}
@media (max-width:960px){
  .booking-grid{grid-template-columns:1fr}
  .booking-form{position:static}
}

.bcal-wrap{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:26px}
.bcal-title{font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;color:var(--c-gold);margin-bottom:12px}
.bcal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:3px}
.bcal-dn{font-size:.62rem;letter-spacing:.1em;text-transform:uppercase;text-align:center;opacity:.5;padding-bottom:6px}
.bcal-day{
  display:flex;align-items:center;justify-content:center;aspect-ratio:1;
  font:inherit;font-size:.78rem;border:0;border-radius:var(--r);
  background:transparent;color:inherit;padding:0;
}
button.bcal-day{cursor:pointer;background:color-mix(in srgb,var(--c-gold) 14%,transparent);transition:background .25s var(--ease),color .25s var(--ease)}
button.bcal-day:hover{background:color-mix(in srgb,var(--c-gold) 42%,transparent)}
.bcal-day.is-busy{background:color-mix(in srgb,var(--c-cream) 7%,transparent);opacity:.42;text-decoration:line-through}
.bcal-day.is-past{opacity:.16}
button.bcal-day.is-sel{background:var(--c-gold);color:var(--c-dark);font-weight:500}
button.bcal-day.is-range{background:color-mix(in srgb,var(--c-gold) 30%,transparent)}
.bcal-legend{margin-top:18px;font-size:.76rem;display:flex;align-items:center;gap:9px;flex-wrap:wrap}
.bcal-legend .dot{width:12px;height:12px;display:inline-block;border-radius:2px}
.bcal-legend .dot.free{background:color-mix(in srgb,var(--c-gold) 30%,transparent)}
.bcal-legend .dot.busy{background:color-mix(in srgb,var(--c-cream) 12%,transparent)}
.bcal-legend .dot.sel{background:var(--c-gold)}

.quote{border:1px solid var(--c-gold);border-radius:var(--r);padding:20px 22px;margin:24px 0 6px}
.quote-row{display:flex;justify-content:space-between;gap:14px;padding:7px 0;font-size:.9rem}
.quote-row span{color:color-mix(in srgb,currentColor 66%,transparent)}
.quote-sum{border-top:1px solid var(--line);margin-top:6px;padding-top:12px;font-size:1.05rem}
.quote-sum strong{color:var(--c-gold);font-family:var(--font-display);font-size:1.4rem}
.quote-note{font-size:.78rem;color:color-mix(in srgb,currentColor 60%,transparent);margin:10px 0 0}
.quote-warn{margin:12px 0 0;font-size:.84rem;color:#E2A08B}

/* ==== Przycisk "Sprawdź dostępność" ====
   Reguła .main-nav a nadpisywała kolor tekstu i dolną krawędź przycisku,
   przez co złoty guzik miał kremowy napis (fatalny kontrast) i dziwną kreskę
   pod spodem. Ustawiamy go tu jawnie, z wyższą specyficznością. */
.main-nav .nav-cta,
.main-nav .nav-cta:hover{
  border:1px solid var(--c-gold);
  border-radius:999px;
  background:var(--c-gold);
  color:var(--c-dark);
  font-weight:500;
  padding:11px 26px;
  letter-spacing:.1em;
  text-transform:uppercase;
  box-shadow:0 2px 18px color-mix(in srgb, var(--c-gold) 22%, transparent);
  transition:background .35s var(--ease),color .35s var(--ease),box-shadow .35s var(--ease);
}
.main-nav .nav-cta:hover{
  background:transparent;
  color:var(--c-gold);
  box-shadow:none;
}
@media (min-width:961px) and (max-width:1380px){
  .main-nav .nav-cta{padding:10px 18px;font-size:.64rem;letter-spacing:.07em}
}

/* Ten sam kształt dla przycisku w stopce i pasie CTA */
.btn-avail{border-radius:999px;font-weight:500}

/* ==== Logo w nagłówku ====
   Po ustawieniu stałej wysokości paska kontener marki był ściskany przez
   nawigację do zera szerokości. Blokujemy kurczenie i podajemy jawne wymiary. */
.brand{flex:0 0 auto}
.brand-logo,
.site-header.is-solid .brand-logo{
  flex:0 0 auto;
  height:clamp(46px,4.4vw,60px);
  width:auto;
  min-width:56px;
  max-width:none;
  object-fit:contain;
}

/* ==== Baner zgód na pliki cookies ==== */
.cookie-bar{
  position:fixed;left:0;right:0;bottom:0;z-index:300;
  background:var(--c-dark);border-top:1px solid var(--c-gold);
  box-shadow:0 -8px 40px rgba(0,0,0,.45);
  color:var(--c-cream);
  transform:translateY(0);opacity:1;
  transition:transform .4s var(--ease),opacity .4s var(--ease);
}
.cookie-bar.is-hidden{transform:translateY(100%);opacity:0}
.cookie-inner{
  max-width:var(--wrap);margin:0 auto;padding:20px var(--gutter);
  display:flex;align-items:center;gap:clamp(18px,3vw,44px);flex-wrap:wrap;
}
.cookie-text{flex:1 1 380px;min-width:0}
.cookie-title{
  font-family:var(--font-display);font-size:1.15rem;
  letter-spacing:.08em;margin-bottom:.35rem;color:var(--c-gold);
}
.cookie-text p{font-size:.86rem;line-height:1.65;margin:0;color:color-mix(in srgb,var(--c-cream) 76%,transparent)}
.cookie-text a{border-bottom:1px solid var(--c-gold)}
.cookie-actions{display:flex;gap:12px;flex-wrap:wrap;flex:0 0 auto}
.cookie-actions .btn{padding:12px 22px;font-size:.72rem;white-space:nowrap}
@media (max-width:700px){
  .cookie-inner{padding:18px var(--gutter);gap:16px}
  .cookie-actions{width:100%}
  .cookie-actions .btn{flex:1 1 auto;text-align:center}
}

.cookie-link{margin:0}
.cookie-reset{
  background:none;border:0;padding:0;cursor:pointer;
  font-size:.78rem;color:color-mix(in srgb,var(--c-cream) 55%,transparent);
  border-bottom:1px solid color-mix(in srgb,var(--c-cream) 30%,transparent);
}
.cookie-reset:hover{color:var(--c-gold);border-bottom-color:var(--c-gold)}

/* Zastępnik mapy do czasu wyrażenia zgody */
.map-blocked{
  width:100%;height:100%;min-height:260px;
  background:var(--c-deep);
  display:flex;align-items:center;justify-content:center;
  padding:clamp(24px,4vw,48px);text-align:center;
}
.map-blocked-inner{max-width:46ch}
.ico-map-blocked{width:34px;height:34px;color:var(--c-gold);margin:0 auto 14px}
.map-blocked-title{font-family:var(--font-display);font-size:1.25rem;margin-bottom:.5rem}
.map-blocked-text{font-size:.86rem;line-height:1.6;color:color-mix(in srgb,var(--c-cream) 70%,transparent);margin-bottom:1rem}
.map-blocked-address{font-size:.92rem;color:var(--c-gold);margin-bottom:1.4rem}
.map-blocked-actions{display:flex;gap:12px;flex-wrap:wrap;justify-content:center}
.map-blocked-actions .btn{font-size:.72rem;padding:12px 20px}
