body {
/*  background-color:blanchedalmond;
  background-image: url("/img/sand-texture1.jpg");
  background-repeat: round;
  background-attachment: fixed; */
  position: relative;
  min-height: 100vh;
  background: none;
}

body::before {
  content: "";
  position: fixed;
  inset: 0;
  z-index: -1;
  background: url("/img/sand-texture1.jpg") center/cover no-repeat;
}
section,
div {
  background-color: transparent;
  padding: 0;
  margin: 0;
}
.carousel-inner {
    height: 40vh;
  }

  .carousel-item {
    height: 100%;
    transition: transform 0.6s ease-in-out;
    padding: 20px 0 20px 0;
  }

  .carousel-item img {
    height: 100%;
    width: auto;
    object-fit: contain;
    display: block;
    margin: 0 auto;
    border-radius: 8px;
  }
  .carousel-control-prev-icon,
.carousel-control-next-icon {
  background-color: rgba(0, 0, 0, 0.6); /* ciemne tło */
  background-size: 100% 100%;
  border-radius: 50%;
  padding: 10px;
}

.carousel-control-prev,
.carousel-control-next {
  width: 15%;
  top: 50%;
  transform: translateY(-50%);
  opacity: 1; /* zawsze widoczne */
}

.carousel-control-prev:hover,
.carousel-control-next:hover {
  background-color: transparent !important;
  outline: none;
  box-shadow: none;
}
a.nav-link {
  color:#e8d9c2 !important;
  font-weight: 600;
}
a.nav-link:hover {
  font-weight: 700;
  color:#eedfca !important;
}
a.tel {
  color: #f0f000;
  font-size: 15pt;
  font-weight: 600;
  text-decoration: none;
}
a.tel:hover {
  color:#ffff00;
  font-weight: 500;
}
a.telefon,
a.mail {
  color: #000033;
  text-decoration: none;
  font-weight: bold;
}

a.telefon:hover {
  color: #000090;
}

a.telefon2 {
  color: #ffffe0;
  text-decoration: none;
  text-align: right;
  margin: auto;
  font-weight: bold;
}

a.telefon2:hover {
  color: #ffff00;
}

a.mail:hover {
  color: #000090;
  font-weight: 800;
}
code {
  color: #000000;
}
p {
  text-align: justify;
}
p.copy {
  color: #f0f0f0;
  font-size: 10pt;
  text-align: center;
  margin: auto;
}
p.copy:hover {
  color: #f8e0e0;
  font-weight: 600;
}
p.brand {
  color: #f0f0f0;
  font-size: 11pt;
  font-weight: bold;
  text-align: center;
  margin: auto 0;
}

.webmaster,
.webmaster a {
  color: #a0a0a0 !important;
}

h1.h3,
h2.h2,
h2.h4 {
  font-family:Arial, Helvetica, sans-serif;
  color: darkred;
  text-shadow: 2px 2px 2px #606060;
}
h1.h3:hover,
h2.h2:hover,
h2.h4:hover {
  color: black;
  text-shadow: 1px 1px 1px #606060;
}

p.mb-0 {
  color: #300000;
  text-align: justify;
}
p.mb-0:hover {
  color: #000000;
}
li {
  color: #300000;
}
li:hover {
  color: #000000;
}


/* Delikatniejsze odstępy w linkach menu na mobile (łatwiejsze trafianie kciukiem) */
@media (max-width: 767.98px) {
  .navbar .nav-link {
    padding-top: .75rem;
    padding-bottom: .75rem;
    border-top: 1px solid rgba(255,255,255,.075);
  }
  .navbar .nav-link:first-child { border-top: 0; }
}

/* Gdy navbar jest sticky i zasłania górę — dodaj poduszkę treści (dopasuj wartość do wysokości paska) */
body { scroll-padding-top: 64px; }

/* Jeżeli chcesz, aby tło strony „przebijało” też pod nawigacją, możesz użyć półprzezroczystego paska: */
/* .navbar.bg-dark { background-color: rgba(33,37,41,.9) !important; } */

/* Pasek informacyjny pod nawigacją */
.notice-bar {
  position: relative;
  padding: .5rem 0;
  /* na ciemnym layoucie można użyć półprzezroczystej czerni:
     background-color: rgba(33,37,41,.9); color: #fff; */
  z-index: 2000;
  background-color: rgba(255,255,5,.99); /* ciemny półprzezroczysty */
  color: #fff;
}

/* Krzyżyk do zamknięcia */
.notice-bar .notice-close {
  position: absolute;
  top: .1rem;
  left: .1rem;
  opacity: .5;
  color: #0000ff;
}
.notice-bar .notice-close:hover { opacity: 1; }

/* Ticker (przewijanie zawartości, gdy jest za długa) */
.ticker {
  overflow: hidden;
  white-space: nowrap;
  /* Wysokość zależna od treści; na mobile trochę więcej „oddechu” */
}
.ticker__track {
  display: inline-block;
  white-space: nowrap;
  will-change: transform;
  /* Domyślnie bez animacji — JS włączy animację tylko, gdy tekst jest szerszy od kontenera */
}
.ticker__text {
  display: inline-block;
  padding-right: 2rem; /* odstęp między powtórkami */
  font-weight: 600;    /* lekko „reklamowy” look; dopasuj wg gustu */
}

/* Klasa włączająca animację (dodawana w JS) */
.ticker--animate .ticker__track {
  animation: ticker-slide var(--ticker-speed, 18s) linear infinite;
}

/* Płynne przewijanie z prawej na lewo */
@keyframes ticker-slide {
  0%   { transform: translateX(0); }
  100% { transform: translateX(-50%); } /* działa, bo duplikujemy tekst (JS) */
}

/* Gdy użytkownik prosi o redukcję animacji — wyłączamy automat */
@media (prefers-reduced-motion: reduce) {
  .ticker--animate .ticker__track { animation: none; }
}

/* Na bardzo wąskich ekranach — nieco większe paddingi, by łatwiej dotknąć X */
@media (max-width: 575.98px) {
  .notice-bar { padding: .625rem 0; }
}

.map-wrap { position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden; border-radius: 8px; }
.map-wrap iframe { position: absolute; inset: 0; width: 100%; height: 100%; }

/* ===== STOPKA – wersja bez Bootstrapa ===== */
#site-footer { 
  background:#0e0e0e; 
  color:#fff; 
}
#site-footer * { box-sizing:border-box; }

#site-footer .wrap{
  display:flex;
  flex-wrap:wrap;
  justify-content:center;        /* poziome centrowanie */
  align-items:center;            /* pionowe centrowanie w wierszu */
  gap:16px;
  padding:12px 16px;
  text-align:center;             /* domyślnie wszystko na środek */
}

#site-footer .col{
  flex:1 1 260px;                /* trzy kolumny na desktopie, elastyczne */
  min-width:220px;
}

/* Stack na telefonie */
@media (max-width: 767.98px){
  #site-footer .wrap{ flex-direction:column; }
  #site-footer .col{ flex:0 0 auto; width:100%; }
}

/* Kolory i zachowania */
#site-footer .brand{
  color:#fff;
  font-weight:600;
  margin:0;
  transition: font-weight .15s ease;
}
#site-footer .brand:hover{ font-weight:700; }

#site-footer .copy{
  color:#fff;
  margin:0;
}

#site-footer a{
  color:#fff;
  text-decoration:none;
}
#site-footer a:visited{ color:#fff; }

/* Polityka prywatności – jedyny link w niebieskim */
#site-footer .privacy-link,
#site-footer .privacy-link:visited{
  color:#0d6efd;
  font-weight:600;
}
#site-footer .privacy-link:hover,
#site-footer .privacy-link:focus{
  text-decoration:underline;
  text-underline-offset:2px;
}

/* Telefon: biały -> żółty */
#site-footer .telefon2{
  color:#fff;
  font-weight:700;
  display:inline-block;
  transition: color .15s ease, transform .1s ease;
}
#site-footer .telefon2:hover,
#site-footer .telefon2:focus{
  color:#ffd000;
  transform: translateY(-1px);
}
/* Fix: twarde tło stopki na mobile (i w ogóle) */
#site-footer{
  background-color:#0e0e0e !important; /* solid, bez dziedziczenia */
}

/* Gdyby coś nadpisywało wnętrze, odziedzicz tło również w środku */
#site-footer .wrap,
#site-footer .col{
  background-color:transparent;       /* zwykle zbędne... */
}

@media (max-width: 767.98px){
  /* ...ale na wszelki wypadek „domykamy” mobile, gdy ktoś zeruje tła w media queries */
  #site-footer,
  #site-footer .wrap,
  #site-footer .col{
    background-color:#0e0e0e !important;
  }
}

/* Telefon w stopce – kolory i efekty bez !important */
#site-footer .telefon2{
  color:#fff;
  font-weight:700;
  text-decoration:none;
  transition: color .15s ease, transform .1s ease;
}

/* Desktop / myszka: hover */
@media (hover: hover) and (pointer: fine) {
  #site-footer .telefon2:hover{
    color:#ffd000;
    transform: translateY(-1px);
  }
}

/* Ekrany dotykowe: tapnięcie i fokus z klawiatury */
@media (hover: none) and (pointer: coarse) {
  #site-footer .telefon2:active,
  #site-footer .telefon2:focus {
    color:#ffd000;
  }
}

/* Dla dostępności – jak ktoś tabuje po stronie */
#site-footer .telefon2:focus-visible {
  outline: 2px dashed rgba(255,208,0,.7);
  outline-offset: 2px;
}

