/* =========================================================================
   Rowerowa Osada — Redesign strony głównej, ETAP 1 (Fundament)
   Zakres: typografia, kolory (nowe tokeny), navbar, hero, sekcja rowerów.
   Ten plik ładowany jest WYŁĄCZNIE na index.html — nie wpływa na inne strony.
   Istniejące ID/klasy używane przez script.js (m.in. #datePickerBtn,
   #mainPageDateRangeInput, #bikesCarouselContainer, #bikeDots,
   #bikesDropdown, #mobileMenu) pozostają nietknięte funkcjonalnie —
   ten plik tylko je stylizuje.
   ========================================================================= */

:root{
  --rd-ink:#0E1512;
  --rd-forest:#1E3A2F;
  --rd-forest-light:#2C4F40;
  --rd-stone:#F6F3EC;
  --rd-ember:#E85D2C;
  --rd-ember-deep:#C94A1E;
  --rd-muted:#8A8578;
  --rd-line:#DFD9C9;
}

/* ---------- Typography foundation (scoped to homepage via this file) ---------- */
body{
  font-family:'Inter', ui-sans-serif, system-ui, sans-serif;
}
.rd-font-display{
  font-family:'Bebas Neue', ui-sans-serif, sans-serif;
  letter-spacing:0.01em;
  text-transform:uppercase;
}
.rd-font-heading{
  font-family:'Archivo', ui-sans-serif, sans-serif;
}
.rd-font-mono{
  font-family:'JetBrains Mono', ui-monospace, monospace;
}
.rd-tracking-wide{ letter-spacing:0.16em; }
.rd-tracking-tight{ letter-spacing:-0.02em; }

/* =========================================================================
   NAVBAR
   ========================================================================= */
header.rd-navbar{
  background:transparent;
  border-bottom-color:transparent;
  transition:background-color .35s ease, box-shadow .35s ease, backdrop-filter .35s ease, border-color .35s ease;
}
header.rd-navbar.rd-scrolled{
  background:rgba(255,255,255,.94);
  backdrop-filter:blur(14px);
  border-bottom-color:hsl(var(--border));
  box-shadow:0 1px 0 rgba(0,0,0,.03);
}
header.rd-navbar .rd-nav-link{
  font-family:'Archivo',sans-serif; font-weight:600; font-size:13.5px;
  letter-spacing:0.02em;
  color:rgba(255,255,255,.9);
  transition:color .25s ease, opacity .25s ease;
}
header.rd-navbar.rd-scrolled .rd-nav-link{
  color:hsl(var(--secondary));
}
header.rd-navbar .rd-nav-link:hover{ color:var(--rd-ember); }
header.rd-navbar .rd-logo-img{
  filter:brightness(0) invert(1);
  transition:filter .35s ease;
}
header.rd-navbar.rd-scrolled .rd-logo-img{ filter:none; }
header.rd-navbar .rd-icon-btn{
  color:rgba(255,255,255,.9);
  transition:color .25s ease, background-color .25s ease;
}
header.rd-navbar.rd-scrolled .rd-icon-btn{ color:hsl(var(--secondary)); }
header.rd-navbar .rd-icon-btn:hover{ color:var(--rd-ember); background:rgba(255,255,255,.12); }
header.rd-navbar.rd-scrolled .rd-icon-btn:hover{ background:hsl(var(--muted)); }

.rd-btn-ember{
  background:var(--rd-ember); color:#fff; font-family:'Archivo',sans-serif; font-weight:700;
  letter-spacing:.02em; font-size:13.5px;
  padding:.7rem 1.5rem; border-radius:4px; display:inline-flex; align-items:center; gap:.5rem;
  transition:transform .2s ease, background-color .2s ease, box-shadow .2s ease;
  box-shadow:0 10px 24px -10px rgba(232,93,44,.6);
}
.rd-btn-ember:hover{ background:var(--rd-ember-deep); transform:translateY(-1px); color:#fff; }

.rd-btn-outline{
  display:inline-flex; align-items:center; gap:.5rem;
  border:1.5px solid rgba(255,255,255,.55); color:#fff;
  font-family:'Archivo',sans-serif; font-weight:600; font-size:13px;
  letter-spacing:.03em; text-transform:uppercase;
  padding:.9rem 1.7rem; border-radius:4px;
  transition:border-color .2s ease, background-color .2s ease;
}
.rd-btn-outline:hover{ border-color:#fff; background:rgba(255,255,255,.08); color:#fff; }

/* Keep the existing dropdown mega-menu functional, just refine spacing/typography */
header.rd-navbar #bikesDropdownMenu .font-semibold{ font-family:'Archivo',sans-serif; }

/* =========================================================================
   HERO
   ========================================================================= */
.rd-hero{
  position:relative;
  min-height:100vh;
  min-height:100svh;
  display:flex;
  align-items:flex-end;
  overflow:hidden;
  background-color:var(--rd-ink);
}
.rd-hero-bg{
  position:absolute; inset:0; z-index:0;
}
.rd-hero-bg img{
  width:100%; height:100%; object-fit:cover; object-position:center 30%;
  animation:rdKenburns 26s ease-in-out infinite alternate;
}
@keyframes rdKenburns{ from{ transform:scale(1); } to{ transform:scale(1.07); } }
.rd-hero-scrim{
  position:absolute; inset:0; z-index:1;
  background:
    linear-gradient(180deg, rgba(14,21,18,.55) 0%, rgba(14,21,18,.20) 35%, rgba(14,21,18,.55) 75%, rgba(14,21,18,.94) 100%);
}
.rd-hero-content{
  position:relative; z-index:10;
  width:100%;
  padding-top:9rem;
  padding-bottom:8rem;
}
@media (min-width:1024px){
  .rd-hero-content{ padding-bottom:10rem; }
}

.rd-eyebrow{
  display:inline-flex; align-items:center; gap:.5rem;
  font-family:'JetBrains Mono',monospace; font-size:11px; letter-spacing:.16em; text-transform:uppercase;
  color:rgba(255,255,255,.88);
  border:1px solid rgba(255,255,255,.28);
  border-radius:999px;
  padding:.55rem 1rem;
  margin-bottom:1.75rem;
}
.rd-eyebrow .rd-accent{ color:var(--rd-ember); }

.rd-hero-title{
  font-family:'Bebas Neue', ui-sans-serif, sans-serif;
  text-transform:uppercase;
  color:#fff;
  line-height:0.92;
  letter-spacing:0.01em;
  font-size:15vw;
}
@media (min-width:640px){ .rd-hero-title{ font-size:9vw; } }
@media (min-width:1024px){ .rd-hero-title{ font-size:6vw; } }
.rd-hero-title .rd-accent{ color:var(--rd-ember); }

.rd-hero-desc{
  color:rgba(255,255,255,.8);
  font-size:1.125rem;
  line-height:1.65;
  max-width:34rem;
  margin-top:1.5rem;
  margin-bottom:2.5rem;
}

/* Reservation card — same functional inner DOM as before (datePickerBtn etc.),
   only the outer card + heading are restyled. */
.rd-reservation-card{
  background:rgba(255,255,255,.98);
  border-radius:6px;
  box-shadow:0 30px 60px -20px rgba(0,0,0,.5);
  padding:1.75rem;
}
.rd-reservation-card h3{
  font-family:'Archivo',sans-serif;
  font-weight:800;
  letter-spacing:.02em;
  color:var(--rd-ink) !important;
}

.rd-stats-row{
  margin-top:3rem;
  padding-top:2rem;
  border-top:1px solid rgba(255,255,255,.15);
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:1.5rem;
  max-width:40rem;
}
@media (min-width:640px){ .rd-stats-row{ grid-template-columns:repeat(4,1fr); gap:2rem; } }
.rd-stat-num{
  font-family:'Archivo',sans-serif; font-weight:800;
  font-size:clamp(1.75rem,4vw,2.5rem);
  color:#fff;
  letter-spacing:-0.02em;
}
.rd-stat-label{
  font-family:'JetBrains Mono',monospace; font-size:10.5px; letter-spacing:.14em; text-transform:uppercase;
  color:rgba(255,255,255,.55);
  margin-top:.25rem;
}

.rd-scrolldown{
  writing-mode:vertical-rl;
  letter-spacing:.28em;
  color:rgba(255,255,255,.55);
  font-family:'JetBrains Mono',monospace;
  font-size:10px;
}
.rd-scrolldown::after{
  content:""; display:block; width:1px; height:38px; margin-top:10px;
  background:rgba(255,255,255,.5);
}

/* =========================================================================
   SEKCJA ROWERÓW (karuzela — ta sama logika JS, nowy skin)
   ========================================================================= */
.rd-bikes-section{
  background:linear-gradient(180deg, var(--rd-stone) 0%, #FFFFFF 45%, var(--rd-stone) 100%);
  padding-top:5rem;
  padding-bottom:5rem;
}
@media (min-width:768px){
  .rd-bikes-section{ padding-top:6.5rem; padding-bottom:6.5rem; }
}
.rd-bikes-eyebrow{
  font-family:'JetBrains Mono',monospace; font-size:11px; letter-spacing:.16em; text-transform:uppercase;
  color:var(--rd-ember);
  margin-bottom:1rem;
  display:block;
}
.rd-bikes-heading{
  font-family:'Archivo',sans-serif; font-weight:800; letter-spacing:-0.02em;
  line-height:0.98;
  font-size:2.5rem;
  color:var(--rd-ink);
}
.rd-accent-forest{ color:var(--rd-forest); }
@media (min-width:640px){ .rd-bikes-heading{ font-size:3.25rem; } }
@media (min-width:1024px){ .rd-bikes-heading{ font-size:4rem; } }

.rd-slide-name{
  font-family:'Bebas Neue', ui-sans-serif, sans-serif;
  text-transform:uppercase;
  color:rgba(14,21,18,.07);
  letter-spacing:0.02em;
  line-height:0.9;
}
.rd-slide-img{
  filter:drop-shadow(0 30px 40px rgba(14,21,18,.28));
}
.rd-spec-label{
  font-family:'JetBrains Mono',monospace; font-size:10.5px; letter-spacing:.1em; text-transform:uppercase;
  color:var(--rd-muted);
}
.rd-spec-val{
  font-family:'Archivo',sans-serif; font-weight:600; font-size:15px;
  color:var(--rd-ink);
}
.rd-slide-desc{
  color:var(--rd-muted);
  line-height:1.65;
}
.rd-slide-price{
  font-family:'Archivo',sans-serif; font-weight:800; font-size:1.5rem;
  color:var(--rd-ember);
}
.rd-slide-cta{
  font-family:'Archivo',sans-serif; font-weight:700; font-size:13px; letter-spacing:.02em; text-transform:uppercase;
  border:1.5px solid var(--rd-ink);
  color:var(--rd-ink);
  padding:.75rem 1.5rem;
  border-radius:4px;
  transition:background-color .2s ease, color .2s ease;
}
.rd-slide-cta:hover{ background:var(--rd-ink); color:#fff; }

.rd-btn-dark{
  display:inline-flex; align-items:center; gap:.5rem;
  font-family:'Archivo',sans-serif; font-weight:600; font-size:13px; letter-spacing:.03em; text-transform:uppercase;
  border:1.5px solid var(--rd-ink);
  color:var(--rd-ink);
  padding:.85rem 1.4rem;
  border-radius:4px;
  transition:background-color .2s ease, color .2s ease;
}
.rd-btn-dark:hover{ background:var(--rd-ink); color:#fff; }
.rd-link-ember{ color:var(--rd-ember); text-decoration:underline; }

/* --- Interaktywny selektor rowerów (jak w wizualizacji) --- */
.rd-no-scrollbar::-webkit-scrollbar{ display:none; }
.rd-no-scrollbar{ -ms-overflow-style:none; scrollbar-width:none; }
.rd-bike-nav-item{
  display:block;
  text-align:left;
  flex-shrink:0;
  padding:.85rem 1rem .85rem 0;
  border-bottom:1px solid var(--rd-line);
  cursor:pointer;
  transition:color .25s ease, opacity .25s ease;
  background:none; border-left:none; border-right:none; border-top:none;
  min-width:200px;
}
@media (min-width:1024px){ .rd-bike-nav-item{ min-width:0; } }
.rd-bike-nav-item .rd-bike-nav-idx{
  display:block;
  font-family:'JetBrains Mono',monospace; font-size:12px;
  color:var(--rd-ember);
  margin-bottom:.15rem;
}
.rd-bike-nav-item h3{
  font-family:'Archivo',sans-serif; font-weight:800; letter-spacing:-0.01em;
  font-size:1.35rem;
  color:var(--rd-muted);
  transition:color .25s ease;
  margin:0;
}
@media (min-width:1024px){ .rd-bike-nav-item h3{ font-size:1.6rem; } }
.rd-bike-nav-item:hover h3{ color:var(--rd-forest); }
.rd-bike-nav-item.rd-active h3{ color:var(--rd-ink); }
.rd-bike-stage{ min-height:300px; }
@media (min-width:1024px){ .rd-bike-stage{ min-height:360px; } }
.rd-bike-stage-glow{
  position:absolute; inset:0; border-radius:4px; opacity:.6;
  background:radial-gradient(ellipse at center, var(--rd-line) 0%, transparent 70%);
}
.rd-bike-img{
  transition:opacity .35s ease, transform .5s cubic-bezier(.16,1,.3,1);
  filter:drop-shadow(0 30px 40px rgba(14,21,18,.28));
}
.rd-bike-specs-col{
  border-top:1px solid var(--rd-line);
  padding-top:2rem;
}
@media (min-width:1024px){
  .rd-bike-specs-col{
    border-top:none;
    border-left:1px solid var(--rd-line);
    padding-top:0;
    padding-left:2.5rem;
  }
}
.rd-specs-title{ letter-spacing:.16em; }
.rd-spec-grid > div{ border-bottom:1px solid var(--rd-line); padding-bottom:.65rem; }

/* =========================================================================
   Utility: fluid section container width (matches rest of site's `container`)
   ========================================================================= */
.rd-container{
  width:100%;
  max-width:1400px;
  margin-left:auto;
  margin-right:auto;
  padding-left:1rem;
  padding-right:1rem;
}
@media (min-width:1024px){
  .rd-container{ padding-left:2.5rem; padding-right:2.5rem; }
}

/* =========================================================================
   TERYTORIUM (dawna sekcja "O nas") — poczucie miejsca: Wisła / Beskid Śląski
   ========================================================================= */
.rd-territory{
  background:var(--rd-stone);
  padding-bottom:5rem;
}
.rd-territory-hero{
  min-height:64vh;
  background-color:var(--rd-ink);
}
.rd-territory-hero img{ object-position:center 55%; }
.rd-territory-scrim{
  background:linear-gradient(100deg, rgba(14,21,18,.92) 8%, rgba(14,21,18,.42) 55%, rgba(14,21,18,.82) 100%);
}
.rd-territory-copy{
  max-width:34rem;
  padding:6rem 0 5rem;
}
.rd-territory-title{
  font-family:'Bebas Neue', ui-sans-serif, sans-serif;
  text-transform:uppercase;
  color:#fff;
  line-height:0.9;
  letter-spacing:0.01em;
  font-size:14vw;
  margin:1.25rem 0 1.5rem;
}
@media (min-width:640px){ .rd-territory-title{ font-size:5.5rem; } }
@media (min-width:1024px){ .rd-territory-title{ font-size:6.5rem; } }
.rd-territory-desc{
  color:rgba(255,255,255,.8);
  font-size:1.05rem;
  line-height:1.7;
  max-width:30rem;
  margin-bottom:2rem;
}
.rd-territory-coords{
  display:flex; flex-wrap:wrap; align-items:center; gap:1.5rem;
  font-family:'JetBrains Mono',monospace; font-size:11.5px; letter-spacing:.14em; text-transform:uppercase;
  color:rgba(255,255,255,.55);
}
.rd-territory-stats{
  margin-top:-3.5rem;
  position:relative; z-index:20;
  background:#fff;
  border-radius:6px;
  box-shadow:0 30px 60px -25px rgba(14,21,18,.35);
  padding:2rem 1.5rem;
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:1.75rem 1rem;
}
@media (min-width:768px){
  .rd-territory-stats{ grid-template-columns:repeat(4,1fr); padding:2.25rem 2.5rem; }
}
.rd-territory-stat{
  display:flex; align-items:center; gap:.85rem;
}
.rd-territory-stat svg{
  width:26px; height:26px; flex-shrink:0; color:var(--rd-ember);
}
.rd-territory-stat-num{
  font-family:'Archivo',sans-serif; font-weight:800; font-size:1.35rem;
  color:var(--rd-forest);
  letter-spacing:-0.01em;
  line-height:1.1;
}
.rd-territory-stat-label{
  font-family:'JetBrains Mono',monospace; font-size:10px; letter-spacing:.08em; text-transform:uppercase;
  color:var(--rd-muted);
  margin-top:.15rem;
}

/* =========================================================================
   "DLACZEGO MY" — karty w nowym systemie (ink/forest/ember, mniej gradientów)
   ========================================================================= */
.rd-why-section{
  background:var(--rd-stone);
  padding-top:6rem;
  padding-bottom:6rem;
}
.rd-section-eyebrow{
  font-family:'JetBrains Mono',monospace; font-size:11px; letter-spacing:.16em; text-transform:uppercase;
  color:var(--rd-ember);
  display:inline-block;
  margin-bottom:1rem;
}
.rd-section-heading{
  font-family:'Archivo',sans-serif; font-weight:800; letter-spacing:-0.02em; line-height:0.98;
  font-size:2.25rem; color:var(--rd-forest);
}
@media (min-width:640px){ .rd-section-heading{ font-size:2.75rem; } }
@media (min-width:1024px){ .rd-section-heading{ font-size:3.5rem; } }
.rd-section-sub{
  color:var(--rd-muted);
  font-size:1.05rem;
  line-height:1.6;
}
.rd-why-card{
  background:#fff;
  border:1px solid var(--rd-line);
  border-radius:4px;
  padding:1.75rem 1.5rem;
  transition:transform .3s ease, box-shadow .3s ease, border-color .3s ease;
}
.rd-why-card:hover{
  transform:translateY(-4px);
  box-shadow:0 20px 40px -20px rgba(14,21,18,.2);
  border-color:var(--rd-ember);
}
.rd-why-card.rd-why-card--ember{
  background:var(--rd-forest);
  border-color:var(--rd-forest);
}
.rd-why-icon{
  width:44px; height:44px;
  border-radius:4px;
  display:flex; align-items:center; justify-content:center;
  background:rgba(232,93,44,.1);
  color:var(--rd-ember);
  margin-bottom:1.5rem;
}
.rd-why-card--ember .rd-why-icon{
  background:rgba(255,255,255,.12);
  color:#fff;
}
.rd-why-num{
  font-family:'Archivo',sans-serif; font-weight:800; font-size:2rem; letter-spacing:-0.01em;
  color:var(--rd-forest);
}
.rd-why-card--ember .rd-why-num{ color:#fff; }
.rd-why-num-label{
  font-family:'JetBrains Mono',monospace; font-size:10.5px; letter-spacing:.08em; text-transform:uppercase;
  color:var(--rd-muted);
  margin-top:.15rem;
}
.rd-why-card--ember .rd-why-num-label{ color:rgba(255,255,255,.6); }
.rd-why-title{
  font-family:'Archivo',sans-serif; font-weight:700; font-size:1.15rem;
  color:var(--rd-forest);
  margin:1rem 0 .6rem;
}
.rd-why-card--ember .rd-why-title{ color:#fff; }
.rd-why-desc{
  color:var(--rd-muted);
  line-height:1.6; font-size:.925rem;
}
.rd-why-card--ember .rd-why-desc{ color:rgba(255,255,255,.75); }
.rd-why-link{
  display:inline-flex; align-items:center; gap:.4rem;
  margin-top:1.25rem;
  font-family:'Archivo',sans-serif; font-weight:600; font-size:.875rem;
  color:var(--rd-ember);
  transition:gap .25s ease;
}
.rd-why-card--ember .rd-why-link{ color:#fff; }
.rd-why-card:hover .rd-why-link{ gap:.7rem; }
.rd-why-link svg{ width:16px; height:16px; }

.rd-why-cta{
  margin-top:3.5rem;
  display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:1.5rem;
  padding:1.75rem 2rem;
  background:#fff;
  border:1px solid var(--rd-line);
  border-radius:6px;
}

/* =========================================================================
   VOUCHER — pas premium (forest) zamiast pastelowego gradientu
   ========================================================================= */
.rd-voucher-section{
  background:var(--rd-forest);
  padding-top:5rem;
  padding-bottom:5rem;
  overflow:hidden;
}
.rd-voucher-eyebrow{
  font-family:'JetBrains Mono',monospace; font-size:11px; letter-spacing:.16em; text-transform:uppercase;
  color:rgba(255,255,255,.55);
  display:inline-block;
  margin-bottom:1rem;
}
.rd-voucher-heading{
  font-family:'Archivo',sans-serif; font-weight:800; letter-spacing:-0.02em; line-height:0.98;
  font-size:2.5rem; color:#fff;
}
@media (min-width:640px){ .rd-voucher-heading{ font-size:3.25rem; } }
@media (min-width:1024px){ .rd-voucher-heading{ font-size:3.75rem; } }
.rd-voucher-desc{
  color:rgba(255,255,255,.75);
  font-size:1.05rem; line-height:1.65;
}
.rd-voucher-card{
  background:var(--rd-stone);
  border-radius:6px;
  padding:.6rem;
  box-shadow:0 30px 60px -20px rgba(0,0,0,.45);
}
.rd-voucher-card img{ border-radius:3px; }
.rd-voucher-badge{
  position:absolute; top:-.9rem; right:-.9rem;
  background:var(--rd-ember);
  color:#fff;
  font-family:'Archivo',sans-serif; font-weight:700; font-size:.8rem;
  padding:.5rem 1rem; border-radius:999px;
  box-shadow:0 10px 20px -8px rgba(0,0,0,.5);
}

/* =========================================================================
   FAQ — typografia/spacing w nowym systemie; akordeon nietknięty funkcjonalnie
   ========================================================================= */
.rd-faq-section{
  background:var(--rd-stone);
  padding-top:5.5rem;
  padding-bottom:5.5rem;
}
.rd-faq-section #faqAccordion .accordion-item{
  background:transparent;
  border:none;
  border-bottom:1px solid var(--rd-line);
  border-radius:0;
  margin-bottom:0;
  box-shadow:none;
}
.rd-faq-section #faqAccordion .accordion-trigger{
  font-family:'Archivo',sans-serif; font-weight:600; font-size:1rem;
  color:var(--rd-ink);
  background:transparent;
  padding:1.35rem .25rem;
}
.rd-faq-section #faqAccordion .accordion-trigger.open{
  color:var(--rd-ember);
}
.rd-faq-section #faqAccordion .accordion-content{
  color:var(--rd-muted);
  padding:0 .25rem 1.35rem;
  line-height:1.65;
}
.rd-faq-section #faqAccordion .accordion-chevron{ color:var(--rd-ember); }

/* =========================================================================
   FOOTER — ciemna, premium wersja (ink) zamiast granatu
   ========================================================================= */
footer.rd-footer{
  background:var(--rd-ink);
  color:rgba(255,255,255,.72);
}
footer.rd-footer h3{
  font-family:'Archivo',sans-serif; font-weight:700; letter-spacing:.02em;
  color:#fff;
}
footer.rd-footer a:hover{ color:var(--rd-ember); }
footer.rd-footer .rd-footer-social a{
  background:rgba(255,255,255,.08);
  transition:background-color .25s ease, color .25s ease;
}
footer.rd-footer .rd-footer-social a:hover{
  background:var(--rd-ember);
  color:#fff;
}
footer.rd-footer .rd-footer-bottom{
  border-top-color:rgba(255,255,255,.1);
}

/* =========================================================================
   TERYTORIUM — linia GPS + karty tras (jak w wizualizacji)
   ========================================================================= */
.rd-topo-line{
  stroke-dasharray:1400; stroke-dashoffset:1400;
  transition:stroke-dashoffset 2.4s cubic-bezier(.16,1,.3,1);
}
.rd-topo-line.rd-drawn{ stroke-dashoffset:0; }
.rd-territory{ background:var(--rd-ink); padding-bottom:0; }
.rd-routes-wrap{ padding-top:3.5rem; padding-bottom:4.25rem; }
.rd-routes-head{
  display:flex; justify-content:space-between; align-items:flex-end; gap:1rem;
  flex-wrap:wrap; margin-bottom:1.4rem;
}
.rd-routes-heading{
  font-family:'Archivo',sans-serif; font-weight:800; color:#fff; font-size:1.35rem;
  margin:0;
}
.rd-routes-sub{
  margin:.4rem 0 0; color:rgba(255,255,255,.55); font-size:.92rem; max-width:34rem; line-height:1.5;
}
.rd-routes-all{
  display:inline-flex; align-items:center; min-height:44px;
  border:1px solid rgba(255,255,255,.22); color:#fff; text-decoration:none;
  font-family:'Archivo',sans-serif; font-weight:600; font-size:13px;
  padding:10px 14px; border-radius:4px; cursor:pointer;
  transition:border-color .2s ease, background-color .2s ease;
}
.rd-routes-all:hover{ border-color:var(--rd-ember); background:rgba(232,93,44,.08); color:#fff; }
.rd-routes-all:focus-visible,
.rd-featured-play:focus-visible,
.rd-featured-ghost:focus-visible,
.rd-route-thumb:focus-visible,
.rd-route-modal-close:focus-visible,
#rdFeaturedMapBtn:focus-visible{
  outline:2px solid var(--rd-ember); outline-offset:3px;
}

.rd-featured{
  display:grid; gap:14px;
}
@media (min-width:960px){
  .rd-featured{ grid-template-columns:1.55fr .9fr; gap:18px; min-height:420px; }
}
.rd-featured-media{
  position:relative; border-radius:6px; overflow:hidden; min-height:260px;
  background:var(--rd-forest);
}
@media (min-width:960px){ .rd-featured-media{ min-height:420px; } }
.rd-featured-media img{
  position:absolute; inset:0; width:100%; height:100%; object-fit:cover; display:block;
  transition:opacity .2s ease;
}
.rd-featured-veil{
  position:absolute; inset:0; pointer-events:none;
  background:
    radial-gradient(circle at 50% 46%, rgba(14,21,18,.5) 0%, rgba(14,21,18,.18) 34%, transparent 54%),
    linear-gradient(180deg, rgba(14,21,18,.12) 22%, rgba(14,21,18,.82) 100%);
}
.rd-featured-play{
  position:absolute; top:50%; left:50%; transform:translate(-50%,-50%);
  width:56px; height:56px; border-radius:999px; border:1px solid rgba(255,255,255,.22);
  background:rgba(14,21,18,.72); color:#fff; display:grid; place-items:center;
  backdrop-filter:blur(8px); cursor:pointer; z-index:2;
  transition:background-color .2s ease, transform .2s ease;
}
.rd-featured-play svg{ margin-left:2px; }
.rd-featured-play:hover{ background:var(--rd-ember); transform:translate(-50%,-50%) scale(1.05); }
.rd-featured-meta{
  position:absolute; left:0; right:0; bottom:0; z-index:2;
  padding:1.25rem 1.35rem 1.4rem;
}
.rd-featured-num{
  font-family:'JetBrains Mono',monospace; font-size:11px; letter-spacing:.16em; text-transform:uppercase;
  color:var(--rd-ember); margin-bottom:.45rem;
}
.rd-featured-meta h3{
  font-family:'Archivo',sans-serif; font-weight:800; color:#fff;
  font-size:clamp(1.12rem,2vw,1.55rem); line-height:1.2; margin:0 0 .7rem;
}
.rd-featured-stats{
  display:flex; flex-wrap:wrap; align-items:center; gap:.75rem 1.15rem;
  font-family:'JetBrains Mono',monospace; font-size:11px; letter-spacing:.08em; text-transform:uppercase;
  color:rgba(255,255,255,.72);
}
.rd-level{
  display:inline-flex; align-items:center; gap:6px; width:auto;
  background:rgba(255,255,255,.1); padding:5px 8px; border-radius:4px;
}
.rd-level-dot{ width:7px; height:7px; border-radius:99px; background:#7dcea0; }
.rd-level.is-mid .rd-level-dot{ background:#e8c15a; }

.rd-featured-side{
  background:var(--rd-forest); border-radius:6px;
  padding:1.5rem 1.4rem;
  display:flex; flex-direction:column; justify-content:space-between; gap:1.25rem;
}
.rd-featured-kicker{
  font-family:'JetBrains Mono',monospace; font-size:11px; letter-spacing:.16em; text-transform:uppercase;
  color:rgba(255,255,255,.45); margin-bottom:10px;
}
.rd-featured-highlight{
  margin:0; color:rgba(255,255,255,.74); line-height:1.6; font-size:.98rem;
}
.rd-featured-highlight strong{ color:#fff; font-weight:600; }
.rd-featured-actions{ display:flex; flex-wrap:wrap; gap:8px; }
.rd-featured-actions .rd-btn-ember{ min-height:44px; cursor:pointer; border:0; }
.rd-featured-ghost{
  display:inline-flex; align-items:center; min-height:44px;
  border:1px solid rgba(255,255,255,.22); color:#fff; text-decoration:none;
  font-family:'Archivo',sans-serif; font-weight:700; font-size:13.5px;
  padding:.75rem 1.2rem; border-radius:4px; cursor:pointer;
  transition:border-color .2s ease, background-color .2s ease;
}
.rd-featured-ghost:hover{ border-color:var(--rd-ember); background:rgba(232,93,44,.08); color:#fff; }

.rd-route-strip{
  display:flex; gap:10px; overflow-x:auto; margin-top:14px; padding-bottom:4px;
  scroll-snap-type:x mandatory; -ms-overflow-style:none; scrollbar-width:none;
}
.rd-route-strip::-webkit-scrollbar{ display:none; }
.rd-route-thumb{
  appearance:none; border:1px solid transparent; background:var(--rd-forest);
  padding:0; border-radius:5px; overflow:hidden; width:168px; flex-shrink:0;
  text-align:left; color:#fff; cursor:pointer; scroll-snap-align:start;
  transition:border-color .2s ease;
}
.rd-route-thumb img{
  width:100%; height:92px; object-fit:cover; display:block; filter:brightness(.82);
}
.rd-route-thumb span{
  display:block; padding:9px 10px 11px;
  font-family:'Archivo',sans-serif; font-weight:700; font-size:12px; line-height:1.3;
}
.rd-route-thumb.is-active{ border-color:var(--rd-ember); }
.rd-route-thumb.is-active img{ filter:none; }
.rd-route-thumb:hover{ border-color:rgba(232,93,44,.55); }

.rd-route-modal{
  position:fixed; inset:0; z-index:200;
  background:rgba(8,12,10,.72);
  display:none; align-items:center; justify-content:center; padding:12px;
}
.rd-route-modal.is-open{ display:flex; }
.rd-route-modal[hidden]{ display:none !important; }
/* Widget trassy.pl (Bootstrap col-xl-6) składa mapę | wideo tylko od 1200px
   szerokości iframe. 1200px + ramka 1px dawało ~1198px i układ pionowy. */
.rd-route-modal-box{
  width:min(1400px,100%); max-width:1400px; max-height:90vh; margin:0;
  background:#101816; border-radius:8px; overflow:hidden;
  display:flex; flex-direction:column;
  border:0;
  box-shadow:0 40px 90px -30px rgba(0,0,0,.55);
}
.rd-route-modal-head{
  display:flex; justify-content:space-between; align-items:center; gap:12px;
  padding:10px 12px 10px 18px;
  border-bottom:1px solid rgba(255,255,255,.08);
  background:var(--rd-ink); flex-shrink:0;
}
.rd-route-modal-head h3{
  margin:0; font-family:'Archivo',sans-serif; font-weight:700; font-size:1rem; color:#fff;
}
.rd-route-modal-close{
  width:44px; height:44px; border:0; background:transparent; color:#fff; cursor:pointer;
  display:grid; place-items:center; border-radius:4px;
}
.rd-route-modal-close:hover{ background:rgba(255,255,255,.08); }
.rd-route-modal-map{ height:80vh; min-height:0; overflow:hidden; background:#0b100e; }
.rd-route-modal-map iframe{ width:100%; height:100%; border:0; display:block; }

.rd-map-toast{
  position:fixed; left:50%; top:50%; z-index:210;
  transform:translate(-50%,-50%) scale(.96);
  background:rgba(14,21,18,.92); color:#fff;
  font-family:'Archivo',sans-serif; font-size:.95rem;
  padding:16px 22px; border-radius:6px;
  border:1px solid rgba(255,255,255,.12);
  opacity:0; visibility:hidden; pointer-events:none; text-align:center;
  max-width:min(90vw,420px);
  transition:opacity .25s ease, transform .25s ease, visibility .25s ease;
}
.rd-map-toast.is-visible{
  opacity:1; visibility:visible; transform:translate(-50%,-50%) scale(1);
}
@media (max-width:767px){
  .rd-route-modal{ padding:0; }
  .rd-route-modal-box{ height:100%; max-height:none; border-radius:0; width:100%; }
  .rd-route-modal-map{ height:auto; flex:1; }
}

/* =========================================================================
   JAK TO DZIAŁA
   ========================================================================= */
.rd-steps-section{ background:#FBFAF7; padding-top:6rem; padding-bottom:6rem; }
.rd-steps-line{
  position:absolute; top:26px; left:12%; right:12%; height:1px; background:var(--rd-line);
}
.rd-step-num{
  font-family:'JetBrains Mono',monospace; font-size:.9rem;
  width:52px; height:52px; border-radius:999px;
  display:flex; align-items:center; justify-content:center;
  background:var(--rd-stone); border:1px solid var(--rd-line); color:var(--rd-ember);
  position:relative; z-index:10;
  margin-bottom:1.4rem;
}
.rd-step-title{
  font-family:'Archivo',sans-serif; font-weight:700; font-size:1.25rem; color:var(--rd-ink);
  margin-bottom:.7rem;
}
.rd-step-desc{ color:var(--rd-muted); font-size:.95rem; line-height:1.65; }

/* =========================================================================
   SPOŁECZNOŚĆ — mozaika
   ========================================================================= */
.rd-community-section{ background:var(--rd-stone); padding-top:6rem; padding-bottom:6rem; }
.rd-rating-num{ font-family:'Archivo',sans-serif; font-weight:800; font-size:2rem; color:var(--rd-ink); }
.rd-rating-stars{ color:var(--rd-ember); font-size:.9rem; letter-spacing:.1em; }
.rd-rating-label{
  font-family:'JetBrains Mono',monospace; font-size:10px; text-transform:uppercase; letter-spacing:.14em;
  color:var(--rd-muted); margin-top:.15rem;
}
.rd-mosaic-cell{ border-radius:4px; overflow:hidden; }
.rd-mosaic-img{ filter:saturate(1.03) contrast(1.02); }
.rd-mosaic-quote{
  border-radius:4px; background:var(--rd-forest);
  padding:1.5rem; display:flex; flex-direction:column; justify-content:center;
}
.rd-mosaic-quote p{ color:rgba(255,255,255,.9); font-size:.95rem; line-height:1.65; margin-bottom:1rem; }
.rd-mosaic-quote-author{
  font-family:'JetBrains Mono',monospace; font-size:11px; text-transform:uppercase; letter-spacing:.14em;
  color:rgba(255,255,255,.5);
}
.rd-mosaic-stat{
  border-radius:4px; background:#fff; border:1px solid var(--rd-line);
  padding:1.25rem; display:flex; flex-direction:column; justify-content:center; align-items:flex-start;
}
.rd-mosaic-stat-num{ font-family:'Archivo',sans-serif; font-weight:800; font-size:1.5rem; color:var(--rd-ink); }
.rd-mosaic-stat-label{
  font-family:'JetBrains Mono',monospace; font-size:10px; text-transform:uppercase; letter-spacing:.12em;
  color:var(--rd-muted); margin-top:.3rem;
}

/* =========================================================================
   EVENTY FIRMOWE
   ========================================================================= */
.rd-events-section{
  background:#FBFAF7;
  border-top:1px solid var(--rd-line); border-bottom:1px solid var(--rd-line);
  padding-top:5.5rem; padding-bottom:5.5rem;
}
.rd-section-heading--sm{ font-size:2rem; }
@media (min-width:640px){ .rd-section-heading--sm{ font-size:2.5rem; } }
@media (min-width:1024px){ .rd-section-heading--sm{ font-size:3rem; } }
.rd-events-note{
  font-family:'JetBrains Mono',monospace; font-size:12px; text-transform:uppercase; letter-spacing:.14em;
  color:var(--rd-muted);
}
.rd-events-photo{ border-radius:4px; overflow:hidden; }

/* =========================================================================
   VOUCHER — wąski pas (forest), jak w wizualizacji
   ========================================================================= */
.rd-voucher-band{ background:var(--rd-forest); padding-top:4rem; padding-bottom:4rem; }
.rd-voucher-band-title{
  font-family:'Archivo',sans-serif; font-weight:700; font-size:1.5rem; color:#fff; line-height:1.2;
}
@media (min-width:1024px){ .rd-voucher-band-title{ font-size:1.9rem; } }

/* =========================================================================
   CTA KOŃCOWE
   ========================================================================= */
.rd-cta-final{ background:var(--rd-ink); padding-top:8rem; padding-bottom:8rem; }
@media (min-width:1024px){ .rd-cta-final{ padding-top:11rem; padding-bottom:11rem; } }
.rd-cta-final > img{ opacity:.35; }
.rd-cta-final-scrim{ background:linear-gradient(180deg, rgba(14,21,18,.5), rgba(14,21,18,.92)); }
.rd-cta-final-title{
  font-family:'Bebas Neue', ui-sans-serif, sans-serif;
  text-transform:uppercase;
  color:#fff;
  line-height:0.92;
  letter-spacing:0.01em;
  font-size:13vw;
  margin-bottom:2.5rem;
}
@media (min-width:640px){ .rd-cta-final-title{ font-size:4.5rem; } }
@media (min-width:1024px){ .rd-cta-final-title{ font-size:6rem; } }

/* =========================================================================
   FOOTER — wzór topograficzny
   ========================================================================= */
.rd-topo-pattern{
  background-image:
    repeating-radial-gradient(circle at 20% 30%, transparent 0, transparent 18px, rgba(255,255,255,.035) 19px, transparent 20px),
    repeating-radial-gradient(circle at 80% 70%, transparent 0, transparent 24px, rgba(255,255,255,.035) 25px, transparent 26px);
}
footer.rd-footer h3{
  font-family:'JetBrains Mono',monospace; font-size:11px; letter-spacing:.16em; text-transform:uppercase;
  color:rgba(255,255,255,.45);
}

::selection{ background:var(--rd-ember); color:#fff; }

@media (prefers-reduced-motion: reduce){
  .rd-hero-bg img{ animation:none; }
  .rd-topo-line{ transition:none; stroke-dashoffset:0; }
  .rd-featured-media img,
  .rd-featured-play,
  .rd-map-toast{ transition:none; }
}
