:root {
  --content-max-width: 1920px; /* spójna szerokość */
}

/* === Główne kontenery === */
body,
#container,
.wrapper,
.layout,
.page-wrapper,
.main-wrapper,
#container.main_page.container,
#container.main_page.container.max-width-1200 {
  max-width: 1920px !important;
  width: 100% !important;
  margin: 0 auto !important;
  padding: 10px 20px 10px 20px !important;
  box-sizing: border-box !important;
}

/* === Wewnętrzne sekcje === */
.section:not(#main_banner1),
.phot-main-down,
.phot-main-down__container,
.page-content,
.content-wrapper,
.main-content,
.page-section {
  max-width: 1920px !important;
  padding: 10px 20px 10px 20px !important;
  margin: 0 auto !important;
  box-sizing: border-box !important;
}

/* === Stopka === */
.footer,
.footer-wrapper,
.footer-container,
.footer-content {
  max-width: var(--content-max-width) !important;
  padding: 10px 20px 10px 20px !important;
  margin: 0 auto !important;
  box-sizing: border-box !important;
}

/* === Projektor === */
.projector_wrapper,
.projector_details,
.projector-grid,
.projector-content {
  max-width: var(--content-max-width) !important;
  padding: 0 40px !important;
  margin: 0 auto !important;
  box-sizing: border-box !important;
}

/* === Karuzele / galerie === */
.swiper-container,
.galakor-carousel-wrap,
.carousel-wrapper {
  max-width: var(--content-max-width) !important;
  padding: 0 40px !important;
  margin: 0 auto !important;
  box-sizing: border-box !important;
}

/* === Nagłówek i menu === */
header,
nav,
.menu_top,
.menu-wrapper {
  max-width: var(--content-max-width) !important;
  padding: 0 !important;
  margin: 0 !important;
  box-sizing: border-box !important;
  background: white !important;
  border-bottom: none !important;
}

/* === Logo === */
#logo {
  display: flex !important;
  align-items: center !important;
  height: 60px;
  grid-area: logo;
  padding-left: 0 !important;
  position: relative;
  justify-content: flex-start !important;
}

#logo img {
  max-width: 240px;
  height: auto;
  object-fit: contain;
}

/* Tablet */
@media (max-width: 1199px) {
  #logo img {
    max-width: 180px;
  }
}

/* Mobile */
@media (max-width: 767px) {
  #logo {
    justify-content: center !important;
    align-items: center !important;
    padding-top: 4px !important;
    height: 60px !important;
  }

  #logo img {
    max-width: 140px;
    height: auto;
  }
}

/* === Sticky header (desktop) === */
.commercial_banner {
  position: -webkit-sticky; /* iOS Safari */
  position: sticky !important;
  top: 0;
  z-index: 9999;
  background: transparent;
  border-radius: 16px;
  transition: all 0.3s ease;
}

/* Zapobieganie blokadzie sticky przez overflow u przodków */
html,
body,
#container,
.page-wrapper,
.layout {
  overflow: visible !important;
}

/* === Wyłączenie sticky na mobile === */
@media (max-width: 767.98px) {
  .commercial_banner {
    position: static !important; /* lub relative */
  }
}


/* === Przycisk telefonu / maila === */
.menu_contact__items {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: center;
  justify-content: flex-start;
}

.contact_type_adress { order: 1; }
.contact_type_mail   { order: 2; }
.contact_type_phone  { order: 3; }
.contact_type_header { display: none; }

.contact_type_mail a,
.contact_type_phone a {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background-color: #000;
  color: #fff !important;
  padding: 6px 12px;
  font-size: 14px;
  font-weight: 500;
  border-radius: 6px;
  text-decoration: none;
  line-height: 1;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  max-width: 100% !important;
  transition: transform 0.25s ease, background-color 0.25s ease;
}

/* === Ukrycie wyszukiwarki na mobile === */
@media (max-width: 768px) {
  .menu_search__block,
  .search-bar,
  .search-wrapper,
  .menu-search,
  input[type="search"] {
    display: none !important;
  }
}

/* === Ukrycie zbędnych elementów === */
.shopping_list_top .slt_link,
.product_name__firm_logo,
.product-producer-logo,
.product-producer,
.product-brand-logo,
.producer-logo {
  display: none !important;
}

/* === Powiększenie zdjęcia produktu === */
.product-image {
  width: 100%;
  max-width: 100%;
  display: flex;
  justify-content: center;
  align-items: center;
}

.product-image img {
  width: 100%;
  max-width: 200% !important;
  height: auto;
  object-fit: contain;
}

/* === Etykiety produktowe === */
.product-label--bestseller,
.product-label--new {
  display: flex !important;
  opacity: 1 !important;
  visibility: visible !important;
}

/* === Stopka – dodatkowe odstępy === */
footer.max-width-1200::before {
  content: "";
  display: block;
  width: 100%;
  height: 1px;
  background-color: #ddd;
  margin-bottom: 30px;
}

.page-content,
.content-wrapper,
.main-content {
  margin-bottom: 50px !important;
}

footer.max-width-1200 {
  padding: 30px 40px !important;
  box-sizing: border-box !important;
}

/* === Ukrycie strzałek Swipera === */
.swiper-button-prev.--rounded,
.swiper-button-next.--rounded {
  display: none !important;
}

/* === Slider – proporcje 2:1 === */
.main_slider,
.main_slider__wrapper,
.main_slider__item {
  aspect-ratio: 2 / 1;
  width: 100%;
  max-height: 960px;
  overflow: hidden;
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  background-color: #f4f4f4;
}

.main_slider__item img {
  width: 100%;
  height: auto;
  object-fit: contain;
  display: block;
  margin: 0 auto;
}

/* === Mobile – telefon CTA === */
@media (max-width: 767px) {
  .contact_type_phone a {
    display: inline-flex !important;
    align-items: center !important;
    gap: 6px !important;
    background-color: #000 !important;
    color: #fff !important;
    padding: 8px 14px !important;
    font-size: 15px !important;
    font-weight: 500 !important;
    border-radius: 6px !important;
    white-space: nowrap !important;
    max-width: none !important;
    overflow: visible !important;
    text-overflow: initial !important;
  }

  .contact_type_phone a::before {
    content: "✆" !important;
    font-size: 1em !important;
  }
}

/* === Ukrycie cech wyróżnionych === */
#projector_producttraits,
.product_name__block.--links {
  display: none !important;
}

/* === CTA w nagłówku === */
.call-us-topbar {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 0.5rem 1rem !important;
  background-color: transparent !important;
  white-space: nowrap !important;
  font-weight: bold !important;
  font-size: var(--text-sm) !important;
  line-height: 1 !important;
  gap: 0.5rem !important;
}

.call-us-banner {
  display: inline-flex !important;
  align-items: center !important;
  text-decoration: none !important;
  color: #000 !important;
  background-color: #fff !important;
  padding: 0.5rem 1rem !important;
  border: 2px solid #000 !important;
  border-radius: 12px !important;
  gap: 0.5rem !important;
  white-space: nowrap !important;
  transition: background-color 0.3s ease, color 0.3s ease !important;
}

.call-us-banner i {
  font-style: normal !important;
  font-size: 1.2rem !important;
  line-height: 1 !important;
}

.call-us-banner:hover {
  color: #fff !important;
  background-color: #000 !important;
}

/* === Ukrycie wyszukiwarki na mobile (991px) === */
@media (max-width: 991px) {
  #menu_search {
    display: none !important;
  }
}

/* === Koszyk – kod rabatowy === */
.basketedit_page .basketedit_rebatecodes_outline {
  display: block !important;
}
.basketedit_page .basketedit_rebatecodes_outline input.basketedit_rebatecode_input {
  margin: 5px 10px 15px 0 !important;
}



/* ======================= */
/* === 1. KOLORY (kółka) === */
/* ======================= */
.configurator__item[data-name="par_460"] .configurator__sub {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 10px !important;
}
.configurator__item[data-name="par_460"] .f-group.--radio {
  flex: 0 0 auto !important;
  margin: 0 !important;
}
.configurator__item[data-name="par_460"] input[type="radio"] {
  display: none !important;
}
.configurator__item[data-name="par_460"] .f-label {
  display: inline-block !important;
  width: 36px !important;
  height: 36px !important;
  border-radius: 50% !important;
  border: 2px solid #ccc !important;
  cursor: pointer !important;
  transition: all 0.2s ease-in-out !important;
}
.configurator__item[data-name="par_460"] input:checked + .f-label {
  border: 3px solid #4760b1 !important;
  box-shadow: 0 0 0 2px #fff inset !important;
}
.configurator__item[data-name="par_460"] .f-label:hover {
  border-color: #4760b1 !important;
  transform: scale(1.1) !important;
}
/* Kolory */
input[aria-label="Czarny"] + .f-label { background: #000 !important; }
input[aria-label="Biały"] + .f-label { background: #fff !important; }
input[aria-label="Granatowy"] + .f-label { background: #002b5c !important; }
input[aria-label="Zielony"] + .f-label { background: #2e7d32 !important; }


/* ======================= */
/* === 2. ROZMIARY (kwadraty) === */
/* ======================= */
.configurator__item[data-name="par_433"] .configurator__sub {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 10px !important;
}
.configurator__item[data-name="par_433"] .f-group.--radio {
  flex: 0 0 auto !important;
  margin: 0 !important;
}
.configurator__item[data-name="par_433"] input[type="radio"] {
  display: none !important;
}
.configurator__item[data-name="par_433"] .f-label {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 50px !important;
  height: 50px !important;
  border: 2px solid #ccc !important;
  border-radius: 6px !important;
  font-weight: 600 !important;
  cursor: pointer !important;
  transition: all 0.2s ease-in-out !important;
}
.configurator__item[data-name="par_433"] .f-label:hover {
  border-color: #4760b1 !important;
  transform: scale(1.05) !important;
}
.configurator__item[data-name="par_433"] input:checked + .f-label {
  border: 2px solid #4760b1 !important;
  background: #4760b1 !important;
  color: #fff !important;
}


/* ======================= */
/* === 3. MIEJSCE NADRUKU (ikony koszulek) === */
/* ======================= */
.configurator__item[data-name="par_681"] {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 15px !important;
}
.configurator__item[data-name="par_681"] .f-group.--checkbox {
  flex: 0 0 120px !important;
}
.configurator__item[data-name="par_681"] input[type="checkbox"] {
  display: none !important;
}
.configurator__item[data-name="par_681"] .f-label {
  display: block !important;
  width: 120px !important;
  height: 150px !important;
  border: 2px solid #ccc !important;
  border-radius: 6px !important;
  cursor: pointer !important;
  background-size: contain !important;
  background-position: center !important;
  background-repeat: no-repeat !important;
  transition: 0.2s !important;
}
.configurator__item[data-name="par_681"] .f-label:hover {
  border-color: #4760b1 !important;
  transform: scale(1.05) !important;
}
.configurator__item[data-name="par_681"] input:checked + .f-label {
  border: 2px solid #4760b1 !important;
  box-shadow: 0 0 0 2px #4760b1 inset !important;
}

/* Ikony nadruku (podmień ścieżki) */
input[aria-label*="prawej"] + .f-label  { background-image: url('/gfx/nadruk/front_right.png') !important; }
input[aria-label*="lewej"] + .f-label   { background-image: url('/gfx/nadruk/front_left.png') !important; }
input[aria-label*="pośrodku"] + .f-label { background-image: url('/gfx/nadruk/front_center.png') !important; }
input[aria-label*="przodu"] + .f-label   { background-image: url('/gfx/nadruk/front_large.png') !important; }
input[aria-label*="tyłu"] + .f-label     { background-image: url('/gfx/nadruk/back_large.png') !important; }
input[aria-label*="Lewy"] + .f-label     { background-image: url('/gfx/nadruk/sleeve_left.png') !important; }
input[aria-label*="Prawy"] + .f-label    { background-image: url('/gfx/nadruk/sleeve_right.png') !important; }

/* === Sticky menu boczne === */
aside.col-md-3.col-xl-2 {
  position: relative; /* wymagane dla sticky */
}

#menu_categories {
  position: -webkit-sticky; /* dla Safari */
  position: sticky;
  top: 100px; /* wysokość nagłówka + odstęp */
  z-index: 20;
  background: #fff; /* białe tło pod tekstem */
  padding: 10px;
  border-right: 1px solid #eee;
  box-sizing: border-box;
  /* jeśli chcesz ograniczyć wysokość i przewijanie w środku, odkomentuj */
  /* max-height: calc(100vh - 120px);
  overflow-y: auto; */
}

/* upewniamy się, że sticky działa i rodzice go nie blokują */
.page-wrapper,
.layout,
.wrapper,
#container,
main,
.row {
  overflow: visible !important;
  
}

#checkout_root #checkout_button .title { font-size: 0 !important; }
#checkout_root #checkout_button .title::after {
  content: "One Click – Szybkie zakupy";
  font-size: 14px; /* dostosuj do swojego UI */
  letter-spacing: inherit;
}


/* --- Mobile: konfigurator pełna szerokość pod zdjęciami --- */
@media (max-width: 767px) {
  #projector_configurator_section {
    grid-column: 1 / -1 !important;
    width: 100% !important;
  }
}