/* Catalogo: griglia e card dei prodotti, percorso, scheda prodotto. Caricato nella home, nella scheda
   e negli elenchi (functions.php). Solo token --dg-*. */

/* ---------- Griglia e card dei prodotti (home, scheda prodotto, elenchi) ---------- */
.dg-prodotti { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--dg-space-4) var(--dg-space-3); list-style: none; margin: 0; padding: 0; }
.dg-prodotto { display: block; color: inherit; text-decoration: none; }
.dg-prodotto:hover { color: inherit; }
.dg-prodotto__figura { position: relative; display: block; aspect-ratio: 4 / 5; margin-bottom: var(--dg-space-2); overflow: hidden; background: var(--dg-neutral-100); border-radius: var(--dg-radius-lg); }
.dg-prodotto__img { display: block; width: 100%; height: 100%; max-width: none; object-fit: cover; transition: transform var(--dg-duration-slow) var(--dg-ease-standard); }
/* Al passaggio (e col fuoco da tastiera): l'immagine si avvicina appena e un velo scuro mostra l'icona al centro. */
.dg-prodotto__velo { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; color: var(--dg-white); background: rgba(var(--dg-black-rgb), .45); opacity: 0; transition: opacity var(--dg-duration-base) var(--dg-ease-standard); }
.dg-prodotto__velo .dg-icona { width: 2.5rem; height: 2.5rem; transform: scale(.85); transition: transform var(--dg-duration-base) var(--dg-ease-standard); }
.dg-prodotto:hover .dg-prodotto__img, .dg-prodotto:focus-visible .dg-prodotto__img { transform: scale(1.05); }
.dg-prodotto:hover .dg-prodotto__velo, .dg-prodotto:focus-visible .dg-prodotto__velo { opacity: 1; }
.dg-prodotto:hover .dg-prodotto__velo .dg-icona, .dg-prodotto:focus-visible .dg-prodotto__velo .dg-icona { transform: none; }
@media (prefers-reduced-motion: reduce) { .dg-prodotto__img, .dg-prodotto__velo, .dg-prodotto__velo .dg-icona { transition: none; } .dg-prodotto:hover .dg-prodotto__img, .dg-prodotto:focus-visible .dg-prodotto__img { transform: none; } }
.dg-prodotto__marca, .dg-prodotto__tipo { display: block; font-size: var(--dg-fs-sm); color: var(--dg-neutral-600); }
.dg-prodotto__nome { margin: 0; overflow-wrap: anywhere; font-size: var(--dg-h4); font-weight: var(--dg-fw-light); line-height: 1.1; color: inherit; transition: color var(--dg-duration-fast) var(--dg-ease-standard); }
.dg-prodotto:hover .dg-prodotto__nome { color: var(--dg-primary-700); }
@media (min-width: 768px) { .dg-prodotti { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (min-width: 992px) { .dg-prodotti { grid-template-columns: repeat(5, minmax(0, 1fr)); } }

/* ---------- Percorso (Arredamento / categoria / prodotto) ---------- */
.dg-percorso { display: flex; flex-wrap: wrap; gap: var(--dg-space-2); margin: 0 0 var(--dg-space-4); padding: 0; list-style: none; color: var(--dg-neutral-600); font-size: var(--dg-fs-sm); }
.dg-percorso li + li::before { content: "/"; margin-right: var(--dg-space-2); color: var(--dg-neutral-400); }
.dg-percorso a { color: inherit; text-decoration: none; }
.dg-percorso a:hover { color: var(--dg-primary-700); text-decoration: underline; text-underline-offset: .3em; }

/* ---------- Scheda prodotto (single-daci_product.php) ---------- */
.dg-scheda { padding-top: var(--dg-space-4); }
/* Testa: immagini a sinistra, presentazione a destra */
.dg-scheda__testa { display: grid; gap: var(--dg-space-5); }
.dg-galleria__grande { position: relative; aspect-ratio: 3 / 2; margin: 0 0 var(--dg-space-2); overflow: hidden; background: var(--dg-neutral-100); border-radius: var(--dg-radius-xl); }
/* Immagini sovrapposte: si vede solo quella attiva, in dissolvenza. */
.dg-galleria__img { position: absolute; inset: 0; display: block; width: 100%; height: 100%; max-width: none; object-fit: cover; opacity: 0; transition: opacity var(--dg-duration-base) var(--dg-ease-standard); }
.dg-galleria__img.is-attiva { opacity: 1; }
/* Frecce e contatore in una card di vetro, come nell'apertura della home */
.dg-galleria__comandi { position: absolute; right: var(--dg-space-3); bottom: var(--dg-space-3); display: flex; align-items: center; gap: var(--dg-space-1); padding: 0 var(--dg-space-2); font-size: var(--dg-fs-sm); }
.dg-galleria__tasto { display: inline-flex; align-items: center; justify-content: center; width: 2.75rem; height: 2.75rem; padding: 0; color: inherit; background: none; border: 0; opacity: .8; cursor: pointer; transition: opacity var(--dg-duration-fast) var(--dg-ease-standard); }
.dg-galleria__tasto:hover { opacity: 1; }
.dg-galleria__tasto:focus-visible { outline: 2px solid var(--dg-white); outline-offset: -4px; }
.dg-galleria__tasto .dg-icona { width: 1.25rem; height: 1.25rem; }
.dg-galleria__miniature { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--dg-space-2); margin: 0; padding: 0; list-style: none; }
.dg-galleria__miniatura { display: block; width: 100%; aspect-ratio: 3 / 2; padding: 0; overflow: hidden; background: var(--dg-neutral-100); border: 0; border-radius: var(--dg-radius-lg); opacity: .55; cursor: pointer; transition: opacity var(--dg-duration-fast) var(--dg-ease-standard); }
.dg-galleria__miniatura:hover, .dg-galleria__miniatura[aria-current="true"] { opacity: 1; }
.dg-galleria__miniatura img { display: block; width: 100%; height: 100%; max-width: none; object-fit: cover; }
@media (prefers-reduced-motion: reduce) { .dg-galleria__img { transition: none; } }

.dg-scheda__intro { display: grid; gap: var(--dg-space-4); align-content: start; }
.dg-scheda__marca { display: inline-flex; justify-self: start; color: var(--dg-neutral-600); text-decoration: none; transition: color var(--dg-duration-fast) var(--dg-ease-standard); }
.dg-scheda__marca:hover { color: var(--dg-neutral-900); }
.dg-scheda__marca .dg-logo-marca { justify-content: flex-start; height: 2rem; }
.dg-scheda__marca .dg-logo-marca svg { width: auto; max-width: 11rem; }
.dg-scheda__marca .dg-logo-marca--alto { height: 3.25rem; }
/* Il nome del prodotto ha il peso 100 del titolo di apertura della home (materiali/direzione.md). */
.dg-scheda__titolo { margin: 0; font-size: var(--dg-display-3); font-weight: 100; line-height: 1; overflow-wrap: anywhere; }
.dg-scheda__tipo { margin: var(--dg-space-2) 0 0; color: var(--dg-neutral-600); }
.dg-scheda__tipo a, .dg-scheda__ambienti a { color: inherit; text-underline-offset: .3em; }
.dg-scheda__tipo a:hover, .dg-scheda__ambienti a:hover { color: var(--dg-primary-700); }
.dg-scheda__riassunto { margin: 0; font-size: var(--dg-fs-lg); font-weight: var(--dg-fw-light); }
.dg-scheda__azioni { display: flex; flex-wrap: wrap; gap: var(--dg-space-3) var(--dg-space-5); padding-top: var(--dg-space-4); border-top: var(--dg-border-width) solid var(--dg-neutral-200); }
.dg-scheda__ambienti { display: flex; flex-wrap: wrap; gap: var(--dg-space-2) var(--dg-space-4); margin: 0; padding: 0; list-style: none; font-size: var(--dg-fs-sm); color: var(--dg-neutral-600); }

/* Descrizione e dettagli */
.dg-scheda__corpo { display: grid; gap: var(--dg-space-5); }
.dg-scheda__sottotitolo { margin: 0 0 var(--dg-space-4); font-size: var(--dg-h1); }
.dg-scheda__corpo .dg-content { max-width: 44rem; font-size: var(--dg-fs-lg); font-weight: var(--dg-fw-light); }
.dg-scheda__corpo .dg-content :is(h2, h3, h4) { margin: var(--dg-space-5) 0 var(--dg-space-2); font-size: var(--dg-h3); }
.dg-dettagli { margin: 0; border-top: var(--dg-border-width) solid var(--dg-neutral-200); }
.dg-dettagli div { display: grid; gap: var(--dg-space-1); padding-block: var(--dg-space-3); border-bottom: var(--dg-border-width) solid var(--dg-neutral-200); }
.dg-dettagli dt { font-size: var(--dg-fs-sm); color: var(--dg-neutral-600); }
.dg-dettagli dd { margin: 0; }
.dg-dettagli dd > :last-child { margin-bottom: 0; }

/* Richiesta di informazioni: una foto del prodotto con il modulo in una card di vetro */
.dg-richiesta { position: relative; display: flex; align-items: flex-end; justify-content: flex-end; min-height: 36rem; padding: var(--dg-space-4); overflow: hidden; background: var(--dg-neutral-800); }
.dg-richiesta__img { position: absolute; inset: 0; display: block; width: 100%; height: 100%; max-width: none; object-fit: cover; }
.dg-richiesta__card { position: relative; width: 100%; max-width: 34rem; padding: var(--dg-space-4); }
/* La card porta un modulo e la foto puo' essere chiara: il vetro e' piu' scuro che nell'apertura. */
@supports ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) { .dg-richiesta__card.dg-vetro { background: rgba(var(--dg-black-rgb), .5); } }
.dg-richiesta__titolo { margin: 0 0 var(--dg-space-2); font-size: var(--dg-h1); color: inherit; }
.dg-richiesta__testo { margin: 0 0 var(--dg-space-4); }
/* Il modulo di CF7 dentro la card: campi a linea, testi bianchi, invio come le altre azioni del sito.
   Si cambiano le variabili dello stile di base (inc/base/css/dg-cf7.css), non le sue regole. */
.dg-richiesta .wpcf7 {
	--dg-cf7-gap: var(--dg-space-3);
	--dg-cf7-label-gap: 0;
	--dg-cf7-field-height: 2.5rem;
	--dg-cf7-field-padding-y: var(--dg-space-1);
	--dg-cf7-field-padding-x: 0;
	--dg-cf7-field-bg: transparent;
	--dg-cf7-field-color: var(--dg-white);
	--dg-cf7-field-border: rgba(var(--dg-white-rgb), .5);
	--dg-cf7-field-radius: 0;
	--dg-cf7-accent: var(--dg-white);
	--dg-cf7-focus-ring: transparent;
	--dg-cf7-check-off: rgba(var(--dg-white-rgb), .35);
	--dg-cf7-check-mark: var(--dg-neutral-900);
	--dg-cf7-danger: var(--dg-danger-300, var(--dg-white));
}
.dg-richiesta .wpcf7-form label { font-size: var(--dg-fs-sm); font-weight: var(--dg-fw-normal); }
.dg-richiesta .wpcf7-form :is(input:not([type="checkbox"], [type="radio"], [type="submit"]), textarea) { font-size: var(--dg-font-size-base); border-width: 0 0 var(--dg-border-width); }
.dg-richiesta .wpcf7-form textarea { height: 5rem; min-height: 4rem; }
.dg-richiesta .wpcf7-form a { color: inherit; }
.dg-richiesta .wpcf7-form .wpcf7-submit { align-self: flex-start; width: auto; min-height: 0; padding: 0 0 var(--dg-space-1); color: var(--dg-white); font: inherit; font-weight: var(--dg-fw-semibold); letter-spacing: 0; text-transform: none; background: linear-gradient(currentColor, currentColor) no-repeat 0 100% / 100% 1px; border: 0; border-radius: 0; box-shadow: none; cursor: pointer; transition: background-size var(--dg-duration-base) var(--dg-ease-standard); }
.dg-richiesta .wpcf7-form .wpcf7-submit:hover { color: var(--dg-white); background: linear-gradient(currentColor, currentColor) no-repeat 0 100% / 100% 2px; }
.dg-richiesta .wpcf7-form .wpcf7-submit:focus-visible { outline: 2px solid var(--dg-white); outline-offset: 4px; }
.dg-richiesta .wpcf7 form .wpcf7-response-output { margin: 0; color: var(--dg-white); }

/* Correlati: due file una sotto l'altra */
.dg-correlati + .dg-correlati { padding-top: 0; }

@media (min-width: 768px) {
	.dg-galleria__miniature { grid-template-columns: repeat(6, minmax(0, 1fr)); }
	.dg-richiesta__card { padding: var(--dg-space-5); }
}
@media (min-width: 992px) {
	.dg-scheda__testa { grid-template-columns: 8fr 4fr; }
	/* La presentazione resta in vista mentre si scorrono le immagini (sotto l'header fisso). */
	.dg-scheda__intro { position: sticky; top: 7rem; align-self: start; }
	.dg-scheda__corpo { grid-template-columns: 7fr 5fr; gap: var(--dg-space-6); }
	.dg-richiesta { padding: var(--dg-space-5); }
}

/* ---------- Elenchi dei prodotti (template-parts/elenco-prodotti.php) ---------- */
.dg-elenco { padding-top: var(--dg-space-4); }
/* Testata: nome grande a sinistra, testo (o immagine, per gli ambienti) a destra */
.dg-elenco__testata { display: grid; gap: var(--dg-space-4); padding-block: var(--dg-space-3) var(--dg-space-5); }
.dg-elenco__titolo { margin: 0; font-size: var(--dg-display-2); font-weight: 100; line-height: 1; overflow-wrap: anywhere; }
.dg-elenco__logo { margin: 0; color: var(--dg-neutral-900); }
.dg-elenco__logo .dg-logo-marca { justify-content: flex-start; height: 5rem; }
.dg-elenco__logo .dg-logo-marca svg { width: auto; max-width: min(22rem, 100%); }
.dg-elenco__logo .dg-logo-marca--alto { height: 8rem; }
.dg-elenco__testo { max-width: 40rem; font-size: var(--dg-fs-lg); font-weight: var(--dg-fw-light); }
.dg-elenco__testo > :last-child { margin-bottom: 0; }
.dg-elenco__testo--sotto { margin-top: var(--dg-space-4); }
.dg-elenco__figura { aspect-ratio: 21 / 9; margin: 0; overflow: hidden; background: var(--dg-neutral-100); border-radius: var(--dg-radius-xl); }
.dg-elenco__img { display: block; width: 100%; height: 100%; max-width: none; object-fit: cover; }

/* Sottocategorie: schede a linea */
.dg-elenco__schede { display: flex; flex-wrap: wrap; gap: var(--dg-space-2) var(--dg-space-5); margin: 0 0 var(--dg-space-4); padding: 0; list-style: none; font-size: var(--dg-fs-lg); }
.dg-elenco__schede a { display: inline-block; padding-bottom: var(--dg-space-1); color: var(--dg-neutral-600); text-decoration: none; background: linear-gradient(currentColor, currentColor) no-repeat 0 100% / 0 1px; transition: background-size var(--dg-duration-base) var(--dg-ease-standard), color var(--dg-duration-fast) var(--dg-ease-standard); }
.dg-elenco__schede a:hover, .dg-elenco__schede a[aria-current] { color: var(--dg-neutral-900); background-size: 100% 1px; }
.dg-elenco__schede small { margin-left: var(--dg-space-1); font-size: var(--dg-fs-sm); color: var(--dg-neutral-500); }

/* Filtri: righe tra due filetti. Ogni gruppo ha il nome e le voci; quella scelta e' sottolineata. */
.dg-filtri { display: grid; gap: var(--dg-space-3); padding-block: var(--dg-space-3); margin-bottom: var(--dg-space-5); border-block: var(--dg-border-width) solid var(--dg-neutral-200); }
.dg-filtri__gruppo { display: flex; flex-wrap: wrap; align-items: baseline; gap: var(--dg-space-2) var(--dg-space-4); margin: 0; padding: 0; list-style: none; font-size: var(--dg-fs-sm); }
/* Su telefono il nome del gruppo sta sopra le sue voci; da 768px sta in riga, a sinistra. */
.dg-filtri__nome { flex: 0 0 100%; color: var(--dg-neutral-500); }
@media (min-width: 768px) { .dg-filtri__nome { flex: 0 0 auto; min-width: 6rem; } }
.dg-filtri a { display: inline-block; padding-bottom: var(--dg-space-1); color: var(--dg-neutral-700); text-decoration: none; background: linear-gradient(currentColor, currentColor) no-repeat 0 100% / 0 1px; transition: background-size var(--dg-duration-base) var(--dg-ease-standard); }
.dg-filtri a:hover { color: var(--dg-neutral-900); background-size: 100% 1px; }
.dg-filtri__gruppo a[aria-current] { color: var(--dg-neutral-900); font-weight: var(--dg-fw-semibold); background-size: 100% 1px; }
.dg-filtri small { margin-left: var(--dg-space-1); color: var(--dg-neutral-500); font-weight: var(--dg-fw-normal); }
.dg-filtri__stato { display: flex; flex-wrap: wrap; justify-content: space-between; gap: var(--dg-space-2) var(--dg-space-4); font-size: var(--dg-fs-sm); color: var(--dg-neutral-600); }
.dg-filtri__stato p { margin: 0; }
@media (prefers-reduced-motion: reduce) { .dg-elenco__schede a, .dg-filtri a { transition: none; } }

/* Lo script dei filtri (assets/js/elenco.js) nasconde le card escluse e fa una breve dissolvenza sulla griglia. */
.dg-elenco__griglia { margin-bottom: var(--dg-ss-md); transition: opacity var(--dg-duration-fast) var(--dg-ease-standard); }
.dg-elenco__griglia.is-cambio { opacity: 0; }
.dg-elenco [hidden] { display: none; }
@media (prefers-reduced-motion: reduce) { .dg-elenco__griglia { transition: none; } }
.dg-elenco__vuoto { padding-block: var(--dg-space-6); color: var(--dg-neutral-600); }

@media (min-width: 992px) {
	.dg-elenco__testata { grid-template-columns: 7fr 5fr; align-items: end; gap: var(--dg-space-5); }
	.dg-elenco__testata--figura { grid-template-columns: 5fr 7fr; }
	/* Negli elenchi le card sono piu' grandi che in home: quattro per riga. */
	.dg-prodotti--quattro { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--dg-space-5) var(--dg-space-3); }
}

/* ---------- Tutti i marchi (templates/marchi.php): griglia di loghi a un colore solo ---------- */
.dg-marchi-griglia { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--dg-space-2); list-style: none; margin: 0 0 var(--dg-ss-md); padding: 0; }
.dg-marchi-griglia__voce { display: grid; gap: var(--dg-space-3); justify-items: center; align-content: center; height: 100%; min-height: 11rem; padding: var(--dg-space-4) var(--dg-space-3); color: var(--dg-neutral-500); text-align: center; text-decoration: none; background: var(--dg-neutral-50); border-radius: var(--dg-radius-xl); transition: color var(--dg-duration-fast) var(--dg-ease-standard), background-color var(--dg-duration-fast) var(--dg-ease-standard); }
.dg-marchi-griglia__voce:hover, .dg-marchi-griglia__voce:focus-visible { color: var(--dg-neutral-900); background: var(--dg-neutral-100); }
.dg-marchi-griglia__logo { display: flex; align-items: center; justify-content: center; height: 4.5rem; }
.dg-marchi-griglia__logo .dg-logo-marca { width: 9.5rem; height: 2.75rem; }
.dg-marchi-griglia__logo .dg-logo-marca--alto { width: 6.5rem; height: 4.5rem; }
.dg-marchi-griglia__nome { font-size: var(--dg-h4); font-weight: var(--dg-fw-light); }
.dg-marchi-griglia__conto { font-size: var(--dg-fs-sm); color: var(--dg-neutral-600); }
@media (min-width: 768px) { .dg-marchi-griglia { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (min-width: 992px) { .dg-marchi-griglia { grid-template-columns: repeat(4, minmax(0, 1fr)); } .dg-marchi-griglia__voce { min-height: 14rem; } }
@media (prefers-reduced-motion: reduce) { .dg-marchi-griglia__voce { transition: none; } }
