/* DM Sans — self-host (woff2), font-display:swap */
@font-face{font-family:"DM Sans";font-style:normal;font-weight:400;font-display:swap;src:url("../fonts/dm-sans-400.woff2") format("woff2")}
@font-face{font-family:"DM Sans";font-style:normal;font-weight:500;font-display:swap;src:url("../fonts/dm-sans-500.woff2") format("woff2")}
@font-face{font-family:"DM Sans";font-style:normal;font-weight:600;font-display:swap;src:url("../fonts/dm-sans-600.woff2") format("woff2")}
@font-face{font-family:"DM Sans";font-style:normal;font-weight:700;font-display:swap;src:url("../fonts/dm-sans-700.woff2") format("woff2")}


:root {
  /* Styl wg szablonu Figma "ViaTours": pomarańcz + granat, czysta biel, DM Sans.
     (--brand-blue* przemapowane na pomarańcz, aby przenieść akcent na całą stronę) */
  --brand-blue: #ec6c32; --brand-blue-dark: #d95a24; --brand-navy: #0b0d28;
  --brand-sky: #f4a582; --brand-sun: #ec6c32; --brand-sun-deep: #d95a24;
  --accent: #ec6c32; --accent-deep: #d95a24; /* pomarańcz ViaTours */

  --bg: #ffffff; --bg-light: #f6f6f9; --bg-medium: #eeeef4; --bg-dark: #e2e2ec;
  --border: #e7e8ee; --border-dark: #cfd0da;
  --text: #0b0d28; --text-body: #4b5162; --text-muted: #7a8194; --text-light: #a7adbb;
  --ph-bg: #eeeef4;
  --font: 'DM Sans', system-ui, sans-serif;
  --font-head: 'DM Sans', system-ui, sans-serif;
  --max-w: 1200px; --px: clamp(1rem, 4vw, 2.5rem); --r: 8px; --r-md: 12px; --r-lg: 16px;
}
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; font-size: 16px; overflow-x: clip; }
body { font-family: var(--font); color: var(--text-body); background: var(--bg); line-height: 1.6; overflow-x: clip; }
a { color: inherit; text-decoration: none; }
ul { list-style: none; }
img { max-width: 100%; display: block; }
h1,h2,h3,h4 { font-weight: 700; color: var(--text); line-height: 1.2; }
/* Nagłówki czcionką z logo (brush/marker) */
h1,h2,h3,.hero-full h1,.cta-banner h2,.activity-card h3,.osada-card-title,.hero-full__stat-num {
  font-family: var(--font-head); font-weight: 700; letter-spacing: -.015em; line-height: 1.18;
}
h1 { font-size: clamp(2rem, 4.5vw, 3.4rem); }
h2 { font-size: clamp(1.55rem, 3vw, 2.3rem); }
h3 { font-size: clamp(1.15rem, 2vw, 1.4rem); }
h4 { font-size: 1.05rem; }
p { color: var(--text-body); }
.lead { font-size: 1.1rem; color: var(--text-body); line-height: 1.75; }
.text-muted { color: var(--text-muted); }
.section-label { font-family: var(--font-head); font-size: 0.74rem; font-weight: 700; letter-spacing: 0.18em; text-transform: uppercase; color: var(--brand-blue); display: block; margin-bottom: 0.75rem; }
.container { max-width: var(--max-w); margin: 0 auto; padding: 0 var(--px); }
.section { padding: 5rem 0; }
.section-alt { background: var(--bg-light); position: relative; }
/* Falowanie na dole szarej sekcji (gdy poniżej jest jasna sekcja/dzielnik, nie CTA) */
.section-alt:has(+ :not(.section-alt):not(.cta-banner))::after{
  content:'';position:absolute;left:0;right:0;bottom:-1px;height:46px;z-index:1;pointer-events:none;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 46' preserveAspectRatio='none'%3E%3Cpath d='M0,46 L0,22 C240,46 420,4 660,18 C900,32 1040,12 1200,26 L1200,46 Z' fill='%23ffffff'/%3E%3C/svg%3E") no-repeat bottom center/100% 46px;
}
.section-dark { background: var(--text); color: var(--bg); }
.section-dark h1,.section-dark h2,.section-dark h3,.section-dark h4,.section-dark .section-label { color: var(--bg); }
.section-dark .lead,.section-dark p { color: rgba(255,255,255,0.72); }
.grid-2 { display: grid; grid-template-columns: repeat(2,1fr); gap: 1.5rem; }
.grid-3 { display: grid; grid-template-columns: repeat(3,1fr); gap: 1.5rem; }
.grid-4 { display: grid; grid-template-columns: repeat(4,1fr); gap: 1.25rem; }
.grid-2>*,.grid-3>*,.grid-4>* { min-width: 0; }
.flex-center { display: flex; align-items: center; justify-content: center; }
.text-center { text-align: center; }
.mb-1{margin-bottom:.5rem}.mb-2{margin-bottom:1rem}.mb-3{margin-bottom:1.5rem}.mb-4{margin-bottom:2rem}.mb-6{margin-bottom:3rem}
@media(max-width:900px){.grid-3,.grid-4{grid-template-columns:repeat(2,1fr)}}
@media(max-width:600px){.grid-2,.grid-3,.grid-4{grid-template-columns:1fr}}
.nav{position:sticky;top:0;z-index:100;background:var(--bg);border-bottom:1px solid var(--border);font-family:var(--font-head)}
.nav-links>a,.nav-toplink,.nav-sub>a{letter-spacing:.02em}
.nav-inner{display:flex;align-items:center;justify-content:space-between;height:64px;max-width:var(--max-w);margin:0 auto;padding:0 var(--px)}
.nav-logo{font-weight:800;font-size:1.2rem;color:var(--text);letter-spacing:-.02em}
.nav-logo span{font-weight:300}
.nav-links{display:flex;align-items:center;gap:.15rem}
.nav-links>a{padding:.4rem .65rem;font-size:.85rem;font-weight:500;color:var(--text-muted);border-radius:var(--r)}
.nav-links>a:hover{background:var(--bg-light);color:var(--text)}
.nav-links>a.active{color:var(--text);font-weight:600}
.nav-cta{margin-left:.5rem;padding:.6rem 1.4rem!important;background:var(--accent)!important;color:#fff!important;border-radius:24px!important;font-weight:600!important;text-transform:none;letter-spacing:0;font-size:.9rem!important}
.nav-cta:hover{background:var(--accent-deep)!important;color:#fff!important}
.nav-hamburger{display:none;flex-direction:column;gap:5px;background:none;border:none;cursor:pointer;padding:.4rem}
.nav-hamburger-bar{width:22px;height:2px;background:var(--text);border-radius:2px}
@media(max-width:860px){
  .nav-hamburger{display:flex}
  .nav-links{display:none;position:absolute;top:64px;left:0;right:0;background:var(--bg);border-bottom:1px solid var(--border);flex-direction:column;align-items:stretch;padding:1rem;gap:.25rem}
  .nav-links.open{display:flex}
  .nav-links>a{padding:.65rem .75rem}
}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.8rem 1.8rem;border-radius:8px;font-family:var(--font-head);font-size:.95rem;font-weight:600;letter-spacing:0;text-transform:none;cursor:pointer;border:2px solid transparent;text-decoration:none;transition:background-color .2s,color .2s,border-color .2s}
.btn-primary{background:var(--accent);color:#fff;border-color:var(--accent)}
.btn-primary:hover{background:var(--accent-deep);color:#fff;border-color:var(--accent-deep)}
.btn-secondary{background:transparent;color:var(--brand-blue);border-color:var(--brand-blue)}
.btn-secondary:hover{background:var(--brand-blue);color:#fff}
.btn-ghost{background:transparent;color:rgba(255,255,255,.9);border-color:rgba(255,255,255,.45)}
.btn-ghost:hover{border-color:#fff;background:#fff;color:var(--text)}
.btn-lg{padding:1rem 2.4rem;font-size:.82rem}
.cta-group{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center}
.hero{background:var(--bg-light);border-bottom:1px solid var(--border);padding:5rem 0 4rem}
.hero-grid{display:grid;grid-template-columns:1.15fr 1fr;gap:4rem;align-items:center}
.hero-grid>*{min-width:0}
.hero-badge{display:inline-flex;align-items:center;gap:.5rem;background:var(--bg);border:1px solid var(--border);border-radius:20px;padding:.3rem .9rem;font-size:.75rem;font-weight:600;color:var(--text-muted);letter-spacing:.04em;margin-bottom:1.25rem}
.hero-badge-dot{width:7px;height:7px;background:var(--text);border-radius:50%;flex-shrink:0}
.hero-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin-top:2.5rem;padding-top:2rem;border-top:1px solid var(--border)}
.hero-stat-num{font-size:1.75rem;font-weight:800;color:var(--text);line-height:1}
.hero-stat-label{font-size:.78rem;color:var(--text-muted);margin-top:.25rem}
.hero-visual{background:var(--ph-bg);border-radius:var(--r-lg);min-height:380px;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:1.5rem;padding:2rem}
.hero-visual-label{font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--text-light)}
@media(max-width:900px){.hero{padding:3.5rem 0 3rem}.hero-grid{grid-template-columns:1fr;gap:2rem}}
.card{background:var(--bg);border:1px solid var(--border);border-radius:var(--r-md);padding:1.5rem;display:flex;flex-direction:column}
.card:hover{box-shadow:0 4px 20px rgba(0,0,0,.07)}
.icon-box{width:44px;height:44px;background:var(--bg-medium);border-radius:var(--r);display:flex;align-items:center;justify-content:center;flex-shrink:0}
.icon-box-lg{width:56px;height:56px;background:var(--bg-medium);border-radius:var(--r-md);display:flex;align-items:center;justify-content:center;flex-shrink:0}
.tag{display:inline-block;background:var(--bg-medium);color:var(--text-muted);font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;padding:.2rem .55rem;border-radius:20px}
.img-ph{background:var(--ph-bg);border-radius:var(--r-md);display:flex;align-items:center;justify-content:center;color:var(--text-light);font-size:.78rem;letter-spacing:.06em;text-transform:uppercase;font-weight:600}
.steps{display:grid;grid-template-columns:repeat(5,1fr);gap:1rem}
.steps>*{min-width:0}
.step{display:flex;flex-direction:column;align-items:center;text-align:center;gap:.75rem}
.step-num{width:44px;height:44px;border-radius:50%;background:var(--text);color:#fff;font-size:.95rem;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0;position:relative;z-index:1}
.step-title{font-size:.9rem;font-weight:700;color:var(--text)}
.step-desc{font-size:.8rem;color:var(--text-muted);line-height:1.5}
.steps-track{position:relative}
.steps-track::before{content:'';position:absolute;top:22px;left:10%;right:10%;height:2px;background:var(--border);z-index:0}
@media(max-width:860px){.steps{grid-template-columns:1fr 1fr}.steps-track::before{display:none}}
@media(max-width:480px){.steps{grid-template-columns:1fr}}
.testimonial{background:var(--bg);border:1px solid var(--border);border-radius:var(--r-md);padding:1.5rem}
.testimonial-stars{font-size:.85rem;color:var(--brand-sun-deep);letter-spacing:.1em;margin-bottom:.65rem}
.testimonial-text{font-size:.9rem;line-height:1.7;color:var(--text-body);margin-bottom:1rem;font-style:italic}
.testimonial-author{display:flex;align-items:center;gap:.75rem}
.testimonial-avatar{width:38px;height:38px;background:var(--bg-medium);border-radius:50%;flex-shrink:0}
.testimonial-name{font-size:.88rem;font-weight:600;color:var(--text)}
.testimonial-role{font-size:.78rem;color:var(--text-muted)}
.faq-item{border-bottom:1px solid var(--border);padding:1.25rem 0}
.faq-item:first-child{border-top:1px solid var(--border)}
.faq-q{font-weight:600;font-size:.97rem;color:var(--text);cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:1rem;user-select:none}
.faq-q::after{content:'+';font-size:1.2rem;font-weight:400;color:var(--text-muted);flex-shrink:0}
.faq-a{margin-top:.65rem;font-size:.9rem;color:var(--text-muted);line-height:1.7}
.cta-banner{background:linear-gradient(135deg,#171a38 0%,#0b0d28 100%);padding:5rem 0 8rem;text-align:center}
.cta-banner h2{color:#fff;margin-bottom:1rem}
.cta-banner p{color:rgba(255,255,255,.68);margin-bottom:2.5rem;font-size:1.05rem;max-width:560px;margin-left:auto;margin-right:auto}
.cta-banner .cta-group{justify-content:center}
.cta-banner .btn-primary{background:var(--accent);color:#111;border-color:var(--accent)}
.cta-banner .btn-primary:hover{background:#fff;color:#111;border-color:#fff}
.callout-dark{background:#111;color:#fff;padding:1.25rem 1.75rem;border-radius:8px;font-size:.95rem;line-height:1.65}
.callout-dark strong{font-weight:700}
.footer{background:linear-gradient(180deg,#12152f 0%,#0b0d28 100%);color:#fff;border-top:none;padding:4.5rem 0 2rem}
.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1.15fr;gap:2.5rem}
.footer-brand-name{font-family:var(--font-head);font-weight:800;font-size:1.5rem;color:#fff;letter-spacing:.02em;margin-bottom:.85rem}
.footer-brand-name span{font-weight:400;opacity:.85}
.footer-brand p{font-size:.9rem;color:rgba(255,255,255,.78);line-height:1.7}
.footer-col h5{font-family:var(--font-head);font-size:.74rem;font-weight:700;text-transform:uppercase;letter-spacing:.14em;color:#fff;margin-bottom:1.1rem}
.footer-col ul{display:flex;flex-direction:column;gap:.6rem}
.footer-col li a{font-size:.9rem;color:rgba(255,255,255,.78);display:inline-flex;align-items:center;gap:.55rem;transition:color .18s}
.footer-col li a:hover{color:var(--accent)}
.footer-col li a svg{width:16px;height:16px;color:var(--accent);flex-shrink:0}
.footer-social{display:flex;gap:.6rem;margin-top:1.15rem}
.footer-social a{width:40px;height:40px;border:1px solid rgba(255,255,255,.32);border-radius:50%;display:inline-flex;align-items:center;justify-content:center;color:#fff;transition:background-color .18s,border-color .18s,color .18s}
.footer-social a svg{width:18px;height:18px}
.footer-social a:hover{background:var(--accent);border-color:var(--accent);color:#111}
.footer-bottom{border-top:1px solid rgba(255,255,255,.2);padding-top:1.25rem;margin-top:2.5rem;display:flex;justify-content:space-between;flex-wrap:wrap;gap:.5rem;font-size:.8rem;color:rgba(255,255,255,.7)}
.footer-bottom a{color:rgba(255,255,255,.7)}
.footer-bottom a:hover{color:var(--accent)}
@media(max-width:900px){.footer-grid{grid-template-columns:1fr 1fr}}
@media(max-width:768px){
  .section{padding:3rem 0}
  h1,h2,h3{word-break:break-word}
  .footer-grid{grid-template-columns:1fr 1fr}
  .cta-banner{padding:3.5rem 0}
}
@media(max-width:480px){
  .footer-grid{grid-template-columns:1fr}
  h1{font-size:clamp(1.6rem,7vw,2rem)}
}

/* Osady cards */
.osada-card{background:var(--bg);border:1px solid var(--border);border-radius:var(--r-lg);overflow:hidden;display:flex;flex-direction:column}
.osada-card:hover{box-shadow:0 6px 24px rgba(0,0,0,.09)}
.osada-card-img{height:200px;background:var(--ph-bg);display:flex;align-items:center;justify-content:center;font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--text-light)}
.osada-card-body{padding:1.5rem;flex:1;display:flex;flex-direction:column}
.osada-card-capacity{font-size:.78rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;margin-bottom:.4rem}
.osada-card-title{font-size:1.2rem;font-weight:700;color:var(--text);margin-bottom:.5rem}
.osada-card-desc{font-size:.88rem;color:var(--text-muted);line-height:1.6;flex:1;margin-bottom:1.25rem}
.osada-card-footer{display:flex;align-items:center;justify-content:space-between;padding-top:1rem;border-top:1px solid var(--border)}
.osada-card-price{font-size:.82rem;color:var(--text-muted)}
.osada-card-price strong{font-size:1rem;color:var(--text);font-weight:700}

/* Inkludowane items */
.included-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}
.included-item{display:flex;align-items:center;gap:.75rem;padding:.85rem;background:var(--bg);border:1px solid var(--border);border-radius:var(--r-md)}
.included-icon{width:38px;height:38px;background:var(--bg-medium);border-radius:var(--r);display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:1rem}
.included-label{font-size:.88rem;font-weight:600;color:var(--text)}
@media(max-width:900px){.included-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:480px){.included-grid{grid-template-columns:1fr}}

/* Lokalizacja */
.lokalizacja-grid{display:grid;grid-template-columns:1fr 1fr;gap:3rem;align-items:start}
.lokalizacja-list{display:flex;flex-direction:column;gap:.75rem;margin-top:1.5rem}
.lokalizacja-item{display:flex;align-items:flex-start;gap:.85rem;padding:.75rem 0;border-bottom:1px solid var(--border)}
.lokalizacja-item:last-child{border-bottom:none}
.lokalizacja-dist{font-size:.75rem;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;min-width:50px;flex-shrink:0;margin-top:.1rem}
.lokalizacja-name{font-size:.92rem;font-weight:600;color:var(--text);margin-bottom:.15rem}
.lokalizacja-desc{font-size:.82rem;color:var(--text-muted);line-height:1.5}
.map-ph{background:var(--ph-bg);border-radius:var(--r-lg);min-height:320px;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:.75rem}
.map-ph-label{font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--text-light)}
@media(max-width:768px){.lokalizacja-grid{grid-template-columns:1fr}}

/* Breadcrumb */
.breadcrumb{font-size:.78rem;color:var(--text-muted);margin-bottom:1rem;display:flex;gap:.4rem;align-items:center;flex-wrap:wrap}
.breadcrumb a{color:var(--text-muted)}
.breadcrumb a:hover{color:var(--text)}
.breadcrumb-sep{color:var(--text-light)}

/* Hero sub */
.hero-sub{position:relative;border-bottom:none;padding:5rem 0 4rem;color:#fff;background:#123a5e;overflow:hidden;border-radius:0 0 34px 34px}
.hero-sub::before{content:'';position:absolute;inset:0;z-index:0;background:url('../img/zachod.jpg') center 55%/cover no-repeat}
.hero-sub::after{content:'';position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(18,58,94,.55) 0%,rgba(18,58,94,.35) 40%,rgba(13,79,140,.72) 100%)}
.hero-sub>.container{position:relative;z-index:2}
.hero-sub h1{color:#fff;text-shadow:0 2px 18px rgba(0,0,0,.35)}
.hero-sub .lead{color:rgba(255,255,255,.92)}
.hero-sub .breadcrumb,.hero-sub .breadcrumb a{color:rgba(255,255,255,.8)}
.hero-sub .breadcrumb a:hover{color:#fff}
.hero-sub .breadcrumb-sep{color:rgba(255,255,255,.5)}
@media(max-width:600px){.hero-sub{border-radius:0 0 20px 20px}}

/* Formularz kontaktowy */
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.form-group{display:flex;flex-direction:column;gap:.35rem}
.form-group.full{grid-column:1/-1}
.form-label{font-size:.82rem;font-weight:600;color:var(--text)}
.form-input,.form-select,.form-textarea{width:100%;padding:.65rem .85rem;border:1px solid var(--border);border-radius:var(--r);font-size:.9rem;font-family:var(--font);color:var(--text);background:var(--bg);appearance:none}
.form-input:focus,.form-select:focus,.form-textarea:focus{outline:none;border-color:var(--border-dark)}
.form-textarea{min-height:110px;resize:vertical;line-height:1.6}
.form-check{display:flex;align-items:flex-start;gap:.6rem;cursor:pointer;font-size:.84rem;color:var(--text-body);line-height:1.55}
.form-check input[type=checkbox]{width:18px;height:18px;margin-top:.1rem;flex-shrink:0;accent-color:var(--text);cursor:pointer}
.form-check a{color:var(--text);font-weight:600;text-decoration:underline}
.form-check a:hover{color:var(--text-muted)}
@media(max-width:600px){.form-grid{grid-template-columns:1fr}}

/* Cennik tabela */
.price-table{width:100%;border-collapse:collapse;font-size:.9rem}
.price-table th{background:var(--bg-light);padding:.85rem 1rem;text-align:left;font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);border-bottom:2px solid var(--border)}
.price-table td{padding:.85rem 1rem;border-bottom:1px solid var(--border);color:var(--text-body)}
.price-table tr:last-child td{border-bottom:none}
.price-table tr:hover td{background:var(--bg-light)}
.price-highlight{font-weight:700;color:var(--text)}

/* ============ NAWIGACJA DROPDOWN ============ */
.nav-links{position:relative}
.nav-item{position:relative;display:flex;align-items:center}
.nav-toplink{padding:.4rem .65rem;font-size:.85rem;font-weight:500;color:var(--text-muted);border-radius:var(--r);display:inline-flex;align-items:center;gap:.25rem;cursor:pointer}
.nav-toplink:hover{background:var(--bg-light);color:var(--text)}
.nav-item.active .nav-toplink{color:var(--text);font-weight:600}
.nav-caret{font-size:.6rem;color:var(--text-light)}
.nav-sub{position:absolute;top:100%;left:0;min-width:210px;background:var(--bg);border:1px solid var(--border);border-radius:var(--r-md);box-shadow:0 8px 28px rgba(0,0,0,.1);padding:.4rem;display:none;flex-direction:column;gap:.1rem;z-index:120}
.nav-item:hover .nav-sub{display:flex}
.nav-sub>a{padding:.55rem .7rem;font-size:.84rem;font-weight:500;color:var(--text-muted);border-radius:var(--r);white-space:nowrap}
.nav-sub>a:hover{background:var(--bg-light);color:var(--text)}
.nav-sub>a.active{color:var(--text);font-weight:600;background:var(--bg-light)}
@media(max-width:860px){
  .nav-item{flex-direction:column;align-items:stretch}
  .nav-toplink{padding:.65rem .75rem;justify-content:space-between}
  .nav-caret{margin-left:auto}
  .nav-sub{position:static;display:flex;box-shadow:none;border:none;border-left:2px solid var(--border);border-radius:0;margin:0 0 .25rem .75rem;padding:.1rem 0 .1rem .5rem;min-width:0}
  .nav-item.open .nav-sub{display:flex}
  .nav-item:not(.open) .nav-sub{display:none}
}

/* ============ REALNE ZDJĘCIA — sloty ============ */
.ph-img{width:100%;height:100%;object-fit:cover;display:block}
.hero-visual{padding:0;overflow:hidden}
.hero-visual .ph-img{border-radius:var(--r-lg);min-height:380px;height:100%}
.osada-card-img{overflow:hidden;padding:0}
.osada-card-img .ph-img{height:100%;width:100%}
.img-ph{overflow:hidden;padding:0}
.img-ph .ph-img{height:100%;width:100%}
.map-ph{overflow:hidden;position:relative}
.map-ph .ph-img{position:absolute;inset:0;height:100%;width:100%;object-fit:cover;filter:grayscale(.2)}
.map-ph .map-ph-label,.map-ph>div{position:relative;z-index:1}

/* ============ GALERIA / LIGHTBOX ============ */
.gallery{display:grid;grid-template-columns:repeat(4,1fr);gap:.6rem}
.gallery>*{min-width:0}
.gallery-item{aspect-ratio:4/3;overflow:hidden;border-radius:var(--r-md);cursor:pointer;background:var(--ph-bg);border:1px solid var(--border)}
.gallery-item img{width:100%;height:100%;object-fit:cover;transition:transform .3s}
.gallery-item:hover img{transform:scale(1.05)}
@media(max-width:900px){.gallery{grid-template-columns:repeat(3,1fr)}}
@media(max-width:600px){.gallery{grid-template-columns:repeat(2,1fr)}}
.lightbox{position:fixed;inset:0;background:rgba(0,0,0,.92);z-index:1000;display:none;align-items:center;justify-content:center;padding:2rem}
.lightbox.open{display:flex}
.lightbox img{max-width:92vw;max-height:88vh;object-fit:contain;border-radius:var(--r)}
.lightbox-close{position:absolute;top:1.25rem;right:1.5rem;color:#fff;font-size:2rem;font-weight:300;cursor:pointer;line-height:1;background:none;border:none}
.lightbox-nav{position:absolute;top:50%;transform:translateY(-50%);color:#fff;font-size:2.5rem;cursor:pointer;background:none;border:none;padding:.5rem 1rem;opacity:.7}
.lightbox-nav:hover{opacity:1}
.lightbox-prev{left:.5rem}
.lightbox-next{right:.5rem}
.gallery-count{font-size:.8rem;color:var(--text-muted);margin-top:1rem;text-align:center}

/* ============ WIDEO (Filmy) ============ */
.video-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem}
.video-grid>*{min-width:0}
.video-embed{position:relative;aspect-ratio:16/9;border-radius:var(--r-md);overflow:hidden;background:#000}
.video-embed iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
@media(max-width:900px){.video-grid{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.video-grid{grid-template-columns:1fr}}

/* ============ SPECYFIKACJA OSADY (spec bar) ============ */
.spec-bar{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;padding:1.5rem;background:var(--bg-light);border:1px solid var(--border);border-radius:var(--r-lg)}
.spec-bar>*{min-width:0;text-align:center}
.spec-num{font-size:1.5rem;font-weight:800;color:var(--text);line-height:1}
.spec-label{font-size:.75rem;color:var(--text-muted);margin-top:.3rem;text-transform:uppercase;letter-spacing:.04em}
@media(max-width:600px){.spec-bar{grid-template-columns:1fr 1fr}}

/* ============ SZLAKI (Okolica) ============ */
.szlak{display:flex;gap:1rem;padding:1.25rem 0;border-bottom:1px solid var(--border);align-items:flex-start}
.szlak:first-child{border-top:1px solid var(--border)}
.szlak-marker{width:12px;height:12px;border-radius:50%;flex-shrink:0;margin-top:.35rem;border:2px solid var(--text)}
.szlak-km{font-size:.75rem;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;flex-shrink:0;min-width:70px;text-align:right}
.szlak-name{font-size:.95rem;font-weight:700;color:var(--text);margin-bottom:.25rem}
.szlak-desc{font-size:.85rem;color:var(--text-muted);line-height:1.55}
.szlak-body{flex:1;min-width:0}

/* lista atrakcji w kolumnach */
.attr-cols{columns:2;column-gap:2.5rem}
.attr-cols li{break-inside:avoid;font-size:.88rem;color:var(--text-body);padding:.4rem 0;border-bottom:1px solid var(--border);line-height:1.5}
.attr-cols li strong{color:var(--text)}
@media(max-width:600px){.attr-cols{columns:1}}

/* badge sezonu domku */
.season-badge{display:inline-flex;align-items:center;gap:.4rem;padding:.35rem .9rem;border-radius:20px;font-size:.78rem;font-weight:700;background:var(--bg-medium);color:var(--text);text-transform:uppercase;letter-spacing:.06em}

/* ============ IKONY — bazowe ============ */
svg{display:inline-block;vertical-align:middle}
.ico-chip{width:46px;height:46px;border-radius:var(--r-md);background:var(--accent);color:#15171a;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.ico-chip svg{width:22px;height:22px}

/* ============ HERO FULL-BLEED (emocjonalny) ============ */
.hero-full{position:relative;min-height:82vh;display:flex;align-items:center;color:#fff;overflow:hidden;text-align:center}
.hero-full::after{content:'';position:absolute;left:0;right:0;bottom:-1px;height:72px;z-index:1;pointer-events:none;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 72' preserveAspectRatio='none'%3E%3Cpath d='M0,72 L0,34 C240,72 420,6 660,28 C900,50 1040,18 1200,40 L1200,72 Z' fill='%23ffffff'/%3E%3C/svg%3E") no-repeat bottom center/100% 72px}
@media(max-width:600px){.hero-full::after{height:40px;background-size:100% 40px}}
.hero-full__img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0}
.hero-full__overlay{position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(0,0,0,.15) 0%,rgba(0,0,0,.05) 35%,rgba(0,0,0,.65) 100%)}
.hero-full__inner{position:relative;z-index:2;width:100%;max-width:var(--max-w);margin:0 auto;padding:5rem var(--px) 6rem}
.hero-full__badge{display:inline-flex;align-items:center;gap:.5rem;background:rgba(255,255,255,.15);backdrop-filter:blur(6px);border:1px solid rgba(255,255,255,.3);border-radius:20px;padding:.35rem 1rem;font-size:.75rem;font-weight:600;letter-spacing:.04em;margin-bottom:1.25rem}
.hero-full__badge .dot{width:7px;height:7px;border-radius:50%;background:#fff}
.hero-full h1{color:#fff;font-size:clamp(2.2rem,6vw,4.2rem);line-height:1.05;letter-spacing:-.02em;margin-bottom:1rem;text-shadow:0 2px 24px rgba(0,0,0,.35)}
.hero-full__lead{font-size:clamp(1.05rem,2vw,1.3rem);color:rgba(255,255,255,.92);max-width:640px;line-height:1.6;margin:0 auto 1.75rem;text-shadow:0 1px 12px rgba(0,0,0,.4)}
.hero-full .cta-group{justify-content:center}
.hero-full__stats{display:inline-flex;flex-wrap:wrap;gap:2.5rem;justify-content:center;margin-top:2.25rem;padding-top:1.75rem;border-top:1px solid rgba(255,255,255,.25)}
.hero-full__stat-num{font-size:1.8rem;font-weight:800;line-height:1}
.hero-full__stat-label{font-size:.8rem;color:rgba(255,255,255,.75);margin-top:.25rem}
@media(max-width:600px){.hero-full{min-height:82vh}.hero-full__stats{gap:1.5rem}}

/* ============ AKTYWNOŚCI — „co możesz tu robić" ============ */
.activity-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.25rem}
.activity-grid>*{min-width:0}
.activity-card{position:relative;border-radius:var(--r-lg);overflow:hidden;min-height:280px;display:flex;align-items:flex-end;color:#fff;cursor:default}
.activity-card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0;transition:transform .5s}
.activity-card:hover img{transform:scale(1.06)}
.activity-card__ov{position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(0,0,0,0) 30%,rgba(0,0,0,.75) 100%)}
.activity-card__body{position:relative;z-index:2;padding:1.5rem}
.activity-card__ico{width:38px;height:38px;border-radius:10px;background:rgba(255,255,255,.2);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;margin-bottom:.75rem}
.activity-card__ico svg{width:20px;height:20px}
.activity-card h3{color:#fff;font-size:1.2rem;margin-bottom:.3rem}
.activity-card p{color:rgba(255,255,255,.85);font-size:.85rem;line-height:1.5}
.activity-card--tall{grid-row:span 2;min-height:100%}
.activity-card--wide{grid-column:span 2}
@media(max-width:860px){
  .activity-grid{grid-template-columns:1fr 1fr}
  .activity-card--tall{grid-row:span 1}
}
@media(max-width:560px){
  .activity-grid{grid-template-columns:1fr}
  .activity-card{min-height:230px}
  .activity-card--tall,.activity-card--wide{grid-row:span 1;grid-column:span 1}
}

/* ============ AMENITIES — rząd ikon udogodnień ============ */
.amenities{display:grid;grid-template-columns:repeat(4,1fr);gap:.75rem}
.amenities>*{min-width:0}
.amenity{display:flex;align-items:center;gap:.7rem;padding:.85rem 1rem;background:var(--bg);border:1px solid var(--border);border-radius:var(--r-md)}
.amenity{border-left:3px solid var(--accent)}
.amenity svg{width:22px;height:22px;color:var(--brand-blue);flex-shrink:0}
.amenity span{font-size:.86rem;font-weight:500;color:var(--text-body)}
@media(max-width:760px){.amenities{grid-template-columns:1fr 1fr}}

/* mniejszy rząd ikon na kartach osad */
.amenity-mini{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.25rem}
.amenity-mini .chip{display:inline-flex;align-items:center;gap:.35rem;font-size:.74rem;color:var(--text-muted);background:var(--bg-light);border:1px solid var(--border);border-radius:20px;padding:.22rem .6rem}
.amenity-mini .chip svg{width:14px;height:14px}

/* ============ SPEC z ikonami ============ */
.spec-ico-bar{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem}
.spec-ico-bar>*{min-width:0}
.spec-ico-item{display:flex;align-items:center;gap:.75rem;padding:1rem;background:var(--bg-light);border:1px solid var(--border);border-radius:var(--r-md)}
.spec-ico-item svg{width:24px;height:24px;color:var(--text);flex-shrink:0}
.spec-ico-num{font-size:1.2rem;font-weight:800;color:var(--text);line-height:1}
.spec-ico-label{font-size:.72rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em}
@media(max-width:600px){.spec-ico-bar{grid-template-columns:1fr 1fr}}

/* ============ MOZAIKA ZDJĘĆ (osada hero, slowhop-style) ============ */
.mosaic{display:grid;grid-template-columns:2fr 1fr 1fr;grid-template-rows:1fr 1fr;gap:.5rem;height:420px;border-radius:var(--r-lg);overflow:hidden}
.mosaic>div{overflow:hidden;background:var(--ph-bg);cursor:pointer;position:relative}
.mosaic>div:first-child{grid-row:1/3}
.mosaic img{width:100%;height:100%;object-fit:cover;transition:transform .4s}
.mosaic>div:hover img{transform:scale(1.05)}
.mosaic__more{position:absolute;inset:0;background:rgba(0,0,0,.5);color:#fff;display:flex;align-items:center;justify-content:center;font-size:.95rem;font-weight:600;z-index:2}
@media(max-width:760px){.mosaic{grid-template-columns:1fr 1fr;grid-template-rows:180px 180px;height:auto}.mosaic>div:first-child{grid-row:auto;grid-column:1/3;height:220px}}

/* ============ KARTY ATRAKCJI Z ODLEGŁOŚCIĄ ============ */
.attr-card{background:var(--bg);border:1px solid var(--border);border-radius:var(--r-lg);overflow:hidden;display:flex;flex-direction:column}
.attr-card:hover{box-shadow:0 6px 24px rgba(0,0,0,.08)}
.attr-card__img{height:170px;overflow:hidden;background:var(--ph-bg);position:relative}
.attr-card__img img{width:100%;height:100%;object-fit:cover}
.attr-card__dist{position:absolute;top:.65rem;right:.65rem;background:rgba(0,0,0,.75);color:#fff;font-size:.72rem;font-weight:700;padding:.25rem .6rem;border-radius:20px;display:flex;align-items:center;gap:.3rem;z-index:1}
.attr-card__dist svg{width:12px;height:12px}
.attr-card__body{padding:1.1rem 1.25rem;flex:1}
.attr-card__title{font-size:1rem;font-weight:700;color:var(--text);margin-bottom:.3rem}
.attr-card__desc{font-size:.84rem;color:var(--text-muted);line-height:1.5}

/* lista miejsc (gastro/usługi) z ikoną i odległością */
.place-row{display:flex;align-items:center;gap:.85rem;padding:.8rem 0;border-bottom:1px solid var(--border)}
.place-row .ico-chip{width:38px;height:38px}
.place-row .ico-chip svg{width:18px;height:18px}
.place-body{flex:1;min-width:0}
.place-name{font-size:.9rem;font-weight:600;color:var(--text)}
.place-meta{font-size:.8rem;color:var(--text-muted)}
.place-dist{font-size:.78rem;font-weight:700;color:var(--text-muted);white-space:nowrap;display:flex;align-items:center;gap:.25rem}
.place-dist svg{width:13px;height:13px}

/* ============ MAPA OSM (embed) ============ */
.map-embed{width:100%;height:100%;min-height:320px;border-radius:var(--r-lg);overflow:hidden;border:1px solid var(--border);background:var(--ph-bg)}
.map-embed iframe{width:100%;height:100%;min-height:320px;border:0;display:block}

/* ---- Logo w nawigacji / stopce ---- */
.nav-logo-img{height:46px;width:auto;display:block}
@media(max-width:860px){.nav-logo-img{height:40px}}

/* ---- Hero slider ---- */
.hero-slider{position:absolute;inset:0;z-index:0}
.hero-slide{opacity:0;transition:opacity 1.2s ease}
.hero-slide.is-active{opacity:1}
.hero-slider-dots{position:absolute;left:0;right:0;bottom:5.5rem;z-index:5;display:flex;gap:.55rem;justify-content:center}
@media(max-width:600px){.hero-slider-dots{bottom:4rem}}
.hero-dot{width:11px;height:11px;border-radius:50%;border:2px solid rgba(255,255,255,.85);background:transparent;cursor:pointer;padding:0;transition:background .25s,transform .25s}
.hero-dot.is-active{background:var(--accent);border-color:var(--accent);transform:scale(1.15)}
.hero-dot:hover{background:rgba(255,255,255,.6)}

/* ============ OZDOBNIKI ============ */
/* Ornament słoneczko + fale pod nagłówkami sekcji */
/* (ViaTours: bez ozdobnej falki pod nagłówkami) */

/* Zdjęcia z nietypowo przyciętymi narożnikami */
/* Kadr zdjęcia: obcięcie ~20% wysokości oryginału (10% góra + 10% dół) */
.notch-img{border-radius:26px!important;overflow:hidden;aspect-ratio:526/561}
.notch-img img{width:100%;height:100%;object-fit:cover;object-position:center}

/* Fale SVG pod tłem sekcji CTA */
.cta-banner{position:relative;overflow:hidden}
.cta-banner .container{position:relative;z-index:2}
/* Fala nad CTA — niebieski nie zaczyna się prosto */
.cta-banner::before{content:'';position:absolute;top:-1px;left:0;right:0;height:70px;z-index:1;pointer-events:none;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 70' preserveAspectRatio='none'%3E%3Cpath d='M0,0 L1200,0 L1200,30 C980,62 820,8 600,32 C380,56 240,8 0,34 Z' fill='%23f4f7fa'/%3E%3C/svg%3E") no-repeat top center/100% 70px}
.cta-banner::after{
  content:'';position:absolute;left:0;right:0;bottom:-1px;height:96px;z-index:1;pointer-events:none;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 96' preserveAspectRatio='none'%3E%3Cpath d='M0,40 C260,80 480,12 720,44 C940,74 1080,28 1200,52 L1200,96 L0,96 Z' fill='%231b1f42'/%3E%3Cpath d='M0,66 C280,96 520,44 760,72 C980,96 1090,58 1200,78 L1200,96 L0,96 Z' fill='%230b0d28'/%3E%3C/svg%3E") no-repeat bottom center/100% 96px;
}
/* Delikatny zielony las jako część tła sekcji „bez ukrytych opłat" */
.section-forest{overflow:hidden}
.section-forest::before{content:'';position:absolute;left:0;right:0;bottom:0;height:100%;z-index:0;pointer-events:none;
  background:url('../img/las-zielony.png') no-repeat center bottom;background-size:100% auto;opacity:.5}
.section-forest .container{position:relative;z-index:1}

/* ================= ViaTours — dopracowanie sekcji (screeny 3–8) ================= */

/* HERO: układ tekstu do lewej (screen #3) */
.hero-full{text-align:left}
.hero-full h1{max-width:660px}
.hero-full__lead{margin:0 0 1.75rem}
.hero-full .cta-group{justify-content:flex-start}
.hero-full__stats{justify-content:flex-start}
.btn-arrow svg{width:18px;height:18px}

/* KORZYŚCI bez ramek (screen #4) */
.benefits .benefit{background:none;border:0;box-shadow:none;padding:0;text-align:left}
.benefits .benefit:hover{box-shadow:none}
.benefit-ico{color:var(--accent);margin-bottom:1rem;line-height:0}
.benefit-ico svg{width:42px;height:42px}
.benefit h4{font-size:1.15rem;color:var(--text);margin-bottom:.5rem}
.benefit p{font-size:.92rem;color:var(--text-muted);line-height:1.7}

/* Brzoskwiniowe tło sekcji (jak ViaTours) */
.section-tint{background:#fff5ef}

/* NASZE OSADY — 2 w wierszu, styl listy poziomej */
.osady-list{gap:1.75rem}
.osada-card--list{flex-direction:row;position:relative;align-items:stretch}
.osada-card--list .osada-card-img{width:44%;height:auto;min-height:240px;align-self:stretch;flex-shrink:0}
.osada-card--list .osada-card-body{flex:1;padding:1.5rem}
.osada-premium{position:absolute;top:14px;left:14px;z-index:2;background:var(--accent);color:#fff;font-size:.66rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;padding:.3rem .7rem;border-radius:6px}
.osada-card-desc{color:#20232f}
.amenity-mini .chip{color:var(--text)}
@media(max-width:640px){.osada-card--list{flex-direction:column}.osada-card--list .osada-card-img{width:100%;min-height:180px}}

/* BEZ UKRYTYCH OPŁAT — 8 boxów 2/rząd, poziome (screen #7) */
.amenities--grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem;max-width:920px;margin:0 auto}
.amenities--grid .amenity{background:#fff;border:1px solid var(--border);border-left:1px solid var(--border);border-radius:14px;box-shadow:0 6px 22px rgba(11,13,40,.05);padding:1rem 1.2rem;gap:1rem}
.amenities--grid .amenity>span:last-child{font-weight:600;color:var(--text);font-size:.95rem}
.amenity-ico{width:46px;height:46px;border-radius:50%;background:#fff2e9;color:var(--accent);display:flex;align-items:center;justify-content:center;flex-shrink:0}
.amenity-ico svg{width:22px;height:22px;color:var(--accent)}
.section-forest::before{opacity:.32}
@media(max-width:600px){.amenities--grid{grid-template-columns:1fr}}

/* WYBRZEŻE KASZUBSKIE — km + pin + kolor + wyrównanie tabelaryczne */
.lokalizacja-dist{color:var(--accent);min-width:100px;display:inline-flex;align-items:center;gap:.35rem;font-weight:700;text-transform:none;letter-spacing:0;font-size:.92rem;margin-top:0}
.lokalizacja-dist svg{width:15px;height:15px;color:var(--accent);flex-shrink:0}
.lokalizacja-item{align-items:center}

/* FAQ — karty + okrągły przełącznik (screen #5) */
.faq-item{border:1px solid var(--border);border-radius:14px;background:#fff;padding:1.15rem 1.5rem;margin-bottom:1rem;transition:box-shadow .2s}
.faq-item:first-child{border-top:1px solid var(--border)}
.faq-item.open{box-shadow:0 12px 34px rgba(11,13,40,.07)}
.faq-q{color:var(--text);font-size:1.02rem}
.faq-q::after{content:'+';width:32px;height:32px;border-radius:50%;background:#fff2e9;color:var(--accent);display:flex;align-items:center;justify-content:center;font-size:1.25rem;font-weight:500;flex-shrink:0;transition:background-color .2s,color .2s}
.faq-item.open .faq-q::after{content:'\2212';background:var(--accent);color:#fff}
.faq-a{display:none;color:var(--text-body)}
.faq-item.open .faq-a{display:block}

/* OPINIE — wyśrodkowana karuzela (screen #6) */
.reviews{position:relative;max-width:720px;margin:0 auto}
.review{display:none;flex-direction:column;align-items:center;text-align:center;margin:0}
.review.is-active{display:flex}
.review-avatar{width:92px;height:92px;border-radius:50%;background:var(--bg-medium);position:relative;margin-bottom:1.4rem}
.review-quote{position:absolute;top:-8px;left:-8px;width:38px;height:38px;border-radius:50%;background:var(--accent);color:#fff;display:flex;align-items:center;justify-content:center;font-family:Georgia,serif;font-size:1.8rem;line-height:2.4rem}
.review-stars{color:var(--accent);letter-spacing:.18em;margin-bottom:1rem;font-size:.95rem}
.review-text{font-size:1.15rem;line-height:1.85;color:var(--text);max-width:640px;margin:0 auto 1.4rem;font-style:normal;border:0;padding:0}
.review-text::before{content:'\201E'}.review-text::after{content:'\201D'}
.review-name{font-weight:700;color:var(--text)}
.review-role{font-size:.9rem;color:var(--text-muted);margin-top:.15rem}
.reviews-dots{display:flex;gap:.5rem;justify-content:center;margin-top:1.75rem}
.reviews-dot{width:9px;height:9px;border-radius:50%;border:0;background:var(--border-dark);cursor:pointer;padding:0;transition:all .2s}
.reviews-dot.is-active{background:var(--accent);width:26px;border-radius:5px}

/* CTA pomarańczowy + ozdobniki (screen #8) */
.cta-banner{background:linear-gradient(135deg,#f0813f 0%,#ea6526 100%);padding:5rem 0}
.cta-banner p{color:rgba(255,255,255,.92)}
.cta-banner::before{content:'';position:absolute;top:0;bottom:auto;left:auto;right:0;width:min(46%,560px);height:100%;z-index:0;opacity:.55;pointer-events:none;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 400 300'%3E%3Cg fill='none' stroke='%233b7dd8' stroke-width='2.5'%3E%3Cpath d='M0,70 C120,20 210,120 300,70 C360,42 390,80 400,72'/%3E%3Cpath d='M0,110 C120,60 210,160 300,110 C360,82 390,120 400,112'/%3E%3Cpath d='M0,150 C120,100 210,200 300,150 C360,122 390,160 400,152'/%3E%3Cpath d='M0,190 C120,140 210,240 300,190 C360,162 390,200 400,192'/%3E%3Cpath d='M0,230 C120,180 210,280 300,230 C360,202 390,240 400,232'/%3E%3C/g%3E%3C/svg%3E") no-repeat right top/contain}
.cta-banner::after{content:'';position:absolute;top:auto;left:auto;right:3%;bottom:6%;width:140px;height:140px;z-index:0;pointer-events:none;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 200'%3E%3Cpath d='M46,96 C31,56 76,20 121,31 C171,42 190,90 172,138 C156,180 95,195 60,168 C33,147 59,131 46,96 Z' fill='%23ffce33'/%3E%3C/svg%3E") no-repeat center/contain}
.cta-banner .btn-primary{background:#fff;color:var(--accent);border-color:#fff}
.cta-banner .btn-primary:hover{background:var(--brand-navy);color:#fff;border-color:var(--brand-navy)}

/* STOPKA — ciemnoniebieska jak w logo (screen #8) */
.footer{background:linear-gradient(180deg,#123762 0%,#0b213f 100%)}

.section-forest{position:relative}

/* CZTERY ADRESY — 50/50 z mapą, ikony bez kwadratów, do lewej */
.adresy-grid{display:grid;grid-template-columns:1fr 1fr;gap:3rem;align-items:stretch}
.adresy-list{display:flex;flex-direction:column;gap:1.35rem;margin-top:1.5rem}
.adres-item{display:flex;gap:.9rem;align-items:flex-start}
.adres-ico{color:var(--accent);flex-shrink:0;line-height:0;margin-top:.1rem}
.adres-ico svg{width:24px;height:24px}
.adres-nazwa{font-weight:700;color:var(--text);font-size:1.05rem}
.adres-adres{font-size:.9rem;color:var(--text);margin:.15rem 0}
.adres-opis{font-size:.82rem;color:var(--text-muted)}
.adresy-grid .map-embed{min-height:100%}
@media(max-width:768px){.adresy-grid{grid-template-columns:1fr;gap:2rem}}

/* ============ Poprawki: slajder-numery, opinie, split, CTA, header ============ */

/* HERO — numery slajdów zamiast kropek (screen #3) */
.hero-slider-nums{position:absolute;left:0;right:0;bottom:2.25rem;z-index:5;max-width:var(--max-w);margin:0 auto;padding:0 var(--px);display:flex;gap:1.4rem;align-items:center}
.hero-num{background:none;border:0;color:rgba(255,255,255,.55);font-family:var(--font-head);font-weight:600;font-size:1.05rem;letter-spacing:.05em;cursor:pointer;padding:0;transition:color .2s}
.hero-num.is-active{color:#fff;display:inline-flex;align-items:center;gap:1.2rem}
.hero-num.is-active::after{content:'';width:56px;height:2px;background:#fff}

/* OPINIE — zdjęcia gościń */
.review-avatar{background-size:cover;background-position:center}

/* BEZ UKRYTYCH OPŁAT — lewo tekst, prawo ikony (screen #7) */
.cenie-grid{display:grid;grid-template-columns:.82fr 1.18fr;gap:3rem;align-items:center}
.cenie-grid .amenities--grid{max-width:none;margin:0}
.cenie-intro .lead{margin-bottom:0}
@media(max-width:860px){.cenie-grid{grid-template-columns:1fr;gap:2rem}}

/* WYBRZEŻE — przycisk wyrównany do kolumny nazw */
.lok-btn{margin-top:1.5rem;margin-left:calc(100px + .85rem)}
@media(max-width:768px){.lok-btn{margin-left:0}}

/* CTA — fala u góry, większy odstęp, ozdobniki wg screena #8 */
.cta-banner{margin-top:4rem;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 420 300'%3E%3Cg fill='none' stroke='%233f7fd6' stroke-width='2.6' stroke-linecap='round'%3E%3Cpath d='M420,40 C330,10 300,70 220,55 C150,42 120,80 30,60'/%3E%3Cpath d='M420,75 C325,45 295,108 215,90 C150,76 115,116 20,96'/%3E%3Cpath d='M420,112 C320,82 292,146 210,126 C150,112 112,152 15,132'/%3E%3Cpath d='M420,150 C318,120 290,185 208,164 C150,150 110,190 15,170'/%3E%3Cpath d='M420,190 C320,160 292,224 212,202 C152,188 114,228 25,208'/%3E%3Cpath d='M420,230 C328,202 298,262 220,240 C158,224 120,262 35,244'/%3E%3C/g%3E%3C/svg%3E") no-repeat top right/46% auto,linear-gradient(135deg,#f0813f 0%,#ea6526 100%)}
.cta-banner::before{content:'';position:absolute;top:-37px;bottom:auto;left:0;right:0;width:auto;height:40px;opacity:1;z-index:0;pointer-events:none;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 40' preserveAspectRatio='none'%3E%3Cpath d='M0,40 L0,20 C300,44 500,4 760,20 C960,33 1080,10 1200,22 L1200,40 Z' fill='%23f0813f'/%3E%3C/svg%3E") no-repeat top center/100% 40px}
.cta-banner::after{content:'';position:absolute;top:auto;left:auto;right:3%;bottom:8%;width:135px;height:135px;z-index:0;pointer-events:none;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 200'%3E%3Cpath d='M30,170 C10,110 40,30 120,20 C150,16 182,32 186,62 C192,112 150,176 80,186 C55,190 40,185 30,170 Z' fill='%23ffce33'/%3E%3C/svg%3E") no-repeat center/contain}

/* STOPKA — logo zamiast napisu */
.footer-logo{height:56px;width:auto;margin-bottom:1rem}

/* HEADER — wyższy, zmniejsza się przy scrollu */
.nav-inner{height:88px;transition:height .25s ease}
.nav-logo-img{height:58px;transition:height .25s ease}
.nav--scrolled .nav-inner{height:62px}
.nav--scrolled .nav-logo-img{height:44px}
@media(max-width:860px){.nav-links{top:88px}.nav--scrolled .nav-links{top:62px}}

/* ============ Poprawki: menu, numery slajdera, CTA-fala ============ */

/* MENU wg screena #2 — czarny tekst, aktywny w szarej pastylce, rozwijane z pomarańczowym hover */
.nav-links>a,.nav-toplink{color:var(--text);font-size:.92rem;font-weight:500;padding:.55rem 1rem;border-radius:22px}
.nav-links>a:hover,.nav-toplink:hover{background:var(--bg-light);color:var(--text)}
.nav-links>a.active,.nav-item.active .nav-toplink{background:var(--bg-light);color:var(--text);font-weight:600}
.nav-caret{font-size:.7rem;color:var(--text)}
.nav-sub{min-width:236px;padding:.6rem;border-radius:14px;box-shadow:0 16px 40px rgba(11,13,40,.12)}
.nav-sub>a{color:var(--text);font-size:.92rem;font-weight:500;padding:.72rem 1rem;border-radius:8px}
.nav-sub>a:hover{background:var(--bg-light);color:var(--accent)}
.nav-sub>a.active{background:var(--bg-light);color:var(--accent);font-weight:600}

/* NUMERY SLAJDERA — wyżej (nie ucina ich fala) + czytelniejsze */
.hero-slider-nums{bottom:5.75rem;gap:1.7rem}
.hero-num{font-size:1rem;font-weight:600;color:rgba(255,255,255,.6)}
.hero-num.is-active{color:#fff;gap:1.3rem}
.hero-num.is-active::after{width:90px}
@media(max-width:600px){.hero-slider-nums{bottom:4.5rem}.hero-num.is-active::after{width:52px}}

/* CTA — pomarańczowa fala u góry wchodzi wprost na szare tło (bez bieli, bez ozdobników) */
.cta-banner{margin-top:0;background:linear-gradient(135deg,#f0813f 0%,#ea6526 100%)}
.cta-banner::before{content:'';position:absolute;top:-56px;bottom:auto;left:0;right:0;width:auto;height:58px;opacity:1;z-index:0;pointer-events:none;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 58' preserveAspectRatio='none'%3E%3Cpath d='M0,58 L0,30 C240,64 420,-2 660,24 C900,46 1040,10 1200,34 L1200,58 Z' fill='%23f0813f'/%3E%3C/svg%3E") no-repeat top center/100% 58px}
.cta-banner::after{content:none;background:none}

/* NUMERY SLAJDERA — w przepływie pod statystykami (bez nachodzenia na wave/statystyki) */
.hero-slider-nums{position:static;margin:2.25rem 0 0;padding:0;max-width:none;left:auto;right:auto;bottom:auto;justify-content:flex-start}

/* OPINIE — rozrzucone kółka z twarzami po bokach (jak projekt #6) */
.section-reviews .container{position:relative;z-index:1}
.reviews-faces{position:absolute;inset:0;z-index:0;pointer-events:none}
.reviews-faces span{position:absolute;border-radius:50%;background-size:cover;background-position:center;filter:grayscale(1);opacity:.4}
@media(max-width:1080px){.reviews-faces{display:none}}

/* CTA — górna fala DOKŁADNIE jak w sliderze (ten sam kształt, pomarańcz na szare tło) */
.cta-banner::before{top:-70px;height:72px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 72' preserveAspectRatio='none'%3E%3Cpath d='M0,72 L0,34 C240,72 420,6 660,28 C900,50 1040,18 1200,40 L1200,72 Z' fill='%23f0813f'/%3E%3C/svg%3E") no-repeat top center/100% 72px}

/* CTA — pozwól fali wystawać ponad sekcję (była ucinana przez overflow:hidden) */
.cta-banner{overflow:visible}

/* CTA — płaski kolor + fala w DOKŁADNIE tym samym kolorze (bez odcięcia) */
.cta-banner{background:#ec6c32}
.cta-banner::before{background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 72' preserveAspectRatio='none'%3E%3Cpath d='M0,72 L0,34 C240,72 420,6 660,28 C900,50 1040,18 1200,40 L1200,72 Z' fill='%23ec6c32'/%3E%3C/svg%3E") no-repeat top center/100% 72px}

/* CZTERY ADRESY — więcej szarej przestrzeni pod mapą */
.section-adresy{padding-bottom:9rem}

/* ============ YouTube facade (PageSpeed) ============ */
.yt-facade{cursor:pointer;display:block}
.yt-facade .yt-facade__poster{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0}
.yt-facade__play{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);z-index:2;transition:transform .2s,opacity .2s;opacity:.92;filter:drop-shadow(0 2px 8px rgba(0,0,0,.4))}
.yt-facade:hover .yt-facade__play{transform:translate(-50%,-50%) scale(1.08);opacity:1}
.yt-facade::after{content:'';position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(0,0,0,.05),rgba(0,0,0,.25))}
.yt-facade.is-playing::after{display:none}
.yt-facade.is-playing .yt-facade__play{display:none}

/* ============ HERO slider — kreska jako loader odliczający czas slajdu ============ */
/* Track szary (jak nieaktywny numer) + biały fill wypełniający się przez 5s (= czas slajdu).
   Reset następuje przez restart klasy .is-active w JS (auto-zmiana i klik). */
.hero-num.is-active::after{
  width:90px;height:2px;border-radius:2px;
  background:
    linear-gradient(#fff,#fff) left center / 0% 100% no-repeat,
    rgba(255,255,255,.4);
  animation:okHeroLoader 5s linear forwards;
}
@keyframes okHeroLoader{ from{ background-size:0% 100%; } to{ background-size:100% 100%; } }
@media(max-width:600px){ .hero-num.is-active::after{ width:52px; } }
@media(prefers-reduced-motion:reduce){
  .hero-num.is-active::after{ animation:none; background:#fff; }
}

/* ============ Animacje wejścia (reveal on scroll) — subtelne, jednorazowe ============ */
/* Tylko gdy JS aktywny (progresywnie). Animujemy opacity+transform (0 CLS, GPU). */
.js .reveal{opacity:0;transform:translateY(22px);transition:opacity .6s cubic-bezier(.16,1,.3,1),transform .6s cubic-bezier(.16,1,.3,1);will-change:opacity,transform}
.js .reveal.is-visible{opacity:1;transform:none}
/* Stagger dla dzieci siatek (karty pojawiają się kolejno) */
.js .reveal-stagger>*{opacity:0;transform:translateY(22px);transition:opacity .6s cubic-bezier(.16,1,.3,1),transform .6s cubic-bezier(.16,1,.3,1)}
.js .reveal-stagger.is-visible>*{opacity:1;transform:none}
.js .reveal-stagger.is-visible>*:nth-child(1){transition-delay:.04s}
.js .reveal-stagger.is-visible>*:nth-child(2){transition-delay:.10s}
.js .reveal-stagger.is-visible>*:nth-child(3){transition-delay:.16s}
.js .reveal-stagger.is-visible>*:nth-child(4){transition-delay:.22s}
.js .reveal-stagger.is-visible>*:nth-child(5){transition-delay:.28s}
.js .reveal-stagger.is-visible>*:nth-child(6){transition-delay:.34s}
.js .reveal-stagger.is-visible>*:nth-child(7){transition-delay:.40s}
.js .reveal-stagger.is-visible>*:nth-child(8){transition-delay:.46s}
@media(prefers-reduced-motion:reduce){
  .js .reveal,.js .reveal.is-visible,.js .reveal-stagger>*,.js .reveal-stagger.is-visible>*{opacity:1!important;transform:none!important;transition:none!important}
}
