/* Własny katalog i karta produktu nad natywnymi szablonami WooCommerce. */
.woocommerce ul.products li.product .woocommerce-loop-product__title { color: var(--ao-heading); font-family: var(--ao-font); font-size: 1rem; line-height: 1.4; }
.woocommerce ul.products li.product .price { color: var(--ao-brand); font-weight: 600; }
.woocommerce :is(a.button, button.button, input.button), .woocommerce :is(a.button.alt, button.button.alt, input.button.alt) { border-radius: var(--ao-radius); background: var(--ao-purchase); color: var(--ao-heading); font-family: var(--ao-font); line-height: 1.4; }
.woocommerce :is(a.button, button.button, input.button):hover { background: #f15c26; color: var(--ao-heading); }
.woocommerce :is(.woocommerce-message,.woocommerce-info,.woocommerce-error) { border-top-color: var(--ao-brand); }
.woocommerce form .form-row input.input-text, .woocommerce form .form-row textarea { min-height: 44px; }

/* Catalogue: native WooCommerce loops, queries and product forms. */
.ao-catalog-banners{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px;margin:16px 0 24px}
.ao-catalog-banners a{display:block;position:relative;min-width:0;aspect-ratio:310/160;overflow:hidden}
.ao-catalog-banners img{display:block;width:100%;height:100%;object-fit:cover}
.ao-catalog-banners__print{position:absolute;inset:28% auto 8% 6%;color:#647fdb;font-size:22px;font-weight:700;line-height:1.03}
.ao-catalog-banners__print small{display:block;margin-top:5px;color:#9430a9;font-size:15px;font-weight:500;line-height:1.1}
.ao-catalog-banners__print em{position:absolute;bottom:0;right:-118px;background:#6694ec;color:white;padding:7px 14px;border-radius:4px;font-size:15px;font-style:normal}
.ao-commerce { padding-top: 2rem; }
.woocommerce .woocommerce-breadcrumb { margin-bottom: 2rem; font-size: .875rem; overflow-wrap: anywhere; }
.ao-catalog { display: grid; grid-template-columns: 270px minmax(0, 1fr); gap: 2rem; align-items: start; }
.ao-catalog__results { min-width: 0; }
.ao-catalog__results{position:relative}
.ao-catalog__filters { border: 1px solid var(--ao-border); border-radius: var(--ao-radius); background: var(--ao-white); }
.ao-catalog__filters > summary { padding: 1rem; font-weight: 600; cursor: pointer; color: var(--ao-heading); }
@media(min-width:768px){.ao-catalog__filters>summary{font-size:30px;padding:18px 20px}.ao-catalog__filters>summary::marker{content:''}.ao-catalog__filter-content{padding:0 20px 20px}.ao-catalog__toolbar{position:absolute;top:0;right:0;margin:0!important}.ao-catalog__results .woocommerce-products-header{padding-right:300px}}
.ao-filters-mobile-title{display:none}
.ao-catalog__price-panel{margin-top:20px;border-top:1px solid var(--ao-border);padding-top:14px}
.ao-catalog__price-panel>summary{cursor:pointer;color:var(--ao-heading);font-weight:600}
.ao-catalog__price-panel .ao-price-filter{padding-top:14px}
.ao-catalog__filter-content { padding: 0 1rem 1rem; }
.ao-catalog__filter-content h2 { font-size: 1.35rem; margin: 1.5rem 0 .75rem; }
.ao-categories, .ao-categories ul { list-style: none; padding: 0; margin: 0; }
.ao-categories .children { display: none; padding-left: .875rem; border-left: 1px solid var(--ao-border); margin-left: .25rem; }
.ao-categories :is(.current-cat,.current-cat-parent,.current-cat-ancestor) > .children { display: block; }
.ao-categories li { margin: .25rem 0; font-size: .875rem; color: var(--ao-brand); }
.ao-categories a { display: inline-block; padding-block: .5rem; color: var(--ao-heading); text-decoration: none; }
.ao-categories .current-cat > a { color: var(--ao-brand); font-weight: 700; text-decoration: underline; }
.ao-categories a:hover { text-decoration: underline; }
.ao-price-filter fieldset { border: 0; padding: 0; margin: 0 0 1rem; min-width: 0; }
.ao-price-filter legend { font-weight: 600; padding: 0 0 .5rem; }
.ao-price-filter__inputs { display: grid; grid-template-columns: 1fr 1fr; gap: .75rem; }
.ao-price-filter input { display: block; width: 100%; min-width: 0; margin-top: .25rem; padding: .5rem; }
.ao-price-filter .button { width: 100%; min-height: 44px; }
.ao-price-filter__reset { display: block; margin-top: .75rem; font-size: .875rem; }
.woocommerce .woocommerce-products-header h1 { font-size: clamp(1.5rem, 2.3vw, 2rem); margin: 0 0 1.25rem; }
.ao-catalog__toolbar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .75rem; margin-bottom: 1.5rem; }
.ao-catalog__toolbar .woocommerce-notices-wrapper { flex-basis: 100%; }
.ao-catalog__toolbar .woocommerce-notices-wrapper:empty { display: none; }
.woocommerce .ao-catalog__toolbar :is(.woocommerce-result-count,.woocommerce-ordering) { float: none; margin: 0; }
.woocommerce .woocommerce-ordering select { width: 100%; max-width: 100%; min-height: 44px; font-size: .875rem; }
.woocommerce ul.products { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 1.5rem; margin: 0 0 2rem; padding: 0; }
.woocommerce ul.products::before, .woocommerce ul.products::after { display: none; }
.woocommerce ul.products li.product { display: flex; flex-direction: column; float: none; width: auto; min-width: 0; margin: 0; padding: 1rem; border: 1px solid var(--ao-border); border-radius: var(--ao-radius); background: var(--ao-white); box-shadow: 0 3px 14px #0000000a; }
.woocommerce ul.products li.product a.woocommerce-loop-product__link { display: flex; flex-direction: column; flex: 1; }
.woocommerce ul.products li.product a img { width: 100%; height: auto; aspect-ratio: 1; object-fit: contain; margin: 0 0 1rem; }
.woocommerce ul.products li.product .woocommerce-loop-product__title { padding: .25rem 0 .75rem; font-weight: 500; }
.ao-product-category { color: var(--ao-text); font-size: .75rem; line-height: 1.4; text-transform: uppercase; }
.woocommerce ul.products li.product .price { margin-top: auto; margin-bottom: .5rem; font-size: 1.375rem; line-height: 1.4; }
.woocommerce ul.products li.product .price del { font-size: .875rem; }
.woocommerce ul.products li.product .price ins { text-decoration: none; }
.ao-catalog__results .ao-price-tax-note{font-size:14px;font-weight:400;color:var(--ao-text);white-space:nowrap}
.ao-catalog__results .woocommerce-result-count{display:none}
.ao-catalog__results ul.products li.product{padding:14px;box-shadow:0 3px 12px #00000016;border:0}
.ao-catalog__results ul.products li.product a img{height:172px;aspect-ratio:auto;margin-bottom:8px}
.ao-catalog__results ul.products li.product .woocommerce-loop-product__title{line-height:1.15;padding:0 0 6px;min-height:48px}
.ao-catalog__results ul.products li.product .price{margin-bottom:8px}
.ao-catalog__results ul.products li.product .button{margin-top:8px;min-height:40px;padding:8px}
.woocommerce ul.products li.product .button { text-align: center; margin-top: .75rem; min-height: 44px; display: flex; align-items: center; justify-content: center; padding: .75rem .5rem; font-size: .9rem; color: #171717; }
.woocommerce span.onsale { background: var(--ao-brand); color: var(--ao-white); border-radius: var(--ao-radius); min-height: 0; line-height: 1.5; padding: .35rem .65rem; }
.woocommerce nav.woocommerce-pagination ul { border: 0; display: flex; justify-content: center; flex-wrap: wrap; gap: .5rem; }
.woocommerce nav.woocommerce-pagination ul li { border: 0; }
.woocommerce nav.woocommerce-pagination ul li :is(a,span) { min-width: 44px; min-height: 44px; border: 1px solid var(--ao-border); border-radius: var(--ao-radius); padding: .8rem; }
.woocommerce nav.woocommerce-pagination ul li span.current { background: var(--ao-brand); color: var(--ao-white); }
.ao-category-description { margin-top: 3rem; padding-top: 2rem; border-top: 1px solid var(--ao-border); overflow-wrap: anywhere; }
/* Product: keep gallery, variation selection, stock, reviews and extension hooks. */
.woocommerce div.product { overflow-wrap: anywhere; }
.woocommerce div.product div.images { width: 48%; }
.woocommerce div.product div.summary { width: 47%; }
.woocommerce div.product div.images .woocommerce-product-gallery__image { border:1px solid var(--ao-brand); border-radius: 8px; overflow: hidden; box-shadow: none; }
.woocommerce div.product div.images img { aspect-ratio: 1; max-height:525px; object-fit: contain; background: #fff; }
.woocommerce div.product div.images .flex-control-thumbs { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: .75rem; margin-top: 1rem; }
.woocommerce div.product div.images .flex-control-thumbs li { width: auto; }
.woocommerce div.product .product_title { font-size: clamp(1.5rem,2.2vw,2rem); line-height: 1.25; margin-bottom: 1rem; }
.ao-product-top-categories{font-size:18px;line-height:1.35;color:var(--ao-text);margin-bottom:8px}
.ao-product-top-categories a{color:inherit;text-decoration:none}
.woocommerce div.product :is(p.price,span.price) { color: var(--ao-brand); font-size: 1.8rem; font-weight: 600; margin-bottom: 1.25rem; }
.woocommerce div.product p.price ins { text-decoration: none; }
.woocommerce div.product .stock { color: var(--ao-heading); font-size: 1rem; font-weight: 500; }
.woocommerce div.product .out-of-stock { color: var(--ao-brand); }
.woocommerce div.product form.cart { margin-block: 1.25rem 1.75rem; }
.woocommerce div.product form.cart:not(.variations_form):not(.grouped_form) { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem; }
.woocommerce div.product form.cart div.quantity { float: none; margin: 0; }
.woocommerce .quantity .qty { min-height: 48px; width: 5.5em; padding: .5rem; border: 1px solid var(--ao-border); border-radius: var(--ao-radius); }
.woocommerce div.product form.cart .button { min-height: 48px; padding: .8rem 1.25rem; color: #171717; }
.woocommerce div.product form.cart .variations { margin-bottom: 1rem; }
.woocommerce div.product form.cart .variations th { text-align: left; padding-right: .75rem; }
.woocommerce div.product form.cart .variations select { min-width: 0; width: 100%; min-height: 44px; }
.woocommerce-variation-add-to-cart { display: flex; flex-wrap: wrap; gap: .75rem; align-items: center; }
.woocommerce div.product .product_meta { display: grid; gap: .5rem; padding-top: 1rem; border-top: 1px solid var(--ao-border); font-size: .875rem; }
.ao-product-packaging { font-size: .875rem; }
.woocommerce div.product .woocommerce-tabs { clear: both; padding-top: 2rem; }
.woocommerce div.product .woocommerce-tabs ul.tabs { display: flex; flex-wrap: wrap; gap: .5rem 1.5rem; margin: 0 0 1.5rem; padding: 0; border-bottom: 1px solid var(--ao-border); }
.woocommerce div.product .woocommerce-tabs ul.tabs::before, .woocommerce div.product .woocommerce-tabs ul.tabs li::before, .woocommerce div.product .woocommerce-tabs ul.tabs li::after { display: none; }
.woocommerce div.product .woocommerce-tabs ul.tabs li { border: 0; border-radius: 0; background: transparent; margin: 0; padding: 0; }
.woocommerce div.product .woocommerce-tabs ul.tabs li a { font-size: 1.2rem; color: var(--ao-heading); padding: .75rem 0; }
.woocommerce div.product .woocommerce-tabs ul.tabs li.active { border-bottom: 3px solid var(--ao-brand); }
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a { color: var(--ao-brand); }
.woocommerce div.product .woocommerce-tabs .panel { line-height: 1.7; }
.woocommerce div.product .woocommerce-tabs .panel :is(img,table) { max-width: 100%; }
.woocommerce div.product .woocommerce-tabs .panel table { width: 100%; }
.woocommerce div.product .woocommerce-tabs .panel :is(h1,h2,h3) { margin-block: 1.5rem 1rem; }
.woocommerce .related { clear: both; padding-top: 2rem; }
.woocommerce .related > h2 { margin-bottom: 1.5rem; }
.woocommerce .related ul.products { grid-template-columns: repeat(4,minmax(0,1fr)); }
@media (max-width: 1100px) {
 .ao-catalog { grid-template-columns: 230px minmax(0,1fr); gap: 1.5rem; }
 .woocommerce ul.products { grid-template-columns: repeat(2,minmax(0,1fr)); }
 .woocommerce .related ul.products { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width: 767px) {
 .woocommerce div.product div.images{max-width:280px;margin-inline:auto}
 .ao-product-top-categories{font-size:16px}
.ao-catalog-banners{grid-template-columns:1fr;gap:20px;margin:0 0 24px}
.ao-catalog-banners a{aspect-ratio:350/150}
.ao-filters-desktop-title{display:none}.ao-filters-mobile-title{display:inline}
 .ao-catalog { grid-template-columns: minmax(0,1fr); }
 .ao-catalog__filter-content nav { max-height: 340px; overflow-y: auto; }
 .woocommerce ul.products { gap: .75rem; }
 .woocommerce ul.products li.product { padding: .75rem; }
 .woocommerce ul.products li.product .woocommerce-loop-product__title { font-size: .875rem; }
 .woocommerce ul.products li.product .price { font-size: 1.125rem; }
 .woocommerce ul.products li.product .button { font-size: .8rem; }
 .woocommerce div.product div.images, .woocommerce div.product div.summary { width: 100%; float: none; }
 .woocommerce div.product .woocommerce-tabs ul.tabs li a { font-size: 1rem; }
 .woocommerce .woocommerce-ordering { width: 100%; }
}
@media (max-width: 359px) {
 .woocommerce ul.products, .woocommerce .related ul.products { grid-template-columns: minmax(0,1fr); }
}
/* Override WooCommerce's percentage columns inside our CSS grid. */
.woocommerce ul.products[class*="columns-"] li.product { width: auto; margin: 0; }
.ao-omnibus-price-history { font-size: .875rem; line-height: 1.5; margin-bottom: 1.25rem; }
.ao-omnibus-price-history .woocommerce-Price-amount { font-size: inherit; }

/* Catalogue alignment: preserve native product queries and loop controls. */
body.woocommerce-shop,body.tax-product_cat,body.tax-product_tag{background:#fff}
.ao-catalog-banners{align-items:center;margin-top:19px;margin-bottom:24px}
.ao-catalog-banners a{height:186px;aspect-ratio:auto}
.ao-catalog-banners a:not(:last-child) img{object-fit:contain}
.ao-catalog__filters{border-color:var(--ao-ink);border-radius:4px}
.ao-catalog__filters>summary{color:var(--ao-ink)}
.ao-categories li{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:8px;align-items:baseline;font-family:Roboto,Arial,sans-serif;font-size:16px;line-height:24px;margin:0}
.ao-categories a{font-size:16px;line-height:24px;color:#303827;padding-block:10px}
.ao-category-count{color:var(--ao-brand);white-space:nowrap}
.ao-categories .children{grid-column:1/-1}
.ao-catalog__results .woocommerce-products-header h1{font-size:24px;line-height:30px;color:var(--ao-ink);margin-bottom:32px}
.ao-catalog__results .ao-product-category{font-size:14px;line-height:16px}
.ao-catalog__results .woocommerce-loop-product__title{font-size:16px;line-height:16px!important;font-weight:500;min-height:40px!important}
.ao-catalog__results ul.products li.product{padding:15px}
.ao-catalog__results ul.products li.product a img{height:172px}
.ao-catalog__results ul.products li.product .price{font-size:24px;line-height:30px}
.ao-catalog__results ul.products li.product .button{font-size:14px;min-height:38px;line-height:18px;padding:10px;width:100%;border-radius:3px}
.ao-catalog__results .ao-wishlist-button{height:44px;margin-top:25px;border-color:var(--ao-purchase);border-radius:3px;font-size:16px;font-weight:500;line-height:22px;color:#000}
.ao-commerce .woocommerce-breadcrumb{font-size:14px;line-height:22px}
.ao-commerce .woocommerce-breadcrumb a{text-decoration:none}
@media(min-width:1101px){
 .ao-catalog{grid-template-columns:293px minmax(0,1fr);gap:50px}
 .ao-catalog__filters>summary{font-size:32px;line-height:40px;padding:18px 20px 30px}
 .ao-catalog__results ul.products{gap:28px}
 .ao-catalog__toolbar .woocommerce-ordering select{width:274px;font-size:18px;color:var(--ao-ink);border-color:var(--ao-ink)}
}
@media(max-width:767px){
 .ao-commerce{width:calc(100% - 30px)}
 .ao-catalog-banners{gap:16px;margin-top:0;margin-bottom:32px}
 .ao-catalog-banners a{height:auto;aspect-ratio:350/150;margin-inline:5px}
 .ao-catalog-banners a:last-child{aspect-ratio:360/174;margin-inline:0;margin-top:12px}
 .ao-catalog__filters{border-color:var(--ao-brand)}
 .ao-catalog__filters>summary{text-align:center;color:var(--ao-brand);font-weight:400;list-style:none;padding:12px}
 .ao-catalog__filters>summary::marker,.ao-catalog__filters>summary::-webkit-details-marker{display:none;content:''}
}
