/**
 * Cart & Checkout redesign — Poster Bazaar
 *
 * Overrides WoodMart defaults for cart and checkout pages.
 * Uses PB design tokens: Hanken Grotesk / Libre Caslon Text,
 * sage green #8f9779, accent #d4a59a, 5px radius, 42px inputs.
 */

/* ─── Design tokens ──────────────────────────────────────────────────── */
:root {
  --pb-primary:       #8f9779;
  --pb-primary-dark:  #6b705c;
  --pb-primary-light: #c5cbb4;
  --pb-accent:        #d4a59a;
  --pb-text:          #4c4c4c;
  --pb-heading:       #2a2a2a;
  --pb-muted:         #767676;
  --pb-white:         #ffffff;
  --pb-surface:       #f7f7f7;
  --pb-surface-2:     #f1f1f1;
  --pb-surface-warm:  #faf6ef;
  --pb-cocoa:         #6d4d2c;
  --pb-cocoa-bg:      #ebe0d2;
  --pb-border:        rgba(0,0,0,0.10);
  --pb-border-strong: rgba(0,0,0,0.20);
  --pb-success-bg:    #e8f5e9;
  --pb-success:       #2e7d32;
  --pb-error:         #c62828;
  --pb-radius:        5px;
  --pb-shadow:        0 1px 4px rgba(0,0,0,0.08);
  --pb-font-serif:    'Libre Caslon Text', Georgia, serif;
  --pb-font-sans:     'Hanken Grotesk', 'Segoe UI', sans-serif;
}

/* ═══════════════════════════════════════════════════════════════════════
   CART PAGE
   ═══════════════════════════════════════════════════════════════════════ */

/* ── Layout ──────────────────────────────────────────────────────────── */
.woocommerce-cart .pb-cart-layout {
  display: grid;
  grid-template-columns: 1fr 340px;
  gap: 40px;
  align-items: start;
  max-width: 1000px;
  margin: 0 auto;
  padding: 0 0 48px;
}
.woocommerce-cart .pb-continue-shopping-top,
.error404 .pb-continue-shopping-top {
  display: flex;
  width: 100%;
  max-width: 1000px;
  margin: 16px auto 8px;
  justify-content: flex-start;
}

/* Remove WoodMart's default cart wrapper styles */
.woocommerce-cart .cart-content-wrapper {
  display: contents;
}

/* ── Cart items ──────────────────────────────────────────────────────── */
.pb-cart-items {
  display: flex;
  flex-direction: column;
}

.pb-cart-item {
  display: grid;
  grid-template-columns: 90px 1fr auto;
  gap: 16px;
  align-items: start;
  padding: 20px 0;
  border-bottom: 1px solid var(--pb-border);
}
.pb-cart-items > .pb-cart-group:first-child > .pb-cart-item:first-child {
  padding-top: 0;
}

/* Thumbnail */
.pb-cart-item-img {
  width: 90px;
}
.pb-cart-item-img img {
  width: 90px;
  height: 120px;
  object-fit: cover;
  border-radius: var(--pb-radius);
  border: 1px solid var(--pb-border);
}
.pb-cart-item-img a {
  display: block;
  line-height: 0;
}

/* Info */
.pb-cart-item-info {
  min-width: 0;
}
.pb-cart-item-name {
  font-size: 14px;
  font-weight: 600;
  color: var(--pb-heading);
  line-height: 1.4;
  margin-bottom: 4px;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.pb-cart-item-name a {
  color: inherit;
  text-decoration: none;
}
.pb-cart-item-name a:hover {
  text-decoration: underline;
}
.pb-cart-item-size {
  font-size: 13px;
  color: var(--pb-muted);
  margin-bottom: 10px;
}
.pb-cart-item-meta,
.pb-cart-item-meta .variation {
  font-size: 14px;
  color: var(--pb-muted);
  margin-bottom: 10px;
}
.pb-cart-item-meta dt,
.pb-cart-item-meta dd {
  display: inline;
  margin: 0;
  font-weight: 400;
}
.pb-cart-item-meta dt::after {
  content: ': ';
}
.pb-cart-item-meta dl {
  margin: 0;
}

.pb-cart-item-qty-inline {
  color: var(--pb-muted);
}
.pb-cart-item-qty-inline:not(:first-child)::before {
  content: ' · ';
  margin: 0 2px;
}

/* ── Frame add-on group ─────────────────────────────────────────────────
   Group is a logical container only — no background, no border. Singleton
   posters and bundled posters share the same row rhythm. The frame block
   below carries all the visual weight as an indented warm tile with a
   cocoa left accent. */
.pb-cart-group {
  background: transparent;
  border: none;
  padding: 0;
  margin: 0;
}
.pb-cart-group .pb-cart-item {
  border-bottom: none;
}

/* "Z RAMĄ" badge — cocoa. Always rendered on its own line, below size+qty,
   so wrap behaviour is identical across viewport widths (otherwise long
   product names made the inline placement jump to a new line unpredictably). */
.pb-frame-badge-wrap {
  margin: 4px 0 4px;
}
.pb-frame-badge {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  background: var(--pb-cocoa-bg);
  color: var(--pb-cocoa);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  padding: 3px 8px 3px 6px;
  border-radius: 999px;
  line-height: 1.2;
  white-space: nowrap;
}
.pb-frame-badge svg {
  width: 13px;
  height: 13px;
  flex-shrink: 0;
}

/* Frame block — indented warm tile with cocoa left accent, sits below
   the parent row. The indent + accent visually nest it under the parent
   without making the whole bundle look like a separate "product type". */
.pb-frame-block {
  background: var(--pb-surface-warm);
  border: 1px solid var(--pb-border);
  border-left: 3px solid var(--pb-cocoa);
  border-radius: 0 var(--pb-radius) var(--pb-radius) 0;
  padding: 10px 12px;
  margin: 0 0 14px 24px;
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 4px 8px;
}
.pb-frame-name {
  font-size: 14px;
  font-weight: 600;
  color: var(--pb-heading);
  margin: 0;
}
.pb-frame-price {
  font-size: 14px;
  font-weight: 600;
  color: var(--pb-heading);
  margin-left: auto;
}
.pb-frame-included {
  flex-basis: 100%;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 13px;
  color: var(--pb-success);
  font-weight: 500;
  margin-top: 2px;
}
.pb-frame-included svg {
  width: 15px;
  height: 15px;
  flex-shrink: 0;
}

/* Actions row */
.pb-cart-item-actions {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-top: 10px;
}

/* Qty input — override WoodMart's quantity styles */
.pb-qty-wrap .quantity {
  display: flex !important;
  align-items: center;
  border: 1px solid var(--pb-border);
  border-radius: var(--pb-radius);
  overflow: hidden;
  width: auto !important;
}
.pb-qty-wrap .quantity input.qty {
  width: 40px !important;
  height: 34px;
  border: none;
  border-left: 1px solid var(--pb-border);
  border-right: 1px solid var(--pb-border);
  text-align: center;
  font-size: 14px;
  font-family: var(--pb-font-sans);
  color: var(--pb-heading);
  font-weight: 600;
  padding: 0;
  margin: 0;
  -moz-appearance: textfield;
  background: var(--pb-white);
}
.pb-qty-wrap .quantity input.qty::-webkit-inner-spin-button,
.pb-qty-wrap .quantity input.qty::-webkit-outer-spin-button {
  -webkit-appearance: none;
  margin: 0;
}
/* WoodMart +/- buttons */
.pb-qty-wrap .quantity .woodmart-plus,
.pb-qty-wrap .quantity .woodmart-minus,
.pb-qty-wrap .quantity .plus,
.pb-qty-wrap .quantity .minus {
  width: 34px;
  height: 34px;
  border: none !important;
  background: var(--pb-surface) !important;
  color: var(--pb-text) !important;
  font-size: 16px;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  line-height: 1;
}
.pb-qty-wrap .quantity .woodmart-plus:hover,
.pb-qty-wrap .quantity .woodmart-minus:hover,
.pb-qty-wrap .quantity .plus:hover,
.pb-qty-wrap .quantity .minus:hover {
  background: var(--pb-surface-2) !important;
}

/* Remove button */
.pb-cart-item-remove {
  display: flex;
  align-items: center;
  color: var(--pb-muted);
  padding: 4px;
  border: none;
  background: none;
  cursor: pointer;
  text-decoration: none;
}
.pb-cart-item-remove:hover {
  color: var(--pb-error);
}

/* Price */
.pb-cart-item-price {
  font-size: 16px;
  font-weight: 700;
  color: var(--pb-heading);
  white-space: nowrap;
  text-align: right;
  padding-top: 2px;
}

/* Hidden actions (update cart button + coupon — cart form needs these) */
.pb-cart-actions {
  display: none;
}

/* Continue shopping link */
.pb-continue-shopping {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin-top: 20px;
  font-size: 14px;
  color: var(--pb-primary-dark);
  text-decoration: none;
  font-weight: 500;
}
.pb-continue-shopping:hover {
  text-decoration: underline;
  color: var(--pb-primary-dark);
}

/* ── Cart summary / totals sidebar ───────────────────────────────────── */
.pb-cart-summary-col .cart-collaterals {
  position: sticky;
  top: 20px;
  float: none;
  width: 100%;
}
.pb-cart-summary-col .cart_totals.pb-card {
  background: var(--pb-white) !important;
  border: 1px solid var(--pb-border) !important;
  border-radius: var(--pb-radius) !important;
  padding: 24px !important;
  float: none;
  width: 100%;
  margin: 0;
}
.pb-cart-summary-col .cart_totals .pb-card-title,
.pb-cart-summary-col .cart_totals h2.pb-card-title {
  font-family: var(--pb-font-serif) !important;
  font-size: 20px !important;
  font-weight: 400 !important;
  color: var(--pb-heading) !important;
  text-transform: none !important;
  letter-spacing: 0 !important;
  margin: 0 0 20px !important;
  padding: 0 !important;
  border: none !important;
  text-align: left !important;
}

/* Shipping value — stacked amount + method label, mirrors checkout */
.pb-cart-summary-col .pb-summary-shipping-value {
  text-align: right;
}
.pb-cart-summary-col .pb-cart-shipping-amount {
  display: block;
  font-weight: 500;
  color: var(--pb-text);
}
.pb-cart-summary-col .pb-cart-shipping-method {
  display: block;
  font-size: 13px;
  color: var(--pb-muted);
  font-weight: 400;
  margin-top: 2px;
}
.pb-cart-summary-col .pb-cart-shipping-pending {
  font-size: 14px;
  color: var(--pb-muted);
  font-weight: 400;
}

/* Proceed to checkout button */
.pb-cart-summary-col .wc-proceed-to-checkout {
  padding: 0 !important;
  margin: 20px 0 0 !important;
}
.pb-cart-summary-col .wc-proceed-to-checkout a.checkout-button {
  margin: 0 !important;
}
.pb-cart-summary-col .cart_totals.pb-card > *:last-child {
  margin-bottom: 0 !important;
  padding-bottom: 0 !important;
}
/* Hide WC's inline shipping calculator link/form rendered inside
   wc-proceed-to-checkout — we calculate shipping at checkout. */
.pb-cart-summary-col .wc-proceed-to-checkout > *:not(.checkout-button):not(.button) {
  display: none !important;
}
.pb-cart-summary-col .wc-proceed-to-checkout a.checkout-button {
  display: block;
  width: 100%;
  height: 50px;
  background: var(--pb-primary) !important;
  color: var(--pb-white) !important;
  border: none !important;
  border-radius: var(--pb-radius);
  font-size: 16px;
  font-weight: 700;
  font-family: var(--pb-font-sans);
  text-align: center;
  line-height: 50px;
  padding: 0;
  text-decoration: none;
  transition: background 0.2s;
}
.pb-cart-summary-col .wc-proceed-to-checkout a.checkout-button:hover {
  background: var(--pb-primary-dark) !important;
}

/* ── Free shipping progress bar ──────────────────────────────────────── */
.pb-free-shipping-wrap {
  margin-bottom: 16px;
}
.pb-free-shipping-msg {
  font-size: 14px;
  color: var(--pb-muted);
  text-align: center;
  margin-bottom: 8px;
  line-height: 1.3;
}
.pb-free-shipping-msg strong {
  color: var(--pb-primary-dark);
  font-weight: 600;
}
.pb-free-shipping-done {
  color: var(--pb-success);
  font-weight: 600;
}
.pb-free-shipping-bar {
  background: var(--pb-surface-2);
  border-radius: 100px;
  height: 6px;
  overflow: hidden;
}
.pb-free-shipping-fill {
  height: 100%;
  background: var(--pb-primary);
  border-radius: 100px;
  transition: width 0.3s;
}

/* Free-shipping progress bar — styled site-wide in pb-mini-cart.css. Cart-only
   margin override here since the bar sits inside the items column. */
.wd-shipping-progress-bar { margin: 0 0 16px !important; }

/* ── Coupon in cart summary ──────────────────────────────────────────── */
.pb-cart-summary-col .coupon.pb-coupon-form-cart {
  display: flex;
  gap: 8px;
  margin-top: 16px;
}
.pb-cart-summary-col .coupon input.input-text {
  flex: 1;
  height: 38px;
  border: 1px solid var(--pb-border);
  border-radius: var(--pb-radius);
  padding: 0 12px;
  font-size: 14px;
  font-family: var(--pb-font-sans);
  background: var(--pb-white);
}
.pb-cart-summary-col .coupon button {
  height: 38px;
  padding: 0 14px;
  border: 1px solid var(--pb-primary);
  border-radius: var(--pb-radius);
  background: transparent;
  color: var(--pb-primary-dark);
  font-weight: 600;
  font-size: 14px;
  cursor: pointer;
  font-family: var(--pb-font-sans);
}

/* Hide cross-sells on cart page (keep it clean) */
.woocommerce-cart .cross-sells {
  display: none;
}

/* ═══════════════════════════════════════════════════════════════════════
   CHECKOUT PAGE
   ═══════════════════════════════════════════════════════════════════════ */

/* ── Background (full-width gray) ────────────────────────────────────── */
.woocommerce-checkout,
.woocommerce-checkout .main-page-wrapper,
.woocommerce-checkout .site-content,
.woocommerce-checkout .content-area,
.woocommerce-checkout .site-content > .container,
.woocommerce-checkout .site-content .row,
.woocommerce-checkout .site-main,
.woocommerce-checkout #main,
.woocommerce-checkout #content {
  background: var(--pb-surface) !important;
}
.woocommerce-checkout .site-content > .container,
.woocommerce-checkout .site-content > .container > .row {
  max-width: none;
  padding-left: 0;
  padding-right: 0;
  margin-left: 0;
  margin-right: 0;
  width: 100%;
}

/* ── Checkout header (logo + back link) ──────────────────────────────── */
.pb-checkout-header {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  padding: 14px 0 8px;
  margin: 0 auto;
  max-width: 1000px;
}
.pb-checkout-header .pb-back-to-cart {
  justify-self: start;
}
.pb-checkout-header .pb-checkout-logo {
  justify-self: center;
}
.pb-checkout-header-spacer {
  display: block;
}
.pb-checkout-logo {
  display: inline-flex;
  align-items: center;
  text-decoration: none;
}
.pb-checkout-logo img,
.pb-checkout-logo .custom-logo {
  max-height: 40px;
  width: auto;
  display: block;
}
.pb-checkout-logo-text {
  font-family: var(--pb-font-serif, var(--pb-font-sans));
  font-size: 22px;
  font-weight: 600;
  color: var(--pb-heading);
  letter-spacing: 0.02em;
}
.pb-back-to-cart {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-family: var(--pb-font-sans);
  font-size: 14px;
  font-weight: 500;
  color: var(--pb-primary-dark);
  text-decoration: none;
  transition: color 0.15s;
}
.pb-back-to-cart:hover {
  text-decoration: underline;
  color: var(--pb-primary-dark);
}
@media (max-width: 600px) {
  .pb-checkout-header { padding: 10px 0 6px; }
  .pb-checkout-logo img,
  .pb-checkout-logo .custom-logo { max-height: 32px; }
  .pb-checkout-logo-text { font-size: 18px; }
}

/* ── Progress bar ────────────────────────────────────────────────────── */
.pb-progress-bar {
  display: flex;
  justify-content: center;
  align-items: center;
  padding: 20px 16px;
  max-width: 500px;
  margin: 0 auto 24px;
}
.pb-progress-step {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 14px;
  font-weight: 600;
  color: var(--pb-muted);
}
.pb-progress-step.pb-active {
  color: var(--pb-heading);
}
.pb-progress-step.pb-done {
  color: var(--pb-primary);
}
.pb-step-num {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 14px;
  font-weight: 700;
  border: 2px solid var(--pb-border);
  background: var(--pb-white);
  flex-shrink: 0;
}
.pb-progress-step.pb-active .pb-step-num {
  background: var(--pb-primary);
  border-color: var(--pb-primary);
  color: var(--pb-white);
}
.pb-progress-step.pb-done .pb-step-num {
  background: var(--pb-primary);
  border-color: var(--pb-primary);
  color: var(--pb-white);
}
.pb-progress-divider {
  width: 40px;
  height: 2px;
  background: var(--pb-border);
  margin: 0 12px;
  flex-shrink: 0;
}
.pb-progress-divider.pb-done {
  background: var(--pb-primary);
}

/* ── Layout ──────────────────────────────────────────────────────────── */
.pb-checkout-layout {
  display: grid;
  grid-template-columns: 1fr 340px;
  gap: 24px;
  align-items: start;
  max-width: 1000px;
  margin: 0 auto;
  padding: 0 0 48px;
}

/* ── Card ────────────────────────────────────────────────────────────── */
.pb-card {
  background: var(--pb-white);
  border-radius: var(--pb-radius);
  border: 1px solid var(--pb-border);
  padding: 24px;
  margin-bottom: 16px;
}
.pb-card-title {
  font-family: var(--pb-font-serif) !important;
  font-size: 20px !important;
  font-weight: 400 !important;
  color: var(--pb-heading);
  margin: 0 0 20px !important;
  padding: 0 !important;
  border: none !important;
}

/* ── Checkout form fields ────────────────────────────────────────────── */
/* Hide default WC billing heading — our card already has a heading */
.pb-checkout .woocommerce-billing-fields > h3 {
  display: none;
}
.pb-checkout .pb-hidden,
.pb-checkout #billing_country_field {
  display: none !important;
}

/* Override WC/WoodMart field styling */
.pb-checkout .woocommerce-billing-fields__field-wrapper,
.pb-checkout .woocommerce-shipping-fields__field-wrapper {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
}

.pb-checkout .form-row {
  margin: 0 !important;
  padding: 0 !important;
  float: none !important;
  width: 100% !important;
}
.pb-checkout .form-row-wide {
  grid-column: 1 / -1;
}
.pb-checkout .form-row-first {
  grid-column: 1;
}
.pb-checkout .form-row-last {
  grid-column: 2;
}

.pb-checkout .form-row label {
  font-size: 14px;
  font-weight: 600;
  color: var(--pb-heading);
  margin-bottom: 4px;
  display: block;
}
.pb-checkout .form-row label .optional {
  font-weight: 400;
  color: var(--pb-muted);
}
.pb-checkout .form-row .woocommerce-input-wrapper {
  display: block;
}

.pb-checkout .form-row input.input-text,
.pb-checkout .form-row textarea,
.pb-checkout .form-row select,
.pb-checkout .form-row .select2-container .select2-selection--single {
  height: 42px;
  border: 1px solid var(--pb-border) !important;
  border-radius: var(--pb-radius) !important;
  padding: 0 12px;
  font-size: 15px;
  font-family: var(--pb-font-sans);
  color: var(--pb-text);
  background: var(--pb-surface) !important;
  width: 100%;
  transition: border-color 0.2s, background 0.2s;
  box-shadow: none !important;
}
.pb-checkout .form-row input.input-text:focus,
.pb-checkout .form-row textarea:focus,
.pb-checkout .form-row select:focus,
.pb-checkout .form-row .select2-container--focus .select2-selection--single {
  background: var(--pb-white) !important;
}
.pb-checkout .form-row textarea {
  height: auto;
  padding: 10px 12px;
  min-height: 80px;
}
.pb-checkout .form-row input.input-text:focus,
.pb-checkout .form-row textarea:focus,
.pb-checkout .form-row select:focus {
  outline: none;
  border-color: var(--pb-primary) !important;
  box-shadow: 0 0 0 2px rgba(143,151,121,0.15) !important;
}
.pb-checkout .form-row input.input-text::placeholder {
  color: var(--pb-muted);
  opacity: 0.6;
}

/* Select2 overrides */
.pb-checkout .select2-container .select2-selection--single {
  display: flex !important;
  align-items: center;
}
.pb-checkout .select2-container .select2-selection__rendered {
  line-height: 42px;
  padding: 0 12px;
  color: var(--pb-text);
}
.pb-checkout .select2-container .select2-selection__arrow {
  height: 42px;
  right: 8px;
}

/* Hide country field (PL-only store) */
.pb-checkout .pb-hidden {
  display: none !important;
}

/* "Create account" toggle (kept inside its own pb-account-card) */
.pb-checkout .woocommerce-account-fields {
  margin-top: 10px;
}
.pb-checkout .woocommerce-account-fields .create-account,
.pb-checkout .woocommerce-account-fields .form-row {
  margin: 0 !important;
  padding: 6px 0 !important;
  font-size: 14px !important;
  font-weight: 500 !important;
  font-family: var(--pb-font-sans) !important;
  color: var(--pb-text) !important;
  border: 0 !important;
}
.pb-checkout .woocommerce-account-fields .create-account label,
.pb-checkout .woocommerce-account-fields .form-row label {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  cursor: pointer;
  margin: 0;
  font-size: 14px;
  font-weight: 500;
  color: var(--pb-text);
}
.pb-checkout .woocommerce-account-fields input[type="checkbox"] {
  width: 16px;
  height: 16px;
  accent-color: var(--pb-primary);
  margin: 0;
  flex-shrink: 0;
}

/* "Dodaj fakturę VAT" + "Dodaj inny adres do wysyłki" — text-button toggles
   matching the "+ Dodaj uwagi do zamówienia" pattern. */
.pb-checkout .pb-invoice-block,
.pb-checkout .woocommerce-shipping-fields,
.pb-checkout .woocommerce-additional-fields {
  margin: 12px 0 0 !important;
  padding: 0 !important;
  border: 0 !important;
}
.pb-checkout .woocommerce-shipping-fields h3 {
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
}
.pb-checkout .woocommerce-shipping-fields h3 label.checkbox,
.pb-checkout .pb-invoice-toggle {
  display: inline-block !important;
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  padding: 0 !important;
  margin: 0 !important;
  font-family: var(--pb-font-sans) !important;
  font-size: 14px !important;
  font-weight: 500 !important;
  color: var(--pb-primary-dark) !important;
  cursor: pointer;
  text-transform: none !important;
  letter-spacing: 0 !important;
  line-height: 1.4 !important;
  text-decoration: none !important;
}
.pb-checkout .woocommerce-shipping-fields h3 label.checkbox:hover,
.pb-checkout .woocommerce-shipping-fields h3 label.checkbox:focus,
.pb-checkout .pb-invoice-toggle:hover,
.pb-checkout .pb-invoice-toggle:focus-within {
  color: var(--pb-heading) !important;
  text-decoration: underline !important;
}
.pb-checkout .woocommerce-shipping-fields h3 input[type="checkbox"],
.pb-checkout .pb-invoice-toggle input[type="checkbox"] {
  position: absolute !important;
  opacity: 0 !important;
  pointer-events: none !important;
  width: 0 !important;
  height: 0 !important;
  margin: 0 !important;
}
/* "+" / "−" prefix inline so the underline runs across the whole label. */
.pb-checkout .woocommerce-shipping-fields h3 label.checkbox::before,
.pb-checkout .pb-invoice-toggle::before {
  content: "+ ";
  white-space: pre;
}
.pb-checkout .woocommerce-shipping-fields h3 label.checkbox:has(input:checked)::before,
.pb-checkout .pb-invoice-toggle:has(input:checked)::before {
  content: "− ";
}

.pb-checkout .pb-invoice-fields {
  margin-top: 16px;
}
.pb-checkout .pb-invoice-fields[hidden] {
  display: none;
}

/* Unify the gap between every "+ ..." toggle and the section it reveals. */
.pb-checkout .woocommerce-shipping-fields .shipping_address {
  margin: 16px 0 0 !important;
  padding: 0 !important;
}
.pb-checkout .woocommerce-shipping-fields .shipping_address > h3 {
  display: none !important;
}

/* Order notes wrapper */
.pb-checkout .woocommerce-additional-fields {
  margin-top: 10px;
}
.pb-checkout #order_comments_field > label,
.pb-checkout .notes > label {
  display: none;
}

/* Standalone "Create account" card placed before order_review */
.pb-checkout .pb-account-card {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 14px;
  align-items: center;
  padding: 16px 18px;
  margin-bottom: 18px;
  background: var(--pb-white);
}
.pb-checkout .pb-account-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: var(--pb-surface);
  color: var(--pb-primary);
  flex-shrink: 0;
}
.pb-checkout .pb-account-body {
  font-size: 14px;
  color: var(--pb-muted);
  line-height: 1.45;
}
.pb-checkout .pb-account-card .woocommerce-account-fields {
  grid-column: 1 / -1;
  margin: 0;
  padding-top: 4px;
  border-top: 1px solid var(--pb-border);
}
.pb-checkout .pb-account-card .woocommerce-account-fields .form-row,
.pb-checkout .pb-account-card .woocommerce-account-fields .create-account {
  padding: 8px 0 0 !important;
}
.pb-checkout .woocommerce-additional-fields h3 {
  display: none; /* "Additional information" heading not needed */
}

/* Notes toggle — same visual rhythm as VAT + shipping-address toggles */
.pb-checkout .pb-notes-toggle {
  display: inline-block !important;
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  padding: 0 !important;
  margin: 0 !important;
  min-height: 0 !important;
  height: auto !important;
  font-family: var(--pb-font-sans) !important;
  font-size: 14px !important;
  font-weight: 500 !important;
  color: var(--pb-primary-dark) !important;
  cursor: pointer;
  text-align: left;
  text-transform: none !important;
  letter-spacing: 0 !important;
  line-height: 1.4 !important;
  text-decoration: none !important;
}
.pb-checkout .pb-notes-toggle::before {
  content: "+ ";
  white-space: pre;
}
.pb-checkout .pb-notes-toggle[aria-expanded="true"]::before {
  content: "− ";
}
.pb-checkout .pb-notes-toggle:hover,
.pb-checkout .pb-notes-toggle:focus,
.pb-checkout .pb-notes-toggle:active {
  background: transparent !important;
  color: var(--pb-heading) !important;
  text-decoration: underline !important;
  border: none !important;
  box-shadow: none !important;
  outline: none;
}
.pb-checkout .pb-notes-collapsed {
  display: none;
}
.pb-checkout .pb-notes-collapsed.pb-notes-open {
  display: block;
  margin-top: 16px !important;
}

/* ── Shipping methods in checkout ────────────────────────────────────── */
.pb-shipping-methods {
  margin-bottom: 16px;
}
.pb-shipping-title {
  font-family: var(--pb-font-sans) !important;
  font-size: 15px !important;
  font-weight: 600 !important;
  color: var(--pb-heading);
  margin: 0 0 12px !important;
}

/* Restyle the shipping <table><tr><td> into cards */
.pb-shipping-methods .woocommerce-shipping-totals {
  display: block;
}
.pb-shipping-methods .woocommerce-shipping-totals th {
  display: none; /* Hide "Wysyłka" header — we have our own */
}
.pb-shipping-methods .woocommerce-shipping-totals td {
  display: block;
  padding: 0;
}
.pb-shipping-methods .woocommerce-shipping-methods {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 10px;
  --li-mb: 0;
}
.pb-shipping-methods .woocommerce-shipping-methods li {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px;
  padding: 14px 16px;
  border: 1px solid var(--pb-border);
  border-radius: var(--pb-radius);
  cursor: pointer;
  transition: border-color 0.2s, background 0.2s;
}
.pb-shipping-methods .woocommerce-shipping-methods li:hover {
  border-color: var(--pb-border-strong);
}
.pb-shipping-methods .woocommerce-shipping-methods li:has(input:checked) {
  border-color: var(--pb-primary);
  background: rgba(143,151,121,0.04);
}
.pb-shipping-methods .woocommerce-shipping-methods input[type="radio"] {
  width: 18px;
  height: 18px;
  accent-color: var(--pb-primary);
  margin: 0 !important;
  padding: 0;
  flex-shrink: 0;
  float: none !important;
  position: static;
}
.pb-shipping-methods .woocommerce-shipping-methods label {
  flex: 1;
  font-size: 14px;
  font-weight: 600;
  color: var(--pb-heading);
  cursor: pointer;
  margin: 0;
}
.pb-shipping-methods .woocommerce-shipping-methods .amount {
  font-weight: 700;
}

/* InPost picker button (rendered by plugin after shipping rate) */
.pb-shipping-methods .inpost-geowidget-btn,
.pb-shipping-methods .easypack-widget-button {
  margin-top: 8px;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 10px 16px;
  background: #ffcb04;
  color: #1a1a1a;
  border: none;
  border-radius: var(--pb-radius);
  font-size: 14px;
  font-weight: 600;
  cursor: pointer;
}

/* Inline shipping method logo (rendered after each rate by InPost plugin) */
.pb-shipping-methods .inpost_pl-shipping-method-meta-wrap {
  display: inline-flex;
  align-items: center;
  margin-left: auto;
  gap: 8px;
}
.pb-shipping-methods .inpost_pl_shipping_meta img {
  width: 70px;
  height: 24px;
  object-fit: contain;
  object-position: right center;
  display: block;
}

/* InPost parcel locker picker (rendered into <table class="pb-shipping-extras">) */
.pb-shipping-extras {
  width: 100%;
  margin: 0;
  border-collapse: collapse;
  border: none;
}
/* When JS moved the picker inside a Paczkomaty <li>, place it on a full-width row below */
.pb-shipping-methods .woocommerce-shipping-methods li > .pb-shipping-extras {
  flex-basis: 100%;
  width: 100%;
  margin-top: 12px;
}
.pb-shipping-extras tr,
.pb-shipping-extras td,
.pb-shipping-extras th {
  border: none;
  background: transparent;
  padding: 0;
}
.pb-shipping-extras .easypack-parcel-machine-label {
  display: none;
}
.pb-shipping-extras .easypack_show_geowidget {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 10px 18px;
  background: #ffcb04;
  color: #1a1a1a !important;
  border: none;
  border-radius: var(--pb-radius);
  font-family: var(--pb-font-sans);
  font-size: 14px;
  font-weight: 600;
  cursor: pointer;
  text-decoration: none;
  margin: 0;
}
.pb-shipping-extras .easypack_show_geowidget:hover {
  background: #f0bf00;
}
.pb-shipping-extras #selected-parcel-machine {
  display: block;
  margin: 12px 0 0;
  padding: 12px 14px;
  background: var(--pb-surface);
  border: 1px solid var(--pb-border);
  border-radius: var(--pb-radius);
  font-size: 14px;
  line-height: 1.5;
  color: var(--pb-text);
  min-width: 0;
}
.pb-shipping-extras #selected-parcel-machine.hidden-paczkomat-data {
  display: none;
}
.pb-shipping-extras .easypack-visible-point-header {
  display: block;
  font-weight: 600;
  font-style: normal;
  color: var(--pb-heading);
  background: transparent;
  margin: 0 0 6px;
  padding: 0;
}
.pb-shipping-extras .easypack-visible-point-description {
  display: block;
  color: var(--pb-text);
}

/* ── Sidebar coupon (cart + checkout) ───────────────────────────────── */
.pb-checkout-summary-col .pb-coupon-wrap,
.pb-cart-summary-col .pb-coupon-wrap {
  margin: 14px 0 0;
  padding: 0;
  border-top: none;
}
.pb-checkout-summary-col .pb-coupon-wrap:has(.pb-coupon-row:not([hidden])),
.pb-cart-summary-col .pb-coupon-wrap:has(.pb-coupon-row:not([hidden])) {
  padding-bottom: 0;
}
.pb-checkout-summary-col .pb-coupon-toggle,
.pb-cart-summary-col .pb-coupon-toggle {
  width: 100%;
  display: flex !important;
  justify-content: space-between;
  align-items: center;
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  padding: 0 !important;
  margin: 0 !important;
  min-height: 0 !important;
  height: auto !important;
  font-family: var(--pb-font-sans) !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  color: var(--pb-primary-dark) !important;
  cursor: pointer;
  text-align: left;
  text-transform: none !important;
  letter-spacing: 0 !important;
}
.pb-checkout-summary-col .pb-coupon-toggle:hover,
.pb-checkout-summary-col .pb-coupon-toggle:focus,
.pb-checkout-summary-col .pb-coupon-toggle:active,
.pb-cart-summary-col .pb-coupon-toggle:hover,
.pb-cart-summary-col .pb-coupon-toggle:focus,
.pb-cart-summary-col .pb-coupon-toggle:active {
  background: transparent !important;
  color: var(--pb-heading) !important;
  border: none !important;
  box-shadow: none !important;
  outline: none;
}
.pb-checkout-summary-col .pb-coupon-toggle[aria-expanded="true"] .pb-coupon-chev,
.pb-cart-summary-col .pb-coupon-toggle[aria-expanded="true"] .pb-coupon-chev {
  transform: rotate(180deg);
}
.pb-checkout-summary-col .pb-coupon-chev,
.pb-cart-summary-col .pb-coupon-chev {
  transition: transform 0.2s;
  flex-shrink: 0;
}
.pb-checkout-summary-col .pb-coupon-row,
.pb-cart-summary-col .pb-coupon-row {
  display: flex;
  gap: 6px;
  margin: 10px 0 14px;
}
.pb-checkout-summary-col .pb-coupon-row[hidden],
.pb-cart-summary-col .pb-coupon-row[hidden] {
  display: none;
}
.pb-checkout-summary-col .pb-coupon-input,
.pb-checkout-summary-col .pb-coupon-btn,
.pb-cart-summary-col .pb-coupon-input,
.pb-cart-summary-col .pb-coupon-btn {
  height: 40px !important;
  min-height: 40px !important;
  max-height: 40px !important;
  font-family: var(--pb-font-sans);
  font-size: 14px;
  border-radius: var(--pb-radius);
  box-sizing: border-box;
  line-height: 1;
  vertical-align: middle;
}
.pb-checkout-summary-col .pb-coupon-btn,
.pb-cart-summary-col .pb-coupon-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin: 0;
}
.pb-checkout-summary-col .pb-coupon-input,
.pb-cart-summary-col .pb-coupon-input {
  flex: 1;
  padding: 0 12px;
  border: 1px solid var(--pb-border-strong);
  background: var(--pb-white);
}
.pb-checkout-summary-col .pb-coupon-input:focus,
.pb-cart-summary-col .pb-coupon-input:focus {
  outline: none;
  border-color: var(--pb-primary);
}
.pb-checkout-summary-col .pb-coupon-btn,
.pb-cart-summary-col .pb-coupon-btn {
  padding: 0 16px;
  background: var(--pb-primary);
  color: var(--pb-white);
  border: 1px solid var(--pb-primary);
  font-weight: 600;
  cursor: pointer;
  white-space: nowrap;
  text-transform: none;
  letter-spacing: 0;
}
.pb-checkout-summary-col .pb-coupon-btn:hover,
.pb-cart-summary-col .pb-coupon-btn:hover {
  background: var(--pb-primary-dark);
  border-color: var(--pb-primary-dark);
}
.pb-checkout-summary-col .pb-coupon-btn.is-loading,
.pb-cart-summary-col .pb-coupon-btn.is-loading {
  color: transparent;
  pointer-events: none;
  position: relative;
}
.pb-checkout-summary-col .pb-coupon-btn.is-loading::after,
.pb-cart-summary-col .pb-coupon-btn.is-loading::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 16px;
  height: 16px;
  margin: -8px 0 0 -8px;
  border: 2px solid var(--pb-white);
  border-top-color: transparent;
  border-radius: 50%;
  animation: pb-coupon-spin 0.7s linear infinite;
}
@keyframes pb-coupon-spin {
  to { transform: rotate(360deg); }
}

/* ── Payment methods ─────────────────────────────────────────────────── */
/* #payment IS the card (no extra wrapper — would duplicate via AJAX fragment) */
.pb-checkout #payment {
  background: var(--pb-white) !important;
  border: 1px solid var(--pb-border) !important;
  border-radius: var(--pb-radius) !important;
  padding: 24px !important;
  margin: 0 0 16px;
}
.pb-checkout #payment::before {
  content: "Metoda płatności";
  display: block;
  font-family: var(--pb-font-serif);
  font-size: 20px;
  font-weight: 400;
  color: var(--pb-heading);
  margin: 0 0 20px;
}
.pb-checkout #payment .payment_methods {
  list-style: none;
  margin: 0 !important;
  padding: 0 !important;
  border: none !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 10px !important;
  --li-mb: 0;
}
.pb-checkout #payment .payment_methods li {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px;
  border: 1px solid var(--pb-border);
  border-radius: var(--pb-radius);
  margin: 0 !important;
  padding: 14px 16px !important;
  cursor: pointer;
  transition: border-color 0.2s, background 0.2s;
  background: transparent;
}
.pb-checkout #payment .payment_methods li:hover {
  border-color: var(--pb-border-strong);
}
.pb-checkout #payment .payment_methods li:has(input:checked) {
  border-color: var(--pb-primary);
  background: rgba(143,151,121,0.04);
}
.pb-checkout #payment .payment_methods li input[type="radio"] {
  width: 18px;
  height: 18px;
  accent-color: var(--pb-primary);
  margin: 0 !important;
  padding: 0;
  flex-shrink: 0;
  float: none !important;
  position: static;
}
.pb-checkout #payment .payment_methods li label {
  display: flex !important;
  align-items: center;
  flex-wrap: wrap;
  gap: 10px;
  flex: 1;
  min-width: 0;
  padding: 0 !important;
  margin: 0 !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  color: var(--pb-heading) !important;
  cursor: pointer;
  line-height: 1.3;
  text-transform: none !important;
}
.pb-checkout #payment .payment_methods li label img {
  width: 70px !important;
  height: 24px !important;
  object-fit: contain;
  object-position: right center;
  margin: 0 0 0 auto !important;
  padding: 0;
  display: inline-block;
}
.pb-checkout #payment .payment_methods li label br {
  display: none;
}
.pb-checkout #payment .payment_methods li .payment_box {
  flex-basis: 100%;
  width: 100%;
  margin: 6px 0 0 !important;
  padding: 0 !important;
  background: transparent !important;
  border: none !important;
  border-radius: 0 !important;
  font-size: 14px;
  color: var(--pb-muted);
  box-shadow: none !important;
}
.pb-checkout #payment .payment_methods li .payment_box::before {
  display: none !important; /* Hide the WC arrow */
}
.pb-checkout #payment .payment_methods li .payment_box * {
  box-sizing: border-box;
}
.pb-checkout #payment .payment_methods li .payment_box input[type="text"],
.pb-checkout #payment .payment_methods li .payment_box input[type="tel"] {
  width: 100%;
  height: 42px;
  padding: 0 12px;
  border: 1px solid var(--pb-border-strong);
  border-radius: var(--pb-radius);
  background: var(--pb-white);
  font-family: var(--pb-font-sans);
  font-size: 14px;
}
.pb-checkout #payment .payment_methods li .payment_box input:focus {
  outline: none;
  border-color: var(--pb-primary);
}

/* Flatten Tpay's nested card UI (e.g. BLIK Level 0 panel) so it inherits
   the PB look: no extra border/shadow, sage accents instead of blue. */
.pb-checkout #payment .payment_methods li .payment_box > div,
.pb-checkout #payment .payment_methods li .payment_box [class*="tpay"],
.pb-checkout #payment .payment_methods li .payment_box [class*="blik"] {
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  border-radius: 0 !important;
  padding: 0 !important;
  margin: 0 !important;
  color: var(--pb-text) !important;
}
.pb-checkout #payment .payment_methods li .payment_box h1,
.pb-checkout #payment .payment_methods li .payment_box h2,
.pb-checkout #payment .payment_methods li .payment_box h3,
.pb-checkout #payment .payment_methods li .payment_box h4,
.pb-checkout #payment .payment_methods li .payment_box .tpay-channel-name,
.pb-checkout #payment .payment_methods li .payment_box [class*="title"],
.pb-checkout #payment .payment_methods li .payment_box [class*="header"] {
  font-family: var(--pb-font-sans) !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  color: var(--pb-heading) !important;
  text-transform: none !important;
  letter-spacing: 0 !important;
  margin: 0 0 8px !important;
  padding: 0 !important;
  text-align: left !important;
}
.pb-checkout #payment .payment_methods li .payment_box label {
  display: block;
  font-family: var(--pb-font-sans);
  font-size: 13px;
  font-weight: 500;
  color: var(--pb-muted);
  margin: 0 0 6px;
  text-align: left !important;
}
/* Hide the redundant top row of Tpay's BLIK panel — it duplicates the
   "BLIK" label and tpay logo already shown on the radio row. */
.pb-checkout #payment .payment_methods li .payment_box .tpay_blik-payment-form .top,
.pb-checkout #payment .payment_methods li .payment_box .blik-label,
.pb-checkout #payment .payment_methods li .payment_box img[src*="tpay"] {
  display: none !important;
}
/* Strip Tpay's terms/agreement footer and the bare instruction headings
   ("Wybierz metodę płatności", "PEKAO Raty") from every payment box. */
.pb-checkout #payment .payment_methods li .payment_box .tpay-accept-conditions,
.pb-checkout #payment .payment_methods li .payment_box > p {
  display: none !important;
}
/* If a payment box has nothing left to show after stripping the footer,
   hide the box entirely so we don't render an empty gray slab.
   Also hide PEKAO installments box — the radio label is enough, the
   inner channel selector is redundant for a single-option method. */
.pb-checkout #payment .payment_methods li .payment_box:not(:has(.tpay-blik0)):not(:has(input[name="blik0"])),
.pb-checkout #payment .payment_methods li .payment_box.payment_method_pekaoinstallments {
  display: none !important;
}
/* Inline label + input: "Wpisz kod BLIK: [_______]" */
.pb-checkout #payment .payment_methods li .payment_box .tpay_blik-payment-form {
  display: block !important;
  text-align: left !important;
}
.pb-checkout #payment .payment_methods li .payment_box .tpay_blik-payment-form .bottom {
  display: flex !important;
  flex-direction: row !important;
  align-items: center !important;
  gap: 12px !important;
  margin: 0 !important;
  padding: 0 !important;
  width: auto !important;
  text-align: left !important;
}
.pb-checkout #payment .payment_methods li .payment_box .tpay_blik-payment-form .bottom > div {
  margin: 0 !important;
  white-space: nowrap;
}

/* BLIK label */
.pb-checkout #payment .payment_methods li .payment_box .tpay_blik-payment-form .bottom > div {
  font-family: var(--pb-font-sans) !important;
  font-size: 13px !important;
  font-weight: 500 !important;
  color: var(--pb-heading) !important;
  margin: 0 !important;
  letter-spacing: 0 !important;
}
/* BLIK input — inline next to label */
.pb-checkout #payment .payment_methods li .payment_box input[type="text"],
.pb-checkout #payment .payment_methods li .payment_box input[type="tel"] {
  max-width: 160px;
  height: 40px !important;
  padding: 0 12px !important;
  margin: 0 !important;
  text-align: left;
  font-family: var(--pb-font-sans) !important;
  font-size: 16px !important;
  font-weight: 500 !important;
  letter-spacing: 4px !important;
  color: var(--pb-heading) !important;
  background: var(--pb-white) !important;
  border: 1px solid var(--pb-border) !important;
  border-radius: var(--pb-radius) !important;
  transition: border-color 0.15s, box-shadow 0.15s;
}
.pb-checkout #payment .payment_methods li .payment_box input::placeholder {
  color: var(--pb-muted) !important;
  letter-spacing: 4px !important;
  font-weight: 400 !important;
}
.pb-checkout #payment .payment_methods li .payment_box input:focus {
  background: var(--pb-white) !important;
  border-color: var(--pb-primary) !important;
  box-shadow: 0 0 0 3px rgba(143, 151, 121, 0.15) !important;
  outline: none !important;
}
/* Terms link colour parity */
.pb-checkout #payment .payment_methods li .payment_box a {
  color: var(--pb-primary-dark);
  text-decoration: underline;
}
.pb-checkout #payment .payment_methods li .payment_box a:hover {
  color: var(--pb-primary);
}

/* Place order area */
.pb-checkout #payment .place-order {
  padding: 16px 0 0 !important;
  margin: 0;
}

/* Privacy policy text */
.pb-checkout .woocommerce-privacy-policy-text,
.pb-checkout .woocommerce-privacy-policy-text p {
  font-size: 14px !important;
  line-height: 1.5;
  color: var(--pb-muted);
  margin: 0 0 14px;
}
.pb-checkout .woocommerce-privacy-policy-text a {
  color: var(--pb-primary-dark);
  text-decoration: underline;
  text-underline-offset: 2px;
}

/* Terms checkbox */
.pb-checkout .woocommerce-terms-and-conditions-wrapper {
  margin-bottom: 16px;
}
.pb-checkout .woocommerce-terms-and-conditions-wrapper .form-row {
  display: flex !important;
  align-items: flex-start;
  gap: 8px;
}
.pb-checkout .woocommerce-terms-and-conditions-wrapper label {
  font-size: 14px;
  color: var(--pb-muted);
  line-height: 1.4;
  font-weight: 400 !important;
}
.pb-checkout .woocommerce-terms-and-conditions-wrapper a {
  color: var(--pb-primary-dark);
  text-decoration: underline;
  text-underline-offset: 2px;
}
.pb-checkout .woocommerce-terms-and-conditions-wrapper input[type="checkbox"] {
  width: 18px;
  height: 18px;
  accent-color: var(--pb-primary);
  flex-shrink: 0;
  margin-top: 1px;
}

/* Newsletter opt-in (sits right after terms wrapper) */
.pb-checkout .pb-newsletter-optin {
  display: flex !important;
  align-items: flex-start;
  gap: 8px;
  margin: 0 0 16px;
}
.pb-checkout .pb-newsletter-optin label {
  font-size: 14px;
  color: var(--pb-muted);
  line-height: 1.4;
  font-weight: 400 !important;
  display: flex;
  align-items: flex-start;
  gap: 8px;
  margin: 0;
}
.pb-checkout .pb-newsletter-optin input[type="checkbox"] {
  width: 18px;
  height: 18px;
  accent-color: var(--pb-primary);
  flex-shrink: 0;
  margin-top: 1px;
}

/* Submit button */
.pb-checkout #place_order {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  width: 100%;
  height: 50px;
  padding: 0 16px;
  background: var(--pb-primary) !important;
  color: var(--pb-white) !important;
  border: none !important;
  border-radius: var(--pb-radius) !important;
  font-size: 16px !important;
  font-weight: 700;
  font-family: var(--pb-font-sans);
  cursor: pointer;
  transition: background 0.2s;
}
.pb-checkout #place_order:hover {
  background: var(--pb-primary-dark) !important;
}
.pb-checkout #place_order .ph-lock-simple {
  font-size: 18px;
  line-height: 1;
}
.pb-checkout #place_order .pb-place-order-sep {
  font-weight: 900;
}
.pb-checkout #place_order .pb-place-order-total {
  font-weight: 700;
}
.pb-checkout #place_order .pb-place-order-total .woocommerce-Price-amount {
  color: inherit;
}

/* ── Trust badges (from pb-checkout-tweaks.php) ──────────────────────── */
.pb-trust-badges {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 12px 16px;
  padding: 14px 0 0;
  margin-top: 10px;
  font-size: 14px;
  color: var(--pb-muted);
  line-height: 1.4;
}

/* Size + qty meta line for summary items */
.pb-checkout-summary-col .pb-summary-item-meta {
  font-size: 13px;
  color: var(--pb-muted);
  margin-top: 2px;
}
.pb-checkout-summary-col .pb-summary-item-size + .pb-summary-item-qty::before {
  content: ' · ';
}

/* Help line — below the summary card, outside the box */
.pb-checkout-summary-col .pb-help-line-outside {
  text-align: center;
  font-size: 13px;
  color: var(--pb-muted);
  margin: 16px 0 0;
  padding: 0;
  border: none;
  line-height: 1.5;
}
.pb-checkout-summary-col .pb-help-line a {
  color: var(--pb-primary-dark);
  text-decoration: none;
  font-size: 14px;
}
.pb-checkout-summary-col .pb-help-line a:hover {
  text-decoration: underline;
}

/* ── Order summary sidebar ───────────────────────────────────────────── */
.pb-checkout-summary-col {
  position: sticky;
  top: 20px;
}

.pb-summary-heading {
  margin-bottom: 12px !important;
}

/* Mobile toggle (hidden on desktop) */
.pb-summary-toggle {
  display: none !important;
  width: 100%;
  background: var(--pb-white);
  border: 1px solid var(--pb-border);
  border-radius: var(--pb-radius);
  padding: 14px 16px;
  cursor: pointer;
  font-family: var(--pb-font-sans);
  font-size: 15px;
  font-weight: 600;
  color: var(--pb-heading);
  justify-content: space-between;
  align-items: center;
  margin-bottom: 12px;
}
.pb-summary-toggle-total {
  color: var(--pb-primary-dark);
  font-weight: 700;
}
.pb-summary-toggle svg {
  transition: transform 0.2s;
}
.pb-summary-toggle.pb-open svg {
  transform: rotate(180deg);
}

/* Summary items */
.pb-summary-items {
  margin-bottom: 12px;
}
.pb-summary-item {
  display: flex;
  gap: 12px;
  align-items: flex-start;
  padding: 10px 0;
}
.pb-summary-group + .pb-summary-group {
  border-top: 1px solid var(--pb-border);
}
/* Checkout summary — bundle group is now a logical container only. Frame
   block carries the visual weight as an indented warm tile, mirroring
   the cart page treatment but with tighter padding for the summary col. */
.pb-summary-group.pb-summary-group--bundle {
  background: transparent;
  border: none;
  padding: 0;
}
.pb-summary-group--bundle .pb-frame-block {
  margin: 0 0 10px 20px;
  padding: 8px 10px;
}
.pb-summary-group--bundle .pb-frame-name,
.pb-summary-group--bundle .pb-frame-price { font-size: 13px; }
.pb-summary-group--bundle .pb-frame-included { font-size: 12px; }
.pb-summary-item-img {
  width: 56px;
  flex-shrink: 0;
}
.pb-summary-item-img img {
  width: 56px;
  height: 72px;
  object-fit: cover;
  border-radius: 3px;
  border: 1px solid var(--pb-border);
}
.pb-summary-item-info {
  flex: 1;
  min-width: 0;
}
.pb-summary-item-name {
  font-size: 14px;
  font-weight: 600;
  color: var(--pb-heading);
  line-height: 1.4;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  text-overflow: ellipsis;
}
.pb-summary-item-meta {
  font-size: 14px;
  color: var(--pb-muted);
  margin-top: 2px;
}
.pb-summary-item-meta dt,
.pb-summary-item-meta dd {
  display: inline;
  margin: 0;
}
.pb-summary-item-meta dl {
  margin: 0;
}
.pb-summary-item-price {
  font-size: 14px;
  font-weight: 600;
  color: var(--pb-heading);
  white-space: nowrap;
  flex-shrink: 0;
}

/* Totals rows */
.pb-summary-totals {
  padding-top: 12px;
  border-top: 1px solid var(--pb-border);
}
.pb-summary-row {
  display: flex;
  justify-content: space-between;
  padding: 6px 0;
  font-size: 14px;
}
.pb-summary-label {
  color: var(--pb-muted);
}
.pb-summary-total {
  border-top: 2px solid var(--pb-heading);
  margin-top: 8px;
  padding-top: 12px;
  font-size: 16px;
  font-weight: 700;
  color: var(--pb-heading);
}
.pb-summary-total .pb-summary-label {
  color: var(--pb-heading);
}

.pb-muted {
  color: var(--pb-muted);
  font-size: 14px;
}

/* ── Notices ──────────────────────────────────────────────────────────── */
.pb-checkout .woocommerce-NoticeGroup,
.pb-checkout .woocommerce-error,
.pb-checkout .woocommerce-message,
.pb-checkout .woocommerce-info {
  max-width: 1000px;
  margin-left: auto;
  margin-right: auto;
}

/* Hide default WC coupon toggle at top */
.woocommerce-checkout .woocommerce-form-coupon-toggle {
  display: none;
}

/* Hide default login notice */
.woocommerce-checkout .woocommerce-form-login-toggle {
  display: none;
}

/* ── WoodMart overrides ──────────────────────────────────────────────── */
/* Remove WoodMart's default checkout styles that conflict */
.woocommerce-checkout .wd-checkout-coupon,
.woocommerce-checkout .wd-checkout-login {
  display: none;
}

/* Remove WoodMart checkout-specific wrapper padding */
.woocommerce-checkout .checkout-order-review {
  display: contents;
}

/* Ensure the card-payment section gets proper layout */
.pb-card-payment #order_review {
  display: block;
}

/* Hide WC's default review-order table header (we have our own summary) */
.pb-checkout .woocommerce-checkout-review-order-table {
  display: none;
}

/* ═══════════════════════════════════════════════════════════════════════
   MOBILE RESPONSIVE
   ═══════════════════════════════════════════════════════════════════════ */
@media (max-width: 767px) {
  /* ── Cart mobile ─────────────────────────────────────────────────── */
  .woocommerce-cart .pb-cart-layout {
    grid-template-columns: 1fr;
    gap: 20px;
    padding: 16px 0 40px;
  }

  .pb-cart-item {
    grid-template-columns: 72px 1fr auto;
    gap: 12px;
    padding: 16px 0;
  }
  .pb-cart-item-img {
    width: 72px;
    grid-row: 1 / span 2;
  }
  .pb-cart-item-img,
  .pb-cart-item-img img {
    width: 72px;
    height: 96px;
  }
  .pb-cart-item-info {
    grid-column: 2;
    grid-row: 1;
  }
  .pb-cart-item-price {
    grid-column: 3;
    grid-row: 1;
    text-align: right;
    padding-top: 0;
    font-size: 15px;
  }
  .pb-cart-item-actions {
    grid-column: 2 / span 2;
    grid-row: 2;
    margin-top: 4px;
  }
  /* Mobile — tighter frame block indent and padding */
  .pb-frame-block { padding: 8px 10px; margin: 0 0 10px 16px; }
  .pb-frame-name, .pb-frame-price { font-size: 13px; }
  .pb-frame-included { font-size: 12px; }
  .pb-frame-badge { font-size: 10px; padding: 2px 7px 2px 5px; }

  .pb-cart-summary-col .cart-collaterals {
    position: static;
  }

  .pb-cart-summary-col .cart-collaterals {
    position: static;
  }

  /* ── Checkout mobile ─────────────────────────────────────────────── */
  .pb-checkout-layout {
    grid-template-columns: 1fr;
    gap: 16px;
    padding: 0 0 40px;
  }

  .pb-checkout-summary-col {
    order: -1;
    position: static;
  }

  .pb-summary-toggle {
    display: none !important;
  }
  .pb-checkout-summary-col .pb-summary-heading {
    display: none; /* Hidden on mobile checkout, toggle takes over */
  }

  /* Cart: keep heading visible (no toggle on cart) */
  .woocommerce-cart .pb-summary-heading {
    display: block;
  }

  .pb-card {
    padding: 20px 16px;
  }

  .pb-checkout .woocommerce-billing-fields__field-wrapper,
  .pb-checkout .woocommerce-shipping-fields__field-wrapper {
    grid-template-columns: 1fr;
  }
  .pb-checkout .form-row-first,
  .pb-checkout .form-row-last {
    grid-column: 1;
  }

  /* Progress bar mobile — full width with labels (cart + checkout) */
  .pb-progress-bar {
    width: 100%;
    justify-content: space-between;
    margin: 8px 0 16px;
  }
  .pb-progress-divider {
    flex: 1;
    min-width: 0;
    margin: 0 6px;
  }
  .pb-step-label {
    font-size: 12px;
  }

  /* "Kontynuuj zakupy" at the very top */
  .pb-continue-shopping-top {
    margin: 4px 0 8px;
  }
}

@media (min-width: 768px) {
  /* Force summary visible on desktop even if toggled */
  .pb-summary-content {
    display: block !important;
  }
}


/* ═══════════════════════════════════════════════════════════════════════
   THANK-YOU PAGE
   ═══════════════════════════════════════════════════════════════════════ */

/* Hide WoodMart's default thank-you / order overview chrome inside our shell. */
.pb-thankyou .woocommerce-thankyou-order-received,
.pb-thankyou .woocommerce-order-overview,
.pb-thankyou .wd-order-extra-content {
  display: none !important;
}

/* Header without back link — center logo on confirmation. */
.pb-thankyou-header .pb-checkout-header-spacer {
  display: block;
}

/* Hero card */
.pb-thankyou-hero {
  text-align: center;
  padding: 32px 28px 28px;
}
.pb-thankyou-check {
  width: 72px;
  height: 72px;
  margin: 0 auto 16px;
  border-radius: 50%;
  background: var(--pb-primary);
  color: var(--pb-white);
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 6px 20px rgba(143, 151, 121, 0.35);
}
.pb-thankyou-title {
  font-family: var(--pb-font-serif);
  font-size: 28px;
  font-weight: 400;
  line-height: 1.2;
  color: var(--pb-heading);
  margin: 0 0 12px;
}
.pb-thankyou-lead {
  font-size: 15px;
  line-height: 1.5;
  color: var(--pb-text);
  margin: 0 auto 24px;
  max-width: 520px;
}
.pb-thankyou-lead strong {
  color: var(--pb-heading);
}

/* Stats grid inside hero — always 2x2 so labels never wrap awkwardly. */
.pb-thankyou-stats {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 16px 24px;
  padding-top: 20px;
  border-top: 1px solid var(--pb-border);
  text-align: left;
}
.pb-thankyou-stat {
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.pb-thankyou-stat-label {
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--pb-muted);
  font-weight: 500;
}
.pb-thankyou-stat-value {
  font-size: 15px;
  font-weight: 700;
  color: var(--pb-heading);
  line-height: 1.3;
}
.pb-thankyou-stat-value bdi { font-weight: 700; }

/* Payment-method block (Tpay BLIK confirmation, etc.) — strip the plugin's
   own chrome (blue title underline, fixed widths, large padding) so the Tpay
   block sits naturally inside our card. */
.pb-thankyou-payment-body > * { margin: 0; }
.pb-thankyou-payment-body p:not(:last-child) { margin-bottom: 12px; }

/* Hide Tpay's redundant heading + blue underline — our card has its own. */
.pb-thankyou-payment-body .title-wrapper,
.pb-thankyou-payment-body .page-title,
.pb-thankyou-payment-body .page-title-line,
.pb-thankyou-payment-body .section-divider {
  display: none !important;
}

/* Container: remove fixed min/max-width from the plugin so it fills our card. */
.pb-thankyou-payment-body .payment-section {
  display: block !important;
  max-width: none !important;
  min-width: 0 !important;
  padding: 0 !important;
  margin: 0 !important;
}
.pb-thankyou-payment-body .payments-container {
  margin-bottom: 0 !important;
}

/* BLIK pending option box — confirmation page only, so the radio + check
   icon are decorative and removed. We just show the channel name + logo. */
.pb-thankyou-payment-body .payment-option {
  border: 1px solid var(--pb-border) !important;
  border-radius: var(--pb-radius) !important;
  background: var(--pb-surface);
}
.pb-thankyou-payment-body input:checked + .payment-option {
  border: 1px solid var(--pb-primary) !important;
  background: var(--pb-white);
}
.pb-thankyou-payment-body .payment-option .radio-mark,
.pb-thankyou-payment-body .payment-option .check-ico {
  display: none !important;
}
.pb-thankyou-payment-body .payment-option .payment-label {
  padding: 14px 16px !important;
  gap: 10px;
}
.pb-thankyou-payment-body .payment-option .payment-title {
  font-family: var(--pb-font-sans);
  font-size: 14px !important;
  font-weight: 600 !important;
  color: var(--pb-heading);
  margin-right: 8px !important;
}

/* Tpay status panel: success / error confirmation. Replace the plugin's
   icon + green band + blue underline with our own filled sage circle and
   keep the layout in line with the rest of the cards. */
.pb-thankyou-payment-body .payment-confirmation-container {
  background: var(--pb-surface) !important;
  border: 1px solid var(--pb-border);
  border-radius: var(--pb-radius);
  padding: 22px 16px 18px;
  text-align: center;
  margin-top: 12px;
}
.pb-thankyou-payment-body .payment-confirmation-container::before {
  display: none !important;
}
.pb-thankyou-payment-body .payment-confirmation-container .icon-wrapper {
  position: relative;
  width: 44px;
  height: 44px;
  margin: 0 auto 12px !important;
  border-radius: 50%;
  background: var(--pb-primary);
  display: flex !important;
  align-items: center;
  justify-content: center;
  box-shadow: 0 4px 14px rgba(143, 151, 121, 0.3);
}
.pb-thankyou-payment-body .payment-confirmation-container.error .icon-wrapper {
  background: var(--pb-error);
  box-shadow: 0 4px 14px rgba(198, 40, 40, 0.25);
}
/* Hide the plugin's own image; render a clean white check via SVG mask. */
.pb-thankyou-payment-body .payment-confirmation-container .icon-wrapper > img,
.pb-thankyou-payment-body .payment-confirmation-container .icon-wrapper > svg {
  display: none !important;
}
.pb-thankyou-payment-body .payment-confirmation-container .icon-wrapper::after {
  content: "";
  width: 22px;
  height: 22px;
  background: #fff;
  -webkit-mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'><polyline points='20 6 9 17 4 12'/></svg>") center/contain no-repeat;
          mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'><polyline points='20 6 9 17 4 12'/></svg>") center/contain no-repeat;
}
.pb-thankyou-payment-body .payment-confirmation-container.error .icon-wrapper::after {
  -webkit-mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'><line x1='18' y1='6' x2='6' y2='18'/><line x1='6' y1='6' x2='18' y2='18'/></svg>") center/contain no-repeat;
          mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'><line x1='18' y1='6' x2='6' y2='18'/><line x1='6' y1='6' x2='18' y2='18'/></svg>") center/contain no-repeat;
}
.pb-thankyou-payment-body .payment-confirmation-container .message .title,
.pb-thankyou-payment-body .payment-confirmation-container .message .subtitle,
.pb-thankyou-payment-body .payment-confirmation-container .message p {
  font-family: var(--pb-font-sans) !important;
  font-size: 15px !important;
  line-height: 1.45 !important;
  color: var(--pb-heading);
}
.pb-thankyou-payment-body .payment-confirmation-container .message .title {
  font-weight: 600 !important;
  margin-bottom: 2px !important;
}
.pb-thankyou-payment-body .payment-confirmation-container .message .subtitle {
  font-size: 14px !important;
  font-weight: 400 !important;
  color: var(--pb-text);
}
.pb-thankyou-payment-body .payment-confirmation-container .underline {
  display: none !important;
}

/* BLIK code input: align with our 42px field style. */
.pb-thankyou-payment-body .blik-code-section {
  margin: 0 16px !important;
}
.pb-thankyou-payment-body .blik-input {
  border: 1px solid var(--pb-border-strong) !important;
  border-radius: var(--pb-radius) !important;
  height: 42px !important;
  font-family: var(--pb-font-sans) !important;
  color: var(--pb-heading) !important;
}
.pb-thankyou-payment-body .blik-input:focus-visible {
  border-color: var(--pb-primary) !important;
  box-shadow: 0 0 0 2px rgba(143, 151, 121, 0.18) !important;
}
.pb-thankyou-payment-body .pay-button.btn.blue {
  background: var(--pb-primary) !important;
  border-radius: var(--pb-radius) !important;
}
.pb-thankyou-payment-body .pay-button.btn.blue:hover {
  background: var(--pb-primary-dark) !important;
}

/* What happens next */
.pb-next-steps {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 16px;
  counter-reset: pb-next-steps;
}
.pb-next-steps li {
  display: grid;
  grid-template-columns: 36px 1fr;
  gap: 14px;
  align-items: start;
}
.pb-next-step-num {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: rgba(143, 151, 121, 0.15);
  color: var(--pb-primary-dark);
  font-weight: 700;
  font-size: 14px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.pb-next-steps strong {
  display: block;
  font-size: 15px;
  color: var(--pb-heading);
  margin-bottom: 2px;
}
.pb-next-steps p {
  margin: 0;
  font-size: 14px;
  color: var(--pb-text);
  line-height: 1.45;
}

/* Addresses */
.pb-thankyou-address-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 20px;
}
.pb-thankyou-address-title {
  font-family: var(--pb-font-sans);
  font-size: 12px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--pb-muted);
  margin: 0 0 8px;
}
.pb-thankyou-address address {
  font-style: normal;
  font-size: 14px;
  line-height: 1.5;
  color: var(--pb-heading);
  margin: 0 0 8px;
}
.pb-thankyou-address-meta {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 13px;
  color: var(--pb-muted);
  margin: 4px 0 0;
}
.pb-thankyou-address-meta i {
  font-size: 14px;
  color: var(--pb-primary-dark);
}

/* Customer note */
.pb-thankyou-note p {
  margin: 0;
  font-size: 14px;
  line-height: 1.5;
  color: var(--pb-text);
}

/* Action buttons (Wróć do sklepu / Moje zamówienia) — placed under the form
   column on desktop, pushed to the very bottom on mobile (after summary). */
.pb-thankyou-actions {
  grid-column: 1;
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin: 4px 0 0;
}
.pb-thankyou-actions .pb-btn-primary,
.pb-thankyou-actions .pb-btn-secondary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 46px;
  padding: 0 24px;
  border-radius: var(--pb-radius);
  font-family: var(--pb-font-sans);
  font-size: 14px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  text-decoration: none;
  transition: background 0.15s, color 0.15s, border-color 0.15s;
}
.pb-thankyou-actions .pb-btn-primary {
  background: var(--pb-primary);
  color: var(--pb-white);
  border: 1px solid var(--pb-primary);
}
.pb-thankyou-actions .pb-btn-primary:hover {
  background: var(--pb-primary-dark);
  border-color: var(--pb-primary-dark);
  color: var(--pb-white);
}
.pb-thankyou-actions .pb-btn-secondary {
  background: transparent;
  color: var(--pb-heading);
  border: 1px solid var(--pb-border-strong);
}
.pb-thankyou-actions .pb-btn-secondary:hover {
  border-color: var(--pb-heading);
  color: var(--pb-heading);
}

/* Summary count badge in card title */
.pb-summary-count {
  font-family: var(--pb-font-sans);
  font-size: 14px;
  font-weight: 500;
  color: var(--pb-muted);
  letter-spacing: 0;
  text-transform: none;
}

/* Sticky summary on the thank-you page */
@media (min-width: 992px) {
  .pb-thankyou-layout .pb-checkout-summary-col {
    position: sticky;
    top: 24px;
  }
}

/* Shipping row: method name appears under the "Wysyłka" label as a muted
   sublabel so the price stays cleanly right-aligned on its own line. */
.pb-summary-row-shipping {
  align-items: flex-start;
}
.pb-summary-row-shipping .pb-summary-label {
  display: flex;
  flex-direction: column;
  gap: 2px;
  flex: 1 1 auto;
  padding-right: 12px;
  min-width: 0;
}
.pb-summary-row-shipping .pb-summary-sublabel {
  font-size: 12px;
  color: var(--pb-muted);
  font-weight: 400;
  line-height: 1.3;
}
.pb-summary-row-shipping .pb-summary-value {
  flex-shrink: 0;
  white-space: nowrap;
}
.pb-summary-free {
  color: var(--pb-primary-dark);
  font-weight: 600;
}

/* "Metoda płatności" row sits under the total like a footnote. */
.pb-summary-row-payment {
  font-size: 13px;
  padding-top: 4px;
  color: var(--pb-muted);
}
.pb-summary-row-payment .pb-summary-label {
  color: var(--pb-muted);
}

/* Mobile: success message comes first; summary follows */
@media (max-width: 767px) {
  .pb-thankyou-hero {
    padding: 24px 18px 22px;
  }
  .pb-thankyou-title {
    font-size: 24px;
  }
  .pb-thankyou-actions .pb-btn-primary,
  .pb-thankyou-actions .pb-btn-secondary {
    flex: 1 1 auto;
  }
  .pb-thankyou-layout .pb-checkout-form-col {
    order: -1;
  }
  .pb-thankyou-layout .pb-checkout-summary-col {
    order: 0;
  }
  .pb-thankyou-layout .pb-thankyou-actions {
    order: 1;
  }
}

/* Instagram follow + UGC ask card */
.pb-thankyou-ig {
  display: flex;
  align-items: center;
  gap: 16px;
  text-decoration: none;
  color: inherit;
  transition: border-color 0.18s ease, box-shadow 0.18s ease, transform 0.18s ease;
}
.pb-thankyou-ig:hover,
.pb-thankyou-ig:focus-visible {
  border-color: var(--pb-primary);
  box-shadow: 0 4px 14px rgba(143, 151, 121, 0.18);
  text-decoration: none;
  color: inherit;
}
.pb-thankyou-ig-icon {
  flex: 0 0 auto;
  width: 48px;
  height: 48px;
  border-radius: 50%;
  background: var(--pb-primary);
  color: #fff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.pb-thankyou-ig-icon i {
  font-size: 28px;
  line-height: 1;
}
.pb-thankyou-ig-body {
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}
.pb-thankyou-ig-handle {
  font-family: var(--pb-font-serif);
  font-size: 17px;
  font-weight: 600;
  color: var(--pb-text);
}
.pb-thankyou-ig-text {
  font-size: 13.5px;
  color: var(--pb-text-muted, #6b6b6b);
  line-height: 1.45;
}
.pb-thankyou-ig-cta {
  flex: 0 0 auto;
  font-size: 13px;
  font-weight: 600;
  color: var(--pb-primary-dark);
  border: 1px solid var(--pb-primary);
  padding: 8px 14px;
  border-radius: var(--pb-radius);
  white-space: nowrap;
  transition: background 0.18s ease, color 0.18s ease;
}
.pb-thankyou-ig:hover .pb-thankyou-ig-cta,
.pb-thankyou-ig:focus-visible .pb-thankyou-ig-cta {
  background: var(--pb-primary);
  color: #fff;
}
@media (max-width: 480px) {
  .pb-thankyou-ig {
    flex-wrap: wrap;
  }
  .pb-thankyou-ig-cta {
    width: 100%;
    text-align: center;
  }
}

/* ════════════════════════════════════════════════════════════════════════
   EMPTY CART PAGE
   ════════════════════════════════════════════════════════════════════════ */
.pb-empty-cart {
  max-width: 1000px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  gap: 24px;
}

/* Hero */
.pb-empty-hero {
  text-align: center;
  padding: 40px 32px 36px;
  display: flex;
  flex-direction: column;
  align-items: center;
}
.pb-empty-illu {
  width: 88px;
  height: 88px;
  border-radius: 50%;
  background: rgba(143, 151, 121, 0.12);
  color: var(--pb-primary-dark);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 18px;
}
.pb-empty-illu i {
  font-size: 48px;
  line-height: 1;
}
.pb-empty-title {
  font-family: var(--pb-font-serif);
  font-size: 28px;
  font-weight: 600;
  margin: 0 0 10px;
  color: var(--pb-text);
  letter-spacing: -0.01em;
}
.pb-empty-lead {
  font-size: 15px;
  color: var(--pb-text-muted, #6b6b6b);
  line-height: 1.55;
  max-width: 460px;
  margin: 0 0 24px;
}
.pb-empty-cta-row {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  justify-content: center;
}
.pb-empty-cta-row .pb-btn-primary,
.pb-empty-cta-row .pb-btn-secondary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 46px;
  padding: 0 24px;
  border-radius: var(--pb-radius);
  font-family: var(--pb-font-sans);
  font-size: 14px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  text-decoration: none;
  min-width: 200px;
  transition: background 0.15s, color 0.15s, border-color 0.15s;
}
.pb-empty-cta-row .pb-btn-primary {
  background: var(--pb-primary);
  color: var(--pb-white);
  border: 1px solid var(--pb-primary);
}
.pb-empty-cta-row .pb-btn-primary:hover {
  background: var(--pb-primary-dark);
  border-color: var(--pb-primary-dark);
  color: var(--pb-white);
}
.pb-empty-cta-row .pb-btn-secondary {
  background: transparent;
  color: var(--pb-heading);
  border: 1px solid var(--pb-border-strong);
}
.pb-empty-cta-row .pb-btn-secondary:hover {
  border-color: var(--pb-heading);
  color: var(--pb-heading);
}

/* Section heading */
.pb-empty-section-title {
  font-family: var(--pb-font-serif);
  font-size: 18px;
  font-weight: 600;
  margin: 0 0 14px;
  color: var(--pb-text);
}

/* Suggestion grid */
.pb-empty-suggestions {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 12px;
}
@media (max-width: 900px) {
  .pb-empty-suggestions {
    grid-template-columns: repeat(2, 1fr);
  }
}
.pb-empty-suggestion {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 16px;
  text-decoration: none;
  color: inherit;
  transition: border-color 0.18s ease, box-shadow 0.18s ease, transform 0.18s ease;
}
.pb-empty-suggestion:hover,
.pb-empty-suggestion:focus-visible {
  border-color: var(--pb-primary);
  box-shadow: 0 4px 14px rgba(143, 151, 121, 0.18);
  text-decoration: none;
  color: inherit;
}
.pb-empty-suggestion:hover .pb-empty-suggestion-arrow {
  transform: translateX(3px);
  color: var(--pb-primary-dark);
}
.pb-empty-suggestion-icon {
  flex: 0 0 auto;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: rgba(143, 151, 121, 0.12);
  color: var(--pb-primary-dark);
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.pb-empty-suggestion-icon i {
  font-size: 22px;
  line-height: 1;
}
.pb-empty-suggestion-body {
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}
.pb-empty-suggestion-label {
  font-family: var(--pb-font-serif);
  font-size: 15px;
  font-weight: 600;
  color: var(--pb-text);
}
.pb-empty-suggestion-desc {
  font-size: 12.5px;
  color: var(--pb-text-muted, #6b6b6b);
  line-height: 1.4;
}
.pb-empty-suggestion-arrow {
  flex: 0 0 auto;
  color: var(--pb-text-muted, #9a9a9a);
  display: inline-flex;
  align-items: center;
  transition: transform 0.18s ease, color 0.18s ease;
}

/* Instagram card — same shape as thank-you, distinct namespace */
.pb-empty-ig {
  display: flex;
  align-items: center;
  gap: 16px;
  text-decoration: none;
  color: inherit;
  transition: border-color 0.18s ease, box-shadow 0.18s ease;
}
.pb-empty-ig:hover,
.pb-empty-ig:focus-visible {
  border-color: var(--pb-primary);
  box-shadow: 0 4px 14px rgba(143, 151, 121, 0.18);
  text-decoration: none;
  color: inherit;
}
.pb-empty-ig-icon {
  flex: 0 0 auto;
  width: 48px;
  height: 48px;
  border-radius: 50%;
  background: var(--pb-primary);
  color: #fff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.pb-empty-ig-icon i {
  font-size: 28px;
  line-height: 1;
}
.pb-empty-ig-body {
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}
.pb-empty-ig-handle {
  font-family: var(--pb-font-serif);
  font-size: 17px;
  font-weight: 600;
  color: var(--pb-text);
}
.pb-empty-ig-text {
  font-size: 13.5px;
  color: var(--pb-text-muted, #6b6b6b);
  line-height: 1.45;
}
.pb-empty-ig-cta {
  flex: 0 0 auto;
  font-size: 13px;
  font-weight: 600;
  color: var(--pb-primary-dark);
  border: 1px solid var(--pb-primary);
  padding: 8px 14px;
  border-radius: var(--pb-radius);
  white-space: nowrap;
  transition: background 0.18s ease, color 0.18s ease;
}
.pb-empty-ig:hover .pb-empty-ig-cta,
.pb-empty-ig:focus-visible .pb-empty-ig-cta {
  background: var(--pb-primary);
  color: #fff;
}

.pb-empty-help {
  text-align: center;
  margin: 4px 0 0;
}

@media (max-width: 600px) {
  .pb-empty-hero {
    padding: 32px 20px 28px;
  }
  .pb-empty-title {
    font-size: 24px;
  }
  .pb-empty-cta-row .pb-btn-primary,
  .pb-empty-cta-row .pb-btn-secondary {
    flex: 1 1 100%;
    min-width: 0;
  }
  .pb-empty-suggestions {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 480px) {
  .pb-empty-ig {
    flex-wrap: wrap;
  }
  .pb-empty-ig-cta {
    width: 100%;
    text-align: center;
  }
}

/* ════════════════════════════════════════════════════════════════════════
   404 PAGE — extends .pb-empty-cart layout
   ════════════════════════════════════════════════════════════════════════ */
.pb-page-404 {
  padding-top: 24px;
  padding-bottom: 48px;
}
.pb-404-code {
  display: block;
  font-family: var(--pb-font-serif);
  font-size: 96px;
  font-weight: 600;
  line-height: 1;
  letter-spacing: -0.02em;
  color: var(--pb-primary-dark);
  opacity: 0.85;
  margin: 0 0 12px;
}

/* Inline search inside hero */
.pb-404-search {
  display: flex;
  align-items: center;
  gap: 8px;
  width: 100%;
  max-width: 460px;
  margin-top: 28px;
  padding: 6px 6px 6px 18px;
  border: 1px solid var(--pb-border-strong);
  border-radius: var(--pb-radius);
  background: #fff;
  transition: border-color 0.15s, box-shadow 0.15s;
}
.pb-404-search:focus-within {
  border-color: var(--pb-primary);
  box-shadow: 0 4px 14px rgba(143, 151, 121, 0.18);
}
.pb-404-search input[type="search"] {
  flex: 1 1 auto;
  height: 40px;
  border: 0;
  background: transparent;
  font-family: var(--pb-font-sans);
  font-size: 14px;
  color: var(--pb-text);
  outline: none;
  padding: 0;
  box-shadow: none;
}
.pb-404-search input[type="search"]::placeholder {
  color: var(--pb-text-muted, #9a9a9a);
}
.pb-404-search button {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  border: 0;
  border-radius: calc(var(--pb-radius) - 2px);
  background: var(--pb-primary);
  color: #fff;
  cursor: pointer;
  transition: background 0.15s;
}
.pb-404-search button:hover {
  background: var(--pb-primary-dark);
}
.pb-404-search button svg {
  width: 18px;
  height: 18px;
  flex: 0 0 auto;
}

@media (max-width: 480px) {
  .pb-404-code {
    font-size: 72px;
  }
}

/* ════════════════════════════════════════════════════════════════════════
   AUTH PAGES (login / register / lost password)
   ════════════════════════════════════════════════════════════════════════ */
.pb-auth-page {
  max-width: 1000px;
  margin: 0 auto;
  padding: 24px 0 48px;
}

.pb-auth-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 24px;
  align-items: start;
}
.pb-auth-grid-single {
  grid-template-columns: minmax(0, 520px);
  justify-content: center;
}
@media (max-width: 768px) {
  .pb-auth-grid {
    grid-template-columns: 1fr;
  }
}

.pb-auth-card {
  padding: 32px;
  display: flex;
  flex-direction: column;
}
@media (max-width: 480px) {
  .pb-auth-card {
    padding: 24px 20px;
  }
}

.pb-auth-icon {
  width: 56px;
  height: 56px;
  border-radius: 50%;
  background: rgba(143, 151, 121, 0.12);
  color: var(--pb-primary-dark);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 14px;
}
.pb-auth-icon i {
  font-size: 30px;
  line-height: 1;
}

.pb-auth-title {
  font-family: var(--pb-font-serif);
  font-size: 24px;
  font-weight: 600;
  margin: 0 0 6px;
  color: var(--pb-text);
  letter-spacing: -0.01em;
}
.pb-auth-sub {
  font-size: 14px;
  color: var(--pb-text-muted, #6b6b6b);
  line-height: 1.55;
  margin: 0 0 20px;
}

/* Benefits list (register card) */
.pb-auth-benefits {
  list-style: none;
  margin: 0 0 20px;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.pb-auth-benefits li {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  font-size: 14px;
  color: var(--pb-text);
  line-height: 1.5;
}
.pb-auth-benefit-icon {
  flex: 0 0 auto;
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background: rgba(143, 151, 121, 0.18);
  color: var(--pb-primary-dark);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-top: 1px;
}
.pb-auth-benefit-icon i {
  font-size: 14px;
  font-weight: 700;
  line-height: 1;
}

/* Form fields */
.pb-auth-form .pb-form-row {
  margin: 0 0 14px;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.pb-auth-form label {
  font-size: 13px;
  font-weight: 600;
  color: var(--pb-text);
  letter-spacing: 0.01em;
  margin: 0;
  display: inline-flex;
  align-items: center;
  gap: 4px;
}
.pb-auth-form label .required {
  color: var(--pb-primary-dark);
  font-weight: 400;
}
.pb-auth-form input[type="text"],
.pb-auth-form input[type="email"],
.pb-auth-form input[type="password"] {
  width: 100%;
  height: 46px;
  padding: 0 14px;
  border: 1px solid var(--pb-border-strong);
  border-radius: var(--pb-radius);
  background: #fff;
  font-family: var(--pb-font-sans);
  font-size: 14px;
  color: var(--pb-text);
  box-shadow: none;
  transition: border-color 0.15s, box-shadow 0.15s;
}
.pb-auth-form input[type="text"]:focus,
.pb-auth-form input[type="email"]:focus,
.pb-auth-form input[type="password"]:focus {
  outline: none;
  border-color: var(--pb-primary);
  box-shadow: 0 0 0 3px rgba(143, 151, 121, 0.18);
}

/* Remember me + forgot password row */
.pb-auth-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 8px;
  margin: 4px 0 18px;
}
.pb-auth-remember {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 13.5px;
  color: var(--pb-text);
  margin: 0;
  cursor: pointer;
}
.pb-auth-remember input[type="checkbox"] {
  margin: 0;
}
.pb-auth-forgot {
  font-size: 13.5px;
  color: var(--pb-primary-dark);
  text-decoration: none;
  font-weight: 500;
}
.pb-auth-forgot:hover {
  text-decoration: underline;
}

/* Submit button */
.pb-auth-submit-row {
  margin: 6px 0 0;
}
.pb-auth-card .pb-auth-form,
.pb-auth-card .pb-auth-form > p {
  width: 100%;
}
.pb-auth-card button.pb-auth-submit,
.pb-auth-submit.pb-btn-primary {
  width: 100%;
  min-width: 0;
  height: 48px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: var(--pb-primary);
  color: #fff;
  border: 1px solid var(--pb-primary);
  border-radius: var(--pb-radius);
  font-family: var(--pb-font-sans);
  font-size: 15px;
  font-weight: 500;
  text-transform: none;
  letter-spacing: 0;
  cursor: pointer;
  transition: background 0.15s, border-color 0.15s;
}
.pb-auth-submit.pb-btn-primary:hover {
  background: var(--pb-primary-dark);
  border-color: var(--pb-primary-dark);
  color: #fff;
}

/* Generated-password info text in register card */
.pb-auth-info {
  font-size: 13.5px;
  color: var(--pb-text-muted, #6b6b6b);
  background: rgba(143, 151, 121, 0.08);
  border-radius: var(--pb-radius);
  padding: 10px 14px;
  margin: 0 0 14px;
  line-height: 1.5;
}

/* Back link on lost-password */
.pb-auth-back {
  text-align: center;
  margin: 14px 0 0;
}
.pb-auth-back a {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 13.5px;
  color: var(--pb-text-muted, #6b6b6b);
  text-decoration: none;
}
.pb-auth-back a:hover {
  color: var(--pb-primary-dark);
}

.pb-auth-help {
  text-align: center;
  margin: 24px 0 0;
}
