/* ==========================================================================
   AnimeSklep – strona produktu (single-product WooCommerce), 1:1 z
   beta/assets/css/product.css (desktop 1440). Ładowany TYLKO na is_product()
   (animesklep_scripts() w functions.php), po animesklep-theme.

   Dwa rodzaje selektorów, świadomie w jednym pliku:
   1) as-pd-* – markup WŁASNY (wartości przeniesione 1:1 z bety): nagłówek/
      buy-box/karta ceny/box z ikonami/zakładki/opinie/aside/sticky CTA/
      breadcrumbs – patrz inc/product-page.php, functions.php (blok "Strona
      produktu"), woocommerce/single-product-reviews.php, tabs/tabs.php.
   2) klasy woocommerce-… oraz .summary, .quantity, form.cart – NATYWNY markup WooCommerce
      (UWAGA: w komentarzach CSS nie pisać gwiazdki tuż przed ukośnikiem –
      to zamyka komentarz i parser gubi pierwszą regułę pod nim; tak zniknął
      kiedyś padding .as-page--woocommerce, czyli cały lewy gutter strony)
      (galeria z zoomem i PhotoSwipe, koszyk z walidacją stanu, warianty,
      formularz opinii) tylko PRZESTYLOWANY pod wymiary bety. Tych szablonów
      celowo nie podmieniamy – to działająca funkcjonalność sklepu, a wygląd
      da się dociągnąć samym CSS + progresywnym JS (assets/js/product.js).
   ========================================================================== */

/* ---------- Kontener treści (woocommerce/global/wrapper-start.php) ---------- */
.as-page--woocommerce{padding:0 var(--gutter) var(--section-gap)}
@media (max-width:639px){.as-page--woocommerce{padding:0 20px var(--section-gap)}}

/* ---------- Powiadomienia WooCommerce (dodano do koszyka, błędy) ---------- */
.woocommerce-notices-wrapper:not(:empty){margin:24px 0 0}
.woocommerce-message,.woocommerce-error,.woocommerce-info{list-style:none;margin:0 0 16px;padding:14px 18px;border-radius:4px;background:var(--g-900);border:1px solid var(--border);color:var(--g-100);font-size:14px;display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.woocommerce-message::before,.woocommerce-error::before,.woocommerce-info::before{display:none}
.woocommerce-message{border-color:var(--emerald)}
.woocommerce-error{border-color:var(--pink)}
.woocommerce-message a.button,.woocommerce-error a.button,.woocommerce-info a.button{order:2;margin-left:auto}

/* ---------- Breadcrumbs (woocommerce/global/breadcrumb.php – markup bety) ---------- */
/* .woocommerce .as-pd-crumbs (0,2,0) – rdzeń ma ".woocommerce
   .woocommerce-breadcrumb{padding:0;margin:0 0 1em}" o tej samej
   specyficzności co goły .woocommerce-breadcrumb i wyższej niż .as-pd-crumbs;
   bez tego breadcrumbs kleiły się do nagłówka (potwierdzone). Beta:
   padding 24px od góry, 0 od dołu (odstęp do galerii daje hero: 28px). */
.as-pd-crumbs,.woocommerce .as-pd-crumbs{position:relative;padding:24px 0 0;margin:0;display:flex;align-items:center;gap:10px;font-size:14px;line-height:1.5;color:var(--g-400);flex-wrap:wrap}
.as-pd-crumbs a{color:var(--g-400)}
.as-pd-crumbs a:hover{color:var(--v-400)}
.as-pd-crumbs .as-pd-crumbs__sep{color:var(--g-700)}
.as-pd-crumbs [aria-current]{color:var(--g-100)}

/* ---------- Hero: galeria + buy-box ----------
   div.product zawiera WSZYSTKO, co woocommerce_after_single_product_summary
   wypisuje (zakładki, sekcje "Z tej samej serii"/"Podobne produkty") – hook
   fire'uje PRZED zamykającym </div> produktu (rdzeń WC,
   content-single-product.php). Stąd jawne grid-column/row na dzieciach. */
div.product{position:relative;display:grid;grid-template-columns:1fr 480px;column-gap:64px;align-items:start;padding:28px 0 0;margin:0}
/* Ukośne linie po prawej + fioletowa poświata u góry po lewej – jak
   .as-pd-hero__lines/.as-glow w becie. Pseudo-elementy absolutne nie zajmują
   komórek grida. */
div.product::before{content:"";position:absolute;left:0;right:0;top:0;height:900px;background:repeating-linear-gradient(112deg,transparent 0 36px,rgba(42,45,52,.35) 36px 37px);mask-image:linear-gradient(90deg,transparent 55%,#000 90%),linear-gradient(180deg,#000 80%,transparent);-webkit-mask-image:linear-gradient(90deg,transparent 55%,#000 90%);mask-composite:intersect;pointer-events:none;z-index:0}
div.product::after{content:"";position:absolute;top:-160px;left:-120px;width:700px;height:520px;background:radial-gradient(ellipse at center,rgba(124,58,237,.32),transparent 70%);filter:blur(30px);pointer-events:none;z-index:0}
div.product > *{position:relative;z-index:1}
/* min-width:0 – WooCommerce (JS galerii) potrafi ustawić px-owe szerokości
   na .flex-viewport i rozepchnąć kolumnę grida (potwierdzone na mobile). */
div.product > .woocommerce-product-gallery{grid-column:1;grid-row:1;min-width:0}
/* WooCommerce core (woocommerce-layout.css) ma float-owe reguły
   ".images{width:38%}" i ".summary{float:right;width:48%}" pisane pod inny
   layout – bez nadpisania buy-box renderował się na 48% swojej kolumny
   grida (230px zamiast 480px, potwierdzone na żywej stronie). */
div.product > .summary.entry-summary{grid-column:2;grid-row:1;min-width:0;width:100%!important;float:none!important;margin:0!important}
div.product > .as-pd-tabsec,
div.product > .as-section{grid-column:1/-1}
/* .as-section ma własny padding:0 var(--gutter) var(--section-gap)
   (theme.css) – tu jesteśmy już w .as-page--woocommerce z gutterem. */
div.product > .as-section{padding-left:0;padding-right:0;margin-top:0}
@media (max-width:1439px){div.product{grid-template-columns:1fr 420px;column-gap:40px}}
@media (max-width:1199px){div.product{grid-template-columns:1fr;column-gap:0;row-gap:32px}
  div.product > .summary.entry-summary{grid-column:1;grid-row:2}
}

/* ---------- Galeria = "scena" bety (.as-pd-stage: 736px, screentone, zdjęcie
   z insetem 24px i 112px od dołu na miniatury + etykietę) ---------- */
.woocommerce div.product div.images,
div.product .woocommerce-product-gallery{position:relative;width:100%!important;float:none!important;height:736px;background:var(--g-900);background-image:var(--screentone);background-size:8px 8px;border:1px solid var(--border);border-radius:4px;overflow:hidden;padding:0;margin:0;box-sizing:border-box}
/* Bez flexslidera (1 zdjęcie – cały dzisiejszy katalog): sam slajd jest
   absolutnym "obrazem sceny"; wrapper zostaje statyczny, żeby overlay'e
   (kanji/plakietki/stopka, wypisywane hookiem DO ŚRODKA wrappera) liczyły
   position:absolute od galerii, nie od zdjęcia. */
.woocommerce-product-gallery__wrapper{margin:0;width:100%;height:100%}
.woocommerce-product-gallery > .woocommerce-product-gallery__wrapper > .woocommerce-product-gallery__image{position:absolute;inset:24px 24px 112px;width:auto;cursor:zoom-in}
/* Z flexsliderem (>1 zdjęcie): viewport jest tym absolutnym obszarem, slajdy
   wypełniają go w 100% (product.js przenosi wtedy overlay'e do korzenia
   galerii, bo viewport ma overflow:hidden). */
/* position:absolute!important – flexslider ustawia inline position:relative
   na viewport; bez !important viewport zostawał w przepływie, brał wysokość
   kwadratowego slajdu (719px) i wychodził pod miniatury (potwierdzone). */
.woocommerce-product-gallery .flex-viewport{position:absolute!important;inset:24px 24px 112px;height:auto!important;overflow:hidden}
.woocommerce-product-gallery .flex-viewport .woocommerce-product-gallery__wrapper{height:100%}
.woocommerce-product-gallery .flex-viewport .woocommerce-product-gallery__image{height:100%}
.woocommerce-product-gallery__image > a{display:block;width:100%;height:100%}
.woocommerce-product-gallery__image > a > img{width:100%!important;height:100%!important;max-width:100%;object-fit:cover;object-position:50% 12%;border-radius:2px;transition:transform .7s var(--ease)}
.woocommerce-product-gallery:hover .woocommerce-product-gallery__image > a > img{transform:scale(1.04)}
.woocommerce-product-gallery .zoomImg{border-radius:2px}
/* Miniatury (flexslider dokłada <ol class="flex-control-thumbs"> do korzenia
   galerii tylko przy >1 zdjęciu) – w lewym dolnym rogu sceny jak .as-pd-thumbs */
.woocommerce-product-gallery .flex-control-thumbs{position:absolute;left:24px;bottom:20px;margin:0;padding:0;display:flex;gap:8px;z-index:3;list-style:none}
.woocommerce-product-gallery .flex-control-thumbs li{list-style:none;width:80px;height:80px;margin:0;float:none}
.woocommerce-product-gallery .flex-control-thumbs img{width:100%;height:100%;object-fit:cover;border-radius:4px;border:2px solid transparent;background:rgba(11,12,15,.7);opacity:.7;cursor:pointer;transition:border-color .25s,opacity .25s;box-sizing:border-box}
.woocommerce-product-gallery .flex-control-thumbs img.flex-active{border-color:var(--v-400);opacity:1}
/* Etykieta "01 / 04 · Widok z przodu" (animesklep_pd_gallery_overlay()) */
.as-pd-stage__foot{position:absolute;right:24px;bottom:20px;z-index:3;display:flex;align-items:flex-end;pointer-events:none}
.as-pd-stage__label{font-size:12px;letter-spacing:.1em;color:var(--g-400);font-family:var(--font-display);font-weight:700;background:rgba(11,12,15,.7);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);padding:8px 10px;border-radius:2px;white-space:nowrap}
/* Przycisk powiększenia – natywny trigger PhotoSwipe (dokładany przez
   wc-single-product.js, w środku emoji 🔍 z s.w.org) przestylowany na
   .as-pd-zoom-btn: 44px, prawy górny róg, lupa jako własna ikona SVG. */
a.woocommerce-product-gallery__trigger{position:absolute;top:36px;right:36px;width:44px;height:44px;z-index:3;border-radius:4px;border:0;background:rgba(11,12,15,.7) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%23F4F4F5' stroke-width='2'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m20 20-3.5-3.5M11 8v6M8 11h6'/%3E%3C/svg%3E") center/20px 20px no-repeat;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);text-indent:-9999px;overflow:hidden;font-size:0;transition:background-color .2s}
a.woocommerce-product-gallery__trigger:hover{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%23A78BFA' stroke-width='2'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m20 20-3.5-3.5M11 8v6M8 11h6'/%3E%3C/svg%3E")}
a.woocommerce-product-gallery__trigger > span{display:none}
.onsale{position:absolute;top:36px;left:36px;z-index:3;display:none}
/* Kanji w tle + plakietki (functions.php, hook woocommerce_product_thumbnails) */
.as-pd-stage__kanji{position:absolute;left:-8px;bottom:8px;font-family:var(--font-display);font-weight:900;font-size:120px;line-height:1;color:var(--g-850);letter-spacing:-.04em;pointer-events:none;user-select:none;z-index:0}
.as-pd-stage__badges{position:absolute;top:36px;left:36px;display:flex;gap:6px;flex-wrap:wrap;z-index:3;pointer-events:none}

/* ---------- Kolumna informacji (.as-pd-info w becie = .summary) ---------- */
.summary.entry-summary{display:flex;flex-direction:column;gap:24px}
.as-pd-head{display:flex;flex-direction:column;gap:12px}
.as-pd-buybox{display:flex;flex-direction:column;gap:20px}
.as-pd-info__series{display:flex;align-items:center;gap:12px;font-size:12px;letter-spacing:.14em;text-transform:uppercase;font-weight:600;color:var(--v-400);margin:0}
.as-pd-info__series::before{content:"";width:24px;height:2px;background:currentColor}
.summary.entry-summary .product_title{font-family:var(--font-display);font-weight:900;font-size:44px;line-height:1;letter-spacing:-.025em;margin:0;text-wrap:balance;color:var(--g-100)}
.as-pd-meta{display:flex;align-items:center;gap:14px;font-size:14px;color:var(--g-400);flex-wrap:wrap;margin:0}
.as-pd-meta a{font-weight:600;color:var(--g-100)}
.as-pd-meta a:hover{color:var(--v-400)}
.as-pd-meta strong{font-weight:500;color:var(--g-100)}
.as-pd-meta .muted{color:var(--g-500)}
.as-pd-meta .as-stars{font-size:16px;letter-spacing:2px}
.summary.entry-summary .woocommerce-product-details__short-description{display:none}

/* ---------- Selektor wariantu ("Wersja") – pigułki zamiast <select>, patrz
   enhanceVariationSelectors() w product.js; natywny <select> zostaje w DOM
   (ukryty), bo to on niesie logikę WooCommerce ---------- */
.as-pd-variants-block{display:flex;flex-direction:column;gap:0}
.as-pd-variants__head{display:flex;justify-content:space-between;font-size:16px;font-weight:600;color:var(--g-100)}
.as-pd-variants{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
.as-pd-variant{height:52px;padding:0 20px;white-space:nowrap;background:transparent;border:1px solid var(--g-700);border-radius:6px;color:var(--g-100);cursor:pointer;font-family:var(--font-sans);font-weight:600;font-size:14px;display:flex;align-items:center;gap:12px;transition:border-color .25s,box-shadow .25s,background .25s}
.as-pd-variant:hover{border-color:var(--v-400)}
.as-pd-variant span:last-child:not(:first-child){color:var(--g-400);font-weight:400}
.as-pd-variant.is-active{background:var(--g-950);border-color:var(--v-400);box-shadow:var(--focus-ring)}
table.variations[hidden]{display:none}
.summary.entry-summary table.variations{width:100%;border:0;margin:0}
.summary.entry-summary table.variations th{text-align:left;font-size:14px;color:var(--g-400);font-weight:600;padding:8px 12px 8px 0}
.summary.entry-summary table.variations select{height:48px;padding:0 14px;background:var(--g-900);border:1px solid var(--g-700);border-radius:4px;color:var(--g-100);font-size:14px}
.summary.entry-summary .reset_variations{display:none!important}

/* ---------- Karta ceny (.as-pd-pricecard – animesklep_pricecard_open()/
   _close() w functions.php otwierają/zamykają ją WOKÓŁ prawdziwych hooków
   WooCommerce cena/warianty/koszyk) ---------- */
.as-pd-pricecard{position:relative;overflow:hidden;border-radius:4px;border:1px solid var(--border);background:var(--g-950);box-shadow:0 0 0 1px rgba(124,58,237,.25),0 24px 60px rgba(0,0,0,.55);padding:28px;display:flex;flex-direction:column;gap:20px}
.as-pd-pricecard::before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,transparent,var(--v-600) 20%,var(--v-400) 50%,var(--v-600) 80%,transparent)}
.as-pd-pricecard::after{content:"";position:absolute;inset:0;background:radial-gradient(ellipse 70% 90% at 100% 0%,rgba(76,29,149,.55),transparent 70%);pointer-events:none}
.as-pd-pricecard > *{position:relative;z-index:1}
.summary.entry-summary p.price{font-family:var(--font-display);font-weight:900;font-size:38px;letter-spacing:-.025em;line-height:.95;margin:0;color:var(--g-100);padding-right:56px}
.summary.entry-summary p.price .price{font:inherit;color:inherit}
.summary.entry-summary p.price ins{text-decoration:none;color:var(--g-100)}
.summary.entry-summary p.price del{color:var(--g-500);font-weight:500;font-size:.5em;margin-left:8px;letter-spacing:0}
.summary.entry-summary p.price .screen-reader-text{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.as-pd-pricecard__note{font-size:12px;color:var(--g-400);margin:-12px 0 0;display:block}
.as-pd-pricecard__omnibus{font-size:12px;color:var(--g-500);margin:-4px 0 0;display:block}
.as-pd-pricecard__omnibus[hidden]{display:none}
.as-pd-pricecard__omnibus b{color:var(--g-300);font-weight:600}
.as-pd-pricecard__fav.as-fav{position:absolute;top:28px;right:28px;width:42px;height:42px;border:1px solid var(--g-700);opacity:1;transform:none;backdrop-filter:none;-webkit-backdrop-filter:none;z-index:2}
.as-pd-pricecard__fav.as-fav:hover{border-color:var(--pink)}

/* Wiersz ilość + przycisk (.as-pd-pricecard__row): produkt prosty = form.cart,
   wariantowy = .woocommerce-variation-add-to-cart wewnątrz form.variations_form */
.summary.entry-summary form.cart{margin:0;display:flex;flex-direction:column;gap:20px}
.summary.entry-summary form.cart:not(.variations_form),
.summary.entry-summary .woocommerce-variation-add-to-cart{display:flex;flex-direction:row;flex-wrap:nowrap;align-items:center;gap:10px}
.summary.entry-summary .single_variation_wrap{display:flex;flex-direction:column;gap:20px}
/* Natywne cena/stan/opis wariantu i <p class="stock"> – dane przepisywane do
   p.price i wiersza stanu niżej przez product.js, tu tylko wizualnie ukryte */
.summary.entry-summary .woocommerce-variation.single_variation{display:none!important}
.summary.entry-summary p.stock{display:none!important}
/* Stepper −/+ (przyciski dokłada product.js, progresywne ulepszenie) */
.summary.entry-summary .quantity{display:flex;height:60px;border:1px solid var(--g-700);border-radius:4px;overflow:hidden;background:var(--g-900);flex:none;margin:0}
.summary.entry-summary .quantity .as-pd-qty-btn{width:36px;border:0;background:transparent;color:var(--g-100);cursor:pointer;font-size:20px;font-family:var(--font-display);transition:color .2s;flex:none;padding:0}
.summary.entry-summary .quantity .as-pd-qty-btn:hover:not(:disabled){color:var(--v-400)}
.summary.entry-summary .quantity .as-pd-qty-btn:disabled{color:var(--g-700);cursor:not-allowed}
.summary.entry-summary .quantity .qty{height:60px;width:36px;min-width:0;text-align:center;background:transparent;border:0;color:var(--g-100);font-family:var(--font-display);font-weight:700;font-size:18px;font-variant-numeric:tabular-nums;-moz-appearance:textfield;padding:0}
.summary.entry-summary .quantity[data-as-pd-enhanced] .qty{width:28px}
.summary.entry-summary .quantity .qty::-webkit-outer-spin-button,
.summary.entry-summary .quantity .qty::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.summary.entry-summary .single_add_to_cart_button,
.summary.entry-summary button.button{height:60px;padding:0 24px;background:var(--v-600)!important;color:#fff!important;border:0;border-radius:4px;font-family:var(--font-sans);font-weight:600;font-size:18px;line-height:1;cursor:pointer;box-shadow:0 0 28px rgba(124,58,237,.45);transition:background .25s;display:inline-flex;align-items:center;justify-content:center;gap:12px;flex:1;min-width:0;white-space:nowrap;margin:0}
.summary.entry-summary .single_add_to_cart_button::after,
.summary.entry-summary button.button::after{content:"";width:20px;height:20px;flex:none;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E") center/20px no-repeat}
.summary.entry-summary .single_add_to_cart_button:hover,
.summary.entry-summary button.button:hover{background:var(--v-500)!important}
.summary.entry-summary .single_add_to_cart_button.disabled,
.summary.entry-summary .single_add_to_cart_button:disabled{opacity:.5;cursor:not-allowed;box-shadow:none}
/* Wiersz stan magazynowy + dostawa (animesklep_pd_stock_row(), inc/product-page.php) */
.as-pd-pricecard__stock{display:flex;justify-content:space-between;align-items:center;font-size:14px;color:var(--g-400);border-top:1px solid var(--border);padding-top:16px;flex-wrap:wrap;gap:8px}
.as-pd-pricecard__stock > span{display:flex;align-items:center;gap:8px}
.as-pd-pricecard__stock b{color:var(--g-100);font-weight:500}

/* ---------- Box z ikonami (animesklep_pd_infobox() w functions.php) ---------- */
.as-pd-infobox{display:grid;grid-template-columns:1fr;border:1px solid var(--border);border-radius:4px;overflow:hidden}
.as-pd-infobox__row{display:flex;border-bottom:1px solid var(--border);align-items:center;gap:12px;padding:14px 20px;font-size:14px;font-weight:500;color:var(--g-100)}
.as-pd-infobox__row:last-child{border-bottom:0}
.as-pd-infobox__row svg{color:var(--pink);filter:drop-shadow(0 0 8px rgba(255,77,141,.5));flex:none}

.product_meta{display:none}

/* ---------- Sekcja z zakładkami + aside (tabs/tabs.php) ---------- */
.as-pd-tabsec{position:relative;margin-top:64px;padding:0 0 var(--section-gap);display:grid;grid-template-columns:1fr 400px;gap:64px;align-items:start}
.as-pd-tabsmain{display:flex;flex-direction:column;gap:28px;min-width:0}
.as-pd-tabs{display:flex;gap:4px;border-bottom:1px solid var(--border);overflow-x:auto;scrollbar-width:none}
.as-pd-tabs::-webkit-scrollbar{display:none}
.as-pd-tab{height:56px;padding:0 20px;background:transparent;border:0;border-bottom:2px solid transparent;color:var(--g-400);font-family:var(--font-display);font-weight:700;font-size:20px;letter-spacing:-.01em;cursor:pointer;margin-bottom:-1px;white-space:nowrap;transition:color .25s,border-color .25s}
.as-pd-tab:hover{color:var(--g-100)}
.as-pd-tab[aria-selected="true"]{color:var(--g-100);border-bottom-color:var(--v-400)}

.as-pd-panel{display:flex;flex-direction:column;gap:20px;font-size:16px;line-height:1.55;color:var(--g-300);max-width:720px;text-wrap:pretty;animation:as-pd-fade .35s var(--ease)}
.as-pd-panel[hidden]{display:none}
.as-pd-panel h2{font-family:var(--font-display);font-weight:900;font-size:28px;letter-spacing:-.02em;line-height:1.05;margin:0;color:var(--g-100)}
.as-pd-panel p{margin:0}
.as-pd-panel a{color:var(--v-400)}
.as-pd-panel ul{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:10px}
.as-pd-panel ul li{display:flex;gap:12px}
.as-pd-panel ul li::before{content:"✦";color:var(--pink);flex:none}
@keyframes as-pd-fade{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}

/* Dostawa i zwroty (animesklep_delivery_tab_content() w functions.php) */
.as-pd-shiplist{display:flex;flex-direction:column}
.as-pd-shiprow{display:grid;grid-template-columns:1fr auto auto;gap:24px;padding:16px 0;border-bottom:1px solid var(--border);font-size:16px;align-items:center}
.as-pd-shiprow span:first-child{font-weight:500;color:var(--g-100)}
.as-pd-shiprow__time{color:var(--g-400);font-size:14px}
.as-pd-shiprow__price{font-family:var(--font-display);font-weight:900;font-size:18px;min-width:80px;text-align:right;color:var(--g-100)}
.as-pd-shiprow__price--free{color:var(--emerald)}
.as-pd-returns{display:grid;grid-template-columns:1fr 1fr;gap:12px;font-size:14px;line-height:1.5;color:var(--g-300)}
.as-pd-returns__box{padding:20px;border:1px solid var(--border);border-radius:4px;display:flex;flex-direction:column;gap:8px}
.as-pd-returns__box b{font-family:var(--font-display);font-weight:700;font-size:18px;color:var(--g-100)}

/* Specyfikacja (natywna tabela atrybutów WooCommerce = dl.as-pd-specs w becie) */
table.woocommerce-product-attributes{width:100%;border-collapse:collapse;font-size:16px;margin:0}
table.woocommerce-product-attributes tr{border-bottom:1px solid var(--border)}
table.woocommerce-product-attributes th{width:220px;text-align:left;padding:14px 16px 14px 0;color:var(--g-400);font-size:14px;font-weight:500;vertical-align:top}
table.woocommerce-product-attributes td{padding:14px 0;color:var(--g-100);font-weight:500;font-style:normal} /* rdzeń WC daje td kursywę */
table.woocommerce-product-attributes td p{margin:0}

/* FAQ (animesklep_pd_faq_tab_content(), inc/product-page.php) */
.as-pd-faq{display:flex;flex-direction:column;max-width:720px}
.as-pd-faqitem{border-bottom:1px solid var(--border)}
.as-pd-faqitem__q{width:100%;display:flex;justify-content:space-between;align-items:center;gap:24px;padding:20px 0;background:transparent;border:0;color:var(--g-100);cursor:pointer;text-align:left;font-family:var(--font-display);font-weight:700;font-size:18px;transition:color .2s}
.as-pd-faqitem__q:hover{color:var(--v-400)}
.as-pd-faqitem__q svg{flex:none;transition:transform .3s var(--ease)}
.as-pd-faqitem.is-open .as-pd-faqitem__q svg{transform:rotate(180deg)}
.as-pd-faqitem__a{margin:0;padding:0 48px 20px 0;font-size:16px;line-height:1.55;color:var(--g-300);text-wrap:pretty;animation:as-pd-fade .3s var(--ease)}
.as-pd-faqitem__a[hidden]{display:none}

/* ---------- Opinie (woocommerce/single-product-reviews.php – layout bety) ---------- */
.as-pd-reviews{display:flex;flex-direction:column;gap:20px}
.as-pd-revsummary{display:grid;grid-template-columns:auto 1fr;gap:40px;align-items:center;padding-bottom:28px;border-bottom:1px solid var(--border)}
.as-pd-revsummary__score{display:flex;flex-direction:column;gap:6px}
.as-pd-revsummary__score b{font-family:var(--font-display);font-weight:900;font-size:64px;line-height:1;letter-spacing:-.03em;color:var(--g-100)}
.as-pd-revsummary__score span{font-size:14px;color:var(--g-400)}
.as-pd-revsummary__score .as-stars{color:var(--amber);font-size:16px}
.as-pd-bars{display:flex;flex-direction:column;gap:8px}
.as-pd-bar{display:grid;grid-template-columns:28px 1fr 40px;gap:12px;align-items:center;font-size:14px;color:var(--g-400)}
.as-pd-bar b{color:var(--g-100);font-weight:600;white-space:nowrap}
.as-pd-bar__track{height:6px;background:var(--g-800);border-radius:3px;overflow:hidden}
.as-pd-bar__fill{display:block;height:100%;background:var(--amber)}
.as-pd-bar span:last-child{text-align:right;font-variant-numeric:tabular-nums}
ol.as-pd-revlist{display:flex;flex-direction:column;list-style:none;margin:0;padding:0}
.as-pd-review{display:flex;flex-direction:column;gap:12px;padding:24px 0;border-bottom:1px solid var(--border);margin:0}
.as-pd-review__head{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap}
.as-pd-review__who{display:flex;align-items:center;gap:12px;font-size:14px}
.as-pd-review__name{display:flex;flex-direction:column}
.as-pd-review__who b{font-weight:600;color:var(--g-100)}
.as-pd-review__verified{color:var(--g-500);font-size:12px;display:flex;align-items:center;gap:6px}
.as-pd-review__verified svg{color:var(--emerald)}
.as-pd-review__date{display:flex;align-items:center;gap:12px;font-size:12px;color:var(--g-500)}
.as-pd-review__date .as-stars{font-size:14px;letter-spacing:2px}
.as-pd-review h3{font-family:var(--font-display);font-weight:700;font-size:18px;margin:0;color:var(--g-100)}
.as-pd-review p{margin:0;font-size:16px;line-height:1.55;color:var(--g-300);text-wrap:pretty}
.as-pd-helpful{align-self:flex-start;height:32px;padding:0 12px;background:transparent;border:1px solid var(--border);border-radius:16px;color:var(--g-400);font-family:var(--font-sans);font-size:13px;font-weight:500;cursor:pointer;display:flex;align-items:center;gap:8px;transition:border-color .25s,color .25s}
.as-pd-helpful:hover{border-color:var(--v-400);color:var(--v-400)}
.as-pd-helpful[aria-pressed="true"]{border-color:var(--v-400);color:var(--v-400);cursor:default}
.as-pd-revfoot{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px}
.as-pd-revfoot__count{font-weight:600;font-size:14px;color:var(--g-400)}
.as-pd-noreviews{color:var(--g-400);margin:0}
.as-pd-revpagination ul{display:flex;gap:6px;list-style:none;margin:0;padding:0}
.as-pd-revpagination a,.as-pd-revpagination span{display:inline-grid;place-items:center;min-width:36px;height:36px;padding:0 10px;border:1px solid var(--border);border-radius:4px;color:var(--g-300);font-size:14px}
.as-pd-revpagination .current{border-color:var(--v-400);color:var(--g-100)}
/* Formularz opinii (comment_form() rdzenia, rozwijany przyciskiem "Napisz opinię") */
#review_form_wrapper[hidden]{display:none}
#review_form_wrapper{padding-top:24px;border-top:1px solid var(--border);animation:as-pd-fade .3s var(--ease)}
#review_form #reply-title{display:block;font-family:var(--font-display);font-weight:700;font-size:20px;color:var(--g-100);margin:0 0 16px}
#review_form .comment-form{display:flex;flex-direction:column;gap:14px}
#review_form .comment-form p,#review_form .comment-form-rating{margin:0;display:flex;flex-direction:column;gap:6px}
#review_form label{font-size:13px;font-weight:600;color:var(--g-400);letter-spacing:.02em}
#review_form .required{color:var(--pink)}
#review_form select,#review_form textarea,#review_form input[type=text],#review_form input[type=email]{width:100%;background:var(--g-900);border:1px solid var(--g-700);border-radius:4px;color:var(--g-100);padding:12px 14px;font-family:var(--font-sans);font-size:14px;box-sizing:border-box}
#review_form textarea{min-height:120px;resize:vertical}
#review_form p.stars{display:flex;gap:2px;font-size:20px}
#review_form p.stars a{color:var(--g-600);text-decoration:none}
#review_form p.stars a.active,#review_form p.stars:hover a{color:var(--amber)}
#review_form p.stars a:hover ~ a{color:var(--g-600)}
#review_form .comment-form-cookies-consent{flex-direction:row;align-items:center;gap:10px;font-size:13px;color:var(--g-400)}
#review_form .comment-form-cookies-consent label{font-weight:400;text-transform:none;letter-spacing:0}
#review_form .form-submit{margin-top:4px}
#review_form input#submit,#review_form .form-submit input[type=submit]{height:48px;padding:0 24px;background:var(--v-600)!important;color:#fff!important;border:0;border-radius:4px;font-family:var(--font-sans);font-weight:600;font-size:15px;cursor:pointer;transition:background .25s}
#review_form input#submit:hover,#review_form .form-submit input[type=submit]:hover{background:var(--v-500)!important}

/* ---------- Aside przy zakładkach (animesklep_pd_aside(), inc/product-page.php) ---------- */
.as-pd-aside{display:flex;flex-direction:column;gap:12px;padding-top:28px;min-width:0}
.as-pd-aside__card{position:relative;overflow:hidden;background:var(--g-900);border:1px solid var(--border);border-radius:4px;padding:24px;display:flex;flex-direction:column;gap:16px}
.as-pd-aside__card > .as-micro{position:relative}
.as-pd-aside__kanji{position:absolute;right:-10px;top:-34px;font-family:var(--font-display);font-weight:900;font-size:96px;line-height:1;color:var(--g-850);letter-spacing:-.04em;pointer-events:none}
.as-pd-aside__score{position:relative;display:flex;align-items:center;gap:12px}
.as-pd-aside__score b{font-family:var(--font-display);font-weight:900;font-size:52px;line-height:1;letter-spacing:-.03em;color:var(--g-100)}
.as-pd-aside__score > span{display:flex;flex-direction:column;gap:4px;font-size:14px;color:var(--g-400)}
.as-pd-aside__score .as-stars{color:var(--amber);font-size:16px}
.as-pd-aside__quote{position:relative;margin:0;font-size:14px;line-height:1.55;color:var(--g-300);border-top:1px solid var(--border);padding-top:16px}
.as-pd-aside__quote cite{display:block;margin-top:8px;color:var(--g-500);font-size:12px;font-style:normal}
.as-pd-aside__card > a{position:relative;font-weight:600;font-size:14px;color:var(--g-100)}
.as-pd-aside__card > a:hover{color:var(--v-400)}
.as-pd-aside__help{background:var(--g-950);border:1px solid var(--border);border-radius:4px;padding:24px;display:flex;flex-direction:column;gap:12px;font-size:14px;color:var(--g-400);line-height:1.5}
.as-pd-aside__help b{font-family:var(--font-display);font-weight:700;font-size:18px;color:var(--g-100)}
.as-pd-aside__help a{display:flex;align-items:center;gap:10px;font-weight:600;color:var(--g-100);word-break:break-all}
.as-pd-aside__help a:hover{color:var(--v-400)}
.as-pd-aside__help a svg{color:var(--v-400);flex:none}

/* ---------- "Z tej samej serii" / "Podobne produkty" (animesklep_pd_related_sections()) ---------- */
.as-pd-relhead{display:flex;align-items:baseline;justify-content:space-between;gap:16px;flex-wrap:wrap}
.as-pd-relhead__sub{font-size:14px;color:var(--g-400)}

/* ---------- Sticky pasek CTA (animesklep_pd_stickybar(), sterowany w product.js) ---------- */
.as-pd-stickybar{position:fixed;left:0;right:0;bottom:0;z-index:60;background:rgba(15,16,19,.92);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-top:1px solid var(--border);box-shadow:0 -24px 60px rgba(0,0,0,.6);animation:as-pd-bar-in .4s var(--ease)}
.as-pd-stickybar[hidden]{display:none}
@keyframes as-pd-bar-in{from{transform:translateY(100%)}to{transform:none}}
.as-pd-stickybar__line{position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,transparent,var(--v-600) 20%,var(--v-400) 50%,var(--v-600) 80%,transparent)}
.as-pd-stickybar__inner{position:relative;max-width:var(--container);margin:0 auto;padding:12px var(--gutter);display:grid;grid-template-columns:auto 1fr auto auto;gap:24px;align-items:center}
.as-pd-stickybar__thumb{width:56px;height:56px;border-radius:4px;overflow:hidden;background:var(--g-900);flex:none}
.as-pd-stickybar__thumb img{width:100%;height:100%;object-fit:cover}
.as-pd-stickybar__title{font-family:var(--font-display);font-weight:700;font-size:18px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--g-100)}
.as-pd-stickybar__price{font-family:var(--font-display);font-weight:900;font-size:28px;letter-spacing:-.02em;color:var(--g-100);white-space:nowrap}
.as-pd-stickybar__price del{color:var(--g-500);font-weight:500;font-size:.55em;margin-right:8px}
.as-pd-stickybar__price ins{text-decoration:none}
.as-pd-stickybar__cta{height:52px;padding:0 28px;background:var(--v-600);color:#fff;font-weight:600;font-size:16px;min-width:150px}
.as-pd-stickybar__cta:hover{background:var(--v-500)}

/* ==========================================================================
   Nadpisania rdzenia WooCommerce (woocommerce.css / woocommerce-layout.css)
   o WYŻSZEJ specyficzności niż reguły wyżej. Rdzeń używa selektorów typu
   ".woocommerce div.product form.cart" (0,3,2) / ".woocommerce #reviews
   #comments ol.commentlist li" (0,5,2), które biją nasze ".summary
   .entry-summary …" – potwierdzone na żywej stronie: oliwkowa cena
   (kolor rdzenia), 32px marginesu pod formularzem koszyka, clearfixowe
   ::before/::after jako puste elementy flexa dokładające gap, biały
   okrągły trigger zoomu z lupą z pseudo-elementów, brak separatorów opinii.
   ========================================================================== */
.woocommerce div.product .summary p.price,
.woocommerce div.product .summary span.price,
.woocommerce div.product .summary p.price .amount,
.woocommerce div.product .summary p.price ins{color:var(--g-100)}
/* rdzeń: p.price{font-size:1.25em} (0,3,2) bił nasze 38px z bety */
.woocommerce div.product .summary p.price{font-family:var(--font-display);font-weight:900;font-size:38px;letter-spacing:-.025em;line-height:.95}
.woocommerce div.product .summary p.price .amount,.woocommerce div.product .summary p.price bdi{font-size:inherit;font-weight:inherit}
.woocommerce div.product .summary p.price del,.woocommerce div.product .summary p.price del .amount{font-size:.5em;font-weight:500}
@media (max-width:639px){.woocommerce div.product .summary p.price{font-size:30px}}
.woocommerce div.product .summary p.price del,.woocommerce div.product .summary p.price del .amount{color:var(--g-500);opacity:1}
.woocommerce div.product .summary form.cart{margin:0}
.woocommerce div.product .summary form.cart::before,.woocommerce div.product .summary form.cart::after,
.woocommerce div.product div.summary::before,.woocommerce div.product div.summary::after,
.woocommerce div.product .single_variation_wrap::before,.woocommerce div.product .single_variation_wrap::after,
.woocommerce div.product .woocommerce-variation-add-to-cart::before,.woocommerce div.product .woocommerce-variation-add-to-cart::after{display:none;content:none}
.woocommerce div.product .summary form.cart div.quantity{float:none;margin:0}
.woocommerce div.product .summary form.cart .button{float:none}
.woocommerce div.product .summary form.cart .quantity .qty{width:36px}
.woocommerce div.product .summary form.cart .quantity[data-as-pd-enhanced] .qty{width:28px}
/* trigger zoomu – patrz komentarz przy a.woocommerce-product-gallery__trigger wyżej */
.woocommerce div.product div.images a.woocommerce-product-gallery__trigger{position:absolute;top:36px;right:36px;width:44px;height:44px;font-size:0;z-index:3;border-radius:4px;box-sizing:border-box;background:rgba(11,12,15,.7) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%23F4F4F5' stroke-width='2'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m20 20-3.5-3.5M11 8v6M8 11h6'/%3E%3C/svg%3E") center/20px 20px no-repeat}
.woocommerce div.product div.images a.woocommerce-product-gallery__trigger:hover{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%23A78BFA' stroke-width='2'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m20 20-3.5-3.5M11 8v6M8 11h6'/%3E%3C/svg%3E")}
.woocommerce div.product div.images a.woocommerce-product-gallery__trigger::before,
.woocommerce div.product div.images a.woocommerce-product-gallery__trigger::after{display:none;content:none}
/* miniatury flexslidera – rdzeń: li{width:25%;float:left}, img{opacity:.5} */
.woocommerce div.product div.images .flex-control-thumbs{position:absolute;left:24px;bottom:20px;margin:0;padding:0;display:flex;gap:8px;z-index:3;overflow:visible}
.woocommerce div.product div.images .flex-control-thumbs li{width:80px;height:80px;float:none;margin:0}
.woocommerce div.product div.images .flex-control-thumbs img{width:100%;height:100%;object-fit:cover;margin:0;border-radius:4px;border:2px solid transparent;background:rgba(11,12,15,.7);opacity:.7;box-sizing:border-box}
.woocommerce div.product div.images .flex-control-thumbs img.flex-active,
.woocommerce div.product div.images .flex-control-thumbs img:hover{border-color:var(--v-400);opacity:1}
/* opinie – rdzeń: li{padding:0;margin:0 0 20px;border:0}, #respond p{margin:0 0 10px} */
.woocommerce #reviews #comments ol.commentlist li.as-pd-review{padding:24px 0;margin:0;border:0;border-bottom:1px solid var(--border);background:0 0;position:static}
.woocommerce #reviews #comments ol.commentlist li.as-pd-review:first-child{padding-top:4px}
.woocommerce #review_form #respond p{margin:0}
.woocommerce #review_form #respond .comment-form{display:flex;flex-direction:column;gap:14px}
/* specyfikacja – rdzeń: table.shop_attributes td{font-style:italic;padding:0;border-bottom:1px dotted} */
.woocommerce table.shop_attributes th,.woocommerce table.shop_attributes td{border-top:0;border-bottom:1px solid var(--border);font-style:normal;line-height:1.5}
.woocommerce table.shop_attributes th{width:220px;padding:14px 16px 14px 0;color:var(--g-400);font-size:14px;font-weight:500}
.woocommerce table.shop_attributes td{padding:14px 0;color:var(--g-100);font-weight:500;vertical-align:middle}
.woocommerce table.shop_attributes th{vertical-align:middle}
.woocommerce table.shop_attributes td p{margin:0;padding:0} /* rdzeń: td p{padding:8px 0} – podwajało wysokość wiersza */
.woocommerce table.shop_attributes tr:last-child th,.woocommerce table.shop_attributes tr:last-child td{border-bottom:0}
@media (max-width:1023px){.woocommerce table.shop_attributes th{width:160px}}
@media (max-width:639px){
  .woocommerce table.shop_attributes th{width:120px}
  .woocommerce div.product div.images a.woocommerce-product-gallery__trigger{top:24px;right:24px}
  .woocommerce div.product div.images .flex-control-thumbs{left:16px;bottom:16px;overflow-x:auto;max-width:calc(100% - 32px)}
  .woocommerce div.product div.images .flex-control-thumbs li{width:64px;height:64px;flex:none}
}

/* ==========================================================================
   Responsywność (progi bety)
   ========================================================================== */
@media (max-width:1439px){
  .woocommerce div.product div.images,div.product .woocommerce-product-gallery{height:620px} /* selektor rdzenia (0,2,2) musi być też tu, inaczej bazowe 736px wygrywa z (0,2,1) */
}
@media (max-width:1199px){
  .woocommerce div.product div.images,div.product .woocommerce-product-gallery{height:560px}
  .as-pd-tabsec{grid-template-columns:1fr;gap:32px}
  .as-pd-aside{padding-top:0}
}
@media (max-width:1023px){
  .summary.entry-summary .product_title{font-size:34px}
  table.woocommerce-product-attributes th{width:160px}
  .as-pd-shiprow{grid-template-columns:1fr auto;row-gap:4px}
  .as-pd-shiprow__price{grid-column:2/3}
  .as-pd-returns{grid-template-columns:1fr}
  .as-pd-revsummary{grid-template-columns:1fr;gap:20px}
  .as-pd-stickybar__inner{grid-template-columns:auto 1fr auto;gap:12px}
  .as-pd-stickybar__price{display:none}
}
@media (max-width:639px){
  .woocommerce div.product div.images,div.product .woocommerce-product-gallery{height:420px}
  .woocommerce-product-gallery > .woocommerce-product-gallery__wrapper > .woocommerce-product-gallery__image,
  .woocommerce-product-gallery .flex-viewport{inset:16px 16px 72px}
  /* Z miniaturami (beta ≤639: .as-pd-stage__foot w kolumnie – miniatury,
     pod nimi etykieta): etykieta NAD rzędem miniatur, zdjęcie wyżej, żeby
     etykieta nie nachodziła na miniatury (potwierdzone na 390px). */
  .woocommerce-product-gallery:has(.flex-control-thumbs) .flex-viewport{inset:16px 16px 136px}
  .woocommerce-product-gallery:has(.flex-control-thumbs) .as-pd-stage__foot{bottom:92px}
  .woocommerce-product-gallery .flex-control-thumbs{left:16px;bottom:16px;overflow-x:auto;max-width:calc(100% - 32px)}
  .woocommerce-product-gallery .flex-control-thumbs li{width:64px;height:64px;flex:none}
  .as-pd-stage__foot{right:16px;bottom:16px}
  .as-pd-stage__badges{top:24px;left:24px}
  a.woocommerce-product-gallery__trigger{top:24px;right:24px}
  .as-pd-stage__kanji{font-size:80px}
  .summary.entry-summary .product_title{font-size:28px}
  .as-pd-pricecard{padding:20px}
  .as-pd-pricecard__fav.as-fav{top:20px;right:20px}
  .summary.entry-summary p.price{font-size:30px}
  .summary.entry-summary .single_add_to_cart_button,
  .summary.entry-summary button.button{padding:0 16px;font-size:16px;gap:8px}
  table.woocommerce-product-attributes th{width:120px}
  .as-pd-stickybar__thumb{width:44px;height:44px}
  .as-pd-stickybar__title{font-size:14px}
  .as-pd-stickybar__cta{min-width:0;padding:0 16px}
}
