/* ==========================================================================
   Antea · Catalogo: testata, barra strumenti, pannello filtri, griglia,
   muro dei brand, indice A-Z, esploratori di famiglie e note
   ========================================================================== */

.a-catalog { display: grid; grid-template-columns: 280px minmax(0, 1fr); gap: var(--a-s-9); align-items: start; }
.a-catalog--full { grid-template-columns: minmax(0, 1fr); }

.a-catalog__head { margin-bottom: var(--a-s-7); max-width: 72ch; }
.a-catalog__head h1 { margin-bottom: var(--a-s-2); }
.a-catalog__intro { color: var(--a-fg-soft); font-size: var(--a-fs-lg); }
.a-catalog__intro.is-clamped { display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.a-catalog__more { margin-top: var(--a-s-2); font-size: var(--a-fs-sm); }

/* Tre colonne: il conteggio sta al centro della barra, l'ordinamento a destra. */
.a-toolbar { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: var(--a-s-3); padding: var(--a-s-3) var(--a-s-4); margin-bottom: var(--a-s-6); border-radius: var(--a-pill); position: sticky; top: calc(var(--a-header-total) + 8px); z-index: 20; }
.a-toolbar__count { grid-column: 2; margin: 0; font-size: var(--a-fs-sm); color: var(--a-fg-soft); text-align: center; }
.a-toolbar__count strong { color: var(--a-fg); font-weight: var(--a-fw-medium); }
.a-toolbar__right { grid-column: 3; display: flex; align-items: center; justify-content: flex-end; gap: var(--a-s-2); }
.a-toolbar__sort { display: inline-flex; align-items: center; gap: 8px; font-size: var(--a-fs-sm); }
.a-toolbar__sort .a-select { min-height: 42px; padding: 8px 40px 8px 16px; border-radius: var(--a-pill); font-size: var(--a-fs-sm); width: auto; background-color: transparent; border-color: transparent; }
.a-toolbar__sort .a-select:hover { border-color: var(--a-line-strong); }
.a-toolbar__filters { display: none; }

.a-active-filters { display: flex; flex-wrap: wrap; gap: 6px; margin: calc(var(--a-s-4) * -1) 0 var(--a-s-6); }
.a-active-filters .a-chip { background: var(--a-surface); }

/* Pannello filtri */
.a-filters { position: sticky; top: var(--a-sticky-offset); max-height: calc(100svh - var(--a-sticky-offset) - 24px); overflow: auto; padding: var(--a-s-5); border-radius: var(--a-r-xl); scrollbar-width: thin; overscroll-behavior: contain; }
.a-filters__head { display: flex; justify-content: space-between; align-items: center; margin-bottom: var(--a-s-3); }
.a-filters__head h2 { margin: 0; font-size: var(--a-fs-lg); font-family: var(--a-font-sans); font-weight: var(--a-fw-medium); letter-spacing: 0; }
.a-filters__reset { font-size: var(--a-fs-xs); }
.a-filters__group { border-top: 1px solid var(--a-line); }
.a-filters__group summary { display: flex; justify-content: space-between; align-items: center; padding: var(--a-s-4) 0; list-style: none; cursor: pointer; font-size: var(--a-fs-sm); font-weight: var(--a-fw-medium); }
.a-filters__group summary::-webkit-details-marker { display: none; }
.a-filters__group summary svg { width: 14px; height: 14px; transition: transform var(--a-dur-fast) var(--a-ease); }
.a-filters__group[open] summary svg { transform: rotate(180deg); }
.a-filters__group summary .n { margin-left: auto; margin-right: 10px; font-size: var(--a-fs-2xs); color: var(--a-fg-mute); font-weight: var(--a-fw-regular); }
.a-filters__body { padding: 0 0 var(--a-s-4); display: flex; flex-direction: column; gap: 10px; }
.a-filters__body .a-check { font-size: var(--a-fs-sm); }
.a-filters__search { margin-bottom: 4px; }
.a-filters__search .a-input { min-height: 38px; padding: 6px 12px; font-size: var(--a-fs-sm); border-radius: var(--a-pill); }
.a-filters__scroll { max-height: 220px; overflow: auto; padding-right: 4px; display: flex; flex-direction: column; gap: 10px; scrollbar-width: thin; }
.a-filters__chips { display: flex; flex-wrap: wrap; gap: 6px; }
.a-filters__range { display: grid; grid-template-columns: 1fr auto 1fr; gap: 8px; align-items: center; }
.a-filters__range .a-input { min-height: 40px; padding: 6px 10px; font-size: var(--a-fs-sm); }
.a-filters__range span { color: var(--a-fg-mute); }
.a-filters__apply { display: none; margin-top: var(--a-s-4); }

/* Griglia prodotti */
.a-products { display: grid; grid-template-columns: repeat(var(--cols, 3), minmax(0, 1fr)); gap: var(--a-s-5); }
.a-catalog--full .a-products { --cols: 4; }
.a-products--4 { --cols: 4; }

@media (max-width: 1200px) {
	.a-catalog { grid-template-columns: 250px minmax(0, 1fr); gap: var(--a-s-6); }
	.a-products, .a-catalog--full .a-products { --cols: 3; }
}

@media (max-width: 960px) {
	.a-catalog { grid-template-columns: minmax(0, 1fr); }
	.a-toolbar__filters { display: inline-flex; }
	.a-filters { position: fixed; top: var(--a-header-inset); bottom: var(--a-header-inset); left: var(--a-header-inset); z-index: var(--a-z-drawer); width: min(400px, calc(100vw - var(--a-header-inset) * 2)); max-height: none; transform: translateX(calc(-100% - 24px)); visibility: hidden; transition: transform var(--a-dur-slow) var(--a-ease), visibility 0s linear var(--a-dur-slow); border-radius: var(--a-r-xl); }
	.a-filters.is-open { transform: none; visibility: visible; transition: transform var(--a-dur-slow) var(--a-ease), visibility 0s; }
	.a-filters__apply { display: block; position: sticky; bottom: 0; padding-top: var(--a-s-3); background: linear-gradient(transparent, var(--a-surface) 30%); }
	.a-filters__close { display: inline-grid; }
}

@media (min-width: 961px) {
	.a-filters__close { display: none; }
}

@media (max-width: 640px) {
	.a-filters { top: auto; left: var(--a-header-inset); right: var(--a-header-inset); width: auto; max-height: 86svh; transform: translateY(calc(100% + 24px)); border-radius: var(--a-r-xl) var(--a-r-xl) var(--a-r-lg) var(--a-r-lg); }
	.a-products, .a-catalog--full .a-products { --cols: 2; gap: var(--a-s-3); }
	.a-toolbar { display: flex; justify-content: space-between; flex-wrap: wrap; border-radius: var(--a-r-lg); padding: var(--a-s-2) var(--a-s-3); }
	.a-toolbar__count { display: none; }
}

/* ---- Muro dei brand ---- */
.a-brandwall { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: var(--a-s-3); }
.a-brandwall__item { position: relative; display: grid; place-items: center; min-height: 124px; padding: var(--a-s-5) var(--a-s-4); border-radius: var(--a-r-lg); text-align: center; text-decoration: none; color: var(--a-fg); font-family: var(--a-font-display); font-weight: var(--a-fw-semibold); font-size: var(--a-fs-lg); letter-spacing: .12em; text-transform: uppercase; line-height: 1.2; overflow: hidden; transition: transform var(--a-dur) var(--a-ease), color var(--a-dur) var(--a-ease); }
.a-brandwall__item.is-niche::before { content: ""; position: absolute; top: 12px; right: 12px; width: 7px; height: 7px; border-radius: 50%; background: var(--a-rose-400); box-shadow: 0 0 0 3px var(--a-rose-100); }
.a-brandwall__item:hover { transform: translateY(-3px); color: var(--a-fg); }
.a-brandwall__item small { display: block; margin-top: 6px; font-family: var(--a-font-sans); font-size: var(--a-fs-2xs); letter-spacing: var(--a-track-caps); color: var(--a-fg-mute); }

.a-az { display: flex; flex-wrap: wrap; gap: 4px; margin-bottom: var(--a-s-7); position: sticky; top: calc(var(--a-header-total) + 8px); z-index: 10; padding: 8px; border-radius: var(--a-pill); }
.a-az a, .a-az span { display: inline-grid; place-items: center; width: 34px; height: 34px; border-radius: 50%; font-size: var(--a-fs-xs); font-weight: var(--a-fw-medium); color: var(--a-fg); text-decoration: none; transition: background-color var(--a-dur-fast) var(--a-ease); }
.a-az a:hover { background: var(--a-rose-200); }
.a-az span { color: var(--a-fg-mute); opacity: .5; }
.a-az-group { margin-bottom: var(--a-s-8); scroll-margin-top: calc(var(--a-header-total) + 80px); }
.a-az-group__letter { font-family: var(--a-font-display); font-size: var(--a-fs-h1); font-weight: var(--a-fw-semibold); color: var(--a-rose-400); margin: 0 0 var(--a-s-4); line-height: 1; }
.a-az-group__list { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 4px var(--a-s-6); margin: 0; padding: 0; list-style: none; }
.a-az-group__list li { margin: 0; }
.a-az-group__list a { display: flex; justify-content: space-between; align-items: baseline; gap: 8px; padding: 8px 0; color: var(--a-fg); text-decoration: none; border-bottom: 1px solid var(--a-line); font-size: var(--a-fs-sm); }
.a-az-group__list a:hover { color: var(--a-rose-700); }
.a-az-group__list a span { font-size: var(--a-fs-2xs); color: var(--a-fg-mute); }

/* ---- Famiglie e note ---- */
.a-families { display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--a-s-3); } /* 4 + 4: righe simmetriche */
@media (max-width: 900px) { .a-families { grid-template-columns: repeat(2, 1fr); } }
.a-family { position: relative; display: flex; flex-direction: column; justify-content: flex-end; min-height: 112px; padding: var(--a-s-4) var(--a-s-5); border-radius: var(--a-r-lg); overflow: hidden; color: var(--a-fg); text-decoration: none; isolation: isolate; transition: transform var(--a-dur) var(--a-ease); }
.a-family:hover { transform: translateY(-4px); color: var(--a-fg); }
.a-family::before { content: ""; position: absolute; inset: 0; z-index: -1; background: var(--family-bg, linear-gradient(145deg, var(--a-rose-100), var(--a-white))); }
.a-family::after { content: ""; position: absolute; width: 110px; height: 110px; right: -24px; top: -28px; border-radius: 50%; z-index: -1; background: var(--family-glow, var(--a-prism-1)); filter: blur(30px); opacity: .7; transition: transform var(--a-dur-slow) var(--a-ease); }
.a-family:hover::after { transform: scale(1.3); }
.a-family strong { font-family: var(--a-font-display); font-size: var(--a-fs-h4); font-weight: var(--a-fw-semibold); letter-spacing: .06em; }
.a-family span { font-size: var(--a-fs-xs); color: var(--a-fg-mute); }
.a-family--floreale { --family-bg: linear-gradient(145deg, #F7E6EA, #FFF); --family-glow: #FFD6DF; }
.a-family--legnoso { --family-bg: linear-gradient(145deg, #EDE4D9, #FFF); --family-glow: #E7CDB0; }
.a-family--orientale { --family-bg: linear-gradient(145deg, #F1E3D4, #FFF); --family-glow: #F3D3A6; }
.a-family--agrumato { --family-bg: linear-gradient(145deg, #F6F0D2, #FFF); --family-glow: #FFF1C9; }
.a-family--aromatico { --family-bg: linear-gradient(145deg, #E2EDE5, #FFF); --family-glow: #D7F6E7; }
.a-family--fougere { --family-bg: linear-gradient(145deg, #E3EBE3, #FFF); --family-glow: #CFE9D6; }
.a-family--chypre { --family-bg: linear-gradient(145deg, #E6E3D8, #FFF); --family-glow: #DDD6BF; }
.a-family--gourmand { --family-bg: linear-gradient(145deg, #F1E2DC, #FFF); --family-glow: #F3CDBF; }
.a-family--speziato { --family-bg: linear-gradient(145deg, #F0E0D5, #FFF); --family-glow: #F0C9AE; }
.a-family--muschiato { --family-bg: linear-gradient(145deg, #ECE9EE, #FFF); --family-glow: #E3DDEC; }
.a-family--fruttato { --family-bg: linear-gradient(145deg, #F7E3E3, #FFF); --family-glow: #FFC9CF; }
.a-family--verde { --family-bg: linear-gradient(145deg, #E2EEDF, #FFF); --family-glow: #CDEBC8; }
.a-family--acquatico { --family-bg: linear-gradient(145deg, #DFEAF2, #FFF); --family-glow: #D3E6FF; }
.a-family--cuoiato { --family-bg: linear-gradient(145deg, #E6DAD3, #FFF); --family-glow: #D8BBAA; }
.a-family--cipriato { --family-bg: linear-gradient(145deg, #F0E6EE, #FFF); --family-glow: #ECDBFF; }

.a-notecloud { display: flex; flex-wrap: wrap; gap: 8px; }
.a-notecloud .a-chip { font-size: calc(var(--a-fs-sm) * var(--w, 1)); }

/* ---- Testata della pagina brand / tassonomia ---- */
.a-taxhero { position: relative; overflow: hidden; padding: var(--a-section-sm) 0; margin-bottom: var(--a-s-7); border-radius: var(--a-r-xl); }
.a-taxhero__inner { position: relative; z-index: 1; padding: 0 clamp(24px, 4vw, 56px); }
.a-taxhero h1 { margin-bottom: var(--a-s-3); }
.a-taxhero__text { color: var(--a-fg-soft); font-size: var(--a-fs-lg); max-width: 60ch; }
.a-taxhero__text.is-clamped { display: -webkit-box; -webkit-line-clamp: 4; -webkit-box-orient: vertical; overflow: hidden; }
.a-taxhero__facts { display: flex; flex-wrap: wrap; gap: var(--a-s-2); margin-top: var(--a-s-5); }

/* ---- Risultati di ricerca ---- */
.a-search-head { margin-bottom: var(--a-s-7); }
.a-search-head form { max-width: 560px; }
