/* LuxRolety Katalog PRO: wyłącznie prezentacja; nie zmienia logiki WooCommerce. */
:root {
  --luxpro-green: #174b3f;
  --luxpro-green-hover: #0d362d;
  --luxpro-gold: #a88756;
  --luxpro-ink: #1e2b29;
  --luxpro-muted: #67726e;
  --luxpro-line: #e3e8e4;
  --luxpro-surface: #f6f8f5;
  --luxpro-radius: 13px;
}
/* Wspólny standard kart produktów i podkategorii WooCommerce. */
body.woocommerce :is(ul.products, .woocommerce ul.products),
body.woocommerce-page :is(ul.products, .woocommerce ul.products) {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: 25px !important;
  align-items: stretch;
  margin: 24px 0 42px !important;
  padding: 0 !important;
}
body.woocommerce :is(ul.products, .woocommerce ul.products)::before,
body.woocommerce :is(ul.products, .woocommerce ul.products)::after,
body.woocommerce-page :is(ul.products, .woocommerce ul.products)::before,
body.woocommerce-page :is(ul.products, .woocommerce ul.products)::after { content: none !important; display: none !important; }
body.woocommerce ul.products li.product,
body.woocommerce-page ul.products li.product {
  float: none !important;
  width: auto !important;
  min-width: 0;
  margin: 0 !important;
  padding: 0 0 20px !important;
  border: 1px solid var(--luxpro-line) !important;
  background: #fff;
  border-radius: var(--luxpro-radius);
  overflow: hidden;
  display: flex !important;
  flex-direction: column;
  text-align: left;
  box-shadow: 0 2px 9px rgba(25, 49, 43, .035);
  transition: box-shadow .22s ease, transform .22s ease, border-color .22s ease;
}
body.woocommerce ul.products li.product:hover,
body.woocommerce-page ul.products li.product:hover {
  transform: translateY(-3px);
  border-color: #c9d9d0 !important;
  box-shadow: 0 15px 36px rgba(25, 49, 43, .095);
}
body.woocommerce ul.products li.product > a.woocommerce-LoopProduct-link,
body.woocommerce-page ul.products li.product > a.woocommerce-LoopProduct-link {
  display: block;
  text-decoration: none;
  flex: 1 0 auto;
  color: var(--luxpro-ink);
}
body.woocommerce ul.products li.product :is(a img, img.attachment-woocommerce_thumbnail),
body.woocommerce-page ul.products li.product :is(a img, img.attachment-woocommerce_thumbnail) {
  display: block;
  width: 100% !important;
  height: clamp(175px, 19vw, 265px) !important;
  margin: 0 0 18px !important;
  padding: 8px !important;
  object-fit: contain !important;
  background: var(--luxpro-surface);
  border: 0;
  border-radius: 0;
}
body.woocommerce ul.products li.product :is(.woocommerce-loop-product__title, .woocommerce-loop-category__title, h2, h3),
body.woocommerce-page ul.products li.product :is(.woocommerce-loop-product__title, .woocommerce-loop-category__title, h2, h3) {
  font-family: inherit !important;
  font-size: clamp(18px, 1.28vw, 21px) !important;
  line-height: 1.34 !important;
  letter-spacing: -.022em;
  color: var(--luxpro-ink) !important;
  text-align: left;
  padding: 0 18px !important;
  margin: 0 0 12px !important;
}
body.woocommerce ul.products li.product .count,
body.woocommerce-page ul.products li.product .count {
  font-size: 13px !important;
  font-weight: 500;
  color: var(--luxpro-muted);
  background: none;
}
body.woocommerce ul.products li.product :is(.price, .star-rating),
body.woocommerce-page ul.products li.product :is(.price, .star-rating) {
  margin: 0 18px 12px !important;
  color: var(--luxpro-green) !important;
  text-align: left;
  font-weight: 700;
}
body.woocommerce ul.products li.product > :is(a.button, .button, a.added_to_cart),
body.woocommerce-page ul.products li.product > :is(a.button, .button, a.added_to_cart) {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  align-self: flex-start;
  margin: auto 18px 0 !important;
  min-height: 43px;
  max-width: calc(100% - 36px);
  text-align: center;
  border: 0 !important;
  border-radius: 7px !important;
  padding: 11px 17px !important;
  background: var(--luxpro-green) !important;
  color: white !important;
  font-size: 14px !important;
  font-weight: 750 !important;
  text-transform: none !important;
  line-height: 1.3 !important;
  box-shadow: none !important;
}
body.woocommerce ul.products li.product > :is(a.button, .button, a.added_to_cart):hover,
body.woocommerce-page ul.products li.product > :is(a.button, .button, a.added_to_cart):hover { background: var(--luxpro-green-hover) !important; }
/* W Homi: stylujemy istniejące karty konfiguratorów; JS nadaje klasy tylko tam,
   gdzie wykryje link konfiguratora i jedną miniaturę. Nie dodajemy kolejnej sekcji. */
.luxpro-existing-card {
  box-sizing: border-box;
  min-width: 0;
  border: 1px solid var(--luxpro-line) !important;
  border-radius: var(--luxpro-radius) !important;
  overflow: hidden;
  background: #fff !important;
  box-shadow: 0 2px 9px rgba(25, 49, 43, .035);
  transition: box-shadow .22s ease, transform .22s ease;
}
.luxpro-existing-card:hover {
  box-shadow: 0 15px 36px rgba(25, 49, 43, .095);
  transform: translateY(-3px);
}
.luxpro-existing-card img {
  width: 100% !important;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  display: block;
}
.luxpro-existing-card :is(h3, h4, .card-title) {
  font-size: clamp(18px, 1.25vw, 21px) !important;
  font-weight: 750 !important;
  line-height: 1.35 !important;
  letter-spacing: -.02em;
  color: var(--luxpro-ink) !important;
}
.luxpro-existing-card :is(p, .description) {
  font-size: 14px !important;
  line-height: 1.55;
  color: var(--luxpro-muted);
}
.luxpro-existing-card-cta {
  font-size: 14px !important;
  font-weight: 750 !important;
  line-height: 1.4 !important;
  color: var(--luxpro-green) !important;
  text-decoration: none !important;
}
.luxpro-existing-card-cta:hover { color: var(--luxpro-green-hover) !important; text-decoration: underline !important; }
.luxpro-existing-group-heading {
  font-size: clamp(23px, 2vw, 30px) !important;
  line-height: 1.3 !important;
  color: var(--luxpro-ink) !important;
  font-weight: 750 !important;
  letter-spacing: -.03em;
}
/* Czytelna treść kategorii: dokładnie jedna główna H1 z motywu/Woo. */
body.tax-product_cat :is(.woocommerce-products-header__title, .page-title, h1.entry-title),
body.post-type-archive-product :is(.woocommerce-products-header__title, .page-title) {
  color: var(--luxpro-ink);
  font-size: clamp(29px, 3.2vw, 45px) !important;
  line-height: 1.17 !important;
  font-weight: 800 !important;
  letter-spacing: -.035em;
}
.luxpro-category-intro {
  max-width: 880px;
  margin: 10px auto 28px;
  text-align: center;
}
.luxpro-category-intro p,
body.tax-product_cat .term-description p {
  font-size: clamp(16px, 1.15vw, 18px);
  line-height: 1.75;
  color: #53625b;
}
.luxpro-category-footer {
  display: flex;
  gap: 25px;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  margin: 40px 0 55px;
  padding: clamp(22px, 2.7vw, 35px);
  border: 1px solid var(--luxpro-line);
  border-radius: 15px;
  background: var(--luxpro-surface);
}
.luxpro-footer-copy { flex: 1 1 440px; max-width: 780px; }
.luxpro-footer-copy h2 {
  font-size: clamp(22px, 2vw, 30px) !important;
  line-height: 1.3;
  font-weight: 750;
  letter-spacing: -.025em;
  margin: 0 0 12px;
  color: var(--luxpro-green);
}
.luxpro-footer-copy p { margin: 0; font-size: 16px; line-height: 1.7; color: var(--luxpro-muted); }
.luxpro-category-cta,
.luxpro-card-button {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  justify-content: center;
  background: var(--luxpro-green);
  border-radius: 8px;
  color: #fff !important;
  font-weight: 750;
  font-size: 15px;
  padding: 14px 20px;
  text-decoration: none !important;
  line-height: 1.3;
  transition: background-color .2s;
}
.luxpro-category-cta:hover, .luxpro-category-card:hover .luxpro-card-button { background: var(--luxpro-green-hover); }
/* Opcjonalna siatka archiwów kategorii dla stron budowanych Elementorem. */
.luxpro-shortcode-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 24px;
  margin: 25px 0 45px;
}
.luxpro-category-card {
  min-width: 0;
  background: #fff;
  border: 1px solid var(--luxpro-line);
  border-radius: var(--luxpro-radius);
  box-shadow: 0 2px 9px rgba(25, 49, 43, .035);
  overflow: hidden;
  transition: box-shadow .22s ease, transform .22s ease;
}
.luxpro-category-card:hover { transform: translateY(-3px); box-shadow: 0 15px 36px rgba(25, 49, 43, .095); }
.luxpro-category-card-link { display: flex; flex-direction: column; height: 100%; text-decoration: none !important; }
.luxpro-card-image { display: flex; align-items:center; justify-content:center; aspect-ratio: 4/3; background: var(--luxpro-surface); }
.luxpro-card-image img { width: 100%; height: 100%; object-fit: contain; padding: 8px; }
.luxpro-card-placeholder { font-size: 70px; font-weight: 750; color: #acbdb3; }
.luxpro-card-info { display:flex; flex:1; flex-direction:column; align-items:flex-start; gap:12px; padding:18px; }
.luxpro-card-info h3 { font-size:20px; line-height:1.32; font-weight:750; color:var(--luxpro-ink); margin:0; }
.luxpro-card-info p { color:var(--luxpro-muted); line-height:1.55; font-size:14px; margin:0; }
.luxpro-card-button { font-size:14px; padding:11px 16px; margin-top:auto; }
.luxpro-category-card-link:focus-visible, .luxpro-category-cta:focus-visible, .luxpro-existing-card-cta:focus-visible {
  outline: 3px solid var(--luxpro-gold) !important; outline-offset: 2px;
}
@media (max-width: 1150px) {
  body.woocommerce ul.products, body.woocommerce-page ul.products, .luxpro-shortcode-grid { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; gap:20px !important; }
}
@media (max-width: 820px) {
  body.woocommerce ul.products, body.woocommerce-page ul.products, .luxpro-shortcode-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap:15px !important; }
  body.woocommerce ul.products li.product :is(a img, img.attachment-woocommerce_thumbnail),
  body.woocommerce-page ul.products li.product :is(a img, img.attachment-woocommerce_thumbnail) { height:210px !important; }
  .luxpro-category-footer { margin:28px 0; }
}
@media (max-width: 490px) {
  body.woocommerce ul.products, body.woocommerce-page ul.products, .luxpro-shortcode-grid { grid-template-columns:repeat(2, minmax(0, 1fr)) !important; gap:10px !important; }
  body.woocommerce ul.products li.product, body.woocommerce-page ul.products li.product { padding-bottom:12px !important; }
  body.woocommerce ul.products li.product :is(a img, img.attachment-woocommerce_thumbnail),
  body.woocommerce-page ul.products li.product :is(a img, img.attachment-woocommerce_thumbnail) { height:155px !important; margin-bottom:12px !important; padding:4px !important; }
  body.woocommerce ul.products li.product :is(.woocommerce-loop-product__title, .woocommerce-loop-category__title, h2, h3),
  body.woocommerce-page ul.products li.product :is(.woocommerce-loop-product__title, .woocommerce-loop-category__title, h2, h3) { font-size:16px !important; padding:0 10px !important; }
  body.woocommerce ul.products li.product :is(.price, .star-rating),
  body.woocommerce-page ul.products li.product :is(.price, .star-rating) { margin:0 10px 10px !important; font-size:14px !important; }
  body.woocommerce ul.products li.product > :is(a.button, .button, a.added_to_cart),
  body.woocommerce-page ul.products li.product > :is(a.button, .button, a.added_to_cart) { margin:auto 10px 0 !important; padding:9px 10px !important; max-width:calc(100% - 20px); min-height:39px; font-size:12px !important; }
  .luxpro-card-info { padding:12px; }
  .luxpro-card-info h3 { font-size:17px; }
  .luxpro-card-button { font-size:12px; padding:10px; }
  .luxpro-category-footer { padding:18px; }
}
@media (prefers-reduced-motion: reduce) {
  .luxpro-existing-card, body.woocommerce ul.products li.product, body.woocommerce-page ul.products li.product,
  .luxpro-category-card { transition:none !important; }
}

/* Uczciwy, istniejący opis produktu jako podpowiedź zakupowa. */
body.woocommerce ul.products li.product .luxpro-product-excerpt,
body.woocommerce-page ul.products li.product .luxpro-product-excerpt {
  margin: 0 18px 16px !important;
  font-size: 14px !important;
  line-height: 1.55;
  color: var(--luxpro-muted);
  text-align: left;
}
