/* PatrioticWear — theme overrides.
   Only rules outside the generated patrioticwear.css sheet. */

/* ==== States =========================================================== */

[hidden]{display:none!important}

/* Mobile menu: the generated sheet hides .pw-r-menu at max-width:1024px — the open
   variant is a column under the sticky nav (both navs are position:sticky, so it anchors correctly). */
@media(max-width:1024px){
body.pw-open .pw-r-menu.pw-r-menu.pw-r-menu{display:flex;flex-direction:column;align-items:stretch;gap:0;position:absolute;top:100%;left:0;right:0;background:var(--pw-linia);border-bottom:1px solid rgba(90,102,107,0.4);padding:8px clamp(24px,5vw,64px) 16px;white-space:normal}
body.pw-open .pw-r-menu li+li{border-top:1px solid rgba(90,102,107,0.25)}
body.pw-open .pw-r-menu a,body.pw-open .pw-r-menu button{display:block;width:100%;padding:14px 0;text-align:left;font-size:1.15rem}
body.pw-open .pw-r-mobilne-menu.pw-r-mobilne-menu{color:var(--pw-czerwien)}
}

/* "Najczęściej wybierane" tabs (front-page): the generated sheet styles only the
   static variants (pw-button-9c4953 active, pw-button-239133 inactive) and pw.js
   toggles aria-pressed alone — these 0-2-0 rules carry the active look with it. */
.pw-div-180d23 button[aria-pressed="true"]{background:var(--pw-atrament);border-color:var(--pw-atrament);color:var(--pw-papier)}
.pw-div-180d23 button[aria-pressed="false"]{background:transparent;border-color:rgba(90,102,107,0.4);color:var(--pw-atrament)}

/* Active product-gallery thumbnail */
.pw-r-galeria-mini .pw-active.pw-active{border-color:var(--pw-czerwien);outline:2px solid var(--pw-czerwien);outline-offset:-2px}

/* ==== Scroll reveal ==================================================== */
/* The generated sheet binds pwFade (fill both) to [data-anim]; pw-t-js is added by JS,
   so without JS animations play as before, and reduced-motion is caught by the sheet's rule. */
.pw-t-js [data-anim]{animation-play-state:paused}
.pw-t-js [data-anim].pw-visible{animation-play-state:running}

/* ==== WooCommerce ====================================================== */

/* Notices */
.woocommerce-message,.woocommerce-error,.woocommerce-info{list-style:none;margin:0 0 28px;padding:14px 18px;background:var(--pw-papier);border:1px solid rgba(90,102,107,0.4);border-left:3px solid var(--pw-atrament);border-radius:2px;color:var(--pw-atrament);font-family:"IBM Plex Sans",system-ui,sans-serif;font-size:.875rem;line-height:1.55}
.woocommerce-error{border-left-color:var(--pw-czerwien)}
.woocommerce-message li,.woocommerce-error li,.woocommerce-info li{list-style:none;margin:0;padding:0}
.woocommerce-message .button,.woocommerce-error .button,.woocommerce-info .button{float:right;margin:-4px 0 0 16px;padding:8px 14px;font-size:.7rem}

/* Woo buttons styled like the mockup buttons */
a.button,button.button,input.button,.single_add_to_cart_button{display:inline-block;background:var(--pw-atrament);border:1px solid var(--pw-atrament);border-radius:2px;color:var(--pw-papier);cursor:pointer;font-family:"IBM Plex Mono",monospace;font-size:.8125rem;font-weight:500;letter-spacing:.1em;line-height:1.2;padding:14px 28px;text-align:center;text-transform:uppercase;text-decoration:none;transition:background 120ms,color 120ms}
a.button:hover,button.button:hover,input.button:hover,.single_add_to_cart_button:hover{background:var(--pw-czerwien);border-color:var(--pw-czerwien);color:var(--pw-papier)}
button.button:disabled,.single_add_to_cart_button.disabled,.single_add_to_cart_button:disabled{opacity:.45;cursor:not-allowed}

/* "Do koszyka" link in cross-sell cards: lift above the card overlay
   (.pw-a-2a1def, z-index:5), which otherwise makes it unclickable */
.pw-t-cross-sell-add{position:relative;z-index:6}

/* Woo form fields — like the mockup newsletter input (bottom line, transparent background) */
.woocommerce .input-text,.woocommerce-page .input-text,.woocommerce textarea,.woocommerce-page textarea{background:transparent;border:0;border-bottom:1px solid var(--pw-stal);border-radius:0;color:var(--pw-atrament);font-family:"IBM Plex Sans",system-ui,sans-serif;font-size:1rem;padding:10px 0}
.woocommerce .input-text:focus,.woocommerce-page .input-text:focus,.woocommerce textarea:focus{border-bottom-color:var(--pw-czerwien)}
.woocommerce textarea,.woocommerce-page textarea{width:100%}
.woocommerce input.qty,.woocommerce-page input.qty{width:64px;text-align:center;font-family:"IBM Plex Mono",monospace;font-variant-numeric:tabular-nums}
.woocommerce select,.woocommerce-page select{background:transparent;border:1px solid rgba(90,102,107,0.4);border-radius:2px;color:var(--pw-atrament);cursor:pointer;font-family:"IBM Plex Sans",system-ui,sans-serif;font-size:.9375rem;padding:10px 12px}

/* Variation select in the purchase form — like the mockup size buttons */
.pw-t-purchase-form select{min-width:120px;height:48px;background:transparent;border:1px solid rgba(90,102,107,0.4);border-radius:2px;color:var(--pw-atrament);cursor:pointer;font-family:"IBM Plex Mono",monospace;font-size:.875rem;font-weight:500;letter-spacing:.06em;padding:0 12px;text-transform:uppercase;transition:border-color 120ms}
.pw-t-purchase-form select:hover{border-color:var(--pw-atrament)}
.pw-t-purchase-form .reset_variations{font-family:"IBM Plex Mono",monospace;font-size:.7rem;letter-spacing:.06em;text-transform:uppercase;color:var(--pw-stal)}

/* On the dark summary, fields inherit the mockup palette (coupon code) */
.pw-t-summary .input-text{color:var(--pw-papier);border-bottom-color:rgba(246,244,238,0.6);font-family:"IBM Plex Mono",monospace;font-size:.8125rem;letter-spacing:.06em}

/* Pagination */
.pw-t-pagination{margin:48px 0 0;font-family:"IBM Plex Mono",monospace;font-size:.8125rem}
.pw-t-pagination ul{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;list-style:none;margin:0;padding:0}
.pw-t-pagination .page-numbers{display:inline-flex;align-items:center;justify-content:center;min-width:40px;height:40px;padding:0 12px;border:1px solid rgba(90,102,107,0.4);border-radius:2px;color:var(--pw-atrament);letter-spacing:.06em;font-variant-numeric:tabular-nums;transition:border-color 120ms,color 120ms}
.pw-t-pagination a.page-numbers:hover{border-color:var(--pw-czerwien);color:var(--pw-czerwien)}
.pw-t-pagination .page-numbers.current{background:var(--pw-czerwien);border-color:var(--pw-czerwien);color:var(--pw-papier)}
.pw-t-pagination .page-numbers.dots{border:0;min-width:auto;padding:0 4px}

/* Cart summary — cart totals table in the mockup typography
   (colors inherited: works in the dark aside and on a light background) */
.pw-t-summary table{width:100%;border-collapse:collapse;font-family:"IBM Plex Mono",monospace;font-size:.875rem;font-variant-numeric:tabular-nums}
.pw-t-summary th,.pw-t-summary td{border:0;border-bottom:1px solid rgba(110,122,128,0.35);padding:12px 0;text-align:left;vertical-align:top;font-weight:400;background:none}
.pw-t-summary td{text-align:right}
.pw-t-summary tr:last-child th,.pw-t-summary tr:last-child td{border-bottom:0}
.pw-t-summary .order-total th{font-family:"Big Shoulders Display","Big Shoulders",Impact,sans-serif;font-size:1.375rem;font-weight:700;text-transform:uppercase}
.pw-t-summary .order-total td{font-size:1.375rem;font-weight:500}
.pw-t-summary .button{width:100%;height:56px;padding:0 16px}

/* Static pages */
.pw-t-page{max-width:1280px;margin:0 auto;padding:56px clamp(24px,5vw,64px) 96px}
.pw-t-page h1,.pw-t-page h2,.pw-t-page h3,.pw-t-page h4{font-family:"Big Shoulders Display","Big Shoulders",Impact,sans-serif;line-height:1.05;margin:0 0 20px;text-transform:uppercase}
.pw-t-page h1{font-size:clamp(2.5rem,6vw,4rem);font-weight:800;margin-bottom:32px}
.pw-t-page h2{font-size:clamp(1.5rem,3vw,2rem);font-weight:700;margin-top:48px}
.pw-t-page h3,.pw-t-page h4{font-size:1.25rem;font-weight:700;margin-top:32px;margin-bottom:12px}
.pw-t-page p,.pw-t-page ul,.pw-t-page ol{max-width:72ch;margin:0 0 20px;font-family:"IBM Plex Sans",system-ui,sans-serif;font-size:1rem;line-height:1.7}
.pw-t-page li{margin-bottom:8px}
.pw-t-page blockquote{max-width:64ch;margin:32px 0;padding-left:24px;border-left:3px solid var(--pw-czerwien);font-family:"IBM Plex Serif",Georgia,serif;font-size:1.125rem;line-height:1.7;color:var(--pw-stal)}
.pw-t-page a{border-bottom:1px solid rgba(163,30,40,0.4)}
.pw-t-page table{width:100%;border-collapse:collapse;font-family:"IBM Plex Mono",monospace;font-size:.875rem;font-variant-numeric:tabular-nums}
.pw-t-page th,.pw-t-page td{border-bottom:1px solid rgba(90,102,107,0.3);padding:12px 8px 12px 0;text-align:left}

/* Cart totals: the aside renders its own "Podsumowanie" heading, so hide the
   duplicate h2 that Woo's non-overridden cart-totals.php template prints */
.pw-t-summary .cart_totals > h2{display:none}

/* Woo prices: the amount inherits typeface and size from the mockup container */
.woocommerce-Price-amount,.woocommerce-Price-amount bdi{font-family:inherit;font-size:inherit;font-weight:inherit;letter-spacing:inherit;color:inherit}
.woocommerce-Price-currencySymbol{font-size:inherit;font-weight:inherit}

/* === WooCommerce skin (default Woo styles are dequeued) === */
/* inc/woo-setup.php empties woocommerce_enqueue_styles, so every Woo element
   not covered by the theme's own templates is styled here. Selectors are kept
   away from the mockup's pw-* classes — cart/product/category pages already
   work and must not be repainted. */

/* --- Buttons -----------------------------------------------------------
   Primary recipe = the mockup CTA (.pw-button-3c1357 in produkt.html):
   IBM Plex Mono 0.8125rem/500, letter-spacing .1em, uppercase, radius 2px,
   ink background, paper text, red hover. Extends the earlier a.button rule
   to the remaining Woo selectors and, being last in the file, also wins the
   red underline that .pw-t-page a used to paint on <a> buttons. */
.woocommerce .button,a.button,button.button,input.button,.woocommerce-button,a.checkout-button,#place_order,.single_add_to_cart_button{display:inline-block;background:var(--pw-atrament);border:1px solid var(--pw-atrament);border-radius:2px;color:var(--pw-papier);cursor:pointer;font-family:"IBM Plex Mono",monospace;font-size:.8125rem;font-weight:500;letter-spacing:.1em;line-height:1.2;padding:14px 28px;text-align:center;text-transform:uppercase;text-decoration:none;transition:background 120ms,color 120ms,border-color 120ms}
.woocommerce .button:hover,a.button:hover,button.button:hover,input.button:hover,.woocommerce-button:hover,a.checkout-button:hover,#place_order:hover,.single_add_to_cart_button:hover{background:var(--pw-czerwien);border-color:var(--pw-czerwien);color:var(--pw-papier)}
/* Outline (alt) variant: transparent with an ink border, filled on hover */
.pw-t-btn-outline,.woocommerce-checkout button[name="apply_coupon"]{background:transparent;border:1px solid var(--pw-atrament);color:var(--pw-atrament)}
.pw-t-btn-outline:hover,.woocommerce-checkout button[name="apply_coupon"]:hover{background:var(--pw-atrament);border-color:var(--pw-atrament);color:var(--pw-papier)}
/* Disabled: steel, no fake hover */
.woocommerce .button:disabled,.woocommerce .button.disabled,button.button:disabled,button.button.disabled,.single_add_to_cart_button:disabled,.single_add_to_cart_button.disabled,#place_order:disabled{background:var(--pw-stal);border-color:var(--pw-stal);color:var(--pw-papier);cursor:not-allowed;opacity:1}
/* Cart aside: keep the mockup's paper checkout button (pw-button-5c4233) —
   the generic rules above would paint it ink-on-ink inside the dark summary */
.pw-t-summary a.checkout-button{display:inline-flex;align-items:center;justify-content:center;width:100%;height:56px;padding:0 16px;background:var(--pw-papier);border:0;color:var(--pw-atrament)}
.pw-t-summary a.checkout-button:hover{background:var(--pw-czerwien);color:var(--pw-papier)}
/* Re-assert the compact paddings that the generic .woocommerce .button rule
   above would otherwise override (same 0-2-0 specificity, earlier in file) */
.pw-t-summary .button{padding:0 16px}
.woocommerce-message .button,.woocommerce-error .button,.woocommerce-info .button{padding:8px 14px;font-size:.7rem}

/* --- Form fields (checkout / account / login — Woo .form-row scope only,
   so the mockup's bottom-line inputs on cart and product stay untouched) --- */
.woocommerce form .form-row{margin:0 0 16px;padding:0}
.woocommerce form .form-row label{display:block;margin:0 0 6px;font-family:"IBM Plex Mono",monospace;font-size:.7rem;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--pw-stal)}
.woocommerce form .form-row .required{color:var(--pw-czerwien);text-decoration:none}
.woocommerce form .form-row input.input-text,.woocommerce form .form-row select,.woocommerce form .form-row textarea{display:block;width:100%;box-sizing:border-box;background:#fff;border:1px solid var(--pw-linia);border-radius:2px;color:var(--pw-atrament);font-family:"IBM Plex Sans",system-ui,sans-serif;font-size:.9375rem;line-height:1.4;padding:10px 12px}
.woocommerce form .form-row textarea{min-height:96px;resize:vertical}
.woocommerce form .form-row input.input-text:focus,.woocommerce form .form-row select:focus,.woocommerce form .form-row textarea:focus{border-color:var(--pw-atrament);border-bottom-color:var(--pw-atrament);outline:2px solid var(--pw-czerwien);outline-offset:2px}
/* Checkbox rows (terms, "create account", "ship elsewhere"): inline label */
.woocommerce form .form-row label.checkbox,.woocommerce form .form-row .woocommerce-form__label-for-checkbox{display:inline-flex;align-items:center;gap:8px;margin:0}
.woocommerce input[type="radio"],.woocommerce input[type="checkbox"]{accent-color:var(--pw-czerwien)}

/* --- Notices: the base rules earlier in this file give paper background and
   a 3px left border (message: ink, error: red) — info gets steel here --- */
.woocommerce-info{border-left-color:var(--pw-stal)}

/* --- Prices (mono is set on the mockup price containers already; this covers
   bare Woo output — totals, order tables, emails-in-browser) --- */
.woocommerce .price,.woocommerce .amount{font-family:"IBM Plex Mono",monospace;font-variant-numeric:tabular-nums}
.woocommerce del{color:var(--pw-stal);text-decoration:line-through}
.woocommerce ins{text-decoration:none}
.woocommerce .price ins,.woocommerce .price ins .amount{color:var(--pw-czerwien)}

/* --- Sale badge (like the mockup card badge, in red) --- */
.woocommerce .onsale{display:inline-block;background:var(--pw-czerwien);color:var(--pw-papier);font-family:"IBM Plex Mono",monospace;font-size:.65rem;font-weight:500;letter-spacing:.1em;text-transform:uppercase;padding:5px 9px;border-radius:2px}

/* --- Checkout: two columns on desktop (form 60 / order review 40);
   the responsive sheet collapses this grid to one column --- */
.woocommerce-checkout form.checkout{display:grid;grid-template-columns:minmax(0,3fr) minmax(0,2fr);gap:16px 48px;align-items:start}
.woocommerce-checkout form.checkout #customer_details{grid-column:1;grid-row:1 / span 2;min-width:0}
.woocommerce-checkout #order_review_heading{grid-column:2;grid-row:1;margin:0;font-family:"Big Shoulders Display","Big Shoulders",Impact,sans-serif;font-size:1.5rem;font-weight:700;text-transform:uppercase}
.woocommerce-checkout #order_review{grid-column:2;grid-row:2;min-width:0;background:#fff;border:1px solid var(--pw-linia);border-radius:2px;padding:24px}
/* Order review + my-account tables (scoped by body class, so the dark
   .pw-t-summary cart table keeps its own styling) */
.woocommerce-checkout table.shop_table,.woocommerce-account table.shop_table{width:100%;border-collapse:collapse;border:0;font-family:"IBM Plex Mono",monospace;font-size:.875rem;font-variant-numeric:tabular-nums}
.woocommerce-checkout table.shop_table th,.woocommerce-checkout table.shop_table td,.woocommerce-account table.shop_table th,.woocommerce-account table.shop_table td{background:none;border:0;border-bottom:1px solid var(--pw-linia);padding:12px 12px 12px 0;text-align:left;vertical-align:top;font-weight:400}
.woocommerce-checkout table.shop_table thead th,.woocommerce-account table.shop_table thead th{font-size:.6875rem;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--pw-stal)}
.woocommerce-checkout table.shop_table td:last-child,.woocommerce-checkout table.shop_table th + td{text-align:right}
.woocommerce-checkout table.shop_table .order-total th,.woocommerce-checkout table.shop_table .order-total td{font-size:1.125rem;font-weight:500;border-bottom:0}
/* Payment methods */
.woocommerce-checkout #payment{background:none;border-radius:0}
.woocommerce-checkout .wc_payment_methods{list-style:none;margin:0 0 20px;padding:0}
.woocommerce-checkout .wc_payment_methods li{margin:0;padding:12px 0;border-bottom:1px solid var(--pw-linia)}
.woocommerce-checkout .wc_payment_methods label{font-family:"IBM Plex Mono",monospace;font-size:.8125rem;font-weight:500;letter-spacing:.06em;text-transform:uppercase;cursor:pointer;margin-left:6px}
.woocommerce-checkout .wc_payment_methods .payment_box{margin:10px 0 0;padding:12px 14px;background:var(--pw-papier);border-radius:2px;font-family:"IBM Plex Sans",system-ui,sans-serif;font-size:.875rem;line-height:1.55;color:var(--pw-stal)}
.woocommerce-checkout .wc_payment_methods .payment_box p{margin:0}
.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper{margin:0 0 16px;font-size:.8125rem;color:var(--pw-stal)}
.woocommerce-checkout #place_order{width:100%;margin-top:8px}
/* Coupon + login boxes toggled above the checkout form */
.woocommerce-form-coupon{max-width:480px;margin:0 0 24px;padding:20px;background:#fff;border:1px solid var(--pw-linia);border-radius:2px}

/* --- Order received: overview list --- */
ul.woocommerce-order-overview{list-style:none;display:flex;flex-wrap:wrap;gap:16px 32px;margin:0 0 32px;padding:0;font-family:"IBM Plex Mono",monospace;font-size:.75rem;letter-spacing:.06em;text-transform:uppercase;color:var(--pw-stal)}
ul.woocommerce-order-overview li{margin:0;border-right:1px solid var(--pw-linia);padding-right:32px}
ul.woocommerce-order-overview li:last-child{border-right:0;padding-right:0}
ul.woocommerce-order-overview li strong{display:block;margin-top:4px;font-size:.9375rem;color:var(--pw-atrament)}

/* --- My account: navigation + content in two columns (notices span both);
   the responsive sheet stacks it on small screens --- */
.woocommerce-account.logged-in .pw-t-page .woocommerce{display:grid;grid-template-columns:240px minmax(0,1fr);gap:32px 48px;align-items:start}
.woocommerce-account.logged-in .pw-t-page .woocommerce > .woocommerce-notices-wrapper,.woocommerce-account.logged-in .pw-t-page .woocommerce > .woocommerce-message,.woocommerce-account.logged-in .pw-t-page .woocommerce > .woocommerce-info,.woocommerce-account.logged-in .pw-t-page .woocommerce > .woocommerce-error{grid-column:1 / -1}
.woocommerce-MyAccount-navigation ul{list-style:none;margin:0;padding:0;background:#fff;border:1px solid var(--pw-linia);border-radius:2px}
.woocommerce-MyAccount-navigation li{margin:0}
.woocommerce-MyAccount-navigation li+li{border-top:1px solid var(--pw-linia)}
.woocommerce-MyAccount-navigation a{display:block;padding:12px 16px;border-bottom:0;font-family:"IBM Plex Mono",monospace;font-size:.75rem;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--pw-atrament);text-decoration:none}
.woocommerce-MyAccount-navigation a:hover{color:var(--pw-czerwien)}
.woocommerce-MyAccount-navigation li.is-active a{color:var(--pw-czerwien);text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:4px}
.woocommerce-MyAccount-content{min-width:0}
.woocommerce-MyAccount-content .woocommerce-table--order-details{margin-top:16px}

/* --- Pagination fallback for bare Woo output; :where() keeps specificity at
   zero so the archive's .pw-t-pagination (red current page) always wins --- */
.woocommerce-pagination{font-family:"IBM Plex Mono",monospace;font-size:.8125rem}
:where(.woocommerce-pagination) ul.page-numbers{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;list-style:none;margin:0;padding:0;border:0}
:where(.woocommerce-pagination) li{margin:0;border:0}
:where(.woocommerce-pagination) .page-numbers{display:inline-flex;align-items:center;justify-content:center;min-width:40px;height:40px;padding:0 12px;border:1px solid var(--pw-linia);border-radius:2px;color:var(--pw-atrament);letter-spacing:.06em;font-variant-numeric:tabular-nums;text-decoration:none;transition:border-color 120ms,color 120ms}
:where(.woocommerce-pagination) a.page-numbers:hover{border-color:var(--pw-atrament);color:var(--pw-czerwien)}
:where(.woocommerce-pagination) .page-numbers.current{background:var(--pw-atrament);border-color:var(--pw-atrament);color:var(--pw-papier)}
:where(.woocommerce-pagination) .page-numbers.dots{border:0;min-width:auto;padding:0 4px}

/* --- Quantity in the purchase form: boxed like the variation selects
   (cart quantities keep their own mockup styling) --- */
.pw-t-purchase-form .quantity .qty{height:48px;border:1px solid rgba(90,102,107,0.4);border-radius:2px;padding:0 8px;background:transparent}
.pw-t-purchase-form .quantity .qty:focus{border-color:var(--pw-atrament);outline:2px solid var(--pw-czerwien);outline-offset:2px}

/* --- Star rating: the Woo icon font is gone with the dequeued sheets, so
   stars are rebuilt with unicode + the classic percentage-width overlay --- */
.star-rating{position:relative;display:inline-block;line-height:1;font-size:1rem;letter-spacing:2px;color:rgba(90,102,107,0.45)}
.star-rating::before{content:"\2605\2605\2605\2605\2605"}
.star-rating span{position:absolute;top:0;left:0;height:100%;overflow:hidden;white-space:nowrap;font-size:0;color:var(--pw-czerwien)}
.star-rating span::before{content:"\2605\2605\2605\2605\2605";font-size:1rem;letter-spacing:2px}
/* Review form rating picker (links instead of the icon font) */
p.stars a{display:inline-block;margin-right:4px;border-bottom:0;font-family:"IBM Plex Mono",monospace;color:var(--pw-stal);text-decoration:none}
p.stars a:hover,p.stars a.active{color:var(--pw-czerwien)}

/* --- Breadcrumbs (only where a template does not print its own) --- */
.woocommerce-breadcrumb{margin:0 0 24px;font-family:"IBM Plex Mono",monospace;font-size:.75rem;letter-spacing:.06em;text-transform:uppercase;color:var(--pw-stal)}
.woocommerce-breadcrumb a{color:var(--pw-stal);border-bottom:0}
.woocommerce-breadcrumb a:hover{color:var(--pw-czerwien)}

/* --- Login / registration: centered card --- */
form.woocommerce-form-login,form.woocommerce-form-register{max-width:480px;margin:0 auto 32px;padding:32px;background:#fff;border:1px solid var(--pw-linia);border-radius:2px}
form.woocommerce-form-login .woocommerce-form-login__rememberme{display:block;margin:0 0 16px}
.woocommerce-LostPassword{margin:12px 0 0;font-family:"IBM Plex Mono",monospace;font-size:.75rem;letter-spacing:.06em;text-transform:uppercase}
/* Account page when logged out: side-by-side login/register headings */
#customer_login h2{font-family:"Big Shoulders Display","Big Shoulders",Impact,sans-serif;font-size:1.5rem;font-weight:700;text-transform:uppercase;text-align:center;margin:0 0 20px}

/* === Grain overlay fix ===================================================
   The generated sheet ships .pw-div-b40b13 with a truncated data URI
   (url("data:image/svg+xml") — the SVG payload was lost in generation),
   which throws ERR_INVALID_URL in the console. Restore the designer's
   fractal-noise SVG from the Design/*.dc.html sources. */
.pw-div-b40b13{background-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='160'%20height='160'%3E%3Cfilter%20id='n'%3E%3CfeTurbulence%20type='fractalNoise'%20baseFrequency='0.85'%20numOctaves='3'/%3E%3C/filter%3E%3Crect%20width='160'%20height='160'%20filter='url(%23n)'/%3E%3C/svg%3E")}

/* === Hero entrance animations (ported from the Bricks build) ==============
   The generated sheet already ships pwFade on the kicker/lead/buttons and
   the sc-shine/pwLinia/pwPrzebieg keyframes; the Bricks build adds a
   staggered wipe on the three h1 lines and a slower, springier rhythm:
   kicker 0s -> lines .2/.4/.6s -> lead .8s -> buttons 1s, all .6s with
   cubic-bezier(.16,1,.3,1). data-anim on the lines plugs them into the
   reduced-motion guard and the viewport pause/resume in pw.js. */
@keyframes pwWipeReveal {
	from { clip-path: inset(0 100% 0 0); }
	to { clip-path: inset(0 0% 0 0); }
}

.pw-t-hero-line {
	animation: pwWipeReveal 0.6s cubic-bezier(0.16, 1, 0.3, 1) both;
}

.pw-h1-973877 .pw-t-hero-line:nth-child(1) { animation-delay: 0.2s; }
.pw-h1-973877 .pw-t-hero-line:nth-child(2) { animation-delay: 0.4s; }
.pw-h1-973877 .pw-t-hero-line:nth-child(3) { animation-delay: 0.6s; }

/* Re-time the generated pwFade steps to the Bricks rhythm. */
.pw-p-0bdcf3,
.pw-p-1166da,
.pw-div-bc1cc2 {
	animation-duration: 0.6s;
	animation-timing-function: cubic-bezier(0.16, 1, 0.3, 1);
}

.pw-p-1166da { animation-delay: 0.8s; }
.pw-div-bc1cc2 { animation-delay: 1s; }

/* === Hero scroll curtain + instant entrance (Bricks parity) ===============
   On the Bricks build the hero pins to the viewport top and the following
   sections scroll OVER it (a pure-CSS curtain, no scroll listeners). Bricks
   does it with z-index:-1 on the hero, which also makes its buttons
   unclickable — instead the hero stays at stacking level 0 and every later
   sibling is lifted to z-index:1. Sections that had no background of their
   own get the body's paper color so they actually cover the pinned hero.
   The generated sheet's html,body{height:100%} capped the body at viewport
   height, which silently ended BOTH sticky ranges (nav and hero) ~900px
   down the page — restore auto height so sticky runs the whole document. */
html,
body {
	height: auto;
	min-height: 100%;
}

.pw-section-d1daee {
	position: sticky;
	top: 0;
}

.pw-section-d1daee ~ * {
	position: relative;
	z-index: 1;
}

.pw-section-d1daee ~ .pw-section-abec8d,
.pw-section-d1daee ~ .pw-section-7ba43b {
	background: var(--pw-papier);
}

/* The hero is above the fold, so its entrance animations start on CSS parse
   like on the Bricks build — exempt it from the viewport pause/resume gating
   (.pw-t-js [data-anim] { paused }) that serves below-fold sections. */
.pw-section-d1daee [data-anim] { animation-play-state: running; }

/* === Category FAQ accordion (pw-t-faq-*) ==================================
   Rendered by woocommerce/archive-product.php below the bottom SEO section,
   from term meta 'pw_faq'. Continues that section's look (.pw-section-8194d5
   / .pw-r-seo-dol): same page gutter, hairline top rule, mono kicker over a
   Big Shoulders heading, serif answers. Pure-CSS accordion on <details> —
   the "+" mark rotates into an "x" when an item is open. */

.pw-t-faq-section {
	margin: 0 auto;
	max-width: 1280px;
	padding: 0 clamp(24px, 5vw, 64px) clamp(64px, 8vw, 96px);
}

.pw-t-faq-inner {
	border-top: 1px solid rgba(90, 102, 107, 0.4);
	margin: 0 auto;
	max-width: 880px;
	padding-top: 48px;
}

.pw-t-faq-kicker {
	color: var(--pw-stal);
	font-family: "IBM Plex Mono", monospace;
	font-size: 0.75rem;
	letter-spacing: 0.12em;
	margin: 0 0 10px;
	text-transform: uppercase;
}

.pw-t-faq-title {
	font-family: "Big Shoulders Display", "Big Shoulders", Impact, sans-serif;
	font-size: clamp(2rem, 4vw, 3rem);
	font-weight: 700;
	line-height: 0.95;
	margin: 0 0 24px;
	text-shadow: -3px -2px 0 rgba(163, 30, 40, 0.85);
	text-transform: uppercase;
}

.pw-t-faq-list {
	border-bottom: 1px solid var(--pw-linia);
}

.pw-t-faq-item + .pw-t-faq-item {
	border-top: 1px solid var(--pw-linia);
}

.pw-t-faq-question {
	align-items: center;
	cursor: pointer;
	display: flex;
	font-family: "IBM Plex Sans", sans-serif;
	font-size: 1.0625rem;
	font-weight: 600;
	gap: 16px;
	justify-content: space-between;
	list-style: none;
	padding: 18px 0;
	transition: color 0.2s ease;
}

/* Hide the native disclosure triangle (old WebKit + spec marker). */
.pw-t-faq-question::-webkit-details-marker {
	display: none;
}

.pw-t-faq-question::marker {
	content: "";
}

.pw-t-faq-question:hover {
	color: var(--pw-czerwien);
}

.pw-t-faq-question:focus-visible {
	outline: 2px solid var(--pw-czerwien);
	outline-offset: 2px;
}

.pw-t-faq-mark {
	color: var(--pw-czerwien);
	flex: none;
	font-family: "IBM Plex Mono", monospace;
	font-size: 1.375rem;
	line-height: 1;
	transition: transform 0.25s ease;
}

.pw-t-faq-item[open] .pw-t-faq-mark {
	transform: rotate(45deg);
}

.pw-t-faq-answer {
	font-family: "IBM Plex Serif", serif;
	font-size: 1.0625rem;
	line-height: 1.7;
	max-width: 68ch;
	padding: 0 0 22px;
	text-wrap: pretty;
}

.pw-t-faq-answer p {
	margin: 0 0 14px;
}

.pw-t-faq-answer p:last-child {
	margin-bottom: 0;
}

/* ------------------------------------------------------------------
   Customizer media images (front page)
   An absolutely positioned cover image filling a placeholder container:
   the hero photo frame (.pw-div-05daa5) and the collection tiles
   (.pw-r-kafel, already position:relative + overflow:hidden in the
   generated sheet). Rendered by front-page.php only when an image is
   set in Appearance -> Customize -> "Strona glowna".
   ------------------------------------------------------------------ */

.pw-t-media-img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* The hero photo frame has no positioning context in the generated sheet;
   create one only when an image is present so the empty placeholder state
   stays pixel-identical. */
.pw-div-05daa5:has(> .pw-t-media-img) {
	position: relative;
	overflow: hidden;
}

/* Keep the hero caption readable above the photo. */
.pw-div-05daa5 > .pw-t-media-img ~ .pw-span-9a2069 {
	position: relative;
}

/* ------------------------------------------------------------------
   Free shipping progress bar (inc/shipping-bar.php)
   Two placements, one markup: the cart page (full variant, rendered
   inside form.woocommerce-cart-form so Woo's cart.js redraws it after
   updated_wc_div) and the header mini-cart (--mini, rendered inside
   div.widget_shopping_cart_content so the add-to-cart fragments
   refresh it). Label is a mono uppercase micro-caption, the track a
   hairline rule that fills red as the subtotal grows.
   ------------------------------------------------------------------ */

.pw-t-shipbar {
	margin: 0 0 24px;
}

.pw-t-shipbar-label {
	margin: 0 0 8px;
	font-family: "IBM Plex Mono", monospace;
	font-size: 12px;
	font-weight: 500;
	letter-spacing: 0.08em;
	line-height: 1.5;
	text-transform: uppercase;
	color: var(--pw-stal);
}

/* wc_price() wraps the amount in its own span — keep it on the label's
   type and never let the currency break onto a new line. */
.pw-t-shipbar-label .woocommerce-Price-amount {
	font-family: inherit;
	font-weight: 600;
	color: var(--pw-atrament);
	white-space: nowrap;
}

.pw-t-shipbar--done .pw-t-shipbar-label {
	color: var(--pw-czerwien);
}

.pw-t-shipbar-track {
	overflow: hidden;
	height: 3px;
	border-radius: 2px;
	background: var(--pw-linia);
}

.pw-t-shipbar-fill {
	width: 0;
	height: 100%;
	background: var(--pw-czerwien);
	transition: width 0.3s ease;
}

/* Mini-cart variant: sits between .woocommerce-mini-cart__total and
   .woocommerce-mini-cart__buttons (both already carry a 12px top margin),
   so it only needs a small gap of its own and tighter type. */
.pw-t-shipbar--mini {
	margin: 12px 0 0;
}

.pw-t-shipbar--mini .pw-t-shipbar-label {
	margin: 0 0 6px;
	font-size: 11px;
	letter-spacing: 0.06em;
}

.pw-t-shipbar--mini .pw-t-shipbar-track {
	height: 2px;
}

/* ------------------------------------------------------------------
   Order bump (inc/order-bump.php)
   One offer box rendered inside .form-row.place-order, between the
   terms checkbox and #place_order. #order_review is white, so the box
   reads as a panel on paper with a hairline border — the same
   treatment as the payment method .payment_box just above it. Layout
   is a three-part row: thumbnail, text column, checkbox.
   ------------------------------------------------------------------ */

.pw-t-bump {
	display: flex;
	align-items: center;
	gap: 14px;
	margin: 0 0 16px;
	padding: 12px 14px;
	background: var(--pw-papier);
	border: 1px solid var(--pw-linia);
	border-radius: 2px;
}

.pw-t-bump-media {
	flex: none;
	width: 60px;
	height: 60px;
	overflow: hidden;
	border-radius: 2px;
	background: #fff;
}

.pw-t-bump-media img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* The text column has to be allowed to shrink, or a long product name
   pushes the checkbox out of the 24px-padded order review box. */
.pw-t-bump-body {
	flex: 1 1 auto;
	min-width: 0;
}

.pw-t-bump-kicker {
	margin: 0 0 4px;
	font-family: "IBM Plex Mono", monospace;
	font-size: 11px;
	font-weight: 500;
	letter-spacing: 0.1em;
	line-height: 1.4;
	text-transform: uppercase;
	color: var(--pw-czerwien);
}

.pw-t-bump-name {
	margin: 0;
	font-family: "IBM Plex Sans", system-ui, sans-serif;
	font-size: 0.9375rem;
	font-weight: 600;
	line-height: 1.35;
	color: var(--pw-atrament);
}

.pw-t-bump-price {
	margin: 4px 0 0;
	font-family: "IBM Plex Mono", monospace;
	font-size: 0.875rem;
	font-variant-numeric: tabular-nums;
	line-height: 1.4;
	color: var(--pw-atrament);
}

.pw-t-bump-price del,
.pw-t-bump-price del .woocommerce-Price-amount {
	color: var(--pw-stal);
	font-weight: 400;
}

.pw-t-bump-price ins,
.pw-t-bump-price ins .woocommerce-Price-amount {
	color: var(--pw-czerwien);
	font-weight: 600;
	text-decoration: none;
}

/* Padded hit area around the checkbox — the input itself is only 22px.
   The box renders inside .form-row.place-order, so the generic
   ".woocommerce form .form-row label" rule above (block, mono micro-caps,
   6px bottom margin) has to be outweighed by the scoped selector. */
.pw-t-bump-toggle,
.woocommerce form .form-row label.pw-t-bump-toggle {
	display: flex;
	flex: none;
	align-items: center;
	justify-content: center;
	margin: 0;
	padding: 4px 2px 4px 6px;
	cursor: pointer;
}

.pw-t-bump-checkbox,
.woocommerce .pw-t-bump-checkbox {
	width: 22px;
	height: 22px;
	margin: 0;
	accent-color: var(--pw-czerwien);
	cursor: pointer;
}

.pw-t-bump-checkbox:focus-visible {
	outline: 2px solid var(--pw-czerwien);
	outline-offset: 2px;
}

/* Woo's own AJAX overlay covers #order_review while the totals refresh;
   the local disabled state only has to read as "busy". */
.pw-t-bump-checkbox:disabled {
	cursor: progress;
	opacity: 0.5;
}

/* The bump line in the cart shows a fixed quantity instead of the stepper,
   so it takes the stepper's typography without its frame. */
.pw-t-bump-qty {
	display: inline-block;
	font-family: 'IBM Plex Mono', ui-monospace, monospace;
	font-size: 0.8125rem;
	color: var(--pw-stal);
}

/* ------------------------------------------------------------------
   Newsletter (inc/newsletter.php)
   The honeypot must stay a rendered, focusable-by-nothing field — a
   display:none input is skipped by many bots — so it is pushed off
   screen instead. The status line under the form is the shared mono
   micro-copy treatment; while it is empty (every page load that is
   not a fallback redirect) it collapses to nothing, so answering the
   form does not shift the section on the first request.
   ------------------------------------------------------------------ */

.pw-t-hp {
	position: absolute;
	left: -9999px;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

.pw-t-newsletter-msg {
	margin: 8px 0 0;
	font-family: "IBM Plex Mono", monospace;
	font-size: 12px;
	line-height: 1.5;
	color: var(--pw-stal);
}

.pw-t-newsletter-msg:empty {
	margin: 0;
	line-height: 0;
}

/* Both places the line actually renders sit on var(--pw-atrament), where the
   steel grey above lands around 3:1 — well under AA for 12px text, and
   var(--pw-stal-jasna) would only reach ~4.16:1. The leads in these two
   sections (.pw-p-ec01ca, .pw-t-blog-newsletter-lead) already answer that with
   the same warm off-white, so the status line now matches its neighbours. The
   base rule stays for a newsletter form dropped on a light background. */
.pw-section-a676f5 .pw-t-newsletter-msg,
.pw-t-blog-newsletter .pw-t-newsletter-msg {
	color: rgba(246, 244, 238, 0.8);
}
