/*
 * Catania Calzature — catalogue: shop header, subcategory chips, filters (WooCommerce Product Filters), toolbar,
 * product grid (WooCommerce Product Collection), pagination.
 */

/* ---------- Shop header ---------- */
.cc-shop-head { margin: 4px 0 14px; }
.cc-shop-head__top { display: grid; gap: 8px; }
.cc-shop-head__name { display: flex; align-items: center; gap: 14px; min-width: 0; }
/* The text may shrink below its longest word (descriptions pasted with non-breaking spaces, long brand names). */
.cc-shop-head__top > * { min-width: 0; }
.cc-shop-head__title { min-width: 0; margin: 0; font-size: var(--wp--preset--font-size--xxl); font-weight: 400; overflow-wrap: anywhere; }
/* Description: the first two lines, "Leggi di più" opens the whole text in place (all of it is in the page). */
.cc-shop-head__intro { margin: 0; color: var(--c-text); font-size: 15px; line-height: 1.55; overflow-wrap: break-word; }
.cc-shop-head__desc > * { margin: 0 0 8px; }
.cc-shop-head__desc > :last-child { margin-bottom: 0; }
.cc-shop-head__desc :is(h2, h3, h4) { margin: 14px 0 6px; font-size: 16px; }
/* Closed only when JavaScript runs (html.cc-js, set in <head>): the page arrives closed, so nothing moves. */
.cc-js .cc-shop-head__intro.is-collapsible:not(.is-open) .cc-shop-head__desc { max-height: 3.1em; overflow: hidden; -webkit-mask-image: linear-gradient(to bottom, #000 45%, transparent); mask-image: linear-gradient(to bottom, #000 45%, transparent); }
.cc-shop-head__more { margin: 2px 0 0; padding: 0; border: 0; background: none; color: var(--c-ink); font: inherit; font-size: 12px; font-weight: 500; letter-spacing: var(--track); text-transform: uppercase; text-decoration: underline; text-underline-offset: 4px; cursor: pointer; }
.cc-shop-head__more:hover { color: var(--c-primary-700); }
html:not(.cc-js) .cc-shop-head__more { display: none; }
.cc-shop-head__logo { flex: none; display: grid; place-items: center; width: 64px; height: 48px; padding: 6px; border: 1px solid var(--c-line); border-radius: 0; background: #fff; }
@media (min-width: 1024px) { .cc-shop-head__logo { width: 88px; height: 64px; padding: 8px; } }
.cc-shop-head__logo img { max-width: 100%; max-height: 100%; object-fit: contain; }
.cc-shop-head .cc-chips { margin-top: 14px; }

/* Subcategories: chips with a small photo. One line that scrolls sideways on phones and tablets (edge to edge, the
   first chip aligned with the page), wrapped lines on computers. The chip of the page being shown is marked. */
.cc-subcats { display: flex; gap: 8px; margin: 16px calc(var(--gutter) * -1) 0; padding: 0 var(--gutter); overflow-x: auto; scroll-padding-inline: var(--gutter); scrollbar-width: none; list-style: none; }
.cc-subcats::-webkit-scrollbar { display: none; }
.cc-subcats > li { flex: none; }
.cc-subcat { display: flex; align-items: center; gap: 10px; height: 48px; padding: 0 16px 0 4px; border: 1px solid var(--c-line); border-radius: 0; background: #fff; color: var(--c-ink); font-size: 13px; font-weight: 400; white-space: nowrap; text-decoration: none !important; transition: border-color .15s, background-color .15s; }
.cc-subcat:hover { border-color: var(--c-ink); color: var(--c-ink); }
.cc-subcat__img { display: grid; flex: none; place-items: center; width: 38px; height: 38px; overflow: hidden; background: #fff; }
.cc-subcat__img img { width: 36px; height: 36px; object-fit: contain; }
.cc-subcat__img--empty { background: var(--c-soft); color: var(--c-ink); font: 400 16px var(--f-head); }
.cc-subcat.is-current { border-color: var(--c-ink); box-shadow: inset 0 0 0 1px var(--c-ink); color: var(--c-ink); }

/* ---------- Layout ---------- */
.cc-shop__layout { display: block; }
.cc-shop__toolbar { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 56px; margin: 0 0 14px; border-bottom: 1px solid var(--c-line); }
.cc-shop__toolbar .woocommerce-result-count, .cc-shop__toolbar .wc-block-product-results-count { margin: 0; color: var(--c-muted); font-size: 13px; }
.cc-shop__toolbar .woocommerce-ordering { margin: 0; }
.cc-shop__toolbar select.orderby { width: auto; min-height: 40px; padding: 0 36px 0 12px; border-color: var(--c-line); border-radius: 0; background-color: transparent; font-size: 13px; font-weight: 500; }
/* Nothing found (the grey box of patterns/no-*.php): no count and sorting bar. With no filter to offer (a search that
   matches nothing: WooCommerce hides the empty filter groups) the filters column goes too and the box is centred;
   with filters in use the column stays, to change them. */
.cc-shop__results:has(.wp-block-woocommerce-product-collection-no-results) .cc-shop__toolbar { display: none; }
.cc-shop__layout:has(.wp-block-woocommerce-product-collection-no-results):not(:has(.cc-fg:not(.wc-block-product-filter--hidden))) { display: block !important; }
.cc-shop__layout:has(.wp-block-woocommerce-product-collection-no-results):not(:has(.cc-fg:not(.wc-block-product-filter--hidden))) > .cc-shop__filters { display: none; }

/* Filters: WooCommerce Product Filters. Phones and tablets: button + sheet from the bottom (WooCommerce's own
   overlay, extended up to 1023 px); desktop: sidebar. */
.cc-shop__filters { position: relative; }
.cc-filters {
	--wc-product-filters-overlay-icon-size: 20px; --wc-product-filters-background-color: #fff; --wc-product-filters-text-color: var(--c-ink);
	--wc-product-filter-checkbox-list-option-element: #fff; --wc-product-filter-checkbox-list-option-element-border: var(--c-line-strong);
	--wc-product-filter-checkbox-list-option-element-selected: var(--c-primary); --wc-product-filter-checkbox-list-label-element: var(--c-ink);
	--wc-product-filter-price-slider: var(--c-primary); --wc-product-filter-price-slider-handle: #fff; --wc-product-filter-price-slider-handle-border: var(--c-primary);
}
/* Checkboxes like the native ones of the site: blue box with a white tick when chosen. */
.cc-filters input[type="checkbox"].wc-block-product-filter-checkbox-list__input { width: 20px; height: 20px; border-width: 1.5px; border-radius: 0; }
.cc-filters input[type="checkbox"].wc-block-product-filter-checkbox-list__input:checked { border-color: var(--c-primary); background: var(--c-primary); }
.cc-filters .wc-block-product-filter-checkbox-list__input-wrapper::before { display: none; }
.cc-filters .wc-block-product-filter-checkbox-list__mark { width: 20px; height: 20px; padding: 4px; color: #fff; }
.cc-filters .wc-block-product-filters__open-overlay { gap: 6px; min-height: 40px; padding: 0 14px; border: 1px solid var(--c-ink); border-radius: 0; background: #fff; color: var(--c-ink); font: 500 12px var(--f-body); letter-spacing: var(--track); text-transform: uppercase; cursor: pointer; }
.cc-filters .wc-block-product-filters__open-overlay span { padding: 0; }
/* Number of options chosen, on the "Filtra prodotti" button (site.js). */
.cc-filters .wc-block-product-filters__open-overlay[data-cc-count]::after { content: attr(data-cc-count); display: inline-grid; place-items: center; min-width: 20px; height: 20px; padding: 0 6px; border-radius: var(--r-pill); background: var(--c-primary); color: #fff; font: 700 11px/1 var(--f-body); }
.cc-filters .wc-block-product-filters__overlay-header { flex-flow: row; align-items: center; justify-content: space-between; padding: 12px 12px 8px 20px; border-bottom: 1px solid var(--c-line); }
.cc-filters__sheet-title { margin: 0; color: var(--c-ink); font: 400 22px var(--f-head); }
.cc-filters .wc-block-product-filters__close-overlay { min-height: 40px; padding: 0 8px; border-radius: 0; font-family: var(--f-body); font-size: 14px; cursor: pointer; }
/* WooCommerce gives some of its filter buttons a font of their own (Arial): the site font everywhere. */
.cc-filters .wc-block-product-filter-checkbox-list__show-more-button, .cc-filters .wc-block-product-filters__open-overlay, .cc-filters .wc-block-product-filters__apply { font-family: var(--f-body); }
/* Groups: the heading opens and closes the group (state on the <aside>, see site.js); the number counts the options
   chosen in it. */
.cc-filters .cc-fg { padding: 4px 0; border-bottom: 1px solid var(--c-line); }
.cc-filters .cc-fg > :last-child:not(.cc-filter__title) { margin-bottom: 12px; }
.cc-filter__title { margin: 0 !important; }
.cc-filter__toggle { display: flex; align-items: center; gap: 8px; width: 100%; min-height: 48px; padding: 0; border: 0; background: none; color: var(--c-ink); font: 500 12px var(--f-body); letter-spacing: var(--track); text-align: left; text-transform: uppercase; cursor: pointer; }
.cc-filter__toggle::after { content: ""; flex: none; width: 18px; height: 18px; margin-left: auto; background: var(--c-muted); -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") center / contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") center / contain no-repeat; transition: transform .2s; }
.cc-filter__toggle[aria-expanded="true"]::after { transform: rotate(180deg); }
.cc-filter__count { display: inline-grid; place-items: center; min-width: 20px; height: 20px; padding: 0 6px; border-radius: var(--r-pill); background: var(--c-primary); color: #fff; font: 700 11px/1 var(--f-body); }
.cc-shop__filters[data-cc-closed~="category"] .cc-fg--category > :not(.cc-filter__title),
.cc-shop__filters[data-cc-closed~="brand"] .cc-fg--brand > :not(.cc-filter__title),
.cc-shop__filters[data-cc-closed~="price"] .cc-fg--price > :not(.cc-filter__title),
.cc-shop__filters[data-cc-closed~="shoe"] .cc-fg--shoe > :not(.cc-filter__title),
.cc-shop__filters[data-cc-closed~="size"] .cc-fg--size > :not(.cc-filter__title),
.cc-shop__filters[data-cc-closed~="collection"] .cc-fg--collection > :not(.cc-filter__title),
.cc-shop__filters[data-cc-closed~="color"] .cc-fg--color > :not(.cc-filter__title) { display: none !important; }
/* Sizes: a grid of square buttons (WooCommerce's chips), sold out ones are not offered (the shop hides them). */
.cc-filters .wc-block-product-filter-chips__items { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 4px; margin: 0; padding: 0; }
.cc-filters .wc-block-product-filter-chips__item { display: grid; place-items: center; min-width: 0; min-height: 44px; margin: 0; padding: 2px 4px; border: 1px solid var(--c-line); border-radius: 0; background: #fff; color: var(--c-ink); font: 400 13px/1.2 var(--f-body); text-align: center; cursor: pointer; }
.cc-filters .wc-block-product-filter-chips__item:hover { border-color: var(--c-ink); }
.cc-filters .wc-block-product-filter-chips__item[aria-checked="true"] { border-color: var(--c-ink); background: var(--c-ink); color: #fff; }
.cc-filters .wc-block-product-filter-chips__label { display: grid; gap: 1px; }
.cc-filters .wc-block-product-filter-chips__count { color: var(--c-muted); font-size: 10px; }
.cc-filters .wc-block-product-filter-chips__item[aria-checked="true"] .wc-block-product-filter-chips__count { color: inherit; }
.cc-filters .wc-block-product-filter-chips__show-more { grid-column: 1 / -1; margin-top: 6px; padding: 6px 0; border: 0; background: none; color: var(--c-ink); font: 500 12px var(--f-body); letter-spacing: var(--track); text-align: left; text-transform: uppercase; text-decoration: underline; text-underline-offset: 4px; cursor: pointer; }
.cc-filters .wc-block-product-filter-checkbox-list__items { display: grid; gap: 2px; margin: 0; padding: 0; list-style: none; }
.cc-filters .wc-block-product-filter-checkbox-list__label { display: flex !important; align-items: center; gap: 10px; width: 100%; min-height: 36px; color: var(--c-ink); font-size: 14px; font-weight: 400; cursor: pointer; }
.cc-filters .wc-block-product-filter-checkbox-list__input-wrapper { flex: none; display: grid; }
.cc-filters .wc-block-product-filter-checkbox-list__text { display: flex; flex: 1; justify-content: space-between; gap: 8px; }
.cc-filters .wc-block-product-filter-checkbox-list__show-more, .cc-filters .wc-block-product-filter__show-more { margin-top: 6px; padding: 6px 0; border: 0; background: none; color: var(--c-ink); font: 500 12px var(--f-body); letter-spacing: var(--track); text-transform: uppercase; text-decoration: underline; text-underline-offset: 4px; cursor: pointer; }
/* Long lists (brands, colours…): a search field above the options filters them while typing (shown from 9 options). */
.cc-filter__search { margin: 0 0 8px; }
.cc-fg:not(:has(.wc-block-product-filter-checkbox-list__item:nth-child(9))) .cc-filter__search { display: none; }
.cc-filter__search > input[type="search"] { min-height: 40px; padding-top: 8px; padding-bottom: 8px; font-size: 15px; }
.cc-filters .wc-block-product-filter-checkbox-list .cc-filter-miss { display: none !important; }
.cc-filters .wc-block-product-filter-checkbox-list.is-searching .wc-block-product-filter-checkbox-list__item[hidden]:not(.cc-filter-miss) { display: block !important; }
.cc-filters .wc-block-product-filter-checkbox-list.is-searching :is(.wc-block-product-filter-checkbox-list__show-more, .wc-block-product-filter__show-more) { display: none !important; }
.cc-filter__none { margin: 4px 0 0; color: var(--c-muted); font-size: 14px; }
/* Filters in use: the button "Azzera i filtri" above the groups (WooCommerce shows it only when something is chosen),
   an outline button like the others of the site. */
.cc-filters .wp-block-woocommerce-product-filter-active { padding: 12px 0 4px; }
/* Computers: "Azzera i filtri" stays at the top of the filter column while it scrolls (the column scrolls on its own). */
@media (min-width: 1024px) {
	.cc-filters .wp-block-woocommerce-product-filter-active { position: sticky; top: -4px; z-index: 3; margin-top: -4px; padding: 8px 0 12px; background: var(--c-paper); box-shadow: 0 8px 8px -8px rgb(31 30 28 / 12%); }
}
.cc-filters__clear { width: 100%; margin: 0; }
.cc-filters__clear .wp-block-button__link { display: flex; align-items: center; justify-content: center; gap: 8px; width: 100%; min-height: 44px; padding: 0 16px; border: 1px solid var(--c-line-strong); border-radius: 0; background: #fff; color: var(--c-ink); font: 500 12px var(--f-body); letter-spacing: var(--track); text-transform: uppercase; text-decoration: none !important; cursor: pointer; }
.cc-filters__clear .wp-block-button__link:hover { border-color: var(--c-ink); background: #fff; color: var(--c-ink); }
.cc-filters__clear .wp-block-button__link::before { content: ""; width: 16px; height: 16px; background: currentColor; -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='m6 6 12 12M18 6 6 18'/%3E%3C/svg%3E") center / contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='m6 6 12 12M18 6 6 18'/%3E%3C/svg%3E") center / contain no-repeat; }
.cc-filters .wc-block-product-filter-price-slider { margin-top: 6px; }
.cc-filters .wc-block-product-filter-price-slider input[type="text"], .cc-filters .wc-block-product-filter-price-slider input[type="number"] { width: 96px; max-width: none; min-height: 40px; padding: 8px 10px; font-size: 14px; } /* WooCommerce's 60 px cut "6.385 €". */

@media (max-width: 1023px) {
	/* Filters on phones and tablets: a sheet from the bottom over 92% of the screen, above the header, with its own
	   header ("Filtri", close) and footer ("Applica"); only the options scroll. WooCommerce stops the page behind from
	   scrolling (overflow on <body>; the same on <html> would make <body> the scrolling box and move the sticky
	   header). The overlay layer stays on top also while the sheet slides down: no element on the way creates a
	   stacking context (the button above the toolbar has its own z-index instead). */
	.cc-filters .wc-block-product-filters__open-overlay { position: relative; z-index: 2; display: flex; }
	.cc-filters .wc-block-product-filters__overlay { position: fixed; inset: 0; z-index: 1000; display: block; flex-grow: 0; background: transparent; pointer-events: none; transition: background-color .3s; }
	.cc-filters.is-overlay-opened .wc-block-product-filters__overlay { background-color: rgb(31 30 28 / 45%); pointer-events: auto; }
	.cc-filters .wc-block-product-filters__overlay-wrapper { position: absolute; inset: 0; width: auto; height: auto; background: none; }
	.cc-filters .wc-block-product-filters__overlay-dialog {
		position: absolute; inset: auto 0 0; display: flex !important; flex-direction: column; height: 92%; height: 92dvh; max-height: none;
		overflow: hidden; border-radius: 0; background: #fff; color: var(--c-ink); box-shadow: 0 0 40px rgb(0 0 0 / 12%);
		transform: translateY(100%); visibility: hidden; transition: transform .3s ease, visibility 0s .3s;
	}
	.cc-filters.is-overlay-opened .wc-block-product-filters__overlay-dialog { transform: none; visibility: visible; transition: transform .3s ease; }
	.cc-filters .wc-block-product-filters__overlay-header { display: flex; flex: none; flex-flow: row; align-items: center; justify-content: space-between; padding: 12px 12px 10px 20px; border-bottom: 1px solid var(--c-line); background: #fff; }
	.cc-filters .wc-block-product-filters__overlay-content { display: flex; flex: 1 1 auto; flex-direction: column; gap: 0; min-height: 0; padding: 0 20px 20px; overflow-y: auto; overscroll-behavior: contain; background: #fff; }
	.cc-filters .wc-block-product-filters__overlay-footer { display: flex; flex: none; flex-direction: column; gap: 8px; padding: 12px 20px calc(12px + env(safe-area-inset-bottom)); border-top: 1px solid var(--c-line); background: #fff; box-shadow: none; }
	.cc-filters .wc-block-product-filters__overlay-footer > * { flex: 1 1 auto; margin: 0; }
	.cc-filters .wc-block-product-filters__overlay-footer .wp-block-button__link, .cc-filters .wc-block-product-filters__overlay-footer button { width: 100%; min-height: 48px; border-radius: 0; font: 500 13px var(--f-body); letter-spacing: var(--track); text-transform: uppercase; }
	/* "Azzera i filtri" under "Applica" (shop-filters/render.php): outline, muted and not clickable while nothing is
	   chosen. The one above the groups is the computers' only. */
	.cc-filters .wc-block-product-filters__overlay-footer .cc-filters__sheet-clear { border: 1px solid var(--c-line-strong); background: #fff; color: var(--c-ink); cursor: pointer; }
	.cc-filters .wc-block-product-filters__overlay-footer .cc-filters__sheet-clear:disabled { border-color: var(--c-line); color: var(--c-line-strong); cursor: default; pointer-events: none; }
	.cc-filters .wc-block-product-filters__overlay-content > .wp-block-woocommerce-product-filter-active { display: none !important; }
	.cc-shop__layout { display: block; }
	.cc-shop__layout > * { margin-block-start: 0; }
	/* The "Filtra prodotti" button sits in the toolbar row, at its left (same height, vertically centred). */
	.cc-shop__filters { display: flex; align-items: center; width: fit-content; min-height: 56px; margin: 0 0 -56px; }
	/* Nothing found: the toolbar row is hidden, so the button takes its own row above the grey box. */
	.cc-shop__layout:has(.wp-block-woocommerce-product-collection-no-results) .cc-shop__filters { margin-bottom: 8px; }
	/* Room for the button (about 200 px with the number of filters in use); the sort list takes what is left and cuts
	   its text instead of sliding under the button. */
	.cc-shop__layout:has(.cc-shop__filters) .cc-shop__toolbar { padding-left: 216px; }
	.cc-shop__toolbar :is(.wc-block-catalog-sorting, .wp-block-woocommerce-catalog-sorting, .woocommerce-ordering) { min-width: 0; max-width: 100%; }
	.cc-shop__toolbar select.orderby { width: 100%; min-width: 0; max-width: 100%; overflow: hidden; text-overflow: ellipsis; }
	.cc-shop__toolbar { justify-content: flex-end; padding-left: 0; }
	.cc-shop__toolbar .wc-block-product-results-count, .cc-shop__toolbar .woocommerce-result-count { display: none; }
}
@media (min-width: 1024px) {
	.cc-shop__layout { display: grid; grid-template-columns: 260px minmax(0, 1fr); align-items: start; gap: 32px; }
	/* The column scrolls on its own: 12 px of room on the left (and 4 px above) inside it, taken back with a negative
	   margin, so the price slider's handle and the focus rings are not cut while the content keeps the page's edge. */
	.cc-shop__filters { position: sticky; top: calc(var(--header-h) + 12px); max-height: calc(100vh - var(--header-h) - 24px); margin: -4px 0 0 -12px; padding: 4px 8px 4px 12px; overflow: auto; scrollbar-width: thin; }
	.cc-filters { display: block; }
	.cc-filters .wc-block-product-filters__overlay-dialog { max-height: none; border-radius: 0; box-shadow: none; }
	.cc-filters__sheet-clear { display: none; }
	.cc-shop-head__title { font-size: var(--wp--preset--font-size--xxxl); }
	.cc-shop__layout { grid-template-columns: 240px minmax(0, 1fr); gap: 40px; }
	.cc-subcats { flex-wrap: wrap; margin-inline: 0; padding-inline: 0; overflow: visible; }
}
@media (min-width: 1024px) and (max-width: 1279px) {
	.cc-shop .cc-grid .wc-block-product-template { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

/* ---------- Pagination: one line; the arrows are the site's chevrons. Phones: arrows only (the words stay for screen
   readers) and the pages reduced to first, current and last ("1 … 7 … 14"). ---------- */
.cc-pagination, .wp-block-query-pagination { display: flex; flex-wrap: nowrap; align-items: center; justify-content: center; gap: 6px; margin-top: 32px; }
.wp-block-query-pagination-numbers { display: flex; flex-wrap: nowrap; align-items: center; gap: 6px; }
.wp-block-query-pagination .page-numbers, .wp-block-query-pagination-previous, .wp-block-query-pagination-next {
	display: inline-flex; flex: none; align-items: center; justify-content: center; gap: 6px; min-width: 44px; height: 44px; padding: 0 12px; border: 1px solid var(--c-line); border-radius: 0; background: #fff; color: var(--c-ink); font-size: 13px; font-weight: 500; white-space: nowrap; text-decoration: none !important;

}
.wp-block-query-pagination .page-numbers.current { border-color: var(--c-ink); background: var(--c-ink); color: #fff; }
.wp-block-query-pagination .page-numbers.dots { min-width: 0; padding: 0 2px; border: 0; background: none; }
.wp-block-query-pagination :is(.wp-block-query-pagination-previous-arrow, .wp-block-query-pagination-next-arrow) {
	width: 18px; height: 18px; margin: 0; overflow: hidden; background: currentColor; font-size: 0;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m15 6-6 6 6 6'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m15 6-6 6 6 6'/%3E%3C/svg%3E") center / contain no-repeat;
}
.wp-block-query-pagination .wp-block-query-pagination-next-arrow { transform: scaleX(-1); }
@media (max-width: 639px) {
	.wp-block-query-pagination-previous, .wp-block-query-pagination-next { width: 44px; padding: 0; font-size: 0; }
	.wp-block-query-pagination-numbers > .page-numbers:not(.current):not(.dots):not(:first-child):not(:last-child) { display: none; }
}

/* Category and brand filters: options indented by their depth (data-cc-depth, site.js), so the "Scarpe" of Donna and
   of Uomo are told apart by where they sit. Categories are a tree: only the departments at first, each branch opens
   with its arrow (an option chosen keeps its branch open); every option is in the list, so WooCommerce's "Mostra
   altri" is not needed there. While searching, every match shows. */
.cc-filters .wc-block-product-filter-checkbox-list__item[data-cc-depth="1"] { padding-left: 18px; }
.cc-filters .wc-block-product-filter-checkbox-list__item[data-cc-depth="2"] { padding-left: 36px; }
.cc-filters .wc-block-product-filter-checkbox-list__item[data-cc-depth="3"] { padding-left: 54px; }
.cc-fg--category .wc-block-product-filter-checkbox-list__item[data-cc-depth="0"] .wc-block-product-filter-checkbox-list__text { font-weight: 500; }
.cc-fg--category .wc-block-product-filter-checkbox-list__item[hidden]:not(.cc-filter-miss) { display: block !important; }
.cc-fg--category :is(.wc-block-product-filter-checkbox-list__show-more, .wc-block-product-filter__show-more) { display: none !important; }
.cc-fg--category .wc-block-product-filter-checkbox-list:not(.is-searching) .wc-block-product-filter-checkbox-list__item[data-cc-folded] { display: none !important; }
.cc-fg--category .wc-block-product-filter-checkbox-list__item { position: relative; }
.cc-fg--category .wc-block-product-filter-checkbox-list__item:has(> .cc-tree-toggle) > label { padding-right: 40px; }
.cc-tree-toggle { position: absolute; top: 50%; right: 0; display: grid; place-items: center; width: 36px; height: 36px; margin-top: -18px; padding: 0; border: 0; background: none; color: var(--c-muted); cursor: pointer; }
.cc-tree-toggle:hover { color: var(--c-ink); }
.cc-tree-toggle .i { width: 18px; height: 18px; transition: transform .2s; }
.cc-tree-toggle[aria-expanded="true"] .i { transform: rotate(180deg); }
.cc-filters .wc-block-product-filter-checkbox-list.is-searching .cc-tree-toggle { display: none; }

/* Loading products (site.js, "cc-loading" on <html>): a light veil over the products, after 150 ms so quick answers do
   not flash, a spinner in the middle of the screen, and the sheet's "Applica" spinning. The filters stay usable. */
.cc-shop__results { position: relative; overflow-anchor: none; } /* The browser does not move the page to keep an old product in view. */
.cc-shop__results::after { content: ""; position: absolute; inset: -8px; z-index: 5; background: rgb(250 248 245 / 65%); opacity: 0; visibility: hidden; pointer-events: none; transition: opacity .2s, visibility 0s .2s; }
.cc-loading .cc-shop__results::after { opacity: 1; visibility: visible; pointer-events: auto; transition: opacity .2s .15s; }
.cc-loading .cc-shop__results::before { content: ""; position: fixed; top: 50%; left: 50%; z-index: 6; width: 34px; height: 34px; margin: -17px 0 0 -17px; border: 2px solid var(--c-line); border-top-color: var(--c-ink); border-radius: 50%; opacity: 0; animation: cc-spin .8s linear infinite, cc-fade-in .2s .15s forwards; }
@keyframes cc-fade-in { to { opacity: 1; } }
.cc-loading .cc-filters .wc-block-product-filters__apply { position: relative; color: transparent !important; }
.cc-loading .cc-filters .wc-block-product-filters__apply::after { content: ""; position: absolute; inset: 0; width: 18px; height: 18px; margin: auto; border: 2px solid rgb(255 255 255 / 45%); border-top-color: #fff; border-radius: 50%; animation: cc-spin .8s linear infinite; }
@media (min-width: 1024px) {
	.cc-loading .cc-shop__results::before { left: calc(50% + 146px); } /* Middle of the products, beside the filters. */
}
@media (prefers-reduced-motion: reduce) {
	.cc-loading .cc-shop__results::before { animation: cc-fade-in .2s .15s forwards; }
}
