/* ==========================================
   GEOWARSZTAT — MENU CASSIOPEIA
   ========================================== */

.container-header {
  --gw-navy: #172f42;
  --gw-accent: #42c9c1;
  --gw-white: #ffffff;

  background: var(--gw-navy);
  background-image: none;
  box-shadow: 0 2px 8px rgb(0 0 0 / 8%);
}

/* Nazwa / logo strony */
.container-header .navbar-brand,
.container-header .navbar-brand a {
  color: var(--gw-white);
  text-decoration: none;
}

.container-header .navbar-brand img {
  width: auto;
  max-height: 52px;
}

/* Obszar nawigacji */
.container-header .container-nav {
  align-items: center;
  gap: 20px;
  padding-top: 12px;
  padding-bottom: 12px;
}

/* Menu — poziom główny */
.container-header .container-nav .mod-menu {
  align-items: center;
  gap: 22px;
  margin: 0;
}

.container-header .container-nav .mod-menu > li {
  margin: 0;
  padding: 0;
}

/* Linki i przyciski menu */
.container-header .container-nav .mod-menu > li > a,
.container-header .container-nav .mod-menu > li > button {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 42px;
  padding: 8px 0;

  color: var(--gw-white);
  background: transparent;
  border: 0;
  border-radius: 0;
  box-shadow: none;

  font-size: 16px;
  font-weight: 500;
  line-height: 1.4;
  text-decoration: none;

  transition: color 0.18s ease;
}

/* Zwykłe pozycje — kolor po najechaniu */
.container-header .container-nav .mod-menu > li > a:hover,
.container-header .container-nav .mod-menu > li > button:hover {
  color: var(--gw-accent);
  background: transparent;
  text-decoration: none;
}

/* Wyłącz domyślne kreski generowane przez szablon */
.container-header .container-nav .mod-menu > li::after,
.container-header .container-nav .mod-menu > li > a::before,
.container-header .container-nav .mod-menu > li > a::after {
  content: none !important;
}

/* Aktywna zwykła pozycja — turkusowe podkreślenie */
.container-header .container-nav .mod-menu > li.active > a,
.container-header .container-nav .mod-menu > li.current > a {
  box-shadow: inset 0 -2px 0 var(--gw-accent);
}

/* ==========================================
   MOJE KONTO
   ========================================== */

.container-header .container-nav .mod-menu a.menu-konto {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;

  min-height: 42px;
  padding: 8px 16px;

  color: var(--gw-white);
  background: transparent;
  border: 1px solid rgb(255 255 255 / 80%);
  border-radius: 6px;
  box-shadow: none;

  white-space: nowrap;
  text-decoration: none;
  transition: none;
}

/* ==========================================
   KOSZYK
   ========================================== */

.container-header .container-nav .mod-menu a.menu-koszyk {
  display: inline-flex;
  align-items: center;
  justify-content: center;

  width: 44px;
  min-height: 44px;
  padding: 8px;

  color: var(--gw-white);
  background: transparent;
  border: 0;
  border-radius: 6px;
  box-shadow: none;

  text-decoration: none;
  transition: none;
}

/* Wielkość ikon */
.container-header .menu-konto .fas,
.container-header .menu-konto .fa-solid {
  font-size: 18px;
}

.container-header .menu-koszyk .fas,
.container-header .menu-koszyk .fa-solid {
  font-size: 21px;
}

/* Konto i koszyk:
   bez podświetlenia, podkreślenia i zmiany koloru,
   także gdy dana strona jest aktywna */
.container-header .container-nav .mod-menu a.menu-konto,
.container-header .container-nav .mod-menu a.menu-koszyk,
.container-header .container-nav .mod-menu a.menu-konto:is(:hover, :focus, :active),
.container-header .container-nav .mod-menu a.menu-koszyk:is(:hover, :focus, :active) {
  color: var(--gw-white) !important;
  background: transparent !important;
  box-shadow: none !important;
  text-decoration: none !important;
}

/* Ramka konta pozostaje taka sama po najechaniu */
.container-header .container-nav .mod-menu a.menu-konto:is(:hover, :focus, :active) {
  border-color: rgb(255 255 255 / 80%);
}

/* Wyłączenie dodatkowych ozdobników tych dwóch pozycji */
.container-header .container-nav .mod-menu li:has(> a.menu-konto)::before,
.container-header .container-nav .mod-menu li:has(> a.menu-konto)::after,
.container-header .container-nav .mod-menu li:has(> a.menu-koszyk)::before,
.container-header .container-nav .mod-menu li:has(> a.menu-koszyk)::after {
  content: none !important;
}

/* Widoczna ramka przy obsłudze klawiaturą */
.container-header .container-nav .mod-menu a:focus-visible,
.container-header .container-nav .mod-menu button:focus-visible {
  outline: 2px solid var(--gw-accent);
  outline-offset: 4px;
}

/* ==========================================
   MENU ROZWIJANE
   ========================================== */

.container-header .container-nav .mod-menu ul {
  padding: 8px;
  background: var(--gw-navy);
  border: 1px solid rgb(255 255 255 / 18%);
  border-radius: 6px;
}

.container-header .container-nav .mod-menu ul a {
  display: block;
  padding: 10px 14px;
  color: var(--gw-white);
  text-decoration: none;
}

.container-header .container-nav .mod-menu ul a:hover {
  color: var(--gw-accent);
  background: transparent;
}

/* Przycisk rozwijania menu na telefonie */
.container-header .navbar-toggler {
  color: var(--gw-white);
  border: 1px solid rgb(255 255 255 / 60%);
  border-radius: 6px;
}

/* ==========================================
   TELEFONY
   ========================================== */

@media (max-width: 991.98px) {
  .container-header .container-nav .mod-menu {
    align-items: flex-start;
    gap: 8px;
    padding-top: 12px;
    padding-bottom: 12px;
  }

  .container-header .container-nav .mod-menu a.menu-konto {
    margin-top: 6px;
  }
}

/* Przesunięcie ikony użytkownika w dół */
.container-header .menu-konto .fas,
.container-header .menu-konto .fa-solid {
  position: relative;
  top: 2px;
}

/* Konto i koszyk po prawej stronie — na komputerze */
@media (min-width: 992px) {
  .container-header .container-nav nav,
  .container-header .container-nav .navbar-collapse {
    width: 100%;
    flex-grow: 1;
  }

  .container-header .container-nav .mod-menu {
    display: flex;
    width: 100%;
  }

  .container-header .container-nav .mod-menu > li:has(> a.menu-konto) {
    margin-left: auto;
  }
}
/* Logo — rozmiar i odstępy */
.container-header .navbar-brand {
  display: flex;
  align-items: center;
  margin: 0;
  padding: 0;
}

.container-header .navbar-brand a {
  display: inline-flex;
  align-items: center;
}

.container-header .navbar-brand img {
  display: block;
  width: 260px;
  max-width: 100%;
  height: auto;
  max-height: none;
}

/* Komputer — logo i menu w jednym rzędzie */
@media (min-width: 992px) {
  .container-header {
    display: grid;
    grid-template-columns:
      minmax(24px, 1fr)
      minmax(0, 280px)
      minmax(0, 920px)
      minmax(24px, 1fr);
    align-items: center;
    column-gap: 0;
  }

  /* Blok zawierający logo */
  .container-header > .grid-child:has(.navbar-brand) {
    grid-column: 2;
    grid-row: 1;
    width: 100%;
    min-width: 0;
    padding: 12px 20px 12px 0;
    margin: 0;
  }

  /* Blok zawierający menu */
  .container-header > .container-nav {
    grid-column: 3;
    grid-row: 1;
    width: 100%;
    min-width: 0;
    padding: 12px 0;
    margin: 0;
  }

  .container-header .container-nav nav,
  .container-header .container-nav .navbar-collapse {
    width: 100%;
    flex-grow: 1;
  }

  .container-header .container-nav .mod-menu {
    width: 100%;
  }

  /* Konto i koszyk nadal po prawej */
  .container-header .mod-menu > li:has(> a.menu-konto) {
    margin-left: auto;
  }
}

/* Telefon — mniejsze logo, standardowe menu poniżej */
@media (max-width: 991.98px) {
  .container-header .navbar-brand img {
    width: 220px;
  }
}
/* Stopka — logo po lewej, menu po prawej */
.container-footer {
  background: #172f42;
  background-image: none;
  color: #fff;
}

.container-footer > .grid-child {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 24px;
  padding: 24px;
}

/* Logo i nazwa */
.container-footer .stopka-marka {
  margin: 0;
}

.container-footer .footer-logo {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  color: #fff;
  text-decoration: none;
  white-space: nowrap;
  font-size: 24px;
}

.container-footer .footer-logo img {
  display: block;
  width: 42px;
  height: 42px;
  object-fit: contain;
}

/* Klasa przypisana bezpośrednio do listy menu */
.container-footer ul.stopka-menu {
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: flex-end;
  flex-wrap: wrap;
  gap: 12px 24px;
  margin: 0 0 0 auto;
  padding: 0;
  list-style: none;
}

/* Wyrównanie do prawej również przy dodatkowym kontenerze */
.container-footer .grid-child > :has(ul.stopka-menu) {
  margin-left: auto;
}

.container-footer ul.stopka-menu > li {
  margin: 0;
  padding: 0;
}

.container-footer ul.stopka-menu > li > a {
  color: #fff;
  font-size: 14px;
  text-decoration: none;
}

.container-footer ul.stopka-menu > li > a:hover {
  color: #42c9c1;
}

@media (max-width: 767.98px) {
  .container-footer ul.stopka-menu {
    justify-content: flex-start;
    margin-left: 0;
  }

  .container-footer .grid-child > :has(ul.stopka-menu) {
    margin-left: 0;
  }
}
/* GeoWMS – opis produktu (GeoWarsztat) */
.geowms-opis {
  --gw-teal: #01D4BC;
  --gw-teal-dark: #00A894;
  --gw-navy: #182E42;
  --gw-soft: #E9FBF8;
  color: #25384A;
  line-height: 1.6;
}

.geowms-opis .gw-i {
  display: block;
  flex-shrink: 0;
}

.geowms-opis h2 {
  display: flex;
  align-items: center;
  gap: .75rem;
  margin: 2.5rem 0 1rem;
  color: var(--gw-navy);
  font-size: 1.5rem;
}

.geowms-opis .gw-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.75rem;
  height: 2.75rem;
  border-radius: .75rem;
  background: var(--gw-navy);
  color: var(--gw-teal);
  flex-shrink: 0;
}

.geowms-opis .gw-badge-sm {
  width: 2.25rem;
  height: 2.25rem;
  border-radius: .6rem;
  background: var(--gw-soft);
  color: var(--gw-teal-dark);
}

.geowms-opis .gw-tags {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
  margin: 1rem 0 1.5rem;
  padding: 0;
  list-style: none;
}

.geowms-opis .gw-tags li {
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  padding: .35rem .8rem;
  border-radius: 999px;
  background: var(--gw-soft);
  color: var(--gw-navy);
  font-weight: 600;
  font-size: .9rem;
}

.geowms-opis .gw-tags .gw-i {
  color: var(--gw-teal-dark);
}

.geowms-opis .gw-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit,minmax(min(100%,340px),1fr));
  gap: 1rem;
  margin: 1rem 0;
}

.geowms-opis .gw-stack {
  grid-template-columns: 1fr;
}

.geowms-opis .gw-card {
  display: flex;
  gap: .85rem;
  align-items: flex-start;
  padding: 1rem 1.1rem;
  border: 1px solid #DCE5EC;
  border-radius: .9rem;
  background: #fff;
}

.geowms-opis .gw-card strong {
  color: var(--gw-navy);
}

.geowms-opis .gw-box {
  display: flex;
  gap: 1rem;
  align-items: center;
  padding: 1.1rem 1.3rem;
  border-radius: 1rem;
  background: var(--gw-navy);
  color: #fff;
  margin: 1.5rem 0;
}

.geowms-opis .gw-box .gw-badge {
  background: var(--gw-teal);
  color: var(--gw-navy);
}

.geowms-opis .gw-box strong {
  color: var(--gw-teal);
}

.geowms-opis .gw-note {
  display: flex;
  gap: .75rem;
  align-items: flex-start;
  padding: 1rem 1.2rem;
  border-left: 4px solid var(--gw-teal);
  background: var(--gw-soft);
  border-radius: .5rem;
  margin: 1rem 0;
}

.geowms-opis .gw-note .gw-i {
  color: var(--gw-teal-dark);
  margin-top: .15rem;
}

.geowms-opis .gw-cta {
  text-align: center;
  padding: 2rem 1.5rem;
  border-radius: 1.25rem;
  background: var(--gw-navy);
  color: #E3EBF2;
  margin-top: 2.5rem;
}

.geowms-opis .gw-cta h2 {
  justify-content: center;
  color: #fff;
  margin-top: 0;
}

.geowms-opis .gw-cta h2 .gw-badge {
  background: var(--gw-teal);
  color: var(--gw-navy);
}

.geowms-opis .gw-cta strong {
  color: #fff;
}

.geowms-opis .gw-cta .btn {
  display: inline-flex;
  padding: .8rem 1.6rem;
  border-radius: .75rem;
  border: 2px solid var(--gw-teal);
  text-decoration: none;
  font-size: 1.1rem;
  align-items: center;
  gap: .5rem;
  background: var(--gw-teal);
  border-color: var(--gw-teal);
  color: var(--gw-navy);
  font-weight: 700;
}

.geowms-opis .gw-cta .btn:hover {
  background: #fff;
  border-color: #fff;
}
