/* ============================================================
   COMFILL — strona produktu, wybór zestawu, siatka sklepu,
   płatności i Omnibus.
   Klasa .plp otacza stronę produktu, żeby te reguły nie mieszały się
   z domyślnym układem WooCommerce na pozostałych ekranach.
   ============================================================ */

.plp{ display:grid; gap:clamp(3rem,7vw,5.5rem); }

/* ---------- hero ---------- */
.plp__hero{
  display:grid; gap:clamp(1.6rem,4vw,3.5rem);
  grid-template-columns:minmax(0,1fr);
  align-items:start;
}
@media (min-width:900px){
  .plp__hero{ grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr); }
  /* Kolumna zakupowa zostaje w polu widzenia przy długiej galerii.
     Nagłówek ma 64 px — 88 px daje oddech pod nim. */
  .plp__buy{ position:sticky; top:88px; }
}

.plp__media .woocommerce-product-gallery{ width:100%!important; float:none!important; margin:0!important; }
.plp__media img{ border-radius:var(--r); background:var(--surface); }
.plp__media .flex-control-thumbs{ display:flex; gap:.5rem; margin:.6rem 0 0!important; padding:0; list-style:none; }
.plp__media .flex-control-thumbs li{ width:72px!important; float:none!important; margin:0!important; }
.plp__media .flex-control-thumbs img{ border-radius:var(--r-s); border:1px solid var(--line); opacity:.7; transition:opacity .2s var(--ease), border-color .2s var(--ease); }
.plp__media .flex-control-thumbs img:hover,
.plp__media .flex-control-thumbs img.flex-active{ opacity:1; border-color:var(--text); }
.plp__media .woocommerce-product-gallery__trigger{ background:#fff; border:1px solid var(--line); }

.plp__title{
  font-weight:700;
  font-size:clamp(1.7rem,3.2vw,2.4rem); line-height:1.15;
  letter-spacing:-.02em; margin:.2rem 0 0; text-wrap:balance;
}
.plp__promise{
  font-style:normal; font-weight:500;
  font-size:clamp(1rem,1.6vw,1.15rem); line-height:1.45; color:var(--text);
  margin:.7rem 0 0;
}
.plp__lead{ margin:.8rem 0 0; }
.plp__lead p{ color:var(--muted); margin:0; }

.plp__price{
  font-size:clamp(1.7rem,3vw,2.1rem); font-weight:700; line-height:1.2;
  color:var(--text); margin:1.4rem 0 1.1rem;
  font-variant-numeric:tabular-nums;
}
.plp__price ins{ text-decoration:none; color:var(--accent); }
.plp__price del{ color:var(--muted); font-size:.55em; font-weight:400; margin-right:.5rem; }

/* Formularz koszyka WooCommerce — dopasowanie do przycisków motywu. */
.plp form.cart{ display:flex; flex-wrap:wrap; gap:.6rem; align-items:stretch; margin:0 0 1.6rem; }
.plp form.cart .quantity input{
  width:74px; height:100%; padding:.85rem .6rem; text-align:center;
  background:#fff; border:1px solid var(--line-2);
  border-radius:100px; color:var(--text); font:inherit;
}
.plp form.cart .quantity input:focus{ outline:2px solid var(--accent); outline-offset:1px; }
.plp form.cart button[type="submit"]{
  flex:1 1 200px; justify-content:center;
  font:600 1.02rem var(--body); cursor:pointer;
  background:var(--accent); color:#fff; border:0; border-radius:100px; padding:1rem 1.8rem;
  transition:background-color .2s var(--ease);
}
.plp form.cart button[type="submit"]:hover{ background:var(--accent-hover); }
.plp .stock{ color:var(--muted); font-size:.88rem; }
.plp .stock.out-of-stock{ color:var(--danger); }

.plp__ticks{ margin:0; padding-top:1.4rem; border-top:1px solid var(--line); }
.plp__ticks li{ font-size:.94rem; }

.plp__pay{ margin-top:1.4rem; }

/* ---------- trzy powody ---------- */
.plp__points{ display:grid; gap:1rem; grid-template-columns:minmax(0,1fr); }
@media (min-width:760px){ .plp__points{ grid-template-columns:repeat(3,minmax(0,1fr)); } }

.plp__point{
  border-radius:var(--r);
  background:var(--surface); padding:1.6rem 1.5rem;
}
.plp__ico{ width:28px; height:28px; color:var(--accent); display:block; margin-bottom:.9rem; }
.plp__point h3{ font-weight:600; font-size:1.08rem; margin:0 0 .4rem; }
.plp__point p{ color:var(--muted); font-size:.94rem; margin:0; }

/* ---------- kroki ---------- */
.plp__how .h2{ margin:0 0 1.6rem; }
.plp__steps{ list-style:none; margin:0; padding:0; display:grid; gap:1.1rem; counter-reset:none; }
@media (min-width:760px){ .plp__steps{ grid-template-columns:repeat(3,minmax(0,1fr)); gap:1.6rem; } }

.plp__steps li{ display:flex; gap:1rem; align-items:flex-start; padding:0; margin:0; }
.plp__steps li::before{ display:none; }
.plp__num{
  flex:0 0 34px; height:34px; display:grid; place-items:center;
  background:var(--accent-soft); border-radius:50%;
  font-size:.86rem; font-weight:700; color:var(--accent); font-variant-numeric:tabular-nums;
}
.plp__steps h3{ font-size:1rem; font-weight:600; margin:.35rem 0 .3rem; }
.plp__steps p{ color:var(--muted); font-size:.93rem; margin:0; }

/* ---------- opis i specyfikacja ---------- */
.plp__detail{ display:grid; gap:clamp(1.6rem,4vw,3rem); grid-template-columns:minmax(0,1fr); align-items:start; }
@media (min-width:900px){ .plp__detail{ grid-template-columns:minmax(0,1.4fr) minmax(0,.6fr); } }

.plp__desc{ max-width:70ch; }
.plp__desc h2{ font-weight:700; font-size:1.3rem; margin:2rem 0 .7rem; }
.plp__desc h2:first-child{ margin-top:0; }
.plp__desc p, .plp__desc li{ color:var(--text); }
.plp__desc ol, .plp__desc ul{ padding-left:1.2rem; }
.plp__desc li{ margin-bottom:.5rem; }
.plp__desc strong{ color:var(--text); font-weight:600; }
.plp__desc small{ color:var(--muted); font-size:.82rem; }
.plp__desc a{ color:var(--accent); }

/* Tabela składu — border-collapse:separate, bo przy collapse zaokrąglone
   rogi obramowania znikają. */
.plp__desc table{
  width:100%; border-collapse:separate; border-spacing:0; margin:1.2rem 0 1.4rem;
  border:1px solid var(--line); border-radius:var(--r-s); overflow:hidden;
  font-size:.9rem; font-variant-numeric:tabular-nums;
}
.plp__desc th, .plp__desc td{
  padding:.7rem .9rem; text-align:left; border-bottom:1px solid var(--line);
}
.plp__desc thead th{
  background:var(--surface); color:var(--muted);
  font-size:.72rem; letter-spacing:.06em; text-transform:uppercase; font-weight:600;
}
.plp__desc tbody td{ color:var(--muted); }
.plp__desc tbody td:first-child{ color:var(--text); font-weight:500; }
.plp__desc tbody tr:last-child td{ border-bottom:none; }

@media (max-width:620px){
  /* Cztery kolumny nie mieszczą się na telefonie — przewijamy samą tabelę,
     nigdy całą stronę. */
  .plp__desc table{ display:block; overflow-x:auto; white-space:nowrap; }
}

.plp__spec{
  border-radius:var(--r);
  background:var(--surface); padding:1.4rem 1.5rem;
}
.plp__spec h3{ font-size:.8rem; letter-spacing:.06em; text-transform:uppercase; font-weight:600; margin:0 0 .8rem; }
.plp__spec dl{ margin:0; display:grid; }
.plp__spec dl > div{ display:grid; gap:.1rem; padding:.7rem 0; border-top:1px solid var(--line); }
.plp__spec dt{ font-size:.78rem; color:var(--muted); }
.plp__spec dd{ margin:0; color:var(--text); font-size:.95rem; font-weight:500; }

/* ---------- upsell ---------- */
.plp__bundle{
  border-radius:var(--r);
  background:var(--surface);
  padding:clamp(1.4rem,4vw,2.4rem);
}
.plp__bundle-head{ margin-bottom:1.4rem; }
.plp__bundle-head .h2{ margin:0; }

.plp__cards{ display:grid; gap:.8rem; grid-template-columns:minmax(0,1fr); }
@media (min-width:620px){ .plp__cards{ grid-template-columns:repeat(2,minmax(0,1fr)); } }

.plp__card{
  display:flex; gap:1rem; align-items:center;
  border:1px solid var(--line); border-radius:var(--r-s);
  background:#fff; padding:.9rem;
}
.plp__card-img{ flex:0 0 88px; display:block; }
.plp__card-img img{ width:88px; height:88px; object-fit:contain; border-radius:var(--r-s); background:var(--surface); display:block; }
.plp__card-body{ min-width:0; display:grid; gap:.3rem; }
.plp__card h3{ font-size:.96rem; font-weight:600; margin:0; line-height:1.35; }
.plp__card h3 a{ color:var(--text); text-decoration:none; }
.plp__card h3 a:hover{ color:var(--accent); }
.plp__card-price{ margin:0; color:var(--text); font-size:.98rem; font-weight:700; }
.plp__card-price ins{ color:var(--accent); }
.plp__card-price del{ font-size:.82em; margin-right:.3rem; }
.plp__card .btn{ justify-self:start; padding:.5rem 1.1rem; font-size:.86rem; text-decoration:none; }
/* Woo dokleja własny link „Zobacz koszyk" po dodaniu — chowamy go, mamy szufladę */
.plp__card .added_to_cart{ display:none!important; }

/* ---------- FAQ ---------- */
.plp__faq .h2{ margin:0 0 1rem; }
.plp__qa{ border-bottom:1px solid var(--line); padding:1rem 0; }
.plp__qa:first-of-type{ border-top:1px solid var(--line); }
.plp__qa summary{
  cursor:pointer; list-style:none; color:var(--text); font-weight:500;
  font-size:1rem; display:flex; justify-content:space-between; gap:1.5rem;
}
.plp__qa summary::-webkit-details-marker{ display:none; }
.plp__qa summary::after{
  content:"+"; color:var(--muted); font-size:1.4rem; line-height:1; font-weight:400;
  transition:transform .25s var(--ease); flex:0 0 auto;
}
.plp__qa[open] summary::after{ transform:rotate(45deg); }
.plp__qa p{ color:var(--muted); margin:.7rem 0 0; max-width:70ch; font-size:.95rem; }

/* ---------- opinie (szablon recenzji WooCommerce) ---------- */
.plp__reviews{ max-width:820px; }
.plp__reviews h2,
.plp__reviews .woocommerce-Reviews-title{ font-size:clamp(1.4rem,2.4vw,1.85rem); font-weight:700; margin:0 0 1.2rem; }
.plp__reviews .woocommerce-noreviews{ color:var(--muted); margin:0 0 1.4rem; }
.plp__reviews .commentlist{ list-style:none; margin:0 0 2rem; padding:0; display:grid; gap:.8rem; }
.plp__reviews .commentlist li{ margin:0; padding:0; }
.plp__reviews .commentlist li::before{ display:none; }
.plp__reviews .comment_container{
  display:flex; gap:1rem; align-items:flex-start;
  border:1px solid var(--line); border-radius:var(--r); padding:1.1rem 1.2rem; background:#fff;
}
.plp__reviews .comment_container img.avatar{
  position:static; float:none; width:40px; height:40px; flex:none;
  border-radius:50%; border:0; padding:0; background:var(--surface);
}
.woocommerce .plp__reviews .comment-text{ margin:0; border:0; padding:0; border-radius:0; flex:1; min-width:0; }
.plp__reviews .comment-text p.meta{ margin:0 0 .4rem; font-size:.84rem; color:var(--muted); }
.plp__reviews .comment-text .woocommerce-review__author{ color:var(--text); font-weight:600; }
.plp__reviews .comment-text .description p{ margin:0; color:var(--text); font-size:.95rem; }
.plp__reviews .woocommerce-review__verified{ color:#067647; font-style:normal; }

/* Gwiazdki — kolor akcentu, wysoka specyficzność, bo WooCommerce ustawia
   własne kolory w .woocommerce .star-rating. */
.woocommerce .plp__reviews .star-rating,
.plp__reviews .star-rating{ color:var(--accent); float:right; font-size:.9rem; margin-left:.6rem; }
.woocommerce .plp__reviews .star-rating::before{ color:var(--line-2); }
.woocommerce .plp__reviews p.stars a{ color:var(--accent); }
.plp__reviews p.stars{ margin:.3rem 0 1rem; }

.plp__reviews #review_form_wrapper{ border-top:1px solid var(--line); padding-top:1.6rem; }
.plp__reviews #review_form #respond{ margin:0; }
.plp__reviews .comment-reply-title{ display:block; font-size:1.1rem; font-weight:600; color:var(--text); margin:0 0 .8rem; }
.plp__reviews .comment-notes,
.plp__reviews .logged-in-as{ color:var(--muted); font-size:.86rem; }
.plp__reviews .comment-form p{ margin:0 0 1rem; }
.plp__reviews .comment-form label{ display:block; font-size:.88rem; font-weight:500; color:var(--text); margin-bottom:.35rem; }
.plp__reviews .comment-form textarea,
.plp__reviews .comment-form input[type="text"],
.plp__reviews .comment-form input[type="email"],
.plp__reviews .comment-form select{
  width:100%; background:#fff; color:var(--text);
  border:1px solid var(--line-2); border-radius:var(--r-s);
  padding:.75rem .9rem; font:inherit; font-size:.95rem;
}
.plp__reviews .comment-form textarea:focus,
.plp__reviews .comment-form input:focus,
.plp__reviews .comment-form select:focus{ outline:2px solid var(--accent); outline-offset:1px; border-color:var(--accent); }
.plp__reviews .comment-form-cookies-consent{ display:flex; gap:.5rem; align-items:flex-start; }
.plp__reviews .comment-form-cookies-consent label{ display:inline; font-weight:400; color:var(--muted); }
.plp__reviews input[type="checkbox"]{ accent-color:var(--accent); }

/* Kotwice pod przyklejonym nagłówkiem. */
.plp section{ scroll-margin-top:80px; }

/* ============================================================
   Wybór zestawu poduszki (template-parts/zestawy.php)
   ============================================================ */

.zestawy{ margin-top:1.4rem; }

.variants{ display:grid; gap:.6rem; margin:0 0 .9rem; }
.variant{
  display:flex; align-items:center; gap:.9rem; cursor:pointer;
  background:#fff; border:1px solid var(--line-2); border-radius:var(--r-s);
  padding:.9rem 1rem; transition:border-color .2s var(--ease), background-color .2s var(--ease);
}
.variant:hover{ border-color:var(--muted); }
/* Obwódka 1 px + wewnętrzny cień 1 px = wyraźne 2 px bez skakania układu. */
.variant.is-on{ border-color:var(--accent); background:var(--accent-soft); box-shadow:inset 0 0 0 1px var(--accent); }
.variant input{ accent-color:var(--accent); width:18px; height:18px; flex:none; margin:0; }
.variant__main{ display:flex; flex-direction:column; margin-right:auto; min-width:0; }
.variant__main b{ font-weight:600; font-size:.98rem; color:var(--text); }
.variant__main small{ color:var(--muted); font-size:.82rem; }
.variant__price{ font-size:1.1rem; font-weight:700; color:var(--text); text-align:right; white-space:nowrap; font-variant-numeric:tabular-nums; }
.variant__price ins{ color:var(--accent); }
.variant__price del{ display:block; font-size:.72em; line-height:1.2; }

/* ---------- dodatek: poszewka ---------- */
.addon{
  display:flex; align-items:center; gap:.9rem; cursor:pointer;
  border:1px dashed var(--line-2); border-radius:var(--r-s);
  padding:.8rem 1rem; margin:0 0 1.1rem;
  background:#fff;
  transition:border-color .2s var(--ease), background-color .2s var(--ease);
}
.addon:hover{ border-color:var(--muted); }
.addon.is-on{
  border-style:solid; border-color:var(--accent);
  background:var(--accent-soft);
}
.addon input{ accent-color:var(--accent); width:18px; height:18px; flex:none; margin:0; }
.addon input:disabled{ cursor:not-allowed; }
.addon:has(input:disabled){ opacity:.5; cursor:not-allowed; }
.addon__main{ display:flex; flex-direction:column; margin-right:auto; }
.addon__main b{ font-weight:600; font-size:.94rem; }
.addon__main small{ color:var(--muted); font-size:.8rem; }
.addon__price{ font-size:1rem; font-weight:600; white-space:nowrap; }

@media (max-width:520px){
  /* W jednym rzędzie kolumna z opisem robi się tak wąska, że tekst łamie się
     na pięć linii — na wąskim ekranie cena schodzi więc pod opis. */
  .addon{
    display:grid; grid-template-columns:auto minmax(0,1fr);
    gap:.15rem .8rem; align-items:center;
  }
  .addon input{ grid-row:span 2; }
  .addon__main{ margin-right:0; }
  .addon__price{ grid-column:2; justify-self:start; font-size:.96rem; }
}

.offer__sum{ display:flex; justify-content:space-between; align-items:baseline; gap:1rem; padding-top:1rem; border-top:1px solid var(--line); }
.offer__sum-label{ color:var(--muted); font-size:.92rem; }
.offer__sum strong{ font-size:clamp(1.7rem,3vw,2.1rem); font-weight:700; color:var(--text); line-height:1.2; font-variant-numeric:tabular-nums; }

/* Sumy dla wszystkich kombinacji są w DOM-ie; widoczna jest jedna. */
.offer__total[hidden]{ display:none; }

/* ---------- przyciski wariantów ---------- */
/* Na każdy wariant przypada jeden przycisk; JS przełącza .is-on. `!important`
   jest potrzebne, bo .btn ustawia display:inline-flex. */
.offer__buttons{ margin-top:1rem; margin-bottom:1.4rem; }
.offer__btn{ display:none!important; text-decoration:none; }
.offer__btn.is-on{ display:inline-flex!important; }
.offer__btn.loading{ opacity:.6; pointer-events:none; }
.offer__btn.is-disabled,
.offer__btn.is-disabled:hover{ background:var(--line); color:var(--muted); cursor:not-allowed; }
/* Woo dokleja własny link „Zobacz koszyk" po dodaniu — chowamy go, mamy szufladę */
.offer__buttons .added_to_cart{ display:none!important; }

/* ============================================================
   Sklep — nagłówek, zakładki kategorii i siatka produktów
   ============================================================ */

.woo--shop .page__wrap{ padding-top:0; max-width:none; }
main.woo--home{ padding-bottom:clamp(1rem,3vw,2rem); }

/* ---------- nagłówek ---------- */
.shop-head{ padding:clamp(1.6rem,4vw,2.6rem) 0 clamp(1.2rem,3vw,1.8rem); }
/* Na podstronach sklepu main.page ma już górny odstęp — nie dublujemy go. */
main.page .shop-head{ padding-top:0; }
.shop-head__title{
  font-size:clamp(1.6rem,3vw,2rem); font-weight:700; line-height:1.15;
  letter-spacing:-.02em; margin:0;
}
.shop-empty{ color:var(--muted); padding:3rem 0; text-align:center; }

/* ---------- filtr kategorii ---------- */
.shop-tabs{ display:flex; gap:.5rem; flex-wrap:wrap; margin-top:1.1rem; }
.shop-tab{
  display:inline-flex; align-items:center; gap:.5rem; flex:none;
  padding:.5rem 1.05rem; border-radius:100px;
  background:#fff; border:1px solid var(--line-2); color:var(--text);
  text-decoration:none; font-size:.9rem; font-weight:500; white-space:nowrap;
  transition:border-color .2s var(--ease), background-color .2s var(--ease), color .2s var(--ease);
}
.shop-tab:hover{ border-color:var(--text); }
.shop-tab.is-on{ background:var(--text); border-color:var(--text); color:#fff; }

@media (max-width:767px){
  /* Na telefonie zakładki w jednym rzędzie przewijanym w bok — zawijane
     zajmowały trzy linie nad produktami. Ujemny margines wyciąga pasek do
     krawędzi ekranu; przewija się tylko on, nie cała strona. */
  .shop-tabs{
    flex-wrap:nowrap; overflow-x:auto; scrollbar-width:none;
    margin-inline:calc(var(--pad) * -1); padding:0 var(--pad) 2px;
    -webkit-overflow-scrolling:touch;
  }
  .shop-tabs::-webkit-scrollbar{ display:none; }
}

/* ---------- siatka ---------- */
/* Selektor z `main`, żeby wygrać z `.woocommerce ul.products` z wp.css
   i z arkusza WooCommerce niezależnie od kolejności ładowania. */
main.woo--shop ul.products{
  display:grid; gap:.75rem;
  grid-template-columns:repeat(2,minmax(0,1fr));
  list-style:none; margin:0 0 2rem; padding:0;
}
/* Clearfix WooCommerce (::before/::after z display:table) w siatce zająłby
   pierwszą i ostatnią komórkę jak niewidzialne produkty. */
main.woo--shop ul.products::before,
main.woo--shop ul.products::after{ content:none; display:none; }
@media (min-width:768px){
  main.woo--shop ul.products{ grid-template-columns:repeat(3,minmax(0,1fr)); gap:1.25rem; }
}
@media (min-width:1100px){
  main.woo--shop ul.products{ grid-template-columns:repeat(4,minmax(0,1fr)); }
}

/* Pasek sortowania i licznik — stonowane, nad siatką. */
.woo--shop .woocommerce-result-count{ color:var(--muted); font-size:.88rem; margin:0 0 1.2rem; }
.woo--shop .woocommerce-ordering{ margin:0 0 1.2rem; }
.woo--shop .woocommerce-ordering select{
  background:#fff; color:var(--text);
  border:1px solid var(--line-2); border-radius:100px;
  padding:.5rem 1rem; font:inherit; font-size:.9rem;
}
.woo--shop .woocommerce-pagination ul.page-numbers{ border:0; display:flex; justify-content:center; gap:.4rem; }
.woo--shop .woocommerce-pagination ul.page-numbers li{ border:0; }
.woo--shop .woocommerce-pagination ul.page-numbers li .page-numbers{ min-width:40px; padding:.55rem .8rem; border:1px solid var(--line-2); border-radius:100px; color:var(--text); }
.woo--shop .woocommerce-pagination ul.page-numbers li span.current{ background:var(--text); border-color:var(--text); color:#fff; }

/* ---------- karta ---------- */
/* `!important` na wymiarach: WooCommerce nadaje li.product szerokość w %,
   margines i float, które w siatce tylko by przeszkadzały. */
li.pcard{
  display:flex; flex-direction:column; position:relative;
  background:#fff; border:1px solid var(--line); border-radius:var(--r);
  overflow:hidden; text-align:left;
  width:auto!important; margin:0!important; float:none!important; padding:0!important;
  transition:box-shadow .25s var(--ease), transform .25s var(--ease);
}
li.pcard:hover{ box-shadow:0 8px 24px rgba(17,19,24,.08); transform:translateY(-2px); }

.pcard__media{
  position:relative; display:block; aspect-ratio:1/1;
  background:var(--surface); overflow:hidden;
}
.pcard__media img{
  width:100%; height:100%; object-fit:contain; display:block;
  border-radius:0!important; margin:0!important;
  transition:transform .4s var(--ease);
}
li.pcard:hover .pcard__media img{ transform:scale(1.03); }

.pcard__flag{
  position:absolute; top:.65rem; left:.65rem;
  background:var(--accent); color:#fff;
  font-size:.72rem; font-weight:700; letter-spacing:.02em; line-height:1;
  padding:.4rem .6rem; border-radius:100px;
}
/* Obok flagi rabatu flaga braku towaru idzie do prawego rogu. */
.pcard__flag--out{ background:var(--text); color:#fff; left:auto; right:.65rem; }

.pcard__body{
  display:flex; flex-direction:column; gap:.3rem;
  padding:1rem 1.1rem 1.1rem; flex:1;
}
.pcard__cat{
  margin:0; font-size:.72rem; letter-spacing:.06em;
  text-transform:uppercase; color:var(--muted);
}
.woocommerce ul.products li.pcard .pcard__title,
.pcard__title{
  margin:0; padding:0; font-family:var(--body); font-weight:600;
  font-size:1rem; line-height:1.3; letter-spacing:-.005em; color:var(--text);
}
.pcard__title a{ color:var(--text); text-decoration:none; }
.pcard__title a:hover{ color:var(--accent); }
/* Cała karta klikalna: rozciągamy link tytułu na kartę, a przycisk
   podnosimy nad tę warstwę, żeby dalej dodawał do koszyka. */
.pcard__title a::after{ content:""; position:absolute; inset:0; z-index:1; }
.pcard__claim{
  margin:0; color:var(--muted); font-size:.88rem; line-height:1.45;
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;
}

.pcard__foot{
  margin-top:auto; padding-top:.8rem;
  display:flex; align-items:center; justify-content:space-between;
  gap:.6rem .75rem; flex-wrap:wrap;
}
.pcard__price{
  margin:0; font-size:1.15rem; font-weight:700; color:var(--text); line-height:1.2;
  font-variant-numeric:tabular-nums; white-space:nowrap;
}
.pcard__price ins{ text-decoration:none; color:var(--accent); font-weight:700; }
.pcard__price del{ color:var(--muted); font-size:.72em; font-weight:400; display:block; line-height:1.2; }
.pcard__btn{
  position:relative; z-index:2;
  padding:.55rem 1.1rem; font-size:.86rem; text-decoration:none;
  white-space:nowrap; flex:0 0 auto;
}
li.pcard .added_to_cart{ display:none!important; }

@media (max-width:767px){
  .pcard__body{ padding:.8rem .85rem .9rem; }
  .pcard__title{ font-size:.94rem; }
  .pcard__claim{ display:none; }
  .pcard__foot{ flex-direction:column; align-items:stretch; gap:.55rem; }
  .pcard__btn{ width:100%; }
}

/* ============================================================
   Badge metod płatności
   Logotypy operatorów wstawiamy jako obrazy w ich oryginalnych
   barwach, więc kafelek musi dać im jasne, neutralne tło.
   ============================================================ */

.pay{
  display:flex; flex-wrap:wrap; align-items:center;
  gap:.5rem; list-style:none; margin:0; padding:0;
}
.pay__item{
  display:grid; place-items:center;
  height:34px; min-width:56px; padding:0 .6rem;
  background:#FFFFFF; border-radius:7px;
  border:1px solid var(--line);
}
.pay__item::before{ display:none; }
/* Wysokość musi być jawna. Przy samym max-height obrazek wyliczał się na
   0 × 0, nigdy nie trafiał w pole widzenia i leniwe ładowanie go nie pobierało. */
.pay__item img{
  height:18px; width:auto; max-width:64px;
  display:block; object-fit:contain;
}

/* Plik BLIK-a zawiera już własny ciemny badge z zaokrąglonymi rogami —
   to kompletny znak, nie sama sygnatura. Własny kafelek byłby drugim tłem
   pod spodem i optycznie pomniejszał logo, więc go zdejmujemy, a obrazek
   rozciągamy na pełną wysokość rzędu. */
.pay__item--blik{
  background:transparent; border:none; padding:0; min-width:0;
}
.pay__item--blik img{ height:34px; max-width:none; }

/* Na stronie produktu badge to osobny blok informacji niż lista ptaszków —
   bez wyraźnej przerwy czytały się jako jej dalszy ciąg.
   Musi stać po `.pay`, bo ma tę samą specyficzność. */
.pay--plp{ margin-top:1.6rem; }

@media (max-width:520px){
  .pay{ gap:.4rem; }
  .pay__item{ height:30px; min-width:48px; }
  .pay__item img{ height:15px; max-width:56px; }
  .pay__item--blik img{ height:30px; }
}

/* ============================================================
   Omnibus — najniższa cena z 30 dni przed obniżką
   Informacja obowiązkowa wszędzie tam, gdzie ogłaszamy obniżkę.
   Ma być czytelna, ale nie konkurować z ceną.
   ============================================================ */

.omnibus{
  margin:.35rem 0 0;
  color:var(--muted);
  font-size:.76rem; font-weight:400; line-height:1.45;
  font-variant-numeric:tabular-nums;
}
.omnibus span{ white-space:nowrap; }
.omnibus .amount{ color:inherit; font-weight:500; }

/* pod ceną główną na stronie produktu */
.plp__price + .omnibus{ margin:-.6rem 0 1.3rem; }

/* w kafelku wariantu — ciaśniej, bo miejsce jest wąskie */
.omnibus--variant{
  margin:.2rem 0 0; font-size:.68rem; text-align:right; white-space:normal;
}

/* na karcie w siatce sklepu */
.omnibus--card{ margin:.1rem 0 0; font-size:.7rem; }

@media (max-width:520px){
  .omnibus--variant{ text-align:left; }
  .omnibus--card{ font-size:.66rem; }
}
