/*
 * Widget Condiviso Gift. Ogni valore legge prima la variabile scritta dal
 * controllo Elementor (--cg-<prefisso>-*), poi il token della pelle
 * (--fm-theme-*), poi un ripiego neutro. Il colore di collana del volume
 * arriva dal markup in --cg-volume-colore.
 */

/* ---- griglie ---- */
.fm-cg-griglia { display: grid; grid-template-columns: repeat( var( --cg-colonne, 4 ), minmax( 0, 1fr ) ); gap: var( --cg-gap, 28px ); }
@media ( max-width: 1024px ) { .fm-cg-griglia { --cg-colonne: 3; } }
@media ( max-width: 767px )  { .fm-cg-griglia { --cg-colonne: 2; --cg-gap: 18px; } }
.fm-cg-nota { padding: 14px 16px; border: 1px dashed var( --fm-theme-line, #ccc ); color: var( --fm-theme-muted, #666 ); font-size: 14px; }
.fm-cg-freccia { display: inline-block; vertical-align: -0.15em; margin-left: 0.35em; transition: transform .25s ease; }
a:hover .fm-cg-freccia, a:focus-visible .fm-cg-freccia { transform: translate( 2px, -2px ); }
.fm-cg-volume__vuoto { display: block; width: 100%; height: 100%; min-height: 160px; background: repeating-linear-gradient( 135deg, transparent 0 9px, var( --fm-theme-line, #ddd ) 9px 10px ); }

/* ---- filtri ---- */
.fm-cg-filtri { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 14px; }
.fm-cg-filtri button {
	appearance: none; cursor: pointer; font: inherit; line-height: 1.2;
	padding: 9px 16px; border: 1px solid var( --cg-filtro-bordo, var( --fm-theme-line, #ccc ) ); border-radius: var( --fm-theme-radius, 0 );
	background: var( --cg-filtro-sfondo, transparent ); color: var( --cg-filtro-colore, var( --fm-theme-ink, #1a1a1a ) );
	transition: background .2s, color .2s, border-color .2s;
}
.fm-cg-filtri button:hover, .fm-cg-filtri button:focus-visible {
	background: var( --cg-filtro-sfondo-hover, var( --fm-theme-surface-soft, #f2f2f2 ) ); color: var( --cg-filtro-colore-hover, var( --fm-theme-ink, #1a1a1a ) ); border-color: var( --cg-filtro-bordo-hover, var( --fm-theme-ink, #1a1a1a ) );
}
.fm-cg-filtri button[aria-pressed="true"] {
	background: var( --cg-filtro-sfondo-attivo, var( --fm-theme-action, #1a1a1a ) ); color: var( --cg-filtro-colore-attivo, var( --fm-theme-action-text, #fff ) ); border-color: var( --cg-filtro-bordo-attivo, var( --fm-theme-action, #1a1a1a ) );
}
.fm-cg-conteggio { margin: 0 0 var( --cg-conteggio-spazio, 22px ); color: var( --cg-conteggio-colore, var( --fm-theme-muted, #666 ) ); font-size: 0.9em; }
.fm-cg-volume[hidden] { display: none; }

/* ---- card volume ---- */
.fm-cg-volume {
	display: flex; flex-direction: column; text-decoration: none; color: inherit;
	background: var( --cg-card-sfondo, transparent ); transition: background .25s, box-shadow .25s, border-color .25s;
}
.fm-cg-volume:hover, .fm-cg-volume:focus-visible { background: var( --cg-card-sfondo-hover, var( --cg-card-sfondo, transparent ) ); border-color: var( --cg-card-bordo-hover, currentColor ); }
.fm-cg-volume__foto {
	position: relative; aspect-ratio: 3 / 4; overflow: hidden; padding: 12%;
	background: var( --cg-foto-sfondo, var( --fm-theme-surface-soft, #f4f4f4 ) );
	display: flex; align-items: center; justify-content: center;
}
.fm-cg-volume__foto img, .fm-cg-kit__foto img { width: 100%; height: 100%; object-fit: contain; display: block; transition: transform .45s ease; }
.fm-cg-volume:hover .fm-cg-volume__foto img, .fm-cg-kit:hover .fm-cg-kit__foto img { transform: scale( var( --cg-foto-zoom, 1.03 ) ); }
.fm-cg-volume__numero {
	position: absolute; top: 12px; left: 12px; z-index: 1; font-size: 11px; letter-spacing: .08em; line-height: 1;
	padding: 6px 9px; border: 1px solid var( --cg-numero-bordo, var( --cg-volume-colore, currentColor ) ); border-radius: var( --fm-theme-radius, 0 );
	background: var( --cg-numero-sfondo, var( --fm-theme-surface, #fff ) ); color: var( --cg-numero-colore, var( --cg-volume-colore, currentColor ) );
}
.fm-cg-volume__numero b { font-weight: 700; }
.fm-cg-volume:hover .fm-cg-volume__numero { background: var( --cg-numero-sfondo-hover, var( --cg-numero-sfondo, var( --fm-theme-surface, #fff ) ) ); color: var( --cg-numero-colore-hover, var( --cg-numero-colore, var( --cg-volume-colore, currentColor ) ) ); border-color: var( --cg-numero-bordo-hover, var( --cg-numero-bordo, var( --cg-volume-colore, currentColor ) ) ); }
.fm-cg-volume__info { padding: 14px 0 0; display: flex; flex-direction: column; gap: 4px; }
.fm-cg-volume__tipologia { margin: 0 0 var( --cg-tipologia-spazio, 2px ); font-size: 12px; letter-spacing: .06em; text-transform: uppercase; color: var( --cg-tipologia-colore, var( --fm-theme-muted, #666 ) ); }
.fm-cg-volume__titolo { margin: 0 0 var( --cg-titolo-spazio, 6px ); font-size: 1.1em; line-height: 1.25; color: var( --cg-titolo-colore, var( --fm-theme-ink, #1a1a1a ) ); transition: color .2s; }
.fm-cg-volume:hover .fm-cg-volume__titolo { color: var( --cg-titolo-colore-hover, var( --cg-volume-colore, var( --cg-titolo-colore, inherit ) ) ); }
.fm-cg-volume__link { margin-top: auto; font-size: 13px; color: var( --cg-link-colore, var( --fm-theme-ink, #1a1a1a ) ); }
.fm-cg-volume:hover .fm-cg-volume__link { color: var( --cg-link-colore-hover, var( --cg-volume-colore, inherit ) ); }

/* ---- card kit ---- */
.fm-cg-kit { display: flex; flex-direction: column; text-decoration: none; color: inherit; background: var( --cg-card-sfondo, transparent ); transition: background .25s, box-shadow .25s; }
.fm-cg-kit:hover { background: var( --cg-card-sfondo-hover, var( --cg-card-sfondo, transparent ) ); }
.fm-cg-kit__foto { aspect-ratio: 4 / 3; overflow: hidden; background: var( --cg-foto-sfondo, var( --fm-theme-surface-soft, #f4f4f4 ) ); display: flex; align-items: center; justify-content: center; padding: 6%; }
.fm-cg-kit__info { padding: 14px 0 0; display: flex; flex-direction: column; gap: 6px; }
.fm-cg-kit__testa { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.fm-cg-kit__titolo { margin: 0 0 var( --cg-titolo-spazio, 0 ); font-size: 1.25em; line-height: 1.2; color: var( --cg-titolo-colore, var( --fm-theme-ink, #1a1a1a ) ); }
.fm-cg-kit:hover .fm-cg-kit__titolo { color: var( --cg-titolo-colore-hover, var( --cg-titolo-colore, inherit ) ); }
.fm-cg-kit__colori { display: inline-flex; gap: 4px; flex: none; }
.fm-cg-kit__colori i { width: 12px; height: 12px; border-radius: 50%; display: block; }
.fm-cg-kit__numeri { margin: 0 0 var( --cg-numeri-spazio, 0 ); font-size: 12px; letter-spacing: .06em; text-transform: uppercase; color: var( --cg-numeri-colore, var( --fm-theme-muted, #666 ) ); }
.fm-cg-kit__descrizione { margin: 0 0 var( --cg-descrizione-spazio, 4px ); color: var( --cg-descrizione-colore, var( --fm-theme-muted, #555 ) ); font-size: 0.95em; line-height: 1.5; }
.fm-cg-kit__link { margin-top: auto; font-size: 13px; color: var( --cg-link-colore, var( --fm-theme-ink, #1a1a1a ) ); }
.fm-cg-kit:hover .fm-cg-kit__link { color: var( --cg-link-colore-hover, var( --cg-link-colore, inherit ) ); }

/* ---- Volume / Ricarica ---- */
.fm-cg-formato { display: grid; gap: 28px; }
.fm-cg-formato--tutto { grid-template-columns: minmax( 0, 1.1fr ) minmax( 0, 1fr ); align-items: start; }
@media ( max-width: 900px ) { .fm-cg-formato--tutto { grid-template-columns: 1fr; } }
.fm-cg-formato__immagine {
	position: relative; aspect-ratio: 3 / 4; overflow: hidden; padding: 10%;
	background: var( --cg-foto-sfondo, var( --fm-theme-surface-soft, #f4f4f4 ) ); display: flex; align-items: center; justify-content: center;
}
.fm-cg-formato__foto { width: 100%; height: 100%; display: flex; align-items: center; justify-content: center; }
.fm-cg-formato__foto[hidden] { display: none; }
.fm-cg-formato__foto img { width: 100%; height: 100%; object-fit: contain; display: block; }
.fm-cg-formato__numero {
	position: absolute; left: 4%; bottom: -2%; z-index: 0; font-size: clamp( 96px, 22vw, 200px ); line-height: 1; font-weight: 400;
	color: var( --cg-numero-colore, var( --cg-volume-colore, currentColor ) ); opacity: .12; pointer-events: none; user-select: none;
}
.fm-cg-formato__miniature { display: flex; gap: 10px; margin-top: 12px; }
.fm-cg-formato__miniature button {
	appearance: none; cursor: pointer; font: inherit; font-size: 13px; display: flex; align-items: center; gap: 8px; padding: 6px 12px 6px 6px;
	border: 1px solid var( --cg-miniatura-bordo, var( --fm-theme-line, #ccc ) ); border-radius: var( --fm-theme-radius, 0 );
	background: var( --cg-miniatura-sfondo, transparent ); color: var( --cg-miniatura-colore, var( --fm-theme-ink, #1a1a1a ) ); transition: border-color .2s, background .2s;
}
.fm-cg-formato__miniature button img { width: 40px; height: 48px; object-fit: contain; display: block; }
.fm-cg-formato__miniature button:hover { border-color: var( --cg-miniatura-bordo-hover, var( --fm-theme-ink, #1a1a1a ) ); background: var( --cg-miniatura-sfondo-hover, var( --cg-miniatura-sfondo, transparent ) ); color: var( --cg-miniatura-colore-hover, inherit ); }
.fm-cg-formato__miniature button[aria-pressed="true"] { border-color: var( --cg-miniatura-bordo-attivo, var( --cg-volume-colore, var( --fm-theme-ink, #1a1a1a ) ) ); background: var( --cg-miniatura-sfondo-attivo, var( --cg-miniatura-sfondo, transparent ) ); color: var( --cg-miniatura-colore-attivo, inherit ); }
.fm-cg-formato__selettore { display: flex; flex-direction: column; gap: 14px; }
.fm-cg-formato__linguette { display: inline-flex; border: 1px solid var( --cg-linguetta-bordo, var( --fm-theme-line, #ccc ) ); border-radius: var( --fm-theme-radius, 0 ); overflow: hidden; align-self: flex-start; }
.fm-cg-formato__linguette button {
	appearance: none; cursor: pointer; font: inherit; font-size: 14px; padding: 10px 18px; border: 0;
	background: var( --cg-linguetta-sfondo, transparent ); color: var( --cg-linguetta-colore, var( --fm-theme-ink, #1a1a1a ) ); transition: background .2s, color .2s;
}
.fm-cg-formato__linguette button + button { border-left: 1px solid var( --cg-linguetta-bordo, var( --fm-theme-line, #ccc ) ); }
.fm-cg-formato__linguette button:hover { background: var( --cg-linguetta-sfondo-hover, var( --fm-theme-surface-soft, #f2f2f2 ) ); color: var( --cg-linguetta-colore-hover, inherit ); }
.fm-cg-formato__linguette button[aria-selected="true"] { background: var( --cg-linguetta-sfondo-attivo, var( --fm-theme-action, #1a1a1a ) ); color: var( --cg-linguetta-colore-attivo, var( --fm-theme-action-text, #fff ) ); }
.fm-cg-formato__linguette button:disabled { opacity: .45; cursor: not-allowed; }
.fm-cg-formato__pannello[hidden] { display: none; }
.fm-cg-formato__frase { margin: 0 0 var( --cg-frase-spazio, 14px ); color: var( --cg-frase-colore, var( --fm-theme-muted, #555 ) ); line-height: 1.55; }
.fm-cg-formato__frase--manca { font-style: italic; }
.fm-cg-formato__cta form.cart { margin: 0; }
.fm-cg-formato__cta .button, .fm-cg-formato__cta .single_add_to_cart_button {
	display: inline-flex; align-items: center; gap: 8px; text-decoration: none; cursor: pointer; font: inherit; line-height: 1.2; padding: 14px 24px;
	border: 1px solid var( --cg-pulsante-bordo, var( --fm-theme-button, #1a1a1a ) ); border-radius: var( --fm-theme-radius, 0 );
	background: var( --cg-pulsante-sfondo, var( --fm-theme-button, #1a1a1a ) ); color: var( --cg-pulsante-colore, var( --fm-theme-button-text, #fff ) ); transition: background .2s, color .2s, border-color .2s;
}
.fm-cg-formato__cta .button:hover, .fm-cg-formato__cta .single_add_to_cart_button:hover, .fm-cg-formato__cta .button:focus-visible {
	background: var( --cg-pulsante-sfondo-hover, var( --fm-theme-action-hover, #444 ) ); color: var( --cg-pulsante-colore-hover, var( --fm-theme-action-text, #fff ) ); border-color: var( --cg-pulsante-bordo-hover, var( --fm-theme-action-hover, #444 ) );
}
.fm-cg-formato__cta .fm-wooe-catalog-inquiry { margin: 0; }

/* ---- ricettario ---- */
.fm-cg-ricettario { display: flex; flex-direction: column; gap: 10px; }
.fm-cg-ricetta { border: 1px solid var( --fm-theme-line, #ddd ); background: var( --cg-pannello-sfondo, transparent ); }
.fm-cg-ricetta__testa { list-style: none; cursor: pointer; display: flex; align-items: baseline; gap: 16px; padding: 18px 20px; }
.fm-cg-ricetta__testa::-webkit-details-marker { display: none; }
.fm-cg-ricetta__numero { flex: none; font-size: 12px; letter-spacing: .08em; color: var( --cg-numero-colore, var( --cg-volume-colore, var( --fm-theme-muted, #666 ) ) ); }
.fm-cg-ricetta__titolo { flex: 1; font-size: 1.25em; line-height: 1.25; color: var( --cg-titolo-colore, var( --fm-theme-ink, #1a1a1a ) ); transition: color .2s; }
.fm-cg-ricetta__testa:hover .fm-cg-ricetta__titolo { color: var( --cg-titolo-colore-hover, var( --cg-volume-colore, inherit ) ); }
.fm-cg-ricetta[open] .fm-cg-ricetta__titolo { color: var( --cg-titolo-colore-attivo, var( --cg-titolo-colore, inherit ) ); }
.fm-cg-ricetta__segno { flex: none; width: 14px; height: 14px; position: relative; align-self: center; }
.fm-cg-ricetta__segno::before, .fm-cg-ricetta__segno::after { content: ""; position: absolute; inset: 50% auto auto 0; width: 14px; height: 1.5px; background: currentColor; transition: transform .25s; }
.fm-cg-ricetta__segno::after { transform: rotate( 90deg ); }
.fm-cg-ricetta[open] .fm-cg-ricetta__segno::after { transform: rotate( 0 ); }
.fm-cg-ricetta__corpo { padding: 0 20px 24px calc( 20px + var( --cg-ricetta-rientro, 0px ) ); }
.fm-cg-ricetta__descrizione { margin: 0 0 var( --cg-descrizione-spazio, 18px ); font-style: italic; font-size: 1.1em; line-height: 1.55; color: var( --cg-descrizione-colore, var( --fm-theme-muted, #555 ) ); }
.fm-cg-ricetta__dati { display: grid; grid-template-columns: repeat( 3, auto ); gap: 24px; justify-content: start; margin: 0 0 var( --cg-dati-spazio, 22px ); padding: 0; color: var( --cg-dati-colore, var( --fm-theme-ink, #1a1a1a ) ); }
.fm-cg-ricetta__dati dt { font-size: 11px; letter-spacing: .08em; text-transform: uppercase; color: var( --cg-etichette-colore, var( --fm-theme-muted, #666 ) ); margin: 0 0 4px; }
.fm-cg-ricetta__dati dd { margin: 0; font-size: 1.15em; }
.fm-cg-ricetta__dati dd span { font-size: .75em; color: var( --fm-theme-muted, #666 ); }
.fm-cg-ricetta__colonne { display: grid; grid-template-columns: minmax( 0, 1fr ) minmax( 0, 1.4fr ); gap: 32px; }
@media ( max-width: 700px ) { .fm-cg-ricetta__colonne { grid-template-columns: 1fr; gap: 20px; } .fm-cg-ricetta__dati { gap: 16px; } }
.fm-cg-ricetta__sezione h4 { margin: 0 0 10px; font-size: 12px; letter-spacing: .08em; text-transform: uppercase; color: var( --cg-etichette-colore, var( --fm-theme-muted, #666 ) ); }
.fm-cg-ricetta__sezione ul, .fm-cg-ricetta__sezione ol { margin: 0; padding: 0; list-style: none; display: flex; flex-direction: column; gap: 8px; }
.fm-cg-ricetta__sezione li { color: var( --cg-testo-colore, var( --fm-theme-ink, #1a1a1a ) ); line-height: 1.5; }
.fm-cg-ricetta__sezione ul li { padding-left: 14px; position: relative; }
.fm-cg-ricetta__sezione ul li::before { content: ""; position: absolute; left: 0; top: .7em; width: 5px; height: 5px; border-radius: 50%; background: var( --cg-volume-colore, currentColor ); }
.fm-cg-ricetta__sezione ol li { display: flex; gap: 12px; }
.fm-cg-ricetta__sezione ol li span { flex: none; font-size: 12px; letter-spacing: .06em; color: var( --cg-volume-colore, var( --fm-theme-muted, #666 ) ); padding-top: .25em; }
.fm-cg-ricetta__sezione ol li p { margin: 0; }
.fm-cg-ricetta__segnaposto { margin: 0; font-style: italic; color: var( --cg-segnaposto-colore, var( --fm-theme-muted, #888 ) ); }

/* ---- paginazione ---- */
.fm-cg-paginazione { display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: 22px 0; border-top: 1px solid var( --cg-riga-colore, var( --fm-theme-line, #ddd ) ); }
.fm-cg-paginazione a { text-decoration: none; color: var( --cg-voce-colore, var( --fm-theme-ink, #1a1a1a ) ); display: inline-flex; align-items: center; gap: 6px; transition: color .2s; }
.fm-cg-paginazione a:hover, .fm-cg-paginazione a:focus-visible { color: var( --cg-voce-colore-hover, var( --fm-theme-action, #444 ) ); }
.fm-cg-paginazione__prec .fm-cg-freccia { margin: 0 .35em 0 0; }
.fm-cg-paginazione__tutti { text-transform: uppercase; letter-spacing: .06em; font-size: 12px; }
@media ( max-width: 600px ) { .fm-cg-paginazione__tutti { display: none; } }
