/*
 * HardFish — Shared Components
 * Komponenty wspólne dla storefront i panelu.
 * Importuj PO tokens.css, PRZED pozostałymi arkuszami.
 *
 * Migracja: komponenty tu zdefiniowane stopniowo zastępują duplikaty
 * Ten plik jest autorytatywnym źródłem wspólnych kontrolek.
 */

.btn{display:inline-flex;min-width:44px;min-height:48px;align-items:center;justify-content:center;gap:8px;padding:0 20px;border:1px solid transparent;border-radius:var(--hf-radius-md);font:inherit;font-weight:850;cursor:pointer;transition:background var(--hf-duration-base) var(--hf-ease),border-color var(--hf-duration-base) var(--hf-ease),box-shadow var(--hf-duration-base) var(--hf-ease),transform var(--hf-duration-base) var(--hf-ease)}
.btn--accent{background:var(--hf-accent);box-shadow:0 10px 24px rgba(230,182,46,.22);color:var(--hf-accent-ink)}.btn--brand{background:var(--hf-brand-900);color:var(--hf-on-brand)}.btn--light{background:var(--hf-surface);color:var(--hf-brand-900)}.btn--outline{border-color:rgba(255,255,255,.42);background:transparent;color:var(--hf-on-brand)}.btn--ghost{border-color:var(--hf-line);background:var(--hf-surface);color:var(--hf-brand-900)}.btn--danger{background:var(--hf-danger);color:var(--hf-on-brand)}.btn--small{min-height:44px;padding-inline:14px;font-size:13px}.btn:disabled,.btn[aria-disabled="true"]{cursor:not-allowed;opacity:.55;transform:none}
.btn:focus-visible{outline:3px solid var(--hf-accent);outline-offset:3px}.btn--accent:focus-visible{outline-color:var(--hf-brand-950)}
@media(hover:hover) and (pointer:fine){.btn:not(:disabled):not([aria-disabled="true"]):hover{transform:translateY(-2px)}.btn--accent:not(:disabled):hover{background:var(--hf-accent-light)}.btn--brand:not(:disabled):hover{background:var(--hf-brand-800)}.btn--ghost:not(:disabled):hover{border-color:var(--hf-line-strong);background:var(--hf-surface-alt)}}

.field{display:flex;min-width:0;flex-direction:column;gap:7px}.field label{color:#34463d;font-size:13px;font-weight:780}.input,.select,.textarea{width:100%;min-height:44px;padding:10px 12px;border:1px solid var(--hf-line);border-radius:var(--hf-radius-sm);background:var(--hf-surface);color:var(--hf-ink);font:inherit;outline:0}.textarea{min-height:auto;resize:vertical}.input:focus,.select:focus,.textarea:focus{border-color:var(--hf-brand-700);box-shadow:0 0 0 3px var(--hf-focus-ring)}.field--error .input,.field--error .select,.field--error .textarea{border-color:var(--hf-danger)}
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.field--full{grid-column:1/-1}.checks{display:flex;align-items:flex-start;flex-wrap:wrap;gap:12px 18px}.checks label{display:flex;align-items:center;gap:7px}
.notice{margin:0 0 var(--hf-space-4);padding:14px 16px;border:1px solid #d2e4d9;border-radius:var(--hf-radius-md);background:#eff6f1;color:#2d5141;font-size:14px}.notice--error,.notice.error{border-color:var(--hf-danger-border);background:var(--hf-danger-bg);color:var(--hf-danger)}
.badge{display:inline-flex;max-width:100%;align-items:center;padding:5px 9px;border-radius:var(--hf-radius-full);font-size:11px;font-weight:850;line-height:1.35}.panel{min-width:0;padding:var(--hf-space-5);border:1px solid var(--hf-line);border-radius:var(--hf-radius-lg);background:var(--hf-surface)}.panel__head{display:flex;align-items:center;justify-content:space-between;gap:var(--hf-space-4);margin-bottom:var(--hf-space-4)}.panel__actions{display:flex;align-items:center;justify-content:flex-end;gap:var(--hf-space-2);flex-wrap:wrap}
@media(max-width:640px){.form-grid{grid-template-columns:1fr}.field--full{grid-column:auto}}

/* ═══════════════════════════════════════════════════════════════════════
   Notices / Alerts
   ═══════════════════════════════════════════════════════════════════════ */

.notice--success {
  background: var(--hf-success-bg);
  border-color: var(--hf-success-border);
  color: var(--hf-success);
}

.notice--warning {
  background: var(--hf-warning-bg);
  border-color: var(--hf-warning-border);
  color: var(--hf-warning);
}

.notice--info {
  background: var(--hf-info-bg);
  border-color: var(--hf-info-border);
  color: var(--hf-info);
}

/* ═══════════════════════════════════════════════════════════════════════
   Badges / Status chips
   ═══════════════════════════════════════════════════════════════════════ */

.badge--success {
  background: var(--hf-success-bg);
  color: var(--hf-success);
}

.badge--info {
  background: var(--hf-info-bg);
  color: var(--hf-info);
}

.badge--neutral {
  background: #f1f3f2;
  color: #67716c;
}

/* ═══════════════════════════════════════════════════════════════════════
   Action bar — poziomy pasek przycisków
   ═══════════════════════════════════════════════════════════════════════ */

.action-bar {
  display: flex;
  gap: var(--hf-space-3);
  flex-wrap: wrap;
  align-items: center;
}

.action-bar--end {
  justify-content: flex-end;
}

.action-bar--mt {
  margin-top: var(--hf-space-4);
}

/* Formularz w wierszu (np. obok linków w tabeli) */
.inline-form {
  display: inline-flex;
}

/* ═══════════════════════════════════════════════════════════════════════
   Tpay — Panel diagnostyki (admin/payments.php)
   ═══════════════════════════════════════════════════════════════════════ */

/* Baner środowiska — pełna szerokość sekcji */
.tpay-env-banner {
  display: flex;
  align-items: center;
  gap: var(--hf-space-3);
  padding: var(--hf-space-3) var(--hf-space-4);
  border-radius: var(--hf-radius-sm);
  border: 1px solid;
  margin-bottom: var(--hf-space-4);
  font-weight: 700;
  font-size: var(--hf-text-sm);
}

.tpay-env-banner::before {
  content: "";
  flex: 0 0 10px;
  height: 10px;
  border-radius: var(--hf-radius-full);
}

.tpay-env-banner--prod {
  background: var(--hf-danger-bg);
  border-color: var(--hf-danger-border);
  color: var(--hf-danger);
}

.tpay-env-banner--prod::before {
  background: var(--hf-danger);
}

.tpay-env-banner--sandbox {
  background: var(--hf-warning-bg);
  border-color: var(--hf-warning-border);
  color: var(--hf-warning);
}

.tpay-env-banner--sandbox::before {
  background: var(--hf-accent);
}

/* Siatka kart diagnostycznych */
.tpay-diag-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
  gap: var(--hf-space-4);
  margin-bottom: var(--hf-space-6);
}

/* Pojedyncza karta diagnostyczna */
.tpay-diag-item {
  display: flex;
  align-items: center;
  gap: var(--hf-space-2);
  padding: var(--hf-space-3) var(--hf-space-4);
  border: 1px solid;
  border-radius: var(--hf-radius-sm);
  font-size: var(--hf-text-sm);
}

.tpay-diag-item__indicator {
  flex: 0 0 10px;
  height: 10px;
  border-radius: var(--hf-radius-full);
}

.tpay-diag-item--ok {
  background: var(--hf-success-bg);
  border-color: var(--hf-success-border);
  color: var(--hf-success);
}

.tpay-diag-item--ok .tpay-diag-item__indicator {
  background: var(--hf-success);
}

.tpay-diag-item--fail {
  background: var(--hf-danger-bg);
  border-color: var(--hf-danger-border);
  color: var(--hf-danger);
}

.tpay-diag-item--fail .tpay-diag-item__indicator {
  background: var(--hf-danger);
}

/* Info o zsynchronizowanych kanałach */
.tpay-channels-info {
  margin-top: var(--hf-space-2);
  font-size: var(--hf-text-sm);
  color: var(--hf-muted);
}

/* Sekcja Tpay — dodatkowy odstęp dolny */
.tpay-panel {
  margin-bottom: var(--hf-space-6);
}

/* Panel bez dodatkowego marginesu górnego (gdy w układzie two-col) */
.panel--flush {
  margin-top: 0;
}

/* ═══════════════════════════════════════════════════════════════════════
   Mobile search bar (header)
   ═══════════════════════════════════════════════════════════════════════ */

.mobile-search-bar {
  display: none;
  border-top: 1px solid var(--hf-line);
  background: #fff;
  padding: var(--hf-space-3) var(--hf-space-5);
}

.mobile-search-bar.is-open {
  display: block;
}

.mobile-search-form {
  position: relative;
  display: flex;
  align-items: center;
  gap: var(--hf-space-2);
  min-height: 52px;
  border: 1px solid var(--hf-line);
  background: #f7faf8;
  border-radius: var(--hf-radius-full);
  padding: 3px 4px 3px var(--hf-space-4);
  transition: border-color var(--hf-duration-base) var(--hf-ease),
              box-shadow var(--hf-duration-base) var(--hf-ease);
}

.mobile-search-form:focus-within {
  border-color: var(--hf-brand-mid);
  box-shadow: 0 0 0 4px rgba(28, 93, 69, .12);
  background: #fff;
}

.mobile-search-form svg {
  width: 20px;
  height: 20px;
  flex: 0 0 20px;
  fill: none;
  stroke: var(--hf-brand);
  stroke-width: 2;
}

.mobile-search-form input[type="search"] {
  flex: 1;
  min-width: 0;
  border: 0;
  outline: 0;
  background: transparent;
  padding: 0 var(--hf-space-3);
  color: var(--hf-ink);
  font: inherit;
}

.mobile-search-form button[type="submit"] {
  min-width: 44px;
  min-height: 44px;
  border: 0;
  border-radius: var(--hf-radius-full);
  background: var(--hf-brand);
  color: #fff;
  font-weight: 800;
  padding: 0 var(--hf-space-5);
  cursor: pointer;
  font-size: var(--hf-text-sm);
}

.mobile-search-form button[type="submit"]:focus-visible {
  outline: 3px solid rgba(226, 177, 39, .75);
  outline-offset: 2px;
}

/* Przycisk zamknięcia mobilnej wyszukiwarki */
.mobile-search-close {
  flex: 0 0 auto;
  width: 44px;
  height: 44px;
  border: 0;
  border-radius: var(--hf-radius-full);
  background: #eef4f0;
  color: var(--hf-brand);
  font-size: 18px;
  line-height: 1;
  cursor: pointer;
  display: grid;
  place-items: center;
}

.mobile-search-close:focus-visible {
  outline: 3px solid rgba(226, 177, 39, .75);
  outline-offset: 2px;
}

/* Ikonowy przycisk dla mobile (hamburger, szukaj, itp.) */
.icon-btn {
  width: 42px;
  height: 42px;
  min-width: 44px;
  min-height: 44px;
  display: grid;
  place-items: center;
  border: 0;
  border-radius: var(--hf-radius-sm);
  background: transparent;
  cursor: pointer;
  color: var(--hf-brand);
}

.icon-btn:focus-visible {
  outline: 3px solid rgba(226, 177, 39, .75);
  outline-offset: 2px;
}

.icon-btn:hover {
  background: #eef4f0;
}

/* Toggle przycisk wyszukiwarki na mobile — tylko w breakpoincie ≤860px */
.mobile-search-toggle {
  display: none;
}

@media (max-width: 860px) {
  .mobile-search-toggle {
    display: grid;
  }
}
/* Product card: jedyne źródło geometrii kafelka i listy. */
.btn--small{min-height:44px}
.product-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--hf-space-4)}
.product-card{display:grid;grid-template-rows:auto minmax(0,1fr) auto;min-width:0;overflow:hidden;border:1px solid var(--hf-line);border-radius:var(--hf-radius-lg);background:var(--hf-surface);transition:border-color var(--hf-duration-base) var(--hf-ease),box-shadow var(--hf-duration-base) var(--hf-ease),transform var(--hf-duration-base) var(--hf-ease)}
.product-card:focus-within{border-color:var(--hf-brand-700);box-shadow:0 0 0 3px var(--hf-focus-ring)}
.product-card__image,.product-card__body,.product-card__bottom,.product-card h3,.product-card h3 a{min-width:0}
.product-card__image{position:relative;display:grid;aspect-ratio:4/3;overflow:hidden;place-items:center;background:var(--hf-surface-soft)}
.product-card__image>img[data-product-image]{position:relative;z-index:1;width:100%;height:100%;padding:var(--hf-space-3);object-fit:contain;transition:transform var(--hf-duration-slow) var(--hf-ease)}
.product-card__image>img[data-product-image].is-broken{display:none}
.product-card__fallback{position:absolute;inset:0;display:grid;padding:var(--hf-space-5);place-content:center;justify-items:center;gap:var(--hf-space-3);background:linear-gradient(145deg,var(--hf-surface-soft),var(--hf-surface-alt));color:var(--hf-brand-900);text-align:center}
.product-card__fallback img{width:min(120px,62%);height:auto;object-fit:contain}.product-card__fallback small{color:var(--hf-muted);font-size:var(--hf-text-xs);font-weight:800}
.product-card__body{display:flex;flex-direction:column;padding:var(--hf-space-4) var(--hf-space-4) var(--hf-space-2)}
.product-card__category{overflow:hidden;color:var(--hf-brand-700);font-size:var(--hf-text-xs);font-weight:800;text-overflow:ellipsis;white-space:nowrap}
.product-card h3{display:-webkit-box;min-height:calc(1.35em * 3);margin:6px 0 8px;overflow:hidden;font-size:16px;line-height:1.35;-webkit-box-orient:vertical;-webkit-line-clamp:3}
.product-card__meta{display:none;margin:0 0 var(--hf-space-2);color:var(--hf-muted);font-size:var(--hf-text-xs);line-height:1.35}.product-card__meta span{margin-right:4px;color:var(--hf-brand-700);font-weight:850;letter-spacing:.04em}
.product-card__desc{display:-webkit-box;margin:0 0 var(--hf-space-3);overflow:hidden;color:var(--hf-muted);font-size:var(--hf-text-sm);line-height:1.45;-webkit-box-orient:vertical;-webkit-line-clamp:2}
.product-card__bottom{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--hf-space-3);padding:var(--hf-space-2) var(--hf-space-4) var(--hf-space-4)}
.price-wrap{min-width:0}.price-wrap del{display:block;color:var(--hf-muted);font-size:var(--hf-text-xs)}.price-wrap strong{display:block;color:var(--hf-brand-900);font-size:20px;line-height:1.2;white-space:nowrap}
.add-cart{display:inline-flex;width:auto;min-width:118px;height:46px;min-height:46px;flex:0 0 auto;align-items:center;justify-content:center;gap:7px;padding:0 13px;border:1px solid rgba(56,43,4,.1);border-radius:13px;background:var(--hf-accent);box-shadow:0 6px 16px rgba(180,132,0,.2),inset 0 1px rgba(255,255,255,.32);color:var(--hf-brand-950);font:inherit;font-size:14px;font-weight:850;line-height:1;white-space:nowrap;cursor:pointer;transition:background var(--hf-duration-fast) var(--hf-ease),border-color var(--hf-duration-fast) var(--hf-ease),box-shadow var(--hf-duration-fast) var(--hf-ease),color var(--hf-duration-fast) var(--hf-ease),transform var(--hf-duration-fast) var(--hf-ease)}
.add-cart__icon{position:relative;display:grid;width:22px;height:22px;flex:0 0 22px;place-items:center}.add-cart__icon svg{display:block;width:22px;height:22px;overflow:visible;fill:none;stroke:currentColor;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round}.add-cart__icon circle:not(.add-cart__badge){fill:currentColor;stroke:none}.add-cart__badge{fill:currentColor;stroke:none}.add-cart__plus{stroke:var(--hf-accent-light);stroke-width:1.45}.add-cart__label{position:static;width:auto;height:auto;overflow:visible;clip:auto;white-space:nowrap}.add-cart:focus-visible{outline:3px solid var(--hf-brand-700);outline-offset:3px}.add-cart:disabled:not(.is-loading):not(.is-success),.add-cart[aria-disabled="true"]:not(.is-loading):not(.is-success){border-color:#cec7b0;background:#e4ddc5;box-shadow:none;color:#526057;cursor:not-allowed;opacity:.72;transform:none}.add-cart.is-loading{background:var(--hf-accent-light);color:var(--hf-brand-950);cursor:wait}.add-cart.is-loading .add-cart__icon svg,.add-cart.is-success .add-cart__icon svg{visibility:hidden}.add-cart.is-loading .add-cart__icon:after{width:17px;height:17px;border:2px solid rgba(8,40,30,.25);border-top-color:var(--hf-brand-900);border-radius:50%;content:"";animation:hf-cart-spin .7s linear infinite}.add-cart.is-success{border-color:var(--hf-success);background:var(--hf-success);box-shadow:0 6px 16px rgba(22,101,52,.2);color:var(--hf-on-brand)}.add-cart.is-success .add-cart__icon:after{content:"✓";font-size:21px;font-weight:900;line-height:1}
@keyframes hf-cart-spin{to{transform:rotate(360deg)}}
.product-card__image>.badge,.product-card__discount{position:absolute;z-index:2;top:var(--hf-space-3);padding:5px 9px;border-radius:var(--hf-radius-full);font-size:11px;font-weight:900}.product-card__image>.badge{left:var(--hf-space-3)}.product-card__discount{right:var(--hf-space-3);background:var(--hf-surface);box-shadow:var(--hf-shadow-xs);color:var(--hf-promo-ink)}.badge--sale{background:var(--hf-accent-light);color:var(--hf-accent-ink)}.badge--best{background:var(--hf-brand-900);color:var(--hf-on-brand)}.badge--featured{background:var(--hf-surface-alt);color:var(--hf-brand-900)}
.availability-chip{display:inline-flex;width:fit-content;max-width:100%;min-height:24px;align-items:center;gap:6px;margin-top:auto;padding:4px 8px;border-radius:var(--hf-radius-full);font-size:11px;font-weight:800;line-height:1.3}.availability-chip:before{width:7px;height:7px;flex:0 0 7px;border-radius:50%;content:""}.availability-chip--local{background:var(--hf-success-bg);color:var(--hf-success)}.availability-chip--local:before{background:var(--hf-success)}.availability-chip--supplier{background:var(--hf-info-bg);color:var(--hf-info)}.availability-chip--supplier:before{background:var(--hf-info)}.availability-chip--none{background:var(--hf-warning-bg);color:var(--hf-warning)}.availability-chip--none:before{background:var(--hf-warning)}
.availability-contact-card{display:inline-flex;min-height:44px;flex-direction:column;align-items:flex-end;justify-content:center;gap:2px;color:var(--hf-brand-900);font-weight:800;text-align:right}.availability-contact-card small{color:var(--hf-muted);font-weight:700}.availability-contact-card:focus-visible{outline:3px solid var(--hf-accent);outline-offset:3px}
.catalog-results--list .product-grid{grid-template-columns:minmax(0,1fr);gap:var(--hf-space-3)}
.catalog-results--list .product-card{grid-template-columns:152px minmax(0,1fr) 160px;grid-template-rows:minmax(160px,auto)}
.catalog-results--list .product-card__image{width:152px;height:100%;aspect-ratio:auto;border-right:1px solid var(--hf-line)}
.catalog-results--list .product-card__body{justify-content:center;padding:var(--hf-space-4) var(--hf-space-5)}
.catalog-results--list .product-card h3{min-height:0;margin-block:5px 7px;font-size:17px;-webkit-line-clamp:2}
.catalog-results--list .product-card__meta{display:block}
.catalog-results--list .product-card__desc{margin-bottom:var(--hf-space-2);-webkit-line-clamp:1}
.catalog-results--list .product-card__bottom{align-self:stretch;flex-direction:column;align-items:stretch;justify-content:center;padding:var(--hf-space-4);border-left:1px solid var(--hf-line);text-align:right}
.catalog-results--list .add-cart{width:100%;min-width:0;padding-inline:10px;font-size:13px}.catalog-results--list .add-cart__label{position:static;width:auto;height:auto;overflow:visible;clip:auto}
@media(hover:hover) and (pointer:fine){.product-card:hover{border-color:var(--hf-line-strong);box-shadow:var(--hf-shadow-sm);transform:translateY(-2px)}.product-card:hover .product-card__image>img[data-product-image]{transform:scale(1.025)}.add-cart:not(:disabled):hover{border-color:rgba(56,43,4,.18);background:var(--hf-accent-light);box-shadow:0 9px 20px rgba(180,132,0,.24),inset 0 1px rgba(255,255,255,.38);transform:translateY(-2px)}}
@media(max-width:1100px){.product-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.catalog-results--list .product-card{grid-template-columns:136px minmax(0,1fr) 138px;grid-template-rows:minmax(156px,auto)}.catalog-results--list .product-card__image{width:136px}.catalog-results--list .product-card__body{padding-inline:var(--hf-space-4)}}
@media(max-width:860px){.product-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:480px){.catalog-results--grid .product-grid,.storefront-collection__grid{grid-template-columns:minmax(0,1fr)}.storefront-collection__grid>.product-card{max-width:none}.product-card h3{min-height:calc(1.35em * 2);-webkit-line-clamp:2}}
@media(max-width:699px){.catalog-results--list .product-card{grid-template-columns:96px minmax(0,1fr);grid-template-rows:auto auto;min-height:156px}.catalog-results--list .product-card__image{grid-row:1/3;width:96px;height:100%}.catalog-results--list .product-card__image>img[data-product-image]{padding:8px}.catalog-results--list .product-card__body{padding:12px 12px 5px}.catalog-results--list .product-card__category{font-size:11px}.catalog-results--list .product-card h3{margin-block:3px 6px;font-size:14px;line-height:1.3}.catalog-results--list .product-card__meta,.catalog-results--list .product-card__desc{display:none}.catalog-results--list .availability-chip{font-size:10px}.catalog-results--list .product-card__bottom{flex-direction:row;align-items:center;justify-content:space-between;gap:8px;padding:5px 12px 12px;border-left:0;text-align:left}.catalog-results--list .price-wrap strong{font-size:17px}.catalog-results--list .add-cart{width:auto;min-width:112px;padding-inline:10px}.product-grid .product-card .add-cart:not(.add-cart--product){width:46px;min-width:46px;height:46px;padding:0}.product-grid .product-card .add-cart:not(.add-cart--product) .add-cart__label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.catalog-results--list .product-card .add-cart{width:auto;min-width:112px;padding-inline:10px}.catalog-results--list .product-card .add-cart .add-cart__label{position:static;width:auto;height:auto;overflow:visible;clip:auto}.catalog-results--list .availability-contact-card{align-items:flex-end;width:auto;text-align:right;font-size:11px}}
@media(max-width:420px){.product-card__body{padding-inline:12px}.product-card__bottom{padding-inline:12px}.product-card h3{font-size:14px}.product-card__desc{display:none}.price-wrap strong{font-size:17px}}
@media(max-width:480px){.catalog-results--grid .product-card .add-cart,.storefront-collection__grid .product-card .add-cart{width:auto;min-width:118px;padding-inline:13px}.catalog-results--grid .product-card .add-cart .add-cart__label,.storefront-collection__grid .product-card .add-cart .add-cart__label{position:static;width:auto;height:auto;overflow:visible;clip:auto}}
@media(prefers-reduced-motion:reduce){.product-card,.product-card__image>img[data-product-image],.add-cart{transition-duration:0ms}.add-cart.is-loading .add-cart__icon:after{animation:none}}

/* UI/UX v7 product-card finish — product cards remain owned by this file. */
.product-grid{align-items:stretch}
.product-card{height:100%;border-color:#d2dfd8;background:#fff;box-shadow:0 7px 20px rgba(6,45,34,.055)}
.product-card:focus-within{border-color:#91ad9d;box-shadow:0 0 0 3px rgba(229,181,45,.24),0 12px 28px rgba(6,45,34,.1)}
.catalog-results--grid .product-card__image{height:clamp(220px,18vw,280px);aspect-ratio:auto;background:#f8faf9}
.product-card__image>img[data-product-image]{display:block;width:auto;height:auto;max-width:100%;max-height:100%;object-fit:contain;object-position:center}
.product-card__body{min-height:178px}
.product-card__category{min-height:1.35em}
.product-card__bottom{min-height:76px;margin-top:auto}
.add-cart{border-radius:13px}
.catalog-results--list .product-card{height:214px;min-height:214px;grid-template-columns:184px minmax(0,1fr) 164px;grid-template-rows:214px}
.catalog-results--list .product-card__image{width:184px;height:214px;max-height:214px;background:#f8faf9}
.catalog-results--list .product-card__body{min-height:0;overflow:hidden}
.catalog-results--list .product-card__bottom{min-height:0}
@media(hover:hover) and (pointer:fine){.product-card:hover{border-color:#9eb4a8;box-shadow:0 11px 26px rgba(6,45,34,.1);transform:translateY(-2px)}.product-card:hover .product-card__image>img[data-product-image]{transform:scale(1.015)}}
@media(max-width:1100px) and (min-width:700px){.catalog-results--list .product-card{height:200px;min-height:200px;grid-template-columns:170px minmax(0,1fr) 150px;grid-template-rows:200px}.catalog-results--list .product-card__image{width:170px;height:200px;max-height:200px}}
@media(max-width:699px){.catalog-results--list .product-card{height:176px;min-height:176px;grid-template-columns:108px minmax(0,1fr);grid-template-rows:auto auto}.catalog-results--list .product-card__image{width:108px;height:176px;max-height:176px}.catalog-results--list .product-card__body{min-height:0}}
@media(max-width:480px){.catalog-results--grid .product-card__image{height:min(82vw,320px)}}

/* Toolbar katalogu: informacja, wyszukiwanie, sortowanie, widok. */
.shop-toolbar{display:grid;grid-template-columns:minmax(150px,auto) minmax(260px,1fr) minmax(170px,210px) auto;align-items:center;gap:var(--hf-space-3);margin-bottom:var(--hf-space-4);padding:var(--hf-space-3);border:1px solid var(--hf-line);border-radius:var(--hf-radius-lg);background:var(--hf-surface)}
.shop-toolbar>p{min-width:0;margin:0;color:var(--hf-muted);font-size:14px;white-space:nowrap}.shop-toolbar>p strong{color:var(--hf-ink)}
.catalog-toolbar-search{display:grid;min-width:0;gap:3px}.catalog-toolbar-search__field{position:relative;display:flex;align-items:center;min-width:0}.catalog-toolbar-search__field>svg{position:absolute;left:13px;width:18px;height:18px;fill:none;stroke:var(--hf-muted);stroke-width:2;stroke-linecap:round;stroke-linejoin:round;pointer-events:none}.catalog-toolbar-search__field>input{width:100%;min-width:0;height:44px;padding:0 46px 0 42px;border:1px solid var(--hf-line);border-radius:var(--hf-radius-md);background:var(--hf-surface-soft);color:var(--hf-ink);font:inherit;outline:0;transition:border-color var(--hf-duration-fast),box-shadow var(--hf-duration-fast),background var(--hf-duration-fast)}.catalog-toolbar-search__field>input:focus{border-color:var(--hf-brand-700);background:var(--hf-surface);box-shadow:0 0 0 3px rgba(230,182,46,.45)}.catalog-toolbar-search__field>button{position:absolute;right:0;display:grid;width:44px;height:44px;padding:0;border:0;border-radius:var(--hf-radius-sm);background:transparent;color:var(--hf-muted);font-size:21px;line-height:1;cursor:pointer;place-items:center}.catalog-toolbar-search__field>button[hidden]{display:none}.catalog-toolbar-search__hint{padding-left:2px;color:var(--hf-muted);font-size:10px;line-height:1.2}.catalog-toolbar-sort{display:block;min-width:0}.catalog-toolbar-sort label{display:block}.catalog-toolbar-sort .select{width:100%;min-width:0;height:44px}body.catalog-loading .catalog-toolbar-search__field:after{position:absolute;right:48px;width:13px;height:13px;border:2px solid var(--hf-line);border-top-color:var(--hf-brand-700);border-radius:50%;content:"";animation:hfCatalogSpin .7s linear infinite}@keyframes hfCatalogSpin{to{transform:rotate(360deg)}}
.catalog-view-switch{display:inline-flex;align-items:center;gap:4px;padding:3px;border:1px solid var(--hf-line);border-radius:var(--hf-radius-md);background:var(--hf-surface-soft)}
.catalog-view-switch__button{display:inline-flex;min-width:44px;min-height:44px;align-items:center;justify-content:center;gap:7px;padding:8px 10px;border-radius:9px;color:var(--hf-muted);font-size:12px;font-weight:800}
.catalog-view-switch__button svg{width:18px;height:18px;fill:currentColor}.catalog-view-switch__button.is-active{background:var(--hf-brand-900);color:var(--hf-on-brand)}.catalog-view-switch__button:focus-visible{outline:3px solid var(--hf-accent);outline-offset:2px}
@media(hover:hover){.catalog-view-switch__button:not(.is-active):hover,.catalog-toolbar-search__field>button:hover{background:var(--hf-surface-alt);color:var(--hf-brand-900)}}
@media(max-width:980px){.shop-toolbar{grid-template-columns:minmax(0,1fr) 190px auto}.shop-toolbar>p{grid-column:1/-1;white-space:normal}.catalog-toolbar-search{grid-column:1}.catalog-toolbar-sort{grid-column:2}.catalog-view-switch{grid-column:3}}
@media(max-width:699px){.shop-toolbar{grid-template-columns:minmax(0,1fr) auto;gap:10px}.shop-toolbar>p,.catalog-toolbar-search{grid-column:1/-1}.catalog-toolbar-sort{grid-column:1}.catalog-view-switch{grid-column:2}.catalog-view-switch__button span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.catalog-toolbar-search__hint{display:none}}

/* Produkt, koszyk i checkout korzystają z tych samych powierzchni i stanów. */
.product-gallery{overflow:visible;border-radius:var(--hf-radius-lg)}
.product-gallery__main{position:relative;display:grid;width:100%;min-height:360px;padding:var(--hf-space-4);overflow:hidden;border:0;border-radius:var(--hf-radius-lg) var(--hf-radius-lg) 0 0;background:var(--hf-surface-soft);place-items:center}
.product-gallery__main img{width:100%;height:min(540px,55vw);aspect-ratio:auto;object-fit:contain}.product-gallery__main span{position:absolute;right:var(--hf-space-3);bottom:var(--hf-space-3);padding:7px 10px;border-radius:var(--hf-radius-full);background:rgba(8,40,30,.88);color:#fff;font-size:12px;font-weight:800}.product-gallery__main:focus-visible{outline:3px solid var(--hf-accent);outline-offset:3px}
.product-gallery__thumbs{display:flex;gap:var(--hf-space-2);padding:var(--hf-space-3);overflow-x:auto;border-top:1px solid var(--hf-line)}.product-gallery__thumb{display:grid;width:68px;min-width:68px;height:68px;padding:5px;border:1px solid var(--hf-line);border-radius:var(--hf-radius-sm);background:var(--hf-surface);place-items:center}.product-gallery__thumb img{width:100%;height:100%;aspect-ratio:auto;object-fit:contain}.product-gallery__thumb.is-active{border-color:var(--hf-brand-700);box-shadow:0 0 0 2px var(--hf-brand-soft)}.product-gallery__thumb:focus-visible{outline:3px solid var(--hf-accent);outline-offset:2px}
.product-gallery-dialog{width:min(980px,calc(100vw - 32px));max-width:none;height:min(820px,calc(100dvh - 32px));padding:52px 20px 20px;border:1px solid var(--hf-line);border-radius:var(--hf-radius-lg);background:var(--hf-surface)}.product-gallery-dialog::backdrop{background:var(--hf-overlay);backdrop-filter:blur(3px)}.product-gallery-dialog>button{position:absolute;top:8px;right:8px;width:44px;height:44px;border:0;border-radius:var(--hf-radius-md);background:var(--hf-surface-alt);color:var(--hf-brand-900);font-size:28px}.product-gallery-dialog>button:focus-visible{outline:3px solid var(--hf-accent);outline-offset:2px}.product-gallery-dialog>img{width:100%;height:100%;object-fit:contain}
.buy-row{display:grid;grid-template-columns:88px minmax(0,1fr);gap:var(--hf-space-3);margin-top:var(--hf-space-4)}.buy-row .qty-input{min-height:48px}.buy-row .btn{min-height:48px}.buy-row .add-cart--product{width:100%;min-width:0;height:48px;padding-inline:20px;font-size:15px}.buy-row .add-cart__label{position:static;width:auto;height:auto;overflow:visible;clip:auto;white-space:nowrap}.buy-row .add-cart__icon{width:22px;height:22px}
.benefit-list div{min-height:28px;align-items:flex-start}.product-description{display:grid;gap:var(--hf-space-5);margin-top:var(--hf-space-6)}.product-description section{padding:var(--hf-space-5);border:1px solid var(--hf-line);border-radius:var(--hf-radius-lg);background:var(--hf-surface)}.product-description section h2{margin-top:0}.product-attributes{display:grid;margin:0}.product-attributes>div{display:grid;grid-template-columns:minmax(120px,.8fr) minmax(0,1.2fr);gap:var(--hf-space-4);padding:11px 12px;border-radius:var(--hf-radius-sm)}.product-attributes>div:nth-child(odd){background:var(--hf-surface-soft)}.product-attributes dt{color:var(--hf-muted);font-weight:700}.product-attributes dd{margin:0;color:var(--hf-ink);font-weight:750}
.cart-item img{object-fit:contain}.remove-btn{min-width:44px;min-height:44px;padding:8px 12px;border:1px solid var(--hf-line);border-radius:var(--hf-radius-sm);background:var(--hf-surface);color:var(--hf-danger);font-weight:750}.remove-btn:focus-visible{outline:3px solid var(--hf-accent);outline-offset:2px}.cart-checkout-cta{display:flex;align-items:center;justify-content:space-between;gap:var(--hf-space-3)}.cart-checkout-cta strong{white-space:nowrap}
.checkout-hero{padding-block:24px 20px}.checkout-hero h1{font-size:clamp(32px,4vw,48px)}.checkout-steps{display:flex;align-items:center;gap:8px;margin:0 0 var(--hf-space-4);padding:0;list-style:none;color:var(--hf-muted);font-size:13px;font-weight:750}.checkout-steps li,.checkout-steps a{display:inline-flex;align-items:center;gap:7px}.checkout-steps li:not(:last-child):after{margin-left:8px;color:var(--hf-line);content:"→"}.checkout-steps span{display:grid;width:30px;height:30px;border:1px solid var(--hf-line);border-radius:50%;background:var(--hf-surface);place-items:center}.checkout-steps .is-complete{color:var(--hf-brand-700)}.checkout-steps .is-complete span{border-color:var(--hf-success);background:var(--hf-success-bg);color:var(--hf-success)}.checkout-steps .is-current{color:var(--hf-ink)}.checkout-steps .is-current span{border-color:var(--hf-brand-900);background:var(--hf-brand-900);color:#fff}
.radio-card label{min-height:64px}.radio-card input:focus-visible+label{outline:3px solid var(--hf-accent);outline-offset:3px}.radio-card input:checked+label:after{display:inline-block;margin-top:7px;color:var(--hf-brand-700);font-size:12px;font-weight:850;content:"✓ Wybrano"}
.checkout-summary{padding:0;overflow:hidden}.checkout-summary>summary{display:flex;min-height:64px;align-items:center;justify-content:space-between;gap:var(--hf-space-3);padding:18px 22px;list-style:none;color:var(--hf-brand-900);font-size:20px;font-weight:850;cursor:pointer}.checkout-summary>summary::-webkit-details-marker{display:none}.checkout-summary>summary:after{color:var(--hf-muted);font-size:18px;content:"+"}.checkout-summary[open]>summary:after{content:"−"}.checkout-summary>summary>strong{margin-left:auto;font-size:18px}.checkout-summary__body{padding:0 22px 22px;border-top:1px solid var(--hf-line)}.checkout-submit{min-height:52px;width:100%}
@media(min-width:861px){.checkout-summary>summary{pointer-events:none}.checkout-summary>summary:after{display:none}}
@media(max-width:860px){.cart-checkout-cta{position:sticky;bottom:12px;z-index:10;box-shadow:var(--hf-shadow-sm)}.checkout-summary{position:sticky;top:84px;z-index:20}.checkout-submit{position:sticky;bottom:10px;z-index:15;box-shadow:0 8px 24px rgba(8,40,30,.2)}.product-gallery__main{min-height:300px}.product-gallery__main img{height:min(500px,72vw)}}
@media(max-width:560px){.product-gallery__main{min-height:260px;padding:10px}.product-gallery__main img{height:78vw}.product-gallery__main span{font-size:11px}.buy-row{grid-template-columns:78px minmax(0,1fr)}.product-attributes>div{grid-template-columns:1fr;gap:2px}.checkout-steps{gap:4px;font-size:11px}.checkout-steps li,.checkout-steps a{gap:4px}.checkout-steps li:not(:last-child):after{margin-left:3px}.checkout-steps span{width:26px;height:26px}.checkout-summary{top:76px}}
.guide-article__flow .guide-article__cover{float:none;width:100%;max-width:900px;margin:0 auto var(--hf-space-8)}.guide-article__flow .guide-content{max-width:74ch;margin-inline:auto;padding:0;font-size:18px;line-height:1.78}.guide-content h2,.guide-content h3{scroll-margin-top:120px;color:var(--hf-brand-900);line-height:1.2}.guide-content img{border-radius:var(--hf-radius-lg)}
.page-section-nav{position:sticky;top:116px;z-index:20;display:flex;gap:6px;margin:-14px 0 var(--hf-space-8);padding:6px;border:1px solid var(--hf-line);border-radius:var(--hf-radius-md);background:var(--hf-surface-glass);box-shadow:var(--hf-shadow-xs);overflow-x:auto}.page-section-nav a{display:inline-flex;min-height:44px;align-items:center;padding:8px 12px;border-radius:9px;color:var(--hf-brand-900);font-size:13px;font-weight:800;white-space:nowrap}.page-section-nav a:focus-visible{outline:3px solid var(--hf-accent);outline-offset:2px}@media(hover:hover){.page-section-nav a:hover{background:var(--hf-surface-alt)}}.legal-content>p{max-width:78ch}.info-card-list{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}.info-card{background:var(--hf-surface-soft)}
@media(max-width:860px){.page-section-nav{top:76px}.guide-article__flow .guide-content{font-size:17px}}

.footer-payment-provider{display:inline-flex;align-items:center;gap:10px;margin-top:14px;text-decoration:none}.footer-payment-provider small{color:inherit;opacity:.8}.footer-payment-provider img{width:118px;height:auto}
.contact-map-consent{display:grid;place-items:center;padding:28px;text-align:center;background:var(--surface,#fff);border:1px solid var(--line)}.contact-map-consent p{margin:10px 0 16px}.contact-form-notice{margin-bottom:18px}.contact-form-privacy{margin:14px 0;font-size:.9rem}
.feat-cat-card__icon img{width:28px;height:28px;object-fit:contain;filter:invert(1)}.order-success-icon{font-size:56px}.cart-item__unit-price{display:block;color:var(--muted)}.free-shipping-progress__native{display:block;width:100%;height:8px;border:0;border-radius:999px;overflow:hidden;background:#d4eadb;accent-color:#18883e}.free-shipping-progress__native::-webkit-progress-bar{background:#d4eadb}.free-shipping-progress__native::-webkit-progress-value{background:linear-gradient(90deg,#22a256,#18883e)}.free-shipping-progress__native::-moz-progress-bar{background:linear-gradient(90deg,#22a256,#18883e)}.info-card-list{display:grid;gap:14px;margin:18px 0 28px}.info-card{padding:18px;border:1px solid var(--line);border-radius:16px}.info-card h3{margin-top:0}.legal-version-notice{margin-top:28px}.legal-separator{margin:34px 0;border:0;border-top:1px solid var(--line)}.legal-anchor{scroll-margin-top:110px}.legal-form-template{background:#fff}.category-depth-0{--category-depth:0}.category-depth-1{--category-depth:1}.category-depth-2{--category-depth:2}.category-depth-3{--category-depth:3}
