/*
 * Antykwariat Polski – style WooCommerce.
 * Nadpisuje domyślne style WooCommerce tokenami makiety; szablonów WooCommerce nie nadpisujemy.
 */

/* ---------- Przyciski ---------- */
.woocommerce a.button, .woocommerce button.button, .woocommerce input.button, .woocommerce #respond input#submit,
.woocommerce a.button.alt, .woocommerce button.button.alt, .woocommerce input.button.alt,
.woocommerce-page a.button, .woocommerce-page button.button, .woocommerce-page input.button,
.wc-block-components-button:not(.is-link), .wp-block-woocommerce-cart .wc-block-cart__submit-button, .wc-block-components-checkout-place-order-button {
  display: inline-block; font: 500 10.5px/1 var(--sans) !important; letter-spacing: .22em; text-transform: uppercase; padding: 17px 30px; background: var(--ink); color: #fff; border: 0; border-radius: 0; cursor: pointer; text-align: center; transition: background .3s, color .3s; min-height: 0 }
.woocommerce a.button:hover, .woocommerce button.button:hover, .woocommerce input.button:hover, .woocommerce #respond input#submit:hover,
.woocommerce a.button.alt:hover, .woocommerce button.button.alt:hover, .woocommerce input.button.alt:hover,
.wc-block-components-button:not(.is-link):hover { background: #000; color: #fff }
.woocommerce button.button:disabled, .woocommerce button.button:disabled[disabled], .woocommerce button.button.alt.disabled { background: var(--ink); color: #fff; opacity: .45; padding: 17px 30px }
.woocommerce a.button.ghost, .woocommerce .button.wc-backward, .woocommerce-cart .woocommerce button[name="update_cart"] { background: transparent; color: var(--ink); box-shadow: inset 0 0 0 1px var(--ink) }
.woocommerce a.button.ghost:hover, .woocommerce .button.wc-backward:hover, .woocommerce-cart .woocommerce button[name="update_cart"]:hover { background: var(--ink); color: #fff }
.wc-block-components-button.outlined { background: transparent; color: var(--ink); box-shadow: inset 0 0 0 1px var(--ink) }

/* ---------- Formularze ---------- */
.woocommerce form .form-row label, .woocommerce-page form .form-row label { font: 500 10px/1.4 var(--sans); letter-spacing: .2em; text-transform: uppercase; color: var(--mute); margin-bottom: 4px }
.woocommerce form .form-row input.input-text, .woocommerce form .form-row textarea, .woocommerce form .form-row select,
.woocommerce .quantity .qty, .woocommerce-cart table.cart td.actions .coupon .input-text, .select2-container--default .select2-selection--single {
  font: 400 15px/1.4 var(--sans); color: var(--ink); background: transparent; border: 0; border-bottom: 1px solid #cfc6ba; border-radius: 0; padding: 10px 0; box-shadow: none }
.select2-container--default .select2-selection--single { height: auto }
.select2-container--default .select2-selection--single .select2-selection__rendered { padding-left: 0; line-height: 1.4 }
.woocommerce form .form-row input.input-text:focus, .woocommerce form .form-row textarea:focus { outline: none; border-bottom-color: var(--ink); box-shadow: 0 1px 0 var(--ink) }
.woocommerce .quantity .qty { width: 4.2em; text-align: center; border: 1px solid #cfc6ba; padding: 14px 4px }
.woocommerce form.login, .woocommerce form.register, .woocommerce form.checkout_coupon, .woocommerce form.lost_reset_password { border: 1px solid var(--line); border-radius: 0; padding: clamp(18px, 3vw, 32px) }
.wc-block-components-text-input input, .wc-block-components-combobox .wc-block-components-combobox-control input, .wc-block-components-form .wc-block-components-text-input input { border-radius: 0 !important; border-color: #cfc6ba !important; font-family: var(--sans) !important }
.wp-block-woocommerce-checkout, .wp-block-woocommerce-cart { font-family: var(--sans) }
.wc-block-components-title, .wc-block-cart__totals-title { font: 500 10.5px/1.3 var(--sans) !important; letter-spacing: .22em !important; text-transform: uppercase !important }

/* ---------- Komunikaty ---------- */
.woocommerce-message, .woocommerce-info, .woocommerce-error, .woocommerce-noreviews, p.no-comments {
  background: var(--soft); color: var(--ink); border-top: 2px solid var(--ink); font-size: 14px; border-radius: 0 }
.woocommerce-message::before, .woocommerce-info::before { color: var(--ink) }
.woocommerce-error { border-top-color: #8a1f1f } .woocommerce-error::before { color: #8a1f1f }
.woocommerce-message .button, .woocommerce-info .button { padding: 12px 18px !important }
.woocommerce-store-notice, p.demo_store { background: var(--ink); font: 500 10px/1.4 var(--sans); letter-spacing: .2em; text-transform: uppercase }

/* ---------- Okruszki ---------- */
.woocommerce .woocommerce-breadcrumb { margin: 0; color: var(--mute); font-size: inherit }
.woocommerce .woocommerce-breadcrumb a { color: inherit }

/* ---------- Sklep: układ z filtrami ---------- */
.shop { display: grid; grid-template-columns: 230px minmax(0,1fr); gap: clamp(24px, 4vw, 56px); padding-block: 44px 100px }
.filters { display: grid; align-content: start; gap: 9px; font-size: 14px; max-height: calc(100vh - 140px); overflow: auto; position: sticky; top: 110px; scrollbar-width: thin }
.filters b, .filters .widget-title, .filters h2 { margin: 18px 0 0; font: 500 10px/1 var(--sans); letter-spacing: .22em; text-transform: uppercase; color: var(--ink) }
.filters > b:first-child, .filters > .widget:first-child .widget-title, .filters > .widget:first-child h2 { margin-top: 0 }
.filters a { color: var(--mute); display: flex; justify-content: space-between; gap: 10px; line-height: 1.5 }
.filters a.on, .filters a:hover, .filters .current-cat > a { color: var(--ink) }
.filters i, .filters .count { font-style: normal; font-size: 12px }
.filters ul { list-style: none; margin: 9px 0 0; padding: 0; display: grid; gap: 9px }
.filters ul ul { margin: 9px 0 0 12px }
.filters .widget { margin: 0 }
.filters .cat-item { display: block }
.filters .cat-item a { display: inline }
.filters li.cat-item { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 0 10px; color: var(--mute) }
.filters li.cat-item > ul { flex-basis: 100% }
.ap-shop .woocommerce-products-header { display: none }
.sortbar { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 12px 20px; padding-bottom: 16px; margin-bottom: 26px; border-bottom: 1px solid var(--line); font-size: 13px; color: var(--mute) }
.sortbar .woocommerce-result-count, .sortbar .woocommerce-ordering { float: none; margin: 0 }
.sortbar .woocommerce-product-search { flex: 1; max-width: 300px; display: flex; gap: 10px }
.sortbar input[type=search], .sortbar select { font: inherit; color: var(--ink); background: transparent; border: 0; border-bottom: 1px solid var(--line); padding: 6px 0; min-width: 0; border-radius: 0 }
.sortbar input[type=search] { flex: 1 }
.sortbar .woocommerce-product-search button { background: none; border: 0; padding: 6px 0; font: 500 10px/1 var(--sans); letter-spacing: .2em; text-transform: uppercase; color: var(--ink); cursor: pointer }

/* ---------- Siatka produktów ---------- */
.woocommerce ul.products, .woocommerce-page ul.products { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 40px clamp(14px, 2vw, 26px); margin: 0 0 40px; padding: 0 }
.woocommerce ul.products.columns-4, .woocommerce-page ul.products.columns-4 { grid-template-columns: repeat(4, minmax(0,1fr)) }
.woocommerce ul.products.columns-2 { grid-template-columns: repeat(2, minmax(0,1fr)) }
.woocommerce ul.products::before, .woocommerce ul.products::after { display: none !important }
.woocommerce ul.products li.product, .woocommerce-page ul.products li.product { float: none !important; width: auto !important; margin: 0 !important; padding: 0; text-align: left }
.woocommerce ul.products li.product a { display: block }
.pc .ph, .woocommerce ul.products li.product .ph { aspect-ratio: 1; background: var(--soft); overflow: hidden; margin: 0 }
.woocommerce ul.products li.product .ph img { width: 100%; height: 100%; object-fit: cover; margin: 0; transition: transform 1.2s var(--ease) }
.woocommerce ul.products li.product:hover .ph img { transform: scale(1.04) }
.woocommerce ul.products li.product .au { display: block; margin-top: 14px; font: italic 400 14px/1.3 var(--text); color: var(--mute) }
.woocommerce ul.products li.product .woocommerce-loop-product__title { margin: 4px 0 8px; padding: 0; font: 400 19px/1.25 var(--display); color: var(--ink) }
.woocommerce ul.products li.product .price { display: inline; color: var(--ink); font: 500 13px/1 var(--sans); letter-spacing: .06em; margin: 0 }
.woocommerce ul.products li.product .price del { color: var(--mute); opacity: 1 } .woocommerce ul.products li.product .price ins { text-decoration: none; font-weight: 500 }
.woocommerce ul.products li.product .tag { display: inline-block; margin-left: 10px; font: 500 9px/1.4 var(--sans); letter-spacing: .18em; text-transform: uppercase; color: var(--mute) }
.woocommerce ul.products li.product .onsale, .woocommerce span.onsale { top: 10px; left: 10px; right: auto; margin: 0; min-width: 0; min-height: 0; padding: 7px 10px; border-radius: 0; background: var(--ink); color: #fff; font: 500 9px/1 var(--sans); letter-spacing: .2em; text-transform: uppercase }
.woocommerce ul.products li.product .button { margin-top: 14px }
.woocommerce ul.products li.product .ap-sold { display: block; margin-top: 6px; font: 500 9px/1.4 var(--sans); letter-spacing: .18em; text-transform: uppercase; color: #8a1f1f }
.woocommerce nav.woocommerce-pagination ul { border: 0; display: flex; justify-content: center; gap: 8px }
.woocommerce nav.woocommerce-pagination ul li { border: 0; float: none }
.woocommerce nav.woocommerce-pagination ul li a, .woocommerce nav.woocommerce-pagination ul li span { min-width: 40px; padding: 12px 10px; font: 500 11px/1 var(--sans); letter-spacing: .14em; box-shadow: inset 0 0 0 1px var(--line); color: var(--ink) }
.woocommerce nav.woocommerce-pagination ul li span.current, .woocommerce nav.woocommerce-pagination ul li a:hover, .woocommerce nav.woocommerce-pagination ul li a:focus { background: var(--ink); color: #fff; box-shadow: none }
.woocommerce .woocommerce-info.woocommerce-no-products-found { margin-top: 0 }

/* ---------- Karta produktu ---------- */
.ap-product .crumbs { padding-top: 28px }
.ap-product div.product { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: 0 clamp(28px, 5vw, 72px); padding-top: 26px; position: relative }
.ap-product div.product > * { grid-column: 1 / -1 }
.ap-product div.product > .woocommerce-product-gallery { grid-column: 1; grid-row: 1; float: none !important; width: auto !important; margin: 0 !important; min-width: 0 }
.ap-product div.product > .summary { grid-column: 2; grid-row: 1; float: none !important; width: auto !important; margin: 0 !important; min-width: 0 }
.ap-product div.product > .onsale { grid-column: 1; grid-row: 1; z-index: 3 }
.woocommerce div.product div.images { margin: 0 }
.woocommerce div.product div.images img { background: var(--soft) }
.woocommerce div.product div.images .woocommerce-product-gallery__image--placeholder img, .woocommerce div.product div.images .woocommerce-product-gallery__wrapper > .woocommerce-product-gallery__image:only-child img { aspect-ratio: 1; object-fit: cover }
.woocommerce div.product div.images .flex-control-thumbs { display: grid; grid-template-columns: repeat(6, minmax(0,1fr)); gap: 8px; margin-top: 8px }
.woocommerce div.product div.images .flex-control-thumbs li { width: auto !important; float: none !important; margin: 0 !important }
.woocommerce div.product div.images .flex-control-thumbs li img { aspect-ratio: 1; object-fit: cover; opacity: .6; transition: opacity .3s }
.woocommerce div.product div.images .flex-control-thumbs li img.flex-active, .woocommerce div.product div.images .flex-control-thumbs li img:hover { opacity: 1 }
.woocommerce div.product div.images .woocommerce-product-gallery__trigger { background: var(--bg); border-radius: 0 }
.woocommerce div.product .ap-nogal .cover { aspect-ratio: 1 }
.ap-product .summary > .lab { display: block; margin-top: 4px }
.ap-product .product_title { margin: 14px 0 12px; font: 400 clamp(28px, 3vw, 40px)/1.12 var(--display); text-wrap: balance; overflow-wrap: break-word }
.ap-product .product_title em { font-family: var(--text) }
.woocommerce div.product .summary p.price, .woocommerce div.product .summary span.price { font: 400 30px/1 var(--display); color: var(--ink); margin: 0 0 22px }
.woocommerce div.product .summary p.price del { font-size: .6em; color: var(--mute); opacity: 1 } .woocommerce div.product .summary p.price ins { text-decoration: none }
.biblio { margin: 0 0 26px; padding: 18px 0; border-block: 1px solid var(--line); font: 400 14.5px/1.75 var(--sans); color: var(--ink) }
.biblio p { margin: 0 } .biblio p + p { margin-top: .5em }
.ap-buyrow { display: flex; flex-wrap: wrap; gap: 12px; align-items: stretch }
.ap-buyrow form.cart { display: flex; flex-wrap: wrap; gap: 12px; margin: 0 !important }
.ap-buyrow form.cart::before, .ap-buyrow form.cart::after { display: none }
.ap-buyrow form.cart .quantity { float: none; margin: 0 !important }
.ap-buyrow form.cart .button { float: none }
.ap-buyrow .stock { flex-basis: 100%; margin: 0 }
.woocommerce div.product p.stock, .woocommerce div.product .stock { font: 500 10px/1.4 var(--sans); letter-spacing: .2em; text-transform: uppercase; color: var(--mute) }
.woocommerce div.product .out-of-stock { color: #8a1f1f }
.ap-buyrow .btn { padding: 17px 30px }
.woocommerce div.product form.cart.variations_form { display: block }
.woocommerce div.product form.cart .variations { margin-bottom: 16px }
.woocommerce div.product form.cart .variations label { font: 500 10px/1.4 var(--sans); letter-spacing: .2em; text-transform: uppercase }
.trust { list-style: none; padding: 0; margin: 26px 0; display: grid; gap: 8px; font-size: 13.5px; color: var(--mute) }
.trust li::before { content: "\2014"; margin-right: 10px; color: var(--ink) }
.bindnote { display: flex; gap: 16px; align-items: flex-start; background: var(--soft); padding: 18px }
.bindnote svg { flex: none; width: 40px; height: 20px; margin-top: 3px; color: var(--ink) }
.bindnote p { margin: 0; font-size: 13.5px; color: var(--mute) }
.bindnote b { color: var(--ink); font-weight: 500 }
.pdesc { max-width: 70ch; margin-top: 70px }
.pdesc h2 { font: 400 28px/1.2 var(--display); margin: 0 0 18px }
.pdesc p { color: #4a4038 }
.pdesc .shop_attributes { margin-top: 30px; border-top: 1px solid var(--line) }
.woocommerce table.shop_attributes th, .woocommerce table.shop_attributes td { border-bottom: 1px solid var(--line); padding: 10px 8px; background: none !important; font-style: normal }
.woocommerce table.shop_attributes th { font: 500 10px/1.6 var(--sans); letter-spacing: .2em; text-transform: uppercase; color: var(--mute); width: 12em }
.ap-product #reviews { max-width: 70ch; margin-top: 60px }
.ap-product .related, .ap-product .upsells { margin-top: 72px; padding: 0 0 80px }
.ap-product .related > h2, .ap-product .upsells > h2 { display: flex; align-items: baseline; gap: 10px; margin: 0 0 30px; font: 500 10.5px/1.2 var(--sans); letter-spacing: .26em; text-transform: uppercase }
.ap-product .related > h2::before, .ap-product .upsells > h2::before { content: "\25CF"; color: var(--gilt); font-size: 8px; vertical-align: 2px }
.ap-product .related > h2 .lnk, .ap-product .upsells > h2 .lnk { margin-left: auto; letter-spacing: .22em }

/* ---------- Koszyk, zamówienie, konto ---------- */
.ap-wc-page .woocommerce { padding-block: 10px 40px }
.woocommerce table.shop_table { border: 0; border-top: 1px solid var(--ink); border-radius: 0; border-collapse: collapse }
.woocommerce table.shop_table th { font: 500 10px/1.4 var(--sans); letter-spacing: .2em; text-transform: uppercase; color: var(--mute) }
.woocommerce table.shop_table td, .woocommerce table.shop_table th { border-top: 0; border-bottom: 1px solid var(--line); padding: 14px 10px }
.woocommerce table.shop_table td.product-name a { font: 400 17px/1.3 var(--display) }
.woocommerce table.cart img { width: 72px }
.woocommerce a.remove { color: var(--ink) !important; border-radius: 0 }
.woocommerce a.remove:hover { background: var(--ink); color: #fff !important }
.woocommerce .cart-collaterals .cart_totals h2, .woocommerce-checkout h3, .woocommerce-account h2, .woocommerce-account h3, #order_review_heading { font: 400 26px/1.2 var(--display) }
.woocommerce-checkout #payment, .woocommerce-cart .cart-collaterals .cart_totals { background: var(--soft); border-radius: 0 }
.woocommerce-checkout #payment div.payment_box { background: var(--bg); border-radius: 0 }
.woocommerce-checkout #payment div.payment_box::before { border-bottom-color: var(--bg) }
.woocommerce-checkout #payment ul.payment_methods { border-bottom-color: var(--line) }
.woocommerce-account .woocommerce-MyAccount-navigation ul { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--line) }
.woocommerce-account .woocommerce-MyAccount-navigation li a { display: block; padding: 12px 0; border-bottom: 1px solid var(--line); font: 500 10.5px/1.3 var(--sans); letter-spacing: .2em; text-transform: uppercase; color: var(--mute) }
.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a, .woocommerce-account .woocommerce-MyAccount-navigation li a:hover { color: var(--ink) }
.woocommerce-account .woocommerce-MyAccount-content a:not(.button) { text-decoration: underline }

/* ---------- Mobile ---------- */
@media (max-width: 900px) {
  .shop, .ap-product div.product { grid-template-columns: minmax(0,1fr) }
  .ap-product div.product > .summary { grid-column: 1; grid-row: 2; margin-top: 28px !important }
  .filters { position: static; max-height: none; overflow: visible; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 9px 16px }
  .filters b, .filters .widget, .filters .widget-title { grid-column: 1 / -1 }
  .filters > b ~ a { font-size: 13px }
  .sortbar { gap: 12px }
  .sortbar .woocommerce-product-search { flex-basis: 100%; max-width: none }
  .woocommerce ul.products, .woocommerce-page ul.products, .woocommerce ul.products.columns-4, .woocommerce-page ul.products.columns-4 { grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 32px 14px }
  .woocommerce ul.products li.product .woocommerce-loop-product__title { font-size: 16px }
  .woocommerce ul.products li.product .tag { display: block; margin: 6px 0 0 }
  .ap-buyrow > *, .ap-buyrow form.cart, .ap-buyrow form.cart .button { flex: 1 1 100% }
  .ap-buyrow form.cart .quantity + .button { flex: 1 }
  .ap-buyrow form.cart .quantity { flex: none }
  .pdesc { margin-top: 50px }
  .woocommerce table.shop_attributes th { width: auto }
}

/* Listy bez punktorów także wtedy, gdy domyślne style WooCommerce są wyłączone */
.woocommerce ul.products, .woocommerce div.product div.images .flex-control-thumbs, .woocommerce nav.woocommerce-pagination ul { list-style: none }
.woocommerce ul.products li.product { list-style: none }
